{"version":3,"file":"static/js/main.f5c0e74f.js","mappings":";2DAyDA,IAAIA,EAA0B,WAE5B,SAASA,EAAWC,GAClB,IAAIC,EAAQC,KAEZA,KAAKC,WAAa,SAAUC,GAC1B,IAAIC,EAIAA,EAFsB,IAAtBJ,EAAMK,KAAKC,OACTN,EAAMO,eACCP,EAAMO,eAAeC,YACrBR,EAAMS,QACNT,EAAMU,UAAUC,WAEhBX,EAAMI,OAGRJ,EAAMK,KAAKL,EAAMK,KAAKC,OAAS,GAAGE,YAG7CR,EAAMU,UAAUE,aAAaT,EAAKC,GAElCJ,EAAMK,KAAKQ,KAAKV,EAClB,EAEAF,KAAKa,cAA8BC,IAAnBhB,EAAQiB,QAAwCjB,EAAQiB,OACxEf,KAAKI,KAAO,GACZJ,KAAKgB,IAAM,EACXhB,KAAKiB,MAAQnB,EAAQmB,MAErBjB,KAAKkB,IAAMpB,EAAQoB,IACnBlB,KAAKS,UAAYX,EAAQW,UACzBT,KAAKQ,QAAUV,EAAQU,QACvBR,KAAKM,eAAiBR,EAAQQ,eAC9BN,KAAKG,OAAS,IAChB,CAEA,IAAIgB,EAAStB,EAAWuB,UA0CxB,OAxCAD,EAAOE,QAAU,SAAiBC,GAChCA,EAAMC,QAAQvB,KAAKC,WACrB,EAEAkB,EAAOK,OAAS,SAAgBC,GAI1BzB,KAAKgB,KAAOhB,KAAKa,SAAW,KAAQ,KAAO,GAC7Cb,KAAKC,WA7DX,SAA4BH,GAC1B,IAAII,EAAMwB,SAASC,cAAc,SASjC,OARAzB,EAAI0B,aAAa,eAAgB9B,EAAQoB,UAEnBJ,IAAlBhB,EAAQmB,OACVf,EAAI0B,aAAa,QAAS9B,EAAQmB,OAGpCf,EAAI2B,YAAYH,SAASI,eAAe,KACxC5B,EAAI0B,aAAa,SAAU,IACpB1B,CACT,CAkDsB6B,CAAmB/B,OAGrC,IAAIE,EAAMF,KAAKI,KAAKJ,KAAKI,KAAKC,OAAS,GAEvC,GAAIL,KAAKa,SAAU,CACjB,IAAImB,EAtFV,SAAqB9B,GACnB,GAAIA,EAAI8B,MACN,OAAO9B,EAAI8B,MAMb,IAAK,IAAIC,EAAI,EAAGA,EAAIP,SAASQ,YAAY7B,OAAQ4B,IAC/C,GAAIP,SAASQ,YAAYD,GAAGE,YAAcjC,EACxC,OAAOwB,SAASQ,YAAYD,EAOlC,CAqEkBG,CAAYlC,GAExB,IAGE8B,EAAMK,WAAWZ,EAAMO,EAAMM,SAASjC,OACxC,CAAE,MAAOkC,GACT,CACF,MACErC,EAAI2B,YAAYH,SAASI,eAAeL,IAG1CzB,KAAKgB,KACP,EAEAG,EAAOqB,MAAQ,WACbxC,KAAKI,KAAKmB,SAAQ,SAAUrB,GAC1B,IAAIuC,EAEJ,OAA6C,OAArCA,EAAkBvC,EAAIwC,iBAAsB,EAASD,EAAgBE,YAAYzC,EAC3F,IACAF,KAAKI,KAAO,GACZJ,KAAKgB,IAAM,CACb,EAEOnB,CACT,CAhF8B,GCrDnB+C,EAAMC,KAAKD,IAMXE,EAAOC,OAAOC,aAMdC,EAASC,OAAOD,OAepB,SAASE,EAAMC,GACrB,OAAOA,EAAMD,MACd,CAiBO,SAASE,EAASD,EAAOE,EAASC,GACxC,OAAOH,EAAMC,QAAQC,EAASC,EAC/B,CAOO,SAASC,EAASJ,EAAOK,GAC/B,OAAOL,EAAMM,QAAQD,EACtB,CAOO,SAASE,EAAQP,EAAOQ,GAC9B,OAAiC,EAA1BR,EAAMS,WAAWD,EACzB,CAQO,SAASE,EAAQV,EAAOW,EAAOC,GACrC,OAAOZ,EAAMa,MAAMF,EAAOC,EAC3B,CAMO,SAASE,EAAQd,GACvB,OAAOA,EAAM/C,MACd,CAMO,SAAS8D,EAAQf,GACvB,OAAOA,EAAM/C,MACd,CAOO,SAAS+D,EAAQhB,EAAOiB,GAC9B,OAAOA,EAAMzD,KAAKwC,GAAQA,CAC3B,CCvGO,IAAIkB,EAAO,EACPC,EAAS,EACTlE,EAAS,EACTmE,EAAW,EACXC,EAAY,EACZC,EAAa,GAWjB,SAASC,EAAMvB,EAAOwB,EAAMC,EAAQC,EAAMC,EAAOC,EAAU3E,GACjE,MAAO,CAAC+C,MAAOA,EAAOwB,KAAMA,EAAMC,OAAQA,EAAQC,KAAMA,EAAMC,MAAOA,EAAOC,SAAUA,EAAUV,KAAMA,EAAMC,OAAQA,EAAQlE,OAAQA,EAAQ4E,OAAQ,GACrJ,CAOO,SAASC,EAAMN,EAAMG,GAC3B,OAAO9B,EAAO0B,EAAK,GAAI,KAAM,KAAM,GAAI,KAAM,KAAM,GAAIC,EAAM,CAACvE,QAASuE,EAAKvE,QAAS0E,EACtF,CAYO,SAASI,IAMf,OALAV,EAAYD,EAAW,EAAIb,EAAOe,IAAcF,GAAY,EAExDD,IAAwB,KAAdE,IACbF,EAAS,EAAGD,KAENG,CACR,CAKO,SAASW,IAMf,OALAX,EAAYD,EAAWnE,EAASsD,EAAOe,EAAYF,KAAc,EAE7DD,IAAwB,KAAdE,IACbF,EAAS,EAAGD,KAENG,CACR,CAKO,SAASY,IACf,OAAO1B,EAAOe,EAAYF,EAC3B,CAKO,SAASc,IACf,OAAOd,CACR,CAOO,SAASP,EAAOF,EAAOC,GAC7B,OAAOF,EAAOY,EAAYX,EAAOC,EAClC,CAMO,SAASuB,EAAOT,GACtB,OAAQA,GAEP,KAAK,EAAG,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GACtC,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,IAE3D,KAAK,GAAI,KAAK,IAAK,KAAK,IACvB,OAAO,EAER,KAAK,GACJ,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAC/B,OAAO,EAER,KAAK,GAAI,KAAK,GACb,OAAO,EAGT,OAAO,CACR,CAMO,SAASU,EAAOpC,GACtB,OAAOkB,EAAOC,EAAS,EAAGlE,EAAS6D,EAAOQ,EAAatB,GAAQoB,EAAW,EAAG,EAC9E,CAMO,SAASiB,EAASrC,GACxB,OAAOsB,EAAa,GAAItB,CACzB,CAMO,SAASsC,EAASZ,GACxB,OAAO3B,EAAKc,EAAMO,EAAW,EAAGmB,EAAmB,KAATb,EAAcA,EAAO,EAAa,KAATA,EAAcA,EAAO,EAAIA,IAC7F,CAcO,SAASc,EAAYd,GAC3B,MAAOL,EAAYY,MACdZ,EAAY,IACfW,IAIF,OAAOG,EAAMT,GAAQ,GAAKS,EAAMd,GAAa,EAAI,GAAK,GACvD,CAwBO,SAASoB,EAAUjC,EAAOkC,GAChC,OAASA,GAASV,OAEbX,EAAY,IAAMA,EAAY,KAAQA,EAAY,IAAMA,EAAY,IAAQA,EAAY,IAAMA,EAAY,MAG/G,OAAOR,EAAML,EAAO0B,KAAWQ,EAAQ,GAAe,IAAVT,KAA0B,IAAVD,KAC7D,CAMO,SAASO,EAAWb,GAC1B,KAAOM,YACEX,GAEP,KAAKK,EACJ,OAAON,EAER,KAAK,GAAI,KAAK,GACA,KAATM,GAAwB,KAATA,GAClBa,EAAUlB,GACX,MAED,KAAK,GACS,KAATK,GACHa,EAAUb,GACX,MAED,KAAK,GACJM,IAIH,OAAOZ,CACR,CAOO,SAASuB,EAAWjB,EAAMlB,GAChC,KAAOwB,KAEFN,EAAOL,IAAc,KAGhBK,EAAOL,IAAc,IAAsB,KAAXY,OAG1C,MAAO,KAAOpB,EAAML,EAAOY,EAAW,GAAK,IAAM1B,EAAc,KAATgC,EAAcA,EAAOM,IAC5E,CAMO,SAASY,EAAYpC,GAC3B,MAAQ2B,EAAMF,MACbD,IAED,OAAOnB,EAAML,EAAOY,EACrB,CCrPO,IAAIyB,EAAK,OACLC,EAAM,QACNC,EAAS,WAETC,EAAU,OACVC,EAAU,OACVC,EAAc,OAUdC,EAAY,aCRhB,SAASC,EAAWxB,EAAUyB,GAIpC,IAHA,IAAIC,EAAS,GACTrG,EAAS8D,EAAOa,GAEX/C,EAAI,EAAGA,EAAI5B,EAAQ4B,IAC3ByE,GAAUD,EAASzB,EAAS/C,GAAIA,EAAG+C,EAAUyB,IAAa,GAE3D,OAAOC,CACR,CASO,SAASC,EAAWC,EAAShD,EAAOoB,EAAUyB,GACpD,OAAQG,EAAQ9B,MACf,IDPiB,SCOL,GAAI8B,EAAQ5B,SAAS3E,OAAQ,MACzC,IDlBkB,UCkBL,KAAKiG,EAAa,OAAOM,EAAQ3B,OAAS2B,EAAQ3B,QAAU2B,EAAQxD,MACjF,KAAKgD,EAAS,MAAO,GACrB,KAAKG,EAAW,OAAOK,EAAQ3B,OAAS2B,EAAQxD,MAAQ,IAAMoD,EAAUI,EAAQ5B,SAAUyB,GAAY,IACtG,KAAKJ,EAASO,EAAQxD,MAAQwD,EAAQ7B,MAAM8B,KAAK,KAGlD,OAAO3C,EAAOc,EAAWwB,EAAUI,EAAQ5B,SAAUyB,IAAaG,EAAQ3B,OAAS2B,EAAQxD,MAAQ,IAAM4B,EAAW,IAAM,EAC3H,CC3BO,SAAS8B,EAAS1D,GACxB,OAAOqC,EAAQsB,EAAM,GAAI,KAAM,KAAM,KAAM,CAAC,IAAK3D,EAAQoC,EAAMpC,GAAQ,EAAG,CAAC,GAAIA,GAChF,CAcO,SAAS2D,EAAO3D,EAAOwB,EAAMC,EAAQpD,EAAMuF,EAAOC,EAAUC,EAAQC,EAAQC,GAiBlF,IAhBA,IAAIxD,EAAQ,EACRyD,EAAS,EACThH,EAAS6G,EACTI,EAAS,EACTC,EAAW,EACXC,EAAW,EACXC,EAAW,EACXC,EAAW,EACXC,EAAY,EACZlD,EAAY,EACZK,EAAO,GACPC,EAAQiC,EACRhC,EAAWiC,EACXW,EAAYnG,EACZiD,EAAaI,EAEV4C,UACEF,EAAW/C,EAAWA,EAAYW,KAEzC,KAAK,GACJ,GAAgB,KAAZoC,GAAqD,IAAlC7D,EAAOe,EAAYrE,EAAS,GAAU,EACkB,GAA1EmD,EAAQkB,GAAcrB,EAAQqC,EAAQjB,GAAY,IAAK,OAAQ,SAClEkD,GAAa,GACd,KACD,CAED,KAAK,GAAI,KAAK,GAAI,KAAK,GACtBjD,GAAcgB,EAAQjB,GACtB,MAED,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GAC9BC,GAAckB,EAAW4B,GACzB,MAED,KAAK,GACJ9C,GAAcmB,EAASP,IAAU,EAAG,GACpC,SAED,KAAK,GACJ,OAAQD,KACP,KAAK,GAAI,KAAK,GACbjB,EAAOyD,EAAQ9B,EAAUX,IAAQE,KAAUV,EAAMC,GAASuC,GAC1D,MACD,QACC1C,GAAc,IAEhB,MAED,KAAK,IAAM+C,EACVN,EAAOvD,KAAWM,EAAOQ,GAAciD,EAExC,KAAK,IAAMF,EAAU,KAAK,GAAI,KAAK,EAClC,OAAQhD,GAEP,KAAK,EAAG,KAAK,IAAKiD,EAAW,EAE7B,KAAK,GAAKL,GAA0B,GAAdM,IAAiBjD,EAAarB,EAAQqB,EAAY,MAAO,KAC1E6C,EAAW,GAAMrD,EAAOQ,GAAcrE,GACzC+D,EAAOmD,EAAW,GAAKO,EAAYpD,EAAa,IAAKjD,EAAMoD,EAAQxE,EAAS,GAAKyH,EAAYzE,EAAQqB,EAAY,IAAK,IAAM,IAAKjD,EAAMoD,EAAQxE,EAAS,GAAI+G,GAC7J,MAED,KAAK,GAAI1C,GAAc,IAEvB,QAGC,GAFAN,EAAOwD,EAAYG,EAAQrD,EAAYE,EAAMC,EAAQjB,EAAOyD,EAAQL,EAAOG,EAAQrC,EAAMC,EAAQ,GAAIC,EAAW,GAAI3E,GAAS4G,GAE3G,MAAdxC,EACH,GAAe,IAAX4C,EACHN,EAAMrC,EAAYE,EAAMgD,EAAWA,EAAW7C,EAAOkC,EAAU5G,EAAQ8G,EAAQnC,QAE/E,OAAmB,KAAXsC,GAA2C,MAA1B3D,EAAOe,EAAY,GAAa,IAAM4C,GAE9D,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAClCP,EAAM3D,EAAOwE,EAAWA,EAAWnG,GAAQ2C,EAAO2D,EAAQ3E,EAAOwE,EAAWA,EAAW,EAAG,EAAGZ,EAAOG,EAAQrC,EAAMkC,EAAOjC,EAAQ,GAAI1E,GAAS2E,GAAWgC,EAAOhC,EAAU3E,EAAQ8G,EAAQ1F,EAAOsD,EAAQC,GACzM,MACD,QACC+B,EAAMrC,EAAYkD,EAAWA,EAAWA,EAAW,CAAC,IAAK5C,EAAU,EAAGmC,EAAQnC,IAIpFpB,EAAQyD,EAASE,EAAW,EAAGE,EAAWE,EAAY,EAAG7C,EAAOJ,EAAa,GAAIrE,EAAS6G,EAC1F,MAED,KAAK,GACJ7G,EAAS,EAAI6D,EAAOQ,GAAa6C,EAAWC,EAC7C,QACC,GAAIC,EAAW,EACd,GAAiB,KAAbhD,IACDgD,OACE,GAAiB,KAAbhD,GAAkC,GAAdgD,KAA6B,KAAVtC,IAC/C,SAEF,OAAQT,GAAc5B,EAAK2B,GAAYA,EAAYgD,GAElD,KAAK,GACJE,EAAYN,EAAS,EAAI,GAAK3C,GAAc,MAAO,GACnD,MAED,KAAK,GACJyC,EAAOvD,MAAYM,EAAOQ,GAAc,GAAKiD,EAAWA,EAAY,EACpE,MAED,KAAK,GAEW,KAAXtC,MACHX,GAAcgB,EAAQN,MAEvBkC,EAASjC,IAAQgC,EAAShH,EAAS6D,EAAOY,EAAOJ,GAAcsB,EAAWV,MAAWb,IACrF,MAED,KAAK,GACa,KAAb+C,GAAyC,GAAtBtD,EAAOQ,KAC7B+C,EAAW,IAIjB,OAAOR,CACR,CAgBO,SAASc,EAAS3E,EAAOwB,EAAMC,EAAQjB,EAAOyD,EAAQL,EAAOG,EAAQrC,EAAMC,EAAOC,EAAU3E,GAKlG,IAJA,IAAI2H,EAAOX,EAAS,EAChB5F,EAAkB,IAAX4F,EAAeL,EAAQ,CAAC,IAC/BiB,EAAO9D,EAAO1C,GAETQ,EAAI,EAAGiG,EAAI,EAAGC,EAAI,EAAGlG,EAAI2B,IAAS3B,EAC1C,IAAK,IAAImG,EAAI,EAAGC,EAAIvE,EAAOV,EAAO4E,EAAO,EAAGA,EAAOpF,EAAIsF,EAAIf,EAAOlF,KAAMqG,EAAIlF,EAAOgF,EAAIH,IAAQG,GAC1FE,EAAInF,EAAK+E,EAAI,EAAIzG,EAAK2G,GAAK,IAAMC,EAAIhF,EAAQgF,EAAG,OAAQ5G,EAAK2G,QAChErD,EAAMoD,KAAOG,GAEhB,OAAO3D,EAAKvB,EAAOwB,EAAMC,EAAmB,IAAXwC,EAAehB,EAAUvB,EAAMC,EAAOC,EAAU3E,EAClF,CAQO,SAASwH,EAASzE,EAAOwB,EAAMC,GACrC,OAAOF,EAAKvB,EAAOwB,EAAMC,EAAQuB,EAAStD,EH/InC2B,GG+IiDX,EAAOV,EAAO,GAAI,GAAI,EAC/E,CASO,SAAS0E,EAAa1E,EAAOwB,EAAMC,EAAQxE,GACjD,OAAOsE,EAAKvB,EAAOwB,EAAMC,EAAQyB,EAAaxC,EAAOV,EAAO,EAAG/C,GAASyD,EAAOV,EAAO/C,EAAS,GAAI,GAAIA,EACxG,CCzLA,IAAIkI,EAA8B,SAAqCxE,EAAOoD,EAAQvD,GAIpF,IAHA,IAAI4D,EAAW,EACX/C,EAAY,EAGd+C,EAAW/C,EACXA,EAAYY,IAEK,KAAbmC,GAAiC,KAAd/C,IACrB0C,EAAOvD,GAAS,IAGd2B,EAAMd,IAIVW,IAGF,OAAOnB,EAAMF,EAAOS,EACtB,EA6CIgE,EAAW,SAAkBpF,EAAO+D,GACtC,OAAO1B,EA5CK,SAAiBgD,EAAQtB,GAErC,IAAIvD,GAAS,EACTa,EAAY,GAEhB,GACE,OAAQc,EAAMd,IACZ,KAAK,EAEe,KAAdA,GAA+B,KAAXY,MAKtB8B,EAAOvD,GAAS,GAGlB6E,EAAO7E,IAAU2E,EAA4B/D,EAAW,EAAG2C,EAAQvD,GACnE,MAEF,KAAK,EACH6E,EAAO7E,IAAU8B,EAAQjB,GACzB,MAEF,KAAK,EAEH,GAAkB,KAAdA,EAAkB,CAEpBgE,IAAS7E,GAAoB,KAAXyB,IAAgB,MAAQ,GAC1C8B,EAAOvD,GAAS6E,EAAO7E,GAAOvD,OAC9B,KACF,CAIF,QACEoI,EAAO7E,IAAUd,EAAK2B,UAEnBA,EAAYW,KAErB,OAAOqD,CACT,CAGiBC,CAAQlD,EAAMpC,GAAQ+D,GACvC,EAGIwB,EAA+B,IAAIC,QACnCC,GAAS,SAAgBjC,GAC3B,GAAqB,SAAjBA,EAAQ9B,MAAoB8B,EAAQ/B,UAExC+B,EAAQvG,OAAS,GAFjB,CAUA,IAJA,IAAI+C,EAAQwD,EAAQxD,MAChByB,EAAS+B,EAAQ/B,OACjBiE,EAAiBlC,EAAQrC,SAAWM,EAAON,QAAUqC,EAAQtC,OAASO,EAAOP,KAE1D,SAAhBO,EAAOC,MAEZ,KADAD,EAASA,EAAOA,QACH,OAIf,IAA6B,IAAzB+B,EAAQ7B,MAAM1E,QAAwC,KAAxB+C,EAAMS,WAAW,IAE/C8E,EAAcI,IAAIlE,MAMlBiE,EAAJ,CAIAH,EAAcK,IAAIpC,GAAS,GAK3B,IAJA,IAAIO,EAAS,GACTH,EAAQwB,EAASpF,EAAO+D,GACxB8B,EAAcpE,EAAOE,MAEhB9C,EAAI,EAAGkG,EAAI,EAAGlG,EAAI+E,EAAM3G,OAAQ4B,IACvC,IAAK,IAAIiG,EAAI,EAAGA,EAAIe,EAAY5I,OAAQ6H,IAAKC,IAC3CvB,EAAQ7B,MAAMoD,GAAKhB,EAAOlF,GAAK+E,EAAM/E,GAAGoB,QAAQ,OAAQ4F,EAAYf,IAAMe,EAAYf,GAAK,IAAMlB,EAAM/E,EAT3G,CAtBA,CAkCF,EACIiH,GAAc,SAAqBtC,GACrC,GAAqB,SAAjBA,EAAQ9B,KAAiB,CAC3B,IAAI1B,EAAQwD,EAAQxD,MAGI,MAAxBA,EAAMS,WAAW,IACO,KAAxBT,EAAMS,WAAW,KAEf+C,EAAgB,OAAI,GACpBA,EAAQxD,MAAQ,GAEpB,CACF,EAIA,SAAS+F,GAAO/F,EAAO/C,GACrB,OL9GK,SAAe+C,EAAO/C,GAC5B,OAA0B,GAAnBsD,EAAOP,EAAO,MAAiB/C,GAAU,EAAKsD,EAAOP,EAAO,KAAO,EAAKO,EAAOP,EAAO,KAAO,EAAKO,EAAOP,EAAO,KAAO,EAAKO,EAAOP,EAAO,GAAK,CACvJ,CK4GUgG,CAAKhG,EAAO/C,IAElB,KAAK,KACH,OAAO8F,EAAS,SAAW/C,EAAQA,EAGrC,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO+C,EAAS/C,EAAQA,EAG1B,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO+C,EAAS/C,EAAQ8C,EAAM9C,EAAQ6C,EAAK7C,EAAQA,EAGrD,KAAK,KACL,KAAK,KACH,OAAO+C,EAAS/C,EAAQ6C,EAAK7C,EAAQA,EAGvC,KAAK,KACH,OAAO+C,EAAS/C,EAAQ6C,EAAK,QAAU7C,EAAQA,EAGjD,KAAK,KACH,OAAO+C,EAAS/C,EAAQC,EAAQD,EAAO,iBAAkB+C,EAAS,WAAaF,EAAK,aAAe7C,EAGrG,KAAK,KACH,OAAO+C,EAAS/C,EAAQ6C,EAAK,aAAe5C,EAAQD,EAAO,cAAe,IAAMA,EAGlF,KAAK,KACH,OAAO+C,EAAS/C,EAAQ6C,EAAK,iBAAmB5C,EAAQD,EAAO,4BAA6B,IAAMA,EAGpG,KAAK,KACH,OAAO+C,EAAS/C,EAAQ6C,EAAK5C,EAAQD,EAAO,SAAU,YAAcA,EAGtE,KAAK,KACH,OAAO+C,EAAS/C,EAAQ6C,EAAK5C,EAAQD,EAAO,QAAS,kBAAoBA,EAG3E,KAAK,KACH,OAAO+C,EAAS,OAAS9C,EAAQD,EAAO,QAAS,IAAM+C,EAAS/C,EAAQ6C,EAAK5C,EAAQD,EAAO,OAAQ,YAAcA,EAGpH,KAAK,KACH,OAAO+C,EAAS9C,EAAQD,EAAO,qBAAsB,KAAO+C,EAAS,MAAQ/C,EAG/E,KAAK,KACH,OAAOC,EAAQA,EAAQA,EAAQD,EAAO,eAAgB+C,EAAS,MAAO,cAAeA,EAAS,MAAO/C,EAAO,IAAMA,EAGpH,KAAK,KACL,KAAK,KACH,OAAOC,EAAQD,EAAO,oBAAqB+C,YAG7C,KAAK,KACH,OAAO9C,EAAQA,EAAQD,EAAO,oBAAqB+C,EAAS,cAAgBF,EAAK,gBAAiB,aAAc,WAAaE,EAAS/C,EAAQA,EAGhJ,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAOC,EAAQD,EAAO,kBAAmB+C,EAAS,QAAU/C,EAG9D,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEH,GAAIc,EAAOd,GAAS,EAAI/C,EAAS,EAAG,OAAQsD,EAAOP,EAAO/C,EAAS,IAEjE,KAAK,IAEH,GAAkC,KAA9BsD,EAAOP,EAAO/C,EAAS,GAAW,MAGxC,KAAK,IACH,OAAOgD,EAAQD,EAAO,mBAAoB,KAAO+C,EAAP,UAAiCD,GAAoC,KAA7BvC,EAAOP,EAAO/C,EAAS,GAAY,KAAO,UAAY+C,EAG1I,KAAK,IACH,OAAQI,EAAQJ,EAAO,WAAa+F,GAAO9F,EAAQD,EAAO,UAAW,kBAAmB/C,GAAU+C,EAAQA,EAE9G,MAGF,KAAK,KAEH,GAAkC,MAA9BO,EAAOP,EAAO/C,EAAS,GAAY,MAGzC,KAAK,KACH,OAAQsD,EAAOP,EAAOc,EAAOd,GAAS,IAAMI,EAAQJ,EAAO,eAAiB,MAE1E,KAAK,IACH,OAAOC,EAAQD,EAAO,IAAK,IAAM+C,GAAU/C,EAG7C,KAAK,IACH,OAAOC,EAAQD,EAAO,wBAAyB,KAAO+C,GAAgC,KAAtBxC,EAAOP,EAAO,IAAa,UAAY,IAAxD,UAA+E+C,EAA/E,SAAwGF,EAAK,WAAa7C,EAG7K,MAGF,KAAK,KACH,OAAQO,EAAOP,EAAO/C,EAAS,KAE7B,KAAK,IACH,OAAO8F,EAAS/C,EAAQ6C,EAAK5C,EAAQD,EAAO,qBAAsB,MAAQA,EAG5E,KAAK,IACH,OAAO+C,EAAS/C,EAAQ6C,EAAK5C,EAAQD,EAAO,qBAAsB,SAAWA,EAG/E,KAAK,GACH,OAAO+C,EAAS/C,EAAQ6C,EAAK5C,EAAQD,EAAO,qBAAsB,MAAQA,EAG9E,OAAO+C,EAAS/C,EAAQ6C,EAAK7C,EAAQA,EAGzC,OAAOA,CACT,CAEA,IAqCIiG,GAAuB,CArCZ,SAAkBzC,EAAShD,EAAOoB,EAAUyB,GACzD,GAAIG,EAAQvG,QAAU,IAAQuG,EAAgB,OAAG,OAAQA,EAAQ9B,MAC/D,KAAKwB,EACHM,EAAgB,OAAIuC,GAAOvC,EAAQxD,MAAOwD,EAAQvG,QAClD,MAEF,KAAKkG,EACH,OAAOC,EAAU,CAACtB,EAAK0B,EAAS,CAC9BxD,MAAOC,EAAQuD,EAAQxD,MAAO,IAAK,IAAM+C,MACtCM,GAEP,KAAKJ,EACH,GAAIO,EAAQvG,OAAQ,OL7MnB,SAAkBgE,EAAOoC,GAC/B,OAAOpC,EAAMiF,IAAI7C,GAAUI,KAAK,GACjC,CK2MiC0C,CAAQ3C,EAAQ7B,OAAO,SAAU3B,GAC1D,OLtRD,SAAgBA,EAAOE,GAC7B,OAAQF,EAAQE,EAAQkG,KAAKpG,IAAUA,EAAM,GAAKA,CACnD,CKoRgBqG,CAAMrG,EAAO,0BAEnB,IAAK,aACL,IAAK,cACH,OAAOoD,EAAU,CAACtB,EAAK0B,EAAS,CAC9B7B,MAAO,CAAC1B,EAAQD,EAAO,cAAe,gBACnCqD,GAGP,IAAK,gBACH,OAAOD,EAAU,CAACtB,EAAK0B,EAAS,CAC9B7B,MAAO,CAAC1B,EAAQD,EAAO,aAAc,IAAM+C,EAAS,eAClDjB,EAAK0B,EAAS,CAChB7B,MAAO,CAAC1B,EAAQD,EAAO,aAAc,eACnC8B,EAAK0B,EAAS,CAChB7B,MAAO,CAAC1B,EAAQD,EAAO,aAAc6C,EAAK,gBACvCQ,GAGT,MAAO,EACT,IAEN,GAIIiD,GAAc,SAEN5J,GAGV,IAAIoB,EAAMpB,EAAQoB,IAElB,GAAY,QAARA,EAAe,CACjB,IAAIyI,EAAYjI,SAASkI,iBAAiB,qCAK1CC,MAAMzI,UAAUG,QAAQuI,KAAKH,GAAW,SAAUhF,IAWL,IAFhBA,EAAKoF,aAAa,gBAEpBrG,QAAQ,OAIjChC,SAASsI,KAAKnI,YAAY8C,GAC1BA,EAAK/C,aAAa,SAAU,IAC9B,GACF,CAEA,IAGInB,EAsBAwJ,EAzBAC,EAAgBpK,EAAQoK,eAAiBb,GAEzCc,EAAW,CAAC,EAIZC,EAAiB,GAGnB3J,EAAYX,EAAQW,WAAaiB,SAASsI,KAC1CH,MAAMzI,UAAUG,QAAQuI,KAExBpI,SAASkI,iBAAiB,wBAA2B1I,EAAM,QAAS,SAAUyD,GAK5E,IAFA,IAAI0F,EAAS1F,EAAKoF,aAAa,gBAAgBO,MAAM,KAE5CrI,EAAI,EAAGA,EAAIoI,EAAOhK,OAAQ4B,IACjCkI,EAASE,EAAOpI,KAAM,EAGxBmI,EAAexJ,KAAK+D,EACtB,IAYF,IAGM4F,ECnYmB9D,EDoYnB+D,EAAoB,CAAC7D,GCpYFF,EDoYuB,SAAUhF,GACtD8I,EAAa/I,OAAOC,EACtB,ECrYI,SAAUmF,GACXA,EAAQhC,OACRgC,EAAUA,EAAQ3B,SACrBwB,EAASG,EACZ,IDkYO6D,ECxZD,SAAqBC,GAC3B,IAAIrK,EAAS8D,EAAOuG,GAEpB,OAAO,SAAU9D,EAAShD,EAAOoB,EAAUyB,GAG1C,IAFA,IAAIC,EAAS,GAEJzE,EAAI,EAAGA,EAAI5B,EAAQ4B,IAC3ByE,GAAUgE,EAAWzI,GAAG2E,EAAShD,EAAOoB,EAAUyB,IAAa,GAEhE,OAAOC,CACR,CACD,CD6YqBiE,CAPM,CAAC9B,GAAQK,IAOe0B,OAAOV,EAAeM,IAMrEP,EAAU,SAEHY,EAELC,EAEA9I,EAEA+I,GAGAR,EAAevI,EAdRwE,EAAUM,EAgBV+D,EAAWA,EAAW,IAAMC,EAAWE,OAAS,IAAMF,EAAWE,QAhBtCP,GAkB9BM,IACFE,EAAMd,SAASW,EAAWI,OAAQ,EAEtC,EAGF,IAAID,EAEF,CACA/J,IAAKA,EACLc,MAAO,IAAInC,EAAW,CACpBqB,IAAKA,EACLT,UAAWA,EACXQ,MAAOnB,EAAQmB,MACfF,OAAQjB,EAAQiB,OAChBP,QAASV,EAAQU,QACjBF,eAAgBR,EAAQQ,iBAE1BW,MAAOnB,EAAQmB,MACfkJ,SAAUA,EACVgB,WAAY,CAAC,EACb3J,OAAQyI,GAGV,OADAgB,EAAMjJ,MAAMX,QAAQ+I,GACba,CACT,8BEhdA,SAASG,EAAQC,GACf,IAAIJ,EAAQ/H,OAAOoI,OAAO,MAC1B,OAAO,SAAUC,GAEf,YADmBzK,IAAfmK,EAAMM,KAAoBN,EAAMM,GAAOF,EAAGE,IACvCN,EAAMM,EACf,CACF,wGCOIC,mBAEaC,EAAAA,cAMM,qBAAhBC,aAA6ChC,EAAAA,EAAAA,GAAY,CAC9DxI,IAAK,QACF,OAEDyK,EAAgBH,EAAoBI,SAOpCC,EAAmB,SAEtBC,GAKC,OAAoBC,EAAAA,EAAAA,aAAW,SAAUhH,EAEvCiH,GAIA,IAAIf,GAAQgB,EAAAA,EAAAA,YAAWT,GACvB,OAAOM,EAAK/G,EAAOkG,EAAOe,EAC5B,GACF,EAEIE,EAA8BT,EAAAA,cAAoB,CAAC,0HCRnDU,mBAIaN,EAAAA,EAAAA,IAAiB,SAAU9G,EAE1CkG,GAEA,IAAID,EAASjG,EAAMiG,OACfF,GAAasB,EAAAA,EAAAA,GAAgB,CAACpB,QAASlK,EAAW2K,EAAAA,WAAiBS,EAAAA,IAMnEG,EAAWZ,EAAAA,SAuDf,OAtDAa,EAAAA,EAAAA,IAAqC,WACnC,IAAIpL,EAAM+J,EAAM/J,IAAM,UAElBc,EAAQ,IAAIiJ,EAAMjJ,MAAMuK,YAAY,CACtCrL,IAAKA,EACLD,MAAOgK,EAAMjJ,MAAMf,MACnBR,UAAWwK,EAAMjJ,MAAMvB,UACvBM,OAAQkK,EAAMjJ,MAAMnB,WAElB2L,GAAc,EACd7H,EAEFjD,SAAS+K,cAAc,uBAA0BvL,EAAM,IAAM4J,EAAWI,KAAO,MAcjF,OAZID,EAAMjJ,MAAM5B,KAAKC,SACnB2B,EAAM7B,OAAS8K,EAAMjJ,MAAM5B,KAAK,IAGrB,OAATuE,IACF6H,GAAc,EAEd7H,EAAK/C,aAAa,eAAgBV,GAClCc,EAAMX,QAAQ,CAACsD,KAGjB0H,EAASK,QAAU,CAAC1K,EAAOwK,GACpB,WACLxK,EAAMQ,OACR,CACF,GAAG,CAACyI,KACJqB,EAAAA,EAAAA,IAAqC,WACnC,IAAIK,EAAkBN,EAASK,QAC3B1K,EAAQ2K,EAAgB,GAG5B,GAFkBA,EAAgB,GAGhCA,EAAgB,IAAK,MADvB,CAUA,QALwB7L,IAApBgK,EAAW1F,OAEbwH,EAAAA,EAAAA,IAAa3B,EAAOH,EAAW1F,MAAM,GAGnCpD,EAAM5B,KAAKC,OAAQ,CAErB,IAAIuG,EAAU5E,EAAM5B,KAAK4B,EAAM5B,KAAKC,OAAS,GAAGwM,mBAChD7K,EAAM7B,OAASyG,EACf5E,EAAMQ,OACR,CAEAyI,EAAMzJ,OAAO,GAAIsJ,EAAY9I,GAAO,EAdpC,CAeF,GAAG,CAACiJ,EAAOH,EAAWI,OACf,IACT,KAIA,SAAS4B,IAGP,IAAK,IAAIC,EAAOC,UAAU3M,OAAQ4M,EAAO,IAAIpD,MAAMkD,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAGzB,OAAOd,EAAAA,EAAAA,GAAgBa,EACzB,CAWA,IAAIE,EAAY,WAGd,IAAIC,EAAaN,EAAIO,WAAM,EAAQL,WAC/B9B,EAAO,aAAekC,EAAWlC,KACrC,MAAO,CACLA,KAAMA,EACNF,OAAQ,cAAgBE,EAAO,IAAMkC,EAAWpC,OAAS,IACzDsC,KAAM,EACNC,SAAU,WACR,MAAO,QAAUvN,KAAKkL,KAAO,IAAMlL,KAAKgL,OAAS,OACnD,EAEJ,gDCrJA,IAAIwC,EAAe,CACjBC,wBAAyB,EACzBC,YAAa,EACbC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTC,KAAM,EACNC,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBC,WAAY,EACZC,WAAY,EACZC,QAAS,EACTC,MAAO,EACPC,QAAS,EACTC,MAAO,EACPC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,gBAAiB,EAEjBC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,YC5CXC,GAAgB,EAEhBC,EAAiB,aACjBC,EAAiB,8BAEjBC,EAAmB,SAA0BpJ,GAC/C,OAAkC,KAA3BA,EAAS1D,WAAW,EAC7B,EAEI+M,EAAqB,SAA4BxN,GACnD,OAAgB,MAATA,GAAkC,mBAAVA,CACjC,EAEIyN,GAAkCzF,EAAAA,EAAAA,IAAQ,SAAU0F,GACtD,OAAOH,EAAiBG,GAAaA,EAAYA,EAAUzN,QAAQoN,EAAgB,OAAOM,aAC5F,IAEIC,EAAoB,SAA2B9P,EAAKkC,GACtD,OAAQlC,GACN,IAAK,YACL,IAAK,gBAED,GAAqB,kBAAVkC,EACT,OAAOA,EAAMC,QAAQqN,GAAgB,SAAUjH,EAAOwH,EAAIC,GAMxD,OALAC,EAAS,CACPjG,KAAM+F,EACNjG,OAAQkG,EACR9L,KAAM+L,GAEDF,CACT,IAKR,OAAsB,IAAlBG,EAASlQ,IAAeyP,EAAiBzP,IAAyB,kBAAVkC,GAAgC,IAAVA,EAI3EA,EAHEA,EAAQ,IAInB,EAEIiO,EAA6B,uJAEjC,SAASC,EAAoBC,EAAapG,EAAYqG,GACpD,GAAqB,MAAjBA,EACF,MAAO,GAGT,IAAIC,EAAoBD,EAExB,QAA2C1Q,IAAvC2Q,EAAkBC,iBAEpB,OAAOD,EAGT,cAAeD,GACb,IAAK,UAED,MAAO,GAGX,IAAK,SAED,IAAIrE,EAAYqE,EAEhB,GAAuB,IAAnBrE,EAAUG,KAMZ,OALA6D,EAAS,CACPjG,KAAMiC,EAAUjC,KAChBF,OAAQmC,EAAUnC,OAClB5F,KAAM+L,GAEDhE,EAAUjC,KAGnB,IAAIyG,EAAmBH,EAEvB,QAAgC1Q,IAA5B6Q,EAAiB3G,OAAsB,CACzC,IAAI5F,EAAOuM,EAAiBvM,KAE5B,QAAatE,IAATsE,EAGF,UAAgBtE,IAATsE,GACL+L,EAAS,CACPjG,KAAM9F,EAAK8F,KACXF,OAAQ5F,EAAK4F,OACb5F,KAAM+L,GAER/L,EAAOA,EAAKA,KAKhB,OADauM,EAAiB3G,OAAS,GAEzC,CAEA,OA2BR,SAAgCuG,EAAapG,EAAYyG,GACvD,IAAIC,EAAS,GAEb,GAAIhI,MAAMiI,QAAQF,GAChB,IAAK,IAAI3P,EAAI,EAAGA,EAAI2P,EAAIvR,OAAQ4B,IAC9B4P,GAAUP,EAAoBC,EAAapG,EAAYyG,EAAI3P,IAAM,SAGnE,IAAK,IAAIf,KAAO0Q,EAAK,CACnB,IAAIxO,EAAQwO,EAAI1Q,GAEhB,GAAqB,kBAAVkC,EAAoB,CAC7B,IAAI2O,EAAW3O,EAEG,MAAd+H,QAA+CrK,IAAzBqK,EAAW4G,GACnCF,GAAU3Q,EAAM,IAAMiK,EAAW4G,GAAY,IACpCnB,EAAmBmB,KAC5BF,GAAUhB,EAAiB3P,GAAO,IAAM8P,EAAkB9P,EAAK6Q,GAAY,IAE/E,KAAO,CACL,GAAY,0BAAR7Q,GAAmCsP,EACrC,MAAM,IAAIwB,MAAMX,GAGlB,IAAIxH,MAAMiI,QAAQ1O,IAA8B,kBAAbA,EAAM,IAAkC,MAAd+H,QAA+CrK,IAAzBqK,EAAW/H,EAAM,IAM7F,CACL,IAAI6O,EAAeX,EAAoBC,EAAapG,EAAY/H,GAEhE,OAAQlC,GACN,IAAK,YACL,IAAK,gBAED2Q,GAAUhB,EAAiB3P,GAAO,IAAM+Q,EAAe,IACvD,MAGJ,QAGIJ,GAAU3Q,EAAM,IAAM+Q,EAAe,IAG7C,MAtBE,IAAK,IAAIC,EAAK,EAAGA,EAAK9O,EAAM/C,OAAQ6R,IAC9BtB,EAAmBxN,EAAM8O,MAC3BL,GAAUhB,EAAiB3P,GAAO,IAAM8P,EAAkB9P,EAAKkC,EAAM8O,IAAO,IAqBpF,CACF,CAGF,OAAOL,CACT,CAhFeM,CAAuBZ,EAAapG,EAAYqG,GAG3D,IAAK,WAED,QAAoB1Q,IAAhByQ,EAA2B,CAC7B,IAAIa,EAAiBjB,EACjBkB,EAASb,EAAcD,GAE3B,OADAJ,EAASiB,EACFd,EAAoBC,EAAapG,EAAYkH,EACtD,EAON,IAAIN,EAAWP,EAEf,GAAkB,MAAdrG,EACF,OAAO4G,EAGT,IAAIO,EAASnH,EAAW4G,GACxB,YAAkBjR,IAAXwR,EAAuBA,EAASP,CACzC,CAyDA,IAGIZ,EAHAoB,EAAe,+BAInB,SAASnG,EAAgBa,EAAM9B,EAAYoG,GACzC,GAAoB,IAAhBtE,EAAK5M,QAAmC,kBAAZ4M,EAAK,IAA+B,OAAZA,EAAK,SAAkCnM,IAAnBmM,EAAK,GAAGjC,OAClF,OAAOiC,EAAK,GAGd,IAAIuF,GAAa,EACbxH,EAAS,GACbmG,OAASrQ,EACT,IAAI2R,EAAUxF,EAAK,GAEJ,MAAXwF,QAAmC3R,IAAhB2R,EAAQC,KAC7BF,GAAa,EACbxH,GAAUsG,EAAoBC,EAAapG,EAAYsH,IAIvDzH,GAF2ByH,EAEI,GAIjC,IAAK,IAAIxQ,EAAI,EAAGA,EAAIgL,EAAK5M,OAAQ4B,IAAK,CAGpC,GAFA+I,GAAUsG,EAAoBC,EAAapG,EAAY8B,EAAKhL,IAExDuQ,EAGFxH,GAFyByH,EAEIxQ,EAEjC,CAGAsQ,EAAaI,UAAY,EAIzB,IAHA,IACIlJ,EADAmJ,EAAiB,GAG0B,QAAvCnJ,EAAQ8I,EAAa/I,KAAKwB,KAChC4H,GAAkB,IAAMnJ,EAAM,GAGhC,IAAIyB,EC/NN,SAAiB2H,GAYf,IANA,IAEI1K,EAFA2K,EAAI,EAGJ7Q,EAAI,EACJ8Q,EAAMF,EAAIxS,OAEP0S,GAAO,IAAK9Q,EAAG8Q,GAAO,EAE3B5K,EAEe,YAAV,OAHLA,EAAwB,IAApB0K,EAAIhP,WAAW5B,IAAmC,IAAtB4Q,EAAIhP,aAAa5B,KAAc,GAA2B,IAAtB4Q,EAAIhP,aAAa5B,KAAc,IAA4B,IAAtB4Q,EAAIhP,aAAa5B,KAAc,MAG9F,OAAZkG,IAAM,KAAgB,IAIpD2K,EAEe,YAAV,OALL3K,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJ2K,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQC,GACN,KAAK,EACHD,IAA8B,IAAxBD,EAAIhP,WAAW5B,EAAI,KAAc,GAEzC,KAAK,EACH6Q,IAA8B,IAAxBD,EAAIhP,WAAW5B,EAAI,KAAc,EAEzC,KAAK,EAEH6Q,EAEe,YAAV,OAHLA,GAAyB,IAApBD,EAAIhP,WAAW5B,MAGsB,OAAZ6Q,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAGvF,SAAS,GACzC,CD8KayF,CAAWhI,GAAU4H,EAEhC,MAAO,CACL1H,KAAMA,EACNF,OAAQA,EACR5F,KAAM+L,EAEV,4EEnOI8B,KAAqBxH,IAAAA,EAAAA,EAAAA,EAAAA,EAAAA,KAA+B,qBAAIA,IAAAA,EAAAA,EAAAA,EAAAA,EAAAA,KAA+B,mBACvFyH,EAA2CD,GAL5B,SAAsB3H,GACvC,OAAOA,GACT,EAIIgB,EAAuC2G,GAAsBxH,EAAAA,iFCNjE,SAAS0H,EAAoBhI,EAAYiI,EAAkBC,GACzD,IAAIC,EAAe,GAQnB,OAPAD,EAAW/I,MAAM,KAAK/I,SAAQ,SAAUgS,QACRzS,IAA1BqK,EAAWoI,GACbH,EAAiBxS,KAAKuK,EAAWoI,GAAa,KACrCA,IACTD,GAAgBC,EAAY,IAEhC,IACOD,CACT,CACA,IAAIE,EAAiB,SAAwBvI,EAAOH,EAAY2I,GAC9D,IAAIF,EAAYtI,EAAM/J,IAAM,IAAM4J,EAAWI,MAO5B,IAAhBuI,QAIwD3S,IAAhCmK,EAAME,WAAWoI,KACxCtI,EAAME,WAAWoI,GAAazI,EAAWE,OAE7C,EACI4B,EAAe,SAAsB3B,EAAOH,EAAY2I,GAC1DD,EAAevI,EAAOH,EAAY2I,GAClC,IAAIF,EAAYtI,EAAM/J,IAAM,IAAM4J,EAAWI,KAE7C,QAAwCpK,IAApCmK,EAAMd,SAASW,EAAWI,MAAqB,CACjD,IAAIwB,EAAU5B,EAEd,GACEG,EAAMzJ,OAAOsJ,IAAe4B,EAAU,IAAM6G,EAAY,GAAI7G,EAASzB,EAAMjJ,OAAO,GAElF0K,EAAUA,EAAQtH,gBACCtE,IAAZ4L,EACX,CACF,mCCvCIgH,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,sCACD,wCCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,+JACD,oDCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,SAAS,EAAc,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,kJACF,MAAmB,EAAIH,EAAYE,KAAK,OAAQ,CACjDC,EAAG,8PACF,MAAO,uDCXNP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,8DACD,8CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,6DACD,iDCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,gHACD,qDCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,kHACD,sDCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,mHACD,gDCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,0GACD,0CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,uDACD,8CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,uIACD,yCCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,ypDACD,gDCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,6CACD,8CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,6JACD,8CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,kSACD,0CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,mPACD,gDCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,gGACD,yCCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,mJACD,6CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,uSACD,4CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,oOACD,iDCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,gKACD,+CCTAP,EAAyBC,EAAQ,MAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,KAChDG,EAAcH,EAAQ,KACXC,EAAQ,GAAU,EAAIC,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtGC,EAAG,mNACD,yCCTJ/Q,OAAOgR,eAAeN,EAAS,aAAc,CAC3CxQ,OAAO,IAETF,OAAOgR,eAAeN,EAAS,UAAW,CACxCO,YAAY,EACZpL,IAAK,WACH,OAAOqL,EAAOC,aAChB,IAEF,IAAID,EAAST,EAAQ,mFCNrB,MAAMW,EAA4B7I,EAAAA,mBAAoB3K,GA4C/C,SAASyT,EAAeC,GAG5B,IAH6B,MAC9BzP,EAAK,KACLmG,GACDsJ,EAEC,OAzBF,SAAuBC,GACrB,MAAM,MACJC,EAAK,KACLxJ,EAAI,MACJnG,GACE0P,EACJ,IAAKC,IAAUA,EAAMC,aAAeD,EAAMC,WAAWzJ,GACnD,OAAOnG,EAET,MAAM6P,EAASF,EAAMC,WAAWzJ,GAChC,OAAI0J,EAAOC,cAEFC,EAAAA,EAAAA,GAAaF,EAAOC,aAAc9P,GAEtC6P,EAAOG,gBAAmBH,EAAOI,SAI/BjQ,GAFE+P,EAAAA,EAAAA,GAAaF,EAAQ7P,EAGhC,CAMSkQ,CAAc,CACnBlQ,QACAmG,OACAwJ,MAAO,CACLC,WALQlJ,EAAAA,WAAiB6I,KAQ/B,CCrCO,SAASC,EAAgBE,GAC9B,OAAOS,EAAsBT,EAC/B,wJCzBO,SAASU,EAAuBC,GACrC,OAAOC,EAAAA,EAAAA,IAAqB,aAAcD,EAC5C,EACuBE,EAAAA,EAAAA,GAAuB,aAAc,CAAC,OAAQ,eAAgB,iBAAkB,cAAe,aAAc,gBAAiB,kBAAmB,gBAAiB,iBAAkB,+BCD3M,MAAMC,EAAY,CAAC,WAAY,YAAa,QAAS,YAAa,WAAY,YAAa,iBAAkB,cAAe,WAsBtHC,GAAcC,EAAAA,EAAAA,IAAO,MAAO,CAChCvK,KAAM,aACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAA2B,YAArB+Q,EAAWC,OAAuB5K,EAAO,QAADJ,QAASiL,EAAAA,EAAAA,GAAWF,EAAWC,SAAW5K,EAAO,WAADJ,QAAYiL,EAAAA,EAAAA,GAAWF,EAAWG,YAAa,GAP5IL,EASjBM,IAGG,IAHF,MACFrB,EAAK,WACLiB,GACDI,EACC,IAAIC,EAAoBC,EAAuBC,EAAqBC,EAAmBC,EAAuBC,EAAoBC,EAAuBC,EAAoBC,EAAuBC,EAAuBC,EAAUC,EAAWC,EAChP,MAAO,CACLC,WAAY,OACZC,MAAO,MACPC,OAAQ,MACRC,QAAS,eAGTC,KAAMtB,EAAWuB,mBAAgBpW,EAAY,eAC7CwN,WAAY,EACZ6I,WAAwD,OAA3CnB,EAAqBtB,EAAM0C,cAA+E,OAAtDnB,EAAwBD,EAAmB1K,aAAkB,EAAS2K,EAAsBnM,KAAKkM,EAAoB,OAAQ,CAC5LqB,SAAuD,OAA5CnB,EAAsBxB,EAAM0C,cAAgF,OAAvDlB,EAAsBA,EAAoBmB,eAAoB,EAASnB,EAAoBoB,UAE7JxB,SAAU,CACRyB,QAAS,UACTC,OAAkD,OAAzCrB,EAAoBzB,EAAM+C,aAA8E,OAAtDrB,EAAwBD,EAAkBuB,cAAmB,EAAStB,EAAsBtM,KAAKqM,EAAmB,MAAQ,UACvLwB,QAAoD,OAA1CtB,EAAqB3B,EAAM+C,aAA+E,OAAvDnB,EAAwBD,EAAmBqB,cAAmB,EAASpB,EAAsBxM,KAAKuM,EAAoB,MAAQ,SAC3LuB,OAAmD,OAA1CrB,EAAqB7B,EAAM+C,aAA+E,OAAvDjB,EAAwBD,EAAmBmB,cAAmB,EAASlB,EAAsB1M,KAAKyM,EAAoB,MAAQ,aAC1LZ,EAAWG,UAEbF,MAAmK,OAA3Ja,EAAsE,OAA7CC,GAAYhC,EAAMmD,MAAQnD,GAAOoD,UAA+D,OAA1CpB,EAAWA,EAASf,EAAWC,aAAkB,EAASc,EAASqB,MAAgBtB,EAAwB,CAChMuB,OAAuD,OAA9CrB,GAAajC,EAAMmD,MAAQnD,GAAOoD,UAAsD,OAAjCnB,EAAYA,EAAUqB,aAAkB,EAASrB,EAAUsB,OAC3HC,SAAyD,OAA9CtB,GAAalC,EAAMmD,MAAQnD,GAAOoD,UAAsD,OAAjClB,EAAYA,EAAUoB,aAAkB,EAASpB,EAAUsB,SAC7HX,aAASzW,GACT6U,EAAWC,OACd,IAEGuC,EAAuB1M,EAAAA,YAAiB,SAAiB2M,EAASpM,GACtE,MAAMjH,GAAQwP,EAAAA,EAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,gBAEF,SACFlG,EAAQ,UACRuO,EAAS,MACTqC,EAAQ,UAAS,UACjByC,EAAY,MAAK,SACjBvC,EAAW,SAAQ,UACnBwC,EAAS,eACTC,GAAiB,EAAK,YACtBC,EAAW,QACXC,EAAU,aACR1T,EACJ2T,GAAQC,EAAAA,EAAAA,GAA8B5T,EAAOwQ,GACzC2B,EAA6BzL,EAAAA,eAAqBzG,IAA+B,QAAlBA,EAASF,KACxE6Q,GAAaiD,EAAAA,EAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACAyC,YACAvC,WACA+C,iBAAkBT,EAAQtC,SAC1ByC,iBACAE,UACAvB,kBAEI4B,EAAO,CAAC,EACTP,IACHO,EAAKL,QAAUA,GAEjB,MAAMM,EAlFkBpD,KACxB,MAAM,MACJC,EAAK,SACLE,EAAQ,QACRiD,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAkB,YAAVgR,GAAuB,QAAJhL,QAAYiL,EAAAA,EAAAA,GAAWD,IAAU,WAAFhL,QAAaiL,EAAAA,EAAAA,GAAWC,MAE3F,OAAOmD,EAAAA,EAAAA,GAAeD,EAAO7D,EAAwB4D,EAAQ,EAyE7CG,CAAkBvD,GAClC,OAAoBwD,EAAAA,EAAAA,MAAM3D,GAAaoD,EAAAA,EAAAA,GAAS,CAC9CQ,GAAIf,EACJ9E,WAAW8F,EAAAA,EAAAA,GAAKN,EAAQnU,KAAM2O,GAC9B+F,UAAW,QACX1D,MAAO0C,EACP,eAAeE,QAAc1X,EAC7ByY,KAAMf,EAAc,WAAQ1X,EAC5BkL,IAAKA,GACJ8M,EAAMJ,EAAOxB,GAAiBlS,EAASD,MAAO,CAC/C4Q,WAAYA,EACZ3Q,SAAU,CAACkS,EAAgBlS,EAASD,MAAMC,SAAWA,EAAUwT,GAA2BgB,EAAAA,EAAAA,KAAK,QAAS,CACtGxU,SAAUwT,IACP,QAET,IAyEAL,EAAQsB,QAAU,UAClB,gJC1LA,MAIA,EAJe,CACbC,MAAO,OACPC,MAAO,QCcT,EAhBa,CACX,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLC,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBe,CACb,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBY,CACV,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBe,CACb,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBa,CACX,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBkB,CAChB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBc,CACZ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCXFxE,EAAY,CAAC,OAAQ,oBAAqB,eAWnCyE,EAAQ,CAEnBC,KAAM,CAEJC,QAAS,sBAETC,UAAW,qBAEXjC,SAAU,uBAGZkC,QAAS,sBAGTC,WAAY,CACVC,MAAOC,EAAOZ,MACd5F,QAASwG,EAAOZ,OAGlB3B,OAAQ,CAENC,OAAQ,sBAERuC,MAAO,sBACPC,aAAc,IAEdC,SAAU,sBACVC,gBAAiB,IAEjBzC,SAAU,sBAEV0C,mBAAoB,sBACpBC,gBAAiB,IACjBC,MAAO,sBACPC,aAAc,IACdC,iBAAkB,MAGTC,EAAO,CAClBhB,KAAM,CACJC,QAASK,EAAOZ,MAChBQ,UAAW,2BACXjC,SAAU,2BACVgD,KAAM,4BAERd,QAAS,4BACTC,WAAY,CACVC,MAAO,UACPvG,QAAS,WAEXiE,OAAQ,CACNC,OAAQsC,EAAOZ,MACfa,MAAO,4BACPC,aAAc,IACdC,SAAU,4BACVC,gBAAiB,IACjBzC,SAAU,2BACV0C,mBAAoB,4BACpBC,gBAAiB,IACjBC,MAAO,4BACPC,aAAc,IACdC,iBAAkB,MAGtB,SAASG,EAAeC,EAAQC,EAAWC,EAAOC,GAChD,MAAMC,EAAmBD,EAAYvB,OAASuB,EACxCE,EAAkBF,EAAYN,MAAsB,IAAdM,EACvCH,EAAOC,KACND,EAAOM,eAAeJ,GACxBF,EAAOC,GAAaD,EAAOE,GACJ,UAAdD,EACTD,EAAOpB,OAAQ2B,EAAAA,EAAAA,GAAQP,EAAOrD,KAAMyD,GACb,SAAdH,IACTD,EAAOH,MAAOW,EAAAA,EAAAA,IAAOR,EAAOrD,KAAM0D,IAGxC,CAsFe,SAASI,EAAc/D,GACpC,MAAM,KACFgE,EAAO,QAAO,kBACdC,EAAoB,EAAC,YACrBR,EAAc,IACZzD,EACJY,GAAQC,EAAAA,EAAAA,GAA8Bb,EAASvC,GAC3C2E,EAAUpC,EAAQoC,SA5F1B,WACE,MAAa,UADgBlN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACL+K,KAAMiE,EAAK,KACXhC,MAAOgC,EAAK,IACZf,KAAMe,EAAK,MAGR,CACLjE,KAAMiE,EAAK,KACXhC,MAAOgC,EAAK,KACZf,KAAMe,EAAK,KAEf,CA+EqCC,CAAkBH,GAC/C3B,EAAYrC,EAAQqC,WA/E5B,WACE,MAAa,UADkBnN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,SAEzB,CACL+K,KAAMmE,EAAO,KACblC,MAAOkC,EAAO,IACdjB,KAAMiB,EAAO,MAGV,CACLnE,KAAMmE,EAAO,KACblC,MAAOkC,EAAO,KACdjB,KAAMiB,EAAO,KAEjB,CAkEyCC,CAAoBL,GACrDM,EAAQtE,EAAQsE,OAlExB,WACE,MAAa,UADcpP,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,SAErB,CACL+K,KAAMsE,EAAI,KACVrC,MAAOqC,EAAI,KACXpB,KAAMoB,EAAI,MAGP,CACLtE,KAAMsE,EAAI,KACVrC,MAAOqC,EAAI,KACXpB,KAAMoB,EAAI,KAEd,CAqDiCC,CAAgBR,GACzCS,EAAOzE,EAAQyE,MArDvB,WACE,MAAa,UADavP,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,SAEpB,CACL+K,KAAMyE,EAAU,KAChBxC,MAAOwC,EAAU,KACjBvB,KAAMuB,EAAU,MAGb,CACLzE,KAAMyE,EAAU,KAChBxC,MAAOwC,EAAU,KACjBvB,KAAMuB,EAAU,KAEpB,CAwC+BC,CAAeX,GACtCY,EAAU5E,EAAQ4E,SAxC1B,WACE,MAAa,UADgB1P,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACL+K,KAAM4E,EAAM,KACZ3C,MAAO2C,EAAM,KACb1B,KAAM0B,EAAM,MAGT,CACL5E,KAAM4E,EAAM,KACZ3C,MAAO2C,EAAM,KACb1B,KAAM0B,EAAM,KAEhB,CA2BqCC,CAAkBd,GAC/Ce,EAAU/E,EAAQ+E,SA3B1B,WACE,MAAa,UADgB7P,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACL+K,KAAM+E,EAAO,KACb9C,MAAO8C,EAAO,KACd7B,KAAM6B,EAAO,MAGV,CACL/E,KAAM,UAENiC,MAAO8C,EAAO,KACd7B,KAAM6B,EAAO,KAEjB,CAaqCC,CAAkBjB,GAKrD,SAASkB,EAAgB3C,GAQvB,OAPqB4C,EAAAA,EAAAA,IAAiB5C,EAAYY,EAAKhB,KAAKC,UAAY6B,EAAoBd,EAAKhB,KAAKC,QAAUF,EAAMC,KAAKC,OAQ7H,CACA,MAAMgD,EAAenH,IAMf,IANgB,MACpBH,EAAK,KACL1K,EAAI,UACJiS,EAAY,IAAG,WACfC,EAAa,IAAG,UAChBC,EAAY,KACbtH,EAKC,GAJAH,GAAQgD,EAAAA,EAAAA,GAAS,CAAC,EAAGhD,IAChBA,EAAMmC,MAAQnC,EAAMuH,KACvBvH,EAAMmC,KAAOnC,EAAMuH,KAEhBvH,EAAM8F,eAAe,QACxB,MAAM,IAAI1J,OACsEsL,EAAAA,EAAAA,GAAuB,GAAIpS,EAAO,KAAHN,OAAQM,EAAI,KAAM,GAAIiS,IAEvI,GAA0B,kBAAfvH,EAAMmC,KACf,MAAM,IAAI/F,OAaPsL,EAAAA,EAAAA,GAAuB,GAAIpS,EAAO,KAAHN,OAAQM,EAAI,KAAM,GAAIqS,KAAK5W,UAAUiP,EAAMmC,QAO/E,OALAoD,EAAevF,EAAO,QAASwH,EAAY7B,GAC3CJ,EAAevF,EAAO,OAAQyH,EAAW9B,GACpC3F,EAAM4H,eACT5H,EAAM4H,aAAeR,EAAgBpH,EAAMmC,OAEtCnC,CAAK,EAER6H,EAAQ,CACZxC,OACAjB,SA4DF,OArDsB0D,EAAAA,EAAAA,IAAU9E,EAAAA,EAAAA,GAAS,CAEvC2B,QAAQ3B,EAAAA,EAAAA,GAAS,CAAC,EAAG2B,GAGrBuB,OAEA5B,QAASgD,EAAa,CACpBtH,MAAOsE,EACPhP,KAAM,YAGRiP,UAAW+C,EAAa,CACtBtH,MAAOuE,EACPjP,KAAM,YACNiS,UAAW,OACXC,WAAY,OACZC,UAAW,SAGbjB,MAAOc,EAAa,CAClBtH,MAAOwG,EACPlR,KAAM,UAGR2R,QAASK,EAAa,CACpBtH,MAAOiH,EACP3R,KAAM,YAGRqR,KAAMW,EAAa,CACjBtH,MAAO2G,EACPrR,KAAM,SAGRwR,QAASQ,EAAa,CACpBtH,MAAO8G,EACPxR,KAAM,YAGRyS,KAAI,EAGJ5B,oBAEAiB,kBAEAE,eAIA3B,eACCkC,EAAM3B,IAAQpD,EAEnB,CC9SA,MAAMnD,EAAY,CAAC,aAAc,WAAY,kBAAmB,oBAAqB,mBAAoB,iBAAkB,eAAgB,cAAe,WAK1J,MAAMqI,EAAc,CAClBC,cAAe,aAEXC,EAAoB,6CAMX,SAASC,EAAiBjG,EAASL,GAChD,MAAM1B,EAA6B,oBAAf0B,EAA4BA,EAAWK,GAAWL,GACpE,WACEuG,EAAaF,EAAiB,SAE9BhI,EAAW,GAAE,gBAEbmI,EAAkB,IAAG,kBACrBC,EAAoB,IAAG,iBACvBC,EAAmB,IAAG,eACtBC,EAAiB,IAAG,aAGpBC,EAAe,GAAE,YAEjBC,EACA5G,QAAS6G,GACPxI,EACJ2C,GAAQC,EAAAA,EAAAA,GAA8B5C,EAAMR,GAS9C,MAAMiJ,EAAO1I,EAAW,GAClB4B,EAAU6G,GAAY,CAACtW,GAAQ,GAAJ2C,OAAO3C,EAAOoW,EAAeG,EAAI,QAC5DC,EAAeA,CAACpP,EAAYpH,EAAMqH,EAAYoP,EAAeC,KAAW/F,SAAAA,EAAAA,GAAS,CACrFoF,aACA3O,aACAyG,SAAU4B,EAAQzP,GAElBqH,cACC0O,IAAeF,EAAoB,CACpCY,cAAe,GAAF9T,QAhDFxH,EAgDasb,EAAgBzW,EA/CnCpF,KAAK+b,MAAc,IAARxb,GAAe,KA+Cc,OAC3C,CAAC,EAAGub,EAAQL,GAjDlB,IAAelb,CAiDe,EACtB4R,EAAW,CACf6J,GAAIJ,EAAaR,EAAiB,GAAI,OAAQ,KAC9Ca,GAAIL,EAAaR,EAAiB,GAAI,KAAM,IAC5Cc,GAAIN,EAAaP,EAAmB,GAAI,MAAO,GAC/Cc,GAAIP,EAAaP,EAAmB,GAAI,MAAO,KAC/Ce,GAAIR,EAAaP,EAAmB,GAAI,MAAO,GAC/CgB,GAAIT,EAAaN,EAAkB,GAAI,IAAK,KAC5CgB,UAAWV,EAAaP,EAAmB,GAAI,KAAM,KACrDkB,UAAWX,EAAaN,EAAkB,GAAI,KAAM,IACpDkB,MAAOZ,EAAaP,EAAmB,GAAI,IAAK,KAChDoB,MAAOb,EAAaP,EAAmB,GAAI,KAAM,KACjDqB,OAAQd,EAAaN,EAAkB,GAAI,KAAM,GAAKP,GACtD4B,QAASf,EAAaP,EAAmB,GAAI,KAAM,IACnDuB,SAAUhB,EAAaP,EAAmB,GAAI,KAAM,EAAGN,GAEvDrG,QAAS,CACPyG,WAAY,UACZ3O,WAAY,UACZyG,SAAU,UACVxG,WAAY,UACZoP,cAAe,YAGnB,OAAOhB,EAAAA,EAAAA,IAAU9E,EAAAA,EAAAA,GAAS,CACxByF,eACA3G,UACAsG,aACAlI,WACAmI,kBACAC,oBACAC,mBACAC,kBACCpJ,GAAW0D,EAAO,CACnBgH,OAAO,GAEX,CCtFA,SAASC,IACP,MAAO,CAAC,GAAD/U,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAC,GAAD,OAAApC,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAC,GAAD,OAAApC,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAC,GAAD,OAAApC,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAC,GAAD,kBAAApC,OAJqB,GAI2D,QAAAA,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAA,UAAApC,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAA,UAAApC,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAA,UAAApC,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAA,qBAAApC,OAHxD,IAG+I,QAAAA,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAA,UAAApC,OAAAoC,UAAA3M,QAAA,OAAAS,EAAAkM,UAAA,UAAApC,OAAAoC,UAAA3M,QAAA,QAAAS,EAAAkM,UAAA,WAAApC,OAAAoC,UAAA3M,QAAA,QAAAS,EAAAkM,UAAA,sBAAApC,OAF7I,IAEwO,MAAK/D,KAAK,IACrR,CAGA,MACA,EADgB,CAAC,OAAQ8Y,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,kBCNlyC,MAUA,EAVe,CACbC,cAAe,IACfC,IAAK,KACLC,UAAW,KACXC,OAAQ,KACRC,OAAQ,KACRC,MAAO,KACPC,SAAU,KACVC,QAAS,MCPL5K,EAAY,CAAC,cAAe,SAAU,UAAW,UAAW,cAAe,aAAc,SAW/F,SAAS6K,IAAmC,IAAvBtgB,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9B,MACIqT,OAAQC,EAAc,CAAC,EACvBxI,QAASyI,EAAe,CAAC,EACzBnJ,YAAaoJ,EAAmB,CAAC,EACjC/I,WAAYgJ,EAAkB,CAAC,GAC7B3gB,EACJ4Y,GAAQC,EAAAA,EAAAA,GAA8B7Y,EAASyV,GACjD,GAAIzV,EAAQ+X,KACV,MAAM,IAAI7F,OACcsL,EAAAA,EAAAA,GAAuB,KAEjD,MAAMxF,EAAU+D,EAAc0E,GACxBG,GAAcC,EAAAA,EAAAA,GAAkB7gB,GACtC,IAAI8gB,GAAWlD,EAAAA,EAAAA,GAAUgD,EAAa,CACpCL,QC5BiCQ,ED4BZH,EAAYG,YC5BaR,ED4BAC,GC3BzC1H,EAAAA,EAAAA,GAAS,CACdkI,QAAS,CACPC,UAAW,GACX,CAACF,EAAYG,GAAG,OAAQ,CACtB,kCAAmC,CACjCD,UAAW,KAGf,CAACF,EAAYG,GAAG,OAAQ,CACtBD,UAAW,MAGdV,IDgBDvI,UAEAmJ,QAASA,EAAQhd,QACjBwT,WAAYsG,EAAiBjG,EAAS2I,GACtCrJ,aAAa8J,EAAAA,EAAAA,IAAkBV,GAC/B3Q,QAAQ+I,EAAAA,EAAAA,GAAS,CAAC,EAAG/I,KClCV,IAAsBgR,EAAaR,EDoChDO,GAAWlD,EAAAA,EAAAA,GAAUkD,EAAUlI,GAAO,QAAA3L,EAAAC,UAAA3M,OAvBF4M,EAAI,IAAApD,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,EAAA,GAAAF,UAAAE,GA8DxC,OAtCA0T,EAAW3T,EAAKkU,QAAO,CAACC,EAAKC,KAAa3D,EAAAA,EAAAA,GAAU0D,EAAKC,IAAWT,GA+BpEA,EAASU,mBAAoB1I,EAAAA,EAAAA,GAAS,CAAC,EAAG2I,EAAAA,EAA0B,MAAT7I,OAAgB,EAASA,EAAM4I,mBAC1FV,EAASY,YAAc,SAAYzc,GACjC,OAAO0c,EAAAA,EAAAA,GAAgB,CACrBC,GAAI3c,EACJ2P,MAAO1U,MAEX,EACO4gB,CACT,CAWA,0FEtFA,MAAMrL,EAAY,CAAC,WAAY,SAAU,SAG5BoM,EAAS,CAEpBC,UAAW,+BAGXC,QAAS,+BAETC,OAAQ,6BAERC,MAAO,gCAKI1K,EAAW,CACtB2K,SAAU,IACV1K,QAAS,IACT2K,MAAO,IAEPC,SAAU,IAEVC,QAAS,IAETC,eAAgB,IAEhBC,cAAe,KAEjB,SAASC,EAASC,GAChB,MAAO,GAAP3X,OAAU/H,KAAK+b,MAAM2D,GAAa,KACpC,CACA,SAASC,EAAsBzL,GAC7B,IAAKA,EACH,OAAO,EAET,MAAM0L,EAAW1L,EAAS,GAG1B,OAAOlU,KAAK+b,MAAmD,IAA5C,EAAI,GAAK6D,GAAY,IAAOA,EAAW,GAC5D,CACe,SAASvB,EAAkBwB,GACxC,MAAMC,GAAe/J,EAAAA,EAAAA,GAAS,CAAC,EAAG+I,EAAQe,EAAiBf,QACrDiB,GAAiBhK,EAAAA,EAAAA,GAAS,CAAC,EAAGvB,EAAUqL,EAAiBrL,UAkC/D,OAAOuB,EAAAA,EAAAA,GAAS,CACd4J,wBACAlX,OAnCa,WAAmC,IAAlCvG,EAAKiI,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,OAAQlN,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC1C,MACIqK,SAAUwL,EAAiBD,EAAeV,SAC1CP,OAAQmB,EAAeH,EAAaf,UAAS,MAC7CmB,EAAQ,GACNjjB,GACI6Y,EAAAA,EAAAA,GAA8B7Y,EAASyV,GAyBjD,OAAQ1L,MAAMiI,QAAQ/M,GAASA,EAAQ,CAACA,IAAQuE,KAAI0Z,GAAgB,GAAJpY,OAAOoY,EAAY,KAAApY,OAA8B,kBAAnBiY,EAA8BA,EAAiBP,EAASO,GAAe,KAAAjY,OAAIkY,EAAY,KAAAlY,OAAqB,kBAAVmY,EAAqBA,EAAQT,EAASS,MAAUlc,KAAK,IACvP,GAIG6b,EAAkB,CACnBf,OAAQgB,EACRtL,SAAUuL,GAEd,gDCpFA,MACA,GADqBxC,UAAAA,mDCHrB,iFCCA,MACA,EAD8B6C,IAAQC,EAAAA,EAAAA,GAAsBD,IAAkB,YAATA,gDCGrE,QAHA,SAA+BA,GAC7B,MAAgB,eAATA,GAAkC,UAATA,GAA6B,OAATA,GAA0B,OAATA,CACvE,6FCKA,MAKA,GALeE,EAAAA,EAAAA,IAAa,CAC1BC,QAASC,EAAAA,EACTC,aAAY,IACZC,sBAAqBA,EAAAA,kDCVvB,gBAAyB,gDCAzB,gBAAoC,2FCSrB,SAASlP,EAAcmP,EAAMC,GAC1C,SAASC,EAAU3e,EAAOiH,GACxB,OAAoBwN,EAAAA,EAAAA,KAAKrB,EAAAA,GAASS,EAAAA,EAAAA,GAAS,CACzC,cAAe,GAAFhO,OAAK6Y,EAAW,QAC7BzX,IAAKA,GACJjH,EAAO,CACRC,SAAUwe,IAEd,CAOA,OADAE,EAAUjK,QAAUtB,EAAAA,EAAQsB,QACRhO,EAAAA,KAAyBA,EAAAA,WAAiBiY,GAChE,+CCzBA,gBAAuB,wgBCAvB,QCDe,SAA4BC,EAAWC,GAElD,MAAO,IAAM,IAUjB,4CCXA,QCAe,SAA4BC,EAAsBH,GAE7D,MAAO,IAAM,IAoBjB,ECtBA,gBAAqB,0BCArB,QCDe,SAAyB3e,EAAO+e,EAAUC,EAAeC,EAAUC,GAE9E,OAAO,IAOX,8CCaO,MAAMC,EAA8B,CACzCC,UAAWC,IAITC,EAAAA,EAAmBF,UAAUC,EAAU,+DC1B3C,QCAe,SAAsBxd,EAAS0d,GAC5C,IAAIC,EAAUC,EACd,OAAoB/Y,EAAAA,eAAqB7E,KAGiM,IAHrL0d,EAAS5gB,QAGzB,OAApC6gB,EAAW3d,EAAQ9B,KAAK2U,SAAmB8K,EAA6C,OAAjCC,EAAgB5d,EAAQ9B,OAA6D,OAA3C0f,EAAgBA,EAAcC,WAA8D,OAAxCD,EAAgBA,EAAcphB,YAAiB,EAASohB,EAAc/K,QAC9N,gDCNA,gBAA4B,gDCA5B,gBAA0B,gDCE1B,gBAA4B,gDCA5B,gBAAgC,gDCAhC,gBAA+B,gDCA/B,gBAAyB,gDCAzB,gBAAoB,wECEpB,IAAIiL,GAAmB,EACnBC,GAA0B,EAC9B,MAAMC,EAAiC,IAAIC,EAAAA,EACrCC,EAAsB,CAC1B7K,MAAM,EACNxW,QAAQ,EACRshB,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,UAAU,EACVC,QAAQ,EACRC,MAAM,EACNC,OAAO,EACPC,MAAM,EACNC,MAAM,EACNC,UAAU,EACV,kBAAkB,GAkCpB,SAASC,EAAcC,GACjBA,EAAMC,SAAWD,EAAME,QAAUF,EAAMG,UAG3CnB,GAAmB,EACrB,CASA,SAASoB,IACPpB,GAAmB,CACrB,CACA,SAASqB,IACsB,WAAzB/lB,KAAKgmB,iBAKHrB,IACFD,GAAmB,EAGzB,CAeA,SAASuB,EAAeP,GACtB,MAAM,OACJQ,GACER,EACJ,IACE,OAAOQ,EAAOC,QAAQ,iBACxB,CAAE,MAAO/J,GAIP,CAKF,OAAOsI,GAjFT,SAAuC/f,GACrC,MAAM,KACJG,EAAI,QACJshB,GACEzhB,EACJ,QAAgB,UAAZyhB,IAAuBtB,EAAoBhgB,IAAUH,EAAK0hB,WAG9C,aAAZD,IAA2BzhB,EAAK0hB,YAGhC1hB,EAAK2hB,iBAIX,CAkE6BC,CAA8BL,EAC3D,CC9GA,QD+Ge,WACb,MAAMla,EAAMP,EAAAA,aAAkB9G,IAhChC,IAAiB6hB,EAiCD,MAAR7hB,KAjCS6hB,EAkCH7hB,EAAK8hB,eAjCbC,iBAAiB,UAAWjB,GAAe,GAC/Ce,EAAIE,iBAAiB,YAAaZ,GAAmB,GACrDU,EAAIE,iBAAiB,cAAeZ,GAAmB,GACvDU,EAAIE,iBAAiB,aAAcZ,GAAmB,GACtDU,EAAIE,iBAAiB,mBAAoBX,GAAwB,GA8B/D,GACC,IACGY,EAAoBlb,EAAAA,QAAa,GAoCvC,MAAO,CACLkb,oBACAC,QATF,SAA4BlB,GAC1B,QAAIO,EAAeP,KACjBiB,EAAkBja,SAAU,GACrB,EAGX,EAIEma,OAlCF,WAME,QAAIF,EAAkBja,UAKpBiY,GAA0B,EAC1BC,EAA+BkC,MAAM,KAAK,KACxCnC,GAA0B,CAAK,IAEjCgC,EAAkBja,SAAU,GACrB,EAGX,EAgBEV,MAEJ,8EEzJe,SAAS+a,EAAahiB,GACnC,MAAM,OACJiG,EAAM,aACNsY,EAAe,CAAC,GACdve,EACEiiB,EAAiC,oBAAXhc,EAAwBic,IAAcjc,cAPnDlK,KADA8Q,EAQkEqV,IAP7C,OAARrV,GAA4C,IAA5B1O,OAAOgkB,KAAKtV,GAAKvR,OAOkCijB,EAAe2D,GARhH,IAAiBrV,CAQ2G,EAAE5G,EAC5H,OAAoBwO,EAAAA,EAAAA,KAAKrN,EAAAA,GAAQ,CAC/BnB,OAAQgc,GAEZ,gOCfIG,EAAkB,sgIAElBC,GAA6Bhc,EAAAA,EAAAA,IAAQ,SAAU6X,GACjD,OAAOkE,EAAgBE,KAAKpE,IAAgC,MAAvBA,EAAKpf,WAAW,IAE3B,MAAvBof,EAAKpf,WAAW,IAEhBof,EAAKpf,WAAW,GAAK,EAC1B,4CCgCIyjB,EAA2BF,EAE3BG,EAA2B,SAAkCrmB,GAG/D,MAAe,UAARA,CACT,EAEIsmB,EAA8B,SAAqCtnB,GAGrE,MAAsB,kBAARA,GAGdA,EAAI2D,WAAW,GAAK,GAAKyjB,EAA2BC,CACtD,EACIE,EAA4B,SAAmCvnB,EAEjEJ,EAEA4nB,GAGA,IAAIC,EAEJ,GAAI7nB,EAAS,CACX,IAAI8nB,EAA2B9nB,EAAQ6nB,kBACvCA,EAAoBznB,EAAI2nB,uBAAyBD,EAA2B,SAAU9D,GAGpF,OAAO5jB,EAAI2nB,sBAAsB/D,IAAa8D,EAAyB9D,EACzE,EAAI8D,CACN,CAMA,MAJiC,oBAAtBD,GAAoCD,IAC7CC,EAAoBznB,EAAI2nB,uBAGnBF,CACT,EAkBIG,EAAY,SAAmB/R,GACjC,IAAI9K,EAAQ8K,EAAK9K,MACbH,EAAaiL,EAAKjL,WAClB2I,EAAcsC,EAAKtC,YAMvB,OALAD,EAAAA,EAAAA,IAAevI,EAAOH,EAAY2I,IAClCP,EAAAA,EAAAA,IAAyC,WACvC,OAAOtG,EAAAA,EAAAA,IAAa3B,EAAOH,EAAY2I,EACzC,IAEO,IACT,EClGIsU,EDsGF,SAAS5E,EAEVjjB,EAECJ,GAIA,IAEI8S,EACAoV,EAHAN,EAASxnB,EAAI+nB,iBAAmB/nB,EAChCgoB,EAAUR,GAAUxnB,EAAIioB,gBAAkBjoB,OAI9BY,IAAZhB,IACF8S,EAAiB9S,EAAQsoB,MACzBJ,EAAkBloB,EAAQomB,QAG5B,IAAIyB,EAAoBF,EAA0BvnB,EAAKJ,EAAS4nB,GAC5DW,EAA2BV,GAAqBH,EAA4BU,GAC5EI,GAAeD,EAAyB,MAG5C,OAAO,WACL,IAAIpb,EAAOD,UACPhC,EAAS0c,QAAmC5mB,IAAzBZ,EAAIwR,iBAAiCxR,EAAIwR,iBAAiBzN,MAAM,GAAK,GAM5F,QAJuBnD,IAAnB8R,GACF5H,EAAOpK,KAAK,SAAWgS,EAAiB,KAG3B,MAAX3F,EAAK,SAA8BnM,IAAhBmM,EAAK,GAAGyF,IAC7B1H,EAAOpK,KAAKyM,MAAMrC,EAAQiC,OACrB,CAELjC,EAAOpK,KAAKqM,EAAK,GAAG,IAIpB,IAHA,IAAI8F,EAAM9F,EAAK5M,OACX4B,EAAI,EAEDA,EAAI8Q,EAAK9Q,IAEd+I,EAAOpK,KAAKqM,EAAKhL,GAAIgL,EAAK,GAAGhL,GAEjC,CAEA,IAAIsmB,GAEF1c,EAAAA,EAAAA,IAAiB,SAAU9G,EAAOkG,EAAOe,GACzC,IAAIwc,EAAWF,GAAevjB,EAAMqU,IAAM8O,EACtC3U,EAAY,GACZkV,EAAsB,GACtBlX,EAAcxM,EAElB,GAAmB,MAAfA,EAAM2P,MAAe,CAGvB,IAAK,IAAIxT,KAFTqQ,EAAc,CAAC,EAECxM,EACdwM,EAAYrQ,GAAO6D,EAAM7D,GAG3BqQ,EAAYmD,MAAQjJ,EAAAA,WAAiBS,EAAAA,EACvC,CAE+B,kBAApBnH,EAAMwO,UACfA,GAAYJ,EAAAA,EAAAA,IAAoBlI,EAAME,WAAYsd,EAAqB1jB,EAAMwO,WACjD,MAAnBxO,EAAMwO,YACfA,EAAYxO,EAAMwO,UAAY,KAGhC,IAAIzI,GAAasB,EAAAA,EAAAA,GAAgBpB,EAAOJ,OAAO6d,GAAsBxd,EAAME,WAAYoG,GACvFgC,GAAatI,EAAM/J,IAAM,IAAM4J,EAAWI,UAElBpK,IAApBknB,IACFzU,GAAa,IAAMyU,GAGrB,IAAIU,EAAyBJ,QAAqCxnB,IAAtB6mB,EAAkCH,EAA4BgB,GAAYH,EAClHM,EAAW,CAAC,EAEhB,IAAK,IAAIzb,KAAQnI,EACXujB,GAAwB,OAATpb,GAEfwb,EAAuBxb,KACzByb,EAASzb,GAAQnI,EAAMmI,IAU3B,OANAyb,EAASpV,UAAYA,EAEjBvH,IACF2c,EAAS3c,IAAMA,GAGGP,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBqc,EAAW,CACxG7c,MAAOA,EACPH,WAAYA,EACZ2I,YAAiC,kBAAb+U,IACL/c,EAAAA,cAAoB+c,EAAUG,GACjD,IA2BA,OA1BAJ,EAAO9E,iBAAiC3iB,IAAnB8R,EAA+BA,EAAiB,WAAgC,kBAAZsV,EAAuBA,EAAUA,EAAQzE,aAAeyE,EAAQhd,MAAQ,aAAe,IAChLqd,EAAO1T,aAAe3U,EAAI2U,aAC1B0T,EAAON,eAAiBM,EACxBA,EAAOJ,eAAiBD,EACxBK,EAAO7W,iBAAmB1G,EAC1Bud,EAAOV,sBAAwBF,EAC/BzkB,OAAOgR,eAAeqU,EAAQ,WAAY,CACxCnlB,MAAO,WAKL,MAAO,IAAM4kB,CACf,IAGFO,EAAOK,cAAgB,SAAUC,EAE/BC,GAGA,OAAO3F,EAAa0F,GAASjQ,EAAAA,EAAAA,GAAS,CAAC,EAAG9Y,EAASgpB,EAAa,CAC9DnB,kBAAmBF,EAA0Bc,EAAQO,GAAa,MAChEzb,WAAM,EAAQrC,EACpB,EAEOud,CACT,CACF,ECrO6BQ,OAHlB,CAAC,IAAK,OAAQ,UAAW,OAAQ,UAAW,QAAS,QAAS,IAAK,OAAQ,MAAO,MAAO,MAAO,aAAc,OAAQ,KAAM,SAAU,SAAU,UAAW,OAAQ,OAAQ,MAAO,WAAY,OAAQ,WAAY,KAAM,MAAO,UAAW,MAAO,SAAU,MAAO,KAAM,KAAM,KAAM,QAAS,WAAY,aAAc,SAAU,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQ,SAAU,SAAU,KAAM,OAAQ,IAAK,SAAU,MAAO,QAAS,MAAO,MAAO,SAAU,QAAS,SAAU,KAAM,OAAQ,OAAQ,MAAO,OAAQ,UAAW,OAAQ,WAAY,OAAQ,QAAS,MAAO,WAAY,SAAU,KAAM,WAAY,SAAU,SAAU,IAAK,QAAS,UAAW,MAAO,WAAY,IAAK,KAAM,KAAM,OAAQ,IAAK,OAAQ,SAAU,UAAW,SAAU,QAAS,SAAU,OAAQ,SAAU,QAAS,MAAO,UAAW,MAAO,QAAS,QAAS,KAAM,WAAY,QAAS,KAAM,QAAS,OAAQ,QAAS,KAAM,QAAS,IAAK,KAAM,MAAO,QAAS,MAC77B,SAAU,WAAY,OAAQ,UAAW,gBAAiB,IAAK,QAAS,OAAQ,iBAAkB,OAAQ,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,OAAQ,MAAO,OAAQ,SAGhMxnB,SAAQ,SAAU6kB,GACrB2B,EAAU3B,GAAW2B,EAAU3B,EACjC,qCCLA,IAAInb,EAOW,SAAS+d,EAAqBjkB,GAC3C,MAAM,YACJkkB,EAAW,SACXjkB,GACED,EACJ,OAAOkkB,GAAehe,GAAqBuO,EAAAA,EAAAA,KAAK7N,EAAAA,EAAe,CAC7DvI,MAAO6H,EACPjG,SAAUA,IACPA,CACP,CAfwB,kBAAbtD,WACTuJ,GAAQvB,EAAAA,EAAAA,GAAY,CAClBxI,IAAK,MACLV,SAAS,kBCHE,SAASiV,EAAOvV,EAAKJ,GAalC,OAZsBopB,EAAShpB,EAAKJ,EAatC,CAGO,MAAMqpB,EAAyBA,CAACjpB,EAAKkpB,KAGtCvf,MAAMiI,QAAQ5R,EAAIwR,oBACpBxR,EAAIwR,iBAAmB0X,EAAUlpB,EAAIwR,kBACvC,mCC/BEgC,EAAyBC,EAAQ,MAIrCC,EAAQ,GAAQyV,EAGhBzV,EAAQ,GAASgI,EAGjBhI,EAAQ,GA8NR,SAA0B0V,EAAYjP,GACpC,MAAMkP,EAAOC,EAAaF,GACpBG,EAAOD,EAAanP,GAC1B,OAAQxX,KAAK6mB,IAAIH,EAAME,GAAQ,MAAS5mB,KAAK8mB,IAAIJ,EAAME,GAAQ,IACjE,EA9NA7V,EAAQ,EAAU+H,EAQlB,IAAIiO,EAA0BlW,EAAuBC,EAAQ,MACzDkW,EAASnW,EAAuBC,EAAQ,OAU5C,SAASmW,EAAa1mB,GAAyB,IAAlBumB,EAAG3c,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAG0c,EAAG1c,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAM1C,OAAO,EAAI6c,EAAO9V,SAAS3Q,EAAOumB,EAAKD,EACzC,CAOA,SAASK,EAASnU,GAChBA,EAAQA,EAAM3R,MAAM,GACpB,MAAM+lB,EAAK,IAAIC,OAAO,OAADrf,OAAQgL,EAAMvV,QAAU,EAAI,EAAI,EAAC,KAAK,KAC3D,IAAI6pB,EAAStU,EAAMnM,MAAMugB,GAIzB,OAHIE,GAA+B,IAArBA,EAAO,GAAG7pB,SACtB6pB,EAASA,EAAO5gB,KAAI6gB,GAAKA,EAAIA,KAExBD,EAAS,MAAHtf,OAA2B,IAAlBsf,EAAO7pB,OAAe,IAAM,GAAE,KAAAuK,OAAIsf,EAAO5gB,KAAI,CAAC6gB,EAAGvmB,IAC9DA,EAAQ,EAAIwmB,SAASD,EAAG,IAAMtnB,KAAK+b,MAAMwL,SAASD,EAAG,IAAM,IAAM,KAAQ,MAC/EtjB,KAAK,MAAK,KAAM,EACrB,CAaA,SAASwjB,EAAezU,GAEtB,GAAIA,EAAM9Q,KACR,OAAO8Q,EAET,GAAwB,MAApBA,EAAM0U,OAAO,GACf,OAAOD,EAAeN,EAASnU,IAEjC,MAAM2U,EAAS3U,EAAMlS,QAAQ,KACvBoB,EAAO8Q,EAAM4U,UAAU,EAAGD,GAChC,IAA+D,IAA3D,CAAC,MAAO,OAAQ,MAAO,OAAQ,SAAS7mB,QAAQoB,GAClD,MAAM,IAAIkN,OACgF,EAAI4X,EAAwB7V,SAAS,EAAG6B,IAEpI,IACI6U,EADAC,EAAS9U,EAAM4U,UAAUD,EAAS,EAAG3U,EAAMvV,OAAS,GAExD,GAAa,UAATyE,GAMF,GALA4lB,EAASA,EAAOpgB,MAAM,KACtBmgB,EAAaC,EAAOC,QACE,IAAlBD,EAAOrqB,QAAwC,MAAxBqqB,EAAO,GAAGJ,OAAO,KAC1CI,EAAO,GAAKA,EAAO,GAAGzmB,MAAM,KAE6D,IAAvF,CAAC,OAAQ,aAAc,UAAW,eAAgB,YAAYP,QAAQ+mB,GACxE,MAAM,IAAIzY,OACgF,EAAI4X,EAAwB7V,SAAS,GAAI0W,SAGrIC,EAASA,EAAOpgB,MAAM,KAGxB,OADAogB,EAASA,EAAOphB,KAAIlG,GAASwnB,WAAWxnB,KACjC,CACL0B,OACA4lB,SACAD,aAEJ,CAQA,MAAMI,EAAejV,IACnB,MAAMkV,EAAkBT,EAAezU,GACvC,OAAOkV,EAAgBJ,OAAOzmB,MAAM,EAAG,GAAGqF,KAAI,CAACyhB,EAAKC,KAAiD,IAAzCF,EAAgBhmB,KAAKpB,QAAQ,QAAyB,IAARsnB,EAAY,GAAHpgB,OAAMmgB,EAAG,KAAMA,IAAKlkB,KAAK,IAAI,EAsBlJ,SAASokB,EAAerV,GACtB,MAAM,KACJ9Q,EAAI,WACJ2lB,GACE7U,EACJ,IAAI,OACF8U,GACE9U,EAaJ,OAZ6B,IAAzB9Q,EAAKpB,QAAQ,OAEfgnB,EAASA,EAAOphB,KAAI,CAAC6gB,EAAGloB,IAAMA,EAAI,EAAImoB,SAASD,EAAG,IAAMA,KACtB,IAAzBrlB,EAAKpB,QAAQ,SACtBgnB,EAAO,GAAK,GAAH9f,OAAM8f,EAAO,GAAE,KACxBA,EAAO,GAAK,GAAH9f,OAAM8f,EAAO,GAAE,MAGxBA,GAD6B,IAA3B5lB,EAAKpB,QAAQ,SACN,GAAHkH,OAAM6f,EAAU,KAAA7f,OAAI8f,EAAO7jB,KAAK,MAE7B,GAAH+D,OAAM8f,EAAO7jB,KAAK,OAEnB,GAAP+D,OAAU9F,EAAI,KAAA8F,OAAI8f,EAAM,IAC1B,CAuBA,SAASQ,EAAStV,GAChBA,EAAQyU,EAAezU,GACvB,MAAM,OACJ8U,GACE9U,EACE9C,EAAI4X,EAAO,GACXS,EAAIT,EAAO,GAAK,IAChBU,EAAIV,EAAO,GAAK,IAChBW,EAAIF,EAAItoB,KAAK8mB,IAAIyB,EAAG,EAAIA,GACxBE,EAAI,SAACnB,GAAC,IAAEhiB,EAAC6E,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,IAAImd,EAAIrX,EAAI,IAAM,GAAE,OAAKsY,EAAIC,EAAIxoB,KAAK6mB,IAAI7mB,KAAK8mB,IAAIxhB,EAAI,EAAG,EAAIA,EAAG,IAAK,EAAE,EACvF,IAAIrD,EAAO,MACX,MAAMymB,EAAM,CAAC1oB,KAAK+b,MAAa,IAAP0M,EAAE,IAAWzoB,KAAK+b,MAAa,IAAP0M,EAAE,IAAWzoB,KAAK+b,MAAa,IAAP0M,EAAE,KAK1E,MAJmB,SAAf1V,EAAM9Q,OACRA,GAAQ,IACRymB,EAAI3qB,KAAK8pB,EAAO,KAEXO,EAAe,CACpBnmB,OACA4lB,OAAQa,GAEZ,CASA,SAAS/B,EAAa5T,GAEpB,IAAI2V,EAAqB,SADzB3V,EAAQyU,EAAezU,IACP9Q,MAAiC,SAAf8Q,EAAM9Q,KAAkBulB,EAAea,EAAStV,IAAQ8U,OAAS9U,EAAM8U,OASzG,OARAa,EAAMA,EAAIjiB,KAAIyhB,IACO,UAAfnV,EAAM9Q,OACRimB,GAAO,KAEFA,GAAO,OAAUA,EAAM,QAAUA,EAAM,MAAS,QAAU,OAI5DS,QAAQ,MAASD,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAAIE,QAAQ,GAC9E,CAuBA,SAASpC,EAAMzT,EAAOxS,GAWpB,OAVAwS,EAAQyU,EAAezU,GACvBxS,EAAQ0mB,EAAa1mB,GACF,QAAfwS,EAAM9Q,MAAiC,QAAf8Q,EAAM9Q,OAChC8Q,EAAM9Q,MAAQ,KAEG,UAAf8Q,EAAM9Q,KACR8Q,EAAM8U,OAAO,GAAK,IAAH9f,OAAOxH,GAEtBwS,EAAM8U,OAAO,GAAKtnB,EAEb6nB,EAAerV,EACxB,CAkBA,SAASgG,EAAOhG,EAAO8V,GAGrB,GAFA9V,EAAQyU,EAAezU,GACvB8V,EAAc5B,EAAa4B,IACQ,IAA/B9V,EAAM9Q,KAAKpB,QAAQ,OACrBkS,EAAM8U,OAAO,IAAM,EAAIgB,OAClB,IAAmC,IAA/B9V,EAAM9Q,KAAKpB,QAAQ,SAAkD,IAAjCkS,EAAM9Q,KAAKpB,QAAQ,SAChE,IAAK,IAAIzB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B2T,EAAM8U,OAAOzoB,IAAM,EAAIypB,EAG3B,OAAOT,EAAerV,EACxB,CAkBA,SAAS+F,EAAQ/F,EAAO8V,GAGtB,GAFA9V,EAAQyU,EAAezU,GACvB8V,EAAc5B,EAAa4B,IACQ,IAA/B9V,EAAM9Q,KAAKpB,QAAQ,OACrBkS,EAAM8U,OAAO,KAAO,IAAM9U,EAAM8U,OAAO,IAAMgB,OACxC,IAAmC,IAA/B9V,EAAM9Q,KAAKpB,QAAQ,OAC5B,IAAK,IAAIzB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B2T,EAAM8U,OAAOzoB,KAAO,IAAM2T,EAAM8U,OAAOzoB,IAAMypB,OAE1C,IAAqC,IAAjC9V,EAAM9Q,KAAKpB,QAAQ,SAC5B,IAAK,IAAIzB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B2T,EAAM8U,OAAOzoB,KAAO,EAAI2T,EAAM8U,OAAOzoB,IAAMypB,EAG/C,OAAOT,EAAerV,EACxB,CAmBA,SAAS+V,EAAU/V,GAA2B,IAApB8V,EAAW1e,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IACtC,OAAOwc,EAAa5T,GAAS,GAAMgG,EAAOhG,EAAO8V,GAAe/P,EAAQ/F,EAAO8V,EACjF,mCCpVIhY,EAAyBC,EAAQ,MAIrCC,EAAQ,GAmGR,WAAkC,IAAZgY,EAAK5e,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC7B,MAAM,QACJoW,EAAO,aACPE,EAAeuI,EAAkB,sBACjCtI,EAAwBoE,EAAiB,sBACzCzE,EAAwByE,GACtBiE,EACEE,EAAW/mB,IACR,EAAIgnB,EAAiBhY,UAAS,EAAIiY,EAAUjY,SAAS,CAAC,EAAGhP,EAAO,CACrE2P,MAAOuX,GAAa,EAAID,EAAUjY,SAAS,CAAC,EAAGhP,EAAO,CACpDue,eACAF,gBAKN,OADA0I,EAASI,gBAAiB,EACnB,SAAChsB,GAA2B,IAAtBisB,EAAYnf,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,GAE3B,EAAIof,EAAcjD,wBAAwBjpB,GAAK8K,GAAUA,EAAOqhB,QAAOC,KAAoB,MAATA,GAAiBA,EAAMJ,oBACzG,MACIhhB,KAAM6Y,EACN3O,KAAMmX,EACNC,qBAAsBC,EACtBC,OAAQC,EAAW,kBAGnBjX,EAAoBkX,EAAyBC,EAAqBN,KAChEJ,EACJrsB,GAAU,EAAIgtB,EAA+B/Y,SAASoY,EAAcY,GAGhEP,OAAqD1rB,IAA9B2rB,EAA0CA,EAGvEF,GAAmC,SAAlBA,GAA8C,SAAlBA,IAA4B,EACnEG,EAASC,IAAe,EAS9B,IAAIK,EAA0BrF,EAIR,SAAlB4E,GAA8C,SAAlBA,EAC9BS,EAA0BzJ,EACjBgJ,EAETS,EAA0B9J,EAjIhC,SAAqBhjB,GACnB,MAAsB,kBAARA,GAIdA,EAAI2D,WAAW,GAAK,EACtB,CA4He4P,CAAYvT,KAErB8sB,OAA0BlsB,GAE5B,MAAMmsB,GAAwB,EAAIb,EAAcrY,SAAS7T,GAAK,EAAI8rB,EAAUjY,SAAS,CACnF4T,kBAAmBqF,EACnB5E,MAvBEA,WAwBDtoB,IACGotB,EAAoBC,GAIC,oBAAdA,GAA4BA,EAAUlF,iBAAmBkF,IAAa,EAAIC,EAAWC,eAAeF,GACtGpoB,GAASuoB,EAAgBH,GAAW,EAAInB,EAAUjY,SAAS,CAAC,EAAGhP,EAAO,CAC3E2P,MAAOuX,EAAa,CAClBvX,MAAO3P,EAAM2P,MACb4O,eACAF,eAIC+J,EAEHI,EAAoB,SAACC,GACzB,IAAIC,EAAsBP,EAAkBM,GAAU,QAAAzgB,EAAAC,UAAA3M,OADhBqtB,EAAW,IAAA7jB,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAXwgB,EAAWxgB,EAAA,GAAAF,UAAAE,GAEjD,MAAMygB,EAA8BD,EAAcA,EAAYpkB,IAAI4jB,GAAqB,GACnFnJ,GAAiBrO,GACnBiY,EAA4B/sB,MAAKmE,IAC/B,MAAM2P,EAAQuX,GAAa,EAAID,EAAUjY,SAAS,CAAC,EAAGhP,EAAO,CAC3Due,eACAF,aAEF,IAAK1O,EAAMC,aAAeD,EAAMC,WAAWoP,KAAmBrP,EAAMC,WAAWoP,GAAehP,eAC5F,OAAO,KAET,MAAMA,EAAiBL,EAAMC,WAAWoP,GAAehP,eACjD6Y,EAAyB,CAAC,EAOhC,OALA1qB,OAAO2qB,QAAQ9Y,GAAgBxT,SAAQusB,IAA0B,IAAxBC,EAASC,GAAUF,EAC1DF,EAAuBG,GAAWT,EAAgBU,GAAW,EAAIhC,EAAUjY,SAAS,CAAC,EAAGhP,EAAO,CAC7F2P,UACC,IAEEgB,EAAkB3Q,EAAO6oB,EAAuB,IAGvD7J,IAAkByI,GACpBmB,EAA4B/sB,MAAKmE,IAC/B,IAAIkpB,EACJ,MAAMvZ,EAAQuX,GAAa,EAAID,EAAUjY,SAAS,CAAC,EAAGhP,EAAO,CAC3Due,eACAF,aAGF,OAAOkK,EAAgB,CACrBtY,SAF6B,MAATN,GAA2D,OAAzCuZ,EAAoBvZ,EAAMC,aAAiF,OAAzDsZ,EAAoBA,EAAkBlK,SAA0B,EAASkK,EAAkBjZ,WAGlL,EAAIgX,EAAUjY,SAAS,CAAC,EAAGhP,EAAO,CACnC2P,UACC,IAGFgY,GACHiB,EAA4B/sB,KAAKkrB,GAEnC,MAAMoC,EAAwBP,EAA4BttB,OAASqtB,EAAYrtB,OAC/E,GAAIwJ,MAAMiI,QAAQ0b,IAAaU,EAAwB,EAAG,CACxD,MAAMC,EAAe,IAAItkB,MAAMqkB,GAAuBjX,KAAK,IAE3DwW,EAAsB,IAAID,KAAaW,GACvCV,EAAoB/a,IAAM,IAAI8a,EAAS9a,OAAQyb,EACjD,CACA,MAAMzK,EAAYuJ,EAAsBQ,KAAwBE,GAchE,OAHIztB,EAAIuZ,UACNiK,EAAUjK,QAAUvZ,EAAIuZ,SAEnBiK,CACT,EAIA,OAHIuJ,EAAsBmB,aACxBb,EAAkBa,WAAanB,EAAsBmB,YAEhDb,CACT,CACF,EAjPA,IAAIvB,EAAYtY,EAAuBC,EAAQ,OAC3CmZ,EAAiCpZ,EAAuBC,EAAQ,OAChEyY,EAWJ,SAAiC7pB,EAAG8rB,GAAK,IAAKA,GAAK9rB,GAAKA,EAAE+rB,WAAY,OAAO/rB,EAAG,GAAI,OAASA,GAAK,iBAAmBA,GAAK,mBAAqBA,EAAG,MAAO,CAAEwR,QAASxR,GAAK,IAAIgsB,EAAIC,EAAyBH,GAAI,GAAIE,GAAKA,EAAEE,IAAIlsB,GAAI,OAAOgsB,EAAExlB,IAAIxG,GAAI,IAAI4nB,EAAI,CAAEuE,UAAW,MAAQrD,EAAInoB,OAAOgR,gBAAkBhR,OAAOyrB,yBAA0B,IAAK,IAAIC,KAAKrsB,EAAG,GAAI,YAAcqsB,GAAK1rB,OAAO9B,UAAUsa,eAAe5R,KAAKvH,EAAGqsB,GAAI,CAAE,IAAI3sB,EAAIopB,EAAInoB,OAAOyrB,yBAAyBpsB,EAAGqsB,GAAK,KAAM3sB,IAAMA,EAAE8G,KAAO9G,EAAE+G,KAAO9F,OAAOgR,eAAeiW,EAAGyE,EAAG3sB,GAAKkoB,EAAEyE,GAAKrsB,EAAEqsB,EAAI,CAAE,OAAOzE,EAAEpW,QAAUxR,EAAGgsB,GAAKA,EAAEvlB,IAAIzG,EAAG4nB,GAAIA,CAAG,CAX5jB0E,CAAwBlb,EAAQ,OAChDyZ,EAAazZ,EAAQ,MAGrBmb,GAFcpb,EAAuBC,EAAQ,OAC3BD,EAAuBC,EAAQ,OAClCD,EAAuBC,EAAQ,QAC9CoY,EAAmBrY,EAAuBC,EAAQ,OACtD,MAAM4B,EAAY,CAAC,cACjBwZ,EAAa,CAAC,YACdhC,EAAa,CAAC,OAAQ,OAAQ,uBAAwB,SAAU,qBAElE,SAASyB,EAAyBjsB,GAAK,GAAI,mBAAqBqG,QAAS,OAAO,KAAM,IAAIylB,EAAI,IAAIzlB,QAAW2lB,EAAI,IAAI3lB,QAAW,OAAQ4lB,EAA2B,SAAUjsB,GAAK,OAAOA,EAAIgsB,EAAIF,CAAG,GAAG9rB,EAAI,CAgB3M,SAASolB,EAAkB1E,GACzB,MAAgB,eAATA,GAAkC,UAATA,GAA6B,OAATA,GAA0B,OAATA,CACvE,CACA,MAAM4I,GAAkD,EAAIiD,EAAa/a,WACnE8Y,EAAuBhb,GACtBA,EAGEA,EAAOyY,OAAO,GAAGvZ,cAAgBc,EAAO5N,MAAM,GAF5C4N,EAIX,SAASoa,EAAYzX,GAIlB,IAJmB,aACpB8O,EAAY,MACZ5O,EAAK,QACL0O,GACD5O,EACC,OA7Be5C,EA6BA8C,EA5BoB,IAA5BxR,OAAOgkB,KAAKtV,GAAKvR,OA4BAijB,EAAe5O,EAAM0O,IAAY1O,EA7B3D,IAAiB9C,CA8BjB,CACA,SAASgb,EAAyBxX,GAChC,OAAKA,EAGE,CAACrQ,EAAOiG,IAAWA,EAAOoK,GAFxB,IAGX,CACA,SAASkY,EAAgB0B,EAAejZ,GACtC,IAAI,WACAJ,GACEI,EACJhR,GAAQ,EAAI+nB,EAA+B/Y,SAASgC,EAAMR,GAC5D,MAAM0Z,EAA6C,oBAAlBD,EAA+BA,GAAc,EAAIhD,EAAUjY,SAAS,CACnG4B,cACC5Q,IAAUiqB,EACb,GAAInlB,MAAMiI,QAAQmd,GAChB,OAAOA,EAAkBC,SAAQC,GAAiB7B,EAAgB6B,GAAe,EAAInD,EAAUjY,SAAS,CACtG4B,cACC5Q,MAEL,GAAMkqB,GAAkD,kBAAtBA,GAAkCplB,MAAMiI,QAAQmd,EAAkBja,UAAW,CAC7G,MAAM,SACFA,EAAW,IACTia,EAEN,IAAI5c,GADY,EAAIya,EAA+B/Y,SAASkb,EAAmBF,GAwB/E,OAtBA/Z,EAASzT,SAAQ6tB,IACf,IAAIC,GAAU,EACe,oBAAlBD,EAAQrqB,MACjBsqB,EAAUD,EAAQrqB,OAAM,EAAIinB,EAAUjY,SAAS,CAC7C4B,cACC5Q,EAAO4Q,IAEVzS,OAAOgkB,KAAKkI,EAAQrqB,OAAOxD,SAAQL,KACd,MAAdyU,OAAqB,EAASA,EAAWzU,MAAUkuB,EAAQrqB,MAAM7D,IAAQ6D,EAAM7D,KAASkuB,EAAQrqB,MAAM7D,KACzGmuB,GAAU,EACZ,IAGAA,IACGxlB,MAAMiI,QAAQO,KACjBA,EAAS,CAACA,IAEZA,EAAOzR,KAA8B,oBAAlBwuB,EAAQ9C,MAAuB8C,EAAQ9C,OAAM,EAAIN,EAAUjY,SAAS,CACrF4B,cACC5Q,EAAO4Q,IAAeyZ,EAAQ9C,OACnC,IAEKja,CACT,CACA,OAAO4c,CACT,4GCjGO,MAAMvE,EAAS,CACpB4E,GAAI,EAEJC,GAAI,IAEJC,GAAI,IAEJC,GAAI,KAEJC,GAAI,MAEAC,EAAqB,CAGzBzI,KAAM,CAAC,KAAM,KAAM,KAAM,KAAM,MAC/BlG,GAAI9f,GAAO,qBAAJ0J,OAAyB8f,EAAOxpB,GAAI,QAEtC,SAAS0uB,EAAkB7qB,EAAO8qB,EAAWC,GAClD,MAAMpb,EAAQ3P,EAAM2P,OAAS,CAAC,EAC9B,GAAI7K,MAAMiI,QAAQ+d,GAAY,CAC5B,MAAME,EAAmBrb,EAAMmM,aAAe8O,EAC9C,OAAOE,EAAU1O,QAAO,CAACC,EAAK4O,EAAMpsB,KAClCwd,EAAI2O,EAAiB/O,GAAG+O,EAAiB7I,KAAKtjB,KAAWksB,EAAmBD,EAAUjsB,IAC/Ewd,IACN,CAAC,EACN,CACA,GAAyB,kBAAdyO,EAAwB,CACjC,MAAME,EAAmBrb,EAAMmM,aAAe8O,EAC9C,OAAOzsB,OAAOgkB,KAAK2I,GAAW1O,QAAO,CAACC,EAAK6O,KAEzC,IAA4E,IAAxE/sB,OAAOgkB,KAAK6I,EAAiBrF,QAAUA,GAAQhnB,QAAQusB,GAAoB,CAE7E7O,EADiB2O,EAAiB/O,GAAGiP,IACrBH,EAAmBD,EAAUI,GAAaA,EAC5D,KAAO,CACL,MAAMC,EAASD,EACf7O,EAAI8O,GAAUL,EAAUK,EAC1B,CACA,OAAO9O,CAAG,GACT,CAAC,EACN,CAEA,OADe0O,EAAmBD,EAEpC,CA6BO,SAASM,IAAmD,IAAvBC,EAAgBpjB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9D,IAAIqjB,EAMJ,OAL8E,OAAlDA,EAAwBD,EAAiBlJ,WAAgB,EAASmJ,EAAsBlP,QAAO,CAACC,EAAKlgB,KAE/HkgB,EAD2BgP,EAAiBpP,GAAG9f,IACrB,CAAC,EACpBkgB,IACN,CAAC,KACyB,CAAC,CAChC,CACO,SAASkP,EAAwBC,EAAgBjE,GACtD,OAAOiE,EAAepP,QAAO,CAACC,EAAKlgB,KACjC,MAAMsvB,EAAmBpP,EAAIlgB,GAK7B,QAJ4BsvB,GAA6D,IAAzCttB,OAAOgkB,KAAKsJ,GAAkBnwB,gBAErE+gB,EAAIlgB,GAENkgB,CAAG,GACTkL,EACL,CACO,SAASmE,EAAwBL,GACtC,MAAMM,EAAmBP,EAA4BC,GAAkB,QAAArjB,EAAAC,UAAA3M,OADZ2K,EAAM,IAAAnB,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAANlC,EAAMkC,EAAA,GAAAF,UAAAE,GAEjE,MAAMyjB,EAAe,CAACD,KAAqB1lB,GAAQmW,QAAO,CAAChc,EAAMC,KAASsY,EAAAA,EAAAA,GAAUvY,EAAMC,IAAO,CAAC,GAClG,OAAOkrB,EAAwBptB,OAAOgkB,KAAKwJ,GAAmBC,EAChE,CA2BO,SAASC,EAAuB7a,GAIpC,IAHD2U,OAAQmG,EACRhQ,YAAakP,EACbe,KAAMC,GACPhb,EACC,MAAM+a,EAAOC,GA3BR,SAAgCF,EAAkBd,GAEvD,GAAgC,kBAArBc,EACT,MAAO,CAAC,EAEV,MAAMC,EAAO,CAAC,EACRE,EAAkB9tB,OAAOgkB,KAAK6I,GAcpC,OAbIlmB,MAAMiI,QAAQ+e,GAChBG,EAAgBzvB,SAAQ,CAAC0uB,EAAYhuB,KAC/BA,EAAI4uB,EAAiBxwB,SACvBywB,EAAKb,IAAc,EACrB,IAGFe,EAAgBzvB,SAAQ0uB,IACc,MAAhCY,EAAiBZ,KACnBa,EAAKb,IAAc,EACrB,IAGGa,CACT,CAM6BG,CAAuBJ,EAAkBd,GAC9D7I,EAAOhkB,OAAOgkB,KAAK4J,GACzB,GAAoB,IAAhB5J,EAAK7mB,OACP,OAAOwwB,EAET,IAAIrpB,EACJ,OAAO0f,EAAK/F,QAAO,CAACC,EAAK6O,EAAYhuB,KAC/B4H,MAAMiI,QAAQ+e,IAChBzP,EAAI6O,GAAqC,MAAvBY,EAAiB5uB,GAAa4uB,EAAiB5uB,GAAK4uB,EAAiBrpB,GACvFA,EAAWvF,GAC0B,kBAArB4uB,GAChBzP,EAAI6O,GAA8C,MAAhCY,EAAiBZ,GAAsBY,EAAiBZ,GAAcY,EAAiBrpB,GACzGA,EAAWyoB,GAEX7O,EAAI6O,GAAcY,EAEbzP,IACN,CAAC,EACN,+BC7Fe,SAAS8P,EAAYhwB,EAAK8J,GAEvC,MAAM0J,EAAQ1U,KACd,GAAI0U,EAAMmD,MAAgD,oBAAjCnD,EAAMyc,uBAAuC,CAGpE,MAAMtmB,EAAW6J,EAAMyc,uBAAuBjwB,GAAKmC,QAAQ,eAAgB,eAC3E,MAAO,CACL,CAACwH,GAAWG,EAEhB,CACA,OAAI0J,EAAMoD,QAAQgE,OAAS5a,EAClB8J,EAEF,CAAC,CACV,wFCvEA,MAAMuK,EAAY,CAAC,SAAU,OAAQ,QAI/B6b,EAAwB1G,IAC5B,MAAM2G,EAAqBnuB,OAAOgkB,KAAKwD,GAAQphB,KAAIpI,IAAO,CACxDA,MACA6pB,IAAKL,EAAOxpB,QACP,GAGP,OADAmwB,EAAmBC,MAAK,CAACC,EAAaC,IAAgBD,EAAYxG,IAAMyG,EAAYzG,MAC7EsG,EAAmBlQ,QAAO,CAACC,EAAKxP,KAC9BgH,EAAAA,EAAAA,GAAS,CAAC,EAAGwI,EAAK,CACvB,CAACxP,EAAI1Q,KAAM0Q,EAAImZ,OAEhB,CAAC,EAAE,EAIO,SAAS0G,EAAkB5Q,GACxC,MAAM,OAGF6J,EAAS,CACP4E,GAAI,EAEJC,GAAI,IAEJC,GAAI,IAEJC,GAAI,KAEJC,GAAI,MACL,KACDgC,EAAO,KAAI,KACXC,EAAO,GACL9Q,EACJnI,GAAQC,EAAAA,EAAAA,GAA8BkI,EAAatL,GAC/Cqc,EAAeR,EAAsB1G,GACrCxD,EAAOhkB,OAAOgkB,KAAK0K,GACzB,SAAS5Q,EAAG9f,GACV,MAAMkC,EAA+B,kBAAhBsnB,EAAOxpB,GAAoBwpB,EAAOxpB,GAAOA,EAC9D,MAAO,qBAAP0J,OAA4BxH,GAAKwH,OAAG8mB,EAAI,IAC1C,CACA,SAASG,EAAK3wB,GACZ,MAAMkC,EAA+B,kBAAhBsnB,EAAOxpB,GAAoBwpB,EAAOxpB,GAAOA,EAC9D,MAAO,qBAAP0J,OAA4BxH,EAAQuuB,EAAO,KAAG/mB,OAAG8mB,EAAI,IACvD,CACA,SAASI,EAAQhL,EAAO9iB,GACtB,MAAM+tB,EAAW7K,EAAKxjB,QAAQM,GAC9B,MAAO,qBAAA4G,OAA8C,kBAAlB8f,EAAO5D,GAAsB4D,EAAO5D,GAASA,GAAKlc,OAAG8mB,EAAI,wBAAA9mB,SAAwC,IAAdmnB,GAAqD,kBAA3BrH,EAAOxD,EAAK6K,IAA0BrH,EAAOxD,EAAK6K,IAAa/tB,GAAO2tB,EAAO,KAAG/mB,OAAG8mB,EAAI,IACzO,CAkBA,OAAO9Y,EAAAA,EAAAA,GAAS,CACdsO,OACAwD,OAAQkH,EACR5Q,KACA6Q,OACAC,UACAE,KAvBF,SAAc9wB,GACZ,OAAIgmB,EAAKxjB,QAAQxC,GAAO,EAAIgmB,EAAK7mB,OACxByxB,EAAQ5wB,EAAKgmB,EAAKA,EAAKxjB,QAAQxC,GAAO,IAExC8f,EAAG9f,EACZ,EAmBE+wB,IAlBF,SAAa/wB,GAEX,MAAMgxB,EAAWhL,EAAKxjB,QAAQxC,GAC9B,OAAiB,IAAbgxB,EACKlR,EAAGkG,EAAK,IAEbgL,IAAahL,EAAK7mB,OAAS,EACtBwxB,EAAK3K,EAAKgL,IAEZJ,EAAQ5wB,EAAKgmB,EAAKA,EAAKxjB,QAAQxC,GAAO,IAAImC,QAAQ,SAAU,qBACrE,EASEquB,QACChZ,EACL,4FCjFA,MAGA,EAHc,CACZyZ,aAAc,mDCChB,MAAM5c,EAAY,CAAC,cAAe,UAAW,UAAW,SAwCxD,QAhCA,WAA4C,IAAvBzV,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9B,MACI6T,YAAauP,EAAmB,CAAC,EACjCtY,QAASyI,EAAe,CAAC,EACzB6R,QAASC,EACTC,MAAOC,EAAa,CAAC,GACnBzyB,EACJ4Y,GAAQC,EAAAA,EAAAA,GAA8B7Y,EAASyV,GAC3CsL,GAAc4Q,EAAAA,EAAAA,GAAkBrB,GAChCgC,ECdO,WAAyC,IAAlBC,EAAYrlB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAEnD,GAAIqlB,EAAaG,IACf,OAAOH,EAMT,MAAMI,GAAYC,EAAAA,EAAAA,IAAmB,CACnCN,QAASC,IAELD,EAAU,WAAkB,QAAArlB,EAAAC,UAAA3M,OAAdsyB,EAAS,IAAA9oB,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAATylB,EAASzlB,GAAAF,UAAAE,GAO3B,OADkC,IAArBylB,EAAUtyB,OAAe,CAAC,GAAKsyB,GAChCrpB,KAAI+X,IACd,MAAM3a,EAAS+rB,EAAUpR,GACzB,MAAyB,kBAAX3a,EAAsB,GAAHkE,OAAMlE,EAAM,MAAOA,CAAM,IACzDG,KAAK,IACV,EAEA,OADAurB,EAAQI,KAAM,EACPJ,CACT,CDZkBQ,CAAcP,GAC9B,IAAIzR,GAAWlD,EAAAA,EAAAA,GAAU,CACvBmD,cACAxF,UAAW,MACX1G,WAAY,CAAC,EAEbmD,SAASc,EAAAA,EAAAA,GAAS,CAChBkD,KAAM,SACLyE,GACH6R,UACAE,OAAO1Z,EAAAA,EAAAA,GAAS,CAAC,EAAG0Z,EAAOC,IAC1B7Z,GACHkI,EAASsQ,YAAcA,EAAAA,EAAY,QAAAnkB,EAAAC,UAAA3M,OArBC4M,EAAI,IAAApD,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,EAAA,GAAAF,UAAAE,GA8BxC,OARA0T,EAAW3T,EAAKkU,QAAO,CAACC,EAAKC,KAAa3D,EAAAA,EAAAA,GAAU0D,EAAKC,IAAWT,GACpEA,EAASU,mBAAoB1I,EAAAA,EAAAA,GAAS,CAAC,EAAG2I,EAAAA,EAA0B,MAAT7I,OAAgB,EAASA,EAAM4I,mBAC1FV,EAASY,YAAc,SAAYzc,GACjC,OAAO0c,EAAAA,EAAAA,GAAgB,CACrBC,GAAI3c,EACJ2P,MAAO1U,MAEX,EACO4gB,CACT,4NEhCA,QARA,SAAeQ,EAAK4O,GAClB,OAAKA,GAGEtS,EAAAA,EAAAA,GAAU0D,EAAK4O,EAAM,CAC1BtQ,OAAO,IAHA0B,CAKX,uHCHA,MAAMyR,EAAa,CACjBC,EAAG,SACHC,EAAG,WAECC,EAAa,CACjBzE,EAAG,MACHF,EAAG,QACH4E,EAAG,SACH7H,EAAG,OACHhjB,EAAG,CAAC,OAAQ,SACZC,EAAG,CAAC,MAAO,WAEP6qB,EAAU,CACdC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,SAAU,MAMNC,EC3BS,SAAiBloB,GAC9B,MAAMJ,EAAQ,CAAC,EACf,OAAOM,SACczK,IAAfmK,EAAMM,KACRN,EAAMM,GAAOF,EAAGE,IAEXN,EAAMM,GAEjB,CDmByBH,EAAQ6X,IAE/B,GAAIA,EAAK5iB,OAAS,EAAG,CACnB,IAAI6yB,EAAQjQ,GAGV,MAAO,CAACA,GAFRA,EAAOiQ,EAAQjQ,EAInB,CACA,MAAOoI,EAAG4H,GAAKhQ,EAAK3Y,MAAM,IACpB/C,EAAWsrB,EAAWxH,GACtBhQ,EAAY2X,EAAWC,IAAM,GACnC,OAAOppB,MAAMiI,QAAQuJ,GAAaA,EAAU/R,KAAIkqB,GAAOjsB,EAAWisB,IAAO,CAACjsB,EAAW8T,EAAU,IAEpFoY,EAAa,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SAAU,YAAa,cAAe,eAAgB,aAAc,UAAW,UAAW,eAAgB,oBAAqB,kBAAmB,cAAe,mBAAoB,kBAC5OC,EAAc,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,aAAc,eAAgB,gBAAiB,cAAe,WAAY,WAAY,gBAAiB,qBAAsB,mBAAoB,eAAgB,oBAAqB,mBAChQC,EAAc,IAAIF,KAAeC,GAChC,SAASE,EAAgBlf,EAAOmf,EAAUC,EAAchQ,GAC7D,IAAIiQ,EACJ,MAAMC,EAA+D,OAA/CD,GAAWE,EAAAA,EAAAA,IAAQvf,EAAOmf,GAAU,IAAkBE,EAAWD,EACvF,MAA4B,kBAAjBE,EACFpxB,GACc,kBAARA,EACFA,EAOFoxB,EAAepxB,EAGtBiH,MAAMiI,QAAQkiB,GACTpxB,GACc,kBAARA,EACFA,EASFoxB,EAAapxB,GAGI,oBAAjBoxB,EACFA,EAKF,KAAe,CACxB,CACO,SAAStB,EAAmBhe,GACjC,OAAOkf,EAAgBlf,EAAO,UAAW,EAC3C,CACO,SAASwf,EAASC,EAAatE,GACpC,GAAyB,kBAAdA,GAAuC,MAAbA,EACnC,OAAOA,EAET,MACMuE,EAAcD,EADRtxB,KAAKD,IAAIitB,IAErB,OAAIA,GAAa,EACRuE,EAEkB,kBAAhBA,GACDA,EAEH,IAAPxpB,OAAWwpB,EACb,CAOA,SAASC,EAAmBtvB,EAAOmiB,EAAMjE,EAAMkR,GAG7C,IAA4B,IAAxBjN,EAAKxjB,QAAQuf,GACf,OAAO,KAET,MACM6M,EAbD,SAA+BwE,EAAeH,GACnD,OAAOtE,GAAayE,EAAcnT,QAAO,CAACC,EAAKmT,KAC7CnT,EAAImT,GAAeL,EAASC,EAAatE,GAClCzO,IACN,CAAC,EACN,CAQ6BoT,CADLjB,EAAiBtQ,GACyBkR,GAC1DtE,EAAY9qB,EAAMke,GACxB,OAAO2M,EAAAA,EAAAA,IAAkB7qB,EAAO8qB,EAAWC,EAC7C,CACA,SAASxD,EAAMvnB,EAAOmiB,GACpB,MAAMiN,EAAczB,EAAmB3tB,EAAM2P,OAC7C,OAAOxR,OAAOgkB,KAAKniB,GAAOuE,KAAI2Z,GAAQoR,EAAmBtvB,EAAOmiB,EAAMjE,EAAMkR,KAAchT,OAAOsT,EAAAA,EAAO,CAAC,EAC3G,CACO,SAASC,EAAO3vB,GACrB,OAAOunB,EAAMvnB,EAAO0uB,EACtB,CAMO,SAASkB,EAAQ5vB,GACtB,OAAOunB,EAAMvnB,EAAO2uB,EACtB,CAMA,SAAStB,EAAQrtB,GACf,OAAOunB,EAAMvnB,EAAO4uB,EACtB,CAfAe,EAAOE,UAGE,CAAC,EACVF,EAAOG,YAAcpB,EAIrBkB,EAAQC,UAGC,CAAC,EACVD,EAAQE,YAAcnB,EAItBtB,EAAQwC,UAGC,CAAC,EACVxC,EAAQyC,YAAclB,2FE7If,SAASM,EAAQriB,EAAK4R,GAAwB,IAAlBsR,IAAS9nB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GAC1C,IAAKwW,GAAwB,kBAATA,EAClB,OAAO,KAIT,GAAI5R,GAAOA,EAAIiG,MAAQid,EAAW,CAChC,MAAM/J,EAAM,QAAAngB,OAAQ4Y,GAAOlZ,MAAM,KAAK6W,QAAO,CAACC,EAAK4O,IAAS5O,GAAOA,EAAI4O,GAAQ5O,EAAI4O,GAAQ,MAAMpe,GACjG,GAAW,MAAPmZ,EACF,OAAOA,CAEX,CACA,OAAOvH,EAAKlZ,MAAM,KAAK6W,QAAO,CAACC,EAAK4O,IAC9B5O,GAAoB,MAAbA,EAAI4O,GACN5O,EAAI4O,GAEN,MACNpe,EACL,CACO,SAASmjB,EAAcC,EAAcvC,EAAWwC,GAA4C,IAC7F7xB,EADiE8xB,EAASloB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGioB,EAYjF,OATE7xB,EAD0B,oBAAjB4xB,EACDA,EAAaC,GACZprB,MAAMiI,QAAQkjB,GACfA,EAAaC,IAAmBC,EAEhCjB,EAAQe,EAAcC,IAAmBC,EAE/CzC,IACFrvB,EAAQqvB,EAAUrvB,EAAO8xB,EAAWF,IAE/B5xB,CACT,CAuCA,QAtCA,SAAetD,GACb,MAAM,KACJmjB,EAAI,YACJsR,EAAcz0B,EAAQmjB,KAAI,SAC1B4Q,EAAQ,UACRpB,GACE3yB,EAIEuL,EAAKtG,IACT,GAAmB,MAAfA,EAAMke,GACR,OAAO,KAET,MAAM4M,EAAY9qB,EAAMke,GAElB+R,EAAef,EADPlvB,EAAM2P,MACgBmf,IAAa,CAAC,EAclD,OAAOjE,EAAAA,EAAAA,IAAkB7qB,EAAO8qB,GAbLoF,IACzB,IAAI7xB,EAAQ2xB,EAAcC,EAAcvC,EAAWwC,GAKnD,OAJIA,IAAmB7xB,GAAmC,kBAAnB6xB,IAErC7xB,EAAQ2xB,EAAcC,EAAcvC,EAAW,GAAF7nB,OAAKqY,GAAIrY,OAAsB,YAAnBqqB,EAA+B,IAAKpf,EAAAA,EAAAA,GAAWof,IAAmBA,KAEzG,IAAhBV,EACKnxB,EAEF,CACL,CAACmxB,GAAcnxB,EAChB,GAE2D,EAMhE,OAJAiI,EAAGupB,UAEC,CAAC,EACLvpB,EAAGwpB,YAAc,CAAC5R,GACX5X,CACT,kFClDA,QAtBA,WAA4B,QAAA0B,EAAAC,UAAA3M,OAAR2K,EAAM,IAAAnB,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAANlC,EAAMkC,GAAAF,UAAAE,GACxB,MAAMioB,EAAWnqB,EAAOmW,QAAO,CAACC,EAAKkL,KACnCA,EAAMuI,YAAYtzB,SAAQ0hB,IACxB7B,EAAI6B,GAAQqJ,CAAK,IAEZlL,IACN,CAAC,GAIE/V,EAAKtG,GACF7B,OAAOgkB,KAAKniB,GAAOoc,QAAO,CAACC,EAAK6B,IACjCkS,EAASlS,IACJwR,EAAAA,EAAAA,GAAMrT,EAAK+T,EAASlS,GAAMle,IAE5Bqc,GACN,CAAC,GAIN,OAFA/V,EAAGupB,UAA6H,CAAC,EACjIvpB,EAAGwpB,YAAc7pB,EAAOmW,QAAO,CAACC,EAAKkL,IAAUlL,EAAIxW,OAAO0hB,EAAMuI,cAAc,IACvExpB,CACT,gBCjBO,SAAS+pB,EAAgBhyB,GAC9B,MAAqB,kBAAVA,EACFA,EAEF,GAAPwH,OAAUxH,EAAK,WACjB,CACA,SAASiyB,EAAkBpS,EAAMwP,GAC/B,OAAOnG,EAAAA,EAAAA,IAAM,CACXrJ,OACA4Q,SAAU,UACVpB,aAEJ,CACO,MAAM6C,EAASD,EAAkB,SAAUD,GACrCG,EAAYF,EAAkB,YAAaD,GAC3CI,EAAcH,EAAkB,cAAeD,GAC/CK,EAAeJ,EAAkB,eAAgBD,GACjDM,EAAaL,EAAkB,aAAcD,GAC7CO,EAAcN,EAAkB,eAChCO,EAAiBP,EAAkB,kBACnCQ,EAAmBR,EAAkB,oBACrCS,EAAoBT,EAAkB,qBACtCU,EAAkBV,EAAkB,mBACpCW,EAAUX,EAAkB,UAAWD,GACvCa,EAAeZ,EAAkB,gBAIjClD,EAAeptB,IAC1B,QAA2BjE,IAAvBiE,EAAMotB,cAAqD,OAAvBptB,EAAMotB,aAAuB,CACnE,MAAMgC,GAAcP,EAAAA,EAAAA,IAAgB7uB,EAAM2P,MAAO,qBAAsB,EAAG,gBACpEob,EAAqBD,IAAa,CACtCsC,cAAc+B,EAAAA,EAAAA,IAASC,EAAatE,KAEtC,OAAOD,EAAAA,EAAAA,IAAkB7qB,EAAOA,EAAMotB,aAAcrC,EACtD,CACA,OAAO,IAAI,EAEbqC,EAAayC,UAET,CAAC,EACLzC,EAAa0C,YAAc,CAAC,gBACZqB,EAAQZ,EAAQC,EAAWC,EAAaC,EAAcC,EAAYC,EAAaC,EAAgBC,EAAkBC,EAAmBC,EAAiB5D,EAAc6D,EAASC,GAA5L,MCvCaE,EAAMpxB,IACjB,QAAkBjE,IAAdiE,EAAMoxB,KAAmC,OAAdpxB,EAAMoxB,IAAc,CACjD,MAAMhC,GAAcP,EAAAA,EAAAA,IAAgB7uB,EAAM2P,MAAO,UAAW,EAAG,OACzDob,EAAqBD,IAAa,CACtCsG,KAAKjC,EAAAA,EAAAA,IAASC,EAAatE,KAE7B,OAAOD,EAAAA,EAAAA,IAAkB7qB,EAAOA,EAAMoxB,IAAKrG,EAC7C,CACA,OAAO,IAAI,EAEbqG,EAAIvB,UAEA,CAAC,EACLuB,EAAItB,YAAc,CAAC,OAIZ,MAAMuB,EAAYrxB,IACvB,QAAwBjE,IAApBiE,EAAMqxB,WAA+C,OAApBrxB,EAAMqxB,UAAoB,CAC7D,MAAMjC,GAAcP,EAAAA,EAAAA,IAAgB7uB,EAAM2P,MAAO,UAAW,EAAG,aACzDob,EAAqBD,IAAa,CACtCuG,WAAWlC,EAAAA,EAAAA,IAASC,EAAatE,KAEnC,OAAOD,EAAAA,EAAAA,IAAkB7qB,EAAOA,EAAMqxB,UAAWtG,EACnD,CACA,OAAO,IAAI,EAEbsG,EAAUxB,UAEN,CAAC,EACLwB,EAAUvB,YAAc,CAAC,aAIlB,MAAMwB,EAAStxB,IACpB,QAAqBjE,IAAjBiE,EAAMsxB,QAAyC,OAAjBtxB,EAAMsxB,OAAiB,CACvD,MAAMlC,GAAcP,EAAAA,EAAAA,IAAgB7uB,EAAM2P,MAAO,UAAW,EAAG,UACzDob,EAAqBD,IAAa,CACtCwG,QAAQnC,EAAAA,EAAAA,IAASC,EAAatE,KAEhC,OAAOD,EAAAA,EAAAA,IAAkB7qB,EAAOA,EAAMsxB,OAAQvG,EAChD,CACA,OAAO,IAAI,EAEbuG,EAAOzB,UAEH,CAAC,EACLyB,EAAOxB,YAAc,CAAC,UA4BTqB,EAAQC,EAAKC,EAAWC,GA3BX/J,EAAAA,EAAAA,IAAM,CAC9BrJ,KAAM,gBAEeqJ,EAAAA,EAAAA,IAAM,CAC3BrJ,KAAM,aAEoBqJ,EAAAA,EAAAA,IAAM,CAChCrJ,KAAM,kBAEuBqJ,EAAAA,EAAAA,IAAM,CACnCrJ,KAAM,qBAEoBqJ,EAAAA,EAAAA,IAAM,CAChCrJ,KAAM,kBAE2BqJ,EAAAA,EAAAA,IAAM,CACvCrJ,KAAM,yBAEwBqJ,EAAAA,EAAAA,IAAM,CACpCrJ,KAAM,sBAEyBqJ,EAAAA,EAAAA,IAAM,CACrCrJ,KAAM,uBAEgBqJ,EAAAA,EAAAA,IAAM,CAC5BrJ,KAAM,cC/ED,SAASqT,EAAiBlzB,EAAO8xB,GACtC,MAAkB,SAAdA,EACKA,EAEF9xB,CACT,CAiBgB8yB,GAhBK5J,EAAAA,EAAAA,IAAM,CACzBrJ,KAAM,QACN4Q,SAAU,UACVpB,UAAW6D,KAEUhK,EAAAA,EAAAA,IAAM,CAC3BrJ,KAAM,UACNsR,YAAa,kBACbV,SAAU,UACVpB,UAAW6D,KAEkBhK,EAAAA,EAAAA,IAAM,CACnCrJ,KAAM,kBACN4Q,SAAU,UACVpB,UAAW6D,KCnBN,SAASC,EAAgBnzB,GAC9B,OAAOA,GAAS,GAAe,IAAVA,EAAc,GAAHwH,OAAc,IAARxH,EAAW,KAAMA,CACzD,CACO,MAAM0T,GAAQwV,EAAAA,EAAAA,IAAM,CACzBrJ,KAAM,QACNwP,UAAW8D,IAEAC,EAAWzxB,IACtB,QAAuBjE,IAAnBiE,EAAMyxB,UAA6C,OAAnBzxB,EAAMyxB,SAAmB,CAC3D,MAAM1G,EAAqBD,IACzB,IAAI4G,EAAcC,EAClB,MAAMzG,GAA8C,OAA/BwG,EAAe1xB,EAAM2P,QAA+D,OAA5C+hB,EAAeA,EAAa5V,cAAgE,OAAvC4V,EAAeA,EAAa/L,aAAkB,EAAS+L,EAAa5G,KAAe8G,EAAAA,GAAkB9G,GACvN,OAAKI,EAKgI,QAA/F,OAAhCyG,EAAgB3xB,EAAM2P,QAAiE,OAA9CgiB,EAAgBA,EAAc7V,kBAAuB,EAAS6V,EAAchF,MAClH,CACL8E,SAAU,GAAF5rB,OAAKqlB,GAAUrlB,OAAG7F,EAAM2P,MAAMmM,YAAY6Q,OAG/C,CACL8E,SAAUvG,GAVH,CACLuG,SAAUD,EAAgB1G,GAU7B,EAEH,OAAOD,EAAAA,EAAAA,IAAkB7qB,EAAOA,EAAMyxB,SAAU1G,EAClD,CACA,OAAO,IAAI,EAEb0G,EAAS3B,YAAc,CAAC,YACjB,MAAM+B,GAAWtK,EAAAA,EAAAA,IAAM,CAC5BrJ,KAAM,WACNwP,UAAW8D,IAEAxf,GAASuV,EAAAA,EAAAA,IAAM,CAC1BrJ,KAAM,SACNwP,UAAW8D,IAEAM,GAAYvK,EAAAA,EAAAA,IAAM,CAC7BrJ,KAAM,YACNwP,UAAW8D,IAEAxV,GAAYuL,EAAAA,EAAAA,IAAM,CAC7BrJ,KAAM,YACNwP,UAAW8D,ICkPb,IDhPyBjK,EAAAA,EAAAA,IAAM,CAC7BrJ,KAAM,OACNsR,YAAa,QACb9B,UAAW8D,KAEajK,EAAAA,EAAAA,IAAM,CAC9BrJ,KAAM,OACNsR,YAAa,SACb9B,UAAW8D,IAKEL,EAAQpf,EAAO0f,EAAUI,EAAU7f,EAAQ8f,EAAW9V,GAH5CuL,EAAAA,EAAAA,IAAM,CAC7BrJ,KAAM,eCxDgB,CAEtBqS,OAAQ,CACNzB,SAAU,UACVpB,UAAW2C,GAEbG,UAAW,CACT1B,SAAU,UACVpB,UAAW2C,GAEbI,YAAa,CACX3B,SAAU,UACVpB,UAAW2C,GAEbK,aAAc,CACZ5B,SAAU,UACVpB,UAAW2C,GAEbM,WAAY,CACV7B,SAAU,UACVpB,UAAW2C,GAEbO,YAAa,CACX9B,SAAU,WAEZ+B,eAAgB,CACd/B,SAAU,WAEZgC,iBAAkB,CAChBhC,SAAU,WAEZiC,kBAAmB,CACjBjC,SAAU,WAEZkC,gBAAiB,CACflC,SAAU,WAEZmC,QAAS,CACPnC,SAAU,UACVpB,UAAW2C,GAEba,aAAc,CACZpC,SAAU,WAEZ1B,aAAc,CACZ0B,SAAU,qBACVvH,MAAO6F,GAGTvc,MAAO,CACLie,SAAU,UACVpB,UAAW6D,GAEbQ,QAAS,CACPjD,SAAU,UACVU,YAAa,kBACb9B,UAAW6D,GAEbS,gBAAiB,CACflD,SAAU,UACVpB,UAAW6D,GAGbvD,EAAG,CACDzG,MAAOqI,EAAAA,IAETqC,GAAI,CACF1K,MAAOqI,EAAAA,IAETsC,GAAI,CACF3K,MAAOqI,EAAAA,IAETuC,GAAI,CACF5K,MAAOqI,EAAAA,IAETwC,GAAI,CACF7K,MAAOqI,EAAAA,IAETyC,GAAI,CACF9K,MAAOqI,EAAAA,IAET0C,GAAI,CACF/K,MAAOqI,EAAAA,IAETA,QAAS,CACPrI,MAAOqI,EAAAA,IAET2C,WAAY,CACVhL,MAAOqI,EAAAA,IAET4C,aAAc,CACZjL,MAAOqI,EAAAA,IAET6C,cAAe,CACblL,MAAOqI,EAAAA,IAET8C,YAAa,CACXnL,MAAOqI,EAAAA,IAETtB,SAAU,CACR/G,MAAOqI,EAAAA,IAETrB,SAAU,CACRhH,MAAOqI,EAAAA,IAET+C,cAAe,CACbpL,MAAOqI,EAAAA,IAETgD,mBAAoB,CAClBrL,MAAOqI,EAAAA,IAETiD,iBAAkB,CAChBtL,MAAOqI,EAAAA,IAETkD,aAAc,CACZvL,MAAOqI,EAAAA,IAETmD,kBAAmB,CACjBxL,MAAOqI,EAAAA,IAEToD,gBAAiB,CACfzL,MAAOqI,EAAAA,IAET7B,EAAG,CACDxG,MAAOoI,EAAAA,IAETsD,GAAI,CACF1L,MAAOoI,EAAAA,IAETuD,GAAI,CACF3L,MAAOoI,EAAAA,IAETwD,GAAI,CACF5L,MAAOoI,EAAAA,IAETyD,GAAI,CACF7L,MAAOoI,EAAAA,IAET0D,GAAI,CACF9L,MAAOoI,EAAAA,IAET2D,GAAI,CACF/L,MAAOoI,EAAAA,IAETA,OAAQ,CACNpI,MAAOoI,EAAAA,IAET4D,UAAW,CACThM,MAAOoI,EAAAA,IAET6D,YAAa,CACXjM,MAAOoI,EAAAA,IAET8D,aAAc,CACZlM,MAAOoI,EAAAA,IAET+D,WAAY,CACVnM,MAAOoI,EAAAA,IAETvB,QAAS,CACP7G,MAAOoI,EAAAA,IAETtB,QAAS,CACP9G,MAAOoI,EAAAA,IAETgE,aAAc,CACZpM,MAAOoI,EAAAA,IAETiE,kBAAmB,CACjBrM,MAAOoI,EAAAA,IAETkE,gBAAiB,CACftM,MAAOoI,EAAAA,IAETmE,YAAa,CACXvM,MAAOoI,EAAAA,IAEToE,iBAAkB,CAChBxM,MAAOoI,EAAAA,IAETqE,eAAgB,CACdzM,MAAOoI,EAAAA,IAGTsE,aAAc,CACZzE,aAAa,EACb9B,UAAWrvB,IAAS,CAClB,eAAgB,CACd4T,QAAS5T,MAIf4T,QAAS,CAAC,EACViiB,SAAU,CAAC,EACXC,aAAc,CAAC,EACfC,WAAY,CAAC,EACbC,WAAY,CAAC,EAEbC,UAAW,CAAC,EACZC,cAAe,CAAC,EAChBC,SAAU,CAAC,EACXC,eAAgB,CAAC,EACjBC,WAAY,CAAC,EACbC,aAAc,CAAC,EACflqB,MAAO,CAAC,EACRrB,KAAM,CAAC,EACPC,SAAU,CAAC,EACXE,WAAY,CAAC,EACbqrB,UAAW,CAAC,EACZC,aAAc,CAAC,EACfC,YAAa,CAAC,EAEd1D,IAAK,CACH7J,MAAO6J,GAETE,OAAQ,CACN/J,MAAO+J,GAETD,UAAW,CACT9J,MAAO8J,GAETvnB,WAAY,CAAC,EACbJ,QAAS,CAAC,EACVqrB,aAAc,CAAC,EACfC,gBAAiB,CAAC,EAClBC,aAAc,CAAC,EACfC,oBAAqB,CAAC,EACtBC,iBAAkB,CAAC,EACnBC,kBAAmB,CAAC,EACpBC,SAAU,CAAC,EAEX51B,SAAU,CAAC,EACXqL,OAAQ,CACNgkB,SAAU,UAEZwG,IAAK,CAAC,EACNC,MAAO,CAAC,EACRC,OAAQ,CAAC,EACTC,KAAM,CAAC,EAEPC,UAAW,CACT5G,SAAU,WAGZ/c,MAAO,CACL2b,UAAW8D,GAEbC,SAAU,CACRlK,MAAOkK,GAETI,SAAU,CACRnE,UAAW8D,GAEbxf,OAAQ,CACN0b,UAAW8D,GAEbM,UAAW,CACTpE,UAAW8D,GAEbxV,UAAW,CACT0R,UAAW8D,GAEbmE,UAAW,CAAC,EAEZ1c,WAAY,CACV6V,SAAU,cAEZ/d,SAAU,CACR+d,SAAU,cAEZ8G,UAAW,CACT9G,SAAU,cAEZxkB,WAAY,CACVwkB,SAAU,cAEZnV,cAAe,CAAC,EAChBb,cAAe,CAAC,EAChBvO,WAAY,CAAC,EACbsrB,UAAW,CAAC,EACZnjB,WAAY,CACV8c,aAAa,EACbV,SAAU,0GC7Rd,MAAMte,EAAY,CAAC,MAGbslB,EAAa91B,IACjB,IAAI+1B,EAAuBrE,EAC3B,MAAMpkB,EAAS,CACb0oB,YAAa,CAAC,EACdC,WAAY,CAAC,GAETpmB,EAAsI,OAA5HkmB,EAAiC,MAAT/1B,GAAiD,OAA/B0xB,EAAe1xB,EAAM2P,YAAiB,EAAS+hB,EAAanV,mBAA6BwZ,EAAwBvZ,EAAAA,EAQ3K,OAPAre,OAAOgkB,KAAKniB,GAAOxD,SAAQ0hB,IACrBrO,EAAOqO,GACT5Q,EAAO0oB,YAAY9X,GAAQle,EAAMke,GAEjC5Q,EAAO2oB,WAAW/X,GAAQle,EAAMke,EAClC,IAEK5Q,CAAM,EAEA,SAAS4oB,EAAal2B,GACnC,MACI2c,GAAIwZ,GACFn2B,EACJ2T,GAAQC,EAAAA,EAAAA,GAA8B5T,EAAOwQ,IACzC,YACJwlB,EAAW,WACXC,GACEH,EAAWniB,GACf,IAAIyiB,EAcJ,OAZEA,EADEtxB,MAAMiI,QAAQopB,GACN,CAACH,KAAgBG,GACF,oBAATA,EACN,WACR,MAAM7oB,EAAS6oB,KAAKluB,WACpB,OAAKqgB,EAAAA,EAAAA,GAAchb,IAGZuG,EAAAA,EAAAA,GAAS,CAAC,EAAGmiB,EAAa1oB,GAFxB0oB,CAGX,GAEUniB,EAAAA,EAAAA,GAAS,CAAC,EAAGmiB,EAAaG,IAE/BtiB,EAAAA,EAAAA,GAAS,CAAC,EAAGoiB,EAAY,CAC9BtZ,GAAIyZ,GAER,0SChCO,SAASC,IACd,SAASC,EAAcpY,EAAM8H,EAAKrW,EAAOE,GACvC,MAAM7P,EAAQ,CACZ,CAACke,GAAO8H,EACRrW,SAEI5U,EAAU8U,EAAOqO,GACvB,IAAKnjB,EACH,MAAO,CACL,CAACmjB,GAAO8H,GAGZ,MAAM,YACJwJ,EAActR,EAAI,SAClB4Q,EAAQ,UACRpB,EAAS,MACTnG,GACExsB,EACJ,GAAW,MAAPirB,EACF,OAAO,KAIT,GAAiB,eAAb8I,GAAqC,YAAR9I,EAC/B,MAAO,CACL,CAAC9H,GAAO8H,GAGZ,MAAMiK,GAAef,EAAAA,EAAAA,IAAQvf,EAAOmf,IAAa,CAAC,EAClD,GAAIvH,EACF,OAAOA,EAAMvnB,GAef,OAAO6qB,EAAAA,EAAAA,IAAkB7qB,EAAOgmB,GAbLkK,IACzB,IAAI7xB,GAAQ8wB,EAAAA,EAAAA,IAASc,EAAcvC,EAAWwC,GAK9C,OAJIA,IAAmB7xB,GAAmC,kBAAnB6xB,IAErC7xB,GAAQ8wB,EAAAA,EAAAA,IAASc,EAAcvC,EAAW,GAAF7nB,OAAKqY,GAAIrY,OAAsB,YAAnBqqB,EAA+B,IAAKpf,EAAAA,EAAAA,GAAWof,IAAmBA,KAEpG,IAAhBV,EACKnxB,EAEF,CACL,CAACmxB,GAAcnxB,EAChB,GAGL,CA6DA,OA5DA,SAASqe,EAAgB1c,GACvB,IAAIu2B,EACJ,MAAM,GACJ5Z,EAAE,MACFhN,EAAQ,CAAC,GACP3P,GAAS,CAAC,EACd,IAAK2c,EACH,OAAO,KAET,MAAM9M,EAA8D,OAApD0mB,EAAwB5mB,EAAM4M,mBAA6Bga,EAAwB/Z,EAAAA,EAOnG,SAASga,EAASC,GAChB,IAAIC,EAAWD,EACf,GAAuB,oBAAZA,EACTC,EAAWD,EAAQ9mB,QACd,GAAuB,kBAAZ8mB,EAEhB,OAAOA,EAET,IAAKC,EACH,OAAO,KAET,MAAM/K,GAAmBP,EAAAA,EAAAA,IAA4Bzb,EAAMmM,aACrDmQ,EAAkB9tB,OAAOgkB,KAAKwJ,GACpC,IAAI5jB,EAAM4jB,EA2BV,OA1BAxtB,OAAOgkB,KAAKuU,GAAUl6B,SAAQm6B,IAC5B,MAAMt4B,GAnFIu4B,EAmFaF,EAASC,GAnFbnwB,EAmFwBmJ,EAlFvB,oBAAZinB,EAAyBA,EAAQpwB,GAAOowB,GADxD,IAAkBA,EAASpwB,EAoFnB,GAAc,OAAVnI,QAA4BtC,IAAVsC,EACpB,GAAqB,kBAAVA,EACT,GAAIwR,EAAO8mB,GACT5uB,GAAM2nB,EAAAA,EAAAA,GAAM3nB,EAAKuuB,EAAcK,EAAUt4B,EAAOsR,EAAOE,QAClD,CACL,MAAM+hB,GAAoB/G,EAAAA,EAAAA,IAAkB,CAC1Clb,SACCtR,GAAOgF,IAAK,CACb,CAACszB,GAAWtzB,OAjG5B,WAAyC,QAAA2E,EAAAC,UAAA3M,OAATu7B,EAAO,IAAA/xB,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAP0uB,EAAO1uB,GAAAF,UAAAE,GACrC,MAAM2uB,EAAUD,EAAQza,QAAO,CAAC+F,EAAM4U,IAAW5U,EAAKtc,OAAO1H,OAAOgkB,KAAK4U,KAAU,IAC7EC,EAAQ,IAAIC,IAAIH,GACtB,OAAOD,EAAQK,OAAMH,GAAUC,EAAM9zB,OAAS/E,OAAOgkB,KAAK4U,GAAQz7B,QACpE,CA+FkB67B,CAAoBvF,EAAmBvzB,GAMzC0J,GAAM2nB,EAAAA,EAAAA,GAAM3nB,EAAK6pB,GALjB7pB,EAAI4uB,GAAYja,EAAgB,CAC9BC,GAAIte,EACJsR,SAKN,MAEA5H,GAAM2nB,EAAAA,EAAAA,GAAM3nB,EAAKuuB,EAAcK,EAAUt4B,EAAOsR,EAAOE,GAE3D,KAEK0b,EAAAA,EAAAA,IAAwBU,EAAiBlkB,EAClD,CACA,OAAOjD,MAAMiI,QAAQ4P,GAAMA,EAAGpY,IAAIiyB,GAAYA,EAAS7Z,EACzD,CAEF,CACA,MAAMD,EAAkB2Z,IACxB3Z,EAAgBoT,YAAc,CAAC,MAC/B,uCCxHAjhB,EAAQ,OAAU,EAClB,IAAInI,EAGJ,SAAiClJ,EAAG8rB,GAAK,IAAKA,GAAK9rB,GAAKA,EAAE+rB,WAAY,OAAO/rB,EAAG,GAAI,OAASA,GAAK,iBAAmBA,GAAK,mBAAqBA,EAAG,MAAO,CAAEwR,QAASxR,GAAK,IAAIgsB,EAAIC,EAAyBH,GAAI,GAAIE,GAAKA,EAAEE,IAAIlsB,GAAI,OAAOgsB,EAAExlB,IAAIxG,GAAI,IAAI4nB,EAAI,CAAEuE,UAAW,MAAQrD,EAAInoB,OAAOgR,gBAAkBhR,OAAOyrB,yBAA0B,IAAK,IAAIC,KAAKrsB,EAAG,GAAI,YAAcqsB,GAAK1rB,OAAO9B,UAAUsa,eAAe5R,KAAKvH,EAAGqsB,GAAI,CAAE,IAAI3sB,EAAIopB,EAAInoB,OAAOyrB,yBAAyBpsB,EAAGqsB,GAAK,KAAM3sB,IAAMA,EAAE8G,KAAO9G,EAAE+G,KAAO9F,OAAOgR,eAAeiW,EAAGyE,EAAG3sB,GAAKkoB,EAAEyE,GAAKrsB,EAAEqsB,EAAI,CAAE,OAAOzE,EAAEpW,QAAUxR,EAAGgsB,GAAKA,EAAEvlB,IAAIzG,EAAG4nB,GAAIA,CAAG,CAHpkB0E,CAAwBlb,EAAQ,OACxCyY,EAAgBzY,EAAQ,MAC5B,SAAS6a,EAAyBjsB,GAAK,GAAI,mBAAqBqG,QAAS,OAAO,KAAM,IAAIylB,EAAI,IAAIzlB,QAAW2lB,EAAI,IAAI3lB,QAAW,OAAQ4lB,EAA2B,SAAUjsB,GAAK,OAAOA,EAAIgsB,EAAIF,CAAG,GAAG9rB,EAAI,CAS5LqR,EAAQ,EAJvB,WAAuC,IAArB0P,EAAYtW,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,KAC/B,MAAMmvB,EAAe1wB,EAAMQ,WAAWmgB,EAAclgB,cACpD,OAAQiwB,IALavqB,EAKiBuqB,EAJH,IAA5Bj5B,OAAOgkB,KAAKtV,GAAKvR,QAI6C87B,EAAf7Y,EALxD,IAAuB1R,CAMvB,gDCjBA,MAAMwqB,EAAmBrY,GAAiBA,EAgB1C,EAfiCsY,MAC/B,IAAIC,EAAWF,EACf,MAAO,CACLjY,SAAAA,CAAUC,GACRkY,EAAWlY,CACb,EACAkY,SAASvY,GACAuY,EAASvY,GAElBwY,KAAAA,GACED,EAAWF,CACb,EACD,EAEwBC,+DCVZ,SAASxmB,EAAWhE,GACjC,GAAsB,kBAAXA,EACT,MAAM,IAAIG,OAAyGsL,EAAAA,EAAAA,GAAuB,IAE5I,OAAOzL,EAAOyY,OAAO,GAAGkS,cAAgB3qB,EAAO5N,MAAM,EACvD,2HCPA,QAHA,SAAe8mB,GAAmE,IAA9DpB,EAAG3c,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGwe,OAAOiR,iBAAkB/S,EAAG1c,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGwe,OAAOkR,iBAC9D,OAAO75B,KAAK6mB,IAAIC,EAAK9mB,KAAK8mB,IAAIoB,EAAKrB,GACrC,0GCFe,SAASzQ,EAAeD,EAAO2jB,GAAsC,IAArB5jB,EAAO/L,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,QAAGlM,EACvE,MAAM4F,EAAS,CAAC,EAkBhB,OAjBAxD,OAAOgkB,KAAKlO,GAAOzX,SAGnB6T,IACE1O,EAAO0O,GAAQ4D,EAAM5D,GAAM+L,QAAO,CAACC,EAAKlgB,KACtC,GAAIA,EAAK,CACP,MAAM07B,EAAeD,EAAgBz7B,GAChB,KAAjB07B,GACFxb,EAAIxgB,KAAKg8B,GAEP7jB,GAAWA,EAAQ7X,IACrBkgB,EAAIxgB,KAAKmY,EAAQ7X,GAErB,CACA,OAAOkgB,CAAG,GACT,IAAIva,KAAK,IAAI,IAEXH,CACT,+CCde,SAASm2B,IAAgC,QAAA9vB,EAAAC,UAAA3M,OAAPy8B,EAAK,IAAAjzB,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAL4vB,EAAK5vB,GAAAF,UAAAE,GACpD,OAAO4vB,EAAM3b,QAAO,CAACC,EAAKtV,IACZ,MAARA,EACKsV,EAEF,WAAkC,QAAA2b,EAAA/vB,UAAA3M,OAAN4M,EAAI,IAAApD,MAAAkzB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ/vB,EAAI+vB,GAAAhwB,UAAAgwB,GACrC5b,EAAI/T,MAAMrN,KAAMiN,GAChBnB,EAAKuB,MAAMrN,KAAMiN,EACnB,IACC,QACL,+CCde,SAASgwB,EAASnxB,GAAkB,IAC7CoxB,EADiCC,EAAInwB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IAE5C,SAASowB,IAAmB,QAAArwB,EAAAC,UAAA3M,OAAN4M,EAAI,IAAApD,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,GAAAF,UAAAE,GAKxBmwB,aAAaH,GACbA,EAAUI,YALIC,KAEZzxB,EAAKuB,MAAMrN,KAAMiN,EAAK,GAGIkwB,EAC9B,CAIA,OAHAC,EAAUI,MAAQ,KAChBH,aAAaH,EAAQ,EAEhBE,CACT,gGCZO,SAAS/P,EAAc2C,GAC5B,GAAoB,kBAATA,GAA8B,OAATA,EAC9B,OAAO,EAET,MAAM5uB,EAAY8B,OAAOu6B,eAAezN,GACxC,OAAsB,OAAd5uB,GAAsBA,IAAc8B,OAAO9B,WAAkD,OAArC8B,OAAOu6B,eAAer8B,OAA0Bs8B,OAAOC,eAAe3N,MAAW0N,OAAOE,YAAY5N,EACtK,CACA,SAAS6N,EAAUC,GACjB,GAAkBryB,EAAAA,eAAqBqyB,KAAYzQ,EAAcyQ,GAC/D,OAAOA,EAET,MAAMp3B,EAAS,CAAC,EAIhB,OAHAxD,OAAOgkB,KAAK4W,GAAQv8B,SAAQL,IAC1BwF,EAAOxF,GAAO28B,EAAUC,EAAO58B,GAAK,IAE/BwF,CACT,CACe,SAASgX,EAAUwI,EAAQ4X,GAEvC,IAF+Ch+B,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAC1D0S,OAAO,GAEP,MAAMhZ,EAAS5G,EAAQ4f,OAAQ9G,EAAAA,EAAAA,GAAS,CAAC,EAAGsN,GAAUA,EAiBtD,OAhBImH,EAAcnH,IAAWmH,EAAcyQ,IACzC56B,OAAOgkB,KAAK4W,GAAQv8B,SAAQL,IACRuK,EAAAA,eAAqBqyB,EAAO58B,IAC5CwF,EAAOxF,GAAO48B,EAAO58B,GACZmsB,EAAcyQ,EAAO58B,KAEhCgC,OAAO9B,UAAUsa,eAAe5R,KAAKoc,EAAQhlB,IAAQmsB,EAAcnH,EAAOhlB,IAExEwF,EAAOxF,GAAOwc,EAAUwI,EAAOhlB,GAAM48B,EAAO58B,GAAMpB,GACzCA,EAAQ4f,MACjBhZ,EAAOxF,GAAOmsB,EAAcyQ,EAAO58B,IAAQ28B,EAAUC,EAAO58B,IAAQ48B,EAAO58B,GAE3EwF,EAAOxF,GAAO48B,EAAO58B,EACvB,IAGGwF,CACT,gICrCe,SAASq3B,EAAsBC,GAK5C,IAAIjZ,EAAM,0CAA4CiZ,EACtD,IAAK,IAAI/7B,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,GAAK,EAGzC8iB,GAAO,WAAakZ,mBAAmBjxB,UAAU/K,IAEnD,MAAO,uBAAyB+7B,EAAO,WAAajZ,EAAM,wBAE5D,yJCjBO,MAAMmZ,EAAqB,CAChCjmB,OAAQ,SACRkmB,QAAS,UACTC,UAAW,YACXlmB,SAAU,WACVkE,MAAO,QACPiiB,SAAU,WACVC,QAAS,UACTC,aAAc,eACdC,KAAM,OACNnY,SAAU,WACVoY,SAAU,WACV/jB,SAAU,YAEG,SAASrF,EAAqB0O,EAAe3O,GAAiC,IAA3BspB,EAAiB1xB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,MACpF,MAAM2xB,EAAmBT,EAAmB9oB,GAC5C,OAAOupB,EAAmB,GAAH/zB,OAAM8zB,EAAiB,KAAA9zB,OAAI+zB,GAAgB,GAAA/zB,OAAQyZ,EAAAA,EAAmBiY,SAASvY,GAAc,KAAAnZ,OAAIwK,EAC1H,8DCjBe,SAASE,EAAuByO,EAAe/K,GAAkC,IAA3B0lB,EAAiB1xB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,MACvF,MAAMqF,EAAS,CAAC,EAIhB,OAHA2G,EAAMzX,SAAQ6T,IACZ/C,EAAO+C,IAAQC,EAAAA,EAAAA,IAAqB0O,EAAe3O,EAAMspB,EAAkB,IAEtErsB,CACT,iGCHA,MAAMusB,EAAmB,oDAClB,SAASC,EAAgBxzB,GAC9B,MAAM5B,EAAQ,GAAAmB,OAAGS,GAAK5B,MAAMm1B,GAE5B,OADan1B,GAASA,EAAM,IACb,EACjB,CACA,SAASq1B,EAAyBpb,GAA0B,IAAfqb,EAAQ/xB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GACtD,OAAO0W,EAAUD,aAAeC,EAAUxY,MAAQ2zB,EAAgBnb,IAAcqb,CAClF,CACA,SAASC,EAAeC,EAAWC,EAAWC,GAC5C,MAAMC,EAAeN,EAAyBI,GAC9C,OAAOD,EAAUxb,cAAiC,KAAjB2b,EAAsB,GAAHx0B,OAAMu0B,EAAW,KAAAv0B,OAAIw0B,EAAY,KAAMD,EAC7F,CAOe,SAASE,EAAe3b,GACrC,GAAiB,MAAbA,EAAJ,CAGA,GAAyB,kBAAdA,EACT,OAAOA,EAET,GAAyB,oBAAdA,EACT,OAAOob,EAAyBpb,EAAW,aAI7C,GAAyB,kBAAdA,EACT,OAAQA,EAAU4b,UAChB,KAAKC,EAAAA,WACH,OAAOP,EAAetb,EAAWA,EAAU8b,OAAQ,cACrD,KAAKC,EAAAA,KACH,OAAOT,EAAetb,EAAWA,EAAU5e,KAAM,QACnD,QACE,OAhBN,CAoBF,+BC9Ce,SAAS2hB,EAAc9hB,GACpC,OAAOA,GAAQA,EAAK8hB,eAAiB/kB,QACvC,8ECDe,SAASg+B,EAAY/6B,GAElC,OADY8hB,EAAAA,EAAAA,GAAc9hB,GACfg7B,aAAeC,MAC5B,8DCGe,SAAS9qB,EAAaD,EAAc9P,GACjD,MAAM2B,GAASkS,EAAAA,EAAAA,GAAS,CAAC,EAAG7T,GAwB5B,OAvBA7B,OAAOgkB,KAAKrS,GAActT,SAAQuiB,IAChC,GAAIA,EAASvW,WAAW9D,MAAM,wBAC5B/C,EAAOod,IAAYlL,EAAAA,EAAAA,GAAS,CAAC,EAAG/D,EAAaiP,GAAWpd,EAAOod,SAC1D,GAAIA,EAASvW,WAAW9D,MAAM,iCAAkC,CACrE,MAAMo2B,EAAmBhrB,EAAaiP,IAAa,CAAC,EAC9Cgc,EAAY/6B,EAAM+e,GACxBpd,EAAOod,GAAY,CAAC,EACfgc,GAAc58B,OAAOgkB,KAAK4Y,GAGnBD,GAAqB38B,OAAOgkB,KAAK2Y,IAI3Cn5B,EAAOod,IAAYlL,EAAAA,EAAAA,GAAS,CAAC,EAAGknB,GAChC58B,OAAOgkB,KAAK2Y,GAAkBt+B,SAAQw+B,IACpCr5B,EAAOod,GAAUic,GAAgBjrB,EAAa+qB,EAAiBE,GAAeD,EAAUC,GAAc,KAJxGr5B,EAAOod,GAAYgc,EAHnBp5B,EAAOod,GAAY+b,CAUvB,WAAgC/+B,IAArB4F,EAAOod,KAChBpd,EAAOod,GAAYjP,EAAaiP,GAClC,IAEKpd,CACT,+BCpBe,SAASs5B,EAAOh0B,EAAK5I,GACf,oBAAR4I,EACTA,EAAI5I,GACK4I,IACTA,EAAIU,QAAUtJ,EAElB,8ECfe,SAAS68B,EAAalqB,GAKlC,IALmC,WACpCmqB,EACAnsB,QAASosB,EAAW,KACpBj1B,EAAI,MACJk1B,EAAQ,SACTrqB,EAEC,MACErJ,QAAS2zB,GACP50B,EAAAA,YAA4B3K,IAAfo/B,IACVI,EAAYC,GAAY90B,EAAAA,SAAe00B,GAsB9C,MAAO,CArBOE,EAAeH,EAAaI,EAgBX70B,EAAAA,aAAkB+0B,IAC1CH,GACHE,EAASC,EACX,GACC,IAEL,8DC1BA,MACA,EAD4C,qBAAXZ,OAAyBn0B,EAAAA,gBAAwBA,EAAAA,gFCQlF,QATA,SAA0BJ,GACxB,MAAMW,EAAMP,EAAAA,OAAaJ,GAIzB,OAHAo1B,EAAAA,EAAAA,IAAkB,KAChBz0B,EAAIU,QAAUrB,CAAE,IAEXI,EAAAA,QAAa,kBAEpB,EAAIO,EAAIU,YAASM,UAAQ,IAAEN,OAC7B,wECde,SAASg0B,IAAoB,QAAA3zB,EAAAC,UAAA3M,OAANsgC,EAAI,IAAA92B,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJyzB,EAAIzzB,GAAAF,UAAAE,GAMxC,OAAOzB,EAAAA,SAAc,IACfk1B,EAAK1E,OAAMjwB,GAAc,MAAPA,IACb,KAEF40B,IACLD,EAAKp/B,SAAQyK,KACXg0B,EAAAA,EAAAA,GAAOh0B,EAAK40B,EAAS,GACrB,GAGHD,EACL,oEClBA,IAAIE,EAAW,EAkBf,MAAMC,GAAkBr1B,IAAAA,EAAAA,EAAAA,EAAAA,EAAAA,KAAM,QAAQ8B,YAOvB,SAASwzB,EAAMC,GAC5B,QAAwBlgC,IAApBggC,EAA+B,CACjC,MAAMG,EAAUH,IAChB,OAAqB,MAAdE,EAAqBA,EAAaC,CAC3C,CAEA,OA9BF,SAAqBD,GACnB,MAAOE,EAAWC,GAAgB11B,EAAAA,SAAeu1B,GAC3CI,EAAKJ,GAAcE,EAWzB,OAVAz1B,EAAAA,WAAgB,KACG,MAAby1B,IAKFL,GAAY,EACZM,EAAa,OAADv2B,OAAQi2B,IACtB,GACC,CAACK,IACGE,CACT,CAgBSC,CAAYL,EACrB,sEChCA,MAAMM,EAAgB,CAAC,ECAvB,MAAMC,EAAQ,GCCP,MAAM1c,EACXtY,WAAAA,GACEvM,KAAKwhC,UAAY,KACjBxhC,KAAKw9B,MAAQ,KACY,OAAnBx9B,KAAKwhC,YACPnE,aAAar9B,KAAKwhC,WAClBxhC,KAAKwhC,UAAY,KACnB,EAEFxhC,KAAKyhC,cAAgB,IACZzhC,KAAKw9B,KAEhB,CACA,aAAOlyB,GACL,OAAO,IAAIuZ,CACb,CAIAiC,KAAAA,CAAM/D,EAAO1X,GACXrL,KAAKw9B,QACLx9B,KAAKwhC,UAAYlE,YAAW,KAC1Bt9B,KAAKwhC,UAAY,KACjBn2B,GAAI,GACH0X,EACL,EAEa,SAAS2e,IACtB,MAAMxE,EFpBO,SAAoByE,EAAMC,GACvC,MAAM51B,EAAMP,EAAAA,OAAa61B,GAIzB,OAHIt1B,EAAIU,UAAY40B,IAClBt1B,EAAIU,QAAUi1B,EAAKC,IAEd51B,CACT,CEckB61B,CAAWhd,EAAQvZ,QAAQoB,QDxB9B,IAAoBrB,EC0BjC,OD1BiCA,ECyBtB6xB,EAAQuE,cDvBnBh2B,EAAAA,UAAgBJ,EAAIk2B,GCwBbrE,CACT,mBCnCoE4E,EAAOluB,QAAmI,WAAW,aAAa,IAAI2a,EAAE,IAAIhsB,EAAE,IAAI4nB,EAAE,KAAKkE,EAAE,cAAcpsB,EAAE,SAASkpB,EAAE,SAASyD,EAAE,OAAOvD,EAAE,MAAM0W,EAAE,OAAOC,EAAE,QAAQ1W,EAAE,UAAUxY,EAAE,OAAOmB,EAAE,OAAOmX,EAAE,eAAe6W,EAAE,6FAA6F55B,EAAE,sFAAsF65B,EAAE,CAACh3B,KAAK,KAAKi3B,SAAS,2DAA2D73B,MAAM,KAAK83B,OAAO,wFAAwF93B,MAAM,KAAK+3B,QAAQ,SAAS9T,GAAG,IAAIhsB,EAAE,CAAC,KAAK,KAAK,KAAK,MAAM4nB,EAAEoE,EAAE,IAAI,MAAM,IAAIA,GAAGhsB,GAAG4nB,EAAE,IAAI,KAAK5nB,EAAE4nB,IAAI5nB,EAAE,IAAI,GAAG,GAAGuwB,EAAE,SAASvE,EAAEhsB,EAAE4nB,GAAG,IAAIkE,EAAEtrB,OAAOwrB,GAAG,OAAOF,GAAGA,EAAEhuB,QAAQkC,EAAEgsB,EAAE,GAAG1kB,MAAMtH,EAAE,EAAE8rB,EAAEhuB,QAAQwG,KAAKsjB,GAAGoE,CAAC,EAAE+T,EAAE,CAACnX,EAAE2H,EAAExqB,EAAE,SAASimB,GAAG,IAAIhsB,GAAGgsB,EAAEgU,YAAYpY,EAAEtnB,KAAKD,IAAIL,GAAG8rB,EAAExrB,KAAK2/B,MAAMrY,EAAE,IAAIloB,EAAEkoB,EAAE,GAAG,OAAO5nB,GAAG,EAAE,IAAI,KAAKuwB,EAAEzE,EAAE,EAAE,KAAK,IAAIyE,EAAE7wB,EAAE,EAAE,IAAI,EAAE6wB,EAAE,SAASvE,EAAEhsB,EAAE4nB,GAAG,GAAG5nB,EAAE6iB,OAAO+E,EAAE/E,OAAO,OAAOmJ,EAAEpE,EAAE5nB,GAAG,IAAI8rB,EAAE,IAAIlE,EAAEsY,OAAOlgC,EAAEkgC,SAAStY,EAAE9E,QAAQ9iB,EAAE8iB,SAASpjB,EAAEM,EAAEmd,QAAQgjB,IAAIrU,EAAE2T,GAAG7W,EAAEhB,EAAEloB,EAAE,EAAE2sB,EAAErsB,EAAEmd,QAAQgjB,IAAIrU,GAAGlD,GAAG,EAAE,GAAG6W,GAAG,UAAU3T,GAAGlE,EAAEloB,IAAIkpB,EAAElpB,EAAE2sB,EAAEA,EAAE3sB,KAAK,EAAE,EAAEopB,EAAE,SAASkD,GAAG,OAAOA,EAAE,EAAE1rB,KAAK8/B,KAAKpU,IAAI,EAAE1rB,KAAK2/B,MAAMjU,EAAE,EAAEwE,EAAE,SAASxE,GAAG,MAAM,CAAC2T,EAAEF,EAAE35B,EAAEyK,EAAE8vB,EAAEb,EAAE9tB,EAAEoX,EAAEwX,EAAE5uB,EAAEnB,EAAE8b,EAAEkE,EAAE3H,EAAEA,EAAElpB,EAAE6gC,GAAGzU,EAAE0U,EAAEzX,GAAGiD,IAAIxrB,OAAOwrB,GAAG,IAAIxd,cAAc1N,QAAQ,KAAK,GAAG,EAAEurB,EAAE,SAASL,GAAG,YAAO,IAASA,CAAC,GAAGyU,EAAE,KAAKH,EAAE,CAAC,EAAEA,EAAEG,GAAGd,EAAE,IAAInP,EAAE,iBAAiBkQ,EAAE,SAAS1U,GAAG,OAAOA,aAAa2U,MAAM3U,IAAIA,EAAEwE,GAAG,EAAE6P,EAAE,SAASrU,EAAEhsB,EAAE4nB,EAAEkE,GAAG,IAAIpsB,EAAE,IAAIM,EAAE,OAAOygC,EAAE,GAAG,iBAAiBzgC,EAAE,CAAC,IAAI4oB,EAAE5oB,EAAEwO,cAAc8xB,EAAE1X,KAAKlpB,EAAEkpB,GAAGhB,IAAI0Y,EAAE1X,GAAGhB,EAAEloB,EAAEkpB,GAAG,IAAIyD,EAAErsB,EAAE+H,MAAM,KAAK,IAAIrI,GAAG2sB,EAAEvuB,OAAO,EAAE,OAAOkuB,EAAEK,EAAE,GAAG,KAAK,CAAC,IAAIvD,EAAE9oB,EAAE2I,KAAK23B,EAAExX,GAAG9oB,EAAEN,EAAEopB,CAAC,CAAC,OAAOgD,GAAGpsB,IAAI+gC,EAAE/gC,GAAGA,IAAIosB,GAAG2U,CAAC,EAAEG,EAAE,SAAS5U,EAAEhsB,GAAG,GAAG0gC,EAAE1U,GAAG,OAAOA,EAAE7O,QAAQ,IAAIyK,EAAE,iBAAiB5nB,EAAEA,EAAE,CAAC,EAAE,OAAO4nB,EAAE/E,KAAKmJ,EAAEpE,EAAEld,KAAKD,UAAU,IAAIk2B,EAAE/Y,EAAE,EAAE8I,EAAEqP,EAAErP,EAAE7H,EAAEwX,EAAE3P,EAAEhxB,EAAEghC,EAAEhQ,EAAE2P,EAAE,SAASrU,EAAEhsB,GAAG,OAAO4gC,EAAE5U,EAAE,CAAC6U,OAAO7gC,EAAE8gC,GAAGC,IAAI/gC,EAAEghC,GAAGn7B,EAAE7F,EAAEihC,GAAGC,QAAQlhC,EAAEkhC,SAAS,EAAE,IAAIP,EAAE,WAAW,SAAShB,EAAE3T,GAAGvuB,KAAKqjC,GAAGT,EAAErU,EAAE6U,OAAO,MAAK,GAAIpjC,KAAK+G,MAAMwnB,GAAGvuB,KAAKwjC,GAAGxjC,KAAKwjC,IAAIjV,EAAEnmB,GAAG,CAAC,EAAEpI,KAAK+yB,IAAG,CAAE,CAAC,IAAID,EAAEoP,EAAE9gC,UAAU,OAAO0xB,EAAE/rB,MAAM,SAASwnB,GAAGvuB,KAAK0jC,GAAG,SAASnV,GAAG,IAAIhsB,EAAEgsB,EAAEnJ,KAAK+E,EAAEoE,EAAE+U,IAAI,GAAG,OAAO/gC,EAAE,OAAO,IAAIohC,KAAKC,KAAK,GAAG3Q,EAAErE,EAAErsB,GAAG,OAAO,IAAIohC,KAAK,GAAGphC,aAAaohC,KAAK,OAAO,IAAIA,KAAKphC,GAAG,GAAG,iBAAiBA,IAAI,MAAM8kB,KAAK9kB,GAAG,CAAC,IAAI8rB,EAAE9rB,EAAEkH,MAAMw4B,GAAG,GAAG5T,EAAE,CAAC,IAAIpsB,EAAEosB,EAAE,GAAG,GAAG,EAAElD,GAAGkD,EAAE,IAAI,KAAK7D,UAAU,EAAE,GAAG,OAAOL,EAAE,IAAIwZ,KAAKA,KAAKE,IAAIxV,EAAE,GAAGpsB,EAAEosB,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAElD,IAAI,IAAIwY,KAAKtV,EAAE,GAAGpsB,EAAEosB,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAElD,EAAE,CAAC,CAAC,OAAO,IAAIwY,KAAKphC,EAAE,CAA3X,CAA6XgsB,GAAGvuB,KAAK2hC,MAAM,EAAE7O,EAAE6O,KAAK,WAAW,IAAIpT,EAAEvuB,KAAK0jC,GAAG1jC,KAAK8jC,GAAGvV,EAAEwV,cAAc/jC,KAAKgkC,GAAGzV,EAAE0V,WAAWjkC,KAAKkkC,GAAG3V,EAAE4V,UAAUnkC,KAAKokC,GAAG7V,EAAE8V,SAASrkC,KAAKskC,GAAG/V,EAAEgW,WAAWvkC,KAAKwkC,GAAGjW,EAAEkW,aAAazkC,KAAK0kC,GAAGnW,EAAEoW,aAAa3kC,KAAK4kC,IAAIrW,EAAEsW,iBAAiB,EAAE/R,EAAEgS,OAAO,WAAW,OAAO7R,CAAC,EAAEH,EAAEiS,QAAQ,WAAW,QAAQ/kC,KAAK0jC,GAAGn2B,aAAa6d,EAAE,EAAE0H,EAAEkS,OAAO,SAASzW,EAAEhsB,GAAG,IAAI4nB,EAAEgZ,EAAE5U,GAAG,OAAOvuB,KAAKilC,QAAQ1iC,IAAI4nB,GAAGA,GAAGnqB,KAAKklC,MAAM3iC,EAAE,EAAEuwB,EAAEqS,QAAQ,SAAS5W,EAAEhsB,GAAG,OAAO4gC,EAAE5U,GAAGvuB,KAAKilC,QAAQ1iC,EAAE,EAAEuwB,EAAEsS,SAAS,SAAS7W,EAAEhsB,GAAG,OAAOvC,KAAKklC,MAAM3iC,GAAG4gC,EAAE5U,EAAE,EAAEuE,EAAEuS,GAAG,SAAS9W,EAAEhsB,EAAE4nB,GAAG,OAAO8I,EAAErE,EAAEL,GAAGvuB,KAAKuC,GAAGvC,KAAKgJ,IAAImhB,EAAEoE,EAAE,EAAEuE,EAAEwS,KAAK,WAAW,OAAOziC,KAAK2/B,MAAMxiC,KAAKulC,UAAU,IAAI,EAAEzS,EAAEyS,QAAQ,WAAW,OAAOvlC,KAAK0jC,GAAG8B,SAAS,EAAE1S,EAAEmS,QAAQ,SAAS1W,EAAEhsB,GAAG,IAAI4nB,EAAEnqB,KAAKquB,IAAI4E,EAAErE,EAAErsB,IAAIA,EAAE+oB,EAAE2H,EAAEF,EAAExE,GAAGnD,EAAE,SAASmD,EAAEhsB,GAAG,IAAIN,EAAEgxB,EAAE2P,EAAEzY,EAAEoZ,GAAGI,KAAKE,IAAI1Z,EAAE2Z,GAAGvhC,EAAEgsB,GAAG,IAAIoV,KAAKxZ,EAAE2Z,GAAGvhC,EAAEgsB,GAAGpE,GAAG,OAAOkE,EAAEpsB,EAAEA,EAAEijC,MAAM7Z,EAAE,EAAE4W,EAAE,SAAS1T,EAAEhsB,GAAG,OAAO0wB,EAAE2P,EAAEzY,EAAEsb,SAASlX,GAAGlhB,MAAM8c,EAAEsb,OAAO,MAAMpX,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAMpqB,MAAM1B,IAAI4nB,EAAE,EAAE9hB,EAAErI,KAAKokC,GAAGlC,EAAEliC,KAAKgkC,GAAGlR,EAAE9yB,KAAKkkC,GAAG5B,EAAE,OAAOtiC,KAAKujC,GAAG,MAAM,IAAI,OAAOjY,GAAG,KAAKxY,EAAE,OAAOub,EAAEjD,EAAE,EAAE,GAAGA,EAAE,GAAG,IAAI,KAAK4W,EAAE,OAAO3T,EAAEjD,EAAE,EAAE8W,GAAG9W,EAAE,EAAE8W,EAAE,GAAG,KAAKH,EAAE,IAAIiB,EAAEhjC,KAAK0lC,UAAUC,WAAW,EAAE9C,GAAGx6B,EAAE26B,EAAE36B,EAAE,EAAEA,GAAG26B,EAAE,OAAO5X,EAAEiD,EAAEyE,EAAE+P,EAAE/P,GAAG,EAAE+P,GAAGX,GAAG,KAAK7W,EAAE,KAAKpX,EAAE,OAAOguB,EAAEK,EAAE,QAAQ,GAAG,KAAK1T,EAAE,OAAOqT,EAAEK,EAAE,UAAU,GAAG,KAAKnX,EAAE,OAAO8W,EAAEK,EAAE,UAAU,GAAG,KAAKrgC,EAAE,OAAOggC,EAAEK,EAAE,eAAe,GAAG,QAAQ,OAAOtiC,KAAK0f,QAAQ,EAAEoT,EAAEoS,MAAM,SAAS3W,GAAG,OAAOvuB,KAAKilC,QAAQ1W,GAAE,EAAG,EAAEuE,EAAE8S,KAAK,SAASrX,EAAEhsB,GAAG,IAAI4nB,EAAE4X,EAAE9O,EAAEF,EAAExE,GAAGjD,EAAE,OAAOtrB,KAAKujC,GAAG,MAAM,IAAInY,GAAGjB,EAAE,CAAC,EAAEA,EAAEkB,GAAGC,EAAE,OAAOnB,EAAElW,GAAGqX,EAAE,OAAOnB,EAAE6X,GAAG1W,EAAE,QAAQnB,EAAErX,GAAGwY,EAAE,WAAWnB,EAAEyE,GAAGtD,EAAE,QAAQnB,EAAEgB,GAAGG,EAAE,UAAUnB,EAAEloB,GAAGqpB,EAAE,UAAUnB,EAAEkE,GAAG/C,EAAE,eAAenB,GAAG4X,GAAGE,EAAEF,IAAI1W,EAAErrB,KAAKkkC,IAAI3hC,EAAEvC,KAAKokC,IAAI7hC,EAAE,GAAGw/B,IAAIC,GAAGD,IAAIjvB,EAAE,CAAC,IAAIzK,EAAErI,KAAK0f,QAAQ1W,IAAIiL,EAAE,GAAG5L,EAAEq7B,GAAGtY,GAAG6W,GAAG55B,EAAEs5B,OAAO3hC,KAAK0jC,GAAGr7B,EAAEW,IAAIiL,EAAEpR,KAAK8mB,IAAI3pB,KAAKkkC,GAAG77B,EAAEw9B,gBAAgBnC,EAAE,MAAMtY,GAAGprB,KAAK0jC,GAAGtY,GAAG6W,GAAG,OAAOjiC,KAAK2hC,OAAO3hC,IAAI,EAAE8yB,EAAE9pB,IAAI,SAASulB,EAAEhsB,GAAG,OAAOvC,KAAK0f,QAAQkmB,KAAKrX,EAAEhsB,EAAE,EAAEuwB,EAAE/pB,IAAI,SAASwlB,GAAG,OAAOvuB,KAAKizB,EAAEF,EAAExE,KAAK,EAAEuE,EAAE4P,IAAI,SAASrU,EAAE/C,GAAG,IAAIrX,EAAEmX,EAAEprB,KAAKquB,EAAE7C,OAAO6C,GAAG,IAAI4T,EAAEhP,EAAEF,EAAEzH,GAAGjjB,EAAE,SAASkmB,GAAG,IAAIhsB,EAAE4gC,EAAE/X,GAAG,OAAO6H,EAAE2P,EAAErgC,EAAE6iB,KAAK7iB,EAAE6iB,OAAOviB,KAAK+b,MAAM2P,EAAEF,IAAIjD,EAAE,EAAE,GAAG6W,IAAID,EAAE,OAAOhiC,KAAKgJ,IAAIg5B,EAAEhiC,KAAKgkC,GAAG3V,GAAG,GAAG4T,IAAInvB,EAAE,OAAO9S,KAAKgJ,IAAI8J,EAAE9S,KAAK8jC,GAAGzV,GAAG,GAAG4T,IAAI5W,EAAE,OAAOhjB,EAAE,GAAG,GAAG45B,IAAIF,EAAE,OAAO15B,EAAE,GAAG,IAAI65B,GAAGjuB,EAAE,CAAC,EAAEA,EAAEkX,GAAG5oB,EAAE0R,EAAE2a,GAAGzE,EAAElW,EAAEhS,GAAGssB,EAAEta,GAAGguB,IAAI,EAAEnP,EAAE9yB,KAAK0jC,GAAG8B,UAAUnX,EAAE6T,EAAE,OAAOjP,EAAE2P,EAAE9P,EAAE9yB,KAAK,EAAE8yB,EAAEgT,SAAS,SAASvX,EAAEhsB,GAAG,OAAOvC,KAAK0iC,KAAK,EAAEnU,EAAEhsB,EAAE,EAAEuwB,EAAEiT,OAAO,SAASxX,GAAG,IAAIhsB,EAAEvC,KAAKmqB,EAAEnqB,KAAK0lC,UAAU,IAAI1lC,KAAK+kC,UAAU,OAAO5a,EAAE6b,aAAa5a,EAAE,IAAIiD,EAAEE,GAAG,uBAAuBtsB,EAAEgxB,EAAE3qB,EAAEtI,MAAMmrB,EAAEnrB,KAAKskC,GAAG1V,EAAE5uB,KAAKwkC,GAAGnZ,EAAErrB,KAAKgkC,GAAGjC,EAAE5X,EAAEgY,SAASH,EAAE7X,EAAEiY,OAAO9W,EAAEnB,EAAE8b,SAASnzB,EAAE,SAASyb,EAAEpE,EAAEloB,EAAEkpB,GAAG,OAAOoD,IAAIA,EAAEpE,IAAIoE,EAAEhsB,EAAE8rB,KAAKpsB,EAAEkoB,GAAGlmB,MAAM,EAAEknB,EAAE,EAAElX,EAAE,SAASsa,GAAG,OAAO0E,EAAE9H,EAAEA,EAAE,IAAI,GAAGoD,EAAE,IAAI,EAAE0T,EAAE3W,GAAG,SAASiD,EAAEhsB,EAAE4nB,GAAG,IAAIkE,EAAEE,EAAE,GAAG,KAAK,KAAK,OAAOpE,EAAEkE,EAAEtd,cAAcsd,CAAC,EAAE,OAAOA,EAAEhrB,QAAQgF,GAAG,SAASkmB,EAAEF,GAAG,OAAOA,GAAG,SAASE,GAAG,OAAOA,GAAG,IAAI,KAAK,OAAOxrB,OAAOR,EAAEuhC,IAAI7/B,OAAO,GAAG,IAAI,OAAO,OAAOgvB,EAAE9H,EAAE5oB,EAAEuhC,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOzY,EAAE,EAAE,IAAI,KAAK,OAAO4H,EAAE9H,EAAEE,EAAE,EAAE,EAAE,KAAK,IAAI,MAAM,OAAOvY,EAAEqX,EAAE+b,YAAY7a,EAAE2W,EAAE,GAAG,IAAI,OAAO,OAAOlvB,EAAEkvB,EAAE3W,GAAG,IAAI,IAAI,OAAO9oB,EAAE2hC,GAAG,IAAI,KAAK,OAAOjR,EAAE9H,EAAE5oB,EAAE2hC,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOnhC,OAAOR,EAAE6hC,IAAI,IAAI,KAAK,OAAOtxB,EAAEqX,EAAEgc,YAAY5jC,EAAE6hC,GAAGrC,EAAE,GAAG,IAAI,MAAM,OAAOjvB,EAAEqX,EAAEic,cAAc7jC,EAAE6hC,GAAGrC,EAAE,GAAG,IAAI,OAAO,OAAOA,EAAEx/B,EAAE6hC,IAAI,IAAI,IAAI,OAAOrhC,OAAOooB,GAAG,IAAI,KAAK,OAAO8H,EAAE9H,EAAEA,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOlX,EAAE,GAAG,IAAI,KAAK,OAAOA,EAAE,GAAG,IAAI,IAAI,OAAOguB,EAAE9W,EAAEyD,GAAE,GAAI,IAAI,IAAI,OAAOqT,EAAE9W,EAAEyD,GAAE,GAAI,IAAI,IAAI,OAAO7rB,OAAO6rB,GAAG,IAAI,KAAK,OAAOqE,EAAE9H,EAAEyD,EAAE,EAAE,KAAK,IAAI,IAAI,OAAO7rB,OAAOR,EAAEmiC,IAAI,IAAI,KAAK,OAAOzR,EAAE9H,EAAE5oB,EAAEmiC,GAAG,EAAE,KAAK,IAAI,MAAM,OAAOzR,EAAE9H,EAAE5oB,EAAEqiC,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO3iC,EAAE,OAAO,IAAI,CAAptB,CAAstBssB,IAAItsB,EAAEoB,QAAQ,IAAI,GAAG,GAAG,EAAEyvB,EAAEyP,UAAU,WAAW,OAAO,IAAI1/B,KAAK+b,MAAM5e,KAAK0jC,GAAG2C,oBAAoB,GAAG,EAAEvT,EAAEwT,KAAK,SAASjY,EAAEpa,EAAEmX,GAAG,IAAI6W,EAAE55B,EAAErI,KAAKkiC,EAAEjP,EAAEF,EAAE9e,GAAG6e,EAAEqQ,EAAE9U,GAAGiU,GAAGxP,EAAEyP,YAAYviC,KAAKuiC,aAAahgC,EAAEygC,EAAEhjC,KAAK8yB,EAAE+P,EAAE,WAAW,OAAO5P,EAAEH,EAAEzqB,EAAEyqB,EAAE,EAAE,OAAOoP,GAAG,KAAKpvB,EAAEmvB,EAAEY,IAAI,GAAG,MAAM,KAAKb,EAAEC,EAAEY,IAAI,MAAM,KAAKvX,EAAE2W,EAAEY,IAAI,EAAE,MAAM,KAAKd,EAAEE,GAAGe,EAAEV,GAAG,OAAO,MAAM,KAAKjX,EAAE4W,GAAGe,EAAEV,GAAG,MAAM,MAAM,KAAK1T,EAAEqT,EAAEe,EAAE7Y,EAAE,MAAM,KAAKgB,EAAE8W,EAAEe,EAAEzgC,EAAE,MAAM,KAAKN,EAAEggC,EAAEe,EAAEzU,EAAE,MAAM,QAAQ0T,EAAEe,EAAE,OAAO5X,EAAE6W,EAAEhP,EAAE5H,EAAE4W,EAAE,EAAEnP,EAAE+S,YAAY,WAAW,OAAO7lC,KAAKklC,MAAMlD,GAAGkC,EAAE,EAAEpR,EAAE4S,QAAQ,WAAW,OAAO7C,EAAE7iC,KAAKqjC,GAAG,EAAEvQ,EAAEsQ,OAAO,SAAS7U,EAAEhsB,GAAG,IAAIgsB,EAAE,OAAOvuB,KAAKqjC,GAAG,IAAIlZ,EAAEnqB,KAAK0f,QAAQ2O,EAAEuU,EAAErU,EAAEhsB,GAAE,GAAI,OAAO8rB,IAAIlE,EAAEkZ,GAAGhV,GAAGlE,CAAC,EAAE2I,EAAEpT,MAAM,WAAW,OAAOuT,EAAE2P,EAAE5iC,KAAK0jC,GAAG1jC,KAAK,EAAE8yB,EAAE2S,OAAO,WAAW,OAAO,IAAI9B,KAAK3jC,KAAKulC,UAAU,EAAEzS,EAAEyT,OAAO,WAAW,OAAOvmC,KAAK+kC,UAAU/kC,KAAKwmC,cAAc,IAAI,EAAE1T,EAAE0T,YAAY,WAAW,OAAOxmC,KAAK0jC,GAAG8C,aAAa,EAAE1T,EAAEvlB,SAAS,WAAW,OAAOvN,KAAK0jC,GAAG+C,aAAa,EAAEvE,CAAC,CAA/sJ,GAAmtJ/5B,EAAE+6B,EAAE9hC,UAAU,OAAO+hC,EAAE/hC,UAAU+G,EAAE,CAAC,CAAC,MAAMkmB,GAAG,CAAC,KAAKpsB,GAAG,CAAC,KAAKkpB,GAAG,CAAC,KAAKyD,GAAG,CAAC,KAAKvD,GAAG,CAAC,KAAK2W,GAAG,CAAC,KAAKlvB,GAAG,CAAC,KAAKmB,IAAI1S,SAAS,SAASgtB,GAAGpmB,EAAEomB,EAAE,IAAI,SAAShsB,GAAG,OAAOvC,KAAKqlC,GAAG9iC,EAAEgsB,EAAE,GAAGA,EAAE,GAAG,CAAC,IAAI4U,EAAEuD,OAAO,SAASnY,EAAEhsB,GAAG,OAAOgsB,EAAEoY,KAAKpY,EAAEhsB,EAAE2gC,EAAEC,GAAG5U,EAAEoY,IAAG,GAAIxD,CAAC,EAAEA,EAAEC,OAAOR,EAAEO,EAAEyD,QAAQ3D,EAAEE,EAAEmC,KAAK,SAAS/W,GAAG,OAAO4U,EAAE,IAAI5U,EAAE,EAAE4U,EAAE0D,GAAGhE,EAAEG,GAAGG,EAAE2D,GAAGjE,EAAEM,EAAEpQ,EAAE,CAAC,EAAEoQ,CAAC,CAAj6N5gC,qBCAfu/B,EAAOluB,QAA4J,WAAW,aAAa,IAAIrR,EAAE,CAACwkC,IAAI,YAAYC,GAAG,SAASC,EAAE,aAAaC,GAAG,eAAeC,IAAI,sBAAsBC,KAAK,6BAA6B7Y,EAAE,gGAAgGpE,EAAE,KAAKkE,EAAE,OAAOpsB,EAAE,QAAQ8/B,EAAE,qBAAqB5W,EAAE,CAAC,EAAEE,EAAE,SAAS9oB,GAAG,OAAOA,GAAGA,IAAIA,EAAE,GAAG,KAAK,IAAI,EAAM+oB,EAAE,SAAS/oB,GAAG,OAAO,SAASgsB,GAAGvuB,KAAKuC,IAAIgsB,CAAC,CAAC,EAAEzb,EAAE,CAAC,sBAAsB,SAASvQ,IAAIvC,KAAKqnC,OAAOrnC,KAAKqnC,KAAK,CAAC,IAAIhgC,OAAO,SAAS9E,GAAG,IAAIA,EAAE,OAAO,EAAE,GAAG,MAAMA,EAAE,OAAO,EAAE,IAAIgsB,EAAEhsB,EAAEkH,MAAM,gBAAgB0gB,EAAE,GAAGoE,EAAE,KAAKA,EAAE,IAAI,GAAG,OAAO,IAAIpE,EAAE,EAAE,MAAMoE,EAAE,IAAIpE,EAAEA,CAAC,CAAhI,CAAkI5nB,EAAE,GAAGqsB,EAAE,SAASrsB,GAAG,IAAIgsB,EAAEpD,EAAE5oB,GAAG,OAAOgsB,IAAIA,EAAE7qB,QAAQ6qB,EAAEA,EAAEpD,EAAEvgB,OAAO2jB,EAAEjD,GAAG,EAAErX,EAAE,SAAS1R,EAAEgsB,GAAG,IAAIpE,EAAEkE,EAAElD,EAAE8a,SAAS,GAAG5X,GAAG,IAAI,IAAIpsB,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAE,GAAGM,EAAEmB,QAAQ2qB,EAAEpsB,EAAE,EAAEssB,KAAK,EAAE,CAACpE,EAAEloB,EAAE,GAAG,KAAK,OAAOkoB,EAAE5nB,KAAKgsB,EAAE,KAAK,MAAM,OAAOpE,CAAC,EAAE6X,EAAE,CAACsF,EAAE,CAACvF,EAAE,SAASx/B,GAAGvC,KAAKunC,UAAUtzB,EAAE1R,GAAE,EAAG,GAAG8oB,EAAE,CAAC0W,EAAE,SAASx/B,GAAGvC,KAAKunC,UAAUtzB,EAAE1R,GAAE,EAAG,GAAGwgC,EAAE,CAAC5Y,EAAE,SAAS5nB,GAAGvC,KAAKqlB,MAAM,GAAG9iB,EAAE,GAAG,CAAC,GAAG0gC,EAAE,CAAC9Y,EAAE,SAAS5nB,GAAGvC,KAAKuiB,aAAa,KAAKhgB,CAAC,GAAGilC,GAAG,CAACnZ,EAAE,SAAS9rB,GAAGvC,KAAKuiB,aAAa,IAAIhgB,CAAC,GAAGklC,IAAI,CAAC,QAAQ,SAASllC,GAAGvC,KAAKuiB,cAAchgB,CAAC,GAAG4oB,EAAE,CAAClpB,EAAEqpB,EAAE,YAAYoc,GAAG,CAACzlC,EAAEqpB,EAAE,YAAYwH,EAAE,CAAC7wB,EAAEqpB,EAAE,YAAYqc,GAAG,CAAC1lC,EAAEqpB,EAAE,YAAYsc,EAAE,CAAC3lC,EAAEqpB,EAAE,UAAUxY,EAAE,CAAC7Q,EAAEqpB,EAAE,UAAUuc,GAAG,CAAC5lC,EAAEqpB,EAAE,UAAUwc,GAAG,CAAC7lC,EAAEqpB,EAAE,UAAUuX,EAAE,CAAC5gC,EAAEqpB,EAAE,QAAQyc,GAAG,CAAC1Z,EAAE/C,EAAE,QAAQ0c,GAAG,CAACjG,EAAE,SAASx/B,GAAG,IAAIgsB,EAAEpD,EAAEkX,QAAQlY,EAAE5nB,EAAEkH,MAAM,OAAO,GAAGzJ,KAAKioC,IAAI9d,EAAE,GAAGoE,EAAE,IAAI,IAAIF,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAEE,EAAEF,GAAGhrB,QAAQ,SAAS,MAAMd,IAAIvC,KAAKioC,IAAI5Z,EAAE,GAAGuU,EAAE,CAAC3gC,EAAEqpB,EAAE,SAAS4c,GAAG,CAAC7Z,EAAE/C,EAAE,SAAS4W,EAAE,CAACjgC,EAAEqpB,EAAE,UAAU6c,GAAG,CAAC9Z,EAAE/C,EAAE,UAAU8c,IAAI,CAACrG,EAAE,SAASx/B,GAAG,IAAIgsB,EAAEK,EAAE,UAAUzE,GAAGyE,EAAE,gBAAgBL,EAAEjlB,KAAK,SAAS/G,GAAG,OAAOA,EAAE0B,MAAM,EAAE,EAAE,KAAKP,QAAQnB,GAAG,EAAE,GAAG4nB,EAAE,EAAE,MAAM,IAAInY,MAAMhS,KAAKqlB,MAAM8E,EAAE,IAAIA,CAAC,GAAGke,KAAK,CAACtG,EAAE,SAASx/B,GAAG,IAAIgsB,EAAEK,EAAE,UAAUlrB,QAAQnB,GAAG,EAAE,GAAGgsB,EAAE,EAAE,MAAM,IAAIvc,MAAMhS,KAAKqlB,MAAMkJ,EAAE,IAAIA,CAAC,GAAG+Z,EAAE,CAAC,WAAWhd,EAAE,SAASid,GAAG,CAACla,EAAE,SAAS9rB,GAAGvC,KAAKyiC,KAAKpX,EAAE9oB,EAAE,GAAGimC,KAAK,CAAC,QAAQld,EAAE,SAASmd,EAAE31B,EAAE41B,GAAG51B,GAAG,SAASsY,EAAEjB,GAAG,IAAIkE,EAAEpsB,EAAEosB,EAAElE,EAAEloB,EAAEkpB,GAAGA,EAAEwd,QAAQ,IAAI,IAAI5G,GAAG5X,EAAEkE,EAAEhrB,QAAQ,qCAAqC,SAASkrB,EAAEpE,EAAEkE,GAAG,IAAI0T,EAAE1T,GAAGA,EAAEmO,cAAc,OAAOrS,GAAGloB,EAAEosB,IAAI9rB,EAAE8rB,IAAIpsB,EAAE8/B,GAAG1+B,QAAQ,kCAAkC,SAASd,EAAEgsB,EAAEpE,GAAG,OAAOoE,GAAGpE,EAAElmB,MAAM,EAAE,GAAG,KAAKwF,MAAM8kB,GAAGlD,EAAE0W,EAAE1hC,OAAOirB,EAAE,EAAEA,EAAED,EAAEC,GAAG,EAAE,CAAC,IAAIxY,EAAEivB,EAAEzW,GAAGsD,EAAEoT,EAAElvB,GAAGmB,EAAE2a,GAAGA,EAAE,GAAGxD,EAAEwD,GAAGA,EAAE,GAAGmT,EAAEzW,GAAGF,EAAE,CAACwd,MAAM30B,EAAE40B,OAAOzd,GAAGtY,EAAEzP,QAAQ,WAAW,GAAG,CAAC,OAAO,SAASd,GAAG,IAAI,IAAIgsB,EAAE,CAAC,EAAEpE,EAAE,EAAEkE,EAAE,EAAElE,EAAEkB,EAAElB,GAAG,EAAE,CAAC,IAAIloB,EAAE8/B,EAAE5X,GAAG,GAAG,iBAAiBloB,EAAEosB,GAAGpsB,EAAE5B,WAAW,CAAC,IAAI8qB,EAAElpB,EAAE2mC,MAAMtd,EAAErpB,EAAE4mC,OAAO/1B,EAAEvQ,EAAE0B,MAAMoqB,GAAGO,EAAEzD,EAAE3hB,KAAKsJ,GAAG,GAAGwY,EAAExhB,KAAKykB,EAAEK,GAAGrsB,EAAEA,EAAEc,QAAQurB,EAAE,GAAG,CAAC,CAAC,OAAO,SAASrsB,GAAG,IAAIgsB,EAAEhsB,EAAEglC,UAAU,QAAG,IAAShZ,EAAE,CAAC,IAAIpE,EAAE5nB,EAAEumC,MAAMva,EAAEpE,EAAE,KAAK5nB,EAAEumC,OAAO,IAAI,KAAK3e,IAAI5nB,EAAEumC,MAAM,UAAUvmC,EAAEglC,SAAS,CAAC,CAAxH,CAA0HhZ,GAAGA,CAAC,CAAC,CAAC,OAAO,SAAShsB,EAAEgsB,EAAEpE,GAAGA,EAAE4I,EAAEgW,mBAAkB,EAAGxmC,GAAGA,EAAEymC,oBAAoB3d,EAAE9oB,EAAEymC,mBAAmB,IAAI3a,EAAEE,EAAEntB,UAAUa,EAAEosB,EAAEtnB,MAAMsnB,EAAEtnB,MAAM,SAASxE,GAAG,IAAIgsB,EAAEhsB,EAAE6iB,KAAKiJ,EAAE9rB,EAAE+gC,IAAIvB,EAAEx/B,EAAE0K,KAAKjN,KAAKujC,GAAGlV,EAAE,IAAIhD,EAAE0W,EAAE,GAAG,GAAG,iBAAiB1W,EAAE,CAAC,IAAIC,GAAE,IAAKyW,EAAE,GAAGjvB,GAAE,IAAKivB,EAAE,GAAGnT,EAAEtD,GAAGxY,EAAEmB,EAAE8tB,EAAE,GAAGjvB,IAAImB,EAAE8tB,EAAE,IAAI5W,EAAEnrB,KAAK0lC,WAAWpa,GAAGrX,IAAIkX,EAAEhB,EAAE2c,GAAG7yB,IAAIjU,KAAK0jC,GAAG,SAASnhC,EAAEgsB,EAAEpE,EAAEkE,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK3qB,QAAQ6qB,IAAI,EAAE,OAAO,IAAIoV,MAAM,MAAMpV,EAAE,IAAI,GAAGhsB,GAAG,IAAIN,EAAEmpB,EAAEmD,EAAFnD,CAAK7oB,GAAGw/B,EAAE9/B,EAAEwgC,KAAKtX,EAAElpB,EAAEojB,MAAMgG,EAAEppB,EAAEgmC,IAAI3c,EAAErpB,EAAE6mC,MAAMh2B,EAAE7Q,EAAEgnC,QAAQra,EAAE3sB,EAAEinC,QAAQj1B,EAAEhS,EAAEsgB,aAAayf,EAAE//B,EAAEolC,KAAKvU,EAAE7wB,EAAEqjB,KAAK4c,EAAE,IAAIyB,KAAK2E,EAAEjd,IAAI0W,GAAG5W,EAAE,EAAE+W,EAAEiC,WAAWpR,EAAEgP,GAAGG,EAAE6B,cAAczB,EAAE,EAAEP,IAAI5W,IAAImX,EAAEnX,EAAE,EAAEA,EAAE,EAAE+W,EAAE+B,YAAY,IAAIpB,EAAED,EAAEtX,GAAG,EAAE0X,EAAElwB,GAAG,EAAEzK,EAAEumB,GAAG,EAAEqY,EAAEhzB,GAAG,EAAE,OAAO+tB,EAAE,IAAI2B,KAAKA,KAAKE,IAAI9Q,EAAEuP,EAAEgG,EAAE1F,EAAEI,EAAE36B,EAAE4+B,EAAE,GAAGjF,EAAE36B,OAAO,MAAM8iB,EAAE,IAAIwZ,KAAKA,KAAKE,IAAI9Q,EAAEuP,EAAEgG,EAAE1F,EAAEI,EAAE36B,EAAE4+B,KAAKpE,EAAE,IAAIc,KAAK5Q,EAAEuP,EAAEgG,EAAE1F,EAAEI,EAAE36B,EAAE4+B,GAAGnU,IAAI+P,EAAExU,EAAEwU,GAAGvd,KAAKwN,GAAG2S,UAAU5C,EAAE,CAAC,MAAMtgC,GAAG,OAAO,IAAIohC,KAAK,GAAG,CAAC,CAAzf,CAA2fpV,EAAElD,EAAEgD,EAAElE,GAAGnqB,KAAK2hC,OAAO1tB,IAAG,IAAKA,IAAIjU,KAAKqjC,GAAGrjC,KAAKojC,OAAOnvB,GAAGovB,IAAIzU,GAAGL,GAAGvuB,KAAK+lC,OAAO1a,KAAKrrB,KAAK0jC,GAAG,IAAIC,KAAK,KAAKxY,EAAE,CAAC,CAAC,MAAM,GAAGE,aAAaxhB,MAAM,IAAI,IAAIm4B,EAAE3W,EAAEhrB,OAAOyyB,EAAE,EAAEA,GAAGkP,EAAElP,GAAG,EAAE,CAACiP,EAAE,GAAG1W,EAAEyH,EAAE,GAAG,IAAIoP,EAAE/X,EAAE9c,MAAMrN,KAAK+hC,GAAG,GAAGG,EAAE6C,UAAU,CAAC/kC,KAAK0jC,GAAGxB,EAAEwB,GAAG1jC,KAAKqjC,GAAGnB,EAAEmB,GAAGrjC,KAAK2hC,OAAO,KAAK,CAAC7O,IAAIkP,IAAIhiC,KAAK0jC,GAAG,IAAIC,KAAK,IAAI,MAAM1hC,EAAE6H,KAAK9J,KAAKuC,EAAE,CAAC,CAAC,CAAhtHgsB,qBCAfuT,EAAOluB,QAAoJ,WAAW,aAAa,OAAO,SAASrR,EAAEN,EAAEssB,GAAGtsB,EAAEb,UAAU+nC,UAAU,SAAS5mC,EAAEN,EAAEkpB,EAAEG,GAAG,IAAInB,EAAEoE,EAAEhsB,GAAGw/B,EAAExT,EAAEtsB,GAAGosB,EAAE,OAAO/C,EAAEA,GAAG,MAAM,GAAGsD,EAAE,MAAMtD,EAAE,GAAG,OAAO+C,EAAEruB,KAAKmlC,QAAQhb,EAAEgB,IAAInrB,KAAKolC,SAASjb,EAAEgB,MAAMyD,EAAE5uB,KAAKolC,SAASrD,EAAE5W,IAAInrB,KAAKmlC,QAAQpD,EAAE5W,MAAMkD,EAAEruB,KAAKolC,SAASjb,EAAEgB,IAAInrB,KAAKmlC,QAAQhb,EAAEgB,MAAMyD,EAAE5uB,KAAKmlC,QAAQpD,EAAE5W,IAAInrB,KAAKolC,SAASrD,EAAE5W,GAAG,CAAC,CAAC,CAA3clpB,qBCAf6/B,EAAOluB,QAA0J,WAAW,aAAa,IAAIrR,EAAE,CAACwkC,IAAI,YAAYC,GAAG,SAASC,EAAE,aAAaC,GAAG,eAAeC,IAAI,sBAAsBC,KAAK,6BAA6B,OAAO,SAAS7Y,EAAEwT,EAAE5X,GAAG,IAAIkE,EAAE0T,EAAE3gC,UAAUa,EAAEosB,EAAE0X,OAAO5b,EAAE0c,GAAG8B,QAAQpmC,EAAE8rB,EAAE0X,OAAO,SAASxX,QAAG,IAASA,IAAIA,EAAE,wBAAwB,IAAIwT,EAAE/hC,KAAK0lC,UAAUiD,QAAQxe,EAAE,SAASoE,EAAEwT,GAAG,OAAOxT,EAAElrB,QAAQ,qCAAqC,SAASkrB,EAAEpE,EAAEkE,GAAG,IAAIpsB,EAAEosB,GAAGA,EAAEmO,cAAc,OAAOrS,GAAG4X,EAAE1T,IAAI9rB,EAAE8rB,IAAI0T,EAAE9/B,GAAGoB,QAAQ,kCAAkC,SAASd,EAAEgsB,EAAEwT,GAAG,OAAOxT,GAAGwT,EAAE99B,MAAM,EAAE,GAAG,GAAG,CAA5N,CAA8NsqB,OAAE,IAASwT,EAAE,CAAC,EAAEA,GAAG,OAAO9/B,EAAE6H,KAAK9J,KAAKmqB,EAAE,CAAC,CAAC,CAAhtBoE,qBCAfuT,EAAOluB,QAAqJ,WAAW,aAAa,IAAIrR,EAAE,OAAOgsB,EAAE,OAAO,OAAO,SAAStsB,EAAEkoB,EAAEkE,GAAG,IAAI/C,EAAEnB,EAAE/oB,UAAUkqB,EAAEhG,KAAK,SAASrjB,GAAG,QAAG,IAASA,IAAIA,EAAE,MAAM,OAAOA,EAAE,OAAOjC,KAAK0iC,IAAI,GAAGzgC,EAAEjC,KAAKslB,QAAQ,OAAO,IAAI6E,EAAEnqB,KAAK0lC,UAAU0D,WAAW,EAAE,GAAG,KAAKppC,KAAKqlB,SAASrlB,KAAKolB,OAAO,GAAG,CAAC,IAAIkG,EAAE+C,EAAEruB,MAAMilC,QAAQ1W,GAAGmU,IAAI,EAAEnU,GAAGnJ,KAAK+E,GAAGgB,EAAEkD,EAAEruB,MAAMklC,MAAM3iC,GAAG,GAAG+oB,EAAE8Z,SAASja,GAAG,OAAO,CAAC,CAAC,IAAIE,EAAEgD,EAAEruB,MAAMilC,QAAQ1W,GAAGnJ,KAAK+E,GAAG8a,QAAQ1iC,GAAGujC,SAAS,EAAE,eAAe/D,EAAE/hC,KAAKsmC,KAAKjb,EAAE9oB,GAAE,GAAI,OAAOw/B,EAAE,EAAE1T,EAAEruB,MAAMilC,QAAQ,QAAQ3f,OAAOziB,KAAK8/B,KAAKZ,EAAE,EAAEzW,EAAE+d,MAAM,SAAS9mC,GAAG,YAAO,IAASA,IAAIA,EAAE,MAAMvC,KAAKslB,KAAK/iB,EAAE,CAAC,CAAC,CAAhrBgsB,+BCEnF,IAAI+a,EAAU31B,EAAQ,MAMlB41B,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACd70B,cAAc,EACd4O,aAAa,EACbkmB,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BxpB,QAAQ,EACRuU,WAAW,EACX9vB,MAAM,GAEJglC,EAAgB,CAClB5+B,MAAM,EACN7K,QAAQ,EACRe,WAAW,EACX2oC,QAAQ,EACRC,QAAQ,EACRh9B,WAAW,EACXi9B,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACTt1B,cAAc,EACd4O,aAAa,EACbmR,WAAW,EACX9vB,MAAM,GAEJslC,EAAe,CAAC,EAIpB,SAASC,EAAWhyB,GAElB,OAAIixB,EAAQgB,OAAOjyB,GACV6xB,EAIFE,EAAa/xB,EAAoB,WAAMkxB,CAChD,CAXAa,EAAad,EAAQ/J,YAhBK,CACxB,UAAY,EACZC,QAAQ,EACR3qB,cAAc,EACd4O,aAAa,EACbmR,WAAW,GAYbwV,EAAad,EAAQ7J,MAAQyK,EAY7B,IAAIh2B,EAAiBhR,OAAOgR,eACxBq2B,EAAsBrnC,OAAOqnC,oBAC7BC,EAAwBtnC,OAAOsnC,sBAC/B7b,EAA2BzrB,OAAOyrB,yBAClC8O,EAAiBv6B,OAAOu6B,eACxBgN,EAAkBvnC,OAAO9B,UAsC7B0gC,EAAOluB,QArCP,SAAS82B,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBrN,EAAemN,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,EAE9D,CAEA,IAAI3jB,EAAOqjB,EAAoBK,GAE3BJ,IACFtjB,EAAOA,EAAKtc,OAAO4/B,EAAsBI,KAM3C,IAHA,IAAIG,EAAgBV,EAAWM,GAC3BK,EAAgBX,EAAWO,GAEtB3oC,EAAI,EAAGA,EAAIilB,EAAK7mB,SAAU4B,EAAG,CACpC,IAAIf,EAAMgmB,EAAKjlB,GAEf,IAAK6nC,EAAc5oC,MAAU2pC,IAAaA,EAAU3pC,OAAW8pC,IAAiBA,EAAc9pC,OAAW6pC,IAAiBA,EAAc7pC,IAAO,CAC7I,IAAI+pC,EAAatc,EAAyBic,EAAiB1pC,GAE3D,IAEEgT,EAAey2B,EAAiBzpC,EAAK+pC,EACvC,CAAE,MAAO1oC,GAAI,CACf,CACF,CACF,CAEA,OAAOooC,CACT,6BC3Fa,IAAI1X,EAAE,oBAAoByK,QAAQA,OAAOwN,IAAIlJ,EAAE/O,EAAEyK,OAAOwN,IAAI,iBAAiB,MAAMj3B,EAAEgf,EAAEyK,OAAOwN,IAAI,gBAAgB,MAAM3oC,EAAE0wB,EAAEyK,OAAOwN,IAAI,kBAAkB,MAAM5f,EAAE2H,EAAEyK,OAAOwN,IAAI,qBAAqB,MAAMlI,EAAE/P,EAAEyK,OAAOwN,IAAI,kBAAkB,MAAMp4B,EAAEmgB,EAAEyK,OAAOwN,IAAI,kBAAkB,MAAM/iC,EAAE8qB,EAAEyK,OAAOwN,IAAI,iBAAiB,MAAM9f,EAAE6H,EAAEyK,OAAOwN,IAAI,oBAAoB,MAAMpY,EAAEG,EAAEyK,OAAOwN,IAAI,yBAAyB,MAAM/gB,EAAE8I,EAAEyK,OAAOwN,IAAI,qBAAqB,MAAMnY,EAAEE,EAAEyK,OAAOwN,IAAI,kBAAkB,MAAMC,EAAElY,EACpfyK,OAAOwN,IAAI,uBAAuB,MAAM7c,EAAE4E,EAAEyK,OAAOwN,IAAI,cAAc,MAAM3c,EAAE0E,EAAEyK,OAAOwN,IAAI,cAAc,MAAM5I,EAAErP,EAAEyK,OAAOwN,IAAI,eAAe,MAAMtI,EAAE3P,EAAEyK,OAAOwN,IAAI,qBAAqB,MAAM9iC,EAAE6qB,EAAEyK,OAAOwN,IAAI,mBAAmB,MAAM7iC,EAAE4qB,EAAEyK,OAAOwN,IAAI,eAAe,MAClQ,SAAS5iC,EAAE+iB,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIuD,EAAEvD,EAAEiU,SAAS,OAAO1Q,GAAG,KAAKoT,EAAE,OAAO3W,EAAEA,EAAEvmB,MAAQ,KAAKsmB,EAAE,KAAK0H,EAAE,KAAKvwB,EAAE,KAAKygC,EAAE,KAAK1X,EAAE,KAAKyH,EAAE,OAAO1H,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEiU,UAAY,KAAKn3B,EAAE,KAAKgiB,EAAE,KAAKoE,EAAE,KAAKF,EAAE,KAAKvb,EAAE,OAAOuY,EAAE,QAAQ,OAAOuD,GAAG,KAAK3a,EAAE,OAAO2a,EAAE,CAAC,CAAC,SAAS0Y,EAAEjc,GAAG,OAAO/iB,EAAE+iB,KAAKyH,CAAC,CAAClf,EAAQw3B,UAAUhgB,EAAExX,EAAQy3B,eAAevY,EAAElf,EAAQ03B,gBAAgBnjC,EAAEyL,EAAQ23B,gBAAgBz4B,EAAEc,EAAQ43B,QAAQxJ,EAAEpuB,EAAQ2rB,WAAWpV,EAAEvW,EAAQ63B,SAASlpC,EAAEqR,EAAQ83B,KAAKnd,EAAE3a,EAAQ6rB,KAAKpR,EAAEza,EAAQ+3B,OAAO13B,EAChfL,EAAQg4B,SAAS5I,EAAEpvB,EAAQi4B,WAAWvgB,EAAE1X,EAAQk4B,SAAS/Y,EAAEnf,EAAQm4B,YAAY,SAAS1gB,GAAG,OAAOic,EAAEjc,IAAI/iB,EAAE+iB,KAAKD,CAAC,EAAExX,EAAQo4B,iBAAiB1E,EAAE1zB,EAAQq4B,kBAAkB,SAAS5gB,GAAG,OAAO/iB,EAAE+iB,KAAKljB,CAAC,EAAEyL,EAAQs4B,kBAAkB,SAAS7gB,GAAG,OAAO/iB,EAAE+iB,KAAKvY,CAAC,EAAEc,EAAQu4B,UAAU,SAAS9gB,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEiU,WAAW0C,CAAC,EAAEpuB,EAAQw4B,aAAa,SAAS/gB,GAAG,OAAO/iB,EAAE+iB,KAAKlB,CAAC,EAAEvW,EAAQy4B,WAAW,SAAShhB,GAAG,OAAO/iB,EAAE+iB,KAAK9oB,CAAC,EAAEqR,EAAQ04B,OAAO,SAASjhB,GAAG,OAAO/iB,EAAE+iB,KAAKkD,CAAC,EAC1d3a,EAAQ02B,OAAO,SAASjf,GAAG,OAAO/iB,EAAE+iB,KAAKgD,CAAC,EAAEza,EAAQ24B,SAAS,SAASlhB,GAAG,OAAO/iB,EAAE+iB,KAAKpX,CAAC,EAAEL,EAAQ44B,WAAW,SAASnhB,GAAG,OAAO/iB,EAAE+iB,KAAK2X,CAAC,EAAEpvB,EAAQ64B,aAAa,SAASphB,GAAG,OAAO/iB,EAAE+iB,KAAKC,CAAC,EAAE1X,EAAQ84B,WAAW,SAASrhB,GAAG,OAAO/iB,EAAE+iB,KAAK0H,CAAC,EAC1Onf,EAAQ+4B,mBAAmB,SAASthB,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAI9oB,GAAG8oB,IAAIyH,GAAGzH,IAAI2X,GAAG3X,IAAIC,GAAGD,IAAI0H,GAAG1H,IAAI8f,GAAG,kBAAkB9f,GAAG,OAAOA,IAAIA,EAAEiU,WAAW/Q,GAAGlD,EAAEiU,WAAWjR,GAAGhD,EAAEiU,WAAWxsB,GAAGuY,EAAEiU,WAAWn3B,GAAGkjB,EAAEiU,WAAWnV,GAAGkB,EAAEiU,WAAWsD,GAAGvX,EAAEiU,WAAWl3B,GAAGijB,EAAEiU,WAAWj3B,GAAGgjB,EAAEiU,WAAWgD,EAAE,EAAE1uB,EAAQg5B,OAAOtkC,+BCXjUw5B,EAAOluB,QAAU,EAAjBkuB,wBCID,IAASl9B,EAAMioC,EAANjoC,EAMS,qBAATkoC,KAAuBA,KAAO9sC,KANxB6sC,EAM8B,KAC9C,aACA,IAAIE,EAAS,MACX,IAAIC,EAAW9pC,OAAOoI,OAClB2hC,EAAY/pC,OAAOgR,eACnBg5B,EAAahqC,OAAOiqC,iBACpBC,EAAmBlqC,OAAOyrB,yBAC1B0e,EAAoBnqC,OAAOoqC,0BAC3BC,EAAoBrqC,OAAOqnC,oBAC3BiD,EAAsBtqC,OAAOsnC,sBAC7BiD,EAAevqC,OAAOu6B,eACtBiQ,EAAexqC,OAAO9B,UAAUsa,eAChCiyB,EAAezqC,OAAO9B,UAAUwsC,qBAChCC,EAAkBA,CAACj8B,EAAK1Q,EAAKkC,IAAUlC,KAAO0Q,EAAMq7B,EAAUr7B,EAAK1Q,EAAK,CAAEiT,YAAY,EAAM25B,cAAc,EAAMC,UAAU,EAAM3qC,UAAWwO,EAAI1Q,GAAOkC,EAatJ4qC,EAAQA,CAAC3iC,EAAI4iC,IAAQ,WACvB,OAAO5iC,IAAO4iC,GAAM,EAAI5iC,EAAGkiC,EAAkBliC,GAAI,KAAKA,EAAK,IAAK4iC,CAClE,EACIC,EAAaA,CAACC,EAAIC,IAAQ,WAC5B,OAAOA,IAAO,EAAID,EAAGZ,EAAkBY,GAAI,MAAMC,EAAM,CAAEx6B,QAAS,CAAC,IAAKA,QAASw6B,GAAMA,EAAIx6B,OAC7F,EACIy6B,EAAWA,CAACnoB,EAAQooB,KACtB,IAAK,IAAIC,KAASD,EAChBrB,EAAU/mB,EAAQqoB,EAAO,CAAExlC,IAAKulC,EAAIC,GAAQp6B,YAAY,GAAO,EAE/Dq6B,EAAcA,CAACC,EAAI3rC,EAAM4rC,EAAQC,KACnC,GAAI7rC,GAAwB,kBAATA,GAAqC,oBAATA,EAC7C,IAAK,IAAI5B,KAAOqsC,EAAkBzqC,GAC3B4qC,EAAa5jC,KAAK2kC,EAAIvtC,IAAQA,IAAQwtC,GACzCzB,EAAUwB,EAAIvtC,EAAK,CAAE6H,IAAKA,IAAMjG,EAAK5B,GAAMiT,aAAcw6B,EAAOvB,EAAiBtqC,EAAM5B,KAASytC,EAAKx6B,aAE3G,OAAOs6B,CAAE,EAUPG,EAAgBR,GAAQI,EAAYvB,EAAU,CAAC,EAAG,aAAc,CAAE7pC,OAAO,IAASgrC,GAGlFS,EAAkBX,EAAW,CAC/B,iBAAiBt6B,GAEfA,EAAQk7B,QAAU,OACpB,IAIEC,EAAkBb,EAAW,CAC/B,kDAAkDt6B,EAASkuB,GACzD,IAAcyM,EAAOS,EAASC,EAAhBV,EASX,UATkBS,EASU,oBAAVpP,OAAwBA,OAAShsB,EATxBq7B,EASiC,WAE7D,IAAIC,EAAaC,EAAOC,EAAkBC,EAAWnsC,OAAO9B,UAAUmM,SAAU+hC,EAA+B,oBAAhBC,aAA8B,SAAgBlkC,GAC3I,OAAOkkC,aAAalkC,EACtB,EAAIiyB,WACJ,IACEp6B,OAAOgR,eAAe,CAAC,EAAG,IAAK,CAAC,GAChCg7B,EAAc,SAAsBt9B,EAAK28B,EAAOxjB,EAAKnW,GACnD,OAAO1R,OAAOgR,eAAetC,EAAK28B,EAAO,CACvCnrC,MAAO2nB,EACPgjB,UAAU,EACVD,cAAyB,IAAXl5B,GAElB,CACF,CAAE,MAAO46B,GACPN,EAAc,SAAsBt9B,EAAK28B,EAAOxjB,GAE9C,OADAnZ,EAAI28B,GAASxjB,EACNnZ,CACT,CACF,CA6BA,SAAS69B,EAASpkC,EAAIqkC,GACpBN,EAAiB1M,IAAIr3B,EAAIqkC,GACpBP,IACHA,EAAQG,EAAMF,EAAiBO,OAEnC,CACA,SAASC,EAAW7N,GAClB,IAAI8N,EAAOC,SAAgB/N,EAI3B,OAHS,MAALA,GAAwB,UAAV+N,GAAgC,YAAVA,IACtCD,EAAQ9N,EAAEgO,MAEW,mBAATF,GAAsBA,CACtC,CACA,SAASG,IACP,IAAK,IAAI/tC,EAAI,EAAGA,EAAIjC,KAAKiwC,MAAM5vC,OAAQ4B,IACrCiuC,EACElwC,KACe,IAAfA,KAAKogC,MAAcpgC,KAAKiwC,MAAMhuC,GAAGya,QAAU1c,KAAKiwC,MAAMhuC,GAAGkuC,QACzDnwC,KAAKiwC,MAAMhuC,IAGfjC,KAAKiwC,MAAM5vC,OAAS,CACtB,CACA,SAAS6vC,EAAeR,EAAOvB,EAAI8B,GACjC,IAAIG,EAAKP,EACT,KACa,IAAP1B,EACF8B,EAAMI,OAAOX,EAAMY,MAGjBF,GADS,IAAPjC,EACIuB,EAAMY,IAENnC,EAAGrkC,UAAK,EAAQ4lC,EAAMY,QAElBL,EAAMM,QAChBN,EAAMI,OAAOG,UAAU,yBACdX,EAAQD,EAAWQ,IAC5BP,EAAM/lC,KAAKsmC,EAAKH,EAAMQ,QAASR,EAAMI,QAErCJ,EAAMQ,QAAQL,EAGpB,CAAE,MAAOZ,GACPS,EAAMI,OAAOb,EACf,CACF,CACA,SAASiB,EAAQH,GACf,IAAIT,EAAOH,EAAQ1vC,KACnB,IAAI0vC,EAAMgB,UAAV,CAGAhB,EAAMgB,WAAY,EACdhB,EAAMiB,MACRjB,EAAQA,EAAMiB,KAEhB,KACMd,EAAQD,EAAWU,IACrBb,GAAS,WACP,IAAImB,EAAc,IAAIC,EAAenB,GACrC,IACEG,EAAM/lC,KACJwmC,GACA,WACEG,EAAQpjC,MAAMujC,EAAa5jC,UAC7B,IACA,WACEqjC,EAAOhjC,MAAMujC,EAAa5jC,UAC5B,GAEJ,CAAE,MAAOwiC,GACPa,EAAOvmC,KAAK8mC,EAAapB,EAC3B,CACF,KAEAE,EAAMY,IAAMA,EACZZ,EAAMtP,MAAQ,EACVsP,EAAMO,MAAM5vC,OAAS,GACvBovC,EAASO,EAAQN,GAGvB,CAAE,MAAOF,GACPa,EAAOvmC,KAAK,IAAI+mC,EAAenB,GAAQF,EACzC,CAhCA,CAiCF,CACA,SAASa,EAAOC,GACd,IAAIZ,EAAQ1vC,KACR0vC,EAAMgB,YAGVhB,EAAMgB,WAAY,EACdhB,EAAMiB,MACRjB,EAAQA,EAAMiB,KAEhBjB,EAAMY,IAAMA,EACZZ,EAAMtP,MAAQ,EACVsP,EAAMO,MAAM5vC,OAAS,GACvBovC,EAASO,EAAQN,GAErB,CACA,SAASoB,EAAgBC,EAAaC,EAAKC,EAAUC,GACnD,IAAK,IAAIlmB,EAAM,EAAGA,EAAMgmB,EAAI3wC,OAAQ2qB,KAClC,SAAemmB,GACbJ,EAAYN,QAAQO,EAAIG,IAAOpB,MAC7B,SAAoBO,GAClBW,EAASE,EAAMb,EACjB,GACAY,EAEH,CAPD,CAOGlmB,EAEP,CACA,SAAS6lB,EAAenB,GACtB1vC,KAAK2wC,IAAMjB,EACX1vC,KAAK0wC,WAAY,CACnB,CACA,SAASU,EAAQ1B,GACf1vC,KAAKuwC,QAAUb,EACf1vC,KAAKogC,MAAQ,EACbpgC,KAAK0wC,WAAY,EACjB1wC,KAAKiwC,MAAQ,GACbjwC,KAAKswC,SAAM,CACb,CACA,SAASe,EAASC,GAChB,GAAuB,mBAAZA,EACT,MAAMd,UAAU,kBAElB,GAAqB,IAAjBxwC,KAAKuxC,QACP,MAAMf,UAAU,iBAElBxwC,KAAKuxC,QAAU,EACf,IAAIZ,EAAM,IAAIS,EAAQpxC,MACtBA,KAAW,KAAI,SAAc0c,EAASyzB,GACpC,IAAIpO,EAAI,CACNrlB,QAA2B,mBAAXA,GAAwBA,EACxCyzB,QAA2B,mBAAXA,GAAwBA,GAa1C,OAXApO,EAAEwO,QAAU,IAAIvwC,KAAKuM,aAAY,SAAsBilC,EAAUC,GAC/D,GAAuB,mBAAZD,GAA4C,mBAAXC,EAC1C,MAAMjB,UAAU,kBAElBzO,EAAE0O,QAAUe,EACZzP,EAAEsO,OAASoB,CACb,IACAd,EAAIV,MAAMrvC,KAAKmhC,GACG,IAAd4O,EAAIvQ,OACNqP,EAASO,EAAQW,GAEZ5O,EAAEwO,OACX,EACAvwC,KAAY,MAAI,SAAiBmwC,GAC/B,OAAOnwC,KAAK+vC,UAAK,EAAQI,EAC3B,EACA,IACEmB,EAASxnC,UACP,GACA,SAAuBwmC,GACrBG,EAAQ3mC,KAAK6mC,EAAKL,EACpB,IACA,SAAsBA,GACpBD,EAAOvmC,KAAK6mC,EAAKL,EACnB,GAEJ,CAAE,MAAOd,GACPa,EAAOvmC,KAAK6mC,EAAKnB,EACnB,CACF,CAjMAJ,EAAmC,WACjC,IAAIsC,EAAOC,EAAM3hB,EACjB,SAAS4hB,EAAKvmC,EAAIqkC,GAChB1vC,KAAKqL,GAAKA,EACVrL,KAAK8sC,KAAO4C,EACZ1vC,KAAKoF,UAAO,CACd,CACA,MAAO,CACLs9B,IAAK,SAAar3B,EAAIqkC,GACpB1f,EAAO,IAAI4hB,EAAKvmC,EAAIqkC,GAChBiC,EACFA,EAAKvsC,KAAO4qB,EAEZ0hB,EAAQ1hB,EAEV2hB,EAAO3hB,EACPA,OAAO,CACT,EACA2f,MAAO,WACL,IAAIrkB,EAAIomB,EAER,IADAA,EAAQC,EAAOxC,OAAQ,EAChB7jB,GACLA,EAAEjgB,GAAGvB,KAAKwhB,EAAEwhB,MACZxhB,EAAIA,EAAElmB,IAEV,EAEJ,CA3BmC,GAkMnC,IAAIysC,EAAmB3C,EACrB,CAAC,EACD,cACAmC,GAEA,GAiEF,OA/DAA,EAASjwC,UAAYywC,EACrB3C,EACE2C,EACA,UACA,GAEA,GAEF3C,EAAYmC,EAAU,WAAW,SAAyBf,GAExD,OAAIA,GAAqB,iBAAPA,GAAmC,IAAhBA,EAAIiB,QAChCjB,EAEF,IAJWtwC,MAIK,SAAkBwxC,EAAUC,GACjD,GAAuB,mBAAZD,GAA4C,mBAAXC,EAC1C,MAAMjB,UAAU,kBAElBgB,EAASlB,EACX,GACF,IACApB,EAAYmC,EAAU,UAAU,SAAwBf,GACtD,OAAO,IAAItwC,MAAK,SAAkBwxC,EAAUC,GAC1C,GAAuB,mBAAZD,GAA4C,mBAAXC,EAC1C,MAAMjB,UAAU,kBAElBiB,EAAQnB,EACV,GACF,IACApB,EAAYmC,EAAU,OAAO,SAAqBL,GAChD,IAAID,EAAc/wC,KAClB,MAA0B,kBAAtBqvC,EAASvlC,KAAKknC,GACTD,EAAYV,OAAOG,UAAU,iBAEnB,IAAfQ,EAAI3wC,OACC0wC,EAAYN,QAAQ,IAEtB,IAAIM,GAAY,SAAkBS,EAAUC,GACjD,GAAuB,mBAAZD,GAA4C,mBAAXC,EAC1C,MAAMjB,UAAU,kBAElB,IAAIz9B,EAAMi+B,EAAI3wC,OAAQyxC,EAAOjoC,MAAMkJ,GAAMjN,EAAQ,EACjDgrC,EAAgBC,EAAaC,GAAK,SAAkBhmB,EAAKslB,GACvDwB,EAAK9mB,GAAOslB,IACNxqC,IAAUiN,GACdy+B,EAASM,EAEb,GAAGL,EACL,GACF,IACAvC,EAAYmC,EAAU,QAAQ,SAAsBL,GAClD,IAAID,EAAc/wC,KAClB,MAA0B,kBAAtBqvC,EAASvlC,KAAKknC,GACTD,EAAYV,OAAOG,UAAU,iBAE/B,IAAIO,GAAY,SAAkBS,EAAUC,GACjD,GAAuB,mBAAZD,GAA4C,mBAAXC,EAC1C,MAAMjB,UAAU,kBAElBM,EAAgBC,EAAaC,GAAK,SAAkBhmB,EAAKslB,GACvDkB,EAASlB,EACX,GAAGmB,EACL,GACF,IACOJ,CACT,EArSErC,EAAQT,GAASS,EAAQT,IAAUU,IACd,oBAAVnN,GAAyBA,EAAOluB,UACzCkuB,EAAOluB,QAAUo7B,EAAQT,GAoS/B,IAIEwD,EAAa7D,EAAW,CAC1B,gCAAgCt6B,EAASkuB,IACtC,WACC,IAAIkQ,EAAK,CACPlD,QAAS,SAEPmD,EAAgB,GAAGhuC,MAAOiuC,EAAW,SAASC,GAChD,OAAOF,EAAcnoC,KAAKqoC,EAC5B,EACIC,EAActF,KAAKprC,SACvB,SAAS2wC,EAAmB1tC,GAC1B,OAAOA,IAASA,EAAK8hB,eAAiB9hB,EAAKjD,UAAYiD,GAAM2tC,eAC/D,CACA,SAASC,EAAU5tC,GACjB,OAAOA,IAASA,EAAK8hB,eAAiB9hB,EAAK8hB,cAAckZ,aAAeh7B,EAAKjD,UAAYiD,GAAQA,EAAKg7B,YACxG,CACA,GAAIyS,EACF,IACEF,EAASE,EAAYE,gBAAgBE,YAAY,GAAGC,QACtD,CAAE,MAAOlwC,IACP2vC,EAAW,SAASC,GAElB,IADA,IAAIlwC,EAAIkwC,EAAK9xC,OAAQgE,EAAQ,IAAIwF,MAAM5H,GAChCA,KAAKoC,EAAMpC,GAAKkwC,EAAKlwC,GAC5B,OAAOoC,CACT,CACF,CAKF,GAHKs/B,KAAK+O,MAAK/O,KAAK+O,IAAM,WACxB,OAAwB,IAAI/O,IAC9B,GACIyO,EACF,IACEA,EAAYzwC,cAAc,OAAO2qB,MAAMqmB,YAAY,UAAW,EAAG,GACnE,CAAE,MAAOv2B,IACP,IAAIw2B,EAAuB5yC,KAAKwrC,QAAQpqC,UAAWyxC,EAA0BD,EAAqBhxC,aAAckxC,EAA4BF,EAAqBG,eAAgBC,EAAqBhzC,KAAKizC,oBAAoB7xC,UAAW8xC,EAAuBF,EAAmBL,YACpRC,EAAqBhxC,aAAe,SAAS2sC,EAAOnrC,GAClDyvC,EAAwB/oC,KAAK9J,KAAMuuC,EAAOnrC,EAAQ,GACpD,EACAwvC,EAAqBG,eAAiB,SAASI,EAAOC,EAAOhwC,GAC3D0vC,EAA0BhpC,KAAK9J,KAAMmzC,EAAOC,EAAOhwC,EAAQ,GAC7D,EACA4vC,EAAmBL,YAAc,SAASpE,EAAOnrC,EAAOiwC,GACtDH,EAAqBppC,KAAK9J,KAAMuuC,EAAOnrC,EAAQ,GAAIiwC,EACrD,CACF,CAGF,SAASC,EAAajoB,EAAG4H,GACvB,OAAO5H,EAAI4H,GAAK,EAAI5H,EAAI4H,EAAI,EAAI5H,GAAK4H,EAAI,EAAI2Q,GAC/C,CA6DA,SAAS2P,EAAUnrC,GACjB,OAAa,OAANA,EAAaw7B,KAAOx7B,CAC7B,CACA,SAASorC,EAAWprC,GAClB,OAAQqrC,MAAMrrC,EAChB,CA2DA,SAASsrC,EAAYvJ,GACnB,MAAO,CACL3P,KAAM,SAASnP,EAAGjjB,EAAGurC,EAAIC,GAGvB,IAFI5mC,UAAU3M,OAAS,IAAGszC,EAAK,GAC3B3mC,UAAU3M,OAAS,IAAGuzC,EAAKvoB,EAAEhrB,QAC1BszC,EAAKC,GAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAClBzJ,EAAQ9e,EAAEwoB,GAAMzrC,GAAK,EAAGurC,EAAKE,EAAM,EAClCD,EAAKC,CACZ,CACA,OAAOF,CACT,EACArZ,MAAO,SAASjP,EAAGjjB,EAAGurC,EAAIC,GAGxB,IAFI5mC,UAAU3M,OAAS,IAAGszC,EAAK,GAC3B3mC,UAAU3M,OAAS,IAAGuzC,EAAKvoB,EAAEhrB,QAC1BszC,EAAKC,GAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAClBzJ,EAAQ9e,EAAEwoB,GAAMzrC,GAAK,EAAGwrC,EAAKC,EAC5BF,EAAKE,EAAM,CAClB,CACA,OAAOF,CACT,EAEJ,CAvJA3B,EAAG8B,UAAYR,EAIftB,EAAG+B,WAAa,SAAS1oB,EAAG4H,GAC1B,OAAOA,EAAI5H,GAAK,EAAI4H,EAAI5H,EAAI,EAAI4H,GAAK5H,EAAI,EAAIuY,GAC/C,EACAoO,EAAGroB,IAAM,SAAStlB,EAAOinB,GACvB,IAA8BD,EAAG4H,EAA7BhxB,GAAK,EAAGkoB,EAAI9lB,EAAMhE,OACtB,GAAyB,IAArB2M,UAAU3M,OAAc,CAC1B,OAAS4B,EAAIkoB,MAAyB,OAAjB8I,EAAI5uB,EAAMpC,KAAegxB,GAAKA,EAAG,CACpD5H,EAAI4H,EACJ,KACF,CACA,OAAShxB,EAAIkoB,GAAyB,OAAjB8I,EAAI5uB,EAAMpC,KAAeopB,EAAI4H,IAAG5H,EAAI4H,EAC3D,KAAO,CACL,OAAShxB,EAAIkoB,MAA2C,OAAnC8I,EAAI3H,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,KAAegxB,GAAKA,EAAG,CACtE5H,EAAI4H,EACJ,KACF,CACA,OAAShxB,EAAIkoB,GAA2C,OAAnC8I,EAAI3H,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,KAAeopB,EAAI4H,IAAG5H,EAAI4H,EAC7E,CACA,OAAO5H,CACT,EACA2mB,EAAGtoB,IAAM,SAASrlB,EAAOinB,GACvB,IAA8BD,EAAG4H,EAA7BhxB,GAAK,EAAGkoB,EAAI9lB,EAAMhE,OACtB,GAAyB,IAArB2M,UAAU3M,OAAc,CAC1B,OAAS4B,EAAIkoB,MAAyB,OAAjB8I,EAAI5uB,EAAMpC,KAAegxB,GAAKA,EAAG,CACpD5H,EAAI4H,EACJ,KACF,CACA,OAAShxB,EAAIkoB,GAAyB,OAAjB8I,EAAI5uB,EAAMpC,KAAegxB,EAAI5H,IAAGA,EAAI4H,EAC3D,KAAO,CACL,OAAShxB,EAAIkoB,MAA2C,OAAnC8I,EAAI3H,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,KAAegxB,GAAKA,EAAG,CACtE5H,EAAI4H,EACJ,KACF,CACA,OAAShxB,EAAIkoB,GAA2C,OAAnC8I,EAAI3H,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,KAAegxB,EAAI5H,IAAGA,EAAI4H,EAC7E,CACA,OAAO5H,CACT,EACA2mB,EAAGgC,OAAS,SAAS3vC,EAAOinB,GAC1B,IAA8BD,EAAG4H,EAAG+O,EAAhC//B,GAAK,EAAGkoB,EAAI9lB,EAAMhE,OACtB,GAAyB,IAArB2M,UAAU3M,OAAc,CAC1B,OAAS4B,EAAIkoB,MAAyB,OAAjB8I,EAAI5uB,EAAMpC,KAAegxB,GAAKA,EAAG,CACpD5H,EAAI2W,EAAI/O,EACR,KACF,CACA,OAAShxB,EAAIkoB,GAAyB,OAAjB8I,EAAI5uB,EAAMpC,MACzBopB,EAAI4H,IAAG5H,EAAI4H,GACX+O,EAAI/O,IAAG+O,EAAI/O,GAEnB,KAAO,CACL,OAAShxB,EAAIkoB,MAA2C,OAAnC8I,EAAI3H,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,KAAegxB,GAAKA,EAAG,CACtE5H,EAAI2W,EAAI/O,EACR,KACF,CACA,OAAShxB,EAAIkoB,GAA2C,OAAnC8I,EAAI3H,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,MAC3CopB,EAAI4H,IAAG5H,EAAI4H,GACX+O,EAAI/O,IAAG+O,EAAI/O,GAEnB,CACA,MAAO,CAAC5H,EAAG2W,EACb,EAOAgQ,EAAGiC,IAAM,SAAS5vC,EAAOinB,GACvB,IAA6BD,EAAzBF,EAAI,EAAGhB,EAAI9lB,EAAMhE,OAAW4B,GAAK,EACrC,GAAyB,IAArB+K,UAAU3M,OACZ,OAAS4B,EAAIkoB,GAAOqpB,EAAWnoB,GAAKhnB,EAAMpC,MAAKkpB,GAAKE,QAEpD,OAASppB,EAAIkoB,GAAOqpB,EAAWnoB,GAAKC,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,MAAKkpB,GAAKE,GAExE,OAAOF,CACT,EACA6mB,EAAGkC,KAAO,SAAS7vC,EAAOinB,GACxB,IAA6BD,EAAzBF,EAAI,EAAGhB,EAAI9lB,EAAMhE,OAAW4B,GAAK,EAAGiG,EAAIiiB,EAC5C,GAAyB,IAArBnd,UAAU3M,OACZ,OAAS4B,EAAIkoB,GAAOqpB,EAAWnoB,EAAIkoB,EAAUlvC,EAAMpC,KAAMkpB,GAAKE,IACvDnjB,OAEP,OAASjG,EAAIkoB,GAAOqpB,EAAWnoB,EAAIkoB,EAAUjoB,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,KAAMkpB,GAAKE,IACzEnjB,EAET,GAAIA,EAAG,OAAOijB,EAAIjjB,CACpB,EACA8pC,EAAGmC,SAAW,SAASzpB,EAAQqI,GAC7B,IAAI6U,GAAKld,EAAOrqB,OAAS,GAAK0yB,EAAI,EAAGjgB,EAAIjQ,KAAK2/B,MAAMoF,GAAItF,GAAK5X,EAAO5X,EAAI,GAAIvQ,EAAIqlC,EAAI90B,EACpF,OAAOvQ,EAAI+/B,EAAI//B,GAAKmoB,EAAO5X,GAAKwvB,GAAKA,CACvC,EACA0P,EAAGoC,OAAS,SAAS/vC,EAAOinB,GAC1B,IAAoCD,EAAhCgpB,EAAU,GAAIlqB,EAAI9lB,EAAMhE,OAAW4B,GAAK,EAC5C,GAAyB,IAArB+K,UAAU3M,OACZ,OAAS4B,EAAIkoB,GAAOqpB,EAAWnoB,EAAIkoB,EAAUlvC,EAAMpC,MAAMoyC,EAAQzzC,KAAKyqB,QAEtE,OAASppB,EAAIkoB,GAAOqpB,EAAWnoB,EAAIkoB,EAAUjoB,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,MAAMoyC,EAAQzzC,KAAKyqB,GAE1F,GAAIgpB,EAAQh0C,OAAQ,OAAO2xC,EAAGmC,SAASE,EAAQ/iB,KAAKgiB,GAAe,GACrE,EACAtB,EAAGsC,SAAW,SAASjwC,EAAOinB,GAC5B,IAA6BD,EAAGpX,EAA5BkW,EAAI9lB,EAAMhE,OAAQyyB,EAAI,EAAS3H,EAAI,EAAGlpB,GAAK,EAAGiG,EAAI,EACtD,GAAyB,IAArB8E,UAAU3M,OACZ,OAAS4B,EAAIkoB,GACPqpB,EAAWnoB,EAAIkoB,EAAUlvC,EAAMpC,OAGjCkpB,IAFAlX,EAAIoX,EAAIyH,IAEEzH,GADVyH,GAAK7e,IAAM/L,UAKf,OAASjG,EAAIkoB,GACPqpB,EAAWnoB,EAAIkoB,EAAUjoB,EAAExhB,KAAKzF,EAAOA,EAAMpC,GAAIA,OAGnDkpB,IAFAlX,EAAIoX,EAAIyH,IAEEzH,GADVyH,GAAK7e,IAAM/L,KAKjB,GAAIA,EAAI,EAAG,OAAOijB,GAAKjjB,EAAI,EAC7B,EACA8pC,EAAGuC,UAAY,WACb,IAAIjS,EAAI0P,EAAGsC,SAASjnC,MAAMrN,KAAMgN,WAChC,OAAOs1B,EAAIz/B,KAAK2xC,KAAKlS,GAAKA,CAC5B,EAyBA,IAAImS,EAAYf,EAAYJ,GAuC5B,SAASoB,EAAmBzgC,GAC1B,OAAOA,EAAE5T,MACX,CAxCA2xC,EAAG2C,WAAaF,EAAUja,KAC1BwX,EAAG4C,OAAS5C,EAAG6C,YAAcJ,EAAUna,MACvC0X,EAAG8C,SAAW,SAASxpB,GACrB,OAAOooB,EAAyB,IAAbpoB,EAAEjrB,OAAe,SAAS4T,EAAG7L,GAC9C,OAAOkrC,EAAahoB,EAAErX,GAAI7L,EAC5B,EAAIkjB,EACN,EACA0mB,EAAG+C,QAAU,SAAS1wC,EAAO2wC,EAAIC,IAC1BniB,EAAI9lB,UAAU3M,QAAU,IAC3B40C,EAAK5wC,EAAMhE,OACPyyB,EAAI,IAAGkiB,EAAK,IAGlB,IADA,IAAiBzmB,EAAGtsB,EAAhB6wB,EAAImiB,EAAKD,EACNliB,GACL7wB,EAAIY,KAAKqyC,SAAWpiB,IAAM,EAC1BvE,EAAIlqB,EAAMyuB,EAAIkiB,GAAK3wC,EAAMyuB,EAAIkiB,GAAM3wC,EAAMpC,EAAI+yC,GAAK3wC,EAAMpC,EAAI+yC,GAAMzmB,EAEpE,OAAOlqB,CACT,EACA2tC,EAAGmD,QAAU,SAAS9wC,EAAO+wC,GAE3B,IADA,IAAInzC,EAAImzC,EAAQ/0C,OAAQg1C,EAAW,IAAIxrC,MAAM5H,GACtCA,KAAKozC,EAASpzC,GAAKoC,EAAM+wC,EAAQnzC,IACxC,OAAOozC,CACT,EACArD,EAAGsD,MAAQ,SAASjxC,GAElB,IADA,IAAIpC,EAAI,EAAGkoB,EAAI9lB,EAAMhE,OAAS,EAAO4Q,EAAK5M,EAAM,GAAIixC,EAAQ,IAAIzrC,MAAMsgB,EAAI,EAAI,EAAIA,GAC3EloB,EAAIkoB,GAAGmrB,EAAMrzC,GAAK,CAAMgP,EAAIA,EAAK5M,IAAQpC,IAChD,OAAOqzC,CACT,EACAtD,EAAGuD,UAAY,SAASC,GACtB,KAAMrrB,EAAIqrB,EAAOn1C,QAAS,MAAO,GACjC,IAAK,IAAI4B,GAAK,EAAG6wB,EAAIkf,EAAGroB,IAAI6rB,EAAQd,GAAqBa,EAAY,IAAI1rC,MAAMipB,KAAM7wB,EAAI6wB,GACvF,IAAK,IAAY3I,EAARjiB,GAAK,EAAMutC,EAAMF,EAAUtzC,GAAK,IAAI4H,MAAMsgB,KAAMjiB,EAAIiiB,GAC3DsrB,EAAIvtC,GAAKstC,EAAOttC,GAAGjG,GAGvB,OAAOszC,CACT,EAIAvD,EAAG0D,IAAM,WACP,OAAO1D,EAAGuD,UAAUvoC,UACtB,EACAglC,EAAG9qB,KAAO,SAAS5d,GACjB,IAAI4d,EAAO,GACX,IAAK,IAAIhmB,KAAOoI,EAAK4d,EAAKtmB,KAAKM,GAC/B,OAAOgmB,CACT,EACA8qB,EAAGtnB,OAAS,SAASphB,GACnB,IAAIohB,EAAS,GACb,IAAK,IAAIxpB,KAAOoI,EAAKohB,EAAO9pB,KAAK0I,EAAIpI,IACrC,OAAOwpB,CACT,EACAsnB,EAAGnkB,QAAU,SAASvkB,GACpB,IAAIukB,EAAU,GACd,IAAK,IAAI3sB,KAAOoI,EAAKukB,EAAQjtB,KAAK,CAChCM,MACAkC,MAAOkG,EAAIpI,KAEb,OAAO2sB,CACT,EACAmkB,EAAGvd,MAAQ,SAASkhB,GAElB,IADA,IAAuB7iB,EAAkB8iB,EAAQvxC,EAA7C8lB,EAAIwrB,EAAOt1C,OAAW4B,GAAK,EAAGiG,EAAI,IAC7BjG,EAAIkoB,GAAGjiB,GAAKytC,EAAO1zC,GAAG5B,OAE/B,IADAu1C,EAAS,IAAI/rC,MAAM3B,KACViiB,GAAK,GAGZ,IADA2I,GADAzuB,EAAQsxC,EAAOxrB,IACL9pB,SACDyyB,GAAK,GACZ8iB,IAAS1tC,GAAK7D,EAAMyuB,GAGxB,OAAO8iB,CACT,EACA,IAAIhzC,EAAMC,KAAKD,IAqBf,SAASizC,EAASC,EAAMjjB,GACtB,IAAK,IAAI3xB,KAAO2xB,EACd3vB,OAAOgR,eAAe4hC,EAAK10C,UAAWF,EAAK,CACzCkC,MAAOyvB,EAAW3xB,GAClBiT,YAAY,GAGlB,CAgBA,SAAS4hC,IACP/1C,KAAKkjC,EAAoBhgC,OAAOoI,OAAO,KACzC,CA+BA,SAAS0qC,EAAc90C,GACrB,MA/BiB,eA+BTA,GAAO,KA/B6B,OA+BLA,EAAI,GA/BC,KA+BkCA,EAAMA,CACtF,CACA,SAAS+0C,EAAgB/0C,GACvB,MAlC4C,QAkCpCA,GAAO,IAAI,GAAqBA,EAAI+C,MAAM,GAAK/C,CACzD,CACA,SAASg1C,EAAWh1C,GAClB,OAAO80C,EAAc90C,KAAQlB,KAAKkjC,CACpC,CACA,SAASiT,EAAcj1C,GACrB,OAAQA,EAAM80C,EAAc90C,MAASlB,KAAKkjC,UAAYljC,KAAKkjC,EAAEhiC,EAC/D,CACA,SAASk1C,IACP,IAAIlvB,EAAO,GACX,IAAK,IAAIhmB,KAAOlB,KAAKkjC,EAAGhc,EAAKtmB,KAAKq1C,EAAgB/0C,IAClD,OAAOgmB,CACT,CACA,SAASmvB,IACP,IAAIpuC,EAAO,EACX,IAAK,IAAI/G,KAAOlB,KAAKkjC,IAAKj7B,EAC1B,OAAOA,CACT,CACA,SAASquC,IACP,IAAK,IAAIp1C,KAAOlB,KAAKkjC,EAAG,OAAO,EAC/B,OAAO,CACT,CAqEA,SAASqT,IACPv2C,KAAKkjC,EAAoBhgC,OAAOoI,OAAO,KACzC,CAgBA,SAASkrC,EAAYviC,GACnB,OAAOA,CACT,CAMA,SAASwiC,EAAUvwB,EAAQ4X,EAAQ4Y,GACjC,OAAO,WACL,IAAItzC,EAAQszC,EAAOrpC,MAAMywB,EAAQ9wB,WACjC,OAAO5J,IAAU06B,EAAS5X,EAAS9iB,CACrC,CACF,CACA,SAASuzC,EAAgB7a,EAAQyS,GAC/B,GAAIA,KAASzS,EAAQ,OAAOyS,EAC5BA,EAAQA,EAAMjkB,OAAO,GAAGkS,cAAgB+R,EAAMtqC,MAAM,GACpD,IAAK,IAAIhC,EAAI,EAAGkoB,EAAIysB,EAAkBv2C,OAAQ4B,EAAIkoB,IAAKloB,EAAG,CACxD,IAAI40C,EAAaD,EAAkB30C,GAAKssC,EACxC,GAAIsI,KAAc/a,EAAQ,OAAO+a,CACnC,CACF,CAjNA7E,EAAG8E,MAAQ,SAAShwB,EAAOiwB,EAAMplB,GAQ/B,GAPI3kB,UAAU3M,OAAS,IACrBsxB,EAAO,EACH3kB,UAAU3M,OAAS,IACrB02C,EAAOjwB,EACPA,EAAQ,KAGPiwB,EAAOjwB,GAAS6K,IAASqlB,IAAU,MAAM,IAAIhlC,MAAM,kBACxD,IAA8D9J,EAA1D4uC,EAAQ,GAAI3uC,EAMlB,SAA+BC,GAE7B,IADA,IAAID,EAAI,EACDC,EAAID,EAAI,GAAGA,GAAK,GACvB,OAAOA,CACT,CAVsB8uC,CAAsBr0C,EAAI+uB,IAAQ1vB,GAAK,EAE3D,GADA6kB,GAAS3e,EAAG4uC,GAAQ5uC,GAAGwpB,GAAQxpB,GACpB,EAAG,MAAQD,EAAI4e,EAAQ6K,IAAS1vB,GAAK80C,GAAMD,EAAMl2C,KAAKsH,EAAIC,QAChE,MAAQD,EAAI4e,EAAQ6K,IAAS1vB,GAAK80C,GAAMD,EAAMl2C,KAAKsH,EAAIC,GAC5D,OAAO2uC,CACT,EAcA9E,EAAG1oC,IAAM,SAASwyB,EAAQxQ,GACxB,IAAIhiB,EAAM,IAAIysC,EACd,GAAIja,aAAkBia,EACpBja,EAAOv6B,SAAQ,SAAS21C,EAAM9zC,GAC5BkG,EAAIN,IAAIkuC,EAAM9zC,EAChB,SACK,GAAIyG,MAAMiI,QAAQgqB,GAAS,CAChC,IAA+BiG,EAA3B9/B,GAAK,EAAGkoB,EAAI2R,EAAOz7B,OACvB,GAAyB,IAArB2M,UAAU3M,OAAc,OAAS4B,EAAIkoB,GAAG7gB,EAAIN,IAAI/G,EAAG65B,EAAO75B,SACzD,OAASA,EAAIkoB,GAAG7gB,EAAIN,IAAIsiB,EAAExhB,KAAKgyB,EAAQiG,EAAIjG,EAAO75B,GAAIA,GAAI8/B,EACjE,MACE,IAAK,IAAI7gC,KAAO46B,EAAQxyB,EAAIN,IAAI9H,EAAK46B,EAAO56B,IAE9C,OAAOoI,CACT,EAKAusC,EAASE,EAAQ,CACftnB,IAAKynB,EACLntC,IAAK,SAAS7H,GACZ,OAAOlB,KAAKkjC,EAAE8S,EAAc90C,GAC9B,EACA8H,IAAK,SAAS9H,EAAKkC,GACjB,OAAOpD,KAAKkjC,EAAE8S,EAAc90C,IAAQkC,CACtC,EACA+zC,OAAQhB,EACRjvB,KAAMkvB,EACN1rB,OAAQ,WACN,IAAIA,EAAS,GACb,IAAK,IAAIxpB,KAAOlB,KAAKkjC,EAAGxY,EAAO9pB,KAAKZ,KAAKkjC,EAAEhiC,IAC3C,OAAOwpB,CACT,EACAmD,QAAS,WACP,IAAIA,EAAU,GACd,IAAK,IAAI3sB,KAAOlB,KAAKkjC,EAAGrV,EAAQjtB,KAAK,CACnCM,IAAK+0C,EAAgB/0C,GACrBkC,MAAOpD,KAAKkjC,EAAEhiC,KAEhB,OAAO2sB,CACT,EACA5lB,KAAMouC,EACNe,MAAOd,EACP/0C,QAAS,SAAS+pB,GAChB,IAAK,IAAIpqB,KAAOlB,KAAKkjC,EAAG5X,EAAExhB,KAAK9J,KAAMi2C,EAAgB/0C,GAAMlB,KAAKkjC,EAAEhiC,GACpE,IA4BF8wC,EAAGqF,KAAO,WACR,IAAyCC,EAAYC,EAAjDF,EAAO,CAAC,EAAGnwB,EAAO,GAAIswB,EAAW,GACrC,SAASluC,EAAImuC,EAASpzC,EAAOqzC,GAC3B,GAAIA,GAASxwB,EAAK7mB,OAAQ,OAAOk3C,EAASA,EAAOztC,KAAKutC,EAAMhzC,GAASizC,EAAajzC,EAAMitB,KAAKgmB,GAAcjzC,EAE3G,IADA,IAAmDszC,EAAU7b,EAAQ8b,EAAoCltB,EAArGzoB,GAAK,EAAGkoB,EAAI9lB,EAAMhE,OAAQa,EAAMgmB,EAAKwwB,KAAoCG,EAAc,IAAI9B,IACtF9zC,EAAIkoB,IACPO,EAASmtB,EAAY9uC,IAAI4uC,EAAWz2C,EAAI46B,EAASz3B,EAAMpC,MACzDyoB,EAAO9pB,KAAKk7B,GAEZ+b,EAAY7uC,IAAI2uC,EAAU,CAAC7b,IAe/B,OAZI2b,GACF3b,EAAS2b,IACTG,EAAS,SAASE,EAAWC,GAC3Bjc,EAAO9yB,IAAI8uC,EAAWxuC,EAAImuC,EAASM,EAASL,GAC9C,IAEA5b,EAAS,CAAC,EACV8b,EAAS,SAASE,EAAWC,GAC3Bjc,EAAOgc,GAAaxuC,EAAImuC,EAASM,EAASL,EAC5C,GAEFG,EAAYt2C,QAAQq2C,GACb9b,CACT,CACA,SAASjO,EAAQmqB,EAAMN,GACrB,GAAIA,GAASxwB,EAAK7mB,OAAQ,OAAO23C,EACjC,IAAI3zC,EAAQ,GAAI4zC,EAAUT,EAASE,KAOnC,OANAM,EAAKz2C,SAAQ,SAASL,EAAKg3C,GACzB7zC,EAAMzD,KAAK,CACTM,MACAwpB,OAAQmD,EAAQqqB,EAAQR,IAE5B,IACOO,EAAU5zC,EAAMitB,MAAK,SAASjG,EAAG4H,GACtC,OAAOglB,EAAQ5sB,EAAEnqB,IAAK+xB,EAAE/xB,IAC1B,IAAKmD,CACP,CAuBA,OAtBAgzC,EAAK/tC,IAAM,SAASjF,EAAOozC,GACzB,OAAOnuC,EAAImuC,EAASpzC,EAAO,EAC7B,EACAgzC,EAAKxpB,QAAU,SAASxpB,GACtB,OAAOwpB,EAAQvkB,EAAI0oC,EAAG1oC,IAAKjF,EAAO,GAAI,EACxC,EACAgzC,EAAKn2C,IAAM,SAAS+S,GAElB,OADAiT,EAAKtmB,KAAKqT,GACHojC,CACT,EACAA,EAAKG,SAAW,SAAShoC,GAEvB,OADAgoC,EAAStwB,EAAK7mB,OAAS,GAAKmP,EACrB6nC,CACT,EACAA,EAAKC,WAAa,SAAS9nC,GAEzB,OADA8nC,EAAa9nC,EACN6nC,CACT,EACAA,EAAKE,OAAS,SAASjsB,GAErB,OADAisB,EAASjsB,EACF+rB,CACT,EACOA,CACT,EACArF,EAAGhpC,IAAM,SAAS3E,GAChB,IAAI2E,EAAM,IAAIutC,EACd,GAAIlyC,EAAO,IAAK,IAAIpC,EAAI,EAAGkoB,EAAI9lB,EAAMhE,OAAQ4B,EAAIkoB,IAAKloB,EAAG+G,EAAI05B,IAAIr+B,EAAMpC,IACvE,OAAO+G,CACT,EAIA6sC,EAASU,EAAQ,CACf9nB,IAAKynB,EACLxT,IAAK,SAASxhC,GAEZ,OADAlB,KAAKkjC,EAAE8S,EAAc90C,GAAO,MAAO,EAC5BA,CACT,EACAi2C,OAAQhB,EACRzrB,OAAQ0rB,EACRnuC,KAAMouC,EACNe,MAAOd,EACP/0C,QAAS,SAAS+pB,GAChB,IAAK,IAAIpqB,KAAOlB,KAAKkjC,EAAG5X,EAAExhB,KAAK9J,KAAMi2C,EAAgB/0C,GACvD,IAEF8wC,EAAGmG,SAAW,CAAC,EAIfnG,EAAGoG,OAAS,SAASlyB,EAAQ4X,GAE3B,IADA,IAAiC4Y,EAA7Bz0C,EAAI,EAAGkoB,EAAInd,UAAU3M,SAChB4B,EAAIkoB,GAAGjE,EAAOwwB,EAAS1pC,UAAU/K,IAAMw0C,EAAUvwB,EAAQ4X,EAAQA,EAAO4Y,IACjF,OAAOxwB,CACT,EAeA,IAAI0wB,EAAoB,CAAC,SAAU,KAAM,MAAO,MAAO,IAAK,KAC5D,SAASyB,IACT,CAMA,SAASC,IACT,CAeA,SAASC,EAAkBC,GACzB,IAAIC,EAAY,GAAIC,EAAiB,IAAI3C,EACzC,SAASrwB,IAEP,IADA,IAAyC0F,EAArC9iB,EAAImwC,EAAWx2C,GAAK,EAAGkoB,EAAI7hB,EAAEjI,SACxB4B,EAAIkoB,IAAOiB,EAAI9iB,EAAErG,GAAG02C,KAAIvtB,EAAE/d,MAAMrN,KAAMgN,WAC/C,OAAOwrC,CACT,CAcA,OAbA9yB,EAAMizB,GAAK,SAASpK,EAAOqK,GACzB,IAAmC32C,EAA/BmpB,EAAIstB,EAAe3vC,IAAIwlC,GAC3B,OAAIvhC,UAAU3M,OAAS,EAAU+qB,GAAKA,EAAEutB,IACpCvtB,IACFA,EAAEutB,GAAK,KACPF,EAAYA,EAAUx0C,MAAM,EAAGhC,EAAIw2C,EAAU/0C,QAAQ0nB,IAAIxgB,OAAO6tC,EAAUx0C,MAAMhC,EAAI,IACpFy2C,EAAevB,OAAO5I,IAEpBqK,GAAUH,EAAU73C,KAAK83C,EAAe1vC,IAAIulC,EAAO,CACrDoK,GAAIC,KAECJ,EACT,EACO9yB,CACT,CAEA,SAASmzB,IACP7G,EAAGtsB,MAAMozB,gBACX,CACA,SAASC,IAEP,IADA,IAAkB5tB,EAAd5oB,EAAIyvC,EAAGtsB,MACJyF,EAAI5oB,EAAEy2C,aAAaz2C,EAAI4oB,EAC9B,OAAO5oB,CACT,CACA,SAAS02C,EAAiB/yB,GAExB,IADA,IAAIsyB,EAAW,IAAIF,EAAer2C,EAAI,EAAGkoB,EAAInd,UAAU3M,SAC9C4B,EAAIkoB,GAAGquB,EAASxrC,UAAU/K,IAAMs2C,EAAkBC,GAa3D,OAZAA,EAASU,GAAK,SAASC,EAAMC,GAC3B,OAAO,SAASC,GACd,IACE,IAAIC,EAAKD,EAAGL,YAAchH,EAAGtsB,MAC7B2zB,EAAGnzB,OAASA,EACZ8rB,EAAGtsB,MAAQ2zB,EACXb,EAASa,EAAGv0C,MAAMuI,MAAM8rC,EAAMC,EAChC,CAAE,QACApH,EAAGtsB,MAAQ4zB,CACb,CACF,CACF,EACOd,CACT,CApEAxG,EAAGwG,SAAW,WAEZ,IADA,IAAIA,EAAW,IAAIF,EAAer2C,GAAK,EAAGkoB,EAAInd,UAAU3M,SAC/C4B,EAAIkoB,GAAGquB,EAASxrC,UAAU/K,IAAMs2C,EAAkBC,GAC3D,OAAOA,CACT,EAGAF,EAAYl3C,UAAUu3C,GAAK,SAAS7zC,EAAM8zC,GACxC,IAAI32C,EAAI6C,EAAKpB,QAAQ,KAAM6qC,EAAQ,GAKnC,GAJItsC,GAAK,IACPssC,EAAQzpC,EAAKb,MAAMhC,EAAI,GACvB6C,EAAOA,EAAKb,MAAM,EAAGhC,IAEnB6C,EAAM,OAAOkI,UAAU3M,OAAS,EAAIL,KAAK8E,GAAM6zC,GAAGpK,GAASvuC,KAAK8E,GAAM6zC,GAAGpK,EAAOqK,GACpF,GAAyB,IAArB5rC,UAAU3M,OAAc,CAC1B,GAAgB,MAAZu4C,EAAkB,IAAK9zC,KAAQ9E,KAC7BA,KAAK0b,eAAe5W,IAAO9E,KAAK8E,GAAM6zC,GAAGpK,EAAO,MAEtD,OAAOvuC,IACT,CACF,EAuBAgyC,EAAGtsB,MAAQ,KA0BXssB,EAAGuH,QAAU,SAASpuB,GACpB,OAAOA,EAAE9nB,QAAQm2C,EAAe,OAClC,EACA,IAAIA,EAAgB,kCAChBC,EAAc,CAAC,EAAE/qB,UAAY,SAASoN,EAAQ16B,GAChD06B,EAAOpN,UAAYttB,CACrB,EAAI,SAAS06B,EAAQ16B,GACnB,IAAK,IAAImG,KAAYnG,EAAW06B,EAAOv0B,GAAYnG,EAAUmG,EAC/D,EACA,SAASmyC,EAAaC,GAEpB,OADAF,EAAYE,EAAQC,GACbD,CACT,CACA,IAAIE,EAAY,SAAS1uB,EAAGhB,GAC1B,OAAOA,EAAE1d,cAAc0e,EACzB,EAAG2uB,EAAe,SAAS3uB,EAAGhB,GAC5B,OAAOA,EAAEvgB,iBAAiBuhB,EAC5B,EAAG4uB,EAAmB,SAAS5vB,EAAGgB,GAChC,IAAI6uB,EAAmB7vB,EAAEhE,SAAWgE,EAAEwsB,EAAgBxsB,EAAG,oBAIzD,OAHA4vB,EAAmB,SAASE,EAAIC,GAC9B,OAAOF,EAAiBlwC,KAAKmwC,EAAIC,EACnC,GACwB/vB,EAAGgB,EAC7B,EACsB,oBAAXgvB,SACTN,EAAY,SAAS1uB,EAAGhB,GACtB,OAAOgwB,OAAOhvB,EAAGhB,GAAG,IAAM,IAC5B,EACA2vB,EAAeK,OACfJ,EAAmBI,OAAOC,iBAE5BpI,EAAGqI,UAAY,WACb,OAAOrI,EAAGsI,OAAOlI,EAAYE,gBAC/B,EACA,IAAIsH,EAAwB5H,EAAGqI,UAAUj5C,UAAY,GAkBrD,SAASm5C,EAAsB1vC,GAC7B,MAA2B,oBAAbA,EAA0BA,EAAW,WACjD,OAAOgvC,EAAUhvC,EAAU7K,KAC7B,CACF,CAcA,SAASw6C,EAAyB3vC,GAChC,MAA2B,oBAAbA,EAA0BA,EAAW,WACjD,OAAOivC,EAAajvC,EAAU7K,KAChC,CACF,CAvCA45C,EAAsBU,OAAS,SAASzvC,GACtC,IAAoB4vC,EAAUC,EAASC,EAAOh2C,EAA1Ci2C,EAAY,GAChB/vC,EAAW0vC,EAAsB1vC,GACjC,IAAK,IAAI3C,GAAK,EAAG4qB,EAAI9yB,KAAKK,SAAU6H,EAAI4qB,GAAK,CAC3C8nB,EAAUh6C,KAAK65C,EAAW,IAC1BA,EAAS/3C,YAAci4C,EAAQ36C,KAAKkI,IAAIxF,WACxC,IAAK,IAAIT,GAAK,EAAGkoB,EAAIwwB,EAAMt6C,SAAU4B,EAAIkoB,IACnCxlB,EAAOg2C,EAAM14C,KACfw4C,EAAS75C,KAAK85C,EAAU7vC,EAASf,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,IAC1DwyC,GAAW,aAAc/1C,IAAM+1C,EAAQG,SAAWl2C,EAAKk2C,WAE3DJ,EAAS75C,KAAK,KAGpB,CACA,OAAO84C,EAAakB,EACtB,EAMAhB,EAAsBkB,UAAY,SAASjwC,GACzC,IAAoB4vC,EAAU91C,EAA1Bi2C,EAAY,GAChB/vC,EAAW2vC,EAAyB3vC,GACpC,IAAK,IAAI3C,GAAK,EAAG4qB,EAAI9yB,KAAKK,SAAU6H,EAAI4qB,GACtC,IAAK,IAAI6nB,EAAQ36C,KAAKkI,GAAIjG,GAAK,EAAGkoB,EAAIwwB,EAAMt6C,SAAU4B,EAAIkoB,IACpDxlB,EAAOg2C,EAAM14C,MACf24C,EAAUh6C,KAAK65C,EAAWvI,EAASrnC,EAASf,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,KACzEuyC,EAAS/3C,WAAaiC,GAI5B,OAAO+0C,EAAakB,EACtB,EAMA,IAAIG,EAAa,+BACbC,EAAc,CAChBC,IAAK,6BACLC,MAAOH,EACPI,MAAO,+BACPC,IAAK,uCACLC,MAAO,iCAyBT,SAASC,EAAkB/M,EAAOnrC,GAwBhC,OAvBAmrC,EAAQyD,EAAGuJ,GAAGC,QAAQjN,GAuBN,MAATnrC,EAAgBmrC,EAAM6E,MAnB7B,WACEpzC,KAAKy7C,kBAAkBlN,EAAM4E,MAAO5E,EAAM6E,MAC5C,EALA,WACEpzC,KAAK07C,gBAAgBnN,EACvB,EAoB8E,oBAAVnrC,EAAuBmrC,EAAM6E,MALjG,WACE,IAAIhrC,EAAIhF,EAAMiK,MAAMrN,KAAMgN,WACjB,MAAL5E,EAAWpI,KAAKy7C,kBAAkBlN,EAAM4E,MAAO5E,EAAM6E,OACpDpzC,KAAK+yC,eAAexE,EAAM4E,MAAO5E,EAAM6E,MAAOhrC,EACrD,EATA,WACE,IAAIA,EAAIhF,EAAMiK,MAAMrN,KAAMgN,WACjB,MAAL5E,EAAWpI,KAAK07C,gBAAgBnN,GAC/BvuC,KAAK4B,aAAa2sC,EAAOnmC,EAChC,EAMyImmC,EAAM6E,MAb/I,WACEpzC,KAAK+yC,eAAexE,EAAM4E,MAAO5E,EAAM6E,MAAOhwC,EAChD,EALA,WACEpD,KAAK4B,aAAa2sC,EAAOnrC,EAC3B,CAeF,CACA,SAASu4C,EAAYxwB,GACnB,OAAOA,EAAEhoB,OAAOE,QAAQ,OAAQ,IAClC,CAkBA,SAASu4C,EAAuBrN,GAC9B,OAAO,IAAItkB,OAAO,aAAe+nB,EAAGuH,QAAQhL,GAAS,aAAc,IACrE,CACA,SAASsN,EAAqBtN,GAC5B,OAAQA,EAAQ,IAAIprC,OAAOmH,MAAM,QACnC,CACA,SAASwxC,GAAqBvN,EAAOnrC,GAEnC,IAAI+mB,GADJokB,EAAQsN,EAAqBtN,GAAOjlC,IAAIyyC,KAC1B17C,OASd,MAAwB,oBAAV+C,EAJd,WAEE,IADA,IAAInB,GAAK,EAAGmG,EAAIhF,EAAMiK,MAAMrN,KAAMgN,aACzB/K,EAAIkoB,GAAGokB,EAAMtsC,GAAGjC,KAAMoI,EACjC,EAPA,WAEE,IADA,IAAInG,GAAK,IACAA,EAAIkoB,GAAGokB,EAAMtsC,GAAGjC,KAAMoD,EACjC,CAMF,CACA,SAAS24C,GAAyBxN,GAChC,IAAIvkB,EAAK4xB,EAAuBrN,GAChC,OAAO,SAAS5pC,EAAMvB,GACpB,GAAI4+B,EAAIr9B,EAAKq3C,UAAW,OAAO54C,EAAQ4+B,EAAEU,IAAI6L,GAASvM,EAAEmV,OAAO5I,GAC/D,IAAIvM,EAAIr9B,EAAKoF,aAAa,UAAY,GAClC3G,GACF4mB,EAAGrX,UAAY,EACVqX,EAAG3C,KAAK2a,IAAIr9B,EAAK/C,aAAa,QAAS+5C,EAAY3Z,EAAI,IAAMuM,KAElE5pC,EAAK/C,aAAa,QAAS+5C,EAAY3Z,EAAE3+B,QAAQ2mB,EAAI,MAEzD,CACF,CAiBA,SAASiyB,GAAmB1N,EAAOnrC,EAAOiwC,GAYxC,OAAgB,MAATjwC,EAXP,WACEpD,KAAKssB,MAAM4vB,eAAe3N,EAC5B,EASoD,oBAAVnrC,EAL1C,WACE,IAAIgF,EAAIhF,EAAMiK,MAAMrN,KAAMgN,WACjB,MAAL5E,EAAWpI,KAAKssB,MAAM4vB,eAAe3N,GACpCvuC,KAAKssB,MAAMqmB,YAAYpE,EAAOnmC,EAAGirC,EACxC,EAPA,WACErzC,KAAKssB,MAAMqmB,YAAYpE,EAAOnrC,EAAOiwC,EACvC,CAOF,CASA,SAAS8I,GAAsB5N,EAAOnrC,GAYpC,OAAgB,MAATA,EAXP,kBACSpD,KAAKuuC,EACd,EASuD,oBAAVnrC,EAL7C,WACE,IAAIgF,EAAIhF,EAAMiK,MAAMrN,KAAMgN,WACjB,MAAL5E,SAAkBpI,KAAKuuC,GACtBvuC,KAAKuuC,GAASnmC,CACrB,EAPA,WACEpI,KAAKuuC,GAASnrC,CAChB,CAOF,CA2BA,SAASg5C,GAAqB7N,GAQ5B,MAAwB,oBAAVA,EAAuBA,GAASA,EAAQyD,EAAGuJ,GAAGC,QAAQjN,IAAQ6E,MAH5E,WACE,OAAOpzC,KAAKymB,cAAc41B,gBAAgB9N,EAAM4E,MAAO5E,EAAM6E,MAC/D,EANA,WACE,IAAIkJ,EAAYt8C,KAAKymB,cAAe81B,EAAYv8C,KAAKw8C,aACrD,OAAOD,IAAcxB,GAAcuB,EAAUhK,gBAAgBkK,eAAiBzB,EAAauB,EAAU36C,cAAc4sC,GAAS+N,EAAUD,gBAAgBE,EAAWhO,EACnK,CAKF,CAWA,SAASkO,KACP,IAAI53C,EAAS7E,KAAK0C,WACdmC,GAAQA,EAAOlC,YAAY3C,KACjC,CAkFA,SAAS08C,GAAsBC,GAC7B,MAAO,CACL9B,SAAU8B,EAEd,CAkBA,SAASC,GAAoB/xC,GAC3B,OAAO,WACL,OAAOkvC,EAAiB/5C,KAAM6K,EAChC,CACF,CAiBA,SAASgyC,GAA4BC,GAEnC,OADK9vC,UAAU3M,SAAQy8C,EAAaxJ,GAC7B,SAASjoB,EAAG4H,GACjB,OAAO5H,GAAK4H,EAAI6pB,EAAWzxB,EAAEwvB,SAAU5nB,EAAE4nB,WAAaxvB,GAAK4H,CAC7D,CACF,CAMA,SAAS8pB,GAAkBpD,EAAQlzC,GACjC,IAAK,IAAIyB,EAAI,EAAG4qB,EAAI6mB,EAAOt5C,OAAQ6H,EAAI4qB,EAAG5qB,IACxC,IAAK,IAAgDvD,EAA5Cg2C,EAAQhB,EAAOzxC,GAAIjG,EAAI,EAAGkoB,EAAIwwB,EAAMt6C,OAAc4B,EAAIkoB,EAAGloB,KAC5D0C,EAAOg2C,EAAM14C,KAAIwE,EAAS9B,EAAM1C,EAAGiG,GAG3C,OAAOyxC,CACT,CAyBA,SAASqD,GAAmB3C,GAE1B,OADAZ,EAAYY,EAAW4C,IAChB5C,CACT,CArXArI,EAAGuJ,GAAK,CACNpyC,OAAQ6xC,EACRQ,QAAS,SAASjN,GAChB,IAAItsC,EAAIssC,EAAM7qC,QAAQ,KAAMyF,EAASolC,EAErC,OADItsC,GAAK,GAAsC,WAAhCkH,EAASolC,EAAMtqC,MAAM,EAAGhC,MAAiBssC,EAAQA,EAAMtqC,MAAMhC,EAAI,IACzE+4C,EAAYt/B,eAAevS,GAAU,CAC1CgqC,MAAO6H,EAAY7xC,GACnBiqC,MAAO7E,GACLA,CACN,GAEFqL,EAAsBsD,KAAO,SAAS3O,EAAOnrC,GAC3C,GAAI4J,UAAU3M,OAAS,EAAG,CACxB,GAAqB,kBAAVkuC,EAAoB,CAC7B,IAAI5pC,EAAO3E,KAAK2E,OAEhB,OADA4pC,EAAQyD,EAAGuJ,GAAGC,QAAQjN,IACT6E,MAAQzuC,EAAKw4C,eAAe5O,EAAM4E,MAAO5E,EAAM6E,OAASzuC,EAAKoF,aAAawkC,EACzF,CACA,IAAKnrC,KAASmrC,EAAOvuC,KAAKo9C,KAAK9B,EAAkBl4C,EAAOmrC,EAAMnrC,KAC9D,OAAOpD,IACT,CACA,OAAOA,KAAKo9C,KAAK9B,EAAkB/M,EAAOnrC,GAC5C,EA8BAw2C,EAAsByD,QAAU,SAAS9O,EAAOnrC,GAC9C,GAAI4J,UAAU3M,OAAS,EAAG,CACxB,GAAqB,kBAAVkuC,EAAoB,CAC7B,IAAI5pC,EAAO3E,KAAK2E,OAAQwlB,GAAKokB,EAAQsN,EAAqBtN,IAAQluC,OAAQ4B,GAAK,EAC/E,GAAImB,EAAQuB,EAAKq3C,WACf,OAAS/5C,EAAIkoB,OAAQ/mB,EAAMk6C,SAAS/O,EAAMtsC,IAAK,OAAO,OAGtD,IADAmB,EAAQuB,EAAKoF,aAAa,WACjB9H,EAAIkoB,OAAQyxB,EAAuBrN,EAAMtsC,IAAIolB,KAAKjkB,GAAQ,OAAO,EAE5E,OAAO,CACT,CACA,IAAKA,KAASmrC,EAAOvuC,KAAKo9C,KAAKtB,GAAqB14C,EAAOmrC,EAAMnrC,KACjE,OAAOpD,IACT,CACA,OAAOA,KAAKo9C,KAAKtB,GAAqBvN,EAAOnrC,GAC/C,EAiCAw2C,EAAsBttB,MAAQ,SAASiiB,EAAOnrC,EAAOiwC,GACnD,IAAIlpB,EAAInd,UAAU3M,OAClB,GAAI8pB,EAAI,EAAG,CACT,GAAqB,kBAAVokB,EAAoB,CAE7B,IAAK8E,KADDlpB,EAAI,IAAG/mB,EAAQ,IACFmrC,EAAOvuC,KAAKo9C,KAAKnB,GAAmB5I,EAAU9E,EAAM8E,GAAWjwC,IAChF,OAAOpD,IACT,CACA,GAAImqB,EAAI,EAAG,CACT,IAAIxlB,EAAO3E,KAAK2E,OAChB,OAAO4tC,EAAU5tC,GAAM44C,iBAAiB54C,EAAM,MAAM64C,iBAAiBjP,EACvE,CACA8E,EAAW,EACb,CACA,OAAOrzC,KAAKo9C,KAAKnB,GAAmB1N,EAAOnrC,EAAOiwC,GACpD,EAeAuG,EAAsBryC,SAAW,SAASgnC,EAAOnrC,GAC/C,GAAI4J,UAAU3M,OAAS,EAAG,CACxB,GAAqB,kBAAVkuC,EAAoB,OAAOvuC,KAAK2E,OAAO4pC,GAClD,IAAKnrC,KAASmrC,EAAOvuC,KAAKo9C,KAAKjB,GAAsB/4C,EAAOmrC,EAAMnrC,KAClE,OAAOpD,IACT,CACA,OAAOA,KAAKo9C,KAAKjB,GAAsB5N,EAAOnrC,GAChD,EAeAw2C,EAAsB3/B,KAAO,SAAS7W,GACpC,OAAO4J,UAAU3M,OAASL,KAAKo9C,KAAsB,oBAAVh6C,EAAuB,WAChE,IAAIk/B,EAAIl/B,EAAMiK,MAAMrN,KAAMgN,WAC1BhN,KAAKy9C,YAAmB,MAALnb,EAAY,GAAKA,CACtC,EAAa,MAATl/B,EAAgB,WAClBpD,KAAKy9C,YAAc,EACrB,EAAI,WACFz9C,KAAKy9C,YAAcr6C,CACrB,GAAKpD,KAAK2E,OAAO84C,WACnB,EACA7D,EAAsB8D,KAAO,SAASt6C,GACpC,OAAO4J,UAAU3M,OAASL,KAAKo9C,KAAsB,oBAAVh6C,EAAuB,WAChE,IAAIk/B,EAAIl/B,EAAMiK,MAAMrN,KAAMgN,WAC1BhN,KAAK29C,UAAiB,MAALrb,EAAY,GAAKA,CACpC,EAAa,MAATl/B,EAAgB,WAClBpD,KAAK29C,UAAY,EACnB,EAAI,WACF39C,KAAK29C,UAAYv6C,CACnB,GAAKpD,KAAK2E,OAAOg5C,SACnB,EACA/D,EAAsBx1C,OAAS,SAASmqC,GAEtC,OADAA,EAAQ6N,GAAqB7N,GACtBvuC,KAAKs6C,QAAO,WACjB,OAAOt6C,KAAK6B,YAAY0sC,EAAMlhC,MAAMrN,KAAMgN,WAC5C,GACF,EAWA4sC,EAAsBp4C,OAAS,SAAS+sC,EAAOpuC,GAG7C,OAFAouC,EAAQ6N,GAAqB7N,GAC7BpuC,EAASo6C,EAAsBp6C,GACxBH,KAAKs6C,QAAO,WACjB,OAAOt6C,KAAKW,aAAa4tC,EAAMlhC,MAAMrN,KAAMgN,WAAY7M,EAAOkN,MAAMrN,KAAMgN,YAAc,KAC1F,GACF,EACA4sC,EAAsBzC,OAAS,WAC7B,OAAOn3C,KAAKo9C,KAAKX,GACnB,EAKA7C,EAAsB+C,KAAO,SAASv5C,EAAOlC,GAC3C,IAA6By5C,EAAOh2C,EAAhC1C,GAAK,EAAGkoB,EAAInqB,KAAKK,OACrB,IAAK2M,UAAU3M,OAAQ,CAErB,IADA+C,EAAQ,IAAIyG,MAAMsgB,GAAKwwB,EAAQ36C,KAAK,IAAIK,UAC/B4B,EAAIkoB,IACPxlB,EAAOg2C,EAAM14C,MACfmB,EAAMnB,GAAK0C,EAAKk2C,UAGpB,OAAOz3C,CACT,CACA,SAAS2lB,EAAK60B,EAAQC,GACpB,IAAIC,EAAsJC,EAAOC,EAAzJ/D,EAAK2D,EAAOv9C,OAAQyyB,EAAI+qB,EAAUx9C,OAAQ49C,EAAKp7C,KAAK8mB,IAAIswB,EAAInnB,GAAIorB,EAAc,IAAIr0C,MAAMipB,GAAIqrB,EAAa,IAAIt0C,MAAMipB,GAAIsrB,EAAY,IAAIv0C,MAAMowC,GACrJ,GAAI/4C,EAAK,CACP,IAA8Dy2C,EAA1D0G,EAAiB,IAAItI,EAAUuI,EAAY,IAAIz0C,MAAMowC,GACzD,IAAK6D,GAAM,IAAKA,EAAK7D,IACf8D,EAAQH,EAAOE,MACbO,EAAe5vB,IAAIkpB,EAAWz2C,EAAI4I,KAAKi0C,EAAOA,EAAMlD,SAAUiD,IAChEM,EAAUN,GAAMC,EAEhBM,EAAer1C,IAAI2uC,EAAUoG,GAE/BO,EAAUR,GAAMnG,GAGpB,IAAKmG,GAAM,IAAKA,EAAKhrB,IACbirB,EAAQM,EAAet1C,IAAI4uC,EAAWz2C,EAAI4I,KAAK+zC,EAAWG,EAAWH,EAAUC,GAAKA,MAErE,IAAVC,IACTG,EAAYJ,GAAMC,EAClBA,EAAMlD,SAAWmD,GAHjBG,EAAWL,GAAMpB,GAAsBsB,GAKzCK,EAAer1C,IAAI2uC,GAAU,GAE/B,IAAKmG,GAAM,IAAKA,EAAK7D,GACf6D,KAAMQ,IAAmD,IAAtCD,EAAet1C,IAAIu1C,EAAUR,MAClDM,EAAUN,GAAMF,EAAOE,GAG7B,KAAO,CACL,IAAKA,GAAM,IAAKA,EAAKG,GACnBF,EAAQH,EAAOE,GACfE,EAAWH,EAAUC,GACjBC,GACFA,EAAMlD,SAAWmD,EACjBE,EAAYJ,GAAMC,GAElBI,EAAWL,GAAMpB,GAAsBsB,GAG3C,KAAOF,EAAKhrB,IAAKgrB,EACfK,EAAWL,GAAMpB,GAAsBmB,EAAUC,IAEnD,KAAOA,EAAK7D,IAAM6D,EAChBM,EAAUN,GAAMF,EAAOE,EAE3B,CACAK,EAAWI,OAASL,EACpBC,EAAWz7C,WAAaw7C,EAAYx7C,WAAa07C,EAAU17C,WAAak7C,EAAOl7C,WAC/E87C,EAAM59C,KAAKu9C,GACXI,EAAO39C,KAAKs9C,GACZO,EAAK79C,KAAKw9C,EACZ,CACA,IAAII,EAAQxB,GAAmB,IAAKuB,EAAS7E,EAAa,IAAK+E,EAAO/E,EAAa,IACnF,GAAqB,oBAAVt2C,EACT,OAASnB,EAAIkoB,GACXpB,EAAK4xB,EAAQ36C,KAAKiC,GAAImB,EAAM0G,KAAK6wC,EAAOA,EAAMj4C,WAAWm4C,SAAU54C,SAGrE,OAASA,EAAIkoB,GACXpB,EAAK4xB,EAAQ36C,KAAKiC,GAAImB,GAS1B,OANAm7C,EAAOC,MAAQ,WACb,OAAOA,CACT,EACAD,EAAOE,KAAO,WACZ,OAAOA,CACT,EACOF,CACT,EAMA3E,EAAsB8E,MAAQ,SAASt7C,GACrC,OAAO4J,UAAU3M,OAASL,KAAKuH,SAAS,WAAYnE,GAASpD,KAAKuH,SAAS,WAC7E,EACAqyC,EAAsBvtB,OAAS,SAASA,GACtC,IAAoBouB,EAAUE,EAAOh2C,EAAjCi2C,EAAY,GACM,oBAAXvuB,IAAuBA,EAASuwB,GAAoBvwB,IAC/D,IAAK,IAAInkB,EAAI,EAAG4qB,EAAI9yB,KAAKK,OAAQ6H,EAAI4qB,EAAG5qB,IAAK,CAC3C0yC,EAAUh6C,KAAK65C,EAAW,IAC1BA,EAAS/3C,YAAci4C,EAAQ36C,KAAKkI,IAAIxF,WACxC,IAAK,IAAIT,EAAI,EAAGkoB,EAAIwwB,EAAMt6C,OAAQ4B,EAAIkoB,EAAGloB,KAClC0C,EAAOg2C,EAAM14C,KAAOoqB,EAAOviB,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,IAC3DuyC,EAAS75C,KAAK+D,EAGpB,CACA,OAAO+0C,EAAakB,EACtB,EAMAhB,EAAsBpqC,MAAQ,WAC5B,IAAK,IAAItH,GAAK,EAAG4qB,EAAI9yB,KAAKK,SAAU6H,EAAI4qB,GACtC,IAAK,IAA4DnuB,EAAxDg2C,EAAQ36C,KAAKkI,GAAIjG,EAAI04C,EAAMt6C,OAAS,EAAG+E,EAAOu1C,EAAM14C,KAAYA,GAAK,IACxE0C,EAAOg2C,EAAM14C,MACXmD,GAAQA,IAAST,EAAKpE,aAAa6E,EAAK1C,WAAW/B,aAAagE,EAAMS,GAC1EA,EAAOT,GAIb,OAAO3E,IACT,EACA45C,EAAsBtoB,KAAO,SAASwrB,GACpCA,EAAaD,GAA4BxvC,MAAMrN,KAAMgN,WACrD,IAAK,IAAI9E,GAAK,EAAG4qB,EAAI9yB,KAAKK,SAAU6H,EAAI4qB,GAAK9yB,KAAKkI,GAAGopB,KAAKwrB,GAC1D,OAAO98C,KAAKwP,OACd,EAOAoqC,EAAsBwD,KAAO,SAAS32C,GACpC,OAAOs2C,GAAkB/8C,MAAM,SAAS2E,EAAM1C,EAAGiG,GAC/CzB,EAASqD,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,EACxC,GACF,EASA0xC,EAAsB9vC,KAAO,SAASrD,GACpC,IAAIwG,EAAOilC,EAASllC,WAEpB,OADAvG,EAAS4G,MAAMJ,EAAK,GAAKjN,KAAMiN,GACxBjN,IACT,EACA45C,EAAsBxC,MAAQ,WAC5B,OAAQp3C,KAAK2E,MACf,EACAi1C,EAAsBj1C,KAAO,WAC3B,IAAK,IAAIuD,EAAI,EAAG4qB,EAAI9yB,KAAKK,OAAQ6H,EAAI4qB,EAAG5qB,IACtC,IAAK,IAAIyyC,EAAQ36C,KAAKkI,GAAIjG,EAAI,EAAGkoB,EAAIwwB,EAAMt6C,OAAQ4B,EAAIkoB,EAAGloB,IAAK,CAC7D,IAAI0C,EAAOg2C,EAAM14C,GACjB,GAAI0C,EAAM,OAAOA,CACnB,CAEF,OAAO,IACT,EACAi1C,EAAsB3xC,KAAO,WAC3B,IAAIkiB,EAAI,EAIR,OAHA4yB,GAAkB/8C,MAAM,aACpBmqB,CACJ,IACOA,CACT,EAKA,IAAI8yB,GAA8B,GA0ElC,SAAS0B,GAAgB75C,EAAM8zC,EAAUgG,GACvC,IAAIrQ,EAAQ,OAASzpC,EAAM7C,EAAI6C,EAAKpB,QAAQ,KAAMm7C,EAAOC,GACrD78C,EAAI,IAAG6C,EAAOA,EAAKb,MAAM,EAAGhC,IAChC,IAAIoqB,EAAS0yB,GAAuBh2C,IAAIjE,GAExC,SAASk6C,IACP,IAAI5zB,EAAIprB,KAAKuuC,GACTnjB,IACFprB,KAAKi/C,oBAAoBn6C,EAAMsmB,EAAGA,EAAE6W,UAC7BjiC,KAAKuuC,GAEhB,CAiBA,OAxBIliB,IAAQvnB,EAAOunB,EAAQwyB,EAAOK,IAwB3Bj9C,EAAI22C,EAhBX,WACE,IAAIxtB,EAAIyzB,EAAKjG,EAAU1G,EAASllC,YAChCgyC,EAASl1C,KAAK9J,MACdA,KAAK0mB,iBAAiB5hB,EAAM9E,KAAKuuC,GAASnjB,EAAGA,EAAE6W,EAAI2c,GACnDxzB,EAAE8X,EAAI0V,CACR,EAW8BoG,EAAWpG,EAAWP,EAVpD,WACE,IAA8D5uC,EAA1DugB,EAAK,IAAIC,OAAO,eAAiB+nB,EAAGuH,QAAQz0C,GAAQ,KACxD,IAAK,IAAIq6C,KAASn/C,KAChB,GAAIyJ,EAAQ01C,EAAM11C,MAAMugB,GAAK,CAC3B,IAAIoB,EAAIprB,KAAKm/C,GACbn/C,KAAKi/C,oBAAoBx1C,EAAM,GAAI2hB,EAAGA,EAAE6W,UACjCjiC,KAAKm/C,EACd,CAEJ,CAEF,CAtGAnN,EAAGqI,UAAUmE,MAAQxB,GACrBhL,EAAGqI,UAAUmE,MAAMp9C,UAAY67C,GAC/BA,GAA4B74C,OAASw1C,EAAsBx1C,OAC3D64C,GAA4B7F,MAAQwC,EAAsBxC,MAC1D6F,GAA4Bt4C,KAAOi1C,EAAsBj1C,KACzDs4C,GAA4BnzC,KAAO8vC,EAAsB9vC,KACzDmzC,GAA4Bh1C,KAAO2xC,EAAsB3xC,KACzDg1C,GAA4B3C,OAAS,SAASzvC,GAE5C,IADA,IAAoB4vC,EAAUC,EAAS0E,EAASzE,EAAOh2C,EAAnDi2C,EAAY,GACP1yC,GAAK,EAAG4qB,EAAI9yB,KAAKK,SAAU6H,EAAI4qB,GAAK,CAC3CssB,GAAWzE,EAAQ36C,KAAKkI,IAAIq2C,OAC5B3D,EAAUh6C,KAAK65C,EAAW,IAC1BA,EAAS/3C,WAAai4C,EAAMj4C,WAC5B,IAAK,IAAIT,GAAK,EAAGkoB,EAAIwwB,EAAMt6C,SAAU4B,EAAIkoB,IACnCxlB,EAAOg2C,EAAM14C,KACfw4C,EAAS75C,KAAKw+C,EAAQn9C,GAAKy4C,EAAU7vC,EAASf,KAAK6wC,EAAMj4C,WAAYiC,EAAKk2C,SAAU54C,EAAGiG,IACvFwyC,EAAQG,SAAWl2C,EAAKk2C,UAExBJ,EAAS75C,KAAK,KAGpB,CACA,OAAO84C,EAAakB,EACtB,EACAqC,GAA4Bz7C,OAAS,SAAS+sC,EAAOpuC,GAEnD,OADI6M,UAAU3M,OAAS,IAAGF,EAG5B,SAAwCq+C,GACtC,IAAIxJ,EAAIqK,EACR,OAAO,SAASprC,EAAGhS,EAAGiG,GACpB,IAA+CvD,EAA3Cg2C,EAAQ6D,EAAMt2C,GAAGq2C,OAAQp0B,EAAIwwB,EAAMt6C,OAGvC,IAFI6H,GAAKm3C,IAAIA,EAAKn3C,EAAG8sC,EAAK,GACtB/yC,GAAK+yC,IAAIA,EAAK/yC,EAAI,KACb0C,EAAOg2C,EAAM3F,OAAUA,EAAK7qB,IACrC,OAAOxlB,CACT,CACF,CAZqC26C,CAA+Bt/C,OAC3D45C,EAAsBp4C,OAAOsI,KAAK9J,KAAMuuC,EAAOpuC,EACxD,EAWA6xC,EAAGsI,OAAS,SAAS31C,GACnB,IAAIg2C,EAQJ,MAPoB,kBAATh2C,GACTg2C,EAAQ,CAACd,EAAUl1C,EAAMytC,KACnB1vC,WAAa0vC,EAAYE,iBAE/BqI,EAAQ,CAACh2C,IACHjC,WAAa2vC,EAAmB1tC,GAEjC+0C,EAAa,CAACiB,GACvB,EACA3I,EAAG8I,UAAY,SAASx5C,GACtB,IAAIq5C,EAQJ,MAPqB,kBAAVr5C,GACTq5C,EAAQzI,EAAS4H,EAAax4C,EAAO8wC,KAC/B1vC,WAAa0vC,EAAYE,iBAE/BqI,EAAQzI,EAAS5wC,IACXoB,WAAa,KAEdg3C,EAAa,CAACiB,GACvB,EACAf,EAAsBjB,GAAK,SAAS7zC,EAAM8zC,EAAUgG,GAClD,IAAIz0B,EAAInd,UAAU3M,OAClB,GAAI8pB,EAAI,EAAG,CACT,GAAoB,kBAATrlB,EAAmB,CAE5B,IAAK85C,KADDz0B,EAAI,IAAGyuB,GAAW,GACN9zC,EAAM9E,KAAKo9C,KAAKuB,GAAgBC,EAAS95C,EAAK85C,GAAUhG,IACxE,OAAO54C,IACT,CACA,GAAImqB,EAAI,EAAG,OAAQA,EAAInqB,KAAK2E,OAAO,OAASG,KAAUqlB,EAAE+Y,EACxD0b,GAAU,CACZ,CACA,OAAO5+C,KAAKo9C,KAAKuB,GAAgB75C,EAAM8zC,EAAUgG,GACnD,EA+BA,IAAIG,GAAyB/M,EAAG1oC,IAAI,CAClCi2C,WAAY,YACZC,WAAY,aAOd,SAASV,GAAwBlG,EAAUQ,GACzC,OAAO,SAAS72C,GACd,IAAIw/B,EAAIiQ,EAAGtsB,MACXssB,EAAGtsB,MAAQnjB,EACX62C,EAAU,GAAKp5C,KAAK66C,SACpB,IACEjC,EAASvrC,MAAMrN,KAAMo5C,EACvB,CAAE,QACApH,EAAGtsB,MAAQqc,CACb,CACF,CACF,CACA,SAASmd,GAAsBtG,EAAUQ,GACvC,IAAIhuB,EAAI0zB,GAAwBlG,EAAUQ,GAC1C,OAAO,SAAS72C,GACd,IAAI2jB,EAASlmB,KAAMy/C,EAAUl9C,EAAEm9C,cAC1BD,IAAWA,IAAYv5B,GAAsD,EAA1Cu5B,EAAQE,wBAAwBz5B,KACtEkF,EAAEthB,KAAKoc,EAAQ3jB,EAEnB,CACF,CAzBI6vC,GACF2M,GAAuBx9C,SAAQ,SAAS4G,GAClC,KAAOA,KAAKiqC,GAAa2M,GAAuB5H,OAAOhvC,EAC7D,IAuBF,IAAIy3C,GAAqBC,GAAkB,EAC3C,SAASC,GAAsBn7C,GAC7B,IAAI4pC,EAAQ,oBAAqBsR,GAAiBE,EAAQ,QAAUxR,EAAO3L,EAAIoP,EAAGsI,OAAO/H,EAAU5tC,IAAOg0C,GAAG,YAAcpK,EAAOsK,GAAwBF,GAAG,YAAcpK,EAAOsK,GAAwBF,GAAG,cAAgBpK,EAAOsK,GAIpO,GAH2B,MAAvB+G,KACFA,KAAsB,kBAAmBj7C,IAAegyC,EAAgBhyC,EAAK2nB,MAAO,eAElFszB,GAAqB,CACvB,IAAItzB,EAAQ+lB,EAAmB1tC,GAAM2nB,MAAOguB,EAAShuB,EAAMszB,IAC3DtzB,EAAMszB,IAAuB,MAC/B,CACA,OAAO,SAASI,GAGd,GAFApd,EAAE+V,GAAGpK,EAAO,MACRqR,KAAqBtzB,EAAMszB,IAAuBtF,GAClD0F,EAAe,CACjB,IAAIC,EAAM,WACRrd,EAAE+V,GAAGoH,EAAO,KACd,EACAnd,EAAE+V,GAAGoH,GAAO,WACVlH,IACAoH,GACF,IAAG,GACH3iB,WAAW2iB,EAAK,EAClB,CACF,CACF,CACAjO,EAAGkO,MAAQ,SAASz/C,GAClB,OAAO0/C,GAAc1/C,EAAWs4C,IAClC,EACA,IAAIqH,GAAoBpgD,KAAKqgD,WAAa,SAASh5B,KAAKrnB,KAAKqgD,UAAUC,YAAc,EAAI,EACzF,SAASH,GAAc1/C,EAAW8B,GAC5BA,EAAEg+C,iBAAgBh+C,EAAIA,EAAEg+C,eAAe,IAC3C,IAAItF,EAAMx6C,EAAU+/C,iBAAmB//C,EACvC,GAAIw6C,EAAIwF,eAAgB,CACtB,IAAIC,EAAQzF,EAAIwF,iBAChB,GAAIL,GAAoB,EAAG,CACzB,IAAIO,EAAUpO,EAAU9xC,GACxB,GAAIkgD,EAAQC,SAAWD,EAAQE,QAAS,CAStC,IAAIC,GARJ7F,EAAMjJ,EAAGsI,OAAO,QAAQl2C,OAAO,OAAOkoB,MAAM,CAC1C9nB,SAAU,WACV61B,IAAK,EACLG,KAAM,EACN9F,OAAQ,EACRC,QAAS,EACTW,OAAQ,QACP,cACW,GAAG,GAAGyrB,eACpBX,KAAsBU,EAAIx1B,GAAKw1B,EAAIv+C,GACnC04C,EAAI9D,QACN,CACF,CAIA,OAHIiJ,IAAmBM,EAAMt4C,EAAI7F,EAAEy+C,MAAON,EAAMr4C,EAAI9F,EAAE0+C,QACjDP,EAAMt4C,EAAI7F,EAAE2+C,QAASR,EAAMr4C,EAAI9F,EAAE4+C,SAE/B,EADPT,EAAQA,EAAMU,gBAAgB3gD,EAAUsgD,eAAeM,YACzCj5C,EAAGs4C,EAAMr4C,EACzB,CACA,IAAIi5C,EAAO7gD,EAAU8gD,wBACrB,MAAO,CAACh/C,EAAE2+C,QAAUI,EAAK9mB,KAAO/5B,EAAU+gD,WAAYj/C,EAAE4+C,QAAUG,EAAKjnB,IAAM55B,EAAUghD,UACzF,CA0DA,SAASC,KACP,OAAO1P,EAAGtsB,MAAM66B,eAAe,GAAGv6C,UACpC,CA3DAgsC,EAAG2P,MAAQ,SAASlhD,EAAWmhD,EAAS57C,GAEtC,GADIgH,UAAU3M,OAAS,IAAG2F,EAAa47C,EAASA,EAAU7I,IAAiBwH,gBACvEqB,EAAS,IAAK,IAA+BD,EAA3B1/C,EAAI,EAAGkoB,EAAIy3B,EAAQvhD,OAAe4B,EAAIkoB,IAAKloB,EAC/D,IAAK0/C,EAAQC,EAAQ3/C,IAAI+D,aAAeA,EACtC,OAAOm6C,GAAc1/C,EAAWkhD,EAGtC,EACA3P,EAAGmG,SAAS0J,KAAO,WACjB,IAAIn8B,EAAQuzB,EAAiB4I,EAAM,OAAQ,YAAa,WAAYC,EAAS,KAAMC,EAAYC,EAAU3J,EAASrG,EAAGkO,MAAO3N,EAAW,YAAa,WAAY0P,EAAaD,EAAUN,GAAyB1P,EAAG2P,MAAOnL,EAAa,YAAa,YACpP,SAASqL,IACP7hD,KAAK24C,GAAG,iBAAkBoJ,GAAWpJ,GAAG,kBAAmBsJ,EAC7D,CACA,SAASD,EAAU5gB,EAAI58B,EAAU09C,EAASC,EAAMn+C,GAC9C,OAAO,WACL,IAA0Oo+C,EAAtOC,EAAOriD,KAAMkmB,EAAS8rB,EAAGtsB,MAAMQ,OAAOo8B,sBAAwBtQ,EAAGtsB,MAAMQ,OAAQrhB,EAASw9C,EAAK3/C,WAAY81C,EAAW9yB,EAAMwzB,GAAGmJ,EAAMr1C,WAAYu1C,EAAU,EAAGC,EAASphB,IAAMqhB,EAAW,SAAqB,MAAVD,EAAiB,GAAK,IAAMA,GAAqBE,EAAc1Q,EAAGsI,OAAO4H,EAAQh8B,IAASyyB,GAAGwJ,EAAOM,GAUzS,WACE,IAA0CE,EAAIC,EAA1CC,EAAYr+C,EAASK,EAAQ29C,GAC5BK,IACLF,EAAKE,EAAU,GAAKC,EAAU,GAC9BF,EAAKC,EAAU,GAAKC,EAAU,GAC9BP,GAAWI,EAAKC,EAChBE,EAAYD,EACZrK,EAAS,CACP1zC,KAAM,OACNsD,EAAGy6C,EAAU,GAAKT,EAAW,GAC7B/5C,EAAGw6C,EAAU,GAAKT,EAAW,GAC7BO,KACAC,OAEJ,IAxB0TjK,GAAG30C,EAAMy+C,GAyBnU,WACOj+C,EAASK,EAAQ29C,KACtBE,EAAY/J,GAAGwJ,EAAOM,EAAU,MAAM9J,GAAG30C,EAAMy+C,EAAU,MACzDM,EAAYR,GACZ/J,EAAS,CACP1zC,KAAM,YAEV,IAhCqVi+C,EAAcjD,GAAsB55B,GAAS48B,EAAYt+C,EAASK,EAAQ29C,GAG7ZJ,EAFEN,EAEW,EADbM,EAAaN,EAAOz0C,MAAMg1C,EAAMr1C,YACP5E,EAAI06C,EAAU,GAAIV,EAAW/5C,EAAIy6C,EAAU,IAEvD,CAAC,EAAG,GAEnBtK,EAAS,CACP1zC,KAAM,aAyBV,CACF,CAMA,OALA+8C,EAAKC,OAAS,SAAS15C,GACrB,OAAK4E,UAAU3M,QACfyhD,EAAS15C,EACFy5C,GAFuBC,CAGhC,EACO9P,EAAGoG,OAAOyJ,EAAMn8B,EAAO,KAChC,EAIAssB,EAAG4P,QAAU,SAASnhD,EAAWmhD,GAE/B,OADI50C,UAAU3M,OAAS,IAAGuhD,EAAU7I,IAAiB6I,SAC9CA,EAAU1P,EAAS0P,GAASt4C,KAAI,SAASq4C,GAC9C,IAAIjB,EAAQP,GAAc1/C,EAAWkhD,GAErC,OADAjB,EAAM16C,WAAa27C,EAAM37C,WAClB06C,CACT,IAAK,EACP,EACA,IAAIsC,GAAS,KAAMC,GAAUD,GAASA,GAAQE,GAASrgD,KAAKsgD,GAAIC,GAAS,EAAIF,GAAQG,GAAeD,GAASJ,GAAQM,GAAaJ,GAAS,EAAGK,GAAaL,GAAS,IAAKM,GAAa,IAAMN,GAU5L,SAASO,GAAQr7C,GACf,OAAOA,EAAI,EAAIk7C,GAAal7C,GAAK,GAAKk7C,GAAazgD,KAAK6gD,KAAKt7C,EAC/D,CAIA,SAASu7C,GAAQv7C,GACf,QAASA,EAAIvF,KAAK+gD,IAAIx7C,IAAM,EAAIA,GAAK,CACvC,CAOA,IAAIy7C,GAAShhD,KAAKihD,MAClB9R,EAAG+R,gBAAkB,SAASC,EAAI/yC,GAChC,IAAwIhP,EAAGghC,EAAvIghB,EAAMD,EAAG,GAAIE,EAAMF,EAAG,GAAIG,EAAKH,EAAG,GAAII,EAAMnzC,EAAG,GAAIozC,EAAMpzC,EAAG,GAAIqzC,EAAKrzC,EAAG,GAAI0xC,EAAKyB,EAAMH,EAAKrB,EAAKyB,EAAMH,EAAKK,EAAK5B,EAAKA,EAAKC,EAAKA,EACpI,GAAI2B,EAAKtB,GACPhgB,EAAIpgC,KAAK2hD,IAAIF,EAAKH,GAAMN,GACxB5hD,EAAI,SAASssB,GACX,MAAO,CAAC01B,EAAM11B,EAAIo0B,EAAIuB,EAAM31B,EAAIq0B,EAAIuB,EAAKthD,KAAK+gD,IAAIC,GAASt1B,EAAI0U,GACjE,MACK,CACL,IAAIwhB,EAAK5hD,KAAK2xC,KAAK+P,GAAKG,GAAMJ,EAAKA,EAAKH,EAAKA,EATD,EASgBI,IAAO,EAAIJ,EATxC,EASuDM,GAAKE,GAAML,EAAKA,EAAKH,EAAKA,EATpE,EASmFI,IAAO,EAAID,EAT3G,EAS0HG,GAAKG,EAAK/hD,KAAK2hD,IAAI3hD,KAAK2xC,KAAKkQ,EAAKA,EAAK,GAAKA,GAAKG,EAAKhiD,KAAK2hD,IAAI3hD,KAAK2xC,KAAKmQ,EAAKA,EAAK,GAAKA,GACjP1hB,GAAK4hB,EAAKD,GAAMf,GAChB5hD,EAAI,SAASssB,GACX,IAlBWnmB,EAkBP+iB,EAAIoD,EAAI0U,EAAG6hB,EAASnB,GAAQiB,GAAKh2B,EAAIu1B,GAZZ,EAY4BM,IAAOK,GAlBrD18C,EAkBsEy7C,GAAS14B,EAAIy5B,IAjBzFx8C,EAAIvF,KAAK+gD,IAAI,EAAIx7C,IAAM,IAAMA,EAAI,IAP5C,SAAiBA,GACf,QAASA,EAAIvF,KAAK+gD,IAAIx7C,IAAM,EAAIA,GAAK,CACvC,CAsB0G28C,CAAQH,IAC5G,MAAO,CAACX,EAAMr1B,EAAI+zB,EAAIuB,EAAMt1B,EAAIg0B,EAAIuB,EAAKW,EAASnB,GAAQE,GAAS14B,EAAIy5B,GACzE,CACF,CAEA,OADA3iD,EAAEoV,SAAe,IAAJ4rB,EACNhhC,CACT,EACA+vC,EAAGmG,SAASroC,KAAO,WACjB,IAIGk1C,EAAYC,EAASC,EAAsLC,EAAiDC,EAA2EC,EAAIC,EAAIC,EAAIC,EAJlVC,EAAO,CACTr9C,EAAG,EACHC,EAAG,EACHF,EAAG,GAC2BF,EAAO,CAAC,IAAK,KAAMy9C,EAAcC,GAA0BtuC,EAAW,IAAKuuC,EAAU,EAAG7D,EAAY,iBAAkB8D,EAAY,iBAAkBC,EAAU,eAAiC7D,EAAa,kBAA8Bv8B,EAAQuzB,EAAiBnpC,EAAM,YAAa,OAAQ,WAU9T,SAASA,EAAKkzB,GACZA,EAAE2V,GAAGoJ,EAAWgE,GAAapN,GAAGqN,GAAwB,QAASC,GAActN,GAAG,gBAAiBuN,GAAYvN,GAAGsJ,EAAYkE,EAChI,CAmGA,SAASC,EAAUrzB,GACjB,MAAO,EAAEA,EAAE,GAAK0yB,EAAKr9C,GAAKq9C,EAAKt9C,GAAI4qB,EAAE,GAAK0yB,EAAKp9C,GAAKo9C,EAAKt9C,EAC3D,CAIA,SAASk+C,EAAQl7B,GACfs6B,EAAKt9C,EAAItF,KAAK6mB,IAAIg8B,EAAY,GAAI7iD,KAAK8mB,IAAI+7B,EAAY,GAAIv6B,GAC7D,CACA,SAASm7B,EAAYvzB,EAAG3H,GACtBA,EAPF,SAAeA,GACb,MAAO,CAACA,EAAE,GAAKq6B,EAAKt9C,EAAIs9C,EAAKr9C,EAAGgjB,EAAE,GAAKq6B,EAAKt9C,EAAIs9C,EAAKp9C,EACvD,CAKMq4C,CAAMt1B,GACVq6B,EAAKr9C,GAAK2qB,EAAE,GAAK3H,EAAE,GACnBq6B,EAAKp9C,GAAK0qB,EAAE,GAAK3H,EAAE,EACrB,CACA,SAASm7B,EAAOlE,EAAMtvB,EAAG3H,EAAGjjB,GAC1Bk6C,EAAKmE,UAAY,CACfp+C,EAAGq9C,EAAKr9C,EACRC,EAAGo9C,EAAKp9C,EACRF,EAAGs9C,EAAKt9C,GAEVk+C,EAAQxjD,KAAK4jD,IAAI,EAAGt+C,IACpBm+C,EAAYrB,EAAUlyB,EAAG3H,GACzBi3B,EAAOrQ,EAAGsI,OAAO+H,GACbhrC,EAAW,IAAGgrC,EAAOA,EAAKlrC,aAAaE,SAASA,IACpDgrC,EAAKv4C,KAAKgG,EAAK4V,MACjB,CACA,SAASghC,IACHpB,GAAIA,EAAGqB,OAAOtB,EAAGvO,QAAQxtC,KAAI,SAASlB,GACxC,OAAQA,EAAIq9C,EAAKr9C,GAAKq9C,EAAKt9C,CAC7B,IAAGmB,IAAI+7C,EAAGuB,SACNpB,GAAIA,EAAGmB,OAAOpB,EAAGzO,QAAQxtC,KAAI,SAASjB,GACxC,OAAQA,EAAIo9C,EAAKp9C,GAAKo9C,EAAKt9C,CAC7B,IAAGmB,IAAIi8C,EAAGqB,QACZ,CACA,SAASC,EAAYrO,GACdoN,KAAWpN,EAAS,CACvB1zC,KAAM,aAEV,CACA,SAASgiD,EAAOtO,GACdkO,IACAlO,EAAS,CACP1zC,KAAM,OACN4K,MAAO+1C,EAAKt9C,EACZ4+C,UAAW,CAACtB,EAAKr9C,EAAGq9C,EAAKp9C,IAE7B,CACA,SAAS2+C,EAAUxO,KACVoN,IAASpN,EAAS,CACvB1zC,KAAM,YACJmgD,EAAU,KAChB,CACA,SAASc,IACP,IAAI1D,EAAOriD,KAAMw4C,EAAW9yB,EAAMwzB,GAAGmJ,EAAMr1C,WAAYu1C,EAAU,EAAGL,EAAUlQ,EAAGsI,OAAO/H,EAAU8P,IAAO1J,GAAGkN,GAG5G,WACEtD,EAAU,EACV+D,EAAYtU,EAAGkO,MAAMmC,GAAO4E,GAC5BH,EAAOtO,EACT,IAP8HG,GAAGmN,GAQjI,WACE5D,EAAQvJ,GAAGkN,EAAW,MAAMlN,GAAGmN,EAAS,MACxC/C,EAAYR,GACZyE,EAAUxO,EACZ,IAZkJyO,EAAYb,EAAUpU,EAAGkO,MAAMmC,IAAQU,EAAcjD,GAAsBuC,GAC7N6E,GAAuBp9C,KAAKu4C,GAC5BwE,EAAYrO,EAWd,CACA,SAAS2N,IACP,IAAuFgB,EAAnF9E,EAAOriD,KAAMw4C,EAAW9yB,EAAMwzB,GAAGmJ,EAAMr1C,WAAYo6C,EAAa,CAAC,EAAGC,EAAY,EAAWC,EAAW,SAAWtV,EAAGtsB,MAAM66B,eAAe,GAAGv6C,WAAYuhD,EAAY,YAAcD,EAAUE,EAAW,WAAaF,EAAUG,EAAU,GAAIvF,EAAUlQ,EAAGsI,OAAO+H,GAAOU,EAAcjD,GAAsBuC,GAI/S,SAASqF,IACP,IAAI9F,EAAU5P,EAAG4P,QAAQS,GAKzB,OAJA8E,EAAS1B,EAAKt9C,EACdy5C,EAAQrgD,SAAQ,SAASgtB,GACnBA,EAAEvoB,cAAcohD,IAAYA,EAAW74B,EAAEvoB,YAAcogD,EAAU73B,GACvE,IACOqzB,CACT,CACA,SAAS+F,IACP,IAAIzhC,EAAS8rB,EAAGtsB,MAAMQ,OACtB8rB,EAAGsI,OAAOp0B,GAAQyyB,GAAG4O,EAAWK,GAAOjP,GAAG6O,EAAUK,GACpDJ,EAAQ7mD,KAAKslB,GAEb,IADA,IAAI4hC,EAAU9V,EAAGtsB,MAAM66B,eACdt+C,EAAI,EAAGkoB,EAAI29B,EAAQznD,OAAQ4B,EAAIkoB,IAAKloB,EAC3CmlD,EAAWU,EAAQ7lD,GAAG+D,YAAc,KAEtC,IAAI47C,EAAU8F,IAAYhV,EAAM/O,KAAK+O,MACrC,GAAuB,IAAnBkP,EAAQvhD,OAAc,CACxB,GAAIqyC,EAAM0S,EAAY,IAAK,CACzB,IAAIryB,EAAI6uB,EAAQ,GAChB2E,EAAOlE,EAAMtvB,EAAGq0B,EAAWr0B,EAAE/sB,YAAanD,KAAK2/B,MAAM3/B,KAAK2hD,IAAIiB,EAAKt9C,GAAKtF,KAAKklD,KAAO,GACpFlP,GACF,CACAuM,EAAY1S,CACd,MAAO,GAAIkP,EAAQvhD,OAAS,EAAG,CACzB0yB,EAAI6uB,EAAQ,GAAhB,IAAoBzW,EAAIyW,EAAQ,GAAIe,EAAK5vB,EAAE,GAAKoY,EAAE,GAAIyX,EAAK7vB,EAAE,GAAKoY,EAAE,GACpEkc,EAAY1E,EAAKA,EAAKC,EAAKA,CAC7B,CACF,CACA,SAASgF,IACP,IAAgC5D,EAAIgE,EAAI/2C,EAAIg3C,EAAxCrG,EAAU5P,EAAG4P,QAAQS,GACzB6E,GAAuBp9C,KAAKu4C,GAC5B,IAAK,IAAIpgD,EAAI,EAAGkoB,EAAIy3B,EAAQvhD,OAAQ4B,EAAIkoB,IAAKloB,EAAGgmD,EAAK,KAEnD,GADAh3C,EAAK2wC,EAAQ3/C,GACTgmD,EAAKb,EAAWn2C,EAAGjL,YAAa,CAClC,GAAIgiD,EAAI,MACRhE,EAAK/yC,EAAI+2C,EAAKC,CAChB,CAEF,GAAIA,EAAI,CACN,IAAIC,GAAaA,EAAYj3C,EAAG,GAAK+yC,EAAG,IAAMkE,GAAaA,EAAYj3C,EAAG,GAAK+yC,EAAG,IAAMkE,EAAWC,EAASd,GAAaxkD,KAAK2xC,KAAK0T,EAAYb,GAC/IrD,EAAK,EAAEA,EAAG,GAAK/yC,EAAG,IAAM,GAAI+yC,EAAG,GAAK/yC,EAAG,IAAM,GAC7C+2C,EAAK,EAAEA,EAAG,GAAKC,EAAG,IAAM,GAAID,EAAG,GAAKC,EAAG,IAAM,GAC7C5B,EAAQ8B,EAAShB,EACnB,CACA/B,EAAY,KACZkB,EAAYtC,EAAIgE,GAChBlB,EAAOtO,EACT,CACA,SAASqP,IACP,GAAI7V,EAAGtsB,MAAMk8B,QAAQvhD,OAAQ,CAE3B,IADA,IAAIynD,EAAU9V,EAAGtsB,MAAM66B,eACdt+C,EAAI,EAAGkoB,EAAI29B,EAAQznD,OAAQ4B,EAAIkoB,IAAKloB,SACpCmlD,EAAWU,EAAQ7lD,GAAG+D,YAE/B,IAAK,IAAIA,KAAcohD,EACrB,YAAYM,GAEhB,CACA1V,EAAG8I,UAAU2M,GAAS9O,GAAG2O,EAAU,MACnCpF,EAAQvJ,GAAGoJ,EAAWgE,GAAapN,GAAGsJ,EAAYkE,GAClDpD,IACAiE,EAAUxO,EACZ,CAlEAmP,IACAd,EAAYrO,GACZ0J,EAAQvJ,GAAGoJ,EAAW,MAAMpJ,GAAGsJ,EAAY0F,EAiE7C,CACA,SAAS1B,IACP,IAAIzN,EAAW9yB,EAAMwzB,GAAGl5C,KAAMgN,WAC1Bm4C,EAAiB9nB,aAAa8nB,IAC7B+B,GAAuBp9C,KAAK9J,MAAOglD,EAAaoB,EAAUnB,EAAUC,GAAUlT,EAAGkO,MAAMlgD,OAAQ6mD,EAAYrO,IAChH2M,EAAkB7nB,YAAW,WAC3B6nB,EAAkB,KAClB6B,EAAUxO,EACZ,GAAG,IACHK,IACAwN,EAAQxjD,KAAK4jD,IAAI,EAA6B,KAA1B2B,MAAkC3C,EAAKt9C,GAC3Dm+C,EAAYrB,EAASD,GACrB8B,EAAOtO,EACT,CACA,SAAS0N,IACP,IAAInzB,EAAIif,EAAGkO,MAAMlgD,MAAOmI,EAAItF,KAAK2hD,IAAIiB,EAAKt9C,GAAKtF,KAAKklD,IACpDxB,EAAOvmD,KAAM+yB,EAAGqzB,EAAUrzB,GAAIif,EAAGtsB,MAAM2iC,SAAWxlD,KAAK8/B,KAAKx6B,GAAK,EAAItF,KAAK2/B,MAAMr6B,GAAK,EACvF,CACA,OAxQK69C,KACHA,GAAwB,YAAa5T,GAAegW,GAAwB,WAC1E,OAAQpW,EAAGtsB,MAAM4iC,QAAUtW,EAAGtsB,MAAM6iC,UAAY,IAAM,EACxD,EAAG,SAAW,iBAAkBnW,GAAegW,GAAwB,WACrE,OAAOpW,EAAGtsB,MAAM8iC,UAClB,EAAG,eAAiBJ,GAAwB,WAC1C,OAAQpW,EAAGtsB,MAAM+iC,MACnB,EAAG,wBAKL34C,EAAK4V,MAAQ,SAASsd,GACpBA,EAAEoa,MAAK,WACL,IAAI5E,EAAW9yB,EAAMwzB,GAAGl5C,KAAMgN,WAAY07C,EAAQjD,EAC9CkD,GACF3W,EAAGsI,OAAOt6C,MAAMmX,aAAaimC,KAAK,cAAc,WAC9CqI,EAAOzlD,KAAKwmD,WAAa,CACvBp+C,EAAG,EACHC,EAAG,EACHF,EAAG,GAEL0+C,EAAYrO,EACd,IAAGoQ,MAAM,aAAa,WACpB,IAAIjG,EAAK16C,EAAK,GAAI26C,EAAK36C,EAAK,GAAI4gD,EAAK5D,EAAUA,EAAQ,GAAKtC,EAAK,EAAGmG,EAAK7D,EAAUA,EAAQ,GAAKrC,EAAK,EAAG3gD,EAAI+vC,EAAG+R,gBAAgB,EAAE8E,EAAKpD,EAAKr9C,GAAKq9C,EAAKt9C,GAAI2gD,EAAKrD,EAAKp9C,GAAKo9C,EAAKt9C,EAAGw6C,EAAK8C,EAAKt9C,GAAI,EAAE0gD,EAAKH,EAAMtgD,GAAKsgD,EAAMvgD,GAAI2gD,EAAKJ,EAAMrgD,GAAKqgD,EAAMvgD,EAAGw6C,EAAK+F,EAAMvgD,IAC9P,OAAO,SAASomB,GACd,IAAInD,EAAInpB,EAAEssB,GAAIpmB,EAAIw6C,EAAKv3B,EAAE,GACzBprB,KAAKwmD,UAAYf,EAAO,CACtBr9C,EAAGygD,EAAKz9B,EAAE,GAAKjjB,EACfE,EAAGygD,EAAK19B,EAAE,GAAKjjB,EACfA,KAEF2+C,EAAOtO,EACT,CACF,IAAG4E,KAAK,kBAAkB,WACxB4J,EAAUxO,EACZ,IAAG4E,KAAK,YAAY,WAClB4J,EAAUxO,EACZ,KAEAx4C,KAAKwmD,UAAYf,EACjBoB,EAAYrO,GACZsO,EAAOtO,GACPwO,EAAUxO,GAEd,GACF,EACA1oC,EAAKi3C,UAAY,SAAS7jB,GACxB,OAAKl2B,UAAU3M,QACfolD,EAAO,CACLr9C,GAAI86B,EAAE,GACN76B,GAAI66B,EAAE,GACN/6B,EAAGs9C,EAAKt9C,GAEVu+C,IACO52C,GAPuB,CAAC21C,EAAKr9C,EAAGq9C,EAAKp9C,EAQ9C,EACAyH,EAAKJ,MAAQ,SAASwzB,GACpB,OAAKl2B,UAAU3M,QACfolD,EAAO,CACLr9C,EAAGq9C,EAAKr9C,EACRC,EAAGo9C,EAAKp9C,EACRF,EAAG,MAELk+C,GAASnjB,GACTwjB,IACO52C,GARuB21C,EAAKt9C,CASrC,EACA2H,EAAK41C,YAAc,SAASxiB,GAC1B,OAAKl2B,UAAU3M,QACfqlD,EAAmB,MAALxiB,EAAYyiB,GAA2B,EAAEziB,EAAE,IAAKA,EAAE,IACzDpzB,GAFuB41C,CAGhC,EACA51C,EAAKo1C,OAAS,SAAShiB,GACrB,OAAKl2B,UAAU3M,QACf6kD,EAAShiB,GAAK,EAAEA,EAAE,IAAKA,EAAE,IAClBpzB,GAFuBo1C,CAGhC,EACAp1C,EAAK7H,KAAO,SAASi7B,GACnB,OAAKl2B,UAAU3M,QACf4H,EAAOi7B,GAAK,EAAEA,EAAE,IAAKA,EAAE,IAChBpzB,GAFuB7H,CAGhC,EACA6H,EAAKuH,SAAW,SAAS6rB,GACvB,OAAKl2B,UAAU3M,QACfgX,GAAY6rB,EACLpzB,GAFuBuH,CAGhC,EACAvH,EAAK1H,EAAI,SAASE,GAChB,OAAK0E,UAAU3M,QACfilD,EAAKh9C,EACL+8C,EAAK/8C,EAAEpD,OACPugD,EAAO,CACLr9C,EAAG,EACHC,EAAG,EACHF,EAAG,GAEE2H,GARuBw1C,CAShC,EACAx1C,EAAKzH,EAAI,SAASC,GAChB,OAAK0E,UAAU3M,QACfmlD,EAAKl9C,EACLi9C,EAAKj9C,EAAEpD,OACPugD,EAAO,CACLr9C,EAAG,EACHC,EAAG,EACHF,EAAG,GAEE2H,GARuB01C,CAShC,EA2JOxT,EAAGoG,OAAOtoC,EAAM4V,EAAO,KAChC,EACA,IAA8C0iC,GAAuBpC,GAAjEL,GAA2B,CAAC,EAAG3O,KAEnC,SAAS+R,KACT,CAKA,SAASC,GAAOl2C,EAAGqY,EAAGC,GACpB,OAAOprB,gBAAgBgpD,IAAehpD,KAAK8S,GAAKA,EAAG9S,KAAKmrB,GAAKA,OAAGnrB,KAAKorB,GAAKA,IAAKpe,UAAU3M,OAAS,EAAIyS,aAAak2C,GAAS,IAAIA,GAAOl2C,EAAEA,EAAGA,EAAEqY,EAAGrY,EAAEsY,GAAK69B,GAAa,GAAKn2C,EAAGo2C,GAAYF,IAAU,IAAIA,GAAOl2C,EAAGqY,EAAGC,EACtN,CATA4mB,EAAGp8B,MAAQmzC,GAGXA,GAAS3nD,UAAUmM,SAAW,WAC5B,OAAOvN,KAAKurB,MAAQ,EACtB,EACAymB,EAAGmX,IAAMH,GAIT,IAAII,GAAkBJ,GAAO5nD,UAAY,IAAI2nD,GAY7C,SAASM,GAAWv2C,EAAGqY,EAAGC,GACxB,IAAIk+B,EAAIC,EAcR,SAASC,EAAG1qC,GACV,OAAOjc,KAAK+b,MAAc,IAT5B,SAAWE,GAGT,OAFIA,EAAK,IAAKA,GAAM,IACXA,EAAK,IAAGA,GAAM,KACnBA,EAAK,GAAWwqC,GAAMC,EAAKD,GAAMxqC,EAAK,GACtCA,EAAK,IAAYyqC,EACjBzqC,EAAK,IAAYwqC,GAAMC,EAAKD,IAAO,IAAMxqC,GAAM,GAC5CwqC,CACT,CAEoBhnB,CAAExjB,GACtB,CACA,OAhBAhM,EAAI2gC,MAAM3gC,GAAK,GAAKA,GAAK,KAAO,EAAIA,EAAI,IAAMA,EAC9CqY,EAAIsoB,MAAMtoB,IAASA,EAAI,EAAR,EAAgBA,EAAI,EAAI,EAAIA,EAG3Cm+B,EAAK,GAFLl+B,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,IAC5Bm+B,EAAKn+B,GAAK,GAAMA,GAAK,EAAID,GAAKC,EAAID,EAAIC,EAAID,GAanC,IAAIs+B,GAAOD,EAAG12C,EAAI,KAAM02C,EAAG12C,GAAI02C,EAAG12C,EAAI,KAC/C,CAEA,SAAS42C,GAAO52C,EAAGkvB,EAAG5W,GACpB,OAAOprB,gBAAgB0pD,IAAe1pD,KAAK8S,GAAKA,EAAG9S,KAAKgiC,GAAKA,OAAGhiC,KAAKorB,GAAKA,IAAKpe,UAAU3M,OAAS,EAAIyS,aAAa42C,GAAS,IAAIA,GAAO52C,EAAEA,EAAGA,EAAEkvB,EAAGlvB,EAAEsY,GAA2Bu+B,GAAtB72C,aAAa82C,GAAoB92C,EAAEsY,GAA2BtY,EAAI+2C,IAAY/2C,EAAIk/B,EAAGzmB,IAAIzY,IAAIub,EAAGvb,EAAEkwB,EAAGlwB,EAAEmgB,IAAI7H,EAArEtY,EAAEuY,EAAGvY,EAAEmgB,GAA6E,IAAIy2B,GAAO52C,EAAGkvB,EAAG5W,EACrS,CAlCAg+B,GAAgBU,SAAW,SAAS3hD,GAElC,OADAA,EAAItF,KAAK4jD,IAAI,GAAKz5C,UAAU3M,OAAS8H,EAAI,GAClC,IAAI6gD,GAAOhpD,KAAK8S,EAAG9S,KAAKmrB,EAAGnrB,KAAKorB,EAAIjjB,EAC7C,EACAihD,GAAgBW,OAAS,SAAS5hD,GAEhC,OADAA,EAAItF,KAAK4jD,IAAI,GAAKz5C,UAAU3M,OAAS8H,EAAI,GAClC,IAAI6gD,GAAOhpD,KAAK8S,EAAG9S,KAAKmrB,EAAGhjB,EAAInI,KAAKorB,EAC7C,EACAg+B,GAAgB79B,IAAM,WACpB,OAAO89B,GAAWrpD,KAAK8S,EAAG9S,KAAKmrB,EAAGnrB,KAAKorB,EACzC,EAqBA4mB,EAAGgY,IAAMN,GAIT,IAAIO,GAAkBP,GAAOtoD,UAAY,IAAI2nD,GAU7C,SAASmB,GAAWp3C,EAAGkvB,EAAG5W,GAGxB,OAFIqoB,MAAM3gC,KAAIA,EAAI,GACd2gC,MAAMzR,KAAIA,EAAI,GACX,IAAI4nB,GAAOx+B,EAAGvoB,KAAKsnD,IAAIr3C,GAAKywC,IAAcvhB,EAAGn/B,KAAKunD,IAAIt3C,GAAKkvB,EACpE,CAEA,SAAS4nB,GAAOx+B,EAAGC,EAAG4H,GACpB,OAAOjzB,gBAAgB4pD,IAAe5pD,KAAKorB,GAAKA,EAAGprB,KAAKqrB,GAAKA,OAAGrrB,KAAKizB,GAAKA,IAAKjmB,UAAU3M,OAAS,EAAI+qB,aAAaw+B,GAAS,IAAIA,GAAOx+B,EAAEA,EAAGA,EAAEC,EAAGD,EAAE6H,GAAK7H,aAAas+B,GAASQ,GAAW9+B,EAAEtY,EAAGsY,EAAE4W,EAAG5W,EAAEA,GAAKy+B,IAAYz+B,EAAIq+B,GAAOr+B,IAAIiD,EAAGjD,EAAE4X,EAAG5X,EAAE6H,GAAK,IAAI22B,GAAOx+B,EAAGC,EAAG4H,EACvQ,CAjBAg3B,GAAgBH,SAAW,SAAS3hD,GAClC,OAAO,IAAIuhD,GAAO1pD,KAAK8S,EAAG9S,KAAKgiC,EAAGn/B,KAAK8mB,IAAI,IAAK3pB,KAAKorB,EAAIi/B,IAAYr9C,UAAU3M,OAAS8H,EAAI,IAC9F,EACA8hD,GAAgBF,OAAS,SAAS5hD,GAChC,OAAO,IAAIuhD,GAAO1pD,KAAK8S,EAAG9S,KAAKgiC,EAAGn/B,KAAK6mB,IAAI,EAAG1pB,KAAKorB,EAAIi/B,IAAYr9C,UAAU3M,OAAS8H,EAAI,IAC5F,EACA8hD,GAAgB1+B,IAAM,WACpB,OAAO2+B,GAAWlqD,KAAK8S,EAAG9S,KAAKgiC,EAAGhiC,KAAKorB,GAAGG,KAC5C,EAMAymB,EAAGsY,IAAMV,GAIT,IAAIS,GAAW,GACXE,GAAW,OAASC,GAAW,EAAGC,GAAW,QAC7CC,GAAkBd,GAAOxoD,UAAY,IAAI2nD,GAU7C,SAAS4B,GAAWv/B,EAAGC,EAAG4H,GACxB,IAAI5qB,GAAK+iB,EAAI,IAAM,IAAKhjB,EAAIC,EAAIgjB,EAAI,IAAK/iB,EAAID,EAAI4qB,EAAI,IAIrD,OAAO,IAAIw2B,GAAOmB,GAAW,WAH7BxiD,EAAIyiD,GAAWziD,GAAKmiD,IAGyB,WAF7CliD,EAAIwiD,GAAWxiD,GAAKmiD,IAEyC,UAD7DliD,EAAIuiD,GAAWviD,GAAKmiD,KACyDG,IAAY,QAAWxiD,EAAI,UAAYC,EAAI,QAAWC,GAAIsiD,GAAW,SAAYxiD,EAAI,SAAYC,EAAI,UAAYC,GAChM,CACA,SAASqhD,GAAWv+B,EAAGC,EAAG4H,GACxB,OAAO7H,EAAI,EAAI,IAAIs+B,GAAO7mD,KAAKioD,MAAM73B,EAAG5H,GAAKm4B,GAAY3gD,KAAK2xC,KAAKnpB,EAAIA,EAAI4H,EAAIA,GAAI7H,GAAK,IAAIs+B,GAAO9lB,IAAKA,IAAKxY,EAC/G,CACA,SAASy/B,GAAWziD,GAClB,OAAOA,EAAI,WAAcA,EAAIA,EAAIA,GAAKA,EAAI,EAAI,IAAM,QACtD,CACA,SAAS2iD,GAAW3iD,GAClB,OAAOA,EAAI,QAAUvF,KAAK4jD,IAAIr+C,EAAG,EAAI,GAAK,SAAWA,EAAI,EAAI,EAC/D,CACA,SAASwiD,GAAWv8B,GAClB,OAAOxrB,KAAK+b,MAAM,KAAOyP,GAAK,OAAS,MAAQA,EAAI,MAAQxrB,KAAK4jD,IAAIp4B,EAAG,EAAI,KAAO,MACpF,CAEA,SAASo7B,GAAOp7B,EAAG2U,EAAG/P,GACpB,OAAOjzB,gBAAgBypD,IAAezpD,KAAKquB,IAAMA,EAAGruB,KAAKgjC,IAAMA,OAAGhjC,KAAKizB,IAAMA,IAAKjmB,UAAU3M,OAAS,EAAIguB,aAAao7B,GAAS,IAAIA,GAAOp7B,EAAEA,EAAGA,EAAE2U,EAAG3U,EAAE4E,GAAKg2B,GAAa,GAAK56B,EAAGo7B,GAAQJ,IAAc,IAAII,GAAOp7B,EAAG2U,EAAG/P,EACzN,CACA,SAAS+3B,GAAa5nD,GACpB,OAAO,IAAIqmD,GAAOrmD,GAAS,GAAIA,GAAS,EAAI,IAAa,IAARA,EACnD,CACA,SAAS6nD,GAAa7nD,GACpB,OAAO4nD,GAAa5nD,GAAS,EAC/B,CArCAsnD,GAAgBZ,SAAW,SAAS3hD,GAClC,OAAO,IAAIyhD,GAAO/mD,KAAK8mB,IAAI,IAAK3pB,KAAKorB,EAAIi/B,IAAYr9C,UAAU3M,OAAS8H,EAAI,IAAKnI,KAAKqrB,EAAGrrB,KAAKizB,EAChG,EACAy3B,GAAgBX,OAAS,SAAS5hD,GAChC,OAAO,IAAIyhD,GAAO/mD,KAAK6mB,IAAI,EAAG1pB,KAAKorB,EAAIi/B,IAAYr9C,UAAU3M,OAAS8H,EAAI,IAAKnI,KAAKqrB,EAAGrrB,KAAKizB,EAC9F,EACAy3B,GAAgBn/B,IAAM,WACpB,OAAOo/B,GAAW3qD,KAAKorB,EAAGprB,KAAKqrB,EAAGrrB,KAAKizB,EACzC,EAoBA+e,EAAGzmB,IAAMk+B,GAUT,IAAIyB,GAAkBzB,GAAOroD,UAAY,IAAI2nD,GAoB7C,SAASoC,GAAW7oB,GAClB,OAAOA,EAAI,GAAK,IAAMz/B,KAAK6mB,IAAI,EAAG4Y,GAAG/0B,SAAS,IAAM1K,KAAK8mB,IAAI,IAAK2Y,GAAG/0B,SAAS,GAChF,CACA,SAAS07C,GAAaljB,EAAQqlB,EAAMC,GAClC,IAAyB/B,EAAIC,EAAI+B,EAA7Bj9B,EAAI,EAAG2U,EAAI,EAAG/P,EAAI,EAEtB,GADAq2B,EAAK,mBAAmB9/C,KAAKu8B,EAASA,EAAOh1B,eAG3C,OADAw4C,EAAKD,EAAG,GAAGh/C,MAAM,KACTg/C,EAAG,IACT,IAAK,MACH,OAAO+B,EAAKzgC,WAAW2+B,EAAG,IAAK3+B,WAAW2+B,EAAG,IAAM,IAAK3+B,WAAW2+B,EAAG,IAAM,KAE9E,IAAK,MACH,OAAO6B,EAAKG,GAAmBhC,EAAG,IAAKgC,GAAmBhC,EAAG,IAAKgC,GAAmBhC,EAAG,KAI9F,OAAI+B,EAASE,GAAaziD,IAAIg9B,IACrBqlB,EAAKE,EAAOj9B,EAAGi9B,EAAOtoB,EAAGsoB,EAAOr4B,IAE3B,MAAV8S,GAAuC,MAArBA,EAAOzb,OAAO,IAAempB,MAAM6X,EAASlhC,SAAS2b,EAAO9hC,MAAM,GAAI,OACpE,IAAlB8hC,EAAO1lC,QACTguB,GAAc,KAATi9B,IAAkB,EACvBj9B,GAAIA,GAAK,EACT2U,EAAa,IAATsoB,EACJtoB,GAAIA,GAAK,EACT/P,EAAa,GAATq4B,EACJr4B,GAAIA,GAAK,GACkB,IAAlB8S,EAAO1lC,SAChBguB,GAAc,SAATi9B,IAAsB,GAC3BtoB,GAAc,MAATsoB,IAAmB,EACxBr4B,EAAa,IAATq4B,IAGDF,EAAK/8B,EAAG2U,EAAG/P,GACpB,CACA,SAASi2B,GAAW76B,EAAG2U,EAAG/P,GACxB,IAA0FngB,EAAGqY,EAAzFxB,EAAM9mB,KAAK8mB,IAAI0E,GAAK,IAAK2U,GAAK,IAAK/P,GAAK,KAAMvJ,EAAM7mB,KAAK6mB,IAAI2E,EAAG2U,EAAG/P,GAAIhf,EAAIyV,EAAMC,EAAWyB,GAAK1B,EAAMC,GAAO,EAWlH,OAVI1V,GACFkX,EAAIC,EAAI,GAAMnX,GAAKyV,EAAMC,GAAO1V,GAAK,EAAIyV,EAAMC,GACjC7W,EAAVub,GAAK3E,GAAUsZ,EAAI/P,GAAKhf,GAAK+uB,EAAI/P,EAAI,EAAI,GACpC+P,GAAKtZ,GAAUuJ,EAAI5E,GAAKpa,EAAI,GAC3Boa,EAAI2U,GAAK/uB,EAAI,EACvBnB,GAAK,KAELA,EAAI8wB,IACJzY,EAAIC,EAAI,GAAKA,EAAI,EAAI,EAAItY,GAEpB,IAAIk2C,GAAOl2C,EAAGqY,EAAGC,EAC1B,CACA,SAASy+B,GAAWx7B,EAAG2U,EAAG/P,GAIxB,IAAI7qB,EAAI2iD,IAAY,UAHpB18B,EAAIo9B,GAAWp9B,IAGqB,UAFpC2U,EAAIyoB,GAAWzoB,IAEqC,UADpD/P,EAAIw4B,GAAWx4B,KACsDs3B,IAAWliD,EAAI0iD,IAAY,SAAY18B,EAAI,SAAY2U,EAAI,QAAW/P,GAAKu3B,IAChJ,OAAOZ,GAAO,IAAMvhD,EAAI,GAAI,KAAOD,EAAIC,GAAI,KAAOA,EAD6G0iD,IAAY,SAAY18B,EAAI,QAAW2U,EAAI,SAAY/P,GAAKw3B,KAE7N,CACA,SAASgB,GAAWp9B,GAClB,OAAQA,GAAK,MAAQ,OAAUA,EAAI,MAAQxrB,KAAK4jD,KAAKp4B,EAAI,MAAS,MAAO,IAC3E,CACA,SAASk9B,GAAmBvpB,GAC1B,IAAI1W,EAAIV,WAAWoX,GACnB,MAAkC,MAA3BA,EAAE1X,OAAO0X,EAAE3hC,OAAS,GAAawC,KAAK+b,MAAU,KAAJ0M,GAAYA,CACjE,CAlFA4/B,GAAgBpB,SAAW,SAAS3hD,GAClCA,EAAItF,KAAK4jD,IAAI,GAAKz5C,UAAU3M,OAAS8H,EAAI,GACzC,IAAIkmB,EAAIruB,KAAKquB,EAAG2U,EAAIhjC,KAAKgjC,EAAG/P,EAAIjzB,KAAKizB,EAAGhxB,EAAI,GAC5C,OAAKosB,GAAM2U,GAAM/P,GACb5E,GAAKA,EAAIpsB,IAAGosB,EAAIpsB,GAChB+gC,GAAKA,EAAI/gC,IAAG+gC,EAAI/gC,GAChBgxB,GAAKA,EAAIhxB,IAAGgxB,EAAIhxB,GACb,IAAIwnD,GAAO5mD,KAAK8mB,IAAI,IAAK0E,EAAIlmB,GAAItF,KAAK8mB,IAAI,IAAKqZ,EAAI76B,GAAItF,KAAK8mB,IAAI,IAAKsJ,EAAI9qB,KAJrD,IAAIshD,GAAOxnD,EAAGA,EAAGA,EAK9C,EACAipD,GAAgBnB,OAAS,SAAS5hD,GAEhC,OAAO,IAAIshD,IADXthD,EAAItF,KAAK4jD,IAAI,GAAKz5C,UAAU3M,OAAS8H,EAAI,IACnBnI,KAAKquB,EAAGlmB,EAAInI,KAAKgjC,EAAG76B,EAAInI,KAAKizB,EACrD,EACAi4B,GAAgB/B,IAAM,WACpB,OAAOD,GAAWlpD,KAAKquB,EAAGruB,KAAKgjC,EAAGhjC,KAAKizB,EACzC,EACAi4B,GAAgB39C,SAAW,WACzB,MAAO,IAAM49C,GAAWnrD,KAAKquB,GAAK88B,GAAWnrD,KAAKgjC,GAAKmoB,GAAWnrD,KAAKizB,EACzE,EAiEA,IAAIu4B,GAAexZ,EAAG1oC,IAAI,CACxBoiD,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRtyC,MAAO,EACPuyC,eAAgB,SAChBjwC,KAAM,IACNkwC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNlyC,MAAO,MACPmyC,YAAa,SACbnxC,KAAM,QACNoxC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXh1C,OAAQ,SACRi1C,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZx2C,OAAQ,QACRy2C,cAAe,QACft2C,IAAK,SACLu2C,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPv6C,MAAO,SACPw6C,WAAY,SACZC,OAAQ,SACRC,YAAa,WAKf,SAASC,GAAWhyB,GAClB,MAAoB,oBAANA,EAAmBA,EAAI,WACnC,OAAOA,CACT,CACF,CAGA,SAASiyB,GAAWC,GAClB,OAAO,SAASzvC,EAAK0vC,EAAUhuD,GAE7B,OADyB,IAArBuG,UAAU3M,QAAoC,oBAAbo0D,IAAyBhuD,EAAWguD,EAAUA,EAAW,MACvFC,GAAO3vC,EAAK0vC,EAAUD,EAAU/tD,EACzC,CACF,CACA,SAASiuD,GAAO3vC,EAAK0vC,EAAUD,EAAU/tD,GACvC,IAAIkuD,EAAM,CAAC,EAAGnc,EAAWxG,EAAGwG,SAAS,aAAc,WAAY,OAAQ,SAAUoc,EAAU,CAAC,EAAGC,EAAU,IAAIC,eAAkBC,EAAe,KAK9I,SAASC,IACP,IAA6B3iD,EAAzB4iD,EAASJ,EAAQI,OACrB,IAAKA,GAyET,SAA2BJ,GACzB,IAAI/vD,EAAO+vD,EAAQE,aACnB,OAAOjwD,GAAiB,SAATA,EAAkB+vD,EAAQL,SAAWK,EAAQK,YAC9D,CA5EmBC,CAAkBN,IAAYI,GAAU,KAAOA,EAAS,KAAkB,MAAXA,EAAgB,CAC5F,IACE5iD,EAASmiD,EAAS1qD,KAAK6qD,EAAKE,EAC9B,CAAE,MAAOtyD,IAEP,YADAi2C,EAASp8B,MAAMtS,KAAK6qD,EAAKpyD,GAE3B,CACAi2C,EAAS4c,KAAKtrD,KAAK6qD,EAAKtiD,EAC1B,MACEmmC,EAASp8B,MAAMtS,KAAK6qD,EAAKE,EAE7B,CAuDA,OAxEI/nB,KAAKuoB,kBAAoB,oBAAqBR,IAAY,oBAAoBxtC,KAAKtC,KAAM8vC,EAAU,IAAIQ,gBAC3G,WAAYR,EAAUA,EAAQS,OAAST,EAAQU,QAAUP,EAAUH,EAAQW,mBAAqB,WAC9FX,EAAQY,WAAa,GAAKT,GAC5B,EAeAH,EAAQa,WAAa,SAAShwC,GAC5B,IAAIqc,EAAIiQ,EAAGtsB,MACXssB,EAAGtsB,MAAQA,EACX,IACE8yB,EAASmd,SAAS7rD,KAAK6qD,EAAKE,EAC9B,CAAE,QACA7iB,EAAGtsB,MAAQqc,CACb,CACF,EACA4yB,EAAIiB,OAAS,SAASrnB,EAAOnrC,GAE3B,OADAmrC,GAASA,EAAQ,IAAIx9B,cACjB/D,UAAU3M,OAAS,EAAUu0D,EAAQrmB,IAC5B,MAATnrC,SAAsBwxD,EAAQrmB,GAC7BqmB,EAAQrmB,GAASnrC,EAAQ,GACvBuxD,EACT,EACAA,EAAIF,SAAW,SAASrxD,GACtB,OAAK4J,UAAU3M,QACfo0D,EAAoB,MAATrxD,EAAgB,KAAOA,EAAQ,GACnCuxD,GAFuBF,CAGhC,EACAE,EAAII,aAAe,SAAS3xD,GAC1B,OAAK4J,UAAU3M,QACf00D,EAAe3xD,EACRuxD,GAFuBI,CAGhC,EACAJ,EAAIH,SAAW,SAASpxD,GAEtB,OADAoxD,EAAWpxD,EACJuxD,CACT,EACA,CAAC,MAAO,QAAQpzD,SAAQ,SAASm1C,GAC/Bie,EAAIje,GAAU,WACZ,OAAOie,EAAIkB,KAAKxoD,MAAMsnD,EAAK,CAACje,GAAQ9rC,OAAOsnC,EAASllC,YACtD,CACF,IACA2nD,EAAIkB,KAAO,SAASnf,EAAQiG,EAAMmZ,GAIhC,GAHyB,IAArB9oD,UAAU3M,QAAgC,oBAATs8C,IAAqBmZ,EAAYnZ,EAAMA,EAAO,MACnFkY,EAAQr2B,KAAKkY,EAAQ3xB,GAAK,GACV,MAAZ0vC,GAAsB,WAAYG,IAAUA,EAAgB,OAAIH,EAAW,QAC3EI,EAAQkB,iBAAkB,IAAK,IAAIxnB,KAASqmB,EAASC,EAAQkB,iBAAiBxnB,EAAOqmB,EAAQrmB,IAQjG,OAPgB,MAAZkmB,GAAoBI,EAAQmB,kBAAkBnB,EAAQmB,iBAAiBvB,GACvD,MAAhBM,IAAsBF,EAAQE,aAAeA,GAChC,MAAbe,GAAmBnB,EAAIhc,GAAG,QAASmd,GAAWnd,GAAG,QAAQ,SAASsd,GACpEH,EAAU,KAAMG,EAClB,IACAzd,EAAS0d,WAAWpsD,KAAK6qD,EAAKE,GAC9BA,EAAQgB,KAAa,MAARlZ,EAAe,KAAOA,GAC5BgY,CACT,EACAA,EAAIwB,MAAQ,WAEV,OADAtB,EAAQsB,QACDxB,CACT,EACA3iB,EAAGoG,OAAOuc,EAAKnc,EAAU,MACN,MAAZ/xC,EAAmBkuD,EAAMA,EAAI5rD,IAEtC,SAA4BtC,GAC1B,OAA2B,IAApBA,EAASpG,OAAe,SAAS+b,EAAOy4C,GAC7CpuD,EAAkB,MAAT2V,EAAgBy4C,EAAU,KACrC,EAAIpuD,CACN,CAN0C2vD,CAAmB3vD,GAC7D,CA3FA+kD,GAAajqD,SAAQ,SAASL,EAAKkC,GACjCooD,GAAaxiD,IAAI9H,EAAK8pD,GAAa5nD,GACrC,IAMA4uC,EAAGqkB,QAAU/B,GACbtiB,EAAG2iB,IAAMJ,GAAW/d,GA4FpBxE,EAAGskB,IAAM,SAAS3wD,EAAW8uD,GAC3B,IAAI8B,EAAW,IAAItsC,OAAO,KAAOtkB,EAAY,OAAQ6wD,EAAgB7wD,EAAU9B,WAAW,GAC1F,SAASyyD,EAAIvxC,EAAK0wB,EAAKhvC,GACjBuG,UAAU3M,OAAS,IAAGoG,EAAWgvC,EAAKA,EAAM,MAChD,IAAIkf,EAAMD,GAAO3vC,EAAK0vC,EAAiB,MAAPhf,EAAc+e,EAAWiC,EAAchhB,GAAMhvC,GAI7E,OAHAkuD,EAAIlf,IAAM,SAASvS,GACjB,OAAOl2B,UAAU3M,OAASs0D,EAAIH,SAAsB,OAAZ/e,EAAMvS,GAAasxB,EAAWiC,EAAcvzB,IAAMuS,CAC5F,EACOkf,CACT,CACA,SAASH,EAASK,GAChB,OAAOyB,EAAIvvD,MAAM8tD,EAAQK,aAC3B,CACA,SAASuB,EAAcnrC,GACrB,OAAO,SAASupC,GACd,OAAOyB,EAAIvvD,MAAM8tD,EAAQK,aAAc5pC,EACzC,CACF,CAmFA,SAASorC,EAAUjhB,GACjB,OAAOA,EAAInsC,IAAIqtD,GAAa9vD,KAAKlB,EACnC,CACA,SAASgxD,EAAY18C,GACnB,OAAOs8C,EAASlvC,KAAKpN,GAAQ,IAAMA,EAAK5W,QAAQ,MAAO,MAAQ,IAAM4W,CACvE,CACA,OAxFAq8C,EAAIvvD,MAAQ,SAASkT,EAAMqR,GACzB,IAAIyW,EACJ,OAAOu0B,EAAIM,UAAU38C,GAAM,SAASw7B,EAAKxzC,GACvC,GAAI8/B,EAAG,OAAOA,EAAE0T,EAAKxzC,EAAI,GACzB,IAAIopB,EAAI,SAASpX,GAGf,IAFA,IAAIrC,EAAM,CAAC,EACPmB,EAAM0iC,EAAIp1C,OACL8H,EAAI,EAAGA,EAAI4K,IAAO5K,EACzByJ,EAAI6jC,EAAIttC,IAAM8L,EAAE9L,GAElB,OAAOyJ,CACT,EACAmwB,EAAIzW,EAAI,SAASurC,EAAM/Y,GACrB,OAAOxyB,EAAED,EAAEwrC,GAAO/Y,EACpB,EAAIzyB,CACN,GACF,EACAirC,EAAIM,UAAY,SAAS38C,EAAMqR,GAC7B,IAAkEiD,EAAGuoC,EAAjEC,EAAM,CAAC,EAAGC,EAAM,CAAC,EAAGC,EAAO,GAAIC,EAAIj9C,EAAK5Z,OAAQ82D,EAAI,EAAGhtC,EAAI,EAC/D,SAAS5kB,IACP,GAAI4xD,GAAKD,EAAG,OAAOF,EACnB,GAAIF,EAAK,OAAOA,GAAM,EAAOC,EAC7B,IAAI7uD,EAAIivD,EACR,GAA2B,KAAvBl9C,EAAKpW,WAAWqE,GAAW,CAE7B,IADA,IAAIjG,EAAIiG,EACDjG,IAAMi1D,GACX,GAA2B,KAAvBj9C,EAAKpW,WAAW5B,GAAW,CAC7B,GAA+B,KAA3BgY,EAAKpW,WAAW5B,EAAI,GAAW,QACjCA,CACJ,CAUF,OARAk1D,EAAIl1D,EAAI,EAEE,MADN+/B,EAAI/nB,EAAKpW,WAAW5B,EAAI,KAE1B60D,GAAM,EACyB,KAA3B78C,EAAKpW,WAAW5B,EAAI,MAAak1D,GACtB,KAANn1B,IACT80B,GAAM,GAED78C,EAAKhW,MAAMiE,EAAI,EAAGjG,GAAGoB,QAAQ,MAAO,IAC7C,CACA,KAAO8zD,EAAID,GAAG,CACZ,IAAIl1B,EAA0B75B,EAAI,EAClC,GAAU,MADN65B,EAAI/nB,EAAKpW,WAAWszD,MACVL,GAAM,OACf,GAAU,KAAN90B,EACP80B,GAAM,EACqB,KAAvB78C,EAAKpW,WAAWszD,OAAaA,IAAKhvD,QACjC,GAAI65B,IAAMw0B,EAAe,SAChC,OAAOv8C,EAAKhW,MAAMiE,EAAGivD,EAAIhvD,EAC3B,CACA,OAAO8R,EAAKhW,MAAMiE,EACpB,CACA,MAAQqmB,EAAIhpB,OAAayxD,GAAK,CAE5B,IADA,IAAI3rC,EAAI,GACDkD,IAAMwoC,GAAOxoC,IAAMyoC,GACxB3rC,EAAEzqB,KAAK2tB,GACPA,EAAIhpB,IAEF+lB,GAAwB,OAAlBD,EAAIC,EAAED,EAAGlB,OACnB8sC,EAAKr2D,KAAKyqB,EACZ,CACA,OAAO4rC,CACT,EACAX,EAAIvwB,OAAS,SAASkxB,GACpB,GAAIptD,MAAMiI,QAAQmlD,EAAK,IAAK,OAAOX,EAAIc,WAAWH,GAClD,IAAII,EAAW,IAAI9gB,EAAU+gB,EAAS,GAQtC,OAPAL,EAAK11D,SAAQ,SAASk0C,GACpB,IAAK,IAAI8hB,KAAS9hB,EACX4hB,EAAS5oC,IAAI8oC,IAChBD,EAAO12D,KAAKy2D,EAAS30B,IAAI60B,GAG/B,IACO,CAACD,EAAOhuD,IAAIqtD,GAAa9vD,KAAKlB,IAAYiF,OAAOqsD,EAAK3tD,KAAI,SAASmsC,GACxE,OAAO6hB,EAAOhuD,KAAI,SAASiuD,GACzB,OAAOZ,EAAYlhB,EAAI8hB,GACzB,IAAG1wD,KAAKlB,EACV,KAAIkB,KAAK,KACX,EACAyvD,EAAIc,WAAa,SAASH,GACxB,OAAOA,EAAK3tD,IAAIotD,GAAW7vD,KAAK,KAClC,EAOOyvD,CACT,EACAtkB,EAAGwlB,IAAMxlB,EAAGskB,IAAI,IAAK,YACrBtkB,EAAGylB,IAAMzlB,EAAGskB,IAAI,KAAK,6BACrB,IAAIoB,GAAoBC,GAAoBC,GAAmBC,GAAkBC,GAAiB93D,KAAK22C,EAAgB32C,KAAM,2BAA6B,SAASyG,GACjK62B,WAAW72B,EAAU,GACvB,EAIA,SAASsxD,GAAStxD,EAAUsc,EAAOgtB,GACjC,IAAI5lB,EAAInd,UAAU3M,OACd8pB,EAAI,IAAGpH,EAAQ,GACfoH,EAAI,IAAG4lB,EAAOpM,KAAK+O,OACvB,IAAyBpD,EAAQ,CAC/BtN,EAAGv7B,EACH8nB,EAFSwhB,EAAOhtB,EAGhBoH,EAAG,MAUL,OARIwtC,GAAoBA,GAAmBxtC,EAAImlB,EAC1CooB,GAAqBpoB,EAC1BqoB,GAAqBroB,EAChBsoB,KACHC,GAAmBx6B,aAAaw6B,IAChCD,GAAoB,EACpBE,GAAeE,KAEV1oB,CACT,CACA,SAAS0oB,KACP,IAAItlB,EAAMulB,KAAiBl1C,EAAQm1C,KAAmBxlB,EAClD3vB,EAAQ,IACNo1C,SAASp1C,KACXsa,aAAaw6B,IACbA,GAAmBv6B,WAAW06B,GAAej1C,IAE/C60C,GAAoB,IAEpBA,GAAoB,EACpBE,GAAeE,IAEnB,CAKA,SAASC,KAEP,IADA,IAAIvlB,EAAM/O,KAAK+O,MAAOpD,EAAQooB,GACvBpoB,GACDoD,GAAOpD,EAAM/gB,GAAK+gB,EAAMtN,EAAE0Q,EAAMpD,EAAM/gB,KAAI+gB,EAAMtN,EAAI,MACxDsN,EAAQA,EAAMnlB,EAEhB,OAAOuoB,CACT,CACA,SAASwlB,KAEP,IADA,IAAIE,EAAKC,EAAMX,GAAoBnyC,EAAOyxB,IACnCqhB,GACDA,EAAIr2B,GACFq2B,EAAI9pC,EAAIhJ,IAAMA,EAAO8yC,EAAI9pC,GAC7B8pC,GAAOD,EAAMC,GAAKluC,GAElBkuC,EAAMD,EAAMA,EAAIjuC,EAAIkuC,EAAIluC,EAAIutC,GAAqBW,EAAIluC,EAIzD,OADAwtC,GAAqBS,EACd7yC,CACT,CAKA,SAAS+yC,GAAerkD,GACtB,OAAOA,EAAE,EACX,CACA,SAASskD,GAAetkD,GACtB,OAAOA,EAAE,EACX,CA0BA,SAASukD,GAAkBrxD,GAEzB,IADA,IAn8BkBkkB,EAAG4H,EAAG+O,EAm8BpB7X,EAAIhjB,EAAO9G,OAAQo4D,EAAO,CAAC,EAAG,GAAIC,EAAK,EAClCz2D,EAAI,EAAGA,EAAIkoB,EAAGloB,IAAK,CAC1B,KAAOy2D,EAAK,IAr8BIrtC,EAq8BYlkB,EAAOsxD,EAAKC,EAAK,IAr8B1BzlC,EAq8B+B9rB,EAAOsxD,EAAKC,EAAK,IAr8B7C12B,EAq8BkD76B,EAAOlF,IAp8BzEgxB,EAAE,GAAK5H,EAAE,KAAO2W,EAAE,GAAK3W,EAAE,KAAO4H,EAAE,GAAK5H,EAAE,KAAO2W,EAAE,GAAK3W,EAAE,KAo8BuB,MAAKqtC,EAC3FD,EAAKC,KAAQz2D,CACf,CACA,OAAOw2D,EAAKx0D,MAAM,EAAGy0D,EACvB,CACA,SAASC,GAAkBttC,EAAG4H,GAC5B,OAAO5H,EAAE,GAAK4H,EAAE,IAAM5H,EAAE,GAAK4H,EAAE,EACjC,CAzGA+e,EAAG1C,MAAQ,WACTyoB,GAAS1qD,MAAMrN,KAAMgN,UACvB,EAiCAglC,EAAG1C,MAAM9sC,MAAQ,WACfy1D,KACAC,IACF,EAsBAlmB,EAAGpzB,MAAQ,SAASxW,EAAG+hB,GACrB,OAAOA,EAAItnB,KAAK+b,MAAMxW,GAAK+hB,EAAItnB,KAAK4jD,IAAI,GAAIt8B,KAAOA,EAAItnB,KAAK+b,MAAMxW,EACpE,EACA4pC,EAAG4mB,KAAO,CAAC,EAOX5mB,EAAG4mB,KAAKH,KAAO,SAASI,GACtB,IAAIzwD,EAAIkwD,GAAgBjwD,EAAIkwD,GAC5B,GAAIvrD,UAAU3M,OAAQ,OAAOo4D,EAAKI,GAClC,SAASJ,EAAK9b,GACZ,GAAIA,EAAKt8C,OAAS,EAAG,MAAO,GAC5B,IAA4C4B,EAAxC62D,EAAKxE,GAAWlsD,GAAI2wD,EAAKzE,GAAWjsD,GAAO8hB,EAAIwyB,EAAKt8C,OAAQ8G,EAAS,GAAI6xD,EAAgB,GAC7F,IAAK/2D,EAAI,EAAGA,EAAIkoB,EAAGloB,IACjBkF,EAAOvG,KAAK,EAAEk4D,EAAGhvD,KAAK9J,KAAM28C,EAAK16C,GAAIA,IAAK82D,EAAGjvD,KAAK9J,KAAM28C,EAAK16C,GAAIA,GAAIA,IAGvE,IADAkF,EAAOmqB,KAAKqnC,IACP12D,EAAI,EAAGA,EAAIkoB,EAAGloB,IAAK+2D,EAAcp4D,KAAK,CAACuG,EAAOlF,GAAG,IAAKkF,EAAOlF,GAAG,KACrE,IAAIg3D,EAAQT,GAAkBrxD,GAAS+xD,EAAQV,GAAkBQ,GAC7DG,EAAWD,EAAM,KAAOD,EAAM,GAAIG,EAAYF,EAAMA,EAAM74D,OAAS,KAAO44D,EAAMA,EAAM54D,OAAS,GAAIg5D,EAAU,GACjH,IAAKp3D,EAAIg3D,EAAM54D,OAAS,EAAG4B,GAAK,IAAKA,EAAGo3D,EAAQz4D,KAAK+7C,EAAKx1C,EAAO8xD,EAAMh3D,IAAI,KAC3E,IAAKA,GAAKk3D,EAAUl3D,EAAIi3D,EAAM74D,OAAS+4D,IAAan3D,EAAGo3D,EAAQz4D,KAAK+7C,EAAKx1C,EAAO+xD,EAAMj3D,IAAI,KAC1F,OAAOo3D,CACT,CAOA,OANAZ,EAAKrwD,EAAI,SAAS86B,GAChB,OAAOl2B,UAAU3M,QAAU+H,EAAI86B,EAAGu1B,GAAQrwD,CAC5C,EACAqwD,EAAKpwD,EAAI,SAAS66B,GAChB,OAAOl2B,UAAU3M,QAAUgI,EAAI66B,EAAGu1B,GAAQpwD,CAC5C,EACOowD,CACT,EAYAzmB,EAAG4mB,KAAKS,QAAU,SAASC,GAEzB,OADA7f,EAAY6f,EAAaC,IAClBD,CACT,EACA,IAAIC,GAA2BvnB,EAAG4mB,KAAKS,QAAQj4D,UAAY,GA+C3D,SAASo4D,GAAsBzmC,EAAG1H,EAAG4H,GACnC,OAAQA,EAAE,GAAK5H,EAAE,KAAO0H,EAAE,GAAK1H,EAAE,KAAO4H,EAAE,GAAK5H,EAAE,KAAO0H,EAAE,GAAK1H,EAAE,GACnE,CACA,SAASouC,GAAyBz3B,EAAG/tB,EAAGoX,EAAG4H,GACzC,IAAIqyB,EAAKtjB,EAAE,GAAI03B,EAAKruC,EAAE,GAAIsuC,EAAM1lD,EAAE,GAAKqxC,EAAIsU,EAAM3mC,EAAE,GAAKymC,EAAIlU,EAAKxjB,EAAE,GAAI63B,EAAKxuC,EAAE,GAAIyuC,EAAM7lD,EAAE,GAAKuxC,EAAIuU,EAAM9mC,EAAE,GAAK4mC,EAAIG,GAAMJ,GAAOpU,EAAKqU,GAAME,GAAOzU,EAAKoU,KAAQK,EAAMJ,EAAMC,EAAME,GAClL,MAAO,CAACxU,EAAK0U,EAAKL,EAAKnU,EAAKwU,EAAKF,EACnC,CACA,SAASG,GAAsBX,GAC7B,IAAIjuC,EAAIiuC,EAAY,GAAIrmC,EAAIqmC,EAAYA,EAAYj5D,OAAS,GAC7D,QAASgrB,EAAE,GAAK4H,EAAE,IAAM5H,EAAE,GAAK4H,EAAE,GACnC,CAxDAsmC,GAAyBW,KAAO,WAE9B,IADA,IAA6B7uC,EAAzBppB,GAAK,EAAGkoB,EAAInqB,KAAKK,OAAW4yB,EAAIjzB,KAAKmqB,EAAI,GAAI+vC,EAAO,IAC/Cj4D,EAAIkoB,GACXkB,EAAI4H,EACJA,EAAIjzB,KAAKiC,GACTi4D,GAAQ7uC,EAAE,GAAK4H,EAAE,GAAK5H,EAAE,GAAK4H,EAAE,GAEjC,MAAc,GAAPinC,CACT,EACAX,GAAyBY,SAAW,SAAShyD,GAC3C,IAA2CkjB,EAAoB2W,EAA3D//B,GAAK,EAAGkoB,EAAInqB,KAAKK,OAAQ+H,EAAI,EAAGC,EAAI,EAAM4qB,EAAIjzB,KAAKmqB,EAAI,GAE3D,IADKnd,UAAU3M,SAAQ8H,GAAK,GAAK,EAAInI,KAAKk6D,WACjCj4D,EAAIkoB,GACXkB,EAAI4H,EACJA,EAAIjzB,KAAKiC,GACT+/B,EAAI3W,EAAE,GAAK4H,EAAE,GAAKA,EAAE,GAAK5H,EAAE,GAC3BjjB,IAAMijB,EAAE,GAAK4H,EAAE,IAAM+O,EACrB35B,IAAMgjB,EAAE,GAAK4H,EAAE,IAAM+O,EAEvB,MAAO,CAAC55B,EAAID,EAAGE,EAAIF,EACrB,EACAoxD,GAAyBa,KAAO,SAASlY,GAEvC,IADA,IAAIt2B,EAAuG1jB,EAAG4qB,EAAoBG,EAAG+O,EAAG/tB,EAA7HomD,EAASJ,GAAsB/X,GAAUjgD,GAAK,EAAGkoB,EAAInqB,KAAKK,OAAS45D,GAAsBj6D,MAAaqrB,EAAIrrB,KAAKmqB,EAAI,KACrHloB,EAAIkoB,GAAG,CAMd,IALAyB,EAAQs2B,EAAQj+C,QAChBi+C,EAAQ7hD,OAAS,EACjB4yB,EAAIjzB,KAAKiC,GACT+/B,EAAIpW,GAAOkH,EAAIlH,EAAMvrB,OAASg6D,GAAU,GACxCnyD,GAAK,IACIA,EAAI4qB,GAEP0mC,GADJvlD,EAAI2X,EAAM1jB,GACmBmjB,EAAG4H,IACzBumC,GAAsBx3B,EAAG3W,EAAG4H,IAC/BivB,EAAQthD,KAAK64D,GAAyBz3B,EAAG/tB,EAAGoX,EAAG4H,IAEjDivB,EAAQthD,KAAKqT,IACJulD,GAAsBx3B,EAAG3W,EAAG4H,IACrCivB,EAAQthD,KAAK64D,GAAyBz3B,EAAG/tB,EAAGoX,EAAG4H,IAEjD+O,EAAI/tB,EAEFomD,GAAQnY,EAAQthD,KAAKshD,EAAQ,IACjC72B,EAAI4H,CACN,CACA,OAAOivB,CACT,EAYA,IAAIoY,GAAsBC,GAAsBC,GAAuDC,GAA4BC,GAA3DC,GAA2B,GAAwDC,GAA4B,GACvL,SAASC,KACPC,GAA4B96D,MAC5BA,KAAK+6D,KAAO/6D,KAAKg7D,KAAOh7D,KAAKi7D,OAAS,IACxC,CACA,SAASC,GAA2BF,GAClC,IAAIG,EAAQR,GAAyBS,OAAS,IAAIP,GAElD,OADAM,EAAMH,KAAOA,EACNG,CACT,CACA,SAASE,GAA2BF,GAClCG,GAA4BH,GAC5BX,GAAuBrjB,OAAOgkB,GAC9BR,GAAyB/5D,KAAKu6D,GAC9BL,GAA4BK,EAC9B,CACA,SAASI,GAA2BJ,GAClC,IAAIF,EAASE,EAAMF,OAAQ7yD,EAAI6yD,EAAO7yD,EAAGC,EAAI4yD,EAAOnS,GAAI0S,EAAS,CAC/DpzD,IACAC,KACCb,EAAW2zD,EAAMM,EAAGr2D,EAAO+1D,EAAMjE,EAAGwE,EAAe,CAACP,GACvDE,GAA2BF,GAE3B,IADA,IAAIQ,EAAOn0D,EACJm0D,EAAKV,QAAUr4D,EAAIwF,EAAIuzD,EAAKV,OAAO7yD,GAAK46C,IAAUpgD,EAAIyF,EAAIszD,EAAKV,OAAOnS,IAAM9F,IACjFx7C,EAAWm0D,EAAKF,EAChBC,EAAaE,QAAQD,GACrBN,GAA2BM,GAC3BA,EAAOn0D,EAETk0D,EAAaE,QAAQD,GACrBL,GAA4BK,GAE5B,IADA,IAAIE,EAAOz2D,EACJy2D,EAAKZ,QAAUr4D,EAAIwF,EAAIyzD,EAAKZ,OAAO7yD,GAAK46C,IAAUpgD,EAAIyF,EAAIwzD,EAAKZ,OAAOnS,IAAM9F,IACjF59C,EAAOy2D,EAAK3E,EACZwE,EAAa96D,KAAKi7D,GAClBR,GAA2BQ,GAC3BA,EAAOz2D,EAETs2D,EAAa96D,KAAKi7D,GAClBP,GAA4BO,GAC5B,IAAiCC,EAA7BC,EAAQL,EAAar7D,OACzB,IAAKy7D,EAAO,EAAGA,EAAOC,IAASD,EAC7BD,EAAOH,EAAaI,GACpBH,EAAOD,EAAaI,EAAO,GAC3BE,GAA0BH,EAAKd,KAAMY,EAAKX,KAAMa,EAAKb,KAAMQ,GAE7DG,EAAOD,EAAa,IACpBG,EAAOH,EAAaK,EAAQ,IACvBhB,KAAOkB,GAA0BN,EAAKX,KAAMa,EAAKb,KAAM,KAAMQ,GAClEU,GAA4BP,GAC5BO,GAA4BL,EAC9B,CACA,SAASM,GAAwBnB,GAE/B,IADA,IAAoCW,EAAME,EAAMO,EAAKC,EAAjDj0D,EAAI4yD,EAAK5yD,EAAGk0D,EAAYtB,EAAK3yD,EAAyB1D,EAAO61D,GAAuBt3B,EACjFv+B,GAEL,IADAy3D,EAAMG,GAA8B53D,EAAM23D,GAAal0D,GAC7C46C,GAAQr+C,EAAOA,EAAKsiC,MACzB,CAEH,MADAo1B,EAAMj0D,EAAIo0D,GAA+B73D,EAAM23D,IACrCtZ,IAMH,CACDoZ,GAAOpZ,IACT2Y,EAAOh3D,EAAK82D,EACZI,EAAOl3D,GACE03D,GAAOrZ,IAChB2Y,EAAOh3D,EACPk3D,EAAOl3D,EAAKuyD,GAEZyE,EAAOE,EAAOl3D,EAEhB,KACF,CAhBE,IAAKA,EAAK83D,EAAG,CACXd,EAAOh3D,EACP,KACF,CACAA,EAAOA,EAAK83D,CAahB,CAEF,IAAIC,EAASxB,GAA2BF,GAExC,GADAR,GAAuBh5D,OAAOm6D,EAAMe,GAC/Bf,GAASE,EAAd,CACA,GAAIF,IAASE,EAOX,OANAP,GAA4BK,GAC5BE,EAAOX,GAA2BS,EAAKX,MACvCR,GAAuBh5D,OAAOk7D,EAAQb,GACtCa,EAAO3B,KAAOc,EAAKd,KAAOkB,GAA0BN,EAAKX,KAAM0B,EAAO1B,MACtEkB,GAA4BP,QAC5BO,GAA4BL,GAG9B,GAAKA,EAAL,CAIAP,GAA4BK,GAC5BL,GAA4BO,GAC5B,IAAIc,EAAQhB,EAAKX,KAAM4B,EAAKD,EAAMv0D,EAAGy0D,EAAKF,EAAMt0D,EAAGy0D,EAAK9B,EAAK5yD,EAAIw0D,EAAIG,EAAK/B,EAAK3yD,EAAIw0D,EAAIG,EAAQnB,EAAKb,KAAMnS,EAAKmU,EAAM50D,EAAIw0D,EAAI9T,EAAKkU,EAAM30D,EAAIw0D,EAAI5oD,EAAI,GAAK6oD,EAAKhU,EAAKiU,EAAKlU,GAAKoU,EAAKH,EAAKA,EAAKC,EAAKA,EAAIG,EAAKrU,EAAKA,EAAKC,EAAKA,EAAI0S,EAAS,CACpOpzD,GAAI0gD,EAAKmU,EAAKF,EAAKG,GAAMjpD,EAAI2oD,EAC7Bv0D,GAAIy0D,EAAKI,EAAKrU,EAAKoU,GAAMhpD,EAAI4oD,GAE/Bb,GAA0BH,EAAKd,KAAM4B,EAAOK,EAAOxB,GACnDkB,EAAO3B,KAAOkB,GAA0BU,EAAO3B,EAAM,KAAMQ,GAC3DK,EAAKd,KAAOkB,GAA0BjB,EAAMgC,EAAO,KAAMxB,GACzDU,GAA4BP,GAC5BO,GAA4BL,EAX5B,MAFEa,EAAO3B,KAAOkB,GAA0BN,EAAKX,KAAM0B,EAAO1B,KAXlC,CAyB5B,CACA,SAASuB,GAA8BY,EAAKb,GAC1C,IAAItB,EAAOmC,EAAInC,KAAMoC,EAAQpC,EAAK5yD,EAAGi1D,EAAQrC,EAAK3yD,EAAGi1D,EAAOD,EAAQf,EACpE,IAAKgB,EAAM,OAAOF,EAClB,IAAIzB,EAAOwB,EAAI1B,EACf,IAAKE,EAAM,OAAO,IAElB,IAAI4B,GADJvC,EAAOW,EAAKX,MACK5yD,EAAGo1D,EAAQxC,EAAK3yD,EAAGo1D,EAAQD,EAAQlB,EACpD,IAAKmB,EAAO,OAAOF,EACnB,IAAIG,EAAKH,EAAQH,EAAOO,EAAO,EAAIL,EAAO,EAAIG,EAAOxqC,EAAIyqC,EAAKD,EAC9D,OAAIE,IAAe1qC,EAAIpwB,KAAK2xC,KAAKvhB,EAAIA,EAAI,EAAI0qC,GAAQD,EAAKA,IAAO,EAAID,GAASD,EAAQC,EAAQ,EAAIJ,EAAQC,EAAO,KAAOK,EAAOP,GACvHA,EAAQG,GAAS,CAC3B,CACA,SAASf,GAA+BW,EAAKb,GAC3C,IAAIT,EAAOsB,EAAIjG,EACf,GAAI2E,EAAM,OAAOU,GAA8BV,EAAMS,GACrD,IAAItB,EAAOmC,EAAInC,KACf,OAAOA,EAAK3yD,IAAMi0D,EAAYtB,EAAK5yD,EAAI4uC,GACzC,CACA,SAAS4mB,GAAoB5C,GAC3Bh7D,KAAKg7D,KAAOA,EACZh7D,KAAK69D,MAAQ,EACf,CAwCA,SAASC,GAA6BzyC,EAAG4H,GACvC,OAAOA,EAAE8qC,MAAQ1yC,EAAE0yC,KACrB,CACA,SAASC,KACPlD,GAA4B96D,MAC5BA,KAAKoI,EAAIpI,KAAKqI,EAAIrI,KAAKm9D,IAAMn9D,KAAKg7D,KAAOh7D,KAAK8oD,GAAK,IACrD,CACA,SAASoT,GAA4BiB,GACnC,IAAIxB,EAAOwB,EAAI1B,EAAGI,EAAOsB,EAAIjG,EAC7B,GAAKyE,GAASE,EAAd,CACA,IAAIc,EAAQhB,EAAKX,KAAMiD,EAAQd,EAAInC,KAAMgC,EAAQnB,EAAKb,KACtD,GAAI2B,IAAUK,EAAd,CACA,IAAIF,EAAKmB,EAAM71D,EAAG20D,EAAKkB,EAAM51D,EAAGu0D,EAAKD,EAAMv0D,EAAI00D,EAAID,EAAKF,EAAMt0D,EAAI00D,EAAIlU,EAAKmU,EAAM50D,EAAI00D,EACjF7oD,EAAI,GAAK2oD,GAD4E9T,EAAKkU,EAAM30D,EAAI00D,GACjFF,EAAKhU,GAC5B,KAAI50C,IAAMgvC,IAAV,CACA,IAAIib,EAAKtB,EAAKA,EAAKC,EAAKA,EAAIK,EAAKrU,EAAKA,EAAKC,EAAKA,EAAI1gD,GAAK0gD,EAAKoV,EAAKrB,EAAKK,GAAMjpD,EAAG5L,GAAKu0D,EAAKM,EAAKrU,EAAKqV,GAAMjqD,EAAG60C,EAAKzgD,EAAI00D,EACnH9B,EAASL,GAA0BQ,OAAS,IAAI4C,GACpD/C,EAAOkC,IAAMA,EACblC,EAAOD,KAAOiD,EACdhD,EAAO7yD,EAAIA,EAAI00D,EACf7B,EAAO5yD,EAAIygD,EAAKjmD,KAAK2xC,KAAKpsC,EAAIA,EAAIC,EAAIA,GACtC4yD,EAAOnS,GAAKA,EACZqU,EAAIlC,OAASA,EAEb,IADA,IAAI96D,EAAS,KAAMwE,EAAO+1D,GAAuBx3B,EAC1Cv+B,GACL,GAAIs2D,EAAO5yD,EAAI1D,EAAK0D,GAAK4yD,EAAO5yD,IAAM1D,EAAK0D,GAAK4yD,EAAO7yD,GAAKzD,EAAKyD,EAAG,CAClE,IAAIzD,EAAKsiC,EACJ,CACH9mC,EAASwE,EAAK82D,EACd,KACF,CAJY92D,EAAOA,EAAKsiC,CAK1B,KAAO,CACL,IAAItiC,EAAK83D,EACJ,CACHt8D,EAASwE,EACT,KACF,CAJYA,EAAOA,EAAK83D,CAK1B,CAEF/B,GAAuBl5D,OAAOrB,EAAQ86D,GACjC96D,IAAQs6D,GAA6BQ,EA1BjB,CAHE,CAFD,CAgC5B,CACA,SAASK,GAA4B6B,GACnC,IAAIlC,EAASkC,EAAIlC,OACbA,IACGA,EAAOQ,IAAGhB,GAA6BQ,EAAO/D,GACnDwD,GAAuBvjB,OAAO8jB,GAC9BL,GAA0Bh6D,KAAKq6D,GAC/BH,GAA4BG,GAC5BkC,EAAIlC,OAAS,KAEjB,CAiEA,SAASkD,GAA2BpD,EAAM/mB,GACxC,IAAIoqB,EAAKrD,EAAK9nC,EACd,GAAImrC,EAAI,OAAO,EACf,IAA6NC,EAAIC,EAA7NC,EAAKxD,EAAK1vC,EAAGg6B,EAAKrR,EAAO,GAAG,GAAIsR,EAAKtR,EAAO,GAAG,GAAIuR,EAAKvR,EAAO,GAAG,GAAIwR,EAAKxR,EAAO,GAAG,GAAI2oB,EAAQ5B,EAAK3vC,EAAG4xC,EAAQjC,EAAK1sC,EAAGmwC,EAAK7B,EAAMv0D,EAAGq2D,EAAK9B,EAAMt0D,EAAGq2D,EAAK1B,EAAM50D,EAAGu2D,EAAK3B,EAAM30D,EAAGywD,GAAM0F,EAAKE,GAAM,EAAG3F,GAAM0F,EAAKE,GAAM,EAC1N,GAAIA,IAAOF,EAAI,CACb,GAAI3F,EAAKzT,GAAMyT,GAAMxT,EAAI,OACzB,GAAIkZ,EAAKE,EAAI,CACX,GAAKH,GAIA,GAAIA,EAAGl2D,GAAKm9C,EAAI,YAJZ+Y,EAAK,CACZn2D,EAAG0wD,EACHzwD,EAAGk9C,GAGL6Y,EAAK,CACHh2D,EAAG0wD,EACHzwD,EAAGm9C,EAEP,KAAO,CACL,GAAK+Y,GAIA,GAAIA,EAAGl2D,EAAIk9C,EAAI,YAJXgZ,EAAK,CACZn2D,EAAG0wD,EACHzwD,EAAGm9C,GAGL4Y,EAAK,CACHh2D,EAAG0wD,EACHzwD,EAAGk9C,EAEP,CACF,MAGE,GADA+Y,EAAKvF,GADLsF,GAAMG,EAAKE,IAAOC,EAAKF,IACR3F,EACXuF,GAAM,GAAKA,EAAK,EAClB,GAAIG,EAAKE,EAAI,CACX,GAAKH,GAIA,GAAIA,EAAGl2D,GAAKm9C,EAAI,YAJZ+Y,EAAK,CACZn2D,GAAIm9C,EAAK+Y,GAAMD,EACfh2D,EAAGk9C,GAGL6Y,EAAK,CACHh2D,GAAIo9C,EAAK8Y,GAAMD,EACfh2D,EAAGm9C,EAEP,KAAO,CACL,GAAK+Y,GAIA,GAAIA,EAAGl2D,EAAIk9C,EAAI,YAJXgZ,EAAK,CACZn2D,GAAIo9C,EAAK8Y,GAAMD,EACfh2D,EAAGm9C,GAGL4Y,EAAK,CACHh2D,GAAIm9C,EAAK+Y,GAAMD,EACfh2D,EAAGk9C,EAEP,MAEA,GAAIkZ,EAAKE,EAAI,CACX,GAAKJ,GAIA,GAAIA,EAAGn2D,GAAKk9C,EAAI,YAJZiZ,EAAK,CACZn2D,EAAGi9C,EACHh9C,EAAGg2D,EAAKhZ,EAAKiZ,GAGfF,EAAK,CACHh2D,EAAGk9C,EACHj9C,EAAGg2D,EAAK/Y,EAAKgZ,EAEjB,KAAO,CACL,GAAKC,GAIA,GAAIA,EAAGn2D,EAAIi9C,EAAI,YAJXkZ,EAAK,CACZn2D,EAAGk9C,EACHj9C,EAAGg2D,EAAK/Y,EAAKgZ,GAGfF,EAAK,CACHh2D,EAAGi9C,EACHh9C,EAAGg2D,EAAKhZ,EAAKiZ,EAEjB,CAKJ,OAFAvD,EAAK1vC,EAAIkzC,EACTxD,EAAK9nC,EAAImrC,GACF,CACT,CACA,SAASQ,GAAoBjC,EAAOK,GAClCh9D,KAAKorB,EAAIuxC,EACT38D,KAAKquB,EAAI2uC,EACTh9D,KAAKqrB,EAAIrrB,KAAKizB,EAAI,IACpB,CACA,SAASgpC,GAA0BU,EAAOK,EAAOuB,EAAIH,GACnD,IAAIrD,EAAO,IAAI6D,GAAoBjC,EAAOK,GAM1C,OALA1C,GAAqB15D,KAAKm6D,GACtBwD,GAAIvC,GAA0BjB,EAAM4B,EAAOK,EAAOuB,GAClDH,GAAIpC,GAA0BjB,EAAMiC,EAAOL,EAAOyB,GACtD7D,GAAqBoC,EAAM16D,GAAG47D,MAAMj9D,KAAK,IAAIi+D,GAAwB9D,EAAM4B,EAAOK,IAClFzC,GAAqByC,EAAM/6D,GAAG47D,MAAMj9D,KAAK,IAAIi+D,GAAwB9D,EAAMiC,EAAOL,IAC3E5B,CACT,CACA,SAAS+D,GAAgCnC,EAAO4B,EAAIH,GAClD,IAAIrD,EAAO,IAAI6D,GAAoBjC,EAAO,MAI1C,OAHA5B,EAAK1vC,EAAIkzC,EACTxD,EAAK9nC,EAAImrC,EACT9D,GAAqB15D,KAAKm6D,GACnBA,CACT,CACA,SAASiB,GAA0BjB,EAAM4B,EAAOK,EAAOxB,GAChDT,EAAK1vC,GAAM0vC,EAAK9nC,EAIV8nC,EAAK3vC,IAAM4xC,EACpBjC,EAAK9nC,EAAIuoC,EAETT,EAAK1vC,EAAImwC,GANTT,EAAK1vC,EAAImwC,EACTT,EAAK3vC,EAAIuxC,EACT5B,EAAK1sC,EAAI2uC,EAMb,CACA,SAAS6B,GAAwB9D,EAAM4B,EAAOK,GAC5C,IAAIuB,EAAKxD,EAAK1vC,EAAG+yC,EAAKrD,EAAK9nC,EAC3BjzB,KAAK+6D,KAAOA,EACZ/6D,KAAKg7D,KAAO2B,EACZ38D,KAAK+9D,MAAQf,EAAQn6D,KAAKioD,MAAMkS,EAAM30D,EAAIs0D,EAAMt0D,EAAG20D,EAAM50D,EAAIu0D,EAAMv0D,GAAK2yD,EAAK3vC,IAAMuxC,EAAQ95D,KAAKioD,MAAMsT,EAAGh2D,EAAIm2D,EAAGn2D,EAAGm2D,EAAGl2D,EAAI+1D,EAAG/1D,GAAKxF,KAAKioD,MAAMyT,EAAGn2D,EAAIg2D,EAAGh2D,EAAGg2D,EAAG/1D,EAAIk2D,EAAGl2D,EACtK,CASA,SAAS02D,KACP/+D,KAAKkjC,EAAI,IACX,CACA,SAAS43B,GAA4Bn2D,GACnCA,EAAKq6D,EAAIr6D,EAAKs6D,EAAIt6D,EAAKsiC,EAAItiC,EAAK83D,EAAI93D,EAAK82D,EAAI92D,EAAKuyD,EAAI,IACxD,CAoKA,SAASgI,GAAkCC,EAAMx6D,GAC/C,IAAIouB,EAAIpuB,EAAMwmC,EAAIxmC,EAAK83D,EAAG53D,EAASkuB,EAAEisC,EACjCn6D,EACEA,EAAOoiC,IAAMlU,EAAGluB,EAAOoiC,EAAIkE,EAC1BtmC,EAAO43D,EAAItxB,EAEhBg0B,EAAKj8B,EAAIiI,EAEXA,EAAE6zB,EAAIn6D,EACNkuB,EAAEisC,EAAI7zB,EACNpY,EAAE0pC,EAAItxB,EAAElE,EACJlU,EAAE0pC,IAAG1pC,EAAE0pC,EAAEuC,EAAIjsC,GACjBoY,EAAElE,EAAIlU,CACR,CACA,SAASqsC,GAAmCD,EAAMx6D,GAChD,IAAIouB,EAAIpuB,EAAMwmC,EAAIxmC,EAAKsiC,EAAGpiC,EAASkuB,EAAEisC,EACjCn6D,EACEA,EAAOoiC,IAAMlU,EAAGluB,EAAOoiC,EAAIkE,EAC1BtmC,EAAO43D,EAAItxB,EAEhBg0B,EAAKj8B,EAAIiI,EAEXA,EAAE6zB,EAAIn6D,EACNkuB,EAAEisC,EAAI7zB,EACNpY,EAAEkU,EAAIkE,EAAEsxB,EACJ1pC,EAAEkU,IAAGlU,EAAEkU,EAAE+3B,EAAIjsC,GACjBoY,EAAEsxB,EAAI1pC,CACR,CACA,SAASssC,GAA6B16D,GACpC,KAAOA,EAAKsiC,GAAGtiC,EAAOA,EAAKsiC,EAC3B,OAAOtiC,CACT,CACA,SAAS26D,GAAgBC,EAAOC,GAC9B,IAAyDna,EAAIE,EAAI0V,EAA7DD,EAAOuE,EAAMjuC,KAAKmuC,IAA4BrE,MAKlD,IAJAd,GAAuB,GACvBC,GAAuB,IAAI1wD,MAAM01D,EAAMl/D,QACvCm6D,GAAyB,IAAIuE,GAC7BrE,GAAyB,IAAIqE,KAG3B,GADA9D,EAASR,GACLO,KAAUC,GAAUD,EAAK3yD,EAAI4yD,EAAO5yD,GAAK2yD,EAAK3yD,IAAM4yD,EAAO5yD,GAAK2yD,EAAK5yD,EAAI6yD,EAAO7yD,GAC9E4yD,EAAK5yD,IAAMi9C,GAAM2V,EAAK3yD,IAAMk9C,IAC9BgV,GAAqBS,EAAK/4D,GAAK,IAAI27D,GAAoB5C,GACvDmB,GAAwBnB,GACxB3V,EAAK2V,EAAK5yD,EAAGm9C,EAAKyV,EAAK3yD,GAEzB2yD,EAAOuE,EAAMnE,UACR,KAAIH,EAGT,MAFAM,GAA2BN,EAAOkC,IAGpC,CAEEqC,IAtWN,SAAkCxrB,GAEhC,IADA,IAAqIzxC,EAvD7G8iD,EAAIE,EAAID,EAAIE,EAuDhCqY,EAAQvD,GAAsBF,GAvDV/U,EAuDkCrR,EAAO,GAAG,GAvDxCuR,EAuD4CvR,EAAO,GAAG,GAvDlDsR,EAuDsDtR,EAAO,GAAG,GAvD5DwR,EAuDgExR,EAAO,GAAG,GAtDvG,SAAS1vC,GACd,IAAkH+pB,EAA9GhD,EAAI/mB,EAAK+mB,EAAG4H,EAAI3uB,EAAK2uB,EAAG2pC,EAAKvxC,EAAEjjB,EAAGy0D,EAAKxxC,EAAEhjB,EAAuB+vD,EAAM,EAAGC,EAAM,EAAG1V,EAAjC1vB,EAAE7qB,EAAyCw0D,EAAIha,EAArC3vB,EAAE5qB,EAA6Cw0D,EAE9G,GADAxuC,EAAIg3B,EAAKuX,EACJja,KAAMt0B,EAAI,GAAf,CAEA,GADAA,GAAKs0B,EACDA,EAAK,EAAG,CACV,GAAIt0B,EAAI+pC,EAAK,OACT/pC,EAAIgqC,IAAKA,EAAMhqC,EACrB,MAAO,GAAIs0B,EAAK,EAAG,CACjB,GAAIt0B,EAAIgqC,EAAK,OACThqC,EAAI+pC,IAAKA,EAAM/pC,EACrB,CAEA,GADAA,EAAIi3B,EAAKsX,EACJja,KAAMt0B,EAAI,GAAf,CAEA,GADAA,GAAKs0B,EACDA,EAAK,EAAG,CACV,GAAIt0B,EAAIgqC,EAAK,OACThqC,EAAI+pC,IAAKA,EAAM/pC,EACrB,MAAO,GAAIs0B,EAAK,EAAG,CACjB,GAAIt0B,EAAI+pC,EAAK,OACT/pC,EAAIgqC,IAAKA,EAAMhqC,EACrB,CAEA,GADAA,EAAIk3B,EAAKsX,EACJja,KAAMv0B,EAAI,GAAf,CAEA,GADAA,GAAKu0B,EACDA,EAAK,EAAG,CACV,GAAIv0B,EAAI+pC,EAAK,OACT/pC,EAAIgqC,IAAKA,EAAMhqC,EACrB,MAAO,GAAIu0B,EAAK,EAAG,CACjB,GAAIv0B,EAAIgqC,EAAK,OACThqC,EAAI+pC,IAAKA,EAAM/pC,EACrB,CAEA,GADAA,EAAIm3B,EAAKqX,EACJja,KAAMv0B,EAAI,GAAf,CAEA,GADAA,GAAKu0B,EACDA,EAAK,EAAG,CACV,GAAIv0B,EAAIgqC,EAAK,OACThqC,EAAI+pC,IAAKA,EAAM/pC,EACrB,MAAO,GAAIu0B,EAAK,EAAG,CACjB,GAAIv0B,EAAI+pC,EAAK,OACT/pC,EAAIgqC,IAAKA,EAAMhqC,EACrB,CASA,OARI+pC,EAAM,IAAG9zD,EAAK+mB,EAAI,CACpBjjB,EAAGw0D,EAAKxE,EAAMzV,EACdt6C,EAAGw0D,EAAKzE,EAAMxV,IAEZyV,EAAM,IAAG/zD,EAAK2uB,EAAI,CACpB7qB,EAAGw0D,EAAKvE,EAAM1V,EACdt6C,EAAGw0D,EAAKxE,EAAMzV,IAETt+C,CAjBiB,CAVA,CAVA,CAVA,CAgD1B,GAGmHrC,EAAI47D,EAAMx9D,OACtH4B,OAEAk8D,GADL57D,EAAIs7D,EAAM57D,GACyB+xC,KAAYomB,EAAK73D,IAAMK,EAAIL,EAAE8oB,EAAEjjB,EAAI7F,EAAE0wB,EAAE7qB,GAAK46C,IAAUpgD,EAAIL,EAAE8oB,EAAEhjB,EAAI9F,EAAE0wB,EAAE5qB,GAAK26C,MAC5GzgD,EAAE8oB,EAAI9oB,EAAE0wB,EAAI,KACZ4qC,EAAM6B,OAAOz9D,EAAG,GAGtB,CA6VY09D,CAAyBH,GA9erC,SAAmCxrB,GAEjC,IADA,IAAgF4rB,EAAIC,EAAInG,EAAIG,EAAwDiG,EAAMC,EAAWC,EAAWC,EAAYn5C,EAAO9iB,EAA/LqhD,EAAKrR,EAAO,GAAG,GAAIsR,EAAKtR,EAAO,GAAG,GAAIuR,EAAKvR,EAAO,GAAG,GAAIwR,EAAKxR,EAAO,GAAG,GAAoBksB,EAAQ3F,GAAsB4F,EAAQD,EAAM7/D,OACrI8/D,KAEL,IADAL,EAAOI,EAAMC,KACCL,EAAKM,UAInB,IAFAH,GADAD,EAAYF,EAAKjC,OACMx9D,OACvB0/D,EAAY,EACLA,EAAYE,GACiBvG,GAAlC11D,EAAMg8D,EAAUD,GAAW/7D,OAAgBoE,EAAGyxD,EAAK71D,EAAIqE,EACFu3D,GAArD94C,EAAQk5C,IAAYD,EAAYE,GAAYn5C,SAAoB1e,EAAGy3D,EAAK/4C,EAAMze,GAC1EzF,EAAI82D,EAAKkG,GAAM5c,IAAUpgD,EAAIi3D,EAAKgG,GAAM7c,MAC1Cgd,EAAUN,OAAOK,EAAW,EAAG,IAAIlB,GAAwBC,GAAgCgB,EAAK9E,KAAMh3D,EAAKpB,EAAI82D,EAAKrU,GAAMrC,IAAUwC,EAAKqU,EAAK7W,GAAS,CACrJ56C,EAAGi9C,EACHh9C,EAAGzF,EAAIg9D,EAAKva,GAAMrC,GAAS6c,EAAKra,GAC9B5iD,EAAIi3D,EAAKrU,GAAMxC,IAAUsC,EAAKoU,EAAK1W,GAAS,CAC9C56C,EAAGxF,EAAIi9D,EAAKra,GAAMxC,GAAS4c,EAAKta,EAChCj9C,EAAGm9C,GACD5iD,EAAI82D,EAAKpU,GAAMtC,IAAU6W,EAAKtU,EAAKvC,GAAS,CAC9C56C,EAAGk9C,EACHj9C,EAAGzF,EAAIg9D,EAAKta,GAAMtC,GAAS6c,EAAKta,GAC9B3iD,EAAIi3D,EAAKtU,GAAMvC,IAAU0W,EAAKrU,EAAKrC,GAAS,CAC9C56C,EAAGxF,EAAIi9D,EAAKta,GAAMvC,GAAS4c,EAAKva,EAChCh9C,EAAGk9C,GACD,MAAOua,EAAK9E,KAAM,SACpBiF,EAIV,CAid4CI,CAA0Bb,IACpE,IAAIc,EAAU,CACZJ,MAAO3F,GACPsD,MAAOvD,IAGT,OADAE,GAAyBE,GAAyBJ,GAAuBC,GAAuB,KACzF+F,CACT,CACA,SAASb,GAA2Bp0C,EAAG4H,GACrC,OAAOA,EAAE5qB,EAAIgjB,EAAEhjB,GAAK4qB,EAAE7qB,EAAIijB,EAAEjjB,CAC9B,CAjgBAw1D,GAAoBx8D,UAAUg/D,QAAU,WAEtC,IADA,IAA0DrF,EAAtDiF,EAAYhgE,KAAK69D,MAAOkC,EAAYC,EAAU3/D,OAC3C0/D,MACLhF,EAAOiF,EAAUD,GAAWhF,MAClB9nC,GAAM8nC,EAAK1vC,GAAG20C,EAAUN,OAAOK,EAAW,GAGtD,OADAC,EAAU1uC,KAAKwsC,IACRkC,EAAU3/D,MACnB,EAyQAw+D,GAAwBz9D,UAAY,CAClC0lB,MAAO,WACL,OAAO9mB,KAAK+6D,KAAK3vC,IAAMprB,KAAKg7D,KAAOh7D,KAAK+6D,KAAK1vC,EAAIrrB,KAAK+6D,KAAK9nC,CAC7D,EACAjvB,IAAK,WACH,OAAOhE,KAAK+6D,KAAK3vC,IAAMprB,KAAKg7D,KAAOh7D,KAAK+6D,KAAK9nC,EAAIjzB,KAAK+6D,KAAK1vC,CAC7D,GAQF0zC,GAA4B39D,UAAY,CACtCI,OAAQ,SAAS++D,EAAO57D,GACtB,IAAIE,EAAQ27D,EAASC,EACrB,GAAIF,EAAO,CAKT,GAJA57D,EAAK82D,EAAI8E,EACT57D,EAAKuyD,EAAIqJ,EAAMrJ,EACXqJ,EAAMrJ,IAAGqJ,EAAMrJ,EAAEuE,EAAI92D,GACzB47D,EAAMrJ,EAAIvyD,EACN47D,EAAM9D,EAAG,CAEX,IADA8D,EAAQA,EAAM9D,EACP8D,EAAMt5B,GAAGs5B,EAAQA,EAAMt5B,EAC9Bs5B,EAAMt5B,EAAItiC,CACZ,MACE47D,EAAM9D,EAAI93D,EAEZE,EAAS07D,CACX,MAAWvgE,KAAKkjC,GACdq9B,EAAQlB,GAA6Br/D,KAAKkjC,GAC1Cv+B,EAAK82D,EAAI,KACT92D,EAAKuyD,EAAIqJ,EACTA,EAAM9E,EAAI8E,EAAMt5B,EAAItiC,EACpBE,EAAS07D,IAET57D,EAAK82D,EAAI92D,EAAKuyD,EAAI,KAClBl3D,KAAKkjC,EAAIv+B,EACTE,EAAS,MAMX,IAJAF,EAAKsiC,EAAItiC,EAAK83D,EAAI,KAClB93D,EAAKq6D,EAAIn6D,EACTF,EAAKs6D,GAAI,EACTsB,EAAQ57D,EACDE,GAAUA,EAAOo6D,GAElBp6D,KADJ27D,EAAU37D,EAAOm6D,GACM/3B,GACrBw5B,EAAQD,EAAQ/D,IACHgE,EAAMxB,GACjBp6D,EAAOo6D,EAAIwB,EAAMxB,GAAI,EACrBuB,EAAQvB,GAAI,EACZsB,EAAQC,IAEJD,IAAU17D,EAAO43D,IACnByC,GAAkCl/D,KAAM6E,GAExCA,GADA07D,EAAQ17D,GACOm6D,GAEjBn6D,EAAOo6D,GAAI,EACXuB,EAAQvB,GAAI,EACZG,GAAmCp/D,KAAMwgE,KAG3CC,EAAQD,EAAQv5B,IACHw5B,EAAMxB,GACjBp6D,EAAOo6D,EAAIwB,EAAMxB,GAAI,EACrBuB,EAAQvB,GAAI,EACZsB,EAAQC,IAEJD,IAAU17D,EAAOoiC,IACnBm4B,GAAmCp/D,KAAM6E,GAEzCA,GADA07D,EAAQ17D,GACOm6D,GAEjBn6D,EAAOo6D,GAAI,EACXuB,EAAQvB,GAAI,EACZC,GAAkCl/D,KAAMwgE,IAG5C37D,EAAS07D,EAAMvB,EAEjBh/D,KAAKkjC,EAAE+7B,GAAI,CACb,EACA9nB,OAAQ,SAASxyC,GACXA,EAAKuyD,IAAGvyD,EAAKuyD,EAAEuE,EAAI92D,EAAK82D,GACxB92D,EAAK82D,IAAG92D,EAAK82D,EAAEvE,EAAIvyD,EAAKuyD,GAC5BvyD,EAAKuyD,EAAIvyD,EAAK82D,EAAI,KAClB,IAAqBiF,EAAwCt7D,EAAMiX,EAA/DxX,EAASF,EAAKq6D,EAAYxkC,EAAO71B,EAAKsiC,EAAG3M,EAAQ31B,EAAK83D,EAgC1D,GA7BKr3D,EAFAo1B,EACKF,EACE+kC,GAA6B/kC,GADjBE,EADNF,EAGdz1B,EACEA,EAAOoiC,IAAMtiC,EAAME,EAAOoiC,EAAI7hC,EAC7BP,EAAO43D,EAAIr3D,EAEhBpF,KAAKkjC,EAAI99B,EAEPo1B,GAAQF,GACVje,EAAMjX,EAAK65D,EACX75D,EAAK65D,EAAIt6D,EAAKs6D,EACd75D,EAAK6hC,EAAIzM,EACTA,EAAKwkC,EAAI55D,EACLA,IAASk1B,GACXz1B,EAASO,EAAK45D,EACd55D,EAAK45D,EAAIr6D,EAAKq6D,EACdr6D,EAAOS,EAAKq3D,EACZ53D,EAAOoiC,EAAItiC,EACXS,EAAKq3D,EAAIniC,EACTA,EAAM0kC,EAAI55D,IAEVA,EAAK45D,EAAIn6D,EACTA,EAASO,EACTT,EAAOS,EAAKq3D,KAGdpgD,EAAM1X,EAAKs6D,EACXt6D,EAAOS,GAELT,IAAMA,EAAKq6D,EAAIn6D,IACfwX,EACJ,GAAI1X,GAAQA,EAAKs6D,EACft6D,EAAKs6D,GAAI,MADX,CAIA,EAAG,CACD,GAAIt6D,IAAS3E,KAAKkjC,EAAG,MACrB,GAAIv+B,IAASE,EAAOoiC,GAQlB,IAPAy5B,EAAU77D,EAAO43D,GACLwC,IACVyB,EAAQzB,GAAI,EACZp6D,EAAOo6D,GAAI,EACXC,GAAkCl/D,KAAM6E,GACxC67D,EAAU77D,EAAO43D,GAEfiE,EAAQz5B,GAAKy5B,EAAQz5B,EAAEg4B,GAAKyB,EAAQjE,GAAKiE,EAAQjE,EAAEwC,EAAG,CACnDyB,EAAQjE,GAAMiE,EAAQjE,EAAEwC,IAC3ByB,EAAQz5B,EAAEg4B,GAAI,EACdyB,EAAQzB,GAAI,EACZG,GAAmCp/D,KAAM0gE,GACzCA,EAAU77D,EAAO43D,GAEnBiE,EAAQzB,EAAIp6D,EAAOo6D,EACnBp6D,EAAOo6D,EAAIyB,EAAQjE,EAAEwC,GAAI,EACzBC,GAAkCl/D,KAAM6E,GACxCF,EAAO3E,KAAKkjC,EACZ,KACF,OASA,IAPAw9B,EAAU77D,EAAOoiC,GACLg4B,IACVyB,EAAQzB,GAAI,EACZp6D,EAAOo6D,GAAI,EACXG,GAAmCp/D,KAAM6E,GACzC67D,EAAU77D,EAAOoiC,GAEfy5B,EAAQz5B,GAAKy5B,EAAQz5B,EAAEg4B,GAAKyB,EAAQjE,GAAKiE,EAAQjE,EAAEwC,EAAG,CACnDyB,EAAQz5B,GAAMy5B,EAAQz5B,EAAEg4B,IAC3ByB,EAAQjE,EAAEwC,GAAI,EACdyB,EAAQzB,GAAI,EACZC,GAAkCl/D,KAAM0gE,GACxCA,EAAU77D,EAAOoiC,GAEnBy5B,EAAQzB,EAAIp6D,EAAOo6D,EACnBp6D,EAAOo6D,EAAIyB,EAAQz5B,EAAEg4B,GAAI,EACzBG,GAAmCp/D,KAAM6E,GACzCF,EAAO3E,KAAKkjC,EACZ,KACF,CAEFw9B,EAAQzB,GAAI,EACZt6D,EAAOE,EACPA,EAASA,EAAOm6D,CAClB,QAAUr6D,EAAKs6D,GACXt6D,IAAMA,EAAKs6D,GAAI,EAlDnB,CAmDF,GAkEFjtB,EAAG4mB,KAAK+H,QAAU,SAASx5D,GACzB,IAAIiB,EAAIkwD,GAAgBjwD,EAAIkwD,GAAgBO,EAAK1wD,EAAG2wD,EAAK1wD,EAAGu4D,EAAaC,GACzE,GAAI15D,EAAQ,OAAOw5D,EAAQx5D,GAC3B,SAASw5D,EAAQhkB,GACf,IAAImkB,EAAW,IAAIj3D,MAAM8yC,EAAKt8C,QAASglD,EAAKub,EAAW,GAAG,GAAIrb,EAAKqb,EAAW,GAAG,GAAItb,EAAKsb,EAAW,GAAG,GAAIpb,EAAKob,EAAW,GAAG,GAQ/H,OAPAtB,GAAgBC,EAAM5iB,GAAOikB,GAAYV,MAAM3+D,SAAQ,SAASu+D,EAAM79D,GACpE,IAAI47D,EAAQiC,EAAKjC,MAAO7C,EAAO8E,EAAK9E,MAAgB8F,EAAS7+D,GAAK47D,EAAMx9D,OAASw9D,EAAMv0D,KAAI,SAAS/G,GAClG,IAAI4oB,EAAI5oB,EAAEukB,QACV,MAAO,CAACqE,EAAE/iB,EAAG+iB,EAAE9iB,EACjB,IAAK2yD,EAAK5yD,GAAKi9C,GAAM2V,EAAK5yD,GAAKk9C,GAAM0V,EAAK3yD,GAAKk9C,GAAMyV,EAAK3yD,GAAKm9C,EAAK,CAAC,CAACH,EAAIG,GAAK,CAACF,EAAIE,GAAK,CAACF,EAAIC,GAAK,CAACF,EAAIE,IAAO,IACvG7E,MAAQ/D,EAAK16C,EACvB,IACO6+D,CACT,CACA,SAASvB,EAAM5iB,GACb,OAAOA,EAAKrzC,KAAI,SAAS2K,EAAGhS,GAC1B,MAAO,CACLmG,EAAGvF,KAAK+b,MAAMk6C,EAAG7kD,EAAGhS,GAAK+gD,IAAUA,GACnC36C,EAAGxF,KAAK+b,MAAMm6C,EAAG9kD,EAAGhS,GAAK+gD,IAAUA,GACnC/gD,IAEJ,GACF,CA0CA,OAzCA0+D,EAAQI,MAAQ,SAASpkB,GACvB,OAAO2iB,GAAgBC,EAAM5iB,IAAOkhB,MAAMxxC,QAAO,SAAS0uC,GACxD,OAAOA,EAAK3vC,GAAK2vC,EAAK1sC,CACxB,IAAG/kB,KAAI,SAASyxD,GACd,MAAO,CACLj9B,OAAQ6e,EAAKoe,EAAK3vC,EAAEnpB,GACpBikB,OAAQy2B,EAAKoe,EAAK1sC,EAAEpsB,GAExB,GACF,EACA0+D,EAAQK,UAAY,SAASrkB,GAC3B,IAAIqkB,EAAY,GAahB,OAZA1B,GAAgBC,EAAM5iB,IAAOujB,MAAM3+D,SAAQ,SAASu+D,EAAM79D,GAExD,IADA,IAA2Gg/D,EA+B5E51C,EAAG4H,EAAG+O,EA/BjCg5B,EAAO8E,EAAK9E,KAAM6C,EAAQiC,EAAKjC,MAAMvsC,KAAKwsC,IAA+B51D,GAAK,EAAG4qB,EAAI+qC,EAAMx9D,OAAgBg5C,EAAKwkB,EAAM/qC,EAAI,GAAGioC,KAAMmG,EAAK7nB,EAAGjuB,IAAM4vC,EAAO3hB,EAAGhrB,EAAIgrB,EAAGjuB,IAC7JljB,EAAI4qB,GAEXmuC,EAAKC,EAELA,GADA7nB,EAAKwkB,EAAM31D,GAAG6yD,MACN3vC,IAAM4vC,EAAO3hB,EAAGhrB,EAAIgrB,EAAGjuB,EAC3BnpB,EAAIg/D,EAAGh/D,GAAKA,EAAIi/D,EAAGj/D,IAyBSgxB,EAzB8BguC,EAyB3Bj/B,EAzB+Bk/B,IAyBrC71C,EAzB2B2vC,GA0BpD5yD,EAAI45B,EAAE55B,IAAM6qB,EAAE5qB,EAAIgjB,EAAEhjB,IAAMgjB,EAAEjjB,EAAI6qB,EAAE7qB,IAAM45B,EAAE35B,EAAIgjB,EAAEhjB,GA1BoB,IACtE24D,EAAUpgE,KAAK,CAAC+7C,EAAK16C,GAAI06C,EAAKskB,EAAGh/D,GAAI06C,EAAKukB,EAAGj/D,IAGnD,IACO++D,CACT,EACAL,EAAQv4D,EAAI,SAAS86B,GACnB,OAAOl2B,UAAU3M,QAAUy4D,EAAKxE,GAAWlsD,EAAI86B,GAAIy9B,GAAWv4D,CAChE,EACAu4D,EAAQt4D,EAAI,SAAS66B,GACnB,OAAOl2B,UAAU3M,QAAU04D,EAAKzE,GAAWjsD,EAAI66B,GAAIy9B,GAAWt4D,CAChE,EACAs4D,EAAQC,WAAa,SAAS19B,GAC5B,OAAKl2B,UAAU3M,QACfugE,EAAkB,MAAL19B,EAAY29B,GAA4B39B,EAC9Cy9B,GAFuBC,IAAeC,GAA4B,KAAOD,CAGlF,EACAD,EAAQ14D,KAAO,SAASi7B,GACtB,OAAKl2B,UAAU3M,OACRsgE,EAAQC,WAAW19B,GAAK,CAAC,CAAC,EAAG,GAAIA,IADV09B,IAAeC,GAA4B,KAAOD,GAAcA,EAAW,EAE3G,EACOD,CACT,EACA,IAAIE,GAA4B,CAAC,EAAE,KAAM,KAAM,CAAC,IAAK,MAuHrD,SAASM,GAAwBltD,GAC/B,OAAOA,EAAE7L,CACX,CACA,SAASg5D,GAAwBntD,GAC/B,OAAOA,EAAE5L,CACX,CAUA,SAASg5D,GAAsB/1C,EAAG3mB,EAAM2gD,EAAIE,EAAIoa,EAAIC,GAClD,IAAKv0C,EAAE3mB,EAAM2gD,EAAIE,EAAIoa,EAAIC,GAAK,CAC5B,IAAIn+C,EAAiB,IAAX4jC,EAAKsa,GAAW0B,EAAiB,IAAX9b,EAAKqa,GAAW76D,EAAWL,EAAKrD,MAC5D0D,EAAS,IAAIq8D,GAAsB/1C,EAAGtmB,EAAS,GAAIsgD,EAAIE,EAAI9jC,EAAI4/C,GAC/Dt8D,EAAS,IAAIq8D,GAAsB/1C,EAAGtmB,EAAS,GAAI0c,EAAI8jC,EAAIoa,EAAI0B,GAC/Dt8D,EAAS,IAAIq8D,GAAsB/1C,EAAGtmB,EAAS,GAAIsgD,EAAIgc,EAAI5/C,EAAIm+C,GAC/D76D,EAAS,IAAIq8D,GAAsB/1C,EAAGtmB,EAAS,GAAI0c,EAAI4/C,EAAI1B,EAAIC,EACrE,CACF,CAmCA,SAAS0B,GAAkBl2C,EAAG4H,GAC5B5H,EAAI2mB,EAAGzmB,IAAIF,GACX4H,EAAI+e,EAAGzmB,IAAI0H,GACX,IAAIuuC,EAAKn2C,EAAEgD,EAAGozC,EAAKp2C,EAAE2X,EAAG0+B,EAAKr2C,EAAE4H,EAAG0uC,EAAK1uC,EAAE5E,EAAImzC,EAAII,EAAK3uC,EAAE+P,EAAIy+B,EAAII,EAAK5uC,EAAEA,EAAIyuC,EAC3E,OAAO,SAASnzC,GACd,MAAO,IAAM48B,GAAWtoD,KAAK+b,MAAM4iD,EAAKG,EAAKpzC,IAAM48B,GAAWtoD,KAAK+b,MAAM6iD,EAAKG,EAAKrzC,IAAM48B,GAAWtoD,KAAK+b,MAAM8iD,EAAKG,EAAKtzC,GAC3H,CACF,CAEA,SAASuzC,GAAqBz2C,EAAG4H,GAC/B,IAAoB9qB,EAAhBlG,EAAI,CAAC,EAAG+/B,EAAI,CAAC,EACjB,IAAK75B,KAAKkjB,EACJljB,KAAK8qB,EACPhxB,EAAEkG,GAAK45D,GAAe12C,EAAEljB,GAAI8qB,EAAE9qB,IAE9B65B,EAAE75B,GAAKkjB,EAAEljB,GAGb,IAAKA,KAAK8qB,EACF9qB,KAAKkjB,IACT2W,EAAE75B,GAAK8qB,EAAE9qB,IAGb,OAAO,SAASomB,GACd,IAAKpmB,KAAKlG,EAAG+/B,EAAE75B,GAAKlG,EAAEkG,GAAGomB,GACzB,OAAOyT,CACT,CACF,CAEA,SAASggC,GAAqB32C,EAAG4H,GAE/B,OADA5H,GAAKA,EAAG4H,GAAKA,EACN,SAAS1E,GACd,OAAOlD,GAAK,EAAIkD,GAAK0E,EAAI1E,CAC3B,CACF,CAEA,SAAS0zC,GAAqB52C,EAAG4H,GAC/B,IAAkFivC,EAAIC,EAAIC,EAAtFC,EAAKC,GAAuB3vD,UAAY4vD,GAAuB5vD,UAAY,EAAe1Q,GAAK,EAAGkpB,EAAI,GAAIggB,EAAI,GAElH,IADA9f,GAAQ,GAAI4H,GAAQ,IACZivC,EAAKI,GAAuB94D,KAAK6hB,MAAQ82C,EAAKI,GAAuB/4D,KAAKypB,MAC3EmvC,EAAKD,EAAGv+D,OAASy+D,IACpBD,EAAKnvC,EAAEhvB,MAAMo+D,EAAID,GACbj3C,EAAElpB,GAAIkpB,EAAElpB,IAAMmgE,EACbj3C,IAAIlpB,GAAKmgE,IAEXF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxBh3C,EAAElpB,GAAIkpB,EAAElpB,IAAMkgE,EACbh3C,IAAIlpB,GAAKkgE,GAEdh3C,IAAIlpB,GAAK,KACTkpC,EAAEvqC,KAAK,CACLqB,IACAmG,EAAG45D,GAAqBE,EAAIC,MAGhCE,EAAKE,GAAuB5vD,UAO9B,OALI0vD,EAAKpvC,EAAE5yB,SACT+hE,EAAKnvC,EAAEhvB,MAAMo+D,GACTl3C,EAAElpB,GAAIkpB,EAAElpB,IAAMmgE,EACbj3C,IAAIlpB,GAAKmgE,GAETj3C,EAAE9qB,OAAS,EAAI8qC,EAAE,IAAMlY,EAAIkY,EAAE,GAAG/iC,EAAG,SAASmmB,GACjD,OAAO0E,EAAE1E,GAAK,EAChB,GAAK,WACH,OAAO0E,CACT,GAAKA,EAAIkY,EAAE9qC,OAAQ,SAASkuB,GAC1B,IAAK,IAAYwT,EAAR+b,EAAK,EAAMA,EAAK7qB,IAAK6qB,EAAI3yB,GAAG4W,EAAIoJ,EAAE2S,IAAK77C,GAAK8/B,EAAE35B,EAAEmmB,GACzD,OAAOpD,EAAEtkB,KAAK,GAChB,EACF,CAnPAmrC,EAAG4mB,KAAK4J,SAAW,SAAS3J,GAC1B,OAAO7mB,EAAG4mB,KAAK+H,UAAUK,UAAUnI,EACrC,EACA7mB,EAAG4mB,KAAK6J,SAAW,SAASt7D,EAAQm+C,EAAIE,EAAIoa,EAAIC,GAC9C,IAA4Ch3D,EAAxCT,EAAIkwD,GAAgBjwD,EAAIkwD,GAC5B,GAAI1vD,EAASmE,UAAU3M,OAQrB,OAPA+H,EAAI+4D,GACJ94D,EAAI+4D,GACW,IAAXv4D,IACFg3D,EAAKra,EACLoa,EAAKta,EACLE,EAAKF,EAAK,GAELmd,EAASt7D,GAElB,SAASs7D,EAAS9lB,GAChB,IAAI1oC,EAA2Cqb,EAAIozC,EAAIzgE,EAAGkoB,EAAGw4C,EAAKC,EAAKC,EAAKC,EAArEhK,EAAKxE,GAAWlsD,GAAI2wD,EAAKzE,GAAWjsD,GAC3C,GAAU,MAANi9C,EACFqd,EAAMrd,EAAIsd,EAAMpd,EAAIqd,EAAMjD,EAAIkD,EAAMjD,OAKpC,GAHAgD,EAAMC,IAAQH,EAAMC,EAAM5rB,KAC1B1nB,EAAK,GAAIozC,EAAK,GACdv4C,EAAIwyB,EAAKt8C,OACLwI,EAAQ,IAAK5G,EAAI,EAAGA,EAAIkoB,IAAKloB,GAC/BgS,EAAI0oC,EAAK16C,IACHmG,EAAIu6D,IAAKA,EAAM1uD,EAAE7L,GACnB6L,EAAE5L,EAAIu6D,IAAKA,EAAM3uD,EAAE5L,GACnB4L,EAAE7L,EAAIy6D,IAAKA,EAAM5uD,EAAE7L,GACnB6L,EAAE5L,EAAIy6D,IAAKA,EAAM7uD,EAAE5L,GACvBinB,EAAG1uB,KAAKqT,EAAE7L,GACVs6D,EAAG9hE,KAAKqT,EAAE5L,QAEP,IAAKpG,EAAI,EAAGA,EAAIkoB,IAAKloB,EAAG,CAC3B,IAAI8gE,GAAMjK,EAAG7kD,EAAI0oC,EAAK16C,GAAIA,GAAI+gE,GAAMjK,EAAG9kD,EAAGhS,GACtC8gE,EAAKJ,IAAKA,EAAMI,GAChBC,EAAKJ,IAAKA,EAAMI,GAChBD,EAAKF,IAAKA,EAAME,GAChBC,EAAKF,IAAKA,EAAME,GACpB1zC,EAAG1uB,KAAKmiE,GACRL,EAAG9hE,KAAKoiE,EACV,CAEF,IAAIrgB,EAAKkgB,EAAMF,EAAK/f,EAAKkgB,EAAMF,EAG/B,SAASphE,EAAOy4C,EAAIsK,EAAImV,EAAIG,EAAIoJ,EAAKC,EAAKC,EAAKC,GAC7C,IAAI3vB,MAAMimB,KAAOjmB,MAAMomB,GACvB,GAAI5f,EAAGopB,KAAM,CACX,IAAIC,EAAKrpB,EAAG7xC,EAAGm7D,EAAKtpB,EAAG5xC,EACvB,GAAU,MAANi7D,EACF,GAAI1gE,EAAI0gE,EAAK5J,GAAM92D,EAAI2gE,EAAK1J,GAAM,IAChC2J,EAAYvpB,EAAIsK,EAAImV,EAAIG,EAAIoJ,EAAKC,EAAKC,EAAKC,OACtC,CACL,IAAIK,EAASxpB,EAAGyG,MAChBzG,EAAG7xC,EAAI6xC,EAAG5xC,EAAI4xC,EAAGyG,MAAQ,KACzB8iB,EAAYvpB,EAAIwpB,EAAQH,EAAIC,EAAIN,EAAKC,EAAKC,EAAKC,GAC/CI,EAAYvpB,EAAIsK,EAAImV,EAAIG,EAAIoJ,EAAKC,EAAKC,EAAKC,EAC7C,MAEAnpB,EAAG7xC,EAAIsxD,EAAIzf,EAAG5xC,EAAIwxD,EAAI5f,EAAGyG,MAAQ6D,CAErC,MACEif,EAAYvpB,EAAIsK,EAAImV,EAAIG,EAAIoJ,EAAKC,EAAKC,EAAKC,EAE/C,CACA,SAASI,EAAYvpB,EAAIsK,EAAImV,EAAIG,EAAIoJ,EAAKC,EAAKC,EAAKC,GAClD,IAAIM,EAAmB,IAAbT,EAAME,GAAYQ,EAAmB,IAAbT,EAAME,GAAY9oC,EAAQo/B,GAAMgK,EAAIE,EAAQ/J,GAAM8J,EAAI7lB,EAAK8lB,GAAS,EAAItpC,EAC1G2f,EAAGopB,MAAO,EAEN/oC,EAAO2oC,EAAMS,EACZP,EAAMO,EACPE,EAAOV,EAAMS,EACZP,EAAMO,EACXniE,EALAy4C,EAAKA,EAAG34C,MAAMw8C,KAAQ7D,EAAG34C,MAAMw8C,GAsD5B,CACLulB,MAAM,EACN/hE,MAAO,GACPo/C,MAAO,KACPt4C,EAAG,KACHC,EAAG,OAtDUk8C,EAAImV,EAAIG,EAAIoJ,EAAKC,EAAKC,EAAKC,EACxC,CA/BIzgB,EAAKC,EAAIkgB,EAAMF,EAAMjgB,EACpBkgB,EAAMF,EAAM/f,EA+BjB,IAAIh+C,EA+CC,CACLy+D,MAAM,EACN/hE,MAAO,GACPo/C,MAAO,KACPt4C,EAAG,KACHC,EAAG,KAnDHzD,IAAW,SAAS2/C,GAClB/iD,EAAOoD,EAAM2/C,GAAKuU,EAAGvU,IAAMtiD,IAAK82D,EAAGxU,EAAItiD,GAAI0gE,EAAKC,EAAKC,EAAKC,EAC5D,EACAl+D,MAAa,SAAS0mB,GACpB+1C,GAAsB/1C,EAAG1mB,EAAM+9D,EAAKC,EAAKC,EAAKC,EAChD,EACAl+D,KAAY,SAAS87C,GACnB,OAwDN,SAA8B97C,EAAMwD,EAAGC,EAAGg9C,EAAIE,EAAImU,EAAIG,GACpD,IAA6BgK,EAAzBC,EAAe9sB,IA8BnB,OA7BA,SAAU+sB,EAAKp/D,EAAM2gD,EAAIE,EAAIoa,EAAIC,GAC/B,KAAIva,EAAKoU,GAAMlU,EAAKqU,GAAM+F,EAAKva,GAAMwa,EAAKta,GAA1C,CACA,GAAI7E,EAAQ/7C,EAAK+7C,MAAO,CACtB,IAAIA,EAAOiC,EAAKv6C,EAAIzD,EAAKyD,EAAGw6C,EAAKv6C,EAAI1D,EAAK0D,EAAG27D,EAAYrhB,EAAKA,EAAKC,EAAKA,EACxE,GAAIohB,EAAYF,EAAc,CAC5B,IAAIG,EAAWphE,KAAK2xC,KAAKsvB,EAAeE,GACxC3e,EAAKj9C,EAAI67D,EAAU1e,EAAKl9C,EAAI47D,EAC5BvK,EAAKtxD,EAAI67D,EAAUpK,EAAKxxD,EAAI47D,EAC5BJ,EAAenjB,CACjB,CACF,CAEA,IADA,IAAI17C,EAAWL,EAAKrD,MAAOoiE,EAAiB,IAAXpe,EAAKsa,GAAW+D,EAAiB,IAAXne,EAAKqa,GACnD59D,GADuFoG,GAAKs7D,IAC/E,EADyDv7D,GAAKs7D,EACnDx7D,EAAIjG,EAAI,EAAGA,EAAIiG,IAAKjG,EACnD,GAAI0C,EAAOK,EAAa,EAAJ/C,GAAQ,OAAY,EAAJA,GAClC,KAAK,EACH8hE,EAAKp/D,EAAM2gD,EAAIE,EAAIke,EAAIC,GACvB,MACF,KAAK,EACHI,EAAKp/D,EAAM++D,EAAIle,EAAIoa,EAAI+D,GACvB,MACF,KAAK,EACHI,EAAKp/D,EAAM2gD,EAAIqe,EAAID,EAAI7D,GACvB,MACF,KAAK,EACHkE,EAAKp/D,EAAM++D,EAAIC,EAAI/D,EAAIC,GAvBuB,CA2BrD,CA5BD,CA4BGj7D,EAAMygD,EAAIE,EAAImU,EAAIG,GACdgK,CACT,CAxFaK,CAAqBt/D,EAAM87C,EAAM,GAAIA,EAAM,GAAIiiB,EAAKC,EAAKC,EAAKC,EACvE,GAEA,GADA7gE,GAAK,EACK,MAANqjD,EAAY,CACd,OAASrjD,EAAIkoB,GACX3oB,EAAOoD,EAAM+3C,EAAK16C,GAAIqtB,EAAGrtB,GAAIygE,EAAGzgE,GAAI0gE,EAAKC,EAAKC,EAAKC,KAEnD7gE,CACJ,MAAO06C,EAAKp7C,QAAQqD,EAAK89B,KAEzB,OADApT,EAAKozC,EAAK/lB,EAAO1oC,EAAI,KACdrP,CACT,CAmBA,OAlBA69D,EAASr6D,EAAI,SAAS86B,GACpB,OAAOl2B,UAAU3M,QAAU+H,EAAI86B,EAAGu/B,GAAYr6D,CAChD,EACAq6D,EAASp6D,EAAI,SAAS66B,GACpB,OAAOl2B,UAAU3M,QAAUgI,EAAI66B,EAAGu/B,GAAYp6D,CAChD,EACAo6D,EAASzuB,OAAS,SAAS9Q,GACzB,OAAKl2B,UAAU3M,QACN,MAAL6iC,EAAWoiB,EAAKE,EAAKoa,EAAKC,EAAK,MAC9Bva,GAAMpiB,EAAE,GAAG,GAAIsiB,GAAMtiB,EAAE,GAAG,GAAI08B,GAAM18B,EAAE,GAAG,GAAI28B,GAAM38B,EAAE,GAAG,IACtDu/B,GAH6B,MAANnd,EAAa,KAAO,CAAC,CAACA,EAAIE,GAAK,CAACoa,EAAIC,GAIpE,EACA4C,EAASx6D,KAAO,SAASi7B,GACvB,OAAKl2B,UAAU3M,QACN,MAAL6iC,EAAWoiB,EAAKE,EAAKoa,EAAKC,EAAK,MAC9Bva,EAAKE,EAAK,EAAGoa,GAAM18B,EAAE,GAAI28B,GAAM38B,EAAE,IAC/Bu/B,GAH6B,MAANnd,EAAa,KAAO,CAACsa,EAAKta,EAAIua,EAAKra,EAInE,EACOid,CACT,EA0DAzwB,EAAGmyB,eAAiB5C,GASpBvvB,EAAGoyB,kBAAoBtC,GAoBvB9vB,EAAGqyB,kBAAoBrC,GAOvBhwB,EAAGsyB,kBAAoBrC,GAoCvB,IAAIK,GAAyB,8CAA+CC,GAAyB,IAAIt4C,OAAOq4C,GAAuBxkC,OAAQ,KAE/I,SAASikC,GAAe12C,EAAG4H,GAEzB,IADA,IAAiC3H,EAA7BrpB,EAAI+vC,EAAGuyB,cAAclkE,SAChB4B,GAAK,KAAOqpB,EAAI0mB,EAAGuyB,cAActiE,GAAGopB,EAAG4H,MAChD,OAAO3H,CACT,CAMA,SAASk5C,GAAoBn5C,EAAG4H,GAC9B,IAAqFhxB,EAAjFmG,EAAI,GAAI45B,EAAI,GAAIyiC,EAAKp5C,EAAEhrB,OAAQqkE,EAAKzxC,EAAE5yB,OAAQ49C,EAAKp7C,KAAK8mB,IAAI0B,EAAEhrB,OAAQ4yB,EAAE5yB,QAC5E,IAAK4B,EAAI,EAAGA,EAAIg8C,IAAMh8C,EAAGmG,EAAExH,KAAKmhE,GAAe12C,EAAEppB,GAAIgxB,EAAEhxB,KACvD,KAAOA,EAAIwiE,IAAMxiE,EAAG+/B,EAAE//B,GAAKopB,EAAEppB,GAC7B,KAAOA,EAAIyiE,IAAMziE,EAAG+/B,EAAE//B,GAAKgxB,EAAEhxB,GAC7B,OAAO,SAASssB,GACd,IAAKtsB,EAAI,EAAGA,EAAIg8C,IAAMh8C,EAAG+/B,EAAE//B,GAAKmG,EAAEnG,GAAGssB,GACrC,OAAOyT,CACT,CACF,CApBAgQ,EAAG2yB,YAAc5C,GAMjB/vB,EAAGuyB,cAAgB,CAAC,SAASl5C,EAAG4H,GAC9B,IAAI1E,SAAW0E,EACf,OAAc,WAAN1E,EAAiBi9B,GAAa/8B,IAAIwE,EAAEliB,gBAAkB,oBAAoBsW,KAAK4L,GAAKsuC,GAAoBU,GAAuBhvC,aAAa81B,GAAWwY,GAAoB13D,MAAMiI,QAAQmhB,GAAKuxC,GAA4B,WAANj2C,GAAkBklB,MAAMxgB,GAAK6uC,GAAuBE,IAAsB32C,EAAG4H,EAC3S,GACA+e,EAAG4yB,iBAAmBJ,GAWtB,IAAIK,GAAkB,WACpB,OAAOruB,CACT,EACIsuB,GAAU9yB,EAAG1oC,IAAI,CACnBy7D,OAAQF,GACRG,KA+DF,SAAsBziE,GACpB,OAAO,SAASgsB,GACd,OAAO1rB,KAAK4jD,IAAIl4B,EAAGhsB,EACrB,CACF,EAlEE0iE,KAAM,WACJ,OAAOC,EACT,EACAC,MAAO,WACL,OAAOC,EACT,EACAhb,IAAK,WACH,OAAOib,EACT,EACAzhB,IAAK,WACH,OAAO0hB,EACT,EACArK,OAAQ,WACN,OAAOsK,EACT,EACAC,QA6DF,SAAyBn6C,EAAG0H,GAC1B,IAAI5H,EAIJ,OAHIne,UAAU3M,OAAS,IAAG0yB,EAAI,KAC1B/lB,UAAU3M,OAAQ8qB,EAAI4H,EAAIqwB,GAASvgD,KAAK6gD,KAAK,EAAIr4B,IAChDA,EAAI,EAAGF,EAAI4H,EAAI,GACb,SAASxE,GACd,OAAO,EAAIlD,EAAIxoB,KAAK4jD,IAAI,GAAI,GAAKl4B,GAAK1rB,KAAKunD,KAAK77B,EAAIpD,GAAKi4B,GAASrwB,EACpE,CACF,EApEE0yC,KAqEF,SAAsBt6C,GAEpB,OADKA,IAAGA,EAAI,SACL,SAASoD,GACd,OAAOA,EAAIA,IAAMpD,EAAI,GAAKoD,EAAIpD,EAChC,CACF,EAzEEu6C,OAAQ,WACN,OAAOC,EACT,IAEEC,GAAe5zB,EAAG1oC,IAAI,CACxB,GAAMktC,EACNqvB,IAAKC,GACL,SAAUC,GACV,SAAU,SAASz6C,GACjB,OAAOy6C,GAAgBD,GAAgBx6C,GACzC,IAaF,SAASw6C,GAAgBx6C,GACvB,OAAO,SAASiD,GACd,OAAO,EAAIjD,EAAE,EAAIiD,EACnB,CACF,CACA,SAASw3C,GAAgBz6C,GACvB,OAAO,SAASiD,GACd,MAAO,IAAOA,EAAI,GAAMjD,EAAE,EAAIiD,GAAK,EAAIjD,EAAE,EAAI,EAAIiD,GACnD,CACF,CACA,SAAS22C,GAAa32C,GACpB,OAAOA,EAAIA,CACb,CACA,SAAS62C,GAAc72C,GACrB,OAAOA,EAAIA,EAAIA,CACjB,CACA,SAASy3C,GAAmBz3C,GAC1B,GAAIA,GAAK,EAAG,OAAO,EACnB,GAAIA,GAAK,EAAG,OAAO,EACnB,IAAI03C,EAAM13C,EAAIA,EAAG23C,EAAMD,EAAM13C,EAC7B,OAAO,GAAKA,EAAI,GAAM23C,EAAM,GAAK33C,EAAI03C,GAAOC,EAAM,IACpD,CAMA,SAASb,GAAY92C,GACnB,OAAO,EAAI1rB,KAAKsnD,IAAI57B,EAAI+0B,GAC1B,CACA,SAASgiB,GAAY/2C,GACnB,OAAO1rB,KAAK4jD,IAAI,EAAG,IAAMl4B,EAAI,GAC/B,CACA,SAASg3C,GAAeh3C,GACtB,OAAO,EAAI1rB,KAAK2xC,KAAK,EAAIjmB,EAAIA,EAC/B,CAgBA,SAASo3C,GAAep3C,GACtB,OAAOA,EAAI,EAAI,KAAO,OAASA,EAAIA,EAAIA,EAAI,EAAI,KAAO,QAAUA,GAAK,IAAM,MAAQA,EAAI,IAAOA,EAAI,IAAM,KAAO,QAAUA,GAAK,KAAO,MAAQA,EAAI,MAAS,QAAUA,GAAK,MAAQ,MAAQA,EAAI,OAC/L,CAqCA,SAAS43C,GAAoB96C,EAAG4H,GAE9B,OADAA,GAAK5H,EACE,SAASkD,GACd,OAAO1rB,KAAK+b,MAAMyM,EAAI4H,EAAI1E,EAC5B,CACF,CAWA,SAAS63C,GAAatzC,GACpB,IA0B2BzH,EAAG4H,EAAG9qB,EA1B7By8C,EAAK,CAAC9xB,EAAEzH,EAAGyH,EAAEG,GAAI4xB,EAAK,CAAC/xB,EAAEkP,EAAGlP,EAAE7e,GAAIoyD,EAAKC,GAAsB1hB,GAAK2hB,EAAKC,GAAgB5hB,EAAIC,GAAK4hB,EAAKH,KA0B9Ej7C,EA1BwHw5B,GA2BjJ,KAD+B18C,GA1B2Ho+D,IA0B9HtzC,EA1ByH2xB,GA2BzI,GACdv5B,EAAE,IAAMljB,EAAI8qB,EAAE,GACP5H,KA7B6J,EAChKu5B,EAAG,GAAKC,EAAG,GAAKA,EAAG,GAAKD,EAAG,KAC7BA,EAAG,KAAO,EACVA,EAAG,KAAO,EACVyhB,IAAO,EACPE,IAAO,GAETvmE,KAAK0mE,QAAUL,EAAKxjE,KAAKioD,MAAMlG,EAAG,GAAIA,EAAG,IAAM/hD,KAAKioD,OAAOjG,EAAG,GAAIA,EAAG,KAAOrB,GAC5ExjD,KAAK+mD,UAAY,CAACj0B,EAAEvwB,EAAGuwB,EAAExH,GACzBtrB,KAAK0P,MAAQ,CAAC22D,EAAII,GAClBzmE,KAAK2mE,KAAOF,EAAK5jE,KAAKioD,MAAMyb,EAAIE,GAAMjjB,GAAa,CACrD,CAIA,SAASgjB,GAAgBn7C,EAAG4H,GAC1B,OAAO5H,EAAE,GAAK4H,EAAE,GAAK5H,EAAE,GAAK4H,EAAE,EAChC,CACA,SAASqzC,GAAsBj7C,GAC7B,IAAIljB,EAAItF,KAAK2xC,KAAKgyB,GAAgBn7C,EAAGA,IAKrC,OAJIljB,IACFkjB,EAAE,IAAMljB,EACRkjB,EAAE,IAAMljB,GAEHA,CACT,CA/IA6pC,EAAG40B,KAAO,SAASr4B,GACjB,IAKqBjjB,EALjBrpB,EAAIssC,EAAM7qC,QAAQ,KAAM6qB,EAAItsB,GAAK,EAAIssC,EAAMtqC,MAAM,EAAGhC,GAAKssC,EAAOzb,EAAI7wB,GAAK,EAAIssC,EAAMtqC,MAAMhC,EAAI,GAAK,KAGtG,OAFAssB,EAAIu2C,GAAQ/7D,IAAIwlB,IAAMs2C,GACtB/xC,EAAI8yC,GAAa78D,IAAI+pB,IAAM0jB,EAGNlrB,EAFAwH,EAAEvE,EAAElhB,MAAM,KAAM4kC,EAAcnoC,KAAKkD,UAAW,KAG5D,SAASuhB,GACd,OAAOA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAIjD,EAAEiD,EACrC,CAJF,EA4DAyjB,EAAG60B,eACH,SAA2Bx7C,EAAG4H,GAC5B5H,EAAI2mB,EAAGgY,IAAI3+B,GACX4H,EAAI+e,EAAGgY,IAAI/2B,GACX,IAAI6zC,EAAKz7C,EAAEvY,EAAGi0D,EAAK17C,EAAE2W,EAAGglC,EAAK37C,EAAED,EAAG67C,EAAKh0C,EAAEngB,EAAIg0D,EAAII,EAAKj0C,EAAE+O,EAAI+kC,EAAII,EAAKl0C,EAAE7H,EAAI47C,EAK3E,OAJIvzB,MAAMyzB,KAAKA,EAAK,EAAGH,EAAKtzB,MAAMszB,GAAM9zC,EAAE+O,EAAI+kC,GAC1CtzB,MAAMwzB,IAAKA,EAAK,EAAGH,EAAKrzB,MAAMqzB,GAAM7zC,EAAEngB,EAAIg0D,GACrCG,EAAK,IAAKA,GAAM,IAChBA,GAAM,MAAKA,GAAM,KACnB,SAAS14C,GACd,OAAO27B,GAAW4c,EAAKG,EAAK14C,EAAGw4C,EAAKG,EAAK34C,EAAGy4C,EAAKG,EAAK54C,GAAK,EAC7D,CACF,EACAyjB,EAAGo1B,eACH,SAA2B/7C,EAAG4H,GAC5B5H,EAAI2mB,EAAGmX,IAAI99B,GACX4H,EAAI+e,EAAGmX,IAAIl2B,GACX,IAAI6zC,EAAKz7C,EAAEvY,EAAGsG,EAAKiS,EAAEF,EAAG67C,EAAK37C,EAAED,EAAG67C,EAAKh0C,EAAEngB,EAAIg0D,EAAI1E,EAAKnvC,EAAE9H,EAAI/R,EAAI+tD,EAAKl0C,EAAE7H,EAAI47C,EAK3E,OAJIvzB,MAAM2uB,KAAKA,EAAK,EAAGhpD,EAAKq6B,MAAMr6B,GAAM6Z,EAAE9H,EAAI/R,GAC1Cq6B,MAAMwzB,IAAKA,EAAK,EAAGH,EAAKrzB,MAAMqzB,GAAM7zC,EAAEngB,EAAIg0D,GACrCG,EAAK,IAAKA,GAAM,IAChBA,GAAM,MAAKA,GAAM,KACnB,SAAS14C,GACd,OAAO86B,GAAWyd,EAAKG,EAAK14C,EAAGnV,EAAKgpD,EAAK7zC,EAAGy4C,EAAKG,EAAK54C,GAAK,EAC7D,CACF,EACAyjB,EAAGq1B,eACH,SAA2Bh8C,EAAG4H,GAC5B5H,EAAI2mB,EAAGsY,IAAIj/B,GACX4H,EAAI+e,EAAGsY,IAAIr3B,GACX,IAAI+zC,EAAK37C,EAAED,EAAGk8C,EAAKj8C,EAAEA,EAAGq2C,EAAKr2C,EAAE4H,EAAGk0C,EAAKl0C,EAAE7H,EAAI47C,EAAIO,EAAKt0C,EAAE5H,EAAIi8C,EAAIzF,EAAK5uC,EAAEA,EAAIyuC,EAC3E,OAAO,SAASnzC,GACd,OAAOo8B,GAAWqc,EAAKG,EAAK54C,EAAG+4C,EAAKC,EAAKh5C,EAAGmzC,EAAKG,EAAKtzC,GAAK,EAC7D,CACF,EACAyjB,EAAGw1B,iBAAmBrB,GAOtBn0B,EAAGvf,UAAY,SAAS5gB,GACtB,IAAImxB,EAAIoP,EAAYiK,gBAAgBrK,EAAGuJ,GAAGpyC,OAAO8xC,IAAK,KACtD,OAAQjJ,EAAGvf,UAAY,SAASg1C,GAC9B,GAAe,MAAXA,EAAiB,CACnBzkC,EAAEphC,aAAa,YAAa6lE,GAC5B,IAAIl5C,EAAIyU,EAAEvQ,UAAUi1C,QAAQC,aAC9B,CACA,OAAO,IAAIvB,GAAa73C,EAAIA,EAAEinB,OAASoyB,GACzC,GAAG/1D,EACL,EAcAu0D,GAAahlE,UAAUmM,SAAW,WAChC,MAAO,aAAevN,KAAK+mD,UAAY,WAAa/mD,KAAK0mE,OAAS,UAAY1mE,KAAK2mE,KAAO,UAAY3mE,KAAK0P,MAAQ,GACrH,EAiBA,IAAIk4D,GAAuB,CACzBv8C,EAAG,EACH4H,EAAG,EACH+O,EAAG,EACH/tB,EAAG,EACH1R,EAAG,EACH+oB,EAAG,GAGL,SAASu8C,GAA2B18C,GAClC,OAAOA,EAAE9qB,OAAS8qB,EAAEiwC,MAAQ,IAAM,EACpC,CAmDA,SAAS0M,GAAwBz8C,EAAG4H,GAClC,IAAI9H,EAAI,GAAIggB,EAAI,GAOhB,OANA9f,EAAI2mB,EAAGvf,UAAUpH,GAAI4H,EAAI+e,EAAGvf,UAAUQ,GApDxC,SAAiC80C,EAAIC,EAAI78C,EAAGggB,GAC1C,GAAI48B,EAAG,KAAOC,EAAG,IAAMD,EAAG,KAAOC,EAAG,GAAI,CACtC,IAAI/lE,EAAIkpB,EAAEvqB,KAAK,aAAc,KAAM,IAAK,KAAM,KAC9CuqC,EAAEvqC,KAAK,CACLqB,EAAGA,EAAI,EACPmG,EAAG45D,GAAqB+F,EAAG,GAAIC,EAAG,KACjC,CACD/lE,EAAGA,EAAI,EACPmG,EAAG45D,GAAqB+F,EAAG,GAAIC,EAAG,KAEtC,MAAWA,EAAG,IAAMA,EAAG,KACrB78C,EAAEvqB,KAAK,aAAeonE,EAAK,IAE/B,CAwCEC,CAAwB58C,EAAE07B,UAAW9zB,EAAE8zB,UAAW57B,EAAGggB,GAvCvD,SAA8B+8B,EAAIC,EAAIh9C,EAAGggB,GACnC+8B,IAAOC,GACLD,EAAKC,EAAK,IAAKA,GAAM,IAChBA,EAAKD,EAAK,MAAKA,GAAM,KAC9B/8B,EAAEvqC,KAAK,CACLqB,EAAGkpB,EAAEvqB,KAAKinE,GAA2B18C,GAAK,UAAW,KAAM,KAAO,EAClE/iB,EAAG45D,GAAqBkG,EAAIC,MAErBA,GACTh9C,EAAEvqB,KAAKinE,GAA2B18C,GAAK,UAAYg9C,EAAK,IAE5D,CA6BEC,CAAqB/8C,EAAEq7C,OAAQzzC,EAAEyzC,OAAQv7C,EAAGggB,GA5B9C,SAA4Bk9B,EAAIC,EAAIn9C,EAAGggB,GACjCk9B,IAAOC,EACTn9B,EAAEvqC,KAAK,CACLqB,EAAGkpB,EAAEvqB,KAAKinE,GAA2B18C,GAAK,SAAU,KAAM,KAAO,EACjE/iB,EAAG45D,GAAqBqG,EAAIC,KAErBA,GACTn9C,EAAEvqB,KAAKinE,GAA2B18C,GAAK,SAAWm9C,EAAK,IAE3D,CAoBEC,CAAmBl9C,EAAEs7C,KAAM1zC,EAAE0zC,KAAMx7C,EAAGggB,GAnBxC,SAA6Bq9B,EAAIC,EAAIt9C,EAAGggB,GACtC,GAAIq9B,EAAG,KAAOC,EAAG,IAAMD,EAAG,KAAOC,EAAG,GAAI,CACtC,IAAIxmE,EAAIkpB,EAAEvqB,KAAKinE,GAA2B18C,GAAK,SAAU,KAAM,IAAK,KAAM,KAC1EggB,EAAEvqC,KAAK,CACLqB,EAAGA,EAAI,EACPmG,EAAG45D,GAAqBwG,EAAG,GAAIC,EAAG,KACjC,CACDxmE,EAAGA,EAAI,EACPmG,EAAG45D,GAAqBwG,EAAG,GAAIC,EAAG,KAEtC,MAAqB,IAAVA,EAAG,IAAsB,IAAVA,EAAG,IAC3Bt9C,EAAEvqB,KAAKinE,GAA2B18C,GAAK,SAAWs9C,EAAK,IAE3D,CAOEC,CAAoBr9C,EAAE3b,MAAOujB,EAAEvjB,MAAOyb,EAAGggB,GACzC9f,EAAI4H,EAAI,KACD,SAAS1E,GAEd,IADA,IAA0BwT,EAAtB9/B,GAAK,EAAGkoB,EAAIghB,EAAE9qC,SACT4B,EAAIkoB,GAAGgB,GAAG4W,EAAIoJ,EAAElpC,IAAIA,GAAK8/B,EAAE35B,EAAEmmB,GACtC,OAAOpD,EAAEtkB,KAAK,GAChB,CACF,CACA,SAAS8hE,GAAuBt9C,EAAG4H,GAEjC,OADAA,GAAKA,GAAK5H,GAAKA,IAAM,EAAI4H,EAClB,SAAS7qB,GACd,OAAQA,EAAIijB,GAAK4H,CACnB,CACF,CACA,SAAS21C,GAAsBv9C,EAAG4H,GAEhC,OADAA,GAAKA,GAAK5H,GAAKA,IAAM,EAAI4H,EAClB,SAAS7qB,GACd,OAAOvF,KAAK6mB,IAAI,EAAG7mB,KAAK8mB,IAAI,GAAIvhB,EAAIijB,GAAK4H,GAC3C,CACF,CASA,SAAS41C,GAAqBC,GAE5B,IADA,IAAIhiD,EAAQgiD,EAAKhrC,OAAQ95B,EAAM8kE,EAAK5iD,OAAQ6iD,EAsB9C,SAA6C19C,EAAG4H,GAC9C,GAAI5H,IAAM4H,EAAG,OAAO5H,EAEpB,IADA,IAAI29C,EAASC,GAA0B59C,GAAI69C,EAASD,GAA0Bh2C,GAAIk2C,EAAQH,EAAO5N,MAAOgO,EAAQF,EAAO9N,MAAOiO,EAAa,KACpIF,IAAUC,GACfC,EAAaF,EACbA,EAAQH,EAAO5N,MACfgO,EAAQF,EAAO9N,MAEjB,OAAOiO,CACT,CA/BoDC,CAAoCxiD,EAAO9iB,GAAMmD,EAAS,CAAC2f,GACtGA,IAAUiiD,GACfjiD,EAAQA,EAAMjiB,OACdsC,EAAOvG,KAAKkmB,GAGd,IADA,IAAI3e,EAAIhB,EAAO9G,OACR2D,IAAQ+kE,GACb5hE,EAAOu4D,OAAOv3D,EAAG,EAAGnE,GACpBA,EAAMA,EAAIa,OAEZ,OAAOsC,CACT,CACA,SAAS8hE,GAA0BtkE,GAEjC,IADA,IAAI4kE,EAAY,GAAI1kE,EAASF,EAAKE,OACjB,MAAVA,GACL0kE,EAAU3oE,KAAK+D,GACfA,EAAOE,EACPA,EAASA,EAAOA,OAGlB,OADA0kE,EAAU3oE,KAAK+D,GACR4kE,CACT,CAyVA,SAASC,GAAyBv1D,GAChCA,EAAEw1D,OAAS,CACb,CACA,SAASC,GAAuBz1D,GAC9BA,EAAEw1D,QAAS,CACb,CACA,SAASE,GAAyB11D,GAChCA,EAAEw1D,OAAS,EACXx1D,EAAEmjB,GAAKnjB,EAAE7L,EAAG6L,EAAEojB,GAAKpjB,EAAE5L,CACvB,CACA,SAASuhE,GAAwB31D,GAC/BA,EAAEw1D,QAAS,CACb,CACA,SAASI,GAA0B5E,EAAM57C,EAAOygD,GAC9C,IAAIjhB,EAAK,EAAGC,EAAK,EAEjB,GADAmc,EAAK8E,OAAS,GACT9E,EAAK5B,KAER,IADA,IAAkDrhC,EAA9C1gC,EAAQ2jE,EAAK3jE,MAAO6oB,EAAI7oB,EAAMjB,OAAQ4B,GAAK,IACtCA,EAAIkoB,GAEF,OADT6X,EAAI1gC,EAAMW,MAEV4nE,GAA0B7nC,EAAG3Y,EAAOygD,GACpC7E,EAAK8E,QAAU/nC,EAAE+nC,OACjBlhB,GAAM7mB,EAAE+nC,OAAS/nC,EAAE6mB,GACnBC,GAAM9mB,EAAE+nC,OAAS/nC,EAAE8mB,IAGvB,GAAImc,EAAKvkB,MAAO,CACTukB,EAAK5B,OACR4B,EAAKvkB,MAAMt4C,GAAKvF,KAAKqyC,SAAW,GAChC+vB,EAAKvkB,MAAMr4C,GAAKxF,KAAKqyC,SAAW,IAElC,IAAI/sC,EAAIkhB,EAAQygD,EAAQ7E,EAAKvkB,MAAM98C,OACnCqhE,EAAK8E,QAAU9E,EAAK+E,YAAc7hE,EAClC0gD,GAAM1gD,EAAI88D,EAAKvkB,MAAMt4C,EACrB0gD,GAAM3gD,EAAI88D,EAAKvkB,MAAMr4C,CACvB,CACA48D,EAAKpc,GAAKA,EAAKoc,EAAK8E,OACpB9E,EAAKnc,GAAKA,EAAKmc,EAAK8E,MACtB,CA9eA/3B,EAAGi4B,qBAAuBnC,GAgF1B91B,EAAGk4B,OAAS,CAAC,EACbl4B,EAAGk4B,OAAOC,OAAS,WACjB,OAAO,SAASpJ,GAEd,IADA,IAAIqJ,EAAQ,GAAInoE,GAAK,EAAGkoB,EAAI42C,EAAM1gE,SACzB4B,EAAIkoB,GAAGigD,EAAMxpE,KAAKioE,GAAqB9H,EAAM9+D,KACtD,OAAOmoE,CACT,CACF,EAkCAp4B,EAAGk4B,OAAOG,MAAQ,WAChB,IAAgBC,EAAQ3wB,EAAQnE,EAAQrrB,EAAgBogD,EAAYC,EAAeC,EAA/EJ,EAAQ,CAAC,EAA8B11C,EAAU,EACrD,SAAS+1C,IACP,IAAkFviE,EAAGC,EAAGi9C,EAAIpjD,EAAGiG,EAA3F0yC,EAAY,CAAC,EAAG+vB,EAAY,GAAIC,EAAa54B,EAAG8E,MAAM3sB,GAAI0gD,EAAgB,GAI9E,IAHAP,EAAS,GACT3wB,EAAS,GACTxxC,EAAI,EAAGlG,GAAK,IACHA,EAAIkoB,GAAG,CAEd,IADA/hB,EAAI,EAAGF,GAAK,IACHA,EAAIiiB,GACX/hB,GAAKotC,EAAOvzC,GAAGiG,GAEjByiE,EAAU/pE,KAAKwH,GACfyiE,EAAcjqE,KAAKoxC,EAAG8E,MAAM3sB,IAC5BhiB,GAAKC,CACP,CAeA,IAdImiE,GACFK,EAAWt5C,MAAK,SAASjG,EAAG4H,GAC1B,OAAOs3C,EAAWI,EAAUt/C,GAAIs/C,EAAU13C,GAC5C,IAEEu3C,GACFK,EAActpE,SAAQ,SAAS0S,EAAG6pC,GAChC7pC,EAAEqd,MAAK,SAASjG,EAAG4H,GACjB,OAAOu3C,EAAch1B,EAAOsI,GAAIzyB,GAAImqB,EAAOsI,GAAI7qB,GACjD,GACF,IAEF9qB,GAAKi7C,GAASzuB,EAAUxK,GAAKhiB,EAC7BC,EAAI,EAAGnG,GAAK,IACHA,EAAIkoB,GAAG,CAEd,IADAk7B,EAAKj9C,EAAGF,GAAK,IACJA,EAAIiiB,GAAG,CACd,IAAI2gD,EAAKF,EAAW3oE,GAAI8oE,EAAKF,EAAcC,GAAI5iE,GAAIo6B,EAAIkT,EAAOs1B,GAAIC,GAAKC,EAAK5iE,EAAG6iE,EAAK7iE,GAAKk6B,EAAIn6B,EAC7FyyC,EAAUkwB,EAAK,IAAMC,GAAM,CACzBnnE,MAAOknE,EACPI,SAAUH,EACVI,WAAYH,EACZI,SAAUH,EACV7nE,MAAOk/B,EAEX,CACAqX,EAAOmxB,GAAM,CACXlnE,MAAOknE,EACPK,WAAY9lB,EACZ+lB,SAAUhjE,EACVhF,MAAOunE,EAAUG,IAEnB1iE,GAAKusB,CACP,CAEA,IADA1yB,GAAK,IACIA,EAAIkoB,GAEX,IADAjiB,EAAIjG,EAAI,IACCiG,EAAIiiB,GAAG,CACd,IAAI2T,EAAS8c,EAAU34C,EAAI,IAAMiG,GAAIge,EAAS00B,EAAU1yC,EAAI,IAAMjG,IAC9D67B,EAAO16B,OAAS8iB,EAAO9iB,QACzBknE,EAAO1pE,KAAKk9B,EAAO16B,MAAQ8iB,EAAO9iB,MAAQ,CACxC06B,OAAQ5X,EACRA,OAAQ4X,GACN,CACFA,SACA5X,UAGN,CAEEukD,GAAYY,GAClB,CACA,SAASA,IACPf,EAAOh5C,MAAK,SAASjG,EAAG4H,GACtB,OAAOw3C,GAAYp/C,EAAEyS,OAAO16B,MAAQioB,EAAEnF,OAAO9iB,OAAS,GAAI6vB,EAAE6K,OAAO16B,MAAQ6vB,EAAE/M,OAAO9iB,OAAS,EAC/F,GACF,CAuCA,OAtCAinE,EAAM70B,OAAS,SAASptC,GACtB,OAAK4E,UAAU3M,QACf8pB,GAAKqrB,EAASptC,IAAMotC,EAAOn1C,OAC3BiqE,EAAS3wB,EAAS,KACX0wB,GAHuB70B,CAIhC,EACA60B,EAAM11C,QAAU,SAASvsB,GACvB,OAAK4E,UAAU3M,QACfs0B,EAAUvsB,EACVkiE,EAAS3wB,EAAS,KACX0wB,GAHuB11C,CAIhC,EACA01C,EAAME,WAAa,SAASniE,GAC1B,OAAK4E,UAAU3M,QACfkqE,EAAaniE,EACbkiE,EAAS3wB,EAAS,KACX0wB,GAHuBE,CAIhC,EACAF,EAAMG,cAAgB,SAASpiE,GAC7B,OAAK4E,UAAU3M,QACfmqE,EAAgBpiE,EAChBkiE,EAAS,KACFD,GAHuBG,CAIhC,EACAH,EAAMI,WAAa,SAASriE,GAC1B,OAAK4E,UAAU3M,QACfoqE,EAAariE,EACTkiE,GAAQe,IACLhB,GAHuBI,CAIhC,EACAJ,EAAMC,OAAS,WAEb,OADKA,GAAQI,IACNJ,CACT,EACAD,EAAM1wB,OAAS,WAEb,OADKA,GAAQ+wB,IACN/wB,CACT,EACO0wB,CACT,EACAr4B,EAAGk4B,OAAOoB,MAAQ,WAChB,IAA6Dh8B,EAAsBuS,EAAMx4B,EAAqOkiD,EAAWC,EAAW1B,EAAhVwB,EAAQ,CAAC,EAAG5lD,EAAQssB,EAAGwG,SAAS,QAAS,OAAQ,OAAevwC,EAAO,CAAC,EAAG,GAAiBwjE,EAAW,GAAKC,EAAeC,GAA6BC,EAAeC,GAA6B9B,GAAU,GAAI+B,EAAkBC,GAAgCC,EAAU,GAAKC,EAAS,IAAM3qE,EAAQ,GAAIy/D,EAAQ,GAC1T,SAASmL,EAAQvnE,GACf,OAAO,SAASsgE,EAAM3f,EAAIpiB,EAAG08B,GAC3B,GAAIqF,EAAKvkB,QAAU/7C,EAAM,CACvB,IAAIg+C,EAAKsiB,EAAKpc,GAAKlkD,EAAKyD,EAAGw6C,EAAKqiB,EAAKnc,GAAKnkD,EAAK0D,EAAG8jE,EAAKvM,EAAKta,EAAI8mB,EAAKzpB,EAAKA,EAAKC,EAAKA,EACpF,GAAIupB,EAAKA,EAAKF,EAASG,EAAI,CACzB,GAAIA,EAAKN,EAAiB,CACxB,IAAI3jE,EAAI88D,EAAK8E,OAASqC,EACtBznE,EAAKyyB,IAAMurB,EAAKx6C,EAChBxD,EAAK0yB,IAAMurB,EAAKz6C,CAClB,CACA,OAAO,CACT,CACI88D,EAAKvkB,OAAS0rB,GAAMA,EAAKN,IACvB3jE,EAAI88D,EAAK+E,YAAcoC,EAC3BznE,EAAKyyB,IAAMurB,EAAKx6C,EAChBxD,EAAK0yB,IAAMurB,EAAKz6C,EAEpB,CACA,OAAQ88D,EAAK8E,MACf,CACF,CAiMA,SAASsC,EAASp4D,GAChBA,EAAEmjB,GAAK4a,EAAGtsB,MAAMtd,EAAG6L,EAAEojB,GAAK2a,EAAGtsB,MAAMrd,EACnCijE,EAAMgB,QACR,CACA,OApMAhB,EAAMiB,KAAO,WACX,IAAKljD,GAAS,KAAQ,KAMpB,OALAimB,EAAQ,KACR5pB,EAAM1hB,IAAI,CACRc,KAAM,MACNukB,MAAOA,EAAQ,KAEV,EAET,IAAwC8hB,EAAGlpC,EAAG8/B,EAAG5W,EAAGoD,EAAGnD,EAAGjjB,EAAGC,EAAGC,EAA5D8hB,EAAI7oB,EAAMjB,OAAQyyB,EAAIiuC,EAAM1gE,OAChC,IAAK4B,EAAI,EAAGA,EAAI6wB,IAAK7wB,EAEnBkpB,GADA4W,EAAIg/B,EAAM9+D,IACJ67B,QAIF1S,GAFJhjB,GADAmmB,EAAIwT,EAAE7b,QACA9d,EAAI+iB,EAAE/iB,GAEAA,GADZC,EAAIkmB,EAAElmB,EAAI8iB,EAAE9iB,GACQA,KAElBD,GADAgjB,EAAI/B,EAAQmiD,EAAUvpE,KAAOmpB,EAAIvoB,KAAK2xC,KAAKppB,IAAMmgD,EAAUtpE,IAAMmpB,EAEjE/iB,GAAK+iB,EACLmD,EAAEnmB,GAAKA,GAAKD,EAAIgjB,EAAEqhD,OAASj+C,EAAEi+C,OAASrhD,EAAEqhD,QAAUrhD,EAAEqhD,OAASj+C,EAAEi+C,QAAU,IACzEj+C,EAAElmB,GAAKA,EAAIF,EACXgjB,EAAE/iB,GAAKA,GAAKD,EAAI,EAAIA,GACpBgjB,EAAE9iB,GAAKA,EAAIF,GAGf,IAAIA,EAAIkhB,EAAQ2iD,KACd5jE,EAAIH,EAAK,GAAK,EACdI,EAAIJ,EAAK,GAAK,EACdhG,GAAK,EACDkG,GAAG,OAASlG,EAAIkoB,IAClB4X,EAAIzgC,EAAMW,IACRmG,IAAMA,EAAI25B,EAAE35B,GAAKD,EACnB45B,EAAE15B,IAAMA,EAAI05B,EAAE15B,GAAKF,EAGvB,GAAI4hE,EAGF,IAFAF,GAA0B1+B,EAAI6G,EAAG4mB,KAAK6J,SAASnhE,GAAQ+nB,EAAOygD,GAC9D7nE,GAAK,IACIA,EAAIkoB,IACL4X,EAAIzgC,EAAMW,IAAIwnE,OAClBt+B,EAAEshC,MAAMP,EAAQnqC,IAKtB,IADA9/B,GAAK,IACIA,EAAIkoB,IACX4X,EAAIzgC,EAAMW,IACJwnE,OACJ1nC,EAAE35B,EAAI25B,EAAE3K,GACR2K,EAAE15B,EAAI05B,EAAE1K,KAER0K,EAAE35B,IAAM25B,EAAE3K,IAAM2K,EAAE3K,GAAK2K,EAAE35B,IAAMqjE,EAC/B1pC,EAAE15B,IAAM05B,EAAE1K,IAAM0K,EAAE1K,GAAK0K,EAAE15B,IAAMojE,GAGnC/lD,EAAM6mD,KAAK,CACTznE,KAAM,OACNukB,SAEJ,EACAiiD,EAAMhqE,MAAQ,SAAS8G,GACrB,OAAK4E,UAAU3M,QACfiB,EAAQ8G,EACDkjE,GAFuBhqE,CAGhC,EACAgqE,EAAMvK,MAAQ,SAAS34D,GACrB,OAAK4E,UAAU3M,QACf0gE,EAAQ34D,EACDkjE,GAFuBvK,CAGhC,EACAuK,EAAMrjE,KAAO,SAASG,GACpB,OAAK4E,UAAU3M,QACf4H,EAAOG,EACAkjE,GAFuBrjE,CAGhC,EACAqjE,EAAMI,aAAe,SAAStjE,GAC5B,OAAK4E,UAAU3M,QACfqrE,EAA4B,oBAANtjE,EAAmBA,GAAKA,EACvCkjE,GAFuBI,CAGhC,EACAJ,EAAMrH,SAAWqH,EAAMI,aACvBJ,EAAMM,aAAe,SAASxjE,GAC5B,OAAK4E,UAAU3M,QACfurE,EAA4B,oBAANxjE,EAAmBA,GAAKA,EACvCkjE,GAFuBM,CAGhC,EACAN,EAAMG,SAAW,SAASrjE,GACxB,OAAK4E,UAAU3M,QACforE,GAAYrjE,EACLkjE,GAFuBG,CAGhC,EACAH,EAAMvB,OAAS,SAAS3hE,GACtB,OAAK4E,UAAU3M,QACf0pE,EAAsB,oBAAN3hE,EAAmBA,GAAKA,EACjCkjE,GAFuBvB,CAGhC,EACAuB,EAAMoB,eAAiB,SAAStkE,GAC9B,OAAK4E,UAAU3M,QACfyrE,EAAkB1jE,EAAIA,EACfkjE,GAFuBzoE,KAAK2xC,KAAKs3B,EAG1C,EACAR,EAAMU,QAAU,SAAS5jE,GACvB,OAAK4E,UAAU3M,QACf2rE,GAAW5jE,EACJkjE,GAFuBU,CAGhC,EACAV,EAAMqB,MAAQ,SAASvkE,GACrB,OAAK4E,UAAU3M,QACf4rE,EAAS7jE,EAAIA,EACNkjE,GAFuBzoE,KAAK2xC,KAAKy3B,EAG1C,EACAX,EAAMjiD,MAAQ,SAASjhB,GACrB,OAAK4E,UAAU3M,QACf+H,GAAKA,EACDihB,EACEjhB,EAAI,EACNihB,EAAQjhB,GAERknC,EAAMtN,EAAI,KAAMsN,EAAM/gB,EAAIqV,IAAK0L,EAAQ,KACvC5pB,EAAM1hB,IAAI,CACRc,KAAM,MACNukB,MAAOA,EAAQ,KAGVjhB,EAAI,IACbsd,EAAMoB,MAAM,CACVhiB,KAAM,QACNukB,MAAOA,EAAQjhB,IAEjBknC,EAAQyoB,GAASuT,EAAMiB,OAElBjB,GAnBuBjiD,CAoBhC,EACAiiD,EAAMxkD,MAAQ,WACZ,IAAI7kB,EAAiE2qE,EAAW7qC,EAAzE5X,EAAI7oB,EAAMjB,OAAQyyB,EAAIiuC,EAAM1gE,OAAQuiC,EAAI36B,EAAK,GAAI6K,EAAI7K,EAAK,GACjE,IAAKhG,EAAI,EAAGA,EAAIkoB,IAAKloB,GAClB8/B,EAAIzgC,EAAMW,IAAI2B,MAAQ3B,EACvB8/B,EAAEyqC,OAAS,EAEb,IAAKvqE,EAAI,EAAGA,EAAI6wB,IAAK7wB,EAEI,iBADvB8/B,EAAIg/B,EAAM9+D,IACG67B,SAAoBiE,EAAEjE,OAASx8B,EAAMygC,EAAEjE,SAC7B,iBAAZiE,EAAE7b,SAAoB6b,EAAE7b,OAAS5kB,EAAMygC,EAAE7b,WAClD6b,EAAEjE,OAAO0uC,SACTzqC,EAAE7b,OAAOsmD,OAEb,IAAKvqE,EAAI,EAAGA,EAAIkoB,IAAKloB,EACnB8/B,EAAIzgC,EAAMW,GACNwxC,MAAM1R,EAAE35B,KAAI25B,EAAE35B,EAAI5D,EAAS,IAAKo+B,IAChC6Q,MAAM1R,EAAE15B,KAAI05B,EAAE15B,EAAI7D,EAAS,IAAKsO,IAChC2gC,MAAM1R,EAAE3K,MAAK2K,EAAE3K,GAAK2K,EAAE35B,GACtBqrC,MAAM1R,EAAE1K,MAAK0K,EAAE1K,GAAK0K,EAAE15B,GAG5B,GADAkjE,EAAY,GACgB,oBAAjBG,EAA6B,IAAKzpE,EAAI,EAAGA,EAAI6wB,IAAK7wB,EAAGspE,EAAUtpE,IAAMypE,EAAa5hE,KAAK9J,KAAM+gE,EAAM9+D,GAAIA,QAC7G,IAAKA,EAAI,EAAGA,EAAI6wB,IAAK7wB,EAAGspE,EAAUtpE,GAAKypE,EAE5C,GADAF,EAAY,GACgB,oBAAjBI,EAA6B,IAAK3pE,EAAI,EAAGA,EAAI6wB,IAAK7wB,EAAGupE,EAAUvpE,IAAM2pE,EAAa9hE,KAAK9J,KAAM+gE,EAAM9+D,GAAIA,QAC7G,IAAKA,EAAI,EAAGA,EAAI6wB,IAAK7wB,EAAGupE,EAAUvpE,GAAK2pE,EAE5C,GADA9B,EAAU,GACY,oBAAXC,EAAuB,IAAK9nE,EAAI,EAAGA,EAAIkoB,IAAKloB,EAAG6nE,EAAQ7nE,IAAM8nE,EAAOjgE,KAAK9J,KAAMsB,EAAMW,GAAIA,QAC/F,IAAKA,EAAI,EAAGA,EAAIkoB,IAAKloB,EAAG6nE,EAAQ7nE,GAAK8nE,EAC1C,SAASvlE,EAASqoE,EAAWC,GAC3B,IAAKF,EAAW,CAEd,IADAA,EAAY,IAAI/iE,MAAMsgB,GACjBjiB,EAAI,EAAGA,EAAIiiB,IAAKjiB,EACnB0kE,EAAU1kE,GAAK,GAEjB,IAAKA,EAAI,EAAGA,EAAI4qB,IAAK5qB,EAAG,CACtB,IAAI6kE,EAAKhM,EAAM74D,GACf0kE,EAAUG,EAAGjvC,OAAOl6B,OAAOhD,KAAKmsE,EAAG7mD,QACnC0mD,EAAUG,EAAG7mD,OAAOtiB,OAAOhD,KAAKmsE,EAAGjvC,OACrC,CACF,CAEA,IADA,IAA8D11B,EAA1D4kE,EAAaJ,EAAU3qE,GAAIiG,GAAK,EAAGkjB,EAAI4hD,EAAW3sE,SAC7C6H,EAAIkjB,OAAQqoB,MAAMrrC,EAAI4kE,EAAW9kE,GAAG2kE,IAAa,OAAOzkE,EACjE,OAAOvF,KAAKqyC,SAAW43B,CACzB,CACA,OAAOxB,EAAMgB,QACf,EACAhB,EAAMgB,OAAS,WACb,OAAOhB,EAAMjiD,MAAM,GACrB,EACAiiD,EAAMv0B,KAAO,WACX,OAAOu0B,EAAMjiD,MAAM,EACrB,EACAiiD,EAAMzpB,KAAO,WAEX,GADKA,IAAMA,EAAO7P,EAAGmG,SAAS0J,OAAOC,OAAOtL,GAAamC,GAAG,kBAAmB6wB,IAA0B7wB,GAAG,aAAc0zB,GAAU1zB,GAAG,gBAAiB+wB,MACnJ18D,UAAU3M,OAAQ,OAAOwhD,EAC9B7hD,KAAK24C,GAAG,kBAAmBgxB,IAA0BhxB,GAAG,iBAAkBixB,IAAyB9/D,KAAK+3C,EAC1G,EAKO7P,EAAGoG,OAAOkzB,EAAO5lD,EAAO,KACjC,EAyCA,IAAIimD,GAA8B,GAAIE,GAA8B,EAAGE,GAAiC/0B,IA2DxG,SAASi2B,GAA0BnxC,EAAQoxC,GAIzC,OAHAl7B,EAAGoG,OAAOtc,EAAQoxC,EAAW,OAAQ,WAAY,SACjDpxC,EAAOx6B,MAAQw6B,EACfA,EAAOilC,MAAQoM,GACRrxC,CACT,CACA,SAASsxC,GAA+BzoE,EAAM8B,GAE5C,IADA,IAAInF,EAAQ,CAACqD,GACkB,OAAvBA,EAAOrD,EAAM85D,QAEnB,GADA30D,EAAS9B,IACJK,EAAWL,EAAKK,YAAcmlB,EAAInlB,EAAS3E,QAE9C,IADA,IAAI8pB,EAAGnlB,IACEmlB,GAAK,GAAG7oB,EAAMV,KAAKoE,EAASmlB,GAG3C,CACA,SAASkjD,GAA8B1oE,EAAM8B,GAE3C,IADA,IAAInF,EAAQ,CAACqD,GAAO2oE,EAAS,GACE,OAAvB3oE,EAAOrD,EAAM85D,QAEnB,GADAkS,EAAO1sE,KAAK+D,IACPK,EAAWL,EAAKK,YAAcmlB,EAAInlB,EAAS3E,QAE9C,IADA,IAAY8pB,EAAGnlB,EAAX/C,GAAK,IACAA,EAAIkoB,GAAG7oB,EAAMV,KAAKoE,EAAS/C,IAGxC,KAAgC,OAAxB0C,EAAO2oE,EAAOlS,QACpB30D,EAAS9B,EAEb,CACA,SAAS4oE,GAA4Bt5D,GACnC,OAAOA,EAAEjP,QACX,CACA,SAASwoE,GAAyBv5D,GAChC,OAAOA,EAAE7Q,KACX,CACA,SAASqqE,GAAwBpiD,EAAG4H,GAClC,OAAOA,EAAE7vB,MAAQioB,EAAEjoB,KACrB,CACA,SAAS+pE,GAAyB7rE,GAChC,OAAO0wC,EAAGvd,MAAMnzB,EAAMgI,KAAI,SAASzE,GACjC,OAAQA,EAAOG,UAAY,IAAIsE,KAAI,SAASokE,GAC1C,MAAO,CACL5vC,OAAQj5B,EACRqhB,OAAQwnD,EAEZ,GACF,IACF,CAzGA17B,EAAGk4B,OAAOgD,UAAY,WACpB,IAAI57C,EAAOm8C,GAAyBzoE,EAAWuoE,GAA6BnqE,EAAQoqE,GACpF,SAASN,EAAUtoE,GACjB,IAAgCD,EAA5BgpE,EAAQ,CAAC/oE,GAAOtD,EAAQ,GAE5B,IADAsD,EAAK8yC,MAAQ,EACkB,OAAvB/yC,EAAOgpE,EAAMvS,QAEnB,GADA95D,EAAMV,KAAK+D,IACNipE,EAAS5oE,EAAS8E,KAAKojE,EAAWvoE,EAAMA,EAAK+yC,UAAYvtB,EAAIyjD,EAAOvtE,QAAS,CAEhF,IADA,IAAI8pB,EAAGyjD,EAAQF,IACNvjD,GAAK,GACZwjD,EAAM/sE,KAAK8sE,EAAQE,EAAOzjD,IAC1BujD,EAAM7oE,OAASF,EACf+oE,EAAMh2B,MAAQ/yC,EAAK+yC,MAAQ,EAEzBt0C,IAAOuB,EAAKvB,MAAQ,GACxBuB,EAAKK,SAAW4oE,CAClB,MACMxqE,IAAOuB,EAAKvB,OAASA,EAAM0G,KAAKojE,EAAWvoE,EAAMA,EAAK+yC,QAAU,UAC7D/yC,EAAKK,SAQhB,OALAqoE,GAA8BzoE,GAAM,SAASm5C,GAC3C,IAAI8vB,EAAShpE,EACTysB,IAASu8C,EAAU9vB,EAAM/4C,WAAW6oE,EAAQv8C,KAAKA,GACjDluB,IAAUyB,EAASk5C,EAAMl5C,UAASA,EAAOzB,OAAS26C,EAAM36C,MAC9D,IACO9B,CACT,CA6BA,OA5BA4rE,EAAU57C,KAAO,SAASlpB,GACxB,OAAK4E,UAAU3M,QACfixB,EAAOlpB,EACA8kE,GAFuB57C,CAGhC,EACA47C,EAAUloE,SAAW,SAASoD,GAC5B,OAAK4E,UAAU3M,QACf2E,EAAWoD,EACJ8kE,GAFuBloE,CAGhC,EACAkoE,EAAU9pE,MAAQ,SAASgF,GACzB,OAAK4E,UAAU3M,QACf+C,EAAQgF,EACD8kE,GAFuB9pE,CAGhC,EACA8pE,EAAUY,QAAU,SAASlpE,GAW3B,OAVIxB,IACFgqE,GAA+BxoE,GAAM,SAASD,GACxCA,EAAKK,WAAUL,EAAKvB,MAAQ,EAClC,IACAiqE,GAA8BzoE,GAAM,SAASD,GAC3C,IAAIE,EACCF,EAAKK,WAAUL,EAAKvB,OAASA,EAAM0G,KAAKojE,EAAWvoE,EAAMA,EAAK+yC,QAAU,IACzE7yC,EAASF,EAAKE,UAAQA,EAAOzB,OAASuB,EAAKvB,MACjD,KAEKwB,CACT,EACOsoE,CACT,EAiDAl7B,EAAGk4B,OAAO6D,UAAY,WACpB,IAAIb,EAAYl7B,EAAGk4B,OAAOgD,YAAajlE,EAAO,CAAC,EAAG,GAClD,SAASzD,EAASG,EAAMyD,EAAGu6C,EAAIC,GAC7B,IAAI59C,EAAWL,EAAKK,SAKpB,GAJAL,EAAKyD,EAAIA,EACTzD,EAAK0D,EAAI1D,EAAK+yC,MAAQkL,EACtBj+C,EAAKg+C,GAAKA,EACVh+C,EAAKi+C,GAAKA,EACN59C,IAAamlB,EAAInlB,EAAS3E,QAAS,CACrC,IAAY8pB,EAAG6X,EAAG/tB,EAAdhS,GAAK,EAET,IADA0gD,EAAKh+C,EAAKvB,MAAQu/C,EAAKh+C,EAAKvB,MAAQ,IAC3BnB,EAAIkoB,GACX3lB,EAASw9B,EAAIh9B,EAAS/C,GAAImG,EAAG6L,EAAI+tB,EAAE5+B,MAAQu/C,EAAIC,GAC/Cx6C,GAAK6L,CAET,CACF,CACA,SAASyjC,EAAM/yC,GACb,IAAIK,EAAWL,EAAKK,SAAUiP,EAAI,EAClC,GAAIjP,IAAamlB,EAAInlB,EAAS3E,QAE5B,IADA,IAAY8pB,EAARloB,GAAK,IACAA,EAAIkoB,GAAGlW,EAAIpR,KAAK6mB,IAAIzV,EAAGyjC,EAAM1yC,EAAS/C,KAEjD,OAAO,EAAIgS,CACb,CACA,SAAS85D,EAAU95D,EAAGhS,GACpB,IAAIX,EAAQ4rE,EAAUpjE,KAAK9J,KAAMiU,EAAGhS,GAEpC,OADAuC,EAASlD,EAAM,GAAI,EAAG2G,EAAK,GAAIA,EAAK,GAAKyvC,EAAMp2C,EAAM,KAC9CA,CACT,CAMA,OALAysE,EAAU9lE,KAAO,SAASG,GACxB,OAAK4E,UAAU3M,QACf4H,EAAOG,EACA2lE,GAFuB9lE,CAGhC,EACOglE,GAA0Bc,EAAWb,EAC9C,EACAl7B,EAAGk4B,OAAO8D,IAAM,WACd,IAAI5qE,EAAQooB,OAAQ8F,EAAO28C,GAA0B9C,EAAa,EAAGC,EAAWhoB,GAAQ8qB,EAAW,EACnG,SAASF,EAAIrxB,GACX,IAE2Zra,EAFvZnY,EAAIwyB,EAAKt8C,OAAQqqB,EAASiyB,EAAKrzC,KAAI,SAAS2K,EAAGhS,GACjD,OAAQmB,EAAM0G,KAAKkkE,EAAK/5D,EAAGhS,EAC7B,IAAIopB,IAA4B,oBAAf8/C,EAA4BA,EAAW99D,MAAMrN,KAAMgN,WAAam+D,GAAagD,GAA0B,oBAAb/C,EAA0BA,EAAS/9D,MAAMrN,KAAMgN,WAAao+D,GAAY//C,EAAG0H,EAAIlwB,KAAK8mB,IAAI9mB,KAAKD,IAAIurE,GAAMhkD,IAAyB,oBAAb+jD,EAA0BA,EAAS7gE,MAAMrN,KAAMgN,WAAakhE,IAAYE,EAAKr7C,GAAKo7C,EAAK,GAAK,EAAI,GAAIl6B,EAAMjC,EAAGiC,IAAIvpB,GAASviB,EAAI8rC,GAAOk6B,EAAKhkD,EAAIikD,GAAMn6B,EAAM,EAAGrwC,EAAQouC,EAAG8E,MAAM3sB,GAAIkkD,EAAO,GAevZ,OAdY,MAAR/8C,GAAc1tB,EAAM0tB,KAAKA,IAAS28C,GAA2B,SAAShsE,EAAGiG,GAC3E,OAAOwiB,EAAOxiB,GAAKwiB,EAAOzoB,EAC5B,EAAI,SAASA,EAAGiG,GACd,OAAOopB,EAAKqrB,EAAK16C,GAAI06C,EAAKz0C,GAC5B,GACAtE,EAAMrC,SAAQ,SAASU,GACrBosE,EAAKpsE,GAAK,CACR06C,KAAMA,EAAK16C,GACXmB,MAAOk/B,EAAI5X,EAAOzoB,GAClBkpE,WAAY9/C,EACZ+/C,SAAU//C,GAAKiX,EAAIn6B,EAAIimE,EACvBF,SAAUn7C,EAEd,IACOs7C,CACT,CA0BA,OAzBAL,EAAI5qE,MAAQ,SAAS8/B,GACnB,OAAKl2B,UAAU3M,QACf+C,EAAQ8/B,EACD8qC,GAFuB5qE,CAGhC,EACA4qE,EAAI18C,KAAO,SAAS4R,GAClB,OAAKl2B,UAAU3M,QACfixB,EAAO4R,EACA8qC,GAFuB18C,CAGhC,EACA08C,EAAI7C,WAAa,SAASjoC,GACxB,OAAKl2B,UAAU3M,QACf8qE,EAAajoC,EACN8qC,GAFuB7C,CAGhC,EACA6C,EAAI5C,SAAW,SAASloC,GACtB,OAAKl2B,UAAU3M,QACf+qE,EAAWloC,EACJ8qC,GAFuB5C,CAGhC,EACA4C,EAAIE,SAAW,SAAShrC,GACtB,OAAKl2B,UAAU3M,QACf6tE,EAAWhrC,EACJ8qC,GAFuBE,CAGhC,EACOF,CACT,EACA,IAAIC,GAA2B,CAAC,EA0DhC,SAASK,GAAiBr6D,GACxB,OAAOA,EAAE7L,CACX,CACA,SAASmmE,GAAiBt6D,GACxB,OAAOA,EAAE5L,CACX,CACA,SAASmmE,GAAmBv6D,EAAGsxC,EAAIl9C,GACjC4L,EAAEsxC,GAAKA,EACPtxC,EAAE5L,EAAIA,CACR,CAlEA2pC,EAAGk4B,OAAOyD,MAAQ,WAChB,IAAIjjD,EAAS8rB,EAAahnC,EAAQi/D,GAA6BpnE,EAASqnE,GAA2B7I,EAAM2I,GAAoBpmE,EAAIkmE,GAAkBjmE,EAAIkmE,GACvJ,SAASZ,EAAMhxB,EAAM/4C,GACnB,KAAMumB,EAAIwyB,EAAKt8C,QAAS,OAAOs8C,EAC/B,IAAIgyB,EAAShyB,EAAKrzC,KAAI,SAAS2K,EAAG6pC,GAChC,OAAOpzB,EAAO5gB,KAAK6jE,EAAO15D,EAAG6pC,EAC/B,IACI32C,EAASwnE,EAAOrlE,KAAI,SAAS2K,GAC/B,OAAOA,EAAE3K,KAAI,SAASg5B,EAAGwb,GACvB,MAAO,CAAC11C,EAAE0B,KAAK6jE,EAAOrrC,EAAGwb,GAAKz1C,EAAEyB,KAAK6jE,EAAOrrC,EAAGwb,GACjD,GACF,IACI8wB,EAASp/D,EAAM1F,KAAK6jE,EAAOxmE,EAAQvD,GACvC+qE,EAAS38B,EAAGmD,QAAQw5B,EAAQC,GAC5BznE,EAAS6qC,EAAGmD,QAAQhuC,EAAQynE,GAC5B,IAC0BzkD,EAAGloB,EAAGiG,EAAG65B,EAD/B8sC,EAAUxnE,EAAOyC,KAAK6jE,EAAOxmE,EAAQvD,GACrCkvB,EAAI67C,EAAO,GAAGtuE,OAClB,IAAK6H,EAAI,EAAGA,EAAI4qB,IAAK5qB,EAEnB,IADA29D,EAAI/7D,KAAK6jE,EAAOgB,EAAO,GAAGzmE,GAAI65B,EAAI8sC,EAAQ3mE,GAAIf,EAAO,GAAGe,GAAG,IACtDjG,EAAI,EAAGA,EAAIkoB,IAAKloB,EACnB4jE,EAAI/7D,KAAK6jE,EAAOgB,EAAO1sE,GAAGiG,GAAI65B,GAAK56B,EAAOlF,EAAI,GAAGiG,GAAG,GAAIf,EAAOlF,GAAGiG,GAAG,IAGzE,OAAOy0C,CACT,CA+BA,OA9BAgxB,EAAMjjD,OAAS,SAASk1C,GACtB,OAAK5yD,UAAU3M,QACfqqB,EAASk1C,EACF+N,GAFuBjjD,CAGhC,EACAijD,EAAMn+D,MAAQ,SAASowD,GACrB,OAAK5yD,UAAU3M,QACfmP,EAAsB,oBAAPowD,EAAoBA,EAAKkP,GAAsB/lE,IAAI62D,IAAO6O,GAClEd,GAFuBn+D,CAGhC,EACAm+D,EAAMtmE,OAAS,SAASu4D,GACtB,OAAK5yD,UAAU3M,QACfgH,EAAuB,oBAAPu4D,EAAoBA,EAAKmP,GAAuBhmE,IAAI62D,IAAO8O,GACpEf,GAFuBtmE,CAGhC,EACAsmE,EAAMvlE,EAAI,SAASE,GACjB,OAAK0E,UAAU3M,QACf+H,EAAIE,EACGqlE,GAFuBvlE,CAGhC,EACAulE,EAAMtlE,EAAI,SAASC,GACjB,OAAK0E,UAAU3M,QACfgI,EAAIC,EACGqlE,GAFuBtlE,CAGhC,EACAslE,EAAM9H,IAAM,SAASv9D,GACnB,OAAK0E,UAAU3M,QACfwlE,EAAMv9D,EACCqlE,GAFuB9H,CAGhC,EACO8H,CACT,EAWA,IAAImB,GAAwB98B,EAAG1oC,IAAI,CACjC,aAAc,SAASqzC,GACrB,IAAqB16C,EAAGiG,EAApBiiB,EAAIwyB,EAAKt8C,OAAcqpB,EAAMizB,EAAKrzC,IAAI0lE,IAA0BC,EAAOtyB,EAAKrzC,IAAI4lE,IAA2BtrE,EAAQouC,EAAG8E,MAAM3sB,GAAGmH,MAAK,SAASjG,EAAG4H,GAClJ,OAAOvJ,EAAI2B,GAAK3B,EAAIuJ,EACtB,IAAIoH,EAAM,EAAGE,EAAS,EAAG40C,EAAO,GAAIC,EAAU,GAC9C,IAAKntE,EAAI,EAAGA,EAAIkoB,IAAKloB,EACnBiG,EAAItE,EAAM3B,GACNo4B,EAAME,GACRF,GAAO40C,EAAK/mE,GACZinE,EAAKvuE,KAAKsH,KAEVqyB,GAAU00C,EAAK/mE,GACfknE,EAAQxuE,KAAKsH,IAGjB,OAAOknE,EAAQC,UAAUzkE,OAAOukE,EAClC,EACAE,QAAS,SAAS1yB,GAChB,OAAO3K,EAAG8E,MAAM6F,EAAKt8C,QAAQgvE,SAC/B,EACA,QAAWZ,KAETM,GAAyB/8B,EAAG1oC,IAAI,CAClCgmE,WAAY,SAAS3yB,GACnB,IAA6D16C,EAAGiG,EAAG65B,EAA/D5X,EAAIwyB,EAAKt8C,OAAQyyB,EAAI6pB,EAAK,GAAGt8C,OAAQ4uE,EAAO,GAAIvlD,EAAM,EAAY67B,EAAK,GAC3E,IAAKr9C,EAAI,EAAGA,EAAI4qB,IAAK5qB,EAAG,CACtB,IAAKjG,EAAI,EAAG8/B,EAAI,EAAG9/B,EAAIkoB,EAAGloB,IAAK8/B,GAAK4a,EAAK16C,GAAGiG,GAAG,GAC3C65B,EAAIrY,IAAKA,EAAMqY,GACnBktC,EAAKruE,KAAKmhC,EACZ,CACA,IAAK75B,EAAI,EAAGA,EAAI4qB,IAAK5qB,EACnBq9C,EAAGr9C,IAAMwhB,EAAMulD,EAAK/mE,IAAM,EAE5B,OAAOq9C,CACT,EACAgqB,OAAQ,SAAS5yB,GACf,IAAgD16C,EAAGiG,EAAGC,EAAG+4D,EAAIhnB,EAAIs1B,EAAI7sB,EAAI5gB,EAAG0tC,EAAxEtlD,EAAIwyB,EAAKt8C,OAAQ+H,EAAIu0C,EAAK,GAAI7pB,EAAI1qB,EAAE/H,OAAwCklD,EAAK,GAErF,IADAA,EAAG,GAAKxjB,EAAI0tC,EAAK,EACZvnE,EAAI,EAAGA,EAAI4qB,IAAK5qB,EAAG,CACtB,IAAKjG,EAAI,EAAGi/D,EAAK,EAAGj/D,EAAIkoB,IAAKloB,EAAGi/D,GAAMvkB,EAAK16C,GAAGiG,GAAG,GACjD,IAAKjG,EAAI,EAAGi4C,EAAK,EAAGyI,EAAKv6C,EAAEF,GAAG,GAAKE,EAAEF,EAAI,GAAG,GAAIjG,EAAIkoB,IAAKloB,EAAG,CAC1D,IAAKkG,EAAI,EAAGqnE,GAAM7yB,EAAK16C,GAAGiG,GAAG,GAAKy0C,EAAK16C,GAAGiG,EAAI,GAAG,KAAO,EAAIy6C,GAAKx6C,EAAIlG,IAAKkG,EACxEqnE,IAAO7yB,EAAKx0C,GAAGD,GAAG,GAAKy0C,EAAKx0C,GAAGD,EAAI,GAAG,IAAMy6C,EAE9CzI,GAAMs1B,EAAK7yB,EAAK16C,GAAGiG,GAAG,EACxB,CACAq9C,EAAGr9C,GAAK65B,GAAKm/B,EAAKhnB,EAAKgnB,EAAKve,EAAK,EAC7B5gB,EAAI0tC,IAAIA,EAAK1tC,EACnB,CACA,IAAK75B,EAAI,EAAGA,EAAI4qB,IAAK5qB,EAAGq9C,EAAGr9C,IAAMunE,EACjC,OAAOlqB,CACT,EACAmqB,OAAQ,SAAS/yB,GACf,IAAoD16C,EAAGiG,EAAG65B,EAAtD5X,EAAIwyB,EAAKt8C,OAAQyyB,EAAI6pB,EAAK,GAAGt8C,OAAQ8H,EAAI,EAAIgiB,EAAYo7B,EAAK,GAClE,IAAKr9C,EAAI,EAAGA,EAAI4qB,IAAK5qB,EAAG,CACtB,IAAKjG,EAAI,EAAG8/B,EAAI,EAAG9/B,EAAIkoB,EAAGloB,IAAK8/B,GAAK4a,EAAK16C,GAAGiG,GAAG,GAC/C,GAAI65B,EAAG,IAAK9/B,EAAI,EAAGA,EAAIkoB,EAAGloB,IAAK06C,EAAK16C,GAAGiG,GAAG,IAAM65B,OAC3C,IAAK9/B,EAAI,EAAGA,EAAIkoB,EAAGloB,IAAK06C,EAAK16C,GAAGiG,GAAG,GAAKC,CAC/C,CACA,IAAKD,EAAI,EAAGA,EAAI4qB,IAAK5qB,EAAGq9C,EAAGr9C,GAAK,EAChC,OAAOq9C,CACT,EACAoqB,KAAMjB,KAER,SAASD,GAA4B9xB,GACnC,OAAO3K,EAAG8E,MAAM6F,EAAKt8C,OACvB,CACA,SAASquE,GAA0B/xB,GAEjC,IADA,IAAIz0C,GAAK,EAAG4qB,EAAI6pB,EAAK,GAAGt8C,OAAQklD,EAAK,KAC5Br9C,EAAI4qB,GAAGyyB,EAAGr9C,GAAK,EACxB,OAAOq9C,CACT,CACA,SAASypB,GAAwB3qE,GAE/B,IADA,IAAmC8D,EAA/BlG,EAAI,EAAGiG,EAAI,EAAGo6B,EAAIj+B,EAAM,GAAG,GAAO8lB,EAAI9lB,EAAMhE,OACzC4B,EAAIkoB,IAAKloB,GACTkG,EAAI9D,EAAMpC,GAAG,IAAMqgC,IACtBp6B,EAAIjG,EACJqgC,EAAIn6B,GAGR,OAAOD,CACT,CACA,SAASgnE,GAAyBj7D,GAChC,OAAOA,EAAEkN,OAAOyuD,GAAoB,EACtC,CACA,SAASA,GAAmB78C,EAAG9e,GAC7B,OAAO8e,EAAI9e,EAAE,EACf,CA+CA,SAAS47D,GAA8B/4B,EAAOpsB,GAC5C,OAAOolD,GAA4Bh5B,EAAOj0C,KAAK8/B,KAAK9/B,KAAK2hD,IAAI95B,EAAOrqB,QAAUwC,KAAKklD,IAAM,GAC3F,CACA,SAAS+nB,GAA4Bh5B,EAAO3sB,GAE1C,IADA,IAAI/hB,GAAK,EAAG6qB,GAAK6jB,EAAM,GAAIhkB,GAAKgkB,EAAM,GAAK7jB,GAAK9I,EAAGmB,EAAI,KAC9CljB,GAAK+hB,GAAGmB,EAAEljB,GAAK0qB,EAAI1qB,EAAI6qB,EAChC,OAAO3H,CACT,CACA,SAASykD,GAAyBrlD,GAChC,MAAO,CAACsnB,EAAGroB,IAAIe,GAASsnB,EAAGtoB,IAAIgB,GACjC,CA0CA,SAASslD,GAAmB3kD,EAAG4H,GAC7B,OAAO5H,EAAEjoB,MAAQ6vB,EAAE7vB,KACrB,CACA,SAAS6sE,GAAqB5kD,EAAG4H,GAC/B,IAAI+O,EAAI3W,EAAE6kD,WACV7kD,EAAE6kD,WAAaj9C,EACfA,EAAEk9C,WAAa9kD,EACf4H,EAAEi9C,WAAaluC,EACfA,EAAEmuC,WAAal9C,CACjB,CACA,SAASm9C,GAAqB/kD,EAAG4H,GAC/B5H,EAAE6kD,WAAaj9C,EACfA,EAAEk9C,WAAa9kD,CACjB,CACA,SAASglD,GAAyBhlD,EAAG4H,GACnC,IAAI0vB,EAAK1vB,EAAE7qB,EAAIijB,EAAEjjB,EAAGw6C,EAAK3vB,EAAE5qB,EAAIgjB,EAAEhjB,EAAGioE,EAAKjlD,EAAEgD,EAAI4E,EAAE5E,EACjD,MAAO,KAAQiiD,EAAKA,EAAK3tB,EAAKA,EAAKC,EAAKA,CAC1C,CACA,SAAS2tB,GAAuB5rE,GAC9B,IAAMrD,EAAQqD,EAAKK,YAAemlB,EAAI7oB,EAAMjB,QAA5C,CACA,IAAIiB,EAA6E+pB,EAAG4H,EAAG+O,EAAG//B,EAAGiG,EAAGC,EAAGgiB,EAAxFqmD,EAAOx5B,IAAUy5B,GAAO,IAAWC,EAAO15B,IAAU25B,GAAO,IAYtE,GALArvE,EAAMC,QAAQqvE,KACdvlD,EAAI/pB,EAAM,IACR8G,GAAKijB,EAAEgD,EACThD,EAAEhjB,EAAI,EACNwoE,EAAMxlD,GACFlB,EAAI,KACN8I,EAAI3xB,EAAM,IACR8G,EAAI6qB,EAAE5E,EACR4E,EAAE5qB,EAAI,EACNwoE,EAAM59C,GACF9I,EAAI,GAQN,IANA2mD,GAAoBzlD,EAAG4H,EADvB+O,EAAI1gC,EAAM,IAEVuvE,EAAM7uC,GACNiuC,GAAqB5kD,EAAG2W,GACxB3W,EAAE8kD,WAAanuC,EACfiuC,GAAqBjuC,EAAG/O,GACxBA,EAAI5H,EAAE6kD,WACDjuE,EAAI,EAAGA,EAAIkoB,EAAGloB,IAAK,CACtB6uE,GAAoBzlD,EAAG4H,EAAG+O,EAAI1gC,EAAMW,IACpC,IAAI8uE,EAAQ,EAAG7P,EAAK,EAAGhnB,EAAK,EAC5B,IAAKhyC,EAAI+qB,EAAEi9C,WAAYhoE,IAAM+qB,EAAG/qB,EAAIA,EAAEgoE,WAAYhP,IAChD,GAAImP,GAAyBnoE,EAAG85B,GAAI,CAClC+uC,EAAQ,EACR,KACF,CAEF,GAAa,GAATA,EACF,IAAK5oE,EAAIkjB,EAAE8kD,WAAYhoE,IAAMD,EAAEioE,aACzBE,GAAyBloE,EAAG65B,GADS75B,EAAIA,EAAEgoE,WAAYj2B,KAM3D62B,GACE7P,EAAKhnB,GAAMgnB,GAAMhnB,GAAMjnB,EAAE5E,EAAIhD,EAAEgD,EAAG+hD,GAAqB/kD,EAAG4H,EAAI/qB,GAC7DkoE,GAAqB/kD,EAAIljB,EAAG8qB,GACjChxB,MAEAguE,GAAqB5kD,EAAG2W,GACxB/O,EAAI+O,EACJ6uC,EAAM7uC,GAEV,CAGJ,IAAI6mB,GAAM2nB,EAAOC,GAAQ,EAAG3nB,GAAM4nB,EAAOC,GAAQ,EAAGK,EAAK,EACzD,IAAK/uE,EAAI,EAAGA,EAAIkoB,EAAGloB,KACjB+/B,EAAI1gC,EAAMW,IACRmG,GAAKygD,EACP7mB,EAAE35B,GAAKygD,EACPkoB,EAAKnuE,KAAK6mB,IAAIsnD,EAAIhvC,EAAE3T,EAAIxrB,KAAK2xC,KAAKxS,EAAE55B,EAAI45B,EAAE55B,EAAI45B,EAAE35B,EAAI25B,EAAE35B,IAExD1D,EAAK0pB,EAAI2iD,EACT1vE,EAAMC,QAAQ0vE,GA9D6C,CAE3D,SAASJ,EAAM9yB,GACbyyB,EAAO3tE,KAAK8mB,IAAIo0B,EAAM31C,EAAI21C,EAAM1vB,EAAGmiD,GACnCC,EAAO5tE,KAAK6mB,IAAIq0B,EAAM31C,EAAI21C,EAAM1vB,EAAGoiD,GACnCC,EAAO7tE,KAAK8mB,IAAIo0B,EAAM11C,EAAI01C,EAAM1vB,EAAGqiD,GACnCC,EAAO9tE,KAAK6mB,IAAIq0B,EAAM11C,EAAI01C,EAAM1vB,EAAGsiD,EACrC,CAwDF,CACA,SAASC,GAAmBjsE,GAC1BA,EAAKurE,WAAavrE,EAAKwrE,WAAaxrE,CACtC,CACA,SAASssE,GAAqBtsE,UACrBA,EAAKurE,kBACLvrE,EAAKwrE,UACd,CACA,SAASe,GAAwBvsE,EAAMyD,EAAGC,EAAGF,GAC3C,IAAInD,EAAWL,EAAKK,SAIpB,GAHAL,EAAKyD,EAAIA,GAAKD,EAAIxD,EAAKyD,EACvBzD,EAAK0D,EAAIA,GAAKF,EAAIxD,EAAK0D,EACvB1D,EAAK0pB,GAAKlmB,EACNnD,EAEF,IADA,IAAI/C,GAAK,EAAGkoB,EAAInlB,EAAS3E,SAChB4B,EAAIkoB,GAAG+mD,GAAwBlsE,EAAS/C,GAAImG,EAAGC,EAAGF,EAE/D,CACA,SAAS2oE,GAAoBzlD,EAAG4H,EAAG+O,GACjC,IAAImvC,EAAK9lD,EAAEgD,EAAI2T,EAAE3T,EAAGs0B,EAAK1vB,EAAE7qB,EAAIijB,EAAEjjB,EAAGw6C,EAAK3vB,EAAE5qB,EAAIgjB,EAAEhjB,EACjD,GAAI8oE,IAAOxuB,GAAMC,GAAK,CACpB,IAAIurB,EAAKl7C,EAAE5E,EAAI2T,EAAE3T,EAAG+iD,EAAKzuB,EAAKA,EAAKC,EAAKA,EAGpCx6C,EAAI,KADR+oE,GAAMA,IADNhD,GAAMA,KAEqB,EAAIiD,GAAK/oE,EAAIxF,KAAK2xC,KAAK3xC,KAAK6mB,IAAI,EAAG,EAAIykD,GAAMgD,EAAKC,IAAOD,GAAMC,GAAMD,EAAKhD,EAAKA,KAAQ,EAAIiD,GACtHpvC,EAAE55B,EAAIijB,EAAEjjB,EAAIA,EAAIu6C,EAAKt6C,EAAIu6C,EACzB5gB,EAAE35B,EAAIgjB,EAAEhjB,EAAID,EAAIw6C,EAAKv6C,EAAIs6C,CAC3B,MACE3gB,EAAE55B,EAAIijB,EAAEjjB,EAAI+oE,EACZnvC,EAAE35B,EAAIgjB,EAAEhjB,CAEZ,CAsHA,SAASgpE,GAAyBhmD,EAAG4H,GACnC,OAAO5H,EAAExmB,QAAUouB,EAAEpuB,OAAS,EAAI,CACpC,CACA,SAASysE,GAAmBhvC,GAC1B,IAAIt9B,EAAWs9B,EAAEt9B,SACjB,OAAOA,EAAS3E,OAAS2E,EAAS,GAAKs9B,EAAE/T,CAC3C,CACA,SAASgjD,GAAoBjvC,GAC3B,IAA2BnY,EAAvBnlB,EAAWs9B,EAAEt9B,SACjB,OAAQmlB,EAAInlB,EAAS3E,QAAU2E,EAASmlB,EAAI,GAAKmY,EAAE/T,CACrD,CACA,SAASijD,GAAmBC,EAAIC,EAAI/mD,GAClC,IAAIgnD,EAAShnD,GAAS+mD,EAAGzvE,EAAIwvE,EAAGxvE,GAChCyvE,EAAG1vC,GAAK2vC,EACRD,EAAGvmD,GAAKR,EACR8mD,EAAGzvC,GAAK2vC,EACRD,EAAGppE,GAAKqiB,EACR+mD,EAAG5+C,GAAKnI,CACV,CAUA,SAASinD,GAAuBC,EAAKvvC,EAAGwvC,GACtC,OAAOD,EAAIxmD,EAAExmB,SAAWy9B,EAAEz9B,OAASgtE,EAAIxmD,EAAIymD,CAC7C,CAqDA,SAASC,GAAsBptE,GAC7B,IAAIK,EAAWL,EAAKK,SACpB,OAAOA,GAAYA,EAAS3E,OAAS0xE,GAAsB/sE,EAAS,IAAML,CAC5E,CACA,SAASqtE,GAAuBrtE,GAC9B,IAA8BwlB,EAA1BnlB,EAAWL,EAAKK,SACpB,OAAOA,IAAamlB,EAAInlB,EAAS3E,QAAU2xE,GAAuBhtE,EAASmlB,EAAI,IAAMxlB,CACvF,CAmJA,SAASstE,GAAyBttE,GAChC,MAAO,CACLyD,EAAGzD,EAAKyD,EACRC,EAAG1D,EAAK0D,EACRs6C,GAAIh+C,EAAKg+C,GACTC,GAAIj+C,EAAKi+C,GAEb,CACA,SAASsvB,GAAqBvtE,EAAMgwB,GAClC,IAAIvsB,EAAIzD,EAAKyD,EAAIusB,EAAQ,GAAItsB,EAAI1D,EAAK0D,EAAIssB,EAAQ,GAAIguB,EAAKh+C,EAAKg+C,GAAKhuB,EAAQ,GAAKA,EAAQ,GAAIiuB,EAAKj+C,EAAKi+C,GAAKjuB,EAAQ,GAAKA,EAAQ,GASlI,OARIguB,EAAK,IACPv6C,GAAKu6C,EAAK,EACVA,EAAK,GAEHC,EAAK,IACPv6C,GAAKu6C,EAAK,EACVA,EAAK,GAEA,CACLx6C,IACAC,IACAs6C,KACAC,KAEJ,CAoCA,SAASuvB,GAAexrB,GACtB,IAAI7/B,EAAQ6/B,EAAO,GAAI5P,EAAO4P,EAAOA,EAAOtmD,OAAS,GACrD,OAAOymB,EAAQiwB,EAAO,CAACjwB,EAAOiwB,GAAQ,CAACA,EAAMjwB,EAC/C,CACA,SAASsrD,GAAc1iE,GACrB,OAAOA,EAAM2iE,YAAc3iE,EAAM2iE,cAAgBF,GAAeziE,EAAMonC,QACxE,CACA,SAASw7B,GAAkB3rB,EAAQ7P,EAAOy7B,EAAe5N,GACvD,IAAI/1C,EAAI2jD,EAAc5rB,EAAO,GAAIA,EAAO,IAAK1kD,EAAI0iE,EAAY7tB,EAAM,GAAIA,EAAM,IAC7E,OAAO,SAAS1uC,GACd,OAAOnG,EAAE2sB,EAAExmB,GACb,CACF,CACA,SAASoqE,GAAc7rB,EAAQ8rB,GAC7B,IAAsE9vB,EAAlE3N,EAAK,EAAGC,EAAK0R,EAAOtmD,OAAS,EAAGglD,EAAKsB,EAAO3R,GAAKsQ,EAAKqB,EAAO1R,GAOjE,OANIqQ,EAAKD,IACP1C,EAAK3N,EAAIA,EAAKC,EAAIA,EAAK0N,EACvBA,EAAK0C,EAAIA,EAAKC,EAAIA,EAAK3C,GAEzBgE,EAAO3R,GAAMy9B,EAAKjwC,MAAM6iB,GACxBsB,EAAO1R,GAAMw9B,EAAK9vC,KAAK2iB,GAChBqB,CACT,CACA,SAAS+rB,GAAkB/gD,GACzB,OAAOA,EAAO,CACZ6Q,MAAO,SAASp6B,GACd,OAAOvF,KAAK2/B,MAAMp6B,EAAIupB,GAAQA,CAChC,EACAgR,KAAM,SAASv6B,GACb,OAAOvF,KAAK8/B,KAAKv6B,EAAIupB,GAAQA,CAC/B,GACEghD,EACN,CAlpBA3gC,EAAGk4B,OAAO0I,UAAY,WACpB,IAAIC,GAAY,EAAMC,EAAStnD,OAAQunD,EAAShD,GAA0BiD,EAASnD,GACnF,SAAS+C,EAAUj2B,EAAM16C,GAEvB,IADA,IAAwIgxE,EAAsF7qE,EAA1N8qE,EAAO,GAAIxoD,EAASiyB,EAAKrzC,IAAIwpE,EAAQ9yE,MAAO82C,EAAQi8B,EAAOjpE,KAAK9J,KAAM0qB,EAAQzoB,GAAIkxE,EAAaH,EAAOlpE,KAAK9J,KAAM82C,EAAOpsB,EAAQzoB,GAAiBkoB,GAARloB,GAAK,EAAOyoB,EAAOrqB,QAAQyyB,EAAIqgD,EAAW9yE,OAAS,EAAG8H,EAAI0qE,EAAY,EAAI,EAAI1oD,IAClNloB,EAAI6wB,IACXmgD,EAAMC,EAAKjxE,GAAK,IACZ0gD,GAAKwwB,EAAWlxE,EAAI,IAAMgxE,EAAI7qE,EAAI+qE,EAAWlxE,IACjDgxE,EAAI5qE,EAAI,EAEV,GAAIyqB,EAAI,EAEN,IADA7wB,GAAK,IACIA,EAAIkoB,IACX/hB,EAAIsiB,EAAOzoB,KACF60C,EAAM,IAAM1uC,GAAK0uC,EAAM,MAC9Bm8B,EAAMC,EAAKlhC,EAAG4C,OAAOu+B,EAAY/qE,EAAG,EAAG0qB,GAAK,IACxCzqB,GAAKF,EACT8qE,EAAIryE,KAAK+7C,EAAK16C,KAIpB,OAAOixE,CACT,CAuBA,OAtBAN,EAAUxvE,MAAQ,SAASgF,GACzB,OAAK4E,UAAU3M,QACfyyE,EAAS1qE,EACFwqE,GAFuBE,CAGhC,EACAF,EAAU97B,MAAQ,SAAS1uC,GACzB,OAAK4E,UAAU3M,QACf0yE,EAASze,GAAWlsD,GACbwqE,GAFuBG,CAGhC,EACAH,EAAUM,KAAO,SAAS9qE,GACxB,OAAK4E,UAAU3M,QACf2yE,EAAsB,kBAAN5qE,EAAiB,SAAS0uC,GACxC,OAAOg5B,GAA4Bh5B,EAAO1uC,EAC5C,EAAIksD,GAAWlsD,GACRwqE,GAJuBI,CAKhC,EACAJ,EAAUC,UAAY,SAASzqE,GAC7B,OAAK4E,UAAU3M,QACfwyE,IAAczqE,EACPwqE,GAFuBC,CAGhC,EACOD,CACT,EAYA5gC,EAAGk4B,OAAOkJ,KAAO,WACf,IAA4FC,EAAxFnG,EAAYl7B,EAAGk4B,OAAOgD,YAAY57C,KAAK0+C,IAAqBr7C,EAAU,EAAG1sB,EAAO,CAAC,EAAG,GACxF,SAASmrE,EAAKn/D,EAAGhS,GACf,IAAIX,EAAQ4rE,EAAUpjE,KAAK9J,KAAMiU,EAAGhS,GAAI2C,EAAOtD,EAAM,GAAIshC,EAAI36B,EAAK,GAAI6K,EAAI7K,EAAK,GAAIomB,EAAc,MAAVglD,EAAiBxwE,KAAK2xC,KAAyB,oBAAX6+B,EAAwBA,EAAS,WAC1J,OAAOA,CACT,EAMA,GALAzuE,EAAKwD,EAAIxD,EAAKyD,EAAI,EAClBglE,GAA8BzoE,GAAM,SAAS2/C,GAC3CA,EAAGl2B,GAAKA,EAAEk2B,EAAGnhD,MACf,IACAiqE,GAA8BzoE,EAAM2rE,IAChC57C,EAAS,CACX,IAAI27C,EAAK37C,GAAW0+C,EAAS,EAAIxwE,KAAK6mB,IAAI,EAAI9kB,EAAKypB,EAAIuU,EAAG,EAAIh+B,EAAKypB,EAAIvb,IAAM,EAC7Eu6D,GAA8BzoE,GAAM,SAAS2/C,GAC3CA,EAAGl2B,GAAKiiD,CACV,IACAjD,GAA8BzoE,EAAM2rE,IACpClD,GAA8BzoE,GAAM,SAAS2/C,GAC3CA,EAAGl2B,GAAKiiD,CACV,GACF,CAEA,OADAY,GAAwBtsE,EAAMg+B,EAAI,EAAG9vB,EAAI,EAAGugE,EAAS,EAAI,EAAIxwE,KAAK6mB,IAAI,EAAI9kB,EAAKypB,EAAIuU,EAAG,EAAIh+B,EAAKypB,EAAIvb,IAC5FxR,CACT,CAgBA,OAfA8xE,EAAKnrE,KAAO,SAASi7B,GACnB,OAAKl2B,UAAU3M,QACf4H,EAAOi7B,EACAkwC,GAFuBnrE,CAGhC,EACAmrE,EAAKC,OAAS,SAASnwC,GACrB,OAAKl2B,UAAU3M,QACfgzE,EAAc,MAALnwC,GAA0B,oBAANA,EAAmBA,GAAKA,EAC9CkwC,GAFuBC,CAGhC,EACAD,EAAKz+C,QAAU,SAASuO,GACtB,OAAKl2B,UAAU3M,QACfs0B,GAAWuO,EACJkwC,GAFuBz+C,CAGhC,EACOs4C,GAA0BmG,EAAMlG,EACzC,EAmHAl7B,EAAGk4B,OAAO/K,KAAO,WACf,IAAI+N,EAAYl7B,EAAGk4B,OAAOgD,YAAY57C,KAAK,MAAMluB,MAAM,MAAOkwE,EAAajC,GAA0BppE,EAAO,CAAC,EAAG,GAAIsrE,EAAW,KAC/H,SAASpU,EAAKlrD,EAAGhS,GACf,IAAIX,EAAQ4rE,EAAUpjE,KAAK9J,KAAMiU,EAAGhS,GAAIuxE,EAAQlyE,EAAM,GAAImyE,EAmB5D,SAAkBD,GAKhB,IAJA,IAGoBE,EAHhBD,EAAQ,CACVnsC,EAAG,KACHtiC,SAAU,CAACwuE,IACVG,EAAQ,CAACF,GACoB,OAAxBC,EAAQC,EAAMvY,QACpB,IAAK,IAA+BsS,EAA3B1oE,EAAW0uE,EAAM1uE,SAAiB/C,EAAI,EAAGkoB,EAAInlB,EAAS3E,OAAQ4B,EAAIkoB,IAAKloB,EAC9E0xE,EAAM/yE,MAAMoE,EAAS/C,GAAKyrE,EAAQ,CAChCxqC,EAAGl+B,EAAS/C,GACZ4C,OAAQ6uE,EACR1uE,UAAW0oE,EAAQ1oE,EAAS/C,GAAG+C,WAAa0oE,EAAMzpE,SAAW,GAC7DqjC,EAAG,KACHjc,EAAG,KACH/iB,EAAG,EACHwqB,EAAG,EACHkP,EAAG,EACH7W,EAAG,EACHoD,EAAG,KACHtsB,MACCopB,EAAIqiD,GAGX,OAAO+F,EAAMzuE,SAAS,EACxB,CA1CoE4uE,CAASJ,GAG3E,GAFAnG,GAA8BoG,EAAOI,GAAYJ,EAAM5uE,OAAOiuB,GAAK2gD,EAAMnrE,EACzE8kE,GAA+BqG,EAAOK,GAClCP,EAAUnG,GAA+BoG,EAAOO,OAC/C,CACH,IAAIv5C,EAAOg5C,EAAOl5C,EAAQk5C,EAAOj5C,EAASi5C,EAC1CpG,GAA+BoG,GAAO,SAAS7uE,GACzCA,EAAKyD,EAAIoyB,EAAKpyB,IAAGoyB,EAAO71B,GACxBA,EAAKyD,EAAIkyB,EAAMlyB,IAAGkyB,EAAQ31B,GAC1BA,EAAK+yC,MAAQnd,EAAOmd,QAAOnd,EAAS51B,EAC1C,IACA,IAAIqvE,EAAKV,EAAW94C,EAAMF,GAAS,EAAIE,EAAKpyB,EAAGi+D,EAAKp+D,EAAK,IAAMqyB,EAAMlyB,EAAIkrE,EAAWh5C,EAAOE,GAAQ,EAAIw5C,GAAKvN,EAAKx+D,EAAK,IAAMsyB,EAAOmd,OAAS,GAC5I01B,GAA+BoG,GAAO,SAAS7uE,GAC7CA,EAAKyD,GAAKzD,EAAKyD,EAAI4rE,GAAM3N,EACzB1hE,EAAK0D,EAAI1D,EAAK+yC,MAAQ+uB,CACxB,GACF,CACA,OAAOnlE,CACT,CAyBA,SAASuyE,EAAUvxC,GACjB,IAAIt9B,EAAWs9B,EAAEt9B,SAAUivE,EAAW3xC,EAAEz9B,OAAOG,SAAU49B,EAAIN,EAAErgC,EAAIgyE,EAAS3xC,EAAErgC,EAAI,GAAK,KACvF,GAAI+C,EAAS3E,OAAQ,EAwFzB,SAA6BiiC,GAE3B,IADA,IAAuEM,EAAnEjY,EAAQ,EAAGgnD,EAAS,EAAG3sE,EAAWs9B,EAAEt9B,SAAU/C,EAAI+C,EAAS3E,SACtD4B,GAAK,IACZ2gC,EAAI59B,EAAS/C,IACXqG,GAAKqiB,EACPiY,EAAE9P,GAAKnI,EACPA,GAASiY,EAAEzX,GAAKwmD,GAAU/uC,EAAEZ,EAEhC,CA/FMkyC,CAAoB5xC,GACpB,IAAI6xC,GAAYnvE,EAAS,GAAGsD,EAAItD,EAASA,EAAS3E,OAAS,GAAGiI,GAAK,EAC/Ds6B,GACFN,EAAEh6B,EAAIs6B,EAAEt6B,EAAIgrE,EAAWhxC,EAAEY,EAAGN,EAAEM,GAC9BZ,EAAExP,EAAIwP,EAAEh6B,EAAI6rE,GAEZ7xC,EAAEh6B,EAAI6rE,CAEV,MAAWvxC,IACTN,EAAEh6B,EAAIs6B,EAAEt6B,EAAIgrE,EAAWhxC,EAAEY,EAAGN,EAAEM,IAEhCZ,EAAEz9B,OAAOyiC,EAMX,SAAmBhF,EAAGM,EAAGkvC,GACvB,GAAIlvC,EAAG,CAEL,IADA,IAAiHjY,EAA7GypD,EAAM9xC,EAAG+xC,EAAM/xC,EAAGuvC,EAAMjvC,EAAG0xC,EAAMF,EAAIvvE,OAAOG,SAAS,GAAIuvE,EAAMH,EAAIthD,EAAG0hD,EAAMH,EAAIvhD,EAAG2hD,EAAM5C,EAAI/+C,EAAG4hD,EAAMJ,EAAIxhD,EACvG++C,EAAMN,GAAoBM,GAAMuC,EAAM9C,GAAmB8C,GAAMvC,GAAOuC,GAC3EE,EAAMhD,GAAmBgD,IACzBD,EAAM9C,GAAoB8C,IACtBhpD,EAAIiX,GACR3X,EAAQknD,EAAIvpE,EAAImsE,EAAML,EAAI9rE,EAAIisE,EAAMjB,EAAWzB,EAAI3uC,EAAGkxC,EAAIlxC,IAC9C,IACVsuC,GAAmBI,GAAuBC,EAAKvvC,EAAGwvC,GAAWxvC,EAAG3X,GAChE4pD,GAAO5pD,EACP6pD,GAAO7pD,GAET8pD,GAAO5C,EAAI/+C,EACXyhD,GAAOH,EAAIthD,EACX4hD,GAAOJ,EAAIxhD,EACX0hD,GAAOH,EAAIvhD,EAET++C,IAAQN,GAAoB8C,KAC9BA,EAAI9lD,EAAIsjD,EACRwC,EAAIvhD,GAAK2hD,EAAMD,GAEbJ,IAAQ9C,GAAmBgD,KAC7BA,EAAI/lD,EAAI6lD,EACRE,EAAIxhD,GAAKyhD,EAAMG,EACf5C,EAAWxvC,EAEf,CACA,OAAOwvC,CACT,CAnCe6C,CAAUryC,EAAGM,EAAGN,EAAEz9B,OAAOyiC,GAAK2sC,EAAS,GACtD,CACA,SAASH,EAAWxxC,GAClBA,EAAEY,EAAE96B,EAAIk6B,EAAEh6B,EAAIg6B,EAAEz9B,OAAOiuB,EACvBwP,EAAExP,GAAKwP,EAAEz9B,OAAOiuB,CAClB,CA+BA,SAASihD,EAASpvE,GAChBA,EAAKyD,GAAKH,EAAK,GACftD,EAAK0D,EAAI1D,EAAK+yC,MAAQzvC,EAAK,EAC7B,CAgBA,OAfAk3D,EAAKmU,WAAa,SAASlrE,GACzB,OAAK4E,UAAU3M,QACfizE,EAAalrE,EACN+2D,GAFuBmU,CAGhC,EACAnU,EAAKl3D,KAAO,SAASG,GACnB,OAAK4E,UAAU3M,QACfkzE,EAAyB,OAAbtrE,EAAOG,GAAa2rE,EAAW,KACpC5U,GAFuBoU,EAAW,KAAOtrE,CAGlD,EACAk3D,EAAKoU,SAAW,SAASnrE,GACvB,OAAK4E,UAAU3M,QACfkzE,EAAyB,OAAbtrE,EAAOG,GAAa,KAAO2rE,EAChC5U,GAFuBoU,EAAWtrE,EAAO,IAGlD,EACOglE,GAA0B9N,EAAM+N,EACzC,EAgCAl7B,EAAGk4B,OAAO0K,QAAU,WAClB,IAAI1H,EAAYl7B,EAAGk4B,OAAOgD,YAAY57C,KAAK,MAAMluB,MAAM,MAAOkwE,EAAajC,GAA0BppE,EAAO,CAAC,EAAG,GAAIsrE,GAAW,EAC/H,SAASqB,EAAQ3gE,EAAGhS,GAClB,IAAyD4yE,EAArDvzE,EAAQ4rE,EAAUpjE,KAAK9J,KAAMiU,EAAGhS,GAAI2C,EAAOtD,EAAM,GAAkB8G,EAAI,EAC3EilE,GAA8BzoE,GAAM,SAASD,GAC3C,IAAIK,EAAWL,EAAKK,SAChBA,GAAYA,EAAS3E,QACvBsE,EAAKyD,EAwCb,SAA4BpD,GAC1B,OAAOA,EAASmc,QAAO,SAAS/Y,EAAGslE,GACjC,OAAOtlE,EAAIslE,EAAMtlE,CACnB,GAAG,GAAKpD,EAAS3E,MACnB,CA5CiBy0E,CAAmB9vE,GAC5BL,EAAK0D,EAkCb,SAA4BrD,GAC1B,OAAO,EAAIgtC,EAAGtoB,IAAI1kB,GAAU,SAAS0oE,GACnC,OAAOA,EAAMrlE,CACf,GACF,CAtCiB0sE,CAAmB/vE,KAE5BL,EAAKyD,EAAIysE,EAAezsE,GAAKkrE,EAAW3uE,EAAMkwE,GAAgB,EAC9DlwE,EAAK0D,EAAI,EACTwsE,EAAelwE,EAEnB,IACA,IAAI61B,EAAOu3C,GAAsBntE,GAAO01B,EAAQ03C,GAAuBptE,GAAOygD,EAAK7qB,EAAKpyB,EAAIkrE,EAAW94C,EAAMF,GAAS,EAAGgrB,EAAKhrB,EAAMlyB,EAAIkrE,EAAWh5C,EAAOE,GAAQ,EAQlK,OAPA6yC,GAA8BzoE,EAAM2uE,EAAW,SAAS5uE,GACtDA,EAAKyD,GAAKzD,EAAKyD,EAAIxD,EAAKwD,GAAKH,EAAK,GAClCtD,EAAK0D,GAAKzD,EAAKyD,EAAI1D,EAAK0D,GAAKJ,EAAK,EACpC,EAAI,SAAStD,GACXA,EAAKyD,GAAKzD,EAAKyD,EAAIi9C,IAAOC,EAAKD,GAAMp9C,EAAK,GAC1CtD,EAAK0D,GAAK,GAAKzD,EAAKyD,EAAI1D,EAAK0D,EAAIzD,EAAKyD,EAAI,IAAMJ,EAAK,EACvD,GACO3G,CACT,CAgBA,OAfAszE,EAAQtB,WAAa,SAASlrE,GAC5B,OAAK4E,UAAU3M,QACfizE,EAAalrE,EACNwsE,GAFuBtB,CAGhC,EACAsB,EAAQ3sE,KAAO,SAASG,GACtB,OAAK4E,UAAU3M,QACfkzE,EAAyB,OAAbtrE,EAAOG,GACZwsE,GAFuBrB,EAAW,KAAOtrE,CAGlD,EACA2sE,EAAQrB,SAAW,SAASnrE,GAC1B,OAAK4E,UAAU3M,QACfkzE,EAAyB,OAAbtrE,EAAOG,GACZwsE,GAFuBrB,EAAWtrE,EAAO,IAGlD,EACOglE,GAA0B2H,EAAS1H,EAC5C,EAmBAl7B,EAAGk4B,OAAO8K,QAAU,WAClB,IAA0IC,EAAtI/H,EAAYl7B,EAAGk4B,OAAOgD,YAAatuD,EAAQ/b,KAAK+b,MAAO3W,EAAO,CAAC,EAAG,GAAI0sB,EAAU,KAAMugD,EAAMjD,GAA0BkD,GAAS,EAAiBr5D,EAAO,WAAYs5D,EAAQ,IAAO,EAAIvyE,KAAK2xC,KAAK,IACpM,SAAS9kC,EAAM1K,EAAUmD,GAEvB,IADA,IAAiCulE,EAAOxT,EAApCj4D,GAAK,EAAGkoB,EAAInlB,EAAS3E,SAChB4B,EAAIkoB,GACX+vC,GAAQwT,EAAQ1oE,EAAS/C,IAAImB,OAAS+E,EAAI,EAAI,EAAIA,GAClDulE,EAAMxT,KAAOzmB,MAAMymB,IAASA,GAAQ,EAAI,EAAIA,CAEhD,CACA,SAASmb,EAAS1wE,GAChB,IAAIK,EAAWL,EAAKK,SACpB,GAAIA,GAAYA,EAAS3E,OAAQ,CAC/B,IAA8DqtE,EAAwB4H,EAA6JnrD,EAA/Om3B,EAAO4zB,EAAIvwE,GAAO8wC,EAAM,GAAI8/B,EAAYvwE,EAASf,QAAgBuxE,EAAOx+B,IAAiBpoB,EAAa,UAAT9S,EAAmBwlC,EAAKqB,GAAc,SAAT7mC,EAAkBwlC,EAAKsB,GAAc,eAAT9mC,EAAqC,EAAbnX,EAAK+yC,MAAY4J,EAAKsB,GAAKtB,EAAKqB,GAAK9/C,KAAK8mB,IAAI23B,EAAKqB,GAAIrB,EAAKsB,IAG9O,IAFAlzC,EAAM6lE,EAAWj0B,EAAKqB,GAAKrB,EAAKsB,GAAKj+C,EAAKvB,OAC1CqyC,EAAIykB,KAAO,GACH/vC,EAAIorD,EAAUl1E,QAAU,GAC9Bo1C,EAAI70C,KAAK8sE,EAAQ6H,EAAUprD,EAAI,IAC/BsrB,EAAIykB,MAAQwT,EAAMxT,KACL,aAATp+C,IAAwBw5D,EAAQG,EAAMhgC,EAAK7mB,KAAO4mD,GACpDD,EAAUna,MACVoa,EAAOF,IAEP7/B,EAAIykB,MAAQzkB,EAAI2lB,MAAMlB,KACtB11D,EAASixC,EAAK7mB,EAAG0yB,GAAM,GACvB1yB,EAAI/rB,KAAK8mB,IAAI23B,EAAKqB,GAAIrB,EAAKsB,IAC3BnN,EAAIp1C,OAASo1C,EAAIykB,KAAO,EACxBsb,EAAOx+B,KAGPvB,EAAIp1C,SACNmE,EAASixC,EAAK7mB,EAAG0yB,GAAM,GACvB7L,EAAIp1C,OAASo1C,EAAIykB,KAAO,GAE1Bl1D,EAASzD,QAAQ8zE,EACnB,CACF,CACA,SAASK,EAAS/wE,GAChB,IAAIK,EAAWL,EAAKK,SACpB,GAAIA,GAAYA,EAAS3E,OAAQ,CAC/B,IAAoDqtE,EAAhDpsB,EAAO4zB,EAAIvwE,GAAO4wE,EAAYvwE,EAASf,QAAgBwxC,EAAM,GAGjE,IAFA/lC,EAAM6lE,EAAWj0B,EAAKqB,GAAKrB,EAAKsB,GAAKj+C,EAAKvB,OAC1CqyC,EAAIykB,KAAO,EACJwT,EAAQ6H,EAAUna,OACvB3lB,EAAI70C,KAAK8sE,GACTj4B,EAAIykB,MAAQwT,EAAMxT,KACH,MAAXwT,EAAMplE,IACR9D,EAASixC,EAAKi4B,EAAMplE,EAAIg5C,EAAKqB,GAAKrB,EAAKsB,GAAItB,GAAOi0B,EAAUl1E,QAC5Do1C,EAAIp1C,OAASo1C,EAAIykB,KAAO,GAG5Bl1D,EAASzD,QAAQm0E,EACnB,CACF,CACA,SAASD,EAAMhgC,EAAK7mB,GAElB,IADA,IAAkBP,EAAdlD,EAAIsqB,EAAIykB,KAASyb,EAAO,EAAGC,EAAO5+B,IAAU/0C,GAAK,EAAGkoB,EAAIsrB,EAAIp1C,SACvD4B,EAAIkoB,IACLkE,EAAIonB,EAAIxzC,GAAGi4D,QACb7rC,EAAIunD,IAAMA,EAAOvnD,GACjBA,EAAIsnD,IAAMA,EAAOtnD,IAIvB,OADAO,GAAKA,GADLzD,GAAKA,GAEMtoB,KAAK6mB,IAAIkF,EAAI+mD,EAAOP,EAAQjqD,EAAGA,GAAKyD,EAAIgnD,EAAOR,IAAUp+B,GACtE,CACA,SAASxyC,EAASixC,EAAK7mB,EAAG0yB,EAAM9+C,GAC9B,IAAqFu/B,EAAjF9/B,GAAK,EAAGkoB,EAAIsrB,EAAIp1C,OAAQ+H,EAAIk5C,EAAKl5C,EAAGC,EAAIi5C,EAAKj5C,EAAGi6B,EAAI1T,EAAIhQ,EAAM62B,EAAIykB,KAAOtrC,GAAK,EAClF,GAAIA,GAAK0yB,EAAKqB,GAAI,CAEhB,KADIngD,GAAS8/B,EAAIgf,EAAKsB,MAAItgB,EAAIgf,EAAKsB,MAC1B3gD,EAAIkoB,IACX4X,EAAI0T,EAAIxzC,IACNmG,EAAIA,EACN25B,EAAE15B,EAAIA,EACN05B,EAAE6gB,GAAKtgB,EACPl6B,GAAK25B,EAAE4gB,GAAK9/C,KAAK8mB,IAAI23B,EAAKl5C,EAAIk5C,EAAKqB,GAAKv6C,EAAGk6B,EAAI1jB,EAAMmjB,EAAEm4B,KAAO53B,GAAK,GAErEP,EAAEz5B,GAAI,EACNy5B,EAAE4gB,IAAMrB,EAAKl5C,EAAIk5C,EAAKqB,GAAKv6C,EAC3Bk5C,EAAKj5C,GAAKi6B,EACVgf,EAAKsB,IAAMtgB,CACb,KAAO,CAEL,KADI9/B,GAAS8/B,EAAIgf,EAAKqB,MAAIrgB,EAAIgf,EAAKqB,MAC1B1gD,EAAIkoB,IACX4X,EAAI0T,EAAIxzC,IACNmG,EAAIA,EACN25B,EAAE15B,EAAIA,EACN05B,EAAE4gB,GAAKrgB,EACPj6B,GAAK05B,EAAE6gB,GAAK//C,KAAK8mB,IAAI23B,EAAKj5C,EAAIi5C,EAAKsB,GAAKv6C,EAAGi6B,EAAI1jB,EAAMmjB,EAAEm4B,KAAO53B,GAAK,GAErEP,EAAEz5B,GAAI,EACNy5B,EAAE6gB,IAAMtB,EAAKj5C,EAAIi5C,EAAKsB,GAAKv6C,EAC3Bi5C,EAAKl5C,GAAKk6B,EACVgf,EAAKqB,IAAMrgB,CACb,CACF,CACA,SAAS0yC,EAAQ/gE,GACf,IAAI3S,EAAQ2zE,GAAY/H,EAAUj5D,GAAIrP,EAAOtD,EAAM,GAQnD,OAPAsD,EAAKwD,EAAIxD,EAAKyD,EAAI,EACdzD,EAAKxB,OAAOwB,EAAK+9C,GAAK16C,EAAK,GAAIrD,EAAKg+C,GAAK36C,EAAK,IAC7CrD,EAAK+9C,GAAK/9C,EAAKg+C,GAAK,EACrBqyB,GAAU/H,EAAUY,QAAQlpE,GAChC8K,EAAM,CAAC9K,GAAOA,EAAK+9C,GAAK/9C,EAAKg+C,GAAKh+C,EAAKxB,QACtC6xE,EAAWS,EAAWL,GAAUzwE,GAC7BuwE,IAAQF,EAAW3zE,GAChBA,CACT,CAwCA,OAvCA0zE,EAAQ/sE,KAAO,SAASG,GACtB,OAAK4E,UAAU3M,QACf4H,EAAOG,EACA4sE,GAFuB/sE,CAGhC,EACA+sE,EAAQrgD,QAAU,SAASvsB,GACzB,IAAK4E,UAAU3M,OAAQ,OAAOs0B,EAK9B,SAASkhD,EAAYlxE,GACnB,OAAOutE,GAAqBvtE,EAAMyD,EACpC,CACA,IAAItD,EAEJ,OADAowE,EAAuB,OAAhBvgD,EAAUvsB,GAAa6pE,GAAiD,cAArBntE,SAAcsD,GARxE,SAAqBzD,GACnB,IAAIouB,EAAI3qB,EAAE0B,KAAKkrE,EAASrwE,EAAMA,EAAK+yC,OACnC,OAAY,MAAL3kB,EAAYk/C,GAAyBttE,GAAQutE,GAAqBvtE,EAAmB,kBAANouB,EAAiB,CAACA,EAAGA,EAAGA,EAAGA,GAAKA,EACxH,EAKmH,WAATjuB,GAAqBsD,EAAI,CAACA,EAAGA,EAAGA,EAAGA,GAAIytE,GAAeA,EACzJb,CACT,EACAA,EAAQp2D,MAAQ,SAASxW,GACvB,OAAK4E,UAAU3M,QACfue,EAAQxW,EAAIvF,KAAK+b,MAAQ4M,OAClBwpD,GAFuBp2D,GAAS4M,MAGzC,EACAwpD,EAAQG,OAAS,SAAS/sE,GACxB,OAAK4E,UAAU3M,QACf80E,EAAS/sE,EACT6sE,EAAW,KACJD,GAHuBG,CAIhC,EACAH,EAAQI,MAAQ,SAAShtE,GACvB,OAAK4E,UAAU3M,QACf+0E,EAAQhtE,EACD4sE,GAFuBI,CAGhC,EACAJ,EAAQl5D,KAAO,SAAS1T,GACtB,OAAK4E,UAAU3M,QACfyb,EAAO1T,EAAI,GACJ4sE,GAFuBl5D,CAGhC,EACOmxD,GAA0B+H,EAAS9H,EAC5C,EA0BAl7B,EAAGkD,OAAS,CACV4gC,OAAQ,SAASC,EAAIC,GACnB,IAAI7rD,EAAInd,UAAU3M,OAGlB,OAFI8pB,EAAI,IAAG6rD,EAAQ,GACf7rD,EAAI,IAAG4rD,EAAK,GACT,WACL,IAAI3tE,EAAGC,EAAGgmB,EACV,GAGEA,GAFAjmB,EAAoB,EAAhBvF,KAAKqyC,SAAe,GAEhB9sC,GADRC,EAAoB,EAAhBxF,KAAKqyC,SAAe,GACR7sC,SACRgmB,GAAKA,EAAI,GACnB,OAAO0nD,EAAKC,EAAQ5tE,EAAIvF,KAAK2xC,MAAM,EAAI3xC,KAAK2hD,IAAIn2B,GAAKA,EACvD,CACF,EACA4nD,UAAW,WACT,IAAI/gC,EAASlD,EAAGkD,OAAO4gC,OAAOzoE,MAAM2kC,EAAIhlC,WACxC,OAAO,WACL,OAAOnK,KAAK+gD,IAAI1O,IAClB,CACF,EACAghC,MAAO,SAASpjD,GACd,IAAIoiB,EAASlD,EAAGkD,OAAOihC,UAAUrjD,GACjC,OAAO,WACL,OAAOoiB,IAAWpiB,CACpB,CACF,EACAqjD,UAAW,SAASrjD,GAClB,OAAO,WACL,IAAK,IAAI3H,EAAI,EAAGjjB,EAAI,EAAGA,EAAI4qB,EAAG5qB,IAAKijB,GAAKtoB,KAAKqyC,SAC7C,OAAO/pB,CACT,CACF,GAEF6mB,EAAGtiC,MAAQ,CAAC,EAkCZ,IAAIijE,GAAwB,CAC1BnwC,MAAOgU,EACP7T,KAAM6T,GAER,SAAS4/B,GAAoBzvB,EAAQ7P,EAAOy7B,EAAe5N,GACzD,IAAI/1C,EAAI,GAAI3sB,EAAI,GAAIiG,EAAI,EAAGC,EAAItF,KAAK8mB,IAAIg9B,EAAOtmD,OAAQy2C,EAAMz2C,QAAU,EAKvE,IAJIsmD,EAAOx+C,GAAKw+C,EAAO,KACrBA,EAASA,EAAO1iD,QAAQorE,UACxBv4B,EAAQA,EAAM7yC,QAAQorE,aAEfnnE,GAAKC,GACZymB,EAAEhuB,KAAK2xE,EAAc5rB,EAAOz+C,EAAI,GAAIy+C,EAAOz+C,KAC3CjG,EAAErB,KAAK+jE,EAAY7tB,EAAM5uC,EAAI,GAAI4uC,EAAM5uC,KAEzC,OAAO,SAASE,GACd,IAAIiuE,EAAKrkC,EAAG4C,OAAO+R,EAAQv+C,EAAG,EAAGD,GAAK,EACtC,OAAOlG,EAAEo0E,GAAIznD,EAAEynD,GAAIjuE,GACrB,CACF,CAIA,SAASkuE,GAAgB3vB,EAAQ7P,EAAO6tB,EAAa4R,GACnD,IAAI7vE,EAAQklB,EACZ,SAAS86B,IACP,IAAI8vB,EAAU3zE,KAAK8mB,IAAIg9B,EAAOtmD,OAAQy2C,EAAMz2C,QAAU,EAAI+1E,GAAsB9D,GAAmBC,EAAgBgE,EAAQ3N,GAAwBD,GAGnJ,OAFAjiE,EAAS8vE,EAAQ7vB,EAAQ7P,EAAOy7B,EAAe5N,GAC/C/4C,EAAQ4qD,EAAQ1/B,EAAO6P,EAAQ4rB,EAAexQ,IACvCryD,CACT,CACA,SAASA,EAAMtH,GACb,OAAO1B,EAAO0B,EAChB,CAwCA,OAvCAsH,EAAMk3C,OAAS,SAASv+C,GACtB,OAAOujB,EAAMvjB,EACf,EACAqH,EAAMi3C,OAAS,SAASv+C,GACtB,OAAK4E,UAAU3M,QACfsmD,EAASv+C,EAAEkB,IAAIkiB,QACRk7B,KAFuBC,CAGhC,EACAj3C,EAAMonC,MAAQ,SAAS1uC,GACrB,OAAK4E,UAAU3M,QACfy2C,EAAQ1uC,EACDs+C,KAFuB5P,CAGhC,EACApnC,EAAM+mE,WAAa,SAASruE,GAC1B,OAAOsH,EAAMonC,MAAM1uC,GAAGu8D,YAAYwB,GACpC,EACAz2D,EAAM6mE,MAAQ,SAASnuE,GACrB,OAAK4E,UAAU3M,QACfk2E,EAAQnuE,EACDs+C,KAFuB6vB,CAGhC,EACA7mE,EAAMi1D,YAAc,SAASv8D,GAC3B,OAAK4E,UAAU3M,QACfskE,EAAcv8D,EACPs+C,KAFuBie,CAGhC,EACAj1D,EAAMgnE,MAAQ,SAAS5jD,GACrB,OAAO6jD,GAAqBhwB,EAAQ7zB,EACtC,EACApjB,EAAMknE,WAAa,SAAS9jD,EAAGiT,GAC7B,OAAO8wC,0BAA0BlwB,EAAQ7zB,EAAGiT,EAC9C,EACAr2B,EAAM+iE,KAAO,SAAS3/C,GAEpB,OADAgkD,GAAoBnwB,EAAQ7zB,GACrB4zB,GACT,EACAh3C,EAAMxK,KAAO,WACX,OAAOoxE,GAAgB3vB,EAAQ7P,EAAO6tB,EAAa4R,EACrD,EACO7vB,GACT,CACA,SAASqwB,GAAsBrnE,EAAO8mE,GACpC,OAAOxkC,EAAGoG,OAAO1oC,EAAO8mE,EAAS,QAAS,aAAc,cAAe,QACzE,CACA,SAASM,GAAoBnwB,EAAQ7zB,GAGnC,OAFA0/C,GAAc7rB,EAAQ+rB,GAAkBsE,GAAyBrwB,EAAQ7zB,GAAG,KAC5E0/C,GAAc7rB,EAAQ+rB,GAAkBsE,GAAyBrwB,EAAQ7zB,GAAG,KACrE6zB,CACT,CACA,SAASqwB,GAAyBrwB,EAAQ7zB,GAC/B,MAALA,IAAWA,EAAI,IACnB,IAAIkhB,EAASm+B,GAAexrB,GAASswB,EAAOjjC,EAAO,GAAKA,EAAO,GAAIriB,EAAO9uB,KAAK4jD,IAAI,GAAI5jD,KAAK2/B,MAAM3/B,KAAK2hD,IAAIyyB,EAAOnkD,GAAKjwB,KAAKq0E,OAAQ1nC,EAAM1c,EAAImkD,EAAOtlD,EAOrJ,OANI6d,GAAO,IAAM7d,GAAQ,GAChB6d,GAAO,IAAM7d,GAAQ,EACrB6d,GAAO,MAAM7d,GAAQ,GAC9BqiB,EAAO,GAAKnxC,KAAK8/B,KAAKqR,EAAO,GAAKriB,GAAQA,EAC1CqiB,EAAO,GAAKnxC,KAAK2/B,MAAMwR,EAAO,GAAKriB,GAAQA,EAAc,GAAPA,EAClDqiB,EAAO,GAAKriB,EACLqiB,CACT,CACA,SAAS2iC,GAAqBhwB,EAAQ7zB,GACpC,OAAOkf,EAAG8E,MAAMzpC,MAAM2kC,EAAIglC,GAAyBrwB,EAAQ7zB,GAC7D,CAkBA,SAASqkD,GAAaX,EAAS1lD,EAAMsmD,EAAUzwB,GAC7C,SAASnC,EAAIp8C,GACX,OAAQgvE,EAAWv0E,KAAK2hD,IAAIp8C,EAAI,EAAI,EAAIA,IAAMvF,KAAK2hD,IAAIp8C,EAAI,EAAI,GAAKA,IAAMvF,KAAK2hD,IAAI1zB,EACrF,CACA,SAAS21B,EAAIr+C,GACX,OAAOgvE,EAAWv0E,KAAK4jD,IAAI31B,EAAM1oB,IAAMvF,KAAK4jD,IAAI31B,GAAO1oB,EACzD,CACA,SAASsH,EAAMtH,GACb,OAAOouE,EAAQhyB,EAAIp8C,GACrB,CA2CA,OA1CAsH,EAAMk3C,OAAS,SAASx+C,GACtB,OAAOq+C,EAAI+vB,EAAQ5vB,OAAOx+C,GAC5B,EACAsH,EAAMi3C,OAAS,SAASv+C,GACtB,OAAK4E,UAAU3M,QACf+2E,EAAWhvE,EAAE,IAAM,EACnBouE,EAAQ7vB,QAAQA,EAASv+C,EAAEkB,IAAIkiB,SAASliB,IAAIk7C,IACrC90C,GAHuBi3C,CAIhC,EACAj3C,EAAMohB,KAAO,SAASoS,GACpB,OAAKl2B,UAAU3M,QACfywB,GAAQoS,EACRszC,EAAQ7vB,OAAOA,EAAOr9C,IAAIk7C,IACnB90C,GAHuBohB,CAIhC,EACAphB,EAAM+iE,KAAO,WACX,IAAI4E,EAAQ7E,GAAc7rB,EAAOr9C,IAAIk7C,GAAM4yB,EAAWv0E,KAAOy0E,IAG7D,OAFAd,EAAQ7vB,OAAO0wB,GACf1wB,EAAS0wB,EAAM/tE,IAAIm9C,GACZ/2C,CACT,EACAA,EAAMgnE,MAAQ,WACZ,IAAI1iC,EAASm+B,GAAexrB,GAAS+vB,EAAQ,GAAI9nD,EAAIolB,EAAO,GAAI1R,EAAI0R,EAAO,GAAI/xC,EAAIY,KAAK2/B,MAAMgiB,EAAI51B,IAAK1mB,EAAIrF,KAAK8/B,KAAK6hB,EAAIliB,IAAKnY,EAAI2G,EAAO,EAAI,EAAIA,EACjJ,GAAIqnC,SAASjwD,EAAIjG,GAAI,CACnB,GAAIm1E,EAAU,CACZ,KAAOn1E,EAAIiG,EAAGjG,IAAK,IAAK,IAAIkG,EAAI,EAAGA,EAAIgiB,EAAGhiB,IAAKuuE,EAAM91E,KAAK6lD,EAAIxkD,GAAKkG,GACnEuuE,EAAM91E,KAAK6lD,EAAIxkD,GACjB,MAEE,IADAy0E,EAAM91E,KAAK6lD,EAAIxkD,IACRA,IAAMiG,GAAK,IAASC,EAAIgiB,EAAI,EAAGhiB,EAAI,EAAGA,IAAKuuE,EAAM91E,KAAK6lD,EAAIxkD,GAAKkG,GAExE,IAAKlG,EAAI,EAAGy0E,EAAMz0E,GAAK2sB,EAAG3sB,KAE1B,IAAKiG,EAAIwuE,EAAMr2E,OAAQq2E,EAAMxuE,EAAI,GAAKo6B,EAAGp6B,KAEzCwuE,EAAQA,EAAMzyE,MAAMhC,EAAGiG,EACzB,CACA,OAAOwuE,CACT,EACAhnE,EAAMxK,KAAO,WACX,OAAOiyE,GAAaX,EAAQtxE,OAAQ4rB,EAAMsmD,EAAUzwB,EACtD,EACOowB,GAAsBrnE,EAAO8mE,EACtC,CAnJAxkC,EAAGtiC,MAAMq1D,OAAS,WAChB,OAAOuR,GAAgB,CAAC,EAAG,GAAI,CAAC,EAAG,GAAIvU,IAAgB,EACzD,EAyFA/vB,EAAGtiC,MAAM80C,IAAM,WACb,OAAO2yB,GAAanlC,EAAGtiC,MAAMq1D,SAASpe,OAAO,CAAC,EAAG,IAAK,IAAI,EAAM,CAAC,EAAG,IACtE,EAuDA,IAAI2wB,GAA2B,CAC7B90C,MAAO,SAASp6B,GACd,OAAQvF,KAAK8/B,MAAMv6B,EACrB,EACAu6B,KAAM,SAASv6B,GACb,OAAQvF,KAAK2/B,OAAOp6B,EACtB,GAKF,SAASmvE,GAAaf,EAASgB,EAAU7wB,GACvC,IAAI8wB,EAAOC,GAAgBF,GAAWG,EAAOD,GAAgB,EAAIF,GACjE,SAAS9nE,EAAMtH,GACb,OAAOouE,EAAQiB,EAAKrvE,GACtB,CA4BA,OA3BAsH,EAAMk3C,OAAS,SAASx+C,GACtB,OAAOuvE,EAAKnB,EAAQ5vB,OAAOx+C,GAC7B,EACAsH,EAAMi3C,OAAS,SAASv+C,GACtB,OAAK4E,UAAU3M,QACfm2E,EAAQ7vB,QAAQA,EAASv+C,EAAEkB,IAAIkiB,SAASliB,IAAImuE,IACrC/nE,GAFuBi3C,CAGhC,EACAj3C,EAAMgnE,MAAQ,SAAS5jD,GACrB,OAAO6jD,GAAqBhwB,EAAQ7zB,EACtC,EACApjB,EAAMknE,WAAa,SAAS9jD,EAAGiT,GAC7B,OAAO8wC,0BAA0BlwB,EAAQ7zB,EAAGiT,EAC9C,EACAr2B,EAAM+iE,KAAO,SAAS3/C,GACpB,OAAOpjB,EAAMi3C,OAAOmwB,GAAoBnwB,EAAQ7zB,GAClD,EACApjB,EAAM8nE,SAAW,SAASpvE,GACxB,OAAK4E,UAAU3M,QACfo3E,EAAOC,GAAgBF,EAAWpvE,GAClCuvE,EAAOD,GAAgB,EAAIF,GAC3BhB,EAAQ7vB,OAAOA,EAAOr9C,IAAImuE,IACnB/nE,GAJuB8nE,CAKhC,EACA9nE,EAAMxK,KAAO,WACX,OAAOqyE,GAAaf,EAAQtxE,OAAQsyE,EAAU7wB,EAChD,EACOowB,GAAsBrnE,EAAO8mE,EACtC,CACA,SAASkB,GAAgBn1E,GACvB,OAAO,SAAS6F,GACd,OAAOA,EAAI,GAAKvF,KAAK4jD,KAAKr+C,EAAG7F,GAAKM,KAAK4jD,IAAIr+C,EAAG7F,EAChD,CACF,CAUA,SAASq1E,GAAiBjxB,EAAQosB,GAChC,IAAInvE,EAAOkzC,EAAO+gC,EAClB,SAASnoE,EAAMtH,GACb,OAAO0uC,IAAQlzC,EAAMmF,IAAIX,KAAoB,UAAb2qE,EAAOxkD,EAAgB3qB,EAAMoF,IAAIZ,EAAGu+C,EAAO/lD,KAAKwH,IAAMw7B,MAAQ,GAAKkT,EAAMz2C,OAC3G,CACA,SAASy3E,EAAMhxD,EAAO6K,GACpB,OAAOqgB,EAAG8E,MAAM6P,EAAOtmD,QAAQiJ,KAAI,SAASrH,GAC1C,OAAO6kB,EAAQ6K,EAAO1vB,CACxB,GACF,CA4EA,OA3EAyN,EAAMi3C,OAAS,SAASv+C,GACtB,IAAK4E,UAAU3M,OAAQ,OAAOsmD,EAC9BA,EAAS,GACT/iD,EAAQ,IAAImyC,EAEZ,IADA,IAA0BgiC,EAAtB91E,GAAK,EAAGkoB,EAAI/hB,EAAE/H,SACT4B,EAAIkoB,GAAQvmB,EAAM6qB,IAAIspD,EAAK3vE,EAAEnG,KAAK2B,EAAMoF,IAAI+uE,EAAIpxB,EAAO/lD,KAAKm3E,IACrE,OAAOroE,EAAMqjE,EAAOxkD,GAAGlhB,MAAMqC,EAAOqjE,EAAO1nD,EAC7C,EACA3b,EAAMonC,MAAQ,SAAS1uC,GACrB,OAAK4E,UAAU3M,QACfy2C,EAAQ1uC,EACRyvE,EAAY,EACZ9E,EAAS,CACPxkD,EAAG,QACHlD,EAAGre,WAEE0C,GAPuBonC,CAQhC,EACApnC,EAAMsoE,YAAc,SAAS5vE,EAAGusB,GAC1B3nB,UAAU3M,OAAS,IAAGs0B,EAAU,GACpC,IAAI7N,EAAQ1e,EAAE,GAAI2uC,EAAO3uC,EAAE,GAAIupB,EAAOg1B,EAAOtmD,OAAS,GAAKymB,GAASA,EAAQiwB,GAAQ,EAAG,IAAMA,EAAOjwB,IAAU6/B,EAAOtmD,OAAS,EAAIs0B,GAOlI,OANAmiB,EAAQghC,EAAMhxD,EAAQ6K,EAAOgD,EAAU,EAAGhD,GAC1CkmD,EAAY,EACZ9E,EAAS,CACPxkD,EAAG,cACHlD,EAAGre,WAEE0C,CACT,EACAA,EAAMuoE,iBAAmB,SAAS7vE,EAAGusB,GAC/B3nB,UAAU3M,OAAS,IAAGs0B,EAAU,GACpC,IAAI7N,EAAQ1e,EAAE,GAAI2uC,EAAO3uC,EAAE,GAAIupB,EAAOg1B,EAAOtmD,OAAS,GAAKymB,EAAQiwB,EAAOl0C,KAAK+b,OAAOkI,EAAQiwB,GAAQ,GAAI,IAAMA,EAAOjwB,IAAU6/B,EAAOtmD,OAAS,EAAIs0B,GAAW,EAOhK,OANAmiB,EAAQghC,EAAMhxD,EAAQjkB,KAAK+b,MAAM+S,EAAOgD,EAAU,GAAKoiB,EAAOjwB,GAAS6/B,EAAOtmD,OAAS,EAAIs0B,GAAWhD,GAAQ,GAAIA,GAClHkmD,EAAY,EACZ9E,EAAS,CACPxkD,EAAG,mBACHlD,EAAGre,WAEE0C,CACT,EACAA,EAAMwoE,WAAa,SAAS9vE,EAAGusB,EAASwjD,GAClCnrE,UAAU3M,OAAS,IAAGs0B,EAAU,GAChC3nB,UAAU3M,OAAS,IAAG83E,EAAexjD,GACzC,IAAI06C,EAAUjnE,EAAE,GAAKA,EAAE,GAAI0e,EAAQ1e,EAAEinE,EAAU,GAA2B19C,GAAhBvpB,EAAE,EAAIinE,GAAyBvoD,IAAU6/B,EAAOtmD,OAASs0B,EAAU,EAAIwjD,GAQjI,OAPArhC,EAAQghC,EAAMhxD,EAAQ6K,EAAOwmD,EAAcxmD,GACvC09C,GAASv4B,EAAMu4B,UACnBwI,EAAYlmD,GAAQ,EAAIgD,GACxBo+C,EAAS,CACPxkD,EAAG,aACHlD,EAAGre,WAEE0C,CACT,EACAA,EAAM0oE,gBAAkB,SAAShwE,EAAGusB,EAASwjD,GACvCnrE,UAAU3M,OAAS,IAAGs0B,EAAU,GAChC3nB,UAAU3M,OAAS,IAAG83E,EAAexjD,GACzC,IAAI06C,EAAUjnE,EAAE,GAAKA,EAAE,GAAI0e,EAAQ1e,EAAEinE,EAAU,GAAIt4B,EAAO3uC,EAAE,EAAIinE,GAAU19C,EAAO9uB,KAAK2/B,OAAOuU,EAAOjwB,IAAU6/B,EAAOtmD,OAASs0B,EAAU,EAAIwjD,IAQ5I,OAPArhC,EAAQghC,EAAMhxD,EAAQjkB,KAAK+b,OAAOm4B,EAAOjwB,GAAS6/B,EAAOtmD,OAASs0B,GAAWhD,GAAQ,GAAIA,GACrF09C,GAASv4B,EAAMu4B,UACnBwI,EAAYh1E,KAAK+b,MAAM+S,GAAQ,EAAIgD,IACnCo+C,EAAS,CACPxkD,EAAG,kBACHlD,EAAGre,WAEE0C,CACT,EACAA,EAAMmoE,UAAY,WAChB,OAAOA,CACT,EACAnoE,EAAM2iE,YAAc,WAClB,OAAOF,GAAeY,EAAO1nD,EAAE,GACjC,EACA3b,EAAMxK,KAAO,WACX,OAAO0yE,GAAiBjxB,EAAQosB,EAClC,EACOrjE,EAAMi3C,OAAOA,EACtB,CAzIA3U,EAAGtiC,MAAM+2C,IAAM,WACb,OAAO8wB,GAAavlC,EAAGtiC,MAAMq1D,SAAU,EAAG,CAAC,EAAG,GAChD,EAwCA/yB,EAAGtiC,MAAM8kC,KAAO,WACd,OAAOxC,EAAGtiC,MAAM+2C,MAAM+wB,SAAS,GACjC,EACAxlC,EAAGtiC,MAAM2yB,QAAU,WACjB,OAAOu1C,GAAiB,GAAI,CAC1BrpD,EAAG,QACHlD,EAAG,CAAC,KAER,EAwFA2mB,EAAGtiC,MAAM2oE,WAAa,WACpB,OAAOrmC,EAAGtiC,MAAM2yB,UAAUyU,MAAMwhC,GAClC,EACAtmC,EAAGtiC,MAAM6oE,WAAa,WACpB,OAAOvmC,EAAGtiC,MAAM2yB,UAAUyU,MAAM0hC,GAClC,EACAxmC,EAAGtiC,MAAM+oE,YAAc,WACrB,OAAOzmC,EAAGtiC,MAAM2yB,UAAUyU,MAAM4hC,GAClC,EACA1mC,EAAGtiC,MAAMipE,YAAc,WACrB,OAAO3mC,EAAGtiC,MAAM2yB,UAAUyU,MAAM8hC,GAClC,EACA,IAAIN,GAAgB,CAAC,QAAS,SAAU,QAAS,SAAU,QAAS,QAAS,SAAU,QAAS,SAAU,SAAShvE,IAAI2hD,IACnHutB,GAAgB,CAAC,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,UAAUlvE,IAAI2hD,IACvNytB,GAAiB,CAAC,QAAS,QAAS,QAAS,SAAU,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,UAAUpvE,IAAI2hD,IACtN2tB,GAAiB,CAAC,QAAS,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,QAAS,SAAU,UAAUtvE,IAAI2hD,IAI3N,SAAS4tB,GAAkBlyB,EAAQ7P,GACjC,IAAIq8B,EACJ,SAASzsB,IACP,IAAIv+C,EAAI,EAAGgjC,EAAI2L,EAAMz2C,OAErB,IADA8yE,EAAa,KACJhrE,EAAIgjC,GAAGgoC,EAAWhrE,EAAI,GAAK6pC,EAAGmC,SAASwS,EAAQx+C,EAAIgjC,GAC5D,OAAOz7B,CACT,CACA,SAASA,EAAMtH,GACb,IAAKqrC,MAAMrrC,GAAKA,GAAI,OAAO0uC,EAAM9E,EAAG4C,OAAOu+B,EAAY/qE,GACzD,CAqBA,OApBAsH,EAAMi3C,OAAS,SAASv+C,GACtB,OAAK4E,UAAU3M,QACfsmD,EAASv+C,EAAEkB,IAAIiqC,GAAWlnB,OAAOmnB,GAAYliB,KAAKgiB,GAC3CoT,KAFuBC,CAGhC,EACAj3C,EAAMonC,MAAQ,SAAS1uC,GACrB,OAAK4E,UAAU3M,QACfy2C,EAAQ1uC,EACDs+C,KAFuB5P,CAGhC,EACApnC,EAAMopE,UAAY,WAChB,OAAO3F,CACT,EACAzjE,EAAMqpE,aAAe,SAAS1wE,GAE5B,OADAA,EAAIyuC,EAAMpzC,QAAQ2E,IACP,EAAI,CAACu7B,IAAKA,KAAO,CAACv7B,EAAI,EAAI8qE,EAAW9qE,EAAI,GAAKs+C,EAAO,GAAIt+C,EAAI8qE,EAAW9yE,OAAS8yE,EAAW9qE,GAAKs+C,EAAOA,EAAOtmD,OAAS,GACrI,EACAqP,EAAMxK,KAAO,WACX,OAAO2zE,GAAkBlyB,EAAQ7P,EACnC,EACO4P,GACT,CAIA,SAASsyB,GAAkB3zB,EAAIC,EAAIxO,GACjC,IAAIuvB,EAAIpkE,EACR,SAASyN,EAAMtH,GACb,OAAO0uC,EAAMj0C,KAAK6mB,IAAI,EAAG7mB,KAAK8mB,IAAI1nB,EAAGY,KAAK2/B,MAAM6jC,GAAMj+D,EAAIi9C,MAC5D,CACA,SAASqB,IAGP,OAFA2f,EAAKvvB,EAAMz2C,QAAUilD,EAAKD,GAC1BpjD,EAAI60C,EAAMz2C,OAAS,EACZqP,CACT,CAoBA,OAnBAA,EAAMi3C,OAAS,SAASv+C,GACtB,OAAK4E,UAAU3M,QACfglD,GAAMj9C,EAAE,GACRk9C,GAAMl9C,EAAEA,EAAE/H,OAAS,GACZqmD,KAHuB,CAACrB,EAAIC,EAIrC,EACA51C,EAAMonC,MAAQ,SAAS1uC,GACrB,OAAK4E,UAAU3M,QACfy2C,EAAQ1uC,EACDs+C,KAFuB5P,CAGhC,EACApnC,EAAMqpE,aAAe,SAAS1wE,GAG5B,MAAO,CADPA,GADAA,EAAIyuC,EAAMpzC,QAAQ2E,IACV,EAAIu7B,IAAMv7B,EAAIg+D,EAAKhhB,EAChBh9C,EAAI,EAAIg+D,EACrB,EACA32D,EAAMxK,KAAO,WACX,OAAO8zE,GAAkB3zB,EAAIC,EAAIxO,EACnC,EACO4P,GACT,CAIA,SAASuyB,GAAmBtyB,EAAQ7P,GAClC,SAASpnC,EAAMtH,GACb,GAAIA,GAAKA,EAAG,OAAO0uC,EAAM9E,EAAG4C,OAAO+R,EAAQv+C,GAC7C,CAkBA,OAjBAsH,EAAMi3C,OAAS,SAASzjB,GACtB,OAAKl2B,UAAU3M,QACfsmD,EAASzjB,EACFxzB,GAFuBi3C,CAGhC,EACAj3C,EAAMonC,MAAQ,SAAS5T,GACrB,OAAKl2B,UAAU3M,QACfy2C,EAAQ5T,EACDxzB,GAFuBonC,CAGhC,EACApnC,EAAMqpE,aAAe,SAAS1wE,GAE5B,OADAA,EAAIyuC,EAAMpzC,QAAQ2E,GACX,CAACs+C,EAAOt+C,EAAI,GAAIs+C,EAAOt+C,GAChC,EACAqH,EAAMxK,KAAO,WACX,OAAO+zE,GAAmBtyB,EAAQ7P,EACpC,EACOpnC,CACT,CAIA,SAASwpE,GAAkBvyB,GACzB,SAASwyB,EAAU/wE,GACjB,OAAQA,CACV,CAgBA,OAfA+wE,EAAUvyB,OAASuyB,EACnBA,EAAUxyB,OAASwyB,EAAUriC,MAAQ,SAAS1uC,GAC5C,OAAK4E,UAAU3M,QACfsmD,EAASv+C,EAAEkB,IAAI6vE,GACRA,GAFuBxyB,CAGhC,EACAwyB,EAAUzC,MAAQ,SAAS5jD,GACzB,OAAO6jD,GAAqBhwB,EAAQ7zB,EACtC,EACAqmD,EAAUvC,WAAa,SAAS9jD,EAAGiT,GACjC,OAAO8wC,0BAA0BlwB,EAAQ7zB,EAAGiT,EAC9C,EACAozC,EAAUj0E,KAAO,WACf,OAAOg0E,GAAkBvyB,EAC3B,EACOwyB,CACT,CAEA,SAASC,KACP,OAAO,CACT,CA3HApnC,EAAGtiC,MAAMykC,SAAW,WAClB,OAAO0kC,GAAkB,GAAI,GAC/B,EAkCA7mC,EAAGtiC,MAAM2pE,SAAW,WAClB,OAAOL,GAAkB,EAAG,EAAG,CAAC,EAAG,GACrC,EAgCAhnC,EAAGtiC,MAAM4pE,UAAY,WACnB,OAAOL,GAAmB,CAAC,IAAM,CAAC,EAAG,GACvC,EAwBAjnC,EAAGtiC,MAAM6pE,SAAW,WAClB,OAAOL,GAAkB,CAAC,EAAG,GAC/B,EAsBAlnC,EAAGiJ,IAAM,CAAC,EAIVjJ,EAAGiJ,IAAIkiB,IAAM,WACX,IAAIqc,EAAcC,GAAuBC,EAAcC,GAAuBC,EAAeR,GAASS,EAAYC,GAAgB3O,EAAa4O,GAAsB3O,EAAW4O,GAAoB9L,EAAW+L,GAC/M,SAAS9c,IACP,IAAIvY,EAAK/hD,KAAK6mB,IAAI,GAAI8vD,EAAYnsE,MAAMrN,KAAMgN,YAAa63C,EAAKhiD,KAAK6mB,IAAI,GAAIgwD,EAAYrsE,MAAMrN,KAAMgN,YAAag+D,EAAKG,EAAW99D,MAAMrN,KAAMgN,WAAas2C,GAAY2nB,EAAKG,EAAS/9D,MAAMrN,KAAMgN,WAAas2C,GAAY6qB,EAAKtrE,KAAKD,IAAIqoE,EAAKD,GAAKkP,EAAKlP,EAAKC,EAAK,EAAI,EAErQ,GADIpmB,EAAKD,IAAIu1B,EAAKt1B,EAAIA,EAAKD,EAAIA,EAAKu1B,GAChChM,GAAM9qB,GAAc,OAAO+2B,EAAcv1B,EAAIq1B,IAAOt1B,EAAKw1B,EAAcx1B,EAAI,EAAIs1B,GAAM,IAAM,IAC/F,IAAIC,EAAInJ,EAAIqJ,EAAIC,EAAoBj1B,EAAIE,EAAID,EAAIE,EAAIoa,EAAIC,EAAInG,EAAIG,EAA5C7V,EAAK,EAAG/yC,EAAK,EAAmCuS,EAAO,GAO3E,IANI82D,IAAOpM,EAAS7gE,MAAMrN,KAAMgN,YAAc,GAAK,KACjDqtE,EAAKR,IAAcC,GAAiBj3E,KAAK2xC,KAAKoQ,EAAKA,EAAKC,EAAKA,IAAOg1B,EAAUxsE,MAAMrN,KAAMgN,WACrFktE,IAAIjpE,IAAO,GACZ4zC,IAAI5zC,EAAKwyC,GAAQ42B,EAAKx1B,EAAKhiD,KAAKunD,IAAIkwB,KACpC11B,IAAIZ,EAAKP,GAAQ42B,EAAKz1B,EAAK/hD,KAAKunD,IAAIkwB,MAEtCz1B,EAAI,CACNQ,EAAKR,EAAKhiD,KAAKsnD,IAAI6gB,EAAK/5D,GACxBs0C,EAAKV,EAAKhiD,KAAKunD,IAAI4gB,EAAK/5D,GACxBq0C,EAAKT,EAAKhiD,KAAKsnD,IAAI8gB,EAAKh6D,GACxBu0C,EAAKX,EAAKhiD,KAAKunD,IAAI6gB,EAAKh6D,GACxB,IAAIg3C,EAAKplD,KAAKD,IAAIqoE,EAAKD,EAAK,EAAI/5D,IAAOiyC,GAAS,EAAI,EACpD,GAAIjyC,GAAMspE,GAAgBl1B,EAAIE,EAAID,EAAIE,KAAQ00B,EAAKjyB,EAAI,CACrD,IAAIppC,GAAMmsD,EAAKC,GAAM,EACrB5lB,EAAKR,EAAKhiD,KAAKsnD,IAAItrC,GACnB0mC,EAAKV,EAAKhiD,KAAKunD,IAAIvrC,GACnBymC,EAAKE,EAAK,IACZ,CACF,MACEH,EAAKE,EAAK,EAEZ,GAAIX,EAAI,CACNgb,EAAKhb,EAAK/hD,KAAKsnD,IAAI8gB,EAAKjnB,GACxB6b,EAAKjb,EAAK/hD,KAAKunD,IAAI6gB,EAAKjnB,GACxB0V,EAAK9U,EAAK/hD,KAAKsnD,IAAI6gB,EAAKhnB,GACxB6V,EAAKjV,EAAK/hD,KAAKunD,IAAI4gB,EAAKhnB,GACxB,IAAIgE,EAAKnlD,KAAKD,IAAIooE,EAAKC,EAAK,EAAIjnB,IAAOd,GAAS,EAAI,EACpD,GAAIc,GAAMu2B,GAAgB3a,EAAIC,EAAInG,EAAIG,KAAQ,EAAIqgB,EAAKlyB,EAAI,CACzD,IAAIwyB,GAAMxP,EAAKC,GAAM,EACrBrL,EAAKhb,EAAK/hD,KAAKsnD,IAAIqwB,GACnB3a,EAAKjb,EAAK/hD,KAAKunD,IAAIowB,GACnB9gB,EAAKG,EAAK,IACZ,CACF,MACE+F,EAAKC,EAAK,EAEZ,GAAIsO,EAAKnrB,KAAWm3B,EAAKt3E,KAAK8mB,IAAI9mB,KAAKD,IAAIiiD,EAAKD,GAAM,GAAIg1B,EAAavsE,MAAMrN,KAAMgN,aAAe,KAAM,CACtGgkE,EAAKpsB,EAAKC,EAAKq1B,EAAK,EAAI,EACxB,IAAIO,EAAMN,EAAIO,EAAMP,EACpB,GAAIhM,EAAKjrB,GAAQ,CACf,IAAIy3B,EAAW,MAANjhB,EAAa,CAACkG,EAAIC,GAAY,MAANva,EAAa,CAACD,EAAIE,GAAMkU,GAAyB,CAACpU,EAAIE,GAAK,CAACmU,EAAIG,GAAK,CAACvU,EAAIE,GAAK,CAACoa,EAAIC,IAAMjD,EAAKvX,EAAKs1B,EAAG,GAAI9d,EAAKtX,EAAKo1B,EAAG,GAAI7d,EAAKxX,EAAKq1B,EAAG,GAAI5d,EAAKvX,EAAKm1B,EAAG,GAAIC,EAAK,EAAI/3E,KAAKunD,IAAIvnD,KAAKg4E,MAAMje,EAAKE,EAAKD,EAAKE,IAAOl6D,KAAK2xC,KAAKooB,EAAKA,EAAKC,EAAKA,GAAMh6D,KAAK2xC,KAAKsoB,EAAKA,EAAKC,EAAKA,KAAQ,GAAI+d,EAAKj4E,KAAK2xC,KAAKmmC,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IAChWD,EAAM73E,KAAK8mB,IAAIwwD,GAAKv1B,EAAKk2B,IAAOF,EAAK,IACrCH,EAAM53E,KAAK8mB,IAAIwwD,GAAKt1B,EAAKi2B,IAAOF,EAAK,GACvC,CACA,GAAU,MAANt1B,EAAY,CACd,IAAIy1B,EAAMC,GAA+B,MAANthB,EAAa,CAACkG,EAAIC,GAAM,CAACnG,EAAIG,GAAK,CAACxU,EAAIE,GAAKV,EAAI41B,EAAKP,GAAK7hB,EAAM2iB,GAAyB,CAAC11B,EAAIE,GAAK,CAACoa,EAAIC,GAAKhb,EAAI41B,EAAKP,GACrJC,IAAOM,EACTj3D,EAAK5iB,KAAK,IAAKm6E,EAAI,GAAI,IAAKN,EAAK,IAAKA,EAAK,QAASzJ,EAAI,IAAK+J,EAAI,GAAI,IAAKl2B,EAAI,IAAKA,EAAI,MAAO,EAAIq1B,EAAKK,GAAgBQ,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAI1iB,EAAI,GAAG,GAAIA,EAAI,GAAG,IAAK,IAAK6hB,EAAI,IAAK7hB,EAAI,GAAI,IAAKoiB,EAAK,IAAKA,EAAK,QAASzJ,EAAI,IAAK3Y,EAAI,IAEpO70C,EAAK5iB,KAAK,IAAKm6E,EAAI,GAAI,IAAKN,EAAK,IAAKA,EAAK,QAASzJ,EAAI,IAAK3Y,EAAI,GAErE,MACE70C,EAAK5iB,KAAK,IAAKykD,EAAI,IAAKE,GAE1B,GAAU,MAANmU,EAAY,CACd,IAAIuhB,EAAMD,GAAyB,CAAC31B,EAAIE,GAAK,CAACmU,EAAIG,GAAKjV,GAAK81B,EAAKR,GAAKgB,EAAMF,GAAyB,CAACpb,EAAIC,GAAW,MAANva,EAAa,CAACD,EAAIE,GAAM,CAACD,EAAIE,GAAKZ,GAAK81B,EAAKR,GACvJC,IAAOO,EACTl3D,EAAK5iB,KAAK,IAAKs6E,EAAI,GAAI,IAAKR,EAAK,IAAKA,EAAK,QAAS1J,EAAI,IAAKkK,EAAI,GAAI,IAAKt2B,EAAI,IAAKA,EAAI,MAAOs1B,EAAKK,GAAgBW,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAID,EAAI,GAAG,GAAIA,EAAI,GAAG,IAAK,IAAK,EAAIf,EAAI,IAAKe,EAAI,GAAI,IAAKP,EAAK,IAAKA,EAAK,QAAS1J,EAAI,IAAKiK,EAAI,IAEpOz3D,EAAK5iB,KAAK,IAAKs6E,EAAI,GAAI,IAAKR,EAAK,IAAKA,EAAK,QAAS1J,EAAI,IAAKiK,EAAI,GAErE,MACEz3D,EAAK5iB,KAAK,IAAKg/D,EAAI,IAAKC,EAE5B,MACEr8C,EAAK5iB,KAAK,IAAKykD,EAAI,IAAKE,GACd,MAAND,GAAY9hC,EAAK5iB,KAAK,IAAKikD,EAAI,IAAKA,EAAI,MAAOoD,EAAI,IAAKiyB,EAAI,IAAK50B,EAAI,IAAKE,GAC9EhiC,EAAK5iB,KAAK,IAAKg/D,EAAI,IAAKC,GACd,MAANnG,GAAYl2C,EAAK5iB,KAAK,IAAKgkD,EAAI,IAAKA,EAAI,MAAOoD,EAAI,IAAK,EAAIkyB,EAAI,IAAKxgB,EAAI,IAAKG,GAGpF,OADAr2C,EAAK5iB,KAAK,KACH4iB,EAAK3c,KAAK,GACnB,CACA,SAASuzE,EAAcv1B,EAAIq1B,GACzB,MAAO,MAAQr1B,EAAK,IAAMA,EAAK,IAAMA,EAAK,QAAUq1B,EAAK,OAASr1B,EAAK,IAAMA,EAAK,IAAMA,EAAK,QAAUq1B,EAAK,MAAQr1B,CACtH,CAwCA,OAvCAsY,EAAIqc,YAAc,SAASl3C,GACzB,OAAKt1B,UAAU3M,QACfm5E,EAAcllB,GAAWhyB,GAClB66B,GAFuBqc,CAGhC,EACArc,EAAIuc,YAAc,SAASp3C,GACzB,OAAKt1B,UAAU3M,QACfq5E,EAAcplB,GAAWhyB,GAClB66B,GAFuBuc,CAGhC,EACAvc,EAAIyc,aAAe,SAASt3C,GAC1B,OAAKt1B,UAAU3M,QACfu5E,EAAetlB,GAAWhyB,GACnB66B,GAFuByc,CAGhC,EACAzc,EAAI0c,UAAY,SAASv3C,GACvB,OAAKt1B,UAAU3M,QACfw5E,EAAYv3C,GAAKw3C,GAAiBA,GAAiBxlB,GAAWhyB,GACvD66B,GAFuB0c,CAGhC,EACA1c,EAAIgO,WAAa,SAAS7oC,GACxB,OAAKt1B,UAAU3M,QACf8qE,EAAa7W,GAAWhyB,GACjB66B,GAFuBgO,CAGhC,EACAhO,EAAIiO,SAAW,SAAS9oC,GACtB,OAAKt1B,UAAU3M,QACf+qE,EAAW9W,GAAWhyB,GACf66B,GAFuBiO,CAGhC,EACAjO,EAAI+Q,SAAW,SAAS5rC,GACtB,OAAKt1B,UAAU3M,QACf6tE,EAAW5Z,GAAWhyB,GACf66B,GAFuB+Q,CAGhC,EACA/Q,EAAIhD,SAAW,WACb,IAAI9rC,IAAMmrD,EAAYnsE,MAAMrN,KAAMgN,aAAc0sE,EAAYrsE,MAAMrN,KAAMgN,YAAc,EAAGqe,IAAM8/C,EAAW99D,MAAMrN,KAAMgN,aAAco+D,EAAS/9D,MAAMrN,KAAMgN,YAAc,EAAIs2C,GAC3K,MAAO,CAACzgD,KAAKsnD,IAAI9+B,GAAKgD,EAAGxrB,KAAKunD,IAAI/+B,GAAKgD,EACzC,EACO8uC,CACT,EACA,IAAI2c,GAAiB,OACrB,SAASL,GAAsBxlE,GAC7B,OAAOA,EAAEulE,WACX,CACA,SAASG,GAAsB1lE,GAC7B,OAAOA,EAAEylE,WACX,CACA,SAASK,GAAqB9lE,GAC5B,OAAOA,EAAEk3D,UACX,CACA,SAAS6O,GAAmB/lE,GAC1B,OAAOA,EAAEm3D,QACX,CACA,SAAS6O,GAAmBhmE,GAC1B,OAAOA,GAAKA,EAAEi6D,QAChB,CACA,SAASqM,GAAgBl1B,EAAIE,EAAID,EAAIE,GACnC,OAAQH,EAAKC,GAAMC,GAAMA,EAAKC,GAAMH,EAAK,EAAI,EAAI,CACnD,CACA,SAAS21B,GAAyBh3B,EAAI/yC,EAAI4zC,EAAIs1B,EAAID,GAChD,IAAIiB,EAAMn3B,EAAG,GAAK/yC,EAAG,GAAImqE,EAAMp3B,EAAG,GAAK/yC,EAAG,GAAI0iC,GAAMumC,EAAKC,GAAMA,GAAMt3E,KAAK2xC,KAAK2mC,EAAMA,EAAMC,EAAMA,GAAMC,EAAK1nC,EAAKynC,EAAKE,GAAM3nC,EAAKwnC,EAAK71B,EAAKtB,EAAG,GAAKq3B,EAAI71B,EAAKxB,EAAG,GAAKs3B,EAAI1b,EAAK3uD,EAAG,GAAKoqE,EAAIxb,EAAK5uD,EAAG,GAAKqqE,EAAI5hB,GAAMpU,EAAKsa,GAAM,EAAG/F,GAAMrU,EAAKqa,GAAM,EAAGld,EAAKid,EAAKta,EAAI1C,EAAKid,EAAKra,EAAIjB,EAAK5B,EAAKA,EAAKC,EAAKA,EAAIv0B,EAAIw2B,EAAKs1B,EAAIoB,EAAKj2B,EAAKua,EAAKD,EAAKpa,EAAIvxC,GAAK2uC,EAAK,GAAK,EAAI,GAAK//C,KAAK2xC,KAAK3xC,KAAK6mB,IAAI,EAAG2E,EAAIA,EAAIk2B,EAAKg3B,EAAKA,IAAMC,GAAOD,EAAK34B,EAAKD,EAAK1uC,GAAKswC,EAAIk3B,IAAQF,EAAK54B,EAAKC,EAAK3uC,GAAKswC,EAAIm3B,GAAOH,EAAK34B,EAAKD,EAAK1uC,GAAKswC,EAAIo3B,IAAQJ,EAAK54B,EAAKC,EAAK3uC,GAAKswC,EAAIq3B,EAAMJ,EAAM9hB,EAAImiB,EAAMJ,EAAM5hB,EAAIiiB,EAAMJ,EAAMhiB,EAAIqiB,EAAMJ,EAAM9hB,EAE3kB,OADI+hB,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,IAAKP,EAAME,EAAKD,EAAME,GAC7D,CAAC,CAACH,EAAMH,EAAII,EAAMH,GAAK,CAACE,EAAM32B,EAAKx2B,EAAGotD,EAAM52B,EAAKx2B,GAC1D,CACA,SAAS2tD,KACP,OAAO,CACT,CACA,SAASC,GAAYC,GACnB,IAAI9zE,EAAIkwD,GAAgBjwD,EAAIkwD,GAAgB4jB,EAAUH,GAASrX,EAAcyX,GAAmBC,EAAiB1X,EAAYzjE,IAAKo7E,EAAU,GAC5I,SAASh4E,EAAKq4C,GACZ,IAAyD1oC,EAArDsoE,EAAW,GAAIp1E,EAAS,GAAIlF,GAAK,EAAGkoB,EAAIwyB,EAAKt8C,OAAWy4D,EAAKxE,GAAWlsD,GAAI2wD,EAAKzE,GAAWjsD,GAChG,SAASm0E,IACPD,EAAS37E,KAAK,IAAK+jE,EAAYuX,EAAW/0E,GAASm1E,GACrD,CACA,OAASr6E,EAAIkoB,GACPgyD,EAAQryE,KAAK9J,KAAMiU,EAAI0oC,EAAK16C,GAAIA,GAClCkF,EAAOvG,KAAK,EAAEk4D,EAAGhvD,KAAK9J,KAAMiU,EAAGhS,IAAK82D,EAAGjvD,KAAK9J,KAAMiU,EAAGhS,KAC5CkF,EAAO9G,SAChBm8E,IACAr1E,EAAS,IAIb,OADIA,EAAO9G,QAAQm8E,IACZD,EAASl8E,OAASk8E,EAAS11E,KAAK,IAAM,IAC/C,CA2BA,OA1BAvC,EAAK8D,EAAI,SAAS86B,GAChB,OAAKl2B,UAAU3M,QACf+H,EAAI86B,EACG5+B,GAFuB8D,CAGhC,EACA9D,EAAK+D,EAAI,SAAS66B,GAChB,OAAKl2B,UAAU3M,QACfgI,EAAI66B,EACG5+B,GAFuB+D,CAGhC,EACA/D,EAAK63E,QAAU,SAASj5C,GACtB,OAAKl2B,UAAU3M,QACf87E,EAAUj5C,EACH5+B,GAFuB63E,CAGhC,EACA73E,EAAKqgE,YAAc,SAASzhC,GAC1B,OAAKl2B,UAAU3M,QACcg8E,EAAZ,oBAANn5C,EAAmCyhC,EAAczhC,GACrCyhC,EAAc8X,GAAyB1zE,IAAIm6B,IAAMk5C,IAAmBl7E,IACpFoD,GAHuB+3E,CAIhC,EACA/3E,EAAKg4E,QAAU,SAASp5C,GACtB,OAAKl2B,UAAU3M,QACfi8E,EAAUp5C,EACH5+B,GAFuBg4E,CAGhC,EACOh4E,CACT,CACA0tC,EAAGiJ,IAAI32C,KAAO,WACZ,OAAO23E,GAAYzlC,EACrB,EACA,IAAIimC,GAA2BzqC,EAAG1oC,IAAI,CACpCy7D,OAAQqX,GACR,gBAAiBM,GACjB/qD,KAsBF,SAAyBxqB,GAEvB,IADA,IAAIlF,EAAI,EAAGkoB,EAAIhjB,EAAO9G,OAAQ0yB,EAAI5rB,EAAO,GAAIqc,EAAO,CAACuP,EAAE,GAAI,IAAKA,EAAE,MACzD9wB,EAAIkoB,GAAG3G,EAAK5iB,KAAK,KAAMmyB,EAAE,IAAMA,EAAI5rB,EAAOlF,IAAI,IAAM,EAAG,IAAK8wB,EAAE,IAEvE,OADI5I,EAAI,GAAG3G,EAAK5iB,KAAK,IAAKmyB,EAAE,IACrBvP,EAAK3c,KAAK,GACnB,EA1BE,cAAe81E,GACf,aAAcC,GACdC,MAAOC,GACP,aAgGF,SAA8B31E,GAC5B,GAAIA,EAAO9G,OAAS,EAAG,OAAO+7E,GAAkBj1E,GAEhD,IADA,IAA0C41E,EAAtCv5D,EAAO,GAAIvhB,GAAK,EAAGkoB,EAAIhjB,EAAO9G,OAAY+2B,EAAK,CAAC,GAAIC,EAAK,CAAC,KACrDp1B,EAAI,GACX86E,EAAK51E,EAAOlF,GACZm1B,EAAGx2B,KAAKm8E,EAAG,IACX1lD,EAAGz2B,KAAKm8E,EAAG,IAIb,IAFAv5D,EAAK5iB,KAAKo8E,GAAgBC,GAAyB7lD,GAAM,IAAM4lD,GAAgBC,GAAyB5lD,MACtGp1B,IACOA,EAAIkoB,GACX4yD,EAAK51E,EAAOlF,GACZm1B,EAAGzM,QACHyM,EAAGx2B,KAAKm8E,EAAG,IACX1lD,EAAG1M,QACH0M,EAAGz2B,KAAKm8E,EAAG,IACXG,GAAuB15D,EAAM4T,EAAIC,GAEnC,OAAO7T,EAAK3c,KAAK,GACnB,EAlHE,eAmHF,SAAgCM,GAE9B,IADA,IAAIqc,EAA4Cu5D,EAAtC96E,GAAK,EAAGkoB,EAAIhjB,EAAO9G,OAAQyyB,EAAI3I,EAAI,EAAOiN,EAAK,GAAIC,EAAK,KACzDp1B,EAAI,GACX86E,EAAK51E,EAAOlF,EAAIkoB,GAChBiN,EAAGx2B,KAAKm8E,EAAG,IACX1lD,EAAGz2B,KAAKm8E,EAAG,IAIb,IAFAv5D,EAAO,CAACw5D,GAAgBC,GAAyB7lD,GAAK,IAAK4lD,GAAgBC,GAAyB5lD,MAClGp1B,IACOA,EAAI6wB,GACXiqD,EAAK51E,EAAOlF,EAAIkoB,GAChBiN,EAAGzM,QACHyM,EAAGx2B,KAAKm8E,EAAG,IACX1lD,EAAG1M,QACH0M,EAAGz2B,KAAKm8E,EAAG,IACXG,GAAuB15D,EAAM4T,EAAIC,GAEnC,OAAO7T,EAAK3c,KAAK,GACnB,EApIEsjE,OAqIF,SAA2BhjE,EAAQm1E,GACjC,IAAInyD,EAAIhjB,EAAO9G,OAAS,EACxB,GAAI8pB,EAEF,IADA,IAAkG4I,EAAGxE,EAAjG82B,EAAKl+C,EAAO,GAAG,GAAIo+C,EAAKp+C,EAAO,GAAG,GAAIw7C,EAAKx7C,EAAOgjB,GAAG,GAAKk7B,EAAIzC,EAAKz7C,EAAOgjB,GAAG,GAAKo7B,EAAItjD,GAAK,IACtFA,GAAKkoB,GAEZoE,EAAItsB,EAAIkoB,GADR4I,EAAI5rB,EAAOlF,IAET,GAAKq6E,EAAUvpD,EAAE,IAAM,EAAIupD,IAAYj3B,EAAK92B,EAAIo0B,GAClD5vB,EAAE,GAAKupD,EAAUvpD,EAAE,IAAM,EAAIupD,IAAY/2B,EAAKh3B,EAAIq0B,GAGtD,OAAOk6B,GAAiB31E,EAC1B,EAhJEg2E,SAqCF,SAA6Bh2E,EAAQm1E,GACnC,OAAOn1E,EAAO9G,OAAS,EAAI+7E,GAAkBj1E,GAAUA,EAAO,GAAKi2E,GAAmBj2E,EAAQk2E,GAA4Bl2E,EAAQm1E,GACpI,EAtCE,gBA8BF,SAAiCn1E,EAAQm1E,GACvC,OAAOn1E,EAAO9G,OAAS,EAAI+7E,GAAkBj1E,GAAUA,EAAO,GAAKi2E,GAAmBj2E,EAAOlD,MAAM,GAAI,GAAIo5E,GAA4Bl2E,EAAQm1E,GACjJ,EA/BE,kBAgCF,SAAmCn1E,EAAQm1E,GACzC,OAAOn1E,EAAO9G,OAAS,EAAIq8E,GAAwBv1E,GAAUA,EAAO,GAAKi2E,IAAoBj2E,EAAOvG,KAAKuG,EAAO,IAAKA,GAASk2E,GAA4B,CAACl2E,EAAOA,EAAO9G,OAAS,IAAIuK,OAAOzD,EAAQ,CAACA,EAAO,KAAMm1E,GACrN,EAjCEgB,SAwLF,SAA6Bn2E,GAC3B,OAAOA,EAAO9G,OAAS,EAAI+7E,GAAkBj1E,GAAUA,EAAO,GAAKi2E,GAAmBj2E,EAzBxF,SAAqCA,GAEnC,IADA,IAAmB8M,EAAGoX,EAAG4H,EAAG9H,EAAxBoyD,EAAW,GAAgBzqD,EATjC,SAAsC3rB,GAEpC,IADA,IAAIlF,EAAI,EAAGiG,EAAIf,EAAO9G,OAAS,EAAGyyB,EAAI,GAAIkxB,EAAK78C,EAAO,GAAI8J,EAAK9J,EAAO,GAAI8M,EAAI6e,EAAE,GAAK0qD,GAAiBx5B,EAAI/yC,KACjGhP,EAAIiG,GACX4qB,EAAE7wB,IAAMgS,GAAKA,EAAIupE,GAAiBx5B,EAAK/yC,EAAIA,EAAK9J,EAAOlF,EAAI,MAAQ,EAGrE,OADA6wB,EAAE7wB,GAAKgS,EACA6e,CACT,CAEqC2qD,CAA6Bt2E,GAASlF,GAAK,EAAGiG,EAAIf,EAAO9G,OAAS,IAC5F4B,EAAIiG,GACX+L,EAAIupE,GAAiBr2E,EAAOlF,GAAIkF,EAAOlF,EAAI,IACvCW,EAAIqR,GAAK+uC,GACXlwB,EAAE7wB,GAAK6wB,EAAE7wB,EAAI,GAAK,GAIlBkpB,GAFAE,EAAIyH,EAAE7wB,GAAKgS,GAEHoX,GADR4H,EAAIH,EAAE7wB,EAAI,GAAKgS,GACCgf,GACR,IACN9H,EAAQ,EAAJlX,EAAQpR,KAAK2xC,KAAKrpB,GACtB2H,EAAE7wB,GAAKkpB,EAAIE,EACXyH,EAAE7wB,EAAI,GAAKkpB,EAAI8H,GAKrB,IADAhxB,GAAK,IACIA,GAAKiG,GACZijB,GAAKhkB,EAAOtE,KAAK8mB,IAAIzhB,EAAGjG,EAAI,IAAI,GAAKkF,EAAOtE,KAAK6mB,IAAI,EAAGznB,EAAI,IAAI,KAAO,GAAK,EAAI6wB,EAAE7wB,GAAK6wB,EAAE7wB,KACzFs7E,EAAS38E,KAAK,CAACuqB,GAAK,EAAG2H,EAAE7wB,GAAKkpB,GAAK,IAErC,OAAOoyD,CACT,CAEgGG,CAA4Bv2E,GAC5H,IApLA,SAASi1E,GAAkBj1E,GACzB,OAAOA,EAAO9G,OAAS,EAAI8G,EAAON,KAAK,KAAOM,EAAS,GACzD,CACA,SAASu1E,GAAwBv1E,GAC/B,OAAOA,EAAON,KAAK,KAAO,GAC5B,CAOA,SAAS81E,GAAsBx1E,GAE7B,IADA,IAAIlF,EAAI,EAAGkoB,EAAIhjB,EAAO9G,OAAQ0yB,EAAI5rB,EAAO,GAAIqc,EAAO,CAACuP,EAAE,GAAI,IAAKA,EAAE,MACzD9wB,EAAIkoB,GAAG3G,EAAK5iB,KAAK,KAAMmyB,EAAI5rB,EAAOlF,IAAI,GAAI,IAAK8wB,EAAE,IAC1D,OAAOvP,EAAK3c,KAAK,GACnB,CACA,SAAS+1E,GAAqBz1E,GAE5B,IADA,IAAIlF,EAAI,EAAGkoB,EAAIhjB,EAAO9G,OAAQ0yB,EAAI5rB,EAAO,GAAIqc,EAAO,CAACuP,EAAE,GAAI,IAAKA,EAAE,MACzD9wB,EAAIkoB,GAAG3G,EAAK5iB,KAAK,KAAMmyB,EAAI5rB,EAAOlF,IAAI,GAAI,IAAK8wB,EAAE,IAC1D,OAAOvP,EAAK3c,KAAK,GACnB,CAUA,SAASu2E,GAAmBj2E,EAAQo2E,GAClC,GAAIA,EAASl9E,OAAS,GAAK8G,EAAO9G,QAAUk9E,EAASl9E,QAAU8G,EAAO9G,QAAUk9E,EAASl9E,OAAS,EAChG,OAAO+7E,GAAkBj1E,GAE3B,IAAI89D,EAAO99D,EAAO9G,QAAUk9E,EAASl9E,OAAQmjB,EAAO,GAAIwgC,EAAK78C,EAAO,GAAI4rB,EAAI5rB,EAAO,GAAIixD,EAAMmlB,EAAS,GAAIhvD,EAAI6pC,EAAK2kB,EAAK,EAMxH,GALI9X,IACFzhD,GAAQ,KAAOuP,EAAE,GAAc,EAATqlC,EAAI,GAAS,GAAK,KAAOrlC,EAAE,GAAc,EAATqlC,EAAI,GAAS,GAAK,IAAMrlC,EAAE,GAAK,IAAMA,EAAE,GAC7FixB,EAAK78C,EAAO,GACZ41E,EAAK,GAEHQ,EAASl9E,OAAS,EAAG,CACvBkuB,EAAIgvD,EAAS,GACbxqD,EAAI5rB,EAAO41E,GACXA,IACAv5D,GAAQ,KAAOwgC,EAAG,GAAKoU,EAAI,IAAM,KAAOpU,EAAG,GAAKoU,EAAI,IAAM,KAAOrlC,EAAE,GAAKxE,EAAE,IAAM,KAAOwE,EAAE,GAAKxE,EAAE,IAAM,IAAMwE,EAAE,GAAK,IAAMA,EAAE,GAC3H,IAAK,IAAI9wB,EAAI,EAAGA,EAAIs7E,EAASl9E,OAAQ4B,IAAK86E,IACxChqD,EAAI5rB,EAAO41E,GACXxuD,EAAIgvD,EAASt7E,GACbuhB,GAAQ,KAAOuP,EAAE,GAAKxE,EAAE,IAAM,KAAOwE,EAAE,GAAKxE,EAAE,IAAM,IAAMwE,EAAE,GAAK,IAAMA,EAAE,EAE7E,CACA,GAAIkyC,EAAM,CACR,IAAI0Y,EAAKx2E,EAAO41E,GAChBv5D,GAAQ,KAAOuP,EAAE,GAAY,EAAPxE,EAAE,GAAS,GAAK,KAAOwE,EAAE,GAAY,EAAPxE,EAAE,GAAS,GAAK,IAAMovD,EAAG,GAAK,IAAMA,EAAG,EAC7F,CACA,OAAOn6D,CACT,CACA,SAAS65D,GAA4Bl2E,EAAQm1E,GAE3C,IADA,IAA0Ct4B,EAAtCu5B,EAAW,GAAIlyD,GAAK,EAAIixD,GAAW,EAAOrrE,EAAK9J,EAAO,GAAI+J,EAAK/J,EAAO,GAAIlF,EAAI,EAAGkoB,EAAIhjB,EAAO9G,SACvF4B,EAAIkoB,GACX65B,EAAK/yC,EACLA,EAAKC,EACLA,EAAK/J,EAAOlF,GACZs7E,EAAS38E,KAAK,CAACyqB,GAAKna,EAAG,GAAK8yC,EAAG,IAAK34B,GAAKna,EAAG,GAAK8yC,EAAG,MAEtD,OAAOu5B,CACT,CACA,SAAST,GAAiB31E,GACxB,GAAIA,EAAO9G,OAAS,EAAG,OAAO+7E,GAAkBj1E,GAChD,IAAIlF,EAAI,EAAGkoB,EAAIhjB,EAAO9G,OAAQ08E,EAAK51E,EAAO,GAAIk+C,EAAK03B,EAAG,GAAIx3B,EAAKw3B,EAAG,GAAI3lD,EAAK,CAACiuB,EAAIA,EAAIA,GAAK03B,EAAK51E,EAAO,IAAI,IAAKkwB,EAAK,CAACkuB,EAAIA,EAAIA,EAAIw3B,EAAG,IAAKv5D,EAAO,CAAC6hC,EAAI,IAAKE,EAAI,IAAKy3B,GAAgBC,GAAyB7lD,GAAK,IAAK4lD,GAAgBC,GAAyB5lD,IAE9P,IADAlwB,EAAOvG,KAAKuG,EAAOgjB,EAAI,MACdloB,GAAKkoB,GACZ4yD,EAAK51E,EAAOlF,GACZm1B,EAAGzM,QACHyM,EAAGx2B,KAAKm8E,EAAG,IACX1lD,EAAG1M,QACH0M,EAAGz2B,KAAKm8E,EAAG,IACXG,GAAuB15D,EAAM4T,EAAIC,GAInC,OAFAlwB,EAAOi0D,MACP53C,EAAK5iB,KAAK,IAAKm8E,GACRv5D,EAAK3c,KAAK,GACnB,CAqDA,SAASm2E,GAAgB3xD,EAAG4H,GAC1B,OAAO5H,EAAE,GAAK4H,EAAE,GAAK5H,EAAE,GAAK4H,EAAE,GAAK5H,EAAE,GAAK4H,EAAE,GAAK5H,EAAE,GAAK4H,EAAE,EAC5D,CA9IAwpD,GAAyBl7E,SAAQ,SAASL,EAAKkC,GAC7CA,EAAMlC,IAAMA,EACZkC,EAAMi3D,OAAS,WAAWhzC,KAAKnmB,EACjC,IA4IA,IAAI08E,GAA0B,CAAC,EAAG,EAAI,EAAG,EAAI,EAAG,GAAIC,GAA0B,CAAC,EAAG,EAAI,EAAG,EAAI,EAAG,GAAIZ,GAA0B,CAAC,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GACpJ,SAASC,GAAuB15D,EAAMpb,EAAGC,GACvCmb,EAAK5iB,KAAK,IAAKo8E,GAAgBY,GAAyBx1E,GAAI,IAAK40E,GAAgBY,GAAyBv1E,GAAI,IAAK20E,GAAgBa,GAAyBz1E,GAAI,IAAK40E,GAAgBa,GAAyBx1E,GAAI,IAAK20E,GAAgBC,GAAyB70E,GAAI,IAAK40E,GAAgBC,GAAyB50E,GACpT,CACA,SAASm1E,GAAiBx5B,EAAI/yC,GAC5B,OAAQA,EAAG,GAAK+yC,EAAG,KAAO/yC,EAAG,GAAK+yC,EAAG,GACvC,CA0CA,SAAS85B,GAAkB32E,GAEzB,IADA,IAAIu5C,EAAkCryB,EAAGhD,EAA9BppB,GAAK,EAAGkoB,EAAIhjB,EAAO9G,SACrB4B,EAAIkoB,GAEXkE,GADAqyB,EAAQv5C,EAAOlF,IACL,GACVopB,EAAIq1B,EAAM,GAAK4C,GACf5C,EAAM,GAAKryB,EAAIxrB,KAAKsnD,IAAI9+B,GACxBq1B,EAAM,GAAKryB,EAAIxrB,KAAKunD,IAAI/+B,GAE1B,OAAOlkB,CACT,CACA,SAAS42E,GAAY7B,GACnB,IAAI72B,EAAKiT,GAAgBhT,EAAKgT,GAAgB/S,EAAK,EAAGC,EAAK+S,GAAgB4jB,EAAUH,GAASrX,EAAcyX,GAAmBC,EAAiB1X,EAAYzjE,IAAK88E,EAAqBrZ,EAAa19B,EAAI,IAAKq1C,EAAU,GACtN,SAASpiB,EAAKvd,GACZ,IAAwE1oC,EAIpD7L,EAAGC,EAJnBk0E,EAAW,GAAI0B,EAAU,GAAIC,EAAU,GAAIj8E,GAAK,EAAGkoB,EAAIwyB,EAAKt8C,OAAW89E,EAAM7pB,GAAWjP,GAAK+4B,EAAM9pB,GAAW/O,GAAK84B,EAAMh5B,IAAOC,EAAK,WACvI,OAAOl9C,CACT,EAAIksD,GAAWhP,GAAKg5B,EAAM/4B,IAAOC,EAAK,WACpC,OAAOn9C,CACT,EAAIisD,GAAW9O,GACf,SAASg3B,IACPD,EAAS37E,KAAK,IAAK+jE,EAAYuX,EAAWgC,GAAU5B,GAAUr1C,EAAG+2C,EAAmB9B,EAAW+B,EAAQ5O,WAAYiN,GAAU,IAC/H,CACA,OAASr6E,EAAIkoB,GACPgyD,EAAQryE,KAAK9J,KAAMiU,EAAI0oC,EAAK16C,GAAIA,IAClCg8E,EAAQr9E,KAAK,CAACwH,GAAK+1E,EAAIr0E,KAAK9J,KAAMiU,EAAGhS,GAAIoG,GAAK+1E,EAAIt0E,KAAK9J,KAAMiU,EAAGhS,KAChEi8E,EAAQt9E,KAAK,EAAEy9E,EAAIv0E,KAAK9J,KAAMiU,EAAGhS,IAAKq8E,EAAIx0E,KAAK9J,KAAMiU,EAAGhS,MAC/Cg8E,EAAQ59E,SACjBm8E,IACAyB,EAAU,GACVC,EAAU,IAId,OADID,EAAQ59E,QAAQm8E,IACbD,EAASl8E,OAASk8E,EAAS11E,KAAK,IAAM,IAC/C,CAiDA,OAhDAqzD,EAAK9xD,EAAI,SAAS86B,GAChB,OAAKl2B,UAAU3M,QACfglD,EAAKC,EAAKpiB,EACHg3B,GAFuB5U,CAGhC,EACA4U,EAAK7U,GAAK,SAASniB,GACjB,OAAKl2B,UAAU3M,QACfglD,EAAKniB,EACEg3B,GAFuB7U,CAGhC,EACA6U,EAAK5U,GAAK,SAASpiB,GACjB,OAAKl2B,UAAU3M,QACfilD,EAAKpiB,EACEg3B,GAFuB5U,CAGhC,EACA4U,EAAK7xD,EAAI,SAAS66B,GAChB,OAAKl2B,UAAU3M,QACfklD,EAAKC,EAAKtiB,EACHg3B,GAFuB1U,CAGhC,EACA0U,EAAK3U,GAAK,SAASriB,GACjB,OAAKl2B,UAAU3M,QACfklD,EAAKriB,EACEg3B,GAFuB3U,CAGhC,EACA2U,EAAK1U,GAAK,SAAStiB,GACjB,OAAKl2B,UAAU3M,QACfmlD,EAAKtiB,EACEg3B,GAFuB1U,CAGhC,EACA0U,EAAKiiB,QAAU,SAASj5C,GACtB,OAAKl2B,UAAU3M,QACf87E,EAAUj5C,EACHg3B,GAFuBiiB,CAGhC,EACAjiB,EAAKyK,YAAc,SAASzhC,GAC1B,OAAKl2B,UAAU3M,QACcg8E,EAAZ,oBAANn5C,EAAmCyhC,EAAczhC,GACrCyhC,EAAc8X,GAAyB1zE,IAAIm6B,IAAMk5C,IAAmBl7E,IAC3F88E,EAAqBrZ,EAAY0K,SAAW1K,EAC5C19B,EAAI09B,EAAYtK,OAAS,IAAM,IACxBH,GALuBmiB,CAMhC,EACAniB,EAAKoiB,QAAU,SAASp5C,GACtB,OAAKl2B,UAAU3M,QACfi8E,EAAUp5C,EACHg3B,GAFuBoiB,CAGhC,EACOpiB,CACT,CAgBA,SAASqkB,GAAUtqE,GACjB,OAAOA,EAAE6pB,MACX,CACA,SAAS0gD,GAAUvqE,GACjB,OAAOA,EAAEiS,MACX,CAqDA,SAASu4D,GAAmBxqE,GAC1B,OAAOA,EAAEo/D,MACX,CA+BA,SAASqL,GAA0BzqE,GACjC,MAAO,CAACA,EAAE7L,EAAG6L,EAAE5L,EACjB,CA+BA,SAASs2E,KACP,OAAO,EACT,CACA,SAASC,KACP,MAAO,QACT,CACA,SAASC,GAAoB52E,GAC3B,IAAIomB,EAAIxrB,KAAK2xC,KAAKvsC,EAAOi7C,IACzB,MAAO,MAAQ70B,EAAI,IAAMA,EAAI,IAAMA,EAAI,aAAeA,EAAI,IAAMA,EAAI,IAAMA,EAAI,YAAcA,EAAI,GAClG,CA/OA2jB,EAAGiJ,IAAI32C,KAAKw6E,OAAS,WACnB,IAAIx6E,EAAO23E,GAAY6B,IAGvB,OAFAx5E,EAAK+uE,OAAS/uE,EAAK8D,SAAU9D,EAAK8D,EAClC9D,EAAKy5D,MAAQz5D,EAAK+D,SAAU/D,EAAK+D,EAC1B/D,CACT,EAsFAq4E,GAAsBtN,QAAUuN,GAChCA,GAAqBvN,QAAUsN,GAC/B3qC,EAAGiJ,IAAIif,KAAO,WACZ,OAAO6jB,GAAYvnC,EACrB,EACAxE,EAAGiJ,IAAIif,KAAK4kB,OAAS,WACnB,IAAI5kB,EAAO6jB,GAAYD,IAOvB,OANA5jB,EAAKmZ,OAASnZ,EAAK9xD,SAAU8xD,EAAK9xD,EAClC8xD,EAAKsf,YAActf,EAAK7U,UAAW6U,EAAK7U,GACxC6U,EAAKwf,YAAcxf,EAAK5U,UAAW4U,EAAK5U,GACxC4U,EAAK6D,MAAQ7D,EAAK7xD,SAAU6xD,EAAK7xD,EACjC6xD,EAAKiR,WAAajR,EAAK3U,UAAW2U,EAAK3U,GACvC2U,EAAKkR,SAAWlR,EAAK1U,UAAW0U,EAAK1U,GAC9B0U,CACT,EAOAloB,EAAGiJ,IAAIovB,MAAQ,WACb,IAAIvsC,EAASygD,GAAWr4D,EAASs4D,GAAWnL,EAASoL,GAAoBtT,EAAa4O,GAAsB3O,EAAW4O,GACvH,SAAS3P,EAAMp2D,EAAGhS,GAChB,IAacopB,EAAG4H,EAbb9H,EAAIsvB,EAASz6C,KAAM89B,EAAQ7pB,EAAGhS,GAAIssB,EAAIksB,EAASz6C,KAAMkmB,EAAQjS,EAAGhS,GACpE,MAAO,IAAMkpB,EAAE64B,GAAKmZ,EAAIhyC,EAAEkD,EAAGlD,EAAEla,GAAIka,EAAE8/C,GAAK9/C,EAAE6/C,KAY3B/3C,EAZ4C1E,IAY/ClD,EAZ4CF,GAajD6/C,IAAM/3C,EAAE+3C,IAAM3/C,EAAE4/C,IAAMh4C,EAAEg4C,GAbiC8T,EAAM5zD,EAAEkD,EAAGlD,EAAEla,GAAIka,EAAEkD,EAAGlD,EAAE64B,IAAM+6B,EAAM5zD,EAAEkD,EAAGlD,EAAEla,GAAIsd,EAAEF,EAAGE,EAAEy1B,IAAMmZ,EAAI5uC,EAAEF,EAAGE,EAAEtd,GAAIsd,EAAE08C,GAAK18C,EAAEy8C,IAAM+T,EAAMxwD,EAAEF,EAAGE,EAAEtd,GAAIka,EAAEkD,EAAGlD,EAAE64B,KAAO,IAC7L,CACA,SAASvJ,EAAS/K,EAAOpkB,EAAGrX,EAAGhS,GAC7B,IAAI+8E,EAAY1zD,EAAExhB,KAAK4lC,EAAOz7B,EAAGhS,GAAIosB,EAAIglD,EAAOvpE,KAAK4lC,EAAOsvC,EAAW/8E,GAAI+oE,EAAKG,EAAWrhE,KAAK4lC,EAAOsvC,EAAW/8E,GAAKqhD,GAAY2nB,EAAKG,EAASthE,KAAK4lC,EAAOsvC,EAAW/8E,GAAKqhD,GAC7K,MAAO,CACLj1B,IACA28C,KACAC,KACAjnB,GAAI,CAAC31B,EAAIxrB,KAAKsnD,IAAI6gB,GAAK38C,EAAIxrB,KAAKunD,IAAI4gB,IACpC/5D,GAAI,CAACod,EAAIxrB,KAAKsnD,IAAI8gB,GAAK58C,EAAIxrB,KAAKunD,IAAI6gB,IAExC,CAIA,SAAS9N,EAAI9uC,EAAG0E,EAAG1H,GACjB,MAAO,IAAMgD,EAAI,IAAMA,EAAI,SAAUhD,EAAI63B,IAAU,MAAQnwB,CAC7D,CACA,SAASgsD,EAAMn6B,EAAIZ,EAAIa,EAAI5zC,GACzB,MAAO,SAAWA,CACpB,CA0BA,OAzBAo5D,EAAMgJ,OAAS,SAAS/wC,GACtB,OAAKt1B,UAAU3M,QACfgzE,EAAS/e,GAAWhyB,GACb+nC,GAFuBgJ,CAGhC,EACAhJ,EAAMvsC,OAAS,SAASwE,GACtB,OAAKt1B,UAAU3M,QACfy9B,EAASw2B,GAAWhyB,GACb+nC,GAFuBvsC,CAGhC,EACAusC,EAAMnkD,OAAS,SAASoc,GACtB,OAAKt1B,UAAU3M,QACf6lB,EAASouC,GAAWhyB,GACb+nC,GAFuBnkD,CAGhC,EACAmkD,EAAMc,WAAa,SAAS7oC,GAC1B,OAAKt1B,UAAU3M,QACf8qE,EAAa7W,GAAWhyB,GACjB+nC,GAFuBc,CAGhC,EACAd,EAAMe,SAAW,SAAS9oC,GACxB,OAAKt1B,UAAU3M,QACf+qE,EAAW9W,GAAWhyB,GACf+nC,GAFuBe,CAGhC,EACOf,CACT,EAIAr4B,EAAGiJ,IAAIgkC,SAAW,WAChB,IAAInhD,EAASygD,GAAWr4D,EAASs4D,GAAWtC,EAAawC,GACzD,SAASO,EAAShrE,EAAGhS,GACnB,IAAI+hD,EAAKlmB,EAAOh0B,KAAK9J,KAAMiU,EAAGhS,GAAIi9E,EAAKh5D,EAAOpc,KAAK9J,KAAMiU,EAAGhS,GAAI6wB,GAAKkxB,EAAG37C,EAAI62E,EAAG72E,GAAK,EAAG0qB,EAAI,CAACixB,EAAI,CAC9F57C,EAAG47C,EAAG57C,EACNC,EAAGyqB,GACF,CACD1qB,EAAG82E,EAAG92E,EACNC,EAAGyqB,GACFosD,GAEH,MAAO,KADPnsD,EAAIA,EAAEzpB,IAAI4yE,IACK,GAAK,IAAMnpD,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAMA,EAAE,EACxD,CAgBA,OAfAksD,EAASnhD,OAAS,SAAS11B,GACzB,OAAK4E,UAAU3M,QACfy9B,EAASw2B,GAAWlsD,GACb62E,GAFuBnhD,CAGhC,EACAmhD,EAAS/4D,OAAS,SAAS9d,GACzB,OAAK4E,UAAU3M,QACf6lB,EAASouC,GAAWlsD,GACb62E,GAFuB/4D,CAGhC,EACA+4D,EAAS/C,WAAa,SAAS9zE,GAC7B,OAAK4E,UAAU3M,QACf67E,EAAa9zE,EACN62E,GAFuB/C,CAGhC,EACO+C,CACT,EAIAjtC,EAAGiJ,IAAIgkC,SAASH,OAAS,WACvB,IAAIG,EAAWjtC,EAAGiJ,IAAIgkC,WAAY/C,EAAawC,GAA2BS,EAAcF,EAAS/C,WAIjG,OAHA+C,EAAS/C,WAAa,SAAS9zE,GAC7B,OAAO4E,UAAU3M,OAAS8+E,EAI9B,SAAyCjD,GACvC,OAAO,WACL,IAAIjoE,EAAIioE,EAAW7uE,MAAMrN,KAAMgN,WAAYqhB,EAAIpa,EAAE,GAAIoX,EAAIpX,EAAE,GAAKqvC,GAChE,MAAO,CAACj1B,EAAIxrB,KAAKsnD,IAAI9+B,GAAIgD,EAAIxrB,KAAKunD,IAAI/+B,GACxC,CACF,CAT0C+zD,CAAgClD,EAAa9zE,IAAM8zE,CAC3F,EACO+C,CACT,EAOAjtC,EAAGiJ,IAAIokC,OAAS,WACd,IAAIv6E,EAAO85E,GAAmB32E,EAAO02E,GACrC,SAASU,EAAOprE,EAAGhS,GACjB,OAAQq9E,GAAev2E,IAAIjE,EAAKgF,KAAK9J,KAAMiU,EAAGhS,KAAO48E,IAAqB52E,EAAK6B,KAAK9J,KAAMiU,EAAGhS,GAC/F,CAWA,OAVAo9E,EAAOv6E,KAAO,SAASsD,GACrB,OAAK4E,UAAU3M,QACfyE,EAAOwvD,GAAWlsD,GACXi3E,GAFuBv6E,CAGhC,EACAu6E,EAAOp3E,KAAO,SAASG,GACrB,OAAK4E,UAAU3M,QACf4H,EAAOqsD,GAAWlsD,GACXi3E,GAFuBp3E,CAGhC,EACOo3E,CACT,EAWA,IAAIC,GAAiBttC,EAAG1oC,IAAI,CAC1B2xD,OAAQ4jB,GACRU,MAAO,SAASt3E,GACd,IAAIomB,EAAIxrB,KAAK2xC,KAAKvsC,EAAO,GAAK,EAC9B,MAAO,KAAO,EAAIomB,EAAI,KAAOA,EAAI,KAAOA,EAAI,KAAO,EAAIA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAM,EAAIA,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAM,EAAIA,EAAI,KAAOA,EAAI,IAAMA,EAAI,KAAO,EAAIA,EAAI,GACtK,EACAmxD,QAAS,SAASv3E,GAChB,IAAI02D,EAAK97D,KAAK2xC,KAAKvsC,GAAQ,EAAIw3E,KAAsB/gB,EAAKC,EAAK8gB,GAC/D,MAAO,OAAS9gB,EAAK,IAAMD,EAAK,QAAUC,EAAK,KAAOD,EAAK,KAC7D,EACAghB,OAAQ,SAASz3E,GACf,IAAIomB,EAAIxrB,KAAK2xC,KAAKvsC,GAAQ,EAC1B,MAAO,KAAOomB,EAAI,KAAOA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAMA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAMA,EAAI,GAC7F,EACA,gBAAiB,SAASpmB,GACxB,IAAIy2D,EAAK77D,KAAK2xC,KAAKvsC,EAAO03E,IAAqBhhB,EAAKD,EAAKihB,GAAqB,EAC9E,MAAO,MAAQhhB,EAAK,IAAMD,EAAK,KAAOC,EAAK,KAAOD,EAAK,KAAOC,EAAK,GACrE,EACA,cAAe,SAAS12D,GACtB,IAAIy2D,EAAK77D,KAAK2xC,KAAKvsC,EAAO03E,IAAqBhhB,EAAKD,EAAKihB,GAAqB,EAC9E,MAAO,OAAShhB,EAAK,IAAMD,EAAK,IAAMC,EAAK,KAAOD,EAAK,IAAMC,EAAK,GACpE,IAEF3sB,EAAGiJ,IAAI2kC,YAAcN,GAAep4D,OACpC,IAAIy4D,GAAqB98E,KAAK2xC,KAAK,GAAIirC,GAAqB58E,KAAK+wD,IAAI,GAAKrQ,IAC1E3J,EAAsBziC,WAAa,SAASo3B,GAO1C,IANA,IAA0GkM,EAAU91C,EAAhHy8B,EAAKunB,MAA4Bk3B,GAAiBtkC,EAAKukC,GAAuBvxC,GAAQqM,EAAY,GAAoBzjC,EAAa4oE,IAAwB,CAC7Jx6D,KAAMoe,KAAK+O,MACXk0B,KAAMZ,GACNjjD,MAAO,EACP1L,SAAU,KAEHnP,GAAK,EAAG4qB,EAAI9yB,KAAKK,SAAU6H,EAAI4qB,GAAK,CAC3C8nB,EAAUh6C,KAAK65C,EAAW,IAC1B,IAAK,IAAIE,EAAQ36C,KAAKkI,GAAIjG,GAAK,EAAGkoB,EAAIwwB,EAAMt6C,SAAU4B,EAAIkoB,IACpDxlB,EAAOg2C,EAAM14C,KAAI+9E,GAAkBr7E,EAAM1C,EAAGs5C,EAAIna,EAAIjqB,GACxDsjC,EAAS75C,KAAK+D,EAElB,CACA,OAAOs7E,GAAcrlC,EAAWW,EAAIna,EACtC,EACAwY,EAAsBsmC,UAAY,SAAS3xC,GACzC,OAAOvuC,KAAKo9C,KAAc,MAAT7O,EAAgB2Y,GAAyBi5B,GAAyBL,GAAuBvxC,IAC5G,EACA,IAAI2Y,GAAyBi5B,GAAyBL,MACtD,SAASK,GAAyB5kC,GAChC,OAAO,WACL,IAAI6kC,EAAMC,EAAUpoE,GACfmoE,EAAOpgF,KAAKu7C,MAAStjC,EAASmoE,EAAKC,EAAWD,EAAKnoE,WACtDA,EAAOq3B,MAAMtN,EAAI,KACjB/pB,EAAOq3B,MAAM/gB,EAAIqV,MACXw8C,EAAKt6E,aAAcs6E,EAAKC,UAClBrgF,KAAKu7C,GACjB6kC,EAAKnoE,QAAU,GACfA,EAAOyN,OAASzN,EAAOyN,MAAMw6D,UAAUp2E,KAAK9J,KAAMA,KAAK66C,SAAU5iC,EAAOrU,OAE5E,CACF,CACA,SAASq8E,GAActmC,EAAQ4B,EAAIna,GAIjC,OAHAqY,EAAYE,EAAQ2mC,IACpB3mC,EAAO4C,UAAYhB,EACnB5B,EAAOvY,GAAKA,EACLuY,CACT,CACA,IAAsDgP,GAAwBo3B,GAA1EO,GAAyB,GAAIT,GAAkB,EAkEnD,SAASU,GAAoB5mC,EAAQpL,EAAOnrC,EAAOwlD,GACjD,IAAIxnB,EAAKuY,EAAOvY,GAAIma,EAAK5B,EAAO4C,UAChC,OAAOQ,GAAkBpD,EAAyB,oBAAVv2C,EAAuB,SAASuB,EAAM1C,EAAGiG,GAC/EvD,EAAK42C,GAAIna,GAAIwnB,MAAM5/C,IAAIulC,EAAOqa,EAAMxlD,EAAM0G,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,IACzE,GAAK9E,EAAQwlD,EAAMxlD,GAAQ,SAASuB,GAClCA,EAAK42C,GAAIna,GAAIwnB,MAAM5/C,IAAIulC,EAAOnrC,EAChC,GACF,CAmFA,SAASo9E,GAAmBvtD,GAE1B,OADS,MAALA,IAAWA,EAAI,IACZ,WACLjzB,KAAKy9C,YAAcxqB,CACrB,CACF,CA2EA,SAAS6sD,GAAuBvxC,GAC9B,OAAgB,MAATA,EAAgB,iBAAmB,gBAAkBA,EAAQ,IACtE,CACA,SAASyxC,GAAkBr7E,EAAM1C,EAAGs5C,EAAIna,EAAI7pB,GAC1C,IAG2BgO,EAAM+pB,EAAOj4B,EAAUuvD,EAAM6Z,EAHpDL,EAAOz7E,EAAK42C,KAAQ52C,EAAK42C,GAAM,CACjCtjC,OAAQ,EACRnS,MAAO,IACLqR,EAAaipE,EAAKh/C,GAOtB,SAASta,EAAM45D,GACb,IAAIL,EAAWD,EAAKnoE,OAAQA,EAASmoE,EAAKC,GAQ1C,IAAK,IAAIM,KAPL1oE,IACFA,EAAOq3B,MAAMtN,EAAI,KACjB/pB,EAAOq3B,MAAM/gB,EAAIqV,MACfw8C,EAAKt6E,aACAs6E,EAAKC,GACZpoE,EAAOyN,OAASzN,EAAOyN,MAAMw6D,UAAUp2E,KAAKnF,EAAMA,EAAKk2C,SAAU5iC,EAAOrU,QAErDw8E,EACnB,IAAKO,EAAWv/C,EAAI,CAClB,IAAIw/C,EAASR,EAAKO,GAClBC,EAAOtxC,MAAMtN,EAAI,KACjB4+C,EAAOtxC,MAAM/gB,EAAIqV,MACfw8C,EAAKt6E,aACAs6E,EAAKO,EACd,CAEFrxC,EAAMtN,EAAIuqC,EACVxU,IAAS,WAKP,OAJIzoB,EAAMtN,GAAKuqC,EAAKmU,GAAW,KAC7BpxC,EAAMtN,EAAI,KACVsN,EAAM/gB,EAAIqV,KAEL,CACT,GAAG,EAAGre,GACN66D,EAAKnoE,OAASmpB,EACdjqB,EAAWuO,OAASvO,EAAWuO,MAAMoB,MAAMhd,KAAKnF,EAAMA,EAAKk2C,SAAU54C,GACrEw+E,EAAS,GACTtpE,EAAWyxC,MAAMrnD,SAAQ,SAASL,EAAKkC,IACjCA,EAAQA,EAAM0G,KAAKnF,EAAMA,EAAKk2C,SAAU54C,KAC1Cw+E,EAAO7/E,KAAKwC,EAEhB,IACAwjE,EAAOzvD,EAAWyvD,KAClBvvD,EAAWF,EAAWE,QACxB,CACA,SAASk1D,EAAKmU,GAEZ,IADA,IAAInyD,EAAImyD,EAAUrpE,EAAU9U,EAAIqkE,EAAKr4C,GAAIpE,EAAIs2D,EAAOpgF,OAC7C8pB,EAAI,GACTs2D,IAASt2D,GAAGrgB,KAAKnF,EAAMpC,GAEzB,GAAIgsB,GAAK,EAIP,OAHApX,EAAWuO,OAASvO,EAAWuO,MAAM1hB,IAAI8F,KAAKnF,EAAMA,EAAKk2C,SAAU54C,KAC7Dm+E,EAAKt6E,aAAcs6E,EAAKh/C,UAClBz8B,EAAK42C,GACV,CAEX,CACKpkC,IACHoO,EAAOhO,EAAQgO,KACf+pB,EAAQyoB,IAzDV,SAAkB2oB,GAChB,IAAI39D,EAAQ5L,EAAW4L,MAEvB,GADAusB,EAAM/gB,EAAIxL,EAAQwC,EACdxC,GAAS29D,EAAS,OAAO55D,EAAM45D,EAAU39D,GAC7CusB,EAAMtN,EAAIlb,CACZ,GAoD6B,EAAGvB,GAC9BpO,EAAaipE,EAAKh/C,GAAM,CACtBwnB,MAAO,IAAI7S,EACXxwB,OACA+pB,QACAvsB,MAAOxL,EAAQwL,MACf1L,SAAUE,EAAQF,SAClBuvD,KAAMrvD,EAAQqvD,KACdhjE,MAAO3B,GAETsV,EAAU,OACR6oE,EAAKt6E,MAEX,CAzTAw6E,GAAuBx2E,KAAO8vC,EAAsB9vC,KACpDw2E,GAAuBlpC,MAAQwC,EAAsBxC,MACrDkpC,GAAuB37E,KAAOi1C,EAAsBj1C,KACpD27E,GAAuBr4E,KAAO2xC,EAAsB3xC,KACpD+pC,EAAG76B,WAAa,SAASkjC,EAAW9L,GAClC,OAAO8L,GAAaA,EAAUljC,WAAawxC,GAAyBtO,EAAUljC,WAAWo3B,GAAS8L,EAAYrI,EAAGqI,YAAYljC,WAAWkjC,EAC1I,EACArI,EAAG76B,WAAW/V,UAAYk/E,GAC1BA,GAAuBhmC,OAAS,SAASzvC,GACvC,IAAuD4vC,EAAUC,EAAS/1C,EAAtEy8B,EAAKphC,KAAKohC,GAAIma,EAAKv7C,KAAKu8C,UAAW3B,EAAY,GACnD/vC,EAAW0vC,EAAsB1vC,GACjC,IAAK,IAAI3C,GAAK,EAAG4qB,EAAI9yB,KAAKK,SAAU6H,EAAI4qB,GAAK,CAC3C8nB,EAAUh6C,KAAK65C,EAAW,IAC1B,IAAK,IAAIE,EAAQ36C,KAAKkI,GAAIjG,GAAK,EAAGkoB,EAAIwwB,EAAMt6C,SAAU4B,EAAIkoB,IACnDxlB,EAAOg2C,EAAM14C,MAAQy4C,EAAU7vC,EAASf,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,KACpE,aAAcvD,IAAM+1C,EAAQG,SAAWl2C,EAAKk2C,UAChDmlC,GAAkBtlC,EAASz4C,EAAGs5C,EAAIna,EAAIz8B,EAAK42C,GAAIna,IAC/CqZ,EAAS75C,KAAK85C,IAEdD,EAAS75C,KAAK,KAGpB,CACA,OAAOq/E,GAAcrlC,EAAWW,EAAIna,EACtC,EACAk/C,GAAuBxlC,UAAY,SAASjwC,GAC1C,IAAuD4vC,EAAUomC,EAAUl8E,EAAM+1C,EAASvjC,EAAtFiqB,EAAKphC,KAAKohC,GAAIma,EAAKv7C,KAAKu8C,UAAW3B,EAAY,GACnD/vC,EAAW2vC,EAAyB3vC,GACpC,IAAK,IAAI3C,GAAK,EAAG4qB,EAAI9yB,KAAKK,SAAU6H,EAAI4qB,GACtC,IAAK,IAAI6nB,EAAQ36C,KAAKkI,GAAIjG,GAAK,EAAGkoB,EAAIwwB,EAAMt6C,SAAU4B,EAAIkoB,GACxD,GAAIxlB,EAAOg2C,EAAM14C,GAAI,CACnBkV,EAAaxS,EAAK42C,GAAIna,GACtBy/C,EAAWh2E,EAASf,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,GACjD0yC,EAAUh6C,KAAK65C,EAAW,IAC1B,IAAK,IAAItyC,GAAK,EAAG45B,EAAI8+C,EAASxgF,SAAU8H,EAAI45B,IACtC2Y,EAAUmmC,EAAS14E,KAAI63E,GAAkBtlC,EAASvyC,EAAGozC,EAAIna,EAAIjqB,GACjEsjC,EAAS75C,KAAK85C,EAElB,CAGJ,OAAOulC,GAAcrlC,EAAWW,EAAIna,EACtC,EACAk/C,GAAuBj0D,OAAS,SAASA,GACvC,IAAoBouB,EAAiB91C,EAAjCi2C,EAAY,GACM,oBAAXvuB,IAAuBA,EAASuwB,GAAoBvwB,IAC/D,IAAK,IAAInkB,EAAI,EAAG4qB,EAAI9yB,KAAKK,OAAQ6H,EAAI4qB,EAAG5qB,IAAK,CAC3C0yC,EAAUh6C,KAAK65C,EAAW,IAC1B,IAAK,IAAIE,EAAiB14C,EAAI,EAAGkoB,GAAxBwwB,EAAQ36C,KAAKkI,IAAqB7H,OAAQ4B,EAAIkoB,EAAGloB,KACnD0C,EAAOg2C,EAAM14C,KAAOoqB,EAAOviB,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,IAC3DuyC,EAAS75C,KAAK+D,EAGpB,CACA,OAAOs7E,GAAcrlC,EAAW56C,KAAKu8C,UAAWv8C,KAAKohC,GACvD,EACAk/C,GAAuB13B,MAAQ,SAASra,EAAOqa,GAC7C,IAAIxnB,EAAKphC,KAAKohC,GAAIma,EAAKv7C,KAAKu8C,UAC5B,OAAIvvC,UAAU3M,OAAS,EAAUL,KAAK2E,OAAO42C,GAAIna,GAAIwnB,MAAM7/C,IAAIwlC,GACxDwO,GAAkB/8C,KAAe,MAAT4oD,EAAgB,SAASjkD,GACtDA,EAAK42C,GAAIna,GAAIwnB,MAAMzR,OAAO5I,EAC5B,EAAI,SAAS5pC,GACXA,EAAK42C,GAAIna,GAAIwnB,MAAM5/C,IAAIulC,EAAOqa,EAChC,EACF,EASA03B,GAAuBpjC,KAAO,SAAS4jC,EAAQ19E,GAC7C,GAAI4J,UAAU3M,OAAS,EAAG,CACxB,IAAK+C,KAAS09E,EAAQ9gF,KAAKk9C,KAAK95C,EAAO09E,EAAO19E,IAC9C,OAAOpD,IACT,CACA,IAAI2kE,EAAwB,aAAVmc,EAAwBhZ,GAA0B/F,GAAgBxzB,EAAQyD,EAAGuJ,GAAGC,QAAQslC,GAC1G,SAASC,IACP/gF,KAAK07C,gBAAgBnN,EACvB,CACA,SAASyyC,IACPhhF,KAAKy7C,kBAAkBlN,EAAM4E,MAAO5E,EAAM6E,MAC5C,CAiBA,OAAOmtC,GAAoBvgF,KAAM,QAAU8gF,EAAQ19E,EAAOmrC,EAAM6E,MARhE,SAAqBngB,GACnB,OAAY,MAALA,EAAY+tD,GAAc/tD,GAAK,GAAI,WACxC,IAAuDhxB,EAAnDopB,EAAIrrB,KAAKm9C,eAAe5O,EAAM4E,MAAO5E,EAAM6E,OAC/C,OAAO/nB,IAAM4H,IAAMhxB,EAAI0iE,EAAYt5C,EAAG4H,GAAI,SAAS1E,GACjDvuB,KAAK+yC,eAAexE,EAAM4E,MAAO5E,EAAM6E,MAAOnxC,EAAEssB,GAClD,EACF,EACF,EAfA,SAAmB0E,GACjB,OAAY,MAALA,EAAY8tD,GAAY9tD,GAAK,GAAI,WACtC,IAAkChxB,EAA9BopB,EAAIrrB,KAAK+J,aAAawkC,GAC1B,OAAOljB,IAAM4H,IAAMhxB,EAAI0iE,EAAYt5C,EAAG4H,GAAI,SAAS1E,GACjDvuB,KAAK4B,aAAa2sC,EAAOtsC,EAAEssB,GAC7B,EACF,EACF,EAUF,EACA+xD,GAAuBW,UAAY,SAASH,EAAQl4B,GAClD,IAAIra,EAAQyD,EAAGuJ,GAAGC,QAAQslC,GAa1B,OAAO9gF,KAAK4oD,MAAM,QAAUk4B,EAAQvyC,EAAM6E,MAN1C,SAAqBn/B,EAAGhS,GACtB,IAAIqpB,EAAIs9B,EAAM9+C,KAAK9J,KAAMiU,EAAGhS,EAAGjC,KAAKm9C,eAAe5O,EAAM4E,MAAO5E,EAAM6E,QACtE,OAAO9nB,GAAK,SAASiD,GACnBvuB,KAAK+yC,eAAexE,EAAM4E,MAAO5E,EAAM6E,MAAO9nB,EAAEiD,GAClD,CACF,EAXA,SAAmBta,EAAGhS,GACpB,IAAIqpB,EAAIs9B,EAAM9+C,KAAK9J,KAAMiU,EAAGhS,EAAGjC,KAAK+J,aAAawkC,IACjD,OAAOjjB,GAAK,SAASiD,GACnBvuB,KAAK4B,aAAa2sC,EAAOjjB,EAAEiD,GAC7B,CACF,EAQF,EACA+xD,GAAuBh0D,MAAQ,SAASiiB,EAAOnrC,EAAOiwC,GACpD,IAAIlpB,EAAInd,UAAU3M,OAClB,GAAI8pB,EAAI,EAAG,CACT,GAAqB,kBAAVokB,EAAoB,CAE7B,IAAK8E,KADDlpB,EAAI,IAAG/mB,EAAQ,IACFmrC,EAAOvuC,KAAKssB,MAAM+mB,EAAU9E,EAAM8E,GAAWjwC,GAC9D,OAAOpD,IACT,CACAqzC,EAAW,EACb,CACA,SAAS6tC,IACPlhF,KAAKssB,MAAM4vB,eAAe3N,EAC5B,CASA,OAAOgyC,GAAoBvgF,KAAM,SAAWuuC,EAAOnrC,GARnD,SAAqB6vB,GACnB,OAAY,MAALA,EAAYiuD,GAAajuD,GAAK,GAAI,WACvC,IAA8EhxB,EAA1EopB,EAAIknB,EAAUvyC,MAAMu9C,iBAAiBv9C,KAAM,MAAMw9C,iBAAiBjP,GACtE,OAAOljB,IAAM4H,IAAMhxB,EAAI8/D,GAAe12C,EAAG4H,GAAI,SAAS1E,GACpDvuB,KAAKssB,MAAMqmB,YAAYpE,EAAOtsC,EAAEssB,GAAI8kB,EACtC,EACF,EACF,GAEF,EACAitC,GAAuBa,WAAa,SAAS5yC,EAAOqa,EAAOvV,GAQzD,OAPIrmC,UAAU3M,OAAS,IAAGgzC,EAAW,IAO9BrzC,KAAK4oD,MAAM,SAAWra,GAN7B,SAAoBt6B,EAAGhS,GACrB,IAAIqpB,EAAIs9B,EAAM9+C,KAAK9J,KAAMiU,EAAGhS,EAAGswC,EAAUvyC,MAAMu9C,iBAAiBv9C,KAAM,MAAMw9C,iBAAiBjP,IAC7F,OAAOjjB,GAAK,SAASiD,GACnBvuB,KAAKssB,MAAMqmB,YAAYpE,EAAOjjB,EAAEiD,GAAI8kB,EACtC,CACF,GAEF,EACAitC,GAAuBrmE,KAAO,SAAS7W,GACrC,OAAOm9E,GAAoBvgF,KAAM,OAAQoD,EAAOo9E,GAClD,EAOAF,GAAuBnpC,OAAS,WAC9B,IAAIoE,EAAKv7C,KAAKu8C,UACd,OAAOv8C,KAAKo9C,KAAK,kBAAkB,WACjC,IAAIrqB,EACA/yB,KAAKu7C,GAAIz1C,MAAQ,IAAMitB,EAAI/yB,KAAK0C,aAAaqwB,EAAEpwB,YAAY3C,KACjE,GACF,EACAsgF,GAAuB1Z,KAAO,SAASxjE,GACrC,IAAIg+B,EAAKphC,KAAKohC,GAAIma,EAAKv7C,KAAKu8C,UAC5B,OAAIvvC,UAAU3M,OAAS,EAAUL,KAAK2E,OAAO42C,GAAIna,GAAIwlC,MAChC,oBAAVxjE,IAAsBA,EAAQ4uC,EAAG40B,KAAKv5D,MAAM2kC,EAAIhlC,YACpD+vC,GAAkB/8C,MAAM,SAAS2E,GACtCA,EAAK42C,GAAIna,GAAIwlC,KAAOxjE,CACtB,IACF,EACAk9E,GAAuBv9D,MAAQ,SAAS3f,GACtC,IAAIg+B,EAAKphC,KAAKohC,GAAIma,EAAKv7C,KAAKu8C,UAC5B,OAAIvvC,UAAU3M,OAAS,EAAUL,KAAK2E,OAAO42C,GAAIna,GAAIre,MAC9Cg6B,GAAkB/8C,KAAuB,oBAAVoD,EAAuB,SAASuB,EAAM1C,EAAGiG,GAC7EvD,EAAK42C,GAAIna,GAAIre,OAAS3f,EAAM0G,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,EAC3D,GAAK9E,GAASA,EAAO,SAASuB,GAC5BA,EAAK42C,GAAIna,GAAIre,MAAQ3f,CACvB,GACF,EACAk9E,GAAuBjpE,SAAW,SAASjU,GACzC,IAAIg+B,EAAKphC,KAAKohC,GAAIma,EAAKv7C,KAAKu8C,UAC5B,OAAIvvC,UAAU3M,OAAS,EAAUL,KAAK2E,OAAO42C,GAAIna,GAAI/pB,SAC9C0lC,GAAkB/8C,KAAuB,oBAAVoD,EAAuB,SAASuB,EAAM1C,EAAGiG,GAC7EvD,EAAK42C,GAAIna,GAAI/pB,SAAWxU,KAAK6mB,IAAI,EAAGtmB,EAAM0G,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,GACzE,GAAK9E,EAAQP,KAAK6mB,IAAI,EAAGtmB,GAAQ,SAASuB,GACxCA,EAAK42C,GAAIna,GAAI/pB,SAAWjU,CAC1B,GACF,EACAk9E,GAAuBljC,KAAO,SAASt4C,EAAM8zC,GAC3C,IAAIxX,EAAKphC,KAAKohC,GAAIma,EAAKv7C,KAAKu8C,UAC5B,GAAIvvC,UAAU3M,OAAS,EAAG,CACxB,IAAIkX,EAAUwoE,GAAsBqB,EAAYz4B,GAChD,IACEA,GAAyBvnB,EACzB2b,GAAkB/8C,MAAM,SAAS2E,EAAM1C,EAAGiG,GACxC63E,GAAuBp7E,EAAK42C,GAAIna,GAChCt8B,EAAKgF,KAAKnF,EAAMA,EAAKk2C,SAAU54C,EAAGiG,EACpC,GACF,CAAE,QACA63E,GAAuBxoE,EACvBoxC,GAAyBy4B,CAC3B,CACF,MACErkC,GAAkB/8C,MAAM,SAAS2E,GAC/B,IAAIwS,EAAaxS,EAAK42C,GAAIna,IACzBjqB,EAAWuO,QAAUvO,EAAWuO,MAAQssB,EAAGwG,SAAS,QAAS,MAAO,eAAeG,GAAG7zC,EAAM8zC,EAC/F,IAEF,OAAO54C,IACT,EACAsgF,GAAuBnpE,WAAa,WAElC,IADA,IAAiFsjC,EAAiB91C,EAAMwS,EAApGkqE,EAAMrhF,KAAKohC,GAAIkgD,IAAQzB,GAAiBtkC,EAAKv7C,KAAKu8C,UAAW3B,EAAY,GACpE1yC,EAAI,EAAG4qB,EAAI9yB,KAAKK,OAAQ6H,EAAI4qB,EAAG5qB,IAAK,CAC3C0yC,EAAUh6C,KAAK65C,EAAW,IAC1B,IAAK,IAAIE,EAAiB14C,EAAI,EAAGkoB,GAAxBwwB,EAAQ36C,KAAKkI,IAAqB7H,OAAQ4B,EAAIkoB,EAAGloB,KACpD0C,EAAOg2C,EAAM14C,KAEf+9E,GAAkBr7E,EAAM1C,EAAGs5C,EAAI+lC,EAAK,CAClC/7D,MAFFpO,EAAaxS,EAAK42C,GAAI8lC,IAEH97D,KACjBqhD,KAAMzvD,EAAWyvD,KACjB7jD,MAAO5L,EAAW4L,MAAQ5L,EAAWE,SACrCA,SAAUF,EAAWE,WAGzBojC,EAAS75C,KAAK+D,EAElB,CACA,OAAOs7E,GAAcrlC,EAAWW,EAAI+lC,EACtC,EAgFAtvC,EAAGiJ,IAAIsmC,KAAO,WACZ,IAAmKC,EAA/J9xE,EAAQsiC,EAAGtiC,MAAMq1D,SAAU0c,EAASC,GAA0BC,EAAgB,EAAGC,EAAgB,EAAGC,EAAc,EAAGC,EAAiB,CAAC,IAAKC,EAAa,KAC7J,SAASR,EAAKv+C,GACZA,EAAEoa,MAAK,WACL,IAEglB4kC,EAF5kBC,EAAKjwC,EAAGsI,OAAOt6C,MACfmnD,EAASnnD,KAAKwmD,WAAa92C,EAAOy4C,EAASnoD,KAAKwmD,UAAY92C,EAAMxK,OAClEwxE,EAAsB,MAAdqL,EAAqB55B,EAAOuuB,MAAQvuB,EAAOuuB,MAAMrpE,MAAM86C,EAAQ25B,GAAkB35B,EAAOxB,SAAWo7B,EAAYnL,EAA4B,MAAf4K,EAAsBr5B,EAAOyuB,WAAazuB,EAAOyuB,WAAWvpE,MAAM86C,EAAQ25B,GAAkBtrC,EAAcgrC,EAAajV,EAAO0V,EAAGnnC,UAAU,SAAS6B,KAAK+5B,EAAOvuB,GAAS+5B,EAAY3V,EAAK/tB,QAAQh9C,OAAO,IAAK,WAAW07C,KAAK,QAAS,QAAQ5wB,MAAM,UAAW02B,IAASm/B,EAAWnwC,EAAG76B,WAAWo1D,EAAK9tB,QAAQnyB,MAAM,UAAW02B,IAAQ7L,SAAUirC,EAAapwC,EAAG76B,WAAWo1D,EAAK/8D,SAAS8c,MAAM,UAAW,GAAI+1D,EAAcx/E,KAAK6mB,IAAIi4D,EAAe,GAAKE,EAC/jB/qC,EAAQs7B,GAAcjqB,GAAS3kC,EAAOy+D,EAAGnnC,UAAU,WAAW6B,KAAK,CAAC,IAAK2lC,GAAc9+D,EAAKg7B,QAAQp6C,OAAO,QAAQ84C,KAAK,QAAS,UAAWlL,EAAG76B,WAAWqM,IAC9J0+D,EAAU99E,OAAO,QACjB89E,EAAU99E,OAAO,QACjB,IAAoQkhD,EAAIsa,EAAIpa,EAAIqa,EAA5Q0iB,EAAYL,EAAU5nC,OAAO,QAASkoC,EAAaJ,EAAW9nC,OAAO,QAASrgC,EAAOsyD,EAAKjyB,OAAO,QAAQrgC,KAAK28D,GAAa6L,EAAYP,EAAU5nC,OAAO,QAASooC,EAAaN,EAAW9nC,OAAO,QAASqoC,EAAkB,QAAXlB,GAA+B,SAAXA,GAAqB,EAAI,EAcjQ,GAbe,WAAXA,GAAkC,QAAXA,GACzBO,EAAgBY,GAAct9B,EAAK,IAAKE,EAAK,IAAKoa,EAAK,KAAMC,EAAK,KAClE5lD,EAAKijC,KAAK,KAAMylC,EAAO,EAAI,MAAQ,SAASr2D,MAAM,cAAe,UACjEg2D,EAAWplC,KAAK,IAAK,IAAMpG,EAAM,GAAK,IAAM6rC,EAAOf,EAAgB,MAAQ9qC,EAAM,GAAK,IAAM6rC,EAAOf,KAEnGI,EAAgBa,GAAcv9B,EAAK,IAAKE,EAAK,IAAKoa,EAAK,KAAMC,EAAK,KAClE5lD,EAAKijC,KAAK,KAAM,SAAS5wB,MAAM,cAAeq2D,EAAO,EAAI,MAAQ,SACjEL,EAAWplC,KAAK,IAAK,IAAMylC,EAAOf,EAAgB,IAAM9qC,EAAM,GAAK,MAAQA,EAAM,GAAK,IAAM6rC,EAAOf,IAErGW,EAAUrlC,KAAK2iB,EAAI8iB,EAAOhB,GAC1Bc,EAAUvlC,KAAKsI,EAAIm9B,EAAON,GAC1BG,EAAWtlC,KAAK0iB,EAAI,GAAG1iB,KAAK2iB,EAAI8iB,EAAOhB,GACvCe,EAAWxlC,KAAKoI,EAAI,GAAGpI,KAAKsI,EAAIm9B,EAAON,GACnCl6B,EAAO0vB,UAAW,CACpB,IAAIzvE,EAAI+/C,EAAQxF,EAAKv6C,EAAEyvE,YAAc,EACrC1wB,EAASgB,EAAS,SAASl0C,GACzB,OAAO7L,EAAE6L,GAAK0uC,CAChB,CACF,MAAWwE,EAAO0wB,UAChB1wB,EAASgB,EAETg6B,EAASr4E,KAAKk4E,EAAe75B,EAAQhB,GAEvC+6B,EAAUp4E,KAAKk4E,EAAe76B,EAAQgB,GACtCi6B,EAAWt4E,KAAKk4E,EAAe75B,EAAQA,EACzC,GACF,CAmDA,OAlDAo5B,EAAK7xE,MAAQ,SAAStH,GACpB,OAAK4E,UAAU3M,QACfqP,EAAQtH,EACDm5E,GAFuB7xE,CAGhC,EACA6xE,EAAKE,OAAS,SAASr5E,GACrB,OAAK4E,UAAU3M,QACfohF,EAASr5E,KAAK06E,GAAqB16E,EAAI,GAAKs5E,GACrCH,GAFuBE,CAGhC,EACAF,EAAK7K,MAAQ,WACX,OAAK1pE,UAAU3M,QACfyhF,EAAiB5vC,EAASllC,WACnBu0E,GAFuBO,CAGhC,EACAP,EAAKQ,WAAa,SAAS35E,GACzB,OAAK4E,UAAU3M,QACf0hF,EAAa35E,EACNm5E,GAFuBQ,CAGhC,EACAR,EAAK3K,WAAa,SAASxuE,GACzB,OAAK4E,UAAU3M,QACfmhF,EAAcp5E,EACPm5E,GAFuBC,CAGhC,EACAD,EAAKwB,SAAW,SAAS36E,GACvB,IAAI+hB,EAAInd,UAAU3M,OAClB,OAAK8pB,GACLw3D,GAAiBv5E,EACjBw5E,GAAiB50E,UAAUmd,EAAI,GACxBo3D,GAHQI,CAIjB,EACAJ,EAAKI,cAAgB,SAASv5E,GAC5B,OAAK4E,UAAU3M,QACfshF,GAAiBv5E,EACVm5E,GAFuBI,CAGhC,EACAJ,EAAKK,cAAgB,SAASx5E,GAC5B,OAAK4E,UAAU3M,QACfuhF,GAAiBx5E,EACVm5E,GAFuBK,CAGhC,EACAL,EAAKM,YAAc,SAASz5E,GAC1B,OAAK4E,UAAU3M,QACfwhF,GAAez5E,EACRm5E,GAFuBM,CAGhC,EACAN,EAAKyB,cAAgB,WACnB,OAAOh2E,UAAU3M,QAAUkhF,CAC7B,EACOA,CACT,EACA,IAAIG,GAA2B,SAAUoB,GAAqB,CAC5DzoD,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,KAAM,GAER,SAASooD,GAAavoC,EAAWgL,EAAIC,GACnCjL,EAAU6C,KAAK,aAAa,SAASjpC,GACnC,IAAIgvE,EAAK59B,EAAGpxC,GACZ,MAAO,cAAgBkkD,SAAS8qB,GAAMA,EAAK39B,EAAGrxC,IAAM,KACtD,GACF,CACA,SAAS4uE,GAAaxoC,EAAWkL,EAAIC,GACnCnL,EAAU6C,KAAK,aAAa,SAASjpC,GACnC,IAAIgvE,EAAK19B,EAAGtxC,GACZ,MAAO,gBAAkBkkD,SAAS8qB,GAAMA,EAAKz9B,EAAGvxC,IAAM,GACxD,GACF,CACA+9B,EAAGiJ,IAAIioC,MAAQ,WACb,IAAgIC,EAAeC,EAA3I19D,EAAQuzB,EAAiBiqC,EAAO,aAAc,QAAS,YAAa96E,EAAI,KAAMC,EAAI,KAAMg7E,EAAU,CAAC,EAAG,GAAIC,EAAU,CAAC,EAAG,GAAkCC,GAAS,EAAMC,GAAS,EAAMC,EAAUC,GAAoB,GAC1N,SAASR,EAAMlgD,GACbA,EAAEoa,MAAK,WACL,IAAI6kC,EAAKjwC,EAAGsI,OAAOt6C,MAAMssB,MAAM,iBAAkB,OAAOA,MAAM,8BAA+B,iBAAiBqsB,GAAG,kBAAmBgrC,GAAYhrC,GAAG,mBAAoBgrC,GACnKtpE,EAAa4nE,EAAGnnC,UAAU,eAAe6B,KAAK,CAAC,IACnDtiC,EAAWmkC,QAAQp6C,OAAO,QAAQ84C,KAAK,QAAS,cAAc5wB,MAAM,aAAc,UAAUA,MAAM,SAAU,aAC5G21D,EAAGnnC,UAAU,WAAW6B,KAAK,CAAC,IAAI6B,QAAQp6C,OAAO,QAAQ84C,KAAK,QAAS,UAAU5wB,MAAM,SAAU,QACjG,IAAIs3D,EAAS3B,EAAGnnC,UAAU,WAAW6B,KAAK8mC,EAASjtC,GACnDotC,EAAOnlC,OAAOtH,SACdysC,EAAOplC,QAAQp6C,OAAO,KAAK84C,KAAK,SAAS,SAASjpC,GAChD,MAAO,UAAYA,CACrB,IAAGqY,MAAM,UAAU,SAASrY,GAC1B,OAAO4vE,GAAmB5vE,EAC5B,IAAG7P,OAAO,QAAQ84C,KAAK,KAAK,SAASjpC,GACnC,MAAO,QAAQoT,KAAKpT,IAAM,EAAI,IAChC,IAAGipC,KAAK,KAAK,SAASjpC,GACpB,MAAO,QAAQoT,KAAKpT,IAAM,EAAI,IAChC,IAAGipC,KAAK,QAAS,GAAGA,KAAK,SAAU,GAAG5wB,MAAM,aAAc,UAC1Ds3D,EAAOt3D,MAAM,UAAW42D,EAAM9rC,QAAU,OAAS,MACjD,IAA+EN,EAA3EgtC,EAAU9xC,EAAG76B,WAAW8qE,GAAK8B,EAAmB/xC,EAAG76B,WAAWkD,GAC9DjS,IACF0uC,EAAQs7B,GAAchqE,GACtB27E,EAAiB7mC,KAAK,IAAKpG,EAAM,IAAIoG,KAAK,QAASpG,EAAM,GAAKA,EAAM,IACpEktC,EAAQF,IAENz7E,IACFyuC,EAAQs7B,GAAc/pE,GACtB07E,EAAiB7mC,KAAK,IAAKpG,EAAM,IAAIoG,KAAK,SAAUpG,EAAM,GAAKA,EAAM,IACrEmtC,EAAQH,IAEVI,EAAOJ,EACT,GACF,CAuDA,SAASI,EAAOlhD,GACdA,EAAE8X,UAAU,WAAWoC,KAAK,aAAa,SAASjpC,GAChD,MAAO,aAAeovE,GAAS,KAAKh8D,KAAKpT,IAAM,IAAMqvE,GAAS,KAAKj8D,KAAKpT,IAAM,GAChF,GACF,CACA,SAAS+vE,EAAQhhD,GACfA,EAAEsX,OAAO,WAAW4C,KAAK,IAAKmmC,EAAQ,IACtCrgD,EAAE8X,UAAU,2BAA2BoC,KAAK,QAASmmC,EAAQ,GAAKA,EAAQ,GAC5E,CACA,SAASY,EAAQjhD,GACfA,EAAEsX,OAAO,WAAW4C,KAAK,IAAKomC,EAAQ,IACtCtgD,EAAE8X,UAAU,2BAA2BoC,KAAK,SAAUomC,EAAQ,GAAKA,EAAQ,GAC7E,CACA,SAASK,IACP,IAAyUz+B,EAAmC79C,EAAxW6e,EAASlmB,KAAMmkF,EAAcnyC,EAAGsI,OAAOtI,EAAGtsB,MAAMQ,QAASk+D,EAAS1+D,EAAMwzB,GAAGhzB,EAAQlZ,WAAYg2B,EAAIgP,EAAGsI,OAAOp0B,GAASm+D,EAAWF,EAAYzlC,QAAS4lC,GAAa,UAAUj9D,KAAKg9D,IAAaj8E,EAAGm8E,GAAa,UAAUl9D,KAAKg9D,IAAah8E,EAAGm8E,EAAWL,EAAY9mC,QAAQ,UAAW0F,EAAcjD,GAAsB55B,GAAiB47B,EAAS9P,EAAGkO,MAAMh6B,GAC/V0c,EAAIoP,EAAGsI,OAAO/H,EAAUrsB,IAASyyB,GAAG,iBAsBxC,WAC0B,IAApB3G,EAAGtsB,MAAM++D,UACND,IACHt/B,EAAS,KACTpD,EAAO,IAAMuhC,EAAQ,GACrBvhC,EAAO,IAAMwhC,EAAQ,GACrBkB,EAAW,GAEb3rC,IAEJ,IAhCkEF,GAAG,eAiCrE,WAC0B,IAApB3G,EAAGtsB,MAAM++D,SAA6B,GAAZD,IAC5B1iC,EAAO,IAAMuhC,EAAQ,GACrBvhC,EAAO,IAAMwhC,EAAQ,GACrBkB,EAAW,EACX3rC,IAEJ,IAjCA,GANI7G,EAAGtsB,MAAM66B,eACX3d,EAAE+V,GAAG,kBAAmB+rC,GAAW/rC,GAAG,iBAAkBgsC,GAExD/hD,EAAE+V,GAAG,kBAAmB+rC,GAAW/rC,GAAG,gBAAiBgsC,GAEzD3hD,EAAEk9C,YAAYplC,UAAU,KAAKolC,YACzBsE,EACF1iC,EAAO,GAAKuhC,EAAQ,GAAKvhC,EAAO,GAChCA,EAAO,GAAKwhC,EAAQ,GAAKxhC,EAAO,QAC3B,GAAIuiC,EAAU,CACnB,IAAIO,GAAM,KAAKv9D,KAAKg9D,GAAWQ,GAAM,KAAKx9D,KAAKg9D,GAC/Ch9E,EAAS,CAACg8E,EAAQ,EAAIuB,GAAM9iC,EAAO,GAAIwhC,EAAQ,EAAIuB,GAAM/iC,EAAO,IAChEA,EAAO,GAAKuhC,EAAQuB,GACpB9iC,EAAO,GAAKwhC,EAAQuB,EACtB,MAAW7yC,EAAGtsB,MAAME,SAAQs/B,EAASpD,EAAO79C,SA0B5C,SAASygF,IACP,IAAIhkC,EAAQ1O,EAAGkO,MAAMh6B,GAAS0hC,GAAQ,EAClCvgD,IACFq5C,EAAM,IAAMr5C,EAAO,GACnBq5C,EAAM,IAAMr5C,EAAO,IAEhBm9E,IACCxyC,EAAGtsB,MAAME,QACNs/B,IAAQA,EAAS,EAAEm+B,EAAQ,GAAKA,EAAQ,IAAM,GAAIC,EAAQ,GAAKA,EAAQ,IAAM,IAClFxhC,EAAO,GAAKuhC,IAAU3iC,EAAM,GAAKwE,EAAO,KACxCpD,EAAO,GAAKwhC,IAAU5iC,EAAM,GAAKwE,EAAO,MACnCA,EAAS,MAEdo/B,GAAaQ,EAAMpkC,EAAOt4C,EAAG,KAC/B47E,EAAQhhD,GACR4kB,GAAQ,GAEN28B,GAAaO,EAAMpkC,EAAOr4C,EAAG,KAC/B47E,EAAQjhD,GACR4kB,GAAQ,GAENA,IACFs8B,EAAOlhD,GACPohD,EAAO,CACLt/E,KAAM,QACNgX,KAAM0oE,EAAW,OAAS,WAGhC,CACA,SAASM,EAAMpkC,EAAOhxC,EAAOzN,GAC3B,IAAoJ0nB,EAAKD,EAArJotB,EAAQs7B,GAAc1iE,GAAQk1C,EAAK9N,EAAM,GAAI+N,EAAK/N,EAAM,GAAItyC,EAAWs9C,EAAO7/C,GAAI+xC,EAAS/xC,EAAIqhF,EAAUD,EAASp7E,EAAO+rC,EAAO,GAAKA,EAAO,GAiBhJ,GAhBIwwC,IACF5/B,GAAMpgD,EACNqgD,GAAM58C,EAAOzD,GAEfmlB,GAAO1nB,EAAIuhF,EAASD,GAAU1gF,KAAK6mB,IAAIk7B,EAAI/hD,KAAK8mB,IAAIk7B,EAAInE,EAAMz+C,KAAOy+C,EAAMz+C,GACvEuiF,EACF96D,GAAOC,GAAOnlB,GAAYyD,GAEtBi9C,IAAQ1gD,EAAW3B,KAAK6mB,IAAIk7B,EAAI/hD,KAAK8mB,IAAIk7B,EAAI,EAAIK,EAAOjjD,GAAK0nB,KAC7DnlB,EAAWmlB,GACbD,EAAMC,EACNA,EAAMnlB,GAENklB,EAAMllB,GAGNwvC,EAAO,IAAMrqB,GAAOqqB,EAAO,IAAMtqB,EAKnC,OAJIznB,EAAGmhF,EAAgB,KAClBD,EAAgB,KACrBnvC,EAAO,GAAKrqB,EACZqqB,EAAO,GAAKtqB,GACL,CAEX,CACA,SAASi7D,IACPD,IACA1hD,EAAE1W,MAAM,iBAAkB,OAAOwuB,UAAU,WAAWxuB,MAAM,UAAW42D,EAAM9rC,QAAU,OAAS,MAChGpF,EAAGsI,OAAO,QAAQhuB,MAAM,SAAU,MAClCsW,EAAE+V,GAAG,kBAAmB,MAAMA,GAAG,gBAAiB,MAAMA,GAAG,kBAAmB,MAAMA,GAAG,iBAAkB,MAAMA,GAAG,gBAAiB,MAAMA,GAAG,cAAe,MAC3JoK,IACAqhC,EAAO,CACLt/E,KAAM,YAEV,CAzFAk+B,EAAE1W,MAAM,iBAAkB,QAAQwuB,UAAU,WAAWxuB,MAAM,UAAW,MACxE0lB,EAAGsI,OAAO,QAAQhuB,MAAM,SAAU63D,EAAY73D,MAAM,WACpD83D,EAAO,CACLt/E,KAAM,eAER4/E,GAqFF,CAuEA,OAtPAxB,EAAMx9D,MAAQ,SAASsd,GACrBA,EAAEoa,MAAK,WACL,IAAIgnC,EAAS1+D,EAAMwzB,GAAGl5C,KAAMgN,WAAY+3E,EAAU,CAChD38E,EAAGi7E,EACHh7E,EAAGi7E,EACHrhF,EAAGkhF,EACHj7E,EAAGk7E,GACF4B,EAAUhlF,KAAKwmD,WAAau+B,EAC/B/kF,KAAKwmD,UAAYu+B,EACbp8B,GACF3W,EAAGsI,OAAOt6C,MAAMmX,aAAaimC,KAAK,eAAe,WAC/C+lC,EAAgB6B,EAAQ/iF,EACxBmhF,EAAgB4B,EAAQ98E,EACxBm7E,EAAU2B,EAAQ58E,EAClBk7E,EAAU0B,EAAQ38E,EAClB+7E,EAAO,CACLt/E,KAAM,cAEV,IAAG8jD,MAAM,eAAe,WACtB,IAAImvB,EAAKvT,GAAoB6e,EAAS0B,EAAQ38E,GAAI68E,EAAKzgB,GAAoB8e,EAASyB,EAAQ18E,GAE5F,OADA86E,EAAgBC,EAAgB,KACzB,SAAS70D,GACd80D,EAAU0B,EAAQ38E,EAAI2vE,EAAGxpD,GACzB+0D,EAAUyB,EAAQ18E,EAAI48E,EAAG12D,GACzB61D,EAAO,CACLt/E,KAAM,QACNgX,KAAM,UAEV,CACF,IAAGshC,KAAK,aAAa,WACnB+lC,EAAgB4B,EAAQ9iF,EACxBmhF,EAAgB2B,EAAQ78E,EACxBk8E,EAAO,CACLt/E,KAAM,QACNgX,KAAM,WAERsoE,EAAO,CACLt/E,KAAM,YAEV,KAEAs/E,EAAO,CACLt/E,KAAM,eAERs/E,EAAO,CACLt/E,KAAM,QACNgX,KAAM,WAERsoE,EAAO,CACLt/E,KAAM,aAGZ,GACF,EA2HAo+E,EAAM96E,EAAI,SAASE,GACjB,OAAK0E,UAAU3M,QAEfojF,EAAUC,KADVt7E,EAAIE,IACgC,GAAKD,GAClC66E,GAHuB96E,CAIhC,EACA86E,EAAM76E,EAAI,SAASC,GACjB,OAAK0E,UAAU3M,QAEfojF,EAAUC,IAAqBt7E,GAAK,IADpCC,EAAIC,IAEG46E,GAHuB76E,CAIhC,EACA66E,EAAM3M,MAAQ,SAASjuE,GACrB,OAAK0E,UAAU3M,QACX+H,GAAKC,GAAGk7E,IAAWj7E,EAAE,GAAIk7E,IAAWl7E,EAAE,IACjCF,EAAGm7E,IAAWj7E,EACdD,IAAGm7E,IAAWl7E,GAChB46E,GAJuB96E,GAAKC,EAAI,CAACk7E,EAAQC,GAAUp7E,EAAIm7E,EAASl7E,EAAIm7E,EAAS,IAKtF,EACAN,EAAMlvC,OAAS,SAAS1rC,GACtB,IAAI+8C,EAAIC,EAAIC,EAAIC,EAAIj3B,EACpB,OAAKvhB,UAAU3M,QAqBX+H,IACFi9C,EAAK/8C,EAAE,GAAIg9C,EAAKh9C,EAAE,GACdD,IAAGg9C,EAAKA,EAAG,GAAIC,EAAKA,EAAG,IAC3B69B,EAAgB,CAAC99B,EAAIC,GACjBl9C,EAAEw+C,SAAQvB,EAAKj9C,EAAEi9C,GAAKC,EAAKl9C,EAAEk9C,IAC7BA,EAAKD,IAAI92B,EAAI82B,EAAIA,EAAKC,EAAIA,EAAK/2B,GAC/B82B,GAAMg+B,EAAQ,IAAM/9B,GAAM+9B,EAAQ,KAAIA,EAAU,CAACh+B,EAAIC,KAEvDj9C,IACFk9C,EAAKj9C,EAAE,GAAIk9C,EAAKl9C,EAAE,GACdF,IAAGm9C,EAAKA,EAAG,GAAIC,EAAKA,EAAG,IAC3B49B,EAAgB,CAAC79B,EAAIC,GACjBn9C,EAAEu+C,SAAQrB,EAAKl9C,EAAEk9C,GAAKC,EAAKn9C,EAAEm9C,IAC7BA,EAAKD,IAAIh3B,EAAIg3B,EAAIA,EAAKC,EAAIA,EAAKj3B,GAC/Bg3B,GAAM+9B,EAAQ,IAAM99B,GAAM89B,EAAQ,KAAIA,EAAU,CAAC/9B,EAAIC,KAEpD09B,IApCD96E,IACE+6E,GACF99B,EAAK89B,EAAc,GAAI79B,EAAK69B,EAAc,KAE1C99B,EAAKg+B,EAAQ,GAAI/9B,EAAK+9B,EAAQ,GAC1Bj7E,EAAEw+C,SAAQvB,EAAKj9C,EAAEw+C,OAAOvB,GAAKC,EAAKl9C,EAAEw+C,OAAOtB,IAC3CA,EAAKD,IAAI92B,EAAI82B,EAAIA,EAAKC,EAAIA,EAAK/2B,KAGnClmB,IACE+6E,GACF79B,EAAK69B,EAAc,GAAI59B,EAAK49B,EAAc,KAE1C79B,EAAK+9B,EAAQ,GAAI99B,EAAK89B,EAAQ,GAC1Bj7E,EAAEu+C,SAAQrB,EAAKl9C,EAAEu+C,OAAOrB,GAAKC,EAAKn9C,EAAEu+C,OAAOpB,IAC3CA,EAAKD,IAAIh3B,EAAIg3B,EAAIA,EAAKC,EAAIA,EAAKj3B,KAGhCnmB,GAAKC,EAAI,CAAC,CAACg9C,EAAIE,GAAK,CAACD,EAAIE,IAAOp9C,EAAI,CAACi9C,EAAIC,GAAMj9C,GAAK,CAACk9C,EAAIC,GAmBpE,EACA09B,EAAM1lD,MAAQ,WAKZ,OAJK0lD,EAAM9rC,UACTisC,EAAU,CAAC,EAAG,GAAIC,EAAU,CAAC,EAAG,GAChCH,EAAgBC,EAAgB,MAE3BF,CACT,EACAA,EAAM9rC,MAAQ,WACZ,QAAShvC,GAAKi7E,EAAQ,IAAMA,EAAQ,MAAQh7E,GAAKi7E,EAAQ,IAAMA,EAAQ,EACzE,EACOtxC,EAAGoG,OAAO8qC,EAAOx9D,EAAO,KACjC,EACA,IAAIm+D,GAAqB,CACvB15D,EAAG,YACH5nB,EAAG,YACH4oB,EAAG,YACHyX,EAAG,YACHsiD,GAAI,cACJC,GAAI,cACJC,GAAI,cACJC,GAAI,eAEF3B,GAAsB,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,IAOjG,SAAS4B,GAAQzwB,GACf,OAAOt3C,KAAKxW,MAAM8tD,EAAQK,aAC5B,CAIA,SAASqwB,GAAQ1wB,GACf,IAAI/d,EAAQ1E,EAAYozC,cAExB,OADA1uC,EAAM2uC,WAAWrzC,EAAYszC,MACtB5uC,EAAM6uC,yBAAyB9wB,EAAQK,aAChD,CAhBAljB,EAAG/3B,KAAOs6C,IAAW,SAASM,GAC5B,OAAOA,EAAQK,YACjB,IACAljB,EAAG4zC,KAAO,SAAS7gE,EAAKte,GACtB,OAAOiuD,GAAO3vC,EAAK,mBAAoBugE,GAAS7+E,EAClD,EAIAurC,EAAG0L,KAAO,SAAS34B,EAAKte,GACtB,OAAOiuD,GAAO3vC,EAAK,YAAawgE,GAAS9+E,EAC3C,EAMAurC,EAAGoJ,IAAMmZ,IAAW,SAASM,GAC3B,OAAOA,EAAQgxB,WACjB,IAE2B,kBAAX/jD,GAAuBA,EAAOluB,QAASkuB,EAAOluB,QAAUo+B,EACnEhyC,KAAKgyC,GAAKA,CACjB,GAAE3kC,MAAMy/B,KACV,IAIEg5C,EAAkB53C,EAAW,CAC/B,uCAAuCt6B,EAASkuB,GAC9C,IAAUikD,EAASl5C,EAATk5C,EAEPnyE,EAFgBi5B,EAEP,SAASm5C,GAEnB,IAAI5tB,EAAsB,IAAIz0B,KAAQ00B,EAAsB,IAAI10B,KAChE,SAASsiD,EAAYC,EAAQC,EAASrgF,EAAOyxD,GAC3C,SAAS6uB,EAAShhE,GAChB,OAAO8gE,EAAO9gE,EAA4B,IAArBpY,UAAU3M,OAA+B,IAAIsjC,KAAyB,IAAIA,MAAMve,IAAQA,CAC/G,CAuDA,OAtDAghE,EAAS5jD,MAAQ,SAASpd,GACxB,OAAO8gE,EAAO9gE,EAAuB,IAAIue,MAAMve,IAAQA,CACzD,EACAghE,EAASzjD,KAAO,SAASvd,GACvB,OAAO8gE,EAAO9gE,EAAO,IAAIue,KAAKve,EAAO,IAAK+gE,EAAQ/gE,EAAM,GAAI8gE,EAAO9gE,GAAOA,CAC5E,EACAghE,EAASxnE,MAAQ,SAASwG,GACxB,IAAIihE,EAAKD,EAAShhE,GAAOq/B,EAAK2hC,EAASzjD,KAAKvd,GAC5C,OAAOA,EAAOihE,EAAK5hC,EAAKr/B,EAAOihE,EAAK5hC,CACtC,EACA2hC,EAAS/+E,OAAS,SAAS+d,EAAMuM,GAC/B,OAAOw0D,EAAQ/gE,EAAuB,IAAIue,MAAMve,GAAe,MAARuM,EAAe,EAAI9uB,KAAK2/B,MAAM7Q,IAAQvM,CAC/F,EACAghE,EAAStvC,MAAQ,SAAShwB,EAAOiwB,EAAMplB,GACrC,IAAgBnqB,EAAZsvC,EAAQ,GAGZ,GAFAhwB,EAAQs/D,EAASzjD,KAAK7b,GACtB6K,EAAe,MAARA,EAAe,EAAI9uB,KAAK2/B,MAAM7Q,KAC/B7K,EAAQiwB,MAAWplB,EAAO,GAAI,OAAOmlB,EAC3C,GACEA,EAAMl2C,KAAK4G,EAA2B,IAAIm8B,MAAM7c,IAASq/D,EAAQr/D,EAAO6K,GAAOu0D,EAAOp/D,SACjFtf,EAAWsf,GAASA,EAAQiwB,GACnC,OAAOD,CACT,EACAsvC,EAAS/5D,OAAS,SAAShF,GACzB,OAAO4+D,GAAY,SAAS7gE,GAC1B,GAAIA,GAAQA,EAAM,KAAO8gE,EAAO9gE,IAAQiC,EAAKjC,IAAOA,EAAKkhE,QAAQlhE,EAAO,EAC1E,IAAG,SAASA,EAAMuM,GAChB,GAAIvM,GAAQA,EACV,GAAIuM,EAAO,EAAG,OAASA,GAAQ,GAC7B,KAAOw0D,EAAQ/gE,GAAO,IAAKiC,EAAKjC,UAG7B,OAASuM,GAAQ,GACpB,KAAOw0D,EAAQ/gE,EAAM,IAAKiC,EAAKjC,KAIrC,GACF,EACItf,IACFsgF,EAAStgF,MAAQ,SAASghB,EAAO9iB,GAG/B,OAFAo0D,EAAIkuB,SAASx/D,GAAQuxC,EAAIiuB,SAAStiF,GAClCkiF,EAAO9tB,GAAM8tB,EAAO7tB,GACbx1D,KAAK2/B,MAAM18B,EAAMsyD,EAAKC,GAC/B,EACA+tB,EAASnqD,MAAQ,SAAStK,GAExB,OADAA,EAAO9uB,KAAK2/B,MAAM7Q,GACVwmC,SAASxmC,IAAWA,EAAO,EAAcA,EAAO,EAAgBy0D,EAAS/5D,OAAOkrC,EAAQ,SAAStjD,GACvG,OAAOsjD,EAAMtjD,GAAK0d,IAAS,CAC7B,EAAI,SAAS1d,GACX,OAAOmyE,EAAStgF,MAAM,EAAGmO,GAAK0d,IAAS,CACzC,GAJ6Dy0D,EAArB,IAK1C,GAEKA,CACT,CACA,IAAIG,EAAcN,GAAY,WAC9B,IAAG,SAAS7gE,EAAMuM,GAChBvM,EAAKkhE,SAASlhE,EAAOuM,EACvB,IAAG,SAAS7K,EAAO9iB,GACjB,OAAOA,EAAM8iB,CACf,IACAy/D,EAAYtqD,MAAQ,SAAS9zB,GAE3B,OADAA,EAAItF,KAAK2/B,MAAMr6B,GACVgwD,SAAShwD,IAAQA,EAAI,EACpBA,EAAI,EACH89E,GAAY,SAAS7gE,GAC1BA,EAAKkhE,QAAQzjF,KAAK2/B,MAAMpd,EAAOjd,GAAKA,EACtC,IAAG,SAASid,EAAMuM,GAChBvM,EAAKkhE,SAASlhE,EAAOuM,EAAOxpB,EAC9B,IAAG,SAAS2e,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS3e,CACzB,IAPqBo+E,EADgB,IASvC,EACA,IAAIhkE,EAAegkE,EAAYzvC,MAC3B0vC,EAAiB,IACjBC,EAAiB,IACjBC,EAAe,KACfC,EAAc,MACdC,EAAe,OACfC,EAASZ,GAAY,SAAS7gE,GAChCA,EAAKkhE,QAAQlhE,EAAOA,EAAKyf,kBAC3B,IAAG,SAASzf,EAAMuM,GAChBvM,EAAKkhE,SAASlhE,EAAOuM,EAAO60D,EAC9B,IAAG,SAAS1/D,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS0/D,CACzB,IAAG,SAASphE,GACV,OAAOA,EAAK0hE,eACd,IACI59C,EAAU29C,EAAO/vC,MACjBiwC,EAASd,GAAY,SAAS7gE,GAChCA,EAAKkhE,QAAQlhE,EAAOA,EAAKyf,kBAAoBzf,EAAKuf,aAAe6hD,EACnE,IAAG,SAASphE,EAAMuM,GAChBvM,EAAKkhE,SAASlhE,EAAOuM,EAAO80D,EAC9B,IAAG,SAAS3/D,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS2/D,CACzB,IAAG,SAASrhE,GACV,OAAOA,EAAKqf,YACd,IACIwE,EAAU89C,EAAOjwC,MACjBkwC,EAAOf,GAAY,SAAS7gE,GAC9BA,EAAKkhE,QAAQlhE,EAAOA,EAAKyf,kBAAoBzf,EAAKuf,aAAe6hD,EAAiBphE,EAAKqf,aAAegiD,EACxG,IAAG,SAASrhE,EAAMuM,GAChBvM,EAAKkhE,SAASlhE,EAAOuM,EAAO+0D,EAC9B,IAAG,SAAS5/D,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS4/D,CACzB,IAAG,SAASthE,GACV,OAAOA,EAAKmf,UACd,IACIuE,EAAQk+C,EAAKlwC,MACb7O,EAAMg+C,GAAY,SAAS7gE,GAC7BA,EAAK6hE,SAAS,EAAG,EAAG,EAAG,EACzB,IAAG,SAAS7hE,EAAMuM,GAChBvM,EAAK8hE,QAAQ9hE,EAAK+e,UAAYxS,EAChC,IAAG,SAAS7K,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS9iB,EAAIqiC,oBAAsBvf,EAAMuf,qBAAuBogD,GAAkBE,CAClG,IAAG,SAASvhE,GACV,OAAOA,EAAK+e,UAAY,CAC1B,IACIgjD,EAAOl/C,EAAI6O,MACf,SAASswC,EAAQnlF,GACf,OAAOgkF,GAAY,SAAS7gE,GAC1BA,EAAK8hE,QAAQ9hE,EAAK+e,WAAa/e,EAAKif,SAAW,EAAIpiC,GAAK,GACxDmjB,EAAK6hE,SAAS,EAAG,EAAG,EAAG,EACzB,IAAG,SAAS7hE,EAAMuM,GAChBvM,EAAK8hE,QAAQ9hE,EAAK+e,UAAmB,EAAPxS,EAChC,IAAG,SAAS7K,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS9iB,EAAIqiC,oBAAsBvf,EAAMuf,qBAAuBogD,GAAkBG,CAClG,GACF,CACA,IAAIS,EAASD,EAAQ,GACjBE,EAASF,EAAQ,GACjBG,EAAUH,EAAQ,GAClBI,EAAYJ,EAAQ,GACpBK,EAAWL,EAAQ,GACnBM,EAASN,EAAQ,GACjBO,EAAWP,EAAQ,GACnBQ,EAAUP,EAAOvwC,MACjB+wC,EAAUP,EAAOxwC,MACjBgxC,EAAWP,EAAQzwC,MACnBixC,EAAaP,EAAU1wC,MACvBkxC,EAAYP,EAAS3wC,MACrBmxC,EAAUP,EAAO5wC,MACjBoxC,EAAYP,EAAS7wC,MACrBzxB,EAAQ4gE,GAAY,SAAS7gE,GAC/BA,EAAK8hE,QAAQ,GACb9hE,EAAK6hE,SAAS,EAAG,EAAG,EAAG,EACzB,IAAG,SAAS7hE,EAAMuM,GAChBvM,EAAK+iE,SAAS/iE,EAAK6e,WAAatS,EAClC,IAAG,SAAS7K,EAAO9iB,GACjB,OAAOA,EAAIigC,WAAand,EAAMmd,WAAyD,IAA3CjgC,EAAI+/B,cAAgBjd,EAAMid,cACxE,IAAG,SAAS3e,GACV,OAAOA,EAAK6e,UACd,IACI7B,EAAS/c,EAAMyxB,MACfrU,EAAOwjD,GAAY,SAAS7gE,GAC9BA,EAAK+iE,SAAS,EAAG,GACjB/iE,EAAK6hE,SAAS,EAAG,EAAG,EAAG,EACzB,IAAG,SAAS7hE,EAAMuM,GAChBvM,EAAKgjE,YAAYhjE,EAAK2e,cAAgBpS,EACxC,IAAG,SAAS7K,EAAO9iB,GACjB,OAAOA,EAAI+/B,cAAgBjd,EAAMid,aACnC,IAAG,SAAS3e,GACV,OAAOA,EAAK2e,aACd,IACAtB,EAAKxG,MAAQ,SAAS9zB,GACpB,OAAQgwD,SAAShwD,EAAItF,KAAK2/B,MAAMr6B,KAASA,EAAI,EAAY89E,GAAY,SAAS7gE,GAC5EA,EAAKgjE,YAAYvlF,KAAK2/B,MAAMpd,EAAK2e,cAAgB57B,GAAKA,GACtDid,EAAK+iE,SAAS,EAAG,GACjB/iE,EAAK6hE,SAAS,EAAG,EAAG,EAAG,EACzB,IAAG,SAAS7hE,EAAMuM,GAChBvM,EAAKgjE,YAAYhjE,EAAK2e,cAAgBpS,EAAOxpB,EAC/C,IANkD,IAOpD,EACA,IAAIkgF,EAAQ5lD,EAAKqU,MACbwxC,EAAYrC,GAAY,SAAS7gE,GACnCA,EAAKmjE,cAAc,EAAG,EACxB,IAAG,SAASnjE,EAAMuM,GAChBvM,EAAKkhE,SAASlhE,EAAOuM,EAAO80D,EAC9B,IAAG,SAAS3/D,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS2/D,CACzB,IAAG,SAASrhE,GACV,OAAOA,EAAKojE,eACd,IACIC,EAAaH,EAAUxxC,MACvB4xC,EAAUzC,GAAY,SAAS7gE,GACjCA,EAAKujE,cAAc,EAAG,EAAG,EAC3B,IAAG,SAASvjE,EAAMuM,GAChBvM,EAAKkhE,SAASlhE,EAAOuM,EAAO+0D,EAC9B,IAAG,SAAS5/D,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS4/D,CACzB,IAAG,SAASthE,GACV,OAAOA,EAAKwjE,aACd,IACIC,EAAWH,EAAQ5xC,MACnBgyC,EAAS7C,GAAY,SAAS7gE,GAChCA,EAAK2jE,YAAY,EAAG,EAAG,EAAG,EAC5B,IAAG,SAAS3jE,EAAMuM,GAChBvM,EAAK4jE,WAAW5jE,EAAK6jE,aAAet3D,EACtC,IAAG,SAAS7K,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS6/D,CACzB,IAAG,SAASvhE,GACV,OAAOA,EAAK6jE,aAAe,CAC7B,IACIC,EAAUJ,EAAOhyC,MACrB,SAASqyC,EAAWlnF,GAClB,OAAOgkF,GAAY,SAAS7gE,GAC1BA,EAAK4jE,WAAW5jE,EAAK6jE,cAAgB7jE,EAAKgkE,YAAc,EAAInnF,GAAK,GACjEmjB,EAAK2jE,YAAY,EAAG,EAAG,EAAG,EAC5B,IAAG,SAAS3jE,EAAMuM,GAChBvM,EAAK4jE,WAAW5jE,EAAK6jE,aAAsB,EAAPt3D,EACtC,IAAG,SAAS7K,EAAO9iB,GACjB,OAAQA,EAAM8iB,GAAS8/D,CACzB,GACF,CACA,IAAIyC,EAAYF,EAAW,GACvBG,EAAYH,EAAW,GACvBI,EAAaJ,EAAW,GACxBK,EAAeL,EAAW,GAC1BM,EAAcN,EAAW,GACzBO,EAAYP,EAAW,GACvBQ,EAAcR,EAAW,GACzBS,EAAaP,EAAUvyC,MACvB+yC,EAAaP,EAAUxyC,MACvBgzC,GAAcP,EAAWzyC,MACzBizC,GAAgBP,EAAa1yC,MAC7BkzC,GAAeP,EAAY3yC,MAC3BmzC,GAAaP,EAAU5yC,MACvBozC,GAAeP,EAAY7yC,MAC3BqzC,GAAWlE,GAAY,SAAS7gE,GAClCA,EAAK4jE,WAAW,GAChB5jE,EAAK2jE,YAAY,EAAG,EAAG,EAAG,EAC5B,IAAG,SAAS3jE,EAAMuM,GAChBvM,EAAKglE,YAAYhlE,EAAKilE,cAAgB14D,EACxC,IAAG,SAAS7K,EAAO9iB,GACjB,OAAOA,EAAIqmF,cAAgBvjE,EAAMujE,cAAkE,IAAjDrmF,EAAIsmF,iBAAmBxjE,EAAMwjE,iBACjF,IAAG,SAASllE,GACV,OAAOA,EAAKilE,aACd,IACIE,GAAYJ,GAASrzC,MACrB0zC,GAAUvE,GAAY,SAAS7gE,GACjCA,EAAKglE,YAAY,EAAG,GACpBhlE,EAAK2jE,YAAY,EAAG,EAAG,EAAG,EAC5B,IAAG,SAAS3jE,EAAMuM,GAChBvM,EAAKqlE,eAAerlE,EAAKklE,iBAAmB34D,EAC9C,IAAG,SAAS7K,EAAO9iB,GACjB,OAAOA,EAAIsmF,iBAAmBxjE,EAAMwjE,gBACtC,IAAG,SAASllE,GACV,OAAOA,EAAKklE,gBACd,IACAE,GAAQvuD,MAAQ,SAAS9zB,GACvB,OAAQgwD,SAAShwD,EAAItF,KAAK2/B,MAAMr6B,KAASA,EAAI,EAAY89E,GAAY,SAAS7gE,GAC5EA,EAAKqlE,eAAe5nF,KAAK2/B,MAAMpd,EAAKklE,iBAAmBniF,GAAKA,GAC5Did,EAAKglE,YAAY,EAAG,GACpBhlE,EAAK2jE,YAAY,EAAG,EAAG,EAAG,EAC5B,IAAG,SAAS3jE,EAAMuM,GAChBvM,EAAKqlE,eAAerlE,EAAKklE,iBAAmB34D,EAAOxpB,EACrD,IANkD,IAOpD,EACA,IAAIuiF,GAAWF,GAAQ1zC,MACvBkvC,EAAS2E,QAAU1iD,EACnB+9C,EAAS4E,SAAWzD,EACpBnB,EAAS6E,WAAanD,EACtB1B,EAAS8E,YAAc7C,EACvBjC,EAAS+E,SAAW/D,EACpBhB,EAASgF,UAAYliD,EACrBk9C,EAASiF,aAAehF,EACxBD,EAASkF,gBAAkB3E,EAC3BP,EAASmF,iBAAmB5oE,EAC5ByjE,EAASoF,WAAarE,EACtBf,EAASqF,YAAcpiD,EACvB+8C,EAASsF,WAAahE,EACtBtB,EAASuF,YAAc1D,EACvB7B,EAASwF,UAAYnmE,EACrB2gE,EAASyF,WAAarpD,EACtB4jD,EAAS0F,aAAe/D,EACxB3B,EAAS2F,cAAgBzD,EACzBlC,EAAS4F,WAAa/E,EACtBb,EAAS6F,YAAc3iD,EACvB88C,EAAS8F,WAAazE,EACtBrB,EAAS+F,YAAcnE,EACvB5B,EAASgG,aAAevE,EACxBzB,EAASiG,cAAgBjE,EACzBhC,EAASkG,YAAc3E,EACvBvB,EAASmG,aAAerE,EACxB9B,EAASoG,cAAgB5E,EACzBxB,EAASqG,eAAiBtE,EAC1B/B,EAASsG,SAAWjF,EACpBrB,EAASuG,UAAY3E,EACrB5B,EAASwG,SAAW/pD,EACpBujD,EAASyG,UAAYpE,EACrBrC,EAAS8C,OAASA,EAClB9C,EAASkD,QAAUA,EACnBlD,EAAS0D,UAAYA,EACrB1D,EAASiE,WAAaA,GACtBjE,EAAS0C,QAAUA,EACnB1C,EAAS6C,SAAWA,EACpB7C,EAAS0G,eAAiBnG,EAC1BP,EAAS2G,gBAAkBpqE,EAC3ByjE,EAASsC,UAAYA,EACrBtC,EAASyC,WAAaA,EACtBzC,EAASsD,UAAYA,EACrBtD,EAAS6D,WAAaA,EACtB7D,EAASmE,SAAWA,GACpBnE,EAASuE,UAAYA,GACrBvE,EAAS2D,YAAcA,EACvB3D,EAASkE,aAAeA,GACxBlE,EAAS4G,UAAY/F,EACrBb,EAAS6G,WAAa3jD,EACtB88C,EAASqD,UAAYA,EACrBrD,EAAS4D,WAAaA,EACtB5D,EAASyD,YAAcA,EACvBzD,EAASgE,aAAeA,GACxBhE,EAASuD,WAAaA,EACtBvD,EAAS8D,YAAcA,GACvB9D,EAASwD,aAAeA,EACxBxD,EAAS+D,cAAgBA,GACzB/D,EAAS8G,QAAUzD,EACnBrD,EAAS+G,SAAWnD,EACpB5D,EAASwE,QAAUA,GACnBxE,EAAS0E,SAAWA,GACpBxnF,OAAOgR,eAAe8xE,EAAU,aAAc,CAAE5iF,OAAO,GACzD,EA1UiEypC,EAA5C,kBAAZj5B,GAA0C,qBAAXkuB,EAAiCluB,GAAmFmyE,EAAUA,GAAWj5C,MAAsBkF,GAAK+zC,EAAQ/zC,IAAM,CAAC,EA2U7N,IAIEg7C,EAAyB9+C,EAAW,CACtC,qDAAqDt6B,EAASkuB,GAC5D,IAAUikD,EAASl5C,EAATk5C,EAEPnyE,EAFgBi5B,EAEP,SAASm5C,EAAUiH,GAE7B,SAASC,EAAUj5E,GACjB,GAAI,GAAKA,EAAE5L,GAAK4L,EAAE5L,EAAI,IAAK,CACzB,IAAI+c,EAAO,IAAIue,MAAM,EAAG1vB,EAAE6e,EAAG7e,EAAEA,EAAGA,EAAE2zB,EAAG3zB,EAAEiuB,EAAGjuB,EAAEgvB,EAAGhvB,EAAEgzB,GAEnD,OADA7hB,EAAKgjE,YAAYn0E,EAAE5L,GACZ+c,CACT,CACA,OAAO,IAAIue,KAAK1vB,EAAE5L,EAAG4L,EAAE6e,EAAG7e,EAAEA,EAAGA,EAAE2zB,EAAG3zB,EAAEiuB,EAAGjuB,EAAEgvB,EAAGhvB,EAAEgzB,EAClD,CACA,SAASkmD,EAAQl5E,GACf,GAAI,GAAKA,EAAE5L,GAAK4L,EAAE5L,EAAI,IAAK,CACzB,IAAI+c,EAAO,IAAIue,KAAKA,KAAKE,KAAK,EAAG5vB,EAAE6e,EAAG7e,EAAEA,EAAGA,EAAE2zB,EAAG3zB,EAAEiuB,EAAGjuB,EAAEgvB,EAAGhvB,EAAEgzB,IAE5D,OADA7hB,EAAKqlE,eAAex2E,EAAE5L,GACf+c,CACT,CACA,OAAO,IAAIue,KAAKA,KAAKE,IAAI5vB,EAAE5L,EAAG4L,EAAE6e,EAAG7e,EAAEA,EAAGA,EAAE2zB,EAAG3zB,EAAEiuB,EAAGjuB,EAAEgvB,EAAGhvB,EAAEgzB,GAC3D,CACA,SAASmmD,EAAQ/kF,EAAGyqB,EAAG7e,GACrB,MAAO,CAAE5L,IAAGyqB,IAAG7e,IAAG2zB,EAAG,EAAG1F,EAAG,EAAGe,EAAG,EAAGgE,EAAG,EACzC,CACA,SAASomD,EAAaC,GACpB,IAAIC,EAAkBD,EAAQE,SAAUC,EAAcH,EAAQloE,KAAMsoE,EAAcJ,EAAQ/nE,KAAMooE,EAAiBL,EAAQM,QAASC,EAAkBP,EAAQnG,KAAM2G,EAAuBR,EAAQS,UAAWC,EAAgBV,EAAQlrD,OAAQ6rD,GAAqBX,EAAQY,YACrQC,GAAWC,EAAST,GAAiBU,GAAeC,EAAaX,GAAiBY,GAAYH,EAASP,GAAkBW,GAAgBF,EAAaT,GAAkBY,GAAiBL,EAASN,GAAuBY,GAAqBJ,EAAaR,GAAuBa,GAAUP,EAASJ,GAAgBY,GAAcN,EAAaN,GAAgBa,GAAeT,EAASH,IAAqBa,GAAmBR,EAAaL,IAC7atlD,GAAU,CACZ,EA4MF,SAA4B10B,GAC1B,OAAO65E,EAAqB75E,EAAEowB,SAChC,EA7ME,EA8MF,SAAuBpwB,GACrB,OAAO45E,EAAgB55E,EAAEowB,SAC3B,EA/ME,EAgNF,SAA0BpwB,GACxB,OAAOg6E,GAAmBh6E,EAAEgwB,WAC9B,EAjNE,EAkNF,SAAqBhwB,GACnB,OAAO+5E,EAAc/5E,EAAEgwB,WACzB,EAnNE,EAAK,KACL,EAAK8qD,EACL,EAAKA,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EA0MF,SAAsBr7E,GACpB,OAAO05E,IAAiB15E,EAAEswB,YAAc,IAC1C,EA3ME,EA4MF,SAAuBtwB,GACrB,OAAO,KAAOA,EAAEgwB,WAAa,EAC/B,EA7ME,EAAKsrD,GACL,EAAKC,GACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAK,KACL,EAAK,KACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,IAAKC,IAEHC,GAAa,CACf,EA8LF,SAA+Bl8E,GAC7B,OAAO65E,EAAqB75E,EAAEm1E,YAChC,EA/LE,EAgMF,SAA0Bn1E,GACxB,OAAO45E,EAAgB55E,EAAEm1E,YAC3B,EAjME,EAkMF,SAA6Bn1E,GAC3B,OAAOg6E,GAAmBh6E,EAAEo2E,cAC9B,EAnME,EAoMF,SAAwBp2E,GACtB,OAAO+5E,EAAc/5E,EAAEo2E,cACzB,EArME,EAAK,KACL,EAAK+F,EACL,EAAKA,EACL,EAAKC,GACL,EAAKC,EACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EA4LF,SAAyB18E,GACvB,OAAO05E,IAAiB15E,EAAE20E,eAAiB,IAC7C,EA7LE,EA8LF,SAA0B30E,GACxB,OAAO,KAAOA,EAAEo2E,cAAgB,EAClC,EA/LE,EAAKkF,GACL,EAAKC,GACL,EAAKoB,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,IAAKlB,IAEHmB,GAAS,CACX,EAmHF,SAA2Bp9E,EAAGpC,EAAQ5P,GACpC,IAAIkoB,EAAIskE,GAAejlF,KAAKqI,EAAO5N,MAAMhC,IACzC,OAAOkoB,GAAKlW,EAAE2uB,EAAI8rD,GAAmBvkE,EAAE,GAAGpZ,eAAgB9O,EAAIkoB,EAAE,GAAG9pB,SAAW,CAChF,EArHE,EAsHF,SAAsB4T,EAAGpC,EAAQ5P,GAC/B,IAAIkoB,EAAIokE,GAAU/kF,KAAKqI,EAAO5N,MAAMhC,IACpC,OAAOkoB,GAAKlW,EAAE2uB,EAAI4rD,GAAcrkE,EAAE,GAAGpZ,eAAgB9O,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC3E,EAxHE,EAyHF,SAAyB4T,EAAGpC,EAAQ5P,GAClC,IAAIkoB,EAAI0kE,GAAarlF,KAAKqI,EAAO5N,MAAMhC,IACvC,OAAOkoB,GAAKlW,EAAE6e,EAAIg8D,GAAiB3kE,EAAE,GAAGpZ,eAAgB9O,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC9E,EA3HE,EA4HF,SAAoB4T,EAAGpC,EAAQ5P,GAC7B,IAAIkoB,EAAIwkE,GAAQnlF,KAAKqI,EAAO5N,MAAMhC,IAClC,OAAOkoB,GAAKlW,EAAE6e,EAAI87D,GAAYzkE,EAAE,GAAGpZ,eAAgB9O,EAAIkoB,EAAE,GAAG9pB,SAAW,CACzE,EA9HE,EA+HF,SAA6B4T,EAAGpC,EAAQ5P,GACtC,OAAOqvF,GAAer9E,EAAGs5E,EAAiB17E,EAAQ5P,EACpD,EAhIE,EAAKsvF,EACL,EAAKA,EACL,EAAKC,EACL,EAAKC,EACL,EAAKA,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAiGF,SAAqB59E,EAAGpC,EAAQ5P,GAC9B,IAAIkoB,EAAIgkE,GAAS3kF,KAAKqI,EAAO5N,MAAMhC,IACnC,OAAOkoB,GAAKlW,EAAE8e,EAAIs7D,GAAalkE,EAAE,GAAGpZ,eAAgB9O,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC1E,EAnGE,EAAKyxF,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EA8GF,SAAyBr+E,EAAGpC,EAAQ5P,GAClC,OAAOqvF,GAAer9E,EAAGw5E,EAAa57E,EAAQ5P,EAChD,EA/GE,EAgHF,SAAyBgS,EAAGpC,EAAQ5P,GAClC,OAAOqvF,GAAer9E,EAAGy5E,EAAa77E,EAAQ5P,EAChD,EAjHE,EAAKswF,EACL,EAAKC,EACL,EAAKC,EACL,IAAKC,GAQP,SAASC,GAAUC,EAAWC,GAC5B,OAAO,SAASztE,GACd,IAAsD4c,EAAG8wD,EAAM/sD,EAA3Dl0B,EAAS,GAAI5P,GAAK,EAAGiG,EAAI,EAAGiiB,EAAIyoE,EAAUvyF,OAE9C,IADM+kB,aAAgBue,OAAOve,EAAuB,IAAIue,MAAMve,MACrDnjB,EAAIkoB,GACqB,KAA5ByoE,EAAU/uF,WAAW5B,KACvB4P,EAAOjR,KAAKgyF,EAAU3uF,MAAMiE,EAAGjG,IACiB,OAA3C6wF,EAAOC,EAAK/wD,EAAI4wD,EAAUtoE,SAASroB,KAAc+/B,EAAI4wD,EAAUtoE,SAASroB,GACxE6wF,EAAa,MAAN9wD,EAAY,IAAM,KAC1B+D,EAAS8sD,EAAS7wD,MAAIA,EAAI+D,EAAO3gB,EAAM0tE,IAC3CjhF,EAAOjR,KAAKohC,GACZ95B,EAAIjG,EAAI,GAIZ,OADA4P,EAAOjR,KAAKgyF,EAAU3uF,MAAMiE,EAAGjG,IACxB4P,EAAOhL,KAAK,GACrB,CACF,CACA,SAASmsF,GAASJ,EAAWnqD,GAC3B,OAAO,SAAS52B,GACd,IAAqFyT,EAAM2iB,EAAvFh0B,EAAIm5E,EAAQ,UAAM,EAAQ,GAC9B,GADsCkE,GAAer9E,EAAG2+E,EAAW/gF,GAAU,GAAI,IACxEA,EAAOxR,OAAQ,OAAO,KAC/B,GAAI,MAAO4T,EAAG,OAAO,IAAI0vB,KAAK1vB,EAAE8uB,GAChC,GAAI,MAAO9uB,EAAG,OAAO,IAAI0vB,KAAW,IAAN1vB,EAAEkX,GAAW,MAAOlX,EAAIA,EAAEgzB,EAAI,IAI5D,GAHIwB,KAAO,MAAOx0B,KAAIA,EAAEw0B,EAAI,GACxB,MAAOx0B,IAAGA,EAAE2zB,EAAI3zB,EAAE2zB,EAAI,GAAW,GAAN3zB,EAAE8e,QACrB,IAAR9e,EAAE6e,IAAc7e,EAAE6e,EAAI,MAAO7e,EAAIA,EAAEk3B,EAAI,GACvC,MAAOl3B,EAAG,CACZ,GAAIA,EAAEg/E,EAAI,GAAKh/E,EAAEg/E,EAAI,GAAI,OAAO,KAC1B,MAAOh/E,IAAIA,EAAE2uB,EAAI,GACnB,MAAO3uB,GAC2Bg0B,GAApC3iB,EAAO6nE,EAAQC,EAAQn5E,EAAE5L,EAAG,EAAG,KAAgB+gF,YAC/C9jE,EAAO2iB,EAAM,GAAa,IAARA,EAAYglD,EAAO3D,UAAU3mD,KAAKrd,GAAQ2nE,EAAO3D,UAAUhkE,GAC7EA,EAAO2nE,EAAOnE,OAAOzhF,OAAOie,EAAkB,GAAXrR,EAAEg/E,EAAI,IACzCh/E,EAAE5L,EAAIid,EAAKglE,iBACXr2E,EAAE6e,EAAIxN,EAAK+kE,cACXp2E,EAAEA,EAAIqR,EAAK2jE,cAAgBh1E,EAAE2uB,EAAI,GAAK,IAEAqF,GAAtC3iB,EAAO4nE,EAAUE,EAAQn5E,EAAE5L,EAAG,EAAG,KAAgBg8B,SACjD/e,EAAO2iB,EAAM,GAAa,IAARA,EAAYglD,EAAO3B,WAAW3oD,KAAKrd,GAAQ2nE,EAAO3B,WAAWhmE,GAC/EA,EAAO2nE,EAAOtC,QAAQtjF,OAAOie,EAAkB,GAAXrR,EAAEg/E,EAAI,IAC1Ch/E,EAAE5L,EAAIid,EAAKye,cACX9vB,EAAE6e,EAAIxN,EAAK2e,WACXhwB,EAAEA,EAAIqR,EAAK6e,WAAalwB,EAAE2uB,EAAI,GAAK,EAEvC,MAAW,MAAO3uB,GAAK,MAAOA,KACtB,MAAOA,IAAIA,EAAE2uB,EAAI,MAAO3uB,EAAIA,EAAE2a,EAAI,EAAI,MAAO3a,EAAI,EAAI,GAC3Dg0B,EAAM,MAAOh0B,EAAIk5E,EAAQC,EAAQn5E,EAAE5L,EAAG,EAAG,IAAI+gF,YAAc8D,EAAUE,EAAQn5E,EAAE5L,EAAG,EAAG,IAAIg8B,SACzFpwB,EAAE6e,EAAI,EACN7e,EAAEA,EAAI,MAAOA,GAAKA,EAAE2uB,EAAI,GAAK,EAAU,EAAN3uB,EAAEi/E,GAASjrD,EAAM,GAAK,EAAIh0B,EAAE2uB,EAAU,EAAN3uB,EAAE+qD,GAAS/2B,EAAM,GAAK,GAEzF,MAAI,MAAOh0B,GACTA,EAAE2zB,GAAK3zB,EAAEw0B,EAAI,IAAM,EACnBx0B,EAAEiuB,GAAKjuB,EAAEw0B,EAAI,IACN0kD,EAAQl5E,IAEVi5E,EAAUj5E,EACnB,CACF,CACA,SAASq9E,GAAer9E,EAAG2+E,EAAW/gF,EAAQ3J,GAE5C,IADA,IAAoD85B,EAAGmxD,EAAnDlxF,EAAI,EAAGkoB,EAAIyoE,EAAUvyF,OAAQyyB,EAAIjhB,EAAOxR,OACrC4B,EAAIkoB,GAAG,CACZ,GAAIjiB,GAAK4qB,EAAG,OAAQ,EAEpB,GAAU,MADVkP,EAAI4wD,EAAU/uF,WAAW5B,OAIvB,GAFA+/B,EAAI4wD,EAAUtoE,OAAOroB,OACrBkxF,EAAS9B,GAAOrvD,KAAK+wD,EAAOH,EAAUtoE,OAAOroB,KAAO+/B,MACpC95B,EAAIirF,EAAOl/E,EAAGpC,EAAQ3J,IAAM,EAAG,OAAQ,OAClD,GAAI85B,GAAKnwB,EAAOhO,WAAWqE,KAChC,OAAQ,CAEZ,CACA,OAAOA,CACT,CAkEA,OAjJAygC,GAAQvgC,EAAIuqF,GAAUlF,EAAa9kD,IACnCA,GAAQyqD,EAAIT,GAAUjF,EAAa/kD,IACnCA,GAAQ3G,EAAI2wD,GAAUpF,EAAiB5kD,IACvCwnD,GAAW/nF,EAAIuqF,GAAUlF,EAAa0C,IACtCA,GAAWiD,EAAIT,GAAUjF,EAAayC,IACtCA,GAAWnuD,EAAI2wD,GAAUpF,EAAiB4C,IA4InC,CACLpqD,OAAQ,SAAS6sD,GACf,IAAItnE,EAAIqnE,GAAUC,GAAa,GAAIjqD,IAInC,OAHArd,EAAE/d,SAAW,WACX,OAAOqlF,CACT,EACOtnE,CACT,EACAvkB,MAAO,SAAS6rF,GACd,IAAI7/D,EAAIigE,GAASJ,GAAa,IAAI,GAIlC,OAHA7/D,EAAExlB,SAAW,WACX,OAAOqlF,CACT,EACO7/D,CACT,EACAsgE,UAAW,SAAST,GAClB,IAAItnE,EAAIqnE,GAAUC,GAAa,GAAIzC,IAInC,OAHA7kE,EAAE/d,SAAW,WACX,OAAOqlF,CACT,EACOtnE,CACT,EACAgoE,SAAU,SAASV,GACjB,IAAI7/D,EAAIigE,GAASJ,GAAa,IAAI,GAIlC,OAHA7/D,EAAExlB,SAAW,WACX,OAAOqlF,CACT,EACO7/D,CACT,EAEJ,CACA,IAsNIqQ,EAtNA2vD,EAAO,CAAE,IAAK,GAAI,EAAK,IAAK,EAAK,KAAOQ,EAAW,UAAWC,EAAY,KAAMC,EAAY,sBAChG,SAASve,EAAI9xE,EAAO6T,EAAMH,GACxB,IAAI6rE,EAAOv/E,EAAQ,EAAI,IAAM,GAAIyO,GAAU8wE,GAAQv/E,EAAQA,GAAS,GAAI/C,EAASwR,EAAOxR,OACxF,OAAOsiF,GAAQtiF,EAASyW,EAAQ,IAAIjN,MAAMiN,EAAQzW,EAAS,GAAGwG,KAAKoQ,GAAQpF,EAASA,EACtF,CACA,SAAS0nC,EAAQpuB,GACf,OAAOA,EAAE9nB,QAAQowF,EAAW,OAC9B,CACA,SAASrF,EAASsF,GAChB,OAAO,IAAIzpE,OAAO,OAASypE,EAAOpqF,IAAIiwC,GAAS1yC,KAAK,KAAO,IAAK,IAClE,CACA,SAASynF,EAAaoF,GAEpB,IADA,IAAIpqF,EAAM,CAAC,EAAGrH,GAAK,EAAGkoB,EAAIupE,EAAOrzF,SACxB4B,EAAIkoB,GAAG7gB,EAAIoqF,EAAOzxF,GAAG8O,eAAiB9O,EAC/C,OAAOqH,CACT,CACA,SAAS+oF,EAAyBp+E,EAAGpC,EAAQ5P,GAC3C,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAE2uB,GAAKzY,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAAS6xF,EAAyBj+E,EAAGpC,EAAQ5P,GAC3C,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAE2a,GAAKzE,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAAS8xF,EAAsBl+E,EAAGpC,EAAQ5P,GACxC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAE+qD,GAAK70C,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAAS+xF,EAAmBn+E,EAAGpC,EAAQ5P,GACrC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAEg/E,GAAK9oE,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAASiyF,EAAsBr+E,EAAGpC,EAAQ5P,GACxC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAEi/E,GAAK/oE,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAASmyF,EAAcv+E,EAAGpC,EAAQ5P,GAChC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAE5L,GAAK8hB,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAASkyF,EAAUt+E,EAAGpC,EAAQ5P,GAC5B,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAE5L,GAAK8hB,EAAE,KAAOA,EAAE,GAAK,GAAK,KAAO,KAAMloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC3E,CACA,SAASoyF,EAAUx+E,EAAGpC,EAAQ5P,GAC5B,IAAIkoB,EAAI,+BAA+B3gB,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAChE,OAAOkoB,GAAKlW,EAAEw0B,EAAIte,EAAE,GAAK,IAAMA,EAAE,IAAMA,EAAE,IAAM,OAAQloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC7E,CACA,SAASyxF,EAAa79E,EAAGpC,EAAQ5P,GAC/B,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAEk3B,EAAW,EAAPhhB,EAAE,GAAS,EAAGloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CACtD,CACA,SAASuxF,EAAiB39E,EAAGpC,EAAQ5P,GACnC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAE6e,EAAI3I,EAAE,GAAK,EAAGloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAClD,CACA,SAASkxF,EAAgBt9E,EAAGpC,EAAQ5P,GAClC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAEA,GAAKkW,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAASqxF,EAAez9E,EAAGpC,EAAQ5P,GACjC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAE6e,EAAI,EAAG7e,EAAEA,GAAKkW,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CACxD,CACA,SAASoxF,EAAYx9E,EAAGpC,EAAQ5P,GAC9B,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAE2zB,GAAKzd,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAASwxF,EAAa59E,EAAGpC,EAAQ5P,GAC/B,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAEiuB,GAAK/X,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAAS4xF,EAAah+E,EAAGpC,EAAQ5P,GAC/B,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAEgvB,GAAK9Y,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAASsxF,EAAkB19E,EAAGpC,EAAQ5P,GACpC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAEgzB,GAAK9c,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAASmxF,EAAkBv9E,EAAGpC,EAAQ5P,GACpC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC1C,OAAOkoB,GAAKlW,EAAEgzB,EAAIpkC,KAAK2/B,MAAMrY,EAAE,GAAK,KAAMloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAChE,CACA,SAASqyF,EAAoBz+E,EAAGpC,EAAQ5P,GACtC,IAAIkoB,EAAIqpE,EAAUhqF,KAAKqI,EAAO5N,MAAMhC,EAAGA,EAAI,IAC3C,OAAOkoB,EAAIloB,EAAIkoB,EAAE,GAAG9pB,QAAU,CAChC,CACA,SAAS0xF,EAAmB99E,EAAGpC,EAAQ5P,GACrC,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,IACnC,OAAOkoB,GAAKlW,EAAE8uB,GAAK5Y,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAAS2xF,EAA0B/9E,EAAGpC,EAAQ5P,GAC5C,IAAIkoB,EAAIopE,EAAS/pF,KAAKqI,EAAO5N,MAAMhC,IACnC,OAAOkoB,GAAKlW,EAAEkX,GAAKhB,EAAE,GAAIloB,EAAIkoB,EAAE,GAAG9pB,SAAW,CAC/C,CACA,SAAS0uF,EAAiB96E,EAAG8e,GAC3B,OAAOmiD,EAAIjhE,EAAEkwB,UAAWpR,EAAG,EAC7B,CACA,SAASk8D,EAAah7E,EAAG8e,GACvB,OAAOmiD,EAAIjhE,EAAEswB,WAAYxR,EAAG,EAC9B,CACA,SAASm8D,EAAaj7E,EAAG8e,GACvB,OAAOmiD,EAAIjhE,EAAEswB,WAAa,IAAM,GAAIxR,EAAG,EACzC,CACA,SAASo8D,EAAgBl7E,EAAG8e,GAC1B,OAAOmiD,EAAI,EAAI+X,EAAOtC,QAAQ7kF,MAAMmnF,EAAOT,SAASv4E,GAAIA,GAAI8e,EAAG,EACjE,CACA,SAASq8D,EAAmBn7E,EAAG8e,GAC7B,OAAOmiD,EAAIjhE,EAAE4wB,kBAAmB9R,EAAG,EACrC,CACA,SAASi8D,EAAmB/6E,EAAG8e,GAC7B,OAAOq8D,EAAmBn7E,EAAG8e,GAAK,KACpC,CACA,SAASs8D,EAAkBp7E,EAAG8e,GAC5B,OAAOmiD,EAAIjhE,EAAEgwB,WAAa,EAAGlR,EAAG,EAClC,CACA,SAASu8D,EAAcr7E,EAAG8e,GACxB,OAAOmiD,EAAIjhE,EAAEwwB,aAAc1R,EAAG,EAChC,CACA,SAAS08D,EAAcx7E,EAAG8e,GACxB,OAAOmiD,EAAIjhE,EAAE0wB,aAAc5R,EAAG,EAChC,CACA,SAAS28D,EAA0Bz7E,GACjC,IAAIg0B,EAAMh0B,EAAEowB,SACZ,OAAe,IAAR4D,EAAY,EAAIA,CACzB,CACA,SAAS0nD,EAAuB17E,EAAG8e,GACjC,OAAOmiD,EAAI+X,EAAOnB,WAAWhmF,MAAMmnF,EAAOT,SAASv4E,GAAK,EAAGA,GAAI8e,EAAG,EACpE,CACA,SAAS68D,EAAoB37E,EAAG8e,GAC9B,IAAIkV,EAAMh0B,EAAEowB,SAEZ,OADApwB,EAAIg0B,GAAO,GAAa,IAARA,EAAYglD,EAAOjB,aAAa/3E,GAAKg5E,EAAOjB,aAAarpD,KAAK1uB,GACvEihE,EAAI+X,EAAOjB,aAAalmF,MAAMmnF,EAAOT,SAASv4E,GAAIA,IAAsC,IAAhCg5E,EAAOT,SAASv4E,GAAGowB,UAAiBtR,EAAG,EACxG,CACA,SAAS88D,EAA0B57E,GACjC,OAAOA,EAAEowB,QACX,CACA,SAASyrD,EAAuB77E,EAAG8e,GACjC,OAAOmiD,EAAI+X,EAAO3B,WAAWxlF,MAAMmnF,EAAOT,SAASv4E,GAAK,EAAGA,GAAI8e,EAAG,EACpE,CACA,SAASg9D,EAAW97E,EAAG8e,GACrB,OAAOmiD,EAAIjhE,EAAE8vB,cAAgB,IAAKhR,EAAG,EACvC,CACA,SAASi9D,EAAe/7E,EAAG8e,GACzB,OAAOmiD,EAAIjhE,EAAE8vB,cAAgB,IAAKhR,EAAG,EACvC,CACA,SAASk9D,EAAWh8E,GAClB,IAAI3L,EAAI2L,EAAEoyB,oBACV,OAAQ/9B,EAAI,EAAI,KAAOA,IAAM,EAAG,MAAQ4sE,EAAI5sE,EAAI,GAAK,EAAG,IAAK,GAAK4sE,EAAI5sE,EAAI,GAAI,IAAK,EACrF,CACA,SAAS8nF,EAAoBn8E,EAAG8e,GAC9B,OAAOmiD,EAAIjhE,EAAEg1E,aAAcl2D,EAAG,EAChC,CACA,SAASu9D,EAAgBr8E,EAAG8e,GAC1B,OAAOmiD,EAAIjhE,EAAE20E,cAAe71D,EAAG,EACjC,CACA,SAASw9D,GAAgBt8E,EAAG8e,GAC1B,OAAOmiD,EAAIjhE,EAAE20E,cAAgB,IAAM,GAAI71D,EAAG,EAC5C,CACA,SAASy9D,GAAmBv8E,EAAG8e,GAC7B,OAAOmiD,EAAI,EAAI+X,EAAOnE,OAAOhjF,MAAMmnF,EAAOzC,QAAQv2E,GAAIA,GAAI8e,EAAG,EAC/D,CACA,SAAS09D,GAAsBx8E,EAAG8e,GAChC,OAAOmiD,EAAIjhE,EAAE0/E,qBAAsB5gE,EAAG,EACxC,CACA,SAASs9D,GAAsBp8E,EAAG8e,GAChC,OAAO09D,GAAsBx8E,EAAG8e,GAAK,KACvC,CACA,SAAS29D,GAAqBz8E,EAAG8e,GAC/B,OAAOmiD,EAAIjhE,EAAEo2E,cAAgB,EAAGt3D,EAAG,EACrC,CACA,SAAS49D,GAAiB18E,EAAG8e,GAC3B,OAAOmiD,EAAIjhE,EAAEu0E,gBAAiBz1D,EAAG,EACnC,CACA,SAAS69D,GAAiB38E,EAAG8e,GAC3B,OAAOmiD,EAAIjhE,EAAE6yE,gBAAiB/zD,EAAG,EACnC,CACA,SAAS89D,GAA6B58E,GACpC,IAAI2/E,EAAM3/E,EAAEm1E,YACZ,OAAe,IAARwK,EAAY,EAAIA,CACzB,CACA,SAAS9C,GAA0B78E,EAAG8e,GACpC,OAAOmiD,EAAI+X,EAAO5D,UAAUvjF,MAAMmnF,EAAOzC,QAAQv2E,GAAK,EAAGA,GAAI8e,EAAG,EAClE,CACA,SAASg+D,GAAuB98E,EAAG8e,GACjC,IAAIkV,EAAMh0B,EAAEm1E,YAEZ,OADAn1E,EAAIg0B,GAAO,GAAa,IAARA,EAAYglD,EAAOxD,YAAYx1E,GAAKg5E,EAAOxD,YAAY9mD,KAAK1uB,GACrEihE,EAAI+X,EAAOxD,YAAY3jF,MAAMmnF,EAAOzC,QAAQv2E,GAAIA,IAAwC,IAAlCg5E,EAAOzC,QAAQv2E,GAAGm1E,aAAoBr2D,EAAG,EACxG,CACA,SAASi+D,GAA6B/8E,GACpC,OAAOA,EAAEm1E,WACX,CACA,SAAS6H,GAA0Bh9E,EAAG8e,GACpC,OAAOmiD,EAAI+X,EAAO3D,UAAUxjF,MAAMmnF,EAAOzC,QAAQv2E,GAAK,EAAGA,GAAI8e,EAAG,EAClE,CACA,SAASm+D,GAAcj9E,EAAG8e,GACxB,OAAOmiD,EAAIjhE,EAAEq2E,iBAAmB,IAAKv3D,EAAG,EAC1C,CACA,SAASo+D,GAAkBl9E,EAAG8e,GAC5B,OAAOmiD,EAAIjhE,EAAEq2E,iBAAmB,IAAKv3D,EAAG,EAC1C,CACA,SAASq+D,KACP,MAAO,OACT,CACA,SAASlB,KACP,MAAO,GACT,CACA,SAASX,GAAoBt7E,GAC3B,OAAQA,CACV,CACA,SAASu7E,GAA2Bv7E,GAClC,OAAOpR,KAAK2/B,OAAOvuB,EAAI,IACzB,CAYA,SAAS4/E,GAAc5kD,GAMrB,OALA7L,EAASiqD,EAAap+C,GACtB+2C,EAAS8N,WAAa1wD,EAAO2C,OAC7BigD,EAAS+N,UAAY3wD,EAAOr8B,MAC5Bi/E,EAASqN,UAAYjwD,EAAOiwD,UAC5BrN,EAASsN,SAAWlwD,EAAOkwD,SACpBlwD,CACT,CAjBAywD,GAAc,CACZrG,SAAU,SACVpoE,KAAM,aACNG,KAAM,eACNqoE,QAAS,CAAC,KAAM,MAChBzG,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACzE4G,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtD3rD,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACvH8rD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SAU7F,IAAI8F,GAAe,wBAIfC,GAAYtwD,KAAKviC,UAAUolC,YAH/B,SAAyBphB,GACvB,OAAOA,EAAKohB,aACd,EAC+Dw/C,EAASqN,UAAUW,IAK9EE,IAA4B,IAAIvwD,KAAK,4BAJzC,SAAwB9xB,GACtB,IAAIuT,EAAO,IAAIue,KAAK9xB,GACpB,OAAO4hC,MAAMruB,GAAQ,KAAOA,CAC9B,EACwF4gE,EAASsN,SAASU,IAC1GhO,EAASmO,UAAYF,GACrBjO,EAASoO,SAAWF,GACpBlO,EAASqO,wBAA0BR,GACnC7N,EAASsO,iBAAmBjH,EAC5BnqF,OAAOgR,eAAe8xE,EAAU,aAAc,CAAE5iF,OAAO,GACzD,EAjiBqB,kBAAZwQ,GAA0C,qBAAXkuB,EAAyB+K,EAAQj5B,EAASkyE,KAAmIj5C,GAA3Bk5C,EAAUA,GAAWj5C,MAAsBkF,GAAK+zC,EAAQ/zC,IAAM,CAAC,EAAG+zC,EAAQ/zC,GAkiBtQ,IAIEuiD,EAAoBrmD,EAAW,CACjC,2CAA2Ct6B,EAASkuB,GAClD,IAAUikD,IAEPnyE,EAAS,SAASoyE,GAKnB,SAASwO,EAAmBpsF,EAAG2qB,GAC7B,IAAK9wB,GAAKmG,EAAI2qB,EAAI3qB,EAAEqsF,cAAc1hE,EAAI,GAAK3qB,EAAEqsF,iBAAiB/wF,QAAQ,MAAQ,EAAG,OAAO,KACxF,IAAIzB,EAAGypB,EAActjB,EAAEnE,MAAM,EAAGhC,GAChC,MAAO,CACLypB,EAAYrrB,OAAS,EAAIqrB,EAAY,GAAKA,EAAYznB,MAAM,GAAKynB,GAChEtjB,EAAEnE,MAAMhC,EAAI,GAEjB,CACA,SAASu1E,EAASpvE,GAChB,OAAOA,EAAIosF,EAAmB3xF,KAAKD,IAAIwF,KAASA,EAAE,GAAKw7B,GACzD,CAoBA,IAmDI8wD,EAnDA1qE,EAAK,2EACT,SAAS2qE,EAAgB/B,GACvB,KAAMnpF,EAAQugB,EAAGxgB,KAAKopF,IAAa,MAAM,IAAI5gF,MAAM,mBAAqB4gF,GACxE,IAAInpF,EACJ,OAAO,IAAImrF,EAAgB,CACzB39E,KAAMxN,EAAM,GACZorF,MAAOprF,EAAM,GACbk5E,KAAMl5E,EAAM,GACZ41E,OAAQ51E,EAAM,GACdkmE,KAAMlmE,EAAM,GACZqN,MAAOrN,EAAM,GACbqrF,MAAOrrF,EAAM,GACbsrF,UAAWtrF,EAAM,IAAMA,EAAM,GAAGxF,MAAM,GACtCd,KAAMsG,EAAM,GACZ3E,KAAM2E,EAAM,KAEhB,CAEA,SAASmrF,EAAgBhC,GACvB5yF,KAAKiX,UAA0B,IAAnB27E,EAAU37E,KAAkB,IAAM27E,EAAU37E,KAAO,GAC/DjX,KAAK60F,WAA4B,IAApBjC,EAAUiC,MAAmB,IAAMjC,EAAUiC,MAAQ,GAClE70F,KAAK2iF,UAA0B,IAAnBiQ,EAAUjQ,KAAkB,IAAMiQ,EAAUjQ,KAAO,GAC/D3iF,KAAKq/E,YAA8B,IAArBuT,EAAUvT,OAAoB,GAAKuT,EAAUvT,OAAS,GACpEr/E,KAAK2vE,OAASijB,EAAUjjB,KACxB3vE,KAAK8W,WAA4B,IAApB87E,EAAU97E,WAAmB,GAAU87E,EAAU97E,MAC9D9W,KAAK80F,QAAUlC,EAAUkC,MACzB90F,KAAK+0F,eAAoC,IAAxBnC,EAAUmC,eAAuB,GAAUnC,EAAUmC,UACtE/0F,KAAKmD,OAASyvF,EAAUzvF,KACxBnD,KAAK8E,UAA0B,IAAnB8tF,EAAU9tF,KAAkB,GAAK8tF,EAAU9tF,KAAO,EAChE,CA6BA,SAASkwF,EAAc5sF,EAAG2qB,GACxB,IAAI9e,EAAIugF,EAAmBpsF,EAAG2qB,GAC9B,IAAK9e,EAAG,OAAO7L,EAAI,GACnB,IAAIsjB,EAAczX,EAAE,GAAIghF,EAAYhhF,EAAE,GACtC,OAAOghF,EAAY,EAAI,KAAO,IAAIprF,OAAOorF,GAAWpuF,KAAK,KAAO6kB,EAAcA,EAAYrrB,OAAS40F,EAAY,EAAIvpE,EAAYznB,MAAM,EAAGgxF,EAAY,GAAK,IAAMvpE,EAAYznB,MAAMgxF,EAAY,GAAKvpE,EAAc,IAAI7hB,MAAMorF,EAAYvpE,EAAYrrB,OAAS,GAAGwG,KAAK,IACrQ,CA9CA8tF,EAAgBvzF,UAAYwzF,EAAgBxzF,UAa5CwzF,EAAgBxzF,UAAUmM,SAAW,WACnC,OAAOvN,KAAKiX,KAAOjX,KAAK60F,MAAQ70F,KAAK2iF,KAAO3iF,KAAKq/E,QAAUr/E,KAAK2vE,KAAO,IAAM,UAAsB,IAAf3vE,KAAK8W,MAAmB,GAAKjU,KAAK6mB,IAAI,EAAgB,EAAb1pB,KAAK8W,SAAe9W,KAAK80F,MAAQ,IAAM,UAA0B,IAAnB90F,KAAK+0F,UAAuB,GAAK,IAAMlyF,KAAK6mB,IAAI,EAAoB,EAAjB1pB,KAAK+0F,aAAmB/0F,KAAKmD,KAAO,IAAM,IAAMnD,KAAK8E,IACrR,EAgCA,IAAIowF,EAAc,CAChB,IAAK,SAAS9sF,EAAG2qB,GACf,OAAY,IAAJ3qB,GAASqjB,QAAQsH,EAC3B,EACA,EAAK,SAAS3qB,GACZ,OAAOvF,KAAK+b,MAAMxW,GAAGmF,SAAS,EAChC,EACA,EAAK,SAASnF,GACZ,OAAOA,EAAI,EACb,EACA,EA3GF,SAAuBA,GACrB,OAAOvF,KAAKD,IAAIwF,EAAIvF,KAAK+b,MAAMxW,KAAO,KAAOA,EAAE+sF,eAAe,MAAM9xF,QAAQ,KAAM,IAAM+E,EAAEmF,SAAS,GACrG,EA0GE,EAAK,SAASnF,EAAG2qB,GACf,OAAO3qB,EAAEqsF,cAAc1hE,EACzB,EACA,EAAK,SAAS3qB,EAAG2qB,GACf,OAAO3qB,EAAEqjB,QAAQsH,EACnB,EACA,EAAK,SAAS3qB,EAAG2qB,GACf,OAAO3qB,EAAEgtF,YAAYriE,EACvB,EACA,EAAK,SAAS3qB,GACZ,OAAOvF,KAAK+b,MAAMxW,GAAGmF,SAAS,EAChC,EACA,EAAK,SAASnF,EAAG2qB,GACf,OAAOiiE,EAAkB,IAAJ5sF,EAAS2qB,EAChC,EACA,EAAKiiE,EACL,EAvCF,SAA0B5sF,EAAG2qB,GAC3B,IAAI9e,EAAIugF,EAAmBpsF,EAAG2qB,GAC9B,IAAK9e,EAAG,OAAO7L,EAAI,GACnB,IAAIsjB,EAAczX,EAAE,GAAIghF,EAAYhhF,EAAE,GAAIhS,EAAIgzF,GAAaP,EAAwE,EAAvD7xF,KAAK6mB,KAAK,EAAG7mB,KAAK8mB,IAAI,EAAG9mB,KAAK2/B,MAAMyyD,EAAY,MAAY,EAAG9qE,EAAIuB,EAAYrrB,OAC3J,OAAO4B,IAAMkoB,EAAIuB,EAAczpB,EAAIkoB,EAAIuB,EAAc,IAAI7hB,MAAM5H,EAAIkoB,EAAI,GAAGtjB,KAAK,KAAO5E,EAAI,EAAIypB,EAAYznB,MAAM,EAAGhC,GAAK,IAAMypB,EAAYznB,MAAMhC,GAAK,KAAO,IAAI4H,MAAM,EAAI5H,GAAG4E,KAAK,KAAO2tF,EAAmBpsF,EAAGvF,KAAK6mB,IAAI,EAAGqJ,EAAI9wB,EAAI,IAAI,EACzO,EAmCE,EAAK,SAASmG,GACZ,OAAOvF,KAAK+b,MAAMxW,GAAGmF,SAAS,IAAIivB,aACpC,EACA,EAAK,SAASp0B,GACZ,OAAOvF,KAAK+b,MAAMxW,GAAGmF,SAAS,GAChC,GAEF,SAAS4rE,EAAU/wE,GACjB,OAAOA,CACT,CACA,IAuEIg7B,EAvEA95B,EAAMO,MAAMzI,UAAUkI,IAAK+rF,EAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7H,SAAShI,EAAaC,GACpB,IA3HmBgI,EAAUC,EA2HzB56C,OAA6B,IAArB2yC,EAAQgI,eAA6C,IAAtBhI,EAAQiI,UAAuBpc,GA3HvDmc,EA2H+EhsF,EAAIQ,KAAKwjF,EAAQgI,SAAU9pE,QA3HhG+pE,EA2HyGjI,EAAQiI,UAAY,GA1HnJ,SAASnyF,EAAO0T,GAErB,IADA,IAAI7U,EAAImB,EAAM/C,OAAQkuB,EAAI,GAAIrmB,EAAI,EAAG86B,EAAIsyD,EAAS,GAAIj1F,EAAS,EACxD4B,EAAI,GAAK+gC,EAAI,IACd3iC,EAAS2iC,EAAI,EAAIlsB,IAAOksB,EAAIngC,KAAK6mB,IAAI,EAAG5S,EAAQzW,IACpDkuB,EAAE3tB,KAAKwC,EAAMonB,UAAUvoB,GAAK+gC,EAAG/gC,EAAI+gC,OAC9B3iC,GAAU2iC,EAAI,GAAKlsB,KACxBksB,EAAIsyD,EAASptF,GAAKA,EAAI,GAAKotF,EAASj1F,QAEtC,OAAOkuB,EAAE8gD,UAAUxoE,KAAK0uF,EAC1B,GAiH+JC,OAAsC,IAArBlI,EAAQmI,SAAsB,GAAKnI,EAAQmI,SAAS,GAAK,GAAIC,OAAsC,IAArBpI,EAAQmI,SAAsB,GAAKnI,EAAQmI,SAAS,GAAK,GAAIE,OAA8B,IAApBrI,EAAQqI,QAAqB,IAAMrI,EAAQqI,QAAU,GAAIC,OAAgC,IAArBtI,EAAQsI,SAAsBzc,EA/Gza,SAAwByc,GACtB,OAAO,SAASxyF,GACd,OAAOA,EAAMC,QAAQ,UAAU,SAASpB,GACtC,OAAO2zF,GAAU3zF,EACnB,GACF,CACF,CAyGqb4zF,CAAevsF,EAAIQ,KAAKwjF,EAAQsI,SAAU7yF,SAAU+yF,OAA8B,IAApBxI,EAAQwI,QAAqB,IAAMxI,EAAQwI,QAAU,GAAIC,OAA0B,IAAlBzI,EAAQyI,MAAmB,IAAMzI,EAAQyI,MAAQ,GAAIC,OAAsB,IAAhB1I,EAAQ0I,IAAiB,MAAQ1I,EAAQ0I,IAAM,GAC5pB,SAASrD,EAAUC,GAEjB,IAAI37E,GADJ27E,EAAY+B,EAAgB/B,IACP37E,KAAM49E,EAAQjC,EAAUiC,MAAOlS,EAAOiQ,EAAUjQ,KAAMtD,EAASuT,EAAUvT,OAAQ4W,EAAQrD,EAAUjjB,KAAM74D,EAAQ87E,EAAU97E,MAAOg+E,EAAQlC,EAAUkC,MAAOC,EAAYnC,EAAUmC,UAAW5xF,EAAOyvF,EAAUzvF,KAAM2B,EAAO8tF,EAAU9tF,KAC5O,MAATA,GAAcgwF,GAAQ,EAAMhwF,EAAO,KAC7BowF,EAAYpwF,UAAqB,IAAdiwF,IAAyBA,EAAY,IAAK5xF,GAAO,EAAM2B,EAAO,MACvFmxF,GAAkB,MAATh/E,GAA0B,MAAV49E,KAAeoB,GAAQ,EAAMh/E,EAAO,IAAK49E,EAAQ,KAC9E,IAAI1rF,EAAoB,MAAXk2E,EAAiBmW,EAA4B,MAAXnW,GAAkB,SAASh4D,KAAKviB,GAAQ,IAAMA,EAAKiM,cAAgB,GAAImlF,EAAoB,MAAX7W,EAAiBqW,EAAiB,OAAOruE,KAAKviB,GAAQgxF,EAAU,GAC3LK,EAAajB,EAAYpwF,GAAOsxF,EAAc,aAAa/uE,KAAKviB,GAEpE,SAASihC,EAAO3iC,GACd,IAAgDnB,EAAGkoB,EAAG6X,EAAlDq0D,EAAcltF,EAAQmtF,EAAcJ,EACxC,GAAa,MAATpxF,EACFwxF,EAAcH,EAAW/yF,GAASkzF,EAClClzF,EAAQ,OACH,CAEL,IAAImzF,GADJnzF,GAASA,GACmB,GAAK,EAAIA,EAAQ,EAM7C,GALAA,EAAQqwC,MAAMrwC,GAAS4yF,EAAMG,EAAWtzF,KAAKD,IAAIQ,GAAQ2xF,GACrD5xF,IAAMC,EA1FlB,SAAoB+nB,GAClB06C,EAAK,IAAK,IAAkC5wB,EAA9B9qB,EAAIgB,EAAE9qB,OAAQ4B,EAAI,EAAG+yC,GAAM,EAAO/yC,EAAIkoB,IAAKloB,EACvD,OAAQkpB,EAAElpB,IACR,IAAK,IACH+yC,EAAKC,EAAKhzC,EACV,MACF,IAAK,IACQ,IAAP+yC,IAAUA,EAAK/yC,GACnBgzC,EAAKhzC,EACL,MACF,QACE,KAAMkpB,EAAElpB,GAAI,MAAM4jE,EACd7wB,EAAK,IAAGA,EAAK,GAIvB,OAAOA,EAAK,EAAI7pB,EAAElnB,MAAM,EAAG+wC,GAAM7pB,EAAElnB,MAAMgxC,EAAK,GAAK9pB,CACrD,CAyE0BqrE,CAAWpzF,IACzBmzF,GAA4B,KAAVnzF,GAAwB,MAATu/E,IAAc4T,GAAgB,GACnEF,GAAeE,EAAyB,MAAT5T,EAAeA,EAAOoT,EAAiB,MAATpT,GAAyB,MAATA,EAAe,GAAKA,GAAQ0T,EACzGC,GAAwB,MAATxxF,EAAeuwF,EAAS,EAAIX,EAAiB,GAAK,IAAM4B,GAAeC,GAA0B,MAAT5T,EAAe,IAAM,IACxHyT,EAEF,IADAn0F,GAAK,EAAGkoB,EAAI/mB,EAAM/C,SACT4B,EAAIkoB,GACX,GAA6B,IAAzB6X,EAAI5+B,EAAMS,WAAW5B,KAAc+/B,EAAI,GAAI,CAC7Cs0D,GAAqB,KAANt0D,EAAW2zD,EAAUvyF,EAAMa,MAAMhC,EAAI,GAAKmB,EAAMa,MAAMhC,IAAMq0F,EAC3ElzF,EAAQA,EAAMa,MAAM,EAAGhC,GACvB,KACF,CAGN,CACI6yF,IAAUmB,IAAO7yF,EAAQu3C,EAAMv3C,EAAO4zC,MAC1C,IAAI32C,EAASg2F,EAAYh2F,OAAS+C,EAAM/C,OAASi2F,EAAYj2F,OAAQs0B,EAAUt0B,EAASyW,EAAQ,IAAIjN,MAAMiN,EAAQzW,EAAS,GAAGwG,KAAKoQ,GAAQ,GAE3I,OADI69E,GAASmB,IAAO7yF,EAAQu3C,EAAMhmB,EAAUvxB,EAAOuxB,EAAQt0B,OAASyW,EAAQw/E,EAAYj2F,OAAS22C,KAAWriB,EAAU,IAC9GkgE,GACN,IAAK,IACHzxF,EAAQizF,EAAcjzF,EAAQkzF,EAAc3hE,EAC5C,MACF,IAAK,IACHvxB,EAAQizF,EAAc1hE,EAAUvxB,EAAQkzF,EACxC,MACF,IAAK,IACHlzF,EAAQuxB,EAAQ1wB,MAAM,EAAG5D,EAASs0B,EAAQt0B,QAAU,GAAKg2F,EAAcjzF,EAAQkzF,EAAc3hE,EAAQ1wB,MAAM5D,GAC3G,MACF,QACE+C,EAAQuxB,EAAU0hE,EAAcjzF,EAAQkzF,EAG5C,OAAOV,EAASxyF,EAClB,CAIA,OA/CA2xF,OAA0B,IAAdA,EAAuB,EAAI,SAAS1tE,KAAKviB,GAAQjC,KAAK6mB,IAAI,EAAG7mB,KAAK8mB,IAAI,GAAIorE,IAAclyF,KAAK6mB,IAAI,EAAG7mB,KAAK8mB,IAAI,GAAIorE,IA4C7HhvD,EAAOx4B,SAAW,WAChB,OAAOqlF,EAAY,EACrB,EACO7sD,CACT,CAOA,MAAO,CACLA,OAAQ4sD,EACR8D,aARF,SAAsB7D,EAAWxvF,GAC/B,IAAIkoB,EAAIqnE,IAAWC,EAAY+B,EAAgB/B,IAAsB9tF,KAAO,IAAK8tF,IAAarwF,EAAiE,EAA7DM,KAAK6mB,KAAK,EAAG7mB,KAAK8mB,IAAI,EAAG9mB,KAAK2/B,MAAMg1C,EAASp0E,GAAS,KAAU+E,EAAItF,KAAK4jD,IAAI,IAAKlkD,GAAI4G,EAASksF,EAAS,EAAI9yF,EAAI,GAClN,OAAO,SAASm0F,GACd,OAAOprE,EAAEnjB,EAAIuuF,GAAUvtF,CACzB,CACF,EAKF,CASA,SAAS0qF,EAAc5kD,GAIrB,OAHA7L,EAASiqD,EAAap+C,GACtB+2C,EAASjgD,OAAS3C,EAAO2C,OACzBigD,EAASyQ,aAAerzD,EAAOqzD,aACxBrzD,CACT,CAZAywD,EAAc,CACZ8B,QAAS,IACTJ,UAAW,IACXD,SAAU,CAAC,GACXG,SAAU,CAAC,IAAK,IAChBM,MAAO,MAkBT/P,EAAS4O,gBAAkBA,EAC3B5O,EAAS2Q,oBAAsB9C,EAC/B7N,EAASqH,aAAeA,EACxBrH,EAAS2O,gBAAkBA,EAC3B3O,EAAS4Q,eAdT,SAAwBjlE,GACtB,OAAO9uB,KAAK6mB,IAAI,GAAI8tD,EAAS30E,KAAKD,IAAI+uB,IACxC,EAaAq0D,EAAS6Q,gBAZT,SAAyBllE,EAAMvuB,GAC7B,OAAOP,KAAK6mB,IAAI,EAAgE,EAA7D7mB,KAAK6mB,KAAK,EAAG7mB,KAAK8mB,IAAI,EAAG9mB,KAAK2/B,MAAMg1C,EAASp0E,GAAS,KAAWo0E,EAAS30E,KAAKD,IAAI+uB,IACxG,EAWAq0D,EAAS8Q,eAVT,SAAwBnlE,EAAMjI,GAE5B,OADAiI,EAAO9uB,KAAKD,IAAI+uB,GAAOjI,EAAM7mB,KAAKD,IAAI8mB,GAAOiI,EACtC9uB,KAAK6mB,IAAI,EAAG8tD,EAAS9tD,GAAO8tD,EAAS7lD,IAAS,CACvD,EAQAzuB,OAAOgR,eAAe8xE,EAAU,aAAc,CAAE5iF,OAAO,GACzD,CAjPiEypC,CAA5C,kBAAZj5B,GAA0C,qBAAXkuB,EAAiCluB,GAAmFmyE,EAAgC,qBAAfgR,WAA6BA,WAAahR,GAAWj5C,MAAsBkF,GAAK+zC,EAAQ/zC,IAAM,CAAC,EAkP9Q,IAIEglD,EAA0B9oD,EAAW,CACvC,wCAAwCt6B,EAASkuB,GAE/CA,EAAOluB,QAAU,SAASf,GAExB,IADA,IAAoBwY,EAAhBD,EAAIvY,EAAIxS,OACH4B,EAAI,EAAGA,EAAImpB,EAAGnpB,IAErB,KADAopB,EAAIxY,EAAIhP,WAAW5B,IACV,GAAKopB,EAAI,KAAa,KAANA,GAAkB,MAANA,GAAmB,MAANA,GAAmB,OAANA,GAAoB,OAANA,IAAeA,EAAI,MAAQA,EAAI,OAAe,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAAoB,QAANA,GAAqB,QAANA,EACxM,OAAO,EAGX,OAAO,CACT,CACF,IAIE4rE,EAAyB/oD,EAAW,CACtC,uCAAuCt6B,EAASkuB,GAE9C,IAAIo1D,EAAoBF,IACxBl1D,EAAOluB,QAAU,SAASuW,GACxB,IAAIrlB,SAAcqlB,EAClB,GAAa,WAATrlB,EAAmB,CACrB,IAAIqyF,EAAWhtE,EAEf,GAAU,KADVA,GAAKA,IACU+sE,EAAkBC,GAAW,OAAO,CACrD,MAAO,GAAa,WAATryF,EAAmB,OAAO,EACrC,OAAOqlB,EAAIA,EAAI,CACjB,CACF,IAIEitE,EAAoBlpD,EAAW,CACjC,6BAA6Bt6B,EAASkuB,GAEpCA,EAAOluB,QAAU,CAOfyjF,YAAQ,EAMRC,QAA4B,KAAnB9rE,OAAO+rE,UAOhBC,WAAY,SAEZC,WAAY,SAEZC,WAAY,QAEZC,cAAe,QAEfC,cAAe,QAEfC,cAAe,QAEfC,YAAa,QAEbC,YAAa,QAEbC,YAAa,QAEbC,QAAS,OAETC,OAAQ,MAERC,QAAS,KACTC,OAAQ,IACRC,OAAQ,IACRC,SAAU,EACVC,YAAa,KAKbC,QAAS,UAITC,aAAc,QAKdC,SAAU,GAKVC,WAAY,SAEhB,IAIEC,EAAiC1qD,EAAW,CAC9C,iEAAiEt6B,EAASkuB,GACxE,IAAUikD,IAEPnyE,EAAS,SAASoyE,GAInB,IAFA,IAAI6S,EAAQ,mEACRC,EAA+B,qBAAfC,WAA6B,GAAK,IAAIA,WAAW,KAC5D92F,EAAI,EAAGA,EAAI42F,GAAc52F,IAChC62F,EAAOD,EAAMh1F,WAAW5B,IAAMA,EAqChC+jF,EAASgT,OApBI,SAASC,GACpB,IAA8Dn7C,EAAWo7C,EAAUC,EAAUC,EAAUC,EAAnGC,EAA+B,IAAhBL,EAAO54F,OAAe0S,EAAMkmF,EAAO54F,OAAY0yB,EAAI,EACpC,MAA9BkmE,EAAOA,EAAO54F,OAAS,KACzBi5F,IACkC,MAA9BL,EAAOA,EAAO54F,OAAS,IACzBi5F,KAGJ,IAAIC,EAAc,IAAIC,YAAYF,GAAeG,EAAQ,IAAIV,WAAWQ,GACxE,IAAKz7C,EAAK,EAAGA,EAAK/qC,EAAK+qC,GAAM,EAC3Bo7C,EAAWJ,EAAOG,EAAOp1F,WAAWi6C,IACpCq7C,EAAWL,EAAOG,EAAOp1F,WAAWi6C,EAAK,IACzCs7C,EAAWN,EAAOG,EAAOp1F,WAAWi6C,EAAK,IACzCu7C,EAAWP,EAAOG,EAAOp1F,WAAWi6C,EAAK,IACzC27C,EAAM1mE,KAAOmmE,GAAY,EAAIC,GAAY,EACzCM,EAAM1mE,MAAmB,GAAXomE,IAAkB,EAAIC,GAAY,EAChDK,EAAM1mE,MAAmB,EAAXqmE,IAAiB,EAAe,GAAXC,EAErC,OAAOE,CACT,EAEAvT,EAAS0T,OApCI,SAASH,GACpB,IAAyCz7C,EAArC27C,EAAQ,IAAIV,WAAWQ,GAAkBxmF,EAAM0mF,EAAMp5F,OAAQ44F,EAAS,GAC1E,IAAKn7C,EAAK,EAAGA,EAAK/qC,EAAK+qC,GAAM,EAC3Bm7C,GAAUJ,EAAMY,EAAM37C,IAAO,GAC7Bm7C,GAAUJ,GAAmB,EAAZY,EAAM37C,KAAY,EAAI27C,EAAM37C,EAAK,IAAM,GACxDm7C,GAAUJ,GAAuB,GAAhBY,EAAM37C,EAAK,KAAY,EAAI27C,EAAM37C,EAAK,IAAM,GAC7Dm7C,GAAUJ,EAAsB,GAAhBY,EAAM37C,EAAK,IAO7B,OALI/qC,EAAM,IAAM,EACdkmF,EAASA,EAAOzuE,UAAU,EAAGyuE,EAAO54F,OAAS,GAAK,IACzC0S,EAAM,IAAM,IACrBkmF,EAASA,EAAOzuE,UAAU,EAAGyuE,EAAO54F,OAAS,GAAK,MAE7C44F,CACT,EAuBA/1F,OAAOgR,eAAe8xE,EAAU,aAAc,CAAE5iF,OAAO,GACzD,CA9CiEypC,CAA5C,kBAAZj5B,GAA0C,qBAAXkuB,EAAiCluB,GAAmFmyE,EAAgC,qBAAfgR,WAA6BA,WAAahR,GAAWj5C,MAAsB,sBAAwB,CAAC,EA+CnR,IAIE6sD,EAA0BzrD,EAAW,CACvC,6BAA6Bt6B,EAASkuB,GAEpCA,EAAOluB,QAAU,SAAuBhC,GACtC,OAAIguB,QAAUA,OAAOg6D,SAAWh6D,OAAOg6D,QAAQC,SACE,oBAAxC32F,OAAO9B,UAAUmM,SAASzD,KAAK8H,GAEO,oBAAxC1O,OAAO9B,UAAUmM,SAASzD,KAAK8H,IAA8B1O,OAAOu6B,eAAe7rB,GAAK8J,eAAe,iBAChH,CACF,IAIEo+E,EAAgB5rD,EAAW,CAC7B,mBAAmBt6B,GAEjB,IAAImmF,EAAYnB,IAAiCI,OAC7C3rE,EAAgBssE,IAChB7nF,EAAUjI,MAAMiI,QAChB4vD,EAAK83B,YACLQ,EAAKC,SACT,SAASC,EAAa7uE,GACpB,OAAOq2C,EAAGy4B,OAAO9uE,MAAQA,aAAa2uE,EACxC,CAEA,SAASI,EAAoB/uE,GAC3B,OAAOvZ,EAAQuZ,IAAM6uE,EAAa7uE,EACpC,CAHAzX,EAAQsmF,aAAeA,EAIvBtmF,EAAQwmF,oBAAsBA,EAI9BxmF,EAAQymF,UAHR,SAAmBhvE,GACjB,OAAQ+uE,EAAoB/uE,EAAE,GAChC,EAEAzX,EAAQ0mF,YAAc,SAASz0B,EAAK17C,GAGlC,OAFKrY,EAAQ+zD,KAAMA,EAAM,IACzBA,EAAIxlE,OAAS8pB,EACN07C,CACT,EACA,IAAI00B,EAAc,CAChBC,IAAkC,qBAAtBC,uBAAoC,EAASA,kBAEzDxlD,GAAyB,qBAAdylD,eAA4B,EAASA,UAChDC,GAA0B,qBAAf5B,gBAA6B,EAASA,WACjDj7C,GAA0B,qBAAf88C,gBAA6B,EAASA,WACjDC,GAA2B,qBAAhBC,iBAA8B,EAASA,YAClDC,GAA0B,qBAAfC,gBAA6B,EAASA,WACjDC,GAA2B,qBAAhBC,iBAA8B,EAASA,YAClDC,GAA4B,qBAAjBC,kBAA+B,EAASA,aACnDC,GAA4B,qBAAjBC,kBAA+B,EAASA,cAmBrD,SAASC,EAAclwE,GACrB,OAAOA,EAAE9e,cAAgBitF,WAC3B,CAsHA,SAASgC,EAAWlzF,EAAG+C,EAAIowF,GACzB,GAAIrB,EAAoB9xF,GAAI,CAC1B,GAAI8xF,EAAoB9xF,EAAE,IAAK,CAE7B,IADA,IAAIyK,EAAM0oF,EACDx5F,EAAI,EAAGA,EAAIqG,EAAEjI,OAAQ4B,IAC5B8Q,EAAM1H,EAAG0H,EAAKzK,EAAErG,GAAG5B,QAErB,OAAO0S,CACT,CACE,OAAOzK,EAAEjI,MAEb,CACA,OAAO,CACT,CA9IAk6F,EAAYmB,OAASnB,EAAYC,IACjCD,EAAYoB,MAAQpB,EAAYI,GAChCJ,EAAYqB,KAAOrB,EAAYtlD,GAC/BslD,EAAYsB,OAAStB,EAAYM,GACjCN,EAAYuB,MAAQvB,EAAYz8C,GAChCy8C,EAAYwB,OAASxB,EAAYU,GACjCV,EAAYyB,MAAQzB,EAAYQ,GAChCR,EAAY0B,QAAU1B,EAAYY,GAClCZ,EAAY2B,QAAU3B,EAAYc,GAIlCznF,EAAQ2nF,cAAgBA,EACxB3nF,EAAQuoF,qBAAuB,SAASC,GACtC,IAAIv2B,EAAM,GACNvjC,EAoDN,SAA8BA,GAC5B,MAAO,CACL+5D,MAAO/5D,EAAE+5D,MACTC,MAAOh6D,EAAEg6D,MACThqE,MAAOgQ,EAAEhQ,MAEb,CA1DUiqE,CAAqBH,GACzBE,EAAQh6D,EAAEg6D,MACVE,EAAIjC,EAAY+B,GACpB,IAAKE,EAAG,MAAM,IAAIxqF,MAAM,oBAAsBsqF,EAAQ,KACtD,IAAIG,EAAoBD,EAAEC,kBACtBC,EAASp6D,EAAE+5D,MACVd,EAAcmB,KACjBA,EAAS3C,EAAU2C,IAErB,IAAIpqE,OAAoB,IAAZgQ,EAAEhQ,MAEZ,CAACoqE,EAAOC,WAAaF,IAGpB,GAAKn6D,EAAEhQ,OAAOhoB,MAAM,KAEvBgoB,EAAM+8C,UACN,IACIutB,EAAI10F,EADJ20F,EAAOvqE,EAAMjyB,OAEby8F,GAAMxqE,EAAM,GACZyqE,EAAWN,EAAoBK,EAC/BE,EAAM,EACV,GAAa,IAATH,EACFh3B,EAAM,IAAI22B,EAAEE,QACP,GAAa,IAATG,EAET,IADAD,GAAMtqE,EAAM,GACPpqB,EAAI,EAAGA,EAAI00F,EAAI10F,IAClB29D,EAAI39D,GAAK,IAAIs0F,EAAEE,EAAQM,EAAKF,GAC5BE,GAAOD,MAEJ,IAAa,IAATF,EAWT,MAAM,IAAI7qF,MAAM,SAAW6qF,EAAO,oCAAsCv6D,EAAEhQ,MAAQ,KAVlFsqE,GAAMtqE,EAAM,GAEZ,IADA,IAAI2qE,GAAM3qE,EAAM,GACPnqB,EAAI,EAAGA,EAAI80F,EAAI90F,IAEtB,IADA09D,EAAI19D,GAAK,GACJD,EAAI,EAAGA,EAAI00F,EAAI10F,IAClB29D,EAAI19D,GAAGD,GAAK,IAAIs0F,EAAEE,EAAQM,EAAKF,GAC/BE,GAAOD,CAKb,CAKA,OAJAl3B,EAAIw2B,MAAQ/5D,EAAE+5D,MACdx2B,EAAIy2B,MAAQh6D,EAAEg6D,MACdz2B,EAAIvzC,MAAQA,EAAM+8C,UAAUxoE,KAAK,KACjCu1F,EAAIc,YAAcr3B,EACXA,CACT,EACAjyD,EAAQupF,iBAAmB,SAAS76D,GAClC,OAAOjV,EAAciV,IAAMA,EAAE5mB,eAAe,UAA+B,kBAAZ4mB,EAAEg6D,OAAsBh6D,EAAE5mB,eAAe,WAAgC,kBAAZ4mB,EAAE+5D,OAAsBd,EAAcj5D,EAAE+5D,eAAwB,IAAZ/5D,EAAEhQ,OAAoBgQ,EAAE5mB,eAAe,WAAgC,kBAAZ4mB,EAAEhQ,OAAyC,kBAAZgQ,EAAEhQ,OAC9Q,EAQA1e,EAAQhJ,OAAS,WACf,IAGIwyF,EAAcC,EAAMp7F,EAAGq7F,EAAMC,EAAMC,EAAM33B,EAAK39D,EAH9C+E,EAAO,GACPwwF,GAAW,EACXC,EAAW,EAEf,IAAKz7F,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,KAEhCu7F,GADAF,EAAOtwF,UAAU/K,IACL5B,UAENg9F,EAAMpwF,EAAKrM,KAAK08F,IAElBD,EAAOC,EACPC,EAAOC,GAEL1rF,EAAQwrF,GACVF,GAAe,GAEfK,GAAW,EACNC,EAEMN,IAAiBE,EAAK/wF,cAC/B6wF,GAAe,GAFfA,EAAeE,EAAK/wF,aAKxBmxF,GAAYF,GAGhB,IAAKE,EAAU,MAAO,GACtB,IAAKzwF,EAAK5M,OAAQ,OAAOg9F,EACzB,GAAII,EAAU,OAAOJ,EAAKzyF,OAAOyC,MAAMgwF,EAAMpwF,GAC7C,GAAImwF,EAAc,CAGhB,KAFAv3B,EAAM,IAAIu3B,EAAaM,IACnB10F,IAAIq0F,GACHp7F,EAAI,EAAGA,EAAIgL,EAAK5M,OAAQ4B,IAC3Bq7F,EAAOrwF,EAAKhL,GACZ4jE,EAAI78D,IAAIs0F,EAAMC,GACdA,GAAQD,EAAKj9F,OAEf,OAAOwlE,CACT,CAEA,IADAA,EAAM,IAAIh8D,MAAM6zF,GACXx1F,EAAI,EAAGA,EAAIm1F,EAAKh9F,OAAQ6H,IAAK29D,EAAI39D,GAAKm1F,EAAKn1F,GAChD,IAAKjG,EAAI,EAAGA,EAAIgL,EAAK5M,OAAQ4B,IAAK,CAEhC,IADAq7F,EAAOrwF,EAAKhL,GACPiG,EAAI,EAAGA,EAAIo1F,EAAKj9F,OAAQ6H,IAAK29D,EAAI03B,EAAOr1F,GAAKo1F,EAAKp1F,GACvDq1F,GAAQr1F,CACV,CACA,OAAO29D,CACT,EACAjyD,EAAQ+pF,aAAe,SAASr1F,GAC9B,OAAOkzF,EAAWlzF,EAAGzF,KAAK6mB,IAAK,EACjC,EACA9V,EAAQgqF,aAAe,SAASt1F,GAC9B,OAAOkzF,EAAWlzF,EAAGzF,KAAK8mB,IAAKqtB,IACjC,CAeF,IAIE6mD,EAA0B3vD,EAAW,CACvC,6BAA6Bt6B,EAASkuB,GAEpC,IAAIg8D,EAAY7G,IACZmD,EAAsBN,IAAgBM,oBAyC1C,SAAS2D,EAAMC,EAAMC,GACnB,OAAO,SAASC,GACd,IACIC,EACAC,EACAv4B,EACA5jE,EACAiG,EALAm2F,EAAUL,EAMd,IAAK/7F,EAAI,EAAGA,EAAIg8F,EAAM59F,OAAS,EAAG4B,IAAK,CAErC,IAAiB,KADjBk8F,EAAUF,EAAMh8F,IACI,CAGlB,IAFAm8F,GAAU,EACVv4B,EAAM,GACD39D,EAAI,EAAGA,EAAIm2F,EAAQh+F,OAAQ6H,IAC9B29D,EAAI39D,GAAK61F,EAAMM,EAAQn2F,GAAI+1F,EAAMh6F,MAAMhC,EAAI,GAAlC87F,CAAsCG,GAC3Cr4B,EAAI39D,KAAO29D,EAAI,KAAIu4B,GAAU,GAEnC,OAAOA,EAAUv4B,EAAI,GAAKA,CAC5B,CACA,GAAuB,kBAAZs4B,IAAyB/D,EAAoBiE,GACtD,OAGF,GAAuB,kBADvBA,EAAUA,EAAQF,KAC6B,OAAZE,EACjC,MAEJ,CACA,GAAuB,kBAAZA,GAAoC,OAAZA,IACnCx4B,EAAMw4B,EAAQJ,EAAMh8F,IACfi8F,GAAsB,OAARr4B,GACnB,OAAOA,CACT,CACF,CAxEA/jC,EAAOluB,QAAU,SAAwBnT,EAAW69F,GAClD,GAAIR,EAAUQ,GAAUA,EAAUv7F,OAAOu7F,QACpC,GAAuB,kBAAZA,GAA+D,SAAvCA,EAAQx6F,OAAOw6F,EAAQj+F,OAAS,GACtE,KAAM,sBAER,IACIk+F,EACAC,EACAv8F,EAAGiG,EAHHu2F,EAAYH,EAAQh0F,MAAM,KAI9B,IAAKpC,EAAI,EAAGA,EAAIu2F,EAAUp+F,OAAQ6H,IAChC,GAAyC,OAArCnF,OAAO07F,EAAUv2F,IAAIjE,MAAM,EAAG,GAChC,KAAM,sBAIV,IADAiE,EAAI,EACGA,EAAIu2F,EAAUp+F,QAAQ,CAE3B,GADAk+F,EAAUx7F,OAAO07F,EAAUv2F,IAAIuB,MAAM,kCACxB,CACX,GAAI80F,EAAQ,GAAIE,EAAUv2F,GAAKq2F,EAAQ,OAClC,IAAU,IAANr2F,EACJ,KAAM,sBADOu2F,EAAU/+B,OAAO,EAAG,EACN,CAEhC,IADA8+B,EAAUD,EAAQ,GAAGz6F,OAAO,EAAGy6F,EAAQ,GAAGl+F,OAAS,GAAGiK,MAAM,MACvDrI,EAAI,EAAGA,EAAIu8F,EAAQn+F,OAAQ4B,IAC9BiG,IACAu2F,EAAU/+B,OAAOx3D,EAAG,EAAGsjB,OAAOgzE,EAAQv8F,IAE1C,CACAiG,GACF,CACA,MAAyB,kBAAdzH,EA4Hb,SAAsBA,EAAW69F,EAASG,GACxC,MAAO,CACLz1F,IAAK,WACH,KAAM,eACR,EACAD,IAAK,WACL,EACA21F,KAAMJ,EACNL,MAAOQ,EACP7sF,IAAKnR,EAET,CAtIWk+F,CAAal+F,EAAW69F,EAASG,GAEnC,CACLz1F,IAAK41F,EAAMn+F,EAAWg+F,EAAWH,GACjCv1F,IAAKg1F,EAAMt9F,EAAWg+F,GACtBC,KAAMJ,EACNL,MAAOQ,EACP7sF,IAAKnR,EAET,EAkCA,IAAIo+F,EAAe,eACnB,SAASC,EAAY/zE,EAAKuzE,GACxB,YAAe,IAARvzE,GAA0B,OAARA,IAAiBuzE,EAAQ70F,MAAMo1F,EAC1D,CACA,SAASD,EAAMZ,EAAMC,EAAOK,GAC1B,OAAO,SAASvzE,GACd,IAIIozE,EACAl8F,EALAo8F,EAAUL,EACVe,EAAW,GACXC,EAAkB,CAAC,CAAChB,EAAMe,IAC1BE,EAAWH,EAAY/zE,EAAKuzE,GAGhC,IAAKr8F,EAAI,EAAGA,EAAIg8F,EAAM59F,OAAS,EAAG4B,IAAK,CAErC,GAAuB,kBADvBk8F,EAAUF,EAAMh8F,MACoBm4F,EAAoBiE,GACtD,KAAM,4CAER,IAAiB,IAAbF,EAAgB,CAElB,GADAc,GAAYC,EAAYb,EAASJ,EAAMh6F,MAAMhC,EAAI,GAAI8oB,EAAKuzE,GAC5C,MACT,MACP,CACA,IAAKa,EAAkBd,EAASF,EAASF,EAAMh8F,EAAI,GAAIg9F,GACrD,MAGF,GAAuB,kBADvBZ,EAAUA,EAAQF,KAC6B,OAAZE,EACjC,KAAM,6BAERU,EAAWK,EAAYL,EAAUZ,GACjCa,EAAgBp+F,KAAK,CAACy9F,EAASU,GACjC,CACA,GAAIE,GACF,GAAIh9F,IAAMg8F,EAAM59F,OAAS,WAChBg+F,EAAQJ,EAAMh8F,IACjB4H,MAAMiI,QAAQusF,KAAaJ,EAAMh8F,KAAOo8F,EAAQh+F,OAAS,GAC3D,KAAOg+F,EAAQh+F,aAA0C,IAAhCg+F,EAAQA,EAAQh+F,OAAS,IAChDg+F,EAAQjjC,WAITijC,EAAQJ,EAAMh8F,IAAM8oB,CAC7B,CACF,CACA,SAASq0E,EAAYd,EAASe,GAC5B,IAAIC,EAAQD,EAGZ,OAFIvB,EAAUuB,GAAUC,EAAQ,IAAMD,EAAU,IACvCf,IAASgB,EAAQ,IAAMD,GACzBf,EAAUgB,CACnB,CACA,SAASJ,EAAYK,EAAgBC,EAAYz0E,EAAKuzE,GACpD,IAMIr8F,EANAw9F,EAAWrF,EAAoBrvE,GAC/B20E,GAAS,EACTC,EAAU50E,EACV60E,EAActB,EAAQj7F,QAAQ,KAAM,GACpCw8F,GAAaJ,GAAmBX,EAAY/zE,EAAK60E,GACjDE,EAAYN,EAAW,GAE3B,IAAKv9F,EAAI,EAAGA,EAAIs9F,EAAel/F,OAAQ4B,IACrC29F,EAActB,EAAQj7F,QAAQ,KAAMpB,GAChCw9F,IAEFI,EAAaf,EADba,EAAU50E,EAAI9oB,EAAI8oB,EAAI1qB,QACYu/F,IAEhCC,IAAYH,GAAS,GACpBP,EAAkBI,EAAgBt9F,EAAG69F,EAAWD,IAGrDjB,EAAMW,EAAet9F,GAAIu9F,EAAYlB,EAAQj7F,QAAQ,KAAMpB,GAA3D28F,CAA+De,GAEjE,OAAOD,CACT,CACA,SAASP,EAAkB1+F,EAAWs/F,EAAMC,EAAUf,GACpD,QAAwB,IAApBx+F,EAAUs/F,GAAkB,CAC9B,GAAId,EAAU,OAAO,EACax+F,EAAUs/F,GAApB,kBAAbC,EAAyC,GAC7B,CAAC,CAC1B,CACA,OAAO,CACT,CAaF,IAIEC,EAA0B/xD,EAAW,CACvC,6BAA6Bt6B,EAASkuB,GAEpC,IAAIo+D,EAAiBrC,IACjBsC,EAAwB,QAM5Br+D,EAAOluB,QAAU,SAAwBwsF,EAAS58E,EAAM68E,EAASC,GAG/D,IAAIr+F,EAAG+uC,EAAKuvD,EAFZF,EAAUA,GAAW,OACrBC,EAAYA,GAAa,QAEzB,IAAIE,EAAc,CAAC,EACfh9E,GAAQA,EAAKnjB,QACfkgG,EAAWL,EAAeE,EAAS58E,GACnCwtB,EAAMuvD,EAASx3F,OAEfioC,EAAMovD,EAER58E,EAAOA,GAAQ,GACf,IAAIi9E,EAAc,CAAC,EACnB,GAAIzvD,EACF,IAAK/uC,EAAI,EAAGA,EAAI+uC,EAAI3wC,OAAQ4B,IAC1Bw+F,EAAYzvD,EAAI/uC,GAAGo+F,IAAYp+F,EAGnC,IAAIy+F,EAAoBP,EAAsB94E,KAAKi5E,GAC/C1uF,EAAM,CACR5I,IAAK,SAASulC,EAAOnrC,GACnB,IAAIu9F,EAAuB,OAAVv9F,EAtBX,EAJD,EA2BL,IAAK4tC,EAAK,CACR,IAAKuvD,GAxBD,IAwBaI,EAAsB,OACvC3vD,EAAM,GACNuvD,EAASv3F,IAAIgoC,EACf,CACA,IAAIhmB,EAAMy1E,EAAYlyD,GACtB,QAAY,IAARvjB,EAAgB,CAClB,GA9BI,IA8BA21E,EAAsB,OAC1BA,GAhCG,EAiCH31E,EAAMgmB,EAAI3wC,OACVogG,EAAYlyD,GAASvjB,CACvB,MAAW5nB,KAAWs9F,EAAoB1vD,EAAIhmB,GAAKs1E,GAAaJ,EAAelvD,EAAIhmB,GAAMs1E,GAAWv3F,SAClG43F,GArCI,GAuCN,IAAIngE,EAAWwQ,EAAIhmB,GAAOgmB,EAAIhmB,IAAQ,CAAC,EAWvC,OAVAwV,EAAS6/D,GAAW9xD,EAChBmyD,EACFlgE,EAAS8/D,GAAal9F,EAEtB88F,EAAe1/D,EAAU8/D,GAAWt3F,IAAI5F,GAE5B,OAAVA,IACFu9F,IAA0B,GAE5BH,EAAYx1E,GAAOw1E,EAAYx1E,GAAO21E,EAC/B/uF,CACT,EACA7I,IAAK,SAASwlC,GACZ,GAAKyC,EAAL,CACA,IAAIhmB,EAAMy1E,EAAYlyD,GACtB,YAAY,IAARvjB,OACF,EACS01E,EACF1vD,EAAIhmB,GAAKs1E,GAETJ,EAAelvD,EAAIhmB,GAAMs1E,GAAWv3F,KAP7B,CASlB,EACA63F,OAAQ,SAASryD,EAAOsyD,GACtB,IAAI71E,EAAMy1E,EAAYlyD,GACtB,YAAY,IAARvjB,IACJw1E,EAAYx1E,GAnEP,EAmEcw1E,EAAYx1E,GAC/By1E,EAAYI,GAAW71E,SAChBy1E,EAAYlyD,GACnByC,EAAIhmB,GAAKq1E,GAAWQ,GAJOjvF,CAM7B,EACAulC,OAAQ,SAAS5I,GACf,IAAIvjB,EAAMy1E,EAAYlyD,GACtB,QAAY,IAARvjB,EAAgB,OAAOpZ,EAC3B,IAAIkqB,EAASkV,EAAIhmB,GACjB,GAAI9nB,OAAOgkB,KAAK4U,GAAQz7B,OAAS,EAE/B,OADAmgG,EAAYx1E,GA7ER,EA6Eew1E,EAAYx1E,GACxBpZ,EAAI5I,IAAIulC,EAAO,MAExB,GAAImyD,EAAmB,CACrB,IAAKz+F,EAAI+oB,EAAK/oB,EAAI+uC,EAAI3wC,OAAQ4B,IAC5Bu+F,EAAYv+F,GAjFX,EAiFgBu+F,EAAYv+F,GAE/B,IAAKA,EAAI+oB,EAAK/oB,EAAI+uC,EAAI3wC,OAAQ4B,IAC5Bw+F,EAAYzvD,EAAI/uC,GAAGo+F,MAErBrvD,EAAI0uB,OAAO10C,EAAK,UACTy1E,EAAYlyD,EACrB,MACE2xD,EAAepkE,EAAQwkE,GAAWt3F,IAAI,MACtCw3F,EAAYx1E,GA3FR,EA2Few1E,EAAYx1E,GAEjC,OAAOpZ,CACT,EACAkvF,gBAAiB,WAIf,IAHA,IAAIpC,EAAM1zE,EACNuzB,EAAS,CAAC,EACVuJ,EAAU5kD,OAAOgkB,KAAKs5E,GACjB1iD,EAAK,EAAGA,EAAKgK,EAAQznD,OAAQy9C,IACpC9yB,EAAM88B,EAAQhK,GACd4gD,EAAOl7E,EAAO,IAAMwH,EAAM,IACtBgmB,EAAIhmB,IAvGL,EAwGGw1E,EAAYx1E,KACduzB,EAAOmgD,EAAO,IAAM2B,GAAWrvD,EAAIhmB,GAAKq1E,IAxGxC,EA0GEG,EAAYx1E,KAEZuzB,EAAOmgD,EAAO,IAAM4B,GADlBI,EAzGJ,EA0GmCF,EAAYx1E,GAAe,KAAOgmB,EAAIhmB,GAAKs1E,GA1G9E,EA4GmCE,EAAYx1E,GAAe,KAAOk1E,EAAelvD,EAAIhmB,GAAMs1E,GAAWv3F,QAI3Gw1C,EAAOmgD,GAAQ,KAGnB,OAAOngD,CACT,GAEF,OAAO3sC,CACT,CACF,IAIEmvF,EAAwB7yD,EAAW,CACrC,2BAA2Bt6B,EAASkuB,GAElC,IAAIk/D,EAAS,8BACTC,EAAa,eACjBn/D,EAAOluB,QAAU,SAASstF,EAAUC,GAClC,KAAOA,GAAc,CACnB,IAAI13F,EAAQy3F,EAASz3F,MAAMu3F,GAC3B,GAAIv3F,EAAOy3F,EAAWz3F,EAAM,OACvB,KAAIy3F,EAASz3F,MAAMw3F,GACnB,MAAM,IAAIjvF,MAAM,yBAA2B,CAACkvF,EAAUC,IADtBD,EAAW,EACyB,CACzE,GAA+B,MAA3BC,EAAa72E,OAAO,GACnB,MAD+B62E,EAAeA,EAAal9F,MAAM,EAExE,CACA,OAAIi9F,GAAuC,MAA3BC,EAAa72E,OAAO,GAC3B42E,EAAW,IAAMC,EAEnBD,EAAWC,CACpB,CACF,IAIEC,EAAuBlzD,EAAW,CACpC,0BAA0Bt6B,EAASkuB,GAEjC,IAAIg8D,EAAY7G,IAChBn1D,EAAOluB,QAAU,SAAoBmX,EAAK+rB,GACxC,GAAI/rB,EAAM,EAAG,OAAOloB,KAAK2hD,IAAIz5B,GAAOloB,KAAKq0E,KACzC,IAAImqB,EAASx+F,KAAK2hD,IAAI3hD,KAAK8mB,IAAImtB,EAAM,GAAIA,EAAM,KAAOj0C,KAAKq0E,KAE3D,OADK4mB,EAAUuD,KAASA,EAASx+F,KAAK2hD,IAAI3hD,KAAK6mB,IAAIotB,EAAM,GAAIA,EAAM,KAAOj0C,KAAKq0E,KAAO,GAC/EmqB,CACT,CACF,IAIEC,EAAyBpzD,EAAW,CACtC,4BAA4Bt6B,EAASkuB,GAEnC,IAAIs4D,EAAsBN,IAAgBM,oBACtC/sE,EAAgBssE,IACpB73D,EAAOluB,QAAU,SAAS2tF,EAAkBC,EAAaC,GACvD,IAAK,IAAIt5F,KAAKs5F,EAAe,CAC3B,IAAIC,EAAUD,EAAct5F,GACxBw5F,EAAQH,EAAYr5F,GACxB,GAAIw5F,IAAUD,EACd,GAAoB,MAAhBv5F,EAAEmiB,OAAO,IAAiC,oBAAZo3E,EAAwB,CACxD,GAAIv5F,KAAKq5F,EAAa,SACtBA,EAAYr5F,GAAKu5F,CACnB,MAAO,GAAItH,EAAoBsH,IAAYtH,EAAoBuH,IAAUt0E,EAAcq0E,EAAQ,IAAK,CAClG,GAAU,eAANv5F,GAA4B,QAANA,EAAa,SAEvC,IADA,IAAIy5F,EAAS/+F,KAAK8mB,IAAI+3E,EAAQrhG,OAAQshG,EAAMthG,QACnC6H,EAAI,EAAGA,EAAI05F,EAAQ15F,IACtBy5F,EAAMz5F,KAAOw5F,EAAQx5F,IAAMmlB,EAAcq0E,EAAQx5F,KAAOmlB,EAAcs0E,EAAMz5F,KAC9Eq5F,EAAkBI,EAAMz5F,GAAIw5F,EAAQx5F,GAG1C,MAAWmlB,EAAcq0E,IAAYr0E,EAAcs0E,KACjDJ,EAAkBI,EAAOD,GACpBx+F,OAAOgkB,KAAKy6E,GAAOthG,eAAemhG,EAAYr5F,GAEvD,CACF,CACF,IAIE05F,EAAc3zD,EAAW,CAC3B,iBAAiBt6B,EAASkuB,GASxBA,EAAOluB,QAAU,CACfw6B,IARF,SAAa9L,EAAGruB,GACd,IAAI4xD,EAAMvjC,EAAIruB,EACd,OAAO4xD,EAAM,EAAIA,EAAM5xD,EAAI4xD,CAC7B,EAMEi8B,QALF,SAAiBx/D,EAAGruB,GAClB,OAAOpR,KAAKD,IAAI0/B,GAAKruB,EAAI,EAAIquB,EAAIz/B,KAAK+b,MAAM0jB,EAAIruB,GAAKA,EAAIquB,CAC3D,EAKF,IAIEy/D,EAAoB7zD,EAAW,CACjC,uCAAuCt6B,EAASkuB,IAC9C,SAAUkgE,GACR,IAAIC,EAAW,OAAQC,EAAY,OAAQC,EAAc,EAAGC,EAAYJ,EAAMpjF,MAAOyjF,EAAUL,EAAMr4E,IAAK24E,EAAUN,EAAMt4E,IAAK64E,EAAaP,EAAM9sD,OAClJ,SAASstD,EAAUl3C,EAAQm3C,GAGzB,GADAA,EAAOA,GAAQ,CAAC,GADhBn3C,EAASA,GAAkB,cAELk3C,EACpB,OAAOl3C,EAET,KAAMtrD,gBAAgBwiG,GACpB,OAAO,IAAIA,EAAUl3C,EAAQm3C,GAE/B,IAAIr3C,EA8ON,SAAoBE,GAClB,IA0CgBj9B,EAAG2U,EAAG/P,EA1ClBm4B,EAAO,CAAE/8B,EAAG,EAAG2U,EAAG,EAAG/P,EAAG,GACxB5H,EAAI,EACJF,EAAI,KACJmX,EAAI,KACJlX,EAAI,KACJs3E,GAAK,EACL38D,GAAS,EA2Bb,MA1BqB,iBAAVulB,IACTA,EAmjBJ,SAA6BA,GAC3BA,EAASA,EAAOjoD,QAAQ4+F,EAAU,IAAI5+F,QAAQ6+F,EAAW,IAAInxF,cAC7D,IAOItH,EAPAk5F,GAAS,EACb,GAAIjP,EAAOpoC,GACTA,EAASooC,EAAOpoC,GAChBq3C,GAAS,OACJ,GAAc,eAAVr3C,EACT,MAAO,CAAEj9B,EAAG,EAAG2U,EAAG,EAAG/P,EAAG,EAAG5H,EAAG,EAAG0a,OAAQ,QAG3C,OAAIt8B,EAAQm5F,EAASr3E,IAAI/hB,KAAK8hD,IACrB,CAAEj9B,EAAG5kB,EAAM,GAAIu5B,EAAGv5B,EAAM,GAAIwpB,EAAGxpB,EAAM,KAE1CA,EAAQm5F,EAASC,KAAKr5F,KAAK8hD,IACtB,CAAEj9B,EAAG5kB,EAAM,GAAIu5B,EAAGv5B,EAAM,GAAIwpB,EAAGxpB,EAAM,GAAI4hB,EAAG5hB,EAAM,KAEvDA,EAAQm5F,EAASz5C,IAAI3/C,KAAK8hD,IACrB,CAAEx4C,EAAGrJ,EAAM,GAAI0hB,EAAG1hB,EAAM,GAAI2hB,EAAG3hB,EAAM,KAE1CA,EAAQm5F,EAASE,KAAKt5F,KAAK8hD,IACtB,CAAEx4C,EAAGrJ,EAAM,GAAI0hB,EAAG1hB,EAAM,GAAI2hB,EAAG3hB,EAAM,GAAI4hB,EAAG5hB,EAAM,KAEvDA,EAAQm5F,EAASG,IAAIv5F,KAAK8hD,IACrB,CAAEx4C,EAAGrJ,EAAM,GAAI0hB,EAAG1hB,EAAM,GAAI64B,EAAG74B,EAAM,KAE1CA,EAAQm5F,EAASI,KAAKx5F,KAAK8hD,IACtB,CAAEx4C,EAAGrJ,EAAM,GAAI0hB,EAAG1hB,EAAM,GAAI64B,EAAG74B,EAAM,GAAI4hB,EAAG5hB,EAAM,KAEvDA,EAAQm5F,EAASK,KAAKz5F,KAAK8hD,IACtB,CACLj9B,EAAG60E,EAAgBz5F,EAAM,IACzBu5B,EAAGkgE,EAAgBz5F,EAAM,IACzBwpB,EAAGiwE,EAAgBz5F,EAAM,IACzB4hB,EAAG83E,EAAoB15F,EAAM,IAC7Bs8B,OAAQ48D,EAAS,OAAS,SAG1Bl5F,EAAQm5F,EAASQ,KAAK55F,KAAK8hD,IACtB,CACLj9B,EAAG60E,EAAgBz5F,EAAM,IACzBu5B,EAAGkgE,EAAgBz5F,EAAM,IACzBwpB,EAAGiwE,EAAgBz5F,EAAM,IACzBs8B,OAAQ48D,EAAS,OAAS,QAG1Bl5F,EAAQm5F,EAASS,KAAK75F,KAAK8hD,IACtB,CACLj9B,EAAG60E,EAAgBz5F,EAAM,GAAK,GAAKA,EAAM,IACzCu5B,EAAGkgE,EAAgBz5F,EAAM,GAAK,GAAKA,EAAM,IACzCwpB,EAAGiwE,EAAgBz5F,EAAM,GAAK,GAAKA,EAAM,IACzC4hB,EAAG83E,EAAoB15F,EAAM,GAAK,GAAKA,EAAM,IAC7Cs8B,OAAQ48D,EAAS,OAAS,WAG1Bl5F,EAAQm5F,EAASU,KAAK95F,KAAK8hD,KACtB,CACLj9B,EAAG60E,EAAgBz5F,EAAM,GAAK,GAAKA,EAAM,IACzCu5B,EAAGkgE,EAAgBz5F,EAAM,GAAK,GAAKA,EAAM,IACzCwpB,EAAGiwE,EAAgBz5F,EAAM,GAAK,GAAKA,EAAM,IACzCs8B,OAAQ48D,EAAS,OAAS,MAIhC,CAlnBaY,CAAoBj4C,IAEV,iBAAVA,IACLk4C,EAAel4C,EAAOj9B,IAAMm1E,EAAel4C,EAAOtoB,IAAMwgE,EAAel4C,EAAOr4B,IA+BpE5E,EA9BIi9B,EAAOj9B,EA8BR2U,EA9BWsoB,EAAOtoB,EA8Bf/P,EA9BkBq4B,EAAOr4B,EAA3Cm4B,EA+BG,CACL/8B,EAAqB,IAAlBo1E,EAAQp1E,EAAG,KACd2U,EAAqB,IAAlBygE,EAAQzgE,EAAG,KACd/P,EAAqB,IAAlBwwE,EAAQxwE,EAAG,MAjCZyvE,GAAK,EACL38D,EAAyC,MAAhChjC,OAAOuoD,EAAOj9B,GAAGvqB,QAAQ,GAAa,OAAS,OAC/C0/F,EAAel4C,EAAOx4C,IAAM0wF,EAAel4C,EAAOngC,IAAMq4E,EAAel4C,EAAOhpB,IACvFnX,EAAIu4E,EAAoBp4C,EAAOngC,GAC/BmX,EAAIohE,EAAoBp4C,EAAOhpB,GAC/B8oB,EA2GN,SAAkBt4C,EAAGqY,EAAGmX,GACtBxvB,EAAsB,EAAlB2wF,EAAQ3wF,EAAG,KACfqY,EAAIs4E,EAAQt4E,EAAG,KACfmX,EAAImhE,EAAQnhE,EAAG,KACf,IAAIrgC,EAAI+/F,EAAMx/D,MAAM1vB,GAAIwY,EAAIxY,EAAI7Q,EAAG8wB,EAAIuP,GAAK,EAAInX,GAAIggB,EAAI7I,GAAK,EAAIhX,EAAIH,GAAIoD,EAAI+T,GAAK,GAAK,EAAIhX,GAAKH,GAAIijB,EAAMnsC,EAAI,EAAGosB,EAAI,CAACiU,EAAG6I,EAAGpY,EAAGA,EAAGxE,EAAG+T,GAAG8L,GAAMpL,EAAI,CAACzU,EAAG+T,EAAGA,EAAG6I,EAAGpY,EAAGA,GAAGqb,GAAMnb,EAAI,CAACF,EAAGA,EAAGxE,EAAG+T,EAAGA,EAAG6I,GAAGiD,GAClM,MAAO,CAAE/f,EAAO,IAAJA,EAAS2U,EAAO,IAAJA,EAAS/P,EAAO,IAAJA,EACtC,CAjHa0wE,CAASr4C,EAAOx4C,EAAGqY,EAAGmX,GAC7BogE,GAAK,EACL38D,EAAS,OACAy9D,EAAel4C,EAAOx4C,IAAM0wF,EAAel4C,EAAOngC,IAAMq4E,EAAel4C,EAAOlgC,KACvFD,EAAIu4E,EAAoBp4C,EAAOngC,GAC/BC,EAAIs4E,EAAoBp4C,EAAOlgC,GAC/BggC,EAmDN,SAAkBt4C,EAAGqY,EAAGC,GACtB,IAAIiD,EAAG2U,EAAG/P,EAIV,SAAS2wE,EAAQ1yF,EAAI2yF,EAAIt1E,GAGvB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAUrd,EAAiB,GAAX2yF,EAAK3yF,GAAUqd,EACvCA,EAAI,GAAcs1E,EAClBt1E,EAAI,EAAI,EAAUrd,GAAM2yF,EAAK3yF,IAAO,EAAI,EAAIqd,GAAK,EAC9Crd,CACT,CACA,GAXA4B,EAAI2wF,EAAQ3wF,EAAG,KACfqY,EAAIs4E,EAAQt4E,EAAG,KACfC,EAAIq4E,EAAQr4E,EAAG,KASL,IAAND,EACFkD,EAAI2U,EAAI/P,EAAI7H,MACP,CACL,IAAI+f,EAAI/f,EAAI,GAAMA,GAAK,EAAID,GAAKC,EAAID,EAAIC,EAAID,EACxC4H,EAAI,EAAI3H,EAAI+f,EAChB9c,EAAIu1E,EAAQ7wE,EAAGoY,EAAGr4B,EAAI,EAAI,GAC1BkwB,EAAI4gE,EAAQ7wE,EAAGoY,EAAGr4B,GAClBmgB,EAAI2wE,EAAQ7wE,EAAGoY,EAAGr4B,EAAI,EAAI,EAC5B,CACA,MAAO,CAAEub,EAAO,IAAJA,EAAS2U,EAAO,IAAJA,EAAS/P,EAAO,IAAJA,EACtC,CA1Ea/H,CAASogC,EAAOx4C,EAAGqY,EAAGC,GAC7Bs3E,GAAK,EACL38D,EAAS,OAEPulB,EAAO5vC,eAAe,OACxB2P,EAAIigC,EAAOjgC,IAGfA,EAAIy4E,EAAWz4E,GACR,CACLq3E,KACA38D,OAAQulB,EAAOvlB,QAAUA,EACzB1X,EAAGg0E,EAAQ,IAAKC,EAAQl3C,EAAK/8B,EAAG,IAChC2U,EAAGq/D,EAAQ,IAAKC,EAAQl3C,EAAKpoB,EAAG,IAChC/P,EAAGovE,EAAQ,IAAKC,EAAQl3C,EAAKn4B,EAAG,IAChC5H,IAEJ,CAxRa04E,CAAWz4C,GACtBtrD,KAAKgkG,eAAiB14C,EAAQtrD,KAAKikG,GAAK74C,EAAK/8B,EAAGruB,KAAKkkG,GAAK94C,EAAKpoB,EAAGhjC,KAAKmkG,GAAK/4C,EAAKn4B,EAAGjzB,KAAKokG,GAAKh5C,EAAK//B,EAAGrrB,KAAKqkG,QAAUjC,EAAU,IAAMpiG,KAAKokG,IAAM,IAAKpkG,KAAKskG,QAAU7B,EAAK18D,QAAUqlB,EAAKrlB,OACxL/lC,KAAKukG,cAAgB9B,EAAK+B,aACtBxkG,KAAKikG,GAAK,IACZjkG,KAAKikG,GAAK7B,EAAUpiG,KAAKikG,KAEvBjkG,KAAKkkG,GAAK,IACZlkG,KAAKkkG,GAAK9B,EAAUpiG,KAAKkkG,KAEvBlkG,KAAKmkG,GAAK,IACZnkG,KAAKmkG,GAAK/B,EAAUpiG,KAAKmkG,KAE3BnkG,KAAKykG,IAAMr5C,EAAKs3C,GAChB1iG,KAAK0kG,OAASvC,GAChB,CAkRA,SAASwC,EAASt2E,EAAG2U,EAAG/P,GACtB5E,EAAIo1E,EAAQp1E,EAAG,KACf2U,EAAIygE,EAAQzgE,EAAG,KACf/P,EAAIwwE,EAAQxwE,EAAG,KACf,IACIngB,EAAGqY,EADHzB,EAAM44E,EAAQj0E,EAAG2U,EAAG/P,GAAItJ,EAAM04E,EAAQh0E,EAAG2U,EAAG/P,GACtC7H,GAAK1B,EAAMC,GAAO,EAC5B,GAAID,GAAOC,EACT7W,EAAIqY,EAAI,MACH,CACL,IAAIlX,EAAIyV,EAAMC,EAEd,OADAwB,EAAIC,EAAI,GAAMnX,GAAK,EAAIyV,EAAMC,GAAO1V,GAAKyV,EAAMC,GACvCD,GACN,KAAK2E,EACHvb,GAAKkwB,EAAI/P,GAAKhf,GAAK+uB,EAAI/P,EAAI,EAAI,GAC/B,MACF,KAAK+P,EACHlwB,GAAKmgB,EAAI5E,GAAKpa,EAAI,EAClB,MACF,KAAKgf,EACHngB,GAAKub,EAAI2U,GAAK/uB,EAAI,EAGtBnB,GAAK,CACP,CACA,MAAO,CAAEA,IAAGqY,IAAGC,IACjB,CAyBA,SAASw5E,EAASv2E,EAAG2U,EAAG/P,GACtB5E,EAAIo1E,EAAQp1E,EAAG,KACf2U,EAAIygE,EAAQzgE,EAAG,KACf/P,EAAIwwE,EAAQxwE,EAAG,KACf,IACIngB,EAAGqY,EADHzB,EAAM44E,EAAQj0E,EAAG2U,EAAG/P,GAAItJ,EAAM04E,EAAQh0E,EAAG2U,EAAG/P,GACtCqP,EAAI5Y,EACVzV,EAAIyV,EAAMC,EAEd,GADAwB,EAAY,IAARzB,EAAY,EAAIzV,EAAIyV,EACpBA,GAAOC,EACT7W,EAAI,MACC,CACL,OAAQ4W,GACN,KAAK2E,EACHvb,GAAKkwB,EAAI/P,GAAKhf,GAAK+uB,EAAI/P,EAAI,EAAI,GAC/B,MACF,KAAK+P,EACHlwB,GAAKmgB,EAAI5E,GAAKpa,EAAI,EAClB,MACF,KAAKgf,EACHngB,GAAKub,EAAI2U,GAAK/uB,EAAI,EAGtBnB,GAAK,CACP,CACA,MAAO,CAAEA,IAAGqY,IAAGmX,IACjB,CAQA,SAASuiE,EAASx2E,EAAG2U,EAAG/P,EAAG6xE,GACzB,IAAIC,EAAO,CACTjS,EAAKsP,EAAU/zE,GAAG9gB,SAAS,KAC3BulF,EAAKsP,EAAUp/D,GAAGz1B,SAAS,KAC3BulF,EAAKsP,EAAUnvE,GAAG1lB,SAAS,MAE7B,OAAIu3F,GAAcC,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,GACjIy6E,EAAK,GAAGz6E,OAAO,GAAKy6E,EAAK,GAAGz6E,OAAO,GAAKy6E,EAAK,GAAGz6E,OAAO,GAEzDy6E,EAAKl+F,KAAK,GACnB,CAaA,SAASm+F,EAAc32E,EAAG2U,EAAG/P,EAAG5H,GAO9B,MANW,CACTynE,EAAKmS,EAAoB55E,IACzBynE,EAAKsP,EAAU/zE,GAAG9gB,SAAS,KAC3BulF,EAAKsP,EAAUp/D,GAAGz1B,SAAS,KAC3BulF,EAAKsP,EAAUnvE,GAAG1lB,SAAS,MAEjB1G,KAAK,GACnB,CAcA,SAASq+F,EAAW55C,EAAQ65C,GAC1BA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI95C,EAAOm3C,EAAUl3C,GAAQ85C,QAG7B,OAFA/5C,EAAKlgC,GAAKg6E,EAAS,IACnB95C,EAAKlgC,EAAIk6E,EAAQh6C,EAAKlgC,GACfq3E,EAAUn3C,EACnB,CACA,SAASi6C,EAASh6C,EAAQ65C,GACxBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI95C,EAAOm3C,EAAUl3C,GAAQ85C,QAG7B,OAFA/5C,EAAKlgC,GAAKg6E,EAAS,IACnB95C,EAAKlgC,EAAIk6E,EAAQh6C,EAAKlgC,GACfq3E,EAAUn3C,EACnB,CACA,SAASk6C,EAAUj6C,GACjB,OAAOk3C,EAAUl3C,GAAQ45C,WAAW,IACtC,CACA,SAASvpF,EAAQ2vC,EAAQ65C,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI95C,EAAOm3C,EAAUl3C,GAAQ85C,QAG7B,OAFA/5C,EAAKjgC,GAAK+5E,EAAS,IACnB95C,EAAKjgC,EAAIi6E,EAAQh6C,EAAKjgC,GACfo3E,EAAUn3C,EACnB,CACA,SAASm6C,EAASl6C,EAAQ65C,GACxBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI/5C,EAAOo3C,EAAUl3C,GAAQm6C,QAI7B,OAHAr6C,EAAK/8B,EAAIi0E,EAAQ,EAAGD,EAAQ,IAAKj3C,EAAK/8B,EAAI+zE,GAAkB+C,EAAS,IAAjB,OACpD/5C,EAAKpoB,EAAIs/D,EAAQ,EAAGD,EAAQ,IAAKj3C,EAAKpoB,EAAIo/D,GAAkB+C,EAAS,IAAjB,OACpD/5C,EAAKn4B,EAAIqvE,EAAQ,EAAGD,EAAQ,IAAKj3C,EAAKn4B,EAAImvE,GAAkB+C,EAAS,IAAjB,OAC7C3C,EAAUp3C,EACnB,CACA,SAASxvC,EAAO0vC,EAAQ65C,GACtBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI95C,EAAOm3C,EAAUl3C,GAAQ85C,QAG7B,OAFA/5C,EAAKjgC,GAAK+5E,EAAS,IACnB95C,EAAKjgC,EAAIi6E,EAAQh6C,EAAKjgC,GACfo3E,EAAUn3C,EACnB,CACA,SAASq6C,EAAKp6C,EAAQ65C,GACpB,IAAI95C,EAAOm3C,EAAUl3C,GAAQ85C,QACzBO,GAAQt6C,EAAKv4C,EAAIqyF,GAAU,IAE/B,OADA95C,EAAKv4C,EAAI6yF,EAAO,EAAI,IAAMA,EAAOA,EAC1BnD,EAAUn3C,EACnB,CACA,SAASu6C,EAAWt6C,GAClB,IAAID,EAAOm3C,EAAUl3C,GAAQ85C,QAE7B,OADA/5C,EAAKv4C,GAAKu4C,EAAKv4C,EAAI,KAAO,IACnB0vF,EAAUn3C,EACnB,CACA,SAASw6C,EAAMv6C,GACb,IAAID,EAAOm3C,EAAUl3C,GAAQ85C,QACzBtyF,EAAIu4C,EAAKv4C,EACb,MAAO,CACL0vF,EAAUl3C,GACVk3C,EAAU,CAAE1vF,GAAIA,EAAI,KAAO,IAAKqY,EAAGkgC,EAAKlgC,EAAGC,EAAGigC,EAAKjgC,IACnDo3E,EAAU,CAAE1vF,GAAIA,EAAI,KAAO,IAAKqY,EAAGkgC,EAAKlgC,EAAGC,EAAGigC,EAAKjgC,IAEvD,CACA,SAAS06E,EAAOx6C,GACd,IAAID,EAAOm3C,EAAUl3C,GAAQ85C,QACzBtyF,EAAIu4C,EAAKv4C,EACb,MAAO,CACL0vF,EAAUl3C,GACVk3C,EAAU,CAAE1vF,GAAIA,EAAI,IAAM,IAAKqY,EAAGkgC,EAAKlgC,EAAGC,EAAGigC,EAAKjgC,IAClDo3E,EAAU,CAAE1vF,GAAIA,EAAI,KAAO,IAAKqY,EAAGkgC,EAAKlgC,EAAGC,EAAGigC,EAAKjgC,IACnDo3E,EAAU,CAAE1vF,GAAIA,EAAI,KAAO,IAAKqY,EAAGkgC,EAAKlgC,EAAGC,EAAGigC,EAAKjgC,IAEvD,CACA,SAAS26E,EAAgBz6C,GACvB,IAAID,EAAOm3C,EAAUl3C,GAAQ85C,QACzBtyF,EAAIu4C,EAAKv4C,EACb,MAAO,CACL0vF,EAAUl3C,GACVk3C,EAAU,CAAE1vF,GAAIA,EAAI,IAAM,IAAKqY,EAAGkgC,EAAKlgC,EAAGC,EAAGigC,EAAKjgC,IAClDo3E,EAAU,CAAE1vF,GAAIA,EAAI,KAAO,IAAKqY,EAAGkgC,EAAKlgC,EAAGC,EAAGigC,EAAKjgC,IAEvD,CACA,SAAS46E,EAAU16C,EAAQ26C,EAASC,GAClCD,EAAUA,GAAW,EACrBC,EAASA,GAAU,GACnB,IAAI76C,EAAOm3C,EAAUl3C,GAAQ85C,QACzBrF,EAAO,IAAMmG,EACb91D,EAAM,CAACoyD,EAAUl3C,IACrB,IAAKD,EAAKv4C,GAAKu4C,EAAKv4C,GAAKitF,EAAOkG,GAAW,GAAK,KAAO,MAAOA,GAC5D56C,EAAKv4C,GAAKu4C,EAAKv4C,EAAIitF,GAAQ,IAC3B3vD,EAAIxvC,KAAK4hG,EAAUn3C,IAErB,OAAOjb,CACT,CACA,SAAS+1D,EAAc76C,EAAQ26C,GAC7BA,EAAUA,GAAW,EAKrB,IAJA,IAAIlD,EAAMP,EAAUl3C,GAAQ86C,QACxBtzF,EAAIiwF,EAAIjwF,EAAGqY,EAAI43E,EAAI53E,EAAGmX,EAAIygE,EAAIzgE,EAC9B8N,EAAM,GACNi2D,EAAe,EAAIJ,EAChBA,KACL71D,EAAIxvC,KAAK4hG,EAAU,CAAE1vF,IAAGqY,IAAGmX,OAC3BA,GAAKA,EAAI+jE,GAAgB,EAE3B,OAAOj2D,CACT,CAtfAoyD,EAAUphG,UAAY,CACpBklG,OAAQ,WACN,OAAOtmG,KAAKumG,gBAAkB,GAChC,EACAC,QAAS,WACP,OAAQxmG,KAAKsmG,QACf,EACAvhE,QAAS,WACP,OAAO/kC,KAAKykG,GACd,EACAgC,iBAAkB,WAChB,OAAOzmG,KAAKgkG,cACd,EACA0C,UAAW,WACT,OAAO1mG,KAAKskG,OACd,EACAqC,SAAU,WACR,OAAO3mG,KAAKokG,EACd,EACAmC,cAAe,WACb,IAAIn7C,EAAOprD,KAAKylG,QAChB,OAAiB,IAATr6C,EAAK/8B,EAAmB,IAAT+8B,EAAKpoB,EAAmB,IAATooB,EAAKn4B,GAAW,GACxD,EACAzJ,aAAc,WACZ,IACIo9E,EAAOC,EAAOC,EADd17C,EAAOprD,KAAKylG,QAoBhB,OAlBAmB,EAAQx7C,EAAK/8B,EAAI,IACjBw4E,EAAQz7C,EAAKpoB,EAAI,IACjB8jE,EAAQ17C,EAAKn4B,EAAI,IAgBV,OAfH2zE,GAAS,OACPA,EAAQ,MAER5E,EAAMv7C,KAAKmgD,EAAQ,MAAS,MAAO,MAYrB,OAVhBC,GAAS,OACPA,EAAQ,MAER7E,EAAMv7C,KAAKogD,EAAQ,MAAS,MAAO,MAOR,OAL7BC,GAAS,OACNA,EAAQ,MAER9E,EAAMv7C,KAAKqgD,EAAQ,MAAS,MAAO,KAG5C,EACAC,SAAU,SAAS3jG,GAGjB,OAFApD,KAAKokG,GAAKN,EAAW1gG,GACrBpD,KAAKqkG,QAAUjC,EAAU,IAAMpiG,KAAKokG,IAAM,IACnCpkG,IACT,EACAomG,MAAO,WACL,IAAIrD,EAAM6B,EAAS5kG,KAAKikG,GAAIjkG,KAAKkkG,GAAIlkG,KAAKmkG,IAC1C,MAAO,CAAErxF,EAAW,IAARiwF,EAAIjwF,EAASqY,EAAG43E,EAAI53E,EAAGmX,EAAGygE,EAAIzgE,EAAGjX,EAAGrrB,KAAKokG,GACvD,EACA4C,YAAa,WACX,IAAIjE,EAAM6B,EAAS5kG,KAAKikG,GAAIjkG,KAAKkkG,GAAIlkG,KAAKmkG,IACtCrxF,EAAIsvF,EAAkB,IAARW,EAAIjwF,GAAUqY,EAAIi3E,EAAkB,IAARW,EAAI53E,GAAUmX,EAAI8/D,EAAkB,IAARW,EAAIzgE,GAC9E,OAAkB,GAAXtiC,KAAKokG,GAAU,OAAStxF,EAAI,KAAOqY,EAAI,MAAQmX,EAAI,KAAO,QAAUxvB,EAAI,KAAOqY,EAAI,MAAQmX,EAAI,MAAQtiC,KAAKqkG,QAAU,GAC/H,EACAe,MAAO,WACL,IAAI/5C,EAAOs5C,EAAS3kG,KAAKikG,GAAIjkG,KAAKkkG,GAAIlkG,KAAKmkG,IAC3C,MAAO,CAAErxF,EAAY,IAATu4C,EAAKv4C,EAASqY,EAAGkgC,EAAKlgC,EAAGC,EAAGigC,EAAKjgC,EAAGC,EAAGrrB,KAAKokG,GAC1D,EACA6C,YAAa,WACX,IAAI57C,EAAOs5C,EAAS3kG,KAAKikG,GAAIjkG,KAAKkkG,GAAIlkG,KAAKmkG,IACvCrxF,EAAIsvF,EAAmB,IAAT/2C,EAAKv4C,GAAUqY,EAAIi3E,EAAmB,IAAT/2C,EAAKlgC,GAAUC,EAAIg3E,EAAmB,IAAT/2C,EAAKjgC,GACjF,OAAkB,GAAXprB,KAAKokG,GAAU,OAAStxF,EAAI,KAAOqY,EAAI,MAAQC,EAAI,KAAO,QAAUtY,EAAI,KAAOqY,EAAI,MAAQC,EAAI,MAAQprB,KAAKqkG,QAAU,GAC/H,EACA6C,MAAO,SAASpC,GACd,OAAOD,EAAS7kG,KAAKikG,GAAIjkG,KAAKkkG,GAAIlkG,KAAKmkG,GAAIW,EAC7C,EACAqC,YAAa,SAASrC,GACpB,MAAO,IAAM9kG,KAAKknG,MAAMpC,EAC1B,EACAsC,OAAQ,SAASC,GACf,OAmSJ,SAAmBh5E,EAAG2U,EAAG/P,EAAG5H,EAAGg8E,GAC7B,IAAItC,EAAO,CACTjS,EAAKsP,EAAU/zE,GAAG9gB,SAAS,KAC3BulF,EAAKsP,EAAUp/D,GAAGz1B,SAAS,KAC3BulF,EAAKsP,EAAUnvE,GAAG1lB,SAAS,KAC3BulF,EAAKmS,EAAoB55E,KAE3B,OAAIg8E,GAActC,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,IAAMy6E,EAAK,GAAGz6E,OAAO,GAC3Ky6E,EAAK,GAAGz6E,OAAO,GAAKy6E,EAAK,GAAGz6E,OAAO,GAAKy6E,EAAK,GAAGz6E,OAAO,GAAKy6E,EAAK,GAAGz6E,OAAO,GAE7Ey6E,EAAKl+F,KAAK,GACnB,CA9SWygG,CAAUtnG,KAAKikG,GAAIjkG,KAAKkkG,GAAIlkG,KAAKmkG,GAAInkG,KAAKokG,GAAIiD,EACvD,EACAE,aAAc,SAASF,GACrB,MAAO,IAAMrnG,KAAKonG,OAAOC,EAC3B,EACA5B,MAAO,WACL,MAAO,CAAEp3E,EAAG+zE,EAAUpiG,KAAKikG,IAAKjhE,EAAGo/D,EAAUpiG,KAAKkkG,IAAKjxE,EAAGmvE,EAAUpiG,KAAKmkG,IAAK94E,EAAGrrB,KAAKokG,GACxF,EACAoD,YAAa,WACX,OAAkB,GAAXxnG,KAAKokG,GAAU,OAAShC,EAAUpiG,KAAKikG,IAAM,KAAO7B,EAAUpiG,KAAKkkG,IAAM,KAAO9B,EAAUpiG,KAAKmkG,IAAM,IAAM,QAAU/B,EAAUpiG,KAAKikG,IAAM,KAAO7B,EAAUpiG,KAAKkkG,IAAM,KAAO9B,EAAUpiG,KAAKmkG,IAAM,KAAOnkG,KAAKqkG,QAAU,GACjO,EACAoD,gBAAiB,WACf,MAAO,CAAEp5E,EAAG+zE,EAAkC,IAAxBqB,EAAQzjG,KAAKikG,GAAI,MAAc,IAAKjhE,EAAGo/D,EAAkC,IAAxBqB,EAAQzjG,KAAKkkG,GAAI,MAAc,IAAKjxE,EAAGmvE,EAAkC,IAAxBqB,EAAQzjG,KAAKmkG,GAAI,MAAc,IAAK94E,EAAGrrB,KAAKokG,GACtK,EACAsD,sBAAuB,WACrB,OAAkB,GAAX1nG,KAAKokG,GAAU,OAAShC,EAAkC,IAAxBqB,EAAQzjG,KAAKikG,GAAI,MAAc,MAAQ7B,EAAkC,IAAxBqB,EAAQzjG,KAAKkkG,GAAI,MAAc,MAAQ9B,EAAkC,IAAxBqB,EAAQzjG,KAAKmkG,GAAI,MAAc,KAAO,QAAU/B,EAAkC,IAAxBqB,EAAQzjG,KAAKikG,GAAI,MAAc,MAAQ7B,EAAkC,IAAxBqB,EAAQzjG,KAAKkkG,GAAI,MAAc,MAAQ9B,EAAkC,IAAxBqB,EAAQzjG,KAAKmkG,GAAI,MAAc,MAAQnkG,KAAKqkG,QAAU,GAC/V,EACAsD,OAAQ,WACN,OAAgB,IAAZ3nG,KAAKokG,GACA,gBAELpkG,KAAKokG,GAAK,KAGPwD,EAAS/C,EAAS7kG,KAAKikG,GAAIjkG,KAAKkkG,GAAIlkG,KAAKmkG,IAAI,MAAU,EAChE,EACA0D,SAAU,SAASC,GACjB,IAAIC,EAAa,IAAM/C,EAAchlG,KAAKikG,GAAIjkG,KAAKkkG,GAAIlkG,KAAKmkG,GAAInkG,KAAKokG,IACjE4D,EAAmBD,EACnBvD,EAAexkG,KAAKukG,cAAgB,qBAAuB,GAC/D,GAAIuD,EAAa,CACf,IAAI38E,EAAIq3E,EAAUsF,GAClBE,EAAmB,IAAMhD,EAAc75E,EAAE84E,GAAI94E,EAAE+4E,GAAI/4E,EAAEg5E,GAAIh5E,EAAEi5E,GAC7D,CACA,MAAO,8CAAgDI,EAAe,iBAAmBuD,EAAa,gBAAkBC,EAAmB,GAC7I,EACAz6F,SAAU,SAASw4B,GACjB,IAAIkiE,IAAcliE,EAClBA,EAASA,GAAU/lC,KAAKskG,QACxB,IAAI4D,GAAkB,EAClBC,EAAWnoG,KAAKokG,GAAK,GAAKpkG,KAAKokG,IAAM,EAEzC,OADwB6D,IAAaE,GAAwB,QAAXpiE,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAO3I,QAAXA,IACFmiE,EAAkBloG,KAAKwnG,eAEV,SAAXzhE,IACFmiE,EAAkBloG,KAAK0nG,yBAEV,QAAX3hE,GAA+B,SAAXA,IACtBmiE,EAAkBloG,KAAKmnG,eAEV,SAAXphE,IACFmiE,EAAkBloG,KAAKmnG,aAAY,IAEtB,SAAXphE,IACFmiE,EAAkBloG,KAAKunG,cAAa,IAEvB,SAAXxhE,IACFmiE,EAAkBloG,KAAKunG,gBAEV,SAAXxhE,IACFmiE,EAAkBloG,KAAK2nG,UAEV,QAAX5hE,IACFmiE,EAAkBloG,KAAKinG,eAEV,QAAXlhE,IACFmiE,EAAkBloG,KAAKgnG,eAElBkB,GAAmBloG,KAAKmnG,eAhCd,SAAXphE,GAAiC,IAAZ/lC,KAAKokG,GACrBpkG,KAAK2nG,SAEP3nG,KAAKwnG,aA8BhB,EACA9nF,MAAO,WACL,OAAO8iF,EAAUxiG,KAAKuN,WACxB,EACA66F,mBAAoB,SAAS/8F,EAAI4B,GAC/B,IAAIq+C,EAASjgD,EAAGgC,MAAM,KAAM,CAACrN,MAAM4K,OAAO,GAAG3G,MAAM6F,KAAKmD,KAKxD,OAJAjN,KAAKikG,GAAK34C,EAAO24C,GACjBjkG,KAAKkkG,GAAK54C,EAAO44C,GACjBlkG,KAAKmkG,GAAK74C,EAAO64C,GACjBnkG,KAAK+mG,SAASz7C,EAAO84C,IACdpkG,IACT,EACA2b,QAAS,WACP,OAAO3b,KAAKooG,mBAAmBzsF,EAAS3O,UAC1C,EACAw4F,SAAU,WACR,OAAOxlG,KAAKooG,mBAAmB5C,EAAUx4F,UAC3C,EACA4O,OAAQ,WACN,OAAO5b,KAAKooG,mBAAmBxsF,EAAQ5O,UACzC,EACAk4F,WAAY,WACV,OAAOllG,KAAKooG,mBAAmBlD,EAAYl4F,UAC7C,EACAs4F,SAAU,WACR,OAAOtlG,KAAKooG,mBAAmB9C,EAAUt4F,UAC3C,EACAu4F,UAAW,WACT,OAAOvlG,KAAKooG,mBAAmB7C,EAAWv4F,UAC5C,EACA04F,KAAM,WACJ,OAAO1lG,KAAKooG,mBAAmB1C,EAAM14F,UACvC,EACAq7F,kBAAmB,SAASh9F,EAAI4B,GAC9B,OAAO5B,EAAGgC,MAAM,KAAM,CAACrN,MAAM4K,OAAO,GAAG3G,MAAM6F,KAAKmD,IACpD,EACA+4F,UAAW,WACT,OAAOhmG,KAAKqoG,kBAAkBrC,EAAWh5F,UAC3C,EACA44F,WAAY,WACV,OAAO5lG,KAAKqoG,kBAAkBzC,EAAY54F,UAC5C,EACAm5F,cAAe,WACb,OAAOnmG,KAAKqoG,kBAAkBlC,EAAen5F,UAC/C,EACA+4F,gBAAiB,WACf,OAAO/lG,KAAKqoG,kBAAkBtC,EAAiB/4F,UACjD,EACA64F,MAAO,WACL,OAAO7lG,KAAKqoG,kBAAkBxC,EAAO74F,UACvC,EACA84F,OAAQ,WACN,OAAO9lG,KAAKqoG,kBAAkBvC,EAAQ94F,UACxC,GAEFw1F,EAAU8F,UAAY,SAASh9C,EAAQm3C,GACrC,GAAqB,iBAAVn3C,EAAoB,CAC7B,IAAIi9C,EAAW,CAAC,EAChB,IAAK,IAAItmG,KAAKqpD,EACRA,EAAO5vC,eAAezZ,KAEtBsmG,EAAStmG,GADD,MAANA,EACYqpD,EAAOrpD,GAEPyhG,EAAoBp4C,EAAOrpD,KAI/CqpD,EAASi9C,CACX,CACA,OAAO/F,EAAUl3C,EAAQm3C,EAC3B,EAsKAD,EAAUgG,OAAS,SAASC,EAAQn9C,GAClC,SAAKm9C,IAAWn9C,IAGTk3C,EAAUiG,GAAQjB,eAAiBhF,EAAUl3C,GAAQk8C,aAC9D,EACAhF,EAAUttD,OAAS,WACjB,OAAOstD,EAAU8F,UAAU,CACzBj6E,EAAGk0E,IACHv/D,EAAGu/D,IACHtvE,EAAGsvE,KAEP,EAuGAC,EAAUkG,IAAM,SAASD,EAAQn9C,EAAQ65C,GACvCA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIwD,EAAOnG,EAAUiG,GAAQhD,QACzBr6C,EAAOo3C,EAAUl3C,GAAQm6C,QACzB1yE,EAAIoyE,EAAS,IAOjB,OAAO3C,EANK,CACVn0E,GAAI+8B,EAAK/8B,EAAIs6E,EAAKt6E,GAAK0E,EAAI41E,EAAKt6E,EAChC2U,GAAIooB,EAAKpoB,EAAI2lE,EAAK3lE,GAAKjQ,EAAI41E,EAAK3lE,EAChC/P,GAAIm4B,EAAKn4B,EAAI01E,EAAK11E,GAAKF,EAAI41E,EAAK11E,EAChC5H,GAAI+/B,EAAK//B,EAAIs9E,EAAKt9E,GAAK0H,EAAI41E,EAAKt9E,GAGpC,EACAm3E,EAAUoG,YAAc,SAASH,EAAQn9C,GACvC,IAAIu9C,EAAKrG,EAAUiG,GACfK,EAAKtG,EAAUl3C,GACnB,OAAQ02C,EAAMt4E,IAAIm/E,EAAGr/E,eAAgBs/E,EAAGt/E,gBAAkB,MAASw4E,EAAMr4E,IAAIk/E,EAAGr/E,eAAgBs/E,EAAGt/E,gBAAkB,IACvH,EACAg5E,EAAUuG,WAAa,SAASN,EAAQn9C,EAAQ09C,GAC9C,IACIC,EAAYpjC,EADZ+iC,EAAcpG,EAAUoG,YAAYH,EAAQn9C,GAIhD,OAFAua,GAAM,GACNojC,EA8UF,SAA4BC,GAC1B,IAAIC,EAAOlhG,EAUX,OARAkhG,IADAD,EAAQA,GAAS,CAAE,MAAS,KAAM,KAAQ,UAC3BC,OAAS,MAAM3sE,cAC9Bv0B,GAAQihG,EAAMjhG,MAAQ,SAAS8I,cACjB,OAAVo4F,GAA4B,QAAVA,IACpBA,EAAQ,MAEG,UAATlhG,GAA6B,UAATA,IACtBA,EAAO,SAEF,CAAE,MAASkhG,EAAO,KAAQlhG,EACnC,CA1VemhG,CAAmBJ,IACbG,MAAQF,EAAWhhG,MACpC,IAAK,UACL,IAAK,WACH49D,EAAM+iC,GAAe,IACrB,MACF,IAAK,UACH/iC,EAAM+iC,GAAe,EACrB,MACF,IAAK,WACH/iC,EAAM+iC,GAAe,EAGzB,OAAO/iC,CACT,EACA28B,EAAU6G,aAAe,SAASC,EAAWC,EAAWt8F,GACtD,IAEI27F,EACAY,EAAuBL,EAAOlhG,EAH9BwhG,EAAY,KACZC,EAAY,EAIhBF,GADAv8F,EAAOA,GAAQ,CAAC,GACau8F,sBAC7BL,EAAQl8F,EAAKk8F,MACblhG,EAAOgF,EAAKhF,KACZ,IAAK,IAAIhG,EAAI,EAAGA,EAAIsnG,EAAUlpG,OAAQ4B,KACpC2mG,EAAcpG,EAAUoG,YAAYU,EAAWC,EAAUtnG,KACvCynG,IAChBA,EAAYd,EACZa,EAAYjH,EAAU+G,EAAUtnG,KAGpC,OAAIugG,EAAUuG,WAAWO,EAAWG,EAAW,CAAE,MAASN,EAAO,KAAQlhG,MAAYuhG,EAC5EC,GAEPx8F,EAAKu8F,uBAAwB,EACtBhH,EAAU6G,aAAaC,EAAW,CAAC,OAAQ,QAASr8F,GAE/D,EACA,IAAIymF,EAAS8O,EAAUmH,MAAQ,CAC7Bj+C,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRtyC,MAAO,MACPuyC,eAAgB,SAChBjwC,KAAM,MACNkwC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXw9C,YAAa,SACbv9C,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNlyC,MAAO,SACPmyC,YAAa,SACbnxC,KAAM,SACNoxC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACPC,QAAS,MACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXh1C,OAAQ,SACRi1C,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZx2C,OAAQ,SACRy2C,cAAe,SACft2C,IAAK,MACLu2C,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPv6C,MAAO,MACPw6C,WAAY,SACZC,OAAQ,MACRC,YAAa,UAEXuzC,EAAWpF,EAAUoF,SACzB,SAAc7lE,GACZ,IAAI8nE,EAAU,CAAC,EACf,IAAK,IAAI5nG,KAAK8/B,EACRA,EAAErmB,eAAezZ,KACnB4nG,EAAQ9nE,EAAE9/B,IAAMA,GAGpB,OAAO4nG,CACT,CAToCC,CAAKpW,GAUzC,SAASoQ,EAAWz4E,GAKlB,OAJAA,EAAIT,WAAWS,IACXooB,MAAMpoB,IAAMA,EAAI,GAAKA,EAAI,KAC3BA,EAAI,GAECA,CACT,CACA,SAASo4E,EAAQt5E,EAAGT,IAoBpB,SAAwBS,GACtB,MAAmB,iBAALA,IAAoC,GAAnBA,EAAEzmB,QAAQ,MAAgC,IAAlBknB,WAAWT,EACpE,EArBM4/E,CAAe5/E,KACjBA,EAAI,QAEN,IAAI6/E,EAmBN,SAAsB7/E,GACpB,MAAoB,kBAANA,IAAqC,GAAnBA,EAAEzmB,QAAQ,IAC5C,CArBuBumG,CAAa9/E,GAKlC,OAJAA,EAAIk4E,EAAQ34E,EAAK44E,EAAQ,EAAG13E,WAAWT,KACnC6/E,IACF7/E,EAAIC,SAASD,EAAIT,EAAK,IAAM,KAE1Bs4E,EAAMp/F,IAAIunB,EAAIT,GAAO,KAChB,EAEFS,EAAIT,EAAMkB,WAAWlB,EAC9B,CACA,SAAS27E,EAAQt6E,GACf,OAAOs3E,EAAQ,EAAGC,EAAQ,EAAGv3E,GAC/B,CACA,SAASm4E,EAAgBn4E,GACvB,OAAOX,SAASW,EAAK,GACvB,CAOA,SAAS+nE,EAAK9wD,GACZ,OAAmB,GAAZA,EAAE3hC,OAAc,IAAM2hC,EAAI,GAAKA,CACxC,CACA,SAAS0hE,EAAoBv5E,GAI3B,OAHIA,GAAK,IACPA,EAAQ,IAAJA,EAAU,KAETA,CACT,CACA,SAAS86E,EAAoBhxF,GAC3B,OAAO+tF,EAAMpjF,MAAsB,IAAhBgM,WAAW3W,IAAU1G,SAAS,GACnD,CACA,SAAS41F,EAAoBrwF,GAC3B,OAAOowF,EAAgBpwF,GAAK,GAC9B,CACA,IAAI8vF,EAAW,WACb,IAEIsH,EAAW,6CACXC,EAAoB,cAAgBD,EAAW,aAAeA,EAAW,aAAeA,EAAW,YACnGE,EAAoB,cAAgBF,EAAW,aAAeA,EAAW,aAAeA,EAAW,aAAeA,EAAW,YACjI,MAAO,CACLA,SAAU,IAAIjgF,OAAOigF,GACrB3+E,IAAK,IAAItB,OAAO,MAAQkgF,GACxBtH,KAAM,IAAI54E,OAAO,OAASmgF,GAC1BjhD,IAAK,IAAIl/B,OAAO,MAAQkgF,GACxBrH,KAAM,IAAI74E,OAAO,OAASmgF,GAC1BrH,IAAK,IAAI94E,OAAO,MAAQkgF,GACxBnH,KAAM,IAAI/4E,OAAO,OAASmgF,GAC1B9G,KAAM,uDACNF,KAAM,uDACNC,KAAM,uEACNJ,KAAM,uEAEV,CAnBe,GAoBf,SAASO,EAAel4C,GACtB,QAASs3C,EAASsH,SAAS1gG,KAAK8hD,EAClC,CA8EsB,qBAAXxpB,GAA0BA,EAAOluB,QAC1CkuB,EAAOluB,QAAU4uF,EAMjB5iE,OAAO4iE,UAAYA,CAEtB,CA34BD,CA24BG3/F,KACL,IAIEwnG,EAAiBn8D,EAAW,CAC9B,oBAAoBt6B,GAElB,IAAIyZ,EAAgBssE,IAChB7nF,EAAUjI,MAAMiI,QA0BpB,SAASw4F,EAAQC,EAAQC,EAAQC,EAAaC,GAC5C,IAEI9+E,EAAO1qB,EAAKypG,EAAKzlG,EAAM0lG,EAAalrF,EAAOmrF,EAF3C3kF,EAASqkF,EAAO,GAChBlqG,EAASkqG,EAAOlqG,OAEpB,GAAe,IAAXA,GAAgByR,EAAQoU,IAAWpU,EAAQy4F,EAAO,KAAyB,IAAlBrkF,EAAO7lB,OAAc,CAEhF,GADAwqG,EA9BJ,SAA8B/sE,EAAQ5X,GACpC,IAAIjkB,EAAGmB,EACP,IAAKnB,EAAI,EAAGA,EAAI67B,EAAOz9B,OAAQ4B,IAAK,CAElC,GAAc,QADdmB,EAAQ06B,EAAO77B,KACwB,kBAAVmB,EAC3B,OAAO,OAEK,IAAVA,IACF8iB,EAAOjkB,GAAKmB,EAEhB,CACA,OAAO,CACT,CAkBoB0nG,CAAqBP,EAAO,GAAIrkF,GAC5C2kF,EACF,OAAO3kF,EAEPA,EAAOw5C,OAAO,EAAGx5C,EAAO7lB,OAE5B,CACA,IAAK,IAAI4B,EAAI,EAAGA,EAAI5B,EAAQ4B,IAE1B,IAAKf,KADL0qB,EAAQ2+E,EAAOtoG,GAEb0oG,EAAMzkF,EAAOhlB,GACbgE,EAAO0mB,EAAM1qB,GACTwpG,GAAiB54F,EAAQ5M,GAC3BghB,EAAOhlB,GAAOgE,EACLslG,GAAUtlG,IAASmoB,EAAcnoB,KAAU0lG,EAAc94F,EAAQ5M,MACtE0lG,GACFA,GAAc,EACdlrF,EAAQirF,GAAO74F,EAAQ64F,GAAOA,EAAM,IAEpCjrF,EAAQirF,GAAOt9E,EAAcs9E,GAAOA,EAAM,CAAC,EAE7CzkF,EAAOhlB,GAAOopG,EAAQ,CAAC5qF,EAAOxa,GAAOslG,EAAQC,EAAaC,KACjC,qBAATxlG,GAAwBulG,KACxCvkF,EAAOhlB,GAAOgE,GAIpB,OAAOghB,CACT,CA7CAtS,EAAQm3F,WAAa,WACnB,OAAOT,EAAQt9F,WAAW,GAAO,GAAO,EAC1C,EACA4G,EAAQo3F,WAAa,WACnB,OAAOV,EAAQt9F,WAAW,GAAM,GAAO,EACzC,EACA4G,EAAQq3F,cAAgB,WACtB,OAAOX,EAAQt9F,WAAW,GAAM,GAAM,EACxC,EACA4G,EAAQs3F,mBAAqB,WAC3B,OAAOZ,EAAQt9F,WAAW,GAAM,GAAO,EACzC,CAmCF,IAIEm+F,EAA0Bj9D,EAAW,CACvC,+BAA+Bt6B,EAASkuB,GAEtCA,EAAOluB,QAAU,SAAS6uF,GACxB,IAAI2I,EAAgB3I,EAAK2I,cACrBC,EAAW5I,EAAK4I,SAChBC,EAAgB7I,EAAK6I,mBACH,IAAlBA,IAA0BA,EAAgBD,GAC9C,IAAI7+B,EAAS,CACX6+B,WACAE,QAAS,UACT5hF,IAAK,EACLD,IAAK,IACL8hF,OAAQ,CAAC,SAAU,QACnBC,KAAM,UAEJhJ,EAAKiJ,wBACPl/B,EAAO++B,QAAU,aACjB/+B,EAAO9hD,OAAS8hD,EAAOg/B,OACvBh/B,EAAOg/B,YAAS,EAChBh/B,EAAO7iD,SAAM,EACb6iD,EAAO9iD,SAAM,GAEf,IAAIiiF,EAAQ,CACVC,OAAQ,CACNL,QAAS,SACTM,SAAS,EACTC,QAAQ,EACRT,YAEFpjG,KAAM,CACJsjG,QAAS,SACT5hF,IAAK,EACL0hF,YAEFz1F,MAAO,CACL21F,QAAS,QACTF,SAAUC,GAEZ9+B,SACAlgD,MAAO,CACL++E,WACAE,QAAS,aACT7gF,OAAQ,CAAC,SAAU,UACnB+gF,KAAM,UAERr8E,QAASqzE,EAAKsJ,mBAAgB,EAAS,CACrCV,WACAE,QAAS,aACT7gF,OAAQ0gF,GAAiB,CACvB,SACA,aACA,iBACA,kBACA,cACA,WAEFK,KAAM,UAERO,SAAUvJ,EAAKwJ,oBAAiB,EAAS,CACvCZ,WACAE,QAAS,aACT7gF,OAAQ,CAAC,SAAU,YAAa,QAAS,SACzC+gF,KAAM,UAERS,aAAczJ,EAAK0J,wBAAqB,EAAS,CAC/Cd,WACAE,QAAS,WACTa,MAAO,CAAC,QAAS,OAAQ,WACzBZ,OAAQ,CAAC,QACTC,KAAM,QAERY,OAAQ5J,EAAK6J,kBAAe,EAAS,CACnCjB,WACAE,QAAS,SACTE,KAAMhJ,EAAK8J,eAAiB,OAAS,QAEvClB,YAyBF,OArBI5I,EAAK+J,WAAUb,EAAM1jG,KAAKwjG,KAAO,QACjChJ,EAAKgK,YAAWd,EAAM/1F,MAAM61F,KAAO,QACnChJ,EAAKiK,UACPf,EAAMC,OAAOc,SAAU,EACvBf,EAAMn/B,OAAOkgC,SAAU,EACvBf,EAAMr/E,MAAMogF,SAAU,EACjBjK,EAAKsJ,gBACRJ,EAAMv8E,QAAQs9E,SAAU,GAErBjK,EAAKwJ,iBACRN,EAAMK,SAASU,SAAU,GAEtBjK,EAAK0J,qBACRR,EAAMO,aAAaQ,SAAU,GAE1BjK,EAAK6J,eACRX,EAAMU,OAAOK,SAAU,GAEzBf,EAAM1jG,KAAKykG,SAAU,EACrBf,EAAM/1F,MAAM82F,SAAU,GAEjBf,CACT,CACF,IAIEgB,EAAoBz+D,EAAW,CACjC,iCAAiCt6B,EAASkuB,GAExCA,EAAOluB,QAAU,CAEfg5F,OAAQ,GAGRC,eAAgB,EAEhBC,aAAc,EAEdC,cAAe,GACfC,UAAW,oBAEXC,aAAc,GAEdC,QAAS,SAEb,IAIEC,EAA4Bj/D,EAAW,CACzC,yCAAyCt6B,EAASkuB,GAEhD,IAAIsrE,EAAYT,IACZU,EAAYlC,IACZmC,EAAOD,EAAU,CACnBhC,SAAU,SAEZiC,EAAK1B,OAAOH,KAAO2B,EAAUJ,UAC7BM,EAAKrlG,KAAKwjG,KAAO2B,EAAUL,cAC3BjrE,EAAOluB,QAAU,CACf25F,UAAW,CACThC,QAAS,WACTa,MAAO,CAAC,QAAS,UACjBX,KAAM,QACNJ,SAAU,OACVG,OAAQ,CAAC,SAEXgC,SAAU,CACRjC,QAAS,aACT7gF,OAAQ,CACN,OACA,MACA,SACA,QACA,iBACA,eACA,WACA,WACA,aACA,QACA,aACA,GAEF+gF,KAAM,OACNJ,SAAU,WAEZoC,UAAW,CACTlC,QAAS,aACT7gF,OAAQ,CAAC,IAAK,IAAK,WAAW,EAAO,YAAa,aAClD+gF,KAAM,UACNJ,SAAU,WAEZqC,cAAe,CACbnC,QAAS,aACT7gF,OAAQ,CAAC,SAAU,aAAc,QACjC+gF,KAAM,aACNJ,SAAU,QAEZsC,cAAe,CACbpC,QAAS,UACT5hF,KAAM,EACN8hF,KAAM,GACNJ,SAAU,QAEZuC,cAAe,CACbrC,QAAS,UACT5hF,KAAM,EACN8hF,MAAO,EACPJ,SAAU,QAEZwC,WAAY,CACV/2E,QAAS,CACPy0E,QAAS,QACTF,SAAU,QAEZyC,YAAa,CACXvC,QAAS,QACTF,SAAU,QAEZiC,OACAS,eAAgBV,EAAU,CACxBhC,SAAU,SAEZxW,MAAO,CACL0W,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,QAAS,QAC1B+gF,KAAM,OACNJ,SAAU,QAEZ2C,WAAY,CACVzC,QAAS,UACT5hF,KAAM,EACN8hF,KAAM,GACNJ,SAAU,QAEZA,SAAU,QAEZ4C,gBAAiB,CACf1C,QAAS,aACT7gF,OAAQ,CAAC,IAAK,IAAK,IAAK,OACxB+gF,KAAM,MACNJ,SAAU,QAGhB,IAIE6C,EAAqBhgE,EAAW,CAClC,kCAAkCt6B,EAASkuB,GAEzC,IAAIurE,EAAYlC,IACZgD,EAAkBhB,IAA4BU,WAC9C9C,EAAaV,IAAiBU,WAClCjpE,EAAOluB,QAAU,CACfi6F,WAAY,CACV/2E,QAASi0E,EAAW,CAAC,EAAGoD,EAAgBr3E,QAAS,CAC/C41E,SAAS,IAEXoB,YAAa/C,EAAW,CAAC,EAAGoD,EAAgBL,YAAa,CACvDpB,SAAS,IAEXY,KAAMD,EAAU,CACdX,SAAS,EACTrB,SAAU,SAEZxW,MAAOkW,EAAW,CAAC,EAAGoD,EAAgBtZ,MAAO,CAAE6X,SAAS,IACxDsB,WAAYjD,EAAW,CAAC,EAAGoD,EAAgBH,WAAY,CAAEtB,SAAS,IAClErB,SAAU,QAGhB,IAIE+C,EAAsBlgE,EAAW,CACnC,0BAA0Bt6B,EAASkuB,GAEjC,IAAIurE,EAAYlC,IACZkD,EAAUH,IACdpsE,EAAOluB,QAAU,CACf9O,KAAM,CACJymG,QAAS,aACT7gF,OAAQ,GAER+gF,KAAM,UACNJ,SAAU,sBACViD,eAAe,GAGjBC,QAAS,CACPhD,QAAS,aACT7gF,OAAQ,EAAC,GAAM,EAAO,cACtB+gF,MAAM,EACNJ,SAAU,QAEZmD,WAAY,CACVjD,QAAS,UACTE,MAAM,EACNJ,SAAU,SAEZoD,OAAQ,CACNlD,QAAS,YACTE,KAAM,SACNJ,SAAU,SAEZqD,YAAa,CACXnD,QAAS,SACTE,KAAM,GACNJ,SAAU,SAEZsD,iBAAkB,CAChB10F,KAAM,CACJsxF,QAAS,SACTE,KAAM,GACNJ,SAAU,SAEZiC,KAAMD,EAAU,CACdhC,SAAU,UAEZA,SAAU,SAEZuD,WAAY,CACVrD,QAAS,SACTE,KAAM,IACNJ,SAAU,SAEZwD,YAAa,CACXtD,QAAS,SACT5hF,IAAK,EACL0hF,SAAU,SAEZ97F,QAAS,CACPg8F,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,EACNJ,SAAU,SAEZngG,KAAM,CACJqgG,QAAS,SACTF,SAAU,SAEZyD,IAAK,CACHvD,QAAS,SACTF,SAAU,OACV/9F,MAAM,GAERyhG,IAAK,CACHxD,QAAS,aACTF,SAAU,OACV/9F,MAAM,GAER0hG,WAAY,CACVzD,QAAS,aACTF,SAAU,QAEZ4D,KAAM,CACJ1D,QAAS,MACTmB,SAAS,EACTrB,SAAU,QAOZ6D,eAAgB,CACd3D,QAAS,MACTF,SAAU,QAEZ8D,UAAW,CACT5D,QAAS,WACTa,MAAO,CAAC,IAAK,IAAK,IAAK,OAAQ,QAC/BZ,OAAQ,CAAC,MAAO,OAAQ,QACxBkB,SAAS,EACTjB,KAAM,MACNJ,SAAU,QAEZwC,WAAYQ,EAAQR,WACpBuB,OAAQ,CACN7pG,MAAO,CACLgmG,QAAS,SACTM,SAAS,EACTC,QAAQ,EACRT,SAAU,QAEZgE,UAAW,CACT9D,QAAS,SACT5hF,IAAK,EACLD,IAAK,IACL+hF,KAAM,IACNJ,SAAU,QAEZA,SAAU,QAEZiE,WAAY,CACV/D,QAAS,MACTF,SAAU,QAGhB,IAIEkE,EAAiBrhE,EAAW,CAC9B,sCAAsCt6B,EAASkuB,GAE7C,IAAI0gE,EAAYT,IACZyN,EAAS,CACXC,MAAO,CACL,CAAC,EAAG,cACJ,CAAC,EAAG,qBAENC,OAAQ,CACN,CAAC,EAAG,gBACJ,CAAC,KAAO,kBACR,CAAC,IAAM,kBACP,CAAC,KAAO,mBACR,CAAC,GAAK,mBACN,CAAC,KAAO,oBACR,CAAC,IAAM,oBACP,CAAC,KAAO,oBACR,CAAC,EAAG,qBAENC,OAAQ,CACN,CAAC,EAAG,gBACJ,CAAC,KAAO,iBACR,CAAC,IAAM,kBACP,CAAC,KAAO,kBACR,CAAC,GAAK,oBACN,CAAC,KAAO,oBACR,CAAC,IAAM,oBACP,CAAC,KAAO,oBACR,CAAC,EAAG,qBAENC,OAAQ,CACN,CAAC,EAAG,iBACJ,CAAC,KAAO,iBACR,CAAC,IAAM,kBACP,CAAC,KAAO,kBACR,CAAC,GAAK,mBACN,CAAC,KAAO,mBACR,CAAC,IAAM,oBACP,CAAC,KAAO,oBACR,CAAC,EAAG,qBAENC,QAAS,CACP,CAAC,EAAG,gBACJ,CAAC,EAAG,iBAINC,KAAM,CACJ,CAAC,EAAG,iBACJ,CAAC,IAAM,oBACP,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,GAAK,mBACN,CAAC,EAAG,mBAGNC,KAAM,CACJ,CAAC,EAAG,oBACJ,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,EAAG,mBAGNC,MAAO,CACL,CAAC,EAAG,iBACJ,CAAC,IAAM,kBACP,CAAC,GAAK,mBACN,CAAC,GAAK,mBACN,CAAC,GAAK,oBACN,CAAC,EAAG,qBAENC,OAAQ,CACN,CAAC,EAAG,gBACJ,CAAC,GAAK,mBACN,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,GAAK,oBACN,CAAC,EAAG,iBAENC,QAAS,CACP,CAAC,EAAG,iBACJ,CAAC,KAAO,gBACR,CAAC,IAAM,iBACP,CAAC,KAAO,kBACR,CAAC,GAAK,mBACN,CAAC,KAAO,kBACR,CAAC,IAAM,kBACP,CAAC,KAAO,kBACR,CAAC,EAAG,iBAENC,SAAU,CACR,CAAC,EAAG,kBACJ,CAAC,IAAM,mBACP,CAAC,GAAK,mBACN,CAAC,IAAM,mBACP,CAAC,EAAG,mBAENC,IAAK,CACH,CAAC,EAAG,gBACJ,CAAC,KAAO,iBACR,CAAC,KAAO,kBACR,CAAC,KAAO,kBACR,CAAC,KAAO,gBACR,CAAC,EAAG,iBAENC,IAAK,CACH,CAAC,EAAG,cACJ,CAAC,GAAK,gBACN,CAAC,GAAK,kBACN,CAAC,EAAG,qBAENC,UAAW,CACT,CAAC,EAAG,cACJ,CAAC,GAAK,gBACN,CAAC,GAAK,kBACN,CAAC,GAAK,oBACN,CAAC,EAAG,qBAENC,MAAO,CACL,CAAC,EAAG,gBACJ,CAAC,GAAK,kBACN,CAAC,GAAK,kBACN,CAAC,GAAK,mBACN,CAAC,GAAK,kBACN,CAAC,EAAG,qBAENC,SAAU,CACR,CAAC,EAAG,cACJ,CAAC,IAAM,iBACP,CAAC,GAAK,kBACN,CAAC,GAAK,iBACN,CAAC,GAAK,kBACN,CAAC,EAAG,qBAENC,QAAS,CACP,CAAC,EAAG,WACJ,CAAC,mBAAqB,WACtB,CAAC,mBAAqB,WACtB,CAAC,mBAAqB,WACtB,CAAC,mBAAqB,WACtB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,kBAAoB,WACrB,CAAC,EAAG,YAENC,QAAS,CACP,CAAC,EAAG,gBACJ,CAAC,QAAU,iBACX,CAAC,QAAU,iBACX,CAAC,QAAU,kBACX,CAAC,QAAU,kBACX,CAAC,QAAU,kBACX,CAAC,QAAU,kBACX,CAAC,QAAU,oBACX,CAAC,QAAU,oBACX,CAAC,QAAU,oBACX,CAAC,QAAU,oBACX,CAAC,QAAU,oBACX,CAAC,QAAU,oBACX,CAAC,QAAU,oBACX,CAAC,QAAU,oBACX,CAAC,QAAU,mBACX,CAAC,QAAU,mBACX,CAAC,EAAG,qBAGJC,EAAenB,EAAOM,KAkB1B,SAASc,EAAkBC,GACzB,IAAIC,EAAa,EACjB,IAAKjnG,MAAMiI,QAAQ++F,IAAQA,EAAIxwG,OAAS,EAAG,OAAO,EAClD,IAAKwwG,EAAI,KAAOA,EAAIA,EAAIxwG,OAAS,GAAI,OAAO,EAC5C,GAAmB,KAAdwwG,EAAI,GAAG,IAAwC,KAA3BA,EAAIA,EAAIxwG,OAAS,GAAG,GAAU,OAAO,EAC9D,IAAK,IAAI4B,EAAI,EAAGA,EAAI4uG,EAAIxwG,OAAQ4B,IAAK,CACnC,IAAI8uG,EAAKF,EAAI5uG,GACb,GAAkB,IAAd8uG,EAAG1wG,SAAiB0wG,EAAG,GAAKD,IAAetO,EAAUuO,EAAG,IAAIhsE,UAC9D,OAAO,EAET+rE,GAAcC,EAAG,EACnB,CACA,OAAO,CACT,CAKAjvE,EAAOluB,QAAU,CACf47F,SACAmB,eACA5nG,IAtCF,SAAkB8nG,EAAKpF,GAErB,GADKA,IAAMA,EAAOkF,IACbE,EAAK,OAAOpF,EACjB,SAASuF,IACP,IACEH,EAAMrB,EAAOqB,IAAQtzF,KAAKxW,MAAM8pG,EAClC,CAAE,MAAOtuG,GACPsuG,EAAMpF,CACR,CACF,CAKA,MAJmB,kBAARoF,IACTG,IACmB,kBAARH,GAAkBG,KAE1BJ,EAAkBC,GAChBA,EAD6BpF,CAEtC,EAuBE1mE,QARF,SAAsB8rE,GACpB,YAAoB,IAAhBrB,EAAOqB,IACCD,EAAkBC,EAChC,EAOF,IAIEI,EAAsB/iE,EAAW,CACnC,qCAAqCt6B,GAEnCA,EAAQs9F,SAAW,CACjB,UAEA,UAEA,UAEA,UAEA,UAEA,UAEA,UAEA,UAEA,UAEA,WAGFt9F,EAAQu9F,YAAc,OACtBv9F,EAAQw9F,UAAY,OACpBx9F,EAAQyG,WAAa,OACrBzG,EAAQy9F,WAAa,UACrBz9F,EAAQ09F,cAAgB,IAAiB,EAC3C,IAIEC,EAAgBrjE,EAAW,CAC7B,gCAAgCt6B,EAASkuB,GAEvC,IAAI0gE,EAAYT,IACZjE,EAAY7G,IACZiD,EAAeJ,IAAgBI,aAC/B5uC,EAASxpB,EAAOluB,QAAU,CAAC,EAC3B49F,EAAaP,IACjB3lD,EAAO4lD,SAAWM,EAAWN,SAC7B,IAAIC,EAAc7lD,EAAO6lD,YAAcK,EAAWL,YAClD7lD,EAAO8lD,UAAYI,EAAWJ,UAC9B,IAAI/2F,EAAaixC,EAAOjxC,WAAam3F,EAAWn3F,WAiFhD,SAASo3F,EAAS1mF,GAChB,GAAI+yE,EAAU/yE,IAAuB,kBAARA,EAAkB,OAAOA,EACtD,IAAI2mF,EAAU3mF,EAAI5nB,OAClB,GAA6B,QAAzBuuG,EAAQ5tG,OAAO,EAAG,GAAc,OAAOinB,EAC3C,IAAIthB,EAAQioG,EAAQjoG,MAAM,0BAC1B,IAAKA,EAAO,OAAOshB,EACnB,IAAIkzE,EAAQx0F,EAAM,GAAGtG,OAAOmH,MAAM,eAC9BqnG,EAA8B,MAAtBD,EAAQpnF,OAAO,IAA+B,IAAjB2zE,EAAM59F,OAC/C,IAAKsxG,GAA0B,IAAjB1T,EAAM59F,OAAc,OAAO0qB,EACzC,IAAK,IAAI9oB,EAAI,EAAGA,EAAIg8F,EAAM59F,OAAQ4B,IAAK,CACrC,IAAKg8F,EAAMh8F,GAAG5B,OAAQ,OAAO0qB,EAE7B,GADAkzE,EAAMh8F,GAAKupB,OAAOyyE,EAAMh8F,MAClBg8F,EAAMh8F,IAAM,GAChB,OAAO8oB,EAET,GAAU,IAAN9oB,EACEg8F,EAAMh8F,GAAK,IAAGg8F,EAAMh8F,GAAK,QACxB,GAAIg8F,EAAMh8F,IAAM,EACrB,OAAO8oB,CAEX,CACA,IAAI6mF,EAAS/uG,KAAK+b,MAAiB,IAAXq/E,EAAM,IAAY,KAAOp7F,KAAK+b,MAAiB,IAAXq/E,EAAM,IAAY,KAAOp7F,KAAK+b,MAAiB,IAAXq/E,EAAM,IACtG,OAAI0T,EAAc,QAAUC,EAAS,KAAO3T,EAAM,GAAK,IAChD,OAAS2T,EAAS,GAC3B,CAxGAtmD,EAAOumD,QAAU,SAASC,GACxB,IAAI9vE,EAAI8vE,EAAGrM,QACX,MAAO,OAAS5iG,KAAK+b,MAAMojB,EAAE3T,GAAK,KAAOxrB,KAAK+b,MAAMojB,EAAEgB,GAAK,KAAOngC,KAAK+b,MAAMojB,EAAE/O,GAAK,GACtF,EACAq4B,EAAO//B,IAAM,SAASwmF,GACpB,OAAOzmD,EAAOumD,QAAQrP,EAAUuP,GAClC,EACAzmD,EAAO/7C,QAAU,SAASwiG,GACxB,OAAOA,EAAOvP,EAAUuP,GAAMpL,WAAa,CAC7C,EACAr7C,EAAO0mD,WAAa,SAASD,EAAME,GACjC,IAAIjwE,EAAIwgE,EAAUuP,GAAMtM,QACxB,MAAO,QAAU5iG,KAAK+b,MAAMojB,EAAE3T,GAAK,KAAOxrB,KAAK+b,MAAMojB,EAAEgB,GAAK,KAAOngC,KAAK+b,MAAMojB,EAAE/O,GAAK,KAAOg/E,EAAK,GACnG,EACA3mD,EAAO/hD,QAAU,SAAS2oG,EAAOzsC,GAC/B,IAAI0sC,EAAK3P,EAAU0P,GAAOzM,QAC1B,GAAa,IAAT0M,EAAG9mF,EAAS,OAAOm3E,EAAU0P,GAAO1K,cACxC,IAAItgC,EAAKs7B,EAAU/8B,GAAQprD,GAAYorF,QACnC2M,EAAkB,IAATlrC,EAAG77C,EAAU67C,EAAK,CAC7B74C,EAAG,KAAO,EAAI64C,EAAG77C,GAAK67C,EAAG74C,EAAI64C,EAAG77C,EAChC2X,EAAG,KAAO,EAAIkkC,EAAG77C,GAAK67C,EAAGlkC,EAAIkkC,EAAG77C,EAChC4H,EAAG,KAAO,EAAIi0C,EAAG77C,GAAK67C,EAAGj0C,EAAIi0C,EAAG77C,GAE9BgnF,EAAS,CACXhkF,EAAG+jF,EAAO/jF,GAAK,EAAI8jF,EAAG9mF,GAAK8mF,EAAG9jF,EAAI8jF,EAAG9mF,EACrC2X,EAAGovE,EAAOpvE,GAAK,EAAImvE,EAAG9mF,GAAK8mF,EAAGnvE,EAAImvE,EAAG9mF,EACrC4H,EAAGm/E,EAAOn/E,GAAK,EAAIk/E,EAAG9mF,GAAK8mF,EAAGl/E,EAAIk/E,EAAG9mF,GAEvC,OAAOm3E,EAAU6P,GAAQ7K,aAC3B,EACAl8C,EAAOqZ,YAAc,SAASjzB,EAAOm1C,EAAQyrB,GAC3C,IAAIH,EAAK3P,EAAU9wD,GAAO+zD,QACtB8M,EAAK/P,EAAU3b,GAAQ4e,QACvB+M,EAAK,CACPnkF,EAAGikF,EAASH,EAAG9jF,GAAK,EAAIikF,GAAUC,EAAGlkF,EACrC2U,EAAGsvE,EAASH,EAAGnvE,GAAK,EAAIsvE,GAAUC,EAAGvvE,EACrC/P,EAAGq/E,EAASH,EAAGl/E,GAAK,EAAIq/E,GAAUC,EAAGt/E,GAEvC,OAAOuvE,EAAUgQ,GAAIhL,aACvB,EACAl8C,EAAOmnD,SAAW,SAASV,EAAMW,EAAaC,GAC5C,IAAIb,EAAKtP,EAAUuP,GAGnB,OAFsB,IAAlBD,EAAGnL,aAAkBmL,EAAKtP,EAAUl3C,EAAO/hD,QAAQwoG,EAAM13F,MAC9Cy3F,EAAGxL,SAAWoM,EAAcZ,EAAGn2F,QAAQ+2F,GAAer4F,EAAas4F,EAAab,EAAGl2F,OAAO+2F,GAAcxB,GACvG5jG,UAClB,EACA+9C,EAAOsnD,OAAS,SAASznF,EAAG6W,GAC1B,IAAI8vE,EAAKtP,EAAUxgE,GACnB7W,EAAEmB,MAAM,CAAEsmF,OAAQtnD,EAAOumD,QAAQC,GAAK,iBAAkBA,EAAGnL,YAC7D,EACAr7C,EAAOr0C,KAAO,SAASkU,EAAG6W,GACxB,IAAI8vE,EAAKtP,EAAUxgE,GACnB7W,EAAEmB,MAAM,CACNrV,KAAMq0C,EAAOumD,QAAQC,GACrB,eAAgBA,EAAGnL,YAEvB,EACAr7C,EAAOunD,MAAQ,SAASpyG,GACtB,GAAKA,GAAkC,kBAAdA,EAAzB,CACA,IACIwB,EAAGiG,EAAGhH,EAAK6pB,EADX7D,EAAOhkB,OAAOgkB,KAAKzmB,GAEvB,IAAKwB,EAAI,EAAGA,EAAIilB,EAAK7mB,OAAQ4B,IAG3B,GADA8oB,EAAMtqB,EADNS,EAAMgmB,EAAKjlB,IAEwB,UAA/Bf,EAAI4C,OAAO5C,EAAIb,OAAS,GAC1B,GAAIwJ,MAAMiI,QAAQiZ,GAChB,IAAK7iB,EAAI,EAAGA,EAAI6iB,EAAI1qB,OAAQ6H,IAAK6iB,EAAI7iB,GAAKupG,EAAS1mF,EAAI7iB,SAClDzH,EAAUS,GAAOuwG,EAAS1mF,QAC5B,GAAoC,eAAhC7pB,EAAI4C,OAAO5C,EAAIb,OAAS,KAAwBwJ,MAAMiI,QAAQiZ,GACvE,IAAK7iB,EAAI,EAAGA,EAAI6iB,EAAI1qB,OAAQ6H,IACtB2B,MAAMiI,QAAQiZ,EAAI7iB,MAAK6iB,EAAI7iB,GAAG,GAAKupG,EAAS1mF,EAAI7iB,GAAG,UAEpD,GAAI2B,MAAMiI,QAAQiZ,GAAM,CAC7B,IAAI+nF,EAAM/nF,EAAI,GACd,IAAKlhB,MAAMiI,QAAQghG,IAAQA,GAAsB,kBAARA,EACvC,IAAK5qG,EAAI,EAAGA,EAAI6iB,EAAI1qB,OAAQ6H,IAAKojD,EAAOunD,MAAM9nF,EAAI7iB,GAEtD,MAAW6iB,GAAsB,kBAARA,IAAqBmvE,EAAanvE,IAAMugC,EAAOunD,MAAM9nF,EAnBzB,CAqBzD,CA0BF,IAIEgoF,EAAuB7kE,EAAW,CACpC,gCAAgCt6B,EAASkuB,GAEvCA,EAAOluB,QAAU,CAIfo/F,iBAAkB,IAClBC,iBAAkB,IAElBC,YAAa,GAEjB,IAIEC,EAAgBjlE,EAAW,CAC7B,mBAAmBt6B,GAEjBA,EAAQw/F,QAAU,SAASppG,EAAMqpG,EAAMC,EAAWC,GAChD,IAAIC,GAAYH,GAAQ,KAAOC,EAAY,GAAK,KAC5CG,GAAqC,IAAnBF,EAA2B,GAAK,IACtD,MAAa,OAATvpG,EACK,IAAIigB,OAAOwpF,EAAkB,6CAA+CD,GAE9E,IAAIvpF,OAAOwpF,EAAkBzpG,EAAO,uBAAyBwpG,EACtE,CACF,IAIEE,EAAiBxlE,EAAW,CAC9B,oBAAoBt6B,GAElB,IAAIkqF,EAAY7G,IACZuL,EAAYT,IACZgJ,EAAaV,IAAiBU,WAC9B4I,EAAiBvF,IACjBwF,EAAcrE,IACdsE,EAAStC,IACT2B,EAAcH,IAAuBG,YACrChT,EAAiBrC,IACjBiW,EAAeX,IAAgBC,QAC/BtR,EAAUD,IAAcC,QACxB1H,EAAsBN,IAAgBM,oBACtC+C,EAAmBrD,IAAgBqD,iBACnChB,EAAuBrC,IAAgBqC,qBA2U3C,SAAS4X,EAAS3wG,EAAOq/F,GACvB,IAAIuR,EAAepgG,EAAQqgG,cAAcxR,EAAK8I,SAC9C,GAAI9I,EAAKiK,SAAWtS,EAAoBh3F,GAAQ,OAAO,EACvD,GAAI4wG,EAAaE,iBACf,OAAOF,EAAaE,iBAAiB9wG,EAAOq/F,GAE9C,IAAI0R,EAAS,CAAC,EACVtuC,EAAMsuC,EACNC,EAAW,CAAEprG,IAAK,SAASs5B,GAC7BujC,EAAMvjC,CACR,GAEA,OADA0xE,EAAaK,eAAejxG,EAAOgxG,EAAUD,EAAQ1R,GAC9C58B,IAAQsuC,CACjB,CAvVAvgG,EAAQqgG,cAAgB,CACtBK,WAAY,CAEVD,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,GACnC8I,EAAQvrG,IACNoxF,EAAoB93D,GAAKA,EAAI66D,EAAiB76D,GAAK65D,EAAqB75D,GAAKmpE,EAEjF,GAEF+I,WAAY,CACVH,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,EAAMhJ,GACrCA,EAAKgS,eAAcnyE,GAAKA,IACI,IAA5BmgE,EAAK/3E,OAAOhnB,QAAQ4+B,GAAWiyE,EAAQvrG,IAAIyiG,GAC1C8I,EAAQvrG,IAAIs5B,EACnB,EACA4xE,iBAAkB,SAAS5xE,EAAGmgE,GACxBA,EAAKgS,eAAcnyE,GAAKA,GAE5B,IADA,IAAI5X,EAAS+3E,EAAK/3E,OACTzoB,EAAI,EAAGA,EAAIyoB,EAAOrqB,OAAQ4B,IAAK,CACtC,IAAIkG,EAAIpF,OAAO2nB,EAAOzoB,IACtB,GAAoB,MAAhBkG,EAAEmiB,OAAO,IAAyC,MAA3BniB,EAAEmiB,OAAOniB,EAAE9H,OAAS,IAE7C,GADY,IAAI4pB,OAAO9hB,EAAErE,OAAO,EAAGqE,EAAE9H,OAAS,IACpCgnB,KAAKib,GAAI,OAAO,OACrB,GAAIA,IAAM5X,EAAOzoB,GAAI,OAAO,CACrC,CACA,OAAO,CACT,GAEFyyG,QAAS,CACPL,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,IACzB,IAANnpE,IAAoB,IAANA,EAAaiyE,EAAQvrG,IAAIs5B,GACtCiyE,EAAQvrG,IAAIyiG,EACnB,GAEFtmF,OAAQ,CACNkvF,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,EAAMhJ,GACrCtF,EAAiB76D,KAAIA,EAAI65D,EAAqB75D,KAC7Cw7D,EAAUx7D,SAAmB,IAAbmgE,EAAK94E,KAAkB2Y,EAAImgE,EAAK94E,UAAoB,IAAb84E,EAAK/4E,KAAkB4Y,EAAImgE,EAAK/4E,IAC1F6qF,EAAQvrG,IAAIyiG,GACP8I,EAAQvrG,KAAKs5B,EACtB,GAEFqyE,QAAS,CACPN,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,EAAMhJ,IACD,KAAnCA,EAAK+I,QAAU,IAAI9nG,QAAQ4+B,IAI5B66D,EAAiB76D,KAAIA,EAAI65D,EAAqB75D,IAC9CA,EAAI,IAAMw7D,EAAUx7D,SAAmB,IAAbmgE,EAAK94E,KAAkB2Y,EAAImgE,EAAK94E,UAAoB,IAAb84E,EAAK/4E,KAAkB4Y,EAAImgE,EAAK/4E,IACnG6qF,EAAQvrG,IAAIyiG,GACP8I,EAAQvrG,KAAKs5B,IANlBiyE,EAAQvrG,IAAIs5B,EAOhB,GAEFzwB,OAAQ,CAENwiG,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,EAAMhJ,GACzC,GAAiB,kBAANngE,EAAgB,CACzB,IAAIsyE,EAA0B,kBAANtyE,GACJ,IAAhBmgE,EAAKqJ,QAAoB8I,EACxBL,EAAQvrG,IAAIjG,OAAOu/B,IADiBiyE,EAAQvrG,IAAIyiG,EAEvD,MAAWhJ,EAAKoJ,UAAYvpE,EAAGiyE,EAAQvrG,IAAIyiG,GACtC8I,EAAQvrG,IAAIs5B,EACnB,GAEF1sB,MAAO,CACLy+F,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,GAC/BtO,EAAiB76D,KAAIA,EAAI65D,EAAqB75D,IAC9CkgE,EAAUlgE,GAAGyC,UAAWwvE,EAAQvrG,IAAIs5B,GACnCiyE,EAAQvrG,IAAIyiG,EACnB,GAEFoJ,UAAW,CACTR,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,GAI9B5hG,MAAMiI,QAAQwwB,IAAOA,EAAEjiC,QACnBiiC,EAAErG,OAJX,SAAiBqvB,GACf,OAAOk3C,EAAUl3C,GAAQvmB,SAC3B,IAE2BwvE,EAAQvrG,IAAIs5B,GADHiyE,EAAQvrG,IAAIyiG,EAGlD,GAEFqJ,WAAY,CACVT,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,GACnC8I,EAAQvrG,IAAI4qG,EAAY7qG,IAAIu5B,EAAGmpE,GACjC,GAEF1tC,MAAO,CACLs2C,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,GAC/BtO,EAAiB76D,KAAIA,EAAI65D,EAAqB75D,IACxC,SAANA,EAAciyE,EAAQvrG,IAAI,QACpB80F,EAAUx7D,GACfiyE,EAAQvrG,IAAI84F,GAASx/D,EAAG,MADLiyE,EAAQvrG,IAAIyiG,EAEtC,GAEFsJ,UAAW,CACTV,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,EAAMhJ,GACzC,IAAI75D,EAAQ65D,EAAK75D,OAASkrE,EAAarI,GACtB,kBAANnpE,GAAkBsG,EAAMvhB,KAAKib,GACtCiyE,EAAQvrG,IAAIs5B,GAGdiyE,EAAQvrG,IAAIyiG,EACd,EACAyI,iBAAkB,SAAS5xE,EAAGmgE,GAC5B,IAAIgJ,EAAOhJ,EAAKgJ,KAChB,OAAInpE,IAAMmpE,GACO,kBAANnpE,KACPwxE,EAAarI,GAAMpkF,KAAKib,EAE9B,GAEF0yE,SAAU,CACRX,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,EAAMhJ,GACzC,IAAwC,KAAnCA,EAAK+I,QAAU,IAAI9nG,QAAQ4+B,GAIhC,GAAiB,kBAANA,EAAX,CAMA,IAFA,IAAI2yE,EAAS3yE,EAAEh4B,MAAM,KACjBrI,EAAI,EACDA,EAAIgzG,EAAO50G,QAAQ,CACxB,IAAI60G,EAAKD,EAAOhzG,IACgB,IAA5BwgG,EAAK2J,MAAM1oG,QAAQwxG,IAAcD,EAAOvxG,QAAQwxG,GAAMjzG,EACxDgzG,EAAOv1C,OAAOz9D,EAAG,GACZA,GACT,CACKgzG,EAAO50G,OACPk0G,EAAQvrG,IAAIisG,EAAOpuG,KAAK,MADT0tG,EAAQvrG,IAAIyiG,EAThC,MAFE8I,EAAQvrG,IAAIyiG,QAJZ8I,EAAQvrG,IAAIs5B,EAiBhB,GAEF6yE,IAAK,CACHd,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,QACzB,IAANnpE,EACFiyE,EAAQvrG,IAAIyiG,GAEZ8I,EAAQvrG,IACNm0F,EAAiB76D,GAAK65D,EAAqB75D,GAAKA,EAGtD,GAEF8yE,WAAY,CAMVf,eAAgB,SAAS/xE,EAAGiyE,EAAS9I,EAAMhJ,GACzC,SAAS4S,EAAWC,EAAIC,EAAOC,GAC7B,IAAI3vC,EACAk5B,EAAW,CAAE/1F,IAAK,SAASysG,GAC7B5vC,EAAM4vC,CACR,GAGA,YAFc,IAAVD,IAAkBA,EAAQD,EAAM9J,MACpC73F,EAAQqgG,cAAcsB,EAAMhK,SAAS8I,eAAeiB,EAAIvW,EAAUyW,EAAOD,GAClE1vC,CACT,CAEA,GADIs3B,EAAiB76D,KAAIA,EAAI65D,EAAqB75D,IAC7C83D,EAAoB93D,GAAzB,CAIA,IAOIrgC,EAAGiG,EAAGutC,EAAKzlB,EAAM0lF,EAAMC,EAPvBC,EAA2B,IAApBnT,EAAKoT,YAAwC,QAApBpT,EAAKoT,YAAwBhsG,MAAMiI,QAAQwwB,IAAM83D,EAAoB93D,EAAE,IACvGwzE,EAAQrT,EAAKqT,MACbC,EAAO,GACPC,EAAansG,MAAMiI,QAAQgkG,GAC3BG,EAAeD,GAAcJ,GAAQxb,EAAoB0b,EAAM,IAC/DI,EAAiBN,GAAQI,IAAeC,EACxCljG,EAAMijG,IAAeE,EAAiBJ,EAAMz1G,OAASiiC,EAAEjiC,OAG3D,GADAorG,EAAO5hG,MAAMiI,QAAQ25F,GAAQA,EAAO,GAChCmK,EACF,IAAK3zG,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAMnB,IALA8zG,EAAK9zG,GAAK,GACVwzC,EAAM2kD,EAAoB93D,EAAErgC,IAAMqgC,EAAErgC,GAAK,GACrByzG,EAAhBQ,EAAuBJ,EAAMz1G,OACxB21G,EAAmBF,EAAM7zG,GAAG5B,OACzBo1C,EAAIp1C,OACX6H,EAAI,EAAGA,EAAIwtG,EAAMxtG,IACA8nB,EAAhBkmF,EAAuBJ,EAAM5tG,GACxB8tG,EAAmBF,EAAM7zG,GAAGiG,GACzB4tG,OAEC,KADbH,EAAON,EAAW5/D,EAAIvtC,GAAI8nB,GAAOy7E,EAAKxpG,IAAM,IAAIiG,OAC3B6tG,EAAK9zG,GAAGiG,GAAKytG,QAItC,IAAK1zG,EAAI,EAAGA,EAAI8Q,EAAK9Q,SAEN,KADb0zG,EAAON,EAAW/yE,EAAErgC,GAAI+zG,EAAaF,EAAM7zG,GAAK6zG,EAAOrK,EAAKxpG,OACvC8zG,EAAK9zG,GAAK0zG,GAGnCpB,EAAQvrG,IAAI+sG,EA/BZ,MAFExB,EAAQvrG,IAAIyiG,EAkChB,EACAyI,iBAAkB,SAAS5xE,EAAGmgE,GAC5B,IAAKrI,EAAoB93D,GAAI,OAAO,EACpC,IAAIwzE,EAAQrT,EAAKqT,MACbE,EAAansG,MAAMiI,QAAQgkG,GAC3BF,EAA2B,IAApBnT,EAAKoT,WAChB,IAAKpT,EAAK0T,YAAc7zE,EAAEjiC,SAAWy1G,EAAMz1G,OAAQ,OAAO,EAC1D,IAAK,IAAI4B,EAAI,EAAGA,EAAIqgC,EAAEjiC,OAAQ4B,IAC5B,GAAI2zG,EAAM,CACR,IAAKxb,EAAoB93D,EAAErgC,MAAQwgG,EAAK0T,YAAc7zE,EAAErgC,GAAG5B,SAAWy1G,EAAM7zG,GAAG5B,OAC7E,OAAO,EAET,IAAK,IAAI6H,EAAI,EAAGA,EAAIo6B,EAAErgC,GAAG5B,OAAQ6H,IAC/B,IAAK6rG,EAASzxE,EAAErgC,GAAGiG,GAAI8tG,EAAaF,EAAM7zG,GAAGiG,GAAK4tG,GAChD,OAAO,CAGb,MAAO,IAAK/B,EAASzxE,EAAErgC,GAAI+zG,EAAaF,EAAM7zG,GAAK6zG,GAAQ,OAAO,EAEpE,OAAO,CACT,IAGJliG,EAAQwiG,OAAS,SAASC,EAAaC,EAAcC,EAAYC,EAAW/K,GAC1E,IAAIhJ,EAAOvC,EAAeqW,EAAYC,GAAWztG,MAC7C0tG,EAASvW,EAAemW,EAAaG,GACrCjC,EAAUrU,EAAeoW,EAAcE,GACvCl0E,EAAIm0E,EAAO1tG,MACX2tG,EAAWJ,EAAaK,UAM5B,QALU,IAANr0E,GAAgBo0E,IAClBp0E,EAAI49D,EAAewW,EAAUF,GAAWztG,MACxC2tG,EAAW,QAEA,IAATjL,IAAiBA,EAAOhJ,EAAKgJ,MAC7BhJ,EAAKiK,QAAS,CAChB,GAAItS,EAAoB93D,GAEtB,OADAiyE,EAAQvrG,IAAIs5B,GACLA,EAEP,GAAI66D,EAAiB76D,GAGnB,OAFAA,EAAI65D,EAAqB75D,GACzBiyE,EAAQvrG,IAAIs5B,GACLA,CAGb,CACA,IAAI+xE,EAAiBzgG,EAAQqgG,cAAcxR,EAAK8I,SAAS8I,eACzDA,EAAe/xE,EAAGiyE,EAAS9I,EAAMhJ,GACjC,IAAI58B,EAAM0uC,EAAQxrG,MAMlB,OALI2tG,GAAY7wC,IAAQ4lC,IAASsI,EAASzxE,EAAGmgE,KAE3C4R,EADA/xE,EAAI49D,EAAewW,EAAUF,GAAWztG,MACtBwrG,EAAS9I,EAAMhJ,GACjC58B,EAAM0uC,EAAQxrG,OAET88D,CACT,EACAjyD,EAAQgjG,QAAU,SAASP,EAAaC,EAAcC,EAAYC,EAAW/K,GAC3E,IAAIgL,EAASvW,EAAemW,EAAaG,GACrCjC,EAAU3gG,EAAQwiG,OAAOC,EAAaC,EAAcC,EAAYC,EAAW/K,GAC3EoL,EAAQJ,EAAO1tG,MACnB,YAAiB,IAAV8tG,GAA8B,OAAVA,GAAiBtC,CAC9C,EACA3gG,EAAQkjG,WAAa,SAASV,EAAQl5D,EAAM65D,EAAStU,GAC9CA,IAAMA,EAAO,CAAC,GACnBsU,EAAUhM,EAAW,CAAC,EAAGgM,GAEzB,IAAIlxC,EAAM,CACR+lC,OAAQwK,EAAOl5D,EAAO,WAFxB65D,EAAUhM,EAAWgM,EAAStU,EAAKuU,cAAgB,CAAC,IAETpL,QACzC3jG,KAAMmuG,EAAOl5D,EAAO,QAAS65D,EAAQ9uG,MACrC2N,MAAOwgG,EAAOl5D,EAAO,SAAU65D,EAAQnhG,OACvC42D,OAAQ4pC,EAAOl5D,EAAO,UAAW65D,EAAQvqC,QACzClgD,MAAO8pF,EAAOl5D,EAAO,SAAU65D,EAAQzqF,QAKzC,GAHKm2E,EAAKsJ,gBAAelmC,EAAIz2C,QAAUgnF,EAAOl5D,EAAO,WAAY65D,EAAQ3nF,UACpEqzE,EAAK0J,qBAAoBtmC,EAAIqmC,aAAekK,EAAOl5D,EAAO,gBAAiB65D,EAAQ7K,eACnFzJ,EAAKwJ,iBAAgBpmC,EAAImmC,SAAWoK,EAAOl5D,EAAO,YAAa65D,EAAQ/K,YACvEvJ,EAAK6J,aAAc,CACtB,IAAI2K,EAAaF,EAAQ1K,OACN,SAAf4K,GAAyBxU,EAAK8J,iBAChC0K,EAAa,QAEfpxC,EAAIwmC,OAAS+J,EAAOl5D,EAAO,UAAW+5D,EACxC,CACA,OAAOpxC,CACT,EACAjyD,EAAQsjG,cAAgB,SAASd,EAAQl5D,EAAMi6D,EAAaC,GAE1D,GADYhB,EAAOl5D,EAAO,UACf,CACTk5D,EAAOl5D,EAAO,aACdk5D,EAAOl5D,EAAO,SACd,IACIm6D,EAAyB,YADdjB,EAAOl5D,EAAO,aAE7B,IAAKk6D,EAAqB,CACxB,IAAItgF,EAAUs/E,EACZl5D,EAAO,WACPm6D,EAAYF,OAAc,GAE5Bf,EACEl5D,EAAO,WACPm6D,EAAYxD,EAAOpB,SAAS37E,GAAWqgF,EAE3C,CACAf,EACEl5D,EAAO,aACPm6D,EAAY,GAAM,EAEtB,CACF,EACAzjG,EAAQ0jG,gBAAkB,SAASC,EAASC,EAAUC,GACpD,IAGIhM,EAHAiM,EAAcF,EAASG,QAAQpB,WAC/B5K,EAAQ+L,EAAYvI,UAAYuI,EAAc/D,EAC9CiE,EAASjM,EAAMwD,UAEnB,GAA8B,IAA1BsI,EAAUI,YAAmB,CAC/B,IAAIzL,EAAwB,QAAhBwL,EAAOnM,KAAiBmM,EAAOxL,MAAMnoG,QAAU2zG,EAAOnM,KAAKnhG,MAAM,KAC7E8hG,EAAM1sC,OAAO0sC,EAAM1oG,QAAQ,QAAS,GACpC+nG,EAAOW,EAAMvlG,KAAK,IACpB,CACA,OAAO+M,EAAQwiG,OAAOmB,EAASC,EAAU7L,EAAO,YAAaF,EAC/D,EACA73F,EAAQkkG,6BAA+B,SAASN,EAAUpB,GACxD,GAAKoB,EAASjtF,OAAd,CACA,IAEIwtF,EACAC,EAHAC,EAAKT,EAASjtF,OAAOhb,aACd,IAAP0oG,IAGC7d,EAAoB6d,IAAQT,EAAS98F,UAAa88F,EAASU,aAC9DH,EAAUE,EACVD,EAAW9E,EAAc+E,GAE3B7B,EAAO,0BAA2B2B,GAClC3B,EAAO,4BAA6B4B,GAVR,CAW9B,EAeApkG,EAAQmgG,SAAWA,CACrB,IAIEoE,EAAsBjqE,EAAW,CACnC,8BAA8Bt6B,EAASkuB,GAErC,IAAIs2E,EAAmB,CACrBC,WAAY,CACV9M,QAAS,UACTE,MAAM,GAER6M,YAAa,CACX/M,QAAS,UACTE,MAAM,GAER8M,gBAAiB,CACfhN,QAAS,SACTE,KAAM,IAER+M,SAAU,CACRjN,QAAS,UACTE,MAAM,GAERgN,MAAO,CACLC,mBAAoB,CAClBnN,QAAS,UACTE,MAAM,GAERkN,eAAgB,CACdpN,QAAS,UACTE,MAAM,GAERmN,eAAgB,CACdrN,QAAS,UACTE,MAAM,GAERoN,cAAe,CACbtN,QAAS,UACTE,MAAM,GAERqN,iBAAkB,CAChBvN,QAAS,UACTE,MAAM,GAERsN,kBAAmB,CACjBxN,QAAS,UACTE,MAAM,GAERuN,eAAgB,CACdzN,QAAS,UACTE,MAAM,GAERwN,WAAY,CACV1N,QAAS,UACTE,MAAM,GAERyN,cAAe,CACb3N,QAAS,UACTE,MAAM,GAER0N,UAAW,CACT5N,QAAS,UACTE,MAAM,IAGV2N,cAAe,CACb7N,QAAS,UACTE,MAAM,GAER4N,YAAa,CACX9N,QAAS,UACTE,MAAM,GAER6N,WAAY,CACV/N,QAAS,UACTE,MAAM,GAER8N,UAAW,CACThO,QAAS,UACTE,MAAM,GAER+N,aAAc,CACZjO,QAAS,SACTE,KAAM,EACN9hF,IAAK,EACLD,IAAK,IAEP+vF,WAAY,CACVlO,QAAS,WACTa,MAAO,CAAC,YAAa,OAAQ,MAAO,SAAU,OAC9CZ,OAAQ,EAAC,GAAM,GACfC,KAAM,gBAERiO,YAAa,CACXnO,QAAS,aACT7gF,OAAQ,EAAC,EAAO,QAAS,WAAY,kBACrC+gF,KAAM,kBAERkO,iBAAkB,CAChBpO,QAAS,SACTE,KAAM,IACN9hF,IAAK,GAEPiwF,oBAAqB,CACnBrO,QAAS,UACTE,MAAM,GAERoO,wBAAyB,CACvBtO,QAAS,UACTE,MAAM,GAERqO,SAAU,CACRvO,QAAS,UACTE,MAAM,GAERsO,SAAU,CACRxO,QAAS,UACTE,MAAM,GAERuO,SAAU,CACRzO,QAAS,SACTE,KAAM,aACNI,SAAS,GAEXoO,SAAU,CACR1O,QAAS,UACTE,MAAM,GAERyO,YAAa,CACX3O,QAAS,MACTE,MAAM,GAER0O,eAAgB,CACd5O,QAAS,aACT7gF,OAAQ,CAAC,SAAS,GAAM,GACxB+gF,KAAM,SAER2O,gBAAiB,CACf7O,QAAS,UACTE,MAAM,GAER4O,sBAAuB,CACrB9O,QAAS,UACTE,MAAM,GAER6O,uBAAwB,CACtB/O,QAAS,MACTE,KAAM,IAER8O,oBAAqB,CACnBhP,QAAS,MACTE,KAAM,IAER+O,eAAgB,CACdjP,QAAS,MACTE,MAAM,GAERgP,qBAAsB,CACpBlP,QAAS,MACTE,KAAM,CAAC,GAETiP,YAAa,CACXnP,QAAS,UACTE,MAAM,GAERkP,UAAW,CACTpP,QAAS,UACTE,MAAM,GAERmP,iBAAkB,CAChBrP,QAAS,SACTE,KAAM,EACN9hF,IAAK,EACLD,IAAK,GAEPmxF,cAAe,CACbtP,QAAS,MACTE,KAAM,eAERqP,YAAa,CACXvP,QAAS,SACTM,SAAS,EACTJ,KAAM,wBAERsP,kBAAmB,CACjBxP,QAAS,SACTE,KAAM,MAERuP,QAAS,CACPzP,QAAS,UACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,GAERwP,gBAAiB,CACf1P,QAAS,UACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,GAERyP,YAAa,CACX3P,QAAS,UACT5hF,IAAK,EACL8hF,KAAM,GAERroE,OAAQ,CACNmoE,QAAS,SACTE,KAAM,SAER0P,QAAS,CACP5P,QAAS,MACTE,KAAM,CAAC,IAGP2P,EAAa,CAAC,GAClB,SAASC,EAAM1Q,EAAKzkF,GAClB,IAAK,IAAI/d,KAAKwiG,EAAK,CACjB,IAAI/4F,EAAM+4F,EAAIxiG,GACVyJ,EAAI25F,QACNrlF,EAAO/d,GAAKyJ,EAAI65F,MAEXvlF,EAAO/d,KACV+d,EAAO/d,GAAK,CAAC,GAEfkzG,EAAMzpG,EAAKsU,EAAO/d,IAEtB,CACF,CACAkzG,CAAMjD,EAAkBgD,GACxBt5E,EAAOluB,QAAU,CACfwkG,mBACAgD,aAEJ,IAIEE,EAAmBptE,EAAW,CAChC,sBAAsBt6B,EAASkuB,GAE7B,IAAIkQ,EAAKD,IACL+rD,EAAY7G,IACZskB,EAAW,GACfz5E,EAAOluB,QAAU,SAASqG,EAAMuhG,GAC9B,IAAgC,IAA5BD,EAAS73G,QAAQuW,GAArB,CACAshG,EAAS36G,KAAKqZ,GACd,IAAIwhG,EAAK,IACL3d,EAAU0d,GAAgBC,EAAKD,EACR,SAAlBA,IAA0BC,EAAK,KACxC,IAAIC,EAAoB1pE,EAAGsI,OAAO,QAAQQ,UAAU,oBAAoB6B,KAAK,CAAC,IAC9E++D,EAAkBl9D,QAAQp6C,OAAO,OAAOi5C,QAAQ,mBAAmB,GACvDq+D,EAAkB5gE,UAAU,kBAAkB6B,KAAK4+D,GAQzD/8D,QAAQp6C,OAAO,OAAOi5C,QAAQ,iBAAiB,GAAM/wB,MAAM,UAAW,GAAG8wB,MAAK,SAASu+D,GAC3F,IAAIC,EAAO5pE,EAAGsI,OAAOt6C,MACrB47G,EAAKx3G,OAAO,UAAUi5C,QAAQ,kBAAkB,GAAMK,KAAK,WAAW/E,GAAG,SAAS,WAChFijE,EAAKzkG,aAAarN,KAAK+xG,EACzB,IAGA,IAFA,IAAI9oF,EAAI6oF,EAAKx3G,OAAO,KAChB03G,EAAQH,EAASrxG,MAAM,eAClBrI,EAAI,EAAGA,EAAI65G,EAAMz7G,OAAQ4B,IAC5BA,GAAG8wB,EAAE3uB,OAAO,MAChB2uB,EAAE3uB,OAAO,QAAQ6V,KAAK6hG,EAAM75G,IAER,UAAlBu5G,EACFI,EAAKzkG,aAAaE,SAAS,KAAKiV,MAAM,UAAW,GAEjDsvF,EAAKzkG,aAAaE,SAAS,KAAKiV,MAAM,UAAW,GAAGnV,aAAa4L,MAAM04F,GAAI3xG,KAAK+xG,EAEpF,GA/ByC,CAQzC,SAASA,EAAS1kG,GAChBA,EAAWE,SAAS,KAAKiV,MAAM,UAAW,GAAG8wB,KAAK,OAAO,SAASu+D,GAChE,IAAII,EAAYR,EAAS73G,QAAQi4G,IACd,IAAfI,GAAkBR,EAAS77C,OAAOq8C,EAAW,GACjD/pE,EAAGsI,OAAOt6C,MAAMm3C,QAClB,GACF,CAkBF,CACF,IAIE6kE,EAAkB9tE,EAAW,CAC/B,qBAAqBt6B,EAASkuB,GAE5B,IAAIs5E,EAAajD,IAAsBiD,WACnCa,EAAWX,IACXY,EAAUp6E,EAAOluB,QAAU,CAAC,EAChCsoG,EAAQ13D,IAAM,WACZ,IAAIviD,EACJ,GAAIm5G,EAAWJ,QAAU,EAAG,CAC1B,IAAImB,EAAW,CAAC,QAChB,IAAKl6G,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,IAChCk6G,EAASv7G,KAAKoM,UAAU/K,IAE1Bm6G,QAAQC,MAAMhvG,MAAM+uG,QAASD,EAC/B,CACA,GAAIf,EAAWH,gBAAkB,EAAG,CAClC,IAAIa,EAAQ,GACZ,IAAK75G,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,IAChC65G,EAAMl7G,KAAKoM,UAAU/K,IAEvBg6G,EAASH,EAAMj1G,KAAK,QAAS,OAC/B,CACF,EACAq1G,EAAQI,KAAO,WACb,IAAIr6G,EACJ,GAAIm5G,EAAWJ,QAAU,EAAG,CAC1B,IAAImB,EAAW,CAAC,SAChB,IAAKl6G,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,IAChCk6G,EAASv7G,KAAKoM,UAAU/K,IAE1Bm6G,QAAQC,MAAMhvG,MAAM+uG,QAASD,EAC/B,CACA,GAAIf,EAAWH,gBAAkB,EAAG,CAClC,IAAIa,EAAQ,GACZ,IAAK75G,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,IAChC65G,EAAMl7G,KAAKoM,UAAU/K,IAEvBg6G,EAASH,EAAMj1G,KAAK,QAAS,QAC/B,CACF,EACAq1G,EAAQ9/F,MAAQ,WACd,IAAIna,EACJ,GAAIm5G,EAAWJ,QAAU,EAAG,CAC1B,IAAImB,EAAW,CAAC,UAChB,IAAKl6G,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,IAChCk6G,EAASv7G,KAAKoM,UAAU/K,IAE1Bm6G,QAAQhgG,MAAM/O,MAAM+uG,QAASD,EAC/B,CACA,GAAIf,EAAWH,gBAAkB,EAAG,CAClC,IAAIa,EAAQ,GACZ,IAAK75G,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,IAChC65G,EAAMl7G,KAAKoM,UAAU/K,IAEvBg6G,EAASH,EAAMj1G,KAAK,QAAS,QAC/B,CACF,CACF,IAIE01G,EAAeruE,EAAW,CAC5B,kBAAkBt6B,EAASkuB,GAEzBA,EAAOluB,QAAU,WACjB,CACF,IAIE4oG,EAAsBtuE,EAAW,CACnC,yBAAyBt6B,EAASkuB,GAEhCA,EAAOluB,QAAU,SAAoBvP,EAAO2rB,GAC1C,GAAIA,aAAgB/F,OAAQ,CAE1B,IADA,IAAIwyF,EAAUzsF,EAAKziB,WACVtL,EAAI,EAAGA,EAAIoC,EAAMhE,OAAQ4B,IAChC,GAAIoC,EAAMpC,aAAcgoB,QAAU5lB,EAAMpC,GAAGsL,aAAekvG,EACxD,OAAOp4G,EAGXA,EAAMzD,KAAKovB,EACb,MAAYA,GAAiB,IAATA,IAAwC,IAAzB3rB,EAAMX,QAAQssB,IAAc3rB,EAAMzD,KAAKovB,GAC1E,OAAO3rB,CACT,CACF,IAIEq4G,EAAiBxuE,EAAW,CAC9B,iCAAiCt6B,EAASkuB,GACxCA,EAAOluB,QACP,WACE,IAAIiyD,EAAM,IAAIu1B,aAAa,IAiB3B,OAhBAv1B,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CACF,IAIE82C,EAAgBzuE,EAAW,CAC7B,gCAAgCt6B,EAASkuB,GACvCA,EAAOluB,QACP,SAAeyX,GACb,IAAIw6C,EAAM,IAAIu1B,aAAa,IAiB3B,OAhBAv1B,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACLw6C,CACT,CACF,IAIE+2C,GAAe1uE,EAAW,CAC5B,+BAA+Bt6B,EAASkuB,GACtCA,EAAOluB,QACP,SAAciyD,EAAKx6C,GAiBjB,OAhBAw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACLw6C,CACT,CACF,IAIEg3C,GAAmB3uE,EAAW,CAChC,mCAAmCt6B,EAASkuB,GAC1CA,EAAOluB,QACP,SAAmBiyD,GAiBjB,OAhBAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CACF,IAIEi3C,GAAoB5uE,EAAW,CACjC,oCAAoCt6B,EAASkuB,GAC3CA,EAAOluB,QACP,SAAmBiyD,EAAKx6C,GACtB,GAAIw6C,IAAQx6C,EAAG,CACb,IAAI0xF,EAAM1xF,EAAE,GAAI2xF,EAAM3xF,EAAE,GAAI4xF,EAAM5xF,EAAE,GAAI6xF,EAAM7xF,EAAE,GAAI8xF,EAAM9xF,EAAE,GAAI+xF,EAAM/xF,EAAE,IACxEw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,IACXw6C,EAAI,GAAKk3C,EACTl3C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,IACXw6C,EAAI,GAAKm3C,EACTn3C,EAAI,GAAKq3C,EACTr3C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMo3C,EACVp3C,EAAI,IAAMs3C,EACVt3C,EAAI,IAAMu3C,CACZ,MACEv3C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,IACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,IACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,GACZw6C,EAAI,IAAMx6C,EAAE,GACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IAEd,OAAOw6C,CACT,CACF,IAIEw3C,GAAiBnvE,EAAW,CAC9B,iCAAiCt6B,EAASkuB,GACxCA,EAAOluB,QACP,SAAgBiyD,EAAKx6C,GACnB,IAAIiyF,EAAMjyF,EAAE,GAAI0xF,EAAM1xF,EAAE,GAAI2xF,EAAM3xF,EAAE,GAAI4xF,EAAM5xF,EAAE,GAAIkyF,EAAMlyF,EAAE,GAAImyF,EAAMnyF,EAAE,GAAI6xF,EAAM7xF,EAAE,GAAI8xF,EAAM9xF,EAAE,GAAIoyF,EAAMpyF,EAAE,GAAIqyF,EAAMryF,EAAE,GAAIsyF,EAAMtyF,EAAE,IAAK+xF,EAAM/xF,EAAE,IAAKuyF,EAAMvyF,EAAE,IAAKwyF,EAAMxyF,EAAE,IAAKyyF,EAAMzyF,EAAE,IAAK0yF,EAAM1yF,EAAE,IAAK2yF,EAAMV,EAAME,EAAMT,EAAMQ,EAAKU,EAAMX,EAAMJ,EAAMF,EAAMO,EAAKW,EAAMZ,EAAMH,EAAMF,EAAMM,EAAKY,EAAMpB,EAAMG,EAAMF,EAAMQ,EAAKY,EAAMrB,EAAMI,EAAMF,EAAMO,EAAKa,EAAMrB,EAAMG,EAAMF,EAAMC,EAAKoB,EAAMb,EAAMI,EAAMH,EAAME,EAAKW,EAAMd,EAAMK,EAAMH,EAAMC,EAAKY,EAAMf,EAAMM,EAAMX,EAAMQ,EAAKa,EAAMf,EAAMI,EAAMH,EAAME,EAAKa,EAAMhB,EAAMK,EAAMX,EAAMS,EAAKc,EAAMhB,EAAMI,EAAMX,EAAMU,EAAKc,EAAMZ,EAAMW,EAAMV,EAAMS,EAAMR,EAAMO,EAAMN,EAAMK,EAAMJ,EAAMG,EAAMF,EAAMC,EAC9mB,OAAKM,GAGLA,EAAM,EAAIA,EACV/4C,EAAI,IAAM23C,EAAMmB,EAAMzB,EAAMwB,EAAMvB,EAAMsB,GAAOG,EAC/C/4C,EAAI,IAAMm3C,EAAM0B,EAAM3B,EAAM4B,EAAM1B,EAAMwB,GAAOG,EAC/C/4C,EAAI,IAAMg4C,EAAMQ,EAAMP,EAAMM,EAAML,EAAMI,GAAOS,EAC/C/4C,EAAI,IAAM83C,EAAMS,EAAMV,EAAMW,EAAMjB,EAAMe,GAAOS,EAC/C/4C,EAAI,IAAMq3C,EAAMsB,EAAMjB,EAAMoB,EAAMxB,EAAMoB,GAAOK,EAC/C/4C,EAAI,IAAMy3C,EAAMqB,EAAM3B,EAAMwB,EAAMvB,EAAMsB,GAAOK,EAC/C/4C,EAAI,IAAMi4C,EAAMI,EAAMN,EAAMS,EAAMN,EAAME,GAAOW,EAC/C/4C,EAAI,IAAM43C,EAAMY,EAAMV,EAAMO,EAAMd,EAAMa,GAAOW,EAC/C/4C,EAAI,IAAM03C,EAAMmB,EAAMlB,EAAMgB,EAAMrB,EAAMmB,GAAOM,EAC/C/4C,EAAI,IAAMk3C,EAAMyB,EAAMlB,EAAMoB,EAAMzB,EAAMqB,GAAOM,EAC/C/4C,EAAI,KAAO+3C,EAAMQ,EAAMP,EAAMK,EAAMH,EAAMC,GAAOY,EAChD/4C,EAAI,KAAO63C,EAAMQ,EAAMT,EAAMW,EAAMhB,EAAMY,GAAOY,EAChD/4C,EAAI,KAAO23C,EAAMe,EAAMhB,EAAMkB,EAAMvB,EAAMoB,GAAOM,EAChD/4C,EAAI,KAAOy3C,EAAMmB,EAAM1B,EAAMwB,EAAMvB,EAAMsB,GAAOM,EAChD/4C,EAAI,KAAOg4C,EAAMI,EAAML,EAAMO,EAAML,EAAME,GAAOY,EAChD/4C,EAAI,KAAO43C,EAAMU,EAAMT,EAAMO,EAAMN,EAAMK,GAAOY,EACzC/4C,GAnBE,IAoBX,CACF,IAIEg5C,GAAkB3wE,EAAW,CAC/B,kCAAkCt6B,EAASkuB,GACzCA,EAAOluB,QACP,SAAiBiyD,EAAKx6C,GACpB,IAAIiyF,EAAMjyF,EAAE,GAAI0xF,EAAM1xF,EAAE,GAAI2xF,EAAM3xF,EAAE,GAAI4xF,EAAM5xF,EAAE,GAAIkyF,EAAMlyF,EAAE,GAAImyF,EAAMnyF,EAAE,GAAI6xF,EAAM7xF,EAAE,GAAI8xF,EAAM9xF,EAAE,GAAIoyF,EAAMpyF,EAAE,GAAIqyF,EAAMryF,EAAE,GAAIsyF,EAAMtyF,EAAE,IAAK+xF,EAAM/xF,EAAE,IAAKuyF,EAAMvyF,EAAE,IAAKwyF,EAAMxyF,EAAE,IAAKyyF,EAAMzyF,EAAE,IAAK0yF,EAAM1yF,EAAE,IAiBrM,OAhBAw6C,EAAI,GAAK23C,GAAOG,EAAMI,EAAMX,EAAMU,GAAOJ,GAAOR,EAAMa,EAAMZ,EAAMW,GAAOD,GAAOX,EAAME,EAAMD,EAAMQ,GAClG93C,EAAI,KAAOk3C,GAAOY,EAAMI,EAAMX,EAAMU,GAAOJ,GAAOV,EAAMe,EAAMd,EAAMa,GAAOD,GAAOb,EAAMI,EAAMH,EAAMU,IACpG93C,EAAI,GAAKk3C,GAAOG,EAAMa,EAAMZ,EAAMW,GAAON,GAAOR,EAAMe,EAAMd,EAAMa,GAAOD,GAAOb,EAAMG,EAAMF,EAAMC,GAClGr3C,EAAI,KAAOk3C,GAAOG,EAAME,EAAMD,EAAMQ,GAAOH,GAAOR,EAAMI,EAAMH,EAAMU,GAAOD,GAAOV,EAAMG,EAAMF,EAAMC,IACpGr3C,EAAI,KAAO03C,GAAOI,EAAMI,EAAMX,EAAMU,GAAOL,GAAOP,EAAMa,EAAMZ,EAAMW,GAAOF,GAAOV,EAAME,EAAMD,EAAMQ,IACpG93C,EAAI,GAAKy3C,GAAOK,EAAMI,EAAMX,EAAMU,GAAOL,GAAOT,EAAMe,EAAMd,EAAMa,GAAOF,GAAOZ,EAAMI,EAAMH,EAAMU,GAClG93C,EAAI,KAAOy3C,GAAOJ,EAAMa,EAAMZ,EAAMW,GAAOP,GAAOP,EAAMe,EAAMd,EAAMa,GAAOF,GAAOZ,EAAMG,EAAMF,EAAMC,IACpGr3C,EAAI,GAAKy3C,GAAOJ,EAAME,EAAMD,EAAMQ,GAAOJ,GAAOP,EAAMI,EAAMH,EAAMU,GAAOF,GAAOT,EAAMG,EAAMF,EAAMC,GAClGr3C,EAAI,GAAK03C,GAAOG,EAAMK,EAAMX,EAAMS,GAAOJ,GAAOD,EAAMO,EAAMZ,EAAMU,GAAOD,GAAOJ,EAAMJ,EAAMD,EAAMO,GAClG73C,EAAI,KAAOy3C,GAAOI,EAAMK,EAAMX,EAAMS,GAAOJ,GAAOV,EAAMgB,EAAMd,EAAMY,GAAOD,GAAOb,EAAMK,EAAMH,EAAMS,IACpG73C,EAAI,IAAMy3C,GAAOE,EAAMO,EAAMZ,EAAMU,GAAON,GAAOR,EAAMgB,EAAMd,EAAMY,GAAOD,GAAOb,EAAMI,EAAMF,EAAMO,GACnG33C,EAAI,MAAQy3C,GAAOE,EAAMJ,EAAMD,EAAMO,GAAOH,GAAOR,EAAMK,EAAMH,EAAMS,GAAOD,GAAOV,EAAMI,EAAMF,EAAMO,IACrG33C,EAAI,MAAQ03C,GAAOG,EAAMI,EAAMH,EAAME,GAAOJ,GAAOD,EAAMM,EAAMZ,EAAMW,GAAOD,GAAOJ,EAAMG,EAAMT,EAAMQ,IACrG73C,EAAI,IAAMy3C,GAAOI,EAAMI,EAAMH,EAAME,GAAOJ,GAAOV,EAAMe,EAAMd,EAAMa,GAAOD,GAAOb,EAAMY,EAAMX,EAAMU,GACnG73C,EAAI,MAAQy3C,GAAOE,EAAMM,EAAMZ,EAAMW,GAAON,GAAOR,EAAMe,EAAMd,EAAMa,GAAOD,GAAOb,EAAMG,EAAMF,EAAMQ,IACrG33C,EAAI,IAAMy3C,GAAOE,EAAMG,EAAMT,EAAMQ,GAAOH,GAAOR,EAAMY,EAAMX,EAAMU,GAAOD,GAAOV,EAAMG,EAAMF,EAAMQ,GAC5F33C,CACT,CACF,IAIEi5C,GAAsB5wE,EAAW,CACnC,sCAAsCt6B,EAASkuB,GAC7CA,EAAOluB,QACP,SAAqByX,GACnB,IAAIiyF,EAAMjyF,EAAE,GAAI0xF,EAAM1xF,EAAE,GAAI2xF,EAAM3xF,EAAE,GAAI4xF,EAAM5xF,EAAE,GAAIkyF,EAAMlyF,EAAE,GAAImyF,EAAMnyF,EAAE,GAAI6xF,EAAM7xF,EAAE,GAAI8xF,EAAM9xF,EAAE,GAAIoyF,EAAMpyF,EAAE,GAAIqyF,EAAMryF,EAAE,GAAIsyF,EAAMtyF,EAAE,IAAK+xF,EAAM/xF,EAAE,IAAKuyF,EAAMvyF,EAAE,IAAKwyF,EAAMxyF,EAAE,IAAKyyF,EAAMzyF,EAAE,IAAK0yF,EAAM1yF,EAAE,IACrM,OADgNiyF,EAAME,EAAMT,EAAMQ,IAA6SI,EAAMI,EAAMX,EAAMU,IAApTR,EAAMJ,EAAMF,EAAMO,IAAmPG,EAAMK,EAAMX,EAAMS,IAA1PP,EAAMH,EAAMF,EAAMM,IAAyLG,EAAMI,EAAMH,EAAME,IAAhMd,EAAMG,EAAMF,EAAMQ,IAA+HC,EAAMM,EAAMX,EAAMQ,IAAtIb,EAAMI,EAAMF,EAAMO,IAAqEC,EAAMK,EAAMH,EAAMC,IAA5EZ,EAAMG,EAAMF,EAAMC,IAAWO,EAAMI,EAAMH,EAAME,EAElZ,CACF,IAIEmB,GAAmB7wE,EAAW,CAChC,mCAAmCt6B,EAASkuB,GAC1CA,EAAOluB,QACP,SAAkBiyD,EAAKx6C,EAAG4H,GACxB,IAAIqqF,EAAMjyF,EAAE,GAAI0xF,EAAM1xF,EAAE,GAAI2xF,EAAM3xF,EAAE,GAAI4xF,EAAM5xF,EAAE,GAAIkyF,EAAMlyF,EAAE,GAAImyF,EAAMnyF,EAAE,GAAI6xF,EAAM7xF,EAAE,GAAI8xF,EAAM9xF,EAAE,GAAIoyF,EAAMpyF,EAAE,GAAIqyF,EAAMryF,EAAE,GAAIsyF,EAAMtyF,EAAE,IAAK+xF,EAAM/xF,EAAE,IAAKuyF,EAAMvyF,EAAE,IAAKwyF,EAAMxyF,EAAE,IAAKyyF,EAAMzyF,EAAE,IAAK0yF,EAAM1yF,EAAE,IACjMq5B,EAAKzxB,EAAE,GAAI0xB,EAAK1xB,EAAE,GAAI+rF,EAAK/rF,EAAE,GAAIgsF,EAAKhsF,EAAE,GA6B5C,OA5BA4yC,EAAI,GAAKnhB,EAAK44D,EAAM34D,EAAK44D,EAAMyB,EAAKvB,EAAMwB,EAAKrB,EAC/C/3C,EAAI,GAAKnhB,EAAKq4D,EAAMp4D,EAAK64D,EAAMwB,EAAKtB,EAAMuB,EAAKpB,EAC/Ch4C,EAAI,GAAKnhB,EAAKs4D,EAAMr4D,EAAKu4D,EAAM8B,EAAKrB,EAAMsB,EAAKnB,EAC/Cj4C,EAAI,GAAKnhB,EAAKu4D,EAAMt4D,EAAKw4D,EAAM6B,EAAK5B,EAAM6B,EAAKlB,EAC/Cr5D,EAAKzxB,EAAE,GACP0xB,EAAK1xB,EAAE,GACP+rF,EAAK/rF,EAAE,GACPgsF,EAAKhsF,EAAE,GACP4yC,EAAI,GAAKnhB,EAAK44D,EAAM34D,EAAK44D,EAAMyB,EAAKvB,EAAMwB,EAAKrB,EAC/C/3C,EAAI,GAAKnhB,EAAKq4D,EAAMp4D,EAAK64D,EAAMwB,EAAKtB,EAAMuB,EAAKpB,EAC/Ch4C,EAAI,GAAKnhB,EAAKs4D,EAAMr4D,EAAKu4D,EAAM8B,EAAKrB,EAAMsB,EAAKnB,EAC/Cj4C,EAAI,GAAKnhB,EAAKu4D,EAAMt4D,EAAKw4D,EAAM6B,EAAK5B,EAAM6B,EAAKlB,EAC/Cr5D,EAAKzxB,EAAE,GACP0xB,EAAK1xB,EAAE,GACP+rF,EAAK/rF,EAAE,IACPgsF,EAAKhsF,EAAE,IACP4yC,EAAI,GAAKnhB,EAAK44D,EAAM34D,EAAK44D,EAAMyB,EAAKvB,EAAMwB,EAAKrB,EAC/C/3C,EAAI,GAAKnhB,EAAKq4D,EAAMp4D,EAAK64D,EAAMwB,EAAKtB,EAAMuB,EAAKpB,EAC/Ch4C,EAAI,IAAMnhB,EAAKs4D,EAAMr4D,EAAKu4D,EAAM8B,EAAKrB,EAAMsB,EAAKnB,EAChDj4C,EAAI,IAAMnhB,EAAKu4D,EAAMt4D,EAAKw4D,EAAM6B,EAAK5B,EAAM6B,EAAKlB,EAChDr5D,EAAKzxB,EAAE,IACP0xB,EAAK1xB,EAAE,IACP+rF,EAAK/rF,EAAE,IACPgsF,EAAKhsF,EAAE,IACP4yC,EAAI,IAAMnhB,EAAK44D,EAAM34D,EAAK44D,EAAMyB,EAAKvB,EAAMwB,EAAKrB,EAChD/3C,EAAI,IAAMnhB,EAAKq4D,EAAMp4D,EAAK64D,EAAMwB,EAAKtB,EAAMuB,EAAKpB,EAChDh4C,EAAI,IAAMnhB,EAAKs4D,EAAMr4D,EAAKu4D,EAAM8B,EAAKrB,EAAMsB,EAAKnB,EAChDj4C,EAAI,IAAMnhB,EAAKu4D,EAAMt4D,EAAKw4D,EAAM6B,EAAK5B,EAAM6B,EAAKlB,EACzCl4C,CACT,CACF,IAIEq5C,GAAoBhxE,EAAW,CACjC,oCAAoCt6B,EAASkuB,GAC3CA,EAAOluB,QACP,SAAmBiyD,EAAKx6C,EAAGiX,GACzB,IAAkCg7E,EAAKP,EAAKC,EAAKC,EAAKM,EAAKC,EAAKN,EAAKC,EAAKM,EAAKC,EAAKC,EAAKP,EAArFh1G,EAAIk6B,EAAE,GAAIj6B,EAAIi6B,EAAE,GAAIh6B,EAAIg6B,EAAE,GAoC9B,OAnCIjX,IAAMw6C,GACRA,EAAI,IAAMx6C,EAAE,GAAKjjB,EAAIijB,EAAE,GAAKhjB,EAAIgjB,EAAE,GAAK/iB,EAAI+iB,EAAE,IAC7Cw6C,EAAI,IAAMx6C,EAAE,GAAKjjB,EAAIijB,EAAE,GAAKhjB,EAAIgjB,EAAE,GAAK/iB,EAAI+iB,EAAE,IAC7Cw6C,EAAI,IAAMx6C,EAAE,GAAKjjB,EAAIijB,EAAE,GAAKhjB,EAAIgjB,EAAE,IAAM/iB,EAAI+iB,EAAE,IAC9Cw6C,EAAI,IAAMx6C,EAAE,GAAKjjB,EAAIijB,EAAE,GAAKhjB,EAAIgjB,EAAE,IAAM/iB,EAAI+iB,EAAE,MAE9CiyF,EAAMjyF,EAAE,GACR0xF,EAAM1xF,EAAE,GACR2xF,EAAM3xF,EAAE,GACR4xF,EAAM5xF,EAAE,GACRkyF,EAAMlyF,EAAE,GACRmyF,EAAMnyF,EAAE,GACR6xF,EAAM7xF,EAAE,GACR8xF,EAAM9xF,EAAE,GACRoyF,EAAMpyF,EAAE,GACRqyF,EAAMryF,EAAE,GACRsyF,EAAMtyF,EAAE,IACR+xF,EAAM/xF,EAAE,IACRw6C,EAAI,GAAKy3C,EACTz3C,EAAI,GAAKk3C,EACTl3C,EAAI,GAAKm3C,EACTn3C,EAAI,GAAKo3C,EACTp3C,EAAI,GAAK03C,EACT13C,EAAI,GAAK23C,EACT33C,EAAI,GAAKq3C,EACTr3C,EAAI,GAAKs3C,EACTt3C,EAAI,GAAK43C,EACT53C,EAAI,GAAK63C,EACT73C,EAAI,IAAM83C,EACV93C,EAAI,IAAMu3C,EACVv3C,EAAI,IAAMy3C,EAAMl1G,EAAIm1G,EAAMl1G,EAAIo1G,EAAMn1G,EAAI+iB,EAAE,IAC1Cw6C,EAAI,IAAMk3C,EAAM30G,EAAIo1G,EAAMn1G,EAAIq1G,EAAMp1G,EAAI+iB,EAAE,IAC1Cw6C,EAAI,IAAMm3C,EAAM50G,EAAI80G,EAAM70G,EAAIs1G,EAAMr1G,EAAI+iB,EAAE,IAC1Cw6C,EAAI,IAAMo3C,EAAM70G,EAAI+0G,EAAM90G,EAAI+0G,EAAM90G,EAAI+iB,EAAE,KAErCw6C,CACT,CACF,IAIEs5C,GAAgBjxE,EAAW,CAC7B,gCAAgCt6B,EAASkuB,GACvCA,EAAOluB,QACP,SAAeiyD,EAAKx6C,EAAGiX,GACrB,IAAIl6B,EAAIk6B,EAAE,GAAIj6B,EAAIi6B,EAAE,GAAIh6B,EAAIg6B,EAAE,GAiB9B,OAhBAujC,EAAI,GAAKx6C,EAAE,GAAKjjB,EAChBy9D,EAAI,GAAKx6C,EAAE,GAAKjjB,EAChBy9D,EAAI,GAAKx6C,EAAE,GAAKjjB,EAChBy9D,EAAI,GAAKx6C,EAAE,GAAKjjB,EAChBy9D,EAAI,GAAKx6C,EAAE,GAAKhjB,EAChBw9D,EAAI,GAAKx6C,EAAE,GAAKhjB,EAChBw9D,EAAI,GAAKx6C,EAAE,GAAKhjB,EAChBw9D,EAAI,GAAKx6C,EAAE,GAAKhjB,EAChBw9D,EAAI,GAAKx6C,EAAE,GAAK/iB,EAChBu9D,EAAI,GAAKx6C,EAAE,GAAK/iB,EAChBu9D,EAAI,IAAMx6C,EAAE,IAAM/iB,EAClBu9D,EAAI,IAAMx6C,EAAE,IAAM/iB,EAClBu9D,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACLw6C,CACT,CACF,IAIEu5C,GAAiBlxE,EAAW,CAC9B,iCAAiCt6B,EAASkuB,GACxCA,EAAOluB,QACP,SAAgBiyD,EAAKx6C,EAAGg0F,EAAK99B,GAC3B,IAAmFp2D,EAAG6W,EAAGzT,EAAG+uF,EAAKP,EAAKC,EAAKC,EAAKM,EAAKC,EAAKN,EAAKC,EAAKM,EAAKC,EAAKC,EAAKP,EAAKY,EAAKC,EAAKC,EAAKQ,EAAKC,EAAKW,EAAKC,EAAKC,EAAKC,EAA5Lr3G,EAAIm5E,EAAK,GAAIl5E,EAAIk5E,EAAK,GAAIj5E,EAAIi5E,EAAK,GAAIxuE,EAAMlQ,KAAK2xC,KAAKpsC,EAAIA,EAAIC,EAAIA,EAAIC,EAAIA,GAC/E,OAAIzF,KAAKD,IAAImQ,GAAO,KACX,MAGT3K,GADA2K,EAAM,EAAIA,EAEV1K,GAAK0K,EACLzK,GAAKyK,EACLoY,EAAItoB,KAAKunD,IAAIi1D,GACbr9E,EAAIn/B,KAAKsnD,IAAIk1D,GACb9wF,EAAI,EAAIyT,EACRs7E,EAAMjyF,EAAE,GACR0xF,EAAM1xF,EAAE,GACR2xF,EAAM3xF,EAAE,GACR4xF,EAAM5xF,EAAE,GACRkyF,EAAMlyF,EAAE,GACRmyF,EAAMnyF,EAAE,GACR6xF,EAAM7xF,EAAE,GACR8xF,EAAM9xF,EAAE,GACRoyF,EAAMpyF,EAAE,GACRqyF,EAAMryF,EAAE,GACRsyF,EAAMtyF,EAAE,IACR+xF,EAAM/xF,EAAE,IACR2yF,EAAM51G,EAAIA,EAAImmB,EAAIyT,EAClBi8E,EAAM51G,EAAID,EAAImmB,EAAIjmB,EAAI6iB,EACtB+yF,EAAM51G,EAAIF,EAAImmB,EAAIlmB,EAAI8iB,EACtBuzF,EAAMt2G,EAAIC,EAAIkmB,EAAIjmB,EAAI6iB,EACtBwzF,EAAMt2G,EAAIA,EAAIkmB,EAAIyT,EAClBs9E,EAAMh3G,EAAID,EAAIkmB,EAAInmB,EAAI+iB,EACtBo0F,EAAMn3G,EAAIE,EAAIimB,EAAIlmB,EAAI8iB,EACtBq0F,EAAMn3G,EAAIC,EAAIimB,EAAInmB,EAAI+iB,EACtBs0F,EAAMn3G,EAAIA,EAAIimB,EAAIyT,EAClB6jC,EAAI,GAAKy3C,EAAMU,EAAMT,EAAMU,EAAMR,EAAMS,EACvCr4C,EAAI,GAAKk3C,EAAMiB,EAAMR,EAAMS,EAAMP,EAAMQ,EACvCr4C,EAAI,GAAKm3C,EAAMgB,EAAMd,EAAMe,EAAMN,EAAMO,EACvCr4C,EAAI,GAAKo3C,EAAMe,EAAMb,EAAMc,EAAMb,EAAMc,EACvCr4C,EAAI,GAAKy3C,EAAMoB,EAAMnB,EAAMoB,EAAMlB,EAAM6B,EACvCz5C,EAAI,GAAKk3C,EAAM2B,EAAMlB,EAAMmB,EAAMjB,EAAM4B,EACvCz5C,EAAI,GAAKm3C,EAAM0B,EAAMxB,EAAMyB,EAAMhB,EAAM2B,EACvCz5C,EAAI,GAAKo3C,EAAMyB,EAAMvB,EAAMwB,EAAMvB,EAAMkC,EACvCz5C,EAAI,GAAKy3C,EAAMiC,EAAMhC,EAAMiC,EAAM/B,EAAMgC,EACvC55C,EAAI,GAAKk3C,EAAMwC,EAAM/B,EAAMgC,EAAM9B,EAAM+B,EACvC55C,EAAI,IAAMm3C,EAAMuC,EAAMrC,EAAMsC,EAAM7B,EAAM8B,EACxC55C,EAAI,IAAMo3C,EAAMsC,EAAMpC,EAAMqC,EAAMpC,EAAMqC,EACpCp0F,IAAMw6C,IACRA,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,KAEPw6C,EACT,CACF,IAIE65C,GAAkBxxE,EAAW,CAC/B,kCAAkCt6B,EAASkuB,GACzCA,EAAOluB,QACP,SAAiBiyD,EAAKx6C,EAAGg0F,GACvB,IAAIl0F,EAAItoB,KAAKunD,IAAIi1D,GAAMr9E,EAAIn/B,KAAKsnD,IAAIk1D,GAAM9B,EAAMlyF,EAAE,GAAImyF,EAAMnyF,EAAE,GAAI6xF,EAAM7xF,EAAE,GAAI8xF,EAAM9xF,EAAE,GAAIoyF,EAAMpyF,EAAE,GAAIqyF,EAAMryF,EAAE,GAAIsyF,EAAMtyF,EAAE,IAAK+xF,EAAM/xF,EAAE,IAmBvI,OAlBIA,IAAMw6C,IACRA,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,KAEdw6C,EAAI,GAAK03C,EAAMv7E,EAAIy7E,EAAMtyF,EACzB06C,EAAI,GAAK23C,EAAMx7E,EAAI07E,EAAMvyF,EACzB06C,EAAI,GAAKq3C,EAAMl7E,EAAI27E,EAAMxyF,EACzB06C,EAAI,GAAKs3C,EAAMn7E,EAAIo7E,EAAMjyF,EACzB06C,EAAI,GAAK43C,EAAMz7E,EAAIu7E,EAAMpyF,EACzB06C,EAAI,GAAK63C,EAAM17E,EAAIw7E,EAAMryF,EACzB06C,EAAI,IAAM83C,EAAM37E,EAAIk7E,EAAM/xF,EAC1B06C,EAAI,IAAMu3C,EAAMp7E,EAAIm7E,EAAMhyF,EACnB06C,CACT,CACF,IAIE85C,GAAkBzxE,EAAW,CAC/B,kCAAkCt6B,EAASkuB,GACzCA,EAAOluB,QACP,SAAiBiyD,EAAKx6C,EAAGg0F,GACvB,IAAIl0F,EAAItoB,KAAKunD,IAAIi1D,GAAMr9E,EAAIn/B,KAAKsnD,IAAIk1D,GAAM/B,EAAMjyF,EAAE,GAAI0xF,EAAM1xF,EAAE,GAAI2xF,EAAM3xF,EAAE,GAAI4xF,EAAM5xF,EAAE,GAAIoyF,EAAMpyF,EAAE,GAAIqyF,EAAMryF,EAAE,GAAIsyF,EAAMtyF,EAAE,IAAK+xF,EAAM/xF,EAAE,IAmBvI,OAlBIA,IAAMw6C,IACRA,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,KAEdw6C,EAAI,GAAKy3C,EAAMt7E,EAAIy7E,EAAMtyF,EACzB06C,EAAI,GAAKk3C,EAAM/6E,EAAI07E,EAAMvyF,EACzB06C,EAAI,GAAKm3C,EAAMh7E,EAAI27E,EAAMxyF,EACzB06C,EAAI,GAAKo3C,EAAMj7E,EAAIo7E,EAAMjyF,EACzB06C,EAAI,GAAKy3C,EAAMnyF,EAAIsyF,EAAMz7E,EACzB6jC,EAAI,GAAKk3C,EAAM5xF,EAAIuyF,EAAM17E,EACzB6jC,EAAI,IAAMm3C,EAAM7xF,EAAIwyF,EAAM37E,EAC1B6jC,EAAI,IAAMo3C,EAAM9xF,EAAIiyF,EAAMp7E,EACnB6jC,CACT,CACF,IAIE+5C,GAAkB1xE,EAAW,CAC/B,kCAAkCt6B,EAASkuB,GACzCA,EAAOluB,QACP,SAAiBiyD,EAAKx6C,EAAGg0F,GACvB,IAAIl0F,EAAItoB,KAAKunD,IAAIi1D,GAAMr9E,EAAIn/B,KAAKsnD,IAAIk1D,GAAM/B,EAAMjyF,EAAE,GAAI0xF,EAAM1xF,EAAE,GAAI2xF,EAAM3xF,EAAE,GAAI4xF,EAAM5xF,EAAE,GAAIkyF,EAAMlyF,EAAE,GAAImyF,EAAMnyF,EAAE,GAAI6xF,EAAM7xF,EAAE,GAAI8xF,EAAM9xF,EAAE,GAmBtI,OAlBIA,IAAMw6C,IACRA,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,GAAKx6C,EAAE,GACXw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,IACZw6C,EAAI,IAAMx6C,EAAE,KAEdw6C,EAAI,GAAKy3C,EAAMt7E,EAAIu7E,EAAMpyF,EACzB06C,EAAI,GAAKk3C,EAAM/6E,EAAIw7E,EAAMryF,EACzB06C,EAAI,GAAKm3C,EAAMh7E,EAAIk7E,EAAM/xF,EACzB06C,EAAI,GAAKo3C,EAAMj7E,EAAIm7E,EAAMhyF,EACzB06C,EAAI,GAAK03C,EAAMv7E,EAAIs7E,EAAMnyF,EACzB06C,EAAI,GAAK23C,EAAMx7E,EAAI+6E,EAAM5xF,EACzB06C,EAAI,GAAKq3C,EAAMl7E,EAAIg7E,EAAM7xF,EACzB06C,EAAI,GAAKs3C,EAAMn7E,EAAIi7E,EAAM9xF,EAClB06C,CACT,CACF,IAIEg6C,GAAuB3xE,EAAW,CACpC,uCAAuCt6B,EAASkuB,GAC9CA,EAAOluB,QACP,SAAsBiyD,EAAKw5C,EAAK99B,GAC9B,IAAIp2D,EAAG6W,EAAGzT,EACNnmB,EAAIm5E,EAAK,GACTl5E,EAAIk5E,EAAK,GACTj5E,EAAIi5E,EAAK,GACTxuE,EAAMlQ,KAAK2xC,KAAKpsC,EAAIA,EAAIC,EAAIA,EAAIC,EAAIA,GACxC,OAAIzF,KAAKD,IAAImQ,GAAO,KACX,MAGT3K,GADA2K,EAAM,EAAIA,EAEV1K,GAAK0K,EACLzK,GAAKyK,EACLoY,EAAItoB,KAAKunD,IAAIi1D,GACbr9E,EAAIn/B,KAAKsnD,IAAIk1D,GACb9wF,EAAI,EAAIyT,EACR6jC,EAAI,GAAKz9D,EAAIA,EAAImmB,EAAIyT,EACrB6jC,EAAI,GAAKx9D,EAAID,EAAImmB,EAAIjmB,EAAI6iB,EACzB06C,EAAI,GAAKv9D,EAAIF,EAAImmB,EAAIlmB,EAAI8iB,EACzB06C,EAAI,GAAK,EACTA,EAAI,GAAKz9D,EAAIC,EAAIkmB,EAAIjmB,EAAI6iB,EACzB06C,EAAI,GAAKx9D,EAAIA,EAAIkmB,EAAIyT,EACrB6jC,EAAI,GAAKv9D,EAAID,EAAIkmB,EAAInmB,EAAI+iB,EACzB06C,EAAI,GAAK,EACTA,EAAI,GAAKz9D,EAAIE,EAAIimB,EAAIlmB,EAAI8iB,EACzB06C,EAAI,GAAKx9D,EAAIC,EAAIimB,EAAInmB,EAAI+iB,EACzB06C,EAAI,IAAMv9D,EAAIA,EAAIimB,EAAIyT,EACtB6jC,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,EACT,CACF,IAIEi6C,GAAkC5xE,EAAW,CAC/C,kDAAkDt6B,EAASkuB,GACzDA,EAAOluB,QACP,SAAiCiyD,EAAK16B,EAAG7I,GACvC,IAAIl6B,EAAI+iC,EAAE,GAAI9iC,EAAI8iC,EAAE,GAAI7iC,EAAI6iC,EAAE,GAAIvI,EAAIuI,EAAE,GAAIy0B,EAAKx3D,EAAIA,EAAGy3D,EAAKx3D,EAAIA,EAAG03G,EAAKz3G,EAAIA,EAAG03G,EAAK53G,EAAIw3D,EAAIqgD,EAAK73G,EAAIy3D,EAAIqgD,EAAK93G,EAAI23G,EAAII,EAAK93G,EAAIw3D,EAAIugD,EAAK/3G,EAAI03G,EAAIM,EAAK/3G,EAAIy3G,EAAIO,EAAK19E,EAAIg9B,EAAI2gD,EAAK39E,EAAIi9B,EAAI2gD,EAAK59E,EAAIm9E,EAiBjM,OAhBAl6C,EAAI,GAAK,GAAKs6C,EAAKE,GACnBx6C,EAAI,GAAKo6C,EAAKO,EACd36C,EAAI,GAAKq6C,EAAKK,EACd16C,EAAI,GAAK,EACTA,EAAI,GAAKo6C,EAAKO,EACd36C,EAAI,GAAK,GAAKm6C,EAAKK,GACnBx6C,EAAI,GAAKu6C,EAAKE,EACdz6C,EAAI,GAAK,EACTA,EAAI,GAAKq6C,EAAKK,EACd16C,EAAI,GAAKu6C,EAAKE,EACdz6C,EAAI,IAAM,GAAKm6C,EAAKG,GACpBt6C,EAAI,IAAM,EACVA,EAAI,IAAMvjC,EAAE,GACZujC,EAAI,IAAMvjC,EAAE,GACZujC,EAAI,IAAMvjC,EAAE,GACZujC,EAAI,IAAM,EACHA,CACT,CACF,IAIE46C,GAAsBvyE,EAAW,CACnC,sCAAsCt6B,EAASkuB,GAC7CA,EAAOluB,QACP,SAAqBiyD,EAAKvjC,GAiBxB,OAhBAujC,EAAI,GAAKvjC,EAAE,GACXujC,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAKvjC,EAAE,GACXujC,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAMvjC,EAAE,GACZujC,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CACF,IAIE66C,GAA0BxyE,EAAW,CACvC,0CAA0Ct6B,EAASkuB,GACjDA,EAAOluB,QACP,SAAyBiyD,EAAKvjC,GAiB5B,OAhBAujC,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAMvjC,EAAE,GACZujC,EAAI,IAAMvjC,EAAE,GACZujC,EAAI,IAAMvjC,EAAE,GACZujC,EAAI,IAAM,EACHA,CACT,CACF,IAIE86C,GAAwBzyE,EAAW,CACrC,wCAAwCt6B,EAASkuB,GAC/CA,EAAOluB,QACP,SAAuBiyD,EAAKw5C,GAC1B,IAAIl0F,EAAItoB,KAAKunD,IAAIi1D,GAAMr9E,EAAIn/B,KAAKsnD,IAAIk1D,GAiBpC,OAhBAx5C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK7jC,EACT6jC,EAAI,GAAK16C,EACT06C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM16C,EACV06C,EAAI,IAAM7jC,EACV6jC,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CACF,IAIE+6C,GAAwB1yE,EAAW,CACrC,wCAAwCt6B,EAASkuB,GAC/CA,EAAOluB,QACP,SAAuBiyD,EAAKw5C,GAC1B,IAAIl0F,EAAItoB,KAAKunD,IAAIi1D,GAAMr9E,EAAIn/B,KAAKsnD,IAAIk1D,GAiBpC,OAhBAx5C,EAAI,GAAK7jC,EACT6jC,EAAI,GAAK,EACTA,EAAI,IAAM16C,EACV06C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK16C,EACT06C,EAAI,GAAK,EACTA,EAAI,IAAM7jC,EACV6jC,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CACF,IAIEg7C,GAAwB3yE,EAAW,CACrC,wCAAwCt6B,EAASkuB,GAC/CA,EAAOluB,QACP,SAAuBiyD,EAAKw5C,GAC1B,IAAIl0F,EAAItoB,KAAKunD,IAAIi1D,GAAMr9E,EAAIn/B,KAAKsnD,IAAIk1D,GAiBpC,OAhBAx5C,EAAI,GAAK7jC,EACT6jC,EAAI,GAAK16C,EACT06C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM16C,EACV06C,EAAI,GAAK7jC,EACT6jC,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CACF,IAIEi7C,GAAmB5yE,EAAW,CAChC,mCAAmCt6B,EAASkuB,GAC1CA,EAAOluB,QACP,SAAkBiyD,EAAK16B,GACrB,IAAI/iC,EAAI+iC,EAAE,GAAI9iC,EAAI8iC,EAAE,GAAI7iC,EAAI6iC,EAAE,GAAIvI,EAAIuI,EAAE,GAAIy0B,EAAKx3D,EAAIA,EAAGy3D,EAAKx3D,EAAIA,EAAG03G,EAAKz3G,EAAIA,EAAG03G,EAAK53G,EAAIw3D,EAAImhD,EAAK14G,EAAIu3D,EAAIugD,EAAK93G,EAAIw3D,EAAImhD,EAAK14G,EAAIs3D,EAAIqhD,EAAK34G,EAAIu3D,EAAIwgD,EAAK/3G,EAAIy3G,EAAIO,EAAK19E,EAAIg9B,EAAI2gD,EAAK39E,EAAIi9B,EAAI2gD,EAAK59E,EAAIm9E,EAiBjM,OAhBAl6C,EAAI,GAAK,EAAIs6C,EAAKE,EAClBx6C,EAAI,GAAKk7C,EAAKP,EACd36C,EAAI,GAAKm7C,EAAKT,EACd16C,EAAI,GAAK,EACTA,EAAI,GAAKk7C,EAAKP,EACd36C,EAAI,GAAK,EAAIm6C,EAAKK,EAClBx6C,EAAI,GAAKo7C,EAAKX,EACdz6C,EAAI,GAAK,EACTA,EAAI,GAAKm7C,EAAKT,EACd16C,EAAI,GAAKo7C,EAAKX,EACdz6C,EAAI,IAAM,EAAIm6C,EAAKG,EACnBt6C,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CACF,IAIEq7C,GAAkBhzE,EAAW,CAC/B,kCAAkCt6B,EAASkuB,GACzCA,EAAOluB,QACP,SAAiBiyD,EAAKrrC,EAAMF,EAAOC,EAAQF,EAAK8mF,EAAMC,GACpD,IAAIC,EAAK,GAAK/mF,EAAQE,GAAOwtC,EAAK,GAAK3tC,EAAME,GAAS+mF,EAAK,GAAKH,EAAOC,GAiBvE,OAhBAv7C,EAAI,GAAY,EAAPs7C,EAAWE,EACpBx7C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAY,EAAPs7C,EAAWn5C,EACpBnC,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAMvrC,EAAQE,GAAQ6mF,EAC1Bx7C,EAAI,IAAMxrC,EAAME,GAAUytC,EAC1BnC,EAAI,KAAOu7C,EAAMD,GAAQG,EACzBz7C,EAAI,KAAO,EACXA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAMu7C,EAAMD,EAAO,EAAIG,EAC3Bz7C,EAAI,IAAM,EACHA,CACT,CACF,IAIE07C,GAAsBrzE,EAAW,CACnC,sCAAsCt6B,EAASkuB,GAC7CA,EAAOluB,QACP,SAAqBiyD,EAAK27C,EAAMC,EAAQN,EAAMC,GAC5C,IAAI91F,EAAI,EAAIzoB,KAAK+wD,IAAI4tD,EAAO,GAAIF,EAAK,GAAKH,EAAOC,GAiBjD,OAhBAv7C,EAAI,GAAKv6C,EAAIm2F,EACb57C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAKv6C,EACTu6C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,KAAOu7C,EAAMD,GAAQG,EACzBz7C,EAAI,KAAO,EACXA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EAAIu7C,EAAMD,EAAOG,EAC3Bz7C,EAAI,IAAM,EACHA,CACT,CACF,IAIE67C,GAAqCxzE,EAAW,CAClD,qDAAqDt6B,EAASkuB,GAC5DA,EAAOluB,QACP,SAAoCiyD,EAAK87C,EAAKR,EAAMC,GAClD,IAAIQ,EAAQ/+G,KAAK+wD,IAAI+tD,EAAIE,UAAYh/G,KAAKsgD,GAAK,KAAM2+D,EAAUj/G,KAAK+wD,IAAI+tD,EAAII,YAAcl/G,KAAKsgD,GAAK,KAAM6+D,EAAUn/G,KAAK+wD,IAAI+tD,EAAIM,YAAcp/G,KAAKsgD,GAAK,KAAM++D,EAAWr/G,KAAK+wD,IAAI+tD,EAAIQ,aAAet/G,KAAKsgD,GAAK,KAAMi/D,EAAS,GAAKJ,EAAUE,GAAWG,EAAS,GAAKT,EAAQE,GAiB/Q,OAhBAj8C,EAAI,GAAKu8C,EACTv8C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAKw8C,EACTx8C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,KAAQm8C,EAAUE,GAAYE,EAAS,GAC3Cv8C,EAAI,IAAM+7C,EAAQE,GAAWO,EAAS,GACtCx8C,EAAI,IAAMu7C,GAAOD,EAAOC,GACxBv7C,EAAI,KAAO,EACXA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAMu7C,EAAMD,GAAQA,EAAOC,GAC/Bv7C,EAAI,IAAM,EACHA,CACT,CACF,IAIEy8C,GAAgBp0E,EAAW,CAC7B,gCAAgCt6B,EAASkuB,GACvCA,EAAOluB,QACP,SAAeiyD,EAAKrrC,EAAMF,EAAOC,EAAQF,EAAK8mF,EAAMC,GAClD,IAAImB,EAAK,GAAK/nF,EAAOF,GAAQkoF,EAAK,GAAKjoF,EAASF,GAAMinF,EAAK,GAAKH,EAAOC,GAiBvE,OAhBAv7C,EAAI,IAAM,EAAI08C,EACd18C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EAAI28C,EACd38C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EAAIy7C,EACdz7C,EAAI,IAAM,EACVA,EAAI,KAAOrrC,EAAOF,GAASioF,EAC3B18C,EAAI,KAAOxrC,EAAME,GAAUioF,EAC3B38C,EAAI,KAAOu7C,EAAMD,GAAQG,EACzBz7C,EAAI,IAAM,EACHA,CACT,CACF,IAIE48C,GAAiBv0E,EAAW,CAC9B,iCAAiCt6B,EAASkuB,GACxC,IAAIq3C,EAAY0jC,KAChB/6E,EAAOluB,QACP,SAAgBiyD,EAAK68C,EAAKx9D,EAAQlkC,GAChC,IAAIqkC,EAAIC,EAAIsa,EAAIra,EAAIC,EAAIqa,EAAI8iD,EAAIC,EAAI7C,EAAIhtG,EAAK8vG,EAAOH,EAAI,GAAII,EAAOJ,EAAI,GAAIK,EAAOL,EAAI,GAAIM,EAAMhiG,EAAG,GAAIiiG,EAAMjiG,EAAG,GAAIkiG,EAAMliG,EAAG,GAAImiG,EAAUj+D,EAAO,GAAIk+D,EAAUl+D,EAAO,GAAIm+D,EAAUn+D,EAAO,GAC5L,OAAIriD,KAAKD,IAAIigH,EAAOM,GAAW,MAAQtgH,KAAKD,IAAIkgH,EAAOM,GAAW,MAAQvgH,KAAKD,IAAImgH,EAAOM,GAAW,KAC5FlqC,EAAUtT,IAEnB88C,EAAKE,EAAOM,EACZP,EAAKE,EAAOM,EACZrD,EAAKgD,EAAOM,EACZtwG,EAAM,EAAIlQ,KAAK2xC,KAAKmuE,EAAKA,EAAKC,EAAKA,EAAK7C,EAAKA,GAI7C16D,EAAK49D,GADLlD,GAAMhtG,GACUmwG,GAFhBN,GAAM7vG,GAGNuyC,EAAK49D,GAJLP,GAAM5vG,GAIUiwG,EAAMjD,EACtBngD,EAAKojD,EAAMJ,EAAKK,EAAMN,GACtB5vG,EAAMlQ,KAAK2xC,KAAK6Q,EAAKA,EAAKC,EAAKA,EAAKsa,EAAKA,KAOvCva,GADAtyC,EAAM,EAAIA,EAEVuyC,GAAMvyC,EACN6sD,GAAM7sD,IAPNsyC,EAAK,EACLC,EAAK,EACLsa,EAAK,GAOPra,EAAKq9D,EAAKhjD,EAAKmgD,EAAKz6D,EACpBE,EAAKu6D,EAAK16D,EAAKs9D,EAAK/iD,EACpBC,EAAK8iD,EAAKr9D,EAAKs9D,EAAKv9D,GACpBtyC,EAAMlQ,KAAK2xC,KAAK+Q,EAAKA,EAAKC,EAAKA,EAAKqa,EAAKA,KAOvCta,GADAxyC,EAAM,EAAIA,EAEVyyC,GAAMzyC,EACN8sD,GAAM9sD,IAPNwyC,EAAK,EACLC,EAAK,EACLqa,EAAK,GAOPgG,EAAI,GAAKxgB,EACTwgB,EAAI,GAAKtgB,EACTsgB,EAAI,GAAK88C,EACT98C,EAAI,GAAK,EACTA,EAAI,GAAKvgB,EACTugB,EAAI,GAAKrgB,EACTqgB,EAAI,GAAK+8C,EACT/8C,EAAI,GAAK,EACTA,EAAI,GAAKjG,EACTiG,EAAI,GAAKhG,EACTgG,EAAI,IAAMk6C,EACVl6C,EAAI,IAAM,EACVA,EAAI,MAAQxgB,EAAKw9D,EAAOv9D,EAAKw9D,EAAOljD,EAAKmjD,GACzCl9C,EAAI,MAAQtgB,EAAKs9D,EAAOr9D,EAAKs9D,EAAOjjD,EAAKkjD,GACzCl9C,EAAI,MAAQ88C,EAAKE,EAAOD,EAAKE,EAAO/C,EAAKgD,GACzCl9C,EAAI,IAAM,EACHA,EACT,CACF,IAIEy9C,GAAcp1E,EAAW,CAC3B,8BAA8Bt6B,EAASkuB,GACrCA,EAAOluB,QACP,SAAayX,GACX,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,GAClP,CACF,IAIEk4F,GAAkBr1E,EAAW,CAC/B,gCAAgCt6B,EAASkuB,GACvCA,EAAOluB,QAAU,CACftI,OAAQoxG,IACRh9F,MAAOi9F,IACPz3G,KAAM03G,KACNrjC,SAAUsjC,KACVtnE,UAAWunE,KACXl2D,OAAQy2D,KACRmG,QAAS3E,KACT4E,YAAa3E,KACb4E,SAAU3E,KACVh4D,UAAWm4D,KACXxvG,MAAOyvG,KACPz4C,OAAQ04C,KACRuE,QAASjE,KACTkE,QAASjE,KACTkE,QAASjE,KACTkE,aAAcjE,KACdkE,wBAAyBjE,KACzBkE,YAAavD,KACbwD,gBAAiBvD,KACjBwD,cAAevD,KACfwD,cAAevD,KACfwD,cAAevD,KACfwD,SAAUvD,KACVwD,QAASpD,KACTqD,YAAahD,KACbiD,2BAA4B9C,KAC5B+C,MAAOnC,KACPoC,OAAQjC,KACR5vG,IAAKywG,KAET,IAIEqB,GAAiBz2E,EAAW,CAC9B,oBAAoBt6B,GAElB,IAAIgxG,EAASrB,KACb3vG,EAAQixG,YAAc,SAASC,EAAWC,GAExC,IADA,IAAI1gH,EAAQ,IAAIwF,MAAMi7G,GACb7iH,EAAI,EAAGA,EAAI6iH,EAAW7iH,IAAKoC,EAAMpC,GAAK,IAAI4H,MAAMk7G,GACzD,OAAO1gH,CACT,EACAuP,EAAQoxG,gBAAkB,SAAS18G,GACjC,IAEIrG,EAAGiG,EAFH+8G,EAAS,EACTC,EAAO58G,EAAEjI,OAEb,IAAK4B,EAAI,EAAGA,EAAIijH,EAAMjjH,IAAKgjH,EAASpiH,KAAK6mB,IAAIu7F,EAAQ38G,EAAErG,GAAG5B,QAC1D,IAAIkuB,EAAI,IAAI1kB,MAAMo7G,GAClB,IAAKhjH,EAAI,EAAGA,EAAIgjH,EAAQhjH,IAEtB,IADAssB,EAAEtsB,GAAK,IAAI4H,MAAMq7G,GACZh9G,EAAI,EAAGA,EAAIg9G,EAAMh9G,IAAKqmB,EAAEtsB,GAAGiG,GAAKI,EAAEJ,GAAGjG,GAE5C,OAAOssB,CACT,EACA3a,EAAQuxG,IAAM,SAAS/8G,EAAGC,GACxB,IAAMD,EAAE/H,SAAUgI,EAAEhI,QAAW+H,EAAE/H,SAAWgI,EAAEhI,OAAQ,OAAO,KAC7D,IACIwlE,EACA5jE,EAFA8Q,EAAM3K,EAAE/H,OAGZ,GAAI+H,EAAE,GAAG/H,OAEP,IADAwlE,EAAM,IAAIh8D,MAAMkJ,GACX9Q,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAK4jE,EAAI5jE,GAAK2R,EAAQuxG,IAAI/8G,EAAEnG,GAAIoG,QAChD,GAAIA,EAAE,GAAGhI,OAAQ,CACtB,IAAI+kH,EAAaxxG,EAAQoxG,gBAAgB38G,GAEzC,IADAw9D,EAAM,IAAIh8D,MAAMu7G,EAAW/kH,QACtB4B,EAAI,EAAGA,EAAImjH,EAAW/kH,OAAQ4B,IAAK4jE,EAAI5jE,GAAK2R,EAAQuxG,IAAI/8G,EAAGg9G,EAAWnjH,GAC7E,MAEE,IADA4jE,EAAM,EACD5jE,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAK4jE,GAAOz9D,EAAEnG,GAAKoG,EAAEpG,GAE5C,OAAO4jE,CACT,EACAjyD,EAAQyxG,kBAAoB,SAASj9G,EAAGC,GACtC,MAAO,CAAC,CAAC,EAAG,EAAGD,GAAI,CAAC,EAAG,EAAGC,GAAI,CAAC,EAAG,EAAG,GACvC,EACAuL,EAAQ0xG,eAAiB,SAASj8F,GAChC,IAAIgC,EAAIhC,EAAQxmB,KAAKsgD,GAAK,IAC1B,MAAO,CACL,CAACtgD,KAAKsnD,IAAI9+B,IAAKxoB,KAAKunD,IAAI/+B,GAAI,GAC5B,CAACxoB,KAAKunD,IAAI/+B,GAAIxoB,KAAKsnD,IAAI9+B,GAAI,GAC3B,CAAC,EAAG,EAAG,GAEX,EACAzX,EAAQ2xG,iBAAmB,SAASl6F,EAAGjjB,EAAGC,GACxC,OAAOuL,EAAQuxG,IACbvxG,EAAQuxG,IACNvxG,EAAQyxG,kBAAkBj9G,EAAGC,GAC7BuL,EAAQ0xG,eAAej6F,IAEzBzX,EAAQyxG,mBAAmBj9G,GAAIC,GAEnC,EACAuL,EAAQ4xG,iBAAmB,SAAS/yF,GAClC,OAAO,WACL,IAAIxlB,EAAOD,UACPy4G,EAA2B,IAArBz4G,UAAU3M,OAAe4M,EAAK,GAAK,CAACA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAAM,GAC3E,OAAO2G,EAAQuxG,IAAI1yF,EAAW,CAACgzF,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,IAAIxhH,MAAM,EAAG,EACtE,CACF,EACA2P,EAAQ8xG,iBAAmB,SAASjzF,GAClC,OAAO,WACL,IAAIxlB,EAAOD,UACS,IAAhBC,EAAK5M,SACP4M,EAAOA,EAAK,IAEd,IAAIgzG,EAA0B,IAArBjzG,UAAU3M,OAAe4M,EAAK,GAAK,CAACA,EAAK,GAAIA,EAAK,IAC3D,OAAO2G,EAAQuxG,IAAI1yF,EAAW,CAACwtF,EAAG,GAAIA,EAAG,GAAI,IAAIh8G,MAAM,EAAG,EAC5D,CACF,EACA2P,EAAQ+xG,kBAAoB,SAASlzF,GACnC,IAAImzF,EAAKhyG,EAAQ8xG,iBAAiBjzF,GAClC,OAAO,SAASozF,GACd,OAAOD,EAAGC,EAAI5hH,MAAM,EAAG,IAAI2G,OAAOg7G,EAAGC,EAAI5hH,MAAM,EAAG,IACpD,CACF,EACA2P,EAAQkyG,iBAAmB,SAAShzF,GAClC,GAAIA,EAAG,CACL,IAAI/f,EAAM+f,EAAEzyB,OACZ,GAAY,KAAR0S,EAAY,OAAO+f,EACvB,GAAY,IAAR/f,EACF,MAAO,CACL+f,EAAE,GACFA,EAAE,GACF,EACA,EACAA,EAAE,GACFA,EAAE,GACF,EACA,EACA,EACA,EACA,EACA,EACAA,EAAE,GACFA,EAAE,GACF,EACA,EAGN,CACA,MAAO,CACL,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEJ,EACAlf,EAAQmyG,uBAAyB,SAASjzF,GACxC,IAAI+yC,EAAM,GAEV,OADA++C,EAAOh+D,OAAOif,EAAK/yC,GACZ,CACL,CAAC+yC,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAC7B,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAC7B,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAKA,EAAI,KAC9B,CAACA,EAAI,IAAKA,EAAI,IAAKA,EAAI,IAAKA,EAAI,KAEpC,CACF,IAIEmgD,GAAc93E,EAAW,CAC3B,iBAAiBt6B,EAASkuB,GAExB,IAAIkQ,EAAKD,IACLmqE,EAAUF,IACVxmE,EAASmvE,KACTC,EAASrB,KAkBb,SAAS0C,EAAcC,GACrB,IAAIC,EAAWD,GAAMA,EAAGxjH,WACpByjH,GAAUA,EAASxjH,YAAYujH,EACrC,CAIA,SAASE,EAAoBtX,EAAKjkG,EAAUw7G,GAC1C,IAAIjlF,EAAK,mBAAqB0tE,EAC1BxiF,EAAQ5qB,SAAS4kH,eAAellF,GACpC,IAAI9U,IAASA,EAAMnG,QAAQ,qBAA3B,CAGKmG,KACHA,EAAQ5qB,SAASC,cAAc,UACzBC,aAAa,KAAMw/B,GACzB9U,EAAMzqB,YAAYH,SAASI,eAAe,KAC1CJ,SAASsI,KAAKnI,YAAYyqB,IAE5B,IAAIi6F,EAAaj6F,EAAMtqB,MAClBukH,EAEMA,EAAWlkH,WACpBkkH,EAAWlkH,WAAWwI,EAAW,IAAMw7G,EAAc,IAAK,GACjDE,EAAWC,QACpBD,EAAWC,QAAQ37G,EAAUw7G,EAAa,GACrCnK,EAAQI,KAAK,uBALlBJ,EAAQI,KAAK,4DATf,CAeF,CAgEA,SAASmK,EAA0B7/G,GACjC,IAAI0lB,EAAQsT,OAAO2d,iBAAiB32C,EAAS,MACzC6rB,EAAYnG,EAAMkxB,iBAAiB,sBAAwBlxB,EAAMkxB,iBAAiB,mBAAqBlxB,EAAMkxB,iBAAiB,kBAAoBlxB,EAAMkxB,iBAAiB,iBAAmBlxB,EAAMkxB,iBAAiB,aACvN,MAAkB,SAAd/qB,EAA6B,KAC1BA,EAAUpvB,QAAQ,SAAU,IAAIA,QAAQ,KAAM,IAAIY,MAAM,GAAI,GAAGqG,MAAM,KAAKhB,KAAI,SAAS6gB,GAC5F,OAAQA,CACV,GACF,CACA,SAASu8F,EAAuB9/G,GAE9B,IADA,IAAI+/G,EAAc,GACXC,EAAuBhgH,IAC5B+/G,EAAY/lH,KAAKgG,GACjBA,EAAUA,EAAQlE,WACQ,oBAAfmkH,YAA6BjgH,aAAmBigH,aACzDjgH,EAAUA,EAAQkgH,MAGtB,OAAOH,CACT,CACA,SAASC,EAAuBhgH,GAC9B,OAAOA,IAAYA,aAAmB4kC,SAAW5kC,aAAmB8E,YACtE,CAIAo2B,EAAOluB,QAAU,CACfmzG,YAtIF,SAAqBC,GACnB,IAAIC,EACJ,GAAkB,kBAAPD,EAAiB,CAE1B,GAAkB,QADlBC,EAAYvlH,SAAS4kH,eAAeU,IAElC,MAAM,IAAIh1G,MAAM,2BAA6Bg1G,EAAK,yBAEpD,OAAOC,CACT,CAAO,GAAW,OAAPD,QAAsB,IAAPA,EACxB,MAAM,IAAIh1G,MAAM,6CAElB,OAAOg1G,CACT,EA2HEE,UA1HF,SAAmBhB,GACjB,IAAIiB,EAAMn1E,EAAGsI,OAAO4rE,GACpB,OAAOiB,EAAIxiH,iBAAkB+G,aAAey7G,EAAIl/G,QAAUk/G,EAAI9pE,QAAQ,iBACxE,EAwHE4oE,gBACAmB,aApHF,SAAsBv8G,EAAUw7G,GAC9BD,EAAoB,SAAUv7G,EAAUw7G,EAC1C,EAmHED,sBACAiB,uBA9FF,SAAgCvY,GAC9B,IAAI1tE,EAAK,mBAAqB0tE,EAC1BxiF,EAAQ5qB,SAAS4kH,eAAellF,GAChC9U,GAAO25F,EAAc35F,EAC3B,EA2FEg7F,gBA1FF,SAAyBz8G,EAAU08G,EAAgBC,EAAeC,EAAaC,EAAe9gH,GAC5F,IAAI+gH,EAAmBF,EAAYn9G,MAAM,KACrCs9G,EAAqBF,EAAcp9G,MAAM,KACzCu9G,EAAqB,6BACpBjhH,IACHA,EAAUlF,UAEZkF,EAAQgD,iBAAiBiB,GAAUtJ,SAAQ,SAAS2kH,GAC7CA,EAAGn8G,aAAa89G,KACnB3B,EAAGx/F,iBAAiB,cAAc,WAChC,IAAIohG,EAAU9nH,KAAKyM,cAAc+6G,GAC7BM,IACFA,EAAQx7F,MAAMq7F,EAAiB,IAAMA,EAAiB,GAE1D,IACAzB,EAAGx/F,iBAAiB,cAAc,WAChC,IAAIohG,EAAU9nH,KAAKyM,cAAc+6G,GAC7BM,IACEP,GAAkBvnH,KAAKmmB,QAAQohG,GACjCO,EAAQx7F,MAAMq7F,EAAiB,IAAMA,EAAiB,GAEtDG,EAAQx7F,MAAMs7F,EAAmB,IAAMA,EAAmB,GAGhE,IACA1B,EAAGtkH,aAAaimH,GAAoB,GAExC,GACF,EA+DEE,uBA9DF,SAAgCnhH,GAC9B,IAAI+/G,EAAcD,EAAuB9/G,GACrCi/D,EAAM,CACR,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GASF,OAPA8gD,EAAYplH,SAAQ,SAASgB,GAC3B,IAAIgsB,EAAIk4F,EAA0BlkH,GAClC,GAAIgsB,EAAG,CACL,IAAIuE,EAAI0iB,EAAOswE,iBAAiBv3F,GAChCs3C,EAAM++C,EAAOlB,SAAS79C,EAAKA,EAAK/yC,EAClC,CACF,IACO+yC,CACT,EAmCE4gD,4BACAC,yBACAsB,cAdF,SAAuB38F,EAAG4H,GACxB,OAAO5H,GAAK4H,GAAK5H,EAAEgP,MAAQpH,EAAEoH,KAAOhP,EAAEmP,OAASvH,EAAEuH,MAAQnP,EAAEiP,QAAUrH,EAAEqH,OAASjP,EAAEkP,SAAWtH,EAAEsH,MACjG,EAcF,IAIE0tF,GAA+B/5E,EAAW,CAC5C,oCAAoCt6B,EAASkuB,GAE3CA,EAAOluB,QAAU,CACfkI,KAAM,CACJyvF,QAAS,aACTE,KAAM,WACN/gF,OAAQ,CAAC,YAAa,OAAQ,aAEhCrP,UAAW,CACTkwF,QAAS,aACT7gF,OAAQ,CAAC,UAAW,WACpB+gF,KAAM,WAERyc,YAAa,CACX3c,QAAS,UACTE,MAAM,GAER0c,MAAO,CACL9wG,SAAU,CACRk0F,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,KAERvnB,OAAQ,CACNqnB,QAAS,UACTE,MAAM,IAGVt0F,WAAY,CACVE,SAAU,CACRk0F,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,IACNJ,SAAU,QAEZ1pF,OAAQ,CACN4pF,QAAS,aACTE,KAAM,eACN/gF,OAAQ,CACN,SACA,OACA,QACA,MACA,MACA,SACA,UACA,OACA,SACA,YACA,UACA,WACA,SACA,SACA,YACA,aACA,UACA,YACA,aACA,WACA,YACA,UACA,UACA,aACA,cACA,WACA,aACA,gBACA,cACA,eACA,aACA,aACA,gBACA,iBACA,cACA,iBAEF2gF,SAAU,QAEZ+c,SAAU,CACR7c,QAAS,aACT7gF,OAAQ,CAAC,eAAgB,gBACzB+gF,KAAM,eACNJ,SAAU,SAIlB,IAIEgd,GAAqBn6E,EAAW,CAClC,6BAA6Bt6B,EAASkuB,GAEpC,IAAIipE,EAAaV,IAAiBU,WAC9B19E,EAAgBssE,IAChB2uB,EAAY,CACd/c,QAAS,WACTC,OAAQ,CAAC,QACTY,MAAO,CAAC,OAAQ,iBAAkB,OAAQ,QAAS,aAAc,cAE/Dmc,EAAa,CACfhd,QAAS,WACTC,OAAQ,CAAC,QACTY,MAAO,CACL,OACA,OACA,SACA,QACA,UACA,cACA,UACA,SACA,YACA,cAGAoc,EAAqBF,EAAUlc,MAAMnoG,QAAQ2G,OAAO,CAAC,eACrD69G,EAAsBF,EAAWnc,MAAMnoG,QAAQ2G,OAAO,gBAgC1D,SAAS89G,EAASxhG,GAEhB,IADA,IAAI2+C,EAAM,CAAC,EACF5jE,EAAI,EAAGA,EAAIilB,EAAK7mB,OAAQ4B,IAAK4jE,EAAI3+C,EAAKjlB,KAAM,EACrD,OAAO4jE,CACT,CACA,SAAS8iD,EAAYhd,EAAOid,EAAkBC,GAC5C,IAAIhjD,EAAMklC,EAAW,CAAC,EAAGY,GACzB,IAAK,IAAIzqG,KAAO2kE,EAAK,CACnB,IAAI3oB,EAAO2oB,EAAI3kE,GACXmsB,EAAc6vB,KAChB2oB,EAAI3kE,GAAO4nH,EAAY5rE,EAAM0rE,EAAkBC,EAAoB3nH,GAEvE,CAEA,MAD2B,cAAvB2nH,IAAoChjD,EAAIwlC,SAAWud,GAChD/iD,CACT,CACA,SAASijD,EAAY5rE,EAAM0rE,EAAkBC,EAAoB3nH,GAC/D,GAAIg8C,EAAKquD,QAAS,CAChB,IAAI1lC,EAAMklC,EAAW,CAAC,EAAG7tD,GAEzB,GADA2oB,EAAIwlC,SAAWud,EACX/+G,MAAMiI,QAAQorC,EAAK44D,OAAQ,CAC7BjwC,EAAIiwC,MAAQ,IAAIjsG,MAAMqzC,EAAK44D,MAAMz1G,QACjC,IAAK,IAAI4B,EAAI,EAAGA,EAAIi7C,EAAK44D,MAAMz1G,OAAQ4B,IACrC4jE,EAAIiwC,MAAM7zG,GAAK6mH,EAAY5rE,EAAK44D,MAAM7zG,GAAI2mH,EAE9C,CACA,OAAO/iD,CACT,CACE,OAAO8iD,EACLzrE,EACA0rE,EACkB,MAAlB1nH,EAAIopB,OAAO,GAAa,SAAW,YAGzC,CAjEAwX,EAAOluB,QAAU,CACfm1G,OAAQT,EACRp+C,OAAQq+C,EAKRS,WAAY,WACV,OAAON,EAASF,EAClB,EAKAS,YAAa,WACX,OAAOP,EAASD,EAClB,EAIAlqE,OAAQ,SAAS6tD,EAAOlvD,GACtB,IAAImuD,EAAWnuD,EAAKmuD,SACpB,GAAIA,GAAyB,SAAbA,EAEd,IADA,IAAI6d,EAAgB7d,EAAS/gG,MAAM,KAC1BrI,EAAI,EAAGA,EAAIinH,EAAc7oH,OAAQ4B,IACxCmqG,EAAM8c,EAAcjnH,KAAM,CAGhC,EACA0mH,cAqCJ,IAIEQ,GAAsBj7E,EAAW,CACnC,uCAAuCt6B,GAErCA,EAAQw1G,KAAO,CACb7d,QAAS,SAKT7gF,OAAQ,CAAC,QAAS,MAAO,OAAQ,WAAY,UAAW,eACxD+gF,KAAM,QACNJ,SAAU,SAEZz3F,EAAQtQ,QAAU,CAChBgvB,MAAO,CACLi5E,QAAS,aACT7gF,OAAQ,CAAC,GAAI,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAC5C+gF,KAAM,GACNiB,SAAS,EACTrB,SAAU,SAEZge,SAAU,CACR9d,QAAS,aACT7gF,OAAQ,CAAC,UAAW,WACpB+gF,KAAM,UACNJ,SAAU,SAEZv0E,QAAS,CACPy0E,QAAS,QACTmB,SAAS,EACTrB,SAAU,SAEZie,QAAS,CACP/d,QAAS,QACTmB,SAAS,EACTrB,SAAU,SAEZke,UAAW,CACThe,QAAS,SACTF,SAAU,QACV1hF,IAAK,EACLD,IAAK,GAEPzhB,KAAM,CACJsjG,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,EACNiB,SAAS,EACTrB,SAAU,SAEZme,SAAU,CACRje,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,GACNiB,SAAS,EACTrB,SAAU,SAEZA,SAAU,QAEd,IAIEoe,GAAev7E,EAAW,CAC5B,wBAAwBt6B,EAASkuB,GAE/BA,EAAOluB,QAAU,CACf81G,YAAa,wDACbC,iBAAkB,iEAEtB,IAIEC,GAA8B17E,EAAW,CAC3C,mCAAmCt6B,GAEjC,IAAIi2G,EAAOJ,KAGX,SAASK,EAAkBC,GACzB,IAAIC,EAAWD,EAAME,YAAc,IAAMF,EAAME,YAAc,GACzD/iG,EAAO6iG,EAAM7iG,MAAQ,GACzB,GAAIA,EAAK7mB,OAAS,EAAG,CAEnB,IADA,IAAI6pH,EAAa,GACRjoH,EAAI,EAAGA,EAAIilB,EAAK7mB,OAAQ4B,IAC/BioH,EAAWjoH,GAAK,IAAMilB,EAAKjlB,GAAK,IAElC+nH,GAAsB,8CAEpBA,EADkB,IAAhB9iG,EAAK7mB,OACI2pH,EAAW,YAAcE,EAAW,GAEpCF,EAAW,aAAeE,EAAWjmH,MAAM,GAAI,GAAG4C,KAAK,MAAQ,QAAUqjH,EAAWjmH,OAAO,GAAK,GAE/G,CACA,OAAO+lH,CACT,CAlBkBH,EAAKH,YACAG,EAAKF,iBAkB5B/1G,EAAQu2G,mBAAqB,SAAS1nB,EAAMsnB,GAC1CtnB,EAAOA,GAAQ,CAAC,EAEDqnB,EADfC,EAAQA,GAAS,CAAC,GAClB,IACIK,EAAgB,CAClB7e,QAAS,SACTE,KAAM,GACNJ,SAAU5I,EAAK4I,UAAY,QAK7B,OAHqB,IAAjB5I,EAAKiK,UACP0d,EAAc1d,SAAU,GAEnB0d,CACT,EACAx2G,EAAQy2G,kBAAoB,SAAS5nB,EAAMsnB,GACzCtnB,EAAOA,GAAQ,CAAC,EAEDqnB,EADfC,EAAQA,GAAS,CAAC,GAClB,IACIO,EAAe,CACjB/e,QAAS,SACTE,KAAM,GACNJ,SAAU5I,EAAK4I,UAAY,QAK7B,OAHqB,IAAjB5I,EAAKiK,UACP4d,EAAa5d,SAAU,GAElB4d,CACT,EACA12G,EAAQ22G,uBAAyB,SAAS9nB,EAAMsnB,GAU9C,OARAA,EAAQA,GAAS,CAAC,GADlBtnB,EAAOA,GAAQ,CAAC,GAEE+nB,SACHV,EAAkBC,GACd,CACjBxe,QAAS,SACTE,KAAM,GACNJ,SAAU5I,EAAK4I,UAAY,YAG/B,CACF,IAIEof,GAA6Bv8E,EAAW,CAC1C,8CAA8Ct6B,EAASkuB,GAErD,SAAS4oF,EAAIpoF,EAAGi/C,GACd,OAAOA,EAAOA,EAAKmpC,IAAIpoF,GAAKA,CAC9B,CACA,SAASqoF,EAAIroF,EAAGi/C,GACd,OAAOA,EAAOA,EAAKopC,IAAIroF,GAAKA,CAC9B,CAaA,SAASsoF,EAAUt4F,GACjB,OAAOA,EAAMu4F,SAAW,CAC1B,CACA,SAASC,EAAUx4F,GACjB,OAAOA,EAAMy4F,SAAW,CAC1B,CACA,SAASC,EAAU14F,GACjB,OAAOA,EAAM24F,SAAW,CAC1B,CACA,SAASC,EAAU54F,GACjB,OAAOA,EAAM64F,SAAW,CAC1B,CACA,SAASC,EAAK94F,EAAO+4F,GACnB,OAAOX,EAAIp4F,EAAMgzB,GAAI+lE,GAAMP,EAAUx4F,GAASo4F,EAAIp4F,EAAM+yB,GAAIgmE,GAAMT,EAAUt4F,EAC9E,CACA,SAASg5F,EAAKh5F,EAAO+4F,EAAIE,GACvB,OAAOb,EAAIp4F,EAAMkzB,GAAI+lE,GAAML,EAAU54F,GAASo4F,EAAIp4F,EAAMizB,GAAIgmE,GAAMP,EAAU14F,EAC9E,CAqBAwP,EAAOluB,QAAU,CACfyxC,GAnDF,SAAc/yB,GACZ,OAAOA,EAAM+yB,EACf,EAkDEC,GAjDF,SAAchzB,GACZ,OAAOA,EAAMgzB,EACf,EAgDEC,GA/CF,SAAcjzB,GACZ,OAAOA,EAAMizB,EACf,EA8CEC,GA7CF,SAAclzB,GACZ,OAAOA,EAAMkzB,EACf,EA4CEgmE,MARF,SAAiBl5F,EAAO+4F,EAAIE,GAC1B,MAAsB,SAAfj5F,EAAMxtB,UAAkB,EAASwmH,EAAKh5F,EAAO+4F,EAAIE,GAAMH,EAAK94F,EAAO+4F,EAC5E,EAOE1oE,GAAIyoE,EACJxoE,GAAI0oE,EACJx0G,MA5BF,SAAiBwb,EAAO+4F,GACtB,OAAOxoH,KAAKD,IAAIwoH,EAAK94F,EAAO+4F,GAC9B,EA2BEt0G,OA1BF,SAAkBub,EAAO+4F,EAAIE,GAC3B,OAAO1oH,KAAKD,IAAI0oH,EAAKh5F,EAAO+4F,EAAIE,GAClC,EAyBElrH,OAxBF,SAAkBiyB,EAAO+4F,EAAIE,GAC3B,MAAsB,SAAfj5F,EAAMxtB,UAAkB,EAASjC,KAAK2xC,KAC3C3xC,KAAK4jD,IAAI2kE,EAAK94F,EAAO+4F,GAAK,GAAKxoH,KAAK4jD,IAAI6kE,EAAKh5F,EAAO+4F,EAAIE,GAAK,GAEjE,EAqBEE,QApBF,SAAmBn5F,EAAO+4F,GACxB,OAAOV,GAAKD,EAAIp4F,EAAMgzB,GAAI+lE,GAAMP,EAAUx4F,GAASo4F,EAAIp4F,EAAM+yB,GAAIgmE,GAAMT,EAAUt4F,IAAU,EAAG+4F,EAChG,EAmBEK,QAlBF,SAAmBp5F,EAAO+4F,EAAIE,GAC5B,OAAOZ,GAAKD,EAAIp4F,EAAMkzB,GAAI+lE,GAAML,EAAU54F,GAASo4F,EAAIp4F,EAAMizB,GAAIgmE,GAAMP,EAAU14F,IAAU,EAAGi5F,EAChG,EAkBF,IAIEI,GAAsBz9E,EAAW,CACnC,oDAAoDt6B,EAASkuB,GAE3D,IAAI6mF,EAAcN,KAAqBM,YACnCiD,EAAqBxd,IACrBf,EAAYlC,IACZie,EAAOD,KAAsBC,KAC7Bre,EAAaV,IAAiBU,WAC9Bwf,EAAyBX,KAA8BW,uBACvDsB,EAA6BpB,KACjC3oF,EAAOluB,QAAU+0G,EAAY,CAC3B6B,SAAU,CACRjc,QAASxD,EAAW,CAAC,EAAG6gB,EAAmBrd,QAAS,CAAC,GACrDC,WAAY,CACVjD,QAAS,UACTE,MAAM,GAERgD,OAAQ1D,EAAW,CAAC,EAAG6gB,EAAmBnd,OAAQ,CAAC,GACnDC,YAAa3D,EAAW,CAAC,EAAG6gB,EAAmBld,YAAa,CAAC,GAC7DC,iBAAkB,CAChB10F,KAAM8wF,EAAW,CAAC,EAAG6gB,EAAmBjd,iBAAiB10F,KAAM,CAAC,GAChEqzF,KAAMD,EAAU,CAAC,IAEnBuB,WAAY7D,EAAW,CAAC,EAAG6gB,EAAmBhd,WAAY,CAAC,GAC3DC,YAAa9D,EAAW,CAAC,EAAG6gB,EAAmB/c,YAAa,CAAC,GAC7DvqG,KAAM,CACJsR,MAAO,CACL21F,QAAS,SAEXz0F,MAAO,CACLy0F,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GAER2d,KAAMre,EAAW,CAAC,EAAGqe,EAAM,CACzB3d,KAAM,WAGVqgB,UAAW,CACTvgB,QAAS,QACTE,KAAM,iBAERsgB,SAAU,CACRxgB,QAAS,aACT7gF,OAAQ,CAAC,UAAW,WACpB+gF,KAAM,WAERl8F,QAAS,CACPg8F,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,GAERugB,MAAO,CACLzgB,QAAS,aACT7gF,OAAQ,CAAC,QAAS,QAAS,WAC3B+gF,KAAM,SAERwgB,cAAe,CACb1gB,QAAS,aACT7gF,OAAQ,CAAC,QAAS,aAAc,WAAY,YAC5C+gF,KAAM,YAERvgG,KAAM6/F,EAAW,CAAC,EAAG6gB,EAAmB1gH,KAAM,CAAC,GAC/Ckd,MAAO,CACLnO,KAAM,CACJsxF,QAAS,SACTE,KAAM,IAER6e,aAAcC,EAAuB,CAAEC,UAAU,GAAQ,CAAEtjG,KAAMhkB,OAAOgkB,KAAK2kG,KAC7Eve,KAAMD,EAAU,CAAC,GACjB6e,aAAc,CACZ3gB,QAAS,aACT7gF,OAAQ,CACN,WACA,aACA,YACA,cACA,gBACA,eACA,cACA,gBACA,eACA,QACA,SACA,QAGJyhG,UAAW,CACT5gB,QAAS,QACTE,KAAM,QAER2gB,QAAS,CACP7gB,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,OAAQ,SAAU,SACnC+gF,KAAM,QAER4gB,QAAS,CACP9gB,QAAS,aACT7gF,OAAQ,CAAC,MAAO,SAAU,WAE5BiK,QAAS,CACP42E,QAAS,SACTE,KAAM,EACN9hF,IAAK,KAIX2iG,YAAa,CACXR,UAAW,CACTvgB,QAAS,QACTE,KAAM,kBAERl8F,QAAS,CACPg8F,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,MAGT,OAAQ,YACb,IAIE8gB,GAAsBr+E,EAAW,CACnC,4DAA4Dt6B,EAASkuB,GAEnE,IAAIsnF,EAAOD,KAAsBC,KAC7Bre,EAAaV,IAAiBU,WAClCjpE,EAAOluB,QAAU,CACf44G,aAAc,CACZ1wG,KAAM,CACJyvF,QAAS,aACT7gF,OAAQ,CAAC,YAAa,WACtB+gF,KAAM,YACNJ,SAAU,QAEZ/mG,KAAM,CACJsR,MAAO,CACL21F,QAAS,QACTF,SAAU,QAEZv0F,MAAO,CACLy0F,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,EACNJ,SAAU,QAEZ+d,KAAMre,EAAW,CAAC,EAAGqe,EAAM,CACzB3d,KAAM,MACNJ,SAAU,SAEZA,SAAU,QAGZA,SAAU,QAEZohB,gBAAiB,CACfX,UAAW,CACTvgB,QAAS,QACTE,KAAM,gBACNJ,SAAU,QAEZ97F,QAAS,CACPg8F,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,GACNJ,SAAU,QAEZA,SAAU,QAGhB,IAIEqhB,GAAyBx+E,EAAW,CACtC,8BAA8Bt6B,EAASkuB,GAErCA,EAAOluB,QAAU,SAAS6uF,GACxB,IAAI4I,EAAW5I,EAAK4I,SACpB,MAAO,CACL98E,EAAG,CACDg9E,QAAS,SACTE,KAAM,EACNJ,YAEFh9E,EAAG,CACDk9E,QAAS,SACTE,KAAM,EACNJ,YAEFp4E,EAAG,CACDs4E,QAAS,SACTE,KAAM,EACNJ,YAEFjgF,EAAG,CACDmgF,QAAS,SACTE,KAAM,EACNJ,YAEFA,WAEJ,CACF,IAIEshB,GAA6Bz+E,EAAW,CAC1C,iCAAiCt6B,EAASkuB,GAExC,IAAIurE,EAAYlC,IACZyhB,EAAiB3E,KACjBzW,EAAaP,IACb4b,EAAoBlB,KACpBmB,EAAwBP,KACxBQ,EAAWL,KACX3hB,EAAaV,IAAiBU,WAC9BiiB,EAAa3f,EAAU,CACzBhC,SAAU,SAEZ2hB,EAAWphB,OAAOH,KAAO,0CACzBuhB,EAAW/kH,KAAKwjG,KAAO,GACvBuhB,EAAWp3G,MAAM61F,KAAO+F,EAAWL,YACnCrvE,EAAOluB,QAAU,CACf05F,KAAM0f,EACNC,MAAO,CACLhzG,KAAM,CACJsxF,QAAS,SACTF,SAAU,eAEZiC,KAAMD,EAAU,CACdhC,SAAU,gBAEZ6hB,SAAU,CACRjzG,KAAM,CACJsxF,QAAS,SACTF,SAAU,eAEZiC,KAAMD,EAAU,CACdhC,SAAU,gBAEZA,SAAU,eAEZ8hB,KAAM,CACJ5hB,QAAS,aACTE,KAAM,YACN/gF,OAAQ,CAAC,YAAa,SACtB2gF,SAAU,eAEZ+hB,KAAM,CACJ7hB,QAAS,aACTE,KAAM,YACN/gF,OAAQ,CAAC,YAAa,SACtB2gF,SAAU,eAEZjjG,EAAG,CACDmjG,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,GACNJ,SAAU,eAEZhjG,EAAG,CACDkjG,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,OACNJ,SAAU,eAEZ+gB,QAAS,CACP7gB,QAAS,aACTE,KAAM,OACN/gF,OAAQ,CAAC,OAAQ,OAAQ,SAAU,SACnC2gF,SAAU,eAEZghB,QAAS,CACP9gB,QAAS,aACTE,KAAM,OACN/gF,OAAQ,CAAC,OAAQ,MAAO,SAAU,UAClC2gF,SAAU,eAEZn2B,IAAK61B,EAAWgiB,EAAS,CAAE1hB,SAAU,gBAAkB,CAAC,GACxDgiB,WAAY,CACV9hB,QAAS,UACTE,MAAM,EACNJ,SAAU,QAEZA,SAAU,eAEZiiB,YAAa,CACXxxG,KAAM,CACJyvF,QAAS,aACT7gF,OAAQ,EAAC,EAAO,OAAQ,QACxB+gF,MAAM,EACNJ,SAAU,QAEZkiB,QAAS,CACPhiB,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,EACNJ,SAAU,QAEZA,SAAU,QAEZmiB,SAAU,CACRjiB,QAAS,UACTE,MAAM,EAGNJ,SAAU,QAEZv0F,MAAO,CACLy0F,QAAS,SACT5hF,IAAK,GACL8hF,KAAM,IACNJ,SAAU,QAEZt0F,OAAQ,CACNw0F,QAAS,SACT5hF,IAAK,GACL8hF,KAAM,IACNJ,SAAU,QAEZoiB,gBAAiB,CACfliB,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GACNJ,SAAU,QAEZqiB,iBAAkB,CAChBniB,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GACNJ,SAAU,QAEZ32E,OAAQ,CACNtJ,EAAG,CACDmgF,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GACNJ,SAAU,QAEZh9E,EAAG,CACDk9E,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GACNJ,SAAU,QAEZ98E,EAAG,CACDg9E,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,IACNJ,SAAU,QAEZp4E,EAAG,CACDs4E,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GACNJ,SAAU,QAEZn2B,IAAK,CACHq2B,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,EACNJ,SAAU,QAEZsiB,WAAY,CACVpiB,QAAS,UACTE,MAAM,EACNJ,SAAU,QAEZA,SAAU,QAEZuiB,SAAU,CACRriB,QAAS,MACTF,SAAU,QAEZwiB,cAAe,CACbtiB,QAAS,QACTE,KAAM+F,EAAWn3F,WACjBgxF,SAAU,QAEZyiB,aAAc,CAGZviB,QAAS,QACTE,KAAM+F,EAAWn3F,WACjBgxF,SAAU,eAEZ0iB,gBAAiB,CACfxiB,QAAS,aACT7gF,OAAQ,CAAC,gBAAiB,UAC1B+gF,KAAM,gBACNJ,SAAU,QAEZ2iB,WAAY,CACVziB,QAAS,SACTF,SAAU,QAEZ4iB,YAAa,CACX1iB,QAAS,UACTE,MAAM,EACNJ,SAAU,QAEZmD,WAAY,CAGVjD,QAAS,UACTF,SAAU,UAEZ6iB,SAAU,CACR3iB,QAAS,YACTE,KAAM+F,EAAWN,SACjB7F,SAAU,QAEZ8iB,aAAc,CACZ5iB,QAAS,MACTF,SAAU,QAEZiE,WAAY,CACV/D,QAAS,MACTF,SAAU,QAEZ+iB,aAAc,CACZ7iB,QAAS,MACTF,SAAU,QAEZgjB,kBAAmB,CACjB9iB,QAAS,MACTF,SAAU,QAEZqL,SAAU,CACRnL,QAAS,MACTF,SAAU,QAEZmf,SAAUqC,EAAkBrC,SAC5B8B,YAAaO,EAAkBP,YAC/BE,aAAcM,EAAsBN,aACpCC,gBAAiBK,EAAsBL,gBACvCxd,KAAM,CACJ1D,QAAS,MACTmB,SAAS,EACTrB,SAAU,QAEZl0F,WAAY4zF,EAAW,CAAC,EAAG6hB,EAAez1G,WAAY,CACpDk0F,SAAU,SAGhB,IAIEijB,GAAmBtgF,EAAM,CAC3B,mEACA,IAKEugF,GAAoBvgF,EAAM,CAC5B,wFACEsgF,IACF,IAIEE,GAAmBtgF,EAAW,CAChC,kBAAkBt6B,GAEhB,IAAI66G,EAAUzS,IACV0S,EAAOnS,IACPoS,EAAanS,IACbnvF,EAAgBssE,IAChBytB,EAAepB,KAAcoB,aAC7BwH,EAAevkB,IACfuhB,EAAqBxd,IACrBygB,EAAuBlC,KACvB5hB,EAAa6jB,EAAa7jB,WAC1BE,EAAgB2jB,EAAa3jB,cAyEjC,SAAS6jB,EAAoBnX,GAC3B,IAAIoX,EAAWpX,EAAQzsG,KACnB8jH,EAAerX,EAAQsX,WACvBhgB,EAAO0I,EAAQ1I,KACnB,GAAIr7F,EAAQs7G,QAAQH,GAClBN,EAAQjqE,IAAI,QAAUuqE,EAAW,2BADnC,CAIKn7G,EAAQu7G,iBAAiBxX,EAAQyX,eAAelkH,OAqCvD,SAAyBysG,GACvB,IAAI0X,EAAW1X,EAAQzsG,KACvB,GAAI0I,EAAQu7G,iBAAiBE,GAC3BZ,EAAQjqE,IAAI,aAAe6qE,EAAW,6BAKxC,IAAK,IAAItrG,KAFTurG,EAAiB3X,GACjB/jG,EAAQu7G,iBAAiBE,GAAY1X,EACX/jG,EAAQ27G,mBAChCC,EAA6BzrG,EAAe4zF,EAAQzsG,KAExD,CA/CIukH,CAAgB9X,EAAQyX,gBAG1B,IADA,IAAIM,EAAc,CAAC,EACVztH,EAAI,EAAGA,EAAI+sH,EAAa3uH,OAAQ4B,IACvCytH,EAAYV,EAAa/sH,KAAM,EAC/B2R,EAAQ+7G,cAAcX,EAAa/sH,KAAM,EAU3C,IAAK,IAAI8hB,KARTnQ,EAAQs7G,QAAQH,GAAY,CAC1BpX,UACAsX,WAAYS,GAEVzgB,GAAQ/rG,OAAOgkB,KAAK+nF,GAAM5uG,SAC5BuT,EAAQs7G,QAAQH,GAAU9f,KAAOA,GAEnCr7F,EAAQg8G,SAAShvH,KAAKmuH,GACIn7G,EAAQ27G,mBAChCM,EAA2B9rG,EAAegrG,GAExCpX,EAAQmY,kBACV/kB,EAAWn3F,EAAQm8G,sBAAuBpY,EAAQmY,kBAEpD,IAAIV,EAAiBzX,EAAQyX,eACzBY,EAAUZ,EAAelkH,KAC7B,GAAgB,WAAZ8kH,EAAsB,CACxB,IAAIC,EAAab,EAAehiB,UAAU6iB,WAC1C,IAAK,IAAI9nH,KAAK8nH,EACZ7I,EAAa,qCAAuCj/G,EAAG8nH,EAAW9nH,GAEtE,CACgB,QAAZ6nH,GACFzB,KAEe,QAAZyB,GAAiC,WAAZA,GAAoC,QAAZA,QAAiD,IAA3BpwF,OAAOswF,kBAC7EtwF,OAAOswF,gBAAkB,CAAEC,SAAU,CAAC,GAnCxC,CAqCF,CAaA,SAASC,EAAwBzY,GAC/B,GAA4B,kBAAjBA,EAAQzsG,KACjB,MAAM,IAAI8G,MAAM,6CAElB,IAAIu8B,EAAQopE,EAAQzsG,KAQpB,IAAK,IAAImlH,KAPTz8G,EAAQ27G,mBAAmBhhF,GAASopE,EAChCA,EAAQmY,mBACNnY,EAAQmY,iBAAiBQ,kBAC3B3B,EAAW/6G,EAAQ28G,sBAAuBhiF,GAE5C+gF,EAAiB3X,IAEG/jG,EAAQs7G,QAC5BW,EAA2BthF,EAAO8hF,GAEpC,IAAK,IAAIG,KAAe58G,EAAQu7G,iBAC9BK,EAA6BjhF,EAAOiiF,GAElC7Y,EAAQ8Y,QAAU9Y,EAAQ8Y,OAAOvmD,QACnC+gC,EAAc4jB,EAAsBlX,EAAQ8Y,OAAOvmD,OAEvD,CACA,SAASwmD,EAAwB/Y,GAC/B,GAA4B,kBAAjBA,EAAQzsG,KACjB,MAAM,IAAI8G,MAAM,6CAElB,IAAI7I,EAAS,oBAAsBwuG,EAAQzsG,KACvCylH,EAA4C,oBAAtBhZ,EAAQllF,UAC9Bm+F,EAAoD,oBAA1BjZ,EAAQkZ,cACtC,IAAKF,IAAiBC,EACpB,MAAM,IAAI5+G,MAAM7I,EAAS,wDAEvBwnH,GAAgBC,GAClBnC,EAAQjqE,IAAI,CACVr7C,EAAS,uDACT,wDACA,uCACAtC,KAAK,MAEJwmB,EAAcsqF,EAAQpB,aACzBkY,EAAQjqE,IAAIr7C,EAAS,+CAEe,oBAA3BwuG,EAAQmZ,gBACjBrC,EAAQjqE,IAAIr7C,EAAS,iDAEzB,CACA,SAAS4nH,EAAepZ,GACtB,IAAIv0E,EAASu0E,EAAQzsG,KACjB8lH,EAAa5tF,EAAO94B,MAAM,KAAK,GAC/B2mH,EAAUtZ,EAAQuZ,WAClBv+B,EAAYglB,EAAQ5xE,OACpBorF,EAAUF,GAAW/tH,OAAOgkB,KAAK+pG,GAAS5wH,OAC1C+wH,EAAYz+B,GAAazvF,OAAOgkB,KAAKyrE,GAAWtyF,OAChD86G,EAAUvnG,EAAQy9G,eAClBC,EAAYnW,EAAQ/3E,GAExB,GADKkuF,IAAWnW,EAAQ/3E,GAAUkuF,EAAY,CAAC,GAC3CN,IAAe5tF,EAAQ,CACzB,IAAImuF,EAAgBpW,EAAQ6V,GACvBO,IAAepW,EAAQ6V,GAAcO,EAAgB,CAAC,GACvDJ,GAAWI,EAAcL,aAAeI,EAAUJ,aACpDK,EAAcL,WAAaD,GAEzBG,GAAaG,EAAcxrF,SAAWurF,EAAUvrF,SAClDwrF,EAAcxrF,OAAS4sD,EAE3B,CACIw+B,IAASG,EAAUJ,WAAaD,GAChCG,IAAWE,EAAUvrF,OAAS4sD,EACpC,CACA,SAAS28B,EAAiB3X,GACxB,GAAIA,EAAQmY,iBAAkB,CAC5B,IAAI0B,EAAmB7Z,EAAQmY,iBAAiB2B,kBAChD,GAAID,EACF,IAAK,IAAIvvH,EAAI,EAAGA,EAAIuvH,EAAiBnxH,OAAQ4B,IAC3C0sH,EAAW/6G,EAAQ89G,mBAAoBF,EAAiBvvH,GAG9D,CACF,CACA,SAAS4tH,EAA2B9rG,EAAessG,GACjD,IAAIsB,EAAkB/9G,EAAQ27G,mBAAmBxrG,GAAe0sG,OAChE,GAAKkB,GAAoBA,EAAgB5I,OAAzC,CACA,IAAI6I,EAAaD,EAAgB5I,OAAOsH,GACpCuB,GACF3mB,EAAcr3F,EAAQs7G,QAAQmB,GAAW1Y,QAAQpB,WAAYqb,EAHR,CAKzD,CACA,SAASpC,EAA6BzrG,EAAeysG,GACnD,IAAImB,EAAkB/9G,EAAQ27G,mBAAmBxrG,GAAe0sG,OAChE,GAAKkB,GAAoBA,EAAgBE,SAAzC,CACA,IAAIC,EAAgBl+G,EAAQu7G,iBAAiBqB,GACzCuB,EAAeD,EAAchC,iBAC7BkC,EAAqC,YAAvBF,EAAc50E,KAAqB40E,EAAc5mH,KAAO4mH,EAAc50E,KACpFrzC,MAAMiI,QAAQkgH,KAAcA,EAAcA,EAAY,IAC1D,IAAIC,EAAuBN,EAAgBE,SAASG,GAChDD,GAAgBE,GAClBhnB,EAAc8mB,EAAcE,EAP2B,CAS3D,CACA,SAASC,EAAa7B,GAEpB,MADyB,kBAAdA,IAAwBA,EAAYA,EAAUvrH,MAClDurH,CACT,CAvOAz8G,EAAQs7G,QAAU,CAAC,EACnBt7G,EAAQ+7G,cAAgB,CAAC,EACzB/7G,EAAQg8G,SAAW,GACnBh8G,EAAQu7G,iBAAmB,CAAC,EAC5Bv7G,EAAQ27G,mBAAqB,CAAC,EAC9B37G,EAAQ28G,sBAAwB,GAChC38G,EAAQ89G,mBAAqB,GAC7B99G,EAAQm8G,sBAAwB,CAAC,EACjCn8G,EAAQy9G,eAAiB,CAAC,EAC1Bz9G,EAAQu+G,kBAAoB,CAAC,EAC7Bv+G,EAAQw+G,wBAA0B,KAClCx+G,EAAQy+G,SAAW,SAAkBC,GAEnC,GADA1+G,EAAQw+G,wBAA0B,MAC7BE,EACH,MAAM,IAAItgH,MAAM,0CACPsgH,IAAazoH,MAAMiI,QAAQwgH,KACpCA,EAAW,CAACA,IAEd,IAAK,IAAIrwH,EAAI,EAAGA,EAAIqwH,EAASjyH,OAAQ4B,IAAK,CACxC,IAAIswH,EAAYD,EAASrwH,GACzB,IAAKswH,EACH,MAAM,IAAIvgH,MAAM,kDAElB,OAAQugH,EAAUC,YAChB,IAAK,QACH1D,EAAoByD,GACpB,MACF,IAAK,YACH7B,EAAwB6B,GACxB,MACF,IAAK,YACHnC,EAAwBmC,GACxB,MACF,IAAK,SACHxB,EAAewB,GACf,MACF,IAAK,YACH,IAAIhkF,EAAQgkF,EAAUrnH,KACtB0I,EAAQu+G,kBAAkB5jF,GAASgkF,EAAUlnH,GAC7C,MACF,QACE,MAAM,IAAI2G,MAAM,kDAEtB,CACF,EACA4B,EAAQ6+G,UAAY,SAASpW,GAC3B,IAAI1E,EAAU/jG,EAAQs7G,QAAQgD,EAAa7V,IAC3C,QAAK1E,GACEA,EAAQA,OACjB,EACA/jG,EAAQ8+G,QAAU,SAASrC,EAAWsC,GAEpC,GAAkB,aADlBtC,EAAY6B,EAAa7B,IACI,OAAO,EACpC,IAAI1Y,EAAU/jG,EAAQs7G,QAAQmB,GAO9B,OANK1Y,IACC0Y,GACF5B,EAAQjqE,IAAI,2BAA6B6rE,EAAY,KAEvD1Y,EAAU/jG,EAAQs7G,QAAQtD,EAAmB9mH,KAAK2mG,SAE3CkM,EAAQsX,WAAW0D,EAC9B,EACA/+G,EAAQg/G,mBAAqB,SAASrkF,EAAOmI,GAC3C,IAAIihE,EAAU/jG,EAAQ27G,mBAAmBhhF,GACzC,OAAKopE,GACEA,EAAQjhE,IADMg4E,CAEvB,EACA96G,EAAQ9J,KAAO,WACb,IAAIykC,EAAQvhC,UAAU,GAClBC,EAAO,GAAGhJ,MAAM6F,KAAKkD,UAAW,GACpC,OAAO4G,EAAQu+G,kBAAkB5jF,GAAOlhC,MAAM,KAAMJ,EACtD,CAiKF,IAIE4lH,GAAgB3kF,EAAW,CAC7B,mBAAmBt6B,GAEjB,IA2CIk/G,EACAC,EA5CAj/B,EAAa9G,IAAyB8G,WACtCgK,EAAY7G,IACZw3B,EAAUzS,IACV5tE,EAAMyzD,IAAczzD,IACpBg/D,EAAYhW,IACZC,EAAS+V,EAAU/V,OACnBa,EAASkV,EAAUlV,OACnBC,EAAUiV,EAAUjV,QACpBC,EAASgV,EAAUhV,OACnBC,EAAS+U,EAAU/U,OACnBG,EAAU4U,EAAU5U,QACpBw6B,EAAWxE,KACXn7B,EAAYrG,IAAyBqG,UACrC4/B,EAAkB,sIAClBC,EAAqB,wIACrBC,GAAS,IAAqBxvF,MAAQI,cAAgB,GAC1D,SAASqvF,EAAgBC,GACvB,OAAOA,GAAYL,EAASzD,mBAAmB+D,WAAiC,kBAAbD,GAAsC,cAAbA,CAC9F,CA0FA,SAASE,EAAKxoG,EAAKyoG,GACjB,OAAOzwH,OAAOgoB,EAAMloB,KAAK4jD,IAAI,GAAI+sE,IAAS1vH,OAAO,EACnD,CA3FA8P,EAAQ6/G,UAAY,SAASJ,EAAUK,GACrC,IAAIC,EAMN,SAAoBN,EAAUhsC,GAC5B,OAAI+rC,EAAgBC,GACXhsC,EAAS2rC,EAASJ,mBAAmB,YAAa,oBAAoBS,GAAYL,EAASJ,mBAAmB,YAAa,kBAAkBS,GAE7IhsC,EAAS,aAAe,YAEnC,CAZcusC,CAAWP,IAAYK,GACnC,GAAIA,EAAY,EAAG,OAAOC,EAC1B,IAAIrxF,EAAI1uB,EAAQigH,YAAYF,EAAON,GAEnC,OADA/wF,GAAK41D,GAAUw7B,EAAY,GACpB9/G,EAAQkgH,YAAYxxF,EAAG,EAAG+wF,EACnC,EAQAz/G,EAAQmgH,UAAY,SAASV,GAC3B,OAAID,EAAgBC,GACXL,EAASJ,mBAAmB,YAAa,aAAaS,GAEtD,CAAC,aAAc,aAE1B,EACAz/G,EAAQogH,SAAW,SAAS1xF,GAC1B,MAAoB,kBAANA,GAAwB,OAANA,GAAmC,oBAAdA,EAAEkD,OACzD,EAGA5xB,EAAQigH,YAAc,SAAS1oG,EAAGkoG,GAChC,GAAIz/G,EAAQogH,SAAS7oG,GAAI,CACvB,IAAI8oG,EAAW9oG,EAAEkb,oBAAsB+xD,EACnC87B,GAAe/oG,EAAEq9D,gBAAkBr9D,EAAEsZ,cAAgB2zD,GAAUjtE,EAAE27D,gBAAkB37D,EAAEwZ,cAAgB0zD,GAAUltE,EAAEwoE,qBAAuBxoE,EAAE0Z,mBAC9I,GAAIqvF,EAAa,CACf,IAAIC,EAAO,EAAI/7B,EACf67B,EAAWA,EAAWE,EAAO,EAAI/lF,EAAI8lF,EAAcD,EAAWE,EAAO,EAAGA,EAC1E,CAEA,OADAhpG,EAAIK,OAAOL,GAAK8oG,IACPnB,GAAU3nG,GAAK4nG,EAAe5nG,EAChCksE,CACT,CACA,GAAiB,kBAANlsE,GAA+B,kBAANA,EAAgB,OAAOksE,EAC3DlsE,EAAIpoB,OAAOooB,GACX,IAAIipG,EAAUhB,EAAgBC,GAC1BpyD,EAAK91C,EAAEb,OAAO,IACd8pG,GAAmB,MAAPnzD,GAAqB,MAAPA,IAC5B91C,EAAIA,EAAErnB,OAAO,GACbuvH,EAAW,IAEb,IAAIgB,EAAYD,GAAqC,YAA1Bf,EAASvvH,OAAO,EAAG,GAC1C2F,EAAQ0hB,EAAE1hB,MAAM4qH,EAAYnB,EAAqBD,GACrD,IAAKxpH,EAAO,OAAO4tF,EACnB,IAAIhvF,EAAIoB,EAAM,GACVqpB,EAAIrpB,EAAM,IAAM,IAChBwK,EAAIuX,OAAO/hB,EAAM,IAAM,GACvBm+B,EAAIpc,OAAO/hB,EAAM,IAAM,GACvBy4B,EAAI1W,OAAO/hB,EAAM,IAAM,GACvBw5B,EAAIzX,OAAO/hB,EAAM,KAAO,GAC5B,GAAI2qH,EAAS,CACX,GAAiB,IAAb/rH,EAAEhI,OAAc,OAAOg3F,EAE3B,IAAIi9B,EADJjsH,EAAImjB,OAAOnjB,GAEX,IACE,IAAIksH,EAAcvB,EAASJ,mBAAmB,YAAa,SAAzCI,CAAmDK,GACrE,GAAIgB,EAAW,CACb,IAAIG,EAA2C,MAA3B1hG,EAAExI,OAAOwI,EAAEzyB,OAAS,GACxCyyB,EAAI1I,SAAS0I,EAAG,IAChBwhG,EAAQC,EAAYnnC,QAAQ/kF,EAAGksH,EAAYE,aAAapsH,EAAGyqB,EAAG0hG,GAAgBvgH,EAChF,MACEqgH,EAAQC,EAAYnnC,QAAQ/kF,EAAGmjB,OAAOsH,GAAI7e,EAE9C,CAAE,MAAO1R,GACP,OAAO80F,CACT,CACA,OAAKi9B,GACGA,EAAMI,OAASl8B,GAAWN,EAAStwD,EAAIuwD,EAAUj2D,EAAIk2D,EAASn1D,EAAIo1D,EADvDhB,CAErB,CAEEhvF,EADe,IAAbA,EAAEhI,QACCmrB,OAAOnjB,GAAK,IAAM8qH,GAAU,IAAMA,EAC9B3nG,OAAOnjB,GAClByqB,GAAK,EACL,IAAI1N,EAAO,IAAIue,KAAKA,KAAKE,IAAI,IAAK/Q,EAAG7e,EAAG2zB,EAAG1F,IAE3C,OADA9c,EAAKqlE,eAAepiF,GAChB+c,EAAKilE,gBAAkBv3D,GACvB1N,EAAK6jE,eAAiBh1E,EADWojF,EAE9BjyE,EAAKogB,UAAYvC,EAAIo1D,CAC9B,EACAy6B,EAASl/G,EAAQk/G,OAASl/G,EAAQigH,YAAY,SAC9Cd,EAASn/G,EAAQm/G,OAASn/G,EAAQigH,YAAY,4BAC9CjgH,EAAQ+gH,WAAa,SAASxpG,EAAGkoG,GAC/B,OAAOz/G,EAAQigH,YAAY1oG,EAAGkoG,KAAch8B,CAC9C,EAIA,IAAIu9B,EAAa,GAAK18B,EAClB28B,EAAa,EAAI18B,EACjB28B,EAAU,EAAI18B,EA6ClB,SAAS28B,EAAYC,EAASliH,EAAGggB,EAAG3H,EAAG8pG,GACrC,IAAIniH,GAAKggB,GAAK3H,GAAK8pG,KACjBD,GAAW,IAAMzB,EAAKzgH,EAAG,GAAK,IAAMygH,EAAKzgG,EAAG,IACxC3H,GAAK8pG,KACPD,GAAW,IAAMzB,EAAKpoG,EAAG,GACrB8pG,IAAQ,CAEV,IADA,IAAIzB,EAAS,EACNyB,EAAS,KAAO,GACrBzB,GAAU,EACVyB,GAAU,GAEZD,GAAW,IAAMzB,EAAK0B,EAAQzB,EAChC,CAGJ,OAAOwB,CACT,CA5DAphH,EAAQkgH,YAAc,SAAShxF,EAAIzU,EAAGglG,GACpC,GAAkB,kBAAPvwF,KAAqBA,GAAMgwF,GAAUhwF,GAAMiwF,GAAS,OAAO17B,EACjEhpE,IAAGA,EAAI,GACZ,IAEI2mG,EAASliH,EAAGggB,EAAG3H,EAAG8pG,EAAQhhH,EAF1BihH,EAAaryH,KAAK2/B,MAA0B,GAApB4L,EAAItL,EAAK,IAAM,IACvCqyF,EAAYtyH,KAAK+b,MAAMkkB,EAAKoyF,EAAa,IAE7C,GAAI9B,EAAgBC,GAAW,CAC7B,IAAI+B,EAASvyH,KAAK2/B,MAAM2yF,EAAYj9B,GAAUM,EAC1C68B,EAASxyH,KAAK2/B,MAAM4L,EAAItL,EAAIo1D,IAChC,IACE88B,EAAUhC,EAASJ,mBAAmB,YAAa,SAAzCI,CAAmDK,GAAUiC,OAAOF,GAAQG,WAAW,aACnG,CAAE,MAAOhzH,GACPyyH,EAAU3hC,EAAU,YAAVA,CAAuB,IAAI1vD,KAAKwxF,GAC5C,CACA,GAA0B,MAAtBH,EAAQ1qG,OAAO,GACjB,KAAO0qG,EAAQ30H,OAAS,IAAI20H,EAAU,KAAOA,EAAQlxH,OAAO,QAE5D,KAAOkxH,EAAQ30H,OAAS,IAAI20H,EAAU,IAAMA,EAE9CliH,EAAIub,EAAIumG,EAAa/xH,KAAK2/B,MAAM6yF,EAASl9B,GAAW,EACpDrlE,EAAIzE,EAAIumG,EAAa/xH,KAAK2/B,MAAM6yF,EAASl9B,EAAUC,GAAU,EAC7DjtE,EAAIkD,EAAIwmG,EAAahyH,KAAK2/B,MAAM6yF,EAASj9B,EAASC,GAAU,EAC5D48B,EAAS5mG,EAAIymG,EAAUO,EAASh9B,EAAS,GAAK68B,EAAa,CAC7D,MACEjhH,EAAI,IAAI0vB,KAAKwxF,GACbH,EAAU3hC,EAAU,WAAVA,CAAsBp/E,GAChCnB,EAAIub,EAAIumG,EAAa3gH,EAAE20E,cAAgB,EACvC91D,EAAIzE,EAAIumG,EAAa3gH,EAAEu0E,gBAAkB,EACzCr9D,EAAIkD,EAAIwmG,EAAa5gH,EAAE6yE,gBAAkB,EACzCmuC,EAAS5mG,EAAIymG,EAAmC,GAAzB7gH,EAAE0/E,qBAA4BuhC,EAAa,EAEpE,OAAOH,EAAYC,EAASliH,EAAGggB,EAAG3H,EAAG8pG,EACvC,EACArhH,EAAQ4hH,iBAAmB,SAAS1yF,GAClC,KAAMA,GAAMgwF,EAAS56B,GAAUp1D,GAAMiwF,EAAS76B,GAAS,OAAOb,EAC9D,IAAI69B,EAAaryH,KAAK2/B,MAA0B,GAApB4L,EAAItL,EAAK,IAAM,IACvC7uB,EAAI,IAAI0vB,KAAK9gC,KAAK+b,MAAMkkB,EAAKoyF,EAAa,KAM9C,OAAOH,EALOjhC,EAAW,WAAXA,CAAuB7/E,GAC7BA,EAAEswB,WACFtwB,EAAEwwB,aACFxwB,EAAE0wB,aAC4B,GAAzB1wB,EAAE0/E,qBAA4BuhC,EAE7C,EAkBAthH,EAAQ6hH,UAAY,SAASnzF,EAAGmpE,EAAM4nB,GACpC,GAAI/wF,IAAM+0D,EAAQ,OAAOoU,EACzB,GAAI73F,EAAQogH,SAAS1xF,IAAmB,kBAANA,GAAkB61B,SAAS71B,GAAI,CAC/D,GAAI8wF,EAAgBC,GAElB,OADA5E,EAAQryG,MAAM,kEAAmEkmB,GAC1EmpE,EAGT,KADAnpE,EAAI1uB,EAAQ4hH,kBAAkBlzF,UACX,IAATmpE,EAAiB,OAAOA,CACpC,MAAO,IAAK73F,EAAQ+gH,WAAWryF,EAAG+wF,GAEhC,OADA5E,EAAQryG,MAAM,oBAAqBkmB,GAC5BmpE,EAET,OAAOnpE,CACT,EACA,IAAIozF,EAAY,SACZC,EAAgB,MAChBC,EAAoB,CACtB,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEL,SAASC,EAAcC,EAAK1tH,EAAG2tH,EAAW1C,GACxCyC,EAAMA,EAAIzyH,QAAQqyH,GAAW,SAASjsH,GACpC,IAAI+pH,EAAS3wH,KAAK8mB,KAAKlgB,EAAM6gB,OAAO,IAAM,EAAG,GAE7C,OADgBliB,EAAI,IAAM,EAAI,GAAGqjB,QAAQ+nG,GAAQ1vH,OAAO,GAAGT,QAAQ,MAAO,KAAO,GAEnF,IACA,IAAI4Q,EAAI,IAAI0vB,KAAK9gC,KAAK2/B,MAAMp6B,EAAI,MAIhC,GAHA0tH,EAAMA,EAAIzyH,QAAQsyH,GAAe,WAC/B,OAAOC,EAAkBG,EAAU,KAAVA,CAAgB9hH,GAC3C,IACIm/G,EAAgBC,GAClB,IACEyC,EAAM9C,EAASJ,mBAAmB,YAAa,cAAzCI,CAAwD8C,EAAK1tH,EAAGirH,EACxE,CAAE,MAAO9wH,GACP,MAAO,SACT,CAEF,OAAOwzH,EAAUD,EAAVC,CAAe9hH,EACxB,CACA,IAAI+hH,EAAa,CAAC,GAAI,KAAM,MAAO,OAAQ,SAe3CpiH,EAAQ2hH,WAAa,SAASntH,EAAG0tH,EAAKG,EAAIF,EAAW1C,EAAU6C,GAE7D,GADA7C,EAAWD,EAAgBC,IAAaA,GACnCyC,EACH,GAAW,MAAPG,EAAYH,EAAMI,EAAYzzF,UAC7B,GAAW,MAAPwzF,EAAYH,EAAMI,EAAY7wG,UAClC,IAAW,MAAP4wG,EAGP,OAtBN,SAAoB7tH,EAAG6tH,GACrB,IAAIE,EAAW/nF,EAAIhmC,EAAI,IAAM8vF,GACzBk+B,EAAU7C,EAAK1wH,KAAK2/B,MAAM2zF,EAAWh+B,GAAU,GAAK,IAAMo7B,EAAKnlF,EAAIvrC,KAAK2/B,MAAM2zF,EAAW/9B,GAAS,IAAK,GAC3G,GAAW,MAAP69B,EAAY,CACTn4B,EAAUm4B,KAAKA,EAAK,GACzB,IACII,GAAU,IADJxzH,KAAK8mB,IAAIykB,EAAIhmC,EAAIiwF,EAAQ,IAAK29B,EAAWC,KAC1BxqG,QAAQwqG,GAAInyH,OAAO,GACxCmyH,EAAK,IACPI,EAASA,EAAOhzH,QAAQ,MAAO,IAAIA,QAAQ,QAAS,KAEtD+yH,GAAW,IAAMC,CACnB,CACA,OAAOD,CACT,CASaE,CAAWluH,EAAG6tH,GAAM,KAAOJ,EAAcK,EAAYK,aAAcnuH,EAAG2tH,EAAW1C,GAFxFyC,EAAMI,EAAYM,SAAW,KAAON,EAAYzzF,IAGlD,CAEF,OAAOozF,EAAcC,EAAK1tH,EAAG2tH,EAAW1C,EAC1C,EACA,IAAIoD,EAAY,EAAIv+B,EACpBtkF,EAAQ8iH,eAAiB,SAAS5zF,EAAI6zF,EAAQtD,GAC5CA,EAAWD,EAAgBC,IAAaA,EACxC,IAAIgC,EAASjnF,EAAItL,EAAIo1D,GAErB,GADAp1D,EAAKjgC,KAAK+b,MAAMkkB,EAAKuyF,GACjBhC,EACF,IACE,IAAI+B,EAASvyH,KAAK+b,MAAMkkB,EAAKo1D,GAAUM,EACnC+7B,EAAcvB,EAASJ,mBAAmB,YAAa,SAAzCI,CAAmDK,GACjEiB,EAAQC,EAAYe,OAAOF,GAG/B,OAFIuB,EAAS,GAAIpC,EAAY7xF,IAAI4xF,EAAOqC,EAAQ,KAC3CpC,EAAY7xF,IAAI4xF,EAAOqC,EAAS,GAAI,MACjCrC,EAAMI,OAASl8B,GAAWN,EAASm9B,CAC7C,CAAE,MAAO9yH,GACPksH,EAAQryG,MAAM,cAAgB0mB,EAAK,gBAAkBuwF,EACvD,CAEF,IAAIhrH,EAAI,IAAIs7B,KAAKb,EAAK2zF,GACtB,OAAOpuH,EAAE+hF,YAAY/hF,EAAEgiF,cAAgBssC,GAAUtB,EAASoB,CAC5D,EACA7iH,EAAQgjH,eAAiB,SAASj6E,EAAM02E,GAQtC,IAPA,IAIIp/G,EACA62D,EALA+rD,EAAa,EACbC,EAAc,EACdC,EAAY,EACZC,EAAa,EAGbzC,EAAcnB,EAAgBC,IAAaL,EAASJ,mBAAmB,YAAa,SAAzCI,CAAmDK,GACzFpxH,EAAI,EAAGA,EAAI06C,EAAKt8C,OAAQ4B,IAE/B,GADA6oE,EAAKnuB,EAAK16C,GACL67F,EAAUhzB,IAIf,KAAIA,EAAKotB,GACT,GAAIq8B,EACF,IAEkB,KADhBtgH,EAAIsgH,EAAYe,OAAOxqD,EAAKotB,EAASM,IAC/BvwD,MACc,IAAdh0B,EAAEoR,QAAewxG,IAChBC,IACAC,GACT,CAAE,MAAOx0H,GACT,MAGuB,KADvB0R,EAAI,IAAI0vB,KAAKmnC,IACPme,aACoB,IAApBh1E,EAAEo2E,cAAqBwsC,IACtBC,IACAC,SAlBPC,IAsBJD,GADAD,GAAeD,EAEf,IAAII,EAAYt6E,EAAKt8C,OAAS22H,EAC9B,MAAO,CACLH,WAAYA,EAAaI,EACzBH,YAAaA,EAAcG,EAC3BF,UAAWA,EAAYE,EAE3B,CACF,IAIEC,GAAoBhpF,EAAW,CACjC,sBAAsBt6B,EAASkuB,GAE7BA,EAAOluB,QAAU,SAAmBK,GAClC,OAAOA,CACT,CACF,IAIEkjH,GAAiBjpF,EAAW,CAC9B,oBAAoBt6B,GAElB,IAAIkqF,EAAY7G,IACZilB,EAAUF,IACV7iC,EAAY+9C,KACZ7/B,EAASD,IAAoBC,OAC7B+/B,EAAgB,KAyBpB,SAASC,EAAShsG,EAAG4H,GACnB,OAAO5H,EAAI4H,CACb,CACA,SAASqkG,EAAYjsG,EAAG4H,GACtB,OAAO5H,GAAK4H,CACd,CACA,SAASskG,EAAYlsG,EAAG4H,GACtB,OAAO5H,EAAI4H,CACb,CACA,SAASukG,EAAensG,EAAG4H,GACzB,OAAO5H,GAAK4H,CACd,CAnCArf,EAAQ6jH,QAAU,SAAS1sG,EAAKmoD,EAAMwkD,GACpC,GAAI55B,EAAU5qB,EAAKpsD,OACjB,OAAO4wG,EAAU70H,KAAK8/B,MAAM5X,EAAMmoD,EAAKpsD,OAASosD,EAAKjrE,KAAOmvH,GAAiB,EAAIv0H,KAAK2/B,OAAOzX,EAAMmoD,EAAKpsD,OAASosD,EAAKjrE,KAAOmvH,GAE7H,IAIIjtG,EAAG9C,EAJHswG,EAAK,EACL19E,EAAKi5B,EAAK7yE,OACV2hC,EAAI,EACJ41F,EAAU39E,EAAK,GAAKi5B,EAAKj5B,EAAK,GAAKi5B,EAAK,KAAOj5B,EAAK,GAAK,EAQ7D,IALE5yB,EADEuwG,GAAW,EACNF,EAAUL,EAAWC,EAErBI,EAAUF,EAAiBD,EAEpCxsG,GAAO6sG,EAAUR,GAAiBM,GAAW,EAAI,IAAME,GAAW,EAAI,GAAK,GACpED,EAAK19E,GAAMjY,IAAM,KAElB3a,EAAK6rD,EADT/oD,EAAItnB,KAAK2/B,OAAOm1F,EAAK19E,GAAM,IACTlvB,GAAM4sG,EAAKxtG,EAAI,EAC5B8vB,EAAK9vB,EAGZ,OADI6X,EAAI,IAAIk6E,EAAQ13D,IAAI,yBACjBmzE,EAAK,CAEhB,EAaA/jH,EAAQikH,UAAY,SAASxsG,EAAG4H,GAC9B,OAAO5H,EAAI4H,CACb,EACArf,EAAQkkH,UAAY,SAASzsG,EAAG4H,GAC9B,OAAOA,EAAI5H,CACb,EACAzX,EAAQmkH,aAAe,SAASC,GAC9B,IAEIrmF,EAFAsmF,EAAOD,EAAO/zH,QAGlB,IAFAg0H,EAAK3mG,KAAK1d,EAAQikH,WAEblmF,EAAOsmF,EAAK53H,OAAS,EAAGsxC,GAAQ,GAC/BsmF,EAAKtmF,KAAU0lD,EADmB1lD,KAOxC,IAJA,IAGIumF,EAHAC,EAAUF,EAAKtmF,GAAQsmF,EAAK,IAAM,EAClCG,EAAUD,GAAWxmF,GAAQ,GAAK,IAClC0mF,EAAU,GAELp2H,EAAI,EAAGA,GAAK0vC,EAAM1vC,IAAK,CAC9B,IAAIqgC,EAAI21F,EAAKh2H,GACTqkC,EAAOhE,EAAI41F,OACF,IAATA,GACFG,EAAQz3H,KAAK0hC,GACb41F,EAAO51F,GACEgE,EAAO8xF,IAChBD,EAAUt1H,KAAK8mB,IAAIwuG,EAAS7xF,GAC5B+xF,EAAQz3H,KAAK0hC,GACb41F,EAAO51F,EAEX,CACA,MAAO,CAAE21F,KAAMI,EAASF,UAC1B,EACAvkH,EAAQ0kH,QAAU,SAASvtG,EAAKwtG,EAASlpD,GAQvC,IAPA,IAEIx7B,EAFA2kF,EAAM,EACNC,EAAOF,EAAQl4H,OAAS,EAExB2hC,EAAI,EACJ02F,EAAOrpD,EAAU,EAAI,EACrBspD,EAAQtpD,EAAU,EAAI,EACtBupD,EAAUvpD,EAAUxsE,KAAK8/B,KAAO9/B,KAAK2/B,MAClCg2F,EAAMC,GAAQz2F,IAAM,KAErBu2F,EADJ1kF,EAAM+kF,GAASJ,EAAMC,GAAQ,KACT1tG,EAAKytG,EAAM3kF,EAAM6kF,EAChCD,EAAO5kF,EAAM8kF,EAEpB,OAAOJ,EAAQC,EACjB,EACA5kH,EAAQ0d,KAAO,SAASjtB,EAAOw0H,GAG7B,IAFA,IAAIC,EAAa,EACbC,EAAc,EACT92H,EAAI,EAAGA,EAAIoC,EAAMhE,OAAQ4B,IAAK,CACrC,IAAI+2H,EAAYH,EAAOx0H,EAAMpC,GAAIoC,EAAMpC,EAAI,IAG3C,GAFI+2H,EAAY,EAAGF,EAAa,EACvBE,EAAY,IAAGD,EAAc,GAClCD,GAAcC,EAAa,OAAO10H,EAAMitB,KAAKunG,EACnD,CACA,OAAOE,EAAc10H,EAAQA,EAAMgrE,SACrC,EACAz7D,EAAQqlH,eAAiB,SAASjoF,EAAK3lC,GACrCA,EAAKA,GAAM8tE,EAGX,IAFA,IACI+/C,EADAvvG,EAAMqtB,IAED/0C,EAAI,EAAGA,EAAI+uC,EAAI3wC,OAAQ4B,IAAK,CACnC,IAAIqgC,EAAIj3B,EAAG2lC,EAAI/uC,IACXqgC,EAAI3Y,IACNA,EAAM2Y,EACN42F,EAAMj3H,EAEV,CACA,OAAOi3H,CACT,CACF,IAIEC,GAA2BjrF,EAAW,CACxC,8BAA8Bt6B,EAASkuB,GAErCA,EAAOluB,QAAU,SAAwBhC,GACvC,OAAO1O,OAAOgkB,KAAKtV,GAAK0f,MAC1B,CACF,IAIE8nG,GAAgBlrF,EAAW,CAC7B,mBAAmBt6B,GAEjB,IAAIkqF,EAAY7G,IACZmD,EAAsBN,IAAgBM,oBAC1CxmF,EAAQylH,QAAU,SAAS/tG,EAAGgX,EAAGjX,EAAGtY,GAClC,IAAI9Q,EAAGgxB,EAGP,KAFKlgB,GAAOA,EAAMsY,EAAEhrB,UAAQ0S,EAAMsY,EAAEhrB,QAC/By9F,EAAUx7D,KAAIA,GAAI,GACnB83D,EAAoB/uE,EAAE,IAAK,CAE7B,IADA4H,EAAI,IAAIppB,MAAMkJ,GACT9Q,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAKgxB,EAAEhxB,GAAK2R,EAAQylH,QAAQ/tG,EAAGgX,EAAGjX,EAAEppB,IACzDopB,EAAI4H,CACN,CACA,IAAKhxB,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACd67F,EAAUx7D,GACNw7D,EAAUzyE,EAAEppB,MAAKqgC,EAAIhX,GAAGgX,GAAIjX,EAAEppB,KADpBqgC,EAAIjX,EAAEppB,GAG3B,OAAOqgC,CACT,EACA1uB,EAAQb,IAAM,SAAS4pC,GACrB,OAAO/oC,EAAQylH,SAAQ,SAAShuG,GAC9B,OAAOA,EAAI,CACb,GAAG,EAAGsxB,EACR,EACA/oC,EAAQsgC,KAAO,SAASyI,EAAM5pC,GAE5B,OADKA,IAAKA,EAAMa,EAAQb,IAAI4pC,IACrB/oC,EAAQylH,SAAQ,SAAShuG,EAAG4H,GACjC,OAAO5H,EAAI4H,CACb,GAAG,EAAG0pB,GAAQ5pC,CAChB,EACAa,EAAQ0lH,cAAgB,SAAS38E,EAAM5pC,GAErC,OADKA,IAAKA,EAAMa,EAAQb,IAAI4pC,IACrB95C,KAAK4jD,IAAI7yC,EAAQylH,SAAQ,SAAShuG,EAAG4H,GAC1C,OAAO5H,EAAI4H,CACb,GAAG,EAAG0pB,GAAO,EAAI5pC,EACnB,EACAa,EAAQ2lH,SAAW,SAASC,GAC1B,QAAe,IAAXA,GAAuC,IAAlBA,EAAOn5H,OAChC,OAAQuT,EAAQylH,QAAQx2H,KAAK6mB,IAAK,KAAM8vG,GAAU5lH,EAAQylH,QAAQx2H,KAAK8mB,IAAK,KAAM6vG,IAAW,CAC/F,EACA5lH,EAAQ0gC,SAAW,SAASqI,EAAM5pC,EAAKmhC,GAGrC,OAFKnhC,IAAKA,EAAMa,EAAQb,IAAI4pC,IACvBmhD,EAAU5pD,KAAOA,EAAOtgC,EAAQsgC,KAAKyI,EAAM5pC,IACzCa,EAAQylH,SAAQ,SAAShuG,EAAG4H,GACjC,OAAO5H,EAAIxoB,KAAK4jD,IAAIxzB,EAAIihB,EAAM,EAChC,GAAG,EAAGyI,GAAQ5pC,CAChB,EACAa,EAAQ6lH,MAAQ,SAAS98E,EAAM5pC,EAAKmhC,GAClC,OAAOrxC,KAAK2xC,KAAK5gC,EAAQ0gC,SAASqI,EAAM5pC,EAAKmhC,GAC/C,EACAtgC,EAAQwgC,OAAS,SAASuI,GACxB,IAAI1pB,EAAI0pB,EAAK14C,QAAQqtB,OACrB,OAAO1d,EAAQ8lH,OAAOzmG,EAAG,GAC3B,EACArf,EAAQ8lH,OAAS,SAAS1oF,EAAK7mB,GAC7B,IAAK2zE,EAAU3zE,GAAI,KAAM,8BAEzB,IADAA,EAAIA,EAAI6mB,EAAI3wC,OAAS,IACb,EAAG,OAAO2wC,EAAI,GACtB,GAAI7mB,EAAI6mB,EAAI3wC,OAAS,EAAG,OAAO2wC,EAAIA,EAAI3wC,OAAS,GAChD,IAAIs5H,EAAOxvG,EAAI,EACf,OAAOwvG,EAAO3oF,EAAInuC,KAAK8/B,KAAKxY,KAAO,EAAIwvG,GAAQ3oF,EAAInuC,KAAK2/B,MAAMrY,GAChE,CACF,IAIEyvG,GAAiB1rF,EAAW,CAC9B,oBAAoBt6B,EAASkuB,GAE3B,IAAI+3F,EAAYh4B,IACZzzD,EAAMyrF,EAAUzrF,IAChB0zD,EAAU+3B,EAAU/3B,QACpB3+C,EAAKtgD,KAAKsgD,GACV22E,EAAQ,EAAI32E,EAOhB,SAAS42E,EAAaC,GACpB,OAAOn3H,KAAKD,IAAIo3H,EAAM,GAAKA,EAAM,IAAMF,EAAQ,KACjD,CACA,SAASG,EAAW5uG,EAAG4H,GACrB,OAAO6uE,EAAQ7uE,EAAI5H,EAAGyuG,EACxB,CAIA,SAASI,EAAoB7uG,EAAG2uG,GAC9B,GAAID,EAAaC,GAAQ,OAAO,EAChC,IAAI/4D,EAAIC,EACJ84D,EAAM,GAAKA,EAAM,IACnB/4D,EAAK+4D,EAAM,GACX94D,EAAK84D,EAAM,KAEX/4D,EAAK+4D,EAAM,GACX94D,EAAK84D,EAAM,KAEb/4D,EAAK7yB,EAAI6yB,EAAI64D,KACb54D,EAAK9yB,EAAI8yB,EAAI44D,MACA54D,GAAM44D,GACnB,IAAI9uD,EAAK58B,EAAI/iB,EAAGyuG,GACZ7uD,EAAKD,EAAK8uD,EACd,OAAO9uD,GAAM/J,GAAM+J,GAAM9J,GAAM+J,GAAMhK,GAAMgK,GAAM/J,CACnD,CAaA,SAASi5D,EAAMv1E,EAAIC,EAAImmB,EAAIC,EAAIpiB,EAAIC,EAAIsxE,GACrCvxE,EAAKA,GAAM,EACXC,EAAKA,GAAM,EACX,IACIuxE,EAAQC,EAAMC,EACdC,EAAQC,EAFRC,EAAWX,EAAa,CAAC/uD,EAAIC,IAuBjC,SAASj0C,EAAG3I,EAAGhD,GACb,MAAO,CAACgD,EAAIxrB,KAAKsnD,IAAI9+B,GAAKw9B,EAAIC,EAAKz6B,EAAIxrB,KAAKunD,IAAI/+B,GAClD,CAtBIqvG,GACFL,EAAS,EACTC,EAAOn3E,EACPo3E,EAAOT,GAEH9uD,EAAKC,GACPovD,EAASrvD,EACTuvD,EAAOtvD,IAEPovD,EAASpvD,EACTsvD,EAAOvvD,GAGPpmB,EAAKC,GACP21E,EAAS51E,EACT61E,EAAO51E,IAEP21E,EAAS31E,EACT41E,EAAO71E,GAKT,IAII7xB,EAJA4nG,EAAW93H,KAAKD,IAAI23H,EAAOF,IAAWl3E,EAAK,EAAI,EACnD,SAASga,EAAI9uC,EAAGhD,EAAG6uD,GACjB,MAAO,IAAM,CAAC7rD,EAAGA,GAAK,IAAM,CAAC,EAAGssG,EAAUzgD,GAAM,IAAMljD,EAAG3I,EAAGhD,EAC9D,CAgBA,OAdIqvG,EAEA3nG,EADa,OAAXynG,EACE,IAAMxjG,EAAGyjG,EAAMJ,GAAUl9D,EAAIs9D,EAAMH,EAAM,GAAKn9D,EAAIs9D,EAAMF,EAAM,GAAK,IAEnE,IAAMvjG,EAAGwjG,EAAQH,GAAUl9D,EAAIq9D,EAAQF,EAAM,GAAKn9D,EAAIq9D,EAAQD,EAAM,GAAK,KAAOvjG,EAAGyjG,EAAMJ,GAAUl9D,EAAIs9D,EAAMH,EAAM,GAAKn9D,EAAIs9D,EAAMF,EAAM,GAAK,IAGpI,OAAXC,GACFznG,EAAI,IAAMiE,EAAGyjG,EAAMJ,GAAUl9D,EAAIs9D,EAAMF,EAAM,GACzCH,IAAUrnG,GAAK,UAEnBA,EAAI,IAAMiE,EAAGwjG,EAAQH,GAAU,IAAMrjG,EAAGyjG,EAAMJ,GAAUl9D,EAAIs9D,EAAMF,EAAM,GAAK,IAAMvjG,EAAGwjG,EAAQD,GAAQp9D,EAAIq9D,EAAQH,EAAQ,GAAK,IAG5HtnG,CACT,CAUA+O,EAAOluB,QAAU,CACfgnH,QAxGF,SAAiBC,GACf,OAAOA,EAAM,IAAM13E,CACrB,EAuGE23E,QAtGF,SAAiBzb,GACf,OAAOA,EAAMl8D,EAAK,GACpB,EAqGE82E,aACAc,UA/FF,SAAmB1vG,EAAG4H,GACpB,OAAOpwB,KAAKD,IAAIq3H,EAAW5uG,EAAG4H,GAChC,EA8FE8mG,eACAG,sBACAc,iBA9EF,SAA0B3sG,EAAGhD,EAAG4vG,EAAOjB,GACrC,QAAKE,EAAoB7uG,EAAG2uG,KAExBiB,EAAM,GAAKA,EAAM,IACnBr2E,EAAKq2E,EAAM,GACXp2E,EAAKo2E,EAAM,KAEXr2E,EAAKq2E,EAAM,GACXp2E,EAAKo2E,EAAM,IAEN5sG,GAAKu2B,GAAMv2B,GAAKw2B,GARvB,IAAID,EAAIC,CASV,EAoEEq2E,QAjBF,SAAiB7sG,EAAG28C,EAAIC,EAAIpiB,EAAIC,GAC9B,OAAOqxE,EAAM,KAAM9rG,EAAG28C,EAAIC,EAAIpiB,EAAIC,EAAI,EACxC,EAgBEqyE,WAfF,SAAoB9sG,EAAG28C,EAAIC,EAAIpiB,EAAIC,GACjC,OAAOqxE,EAAM,KAAM9rG,EAAG28C,EAAIC,EAAIpiB,EAAIC,EAAI,EACxC,EAcEsyE,YAbF,SAAqBx2E,EAAIC,EAAImmB,EAAIC,EAAIpiB,EAAIC,GACvC,OAAOqxE,EAAMv1E,EAAIC,EAAImmB,EAAIC,EAAIpiB,EAAIC,EAAI,EACvC,EAaF,IAIEuyE,GAAuBntF,EAAW,CACpC,0BAA0Bt6B,GAExBA,EAAQ0nH,aAAe,SAAsB74B,GAC3C,MAAwB,SAAjBA,EAAK2pB,SAAuC,SAAjB3pB,EAAK2pB,SAAsB3pB,EAAKr6F,GAAK,EAAI,CAC7E,EACAwL,EAAQ2nH,eAAiB,SAAwB94B,GAC/C,MAAwB,WAAjBA,EAAK2pB,SAAyC,SAAjB3pB,EAAK2pB,SAAsB3pB,EAAKr6F,EAAI,EAAI,GAAKq6F,EAAKr6F,EAAI,EAAI,CAChG,EACAwL,EAAQ4nH,cAAgB,SAAuB/4B,GAC7C,MAAwB,UAAjBA,EAAK2pB,SAAwC,SAAjB3pB,EAAK2pB,SAAsB3pB,EAAKr6F,GAAK,EAAI,CAC9E,EACAwL,EAAQ6nH,YAAc,SAAqBh5B,GACzC,MAAwB,QAAjBA,EAAK4pB,SAAsC,SAAjB5pB,EAAK4pB,SAAsB5pB,EAAKp6F,GAAK,EAAI,CAC5E,EACAuL,EAAQ8nH,eAAiB,SAAwBj5B,GAC/C,MAAwB,WAAjBA,EAAK4pB,SAAyC,SAAjB5pB,EAAK4pB,SAAsB5pB,EAAKp6F,EAAI,EAAI,GAAKo6F,EAAKp6F,EAAI,EAAI,CAChG,EACAuL,EAAQ+nH,eAAiB,SAAwBl5B,GAC/C,MAAwB,WAAjBA,EAAK4pB,SAAyC,SAAjB5pB,EAAK4pB,SAAsB5pB,EAAKp6F,GAAK,EAAI,CAC/E,CACF,IAIEuzH,GAAqB1tF,EAAW,CAClC,wBAAwBt6B,GAEtB,IA6CIioH,EACAC,EACAC,EA/CA3tF,EAAMyzD,IAAczzD,IAExB,SAAS4tF,EAAkB12E,EAAIE,EAAIoa,EAAIC,EAAInG,EAAIG,EAAIoiE,EAAIC,GACrD,IAAI7wG,EAAIu0C,EAAKta,EACTryB,EAAIymC,EAAKpU,EACTtjB,EAAIi6F,EAAKviE,EACTzlD,EAAI4rD,EAAKra,EACTjjD,EAAIs3D,EAAKrU,EACTl6B,EAAI4wG,EAAKriE,EACT+kD,EAAMvzF,EAAIC,EAAI0W,EAAI/tB,EACtB,GAAY,IAAR2qG,EAAW,OAAO,KACtB,IAAIrwF,GAAK0E,EAAI3H,EAAI0W,EAAIz/B,GAAKq8G,EACtBhwF,GAAKqE,EAAIhf,EAAIoX,EAAI9oB,GAAKq8G,EAC1B,OAAIhwF,EAAI,GAAKA,EAAI,GAAKL,EAAI,GAAKA,EAAI,EAAU,KACtC,CAAEnmB,EAAGk9C,EAAKj6B,EAAIkD,EAAGlmB,EAAGm9C,EAAKvxC,EAAIsa,EACtC,CAiBA,SAAS4tG,EAAcC,EAAKC,EAAKC,EAAMC,EAAKC,GAC1C,IAAIC,EAAOF,EAAMH,EAAMI,EAAMH,EAC7B,GAAII,EAAO,EACT,OAAOF,EAAMA,EAAMC,EAAMA,EACpB,GAAIC,EAAOH,EAAM,CACtB,IAAII,EAAMH,EAAMH,EACZO,EAAMH,EAAMH,EAChB,OAAOK,EAAMA,EAAMC,EAAMA,CAC3B,CACE,IAAIC,EAAeL,EAAMF,EAAMG,EAAMJ,EACrC,OAAOQ,EAAeA,EAAeN,CAEzC,CA3CA1oH,EAAQooH,kBAAoBA,EAe5BpoH,EAAQipH,gBAAkB,SAAyBv3E,EAAIE,EAAIoa,EAAIC,EAAInG,EAAIG,EAAIoiE,EAAIC,GAC7E,GAAIF,EAAkB12E,EAAIE,EAAIoa,EAAIC,EAAInG,EAAIG,EAAIoiE,EAAIC,GAAK,OAAO,EAC9D,IAAIj5D,EAAMrD,EAAKta,EACX4d,EAAMrD,EAAKra,EACXs3E,EAAMb,EAAKviE,EACXqjE,EAAMb,EAAKriE,EACXmjE,EAAO/5D,EAAMA,EAAMC,EAAMA,EACzB+5D,EAAOH,EAAMA,EAAMC,EAAMA,EACzBG,EAAQr6H,KAAK8mB,IACfwyG,EAAcl5D,EAAKC,EAAK85D,EAAMtjE,EAAKpU,EAAIuU,EAAKrU,GAC5C22E,EAAcl5D,EAAKC,EAAK85D,EAAMf,EAAK32E,EAAI42E,EAAK12E,GAC5C22E,EAAcW,EAAKC,EAAKE,EAAM33E,EAAKoU,EAAIlU,EAAKqU,GAC5CsiE,EAAcW,EAAKC,EAAKE,EAAMr9D,EAAKlG,EAAImG,EAAKhG,IAE9C,OAAOh3D,KAAK2xC,KAAK0oF,EACnB,EAiBAtpH,EAAQupH,gBAAkB,SAAyB35G,EAAM45G,EAAcC,EAAgBC,GAMrF,GALI95G,IAASs4G,GAAewB,IAAcvB,IACxCF,EAAgB,CAAC,EACjBC,EAAct4G,EACdu4G,EAAmBuB,GAEjBzB,EAAcwB,GAChB,OAAOxB,EAAcwB,GAEvB,IAAIr5E,EAAKxgC,EAAK+5G,iBAAiBnvF,EAAIivF,EAAiBC,EAAY,EAAGF,IAC/DnsH,EAAKuS,EAAK+5G,iBAAiBnvF,EAAIivF,EAAiBC,EAAY,EAAGF,IAC/DzwD,EAAQ9pE,KAAK26H,MAAMvsH,EAAG5I,EAAI27C,EAAG37C,IAAM4I,EAAG7I,EAAI47C,EAAG57C,IAC7Cq1H,EAAUj6G,EAAK+5G,iBAAiBnvF,EAAIivF,EAAgBD,IAGpDv3D,EAAM,CAAEz9D,GAFS,EAAZq1H,EAAQr1H,EAAQ47C,EAAG57C,EAAI6I,EAAG7I,GAAK,EAEzBC,GADM,EAAZo1H,EAAQp1H,EAAQ27C,EAAG37C,EAAI4I,EAAG5I,GAAK,EACtBskE,SAElB,OADAkvD,EAAcwB,GAAkBx3D,EACzBA,CACT,EACAjyD,EAAQ8pH,mBAAqB,WAC3B5B,EAAc,IAChB,EACAloH,EAAQ+pH,kBAAoB,SAA2Bn6G,EAAMo6G,EAAQlhC,GACnE,IAOImhC,EAAKC,EAPLtjG,EAAOojG,EAAOpjG,KACdF,EAAQsjG,EAAOtjG,MACfD,EAAMujG,EAAOvjG,IACbE,EAASqjG,EAAOrjG,OAChBwjG,EAAO,EACPC,EAASx6G,EAAKy6G,iBACdC,EAAOF,EAEX,SAASG,EAAcprH,GACrB,IAAIikB,EAAKxT,EAAK+5G,iBAAiBxqH,GACnB,IAARA,EAAW8qH,EAAM7mG,EACZjkB,IAAQirH,IAAQF,EAAU9mG,GACnC,IAAI2rB,EAAK3rB,EAAG5uB,EAAIoyB,EAAOA,EAAOxD,EAAG5uB,EAAI4uB,EAAG5uB,EAAIkyB,EAAQtD,EAAG5uB,EAAIkyB,EAAQ,EAC/DsoB,EAAK5rB,EAAG3uB,EAAIgyB,EAAMA,EAAMrD,EAAG3uB,EAAI2uB,EAAG3uB,EAAIkyB,EAASvD,EAAG3uB,EAAIkyB,EAAS,EACnE,OAAO13B,KAAK2xC,KAAKmO,EAAKA,EAAKC,EAAKA,EAClC,CAEA,IADA,IAAIw7E,EAAaD,EAAcJ,GACxBK,GAAY,CAEjB,IADAL,GAAQK,EAAa1hC,GACVwhC,EAAM,OACjBE,EAAaD,EAAcJ,EAC7B,CAEA,IADAK,EAAaD,EAAcD,GACpBE,GAAY,CAEjB,GAAIL,GADJG,GAAQE,EAAa1hC,GACJ,OACjB0hC,EAAaD,EAAcD,EAC7B,CACA,MAAO,CACLv0G,IAAKo0G,EACLr0G,IAAKw0G,EACLnrH,IAAKmrH,EAAOH,EACZM,MAAOL,EACP5D,SAAmB,IAAT2D,GAAcG,IAASF,GAAUn7H,KAAKD,IAAIi7H,EAAIz1H,EAAI01H,EAAQ11H,GAAK,IAAOvF,KAAKD,IAAIi7H,EAAIx1H,EAAIy1H,EAAQz1H,GAAK,GAElH,EACAuL,EAAQ0qH,gBAAkB,SAAyB96G,EAAMuH,EAAKwzG,EAAO97B,GAYnE,IAVA,IAOI5uD,EACA7c,EACAsP,EATAk4F,GADJ/7B,EAAOA,GAAQ,CAAC,GACM+7B,YAAch7G,EAAKy6G,iBACrCQ,EAAYh8B,EAAKg8B,WAAa,KAC9BC,EAAiBj8B,EAAKi8B,gBAAkB,GACxCC,EAAMn7G,EAAK+5G,iBAAiB,GAAGgB,GAAS/6G,EAAK+5G,iBAAiBiB,GAAYD,IAAU,EAAI,EACxFt8H,EAAI,EACJyiD,EAAK,EACLC,EAAK65E,EAIFv8H,EAAIy8H,GAAgB,CAIzB,GAHA7qF,GAAO6Q,EAAKC,GAAM,EAElBre,GADAtP,EAAKxT,EAAK+5G,iBAAiB1pF,IACjB0qF,GAASxzG,EACfloB,KAAKD,IAAI0jC,GAAQm4F,EACnB,OAAOznG,EAEH2nG,EAAMr4F,EAAO,EACfqe,EAAK9Q,EAEL6Q,EAAK7Q,EAEP5xC,GAEJ,CACA,OAAO+0B,CACT,CACF,IAIE4nG,GAAmB1wF,EAAW,CAChC,sBAAsBt6B,GAEpB,IAAIirH,EAAa,CAAC,EAkDlB,SAASC,EAAc7zH,GACjBA,GAAyB,OAAhBA,EAAMqkC,QACjBjS,aAAapyB,EAAMqkC,OACnBrkC,EAAMqkC,MAAQ,KAElB,CAtDA17B,EAAQmrH,SAAW,SAAkB39F,EAAI49F,EAAav4H,GACpD,IAAIwE,EAAQ4zH,EAAWz9F,GACnBsR,EAAM/O,KAAK+O,MACf,IAAKznC,EAAO,CACV,IAAK,IAAIg0H,KAAOJ,EACVA,EAAWI,GAAKxjB,GAAK/oE,EAAM,YACtBmsF,EAAWI,GAGtBh0H,EAAQ4zH,EAAWz9F,GAAM,CAAEq6E,GAAI,EAAGnsE,MAAO,KAC3C,CAEA,SAAS9lC,IACP/C,IACAwE,EAAMwwG,GAAK93E,KAAK+O,MACZznC,EAAMi0H,SACRj0H,EAAMi0H,SACNj0H,EAAMi0H,OAAS,KAEnB,CARAJ,EAAc7zH,GASVynC,EAAMznC,EAAMwwG,GAAKujB,EACnBx1H,IAGFyB,EAAMqkC,MAAQhS,YAAW,WACvB9zB,IACAyB,EAAMqkC,MAAQ,IAChB,GAAG0vF,EACL,EACAprH,EAAQurH,KAAO,SAAS/9F,GACtB,IAAIn2B,EAAQ4zH,EAAWz9F,GACvB,OAAKn2B,GAAUA,EAAMqkC,MACd,IAAI8vF,SAAQ,SAAS3uF,GAC1B,IAAI4uF,EAAiBp0H,EAAMi0H,OAC3Bj0H,EAAMi0H,OAAS,WACTG,GAAgBA,IACpB5uF,IACAxlC,EAAMi0H,OAAS,IACjB,CACF,IARmCE,QAAQ3uF,SAS7C,EACA78B,EAAQ4pB,MAAQ,SAAS4D,GACvB,GAAIA,EACF09F,EAAcD,EAAWz9F,WAClBy9F,EAAWz9F,QAElB,IAAK,IAAI69F,KAAOJ,EAAYjrH,EAAQ4pB,MAAMyhG,EAE9C,CAOF,IAIEK,GAA2BpxF,EAAW,CACxC,8BAA8Bt6B,EAASkuB,GAErCA,EAAOluB,QAAU,SAAyBozG,GACpCA,EAAGuY,0BACL3/F,OAAOqf,oBAAoB,SAAU+nE,EAAGuY,gCACjCvY,EAAGuY,wBAEd,CACF,IAIEC,GAAoBtxF,EAAW,CACjC,kCAAkCt6B,EAASkuB,GAEzCA,EAAOluB,QAAU6rH,EACjB39F,EAAOluB,QAAQ6rH,SAAWA,EAC1B39F,EAAOluB,QAAQG,QAAU0rH,EACzB,IAAIC,EAAW,gWACXC,EAAc,OACdC,EAAW,8BACf,SAASH,EAASh9B,GACXA,IAAMA,EAAO,CAAC,GACnB,IAAIzoC,EAAKyoC,EAAKzoC,GAKd,GAJKA,GAA2B,qBAAd3Z,YAA2B2Z,EAAK3Z,UAAUC,WACxD0Z,GAAMA,EAAGpF,SAA+C,kBAA7BoF,EAAGpF,QAAQ,gBACxCoF,EAAKA,EAAGpF,QAAQ,eAEA,kBAAPoF,EAAiB,OAAO,EACnC,IAAI3nD,EAASqtH,EAASr4G,KAAK2yC,KAAQ2lE,EAAYt4G,KAAK2yC,MAASyoC,EAAKo9B,QAAUD,EAASv4G,KAAK2yC,GAI1F,OAHK3nD,GAAUowF,EAAKo9B,QAAUp9B,EAAKq9B,eAAiBz/E,WAAaA,UAAU0/E,eAAiB,IAAkC,IAA7B/lE,EAAGt2D,QAAQ,eAAiD,IAA1Bs2D,EAAGt2D,QAAQ,YAC5I2O,GAAS,GAEJA,CACT,CACF,IAIE2tH,GAAkC9xF,EAAW,CAC/C,qCAAqCt6B,EAASkuB,GAE5C,IAAIg8D,EAAY7G,IACZgpC,EAAmBT,KACvB19F,EAAOluB,QAAU,SAA+B6uF,GAC9C,IAAIzoC,EAMJ,GAAkB,kBAJhBA,EADEyoC,GAAQA,EAAK/mF,eAAe,aACzB+mF,EAAKniD,UA4Bd,WACE,IAAI0Z,EAOJ,MANyB,qBAAd3Z,YACT2Z,EAAK3Z,UAAUC,WAEb0Z,GAAMA,EAAGpF,SAA+C,kBAA7BoF,EAAGpF,QAAQ,gBACxCoF,EAAKA,EAAGpF,QAAQ,eAEXoF,CACT,CAnCSkmE,IAEqB,OAAO,EACnC,IAAIC,EAASF,EAAiB,CAC5BjmE,GAAI,CAAEpF,QAAS,CAAE,aAAcoF,IAC/B6lE,QAAQ,EACRC,eAAe,IAEjB,IAAKK,EAEH,IADA,IAAIC,EAAWpmE,EAAG1vD,MAAM,KACfrI,EAAI,EAAGA,EAAIm+H,EAAS//H,OAAQ4B,IAEnC,IAAgC,IADrBm+H,EAASn+H,GACXyB,QAAQ,UACf,IAAK,IAAIyE,EAAIlG,EAAI,EAAGkG,GAAK,EAAGA,IAAK,CAC/B,IAAIk4H,EAAWD,EAASj4H,GACxB,GAA8B,aAA1Bk4H,EAASv8H,OAAO,EAAG,GAAmB,CACxC,IAAIw+B,EAAI+9F,EAASv8H,OAAO,GAAGwG,MAAM,KAAK,GAEtC,GADIwzF,EAAUx7D,KAAIA,GAAKA,GACnBA,GAAK,GAAI,OAAO,CACtB,CACF,CAIN,OAAO69F,CACT,CAWF,IAIEG,GAA4BpyF,EAAW,CACzC,+BAA+Bt6B,EAASkuB,GAEtC,IAAIkQ,EAAKD,IACTjQ,EAAOluB,QAAU,SAAyB2sH,EAAYC,EAAUC,GAC9D,IAAI1X,EAASwX,EAAWzlF,UAAU,KAAO2lF,EAAIp9H,QAAQ,MAAO,MAAMs5C,KAAK6jF,GAAU,SAASE,GACxF,OAAOA,EAAG,GAAGrkB,MAAMvN,GACrB,IACAia,EAAOtqE,OAAOtH,SACd4xE,EAAOvqE,QAAQp6C,OAAO,KAAK84C,KAAK,QAASujF,GACzC1X,EAAOv5G,QACP,IAAIrH,EAAIo4H,EAAWljF,QAAQ,aAAe,iBAAmB,QAI7D,OAHA0rE,EAAO3rE,MAAK,SAASsjF,GACnBA,EAAG,GAAGv4H,GAAK6pC,EAAGsI,OAAOt6C,KACvB,IACO+oH,CACT,CACF,IAIE4X,GAAmBzyF,EAAW,CAChC,sBAAsBt6B,EAASkuB,GAE7B,IAAIkxF,EAAWxE,KACf1sF,EAAOluB,QAAU,SAAkBozG,EAAI77F,GAErC,IADA,IAAIiY,EAAS4jF,EAAG4Z,SAASx9F,OAChBnhC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAE1B,IADA,IAAIk5G,EAAU6L,EAAG4Z,SAASzlB,QACjBjzG,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI24H,GAAQ1lB,EAAQ/3E,IAAW,CAAC,GAAG8tF,WACnC,GAAI2P,EAAM,CACR,IAAIh7D,EAAMg7D,EAAK11G,GACf,GAAI06C,EAAK,OAAOA,CAClB,CACAs1C,EAAU6X,EAAS3B,cACrB,CACA,IAAIL,EAAa5tF,EAAO94B,MAAM,KAAK,GACnC,GAAI0mH,IAAe5tF,EAAQ,MAC3BA,EAAS4tF,CACX,CACA,OAAO7lG,CACT,CACF,IAIE21G,GAAwB5yF,EAAW,CACrC,2BAA2Bt6B,EAASkuB,GAElCA,EAAOluB,QAAU,SAAsBvP,GAIrC,IAHA,IAAI08H,EAAO,CAAC,EACRl7D,EAAM,GACN39D,EAAI,EACCjG,EAAI,EAAGA,EAAIoC,EAAMhE,OAAQ4B,IAAK,CACrC,IAAI+tB,EAAO3rB,EAAMpC,GACE,IAAf8+H,EAAK/wG,KACP+wG,EAAK/wG,GAAQ,EACb61C,EAAI39D,KAAO8nB,EAEf,CACA,OAAO61C,CACT,CACF,IAIEm7D,GAAyB9yF,EAAW,CACtC,4BAA4Bt6B,EAASkuB,GAWnC,SAASm/F,EAAWjxG,GAClB,OAAwB,IAAjBA,EAAKu+E,OACd,CACA,SAAS2yB,EAAelxG,GACtB,IAAIqsF,EAAQrsF,EAAK,GAAGqsF,MACpB,OAAyB,IAAlBA,EAAM9N,SAAsC,IAAlB8N,EAAM8kB,OACzC,CAfAr/F,EAAOluB,QAAU,SAAuBnT,GAGtC,IAFA,IAekBu9F,EAfdojC,GAecpjC,EAfQv9F,EAgBnBoJ,MAAMiI,QAAQksF,IAASn0F,MAAMiI,QAAQksF,EAAK,KAAOA,EAAK,GAAG,IAAMA,EAAK,GAAG,GAAGqe,MAhB1C6kB,EAAiBD,GACpDp7D,EAAM,GACD5jE,EAAI,EAAGA,EAAIxB,EAAUJ,OAAQ4B,IAAK,CACzC,IAAI+tB,EAAOvvB,EAAUwB,GACjBm/H,EAASpxG,IAAO61C,EAAIjlE,KAAKovB,EAC/B,CACA,OAAO61C,CACT,CAWF,IAIEw7D,GAAoBnzF,EAAW,CACjC,uBAAuBt6B,EAASkuB,GAE9BA,EAAOluB,QAAU,SAA0BxL,EAAGk5H,GAC5C,IAAKA,EAAO,OAAOl5H,EACnB,IAAIsH,EAAQ,EAAI7M,KAAKD,IAAI0+H,GACrBC,EAAO7xH,EAAQ,GAAKA,EAAQtH,EAAIsH,EAAQ4xH,GAAS5xH,EAAQtH,EAAIk5H,EAC7DE,EAAQz+H,OAAOw+H,GAAMlhI,OACzB,GAAImhI,EAAQ,GAAI,CACd,IAAIC,EAAQ1+H,OAAOu+H,GAAOjhI,OAE1B,GAAImhI,GADQz+H,OAAOqF,GAAG/H,OACDohI,EAAO,CAC1B,IAAIt2G,EAAIP,WAAW22G,GAAMnsC,YAAY,KACZ,IAArBjqE,EAAEznB,QAAQ,QAAc69H,GAAQp2G,EACtC,CACF,CACA,OAAOo2G,CACT,CACF,IAIEG,GAAuBxzF,EAAW,CACpC,0BAA0Bt6B,EAASkuB,GAEjC,IAAIg8D,EAAY7G,IACZI,EAASD,IAAoBC,OAC7BsqC,EAAO,oCACX7/F,EAAOluB,QAAU,SAAqB0uB,GAIpC,MAHiB,kBAANA,IACTA,EAAIA,EAAEj/B,QAAQs+H,EAAM,KAElB7jC,EAAUx7D,GAAW9W,OAAO8W,GACzB+0D,CACT,CACF,IAIEuqC,GAAc1zF,EAAW,CAC3B,mBAAmBt6B,EAASkuB,GAE1B,IAAIkQ,EAAKD,IACLshD,EAAYrG,IAAyBqG,UACrCwuC,EAAWttC,IAAoBxuD,OAC/B+3D,EAAY7G,IACZ6qC,EAAe1qC,IACf2qC,EAAWD,EAAaxqC,QACxB0qC,GAAYD,EACZ1qC,EAASyqC,EAAazqC,OACtB4qC,EAAMngG,EAAOluB,QAAU,CAAC,EAC5BquH,EAAIC,aAAe,SAAsBC,GACvC,OAAKA,GAAa,YAAY96G,KAAK86G,IAAc,SAAS96G,KAAK86G,GAAmBA,EAChE,QAAdA,EAA4B,KAC5B,OAAO96G,KAAK86G,GAAmB,KAC/B,OAAO96G,KAAK86G,GAAmB,MAC9B,WAAW96G,KAAK86G,IAAc,SAAS96G,KAAK86G,GAAmB,IAAMA,EACnEA,CACT,EACA,IAAIC,EAAiB,CAAC,EACtBH,EAAII,cAAgB,SAAS/2G,GAC3B,IAAIpqB,EAAM6B,OAAOuoB,GACZ82G,EAAelhI,KAClBkhI,EAAelhI,GAAO,EACtB+gI,EAAI3lB,KAAK,4BAA8Bp7G,EAAM,KAEjD,EACA+gI,EAAIK,SAAW,SAASl/H,GACtB,OAAOL,OAAOK,EAChB,EACA6+H,EAAIM,aAAe,SAASJ,GAC1B,IAAI92H,EACJ,IACEA,EAAKw2H,EAASI,EAAIC,aAAaC,GACjC,CAAE,MAAO5/H,GAEP,OADA0/H,EAAII,cAAcF,GACXF,EAAIK,QACb,CACA,OAAOj3H,CACT,EACA42H,EAAI/hC,eAAiBrC,IACrBokC,EAAIO,eAAiBviC,IACrBgiC,EAAI9gC,aAAeJ,IACnBkhC,EAAI50G,cAAgBssE,IACpBsoC,EAAIQ,WAAarhC,IACjB6gC,EAAI1gC,kBAAoBD,IACxB,IAAIohC,EAAc5oC,IAClBmoC,EAAI1mC,cAAgBmnC,EAAYnnC,cAChC0mC,EAAI/nC,aAAewoC,EAAYxoC,aAC/B+nC,EAAI7nC,oBAAsBsoC,EAAYtoC,oBACtC6nC,EAAI5nC,UAAYqoC,EAAYroC,UAC5B4nC,EAAI3nC,YAAcooC,EAAYpoC,YAC9B2nC,EAAIr3H,OAAS83H,EAAY93H,OACzBq3H,EAAItkC,aAAe+kC,EAAY/kC,aAC/BskC,EAAIrkC,aAAe8kC,EAAY9kC,aAC/B,IAAIi8B,EAAYh4B,IAChBogC,EAAI7zF,IAAMyrF,EAAUzrF,IACpB6zF,EAAIngC,QAAU+3B,EAAU/3B,QACxB,IAAI6gC,EAAejvB,IACnBuuB,EAAIhuB,cAAgB0uB,EAAa1uB,cACjCguB,EAAI7rB,OAASusB,EAAavsB,OAC1B6rB,EAAIrrB,QAAU+rB,EAAa/rB,QAC3BqrB,EAAInrB,WAAa6rB,EAAa7rB,WAC9BmrB,EAAI/qB,cAAgByrB,EAAazrB,cACjC+qB,EAAI3qB,gBAAkBqrB,EAAarrB,gBACnC2qB,EAAInqB,6BAA+B6qB,EAAa7qB,6BAChDmqB,EAAIluB,SAAW4uB,EAAa5uB,SAC5B,IAAI6uB,EAAc/P,KAClBoP,EAAIpO,YAAc+O,EAAY/O,YAC9BoO,EAAItN,WAAaiO,EAAYjO,WAC7BsN,EAAInO,YAAc8O,EAAY9O,YAC9BmO,EAAIzM,iBAAmBoN,EAAYpN,iBACnCyM,EAAIxM,UAAYmN,EAAYnN,UAC5BwM,EAAIjO,SAAW4O,EAAY5O,SAC3BiO,EAAI1M,WAAaqN,EAAYrN,WAC7B0M,EAAIvL,eAAiBkM,EAAYlM,eACjCuL,EAAIxO,UAAYmP,EAAYnP,UAC5BwO,EAAIlO,UAAY6O,EAAY7O,UAC5BkO,EAAIrL,eAAiBgM,EAAYhM,eACjCqL,EAAInP,OAAS8P,EAAY9P,OACzBmP,EAAIlP,OAAS6P,EAAY7P,OACzB,IAAI8P,EAAe1L,KACnB8K,EAAIxK,QAAUoL,EAAapL,QAC3BwK,EAAIpK,UAAYgL,EAAahL,UAC7BoK,EAAInK,UAAY+K,EAAa/K,UAC7BmK,EAAIlK,aAAe8K,EAAa9K,aAChCkK,EAAI3J,QAAUuK,EAAavK,QAC3B2J,EAAI3wG,KAAOuxG,EAAavxG,KACxB2wG,EAAIhJ,eAAiB4J,EAAa5J,eAClCgJ,EAAIa,eAAiB3J,KACrB,IAAI4J,EAAc3J,KAClB6I,EAAI5I,QAAU0J,EAAY1J,QAC1B4I,EAAIlvH,IAAMgwH,EAAYhwH,IACtBkvH,EAAI/tF,KAAO6uF,EAAY7uF,KACvB+tF,EAAI3I,cAAgByJ,EAAYzJ,cAChC2I,EAAI7tF,OAAS2uF,EAAY3uF,OACzB6tF,EAAI1I,SAAWwJ,EAAYxJ,SAC3B0I,EAAI3tF,SAAWyuF,EAAYzuF,SAC3B2tF,EAAIxI,MAAQsJ,EAAYtJ,MACxBwI,EAAIvI,OAASqJ,EAAYrJ,OACzB,IAAIsJ,EAAere,KACnBsd,EAAIpd,YAAcme,EAAane,YAC/Bod,EAAIjd,gBAAkBge,EAAahe,gBACnCid,EAAI9c,IAAM6d,EAAa7d,IACvB8c,EAAI5c,kBAAoB2d,EAAa3d,kBACrC4c,EAAI3c,eAAiB0d,EAAa1d,eAClC2c,EAAI1c,iBAAmByd,EAAazd,iBACpC0c,EAAIzc,iBAAmBwd,EAAaxd,iBACpCyc,EAAIvc,iBAAmBsd,EAAatd,iBACpCuc,EAAItc,kBAAoBqd,EAAard,kBACrCsc,EAAInc,iBAAmBkd,EAAald,iBACpCmc,EAAIlc,uBAAyBid,EAAajd,uBAC1C,IAAIkd,EAAerJ,KACnBqI,EAAIrH,QAAUqI,EAAarI,QAC3BqH,EAAInH,QAAUmI,EAAanI,QAC3BmH,EAAIhI,WAAagJ,EAAahJ,WAC9BgI,EAAIlH,UAAYkI,EAAalI,UAC7BkH,EAAIlI,aAAekJ,EAAalJ,aAChCkI,EAAI/H,oBAAsB+I,EAAa/I,oBACvC+H,EAAIjH,iBAAmBiI,EAAajI,iBACpCiH,EAAI/G,QAAU+H,EAAa/H,QAC3B+G,EAAI9G,WAAa8H,EAAa9H,WAC9B8G,EAAI7G,YAAc6H,EAAa7H,YAC/B,IAAI8H,EAAc7H,KAClB4G,EAAI3G,aAAe4H,EAAY5H,aAC/B2G,EAAI1G,eAAiB2H,EAAY3H,eACjC0G,EAAIzG,cAAgB0H,EAAY1H,cAChCyG,EAAIxG,YAAcyH,EAAYzH,YAC9BwG,EAAIvG,eAAiBwH,EAAYxH,eACjCuG,EAAItG,eAAiBuH,EAAYvH,eACjC,IAAIwH,EAAevH,KACnBqG,EAAIjG,kBAAoBmH,EAAanH,kBACrCiG,EAAIpF,gBAAkBsG,EAAatG,gBACnCoF,EAAI9E,gBAAkBgG,EAAahG,gBACnC8E,EAAIvE,mBAAqByF,EAAazF,mBACtCuE,EAAItE,kBAAoBwF,EAAaxF,kBACrCsE,EAAI3D,gBAAkB6E,EAAa7E,gBACnC,IAAI8E,EAAe/4B,IACnB43B,EAAIl3B,WAAaq4B,EAAar4B,WAC9Bk3B,EAAIj3B,WAAao4B,EAAap4B,WAC9Bi3B,EAAIh3B,cAAgBm4B,EAAan4B,cACjCg3B,EAAI/2B,mBAAqBk4B,EAAal4B,mBACtC,IAAIm4B,EAAgBrnB,IACpBimB,EAAIz9E,IAAM6+E,EAAc7+E,IACxBy9E,EAAI3lB,KAAO+mB,EAAc/mB,KACzB2lB,EAAI7lH,MAAQinH,EAAcjnH,MAC1B,IAAIknH,EAAcnwB,IAClB8uB,EAAInuB,aAAewvB,EAAYlwB,QAC/B,IAAImwB,EAAiB3E,KACrBqD,EAAIlD,SAAWwE,EAAexE,SAC9BkD,EAAIuB,aAAeD,EAAepE,KAClC8C,EAAIwB,cAAgBF,EAAe/lG,MACnC,IAAIkmG,EAAY1d,KA4NhB,SAAS2d,EAAqBC,GAC5B,IAAIC,EAAmB,CAAC,EACxB,IAAK,IAAI17H,KAAKy7H,EAEZ,IADA,IAAIE,EAAMF,EAAcz7H,GACfD,EAAI,EAAGA,EAAI47H,EAAIzjI,OAAQ6H,IAC9B27H,EAAiBC,EAAI57H,KAAOC,EAGhC,OAAO07H,CACT,CApOA5B,EAAIlb,YAAc2c,EAAU3c,YAC5Bkb,EAAI/a,UAAYwc,EAAUxc,UAC1B+a,EAAIhc,cAAgByd,EAAUzd,cAC9Bgc,EAAI7a,aAAesc,EAAUtc,aAC7B6a,EAAI7b,oBAAsBsd,EAAUtd,oBACpC6b,EAAI5a,uBAAyBqc,EAAUrc,uBACvC4a,EAAI3a,gBAAkBoc,EAAUpc,gBAChC2a,EAAIla,uBAAyB2b,EAAU3b,uBACvCka,EAAIxb,0BAA4Bid,EAAUjd,0BAC1Cwb,EAAIvb,uBAAyBgd,EAAUhd,uBACvCub,EAAIja,cAAgB0b,EAAU1b,cAC9Bia,EAAI8B,gBAAkBzE,KACtB2C,EAAI+B,sBAAwBhE,KAC5BiC,EAAIgC,gBAAkB3D,KACtB2B,EAAI/+F,EAAIy9F,KACRsB,EAAIhmB,SAAWX,IACf2mB,EAAIiC,aAAepD,KACnBmB,EAAIkC,cAAgBnD,KACpBiB,EAAItT,WAAanS,IACjBylB,EAAImC,UAAY/C,KAChBY,EAAIoC,YAAc3C,KAClBO,EAAIqC,aAAe,SAAsBhiG,GACvC,OAAKw7D,EAAUx7D,IACfA,EAAI9W,OAAO8W,IACAy/F,GAAYz/F,EAAI0/F,EAAW3qC,EAAS/0D,EAFrB+0D,CAG5B,EACA4qC,EAAIsC,QAAU,SAASjiG,EAAGvvB,GACxB,aAAY,IAARA,GAAkBuvB,GAAKvvB,IACpB+qF,EAAUx7D,IAAMA,GAAK,GAAKA,EAAI,IAAM,CAC7C,EACA2/F,EAAIvT,KAAOnS,IACX0lB,EAAI1oD,SAAW29C,KACf+K,EAAIuC,OAAS,SAASliG,EAAGmiG,GAEvB,IADA,IAAI5+D,EAAM,IAAIh8D,MAAM46H,GACXxiI,EAAI,EAAGA,EAAIwiI,EAAKxiI,IACvB4jE,EAAI5jE,GAAKqgC,EAEX,OAAOujC,CACT,EACAo8D,EAAIyC,UAAY,SAAS1mC,EAAM2mC,EAAUC,EAAOC,GACzCD,IAAOA,EAAQ,KACfC,IAAOA,EAAQ,KACpB,IAAK,IAAI5iI,EAAI,EAAGA,EAAI0iI,EAAStkI,OAAQ4B,IAAK,CACxC,IAAIi7C,EAAOynF,EAAS1iI,GAChB6iI,EAAK7C,EAAI/hC,eAAelC,EAAM9gD,EAAK75C,QAAQ,IAAKuhI,IAChDG,EAAK9C,EAAI/hC,eAAelC,EAAM9gD,EAAK75C,QAAQ,IAAKwhI,IAChDG,EAAOF,EAAG/7H,MACd+7H,EAAG97H,IAAI+7H,EAAGh8H,OACVg8H,EAAG/7H,IAAIg8H,EACT,CACF,EACA/C,EAAIgD,WAAa,SAAoBC,GACnCA,EAAKxiI,WAAWb,YAAYqjI,EAC9B,EACAjD,EAAIkD,iBAAmB,SAAS9qF,GAC9B,OAAOA,EAAUljC,aAAaE,SAAS,EACzC,EACA4qH,EAAImD,UAAY,SAAS9iG,EAAG2gD,EAAIoiD,GAC9B,OAAIpiD,EAAKoiD,EAAWxiI,KAAK6mB,IAAI27G,EAAIxiI,KAAK8mB,IAAIs5D,EAAI3gD,IACvCz/B,KAAK6mB,IAAIu5D,EAAIpgF,KAAK8mB,IAAI07G,EAAI/iG,GACnC,EACA2/F,EAAIqD,cAAgB,SAASj6G,EAAG4H,EAAGiiD,GAEjC,OADAA,EAAMA,GAAO,EACN7pD,EAAEmP,MAAQvH,EAAEqH,MAAQ46C,GAAOjiD,EAAEuH,MAAQnP,EAAEiP,MAAQ46C,GAAO7pD,EAAEgP,KAAOpH,EAAEsH,OAAS26C,GAAOjiD,EAAEoH,KAAOhP,EAAEkP,OAAS26C,CAC9G,EACA+sD,EAAIsD,UAAY,SAASlhI,EAAOyH,EAAMw5C,EAAIsa,EAAI6iC,GAG5C,IAFA,IAAI1vF,EAAM1O,EAAMhE,OACZwlE,EAAM,IAAIh8D,MAAMkJ,GACX9Q,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAK4jE,EAAI5jE,GAAK6J,EAAKzH,EAAMpC,GAAIqjD,EAAIsa,EAAI6iC,GAC9D,OAAO58B,CACT,EACAo8D,EAAIuD,QAAU,SAASA,EAAQC,EAAUC,EAAM50G,EAAM60G,GAGnD,GAFK70G,IAAMA,EAAO,SACL,IAAT40G,IAAiBA,EAAO,IACxBA,GAAQ,EAAG,MAAO,IACtB,IAEIzjI,EAAGgxB,EAFHugG,EAAS3wH,KAAK2hD,IAAI3hD,KAAK4jD,IAAI,EAAGi/E,IAAS7iI,KAAK2hD,IAAI1zB,GAChDmd,EAAM,GAEV,IAAKhsC,EAAI,EAAGuxH,IAAWx8E,IAAU/0C,GAAK,EACpCuxH,EAAS3wH,KAAK2hD,IAAI3hD,KAAK4jD,IAAI,EAAGi/E,EAAOzjI,IAAMY,KAAK2hD,IAAI1zB,GAAQ7uB,EAE9D,IAAI2jI,EAAMpS,EAAS3wH,KAAK2/B,MAAMgxF,GAC9B,IAAKvxH,EAAI,EAAGA,EAAIY,KAAK2/B,MAAMgxF,GAASvxH,IAElCgsC,EADIprC,KAAK2/B,MAAM3/B,KAAKqyC,SAAWpkB,GAAMvjB,SAASujB,GACpCmd,EAER23F,IACF3yG,EAAIpwB,KAAK4jD,IAAI31B,EAAM80G,GAEnB33F,EADIprC,KAAK2/B,MAAM3/B,KAAKqyC,SAAWjiB,GAAG1lB,SAASujB,GACjCmd,GAEZ,IAAIxlC,EAAS2hB,SAAS6jB,EAAKnd,GAC3B,OAAI20G,GAAYA,EAASx3F,IAAQxlC,IAAWuuC,KAAYvuC,GAAU5F,KAAK4jD,IAAI,EAAGi/E,GACxEC,EAAa,IACf1D,EAAI3lB,KAAK,6BACFruE,GAEFu3F,EAAQC,EAAUC,EAAM50G,GAAO60G,GAAc,GAAK,GAC7C13F,CAChB,EACAg0F,EAAI4D,cAAgB,SAASC,EAAKC,GAC3BD,IAAKA,EAAM,CAAC,GACZC,IAASA,EAAU,OACxB,IAAIr2F,EAAQ,CACZA,WAAmB,GACnBA,WAAmB,SAASs2F,GAC1BA,EAAOD,GAAWD,EAClBp2F,EAAMs2F,EAAO96H,MAAQ86H,EACrBt2F,EAAMu2F,WAAWrlI,KAAKolI,EACxB,GAEA,OADAt2F,EAAM,IAAMq2F,GAAWD,EAChBp2F,CACT,EACAuyF,EAAIiE,OAAS,SAAS3N,EAAS4N,GAE7B,IADAA,EAAOtjI,KAAK+b,MAAMunH,IAAS,GAChB,EAAG,OAAO5N,EACrB,IAKIt2H,EACAiG,EACAC,EACAm6B,EARA8jG,EAAO7N,EAAQl4H,OACfgmI,EAAQ,EAAID,EACZE,EAAO,EAAIH,EAAO,EAClBvjG,EAAI,IAAI/4B,MAAMy8H,GACdC,EAAW,IAAI18H,MAAMu8H,GAKzB,IAAKnkI,EAAI,EAAGA,EAAIqkI,EAAMrkI,IACpB2gC,EAAE3gC,IAAM,EAAIY,KAAKsnD,IAAItnD,KAAKsgD,IAAMlhD,EAAI,GAAKkkI,KAAU,EAAIA,GAEzD,IAAKlkI,EAAI,EAAGA,EAAImkI,EAAMnkI,IAAK,CAEzB,IADAqgC,EAAI,EACCp6B,EAAI,EAAGA,EAAIo+H,EAAMp+H,KACpBC,EAAIlG,EAAIiG,EAAI,EAAIi+H,IACPC,EAAMj+H,GAAKk+H,EAAQxjI,KAAK+b,MAAMzW,EAAIk+H,GAClCl+H,GAAKk+H,IAAOl+H,GAAKk+H,EAAQxjI,KAAK2/B,MAAMr6B,EAAIk+H,IAC7Cl+H,EAAI,EAAGA,GAAK,EAAIA,EACXA,GAAKi+H,IAAMj+H,EAAIk+H,EAAQ,EAAIl+H,GACpCm6B,GAAKi2F,EAAQpwH,GAAKy6B,EAAE16B,GAEtBq+H,EAAStkI,GAAKqgC,CAChB,CACA,OAAOikG,CACT,EACAtE,EAAIuE,YAAc,SAASC,EAAUl7H,EAAKm7H,GACxC,IAAIt2F,EACJ,SAASu2F,IACP,OAAO1E,EAAIuE,YAAYC,EAAUl7H,EAAKm7H,EACxC,CACA,KAAOD,EAASpmI,QAGd,IADA+vC,GADAw2F,EAAMH,EAAS/mE,OAAO,EAAG,GAAG,IAClBn0D,KACC6kC,EAAIL,KACb,OAAOK,EAAIL,KAAK42F,GAGpB,OAAOD,GAAaA,EAAUn7H,EAChC,EACA02H,EAAI4E,mBAAqB,SAASh0H,GAChC,MAAuB,MAAnBA,EAAI/O,QAAQ,GAAmB+O,EAAI/O,OAAO,EAAG+O,EAAIxS,OAAS,GACvDwS,CACT,EACAovH,EAAI6E,UAAY,SAASzwB,EAAaC,EAAcquB,GAClD,GAAKtuB,EAAL,CACA,IAEIp0G,EACA8oB,EAHAg8G,GAAS,EACTC,GAAS,EAGb,IAAK/kI,EAAI,EAAGA,EAAI0iI,EAAStkI,OAAQ4B,SAEnB,KADZ8oB,EAAMsrF,EAAYsuB,EAAS1iI,MACG,OAAR8oB,EAAcg8G,GAAS,EACxCC,GAAS,EAEhB,GAAID,IAAWC,EACb,IAAK/kI,EAAI,EAAGA,EAAI0iI,EAAStkI,OAAQ4B,IAC/Bo0G,EAAYsuB,EAAS1iI,IAAMq0G,EAAaquB,EAAS1iI,GAZ7B,CAe1B,EACAggI,EAAIgF,WAAa,SAASC,EAAWxG,EAAIyG,EAAQ97H,GAC/C,IAAI+7H,EAAsB,oBAAP/7H,EACnB,GAAI42H,EAAI7nC,oBAAoB8sC,GAE1B,IADA,IAAIG,EAAOxkI,KAAK8mB,IAAIu9G,EAAU7mI,OAAQqgI,EAAGrgI,QAChC4B,EAAI,EAAGA,EAAIolI,EAAMplI,IAAK,CAC7B,IAAIqgC,EAAI4kG,EAAUjlI,GAClBy+H,EAAGz+H,GAAGklI,GAAUC,EAAQ/7H,EAAGi3B,GAAKA,CAClC,CAEJ,EACA2/F,EAAIqF,uBAAyB,SAASJ,EAAWxG,EAAIyG,GACnD,OAAOlF,EAAIgF,WAAWC,EAAWxG,EAAIyG,GAAQ,SAAS7kG,GACpD,IAAIM,GAAKN,EACT,OAAQ61B,SAASv1B,IAASA,EAAI,EAAIA,EAAZ,CACxB,GACF,EACAq/F,EAAIsF,UAAY,SAASL,EAAWxG,EAAIyG,EAAQ97H,GAE9C,GADAA,EAAKA,GAAM42H,EAAI1oD,SACX0oD,EAAI7nC,oBAAoB8sC,GAC1B,IAAK,IAAIjlI,EAAI,EAAGA,EAAIy+H,EAAGrgI,OAAQ4B,IAC7By+H,EAAGz+H,GAAGklI,GAAU97H,EAAG67H,EAAUjlI,GAGnC,EACAggI,EAAIuF,WAAa,SAASnrB,EAAOorB,EAAU/oC,EAAMrzF,GAC/CA,EAAKA,GAAM42H,EAAI1oD,SACf,IAAIxuD,EAAMk3G,EAAI/hC,eAAemc,EAAO3d,GAAM31F,MAC1C,OAAIk5H,EAAI7nC,oBAAoBrvE,GACtBlhB,MAAMiI,QAAQ21H,IAAaxF,EAAI7nC,oBAAoBrvE,EAAI08G,EAAS,KAC3Dp8H,EAAG0f,EAAI08G,EAAS,IAAIA,EAAS,KAE7Bp8H,EAAG0f,EAAI08G,IAGT18G,CAEX,EACAk3G,EAAIyF,cAAgB,SAASC,EAAQtrB,EAAOurB,EAASC,GACnD,GAAID,KAAWD,EAAQ,OAAOA,EAAOC,GACrC,IAAIE,EAAW7F,EAAI/hC,eAAemc,EAAOwrB,GAAU9+H,MACnD,OAAKc,MAAMiI,QAAQg2H,QAAnB,EAAqCA,CACvC,EAWA7F,EAAI8F,YAAc,SAASC,EAAW3rB,EAAO4rB,GAC3C,IAEIpE,EAIoBvhG,EANpB4sE,EAAiBmN,EAAMnN,eACvB00B,EAAgBvnB,EAAM6rB,eAEtBtE,IACFC,EAAmBF,EAAqBC,IAK1C,IAAK,IAAI3hI,EAAI,EAAGA,EAAIitG,EAAe7uG,OAAQ4B,IAAK,CAC9C,IAAIkmI,EAAUj5B,EAAejtG,GAC7B,GAAIggI,EAAIsC,QAAQ4D,IAAYlG,EAAI7nC,oBAAoB+tC,IAAYlG,EAAIsC,QAAQ4D,EAAQ,KAAOlG,EAAIsC,QAAQ4D,EAAQ,IAAK,CAClH,IAAIV,EAAW5D,EAAmBA,EAAiBsE,GAAWA,EAC1DC,EAAUH,EAAmBA,EAAiBR,GAAYA,OANnD,KADSnlG,EAQD8lG,IAPE9lG,EAAI0lG,EAAU3nI,SAQjC2nI,EAAUI,GAAS1tH,SAAW,EAElC,CACF,CACF,EACAunH,EAAIoG,qBAAuB,SAAShsB,GAClC,IAAInN,EAAiBmN,EAAMnN,eACvB00B,EAAgBvnB,EAAM6rB,eAC1B,GAAItE,EAAe,CAGjB,IAFA,IAAIC,EAAmBF,EAAqBC,GACxC/9D,EAAM,GACD5jE,EAAI,EAAGA,EAAIitG,EAAe7uG,OAAQ4B,IAAK,CAC9C,IAAIkmI,EAAUj5B,EAAejtG,GAC7B,GAAIggI,EAAIsC,QAAQ4D,GAAU,CACxB,IAAIV,EAAW5D,EAAiBsE,GAC5BlG,EAAIsC,QAAQkD,IACd5hE,EAAIjlE,KAAK6mI,EAEb,CACF,CACA,OAAO5hE,CACT,CACE,OAAOqpC,CAEX,EACA+yB,EAAIqG,eAAiB,SAASjsB,EAAOksB,GACnC,IAAIriH,EAASqiH,EAAcriH,OAC3B,GAAsB,kBAAXA,GAAuBA,EAAQ,CACxC,IAAI7hB,EAAQ49H,EAAI/hC,eAAemc,EAAOn2F,GAAQnd,MAC9C,QAAOk5H,EAAI7nC,oBAAoB/1F,IAASA,CAC1C,CAAO,QAAI49H,EAAI7nC,oBAAoBl0E,IAC1BA,CAGX,EAqCA+7G,EAAIuG,UApCJ,SAASA,EAAUC,EAAMC,EAAM5C,GAC7B,IAAI6C,EAAS,CAAC,EACM,kBAATD,IAAmBA,EAAO,CAAC,GACtC,IAEIzmI,EAAGkG,EAAGm6B,EAFNsmG,EAAmB,YAAR9C,GAAqB,EAAI,EACpC5+G,EAAOhkB,OAAOgkB,KAAKuhH,GAEvB,IAAKxmI,EAAI,EAAGA,EAAIilB,EAAK7mB,OAAQ4B,IAE3BqgC,EAAImmG,EADJtgI,EAAI+e,EAAKjlB,IAEW,MAAhBkG,EAAEmiB,OAAO,IAA2B,oBAANgY,IACnB,WAANn6B,EAAgBwgI,EAAOxgI,GAAKm6B,EAC5Bz4B,MAAMiI,QAAQwwB,GAEnBqmG,EAAOxgI,GADC,eAANA,IAAoC,IAAdygI,EACZtmG,EAAEr+B,QAEFq+B,EAAEr+B,MAAM,EAAG2kI,GAEhB3G,EAAI/nC,aAAa53D,GAExBqmG,EAAOxgI,IADS,IAAdygI,EACUtmG,EAAEumG,WAEFvmG,EAAEumG,SAAS,EAAGD,GAESD,EAAOxgI,GAAnCm6B,GAAkB,kBAANA,EAA4BkmG,EAAUC,EAAKtgI,GAAIugI,EAAKvgI,GAAI29H,GAC9DxjG,GAGnB,IADApb,EAAOhkB,OAAOgkB,KAAKwhH,GACdzmI,EAAI,EAAGA,EAAIilB,EAAK7mB,OAAQ4B,IAGV,kBADjBqgC,EAAIomG,EADJvgI,EAAI+e,EAAKjlB,MAEsBkG,KAAKwgI,GAAgC,kBAAdA,EAAOxgI,KAC3DwgI,EAAOxgI,GAAKm6B,GAGhB,OAAOqmG,CACT,EAEA1G,EAAI6G,UAAY,SAAS39G,GACvB,OAAOA,EAAEb,OAAO,GAAGkS,cAAgBrR,EAAErnB,OAAO,EAC9C,EACAm+H,EAAI8G,YAAc,SAAS59G,EAAG69G,GAC5B,IAAK,IAAI/mI,EAAI,EAAGA,EAAI+mI,EAAU3oI,OAAQ4B,IACpC,IAAiC,IAA7BkpB,EAAEznB,QAAQslI,EAAU/mI,IAAY,OAAO,EAE7C,OAAO,CACT,EACA,IAAIgnI,EAAkB,2BACtBhH,EAAIiH,SAAW,WACb,OAAOD,EAAgB5hH,KAAKuY,OAAOygB,UAAUC,UAC/C,EACA,IAAI6oF,EAAe,mBACnBlH,EAAImH,MAAQ,WACV,OAAOD,EAAa9hH,KAAKuY,OAAOygB,UAAUC,UAC5C,EACA,IAAI+oF,EAAwB,sBAC5BpH,EAAIqH,kBAAoB,WACtB,IAAI7/H,EAAQ4/H,EAAsB7/H,KAAKo2B,OAAOygB,UAAUC,WACxD,GAAI72C,GAA0B,IAAjBA,EAAMpJ,OAAc,CAC/B,IAAIkpI,EAAan/G,SAAS3gB,EAAM,IAChC,IAAKgqC,MAAM81F,GACT,OAAOA,CAEX,CACA,OAAO,IACT,EACAtH,EAAIuH,cAAgB,SAAS53H,GAC3B,OAAOA,aAAeogC,EAAGqI,SAC3B,EACA4nF,EAAIwH,aAAe,SAAS5kI,EAAQ4tC,EAAUl/B,EAAWm2H,GACvD,IAAIC,EAAM9kI,EAAOy1C,OAAO7H,GAAYl/B,EAAY,IAAMA,EAAY,KAClE,GAAIo2H,EAAI1hI,OAAQ,OAAO0hI,EACvB,IAAI3d,EAAQnnH,EAAOT,OAAOquC,GAG1B,OAFIl/B,GAAWy4G,EAAM3uE,QAAQ9pC,GAAW,GACpCm2H,GAAS1d,EAAMliH,KAAK4/H,GACjB1d,CACT,EACAiW,EAAI2H,iBAAmB,SAAS/kI,EAAQ4tC,EAAUrR,EAAIsoG,GACpD,IAAIC,EAAM9kI,EAAOy1C,OAAO7H,EAAW,IAAMrR,GACzC,GAAIuoG,EAAI1hI,OAAQ,OAAO0hI,EACvB,IAAI3d,EAAQnnH,EAAOT,OAAOquC,GAAUyK,KAAK,KAAM9b,GAE/C,OADIsoG,GAAS1d,EAAMliH,KAAK4/H,GACjB1d,CACT,EACAiW,EAAI4H,eAAiB,SAASrmH,EAAMpgB,GAIlC,IAHA,IACI0mI,EADA5iH,EAAO1D,EAAKlZ,MAAM,KAElBsH,EAAMk4H,EAAS,CAAC,EACX7nI,EAAI,EAAGA,EAAIilB,EAAK7mB,OAAQ4B,IAAK,CACpC,IAAIf,EAAMgmB,EAAKjlB,GACXikH,EAAK,KACLjoB,EAAQ/2E,EAAKjlB,GAAGwH,MAAM,oBACtBw0F,GACF/8F,EAAM+8F,EAAM,GACZioB,EAAKjoB,EAAM,GACX6rC,EAASA,EAAO5oI,GAAO,GACnBe,IAAMilB,EAAK7mB,OAAS,EACtBypI,EAAO5jB,GAAM9iH,EAEb0mI,EAAO5jB,GAAM,CAAC,EAEhB4jB,EAASA,EAAO5jB,KAEZjkH,IAAMilB,EAAK7mB,OAAS,EACtBypI,EAAO5oI,GAAOkC,EAEd0mI,EAAO5oI,GAAO,CAAC,EAEjB4oI,EAASA,EAAO5oI,GAEpB,CACA,OAAO0Q,CACT,EACA,IAAIm4H,EAAsB,qBACtBC,EAAuB,kCAC3B,SAASC,EAAShnH,GAChB,MAA4B,OAArBA,EAAKhf,MAAM,EAAG,EACvB,CACAg+H,EAAIiI,kBAAoB,SAASvtF,GAC/B,IAAIlzC,EAAOvI,EAAK+hB,EAAMy7B,EAAO1zB,EAAKm/G,EAAMC,EACxC,GAAoB,kBAATztF,IAAsB9yC,MAAMiI,QAAQ6qC,GAC7C,IAAKz7C,KAAOy7C,EACV,GAAIA,EAAKjhC,eAAexa,GACtB,GAAIuI,EAAQvI,EAAIuI,MAAMsgI,GAAsB,CAG1C,GAFArrF,EAAQ/B,EAAKz7C,GAET+oI,EADJhnH,EAAOxZ,EAAM,IACO,gBACbkzC,EAAKz7C,GACZy7C,EAAK15B,GAAQg/G,EAAI/2B,mBAAmBvuD,EAAK15B,IAAS,CAAC,EAAGg/G,EAAI4H,eAAe3oI,EAAK+gI,EAAIiI,kBAAkBxrF,IAAQz7B,GAC9G,MAAO,GAAIxZ,EAAQvI,EAAIuI,MAAMugI,GAAuB,CAGlD,GAFAtrF,EAAQ/B,EAAKz7C,GAET+oI,EADJhnH,EAAOxZ,EAAM,IACO,SAIpB,GAHAuhB,EAAMZ,SAAS3gB,EAAM,WACdkzC,EAAKz7C,GACZy7C,EAAK15B,GAAQ05B,EAAK15B,IAAS,GACV,MAAbxZ,EAAM,GACR2gI,EAAe3gI,EAAM,GACrB0gI,EAAOxtF,EAAK15B,GAAM+H,GAAO2xB,EAAK15B,GAAM+H,IAAQ,CAAC,EAC7Ci3G,EAAI/2B,mBAAmBi/B,EAAMlI,EAAI4H,eAAeO,EAAcnI,EAAIiI,kBAAkBxrF,SAC/E,CACL,GAAIurF,EAAShnH,GAAO,SACpB05B,EAAK15B,GAAM+H,GAAOi3G,EAAIiI,kBAAkBxrF,EAC1C,CACF,KAAO,CACL,GAAIurF,EAAS/oI,GAAM,SACnBy7C,EAAKz7C,GAAO+gI,EAAIiI,kBAAkBvtF,EAAKz7C,GACzC,CAIN,OAAOy7C,CACT,EACAslF,EAAIoI,YAAc,SAASjnI,EAAO4qH,EAAYsc,GAE5C,GADKA,IAAmBA,GAAoB,GAClB,kBAAftc,GAAiD,IAAtBA,EAAW3tH,OAC/C,MAAM,IAAI2R,MAAM,6CAEG,kBAAV5O,IACTA,EAAQL,OAAOK,IAEjB,IAAImnI,EAAc,eACdC,EAAaxc,EAAW1jG,OAAO,GAC/BmgH,EAAUzc,EAAW1jG,OAAO,GAC5BliB,EAAIhF,EAAMkH,MAAM,KAChBg7C,EAAKl9C,EAAE,GACPw3D,EAAKx3D,EAAE/H,OAAS,EAAImqI,EAAapiI,EAAE,GAAK,GAC5C,GAAIqiI,IAAYriI,EAAE/H,OAAS,GAAKilD,EAAGjlD,OAAS,GAAKiqI,GAC/C,KAAOC,EAAYljH,KAAKi+B,IACtBA,EAAKA,EAAGjiD,QAAQknI,EAAa,KAAOE,EAAU,MAGlD,OAAOnlF,EAAKsa,CACd,EACAqiE,EAAIyI,sBAAwB,iCAC5B,IAAIvqC,GAAwB,QAC5B8hC,EAAI0I,eAAiB,SAAS94H,EAAQD,GACpC,IAAIg5H,EAAc,CAAC,EACnB,OAAO/4H,EAAOxO,QAAQ4+H,EAAIyI,uBAAuB,SAASG,EAAO3pI,GAC/D,IAAIohC,EAOJ,OANI69D,GAAsB94E,KAAKnmB,GAC7BohC,EAAI1wB,EAAI1Q,IAER0pI,EAAY1pI,GAAO0pI,EAAY1pI,IAAQ+gI,EAAI/hC,eAAetuF,EAAK1Q,GAAK6H,IACpEu5B,EAAIsoG,EAAY1pI,IAAK,SAEV,IAANohC,EAAeA,EAAI,EAC5B,GACF,EACA,IAAIwoG,GAAwB,CAC1BphH,IAAK,GACL5jB,MAAO,EACPoF,KAAM,iBAER+2H,EAAI8I,oBAAsB,WACxB,OAAOC,GAAqB39H,MAAMy9H,GAAuB99H,UAC3D,EACA,IAAIi+H,GAAuB,CACzBvhH,IAAK,GACL5jB,MAAO,EACPoF,KAAM,gBAER+2H,EAAIiJ,mBAAqB,WACvB,OAAOF,GAAqB39H,MAAM49H,GAAsBj+H,UAC1D,EACA,IAAIm+H,GAAiB,iCAMjBC,GAAgC,CAClC1hH,IAAK,GACL5jB,MAAO,EACPoF,KAAM,eACNmgI,cAAc,GAEhBpJ,EAAIqJ,4BAA8B,WAChC,OAAON,GAAqB39H,MAAM+9H,GAA+Bp+H,UACnE,EACA,IAAIu+H,GAAmC,UACvC,SAASP,GAAqBn5H,EAAQ25H,EAAQC,GAC5C,IAAIhpC,EAAOziG,KACPiN,EAAOD,UAEX,OADKw+H,IAAQA,EAAS,CAAC,GAChB35H,EAAOxO,QAAQ4+H,EAAIyI,uBAAuB,SAASjhI,EAAOiiI,EAAQ3lG,GACvE,IACI4lG,EAA0B,YAAXD,GAAmC,YAAXA,EACvCE,EAA+B,aAAXF,GAAoC,aAAXA,EAC7CG,EAA0B,YAAXH,GAAmC,YAAXA,EACvCI,EAJqB,WAAXJ,GAAkC,WAAXA,GAIXC,GAAgBE,GAAgBD,EACtD1qI,EAAMwqI,GACNC,GAAgBC,KAAmB1qI,EAAMA,EAAIspB,UAAU,KACvDqhH,GAAgBD,KAAmB1qI,EAAMA,EAAIspB,UAAU,EAAGtpB,EAAIb,OAAS,IAC3E,IAQI+C,EAKEwO,EAAK3P,EAbP8pI,EAAW,KACXC,EAAe,KACnB,GAAIvpC,EAAK4oC,aAAc,CACrB,IAAIY,EA/BV,SAAuBC,GACrB,IAAIziI,EAAQyiI,EAASziI,MAAM0hI,IAC3B,OAAI1hI,EAAc,CAAEvI,IAAKuI,EAAM,GAAIwoG,GAAIxoG,EAAM,GAAI0b,OAAQqG,OAAO/hB,EAAM,KAC/D,CAAEvI,IAAKgrI,EAAUj6B,GAAI,KAAM9sF,OAAQ,KAC5C,CA2BmBgnH,CAAcjrI,GAC3BA,EAAM+qI,EAAO/qI,IACb6qI,EAAWE,EAAOh6B,GAClB+5B,EAAeC,EAAO9mH,MACxB,CAEA,GAAI2mH,GAEF,QAAc,KADd1oI,EAAQooI,EAAOtqI,IACO,MAAO,QAG7B,IAAKe,EAAI,EAAGA,EAAIgL,EAAK5M,OAAQ4B,IAE3B,GADA2P,EAAM3E,EAAKhL,GACX,CACA,GAAI2P,EAAI8J,eAAexa,GAAM,CAC3BkC,EAAQwO,EAAI1Q,GACZ,KACF,CAIA,GAHKi/F,GAAsB94E,KAAKnmB,KAC9BkC,EAAQ6+H,EAAI/hC,eAAetuF,EAAK1Q,GAAK6H,KAAI,SAE7B,IAAV3F,EAAkB,KARJ,CAetB,QAJc,IAAVA,IACe,MAAb2oI,IAAkB3oI,GAAS4oI,GACd,MAAbD,IAAkB3oI,GAAS4oI,SAEnB,IAAV5oI,GAAoBq/F,EAStB,OARIA,EAAK38F,MAAQ28F,EAAK/4E,MACpBu4G,EAAI3lB,KAAK,aAAep7G,EAAM,QAAUuhG,EAAKv3F,KAAO,wBACpD9H,EAAQqG,GAENg5F,EAAK38F,QAAU28F,EAAK/4E,KACtBu4G,EAAI3lB,KAAK,YAAc7Z,EAAKv3F,KAAO,sDAErCu3F,EAAK38F,QACE2D,EAET,GAAIs8B,EAAQ,CACV,IAAI+vF,EAOJ,GANkB,MAAd/vF,EAAO,KACT+vF,EAAM2V,EAAWA,EAASlJ,aAAeN,EAAIM,aAC/B,KAAVn/H,IACFA,EAAQ0yH,EAAI/vF,EAAO1iC,QAAQkoI,GAAkC,IAArDzV,CAA0D1yH,KAGpD,MAAd2iC,EAAO,GAAY,CACrB+vF,EAAM2V,EAAWA,EAAS33C,WAAaT,EACvC,IAAIvwD,EAAKm/F,EAAIpO,YAAYzwH,GACzBA,EAAQ6+H,EAAI1M,WAAWzyF,EAAIiD,EAAO1iC,QAAQkoI,GAAkC,KAAK,EAAOzV,EAC1F,CACF,KAAO,CACL,IAAIsW,EAAWlrI,EAAM,QACjBsqI,EAAO9vH,eAAe0wH,KAAWhpI,EAAQooI,EAAOY,GACtD,CAMA,OALIN,IACF1oI,EAAQ,IAAMA,EAAQ,KAClBuoI,GAAgBC,KAAmBxoI,EAAQ,IAAMA,IACjDyoI,GAAgBD,KAAmBxoI,GAAgB,MAElDA,CACT,GACF,CAGA6+H,EAAIoK,YAAc,SAAShhH,EAAG4H,GAI5B,IAHA,IAAI7H,EAAIvoB,KAAK8mB,IAAI0B,EAAEhrB,OAAQ4yB,EAAE5yB,QAAU,EACnCisI,EAAO,EACPC,EAAO,EACFtqI,EAAI,EAAGA,EAAImpB,EAAGnpB,IAAK,CAC1B,IAAIuqI,EAAQnhH,EAAExnB,WAAW5B,IAAM,EAC3BwqI,EAAQx5G,EAAEpvB,WAAW5B,IAAM,EAC3ByqI,EAASF,GATL,IASuBA,GARvB,GASJG,EAASF,GAVL,IAUuBA,GATvB,GAYR,GAFIC,IAAQJ,EAAO,GAAKA,EAAOE,EAXvB,IAYJG,IAAQJ,EAAO,GAAKA,EAAOE,EAZvB,KAaHC,IAAWC,EAAQ,CACtB,GAAIL,IAASC,EAAM,OAAOD,EAAOC,EACjC,GAAIC,IAAUC,EAAO,OAAOD,EAAQC,CACtC,CACF,CACA,OAAOF,EAAOD,CAChB,EACA,IAAIM,GAAW,IACf3K,EAAI4K,iBAAmB,WACrBD,GAAW,GACb,EACA3K,EAAI6K,aAAe,WACjB,IAAIC,EAAUH,GAEd,OADAA,IAAY,MAAQA,GAAW,GAAK,WAChC/pI,KAAKD,IAAIgqI,GAAWG,GAAW,UAAkB9K,EAAI6K,eAClDF,GAAW,UACpB,EACA3K,EAAI+K,SAAW,SAASrF,EAAQtrB,EAAO4wB,GACrC,IAAIh2H,EAAOpN,MAAMiI,QAAQm7H,GAAW,SAAS3qG,GAC3C2qG,EAAQrsI,KAAK0hC,EACf,EAAI,SAASA,GACX2qG,EAAQhzH,KAAOqoB,CACjB,EACI4qG,EAAMjL,EAAIyF,cAAcC,EAAQtrB,EAAO,MAAO,aAClD,GAAI4lB,EAAIkL,iBAAiBD,GAAM,OAAOj2H,EAAKi2H,GAC3C,IAAIl5D,EAAKiuD,EAAIyF,cAAcC,EAAQtrB,EAAO,KAAM,QAChD,OAAI4lB,EAAIkL,iBAAiBn5D,GAAY/8D,EAAK+8D,QAA1C,CACF,EACAiuD,EAAIkL,iBAAmB,SAAS7qG,GAC9B,OAAOA,GAAW,IAANA,CACd,EACA2/F,EAAImL,cAAgB,SAASh4D,EAAOjrD,GAClCA,EAAIA,GAAK,EAET,IADA,IAAItX,GAAOhQ,KAAK+b,MAAM,IAAMw2D,EAAQvyE,KAAK4jD,IAAI,GAAIt8B,IAAMtnB,KAAK4jD,IAAI,GAAKt8B,IAAIsB,QAAQtB,GAAK,IAC7EloB,EAAI,EAAGA,EAAIkoB,EAAGloB,KACK,IAAtB4Q,EAAInP,QAAQ,OAEdmP,GADAA,EAAMA,EAAIxP,QAAQ,KAAM,MACdA,QAAQ,KAAM,MAG5B,OAAOwP,CACT,EACAovH,EAAIoL,SAAW,SAASrmB,GACtB,IAAIhwG,EAAU4oB,OAAO2d,iBAAiBypE,GAAIhwG,QAC1C,OAAQA,GAAuB,SAAZA,CACrB,EACAirH,EAAIqL,aAAe,SAASllI,EAAGC,GAC7B,OAAOD,GAAKC,EAAI,aAAeD,EAAI,IAAMC,EAAI,IAAM,EACrD,EACA45H,EAAIsL,UAAY,SAASliH,GACvB,OAAOA,EAAI,UAAYA,EAAI,IAAM,EACnC,EACA42G,EAAIuL,SAAW,SAASriH,GACtB,OAAa,IAANA,EAAU,SAAWA,EAAI,IAAM,EACxC,EACA82G,EAAIwL,iBAAmB,SAASh7G,GAC9B,IAAIi7G,EAAWj7G,EAAUi7G,SACrBC,EAAQl7G,EAAUk7G,MAClBC,EAAQn7G,EAAUm7G,MAClBC,EAAUp7G,EAAUo7G,QACpBC,EAAUr7G,EAAUq7G,QACpBC,EAAUt7G,EAAUs7G,SAAW,EAC/BC,EAAUv7G,EAAUu7G,SAAW,EAC/BtnE,EAASj0C,EAAUi0C,OACnBh3D,EAAQ+iB,EAAU/iB,MAGtB,OAFKA,EACIA,EAAQ,IAAGA,EAAQ,GADhBA,EAAQ,EAEbuyH,EAAIqL,aACTO,EAAUn+H,GAASi+H,EAAQI,GAC3BD,EAAUp+H,GAASk+H,EAAQI,IACzB/L,EAAIuL,SAAS99H,IAAUg3D,EAAS,UAAYA,GAAUgnE,EAAW,GAAK,IAAMC,EAAQ,IAAMC,GAAS,IAAM,GAC/G,EACA3L,EAAIgM,sBAAwB,SAAS9iH,EAAGsH,GACtCtH,EAAE+xB,KAAK,YAAa+kF,EAAIwL,iBAAiBh7G,IACzCtH,EAAEmB,MAAM,UAAWmG,EAAU/iB,MAAQ,KAAO,OAC9C,EACAuyH,EAAIiM,sBAAwB,SAASlnB,EAAImnB,GACvC,IAAItoE,EAAMo8D,EAAIl3B,WAAW,CAAC,EAAGojC,GAK7B,OAJAtoE,EAAI59D,KAAOpF,KAAK6mB,IACdykH,EAASlmI,KACT++G,EAAGonB,YAAY9gB,YAAYC,SAAW,GAEjC1nD,CACT,EACAo8D,EAAIoM,MAAQ,SAASr9F,EAAKs9F,EAAeC,GACvC,IAAIx7H,EAAMi+B,EAAI3wC,OACd,OAAI0S,EAAM,EACDi+B,EAAI/sC,MAAM,GAAI,GAAG4C,KAAKynI,GAAiBC,EAAgBv9F,EAAIj+B,EAAM,GAEnEi+B,EAAInqC,KAAKynI,EAClB,EACArM,EAAIuM,QAAU,SAASvmI,GACrB,OAAOpF,KAAK+b,MAAM,IAAM3W,EAC1B,EACA,IAAIwmI,GAAiBxM,EAAIqH,oBACrBoF,GAA0C,OAAnBD,IAA2BA,GAAiB,GACvExM,EAAI0M,uBAAyB,WAC3B,OAAID,GACK,CACL18F,EAAGtsB,MAAMkpH,OACT58F,EAAGtsB,MAAMmpH,QAGJ,CACL78F,EAAGtsB,MAAMopH,QACT98F,EAAGtsB,MAAMqpH,QAGf,CACF,IAIEC,GAAkB9gG,EAAW,CAC/B,qBAEE,IAyDI+gG,EACApkI,EA1DAqkI,EAAMtN,KACN56H,EAAQ,CACV,UAAW,qFACX,mBAAoB,oDACpB,+BAAgC,gBAChC,MAAO,wBACP,YAAa,wBACb,WAAY,8BACZ,sBAAuB,4GACvB,UAAW,gBACX,gBAAiB,gBACjB,cAAe,sDACf,yBAA0B,sBAC1B,oBAAqB,kBACrB,oBAAqB,kBACrB,sBAAuB,oBACvB,iBAAkB,eAClB,uBAAwB,qBACxB,uBAAwB,qBACxB,sBAAuB,oBACvB,sBAAuB,oBACvB,sBAAuB,oBACvB,qBAAsB,mBACtB,sBAAuB,oBACvB,qBAAsB,mBACtB,qBAAsB,mBACtB,sBAAuB,oBACvB,qBAAsB,mBACtB,sBAAuB,oBACvB,iBAAkB,mCAClB,aAAc,uCACd,aAAc,+NACd,qCAAsC,4LACtC,yCAA0C,aAC1C,mBAAoB,qIACpB,iBAAkB,wHAClB,qBAAsB,6BACtB,sBAAuB,4FACvB,0BAA2B,YAC3B,qCAAsC,gEACtC,kDAAmD,mCACnD,6CAA8C,+QAC9C,yDAA0D,2BAC1D,wBAAyB,oKACzB,uBAAwB,mKACxB,iEAAkE,qBAClE,kCAAmC,8FACnCshC,EAAG,oIACH,MAAO,YACP,mBAAoB,uQACpB,oBAAqB,gIACrB,0BAA2B,mDAE7B,IAAKz9B,KAAY7D,EACfioI,EAAepkI,EAASxH,QAAQ,KAAM,MAAMA,QAAQ,KAAM,2BAA2BA,QAAQ,KAAM,oBACnG6rI,EAAI9nB,aAAa6nB,EAAcjoI,EAAM6D,GAIzC,IAIEskI,GAAiBjhG,EAAW,CAC9B,oCAAoCt6B,EAASkuB,GAC3CA,EAAOluB,SAAU,CACnB,IAIEw7H,GAAoBlhG,EAAW,CACjC,kCAAkCt6B,EAASkuB,GAEzC,IACIutG,EADAC,EAAYH,KAGdE,EAD+B,oBAAtBzvG,OAAO2vG,YACJ3vG,OAAO2vG,WAAW,iBAAiBppH,QAEpCmpH,EAEbxtG,EAAOluB,QAAUy7H,CACnB,IAIEG,GAAiBthG,EAAW,CAC9B,gCAAgCt6B,EAASkuB,GAEvC,IAII2tG,EAJAhzE,EAAuB,kBAAZizE,QAAuBA,QAAU,KAC5CC,EAAelzE,GAAwB,oBAAZA,EAAEpvD,MAAuBovD,EAAEpvD,MAAQ,SAAuB6Y,EAAQ0pH,EAAU3iI,GACzG,OAAO4iI,SAASzuI,UAAUiM,MAAMvD,KAAKoc,EAAQ0pH,EAAU3iI,EACzD,EAGEwiI,EADEhzE,GAA0B,oBAAdA,EAAEqzE,QACCrzE,EAAEqzE,QACV5sI,OAAOsnC,sBACC,SAAyBtkB,GACxC,OAAOhjB,OAAOqnC,oBAAoBrkB,GAAQtb,OAAO1H,OAAOsnC,sBAAsBtkB,GAChF,EAEiB,SAAyBA,GACxC,OAAOhjB,OAAOqnC,oBAAoBrkB,EACpC,EAKF,IAAI6pH,EAAcvkH,OAAOioB,OAAS,SAAsBrwC,GACtD,OAAOA,IAAUA,CACnB,EACA,SAAS4sI,IACPA,EAAaruG,KAAK73B,KAAK9J,KACzB,CACA8hC,EAAOluB,QAAUo8H,EACjBluG,EAAOluB,QAAQq8H,KAsSf,SAAcC,EAAS3hG,GACrB,OAAO,IAAI6wF,SAAQ,SAAS3uF,EAASJ,GACnC,SAAS8/F,EAAc3gG,GACrB0gG,EAAQE,eAAe7hG,EAAO0C,GAC9BZ,EAAOb,EACT,CACA,SAASyB,IAC+B,oBAA3Bi/F,EAAQE,gBACjBF,EAAQE,eAAe,QAASD,GAElC1/F,EAAQ,GAAGxsC,MAAM6F,KAAKkD,WACxB,CAEAqjI,EAA+BH,EAAS3hG,EAAO0C,EAAU,CAAEg/F,MAAM,IACnD,UAAV1hG,GAKR,SAAuC2hG,EAASI,EAASlkC,GAC7B,oBAAf8jC,EAAQv3F,IACjB03F,EAA+BH,EAAS,QAASI,EAASlkC,EAE9D,CARMmkC,CAA8BL,EAASC,EAAe,CAAEF,MAAM,GAElE,GACF,EAvTAD,EAAaA,aAAeA,EAC5BA,EAAa5uI,UAAUovI,aAAU,EACjCR,EAAa5uI,UAAUqvI,aAAe,EACtCT,EAAa5uI,UAAUsvI,mBAAgB,EACvC,IAAIC,EAAsB,GAC1B,SAASC,EAAch4F,GACrB,GAAwB,oBAAbA,EACT,MAAM,IAAIpI,UAAU,0EAA4EoI,EAEpG,CA2BA,SAASi4F,EAAiBxuF,GACxB,YAA2B,IAAvBA,EAAKquF,cACAV,EAAaW,oBACftuF,EAAKquF,aACd,CAqCA,SAASI,EAAa5qH,EAAQphB,EAAM8zC,EAAUp4C,GAC5C,IAAIsyB,EACAi+G,EACAtL,EA3FsB5oH,EA4G1B,GAhBA+zH,EAAch4F,QAEC,KADfm4F,EAAS7qH,EAAOsqH,UAEdO,EAAS7qH,EAAOsqH,QAA0BttI,OAAOoI,OAAO,MACxD4a,EAAOuqH,aAAe,SAEK,IAAvBM,EAAOC,cACT9qH,EAAO+qH,KACL,cACAnsI,EACA8zC,EAASA,SAAWA,EAASA,SAAWA,GAE1Cm4F,EAAS7qH,EAAOsqH,SAElB/K,EAAWsL,EAAOjsI,SAEH,IAAb2gI,EACFA,EAAWsL,EAAOjsI,GAAQ8zC,IACxB1yB,EAAOuqH,kBAUT,GARwB,oBAAbhL,EACTA,EAAWsL,EAAOjsI,GAAQtE,EAAU,CAACo4C,EAAU6sF,GAAY,CAACA,EAAU7sF,GAC7Dp4C,EACTilI,EAAS7pE,QAAQhjB,GAEjB6sF,EAAS7kI,KAAKg4C,IAEhB9lB,EAAI+9G,EAAiB3qH,IACb,GAAKu/G,EAASplI,OAASyyB,IAAM2yG,EAASyL,OAAQ,CACpDzL,EAASyL,QAAS,EAClB,IAAItuG,EAAI,IAAI5wB,MAAM,+CAAiDyzH,EAASplI,OAAS,IAAM0C,OAAO+B,GAAQ,qEAC1G89B,EAAE13B,KAAO,8BACT03B,EAAEstG,QAAUhqH,EACZ0c,EAAE99B,KAAOA,EACT89B,EAAE98B,MAAQ2/H,EAASplI,OA9HGwc,EA+HH+lB,EA9HnBw5E,SAAWA,QAAQE,MAAMF,QAAQE,KAAKz/F,EA+HxC,CAEF,OAAOqJ,CACT,CAQA,SAASirH,IACP,IAAKnxI,KAAKoxI,MAGR,OAFApxI,KAAKkmB,OAAOkqH,eAAepwI,KAAK8E,KAAM9E,KAAKqxI,QAC3CrxI,KAAKoxI,OAAQ,EACY,IAArBpkI,UAAU3M,OACLL,KAAK44C,SAAS9uC,KAAK9J,KAAKkmB,QAC1BlmB,KAAK44C,SAASvrC,MAAMrN,KAAKkmB,OAAQlZ,UAE5C,CACA,SAASskI,EAAUprH,EAAQphB,EAAM8zC,GAC/B,IAAIxY,EAAQ,CAAEgxG,OAAO,EAAOC,YAAQ,EAAQnrH,SAAQphB,OAAM8zC,YACtD24F,EAAUJ,EAAYpoH,KAAKqX,GAG/B,OAFAmxG,EAAQ34F,SAAWA,EACnBxY,EAAMixG,OAASE,EACRA,CACT,CA4FA,SAASC,EAAWtrH,EAAQphB,EAAM2sI,GAChC,IAAIV,EAAS7qH,EAAOsqH,QACpB,QAAe,IAAXO,EACF,MAAO,GACT,IAAIW,EAAaX,EAAOjsI,GACxB,YAAmB,IAAf4sI,EACK,GACiB,oBAAfA,EACFD,EAAS,CAACC,EAAW94F,UAAY84F,GAAc,CAACA,GAClDD,EA0CT,SAAyBzgG,GAEvB,IADA,IAAIZ,EAAM,IAAIvmC,MAAMmnC,EAAI3wC,QACf4B,EAAI,EAAGA,EAAImuC,EAAI/vC,SAAU4B,EAChCmuC,EAAInuC,GAAK+uC,EAAI/uC,GAAG22C,UAAY5H,EAAI/uC,GAElC,OAAOmuC,CACT,CAhDkBuhG,CAAgBD,GAAcE,EAAWF,EAAYA,EAAWrxI,OAClF,CAeA,SAASwxI,EAAc/sI,GACrB,IAAIisI,EAAS/wI,KAAKwwI,QAClB,QAAe,IAAXO,EAAmB,CACrB,IAAIW,EAAaX,EAAOjsI,GACxB,GAA0B,oBAAf4sI,EACT,OAAO,EACF,QAAmB,IAAfA,EACT,OAAOA,EAAWrxI,MAEtB,CACA,OAAO,CACT,CAIA,SAASuxI,EAAW5gG,EAAK7mB,GAEvB,IADA,IAAIjlB,EAAO,IAAI2E,MAAMsgB,GACZloB,EAAI,EAAGA,EAAIkoB,IAAKloB,EACvBiD,EAAKjD,GAAK+uC,EAAI/uC,GAChB,OAAOiD,CACT,CAqCA,SAASmrI,EAA+BH,EAAS3hG,EAAOqK,EAAUwzD,GAChE,GAA0B,oBAAf8jC,EAAQv3F,GACbyzD,EAAM6jC,KACRC,EAAQD,KAAK1hG,EAAOqK,GAEpBs3F,EAAQv3F,GAAGpK,EAAOqK,OAEf,IAAwC,oBAA7Bs3F,EAAQxpH,iBAQxB,MAAM,IAAI8pB,UAAU,6EAA+E0/F,GAPnGA,EAAQxpH,iBAAiB6nB,GAAO,SAASujG,EAAavmI,GAChD6gG,EAAM6jC,MACRC,EAAQjxF,oBAAoB1Q,EAAOujG,GAErCl5F,EAASrtC,EACX,GAGF,CACF,CApUArI,OAAOgR,eAAe87H,EAAc,sBAAuB,CACzD77H,YAAY,EACZpL,IAAK,WACH,OAAO4nI,CACT,EACA3nI,IAAK,SAASuC,GACZ,GAAmB,kBAARA,GAAoBA,EAAM,GAAKwkI,EAAYxkI,GACpD,MAAM,IAAIwmI,WAAW,kGAAoGxmI,EAAM,KAEjIolI,EAAsBplI,CACxB,IAEFykI,EAAaruG,KAAO,gBACG,IAAjB3hC,KAAKwwI,SAAsBxwI,KAAKwwI,UAAYttI,OAAOu6B,eAAez9B,MAAMwwI,UAC1ExwI,KAAKwwI,QAA0BttI,OAAOoI,OAAO,MAC7CtL,KAAKywI,aAAe,GAEtBzwI,KAAK0wI,cAAgB1wI,KAAK0wI,oBAAiB,CAC7C,EACAV,EAAa5uI,UAAU4wI,gBAAkB,SAAyB7nH,GAChE,GAAiB,kBAANA,GAAkBA,EAAI,GAAK4lH,EAAY5lH,GAChD,MAAM,IAAI4nH,WAAW,gFAAkF5nH,EAAI,KAG7G,OADAnqB,KAAK0wI,cAAgBvmH,EACdnqB,IACT,EAMAgwI,EAAa5uI,UAAU6wI,gBAAkB,WACvC,OAAOpB,EAAiB7wI,KAC1B,EACAgwI,EAAa5uI,UAAU6vI,KAAO,SAAcnsI,GAE1C,IADA,IAAImI,EAAO,GACFhL,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,IAAKgL,EAAKrM,KAAKoM,UAAU/K,IAC/D,IAAIiwI,EAAmB,UAATptI,EACVisI,EAAS/wI,KAAKwwI,QAClB,QAAe,IAAXO,EACFmB,EAAUA,QAA4B,IAAjBnB,EAAO30H,WACzB,IAAK81H,EACR,OAAO,EACT,GAAIA,EAAS,CACX,IAAIC,EAGJ,GAFIllI,EAAK5M,OAAS,IAChB8xI,EAAKllI,EAAK,IACRklI,aAAcngI,MAChB,MAAMmgI,EAER,IAAI3iG,EAAM,IAAIx9B,MAAM,oBAAsBmgI,EAAK,KAAOA,EAAGC,QAAU,IAAM,KAEzE,MADA5iG,EAAIR,QAAUmjG,EACR3iG,CACR,CACA,IAAI8gG,EAAUS,EAAOjsI,GACrB,QAAgB,IAAZwrI,EACF,OAAO,EACT,GAAuB,oBAAZA,EACTX,EAAaW,EAAStwI,KAAMiN,OAE5B,KAAI8F,EAAMu9H,EAAQjwI,OACdo4C,EAAYm5F,EAAWtB,EAASv9H,GACpC,IAAS9Q,EAAI,EAAGA,EAAI8Q,IAAO9Q,EACzB0tI,EAAal3F,EAAUx2C,GAAIjC,KAAMiN,EAHX,CAK1B,OAAO,CACT,EA6CA+iI,EAAa5uI,UAAUixI,YAAc,SAAqBvtI,EAAM8zC,GAC9D,OAAOk4F,EAAa9wI,KAAM8E,EAAM8zC,GAAU,EAC5C,EACAo3F,EAAa5uI,UAAUu3C,GAAKq3F,EAAa5uI,UAAUixI,YACnDrC,EAAa5uI,UAAUkxI,gBAAkB,SAAyBxtI,EAAM8zC,GACtE,OAAOk4F,EAAa9wI,KAAM8E,EAAM8zC,GAAU,EAC5C,EAiBAo3F,EAAa5uI,UAAU6uI,KAAO,SAAenrI,EAAM8zC,GAGjD,OAFAg4F,EAAch4F,GACd54C,KAAK24C,GAAG7zC,EAAMwsI,EAAUtxI,KAAM8E,EAAM8zC,IAC7B54C,IACT,EACAgwI,EAAa5uI,UAAUmxI,oBAAsB,SAA6BztI,EAAM8zC,GAG9E,OAFAg4F,EAAch4F,GACd54C,KAAKsyI,gBAAgBxtI,EAAMwsI,EAAUtxI,KAAM8E,EAAM8zC,IAC1C54C,IACT,EACAgwI,EAAa5uI,UAAUgvI,eAAiB,SAAwBtrI,EAAM8zC,GACpE,IAAIzG,EAAM4+F,EAAQvsI,EAAUvC,EAAGuwI,EAG/B,GAFA5B,EAAch4F,QAEC,KADfm4F,EAAS/wI,KAAKwwI,SAEZ,OAAOxwI,KAET,QAAa,KADbmyC,EAAO4+F,EAAOjsI,IAEZ,OAAO9E,KACT,GAAImyC,IAASyG,GAAYzG,EAAKyG,WAAaA,EACb,MAAtB54C,KAAKywI,aACTzwI,KAAKwwI,QAA0BttI,OAAOoI,OAAO,cAEtCylI,EAAOjsI,GACVisI,EAAOX,gBACTpwI,KAAKixI,KAAK,iBAAkBnsI,EAAMqtC,EAAKyG,UAAYA,SAElD,GAAoB,oBAATzG,EAAqB,CAErC,IADA3tC,GAAY,EACPvC,EAAIkwC,EAAK9xC,OAAS,EAAG4B,GAAK,EAAGA,IAChC,GAAIkwC,EAAKlwC,KAAO22C,GAAYzG,EAAKlwC,GAAG22C,WAAaA,EAAU,CACzD45F,EAAmBrgG,EAAKlwC,GAAG22C,SAC3Bp0C,EAAWvC,EACX,KACF,CAEF,GAAIuC,EAAW,EACb,OAAOxE,KACQ,IAAbwE,EACF2tC,EAAKxnB,QAkGX,SAAmBwnB,EAAMvuC,GACvB,KAAOA,EAAQ,EAAIuuC,EAAK9xC,OAAQuD,IAC9BuuC,EAAKvuC,GAASuuC,EAAKvuC,EAAQ,GAC7BuuC,EAAKipB,KACP,CApGMq3E,CAAUtgG,EAAM3tC,GAEE,IAAhB2tC,EAAK9xC,SACP0wI,EAAOjsI,GAAQqtC,EAAK,SACQ,IAA1B4+F,EAAOX,gBACTpwI,KAAKixI,KAAK,iBAAkBnsI,EAAM0tI,GAAoB55F,EAC1D,CACA,OAAO54C,IACT,EACAgwI,EAAa5uI,UAAU6+C,IAAM+vF,EAAa5uI,UAAUgvI,eACpDJ,EAAa5uI,UAAUsxI,mBAAqB,SAA4B5tI,GACtE,IAAI2zC,EAAWs4F,EAAQ9uI,EAEvB,QAAe,KADf8uI,EAAS/wI,KAAKwwI,SAEZ,OAAOxwI,KACT,QAA8B,IAA1B+wI,EAAOX,eAUT,OATyB,IAArBpjI,UAAU3M,QACZL,KAAKwwI,QAA0BttI,OAAOoI,OAAO,MAC7CtL,KAAKywI,aAAe,QACM,IAAjBM,EAAOjsI,KACY,MAAtB9E,KAAKywI,aACTzwI,KAAKwwI,QAA0BttI,OAAOoI,OAAO,aAEtCylI,EAAOjsI,IAEX9E,KAET,GAAyB,IAArBgN,UAAU3M,OAAc,CAC1B,IACIa,EADAgmB,EAAOhkB,OAAOgkB,KAAK6pH,GAEvB,IAAK9uI,EAAI,EAAGA,EAAIilB,EAAK7mB,SAAU4B,EAEjB,oBADZf,EAAMgmB,EAAKjlB,KAEXjC,KAAK0yI,mBAAmBxxI,GAK1B,OAHAlB,KAAK0yI,mBAAmB,kBACxB1yI,KAAKwwI,QAA0BttI,OAAOoI,OAAO,MAC7CtL,KAAKywI,aAAe,EACbzwI,IACT,CAEA,GAAyB,oBADzBy4C,EAAYs4F,EAAOjsI,IAEjB9E,KAAKowI,eAAetrI,EAAM2zC,QACrB,QAAkB,IAAdA,EACT,IAAKx2C,EAAIw2C,EAAUp4C,OAAS,EAAG4B,GAAK,EAAGA,IACrCjC,KAAKowI,eAAetrI,EAAM2zC,EAAUx2C,IAGxC,OAAOjC,IACT,EAYAgwI,EAAa5uI,UAAUq3C,UAAY,SAAmB3zC,GACpD,OAAO0sI,EAAWxxI,KAAM8E,GAAM,EAChC,EACAkrI,EAAa5uI,UAAUuxI,aAAe,SAAsB7tI,GAC1D,OAAO0sI,EAAWxxI,KAAM8E,GAAM,EAChC,EACAkrI,EAAa6B,cAAgB,SAAS3B,EAASprI,GAC7C,MAAqC,oBAA1BorI,EAAQ2B,cACV3B,EAAQ2B,cAAc/sI,GAEtB+sI,EAAc/nI,KAAKomI,EAASprI,EAEvC,EACAkrI,EAAa5uI,UAAUywI,cAAgBA,EAavC7B,EAAa5uI,UAAUwxI,WAAa,WAClC,OAAO5yI,KAAKywI,aAAe,EAAIhB,EAAezvI,KAAKwwI,SAAW,EAChE,CA6DF,IAIEqC,GAAkB3kG,EAAW,CAC/B,oBAAoBt6B,EAASkuB,GAE3B,IAAIkuG,EAAeR,KAAiBQ,aAChC8C,EAAS,CACXnxG,KAAM,SAASoxG,GACb,GAAIA,EAAQC,eAAehD,EAAc,OAAO+C,EAChD,IAAIE,EAAK,IAAIjD,EACTkD,EAAa,IAAIlD,EAerB,OAdA+C,EAAQC,IAAMC,EACdF,EAAQI,YAAcD,EACtBH,EAAQp6F,GAAKs6F,EAAGt6F,GAAG5vB,KAAKkqH,GACxBF,EAAQ9C,KAAOgD,EAAGhD,KAAKlnH,KAAKkqH,GAC5BF,EAAQ3C,eAAiB6C,EAAG7C,eAAernH,KAAKkqH,GAChDF,EAAQL,mBAAqBO,EAAGP,mBAAmB3pH,KAAKkqH,GACxDF,EAAQK,YAAcF,EAAWv6F,GAAG5vB,KAAKmqH,GACzCH,EAAQM,cAAgBH,EAAWjD,KAAKlnH,KAAKmqH,GAC7CH,EAAQO,wBAA0BJ,EAAW9C,eAAernH,KAAKmqH,GACjEH,EAAQQ,4BAA8BL,EAAWR,mBAAmB3pH,KAAKmqH,GACzEH,EAAQ9B,KAAO,SAASvrH,EAAOi3B,GAC7Bs2F,EAAGhC,KAAKvrH,EAAOi3B,GACfu2F,EAAWjC,KAAKvrH,EAAOi3B,EACzB,EACOo2F,CACT,EAMAS,eAAgB,SAAST,EAASrtH,EAAOi3B,GACvC,IACIs2F,EAAKF,EAAQC,IACjB,GAAKC,EAAL,CACA,IAAI99G,EAAW89G,EAAGzC,QAAQ9qH,GAC1B,GAAKyP,EAAL,CAaA,IAAIlzB,EACJ,IAFAkzB,EAAWtrB,MAAMiI,QAAQqjB,GAAYA,EAAW,CAACA,GAE5ClzB,EAAI,EAAGA,EAAIkzB,EAAS90B,OAAS,EAAG4B,IACnCoL,EAAM8nB,EAASlzB,IAGjB,OADwBoL,EAAM8nB,EAASlzB,GAjBlB,CAFN,CAGf,SAASoL,EAAMijI,GACb,OAAIA,EAAQ13F,UACVq6F,EAAG7C,eAAe1qH,EAAO4qH,EAAQ13F,UAC5B03F,EAAQc,WAAb,GACEd,EAAQc,OAAQ,EACTd,EAAQ13F,SAASvrC,MAAM4lI,EAAI,CAACt2F,MAG9B2zF,EAAQjjI,MAAM4lI,EAAI,CAACt2F,GAE9B,CAQF,EACA82F,MAAO,SAASV,GAad,cAZOA,EAAQC,WACRD,EAAQp6F,UACRo6F,EAAQ9C,YACR8C,EAAQ3C,sBACR2C,EAAQL,0BACRK,EAAQ9B,YACR8B,EAAQC,WACRD,EAAQI,mBACRJ,EAAQK,mBACRL,EAAQM,qBACRN,EAAQO,+BACRP,EAAQQ,4BACRR,CACT,GAEFjxG,EAAOluB,QAAUk/H,CACnB,IAIEY,GAAgBxlG,EAAW,CAC7B,mBAAmBt6B,EAASkuB,GAE1B,IAAIotG,EAAMtN,KACNxmB,EAAajD,IAAsBiD,WAanCznC,EAAQ,CACZA,IAAY,SAASqzC,EAAI2sB,EAAUC,EAAUC,EAAUC,GACrD,IAAIC,EAAUC,EACdhtB,EAAGitB,UAAYjtB,EAAGitB,WAAa,CAAErwI,MAAO,EAAG+vE,MAAO,GAAI8yD,UAAU,GAChEuN,EAAahtB,EAAGitB,UAAUrwI,MACtBojH,EAAGktB,SACAltB,EAAGitB,UAAUE,aAAYntB,EAAGktB,UAAW,KAGzCltB,EAAGitB,UAAUxN,UAAYzf,EAAGitB,UAAUG,eACzCL,EAAW,CAAEM,KAAM,CAAEC,MAAO,GAAIrnI,KAAM,IAAMsnI,KAAM,CAAED,MAAO,GAAIrnI,KAAM,KACrE+5G,EAAGitB,UAAUtgE,MAAMjU,OAAOs0E,EAAYhtB,EAAGitB,UAAUtgE,MAAMtzE,OAAS2zI,EAAYD,GAC9E/sB,EAAGitB,UAAUrwI,OAAS,GAEtBmwI,EAAW/sB,EAAGitB,UAAUtgE,MAAMqgE,EAAa,GAE7ChtB,EAAGitB,UAAUG,eAAgB,EACzBL,IACFA,EAASM,KAAKC,MAAM14E,QAAQ+3E,GAC5BI,EAASM,KAAKpnI,KAAK2uD,QAAQg4E,GAC3BG,EAASQ,KAAKD,MAAM1zI,KAAKizI,GACzBE,EAASQ,KAAKtnI,KAAKrM,KAAKkzI,IAEtB9sB,EAAGitB,UAAUtgE,MAAMtzE,OAAS+6G,EAAWF,cACzC8L,EAAGitB,UAAUtgE,MAAMhpD,QACnBq8F,EAAGitB,UAAUrwI,SAEjB,EACA+vE,cAAsB,SAASqzC,GAC7BA,EAAGitB,UAAYjtB,EAAGitB,WAAa,CAAErwI,MAAO,EAAG+vE,MAAO,GAAI8yD,UAAU,GAChEzf,EAAGitB,UAAUxN,UAAW,EACxBzf,EAAGitB,UAAUG,eAAgB,CAC/B,EACAzgE,aAAqB,SAASqzC,GAC5BA,EAAGitB,UAAYjtB,EAAGitB,WAAa,CAAErwI,MAAO,EAAG+vE,MAAO,GAAI8yD,UAAU,GAChEzf,EAAGitB,UAAUxN,UAAW,EACxBzf,EAAGitB,UAAUG,eAAgB,CAC/B,EACAzgE,KAAa,SAAcqzC,GACzB,IAAI+sB,EAAU9xI,EACd,UAAqB,IAAjB+kH,EAAGitB,WAAwBxgG,MAAMuzE,EAAGitB,UAAUrwI,QAAUojH,EAAGitB,UAAUrwI,OAAS,GAAlF,CAMA,IAHAojH,EAAGitB,UAAUrwI,QACbmwI,EAAW/sB,EAAGitB,UAAUtgE,MAAMqzC,EAAGitB,UAAUrwI,OAC3CojH,EAAGitB,UAAUE,YAAa,EACrBlyI,EAAI,EAAGA,EAAI8xI,EAASM,KAAKC,MAAMj0I,OAAQ4B,IAC1C0xE,EAAM6gE,OAAOxtB,EAAI+sB,EAASM,KAAKC,MAAMryI,GAAI8xI,EAASM,KAAKpnI,KAAKhL,IAE9D+kH,EAAGitB,UAAUE,YAAa,EAC1BntB,EAAGktB,UAAW,CARd,CASF,EACAvgE,KAAa,SAAcqzC,GACzB,IAAI+sB,EAAU9xI,EACd,UAAqB,IAAjB+kH,EAAGitB,WAAwBxgG,MAAMuzE,EAAGitB,UAAUrwI,QAAUojH,EAAGitB,UAAUrwI,OAASojH,EAAGitB,UAAUtgE,MAAMtzE,QAArG,CAKA,IAFA0zI,EAAW/sB,EAAGitB,UAAUtgE,MAAMqzC,EAAGitB,UAAUrwI,OAC3CojH,EAAGitB,UAAUE,YAAa,EACrBlyI,EAAI,EAAGA,EAAI8xI,EAASQ,KAAKD,MAAMj0I,OAAQ4B,IAC1C0xE,EAAM6gE,OAAOxtB,EAAI+sB,EAASQ,KAAKD,MAAMryI,GAAI8xI,EAASQ,KAAKtnI,KAAKhL,IAE9D+kH,EAAGitB,UAAUE,YAAa,EAC1BntB,EAAGktB,UAAW,EACdltB,EAAGitB,UAAUrwI,OARb,CASF,EACA+vE,OAAe,SAASqzC,EAAIl7G,EAAMmB,GAChC+5G,EAAGktB,UAAW,EACdjnI,EAhFF,SAAsB+5G,EAAI/5G,GAGxB,IAFA,IACI1B,EADArG,EAAO,GAEFjD,EAAI,EAAGA,EAAIgL,EAAK5M,OAAQ4B,IAC/BsJ,EAAM0B,EAAKhL,GACKiD,EAAKjD,GAAjBsJ,IAAQy7G,EAAcz7G,EACF,kBAARA,EACJ1B,MAAMiI,QAAQvG,GAAO2jI,EAAIlkC,WAAW,GAAIz/F,GAAO2jI,EAAIjkC,cAAc,CAAC,EAAG1/F,GAChEA,EAEnB,OAAOrG,CACT,CAqESuvI,CAAaztB,EAAI/5G,GACxBnB,EAAKuB,MAAM,KAAMJ,EACnB,GACA60B,EAAOluB,QAAU+/D,CACnB,IAIE+gE,GAA2BxmG,EAAW,CACxC,gCAAgCt6B,EAASkuB,GAEvCA,EAAOluB,QAAU,CACf08G,iBAAkB,eAClB31E,MAAO,CACL4wD,QAAS,UAEXrgG,KAAM,CACJqgG,QAAS,UAEXwd,OAAQ,CACNxd,QAAS,OAEXopC,UAAW,CACTppC,QAAS,UAEX5uD,KAAM,CACJ4uD,QAAS,OAEXrhC,OAAQ,CACNqhC,QAAS,OAGf,IAIEqpC,GAAsB1mG,EAAW,CACnC,8BAA8Bt6B,GAE5B,IAAIo/G,EAAWxE,KACX0gB,EAAMtN,KACNiT,EAAiBzmC,IACjBygB,EAAuBlC,KACvBmoB,EAAkBJ,KAClBK,EAAsB9sB,KACtB7P,EAAmBD,IAAsBC,iBACzC48B,EAAY3sB,KACZpd,EAAgBikC,EAAIjkC,cACpB59E,EAAgB6hH,EAAI7hH,cACpB+sE,EAAsB80C,EAAI90C,oBAC1B8F,EAAiBgvC,EAAIhvC,eACrB+T,EAAgBi7B,EAAIj7B,cACpBghC,EAAiB,gBACjBC,EAAqB,mBAErBC,EAAa,cACbC,EAAmB,CAACH,EAAgBC,EAFf,oBAEuDC,GA+IhF,SAASE,EAAqBC,EAAWr3C,EAAOh8F,GAC9C,IAAKqzI,EAAW,OAAO,EACvB,GAAIA,EAAUhlB,iBACZ,GAAIiU,EAAQtmC,EAAMh8F,IAAKA,SAClB,GAAIA,EAAIg8F,EAAM59F,OAAQ,OAAO,EAEpC,KAAO4B,EAAIg8F,EAAM59F,OAAQ4B,IAAK,CAC5B,IAAIszI,EAAeD,EAAUr3C,EAAMh8F,IACnC,IAAIorB,EAAckoH,GACb,MACL,GAFiCD,EAAYC,EAEzCtzI,IAAMg8F,EAAM59F,OAAS,EAAG,MAC5B,GAAIi1I,EAAUhlB,kBAEZ,IAAKiU,EAAQtmC,IADbh8F,IACwB,OAAO,OAC1B,GAA0B,eAAtBqzI,EAAU/pC,QAA0B,CAE7C,IAAI3nG,EAAQq6F,IADZh8F,GAEA,IAAKsiI,EAAQ3gI,GAAQ,OAAO,EAC5B,IAAIkyG,EAAQw/B,EAAUx/B,MACtB,GAAIjsG,MAAMiI,QAAQgkG,GAAQ,CACxB,GAAIlyG,GAASkyG,EAAMz1G,OAAQ,OAAO,EAClC,GAA6B,IAAzBi1I,EAAUz/B,WAAkB,CAE9B,GADA5zG,IACIg8F,EAAM59F,SAAW4B,EAAG,OAAOqzI,EAC/B,IAAIE,EAASv3C,EAAMh8F,GACnB,IAAKsiI,EAAQiR,GAAS,OAAO,EAC7BF,EAAYx/B,EAAMlyG,GAAO4xI,EAC3B,MAAOF,EAAYx/B,EAAMlyG,EAC3B,MACE0xI,EAAYx/B,CAEhB,CACF,CACA,OAAOw/B,CACT,CACA,SAAS/Q,EAAQx5G,GACf,OAAOA,IAAQloB,KAAK+b,MAAMmM,IAAQA,GAAO,CAC3C,CAqDA,SAAS0qH,IACP,IACIv0I,EAAKy2G,EADLmY,EAAmB,CAAC,EAGxB,IAAK5uH,KADL+pG,EAAc6kB,EAAkBjB,GACpBmE,EAAS7D,iBAEnB,IADAxX,EAAUqb,EAAS7D,iBAAiBjuH,IACvB4uH,iBACb,GAAIjmH,MAAMiI,QAAQ6lG,EAAQz6D,MACxB,IAAK,IAAIj7C,EAAI,EAAGA,EAAI01G,EAAQz6D,KAAK78C,OAAQ4B,IACvCyzI,EAAqB5lB,EAAkBnY,EAASA,EAAQz6D,KAAKj7C,SAI/DyzI,EAAqB5lB,EAAkBnY,EADX,YAAjBA,EAAQz6D,KAAqBy6D,EAAQzsG,KAAOysG,EAAQz6D,MAInE,IAAKh8C,KAAO8xH,EAASzD,mBAAoB,CAEvC,IAAIkB,GADJ9Y,EAAUqb,EAASzD,mBAAmBruH,IACjBuvH,OACrB,GAAIA,IAAWA,EAAOoB,UAAYpB,EAAOvmD,QAAS,CAChD,IAAI2nD,EAAWpB,EAAOoB,SACtB,GAAIA,GAAYA,EAAS8jB,QAAU9jB,EAAS+jB,MAC1C,IAAK,IAAIC,KAAQhkB,EAAS8jB,aACjB7lB,EAAiB8lB,MAAMC,UAG3B/lB,EAAiB6lB,MAAMhrH,aACvBmlG,EAAiB6lB,MAAMG,SAChC,KAA4B,eAAjBn+B,EAAQzsG,KACjB+/F,EAAc6kB,EAAkBnY,EAAQmY,kBAC/BnY,EAAQmY,kBACjBimB,EAAYjmB,EAAkBnY,EAAQmY,iBAAkBnY,EAAQzsG,KAEpE,CACA,MAAO,CACL4kH,iBAAkBkmB,EAAiBlmB,GAEvC,CACA,SAASmmB,IACP,IAAItqC,EAAQ,CACVuqC,OAAQjrC,EAAc,CAAC,EAAG6pC,IAG5B,OADAkB,EAAiBrqC,GACVA,EAAMuqC,MACf,CACA,SAASF,EAAiBrqC,GAIxB,OAEF,SAA6BA,GAC3B,SAASwqC,EAAYC,GACnB,MAAO,CACL7qC,QAAS,SACTF,SAAU,OAEd,CACA,SAAS5kG,EAASy2C,EAAMk5F,EAAUC,GAC5BziI,EAAQ0iI,YAAYp5F,IACD,IAAjBA,EAAKwvD,SAAqC,eAAjBxvD,EAAKquD,UAChC8qC,EAAOD,EAAW,OAASD,EAAYC,IAEhC/oH,EAAc6vB,KACvBA,EAAK3jC,KAAO,SAEhB,CACA3F,EAAQynG,MAAM1P,EAAOllG,EACvB,CAtBE8vI,CAAoB5qC,GAuBtB,SAA+BA,GAC7B,SAASllG,EAASy2C,EAAMk5F,EAAUC,GAChC,GAAKn5F,EAAL,CACA,IAAIs5F,EAAWt5F,EAAKg4F,GACfsB,WACEt5F,EAAKg4F,GACZmB,EAAOD,GAAY,CAAEtgC,MAAO,CAAC,GAC7BugC,EAAOD,GAAUtgC,MAAM0gC,GAAYt5F,EACnCm5F,EAAOD,GAAU78H,KAAO,SANP,CAOnB,CACA3F,EAAQynG,MAAM1P,EAAOllG,EACvB,CAjCEgwI,CAAsB9qC,GAkCxB,SAAmBA,GACjB,SAAS+qC,EAAKx5F,GACZ,IAAK,IAAI/0C,KAAK+0C,EACZ,GAAI7vB,EAAc6vB,EAAK/0C,IACrBuuI,EAAKx5F,EAAK/0C,SACL,GAAI0B,MAAMiI,QAAQorC,EAAK/0C,IAC5B,IAAK,IAAIlG,EAAI,EAAGA,EAAIi7C,EAAK/0C,GAAG9H,OAAQ4B,IAClCy0I,EAAKx5F,EAAK/0C,GAAGlG,SAGXi7C,EAAK/0C,aAAc8hB,SACrBizB,EAAK/0C,GAAK+0C,EAAK/0C,GAAGoF,WAI1B,CACAmpI,EAAK/qC,EACP,CAlDEhlG,CAAUglG,GACHA,CACT,CAiDA,SAAS+pC,EAAqB5lB,EAAkBnY,EAASjZ,GACvD,IAAIi4C,EAAKz2C,EAAe4vB,EAAkBpxB,GACtCiN,EAAQV,EAAc,CAAC,EAAG0M,EAAQmY,kBACtCnkB,EAAMspC,IAAkB,EACxB0B,EAAG3tI,IAAI2iG,EACT,CACA,SAASoqC,EAAYa,EAAWC,EAAUn4C,GACxC,IAAIi4C,EAAKz2C,EAAe02C,EAAWl4C,GACnCi4C,EAAG3tI,IAAIiiG,EAAc0rC,EAAG5tI,OAAS,CAAC,EAAG8tI,GACvC,CApVAjjI,EAAQqhI,eAAiBA,EACzBrhI,EAAQshI,mBAAqBA,EAC7BthI,EAAQuhI,WAAaA,EACrBvhI,EAAQwhI,iBAAmBA,EAC3BxhI,EAAQ7K,IAAM,WACZ,IAAIggH,EAAS,CAAC,EAId,OAHAiK,EAASpD,SAASruH,SAAQ,SAASuD,GACjCikH,EAAOjkH,GA6KX,SAA4BA,GAC1B,IAAI6yG,EAASyX,EACbzX,EAAUqb,EAAS9D,QAAQpqH,GAAM6yG,QAASyX,EAAiBzX,EAAQyX,eACnE,IAAI7Y,EAAa,CACjBA,KAAkB,MACdugC,EAAqB7rC,EAAc,CAAC,EAAG4pC,GACvCkC,EAAuB9rC,EAAc,CAAC,EAAG0M,EAAQpB,YACrD3iG,EAAQynG,MAAM07B,GAAsB,SAAS75F,EAAMk5F,EAAUzqC,EAAOxC,EAAO6tC,GACzE92C,EAAe42C,EAAoBE,GAAgBhuI,SAAI,QAC1C,IAATk0C,GAAiBgjD,EAAe62C,EAAsBC,GAAgBhuI,SAAI,EAChF,IACAiiG,EAAcsL,EAAYugC,GACtB9jB,EAASN,QAAQ5tH,EAAM,qBAClByxG,EAAWhnG,QAEfyjH,EAASN,QAAQ5tH,EAAM,uBACnByxG,EAAW/H,kBACX+H,EAAW7H,aAEhBskB,EAASN,QAAQ5tH,EAAM,oBAClByxG,EAAWpH,iBACXoH,EAAW1I,YAEf8J,EAAQs/B,qBACJ1gC,EAAWrH,eAEpBjE,EAAcsL,EAAYwgC,GACtB3nB,EAAe7Y,YACjBtL,EAAcsL,EAAY6Y,EAAe7Y,YAE3CA,EAAWzxG,KAAOA,EAClB,IAAI+gE,EAAM,CACRopC,KAAM0I,EAAQ1I,MAAQ,CAAC,EACvBggB,WAAYtX,EAAQsX,YAAc,CAAC,EACnCioB,WAAYC,QAAQx/B,EAAQu/B,YAC5BpyI,OACAyxG,WAAYy/B,EAAiBz/B,IAE/B,GAAIoB,EAAQmY,iBAAkB,CAC5B,IAAIA,EAAmB,CAAC,EACxB7kB,EAAc6kB,EAAkBnY,EAAQmY,kBACxCjqD,EAAIiqD,iBAAmBkmB,EAAiBlmB,EAC1C,CAQA,OAPKnY,EAAQu/B,YACXtjI,EAAQynG,MAAMx1C,GAAK,SAAS3oB,GACtBtpC,EAAQ0iI,YAAYp5F,IAAS,SAAUA,UAClCA,EAAK5vC,IAEhB,IAEKu4D,CACT,CAhOmBuxE,CAAmBtyI,EACpC,IACO,CACLuyI,KAAM,CACJC,WAAYrjC,EACZsjC,SAAUnC,EAAiBxqI,OAAO,CAAC,cAAe,OAAQ,WAAY,iBACtEygG,SAAU,CACR0d,OAAQisB,EAAUjsB,OAClB7+C,OAAQ8qE,EAAU9qE,QAEpBstE,aAAc,CAAC,GAEjBzuB,SACA7+C,OAAQurE,IACRS,OAAQD,IACRwB,UAAWzB,EAAiBjB,GAC5BngI,OAAQohI,EAAiB59B,GAE7B,EACAxkG,EAAQynG,MAAQ,SAAS1P,EAAOllG,EAAUixI,EAAgBC,GACxD,IAAIxuC,EAAQuuC,GAAkB,EAC9BC,EAAaA,GAAc,GAC3Bz0I,OAAOgkB,KAAKykF,GAAOpqG,SAAQ,SAAS60I,GAClC,IAAIl5F,EAAOyuD,EAAMyqC,GACjB,IAA4C,IAAxChB,EAAiB1xI,QAAQ0yI,GAA7B,CACA,IAAIY,GAAkBW,EAAaA,EAAa,IAAM,IAAMvB,EAC5D3vI,EAASy2C,EAAMk5F,EAAUzqC,EAAOxC,EAAO6tC,GACnCpjI,EAAQ0iI,YAAYp5F,IACpB7vB,EAAc6vB,IAAsB,iBAAbk5F,GACzBxiI,EAAQynG,MAAMn+D,EAAMz2C,EAAU0iG,EAAQ,EAAG6tC,EALU,CAOvD,GACF,EACApjI,EAAQ0iI,YAAc,SAAS1kI,GAC7B,OAAOA,QAAuB,IAAhBA,EAAI25F,OACpB,EACA33F,EAAQgkI,oBAAsB,SAASv7B,GACrC,IAGIw7B,EAAeC,EAHfC,EAAkB,GAClBpqE,EAAQ,GACRqqE,EAAe,GAEnB,SAASvxI,EAASy2C,EAAMk5F,EAAUzqC,EAAOxC,GACvCx7B,EAAQA,EAAM1pE,MAAM,EAAGklG,GAAOv+F,OAAO,CAACwrI,IACtC4B,EAAeA,EAAa/zI,MAAM,EAAGklG,GAAOv+F,OAAO,CAACsyC,GAAQA,EAAKozE,mBAC5CpzE,IAA0B,eAAjBA,EAAKquD,UAA6C,IAAjBruD,EAAKwvD,WAA4C,aAArB/+B,EAAMw7B,EAAQ,IAAmC,aAAbitC,GAAwC,aAAbA,IAE1J6B,EAAeJ,EAAe,EAAG,GACnC,CACA,SAASI,EAAex3I,EAAWwB,EAAGi2I,GACpC,IAAIloH,EAAOvvB,EAAUktE,EAAM1rE,IACvBk2I,EAAiBD,EAAcvqE,EAAM1rE,GACzC,GAAIA,IAAM0rE,EAAMttE,OAAS,EACnB+5F,EAAoBpqE,IACtB+nH,EAAgBn3I,KAAKk3I,EAAeK,QAGtC,GAAIH,EAAa/1I,IACf,GAAI4H,MAAMiI,QAAQke,GAChB,IAAK,IAAI9nB,EAAI,EAAGA,EAAI8nB,EAAK3vB,OAAQ6H,IAC3BmlB,EAAc2C,EAAK9nB,KACrB+vI,EAAejoH,EAAK9nB,GAAIjG,EAAI,EAAGk2I,EAAiB,IAAMjwI,EAAI,WAIvDmlB,EAAc2C,IACvBioH,EAAejoH,EAAM/tB,EAAI,EAAGk2I,EAAiB,IAGnD,CAOA,OANAN,EAAgBx7B,EAChBy7B,EAAe,GACflkI,EAAQynG,MAAMw5B,EAAgBpuI,GAC1B41G,EAAM1E,SAAW0E,EAAM1E,QAAQpB,YACjC3iG,EAAQynG,MAAMgB,EAAM1E,QAAQpB,WAAY9vG,GAEnCsxI,CACT,EACAnkI,EAAQwkI,kBAAoB,SAAS/7B,EAAOpe,GAC1C,IAEIyZ,EAAa49B,EAFbtrI,EAAOi0F,EAAM,GAGb0Z,EAAU0E,EAAM1E,QAEpB,GADKA,IAASA,GAAWqb,EAAS9D,QAAQ7S,EAAMv3G,MAAQ+vI,EAAe/vI,KAAK2mG,OAAS,CAAC,GAAGkM,UACpFA,EAAS,OAAO,EAGrB,KADA29B,GADA59B,EAAcC,EAAQpB,aACKmB,EAAY1tG,IACvB,CACd,IAAI8nH,EAAgBna,EAAQyX,eACxB0C,GAAiBA,EAAcvb,aACjC++B,EAAYxjB,EAAcvb,WAAWvsG,GAEzC,CAEA,OADKsrI,IAAWA,EAAYT,EAAe7qI,IACpCqrI,EAAqBC,EAAWr3C,EAd/B,EAeV,EACArqF,EAAQykI,mBAAqB,SAASC,EAAYr6C,GAChD,IAAIq3C,EAGN,SAAwBgD,EAAYtuI,GAClC,IAAI/H,EAAGf,EAAKy2G,EAASpB,EACjBgiC,EAAkBD,EAAWE,iBACjC,GAAID,EAAiB,CACnB,IAAI1yE,EACJ,IAAK5jE,EAAI,EAAGA,EAAIs2I,EAAgBl4I,OAAQ4B,IAAK,CAE3C,IADA01G,EAAU4gC,EAAgBt2I,IACdw2I,WAAa9gC,EAAQ8gC,UAAUpxH,KAAKrd,GAAO,CACrD,GAAI2tG,EAAQ+gC,oBAAqB,OAAO/gC,EAAQ+gC,qBAC3C7yE,GAAO8xC,EAAQmY,mBAAkBjqD,EAAM8xC,EAAQmY,iBACtD,CACA,IAAI6oB,EAAgBhhC,EAAQihC,wBAC5B,GAAID,GAAiB3uI,KAAQ2uI,EAAe,OAAOA,EAAc3uI,EACnE,CACA,GAAI67D,EAAK,OAAOA,CAClB,CACA,IAAIqpD,EAAUopB,EAAWhmB,SACzB,GAAIpD,EACF,IAAKjtH,EAAI,EAAGA,EAAIitH,EAAQ7uH,OAAQ4B,IAE9B,IADAs0G,EAAa2Y,EAAQjtH,GAAG6tH,mBACN9lH,KAAQusG,EACxB,OAAOA,EAAWvsG,GAIxB,IAAK9I,KAAO8xH,EAASzD,mBAAoB,CAEvC,GAAqB,gBADrB5X,EAAUqb,EAASzD,mBAAmBruH,IAC1BgK,MAAuD,IAA9BlB,EAAKtG,QAAQ,aAChD,OAAOi0G,EAAQmY,iBAAiB9lH,GAC3B,IAAK2tG,EAAQ8Y,QAAUzmH,IAAS2tG,EAAQzsG,KAC7C,OAAOysG,EAAQmY,gBAEnB,CACA,OAAI9lH,KAAQ6kH,GAA6BA,EAAqB7kH,EAEhE,CAtCkB6uI,CAAeP,EAAYr6C,EAAM,IACjD,OAAOo3C,EAAqBC,EAAWr3C,EAAO,EAChD,CA4OF,IAIE66C,GAAwB5qG,EAAW,CACrC,gCAAgCt6B,GAE9B,IAAIs7H,EAAMtN,KACNmX,EAAiB3qC,IACjB4qC,EAAmB,mBACnBC,EAAgB,CAClB/tI,KAAM,CACJqgG,QAAS,SACTF,SAAU,SAgGd,SAAS6tC,EAAc3qG,GACrB,OAAOA,GAA0B,kBAAVA,CACzB,CACA,SAAS4qG,EAAgB5qG,GACvB,IAAI6qG,EAAW7qG,EAAMluC,OAAS,EAI9B,MAH+B,MAA3BkuC,EAAMjkB,OAAO8uH,IACflK,EAAI5yB,KAAK,oCAAsC/tE,GAE1CA,EAAMzqC,OAAO,EAAGyqC,EAAMluC,OAAS,GAAK,UAC7C,CAtGA44I,EAAcD,GAAoB,CAChCztC,QAAS,SACTF,SAAU,QAEZz3F,EAAQylI,eAAiB,SAAS9qG,EAAOo9D,GAIvC,OAHAA,EAAM2kB,iBAAmB/hF,EACzBo9D,EAAMzgG,KAAO+tI,EAAc/tI,KAC3BygG,EAAMqtC,GAAoBC,EAAcD,GACjCrtC,CACT,EACA/3F,EAAQ0lI,eAAiB,SAASC,GAChC,IACIlpB,EAAWmpB,EADXC,EAAc,CAAC,EAEnB,IAAKppB,KAAakpB,EAChBC,EAAgBD,EAAalpB,GACzBxmH,MAAMiI,QAAQ0nI,IAAkBA,EAAcn5I,SAChDo5I,EAAYppB,GAAa,GAe7B,MAAO,CACLqpB,SAbF,SAAkBniC,GAEhB,IAAIC,EAAW,CAAE1yG,KADjBurH,EAAY6e,EAAI94B,OAAOmB,EAAS,CAAC,EAAGwhC,EAAgB,QAClBpiC,UAAW,MAC7C,GAAI0Z,KAAaopB,EAAa,CAC5BD,EAAgBD,EAAalpB,GAC7B,IAAIspB,EAAQF,EAAYppB,GAAampB,EAAcn5I,OACnDo5I,EAAYppB,KACZ7Y,EAASb,UAAY6iC,EAAcG,EACrC,CAEA,OAAOniC,CACT,EAKF,EACA5jG,EAAQgmI,aAAe,SAASn5I,EAAW8tC,EAAOsrG,GAChD,IAAInjC,EAAWj2G,EAAUk2G,UACrB5W,EAAO2W,IAAaA,EAASnoE,IAAUsrG,GAAYnjC,EAASmjC,IAGhE,OAFK3K,EAAI7hH,cAAc0yE,KAAOA,EAAO,MAC3Bt/F,EAAU8tC,GAAS,CAAEooE,UAAW5W,EAE5C,EACAnsF,EAAQkmI,eAAiB,SAASr5I,EAAW8tC,EAAOwrG,GAClD,IAAIrjC,EAAWj2G,EAAUk2G,UACrBqjC,EAAmBtjC,GAAYA,EAASyiC,EAAgB5qG,IACxD0rG,EAAgBvjC,GAAYA,EAASnoE,GACpC1kC,MAAMiI,QAAQmoI,IAAmBA,EAAc55I,SAClD45I,EAAgB,IAElB,IAAIC,EAAY,CAAC,EAsCjB,MAAO,CACLC,QAtCF,SAAiBC,GACf,IAAIv0E,EAAM,CAAE36D,KAAMkvI,EAAOlvI,KAAMmvI,OAAQD,GACnCE,EAAmBz0E,EAAImzE,GAAoBoB,EAAOpB,GACtD,IAAKE,EAAcoB,GAEjB,OADAz0E,EAAI8wC,UAAYqjC,EACTn0E,EAET,IAAK,IAAI5jE,EAAI,EAAGA,EAAIg4I,EAAc55I,OAAQ4B,IAAK,CAC7C,IAAIs4I,EAAeN,EAAch4I,GACjC,GAAIs4I,EAAarvI,OAASovI,EAGxB,OAFAJ,EAAUI,GAAoB,EAC9Bz0E,EAAI8wC,UAAY4jC,EACT10E,CAEX,CAGA,OAFAA,EAAIk0E,GAAiBK,EAAOL,KAAkB,EAC9Cl0E,EAAI8wC,WAAY,EACT9wC,CACT,EAqBE20E,aApBF,WAEE,IADA,IAAI30E,EAAM,GACD5jE,EAAI,EAAGA,EAAIg4I,EAAc55I,OAAQ4B,IAAK,CAC7C,IAAIs4I,EAAeN,EAAch4I,GAC7Bk9C,EAAQo7F,EAAarvI,KACzB,GAAIguI,EAAc/5F,KAAW+6F,EAAU/6F,GAAQ,CAC7C,IAAIs7F,EAAO,CACT9jC,UAAW4jC,EACXrvI,KAAMi0C,EACNk7F,OAAQ,CAAEK,kBAAmBv7F,IAE/Bs7F,EAAKzB,GAAoBuB,EAAavB,GACtCnzE,EAAIjlE,KAAK65I,GACTP,EAAU/6F,GAAS,CACrB,CACF,CACA,OAAO0mB,CACT,EAKF,EAWAjyD,EAAQulI,gBAAkBA,EAC1BvlI,EAAQ+mI,YAAc,SAASC,EAAUC,EAAcC,GACrD,IAAIC,GAAY7L,EAAIhvC,eAAe06C,EAAUC,GAAc9xI,OAAS,IAAI1I,OACpEuD,EAAQk3I,EAAQE,OAChBV,EAAmB12I,GAASm3I,IAAaD,EAAQT,QAAU,CAAC,GAAGK,kBAC/DJ,IAAkB12I,EAAQm3I,GAC9B,IACIx8F,EADAk+D,EAAUo+B,EAAe,IAAMj3I,EAAQ,IAE3C,SAASq3I,IACP18F,EAAS,CAAC,EACN+7F,IACF/7F,EAAOk+D,GAAW,CAAC,EACnBl+D,EAAOk+D,GAASu8B,GAAoBsB,EAExC,CAKA,SAASY,EAAWh+F,EAAM95C,GACpBk3I,EACFpL,EAAIhvC,eAAe3hD,EAAOk+D,GAAUv/D,GAAMl0C,IAAI5F,GAE9Cm7C,EAAOk+D,EAAU,IAAMv/D,GAAQ95C,CAEnC,CACA,SAAS+3I,IACP,IAAIC,EAAY78F,EAEhB,OADA08F,IACOG,CACT,CAQA,OAvBAH,IAuBO,CACLI,WAvBF,SAAoBn+F,EAAM95C,GACxBm7C,EAAOrB,GAAQ95C,CACjB,EAsBE83I,aACAC,eACAG,YAXF,SAAqBp+F,EAAM95C,GACrB85C,GAAMg+F,EAAWh+F,EAAM95C,GAC3B,IAAIm4I,EAAgBJ,IACpB,IAAK,IAAIj6I,KAAOq6I,EACdrM,EAAIhvC,eAAe06C,EAAU15I,GAAK8H,IAAIuyI,EAAcr6I,GAExD,EAOF,CACF,IAIEs6I,GAAqBttG,EAAW,CAClC,mCAAmCt6B,EAASkuB,GAE1C,IAAIgyE,EAAeX,IAAgBC,QACnCtxE,EAAOluB,QAAU,CACf6nI,QAAS,CACPrzI,EAAG0rG,EAAa,IAAK,cACrBzrG,EAAGyrG,EAAa,IAAK,eAEvB2kC,UAAW3kC,EAAa,YAExB4nC,WAAY5nC,EAAa,SACzB6nC,WAAY7nC,EAAa,SAIzB8nC,cAAe,0BACfC,gBAAiB,oBAEjBC,gBAAiB,uBACjBC,aAAc,OACdC,gBAAiB,cAEjBC,QAAS,EAETC,QAAS,GAETC,YAAa,GAEbC,YAAa,GAEbC,WAAY,EAAE,EAAG,GACjBC,WAAY,EAAE,EAAG,GAGjBC,kBAAmB,CACjB,aACA,eACA,qBACA,eACA,cACA,iBACA,WACA,cACA,cACA,WACA,YACA,qBACA,gBAEFC,qBAAsB,CACpB,gBACA,YACA,eACA,mBAEFC,sBAAuB,CACrB,eAAgB,QAChB,eAAgB,SAElBC,gBAAiB,IAGrB,IAIEC,GAAmBzuG,EAAW,CAChC,kCAAkCt6B,GAEhC,IAAIo/G,EAAWxE,KACXphB,EAAYouC,KA8EhB,SAASoB,EAAQC,EAAM1qG,GACrB,GAAIA,GAAQA,EAAK9xC,OACf,IAAK,IAAI4B,EAAI,EAAGA,EAAIkwC,EAAK9xC,OAAQ4B,IAC/B,GAAIkwC,EAAKlwC,GAAG46I,GAAO,OAAO,EAG9B,OAAO,CACT,CApFAjpI,EAAQkpI,QAAU,SAAiB17G,GACjC,GAAkB,kBAAPA,GAAoBA,EAAG33B,MAAM2jG,EAAUwuC,eAAlD,CACA,IAAImB,EAAQ37G,EAAG92B,MAAM,KAAK,GAAGxG,OAAO,GAEpC,MADc,MAAVi5I,IAAeA,EAAQ,IACpB37G,EAAG9W,OAAO,GAAK,OAASyyH,CAHyC,CAI1E,EACAnpI,EAAQopI,QAAU,SAAiBzuG,GACjC,GAAKA,EAAM9kC,MAAM2jG,EAAUyuC,iBAA3B,CACA,IAAIkB,EAAQxuG,EAAMzqC,OAAO,GAEzB,MADc,MAAVi5I,IAAeA,EAAQ,IACpBxuG,EAAMjkB,OAAO,GAAKyyH,CAH0B,CAIrD,EACAnpI,EAAQqpI,QAAU,SAAiB77G,EAAI87G,EAAUC,GAC/C,IAAIC,EAAa,aAAa/1H,KAAK+Z,GACnC,GAAkB,kBAAPA,GAAoBA,EAAG33B,MAAM2jG,EAAUwuC,kBAC9CsB,GAAY97G,EAAG9W,OAAO,KAAO4yH,MAC7BE,GAAeD,GAAnB,CACA,IAAIJ,EAAQ37G,EAAG92B,MAAM,KAAK,GAAGxG,OAAO,GAAGT,QAAQ,MAAO,IAEtD,MADc,MAAV05I,IAAeA,EAAQ,IACpB37G,EAAG9W,OAAO,GAAKyyH,GAASK,GAAcD,EAAW,UAAY,GAHjC,CAIrC,EACAvpI,EAAQu+B,KAAO,SAAS60E,EAAIk2B,EAAUG,GACpC,IAAI/E,EAAatxB,EAAGonB,YACpB,IAAKkK,EAAY,MAAO,GACxB,IAEIr2I,EAFAq7I,EAAS1pI,EAAQ2pI,QAAQv2B,EAAIk2B,GAC7Br3E,EAAM,IAAIh8D,MAAMyzI,EAAOj9I,QAE3B,IAAK4B,EAAI,EAAGA,EAAIq7I,EAAOj9I,OAAQ4B,IAAK,CAClC,IAAIg9H,EAAMqe,EAAOr7I,GACjB4jE,EAAI5jE,GAAKq2I,EAAWrZ,EAAI30G,OAAO,GAAK,OAAS20G,EAAIn7H,OAAO,GAC1D,CACA,IAAKu5I,EAAQ,CACX,IAAIG,EAAalF,EAAWmF,UAAUC,MAAQ,GAC9C,IAAKz7I,EAAI,EAAGA,EAAIu7I,EAAWn9I,OAAQ4B,IAAK,CACtC,IAAI07I,EAAQrF,EAAWkF,EAAWv7I,IAC9Bi7I,EAAUr3E,EAAIjlE,KAAK+8I,EAAMT,EAAW,SACnCr3E,EAAIjlE,KAAK+8I,EAAMhI,MAAOgI,EAAM/H,MAAO+H,EAAMC,MAChD,CACF,CACA,OAAO/3E,CACT,EACAjyD,EAAQ2pI,QAAU,SAASv2B,EAAIk2B,GAC7B,IAAI5E,EAAatxB,EAAGonB,YACpB,IAAKkK,EAAY,MAAO,GACxB,IAAIuF,EAAevF,EAAWmF,UAC9B,OAAIP,EAAiBW,EAAaX,EAAW,QACtCW,EAAalI,MAAM/qI,OAAOizI,EAAajI,MAChD,EACAhiI,EAAQkqI,UAAY,SAAS92B,EAAI5lF,EAAIt8B,GACnC,IAAIwzI,EAAatxB,EAAGonB,YAIpB,OAHAhtG,OAAY,IAAPA,GAA+B,kBAAPA,EAAkBA,EAAKA,EAAG/9B,QAAQ,UAAW,IAC7D,MAATyB,EAAcs8B,EAAKA,EAAG/9B,QAAQ,UAAW,IAC3B,MAATyB,IAAcs8B,EAAKA,EAAG/9B,QAAQ,UAAW,KAC3Ci1I,EAAW1kI,EAAQkpI,QAAQ17G,GACpC,EACAxtB,EAAQmqI,aAAe,SAAS/2B,EAAIg3B,EAAWl5I,GAC7C,IAAIwzI,EAAatxB,EAAGonB,YAChBxxE,EAAK,KACT,GAAIo2D,EAASN,QAAQsrB,EAAW,QAAS,CACvC,IAAIL,EAAQK,EAAUL,MACK,UAAvBA,EAAM75I,OAAO,EAAG,KAClB84D,EAAK07E,EAAWqF,GAAO74I,EAAO,QAElC,MACE83D,EAAKhpD,EAAQkqI,UAAU92B,EAAIg3B,EAAUl5I,EAAO,SAAWA,GAEzD,OAAO83D,CACT,EACAhpD,EAAQqqI,OAAS,SAAS38D,EAAK48D,GAC7B,IAAIC,EAAU78D,EAAIh3D,OAAO,GACrB8zH,EAAUF,EAAI5zH,OAAO,GACzB,OAAI6zH,IAAYC,EAAgBD,EAAUC,EAAU,GAAK,IAChD98D,EAAIx9E,OAAO,IAAM,KAAOo6I,EAAIp6I,OAAO,IAAM,EACpD,EACA8P,EAAQyqI,OAAS,SAAS78E,GACxB,QAAO,SAASn6C,KAAKm6C,IAAMA,EAAGl3D,MAAM,KAAK,EAC3C,EASAsJ,EAAQ0qI,SAAW,SAAShG,EAAYuE,GACtC,OAAOD,EAAQC,EAAMvE,EAAWiG,mBAAqB3B,EAAQC,EAAMvE,EAAWkG,sBAChF,CACF,IAIEC,GAAyBvwG,EAAW,CACtC,0CAA0Ct6B,EAASkuB,GAejDA,EAAOluB,QAAU,CACf8qI,wBAdF,SAAiC13B,GAC/B,IAAI23B,EAAY33B,EAAGonB,YAAYwQ,WAC3BD,GACFA,EAAU7jG,UAAU,wBAAwB3D,QAEhD,EAUE0nG,aATF,SAAsB73B,GACpB,IAAI23B,EAAY33B,EAAGonB,YAAYwQ,WAC3BD,GACFA,EAAU7jG,UAAU,mBAAmB3D,SAEzC6vE,EAAGonB,YAAY0Q,YAAa,CAC9B,EAKF,IAIEC,GAA6B7wG,EAAW,CAC1C,0CAA0Ct6B,EAASkuB,GAEjDA,EAAOluB,QAAU,CACforI,YAAa,CACXzzC,QAAS,aACT7gF,OAAQ,CAAC,QAAS,WAClB+gF,KAAM,UACNJ,SAAU,QAEZ4zC,WAAY,CACV1zC,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL2hF,SAAU,QAGhB,IAIE6zC,GAAmBhxG,EAAW,CAChC,wBAAwBt6B,GAEtB,IAAIo/G,EAAWxE,KACOgtB,KAAqBM,gBAC3CloI,EAAQurI,mBAAqB,SAASC,EAAUt6I,EAAMu6I,GACpD,IAAIjwB,EAAiB4D,EAAS7D,iBAAiBrqH,GAC/C,IAAKsqH,EAAgB,MAAO,GAG5B,IAFA,IAAIlyE,EAAOkyE,EAAelyE,KACtBoiG,EAAkB,GACbr9I,EAAI,EAAGA,EAAIm9I,EAAS/+I,OAAQ4B,IAAK,CACxC,IAAI+lI,EAAYoX,EAASn9I,GACb+lI,EAAU,GAAG3rB,MACfn/D,KAAUmiG,GAAWC,EAAgB1+I,KAAKonI,EACtD,CACA,OAAOsX,CACT,EACA1rI,EAAQ2rI,kBAAoB,SAASC,EAAUC,EAAMC,GACnD,IAEIC,EAFAC,EAAiB,GACjBC,EAAoB,GASxB,KANEF,EADkB,kBAATF,EACIzsB,EAASP,UAAUgtB,GAAMK,KACb,oBAATL,EACHA,EAEAA,EAAKK,MAGlB,MAAO,CAACF,EAAgBJ,GAG1B,IADA,IAAIO,EAASL,EACJz9I,EAAI,EAAGA,EAAIu9I,EAASn/I,OAAQ4B,IAAK,CACxC,IAAIy+H,EAAK8e,EAASv9I,GACdo6G,EAAQqkB,EAAG,GAAGrkB,MACd2jC,OAA6B,IAAjB3jC,EAAM0jC,QACA,IAAlB1jC,EAAM9N,SAAsC,IAAlB8N,EAAM8kB,WAChC9kB,EAAM1E,SAAW0E,EAAM1E,QAAQmoC,OAASH,GAAgBK,GAAa3jC,EAAM0jC,SAAWA,EAGxFF,EAAkBj/I,KAAK8/H,GAFvBkf,EAAeh/I,KAAK8/H,GAIxB,CACA,MAAO,CAACkf,EAAgBC,EAC1B,EACAjsI,EAAQqsI,eAAiB,SAAwBtjG,EAAM73C,EAAMu6I,GAC3D,IAAKrsB,EAAS7D,iBAAiBrqH,GAAO,MAAO,GAI7C,IAHA,IAEIu3G,EAFAn/D,EAAO81E,EAAS7D,iBAAiBrqH,GAAMo4C,KACvCgjG,EAAc,GAETj+I,EAAI,EAAGA,EAAI06C,EAAKt8C,OAAQ4B,KAC/Bo6G,EAAQ1/D,EAAK16C,IACHi7C,KAAUmiG,GAAWa,EAAYt/I,KAAKy7G,GAElD,OAAO6jC,CACT,CACF,IAIEC,GAAkBjyG,EAAW,CAC/B,uBAAuBt6B,GAErB,IAAIo/G,EAAWxE,KACX0gB,EAAMtN,KAyIV,SAASwe,EAAuBp5B,EAAIq5B,EAASp1I,GAC3C,IAAIxK,EAAW2C,EAAOwO,EAClBk2C,GAAU,EACd,GAAqB,SAAjBu4F,EAAQv7I,KACVrE,EAAYumH,EAAGs5B,UAA6B,OAAnBD,EAAQt3B,OAAkBs3B,EAAQt3B,OAAO,GAAK,OAClE,IAAqB,WAAjBs3B,EAAQv7I,KAGjB,OAAO,EAFPrE,EAAYumH,EAAGonB,WAGjB,CASA,OARAhrI,EAAQ8rI,EAAIhvC,eAAez/F,EAAW4/I,EAAQp9H,MAAMla,OACpD6I,EAAM3G,EAAMo1I,EAAQv7I,MAAQmG,EAAMo1I,EAAQv7I,OAAS,CAAC,GAC5C4W,eAAe2kI,EAAQp9H,OACzBrR,EAAIyuI,EAAQp9H,QAAU7f,IACxB0kD,GAAU,GAGdl2C,EAAIyuI,EAAQp9H,MAAQ7f,EACb,CACL0kD,UACA1kD,QAEJ,CA0CA,SAASm9I,EAAsBv5B,EAAI/5G,GACjC,IAAIuzI,EAAW,GACX9hD,EAAOzxF,EAAK,GACZwzI,EAAO,CAAC,EACZ,GAAoB,kBAAT/hD,EACT+hD,EAAK/hD,GAAQzxF,EAAK,OACb,KAAIiiI,EAAI7hH,cAAcqxE,GAG3B,OAAO8hD,EAFPC,EAAO/hD,CAGT,CAIA,OAHA2c,EAAMolC,GAAM,SAASj9H,EAAM4yH,EAAUl5F,GACnCsjG,EAAS5/I,KAAK,CAAEkE,KAAM,SAAUme,KAAMO,EAAMpgB,MAAO85C,GACrD,GAAG,GAAI,GACAsjG,CACT,CACA,SAASE,EAAoB15B,EAAI/5G,GAC/B,IAAI87G,EAAQrqB,EAAM3zE,EAAK01H,EACnBD,EAAW,GAKf,GAJA9hD,EAAOzxF,EAAK,GACZ8d,EAAM9d,EAAK,GACX87G,EAAS97G,EAAK,GACdwzI,EAAO,CAAC,EACY,kBAAT/hD,EACT+hD,EAAK/hD,GAAQ3zE,MACR,KAAImkH,EAAI7hH,cAAcqxE,GAM3B,OAAO8hD,EALPC,EAAO/hD,OACQ,IAAXqqB,IACFA,EAASh+F,EAIb,CA0CA,YAzCe,IAAXg+F,IACFA,EAAS,MAEX1N,EAAMolC,GAAM,SAASj9H,EAAM4yH,EAAUuK,GACnC,IAAIC,EACA1jG,EACJ,GAAIrzC,MAAMiI,QAAQ6uI,GAAQ,CACxBzjG,EAAOyjG,EAAM18I,QACb,IAAI48I,EAAQh+I,KAAK8mB,IAAIuzB,EAAK78C,OAAQ2mH,EAAGrqE,KAAKt8C,QACtC0oH,IACF83B,EAAQh+I,KAAK8mB,IAAIk3H,EAAO93B,EAAO1oH,SAEjCugJ,EAAa,GACb,IAAK,IAAI14I,EAAI,EAAGA,EAAI24I,EAAO34I,IACzB04I,EAAW14I,GAAK6gH,EAASA,EAAO7gH,GAAKA,CAEzC,MACEg1C,EAAOyjG,EACPC,EAAa73B,EAASA,EAAO9kH,QAAU,KAEzC,GAAmB,OAAf28I,EACE/2I,MAAMiI,QAAQorC,KAChBA,EAAOA,EAAK,SAET,GAAIrzC,MAAMiI,QAAQ8uI,GAAa,CACpC,IAAK/2I,MAAMiI,QAAQorC,GAAO,CACxB,IAAI4jG,EAAM5jG,EACVA,EAAO,GACP,IAAK,IAAIj7C,EAAI,EAAGA,EAAI2+I,EAAWvgJ,OAAQ4B,IACrCi7C,EAAKj7C,GAAK6+I,CAEd,CACA5jG,EAAK78C,OAASwC,KAAK8mB,IAAIi3H,EAAWvgJ,OAAQ68C,EAAK78C,OACjD,CACAmgJ,EAAS5/I,KAAK,CACZkE,KAAM,OACNme,KAAMO,EACNulG,OAAQ63B,EACRx9I,MAAO85C,GAEX,GAAG,GAAI,GACAsjG,CACT,CACA,SAASnlC,EAAM1P,EAAOllG,EAAU+c,EAAMk0B,GACpCx0C,OAAOgkB,KAAKykF,GAAOpqG,SAAQ,SAAS60I,GAClC,IAAIl5F,EAAOyuD,EAAMyqC,GACjB,GAAoB,MAAhBA,EAAS,GAAb,CACA,IAAI2K,EAAWv9H,GAAQk0B,EAAQ,EAAI,IAAM,IAAM0+F,EAC3ClH,EAAI7hH,cAAc6vB,GACpBm+D,EAAMn+D,EAAMz2C,EAAUs6I,EAAUrpG,EAAQ,GAExCjxC,EAASs6I,EAAU3K,EAAUl5F,EALA,CAOjC,GACF,CA/RAtpC,EAAQotI,sBAAwB,SAASh6B,EAAIvmH,EAAWwgJ,EAAaC,GACnE,IAAI9wG,EAAM,CAAC,EACP+wG,GAAU,EACV1gJ,GAAaA,EAAU2gJ,mBACzBhxG,EAAM3vC,EAAU2gJ,kBAEbhxG,EAAInlC,QACPmlC,EAAInlC,MAAQ,CAAC,GAEfmlC,EAAIixG,YAAc,CAAC,EACnB,IAAIhB,EAAUzsI,EAAQ0tI,4BAA4Bt6B,EAAIi6B,EAAa7wG,EAAIixG,aACvE,GAAI5gJ,GAAaA,EAAU2gJ,iBAAkB,CAC3C,GAAKf,EAOH,OAAOjwG,EANP,GAAI3vC,EAAU2gJ,iBAAiBjqG,OAG7B,OAFA12C,EAAU2gJ,iBAAiBjqG,SAC3B12C,EAAU2gJ,iBAAmB,KACtBhxG,CAKb,CACA,GAAIiwG,EAAS,CACXD,EAAuBp5B,EAAIq5B,EAASjwG,EAAInlC,OACxCmlC,EAAImxG,MAAQ,WACV,GAAKJ,EAAL,CACA,IAAI5iG,EAAS6hG,EAAuBp5B,EAAIq5B,EAASjwG,EAAInlC,OAarD,OAZIszC,EAAOuJ,SAAWo5F,QACkB,IAAlC9wG,EAAIixG,YAAY9iG,EAAOn7C,SACzBgtC,EAAIoxG,UACJpiB,QAAQ3uF,QAAQywG,EAAS,CACvB99I,MAAOm7C,EAAOn7C,MACd0B,KAAMu7I,EAAQv7I,KACdme,KAAMo9H,EAAQp9H,KACd8lG,OAAQs3B,EAAQt3B,OAChBnlH,MAAOwsC,EAAIixG,YAAY9iG,EAAOn7C,UAC5B2sC,KAAKK,EAAI+vF,OAAQ/vF,EAAI+vF,SAGtB5hF,EAAOuJ,OAdM,CAetB,EASA,IARA,IAAI25F,EAAc,CAChB,kBACA,gBACA,iBACA,gBACA,wBACA,oBAEOx/I,EAAI,EAAGA,EAAIw/I,EAAYphJ,OAAQ4B,IACtC+kH,EAAGosB,YAAYqO,EAAYx/I,GAAImuC,EAAImxG,OAErCnxG,EAAI+G,OAAS,WACX,IAAK,IAAI2G,EAAK,EAAGA,EAAK2jG,EAAYphJ,OAAQy9C,IACxCkpE,EAAGssB,wBAAwBmO,EAAY3jG,GAAK1N,EAAImxG,MAEpD,CACF,MACErS,EAAI1qF,IAAI,4DACRpU,EAAIixG,YAAc,CAAC,EACnBjxG,EAAI+G,OAAS,WACb,EAWF,OATA/G,EAAIoxG,QAAU,WACZL,GAAU,CACZ,EACA/wG,EAAI+vF,OAAS,WACXghB,GAAU,CACZ,EACI1gJ,IACFA,EAAU2gJ,iBAAmBhxG,GAExBA,CACT,EACAx8B,EAAQ0tI,4BAA8B,SAASt6B,EAAIi6B,EAAaS,GAC9D,IAAIz/I,EAEA0/I,EADAx3H,EAAI82H,EAAY5gJ,OAEpB,IAAK4B,EAAI,EAAGA,EAAIkoB,EAAGloB,IAAK,CACtB,IAAIo+I,EACAuB,EAAUX,EAAYh/I,GACtBy0C,EAASkrG,EAAQlrG,OACjBzpC,EAAO20I,EAAQ30I,KAEnB,GADKpD,MAAMiI,QAAQ7E,KAAOA,EAAO,KAC5BypC,EACH,OAAO,EAET,IAAI8pG,EAAW5sI,EAAQiuI,0BAA0B76B,EAAItwE,EAAQzpC,GAC7D,GAAwB,IAApBuzI,EAASngJ,OACX,OAAO,EAET,GAAKshJ,EAKE,CAEL,IADAtB,EAAUG,EAAS,IACP17I,OAAS68I,EAAW78I,KAC9B,OAAO,EAET,GAAIu7I,EAAQp9H,OAAS0+H,EAAW1+H,KAC9B,OAAO,EAET,GAAIpZ,MAAMiI,QAAQ6vI,EAAW54B,QAAS,CACpC,IAAIl/G,MAAMiI,QAAQuuI,EAAQt3B,QAQxB,OAAO,EAPPs3B,EAAQt3B,OAAOz3F,OACf,IAAK,IAAIppB,EAAI,EAAGA,EAAIy5I,EAAW54B,OAAO1oH,OAAQ6H,IAC5C,GAAIy5I,EAAW54B,OAAO7gH,KAAOm4I,EAAQt3B,OAAO7gH,GAC1C,OAAO,CAMf,MACE,GAAIm4I,EAAQp9H,OAAS0+H,EAAW1+H,KAC9B,OAAO,CAGb,MA5BE0+H,EAAanB,EAAS,GAClB32I,MAAMiI,QAAQ6vI,EAAW54B,SAC3B44B,EAAW54B,OAAOz3F,OA4BtB,IAAIluB,GADJi9I,EAAUG,EAAS,IACCp9I,MACpB,GAAIyG,MAAMiI,QAAQ1O,GAAQ,CACxB,GAAqB,IAAjBA,EAAM/C,OAGR,OAAO,EAFP+C,EAAQA,EAAM,EAIlB,CACIs+I,IACFA,EAAgBt+I,GAASnB,EAE7B,CACA,OAAO0/I,CACT,EAwBA/tI,EAAQkuI,kBAAoB,SAAS96B,EAAItwE,EAAQzpC,GAC/C,GAAe,SAAXypC,EAAmB,OAAO0oF,QAAQ3uF,UACtC,IAAIsxG,EAAU/uB,EAASb,kBAAkBz7E,GACrCsrG,EAAU,CAACh7B,GACVn9G,MAAMiI,QAAQ7E,KAAOA,EAAO,IACjC,IAAK,IAAIhL,EAAI,EAAGA,EAAIgL,EAAK5M,OAAQ4B,IAC/B+/I,EAAQphJ,KAAKqM,EAAKhL,IAEpB,OAAO8/I,EAAQ10I,MAAM,KAAM20I,GAASC,OAAM,SAASzyG,GAEjD,OADA0/F,EAAI5yB,KAAK,sBAAwB5lE,EAAS,aAAclH,GACjD4vF,QAAQ/uF,OAAOb,EACxB,GACF,EACA57B,EAAQiuI,0BAA4B,SAAS76B,EAAItwE,EAAQzpC,GACvD,IAAIuzI,EAEJ,OADK32I,MAAMiI,QAAQ7E,KAAOA,EAAO,IACzBypC,GACN,IAAK,UACH8pG,EAAWE,EAAoB15B,EAAI/5G,GACnC,MACF,IAAK,WACHuzI,EAAWD,EAAsBv5B,EAAI/5G,GACrC,MACF,IAAK,SACHuzI,EAAWE,EAAoB15B,EAAI,CAAC/5G,EAAK,GAAIA,EAAK,KAAKrC,OAAO21I,EAAsBv5B,EAAI,CAAC/5G,EAAK,MAC9F,MACF,IAAK,UACHuzI,EAON,SAAgCx5B,EAAI/5G,GAClC,OAAIpD,MAAMiI,QAAQ7E,EAAK,KAA0B,IAAnBA,EAAK,GAAG5M,SAAqE,IAArD,CAAC,SAAU,UAAUqD,eAAeuJ,EAAK,GAAG,IACzF,CAAC,CAAEnI,KAAM,SAAUme,KAAM,gBAAiB7f,MAAO6J,EAAK,GAAG,GAAGM,aAE5D,EAEX,CAbiB20I,CAAuBl7B,EAAI/5G,GACtC,MACF,QACEuzI,EAAW,GAEf,OAAOA,CACT,CAgGF,IAIE2B,GAAgBj0G,EAAW,CAC7B,qBAAqBt6B,EAASkuB,GAE5B,IAAIkQ,EAAKD,IACLuiD,EAAmBtH,IAAyBsH,iBAC5CjH,EAAekH,IAAoBlH,aACnCyQ,EAAY7G,IACZmrD,EAAYxpD,IACZo6B,EAAWxE,KACX6zB,EAAazN,KACb0N,EAAWxJ,KACX5J,EAAMtN,KACN/tB,EAAStC,IACTla,EAASD,IAAoBC,OAC7BkrD,EAAU5F,KACVkC,EAAeJ,KAAyBI,aACxC2D,EAAezD,KACfnyB,EAAiB3E,KACjBw6B,EAAa/N,KACb6K,EAAoBL,KAAmBK,kBACvCh+C,EAAoB2tC,EAAI3tC,kBACxBr+D,EAAIgsG,EAAIhsG,EACRw/G,EAAQ5gH,EAAOluB,QAAU,CAAC,EAC9Bs7H,EAAInkC,WAAW23C,EAAO1vB,GACtB0vB,EAAMnsC,WAAanI,IACnBs0C,EAAMnsC,WAAWzxG,KAAK4lB,OAASg4H,EAAM9yB,SACrC8yB,EAAMr1C,UAAYlC,IAClBu3C,EAAM5yB,iBAAmBnD,KACzB,IAAIg2B,EAAgBxC,KACpBuC,EAAMZ,kBAAoBa,EAAcb,kBACxCY,EAAMb,0BAA4Bc,EAAcd,0BAChDa,EAAM1B,sBAAwB2B,EAAc3B,sBAC5C0B,EAAMpB,4BAA8BqB,EAAcrB,4BAClDoB,EAAME,WAAa,SAAS57B,GAE1B,OADAA,EAAKkoB,EAAInoB,YAAYC,GACd,IAAIoY,SAAQ,SAAS3uF,GAC1BnT,YAAW,WACJ0pF,EAAGonB,cACRpb,EAASJ,mBAAmB,cAAe,OAA3CI,CAAmDhM,GACnDgM,EAASJ,mBAAmB,SAAU,OAAtCI,CAA8ChM,GAC9CgM,EAASJ,mBAAmB,WAAY,OAAxCI,CAAgDhM,GAChDv2E,EAAQiyG,EAAMG,iBAAiB77B,IACjC,GAAG,IACL,GACF,EACA07B,EAAM9+D,OAAS,SAASojC,GAEtB,IAAI87B,EADJ97B,EAAKkoB,EAAInoB,YAAYC,GAErB,IAAIj0F,EAAI,IAAIqsG,SAAQ,SAAS3uF,EAASJ,GAC/B22E,IAAMkoB,EAAI7B,SAASrmB,IACtB32E,EAAO,IAAIr+B,MAAM,wDAEfg1G,EAAG+7B,cAAc1lH,aAAa2pF,EAAG+7B,cACjC/7B,EAAGg8B,iBAAgBF,EAAoB97B,EAAGg8B,gBAC9Ch8B,EAAGg8B,eAAiBvyG,EACpBu2E,EAAG+7B,aAAezlH,YAAW,WAC3B,IAAK0pF,EAAG98C,QAAU88C,EAAG98C,OAAOpzD,OAASkwG,EAAG98C,OAAOnzD,QAAUm4H,EAAI7B,SAASrmB,GACpEv2E,EAAQu2E,OADV,QAIOA,EAAG98C,OAAOpzD,aACVkwG,EAAG98C,OAAOnzD,OACjB,IAAIksI,EAAaj8B,EAAGl/D,QACpBk/D,EAAGktB,UAAW,EACdlhB,EAASlpH,KAAK,WAAYk9G,EAAI,CAAEwG,UAAU,IAAQz9E,MAAK,WACrDi3E,EAAGl/D,QAAUm7F,EACTj8B,EAAGg8B,iBAAmBvyG,WACjBu2E,EAAGg8B,eACVvyG,EAAQu2E,GAEZ,GAXA,CAYF,GAAG,IACL,IAEA,OADI87B,GAAmBA,EAAkB/vH,GAClCA,CACT,EACA2vH,EAAMG,iBAAmB,SAAS77B,GAChC,IAAKA,EAAGk8B,WAAa,IAAI7iJ,OACvB,OAAO++H,QAAQ9wF,IAAI04E,EAAGk8B,WAAWnzG,MAAK,WACpCi3E,EAAGk8B,UAAY,EACjB,GAEJ,EACAR,EAAMS,SAAW,SAASn8B,GACxB,GAAKA,EAAG4Z,SAAS7mB,UAAaiN,EAAG4Z,SAAS1mB,YAA1C,CACA,IAAIo+B,EAAatxB,EAAGonB,YAChBgV,EAAgBlU,EAAIzF,aAAa6O,EAAW+K,OAAQ,OAAQ,0BAA0B,SAASl4H,GACjGA,EAAEmB,MAAM,CACN,cAAe,iCACf,YAAa,OACbrV,KAAM48F,EAAO1C,YACb,iBAAkB,QACjB/zD,MAAK,WACN,IAAI2jB,EAAQ/uB,EAAGsI,OAAOt6C,MACtB+gE,EAAM38D,OAAO,SAASi5C,QAAQ,mBAAmB,GACjD0jB,EAAM38D,OAAO,SAASi5C,QAAQ,kBAAkB,GAChD0jB,EAAM38D,OAAO,SAASi5C,QAAQ,kBAAkB,EAClD,GACF,IACIpjC,EAAOmpI,EAAcz+I,OACrBgnG,EAAQ,CAAEtjG,EAAGiwI,EAAW+K,OAAOnmG,KAAK,UAAY,GAChDx7C,SAASgkF,KAAKpoC,SAASrjC,IAASA,EAAKqpI,yBAA2BhL,EAAWxhI,MAAQ,IACrF60F,EAAM,eAAiB,QACvBA,EAAMvjG,EAAI,IAEVujG,EAAM,eAAiB,MACvBA,EAAMvjG,EAAIkwI,EAAW+K,OAAOnmG,KAAK,SAAW,GAE9CkmG,EAAclmG,KAAKyuD,GACnB,IAAI43C,EAAWH,EAAc9oG,OAAO,oBAChCkpG,EAAYJ,EAAc9oG,OAAO,mBACjCmpG,EAAaL,EAAc9oG,OAAO,mBAClC0sE,EAAG4Z,SAAS1mB,aAAa8M,EAAG4Z,SAAS1mB,YAAY8M,GACjDA,EAAG4Z,SAAS7mB,UAGlB,SAA8BiN,EAAIvmH,GAChCA,EAAUwZ,KAAK,IACf,IAAI6uD,EAAOroE,EAAU2D,OAAO,KAAK84C,KAAK,CACpC,mBAAoB,IACpBwmG,MAAO,6BACP,cAAe,SACdzpI,KAAK+sG,EAAG4Z,SAAS5mB,SAAW,IAAMj3G,OAAOC,aAAa,MACzD,GAAIgkH,EAAG4Z,SAAS3mB,SACdnxC,EAAKnwB,GAAG,SAAS,WACf+pG,EAAMiB,gBAAgB38B,EACxB,QACK,CACL,IAAIxjG,EAAOoc,OAAO5b,SAAS4/H,SAASt5I,MAAM,KACtCu5I,EAAQjkH,OAAO5b,SAASvgB,OAC5BqlE,EAAK5rB,KAAK,CACR,mBAAoB,MACpB,mBAAoB,IAAM15B,EAAK,GAAGlZ,MAAM,KAAK,GAAK,IAAMkZ,EAAK,GAAKqgI,GAEtE,CACF,CAtB4BC,CAAqB98B,EAAIu8B,GACnDC,EAAUvpI,KAAKspI,EAAStpI,QAAUwpI,EAAWxpI,OAAS,MAAQ,GA9BD,CA+B/D,EAqBAyoI,EAAMiB,gBAAkB,SAAS38B,GAC/B,IAAI+8B,GAAWnkH,OAAOokH,WAAa,CAAC,GAAGC,UAAYj9B,EAAG4Z,SAASroB,gBAC/D,GAAKwrC,EAAL,CACA/8B,EAAGiqB,KAAK,uBACR,IAAIiT,EAAgBlyG,EAAGsI,OAAO0sE,GAAI5iH,OAAO,OAAO84C,KAAK,KAAM,cAAc5wB,MAAM,UAAW,QACtF63H,EAAaD,EAAc9/I,OAAO,QAAQ84C,KAAK,CACjDllC,OAAQ+rI,EAAU,YAClBrtG,OAAQ,OACRxwB,OAAQ,WAUV,OARsBi+H,EAAW//I,OAAO,SAAS84C,KAAK,CACpDp4C,KAAM,OACNoG,KAAM,SAEQvG,OAAOvB,MAAQs/I,EAAM0B,UAAUp9B,GAAI,EAAO,YAC1Dm9B,EAAWx/I,OAAO0/I,SAClBH,EAAc/sG,SACd6vE,EAAGiqB,KAAK,uBACD,CAhBa,CAiBtB,EACA,IAAIqT,EAAe,CACjB,OACA,YACA,SACA,cACA,UACA,WACA,OACA,OACA,UACA,YACA,WACA,YAEEC,EAAkB,CACpB,OACA,QACA,WACA,gBAqNF,SAASC,EAAax9B,EAAIy9B,GACxB,IAAIrhH,EAAS4jF,EAAG4Z,SAASx9F,OACpBA,IAAQA,EAAS,SACtB,IAAIshH,GAAa,EACbC,EAAY,CAAC,EACjB,SAASC,EAAcjyD,GAErB,IADA,IAAIkyD,GAAiB,EACZ/mG,EAAK,EAAGA,EAAK2mG,EAAWpkJ,OAAQy9C,IAAM,CAC7C,IAAIgnG,EAAYL,EAAW3mG,GACtB6mG,EAAUG,KACTnyD,EAAUmyD,GACZH,EAAUG,GAAanyD,EAAUmyD,GAC5BD,GAAiB,EAE5B,CACIA,IAAgBH,GAAa,EACnC,CACA,IAAK,IAAIziJ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAE1B,IADA,IAAIk5G,EAAU6L,EAAG4Z,SAASzlB,QACjBjzG,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI68I,GAAW5pC,EAAQ/3E,IAAW,CAAC,GAAG2C,OACtC,GAAIg/G,IACFH,EAAcG,GACVL,GAAY,MAElBvpC,EAAU6X,EAAS3B,cACrB,CACA,IAAIL,EAAa5tF,EAAO94B,MAAM,KAAK,GACnC,GAAIo6I,GAAc1zB,IAAe5tF,EAAQ,MACzCA,EAAS4tF,CACX,CAEA,OADK0zB,GAAYE,EAAc5xB,EAAS3B,eAAexqF,GAAGd,QACnD4+G,CACT,CAuLA,SAASK,EAAgBpoF,EAAI07E,GAC3B,IAAI2M,EAAS,CAAE7W,YAAakK,GACxB4M,EAA2B,MAArBtoF,EAAGuoF,IAAI76H,OAAO,GACpB86H,EAAWxoF,EAAGyoF,UAAUC,YACxBC,EAAgB,GAChBC,EAAwB,GACxBC,EAAW,GAKf,GAJIL,IACFK,EAAWL,EAASC,UAAUF,IAC9BI,EAAgBL,EAAMtoF,EAAGuoF,IAAMM,EAAWA,EAAW7oF,EAAGuoF,MAErDI,IAAkBjN,EAAWoN,OAAOH,GAAgB,CACvDA,EAAgB,GAEhB,IADA,IAAII,EAAa/oF,EAAGgpF,aACX19I,EAAI,EAAGA,EAAIy9I,EAAWtlJ,OAAQ6H,IAAK,CAC1C,IAAI29I,EAAcF,EAAWz9I,GACzBk5B,EAAK8jH,EAAMtoF,EAAGuoF,IAAMU,EAAcA,EAAcjpF,EAAGuoF,IAClDK,IAAuBA,EAAwBpkH,GACpD,IAAI0kH,EAAYvD,EAAQzE,UAAUmH,EAAQY,GAC1C,GAAIJ,GAAYK,EAAUC,aAAeN,EAAU,CACjDF,EAAgBnkH,EAChB,KACF,CACF,CACF,CACA,OAAOmkH,GAAiBC,CAC1B,CA4TA,SAASQ,EAAgB9oG,GACvB,MAAuB,kBAATA,GAAsD,OAAjCA,EAAKp5C,OAAOo5C,EAAK78C,OAAS,IAAeuqB,WAAWsyB,EACzF,CA2KA,SAAS+oG,EAAY3N,GACnB,IAAI5jH,EAAS4jH,EAAW5jH,OACxB,IAAK4jH,EAAW4N,MAAO,CACrB,IAAIC,EAAK7N,EAAW4N,MAAQ,CAC1B96H,EAAGvoB,KAAK+b,MAAM8V,EAAOtJ,GACrBiD,EAAGxrB,KAAK+b,MAAM8V,EAAOrG,GACrBE,EAAG1rB,KAAK+b,MAAM8V,EAAOnG,GACrB0E,EAAGpwB,KAAK+b,MAAM8V,EAAOzB,GACrBF,EAAGlwB,KAAK+b,MAAM8V,EAAOwgD,MAEvBixE,EAAGvjH,EAAI//B,KAAK+b,MAAM05H,EAAWxhI,OAASqvI,EAAG/6H,EAAI+6H,EAAG93H,EAChD83H,EAAGrzI,EAAIjQ,KAAK+b,MAAM05H,EAAWvhI,QAAUovI,EAAG53H,EAAI43H,EAAGlzH,CACnD,CACKqlH,EAAW8N,cAAa9N,EAAW8N,YAAc,CAAC,GAClD9N,EAAW+N,iBAAgB/N,EAAW+N,eAAiB,CAAC,GACxD/N,EAAWgO,kBAAiBhO,EAAWgO,gBAAkB,CAAC,EACjE,CA97BA5D,EAAM5xB,eAAiB,SAAS9J,EAAIvkB,GAClC,IAAI8jD,EAAiB9jD,GAAQA,EAAK8jD,eAC9BC,EAAgBx/B,EAAGonB,aAAe,CAAC,EACvC,GAAIoY,EAAcC,qBACTD,EAAcC,kBADvB,CAIA,IAOIxkJ,EAPAykJ,EAAgB1/B,EAAGonB,YAAc,CAAC,EAClCuY,EAAY3/B,EAAG98C,QAAU,CAAC,EAC1B08E,EAAc5/B,EAAGs5B,WAAa,GAC9BuG,EAAc7/B,EAAGs5B,UAAY,GAC7BwG,EAAU9/B,EAAGrqE,MAAQ,GACrBoqG,EAAc//B,EAAGw4B,UAAY,GAC7BxwG,EAAUg4E,EAAG4Z,UAAY,CAAC,EAEzB5Z,EAAGggC,iBAAiBtE,EAAMuE,qBAAqBjgC,GACpD0/B,EAAcQ,WAAa,CACzBpH,KAAM58G,EAAE8jF,EAAI,6BACZkG,SAAUhqF,EAAE8jF,EAAI,gCAChB5+G,EAAG86B,EAAE8jF,EAAI,+BACT3+G,EAAG66B,EAAE8jF,EAAI,+BACTmgC,SAAUjkH,EAAE8jF,EAAI,mCAChBogC,WAAYlkH,EAAE8jF,EAAI,aAEpB0/B,EAAcW,WAAankH,EAAE8jF,EAAI,SACjC,IAAI29B,EAAYH,EAAax9B,EAAIs9B,GAEjC,GADAoC,EAAcY,mBAAqBt4G,EAAQ+rE,kBACvCyrC,EAAce,uBAAwB,CACxC,IAAIC,EAAWhB,EAAc1vI,MACzB2wI,EAAYjB,EAAczvI,OAC9B2rI,EAAMgF,2BAA2Bf,EAAWD,EAAe/B,GACtDgC,EAAU7vI,QAAO4vI,EAAc5vI,MAAQ0wI,GACvCb,EAAU5vI,SAAQ2vI,EAAc3vI,OAAS0wI,GAC9C/E,EAAMiF,gBAAgBjB,EACxB,KAAO,CACLhE,EAAMgF,2BAA2Bf,EAAWD,EAAe/B,GAC3D,IAAIiD,GAAwBjB,EAAU7vI,QAAU6vI,EAAU5vI,OACtDy2G,EAAWk5B,EAAcl5B,SACzBnU,EAAcrqE,EAAQqqE,YACJuuC,IAAyBp6B,GAAYnU,GACtCqpC,EAAMmF,aAAa7gC,EAAI2/B,EAAWD,GAC9CkB,GAAsBlF,EAAMiF,gBAAgBjB,IAChDl5B,GAAYo6B,IACfjB,EAAU7vI,MAAQ4vI,EAAc5vI,MAChC6vI,EAAU5vI,OAAS2vI,EAAc3vI,OAErC,CACA2vI,EAAcoB,UAsMhB,SAAsBnD,EAAW32B,GAG/B,OAFA22B,EAAUhvD,QAAUq4B,EAAW1jG,OAAO,GACtCq6H,EAAUpvD,UAAYy4B,EAAW1jG,OAAO,GACjC,CACLi4G,aAAc,SAASJ,GACrB,IACEA,EAAY90C,EAAas3D,GAAW5+G,OAClCmpG,EAAIhN,aAAaC,GAErB,CAAE,MAAO5/H,GAEP,OADA2sI,EAAI7M,cAAcF,GACX+M,EAAI5M,QACb,CACA,OAAOH,CACT,EACAruC,WAAYQ,EAAiBqwD,GAAWtxD,UAE5C,CAvN4B00D,CAAapD,EAAW+B,EAAc14B,YAChE04B,EAAcsB,aAAexD,EAAax9B,EAAIu9B,GAC9CmC,EAAca,wBAAyB,EACvCb,EAAc7uC,YAAcivC,EAAQzmJ,OACpCqmJ,EAAcp0B,SAAW,GACzBo0B,EAAcuB,gBAAkB,GAChCvB,EAAclO,iBAAmB,GACjC,IAAI3mB,EAAW60B,EAAcjJ,UAoI/B,WACE,IAEIx7I,EAAGiG,EAFHkqH,EAA0BY,EAASZ,wBACnCvsD,EAAM,CAAC,EAEX,IAAKusD,EAAyB,CAC5BA,EAA0B,GAC1B,IAAIjD,EAAmB6D,EAAS7D,iBAChC,IAAK,IAAI+4B,KAAe/4B,EAAkB,CACxC,IACI6C,EADgB7C,EAAiB+4B,GACLhrG,KAChC,GAAI80E,IACFI,EAAwBxxH,KAAKsnJ,GACzBr+I,MAAMiI,QAAQkgH,IAChB,IAAK9pH,EAAI,EAAGA,EAAI8pH,EAAY3xH,OAAQ6H,IAClCgnI,EAAIvgB,WAAWyD,EAAyBJ,EAAY9pH,GAI5D,CACF,CACA,IAAKjG,EAAI,EAAGA,EAAImwH,EAAwB/xH,OAAQ4B,IAC9C4jE,EAAIusD,EAAwBnwH,IAAM,GAEpC,OAAO4jE,CACT,CA5J2CsiF,GACrCC,EAAY1B,EAAc2B,WAAa,CAAEjgJ,EAAG,CAAC,EAAGC,EAAG,CAAC,GACpDigJ,EAAgB5B,EAAc6B,eAAiB,CAAC,EACpD7B,EAAc8B,eAAiB,CAAC,EAChC9B,EAAc+B,kBAAoB,CAAC,EACnC/B,EAAcgC,cAAgB,CAAC,EAC/BhC,EAAciC,eAAiB,CAAC,EAChCjC,EAAckC,WAAa,CAAC,EAC5BlC,EAAcmC,oBAAsB,CAAC,EACrCnC,EAAcoC,WA4FhB,SAAsBlC,EAAaE,GACjC,IAEI7kJ,EAAG8mJ,EAFHh2I,EAAM+zI,EAAQzmJ,OACd2oJ,EAAe,GAEnB,IAAK/mJ,EAAI,EAAGA,EAAI2kJ,EAAYvmJ,OAAQ4B,IAAK,CACvC,IAAIgnJ,EAAgBrC,EAAY3kJ,GAAGinJ,WAC/BD,IAAkBF,GAAeC,EAAapoJ,KAAKqoJ,GACvDF,EAAgBE,CAClB,CACA,IAAIE,EAASH,EAAa3oJ,OACtBwlE,EAAM,IAAIh8D,MAAMkJ,GAChBq2I,EAAW,CAAC,EAChB,SAASC,EAAOv6C,EAAKhxD,GACnB+nB,EAAI/nB,GAAMgxD,EACVs6C,EAASt6C,GAAO,CAClB,CACA,SAASw6C,EAAOx6C,EAAKhxD,GACnB,GAAIgxD,GAAsB,kBAARA,IAAqBs6C,EAASt6C,GAE9C,OADAu6C,EAAOv6C,EAAKhxD,IACL,CAEX,CACA,IAAK77C,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAK,CACxB,IAAIsnJ,EAASzC,EAAQ7kJ,GAAG6sG,IACF,kBAAXy6C,IAAqBA,EAASxmJ,OAAOwmJ,IAC5CD,EAAOC,EAAQtnJ,IACfA,EAAIknJ,GAAUG,EAAON,EAAa/mJ,GAAG6sG,IAAK7sG,IAC9ConJ,EAAOna,EAAI1J,QAAQ4jB,GAAWnnJ,EAChC,CACA,OAAO4jE,CACT,CA1H6B2jF,CAAa5C,EAAaE,GACrDpE,EAAM+G,mBAAmB3C,EAASD,EAAaF,EAAWD,GAC1D,IAAIgD,EAAUxmJ,OAAOgkB,KAAKkhI,EAAUhgJ,GAChCuhJ,EAAUzmJ,OAAOgkB,KAAKkhI,EAAU//I,GACpC,GAAIqhJ,EAAQrpJ,OAAS,GAAKspJ,EAAQtpJ,OAAS,EAAG,CAE5C,IADA2yH,EAASJ,mBAAmB,OAAQ,eAApCI,CAAoD2zB,EAAWD,GAC1DzkJ,EAAI,EAAGA,EAAIynJ,EAAQrpJ,OAAQ4B,IAC9BitI,EAAIvgB,WAAWkD,EAAS8jB,MAAO+T,EAAQznJ,IAEzC,IAAKA,EAAI,EAAGA,EAAI0nJ,EAAQtpJ,OAAQ4B,IAC9BitI,EAAIvgB,WAAWkD,EAAS+jB,MAAO+T,EAAQ1nJ,IAEzC,IAAK,IAAIkG,KAAKmgJ,EACZpZ,EAAIvgB,WAAWkD,EAAS+3B,UAAWzhJ,EAEvC,CAEA,GADAu+I,EAAcmD,KAAOnH,EAAMoH,aAAa/gI,KAAK29H,GACzCE,EAAYvmJ,SAAWwmJ,EAAYxmJ,OACrC,IAAK4B,EAAI,EAAGA,EAAI4kJ,EAAYxmJ,OAAQ4B,IAClCs/F,EAAkBslD,EAAY5kJ,GAAI2kJ,EAAY3kJ,IAGlDygJ,EAAMqH,2BAA2BpD,EAAWD,EAAeG,EAAa7/B,EAAGggC,iBAC3E,IAAI10B,EAAWo0B,EAAcuB,gBACzB+B,EAA0B,GAC9B,IAAK/nJ,EAAI,EAAGA,EAAIqwH,EAASjyH,OAAQ4B,IAAK,CACpC,IAAIgoJ,EAAQ33B,EAASrwH,GAAGioJ,mBACpBD,GAAO/a,EAAIvgB,WAAWq7B,EAAyBC,EACrD,CACA,IAAKhoJ,EAAI,EAAGA,EAAI+nJ,EAAwB3pJ,OAAQ4B,IAC9C+nJ,EAAwB/nJ,GAAG4kJ,EAAaH,GAE1CA,EAAcyD,oBAAgE,IAA1CzD,EAAclO,iBAAiBn4I,QAA2D,UAA3CqmJ,EAAclO,iBAAiB,GAAGttI,MAAoBw+I,EAAQrpJ,OAAS,IAAMspJ,EAAQtpJ,OAAS,IAAsC,IAAhCqmJ,EAAc0D,OAAO/pJ,QAAgD,IAAhCqmJ,EAAc2D,OAAOhqJ,OACjPqiJ,EAAM4H,aAAazD,EAAaH,EAAeE,EAAaJ,GAC5D9D,EAAM6H,UAAU1D,EAAaH,EAAeE,EAAaJ,GACzD,IAEIgE,KAFkBhE,EAAcqD,OAAQrD,EAAcqD,KAAK,cAG3DY,KAFkB/D,EAAcmD,OAAQnD,EAAcmD,KAAK,cAG3DW,IAAeC,EACjBjE,EAAckE,SAASvzG,SACdszG,IAAeD,IACxB9D,EAAciE,sBAAuB,GAEnCnE,EAAc5H,aAAe53B,EAAG4jC,WAClC/L,EAAa,CAEXzQ,YAAaoY,IAyJnB,SAA6BK,EAAaH,GACxC,IAAImE,EACAC,EAAY,GACZpE,EAAcz3C,OAChB47C,EAAQnE,EAAcmE,MAAQ,CAC5B57C,KAAMy3C,EAAcz3C,KACpB/kC,OAAQ,CAAE+kC,KAAMy3C,EAAcz3C,QAGlC,IAAK,IAAIhtG,EAAI,EAAGA,EAAI4kJ,EAAYxmJ,OAAQ4B,IAAK,CAC3C,IAAIo6G,EAAQwqC,EAAY5kJ,GACpBo6G,EAAMpN,KACR67C,EAAUzuC,EAAMz4G,OAASy4G,EAAMwuC,MAAQ,CAAE57C,KAAMoN,EAAMpN,MAC5Cy3C,EAAcz3C,OACvBoN,EAAMwuC,MAAQ,CAAE57C,KAAMy3C,EAAcz3C,OAElCy3C,EAAcz3C,OAChBoN,EAAMwuC,MAAM3gF,OAAS,CAAE+kC,KAAMy3C,EAAcz3C,MAE/C,CACI67C,EAAUzqJ,SACPwqJ,IACHA,EAAQnE,EAAcmE,MAAQ,CAAC,GAEjCA,EAAMluG,KAAOmuG,EAEjB,CAhLEC,CAAoBlE,EAAaH,GACjCnlD,EAAkBmlD,EAAeF,GACjCxzB,EAASJ,mBAAmB,aAAc,qBAA1CI,CAAgE6zB,EAAaH,GACxEA,EAAcsE,UAAStE,EAAcsE,QAAU,CAAC,GAChDtE,EAAcuE,eAAcvE,EAAcuE,aAAe,CAAC,GAC/D,IAEIn8C,EAFAo8C,EAAcxE,EAAcuE,aAC5BE,EAAO,CAAC,EAEZ,IAAKr8C,KAAOo8C,EAAaC,EAAKr8C,GAAO,MACrC,IAAK7sG,EAAI,EAAGA,EAAI4kJ,EAAYxmJ,OAAQ4B,IAE7BkpJ,EADLr8C,EAAM+3C,EAAY5kJ,GAAGinJ,WAAWp6C,OAChBo8C,EAAYp8C,GAAO,CAAC,GACpCq8C,EAAKr8C,GAAO,MAEd,IAAKA,KAAOq8C,EACQ,QAAdA,EAAKr8C,WAAuBo8C,EAAYp8C,GAE9Cm3C,EAAYS,GACZ1zB,EAASJ,mBAAmB,cAAe,WAA3CI,CAAuD0zB,GAClDH,GAAkBQ,EAAY1mJ,SAAWwmJ,EAAYxmJ,QACxDqiJ,EAAM0I,yBAAyBrE,EAAaF,EA/H9C,CAiIF,EACAnE,EAAM0I,yBAA2B,SAASrE,EAAaF,GACrD,IAAK,IAAI5kJ,EAAI,EAAGA,EAAI4kJ,EAAYxmJ,OAAQ4B,IAAK,CAC3C,IAAIy3I,EAAWmN,EAAY5kJ,GACvBopJ,GAAOtE,EAAY9kJ,IAAM,IAAI,GACjC,GAAIopJ,GAAOA,EAAIhvC,MAAO,CACpB,IAAIivC,EAAWD,EAAIhvC,MACnB,GAAIivC,EAASC,kBAAmB,CAC9B,IACIrjJ,EAAGw2F,EAAM8sD,EADTC,EAAaH,EAASI,YAE1B,IAAKxjJ,EAAI,EAAGA,EAAIujJ,EAAWprJ,OAAQ6H,IACjCw2F,EAAO+sD,EAAWvjJ,GAClBsjJ,EAActc,EAAIhvC,eAAeorD,EAAU5sD,GAAM31F,MAAM9E,QACvDirI,EAAIhvC,eAAew5C,EAAUh7C,GAAM11F,IAAIwiJ,EAE3C,CACAH,EAAIhvC,MAAQq9B,CACd,CACF,CACF,EAwIAgJ,EAAMuE,qBAAuB,SAASjgC,GAC/BA,EAAGggC,kBACNhgC,EAAGggC,gBAAkB,CAAC,GAEnBhgC,EAAGggC,gBAAgB2E,UACtB3kC,EAAGggC,gBAAgB2E,QAAU,IAE1B3kC,EAAGggC,gBAAgB4E,aACtB5kC,EAAGggC,gBAAgB4E,WAAa,CAAC,GAE9B5kC,EAAGggC,gBAAgB6E,WACtB7kC,EAAGggC,gBAAgB6E,SAAW,GAE3B7kC,EAAGggC,gBAAgB8E,sBACtB9kC,EAAGggC,gBAAgB8E,oBAAsB,GAE7C,EACApJ,EAAMoH,aAAe,SAASn3B,GAC5B,IAAI1wH,EACAs2I,EAAkBv4I,KAAKw4I,kBAAoB,GAC/C,IAAKv2I,EAAI,EAAGA,EAAIs2I,EAAgBl4I,OAAQ4B,IACtC,GAAIs2I,EAAgBt2I,GAAGiJ,OAASynH,EAAU,OAAO,EAEnD,IAAIzD,EAAUlvH,KAAKsyH,UAAY,GAC/B,IAAKrwH,EAAI,EAAGA,EAAIitH,EAAQ7uH,OAAQ4B,IAAK,CACnC,IAAIssC,EAAQ2gF,EAAQjtH,GAAGiJ,KACvB,GAAIqjC,IAAUokF,EAAU,OAAO,EAC/B,IAAIhb,EAAUqb,EAAS9D,QAAQ3gF,GAC/B,GAAIopE,GAAWA,EAAQsX,WAAW0D,GAAW,OAAO,CACtD,CACA,OAAO,CACT,EACA+vB,EAAM6H,UAAY,SAAS1D,EAAaH,EAAeE,EAAaJ,GAClE,IAAIvkJ,EAAGiG,EACHqwI,EAAkBiO,EAAchO,kBAAoB,GACxD,IAAKv2I,EAAI,EAAGA,EAAIs2I,EAAgBl4I,OAAQ4B,IAAK,CAC3C,IAAI01G,EAAU4gC,EAAgBt2I,GAC1B01G,EAAQ9E,OACV8E,EAAQ9E,MAAMg0C,EAAaH,EAAeE,EAAaJ,EAE3D,CACA,IAAIuF,EAAQvF,EAAcqD,MAAQrD,EAAcqD,KAAK,MACjDmC,EAAQtF,EAAcmD,MAAQnD,EAAcmD,KAAK,MACjDkC,IAAUC,QACuB,IAA/BxF,EAAcyF,eAChBzF,EAAcyF,aAAanxG,UAAU,cAAc3D,SACnDqvG,EAAcyF,aAAanxG,UAAU,aAAa3D,SAClDqvG,EAAc0F,UAAY,MAG9B,IAAIC,IAAiB3F,EAAc4F,WACnCC,EACE,IAAKpqJ,EAAI,EAAGA,EAAI2kJ,EAAYvmJ,OAAQ4B,IAAK,CACvC,IACIqqJ,EADW1F,EAAY3kJ,GACL6sG,IACtB,IAAK5mG,EAAI,EAAGA,EAAI2+I,EAAYxmJ,OAAQ6H,IAElC,GAAIokJ,IADWzF,EAAY3+I,GACH4mG,IAAK,SAASu9C,EAEpCF,GACF3F,EAAc4F,WAAW9xG,OAAO,MAAQgyG,GAAQn1G,QAEpD,CACJ,EACAurG,EAAM4H,aAAe,SAASzD,EAAaH,EAAeE,EAAaJ,GACrE,IAAIvkJ,EAAGiG,EACHqkJ,EAAc/F,EAAcd,QAAU,CAAC,EACvC8G,EAAc9F,EAAchB,OAAS,CAAC,EAEtCT,EAAS,CACX3E,UAAWuG,EACXzY,YAAasY,GAEX33C,EALiB23C,EAAcjJ,UAKVmM,WAAa,GACtC,IAAK3nJ,EAAI,EAAGA,EAAI8sG,EAAI1uG,OAAQ4B,IAAK,CAC/B,IAIIwqJ,EAJArrH,EAAK2tE,EAAI9sG,GACTyqJ,EAAaH,EAAYnrH,GACzBu0G,EAAQ4M,EAAQzE,UAAUmH,EAAQ7jH,EAAI,KACtCw0G,EAAQ2M,EAAQzE,UAAUmH,EAAQ7jH,EAAI,KAe1C,IAbIsrH,EACFD,EAAWD,EAAYprH,GAAMsrH,GAE7BD,EAAWD,EAAYprH,GAAM,CAAC,GACrBA,GAAKA,EAEhBu0G,EAAMiQ,aAAahlJ,KAAKg1I,EAAMuP,KAC9BvP,EAAMgQ,aAAahlJ,KAAK+0I,EAAMwP,KAC9BxP,EAAMgX,cAAc/rJ,KAAKwgC,GACzBw0G,EAAM+W,cAAc/rJ,KAAKwgC,GACzBqrH,EAAS9W,MAAQA,EACjB8W,EAAS7W,MAAQA,EACjB6W,EAASG,qBAAsB,EAC1B1kJ,EAAI,EAAGA,EAAI2+I,EAAYxmJ,OAAQ6H,IAAK,CACvC,IAAIm0G,EAAQwqC,EAAY3+I,GACxB,GAAIm0G,EAAMs5B,QAAU8W,EAAS9W,MAAMwP,KAAO9oC,EAAMu5B,QAAU6W,EAAS7W,MAAMuP,MAA4B,IAArB9oC,EAAMwwC,WAAsB,CAC1GJ,EAASG,qBAAsB,EAC/B,KACF,CACF,CACF,CACA,IACIhwF,EADAkwF,EAASvK,EAAQpwG,KAAK8yG,EAAQ,MAAM,GAExC,IAAKhjJ,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CAElC,IAAI8qJ,EAAS,MADbnwF,EAAKkwF,EAAO7qJ,IAEL8jJ,aACLgH,EAASxK,EAAQzE,UAAUmH,EAAQroF,EAAGmpF,cACxBgH,EAAOhH,aACnBnpF,EAAGmpF,YAAa,EAChBgH,EAAS,MAGbnwF,EAAGyoF,UAAY0H,GAAUnwF,EACrBmwF,IAAQnwF,EAAGjW,OAASomG,EAAOpmG,OAAO1iD,SACtC24D,EAAG0oF,YAA4B,SAAd1oF,EAAGowF,OAAoB,KAAOzK,EAAQzE,UAAUmH,EAAQroF,EAAGowF,OAC9E,CACA,IAAK/qJ,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAK7B,IAJA26D,EAAKkwF,EAAO7qJ,IACT2jJ,aAAat0H,KAAKixH,EAAQtE,QAC7BrhF,EAAG+vF,cAAcr7H,KAAK49G,EAAI7C,aAC1BzvE,EAAGqwF,aAAejI,EAAgBpoF,EAAI8pF,GAClC9pF,EAAGgpF,aAAavlJ,SAAWu8D,EAAGswF,YAAiD,IAApCtwF,EAAGswF,UAAUxpJ,QAAQ,WAAoBk5D,EAAGywD,YAAczwD,EAAGuwF,QAAwB,SAAdvwF,EAAGowF,QAAqBh6B,EAASJ,mBAAmB,cAAe,YAA3CI,CAAwDp2D,IAAM,CAC1M,IAAIjzC,EAAM,EACND,EAAM,EACV,IAAKxhB,EAAI,EAAGA,EAAI00D,EAAGgpF,aAAavlJ,OAAQ6H,IAAK,CAC3C,IAAIklJ,EAAM7K,EAAQzE,UAAUmH,EAAQroF,EAAGgpF,aAAa19I,IACpDyhB,EAAM9mB,KAAK8mB,IAAIA,EAAKyjI,EAAIzmG,OAAO,IAC/Bj9B,EAAM7mB,KAAK6mB,IAAIA,EAAK0jI,EAAIzmG,OAAO,GACjC,CACIh9B,EAAMD,IACRkzC,EAAGywF,kBAAoB1jI,EACvBizC,EAAG0wF,kBAAoB5jI,EAE3B,CAEJ,EA4BAg5H,EAAM6K,gCAAkC,SAASlxC,GAC/C,IAAI7K,EAAYhuF,EAAMvhB,EAiBtB,IATAuhB,EAAO,IACPguF,EAAa6K,EAAM1E,QAAQ61C,eAEzBnxC,EAAM1E,QAAQ61C,YAAch8C,EAAa,GACzC6wC,EAAWhnC,MACTgB,EAAM1E,QAAQpB,YAZlB,SAA0Br5D,EAAMk5F,EAAUzqC,EAAOxC,GAC/C3lF,EAAK2lF,GAASitC,EACd5yH,EAAKnjB,OAAS8oG,EAAQ,EACD,UAAjBjsD,EAAKquD,cAAqC,IAAdruD,EAAKuuD,MACnC+F,EAAW5wG,KAAK4iB,EAAK3c,KAAK,KAE9B,KAUK5E,EAAI,EAAGA,EAAIuvG,EAAWnxG,OAAQ4B,IAClBitI,EAAIhvC,eAAemc,EAAO,UAAY7K,EAAWvvG,IAClD8G,OACZmmI,EAAIhvC,eAAemc,EAAO7K,EAAWvvG,IAAI+G,IAAI,KAGnD,EACA05I,EAAM+G,mBAAqB,SAASgE,EAAQC,EAASxjF,EAAQouE,GAC3D,IAKIr2I,EAAG+7I,EAAW3hC,EALd6S,EAAUopB,EAAWhmB,SACrBq7B,EAAiBrV,EAAW2P,gBAC5B1P,EAAkBD,EAAWE,iBAE7BoV,EAAW,EAGf,SAASC,EAAWC,GAClBJ,EAAQ9sJ,KAAKktJ,GACb,IAAIn2C,EAAUm2C,EAAWn2C,QACpBA,IACLu3B,EAAIvgB,WAAWO,EAASvX,IACG,IAAvBm2C,EAAWv/C,SAAkB2gC,EAAIvgB,WAAWg/B,EAAgBh2C,GAChEu3B,EAAIvgB,WAAW4pB,EAAiBuV,EAAWn2C,QAAQyX,iBAEjB,IAA9B0+B,EAAWzT,OAAO9rC,SAAmBq/C,IAC3C,CAVAtV,EAAWyV,kBAAoB,GAW/B,IAAIC,EAAc,CAAC,EACfC,EAAmB,GACnB1U,GAAgBrvE,EAAOwsC,UAAY,CAAC,GAAG/5D,MAAQ,CAAC,EAChDuxG,EAAY5L,EAAShJ,eAAeC,GACxC,IAAKt3I,EAAI,EAAGA,EAAIwrJ,EAAOptJ,OAAQ4B,IAC7Bo6G,EAAQoxC,EAAOxrJ,IACf+7I,EAAYkQ,EAAUxU,SAASr9B,IACrBvN,IAAMwpC,EAAWwQ,WAAW7mJ,GACtCygJ,EAAMyL,oBAAoB9xC,EAAO2hC,EAAW4P,EAAUtV,EAAYr2I,GAClE+7I,EAAUp6I,MAAQ3B,EAClB+7I,EAAU3D,OAASh+B,EACnB2hC,EAAUkL,WAAalL,EACvB6P,EAAW7P,GACPhrB,EAASN,QAAQsrB,EAAW,gBAC9BgQ,EAAYhQ,EAAUoQ,QAAUpQ,GAE9BhrB,EAASN,QAAQsrB,EAAW,oBAC9BiQ,EAAiBrtJ,KAAKqB,GAG1B,IAAKA,EAAI,EAAGA,EAAIgsJ,EAAiB5tJ,OAAQ4B,IAEvC,IADA+7I,EAAY0P,EAAQO,EAAiBhsJ,KACtBssG,QAAf,CACA,IAAI8/C,EAAaL,EAAYhQ,EAAUoQ,QACvCpQ,EAAUsQ,QAAUD,EACfA,GAAeA,EAAW9/C,SAI/ByvC,EAAUrI,MAAQ0Y,EAAW1Y,MAC7BqI,EAAUpI,MAAQyY,EAAWzY,OAJ3BoI,EAAUzvC,SAAU,CAJU,CAUpC,EACAm0C,EAAM6L,wBAA0B,SAAS9rD,GAEvC,IAAIxgG,EADJwgG,EAAOA,GAAQ,CAAC,EAEhB,IAAI+rD,EAAU,CAAC,EACf,SAASp4C,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAO3T,GAAQ,CAAC,EAAG+rD,EAAS5hC,EAAgB1vE,EAAMuuD,EAC/D,CAIA,GAHA2K,EAAO,QACPA,EAAO,aACPA,EAAO,eACHvsG,MAAMiI,QAAQ2wF,EAAK0lB,OAErB,IADAqmC,EAAQrmC,MAAQ,GACXlmH,EAAI,EAAGA,EAAIwgG,EAAK0lB,MAAM9nH,OAAQ4B,IACjCusJ,EAAQrmC,MAAMlmH,GAAKygJ,EAAM+L,6BAA6BhsD,EAAK0lB,MAAMlmH,IAAM,CAAC,QAG1EusJ,EAAQrmC,MAAQu6B,EAAM+L,6BAA6BhsD,EAAK0lB,OAAS,CAAC,GAEpE,GAAIt+G,MAAMiI,QAAQ2wF,EAAKtrF,YAErB,IADAq3I,EAAQr3I,WAAa,GAChBlV,EAAI,EAAGA,EAAIwgG,EAAKtrF,WAAW9W,OAAQ4B,IACtCusJ,EAAQr3I,WAAWlV,GAAKygJ,EAAMgM,kCAAkCjsD,EAAKtrF,WAAWlV,IAAM,CAAC,QAGzFusJ,EAAQr3I,WAAaurI,EAAMgM,kCAAkCjsD,EAAKtrF,YAAc,CAAC,GAEnF,OAAOq3I,CACT,EACA9L,EAAM+L,6BAA+B,SAAShsD,GAC5C,IAAI+rD,EAAU,CAAC,EACf,SAASp4C,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAO3T,GAAQ,CAAC,EAAG+rD,EAAS5hC,EAAezE,MAAOjrE,EAAMuuD,EACrE,CAGA,OAFA2K,EAAO,YACPA,EAAO,UACAo4C,CACT,EACA9L,EAAMgM,kCAAoC,SAASjsD,GACjD,IAAI+rD,EAAU,CAAC,EACf,SAASp4C,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAO3T,GAAQ,CAAC,EAAG+rD,EAAS5hC,EAAez1G,WAAY+lC,EAAMuuD,EAC1E,CAGA,OAFA2K,EAAO,YACPA,EAAO,UACAo4C,CACT,EACA9L,EAAMiM,oBAAsB,SAASC,GACnC,IAAIC,EAAW,CAAC,EAChB,SAASz4C,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOw4C,EAASC,EAAUpM,EAAYvlG,EAAMuuD,EACzD,CAOA,OANA2K,EAAO,SACPA,EAAO,QACPA,EAAO,UACPA,EAAO,aACPA,EAAO,QACPA,EAAO,UACAy4C,CACT,EACAnM,EAAMyL,oBAAsB,SAAS52C,EAASC,EAAUs3C,EAAY5kF,EAAQ6kF,GAC1E,IAEI9sJ,EAFAisH,EAAWhkD,EAAOgkD,UAAYra,EAAO3C,SACrC89C,EAAe9gC,EAAS4gC,EAAa5gC,EAAS7tH,QAElD,SAAS+1G,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOmB,EAASC,EAAUkrC,EAAMnsC,WAAYr5D,EAAMuuD,EAC/D,CACA,IAAI8C,EAAU6H,EAAO,WACrBA,EAAO,QACPA,EAAO,OAAQlsC,EAAOm9E,WAAa,IAAM0H,GACzC34C,EAAO,aAAclsC,EAAOolC,YAC5B,IAAIqI,EAAU+qC,EAAMjwB,UAAUjb,GAE9B,GADAA,EAASG,QAAUA,EACfA,EAAS,CACX,IAAIyX,EAAiBzX,EAAQyX,eACzB4C,EAAc5C,EAAelyE,KAC7B60E,EAAe3C,EAAe7Y,WAClC,GAAIyb,GAAeD,EAAc,CAC/B,IAAIF,EAAW3nD,EAAOuzE,UAClB4B,EAAY,GAChB,GAAIx1I,MAAMiI,QAAQkgH,GAChB,IAAK/vH,EAAI,EAAGA,EAAI+vH,EAAY3xH,OAAQ4B,IAAK,CACvC,IAAIgtJ,EAAQj9B,EAAY/vH,GACpBitJ,EAAOhgB,EAAI94B,OAAOmB,EAASC,EAAUua,EAAck9B,GACnDp9B,EAASo9B,IAAQ/f,EAAIvgB,WAAWkD,EAASo9B,GAAQC,GACrD7P,GAAa6P,CACf,MAEA7P,EAAYnQ,EAAI94B,OAAOmB,EAASC,EAAUua,EAAcC,GAEtDH,EAASzC,EAAelkH,OAC1BgkI,EAAIvgB,WAAWkD,EAASzC,EAAelkH,MAAOm0I,EAElD,CACF,CACA,GAAI9wC,IACF6H,EAAO,cACPA,EAAO,OACPA,EAAO,QACH4c,EAASN,QAAQlb,EAAU,eAC7B03B,EAAI94B,OACFmB,EACAC,EACAG,EAAQpB,WAAW/H,WAAamJ,EAAQpB,WAAamsC,EAAMnsC,WAC3D,cAEFH,EAAO,UACPA,EAAO,eACPA,EAAO,eACPA,EAAO,yBACPA,EAAO,cACPoB,EAAS23C,iBAAkB,GAE3B33C,EAAS23C,iBAAkB,EAEzBx3C,GACFA,EAAQmZ,eAAevZ,EAASC,EAAUw3C,EAAc9kF,GAErD8oD,EAASN,QAAQlb,EAAU,cAC9BpB,EAAO,WAEL4c,EAASN,QAAQlb,EAAU,yBAC7BA,EAASjJ,UAAYiJ,EAASjJ,SAE3BykB,EAASN,QAAQlb,EAAU,aACzBA,EAAS4S,eAAe8kB,EAAI53B,gBAAgBC,EAASC,EAAUttC,GAC9C,YAAlBstC,EAAS1yG,MACXkuH,EAASJ,mBAAmB,KAAM,iBAAlCI,CAAoDzb,EAASC,EAAUw3C,EAAc9kF,IAGrFytC,GAAWA,EAAQs/B,cAAc,CACnC,IAAI/nC,EAAiBkH,EAAO,kBACxB84B,EAAIh1C,aAAagV,KACnBsI,EAAStI,eAAiBrlG,MAAM/G,KAAKosG,GAEzC,CAEF,OAAOsI,CACT,EACAkrC,EAAMgF,2BAA6B,SAAS0H,EAAU33C,EAAWktC,GAC/D,SAASvuC,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOg5C,EAAU33C,EAAWirC,EAAM5yB,iBAAkB5yE,EAAMuuD,EACvE,CACA,IAAIiL,EAAW04C,EAAS14C,SACpBw4B,EAAI7hH,cAAcqpF,KACpBe,EAAUf,SAAWA,EACrBe,EAAUd,UAAYD,EAASxsC,OAC/ButC,EAAU43C,cAAgB34C,EAAS/5D,MAErCy5D,EAAO,mBACP,IAAI9I,EAAO4hC,EAAIp4B,WAAWV,EAAQ,QAC9BtgG,EAAWw3F,EAAKrlG,KACpBinI,EAAIp4B,WAAWV,EAAQ,aAAc9I,EAAM,CAAE0J,aAAc,CACzD/uG,KAAMpF,KAAK+b,MAAiB,IAAX9I,MAEnBsgG,EAAO,aAAcqB,EAAUyvC,WAAWpH,MAC1C1pC,EAAO,cACP,IAAIk5C,EAAYl5C,EAAO,cACvBA,EAAO,eACPA,EAAO,eACPA,EAAO,eACPA,EAAO,eACP,IAAIm5C,EAAkBn5C,EAAO,oBAC7BA,EAAO,WACPA,EAAO,iBACPA,EAAO,WACPA,EAAO,iBACPA,EAAO,sBAAuBqB,EAAUyvC,WAAWh6B,UACnDgiB,EAAIp4B,WAAWV,EAAQ,sBAAuB9I,EAAM,CAClD0J,aAAc,CACZ/uG,KAAMpF,KAAK+b,MAAkC,GAA5B64F,EAAUwV,MAAM3f,KAAKrlG,SAGtCsnJ,IACgB,UAAdD,IACwB,IAAtB73C,EAAUwV,MAAM5kH,IAASovG,EAAUwV,MAAM5kH,EAAI,GACjB,SAA5BovG,EAAUwV,MAAMZ,UAClB5U,EAAUwV,MAAMZ,QAAgC,IAAtB5U,EAAUwV,MAAM5kH,EAAU,MAAQ,WAG9C,cAAdinJ,IACwB,SAAtB73C,EAAUwV,MAAM5kH,IAAcovG,EAAUwV,MAAM5kH,EAAI,GACtB,SAA5BovG,EAAUwV,MAAMZ,UAClB5U,EAAUwV,MAAMZ,QAAU5U,EAAUwV,MAAM5kH,EAAI,GAAM,SAAW,SAI/C+tG,EAAO,qBAE3BA,EAAO,uBAETA,EAAO,aAAcg5C,EAASt4I,OAASs4I,EAASr4I,SAChDq/F,EAAO,SACPA,EAAO,UACPA,EAAO,mBACPA,EAAO,oBACPA,EAAO,YACPA,EAAO,YACPA,EAAO,YACPA,EAAO,YACPA,EAAO,cACPA,EAAO,qBACHg5C,EAASt4I,OAASs4I,EAASr4I,QAAQ2rI,EAAMiF,gBAAgBlwC,GAC7Dub,EAASJ,mBAAmB,OAAQ,eAApCI,CAAoDo8B,EAAU33C,GAC9DrB,EAAO,iBACPA,EAAO,aAAcuuC,EAAUhvD,QAAUgvD,EAAUpvD,WACnD6gB,EAAO,eACPA,EAAO,YACPA,EAAO,gBACP,IAAI9G,EAAa8G,EAAO,cACxBA,EAAO,eAAgB9G,GACvB8G,EAAO,oBAAqB9G,GAC5B0jB,EAASJ,mBACP,UACA,uBAFFI,CAGEo8B,EAAU33C,GACZub,EAASJ,mBACP,SACA,6BAFFI,CAGEo8B,EAAU33C,EAAWrB,GACvB4c,EAASJ,mBACP,aACA,iCAFFI,CAGEo8B,EAAU33C,EAAWrB,GACvBA,EAAO,QACH84B,EAAI7hH,cAAc+hI,EAASj4I,cAC7Bi/F,EAAO,uBACPA,EAAO,qBACPA,EAAO,wBAET4c,EAASJ,mBACP,YACA,iBAFFI,CAGEo8B,EAAU33C,EAAW,YACvBub,EAASJ,mBACP,KACA,6BAFFI,CAGEo8B,EAAU33C,EAAWrB,GACvB84B,EAAI94B,OAAOg5C,EAAU33C,EAAW+qC,EAAc,cAChD,EAIAE,EAAMmF,aAAe,SAAsB7gC,EAAI98C,EAAQouE,GACrD,IAEIkX,EACAC,EAHAzgH,EAAUg4E,EAAG4Z,UAAY,CAAC,EAC1BpnB,EAAexqE,EAAQwqE,aAGvB0N,EAAYgoB,EAAIhoB,UAAUF,GAE9B,GADIE,GAAWF,EAAGiqB,KAAK,mBACnBjiG,EAAQuqE,UACVi2C,EAAW5vH,OAAO8vH,WAClBD,EAAY7vH,OAAO+vH,YACnBjuJ,SAASgkF,KAAKp5D,MAAM2M,SAAW,aAC1B,CACL,IAAI22H,EAAgB1oC,EAAYtnF,OAAO2d,iBAAiBypE,GAAM,CAAC,EAG/D,GAFAwoC,EAAWxJ,EAAgB4J,EAAc94I,QAAUkvI,EAAgB4J,EAAcp5H,WAAa8hH,EAAWxhI,MACzG24I,EAAYzJ,EAAgB4J,EAAc74I,SAAWivI,EAAgB4J,EAAc/4H,YAAcyhH,EAAWvhI,OACxG+mF,EAAU0b,IAAiBA,EAAe,EAAG,CAC/C,IAAIlH,EAAS,EAAI,EAAIkH,EACrBg2C,EAAW3sJ,KAAK+b,MAAM0zF,EAASk9C,GAC/BC,EAAY5sJ,KAAK+b,MAAM0zF,EAASm9C,EAClC,CACF,CACA,IAAI74H,EAAW8rH,EAAM5yB,iBAAiBh5G,MAAM6S,IACxC5I,EAAY2hI,EAAM5yB,iBAAiB/4G,OAAO4S,IAC1C6lI,EAAW54H,IAAU44H,EAAW54H,GAChC64H,EAAY1uI,IAAW0uI,EAAY1uI,GACvC,IAAI8uI,GAAmB3lF,EAAOpzD,OAASjU,KAAKD,IAAI01I,EAAWxhI,MAAQ04I,GAAY,EAC3EM,GAAoB5lF,EAAOnzD,QAAUlU,KAAKD,IAAI01I,EAAWvhI,OAAS04I,GAAa,GAC/EK,GAAoBD,KAClBA,IAAiBvX,EAAWxhI,MAAQ04I,GACpCM,IAAkBxX,EAAWvhI,OAAS04I,IAEvCzoC,EAAG+oC,mBACN/oC,EAAG+oC,iBAAmB,CAAEj5I,MAAO04I,EAAUz4I,OAAQ04I,IAEnD/M,EAAMiF,gBAAgBrP,EACxB,EACAoK,EAAMqH,2BAA6B,SAASqF,EAAU33C,EAAWu4C,EAAUC,GACzE,IAEI53I,EAAWpW,EAAG01G,EAFd4X,EAAqByD,EAASzD,mBAC9BgpB,EAAkB9gC,EAAU+gC,iBAE5B0X,EAAYl9B,EAAS7D,iBAAiBy6B,UAC1C,IAAKvxI,KAAak3G,GAChB5X,EAAU4X,EAAmBl3G,IACjB83I,iBACVx4C,EAAQw4C,gBAAgBf,EAAU33C,GAUtC,IAAK,IAAIywC,KAPJ3P,EAAgBl4I,QACnBk4I,EAAgB33I,KAAKsvJ,GAEnBz4C,EAAUoyC,KAAK,eACjB72B,EAASJ,mBAAmB,OAAQ,kBAApCI,CAAuDo8B,EAAU33C,GACjEy4C,EAAUE,iBAAiBhB,EAAU33C,IAEfA,EAAUgmC,UAChChmC,EAAUgmC,UAAUyK,GAAa52H,KAAK49G,EAAI7C,aAE5C,IAAKpqI,EAAI,EAAGA,EAAIs2I,EAAgBl4I,OAAQ4B,KACtC01G,EAAU4gC,EAAgBt2I,IACdouJ,sBACV14C,EAAQ04C,qBAAqBjB,EAAU33C,EAAWu4C,GAGtD,IAAI9gC,EAAUzX,EAAU6a,SACxB,IAAKrwH,EAAI,EAAGA,EAAIitH,EAAQ7uH,OAAQ4B,KAC9B01G,EAAUuX,EAAQjtH,IACNouJ,sBACV14C,EAAQ04C,qBAAqBjB,EAAU33C,EAAWu4C,GAGtD,IAAIM,EAAmB74C,EAAUs2C,kBACjC,IAAK9rJ,EAAI,EAAGA,EAAIquJ,EAAiBjwJ,OAAQ4B,KACvC01G,EAAU24C,EAAiBruJ,IACfouJ,sBACV14C,EAAQ04C,qBAAqBjB,EAAU33C,EAAWu4C,EAAUC,GAGhE,IAAK53I,KAAak3G,GAChB5X,EAAU4X,EAAmBl3G,IACjBg4I,sBACV14C,EAAQ04C,qBAAqBjB,EAAU33C,EAAWu4C,EAGxD,EACAtN,EAAMjP,MAAQ,SAASzsB,GACrB,IAAIsxB,EAAatxB,EAAGonB,aAAe,CAAC,OACJ,IAA5BkK,EAAW2T,eACb3T,EAAW2T,aAAanxG,UAAU,cAAc3D,SAChDmhG,EAAW2T,aAAa90G,SACxBmhG,EAAW4T,UAAY,MAErB5T,EAAWiY,UAAUjY,EAAWiY,SAASC,UACzCxpC,EAAGggC,kBACDhgC,EAAGggC,gBAAgB8E,sBACrB9kC,EAAGggC,gBAAgB8E,oBAAoBzrJ,OAAS,GAE9C2mH,EAAGggC,gBAAgByJ,eACrB7wH,OAAO8wH,qBAAqB1pC,EAAGggC,gBAAgByJ,gBAGnDvhB,EAAIzL,gBACJyL,EAAInL,gBAAgB/c,UACbA,EAAGrqE,YACHqqE,EAAG98C,cACH88C,EAAGs5B,iBACHt5B,EAAGonB,mBACHpnB,EAAGw4B,gBACHx4B,EAAG5vE,aACH4vE,EAAG2pC,WACH3pC,EAAG4pC,iBACH5pC,EAAG6pC,eACH7pC,EAAGktB,gBACHltB,EAAGl/D,eACHk/D,EAAGk8B,iBACHl8B,EAAG+7B,oBACH/7B,EAAG8pC,mBACH9pC,EAAG+pC,mBACH/pC,EAAGggC,uBACHhgC,EAAGgqC,sBACHhqC,EAAG+oC,wBACH/oC,EAAGiqC,kCACHjqC,EAAG4jC,iBACH5jC,EAAGkqC,gBACHlqC,EAAGmqC,iBACHnqC,EAAGoqC,kBACHpqC,EAAGqqC,2BACHrqC,EAAGsqC,gBACHtqC,EAAGuqC,sBACHvqC,EAAGwqC,qBACNxqC,EAAG0rB,oBAAoB1rB,EAAG0rB,oBAChC,EACAgQ,EAAMp2H,MAAQ,SAAS06F,GACrB,IAEI/kH,EAFAqwH,EAAWtL,EAAGonB,YAAY6Z,gBAC1BwJ,EAAe,GAEnB,IAAKxvJ,EAAI,EAAGA,EAAIqwH,EAASjyH,OAAQ4B,IAAK,CACpC,IAAI01G,EAAU2a,EAASrwH,GACnB01G,EAAQrrF,OACV4iH,EAAIvgB,WAAW8iC,EAAc95C,EAAQrrF,MAEzC,CACA,IAAKrqB,EAAI,EAAGA,EAAIwvJ,EAAapxJ,OAAQ4B,IACnCwvJ,EAAaxvJ,GAAG+kH,EAEpB,EACA07B,EAAMiF,gBAAkB,SAASrP,GAC/B,GAAKA,GAAeA,EAAW5jH,OAA/B,CACA,IAKIg9H,EALA56I,EAAQwhI,EAAWxhI,MACnBC,EAASuhI,EAAWvhI,OACpB2d,EAAS4jH,EAAW5jH,OACpBi9H,EAAY76I,GAAS4d,EAAOtJ,EAAIsJ,EAAOrG,GACvCujI,EAAa76I,GAAU2d,EAAOnG,EAAImG,EAAOzB,GAEzC0+H,EAAY,IACdD,GAAc56I,EAAQ,IAAM4d,EAAOtJ,EAAIsJ,EAAOrG,GAC9CqG,EAAOtJ,EAAIvoB,KAAK2/B,MAAMkvH,EAAah9H,EAAOtJ,GAC1CsJ,EAAOrG,EAAIxrB,KAAK2/B,MAAMkvH,EAAah9H,EAAOrG,IAExCujI,EAAa,IACfF,GAAc36I,EAAS,IAAM2d,EAAOnG,EAAImG,EAAOzB,GAC/CyB,EAAOnG,EAAI1rB,KAAK2/B,MAAMkvH,EAAah9H,EAAOnG,GAC1CmG,EAAOzB,EAAIpwB,KAAK2/B,MAAMkvH,EAAah9H,EAAOzB,GAfC,CAiB/C,EACAyvH,EAAMmP,mBAAqB,SAAS7qC,GAClCA,EAAGonB,YAAYiY,eAAiB,CAAC,CACnC,EACA3D,EAAMoP,gBAAkB,SAAS9qC,EAAI5lF,GACnC4lF,EAAGonB,YAAYiY,eAAejlH,GAAM,CACtC,EAoBAshH,EAAMqP,WAAa,SAAS/qC,EAAI5lF,EAAIW,GAClC,IAAIu2G,EAAatxB,EAAGonB,YAChBt3H,EAAQwhI,EAAWxhI,MACnBC,EAASuhI,EAAWvhI,OACpB2d,EAAS4jH,EAAW5jH,OACpB+4F,EAAkB6qB,EAAW7qB,gBAC7BC,EAAmB4qB,EAAW5qB,iBAC9BskC,EAAgB9iB,EAAI9J,UACtBtuH,EAAQ4d,EAAOtJ,EAAIsJ,EAAOrG,EAVJ,EAYtBo/F,GAEEwkC,EAAiB/iB,EAAI9J,UACvBruH,EAAS2d,EAAOnG,EAAImG,EAAOzB,EAdJ,EAgBvBy6F,GAEEwkC,EAAYrvJ,KAAK6mB,IAAI,EAAG5S,EAAQk7I,GAChCG,EAAYtvJ,KAAK6mB,IAAI,EAAG3S,EAASk7I,GACjCG,EAAa9Z,EAAW8N,YACxBiM,EAAgB/Z,EAAW+N,eAC/B,IAA0B,IAAtB3xH,EAAOi5F,WAAsB,CAC/B,GAAK5rF,EAGE,CACL,IAAImzC,EAAMnzC,EAAEmzC,IAIZ,QAHY,IAARA,IACFA,EAAMryE,KAAK8mB,IAAI,GAAI+K,EAAOtJ,EAAGsJ,EAAOrG,EAAGqG,EAAOnG,EAAGmG,EAAOzB,IAEtDi/H,EAAW,CACb,IAAII,GAAMvwH,EAAE3W,EAAI2W,EAAE1T,GAAK6jI,EACnBI,EAAK,IACPvwH,EAAE3W,GAAKknI,EACPvwH,EAAE1T,GAAKikI,EAEX,CACA,GAAIH,EAAW,CACb,IAAII,GAAMxwH,EAAExT,EAAIwT,EAAE9O,GAAKk/H,EACnBI,EAAK,IACPxwH,EAAExT,GAAKgkI,EACPxwH,EAAE9O,GAAKs/H,EAEX,CACA,IAAI7iI,OAAc,IAATqS,EAAErS,GAAgBqS,EAAErS,GAAKqS,EAAE35B,EAChCoqJ,OAAc,IAATzwH,EAAEywH,GAAgBzwH,EAAEywH,GAAKzwH,EAAE35B,EAChCqqJ,OAAc,IAAT1wH,EAAE0wH,GAAgB1wH,EAAE0wH,GAAK1wH,EAAE15B,EAChCqqJ,OAAc,IAAT3wH,EAAE2wH,GAAgB3wH,EAAE2wH,GAAK3wH,EAAE15B,EACpC+pJ,EAAWhxH,GAAM,CACfhW,EAAG,CAAEL,IAAK2E,EAAIznB,KAAM85B,EAAE3W,EAAI8pD,GAC1B7mD,EAAG,CAAEtD,IAAKynI,EAAIvqJ,KAAM85B,EAAE1T,EAAI6mD,GAC1BjiD,EAAG,CAAElI,IAAK2nI,EAAIzqJ,KAAM85B,EAAE9O,EAAIiiD,GAC1B3mD,EAAG,CAAExD,IAAK0nI,EAAIxqJ,KAAM85B,EAAExT,EAAI2mD,IAE5Bm9E,EAAcjxH,GAAM,CACtB,aAhCSgxH,EAAWhxH,UACXixH,EAAcjxH,GAgCvB,IAAKk3G,EAAWqa,YACd,OAAOjQ,EAAMkQ,aAAa5rC,EAE9B,CACF,EAWA07B,EAAMkQ,aAAe,SAAS5rC,GAC5B,IAAIsxB,EAAatxB,EAAGonB,YAChBt3H,EAAQwhI,EAAWxhI,MACnBC,EAASuhI,EAAWvhI,OACnBuhI,EAAW4N,QAAO5N,EAAW4N,MAAQ,CAAC,GAC3CD,EAAY3N,GACZ,IAAI6N,EAAK7N,EAAW4N,MAChBxxH,EAAS4jH,EAAW5jH,OACpBm+H,EAAkB,CAAEtkI,EAAG,EAAG0E,EAAG,EAAG7H,EAAG,EAAGiD,EAAG,GACzCykI,EAAa5jB,EAAInkC,WAAW,CAAC,EAAGo7C,GAChChuH,EAAKzD,EAAOtJ,EACZ6M,EAAKvD,EAAOrG,EACZ2J,EAAKtD,EAAOnG,EACZ2J,EAAKxD,EAAOzB,EACZm/H,EAAa9Z,EAAW8N,YACxBiM,EAAgB/Z,EAAW+N,eAC3B54B,EAAkB6qB,EAAW7qB,gBAC7BC,EAAmB4qB,EAAW5qB,iBAClC,IAA0B,IAAtBh5F,EAAOi5F,WAAsB,CAC/B,IAAK,IAAIxlH,KAAKiqJ,EACPC,EAAclqJ,WAAWiqJ,EAAWjqJ,GAE3C,IAAI4qJ,EAAU/rC,EAAGonB,YAAYkY,gBAC7B,IAAK,IAAIplJ,KAAO6xJ,EACd,IAAK,IAAIC,KAAQD,EAAQ7xJ,GAAM,CAC7B,IAAI6pB,EAAMgoI,EAAQ7xJ,GAAK8xJ,GACvBH,EAAgBG,GAAQnwJ,KAAK6mB,IAAImpI,EAAgBG,GAAOjoI,EAC1D,CAQF,IAAK,IAAII,KANTinI,EAAWthI,KAAO,CAChB1F,EAAG,CAAEL,IAAK,EAAG9iB,KAAMkwB,GACnB9J,EAAG,CAAEtD,IAAK,EAAG9iB,KAAMgwB,GACnB1J,EAAG,CAAExD,IAAK,EAAG9iB,KAAM+vB,GACnB/E,EAAG,CAAElI,IAAK,EAAG9iB,KAAMiwB,IAEP26H,EAAiB,CAC7B,IAAII,EAAiB,EACrB,IAAK,IAAIngI,KAAKs/H,EACF,SAANt/H,GACEgrE,EAAUs0D,EAAWt/H,GAAG3H,GAAGljB,QAC7BgrJ,EAAiBb,EAAWt/H,GAAG3H,GAAGljB,KAAOgrJ,EAAiBb,EAAWt/H,GAAG3H,GAAGljB,KAAOgrJ,GAIxF,IAAIC,EAAcrwJ,KAAK6mB,IAAI,EAAGgL,EAAOvJ,GAAK8nI,GAC1CJ,EAAgB1nI,GAAKtoB,KAAK6mB,IAAI,EAAGmpI,EAAgB1nI,GAAK+nI,EACxD,CACA,IAAK,IAAIC,KAAMf,EAAY,CACzB,IAAIgB,EAAWhB,EAAWe,GAAI/nI,GAAK,CAAC,EAChCioI,EAAajB,EAAWe,GAAIlgI,GAAK,CAAC,EAClCqgI,EAAKF,EAASroI,IACdoM,EAAKi8H,EAASnrJ,KACdq2D,EAAK+0F,EAAWtoI,IAChBmM,EAAKm8H,EAAWprJ,KAChBsrJ,EAAiBz8I,EAAQ+7I,EAAgBxkI,EAAIwkI,EAAgBznI,EAC7DooI,EAAkBz8I,EAAS87I,EAAgBtkI,EAAIskI,EAAgB5/H,EACnE,IAAK,IAAIwgI,KAAMrB,EAAY,CACzB,GAAIt0D,EAAU3mE,IAAOi7H,EAAWqB,GAAIplI,EAAG,CACrC,IAAIqlI,EAAKtB,EAAWqB,GAAIplI,EAAEtD,IACtBkM,EAAKm7H,EAAWqB,GAAIplI,EAAEpmB,KAC1B,GAAIyrJ,EAAKJ,EAAI,CACX,IAAIK,GAAQx8H,EAAKu8H,GAAMz8H,EAAKs8H,GAAkBD,IAAOI,EAAKJ,GACtDM,GAAQ38H,GAAM,EAAIq8H,IAAOn8H,EAAKo8H,IAAmB,EAAIG,KAAQA,EAAKJ,GAClEK,EAAOC,EAAOz7H,EAAKF,IACrBE,EAAKw7H,EACL17H,EAAK27H,EAET,CACF,CACA,GAAI91D,EAAU5mE,IAAOk7H,EAAWqB,GAAIllI,EAAG,CACrC,IAAIslI,EAAKzB,EAAWqB,GAAIllI,EAAExD,IACtBiM,EAAKo7H,EAAWqB,GAAIllI,EAAEtmB,KAC1B,GAAI4rJ,EAAKv1F,EAAI,CACX,IAAIw1F,GAAQ58H,EAAK28H,GAAM78H,EAAKw8H,GAAmBl1F,IAAOu1F,EAAKv1F,GACvDy1F,GAAQ/8H,GAAM,EAAIsnC,IAAOpnC,EAAKs8H,IAAoB,EAAIK,KAAQA,EAAKv1F,GACnEw1F,EAAOC,EAAO77H,EAAKF,IACrBE,EAAK47H,EACL97H,EAAK+7H,EAET,CACF,CACF,CACF,CACF,CACA,IAAI/B,EAAgB9iB,EAAI9J,UACtBtuH,EAAQ4d,EAAOtJ,EAAIsJ,EAAOrG,EA9JJ,EAgKtBo/F,GAEEwkC,EAAiB/iB,EAAI9J,UACvBruH,EAAS2d,EAAOnG,EAAImG,EAAOzB,EAlKJ,EAoKvBy6F,GAEEwkC,EAAYrvJ,KAAK6mB,IAAI,EAAG5S,EAAQk7I,GAChCG,EAAYtvJ,KAAK6mB,IAAI,EAAG3S,EAASk7I,GACrC,GAAIC,EAAW,CACb,IAAII,GAAMn6H,EAAKF,GAAMi6H,EACjBI,EAAK,IACPn6H,GAAMm6H,EACNr6H,GAAMq6H,EAEV,CACA,GAAIH,EAAW,CACb,IAAII,IAAMr6H,EAAKF,GAAMm6H,EACjBI,GAAK,IACPr6H,GAAMq6H,GACNv6H,GAAMu6H,GAEV,CAQA,GAPApM,EAAG/6H,EAAIvoB,KAAK+b,MAAMuZ,GAAM06H,EAAgBznI,EACxC+6H,EAAG93H,EAAIxrB,KAAK+b,MAAMqZ,GAAM46H,EAAgBxkI,EACxC83H,EAAG53H,EAAI1rB,KAAK+b,MAAMoZ,GAAM66H,EAAgBtkI,EACxC43H,EAAGlzH,EAAIpwB,KAAK+b,MAAMsZ,GAAM26H,EAAgB5/H,EACxCkzH,EAAGpzH,EAAIlwB,KAAK+b,MAAM8V,EAAOwgD,KACzBixE,EAAGvjH,EAAI//B,KAAK+b,MAAM9H,GAASqvI,EAAG/6H,EAAI+6H,EAAG93H,EACrC83H,EAAGrzI,EAAIjQ,KAAK+b,MAAM7H,GAAUovI,EAAG53H,EAAI43H,EAAGlzH,GACjCqlH,EAAWqa,cAAgBjQ,EAAMsR,gBAAgBlB,EAAY3M,IA/HpE,SAA6Bn/B,GAC3B,GAAI,+BAAgCA,EAAGonB,YACrC,OAAO,EAET,IAAI0e,EAASvK,EAAQpwG,KAAK60E,EAAI,IAAI,GAClC,IAAK,IAAIpqD,KAAMkwF,EACb,GAAIA,EAAOlwF,GAAIk5E,WAAagX,EAAOlwF,GAAIjyC,MAAO,OAAO,EAEvD,OAAO,CACT,CAsH2EspI,CAAoBjtC,IAAM,CAC7F,+BAAgCsxB,EAClCA,EAAW4b,6BAEX5b,EAAW4b,2BAA6B,EAE1C,IAAIC,GAAqB,GAAK,EAAIjxJ,OAAOgkB,KAAKmrI,GAAehyJ,QAC7D,GAAIi4I,EAAW4b,2BAA6BC,GAC1C,OAAOnhC,EAASlpH,KAAK,UAAWk9G,GAEhCsxB,EAAW4N,MAAQ4M,EACnB5jB,EAAI5yB,KAAK,gCAEb,EAGF,SAAqB0K,GACnB,IAAI8lC,EAASvK,EAAQpwG,KAAK60E,EAAI,IAAI,GAClC,CACE,4BACA,oCACAzlH,SAAQ,SAAS4G,GACjB,IAAK,IAAIlG,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CACtC,IAAImyJ,EAAStH,EAAO7qJ,GAAGkG,GACnBisJ,GAAQA,GACd,CACF,GACF,CAbEC,CAAYrtC,EACd,EAaA,IAAIvzF,EAAa,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAgbhD,SAAS6gI,EAAYttC,EAAIutC,EAAgB9xD,GACvC,IAAI+xD,GAAU,EAkEVC,EAAM,CACR/R,EAAMG,iBANR,WACE,GAAK77B,EAAGggC,gBAER,OADAhgC,EAAGgqC,gBAAiB,EA9DtB,SAA0B7+G,GACxB,IAAIpf,EAAIqsG,QAAQ3uF,UAChB,IAAK0B,EAAM,OAAOpf,EAClB,KAAOof,EAAK9xC,QACV0yB,EAAIA,EAAEgd,KAAKoC,EAAKxnB,SAElB,OAAOoI,CACT,CAwDS2hI,CAAiB1tC,EAAGggC,gBAAgB8E,oBAC7C,EAIErpD,EAAKkyD,UACLjS,EAAMkS,QACNlS,EAAMmS,SAxDR,WAEE,OADA7tC,EAAGiqB,KAAK,uBAAwB,IACzB,IAAI7R,SAAQ,SAAS3uF,GAC1Bu2E,EAAGgqC,gBAAiB,EAChBuD,EAAel9I,SAAW,IAC5B2vG,EAAGiqC,4BAA6B,GAElCjqC,EAAGggC,gBAAgB8E,oBAAoBlrJ,MAAK,WAC1C4zJ,GAAU,CACZ,IACI/xD,EAAKve,QACP8iC,EAAGggC,gBAAgB8E,oBAAoBlrJ,MAAK,WAC1C,OAAOoyH,EAASlpH,KAAK,SAAUk9G,EACjC,IAEFA,EAAGggC,gBAAgB8E,oBAAoBlrJ,MAAK,WAC1ComH,EAAGiqB,KAAK,+BAAgC,GAC1C,IACA,IAAI6jB,EAAe,EACfC,EAAe,EACnB,SAASC,IAEP,OADAF,IACO,WAWb,IAA4BruJ,EAVpBsuJ,IACKP,GAAWO,IAAiBD,IASbruJ,EARCgqC,EAStBu2E,EAAGggC,kBAxCV,SAAwB70G,GACtB,GAAKA,EACL,KAAOA,EAAK9xC,QACV8xC,EAAKxnB,OAET,CAoCEsqI,CAAejuC,EAAGggC,gBAAgB8E,qBAC3B1sB,QAAQ3uF,UAAUV,MAAK,WAC5B,GAAI0yD,EAAKve,OACP,OAAO8uC,EAASlpH,KAAK,SAAUk9G,EAEnC,IAAGj3E,MAAK,WACNi3E,EAAGgqC,gBAAiB,EACpBhqC,EAAGiqC,4BAA6B,EAChCjqC,EAAGiqB,KAAK,sBAAuB,GACjC,IAAGlhG,KAAKtpC,IAjBJ,CACF,CACAg8F,EAAKyyD,MAAMF,GACX13H,WAAW03H,IACb,GACF,GA2BIG,EAAqBjmB,EAAI1I,YAAYiuB,EAAKztC,GAI9C,OAHKmuC,GAAuBA,EAAmBplH,OAC7ColH,EAAqB/1B,QAAQ3uF,WAExB0kH,EAAmBplH,MAAK,WAC7B,OAAOi3E,CACT,GACF,CAjgBA07B,EAAMsR,gBAAkB,SAASoB,EAASC,GACxC,IAAK,IAAIpzJ,EAAI,EAAGA,EAAIwxB,EAAWpzB,OAAQ4B,IAAK,CAC1C,IAAIkG,EAAIsrB,EAAWxxB,GACfqzJ,EAAKF,EAAQjtJ,GACbmhD,EAAK+rG,EAAQltJ,GACjB,IAAK21F,EAAUw3D,IAAOzyJ,KAAKD,IAAI0mD,EAAKgsG,GAAM,EACxC,OAAO,CAEX,CACA,OAAO,CACT,EACA5S,EAAM0B,UAAY,SAASp9B,EAAIuuC,EAAUz5I,EAAMpV,EAAQ8uJ,EAAaC,IAC9DD,GAAeD,IAAavuC,EAAGs5B,WAAakV,IAAgBD,IAAavuC,EAAGonB,cAC9EsU,EAAM5xB,eAAe9J,GAEvB,IAAIrqE,EAAO64G,EAAcxuC,EAAGs5B,UAAYt5B,EAAGrqE,KACvCutB,EAASsrF,EAAcxuC,EAAGonB,YAAcpnB,EAAG98C,OAC3CgsE,GAAUlvB,EAAGggC,iBAAmB,CAAC,GAAG2E,QACxC,SAAS+J,EAASzhJ,EAAG0hJ,GACnB,GAAiB,oBAAN1hJ,EACT,OAAO0hJ,EAAe,aAAe,KAEvC,GAAIzmB,EAAI7hH,cAAcpZ,GAAI,CACxB,IACI02F,EADA5oE,EAAI,CAAC,EA2BT,OAzBA7+B,OAAOgkB,KAAKjT,GAAGqd,OAAO/vB,SAAQ,SAAS+gC,GACrC,IAAyC,IAArC,CAAC,IAAK,KAAK5+B,QAAQ4+B,EAAEhY,OAAO,IAChC,GAAoB,oBAATrW,EAAEquB,GAAb,CAIA,GAAa,aAATxmB,GACF,GAA+B,QAA3BwmB,EAAEx+B,OAAOw+B,EAAEjiC,OAAS,GACtB,YAEG,GAAa,eAATyb,GAET,GAAmB,kBADnB6uF,EAAM12F,EAAEquB,EAAI,SACmBqoE,EAAIjnG,QAAQ,KAAO,IAC3CwrI,EAAI7hH,cAAcpZ,EAAEm7F,QACvB,YAGC,GAAa,YAATtzF,GAEU,kBADnB6uF,EAAM12F,EAAEquB,EAAI,SACmBqoE,EAAIjnG,QAAQ,KAAO,EAChD,OAGJq+B,EAAEO,GAAKozH,EAASzhJ,EAAEquB,GAAIqzH,EAlBtB,MAFMA,IAAc5zH,EAAEO,GAAK,YAqB7B,IACOP,CACT,CACA,IAAI6zH,EAAW/rJ,MAAMiI,QAAQmC,GACzB4hJ,EAAgB3mB,EAAIh1C,aAAajmF,GACrC,IAAK2hJ,GAAYC,IAAkB5hJ,EAAEqoF,OAASroF,EAAEqe,MAAO,CACrD,IAAI+pE,EAAQpoF,EAAEooF,MACd,OAAOq5D,EAAS,CACdp5D,MAAOroF,EAAEqoF,MACThqE,MAAOre,EAAEqe,MACT+pE,MAEE6yC,EAAI3zC,cAAcc,GAAS+lD,EAAU1oD,OAAO2C,GAE1CA,GAGHs5D,EACL,CACA,OAAIC,EACK3hJ,EAAE3K,KAAI,SAASlB,GACpB,OAAOstJ,EAASttJ,EAAGutJ,EACrB,IAEEE,EACK3mB,EAAI3J,UAAUtxH,EAAGi7H,EAAI31D,UAE1B21D,EAAIlb,SAAS//G,GAAWi7H,EAAI1Z,kBAAkBvhH,GAC3CA,CACT,CACA,IAAIrC,EAAM,CACR+qC,MAAOA,GAAQ,IAAIrzC,KAAI,SAASg5B,GAC9B,IAAIruB,EAAIyhJ,EAASpzH,GAIjB,OAHIizH,UACKthJ,EAAE6hJ,IAEJ7hJ,CACT,KAEF,IAAKshJ,IACH3jJ,EAAIs4D,OAASwrF,EAASxrF,GAClBsrF,GAAa,CACf,IAAIrP,EAAKj8E,EAAOg8E,MAChBt0I,EAAIs4D,OAAO0jD,SAAW,CACpBl5F,OAAQ,CACNzB,EAAGkzH,EAAGlzH,EACN7H,EAAG+6H,EAAG/6H,EACNiD,EAAG83H,EAAG93H,EACNE,EAAG43H,EAAG53H,GAGZ,CAIF,OAFI2nH,IAAQtkI,EAAIskI,OAASwf,EAASxf,IAC9Buf,IAAe7jJ,EAAIgD,OAAS8gJ,EAAS1uC,EAAG4Z,UAAU,IACpC,WAAXl6H,EAAsBkL,EAAM2L,KAAK5W,UAAUiL,EACpD,EACA8wI,EAAMqT,aAAe,SAAS/uC,EAAIgvC,GAChC,IAAI/zJ,EAAGgwG,EAAIkW,EACPwjC,EAAU3kC,EAAGggC,gBAAgB2E,QAC7BC,EAAa5kC,EAAGggC,gBAAgB4E,WACpC,IAAK3pJ,EAAI,EAAGA,EAAI+zJ,EAAW31J,OAAQ4B,IAEjC,QADAgwG,EAAK+jD,EAAW/zJ,IACL6C,MAQT,IAAK,UACHqjH,EAAQlW,EAAG7uG,MACX,IAAI6yJ,GAAWtK,EAAQ15C,EAAGruG,QAAU,CAAC,GAAGsH,KACpC21F,EAAUsnB,EAAMj9G,KACpBygJ,EAAQ15C,EAAGruG,OAASgoJ,EAAW/qD,GAAWsnB,EACtCtnB,IAAYo1D,WACPrK,EAAWqK,GAClBrK,EAAW/qD,GAAWsnB,GAExB,MACF,IAAK,SAEHyjC,GADAzjC,EAAQlW,EAAG7uG,OACM8H,MAAQi9G,EACzBwjC,EAAQjsF,OAAOuyC,EAAGruG,MAAO,EAAGukH,GAC5B,MACF,IAAK,gBAEIyjC,GADPzjC,EAAQwjC,EAAQ15C,EAAGruG,QACKsH,MACxBygJ,EAAQjsF,OAAOuyC,EAAGruG,MAAO,GAI/B,OAAOw7H,QAAQ3uF,SACjB,EACAiyG,EAAMwT,aAAe,SAASlvC,EAAImvC,GAChC,IACIl0J,EAAGm0J,EAAcC,EAAYC,EAD7BC,EAAcvvC,EAAGggC,gBAAgB4E,WAErC,IAAKuK,EACH,MAAM,IAAInkJ,MAAM,kDAElB,IAAIwkJ,EAAWD,EAAYJ,EAAU5oJ,YACrC,IAAKipJ,EACH,OAAO,EAIT,IAFA,IAAIC,EAAa,CAACD,GACdE,EAAiB,CAACF,EAAStrJ,MACxBsrJ,EAAS7hB,YAAc6hB,EAAWD,EAAYC,EAAS7hB,UAAUpnI,eACvB,IAA3CmpJ,EAAehzJ,QAAQ8yJ,EAAStrJ,OACpCurJ,EAAW71J,KAAK41J,GAChBE,EAAe91J,KAAK41J,EAAStrJ,MAG/B,IADA,IAAImH,EAAS,CAAC,EACPmkJ,EAAWC,EAAWr7F,OAI3B,GAHIo7F,EAAStsF,SACX73D,EAAO63D,OAASw4E,EAAMiU,aAAatkJ,EAAO63D,OAAQssF,EAAStsF,SAEzDssF,EAAS75G,KAAM,CAKjB,GAJKtqC,EAAOsqC,OACVtqC,EAAOsqC,KAAO,MAEhBy5G,EAAeI,EAASztC,QAGtB,IADAqtC,EAAe,GACVn0J,EAAI,EAAGA,EAAIu0J,EAAS75G,KAAKt8C,OAAQ4B,IACpCm0J,EAAan0J,GAAKA,EAMtB,IAHKoQ,EAAO02G,SACV12G,EAAO02G,OAAS,IAEb9mH,EAAI,EAAGA,EAAIu0J,EAAS75G,KAAKt8C,OAAQ4B,SAEjB,KADnBo0J,EAAaD,EAAan0J,KACkB,OAAfo0J,KAIV,KADnBC,EAAYjkJ,EAAO02G,OAAOrlH,QAAQ2yJ,MAEhCC,EAAYjkJ,EAAOsqC,KAAKt8C,OACxBgS,EAAO02G,OAAOutC,GAAaD,GAE7BhkJ,EAAOsqC,KAAK25G,GAAa5T,EAAMkU,YAAYvkJ,EAAOsqC,KAAK25G,GAAYE,EAAS75G,KAAK16C,IAErF,CAEF,OAAOoQ,CACT,EACAqwI,EAAMmU,mBAAqB,SAAS7vC,GAGlC,IAFA,IAAI59G,EAAO49G,EAAGggC,gBAAgB4E,WAAa,CAAC,EACxC1V,EAASlvB,EAAGggC,gBAAgB2E,QACvB1pJ,EAAI,EAAGA,EAAIi0I,EAAO71I,OAAQ4B,IAAK,CACtC,IAAIkmH,EAAQ+tB,EAAOj0I,GACfkmH,GAASA,EAAMj9G,OACjB9B,EAAK++G,EAAMj9G,MAAQi9G,EAEvB,CACF,EACAu6B,EAAMoU,2BAA6B,SAAS3sB,EAAMx/B,EAAKosD,GACrD,IAAIC,EAAeC,EAAch1J,EAAGiG,EAAYgvJ,EAAUC,EAAcC,EACpElyJ,EAAOgqI,EAAIhkC,mBAAmB,CAAC,EAAGP,GAAO,CAAC,GAC1C0sD,EAAcnoB,EAAIhF,kBAAkBhlI,GACpCoyJ,EAAe,CAAC,EACpB,GAAIP,GAAkBA,EAAe12J,OACnC,IAAK4B,EAAI,EAAGA,EAAI80J,EAAe12J,OAAQ4B,SAGhB,KADrBg1J,GADAD,EAAgB9nB,EAAIhvC,eAAem3D,EAAaN,EAAe90J,KAClC8G,OAE3BmmI,EAAIhvC,eAAeo3D,EAAcP,EAAe90J,IAAI+G,IAAI,OAExDguJ,EAAchuJ,IAAI,MAClBkmI,EAAIhvC,eAAeo3D,EAAcP,EAAe90J,IAAI+G,IAAIiuJ,IAK9D,GADA9sB,EAAO+E,EAAIhkC,mBAAmBi/B,GAAQ,CAAC,EAAGktB,GACtCN,GAAkBA,EAAe12J,OACnC,IAAK4B,EAAI,EAAGA,EAAI80J,EAAe12J,OAAQ4B,IAGrC,GADAk1J,EADUjoB,EAAIhvC,eAAeo3D,EAAcP,EAAe90J,IACnC8G,MACvB,CAOA,IALAquJ,GADAF,EAAWhoB,EAAIhvC,eAAeiqC,EAAM4sB,EAAe90J,KAC1B8G,MACpBc,MAAMiI,QAAQslJ,KACjBA,EAAgB,GAChBF,EAASluJ,IAAIouJ,IAEVlvJ,EAAI,EAAGA,EAAIivJ,EAAa92J,OAAQ6H,IAAK,CACxC,IAAIqvJ,EAASJ,EAAajvJ,GACLkvJ,EAAclvJ,GAApB,OAAXqvJ,EAAoC,KAEnB7U,EAAMoU,2BAA2BM,EAAclvJ,GAAIqvJ,EAE1E,CACAL,EAASluJ,IAAIouJ,EAdc,CAiB/B,OAAOjtB,CACT,EACAuY,EAAM8U,oBAAsB,CAAC,aAAc,cAC3C9U,EAAMnyB,sBAAwByC,EAASzC,sBACvCmyB,EAAMkU,YAAc,SAASa,EAAWC,GACtC,OAAOhV,EAAMoU,2BAA2BW,EAAWC,EAAUhV,EAAM8U,oBACrE,EACA9U,EAAMiU,aAAe,SAASgB,EAAYC,GACxC,OAAOlV,EAAMoU,2BAA2Ba,EAAYC,EAAWlV,EAAMnyB,sBACvE,EACAmyB,EAAMvrI,WAAa,SAAS6vG,EAAIrqE,EAAMutB,EAAQ6+C,EAAQ8uC,EAAWtD,GAC/D,IAAI9xD,EAAO,CAAEve,OAAQ2zE,EAAU3zE,QAC3B4zE,EAAqB,CAAC,EACtBC,EAAU,GAuFd,OAtFAt1D,EAAKkyD,UAAY,WAGf,IAFA,IAAIqD,EAAanuJ,MAAMiI,QAAQ6qC,GAAQA,EAAKt8C,OAAS,EACjD+1J,EAAertC,EAAO9kH,MAAM,EAAG+zJ,GAC1B/1J,EAAI,EAAGA,EAAIm0J,EAAa/1J,OAAQ4B,IAAK,CAC5C,IAAIg2J,EAAW7B,EAAan0J,GAExB01G,EADQqP,EAAGs5B,UAAU2X,GACLtgD,QACpB,GAAKA,EAAL,CACA,GAAIA,EAAQu/B,WAAY,CACtB,IAAI/sH,EAAIwtF,EAAQyX,eAAelkH,KAC1B4sJ,EAAmB3tI,KAAI2tI,EAAmB3tI,GAAK,IACpD2tI,EAAmB3tI,GAAGvpB,KAAKq3J,EAC7B,CACAjxC,EAAGrqE,KAAKy5G,EAAan0J,IAAMygJ,EAAMkU,YAAY5vC,EAAGrqE,KAAKy5G,EAAan0J,IAAK06C,EAAK16C,GANtD,CAOxB,CACA,IAAIi2J,EAAehpB,EAAIhF,kBAAkBgF,EAAIhkC,mBAAmB,CAAC,EAAGhhC,IAChEiuF,EAAa,mBACjB,IAAK,IAAIj7G,KAAQg7G,EACVC,EAAW9wI,KAAK61B,WACdg7G,EAAah7G,GAAMpG,MAE5B4rG,EAAMiU,aAAa3vC,EAAG98C,OAAQguF,UACvBlxC,EAAGw4B,SACVkD,EAAM5xB,eAAe9J,GACrB07B,EAAM0V,WAAWpxC,GACjB,IAAI2/B,EAAYzX,EAAIhF,kBAAkBhgE,GACtC,GAAIy8E,EAAW,CACb,IAAI90B,EAAW7K,EAAGonB,YAAYsX,OAC9B,IAAK,IAAIv9I,KAAK0pH,EAAU,CACtB,IAAI46B,EAAW56B,EAAS1pH,GACpBkjH,EAAKohC,EAAS9W,MACdpqB,EAAKkhC,EAAS7W,MACdyiB,EAAMhtC,EAAGv0E,MAAM7yC,QACfq0J,EAAM/sC,EAAGz0E,MAAM7yC,QACfs0J,EAAM,KACNC,EAAM,KACNC,EAAQ,KACRC,EAAQ,KACR7uJ,MAAMiI,QAAQ60I,EAAUt7B,EAAGstC,MAAQ,WACrCJ,EAAM5R,EAAUt7B,EAAGstC,MAAQ,UAAU10J,QAC5B4F,MAAMiI,SAAS60I,EAAUt7B,EAAGstC,QAAU,CAAC,GAAG7hH,SACnDyhH,EAAM5R,EAAUt7B,EAAGstC,OAAO7hH,MAAM7yC,SAE9B4F,MAAMiI,QAAQ60I,EAAUp7B,EAAGotC,MAAQ,WACrCH,EAAM7R,EAAUp7B,EAAGotC,MAAQ,UAAU10J,QAC5B4F,MAAMiI,SAAS60I,EAAUp7B,EAAGotC,QAAU,CAAC,GAAG7hH,SACnD0hH,EAAM7R,EAAUp7B,EAAGotC,OAAO7hH,MAAM7yC,SAE9Bo0J,GAAOE,IAAQltC,EAAGutC,IAAIP,EAAI,MAAQhtC,EAAGutC,IAAIL,EAAI,KAAOltC,EAAGutC,IAAIP,EAAI,MAAQhtC,EAAGutC,IAAIL,EAAI,OACpFE,EAAQ,CAAEJ,MAAKE,QAEbD,GAAOE,IAAQjtC,EAAGqtC,IAAIN,EAAI,MAAQ/sC,EAAGqtC,IAAIJ,EAAI,KAAOjtC,EAAGqtC,IAAIN,EAAI,MAAQ/sC,EAAGqtC,IAAIJ,EAAI,OACpFE,EAAQ,CAAEJ,MAAKE,SAEbC,GAASC,IACXX,EAAQn3J,KAAKsuI,EAAInkC,WAAW,CAAE0hD,YAAYgM,EAAOC,GAErD,CACF,CACA,OAAOt5B,QAAQ3uF,SACjB,EACAgyD,EAAKyyD,MAAQ,SAASF,GACpB,IAAI6D,EAGA52J,EAFAs2I,EAAkBvxB,EAAGonB,YAAYoK,iBACjCsgB,EAAoBf,EAAQ13J,OAEhC,GAAI6pE,EACF,IAAKjoE,EAAI,EAAGA,EAAIs2I,EAAgBl4I,OAAQ4B,IAClCs2I,EAAgBt2I,GAAG82J,gBACrBxgB,EAAgBt2I,GAAG82J,eAAe/xC,EAAI+wC,EAASxD,EAAgBS,GAWrE,IAAK,IAAI7qI,KAPL2uI,IACFD,EAAsB3pB,EAAInkC,WAAW,CAAC,EAAGwpD,IACrBl9I,SAAW,SACxBygJ,EAAmBlO,WAE1BiP,EAAsBtE,EAEVuD,EAAoB,CAChC,IAAI1B,EAAe0B,EAAmB3tI,GACxB68F,EAAGs5B,UAAU8V,EAAa,IAAIz+C,QACpCyX,eAAe0wB,KAAK94B,EAAIovC,EAAcyC,EAAqB7D,EACrE,CACF,EACOV,EAAYttC,EAAIutC,EAAgB9xD,EACzC,EACAigD,EAAMsW,oBAAsB,SAAShyC,EAAIiyC,EAAcC,EAAe1S,GACpE,IAAIlO,EAAatxB,EAAGonB,YAChBmmB,EAAiBjc,EAAWnhI,WAC5BsrF,EAAO,CAAC,EACRs1D,EAAU,GA8Ed,OA7EAt1D,EAAKkyD,UAAY,WACf,IAAI9iC,EAAWymB,EAAWoN,OAI1B,IAAK,IAAIv9I,KAHTs6F,EAAKve,QAAS,EACY,SAAtB+0E,EAAa3rJ,OAAiBm1F,EAAKve,QAAS,GACrB,SAAvBg1E,EAAc5rJ,OAAiBm1F,EAAKve,QAAS,GACnC2tC,EAAU,CACtB,IAAI46B,EAAW56B,EAAS1pH,GACpBkjH,EAAKohC,EAAS9W,MACdpqB,EAAKkhC,EAAS7W,MACdyiB,EAAM7R,EAAcn7B,EAAGstC,OAAO7hH,MAAM7yC,QACpCq0J,EAAM9R,EAAcj7B,EAAGotC,OAAO7hH,MAAM7yC,QACpCs0J,EAAMltC,EAAGv0E,MAAM7yC,QACfu0J,EAAMjtC,EAAGz0E,MAAM7yC,QACnBonH,EAAG8tC,WACH5tC,EAAG4tC,WACH,IAAIV,EAAQ,KACRC,EAAQ,KACRrtC,EAAGutC,IAAIP,EAAI,MAAQhtC,EAAGutC,IAAIL,EAAI,KAAOltC,EAAGutC,IAAIP,EAAI,MAAQhtC,EAAGutC,IAAIL,EAAI,MACrEE,EAAQ,CAAEJ,MAAKE,QAEbhtC,EAAGqtC,IAAIN,EAAI,MAAQ/sC,EAAGqtC,IAAIJ,EAAI,KAAOjtC,EAAGqtC,IAAIN,EAAI,MAAQ/sC,EAAGqtC,IAAIJ,EAAI,MACrEE,EAAQ,CAAEJ,MAAKE,SAEbC,GAASC,IACXX,EAAQn3J,KAAKsuI,EAAInkC,WAAW,CAAE0hD,YAAYgM,EAAOC,GAErD,CACA,OAAOt5B,QAAQ3uF,SACjB,EACAgyD,EAAKyyD,MAAQ,SAASF,GAQpB,IAPA,IAGIoE,EACAP,EACAf,EALA9H,EAAWhpC,EAAGs5B,UAEd/H,EADcvxB,EAAGonB,YACaoK,iBAI9B6gB,EAAkB,GACbp3J,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IACnCo3J,EAAgBz4J,KAAKqB,GAEvB,SAAS82J,IACP,GAAK/xC,EAAGonB,YACR,IAAK,IAAIlmI,EAAI,EAAGA,EAAIqwI,EAAgBl4I,OAAQ6H,IACtCqwI,EAAgBrwI,GAAG6wJ,gBACrBxgB,EAAgBrwI,GAAG6wJ,eAAe/xC,EAAI+wC,EAASqB,EAAoBpE,EAGzE,CACA,SAASsE,IACP,GAAKtyC,EAAGonB,YACR,IAAK,IAAIlmI,EAAI,EAAGA,EAAIqwI,EAAgBl4I,OAAQ6H,IAC1CqwI,EAAgBrwI,GAAG43I,KAAK94B,EAAI8wC,EAAoBe,EAAqB7D,EAEzE,CACI+C,EAAQ13J,QAAU44J,EAAa3rJ,KACD,iBAA5BinJ,EAAensC,UACjBgxC,EAAqBlqB,EAAInkC,WAAW,CAAC,EAAGwpD,EAAgB,CAAEl9I,SAAU,IACpEygJ,EAAqBuB,EACrBR,EAAsBtE,EACtBj3H,WAAWy7H,EAAgBxE,EAAel9I,UAC1CiiJ,MAEAF,EAAqB7E,EACrBuD,EAAqB,KACrBe,EAAsB3pB,EAAInkC,WAAW,CAAC,EAAGwpD,EAAgB,CAAEl9I,SAAU,IACrEimB,WAAWg8H,EAAkBF,EAAmB/hJ,UAChD0hJ,KAEOhB,EAAQ13J,QACjB+4J,EAAqB7E,EACrBwE,KACSE,EAAa3rJ,OACtBwqJ,EAAqBuB,EACrBR,EAAsBtE,EACtB+E,IAEJ,EACOhF,EAAYttC,EAAIutC,EAAgB9xD,EACzC,EAoFAigD,EAAM0V,WAAa,SAASpxC,EAAI+B,GAC9B,IAGI1M,EAAO1E,EAAS11G,EAAGiG,EAHnB4kJ,EAASvK,EAAQpwG,KAAK60E,GACtBgpC,EAAWhpC,EAAGs5B,UACdhI,EAAatxB,EAAGonB,YAEhBoR,EAAW,IAAI31I,MAAMmmJ,EAAS3vJ,QAC9B0mJ,GAAe//B,EAAGw4B,UAAY,IAAIv7I,QAYtC,IAXA+iH,EAAGw4B,SAAWA,EACdlH,EAAWihB,UAAY,EACvBjhB,EAAWkhB,YAAc,EACzBlhB,EAAWmhB,uBAAyB,CAAC,EACrCzyC,EAAG+pC,YAAc,EACjB/pC,EAAG8pC,YAAc,EACjBxY,EAAWohB,aAAe,CAAC,EAC3BphB,EAAWqhB,kBAAoB,CAAC,EAChCrhB,EAAWshB,iBAAmB,CAAC,EAC/BthB,EAAWuhB,gBAAkB,CAAC,EAC9BvhB,EAAWwhB,oBAAsB,CAAC,EAC7B73J,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IAC3B4H,MAAMiI,QAAQi3G,KAAkC,IAAvBA,EAAOrlH,QAAQzB,KAC1Cu9I,EAASv9I,GAAK8kJ,EAAY9kJ,IAI9B,IAAKA,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,KAC/Bo6G,EAAQ2zC,EAAS/tJ,IACXypJ,YAAcrJ,EAAWzK,oBAAoBv7B,GACnDA,EAAM09C,UAAY,CAAC,EAErB,IAAIC,EAAW1hB,EAAWmF,UAAUwc,OAAS,GAC7C,IAAKh4J,EAAI,EAAGA,EAAI+3J,EAAS35J,OAAQ4B,IAC/B6qJ,EAAOlsJ,KACL03I,EAAW0hB,EAAS/3J,IAAIi4J,WACxB5hB,EAAW0hB,EAAS/3J,IAAIk4J,aAG5B,IAAK,IAAIhyJ,KAAKmwI,EAAWsQ,WAAY,CACnC,IAAIwR,EAAQ9hB,EAAWnwI,IACH,IAAhBiyJ,EAAMC,eACDD,EAAME,YACNF,EAAMG,KAEjB,CACA,IAAI3pC,GAAmB,EACvB,SAAS4pC,EAAe18G,GAGtB,GAFAu+D,EAAQ2zC,EAASlyG,GACjB65D,EAAU0E,EAAM1E,SACM,IAAlB0E,EAAM9N,SAAoB8N,EAAMo+C,WAAY,CAC9C,GAAI9iD,GAAWA,EAAQ+iD,KAAM,CAC3B,IAAIC,EAAMhjD,EAAQ+iD,KAAK1zC,EAAI3K,GACvBs+C,EAAI,IAAMA,EAAI,GAAGpsI,GAAKosI,EAAI,GAAGpsI,EAAEqsI,eAC1BD,EAAI,GAAGpsI,EAAEqsI,OAAOC,KAE3B,CACA,IAAK3yJ,EAAI,EAAGA,EAAIm0G,EAAMo+C,WAAWp6J,OAAQ6H,IAAK,CAC5C,IAAIuqB,EAAY4pF,EAAMo+C,WAAWvyJ,IACjCyvG,EAAUmjD,mBAAmBroI,EAAU3tB,QACxB6yG,EAAQkZ,gBACrBxU,EAAMkvC,mBAAoB,EAC1B36B,GAAmB,EACnBjZ,EAAQkZ,cAAc7J,EAAI3K,EAAO5pF,GAErC,CACF,CACF,CACA,SAASsoI,EAAMj9G,EAAIk9G,GAGjB,GAFA3+C,EAAQ2zC,EAASlyG,MACjB65D,EAAU0E,EAAM1E,SACFqjD,cAAgBA,EAA9B,CACA,IAAIt6B,EAAK,GACT,IAAsB,IAAlBrkB,EAAM9N,SAAsC,IAAlB8N,EAAM8kB,QAAe,QAC1C9kB,EAAM6rB,eACb,IAAIuyB,EAAap+C,EAAMo+C,YAAc,GACrC,IAAKvyJ,EAAIuyJ,EAAWp6J,OAAS,EAAG6H,GAAK,EAAGA,IACtC,GAAIuyJ,EAAWvyJ,GAAGi5I,QAAS,CACzB9kC,EAAM6rB,eAAiBuyB,EAAWvyJ,GAAGggI,eACrC,KACF,CAEEvwB,GAAWA,EAAQ+iD,OACrBh6B,EAAK/oB,EAAQ+iD,KAAK1zC,EAAI3K,GAE1B,CACKxyG,MAAMiI,QAAQ4uH,IAAQA,EAAG,KAC5BA,EAAK,CAAC,CAAEt4H,EAAGivF,EAAQhvF,EAAGgvF,KAEnBqpC,EAAG,GAAGnyG,IAAGmyG,EAAG,GAAGnyG,EAAI,CAAC,GACzBmyG,EAAG,GAAGrkB,MAAQA,EACdmjC,EAAS1hG,GAAM4iF,CApBkC,CAqBnD,CAEA,IADAu6B,EAAoBnO,EAAQkD,EAAU1X,GACjCr2I,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IAAK84J,EAAM94J,GAAG,GAC/C,IAAKA,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IAAKu4J,EAAev4J,GAErD,IADI2uH,GAAkBqqC,EAAoBnO,EAAQkD,EAAU1X,GACvDr2I,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IAAK84J,EAAM94J,GAAG,GAC/C,IAAKA,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IAAK84J,EAAM94J,GAAG,GAC/Ci5J,EAAiBl0C,GACjB,IAAIm0C,EAYN,SAAmCrO,EAAQ9lC,GACzC,IACI/kH,EAAGiG,EAAGC,EAAGijB,EAAG2W,EADZq5H,EAAiB,GAErB,SAASC,EAAaC,EAAOlO,EAAK12D,GAChC,IAAI6kE,EAAYnO,EAAIjI,IAAI76H,OAAO,GAC/B,GAAc,uBAAVgxI,EAAgC,CAClC,IAAIE,EAAkBpO,EAAIxH,aAAa,GACnCE,EAAYvD,EAAQzE,UAAU92B,EAAIw0C,GAClCC,EAA6B,MAAdF,GAAyC,MAApBC,GAA8C,aAAnB1V,EAAUhhJ,KACzE42J,EAA6B,MAAdH,GAAyC,MAApBC,GAA8C,aAAnB1V,EAAUhhJ,KAC7E,OAAO,SAASioE,EAAI4uF,GAClB,OAAW,IAAP5uF,GAAmB,IAAP4uF,GACZF,GAAgB1uF,IAAO2pB,EAAOilE,GAAIt7J,OAAS,GAC3Cq7J,GAAgBC,IAAOjlE,EAAOr2F,OAAS,GAFT,GAGZ,MAAdk7J,EAAoBI,EAAK5uF,GAAM,CACzC,CACF,CACE,OAAO,SAASA,EAAI4uF,GAClB,MAAqB,MAAdJ,EAAoBI,EAAK5uF,CAClC,CAEJ,CACA,IAAI6uF,EAAQ,CACVjyI,IAAK,SAASe,GACZ,OAAOwkH,EAAI7V,QAAQx2H,KAAK8mB,IAAK,KAAMe,EACrC,EACAhB,IAAK,SAASgB,GACZ,OAAOwkH,EAAI7V,QAAQx2H,KAAK6mB,IAAK,KAAMgB,EACrC,EACAupB,IAAK,SAASvpB,GACZ,OAAOwkH,EAAI7V,SAAQ,SAAShuG,EAAG4H,GAC7B,OAAO5H,EAAI4H,CACb,GAAG,KAAMvI,EACX,EACA2zG,MAAO,SAAS3zG,GACd,OAAOwkH,EAAI7V,SAAQ,SAAShuG,EAAG4H,GAC7B,OAAO5H,EAAI4H,CACb,GAAG,KAAMvI,EACX,EACAwpB,KAAM,SAASxpB,GACb,OAAOwkH,EAAIh7F,KAAKxpB,EAClB,EACA,iBAAkB,SAASA,GACzB,OAAOwkH,EAAI5V,cAAc5uG,EAC3B,EACA0pB,OAAQ,SAAS1pB,GACf,OAAOwkH,EAAI96F,OAAO1pB,EACpB,GAEF,SAASmxI,EAAcxwI,EAAG4H,GACxB,OAAO5H,EAAE,GAAK4H,EAAE,EAClB,CACA,SAAS6oI,EAAezwI,EAAG4H,GACzB,OAAOA,EAAE,GAAK5H,EAAE,EAClB,CACA,IAAKppB,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CAClC,IAAI26D,EAAKkwF,EAAO7qJ,GAChB,GAAgB,aAAZ26D,EAAG93D,KAAP,CACA,IAAI2E,EAAQmzD,EAAGm/F,cAActyJ,MAAMuyJ,GACnC,GAAIvyJ,EAAO,CACT,IAAIwyJ,EAAaxyJ,EAAM,GACnB+F,EAAQ/F,EAAM,GACdyzI,EAAWtgF,EAAGuoF,IAAI76H,OAAO,GACzB46H,EAAmB,MAAbhI,EACNgf,EAAkB,GACtB,IAAKh0J,EAAI,EAAGA,EAAI00D,EAAGu/F,YAAY97J,OAAQ6H,IACrCg0J,EAAgBt7J,KAAK,CAACg8D,EAAGu/F,YAAYj0J,GAAI,KAE3C,IAAKA,EAAI,EAAGA,EAAI00D,EAAGw/F,cAAc/7J,OAAQ6H,IAAK,CAC5C,IAAImuJ,EAAaz5F,EAAGw/F,cAAcl0J,GAC9B81I,EAAYh3B,EAAGs5B,UAAU+V,GAC7B,IAA0B,IAAtBrY,EAAUzvC,QAAd,CACA,IAAIzpG,EAAOk5I,EAAUl5I,KACjBkuH,EAASN,QAAQsrB,EAAW,sBACvBA,EAAUqe,yBACVre,EAAUse,mBAEnB,IAAIC,EAAmB,UAATz3J,EACV03J,EAAuB,cAAT13J,EACd47H,EAAK1Z,EAAGw4B,SAAS6W,GACrB,IAAKluJ,EAAI,EAAGA,EAAIu4H,EAAGrgI,OAAQ8H,IAAK,CAC9B,IACIs0J,EAAUr5J,EADVu3J,EAAMj6B,EAAGv4H,GAEb,GAAIo0J,EAAS,CACX,IAAIG,EAAwB1e,EAAU2e,SAAS//F,EAAGuoF,KAClD,IAAKD,EAAK,CACR,IAAI0X,EAAoB5e,EAAU6e,MAAMH,GAAuB,GAC3DE,IAAmBhgG,EAAKoqD,EAAGonB,YAAYmU,EAAQzF,QAAQ8f,IAC7D,CACA,IAAI3tC,EAAa0rC,EAAIt+C,MAAMxG,WAAW6mD,GAAuBhyI,OAC7D,IAAKU,EAAI,EAAGA,EAAI6jG,EAAW5uH,OAAQ+qB,IAEjC,IADAqxI,EAAW7/F,EAAGkgG,eAAe7tC,EAAW7jG,IACnC2W,EAAI,EAAGA,EAAI44H,EAAIt+C,MAAMxG,WAAWx1G,OAAQ0hC,IAC3C,GAAIA,IAAM26H,EAAV,CACA,IAAI7vF,EAAY8tF,EAAIt+C,MAAMxG,WAAW9zE,GACrCm6H,EAAgBO,GAAU,GAAG77J,KAAKisE,EAAUniD,OAAOU,GAFV,CAK/C,MAAO,GAAIoxI,EAAa,CACtB,IAAKpxI,EAAI,EAAGA,EAAIuvI,EAAIpsI,EAAEnmB,EAAE/H,OAAQ+qB,IAC1B85H,GACFuX,EAAW9B,EAAIpsI,EAAEnmB,EAAEgjB,GACnBhoB,EAAQu3J,EAAIpsI,EAAElmB,EAAE+iB,KAEhBqxI,EAAW9B,EAAIpsI,EAAElmB,EAAE+iB,GACnBhoB,EAAQu3J,EAAIpsI,EAAEnmB,EAAEgjB,IAElB8wI,EAAgBO,GAAU,GAAG77J,KAAKwC,GAEhCu3J,EAAIpsI,GAAKosI,EAAIpsI,EAAEqsI,eACVD,EAAIpsI,EAAEqsI,OAAOC,KAExB,MAAO,GAAIF,EAAIj/I,eAAe,KAAM,CAClCtY,EAAQu3J,EAAIryJ,EACZ,IAAIy0J,EAAU1B,EAAard,EAAUl5I,KAAM83D,EAAIx5D,GAC/C,IAAKgoB,EAAI,EAAGA,EAAIhoB,EAAM/C,OAAQ+qB,IAC5B,IAAK2W,EAAI,EAAGA,EAAI3+B,EAAMgoB,GAAG/qB,OAAQ0hC,KAC/B06H,EAAWM,EAAQh7H,EAAG3W,IACP,GAAG8wI,EAAgBO,GAAU,GAAG77J,KAAKwC,EAAMgoB,GAAG2W,GAGnE,MAUE,SARiB,KADjB06H,EAAW9B,EAAI5nI,KACU0pI,EAAW9B,EAAIzd,SAE1B,KADd95I,EAAQu3J,EAAIxvI,KACU/nB,EAAQu3J,EAAIr4H,QACpB,IAAVl/B,IAAkBA,EAAQ8hJ,EAAMyV,EAAItyJ,EAAIsyJ,EAAIvyJ,GAC3CyB,MAAMiI,QAAQ1O,KACKA,OAAR,IAAVA,EAA0B,GACjB,CAACA,IAEXgoB,EAAI,EAAGA,EAAIhoB,EAAM/C,OAAQ+qB,IAC5B8wI,EAAgBO,GAAU,GAAG77J,KAAKwC,EAAMgoB,GAG9C,CAhEwC,CAiE1C,CACAwxC,EAAGogG,iBAAmBd,EACtB,IAAIe,EAA4B,GAChC,IAAK/0J,EAAI,EAAGA,EAAIg0J,EAAgB77J,OAAQ6H,IACtC+0J,EAA0Br8J,KAAK,CAC7Bs7J,EAAgBh0J,GAAG,GACnB0zJ,EAAMK,GAAYC,EAAgBh0J,GAAG,MAGzC+0J,EAA0B3rI,KAAe,eAAV9hB,EAAyBssJ,EAAiBD,GACzEj/F,EAAGsgG,2BAA6BD,EAChCrgG,EAAGugG,mBAAqBF,EAA0B3zJ,KAAI,SAAS04B,GAC7D,OAAOA,EAAE,EACX,IACAo5H,EAAiBA,EAAexwJ,OAAOgyD,EAAGwgG,0BAC5C,CA9FoC,CA+FtC,CACA,OAAOhC,CACT,CAtKeiC,CAA0BvQ,EAAQ9lC,GAC/C,GAAIm0C,EAAO96J,OAAQ,CAGjB,IAFAi4I,EAAWihB,UAAY,EACvBjhB,EAAWkhB,YAAc,EACpBv3J,EAAI,EAAGA,EAAIk5J,EAAO96J,OAAQ4B,IAAK84J,EAAMI,EAAOl5J,IAAI,GACrD,IAAKA,EAAI,EAAGA,EAAIk5J,EAAO96J,OAAQ4B,IAAK84J,EAAMI,EAAOl5J,IAAI,GACrDi5J,EAAiBl0C,EACnB,CACAgM,EAASJ,mBAAmB,KAAM,OAAlCI,CAA0ChM,GAC1CgM,EAASJ,mBAAmB,YAAa,OAAzCI,CAAiDhM,EACnD,EACA,IAAIg1C,EAAiC,wEA4JrC,SAASf,EAAoBnO,EAAQkD,EAAU1X,GAC7C,IAAIglB,EAAW,CAAC,EAChB,SAASC,EAAS3gG,GAChBA,EAAG4gG,YACa,kBAAZ5gG,EAAG93D,MACL83D,EAAG6gG,mBAAmBzN,GAExBsN,EAAS1gG,EAAGuoF,KAAO,CACrB,CACAjW,EAAI3J,UAAUunB,EAAQyQ,GAEtB,IADA,IAAIG,EAAcplB,EAAWiG,kBAAoB,GACxCt8I,EAAI,EAAGA,EAAIy7J,EAAYr9J,OAAQ4B,IACtC,IAAK,IAAI46I,KAAQ6gB,EAAYz7J,GACtBq7J,EAASzgB,IACZ0gB,EAASjlB,EAAWiK,EAAQzF,QAAQD,IAI5C,CACA,SAASqe,EAAiBl0C,GACxB,IAGI/kH,EAAGiG,EAAGC,EAHNmwI,EAAatxB,EAAGonB,YAChBlf,EAAUopB,EAAW2P,gBACrB7+I,EAAO,CAAC,EAEZ,IAAKlB,EAAI,EAAGA,EAAIgnH,EAAQ7uH,OAAQ6H,IAAK,CACnC,IAAIyvG,EAAUuX,EAAQhnH,GAClBmD,EAAKssG,EAAQgmD,eACjB,GAAItyJ,EAAI,CACN,IAAIuyJ,EAASjmD,EAAQyX,eAAelkH,KAChC9B,EAAKw0J,GACP1uB,EAAIvgB,WAAWvlH,EAAKw0J,GAASvyJ,GAE7BjC,EAAKw0J,GAAU,CAACvyJ,EAEpB,CACF,CACA,IAAKlD,KAAKiB,EAAM,CACd,IAAIy0J,EAAUz0J,EAAKjB,GACf0pH,EAAWymB,EAAWmF,UAAUt1I,GACpC,GAAI0B,MAAMiI,QAAQ+/G,GAChB,IAAK5vH,EAAI,EAAGA,EAAI4vH,EAASxxH,OAAQ4B,IAAK,CACpC,IAAI67J,EAAKjsC,EAAS5vH,GACd87J,EAAe,cAAN51J,EAAoBmwI,EAAWoN,OAAOoY,GAAMxlB,EAAWwlB,GACpE,IAAK51J,EAAI,EAAGA,EAAI21J,EAAQx9J,OAAQ6H,IAC9B21J,EAAQ31J,GAAG8+G,EAAI+2C,EAAQD,EAE3B,MAEA,IAAK51J,EAAI,EAAGA,EAAI21J,EAAQx9J,OAAQ6H,IAC9B21J,EAAQ31J,GAAG8+G,EAGjB,CACF,CACA07B,EAAMkS,QAAU,SAAS5tC,GACnBA,EAAGonB,YAAY4vB,UACjBh3C,EAAGonB,YAAY4vB,UAEnB,EACAtb,EAAMub,OAAS,SAASj3C,GAClBA,EAAGonB,YAAY8vB,SACjBl3C,EAAGonB,YAAY8vB,SAEnB,EACAxb,EAAMmS,SAAW,SAAS7tC,GACxB,IAAIsxB,EAAatxB,EAAGonB,YAChB+vB,GAAMn3C,EAAG98C,QAAU,CAAC,GAAGk0F,WACvBC,EAAK/lB,EAAWgmB,oBACpBhmB,EAAWgmB,oBAAsBH,EACjC,IAAII,EAAkBjmB,EAAWkmB,WAAajhJ,KAAK5W,UAAUw3J,KAAQ5gJ,KAAK5W,UAAU03J,GACpFrrC,EAASJ,mBAAmB,aAAc,WAA1CI,CAAsDhM,EAAIu3C,EAC5D,EACA7b,EAAM+b,4BAA8B,SAASz3C,EAAI03C,EAASpf,EAAiBqf,GACzE,IAEI18J,EAFA28J,EAAeF,EAAQG,UACvBA,EAAY,CAAC,EAEjB,IAAK58J,EAAI,EAAGA,EAAIq9I,EAAgBj/I,OAAQ4B,IAAK,CAC3C,IAAI68J,EAAaxf,EAAgBr9I,GAC7Bo6G,EAAQyiD,EAAW,GAAGziD,MACtBA,EAAM9N,UACRswD,EAAUxiD,EAAMv3G,MAAQ+5J,EAAUxiD,EAAMv3G,OAAS,GACjD+5J,EAAUxiD,EAAMv3G,MAAMlE,KAAKk+J,GAE/B,CACA,IAAK,IAAIC,KAAiBH,EACxB,IAAKC,EAAUE,GAAgB,CAC7B,IAAIC,EAAgBJ,EAAaG,GAAe,GAChCC,EAAc,GAAG3iD,MACvB9N,SAAU,EACpBswD,EAAUE,GAAiB,CAACC,EAC9B,CAEF,IAAK,IAAIC,KAAcJ,EAAW,CAChC,IAAIjf,EAAiBif,EAAUI,GACjBrf,EAAe,GAAG,GAAGvjC,MAAM1E,QACjCmoC,KAAK94B,EAAI03C,EAASxvB,EAAI/K,cAAcyb,GAAiB+e,EAC/D,CACAD,EAAQG,UAAYA,CACtB,EACAnc,EAAMwc,aAAe,SAASC,EAAan4C,EAAI+B,EAAQwrC,EAAgB6K,GACrE,IAAIznD,EAAUqb,EAASP,UAAU0sC,GAC7BE,EAAW9f,EAAkBv4B,EAAGw4B,SAAU7nC,GAAS,GACvDA,EAAQmoC,KAAK94B,EAAIq4C,EAAU9K,EAAgB6K,EAC7C,EACA1c,EAAM4c,cAAgB,SAASH,EAAatY,EAAaH,EAAeE,EAAaJ,GACnF,IAAI+Y,EAAM/Y,EAAcqD,MAAQrD,EAAcqD,KAAKsV,GAC/C1wI,EAAMi4H,EAAcmD,MAAQnD,EAAcmD,KAAKsV,GAC/CI,IAAQ9wI,GACV+3H,EAAc,IAAM2Y,EAAc,SAASrkH,UAAU,WAAW3D,QAEpE,CACF,IAIEqoH,GAA2BtxH,EAAW,CACxC,oCAAoCt6B,GAElCA,EAAQynC,MAAQ,gCAChBznC,EAAQqnC,IAAM,6BACdrnC,EAAQunC,MAAQ,+BAChBvnC,EAAQ6rJ,SAAW,CACjBpkH,MAAOznC,EAAQqnC,IACf,cAAernC,EAAQunC,MAE3B,IAIEukH,GAAoBxxH,EAAW,CACjC,6BAA6Bt6B,EAASkuB,GAEpCA,EAAOluB,QAAU,CAGf+rJ,QAAS,CACPnlI,KAAM,EACN0qB,OAAQ,GACR5qB,MAAO,EACPC,OAAQ,EACRqlI,OAAQ,GACRvlI,IAAK,GAGPwlI,QAAS,CACPrlI,KAAM,EACN0qB,OAAQ,GACR5qB,MAAO,EACPC,OAAQ,EACRqlI,OAAQ,GACRvlI,IAAK,GAGPylI,QAAS,CACPtlI,KAAM,EACN0qB,OAAQ,GACR5qB,MAAO,EACPC,OAAQ,EACRqlI,OAAQ,GACRvlI,IAAK,GAGP0lI,aAAc,IAQdC,UAAW,GAGXC,UAAW,IACXC,cAAe,CACb1lI,KAAM,QACNF,MAAO,OACPD,IAAK,SACLE,OAAQ,OAGd,IAIE4lI,GAAyBjyH,EAAW,CACtC,4BAA4Bt6B,GAE1B,IAAIo+B,EAAKD,IACLm9F,EAAMtN,KACN0L,EAAe4B,EAAI5B,aACnB8yB,EAAkBZ,KAClBO,EAAeL,KAAoBK,aACnCM,EAAW,gCACfzsJ,EAAQ0sJ,gBAAkB,SAAS1/B,EAAU5Z,EAAIu5C,GAC/C,IAAI1tJ,EAAM+tH,EAAS3mH,OACfumJ,GAAO5/B,EAAS1jF,KAAK,eAAiB8pE,GAAMA,EAAG4Z,SAAStoB,aAAkC,qBAAZmoD,SAA2B5tJ,EAAIpJ,MAAM42J,GACnHx7J,EAASmtC,EAAGsI,OAAOsmF,EAASj8H,OAAOjC,YACvC,IAAImC,EAAOuyC,QAAX,CACA,IAAIspH,EAAW9/B,EAAS1jF,KAAK,SAAW0jF,EAAS1jF,KAAK,SAAS5yC,MAAM,KAAK,GAAK,OAiG/E,OAhGAo2J,GAAY,QACZ77J,EAAOi2C,UAAU,OAAS4lH,GAAUvpH,SACpCtyC,EAAOi2C,UAAU,KAAO4lH,EAAW,UAAUvpH,SAC7CypF,EAASt0G,MAAM,UAAW,MAAM4wB,KAAK,CAKnC,mBAAoBrqC,EACpB,YAAa,MAeX2tJ,GACDx5C,GAAMA,EAAGk8B,WAAa,IAAItiJ,KAAK,IAAIw+H,SAAQ,SAAS3uF,GACnDmwF,EAASt0G,MAAM,UAAW,QAC1B,IAAIxW,EAAWsU,SAASw2G,EAASj8H,OAAO2nB,MAAMxW,SAAU,IACpDlB,EAAS,CAAEkB,aA4ErB,SAAkB6qJ,EAAYC,EAASL,GACrC,IAOIM,EAAkBC,EAAgBC,EAA6BC,EAP/DC,EAAiB72I,UAClBq2I,QAAQ3xH,SAAW,IAAIxkC,MAAM,KAAK,IAErC,GAAuB,IAAnB22J,GAA2C,IAAnBA,EAA5B,CAKA,IAAIC,EAAa,WAMf,OALAJ,EAAiB5xB,EAAIjkC,cAAc,CAAC,EAAGw1D,QAAQU,IAAIvsJ,QACnDmsJ,EAA8BN,QAAQU,IAAIC,yBACF,IAApCX,QAAQU,IAAIC,sBACdX,QAAQU,IAAIC,oBAAsB,GAE7BX,QAAQU,IAAIE,OAAO,CACxBC,aAAc,OACdC,QAAS,CACPC,cAEFC,aAAc,QAElB,EACIC,EAAa,WACfZ,EAAiB5xB,EAAIjkC,cAAc,CAAC,EAAGw1D,QAAQ7rJ,QAC1C6rJ,QAAQ7rJ,OAAO4rJ,MAClBC,QAAQ7rJ,OAAO4rJ,IAAM,CAAC,GAExBC,QAAQ7rJ,OAAO4rJ,IAAIgB,WAAaA,CAClC,EACIG,EAAe,WAEjB,GAAyB,SADzBd,EAAmBJ,QAAQU,IAAIvsJ,OAAOgtJ,aAAaC,UAEjD,OAAOpB,QAAQU,IAAIW,YAAY,MAEnC,EACIC,EAAe,WAEQ,SADzBlB,EAAmBJ,QAAQ7rJ,OAAOotJ,QAAQt7J,UAExC+5J,QAAQ7rJ,OAAOotJ,QAAQt7J,OAAS,MAEpC,EACIu7J,EAAkB,WACpB,IAAIC,EAAW,eAAiBhzB,EAAI1J,QAAQ,CAAC,EAAG,IAM5C28B,GALJnB,EAAShvH,EAAGsI,OAAO,QAAQl2C,OAAO,OAAO84C,KAAK,CAAE9b,GAAI8gI,IAAY51I,MAAM,CACpE6M,WAAY,SACZ30B,SAAU,WACV,YAAao8J,EAAQ9qJ,SAAW,OAC/BmE,KAAwB0mJ,EAnDpBt9J,QAAQ++J,EAAU,SAAS/+J,QAAQg/J,EAAU,WAoD/B19J,OACrB,OAA0B,IAAnBs8J,EAAuBR,QAAQU,IAAImB,QAAQH,GAAW1B,QAAQ8B,QAAQ,CAACJ,GAChF,EACIK,EAAkB,WACpB,IAAI74B,EAAMq3B,EAAO1mH,OACI,IAAnB2mH,EAAuB,eAAiB,YAEtCt8J,GAAQglI,EAAIvyF,SAAW4pH,EAAO1mH,OAAO,OAAO31C,OAChD,GAAKA,EAGE,CACL,IACI89J,EADAC,EAAW/9J,EAAK48C,wBAGlBkhH,EADqB,IAAnBxB,EACUjvH,EAAGsI,OAAO,QAAQA,OAAO,uBAEzBqvF,EAAIrvF,OAAO,QAEzBimH,EAAU52B,EAAK84B,EAAWC,EAC5B,MAXExzB,EAAI1qF,IAAI,wCAAyCm8G,GACjDJ,IAWFS,EAAO7pH,QACT,EACIwrH,EAAiB,WACnB,GAAyB,QAArB9B,EACF,OAAOJ,QAAQU,IAAIW,YAAYjB,EAEnC,EACI+B,EAAiB,WACM,QAArB/B,IACFJ,QAAQ7rJ,OAAOotJ,QAAQt7J,OAASm6J,EAEpC,EACIgC,EAAe,WAIjB,YAHoC,IAAhC9B,IACFN,QAAQU,IAAIC,oBAAsBL,GAE7BN,QAAQU,IAAIE,OAAOP,EAC5B,EACIgC,EAAe,WACjBrC,QAAQ7rJ,OAASksJ,CACnB,EACuB,IAAnBG,EACFR,QAAQU,IAAI4B,MACV7B,EACAS,EACAM,EACAO,EACAG,EACAE,GAE0B,IAAnB5B,IACTS,IACAK,IACAtB,QAAQuB,QAAQgB,eAChBvC,QAAQuB,QAAQzxH,QAAQR,MAAK,WAC3BkyH,IACAO,IACAI,IACAE,GACF,IAtGF,MAFE5zB,EAAI5yB,KAAK,sBAAuBmkD,QAAQ3xH,QA0G5C,CA1LMm0H,CAASzC,EAAI,GAAI5rJ,GAAQ,SAASsuJ,EAAQC,EAAYC,GACpDv+J,EAAOi2C,UAAU,OAAS4lH,GAAUvpH,SACpCtyC,EAAOi2C,UAAU,KAAO4lH,EAAW,UAAUvpH,SAC7C,IAAIksH,EAASH,GAAUA,EAAO5oH,OAAO,OACrC,IAAK+oH,IAAWA,EAAO1+J,OAGrB,OAFA2+J,SACA7yH,IAGF,IAAI8yH,EAAe1+J,EAAOT,OAAO,KAAKi5C,QAAQqjH,EAAW,UAAU,GAAMxjH,KAAK,CAC5E,iBAAkB,OAClB,mBAAoBrqC,EACpB,YAAa,MAEf0wJ,EAAa5+J,OAAO9C,YAAYwhK,EAAO1+J,QACnCw+J,GAAcA,EAAWx+J,QAC3B0+J,EAAO1+J,OAAOhE,aACZwiK,EAAWx+J,OAAO6+J,WAAU,GAC5BH,EAAO1+J,OAAOjE,YAGlB,IAAIyjD,EAAKi/G,EAAStsJ,MACd0jE,EAAK4oF,EAASrsJ,OAClBssJ,EAAOnmH,KAAK,CACVwmG,MAAOgd,EACP3pJ,OAAQyjE,EACRipF,oBAAqB,kBACpBn3I,MAAM,CAAE2M,SAAU,UAAW,iBAAkB,SAClD,IAAIhiB,EAAO2pH,EAASj8H,OAAO2nB,MAAMrV,MAAQ,QACrC+rB,EAAIqgI,EAAO/oH,OAAO,KACtBtX,EAAEka,KAAK,CAAEjmC,OAAM27F,OAAQ37F,IACvB,IAAI4qD,EAAK7+B,EAAEr+B,OAAO48C,wBACd3e,EAAIi/B,EAAG/qD,MACPhE,EAAI+uD,EAAG9qD,QACP6rB,EAAIuhB,GAAMrxC,EAAI0nE,KAChB6oF,EAAO/2I,MAAM,WAAY,UAEzBsW,GADAi/B,EAAKwhG,EAAO1+J,OAAO48C,yBACZzqC,MACPhE,EAAI+uD,EAAG9qD,QAET,IAAI3O,GAAKw4H,EAAS1jF,KAAK,KACnB70C,GAAKu4H,EAAS1jF,KAAK,KAEnB0F,IADa9sC,GAAY8qH,EAASj8H,OAAO48C,wBAAwBxqC,QAC9C,EACvB,GAAoB,MAAhB2pJ,EAAS,GACX6C,EAAarmH,KAAK,CAChBzqB,UAAW,UAAY,EAAE,GAAIrqB,EAAGC,GAAK,IAAMilI,GAAc1qG,EAAI,EAAGggB,EAAK9vC,EAAI,UAEtE,GAAoB,MAAhB4tJ,EAAS,GAClBr4J,EAAIu6C,EAAK9vC,EAAI,OACR,GAAoB,MAAhB4tJ,EAAS,IAA6C,IAA/BA,EAASh9J,QAAQ,UACjD0E,EAAI,EACJC,EAAIu6C,MACC,CACL,IAAIoqG,EAASpsB,EAAS1jF,KAAK,eAC3B90C,GAAQw6B,GAAgB,WAAXoqH,EAAsB,GAAiB,QAAXA,EAAmB,EAAI,GAChE3kJ,EAAIA,EAAIu6C,EAAK9vC,EAAI,CACnB,CACAuwJ,EAAOnmH,KAAK,CACV90C,IACAC,MAEEk4J,GAAWA,EAAUz2J,KAAK82H,EAAU2iC,GACxC9yH,EAAQ8yH,EACV,GACF,KACKD,IACA1iC,CAlGmB,CAa1B,SAAS0iC,IACFz+J,EAAOuyC,UACVspH,EAAW9/B,EAAS1jF,KAAK,SAAW,QACpCr4C,EAAOy1C,OAAO,OAASomH,GAAUvpH,UAEnCypF,EAAS3mH,KAAK,IAAIqS,MAAM,cAAe,OACvC,IAAIo3I,EA0TR,SAAsBC,EAAe9wJ,GACnCA,EAAMA,EAAIxP,QAAQugK,EAAU,KAC5B,IAEIC,EAFAH,GAAU,EACVI,EAAY,GAEZC,GAAe,EACnB,SAASC,IACPD,IACA,IAAIE,EAAWviK,SAAS26C,gBAAgB+jH,EAAgBnlH,IAAK,SAC7DjJ,EAAGsI,OAAO2pH,GAAU/mH,KAAK,CACvBwmG,MAAO,OACP9gG,GAAImhH,EAAchE,EAAe,OAEnC4D,EAAc9hK,YAAYoiK,GAC1BJ,EAAcI,EACd,IAAIC,EAAeJ,EAEnB,GADAA,EAAY,CAAC,CAAEn/J,KAAMs/J,IACjBC,EAAa7jK,OAAS,EACxB,IAAK,IAAIy9C,EAAK,EAAGA,EAAKomH,EAAa7jK,OAAQy9C,IACzCqmH,EAAUD,EAAapmH,GAG7B,CACA,SAASqmH,EAAUC,GACjB,IAEI3xH,EAFA3tC,EAAOs/J,EAAUt/J,KACjBu/J,EAAY,CAAC,EAEjB,GAAa,MAATv/J,EAAc,CAChB2tC,EAAW,IACX,IAAIvsB,EAASk+I,EAAUl+I,OACnBo+I,EAAQF,EAAUG,KAClBC,EAAQJ,EAAUI,MAClBF,IACFD,EAAY,CACV,mBAA+B,WAAXn+I,GAA4C,MAArBA,EAAOoE,OAAO,GAAa,MAAQ,UAC9EpE,SACA,mBAAoBo+I,GAElBE,IACFH,EAAUI,QAAU,sDAAwDD,EAAQ,oBAG1F,MAAO/xH,EAAW,QACd2xH,EAAU93I,QAAO+3I,EAAU/3I,MAAQ83I,EAAU93I,OACjD,IAAIo4I,EAAUhjK,SAAS26C,gBAAgB+jH,EAAgBnlH,IAAKxI,GAC5D,GAAa,QAAT3tC,GAA2B,QAATA,EAAgB,CACpC6/J,EAAYd,EAAae,GACzBf,EAAYhiK,YAAY6iK,GACxB,IAAIG,EAAWnjK,SAAS26C,gBAAgB+jH,EAAgBnlH,IAAK,SAC7D0pH,EAAYE,EAAUD,GACtB5yH,EAAGsI,OAAOuqH,GAAU3nH,KAAK,KAAM4nH,EAAShgK,IACxCu/J,EAAUzhH,GAAKmiH,EAASjgK,GACxB++J,EAAYhiK,YAAY6iK,GACxBb,EAAYhiK,YAAYgjK,EAC1B,MACEhB,EAAYhiK,YAAY6iK,GAE1B1yH,EAAGsI,OAAOoqH,GAASxnH,KAAKmnH,GACxBR,EAAcO,EAAUz/J,KAAO+/J,EAC/BZ,EAAUljK,KAAKwjK,EACjB,CACA,SAASO,EAAYhgK,EAAMsV,GACzBtV,EAAK9C,YAAYH,SAASI,eAAemY,GAC3C,CACA,SAAS+qJ,EAASlgK,GAChB,GAAyB,IAArBg/J,EAAUzjK,OAAd,CAIA,IAAI4kK,EAAYnB,EAAU1oG,MACtBt2D,IAASmgK,EAAUngK,MACrBoqI,EAAI1qF,IAAI,cAAgBygH,EAAUngK,KAAO,2BAA6BA,EAAO,8BAA+B+N,GAE9GgxJ,EAAcC,EAAUA,EAAUzjK,OAAS,GAAGsE,IAL9C,MAFEuqI,EAAI1qF,IAAI,iCAAmC1/C,EAAO,KAAM+N,EAQ5D,CACA,IAAIqyJ,EAAWC,EAAO99I,KAAKxU,GACvBqyJ,EAAUlB,KAEZH,EAAcF,EACdG,EAAY,CAAC,CAAEn/J,KAAMg/J,KAGvB,IADA,IAAI1lE,EAAQprF,EAAIvI,MAAM86J,GACbnjK,EAAI,EAAGA,EAAIg8F,EAAM59F,OAAQ4B,IAAK,CACrC,IAAIojK,EAAQpnE,EAAMh8F,GACdwH,EAAQ47J,EAAM57J,MAAM67J,GACpBC,EAAU97J,GAASA,EAAM,GAAGsH,cAC5By0J,EAAWC,EAAWF,GAC1B,GAAgB,OAAZA,EACFvB,SACK,QAAiB,IAAbwB,EACTb,EAAYd,EAAa6B,EAAgBL,SAEzC,GAAI57J,EAAM,GACRu7J,EAASO,OACJ,CACL,IAAIx7C,EAAQtgH,EAAM,GACdk8J,EAAW,CAAE7gK,KAAMygK,GACnBz4J,EAAM84J,EAAe77C,EAAO87C,GAMhC,GALI/4J,GACFA,EAAMA,EAAIzJ,QAAQyiK,EAAY,YAC1BN,IAAU14J,GAAO,IAAM04J,IAClBA,IAAU14J,EAAM04J,GACvB14J,IAAK64J,EAASr5I,MAAQxf,GACV,MAAZy4J,EAAiB,CACnB7B,GAAU,EACV,IAAIa,EAAOqB,EAAe77C,EAAOg8C,GACjC,GAAIxB,EAAM,CACR,IAAIyB,EAAWC,EAAa1B,GACxByB,IACFL,EAASpB,KAAOyB,EAChBL,EAASz/I,OAAS0/I,EAAe77C,EAAOm8C,IAAgB,SACxDP,EAASnB,MAAQoB,EAAe77C,EAAOo8C,GAE3C,CACF,CACAhC,EAAUwB,EACZ,CAEJ,CACA,OAAOjC,CACT,CAlbkB0C,CAAaxlC,EAASj8H,OAAQkO,GACxC6wJ,GACF9iC,EAASt0G,MAAM,iBAAkB,OAEnC1Y,EAAQyyJ,aAAazlC,GACjB2/B,GAAWA,EAAUz2J,KAAK82H,EAChC,CA0EF,EACA,IAAIwhC,EAAW,kBACXC,EAAW,kBAIXb,EAAa,CAAC,CAAC,IAAK,KAAM,CAAC,MAAO,QAiHlCiE,EAAa,CAIfa,IAAK,gBACLC,IAAK,gBACLp7I,EAAG,+BACHyD,EAAG,4BACHqE,EAAG,mBACHhxB,EAAG,oBACHopB,EAAG,iBACH4rD,KAAM,GACNuvF,GAAI,sCAEFzB,EAAW,CACbwB,IAAK,QACLD,IAAK,UAEHxB,EAAW,CACbyB,IAAK,UACLD,IAAK,UAEH1B,EAAmB,SACnB6B,EAAY,CAAC,QAAS,SAAU,UAAW,QAAI,EAAQ,KACvD7C,EAAWhwJ,EAAQgwJ,SAAW,cAC9BwB,EAAa,aACbE,EAAU,6BACVH,EAAS,gBACbvxJ,EAAQ8yJ,WAAa,iBACrB,IAAIb,EAAa,mDACbE,EAAY,8CACZG,EAAc,oDACdC,EAAa,mDACjB,SAASP,EAAee,EAAM38I,GAC5B,IAAK28I,EAAM,OAAO,KAClB,IAAIl9J,EAAQk9J,EAAKl9J,MAAMugB,GACnB3X,EAAS5I,IAAUA,EAAM,IAAMA,EAAM,IACzC,OAAO4I,GAAUqzJ,EAAgBrzJ,EACnC,CACA,IAAIyzJ,EAAa,iBACjBlyJ,EAAQgzJ,UAAY,SAASD,EAAMlkE,GAUjC,IARA,IAAI1vF,OAAmB,KADvB0vF,EAAOA,GAAQ,CAAC,GACD1vF,MAAgC,IAAd0vF,EAAK1vF,IAAa0vF,EAAK1vF,IAAMikC,IAC1D6vH,OAAmC,IAArBpkE,EAAKokE,YAAyBpkE,EAAKokE,YAAc,CAAC,MAGhEC,EAAWH,EAAKr8J,MAAM86J,GACtB2B,EAAW,GACXC,EAAU,GACV57I,EAAI,EACCnpB,EAAI,EAAGA,EAAI6kK,EAASzmK,OAAQ4B,IAAK,CACxC,IAAI8wB,EAAI+zI,EAAS7kK,GACbwH,EAAQspB,EAAEtpB,MAAM67J,GAChBC,EAAU97J,GAASA,EAAM,GAAGsH,cAChC,GAAIw0J,GACoC,IAAlCsB,EAAYnjK,QAAQ6hK,KACtBwB,EAASnmK,KAAKmyB,GACdi0I,EAAUzB,OAEP,CACL,IAAI0B,EAAOl0I,EAAE1yB,OACb,GAAI+qB,EAAI67I,EAAOl0J,EACbg0J,EAASnmK,KAAKmyB,GACd3H,GAAK67I,OACA,GAAI77I,EAAIrY,EAAK,CAClB,IAAIm0J,EAAQn0J,EAAMqY,EACd47I,IAAwB,OAAZA,GAAoBE,GArB/BC,GAqBgDF,GArBhDE,IAsBHJ,EAAS3rG,MAEProD,EAxBCo0J,EAyBHJ,EAASnmK,KAAKmyB,EAAEjvB,OAAO,EAAGojK,EAzBvBC,GADI,OA4BPJ,EAASnmK,KAAKmyB,EAAEjvB,OAAO,EAAGojK,IAE5B,KACF,CACAF,EAAU,EACZ,CACF,CACA,OAAOD,EAASlgK,KAAK,GACvB,EACA,IAAIugK,EAAkB,CACpBrxF,GAAI,SACJsxF,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,KAAM,OACNC,MAAO,OACPC,OAAQ,OACR7sC,IAAK,QAEH8sC,EAAe,iCACnB,SAASjC,EAAgBiB,GACvB,OAAOA,EAAKtjK,QAAQskK,GAAc,SAASC,EAAWC,GAOpD,OAL6B,MAAzBA,EAAWv9I,OAAO,GAS1B,SAAuB0T,GACrB,KAAIA,EAAO,SAAX,CACA,IAAI8pI,EAAsB/kK,OAAOglK,cACjC,GAAID,EAAqB,OAAOA,EAAoB9pI,GACpD,IAAIgqI,EAAqBjlK,OAAOC,aAChC,OAAIg7B,GAAQ,MAAcgqI,EAAmBhqI,GACtCgqI,EACU,OAAdhqI,GAAQ,IACTA,EAAO,KAAO,MAPU,CAS5B,CAlBgB+pI,CACiB,MAAzBF,EAAWv9I,OAAO,GAAaF,SAASy9I,EAAW/jK,OAAO,GAAI,IAAMsmB,SAASy9I,EAAW/jK,OAAO,GAAI,KAEtFsjK,EAAgBS,KACfD,CACpB,GACF,CAsIA,SAAS3B,EAAa1B,GACpB,IAAI0D,EAAcC,UAAUC,UAAU5D,IAClC6D,EAAe1mK,SAASC,cAAc,KACtC0mK,EAAe3mK,SAASC,cAAc,KAC1CymK,EAAa7D,KAAOA,EACpB8D,EAAa9D,KAAO0D,EACpB,IAAIh3J,EAAKm3J,EAAaE,SAClBp3J,EAAKm3J,EAAaC,SACtB,OAA+B,IAA3B7B,EAAU/iK,QAAQuN,KAAyC,IAA3Bw1J,EAAU/iK,QAAQwN,GAC7C+2J,EAEA,EAEX,CAuEA,SAASM,EAAcC,EAAO/nK,EAAWX,GACvC,IAII2oK,EACAC,EACAC,EANAC,EAAS9oK,EAAQ+oK,gBACjBC,EAAShpK,EAAQipK,eAAiB,MAClCC,EAAQR,EAAM7jK,OAAO48C,wBACrB0nH,EAAQxoK,EAAUkE,OAAO48C,wBA8B7B,OAzBEmnH,EADa,WAAXI,EACO,WACP,OAAOE,EAAMzuI,OAASkuI,EAAS1xJ,MACjC,EACoB,WAAX+xJ,EACA,WACP,OAAOE,EAAM3uI,KAAO2uI,EAAMjyJ,OAAS0xJ,EAAS1xJ,QAAU,CACxD,EAES,WACP,OAAOiyJ,EAAM3uI,GACf,EAGAsuI,EADa,UAAXC,EACQ,WACR,OAAOI,EAAM1uI,MAAQmuI,EAAS3xJ,KAChC,EACoB,WAAX8xJ,EACC,WACR,OAAOI,EAAMxuI,MAAQwuI,EAAMlyJ,MAAQ2xJ,EAAS3xJ,OAAS,CACvD,EAEU,WACR,OAAOkyJ,EAAMxuI,IACf,EAEK,WACLiuI,EAAWzoK,KAAK2E,OAAO48C,wBACvB,IAAI8D,EAAKsjH,IAAYM,EAAMzuI,KACvB+qB,EAAKmjH,IAAWO,EAAM5uI,IACtB2sF,EAAKlnH,EAAQknH,IAAM,CAAC,EACxB,GAAIlnH,EAAQknH,GAAI,CACdA,EAAGonB,YAAY86B,sBAAsBliD,GACrC,IAAImiD,EAAoBj6B,EAAI1pB,iBAAiBwB,EAAGonB,YAAYg7B,cAApCl6B,CAAmD7pF,EAAIE,GAC/EF,EAAK8jH,EAAkB,GACvB5jH,EAAK4jH,EAAkB,EACzB,CAMA,OALAnpK,KAAKssB,MAAM,CACT+N,IAAKkrB,EAAK,KACV/qB,KAAM6qB,EAAK,KACX,UAAW,MAENrlD,IACT,CACF,CA7QA4T,EAAQ8xJ,gBAAkBA,EAmJ1B9xJ,EAAQy1J,aAAe,SAAsBx2J,GAC3CA,EAAMA,EAAIxP,QAAQugK,EAAU,KAK5B,IAJA,IAAI0F,EAAW5nK,SAASC,cAAc,KAClCkiK,EAAcyF,EACdxF,EAAY,GACZ7lE,EAAQprF,EAAIvI,MAAM86J,GACbnjK,EAAI,EAAGA,EAAIg8F,EAAM59F,OAAQ4B,IAAK,CACrC,IAAIojK,EAAQpnE,EAAMh8F,GACdwH,EAAQ47J,EAAM57J,MAAM67J,GACpBC,EAAU97J,GAASA,EAAM,GAAGsH,cAChC,GAAIw0J,KAAWE,EACb,GAAIh8J,EAAM,GACJq6J,EAAUzjK,SACZwjK,EAAcC,EAAU1oG,WAErB,CACL,IAAI2uD,EAAQtgH,EAAM,GACdqD,EAAM84J,EAAe77C,EAAO87C,GAC5BxB,EAAYv3J,EAAM,CAAEwf,MAAOxf,GAAQ,CAAC,EACxC,GAAgB,MAAZy4J,EAAiB,CACnB,IAAIhB,EAAOqB,EAAe77C,EAAOg8C,GACjC,GAAIxB,EAAM,CACR,IAAIyB,EAAWC,EAAa1B,GAC5B,GAAIyB,EAAU,CACZ3B,EAAUE,KAAOyB,EACjB,IAAI9/I,EAAS0/I,EAAe77C,EAAOm8C,GAC/BhgJ,IACFm+I,EAAUn+I,OAASA,EAEvB,CACF,CACF,CACA,IAAIw+I,EAAUhjK,SAASC,cAAc4jK,GACrC1B,EAAYhiK,YAAY6iK,GACxB1yH,EAAGsI,OAAOoqH,GAASxnH,KAAKmnH,GACxBR,EAAca,EACdZ,EAAUljK,KAAK8jK,EACjB,MAEAb,EAAYhiK,YACVH,SAASI,eAAe4jK,EAAgBL,IAG9C,CAEA,OAAOiE,EAAY,SACrB,EACA11J,EAAQ21J,UAAY,SAAmBp+I,GACrC,OAAOA,EAAE2vB,UAAU,cAAc7yC,QAAU,CAC7C,EACA2L,EAAQyyJ,aAAe,SAAsBl7I,EAAG/iB,EAAGC,GACjD,OAAO8iB,EAAEiyB,MAAK,WACZ,IAAInjC,EAAO+3B,EAAGsI,OAAOt6C,MACrB,SAASwpK,EAAStsH,EAAMnyB,GAQtB,YAPY,IAARA,EAEU,QADZA,EAAM9Q,EAAKijC,KAAKA,MAEdjjC,EAAKijC,KAAKA,EAAM,GAChBnyB,EAAM,GAEH9Q,EAAKijC,KAAKA,EAAMnyB,GAChBA,CACT,CACA,IAAI0+I,EAAQD,EAAS,IAAKphK,GACtBshK,EAAQF,EAAS,IAAKnhK,GACJ,SAAlBrI,KAAK2pK,UACP1vJ,EAAK6gC,UAAU,cAAcoC,KAAK,CAAE90C,EAAGqhK,EAAOphK,EAAGqhK,GAErD,GACF,EAsDA,IAAIE,EAAQ,OACZh2J,EAAQi2J,eAAiB,SAASv+G,GAIhC,OAHQs+G,EACAA,EACAA,EACWt+G,EAAS,MAHpBs+G,EAGgC,IAFhCA,EACAA,EAC8Ct+G,EAAS,KAHvDs+G,EAGkE,IAFlEA,EACAA,EACgFt+G,EAAS,MAHzFs+G,EACAA,EACAA,EAC6Gt+G,CACvH,EACA13C,EAAQk2J,aAAe,SAAS96H,EAASlvC,GACvC,IAAIknH,EAAKlnH,EAAQknH,GACb+iD,EAAYjqK,EAAQkqK,SACpBxxH,EAAWxG,EAAGwG,SAAS,OAAQ,QAAS,UACxCyxH,EAAiBF,GAAa/6H,EAElC,GADAA,EAAQ1iB,MAAM,CAAE,iBAAkBy9I,EAAY,OAAS,QAChC,IAAnB/6H,EAAQ/mC,OAAc,MAAM,IAAI+J,MAAM,OAC1C,SAASk4J,KAoBT,WACE,IACIzpK,EADUuxC,EAAGsI,OAAO0sE,GACA1sE,OAAO,kBAC3B6vH,EAAM1pK,EAAU2D,OAAO,OACvBgmK,EAASp7H,EAAQrqC,OAAO2nB,MACxBxW,EAAW8U,WAAWw/I,EAAOt0J,UAAY,IACzCu0J,EAAcvqK,EAAQma,UACN,IAAhBowJ,IAAwBA,EAAcr7H,EAAQkO,KAAK,qBACvDitH,EAAI9sH,QAAQ,4BAA4B,GAAM/wB,MAAM,CAClD9nB,SAAU,WACV,cAAe4lK,EAAOpsJ,YAAc,QACpC,YAAalI,EACbF,MAAO9V,EAAQmX,MAAQmzJ,EAAOnzJ,MAAQ,QACtC1H,QAAS,EACT,mBAAoBzP,EAAQua,YAAc,cAC1C2b,QAAS,sBACTtB,OAAQ,EAAE5e,EAAW,EAAI,EAAG,EAAG,GAAI,GAAGjP,KAAK,OAAS,KACpD8tB,QAAS,IACT,aAAc,eACbuoB,KAAK,CAAEotH,iBAAiB,IAAQrwJ,KAAKowJ,GAAavgK,KAAKy+J,EAAcv5H,EAASvuC,EAAWX,IAAU64C,GAAG,QAAQ,WAC/GquE,EAAGsqC,UAAW,EACdtiH,EAAQ/0B,KAAKja,KAAKy9C,aAAanxB,MAAM,CAAE/c,QAAS,IAChD,IACIg7J,EADA7J,EAAW1uH,EAAGsI,OAAOt6C,MAAMk9C,KAAK,UAEtBqtH,EAAV7J,EAAyB,IAAMA,EAASp2J,MAAM,KAAK,GAAK,cACxC,yBAElB0nC,EAAGsI,OAAOtL,EAAQrqC,OAAOjC,YAAY43C,OAAOiwH,GAAcj+I,MAAM,CAAE/c,QAAS,IAE7E,IAAI0K,EAAOja,KAAKy9C,YAChBzL,EAAGsI,OAAOt6C,MAAMmX,aAAaE,SAAS,GAAG8/B,SACzCnF,EAAGsI,OAAO54C,UAAUi3C,GAAG,UAAW,MAClCH,EAASgyH,KAAK1gK,KAAKklC,EAAS/0B,EAC9B,IAAG0+B,GAAG,SAAS,WACb,IAAI8xH,EAAUzqK,KACdgnH,EAAGsqC,UAAW,EACdt/G,EAAGsI,OAAO54C,UAAUi3C,GAAG,WAAW,WAChC,GAAI3G,EAAGtsB,MAAMQ,SAAWukJ,EAAS,OAAO,EACpC/oK,SAASgpK,gBAAkBP,EAAIxlK,QAAQwlK,EAAIxlK,OAAOgmK,MACxD,GACF,IAAGhyH,GAAG,SAAS,WACU,KAAnB3G,EAAGtsB,MAAMklJ,OACX5jD,EAAGsqC,UAAW,EACdtiH,EAAQ1iB,MAAM,CAAE/c,QAAS,IACzByiC,EAAGsI,OAAOt6C,MAAMssB,MAAM,CAAE/c,QAAS,IAAKopC,GAAG,QAAQ,WAC/C,OAAO,CACT,IAAGxhC,aAAaggC,SAChBqB,EAASooC,OAAO92E,KAAKklC,EAAShvC,KAAKy9C,eAEnCjF,EAAS5sB,MAAM9hB,KAAKklC,EAAShvC,KAAKy9C,aAClCzL,EAAGsI,OAAOt6C,MAAM8J,KAAKy+J,EAAcv5H,EAASvuC,EAAWX,IAE3D,IAAG64C,GAAG,WAAW,WACQ,KAAnB3G,EAAGtsB,MAAMklJ,OAAc5qK,KAAK2qK,MAClC,IAAG7gK,KAAK+gK,EACV,CA1EEC,GACA97H,EAAQ1iB,MAAM,CAAE/c,QAAS,IACzB,IACIg7J,EADA7J,EAAWuJ,EAAe/sH,KAAK,UAErBqtH,EAAV7J,EAAyB,IAAMA,EAASp2J,MAAM,KAAK,GAAK,cACxC,yBAElB0nC,EAAGsI,OAAOtL,EAAQrqC,OAAOjC,YAAY43C,OAAOiwH,GAAcj+I,MAAM,CAAE/c,QAAS,GAE/E,CACA,SAASs7J,EAAsBE,GAC7B,IAAI7kD,EAAK6kD,EAAIpmK,OACTmyC,EAAQp1C,SAAS8jF,cACrB1uC,EAAMk0H,mBAAmB9kD,GACzB,IAAIyjB,EAAM/pG,OAAOqrI,eACjBthC,EAAIuhC,kBACJvhC,EAAIwhC,SAASr0H,GACbovE,EAAGprG,OACL,CA2DA,OAFIhb,EAAQsrK,UAAWlB,IAClBD,EAAetxH,GAAG,QAASuxH,GACzBl4H,EAAGoG,OAAOpJ,EAASwJ,EAAU,KACtC,CACF,IAIE6yH,GAAkBn9H,EAAW,CAC/B,uCAAuCt6B,EAASkuB,GAE9C,IAAIkQ,EAAKD,IACLywD,EAAYT,IACZjE,EAAY7G,IACZi4C,EAAMtN,KACN/tB,EAAStC,IACT+5D,EAAe/7D,IAAiBxqE,QAgBhCwmI,EAAgB,CAAC,YAAa,iBAAkB,aAAc,eAAgB,YAC9EC,EAAc,CAAC,MAAO,MAAO,MAAO,QACxC,SAASC,EAAYztE,GACnB,IAGI0tE,EACAzpK,EAAGkG,EAJHwjK,EAAU3tE,EAAK4tE,SACfC,EAAQF,GAAoB3tE,EAC5Bn4B,EAAM,CAAC,EAGX,IAAK5jE,EAAI,EAAGA,EAAIspK,EAAclrK,OAAQ4B,IAEpC4jE,EADA19D,EAAIojK,EAActpK,IACT4pK,EAAM1jK,GAEjB,GAAIwjK,EAEF,IADAD,EAAU,IACLzpK,EAAI,EAAGA,EAAIupK,EAAYnrK,OAAQ4B,IAElC4jE,EADA19D,EAAIqjK,EAAYvpK,IACP4pK,EAAM,IAAM1jK,OAElB,CACL,IAAIsrJ,EACJ,IAAKxxJ,EAAI,EAAGA,EAAIupK,EAAYnrK,OAAQ4B,MAElCwxJ,EAAK,KADLtrJ,EAAIqjK,EAAYvpK,OAEN4pK,IAIVpY,EAAK,IAAMtrJ,KACD0jK,KAJRhmG,EAAI19D,GAAK0jK,EAAMpY,IAQnBiY,EAAUjY,EAAGnpI,OAAO,EACtB,CAKA,OAJAu7C,EAAIimG,MAAQ,SAASC,EAAIzpI,GACvB,IAAI0pI,GAAmC,IAA7BR,EAAY9nK,QAAQqoK,GAAaL,EAAUK,EAAKA,EAC1DF,EAAMG,GAAOH,EAAM,IAAMG,GAAO1pI,CAClC,EACOujC,CACT,CACA,SAASomG,EAAajuE,GAQpB,IAPA,IAAIo8D,EAAQqR,EAAYztE,GACpBs8D,EAAOF,EAAMzwI,IACb4wI,EAAOH,EAAM1wI,IACbmnF,EAAMupD,EAAM8R,aAAeC,EAAU/R,EAAMtlD,YAAcslD,EAAMtlD,WAC/D59C,EAAI25C,EAAIxwG,OACRsmD,EAAS,IAAI98C,MAAMqtD,GACnBpgB,EAAQ,IAAIjtC,MAAMqtD,GACbj1D,EAAI,EAAGA,EAAIi1D,EAAGj1D,IAAK,CAC1B,IAAI8uG,EAAKF,EAAI5uG,GACb0kD,EAAO1kD,GAAKq4J,EAAOvpD,EAAG,IAAMwpD,EAAOD,GACnCxjH,EAAM70C,GAAK8uG,EAAG,EAChB,CACA,MAAO,CAAEpqD,SAAQ7P,QACnB,CACA,SAASq1H,EAAUt7D,GAGjB,IAFA,IAAI35C,EAAI25C,EAAIxwG,OACR+rK,EAAS,IAAIviK,MAAMqtD,GACdj1D,EAAIi1D,EAAI,EAAGhvD,EAAI,EAAGjG,GAAK,EAAGA,IAAKiG,IAAK,CAC3C,IAAI6oG,EAAKF,EAAI5uG,GACbmqK,EAAOlkK,GAAK,CAAC,EAAI6oG,EAAG,GAAIA,EAAG,GAC7B,CACA,OAAOq7D,CACT,CACA,SAASC,EAAmBC,EAAO7pE,GACjCA,EAAOA,GAAQ,CAAC,EAKhB,IAJA,IAAI97C,EAAS2lH,EAAM3lH,OACf7P,EAAQw1H,EAAMx1H,MACdogB,EAAIpgB,EAAMz2C,OACVksK,EAAS,IAAI1iK,MAAMqtD,GACdj1D,EAAI,EAAGA,EAAIi1D,EAAGj1D,IAAK,CAC1B,IAAI0vG,EAAQnP,EAAU1rD,EAAM70C,IAAIwjG,QAChC8mE,EAAOtqK,GAAK,CAAC0vG,EAAMtjF,EAAGsjF,EAAM3uE,EAAG2uE,EAAM1+E,EAAG0+E,EAAMtmF,EAChD,CACA,IAGImhJ,EAHAC,EAAWz6H,EAAGtiC,MAAMq1D,SAASpe,OAAOA,GAAQ7P,MAAMy1H,GAAQh2F,OAAM,GAChEm2F,EAAiBjqE,EAAKiqE,eACtBC,EAAclqE,EAAKkqE,YAyBvB,OAtBEH,EADEE,GAAkBC,EACVF,EACDC,EACC,SAASpqI,GACjB,OAAOsqI,EAAgBH,EAASnqI,GAClC,EACSqqI,EACC,SAASrqI,GACjB,OAAIw7D,EAAUx7D,GAAWmqI,EAASnqI,GACzBkgE,EAAUlgE,GAAGyC,UAAkBzC,EAC5BuxE,EAAO1C,WACrB,EAEU,SAAS7uE,GACjB,OAAIw7D,EAAUx7D,GAAWsqI,EAAgBH,EAASnqI,IACzCkgE,EAAUlgE,GAAGyC,UAAkBzC,EAC5BuxE,EAAO1C,WACrB,GAEMxqD,OAAS8lH,EAAS9lH,OAC1B6lH,EAAQ11H,MAAQ,WACd,OAAOA,CACT,EACO01H,CACT,CAIA,SAASI,EAAgBC,GACvB,IAAIC,EAAW,CACbz+I,EAAGw+I,EAAW,GACd7pI,EAAG6pI,EAAW,GACd55I,EAAG45I,EAAW,GACdxhJ,EAAGwhJ,EAAW,IAEhB,OAAOrqE,EAAUsqE,GAAUtlE,aAC7B,CACA1lE,EAAOluB,QAAU,CACfm5J,cAnIF,SAAuB1wD,EAAOw+B,EAAcmyB,GAC1C,IAAIvsK,EAAYo6I,EAAe3L,EAAIhvC,eAAemc,EAAOw+B,GAAc9xI,OAAS,CAAC,EAAIszG,EACjF/wD,EAAS7qD,EAAUusK,GAAY,SAC/B1hH,GAAUA,EAAO4xC,cAAa5xC,EAASA,EAAO4xC,aAClD,IAAI+vE,GAAuB,EAC3B,GAAI/9B,EAAI90C,oBAAoB9uC,GAC1B,IAAK,IAAIrpD,EAAI,EAAGA,EAAIqpD,EAAOjrD,OAAQ4B,IACjC,GAAI67F,EAAUxyC,EAAOrpD,IAAK,CACxBgrK,GAAuB,EACvB,KACF,CAGJ,OAAO/9B,EAAI7hH,cAAc5sB,KAAewsK,IAAgD,IAAxBxsK,EAAUysK,WAAsBpvE,EAAUr9F,EAAU65J,OAASx8D,EAAUr9F,EAAU85J,OAAS+Q,EAAa7qK,EAAUq0G,aAAeo6B,EAAI7hH,cAAc5sB,EAAU0mJ,UAC9N,EAsHEskB,cACAQ,eACAE,YACAE,qBACAc,4BAlBF,SAAqC9wD,EAAO5Z,GAC1C,OAAO4pE,EAAmBJ,EAAa5vD,GAAQ5Z,EACjD,EAkBF,IAIE2qE,GAAiCl/H,EAAW,CAC9C,gDAAgDt6B,EAASkuB,GAEvD,IAAI+nF,EAAOJ,KACPC,EAAcG,EAAKH,YACnBC,EAAmBE,EAAKF,iBAW5B,SAAS0jD,EAAuBjlJ,EAAOhgB,GACrC,MAAO,CACL,YAAcggB,EAAQ,oBAAsBhgB,EAAI,QAAUA,EAAI,KAAO,IACrE,qCACA,gEAAkEshH,EAAc,KAChF7iH,KAAK,IACT,CACA,SAASymK,EAAqBllJ,EAAOhgB,GACnC,OAAOilK,EAAuBjlJ,EAAOhgB,GAAK,CACxC,uBAAyBuhH,EAAmB,IAC5C,2CACA,2DACA,iCACA,wEACA,8CACA9iH,KAAK,IACT,CACAi7B,EAAOluB,QAAU,CACf25J,gBA5BF,SAAyBnlK,EAAGolK,GAC1B,MAAO,CACLjiE,QAAS,SACTE,KAAM,GACNJ,SAAU,OACV4e,aAAcujD,EAAUH,EAAyBC,GAAsB,aAAcllK,GAAK,CACxF,8CAAgDolK,EAAU,wBAA0B,IAAMplK,EAAI,qBAAuB,KACrHvB,KAAK,KAEX,EAoBEwmK,yBACAC,uBAEJ,IAIEG,GAA6Bv/H,EAAW,CAC1C,2CAA2Ct6B,EAASkuB,GAElD,IAAIurE,EAAYlC,IACZqG,EAAaP,IACbmY,EAAOD,KAAsBC,KAC7Bre,EAAaV,IAAiBU,WAC9BsuC,EAAiBP,KAAwBO,eACzCi0B,EAAuBF,KAAiCE,qBACxDp1E,EAASd,IAAoBc,OAC7BkV,EAAYouC,KACZkyB,EAAOtgE,EAAU2uC,aACjB4xB,EAAcvgE,EAAU4uC,gBACxB4xB,EAAgB,CAClBriE,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,SAAU,SAC3B2gF,SAAU,QACVmsC,aAAc,CAAE7jB,WAAO,EAAQk6C,WAAO,IAEpCC,EAAW/iE,EAAW,CAAC,EAAG6iE,EAAe,CAC3CljJ,OAAQkjJ,EAAcljJ,OAAOzmB,QAAQ2G,OAAO,CAAC,WAE/C,SAASmjK,EAAWC,GAClB,MAAO,CACLziE,QAAS,UACT5hF,IAAK,EACL8hF,KAAMuiE,EAAQ,EAAI,EAClB3iE,SAAU,QAEd,CACA,IAAIsoB,EAAQ,CACVpoB,QAAS,MACTF,SAAU,QACVmsC,aAAc,CAAEs2B,SAAU,WAExBD,EAAQ,CACVtiE,QAAS,MACTF,SAAU,QACVmsC,aAAc,CAAEs2B,SAAU,WAExBG,EAAW,CACb1iE,QAAS,aACTF,SAAU,SAER30B,EAAQ,CACV60B,QAAS,aACT7gF,OAAQ,CAAC,UAAW,SAAU,IAC9B2gF,SAAU,SAEZ,SAAS6iE,EAAYF,GACnB,IAAIp8J,EAAM,CACR25F,QAAS,SACT5hF,IAAK,EACL0hF,SAAU,SAGZ,OADK2iE,IAAOp8J,EAAI65F,KAAO,GAChB75F,CACT,CACA,SAASu8J,EAAcH,GACrB,IAAIp8J,EAAM,CACR25F,QAAS,SACT5hF,IAAK,EACL0hF,SAAU,SAGZ,OADK2iE,IAAOp8J,EAAI65F,KAAO,GAChB75F,CACT,CACA,IAAIw8J,EAAY,CACd7iE,QAAS,QACTE,KAAM+F,EAAWL,YACjB9F,SAAU,SAERgjE,EAAY,CACd9iE,QAAS,QACTE,KAAM+F,EAAWJ,UACjB/F,SAAU,SAEZ,SAASijE,EAAcN,GACrB,IAAIp8J,EAAM,CACR25F,QAAS,SACT5hF,IAAK,EACL0hF,SAAU,SAGZ,OADK2iE,IAAOp8J,EAAI65F,KAAO,GAChB75F,CACT,CACA,IAAI28J,EAAWxjE,EAAW,CAAC,EAAGqe,EAAM,CAAE/d,SAAU,UAC5CmjE,EAAW,CACbjjE,QAAS,UACTF,SAAU,SAEZvpE,EAAOluB,QAAU,CACf26F,QAAS,CACPhD,QAAS,UACTF,SAAU,QAEZz1F,MAAO,CACL21F,QAAS,QACTE,KAAM+F,EAAWL,YACjB9F,SAAU,SAEZ4hB,MAAO,CACLhzG,KAAM,CACJsxF,QAAS,SACTF,SAAU,SAEZiC,KAAMD,EAAU,CACdhC,SAAU,UAEZojE,SAAU,CACRljE,QAAS,SACT5hF,IAAK,EACL0hF,SAAU,SAEZA,SAAU,SAEZvmG,KAAM,CACJymG,QAAS,aAIT7gF,OAAQ,CAAC,IAAK,SAAU,MAAO,OAAQ,WAAY,iBACnD+gF,KAAM,IACNJ,SAAU,OAKViD,eAAe,GAEjByf,gBAAiB,CACfxiB,QAAS,aACT7gF,OAAQ,CAAC,gBAAiB,UAC1B+gF,KAAM,gBACNJ,SAAU,QAEZqjE,UAAW,CACTnjE,QAAS,aACT7gF,OAAQ,EAAC,GAAM,EAAO,WAAY,eAAgB,eAAgB,MAAO,OACzE+gF,MAAM,EACNJ,SAAU,UACVmsC,aAAc,CAAE,gBAAY,EAAQ,gBAAY,IAElDm3B,iBAAkB,CAChBC,WAAY,CACVrjE,QAAS,MACTF,SAAU,OACVmsC,aAAc,CAAE,gBAAY,EAAQ,gBAAY,IAElDq3B,WAAY,CACVtjE,QAAS,MACTF,SAAU,OACVmsC,aAAc,CAAE,gBAAY,EAAQ,gBAAY,IAElDs3B,QAAS,CACPvjE,QAAS,MACTF,SAAU,OACVmsC,aAAc,CAAE,gBAAY,EAAQ,gBAAY,IAElDu3B,QAAS,CACPxjE,QAAS,MACTF,SAAU,OACVmsC,aAAc,CAAE,gBAAY,EAAQ,gBAAY,IAElDw3B,QAAS,CACPzjE,QAAS,MACTmB,SAAS,EACTrB,SAAU,OACVmsC,aAAc,CAAE,gBAAY,EAAQ,gBAAY,IAElDnsC,SAAU,QAEZ4jE,UAAW,CACT1jE,QAAS,aACT7gF,OAAQ,CAAC,SAAU,SAAU,eAC7B+gF,KAAM,SACNJ,SAAU,QAEZv0D,MAAO,CACLy0D,QAAS,aACTuK,MAAO,CACL,CAAEvK,QAAS,MAAOF,SAAU,UAAWmsC,aAAc,CAAE,cAAc,GAASlqI,MAAM,GACpF,CAAEi+F,QAAS,MAAOF,SAAU,UAAWmsC,aAAc,CAAE,cAAc,GAASlqI,MAAM,IAEtF+9F,SAAU,UACVmsC,aAAc,CAAEk3B,WAAW,GAC3BphK,MAAM,GAERshK,WAAY,CACVrjE,QAAS,MACTF,SAAU,OACVmsC,aAAc,CAAE,cAAc,IAEhCq3B,WAAY,CACVtjE,QAAS,MACTF,SAAU,OACVmsC,aAAc,CAAE,cAAc,IAEhC03B,WAAY,CACV3jE,QAAS,UACTE,MAAM,EACNJ,SAAU,QAEZ8jE,YAAa,CACX5jE,QAAS,aACTuK,MAAO,CACL,CAAEvK,QAAS,MAAOF,SAAU,QAC5B,CAAEE,QAAS,MAAOF,SAAU,SAE9BA,SAAU,QAIZ+jE,YAAa,CACX7jE,QAAS,aACT7gF,OAAQ,CACN0iF,EAAUquC,QAAQrzI,EAAEmF,WACpB6/F,EAAUquC,QAAQpzI,EAAEkF,YACpB,GAEF89F,SAAU,QAEZgkE,WAAY,CACV9jE,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,EACNJ,SAAU,QAEZ+5B,UAAW,CACT75B,QAAS,aACT7gF,OAAQ,CAAC,QAAS,UAClB2gF,SAAU,QAGZikE,gBAAiB,CACf/jE,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,SAAU,QAAS,MAAO,SAAU,UACrD2gF,SAAU,QAEZllF,QAAS,CACPolF,QAAS,aACT7gF,OAAQ,CACN0iF,EAAUquC,QAAQrzI,EAAEmF,WACpB6/F,EAAUquC,QAAQpzI,EAAEkF,YAEtB89F,SAAU,QAEZkkE,YAAal2B,EAAe,aAAc,CACxC8H,QAAS,CACP51C,QAAS,UACTE,MAAM,EACNJ,SAAU,QAEZuyB,OAAQ,CACNryB,QAAS,aACTuK,MAAO,CACL,CAAEvK,QAAS,MAAOF,SAAU,QAC5B,CAAEE,QAAS,MAAOF,SAAU,SAE9BA,SAAU,QAEZ/nG,QAAS,CACPioG,QAAS,aACT7gF,OAAQ,CAACijJ,EAAaD,EAAM,IAC5BriE,SAAU,QAEZ3gF,OAAQ,CACN6gF,QAAS,aACT4K,YAAY,EACZ9K,SAAU,OACVyK,MAAO,CACLvK,QAAS,MACTF,SAAU,SAGdmkE,OAAQ,CAENjkE,QAAS,SACTF,SAAU,OACV1hF,IAAK,EACL8hF,KAAMvT,GAqBRmT,SAAU,SAGZyiE,WACA2B,OAAQ1B,IACRp6C,QACAk6C,QACA6B,cAAe,CACbnkE,QAAS,UACT5hF,IAAK,EACL8hF,KAAM,EACNJ,SAAU,SAEZ4iE,WACA0B,SAAU,CACRpkE,QAAS,aACTF,SAAU,SAEZ30B,QACAk5F,QAAS,CACPrkE,QAAS,aACT7gF,OAAQ,CAAC,SAAU,cACnB+gF,KAAM,SACNJ,SAAU,SAEZwkE,cAAe,CACbtkE,QAAS,aACT7gF,OAAQ,CAAC,UAAW,UACpB+gF,KAAM,UACNJ,SAAU,SAIZykE,kBAAmB,CACjBvkE,QAAS,aACT7gF,OAAQ,CACN,UACA,SACA,cACA,aACA,eACA,cACA,gBACA,eACA,iBACA,iBAEF+gF,KAAM,UACNJ,SAAU,QAEZ0kE,kBAAmB,CACjBxkE,QAAS,aACT7gF,OAAQ,CACN,QACA,gBACA,oBAEF2gF,SAAU,QAEZ2kE,eAAgB,CACdzkE,QAAS,UACTE,KAAM,EACNJ,SAAU,SAEZ4kE,kBAAmB,CACjB1kE,QAAS,UACTE,KAAM,EACNJ,SAAU,SAEZ6kE,eAAgB,CAGd3kE,QAAS,UACTmB,SAAS,EACTrB,SAAU,QAEZ8hD,OAAQ,CACN5hD,QAAS,aACT7gF,OAAQ,EAAC,EAAM,SAAS,EAAO,MAAO,YACtC+gF,MAAM,EACNJ,SAAU,qBAEZ8kE,QAASjC,IACTkC,UAAWjC,IACXC,YACAiC,eAAgB,CACd9kE,QAAS,UACTE,MAAM,EACNJ,SAAU,SAEZilE,WAAY,CACV/kE,QAAS,MACTE,MAAM,EACNJ,SAAU,SAEZgiB,WAAY,CACV9hB,QAAS,WACTa,MAAO,CAAC,SAAU,QAAS,OAAQ,QAAS,MAAO,UACnDZ,OAAQ,EAAC,GAAM,GACfC,MAAM,EACNJ,SAAU,SAEZklE,WAAY,CACVhlE,QAAS,UACTE,MAAM,EACNJ,SAAU,WAEZmlE,WAAY,CACVjlE,QAAS,QACTE,KAAM,KACNJ,SAAU,QAEZolE,eAAgB,CACdllE,QAAS,SACTE,KAAM,EACNJ,SAAU,QAEZqlE,UAAW3lE,EAAW,CAAC,EAAGqe,EAAM,CAAE3d,KAAM,OAAQJ,SAAU,SAC1D6hD,UAAW,CACT3hD,QAAS,WACTa,MAAO,CAAC,SAAU,SAAU,UAC5BX,KAAM,SACNJ,SAAU,QAEZslE,UAAW,CACTplE,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,SAAU,gBAC3B+gF,KAAM,eACNJ,SAAU,QAEZulE,SAAUvjE,EAAU,CAClBhC,SAAU,UAEZwlE,UAAW,CACTtlE,QAAS,QACTE,KAAM,OACNJ,SAAU,SAEZylE,eAAgB,CACdvlE,QAAS,aACT4K,YAAY,EACZL,MAAO,CACLvK,QAAS,SAEXE,KAAM,CAAC,EAAG,GAAI,IACdJ,SAAU,SAEZ0lE,WAAY,CACVxlE,QAAS,SACTE,KAAM,GACNJ,SAAU,SAEZ2lE,eAAgB,CACdzlE,QAAS,aACT7gF,OAAQ,CAAC,MAAO,QAAS,OAAQ,QACjC+gF,KAAM,MACNJ,SAAU,SAEZ4lE,WAAY,CACV1lE,QAAS,SACTE,KAAM,GACNJ,SAAU,SAEZ6lE,eAAgB,CACd3lE,QAAS,aACT7gF,OAAQ,CAAC,MAAO,QAAS,OAAQ,QACjC+gF,KAAM,MACNJ,SAAU,SAEZ8lE,aAAc,CACZ5lE,QAAS,aACT7gF,OAAQ,CAAC,MAAO,QAAS,OAAQ,QACjC+gF,KAAM,MACNJ,SAAU,SAEZ+lE,eAAgB,CACd7lE,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,IAAK,IAAK,QAAS,KAAM,KAC1C+gF,KAAM,IACNJ,SAAU,SAEZgmE,YAAa,CACX9lE,QAAS,SACTE,KAAM,EACN9hF,IAAK,EACL0hF,SAAU,SAEZi/B,kBAAmB,CACjB/+B,QAAS,UACTE,MAAM,EACNJ,SAAU,SAEZimE,WAAY,CACV/lE,QAAS,SACTE,KAAM,GACNJ,SAAU,QACV4e,YAAaqjD,EAAqB,eAEpCiE,gBAAiBl4B,EAAe,iBAAkB,CAChD8H,QAAS,CACP51C,QAAS,UACTE,MAAM,EACNJ,SAAU,SAEZmmE,WAAY,CACVjmE,QAAS,aACTuK,MAAO,CACL,CAAEvK,QAAS,MAAOF,SAAU,SAC5B,CAAEE,QAAS,MAAOF,SAAU,UAE9BA,SAAU,SAEZjoG,MAAO,CACLmoG,QAAS,SACTE,KAAM,GACNJ,SAAU,SAEZA,SAAU,UAEZomE,YAAa,CACXlmE,QAAS,SACTE,KAAM,GACNJ,SAAU,OACV4e,YAAaqjD,EAAqB,eAGpCoE,SAAU,CACRnmE,QAAS,UACTE,MAAM,EACNJ,SAAU,qBAEZsmE,UAAW,CACTpmE,QAAS,QACTE,KAAM+F,EAAWL,YACjB9F,SAAU,eAEZumE,UAAW,CACTrmE,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,EACNJ,SAAU,qBAEZmjE,WACAH,YACAwD,UAAWvD,IACXC,WACAuD,SAAU,CACRvmE,QAAS,UACTF,SAAU,SAEZ0mE,cAAe,CACbxmE,QAAS,QACTE,KAAM+F,EAAWL,YACjB9F,SAAU,SAEZ2mE,cAAe,CACbzmE,QAAS,SACTE,KAAM,EACNJ,SAAU,SAEZ4mE,aAAc,CACZ1mE,QAAS,UACTE,MAAM,EACNJ,SAAU,SAEZ6mE,aAAc,CACZ3mE,QAAS,QACTE,KAAM+F,EAAWL,YACjB9F,SAAU,SAEZ8mE,aAAc,CACZ5mE,QAAS,SACTE,KAAM,EACNJ,SAAU,SAMZ2hD,OAAQ,CACNzhD,QAAS,aACT7gF,OAAQ,CACN,OACA0iF,EAAUquC,QAAQrzI,EAAEmF,WACpB6/F,EAAUquC,QAAQpzI,EAAEkF,YAEtB89F,SAAU,QAIZ2nD,KAAM,CACJznD,QAAS,aACT7gF,OAAQ,CAAC,MAAO,SAAU,OAAQ,SAClC2gF,SAAU,QAKZ06C,WAAY,CACVx6C,QAAS,aACT7gF,OAAQ,CACN,OACA0iF,EAAUquC,QAAQrzI,EAAEmF,WACpB6/F,EAAUquC,QAAQpzI,EAAEkF,YAEtB89F,SAAU,QAEZ2iE,MAAO,CACLF,SAAUF,EACV6B,OAAQ1B,EAAW,SACnBp6C,QACAk6C,QACAI,WACAv3F,QACAy5F,QAASjC,EAAY,SACrBkC,UAAWjC,EAAc,SACzBC,YACAC,YACAwD,UAAWvD,EAAc,SACzBC,WACAC,WACAnjE,SAAU,SAEZ2gB,MAAO,CACLzgB,QAAS,aACT7gF,OAAQ,CAAC,eAAgB,gBACzB+gF,KAAM,eACNJ,SAAU,QAEZ1kD,OAAQ,CACN4kD,QAAS,aACTuK,MAAO,CACL,CAAEvK,QAAS,SAAU5hF,IAAK,EAAGD,IAAK,EAAG2hF,SAAU,QAC/C,CAAEE,QAAS,SAAU5hF,IAAK,EAAGD,IAAK,EAAG2hF,SAAU,SAEjDI,KAAM,CAAC,EAAG,GACVJ,SAAU,QAEZ7mG,SAAU,CACR+mG,QAAS,SACT5hF,IAAK,EACLD,IAAK,EACL+hF,KAAM,EACNJ,SAAU,QAEZyqC,UAAW,CACTvqC,QAAS,UACTE,MAAM,EACNJ,SAAU,QAEZ1gF,MAAO,CACL4gF,QAAS,SACTF,SAAU,QAEZ0wD,cAAe,CACbxwD,QAAS,aACT7gF,OAAQ,CACN,QACA,qBACA,sBACA,QACA,kBACA,mBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,iBACA,kBACA,2BACA,4BACA,mBACA,qBAEF+gF,KAAM,QACNJ,SAAU,QAEZ+mE,cAAe,CACb7mE,QAAS,aACTF,SAAU,QAEZiE,WAAY,CACV/D,QAAS,MACTF,SAAU,QAEZA,SAAU,OAEd,IAIEgnE,GAAsBnkI,EAAW,CACnC,wCAAwCt6B,EAASkuB,GAE/C,IAAIwwI,EAAY7E,KACZpgE,EAAYlC,IACZJ,EAAaV,IAAiBU,WAC9B4d,EAAcN,KAAqBM,YACvC7mF,EAAOluB,QAAU+0G,EAAY,CAC3B4pD,YAAa,CACXhnE,QAAS,aACT7gF,OAAQ,CAAC,IAAK,KACd+gF,KAAM,KAER+mE,cAAe,CACbjnE,QAAS,aACT7gF,OAAQ,CAAC,WAAY,UACrB+gF,KAAM,UAERgnE,UAAW,CACTlnE,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,IAERinE,QAAS,CACPnnE,QAAS,aACT7gF,OAAQ,CAAC,WAAY,UACrB+gF,KAAM,YAER14F,IAAK,CACHw4F,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GAERrjG,EAAG,CACDmjG,QAAS,UAEX4hB,KAAM,CACJ5hB,QAAS,aACTE,KAAM,QACN/gF,OAAQ,CAAC,YAAa,SACtB2gF,SAAU,eAEZ+gB,QAAS,CACP7gB,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,SAAU,UAE7BioJ,KAAM,CACJpnE,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,IAERpjG,EAAG,CACDkjG,QAAS,UAEX6hB,KAAM,CACJ7hB,QAAS,aACTE,KAAM,QACN/gF,OAAQ,CAAC,YAAa,SACtB2gF,SAAU,eAEZghB,QAAS,CACP9gB,QAAS,aACT7gF,OAAQ,CAAC,MAAO,SAAU,WAE5BkoJ,KAAM,CACJrnE,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,IAGRonE,aAAcP,EAAUX,UACxBmB,aAAcR,EAAUV,UAGxB9jE,YAAawkE,EAAUX,UACvBoB,YAAa,CACXxnE,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GAER30E,QAAS,CACPy0E,QAAS,QACTE,KAAM,iBAGRqiE,SAAUwE,EAAUtE,MAAMF,SAC1B2B,OAAQ6C,EAAU7C,OAClB97C,MAAO2+C,EAAU3+C,MACjBk6C,MAAOyE,EAAUzE,MACjBI,SAAUqE,EAAUrE,SACpB0B,SAAU2C,EAAU3C,SACpBj5F,MAAOq0B,EAAW,CAAC,EAAGunE,EAAU57F,MAAO,CAAE+0B,KAAM,KAC/CskE,kBAAmBhlE,EAAW,CAAC,EAAGunE,EAAUvC,kBAAmB,CAAC,GAGhED,kBAAmB,CACjBvkE,QAAS,aACT7gF,OAAQ,CACN,UACA,SACA,cACA,aACA,eACA,cACA,gBACA,eACA,iBACA,iBAEF+gF,KAAM,WAER0kE,QAASmC,EAAUnC,QACnBC,UAAWkC,EAAUlC,UACrBhC,UAAWkE,EAAUlE,UACrBsB,cAAe4C,EAAU5C,cACzBW,eAAgBiC,EAAUjC,eAC1BC,WAAYgC,EAAUhC,WACtBM,SAAUvjE,EAAU,CAAC,GACrBwjE,UAAWyB,EAAUzB,UACrBS,WAAYgB,EAAUhB,WACtBC,gBAAiBe,EAAUf,gBAC3BR,WAAYuB,EAAUvB,WACtBC,eAAgBsB,EAAUtB,eAC1BC,WAAYqB,EAAUrB,WACtBC,eAAgBoB,EAAUpB,eAC1B5mC,kBAAmBgoC,EAAUhoC,kBAC7B8mC,eAAgBkB,EAAUlB,eAC1BC,YAAaiB,EAAUjB,YACvBF,aAAcmB,EAAUnB,aACxBlkD,MAAO,CACLhzG,KAAM,CACJsxF,QAAS,UAEX+B,KAAMD,EAAU,CAAC,GACjB2lD,KAAM,CACJznD,QAAS,aACT7gF,OAAQ,CAAC,QAAS,MAAO,aAG5B,YAAa,YAClB,IAIEsoJ,GAAsB9kI,EAAW,CACnC,0CAA0Ct6B,EAASkuB,GAEjD,IAAImxI,EAAgBZ,KAChBv+D,EAAeX,IAAgBC,QAC/B0vB,EAAiB3J,KACjB+5C,EAAW3jE,IAAiBC,OAEhC,SAASxxE,EAAK7S,GACZ,MAAO,IAAMA,EAAI,GACnB,CAHiB23G,EAAeowC,GAIhCpxI,EAAOluB,QAAU,SAAyBo7B,EAASyzD,GACjDzzD,EAAUA,GAAW,GAErB,IAOImkI,EAPAzH,GADJjpE,EAAOA,GAAQ,CAAC,GACGipE,SAAW,IAE1B0H,GADkB,oBAAqB3wE,EAAOA,EAAK4wE,gBAAkBl8B,QAAQnoG,GACnE,YAAayzD,EAAOA,EAAK2wE,QAAsB,gBAAZpkI,GAC7CskI,EAAgB,kBAAmB7wE,EAAOA,EAAK6wE,cAA4B,MAAZ5H,EAC/D6H,EAAgD,kBAAxB9wE,EAAK8wE,eAA8BL,EAASzwE,EAAK8wE,gBAAkB,KAC3F3qD,EAAmBnmB,EAAKmmB,kBAAoB,GAC5C4qD,EAAcxkI,EAAUA,EAAU,IAAM,GAExC,cAAeyzD,GACjB0wE,EAAY1wE,EAAK0wE,UACD1wE,EAAK0wE,WAGGn1I,EAAKw1I,GAD7BL,EAAY,CAAE7qK,EAAG,IAAK05B,EAAG,SAAU0pI,KAGrC,IACI+H,EAAO/H,EAAU,OACjB/hJ,EAAM+hJ,EAAU,MAChBhiJ,EAAMgiJ,EAAU,MAChB73H,EAAM63H,EAAU,MAKhBgI,GAJW11I,EAAKw1I,EAAcC,GACpBz1I,EAAKw1I,EAAc7pJ,GACnBqU,EAAKw1I,EAAc9pJ,GAEV,CAAC,GACxBgqJ,EAAiB/pJ,GAAO+pJ,EAAiBhqJ,QAAO,EAChD,IAAIiqJ,EAAqB,CAAC,EAC1BA,EAAmBF,IAAQ,EAC3B,IAAI9nE,EAAQ,CAAC,EAqEb,MApEkB,UAAdwnE,IACFxnE,EAAM/1F,MAAQ,CACZ21F,QAAS,QACTmB,SAAS,EACTrB,SAAUud,GAAoB,SAE5BnmB,EAAKn1F,OACPq+F,EAAM/1F,MAAMtI,MAAO,IAGvBq+F,EAAM8nE,GAAQ,CACZloE,QAAS,UACTE,MAAM,EACNJ,SAAU,OACVmsC,aAAck8B,GAEhB/nE,EAAMhiF,GAAO,CACX4hF,QAAS,SACTE,KAAM,KACNJ,SAAUud,GAAoB,OAC9B4uB,aAAcm8B,GAEhBhoE,EAAMjiF,GAAO,CACX6hF,QAAS,SACTE,KAAM,KACNJ,SAAUud,GAAoB,OAC9B4uB,aAAcm8B,GAEhBhoE,EAAM93D,GAAO,CACX03D,QAAS,SACTE,KAAM,KACNJ,SAAU,OACVmsC,aAAck8B,GAEhB/nE,EAAMmJ,WAAa,CACjBvJ,QAAS,aACTF,SAAU,OACVI,KAAM8nE,EACN/7B,aAAc,CAAEo8B,gBAAgB,IAElCjoE,EAAMioE,eAAiB,CACrBroE,QAAS,UAETE,MAA6B,IAAvBhJ,EAAKoxE,cACXxoE,SAAU,OACVmsC,aAAc,CAAE1iC,gBAAY,IAE9BnJ,EAAMugE,aAAe,CACnB3gE,QAAS,UACTE,MAAM,EACNJ,SAAU,QAEP+nE,IACHznE,EAAMuhE,UAAY,CAChB3hE,QAAS,UACTE,KAAM6nE,EACNjoE,SAAU,QAEZM,EAAMw7C,SAAW8rB,GAEdxwE,EAAKqxE,cACRnoE,EAAMooE,UAAY,CAChBxoE,QAAS,YACT3iE,MAAOkrE,EAAa,aACpBrI,KAAM,KACNJ,SAAU,SAGPM,CACT,CACF,IAIEqoE,GAA6B9lI,EAAW,CAC1C,iDAAiDt6B,EAASkuB,GAExD,IAAIipE,EAAaV,IAAiBU,WAC9BkpE,EAAkBjB,KAClBxjE,EAASD,IAAiBC,OAC9B1tE,EAAOluB,QAAU,CACfy3F,SAAU,OACVyJ,WAAY,CACVzJ,SAAU,OACV6oE,WAAY,CACV3oE,QAAS,aACTE,KAAM+D,EAAOO,KACb1E,SAAU,QAEZ8oE,gBAAiB,CACf5oE,QAAS,aACTE,KAAM+D,EAAOQ,MACb3E,SAAU,QAEZ+oE,UAAW,CACT7oE,QAAS,aACTE,KAAM+D,EAAOM,KACbzE,SAAU,SAGd0oE,UAAWhpE,EAAW,CAIpBspE,eAAe,EACfhpE,SAAU,QACT4oE,EAAgB,GAAI,CACrBd,UAAW,qCACXW,aAAa,EACbR,eAAe,KAGrB,IAIEgB,GAAuBpmI,EAAW,CACpC,0CAA0Ct6B,EAASkuB,GAEjD,IAAIotG,EAAMtN,KACV9/F,EAAOluB,QAAU,SAAqBnT,GACpC,OAAOyuI,EAAI7hH,cAAc5sB,EAAU0mJ,SACrC,CACF,IAIEotB,GAAsBrmI,EAAW,CACnC,qCAAqCt6B,GAEnC,IAAIkqF,EAAY7G,IACZi4C,EAAMtN,KACNx0B,EAAYhW,IACZc,EAASkV,EAAUlV,OACnBD,EAAUmV,EAAUnV,QACxBrkF,EAAQi6J,MAAQ,SAASA,EAAO2G,GAC9B,IAAIC,EAAmB,QAAXD,EACRE,EAAoB,SAAXF,EACTG,EAAmB,aAAXH,EACRI,EAAYF,EAASx8E,EAAS,EAClC,IAAK21E,EAAO,OAAO+G,EACnB,GAAI92E,EAAU+vE,GAEZ,OADAA,EAAQriJ,OAAOqiJ,KACF,EAAU+G,EACnBD,EACK9xK,KAAK6mB,IAAI,EAAG7mB,KAAK+b,MAAMivJ,IAE5B6G,EACK7xK,KAAK6mB,IAAI,GAAKmkJ,GAEhBA,EAET,GAAqB,kBAAVA,IAAwB6G,IAAUD,EAC3C,OAAOG,EAET,IAAIzrK,EAAS0kK,EAAMvjJ,OAAO,GACtBuqJ,EAAWhH,EAAM/pK,OAAO,GAE5B,OADA+wK,EAAW/2E,EAAU+2E,GAAYrpJ,OAAOqpJ,GAAY,IACpC,KACfH,GAAqB,MAAXvrK,GAAkB0rK,IAAahyK,KAAK+b,MAAMi2J,IACrDJ,GAAoB,MAAXtrK,GACTsrK,GAAoB,MAAXtrK,IAAgC,IAAb0rK,GAA+B,IAAbA,IACrCD,EAEF/G,CACT,EACAj6J,EAAQ+/G,MAAQ,SAASA,EAAO6gD,EAAQnhD,EAAUw6C,GAChD,MAAe,SAAX2G,EACKtlC,EAAIzZ,UACT9B,EACAub,EAAIzb,UAAUJ,EAAUw6C,EAAQ51E,IAAY,EAAI,EAAI,IAG1C,OAAV41E,GAA4B,OAAVA,EAGf/vE,EAAU61B,GAASnoG,OAAOmoG,GAAS,OAH1C,CAIF,CACF,IAIEmhD,GAA8B5mI,EAAW,CAC3C,6CAA6Ct6B,EAASkuB,GAEpD,IAAIizI,EAAaR,KACbn6E,EAAsBwnC,KAAcxnC,oBACpC+C,EAAmBrD,IAAgBqD,iBACnChB,EAAuBrC,IAAgBqC,qBAC3Cr6D,EAAOluB,QAAU,SAAiCyiG,EAAaC,EAAcF,EAAQo+D,EAAQ/xE,GACtFA,IAAMA,EAAO,CAAC,GACnB,IAAIuyE,EAAUvyE,EAAKuyE,QACfC,EAAMD,EAAU3+D,EAAY23D,OAAS,CAAC,EAAI33D,EAC1C6+D,EAAOF,EAAU1+D,EAAa03D,MAAQ13D,EACtCntG,EAAS6rK,EAAU,SAAW,GAClC,SAASG,EAAUj4H,GACjB,IAAI5a,EAAI2yI,EAAI/3H,GAEZ,OADIigD,EAAiB76D,KAAIA,EAAI65D,EAAqB75D,SACrC,IAANA,EAAeA,GAAK4yI,EAAKv+D,WAAa,CAAC,GAAGz5D,EACnD,CACA,IAAIk4H,EAASD,EAAU,SACnBE,EAASF,EAAU,SACnBG,EAAYH,EAAU,YAEtBrH,EAAW13D,EAAOjtG,EAAS,WADTixF,EAAoBk7E,GAAa,QAAUD,EAAS,SAAW,QAErF,GAAiB,SAAbvH,GAAoC,SAAbA,EACzB13D,EAAOjtG,EAAS,eACX,GAAiB,WAAb2kK,EAAuB,CAChC,IAAID,EAAQqH,EAAKrH,MAAQkH,EAAWlH,MAClCwH,EACAb,GAEFU,EAAKvhD,MAAQohD,EAAWphD,MACtByhD,EACAZ,EACAl+D,EAAa+c,SACbw6C,EAEJ,KAAsB,kBAAX2G,SAEQ,IADFp+D,EAAOjtG,EAAS,YACN+rK,EAAKpH,SAAW,OAC/BkH,GAAS5+D,EAAO,YAE9B,CACF,IAIEm/D,GAA6BrnI,EAAW,CAC1C,4CAA4Ct6B,EAASkuB,GAEnD,IAAIotG,EAAMtN,KACN9R,EAAmB29C,KACvB3rI,EAAOluB,QAAU,SAAgCyiG,EAAaC,EAAcF,EAAQt2G,GAClF,IAAIk1K,EAAUl1K,EAAQk1K,QAClBC,EAAMD,EAAU3+D,EAAY23D,OAAS,CAAC,EAAI33D,EAC1C6+D,EAAOF,EAAU1+D,EAAa03D,MAAQ13D,EACtCk/D,EAAQR,EAAUllD,EAAiBk+C,MAAQl+C,EAC3C3mH,EAAS6rK,EAAU,SAAW,GAC9BS,EAAUvmC,EAAIt4B,QAAQq+D,EAAKC,EAAMM,EAAO,UAAWR,EAAwC,IAA7B1+D,EAAa65D,SAAW,QAAW,GACjGuF,EAAYxmC,EAAIt4B,QAAQq+D,EAAKC,EAAMM,EAAO,YAAaR,EAAU1+D,EAAa85D,WAAa,OAAI,GAC/FuF,EAAYzmC,EAAIt4B,QAAQq+D,EAAKC,EAAMM,EAAO,aAAcR,EAAU1+D,EAAa83D,eAAY,IAAW8G,EAAKt/J,OAC/FwgG,EAAOjtG,EAAS,SAAU6rK,GAAWl1K,EAAQ81K,YAAcH,GAAWC,GAAaC,EAAY,UAAY,aAElHT,EAAK/E,eACL+E,EAAK9E,iBACL8E,EAAK9G,UAEhB,CACF,IAIEyH,GAAoB3nI,EAAW,CACjC,mCAAmCt6B,EAASkuB,GAE1CA,EAAOluB,QAAU,SAAyByiG,GACxC,IACIy/D,EADe,CAAC,eAAgB,iBAAkB,kBACzBzpJ,QAAO,SAAShB,GAC3C,YAA0B,IAAnBgrF,EAAYhrF,EACrB,IAIA,GAAIyqJ,EAAU75I,OAHA,SAAS5Q,GACrB,OAAOgrF,EAAYhrF,KAAOgrF,EAAYy/D,EAAU,GAClD,KACqD,IAArBA,EAAUz1K,OACxC,OAAOg2G,EAAYy/D,EAAU,GAEjC,CACF,IAIEC,GAAmC7nI,EAAW,CAChD,wCAAwCt6B,EAASkuB,GAE/C,IAAIotG,EAAMtN,KACN0gB,EAAWxJ,KACfh3G,EAAOluB,QAAU,SAAsCoiK,EAAaC,EAAcxzE,GAChF,IAMIxgG,EAAG64I,EANHvsG,EAAQk0D,EAAKv3F,KACb6uI,EAAgBt3C,EAAKs3C,eAAiB,UACtCm8B,EAAkBD,EAAa1nI,GAC/B4nI,EAASjnC,EAAI90C,oBAAoB47E,EAAYznI,IAAUynI,EAAYznI,GAAS,GAC5E0+F,EAAUgpC,EAAa1nI,GAAS,GAChC2/G,EAAY5L,EAASxI,eAAem8B,EAAc1nI,EAAOwrG,GAE7D,IAAK93I,EAAI,EAAGA,EAAIk0K,EAAO91K,OAAQ4B,IAAK,CAClC,IAAIm4I,EAAS+7B,EAAOl0K,GACfitI,EAAI7hH,cAAc+sH,GAIrBU,EAAUoT,EAAU/T,QAAQC,IAH5BU,EAAUoT,EAAU/T,QAAQ,CAAC,IACrBJ,IAAiB,EAI3Be,EAAQE,OAAS/4I,GACc,IAA3B64I,EAAQf,IACVt3C,EAAK2zE,mBAAmBh8B,EAAQU,EAASm7B,EAAcxzE,GAEzDwqC,EAAQrsI,KAAKk6I,EACf,CACA,IAAIN,EAAe0T,EAAU1T,eAC7B,IAAKv4I,EAAI,EAAGA,EAAIu4I,EAAan6I,OAAQ4B,KACnC64I,EAAUN,EAAav4I,IACf+4I,OAAS/N,EAAQ5sI,OACzBoiG,EAAK2zE,mBAAmB,CAAC,EAAGt7B,EAASm7B,EAAcxzE,EAAM,CAAC,GAC1DwqC,EAAQrsI,KAAKk6I,GAEf,GAAI5L,EAAI90C,oBAAoB87E,GAAkB,CAC5C,IAAInjK,EAAMlQ,KAAK8mB,IAAIusJ,EAAgB71K,OAAQ4sI,EAAQ5sI,QACnD,IAAK4B,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBitI,EAAI3tC,kBAAkB0rC,EAAQhrI,GAAIi0K,EAAgBj0K,GAEtD,CACA,OAAOgrI,CACT,CACF,IAIEopC,GAA8BnoI,EAAW,CAC3C,6CAA6Ct6B,EAASkuB,GAEpD,IAAIotG,EAAMtN,KACNnvB,EAAWlB,IAAgBkB,SAC3Bqd,EAAmB29C,KACnB6I,EAAkBT,KAClBU,EAA+BR,KAqDnC,SAASS,EAAuBC,EAASC,GACvC,SAAStgE,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOqgE,EAASC,EAAU5mD,EAAiByhD,gBAAiBr0H,EAAMuuD,EAC/E,CACc2K,EAAO,aAEnBA,EAAO,cACPA,EAAO,SAEX,CA7DAt0E,EAAOluB,QAAU,SAAiCyiG,EAAaC,EAAcF,EAAQo+D,EAAQ10K,GACtFA,IAASA,EAAU,CAAC,GACzB,IAAIwwK,EAAal6D,EAAO,cACnB84B,EAAI7hH,cAAcijJ,WAAoBh6D,EAAag6D,WACxD,IAAIqG,EAAeL,EAAgBjgE,GAEnC,GADqBD,EAAO,kBACR,CACbt2G,EAAQ82K,kBACXxgE,EAAO,kBAEJt2G,EAAQ+2K,qBACXzgE,EAAO,qBAET,IAAI9I,EAAOxtG,EAAQwtG,MAAQ,CAAC,EACxBwpE,EAAYxgE,EAAa1gG,MAEzBmhK,GAAgD,KADrCzgE,EAAaw5D,mBAAqB,IACpBpsK,QAAQ,UAAmB+uG,EAAS3yG,EAAQk3K,SAGvEF,GAAaA,IAAchnD,EAAiBl6G,MAAM61F,KAAOqrE,EAAYxpE,EAAK13F,MAQ5E,GANAs5H,EAAIp4B,WAAWV,EAAQ,WAAY9I,EAAM,CAAE0J,aAAc,CACvDphG,MAAOmhK,KAEJj3K,EAAQm3K,iBAA8B,kBAAXzC,GAAyC,QAAXA,GAC5Dp+D,EAAO,kBAEJt2G,EAAQo3K,MAAO,CAClB,IAAIC,EAAY/gE,EAAO,aAClBt2G,EAAQs3K,kBAAkC,SAAdD,GAC/B/gE,EAAO,iBAEX,CACA,GAAe,aAAXo+D,EAAuB,CACzB,IAAI59F,EAAaw/B,EAAO,cACxBmgE,EAA6BlgE,EAAaC,EAAc,CACtDprG,KAAM,kBACN6uI,cAAe,UACfq8B,mBAAoBI,IAEjBlgE,EAAai7D,gBAAgBlxK,eACzBi2G,EAAai7D,gBAEjBzxK,EAAQu3K,OAAUzgG,GAAyB,SAAX49F,IACnCp+D,EAAO,eAAgBugE,GACvBvgE,EAAO,kBACPA,EAAO,eACPA,EAAO,qBAEX,CACF,CACF,CAWF,IAIEkhE,GAAiCppI,EAAW,CAC9C,gDAAgDt6B,EAASkuB,GAEvD,IAAIw0I,EAAkBT,KACtB/zI,EAAOluB,QAAU,SAAoCyiG,EAAaC,EAAcF,EAAQo+D,EAAQ10K,GACzFA,IAASA,EAAU,CAAC,GACzB,IAAIy3K,EAAiBz3K,EAAQy3K,eACzBZ,EAAeL,EAAgBjgE,GAClBD,EAAO,eACRA,EAAO,iBAAkBugE,GACxBvgE,EAAO,aAAcmhE,IACtBnhE,EAAO,iBAAkBugE,EAC3C,CACF,IAIEa,GAAmBtpI,EAAW,CAChC,sCAAsCt6B,EAASkuB,GAE7C,IAAIotG,EAAMtN,KACN0gB,EAAWxJ,KACX2+B,EAA0B3C,KAC1B4C,EAAyBnC,KACzBoC,EAA0BtB,KAC1BuB,EAA6BN,KAC7B/gE,EAAa87D,KACjBvwI,EAAOluB,QAAU,SAA0ByiG,EAAaC,EAAcpsC,GACpE,IAAI2tG,EAAcv1B,EAAS1I,aAAatjC,EAAc,YAClDwhE,EAAazhE,EAAY8wC,UAAY,CAAC,EAC1C,SAAS/wC,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAO0hE,EAAYD,EAAathE,EAAYr5D,EAAMuuD,EAC/D,CACA,IAAI/2E,EAASw1C,EAAOx1C,QAAU,CAAEnG,EAAG,EAAG0E,EAAG,EAAG7H,EAAG,EAAGiD,EAAG,GACjDuU,EAAIsnC,EAAOpzD,MAAQ4d,EAAOtJ,EAAIsJ,EAAOrG,EACrCvb,EAAIo3D,EAAOnzD,OAAS2d,EAAOnG,EAAImG,EAAOzB,EAEtC8kJ,EAA6B,MADf3hE,EAAO,eAErBo8D,EAAgBp8D,EAAO,iBAC3BA,EACE,YACkB,aAAlBo8D,EAA+B,IAAMuF,EAAan1I,EAAI9vB,GAAK,IAE7D,IAAI4/J,EAAUt8D,EAAO,WACrBA,EACE,MACY,aAAZs8D,EAAyB,EAAIqF,EAAajlK,EAAI8vB,GAEhD,IAIIo1I,EAAUC,EAAUC,EAFpBC,EAAoB,UAFb/hE,EAAO,QAGdgiE,EAAoB,UAFbhiE,EAAO,QAIdiiE,EAAiB,OACjBN,GACFG,EAAiB,SACjBG,EAAiBD,EAAW,OAAS,QACrCJ,EAAWI,EAAW,KAAO,EAC7BH,EAAW,KAEXC,EAAiBC,EAAW,SAAW,MACvCE,EAAiB,SACjBL,EAAW,GACXC,EAAWE,EAAW,KAAO,GAE/BjpC,EAAI94B,OAAO0hE,EAAYD,EAAa,CAClCzvK,EAAG,CACDmjG,QAAS,SACT5hF,IAAKyuJ,GAAY,EAAI,EACrB1uJ,IAAK0uJ,EAAW,EAAI,EACpB3sE,KAAMusE,IAEP,KACH9oC,EAAI94B,OAAO0hE,EAAYD,EAAa,CAClCxvK,EAAG,CACDkjG,QAAS,SACT5hF,IAAKwuJ,GAAY,EAAI,EACrBzuJ,IAAKyuJ,EAAW,EAAI,EACpB1sE,KAAMwsE,IAEP,KACH7hE,EAAO,UAAWiiE,GAClBjiE,EAAO,QACPA,EAAO,UAAW8hE,GAClB9hE,EAAO,QACP84B,EAAIpI,UAAUgxC,EAAYD,EAAa,CAAC,IAAK,MAC7CzhE,EAAO,gBACPA,EAAO,gBACPA,EAAO,eACPA,EAAO,eACPA,EAAO,WACP,IAAI05D,EAAoB5gC,EAAI94B,OAAO0hE,EAAYD,EAAa,CAC1D/H,kBAAmB,CACjBvkE,QAAS,aACTE,KAAM,UACN/gF,OAAQqtJ,EAAa,CACnB,UACA,SACA,cACA,aACA,iBACA,iBACE,CACF,UACA,SACA,eACA,cACA,gBACA,kBAGH,qBACH3hE,EAAO,qBAA8D,IAAzC05D,EAAkBpsK,QAAQ,UAAmB,mBAAqB,iBAC9F+zK,EAAwBK,EAAYD,EAAazhE,EAAQ,UACzD,IAAI9I,EAAOpjC,EAAOojC,KACd7K,EAAO,CACT20E,kBAAkB,EAClBR,kBAAkB,EAClBC,qBAAqB,EACrBjB,YAAY,EACZtoE,SAE2C,IAAzCwiE,EAAkBpsK,QAAQ,YAC5B++F,EAAKu0E,QAAU,SAEjBY,EAA2BE,EAAYD,EAAazhE,EAAQ,SAAU3T,GACtEk1E,EAAwBG,EAAYD,EAAazhE,EAAQ,SAAU3T,GACnEi1E,EAAuBI,EAAYD,EAAazhE,EAAQ,SAAU3T,GAClE2T,EAAO,aAAclsC,EAAOg9E,WAAWC,UACvC,IAAImxB,EAAWT,EAAYxH,eAAiBwH,EAAYjH,SAAWtjE,EAC/DirE,EAAgBrpC,EAAInkC,WAAW,CAAC,EAAGuC,EAAM,CAC3C1B,OAAQ0sE,EAAS1sE,OACjB3jG,KAAMinI,EAAIV,QAAQ8pC,EAASrwK,QAE7BinI,EAAIp4B,WAAWV,EAAQ,aAAcmiE,GACrCniE,EAAO,aAAc2hE,EAAa,MAAQ,QAC5C,CACF,IAIES,GAAoBtqI,EAAW,CACjC,wCAAwCt6B,EAASkuB,GAE/C,IAAIg8D,EAAY7G,IACZi4C,EAAMtN,KACN62C,EAAcnE,KACdoE,EAAmBlB,KACnBlM,EAAe/7D,IAAiBxqE,QAChC2tF,EAAUlE,KAAmBkE,QACjC,SAASimD,EAAQC,EAAYzvK,GAC3B,IAAI0xI,EAAe1xI,EAAOlF,MAAM,EAAGkF,EAAO9I,OAAS,GACnD,OAAO8I,EAAS+lI,EAAIhvC,eAAe04E,EAAY/9B,GAAc9xI,OAAS,CAAC,EAAI6vK,CAC7E,CACA92I,EAAOluB,QAAU,SAASilK,EAAmBC,EAAcC,EAAe7uG,EAAQksC,EAAQ3T,GACxF,IAAIt5F,EAASs5F,EAAKt5F,OACduiK,EAAUjpE,EAAKipE,QACfsN,EAAU,YAAaD,EACvB1iE,EAAcsiE,EAAQG,EAAc3vK,GACpCmtG,EAAeqiE,EAAQI,EAAe5vK,GACtCutG,EAAWiiE,EAAQI,EAAcpiE,WAAa,CAAC,EAAGxtG,IAAW,CAAC,EAC9D8vK,EAAS,WAGX,cAFOH,EAAa/E,iBACbgF,EAAchF,UACd8E,EAAmBC,EAAcC,EAAe7uG,EAAQksC,EAAQ3T,EACzE,EACA,GAAIu2E,EAAS,CACX,IAAIE,EAAYhvG,EAAO0+E,YAAc,CAAC,EAClC+iB,EAAUv1D,EAAOjtG,EAAS,aAC9B,GAAIwiK,EAAS,CACX,IAAIwN,EAAkBzmD,EAAQqmD,EAAe,YAAc7pC,EAAIhvC,eAAe64E,EAAe,qBAAqBhwK,OAAS,UACvHqwK,EAAQF,EAAUvN,GAetB,YAdIyN,GACFA,EAAM,GAAGx4K,KAAKq4K,GACVG,EAAM,KAAOD,IACfC,EAAM,IAAK,EACXlqC,EAAI5yB,KAAK,CACP,sBACAqvD,EACA,UACA,gDACA9kK,KAAK,QAGTqyK,EAAUvN,GAAW,CAACwN,EAAiBJ,EAAe,CAACE,IAG3D,CACF,CACA,IAAII,EAAQhjE,EAAYq1D,EAAU,OAC9B4N,EAAQjjE,EAAYq1D,EAAU,OAC9B6N,EAAcz7E,EAAUu7E,IAAUv7E,EAAUw7E,IAAUD,EAAQC,EACvDljE,EAAOjtG,EAASuiK,EAAU,QAAS6N,GAE5CnjE,EAAOjtG,EAASuiK,EAAU,QAE1Bt1D,EAAOjtG,EAASuiK,EAAU,OAC1Bt1D,EAAOjtG,EAASuiK,EAAU,QAE5B,IAEI8N,EAOElG,EATFmG,EAAQpjE,EAAYvB,WACpB4kE,EAAchjE,EAAS5B,gBAEb,IAAV2kE,IAAkBD,GAAsBlO,EAAamO,SACrC,IAAhBC,IAAwBF,GAAsBlO,EAAaoO,IAC/DtjE,EAAOjtG,EAAS,iBAAkBqwK,GAClCpjE,EAAOjtG,EAAS,cAChBitG,EAAOjtG,EAAS,gBACD,iBAAXA,IAEEA,GAAU6vK,IAAS1F,EAAgBmF,EAAYpiE,IACnCD,EAAOjtG,EAAS,YAAamqK,KAEvCnqK,GAAUutG,IAAUJ,EAAaK,UAAYD,GACjDgiE,EAAiBriE,EAAaC,EAAcpsC,IAGlD,CACF,IAIEyvG,GAA0BzrI,EAAW,CACvC,+CAA+Ct6B,EAASkuB,GAEtD,IAAIotG,EAAMtN,KACN0gB,EAAWxJ,KACXm7B,EAAkBD,KAClB6E,EAAqBL,KACzB12I,EAAOluB,QAAU,SAA8Bw7I,EAAU33C,GACvD,SAASrB,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOg5C,EAAU33C,EAAWw8D,EAAiB/2H,EAAMuuD,EAChE,CACA2K,EAAO,yBACPA,EAAO,8BACPA,EAAO,wBACP,IACIwjE,EAAWC,EADXX,EAAYzhE,EAAUmxC,WAE1B,SAASkxB,EAAS58H,EAAMuuD,GACtB,OAAOyjC,EAAI94B,OAAOwjE,EAAWC,EAAY5F,EAAgBF,UAAW72H,EAAMuuD,EAC5E,CACA,IAAK,IAAItjG,KAAK+wK,EAAW,CACvB,IAAIE,EAAQF,EAAU/wK,GACtB,GAAIixK,EAAM,GACRQ,EAAYxqB,EAASjnJ,IAAM,CAAC,GAC5B0xK,EAAav3B,EAAS1I,aAAaniC,EAAWtvG,EAAG,cACtCwwJ,MAAQxwJ,EACnB0wK,EAAmBe,EAAWC,EAAYpiE,EAAWqiE,EAAU,CAAE3wK,OAAQ,GAAIuiK,QAAS,UACjF,CACL,IAAK,IAAIzpK,EAAI,EAAGA,EAAIm3K,EAAM,GAAG/4K,OAAQ4B,IACnCm3K,EAAM,GAAGn3K,YAEJw1G,EAAUmxC,WAAWzgJ,EAC9B,CACF,CACF,CACF,IAIE4xK,GAA+B7rI,EAAW,CAC5C,oDAAoDt6B,EAASkuB,GAE3D,IAAIotG,EAAMtN,KACNmrC,EAAgB1B,KAAkB0B,cAClCtB,EAAcJ,KAAkBI,YACpC3pI,EAAOluB,QAAU,SAA4Bo8I,EAAU1X,GACrD,SAASj1I,EAAQ26F,EAAMy1D,GACrB,IAAI1oI,EAAMizE,EAAK,IAAMy1D,QACT,IAAR1oI,IACFizE,EAAKy1D,GAAM1oI,EAEf,CACA,SAASivJ,EAAiBC,EAAWC,GACnC,IAAIl8E,EAAOk8E,EAAMz5K,UAAYyuI,EAAIhvC,eAAe+5E,EAAWC,EAAMz5K,WAAWsI,MAAQkxK,EACpF,GAAIj8E,EACF,GAAIA,EAAK+1E,UACP/1E,EAAK4tE,SAAWtzB,EAAWt6C,EAAK+1E,eAC3B,CACL,IAAI3Z,EAAQqR,EAAYztE,GACpBm8E,EAAS/f,EAAMqZ,MACf0G,QAAwB,IAAd/f,EAAMzwI,MAClBtmB,EAAQ26F,EAAMk8E,EAAMvwJ,MAElBwwJ,QAAwB,IAAd/f,EAAM1wI,MAClBrmB,EAAQ26F,EAAMk8E,EAAMxwJ,KAElB0wI,EAAMwZ,gBACRvwK,EAAQ26F,EAAM,aAElB,CAEJ,CACA,IAAK,IAAI/7F,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IAAK,CACxC,IAAIo6G,EAAQ2zC,EAAS/tJ,GACjBm4K,EAAS/9D,EAAM1E,QAAQwvC,SAC3B,GAAIizB,EACF,GAAIvwK,MAAMiI,QAAQsoK,GAChB,IAAK,IAAIlyK,EAAI,EAAGA,EAAIkyK,EAAO/5K,OAAQ6H,IACjC8xK,EAAiB39D,EAAO+9D,EAAOlyK,SAGjC8xK,EAAiB39D,EAAO+9D,GAGxBrN,EAAc1wD,EAAO,gBACvB29D,EAAiB39D,EAAO,CACtB57G,UAAW,cACXkpB,IAAK,OACLD,IAAK,QAGX,CACA,IAAK,IAAIvhB,KAAKmwI,EAAWsQ,WACvBoxB,EAAiB1hC,EAAWnwI,GAAI,CAAEwhB,IAAK,OAAQD,IAAK,QAExD,CACF,IAIE2wJ,GAAensI,EAAW,CAC5B,oCAAoCt6B,EAASkuB,GAE3C,IAAIg8D,EAAY7G,IACZi4C,EAAMtN,KACN6pC,EAAcJ,KAAkBI,YACpC3pI,EAAOluB,QAAU,SAAcozG,EAAI3K,EAAO5Z,GACxC,IA+CMoO,EA/CFynC,EAAatxB,EAAGonB,YAChBnW,EAAOx1B,EAAKw1B,KACZ4iB,EAAep4C,EAAKo4C,aACpBp6I,EAAYo6I,EAAe3L,EAAIhvC,eAAemc,EAAOw+B,GAAc9xI,MAAQszG,EAC3E+9C,EAAQqR,EAAYhrK,GACpBgzK,GAAsB,IAAfrZ,EAAMqZ,KACb9pJ,EAAMywI,EAAMzwI,IACZD,EAAM0wI,EAAM1wI,IACZmqB,EAAMumH,EAAMvmH,IACZymI,EAAS,WACX,OAAOprC,EAAI7V,QAAQx2H,KAAK8mB,IAAK,KAAMsuG,EACrC,EACIsiD,EAAS,WACX,OAAOrrC,EAAI7V,QAAQx2H,KAAK6mB,IAAK,KAAMuuG,EACrC,OACY,IAARtuG,EACFA,EAAM2wJ,IACG7G,IAEP9pJ,EADElpB,EAAUmrK,UAAY9tE,EAAUn0E,GAC5B9mB,KAAK8mB,IAAIA,EAAK2wJ,KAEdA,UAGE,IAAR5wJ,EACFA,EAAM6wJ,IACG9G,IAEP/pJ,EADEjpB,EAAUmrK,UAAY9tE,EAAUp0E,GAC5B7mB,KAAK6mB,IAAIA,EAAK6wJ,KAEdA,KAGN9G,QAAgB,IAAR5/H,IACNnqB,EAAMmqB,EAAMA,EAAMlqB,EACpBA,EAAMkqB,GAAOnqB,EAAMmqB,GACVnqB,EAAMmqB,EAAMA,EAAMlqB,IAC3BD,EAAMmqB,GAAOA,EAAMlqB,KAGnBA,IAAQD,IACVC,GAAO,GACPD,GAAO,IAET0wI,EAAM0R,MAAM,MAAOniJ,GACnBywI,EAAM0R,MAAM,MAAOpiJ,GACf0wI,EAAMwZ,iBAEW/iE,EAAflnF,EAAMD,EAAM,EAAS4uH,EAAWxjC,WAAWs/D,UACtCzqJ,GAAO,EAAS2uH,EAAWxjC,WAAWo/D,WACpC57B,EAAWxjC,WAAWq/D,gBACjC/Z,EAAM0R,MAAM,aAAcj7D,GAE9B,CACF,IAIE2pE,GAAqBtsI,EAAW,CAClC,qCAAqCt6B,EAASkuB,GAE5C,IAAI0tE,EAASD,IACTkrE,EAAUpP,KACdvpI,EAAOluB,QAAU,CACf4+G,WAAY,YACZtnH,KAAM,aACNqrG,WAAYy8D,KACZljD,iBAAkBkkD,KAClB3jB,qBAAsBspB,KACtBe,eAAgBlC,KAChBtuB,mBAAoB6vB,KACpBrf,KAAM2f,KAGN7qE,OAAQA,EAAOA,OACfmB,aAAcnB,EAAOmB,aACrBgqE,SAAUnrE,EAAOzmG,IACjBuiK,aAAc97D,EAAOzqE,QACrBgoI,cAAe0N,EAAQ1N,cACvBtB,YAAagP,EAAQhP,YACrBQ,aAAcwO,EAAQxO,aACtBE,UAAWsO,EAAQtO,UACnBE,mBAAoBoO,EAAQpO,mBAC5Bc,4BAA6BsN,EAAQtN,4BAEzC,IAIEyN,GAAmB1sI,EAAW,CAChC,iCAAiCt6B,EAASkuB,GAExC,IAAIotG,EAAMtN,KACNzkC,EAAmBrD,IAAgBqD,iBACvCr7D,EAAOluB,QAAU,CACfsxJ,SAAU,SAAS7oD,GACjB,OAAOA,EAAM9N,SAAW8N,EAAMvgG,OAAyC,IAAjCugG,EAAMvgG,KAAKpY,QAAQ,QAC3D,EACAm3K,WAAY,SAASx+D,GACnB,OAAOA,EAAM9N,UAAY8N,EAAMvgG,OAA2C,IAAnCugG,EAAMvgG,KAAKpY,QAAQ,YAC3C,UAAf24G,EAAMv3G,KACR,EACAg2K,QAAS,SAASz+D,GAChB,OAAOA,EAAM9N,SAAW8N,EAAMvgG,OAAwC,IAAhCugG,EAAMvgG,KAAKpY,QAAQ,OAC3D,EACAq3K,SAAU,SAAS1+D,GACjB,IAAI9xF,EAAS8xF,EAAM9xF,OACnB,OAAO2kH,EAAI7hH,cAAc9C,KAAY2kH,EAAI90C,oBAAoB7vE,EAAOtiB,OAASk1F,EAAiB5yE,EAAOtiB,MACvG,EAEJ,IAIE+yK,GAAgC9sI,EAAW,CAC7C,8CAA8Ct6B,EAASkuB,GAErD,IAAIg8D,EAAY7G,IAChBn1D,EAAOluB,QAAU,SAA0ByoG,EAAO/J,GAC3CA,IACHA,EAAS,GAEX,IAAI/nF,EAAS8xF,EAAM9xF,OACf0wJ,EAAU1wJ,EAAO2wJ,SAAW,EAC5BC,EAAU5wJ,EAAO6wJ,SAAW,EAC5BC,EAA6B,SAApB9wJ,EAAO+wJ,SAAsB,SAASh5I,GACjD,OAAOz/B,KAAK2xC,KAAKlS,EAAI24I,EACvB,EAAI,SAAS34I,GACX,OAAOA,EAAI24I,CACb,EACA,OAAO,SAAS34I,GACd,IAAIi5I,EAAWF,EAAO/4I,EAAIgwE,GAC1B,OAAOxU,EAAUy9E,IAAaA,EAAW,EAAI14K,KAAK6mB,IAAI6xJ,EAAUJ,GAAW,CAC7E,CACF,CACF,IAIEK,GAAmBttI,EAAW,CAChC,+BAA+Bt6B,GAE7B,IAAIs7H,EAAMtN,KACVhuH,EAAQ6nK,WAAa,SAASp/D,GAC5B,OAAOA,EAAMqiD,SAAWriD,EAAMs5B,MAAQt5B,EAAMu5B,OAASv5B,EAAMq/D,GAC7D,EACA9nK,EAAQ+nK,kBAAoB,SAASt/D,EAAOwV,GAC1C,GAAmB,UAAfxV,EAAMv3G,KAAkB,CAG1B,IAFA,IAAI82K,EAAQv/D,EAAMu/D,OAAS,GACvBC,EAAQx/D,EAAMw/D,OAAS,GAClB55K,EAAI,EAAGA,EAAI25K,EAAMv7K,OAAQ4B,IAChC,IAAK,IAAIiG,EAAI,EAAGA,EAAI2zK,EAAMx7K,OAAQ6H,IAChC,IAA+C,IAA3C2pH,EAASnuH,QAAQk4K,EAAM35K,GAAK45K,EAAM3zK,IACpC,OAAO,EAIb,OAAO,CACT,CACA,OAAwD,IAAjD2pH,EAASnuH,QAAQkQ,EAAQ6nK,WAAWp/D,GAC7C,EACAzoG,EAAQkoK,KAAO,SAASjqD,EAAUvvF,GAEhC,IADA,IAAIujC,EAAM,IAAIh8D,MAAMgoH,EAASxxH,QACpB4B,EAAI,EAAGA,EAAI4vH,EAASxxH,OAAQ4B,IACnC4jE,EAAI5jE,GAAKqgC,EAEX,OAAOujC,CACT,EACAjyD,EAAQmoK,IAAM,SAASC,EAAS15I,GAE9B,IADA,IAAIujC,EAAM,IAAIh8D,MAAMmyK,EAAQ37K,QACnB4B,EAAI,EAAGA,EAAI+5K,EAAQ37K,OAAQ4B,IAClC4jE,EAAI5jE,GAAK+5K,EAAQ/5K,GAAG85K,IAAIz5I,GAE1B,OAAOujC,CACT,EACAjyD,EAAQqoK,oBAAsB,SAASngK,EAAM6mC,EAAIC,EAAIs5H,GACnD,MAAa,YAATpgK,EAA2BogK,GAAOtoK,EAAQuoK,WAAWx5H,EAAIC,GACnC,MAAnB9mC,EAAKwO,OAAO,GAAaq4B,EAAKC,CACvC,EACAhvC,EAAQwoK,WAAa,SAAS17C,EAAI27C,EAAQC,GACxC,IAAwB,IAApBA,EAAU14K,MACR04K,EAAU14K,OAAS,GAAK04K,EAAU14K,MAAQ88H,EAAGrgI,OAC/Ci8K,EAAUr4G,SAAW,EAChBq4G,EAAU14K,OAAQ,OAIzB,IAFA,IAAI24K,EAAcvlI,IACdjkC,EAAM2tH,EAAGrgI,OACJ4B,EAAI,EAAGA,EAAI8Q,EAAK9Q,KACvBs6K,EAAcF,EAAO37C,EAAGz+H,MACLq6K,EAAUr4G,WAC3Bq4G,EAAU14K,MAAQ3B,EAClBq6K,EAAUr4G,SAAWs4G,GAI3B,OAAOD,CACT,EACA1oK,EAAQ4oK,MAAQ,SAASv5F,EAAIoiD,EAAIo3C,GAC/B,OAAOx5F,EAAKoiD,EAAK,GAAY,IAAPpiD,EAAWw5F,EAAUzlI,GAC7C,EACApjC,EAAQuoK,WAAa,SAASx5H,EAAIC,GAChC,OAAO,SAASkoB,GACd,IAAI1iE,EAAIu6C,EAAGmoB,GACPziE,EAAIu6C,EAAGkoB,GACX,OAAOjoE,KAAK2xC,KAAKpsC,EAAIA,EAAIC,EAAIA,EAC/B,CACF,EACAuL,EAAQ8oK,cAAgB,SAAS1lJ,EAAIqlF,EAAOqkB,GAC1C,IAAIi8C,EAAc,UAAW3lJ,EAAKA,EAAGpzB,MAAQozB,EAAG2lJ,YAC5C92G,EAAM,CACRlpB,KAAM0/D,EAAMg+B,OACZ2V,SAAU3zC,EACVugE,YAAavgE,EAAMz4G,MACnB+4K,eAEF,GAAItgE,EAAM6rB,eAAgB,CACxB,IAAI20C,EAAexgE,EAAM6rB,eAAey0C,GACZ,IAAxBE,EAAax8K,OACfwlE,EAAIi3G,WAAaD,EAAa,GAE9Bh3G,EAAIg3G,aAAeA,CAEvB,MACEh3G,EAAIi3G,WAAaH,EAcnB,OAZItgE,EAAM1E,QAAQolE,UAChBl3G,EAAMw2C,EAAM1E,QAAQolE,UAAUl3G,EAAK7uC,EAAIqlF,EAAOqkB,EAAIi8C,IAE9C,SAAU3lJ,EAAI6uC,EAAIz9D,EAAI4uB,EAAGgmJ,KACpB,MAAOhmJ,IAAI6uC,EAAIz9D,EAAI4uB,EAAG5uB,GAC3B,SAAU4uB,EAAI6uC,EAAIx9D,EAAI2uB,EAAGimJ,KACpB,MAAOjmJ,IAAI6uC,EAAIx9D,EAAI2uB,EAAG3uB,GAC3B2uB,EAAGq0F,KAAIxlD,EAAI8vE,MAAQ3+G,EAAGq0F,IACtBr0F,EAAGu0F,KAAI1lD,EAAI+vE,MAAQ5+G,EAAGu0F,SACL,IAAjBv0F,EAAGkmJ,YAAsBr3G,EAAIv9D,EAAI0uB,EAAGkmJ,YAE1CtpK,EAAQupK,sBAAsBt3G,EAAKw2C,EAAOsgE,GACnC92G,CACT,EACAjyD,EAAQupK,sBAAwB,SAASb,EAAWjgE,EAAOsgE,GACzD,IAAIlxB,EAAapvC,EAAMqvC,YACvB,GAAKD,EAGL,IAAK,IAAIxpJ,EAAI,EAAGA,EAAIwpJ,EAAWprJ,OAAQ4B,IAAK,CAC1C,IAAIy8F,EAAO+sD,EAAWxpJ,GAClBf,EAAMk8K,EAAY1+E,GACtB,QAAuB,IAAnB49E,EAAUp7K,GAAiB,CAC7B,IACIm8K,EAAWC,EADLpuC,EAAIhvC,eAAemc,EAAO3d,GAAM31F,MACT4zK,QAChB,IAAbU,IAAqBf,EAAUp7K,GAAOm8K,EAC5C,CACF,CACF,EACAzpK,EAAQ2pK,4BAA8B,SAASjB,EAAWjgE,EAAOmhE,GAC/D,IAAI/xB,EAAapvC,EAAMqvC,YACvB,GAAKD,EAGL,IAAK,IAAIxpJ,EAAI,EAAGA,EAAIwpJ,EAAWprJ,OAAQ4B,IAAK,CAC1C,IAAIy8F,EAAO+sD,EAAWxpJ,GAClBf,EAAMk8K,EAAY1+E,GACtB,QAAuB,IAAnB49E,EAAUp7K,GAAiB,CAG7B,IAFA,IAAI6pB,EAAMmkH,EAAIhvC,eAAemc,EAAO3d,GAAM31F,MACtC00K,EAAS,IAAI5zK,MAAM2zK,EAAan9K,QAC3B6H,EAAI,EAAGA,EAAIs1K,EAAan9K,OAAQ6H,IACvCu1K,EAAOv1K,GAAKo1K,EAAavyJ,EAAKyyJ,EAAat1K,IAE7Co0K,EAAUp7K,GAAOu8K,CACnB,CACF,CACF,EACA,IAAIC,EAAc,CAChB3uE,IAAK,KACL4uE,UAAW,WACXnyC,OAAQ,QACR9gH,OAAQ,QACR,gBAAiB,QACjBkzJ,QAAS,UAEX,SAASR,EAAY1+E,GACnB,OAAOg/E,EAAYh/E,IAASA,CAC9B,CACA,SAAS4+E,EAAavyJ,EAAK4xJ,GACzB,OAAI9yK,MAAMiI,QAAQ6qK,GACZ9yK,MAAMiI,QAAQiZ,IAAQlhB,MAAMiI,QAAQiZ,EAAI4xJ,EAAY,KAC/C5xJ,EAAI4xJ,EAAY,IAAIA,EAAY,SADzC,EAIO5xJ,EAAI4xJ,EAEf,CACA,IAAIkB,EAAc,CAChBz1K,GAAG,EACHC,GAAG,GAEDy1K,EAAmB,CACrB,aAAa,EACb,aAAa,GAEflqK,EAAQmqK,eAAiB,SAAStwE,GAChC,MAAyB,kBAAdA,KACFqwE,EAAiBrwE,EAC5B,EACA75F,EAAQoqK,UAAY,SAASvwE,GAC3B,MAAyB,kBAAdA,KACFowE,EAAYpwE,EACvB,CACF,IAIEwwE,GAAyB/vI,EAAW,CACtC,uCAAuCt6B,EAASkuB,GAC9CA,EAAOluB,QAGP,SAAgB4P,GACd,IAAIm5B,EAAO,GAkBX,OAjBAn5B,EAAKngB,QAAQm5E,GAAS,SAASt5C,EAAG0+G,EAAS30I,GACzC,IAAInI,EAAO88I,EAAQ7wI,cAOnB,IANA9D,EAkBJ,SAAqBA,GACnB,IAAIonC,EAAUpnC,EAAKxD,MAAM0b,GACzB,OAAOkvB,EAAUA,EAAQ/qC,IAAIkiB,QAAU,EACzC,CArBW0yJ,CAAYjxK,GACP,KAARnI,GAAemI,EAAK5M,OAAS,IAC/Bs8C,EAAK/7C,KAAK,CAACghJ,GAASh3I,OAAOqC,EAAKyyD,OAAO,EAAG,KAC1C56D,EAAO,IACP88I,EAAqB,KAAXA,EAAiB,IAAM,OAEtB,CACX,GAAI30I,EAAK5M,QAAUA,EAAOyE,GAExB,OADAmI,EAAK2uD,QAAQgmF,GACNjlG,EAAK/7C,KAAKqM,GAEnB,GAAIA,EAAK5M,OAASA,EAAOyE,GAAO,MAAM,IAAIkN,MAAM,uBAChD2qC,EAAK/7C,KAAK,CAACghJ,GAASh3I,OAAOqC,EAAKyyD,OAAO,EAAGr/D,EAAOyE,KACnD,CACF,IACO63C,CACT,EAtBA,IAAIt8C,EAAS,CAAEgrB,EAAG,EAAG2W,EAAG,EAAGlvB,EAAG,EAAGsY,EAAG,EAAG0H,EAAG,EAAGqY,EAAG,EAAGhgB,EAAG,EAAGoD,EAAG,EAAG+T,EAAG,EAAGh6B,EAAG,GACpEk0E,EAAU,mCAsBVr3D,EAAS,mCAKf,IAIEg5J,GAAsBjwI,EAAW,CACnC,wCAAwCt6B,EAASkuB,GAE/C,IAimBIs8I,EACAC,EACAC,EACAC,EApmBAC,EAAeP,KACfr/J,EAEF,SAASxW,EAAG+hB,GACV,OAAOA,EAAItnB,KAAK+b,MAAMxW,GAAK+hB,EAAItnB,KAAK4jD,IAAI,GAAIt8B,KAAOA,EAAItnB,KAAK+b,MAAMxW,EACpE,EAEEq2K,EAAY,QACZC,EAAQ77K,KAAK2xC,KAAK,GAClBmqI,EAAQ97K,KAAK2xC,KAAK,GAClB2O,EAAKtgD,KAAKsgD,GACVgH,EAAMtnD,KAAKsnD,IACXC,EAAMvnD,KAAKunD,IAklBf,SAASw0H,EAAU7gH,GACjB,OAAiB,OAAVA,CACT,CAKA,SAAS82B,EAAM92B,EAAO0wG,EAAUjrJ,GAC9B,KAAMu6C,GAASA,EAAQ,MAAQ,KAAO0wG,EAAU,OAAOjrJ,EACvD,GAAI86J,IAAcvgH,GAASwgH,IAAiB9P,GAAY2P,IAAe56J,EAAM,OAAO66J,EAIpF,SAAS33G,EAAOm4G,EAAI5+D,GAClB,IAAI6+D,EAAO30H,EAAI00H,GACXE,EAAO30H,EAAIy0H,GACXj/G,EAAKqgD,EAAG,GACRpgD,EAAKogD,EAAG,IAAMwuD,GAAY,GAC9B,MAAO,CACL7uG,EAAKk/G,EAAOj/G,EAAKk/G,EACjBn/G,EAAKm/G,EAAOl/G,EAAKi/G,EAErB,CAZAR,EAAYvgH,EACZwgH,EAAe9P,EACf2P,EAAa56J,EAgBb,IALA,IAAI+K,EAAIwvC,EAAQ,IAAM5a,EAClB/6C,EAAI,EACJC,EAAI,EACJ22K,EAAMR,EAAah7J,GACnB3Q,EAAM,GACD5Q,EAAI,EAAGA,EAAI+8K,EAAI3+K,OAAQ4B,IAAK,CACnC,IAAIg9K,EAAOD,EAAI/8K,GACXgwG,EAAKgtE,EAAK,GACV55H,EAAKj9C,EACLm9C,EAAKl9C,EACT,GAAW,MAAP4pG,GAAqB,MAAPA,EAChB7pG,GAAK62K,EAAK,GACV52K,GAAK42K,EAAK,QACL,GAAW,MAAPhtE,GAAqB,MAAPA,EACvB7pG,IAAM62K,EAAK,GACX52K,IAAM42K,EAAK,QACN,GAAW,MAAPhtE,EACT7pG,GAAK62K,EAAK,QACL,GAAW,MAAPhtE,EACT7pG,IAAM62K,EAAK,QACN,GAAW,MAAPhtE,EACT5pG,GAAK42K,EAAK,QACL,GAAW,MAAPhtE,EACT5pG,IAAM42K,EAAK,QACN,GAAW,MAAPhtE,EAAY,CACrB7pG,GAAK62K,EAAK,GACV52K,GAAK42K,EAAK,GACV,IAAIC,EAAKx4G,EAAOn4C,EAAG,EAAE0wJ,EAAK,IAAKA,EAAK,KACpCA,EAAK,GAAKC,EAAG,GACbD,EAAK,GAAKC,EAAG,GACbD,EAAK,IAAMA,EAAK,GAAKlhH,CACvB,CACW,MAAPk0C,GAAqB,MAAPA,IAAYA,EAAK,KACxB,MAAPA,GAAqB,MAAPA,IAAYA,EAAK,KACxB,MAAPA,GAAqB,MAAPA,IAChB7pG,GAAKi9C,EACLh9C,GAAKk9C,GAEP,IAAI84G,EAAK33F,EAAOn4C,EAAG,CAACnmB,EAAGC,IACZ,MAAP4pG,GAAqB,MAAPA,IAAYA,EAAK,KACxB,MAAPA,GAAqB,MAAPA,GAAqB,MAAPA,GAAqB,MAAPA,IAC5CgtE,EAAK,GAAK5gB,EAAG,GACb4gB,EAAK,GAAK5gB,EAAG,IAEf4gB,EAAK,GAAKhtE,EACVp/F,GAAOosK,EAAK,GAAKA,EAAKh7K,MAAM,GAAG4C,KAAK,IACtC,CAEA,OADAw3K,EAAcxrK,EACPA,CACT,CAzpBAivB,EAAOluB,QAAU,CACfqnD,OAAQ,CACN9wC,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAKvgK,EAAMyP,EAAG,GACd4sC,EAAS,IAAMkkH,EAAK,MAAQA,EAAK,IAAMA,EAAK,aAAeA,EAAK,IAAMA,EAAK,IAAMA,EAAK,UAAYA,EAAK,MAC3G,OAAO1Q,EAAW55E,EAAM92B,EAAO0wG,EAAUxzG,GAAUA,CACrD,GAEFykB,OAAQ,CACNv1D,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAKvgK,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM0Q,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,IACzF,GAEF3/F,QAAS,CACPr1D,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIW,EAAKxgK,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM2Q,EAAK,QAAUA,EAAK,KAAOA,EAAK,SAAWA,EAAK,IACtF,GAEF7/F,MAAO,CACLp1D,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAItkG,EAAKv7D,EAAU,GAAJyP,EAAS,GACpBgxJ,EAAMzgK,EAAU,IAAJyP,EAAS,GACzB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM4Q,EAAM,IAAMllG,EAAK,IAAMA,EAAK,IAAMklG,EAAM,KAAOllG,EAAK,IAAMA,EAAK,KAAOklG,EAAM,KAAOllG,EAAK,KAAOA,EAAK,KAAOklG,EAAM,IAAMllG,EAAK,KAAOA,EAAK,IAAMklG,EAAM,IAC1L,GAEFj3K,EAAG,CACD+hB,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAU,GAAJyP,EAAUqwJ,EAAO,GAC5Bv5F,EAAK,IAAMzmB,EAAK,IAAMA,EACtB0mB,EAAK,IAAM1mB,EAAK,KAAOA,EACvB2mB,EAAK,KAAO3mB,EAAK,KAAOA,EACxBwmB,EAAK,KAAOxmB,EAAK,IAAMA,EAC3B,OAAOm2B,EAAM92B,EAAO0wG,EAAU,MAAQ/vG,EAAKymB,EAAKC,EAAKC,EAAKD,EAAKC,EAAKH,EAAKG,EAAKH,EAAKC,EAAKD,EAAKC,EAAK,IACpG,GAEF,cAAe,CACbh7D,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIa,EAAK1gK,EAAU,EAAJyP,EAAQswJ,EAAO,GAG9B,OAAO9pF,EAAM92B,EAAO0wG,EAAU,KAAO6Q,EAAK,IAFjC1gK,EAAMyP,EAAI,EAAG,GAE+B,IAAMixJ,EAAK,OADvD1gK,EAAMyP,EAAG,GAC4D,IAChF,GAEF,gBAAiB,CACflE,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIa,EAAK1gK,EAAU,EAAJyP,EAAQswJ,EAAO,GAG9B,OAAO9pF,EAAM92B,EAAO0wG,EAAU,KAAO6Q,EAAK,KAFjC1gK,EAAMyP,EAAI,EAAG,GAEgC,IAAMixJ,EAAK,MADxD1gK,EAAMyP,EAAG,GAC4D,IAChF,GAEF,gBAAiB,CACflE,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIa,EAAK1gK,EAAU,EAAJyP,EAAQswJ,EAAO,GAG9B,OAAO9pF,EAAM92B,EAAO0wG,EAAU,IAFrB7vJ,EAAMyP,EAAI,EAAG,GAEmB,KAAOixJ,EAAK,IAAMA,EAAK,KADvD1gK,EAAMyP,EAAG,GAC0D,MAC9E,GAEF,iBAAkB,CAChBlE,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIa,EAAK1gK,EAAU,EAAJyP,EAAQswJ,EAAO,GAG9B,OAAO9pF,EAAM92B,EAAO0wG,EAAU,KAFrB7vJ,EAAMyP,EAAI,EAAG,GAEoB,KAAOixJ,EAAK,IAAMA,EAAK,IADxD1gK,EAAMyP,EAAG,GAC0D,MAC9E,GAEF,cAAe,CACblE,EAAG,EACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI55H,EAAKjmC,EAAU,GAAJyP,EAAS,GACpBkxJ,EAAK3gK,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAO8Q,EAAK,KAAO16H,EAAK,IAAMA,EAAK,IAAM06H,EAAK,IAC9E,GAEF,cAAe,CACbp1J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI55H,EAAKjmC,EAAU,GAAJyP,EAAS,GACpBkxJ,EAAK3gK,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM5pH,EAAK,KAAO06H,EAAK,IAAM16H,EAAK,KAAO06H,EAAK,IAC9E,GAEF,cAAe,CACbp1J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI55H,EAAKjmC,EAAU,GAAJyP,EAAS,GACpBkxJ,EAAK3gK,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM8Q,EAAK,IAAM16H,EAAK,KAAOA,EAAK,KAAO06H,EAAK,IAC9E,GAEF,cAAe,CACbp1J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI55H,EAAKjmC,EAAU,GAAJyP,EAAS,GACpBkxJ,EAAK3gK,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAO5pH,EAAK,IAAM06H,EAAK,KAAO16H,EAAK,IAAM06H,EAAK,IAC9E,GAEFC,SAAU,CACRr1J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIn5H,EAAK1mC,EAAU,KAAJyP,EAAW,GACtBuxC,EAAKhhD,EAAU,KAAJyP,EAAW,GACtBk3B,EAAK3mC,GAAOyP,EAAG,GACfm3B,EAAK5mC,GAAW,KAALyP,EAAY,GAE3B,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAMnpH,EAAK,IAAME,EAAK,IAAMoa,EAAK,IADtDhhD,EAAU,KAAJyP,EAAW,GACgD,KAAOuxC,EAAK,KAAOta,EAAK,IAAME,EAAK,MAAQD,EAAK,IAC5H,GAEFk6H,QAAS,CACPt1J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIl5H,EAAK3mC,EAAMyP,EAAG,GACdm3B,EAAK5mC,EAAMyP,EAAI,EAAG,GAClBjmB,EAAIwW,EAAMyP,EAAIswJ,EAAQ,EAAG,GAC7B,OAAO9pF,EAAM92B,EAAO0wG,EAAU,IAAMrmK,EAAI,KAAOo9C,EAAK,IAAMA,EAAK,MAAQD,EAAK,KAAOn9C,EAAI,IAAMo9C,EAAK,KAAOA,EAAK,OAASD,EAAK,IAC9H,GAEFm6H,SAAU,CACRv1J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIp5H,EAAKzmC,EAAMyP,EAAG,GACdi3B,EAAK1mC,EAAMyP,EAAI,EAAG,GAClBhmB,EAAIuW,EAAMyP,EAAIswJ,EAAQ,EAAG,GAC7B,OAAO9pF,EAAM92B,EAAO0wG,EAAU,KAAOnpH,EAAK,IAAMj9C,EAAI,IAAMi9C,EAAK,IAAMD,EAAK,MAAQC,EAAK,KAAOj9C,EAAI,KAAOi9C,EAAK,KAAOD,EAAK,MAC5H,GAEFs6H,QAAS,CACPx1J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIpzJ,EAAIzM,EAAU,KAAJyP,EAAW,GACrB4E,EAAIrU,EAAU,KAAJyP,EAAW,GACzB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAOx7I,EAAI,KAAO5H,EAAI,IAAM4H,EAAI,IAAM5H,EAAI,KAAO4H,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAM5H,EAAI,KAAO4H,EAAI,KAAO5H,EAAI,IAAM4H,EAAI,KAAOA,EAAI,IAC9J,GAEF2sJ,KAAM,CACJz1J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAS,IAAJ9wJ,EACLi3B,EAAK1mC,EAAW,KAALugK,EAAY,GACvBv/G,EAAKhhD,EAAW,KAALugK,EAAY,GACvBzlH,EAAK96C,EAAW,KAALugK,EAAY,GACvBljD,EAAKr9G,EAAW,KAALugK,EAAY,GACvB55H,EAAK3mC,GAAOugK,EAAI,GAChB35H,EAAK5mC,GAAY,KAANugK,EAAa,GACxBtlH,EAAKj7C,EAAW,KAALugK,EAAY,GACvBjjD,EAAKt9G,EAAW,KAALugK,EAAY,GAE3B,OAAOtqF,EAAM92B,EAAO0wG,EAAU,IAAMnpH,EAAK,IAAME,EAAK,IAAMoa,EAAK,IAAMlG,EAAK,IAAMG,EAAK,IAAMoiE,EAAK,IAAMC,EAAK,MADlGt9G,EAAW,KAALugK,EAAY,GAC6F,KAAOljD,EAAK,IAAMC,EAAK,KAAOxiE,EAAK,IAAMG,EAAK,KAAO+F,EAAK,IAAMpa,EAAK,KAAOF,EAAK,MAAQC,EAAK,IACxN,GAEFs6H,SAAU,CACR11J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIp2K,EAAIuW,EAAU,IAAJyP,EAAU,GACpBi3B,EAAK1mC,EAAU,IAAJyP,EAAU,GACrBuxC,EAAKhhD,EAAU,IAAJyP,EAAU,GACzB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAO7uG,EAAK,OAASta,EAAK,KAAOj9C,EAAI,IAAMu3D,EAAK,IAAMta,EAAK,KAAOj9C,EAAI,IAAMi9C,EAAK,IAAMj9C,EAAI,IAAMu3D,EAAK,KAAOta,EAAK,IAAMj9C,EAAI,IAAMi9C,EAAK,IAAMj9C,EAAI,KAAOu3D,EAAK,KAAOta,EAAK,IAAMj9C,EAAI,KAAOi9C,EAAK,KAAOj9C,EAAI,KAAOu3D,EAAK,IACtP,GAEF,mBAAoB,CAClBz1C,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIr2K,EAAIwW,EAAMyP,EAAIswJ,EAAQ,GAAK,GAC3Bn5H,EAAK5mC,EAAU,GAAJyP,EAAS,GACpBwxC,EAAKjhD,EAAU,IAAJyP,EAAS,GACpB8rD,EAAKv7D,EAAU,EAAJyP,EAAO,GAClByxJ,EAAQ,KAAO3lG,EAAK,IAAMA,EAAK,UACnC,OAAO0a,EAAM92B,EAAO0wG,EAAU,KAAOrmK,EAAI,IAAMo9C,EAAKs6H,EAAQ13K,EAAI,IAAMo9C,EAAKs6H,EAAQ,MAAQjgH,EAAKigH,EAAQ,IAAM13K,EAAI,IAAMo9C,EAAK,IAC/H,GAEF,qBAAsB,CACpBr7B,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIr2K,EAAIwW,EAAMyP,EAAIswJ,EAAQ,GAAK,GAC3Bn5H,EAAK5mC,EAAU,GAAJyP,EAAS,GACpBwxC,EAAKjhD,EAAU,IAAJyP,EAAS,GACpB8rD,EAAKv7D,EAAU,EAAJyP,EAAO,GAClByxJ,EAAQ,KAAO3lG,EAAK,IAAMA,EAAK,UACnC,OAAO0a,EAAM92B,EAAO0wG,EAAU,IAAMrmK,EAAI,KAAOo9C,EAAKs6H,EAAQ,IAAM13K,EAAI,KAAOo9C,EAAKs6H,EAAQ,KAAOjgH,EAAKigH,EAAQ13K,EAAI,KAAOo9C,EAAK,IAChI,GAEF,cAAe,CACbr7B,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIpkG,EAAKz7D,EAAU,IAAJyP,EAAS,GACpB8rD,EAAKv7D,EAAU,EAAJyP,EAAO,GAClByxJ,EAAQ,KAAO3lG,EAAK,IAAMA,EAAK,UACnC,OAAO0a,EAAM92B,EAAO0wG,EAAU,KAAOp0F,EAAK,KAAOA,EAAKylG,EAAQ,IAAMzlG,EAAK,IAAMA,EAAKylG,EAAQzlG,EAAK,IAAMA,EAAKylG,EAAQzlG,EAAK,KAAOA,EAAKylG,EAAQ,IAAMzlG,EAAK,KAAOA,EAAK,IACtK,GAEF,eAAgB,CACdlwD,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIpkG,EAAKz7D,EAAU,IAAJyP,EAAS,GACpB8rD,EAAKv7D,EAAU,IAAJyP,EAAS,GACpByxJ,EAAQ,KAAO3lG,EAAK,IAAMA,EAAK,UACnC,OAAO0a,EAAM92B,EAAO0wG,EAAU,KAAOp0F,EAAK,KAAOylG,EAAQ,KAAOzlG,EAAKylG,EAAQzlG,EAAK,KAAOylG,EAAQ,MAAQzlG,EAAKylG,EAAQ,IAAMzlG,EAAK,MACnI,GAEF,eAAgB,CACdlwD,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIr2K,EAAIwW,EAAU,GAAJyP,EAAS,GACnBhmB,EAAIuW,EAAU,IAAJyP,EAAS,GACvB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,MAAQpmK,EAAI,IAAMD,EAAI,SAAWC,EAAI,KAAOD,EAAI,MAChF,GAEF,eAAgB,CACd+hB,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIr2K,EAAIwW,EAAU,IAAJyP,EAAS,GACnBhmB,EAAIuW,EAAU,GAAJyP,EAAS,GACvB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,MAAQpmK,EAAI,IAAMD,EAAI,SAAWC,EAAI,KAAOD,EAAI,MAChF,GAEF23K,UAAW,CACT51J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAKvgK,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM0Q,EAAK,IAAMA,EAAK,KAAOA,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IACrG,EACAa,OAAO,GAETC,OAAQ,CACN91J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAKvgK,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM0Q,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,KAAOA,EAAK,IACrG,EACAa,OAAO,GAET,eAAgB,CACd71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAKvgK,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,MAAQ0Q,EAAK,KAAOA,EAAK,IAAMA,EAAK,OAASA,EAAK,IAAMA,EAAK,MAAQA,EAAK,IAAMA,EAAK,aAAeA,EAAK,IAAMA,EAAK,IAAMA,EAAK,UAAYA,EAAK,MAChL,EACAe,UAAU,EACVF,OAAO,GAET,WAAY,CACV71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAKvgK,EAAMyP,EAAG,GACd8rD,EAAKv7D,EAAMyP,EAAIqwJ,EAAO,GAC1B,OAAO7pF,EAAM92B,EAAO0wG,EAAU,IAAMt0F,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,IAAMglG,EAAK,MAAQA,EAAK,IAAMA,EAAK,aAAeA,EAAK,IAAMA,EAAK,IAAMA,EAAK,UAAYA,EAAK,MAC1N,EACAe,UAAU,EACVF,OAAO,GAET,eAAgB,CACd71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAKvgK,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,MAAQ0Q,EAAK,KAAOA,EAAK,IAAMA,EAAK,OAASA,EAAK,IAAMA,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,IAC3I,EACAe,UAAU,EACVF,OAAO,GAET,WAAY,CACV71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIU,EAAKvgK,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM0Q,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,IACrL,EACAe,UAAU,EACVF,OAAO,GAET,gBAAiB,CACf71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIW,EAAKxgK,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM2Q,EAAK,QAAUA,EAAK,KAAOA,EAAK,SAAWA,EAAK,QAAUA,EAAK,IAAMA,EAAK,KAAOA,EAAK,MAAQA,EACpI,EACAc,UAAU,EACVF,OAAO,GAET,YAAa,CACX71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIW,EAAKxgK,EAAU,IAAJyP,EAAS,GACpBkxJ,EAAK3gK,EAAU,IAAJyP,EAAU,GACzB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM2Q,EAAK,QAAUA,EAAK,KAAOA,EAAK,SAAWA,EAAK,MAAQG,EAAK,KAAOA,EAAK,IAAMA,EAAK,IAAMA,EAAK,KAAOA,EAAK,IAAMA,EAAK,IAAMA,EAAK,KAAOA,EAC9K,EACAW,UAAU,EACVF,OAAO,GAET,aAAc,CACZ71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAItkG,EAAKv7D,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,MAAQt0F,EAAK,KAAOA,EAAK,IAAMA,EAAK,OAASA,EAC7E,EACA+lG,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,SAAU,CACRh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM/vG,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EACvH,EACAwhH,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEVC,SAAU,CACRj2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAItkG,EAAKv7D,EAAU,IAAJyP,EAAS,GACpB8wJ,EAAKvgK,EAAU,IAAJyP,EAAU,GACzB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,MAAQt0F,EAAK,KAAOA,EAAK,IAAMA,EAAK,OAASA,EAAK,IAAMglG,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EACzK,EACAe,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV/2K,KAAM,CACJ+gB,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI55H,EAAKjmC,EAAMyP,EAAI,EAAG,GAClBkxJ,EAAK3gK,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM5pH,EAAK,IAAM06H,EAAK,KAAOA,EAAK,KAAO16H,EAAK06H,GAAM,KAAOA,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAM16H,EAAK,KAAO06H,EAAK,KAAOA,EAAK,KAAO16H,EAAK06H,GAAM,IAAMA,EACjL,EACAW,UAAU,EACVC,QAAQ,GAEV,OAAQ,CACNh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIr2K,EAAIwW,EAAU,IAAJyP,EAAS,GACnBk3B,EAAK3mC,EAAU,IAAJyP,EAAS,GACpBm3B,EAAK5mC,EAAU,GAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAOrmK,EAAI,IAAMo9C,EAAK,QAAUp9C,EAAI,IAAMo9C,EAAK,WAAaD,EAAK,OACjG,EACA26H,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,SAAU,CACRh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIr2K,EAAIwW,EAAU,IAAJyP,EAAS,GACnBk3B,EAAK3mC,EAAU,IAAJyP,EAAS,GACpBm3B,EAAK5mC,EAAU,GAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAOrmK,EAAI,KAAOo9C,EAAK,QAAUp9C,EAAI,KAAOo9C,EAAK,UAAYD,EAAK,OAClG,EACA26H,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,SAAU,CACRh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIp2K,EAAIuW,EAAU,IAAJyP,EAAS,GACnBg3B,EAAKzmC,EAAU,IAAJyP,EAAS,GACpBi3B,EAAK1mC,EAAU,GAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAMnpH,EAAK,IAAMj9C,EAAI,QAAUi9C,EAAK,KAAOj9C,EAAI,SAAWg9C,EAAK,SAC/F,EACA66H,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,UAAW,CACTh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAIp2K,EAAIuW,EAAU,IAAJyP,EAAS,GACnBg3B,EAAKzmC,EAAU,IAAJyP,EAAS,GACpBi3B,EAAK1mC,EAAU,GAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAOnpH,EAAK,IAAMj9C,EAAI,SAAWi9C,EAAK,KAAOj9C,EAAI,QAAUg9C,EAAK,SAChG,EACA66H,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,UAAW,CACTh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAItkG,EAAKv7D,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAMt0F,EAAK,OAASA,EACpD,EACA+lG,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,UAAW,CACTh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAItkG,EAAKv7D,EAAU,IAAJyP,EAAS,GACxB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,MAAQt0F,EAAK,KAAOA,EACpD,EACA+lG,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,UAAW,CACTh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM/vG,EAAK,KAAOA,EAAK,KAAOA,EAAK,IAAMA,EACzE,EACAwhH,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,UAAW,CACTh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,IAAM/vG,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAAOA,EACzE,EACAwhH,UAAU,EACVF,OAAO,EACPG,QAAQ,GAEV,WAAY,CACVh2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAMyP,EAAG,GAElB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,SAAW/vG,EAAK,IADrC9/C,EAAU,EAAJyP,EAAO,GACmC,IAAMqwC,EAAK,IACtE,EACA2hH,QAAS,EACTL,OAAO,GAET,aAAc,CACZ71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAMyP,EAAG,GAElB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,SAAW/vG,EAAK,KADrC9/C,EAAU,EAAJyP,EAAO,GACoC,IAAMqwC,EAAK,IACvE,EACAshH,OAAO,GAET,aAAc,CACZ71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAU,EAAJyP,EAAO,GAClBswC,EAAK//C,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,QAAU/vG,EAAK,KAAOC,EAAK,IAAMA,EAAK,IACtE,EACAqhH,OAAO,GAET,cAAe,CACb71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAU,EAAJyP,EAAO,GAClBswC,EAAK//C,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,SAAW/vG,EAAK,KAAOC,EAAK,IAAMA,EAAK,IACvE,EACAqhH,OAAO,GAET,eAAgB,CACd71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAMyP,EAAG,GAElB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAO/vG,EAAK,MAAQA,EAAK,SAAWA,EAAK,IAD9D9/C,EAAU,EAAJyP,EAAO,GAC4D,IAAMqwC,EAAK,IAC/F,EACA2hH,QAAS,EACTH,UAAU,EACVF,OAAO,GAET,iBAAkB,CAChB71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAMyP,EAAG,GAElB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,KAAO/vG,EAAK,MAAQA,EAAK,SAAWA,EAAK,KAD9D9/C,EAAU,EAAJyP,EAAO,GAC6D,IAAMqwC,EAAK,IAChG,EACAwhH,UAAU,EACVF,OAAO,GAET,iBAAkB,CAChB71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAU,EAAJyP,EAAO,GAClBswC,EAAK//C,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,OAAS9vG,EAAK,IAAMA,EAAK,QAAUD,EAAK,KAAOC,EAAK,IAAMA,EAAK,IAC/F,EACAuhH,UAAU,EACVF,OAAO,GAET,kBAAmB,CACjB71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI//G,EAAK9/C,EAAU,EAAJyP,EAAO,GAClBswC,EAAK//C,EAAMyP,EAAG,GAClB,OAAOwmE,EAAM92B,EAAO0wG,EAAU,OAAS9vG,EAAK,IAAMA,EAAK,SAAWD,EAAK,KAAOC,EAAK,IAAMA,EAAK,IAChG,EACAuhH,UAAU,EACVF,OAAO,GAETM,MAAO,CACLn2J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI8B,EAAYp9H,EAAK,IACjB/6C,EAAI,EAAIimB,EAAI87B,EAAIo2H,GAChBl4K,EAAI,EAAIgmB,EAAI+7B,EAAIm2H,GACpB,OAAO1rF,EACL92B,EACA0wG,EACA,SAAWrmK,EAAI,IAAMC,EAAI,IAAMD,EAAI,IAAMC,EAAI,IAEjD,EACAg4K,QAAS,GACTL,OAAO,GAET,aAAc,CACZ71J,EAAG,GACHmB,EAAG,SAAS+C,EAAG0vC,EAAO0wG,GACpB,GAAImQ,EAAU7gH,GAAQ,OAAO0gH,EAC7B,IAAI8B,EAAYp9H,EAAK,EACjB/6C,EAAI,EAAIimB,EAAI87B,EAAIo2H,GAChBl4K,EAAI,EAAIgmB,EAAI+7B,EAAIm2H,GACpB,OAAO1rF,EACL92B,EACA0wG,EACA,SAAWrmK,EAAI,IAAMC,EAAI,KAAO,EAAIgmB,EAAI,IAAM,EAAIA,EAAI,UAAYjmB,EAAI,IAAMC,EAAI,IAEpF,EACAg4K,QAAS,GACTL,OAAO,GA4Eb,IAIEQ,GAAkBtyI,EAAW,CAC/B,kCAAkCt6B,EAASkuB,GAEzC,IAAIkQ,EAAKD,IACLm9F,EAAMtN,KACNW,EAAe2M,EAAI3M,aACnBzkC,EAAY7G,IACZuL,EAAYT,IACZixB,EAAWxE,KACX3a,EAAStC,IACTkvE,EAAajG,KACbltC,EAAe4B,EAAI5B,aACnBozC,EAAevgB,KACfC,EAAkBZ,KAElBO,EADYL,KACaK,aACzB7sD,EAAcH,IAAuBG,YACrCytE,EAAW/F,KACXgG,EAAmB5F,KACnBmC,EAAwB3B,KAAmB2B,sBAC3C0D,EAAU/+I,EAAOluB,QAAU,CAAC,EAqBhC,SAASktK,EAASz1J,GAChB,MAAa,SAANA,OAAe,EAASA,CACjC,CAtBAw1J,EAAQvzE,KAAO,SAASniF,EAAGmiF,GACzB,IAAIl+E,EAAUk+E,EAAKl+E,QACf9C,EAAQghF,EAAKhhF,MACbkgD,EAAS8gC,EAAK9gC,OACdlhB,EAASgiD,EAAK13F,MACd3N,EAAOqlG,EAAKrlG,KACZ2jG,EAAS0B,EAAK1B,OACdS,EAASiB,EAAKjB,OACdH,EAAeoB,EAAKpB,aACpBF,EAAWsB,EAAKtB,SAChBJ,GAAQzgF,EAAEmB,MAAM,cAAes/E,GAC/B3jG,EAAO,GAAGkjB,EAAEmB,MAAM,YAAarkB,EAAO,MACtCqjD,GAAQngC,EAAErhB,KAAK+pG,EAAO58F,KAAMq0C,GAC5BkhB,GAAQrhD,EAAEmB,MAAM,cAAekgD,GAC/BlgD,GAAOnB,EAAEmB,MAAM,aAAcA,GAC7B8C,GAASjE,EAAEmB,MAAM,eAAgB8C,GACjC48E,GAAU7gF,EAAEmB,MAAM,iBAAkBw0J,EAa1C,SAA4B90E,GAC1B,OAAO+0E,EAA0B/0E,EACnC,CAfmDg1E,CAAmBh1E,KAChEK,GAAQlhF,EAAEmB,MAAM,cAA0B,SAAX+/E,EAAoBq0E,EAAa7W,eAAeh2D,EAAOpB,SAASnnD,IAAWw1H,EAASz0E,IACnHH,GAAc/gF,EAAEmB,MAAM,uBAAwBw0J,EAcpD,SAAqC50E,GACnC,OAAOA,EAAa7oG,QAAQ,QAAS,aAAaA,QAAQ,OAAQ,YAAYA,QAAQ,UAAW,gBAAgBiH,MAAM,KAAKzD,KAAK,IACnI,CAhB6Do6K,CAA4B/0E,IACzF,EAIA,IAAI60E,EAA4B,CAC9BjrG,OAAQ,OACR5c,MAAO,YACPD,MAAO,YACP,YAAa,cAqGf,SAASioH,EAAav3C,EAAKttB,EAAO2K,EAAIm6D,GACpC,IAAIC,EAAgB/kE,EAAMglE,YACtBC,EAAejlE,EAAMilE,aACrBC,EAAeH,GAAiBP,EAAQW,eAAeJ,EAAc9uJ,MAAO,EAAG,IACnF,GAAIivJ,EAAc,CAChB,IAAIE,EAAiBZ,EAAQW,eAAeJ,EAActqJ,QAAS,EAAG,MAClE4qJ,EAAiBb,EAAQW,eAAeJ,EAAc93D,QAAS,EAAG,MAClEq4D,EAAmBP,EAAc73D,UACjCq4D,EAAcf,EAAQW,eAAeJ,EAAcn5K,KAAM,EAAG,GAC5D45K,EAAkBhB,EAAQW,eAAeJ,EAAc53D,SAAU,EAAG,IACpEs4D,EAAYzlE,EAAMvN,IACtB+xE,EAAQv9K,QACNqmI,EACA,QACA3iB,EACA86D,EACAP,EACAK,EACAC,OACA,EACAT,EAAc/3D,SACdo4D,EACAC,EACAC,EAEJ,MAAO,GAAIL,GAAsC,SAAtBA,EAAax8K,KAAiB,CACvD,IAMMgiB,EAAOiwB,EANT17B,EAAYimK,EAAax8K,KACzBi9K,EAAa,eAAiB1lE,EAAMvN,IACpCqyE,IACFY,EAAa,cAAgB1lE,EAAMvN,KAEhCqyE,QAAqC,IAAvBG,EAAax6J,YAA0C,IAAtBw6J,EAAavqI,MAuC7C,eAAd17B,IACFA,GAAwB,YAE1BsuH,EAAI7/H,KAAK+2K,EAAQmB,SAAUh7D,EAAI+6D,EAAY1mK,EAAWimK,EAAaxsE,WAAY,UAxC7D,eAAdz5F,GACFyL,EAAQ,CACN1e,EAAGk5K,EAAax6J,MAChBze,EAAG,GAEL0uC,EAAO,CACL3uC,EAAGk5K,EAAavqI,KAChB1uC,EAAG,IAEkB,aAAdgT,IACTyL,EAAQ,CACN1e,EAAG,EACHC,EAAGi5K,EAAax6J,OAElBiwB,EAAO,CACL3uC,EAAG,EACHC,EAAGi5K,EAAavqI,OAGpBjwB,EAAM1e,EAAIi0G,EAAM4lE,IAAIC,SACN,IAAZp7J,EAAM1e,EAAei0G,EAAM09C,UAAU3xJ,EAAEuhB,IAAI,GAAGoB,IAAMjE,EAAM1e,GAC1D,GAEF0e,EAAMze,EAAIg0G,EAAM8lE,IAAID,SACN,IAAZp7J,EAAMze,EAAeg0G,EAAM09C,UAAU1xJ,EAAEshB,IAAI,GAAGoB,IAAMjE,EAAMze,GAC1D,GAEF0uC,EAAK3uC,EAAIi0G,EAAM4lE,IAAIC,SACN,IAAXnrI,EAAK3uC,EAAei0G,EAAM09C,UAAU3xJ,EAAEshB,IAAI,GAAGqB,IAAMgsB,EAAK3uC,GACxD,GAEF2uC,EAAK1uC,EAAIg0G,EAAM8lE,IAAID,SACN,IAAXnrI,EAAK1uC,EAAeg0G,EAAM09C,UAAU1xJ,EAAEqhB,IAAI,GAAGqB,IAAMgsB,EAAK1uC,GACxD,GAEFshI,EAAI7/H,KAAKs4K,EAAoBp7D,EAAI+6D,EAAY,SAAUT,EAAaxsE,WAAY,OAAQhuF,EAAOiwB,GAAM,GAAM,GAO/G,MAAWslE,EAAMyP,WACf6d,EAAI7/H,KAAK+pG,EAAO58F,KAAMolG,EAAMyP,UAEhC,CA3KA+0D,EAAQwB,YAAc,SAASl3J,EAAG/iB,EAAGC,GACnC8iB,EAAE+xB,KAAK,IAAK90C,GAAG80C,KAAK,IAAK70C,EAC3B,EACAw4K,EAAQyB,QAAU,SAASn3J,EAAGyX,EAAG9vB,GAC/BqY,EAAE+xB,KAAK,QAASta,GAAGsa,KAAK,SAAUpqC,EACpC,EACA+tK,EAAQ0B,QAAU,SAASp3J,EAAG/iB,EAAGC,EAAGu6B,EAAG9vB,GACrCqY,EAAErhB,KAAK+2K,EAAQwB,YAAaj6K,EAAGC,GAAGyB,KAAK+2K,EAAQyB,QAAS1/I,EAAG9vB,EAC7D,EACA+tK,EAAQ2B,eAAiB,SAASvuK,EAAG01H,EAAKte,EAAIE,GAC5C,IAAInjH,EAAIijH,EAAG62D,IAAIjuK,EAAE7L,GACbC,EAAIkjH,EAAG22D,IAAIjuK,EAAE5L,GACjB,SAAIy1F,EAAU11F,IAAM01F,EAAUz1F,IAAMshI,EAAIhlI,UACV,SAAxBglI,EAAIhlI,OAAOglK,SACbhgC,EAAIzsF,KAAK,IAAK90C,GAAG80C,KAAK,IAAK70C,GAE3BshI,EAAIzsF,KAAK,YAAaowF,EAAallI,EAAGC,KAKnC,EACT,EACAw4K,EAAQ4B,gBAAkB,SAASt3J,EAAGkgG,EAAIE,GACxCpgG,EAAEiyB,MAAK,SAASnpC,GACd,IAAI01H,EAAM33F,EAAGsI,OAAOt6C,MACpB6gL,EAAQ2B,eAAevuK,EAAG01H,EAAKte,EAAIE,EACrC,GACF,EACAs1D,EAAQ6B,sBAAwB,SAASzuK,EAAG01H,EAAKte,EAAIE,EAAIo3D,EAAWC,GAClEj5C,EAAIzsF,KACF,UACAmuE,EAAGw3D,gBAAgB5uK,EAAG0uK,IAAcp3D,EAAGs3D,gBAAgB5uK,EAAG2uK,GAAa,KAAO,OAElF,EACA/B,EAAQiC,uBAAyB,SAASC,EAAarkB,GACrD,GAAKA,EAAQ9R,oBAAb,CACA,IAAIvhC,EAAKqzC,EAAQ/oB,MACbpqB,EAAKmzC,EAAQ9oB,MACjBmtC,EAAY3lI,MAAK,SAASnpC,GACxB,IAAIooG,EAAQpoG,EAAE,GAAGooG,MACbsmE,EAAYtmE,EAAMsmE,UAClBC,EAAYvmE,EAAMumE,UAClB/3K,EAAWmoH,EAASN,QAAQrW,EAAO,YAAc,WAAa,oBAClE0mE,EAAYjoI,UAAUjwC,GAAUuyC,MAAK,SAASmH,GAC5Cs8H,EAAQ6B,sBAAsBn+H,EAAIvS,EAAGsI,OAAOt6C,MAAOqrH,EAAIE,EAAIo3D,EAAWC,EACxE,GACF,GAXwC,CAY1C,EACA/B,EAAQmC,WAAa,SAASh8D,EAAIi8D,EAAWx3E,GAC3C,OAAKw3E,GAAcnlF,EAAUmlF,GACzBj8D,EAAG4Z,SAASvoB,WAAmB4qE,EAC/BA,EAAY,EAAU,EACnBpgL,KAAK+b,MAAMqkK,GAH8Bx3E,GAAQ,CAI1D,EACAo1E,EAAQqC,gBAAkB,SAASjvK,EAAGkX,EAAGg4J,EAAIroG,EAAIsoG,GAC/Cj4J,EAAEmB,MAAM,OAAQ,QAChB,IAAIhoB,KAAU2P,GAAK,IAAI,IAAM,CAAC,GAAGooG,OAAS,CAAC,GAAG/3G,MAAQ,CAAC,EACnD++K,EAAMF,GAAM7+K,EAAKwS,OAAS,EAC1BsyG,EAAOg6D,GAAM9+K,EAAK8kH,MAAQ,GAC9BvV,EAAOjB,OAAOznF,EAAG2vD,GAAMx2E,EAAKsR,OAC5BirK,EAAQyC,SAASn4J,EAAGi+F,EAAMi6D,EAC5B,EACAxC,EAAQ0C,eAAiB,SAASp4J,EAAGg4J,EAAIroG,EAAIsoG,GAC3Cj4J,EAAEmB,MAAM,OAAQ,QAAQ8wB,MAAK,SAASnpC,GACpC,IAAI3P,KAAU2P,GAAK,IAAI,IAAM,CAAC,GAAGooG,OAAS,CAAC,GAAG/3G,MAAQ,CAAC,EACnD++K,EAAMF,GAAM7+K,EAAKwS,OAAS,EAC1BsyG,EAAOg6D,GAAM9+K,EAAK8kH,MAAQ,GAC9Bp3E,EAAGsI,OAAOt6C,MAAM8J,KAAK+pG,EAAOjB,OAAQ93B,GAAMx2E,EAAKsR,OAAO9L,KAAK+2K,EAAQyC,SAAUl6D,EAAMi6D,EACrF,GACF,EACAxC,EAAQyC,SAAW,SAASn4J,EAAGi+F,EAAM65D,GACnCA,GAAaA,GAAa,EAC1B75D,EAAOy3D,EAAQ2C,UAAUp6D,EAAM65D,GAC/B93J,EAAEmB,MAAM,CACN,mBAAoB88F,EACpB,eAAgB65D,EAAY,MAEhC,EACApC,EAAQ2C,UAAY,SAASp6D,EAAM65D,GACjCA,GAAaA,GAAa,EAC1B,IAAIQ,EAAM5gL,KAAK6mB,IAAIu5J,EAAW,GAU9B,MATa,UAAT75D,EAAkBA,EAAO,GACX,QAATA,EAAgBA,EAAOq6D,EAAM,MAAQA,EAAM,KAClC,SAATr6D,EAAiBA,EAAO,EAAIq6D,EAAM,MAAQ,EAAIA,EAAM,KAC3C,aAATr6D,EAAqBA,EAAO,EAAIq6D,EAAM,MAAQ,EAAIA,EAAM,KAC/C,YAATr6D,EACPA,EAAO,EAAIq6D,EAAM,MAAQA,EAAM,MAAQA,EAAM,MAAQA,EAAM,KACzC,gBAATr6D,IACTA,EAAO,EAAIq6D,EAAM,MAAQ,EAAIA,EAAM,MAAQA,EAAM,MAAQ,EAAIA,EAAM,MAE9Dr6D,CACT,EAgFAy3D,EAAQ6C,gBAAkB,SAAS/5C,EAAK3iB,GACtC,IAAIriH,EAAOqtC,EAAGsI,OAAOqvF,EAAIhlI,QAGzBu8K,EAAav3C,IAFFhlI,EAAKg4C,OACG,IAAM,IAAI,IAAM,CAAC,GAAG0/D,OAAS,CAAC,EACxB2K,GAAI,EAC/B,EACA65D,EAAQ8C,eAAiB,SAASx4J,EAAG67F,EAAIm6D,GACvCh2J,EAAEmB,MAAM,eAAgB,GAAG8wB,MAAK,SAASnpC,GACvC,IAAIqe,EAAQ0f,EAAGsI,OAAOt6C,MAClBiU,EAAE,GAAGooG,OACP6kE,EAAa5uJ,EAAOre,EAAE,GAAGooG,MAAO2K,EAAIm6D,EAExC,GACF,EACA,IAAIyC,EAAazF,KACjB0C,EAAQgD,YAAc,GACtBhD,EAAQiD,YAAc,GACtBjD,EAAQkD,eAAiB,GACzBlD,EAAQmD,gBAAkB,CAAC,EAC3BnD,EAAQoD,YAAc,CAAC,EACvBpD,EAAQqD,aAAe,CAAC,EACxBrD,EAAQsD,WAAa,GACrBjhL,OAAOgkB,KAAK08J,GAAYriL,SAAQ,SAAS4G,GACvC,IAAIi8K,EAASR,EAAWz7K,GACpBgiB,EAAIi6J,EAAOj6J,EACf02J,EAAQsD,WAAWvjL,KACjBupB,EACApnB,OAAOonB,GACPhiB,EACAgiB,EAAI,IACJpnB,OAAOonB,EAAI,KACXhiB,EAAI,SAEN04K,EAAQgD,YAAY15J,GAAKhiB,EACzB04K,EAAQiD,YAAY35J,GAAKi6J,EAAO94J,EAChCu1J,EAAQkD,eAAe55J,GAAKi6J,EAAO/D,SAAW,EAC1C+D,EAAOlE,WACTW,EAAQmD,gBAAgB75J,IAAK,GAE3Bi6J,EAAOpE,MACTa,EAAQoD,YAAY95J,IAAK,EAEzB02J,EAAQsD,WAAWvjL,KACjBupB,EAAI,IACJpnB,OAAOonB,EAAI,KACXhiB,EAAI,OACJgiB,EAAI,IACJpnB,OAAOonB,EAAI,KACXhiB,EAAI,aAGJi8K,EAAOjE,SACTU,EAAQqD,aAAa/5J,IAAK,EAE9B,IACA,IAAIk6J,EAAYxD,EAAQgD,YAAYxjL,OAsBpC,SAASikL,EAAcC,EAAcl2J,EAAGE,EAAGpD,GACzC,IAAI2F,EAAOyzJ,EAAe,IAC1B,OAAO1D,EAAQiD,YAAYhzJ,GAAMzC,EAAGE,EAAGpD,IAAMo5J,GAAgB,IAvBjD,8BAuBiE,GAC/E,CAvBA1D,EAAQ0D,aAAe,SAASjiJ,GAC9B,GAAIw7D,EAAUx7D,GACZA,GAAKA,OACA,GAAiB,kBAANA,EAAgB,CAChC,IAAIkiJ,EAAQ,EACRliJ,EAAE5+B,QAAQ,SAAW,IACvB8gL,EAAQ,IACRliJ,EAAIA,EAAEj/B,QAAQ,QAAS,KAErBi/B,EAAE5+B,QAAQ,QAAU,IACtB8gL,GAAS,IACTliJ,EAAIA,EAAEj/B,QAAQ,OAAQ,MAExBi/B,EAAIu+I,EAAQgD,YAAYngL,QAAQ4+B,KACvB,IACPA,GAAKkiJ,EAET,CACA,OAAOliJ,EAAI,KAAO+hJ,GAAa/hJ,GAAK,IAAM,EAAIz/B,KAAK2/B,MAAM3/B,KAAK6mB,IAAI4Y,EAAG,GACvE,EAKA,IAAImiJ,EAAgBliD,EAAa,MAC7BmiD,EAAe,CACjB5lG,OAAQ,CAAEh6E,KAAM,UAChB6/K,eAAgB,CAAE7/K,KAAM,SAAU8/K,UAAU,GAC5CC,WAAY,CAAE//K,KAAM,SAAUgiB,MAAO,CAAE1e,EAAG,EAAGC,EAAG,GAAK0uC,KAAM,CAAE3uC,EAAG,EAAGC,EAAG,IACtEy8K,mBAAoB,CAAEhgL,KAAM,SAAUgiB,MAAO,CAAE1e,EAAG,EAAGC,EAAG,GAAK0uC,KAAM,CAAE3uC,EAAG,EAAGC,EAAG,GAAKu8K,UAAU,GAC7FG,SAAU,CAAEjgL,KAAM,SAAUgiB,MAAO,CAAE1e,EAAG,EAAGC,EAAG,GAAK0uC,KAAM,CAAE3uC,EAAG,EAAGC,EAAG,IACpE28K,iBAAkB,CAAElgL,KAAM,SAAUgiB,MAAO,CAAE1e,EAAG,EAAGC,EAAG,GAAK0uC,KAAM,CAAE3uC,EAAG,EAAGC,EAAG,GAAKu8K,UAAU,IAiB7F,SAASxC,EAAmBz4C,EAAK3iB,EAAI+6D,EAAYj9K,EAAMgwG,EAAY7xF,EAAM6D,EAAOiwB,EAAMkuI,EAAaL,GACjG,IACIroK,EADAxJ,EAAM+hG,EAAWz0G,OAER,WAATyE,EACFyX,EAAO,CACL5X,KAAM,iBACNgnG,MAAO,CACLrmD,GAAIx+B,EAAM1e,EACVo9C,GAAI1+B,EAAMze,EACVu3D,GAAI7oB,EAAK3uC,EACTy3D,GAAI9oB,EAAK1uC,EACT68K,cAAeD,EAAc,iBAAmB,qBAElDL,YAEgB,WAAT9/K,IACTyX,EAAO,CACL5X,KAAM,iBACNigL,aAIJ,IADA,IAAIO,EAAa,IAAIt7K,MAAMkJ,GAClB9Q,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBsa,EAAKqoK,SACPO,EAAWpyK,EAAM,EAAI9Q,GAAK,CAACwiL,EAAuC,KAAxB,EAAI3vE,EAAW7yG,GAAG,KAAY6yG,EAAW7yG,GAAG,IAEtFkjL,EAAWljL,GAAK,CAACwiL,EAAiC,IAAnB3vE,EAAW7yG,GAAG,IAAW6yG,EAAW7yG,GAAG,IAG1E,IAAIq2I,EAAatxB,EAAGonB,YAChBg3C,EAAS,IAAM9sC,EAAW+sC,KAAO,IAAMtD,EACvCC,EAAW1pC,EAAWgtC,MAAMhrI,OAAO,cAAcQ,UAAU,IAAMsqI,GAAQzoI,KAAK,CAAC73C,EAAOqgL,EAAWt+K,KAAK,MAAOqoI,EAAI31D,UACrHyoG,EAASvjI,OAAOtH,SAChB6qI,EAASxjI,QAAQp6C,OAAOmY,EAAK5X,MAAMy4C,MAAK,WACtC,IAAI8oE,EAAKl0E,EAAGsI,OAAOt6C,MACfuc,EAAKovF,OAAOua,EAAGhpE,KAAK3gC,EAAKovF,OAC7Bua,EAAGhpE,KAAK,KAAMkoI,GACd,IAAIG,EAAQr/D,EAAGprE,UAAU,QAAQ6B,KAAKwoI,GACtCI,EAAM9mI,OAAOtH,SACbouI,EAAM/mI,QAAQp6C,OAAO,QACrBmhL,EAAMnoI,MAAK,SAASnpC,GAClB,IAAI69F,EAAKtP,EAAUvuF,EAAE,IACrB+9B,EAAGsI,OAAOt6C,MAAMk9C,KAAK,CACnB71C,OAAQ4M,EAAE,GAAK,IACf,aAAc4/F,EAAOhC,QAAQC,GAC7B,eAAgBA,EAAGnL,YAEvB,GACF,IACAgjC,EAAIr9G,MAAMrJ,EAAMuiK,EAAWJ,EAAQp+D,IAAK16F,MAAMrJ,EAAO,WAAY,MACjE0mH,EAAItsF,QAAQ,mBAAmB,EACjC,CAlEAwjI,EAAQmB,SAAW,SAASr4C,EAAK3iB,EAAI+6D,EAAYj9K,EAAMgwG,EAAY7xF,GACjE,IAAI1G,EAAOmoK,EAAa5/K,GACxB,OAAOs9K,EACLz4C,EACA3iB,EACA+6D,EACAxlK,EAAKzX,KACLgwG,EACA7xF,EACA1G,EAAKuK,MACLvK,EAAKw6B,MACL,EACAx6B,EAAKqoK,SAET,EAqDA/D,EAAQv9K,QAAU,SAASqmI,EAAK87C,EAAUz+D,EAAI86D,EAAWxvJ,EAAOrqB,EAAMuhH,EAAUk8D,EAAKr8D,EAAUvyF,EAASwyF,EAASC,GAC/G,IAAIo8D,EAAwB,WAAbF,EACXC,IACe,YAAbr8D,GACFvyF,EAAU4uJ,EACVp8D,EAAUzV,EAAOpB,SAAS37E,KAE1BA,OAAU,EACVwyF,EAAUo8D,IAGd,IAEI5uK,EAAOC,EAIPyM,EAAMouJ,EAAWv+F,EACjBuyG,EAJoBx9K,EAAGi9C,EAAIC,EAAIC,EAAIC,EAHnC8yF,EAAatxB,EAAGonB,YAChBg3C,EAAS,IAAM9sC,EAAW+sC,KAAO,IAAMvD,EAOvC+D,EAAe,CAAC,EAChBC,EAAMtjF,EAAU8mB,GAChBy8D,EAAQlyE,EAAOhC,QAAQi0E,GAEvBv2K,EAAUg6G,EADAu8D,EAAIn/E,WAElB,OAAQr0E,GACN,IAAK,IACHxb,EAAQ7O,EAAOpF,KAAK2xC,KAAK,GACzBz9B,EAAS9O,EAAOpF,KAAK2xC,KAAK,GAG1BoxI,EAAa,OACbC,EAAe,CACb5xK,EAJFuP,EAAO,KAAO1M,EAAQ,EAAI,IAAMC,EAAS,EAAI,IAAMD,EAAQ,EAAI,KAAOC,EAAS,EAAI,MAAQA,EAAS,IAAMD,EAAQ,MAAQA,EAAQ,EAAI,EAAI,IAAMC,EAAS,EAAI,EAAI,IAAMD,EAAQ,EAAI,KAAOC,EAAS,EAKjMxH,UACAqjG,OAAQmzE,EACR,gBANFnU,EAAYpoD,EAAWvhH,GAMO,MAE9B,MACF,IAAK,KACH6O,EAAQ7O,EAAOpF,KAAK2xC,KAAK,GACzBz9B,EAAS9O,EAAOpF,KAAK2xC,KAAK,GAG1BoxI,EAAa,OACbC,EAAe,CACb5xK,EAJFuP,EAAO,IAAM1M,EAAQ,EAAI,EAAI,KAAOC,EAAS,EAAI,IAAMD,EAAQ,EAAI,IAAMC,EAAS,EAAI,QAAUD,EAAQ,IAAMC,EAAS,KAAOD,EAAQ,EAAI,IAAMC,EAAS,EAAI,EAAI,IAAMD,EAAQ,EAAI,IAAMC,EAAS,EAKhMxH,UACAqjG,OAAQmzE,EACR,gBANFnU,EAAYpoD,EAAWvhH,GAMO,MAE9B,MACF,IAAK,IACH6O,EAAQ7O,EAAOpF,KAAK2xC,KAAK,GACzBz9B,EAAS9O,EAAOpF,KAAK2xC,KAAK,GAC1BhxB,EAAO,KAAO1M,EAAQ,EAAI,IAAMC,EAAS,EAAI,IAAMD,EAAQ,EAAI,KAAOC,EAAS,EAAI,MAAQA,EAAS,IAAMD,EAAQ,MAAQA,EAAQ,EAAI,EAAI,IAAMC,EAAS,EAAI,EAAI,IAAMD,EAAQ,EAAI,KAAOC,EAAS,EAAI,IAAMD,EAAQ,EAAI,EAAI,KAAOC,EAAS,EAAI,IAAMD,EAAQ,EAAI,IAAMC,EAAS,EAAI,QAAUD,EAAQ,IAAMC,EAAS,KAAOD,EAAQ,EAAI,IAAMC,EAAS,EAAI,EAAI,IAAMD,EAAQ,EAAI,IAAMC,EAAS,EAClY66J,EAAY3pK,EAAOA,EAAOpF,KAAK2xC,KAAK,EAAIg1E,GACxCo8D,EAAa,OACbC,EAAe,CACb5xK,EAAGuP,EACHjU,UACAqjG,OAAQmzE,EACR,eAAgBnU,EAAY,MAE9B,MACF,IAAK,IAGHgU,EAAa,OAGbA,EAAa,OACbC,EAAe,CACb5xK,EAJFuP,EAAO,KAHP1M,EAAQ7O,GAGa,EAAI,MAAQ6O,EAAQ,EAAI,KAF7CC,EAAS9O,GAOPsH,UACAqjG,OAAQmzE,EACR,gBANFnU,EAAYpoD,EAAWvhH,GAMO,MAE9B,MACF,IAAK,IAGH29K,EAAa,OAGbA,EAAa,OACbC,EAAe,CACb5xK,EAJFuP,EAAO,OAFPzM,EAAS9O,GAEe,EAAI,KAH5B6O,EAAQ7O,GAGkC,IAAM8O,EAAS,EAKvDxH,UACAqjG,OAAQmzE,EACR,gBANFnU,EAAYpoD,EAAWvhH,GAMO,MAE9B,MACF,IAAK,IAGH29K,EAAa,OACbpiK,EAAO,KAHP1M,EAAQ7O,GAGa,EAAI,MAAQ6O,EAAQ,EAAI,KAF7CC,EAAS9O,GAEmD,MAAQ8O,EAAS,EAAI,IAAMD,EAAQ,IAAMC,EAAS,EAC9G66J,EAAY3pK,EAAOA,EAAOpF,KAAK2xC,KAAK,EAAIg1E,GACxCo8D,EAAa,OACbC,EAAe,CACb5xK,EAAGuP,EACHjU,UACAqjG,OAAQmzE,EACR,eAAgBnU,EAAY,MAE9B,MACF,IAAK,IACH96J,EAAQ7O,EACR8O,EAAS9O,EACLuhH,EAAW3mH,KAAKsgD,GAAK,EACvBkwB,EAASxwE,KAAK2xC,KAAKg1E,EAAWvhH,EAAOA,EAAOpF,KAAKsgD,KAhG/B/6C,EAkGAohH,EAlGGnkE,EAkGOxiD,KAAKsgD,GAAK,EAlGbmC,EAkGgB,EAlGZC,EAkGet9C,EAAO,EAlGlBu9C,EAkGqBv9C,EAAOpF,KAAK2xC,KAAK,GAAvE6+B,EAjGG9tB,GAAMC,EAAKD,IAAOn9C,EAAIi9C,IAAOC,EAAKD,IAmGvCugI,EAAa,SACbC,EAAe,CACbh9H,GAAI/xC,EAAQ,EACZgyC,GAAI/xC,EAAS,EACbsX,EAAGglD,EACH9jE,UACA0H,KAAM8uK,GAIZ,IAAIlzK,EAAM,CACRyf,GAAS,OACTwE,GAAW,OACXwyF,GAAW,OACXrhH,EACAuhH,GACA3iH,KAAK,KACHvD,EAAUg1I,EAAWgtC,MAAMhrI,OAAO,aAAaQ,UAAU,IAAMsqI,GAAQzoI,KAAK,CAAC9pC,GAAMq8H,EAAI31D,UAC3Fj2E,EAAQm7C,OAAOtH,SACf7zC,EAAQk7C,QAAQp6C,OAAO,WAAWg5C,MAAK,WACrC,IAAI8oE,EAAKl0E,EAAGsI,OAAOt6C,MASnB,GARAkmH,EAAGhpE,KAAK,CACN9b,GAAIgkJ,EACJtuK,MAAOA,EAAQ,KACfC,OAAQA,EAAS,KACjBivK,aAAc,iBAEdC,iBAAkBN,EAAW,aAAe,KAE1C7uJ,EAAS,CACX,IAAIovJ,EAAM1jF,EAAU1rE,GAChBqvJ,EAAQtyE,EAAOhC,QAAQq0E,GACvBE,EAAUF,EAAIv/E,WACd0/E,EAAQngE,EAAGprE,UAAU,QAAQ6B,KAAK,CAAC,IACvC0pI,EAAM5nI,OAAOtH,SACbkvI,EAAM7nI,QAAQp6C,OAAO,QAAQ84C,KAAK,CAChCpmC,MAAOA,EAAQ,KACfC,OAAQA,EAAS,KACjBE,KAAMkvK,EACN,eAAgBC,GAEpB,CACA,IAAIE,EAAWpgE,EAAGprE,UAAU8qI,GAAYjpI,KAAK,CAAC,IAC9C2pI,EAAS7nI,OAAOtH,SAChBmvI,EAAS9nI,QAAQp6C,OAAOwhL,GAAY1oI,KAAK2oI,EAC3C,IACAl8C,EAAIr9G,MAAM,OAAQk5J,EAAWJ,EAAQp+D,IAAK16F,MAAM,eAAgB,MAChEq9G,EAAItsF,QAAQ,kBAAkB,EAChC,EACAwjI,EAAQ0F,cAAgB,SAASv/D,GAC/B,IAAIsxB,EAAatxB,EAAGonB,YACCc,EAAIzF,aAAa6O,EAAWgtC,MAAO,IAAK,aAC9CxqI,UAAU,iCAAiC3D,SAC1DnF,EAAGsI,OAAO0sE,GAAIlsE,UAAU,oBAAoBuC,QAAQ,mBAAmB,EACzE,EACAwjI,EAAQ2F,aAAe,SAASx/D,GAC9B,IAAIsxB,EAAatxB,EAAGonB,YACAc,EAAIzF,aAAa6O,EAAWgtC,MAAO,IAAK,YAC9CxqI,UAAU,WAAW3D,SACnCnF,EAAGsI,OAAO0sE,GAAIlsE,UAAU,mBAAmBuC,QAAQ,kBAAkB,EACvE,EACAwjI,EAAQW,eAAiB,SAASiF,EAAIxkL,EAAGwpG,GACvC,OAAIg7E,GAAMv3C,EAAI90C,oBAAoBqsF,GACzBxkL,EAAIwkL,EAAGpmL,OAASomL,EAAGxkL,GAAKwpG,EAE1Bg7E,CACT,EACA5F,EAAQ6F,WAAa,SAASv7J,EAAGkxF,EAAO2K,EAAIhwF,GAC1C,GAAK7L,EAAEljB,OAAP,CACA,IAAI0+K,EAAM9F,EAAQ+F,kBAAkBvqE,GACpClxF,EAAEiyB,MAAK,SAASnpC,GACd4sK,EAAQgG,iBAAiB5yK,EAAG+9B,EAAGsI,OAAOt6C,MAAOq8G,EAAOsqE,EAAK3/D,EAAIhwF,EAC/D,GAJqB,CAKvB,EACA6pJ,EAAQgG,iBAAmB,SAAS5yK,EAAG01H,EAAKttB,EAAOsqE,EAAK3/D,EAAIhwF,GAC1D,IAAIzM,EAAS8xF,EAAM9xF,OACfu8J,EAAav8J,EAAOjmB,KAMxB,GALI0yB,GAAMA,EAAG/0B,GAAK,QAAa,IAARgS,EAAEhS,IAAcgS,EAAEhS,EAAI+0B,EAAG/0B,GAChD0nI,EAAIr9G,MACF,UACAq6J,EAAII,kBAAoBJ,EAAII,kBAAkB9yK,QAAc,IAATA,EAAEgkG,GAAgB1tF,EAAOhb,QAAU0E,EAAEgkG,IAEtF0uE,EAAIK,OAAQ,CACd,IAAI34J,EAEFA,EADW,YAATpa,EAAE6uB,IAAoC,YAAhBvY,EAAOtiB,KAC3B,EAEA0+K,EAAIK,OAAO/yK,EAAE6uB,IAEnB7uB,EAAEgzK,IAAM54J,EACJs4J,EAAIO,iBACN74J,EAAIpa,EAAEgzK,IAAMN,EAAIO,eAAejzK,IAEjC,IAAI7L,EAAIy4K,EAAQ0D,aAAatwK,EAAEmkB,IAAM7N,EAAO80D,SAAW,EACvDprE,EAAEkzK,GAAK/+K,EAAI,KAAO,IAClB,IAAI21D,EAAQqpH,GAAenzK,EAAGooG,GAC1BoyD,EAAW4Y,EAAkBpzK,EAAGooG,GACpCstB,EAAIzsF,KAAK,IAAKonI,EAAcl8K,EAAGimB,EAAG0vC,EAAO0wG,GAC3C,CACA,IACI6Y,EAAWC,EAAWtE,EADtBuE,GAAmB,EAEvB,GAAIvzK,EAAEwzK,GACJxE,EAAY6D,EAAWY,aACvBH,EAAYT,EAAWa,aACvBL,EAAY/8J,EAAOo9J,iBACd,CACL,IAAIC,GAAmBd,GAAc,CAAC,GAAGhwK,MACzCmsK,GAAahvK,EAAE4zK,IAAM,GAAKD,EAAkB,IAC3C3zK,EAAEooG,OAASpoG,EAAEooG,MAAM9xF,OAAOjmB,MAAQ,CAAC,GAAGwS,MAAQ,GAAK,GAAK,GAAK,EAC9CywK,EAAZ,QAAStzK,EAAeA,EAAE6zK,KAAOnB,EAAIoB,UAAU9zK,EAAE+zK,KAC5C94C,EAAI90C,oBAAoB0sF,EAAWlxK,OAAoBi+F,EAAO1C,YACtD21E,EAAWlxK,MACxBs5H,EAAI90C,oBAAoB7vE,EAAO3U,SACjC0xK,EAAYzzE,EAAO1C,YACnBq2E,GAAmB,GAGnBF,EADE,OAAQrzK,EACEA,EAAEyxK,IAAMiB,EAAIsB,YAAYh0K,EAAEi0K,IAE1B39J,EAAO3U,OAAS2U,EAAOL,QAAU,gBAE3Cy8J,EAAIwB,kBACNb,EAAYX,EAAIwB,gBAAgBl0K,GAEpC,CACA,GAAIA,EAAEkzK,GACJx9C,EAAI7/H,KAAK+pG,EAAOjB,OAAQ00E,GAAWh7J,MAAM,CACvC,gBAAiB22J,GAAa,GAAK,KACnChsK,KAAM,aAEH,CACL0yH,EAAIr9G,MAAM,gBAAiBrY,EAAEm0K,QAAU,EAAInF,GAAa,MACxD,IAAIoF,EAAiB99J,EAAOy3J,SACxBx9E,EAAevwF,EAAEq0K,IACjB9jF,EAAcgjF,GAAmB,EAChChjF,EAAe6jF,GAAkBA,EAAevjL,KACjDoqI,EAAI90C,oBAAoBoK,KAC1BA,EAAeA,EAAa,GACvBkgF,EAAalgF,KAAeA,EAAe,IAElD,IAAI48E,EAAgB72J,EAAOjnB,QACvBi+K,EAAeH,GAAiBP,EAAQW,eAAeJ,EAAc9uJ,MAAOre,EAAEhS,EAAG,IACrF,GAAIuiG,GAAiC,SAAjBA,EAAyB,CAC3C,IAAI+jF,EAAgBt0K,EAAEu0K,IAClBD,EAAef,GAAmB,EACjCe,EAAgBF,EAAezyK,MACpC,IAAImsK,EAAa1lE,EAAMvN,IACnB04E,IAAkBzF,GAAc,IAAM9tK,EAAEhS,GAC5C4+K,EAAQmB,SACNr4C,EACA3iB,EACA+6D,EACAv9E,EACA,CAAC,CAAC,EAAG+jF,GAAgB,CAAC,EAAGjB,IACzB,OAEJ,MAAO,GAAI/F,EAAc,CACvB,IAAIkH,GAAkB,EAClBn/D,EAAU83D,EAAc93D,SACvBA,GAAWtyF,GAAMA,EAAGphB,QACvB0zG,EAAUtyF,EAAGphB,MACb6yK,GAAkB,GAEpB,IAAI/G,EAAiBb,EAAQW,eAAel4D,EAASr1G,EAAEhS,EAAG+0B,GAAMA,EAAGphB,OAAS,MACxE6rK,EAAiBZ,EAAQW,eAAeJ,EAActqJ,QAAS7iB,EAAEhS,EAAG,MACpE0/K,EAAmBP,EAAc73D,UACjCq4D,EAAcf,EAAQW,eAAeJ,EAAcn5K,KAAMgM,EAAEhS,EAAG,GAC9D4/K,EAAkBhB,EAAQW,eAAeJ,EAAc53D,SAAUv1G,EAAEhS,EAAG,IAC1EwmL,EAAkBA,GAAmBx0K,EAAEyxK,KAAOx2C,EAAI90C,oBAAoBgnF,EAAc9uJ,QAAU48G,EAAI90C,oBAAoBgnF,EAActqJ,UAAYo4G,EAAI90C,oBAAoBgnF,EAAc93D,UAAY4lB,EAAI90C,oBAAoBgnF,EAAcn5K,OAASinI,EAAI90C,oBAAoBgnF,EAAc53D,UACvR,IAAIs4D,EAAYzlE,EAAMvN,IAClB25E,IAAiB3G,GAAa,IAAM7tK,EAAEhS,GAC1C4+K,EAAQv9K,QACNqmI,EACA,QACA3iB,EACA86D,EACAP,EACAK,EACAC,EACA5tK,EAAEyxK,IACFtE,EAAc/3D,SACdo4D,EACAC,EACAC,EAEJ,MACEzyC,EAAI90C,oBAAoBktF,GAAazzE,EAAO58F,KAAK0yH,EAAK29C,EAAUrzK,EAAEhS,IAAM4xG,EAAO58F,KAAK0yH,EAAK29C,GAEvFrE,GACFpvE,EAAOjB,OAAO+2B,EAAK49C,EAEvB,CACF,EACA1G,EAAQ+F,kBAAoB,SAASvqE,GACnC,IAAIx2C,EAAM,CAAC,EACPt7C,EAAS8xF,EAAM9xF,OAWnB,OAVAs7C,EAAIoiH,YAAcpH,EAAQ6H,cAAcn+J,EAAQ,IAChDs7C,EAAIkiH,UAAYlH,EAAQ6H,cAAcn+J,EAAQ,QAC1CyoG,EAASN,QAAQrW,EAAO,aAC1Bx2C,EAAImhH,OAASrG,EAAS5F,SAAS1+D,GAASukE,EAAiBvkE,GAAS,WAChE,OAAQ9xF,EAAOtiB,MAAQ,GAAK,CAC9B,GAEEo0G,EAAMnN,gBACRggC,EAAInkC,WAAWllC,EAAKg7G,EAAQ8H,0BAA0BtsE,IAEjDx2C,CACT,EACAg7G,EAAQ8H,0BAA4B,SAAStsE,GAC3C,IAAIx2C,EAAM,CAAC,EACP+iH,EAAgBvsE,EAAM3hG,UAAY,CAAC,EACnCmuK,EAAkBxsE,EAAMnE,YAAc,CAAC,EACvC3tF,EAAS8xF,EAAM9xF,QAAU,CAAC,EAC1Bu+J,EAAiBF,EAAcr+J,QAAU,CAAC,EAC1Cw+J,EAAmBF,EAAgBt+J,QAAU,CAAC,EAC9C0tF,EAAK1tF,EAAOhb,QACZy5K,EAAMF,EAAev5K,QACrB05K,EAAOF,EAAiBx5K,QACxB25K,OAAuB,IAARF,EACfG,OAAyB,IAATF,GAChB/5C,EAAI90C,oBAAoB6d,IAAOixE,GAAgBC,KACjDtjH,EAAIkhH,kBAAoB,SAAS9yK,GAC/B,IAAI6c,OAAgB,IAAT7c,EAAEgkG,GAAgB1tF,EAAOhb,QAAU0E,EAAEgkG,GAChD,OAAIhkG,EAAEyG,SACGwuK,EAAeF,EAAMl4J,EAErBq4J,EAAgBF,EAAO/1E,EAAcpiF,CAEhD,GAEF,IAAIo3J,EAAK39J,EAAO3U,MACZwzK,EAAMN,EAAelzK,MACrByzK,EAAON,EAAiBnzK,OACxBwzK,GAAOC,KACTxjH,EAAIsiH,gBAAkB,SAASl0K,GAC7B,IAAI6c,EAAO7c,EAAEyxK,KAAOwC,EACpB,OAAIj0K,EAAEyG,SACG0uK,GAAOt4J,EAEPu4J,GAAQv4J,CAEnB,GAEF,IAAIgS,EAAKvY,EAAOtiB,KACZqhL,EAAMR,EAAe7gL,KACrBshL,EAAOR,EAAiB9gL,KACxBuhL,OAAuB,IAARF,EACfG,OAAyB,IAATF,EAWpB,OAVIv2D,EAASN,QAAQrW,EAAO,aAAemtE,GAAgBC,KACzD5jH,EAAIqhH,eAAiB,SAASjzK,GAC5B,IAAI6c,EAAO7c,EAAEgzK,KAAOnkJ,EAAK,EACzB,OAAI7uB,EAAEyG,SACG8uK,EAAeF,EAAM,EAAIx4J,EAEzB24J,EAAgBF,EAAO,EAAIz4J,CAEtC,GAEK+0C,CACT,EACAg7G,EAAQ6I,yBAA2B,SAASrtE,GAC1C,IAAIx2C,EAAM,CAAC,EACP+iH,EAAgBvsE,EAAM3hG,UAAY,CAAC,EACnCmuK,EAAkBxsE,EAAMnE,YAAc,CAAC,EACvCyxE,EAAWttE,EAAMutE,UAAY,CAAC,EAC9BC,EAAmBjB,EAAcgB,UAAY,CAAC,EAC9CE,EAAqBjB,EAAgBe,UAAY,CAAC,EAClD93E,EAAK63E,EAAS/zK,MACdm0K,EAAMF,EAAiBj0K,MACvB0tB,EAAMwmJ,EAAmBl0K,MAU7B,OATAiwD,EAAImkH,oBAAsB,SAAS/1K,GACjC,IAAI6c,EAAO7c,EAAE69F,IAAMA,EACnB,OAAI79F,EAAEyG,SACGqvK,GAAOj5J,EAEVwS,IACQymJ,EAAMj5J,EAAO+iF,EAAO7B,WAAWlhF,EAAMoiF,GAErD,EACOrtC,CACT,EACAg7G,EAAQoJ,mBAAqB,SAAS9+J,EAAGkxF,GACvC,GAAKlxF,EAAEljB,QAAWo0G,EAAMnN,eAAxB,CACA,IAAIy3E,EAAM9F,EAAQ8H,0BAA0BtsE,GACxC9xF,EAAS8xF,EAAM9xF,QAAU,CAAC,EAC1BkqI,EAAM,GACNkyB,EAAII,mBACNtyB,EAAI7zJ,MAAK,SAASo2B,EAAI/iB,GACpB+iB,EAAG1K,MAAM,UAAWq6J,EAAII,kBAAkB9yK,GAC5C,IAEE0yK,EAAIwB,iBACN1zB,EAAI7zJ,MAAK,SAASo2B,EAAI/iB,GACpB4/F,EAAO58F,KAAK+f,EAAI2vJ,EAAIwB,gBAAgBl0K,GACtC,IAEE0yK,EAAIO,gBACNzyB,EAAI7zJ,MAAK,SAASo2B,EAAI/iB,GACpB,IAAImkB,EAAKnkB,EAAEmkB,IAAM7N,EAAO80D,QAAU,EAC9B6qG,EAAOvD,EAAIO,eAAejzK,GAC9B+iB,EAAGkmB,KAAK,IAAKonI,EAAczD,EAAQ0D,aAAansJ,GAAK8xJ,EAAM9C,GAAenzK,EAAGooG,GAAQgrE,EAAkBpzK,EAAGooG,KAC1GpoG,EAAEi2K,KAAOA,CACX,IAEEz1B,EAAIp0J,QACN8qB,EAAEiyB,MAAK,SAASnpC,GAEd,IADA,IAAI+iB,EAAKgb,EAAGsI,OAAOt6C,MACViC,EAAI,EAAGA,EAAIwyJ,EAAIp0J,OAAQ4B,IAC9BwyJ,EAAIxyJ,GAAG+0B,EAAI/iB,EAEf,GA5B4C,CA8BhD,EACA4sK,EAAQ6H,cAAgB,SAASn+J,EAAQphB,GACvC,IAAI60F,EAAO70F,EAAS+lI,EAAIhvC,eAAe31E,EAAQphB,GAAQJ,MAAQwhB,EAC/D,GAAIyzE,EAAM,CACR,IAAI6uE,EAAa7uE,EAAKpoF,MACtB,IAAKooF,EAAK8W,YAAc9W,EAAK4tE,WAAa18B,EAAI90C,oBAAoByyE,GAChE,OAAO4T,EAAWtT,4BAA4BnvE,EAElD,CACA,OAAOkxC,EAAI31D,QACb,EACA,IAmHI4wG,EACAC,EApHAC,EAAiB,CACnBvjK,MAAO,EACP9iB,KAAM,EACN47J,OAAQ,EACRrlI,OAAQ,EACRF,KAAM,GAER,SAASiwJ,EAAkBn/J,EAAGo/J,EAAcz0K,EAAU00K,EAAcC,GAClE,IAAI9vI,EAAQ3I,EAAGsI,OAAOnvB,EAAExmB,OAAOjC,YAC3B4/B,GAAqC,IAAjCioJ,EAAa7mL,QAAQ,OAAgB,OAA4C,IAApC6mL,EAAa7mL,QAAQ,UAAmB,SAAW,SACpGoP,GAAsC,IAAlCy3K,EAAa7mL,QAAQ,QAAiB,OAA2C,IAAnC6mL,EAAa7mL,QAAQ,SAAkB,QAAU,SACnG2qB,EAAIm8J,EAAeA,EAAe,GAAM,EAAI,EAC5CE,GAAYhK,EAAanX,UAAUp+I,GAAK,GAAK40I,EAAe,EAC5Dp9G,EAAK0nI,EAAev3K,GAAKub,EACzBu0B,EAAgB,IAAX9sC,EAAkBu0K,EAAe/nJ,GAAKjU,GAAKg8J,EAAe/nJ,GAAK,GAAKooJ,EAAW50K,EAAW,EACnGqV,EAAE+xB,KAAK,cAAepqC,GACjB23K,GACH9vI,EAAMuC,KAAK,YAAaowF,EAAa3qF,EAAIC,GAE7C,CACA,SAAS+nI,EAAmB12K,EAAGooG,GAC7B,IAAIvmG,EAAW7B,EAAEwnG,IAAMY,EAAMutE,SAAS3hL,KACtC,OAAO61F,EAAUhoF,IAAaA,EAAW,EAAIA,EAAW,CAC1D,CA8FA,SAAS80K,EAAS5zJ,EAAI6zJ,EAAKC,GAEzB,OADIA,IAAa9zJ,EAAK+zJ,EAAa/zJ,IAC5B6zJ,EAAMG,EAAOh0J,EAAG,IAAMi0J,EAAOj0J,EAAG,GACzC,CACA,SAASi0J,EAAOl4J,GACd,IAAIuP,EAAI0P,EAAGpzB,MAAMmU,EAAG,GAEpB,OADAo3J,EAAa7nJ,EACNA,CACT,CACA,SAAS0oJ,EAAOj4J,GACd,IAAIuP,EAAI0P,EAAGpzB,MAAMmU,EAAG,GAEpB,OADAq3J,EAAa9nJ,EACNA,CACT,CACA,SAAS4oJ,EAAYC,EAAQC,EAAQC,EAAQC,GAC3C,IAAIC,EAAMJ,EAAO,GAAKC,EAAO,GACzBI,EAAML,EAAO,GAAKC,EAAO,GACzBK,EAAMJ,EAAO,GAAKD,EAAO,GACzBM,EAAML,EAAO,GAAKD,EAAO,GACzBO,EAAM9oL,KAAK4jD,IAAI8kI,EAAMA,EAAMC,EAAMA,EAAKI,KACtCC,EAAMhpL,KAAK4jD,IAAIglI,EAAMA,EAAMC,EAAMA,EAAKE,KACtCE,GAAQD,EAAMA,EAAMN,EAAMI,EAAMA,EAAMF,GAAOH,EAC7CS,GAAQF,EAAMA,EAAML,EAAMG,EAAMA,EAAMD,GAAOJ,EAC7CU,EAAS,EAAIH,GAAOF,EAAME,GAC1BI,EAAS,EAAIN,GAAOA,EAAME,GAC9B,MAAO,CACL,CACEZ,EAAOG,EAAO,IAAMY,GAAUF,EAAOE,IACrChB,EAAOI,EAAO,IAAMY,GAAUD,EAAOC,KAEvC,CACEf,EAAOG,EAAO,IAAMa,GAAUH,EAAOG,IACrCjB,EAAOI,EAAO,IAAMa,GAAUF,EAAOE,KAG3C,CAhIApL,EAAQqL,eAAiB,SAAS/gK,EAAGkxF,EAAO2K,GAC1C,GAAK77F,EAAEljB,OAAP,CACA,IAAI+hL,EACJ,GAAI3tE,EAAMnN,eAAgB,CACxB,IAAIy3E,EAAM9F,EAAQ6I,yBAAyBrtE,GAC3C2tE,EAAsBrD,EAAIqD,mBAC5B,CACA,IAAI1/D,EAAejO,EAAMiO,aACrBguB,EAAatxB,EAAGonB,YACpBjjH,EAAEiyB,MAAK,SAASnpC,GACd,IAAI8e,EAAIif,EAAGsI,OAAOt6C,MACdia,EAAOqwG,EAAe4kB,EAAIxH,cAAczzH,EAAGooG,EAAO,MAAO,gBAAkB6yB,EAAIxH,cAAczzH,EAAGooG,EAAO,KAAM,QACjH,GAAKpiG,GAAiB,IAATA,EAAb,CAIA,GAAIqwG,EAAc,CAChB,IAAIj/G,EAAKgxG,EAAM1E,QAAQw0E,aACnB3gD,EAASngI,EAAKA,EAAG4I,EAAGooG,EAAOi8B,GAAc,CAAC,EAC1C8zC,EAAc,CAAC,EACnBjP,EAAsBiP,EAAa/vE,EAAOpoG,EAAEhS,GAC5C,IAAIgtG,EAAOoN,EAAMwuC,OAAS,CAAC,EAC3B5wI,EAAOi1H,EAAIhE,mBAAmBjxH,EAAMuxH,EAAQ8M,EAAWwP,UAAWskC,EAAan4K,EAAGg7F,EACpF,CACA,IAAIjS,EAAM/oF,EAAEo4K,IAAMhwE,EAAM6P,aACpBp2G,EAAW60K,EAAmB12K,EAAGooG,GACjCiwE,EAAYtC,EAAsBA,EAAoB/1K,GAAKA,EAAE69F,IAAMuK,EAAMutE,SAASh0K,MACtFmd,EAAEjpB,KAAK+2K,EAAQvzE,KAAM,CACnB1B,OAAQ33F,EAAEs4K,IAAMlwE,EAAMutE,SAASh+E,OAC/Bp/B,OAAQv4D,EAAEu4K,IAAMnwE,EAAMutE,SAASp9G,OAC/BlgD,MAAOrY,EAAEw4K,IAAMpwE,EAAMutE,SAASt9J,MAC9B8C,QAASnb,EAAEy4K,IAAMrwE,EAAMutE,SAASx6J,QAChC48E,SAAU/3F,EAAE04K,IAAMtwE,EAAMutE,SAAS59E,SACjCE,aAAcj4F,EAAE24K,IAAMvwE,EAAMutE,SAAS19E,aACrCG,OAAQp4F,EAAE44K,IAAMxwE,EAAMutE,SAASv9E,OAC/BpkG,KAAM6N,EACNF,MAAO02K,IACNryK,KAAKA,GAAMnQ,KAAK42K,EAAapgB,gBAAiBt5C,GAAIl9G,KAAKwgL,EAAmBttF,EAAKlnF,EAAU7B,EAAEgzK,IAtB9F,MAFEl0J,EAAEokB,QAyBN,GArCqB,CAsCvB,EACA0pI,EAAQiM,kBAAoB,SAAS3hK,EAAGkxF,GACtC,GAAKlxF,EAAEljB,QAAWo0G,EAAMnN,eAAxB,CACA,IAAIy3E,EAAM9F,EAAQ6I,yBAAyBrtE,GAC3ClxF,EAAEiyB,MAAK,SAASnpC,GACd,IAAI+/D,EAAKhiC,EAAGsI,OAAOt6C,MACf8xG,EAAK60E,EAAIqD,oBAAoB/1K,GAC7Bo4K,EAAKp4K,EAAEo4K,IAAMhwE,EAAM6P,aACnBp2G,EAAW60K,EAAmB12K,EAAGooG,GACrCxI,EAAO58F,KAAK+8D,EAAI89B,GAChB,IAAI24E,EAAkBz3D,EAASN,QAAQrW,EAAO,YAC9CiuE,EAAkBt2G,EAAIq4G,EAAIv2K,EAAU7B,EAAEi2K,MAAQj2K,EAAEgzK,IAAKwD,EACvD,GAV8C,CAWhD,EAEA5J,EAAQkM,WAAa,SAASjpD,EAAKwnD,GACjC,GAAIxnD,EAAIzjI,OAAS,EACf,MAAO,IAAMyjI,EAAIj9H,KAAK,KAExB,IAEI5E,EAFAuhB,EAAO,IAAMsgH,EAAI,GACjBvmD,EAAW,GAEf,IAAKt7E,EAAI,EAAGA,EAAI6hI,EAAIzjI,OAAS,EAAG4B,IAC9Bs7E,EAAS38E,KAAKsqL,EAAYpnD,EAAI7hI,EAAI,GAAI6hI,EAAI7hI,GAAI6hI,EAAI7hI,EAAI,GAAIqpL,IAG5D,IADA9nK,GAAQ,IAAM+5D,EAAS,GAAG,GAAK,IAAMumD,EAAI,GACpC7hI,EAAI,EAAGA,EAAI6hI,EAAIzjI,OAAS,EAAG4B,IAC9BuhB,GAAQ,IAAM+5D,EAASt7E,EAAI,GAAG,GAAK,IAAMs7E,EAASt7E,EAAI,GAAG,GAAK,IAAM6hI,EAAI7hI,GAG1E,OADAuhB,GAAQ,IAAM+5D,EAASumD,EAAIzjI,OAAS,GAAG,GAAK,IAAMyjI,EAAIA,EAAIzjI,OAAS,EAErE,EACAwgL,EAAQmM,aAAe,SAASlpD,EAAKwnD,GACnC,GAAIxnD,EAAIzjI,OAAS,EACf,MAAO,IAAMyjI,EAAIj9H,KAAK,KAAO,IAE/B,IAGI5E,EAHAuhB,EAAO,IAAMsgH,EAAI,GACjBmpD,EAAQnpD,EAAIzjI,OAAS,EACrBk9E,EAAW,CAAC2tG,EAAYpnD,EAAImpD,GAAQnpD,EAAI,GAAIA,EAAI,GAAIwnD,IAExD,IAAKrpL,EAAI,EAAGA,EAAIgrL,EAAOhrL,IACrBs7E,EAAS38E,KAAKsqL,EAAYpnD,EAAI7hI,EAAI,GAAI6hI,EAAI7hI,GAAI6hI,EAAI7hI,EAAI,GAAIqpL,IAK5D,IAHA/tG,EAAS38E,KACPsqL,EAAYpnD,EAAImpD,EAAQ,GAAInpD,EAAImpD,GAAQnpD,EAAI,GAAIwnD,IAE7CrpL,EAAI,EAAGA,GAAKgrL,EAAOhrL,IACtBuhB,GAAQ,IAAM+5D,EAASt7E,EAAI,GAAG,GAAK,IAAMs7E,EAASt7E,GAAG,GAAK,IAAM6hI,EAAI7hI,GAGtE,OADAuhB,GAAQ,IAAM+5D,EAAS0vG,GAAO,GAAK,IAAM1vG,EAAS,GAAG,GAAK,IAAMumD,EAAI,GAAK,GAE3E,EAuCA,IAAIopD,EAAW,CACbC,GAAI,SAASnpI,EAAI/yC,EAAI65K,GACnB,MAAO,IAAMG,EAAOh6K,EAAG,IAAM,IAAM25K,EAAS35K,EAAI,EAAG65K,EACrD,EACAsC,GAAI,SAASppI,EAAI/yC,EAAI65K,GACnB,MAAO,IAAME,EAAO/5K,EAAG,IAAM,IAAM25K,EAAS35K,EAAI,EAAG65K,EACrD,EACAuC,IAAK,SAASrpI,EAAI/yC,EAAI65K,GACpB,MAAO,IAAMG,GAAQjnI,EAAG,GAAK/yC,EAAG,IAAM,GAAK,IAAM+5K,EAAO/5K,EAAG,IAAM,IAAM25K,EAAS35K,EAAI,EAAG65K,EACzF,EACAwC,IAAK,SAAStpI,EAAI/yC,EAAI65K,GACpB,MAAO,IAAME,GAAQhnI,EAAG,GAAK/yC,EAAG,IAAM,GAAK,IAAMg6K,EAAOh6K,EAAG,IAAM,IAAM25K,EAAS35K,EAAI,EAAG65K,EACzF,GAEEyC,EAAa,SAASvpI,EAAI/yC,EAAI65K,GAChC,MAAO,IAAMF,EAAS35K,EAAI,EAAG65K,GAAe,IAAMF,EAAS35K,EAAI,EAAG65K,EACpE,EAYA,SAASC,EAAa/zJ,EAAIlQ,GACxB,IAAIu5J,EAAUrpJ,EAAGqpJ,QACbhkE,EAAQrlF,EAAGqlF,MACXpoG,EAAI+iB,EAAG/iB,EACPhS,EAAI+0B,EAAG/0B,EACX,GAAIo+K,GAAWhkE,GAASA,EAAM9xF,QAAU8xF,EAAM9xF,OAAOwzC,MAAQ,MAAQ,GAAKs+C,EAAM/3G,MAA6B,WAArB+3G,EAAM/3G,KAAKguB,MAAoB,CACrH,IAAIk7J,EAAet+C,EAAI90C,oBAAoBimF,GACvCr8K,EAAMgzB,EACNsuB,EAAKx+B,EAAQA,EAAM,GAAKqjK,GAAc,EACtC3kI,EAAK1+B,EAAQA,EAAM,GAAKsjK,GAAc,EACtCxqH,EAAK57D,EAAI,GACT67D,EAAK77D,EAAI,GACT2+C,EAAKid,EAAKta,EACV1C,EAAKid,EAAKra,EACVj3B,EAAI1rB,KAAKioD,MAAMlI,EAAID,GACnB1vB,EAAIu6J,EAAenN,EAAQp+K,GAAKo+K,EACpC,GAAU,SAANptJ,EAAc,CAChB,IAAIw6J,EAAOzpL,EAAI/B,EACI,YAAfo6G,EAAMv3G,MAAoB2oL,IAC9B,IAAIC,EAAY1pL,EAAIumB,OAChBojK,EAAkBD,EAAUruG,OAC5B6vD,EAAI90C,oBAAoBuzF,KAAkBA,EAAkBA,EAAgBF,IAChF,IAAIG,EAAgBF,EAAUzlL,KAC1BinI,EAAI90C,oBAAoBwzF,KAAgBA,EAAgBA,EAAcH,IAC1Ex6J,EAAIy6J,EAAY7M,EAAQkD,eAAelD,EAAQ0D,aAAaoJ,IAAoBC,EAAgB,EAChG36J,GAAK4tJ,EAAQwG,kBAAkBpzK,EAAEw5K,GAAOpxE,IAAU,CACpD,CACA,IAAIj0G,EAAIw3D,EAAK3sC,EAAIpwB,KAAKsnD,IAAI57B,GACtBlmB,EAAIw3D,EAAK5sC,EAAIpwB,KAAKunD,IAAI77B,IACrBnmB,GAAKw3D,GAAMx3D,GAAKk9C,GAAMl9C,GAAKw3D,GAAMx3D,GAAKk9C,KAAQj9C,GAAKw3D,GAAMx3D,GAAKm9C,GAAMn9C,GAAKw3D,GAAMx3D,GAAKm9C,KACvFxuB,EAAK,CAAC5uB,EAAGC,GAEb,CACA,OAAO2uB,CACT,CA7CA6pJ,EAAQ/oG,MAAQ,SAASxlD,GACvB,IAAIu7J,EAAUX,EAAS56J,IAAUi7J,EACjC,OAAO,SAASzpD,GAGd,IAFA,IAAItgH,EAAO,IAAMynK,EAAOnnD,EAAI,GAAG,IAAM,IAAMknD,EAAOlnD,EAAI,GAAG,IACrD/wH,EAAM+wH,EAAIzjI,OACL4B,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACvBuhB,GAAQqqK,EAAQ/pD,EAAI7hI,EAAI,GAAI6hI,EAAI7hI,GAAIA,IAAM8Q,EAAM,GAElD,OAAOyQ,CACT,CACF,EAoCAq9J,EAAQkK,aAAeA,EACvBlK,EAAQiN,WAAa,WACnB,IAAIC,EAAS7+C,EAAItF,iBAAiB53F,EAAGsI,OAAO,QAAS,MAAO,oBAAoB,SAASnvB,GACvFA,EAAE+xB,KAAKkjH,EAAgBX,UAAUnzI,MAAM,CACrC9nB,SAAU,WACVg2B,KAAM,WACNH,IAAK,WACLvjB,MAAO,SACPC,OAAQ,SACR,UAAW,KAEf,IACIi3K,EAAU9+C,EAAIzF,aAAaskD,EAAQ,OAAQ,sBAAsB,SAAS5iK,GAC5EA,EAAE+xB,KAAK,IAAK,eAAe5wB,MAAM,CAC/B,eAAgB,EAChBrV,KAAM,SAEV,IACA4pK,EAAQkN,OAASA,EACjBlN,EAAQmN,QAAUA,CACpB,EACAnN,EAAQoN,YAAc,CAAC,EACvB,IAAIC,EAAmB,EA4DvB,SAASC,EAASxpL,GAChB,IAAIypL,EAAYzpL,EAAKoF,aAAa,oBAClC,GAAkB,OAAdqkL,EACJ,OAAOA,EAAYzpL,EAAKoF,aAAa,aAAepF,EAAKoF,aAAa,eAAiBpF,EAAKoF,aAAa,QAC3G,CAIA,SAASy7K,EAAW6I,EAASrnE,GAC3B,IAAKqnE,EAAS,OAAO,KACrB,IAAIr/I,EAAUg4E,EAAG4Z,SACbmjB,EAAU/0G,EAAQs/I,cAAgB,GAAKt/I,EAAQu/I,UAAY,GAC/D,OAAOxqC,EAAU,QAAUA,EAAU,IAAMsqC,EAAU,KAAO,QAAUA,EAAU,GAClF,CAvEAxN,EAAQ2N,KAAO,SAAS7pL,EAAM8pL,EAAUrlL,GAEtC,IAAIy8D,EA4BA6oH,EAAUX,EA3Bd,GAFK3kL,IAAMA,EAAO+kL,EAASxpL,IAEvByE,GAEF,GADAy8D,EAAMg7G,EAAQoN,YAAY7kL,GACjB,OAAO8lI,EAAInkC,WAAW,CAAC,EAAGllC,QAC9B,GAA+B,IAA3BlhE,EAAK6tC,WAAWnyC,OAAc,CACvC,IAAI4kK,EAAYtgK,EAAK6tC,WAAW,GAEhC,GADAppC,EAAO+kL,EAASlpB,GACN,CACR,IAAI78J,GAAK68J,EAAUl7J,aAAa,MAAQ,EACpC1B,GAAK48J,EAAUl7J,aAAa,MAAQ,EACpC0oB,EAAYwyI,EAAUl7J,aAAa,aACvC,IAAK0oB,EAAW,CACd,IAAIk8J,EAAU9N,EAAQ2N,KAAKvpB,GAAW,EAAO77J,GAS7C,OARIhB,IACFumL,EAAQn0J,MAAQpyB,EAChBumL,EAAQr0J,OAASlyB,GAEfC,IACFsmL,EAAQt0J,KAAOhyB,EACfsmL,EAAQp0J,QAAUlyB,GAEbsmL,CACT,CAGA,GAFAvlL,GAAQ,IAAMhB,EAAI,IAAMC,EAAI,IAAMoqB,EAClCozC,EAAMg7G,EAAQoN,YAAY7kL,GACjB,OAAO8lI,EAAInkC,WAAW,CAAC,EAAGllC,EACrC,CACF,CAEI4oH,EACFC,EAAW/pL,GAEXopL,EAASlN,EAAQkN,OAAOppL,OACxB+pL,EAAW/pL,EAAK6+J,WAAU,GAC1BuqB,EAAOlsL,YAAY6sL,IAErB18I,EAAGsI,OAAOo0I,GAAUxxI,KAAK,YAAa,MAAMpzC,KAAK42K,EAAara,aAAc,EAAG,GAC/E,IAAIuoB,EAAWF,EAASntI,wBACpBstI,EAAUhO,EAAQmN,QAAQrpL,OAAO48C,wBAChCktI,GAAUV,EAAOprL,YAAY+rL,GAClC,IAAI7sH,EAAK,CACP9qD,OAAQ63K,EAAS73K,OACjBD,MAAO83K,EAAS93K,MAChB0jB,KAAMo0J,EAASp0J,KAAOq0J,EAAQr0J,KAC9BH,IAAKu0J,EAASv0J,IAAMw0J,EAAQx0J,IAC5BC,MAAOs0J,EAASt0J,MAAQu0J,EAAQr0J,KAChCD,OAAQq0J,EAASr0J,OAASs0J,EAAQx0J,KAQpC,OANI6zJ,GAnDe,MAoDjBrN,EAAQoN,YAAc,CAAC,EACvBC,EAAmB,GAEjB9kL,IAAMy3K,EAAQoN,YAAY7kL,GAAQy4D,GACtCqsH,IACOh/C,EAAInkC,WAAW,CAAC,EAAGlpC,EAC5B,EAMAg/G,EAAQiO,WAAa,SAAS3jK,EAAGkjK,EAASrnE,GACxC77F,EAAE+xB,KAAK,YAAasoI,EAAW6I,EAASrnE,GAC1C,EAOA65D,EAAQkO,aAAe,SAASnoL,GAC9B,IAGImgD,GADYngD,EADHA,EAAQs2C,KAAO,OAAS,gBACL,cAAgB,IACtB75C,QAHjB,2DAG6B,SAASoG,EAAOwH,EAAIC,GACxD,MAAO,CAACD,EAAIC,GAAIrK,KAAK,IACvB,IAAGyD,MAAM,KACT,MAAO,CACLlC,GAAI2+C,EAAU,IAAM,EACpB1+C,GAAI0+C,EAAU,IAAM,EAExB,EACA85H,EAAQmO,aAAe,SAASpoL,EAASwB,EAAGC,GAC1C,IACI4mL,EAASroL,EAAQs2C,KAAO,OAAS,eACjCtF,EAAShxC,EAAQs2C,KAAO,OAAS,eACjCzqB,EAAY7rB,EAAQqoL,GAAQ,cAAgB,GAOhD,OANA7mL,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACToqB,EAAYA,EAAUpvB,QANb,yBAMyB,IAAIF,OAEtCsvB,GADAA,GAAa66G,EAAallI,EAAGC,IACPlF,OACtByD,EAAQgxC,GAAQ,YAAanlB,GACtBA,CACT,EACAouJ,EAAQlG,SAAW,SAAS/zK,GAC1B,IAGImgD,GADYngD,EADHA,EAAQs2C,KAAO,OAAS,gBACL,cAAgB,IACtB75C,QAHjB,kDAG6B,SAASoG,EAAOwH,EAAIC,GACxD,MAAO,CAACD,EAAIC,GAAIrK,KAAK,IACvB,IAAGyD,MAAM,KACT,MAAO,CACLlC,GAAI2+C,EAAU,IAAM,EACpB1+C,GAAI0+C,EAAU,IAAM,EAExB,EACA85H,EAAQ1nB,SAAW,SAASvyJ,EAASwB,EAAGC,GACtC,IACI4mL,EAASroL,EAAQs2C,KAAO,OAAS,eACjCtF,EAAShxC,EAAQs2C,KAAO,OAAS,eACjCzqB,EAAY7rB,EAAQqoL,GAAQ,cAAgB,GAOhD,OANA7mL,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACToqB,EAAYA,EAAUpvB,QANb,qBAMyB,IAAIF,OAEtCsvB,GADAA,GAAa,SAAWrqB,EAAI,IAAMC,EAAI,KAChBlF,OACtByD,EAAQgxC,GAAQ,YAAanlB,GACtBA,CACT,EACA,IAAIy8J,EAAW,UACfrO,EAAQsO,mBAAqB,SAAS90I,EAAW+nE,EAAQC,GAGvD,GAFAD,EAASA,GAAU,EACnBC,EAASA,GAAU,EACdhoE,EAAL,CACA,IAAI3qC,EAAmB,IAAX0yG,GAA2B,IAAXC,EAAe,GAAK,SAAWD,EAAS,IAAMC,EAAS,IACnFhoE,EAAU+C,MAAK,WACb,IAAI7uB,GAAKvuB,KAAK+J,aAAa,cAAgB,IAAI1G,QAAQ6rL,EAAU,IAEjE3gK,GADAA,GAAK7e,GACCvM,OACNnD,KAAK4B,aAAa,YAAa2sB,EACjC,GAPsB,CAQxB,EACA,IAAI6gK,EAAiC,yBA0BrC,SAAS/H,EAAkBpzK,EAAGooG,GAC5B,IAAIoyD,EAKJ,OAJIx6J,IAAGw6J,EAAWx6J,EAAEo7K,SACH,IAAb5gB,IACFA,EAAWpyD,EAAM9xF,QAAS8xF,EAAM9xF,OAAOkkJ,UAAgB,GAEpDpyD,EAAMizE,MAASjzE,EAAM4lE,IAGnBxT,GAFGA,CAGZ,CAnCAoS,EAAQ0O,mBAAqB,SAASl1I,EAAW+nE,EAAQC,GAClDhoE,GACLA,EAAU+C,MAAK,WACb,IAAIq9G,EACAv0C,EAAKl0E,EAAGsI,OAAOt6C,MACfia,EAAOisG,EAAG5rE,OAAO,QACrB,GAAKrgC,EAAKtV,OAAV,CACA,IAAIyD,EAAIwiB,WAAW3Q,EAAKijC,KAAK,MAAQ,GACjC70C,EAAIuiB,WAAW3Q,EAAKijC,KAAK,MAAQ,GACjCsyI,GAAqBtpE,EAAGhpE,KAAK,cAAgB,IAAIzzC,MAAM2lL,GAEzD30B,EADa,IAAXr4C,GAA2B,IAAXC,EACL,GAEA,CACXirB,EAAallI,EAAGC,GAChB,SAAW+5G,EAAS,IAAMC,EAAS,IACnCirB,GAAcllI,GAAIC,IAGlBmnL,GACF/0B,EAAW75J,KAAK4uL,GAElBtpE,EAAGhpE,KAAK,YAAau9G,EAAW5zJ,KAAK,IAhBb,CAiB1B,GACF,EAYAg6K,EAAQwG,kBAAoBA,EAC5B,IAWIoI,EACAC,EACAC,EACAC,GACAC,GACAC,GAhBAhlI,GAAQjoD,KAAKioD,MACbX,GAAMtnD,KAAKsnD,IACXC,GAAMvnD,KAAKunD,IACf,SAASsc,GAAOn4C,EAAG0xF,GACjB,IAAI73G,EAAI63G,EAAG,GACP53G,EAAI43G,EAAG,GACX,MAAO,CACL73G,EAAI+hD,GAAI57B,GAAKlmB,EAAI+hD,GAAI77B,GACrBnmB,EAAIgiD,GAAI77B,GAAKlmB,EAAI8hD,GAAI57B,GAEzB,CAOA,SAAS64J,GAAenzK,EAAGooG,GACzB,IAOIj0G,EAAGC,EAPH01D,EAAQ9pD,EAAE87K,QACA,IAAVhyH,KACFA,EAAQs+C,EAAM9xF,OAAOwzC,SACPmxE,EAAI90C,oBAAoBr8B,KACpCA,EAAQ,IAIZ,IAAI/xD,EAAMqwG,EAAM9xF,OAAOylK,SACvB,GAAY,aAARhkL,GAA8B,UAARA,EAAiB,CACzC,GAAIqwG,EAAMizE,KAAM,CACd,IAAIv8J,EAAIspF,EAAMizE,KAAKW,QAAQh8K,EAAEi8K,QAC7B9nL,EAAI2qB,EAAE,GACN1qB,EAAI0qB,EAAE,EACR,KAAO,CACL,IAAIs4F,EAAKhP,EAAM4lE,IACX12D,EAAKlP,EAAM8lE,IACf,IAAI92D,IAAME,EAIR,OAAO,GAHPnjH,EAAIijH,EAAG62D,IAAIjuK,EAAE7L,GACbC,EAAIkjH,EAAG22D,IAAIjuK,EAAE5L,EAIjB,CACA,GAAIg0G,EAAMizE,KAAM,CACd,IAoBI/gK,EApBA4hK,EAAMl8K,EAAEi8K,OAAO,GACfE,EAAMn8K,EAAEi8K,OAAO,GACfG,EAAQh0E,EAAMizE,KAAKW,QAAQ,CAC7BE,EACAC,EAAM,OAGJE,EAAOj0E,EAAMizE,KAAKW,QAAQ,CAC5BE,EAAM,KAENC,IAEExhK,EAAIk8B,GACNwlI,EAAK,GAAKjoL,EACVioL,EAAK,GAAKloL,GAERk6B,EAAIwoB,GACNulI,EAAM,GAAKhoL,EACXgoL,EAAM,GAAKjoL,GAGb,GAAY,UAAR4D,EACFuiB,EAAIwvC,EAAQ,IAAMl7D,KAAKsgD,QAClB,GAAY,aAARn3C,EAAoB,CAC7B,IAAIukL,EAAOJ,EAAM,IAAMttL,KAAKsgD,GACxBqtI,EAAOJ,EAAM,IAAMvtL,KAAKsgD,GACxBstI,EAAOhB,EAAc,IAAM5sL,KAAKsgD,GAChCutI,EAAOhB,EAAc,IAAM7sL,KAAKsgD,GAChCwtI,EAAOF,EAAOF,EACdjoI,EAAS6B,GAAIumI,GAAQtmI,GAAIumI,GACzBC,EAASxmI,GAAIsmI,GAAQvmI,GAAIqmI,GAAQrmI,GAAIumI,GAAQtmI,GAAIomI,GAAQrmI,GAAIwmI,GACjEpiK,GAAKu8B,GACHxC,EACAsoI,GACE/tL,KAAKsgD,GACTssI,EAAcU,EACdT,EAAcU,CAChB,CACA,IAAIjyB,EAAKz3F,GAAO93C,EAAG,CAACu7B,GAAI57B,GAAI,IACxB8vI,EAAK33F,GAAOpkC,EAAG,CAAC8nB,GAAI77B,GAAI,IAC5BwvC,EAAQjT,GACNqzG,EAAG,GAAKE,EAAG,GACXF,EAAG,GAAKE,EAAG,IACTx7J,KAAKsgD,GAAK,IACF,aAARn3C,GAAwB8jL,KAAqBzzE,EAAMvN,KAAO76F,EAAEhS,IAAM4tL,GAAY,IAChF9xH,EAAQ,KAEZ,CACA,GAAY,aAAR/xD,IAAuBqwG,EAAMizE,KAC/B,GAAIQ,KAAqBzzE,EAAMvN,KAAO76F,EAAEhS,IAAM4tL,GAAY,GAAK/xF,EAAU11F,IAAM01F,EAAUz1F,GAAI,CAC3F,IAAIwoL,EAAKzoL,EAAIunL,EACTmB,EAAKzoL,EAAIunL,GACTt9J,EAAQ+pF,EAAM/3G,MAAO+3G,EAAM/3G,KAAKguB,OAAc,GAC9Cy+J,EAAgBz+J,EAAMruB,MAAMquB,EAAMjyB,OAAS,GACzB,MAAlB0wL,IAAuBD,EAAK,GACV,MAAlBC,IAAuBF,EAAK,GAChC9yH,GAASjT,GAAMgmI,EAAID,GAAMhuL,KAAKsgD,GAAK,IAAM,EAC3C,MACE4a,EAAQ,IAGd,CAKA,OAJA4xH,EAAYvnL,EACZwnL,GAAYvnL,EACZwnL,GAAY57K,EAAEhS,EACd6tL,GAAmBzzE,EAAMvN,IAClB/wC,CACT,CACA8iH,EAAQuG,eAAiBA,EAC3B,IAIE4J,GAAiB9iJ,EAAW,CAC9B,iCAAiCt6B,EAASkuB,GAExC,IAAIkQ,EAAKD,IACL+rD,EAAY7G,IACZg6F,EAAQ9uC,KACRnvB,EAAWxE,KACX0gB,EAAMtN,KACN0L,EAAe4B,EAAI5B,aACnB4jD,EAAU1Q,KACV3sE,EAAStC,IACTmvE,EAAevgB,KACfgxB,EAAoBp+E,IACpBmtD,EAAgBR,KAAoBQ,cACpCkxB,EAAa,eAoQjBtvJ,EAAOluB,QAAU,CACfy9K,KAlQF,SAAcrqE,EAAIsqE,EAAYxxL,GAC5B,IAwCIyxL,EAxCAj5C,EAAatxB,EAAGonB,YAChBpwC,EAAOl+F,EAAQ0xL,cACfvuK,EAAOnjB,EAAQgkB,SACf2tK,EAAc3xL,EAAQ2xL,YACtBp7B,EAAav2J,EAAQu2J,WACrBq7B,EAAQ5xL,EAAQ4xL,OAAS,CAAC,EAC1Bn7E,EAAaz2G,EAAQy2G,WACrB9jF,EAAY3yB,EAAQ2yB,UACpBkoB,EAAQ76C,EAAQ6xL,eAChBpiL,EAAU,EACV09G,EAAQjvB,EAAKivB,MACb2kE,GAAO3kE,GAASA,EAAMhzG,KAAOgzG,EAAMhzG,KAAO,IAAI9W,OAC9C0uL,GAAqB,EACrBvkF,EAAO2f,GAASA,EAAM3f,KAAO2f,EAAM3f,KAAO,CAAC,EAC3CtvF,EAAasvF,EAAK1B,OAClB91F,EAAWw3F,EAAKrlG,KAChBqkL,EAAYh/E,EAAK13F,MACjBvG,EAAai+F,EAAK9gC,OAClB7xC,EAAY2yE,EAAKhhF,MACjBwlK,EAAcxkF,EAAKl+E,QACnB2iK,EAAezkF,EAAKtB,SACpBgmF,EAAmB1kF,EAAKpB,aACxB+lF,EAAa3kF,EAAKjB,OAElB6lF,IADepyL,EAAQqyL,iBAEvBC,EAAsBtyL,EAAQsyL,oBAC9BllE,GAAYlvB,EAAKivB,OAAS,CAAC,GAAGC,UAAY,CAAEjzG,KAAM,GAAIqzF,KAAM,CAAC,GAC7D+kF,EAAcnlE,EAASjzG,KAAK9W,OAC5BmvL,GAAwB,EACxBC,EAAkB,EAClBC,EAAetlE,EAAS5f,KACxBmlF,EAAgBD,EAAa5mF,OAC7B8mF,EAAcF,EAAavqL,KAC3B0qL,EAAeH,EAAa58K,MAC5Bg9K,EAAgBJ,EAAahmH,OAC7BqmH,EAAeL,EAAalmK,MAC5BwmK,EAAiBN,EAAapjK,QAC9B2jK,EAAkBP,EAAaxmF,SAC/BgnF,EAAsBR,EAAatmF,aACnC+mF,GAAgBT,EAAanmF,OAEpB,eAATppF,EAAuBsuK,EAAW,aACH,IAA1BtuK,EAAKvf,QAAQ,QAAgB6tL,EAAW,gBACxCtuK,EAAKvf,SAAQ,KAAoB6tL,EAAW,qBACrD,IAAI/4E,GAAWwO,EAAG4Z,SAASnoB,MAAM84E,GACjC,SAAS2B,GAAmBj5K,EAAMk5K,GAChC,YAAa,IAATl5K,QAAoC,IAAjBk5K,GAChBl5K,EAAK5W,QAAQ+tL,EAAY,SAAW+B,EAAa9vL,QAAQ+tL,EAAY,MAC9E,CACY,KAARQ,EAAYriL,EAAU,EACjB2jL,GAAmBtB,EAAKH,KAC1Bj5E,KAAUo5E,EAAM,IACrBriL,EAAU,GACVsiL,GAAqB,GAEnBK,IACkB,KAAhBG,EAAoBE,EAAkB,EACjCW,GAAmBb,EAAaD,KAClC55E,KAAU65E,EAAc,IAC7BE,EAAkB,GAClBD,GAAwB,IAGxBxyL,EAAQ+qJ,MACV+mC,EAAM1iD,EAAIvE,eAAeinD,EAAK9xL,EAAQ+qJ,OAC7BvS,EAAWuS,QACpB+mC,EAAM1iD,EAAIvE,eAAeinD,EAAKt5C,EAAWuS,QAE3C,IACIuoC,GADAC,GAAgBzB,GAAOS,GAAe75E,GAErC79D,IACHA,EAAQu0F,EAAIzF,aAAa6O,EAAW8T,WAAY,IAAK,KAAOklC,GAC5D8B,GAAqB96C,EAAWg7C,qBAElC,IAAIptE,GAAKvrE,EAAMG,UAAU,QAAUw2I,GAAY30I,KAAK02I,GAAgB,CAAC,GAAK,IAC1EntE,GAAG1nE,QAAQp6C,OAAO,QAClB8hH,GAAGjsG,KAAK23K,GAAK10I,KAAK,QAASo0I,GAC3BprE,GAAGznE,OAAOtH,SACV,IAAIo8I,GAAa,KACbC,GAAgBlC,EAAa,YAC7BmC,GAAwBpB,GAAe75E,GAO3C,GANI05E,GAAmBuB,MACrBF,GAAa54I,EAAMG,UAAU,QAAU04I,IAAe72I,KAAK82I,GAAwB,CAAC,GAAK,KAC9Ej1I,QAAQp6C,OAAO,QAC1BmvL,GAAWt5K,KAAKo4K,GAAan1I,KAAK,QAASs2I,IAC3CD,GAAW90I,OAAOtH,WAEfk8I,GAAe,OAAO14I,EAC3B,SAAS+4I,GAAYC,EAASC,GAC5B1kD,EAAI1I,YAAY,CAACqtD,GAAWC,IAAa,CAAE7mE,MAAO0mE,EAASzmE,SAAU0mE,GACvE,CACA,SAASC,GAAUE,GACjB,IAEIC,EAFAL,EAAUI,EAAoB9mE,MAC9B2mE,EAAcG,EAAoB7mE,SAuCtC,IArCKz6F,GAAa2gK,KAChB3gK,EAAY,CAAC,GAEXA,GACFuhK,EAAe,GACXvhK,EAAUi0C,SACZstH,GAAgB,UAAY,CAACvhK,EAAUi0C,OAAQ6vC,EAAWnuG,EAAGmuG,EAAWluG,GAAK,MAE3EoqB,EAAUprB,QAAU+rL,MACtBY,GAAgB1mD,EAAa,GAAI76G,EAAUprB,QAAU,IAAM+rL,IAAsB,MAGnFY,EAAe,KAEjBL,EAAQz2I,KAAK,YAAa82I,GAY1BL,EAAQrnK,MAAM,UAAW/c,EAAUskG,EAAOtkG,QAAQ+8K,IAAYxiL,KAAKonL,EAAQ5jF,KAAM,CAC/E13F,MAAOi+F,EAAOtoF,IAAI+gK,GAClBrkL,KAAM+pC,EAAGpzB,MAAM9I,EAAU,GACzB81F,OAAQ5tF,EACRwuD,OAAQn9D,EACRid,MAAOqO,EACPvL,QAAS0iK,EACT9lF,SAAU+lF,EACV1lF,OAAQ4lF,EACR/lF,aAAc8lF,IACb90I,KAAKq5D,GAAYzsG,KAAK42K,EAAapgB,gBAAiBt5C,GArBvD,SAAgCitE,GAC9B,GAAKA,EAAL,CACA,IAAIC,EAAkBliJ,EAAGsI,OAAO25I,EAAkBtvL,OAAOjC,YAAY43C,OAAO,IAAMk5I,IAClF,IAAKU,EAAgB98I,QAAS,CAC5B,IAAI+8I,EAAmBF,EAAkBtvL,OAAOyvL,UAChD,GAAID,EAAiBp9K,OAAQ,CAC3B,IAAIs9K,EAAaF,EAAiB9rL,EAAI8rL,EAAiBp9K,OAvH/B,IAuHsE27K,EAC9FwB,EAAgBh3I,KAAK,IAAKm3I,EAC5B,CACF,CAR8B,CAShC,IAYIT,EAAa,CACf,IAAIU,EAAmB35I,EAAML,OAAO,IAAMg3I,EAAa,eACnDiD,EAAeZ,EAAQhvL,OAAOyvL,UAC9BI,EAAkBF,EAAiB3vL,OAAS2vL,EAAiB3vL,OAAOyvL,eAAY,EAChFK,EAAaD,EAAkBA,EAAgBnsL,EAAImsL,EAAgBz9K,OA3I3C,IA2IkF27K,EAAc6B,EAAalsL,EAAIksL,EAAax9K,OA1ItI,IA0IqK27K,EACrLgC,EAAqBxlD,EAAInkC,WAAW,CAAC,EAAGwL,EAAY,CACtDluG,EAAGosL,IAELb,EAAY12I,KAAK,YAAa82I,GAC9BJ,EAAYtnK,MAAM,UAAWimK,EAAkB1+E,EAAOtkG,QAAQojL,IAAe7oL,KAAKonL,EAAQ5jF,KAAM,CAC9F13F,MAAOi+F,EAAOtoF,IAAIonK,GAClB1qL,KAAM+pC,EAAGpzB,MAAM8zK,EAAa,GAC5B9mF,OAAQ6mF,EACRjmH,OAAQomH,EACRtmK,MAAOumK,EACPzjK,QAAS0jK,EACT9mF,SAAU+mF,EACV1mF,OAAQ4mF,GACR/mF,aAAc8mF,IACb91I,KAAKw3I,GAAoB5qL,KAAK42K,EAAapgB,gBAAiBt5C,EACjE,CACA,OAAOiqE,EAAMpuC,iBAAiB77B,EAChC,CACA,SAAS8sE,GAAWC,GAClB,IAAIY,EAAYZ,EAAoB9mE,MAChC2nE,EAAa5iJ,EAAGsI,OAAOq6I,EAAUhwL,OAAOjC,YAC5C,GAAIgvL,GAASA,EAAMr3I,WAAaq3I,EAAM1+B,MAAQ4+B,EAAK,CACjDgD,EAAW13I,KAAK,YAAa,MAC7B,IAAI23I,EAAW30B,EAAcwxB,EAAM1+B,MAC/B8hC,EAA2B,SAAfpD,EAAM1+B,MAAkC,QAAf0+B,EAAM1+B,MAAkB,EAAI,EACjE99E,EAAM4oB,EAAU4zF,EAAMx8G,KAAOw8G,EAAMx8G,IAAM,EACzC6/G,EAAU7D,EAAQ1C,KAAKoG,EAAWjwL,QAClCkuJ,EAAkB,CAAEtkI,EAAG,EAAG0E,EAAG,EAAG7H,EAAG,EAAGiD,EAAG,GACzC0kI,EAAU/rC,EAAGonB,YAAYkY,gBAC7B,IAAK,IAAIplJ,KAAO6xJ,EACd,IAAK,IAAIC,KAAQD,EAAQ7xJ,GAAM,CAC7B,IAAI6pB,EAAMgoI,EAAQ7xJ,GAAK8xJ,GACvBH,EAAgBG,GAAQnwJ,KAAK6mB,IAAImpI,EAAgBG,GAAOjoI,EAC1D,CAEF,IAAIiqK,EAAU,CACZx6J,KAAMq4H,EAAgBznI,EACtBiP,IAAKw4H,EAAgBtkI,EACrB+L,MAAOg+G,EAAWxhI,MAAQ+7I,EAAgBxkI,EAC1CkM,OAAQ+9G,EAAWvhI,OAAS87I,EAAgB5/H,GAE1CgiK,EAAWvD,EAAMwD,UAAYJ,GAAaE,EAAQtD,EAAM1+B,MAAQ+hC,EAAQrD,EAAM1+B,OAC9EroI,EAAQ,EACZ,GAAIsqK,EAAW,EACbtqK,EAAQsqK,MACH,CACL,IAAIE,EAAazD,EAAMyD,YAAc,EACjCC,EAAY1D,EAAM0D,WAAa,EACnCL,EAAQv6J,MAAQ26J,EAChBJ,EAAQz6J,OAAS66J,EACjBJ,EAAQ16J,KAAO+6J,EACfL,EAAQx6J,QAAU66J,EAClB1D,EAAMr3I,UAAU+C,MAAK,WACnB,IAAIi4I,EAAUnE,EAAQ1C,KAAKxuL,MACvBkvI,EAAI5J,cAAcyvD,EAASM,EAASngH,KACtCvqD,EAAQ9nB,KAAK6mB,IAAIiB,EAAOmqK,GAAaO,EAAQ3D,EAAM1+B,MAAQ+hC,EAAQF,IAAa3/G,GAEpF,IACAvqD,EAAQ9nB,KAAK8mB,IAAIsrK,EAAUtqK,GAC3BqzE,EAAKs3F,YAAczyL,KAAKD,IAAI+nB,EAC9B,CACA,GAAIA,EAAQ,GAAKsqK,EAAW,EAAG,CAC7B,IAAIM,EAAgB,CAClB/6J,KAAM,EAAE7P,EAAO,GACf2P,MAAO,CAAC3P,EAAO,GACf0P,IAAK,CAAC,GAAI1P,GACV4P,OAAQ,CAAC,EAAG5P,IACZ+mK,EAAM1+B,MACR4hC,EAAW13I,KAAK,YAAaowF,EAAaioD,EAAc,GAAIA,EAAc,IAC5E,CACF,CACF,CAEA,SAASC,GAAe5uL,EAAS6uL,GAC/B7uL,EAAQqT,KAAKw7K,GAAiB98I,GAAG,qBAAqB,WACpD3G,EAAGsI,OAAOt6C,MAAMmX,aAAaE,SAAS85K,EAAkBn+E,kBAAkB1mF,MAAM,UAAW,EAC7F,IAAGqsB,GAAG,oBAAoB,WACxB3G,EAAGsI,OAAOt6C,MAAMmX,aAAaE,SAAS85K,EAAkBl+E,kBAAkB3mF,MAAM,UAAW,EAC7F,GACF,CACA,GARA45F,GAAGp8G,KAAK4pL,GAAaH,IAQjB/6E,KACGo5E,EAGE1rE,GAAGvtE,GAAG,WAAY,OAFvB68I,GAAetvE,GAAIurE,GACnBI,GAAqB,GAEvB3rE,GAAGp8G,KAAK42K,EAAa5W,aAAc,CAAE9iD,OAAMruE,GAAG,QAAQ,SAAS1+B,QAC1C,IAAfo8I,EACFrjC,EAASlpH,KAAK,cAAek9G,EAAI/jG,EAAMhJ,EAAMo8I,GAE7CrjC,EAASlpH,KAAK,eAAgBk9G,EAAI/jG,EAAMhJ,EAE5C,IAAG0+B,GAAG,UAAU,WACd34C,KAAKia,KAAKja,KAAKk9C,KAAK,qBAAqBpzC,KAAK4pL,GAChD,IAAG/6I,GAAG,SAAS,SAAS1kC,GACtBjU,KAAKia,KAAKhG,GAAK,KAAKnK,KAAK42K,EAAara,aAAc9vD,EAAWnuG,EAAGmuG,EAAWluG,EAC/E,IACI6pL,GAAiB,CACnB,GAAIA,IAAoBN,EAAK,CAC3B,IAAI8D,GAAcxvE,GAAGvhH,OAAOyvL,UACxBuB,GAAYD,GAAYrtL,EAAIqtL,GAAY3+K,OA9O1B,IA8OyD27K,EAC3Ea,GAAWr2I,KAAK,IAAKy4I,GACvB,CACKtD,EAGEkB,GAAW56I,GAAG,WAAY,OAF/B68I,GAAejC,GAAYnB,GAC3BE,GAAwB,GAE1BiB,GAAWzpL,KAAK42K,EAAa5W,aAAc,CAAE9iD,OAAMruE,GAAG,QAAQ,SAAS1+B,GACrE+4G,EAASlpH,KAAK,eAAgBk9G,EAAI,sBAAuB/sG,EAC3D,IAAG0+B,GAAG,UAAU,WACd34C,KAAKia,KAAKja,KAAKk9C,KAAK,qBAAqBpzC,KAAK4pL,GAChD,IAAG/6I,GAAG,SAAS,SAAS1kC,GACtBjU,KAAKia,KAAKhG,GAAK,KAAKnK,KAAK42K,EAAara,aAAcktB,GAAWr2I,KAAK,KAAMq2I,GAAWr2I,KAAK,KAC5F,GACF,CAIF,OAFAgpE,GAAG7oE,QAAQ,iBAAkBw0I,GACzB0B,IAAYA,GAAWl2I,QAAQ,iBAAkBi1I,GAC9C33I,CACT,EAGEi7I,oBApQwB,IAqQxBC,4BAtQgC,IAwQpC,IAIEC,GAAsB5nJ,EAAW,CACnC,qCAAqCt6B,EAASkuB,GAE5C,IAAIkQ,EAAKD,IACLshD,EAAYrG,IAAyBqG,UACrC67C,EAAMtN,KACNW,EAAe2M,EAAI3M,aACnBzkC,EAAY7G,IACZotC,EAAc6K,EAAI7K,YAClBvQ,EAAcob,EAAIpb,YAClBD,EAAcqb,EAAIrb,YAClByQ,EAAe4K,EAAI5K,aACnBlqC,EAAsB80C,EAAI90C,oBAC1B0nC,EAAe1qC,IACfE,EAAUwqC,EAAaxqC,QACvBD,EAASyqC,EAAazqC,OACtBqB,EAAWopC,EAAappC,SACxBT,EAAU6pC,EAAa7pC,QACvBC,EAAS4pC,EAAa5pC,OACtBC,EAAU2pC,EAAa3pC,QACvBC,EAAS0pC,EAAa1pC,OACtBC,EAASypC,EAAazpC,OACtB09F,EAAUp5C,KACVvvC,EAAYouC,KACZO,EAAe3uC,EAAU2uC,aACzBC,EAAkB5uC,EAAU4uC,gBAChC,SAASg6C,EAAQ1zJ,GACf,OAAOz/B,KAAK4jD,IAAI,GAAInkB,EACtB,CACA,SAAS2zJ,EAAgB3zJ,GACvB,OAAa,OAANA,QAAoB,IAANA,CACvB,CACAR,EAAOluB,QAAU,SAAoBgpD,EAAI07E,GACvCA,EAAaA,GAAc,CAAC,EAC5B,IAAIuE,EAAOjgF,EAAGuoF,KAAO,IACjBjI,EAAWL,EAAKvyH,OAAO,GAC3B,SAAS4rK,EAAM5zJ,EAAG83B,GAChB,GAAI93B,EAAI,EAAG,OAAOz/B,KAAK2hD,IAAIliB,GAAKz/B,KAAKq0E,KAChC,GAAI50C,GAAK,GAAK83B,GAAQwC,EAAG9lB,OAA6B,IAApB8lB,EAAG9lB,MAAMz2C,OAAc,CAC5D,IAAIukD,EAAKgY,EAAG9lB,MAAM,GACd+N,EAAK+X,EAAG9lB,MAAM,GAClB,MAAO,IAAO8N,EAAKC,EAAK,EAAI6zC,EAAW71F,KAAKD,IAAIgiD,EAAKC,GACvD,CAAO,OAAOwyC,CAChB,CACA,SAAS8+F,EAAM7zJ,EAAGY,EAAGmwF,EAAU5wB,GAC7B,IAAKA,GAAQ,CAAC,GAAG2zF,OAASt4F,EAAUx7D,GAClC,OAAQA,EAEV,IAAIQ,EAAK+wF,EAAYvxF,EAAG+wF,GAAYz2D,EAAGy2D,UACvC,GAAIvwF,IAAOu0D,EAAQ,CACjB,IAAIyG,EAAUx7D,GAKP,OAAO+0D,EAJZ/0D,GAAKA,EACL,IAAI4yF,EAAaryH,KAAK2/B,MAA6B,GAAvB0sG,EAAI9gG,IAAI9L,EAAI,IAAM,IAC1C6yF,EAAYtyH,KAAK+b,MAAM0jB,EAAI4yF,EAAa,IAC5CpyF,EAAK+wF,EAAY,IAAIlwF,KAAKwxF,IAAcD,EAAa,EAEzD,CACA,OAAOpyF,CACT,CACA,SAASuzJ,EAAM/zJ,EAAGjU,EAAGglG,GACnB,OAAOS,EAAYxxF,EAAGjU,EAAGglG,GAAYz2D,EAAGy2D,SAC1C,CACA,SAASijE,EAAgBh0J,GACvB,OAAOs6B,EAAGu/F,YAAYt5J,KAAK+b,MAAM0jB,GACnC,CACA,SAASi0J,EAAiBj0J,GACxB,GAAI2zJ,EAAgB3zJ,GAAI,CAItB,QAH0B,IAAtBs6B,EAAGkgG,iBACLlgG,EAAGkgG,eAAiB,CAAC,QAEM,IAAzBlgG,EAAGkgG,eAAex6H,GACpB,OAAOs6B,EAAGkgG,eAAex6H,GAEzBs6B,EAAGu/F,YAAYv7J,KAAkB,kBAAN0hC,EAAiBv/B,OAAOu/B,GAAKA,GACxD,IAAIk0J,EAAY55H,EAAGu/F,YAAY97J,OAAS,EAExC,OADAu8D,EAAGkgG,eAAex6H,GAAKk0J,EAChBA,CAEX,CACA,OAAOn/F,CACT,CAUA,SAASo/F,EAAiBn0J,GACxB,GAAIs6B,EAAGkgG,eACL,OAAOlgG,EAAGkgG,eAAex6H,EAE7B,CACA,SAASo0J,EAAoBp0J,GAC3B,IAAI1+B,EAAQ6yL,EAAiBn0J,GAC7B,YAAc,IAAV1+B,EAAyBA,EACzBk6F,EAAUx7D,IAAYA,OAA1B,CACF,CACA,SAASq0J,EAAiBr0J,GACxB,OAAOw7D,EAAUx7D,IAAMA,EAAIm0J,EAAiBn0J,EAC9C,CACA,SAASs0J,EAAKt0J,EAAGxP,EAAGG,GAClB,OAAO+e,EAAGpzB,MAAMqU,EAAIH,EAAIwP,EAAG,EAC7B,CACA,SAASu0J,EAAKz/J,EAAItE,EAAGG,GACnB,OAAQmE,EAAKnE,GAAKH,CACpB,CACA,IAAIgkK,EAAM,SAAcx0J,GACtB,OAAKw7D,EAAUx7D,GACRs0J,EAAKt0J,EAAGs6B,EAAGm6H,GAAIn6H,EAAGunC,IADC9M,CAE5B,EACI2/F,EAAM,SAAS5/J,GACjB,OAAOy/J,EAAKz/J,EAAIwlC,EAAGm6H,GAAIn6H,EAAGunC,GAC5B,EACA,GAAIvnC,EAAG2yG,YAAa,CAClB,IAAIsb,EAAmB,MAAb3tC,EACV45C,EAAM,SAASx0J,GACb,IAAKw7D,EAAUx7D,GAAI,OAAO+0D,EAC1B,IAAItkF,EAAM6pD,EAAGq6H,aAAa52L,OAC1B,IAAK0S,EAAK,OAAO6jL,EAAKt0J,EAAGs6B,EAAGm6H,GAAIn6H,EAAGunC,IACnC,IAAI2F,EAAO+gF,EACPjuH,EAAG9lB,MAAM,GAAK8lB,EAAG9lB,MAAM,KAAIgzD,GAAQA,GAIvC,IAHA,IAAIotF,EAASptF,GAAQ,EAAI,EACrB9M,EAAMk6F,EAAS50J,EACf6I,EAAI,EACClpC,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAK,CAC5B,IAAI0nB,EAAMutK,EAASt6H,EAAGq6H,aAAah1L,GAAG0nB,IAClCD,EAAMwtK,EAASt6H,EAAGq6H,aAAah1L,GAAGynB,IACtC,GAAIszE,EAAMrzE,EAAK,MACf,KAAIqzE,EAAMtzE,GACL,CACHyhB,EAAI6xD,GAAOrzE,EAAMD,GAAO,EAAIznB,EAAIA,EAAI,EACpC,KACF,CAJekpC,EAAIlpC,EAAI,CAKzB,CACA,IAAI+8G,EAAKpiD,EAAGu6H,GAAGhsJ,IAAM,EACrB,OAAKgtB,SAAS6mD,GACP43E,EAAKt0J,EAAGs6B,EAAGw6H,IAAKp4E,GADG,CAE5B,EACAg4E,EAAM,SAAS5/J,GACb,IAAIrkB,EAAM6pD,EAAGq6H,aAAa52L,OAC1B,IAAK0S,EAAK,OAAO8jL,EAAKz/J,EAAIwlC,EAAGm6H,GAAIn6H,EAAGunC,IAEpC,IADA,IAAIh5D,EAAI,EACClpC,EAAI,EAAGA,EAAI8Q,KACdqkB,EAAKwlC,EAAGq6H,aAAah1L,GAAGo1L,MADLp1L,IAEnBm1B,EAAKwlC,EAAGq6H,aAAah1L,GAAGq1L,OAAMnsJ,EAAIlpC,EAAI,GAE5C,OAAO40L,EAAKz/J,EAAIwlC,EAAGw6H,IAAKx6H,EAAGu6H,GAAGhsJ,GAChC,CACF,CACAyxB,EAAG26H,IAAkB,QAAZ36H,EAAG93D,KAAiBoxL,EAAQ5xD,EACrC1nE,EAAG46H,IAAkB,QAAZ56H,EAAG93D,KAAiBkxL,EAAU1xD,EACvC1nE,EAAGk6H,IAAMA,EACTl6H,EAAGo6H,IAAMA,EACTp6H,EAAGslH,IAAkB,QAAZtlH,EAAG93D,KAAiB,SAASw9B,EAAG83B,GACvC,OAAO08H,EAAIZ,EAAM5zJ,EAAG83B,GACtB,EAAI08H,EACJl6H,EAAGm/G,IAAkB,QAAZn/G,EAAG93D,KAAiB,SAASsyB,GACpC,OAAO4+J,EAAQgB,EAAI5/J,GACrB,EAAI4/J,GACsC,IAAtC,CAAC,SAAU,KAAKtzL,QAAQk5D,EAAG93D,OAC7B83D,EAAG66H,IAAM76H,EAAG86H,IAAM96H,EAAG+6H,IAAM/6H,EAAGg7H,IAAMh7H,EAAG8tD,IAAM9tD,EAAGg8F,IAAMv0B,EACtDznE,EAAGi7H,IAAMj7H,EAAGk7H,IAAMl7H,EAAG+tD,IAAM/tD,EAAGm7H,IAAMzzD,EACpC1nE,EAAGo7H,IAAMp7H,EAAGq7H,IAAM,SAAS31J,GACzB,OAAOs6B,EAAGk6H,IAAIzyD,EAAY/hG,GAC5B,EACAs6B,EAAGs7H,IAAMt7H,EAAGu7H,IAAMnB,EAClBp6H,EAAGw7H,SAAW9zD,GACO,QAAZ1nE,EAAG93D,MACZ83D,EAAG66H,IAAM76H,EAAG8tD,IAAM,SAASpoF,EAAG83B,GAC5B,OAAO87H,EAAM7xD,EAAY/hG,GAAI83B,EAC/B,EACAwC,EAAG86H,IAAM96H,EAAGg7H,IAAM,SAASt1J,GACzB,OAAO0zJ,EAAQ3xD,EAAY/hG,GAC7B,EACAs6B,EAAG+6H,IAAM/6H,EAAGg8F,IAAMv0B,EAClBznE,EAAGi7H,IAAMj7H,EAAGm7H,IAAMzzD,EAClB1nE,EAAGk7H,IAAM5B,EACTt5H,EAAG+tD,IAAMqrE,EACTp5H,EAAGo7H,IAAM,SAAS11J,EAAG83B,GACnB,OAAOwC,EAAGk6H,IAAIl6H,EAAG66H,IAAIn1J,EAAG83B,GAC1B,EACAwC,EAAGs7H,IAAM,SAAS9gK,GAChB,OAAO4+J,EAAQgB,EAAI5/J,GACrB,EACAwlC,EAAGq7H,IAAM,SAAS31J,GAChB,OAAOs6B,EAAGk6H,IAAIzyD,EAAY/hG,GAC5B,EACAs6B,EAAGu7H,IAAMnB,EACTp6H,EAAGw7H,SAAW9zD,GACO,SAAZ1nE,EAAG93D,MACZ83D,EAAG66H,IAAM76H,EAAG86H,IAAMxoD,EAAI31D,SACtB3c,EAAG+6H,IAAM/6H,EAAGg7H,IAAMh7H,EAAG8tD,IAAM9tD,EAAGg8F,IAAMu9B,EACpCv5H,EAAGi7H,IAAMj7H,EAAGk7H,IAAMl7H,EAAG+tD,IAAM/tD,EAAGm7H,IAAM1B,EACpCz5H,EAAGo7H,IAAMp7H,EAAGq7H,IAAM,SAAS31J,EAAGY,EAAGmwF,GAC/B,OAAOz2D,EAAGk6H,IAAIX,EAAM7zJ,EAAG,EAAG+wF,GAC5B,EACAz2D,EAAGs7H,IAAMt7H,EAAGu7H,IAAM,SAAS/gK,EAAI/I,EAAGglG,GAChC,OAAOgjE,EAAMW,EAAI5/J,GAAK/I,EAAGglG,EAC3B,EACAz2D,EAAGw7H,SAAW,SAAS91J,GACrB,OAAO4sG,EAAIzZ,UAAUnzF,EAAG+0D,EAAQz6B,EAAGy2D,SACrC,GACqB,aAAZz2D,EAAG93D,MACZ83D,EAAG+6H,IAAM/6H,EAAG8tD,IAAM6rE,EAClB35H,EAAG86H,IAAM96H,EAAGi7H,IAAMj7H,EAAG+tD,IAAM2rE,EAC3B15H,EAAG66H,IAAM76H,EAAGy7H,UAAY3B,EACxB95H,EAAGg7H,IAAM,SAASt1J,GAChB,IAAI1+B,EAAQ+yL,EAAiBr0J,GAC7B,YAAiB,IAAV1+B,EAAmBA,EAAQg5D,EAAG07H,WAAW,GAClD,EACA17H,EAAGm7H,IAAMn7H,EAAGk7H,IAAMxzD,EAClB1nE,EAAGg8F,IAAM+9B,EACT/5H,EAAGo7H,IAAM,SAAS11J,GAChB,OAAOs6B,EAAGk6H,IAAIl6H,EAAGg7H,IAAIt1J,GACvB,EACAs6B,EAAGs7H,IAAM,SAAS9gK,GAChB,OAAOk/J,EAAgBU,EAAI5/J,GAC7B,EACAwlC,EAAGq7H,IAAMr7H,EAAGo7H,IACZp7H,EAAGu7H,IAAMnB,EACTp6H,EAAGw7H,SAAW,SAAS91J,GACrB,MAAiB,kBAANA,GAAwB,KAANA,EAAiBA,EACvCgiG,EAAahiG,EACtB,GACqB,kBAAZs6B,EAAG93D,OACZ83D,EAAG86H,IAAM96H,EAAGi7H,IAAMj7H,EAAG+tD,IAAM2rE,EAC3B15H,EAAG66H,IAAM76H,EAAGy7H,UAAY3B,EACxB95H,EAAGg7H,IAAM,SAASt1J,GAChB,IAAI1+B,EAAQ8yL,EAAoBp0J,GAChC,YAAiB,IAAV1+B,EAAmBA,EAAQg5D,EAAG07H,WAAW,GAClD,EACA17H,EAAG27H,iBAAmB9B,EACtB75H,EAAGm7H,IAAMn7H,EAAGk7H,IAAMxzD,EAClB1nE,EAAGg8F,IAAM89B,EACT95H,EAAGo7H,IAAM,SAAS11J,GAChB,OAAOs6B,EAAGk6H,IAAIl6H,EAAGg7H,IAAIt1J,GACvB,EACAs6B,EAAGs7H,IAAM,SAAS9gK,GAChB,OAAOk/J,EAAgBU,EAAI5/J,GAC7B,EACAwlC,EAAGq7H,IAAMr7H,EAAGo7H,IACZp7H,EAAGu7H,IAAMnB,EACTp6H,EAAGw7H,SAAW,SAAS91J,GACrB,OAAIz4B,MAAMiI,QAAQwwB,IAAmB,kBAANA,GAAwB,KAANA,EAAiBA,EAC3DgiG,EAAahiG,EACtB,EACAs6B,EAAG6gG,mBAAqB,SAASzN,GAC/B,IACI/tJ,EAAGiG,EADHkuJ,EAAex5F,EAAGw/F,cAElBzhH,EAAQiiB,EAAG47H,YACf,GAAI79I,GAAmC,IAA1BiiB,EAAGu/F,YAAY97J,OAC1B,IAAK,IAAIo4L,KAAS99I,EAChB,GAAI89I,IAAU57C,EAAM,CAClB,IAAIuQ,EAAM9U,EAAWy9C,EAAQj5C,QAAQ27C,IACrCriC,EAAeA,EAAaxrJ,OAAOwiJ,EAAIgP,cACzC,CAGJ,IAAIr7B,EAAO,CAAC,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,IACtB5uF,EAAO,GACX,IAAKlwC,EAAI,EAAGA,EAAIm0J,EAAa/1J,OAAQ4B,IAAK,CACxC,IAAIo6G,EAAQ2zC,EAASoG,EAAan0J,IAClC,GAAIi7I,KAAY7gC,EAAO,CACrB,IAAIkc,EAAUlc,EAAM6gC,GAChBnqI,EAAMspG,EAAM8kB,SAAW+N,EAAItxC,aAAa26B,GAC5C,GAAIn+B,EAAoBm+B,EAAQ,KAAOn+B,EAAoBm+B,EAAQ,IACjE,IAAKrwH,EAAI,EAAGA,EAAI6K,EAAK7K,IAAK,CACxB,IAAI+6E,EAAKs1C,EAAQ,GAAGrwH,GAChBm9H,EAAK9M,EAAQ,GAAGrwH,GAChB+tL,EAAgBhzG,IAAOgzG,EAAgB5wD,KACzClzF,EAAKvxC,KAAK,CAACqiF,EAAIoiD,IACTpiD,KAAM89C,EAAK,GAAG,KAClBA,EAAK,GAAG,GAAG99C,GAAM89C,EAAK,GAAG,MAErBsE,KAAMtE,EAAK,GAAG,KAClBA,EAAK,GAAG,GAAGsE,GAAMtE,EAAK,GAAG,MAG/B,CAEJ,CACF,CAQA,IAPA5uF,EAAK7gB,MAAK,SAASjG,EAAG4H,GACpB,IAAIylK,EAAO33D,EAAK,GAAG,GACf9sH,EAAIykL,EAAKrtK,EAAE,IAAMqtK,EAAKzlK,EAAE,IAC5B,GAAIhf,EAAG,OAAOA,EACd,IAAI0kL,EAAO53D,EAAK,GAAG,GACnB,OAAO43D,EAAKttK,EAAE,IAAMstK,EAAK1lK,EAAE,GAC7B,IACKhxB,EAAI,EAAGA,EAAIkwC,EAAK9xC,OAAQ4B,IAC3Bs0L,EAAiBpkJ,EAAKlwC,GAE1B,GAEF26D,EAAG07H,WAAa,SAASh2J,GACvB,IAAIs2J,EAAMh8H,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IACtB+hJ,EAAMj8H,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IAC1B,OAAO8lB,EAAGm7H,IAAIa,EAAMt2J,GAAKu2J,EAAMD,GACjC,EACAh8H,EAAGk8H,WAAa,SAASx2J,GACvB,IAAIs2J,EAAMh8H,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IACtB+hJ,EAAMj8H,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IAC1B,OAAQ8lB,EAAGg8F,IAAIt2H,GAAKs2J,IAAQC,EAAMD,EACpC,EACAh8H,EAAGm8H,WAAa,SAASC,GACvB,IAAIpqB,EAAahyG,EAAGgyG,WAChBC,EAAajyG,EAAGiyG,WACpB,QAAmB,IAAfD,QAAwC,IAAfC,EAA7B,CACKmqB,IAAWA,EAAY,SAC5B,IAAIliJ,EAAQo4F,EAAIhvC,eAAetjC,EAAIo8H,GAAWjwL,MAC1CkwL,EAAM/pD,EAAI3J,UAAUzuF,EAAO8lB,EAAGg8F,KAC9BsgC,EAAQD,EAAI,GAAKA,EAAI,GACrBC,GAAOD,EAAI5pH,UACf,IAAIuuD,EAASsR,EAAI3J,UAAU,CAACqpC,EAAYC,GAAajyG,EAAGg8F,KAGxD,QAFmB,IAAfgW,GAAyBqqB,EAAI,GAAKr7D,EAAO,KAAI9mF,EAAMoiJ,EAAQ,EAAI,GAAKtqB,QACrD,IAAfC,GAAyBoqB,EAAI,GAAKr7D,EAAO,KAAI9mF,EAAMoiJ,EAAQ,EAAI,GAAKrqB,GACpE/3H,EAAM,KAAOA,EAAM,GAAI,CACzB,IAAIqiJ,EAAOv8H,EAAGm7H,IAAInpB,GACdwqB,EAAOx8H,EAAGm7H,IAAIlpB,GAClB,QAAmB,IAAfD,EAAuB,CACzB,IAAIyqB,EAAOF,EAAO,OACC,IAAftqB,IAAuBwqB,EAAOx2L,KAAK8mB,IAAI0vK,EAAMD,IACjDtiJ,EAAMoiJ,EAAQ,EAAI,GAAKG,CACzB,CACA,QAAmB,IAAfxqB,EAAuB,CACzB,IAAIyqB,EAAOF,EAAO,OACC,IAAfxqB,IAAuB0qB,EAAOz2L,KAAK6mB,IAAI4vK,EAAMH,IACjDriJ,EAAMoiJ,EAAQ,EAAI,GAAKI,CACzB,CACF,CAtB0D,CAuB5D,EACA18H,EAAG28H,WAAa,SAASP,EAAWv2F,GAClC7lC,EAAG48H,YAAYR,EAAWv2F,GAC1B7lC,EAAGm8H,WAAWC,EAChB,EACAp8H,EAAG48H,YAAc,SAASR,EAAWv2F,GAC9BA,IAAMA,EAAO,CAAC,GACdu2F,IAAWA,EAAY,SAC5B,IACI/2L,EAAGwpG,EADH30D,EAAQo4F,EAAIhvC,eAAetjC,EAAIo8H,GAAWjwL,MAU9C,GAJA0iG,GAJwBA,EAAR,SAAZ7uC,EAAG93D,KAAwBoqI,EAAInb,UAAUn3D,EAAGy2D,UAC1B,MAAb6pB,EAAyB9vC,EAAUkvC,WACtB,aAAb1/E,EAAG+7F,MAA6B,CAAC,EAAG,GACjCl2D,EAAKsxB,WAAa3mB,EAAUivC,YAC5Bp4I,QACS,WAAjB24D,EAAGqyG,WAA2C,gBAAjBryG,EAAGqyG,YAClCxjE,EAAK,GAAK,GAEP30D,GAA0B,IAAjBA,EAAMz2C,OAApB,CAIA,IAAIo5L,EAA0B,OAAb3iJ,EAAM,GACnB4iJ,EAA0B,OAAb5iJ,EAAM,GAKvB,IAJgB,SAAZ8lB,EAAG93D,MAAoB83D,EAAG8xG,YAC5B53H,EAAM,GAAKo4F,EAAIzZ,UAAU3+E,EAAM,GAAIugD,EAAQz6B,EAAGy2D,UAC9Cv8E,EAAM,GAAKo4F,EAAIzZ,UAAU3+E,EAAM,GAAIugD,EAAQz6B,EAAGy2D,WAE3CpxH,EAAI,EAAGA,EAAI,EAAGA,IACjB,GAAgB,SAAZ26D,EAAG93D,KAAiB,CACtB,IAAKoqI,EAAIva,WAAW79E,EAAM70C,GAAI26D,EAAGy2D,UAAW,CAC1Cz2D,EAAGo8H,GAAavtF,EAChB,KACF,CACA,GAAI7uC,EAAGg8F,IAAI9hH,EAAM,MAAQ8lB,EAAGg8F,IAAI9hH,EAAM,IAAK,CACzC,IAAI6iJ,EAAYzqD,EAAI9J,UAClBxoE,EAAGg8F,IAAI9hH,EAAM,IACbo4F,EAAIpc,OAAS,IACboc,EAAInc,OAAS,KAEfj8E,EAAM,GAAK8lB,EAAGm7H,IAAI4B,EAAY,KAC9B7iJ,EAAM,GAAK8lB,EAAGm7H,IAAI4B,EAAY,KAC9B,KACF,CACF,KAAO,CACL,IAAK77F,EAAUhnD,EAAM70C,IAAK,CACxB,GAAMw3L,GAAcC,IAAe57F,EAAUhnD,EAAM,EAAI70C,IAEhD,CACL26D,EAAGo8H,GAAavtF,EAChB,KACF,CAJE30D,EAAM70C,GAAK60C,EAAM,EAAI70C,IAAMA,EAAI,GAAK,GAKxC,CAGA,GAFI60C,EAAM70C,IAAMq1F,EAASxgD,EAAM70C,IAAMq1F,EAC5BxgD,EAAM70C,GAAKq1F,IAASxgD,EAAM70C,GAAKq1F,GACpCxgD,EAAM,KAAOA,EAAM,GAAI,CACzB,IAAI8iJ,EAAM/2L,KAAK6mB,IAAI,EAAG7mB,KAAKD,IAAe,KAAXk0C,EAAM,KACrCA,EAAM,IAAM8iJ,EACZ9iJ,EAAM,IAAM8iJ,CACd,CACF,CAvCF,MAFE1qD,EAAIhvC,eAAetjC,EAAIo8H,GAAWhwL,IAAIyiG,EA2C1C,EACA7uC,EAAGu8F,SAAW,SAAS0gC,GACrB,IAAI1zC,EAAK7N,EAAW4N,MACpB,GAAItpF,EAAGmpF,WAAY,CACjB,IAAIqH,EAAM2oC,EAAQj4C,UAAU,CAAE1P,YAAakK,GAAc17E,EAAGmpF,YAC5DnpF,EAAGjW,OAASymG,EAAIzmG,MAClB,CACA,IAAIqyI,EAAYa,GAAmBj9H,EAAGqnC,GAAK,KAAO,QAC9CovB,EAAWz2D,EAAGy2D,SAClBz2D,EAAG28H,WAAWP,GACd,IAmBM/2L,EAAG63L,EAnBLlB,EAAMh8H,EAAGg8F,IAAIh8F,EAAGo8H,GAAW,GAAI3lE,GAC/BwlE,EAAMj8H,EAAGg8F,IAAIh8F,EAAGo8H,GAAW,GAAI3lE,GAC/B0mE,EAAoB,MAAb78C,EAgBX,GAfI68C,GACFn9H,EAAGo9H,QAAU7zC,EAAG53H,GAAK,EAAIquC,EAAGjW,OAAO,IAAMw/F,EAAGrzI,EAC5C8pD,EAAGukE,QAAUglB,EAAGrzI,GAAK8pD,EAAGjW,OAAO,GAAKiW,EAAGjW,OAAO,IAC9CiW,EAAGm6H,GAAKn6H,EAAGukE,SAAWy3D,EAAMC,GAC5Bj8H,EAAGunC,IAAMvnC,EAAGm6H,GAAK8B,IAEjBj8H,EAAGo9H,QAAU7zC,EAAG/6H,EAAIwxC,EAAGjW,OAAO,GAAKw/F,EAAGvjH,EACtCg6B,EAAGukE,QAAUglB,EAAGvjH,GAAKg6B,EAAGjW,OAAO,GAAKiW,EAAGjW,OAAO,IAC9CiW,EAAGm6H,GAAKn6H,EAAGukE,SAAW03D,EAAMD,GAC5Bh8H,EAAGunC,IAAMvnC,EAAGm6H,GAAK6B,GAEnBh8H,EAAGq6H,aAAe,GAClBr6H,EAAGq9H,SAAW,EACdr9H,EAAGw6H,IAAM,EACTx6H,EAAGu6H,GAAK,GACJv6H,EAAG2yG,cAEL3yG,EAAGq6H,aAAer6H,EAAGs9H,aACnBr3L,KAAK8mB,IAAIivK,EAAKC,GACdh2L,KAAK6mB,IAAIkvK,EAAKC,IAEZj8H,EAAGq6H,aAAa52L,QAAQ,CAC1B,IAAK4B,EAAI,EAAGA,EAAI26D,EAAGq6H,aAAa52L,OAAQ4B,IACtC63L,EAAMl9H,EAAGq6H,aAAah1L,GACtB26D,EAAGq9H,UAAYp3L,KAAKD,IAAIk3L,EAAIpwK,IAAMowK,EAAInwK,KAExC,IAAImgF,EAAOiwF,EACPnB,EAAMC,IAAK/uF,GAAQA,GACnBA,GAAMltC,EAAGq6H,aAAa5nH,UAC1B,IAAIsT,EAAOmnB,GAAQ,EAAI,EAGvB,IAFAltC,EAAGw6H,IAAMz0G,EAAO/lB,EAAGukE,SAAWt+H,KAAKD,IAAIi2L,EAAMD,GAAOh8H,EAAGq9H,UACvDr9H,EAAGu6H,GAAGv2L,MAAMg8D,EAAGw6H,KAAO2C,EAAOlB,EAAMD,IAC9B32L,EAAI,EAAGA,EAAI26D,EAAGq6H,aAAa52L,OAAQ4B,IACtC63L,EAAMl9H,EAAGq6H,aAAah1L,GACtB26D,EAAGu6H,GAAGv2L,KACJg8D,EAAGu6H,GAAGv6H,EAAGu6H,GAAG92L,OAAS,GAAKsiF,EAAO/lB,EAAGw6H,KAAO0C,EAAIpwK,IAAMowK,EAAInwK,MAG7D,IAAK1nB,EAAI,EAAGA,EAAI26D,EAAGq6H,aAAa52L,OAAQ4B,KACtC63L,EAAMl9H,EAAGq6H,aAAah1L,IAClBo1L,KAAOP,EAAIgD,EAAInwK,KACnBmwK,EAAIxC,KAAOR,EAAIgD,EAAIpwK,IAEvB,CAEF,IAAKyuC,SAASyE,EAAGm6H,MAAQ5+H,SAASyE,EAAGunC,KAAOvnC,EAAGukE,QAAU,EAEvD,MADAmX,EAAWqa,aAAc,EACnB,IAAI3gJ,MAAM,yCAEpB,EACA4qD,EAAGu9H,WAAa,SAAS73J,GACvB,IACI83J,EAAM11I,EAAIC,EAAIyZ,EAAIi8H,EADlBC,EAAgB19H,EAAG2yG,aAAe,GAEjC+qB,EAAcC,kBACjBD,EAAcC,gBAAkBD,EAAchxL,KAAI,SAASkxL,GACzD,OAAOA,EAAKr5C,SAAWq5C,EAAK58D,OAASsR,EAAI3J,UACvCi1D,EAAK58D,OACL48D,EAAKl3L,QAAU+gI,EAAcznE,EAAG+6H,KAE9B,IACN,KAEG2C,EAAcG,gBACjBH,EAAcG,cAAgBH,EAAchxL,KAAI,SAASkxL,GACvD,OAAOA,EAAKr5C,SAAWq5C,EAAK9vK,OAASwkH,EAAI3J,UAAUi1D,EAAK9vK,OAAQkyC,EAAG+6H,KAAKrmK,KAAK49G,EAAIrX,WAAa,IAChG,KAEF,IAAK,IAAI51H,EAAI,EAAGA,EAAIq4L,EAAcj6L,OAAQ4B,IAAK,CAC7C,IAAI63L,EAAMQ,EAAcr4L,GACxB,GAAI63L,EAAI34C,QACN,GAAI24C,EAAIl8D,OAAQ,CACd,IAAIt6H,EAAUw2L,EAAIx2L,QAIlB,OAFAohD,GADA01I,EAAOE,EAAcC,gBAAgBt4L,IAC3B,GACV0iD,EAAKy1I,EAAK,GACF92L,GACN,KAAK04I,EAEH59E,GADAi8H,EAAQ,IAAI12J,KAAKrB,IACN8mD,YACP1kC,EAAKC,IACPA,GAAM,EACFyZ,EAAK1Z,IAAI0Z,GAAM,IAErB,MACF,KAAK29E,EAMH39E,GALAi8H,EAAQ,IAAI12J,KAAKrB,IACCsmD,eACJyxG,EAAM7xG,gBAGI,GAFV6xG,EAAMvzG,gBAEmB,KADpBuzG,EAAM1mG,qBACoC,MACzDjvC,EAAKC,IACPA,GAAM,GACFyZ,EAAK1Z,IAAI0Z,GAAM,KAErB,MACF,IAAK,GACHA,EAAK97B,EAGT,GAAI87B,GAAM1Z,GAAM0Z,EAAKzZ,EAAI,OAAO0yC,CAClC,MAEE,IADA,IAAI4gC,EAAOqiE,EAAcG,cAAcx4L,GAC9BiG,EAAI,EAAGA,EAAI+vH,EAAK53H,OAAQ6H,IAG/B,GADAy8C,GADAD,EAAKuzE,EAAK/vH,IACA4xL,EAAItqB,OACVltI,GAAKoiB,GAAMpiB,EAAIqiB,EAAI,OAAO0yC,CAItC,CACA,OAAO/0D,CACT,EACAs6B,EAAGs9H,aAAe,SAASt1I,EAAIC,GAC7B,IAAI5iD,EAAGm4L,EAAM11I,EAAIC,EACb+1I,EAAiB,GACrB,IAAK99H,EAAG2yG,YAAa,OAAOmrB,EAC5B,IAAIJ,EAAgB19H,EAAG2yG,YAAYtrK,QAAQqtB,MAAK,SAASjG,EAAG4H,GAC1D,OAAI5H,EAAE/nB,UAAY04I,GAAmB/oH,EAAE3vB,UAAYy4I,GAAsB,EACrE9oH,EAAE3vB,UAAY04I,GAAmB3wH,EAAE/nB,UAAYy4I,EAAqB,EACjE,CACT,IACI4+C,EAAW,SAAShxK,EAAKD,GAG3B,IAFAC,EAAMulH,EAAI9J,UAAUz7G,EAAKi7B,EAAIC,OAC7Bn7B,EAAMwlH,EAAI9J,UAAU17G,EAAKk7B,EAAIC,IAC7B,CAEA,IADA,IAAI+1I,GAAa,EACRvkH,EAAK,EAAGA,EAAKqkH,EAAer6L,OAAQg2E,IAAM,CACjD,IAAIwkH,EAAOH,EAAerkH,GACtB1sD,EAAMkxK,EAAKnxK,KAAOA,GAAOmxK,EAAKlxK,MAC5BA,EAAMkxK,EAAKlxK,MACbkxK,EAAKlxK,IAAMA,GAETD,EAAMmxK,EAAKnxK,MACbmxK,EAAKnxK,IAAMA,GAEbkxK,GAAa,EAEjB,CACIA,GACFF,EAAe95L,KAAK,CAAE+oB,MAAKD,OAfN,CAiBzB,EACA,IAAKznB,EAAI,EAAGA,EAAIq4L,EAAcj6L,OAAQ4B,IAAK,CACzC,IAAI63L,EAAMQ,EAAcr4L,GACxB,GAAI63L,EAAI34C,QACN,GAAI24C,EAAIl8D,OAAQ,CACd,IAAIxlE,EAAMxT,EACNyT,EAAMxT,EACNi1I,EAAIx2L,UACN80D,EAAMv1D,KAAK2/B,MAAM41B,IAGnB1T,GADA01I,EAAOlrD,EAAI3J,UAAUu0D,EAAIl8D,OAAQk8D,EAAIx2L,QAAU+gI,EAAcznE,EAAGg8F,MACtD,GACVj0G,EAAKy1I,EAAK,GACV,IACIU,EACAnpK,EAFAopK,EAAS,IAAIp3J,KAAKy0B,GAGtB,OAAQ0hI,EAAIx2L,SACV,KAAK04I,EACHrqH,EAAOsmE,EACP6iG,GAAiCn2I,EAAKD,GAAzBC,EAAKD,EAAK,EAAI,IAAkBwzC,EAC7C9/B,GAAO1T,EAAKwzC,GAAU6iG,EAAO3xG,YAAc8O,EAAS6iG,EAAOnyG,cAAgBuP,EAAU4iG,EAAOvyG,gBAAkB4P,EAAS2iG,EAAOj0G,gBAAkBuR,EAAS0iG,EAAOpnG,sBAChK,MACF,KAAKooD,EACHpqH,EAAOumE,EACP4iG,GAAkCn2I,EAAKD,GAA1BC,EAAKD,EAAK,GAAK,IAAkByzC,EAC9C//B,GAAO1T,EAAKyzC,GAAW4iG,EAAOnyG,cAAgBuP,EAAU4iG,EAAOvyG,gBAAkB4P,EAAS2iG,EAAOj0G,gBAAkBuR,EAAS0iG,EAAOpnG,sBACnI,MACF,QACEv7B,EAAMv1D,KAAK8mB,IAAIywK,EAAK,GAAIA,EAAK,IAG7BU,EADAnpK,GADA0mC,EAAMx1D,KAAK6mB,IAAI0wK,EAAK,GAAIA,EAAK,KAChBhiI,EAGjB,IAAK,IAAI7pC,EAAI6pC,EAAK7pC,EAAI8pC,EAAK9pC,GAAKoD,EAC9BgpK,EAASpsK,EAAGA,EAAIusK,EAEpB,MAEE,IADA,IAAI7iE,EAAOiX,EAAI3J,UAAUu0D,EAAIpvK,OAAQkyC,EAAG+6H,KAC/BzvL,EAAI,EAAGA,EAAI+vH,EAAK53H,OAAQ6H,IAG/ByyL,EAFAj2I,EAAKuzE,EAAK/vH,GACVy8C,EAAKD,EAAKo1I,EAAItqB,OAKtB,CAIA,OAHAkrB,EAAeppK,MAAK,SAASjG,EAAG4H,GAC9B,OAAO5H,EAAE1B,IAAMsJ,EAAEtJ,GACnB,IACO+wK,CACT,EACA99H,EAAGo+H,aAAe,SAAS3+E,EAAOk/C,EAAW94D,GAC3C,IAAI81B,EAASgO,EAAUtkI,EAAG8Q,EACtByhK,EAAS53G,EAAG93D,KACZm2L,EAAiB,SAAXzmB,GAAqBn4D,EAAMk/C,EAAY,YACjD,GAAIA,KAAal/C,EAAO,CAGtB,GAFAkc,EAAUlc,EAAMk/C,GAChBxoJ,EAAMspG,EAAM8kB,SAAW+N,EAAItxC,aAAa26B,GACpC2W,EAAIh1C,aAAaq+B,KAAwB,WAAXi8C,GAAkC,QAAXA,GAAmB,CAC1E,GAAIzhK,IAAQwlH,EAAQl4H,OAClB,OAAOk4H,EACF,GAAIA,EAAQsQ,SACjB,OAAOtQ,EAAQsQ,SAAS,EAAG91H,EAE/B,CACA,GAAe,kBAAXyhK,EACF,OAvhBN,SAA+Bj8C,EAASxlH,GAEtC,IADA,IAAIwzH,EAAW,IAAI18H,MAAMkJ,GAChB9Q,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAK,CAC5B,IAAIghF,GAAMs1C,EAAQ,IAAM,IAAIt2H,GACxBojI,GAAM9M,EAAQ,IAAM,IAAIt2H,GAC5BskI,EAAStkI,GAAKw0L,EAAiB,CAACxzG,EAAIoiD,GACtC,CACA,OAAOkB,CACT,CA+gBa20D,CAAsB3iE,EAASxlH,GAGxC,IADAwzH,EAAW,IAAI18H,MAAMkJ,GAChB9Q,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBskI,EAAStkI,GAAK26D,EAAG+6H,IAAIp/D,EAAQt2H,GAAI,EAAGg5L,EAAKx4F,EAE7C,KAAO,CACL,IAAIxf,EAAKs4E,EAAY,MAAOl/C,EAAQz/C,EAAG+6H,IAAIt7E,EAAMk/C,EAAY,KAAM,EAAG0/B,GAAO,EACzEjhG,EAAKqiB,EAAM,IAAMk/C,GAAa/vI,OAAO6wF,EAAM,IAAMk/C,IAAc,EAInE,IAHAhjC,EAAUlc,EAAM,CAAEj0G,EAAG,IAAKC,EAAG,KAAMkzJ,IACnCxoJ,EAAMspG,EAAM8kB,SAAW5I,EAAQl4H,OAC/BkmI,EAAW,IAAI18H,MAAMkJ,GAChB9Q,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBskI,EAAStkI,GAAKghF,EAAKhhF,EAAI+3F,CAE3B,CACA,GAAIp9B,EAAG2yG,YACL,IAAKttK,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBskI,EAAStkI,GAAK26D,EAAGu9H,WAAW5zD,EAAStkI,IAGzC,OAAOskI,CACT,EACA3pE,EAAGu+H,aAAe,SAASrkJ,EAAOskJ,GAChC,OAAOvxL,MAAMiI,QAAQglC,IAA2B,IAAjBA,EAAMz2C,SAAiB+6L,GAAuB,OAAbtkJ,EAAM,IAAegnD,EAAUlhC,EAAGg8F,IAAI9hH,EAAM,QAAUskJ,GAAuB,OAAbtkJ,EAAM,IAAegnD,EAAUlhC,EAAGg8F,IAAI9hH,EAAM,KAC9K,EACA8lB,EAAGy+H,iBAAmB,SAASvkJ,EAAOh3C,GACpC,IAAIw7L,GAAiB1+H,EAAGu+H,aAAarkJ,EAAO,UAW5C,OAVIwkJ,GAAiBx7L,GAAWA,EAAQy7L,YAAaD,EAAgB,WAC5DxkJ,IACU,OAAbA,EAAM,IAA4B,OAAbA,EAAM,GAC7BwkJ,GAAgB,EACM,OAAbxkJ,EAAM,IAA4B,OAAbA,EAAM,GACpCwkJ,EAAgB,MACM,OAAbxkJ,EAAM,IAA4B,OAAbA,EAAM,KACpCwkJ,EAAgB,QAGbA,CACT,EACA1+H,EAAG4+H,WAAa,WACd,IAAI9sB,EAAY9xG,EAAG8xG,UACnB,MAAqB,aAAdA,GAA0C,iBAAdA,GAA8C,iBAAdA,CACrE,EACA9xG,EAAGimH,gBAAkB,SAAS5uK,EAAGo/G,GAC/B,IAAIkL,EAAQ3hE,EAAG26H,IAAItjL,EAAEipI,GAAW,KAAM7pB,GAClCzuE,EAAKgY,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IACrB+N,EAAK+X,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IACzB,OAAI8N,EAAKC,EACAD,GAAM25E,GAASA,GAAS15E,EAExBA,GAAM05E,GAASA,GAAS35E,CAEnC,EACAgY,EAAG6+H,iBAAmB,WACpB7+H,EAAGu/F,YAAc,GACjBv/F,EAAGkgG,eAAiB,CAAC,CACvB,EACAlgG,EAAG4gG,UAAY,WACb,IAAI7iH,EAAQiiB,EAAG47H,YACf,GAAI79I,EAAO,CACT,IAAIs0E,EAAa,KACbysE,EAAgB,KACpB,IAAK,IAAIjD,KAAS99I,EAAO,CACvB,IAAIyyG,EAAM9U,EAAWy9C,EAAQj5C,QAAQ27C,IACrC,GAAIrrC,EAAI+O,YAAa,CACnBltC,EAAam+B,EAAI+O,YACjBu/B,EAAgBtuC,EAAI0P,eACpB,KACF,CACF,CACI7tC,GAAcysE,GAChB9+H,EAAGu/F,YAAcltC,EACjBryD,EAAGkgG,eAAiB4+B,GAEpB9+H,EAAG6+H,kBAEP,MACE7+H,EAAG6+H,mBAEL,GAAI7+H,EAAGugG,mBACL,IAAK,IAAIj1J,EAAI,EAAGA,EAAI00D,EAAGugG,mBAAmB98J,OAAQ6H,IAChDquL,EAAiB35H,EAAGugG,mBAAmBj1J,GAG7C,EACA00D,EAAGwgG,wBAA0B,WAC3B,IAAIhC,EAAiB,GAErB,GADAx+F,EAAG6+H,mBACC7+H,EAAGugG,mBACL,IAAK,IAAIj1J,EAAI,EAAGA,EAAI00D,EAAGugG,mBAAmB98J,OAAQ6H,IAChDquL,EAAiB35H,EAAGugG,mBAAmBj1J,IAG3CkzJ,EAAiBA,EAAexwJ,OAAOgyD,EAAGw/F,eAC1C,IAAIzhH,EAAQiiB,EAAG47H,YACf,IAAK,IAAIC,KAAS99I,EAChB,GAAIkiG,IAAS47C,EAAb,CACA,IAAIrrC,EAAM9U,EAAWy9C,EAAQj5C,QAAQ27C,IACrCrrC,EAAI+O,YAAcv/F,EAAGu/F,YACrB/O,EAAI0P,eAAiBlgG,EAAGkgG,eACxB1B,EAAiBA,EAAexwJ,OAAOwiJ,EAAIgP,cAJf,CAM9B,OAAOhB,CACT,EACA,IAAIh4H,EAASk1G,EAAWwP,UACR,SAAZlrF,EAAG93D,OACL83D,EAAG++H,YAAcv4J,EAASA,EAAO0wD,WAAaT,EAC9Cz2B,EAAGorF,aAAe1P,EAAW0P,cAE/BprF,EAAGg/H,YAActjD,EAAWtqB,WAC5BpxD,EAAGi/H,WAAaz4J,EAASA,EAAOm/F,aAAeA,SACxC3lE,EAAGk/H,iBACHl/H,EAAGm/H,WACZ,CACF,IAIEC,GAAwB9tJ,EAAW,CACrC,uCAAuCt6B,EAASkuB,GAE9C,IAAIg8D,EAAY7G,IACZi4C,EAAMtN,KACNvqC,EAASD,IAAoBC,OAC7B+C,EAAsB80C,EAAI90C,oBAC1Bu6B,EAAaua,EAAIva,WACjB0P,EAAc6K,EAAI7K,YAClBzlH,EAAQ/b,KAAK+b,MAuBjB,SAASq9K,EAAc35J,EAAG45J,GACxB,OAAOA,EAAiBp+F,EAAUx7D,GAAkB,kBAANA,CAChD,CAyBA,SAAS65J,EAAappL,GACpB,OAAOlQ,KAAK6mB,IAAI,GAAI3W,EAAM,GAAK,IACjC,CAnDA+uB,EAAOluB,QAAU,SAAkBvP,EAAOgvH,EAAU5wB,GAClD,IAAIp3E,EAAIhnB,EACJ+3L,EAAkB35F,EAAK25F,gBAC3B,GAAIhiG,EAAoB/uE,KAAOA,EAAEhrB,OAAQ,MAAO,IAChD,IAAK+7L,GAmEP,SAAuB/wK,GACrB,OAAO+uE,EAAoB/uE,EAAE,KAAO+uE,EAAoB/uE,EAAE,GAC5D,CArE0BgxK,CAAchxK,GAAI,MAAO,gBACjD,GAAI+wK,GAAmBvyL,MAAMiI,QAAQuZ,EAAE,IAAK,CAE1C,IADA,IAAI4H,EAAI,GACChxB,EAAI,EAAGA,EAAIopB,EAAEhrB,OAAQ4B,IAC5B,GAAIm4F,EAAoB/uE,EAAEppB,IACxB,IAAK,IAAIiG,EAAI,EAAGA,EAAImjB,EAAEppB,GAAG5B,OAAQ6H,IAC/B+qB,EAAEryB,KAAKyqB,EAAEppB,GAAGiG,IAIlBmjB,EAAI4H,CACN,CACA,GAgBF,SAAmB5H,EAAGgoG,GAMpB,IALA,IAAItgH,EAAMsY,EAAEhrB,OACRu5L,EAAMuC,EAAappL,GACnBupL,EAAO,EACPC,EAAO,EACPx7D,EAAO,CAAC,EACHz1G,EAAI,EAAGA,EAAIvY,EAAKuY,GAAKsuK,EAAK,CACjC,IACI4C,EAAKnxK,EADDzM,EAAM0M,IAEVmxK,EAAO15L,OAAOy5L,GACdz7D,EAAK07D,KACT17D,EAAK07D,GAAQ,EACT9nE,EAAW6nE,EAAInpE,IAAWipE,IAC1Bx+F,EAAU0+F,IAAKD,IACrB,CACA,OAAOD,EAAc,EAAPC,CAChB,CAhCMG,CAAUrxK,EAAGgoG,GAAW,MAAO,OACnC,IAAI6oE,EAA0C,WAAzBz5F,EAAKsrB,gBAC1B,OAkCF,SAAkB1iG,EAAG6wK,GAMnB,IALA,IAAInpL,EAAMsY,EAAEhrB,OACRu5L,EAAMuC,EAAappL,GACnBwpL,EAAO,EACPI,EAAO,EACP57D,EAAO,CAAC,EACHz1G,EAAI,EAAGA,EAAIvY,EAAKuY,GAAKsuK,EAAK,CACjC,IACI4C,EAAKnxK,EADDzM,EAAM0M,IAEVmxK,EAAO15L,OAAOy5L,GAClB,IAAIz7D,EAAK07D,GAAT,CACA17D,EAAK07D,GAAQ,EACb,IAAIluK,SAAWiuK,EACL,YAANjuK,EAAiBouK,KACZT,EAAiB73D,EAAYm4D,KAAQnlG,EAAe,WAAN9oE,GAAgBguK,IACxD,WAANhuK,GAAgBouK,GALD,CAM1B,CACA,OAAOA,EAAc,EAAPJ,CAChB,CApDM5pE,CAAStnG,EAAG6wK,GAAwB,WAO1C,SAAkB7wK,EAAG6wK,GAEnB,IADA,IAAInpL,EAAMsY,EAAEhrB,OACH4B,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACvB,GAAIg6L,EAAc5wK,EAAEppB,GAAIi6L,GAAiB,OAAO,EAElD,OAAO,CACT,CAZMU,CAASvxK,EAAG6wK,GAAwB,SACjC,GACT,CAqDF,IAIEW,GAAoB3uJ,EAAW,CACjC,mCAAmCt6B,EAASkuB,GAE1C,IAAIkQ,EAAKD,IACL+rD,EAAY7G,IACZi4C,EAAMtN,KACNtqC,EAAUF,IAAoBE,QAC9B07B,EAAWxE,KACX0iE,EAAU1Q,KACVsc,EAAQngD,KACRmB,EAAYg/C,EAAMh/C,UAClBQ,EAAWw+C,EAAMx+C,SASrB,SAASy+C,EAAa/1E,EAAIpqD,GACxB,IAAI36D,EAAGiG,EACH80L,EAAW,GACX1kD,EAAatxB,EAAGonB,YAChB6uD,EAAYC,EAAU5kD,EAAY17E,EAAI,GACtCugI,EAAYD,EAAU5kD,EAAY17E,EAAI,GACtCwgI,EAAWC,EAAer2E,EAAIpqD,GAC9B0gI,EAAWF,EAASzzK,IACpB4zK,EAAWH,EAAS1zK,IACxB,GAAwB,IAApB4zK,EAASj9L,QAAoC,IAApBk9L,EAASl9L,OACpC,OAAO6uI,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,KAEpC,IAAI4kC,EAASF,EAAS,GAAGvyK,IACrB0yK,EAASF,EAAS,GAAGxyK,IACzB,IAAK9oB,EAAI,EAAGA,EAAIq7L,EAASj9L,QACnBm9L,IAAWC,EADgBx7L,IAE/Bu7L,EAAS36L,KAAK8mB,IAAI6zK,EAAQF,EAASr7L,GAAG8oB,KAExC,IAAK9oB,EAAI,EAAGA,EAAIs7L,EAASl9L,QACnBm9L,IAAWC,EADgBx7L,IAE/Bw7L,EAAS56L,KAAK6mB,IAAI+zK,EAAQF,EAASt7L,GAAG8oB,KAExC,IAAI2jJ,EAAY9xG,EAAG8xG,UACfgvB,EAA0B,aAAdhvB,GAA0C,iBAAdA,GAA8C,iBAAdA,EAC5E,IAAKgvB,GAAa9gI,EAAG9lB,MAAO,CAC1B,IAAImiJ,EAAM/pD,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,KACrC8kC,EAAYzE,EAAI,GAAKA,EAAI,EAC3B,CACqB,aAAjBr8H,EAAG8xG,YACL9xG,EAAG8xG,WAAY,GAEjB,IAMIivB,EAAOC,EAAOC,EAASC,EAASC,EAAI/jG,EANpCgkG,EAAYphI,EAAGqyG,UACfgvB,EAAuB,WAAdD,EACTE,EAA4B,gBAAdF,EACdG,EAAQvhI,EAAGukE,QACXi9D,EAAUD,EAAQ,GAClBE,EAAQ,EAEZ,IAAKp8L,EAAI,EAAGA,EAAIq7L,EAASj9L,OAAQ4B,IAE/B,IADA07L,EAAQL,EAASr7L,GACZiG,EAAI,EAAGA,EAAIq1L,EAASl9L,OAAQ6H,KAE/B8xF,GADA4jG,EAAQL,EAASr1L,IACN6iB,IAAM4yK,EAAM5yK,IAAMuzK,EAAiB1hI,EAAI+gI,EAAM5yK,IAAK6yK,EAAM7yK,MAC1D,KACPgzK,EAAKI,EAAQlB,EAAUU,GAASR,EAAUS,IACjCQ,EACHpkG,EAAK+jG,EAAKM,IACZR,EAAUF,EACVG,EAAUF,EACVS,EAAQrkG,EAAK+jG,GAEN/jG,EAAKmkG,EAAQE,IACtBR,EAAU,CAAE9yK,IAAK4yK,EAAM5yK,IAAKwzK,MAAO,GACnCT,EAAU,CAAE/yK,IAAK6yK,EAAM7yK,IAAKwzK,MAAO,GACnCF,EAAQrkG,EAAKmkG,IAQrB,GAAIX,IAAWC,EAAQ,CACrB,IAAIvkI,EAAQskI,EAAS,EACjBvkI,EAAQukI,EAAS,EACrB,GAAIS,EACF,GAAe,IAAXT,EACFR,EAAW,CAAC,EAAG,OACV,CACL,IAAIwB,GAAUhB,EAAS,EAAID,EAAWD,GAAUn8K,QAVtD,SAAoBhc,EAAM6xB,GACxB,OAAOn0B,KAAK6mB,IAAIvkB,EAAMg4L,EAAUnmK,GAClC,GAQyE,GAC/DynK,EAAWjB,GAAU,EAAI36L,KAAK8mB,IAAI,GAAK60K,EAASL,IACpDnB,EAAWQ,EAAS,EAAI,CAAC,EAAGiB,GAAY,CAACA,EAAU,EACrD,MAEAzB,EADSkB,EACE,CAACr7L,KAAK6mB,IAAI,EAAGwvC,GAAQr2D,KAAK6mB,IAAI,EAAGuvC,IAEjC,CAACC,EAAOD,EAEvB,MACMglI,GACEJ,EAAQ9yK,KAAO,IACjB8yK,EAAU,CAAE9yK,IAAK,EAAGwzK,MAAO,IAEzBT,EAAQ/yK,KAAO,IACjB+yK,EAAU,CAAE/yK,IAAK,EAAGwzK,MAAO,KAEpBL,IACLL,EAAQ9yK,IAAMszK,EAAQpB,EAAUY,GAAW,IAC7CA,EAAU,CAAE9yK,IAAK,EAAGwzK,MAAO,IAEzBT,EAAQ/yK,KAAO,IACjB+yK,EAAU,CAAE/yK,IAAK,EAAGwzK,MAAO,KAG/BF,GAASP,EAAQ/yK,IAAM8yK,EAAQ9yK,IAAMuzK,EAAiB1hI,EAAI+gI,EAAM5yK,IAAK6yK,EAAM7yK,OAASozK,EAAQlB,EAAUY,GAAWV,EAAUW,IAC3Hd,EAAW,CACTa,EAAQ9yK,IAAMszK,EAAQpB,EAAUY,GAChCC,EAAQ/yK,IAAMszK,EAAQlB,EAAUW,IAMpC,OAHAd,EAAW0B,EAAsB1B,EAAUpgI,GACvCA,EAAGm8H,YAAYn8H,EAAGm8H,aAClB2E,GAAWV,EAAS3tH,UACjB6/D,EAAI3J,UAAUy3D,EAAUpgI,EAAGm7H,KAAOvsK,OAC3C,CACA,SAAS8yK,EAAiB1hI,EAAIqmB,EAAIoiD,GAChC,IAAIs5D,EAAU,EACd,GAAI/hI,EAAG2yG,YAEL,IADA,IAAImrB,EAAiB99H,EAAGs9H,aAAaj3G,EAAIoiD,GAChCpjI,EAAI,EAAGA,EAAIy4L,EAAer6L,OAAQ4B,IAAK,CAC9C,IAAI63L,EAAMY,EAAez4L,GACzB08L,GAAW7E,EAAIpwK,IAAMowK,EAAInwK,GAC3B,CAEF,OAAOg1K,CACT,CACA,SAASzB,EAAU5kD,EAAY17E,EAAIlzC,GACjC,IAAIk1K,EAAY,IAAOhiI,EAAGukE,QACtB09D,EAAajiI,EAAG0oF,aAAe,CAAC,EACpC,IAAwD,KAAnD1oF,EAAGkzG,mBAAqB,IAAIpsK,QAAQ,YAAgF,KAA3Dm7L,EAAW/uB,mBAAqB,IAAIpsK,QAAQ,UAAkB,CAC1H,IAAIg6L,EAAY9gI,EAAG4+H,aACnB,IAAKkC,EAAW,CACd,IAAIzE,EAAM/pD,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,KACrC8kC,EAAYzE,EAAI,GAAKA,EAAI,EAC3B,CACIyE,IAAWh0K,GAAOA,EACxB,CACA,IAAIusE,EAAQ,EAQZ,OAPKqoD,EAAShG,EAAY17E,EAAGuoF,OAC3BlvD,EAYJ,SAAqCqiD,EAAY17E,EAAIlzC,GACnD,IAAIwrD,EAAM,EACNgwE,EAA2B,MAArBtoF,EAAGuoF,IAAI76H,OAAO,GACxB,IAAK,IAAIo0I,KAAWpmB,EAAWoN,OAAQ,CACrC,IAAI+G,EAAWnU,EAAWoN,OAAOgZ,GACjC,GAAI9hG,EAAGuoF,MAAQsH,EAAS9W,MAAMwP,KAAOvoF,EAAGuoF,MAAQsH,EAAS7W,MAAMuP,IAA/D,CACA,IAAI05C,GAAc35C,EAAMuH,EAAS7W,MAAQ6W,EAAS9W,QAAU,CAAC,EAC7D,IAAgE,KAA3DkpD,EAAW/uB,mBAAqB,IAAIpsK,QAAQ,aAC1CgmB,IAA4B,SAApBm1K,EAAW7rC,MAAuC,WAApB6rC,EAAW7rC,OAAsBtpI,IAA4B,QAApBm1K,EAAW7rC,MAAsC,UAApB6rC,EAAW7rC,OAAmB,CAC7I,GAAI6rC,EAAWC,MAAO,CACpB,IAAIz/E,EAAM6vB,EAAItU,QAAQikE,EAAWE,YAAYF,EAAW15C,IAAM,SAAW,GACrE65C,EAAOn8L,KAAKD,IAAIC,KAAKsnD,IAAIk1D,IACzB4/E,EAAOp8L,KAAKD,IAAIC,KAAKunD,IAAIi1D,IAC7B,IAAKw/E,EAAWC,MAAM,GAAGj9H,GAAI,CAC3B,IAAI4+D,EAAMo+D,EAAW15C,IAAM,OACV05C,EAAWK,YAAYz+D,GAC7BrjF,MAAK,SAASnpC,GACvB,IAAIkrL,EAAYntJ,EAAGsI,OAAOt6C,MACPm/L,EAAU7kJ,OAAO,oBACnBlD,UACfnjC,EAAE4tD,GAAKqvH,EAAQ1C,KAAK2Q,EAAUx6L,QAElC,GACF,CACA,IAAK,IAAI1C,EAAI,EAAGA,EAAI48L,EAAWC,MAAMz+L,OAAQ4B,IAAK,CAChD,IACI4/D,EADIg9H,EAAWC,MAAM78L,GACd4/D,GACX,GAAIA,EAAI,CACN,IAAIj/B,EAAI,EAAci/B,EAAG/qD,MACrBhE,EAAI,EAAc+uD,EAAG9qD,OACzBm+D,EAAMryE,KAAK6mB,IACTwrD,EACAgwE,EAAMriJ,KAAK6mB,IAAIkZ,EAAIo8J,EAAMlsL,EAAImsL,GAAQp8L,KAAK6mB,IAAI5W,EAAIksL,EAAMp8J,EAAIq8J,GAEhE,CACF,CACF,CACyB,WAArBJ,EAAWnoH,OAAuD,WAAjCmoH,EAAW/uB,oBAC9C56F,GAAO2pH,EAAW1uB,SAAW,EAEjC,CAnC0E,CAqC9E,CACA,OAAOj7F,CACT,CAxDYkqH,CAA4B9mD,EAAY17E,EAAIlzC,IAEtDk1K,EAAY/7L,KAAK6mB,IAAIusE,EAAO2oG,GACP,WAAjBhiI,EAAGwoE,WAA0BxoE,EAAGyiI,eAClCT,IAAchiI,EAAGyiI,aAAa,GAAKziI,EAAGyiI,aAAa,KAAOziI,EAAGjW,OAAO,GAAKiW,EAAGjW,OAAO,KAE9E,SAAgB3vB,GACrB,OAAIA,EAAGunK,MAAc,EACdvnK,EAAGk+C,KAAOl+C,EAAGsoK,SAAWV,EAAY3oG,EAC7C,CACF,CA+CA,SAASonG,EAAer2E,EAAIpqD,EAAI2iI,GAC9B,IAKIt9L,EAAGiG,EAAG+L,EALN4oI,EAAOjgF,EAAGuoF,IACV6K,EAAWhpC,EAAGs5B,UACdhI,EAAatxB,EAAGonB,YAChBkvD,EAAW,GACXC,EAAW,GAEf,SAASiC,EAAQxhG,EAAMQ,GACrB,IAAKv8F,EAAI,EAAGA,EAAIu8F,EAAQn+F,OAAQ4B,IAAK,CACnC,IAAI+tB,EAAOguE,EAAKQ,EAAQv8F,IACpBm7L,GAAYptK,EAAK+pI,WAAa,CAAC,GAAGld,GACtC,IAAqB,IAAjB7sH,EAAKu+E,SAAoB6uF,EAAU,CACrC,IAAKl1L,EAAI,EAAGA,EAAIk1L,EAASzzK,IAAItpB,OAAQ6H,IACnC+L,EAAImpL,EAASzzK,IAAIzhB,GACjBu3L,EAAiBnC,EAAUrpL,EAAE8W,IAAK9W,EAAEihE,IAAK,CAAEoqH,SAAUrrL,EAAEqrL,WAEzD,IAAKp3L,EAAI,EAAGA,EAAIk1L,EAAS1zK,IAAIrpB,OAAQ6H,IACnC+L,EAAImpL,EAAS1zK,IAAIxhB,GACjBw3L,EAAiBnC,EAAUtpL,EAAE8W,IAAK9W,EAAEihE,IAAK,CAAEoqH,SAAUrrL,EAAEqrL,UAE3D,CACF,CACF,CAIA,GAHAE,EAAQxvC,EAAUpzF,EAAGw/F,eACrBojC,EAAQlnD,EAAWqnD,aAAe,GAAI/iI,EAAGgjI,aAAe,IACxDJ,EAAQlnD,EAAW8R,QAAU,GAAIxtF,EAAGijI,eAAiB,IACjDjjI,EAAG47H,cAAgB+G,EACrB,IAAK,IAAI9G,KAAS77H,EAAG47H,YACnB,GAAIC,IAAU77H,EAAGuoF,IAAK,CACpB,IAAIiI,EAAMtP,EAAU92B,EAAIyxE,GACpBqH,EAAYzC,EAAer2E,EAAIomC,GAAK,GACpC2yC,EAAWnjI,EAAGukE,QAAUisB,EAAIjsB,QAChC,IAAKj5H,EAAI,EAAGA,EAAI43L,EAAUn2K,IAAItpB,OAAQ6H,IACpC+L,EAAI6rL,EAAUn2K,IAAIzhB,GAClBu3L,EAAiBnC,EAAUrpL,EAAE8W,IAAK9W,EAAEihE,IAAM6qH,EAAU,CAAET,SAAUrrL,EAAEqrL,WAEpE,IAAKp3L,EAAI,EAAGA,EAAI43L,EAAUp2K,IAAIrpB,OAAQ6H,IACpC+L,EAAI6rL,EAAUp2K,IAAIxhB,GAClBw3L,EAAiBnC,EAAUtpL,EAAE8W,IAAK9W,EAAEihE,IAAM6qH,EAAU,CAAET,SAAUrrL,EAAEqrL,UAEtE,CAGJ,MAAO,CAAE31K,IAAK2zK,EAAU5zK,IAAK6zK,EAC/B,CA8GA,SAASkC,EAAiBp7L,EAAOg9F,EAAQ2+F,EAAQv9F,GAC/Cw9F,EAAc57L,EAAOg9F,EAAQ2+F,EAAQv9F,EAAM60B,EAC7C,CACA,SAASooE,EAAiBr7L,EAAOg9F,EAAQ2+F,EAAQv9F,GAC/Cw9F,EAAc57L,EAAOg9F,EAAQ2+F,EAAQv9F,EAAM+0B,EAC7C,CACA,SAASyoE,EAAc57L,EAAOg9F,EAAQ2+F,EAAQv9F,EAAMy9F,GAIlD,IAHA,IAAIC,EAAS19F,EAAK09F,OACdb,EAAW78F,EAAK68F,SAChBc,GAAc,EACTl4L,EAAI,EAAGA,EAAI7D,EAAMhE,QAAU+/L,EAAal4L,IAAK,CACpD,IAAIo6B,EAAIj+B,EAAM6D,GACd,GAAIg4L,EAAiB59J,EAAEvX,IAAKs2E,IAAW/+D,EAAE4yC,KAAO8qH,IAAW19J,EAAEg9J,WAAaA,GAAW,CACnFc,GAAc,EACd,KACF,CAAWF,EAAiB7+F,EAAQ/+D,EAAEvX,MAAQuX,EAAE4yC,KAAO8qH,IAAWV,IAAah9J,EAAEg9J,YAC/Ej7L,EAAMq7D,OAAOx3D,EAAG,GAChBA,IAEJ,CACA,GAAIk4L,EAAa,CACf,IAAIC,EAAaF,GAAqB,IAAX9+F,EAC3Bh9F,EAAMzD,KAAK,CACTmqB,IAAKs2E,EACLnsB,IAAKmrH,EAAa,EAAIL,EACtBV,UAAUe,GAAqBf,GAEnC,CACF,CACA,SAASgB,EAAWh+J,GAClB,OAAOw7D,EAAUx7D,IAAMz/B,KAAKD,IAAI0/B,GAAKg1D,CACvC,CACA,SAASggC,EAAYr0C,EAAIoiD,GACvB,OAAOpiD,GAAMoiD,CACf,CACA,SAAS7N,EAAev0C,EAAIoiD,GAC1B,OAAOpiD,GAAMoiD,CACf,CAqBA,SAASk7D,EAAkB3jI,EAAIjzC,EAAKD,GAClC,YAAY,IAARC,QAA0B,IAARD,IACpBC,EAAMizC,EAAG8tD,IAAI/gG,KACbD,EAAMkzC,EAAG8tD,IAAIhhG,GAIjB,CACA,SAASg1K,EAAsB5nJ,EAAO8lB,GACpC,IAAKA,IAAOA,EAAG+xG,iBAAkB,OAAO73H,EACxC,IAAIntB,EAAMmtB,EAAM,GACZptB,EAAMotB,EAAM,GACZk4H,EAAUpyG,EAAG+xG,iBAAiBK,QAClC,QAAgB,IAAZA,EAAoB,CACtB,IAAIwxB,EAAO5jI,EAAG8tD,IAAI/gG,GACd82K,EAAO7jI,EAAG8tD,IAAIhhG,GACbwlH,EAAI90C,oBAAoB40E,KAAUA,EAAU,CAACA,IAClD,IAAK,IAAI/sK,EAAI,EAAGA,EAAI+sK,EAAQ3uK,OAAQ4B,IAAK,CACvC,IAAIqgC,EAAIs6B,EAAG8tD,IAAIskD,EAAQ/sK,IACnBu+L,GAAQl+J,IACVk+J,EAAOl+J,EACP3Y,EAAM2Y,GAEJm+J,GAAQn+J,IACVm+J,EAAOn+J,EACP5Y,EAAM4Y,EAEV,CACF,CAGA,OAFA3Y,EAjDF,SAAkC2Y,EAAGs6B,GACnC,IAAI+xG,EAAmB/xG,EAAG+xG,iBAC1B,OAAIA,QAAoD,IAAhCA,EAAiBC,YAAyB2xB,EAAkB3jI,EAAI+xG,EAAiBC,WAAYD,EAAiBE,YAC7HF,EAAiBC,WAEtBD,QAAiD,IAA7BA,EAAiBG,SAAsByxB,EAAkB3jI,EAAI+xG,EAAiBG,QAASH,EAAiBI,SACvHlsK,KAAK6mB,IAAI4Y,EAAGs6B,EAAG8tD,IAAIikD,EAAiBG,UAEtCxsI,CACT,CAwCQo+J,CAAyB/2K,EAAKizC,GACpClzC,EAxCF,SAAkC4Y,EAAGs6B,GACnC,IAAI+xG,EAAmB/xG,EAAG+xG,iBAC1B,OAAIA,QAAoD,IAAhCA,EAAiBE,YAAyB0xB,EAAkB3jI,EAAI+xG,EAAiBC,WAAYD,EAAiBE,YAC7HF,EAAiBE,WAEtBF,QAAiD,IAA7BA,EAAiBI,SAAsBwxB,EAAkB3jI,EAAI+xG,EAAiBG,QAASH,EAAiBI,SACvHlsK,KAAK8mB,IAAI2Y,EAAGs6B,EAAG8tD,IAAIikD,EAAiBI,UAEtCzsI,CACT,CA+BQq+J,CAAyBj3K,EAAKkzC,GAC7B,CAACjzC,EAAKD,EACf,CAtbAoY,EAAOluB,QAAU,CACf8qL,wBACA3B,eACAG,YACA0D,YA2OF,SAAqB55E,EAAIpqD,EAAIikI,GAE3B,GADAjkI,EAAGu8F,WACCv8F,EAAG8xG,UAAW,CAChB9xG,EAAG9lB,MAAQ+pJ,EAAcA,EAAY58L,QAAU84L,EAAa/1E,EAAIpqD,GAChEA,EAAGqnC,GAAKrnC,EAAG9lB,MAAM7yC,QACjB24D,EAAGkkI,IAAM5xD,EAAI3J,UAAU3oE,EAAGqnC,GAAIrnC,EAAGg8F,KACjC,IAAImoC,EAAOnkI,EAAGy9E,OACV5hC,EAAQ,CAAC,EACbA,EAAM77C,EAAG+jF,MAAQ,UAAY/jF,EAAG9lB,MAChC2hE,EAAM77C,EAAG+jF,MAAQ,cAAgB/jF,EAAG8xG,UACpC17C,EAASlpH,KAAK,sBAAuBk9G,EAAG98C,OAAQ88C,EAAGonB,YAAY4c,QAASvyC,GACxEsoF,EAAKjqJ,MAAQ8lB,EAAG9lB,MAAM7yC,QACtB88L,EAAKryB,UAAY9xG,EAAG8xG,SACtB,CACA,IAAItpB,EAAWxoF,EAAG0oF,YAClB,GAAIF,GAAYA,EAAS47C,YAAa,CACpC,IAAIC,EAAe77C,EAAS47C,YAAYpkI,EAAG+7F,OACvCsoC,GAC6B,SAA3BA,EAAahyB,YACfgyB,EAAanqJ,MAAQimJ,EAAa/1E,EAAIpqD,IAG1CwoF,EAAS/K,OAAO2mD,YAAYpkI,EAAG+7F,OAASzpB,EAAInkC,WAAW,CAAC,EAAGk2F,EAC7D,CACF,EAlQEC,aAmQF,SAAsBtkI,EAAIjgB,EAAM8lD,GACzBA,IAAMA,EAAO,CAAC,GACd7lC,EAAGm6H,IAAIn6H,EAAGu8F,WACf,IAQIl3J,EAAGqgC,EAAGwoC,EAAIq2H,EAAMC,EAAMC,EAAWC,EAAYC,EAAMC,EARnDlE,EAAW,GACXC,EAAW,GACXxqL,EAAM4pC,EAAKt8C,OACXi/L,EAAW78F,EAAKg/F,SAAU,EAC1BtB,EAAS19F,EAAK09F,SAAuB,WAAZvjI,EAAG93D,MAAiC,MAAZ83D,EAAG93D,MACpD2vK,EAAoB,QAAZ73G,EAAG93D,KACX48L,GAAiB,EACjBC,EAAiBl/F,EAAKk/F,iBAAkB,EAE5C,SAASC,EAAgB5xK,GACvB,GAAInmB,MAAMiI,QAAQke,GAEhB,OADA0xK,GAAiB,EACV,SAAS5jJ,GACd,OAAOj7C,KAAK6mB,IAAI8B,OAAOwE,EAAK8tB,IAAO,GAAI,EACzC,EAEA,IAAIw3D,EAAKzyG,KAAK6mB,IAAI8B,OAAOwE,GAAQ,GAAI,GACrC,OAAO,WACL,OAAOslF,CACT,CAEJ,CACA,IAAIusF,EAAWD,GAAiBhlI,EAAGm6H,GAAK,EAAIt0F,EAAKo/F,SAAWp/F,EAAKq/F,YAAcr/F,EAAKs/F,MAAQ,GACxFD,EAAYF,GAAiBhlI,EAAGm6H,GAAK,EAAIt0F,EAAKq/F,UAAYr/F,EAAKo/F,WAAap/F,EAAKs/F,MAAQ,GACzFC,EAAWJ,EAAgBn/F,EAAKu/F,UAAYv/F,EAAKw/F,MACjDC,EAAYN,EAAgBn/F,EAAKy/F,WAAaz/F,EAAKw/F,MACvD,IAAKP,EAAgB,CAGnB,GAFAH,EAAOvqJ,IACPwqJ,GAAO,IACH/sB,EACF,IAAKxyK,EAAI,EAAGA,EAAI8Q,EAAK9Q,KACnBqgC,EAAIqa,EAAK16C,IACDs/L,GAAQj/J,EAAI,IAAGi/J,EAAOj/J,GAC1BA,EAAIk/J,GAAQl/J,EAAIg1D,IAASkqG,EAAOl/J,QAGtC,IAAKrgC,EAAI,EAAGA,EAAI8Q,EAAK9Q,KACnBqgC,EAAIqa,EAAK16C,IACDs/L,GAAQj/J,GAAKg1D,IAASiqG,EAAOj/J,GACjCA,EAAIk/J,GAAQl/J,EAAIg1D,IAASkqG,EAAOl/J,GAGxCqa,EAAO,CAAC4kJ,EAAMC,GACdzuL,EAAM,CACR,CACA,IAAIovL,EAAe,CAAEhC,SAAQb,YAC7B,SAAS8C,EAAQtkJ,GACfgtB,EAAKnuB,EAAKmB,GACLggD,EAAUhzB,KACfu2H,EAAYQ,EAAS/jJ,GACrBwjJ,EAAaQ,EAAUhkJ,GACnB6jJ,GACFR,EAAOvkI,EAAG26H,IAAIzsH,GAAMo3H,EAAUpkJ,GAC9BsjJ,EAAOxkI,EAAG26H,IAAIzsH,GAAMk3H,EAASlkJ,KAE7ByjJ,EAAOz2H,EAAKo3H,EAAUpkJ,GACtB0jJ,EAAO12H,EAAKk3H,EAASlkJ,GACjB22H,GAAS8sB,EAAOC,EAAO,KAAID,EAAOC,EAAO,IAC7CL,EAAOvkI,EAAG26H,IAAIgK,GACdH,EAAOxkI,EAAG26H,IAAIiK,IAEZrB,IACFgB,EAAOt+L,KAAK8mB,IAAI,EAAGw3K,GACnBC,EAAOv+L,KAAK6mB,IAAI,EAAG03K,IAEjBd,EAAWa,IACb1B,EAAiBnC,EAAU6D,EAAMG,EAAYa,GAE3C7B,EAAWc,IACb1B,EAAiBnC,EAAU6D,EAAMC,EAAWc,GAEhD,CACA,IAAIE,EAAOx/L,KAAK8mB,IAAI,EAAG5W,GACvB,IAAK9Q,EAAI,EAAGA,EAAIogM,EAAMpgM,IAAKmgM,EAAQngM,GACnC,IAAKA,EAAI8Q,EAAM,EAAG9Q,GAAKogM,EAAMpgM,IAAKmgM,EAAQngM,GAC1C,MAAO,CACL0nB,IAAK2zK,EACL5zK,IAAK6zK,EACL96F,OAEJ,EArVE46F,iBAibJ,IAIEiF,GAAep0J,EAAW,CAC5B,8BAA8Bt6B,EAASkuB,GAErC,IAAIkQ,EAAKD,IACL+rD,EAAY7G,IACZg6F,EAAQ9uC,KACRnvB,EAAWxE,KACX0gB,EAAMtN,KACN0L,EAAe4B,EAAI5B,aACnBozC,EAAevgB,KACfoiC,EAASvR,KACTn9E,EAAStC,IACT2/E,EAAU1Q,KACVgiB,EAAU/0B,KACVsH,EAAaR,KACbnnE,EAAYhW,IACZI,EAAa4V,EAAU5V,WACvBC,EAAa2V,EAAU3V,WACvBC,EAAa0V,EAAU1V,WACvBC,EAAgByV,EAAUzV,cAC1BC,EAAgBwV,EAAUxV,cAC1BC,EAAgBuV,EAAUvV,cAC1BC,EAAcsV,EAAUtV,YACxBC,EAAcqV,EAAUrV,YACxBC,EAAcoV,EAAUpV,YACxBC,EAAUmV,EAAUnV,QACpBC,EAASkV,EAAUlV,OACnBuqG,EAAUvqG,EAAS,EACnBC,EAAUiV,EAAUjV,QACpBC,EAASgV,EAAUhV,OACnBC,EAAS+U,EAAU/U,OACnBC,EAAW8U,EAAU9U,SACrBC,EAAc6U,EAAU7U,YACxBI,EAAayU,EAAUzU,WACvBtB,EAAS+V,EAAU/V,OACnBqrG,EAAY,CAAEC,EAAG,YACjBC,EAAY,CAAED,EAAG,WAAY17J,EAAG,QAChC47J,EAAiB,CAAEF,EAAG,iBAAkB17J,EAAG,QAC3C67J,EAAY,CAAEH,EAAG,OAAQ17J,EAAG,QAC5B87J,EAAY,CAAEJ,EAAG,OAAQ17J,EAAG,QAC5B+7J,EAAiB,CACnBlsL,MAAO,CAAC,IAAK,IAAK,IAAK,KAAM,MAC7BC,OAAQ,CAAC,IAAK,IAAK,IAAK,KAAM,MAC9BujB,MAAO,CAAC,IAAK,MACbE,KAAM,CAAC,IAAK,MACZH,IAAK,CAAC,IAAK,MACXE,OAAQ,CAAC,IAAK,OAEZ0oK,EAAqBvjC,KACrBO,EAAYgjC,EAAmBhjC,UAC/BD,EAAYijC,EAAmBjjC,UAC/BD,EAAekjC,EAAmBljC,aAClCG,EAAgB+iC,EAAmB/iC,cAEnCgjC,EAAOphK,EAAOluB,QAAU,CAAC,EAC7BsvL,EAAKC,WAAarN,KAClB,IAAIsN,EAAWpH,KACXjG,EAAUp5C,KACVsB,EAAS83C,EAAQ93C,OACjBK,EAAWy3C,EAAQz3C,SACvB4kD,EAAKpmD,QAAUi5C,EAAQj5C,QACvBomD,EAAKlmD,QAAU+4C,EAAQ/4C,QACvBkmD,EAAKjmD,QAAU84C,EAAQ94C,QACvBimD,EAAK/wJ,KAAO4jJ,EAAQ5jJ,KACpB+wJ,EAAK3lD,QAAUw4C,EAAQx4C,QACvB2lD,EAAKplD,UAAYi4C,EAAQj4C,UACzBolD,EAAKnlD,aAAeg4C,EAAQh4C,aAC5B,IAAI2wB,GAAYmuB,KAIhB,SAASwG,GAAYvsJ,GACnB,IAAIwqF,EAFQ,MAECxqF,EAAM,GAAKA,EAAM,IAC9B,MAAO,CACLA,EAAM,GAAKwqF,EACXxqF,EAAM,GAAKwqF,EAEf,CATA4hE,EAAKnG,aAAeruB,GAAUquB,aAC9BmG,EAAKhC,aAAexyB,GAAUwyB,aAS9BgC,EAAKI,UAAY,SAASjtF,EAAaC,EAAc0Q,EAAI9pE,EAAMuuD,EAAM83F,GACnE,IAAIrmD,EAAWhgG,EAAK5yB,OAAO4yB,EAAK78C,OAAS,GACrCmjM,EAASx8E,EAAGonB,YAAYqP,UAAUP,EAAW,QAC7CumD,EAAUvmJ,EAAO,MACjBwmJ,EAAU,CAAC,EAWf,OAVKj4F,IAAMA,EAAO+3F,EAAO,KAA8B,kBAAhBD,EAA2BA,EAAcA,EAAY,KACvFA,IAAaA,EAAc93F,GAChC+3F,EAASA,EAAO54L,OAAO44L,EAAOl6L,KAAI,SAASlB,GACzC,OAAOA,EAAI,SACb,KACAs7L,EAAQD,GAAW,CACjBl4F,QAAS,aACT7gF,OAAQ84K,EAAO54L,OAAO24L,EAAqC,kBAAhBA,EAA2B,CAACA,GAAeA,EAAc,IACpG93F,QAEKyjC,EAAI94B,OAAOC,EAAaC,EAAcotF,EAASD,EACxD,EACAP,EAAKS,WAAa,SAASniI,GACzB,YAAW,IAAPA,EACKA,EAEE,UAAPA,EACK,QAEE,UAAPA,EACK,QAEL,aAAan6C,KAAKm6C,GACb,SAEA,OAEX,EACA0hI,EAAKU,eAAiB,SAASttF,EAAc0Q,EAAI5Q,EAAQytF,EAAO3mJ,EAAMuuD,GACpE,IAAI2sF,EAAUp7F,EAEd,GAAkB,UADFkmG,EAAKS,WAAWE,GAE9BzL,EAAWlpD,EAAI5K,aACftnC,EAAMoZ,EAAOl5D,EAAMuuD,OACd,CACL,IAAI7uC,EAAKsmI,EAAKplD,UAAU92B,EAAI68E,GAE5B7mG,EAAMoZ,EAAOl5D,EADbuuD,EAAO7uC,EAAG07H,WAAW7sF,IAErB2sF,EAAWx7H,EAAGw7H,QAChB,CACA9hF,EAAap5D,GAAQk7I,EAASp7F,EAChC,EACAkmG,EAAKY,cAAgB,SAAS9mG,EAAKgqB,EAAI68E,GAErC,OADyB,UAAVA,GAA+B,UAAVA,EAAoB30D,EAAI5K,aAAe4+D,EAAKplD,UAAU92B,EAAI68E,GAAOzL,UACrFp7F,EAClB,EACAkmG,EAAKa,iBAAmB,SAAS/8E,EAAI81E,GACnCA,EAAQA,GAAgBoG,EAAK3lD,QAAQv2B,GACrC,IAAIsxB,EAAatxB,EAAGonB,YACpB,SAAS41D,EAAe/kC,EAAYglC,EAAYC,EAAWC,GAGzD,IAFA,IAAIztJ,EAASs8E,EAASJ,mBAAmBqsC,EAAYglC,GACjD7qB,EAAQ,CAAC,EACJn3K,EAAI,EAAGA,EAAI66L,EAAMz8L,OAAQ4B,IAGhC,IAFA,IACIu8F,EADK85C,EAAW4qD,EAAKpmD,QAAQggD,EAAM76L,KACtBiiM,GACRh8L,EAAI,EAAGA,EAAIs2F,EAAQn+F,OAAQ6H,IAAK,CACvC,IAAIgxH,EAAM16B,EAAQt2F,GAClB,IAAKkxK,EAAMlgD,KACTxiF,EAAOswE,EAAIkS,GACXkgD,EAAMlgD,GAAO,EACTirE,GAAc,MAEtB,CAEJ,CACAH,EAAe,cAAe,UAAW,eACzCA,EAAe,SAAU,UAAW,iBACpCA,EAAe,SAAU,OAAQ,eAAe,GAChDA,EAAe,aAAc,UAAW,oBAC1C,EACA,IAAII,GAAqBlB,EAAKkB,mBAAqB,SAASp9E,EAAI3K,EAAOn2F,EAAQm+K,GAC7E,IAAIznI,EACA0nI,EAAuB,MAAXp+K,GAA6B,MAAXA,GAA6B,MAAXA,EAAiBA,EAASm+K,EAC9E,GAAIn1D,EAAI90C,oBAAoBkqG,IAQ1B,GAPA1nI,EAAK,CACH93D,KAAMs+L,EAASiB,OAAa,EAAQ,CAClCt2E,gBAAiB/G,EAAGonB,YAAYrgB,kBAElCouC,YAAa,IAEf+mC,EAAKC,WAAWvmI,GACA,aAAZA,EAAG93D,KACL,IAAK,IAAI7C,EAAI,EAAGA,EAAIoiM,EAAYhkM,OAAQ4B,IACtC26D,EAAG+6H,IAAI0M,EAAYpiM,SAIvB26D,EAAKsmI,EAAKnlD,aAAa/2B,EAAI3K,EAAOioF,GAEpC,OAAI1nI,EAAW,CAAE+6H,IAAK/6H,EAAG+6H,IAAKE,IAAKj7H,EAAGi7H,KACpB,QAAdyM,EAA4B,CAAE3M,IAAKpqL,GAAUsqL,IAAKtqL,IAC/C,CAAEoqL,IAAK4M,GAAO1M,IAAK0M,GAC5B,EACA,SAASA,GAAMjiK,GACb,OAAQA,CACV,CACA,SAAS/0B,GAAS+0B,GAChB,OAAOv/B,OAAOu/B,EAChB,CA6PA,SAASkiK,GAAWC,EAAQC,GAC1B,OAAO7hM,KAAKD,KAAK6hM,EAASC,EAAU,IAAO,EAAI,IAAO,IACxD,CACA,SAASC,GAAQt5K,EAAG4H,GAClB,OAAOpwB,KAAKD,IAAIyoB,EAAI4H,EAAI,GAAK,IAC/B,CAmCA,SAAS2xK,GAAQ/2B,GACf,OAAQA,EAAMrjJ,UAAU,EAC1B,CAyXA,SAASq6K,GAAkBjoI,EAAIkoI,GAM7B,OALIloI,EAAG2yG,cACLu1B,EAAWA,EAASz4K,QAAO,SAASpY,GAClC,OAAO2oD,EAAGu9H,WAAWlmL,EAAE7L,KAAOivF,CAChC,KAEKytG,CACT,CACA,SAASC,GAAUnoI,GACjB,IAAIooI,EAAWpoI,EAAGyoF,UACdy/C,EAAW,GACf,GAAIE,EAASlG,MACX,IAAK,IAAI78L,EAAI,EAAGA,EAAI+iM,EAASlG,MAAMz+L,OAAQ4B,IACzC,IAAI+iM,EAASlG,MAAM78L,GAAGgjM,OAAtB,CAGA,IAAIjoG,EAAMgoG,EAASlO,IAAIkO,EAASlG,MAAM78L,GAAGmG,GACrC8mJ,EAAOtyF,EAAGo6H,IAAIh6F,GACdprF,EAAMsxL,EAAKgC,SAAStoI,EAAIsyF,GACxB81C,EAASlG,MAAM78L,GAAG+rK,QACpBp8J,EAAIo8J,OAAQ,EACZp8J,EAAIqI,KAAO,IAEb6qL,EAASlkM,KAAKgR,EARd,CAYJ,OADAkzL,EAAWD,GAAkBjoI,EAAIkoI,EAEnC,CACA,SAASK,GAAWvoI,EAAIwoI,GACtB,IACIC,EAAQhC,GADFn0D,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,MAEjC0sC,EAAUziM,KAAK8mB,IAAI07K,EAAM,GAAIA,EAAM,IACnCE,EAAU1iM,KAAK6mB,IAAI27K,EAAM,GAAIA,EAAM,IACnCG,EAAwB,aAAZ5oI,EAAG93D,KAAsB83D,EAAGy7H,UAAYz7H,EAAG8tD,IAC3C,QAAZ9tD,EAAG93D,MAAiD,MAA/B/B,OAAO65D,EAAGixG,OAAOvjJ,OAAO,KAC/CsyC,EAAGixG,MAAQ,IAAMhrK,KAAK4jD,IAAI,GAAI5jD,KAAK2/B,MAAM3/B,KAAK8mB,IAAIizC,EAAG9lB,MAAM,GAAI8lB,EAAG9lB,MAAM,KAAO,IAGjF,IADA,IAAIguJ,EAAW,GACN9vB,EAAU,EAAGA,GAAW,EAAGA,IAClC,SAAkB,IAAdowB,KAAyBA,GAAapwB,IAAyB,IAAdowB,IAAwBpwB,OACzEA,GAAYp4G,EAAGoxG,OAAnB,CACA,IAAI/1C,EAAQ+8C,EAAwBp4G,EAAGoxG,MAAMC,SAAvBrxG,EAAGqxG,SACrBh0J,EAAQ+6J,EAAwB,GAAdp4G,EAAG+yG,SACzB,GAAK13C,EAAL,CACKiX,EAAI90C,oBAAoBngF,KAAOA,EAAO,IAC3C,IAAK,IAAIhY,EAAI,EAAGA,EAAIg2H,EAAK53H,OAAQ4B,IAAK,CACpC,IAAIitJ,EAAOs2C,EAAUvtE,EAAKh2H,IAC1B,GAAIitJ,EAAOo2C,GAAWp2C,EAAOq2C,EAAS,CACpC,IAAI3zL,EAAMsxL,EAAKgC,SAAStoI,EAAIsyF,GAAM,EAAOnsJ,OAAOkX,EAAKhY,KACjD+yK,IACFpjK,EAAIo8J,OAAQ,EACZp8J,EAAIqI,KAAO,IAEb6qL,EAASlkM,KAAKgR,EAChB,CACF,CAZmB,CAHe,CAkBpC,OADAkzL,EAAWD,GAAkBjoI,EAAIkoI,EAEnC,CA3tBA5B,EAAKuC,mBAAqB,SAASz+E,EAAI3K,EAAOn2F,EAAQm+K,GACpD,OAAOD,GAAmBp9E,EAAI3K,EAAOn2F,EAAQm+K,GAAa1M,GAC5D,EACAuL,EAAKwC,cAAgB,SAAStkK,GAC5B,IAAI87G,EAAW97G,EAAG9W,OAAO,GACzB,MAAiB,MAAb4yH,EAAyB,IACZ,MAAbA,EAAyB,SAA7B,CACF,EACAgmD,EAAKyC,SAAW,SAAS/oI,EAAIgpI,EAASC,EAAUC,IACiB,IAA3D,CAAC,MAAO,WAAY,iBAAiBpiM,QAAQk5D,EAAG93D,OAAiBghM,OAEzC,IAAjBlpI,EAAGk/H,WACZl/H,EAAGk/H,UAAY8J,EACfhpI,EAAGm/H,YAAc8J,GACRjpI,EAAGk/H,aACPl/H,EAAGk/H,UAAY8J,EAAU,MAAQ,EAAI,QAGxCC,EAAWjpI,EAAGm/H,aAAe6J,EAAU,EAAI,UAAY,EAAI,MAC3DhpI,EAAGk/H,UAAY8J,EACfhpI,EAAGm/H,YAAc8J,KACPD,EAAUhpI,EAAGk/H,UAAY,MAAQ,EAAI,QAG/C+J,EAAWjpI,EAAGm/H,aAAen/H,EAAGk/H,UAAY,EAAI,UAAY,EAAI,QAChEl/H,EAAGk/H,UAAY,IAfjBl/H,EAAGk/H,UAAY,CAkBnB,EACAoH,EAAK6C,iBAAmB,SAAS/+E,EAAIg/E,GAGnC,IAFA,IAAIl5C,EAASo2C,EAAK/wJ,KAAK60E,EAAI,IAAI,GAC3Bi/E,GAAoB,EACfhkM,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CACtC,IAAI26D,EAAKkwF,EAAO7qJ,GACZikM,OAA8B,IAAtBtpI,EAAGupI,qBAAmD,IAAtBvpI,EAAGwpI,eAC3CC,EAAaH,GAAUtpI,EAAG9lB,MAAM,KAAO8lB,EAAGupI,gBAAkBvpI,EAAG9lB,MAAM,KAAO8lB,EAAGwpI,eAC/EE,EAAa1pI,EAAG8xG,WAChBw3B,IAAwB,IAAfI,GAAuBN,GAAaK,KAC/CzpI,EAAGupI,eAAgC,QAAfG,GAAuC,iBAAfA,OAAgC,EAAS1pI,EAAG9lB,MAAM,GAC9F8lB,EAAGwpI,eAAgC,QAAfE,GAAuC,iBAAfA,OAAgC,EAAS1pI,EAAG9lB,MAAM,GAC9F8lB,EAAG2pI,kBAAoBD,EACvBL,GAAoB,EAExB,CACA,OAAOA,CACT,EACA/C,EAAKsD,qBAAuB,SAASx/E,EAAIg/E,GAIvC,IAHA,IAAIl5C,EAASo2C,EAAK/wJ,KAAK60E,EAAI,IAAI,GAC3Bi/E,GAAoB,EACpBQ,EAAmB,KACdxkM,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CACtC,IAAI26D,EAAKkwF,EAAO7qJ,GACZikM,OAAiC,IAAzBtpI,EAAG8pI,kBACXL,EAAaH,KAAWtpI,EAAG2zG,aAAe3zG,EAAG+pI,cAC7CT,GAASF,GAAaK,KACxBzpI,EAAG8pI,kBAAoB9pI,EAAG2zG,WAC1B01B,GAAoB,GAEG,OAArBQ,GAA8B7pI,EAAG2zG,aACnCk2B,EAAmB,MAEvB,CAEA,OADAz/E,EAAGonB,YAAYw4D,wBAA0BH,EAClCR,CACT,EACA/C,EAAK2D,QAAU,SAASlqJ,EAAMigB,EAAIkqI,EAAOC,EAAM1zE,EAAUprH,GACvD,IAWI++L,EAXAC,EAAU/3D,EAAI7V,QAAQx2H,KAAK8mB,IAAK,KAAMgzB,GACtCuqJ,EAAUh4D,EAAI7V,QAAQx2H,KAAK6mB,IAAK,KAAMizB,GAC1C,GAAgB,aAAZigB,EAAG93D,MAAmC,kBAAZ83D,EAAG93D,KAC/B,MAAO,CACLgiB,MAAOmgL,EAAU,GACjBjjM,IAAKkjM,EAAU,GACfj/L,KAAMpF,KAAK6mB,IAAI,EAAG7mB,KAAK+b,MAAM3W,IAAS,GACtCk/L,UAAWD,EAAUD,GAmBzB,GAhBK5zE,IAAUA,EAAWz2D,EAAGy2D,UAG3B2zE,EADc,QAAZpqI,EAAG93D,KACK,CACRA,KAAM,SACNgyC,MAAO,CAACmwJ,EAASC,IAGT,CACRpiM,KAAM83D,EAAG93D,KACTgyC,MAAOo4F,EAAI3J,UAAU,CAAC0hE,EAASC,GAAUtqI,EAAGk7H,IAAK,EAAGzkE,GACpDA,YAGJ6vE,EAAKC,WAAW6D,GAChB/+L,EAAOA,GAAQ8sK,EAAWlH,MAAM5lK,EAAM++L,EAAQliM,MAE5CkiM,EAAQn5B,MAAQ5lK,EAChB++L,EAAQrzE,MAAQohD,EAAWphD,WAAM,EAAQqzE,EAAQliM,KAAMuuH,OAClD,CACL,IAAI+zE,EACJ,GAAIN,EAAOM,GAASF,EAAUD,GAAWH,MACpC,CACH,IAAIO,EAAen4D,EAAInX,aAAap7E,GAChC2qJ,EAAQzkM,KAAK4jD,IAAI,GAAI5jD,KAAK2/B,MAC5B3/B,KAAK2hD,IAAI6iJ,EAAalvE,SAAWt1H,KAAKq0E,OAEpCqwH,EAAUD,EAAQp4D,EAAI5W,QACxB+uE,EAAalvE,QAAUmvE,EACvB,CAAC,GAAK,IAAK,IAAK,MAChB,GAEFF,EAAQvkM,KAAK6mB,IAAI69K,EAAS,EAAIr4D,EAAIzV,MAAM98E,GAAQ95C,KAAK4jD,IAAI9J,EAAKt8C,OAAQ0mM,EAAO,IAAO,KAC/EjpG,EAAUspG,KAAQA,EAAQ,EACjC,CACAlE,EAAKsE,UAAUR,EAASI,EAC1B,CACA,IAOIK,EAPAC,EAAYV,EAAQn5B,MACpB85B,EAAWzE,EAAK0E,cAClB1E,EAAK2E,UAAUb,GACfU,EACA,UACAr0E,GAGF,GAAyB,kBAAdq0E,EACTC,EAqBJ,SAA8BA,EAAUhrJ,EAAMigB,EAAIqqI,EAASC,GACzD,IAAIY,EAAY,EACZC,EAAW,EACXC,EAAW,EACXhxE,EAAa,EACjB,SAASixE,EAAS3lK,GAChB,OAAQ,EAAqB,KAAhBA,EAAIqlK,GAAkB/qI,EAAGixG,OAAS,IAAM,CACvD,CACA,IAAK,IAAI5rK,EAAI,EAAGA,EAAI06C,EAAKt8C,OAAQ4B,IAC3B06C,EAAK16C,GAAK,IAAM,EAAG+lM,IACblqG,EAAUnhD,EAAK16C,KAAK+0H,IAC1BixE,EAAStrJ,EAAK16C,KAAK6lM,IACnBG,EAAStrJ,EAAK16C,GAAK26D,EAAGixG,MAAQ,IAAIk6B,IAExC,IAAI9wE,EAAYt6E,EAAKt8C,OAAS22H,EAC9B,GAAIgxE,IAAa/wE,GAAyB,SAAZr6D,EAAG93D,KAC3B83D,EAAGixG,MAAQ,EACb85B,EAAWV,EAAU,GAAMrqI,EAAGixG,OAE9B85B,GAAY,IACG/qI,EAAGixG,MAAQo5B,IAASU,GAAY/qI,EAAGixG,YAE/C,GAAIk6B,EAAuB,GAAZ9wE,IAChB6wE,EAAwB,GAAZ7wE,GAAmBgxE,EAAShB,IAAYgB,EAASf,IAAU,CACzE,IAAIgB,EAAWtrI,EAAGixG,MAAQ,EAC1B85B,GAAYA,EAAWO,EAAWjB,EAAUiB,GAAYA,CAC1D,CAEF,OAAOP,CACT,CAlDeQ,CAAqBR,EAAUhrJ,EAAMqqJ,EAASC,EAASC,GAElEO,EAASE,GADE,EAAI9kM,KAAK2/B,OAAO0kK,EAAUS,GAAYD,IAClBA,OAO/B,IALgC,MAA5BV,EAAQn5B,MAAMvjJ,OAAO,KACvBq9K,EA8CN,SAA4BA,EAAUhrJ,EAAMkxH,EAAOo5B,EAAS5zE,GAC1D,IAAI+0E,EAAQl5D,EAAItY,eAAej6E,EAAM02E,GACjC/5C,EAAY,GAChB,GAAI8uH,EAAMrxE,UAAYz9C,EAAW,CAC/B,IAAI+uH,EAAY78K,OAAOqiJ,EAAM/pK,OAAO,IAChCskM,EAAMvxE,WAAav9C,GAAa+uH,EAAY,KAAO,EACrDV,EAAWzE,EAAK0E,cAAcD,EAAU,KAAM,WAAsB,IAATzvG,EAClDkwG,EAAMtxE,YAAcx9C,EAC7BquH,EAAWzE,EAAK0E,cAAcD,EAAU,KAAM,WAAsB,KAATzvG,EAE3DyvG,GAAYlF,EAEd,IAAI6F,EAAepF,EAAK0E,cAAcD,EAAU95B,GAChD,GAAIy6B,GAAgBrB,EAAS,OAAOqB,CACtC,CACA,OAAOX,CACT,CA9DiBY,CAAmBZ,EAAUhrJ,EAAM+qJ,EAAWT,EAAS5zE,IAEpEo0E,EAASE,EAEFF,GAAUP,GACfO,EAASvE,EAAK0E,cAAcH,EAAQC,GAAW,EAAOr0E,GAI1D,MAAO,CACLvsG,MAAO81C,EAAGk7H,IAAI6P,EAAU,EAAGt0E,GAC3BrvH,IAAK44D,EAAGk7H,IAAI2P,EAAQ,EAAGp0E,GACvBprH,KAAMy/L,EACNP,UAAWD,EAAUD,EAEzB,EAgDA/D,EAAKsF,eAAiB,SAASC,EAAQ7rI,EAAI6lC,GACzC,IAAK7lC,EAAGoxG,MAAMH,MAAO,QACZ46B,EAAO56B,MACd,IACI66B,EADAC,EAAW/rI,EAAGixG,OAAS/vE,EAAUlhC,EAAGgsI,OAExC,GAAID,EAAU,CACZ,IAAIE,EAAQ3F,EAAK0E,cAAchrI,EAAGgsI,MAAOhsI,EAAGixG,OAAO,GACnD66B,EAAiB,CAAC9rI,EAAGgsI,MAAe,IAARC,EAA0B,IAAXjsI,EAAGgsI,MAChD,KAAO,CACL,IAAIvnF,EAAK6tB,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,KACpC8vC,EAAiB,CAACrnF,EAAG,GAAI,GAAMA,EAAG,GAAK,GAAMA,EAAG,GAClD,CAIA,GAHAonF,EAAO3xJ,MAAQo4F,EAAI3J,UAAUmjE,EAAgB9rI,EAAGm7H,KAChD0Q,EAAOK,UAAW,EAClB5F,EAAK6F,UAAUN,EAAQhmG,GACnBkmG,EAAU,CACZ,IAAIK,EAAelrG,EAAUlhC,EAAGixG,OAC5Bo7B,EAAenrG,EAAU2qG,EAAO56B,OAChCq7B,EAAWF,EAAepsI,EAAGixG,OAASjxG,EAAGixG,MAAMrjJ,UAAU,GACzD2+K,EAAWF,EAAeR,EAAO56B,OAAS46B,EAAO56B,MAAMrjJ,UAAU,GACjEw+K,GAAgBC,EACbzE,GAAW0E,EAAUC,GAUfD,IAAa,EAAIjxG,GAAWkxG,IAAa,EAAIjxG,IACtDuwG,EAAO56B,MAAQ51E,GAVXixG,IAAa,EAAIjxG,GAAWkxG,IAAa,EAAIjxG,EAC/CuwG,EAAO56B,MAAQ51E,EACNixG,IAAajxG,IAAar7B,EAAGy9E,OAAO2zB,OAAS,CAAC,GAAGyB,OAEjDk1B,GAAQuE,EAAWC,EAAU,KACtCV,EAAO56B,MAAQq7B,EAAW,EAE1BT,EAAO56B,MAAQq7B,EAJfT,EAAO56B,MAAQ31E,EASqB,MAA/Bn1F,OAAO65D,EAAGixG,OAAOvjJ,OAAO,GAC7B2+K,EACFR,EAAO56B,MAAQ,KAEV22B,GAAW0E,EAAUC,GAEfD,GAAY,IAAmB,IAAbC,IAC3BV,EAAO56B,MAAQ,MAFf46B,EAAO56B,MAAQjxG,EAAGixG,MAKsB,MAAnC9qK,OAAO0lM,EAAO56B,OAAOvjJ,OAAO,GACF,MAA/BvnB,OAAO65D,EAAGixG,OAAOvjJ,OAAO,GACrBk6K,GAAW0E,EAAUC,KACxBV,EAAO56B,MAAQ82B,GAAQuE,EAAWC,EAAU,KAAOvsI,EAAGixG,MAAQ,EAAIjxG,EAAGixG,OAGvE46B,EAAO56B,MAAQ,KAES,OAAjB46B,EAAO56B,QAAmBjxG,EAAGixG,MAAQ,IAC9C46B,EAAO56B,MAAQ,EAEnB,CACA46B,EAAO3xJ,MAAQ8lB,EAAG9lB,KACpB,MAC4B,IAAxB8lB,EAAGoxG,MAAMo7B,aACXX,EAAO90E,MAAQ/2D,EAAG+2D,MAEtB,EAOAuvE,EAAK6F,UAAY,SAASnsI,EAAI6lC,GAC5B,IAAIw2F,EAAM/pD,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,SAAK,OAAQ,EAAQn2D,GAC1D,GAAoB,SAAhB7lC,EAAGkxG,WAAwBlxG,EAAGixG,MAAO,CACvC,IACIw7B,EADAC,EAAK1sI,EAAG6yG,OAEP65B,IACa,aAAZ1sI,EAAG93D,MAAmC,kBAAZ83D,EAAG93D,MAC/BukM,EAAQzsI,EAAGg0G,SAAW1hC,EAAIV,QAAQ5xE,EAAGg0G,SAAS3oK,MAAQ,IAAM,GAC5DqhM,EAAK1sI,EAAGukE,QAAUkoE,IAElBA,EAA6B,MAArBzsI,EAAGuoF,IAAI76H,OAAO,GAAa,GAAK,GACxCg/K,EAAKp6D,EAAI9J,UAAUxoE,EAAGukE,QAAUkoE,EAAO,EAAG,GAAK,GAEhC,eAAbzsI,EAAG+7F,QAAwB2wC,GAAM,IAEjC1sI,EAAGoxG,OAA+B,UAAtBpxG,EAAGoxG,MAAMF,UACL,UAAhBlxG,EAAGkxG,WAAsBw7B,GAAM,KAErC1sI,EAAG2sI,YAAc1mM,KAAKD,IAAIq2L,EAAI,GAAKA,EAAI,IAAMqQ,EAC7CpG,EAAKsE,UAAU5qI,EAAIA,EAAG2sI,aAClB3sI,EAAGk/H,UAAY,GAAKl/H,EAAGixG,MAAuB,EAAfjxG,EAAGk/H,YACpCl/H,EAAGixG,MAAQjxG,EAAGk/H,UACdl/H,EAAG+2D,MAAQ/2D,EAAGm7H,IAAIn7H,EAAGm/H,aAEzB,CACyB,WAArBn/H,EAAGizG,eAYT,SAA2BjzG,GACzB,IAAI4sI,EACJ,SAASC,IACP,QAAS3rG,EAAUlhC,EAAGixG,QAAiC,MAAvBjxG,EAAGixG,MAAMvjJ,OAAO,GAClD,CACA,IAAIo/K,EAAUD,IACVn4B,EAAa4xB,EAAKyG,cAAc/sI,GACpC,GAAI00G,EAAY,CACd,IAAIs4B,EAAUhtI,EAAGitI,aAAejtI,EAAGixG,MAC9B,aAAaxmJ,KAAKiqJ,KACjB,QAAQjqJ,KAAKiqJ,IACfk4B,EAAerxG,EACXyxG,IAAYF,GAAW9sI,EAAGixG,MAAQ11E,IAASv7B,EAAGixG,MAAQ11E,IACjD,KAAK9wE,KAAKiqJ,IACnBk4B,EAAe/G,EACXmH,IAAYF,GAAW9sI,EAAGixG,MAAQ40B,IAAS7lI,EAAGixG,MAAQ40B,IACjD,cAAcp7K,KAAKiqJ,IAC5Bk4B,EAAetxG,EACX0xG,IAAYF,GAAW9sI,EAAGixG,MAAQ31E,IAAQt7B,EAAGixG,MAAQ31E,IAChD,SAAS7wE,KAAKiqJ,IACvBk4B,EAAevxG,EACX2xG,IAAYF,GAAW9sI,EAAGixG,MAAQ51E,IAASr7B,EAAGixG,MAAQ51E,IACjD,SAAS5wE,KAAKiqJ,IACvBk4B,EAAezxG,EACX6xG,IAAYF,EAAU9E,GAAQhoI,EAAGixG,OAAS,EAAIjxG,EAAGixG,MAAQ71E,KAAcp7B,EAAGixG,MAAQ,OAC7E,OAAOxmJ,KAAKiqJ,IACrBk4B,EAAe5xG,EACXgyG,IAAYF,EAAU9E,GAAQhoI,EAAGixG,OAAS,EAAIjxG,EAAGixG,MAAQh2E,KAAgBj7B,EAAGixG,MAAQ,OAC/E,QAAQxmJ,KAAKiqJ,KACtBk4B,EAAe/xG,EACXmyG,IAAYF,EAAU9E,GAAQhoI,EAAGixG,OAAS,GAAKjxG,EAAGixG,MAAQn2E,KAAa96B,EAAGixG,MAAQ,QAG5F,EACA67B,EAAUD,MACK7sI,EAAG+2D,QAAU/2D,EAAGktI,YAC7BltI,EAAG+2D,MAAQ/2D,EAAGmtI,WAEhBntI,EAAGotI,cAAgBR,CACrB,CAlDIS,CAAkBrtI,GAEfA,EAAG+2D,QACN/2D,EAAG+2D,MAAoB,SAAZ/2D,EAAG93D,KAAkB,aAAe,GAEjC,SAAZ83D,EAAG93D,MAAmB83D,EAAGixG,MAAQ,KAAKjxG,EAAGixG,MAAQ,IACrDq8B,GAActtI,EAChB,EAoHAsmI,EAAKiH,UAAY,SAAmBvtI,EAAI6lC,GAkBtC,IAjBA,IA26EsC2nG,EAAQ94B,EAtvE1CrvK,EA4BAooM,EAjNAvlM,EAAO83D,EAAG93D,KACVuuH,EAAWz2D,EAAGy2D,SACdq8C,EAAgB9yG,EAAG8yG,cACnB46B,EAAgC,WAArB1tI,EAAGizG,cACd2rB,EAAa5+H,EAAG9lB,MAAM,GAAK8lB,EAAG9lB,MAAM,GACpCyzJ,GAAkB3tI,EAAGszG,gBAAkBhhC,EAAI90C,oBAAoBx9B,EAAGszG,gBAAkBtzG,EAAGszG,eAAiB,CAACtzG,EAAGszG,gBAC5G+oB,EAAM/pD,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,SAAK,OAAQ,EAAQn2D,GACtDy2F,EAAQD,EAAI,GAAKA,EAAI,GACrBuR,EAAW3nM,KAAK8mB,IAAIsvK,EAAI,GAAIA,EAAI,IAChCwR,EAAW5nM,KAAK6mB,IAAIuvK,EAAI,GAAIA,EAAI,IAChCyR,EAAW7nM,KAAK6mB,IAAI,IAAKkzC,EAAGukE,SAAW,GACvC2jE,EAAW,GACX6F,EAAa,GACbC,EAAW,GACXC,EAAgB,GAChBC,EAAmB,GACnBC,EAAWnuI,EAAGoxG,QAAUpxG,EAAGoxG,MAAMt3F,OAAS9Z,EAAGoxG,MAAMQ,UAC9Cw8B,EAAQ,EAAGA,IAAUD,EAAW,EAAI,GAAIC,IAAS,CACxD,IAAIh2B,GAAWg2B,EACXA,GACFpuI,EAAGitI,WAAajtI,EAAGixG,MACnBjxG,EAAGwsI,WAAaxsI,EAAG+2D,QAEnB/2D,EAAGoxG,MAAM67B,WAAajtI,EAAGoxG,MAAMH,MAC/BjxG,EAAGoxG,MAAMo7B,WAAaxsI,EAAGoxG,MAAMr6C,OAEjC,IAAI80E,EAASuC,EAAQpuI,EAAKsyE,EAAInkC,WAAW,CAAC,EAAGnuC,EAAIA,EAAGoxG,OAMpD,GALIgH,EACFkuB,EAAKsF,eAAeC,EAAQ7rI,EAAI6lC,GAEhCygG,EAAK6F,UAAUN,EAAQhmG,GAED,UAApBgmG,EAAO36B,SAUX,GAAwB,SAApB26B,EAAO36B,SAAX,CAKA,IAAIu3B,EAAQhC,GAAYpK,GACpBgS,EAAY5F,EAAM,GAClB6F,EAAU7F,EAAM,GAChB8F,EAAWrtG,EAAU2qG,EAAO56B,OAC5Bu9B,EAAkB,QAATtmM,KAAoBqmM,GAAuC,MAA3B1C,EAAO56B,MAAMvjJ,OAAO,IAC7D+6B,EAAK69I,EAAK2E,UAAUY,EAAQhmG,GAChC,GAAIuoG,EAAO,CAET,GADApuI,EAAGgsI,MAAQvjJ,EACPA,EAAK4lJ,IAAc/R,EAAO,MACjB,aAATp0L,GAAgC,kBAATA,IACzBomM,EAAUhS,EAAQr2L,KAAK6mB,KAAK,GAAKwhL,GAAWroM,KAAK8mB,IAAIizC,EAAGu/F,YAAY97J,OAAS,GAAK6qM,GAEtF,CACA,IAEIG,EAEEC,GAJFC,GAAQ,KACRnjM,GAAIi9C,EAEJ2lJ,IAEEG,EACFG,GAAS1uI,EAAGixG,MAEC,SAAT/oK,EACsB,kBAAb83D,EAAGixG,OAA6C,MAAvBjxG,EAAGixG,MAAMvjJ,OAAO,KAClDghL,GAASvzG,EAAcn7B,EAAGixG,MAAMrjJ,UAAU,IAG5C8gL,GAAS1uI,EAAG2sI,YAGhB8B,EAAUxoM,KAAK+b,OAAOg+C,EAAGg8F,IAAIxwJ,IAAKw0D,EAAGg8F,IAAIh8F,EAAG+2D,QAAU23E,IAAU,GAElE,IAAIz9B,GAAQ46B,EAAO56B,MAWnB,IAVI46B,EAAOl5B,aAAek5B,EAAOW,aAAeX,EAAO90E,QACrDvrH,GAAIojM,GAAiBpjM,GAAGw0D,GACnBs8H,IACH9wL,GAAI86L,EAAK0E,cAAcx/L,GAAGylK,IAAQqrB,EAAO7lE,KAGzC23E,GAASV,IACXliM,GAAI86L,EAAK0E,cAAcx/L,GAAGylK,IAAQqrB,EAAO7lE,GACzCg4E,KAEKnS,EAAQ9wL,IAAK8iM,EAAU9iM,IAAK8iM,EAAS9iM,GAAI86L,EAAK0E,cACnDx/L,GACAylK,GACAqrB,EACA7lE,GACC,CAED,GADI23E,GAAOK,IACP5C,EAAOl5B,cACJ2pB,EAAO,CACV,GAAI9wL,GAAI6iM,EAAW,SACnB,GAAIxC,EAAOtO,WAAW/xL,MAAOivF,GAAUm0G,GAAiBpjM,GAAGqgM,IAAWgC,EAAU,KAClF,CAEF,GAAIG,EAASvqM,OAASqqM,GAAYtiM,KAAMmjM,GAAO,MAC/CA,GAAQnjM,GACR,IAAIwJ,GAAM,CAAExO,MAAOgF,IACf4iM,GACEI,GAAUhjM,MAAW,EAAJA,MACnBwJ,GAAI65L,aAAc,GAEhB/7B,EAAgB,GAAK27B,EAAU37B,IACjC99J,GAAI85L,WAAY,GAElBd,EAAShqM,KAAKgR,MAEdA,GAAIo8J,OAAQ,EACZ68B,EAAcjqM,KAAKgR,IAEvB,CAvEA,MAHEg5L,EAAW,GACX9F,EAAWC,GAAUnoI,QAXjBouI,GACFJ,EAAW,GACX9F,EAAWK,GAAWvoI,GAAKo4G,KAE3B61B,EAAgB,GAChBF,EAAaxF,GAAWvoI,GAAKo4G,GAgFnC,CACA,IAAK61B,GAAiBA,EAAcxqM,OAAS,EAC3CkqM,GAAiB,MACZ,CACL,IAAIjkK,IAAQukK,EAAc,GAAGznM,MAAQynM,EAAc,GAAGznM,QAAUo4L,GAAc,EAAI,GAizE9C4O,EAhzEA9jK,GAgzEQgrI,EAhzEF10G,EAAG00G,YAizExC,KAAKjqJ,KAAKiqJ,GAAc84B,GAAU7xG,EAAc,KAAKlxE,KAAKiqJ,GAAc84B,GAAU9xG,EAAW,QAAQjxE,KAAKiqJ,GAAc84B,GAAU/xG,EAAS,KAAKhxE,KAAKiqJ,GAAc84B,GAAUhyG,EAAS,QAAQ/wE,KAAKiqJ,GAAc84B,GAAUjyG,EAAU,KAAK9wE,KAAKiqJ,GAAc84B,GAAU3H,EAAU,cAAcp7K,KAAKiqJ,GAAc84B,GAAUlyG,EAAS,SAAS7wE,KAAKiqJ,GAAc84B,GAAUnyG,EAAU,SAAS5wE,KAAKiqJ,GAAc84B,GAAUpyG,EAAc,OAAO3wE,KAAKiqJ,GAAc84B,GAAUvyG,GAAgB,QAAQxwE,KAAKiqJ,IAAc84B,GAAU1yG,KAhzErgB6yG,GAAiB,EAErB,CACA,GAAKA,EAEE,CACL,IAAIoB,GAAcf,EAAShgM,OAAOigM,GAC9BP,GAAYM,EAASvqM,SACvBsrM,GAAcA,GAAY1nM,MAAM,KAElC0nM,GAAcA,GAAYr6K,MAAK,SAASjG,EAAG4H,GACzC,OAAO5H,EAAEjoB,MAAQ6vB,EAAE7vB,KACrB,IAAGipB,QAAO,SAASkgD,EAAM3oE,EAAO8rC,GAC9B,OAAiB,IAAV9rC,GAAe2oE,EAAKnpE,QAAUssC,EAAM9rC,EAAQ,GAAGR,KACxD,KACmCkG,KAAI,SAAS0mB,EAAMpsB,GACpD,YAAsB,IAAfosB,EAAKg+I,OAAqBh+I,EAAK07K,UAAoB,KAAR9nM,CACpD,IAAGyoB,QAAO,SAASzoB,GACjB,OAAiB,OAAVA,CACT,IACiBrC,SAAQ,SAASqqM,GAChCrB,EAAejhM,KAAI,SAASuiM,GAC1B,IAAIC,EAAWF,EAAWC,EACtBC,GAAY,GAAKA,EAAWH,GAAYtrM,QAC1C6uI,EAAIvgB,WAAWm8E,EAAkBa,GAAYG,GAEjD,GACF,GACF,MAxBEhB,EAAmBF,EAyBrB,GAAIG,KACkC,WAAnBnuI,EAAGoxG,MAAMt3F,OAAmC,YAAb9Z,EAAG8Z,OAA0C,YAAnB9Z,EAAGoxG,MAAMt3F,OAAoC,WAAb9Z,EAAG8Z,OAC5F,CAKf,IAJA,IAAIq1H,GAAcnB,EAASthM,KAAI,SAAS2K,GACtC,OAAOA,EAAE7Q,KACX,IACI+uC,GAAO,GACFhqC,GAAI,EAAGA,GAAI0iM,EAAcxqM,OAAQ8H,KAAK,CAC7C,IAAIq0F,GAAIquG,EAAc1iM,IAClBm6B,GAAIk6D,GAAEp5F,MACV,IAAgC,IAA5B2oM,GAAYroM,QAAQ4+B,IAAxB,CAIA,IADA,IAAI0pK,IAAQ,EACH7gK,GAAI,GAAI6gK,IAAS7gK,GAAIy/J,EAASvqM,OAAQ8qC,KAG3C,IAAMy/J,EAASz/J,IAAG/nC,QAAU,IAAMk/B,KAElC0pK,IAAQ,GAGPA,IAAO75J,GAAKvxC,KAAK47F,GAVtB,CAWF,CACAquG,EAAgB14J,EAClB,CAIF,GAFIm4J,GA7PN,SAA6BM,EAAUhuI,EAAI4sI,GACzC,IAAK,IAAIvnM,EAAI,EAAGA,EAAI2oM,EAASvqM,OAAQ4B,IAAK,CACxC,IAAIqgC,EAAIsoK,EAAS3oM,GAAGmB,MAChBioB,EAAIppB,EACJgxB,EAAIhxB,EAAI,EACRA,EAAI2oM,EAASvqM,OAAS,GACxBgrB,EAAIppB,EACJgxB,EAAIhxB,EAAI,GACCA,EAAI,GACbopB,EAAIppB,EAAI,EACRgxB,EAAIhxB,IAEJopB,EAAIppB,EACJgxB,EAAIhxB,GAEN,IAgCIgqM,EAhCA9tC,EAAKysC,EAASv/K,GAAGjoB,MACjBi7J,EAAKusC,EAAS33K,GAAG7vB,MACjB8oM,EAAcrpM,KAAKD,IAAIy7J,EAAKF,GAC5B78B,EAAQkoE,GAAgB0C,EACxBC,EAAe,EACf7qE,GAAS5pC,EAETy0G,EADED,GAAex0G,GAAcw0G,GAAe10G,EAC/B00G,EAEAz0G,EAER+xG,IAAiB5xG,GAAiB0pC,GAASzpC,EAElDs0G,EADED,GAAer0G,GAAiBq0G,GAAev0G,EAClCu0G,EAEAt0G,EAER0pC,GAAStpC,EAEhBm0G,EADED,GAAel0G,GAAek0G,GAAep0G,EAChCo0G,EAEAn0G,EAERyxG,IAAiBvxG,GAAWqpC,GAASrpC,EAC9Ck0G,EAAel0G,EACNqpC,GAASppC,EAClBi0G,EAAej0G,EACNsxG,IAAiB/G,GAAWnhE,GAASmhE,EAC9C0J,EAAe1J,EACN+G,IAAiBrxG,GAAWmpC,GAASnpC,IAC9Cg0G,EAAeh0G,GAGbg0G,GAAgBD,IAClBC,EAAeD,EACfD,GAAY,GAEd,IAAIG,EAAY9pK,EAAI6pK,EACpB,GAAIvvI,EAAG2yG,aAAe48B,EAAe,EAAG,CAGtC,IAFA,IACIhiL,EAAI,EACC6X,EAAI,EAAGA,EAFL,GAEeA,IAAK,CAC7B,IAAI3T,GAAK2T,EAAI,IAHJ,GAIL46B,EAAGu9H,WAAW73J,GAAK,EAAIjU,GAAKA,EAAI+9K,KAAe/0G,GAAQltE,GAC7D,EACAgiL,GAAgBhiL,EANL,MAQTygL,EAAS3oM,GAAGoqM,MAAO,GAEjBJ,GAAaC,EAAcj0G,IAASk0G,EAAeD,EACzD,EACIC,EAAe,GACb,IAANlqM,KACE2oM,EAAS3oM,GAAGqqM,QAAUhqK,EAAI6pK,EAAe,EAE7C,CACF,CAsLgBI,CAAoBzB,EAAkBluI,EAAIA,EAAGotI,eAEvDptI,EAAG2yG,YAAa,CAClB,IAAIzlE,GAA4B,MAArBltC,EAAGuoF,IAAI76H,OAAO,GACrBxU,GAAW,EACK,SAAhB8mD,EAAGkxG,WACLh4J,GAAW8mD,EAAGg0G,SAAWh0G,EAAGg0G,SAAS3oK,KAAO,IAE9C,IAAIukM,GAAQ5oK,IACZ,IAAK3hC,EAAI2oM,EAASvqM,OAAS,EAAG4B,GAAK,EAAGA,IACpC,GAAI2oM,EAAS3oM,GAAGoqM,KACdzB,EAASlrI,OAAOz9D,EAAG,OADrB,CAIA2oM,EAAS3oM,GAAGmB,MAAQooM,GAAiBZ,EAAS3oM,GAAGmB,MAAOw5D,GACxD,IAAIxxC,GAAIwxC,EAAGslH,IAAI0oB,EAAS3oM,GAAGmB,QACvB0mG,GAAO0iG,GAAQphL,GAAItV,GAAW02L,GAAQphL,GAAItV,IAC5C80L,EAASlrI,OAAOw5H,EAAQj3L,EAAI,EAAIA,EAAG,GAEnCuqM,GAAQphL,EANV,CASJ,CACIqhL,GAAU7vI,IAAqC,MAA9B/5D,KAAKD,IAAIq2L,EAAI,GAAKA,EAAI,KACzC2R,EAASxvI,MAEXwB,EAAG8vI,OAAS9B,EAASA,EAASvqM,OAAS,IAAM,CAAC,GAAG+C,MACjDw5D,EAAG+vI,cAAgB,GACnB/vI,EAAGgwI,cAAe,EAElB,IAyBIr+K,GAzBAs+K,GAAY,SAAStgI,GACvBA,EAAKtyD,KAAO,GACZ2iD,EAAG+vI,cAAgBtC,CACrB,EAEA,SAASyC,GAAa1/C,EAAK2/C,GACzB,IAAI9yL,EAAOipL,EAAKgC,SACd93C,EACA2/C,EAAQ3pM,OACR,EAEA2pM,EAAQtB,aAGN14K,EAAIg6K,EAAQT,QAShB,YARU,IAANv5K,IACF9Y,EAAKqyL,QAAUv5K,GACXA,EAAI03K,GAAY13K,EAAIy3K,KAClBz3K,EAAI03K,IAAUxwL,EAAKqyL,QAAU7B,GAC7B13K,EAAIy3K,IAAUvwL,EAAKqyL,QAAU9B,GACjCqC,GAAU5yL,KAGPA,CACT,CAEA,IAtBA2wL,EAAWA,EAAShgM,OAAOigM,GAsBtB5oM,EAAI,EAAGA,EAAI2oM,EAASvqM,OAAQ4B,IAAK,CACpC,IAAI+qM,GAASpC,EAAS3oM,GAAG+rK,MACrBi/B,GAASrC,EAAS3oM,GAAGmB,MACrB4pM,KAEAz+K,GADEg8K,IAA6D,IAA3CO,EAAiBpnM,QAAQknM,EAAS3oM,IAClD6qM,GAAalwI,EAAIguI,EAAS3oM,IAE1B,CAAEmG,EAAG6kM,KAETj/B,OAAQ,EACV28B,EAAW/pM,KAAK2tB,MAEhB87K,EAAkBztI,EAAG+vI,cACrBp+K,GAAIu+K,GAAalwI,EAAIguI,EAAS3oM,KAC1B2oM,EAAS3oM,GAAGypM,WAAanB,IAA6D,IAA3CO,EAAiBpnM,QAAQknM,EAAS3oM,MAC/E4qM,GAAUt+K,IAEZu2K,EAASlkM,KAAK2tB,IAElB,CAMA,OALAu2K,EAAWA,EAASl6L,OAAO+/L,GAC3B/tI,EAAGgwI,cAAe,EACdtC,GAAYxF,EAASzkM,SACvBykM,EAAS,GAAGG,QAAS,GAEhBH,CACT,EA8DA,IAAIoI,GAAc,CAAC,EAAG,EAAG,IACrBC,GAAc,CAAC,EAAG,EAAG,EAAG,EAAG,IAC3BC,GAAc,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,IAChCC,GAAY,CAAC,EAAG,EAAG,EAAG,EAAG,IACzBC,GAAY,EAAE,KAAO,EAAG,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,GAChFC,GAAY,EAAE,KAAO,EAAG,KAAO,KAAO,GACtCC,GAAc,CAAC,GAAI,GAAI,GAAI,GAAI,KACnC,SAASC,GAAWC,EAAY58K,EAAM68K,GACpC,OAAO78K,EAAOo+G,EAAI5W,QAAQo1E,EAAa58K,EAAM68K,EAC/C,CA0EA,SAASzD,GAActtI,GACrB,IAAIixG,EAAQjxG,EAAGixG,MAQf,GAPAjxG,EAAGgxI,cAAgB,EACd9vG,EAAU+vE,IAA2B,kBAAVA,IAC9BA,EAAQ,GAEM,aAAZjxG,EAAG93D,MAAmC,kBAAZ83D,EAAG93D,OAC/B83D,EAAGixI,WAAa,MAEF,SAAZjxI,EAAG93D,KAAiB,CACtB,IAAIgpM,EAAUlxI,EAAGg8F,IAAIh8F,EAAG+2D,OACpBo6E,EAAWnxI,EAAGm7H,IAAI+V,GAASzqM,QAAQ,UAAW,IAC9C2qM,EAAWD,EAAS1tM,OACxB,GAAgC,MAA5B0C,OAAO8qK,GAAOvjJ,OAAO,GACnB0jL,EAAW,IAA6B,UAAvBD,EAASjqM,OAAO,GAAgB84D,EAAGixI,WAAa,IAChEjxI,EAAGixI,YAAchgC,EAAM/pK,OAAO,GAAK,KAAO,EAAI,IAAM,SACpD,GAAI+pK,GAAS31E,GAAU81G,GAAY,IAAMngC,GAAkB,GAAT31E,EAAat7B,EAAGixI,WAAa,SACjF,GAAIhgC,GAASz1E,GAAU41G,GAAY,IAAMngC,GAAS11E,EAASv7B,EAAGixI,WAAa,SAC3E,GAAIhgC,GAASx1E,GAAU21G,GAAY,IAAMngC,GAASz1E,EAAQx7B,EAAGixI,WAAa,QAC1E,CACH,IAAII,EAAWrxI,EAAGm7H,IAAI+V,EAAUjgC,GAAOxqK,QAAQ,KAAM,IAAIhD,OACzDu8D,EAAGixI,WAAahrM,KAAK6mB,IAAIskL,EAAUC,GAAY,GAC3CrxI,EAAGixI,WAAa,IAAGjxI,EAAGixI,WAAa,EACzC,CACF,MAAO,GAAI/vG,EAAU+vE,IAA8B,MAApBA,EAAMvjJ,OAAO,GAAY,CACtD,IAAI2uK,EAAMr8H,EAAG9lB,MAAMxtC,IAAIszD,EAAG86H,KAAOlsK,QAC5BsyE,EAAU+vE,KAAQA,EAAQriJ,OAAOqiJ,EAAM/pK,OAAO,KACnD84D,EAAGixI,WAAa,EAAIhrM,KAAK2/B,MAAM3/B,KAAK2hD,IAAIqpH,GAAShrK,KAAKq0E,KAAO,KAC7D,IAAIg3H,EAASrrM,KAAK6mB,IAAI7mB,KAAKD,IAAIq2L,EAAI,IAAKp2L,KAAKD,IAAIq2L,EAAI,KACjDkV,EAAWtrM,KAAK2/B,MAAM3/B,KAAK2hD,IAAI0pJ,GAAUrrM,KAAKq0E,KAAO,KACrDm6F,OAAiC,IAAnBz0G,EAAGy0G,YAAyB,EAAIz0G,EAAGy0G,YACjDxuK,KAAKD,IAAIurM,GAAY98B,IACnB+8B,GAAWxxI,EAAGw0G,kBAAoBi9B,GAASF,GAC7CvxI,EAAGgxI,cAAgB,EAAI/qM,KAAK+b,OAAOuvL,EAAW,GAAK,GAC9CvxI,EAAGgxI,cAAgBO,EAE9B,MACEvxI,EAAGixI,WAAa,IAEpB,CAoIA,SAASS,GAAY1xI,EAAIx0D,EAAG6R,GAC1B,IAAIsyK,EAAK3vH,EAAGg0G,UAAY,CAAC,EACzB,MAAO,CACLxoK,IACAu6C,GAAI,EACJC,GAAI,EACJ3oC,KAAMA,GAAQ,GACdnE,SAAUy2K,EAAGtkL,KACbqlG,KAAMi/E,EAAG3gF,OACTv8F,WAAYk9K,EAAG//G,OACf7xC,UAAW4xJ,EAAGjgK,MACdwlK,YAAavF,EAAGn9J,QAChB2iK,aAAcxF,EAAGvgF,SACjBgmF,iBAAkBzF,EAAGrgF,aACrB+lF,WAAY1F,EAAGlgF,OACfigF,UAAWC,EAAG32K,MAElB,CArQAstL,EAAKsE,UAAY,SAAS5qI,EAAI8wI,EAAY14B,GACxC,IAAIlkJ,EACJ,SAASy9K,EAAQjsK,GACf,OAAOz/B,KAAK4jD,IAAInkB,EAAGz/B,KAAK2/B,MAAM3/B,KAAK2hD,IAAIkpJ,GAAc7qM,KAAKq0E,MAC5D,CACA,GAAgB,SAAZta,EAAG93D,KAAiB,CACtB83D,EAAG+2D,MAAQub,EAAIzb,UAAU72D,EAAGy2D,SAAU,GACtC,IAAIm7E,EAAU,EAAId,EAClB,GAAIc,EAAU/2G,EACZi2G,GAAcj2G,EACd3mE,EAAOy9K,EAAQ,IACf3xI,EAAGixG,MAAQ,IAAM,GAAK4/B,GAAWC,EAAY58K,EAAMo8K,SAC9C,GAAIsB,EAAUz2G,EACnB21G,GAAc31G,EACdn7B,EAAGixG,MAAQ,IAAM4/B,GAAWC,EAAY,EAAGP,SACtC,GAAIqB,EAAUt2G,GAEnB,GADAt7B,EAAGixG,MAAQ4/B,GAAWC,EAAYx1G,EAAQt7B,EAAG6xI,oBAAsB,CAAC,EAAG,EAAG,EAAG,IAAMpB,KAC9Er4B,EAAS,CACZ,IAAI1D,EAAa4xB,EAAKyG,cAAc/sI,GAChC0tI,EAAgC,WAArB1tI,EAAGizG,cACdy6B,IAAU1tI,EAAGmtI,UAAYntI,EAAG+2D,OAC5B,SAAStsG,KAAKiqJ,GAChB10G,EAAG+2D,MAAQub,EAAIzb,UAAU72D,EAAGy2D,SAAU,GAEtCz2D,EAAG+2D,MAAQub,EAAIzb,UAAU72D,EAAGy2D,SAAU,GAEpCi3E,IAAU1tI,EAAGktI,UAAYltI,EAAG+2D,MAClC,OACS66E,EAAUr2G,EACnBv7B,EAAGixG,MAAQ4/B,GAAWC,EAAYv1G,EAASg1G,IAClCqB,EAAUp2G,EACnBx7B,EAAGixG,MAAQ4/B,GAAWC,EAAYt1G,EAAQg1G,IACjCoB,EAAUn2G,EACnBz7B,EAAGixG,MAAQ4/B,GAAWC,EAAYr1G,EAAQ+0G,KAE1Ct8K,EAAOy9K,EAAQ,IACf3xI,EAAGixG,MAAQ4/B,GAAWC,EAAY58K,EAAMo8K,IAE5C,MAAO,GAAgB,QAAZtwI,EAAG93D,KAAgB,CAC5B83D,EAAG+2D,MAAQ,EACX,IAAIslE,EAAM/pD,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,KAIrC,GAHIh8F,EAAGksI,WACL4E,GAAc,KAEZA,EAAa,GACf9wI,EAAGixG,MAAQhrK,KAAK8/B,KAAK+qK,QAChB,GAAI7qM,KAAKD,IAAIq2L,EAAI,GAAKA,EAAI,IAAM,EAAG,CACxC,IAAIqQ,EAAK,IAAMzmM,KAAKD,KAAKq2L,EAAI,GAAKA,EAAI,IAAMyU,GAC5CA,EAAa7qM,KAAKD,IAAIC,KAAK4jD,IAAI,GAAIwyI,EAAI,IAAMp2L,KAAK4jD,IAAI,GAAIwyI,EAAI,KAAOqQ,EACrEx4K,EAAOy9K,EAAQ,IACf3xI,EAAGixG,MAAQ,IAAM4/B,GAAWC,EAAY58K,EAAMo8K,GAChD,MACEtwI,EAAGixG,MAAQ6/B,EAAa,GAAM,KAAO,IAEzC,KAAuB,aAAZ9wI,EAAG93D,MAAmC,kBAAZ83D,EAAG93D,MACtC83D,EAAG+2D,MAAQ,EACX/2D,EAAGixG,MAAQhrK,KAAK8/B,KAAK9/B,KAAK6mB,IAAIgkL,EAAY,KACjCjB,GAAU7vI,IACnBA,EAAG+2D,MAAQ,EACX7iG,EAAO,EACP8rC,EAAGixG,MAAQ4/B,GAAWC,EAAY58K,EAAM08K,MAExC5wI,EAAG+2D,MAAQ,EACX7iG,EAAOy9K,EAAQ,IACf3xI,EAAGixG,MAAQ4/B,GAAWC,EAAY58K,EAAMo8K,KAG1C,GADiB,IAAbtwI,EAAGixG,QAAajxG,EAAGixG,MAAQ,IAC1B/vE,EAAUlhC,EAAGixG,QAA8B,kBAAbjxG,EAAGixG,MAAoB,CACxD,IAAI6gC,EAAW9xI,EAAGixG,MAElB,MADAjxG,EAAGixG,MAAQ,EACL,mBAAqB9qK,OAAO2rM,EACpC,CACF,EAyCAxL,EAAK0E,cAAgB,SAASx/L,EAAGylK,EAAOqrB,EAAO7lE,GAC7C,IAAIs7E,EAASzV,GAAS,EAAI,EAC1B,GAAIp7F,EAAU+vE,GAAQ,OAAO3+B,EAAI9K,UAAUh8H,EAAGumM,EAAS9gC,GACvD,IAAI+gC,EAAQ/gC,EAAMvjJ,OAAO,GACrBukL,EAAWF,EAASnjL,OAAOqiJ,EAAM/pK,OAAO,IAC5C,GAAc,MAAV8qM,EAAe,OAAO1/D,EAAIxY,eAAetuH,EAAGymM,EAAUx7E,GAC1D,GAAc,MAAVu7E,EAAe,OAAO/rM,KAAK2hD,IAAI3hD,KAAK4jD,IAAI,GAAIr+C,GAAKymM,GAAYhsM,KAAKq0E,KACtE,GAAc,MAAV03H,EAAe,CACjB,IAAIE,EAAoB,OAAVjhC,EAAiB0/B,GAAYD,GACvC1tI,EAAKx3D,EAAa,IAATumM,EACTh1E,EAAOuV,EAAI5W,QAAQ4W,EAAI9gG,IAAIwxB,EAAI,GAAIkvI,EAAS5V,GAChD,OAAOr2L,KAAK2/B,MAAMo9B,GAAM/8D,KAAK2hD,IAAIxS,EAAGpzB,MAAM/b,KAAK4jD,IAAI,GAAIkzE,GAAO,IAAM92H,KAAKq0E,IAC3E,CACA,KAAM,sBAAwBn0E,OAAO8qK,EACvC,EACAq1B,EAAK2E,UAAY,SAASjrI,EAAI6lC,GAC5B,IAAIm2D,EAAMh8F,EAAGg8F,KAAOptI,OAChBytK,EAAM/pD,EAAI3J,UAAU3oE,EAAG9lB,MAAO8hH,OAAK,OAAQ,EAAQn2D,GACnDy2F,EAAQD,EAAI,GAAKA,EAAI,GACrB8V,EAAS7V,EAAQr2L,KAAK2/B,MAAQ3/B,KAAK8/B,KACnCiiB,EAAKy+I,GAAYpK,GAAK,GACtBprB,EAAQjxG,EAAGixG,MACXl6C,EAAQilC,EAAIh8F,EAAG+2D,OACnB,GAAI71B,EAAU+vE,GAAQ,CACpB,IAAImhC,EAAOD,GAAQnqJ,EAAK+uE,GAASk6C,GAASA,EAAQl6C,EAIlD,MAHgB,aAAZ/2D,EAAG93D,MAAmC,kBAAZ83D,EAAG93D,OAC/BkqM,EAAO9/D,EAAI9J,UAAU4pE,EAAM,EAAGpyI,EAAGu/F,YAAY97J,OAAS,IAEjD2uM,CACT,CACA,IAAIJ,EAAQ/gC,EAAMvjJ,OAAO,GACrB2kL,EAAQzjL,OAAOqiJ,EAAM/pK,OAAO,IAChC,GAAc,MAAV8qM,EAAe,CAIjB,IAHA,IAEIv2I,EAAK62I,EAAMC,EAFX1qE,EAAM,EACNrsE,EAAMu7D,EAEH8Q,EAAM,IAAI,CAEf,KADApsE,EAAM6qI,EAAK0E,cAAcxvI,EAAKy1G,EAAOqrB,EAAOt8H,EAAGy2D,WACpCzuE,IAAOwT,EAAMxT,IAAO,EAC7B,OAAIs0I,EAAcr2L,KAAK8mB,IAAIyuC,EAAKC,GACzBx1D,KAAK6mB,IAAI0uC,EAAKC,GAEvB62I,GAAQtqJ,GAAMwT,EAAMC,GAAO,IAAMA,EAAMD,GACvC+2I,EAAWP,GAAS/rM,KAAKD,IAAIC,KAAK+b,MAAMswL,KAAU,GAAKD,EACvD72I,EAAM8qI,EAAK0E,cAAcxvI,EAAK+2I,EAAUD,EAAO,GAAKhW,EAAQA,EAAOt8H,EAAGy2D,UACtEoR,GACF,CAEA,OADAyK,EAAI9yH,MAAM,6BAA8BwgD,GACjCxE,CACT,CAAO,GAAc,MAAVw2I,EACT,OAAO/rM,KAAK2hD,IAAIuqJ,GACblsM,KAAK4jD,IAAI,GAAI7B,GAAM+uE,GAASs7E,GAC3BA,EAAQt7E,GAAS9wH,KAAKq0E,KACrB,GAAc,MAAV03H,EAAe,CACxB,IAAIE,EAAoB,OAAVjhC,EAAiB0/B,GAAYD,GACvC3zE,EAAOuV,EAAI5W,QAAQ4W,EAAI9gG,IAAIwW,EAAI,GAAIkqJ,EAAS5V,GAChD,OAAOr2L,KAAK2/B,MAAMoiB,GAAM/hD,KAAK2hD,IAAIxS,EAAGpzB,MAAM/b,KAAK4jD,IAAI,GAAIkzE,GAAO,IAAM92H,KAAKq0E,IAC3E,CAAO,KAAM,sBAAwBn0E,OAAO8qK,EAC9C,EACAq1B,EAAKgC,SAAW,SAAStoI,EAAIx0D,EAAGoS,EAAO40L,GACrC,IAKIntM,EALA4jE,EAAMyoI,GAAY1xI,EAAIx0D,GACtBinM,EAA4B,UAAhBzyI,EAAGkxG,SACfwhC,EAAiB90L,GAAS60L,EAC1B76B,EAAS53G,EAAG93D,KACZ0gM,EAAuB,aAAXhxB,EAAwB53G,EAAGy7H,UAAYz7H,EAAG8tD,IAEtD6kF,EAAW,SAASjtK,GACtB,IAAIvP,EAAI6pC,EAAGk6H,IAAIx0J,GACf,OAAOvP,GAAK,GAAKA,GAAK6pC,EAAGukE,QAAU7+F,EAAI,IACzC,EACA,GAAI+sK,GAAangE,EAAI90C,oBAAoBx9B,EAAG+yG,UAAW,CACrD,IAAIspB,EAAM/pD,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,KACjCzgC,GAAWt1H,KAAKD,IAAIq2L,EAAI,GAAKA,EAAI,KAAOr8H,EAAGq9H,UAAY,IAAM,IACjE,IAAKh4L,EAAI,EAAGA,EAAI26D,EAAG+yG,SAAStvK,UACtBwC,KAAKD,IAAIwF,EAAIo9L,EAAU5oI,EAAGqxG,SAAShsK,KAAOk2H,GADZl2H,KAGpC,GAAIA,EAAI26D,EAAG+yG,SAAStvK,OAMlB,OALAwlE,EAAI5rD,KAAOlX,OAAO65D,EAAG+yG,SAAS1tK,IAC9B4jE,EAAI2pI,KAAO,CACTD,EAAS1pI,EAAIz9D,EAAI,IACjBmnM,EAAS1pI,EAAIz9D,EAAIw0D,EAAGixG,MAAQ,KAEvBhoG,CAEX,CACA,SAASwnE,EAASoiE,GAChB,QAAiB,IAAbA,EAAqB,OAAO,EAChC,GAAIj1L,EAAO,MAAoB,SAAbi1L,EAClB,IAAIC,EAAc,CAChBh+J,MAAOkrB,EAAGgsI,MACVj3J,KAAMirB,EAAG8vI,OACT+C,GACF,MAAoB,QAAbA,GAAsBrnM,IAAMsnM,CACrC,CACA,IAAIC,EAAUn1L,EAAQ,QAAgC,SAAtBoiD,EAAGw0G,gBAA6B/jC,EAASzwE,EAAGu0G,cAAgB,OAAS,GAWrG,GAVe,SAAXqD,EAsDN,SAAoB53G,EAAIiJ,EAAKrrD,EAAO80L,GAClC,IAAIr5E,EAAKr5D,EAAGixI,WACR/3E,EAAMt7G,GAASoiD,EAAG60G,aAAeyxB,EAAKyG,cAAc/sI,IACxD0yI,GAAkBx5E,GAAOw5E,KAEJr5E,EAAfn4B,EAAUm4B,GAAU,EACd,CAAE5tH,EAAG,IAAKyqB,EAAG,IAAK7e,EAAG,IAAKiuB,EAAG,IAAKe,EAAG,GAAIgzF,IAErD,IACI25E,EADA56E,EAAUka,EAAI3Z,WAAW1vD,EAAIz9D,EAAG0tH,EAAKG,EAAIr5D,EAAG++H,YAAa/+H,EAAGy2D,SAAUz2D,EAAGorF,cAEzE6nD,EAAa76E,EAAQtxH,QAAQ,MAajC,IAZoB,IAAhBmsM,IACFD,EAAU56E,EAAQlxH,OAAO+rM,EAAa,GACtC76E,EAAUA,EAAQlxH,OAAO,EAAG+rM,IAE1BP,SACc,IAAZM,GAAmC,aAAZ56E,GAAsC,UAAZA,EAGvB,IAAnBA,EAAQ30H,SACjB20H,EAAUA,EAAQ3xH,QAAQ,OAAQ,MAHlC2xH,EAAU46E,EACVA,EAAU,KAKVA,EACF,GAAIp1L,EACS,MAAPy7G,EAAYjB,GAAW,KAAO46E,EAC7B56E,EAAU46E,GAAW56E,EAAU,KAAOA,EAAU,SAErD,GAAKp4D,EAAGgwI,cAAgBhwI,EAAG+vI,gBAAkBiD,EAGtC,CACL,IAAIE,EAAWC,GAAwBnzI,GACnCo2F,EAAOp2F,EAAGozI,WAAapzI,EAAGo2F,OACzB88C,GAAqB,QAAT98C,GAAkB88C,GAAqB,WAAT98C,KAC7Ch+B,GAAW,QAEf,MAREp4D,EAAG+vI,cAAgBiD,EACnB56E,GAAW,OAAS46E,EAU1B/pI,EAAI5rD,KAAO+6G,CACb,CA/FyBO,CAAW34D,EAAIiJ,EAAKrrD,EAAO80L,GAC9B,QAAX96B,EA+FX,SAAmB53G,EAAIiJ,EAAKrrD,EAAO80L,EAAgBK,GACjD,IAAI9hC,EAAQjxG,EAAGixG,MACXzlK,EAAIy9D,EAAIz9D,EACRkpK,EAAa10G,EAAG00G,WAChB2+B,EAA2B,kBAAVpiC,GAAsBA,EAAMvjJ,OAAO,GAQxD,GAPgB,UAAZqlL,IACFA,EAAU,IAERL,GAA8B,MAAZW,IACpBpiC,EAAQ,KACRoiC,EAAU,KAER3+B,GAA0B,MAAZ2+B,EAChBpqI,EAAI5rD,KAAOi2L,GAAUrtM,KAAK4jD,IAAI,GAAIr+C,GAAIw0D,EAAI+yI,EAASL,QAC9C,GAAIxxG,EAAU+vE,IAAsB,MAAZoiC,GAAmB/gE,EAAI9gG,IAAIhmC,EAAI,IAAM,GAAK,GAAK,CAC5E,IAAI2qB,EAAIlwB,KAAK+b,MAAMxW,GACf+nM,EAAOttM,KAAKD,IAAImwB,GAChBq9K,EAAiBxzI,EAAGw0G,eACD,UAAnBg/B,GAA8BhC,GAAWgC,IAAmB/B,GAASt7K,IAC1D8yC,EAAI5rD,KAAP,IAAN8Y,EAAoB,EACT,IAANA,EAAoB,KACb,WAAaA,EAAI,EAAI,GAAK4lE,GAAcw3G,EAAO,SAC/DtqI,EAAI/vD,UAAY,OACa,MAAnBs6L,GAA6C,MAAnBA,IAA2BD,EAAO,EACtEtqI,EAAI5rD,KAAO,IAAMm2L,GAAkBr9K,EAAI,EAAI,IAAM4lE,GAAcw3G,GAE/DtqI,EAAI5rD,KAAOi2L,GAAUrtM,KAAK4jD,IAAI,GAAIr+C,GAAIw0D,EAAI,GAAI,aAChC,OAAVixG,GAAuC,MAArBjxG,EAAGuoF,IAAI76H,OAAO,KAClCu7C,EAAIjjB,IAAMijB,EAAI/vD,SAAW,GAG/B,KAAO,IAAgB,MAAZm6L,EAGJ,KAAM,sBAAwBltM,OAAO8qK,GAF1ChoG,EAAI5rD,KAAOlX,OAAOF,KAAK+b,MAAM/b,KAAK4jD,IAAI,GAAIyoF,EAAI9gG,IAAIhmC,EAAG,MACrDy9D,EAAI/vD,UAAY,GACgC,CAClD,GAAiB,OAAb8mD,EAAGixG,MAAgB,CACrB,IAAIwiC,EAAYttM,OAAO8iE,EAAI5rD,MAAMqQ,OAAO,GACtB,MAAd+lL,GAAmC,MAAdA,IACE,MAArBzzI,EAAGuoF,IAAI76H,OAAO,GAChBu7C,EAAIljB,IAAMkjB,EAAI/vD,SAAW,GAEzB+vD,EAAIjjB,IAAMijB,EAAI/vD,SAAW,EACzB+vD,EAAIljB,KAAOia,EAAG9lB,MAAM,GAAK8lB,EAAG9lB,MAAM,GAAK,GAAK,GAAK+uB,EAAI/vD,UAAY1N,EAAI,EAAI,GAAM,MAGrF,CACF,CA7I6BkoM,CAAU1zI,EAAIiJ,EAAKrrD,EAAO80L,EAAgBK,GACjD,aAAXn7B,EA6IX,SAAwB53G,EAAIiJ,GAC1B,IAAI0qI,EAAK3zI,EAAGu/F,YAAYt5J,KAAK+b,MAAMinD,EAAIz9D,SAC5B,IAAPmoM,IAAeA,EAAK,IACxB1qI,EAAI5rD,KAAOlX,OAAOwtM,EACpB,CAjJkCC,CAAe5zI,EAAIiJ,GAC/B,kBAAX2uG,EAiJX,SAA6B53G,EAAIiJ,EAAKrrD,GACpC,IAAI8nB,EAAIz/B,KAAK+b,MAAMinD,EAAIz9D,GACnBu0L,EAAO//H,EAAGu/F,YAAY75H,IAAM,GAC5BiuK,OAAiB,IAAZ5T,EAAK,GAAgB,GAAK55L,OAAO45L,EAAK,IAC3C8T,OAAkB,IAAZ9T,EAAK,GAAgB,GAAK55L,OAAO45L,EAAK,IAC5CniL,EACFqrD,EAAI5rD,KAAOw2L,EAAM,MAAQF,GAEzB1qI,EAAI5rD,KAAOs2L,EACX1qI,EAAI6qI,MAAQD,EAEhB,CA5JuCE,CAAoB/zI,EAAIiJ,EAAKrrD,GACzDiyL,GAAU7vI,GAoKrB,SAAqBA,EAAIiJ,EAAKrrD,EAAO80L,EAAgBK,GACnD,GAAqB,YAAjB/yI,EAAGg0I,WAA4Bp2L,EA6BjCqrD,EAAI5rD,KAAOi2L,GAAUrqI,EAAIz9D,EAAGw0D,EAAI+yI,EAASL,OA7BD,CACxC,IAAIuB,EAAMhrI,EAAIz9D,EAAI,IAClB,GAAY,IAARyoM,EACFhrI,EAAI5rD,KAAO,QACN,CACL,IAAI0/G,EA2BV,SAAkBk3E,GAChB,SAASC,EAASzlL,EAAG4H,GACnB,OAAOpwB,KAAKD,IAAIyoB,EAAI4H,IAAM,IAC5B,CACA,SAAS89K,EAAQ1lL,EAAG4H,GAClB,OAAO69K,EAAS79K,EAAG,GAAK5H,EAAI0lL,EAAQ99K,EAAG5H,EAAI4H,EAC7C,CACA,SAAS+9K,EAAc7mL,GAErB,IADA,IAAI5nB,EAAI,GACAuuM,EAASjuM,KAAK+b,MAAMuL,EAAI5nB,GAAKA,EAAG4nB,IACtC5nB,GAAK,GAEP,OAAOA,CACT,CACA,IAAIwyF,EAAYi8G,EAAcH,GAC1B1rL,EAAS0rL,EAAM97G,EACfk8G,EAAMpuM,KAAKD,IAAImuM,EAAQ5rL,EAAQ4vE,IACnC,MAAO,CAELlyF,KAAK+b,MAAMuG,EAAS8rL,GAEpBpuM,KAAK+b,MAAMm2E,EAAYk8G,GAE3B,CAlDiBC,CAASL,GACpB,GAAIl3E,EAAK,IAAM,IACb9zD,EAAI5rD,KAAOi2L,GAAUhhE,EAAItU,QAAQ/0D,EAAIz9D,GAAIw0D,EAAI+yI,EAASL,OACjD,CACL,IAAI6B,EAAQtrI,EAAIz9D,EAAI,EACJ,IAAZuxH,EAAK,GACS,IAAZA,EAAK,GAAU9zD,EAAI5rD,KAAO,SACzB4rD,EAAI5rD,KAAO0/G,EAAK,GAAK,SAE1B9zD,EAAI5rD,KAAO,CACT,QACA0/G,EAAK,GACL,SACA,SACA,QACAA,EAAK,GACL,SACA,UACA9yH,KAAK,IAELsqM,IAAOtrI,EAAI5rD,KAAO0+E,EAAa9yB,EAAI5rD,KACzC,CACF,CACF,CAGF,CApM0Bm3L,CAAYx0I,EAAIiJ,EAAKrrD,EAAO80L,EAAgBK,GA4JtE,SAAsB/yI,EAAIiJ,EAAKrrD,EAAO80L,EAAgBK,GACpC,UAAZA,EACFA,EAAU,GACmB,QAApB/yI,EAAGu0G,cAA0BtuK,KAAKD,IAAIijE,EAAIz9D,EAAIw0D,EAAGixG,OAAS,OACnE8hC,EAAU,QAEZ9pI,EAAI5rD,KAAOi2L,GAAUrqI,EAAIz9D,EAAGw0D,EAAI+yI,EAASL,EAC3C,CAlKO+B,CAAaz0I,EAAIiJ,EAAKrrD,EAAO80L,EAAgBK,GAC7CP,IACCxyI,EAAGm0G,aAAe1jC,EAASzwE,EAAGo0G,kBAAiBnrG,EAAI5rD,KAAO2iD,EAAGm0G,WAAalrG,EAAI5rD,MAC9E2iD,EAAGq0G,aAAe5jC,EAASzwE,EAAGs0G,kBAAiBrrG,EAAI5rD,MAAQ2iD,EAAGq0G,aAEhEr0G,EAAG0zG,YAAc1zG,EAAG0zG,WAAW50J,eAAemqD,EAAI5rD,MAAO,CAC3D,IAAIsU,EAAIquC,EAAG0zG,WAAWzqG,EAAI5rD,MACT,kBAANsU,IAAgBs3C,EAAI5rD,KAAOsU,EACxC,CAOA,OANmB,eAAfquC,EAAGgzG,SAA4BhzG,EAAGq1G,gBACpCpsG,EAAI2pI,KAAO,CACTD,EAAS1pI,EAAIz9D,EAAI,IACjBmnM,EAAS1pI,EAAIz9D,EAAIw0D,EAAGixG,MAAQ,MAGzBhoG,CACT,EACAq9H,EAAKoO,eAAiB,SAAS10I,EAAIlyC,EAAQ+mJ,GACrCA,IAAa70G,EAAKsyE,EAAInkC,WAAW,CAAC,EAAGnuC,EAAI,CAAE60G,iBAC/C,IAAI1mJ,EAAMmkH,EAAI90C,oBAAoB1vE,GAAUA,EAAO,GAAKA,EACpD6mL,EAAOriE,EAAI90C,oBAAoB1vE,GAAUA,EAAO,QAAK,EACzD,QAAa,IAAT6mL,GAAmBA,IAASxmL,EAC9B,OAAOm4K,EAAKoO,eAAe10I,EAAI7xC,EAAK0mJ,GAAe,MAAQyxB,EAAKoO,eAAe10I,EAAI20I,EAAM9/B,GAE3F,IAAI+/B,EAA0B,QAAZ50I,EAAG93D,MAAkBimB,GAAO,EAC1CipD,EAAKkvH,EAAKgC,SAAStoI,EAAIA,EAAG26H,IAAIia,GAAezmL,EAAMA,GAAM,SAAS9Q,KACtE,OAAIu3L,EACa,IAARzmL,EAAY,IAAM4tE,EAAa3kB,EAEjCA,CACT,EA8LA,IAAIy9H,GAAa,CAAC,IAAK,IAAK,IAAK,SAAU,IAAK,GAAI,IAAK,IAAK,IAAK,KACnE,SAASrD,GAAWgC,GAClB,MAA0B,OAAnBA,GAA8C,MAAnBA,CACpC,CACA,SAAS/B,GAAS72H,GAChB,OAAOA,EAAW,IAAMA,GAAY,EACtC,CACA,SAAS04H,GAAU5tK,EAAGs6B,EAAI80I,EAAal3L,GACrC,IAAI22L,EAAQ7uK,EAAI,EACZqvK,EAAY/0I,EAAGixI,WACfuC,EAAiBsB,GAAe90I,EAAGw0G,gBAAkB,IACrD55F,EAAW5a,EAAGgxI,cACdt8B,EAAa4xB,EAAKyG,cAAc/sI,GAChC0tE,EAAoB1tE,EAAG0tE,kBAC3B,GAAI9vH,EAAO,CACT,IAAIssD,EAAK,CACPsqG,eAAgBg/B,EAChB/+B,YAAaz0G,EAAGy0G,YAChBxD,MAA2B,SAApBjxG,EAAGu0G,aAA0Bv0G,EAAGixG,MAAQ/vE,EAAUx7D,IAAKz/B,KAAKD,IAAI0/B,IAAU,EAGjFwU,MAA2B,SAApB8lB,EAAGu0G,aAA0Bv0G,EAAG9lB,MAAMxtC,IAAIszD,EAAG86H,KAAO,CAAC,EAAGp1J,GAAK,IAEtE4nK,GAAcpjI,GACd6qI,GAAanmL,OAAOs7C,EAAG+mI,aAAe,GAAK,EAC3Cr2H,EAAW1Q,EAAG8mI,cACVhxI,EAAG60G,cAAaH,EAAa10G,EAAG60G,YACtC,CACA,GAAIH,EAAY,OAAO10G,EAAGi/H,WAAWvqB,EAAd10G,CAA0Bt6B,GAAGj/B,QAAQ,KAAMs1F,GAClE,IA0BMi5G,EA1BFrvM,EAAIM,KAAK4jD,IAAI,IAAKkrJ,GAAa,EAGnC,GAFuB,SAAnBvB,IAA2B54H,EAAW,IAC1Cl1C,EAAIz/B,KAAKD,IAAI0/B,IACL//B,EACN+/B,EAAI,IACJ6uK,GAAQ,MACH,CAML,GALA7uK,GAAK//B,EACDi1E,IACFl1C,GAAKz/B,KAAK4jD,IAAI,IAAK+wB,GACnBm6H,GAAan6H,GAEG,IAAdm6H,EAAiBrvK,EAAIv/B,OAAOF,KAAK2/B,MAAMF,SACtC,GAAIqvK,EAAY,EAAG,CAEtBrvK,GADAA,EAAIv/B,OAAOF,KAAK+b,MAAM0jB,KAChBx+B,OAAO,EAAGw+B,EAAEjiC,OAASsxM,GAC3B,IAAK,IAAI1vM,EAAI0vM,EAAW1vM,EAAI,EAAGA,IAAKqgC,GAAK,GAC3C,KAAO,CAEL,IAAIy7J,GADJz7J,EAAIv/B,OAAOu/B,IACA5+B,QAAQ,KAAO,EACtBq6L,IAAIz7J,EAAIA,EAAEx+B,OAAO,EAAGi6L,EAAK4T,GAAWtuM,QAAQ,SAAU,IAC5D,CACAi/B,EAAI4sG,EAAI7E,YAAY/nG,EAAGs6B,EAAGg/H,YAAatxD,EACzC,CAiBA,OAhBI9yD,GAA+B,SAAnB44H,IACVhC,GAAWgC,IAAmB/B,GAAS72H,KAAW44H,EAAiB,SAErDwB,EAAdp6H,EAAW,EAAoBmhB,GAAcnhB,EACrB,UAAnB44H,EAA6C,IAAM54H,EACtCz0E,OAAOy0E,GACN,MAAnB44H,GAA6C,MAAnBA,EAC5B9tK,GAAK8tK,EAAiBwB,EACM,UAAnBxB,EACT9tK,GAAK,cAAgBsvK,EAAiB,SACV,MAAnBxB,GAAuC,IAAb54H,EACnCl1C,GAAK,IACI8rK,GAAWgC,KACpB9tK,GAAKmvK,GAAWj6H,EAAW,EAAI,KAG/B25H,EAAcx4G,EAAar2D,EACxBA,CACT,CAweA,SAASuvK,GAAWjxM,EAAMysH,GACxB,GAAKzsH,EAAL,CACA,IAAIkxM,EAAa5uM,OAAOgkB,KAAK87K,GAAgB7hL,QAAO,SAASw7B,EAAMo1J,GAMjE,OALqC,IAAjC1kF,EAAW3pH,QAAQquM,IACrB/O,EAAe+O,GAASxwM,SAAQ,SAASL,GACvCy7C,EAAKz7C,GAAO,CACd,IAEKy7C,CACT,GAAG,CAAC,GACJz5C,OAAOgkB,KAAKtmB,GAAMW,SAAQ,SAASL,GAC5B4wM,EAAW5wM,KACK,IAAfA,EAAIb,OAAcO,EAAKM,GAAO,SACtBN,EAAKM,GAErB,GAdiB,CAenB,CAkBA,SAAS8wM,GAAsBp1I,EAAIq7D,GAGjC,IAFA,IAAIpyD,EAAM,GACNizB,EAAS,CAAC,EACL72F,EAAI,EAAGA,EAAIg2H,EAAK53H,OAAQ4B,IAAK,CACpC,IAAIgS,EAAIgkH,EAAKh2H,GACT62F,EAAO7kF,EAAEy8L,OACX53G,EAAO7kF,EAAEy8L,OAAO9vM,KAAKqT,EAAE7L,GAEvB0wF,EAAO7kF,EAAEy8L,OAAS,CAACz8L,EAAE7L,EAEzB,CACA,IAAK,IAAID,KAAK2wF,EACZjzB,EAAIjlE,KAAK0tM,GAAY1xI,EAAIsyE,EAAIxV,OAAO5gC,EAAO3wF,GAAI,IAAMA,IAEvD,OAAO09D,CACT,CA0GA,SAASosI,GAAQh+L,GACf,YAAqB,IAAdA,EAAEq4L,QAAqBr4L,EAAEq4L,QAAUr4L,EAAE7L,CAC9C,CAuKA,SAAS8pM,GAAWj+L,GAClB,MAAO,CAACA,EAAEgG,KAAMhG,EAAE7L,EAAG6L,EAAEk+L,OAAQl+L,EAAEq5F,KAAMr5F,EAAE6B,SAAU7B,EAAEq4K,WAAWzlL,KAAK,IACvE,CAgfA,SAASurM,GAAiBx1I,GACxB,IAAI9mD,EAAW8mD,EAAGqwD,MAAM3f,KAAKrlG,KACzBoqM,GAAcz1I,EAAGqwD,MAAMhzG,KAAKxQ,MAAMi3K,EAAaha,aAAe,IAAIrmK,OACtE,OAAIu8D,EAAGqwD,MAAMvxG,eAAe,YACnB5F,GAAYkqJ,EAAYqyC,EAAatyC,GAErCsyC,EAAav8L,GAAYu8L,EAAa,GAAKtyC,EAAejqJ,CAErE,CAiFA,SAASw8L,GAAS11I,EAAIxxC,GACpB,IAAI2H,EAAI6pC,EAAGk6H,IAAI1rK,GACf,OAAO2H,EAAI,GAAKA,EAAI6pC,EAAGukE,QAAU,CACnC,CAiDA,SAASoxE,GAAgBC,GACvB,IAAIrnL,EAAI6mB,EAAGsI,OAAOk4J,GACdC,EAAKtnL,EAAEmvB,OAAO,oBAClB,OAAOm4J,EAAGr7J,QAAUjsB,EAAEmvB,OAAO,QAAUm4J,CACzC,CAgBA,SAASC,GAAe91I,GACtB,OAAOA,EAAGuoF,IAAM,aAClB,CACA,SAASwtD,GAAqB/1I,GAC5B,OAAO81I,GAAe91I,GAAM,SAC9B,CACA,SAASg2I,GAAwBh2I,GAC/B,OAAOA,EAAGuoF,IAAM,cAClB,CAsCA,SAAS0tD,GAAgBC,EAASC,GAChC,IAAK,IAAI9wM,EAAI,EAAGA,EAAI8wM,EAAQ1yM,OAAQ4B,KACG,IAAjC6wM,EAAQpvM,QAAQqvM,EAAQ9wM,KAAY6wM,EAAQlyM,KAAKmyM,EAAQ9wM,GAEjE,CACA,SAAS+wM,GAAchsF,EAAIisF,EAAMC,GAC/B,IAGIjxM,EAAGiG,EAHHirM,EAAY,GACZC,EAAY,GACZlpI,EAAS88C,EAAG98C,OAEhB,IAAKjoE,EAAI,EAAGA,EAAIgxM,EAAK5yM,OAAQ4B,IAAKkxM,EAAUvyM,KAAKsiM,EAAKplD,UAAU92B,EAAIisF,EAAKhxM,KACzE,IAAKA,EAAI,EAAGA,EAAIixM,EAAK7yM,OAAQ4B,IAAKmxM,EAAUxyM,KAAKsiM,EAAKplD,UAAU92B,EAAIksF,EAAKjxM,KACzE,IAAIoxM,EAAYnwM,OAAOgkB,KAAKs7K,GACxB8Q,EAAc,CAChB,SACA,SACA,aACA,WACA,OACA,YACA,YAEEC,EAAe,CAAC,SAAU,OAC9B,IAAKtxM,EAAI,EAAGA,EAAIoxM,EAAUhzM,OAAQ4B,IAAK,CACrC,IAAIuxM,EAAOH,EAAUpxM,GACjB+6K,EAAOm2B,EAAU,GAAGK,GACpBv2B,EAAOm2B,EAAU,GAAGI,GACpBC,GAAW,EACXC,GAAgB,EAChBC,GAAgB,EACpB,GAAuB,MAAnBH,EAAKlpL,OAAO,IAA8B,oBAAT0yJ,IAAsD,IAA/Bs2B,EAAY5vM,QAAQ8vM,GAAhF,CAGA,IAAKtrM,EAAI,EAAGA,EAAIirM,EAAU9yM,QAAUozM,EAAUvrM,IAAK,CACjD,IAAI0rM,EAAQT,EAAUjrM,GAAGsrM,GACZ,SAATA,IAAmD,IAAhCD,EAAa7vM,QAAQs5K,KAAiD,IAAjCu2B,EAAa7vM,QAAQkwM,IAAiB52B,IAAS42B,EACzGF,GAAgB,EACPE,IAAU52B,IAAMy2B,GAAW,EACxC,CACA,IAAKvrM,EAAI,EAAGA,EAAIkrM,EAAU/yM,QAAUozM,EAAUvrM,IAAK,CACjD,IAAI2rM,EAAQT,EAAUlrM,GAAGsrM,GACZ,SAATA,IAAmD,IAAhCD,EAAa7vM,QAAQu5K,KAAiD,IAAjCs2B,EAAa7vM,QAAQmwM,IAAiB52B,IAAS42B,EACzGF,GAAgB,EACPP,EAAUlrM,GAAGsrM,KAAUv2B,IAAMw2B,GAAW,EACrD,CACIA,IACEC,IAAexpI,EAAOipI,EAAU,GAAGx6C,OAAO7zJ,KAAO,UACjD6uM,IAAezpI,EAAOkpI,EAAU,GAAGz6C,OAAO7zJ,KAAO,UACrDgvM,GAAc5pI,EAAQspI,EAAML,EAAWC,EAAWpsF,EAAGonB,YAAY8Y,YAhBnE,CAkBF,CACA,IAAKjlJ,EAAI,EAAGA,EAAI+kH,EAAGonB,YAAYuxD,YAAYt/L,OAAQ4B,IAAK,CACtD,IAAI8xM,EAAM/sF,EAAGonB,YAAYuxD,YAAY19L,IACL,IAA5BgxM,EAAKvvM,QAAQqwM,EAAI5mF,QAA4C,IAA5B+lF,EAAKxvM,QAAQqwM,EAAI3mF,OACpD8hB,EAAIxK,UAAUx6D,EAAOy1H,YAAY19L,GAAI,CAAC,KAE1C,CACF,CACA,SAAS6xM,GAAc5pI,EAAQhpE,EAAKiyM,EAAWC,EAAWY,GACxD,IAGI/xM,EAHA00I,EAAKzH,EAAIhvC,eACT88E,EAAOrmC,EAAGzsE,EAAOipI,EAAU,GAAGx6C,OAAQz3J,GAAK6H,MAC3Ck0K,EAAOtmC,EAAGzsE,EAAOkpI,EAAU,GAAGz6C,OAAQz3J,GAAK6H,MAU/C,IARY,UAAR7H,IACE87K,GAAQA,EAAK/iK,OAAS+5L,EAAU5rM,IAClC40K,EAAK/iK,KAAO+5L,EAAU3rM,GAEpB40K,GAAQA,EAAKhjK,OAAS+5L,EAAU3rM,IAClC40K,EAAKhjK,KAAO+5L,EAAU5rM,IAGrBnG,EAAI,EAAGA,EAAIkxM,EAAU9yM,OAAQ4B,IAChC00I,EAAGzsE,EAAQipI,EAAUlxM,GAAG02J,MAAQ,IAAMz3J,GAAK8H,IAAIi0K,GAEjD,IAAKh7K,EAAI,EAAGA,EAAImxM,EAAU/yM,OAAQ4B,IAChC00I,EAAGzsE,EAAQkpI,EAAUnxM,GAAG02J,MAAQ,IAAMz3J,GAAK8H,IAAIg0K,EAEnD,CACA,SAASyvB,GAAU7vI,GACjB,MAAkB,gBAAXA,EAAGuoF,GACZ,CACA,SAASqmD,GAAiBlpK,EAAGs6B,GAE3B,IADA,IAAI7pD,EAAM6pD,EAAGq6H,aAAa52L,OACjB8H,EAAI,EAAGA,EAAI4K,EAAK5K,IAAK,CAC5B,IAAI2xL,EAAMl9H,EAAGq6H,aAAa9uL,GAC1B,GAAIm6B,GAAKw3J,EAAInwK,KAAO2Y,EAAIw3J,EAAIpwK,IAC1B,OAAOowK,EAAIpwK,GAEf,CACA,OAAO4Y,CACT,CACA,SAASytK,GAAwBnzI,GAC/B,OAA2D,KAAnDA,EAAGkzG,mBAAqB,IAAIpsK,QAAQ,SAC9C,CACA,SAASuwM,GAAgCr3I,EAAI6lC,GACvCstG,GAAwBnzI,EAAG0oF,aAAe,CAAC,IACzC1oF,EAAGs3I,kCACLt3I,EAAGs3I,iCAAiCzxG,EAG1C,CACA,SAAS0xG,GAAev3I,EAAIw3I,EAAUC,EAAUC,GAC9C,IACIC,EADAC,EAAwB,SAAd53I,EAAGowF,aAAwC,IAAlBpwF,EAAGmpF,aAA2C,IAAlBnpF,EAAGmpF,WAAiCnpF,EAAGmpF,WAAZnpF,EAAGuoF,IAG/FovD,EADED,EACwB,UAAZ13I,EAAGo2F,KAAmBohD,GAAYA,EAElCA,EAEVI,KAAWH,IACfA,EAASG,GAAW,CAAC,GAEjB53I,EAAGo2F,QAAQqhD,EAASG,KACxBH,EAASG,GAAS53I,EAAGo2F,MAAQ,GAE/BqhD,EAASG,GAAS53I,EAAGo2F,OAASuhD,CAChC,CAhmDArR,EAAKyG,cAAgB,SAAS/sI,GAC5B,IAAI36D,EAqCAwyM,EAAUC,EApCd,SAASC,EAAY9mC,GACnB,MAAwB,kBAAVA,EAAqBA,EAAQriJ,OAAOqiJ,EAAMxqK,QAAQ,IAAK,KAAO00F,CAC9E,CACA,SAAS68G,EAAgBp6K,EAAMF,GAC7B,IAAI+Y,EAAW,CAAC,IAAK,KACrB,UAAW7Y,WAAgBF,EAAO,CAChC,GAAoB,kBAATE,EACT,OAAOA,EAAOF,EAEd,IAAIu6K,EAAexhK,EAAS3vC,QAAQ82B,EAAKlQ,OAAO,IAC5CwqL,EAAgBzhK,EAAS3vC,QAAQ42B,EAAMhQ,OAAO,IAClD,OAAIuqL,IAAiBC,EACZtpL,OAAOgP,EAAKn3B,QAAQ,SAAU,KAAOmoB,OAAO8O,EAAMj3B,QAAQ,SAAU,KAEpEwxM,EAAeC,CAG5B,CACE,MAAuB,kBAATt6K,EAAoB,GAAK,CAE3C,CACA,SAASu6K,EAAalnC,EAAO/2H,EAAOk+J,GAClC,IAAIC,EAAYD,GAAW,SAAS5sM,GAClC,OAAOA,CACT,EACI8sM,EAAYp+J,EAAM,GAClBq+J,EAAar+J,EAAM,GACvB,QAASo+J,GAAkC,kBAAdA,GAA0BD,EAAUC,IAAcD,EAAUpnC,OAAasnC,GAAoC,kBAAfA,GAA2BF,EAAUE,IAAeF,EAAUpnC,GAC3L,CACA,SAASunC,EAAgBvnC,EAAO/2H,GAC9B,IAAIu+J,EAA+B,OAAbv+J,EAAM,GACxBw+J,EAAgC,OAAbx+J,EAAM,GACzBy+J,EAAqBX,EAAgB/mC,EAAO/2H,EAAM,KAAO,EACzD0+J,EAAsBZ,EAAgB/mC,EAAO/2H,EAAM,KAAO,EAC9D,OAAQu+J,GAAmBE,KAAwBD,GAAoBE,EACzE,CAEA,GAAI54I,EAAG20G,iBAAmB30G,EAAG20G,gBAAgBlxK,OAAS,EACpD,OAAQu8D,EAAG93D,MACT,IAAK,OACL,IAAK,SACH,IAAK7C,EAAI,EAAGA,EAAI26D,EAAG20G,gBAAgBlxK,OAAQ4B,IAEzC,IADAyyM,EAAQ93I,EAAG20G,gBAAgBtvK,IACjBk/I,SAAW4zD,EAAan4I,EAAGixG,MAAO6mC,EAAMljC,WAAYmjC,GAAc,CAC1EF,EAAWC,EACX,KACF,CAEF,MAEF,IAAK,MACH,IAAKzyM,EAAI,EAAGA,EAAI26D,EAAG20G,gBAAgBlxK,OAAQ4B,IAEzC,IADAyyM,EAAQ93I,EAAG20G,gBAAgBtvK,IACjBk/I,SAAWi0D,EAAgBx4I,EAAGixG,MAAO6mC,EAAMljC,YAAa,CAChEijC,EAAWC,EACX,KACF,EAOR,OAAOD,EAAWA,EAASrxM,MAAQw5D,EAAG00G,UACxC,EACA4xB,EAAKuS,YAAc,SAASzuF,EAAIpqD,GAC9B,IAAI84I,EAAa1uF,EAAGonB,YAAYqP,UAC5Bk4D,EAAcD,EAAW9rD,UAAUh/I,OAAO8qM,EAAWE,MAAQ,IAC7D/vI,EAAMjJ,EAAKsmI,EAAK2S,qBAAqBF,EAAa/4I,GAAM+4I,EAO5D,OANA9vI,EAAIv0C,MAAK,SAASjG,EAAG4H,GACnB,IAAI6iL,EAASzqL,EAAEvnB,OAAO,GAAGwG,MAAM,KAC3ByrM,EAAS9iL,EAAEnvB,OAAO,GAAGwG,MAAM,KAC/B,OAAIwrM,EAAO,KAAOC,EAAO,IAAYD,EAAO,IAAMC,EAAO,IACjDD,EAAO,IAAMC,EAAO,EAC9B,IACOlwI,CACT,EACAq9H,EAAK2S,qBAAuB,SAAShkF,EAAUj1D,GAK7C,IAJA,IAAIo5I,EAAU,IAAI/rL,OACK,MAArB2yC,EAAGuoF,IAAI76H,OAAO,GAAa,IAAMsyC,EAAGuoF,IAAM,IAAMvoF,EAAGuoF,IAAM,KAEvD8wD,EAAiB,GACZh0M,EAAI,EAAGA,EAAI4vH,EAASxxH,OAAQ4B,IAAK,CACxC,IAAI67J,EAAKjsC,EAAS5vH,GACd+zM,EAAQ3uL,KAAKy2I,IAAKm4C,EAAer1M,KAAKk9J,EAC5C,CACA,OAAOm4C,CACT,EACA/S,EAAKgT,cAAgB,SAASlvF,GAC5B,IAAIsxB,EAAatxB,EAAGonB,YACpB,IAAIkK,EAAW6R,oBAAf,CACA,IAKIloJ,EAAGiG,EALHiuM,EAAY,CAAEnc,QAAS,EAAG74D,QAASmX,EAAWxhI,MAAOquI,IAAK,IAC1DixD,EAAa,CAAEpc,QAAS,EAAG74D,QAASmX,EAAWvhI,OAAQouI,IAAK,IAC5DkxD,EAASnT,EAAK/wJ,KAAK60E,EAAI,KAAK,GAC5BsvF,EAASpT,EAAK/wJ,KAAK60E,EAAI,KAAK,GAC5BuvF,EAAW,GAEf,IAAKt0M,EAAI,EAAGA,EAAIo0M,EAAOh2M,OAAQ4B,IAE7B,IADAs0M,EAAS31M,KAAK,CAAEwH,EAAGiuM,EAAOp0M,GAAIoG,EAAG+tM,IAC5BluM,EAAI,EAAGA,EAAIouM,EAAOj2M,OAAQ6H,IACnB,IAANjG,GAASs0M,EAAS31M,KAAK,CAAEwH,EAAG+tM,EAAW9tM,EAAGiuM,EAAOpuM,KACrDquM,EAAS31M,KAAK,CAAEwH,EAAGiuM,EAAOp0M,GAAIoG,EAAGiuM,EAAOpuM,KAG5C,IAAIsuM,EAAUl+D,EAAWm+D,OAAO37J,UAAU,aAAa6B,KAAK45J,GAAU,SAAStiM,GAC7E,OAAOA,EAAE7L,EAAE+8I,IAAMlxI,EAAE5L,EAAE88I,GACvB,IACAqxD,EAAQh4J,QAAQp6C,OAAO,YAAYi5C,QAAQ,YAAY,GAAMH,KAAK,MAAM,SAASjpC,GAC/E,MAAO,OAASqkI,EAAW+sC,KAAOpxK,EAAE7L,EAAE+8I,IAAMlxI,EAAE5L,EAAE88I,GAClD,IAAG/gJ,OAAO,QACVoyM,EAAQ/3J,OAAOtH,SACfq/J,EAAQp5J,MAAK,SAASnpC,GACpB+9B,EAAGsI,OAAOt6C,MAAMs6C,OAAO,QAAQ4C,KAAK,CAClC90C,EAAG6L,EAAE7L,EAAE4xL,SAAW,EAClB3xL,EAAG4L,EAAE5L,EAAE2xL,SAAW,EAClBljL,MAAO7C,EAAE7L,EAAE+4H,SAAW,EACtBpqH,OAAQ9C,EAAE5L,EAAE84H,SAAW,GAE3B,GA5B0C,CA6B5C,EACA+hE,EAAK7R,KAAO,SAASrqE,EAAIz7G,EAAKk3F,GAC5B,IAAI61C,EAAatxB,EAAGonB,YACR,WAAR7iI,GACF+sI,EAAW+K,OAAOvoG,UAAU,aAAasC,MAAK,SAASnpC,GACrD,IAAImtB,EAAKntB,EAAE,GACPw4I,EAAWnU,EAAWoN,OAAOtkH,GACjC,GAAIqrH,EAAU,CACZ,IAAIphC,EAAKohC,EAAS9W,MACdpqB,EAAKkhC,EAAS7W,MAClB6W,EAASiqD,WAAW57J,UAAU,IAAMuwE,EAAG85B,IAAM,QAAQhuG,SACrDs1G,EAASkqD,WAAW77J,UAAU,IAAMywE,EAAG45B,IAAM,QAAQhuG,SACrDs1G,EAASiqD,WAAW57J,UAAU,IAAMuwE,EAAG85B,IAAM,SAAShuG,SACtDs1G,EAASkqD,WAAW77J,UAAU,IAAMywE,EAAG45B,IAAM,SAAShuG,SACtDs1G,EAASiqD,WAAW57J,UAAU,IAAMuwE,EAAG85B,IAAM,WAAWhuG,SACxDs1G,EAASkqD,WAAW77J,UAAU,IAAMywE,EAAG45B,IAAM,WAAWhuG,SACpDs1G,EAASmqD,gBAAgBnqD,EAASmqD,eAAe97J,UAAU,QAAQ3D,SACnEs1G,EAASoqD,WAAWpqD,EAASoqD,UAAU/7J,UAAU,QAAQ3D,SACzDs1G,EAASqqD,eAAerqD,EAASqqD,cAAch8J,UAAU,QAAQ3D,SACrEmhG,EAAW8T,WAAW9xG,OAAO,MAAQ+wE,EAAG85B,IAAM,SAAShuG,SACvDmhG,EAAW8T,WAAW9xG,OAAO,MAAQixE,EAAG45B,IAAM,SAAShuG,QACzD,CACF,IAEF,IAAI21G,EAAUvhJ,GAAe,WAARA,EAAsCA,EAAnB23L,EAAK3lD,QAAQv2B,GAEjD+vF,EADa7T,EAAK/wJ,KAAK60E,GACU36F,QAAO,SAASuwC,GACnD,OAAOA,EAAGk5E,SACZ,IAAGxsI,KAAI,SAASszD,GACd,OAAOA,EAAGmpF,UACZ,IACA+G,EAAOxjJ,KAAI,SAASuzI,GAClB,IAAIjgF,EAAKsmI,EAAKplD,UAAU92B,EAAI61B,GAC5B,GAAoB,SAAhBjgF,EAAGkxG,UAAuBlxG,EAAGmpF,WAAY,CAC3C,IAAIixD,EAAkBlqD,EAAOmqD,WAAU,SAAS11H,GAC9C,OAAOA,IAAS3kB,EAAGmpF,UACrB,IACIixD,GAAmB,GACrBlqD,EAAOlxF,QAAQkxF,EAAOptF,OAAOs3I,EAAiB,GAAGrsL,QAErD,CACF,IACA,IAAI0pL,EAAW,CAAE6C,MAAO,CAAE18K,KAAM,EAAGF,MAAO,IAC1C,OAAO40G,EAAI1I,YAAYsmB,EAAOxjJ,KAAI,SAASuzI,GACzC,OAAO,WACL,GAAKA,EAAL,CACA,IAAIjgF,EAAKsmI,EAAKplD,UAAU92B,EAAI61B,GACvBp6C,IAAMA,EAAO,CAAC,GACnBA,EAAK4xG,SAAWA,EAChB5xG,EAAKs0G,oBAAsBA,EAC3B,IAAII,EAASjU,EAAKkU,QAAQpwF,EAAIpqD,EAAI6lC,GAMlC,OALI7lC,EAAGy6I,cACLlD,GAAev3I,EAAIA,EAAG06I,YAAc,EAAGjD,GAAU,GAEnDz3I,EAAGqnC,GAAKrnC,EAAG9lB,MAAM7yC,QACjB24D,EAAGkkI,IAAM5xD,EAAI3J,UAAU3oE,EAAGqnC,GAAIrnC,EAAGg8F,KAC1Bu+C,CAXU,CAYnB,CACF,IACF,EACAjU,EAAKkU,QAAU,SAASpwF,EAAIpqD,EAAI6lC,GAE9B,IAEIxgG,EAAG67J,EAAIrR,EAFP4nD,GADJ5xG,EAAOA,GAAQ,CAAC,GACI4xG,UAAY,CAAC,EAC7B0C,EAAsBt0G,EAAKs0G,qBAAuB,GAEtDn6I,EAAGu8F,WACH,IAAI7gB,EAAatxB,EAAGonB,YAChByO,EAAOjgF,EAAGuoF,IACVjI,EAAWL,EAAKvyH,OAAO,GACvBo7K,EAAgBxC,EAAKwC,cAAc7oD,GACnC06D,EAAej/D,EAAWoN,OAAO9oF,EAAGqwF,cACxC,GAAKsqD,EAAL,CAEA,GADA36I,EAAGy6I,aAAez6I,EAAGk5E,YAAsD,IAAzCihE,EAAoBrzM,QAAQk5D,EAAGuoF,OAA+D,IAAhD4xD,EAAoBrzM,QAAQk5D,EAAGmpF,YAC3GnpF,EAAGy6I,aAA6B,SAAdz6I,EAAGowF,OAAmB,CAC1C,IAAIwqD,EAAW56I,EAAGg1G,UAAY,GAAK,EAClB,WAAbh1G,EAAG8Z,QACL8gI,GAAY56I,EAAGuzG,SAEjBgkC,GAAev3I,EAAI46I,EAAUnD,GAAU,GACvCF,GAAev3I,EAAIA,EAAGjyC,OAAS,EAAG0pL,GAAU,EAC9C,EACuB,IAAnB5xG,EAAKg1G,gBAAoC,IAAd76I,EAAG86I,SAAmB96I,EAAG86I,OAu5C1D,SAAqB96I,EAAIy3I,GACvB,OAAOz3I,EAAGk5E,UAAYu+D,EAASz3I,EAAGmpF,YAAYnpF,EAAGo2F,MAAQp2F,EAAGjyC,OAAS,CACvE,CAz5CmEgtL,CAAY/6I,EAAIy3I,IACjF,IAAIuD,EAAcL,EAAar6D,EAAW,aACtC26D,EAAmBj7I,EAAGk7I,kBACtBC,EAAwBF,GAAoBj7I,EAAG86I,OAC/CM,EAAqBp7I,EAAGq7I,oBACxBhgF,EAAOr7D,EAAGkiI,MAAQoE,EAAKiH,UAAUvtI,GACjCu1I,EAAS,CAACv1I,EAAGuwF,OAAQ4qD,EAAuBC,GAAoBnxM,KAAK,KACzE,IAAK5E,EAAI,EAAGA,EAAIg2H,EAAK53H,OAAQ4B,IAC3Bg2H,EAAKh2H,GAAGkwM,OAASA,EAEnBv1I,EAAGsiI,YAAc,CAAC,EACdtiI,EAAGmiI,cAAaniI,EAAGs7I,gBAAkBt7I,EAAGmiI,aAC5CniI,EAAGmiI,YAAc,CAAC,EAClBniI,EAAGu7I,OAAS,KACZ,IAAIC,EAAW,CAAC,EAMhB,GAAKx7I,EAAG2xC,QAAR,CACA,IAEIq8F,EACAyN,EAHAC,EAAcpV,EAAKqV,gBAAgB37I,GACnC47I,EAAmBtV,EAAKuV,qBAAqB77I,GAG7C87I,EAA2B,WAAb97I,EAAG8Z,MACjBiiI,EAA4B,YAAb/7I,EAAG8Z,MACtB,GAAmB,eAAf9Z,EAAGgzG,QAA0B,CAC/B,IAAIgpC,EAkRR,SAAyBh8I,EAAIq7D,GAC3B,IACIh2H,EADA4jE,EAAM,GAENgzI,EAAQ,SAAS5kM,EAAG6kM,GACtB,IAAIC,EAAK9kM,EAAEu7L,KAAKsJ,GACL,OAAPC,GACFlzI,EAAIjlE,KAAKsuI,EAAInkC,WAAW,CAAC,EAAG92F,EAAG,CAAE7L,EAAG2wM,IAExC,EACA,GAAI9gF,EAAK53H,OAAQ,CACf,IAAK4B,EAAI,EAAGA,EAAIg2H,EAAK53H,OAAQ4B,IAC3B42M,EAAM5gF,EAAKh2H,GAAI,GAEjB42M,EAAM5gF,EAAKh2H,EAAI,GAAI,EACrB,CACA,OAAO4jE,CACT,CAlSuBmzI,CAAgBp8I,EAAIq7D,GACvCogF,EAAcnV,EAAKoP,SAAS11I,EAAIg8I,GAChChO,EAAW8N,EAAcL,EAAcO,CACzC,MACEP,EAAcnV,EAAKoP,SAAS11I,EAAIq7D,GAChC2yE,EAAW8N,GAAoC,WAArB97I,EAAGizG,cAA6BwoC,EAAcpgF,EAE1E,IA6BIghF,EA7BAC,EAAWt8I,EAAGu8I,UAAYd,EAC1Be,EA2SN,SAAwBx8I,EAAIq7D,GAC1B,IACIh2H,EAAGyK,EADHm5D,EAAM,GAEN++G,EAAW3sD,EAAK53H,QAAU43H,EAAKA,EAAK53H,OAAS,GAAG+H,EAAI6vH,EAAK,GAAG7vH,EAC5DywM,EAAQ,SAASt0J,EAAIu0J,GACvB,IAAIC,EAAKx0J,EAAGirJ,KAAKsJ,GACN,OAAPC,GACFlzI,EAAIjlE,KAAKsuI,EAAInkC,WAAW,CAAC,EAAGxmD,EAAI,CAAEn8C,EAAG2wM,IAEzC,EACA,GAAIn8I,EAAGq1G,cAAgBh6C,EAAK53H,OAAQ,CAClC,IAAK4B,EAAI,EAAGA,EAAIg2H,EAAK53H,OAAQ4B,IAAK,CAChC,IAAIgS,EAAIgkH,EAAKh2H,GACTgS,EAAEy8L,QAAUhkM,GACdmsM,EAAM5kM,EAAG2wK,EAAW,EAAI,GAE1Bl4K,EAAUuH,EAAEy8L,KACd,CACAmI,EAAM5gF,EAAKh2H,EAAI,GAAI2iL,EAAW,EAAI,EACpC,CACA,OAAO/+G,CACT,CAhUoBwzI,CAAez8I,EAAIq7D,GACrC,IAAKqgB,EAAW6R,oBAAqB,CACnC,IAAI8rD,EAAiBr5I,EAAG+vF,cACpB2sD,EAAgB,CAAC,EACrB,IAAKr3M,EAAI,EAAGA,EAAIg0M,EAAe51M,OAAQ4B,IAAK,CAC1C67J,EAAKm4C,EAAeh0M,GAEpB,IAAIs3M,GADJ9sD,EAAWnU,EAAWoN,OAAOoY,IACF4nC,EAAgB,QACvC8T,EAAgBD,EAAYl0D,UAAUF,IAC1C,IAAIm0D,EAAcE,GAAlB,CACAF,EAAcE,GAAiB,EAC/B,IAAIC,EAAwB,MAAbv8D,EAAmB,MAAQq8D,EAAYvf,QAAU,IAAMuf,EAAYp4E,QAAU,IAAMo4E,EAAYvf,QAAU,MAAQuf,EAAYp4E,QAC5I+hE,EAAKwW,SAAS1yF,EAAIpqD,EAAI,CACpBq7D,KAAMihF,EACNK,cACAvtF,MAAOygC,EAASoqD,UAAUv8J,OAAO,IAAMuiG,GACvC88D,WAAYltD,EAASmqD,eAAet8J,OAAO,IAAMuiG,GACjDr5H,KAAMi2L,EACNG,QAAStB,IAEXpV,EAAK2W,aAAa7yF,EAAIpqD,EAAI,CACxB28I,cACAvtF,MAAOygC,EAASqqD,cAChBtzL,KAAMi2L,EACNG,QAAStB,GAf+B,CAiB5C,CACF,CAEA,IAAIwB,EAAiB5W,EAAK6W,aAAan9I,GACnCo9I,EAAiB9W,EAAK6W,aAAan9I,EAAI,SAC3C,GAAIA,EAAG8Z,OAAS9Z,EAAGoxG,OAASpxG,EAAGoxG,MAAMt3F,MAAO,CAC1C,IAEIujI,EACAC,EACAC,EACAC,EALAC,GAAgBnX,EAAKoX,aAAa19I,EAAIm7I,EAAuB+B,EAAe,IAC5ES,GAAgBrX,EAAKoX,aAAa19I,EAAIm7I,EAAuBiC,EAAe,GAAI,CAAEhsC,OAAO,IAgB7F,GAXIpxG,EAAG0oF,aAAe1oF,EAAGuwF,SAAwB,IAAdvwF,EAAGuwF,QACpC8sD,EAAsB/W,EAAKoX,aAAa19I,EAAIo7I,EAAoB8B,EAAe,IAC/EI,EAAsBhX,EAAKoX,aAAa19I,EAAIo7I,EAAoBgC,EAAe,GAAI,CAAEhsC,OAAO,IAC5FmsC,EAAoBE,GAAgBJ,EACpCG,EAAoBG,GAAgBL,IAEpCD,EAAsB,GACtBC,EAAsB,GACtBC,EAAoBE,GACpBD,EAAoBG,IAElB39I,EAAGq1G,cAAgB0mC,GAA+B,eAAf/7I,EAAGgzG,QAA0B,CAClE,IAAI4qC,GAAgB,CAAC,EACrB,IAAKv4M,EAAI,EAAGA,EAAIm3M,EAAY/4M,OAAQ4B,IAClCu4M,GAAcpB,EAAYn3M,GAAGmG,GAAK,EAEpC6wM,EAAW,SAAShlM,GAClB,OAAOumM,GAAcvmM,EAAE7L,GAAK6xM,EAAsBE,CACpD,CACF,MACElB,EAAW,SAAShlM,GAClB,OAAOA,EAAE+5J,MAAQosC,EAAoBD,CACvC,CAEJ,CAOA,GANAjX,EAAKuX,UAAUzzF,EAAIpqD,EAAI,CACrBq7D,KAAM2yE,EACN5+E,MAAO4rF,EACPp0L,KAAMy1L,EACNW,QAAStB,IAEO,aAAd17I,EAAGuwF,OAAuB,CAC5B,IAAIutD,GAAex3M,OAAOgkB,KAAK01C,EAAG+9I,gBAAkB,CAAC,GACrD,IAAK14M,EAAI,EAAGA,EAAIy4M,GAAar6M,OAAQ4B,IAAK,CACxC67J,EAAK48C,GAAaz4M,GAClBwqJ,EAAWnU,EAAWoN,OAAOoY,GAC7B,IAAI88C,GAAgBh+I,EAAG+9I,eAAe78C,IAAO,GACzC95G,GAAK42J,GAAc,GACnB3pM,GAAK2pM,GAAc,GACnB5lC,GAAU4lC,GAAc,GACxBC,GAAa3X,EAAKoX,aACpB19I,EACA5Y,GACAgxH,GAAU8kC,EAAe,GAAKE,EAAe,GAC7C,CAAEhsC,MAAOgH,KACPkuB,EAAKoX,aACP19I,EACA3rD,GACA+jK,GAAU8kC,EAAe,GAAKE,EAAe,GAC7C,CAAEhsC,MAAOgH,KAEXkuB,EAAKuX,UAAUzzF,EAAIpqD,EAAI,CACrBq7D,KAAM2yE,EACN5+E,MAAOygC,EAASvP,EAAW,aAC3B15H,KAAMq3L,GACNjB,QAAStB,GAEb,CACF,CACA,IAAI7jD,GAAM,GAUV,GATAA,GAAI7zJ,MAAK,WACP,OAAOsiM,EAAK4X,WAAW9zF,EAAIpqD,EAAI,CAC7Bq7D,OACAjM,MAAO4rF,EACPnrD,WACAmtD,QAASpB,EACTuC,SAAU7X,EAAK8X,aAAap+I,EAAIm7I,IAEpC,IACgB,kBAAZn7I,EAAG93D,KAA0B,CAC/B,IAAIowE,GAAM,CAAE9sE,EAAG,EAAGC,EAAG,IAAK60I,GAC1BuX,GAAI7zJ,MAAK,WACP,IAAIq6M,EAAU,CAAE7yM,EAAG,SAAUC,EAAG,SAAU60I,GACtCuxB,EAAWysC,KAAoBD,GAAW/lI,IAAOtY,EAAGmiI,YAAYliD,EAAO,QAAUjgF,EAAGg0G,SAAS3oK,KAAO83J,EAAe,GACvH,OAAOmjC,EAAK4X,WAAW9zF,EAAIpqD,EAAI,CAC7Bq7D,KAAM+5E,GAAsBp1I,EAAIq7D,GAChCjM,MAAO4rF,EACPn3E,IAAKoc,EAAO,QACZs+D,oBAAoB,EACpBhhM,WAAW,EACXy/L,QAAStB,EACTyC,SAAU7X,EAAK8X,aAAap+I,EAAIm7I,EAAwBtpC,EAAWqrC,EAAe,KAEtF,IACArlD,GAAI7zJ,MAAK,WAEP,OADAg8D,EAAGu7I,OAAS2B,EAAe,IAAMoB,GAAkB,SAASt+I,EAAGo2F,MAAQ+kD,GAo5B7E,SAAsB/wF,EAAIpqD,EAAI6lC,GAC5B,IAAIg+B,EAAM7jE,EAAGuoF,IAAM,UACfltB,EAAOx1B,EAAKw1B,KACZmjF,EAAW34G,EAAKupB,MAAMlxE,UAAU,QAAU2lF,GAAK9jF,KAAKs7E,EAAMi6E,IAC9DkJ,EAAS38J,OAAOtH,SAChBikK,EAAS58J,QAAQh9C,OAAO,OAAQ,gBAAgB67C,QAAQojF,EAAK,GAAGpjF,QAAQ,QAAS,GAAGvzC,KAAK+pG,EAAOjB,OAAQh2C,EAAGs1G,cAAc5lJ,MAAM,eAAgB4kK,EAAQlO,WAAWh8D,EAAIpqD,EAAGu1G,aAAc,GAAK,MAC5LipC,EAASl+J,KAAK,YAAaulD,EAAKm3G,SAAS18J,KAAK,IAAKulD,EAAKj/E,KAC1D,CA15Ba63L,CAAar0F,EAAIpqD,EAAI,CAC1Bq7D,KAAMmhF,EACNptF,MAAO4rF,EACPp0L,KAAM0/K,EAAKoX,aAAa19I,EAAIm7I,EAAuB+B,EAAe,GAAI,CAAE/mM,IAAK6pD,EAAGu7I,SAChFyB,QAAStB,GAEb,GACF,MAAW17I,EAAGqwD,MAAMvxG,eAAe,aACjC+4I,GAAI7zJ,MAAK,WACPg8D,EAAGu7I,OAAS2B,EAAe,IAAMoB,KAAoBt+I,EAAGo2F,MAAQ+kD,EAClE,IAEF,IAAIuD,GAAiBtoF,EAASJ,mBAAmB,cAAe,YAA3CI,CAAwDp2D,GA+G7E,OA9GK6lC,EAAKg1G,WAAe6D,IAA8B,WAAZ1+I,EAAGo2F,MAC5CyB,GAAI7zJ,MAAK,WACP,OA66BN,SAAmBomH,EAAIpqD,GACrB,IAII2+I,EAJAjjE,EAAatxB,EAAGonB,YAChByO,EAAOjgF,EAAGuoF,IACVjI,EAAWL,EAAKvyH,OAAO,GACvBxU,EAAW8mD,EAAGqwD,MAAM3f,KAAKrlG,KAEzBoqM,GAAcz1I,EAAGqwD,MAAMhzG,KAAKxQ,MAAMi3K,EAAaha,aAAe,IAAIrmK,OACtE,GAAIu8D,EAAGqwD,MAAMvxG,eAAe,YACV,WAAZkhD,EAAGo2F,MAAiC,UAAZp2F,EAAGo2F,KAC7BuoD,EAAgB3+I,EAAGu7I,OAASv7I,EAAGqwD,MAAMwhD,SAAW34J,EAAWkqJ,EACtC,QAAZpjG,EAAGo2F,MAA8B,SAAZp2F,EAAGo2F,OACjCuoD,EAAgB3+I,EAAGu7I,OAASv7I,EAAGqwD,MAAMwhD,SAAW34J,GAAYmqJ,EAAYoyC,EAAatyC,QAElF,CACL,IAAI+vC,EAAWC,GAAwBnzI,GACvC,GAAgB,kBAAZA,EAAG93D,KACLy2M,EAAgB3+I,EAAGu7I,WACd,CACL,IAAIqD,EAAa,IAAM1lM,EACnBg6L,IACF0L,EAAa,GAAM1lM,EACF,YAAb8mD,EAAG8Z,QACL8kI,GAAc5+I,EAAGuzG,UAGrBorC,EAAgB,GAAKC,GAAc5+I,EAAGg1G,UAAYh1G,EAAGg1G,UAAY,EAAI,EACvE,CACKk+B,IAEDyL,GADe,MAAbr+D,EAC2B,QAAZtgF,EAAGo2F,KAAiBl9I,GAAY8mD,EAAGyzG,eAAiB,EAAI,GAAKv6J,GAAY8mD,EAAGyzG,eAAiB,IAAM,IAEvF,UAAZzzG,EAAGo2F,KAAmBl9I,GAAY8mD,EAAGyzG,eAAiB,EAAI,IAAOv6J,GAAY8mD,EAAGyzG,eAAiB,GAAM,GAG9H,CACA,IACI59I,EAAWrqB,EAAGC,EASdqpL,EAVA10F,EAAMkmG,EAAKuY,cAAcz0F,EAAIpqD,GAWjC,GATiB,MAAbsgF,GACF90I,EAAIw0D,EAAGo9H,QAAUp9H,EAAGukE,QAAU,EAC9B94H,EAAgB,QAAZu0D,EAAGo2F,KAAiBh2D,EAAMu+G,EAAgBv+G,EAAMu+G,IAEpDlzM,EAAIu0D,EAAGo9H,QAAUp9H,EAAGukE,QAAU,EAC9B/4H,EAAgB,UAAZw0D,EAAGo2F,KAAmBh2D,EAAMu+G,EAAgBv+G,EAAMu+G,EACtD9oL,EAAY,CAAEi0C,OAAQ,MAAOr/D,OAAQ,IAGvB,kBAAZu1D,EAAG93D,KAA0B,CAC/B,IAAI42M,EAAa9+I,EAAGsiI,YAAYtiI,EAAGuoF,IAAM,QAKzC,GAJAusC,EAAQ,CACNr3I,UAAWqhK,EACX1oD,KAAMp2F,EAAGo2F,MAEP0oD,GAAcA,EAAW/2M,QAAU+2M,EAAW/2M,OAAOjC,WAAY,CACnE,IAAIi5M,EAAczqB,EAAQnC,aAAa2sB,EAAW/2M,OAAOjC,YACzDgvL,EAAMyD,WAAawmB,EAAYvzM,EAC/BspL,EAAM0D,UAAYumB,EAAYtzM,CAChC,CACIu0D,EAAGqwD,MAAMvxG,eAAe,cAC1Bg2K,EAAMx8G,IAAM,EAEhB,CAEA,OADAtY,EAAGg/I,eAAiBL,EACbhZ,EAAOlR,KAAKrqE,EAAI61B,EAAO,QAAS,CACrC20C,cAAe50H,EACf94C,SAAU84C,EAAG+7F,MAAQ,cACrB84B,YAAan5C,EAAW4O,WAAWhK,GACnCw0C,QACAj/J,YACA8jF,WAAY,CAAEnuG,IAAGC,IAAG,cAAe,WAEvC,CAn/BawrL,CAAU7sE,EAAIpqD,EACvB,IAEF63F,GAAI7zJ,MAAK,WACP,IAIIi7M,EACAj7M,EACAk7M,EACAC,EAPA5wL,EAAIyxC,EAAGo2F,KAAK1oI,OAAO,GACnB0xL,EAAU97C,EAActjG,EAAGo2F,MAAM1oI,OAAO,GACxC0yE,EAAMkmG,EAAKuY,cAAcz0F,EAAIpqD,GAC7Bq/I,EAAiBtD,EAAe/7I,EAAGuzG,QAAU,GAK7CvzG,EAAGywD,YAAciuF,IAAkB1+I,EAAGy6I,gBACxB,kBAAZz6I,EAAG93D,KACL+2M,EAASX,GAAkB,UAE3BW,EAASX,KACQ,MAAbh+D,GAA0B,MAAN/xH,IACtByxC,EAAGu7I,OAASt1M,KAAK6mB,IAAImyL,EAAO/kM,MAAQ,EAAI+kM,EAAOthL,OAASyiE,EAAM,EAAGi/G,MAIvE,IAAIC,EAAU,EACVC,EAAa,EAcjB,GAbIv/I,EAAGy6I,eACL6E,EAAUr5M,KAAK6mB,IACbuyL,EACAJ,EAAO9kM,OAAS,EAAU,MAANoU,EAAY6xE,EAAM6+G,EAAOrhL,KAAOqhL,EAAOvhL,MAAQ0iE,EAAM,GAEvEpgC,EAAGqwD,MAAMhzG,OAASq+H,EAAW4O,WAAWhK,KAC1Ci/D,GAAcv/I,EAAGg/I,gBAAkB,IAAMh/I,EAAG04H,aAAe,GACjD,MAANnqK,IACFgxL,GAAc/J,GAAiBx1I,KAGnCA,EAAG06I,WAAaz0M,KAAK6mB,IAAIwyL,EAASC,IAEhCv/I,EAAGywD,WAAY,CACjBzsH,EAAO,CAAEwH,EAAG,EAAGC,EAAG,EAAGgmB,EAAG,EAAGjD,EAAG,EAAGmD,EAAG,EAAG0E,EAAG,GAC1C,IAAImpL,EAAgB,CAAC,EAAG,GACpBzxL,EAA6B,kBAAdiyC,EAAG86I,OAAsB96I,EAAG86I,OAAS,EACxD,GAAiB,MAAbx6D,GAOF,GANU,MAAN/xH,EACFvqB,EAAKuqB,GAAKyxC,EAAGu7I,QAEbv3M,EAAKuqB,GAAKyxC,EAAGu7I,OAASt1M,KAAK6mB,IAAImyL,EAAO/kM,MAAQ,EAAIkmF,EAAM6+G,EAAOxhL,IAAM,EAAG4hL,GACxEG,EAAc/sI,WAEZwsI,EAAO/kM,MAAQ,EAAG,CACpB,IAAIulM,EAASR,EAAOvhL,OAASsiC,EAAGo9H,QAAUp9H,EAAGukE,SACzCk7E,EAAS,IACXz7M,EAAK4xJ,GAAK,EACV5xJ,EAAKytB,EAAIguL,GAEX,IAAIC,EAAS1/I,EAAGo9H,QAAU6hB,EAAOrhL,KAC7B8hL,EAAS,IACX17M,EAAK8uB,GAAK,EACV9uB,EAAKwqB,EAAIkxL,EAEb,OAUA,GARU,MAANnxL,GACFyxC,EAAGu7I,OAASt1M,KAAK6mB,IAAImyL,EAAO9kM,OAAS,EAAIimF,EAAM6+G,EAAOrhL,KAAO,EAAGyhL,GAChEr7M,EAAKuqB,GAAKyxC,EAAGu7I,OAASxtL,IAEtBiyC,EAAGu7I,OAASt1M,KAAK6mB,IAAImyL,EAAO9kM,OAAS,EAAI8kM,EAAOvhL,MAAQ0iE,EAAM,EAAGi/G,GACjEr7M,EAAKuqB,GAAKyxC,EAAGu7I,OAASxtL,EACtByxL,EAAc/sI,WAEZwsI,EAAO9kM,OAAS,EAAG,CACrB,IAAIwlM,EAASV,EAAOthL,QAAUqiC,EAAGo9H,QAAUp9H,EAAGukE,SAC1Co7E,EAAS,IACX37M,EAAK8xJ,GAAK,EACV9xJ,EAAKqyB,EAAIspL,GAEX,IAAIC,EAAS5/I,EAAGo9H,QAAU6hB,EAAOxhL,IAC7BmiL,EAAS,IACX57M,EAAK6xJ,GAAK,EACV7xJ,EAAK2tB,EAAIiuL,EAEb,CAEF57M,EAAK8kM,GAA+B,SAAd9oI,EAAGowF,OAAoBpwF,EAAGp4D,SAAWo4D,EAAG0oF,YAAY3+F,OAAOy1J,EAAc,IAC3Fx/I,EAAGqwD,MAAMhzG,OAASq+H,EAAW4O,WAAWhK,KAC1Ct8I,EAAKuqB,IAAMinL,GAAiBx1I,IAAOA,EAAGqwD,MAAMwhD,UAAY,IAEtD7xG,EAAGuwF,QAAwB,SAAdvwF,EAAGowF,UAClB8uD,EAAa,CAAE1zM,EAAG,EAAGC,EAAG,EAAGgmB,EAAG,EAAGjD,EAAG,EAAGmD,EAAG,EAAG0E,EAAG,IACrC+oL,GAAWp/I,EAAGg1G,UACrBh1G,EAAGuwF,SAAwB,IAAdvwF,EAAGuwF,SAAiB2uD,EAAWE,IAAYC,IAC1C,IAAdr/I,EAAGuwF,QAAiC,UAAdvwF,EAAGuwF,OAC3B2uD,EAAWpW,GAAiB9oI,EAAG0oF,YAAY3+F,OAAOy1J,EAAc,IACzC,QAAdx/I,EAAGuwF,QAAkC,aAAdvwF,EAAGuwF,SACnC2uD,EAAWpW,GAAiB,CAAC9oI,EAAGywF,kBAAmBzwF,EAAG0wF,mBAAmB8uD,EAAc,KAG7F,CACId,KACFS,EAAkB/oF,EAASJ,mBAAmB,cAAe,iBAA3CI,CAA6DhM,EAAIpqD,IAExD,kBAAlBA,EAAGywD,aACZwkF,GAAWjxM,EAAMg8D,EAAGywD,YACpBwkF,GAAWiK,EAAYl/I,EAAGywD,aAE5B4jE,EAAMl/B,WAAW/qC,EAAI0rF,GAAe91I,GAAKh8D,GACzCqwL,EAAMl/B,WAAW/qC,EAAI2rF,GAAqB/1I,GAAKk/I,GAC/C7qB,EAAMl/B,WAAW/qC,EAAI4rF,GAAwBh2I,GAAKm/I,EACpD,IACO7sE,EAAI1I,YAAYiuB,GAvQA,CA9BE,CAyBzB,SAASymD,GAAkBhlH,GACzB,IAAIuqC,EAAMoc,GAAQ3mD,GAAU,QAE5B,OADKkiH,EAAS33E,KAAM23E,EAAS33E,GAoVjC,SAA4B7jE,EAAI6jE,EAAKs3E,GACnC,IAAI19K,EAAKE,EACLC,EAAMF,EACV,GAAIsiC,EAAGsiI,YAAYz+D,GAAKx4H,OACtBoyB,EAAM2c,IACNzc,GAAS,IACTC,EAAOwc,IACP1c,GAAQ,IACRsiC,EAAGsiI,YAAYz+D,GAAKrjF,MAAK,WACvB,IAAI+hJ,EAAYoT,GAAgBvyM,MAC5B6hE,EAAKqvH,EAAQ1C,KAAK2Q,EAAUx6L,OAAOjC,YACvC23B,EAAMx3B,KAAK8mB,IAAI0Q,EAAKwnC,EAAGxnC,KACvBE,EAAS13B,KAAK6mB,IAAI6Q,EAAQsnC,EAAGtnC,QAC7BC,EAAO33B,KAAK8mB,IAAI6Q,EAAMqnC,EAAGrnC,MACzBF,EAAQz3B,KAAK6mB,IAAI4Q,EAAOunC,EAAGvnC,MAC7B,QACK,CACL,IAAImiL,EAAYvZ,EAAK8X,aAAap+I,EAAIm7I,GACtC19K,EAAME,EAASkiL,EAAUC,IAAI,CAAE/5J,GAAI,EAAGC,GAAI,EAAG9sC,SAAU,IACvD0kB,EAAOF,EAAQmiL,EAAUE,IAAI,CAAEh6J,GAAI,EAAGC,GAAI,EAAG9sC,SAAU,GACzD,CACA,MAAO,CACLukB,MACAE,SACAC,OACAF,QACAvjB,OAAQwjB,EAASF,EACjBvjB,MAAOwjB,EAAQE,EAEnB,CAjXwCoiL,CAAmBhgJ,EAAI6jE,EAAKs3E,IACzDK,EAAS33E,EAClB,CAyQF,EAuGAyiE,EAAK6W,aAAe,SAASn9I,EAAIoxG,GAC/B,IAAI9wB,EAAWtgF,EAAGuoF,IAAI76H,OAAO,GACzBuyL,EAAe,CAAEz0M,EAAG,MAAOC,EAAG,SAAU60I,GACxCnlI,EAAO6kD,EAAGo2F,OAAS6pD,EAAe,GAAK,EACvCh3I,EAAM,EAAE,EAAG,EAAG9tD,GAAOA,GAUzB,MARc,YADFi2J,GAASpxG,EAAGoxG,OAAS,CAAC,GAAGt3F,MAAQ9Z,EAAG8Z,UACP,MAAbwmE,KAC1Br3E,EAAMA,EAAIv8D,KAAI,SAASg5B,GACrB,OAAQA,CACV,KAEEs6B,EAAGo2F,MACLntF,EAAIjlE,KAAK,CAAEwqB,GAAI,EAAGmD,GAAI,EAAGF,EAAG,EAAG4E,EAAG,GAAI2pC,EAAGo2F,KAAK1oI,OAAO,KAEhDu7C,CACT,EACAq9H,EAAKqV,gBAAkB,SAAS37I,GAC9B,MAA4B,MAArBA,EAAGuoF,IAAI76H,OAAO,GAAa,SAASrW,GACzC,OAAOq5H,EAAa1wE,EAAGo9H,QAAUp9H,EAAGk6H,IAAI7iL,EAAE7L,GAAI,EAChD,EAAI,SAAS6L,GACX,OAAOq5H,EAAa,EAAG1wE,EAAGo9H,QAAUp9H,EAAGk6H,IAAI7iL,EAAE7L,GAC/C,CACF,EACA86L,EAAKuV,qBAAuB,SAAS77I,GACnC,IAAIkgJ,EAgCN,SAAwBlgJ,GACtB,IAAIkzG,EAAoBlzG,EAAGkzG,mBAAqB,GAC5CrhJ,EAAM,SAAS5b,GACjB,OAA2C,IAApCi9J,EAAkBpsK,QAAQmP,EACnC,EACIkqM,EAAQtuL,EAAI,OACZuuL,EAASvuL,EAAI,QACbwuL,EAAUxuL,EAAI,SACdyuL,EAAWzuL,EAAI,UACfqhL,EAAWrhL,EAAI,UACf0uL,EAAYD,GAAYF,GAAUD,GAASE,EAC/C,IAAKE,IAAcrN,EAAU,MAAO,CAAC,EAAG,GACxC,IAAI98C,EAAOp2F,EAAGo2F,KACVpkI,EAAIuuL,GAAavgJ,EAAGwzG,WAAa,GAAK,EAAI,EAC1C9tI,EAn/DQ,EAo/DRxsB,EAAW8mD,EAAGg0G,SAAWh0G,EAAGg0G,SAAS3oK,KAAO,GAchD,OAbIi1M,GAAYH,KACdnuL,GAAK9Y,EAAWkqJ,EAChB19H,IAAMs6B,EAAGg1G,WAAa,GAAK,IAEzBorC,GAAUC,KACZruL,IAAMguC,EAAGg1G,WAAa,GAAK,EAC3BtvI,GA3/DU,GA6/DRwtK,GAAqB,QAAT98C,IACd1wH,GAAKxsB,GAAY,EAAIkqJ,KAEnBg9C,GAAUD,KAAOnuL,GAAKA,GACb,WAATokI,GAA8B,UAATA,IAAkB1wH,GAAKA,GACzC,CACL66K,EAAYvuL,EAAI,EAChBkhL,EAAWxtK,EAAI,EAEnB,CAjEW86K,CAAexgJ,GACpBjyC,EAAQiyC,EAAGozG,gBAAkB,EAC7BvB,EAAW7xG,EAAGqzG,mBAAqB,EACnCrhJ,EAAIkuL,EAAG,GACPx6K,EAAIw6K,EAAG,GACPthB,EAAa5+H,EAAG9lB,MAAM,GAAK8lB,EAAG9lB,MAAM,GACpCumK,EAAezgJ,EAAGkzG,oBAAiE,IAA5ClzG,EAAGkzG,kBAAkBpsK,QAAQ,UACpE45M,GAAiBD,EAKrB,GAJI1yL,IAEFA,GADgB6wK,GAAc,EAAI,GAGhC/sB,EAAU,CACZ,IAAIzb,EAAOp2F,EAAGo2F,KAEdyb,GADmB4uC,IAA0B,QAATrqD,GAA2B,SAATA,IAAoBsqD,IAA2B,WAATtqD,GAA8B,UAATA,GAAoB,GAAK,CAE5I,CACA,MAA4B,MAArBp2F,EAAGuoF,IAAI76H,OAAO,GAAa,SAASrW,GACzC,OAAOq5H,EACL1+G,EAAIguC,EAAGo9H,QAAUp9H,EAAGk6H,IAAImb,GAAQh+L,IAAM0W,EACtC2X,EAAImsI,EAER,EAAI,SAASx6J,GACX,OAAOq5H,EACLhrG,EAAImsI,EACJ7/I,EAAIguC,EAAGo9H,QAAUp9H,EAAGk6H,IAAImb,GAAQh+L,IAAM0W,EAE1C,CACF,EAsCAu4K,EAAKoX,aAAe,SAAS19I,EAAIjyC,EAAO4yL,EAAK96G,GACtCA,IAAMA,EAAO,CAAC,GACnB,IAAIurE,EAAQvrE,EAAKurE,MACjB,GAAIA,IAAUpxG,EAAGoxG,MAAO,MAAO,GAC/B,IAAIj7J,OAAmB,IAAb0vF,EAAK1vF,IAAiB0vF,EAAK1vF,IAAMi7J,EAAQpxG,EAAGoxG,MAAMmC,QAAUvzG,EAAGuzG,QACrEjzB,EAAWtgF,EAAGuoF,IAAI76H,OAAO,GACzB4qD,GAAOtY,EAAGg1G,WAAa,GAAK,EAChC,MAAoB,MAAb10B,EAAmB,OAASvyH,EAAQuqD,EAAMqoI,GAAO,IAAMxqM,EAAMwqM,EAAM,KAAO5yL,EAAQuqD,EAAMqoI,GAAO,MAAQxqM,EAAMwqM,CACtH,EACAra,EAAK8X,aAAe,SAASp+I,EAAIjyC,EAAOozC,GACtC,IAAI+xG,EAAoBlzG,EAAGkzG,mBAAqB,GAC5CrhJ,EAAM,SAAS5b,GACjB,OAA2C,IAApCi9J,EAAkBpsK,QAAQmP,EACnC,EACIkqM,EAAQtuL,EAAI,OACZuuL,EAASvuL,EAAI,QACbwuL,EAAUxuL,EAAI,SAEd0uL,EADW1uL,EAAI,WACSuuL,GAAUD,GAASE,EAC3CO,EAAmB/uL,EAAI,UACvBgvL,EAAwC,WAAtB3tC,GAA+C,WAAblzG,EAAG8Z,QAAuB8mI,GAAiC,YAAb5gJ,EAAG8Z,OAAsC,eAAf9Z,EAAGgzG,QAC/H8tC,EAAgB,EAChBC,EAAa,EACbloC,EAAUgoC,EAAkB7gJ,EAAGuzG,QAAU,EAM7C,GALIqtC,EACF/nC,IAAY,EACH0nC,IACT1nC,EAAU,GAERgoC,IACFC,GAAiBjoC,EACb13G,GAAO,CACT,IAAIshD,EAAM6vB,EAAItU,QAAQ78D,GACtB2/I,EAAgBjoC,EAAU5yK,KAAKsnD,IAAIk1D,GAAO,EAC1Cs+F,EAAaloC,EAAU5yK,KAAKunD,IAAIi1D,EAClC,CAEEziD,EAAGyzG,iBAAmBotC,GAAmB7gJ,EAAG80G,YAC9CgsC,GAAiB,GAAM9gJ,EAAGg0G,SAAS3oK,MAGrC,IAIIo9C,EAAIE,EAAIq4J,EAAIC,EAKZC,EATAj4I,EAAM,CACR63I,cAFFA,IAAkB9gJ,EAAGg1G,WAAa,GAAK,GAAK4rC,GAAoB,EAAI,GAGlEG,cAGEI,EAAK,EACL/qD,EAAOp2F,EAAGo2F,KACV9V,EAAWtgF,EAAGuoF,IAAI76H,OAAO,GACzBumJ,EAAYj0G,EAAGi0G,UAEnB,GAAiB,MAAb3zB,EAEF2gE,GADAC,GAAWN,GAA6B,WAATxqD,GAAqBwqD,GAA6B,QAATxqD,GACrD,GAAK,EACpBwqD,IAAkBK,IAAW,GACjCx4J,EAAKs4J,EAAaE,EAClBt4J,EAAK56B,EAAQ+yL,EAAgBG,EAC7BD,EAAKE,EAAU,GAAK,GACQ,KAAxBj7M,KAAKD,IAAIiuK,KACP2sC,EACFI,GAAM39C,EAGJ29C,GADiB,KAAf/sC,GAA8B,WAAT7d,EAClBgN,EACkB,KAAd6Q,GAA6B,QAAT7d,EACxBiN,EAEA,GAGT89C,EAAK99C,EAAY,GAAK4Q,EAAY,KAEpChrG,EAAI82I,IAAM,SAAS1oM,GACjB,OAAOA,EAAE0uC,GAAK0C,EAAK04J,EAAK9pM,EAAE6B,QAC5B,EACA+vD,EAAI62I,IAAM,SAASzoM,GACjB,OAAOA,EAAE2uC,GAAK2C,EAAKtxC,EAAE6B,SAAW8nM,CAClC,EACA/3I,EAAIm4I,SAAW,SAAS/pM,EAAGoX,GACzB,GAAI8xL,EAAW,CACb,GAAIH,EAAQ,MAAO,MACnB,GAAIC,EAAS,MAAO,OACtB,CACA,OAAKn/G,EAAUzyE,IAAY,IAANA,GAAiB,MAANA,EAGzBA,EAAIwyL,EAAS,IAAML,EAAmB,MAAQ,QAF5C,QAGX,EACA33I,EAAIo4I,SAAW,SAAShqM,EAAGoX,EAAGvY,GAC5B,OAAOuY,GAAK,IAAMA,EAAI,IAAM,GAAMvY,EAAgB,QAAZ8pD,EAAGo2F,OAAmBwqD,GAAoB1qM,EAAI,CACtF,OACK,GAAiB,MAAboqI,EAAkB,CAc3B,GAZA2gE,GADAC,GAAWN,GAA6B,SAATxqD,GAAmBwqD,GAA6B,UAATxqD,GACnD,GAAK,EACpBwqD,IAAkBK,IAAW,GACjCx4J,EAAKq4J,EACLn4J,EAAKo4J,EAAaE,EAClBD,EAAK,EACAJ,GAA4C,KAAxB36M,KAAKD,IAAIiuK,KAE9B+sC,GADiB,KAAf/sC,GAA8B,SAAT7d,GAAiC,KAAd6d,GAA6B,UAAT7d,EACzDgN,EAEA,IAGLw9C,EAAkB,CACpB,IAAIU,EAAMpgH,EAAU+yE,IAAcA,EAAY,EAC9C,GAAY,IAARqtC,EAAW,CACb,IAAIC,EAAKjvE,EAAItU,QAAQsjF,GACrBH,EAAKl7M,KAAKD,IAAIC,KAAKunD,IAAI+zJ,IAAOn+C,EAAY69C,EAC1CD,EAAK,CACP,CACF,CACA/3I,EAAI82I,IAAM,SAAS1oM,GACjB,OAAOA,EAAE0uC,GAAKh4B,GAAS06B,EAAKpxC,EAAE6B,SAAW8nM,GAAMC,EAASE,EAAK9pM,EAAE6B,QACjE,EACA+vD,EAAI62I,IAAM,SAASzoM,GACjB,OAAOA,EAAE2uC,GAAK2C,EAAKtxC,EAAE6B,SAAWmqJ,CAClC,EACAp6F,EAAIm4I,SAAW,SAAS/pM,EAAGoX,GACzB,OAAIyyE,EAAUzyE,IAAsB,KAAhBxoB,KAAKD,IAAIyoB,GACpB,SAEFyyL,EAAU,MAAQ,OAC3B,EACAj4I,EAAIo4I,SAAW,SAAShqM,EAAGoX,EAAGvY,GAE5B,MADgB,UAAZ8pD,EAAGo2F,OAAkB3nI,IAAM,GACxBA,GAAK,IAAMvY,EAAIuY,EAAI,IAAM,GAAMvY,EAAI,CAC5C,CACF,CACA,OAAO+yD,CACT,EAIAq9H,EAAKuX,UAAY,SAASzzF,EAAIpqD,EAAI6lC,GAChCA,EAAOA,GAAQ,CAAC,EAChB,IAAIg+B,EAAM7jE,EAAGuoF,IAAM,OACfltB,EAAO,GAAGrtH,OACZgyD,EAAGoxG,OAASpxG,EAAGoxG,MAAMt3F,MAEnB+rB,EAAKw1B,KAAK5rG,QAAO,SAASpY,GACxB,OAAOA,EAAE+5J,QAAU/5J,EAAEgxL,MACvB,IACE,IACJr6L,OACAgyD,EAAG8Z,MAED+rB,EAAKw1B,KAAK5rG,QAAO,SAASpY,GACxB,OAAQA,EAAE+5J,QAAU/5J,EAAEgxL,MACxB,IACE,IAEFvuH,EAAQ+rB,EAAKupB,MAAMlxE,UAAU,QAAU2lF,GAAK9jF,KAAKs7E,EAAMi6E,IAC3Dx7H,EAAMj4B,OAAOtH,SACbu/B,EAAMl4B,QAAQp6C,OAAO,QAAQi5C,QAAQojF,EAAK,GAAGpjF,QAAQ,QAAS,GAAGA,QAAQ,SAAwB,IAAfolD,EAAK27G,OAAiBhhK,MAAK,SAASnpC,GACpH,OAAO4/F,EAAOjB,OAAO5gE,EAAGsI,OAAOt6C,MAAOiU,EAAE+5J,MAAQpxG,EAAGoxG,MAAMI,UAAYxxG,EAAGwxG,UAC1E,IAAG9hJ,MAAM,gBAAgB,SAASrY,GAChC,OAAOi9K,EAAQlO,WACbh8D,EACA/yG,EAAE+5J,MAAQpxG,EAAGoxG,MAAMoC,UAAYxzG,EAAGwzG,UAClC,GACE,IACN,IAAGlzH,KAAK,IAAKulD,EAAKj/E,MAAM8I,MAAM,UAAW,MACzC2nL,GAAgCr3I,EAAI,CAACkmI,IACrCpsH,EAAMx5B,KAAK,YAAaulD,EAAKm3G,QAC/B,EACA1W,EAAKwW,SAAW,SAAS1yF,EAAIpqD,EAAI6lC,GAE/B,GADAA,EAAOA,GAAQ,CAAC,EACI,SAAhB7lC,EAAGkxG,SAAP,CAGA,IAAIrtC,EAAM7jE,EAAGuoF,IAAM,OACf4lD,EAAWnuI,EAAGoxG,OAASpxG,EAAGoxG,MAAMQ,SAChC6vC,EAAYtT,EAAWtoG,EAAKw1B,KAAK5rG,QAAO,SAASpY,GACnD,OAAOA,EAAE+5J,KACX,IAAK,GACDswC,EAAY1hJ,EAAG4xG,SAAW/rE,EAAKw1B,KAAK5rG,QAAO,SAASpY,GACtD,OAAQA,EAAE+5J,KACZ,IAAK,GACDloB,EAAYrjD,EAAK82G,YACrB,GAAIzzD,GAAao9C,EAAKqb,mBAAmBv3F,EAAIpqD,EAAIkpF,GAE/C,IADA,IAAI04D,EAA8B,UAAhB5hJ,EAAGkxG,SACZ7rK,EAAI,EAAGA,EAAIq8M,EAAUj+M,OAAQ4B,IAAK,CACzC,IAAI81E,EAAKumI,EAAUr8M,GAAGmG,EACtB,GAAIo2M,GAAezmI,EAAKl1E,KAAKD,IAAIm1E,GAAMnb,EAAGixG,MAAQ,IAAK,CAErD,GADAywC,EAAYA,EAAUr6M,MAAM,EAAGhC,GAAG2I,OAAO0zM,EAAUr6M,MAAMhC,EAAI,KACzDu8M,EACC,MADYv8M,GAEnB,CACF,CAEF26D,EAAG6hJ,IAAMvtB,EAAQlO,WAAWh8D,EAAIpqD,EAAGi1G,UAAW,GAI9C,IAHA,IAAI6sC,EAAU3T,EAAe7Z,EAAQlO,WAAWh8D,EAAIpqD,EAAGoxG,MAAM6D,UAAW,GAA/C,EACrB8sC,EAAal8G,EAAKupB,MAClB2tF,EAAal3G,EAAKk3G,WACb3O,EAAQ,EAAGA,GAAS,EAAGA,IAAS,CACvC,IAAIh/E,EAAQg/E,EAAQ2T,EAAahF,EACjC,GAAK3tF,EAAL,CACA,IAAI4yF,EAAO5yF,EAAMlxE,UAAU,QAAU2lF,GAAK9jF,KAAKquJ,EAAQsT,EAAYD,EAAWnM,IAC9E0M,EAAKngK,OAAOtH,SACZynK,EAAKpgK,QAAQp6C,OAAO,QAAQi5C,QAAQojF,EAAK,GAAGpjF,QAAQ,SAAwB,IAAfolD,EAAK27G,OAClEQ,EAAK1hK,KAAK,YAAaulD,EAAKm3G,SAAS18J,KAAK,IAAKulD,EAAKj/E,MAAM45B,MAAK,SAASnpC,GACtE,OAAO4/F,EAAOjB,OACZ5gE,EAAGsI,OAAOt6C,MACViU,EAAE+5J,MAAQpxG,EAAGoxG,MAAMK,UAAYzxG,EAAGyxG,WAAa,OAEnD,IAAG/hJ,MAAM,oBAAoB,SAASrY,GACpC,OAAOi9K,EAAQ1N,UACbvvK,EAAE+5J,MAAQpxG,EAAGoxG,MAAMO,SAAW3xG,EAAG2xG,SACjCt6J,EAAE+5J,MAAQpxG,EAAGoxG,MAAM6D,UAAYj1G,EAAGi1G,UAEtC,IAAGvlJ,MAAM,gBAAgB,SAASrY,GAChC,OAAQA,EAAE+5J,MAAQ0wC,EAAS9hJ,EAAG6hJ,KAAO,IACvC,IAAGnyL,MAAM,UAAW,MACK,oBAAdm2E,EAAKj/E,MAAqBo7L,EAAK1hK,KAAK,IAAKulD,EAAKj/E,KAjBrC,CAkBtB,CACAywL,GAAgCr3I,EAAI,CAACgmI,EAAWC,GA9ChD,CA+CF,EACAK,EAAK2W,aAAe,SAAS7yF,EAAIpqD,EAAI6lC,GACnCA,EAAOA,GAAQA,EACf,IAAIg+B,EAAM7jE,EAAGuoF,IAAM,KACf05D,EAAO3b,EAAKqb,mBAAmBv3F,EAAIpqD,EAAI6lC,EAAK82G,aAC5CuF,EAAKr8G,EAAKupB,MAAMlxE,UAAU,QAAU2lF,GAAK9jF,KAAKkiK,EAAO,CAAC,CAAEz2M,EAAG,EAAGg5B,GAAIw7B,EAAGuoF,MAAS,IAClF25D,EAAGrgK,OAAOtH,SACV2nK,EAAGtgK,QAAQp6C,OAAO,QAAQi5C,QAAQojF,EAAK,GAAGpjF,QAAQ,KAAM,GAAGA,QAAQ,SAAwB,IAAfolD,EAAK27G,OAAiBhhK,MAAK,WACrGqlD,EAAKupB,MAAMlxE,UAAU,QAAQxpB,MAAK,SAAS68C,EAAIgD,GAC7C,OAAO8sE,EAAO9vE,EAAG/sC,GAAI+vC,EAAG/vC,GAC1B,GACF,IACA09K,EAAG5hK,KAAK,YAAaulD,EAAKm3G,SAAS18J,KAAK,IAAKulD,EAAKj/E,MAAM1Z,KAAK+pG,EAAOjB,OAAQh2C,EAAGm1G,eAAiBl+D,EAAO1C,aAAa7kF,MAAM,eAAgB4kK,EAAQlO,WAAWh8D,EAAIpqD,EAAGo1G,cAAep1G,EAAG6hJ,KAAO,GAAK,MAAMnyL,MAAM,UAAW,MACzN2nL,GAAgCr3I,EAAI,CAAC8lI,GACvC,EACAQ,EAAK4X,WAAa,SAAS9zF,EAAIpqD,EAAI6lC,GACjCA,EAAOA,GAAQ,CAAC,EAChB,IAAI61C,EAAatxB,EAAGonB,YAChByO,EAAOjgF,EAAGuoF,IACV1kB,EAAMh+B,EAAKg+B,KAAOoc,EAAO,OACzB5kB,EAAOx1B,EAAKw1B,KAAK5rG,QAAO,SAASpY,GACnC,OAAOA,EAAEgG,IACX,IACI8gM,EAAWt4G,EAAKs4G,SAChB5jC,EAAY10E,EAAKtoF,UAAY,EAAIyiD,EAAGi0G,UACpCkuC,GAAaniJ,EAAGs7I,iBAAmB,CAAC,GAAGz3E,GACvCi7E,EAAaj5G,EAAKupB,MAAMlxE,UAAU,KAAO2lF,GAAK9jF,KAAKigB,EAAGyzG,eAAiBp4C,EAAO,GAAIi6E,IAClF8M,EAAc,GA8BlB,SAASC,EAAe9zL,EAAG4yC,GACzB5yC,EAAEiyB,MAAK,SAASnpC,GACd,IAAIkrL,EAAYntJ,EAAGsI,OAAOt6C,MACtBujK,EAAe47B,EAAU7kJ,OAAO,oBAChC0yG,EAAS+tD,EAASiD,SAAS/pM,EAAG8pD,GAC9BtrC,EAAYgwE,EAAKm3G,QAAQ9vM,KAAKq1L,EAAUx6L,OAAQsP,IAAM6pF,EAAU//B,IAAqB,KAAVA,EAAc,WAAaA,EAAQ,IAAMg9I,EAAS4B,IAAI1oM,GAAK,KAAO8mM,EAAS2B,IAAIzoM,GAAKA,EAAE6B,SAAW,GAAK,IAAM,IACvLopM,EAASx+B,EAAanX,UAAU41B,GAChC7vL,EAAaywJ,EAAe9rJ,EAAE6B,SAC9BqpM,EAAepE,EAASkD,SAAShqM,EAAG6pF,EAAU//B,IAAUA,EAAQ,GAAImhJ,EAAS,GAAK5vM,GAItF,GAHI6vM,IACF1sL,GAAa66G,EAAa,EAAG6xE,IAE3B57C,EAAansH,QAAS,CACxB,IAAIukE,EAAWwjF,EAAU7kJ,OAAO,QAChCqhE,EAASz+D,KAAK,CACZzqB,YACA,cAAeu6H,IAEjBrxC,EAASrvF,MAAM,UAAW,GACtBswC,EAAGwiJ,2BACLxiJ,EAAGwiJ,2BAEP,KAAO,CACL,IACIC,EADUnuB,EAAQ1C,KAAKjrB,EAAa5+J,QAAQmS,MACxB,CAAE9S,KAAM,GAAK8iB,MAAO,IAAMkmI,GAClDuW,EAAarmH,KAAK,YAAazqB,EAAY66G,EAAa+xE,EAAS,GACnE,CACF,GACF,CAzDA3D,EAAWl9J,QAAQp6C,OAAO,KAAKi5C,QAAQojF,EAAK,GAAGr8H,OAAO,QAAQ84C,KAAK,cAAe,UAAUE,MAAK,SAASnpC,GACxG,IAAIkrL,EAAYntJ,EAAGsI,OAAOt6C,MACtBs/M,EAAat4F,EAAGk8B,UAAU7iJ,OAC9B8+L,EAAUr1L,KAAK42K,EAAara,aAAc00C,EAAS4B,IAAI1oM,GAAI8mM,EAAS2B,IAAIzoM,IAAInK,KAAKonL,EAAQ5jF,KAAM,CAC7F1B,OAAQ33F,EAAEq5F,KACVrlG,KAAMgM,EAAE6B,SACRF,MAAO3B,EAAEq4K,UACT9/G,OAAQv4D,EAAE5E,WACVid,MAAOrY,EAAE0mB,UACTvL,QAASnb,EAAE69K,YACX9lF,SAAU/3F,EAAE89K,aACZ7lF,aAAcj4F,EAAE+9K,iBAChB3lF,OAAQp4F,EAAEg+K,aACTh4K,KAAKhG,EAAEgG,MAAMnQ,KAAK42K,EAAapgB,gBAAiBt5C,GAC/CA,EAAGk8B,UAAUo8D,GACfN,EAAYp+M,KAAKomH,EAAGk8B,UAAU9nF,MAAMrrB,MAAK,WACvCkvK,EAAe9f,EAAWhoB,EAC5B,KAEA8nC,EAAe9f,EAAWhoB,EAE9B,IACA88B,GAAgCr3I,EAAI,CAACmmI,IACrC2Y,EAAWj9J,OAAOtH,SACdsrD,EAAK04G,oBACPO,EAAWt+J,MAAK,SAASnpC,GACvB+9B,EAAGsI,OAAOt6C,MAAMs6C,OAAO,QAAQxwC,KAAK42K,EAAara,aAAc00C,EAAS4B,IAAI1oM,GAAI8mM,EAAS2B,IAAIzoM,GAC/F,IA+BF2oD,EAAGwiJ,0BAA4B,WAC7B,IAAIrvC,EAAoBnzG,EAAGmzG,kBAC3B,GAAKA,GAA2C,UAAtBA,EAA1B,CACA,IAAIwvC,GAAsD,IAAvCxvC,EAAkBrsK,QAAQ,QACzCwhJ,EAA2B,MAArBtoF,EAAGuoF,IAAI76H,OAAO,GACpBk1L,EAAM,EACNC,EAAMv6D,EAAMl+B,EAAGonB,YAAYt3H,MAAQkwG,EAAGonB,YAAYr3H,OACtD,IAA6C,IAAzCg5J,EAAkBrsK,QAAQ,UAAkB,CAC9C,IAAI29G,EAAK6tB,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,KACpC4mD,EAAM5iJ,EAAGk6H,IAAIz1E,EAAG,IAAMzkD,EAAGo9H,QACzBylB,EAAM7iJ,EAAGk6H,IAAIz1E,EAAG,IAAMzkD,EAAGo9H,OAC3B,CACA,IAAIrwK,EAAM9mB,KAAK8mB,IAAI61L,EAAKC,GACpB/1L,EAAM7mB,KAAK6mB,IAAI81L,EAAKC,GACpBzsD,EAAOp2F,EAAGo2F,KACV0sD,EAAkB1oK,IAClB2oK,GAAkB,IAgCtB,IAAK,IAAIjhD,KA/BTg9C,EAAWt+J,MAAK,SAASnpC,GACvB,IAAIkrL,EAAYntJ,EAAGsI,OAAOt6C,MAE1B,GADmBm/L,EAAU7kJ,OAAO,oBACnBlD,QAAS,CACxB,IAAIyqB,EAAKqvH,EAAQ1C,KAAK2Q,EAAUx6L,QAC5Bi7M,EAAS,EACT16D,GACErjF,EAAGvnC,MAAQ5Q,GACNm4C,EAAGrnC,KAAO7Q,KADCi2L,EAAS,IAGzB/9I,EAAGtnC,OAAS7Q,GACPm4C,EAAGxnC,KAAOuiC,EAAGi0G,UAAY,EAAI58J,EAAE6B,SAAW,GAAK6T,KADnCi2L,EAAS,GAGhC,IAAIrxL,EAAI4wK,EAAU7kJ,OAAO,QACrBslK,EACEL,GAAchxL,EAAEjC,MAAM,UAAW,IAErCiC,EAAEjC,MAAM,UAAW,GAEjBozL,EADW,WAAT1sD,GAA8B,UAATA,EACLnwJ,KAAK8mB,IAAI+1L,EAAiBx6D,EAAMrjF,EAAGxnC,IAAMwnC,EAAGrnC,OAE5C,IAGlBmlL,EADW,QAAT3sD,GAA2B,SAATA,EACFnwJ,KAAK6mB,IAAIi2L,EAAiBz6D,EAAMrjF,EAAGtnC,OAASsnC,EAAGvnC,OAE/C0c,IAGxB,CACF,IACoBshG,EAAWoN,OAAQ,CACrC,IAAI+G,EAAWnU,EAAWoN,OAAOgZ,GACjC,GAAI9hG,EAAGuoF,MAAQsH,EAAS9W,MAAMwP,KAAOvoF,EAAGuoF,MAAQsH,EAAS7W,MAAMuP,IAA/D,CACA,IAAI06D,EAAY36D,EAAMuH,EAAS7W,MAAQ6W,EAAS9W,MAC5CkqE,IACFA,EAAU,oBAAsBjjJ,EAAGuoF,KAAOu6D,EAC1CG,EAAU,oBAAsBjjJ,EAAGuoF,KAAOw6D,EAJgC,CAM9E,CAtD+D,CAuDjE,EACA/iJ,EAAGs3I,iCAAmC,SAAS4L,GAC7C,IAAI56D,EAA2B,MAArBtoF,EAAGuoF,IAAI76H,OAAO,GACpBy1L,EAAe,GACnB,IAAK,IAAIrhD,KAAWpmB,EAAWoN,OAAQ,CACrC,IAAI+G,EAAWnU,EAAWoN,OAAOgZ,GAC7B9hG,EAAGuoF,MAAQsH,EAAS9W,MAAMwP,KAAOvoF,EAAGuoF,MAAQsH,EAAS7W,MAAMuP,KAC/D46D,EAAan/M,KAAKskJ,EAAMuH,EAAS7W,MAAQ6W,EAAS9W,MACpD,CACAoqE,EAAax+M,SAAQ,SAASs+M,EAAW70L,GACnC60L,GAAa9P,GAAwB8P,KACtCC,GAAe,CACdpd,EACAG,EACAD,EACAE,EACAC,IACCxhM,SAAQ,SAASgB,GAClB,IAAIy9M,EAAwB,SAARz9M,EAAEogM,GAAwB,SAARpgM,EAAE0kC,GAAqC,WAArB21B,EAAGizG,cACvD0nC,EAAej/D,EAAWoN,OAAO9oF,EAAGqwF,eAEpC1qJ,EAAEogM,IAAMD,EAAUC,EAAS4U,EAAaT,cAAch8J,UAAU,IAAM8hB,EAAGuoF,IAAM,MAC1E5iJ,EAAEogM,IAAME,EAAeF,EAAS4U,EAAaX,eAAe97J,UAAU,IAAM8hB,EAAGuoF,KAC/E5iJ,EAAEogM,IAAMC,EAAUD,EAAS4U,EAAaV,UAAU/7J,UAAU,IAAM8hB,EAAGuoF,KACnEoyD,EAAa36I,EAAGuoF,IAAI76H,OAAO,GAAK,cACvC8yB,MAAK,WACP,IAAIxa,EAAIoP,EAAGsI,OAAOt6C,MACduC,EAAE0kC,IAAGrE,EAAIA,EAAEkY,UAAUv4C,EAAE0kC,IAC3BrE,EAAEwa,MAAK,SAASnpC,GACd,IAAIk3B,EAAIyxB,EAAGk6H,IACTkpB,EAAgB/N,GAAQh+L,GAAKA,EAAE7L,GAC7Bw0D,EAAGo9H,QACHzrK,EAAIyjB,EAAGsI,OAAOt6C,MACdmrC,EAAIyxB,EAAG,oBAAsBijJ,EAAU16D,MAAQh6G,EAAIyxB,EAAG,oBAAsBijJ,EAAU16D,KACxF52H,EAAEjC,MAAM,UAAW,QACF,SAAR/pB,EAAEogM,GAAiB33K,GAC5BuD,EAAEjC,MAAM,UAAW,KAEvB,GACF,GACF,GAEJ,GACF,EACA2yL,EAAevD,EAAYqD,EAAY,EAAIA,EAAY5nC,GAIvD,IAAI8oC,EAAY,KAsFZrjJ,EAAGsiI,cACLtiI,EAAGsiI,YAAYz+D,GAAOi7E,GAExB,IAAIjnD,EAAM,CA5FV,WACE,OAAOuqD,EAAY3+M,QAAU++H,QAAQ9wF,IAAI0wK,EAC3C,GA2FIpiJ,EAAGywD,YAAcirB,EAAW4b,4BAA4C,KAAd6qD,GAC5DkB,EAAYlB,EACZtqD,EAAI7zJ,MAAK,WACPq+M,EAAevD,EAAYqD,EAC7B,KAEAtqD,EAAI7zJ,MA/FN,WAEE,GADAq+M,EAAevD,EAAYvkC,GACvBl/C,EAAK53H,QAAUu8D,EAAGk0G,iBAA+B,QAAZl0G,EAAG93D,MAAiD,MAA/B/B,OAAO65D,EAAGixG,OAAOvjJ,OAAO,IAAa,CACjG21L,EAAYrjJ,EAAGk0G,eAAe,GAC9B,IAEI7uK,EAFAi+M,EAAc,EACdC,EAAW,GAEXC,EAAW,EACf1E,EAAWt+J,MAAK,SAASnpC,GACvBisM,EAAcr9M,KAAK6mB,IAAIw2L,EAAajsM,EAAE6B,UACtC,IAAI1N,EAAIw0D,EAAGk6H,IAAI7iL,EAAE7L,GACb+2L,EAAYoT,GAAgBvyM,MAC5B6hE,EAAKqvH,EAAQ1C,KAAK2Q,EAAUx6L,QAChCy7M,EAAWv9M,KAAK6mB,IAAI02L,EAAU1/B,EAAanX,UAAU41B,IACrDghB,EAASv/M,KAAK,CAEZy5B,IAAK,EACLE,OAAQ,GACRxjB,OAAQ,GACRyjB,KAAMpyB,EAAIy5D,EAAG/qD,MAAQ,EAErBwjB,MAAOlyB,EAAIy5D,EAAG/qD,MAAQ,EAAI,EAC1BA,MAAO+qD,EAAG/qD,MAAQ,GAEtB,IACA,IAAIupM,GAAyC,eAAfzjJ,EAAGgzG,SAA4BhzG,EAAGq1G,gBAAkBxvE,EAAKtoF,UACnFmmM,EAAOroF,EAAK53H,OACZgiF,EAAcx/E,KAAKD,KAAKq1H,EAAKqoF,EAAO,GAAGl4M,EAAI6vH,EAAK,GAAG7vH,GAAKw0D,EAAGm6H,KAAOupB,EAAO,GACzEC,EAAWF,EAAyBh+H,EAAc,EAAIA,EACtDm+H,EAAWH,EAAyBzjJ,EAAGuzG,QAAwB,KAAd+vC,EAAqBE,EAEtEK,EAASF,EADI19M,KAAK2xC,KAAK3xC,KAAK4jD,IAAI85J,EAAU,GAAK19M,KAAK4jD,IAAI+5J,EAAU,IAElEE,EAAwB9jJ,EAAGk0G,eAAexnK,KAC5C,SAASq3M,GACP,OAAOA,EAAW99M,KAAKsgD,GAAK,GAC9B,IAEEy9J,EAAeF,EAAsB38I,MACvC,SAAShG,GACP,OAAOl7D,KAAKD,IAAIC,KAAKsnD,IAAI4T,KAAW0iJ,CACtC,SAEmB,IAAjBG,IACFA,EAAeF,EAAsBv/L,QACnC,SAAS0/L,EAAYC,GACnB,OAAOj+M,KAAKD,IAAIC,KAAKsnD,IAAI02J,IAAeh+M,KAAKD,IAAIC,KAAKsnD,IAAI22J,IAAcD,EAAaC,CACvF,GACAJ,EAAsB,KAG1B,IAAIK,EAAWH,GAAgB,IAAM/9M,KAAKsgD,IAC1C,GAAIk9J,EAAwB,CAC1B,IAAIlqL,EAAM,EAEV,IADIymC,EAAG8Z,QAAOvgD,GAAOymC,EAAGwzG,UAAY,GAC/BnuK,EAAI,EAAGA,EAAIk+M,EAAS9/M,OAAQ4B,IAAK,CACpC,IAAIutM,EAAOv3E,EAAKh2H,GAAGutM,KACfwR,EAAMb,EAASl+M,GACnB,GAAgB,OAAZutM,EAAK,IAAewR,EAAIxmL,KAAOoiC,EAAGk6H,IAAI0Y,EAAK,IAAMr5K,GAAmB,OAAZq5K,EAAK,IAAe5yI,EAAGk6H,IAAI0Y,EAAK,IAAMwR,EAAI1mL,MAAQnE,EAAK,CACjH8pL,EAAYc,EACZ,KACF,CACF,CACF,KAAO,CACL,IAAIjxC,EAAoBlzG,EAAGkzG,mBAAqB,GAC5CrhJ,EAAM,SAAS5b,GACjB,OAA2C,IAApCi9J,EAAkBpsK,QAAQmP,EACnC,EACIkqM,EAAQtuL,EAAI,OACZuuL,EAASvuL,EAAI,QACbwuL,EAAUxuL,EAAI,SAGdymD,EAFWzmD,EAAI,WACSuuL,GAAUD,GAASE,GACnBrgJ,EAAGwzG,WAAa,GAAK,EAA1B,EACvB,IAAKnuK,EAAI,EAAGA,EAAIk+M,EAAS9/M,OAAS,EAAG4B,IACnC,GAAIitI,EAAI5J,cAAc66E,EAASl+M,GAAIk+M,EAASl+M,EAAI,GAAIizE,GAAM,CACxD+qI,EAAYc,EACZ,KACF,CAEJ,CACId,GACFhB,EAAevD,EAAYuE,EAE/B,CACF,IAaIrjJ,EAAGmiI,aACLtqC,EAAI7zJ,MAAK,WACPg8D,EAAGmiI,YAAYt+D,GAAqB,OAAdw/E,EAAqBniH,EAAUq5E,GAAaA,EAAY,EAAI8oC,CACpF,IAEF,IAAIgB,EAAgC,WAClC,IAAIC,EAAa,EACbC,EAAa,EAcjB,OAbAzF,EAAWt+J,MAAK,SAASnpC,EAAGhS,GAC1B,IAGM4/D,EAHFs9H,EAAYoT,GAAgBvyM,MACbm/L,EAAU7kJ,OAAO,oBACnBlD,UAEXwlB,EAAGkiI,MAAM78L,KACX4/D,EAAKjF,EAAGkiI,MAAM78L,GAAG4/D,IAAMqvH,EAAQ1C,KAAK2Q,EAAUx6L,QAC9Ci4D,EAAGkiI,MAAM78L,GAAG4/D,GAAKA,GAEnBq/I,EAAar+M,KAAK6mB,IAAIw3L,EAAYr/I,EAAG/qD,OACrCqqM,EAAat+M,KAAK6mB,IAAIy3L,EAAYt/I,EAAG9qD,QAEzC,IACO,CACLmqM,aACAC,aAEJ,EACI/7D,EAAWxoF,EAAG0oF,YAClB,GAAIF,IAAaA,EAASspB,WAAatpB,EAAS+pB,cAAgB4gC,GAAwBnzI,KAAQ0hF,EAAShG,EAAY17E,EAAGuoF,OACjH7M,EAAW8oE,+BACd9oE,EAAW8oE,6BAA+B,CAAC,GAEzCh8D,EAASspB,YACXp2B,EAAW8oE,6BAA6Bh8D,EAASuT,MAAQ,cAAgBvT,EAASspB,UAClFja,EAAI7zJ,KAAKqgN,IAEP77D,EAAS+pB,aAAa,CACxB,IAAIkyC,EAAMJ,IACN9+J,EAA4B,MAArBya,EAAGuoF,IAAI76H,OAAO,GAAa+2L,EAAIH,WAAaG,EAAIF,WAC3Dh/J,GAAQ,EACqB,WAAzBya,EAAGkzG,oBACL3tH,GAAQya,EAAGuzG,SAAW,GAExB,IAAIotC,EAAkB,UAAZ3gJ,EAAGo2F,MAAgC,QAAZp2F,EAAGo2F,KAAiB,GAAK,EACtDpvJ,EAAgB,IAAR25M,EAAY,EAAI,EACxB+D,EAAqB,IAAR/D,EAAY,EAAI,EAC7BvgB,EAAW,GACfA,EAASskB,GAAcl8D,EAAStuG,MAAMwqK,GACtC,IAAIC,EAAgBn8D,EAAStuG,MACzBkN,EAAKohG,EAAS6yC,IAAIspB,EAAc39M,IAChCqN,EAAKm0I,EAAS6yC,IAAIspB,EAAcD,IAChCE,EAAgBlpE,EAAW8oE,6BAA6Bh8D,EAASuT,MAAQ,UAC7E,GAAI6oD,EAAe,CACjB,IAAIC,EAAKr8D,EAAS6yC,IAAIupB,EAAc59M,IAChC89M,EAAKt8D,EAAS6yC,IAAIupB,EAAcF,IAChC9tL,EAAM+pL,GAA4B,MAArB3gJ,EAAGuoF,IAAI76H,OAAO,GAAa,GAAK,GAC7CkJ,EAAMwwB,EAAKxwB,EAAMiuL,IACnBz9J,EAAKy9J,EACLzkB,EAASp5L,GAAS29M,EAAc39M,GAAS49M,EAAc59M,IAErD4vB,EAAMviB,EAAKuiB,EAAMkuL,IACnBzwM,EAAKywM,EACL1kB,EAASskB,GAAcC,EAAcD,GAAcE,EAAcF,GAErE,CACA,IAAIK,EAAO9+M,KAAKD,IAAIqO,EAAK+yC,GACrB29J,EAAOx/J,EAAO,EAEhBA,GAAQ,EAAIA,GADZw/J,GAAQx/J,GAGRA,EAAO,EAEgB,MAArBya,EAAGuoF,IAAI76H,OAAO,KAAY63B,GAAQA,GACtC66I,EAASp5L,GAASwhJ,EAAS+yC,IACzB/yC,EAAS6yC,IAAIspB,EAAc39M,IAAU25M,EAAMp7J,GAElB,QAAvBijG,EAASspB,WAA8C,iBAAvBtpB,EAASspB,WAC3CsuB,EAAS,GAAK,KACd53C,EAAS+gD,oBAAiB,EAC1B/gD,EAASghD,oBAAiB,GACM,QAAvBhhD,EAASspB,WAA8C,iBAAvBtpB,EAASspB,YAClDsuB,EAAS,GAAK,KACd53C,EAAS+gD,oBAAiB,EAC1B/gD,EAASghD,oBAAiB,GAE5B9tD,EAAW8oE,6BAA6Bh8D,EAASuT,MAAQ,UAAYqkC,CACvE,CAEF,IAAI79D,EAAO+P,EAAI1I,YAAYiuB,GAE3B,OADIt1B,GAAQA,EAAKpvF,MAAMi3E,EAAGk8B,UAAUtiJ,KAAKu+H,GAClCA,CACT,EASA+jE,EAAKuY,cAAgB,SAASz0F,EAAIpqD,GAChC,IAGIiiI,EAHA14C,EAAKn/B,EAAGonB,YAAY8X,MACpBhJ,EAAWtgF,EAAGuoF,IAAI76H,OAAO,GACzB0oI,EAAOp2F,EAAGo2F,KAed,MAbkB,SAAdp2F,EAAGowF,OACL6xC,EAAajiI,EAAG0oF,YACM,MAAbpI,EACT2hD,EAAa,CACX7E,QAAS7zC,EAAG53H,GAAK,GAAKquC,EAAGp4D,UAAY,IAAM2hJ,EAAGrzI,EAC9CquH,QAAS,GAEW,MAAb+b,IACT2hD,EAAa,CACX7E,QAAS7zC,EAAG/6H,GAAKwxC,EAAGp4D,UAAY,GAAK2hJ,EAAGvjH,EAAIg6B,EAAG86I,OAC/Cv2E,QAAS,IAGA,QAAT6xB,GAA2B,SAATA,EACb6rC,EAAW7E,QACA,WAAThnC,GAA8B,UAATA,EACvB6rC,EAAW7E,QAAU6E,EAAW19D,aADlC,CAGT,EAiFA+hE,EAAKqb,mBAAqB,SAASv3F,EAAIpqD,EAAI28I,GACzC,IAAItgB,EAAM/pD,EAAI3J,UAAU3oE,EAAG9lB,MAAO8lB,EAAGg8F,KACrC,OAAOqgC,EAAI,GAAKA,EAAI,IAAM,GAAKr8H,EAAGk1G,WAAyB,WAAZl1G,EAAG93D,MAAiC,MAAZ83D,EAAG93D,SAAmB83D,EAAG2yG,aAAe3yG,EAAGu9H,WAAW,KAAO9iG,KAAYi7G,GAAS11I,EAAI,KAW/J,SAAgCoqD,EAAIpqD,EAAI28I,EAAatgB,GACnD,IAAI2oB,EAAkBrI,EAAYl0D,UAClC,GAAKu8D,EAAL,CACA,IAAItpE,EAAatxB,EAAGonB,YAChB8O,EAAWtgF,EAAGuoF,IAAI76H,OAAO,GACzBo7K,EAAgBxC,EAAKwC,cAAc9oI,EAAGuoF,KACtC08D,EAAejlJ,EAAGo9H,SAAWn3L,KAAKD,IAAIq2L,EAAI,IAAMp2L,KAAKD,IAAIq2L,EAAI,OAAsB,MAAb/7C,GAAoB,EAAItgF,EAAGukE,SAiBjGsrB,EAAWnU,EAAWoN,OAAO6zD,EAAYtsD,cAC7C,KAAMR,EAASq1D,cAAgBr1D,GAAUs1D,SAAS1hN,OAChD,OAAO2hN,EAAazI,EAAasI,GAGnC,IADA,IAAII,EAAoB/e,EAAK/wJ,KAAK60E,EAAI0+E,GAC7BzjM,EAAI,EAAGA,EAAIggN,EAAkB5hN,OAAQ4B,IAAK,CACjD,IAAIigN,EAAeD,EAAkBhgN,GACrC,GAAIigN,EAAa78D,YAAcu8D,GAAmBI,EAAaE,EAAcL,GAC3E,OAAO,CAEX,CA/B4B,CAK5B,SAASG,EAAa50D,GACpB,IAAKA,EAAIskB,WAAatkB,EAAIwkB,UAAW,OAAO,EAC5C,IAAInzC,EAAY57H,KAAK6mB,KAAK0jI,EAAIwkB,UAAYh1G,EAAGo1G,eAAiB,EAAG,GACjE,SAASmwC,EAAYC,GACnB,MAAuB,kBAATA,GAAqBv/M,KAAKD,IAAIw/M,EAAOP,GAAgBpjF,CACrE,CACA,GAAI0jF,EAAY/0D,EAAI0qD,oBAAsBqK,EAAY/0D,EAAI6qD,qBACxD,OAAO,EAET,IAAIoK,EAAgBj1D,EAAIutD,gBAAkB,CAAC,EAC3C,IAAK,IAAIxyM,KAAKk6M,EACZ,GAAIF,EAAYE,EAAcl6M,GAAG,KAAOg6M,EAAYE,EAAcl6M,GAAG,IACnE,OAAO,CAGb,CAYF,CA7CsKm6M,CAAuBt7F,EAAIpqD,EAAI28I,EAAatgB,IA8ClN,SAAuBjyE,EAAIpqD,GAIzB,IAHA,IAAIozF,EAAWhpC,EAAGs5B,UACdoe,EAAU9hG,EAAGqwF,aACb/P,EAAWtgF,EAAGuoF,IAAI76H,OAAO,GACpBroB,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IAAK,CACxC,IAAIo6G,EAAQ2zC,EAAS/tJ,GACrB,IAAsB,IAAlBo6G,EAAM9N,SAAoB8N,EAAMs5B,MAAQt5B,EAAMu5B,QAAU8oB,EAAS,CACnE,GAAI1rC,EAASN,QAAQrW,EAAO,aAAeA,EAAMk2D,cAAgB,CAAEnqK,EAAG,IAAKC,EAAG,KAAM60I,GAAW,OAAO,EACtG,GAAI7gC,EAAMplG,MAAQolG,EAAMplG,KAAKqT,OAAO+xF,EAAMplG,KAAK5W,OAAS,KAAO68I,EAAU,OAAO,CAClF,CACF,CACA,OAAO,CACT,CA1D0NqlE,CAAcv7F,EAAIpqD,GAC5O,EACAsmI,EAAKoP,SAAW,SAAS11I,EAAIq7D,GAC3B,OAAOA,EAAK5rG,QAAO,SAASpY,GAC1B,OAAOq+L,GAAS11I,EAAI3oD,EAAE7L,EACxB,GACF,EA0DA86L,EAAKpxC,gBAAkB,SAAS9qC,GAE9B,IADA,IAAI8lC,EAASo2C,EAAK/wJ,KAAK60E,EAAI,IAAI,GACtB/kH,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CACtC,IAAI26D,EAAKkwF,EAAO7qJ,GACZ26D,EAAGywD,aACL4jE,EAAMn/B,gBAAgB9qC,EAAI0rF,GAAe91I,IACrCA,EAAGuwF,QACL8jC,EAAMn/B,gBAAgB9qC,EAAI2rF,GAAqB/1I,KAG/Co2D,EAASJ,mBAAmB,cAAe,YAA3CI,CAAwDp2D,IAC1Dq0H,EAAMn/B,gBAAgB9qC,EAAI4rF,GAAwBh2I,GAEtD,CACF,EAUAsmI,EAAKsf,KAAO,SAASx7F,EAAI+B,GAEvB,IADA,IAAI05F,EAKN,SAAwBz7F,EAAI+B,GAC1B,IACI9mH,EAAGiG,EADHyxC,EAAS,GAEb,IAAK13C,EAAI,EAAGA,EAAI8mH,EAAO1oH,OAAQ4B,IAAK,CAClC,IAAIygN,EAAU,GACV3qI,EAAKivC,EAAGs5B,UAAUv3B,EAAO9mH,IAAI0zI,MAC7B1wD,EAAK+hC,EAAGs5B,UAAUv3B,EAAO9mH,IAAI2zI,MACjC,GAAK79D,GAAOkN,EAAZ,CACA,IAAK/8E,EAAI,EAAGA,EAAIyxC,EAAOt5C,OAAQ6H,KACI,IAA7ByxC,EAAOzxC,GAAGE,EAAE1E,QAAQq0E,KAA2C,IAA7Bp+B,EAAOzxC,GAAGG,EAAE3E,QAAQuhF,IACxDy9H,EAAQ9hN,KAAKsH,GAGjB,GAAKw6M,EAAQriN,OAAb,CAIA,IACIsiN,EADAC,EAASjpK,EAAO+oK,EAAQ,IAE5B,GAAIA,EAAQriN,OAAS,EACnB,IAAK6H,EAAI,EAAGA,EAAIw6M,EAAQriN,OAAQ6H,IAC9By6M,EAAShpK,EAAO+oK,EAAQx6M,IACxB2qM,GAAgB+P,EAAOx6M,EAAGu6M,EAAOv6M,GACjCyqM,GAAgB+P,EAAOv6M,EAAGs6M,EAAOt6M,GAGrCwqM,GAAgB+P,EAAOx6M,EAAG,CAAC2vE,IAC3B86H,GAAgB+P,EAAOv6M,EAAG,CAAC48E,GAX3B,MAFEtrC,EAAO/4C,KAAK,CAAEwH,EAAG,CAAC2vE,GAAK1vE,EAAG,CAAC48E,IAPL,CAqB1B,CACA,OAAOtrC,CACT,CAnCiBkpK,CAAe77F,EAAI+B,GACzB9mH,EAAI,EAAGA,EAAIwgN,EAASpiN,OAAQ4B,IACnC+wM,GAAchsF,EAAIy7F,EAASxgN,GAAGmG,EAAGq6M,EAASxgN,GAAGoG,EAEjD,CA2JF,IAIEy6M,GAAqC50K,EAAW,CAClD,oDAAoDt6B,EAASkuB,GAE3DA,EAAOluB,QAAU,SAAwCwiG,EAAQs4D,EAAW53H,GAC1E,IAAI0zJ,EAAUC,EACd,GAAI3zJ,EAAO,CACT,IAAI0kJ,EAA2B,aAAd9sB,GAA0C,iBAAdA,GAA8C,iBAAdA,EAC7E87B,EAAW1zJ,EAAM0kJ,EAAa,EAAI,GAClCiP,EAAW3zJ,EAAM0kJ,EAAa,EAAI,EACpC,CACA,IAAI5sB,EAAax4D,EAAO,8BAA4C,OAAbq0F,EAAoBD,OAAW,GAClF37B,EAAaz4D,EAAO,8BAA4C,OAAbo0F,EAAoBC,OAAW,QACnE,IAAf77B,GAAuBx4D,EAAO,iCACf,IAAfy4D,GAAuBz4D,EAAO,4BAClCA,EAAO,2BACT,CACF,IAIE2sG,GAAyB70K,EAAW,CACtC,wCAAwCt6B,EAASkuB,GAE/C,IAAIkhL,EAAiCF,KACrChhL,EAAOluB,QAAU,SAA6ByiG,EAAaC,EAAcF,EAAQt2G,GAC/E,IAAImjN,EAAa3sG,EAAaK,WAAa,CAAC,EACxC69D,EAASl+D,EAAaxxG,MAAQm+M,EAAWn+M,MAAQ,IACrDsxG,EAAO,cACPA,EAAO,cACP,IAEM+4D,EAFFr4H,EAAQs/D,EAAO,SACdt/D,GAEEh3C,EAAQojN,eAA4B,QAAX1uC,MAC5BrF,EAAc/4D,EAAO,iBACkB,OAAnB+4D,EAAY,IAAkC,OAAnBA,EAAY,KACzD74D,EAAa64D,aAAc,EAC3BA,OAAc,GAEZA,IAAar4H,EAAQs/D,EAAO,QAAS+4D,KAG7C,IAEIg0C,EAFA7nB,EAAgBhlF,EAAa+kF,iBAAiBvkJ,EAAOh3C,GACrD4uK,EAAYt4D,EAAO,YAAaklF,IAEhCxkJ,IAAuB,OAAbA,EAAM,IAA4B,OAAbA,EAAM,MAA6B,OAAbA,EAAM,IAA4B,OAAbA,EAAM,IAA+B,aAAd43H,IAA0C,IAAdA,KAAoC,OAAb53H,EAAM,IAA8B,QAAd43H,GAAqC,iBAAdA,KAA8C,OAAb53H,EAAM,IAA8B,QAAd43H,GAAqC,iBAAdA,KACjR53H,OAAQ,SACDw/D,EAAax/D,MACpBw/D,EAAao4D,WAAY,EACzBy0C,GAAkB,GAEfA,IAEHz0C,EAAYt4D,EAAO,YADnBklF,EAAgBhlF,EAAa+kF,iBAAiBvkJ,EAAOh3C,KAGnD4uK,IACFs0C,EAA+B5sG,EAAQs4D,EAAW53H,GACnC,WAAX09H,GAAkC,MAAXA,GAAgBp+D,EAAO,cAEpDE,EAAaijF,YACf,CACF,IAIE6pB,GAA6Bl1K,EAAW,CAC1C,2CAA2Ct6B,EAASkuB,GAClD,IAAIuhL,EAAe,CAAE7oL,KAAM,EAAGH,IAAK,GACnCyH,EAAOluB,QACP,SAA0Bq/H,EAAI/sH,EAAQ2/C,GACpC3/C,EAASA,GAAU+sH,EAAGqwE,eAAiBrwE,EAAGswE,WACrC15M,MAAMiI,QAAQ+zD,KACjBA,EAAM,CAAC,EAAG,IAEZ,IAO+Bj/D,EAP3BiiD,EAAKoqF,EAAG/xF,SAAW,EACnB4H,EAAKmqF,EAAG9xF,SAAW,EACnBG,GAK2B16C,EALIsf,KAMnB0Z,QAAUh5B,IAAYlF,UAAYkF,IAAYlF,SAASgkF,KAC9D29H,EAEAz8M,EAAQ26C,wBANjB,OAFAskB,EAAI,GAAKhd,EAAKvH,EAAK9mB,KACnBqrC,EAAI,GAAK/c,EAAKxH,EAAKjnB,IACZwrC,CACT,CAQF,IAIE29I,GAA6Bt1K,EAAW,CAC1C,2CAA2Ct6B,EAASkuB,GAElD,IAAIwtG,EAAYH,KAgBhBrtG,EAAOluB,QAAU07H,GAfjB,WACE,IAAIm0E,GAAY,EAChB,IACE,IAAIhhH,EAAOv/F,OAAOgR,eAAe,CAAC,EAAG,UAAW,CAC9CnL,IAAK,WACH06M,GAAY,CACd,IAEF7jL,OAAOlZ,iBAAiB,OAAQ,KAAM+7E,GACtC7iE,OAAOqf,oBAAoB,OAAQ,KAAMwjD,EAC3C,CAAE,MAAOlgG,GACPkhN,GAAY,CACd,CACA,OAAOA,CACT,CAC8BC,EAChC,IAIEC,GAAgBz1K,EAAW,CAC7B,sCAAsCt6B,EAASkuB,GAE7CA,EAAOluB,QAAU,SAAe0uB,EAAG03D,EAAI/W,EAAIoiD,EAAI2nB,GAC7C,IAAIu0C,GAAQj/J,EAAI2gD,IAAOoiD,EAAKpiD,GACxBu+G,EAAOD,EAAOvnG,GAAMqrC,EAAKpiD,GACzB2gI,GAAMriB,EAAOC,GAAQ,EACzB,MAAe,SAAXx0C,GAAgC,WAAXA,EAA4Bu0C,EACtC,WAAXv0C,GAAkC,WAAXA,EAA4B42D,EACxC,UAAX52D,GAAiC,QAAXA,EAAyBw0C,EAC/CD,EAAO,EAAI,EAAIqiB,EAAWriB,EAC1BC,EAAO,EAAI,EAAIoiB,EAAWpiB,EACvBoiB,CACT,CACF,IAIEC,GAAiB31K,EAAW,CAC9B,uCAAuCt6B,EAASkuB,GAE9C,IAAIotG,EAAMtN,KACNkiF,EAAY,CACd,CAAC,YAAa,WAAY,aAC1B,CAAC,WAAY,OAAQ,YACrB,CAAC,YAAa,WAAY,cAE5BhiL,EAAOluB,QAAU,SAAmBxL,EAAGC,EAAG+jH,EAASC,GASjD,OARwBjkH,EAAR,SAAZgkH,EAAwB,EACP,WAAZA,EAA0B,EACd,UAAZA,EAAyB,EACzB8iB,EAAI9J,UAAUviI,KAAK2/B,MAAU,EAAJp6B,GAAQ,EAAG,GACnBC,EAAV,WAAZgkH,EAA0B,EACT,WAAZA,EAA0B,EACd,QAAZA,EAAuB,EACvB6iB,EAAI9J,UAAUviI,KAAK2/B,MAAU,EAAJn6B,GAAQ,EAAG,GACtCy7M,EAAUz7M,GAAGD,EACtB,CACF,IAIE27M,GAAkB71K,EAAW,CAC/B,wCAAwCt6B,EAASkuB,GAE/C,IAAIgxG,EAASD,KACT9T,EAAWH,KACX7X,EAAcf,KAAce,YAC5Bi9F,EAAiBr3G,IACjBs3G,EAAUniL,EAAOluB,QAAU,CAAC,EAChCqwM,EAAQ1yE,QAAU,SAASvqB,EAAIk9F,EAAKxlD,IAClC13C,EAAKD,EAAYC,IACVonB,aACLrP,EAASvhG,MAAMwpF,EAAGonB,YAAYi3C,KAAO2+B,EAAe92G,SAEtD+2G,EAAQvxM,IAAIs0G,EAAIk9F,EAAKxlD,EACvB,EACAulD,EAAQvxM,IAAM,SAAas0G,EAAIk9F,GAC7B,IAAI5rE,EAAatxB,EAAGonB,YAChB+1E,EAAen9F,EAAGoqC,WACjB8yD,IAAKA,EAAM,CAAC,GACbA,EAAIh+L,SAAW8gG,EAAGkqC,WAAqE,IAAzDpe,EAAOU,eAAexsB,EAAI,qBAAsBk9F,KAGlF5rE,EAAW8rE,YAAYtpK,UAAU,KAAK3D,SACtCmhG,EAAW8rE,YAAYtpK,UAAU,QAAQ3D,SACzCmhG,EAAW8rE,YAAYtpK,UAAU,UAAU3D,SAC3C6vE,EAAGoqC,gBAAa,EACZ8yD,EAAIh+L,QAAUi+L,GAChBn9F,EAAGiqB,KAAK,iBAAkB,CACxBvrH,MAAOw+L,EACP/8M,OAAQg9M,IAGd,CACF,IAIEE,GAAsBn2K,EAAW,CACnC,sCAAsCt6B,EAASkuB,GAE7C,IAAIwiL,EAAclB,KACd/zE,EAAWD,KACXm1E,EAAkBf,KAClBv9F,EAAgB2b,KAAc3b,cAC9B7Y,EAAYouC,KACZgpE,EAAc1iL,EAAOluB,QAAU,CAAC,EACpC4wM,EAAY3vH,MAAQ8uH,KACpBa,EAAYC,UAAYZ,KACxB,IAAII,EAAUF,KA0Id,SAASW,IACP,IAAIC,EAAQjjN,SAASC,cAAc,OACnCgjN,EAAMpxM,UAAY,YAClB,IAAI62J,EAASu6C,EAAMr4L,MASnB,OARA89I,EAAO5lK,SAAW,QAClB4lK,EAAO5vI,KAAO,EACd4vI,EAAO9vI,MAAQ,EACf8vI,EAAO/vI,IAAM,EACb+vI,EAAO7vI,OAAS,EAChB6vI,EAAOv6J,OAAS,UAChBu6J,EAAO/vJ,WAAa,OACpB3Y,SAASgkF,KAAK7jF,YAAY8iN,GACnBA,CACT,CAEA,SAASC,EAAcriN,GACrB,OAAO+hN,EACL/hN,EAAEg+C,eAAiBh+C,EAAEg+C,eAAe,GAAKh+C,EACzCb,SAASgkF,KAEb,CA7JA8+H,EAAYP,QAAUA,EAAQ1yE,QAC9BizE,EAAYK,WAAaZ,EAAQvxM,IACjC8xM,EAAY7iL,KAAO,SAAc7hC,GAC/B,IAIIglN,EAAQC,EAAQC,EAAkB7zM,EAAQ8zM,EAAWC,EAAcC,EAAeC,EAJlFp+F,EAAKlnH,EAAQknH,GACbq+F,EAAY,EACZ1rG,EAAmBqN,EAAG4Z,SAASjnB,iBAC/B/yG,EAAU9G,EAAQ8G,QAEjBogH,EAAGuqC,iBAAgBvqC,EAAGuqC,eAAiB,GAC5C3qJ,EAAQ0lB,MAAMg5L,cAAgB,MAC9B1+M,EAAQ2+M,YAAcC,EACjBjB,GAGC39M,EAAQ6+M,eACV7+M,EAAQq4C,oBAAoB,aAAcr4C,EAAQ6+M,eAEpD7+M,EAAQ6+M,cAAgBD,EACxB5+M,EAAQ8f,iBAAiB,aAAc8+L,EAAS,CAAEE,SAAS,KAN3D9+M,EAAQ++M,aAAeH,EAazB,IAAII,EAAU9lN,EAAQ8lN,SALtB,SAAkBjjK,EAAIC,EAAIijK,GAGxB,OAFIhjN,KAAKD,IAAI+/C,GAAMkjK,IAASljK,EAAK,GAC7B9/C,KAAKD,IAAIggD,GAAMijK,IAASjjK,EAAK,GAC1B,CAACD,EAAIC,EACd,EAEA,SAAS4iK,EAAQjjN,GACfykH,EAAGkqC,UAAW,EACdlqC,EAAG4jC,WAAY,EACf,IAAIvjJ,EAASu9M,EAAcriN,GAC3BuiN,EAASz9M,EAAO,GAChB09M,EAAS19M,EAAO,GAChB89M,EAAgB5iN,EAAE2jB,OAClBg/L,EAAe3iN,EACf6iN,EAA2B,IAAd7iN,EAAEujN,SAAiBvjN,EAAEsjB,QACT,qBAAdtjB,EAAE2+C,SAAgD,qBAAd3+C,EAAE4+C,UAC/C5+C,EAAE2+C,QAAU4jK,EACZviN,EAAE4+C,QAAU4jK,IAEdC,GAAmB,IAAqBrhL,MAAQ6B,WACzBwhF,EAAGuqC,eAAiB53C,EACzC0rG,GAAa,GAEbA,EAAY,EACZr+F,EAAGuqC,eAAiByzD,GAElBllN,EAAQimN,QAAQjmN,EAAQimN,OAAOxjN,EAAGuiN,EAAQC,GAC1C11E,IAAa+1E,GACfH,EAAYP,KACFp4L,MAAMnb,OAASyuB,OAAO2d,iBAAiB32C,GAASuK,OAChDk+H,IACV41E,EAAYvjN,SACZyP,EAASyuB,OAAO2d,iBAAiB77C,SAAS4wC,iBAAiBnhC,OAC3DzP,SAAS4wC,gBAAgBhmB,MAAMnb,OAASyuB,OAAO2d,iBAAiB32C,GAASuK,QAE3EzP,SAASglB,iBAAiB,UAAWw4G,GACrCx9H,SAASglB,iBAAiB,WAAYw4G,IACb,IAArBp/H,EAAQ0tG,WACVjrG,EAAEu2C,iBACFp3C,SAASglB,iBAAiB,YAAas/L,GACvCtkN,SAASglB,iBAAiB,YAAas/L,EAAQ,CAAEN,SAAS,IAG9D,CACA,SAASM,EAAOzjN,GACdA,EAAEu2C,iBACF,IAAIzxC,EAASu9M,EAAcriN,GACvBsjN,EAAU/lN,EAAQ+lN,SAAWz4G,EAAU6uC,QACvCgqE,EAAOL,EAAQv+M,EAAO,GAAKy9M,EAAQz9M,EAAO,GAAK09M,EAAQc,GACvDljK,EAAKsjK,EAAK,GACVrjK,EAAKqjK,EAAK,IACVtjK,GAAMC,KACRokE,EAAGkqC,UAAW,EACdszD,EAAYP,QAAQj9F,EAAIzkH,IAEtBykH,EAAGkqC,UAAYpxJ,EAAQomN,SAAWd,IACpCp+F,EAAGmqC,UAAY,CACbvqJ,UACA+7C,KACAC,MAEF9iD,EAAQomN,OAAOvjK,EAAIC,GAGvB,CACA,SAASs8E,EAAO38H,GA0BZ,IAAI4jN,UAzBCn/F,EAAGmqC,WACe,IAArBrxJ,EAAQ0tG,WACVjrG,EAAEu2C,iBACFp3C,SAASu9C,oBAAoB,YAAa+mK,GAC1CtkN,SAASu9C,oBAAoB,YAAa+mK,IAE5CtkN,SAASu9C,oBAAoB,UAAWigF,GACxCx9H,SAASu9C,oBAAoB,WAAYigF,GACrCmQ,EACFppB,EAAcg/F,GACL9zM,IACT8zM,EAAU3yK,gBAAgBhmB,MAAMnb,OAASA,EACzCA,EAAS,MAEN61G,EAAG4jC,YAIR5jC,EAAG4jC,WAAY,GACX,IAAqBjnH,MAAQ6B,UAAYwhF,EAAGuqC,eAAiB53C,IAC/D0rG,EAAYxiN,KAAK6mB,IAAI27L,EAAY,EAAG,IAElCr+F,EAAGkqC,SACDpxJ,EAAQsmN,QAAQtmN,EAAQsmN,UAGxBlB,EAAah/L,SAAWi/L,EAC1BgB,EAAajB,GAEbiB,EAAa,CACXjgM,OAAQi/L,EACR5B,WAAY4B,EACZkB,UAAWlB,GAEbjiN,OAAOgkB,KAAKg+L,GAAct6M,OAAO1H,OAAOgkB,KAAKg+L,EAAax2L,YAAYntB,SAAS4G,IAC7E,IAAIm6B,EAAI4iL,EAAa/8M,GAChBg+M,EAAWh+M,IAAmB,oBAANm6B,IAC3B6jL,EAAWh+M,GAAKm6B,EAClB,KAGAxiC,EAAQwmN,SAASxmN,EAAQwmN,QAAQjB,EAAWc,GAC3Cf,GACHD,EAAcoB,cAAc,IAAIC,WAAW,QAASjkN,KAGxDykH,EAAG4jC,WAAY,EACf5jC,EAAGkqC,UAAW,GAhCZlqC,EAAGkqC,UAAW,CAkClB,CACF,EAeAszD,EAAYE,UAAYA,CAO1B,IAIE+B,GAAoBv4K,EAAW,CACjC,uBAAuBt6B,EAASkuB,GAE9BA,EAAOluB,QAAU,SAAmBuzG,EAAKu/F,IACtCv/F,EAAIjqE,KAAK,UAAY,IAAI5yC,MAAM,KAAK/I,SAAQ,SAASk/H,GACrB,IAA3BA,EAAI/8H,QAAQ,YAAkByjH,EAAI9pE,QAAQojF,GAAK,EACrD,IACIimF,GAAKv/F,EAAI9pE,QAAQ,UAAYqpK,GAAK,EACxC,CACF,IAIEC,GAA0Bz4K,EAAW,CACvC,6BAA6Bt6B,EAASkuB,GAEpC,IAAI8kL,EAAYH,KACZI,EAAY,mBAEhB/kL,EAAOluB,QAAU,SAAwBuzG,EAAKu/F,GAC5C,IAAII,EAAc3/F,EAAIjqE,KAAK2pK,GAC3B,GAAIH,EAAK,CACP,IAAKI,EAAa,CAEhB,IADA,IAAI/tM,GAAWouG,EAAIjqE,KAAK,UAAY,IAAI5yC,MAAM,KACrCrI,EAAI,EAAGA,EAAI8W,EAAQ1Y,OAAQ4B,IAAK,CACvC,IAAIw+H,EAAM1nH,EAAQ9W,GACa,IAA3Bw+H,EAAI/8H,QAAQ,YACdyjH,EAAIjqE,KAAK2pK,EAAWpmF,EAAI38H,OAAO,IAAIu5C,QAAQojF,GAAK,EAEpD,CACKtZ,EAAIjqE,KAAK2pK,IACZ1/F,EAAIjqE,KAAK2pK,EAbD,KAeZ,CACAD,EAAUz/F,EAAKu/F,EACjB,MAAWI,IACT3/F,EAAIjqE,KAAK2pK,EAAW,MAlBR,OAmBRC,EAA2BF,EAAUz/F,GACpCy/F,EAAUz/F,EAAK2/F,GAExB,CACF,IAIEC,GAAsB74K,EAAW,CACnC,sCAAsCt6B,EAASkuB,GAE7C,IAAIurE,EAAYlC,IACZqG,EAAaP,IACjBnvE,EAAOluB,QAAU,CAIfygK,eAAe,EACf9lE,QAAS,CACPhD,QAAS,UACTE,MAAM,EACNJ,SAAU,UAEZv0E,QAAS,CACPy0E,QAAS,QACTF,SAAU,UAEZyC,YAAa,CACXvC,QAAS,QACTE,KAAM+F,EAAWL,YACjB9F,SAAU,UAEZ0nE,YAAa,CACXxnE,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,EACNJ,SAAU,UAEZiC,KAAMD,EAAU,CACdhC,SAAU,WAEZ0C,eAAgBV,EAAU,CACxBhC,SAAU,WAEZknE,YAAa,CACXhnE,QAAS,aACT7gF,OAAQ,CAAC,IAAK,KACd+gF,KAAM,IACNJ,SAAU,UAEZ27G,WAAY,CACVz7G,QAAS,WACTa,MAAO,CAAC,WAAY,WACpBZ,OAAQ,CAAC,UACTH,SAAU,UAEZ47G,cAAe,CACb17G,QAAS,SACT5hF,IAAK,EACL8hF,KAAM,GACNJ,SAAU,UAEZ67G,WAAY,CACV37G,QAAS,SACT5hF,IAAK,EACL0hF,SAAU,UAEZ87G,eAAgB,CACd57G,QAAS,aACT7gF,OAAQ,CAAC,WAAY,UACrB+gF,KAAM,SACNJ,SAAU,UAEZ+7G,YAAa,CACX77G,QAAS,SACT5hF,KAAM,GACN8hF,KAAM,EACNJ,SAAU,UAEZg8G,WAAY,CACV97G,QAAS,aACT7gF,OAAQ,CAAC,QAAS,YAClB+gF,KAAM,QACNJ,SAAU,UAEZi8G,UAAW,CACT/7G,QAAS,SACT5hF,IAAK,GACL8hF,KAAM,GACNJ,SAAU,UAEZk8G,UAAW,CACTh8G,QAAS,aACT7gF,OAAQ,CAAC,SAAU,gBAAgB,GACnC+gF,KAAM,SACNJ,SAAU,UAEZm8G,gBAAiB,CACfj8G,QAAS,aACT7gF,OAAQ,CAAC,SAAU,gBAAgB,GACnC+gF,KAAM,eACNJ,SAAU,UAEZo8G,WAAY,CACVl8G,QAAS,aACT7gF,OAAQ,CAAC,aAAc,eACvB+gF,KAAM,cACNJ,SAAU,UAEZjjG,EAAG,CACDmjG,QAAS,SACTF,SAAU,UAEZ8hB,KAAM,CACJ5hB,QAAS,aACTE,KAAM,QACN/gF,OAAQ,CAAC,YAAa,SACtB2gF,SAAU,eAEZ+gB,QAAS,CACP7gB,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,OAAQ,SAAU,SACnC+gF,KAAM,OACNJ,SAAU,UAEZhjG,EAAG,CACDkjG,QAAS,SACTF,SAAU,UAEZ+hB,KAAM,CACJ7hB,QAAS,aACTE,KAAM,QACN/gF,OAAQ,CAAC,YAAa,SACtB2gF,SAAU,eAEZghB,QAAS,CACP9gB,QAAS,aACT7gF,OAAQ,CAAC,OAAQ,MAAO,SAAU,UAClC2gF,SAAU,UAEZiE,WAAY,CACV/D,QAAS,MACTF,SAAU,QAEZq8G,OAAQ,CACNn8G,QAAS,aACT7gF,OAAQ,CAAC,MAAO,SAAU,UAC1B+gF,KAAM,SACNJ,SAAU,UAEZ4hB,MAAO,CACLhzG,KAAM,CACJsxF,QAAS,SACTE,KAAM,GACNJ,SAAU,UAEZiC,KAAMD,EAAU,CACdhC,SAAU,WAEZ2nD,KAAM,CACJznD,QAAS,aACT7gF,OAAQ,CAAC,MAAO,OAAQ,WAAY,aAAc,aAClD2gF,SAAU,UAEZA,SAAU,UAEZA,SAAU,SAEd,IAIEs8G,GAAmBz5K,EAAW,CAChC,mCAAmCt6B,GAEjCA,EAAQg0M,UAAY,SAAmBC,GACrC,OAA+D,KAAvDA,EAAab,YAAc,IAAItjN,QAAQ,UACjD,EACAkQ,EAAQmkK,WAAa,SAAoB8vC,GACvC,MAAoC,MAA7BA,EAAat1C,WACtB,EACA3+J,EAAQ4nL,WAAa,SAAoBqsB,GACvC,OAAgE,KAAxDA,EAAab,YAAc,IAAItjN,QAAQ,WACjD,CACF,IAIEokN,GAAoB55K,EAAW,CACjC,oCAAoCt6B,EAASkuB,GAE3C,IAAIkxF,EAAWxE,KACX0gB,EAAMtN,KACN0gB,EAAWxJ,KACXivE,EAAa35G,IACbmI,EAAawwG,KACbiB,EAA2Br7F,KAC3B8tD,EAAUktC,KACd,SAASM,EAAcC,EAAU94D,EAAU33C,EAAWu4C,GACpD,IAAI35C,EAAc+4C,EAAS84D,IAAa,CAAC,EACrC5xG,EAAegsC,EAAS1I,aAAaniC,EAAWywG,GACpD,SAAS9xG,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOC,EAAaC,EAAcC,EAAYr5D,EAAMuuD,EACjE,CACA,IAAI08G,EAAWj5E,EAAIp4B,WAAWV,EAAQ,OAAQqB,EAAUnK,MAIxD,GAHA8I,EAAO,UAAWqB,EAAUoW,eAC5BzX,EAAO,eACOA,EAAO,WACrB,CAoBA,IAnBA,IAAIiG,EACA+rG,EAAc,SAASlrK,EAAMuuD,GAC/B,IAAI8L,EAAU8E,EAAMg+B,OAChB7iC,EAAW6E,EACf,OAAO6yB,EAAI94B,OAAOmB,EAASC,EAAUuwG,EAAY7qK,EAAMuuD,EACzD,EACIuhB,EAAavV,EAAUnK,MAAQ,CAAC,EAChCS,EAAiBmhC,EAAIp4B,WAAWV,EAAQ,iBAAkB4W,EAAY,CAAEhW,aAAc,CACxF/uG,KAAMpF,KAAK+b,MAAwB,IAAlBouG,EAAW/kH,SAE1BogN,EAAmB,EACnBC,GAAwB,EACxBC,EAAe,SACfC,GAAoB/wG,EAAU2yC,QAAU,IAAI/9H,QAAO,SAASpY,GAC9D,OAAOA,EAAEu6F,UACX,IACIi6G,EAAiBz4D,EAASplJ,OAAO49M,GAAkBn8L,QAAO,SAASpY,GACrE,OAAOi0M,KAAcj0M,EAAEw6F,QAAU,SACnC,IACSxsG,EAAI,EAAGA,EAAIwmN,EAAepoN,OAAQ4B,IAEzC,IADAo6G,EAAQosG,EAAexmN,IACZssG,QAAX,CACA,IAAIm6G,EAAUrsG,EAAMssG,UAChBtsG,EAAM7N,YAAc6N,EAAM8yC,mBAAqB9yC,EAAM1E,SAAW0E,EAAM1E,QAAQpB,YAAc8F,EAAM1E,QAAQpB,WAAW/H,aAA2D,IAA7C6N,EAAM1E,QAAQpB,WAAW/H,WAAW/C,SACzK48G,IACIhsG,EAAM7N,aACR85G,GAAwB,IACnBI,GAAW11F,EAASN,QAAQrW,EAAO,cAA2C,IAA5BA,EAAMg+B,OAAO7rC,aAClE65G,KAGJn5E,EAAIp4B,WAAWsxG,EAAa,wBAAyBr6G,MAElD26G,GAAW11F,EAASN,QAAQrW,EAAO,QAAgC,UAAtB5E,EAAUmxG,UAAuE,IAAhD,CAAC,UAAW,WAAWllN,QAAQ24G,EAAMplG,SACtHsxM,EAAe9tC,EAAQmtC,UAAU,CAAEZ,WAAYuB,IAAkB,mBAAqB,iBAE9D,IAAtBlsG,EAAM3N,aAAgD,KAAtB2N,EAAM3N,cACxC65G,EAAe9tC,EAAQ+gB,WAAW,CAAEwrB,WAAYuB,IAAkB,mBAAqB,UAhB7D,CAmB9B,IAAIM,EAAa35E,EAAI94B,OACnBg5C,EACA33C,EACAuwG,EACA,aACAM,GAAyBD,GAAiC,WAAbH,EAAwB,EAAI,IAG3E,IADmB,IAAfW,IAAsBpxG,EAAUywG,QAAY,KAC7B,IAAfW,GAAyBxyG,EAAY/G,cACzC8G,EAAO,aAAcqB,EAAUnI,aACZ,IAAfu5G,GAAJ,CACAzyG,EAAO,eACP,IAMI4hE,EAAUC,EAAUC,EAHpB4wC,EAA+B,MAHjB1yG,EAAO,eAIrB+hE,EAAoB,UAHb/hE,EAAO,QAIdgiE,EAAoB,UAHbhiE,EAAO,QAKdiiE,EAAiB,OA+DrB,GA9DIywC,GACF9wC,EAAW,EACPhlD,EAASJ,mBAAmB,cAAe,YAA3CI,CAAwDo8B,EAASzZ,OAC/DwiC,GACFF,EAAW,IACXC,EAAiB,WAEjBD,EAAW,EACXC,EAAiB,OAGfC,GACFF,GAAY,GACZC,EAAiB,QAEjBD,EAAW,EACXC,EAAiB,YAIrBD,EAAW,EACXC,EAAiB,OACbE,EACFJ,EAAW,MAEXA,EAAW,EACXK,EAAiB,UAGrBnpC,EAAI94B,OAAOC,EAAaC,EAAc,CACpCluG,EAAG,CACDmjG,QAAS,SACTF,SAAU,SACV1hF,IAAKyuJ,GAAY,EAAI,EACrB1uJ,IAAK0uJ,EAAW,EAAI,EACpB3sE,KAAMusE,IAEP,KACH9oC,EAAI94B,OAAOC,EAAaC,EAAc,CACpCjuG,EAAG,CACDkjG,QAAS,SACTF,SAAU,SACV1hF,IAAKwuJ,GAAY,EAAI,EACrBzuJ,IAAKyuJ,EAAW,EAAI,EACpB1sE,KAAMwsE,IAEP,KACH7hE,EAAO,aAAcmyG,GACjB9tC,EAAQmtC,UAAUnwG,EAAUywG,KAAY9xG,EAAO,iBACnDA,EAAO,cACPA,EAAO,kBACPA,EAAO,eACPA,EAAO,cACPA,EAAO,aACPA,EAAO,aACPA,EAAO,mBACPA,EAAO,cACPA,EAAO,UAAWiiE,GAClBjiE,EAAO,UAAW8hE,GAClB9hE,EAAO,UACP84B,EAAIpI,UAAUzwB,EAAaC,EAAc,CAAC,IAAK,MAC/BF,EAAO,cACR,CACbA,EAAO,aAAc0yG,EAAe,OAAS,OAC7C,IAAIvwC,EAAgBrpC,EAAInkC,WAAW,CAAC,EAAGo9G,EAAU,CAC/ClgN,KAAMinI,EAAIV,QAAQ25E,EAASlgN,QAE7BinI,EAAIp4B,WAAWV,EAAQ,aAAcmiE,EACvC,CA9EgC,CAnDZ,CAkItB,CACAz2I,EAAOluB,QAAU,SAAwBw7I,EAAU33C,EAAWu4C,GAC5D,IAAI/tJ,EACA8mN,EAAiB/4D,EAAS/rJ,QAC1BmmJ,EAAS3yC,EAAU2yC,OACvB,GAAIA,EACF,IAAKnoJ,EAAI,EAAGA,EAAImoJ,EAAO/pJ,OAAQ4B,IAAK,CAClC,IAAIqwB,EAAQ83H,EAAOnoJ,GACnB,GAAKqwB,EAAMk8E,WAAX,CACA,IAAIw6G,EAAY,CACd3uE,OAAQ/nH,EAAM+nH,OACd9rC,QAASj8E,EAAMi8E,QACfC,WAAYl8E,EAAMk8E,WAClBC,OAAQn8E,EAAMm8E,QAEhBs6G,EAAenoN,KAAKooN,EAPW,CAQjC,CAEF,IAAIC,EAAU,CAAC,UACf,IAAKhnN,EAAI,EAAGA,EAAI8mN,EAAe1oN,OAAQ4B,IACrCitI,EAAIvgB,WAAWs6F,EAASF,EAAe9mN,GAAGwsG,QAG5C,IADAgJ,EAAUyxG,SAAW,GAChBjnN,EAAI,EAAGA,EAAIgnN,EAAQ5oN,OAAQ4B,IAAK,CACnC,IAAIimN,EAAWe,EAAQhnN,GACvBgmN,EAAcC,EAAU94D,EAAU33C,EAAWsxG,GACzCtxG,EAAUywG,IAAazwG,EAAUywG,GAAU35G,UAC7CkJ,EAAUywG,GAAU/iE,IAAM+iE,GAE5BzwG,EAAUyxG,SAAStoN,KAAKsnN,EAC1B,CACF,CACF,IAIEiB,GAAuBj7K,EAAW,CACpC,wCAAwCt6B,EAASkuB,GAE/C,IAAIkxF,EAAWxE,KACX0gB,EAAMtN,KACNjT,EAAaugB,EAAIvgB,WACjBy6F,GAAiB,EACrBtnL,EAAOluB,QAAU,SAAqBovB,EAAGgkF,EAAIq+F,GAC3C,IAAI/sE,EAAatxB,EAAGonB,YACpB,IAAIpnB,EAAGkqC,WAAYlqC,EAAGsqC,SAAtB,CACA,IASIx1I,EATAutM,EAAY/wE,EAAW7pC,OAAO84G,UAC9B+B,EAAkBhxE,EAAW7pC,OAAO+4G,gBACpC+B,EAAajxE,EAAW7pC,OAAOg5G,WAUnC,GATkB,IAAdpC,GAAiC,WAAdgE,GAA8C,iBAApBC,GAAsCF,GAAkBpiG,EAAGrqE,MAAQqqE,EAAG4Z,SAAS9mB,UAC9Ho1B,EAAIjzB,SAASizB,EAAIhsG,EAAE8jF,EAAI,+CAAgD,QACvEoiG,GAAiB,GAEjBA,GAAiB,EAGD,IAAd/D,EAAiBvpM,EAAOutM,EACL,IAAdhE,IAAiBvpM,EAAOwtM,GAC5BxtM,EAAL,CACA,IAAI0tM,EAA6B,gBAAfD,EACdE,EAAenxE,EAAWoxE,aAAepxE,EAAWoxE,aAAazlN,QAAU,GAC3E0lN,EAAa3mL,EAAE2Z,OAAO,GAAG,GAC7B,IAAIgtK,EAAWC,aAAcD,EAAWE,QAAxC,CACA,IAAI75D,EAAWhpC,EAAGs5B,UACdkoE,GAAoBlwE,EAAW8R,QAAU,IAAI/9H,QAAO,SAASk4B,GAC/D,OAAOA,EAAGiqD,UACZ,IACIi6G,EAAiBz4D,EAASplJ,OAAO49M,GACjCxqE,EAAY2rE,EAAWttG,MACvB2hC,EAAU2qE,WACZ3qE,EAAYA,EAAUkL,YAExB,IACIjnJ,EAAGiG,EAAG4hN,EAAO5oN,EAAKgmB,EADlBwnF,EAAcsvC,EAAUtvC,YAExBq7G,EAAa,CAAC,EACdC,EAAc,GACdC,EAAQ,GACRC,EAAU,GAcVC,GAAiB7xE,EAAW8R,QAAU,IAAI9gJ,KAAI,SAASi7C,GACzD,OAAOA,EAAG81F,MACZ,IACI+vE,GAAgB,EAkBhBC,EAAarsE,EAAUvvC,OACvB67G,EAAYtsE,EAAUkL,WAE1B,GADcohE,GAAaA,EAAU3B,WACrB31F,EAASN,QAAQsrB,EAAW,YAiCrC,CACL,IAEIusE,EAFAC,EAAiB97G,GAAeA,EAAYruG,OAC5CoqN,EAAsB,GAE1B,GAAID,EACF,IAAKvoN,EAAI,EAAGA,EAAIwmN,EAAepoN,OAAQ4B,KACrCsoN,EAAS9B,EAAexmN,IACZssG,SACRg8G,EAAO77G,cAAgBA,GACzB+7G,EAAoB7pN,KAAKqB,GAI/B,GAAa,WAAT6Z,EAAmB,CACrB,IAAI4uM,EACJ,OAAQ1sE,EAAUzvC,SAChB,KAAK,EACHm8G,EAAiB,aACjB,MACF,KAAK,EACHA,GAAiB,EACjB,MACF,IAAK,aACHA,GAAiB,EAGrB,GAAIF,EACF,GAAIhB,EACF,IAAKvnN,EAAI,EAAGA,EAAIwmN,EAAepoN,OAAQ4B,IAAK,CAC1C,IAAI+tB,EAAOy4L,EAAexmN,IACL,IAAjB+tB,EAAKu+E,SAAqBv+E,EAAK0+E,cAAgBA,GACjDi8G,EAAc36L,EAAM06L,EAExB,MAEAC,EAAc3sE,EAAW0sE,QAG3BC,EAAc3sE,EAAW0sE,EAE7B,MAAO,GAAa,iBAAT5uM,EAAyB,CAClC,IAAI8uM,EAAsBC,EAAaC,EAAYC,EAC/CC,GAAa,EACjB,IAAK/oN,EAAI,EAAGA,EAAIwmN,EAAepoN,OAAQ4B,IAIrC,GAFA2oN,GADAG,EAAQtC,EAAexmN,MACD+7I,EACtB6sE,GAAmC,IAArBE,EAAMv8G,YAChBo8G,IAAaC,KACLL,GAAkBO,EAAMr8G,cAAgBA,IAClCq8G,EAAMt8G,SAAW47G,IAAgC,IAAlBU,EAAMx8G,UAAqBykB,EAASN,QAAQq4F,EAAO,uBAAwB,CAC1HC,GAAa,EACb,KACF,CAEF,IAAK/oN,EAAI,EAAGA,EAAIwmN,EAAepoN,OAAQ4B,IAErC,IAAsB,KADtB8oN,EAAQtC,EAAexmN,IACbssG,SAAqBw8G,EAAMt8G,SAAW47G,IAC5Cr3F,EAASN,QAAQq4F,EAAO,uBAG5B,OAAQ/sE,EAAUzvC,SAChB,IAAK,aACHo8G,EAAcI,GAAO,GACrB,MACF,KAAK,EACHD,IAAaE,GAAoB,aACjCJ,EAAYG,IAAU/sE,EACtB6sE,GAAmC,IAArBE,EAAMv8G,aAAwBu8G,EAAMr8G,YAElDi8G,EAAcI,MADFH,GAAaJ,GAAkBO,EAAMr8G,cAAgBA,KAC/Bm8G,IAAqBC,GAI/D,CACA,IAAK7oN,EAAI,EAAGA,EAAIgoN,EAAM5pN,OAAQ4B,IAE5B,GADA6nN,EAAQG,EAAMhoN,GACd,CACA,IAAIs8C,EAASurK,EAAMhpH,kBACfmqH,EAAa/nN,OAAOgkB,KAAKq3B,GAC7B,IAAKr2C,EAAI,EAAGA,EAAI+iN,EAAW5qN,OAAQ6H,IACjChH,EAAM+pN,EAAW/iN,IACX6hN,EAAW7oN,GAAO6oN,EAAW7oN,IAAQ,IACvCgpN,EAAQjoN,IAAMs8C,EAAOr9C,EANP,CAUtB,IADAgmB,EAAOhkB,OAAOgkB,KAAK6iM,GACd9nN,EAAI,EAAGA,EAAIilB,EAAK7mB,OAAQ4B,IAE3B,IADAf,EAAMgmB,EAAKjlB,GACNiG,EAAI,EAAGA,EAAI8hN,EAAY3pN,OAAQ6H,IAC7B6hN,EAAW7oN,GAAKwa,eAAexT,KAClC6hN,EAAW7oN,GAAKgH,QAAK,GAIvBkiN,EACFp3F,EAASlpH,KAAK,aAAck9G,EAAI+iG,EAAY,CAAE3/D,OAAQ+/D,GAAiBH,GAEvEh3F,EAASlpH,KAAK,cAAek9G,EAAI+iG,EAAYC,EAEjD,KApIyD,CACvD,IAAI7qB,EAAYwqB,EAAWvhM,MACvB8iM,EAAiBzB,EAAa/lN,QAAQy7L,GAC1C,GAAa,WAATrjL,GACsB,IAApBovM,EAAuBzB,EAAa7oN,KAAKu+L,GACxCsqB,EAAa/pJ,OAAOwrJ,EAAgB,QACpC,GAAa,iBAATpvM,EAAyB,CAClC,IAAIgsC,GAA8B,IAApBojK,EACVC,EAAa,GACjB,IAAKlpN,EAAI,EAAGA,EAAI+kH,EAAGw4B,SAASn/I,OAAQ4B,IAAK,CACvC,IAAI04J,EAAM3zC,EAAGw4B,SAASv9I,GACtB,IAAKiG,EAAI,EAAGA,EAAIyyJ,EAAIt6J,OAAQ6H,IAAK,CAC/B,IACIkjN,EADIzwD,EAAIzyJ,GACGkgB,MACXiiM,IAAe1vD,EAAI,GAAGt+C,MAAM5N,QAC1B0wF,IAAcisB,KACsB,IAAlC3B,EAAa/lN,QAAQ0nN,KAAgBtjK,GAAU,GACnD6mE,EAAW86F,EAAc2B,GACzBD,EAAWvqN,KAAKwqN,GAGtB,CACF,CACA,IAAKtjK,EACH,IAAK,IAAI3c,EAAI,EAAGA,EAAIggL,EAAW9qN,OAAQ8qC,IAAK,CAC1C,IAAI6xD,EAAMysH,EAAa/lN,QAAQynN,EAAWhgL,KAC7B,IAAT6xD,GACFysH,EAAa/pJ,OAAOs9B,EAAK,EAE7B,CAEJ,CACAg2B,EAASlpH,KAAK,eAAgBk9G,EAAI,eAAgByiG,EACpD,CAtFuD,CAJtC,CAbqB,CAsDtC,SAASkB,EAAc78D,EAAY30H,GACjC,IAAIwwL,EAAWC,YAAeJ,EAA9B,CACA,IAAI6B,EAAav9D,EAAW5E,YAAc4E,EACtCw9D,EAAWD,EAAW1C,SACtB/kN,EAAQynN,EAAWznN,WACT,IAAVA,IAAkBA,EAAQynN,EAAWrwE,QACzC,IAVsC53I,EAUlCmoN,GAAyC,IAAvBF,EAAW98G,SAA4Bp1E,EACzDmyL,GAXkCloN,EAYVmoN,EAX5BpB,EAWqBvmN,GAXK2qG,QAAUnrG,EACpCgnN,GAAgB,GAnBlB,SAA0B/zD,EAAYjzJ,GACpC,IAAIooN,EAAYxB,EAAYtmN,QAAQ2yJ,GAChCo1D,EAAa1B,EAAWx7G,QACvBk9G,IACHA,EAAa1B,EAAWx7G,QAAU,KAEK,IAArCy7G,EAAYtmN,QAAQ2yJ,KACtB2zD,EAAYppN,KAAKy1J,GACjBm1D,EAAYxB,EAAY3pN,OAAS,GAEnCorN,EAAWD,GAAapoN,CAE1B,CAmBIsoN,CAAiB9nN,EAAO2nN,EATuB,CAWnD,CAyIF,CACF,IAIEI,GAAqBz9K,EAAW,CAClC,qCAAqCt6B,EAASkuB,GAE5CA,EAAOluB,QAAU,CACfg4M,eAAgB,EAChBC,mBAAoB,GACpBC,eAAgB,UAChBC,gBAAiB,EACjBC,oBAAqB,CAAEttJ,GAAI,GAAIC,GAAI,EAAG7nD,MAAO,EAAGC,OAAQ,GAExDk1M,SAAU,EAEVC,QAAS,EAEb,IAIEC,GAA0Bj+K,EAAW,CACvC,2CAA2Ct6B,EAASkuB,GAElD,IAAIkxF,EAAWxE,KACXisD,EAAUktC,KACd7lL,EAAOluB,QAAU,SAAuB4rI,EAAU/8C,EAAM2pH,GACtD,IASInqN,EAAGiG,EATHmkN,EAAU5pH,EAAK6pH,SACfC,EAAU9xC,EAAQmtC,UAAUnlH,GAC5BmiF,EAAWnK,EAAQ+gB,WAAW/4F,GAC9B+pH,EAAiB,CAAC,EAClBC,EAAU,GACVC,GAAsB,EACtBC,EAAc,CAAC,EACfC,EAAU,EACVC,EAAgB,EAEpB,SAASC,EAAW5E,EAAU6E,EAAapD,GACzC,IAAqB,IAAjBlnH,EAAK8L,WACL69G,GAAsBlE,IAAazlH,EAAK0iD,KAC5C,GAAoB,KAAhB4nE,GAAuBtyC,EAAQmtC,UAAUnlH,IAKA,IAAlCgqH,EAAQ/oN,QAAQqpN,IACzBN,EAAQ7rN,KAAKmsN,GACbL,GAAsB,EACtBF,EAAeO,GAAe,CAACpD,IAE/B6C,EAAeO,GAAansN,KAAK+oN,OAViB,CAClD,IAAIqD,EAAc,MAAQJ,EAC1BH,EAAQ7rN,KAAKosN,GACbR,EAAeQ,GAAe,CAACrD,GAC/BiD,GACF,CAOF,CACA,IAAK3qN,EAAI,EAAGA,EAAIu9I,EAASn/I,OAAQ4B,IAAK,CACpC,IAAIy+H,EAAK8e,EAASv9I,GACdopJ,EAAM3qB,EAAG,GACTrkB,EAAQgvC,EAAIhvC,MACZ4wG,EAAM5wG,EAAM5N,OACZy+G,EAAS7wG,EAAM3N,YACnB,GAAK29G,GAAahwG,EAAM9N,SAAY8N,EAAM7N,WAC1C,GAAIwkB,EAASN,QAAQrW,EAAO,YAE1B,IADKswG,EAAYO,KAASP,EAAYO,GAAU,CAAC,GAC5ChlN,EAAI,EAAGA,EAAIw4H,EAAGrgI,OAAQ6H,IAAK,CAC9B,IAAIilN,EAASzsF,EAAGx4H,GAAGkgB,MACdukM,EAAYO,GAAQC,KACvBL,EAAWG,EAAKC,EAAQ,CACtB9kM,MAAO+kM,EACPv3M,MAAO8qH,EAAGx4H,GAAG0N,MACb3T,EAAGy+H,EAAGx4H,GAAGjG,EACTo6G,QACAynB,IAAKpD,EAAGx4H,GAAG47H,MAEb6oF,EAAYO,GAAQC,IAAU,EAC9BN,EAAgBhqN,KAAK6mB,IAAImjM,GAAgBM,GAAU,IAAI9sN,QAE3D,MAEAysN,EAAWG,EAAKC,EAAQ7hE,GACxBwhE,EAAgBhqN,KAAK6mB,IAAImjM,GAAgBxwG,EAAMnxG,MAAQ,IAAI7K,OAE/D,CACA,IAAKosN,EAAQpsN,OAAQ,MAAO,GAC5B,IAAI+sN,GAAkBV,IAAwBH,EAC1Cc,EAAa,GACjB,IAAKprN,EAAI,EAAGA,EAAIwqN,EAAQpsN,OAAQ4B,IAAK,CACnC,IAAIssB,EAAIi+L,EAAeC,EAAQxqN,IAC3BmrN,EACFC,EAAWzsN,KAAK2tB,EAAE,IAElB8+L,EAAWzsN,KAAK2tB,EAEpB,CAEA,IADI6+L,IAAgBC,EAAa,CAACA,IAC7BprN,EAAI,EAAGA,EAAIorN,EAAWhtN,OAAQ4B,IAAK,CACtC,IAAIqrN,EAAet2K,IACnB,IAAK9uC,EAAI,EAAGA,EAAImlN,EAAWprN,GAAG5B,OAAQ6H,IAAK,CACzC,IAAIqlN,EAAOF,EAAWprN,GAAGiG,GAAGm0G,MAAMzN,WAC9B0+G,EAAeC,IAAMD,EAAeC,EAC1C,CACAF,EAAWprN,GAAG,GAAGurN,cAAgBF,EACjCD,EAAWprN,GAAG,GAAGwrN,cAAgBxrN,CACnC,CACA,IAGIyrN,EAAW,SAASriM,EAAG4H,GACzB,OAAO5H,EAAEgxF,MAAMzN,WAAa37E,EAAEopF,MAAMzN,YAAcvjF,EAAEsiM,SAAW16L,EAAE06L,QACnE,EAKA,IAJAN,EAAW9rN,SAAQ,SAAS8pB,EAAGljB,GAC7BkjB,EAAE,GAAGoiM,cAAgBtlN,CACvB,IACAklN,EAAW/7L,MATI,SAASjG,EAAG4H,GACzB,OAAO5H,EAAE,GAAGmiM,cAAgBv6L,EAAE,GAAGu6L,eAAiBniM,EAAE,GAAGoiM,cAAgBx6L,EAAE,GAAGw6L,aAC9E,IAQKxrN,EAAI,EAAGA,EAAIorN,EAAWhtN,OAAQ4B,IAAK,CACtCorN,EAAWprN,GAAGV,SAAQ,SAAS8pB,EAAGljB,GAChCkjB,EAAEsiM,SAAWxlN,CACf,IACAklN,EAAWprN,GAAGqvB,KAAKo8L,GACnB,IAAIE,EAAiBP,EAAWprN,GAAG,GAAGo6G,MAClCutG,EAAa,KACjB,IAAK1hN,EAAI,EAAGA,EAAImlN,EAAWprN,GAAG5B,OAAQ6H,IAAK,CACzC,IAAIq/J,EAAK8lD,EAAWprN,GAAGiG,GAAGm0G,MAAM1N,iBAChC,GAAI44D,GAAMA,EAAGttJ,KAAM,CACjB2vM,EAAariD,EACT8kD,IAAS9kD,EAAGj6D,KAAO7K,EAAKorH,iBAC5B,KACF,CACF,CAEA,GADIjpC,GAAUyoC,EAAWprN,GAAGotE,UACxBu6I,EAAY,CACd,IAAIkE,GAAa,EACjB,IAAK5lN,EAAI,EAAGA,EAAImlN,EAAWprN,GAAG5B,OAAQ6H,IACpC,GAAI8qH,EAASN,QAAQ26F,EAAWprN,GAAGiG,GAAGm0G,MAAO,YAAa,CACxDyxG,GAAa,EACb,KACF,CAEFT,EAAWprN,GAAG25D,QAAQ,CACpB35D,GAAI,EACJ2nN,aACAC,QAASiE,EACTzxG,MAAO,CACL7N,WAAYo/G,EAAep/G,WAC3BE,YAAak/G,EAAel/G,YAC5BH,QAA6B,eAApB9L,EAAKglH,YAAqCmG,EAAer/G,UAGxE,CACA,IAAKrmG,EAAI,EAAGA,EAAImlN,EAAWprN,GAAG5B,OAAQ6H,IACpCmlN,EAAWprN,GAAGiG,GAAK,CACjBmlN,EAAWprN,GAAGiG,GAGpB,CAGA,OAFAu6F,EAAKsrH,eAAiBV,EAAWhtN,OACjCoiG,EAAKurH,eAAiBnB,EACfQ,CACT,CACF,IAIEY,GAAmB//K,EAAW,CAChC,4BAA4Bt6B,GAE1B,IAAIs7H,EAAMtN,KACV,SAAS77F,EAAOmoL,GACd,OAAkC,IAA3BA,EAASxqN,QAAQ,KAAcwqN,EAAS7qN,QAAQ,UAAW,MAAkC,IAA3B6qN,EAASxqN,QAAQ,KAAcwqN,EAAS7qN,QAAQ,UAAW,IAAM6qN,CAC5I,CACAt6M,EAAQu6M,iBAAmB,SAA0B7rL,EAAG0rF,GACtD,IAAIkgG,EAAWnoL,GAAY,IAAJzD,GAAS8yD,YAAY,IAC5C,OAAO85C,EAAI7E,YAAY6jF,EAAUlgG,GAAc,GACjD,EACAp6G,EAAQw6M,eAAiB,SAAwB9rL,EAAG0rF,GAClD,IAAIkgG,EAAWnoL,EAAOzD,EAAE8yD,YAAY,KACpC,OAAO85C,EAAI7E,YAAY6jF,EAAUlgG,EACnC,EACAp6G,EAAQy6M,eAAiB,SAAwBhqN,EAAOm6F,GACtD,GAAK0wC,EAAI90C,oBAAoB/1F,GAC7B,IAAK,IAAIpC,EAAI,EAAGA,EAAIu8F,EAAQn+F,OAAQ4B,IAAK,CACvC,IAAIqgC,EAAIj+B,EAAMm6F,EAAQv8F,IACtB,GAAIqgC,GAAW,IAANA,GAAiB,KAANA,EAAU,OAAOA,CACvC,CACF,EACA1uB,EAAQ4zH,WAAa,SAAoBx3G,EAAMwuE,GAC7C,OAAI0wC,EAAI90C,oBAAoBpqE,GAAcpc,EAAQy6M,eAAer+L,EAAMwuE,GAC9DxuE,QAAJ,CACP,EACApc,EAAQ06M,iBAAmB,SAASC,GAClC,OAAqB,SAAbA,EAAsB,EAAIA,GAAY1rN,KAAKsgD,GAAK,GAC1D,CACF,IAIEqrK,GAAmBtgL,EAAW,CAChC,6BAA6Bt6B,EAASkuB,GAEpC,IAAIovJ,EAAU1Q,KACV3sE,EAAStC,IACbzvE,EAAOluB,QAAU,SAAiBuX,EAAG6L,EAAIqlF,EAAO2K,GAC9C,IAAI1jH,EAAU+4G,EAAM9xF,OAAOjnB,QACvBA,GAAWA,EAAQgvB,MACrB4+J,EAAQxK,WAAWv7J,EAAGkxF,EAAO2K,EAAIhwF,GAEjC68E,EAAO58F,KAAKkU,EAAG6L,EAAGphB,MAEtB,CACF,IAIE64M,GAAoBvgL,EAAW,CACjC,8BAA8Bt6B,EAASkuB,GAErC,IAAI+xE,EAAStC,IACTi2B,EAAaymF,KAAmBzmF,WAChCknF,EAAUF,KACd1sL,EAAOluB,QAAU,SAAkBuX,EAAG6L,EAAIqlF,EAAO2K,GAC/C,IAAI1iH,EAAO+3G,EAAM9xF,OAAOjmB,KACpBijL,EAAY//C,EAAWljI,EAAKsR,MAAOohB,EAAG8sG,MAAQjwB,EAAO1C,YACrD8xE,EAAYz7C,EAAWljI,EAAKwS,MAAOkgB,EAAG8sG,MAAQ,EAClD34G,EAAErhB,KAAK4kN,EAAS13L,EAAIqlF,EAAO2K,GAAI16F,MAAM,eAAgB22J,GAAWn5K,KAAK+pG,EAAOjB,OAAQ20E,EACtF,CACF,IAIEonC,GAAgBzgL,EAAW,CAC7B,iCAAiCt6B,EAASkuB,GAExC,IAAIkQ,EAAKD,IACLihF,EAAWxE,KACX0gB,EAAMtN,KACN0L,EAAe4B,EAAI5B,aACnB4jD,EAAU1Q,KACV3sE,EAAStC,IACTk6D,EAAcJ,KAAkBI,YAChCkV,EAAW/F,KACXg0C,EAAWH,KACXI,EAAgBZ,KAAmBzmF,WACnCp6B,EAAYu+G,KAgehB,SAASmD,EAAqB5iD,EAAc6iD,GAE1C,OADUA,EAAW,SAAW,eAClB7iD,EAAe,GAAK,WACpC,CACA,SAAS8iD,EAAc/6M,GACrB,IAAIooG,EAAQpoG,EAAE,GAAGooG,MACb4yG,EAAW5yG,EAAM4yG,SACjBC,EAAWvuC,EAASzb,SAAS7oD,GAC7B8yG,EAAaxuC,EAAS9F,WAAWx+D,GACjC+yG,EAAW/yG,EAAM9N,SAAW8N,EAAMplG,MAAuB,SAAfolG,EAAMplG,KAChDo4M,GAAmB,EACnBC,GAAmB,EACvB,GAAIL,EAAU,CACZ,IAAIM,EAAWN,EAASM,SACP,UAAbA,EACFF,GAAmB,EAEnBH,EAAwB,SAAbK,GAAoC,YAAbA,GAA0BN,EAASO,UAEjD,eAAlBP,EAASnqN,KACXsqN,EAAmC,MAAxBH,EAASQ,WACE,SAAbF,GAAoC,YAAbA,IAChCD,GAAmB,EAEvB,CACA,MAAO,CACLH,aACAD,WACAE,WACAC,mBACAC,mBACAI,QAASR,GAAYG,EACrBM,QAASP,GAAYE,EAEzB,CACA,SAASM,EAAQttL,EAAGmpE,EAAM/hF,GACxB,OAAI4Y,GAAK4sG,EAAI90C,oBAAoB93D,GAAWmpE,EACxCnpE,EAAI5Y,EAAYA,EACb4Y,CACT,CAjgBAR,EAAOluB,QAAU,SAAeuX,EAAG67F,EAAIvY,GACrC,IAAI6pC,EAAatxB,EAAGonB,YACf3/B,IAAQA,EAAS6pC,EAAW7pC,QACjC,IAAIohH,EAA2C,aAAtBphH,EAAO44G,WAC5ByI,EAAYrhH,EAAO64G,UACnByI,GAAaD,EAAgC,EAApB1iH,EAAU8+G,SAAe,EAClD8D,EAAkB1iF,EAAayiF,EAAW,GAC1CE,EAAiB,SAASpoC,EAAK7pF,EAAMt0E,EAAKwmM,GAC5C,IAAI5tL,EACJ,GAAIulJ,EAAM,EACRvlJ,EAAIulJ,MACC,MAAI7pF,GAAQA,EAAKlnF,MAAQ,GAG9B,OAAO,EAFPwrB,EAAI07D,EAAKlnF,KAGX,CACA,OAAO+4M,EAAqBK,EAAMrtN,KAAK8mB,IAAI2Y,EAAG5Y,EAChD,EAyMA,SAASymM,EAAal8M,EAAGm8M,EAAOjxD,GAC9B,IAAI9iD,EAAQpoG,EAAE,GAAGooG,MACb9xF,EAAS8xF,EAAM9xF,QAAU,CAAC,EAC1Bu8J,EAAav8J,EAAOjmB,MAAQ,CAAC,EAC7B+rN,EAAU9lM,EAAO+lM,aAAe,wEAElC,gBAEEC,EAAapxD,EAA+C9iD,EAAM9N,SAAW8N,EAAMv3G,OAASq6J,EAAjEnsC,EAASN,QAAQrW,EAAO,OACnDm0G,EAAUx+K,EAAGsI,OAAO81K,GAAO91K,OAAO,kBAAkBQ,UAAU,cAAgBqkH,GAAaxiH,KAAK4zK,EAAY,CAACt8M,GAAK,IACtHu8M,EAAQhyK,QAAQp6C,OAAO,QAAQi5C,QAAQ,SAAW8hH,GAAa,GAAMjiH,KAAK,IAAKmzK,GAASnzK,KAAK,YAAa8yK,GAC1GQ,EAAQ/xK,OAAOtH,SACfq5K,EAAQpzK,MAAK,SAASmH,GACpB,IAAIxxB,EAAIif,EAAGsI,OAAOt6C,MACdqmF,EAAK9hC,EAAG,GACR3hB,EAAIqtL,EAAe5pI,EAAGwhG,IAAKt9J,EAAOjmB,KA1OhB,EAFA,GA6OtByuB,EAAEzG,MAAM,eAAgBsW,EAAI,MAC5B,IAAI8iJ,EAAMr/F,EAAGq/F,IACb,IAAKj3E,EAAO69G,UAAY,OAAQjmI,EAAI,CAClC,IAAI+zE,EAAQqR,EAAYlhJ,GACpBspB,EAAMumH,EAAMvmH,SACJ,IAARA,IAAgBA,GAAOumH,EAAM1wI,IAAM0wI,EAAMzwI,KAAO,GACpD+7J,EAAMwL,EAAQxI,cAAcn+J,EAAQ,GAA9B2mK,CAAkCr9I,EAC1C,CACA,IAAIyzI,EAAY5B,GAAOr/F,EAAG6hG,IAAM39J,EAAO3U,MACnCwrK,EAAgB72J,EAAOjnB,QACvBi+K,EAAeH,GAAiB8P,EAAQ1P,eAAeJ,EAAc9uJ,MAAO,EAAG,IACnF,GAAIivJ,EAAc,CAChB,IAAIE,EAAiByP,EAAQ1P,eAAeJ,EAActqJ,QAAS,EAAG,MAClE4qJ,EAAiBwP,EAAQ1P,eAAeJ,EAAc93D,QAAS,EAAG,MAClEq4D,EAAmBP,EAAc73D,UACjCq4D,EAAcguC,EAAQxuC,EAAcn5K,KAAM,EAAG,IAC7C45K,EAAkB+tC,EAAQxuC,EAAc53D,SAAU,GAAK,GACvDs4D,EAAY,UAAYzlE,EAAMvN,IAClC/7E,EAAEjpB,KACAonL,EAAQ5tL,QACR,SACA0jH,EACA86D,EACAP,EACAK,EACAC,EACA6D,EACAtE,EAAc/3D,SACdo4D,EACAC,EACAC,EAEJ,MACE5uJ,EAAEjpB,KAAK+pG,EAAO58F,KAAMqwK,GAElB1kJ,GAAGixE,EAAOjB,OAAO7/E,EAAGszD,EAAG2hG,KAAOlB,EAAWlxK,MAC/C,GACF,CA+DA,SAAS66M,EAAax8M,EAAGm8M,EAAOjxD,GAC9B,IAAI94E,EAAKpyE,EAAE,GACPooG,EAAQh2B,EAAGg2B,MACXk0G,EAAapxD,EAAqD9iD,EAAM9N,SAAW8N,EAAMv3G,OAASq6J,EAAvEnsC,EAASN,QAAQrW,EAAO8iD,GACnDr7B,EAAM9xF,EAAGsI,OAAO81K,GAAO91K,OAAO,kBAAkBQ,UAAU,cAAgBqkH,GAAaxiH,KAAK4zK,EAAY,CAACt8M,GAAK,IAGlH,GAFA6vH,EAAItlF,QAAQp6C,OAAO,QAAQi5C,QAAQ,SAAW8hH,GAAa,GAAMjiH,KAAK,IAAK,iBAAiBA,KAAK,YAAa8yK,GAC9GlsF,EAAIrlF,OAAOtH,SACP2sF,EAAI77H,OAAQ,CACd,IAAI+1F,EAAOqe,EAAM9xF,QAAU,CAAC,EACxB44J,EAAK8sC,EAAepB,EAAc7wH,EAAK15F,KAAKwS,MAAOuvE,EAAGy9C,KAAM9lC,EAAK15F,KAxV/C,EAFA,GA2VlBwhI,EAAM,UACN4qF,EAAOxhF,EAAI1G,UAAUnsB,EAAO,CAAE9xF,OAAQ,CAAEjmB,KAAM,CAAEwS,MAAOqsK,KAAUr9C,GACjE6qF,EAAQzhF,EAAI1G,UAAUniD,EAAI,CAAEg2B,MAAOq0G,GAAQ5qF,GAC/C8oF,EAAS9qF,EAAK6sF,EAAOD,EAAM1pG,EAC7B,CACF,CA3UA77F,EAAEiyB,MAAK,SAASnpC,GACd,IAAI28M,EAAa5+K,EAAGsI,OAAOt6C,MACvB6wN,EAAS3hF,EAAIzF,aAAamnF,EAAY,IAAK,UAC/CC,EAAOvkM,MAAM,UAAWrY,EAAE,GAAGooG,MAAM9sG,SACnC,IAAI63M,EAAc34G,EAAO24G,YACrBM,EAASj5G,EAAOi5G,OAChBp4M,EAAa2E,EAAE,GAAG3E,WAClByH,EAAS9C,EAAE,GAAG8C,OAClB,GAAe,WAAX2wM,GAAuC,IAAhBN,IAAsB93M,IAAeyH,EAC9D85M,EAAO3zK,KAAK,YAAa,UACpB,CACL,IACI4zK,EADS,CAAEz2L,IAAK,EAAGE,QAAS,GAAImtL,IACN,IAAOp4M,EAAayH,EAAS,KAAO,EAC9Dg6M,EAAgBtiH,EAAO24G,YAC3ByJ,EAAO3zK,KAAK,YAAaowF,EAAayjF,EAAeD,GACvD,CACWD,EAAO/1K,UAAU,gBAAgB6B,KAAK,CAAC1oC,IAC7CuqC,QAAQp6C,OAAO,KAAKi5C,QAAQ,cAAc,GACpCwzK,EAAO/1K,UAAU,iBAAiB6B,KAAK,CAAC1oC,IAC9CuqC,QAAQp6C,OAAO,KAAKi5C,QAAQ,eAAe,GAChD,IAAIgiC,EAASwxI,EAAO/1K,UAAU,mBAAmB6B,KAAK,CAAC1oC,IACvDorE,EAAO7gC,QAAQp6C,OAAO,KAAKi5C,QAAQ,iBAAiB,GACpDgiC,EAAOvkC,UAAU,kBAAkB6B,KAAK,CAAC1oC,IAAIuqC,QAAQp6C,OAAO,KAAKi5C,QAAQ,gBAAgB,EAC3F,IAAGD,MAqTH,SAAsBnpC,GACpB,IACI+8M,EADA30G,EAAQpoG,EAAE,GAAGooG,MAEb40G,EAAU,GACd,GAAI50G,EAAM9N,QACR,OAAQ8N,EAAMv3G,MACZ,IAAK,cACL,IAAK,UACHmsN,EAAU,CACR,CAAC,qBAGHD,GAAc,EACd,MACF,IAAK,aACL,IAAK,mBACL,IAAK,gBACHC,EAAU,CACR,CAAC,mBAEHD,GAAc,EACd,MACF,IAAK,gBACL,IAAK,aACHC,EAAU,CACR,CAAC,4CAEHD,EAAc,SACd,MACF,IAAK,OACHC,EAAU,CACR,CAAC,iCACD,CAAC,kCACD,CAAC,iCAEHD,GAAc,EACd,MACF,IAAK,aACHC,EAAU,CACR,CAAC,6CACD,CAAC,gDACD,CAAC,gDAEHD,GAAc,EACd,MACF,IAAK,UACHC,EAAU,CACR,CAAC,+CACD,CAAC,8CAEHD,GAAc,EACd,MACF,IAAK,SACHC,EAAU,CACR,CAAC,kBACD,CAAC,gBACD,CAAC,kBAEHD,GAAc,EACd,MACF,IAAK,SACHC,EAAU,CACR,CAAC,kBACD,CAAC,gBACD,CAAC,kBAEHD,GAAc,EACd,MACF,IAAK,aACHC,EAAU,CACR,CAAC,kBACD,CAAC,gBACD,CAAC,mCAEHD,GAAc,EAIpB,IAAIltF,EAAM9xF,EAAGsI,OAAOt6C,MAAMs6C,OAAO,kBAAkBQ,UAAU,2BAA2B6B,KAAKs0K,GAC7FntF,EAAItlF,QAAQp6C,OAAO,QAAQi5C,QAAQ,sBAAsB,GAAMH,KAAK,YAAa8yK,GAAiB1jM,MAAM,oBAAqB,GAC7Hw3G,EAAIrlF,OAAOtH,SACX2sF,EAAI1mF,MAAK,SAAS8zK,EAAIjvN,GACpB,IAiBIqlL,EAjBAtwJ,EAAKgb,EAAGsI,OAAOt6C,MACfo6J,EAAQqR,EAAYpvD,GACpBvH,EAAaslD,EAAMtlD,WACnBo3D,EAAe9R,EAAM8R,aAezB,GAAKp3D,GAIH,IAAKk8G,EAAa,CAChB,IAAIj+M,EAAM+hG,EAAWz0G,OACrBinL,EAAkB,IAANrlL,EAAU6yG,EAAWo3D,EAAen5J,EAAM,EAAI,GAAG,GAErD,IAAN9Q,EAAU6yG,EAAWo3D,EAAe,EAAIn5J,EAAM,GAAG,GAE/C+hG,EAAWjyG,KAAK2/B,OAAOzvB,EAAM,GAAK,IAAI,EAG5C,MAbe,CACf,IAAIu4C,EAAS+wD,EAAM80G,aAAe90G,EAAM+0G,WAAa/0G,EAAMzmG,MAC3D0xK,EAAYp4C,EAAI90C,oBAAoB9uC,GAAUA,EAAOrpD,IAAMqpD,EAAO,GAAKA,CACzE,CAYAt0B,EAAGkmB,KAAK,IAAKg0K,EAAG,IACZ5pC,EACFtwJ,EAAGltB,KAAK+pG,EAAO58F,KAAMqwK,GAErBtwJ,EAAGltB,MAjCc,SAASowC,GAC1B,GAAIA,EAAGjyC,OAAQ,CACb,IAAI85K,EAAa,cAAgB1lE,EAAMvN,IACvCoiF,EAAQlP,SACN9nI,EACA8sE,EACA+6D,EACA+sC,EAAqB5iD,EAA8B,WAAhB8kD,GACnCl8G,EACA,OAEJ,CACF,GAuBF,GACF,IA/asB13D,MAgJtB,SAAyBnpC,GACvB,IAAIooG,EAAQpoG,EAAE,GAAGooG,MACbg1G,EAA6B,cAAfh1G,EAAMv3G,KACxB,GAAImP,EAAE,GAAGq9M,WAAaD,EAAa,CACjC,IAAIrzH,EAAO/pF,EAAE,GAAGooG,MAAMpoG,EAAE,GAAGuf,KAAKjJ,OAIhC,OAHAtW,EAAE,GAAGi0K,GAAKlqF,EAAKpoF,MACf3B,EAAE,GAAG4zK,IAAM7pF,EAAK15F,KAAKwS,MACrB7C,EAAE,GAAG+zK,IAAMhqF,EAAK15F,KAAKsR,MACdu6M,EAAal8M,EAAGjU,KAAM,YAC/B,CACA,IAAIixN,EAAU,GACV50G,EAAM9N,SAAW8iH,IACnBJ,EAAUh9M,EAAE,GAAGs9M,UAAY,CAAC,CAAC,aAAc,eAAgB,CAAC,SAAU,oBAAqB,CAAC,aAAc,eAAiB,CAAC,CAAC,aAAc,eAAgB,CAAC,aAAc,iBAE5K,IAAIztF,EAAM9xF,EAAGsI,OAAOt6C,MAAMs6C,OAAO,kBAAkBQ,UAAU,wBAAwB6B,KAAKs0K,GAC1FntF,EAAItlF,QAAQp6C,OAAO,QAAQi5C,QAAQ,mBAAmB,GAAMH,KAAK,YAAa8yK,GAAiB1jM,MAAM,oBAAqB,GAC1Hw3G,EAAIrlF,OAAOtH,SACX2sF,EAAI1mF,MAAK,SAAS8zK,GAChB,IAAIl6L,EAAKgb,EAAGsI,OAAOt6C,MACf6rK,EAAQxvD,EAAM60G,EAAG,IAAI3mM,OACrB44J,EAAK8sC,OAAe,EAAQpkD,EAAMvnK,KA9MhB,EAFA,GAiNtB0yB,EAAGkmB,KAAK,IAAKg0K,EAAG,IAAI5kM,MAAM,eAAgB62J,EAAK,MAAMr5K,KAAK+pG,EAAO58F,KAAM40J,EAAMj2J,OACzEutK,GACFnsJ,EAAGltB,KAAK+pG,EAAOjB,OAAQi5D,EAAMvnK,KAAKsR,MAEtC,GACF,IA1K4CwnC,MA8K5C,SAAsBnpC,GACpBk8M,EAAal8M,EAAGjU,KAAM,SACxB,IAhL+Do9C,MA2K/D,SAAmBnpC,GACjBk8M,EAAal8M,EAAGjU,KAClB,IA7K+Eo9C,MAuO/E,SAAoBnpC,GAClB,IAAIooG,EAAQpoG,EAAE,GAAGooG,MACbynB,EAAM9xF,EAAGsI,OAAOt6C,MAAMs6C,OAAO,kBAAkBQ,UAAU,kBAAkB6B,KAAK0/D,EAAM9N,SAAWykB,EAASN,QAAQrW,EAAO,cAAgB,CAACpoG,GAAK,IACnJ6vH,EAAItlF,QAAQp6C,OAAO,QAAQi5C,QAAQ,aAAa,GAAMH,KAAK,IAAK,iBAAiBA,KAAK,YAAa8yK,GACnGlsF,EAAIrlF,OAAOtH,SACX2sF,EAAI1mF,MAAK,WACP,IAAIrqB,EAAIif,EAAGsI,OAAOt6C,MAClB,GAAyB,QAApBq8G,EAAMm1G,WAAwC,QAAjBn1G,EAAMl1G,QAAyD,IAApC0sG,EAAOtkG,QAAQ8sG,EAAMyP,YAAiE,IAA7CjY,EAAOtkG,SAAS8sG,EAAM/3G,MAAQ,CAAC,GAAGsR,OAUjI,CACL,IAAIgtB,EAAIqtL,OAAe,EAAQ5zG,EAAM/3G,KAnSjB,EAFA,GAsSpByuB,EAAEzG,MAAM,eAAgBsW,EAAI,MAAM94B,KAAK+pG,EAAO58F,KAAMolG,EAAMyP,WACtDlpF,GAAGixE,EAAOjB,OAAO7/E,EAAGspF,EAAM/3G,KAAKsR,MACrC,KAdsJ,CACpJ,IAAI86M,EAAOxhF,EAAI1G,UAAUnsB,EAAO,CAC9B9xF,OAAQ,CACNtiB,KAAM4nN,EA/RI,GA+RmC3gF,EAAI9J,UAAU/oB,EAAM9xF,OAAOtiB,KAAM,EAAG,IACjFizK,QAAS,EACTE,QAAS,EACTE,SAAU,cAGdx3C,EAAIh6H,KAAKonL,EAAQxK,WAAYgqC,EAAM1pG,EACrC,CAKF,GACF,IA9PgG5pE,MAkShG,SAA0BnpC,GACxBw8M,EAAax8M,EAAGjU,KAAM,aACxB,IApSuHo9C,MA+RvH,SAAmBnpC,GACjBw8M,EAAax8M,EAAGjU,KAAM,MACxB,IAjSuIo9C,MACvI,SAAoBnpC,GAClB,IASIw9M,EAAMf,EATNgB,EAAa1C,EAAc/6M,GAC3Bm7M,EAAWsC,EAAWtC,SACtBF,EAAWwC,EAAWxC,SACtBG,EAAmBqC,EAAWrC,iBAC9BC,EAAmBoC,EAAWpC,iBAC9BK,EAAU+B,EAAW/B,QACrBD,EAAUgC,EAAWhC,QACrBrpI,EAAKpyE,EAAE,GACPooG,EAAQh2B,EAAGg2B,MAEX+9C,EAAQqR,EAAYpvD,GACpBvH,EAAaslD,EAAMtlD,WACnBo3D,EAAe9R,EAAM8R,aAgCrBylD,EAAYhxC,EAAS9F,WAAWx+D,KAAWszG,EAAU,OAGvDD,EAAU,QAAU,QAElBkC,EAAQ5/K,EAAGsI,OAAOt6C,MAClBiX,EAAO26M,EAAMt3K,OAAO,eAAeQ,UAAU,QAAQ6B,KAAKyyK,GAAYE,EAAmB,CAACr7M,GAAK,IAInG,GAHAgD,EAAKunC,QAAQp6C,OAAO,QAAQi5C,QAAQ,WAAW,GAC/CpmC,EAAKwnC,OAAOtH,SACZlgC,EAAKimC,KAAK,IAAKy0K,EAAY,IAAM7B,EAAY,OAASA,EAAY,KAAKhmN,MAxCvD,SAASowC,GACvB,GAAIA,EAAGjyC,OACL,GAAImnN,EACFl+B,EAAQvN,eAAezpI,EAAI8sE,GAAI,OAC1B,CACL,IAAI+6D,EAAa,cAAgB1lE,EAAMvN,IACvCoiF,EAAQlP,SACN9nI,EACA8sE,EACA+6D,EACA+sC,EAAqB5iD,GACrBp3D,EACA,OAEJ,CAEJ,IAyBIo6G,GAAYG,EAAkB,CAChC,IAAIlsC,EAAK8sC,OAAe,EAAQ5zG,EAAM/3G,KApGvB,GAFA,GAuGfosN,EAAOxhF,EAAI1G,UAAUnsB,EAAO,CAAE/3G,KAAM,CAAEwS,MAAOqsK,KAC7CsuC,EAAO,CAACviF,EAAI1G,UAAUniD,EAAI,CAAEg2B,MAAOq0G,IACrC,CACA,IAAIpsN,EAAOstN,EAAMt3K,OAAO,gBAAgBQ,UAAU,QAAQ6B,KAAKuyK,GAAYG,EAAmB,CAACoC,GAAQ,IACvGntN,EAAKk6C,QAAQp6C,OAAO,QAAQi5C,QAAQ,WAAW,GAC/C/4C,EAAKm6C,OAAOtH,SACZ7yC,EAAK44C,KAAK,IAAKy0K,GAAatC,EAAmB,IAAMS,EAAY,UAAY,IAAMA,IAAYhmN,KAAKolN,EAAWh+B,EAAQ3N,eAhCpG,SAASrpI,GAC1B,GAAIA,EAAGjyC,OAAQ,CACb,IAAI85K,EAAa,cAAgB1lE,EAAMvN,IACvCoiF,EAAQ3N,eAAerpI,GACvBg3I,EAAQlP,SACN9nI,EACA8sE,EACA+6D,EACA+sC,EAAqB5iD,GACrBp3D,EACA,SAEJ,CACF,EAoBF,IAjEwJ13D,MAkExJ,SAAqBnpC,GACnB,IAQIw9M,EAAMf,EARNgB,EAAa1C,EAAc/6M,GAC3B07M,EAAU+B,EAAW/B,QACrBD,EAAUgC,EAAWhC,QACrBR,EAAWwC,EAAWxC,SACtBC,EAAauC,EAAWvC,WACxB9oI,EAAKpyE,EAAE,GACPooG,EAAQh2B,EAAGg2B,MACXinD,GAAY6rD,IAAeO,IAAYC,GAAWhvC,EAAS7F,QAAQz+D,GAEvE,SAASw1G,EAASC,EAAQC,EAAcn0F,EAAQsyF,GAC9C,IAAIr5G,EAAQq4B,EAAIhvC,eAAemc,EAAOy1G,GAAQ/oN,MAC1CipN,EAAa9iF,EAAI90C,oBAAoByc,IAAUk7G,EAAeA,EAAal7G,GAASA,EAIxF,GAHIg5G,GAAsBmC,QAAsB,IAAR9B,IACtC8B,EAAa9B,GAEXtyF,EAAQ,CACV,GAAIo0F,EAAap0F,EAAO,GAAI,OAAOA,EAAO,GACrC,GAAIo0F,EAAap0F,EAAO,GAAI,OAAOA,EAAO,EACjD,CACA,OAAOo0F,CACT,CACA,SAASC,EAAU5tN,GACjB,OAAIgiF,EAAGirI,WAAajrI,EAAGziF,OAASS,EAAMgiF,EAAGziF,OAAeS,EAAMgiF,EAAGziF,OAC1DS,EAAM,EACf,CACA,GAAI8qN,GAAc7rD,GAAY4rD,EAAU,CACtC,IAAIgD,EAAQ,CAAC,EACTC,EAAQ,CAAC,EACb,GAAIhD,EAAY,CACd+C,EAAMhqC,GAAK2pC,EAAS,eAAgBI,GACpCC,EAAM95L,GAAKy5L,EAAS,gBAAiBI,GACrCC,EAAMj6G,GAAK45G,EAAS,iBAAkB3iF,EAAIh7F,KAAM,CAAC,GAAK,IACtDg+K,EAAMlqC,IAAM6pC,EAAS,oBAAqBI,GAC1CC,EAAMrqC,IAAMgqC,EAAS,oBAAqB3iF,EAAIh7F,KAAM,CAAC,EAAG,GAhJpC,GAiJpBi+K,EAAM5nM,OAAS,CACb2wJ,QAAS,EACTE,QAAS,EACTE,SAAU,YAEZ,IAAIx4I,EAAK+uL,EAAS,cAAe3iF,EAAIh7F,KAAM,CAAC,EAAG,IAxJjC,IAyJdg+K,EAAMpvL,GAAKA,EACXqvL,EAAM5nM,OAAOtiB,KAAO66B,CACtB,CACIosL,IACFiD,EAAM7tN,KAAO,CACXwS,MAAO+6M,EAAS,aAAcI,EAAW,CAAC,EAAG,IA7JlC,KAgKX3uD,IACF4uD,EAAMl+I,GAAK,KACXk+I,EAAM7lC,GAAKwlC,EAAS,eAAgBI,GACpCC,EAAMz2G,GAAK,GACXy2G,EAAMpgH,GAAK+/G,EAAS,iBAAkBI,GACtCC,EAAM3lC,GAAKslC,EAAS,kBAAmBI,GACvCC,EAAM1lC,GAAKqlC,EAAS,kBAAmBI,GACvCC,EAAMzlC,GAAKolC,EAAS,iBAAkBI,GACtCC,EAAMxlC,GAAKmlC,EAAS,mBAAoBI,GACxCC,EAAMvlC,GAAKklC,EAAS,oBAAqBI,GACzCC,EAAMtlC,GAAKilC,EAAS,wBAAyBI,GAC7CC,EAAMrlC,GAAKglC,EAAS,kBAAmBI,IAEzCR,EAAO,CAACviF,EAAI1G,UAAUniD,EAAI6rI,KAC1BxB,EAAOxhF,EAAI1G,UAAUnsB,EAAO81G,IACvBjjH,eAAiB,KACtBwhH,EAAKpmG,aAAe,IACtB,CACA,IAAI8nG,EAAUpgL,EAAGsI,OAAOt6C,MAAMs6C,OAAO,kBACjCwpF,EAAMsuF,EAAQt3K,UAAU,mBAAmB6B,KAAKwyK,EAAasC,EAAO,IACxE3tF,EAAItlF,QAAQh9C,OAAO,OAAQ,gBAAgB67C,QAAQ,cAAc,GAAMH,KAAK,YAAa8yK,GACzFlsF,EAAIrlF,OAAOtH,SACX2sF,EAAIh6H,KAAKonL,EAAQxK,WAAYgqC,EAAM1pG,GAC/BmoG,IAAYsC,EAAK,GAAGxqC,IAAM,GAC9B,IAAI2K,EAAMwgC,EAAQt3K,UAAU,eAAe6B,KAAK2mH,EAAWmuD,EAAO,IAClE7/B,EAAIpzI,QAAQp6C,OAAO,KAAKi5C,QAAQ,aAAa,GAAMj5C,OAAO,QAAQ84C,KAAK,YAAa8yK,GACpFp+B,EAAInzI,OAAOtH,SACXy6I,EAAI92I,UAAU,QAAQhxC,KAAKonL,EAAQhF,eAAgBwkC,EAAM1pG,EAC3D,IA/I0K5pE,MA+P1K,SAAsBnpC,GACpB,IAAIooG,EAAQpoG,EAAE,GAAGooG,MACbynB,EAAM9xF,EAAGsI,OAAOt6C,MAAMs6C,OAAO,kBAAkBQ,UAAU,qBAAqB6B,KAAK0/D,EAAM9N,SAA0B,gBAAf8N,EAAMv3G,KAAyB,CAACmP,EAAGA,GAAK,IAChJ6vH,EAAItlF,QAAQp6C,OAAO,QAAQi5C,QAAQ,gBAAgB,GAAMH,KAAK,KAAK,SAASha,EAAGjhC,GAC7E,OAAIA,EAAU,uBACP,oBACT,IAAGi7C,KAAK,YAAa8yK,GAAiB1jM,MAAM,oBAAqB,GACjEw3G,EAAIrlF,OAAOtH,SACX2sF,EAAI1mF,MAAK,SAASla,EAAGjhC,GACnB,IAAI8wB,EAAIif,EAAGsI,OAAOt6C,MACdg+F,EAAOqe,EAAMp6G,EAAI,aAAe,cAChC2gC,EAAIqtL,OAAe,EAAQjyH,EAAK15F,KApTd,EAFA,GAuTtByuB,EAAEzG,MAAM,eAAgBsW,EAAI,MAAM94B,KAAK+pG,EAAO58F,KAAM+mF,EAAK8tB,WACrDlpF,GAAGixE,EAAOjB,OAAO7/E,EAAGirE,EAAK15F,KAAKsR,MACpC,GACF,IA9Q6LwnC,MA+Q7L,SAAmBnpC,GACjB,IAAIooG,EAAQpoG,EAAE,GAAGooG,MACbynB,EAAM9xF,EAAGsI,OAAOt6C,MAAMs6C,OAAO,kBAAkBQ,UAAU,mBAAmB6B,KAAK0/D,EAAM9N,SAA0B,SAAf8N,EAAMv3G,KAAkB,CAACmP,EAAGA,GAAK,IACvI6vH,EAAItlF,QAAQp6C,OAAO,QAAQi5C,QAAQ,cAAc,GAAMH,KAAK,KAAK,SAASha,EAAGjhC,GAC3E,OAAIA,EAAU,mBACP,eACT,IAAGi7C,KAAK,YAAa8yK,GAAiB1jM,MAAM,oBAAqB,GACjEw3G,EAAIrlF,OAAOtH,SACX2sF,EAAI1mF,MAAK,SAASla,EAAGjhC,GACnB,IAAI8wB,EAAIif,EAAGsI,OAAOt6C,MACdg+F,EAAOqe,EAAMp6G,EAAI,aAAe,cAChC2gC,EAAIqtL,OAAe,EAAQjyH,EAAK15F,KApUd,EAFA,GAuUtByuB,EAAEzG,MAAM,OAAQ,QAAQxiB,KAAKonL,EAAQ5N,SAAUtlF,EAAK15F,KAAK8kH,KAAMxmF,GAC3DA,GAAGixE,EAAOjB,OAAO7/E,EAAGirE,EAAK15F,KAAKsR,MACpC,GACF,GAkJF,CAyCF,IAIEy8M,GAAenkL,EAAW,CAC5B,gCAAgCt6B,EAASkuB,GAEvC,IAAIkQ,EAAKD,IACLm9F,EAAMtN,KACNqvD,EAAQ9uC,KACRnvB,EAAWxE,KACXskB,EAASD,KACT2xE,EAAcH,KACdnzB,EAAU1Q,KACV3sE,EAAStC,IACTmvE,EAAevgB,KACf+J,EAAci/C,KACd/7G,EAAYu+G,KACZ1oB,EAAqBvjC,KACrBK,EAAekjC,EAAmBljC,aAClCF,EAAUojC,EAAmBpjC,QAC7BC,EAAUmjC,EAAmBnjC,QAC7BwyD,EAAgBnG,KAChB7/L,EAAQqiM,KACRl0C,EAAUktC,KAEV4K,EAAiB,iBAyCrB,SAASnb,EAAQpwF,EAAIvkB,GACnB,IAGI+vH,EAAQxmG,EAHRymG,EAAYhwH,GAAQ,CAAC,EACrB61C,EAAatxB,EAAGonB,YAChB85E,EAAWwK,EAAMD,GAEjBpG,EAAUoG,EAAUnG,SAQxB,GAPID,GACFrgG,EAAQymG,EAAUzmG,MAClBwmG,EAAS,UAETxmG,EAAQssB,EAAW8T,WACnBomE,EAAStK,GAENl8F,EAAL,CAGA,IAAIqhG,EACJ,GAHAmF,GAAUl6E,EAAW+sC,KAChBr+D,EAAGwqC,uBAAsBxqC,EAAGwqC,qBAAuB,GAEnD66D,EAkCE,CACL,IAAKoG,EAAU5kM,QAAS,OACxBw/L,EAAaiF,EAAcG,EAAU5kM,QAAS4kM,EAChD,KArCc,CAGZ,IAFA,IAAIjzE,GAAYx4B,EAAGw4B,UAAY,IAAIv7I,QAC/BmmJ,EAAS9R,EAAW8R,OACfnoJ,EAAI,EAAGA,EAAImoJ,EAAO/pJ,OAAQ4B,IAAK,CACtC,IAAIqwB,EAAQ83H,EAAOnoJ,GACnB,GAAKqwB,EAAMk8E,WAAX,CACA,IAAImkH,EAAc,CAChBhK,UAAU,EACVz/D,WAAY52H,EACZ1uB,MAAO0uB,EAAM0oH,OACb9vI,KAAMonB,EAAMpnB,MAAQonB,EAAMlK,MAAMnO,MAAQ,SAAWqY,EAAM0oH,OACzDvsC,OAAQn8E,EAAMm8E,OACdC,YAAap8E,EAAMo8E,YACnBC,iBAAkBr8E,EAAMq8E,iBACxBC,WAAYt8E,EAAMs8E,WAClBC,YAAav8E,EAAMu8E,YACnBL,WAAYl8E,EAAMk8E,WAClBD,QAASj8E,EAAMi8E,QACfh/F,QAAS+iB,EAAM/iB,QACfuM,KAAqB,SAAfwW,EAAMxtB,KAAkB,QAAU,UACxCR,KAAMguB,EAAMhuB,KACZimB,OAAQ,CACNjmB,KAAMguB,EAAMhuB,KACZsR,MAAO0c,EAAMw5F,UACb7jH,KAAM,GACNo3E,OAAuB,SAAf/sD,EAAMxtB,KAAkB,SAA0B,WAAfwtB,EAAMxtB,KAAoB,SAEnE,aAIN06I,EAAS5+I,KAAK,CAAC,CAAEy7G,MAAOs2G,IA1BO,CA2BjC,CACAtF,EAAa/0E,EAAW9pC,YAAc8jH,EAAc9yE,EAAUizE,EAAWn6E,EAAW4wE,SAAS7oN,OAAS,EACxG,CAIA,IAAIopN,EAAenxE,EAAWoxE,cAAgB,GAC9C,IAAK2C,KAAa/zE,EAAW9pC,aAAe6+G,EAAWhtN,QAGrD,OAFA2rH,EAAMlxE,UAAU,IAAMotK,GAAU/wK,SAChCmhG,EAAWs6E,SAASt4K,OAAO,IAAMk4K,GAAQr7K,SAClC85I,EAAMl/B,WAAW/qC,EAAIkhG,GAE9B,IAAIz5G,EAASygC,EAAIzF,aAAazd,EAAO,IAAKk8F,GAAU,SAAS/8L,GACtDkhM,GAASlhM,EAAE+xB,KAAK,iBAAkB,MACzC,IACI21K,EAAW3jF,EAAItF,iBAAiB0O,EAAWs6E,SAAU,WAAYJ,GAAQ,SAASrnM,GACpFA,EAAE/mB,OAAO,OACX,IACIw9D,EAAKstE,EAAIzF,aAAah7B,EAAQ,OAAQ,MAAM,SAAStjF,GACvDA,EAAE+xB,KAAK,kBAAmB,aAC5B,IACA0kB,EAAG93D,KAAK+pG,EAAOjB,OAAQ6/G,EAAU3kH,aAAahkG,KAAK+pG,EAAO58F,KAAMw7M,EAAU37L,SAASxK,MAAM,eAAgBmmM,EAAU1/C,YAAc,MACjI,IAII4gB,EAJAm/B,EAAY5jF,EAAIzF,aAAah7B,EAAQ,IAAK,aAC1Cwe,EAAQwlG,EAAUxlG,MACtBwlG,EAAUM,YAAc,EACxBN,EAAUO,aAAe,EAErB/lG,EAAMhzG,OACR05K,EAAUzkD,EAAIzF,aAAaqpF,EAAW,OAAQ5K,EAAW,cACjDhrK,KAAK,cAAe,SAASpzC,KAAKonL,EAAQ5jF,KAAM2f,EAAM3f,MAAMrzF,KAAKgzG,EAAMhzG,MAC/Eg5M,EAAWt/B,EAASm/B,EAAW9rG,EAAIyrG,EAzHtB,IA2HbK,EAAUh4K,UAAU,IAAMotK,EAAW,aAAa/wK,SAEpD,IAAI+7K,EAAYhkF,EAAIzF,aAAah7B,EAAQ,OAAQ,aAAa,SAAStjF,GACrEA,EAAE+xB,KAAKkwD,EAAU4+G,qBAAqBliN,KAAK+pG,EAAO58F,KAAMm2F,EAAU0+G,eACpE,IACInyK,EAASm5K,EAAUh4K,UAAU,YAAY6B,KAAK0wK,GAClD1zK,EAAO6E,QAAQp6C,OAAO,KAAK84C,KAAK,QAAS,UACzCvD,EAAO8E,OAAOtH,SACd,IAAI4xE,EAASpvE,EAAOmB,UAAU,YAAY6B,KAAKuyF,EAAI31D,UACnDwvC,EAAOvqE,QAAQp6C,OAAO,KAAK84C,KAAK,QAAS,UACzC6rE,EAAOtqE,OAAOtH,SACd4xE,EAAOz8F,MAAM,WAAW,SAASrY,GAC/B,IAAIooG,EAAQpoG,EAAE,GAAGooG,MACjB,OAAI2W,EAASN,QAAQrW,EAAO,aACmB,IAAtCotG,EAAa/lN,QAAQuQ,EAAE,GAAGmU,OAAgB,GAAM,EAE9B,eAAlBi0F,EAAM9N,QAA2B,GAAM,CAElD,IAAGnxD,MAAK,WACNpL,EAAGsI,OAAOt6C,MAAM8J,KAAKqpN,EAAWnsG,EAAIyrG,EACtC,IAAG3oN,KAAKwiB,EAAO06F,EAAIyrG,GAAWr1K,MAAK,WAC5BivK,GAASr6K,EAAGsI,OAAOt6C,MAAM8J,KAAKspN,EAAkBpsG,EAAIkhG,EAC3D,IACAh5E,EAAI1I,YAAY,CACdyqD,EAAMpuC,iBACN,WACE,OAqZN,SAAiC77B,EAAIrtE,EAAQovE,EAAQ0pG,GACnD,IAAIn6E,EAAatxB,EAAGonB,YAChB85E,EAAWwK,EAAMD,GAChBA,IACHA,EAAYn6E,EAAW4vE,IAEzB,IAAI/hE,EAAK7N,EAAW4N,MAChB6xB,EAAa0C,EAAQ1C,WAAW06C,GAChC7K,EAAYntC,EAAQmtC,UAAU6K,GAC9BY,EAA0C,aAA7BZ,EAAUtL,eACvBmM,EAAKb,EAAU1/C,YACfwgD,EAAM,EAAID,EACVpH,EAAU9+G,EAAU8+G,QACpBsH,EAAUf,EAAUrL,YAAcqL,EAAUnL,UAAsB,EAAV4E,EACxDuH,EAAS,GAAKH,EAAKpH,GACnB7/F,EAAUqnG,EAAWjB,GACrBkB,EAAkBlB,EAAUpqN,EAAI,GAAqB,IAAhBoqN,EAAUpqN,GAAuB,QAAZgkH,EAC1DunG,EAAkBnB,EAAUpqN,EAAI,GAAqB,IAAhBoqN,EAAUpqN,GAAuB,WAAZgkH,EAC1DwnG,EAAgBpB,EAAUxL,cAC1B6M,EAAoB,CAAC,EACzBrB,EAAUsB,WAAalxN,KAAK6mB,IAC1BiqM,GAAmBC,EAAkBt7E,EAAWvhI,OAAS,EAAIovI,EAAGrzI,EAChE,IAEF,IAAIkhN,EAAkB,EACtBvB,EAAUwB,OAAS,EACnBxB,EAAUyB,QAAU,EACpB,IAAIC,EAzCN,SAAsB1B,GACpB,IAAI7vL,EAAI,EACJ9vB,EAAI,EACJkgJ,EAAOy/D,EAAUxlG,MAAM+lC,KAS3B,OARIA,KAC4B,IAA1BA,EAAKtvJ,QAAQ,UACfk/B,EAAI6vL,EAAUM,cAEa,IAAzB//D,EAAKtvJ,QAAQ,SACfoP,EAAI2/M,EAAUO,eAGX,CAACpwL,EAAG9vB,EACb,CA4BkBshN,CAAa3B,GAC7B,GAAI16C,EACFhvD,EAAO3rE,MAAK,SAASnpC,GACnB,IAAInB,EAAImB,EAAE,GAAG8C,OACbm6K,EAAQlC,aACNhvL,KACAszN,EAAKa,EAAU,GACfb,EAAKa,EAAU,GAAK1B,EAAUyB,QAAUphN,EAAI,EAAIo5M,GAElDuG,EAAUyB,SAAWphN,EACrB2/M,EAAUwB,OAASpxN,KAAK6mB,IAAI+oM,EAAUwB,OAAQhgN,EAAE,GAAG6C,MACrD,IACAk9M,EAAkBR,EAAUf,EAAUwB,OACtCxB,EAAUwB,QAAU/H,EAAUsH,EAAUD,EACxCd,EAAUyB,SAAWT,EACjB7L,IACFjuK,EAAOyD,MAAK,SAASnpC,EAAGhS,GACtBivL,EAAQlC,aAAahvL,KAAM,EAAGiC,EAAIwwN,EAAUxL,cAC9C,IACAwL,EAAUyB,UAAYzB,EAAU1E,eAAiB,GAAK0E,EAAUxL,mBAE7D,CACL,IAAI76F,EAAUioG,EAAW5B,GACrB6B,EAAmB7B,EAAUrqN,EAAI,GAAqB,IAAhBqqN,EAAUrqN,GAAuB,UAAZgkH,EAC3DmoG,EAAoB9B,EAAUrqN,EAAI,GAAqB,IAAhBqqN,EAAUrqN,GAAuB,SAAZgkH,EAC5DooG,EAAoBZ,GAAmBD,EACvCc,EAAKn8E,EAAWxhI,MAAQ,EAC5B27M,EAAUiC,UAAY7xN,KAAK6mB,IACzB4qM,EAAmBE,GAAiC,SAAZpoG,EAAqB+5B,EAAG/6H,EAAI+6H,EAAGvjH,EAAI6xL,EAAKF,EAAoBC,GAAiC,UAAZpoG,EAAsB+5B,EAAG93H,EAAI83H,EAAGvjH,EAAI6xL,EAAKtuE,EAAGvjH,EACrK,EAAI4wL,GAEN,IAAImB,EAAe,EACfC,EAAoB,EACxB7rG,EAAO3rE,MAAK,SAASnpC,GACnB,IAAI2uB,EAAIiyL,EAAc5gN,EAAGw+M,EAAWe,GACpCmB,EAAe9xN,KAAK6mB,IAAIirM,EAAc/xL,GACtCgyL,GAAqBhyL,CACvB,IACAoxL,EAAkB,KAClB,IAAIc,EAAc,EAClB,GAAIlN,EAAW,CACb,IAAImN,EAAsB,EACtBC,EAAe,EACfC,EAAe,EACnBt7K,EAAOyD,MAAK,WACV,IAAI83K,EAAkB,EAClBC,EAAW,EACfnjL,EAAGsI,OAAOt6C,MAAM86C,UAAU,YAAYsC,MAAK,SAASnpC,GAClD,IAAI2uB,EAAIiyL,EAAc5gN,EAAGw+M,EAAWe,GAChC1gN,EAAImB,EAAE,GAAG8C,OACbm6K,EAAQlC,aACNhvL,KACAm0N,EAAU,GACVA,EAAU,GAAKb,EAAKpH,EAAUp5M,EAAI,EAAIqiN,GAExCA,GAAYriN,EACZoiN,EAAkBryN,KAAK6mB,IAAIwrM,EAAiBtyL,GAC5CkxL,EAAkB7/M,EAAE,GAAGooG,MAAM3N,aAAewmH,CAC9C,IACA,IAAI9vN,EAAO8vN,EAAkBhJ,EAG3B8I,EAAe,GACf5vN,EAAOkuN,EAAK0B,EAAevC,EAAUiC,WAErCI,EAAcjyN,KAAK6mB,IAAIorM,EAAaE,GACpCA,EAAe,EACfC,GAAgBF,EAAsBlB,EACtCkB,EAAsBI,GAEtBJ,EAAsBlyN,KAAK6mB,IAAIqrM,EAAqBI,GAEtDjkC,EAAQlC,aAAahvL,KAAMg1N,EAAcC,GACzCD,GAAgB5vN,CAClB,IACAqtN,EAAUwB,OAASpxN,KAAK6mB,IAAIorM,EAAaE,GAAgB1B,EACzDb,EAAUyB,QAAUe,EAAeF,EAAsBtB,CAC3D,KAAO,CACL,IAAI2B,EAAUrsG,EAAO9gH,OACjBotN,EAAeT,EAAoBrB,GAAO6B,EAAU,GAAKlJ,EAAUuG,EAAUiC,UAC7EY,EAAqB,EACrBxmF,EAAU,EACVC,EAAU,EACVwmF,EAAW,EACfxsG,EAAO3rE,MAAK,SAASnpC,GACnB,IAAInB,EAAImB,EAAE,GAAG8C,OACT6rB,EAAIiyL,EAAc5gN,EAAGw+M,EAAWe,GAChCpuN,EAAOiwN,EAAezyL,EAAI+xL,EACzBtB,IACHjuN,GAAQ8mN,GAEN9mN,EAAOkuN,EAAKxkF,EAAUo9E,GAAWuG,EAAUiC,YAC7CI,EAAcjyN,KAAK6mB,IAAIorM,EAAaS,GACpCzmF,EAAU,EACVC,GAAWumF,EACX7C,EAAUyB,SAAWoB,EACrBA,EAAqB,GAEvBpkC,EAAQlC,aACNhvL,KACAm0N,EAAU,GAAKb,EAAKxkF,EACpBqlF,EAAU,GAAKb,EAAKvkF,EAAUj8H,EAAI,EAAIo5M,GAExCqJ,EAAWzmF,EAAUlsG,EAAIspL,EACzBp9E,GAAW1pI,EACXkwN,EAAqBzyN,KAAK6mB,IAAI4rM,EAAoBxiN,EACpD,IACIuiN,GACF5C,EAAUwB,OAASnlF,EAAUykF,EAC7Bd,EAAUyB,QAAUoB,EAAqB7B,IAEzChB,EAAUwB,OAASpxN,KAAK6mB,IAAIorM,EAAaS,GAAYhC,EACrDd,EAAUyB,SAAWoB,EAAqB7B,EAE9C,CACF,CACAhB,EAAUwB,OAASpxN,KAAK8/B,KACtB9/B,KAAK6mB,IACH+oM,EAAUwB,OAASE,EAAU,GAC7B1B,EAAUM,YAAc,GAAKO,EAAKlmH,EAAU6+G,YAGhDwG,EAAUyB,QAAUrxN,KAAK8/B,KACvB9/B,KAAK6mB,IACH+oM,EAAUyB,QAAUC,EAAU,GAC9B1B,EAAUO,aAAe,GAAKM,EAAKlmH,EAAU8+G,WAGjDuG,EAAU+C,WAAa3yN,KAAK8mB,IAAI8oM,EAAUyB,QAASzB,EAAUsB,YAC7D,IAAIt7G,EAAQuO,EAAG4Z,SAASnoB,MACpBg9G,EAAah9G,EAAMQ,YAAcR,EAAMO,eAC3C+P,EAAO3rE,MAAK,SAASnpC,GACnB,IAAIyhN,EAAc1jL,EAAGsI,OAAOt6C,MAAMs6C,OAAO,IAAM4tK,EAAW,UACtDp1M,EAAImB,EAAE,GAAG8C,OACT23F,EAAcz6F,EAAE,GAAGooG,MAAM3N,YACzBinH,EAAad,EAAc5gN,EAAGw+M,EAAWe,GACzC5L,GAA6B,KAAhBl5G,IACfinH,EAAa7B,EAAkBplH,IAEjC,IAAI9rE,EAAI6yL,EAAajC,EAAUQ,GAAmB2B,EAC7C59C,GAAes7C,IAClBzwL,GAAKspL,EAAU,GAEjBh7B,EAAQ3O,QAAQmzC,EAAa,GAAI5iN,EAAI,EAAG8vB,EAAG9vB,EAC7C,GACF,CAjkBa8iN,CAAwB5uG,EAAIrtE,EAAQovE,EAAQ0pG,EACrD,EACA,WACE,IAoJMoD,EAAIC,EAAIzwK,EAAIE,EApJd4gG,EAAK7N,EAAW4N,MAChBotE,EAAKb,EAAU1/C,YACfqF,EAA8B,UAAnBq6C,EAAUtlG,KACrBgrD,EAA8B,UAAnBs6C,EAAUrlG,KAIzB,GAHIH,EAAMhzG,MApIhB,SAA8B05K,EAAS8+B,EAAWa,GAChD,GAA6B,eAAzBb,EAAUxlG,MAAM+lC,MAAkD,cAAzBy/D,EAAUxlG,MAAM+lC,KAA7D,CACA,IACI1jJ,EADOmjN,EAAUxlG,MAAM3f,KACLrlG,KAAO83J,EACzBg2D,EAAc,EACdC,EAAWriC,EAAQhvL,OACnBmS,EAAQo6K,EAAQ1C,KAAKwnC,GAAUl/M,MACN,eAAzB27M,EAAUxlG,MAAM+lC,KAClB+iE,EAAc,IAAOtD,EAAUwB,OAAS,EAAIX,EAAK,EAAIlmH,EAAU6+G,SAAWn1M,GACxC,cAAzB27M,EAAUxlG,MAAM+lC,OACzB+iE,EAActD,EAAUwB,OAAS,EAAIX,EAAK,EAAIlmH,EAAU6+G,SAAWn1M,GAErE4pK,EAAara,aACXstB,EACA2/B,EAAKlmH,EAAU6+G,SAAW8J,EAC1BzC,EAAKhkN,EAdkF,CAgB3F,CAoHQ2mN,CAAqBtiC,EAAS8+B,EAAWa,IAEtCjH,EAAS,CACZ,IAAI7tJ,EAAIC,EAEND,EADE45G,EACGjyB,EAAG/6H,EAAI+6H,EAAGvjH,EAAI6vL,EAAUrqN,EAAIy3J,EAAQw0D,EAAW5B,IAAcA,EAAUwB,OAEvE37E,EAAWxhI,MAAQ27M,EAAUrqN,EAAIy3J,EAAQw0D,EAAW5B,IAAcA,EAAUwB,OAGjFx1J,EADE05G,EACGhyB,EAAG53H,EAAI43H,EAAGrzI,GAAK,EAAI2/M,EAAUpqN,GAAKw3J,EAAQ6zD,EAAWjB,IAAcA,EAAU+C,WAE7El9E,EAAWvhI,QAAU,EAAI07M,EAAUpqN,GAAKw3J,EAAQ6zD,EAAWjB,IAAcA,EAAU+C,WAE1F,IAAIU,EA4iBZ,SAAsBlvG,EAAIkhG,EAAU1pJ,EAAIC,GACtC,IAAI65E,EAAatxB,EAAGonB,YAChBqkF,EAAYn6E,EAAW4vE,GACvB97F,EAAUioG,EAAW5B,GACrBpmG,EAAUqnG,EAAWjB,GACrBr6C,EAA8B,UAAnBq6C,EAAUtlG,KACrBgrD,EAA8B,UAAnBs6C,EAAUrlG,KACzBpG,EAAGonB,YAAYkY,gBAAgB4hE,GAAY,CAAC,EAC5C,IAAIiO,EAAQ1D,EAAUpqN,EAAI,GAAM,IAAM,IAClC+tN,EAAQ3D,EAAUrqN,EAAI,GAAM,IAAM,IAClCiuN,EAA0B,CAC5BhoM,EAAGiqH,EAAWxhI,MAAQ0nD,EACtBpzC,EAAGozC,EAAKi0J,EAAUwB,OAClBhhM,EAAGqlH,EAAWvhI,OAAS0nD,EACvBlwC,EAAGkwC,EAAKg0J,EAAU+C,YAEpB,GAAIp9C,GAAYD,EACd,OAAO8Y,EAAMl/B,WAAW/qC,EAAIkhG,EAAU,CACpC9/M,EAAGqqN,EAAUrqN,EACbC,EAAGoqN,EAAUpqN,EACb+iB,EAAGqnM,EAAUwB,OAASp0D,EAAQzzC,GAC9B/9F,EAAGokM,EAAUwB,OAASn0D,EAAQ1zC,GAC9Bn5F,EAAGw/L,EAAU+C,WAAa11D,EAAQzzC,GAClC99F,EAAGkkM,EAAU+C,WAAa31D,EAAQxzC,KAE3B+rD,EACTpxD,EAAGonB,YAAYkY,gBAAgB4hE,GAAUiO,GAASE,EAAwBF,GACjEh+C,GAGqB,MAA1Bs6C,EAAUlgD,YAFdvrD,EAAGonB,YAAYkY,gBAAgB4hE,GAAUkO,GAASC,EAAwBD,GAKxEpvG,EAAGonB,YAAYkY,gBAAgB4hE,GAAUiO,GAASE,EAAwBF,EAGhF,CAhlBwBG,CAAatvG,EAAIkhG,EAAU1pJ,EAAIC,GAC/C,GAAIy3J,EAAW,OACf,GAAI59E,EAAW5jH,OAAOi5F,WAAY,CAChC,IAAI4oG,EAAM/3J,EACNg4J,EAAM/3J,EACVD,EAAK45G,EAAWlpC,EAAI9J,UAAU5mE,EAAI,EAAG85E,EAAWxhI,MAAQ27M,EAAUwB,QAAUsC,EAC5E93J,EAAK05G,EAAWjpC,EAAI9J,UAAU3mE,EAAI,EAAG65E,EAAWvhI,OAAS07M,EAAU+C,YAAcgB,EAC7Eh4J,IAAO+3J,GACTrnF,EAAI1qF,IAAI,aAAe0jK,EAAW,sCAEhCzpJ,IAAO+3J,GACTtnF,EAAI1qF,IAAI,aAAe0jK,EAAW,qCAEtC,CACAh3B,EAAQlC,aAAavgF,EAAQjwC,EAAIC,EACnC,CAGA,GAFAy0J,EAAUv6K,GAAG,QAAS,MACtB81D,EAAO91D,GAAG,QAAS,MACf0zK,GAAWoG,EAAUyB,SAAWzB,EAAUsB,YAAc/sG,EAAG4Z,SAASvoB,WAAY,CAClF,IAAIthG,EAAS07M,EAAU+C,WACnBnJ,IAASt1M,EAAS07M,EAAUyB,SAChCtyJ,EAAG1kB,KAAK,CACNpmC,MAAO27M,EAAUwB,OAASX,EAC1Bv8M,OAAQA,EAASu8M,EACjBlrN,EAAGkrN,EAAK,EACRjrN,EAAGirN,EAAK,IAEVpiC,EAAQlC,aAAa8jC,EAAW,EAAG,GACnCD,EAASv4K,OAAO,QAAQ4C,KAAK,CAC3BpmC,MAAO27M,EAAUwB,OAAS,EAAIX,EAC9Bv8M,OAAQA,EAAS,EAAIu8M,EACrBlrN,EAAGkrN,EACHjrN,EAAGirN,IAELpiC,EAAQpC,WAAWgkC,EAAWN,EAAQxrG,GACtCkqE,EAAQ3O,QAAQ2wC,EAAW,EAAG,EAAG,EAAG,UAC7BT,EAAUgE,QACnB,KAAO,CACL,IAiCIC,EAASC,EAASC,EAjClBC,EAAkBh0N,KAAK6mB,IACzB0jF,EAAUy+G,mBACV4G,EAAU+C,WAAa/C,EAAU+C,WAAa/C,EAAUyB,SAEtD4C,EAAgBrE,EAAU+C,WAAaqB,EAAkB,EAAIzpH,EAAU2+G,gBACvEgL,EAAgBtE,EAAUyB,QAAUzB,EAAU+C,WAC9CwB,EAAcF,EAAgBC,EAC9BE,EAAap0N,KAAK8mB,IAAI8oM,EAAUgE,UAAY,EAAGM,GACnDn1J,EAAG1kB,KAAK,CACNpmC,MAAO27M,EAAUwB,OAAS,EAAIX,EAAKlmH,EAAUw+G,eAAiBx+G,EAAU2+G,gBACxEh1M,OAAQ07M,EAAU+C,WAAalC,EAC/BlrN,EAAGkrN,EAAK,EACRjrN,EAAGirN,EAAK,IAEVT,EAASv4K,OAAO,QAAQ4C,KAAK,CAC3BpmC,MAAO27M,EAAUwB,OAAS,EAAIX,EAAKlmH,EAAUw+G,eAAiBx+G,EAAU2+G,gBACxEh1M,OAAQ07M,EAAU+C,WAAa,EAAIlC,EACnClrN,EAAGkrN,EACHjrN,EAAGirN,EAAK2D,IAEV/lC,EAAQpC,WAAWgkC,EAAWN,EAAQxrG,GACtCkwG,EAAcD,EAAYJ,EAAiBG,GAC3CvoH,EAAO91D,GAAG,SAAS,WAMjBu+K,EALAD,EAAa/nF,EAAI9J,UACfqtF,EAAUgE,SAAWzkL,EAAGtsB,MAAM4iC,OAASwuK,EAAgBC,EACvD,EACAA,GAEwBF,EAAiBG,GACxB,IAAfC,GAAoBA,IAAeF,GACrC/kL,EAAGtsB,MAAMozB,gBAEb,IAEA,IAQIq+K,EAAgBnlL,EAAGmG,SAAS0J,OAAOlJ,GAAG,aAAa,WACrD,IAAIp2C,EAAIyvC,EAAGtsB,MAAMszB,YAEf09K,EADa,eAAXn0N,EAAEuC,KACMvC,EAAEg+C,eAAe,GAAGY,QAEpB5+C,EAAE4+C,QAEdy1K,EAAcK,CAChB,IAAGt+K,GAAG,QAAQ,WACZ,IAAIp2C,EAAIyvC,EAAGtsB,MAAMszB,YACC,IAAdz2C,EAAEujN,SAAiBvjN,EAAEsjB,UAEvB8wM,EADa,cAAXp0N,EAAEuC,KACMvC,EAAEg+C,eAAe,GAAGY,QAEpB5+C,EAAE4+C,QAGd+1K,EADAD,EAxBsB,SAASG,EAAcC,EAAUC,GACvD,IAAIjvN,GAAKivN,EAAWD,GAAYL,EAAcI,EAC9C,OAAOloF,EAAI9J,UAAU/8H,EAAG,EAAG0uN,EAC7B,CAqBeQ,CAAkBX,EAAaF,EAASC,GAC3BE,EAAiBG,GAC7C,IACA9D,EAAUppN,KAAKqtN,GACf,IAAIK,EAAqBxlL,EAAGmG,SAAS0J,OAAOlJ,GAAG,aAAa,WAC1D,IAAIp2C,EAAIyvC,EAAGtsB,MAAMszB,YACF,eAAXz2C,EAAEuC,OACJ4xN,EAAUn0N,EAAEg+C,eAAe,GAAGY,QAC9By1K,EAAcK,EAElB,IAAGt+K,GAAG,QAAQ,WACZ,IAAIp2C,EAAIyvC,EAAGtsB,MAAMszB,YACF,cAAXz2C,EAAEuC,OACJ6xN,EAAUp0N,EAAEg+C,eAAe,GAAGY,QAE9B+1K,EADAD,EAlCkB,SAASG,EAAcC,EAAUC,GACrD,IAAIjvN,GAAKgvN,EAAWC,GAAYN,EAAcI,EAC9C,OAAOloF,EAAI9J,UAAU/8H,EAAG,EAAG0uN,EAC7B,CA+BiBU,CAAgBb,EAAaF,EAASC,GACzBE,EAAiBG,GAE/C,IACAlE,EAAUhpN,KAAK0tN,EACjB,CACA,SAASN,EAAcQ,EAAaC,EAAkBC,GACpDnF,EAAUgE,SAAWzvG,EAAGonB,YAAY85E,GAAUuO,SAAWiB,EACzDxmC,EAAQlC,aAAa8jC,EAAW,GAAI4E,GACpCxmC,EAAQ3O,QACN2wC,EACAT,EAAUwB,OACV7mH,EAAU2+G,gBAAkB2L,EAAcE,EAC1CxqH,EAAUw+G,eACV+L,GAEF9E,EAASv4K,OAAO,QAAQ4C,KAAK,IAAKo2K,EAAKoE,EACzC,CACI1wG,EAAG4Z,SAASnoB,MAAMO,iBAEpBvK,EAAOpxD,QAAQ,eAAe,GAC9BmnK,EAAY7iL,KAAK,CACf/6B,QAAS6nG,EAAO9pG,OAChBqiH,KACA++F,OAAQ,SAASxjN,GACf,GAAIA,EAAE2jB,SAAWgtM,EAAUvuN,OAA3B,CAGA,IAAI8tB,EAAYy+J,EAAQnC,aAAatgF,GACrCppD,EAAK5yB,EAAUrqB,EACfm9C,EAAK9yB,EAAUpqB,CAHf,CAIF,EACA69M,OAAQ,SAASvjK,EAAIC,GACnB,QAAW,IAAPyC,QAAwB,IAAPE,EAAe,CAClC,IAAIg8E,EAAOl8E,EAAK1C,EACZk1K,EAAOtyK,EAAK3C,EAChBsuI,EAAQlC,aAAavgF,EAAQ8yB,EAAMs2F,GACnChC,EAAKrR,EAAY3vH,MAAM0sC,EAAMkxF,EAAUwB,OAAQ9tE,EAAG/6H,EAAG+6H,EAAG/6H,EAAI+6H,EAAGvjH,EAAG6vL,EAAUrmG,SAC5E0pG,EAAKtR,EAAY3vH,MAAMgjI,EAAOpF,EAAUyB,SAAUzB,EAAUyB,QAAS/tE,EAAG53H,EAAI43H,EAAGrzI,EAAGqzI,EAAG53H,EAAGkkM,EAAUpmG,QACpG,CACF,EACA+5F,OAAQ,WACN,QAAW,IAAPyP,QAAwB,IAAPC,EAAe,CAClC,IAAIlkN,EAAM,CAAC,EACXA,EAAIs2M,EAAW,MAAQ2N,EACvBjkN,EAAIs2M,EAAW,MAAQ4N,EACvB9iG,EAASlpH,KAAK,eAAgBk9G,EAAIp1G,EACpC,CACF,EACA00M,QAAS,SAASjB,EAAW9iN,GAC3B,IAAIu1N,EAAe9rG,EAAMlxE,UAAU,YAAYzuB,QAAO,WACpD,IAAImzC,EAAOx/D,KAAKuhD,wBAChB,OAAOh/C,EAAE2+C,SAAWse,EAAKhlC,MAAQj4B,EAAE2+C,SAAWse,EAAKllC,OAAS/3B,EAAE4+C,SAAWqe,EAAKnlC,KAAO93B,EAAE4+C,SAAWqe,EAAKjlC,MACzG,IACIu9L,EAAa7vN,OAAS,GACxB8vN,EAAmB/wG,EAAIvY,EAAQqpH,EAAczS,EAAW9iN,EAE5D,IAGN,GACCykH,EA/Re,CAgSpB,CACA,SAAS6tG,EAAc5gN,EAAGw+M,EAAWe,GACnC,IAAI7J,EAAa11M,EAAE,GACf+jN,EAAcrO,EAAW7yM,MACzBgF,EAAO22M,EAAUtL,eACjB8Q,EAAmBtO,EAAWttG,MAAMxN,aAAe4jH,EAAUvL,WACjE,MAAa,aAATprM,EAA4B22M,EAAUiC,UAAYuD,EAC/CzE,GAAWyE,GAAoBD,EACxC,CACA,SAASD,EAAmB/wG,EAAIvY,EAAQk7G,EAAYtE,EAAWnB,GAC7D,IAAI7nG,EAAQstG,EAAWhtK,OAAO,GAAG,GAAG0/D,MAChC67G,EAAU,CACZxyM,MAAOw+L,EACPv/M,KAAMglN,EAAWhlN,OACjBi4K,YAAavgE,EAAMz4G,MACnBu0N,cAAe97G,EAAMz4G,MACrB+4C,KAAMqqE,EAAGrqE,KACTutB,OAAQ88C,EAAG98C,OACXgsE,OAAQlvB,EAAGggC,gBAAgB2E,QAC3B/2I,OAAQoyG,EAAG4Z,SACXovB,SAAUhpC,EAAGs5B,UACbhI,WAAYtxB,EAAGonB,aAEb/xB,EAAM+7G,SACRF,EAAQv9K,MAAQ0hE,EAAM+7G,QAEpBplG,EAASN,QAAQrW,EAAO,cAC1B67G,EAAQ9vM,MAAQuhM,EAAWjrK,QAAQ,GAAGt2B,OAExC,IAAIiwM,EAAWvlF,EAAOU,eAAexsB,EAAI,qBAAsBkxG,GAC/D,GAAkB,IAAd7S,EAAiB,CACnB,IAAiB,IAAbgT,EAAoB,OACxB5pH,EAAO6pH,cAAgBh7L,YAAW,WAC3B0pF,EAAGonB,aACR87B,EAAYy/C,EAAY3iG,EAAIq+F,EAC9B,GAAGr+F,EAAG4Z,SAASjnB,iBACjB,MAAyB,IAAd0rG,IACL52G,EAAO6pH,eAAej7L,aAAaoxE,EAAO6pH,eAC9CtxG,EAAGwqC,qBAAuB,GAEN,IADF1e,EAAOU,eAAexsB,EAAI,2BAA4BkxG,KAC9B,IAAbG,GAAoBnuD,EAAYy/C,EAAY3iG,EAAIq+F,GAEjF,CACA,SAAS8N,EAAUnwL,EAAGgkF,EAAIyrG,GACxB,IAMIlkL,EAAO++D,EANP46G,EAAWwK,EAAMD,GACjB9I,EAAa3mL,EAAE2Z,OAAO,GAAG,GACzB0/D,EAAQstG,EAAWttG,MACnBk8G,EAAYvlG,EAASN,QAAQrW,EAAO,YACpCo5G,GAAchD,EAAUnG,UAAYtlG,EAAG4Z,SAASnoB,MAAMQ,aAAes/G,EACrE1L,EAAgB4F,EAAUzE,eAE1BrE,EAAWC,YACbr7K,EAAQo7K,EAAWC,WAAW3vM,KAC9BqzF,EAAOq8G,EAAWC,WAAWt8G,OAE7BA,EAAOmlH,EAAUnlH,KACZmlH,EAAU5kM,QAMb0gB,EAAQo7K,EAAW1vM,MALnBs0B,EAAQgqL,EAAY5O,EAAWvhM,MAAQi0F,EAAMnxG,KACzCmxG,EAAMwuC,QACRt8G,EAAQ2gG,EAAIvE,eAAep8F,EAAO8tE,EAAMwuC,UAM9C,IAAI2tE,EAAStpF,EAAIzF,aAAazmG,EAAG,OAAQklL,EAAW,QACpDsQ,EAAOt7K,KAAK,cAAe,SAASpzC,KAAKonL,EAAQ5jF,KAAMA,GAAMrzF,KAAKw7M,EAAagD,EAAalqL,EAAOs+K,GAAiBt+K,GACpH,IAAIilL,EAAUf,EAAUrL,YAAcqL,EAAUnL,UAAgC,EAApBl6G,EAAU8+G,QACtExrC,EAAara,aAAamyD,EAAQhF,EAAS,GACvCiC,EACF+C,EAAO1uN,KAAK42K,EAAa5W,aAAc,CAAE9iD,KAAI/sG,KAAMs0B,IAASzkC,KAAKmpN,EAAYjwL,EAAGgkF,EAAIyrG,GAAW95K,GAAG,QAAQ,SAASkoD,GACjH7gG,KAAKia,KAAKw+M,EAAa53H,EAASgsH,IAAgB/iN,KAAKmpN,EAAYjwL,EAAGgkF,EAAIyrG,GACxE,IAAInI,EAAYX,EAAWttG,MAAM6sC,YAAc,CAAC,EAC5C3qG,EAAS,CAAC,EAEd,OADAA,EAAOrzC,KAAO21F,EACVypH,EAAU3B,SACL31F,EAASlpH,KAAK,eAAgBk9G,EAAI,UAAY3K,EAAMz4G,MAAQ,SAAU26C,EAAOrzC,MAE7E8nH,EAASlpH,KAAK,cAAek9G,EAAIzoE,EAAQ89D,EAAMz4G,MAE1D,IAEAqvN,EAAWuF,EAAQx1L,EAAGgkF,EAAIyrG,EAE9B,CACA,SAASgG,EAAa5lN,EAAK6lN,GACzB,IAAIC,EAAe91N,KAAK6mB,IAAI,EAAGgvM,GAC/B,GAAI7lN,GAAOA,EAAI1P,OAAO9C,QAAUs4N,EAAe,EAAG,OAAO9lN,EAEzD,IAAK,IAAI5Q,EAAI02N,GADb9lN,EAAMA,GAAO,IACmBxS,OAAQ4B,EAAI,EAAGA,IAAK4Q,GAAO,IAC3D,OAAOA,CACT,CACA,SAASugN,EAAiBpwL,EAAGgkF,EAAIkhG,GAC/B,IACIlD,EADArrG,EAAmBqN,EAAG4Z,SAASjnB,iBAE/B0rG,EAAY,EACZqQ,EAAcxmF,EAAIzF,aAAazmG,EAAG,OAAQklL,EAAW,UAAU,SAAS/8L,GACrE67F,EAAG4Z,SAASvoB,YACfltF,EAAEmB,MAAM,SAAU,WAAW4wB,KAAK,iBAAkB,OAEtD/xB,EAAErhB,KAAK+pG,EAAO58F,KAAM,gBACtB,IACI+vG,EAAG4Z,SAASvoB,aAChBq9G,EAAY/8K,GAAG,aAAa,YAC1BqsK,GAAmB,IAAqBrhL,MAAQ6B,WACzBwhF,EAAGwqC,qBAAuB73C,EAC/C0rG,GAAa,GAEbA,EAAY,EACZr+F,EAAGwqC,qBAAuBwzD,EAE9B,IACA0Q,EAAY/8K,GAAG,WAAW,WACxB,IAAIquE,EAAGkqC,WAAYlqC,EAAGsqC,SAAtB,CACA,IAAI7iD,EAASuY,EAAGonB,YAAY85E,IACxB,IAAqBvkL,MAAQ6B,UAAYwhF,EAAGwqC,qBAAuB73C,IACrE0rG,EAAYxiN,KAAK6mB,IAAI27L,EAAY,EAAG,IAEtC0S,EAAmB/wG,EAAIvY,EAAQzrE,EAAGqiL,EAAWrzK,EAAGtsB,MALV,CAMxC,IACF,CACA,SAASutM,EAAW9nM,EAAG6X,EAAGgkF,EAAIyrG,EAAWmG,GACnCnG,EAAUnG,UAAUnhM,EAAE+xB,KAAK,cAAc,GAC7CwjI,EAAapgB,gBAAgBn1I,EAAG67F,GAAI,YAItC,SAA+BhkF,EAAGgkF,EAAIyrG,EAAWmG,GAC/C,IAAIjP,EAAa3mL,EAAE2Z,OAAO,GAAG,GAC7B,GAAK81K,EAAUnG,WAAY3C,GAAeA,EAAWttG,MAAM7N,WAA3D,CAIA,IAAI+0D,EAAevgI,EAAEsX,OAAO,wBACxBu+K,EAAct1D,EAAa5+J,OAC3BujN,EAAWwK,EAAMD,GAChBA,IACHA,EAAYzrG,EAAGonB,YAAY85E,IAE7B,IAUInxM,EAAQD,EAVRw8M,EAAKb,EAAU1/C,YASfzjK,GA3eW,IAoeXspN,EACKnG,EAAUxlG,MAAM3f,KACdq8G,EAAWC,WACbD,EAAWC,WAAWt8G,KAEtBmlH,EAAUnlH,MAEGrlG,KAAO83J,EAE7B,GAAI84D,EAAa,CACf,IAAIC,EAAY5nC,EAAQ1C,KAAKqqC,GAC7B9hN,EAAS+hN,EAAU/hN,OACnBD,EAAQgiN,EAAUhiN,MAhfL,IAifT8hN,EACF1nC,EAAQlC,aAAazrB,EAAc+vD,EAAIA,EAAc,IAATv8M,GAE5Cm6K,EAAQlC,aAAazrB,EAAc,EAAY,IAATxsJ,EAE1C,KAAO,CACL,IAAI0pH,EAAM,IAAMynF,GAvfH,IAufe0Q,EAAwB,QAAU,IAAM,OAChEJ,EAASx1L,EAAEsX,OAAOmmF,GAClBs4F,EAAYr4C,EAAanX,UAAUivD,GACnCxC,EAAWwC,EAAO7zN,OAGtB,GAFAoS,EAASzH,EAAaypN,EACtBjiN,EAAQk/M,EAAW9kC,EAAQ1C,KAAKwnC,GAAUl/M,MAAQ,EA5frC,IA6fT8hN,EAC2B,SAAzBnG,EAAUxlG,MAAM+lC,OAClBl8I,GAA6B,EAApBs2F,EAAU8+G,SAErBxrC,EAAara,aACXmyD,EACAlF,EAAKlmH,EAAU6+G,SACfqH,EAAKhkN,OAEF,CACL,IAAIlH,EAAwB,EAApBglG,EAAU8+G,QAAcuG,EAAUrL,YAAcqL,EAAUnL,UAC9DqC,EAAWC,aACbxhN,EAAIglG,EAAU8+G,QACdp1M,GAAS27M,EAAUrL,YAAcqL,EAAUnL,WAE7C5mC,EAAara,aACXmyD,EACApwN,GACCkH,IAAeypN,EAAY,GAAK,EAAI,IAEzC,CACF,CAlhBe,IAmhBXH,GACFnG,EAAUM,YAAcj8M,EACxB27M,EAAUO,aAAej8M,IAEzB4yM,EAAWr6M,WAAaA,EACxBq6M,EAAW5yM,OAASlU,KAAK6mB,IAAI3S,EAAQ,IAAM,EAC3C4yM,EAAW7yM,MAAQA,EA9DrB,MAFEksB,EAAEmU,QAkEN,CAxEI6hL,CAAsBh2L,EAAGgkF,EAAIyrG,EAAWmG,EAC1C,GACF,CAuSA,SAASvE,EAAW5B,GAClB,OAAOvjF,EAAI1T,cAAci3F,GAAa,QAAUvjF,EAAI3T,eAAek3F,GAAa,SAAW,MAC7F,CACA,SAASiB,EAAWjB,GAClB,OAAOvjF,EAAIvT,eAAe82F,GAAa,SAAWvjF,EAAIxT,eAAe+2F,GAAa,SAAW,KAC/F,CACA,SAASC,EAAMD,GACb,OAAOA,EAAUttE,KAAO,QAC1B,CAlwBArjH,EAAOluB,QAAU,SAAcozG,EAAIvkB,GACjC,GAAIA,EACF20G,EAAQpwF,EAAIvkB,OACP,CACL,IAAI61C,EAAatxB,EAAGonB,YAChB6qF,EAAa3gF,EAAW4wE,SACX5wE,EAAW8T,WAAWtxG,UAAU,qBACtCsC,MAAK,WACd,IAAI8oE,EAAKl0E,EAAGsI,OAAOt6C,MAEfygI,EADUva,EAAGhpE,KAAK,SACJ5yC,MAAM,KAAK,GACzBm2H,EAAIh3H,MAAM8oN,KAAgD,IAA7B0G,EAAWv1N,QAAQ+8H,IAClDva,EAAG/uE,QAEP,IACA,IAAK,IAAIl1C,EAAI,EAAGA,EAAIg3N,EAAW54N,OAAQ4B,IAAK,CAC1C,IAAIimN,EAAW+Q,EAAWh3N,GAE1Bm1M,EAAQpwF,EADQA,EAAGonB,YAAY85E,GAEjC,CACF,CACF,CA8uBF,IAIEgR,GAAgBhrL,EAAW,CAC7B,6BAA6Bt6B,GAE3B,IAAIo+B,EAAKD,IACL+rD,EAAY7G,IACZuL,EAAYT,IACZmtC,EAAMtN,KACNjT,EAAaugB,EAAIvgB,WACjB2e,EAAe4B,EAAI5B,aACnBC,EAAY2B,EAAI3B,UAChBuF,EAASD,KACT6tC,EAAevgB,KACfg5D,EAAiBxS,KACjBz1B,EAAU1Q,KACV3sE,EAAStC,IACTizG,EAAcH,KACd+U,EAAO92B,KACP5lD,EAAkBlB,KAAqBkB,gBACvC1pB,EAAWxE,KACXisD,EAAUe,KACVpuE,EAAYT,IACZ0sH,EAAuBvR,KACvBwR,EAAajH,KACbzlH,EAASQ,EAAUR,OACnB2sH,EAAa12N,KAAKsgD,GAAKypD,EAAS,IAChC4sH,EAAU,EAAI32N,KAAKunD,IAAImvK,GACvBE,EAAU52N,KAAKsnD,IAAIovK,GACnBG,EAAU72N,KAAKunD,IAAImvK,GACnB1sH,EAAiBO,EAAUP,eAC3BC,EAAeM,EAAUN,aACzB6sH,EAAsB,CACxBC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,aAAa,GAEXC,EAAyB,CAC3BC,SAAS,EACTC,WAAW,EACXC,OAAO,GAET,SAASC,EAAa/uM,EAAG4H,GACvB,OAAO5H,EAAE44C,SAAWhxC,EAAEgxC,QACxB,CAumBA,SAASo2J,EAAapmN,GACpB,MAAO,CAACA,EAAEooG,MAAMz4G,MAAOqQ,EAAErQ,MAAOqQ,EAAEoxC,GAAIpxC,EAAEsxC,GAAItxC,EAAE/I,KAAM+I,EAAEipC,KAAMjpC,EAAEo3G,GAAKp3G,EAAEo3G,GAAG85B,IAAM,GAAIlxI,EAAEs3G,GAAKt3G,EAAEs3G,GAAG45B,IAAM,IAAIt+I,KAAK,IAC/G,CAxmBA+M,EAAQ4G,MAAQ,SAAewsG,EAAIk9F,EAAKxlD,EAAS47D,GAC/CtzG,EAAKkoB,EAAInoB,YAAYC,GACrB,IAAI7iC,EAAc+/H,EAAIh+L,OACtBgpH,EAAInQ,SACF/X,EAAGonB,YAAYi3C,KAAOj4E,EAAUF,QAChCE,EAAUH,cACV,YAkHJ,SAAgB+Z,EAAIk9F,EAAKxlD,EAAS47D,EAAcn2I,GACzCu6E,IAASA,EAAU,MACD,kBAAZA,IACTA,EAAUA,EAAQp0J,MAAMoyI,GAAiB,IAE3C,IACI69E,EASAC,EACAC,EAXA5oG,EAAWhoH,MAAMiI,QAAQ4sJ,GAAWA,EAAU,CAACA,GAE/CpmB,EAAatxB,EAAGonB,YAChB1gC,EAAgB4qC,EAAW5qC,cAC3Bg1C,EAAQpK,EAAWoN,QAAU,GAC7B+G,EAAW/J,EAAMgc,GACjBg8D,EAAepiF,EAAWuR,KAAK,aAC/Bp8C,EAAYy2G,EAAIz2G,WAAa6qC,EAAW7qC,UACxCktH,EAAgD,OAA/BltH,GAAa,IAAInjF,OAAO,GACzCswM,EAAgD,OAA/BntH,GAAa,IAAInjF,OAAO,GAG7C,GAAIowM,IAAiBC,GAAiBC,IAAoC,SAAlBltH,EAEtD,IADA,IAAImtH,EAAiBhpG,EAASxxH,OACrB0yB,EAAI,EAAGA,EAAI8nM,EAAgB9nM,IAElC,GAAI2vH,EADJ63E,EAAO1oG,EAAS9+F,IACC,CACfynM,EAAapB,EAAKt7E,UAAU92B,EAAIuzG,EAAM,KACtCE,EAAarB,EAAKt7E,UAAU92B,EAAIuzG,EAAM,KACtC,IAAIO,GAAgBH,EAAgBH,EAAaC,GAAY9tE,cAC7D,GAAImuE,GAAgBA,EAAaz6N,OAC/B,IAAK,IAAI8qC,EAAI,EAAGA,EAAI2vL,EAAaz6N,OAAQ8qC,IACvCwjF,EAAWkD,EAAUipG,EAAa3vL,GAGxC,CAGJ,GAAIshH,GAA8B,WAAlB/+C,EAA4B,CAC1C,IAAIqtH,EAAoBtuE,EAASs1D,SAASz4M,KAAI,SAASyzE,GACrD,OAAOA,EAAG37C,EACZ,IACAywF,EAAWA,EAASjnH,OAAOmwN,EAC7B,CAKA,IAJA,IAAIhoN,EAAM8+G,EAASxxH,OACf26N,EAAU,IAAInxN,MAAMkJ,GACpBkoN,EAAU,IAAIpxN,MAAMkJ,GACpBmoN,GAAkB,EACbj5N,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAEvB,GAAIygJ,EADJ63E,EAAO1oG,EAAS5vH,IAEdi5N,GAAkB,EAClBF,EAAQ/4N,GAAKygJ,EAAM63E,GAAM5kF,MACzBslF,EAAQh5N,GAAKygJ,EAAM63E,GAAM3kF,UACpB,KAAI0C,EAAWiiF,KAASjiF,EAAWiiF,GAAMY,SAM9C,YADAjsF,EAAI5yB,KAAK,yBAA2Bi+G,GAJpC,IAAIY,GAAW7iF,EAAWiiF,GAAMY,SAChCH,EAAQ/4N,GAAKk5N,GAASxlF,MACtBslF,EAAQh5N,GAAKk5N,GAASvlF,KAIxB,CAGF,GADInoC,IAAcytH,IAAiBztH,EAAY,YAC6B,IAAxE,CAAC,IAAK,IAAK,UAAW,YAAa,aAAa/pG,QAAQ+pG,KAAsBuZ,EAAGw4B,UAAYx4B,EAAGv6G,cAAc,aAAeu6G,EAAG4jC,UAClI,OAAO45D,EAAYK,WAAW79F,EAAIk9F,GAEpC,IAAIv2G,GAAgB2qC,EAAW3qC,eACR,IAAnBA,KAAsBA,GAAgB32D,KAC1C,IAAI42D,GAAgB0qC,EAAW1qC,eACR,IAAnBA,KAAsBA,GAAgB52D,KAC1C,IAEIokL,GAAWC,GACXC,GAASC,GAAU76F,GAAIrkB,GAAOgjC,GAAWm8E,GAAUC,GAAOC,GAAMC,GAAMr/C,GAAWs/C,GAHjFC,GAAY,GACZC,GAAa,GAGbC,GAAc,CAChBC,WAAY,KACZC,WAAY,MAEVC,IAAwB,EAC5B,GAAIryN,MAAMiI,QAAQoyM,GAEhB,IADAz2G,EAAY,QACP6tH,GAAU,EAAGA,GAAUpX,EAAI7jN,OAAQi7N,MACtC56F,GAAK1Z,EAAGw4B,SAAS0kE,EAAIoX,IAAS1+C,aAAe,MAE3CvgE,GAAQqkB,GAAG,GAAGrkB,MACgB,SAA1BqkB,GAAG,GAAGrkB,MAAMlN,YACd2sH,GAAWl7N,KAAK8/H,IACU,MAAtBrkB,GAAMk2D,cACR2pD,IAAwB,SAK3B,CACL,IAiBIC,GAAKC,GAjBLC,GAAmBr1G,EAAGw4B,SAASv7I,QAMnC,IALAo4N,GAAiB/qM,MAAK,SAASjG,EAAG4H,GAGhC,OAFc5H,EAAE,GAAGgxF,MAAM0jC,QAAU,IACrB9sH,EAAE,GAAGopF,MAAM0jC,QAAU,EAErC,IACKw7E,GAAW,EAAGA,GAAWc,GAAiBh8N,OAAQk7N,KACrD76F,GAAK27F,GAAiBd,IAEE,UADxBl/G,GAAQqkB,GAAG,GAAGrkB,OACJlN,WAAwBsrE,EAAQkB,kBAAkBt/D,GAAOwV,KACjEiqG,GAAWl7N,KAAK8/H,IACU,MAAtBrkB,GAAMk2D,cACR2pD,IAAwB,IAM9B,GAF0B/3I,EAOnB,CACL,IAA6D,IAAzD2uD,EAAOU,eAAexsB,EAAI,qBAAsBk9F,GAClD,OAEF,IAAIoY,GAAMn4I,EAAY5iC,wBACtB46K,GAAMjY,EAAIhjK,QAAUo7K,GAAI9hM,KACxB4hM,GAAMlY,EAAI/iK,QAAUm7K,GAAIjiM,IACxBi+G,EAAW4wB,sBAAsBliD,GACjC,IAAImiD,GAAoBj6B,EAAI1pB,iBAAiB8yB,EAAW8wB,cAAhCl6B,CAA+CitF,GAAKC,IAG5E,GAFAD,GAAMhzD,GAAkB,GACxBizD,GAAMjzD,GAAkB,GACpBgzD,GAAM,GAAKA,GAAMnB,EAAQ,GAAG75F,SAAWi7F,GAAM,GAAKA,GAAMnB,EAAQ,GAAG95F,QACrE,OAAOqjF,EAAYK,WAAW79F,EAAIk9F,EAEtC,MAlBoBiY,GAAd,QAASjY,EAAWA,EAAIiY,IACjBnB,EAAQ,GAAG75F,QAAU,EACdi7F,GAAd,QAASlY,EAAWA,EAAIkY,IACjBnB,EAAQ,GAAG95F,QAAU,EAsBlC,GANA+iF,EAAIqY,SAAWJ,GAAMnB,EAAQ,GAAGhhC,QAChCkqB,EAAIsY,SAAWJ,GAAMnB,EAAQ,GAAGjhC,QACbohC,GAAf,SAAUlX,EAAiBzpC,EAAQqB,KAAKjqD,EAAUqyF,EAAIwX,MACzCjhD,EAAQsB,IAAIi/C,EAASmB,IACnBd,GAAf,SAAUnX,EAAiBzpC,EAAQqB,KAAKjqD,EAAUqyF,EAAIyX,MACzClhD,EAAQsB,IAAIk/C,EAASmB,KACjCt+H,EAAUs9H,GAAU,MAAQt9H,EAAUu9H,GAAU,IAEnD,OADAnsF,EAAI5yB,KAAK,kBAAmB4nG,EAAKl9F,GAC1Bw9F,EAAYK,WAAW79F,EAAIk9F,EAEtC,CACA,IAAIjgJ,GAAWjtB,IACf,SAASylL,GAAgBC,EAAYC,GACnC,IAAKpB,GAAW,EAAGA,GAAWO,GAAWz7N,OAAQk7N,KAE/C,IADA76F,GAAKo7F,GAAWP,MACJ76F,GAAG,IAAOA,GAAG,GAAGrkB,QAEN,KADtBA,GAAQqkB,GAAG,GAAGrkB,OACJ9N,SAAsC,IAAlB8N,GAAM8kB,UAC6B,IAA7D,CAAC,SAAU,iBAAiBz9H,QAAQ24G,GAAM1E,QAAQzsG,MAAtD,CAwDA,GAvDAuwN,GAAQhuH,EACJgtE,EAAQsD,eAAe09C,MACzBA,GAAQA,GAAMnxM,OAAO,IAEJ,UAAf+xF,GAAMv3G,KAERu6I,GAAYxtB,EADZ2pG,GAAW,IAGXn8E,GAAYo7B,EAAQgB,WAAWp/D,IAC/Bm/G,GAAW3pG,EAASnuH,QAAQ27I,KAE9Bi9B,GAAY,CAEV57C,MACArkB,SACAgP,GAAI2vG,EAAQQ,IACZjwG,GAAI0vG,EAAQO,IAKZoB,iBAAkBjvH,GAClBkvH,iBAAkBjvH,GAElBhqG,OAAO,EAEPqgE,SAAUphE,KAAK8mB,IAAIs6C,GAAU0pC,IAK7BmvH,cAAe9lL,IAGf+lL,YAAQ,EACRC,YAAQ,EAERpnN,MAAOi+F,EAAO1C,YAEdjmG,KAAMmxG,GAAMnxG,KACZm6C,QAAI,EACJC,QAAI,EACJC,QAAI,EACJC,QAAI,EACJy3K,eAAW,EACXC,eAAW,EACXhgD,eAAW,EACXjjK,UAAM,GAEJq+H,EAAW+G,MACbi9B,GAAU5d,QAAUpmB,EAAW+G,IAAW87E,UAExC7iF,EAAW6kF,cAAgB7kF,EAAW6kF,aAAa9gH,GAAMvN,OAC3DwtE,GAAU3+B,MAAQrF,EAAW6kF,aAAa9gH,GAAMvN,MAEpC,UAAV2sH,GAAmB,CACrB,IAAIphL,EAAY6pK,EAAIqX,IAChB,gBAAiBlhL,GACnBiiI,GAAU14K,MAAQy2C,EAAUsiI,YAC5B8+C,GAAQ,YAERA,GAAQ,GACJ,SAAUphL,IACZqhL,GAAOrhL,EAAUqhL,KACjBD,GAAQ,KAEN,SAAUphL,IACZshL,GAAOthL,EAAUshL,KACjBF,GAAQA,GAAQ,UAAY,KAGlC,WAA0B,IAAfiB,QAAwC,IAAfC,GAClCjB,GAAOgB,EACPf,GAAOgB,IAEPjB,GAAON,GAAUI,IACjBG,GAAON,GAAUG,KAGnB,GADAI,GAA0BC,GAAUx7N,OACd,IAAlBstG,GACF,GAAI0O,GAAM1E,SAAW0E,GAAM1E,QAAQylH,YAAa,CAC9C,IAAIC,EAAYhhH,GAAM1E,QAAQylH,YAAY9gD,GAAWo/C,GAAMC,GAAMF,GAAO,CACtE6B,aAAa,EACbC,WAAYjlF,EAAW8rE,YAEvB12G,gBACAsZ,OAEF,GAAIq2G,EAEF,IADA,IAAIG,EACKC,EAAc,EAAGA,EAAcJ,EAAUh9N,OAAQo9N,IACxDD,EAAWH,EAAUI,GACjB3/H,EAAU0/H,EAASn4K,KAAOy4C,EAAU0/H,EAASj4K,KAC/Cs2K,GAAUj7N,KAAK88N,EAAWF,EAAU/vH,GAI5C,MACEyhC,EAAI1qF,IAAI,oCAAqC63D,IAOjD,GAJkB,YAAd5O,GAA2BouH,GAAUx7N,OAASu7N,KAChDC,GAAUn8J,OAAO,EAAGk8J,IACpB33J,GAAW43J,GAAU,GAAG53J,UAEtBy2J,GAAkC,IAAlB9sH,IACO,IAArBiuH,GAAUx7N,OAAc,CAC1Bi8K,GAAUr4G,SAAW2pC,GACrB0uE,GAAU14K,OAAQ,EAClB,IAAI+5N,EAAgBthH,GAAM1E,QAAQylH,YAAY9gD,GAAWo/C,GAAMC,GAAM,UAAW,CAC9E4B,WAAYjlF,EAAW8rE,cAOzB,GALIuZ,IACFA,EAAgBA,EAActxM,QAAO,SAASq0B,GAC5C,OAAOA,EAAMo8K,eAAiBlvH,EAChC,KAEE+vH,GAAiBA,EAAct9N,OAAQ,CACzC,IAAIu9N,EACAC,EAAiBF,EAActxM,QAAO,SAASq0B,GACjD,OAAOA,EAAM2qE,GAAGklD,YAAqC,iBAAvB7vH,EAAM2qE,GAAGslD,SACzC,IACA,GAAIktD,EAAex9N,OAAQ,CACzB,IAAIy9N,EAAaD,EAAe,GAC5B//H,EAAUggI,EAAWz4K,KAAOy4C,EAAUggI,EAAWv4K,MACnDq4K,EAAWG,GAAeD,KACrB/B,GAAYE,YAAcF,GAAYE,WAAWa,cAAgBc,EAASd,iBAC7Ef,GAAYE,WAAa2B,GAG/B,CACA,IAAII,EAAiBL,EAActxM,QAAO,SAASq0B,GACjD,OAAOA,EAAM6qE,GAAGglD,YAAqC,iBAAvB7vH,EAAM6qE,GAAGolD,SACzC,IACA,GAAIqtD,EAAe39N,OAAQ,CACzB,IAAI49N,EAAaD,EAAe,GAC5BlgI,EAAUmgI,EAAW54K,KAAOy4C,EAAUmgI,EAAW14K,MACnDq4K,EAAWG,GAAeE,KACrBlC,GAAYC,YAAcD,GAAYC,WAAWc,cAAgBc,EAASd,iBAC7Ef,GAAYC,WAAa4B,GAG/B,CACF,CACF,CAjJ0E,CAoJhF,CAEA,SAASM,GAAmBC,EAAYC,EAAgBC,GAItD,IAHA,IAEIC,EAFAC,EAAc,KACdC,EAAcxnL,IAET8G,EAAK,EAAGA,EAAKqgL,EAAW99N,OAAQy9C,IACnC08K,GAAcA,EAAWr1E,MAAQg5E,EAAWrgL,GAAIutE,GAAG85B,KACnDs1E,GAAcA,EAAWt1E,MAAQg5E,EAAWrgL,GAAIytE,GAAG45B,MACvDm5E,EAAoBH,EAAWrgL,GAAIg/K,cAC/BuB,GAA0B,IAAPvgL,IAAUwgL,GAAoB,KACjDA,GAAqBE,GAAeF,GAAqBF,IAC3DG,EAAcJ,EAAWrgL,GACzB0gL,EAAcF,IAGlB,OAAOC,CACT,CACA,SAASR,GAAer9K,GACtB,OAAKA,EACE,CACL2qE,GAAI3qE,EAAM2qE,GACVE,GAAI7qE,EAAM6qE,GACVnjH,OAAoB,IAAjBs4C,EAAMq8K,OAAoBr8K,EAAMq8K,QAAUr8K,EAAM2E,GAAK3E,EAAM4E,IAAM,EACpEj9C,OAAoB,IAAjBq4C,EAAMs8K,OAAoBt8K,EAAMs8K,QAAUt8K,EAAM6E,GAAK7E,EAAM8E,IAAM,EACpEye,SAAUvjB,EAAMujB,SAChB64J,cAAep8K,EAAMo8K,cACrBlgD,YAAal8H,EAAM27D,MAAMz4G,MACzBgS,MAAO8qC,EAAM9qC,MACb+mK,YAAaj8H,EAAM98C,OAVF,IAYrB,CA9BA64N,KA+BA,IAAIgC,GAAgB,CAClBnmF,aACA73I,UAAW63I,EAAW8rE,YACtB1+L,MAAOw+L,GAELwa,GAAiB13G,EAAG23G,aACpBC,GAAiB,CACnB3C,WAAYF,GAAYE,WACxBD,WAAYD,GAAYC,YAE1Bh1G,EAAG23G,aAAeC,GAClB,IAAIC,GAAgB,WAClB,IAAIC,EAAqBjD,GAAUxvM,QAAO,SAAShB,GACjD,OAAOmvM,GAAcA,EAAWr1E,MAAQ95H,EAAEggG,GAAG85B,KAAQs1E,GAAcA,EAAWt1E,MAAQ95H,EAAEkgG,GAAG45B,GAC7F,IACI45E,EAAsBlD,GAAUxvM,QAAO,SAAShB,GAClD,QAASmvM,GAAcA,EAAWr1E,MAAQ95H,EAAEggG,GAAG85B,KAAQs1E,GAAcA,EAAWt1E,MAAQ95H,EAAEkgG,GAAG45B,IAC/F,IACA25E,EAAmBxtM,KAAK8oM,GACxB2E,EAAoBztM,KAAK8oM,GAEzByB,GAwmCJ,SAA0BA,EAAWpuH,GAKnC,IAJA,IAAIyvC,EAAWzvC,EAAUnjF,OAAO,GAC5BonB,EAAQ,GACRm1C,EAAS,GACTl1C,EAAO,GACF1vC,EAAI,EAAGA,EAAI45N,EAAUx7N,OAAQ4B,IAAK,CACzC,IAAIgS,EAAI4nN,EAAU55N,GACd+wH,EAASN,QAAQz+G,EAAEooG,MAAO,aAAe2W,EAASN,QAAQz+G,EAAEooG,MAAO,cACrE1qE,EAAK/wC,KAAKqT,GACDA,EAAEooG,MAAM6gC,EAAW,UAC5Br2D,EAAOjmF,KAAKqT,GAEZy9B,EAAM9wC,KAAKqT,EAEf,CACA,OAAOy9B,EAAM9mC,OAAOi8E,GAAQj8E,OAAO+mC,EACrC,CAxnCgBqtL,CADZnD,GAAYiD,EAAmBl0N,OAAOm0N,GACEtxH,EAC1C,EACAoxH,KACA,IAAI3hF,GAAWzvC,EAAUnjF,OAAO,GAC5B20M,IAA+B,MAAb/hF,IAAiC,MAAbA,KAAqB2+E,GAAU,IAAM7B,EAAuB6B,GAAU,GAAGx/G,MAAMv3G,MACzH,GAAI41N,GAAkC,IAAlB9sH,IACO,IAArBiuH,GAAUx7N,OAAc,CAC1B,IAGI6+N,GAAYhB,GAHIrC,GAAUxvM,QAAO,SAASq0B,GAC5C,OAAOA,EAAM6qE,GAAGglD,UAClB,IACkD3iE,GAAeqxH,IACjElD,GAAYC,WAAa+B,GAAemB,IACxC,IAGIC,GAAYjB,GAHIrC,GAAUxvM,QAAO,SAASq0B,GAC5C,OAAOA,EAAM2qE,GAAGklD,UAClB,IACkD3iE,GAAeqxH,IACjElD,GAAYE,WAAa8B,GAAeoB,GAC1C,CAEF,GAAyB,IAArBtD,GAAUx7N,OAAc,CAC1B,IAAIgS,GAASmyM,EAAYK,WAAW79F,EAAIk9F,GAMxC,OALIwW,GAA4C,OAA3BqB,GAAYC,YAAkD,OAA3BD,GAAYE,YAC9DmD,EAAcV,KAChBW,EAAiBr4G,EAAI+0G,GAAa0C,IAG/BpsN,EACT,CAMA,GALIqoN,GACE0E,EAAcV,KAChBW,EAAiBr4G,EAAI+0G,GAAa0C,IAGlChkD,EAAQuD,UAAUy9C,KAAkC,IAAxBI,GAAU,GAAGx7N,QAA4C,UAA5Bw7N,GAAU,GAAGx/G,MAAMv3G,KAAkB,CAChG,IAAIw6N,GAAezD,GAAU,GAQzB0D,IANF1D,GADElC,EAAoB2F,GAAajjH,MAAMv3G,MAC7B+2N,GAAUxvM,QAAO,SAASpY,GACpC,OAAOA,EAAEooG,MAAMz4G,QAAU07N,GAAajjH,MAAMz4G,KAC9C,IAEY,CAAC07N,KAESj/N,OAGxBo8N,GAFW+C,EAAS,IAAKF,GAAchnF,GAC5BknF,EAAS,IAAKF,GAAchnF,IAEvC,IAiBInwI,GAjBAs3N,GAAc,GACd1+F,GAAO,CAAC,EACR3/F,GAAK,EACL5/B,GAAS,SAASk+N,GACpB,IAAIx+N,EAAMy4N,EAAoB+F,EAAMrjH,MAAMv3G,MAAQu1N,EAAaqF,GAASA,EAAMrjH,MAAMz4G,MACpF,GAAKm9H,GAAK7/H,GAIH,CACL,IAAIy+N,EAAQ5+F,GAAK7/H,GAAO,EACpB0+N,EAAQH,GAAYE,GACpBA,EAAQ,GAAK98N,KAAKD,IAAI88N,EAAMz7J,UAAYphE,KAAKD,IAAIg9N,EAAM37J,YACzDw7J,GAAYE,GAASD,EAEzB,MATEt+L,KACA2/F,GAAK7/H,GAAOkgC,GACZq+L,GAAY7+N,KAAK8+N,EAQrB,EAEA,IAAKv3N,GAAI,EAAGA,GAAIo3N,GAASp3N,KACvB3G,GAAOq6N,GAAU1zN,KAEnB,IAAKA,GAAI0zN,GAAUx7N,OAAS,EAAG8H,GAAIo3N,GAAU,EAAGp3N,KAC9C3G,GAAOq6N,GAAU1zN,KAEnB0zN,GAAY4D,GACZZ,IACF,CACA,IAAI1a,GAAen9F,EAAGoqC,WAClByuE,GAAe,GACfC,GAAOC,EAAa/4G,GACpBg5G,GAAQC,EAAcj5G,GAC1B,IAAKs0G,GAAU,EAAGA,GAAUO,GAAUx7N,OAAQi7N,KAAW,CACvD,IAAItkM,GAAK6kM,GAAUP,IACfv+C,GAAYtC,EAAQiC,cAAc1lJ,GAAIA,GAAGqlF,MAAOrlF,GAAG0pG,IACvD,IAAyB,IAArB1pG,GAAGozF,cAAyB,CAC9B,IAAI81G,IAAK,EACLlpM,GAAG0pG,GAAG1pG,GAAGpzB,QAAUozB,GAAG0pG,GAAG1pG,GAAGpzB,OAAOs8N,KACrCA,GAAKlpM,GAAG0pG,GAAG1pG,GAAGpzB,OAAOs8N,IAEvBlpM,GAAGozF,cAAgB81G,IAAMlpM,GAAGqlF,MAAM+N,gBAAiB,CACrD,CACA,GAAIpzF,GAAGq0F,IAAMr0F,GAAGu0F,GAAI,CAClB,IAAI40G,GAAMnpM,GAAGquB,GAAKruB,GAAGq0F,GAAG2uE,QACpBomC,GAAMppM,GAAGsuB,GAAKtuB,GAAGq0F,GAAG2uE,QACpBqmC,GAAMrpM,GAAGuuB,GAAKvuB,GAAGu0F,GAAGyuE,QACpBsmC,GAAMtpM,GAAGwuB,GAAKxuB,GAAGu0F,GAAGyuE,QACpB30I,GAAKxiD,KAAK8mB,IAAIw2M,GAAKC,IACnB96K,GAAKziD,KAAK6mB,IAAIy2M,GAAKC,IACnB76K,GAAK1iD,KAAK8mB,IAAI02M,GAAKC,IACnB96K,GAAK3iD,KAAK6mB,IAAI22M,GAAKC,IACvBvjD,GAAUv9G,KAAO,CACfna,GAAIA,GAAK26K,GACT16K,GAAIA,GAAK06K,GACTz6K,GAAIA,GAAKu6K,GACTt6K,GAAIA,GAAKs6K,GAEb,CACA9oM,GAAG+lJ,UAAY,CAACA,IAChB8iD,GAAaj/N,KAAKm8K,GACpB,CACA/1D,EAAGoqC,WAAayuE,GAChB,IAAIU,GAA6B,MAAd9yH,IAAsBquH,GAAWz7N,OAAS,GAAKw7N,GAAUx7N,OAAS,IAAoB,YAAdotG,GAA2ByuH,IAAyBL,GAAUx7N,OAAS,EAC9J22K,GAAUnjE,EAAOtqG,QACnB+uI,EAAWxqB,cAAgBja,EAAOx5F,WAClCi+H,EAAWzqB,eAET2yG,GAAYC,EAAgB5E,GAAW,CACzC70G,KACAvZ,YACA8yH,gBACAvpD,WACAv2K,UAAW63I,EAAW8rE,YACtBsc,eAAgBpoF,EAAW+K,OAAO1+I,OAClCg8N,gBAAiBroF,EAAWzqC,WAC5BF,cAAe2qC,EAAW3qC,gBAExBizH,GAAcJ,GAAUI,YAK5B,GAJKnmD,EAAQsD,eAAetwE,KAmhB9B,SAA4BmzH,EAAaL,EAAcjoF,EAAYuoF,GACjE,IAqFIC,EAAiBC,EAAYC,EAAe/+N,EAAGiG,EAAG+4N,EAAKC,EArFvDC,EAAQZ,EAAe,KAAO,KAC9Ba,EAAab,EAAe,KAAO,KACnCc,EAAW,EACX1yB,EAAS,EACT2yB,EAAUV,EAAY34N,OACtBs5N,EAAc,IAAI13N,MAAMy3N,GACxBn5N,EAAI,EACJq5N,EAAgBX,EAAuBY,KACvCC,EAAgBb,EAAuBc,KACvCC,EAAgBf,EAAuBgB,KACvCC,EAAgBjB,EAAuBkB,KACvCC,EAAK,SAAS55N,GAChB,OAAOA,EAAIkwI,EAAW2pF,UACxB,EACIC,EAAK,SAAS75N,GAChB,OAAOA,EAAIiwI,EAAW6pF,UACxB,EAsEA,SAASC,EAAeC,GACtB,IAAIC,EAAQD,EAAK,GACbE,EAAQF,EAAKA,EAAKhiO,OAAS,GAG/B,GAFA0gO,EAAauB,EAAMjrC,KAAOirC,EAAMtlI,IAAMslI,EAAMvkC,GAAKukC,EAAMr6N,KACvD+4N,EAAgBuB,EAAMvlI,IAAMulI,EAAMxkC,GAAKwkC,EAAMt6N,KAAOq6N,EAAMhrC,KACtDypC,EAAa,IAAM,CACrB,IAAK74N,EAAIm6N,EAAKhiO,OAAS,EAAG6H,GAAK,EAAGA,IAAKm6N,EAAKn6N,GAAG61L,IAAMgjC,EACrDD,GAAkB,CACpB,CACA,KAAIE,EAAgB,KAApB,CACA,GAAID,GAAc,IAAM,CACtB,IAAK74N,EAAIm6N,EAAKhiO,OAAS,EAAG6H,GAAK,EAAGA,IAAKm6N,EAAKn6N,GAAG61L,IAAMijC,EACrDF,GAAkB,CACpB,CACA,GAAKA,EAAL,CACA,IAAI0B,EAAc,EAClB,IAAKvgO,EAAI,EAAGA,EAAIogO,EAAKhiO,OAAQ4B,KAC3Bg/N,EAAMoB,EAAKpgO,IACH+6F,IAAMikI,EAAIljC,GAAKkjC,EAAIh5N,KAAOq6N,EAAMhrC,MAAMkrC,IAEhD,IAAKvgO,EAAIogO,EAAKhiO,OAAS,EAAG4B,GAAK,KACzBugO,GAAe,GADavgO,KAEhCg/N,EAAMoB,EAAKpgO,IACH+6F,IAAMslI,EAAMhrC,KAAO,IACzB2pC,EAAIwB,KAAM,EACVD,KAGJ,IAAKvgO,EAAI,EAAGA,EAAIogO,EAAKhiO,UACfmiO,GAAe,GADQvgO,IAG3B,IADAg/N,EAAMoB,EAAKpgO,IACH+6F,IAAMslI,EAAMjrC,KAAO,EAIzB,IAHA4pC,EAAIwB,KAAM,EACVD,IACAxB,EAA2B,EAAXC,EAAIh5N,KACfC,EAAIm6N,EAAKhiO,OAAS,EAAG6H,GAAK,EAAGA,IAAKm6N,EAAKn6N,GAAG61L,IAAMijC,EAGzD,IAAK/+N,EAAIogO,EAAKhiO,OAAS,EAAG4B,GAAK,KACzBugO,GAAe,GADavgO,KAEhCg/N,EAAMoB,EAAKpgO,IACH+6F,IAAMikI,EAAIljC,GAAKkjC,EAAIh5N,KAAOq6N,EAAMhrC,OACtC2pC,EAAIwB,KAAM,EACVD,IA7BwB,CALI,CAqClC,CACA,IApHA5B,EAAYxjL,MAAK,SAASnpC,GACxB,IAAI2oD,EAAK3oD,EAAEktN,GACPuB,EAAUzuN,EAAEmtN,GACZuB,EAA6B,MAArB/lK,EAAGuoF,IAAI76H,OAAO,GACtB2uK,EAAMr8H,EAAG9lB,MACH,IAAN3uC,GAAW8wL,GAAOA,EAAI,GAAKA,EAAI,KAAO0pC,IACxCh0B,GAAU,GAEZ,IAAItX,EAAO,EACPC,EAAOqrC,EAAQrqF,EAAWxhI,MAAQwhI,EAAWvhI,OACjD,GAA6B,MAAzBuhI,EAAW7qC,WAA8C,MAAzB6qC,EAAW7qC,UAAmB,CAChE,IAGIm1H,EACAC,EAJAh0J,EAAUi0J,EAAqB7uN,EAAGssN,GAClCvzE,EAAS/4I,EAAE+4I,OACX+1E,EAAsB,QAAX/1E,GAAoB,EAAI,EAGvC,GAAe,WAAXA,EAEF61E,GADAD,EAAW3uN,EAAE+uN,UAAYL,EAAQT,EAAGrzJ,EAAQxmE,EAAI4L,EAAE8oD,GAAK,GAAKilK,EAAG/tN,EAAE6oD,GAAK,EAAI7oD,EAAEgvN,SAAW,MAChEN,EAAQT,EAAGjuN,EAAE8oD,IAAMilK,EAAG/tN,EAAE6oD,UAE/C,GAAI6lK,EAEFE,GADAD,EAAW3uN,EAAE+uN,SAAWd,EAAGr1H,EAAiBh+B,EAAQxmE,GAAK65N,EAAGjuN,EAAE8oD,GAAK,EAAI8vC,IACjDq1H,EAAGjuN,EAAE8oD,QACtB,CACL,IAAI+nJ,EAASkd,EAAGe,EAAWl2H,EAAiBh+B,EAAQzmE,GAChD86N,EAAOpe,EAASkd,EAAGe,EAAW9uN,EAAE6oD,IACpC8lK,EAAW3uN,EAAE+uN,SAAWngO,KAAK8mB,IAAIm7L,EAAQoe,GACzCL,EAAW5uN,EAAE+uN,SAAWngO,KAAK6mB,IAAIo7L,EAAQoe,EAC3C,CAEEP,OACoB,IAAlBf,QAA8C,IAAlBE,GAA4Bj/N,KAAK8mB,IAAIk5M,EAAUf,GAAiBj/N,KAAK6mB,IAAIk5M,EAAUhB,GAAiB,IAC7G,SAAjBc,EAAQ1vE,MACVqkC,EAAOqrC,EAAQ5qB,kBACfxgB,EAAOh/C,EAAWxhI,OAElBwgL,EAAOorC,EAAQ5qB,wBAIG,IAAlB0pB,QAA8C,IAAlBE,GAA4B7+N,KAAK8mB,IAAIk5M,EAAUnB,GAAiB7+N,KAAK6mB,IAAIk5M,EAAUpB,GAAiB,IAC7G,QAAjBkB,EAAQ1vE,MACVqkC,EAAOqrC,EAAQ5qB,kBACfxgB,EAAOh/C,EAAWvhI,QAElBugL,EAAOorC,EAAQ5qB,kBAIvB,CACAypB,EAAYp5N,KAAO,CAAC,CAClBu2C,MAAOzqC,EACPoiJ,WAAYpiJ,EAAEooG,MAAMz4G,MACpBm6L,GAAI,EACJ/gG,IAAK/oF,EAAE+oF,IACPmmI,OAAQlvN,EAAEkvN,OACVl7N,KAAMgM,EAAE8oD,IAAM4lK,EAAQnJ,EAAU,GAAK,EACrCniC,OACAC,QAEJ,IACAiqC,EAAYjwM,MAAK,SAASjG,EAAG4H,GAC3B,OAAO5H,EAAE,GAAG83M,OAASlwM,EAAE,GAAGkwM,QAI1Bx0B,GAAU17K,EAAE,GAAGojI,WAAahrI,EAAE,GAAGgrI,WACnC,KAiDQyqE,GAAmBO,GAAYC,GAAS,CAI9C,IAHAD,IACAP,GAAkB,EAClB7+N,EAAI,EACGA,EAAIs/N,EAAYlhO,OAAS,GAAG,CACjC,IAAI+iO,EAAK7B,EAAYt/N,GACjBohO,EAAK9B,EAAYt/N,EAAI,GACrB+hD,EAAKo/K,EAAGA,EAAG/iO,OAAS,GACpB4Q,EAAKoyN,EAAG,GAEZ,IADAtC,EAAa/8K,EAAGg5C,IAAMh5C,EAAG+5I,GAAK/5I,EAAG/7C,KAAOgJ,EAAG+rF,IAAM/rF,EAAG8sL,GAAK9sL,EAAGhJ,MAC3C,IAAM,CACrB,IAAKC,EAAIm7N,EAAGhjO,OAAS,EAAG6H,GAAK,EAAGA,IAAKm7N,EAAGn7N,GAAG61L,IAAMgjC,EAIjD,IAHAqC,EAAGxiO,KAAKyM,MAAM+1N,EAAIC,GAClB9B,EAAY7hK,OAAOz9D,EAAI,EAAG,GAC1Bi/N,EAAQ,EACHh5N,EAAIk7N,EAAG/iO,OAAS,EAAG6H,GAAK,EAAGA,IAAKg5N,GAASkC,EAAGl7N,GAAG61L,GAEpD,IADAijC,EAAgBE,EAAQkC,EAAG/iO,OACtB6H,EAAIk7N,EAAG/iO,OAAS,EAAG6H,GAAK,EAAGA,IAAKk7N,EAAGl7N,GAAG61L,IAAMijC,EACjDF,GAAkB,CACpB,MAAO7+N,GACT,CACAs/N,EAAYhgO,QAAQ6gO,EACtB,CACA,IAAKngO,EAAIs/N,EAAYlhO,OAAS,EAAG4B,GAAK,EAAGA,IAAK,CAC5C,IAAIqhO,EAAM/B,EAAYt/N,GACtB,IAAKiG,EAAIo7N,EAAIjjO,OAAS,EAAG6H,GAAK,EAAGA,IAAK,CACpC,IAAI8uB,EAAKssM,EAAIp7N,GACTq7N,EAAUvsM,EAAG0nB,MACjB6kL,EAAQl8N,OAAS2vB,EAAG+mK,GACpBwlC,EAAQd,IAAMzrM,EAAGyrM,GACnB,CACF,CACF,CAxrBIe,CAAmB5C,GAAaL,GAAcjoF,EAAYkoF,GAAUK,wBACpE4C,EAAe7C,GAAaL,GAAcjoF,EAAW2pF,WAAY3pF,EAAW6pF,aAE1Eh+I,GAAeA,EAAY/9D,QAAS,CACtC,IAAIs9M,GAAiB1wG,EAASJ,mBAAmB,cAAe,iBAA3CI,CAA6DhM,EAAI64G,IACtF1G,EAAennL,EAAGsI,OAAO6pC,GAAcu/I,GAAiB,UAAY,GACtE,CACKv/I,IAAem2I,GA+8BtB,SAAsBtzG,EAAIk9F,EAAKC,GAC7B,IAAKA,GAAgBA,EAAa9jN,SAAW2mH,EAAGoqC,WAAW/wJ,OAAQ,OAAO,EAC1E,IAAK,IAAI4B,EAAIkiN,EAAa9jN,OAAS,EAAG4B,GAAK,EAAGA,IAAK,CACjD,IAAI0hO,EAAQxf,EAAaliN,GACrB2hO,EAAQ58G,EAAGoqC,WAAWnvJ,GAC1B,GAAI0hO,EAAM/mD,cAAgBgnD,EAAMhnD,aAAe75K,OAAO4gO,EAAMhnD,eAAiB55K,OAAO6gO,EAAMjnD,cAAgB55K,OAAO4gO,EAAMnmD,gBAAkBz6K,OAAO6gO,EAAMpmD,cACpJ,OAAO,CAEX,CACA,OAAO,CACT,CAz9BuCqmD,CAAa78G,EAAIk9F,EAAKC,MACvDA,IACFn9F,EAAGiqB,KAAK,iBAAkB,CACxBvrH,MAAOw+L,EACP/8M,OAAQg9M,KAGZn9F,EAAGiqB,KAAK,eAAgB,CACtBvrH,MAAOw+L,EACP/8M,OAAQ6/G,EAAGoqC,WACXwqB,MAAOo/C,EACPn/C,MAAOo/C,EACP6I,MAAO1I,GACP2I,MAAO1I,KAEX,CA9lBM2I,CAAOh9G,EAAIk9F,EAAKxlD,EAAS47D,EAAcn2I,EACzC,GAEJ,EACAvwE,EAAQqwN,UAAY,SAAmBC,EAAYzhI,GACjD,IAAI0hI,GAAa,EACZt6N,MAAMiI,QAAQoyN,KACjBC,GAAa,EACbD,EAAa,CAACA,IAEhB,IAAIl9G,EAAKvkB,EAAKukB,GACV84G,EAAOC,EAAa/4G,GACpBg5G,EAAQC,EAAcj5G,GAqEtBu5G,GAAe,EASf6D,EARY3D,EArECyD,EAAW56N,KAAI,SAAS+6N,GACvC,IAAIlE,EAAMkE,EAAUlE,KAAOkE,EAAUh/K,IAAMg/K,EAAUj8N,GAAK,EACtDg4N,EAAMiE,EAAUjE,KAAOiE,EAAU/+K,IAAM++K,EAAUj8N,GAAK,EACtDi4N,EAAMgE,EAAUhE,KAAOgE,EAAU9+K,IAAM8+K,EAAUh8N,GAAK,EACtDi4N,EAAM+D,EAAU/D,KAAO+D,EAAU7+K,IAAM6+K,EAAUh8N,GAAK,EACtD00K,EAAYsnD,EAAUtnD,UAC1B,GAAIA,EAAW,CACb,IAAI13H,EAAKxiD,KAAK8mB,IAAIw2M,EAAKC,GACnB96K,EAAKziD,KAAK6mB,IAAIy2M,EAAKC,GACnB76K,EAAK1iD,KAAK8mB,IAAI02M,EAAKC,GACnB96K,EAAK3iD,KAAK6mB,IAAI22M,EAAKC,GACnBjkH,EAAQgoH,EAAUhoH,MACtB,GAAI2W,EAASN,QAAQrW,EAAO,QAAS,CACnC,IAAI57G,EAAYumH,EAAGonB,YAAY/xB,EAAMshC,OAAOid,OAAOn6J,UAC/CkiD,EAAKliD,EAAU00L,WACfvyI,EAAKniD,EAAU20L,UACnB/vI,GAAM1C,EACN2C,GAAM3C,EACN4C,GAAM3C,EACN4C,GAAM5C,CACR,CACAm6H,EAAUv9G,KAAO,CACfna,GAAIA,EAAK26K,EACT16K,GAAIA,EAAK06K,EACTz6K,GAAIA,EAAKu6K,EACTt6K,GAAIA,EAAKs6K,GAEPr9H,EAAK6hI,YACP7hI,EAAK6hI,WAAW1jO,KAAKm8K,EAAUv9G,KAEnC,MACEu9G,GAAY,EAEd,MAAO,CACLnnK,MAAOyuN,EAAUzuN,OAASi+F,EAAO1C,YACjC9rD,GAAIg/K,EAAUh/K,IAAMg/K,EAAUj8N,GAAK,EACnCk9C,GAAI++K,EAAU/+K,IAAM++K,EAAUj8N,GAAK,EACnCm9C,GAAI8+K,EAAU9+K,IAAM8+K,EAAUh8N,GAAK,EACnCm9C,GAAI6+K,EAAU7+K,IAAM6+K,EAAUh8N,GAAK,EACnCk8N,OAAQF,EAAUE,OAClBC,OAAQH,EAAUG,OAClBC,OAAQJ,EAAUI,OAClBxqN,KAAMoqN,EAAUpqN,KAChB/O,KAAMm5N,EAAUn5N,KAChBw5N,WAAYL,EAAUK,WAEtB/uM,YAAa0uM,EAAU1uM,YACvB3X,WAAYqmN,EAAUrmN,WACtBlI,SAAUuuN,EAAUvuN,SACpBw2K,UAAW+3C,EAAU/3C,UACrBj9K,WAAYg1N,EAAUh1N,WACtBsrB,UAAW0pM,EAAU1pM,UACrBm3J,YAAauyC,EAAUvyC,YACvB6yC,WAAYN,EAAUM,WACtB/pM,UAAWypM,EAAUzpM,UAErByhF,MAAOgoH,EAAUhoH,OAAS,CACxBz4G,MAAO,EACPurG,UAAW,IAEbkc,GAAI,CAAE2uE,QAAS,GACfzuE,GAAI,CAAEyuE,QAAS,GACfp2L,MAAO,EACPwmH,cAAei6G,EAAUj6G,gBAAiB,EAC1Cw6G,oBAAqBP,EAAUO,sBAAuB,EACtD7nD,YAEJ,IAE4C,CAC1C/1D,KACAvZ,UAAW,UACX8yH,eACAvpD,QAASv0E,EAAKu0E,SAAWnjE,EAAOx5F,WAChC5Z,UAAWuxC,EAAGsI,OAAOmoD,EAAKhiG,WAC1BigO,eAAgBj+H,EAAKi+H,gBAAkBj+H,EAAKhiG,YAEnBmgO,YAEvBiE,EAAc,EACd73E,EAAS,EAkBb,OAjBAo3E,EAAW9yM,MAAK,SAASjG,EAAG4H,GAC1B,OAAO5H,EAAEk6B,GAAKtyB,EAAEsyB,EAClB,IAAGnI,MAAK,SAASnpC,EAAGhS,GAClB,IAAI6iO,EAAO7wN,EAAEsxC,GAAKtxC,EAAE8oD,GAAK,EAEvB9oD,EAAE5M,OADAy9N,EAPe,EAOSD,EACfA,EAAcC,EARR,EAUN,EAEbD,EAAcC,EAAO7wN,EAAE8oD,GAAK9oD,EAAE5M,OAC1BpF,IAAMwgG,EAAKsiI,cAAkB/3E,EAAS/4I,EAAE5M,OAC9C,IAAG+1C,MAAK,SAASnpC,GACfA,EAAE5M,QAAU2lJ,CACd,IAGAy2E,EAAeW,EAAY7D,EAFdv5G,EAAGonB,YAAY6zF,WACfj7G,EAAGonB,YAAY+zF,YAErBgC,EAAaC,EAAaA,EAAWz/N,MAC9C,EAkfA,IAAIqgO,EAAqB,4BACzB,SAASvE,EAAgB5E,EAAWp5H,GAClC,IAAIukB,EAAKvkB,EAAKukB,GACVsxB,EAAatxB,EAAGonB,YAChB3gC,EAAYhL,EAAKgL,UACjB8yH,EAAe99H,EAAK89H,aACpBvpD,EAAUv0E,EAAKu0E,QACfv2K,EAAYgiG,EAAKhiG,UACjBigO,EAAiBj+H,EAAKi+H,eACtBC,EAAkBl+H,EAAKk+H,iBAAmB,CAAC,EAC/C,GAAyB,IAArB9E,EAAUx7N,OAAc,MAAO,CAAC,IACpC,IAAI2d,EAAaykF,EAAKzkF,YAAcovF,EAAUJ,UAC1Cl3F,EAAW2sF,EAAK3sF,UAAYs3F,EAAUL,cACtC19F,EAAaozF,EAAKpzF,YAAcipI,EAAWhrC,KAAK9gC,OAChD7xC,EAAY8nE,EAAK9nE,WAAa29G,EAAWhrC,KAAKhhF,MAC9CwlK,EAAcrvF,EAAKqvF,aAAex5C,EAAWhrC,KAAKl+E,QAClD2iK,EAAetvF,EAAKsvF,cAAgBz5C,EAAWhrC,KAAKtB,SACpDgmF,EAAmBvvF,EAAKuvF,kBAAoB15C,EAAWhrC,KAAKpB,aAC5D+lF,EAAaxvF,EAAKwvF,YAAc35C,EAAWhrC,KAAKjB,OAChD44H,EAAKpJ,EAAU,GACfxwG,EAAK45G,EAAG55G,GACRE,EAAK05G,EAAG15G,GACR2xB,EAAWzvC,EAAUnjF,OAAO,GAC5B46M,EAAUhoF,EAAW,QACrB9kF,EAAM6sK,EAAGC,GACb,QAAY,IAAR9sK,GAA8B,kBAAZizD,EAAGvmH,KACvB,IAAK,IAAIqmC,EAAI,EAAGA,EAAI0wL,EAAUx7N,aAEhB,KADZ+3D,EAAMyjK,EAAU1wL,GAAG+5L,IADiB/5L,KAKxC,IAAIg6L,EAAmB5jL,EAAsBylE,EAAI05G,GAC7C0E,EAAWD,EAAiB9qM,IAC5BgrM,EAAaF,EAAiBruN,MAC9BwuN,EAAcH,EAAiBpuN,OAC/BwuN,OAA0B,IAARntK,GAAkB6sK,EAAGhhK,UAAYw+B,EAAKkL,gBAAgC,MAAdF,GAAmC,MAAdA,GACnG,GAAI83H,EAAiB,CACnB,IACItjO,EAAGujO,EADHC,GAAW,EAEf,IAAKxjO,EAAI,EAAGA,EAAI45N,EAAUx7N,OAAQ4B,IAGhC,GAFIwjO,QAAoC,IAAxB5J,EAAU55N,GAAGwiO,SAAmBgB,GAAW,GAC3DD,EAAiB3J,EAAU55N,GAAGktG,WAAa0sH,EAAU55N,GAAGo6G,MAAMlN,UAC1C,CAClB,IAAIlR,EAAQp0F,MAAMiI,QAAQ0zN,GAAkBA,EAAiBA,EAAel7N,MAAM,KAClF,IAA8B,IAA1B2zF,EAAMv6F,QAAQ,SAA+C,IAA9Bu6F,EAAMv6F,QAAQ+pG,GAAmB,CAClE83H,GAAkB,EAClB,KACF,CACF,CAEEE,IAAUF,GAAkB,EAClC,CACA,IAAIG,EAAcjlO,EAAUq6C,UAAU,cAAc6B,KAAK4oL,EAAkB,CAAC,GAAK,IACjFG,EAAYlnL,QAAQp6C,OAAO,KAAKi5C,QAAQ,YAAY,GACpDqoL,EAAYjnL,OAAOtH,SACnB,IAAIwuL,EAAkB,CACpBlE,KAAM,EACNE,KAAM,EACNE,KAAM,EACNE,KAAM,GAkHR,GAhHA2D,EAAYtoL,MAAK,WACf,IAAIh1B,EAAQ4pB,EAAGsI,OAAOt6C,MAClB4lO,EAAQ12F,EAAIzF,aAAarhH,EAAO,OAAQ,IAAI,SAAS+C,GACvDA,EAAEmB,MAAM,CAAE,eAAgB,OAC5B,IACIu5M,EAAQ32F,EAAIzF,aAAarhH,EAAO,OAAQ,IAAI,SAAS+C,GACvDA,EAAE+xB,KAAK,aAAc,EACvB,IACI4oL,EAAgBnF,EAAgB7pM,SAAW+8E,EAAO1C,YAClD40H,EAAepF,EAAgB7yH,aAAe+F,EAAOpB,SAASqzH,GAC9DE,EAAgBnyH,EAAOpB,SAASqzH,GAChCG,EAAsBtF,EAAgBrzH,KACtC44H,EAAkB,CACpB15J,OAAQy5J,EAAoBz5J,QAAUn9D,EACtCid,MAAO25M,EAAoB35M,OAASqO,EACpCvL,QAAS62M,EAAoB72M,SAAW0iK,EACxC9lF,SAAUi6H,EAAoBj6H,UAAY+lF,EAC1C7lF,aAAc+5H,EAAoB/5H,cAAgB8lF,EAClD3lF,OAAQ45H,EAAoB55H,QAAU4lF,EACtCrmF,OAAQq6H,EAAoBr6H,QAAU5tF,EACtC/V,KAAMg+N,EAAoBh+N,MAAQ6N,EAClCF,MAAOqwN,EAAoBrwN,OAASowN,GAEtCJ,EAAMt5M,MAAM,CACVrV,KAAM6uN,EACNlzH,OAAQmzH,IAEVF,EAAM5rN,KAAKm+C,GAAKtuD,KAAKonL,EAAQ5jF,KAAM44H,GAAiBp8N,KAAK42K,EAAara,aAAc,EAAG,GAAGv8J,KAAK42K,EAAapgB,gBAAiBt5C,GAC7H5+F,EAAM80B,KAAK,YAAa,IACxB,IACIipL,EAAKC,EADLC,EAAO9kL,EAAsBylE,EAAI6+G,EAAMlhO,QAE3C,GAAkB,MAAd8oG,EAAmB,CACrB,IAAI64H,EAAsB,QAAZj7G,EAAG2nC,KAAiB,IAAM,GACxC6yE,EAAM3oL,KAAK,cAAe,UAAUpzC,KAAK42K,EAAara,aAAc,EAAe,QAAZh7C,EAAG2nC,KAAiBoyE,EAAWiB,EAAK9rM,OAASsyE,EAAiBC,EAAes4H,EAAWiB,EAAKhsM,IAAMwyE,EAAiBC,GAC3Lq5H,EAAM96G,EAAG2uE,SAAWirC,EAAG5/K,GAAK4/K,EAAG3/K,IAAM,EACrC8gL,EAAM76G,EAAGyuE,SAAuB,QAAZ3uE,EAAG2nC,KAAiB,EAAIznC,EAAG4V,SAC/C,IAAIolG,EAAYF,EAAKvvN,MAAQ,EAAIg2F,EAC7B05H,EAAcL,EACdA,EAAMI,EACRC,EAAcD,EACLJ,EAAM7tF,EAAWxhI,MAAQyvN,IAClCC,EAAcluF,EAAWxhI,MAAQyvN,GAEnCX,EAAM1oL,KAAK,IAAK,KAAOipL,EAAMK,GAAe,OAASL,EAAMK,EAAc35H,GAAkB,IAAMy5H,EAAUz5H,EAAiB,IAAM05H,EAAY,IAAMD,GAA0B,EAAfx5H,EAAmBu5H,EAAKtvN,QAAU,KAAOwvN,EAAY,IAAMD,EAAUz5H,EAAiB,KAAOs5H,EAAMK,EAAc35H,GAAkB,KAClSs5H,EAAMK,EACNb,EAAgBlE,KAAO0E,EAAMI,EAC7BZ,EAAgBhE,KAAOwE,EAAMI,EACb,QAAZl7G,EAAG2nC,MACL2yE,EAAgB9D,KAAOuE,GAAsB,EAAft5H,EAAmBu5H,EAAKtvN,QACtD4uN,EAAgB5D,KAAOqE,EAAMt5H,IAE7B64H,EAAgB9D,KAAOuE,EAAMt5H,EAC7B64H,EAAgB5D,KAAOqE,GAAsB,EAAft5H,EAAmBu5H,EAAKtvN,QAE1D,KAAO,CACL,IAAIi2I,EACAuwD,EACAkpB,EACY,UAAZl7G,EAAGynC,MACLhG,EAAS,QACTuwD,EAAM,EACNkpB,EAAW,GACXN,EAAM96G,EAAG2uE,QAAU3uE,EAAG8V,UAEtB6rB,EAAS,MACTuwD,GAAO,EACPkpB,EAAW,IACXN,EAAM96G,EAAG2uE,SAEXosC,EAAM76G,EAAGyuE,SAAWirC,EAAG1/K,GAAK0/K,EAAGz/K,IAAM,EACrCqgL,EAAM3oL,KAAK,cAAe8vG,GAC1B44E,EAAM1oL,KAAK,IAAK,QAAUupL,EAAW55H,EAAiB,IAAMA,EAAiB,KAAOC,EAAeu5H,EAAKtvN,OAAS,GAAK,IAAM0vN,GAA2B,EAAf35H,EAAmBu5H,EAAKvvN,OAAS,MAAQg2F,EAAeu5H,EAAKtvN,OAAS,GAAK,IAAM0vN,EAAW55H,EAAiB,KAAOA,EAAiB,KAC7Q84H,EAAgB9D,KAAOuE,GAAOt5H,EAAeu5H,EAAKtvN,OAAS,GAC3D4uN,EAAgB5D,KAAOqE,GAAOt5H,EAAeu5H,EAAKtvN,OAAS,GAC3C,UAAZw0G,EAAGynC,MACL2yE,EAAgBlE,KAAO0E,EAAMt5H,EAC7B84H,EAAgBhE,KAAOwE,EAAMt5H,GAAiC,EAAfC,EAAmBu5H,EAAKvvN,SAEvE6uN,EAAgBlE,KAAO0E,EAAMt5H,GAAiC,EAAfC,EAAmBu5H,EAAKvvN,OACvE6uN,EAAgBhE,KAAOwE,EAAMt5H,GAE/B,IAGIgmH,EAHA6T,EAAaL,EAAKtvN,OAAS,EAC3B4vN,EAAMvB,EAAWiB,EAAKhsM,IAAMqsM,EAC5BlU,EAAS,OAASl6E,EAAW+sC,KAAO,cAAgB95D,EAAG45B,IAE3D,GAAIghF,EAAME,EAAKvvN,MAAQ,EAAIg2F,EAAeD,EAAgB,CACxDgmH,EAAW,MAAQhmH,EAAiBC,GAAgB,IAAM45H,EAAa,MAAQL,EAAKvvN,MAAQg2F,GAAgB,IAAM45H,EAAa,KAAOL,EAAKvvN,MAAQg2F,GAAgB,IACnK,IAAI85H,EAAMP,EAAKvvN,MAAQqvN,EAAMr5H,EAC7B4zE,EAAara,aAAaw/D,EAAOe,EAAKD,GACvB,QAAX35E,GACF64E,EAAM/qL,UAAU,SAASsC,MAAK,WAC5B,IAAIjyB,EAAI6mB,EAAGsI,OAAOt6C,MACd6qI,EAAQqmD,EAAQnD,OAAO3pL,OAAO,QAAQ6V,KAAKkR,EAAElR,QAAQnQ,KAAKonL,EAAQ5jF,KAAM44H,GACxEW,EAAUtlL,EAAsBylE,EAAI6jB,EAAMlmI,QAC1C9B,KAAK+b,MAAMioN,EAAQ/vN,OAASjU,KAAK+b,MAAMynN,EAAKvvN,QAC9CqU,EAAE+xB,KAAK,IAAK0pL,EAAMC,EAAQ/vN,OAE5B+zH,EAAM1zF,QACR,GAEJ,MACEupI,EAAara,aAAaw/D,EAAOtoB,GAAOzwG,EAAeD,GAAiB85H,GACxE9T,EAAW,KAEb,IAAIiU,EAAWxuF,EAAWyuF,UAAUjsL,UAAU,IAAM03K,GAAQ71K,KAAKk2K,EAAW,CAAC,GAAK,IAClFiU,EAAStoL,QAAQp6C,OAAO,YAAY84C,KAAK,KAAMs1K,GAAQpuN,OAAO,QAC9D0iO,EAASroL,OAAOtH,SAChB2vL,EAASxsL,OAAO,QAAQ4C,KAAK,IAAK21K,GAClC3hC,EAAQpC,WAAW+2C,EAAOhT,EAAWL,EAAS,KAAMxrG,EACtD,CACA5+F,EAAM80B,KAAK,YAAaowF,EAAa64F,EAAKC,GAC5C,IACI3rD,EAAQsD,eAAetwE,GAAY,CACrChtG,EAAUq6C,UAAU,eAAe3D,SACnC,IAAI6vL,GAAmBnL,EAAUxvM,QAAO,SAASswB,GAC/C,MAA0B,SAAnBA,EAAKwyD,SACd,IACA,GAAgC,IAA5B63H,GAAiB3mO,OAAc,MAAO,GAC1C,IAAIwtG,GAAayqC,EAAWzqC,WACxBP,GAAOO,GAAWP,KAClB25H,GAAe,CACjBz4H,YAAY,EACZC,OAAQ,CACNwe,MAAO,CAAEhzG,KAAMm+C,EAAKk1C,SACpBA,QACAx2E,QAAS+2E,GAAW/2E,QACpBg3E,YAAaD,GAAWC,YACxBilE,YAAa,EACbk0C,cAAe,EACfD,WAAY1uE,EAAW7pC,OAAS6pC,EAAW7pC,OAAOu4G,gBAAa,EAC/Dz0C,YAAa,MAGb20D,GAAgB,CAClB55H,SAEF+rH,EAAqB4N,GAAcC,GAAelgH,EAAGs5B,WACrD,IAAI6mF,GAAaD,GAAcz4H,OAC/B04H,GAAWt5M,QAAU,GACrB,IAAK,IAAI3lB,GAAI,EAAGA,GAAI8+N,GAAiB3mO,OAAQ6H,KAAK,CAChD,IAAI8uB,GAAKgwM,GAAiB9+N,IAC1B,GAAqB,SAAjB8uB,GAAGm4E,UAAP,CACA,IAAIi4H,GAAQC,EAAkBrwM,IAAI,EAAMy2E,EAAW6qC,EAAYlgF,GAC3Dn+C,GAAOmtN,GAAM,GACb74L,GAAQ64L,GAAM,GAClBpwM,GAAG9rB,KAAOqjC,GAERvX,GAAG/c,KADS,KAAVs0B,GACQA,GAAQ,MAAQt0B,GAEhBA,GAEZ,IAAIymH,GAAK1pG,GAAG0pG,GAAG1pG,GAAGpzB,OACd88H,KACEA,GAAGwnD,KAAIlxJ,GAAGkxJ,GAAKxnD,GAAGwnD,IAClBxnD,GAAGglD,MAAK1uJ,GAAGkxJ,GAAKxnD,GAAGglD,KACnBhlD,GAAGsnD,MAAKhxJ,GAAGgxJ,IAAMtnD,GAAGsnD,KACpBtnD,GAAGonD,OAAM9wJ,GAAGgxJ,IAAMtnD,GAAGonD,MACrBpnD,GAAGmnD,MAAK7wJ,GAAG6wJ,IAAMnnD,GAAGmnD,KACpBnnD,GAAGumD,MAAKjwJ,GAAGiwJ,IAAMvmD,GAAGumD,KACpBvmD,GAAGltG,MAAKwD,GAAGxD,IAAMktG,GAAGltG,MAE1BwD,GAAGs6L,WAAY,EACf6V,GAAWt5M,QAAQjtB,KAAK,CAACo2B,IArBY,CAsBvC,CACAmwM,GAAWt5M,QAAQyD,MAAK,SAASjG,EAAG4H,GAClC,OAAO5H,EAAE,GAAGgxF,MAAMz4G,MAAQqvB,EAAE,GAAGopF,MAAMz4G,KACvC,IACAujO,GAAWn7G,MAAQvrH,EACnB0mO,GAAW7a,UAAW,EACtB6a,GAAWtZ,gBAAkBhgH,GAAWE,eACxCurH,EAAWtyG,EAAImgH,IACf,IAQIG,GAAUC,GAkBVC,GAASC,GA1BTC,GAAkBjnO,EAAU65C,OAAO,YACnCqtL,GAAMpmL,EAAsBylE,EAAI0gH,GAAgB/iO,QAChDijO,GAASD,GAAI7wN,MAAQ,EAAIg2F,EACzB+6H,GAAUF,GAAI5wN,OAAS,EAAI+1F,EAC3BwyH,GAAe0H,GAAiB,GAChCc,IAAQxI,GAAaj6K,GAAKi6K,GAAah6K,IAAM,EAC7CyiL,IAAQzI,GAAa/5K,GAAK+5K,GAAa95K,IAAM,EAC7CwiL,KAAah1G,EAASN,QAAQ4sG,GAAajjH,MAAO,aAAe2W,EAASN,QAAQ4sG,GAAajjH,MAAO,eAEzF,MAAb6gC,EACE8qF,IACFT,GAAQQ,GAAOj7H,EACfw6H,GAAWS,GAAOj7H,IAElBy6H,GAAQ1kO,KAAK8mB,IAAItc,MAAM,KAAM25N,GAAiB19N,KAAI,SAAS04B,GACzD,OAAOn/B,KAAK8mB,IAAIqY,EAAEujB,GAAIvjB,EAAEwjB,GAC1B,KACA8hL,GAAWzkO,KAAK6mB,IAAIrc,MAAM,KAAM25N,GAAiB19N,KAAI,SAAS04B,GAC5D,OAAOn/B,KAAK6mB,IAAIsY,EAAEujB,GAAIvjB,EAAEwjB,GAC1B,MAGF+hL,GAAQD,GAAWp4F,EAAIh7F,KAAK8yL,GAAiB19N,KAAI,SAAS04B,GACxD,OAAQA,EAAEujB,GAAKvjB,EAAEwjB,IAAM,CACzB,KAAMqiL,GAAU,EAGD,MAAb3qF,EACE8qF,IACFR,GAAUM,GAAOh7H,EACjB26H,GAASK,GAAOh7H,IAEhB06H,GAAU3kO,KAAK6mB,IAAIrc,MAAM,KAAM25N,GAAiB19N,KAAI,SAAS04B,GAC3D,OAAOn/B,KAAK6mB,IAAIsY,EAAEqjB,GAAIrjB,EAAEsjB,GAC1B,KACAmiL,GAAS5kO,KAAK8mB,IAAItc,MAAM,KAAM25N,GAAiB19N,KAAI,SAAS04B,GAC1D,OAAOn/B,KAAK8mB,IAAIqY,EAAEqjB,GAAIrjB,EAAEsjB,GAC1B,MAGFkiL,GAAUC,GAASv4F,EAAIh7F,KAAK8yL,GAAiB19N,KAAI,SAAS04B,GACxD,OAAQA,EAAEqjB,GAAKrjB,EAAEsjB,IAAM,CACzB,KAAMsiL,GAAS,EAEjB,IAMIppK,GAAIC,GANJwpK,GAAU58G,EAAG2uE,QACbkuC,GAAU38G,EAAGyuE,QAmCjB,OAhCAytC,IAAUQ,GAAUL,GACpBL,IAASW,GAAUL,GAGjBrpK,IALFgpK,IAAWS,IAIGL,GAASvC,GAAcmC,IAAW,EACzCA,GACIC,GAASG,GAASvC,GAAcoC,IAAU,EAC9CA,GACIQ,GAAUL,GAASvC,EACvB4C,GAEDT,GAAUM,GAAOA,GAAOL,GAASG,GAC9BvC,EAAauC,GAEb,EAGTppK,IAAMsuC,EAEJruC,IApBF6oK,IAAYY,IAmBGL,GAAUvC,GAAegC,IAAY,EAC7CA,GACIC,GAAQM,GAAUvC,GAAeiC,IAAS,EAC9CA,GACIW,GAAUL,GAAUvC,EACxB4C,GAEDZ,GAAWS,GAAOA,GAAOR,GAAQM,GAC9BvC,EAAcuC,GAEd,EAGTppK,IAAMquC,EACN46H,GAAgBxqL,KAAK,YAAaowF,EAAa9uE,GAAK,EAAGC,GAAK,IACrDipK,EACT,CACA,IAAI9G,GAAcngO,EAAUq6C,UAAU,eAAe6B,KAAKk/K,GAAW,SAAS5nN,GAC5E,OAAOomN,EAAapmN,EACtB,IAgIA,OA/HA2sN,GAAYpiL,QAAQp6C,OAAO,KAAKi5C,QAAQ,aAAa,GAAMD,MAAK,WAC9D,IAAIpa,EAAIgP,EAAGsI,OAAOt6C,MAClBgjC,EAAE5+B,OAAO,QAAQ0F,KAAK+pG,EAAO58F,KAAM48F,EAAO7B,WAAWglE,EAAS,KAC9Dh0I,EAAE5+B,OAAO,QAAQi5C,QAAQ,QAAQ,GACjCra,EAAE5+B,OAAO,QAAQkoB,MAAM,eAAgB,OACvC0W,EAAE5+B,OAAO,QAAQi5C,QAAQ,QAAQ,GAAMvzC,KAAKonL,EAAQ5jF,KAAM,CACxD9gC,OAAQn9D,EACRid,MAAOqO,EACPvL,QAAS0iK,EACT9lF,SAAU+lF,EACV7lF,aAAc8lF,EACd3lF,OAAQ4lF,EACRrmF,OAAQ5tF,EACR/V,KAAM6N,GAEV,IACA8qN,GAAYniL,OAAOtH,SACnBypL,GAAYxjL,MAAK,SAASnpC,GACxB,IAAI+uB,EAAIgP,EAAGsI,OAAOt6C,MAAMk9C,KAAK,YAAa,IACtCirL,EAASl0N,EAAE2B,MACX/L,MAAMiI,QAAQq2N,KAChBA,EAASA,EAAOl0N,EAAE8oK,UAAU,GAAGJ,cAEjC,IAAIyrD,EAASn0N,EAAE6iB,SAAWqxM,EACtBE,EAAYx0H,EAAOtqG,QACrBsqG,EAAOtkG,QAAQ64N,GAAUA,EAASv0H,EAAO1C,YACzC6lE,GAEEsxD,EAAYz0H,EAAOtqG,QACrBsqG,EAAOtkG,QAAQ44N,GAAUA,EAASt0H,EAAO1C,YACzC6lE,GAEEgvD,EAAgB/xN,EAAE0hB,aAAek+E,EAAOpB,SAAS41H,GACjDE,EAASlB,EAAkBpzN,EAAGsxN,EAAiB93H,EAAW6qC,EAAYlgF,EAAKp1B,GAC3E0tK,EAAQ63B,EAAO,GACfppL,EAAQopL,EAAO,GACfv0J,EAAKhxC,EAAEsX,OAAO,aAAaxwC,KAAKonL,EAAQ5jF,KAAM,CAChD1B,OAAQ33F,EAAE+J,YAAcA,EACxB/V,KAAMgM,EAAE6B,UAAYA,EACpBF,MAAO3B,EAAEq4K,WAAa05C,EACtBx5J,OAAQv4D,EAAE5E,YAAcA,EACxBid,MAAOrY,EAAE0mB,WAAaA,EACtBvL,QAASnb,EAAE69K,aAAeA,EAC1B9lF,SAAU/3F,EAAE89K,cAAgBA,EAC5B7lF,aAAcj4F,EAAE+9K,kBAAoBA,EACpC3lF,OAAQp4F,EAAEg+K,YAAcA,IACvBh4K,KAAKy2L,GAAOxzJ,KAAK,aAAc,GAAGpzC,KAAK42K,EAAara,aAAc,EAAG,GAAGv8J,KAAK42K,EAAapgB,gBAAiBt5C,GAC1GwhH,EAAMxlM,EAAEsX,OAAO,aACf2oL,EAAW,EACXwF,EAAY,EAChB,GAAItpL,GAASA,IAAUuxJ,EAAO,CAC5B83B,EAAI1+N,KAAKonL,EAAQ5jF,KAAM,CACrB1B,OAAQ33F,EAAE+J,YAAcA,EACxB/V,KAAMgM,EAAE6B,UAAYA,EACpBF,MAAO0yN,EACP97J,OAAQv4D,EAAE5E,YAAcA,EACxBid,MAAOrY,EAAE0mB,WAAaA,EACtBvL,QAASnb,EAAE69K,aAAeA,EAC1B9lF,SAAU/3F,EAAE89K,cAAgBA,EAC5B7lF,aAAcj4F,EAAE+9K,kBAAoBA,EACpC3lF,OAAQp4F,EAAEg+K,YAAcA,IACvBh4K,KAAKklC,GAAOjC,KAAK,aAAc,GAAGpzC,KAAK42K,EAAara,aAAc,EAAG,GAAGv8J,KAAK42K,EAAapgB,gBAAiBt5C,GAC9G,IAAI0hH,EAAOnnL,EAAsBylE,EAAIwhH,EAAI7jO,QACzCs+N,EAAWyF,EAAK5xN,MAAQ,EAAIg2F,EAC5B27H,EAAYC,EAAK3xN,OAAS,EAAI+1F,CAChC,MACE07H,EAAIrxL,SACJnU,EAAEsX,OAAO,QAAQnD,SAEnBnU,EAAEsX,OAAO,QAAQhuB,MAAM,CACrBrV,KAAMoxN,EACNz1H,OAAQozH,IAEV,IAAI94F,EAAMj5H,EAAEo3G,GAAG2uE,SAAW/lL,EAAEoxC,GAAKpxC,EAAEqxC,IAAM,EACrCqjL,EAAM10N,EAAEs3G,GAAGyuE,SAAW/lL,EAAEsxC,GAAKtxC,EAAEuxC,IAAM,EACrC7C,EAAK9/C,KAAKD,IAAIqR,EAAEqxC,GAAKrxC,EAAEoxC,IACvBzC,EAAK//C,KAAKD,IAAIqR,EAAEuxC,GAAKvxC,EAAEsxC,IACvB8gL,EAAO9kL,EAAsBylE,EAAIhzC,EAAGrvE,QACpCikO,EAAWvC,EAAKvvN,MAAQwhI,EAAW2pF,WACnC4G,EAAYxC,EAAKtvN,OAASuhI,EAAW6pF,WACzCluN,EAAE60N,KAAO1D,EAAWiB,EAAKhsM,KAAOi+G,EAAW6pF,WAC3CluN,EAAE6oD,GAAK8rK,EAAW,EAAI97H,EACtB74F,EAAE8oD,GAAKl6D,KAAK6mB,IAAIm/M,EAAY,EAAI/7H,EAAc27H,GAC9Cx0N,EAAE+4I,OAAS,QACX/4I,EAAE80N,QAAUH,EACZ30N,EAAEgvN,SAAWA,EACbhvN,EAAE5M,OAAS,EACX,IACI2hO,EAAeC,EADfC,GAAgBN,EAAW/7H,EAAiBC,EAAem2H,GAAY3qF,EAAW2pF,WAEtF,GAAI1B,EACFtsN,EAAE+oF,IAAMkwC,EACR87F,EAAgBL,EAAM/lL,EAAK,EAAIsmL,GAAgB5D,EAC/C2D,EAAcN,EAAM/lL,EAAK,EAAIsmL,GAAgB,EACvB,QAAjBj1N,EAAEywN,YAAyBsE,IAAkBC,EAGvCD,GACTL,GAAO/lL,EAAK,EACZ3uC,EAAE+4I,OAAS,SAEX/4I,EAAE+4I,OAAS,UANX27E,GAAO/lL,EAAK,EACZ3uC,EAAE+4I,OAAS,OAOb/4I,EAAE+uN,SAAW2F,MACR,CAIL,GAHA10N,EAAE+oF,IAAM2rI,EACRK,EAAgB97F,EAAMvqF,EAAK,EAAIumL,GAAgB7D,EAC/C4D,EAAc/7F,EAAMvqF,EAAK,EAAIumL,GAAgB,EACvB,SAAjBj1N,EAAEywN,YAA0BsE,IAAkBC,EAG5C,GAAID,EACT97F,GAAOvqF,EAAK,EACZ1uC,EAAE+4I,OAAS,YACN,CACL/4I,EAAE+4I,OAAS,SACX,IAAIm8E,GAAcD,EAAe,EAC7BE,GAAYl8F,EAAMi8F,GAAc9D,EAChCgE,GAAYn8F,EAAMi8F,GAClBC,GAAY,IAAGl8F,GAAOk8F,IACtBC,GAAY,IAAGn8F,IAAQm8F,GAC7B,MAZEn8F,GAAOvqF,EAAK,EACZ1uC,EAAE+4I,OAAS,MAYb/4I,EAAE+uN,SAAW91F,CACf,CACAl5D,EAAG92B,KAAK,cAAejpC,EAAE+4I,QACrBi2E,GAAUuF,EAAItrL,KAAK,cAAejpC,EAAE+4I,QACxChqH,EAAEka,KAAK,YAAaowF,EAAaJ,EAAKy7F,IAAQpI,EAAehzF,EAAU3gC,GAAU,IACnF,IACO,CACLg0H,eACAC,uBAAwB8E,EAE5B,CACA,SAAS0B,EAAkBpzN,EAAGsxN,EAAiB93H,EAAW6qC,EAAYlgF,EAAKp1B,GACzE,IAAIuL,EAAQ,GACRt0B,EAAO,QACY,IAAnBhG,EAAEq1N,eAAyBr1N,EAAE/I,KAAO+I,EAAEq1N,cACtCr1N,EAAE/I,OACA+I,EAAEooG,MAAMwuC,QACV52I,EAAE/I,KAAOgkI,EAAIvE,eAAe12H,EAAE/I,KAAM+I,EAAEooG,MAAMwuC,QAE9Ct8G,EAAQq4H,EAAU3yJ,EAAE/I,KAAM+I,EAAE0wN,aAE9B,IAAInqJ,EAAKizB,EAAUnjF,OAAO,GACtBzL,EAAY,MAAP27D,EAAa,IAAM,SACX,IAAbvmE,EAAEwwN,aACa,IAAbxwN,EAAEswN,SAAmBtqN,GAAQ,MAAQhG,EAAEswN,OAAS,aACnC,IAAbtwN,EAAEuwN,SAAmBvqN,GAAQ,MAAQhG,EAAEuwN,OAAS,QAC/B,eAAjBvwN,EAAEooG,MAAMv3G,MAA0C,qBAAjBmP,EAAEooG,MAAMv3G,MAAgD,kBAAjBmP,EAAEooG,MAAMv3G,OAClFmV,IAASA,EAAO,MAAQ,IAAMhG,EAAEwwN,SAEzBc,GAAmBtxN,EAAEumE,EAAK,WAAapiB,EAChDn+C,EAAOhG,EAAE4K,EAAK,UAAY,QACJ,IAAb5K,EAAEswN,YACM,IAAbtwN,EAAEuwN,QAAsC,kBAAjBvwN,EAAEooG,MAAMv3G,OACjCmV,EAAOhG,EAAEuwN,QAEmBvqN,OAAR,IAAbhG,EAAEuwN,OAA0BvwN,EAAEswN,OAC7B,IAAMtwN,EAAEswN,OAAS,KAAOtwN,EAAEuwN,OAAS,KAC1CvwN,EAAEgG,MAAmB,IAAXhG,EAAEgG,MAAgBpQ,MAAMiI,QAAQmC,EAAEgG,QAC/CA,IAASA,EAAO,OAAS,IAAMhG,EAAEgG,WAEf,IAAhBhG,EAAEs1N,YAAsBtvN,IAASA,EAAO,OAAS,IAAMhG,EAAEs1N,WACzDvmM,GAAc,KAAT/oB,IAAgBhG,EAAEm2G,gBACX,KAAV77E,GAAcvL,EAAEmU,SACpBl9B,EAAOs0B,GAET,IAAI67E,EAAgBn2G,EAAEm2G,gBAAiB,EACvC,GAAIA,EAAe,CACjB,IAAIohB,EAASv3H,EAAE2wN,qBAAuB3wN,EAClCA,EAAEumE,EAAK,WAAapiB,IACtBozE,EAAOhxD,EAAK,SAAWgxD,EAAOhxD,EAAK,OACnCgxD,EAAOhxD,EAAK,cAAgBgxD,EAAOhxD,EAAK,UAS1CvgE,GAPAA,EAAOi1H,EAAInE,oBACT3gB,EACAohB,EACA8M,EAAWwP,UACX7zI,EAAE8oK,UAAU,IAAM,CAAC,EACnB9oK,EAAEooG,MAAMwuC,QAEExnJ,QAAQ2hO,GAAoB,SAASv7N,EAAOsgH,GAEtD,OADAx7E,EAAQq4H,EAAU78C,EAAO91G,EAAE0wN,YACpB,EACT,GACF,CACA,MAAO,CAAC1qN,EAAMs0B,EAChB,CAwKA,SAASu0L,EAAqBsB,EAAY7D,GACxC,IAAIzxF,EAAU,EACVC,EAAUq1F,EAAW/8N,OAKzB,OAJIk5N,IACFxxF,IAAY2qF,EACZ5qF,EAAUs1F,EAAW/8N,OAASoyN,GAEzB,CACLrxN,EAAG0mI,EACHzmI,EAAG0mI,EAEP,CAgBA,SAAS00F,EAAe7C,EAAaL,EAAciJ,EAAQC,GACzD,IAAIzH,EAAK,SAAS55N,GAChB,OAAOA,EAAIohO,CACb,EACItH,EAAK,SAAS75N,GAChB,OAAOA,EAAIohO,CACb,EACA7I,EAAYxjL,MAAK,SAASnpC,GACxB,IAAI+uB,EAAIgP,EAAGsI,OAAOt6C,MAClB,GAAIiU,EAAEwuN,IAAK,OAAOz/L,EAAEmU,SACpB,IAAI68B,EAAKhxC,EAAEsX,OAAO,aACd0yG,EAAS/4I,EAAE+4I,OACX+1E,EAAsB,QAAX/1E,GAAoB,EAAI,EACnC08E,EA5BR,SAAuBtF,GACrB,IAAIuF,EAAa,CAAE7iN,MAAO,EAAG9iB,KAAM,EAAG47J,OAAQ,GAAIwkE,EAAWp3E,QACzD48E,EAAaD,GAAc98H,EAAiBC,GAC5C+8H,EAAcD,EAAaD,GAAcvF,EAAW2E,QAAUj8H,GAMlE,MALqC,WAAtBs3H,EAAWp3E,SAExB48E,GAAcxF,EAAWnB,SAAW,EACpC4G,GAAezF,EAAW2E,QAAU,EAAIj8H,GAEnC,CACL68H,aACAC,aACAC,cAEJ,CAciBC,CAAc71N,GACvB46D,EAAUi0J,EAAqB7uN,EAAGssN,GAClCzxF,EAAUjgE,EAAQzmE,EAClB2mI,EAAUlgE,EAAQxmE,EAClB0hO,EAAsB,WAAX/8E,EACfhqH,EAAEsX,OAAO,QAAQ4C,KAAK,IAAK6sL,EAEzB,KAAO/H,EAAG/tN,EAAE6oD,GAAK,EAAI7oD,EAAEgvN,SAAW,GAAK,IAAMf,EAAGnzF,EAAU96H,EAAE8oD,GAAK,GAAK,IAAMilK,EAAG/tN,EAAE6oD,IAAM,IAAMolK,EAAGjuN,EAAE8oD,IAAM,KAAOilK,EAAG/tN,EAAE6oD,IAAM,IAG1H,QAAUklK,EAAGe,EAAWl2H,EAAiBiiC,GAAW,IAAMozF,EAAGr1H,EAAiBkiC,GAAW,IAAMmzF,EAAGjuN,EAAE8oD,GAAK,EAAI8vC,GAAkB,IAAMm1H,EAAGe,EAAW9uN,EAAE6oD,IAAM,KAAOolK,EAAGjuN,EAAE8oD,IAAM,IAAMilK,EAAGe,EAAWl2H,EAAiBiiC,GAAW,IAAMozF,EAAGnzF,EAAUliC,GAAkB,KAEpQ,IAAIm9H,EAAOl7F,EAAU46F,EAAOE,WACxBK,EAAOl7F,EAAU96H,EAAE60N,IAAM70N,EAAE8oD,GAAK,EAAI+vC,EACpClyE,EAAY3mB,EAAE2mB,WAAa,OACb,SAAdA,IACgB,SAAdA,GAAmC,UAAXoyH,GAC1Bh5E,EAAG92B,KAAK,cAAe,SACvB8sL,EAAOD,GAAY91N,EAAE6oD,GAAK,EAAI7oD,EAAEgvN,SAAW,EAAIn2H,GAAgB74F,EAAE6oD,GAAKgwC,GAC/C,UAAdlyE,GAAoC,QAAXoyH,IAClCh5E,EAAG92B,KAAK,cAAe,OACvB8sL,EAAOD,EAAW91N,EAAE6oD,GAAK,EAAI7oD,EAAEgvN,SAAW,EAAIn2H,EAAe74F,EAAE6oD,GAAKgwC,IAGxE94B,EAAGlqE,KAAK42K,EAAara,aAAc27D,EAAGgI,GAAO9H,EAAG+H,IAC5Ch2N,EAAEgvN,WACJjgM,EAAEsX,OAAO,aAAaxwC,KACpB42K,EAAara,aACb27D,EAAG0H,EAAOG,YAAcH,EAAOC,WAAa78H,EAAegiC,GAC3DozF,EAAGnzF,EAAU96H,EAAE60N,IAAM70N,EAAE8oD,GAAK,EAAI+vC,IAElC9pE,EAAEsX,OAAO,QAAQxwC,KACfonL,EAAQ3O,QACRy/C,EAAG0H,EAAOG,aAAeH,EAAOC,WAAa,GAAK11N,EAAEgvN,SAAW,EAAIn0F,GACnEozF,EAAGnzF,EAAU96H,EAAE8oD,GAAK,EAAI,GACxBilK,EAAG/tN,EAAEgvN,UACLf,EAAGjuN,EAAE8oD,GAAK,IAGhB,GACF,CACA,SAAS2gK,EAAWzpN,EAAGw5F,GACrB,IAAI7pG,EAAQqQ,EAAErQ,MACVy4G,EAAQpoG,EAAEooG,OAAS,CAAC,EACpBgvC,EAAMp3I,EAAEysH,GAAG,GACXA,EAAKzsH,EAAEysH,GAAG98H,IAAU,CAAC,EACzB,SAASsmO,EAAK5nM,GACZ,OAAOA,GAAKw7D,EAAUx7D,IAAY,IAANA,CAC9B,CACA,IAAI6nM,EAAStgO,MAAMiI,QAAQlO,GAAS,SAASgkI,EAASC,GACpD,IAAIvlG,EAAI4sG,EAAI1H,WAAW6jB,EAAKznJ,EAAOgkI,GACnC,OAAOsiG,EAAK5nM,GAAKA,EAAI4sG,EAAIxH,cAAc,CAAC,EAAGrrB,EAAO,GAAIwrB,EACxD,EAAI,SAASD,EAASC,GACpB,OAAOqH,EAAIxH,cAAchH,EAAIrkB,EAAOurB,EAASC,EAC/C,EACA,SAAS5wH,EAAK/V,EAAK0mI,EAASC,GAC1B,IAAI98G,EAAMo/M,EAAOviG,EAASC,GACtBqiG,EAAKn/M,KAAM9W,EAAE/S,GAAO6pB,EAC1B,CA4BA,GA3BA9T,EAAK,YAAa,KAAM,aACxBA,EAAK,UAAW,MAAO,sBACvBA,EAAK,cAAe,MAAO,0BAC3BA,EAAK,aAAc,MAAO,0BAC1BA,EAAK,WAAY,MAAO,wBACxBA,EAAK,YAAa,MAAO,yBACzBA,EAAK,aAAc,MAAO,0BAC1BA,EAAK,YAAa,MAAO,yBACzBA,EAAK,cAAe,MAAO,2BAC3BA,EAAK,aAAc,MAAO,yBAC1BA,EAAK,YAAa,MAAO,oBACzBhD,EAAEkvN,OAAuB,MAAd11H,GAAmC,YAAdA,GAAiD,MAAtB4O,EAAMk2D,YAAsBt+J,EAAEo3G,GAAG2uE,SAAW/lL,EAAEoxC,GAAKpxC,EAAEqxC,IAAM,EAAIrxC,EAAEs3G,GAAGyuE,SAAW/lL,EAAEsxC,GAAKtxC,EAAEuxC,IAAM,EACzJvxC,EAAEoxC,GAAK6pF,EAAI9J,UAAUnxH,EAAEoxC,GAAI,EAAGpxC,EAAEo3G,GAAG8V,SACnCltH,EAAEqxC,GAAK4pF,EAAI9J,UAAUnxH,EAAEqxC,GAAI,EAAGrxC,EAAEo3G,GAAG8V,SACnCltH,EAAEsxC,GAAK2pF,EAAI9J,UAAUnxH,EAAEsxC,GAAI,EAAGtxC,EAAEs3G,GAAG4V,SACnCltH,EAAEuxC,GAAK0pF,EAAI9J,UAAUnxH,EAAEuxC,GAAI,EAAGvxC,EAAEs3G,GAAG4V,cACf,IAAhBltH,EAAEgpN,YACJhpN,EAAEswN,OAAS,WAAYtwN,EAAIA,EAAEswN,OAASnL,EAAK9nB,eAAer9L,EAAEo3G,GAAIp3G,EAAEgpN,UAAW5gH,EAAM+tH,cACnFn2N,EAAE+oK,KAAO/oK,EAAEo3G,GAAGwsE,IAAI5jL,EAAEgpN,iBAEF,IAAhBhpN,EAAEipN,YACJjpN,EAAEuwN,OAAS,WAAYvwN,EAAIA,EAAEuwN,OAASpL,EAAK9nB,eAAer9L,EAAEs3G,GAAIt3G,EAAEipN,UAAW7gH,EAAMguH,cACnFp2N,EAAEgpK,KAAOhpK,EAAEs3G,GAAGssE,IAAI5jL,EAAEipN,iBAEF,IAAhBjpN,EAAEipK,gBAAqC,IAAbjpK,EAAEwwN,SAC9BxwN,EAAEwwN,OAAS1hO,OAAOkR,EAAEipK,aAEjBzpI,MAAMx/B,EAAEq2N,SAAyB,QAAdr2N,EAAEo3G,GAAGvmH,MAAkBmP,EAAEq2N,MAAQ,GAAI,CAC3D,IAAIC,EAASnR,EAAKl0B,SAASjxL,EAAEo3G,GAAIp3G,EAAEo3G,GAAGksE,IAAItjL,EAAEq2N,MAAO,SAASrwN,UAC1C,IAAdhG,EAAEu2N,QACJv2N,EAAEswN,QAAU,KAAOgG,EAAS,OAASnR,EAAKl0B,SAASjxL,EAAEo3G,GAAIp3G,EAAEo3G,GAAGksE,IAAItjL,EAAEu2N,SAAU,SAASvwN,KAClFhG,EAAEswN,QAAU,SAAWgG,EACZ,MAAd98H,IAAmBx5F,EAAEgwD,UAAY,EACvC,CACA,IAAKxwB,MAAMx/B,EAAEw2N,SAAyB,QAAdx2N,EAAEs3G,GAAGzmH,MAAkBmP,EAAEw2N,MAAQ,GAAI,CAC3D,IAAIC,EAAStR,EAAKl0B,SAASjxL,EAAEs3G,GAAIt3G,EAAEs3G,GAAGgsE,IAAItjL,EAAEw2N,MAAO,SAASxwN,UAC1C,IAAdhG,EAAE02N,QACJ12N,EAAEuwN,QAAU,KAAOkG,EAAS,OAAStR,EAAKl0B,SAASjxL,EAAEs3G,GAAIt3G,EAAEs3G,GAAGgsE,IAAItjL,EAAE02N,SAAU,SAAS1wN,KAClFhG,EAAEuwN,QAAU,SAAWkG,EACZ,MAAdj9H,IAAmBx5F,EAAEgwD,UAAY,EACvC,CACA,IAAI2mK,EAAW32N,EAAEk7F,WAAal7F,EAAEooG,MAAMlN,UAStC,OARIy7H,GAAyB,QAAbA,KAEiB,KAD/BA,EAAW/gO,MAAMiI,QAAQ84N,GAAYA,EAAWA,EAAStgO,MAAM,MAClD5G,QAAQ,OAAauQ,EAAEswN,YAAS,IACd,IAA3BqG,EAASlnO,QAAQ,OAAauQ,EAAEuwN,YAAS,IACd,IAA3BoG,EAASlnO,QAAQ,OAAauQ,EAAEwwN,YAAS,IACX,IAA9BmG,EAASlnO,QAAQ,UAAgBuQ,EAAEgG,UAAO,IACZ,IAA9B2wN,EAASlnO,QAAQ,UAAgBuQ,EAAE/I,UAAO,IAEzC+I,CACT,CACA,SAASorN,EAAiBr4G,EAAI22G,EAAel7H,GAC3C,IAMI4oB,EAAIE,EANJ9qH,EAAYgiG,EAAKhiG,UACjB63I,EAAa71C,EAAK61C,WAClB6N,EAAK7N,EAAW4N,MAChBg+D,EAAMzhH,EAAK/8E,MACXmlN,IAAUlN,EAAc3B,WACxB8O,IAAUnN,EAAc1B,WAG5B,GADAx7N,EAAUq6C,UAAU,cAAc3D,SAC5B2zL,GAASD,EAAf,CACA,IAAI7E,EAAgBnyH,EAAOtqG,QAAQ+uI,EAAWxqB,aAAcwqB,EAAWzqB,eACvE,GAAIg9G,EAAO,CACT,IACIE,EAAaC,EADbhP,EAAa2B,EAAc3B,WAE/B3wG,EAAK2wG,GAAcA,EAAW3wG,GAGhB,YAFdE,EAAKywG,GAAcA,EAAWzwG,IACfolD,WAEbo6D,EAAc7mB,EAAIqY,SAClByO,EAAc9mB,EAAIsY,WAElBuO,EAAc1/G,EAAG2uE,QAAUgiC,EAAW5zN,EACtC4iO,EAAcz/G,EAAGyuE,QAAUgiC,EAAW3zN,GAExC,IAKI4iO,EAAOC,EALPC,EAAiB3oI,EAAUoG,YAAYozH,EAAWpmN,MAAOowN,GAAiB,IAAMnyH,EAAOpB,SAASuzH,GAAiBhK,EAAWpmN,MAC5Hw1N,EAAQ7/G,EAAG2hC,UACXm+E,EAAa9/G,EAAGklD,eAChB66D,EAAS//G,EAAGilD,YAAc26D,EAC1BI,EAAQnS,EAAK3d,cAAcz0F,EAAIuE,GAEnC,IAAiC,IAA7B6/G,EAAM1nO,QAAQ,YAAiD,IAA7B0nO,EAAM1nO,QAAQ,UAAkB,CAKpE,IAJiC,IAA7B0nO,EAAM1nO,QAAQ,YAChBunO,EAAQM,EACRL,EAAYH,IAEmB,IAA7BK,EAAM1nO,QAAQ,UAAkB,CAClC,IAAI8nO,EAAWjgH,EAAG8hC,kBACdo+E,EAAWlgH,EAAG+hC,kBACA,SAAd/hC,EAAGyhC,SACLw+E,EAAW3oO,KAAK8mB,IAAI6hN,EAAUjgH,EAAG/mH,UACjCinO,EAAW5oO,KAAK6mB,IAAI+hN,EAAUlgH,EAAG/mH,WAEnCymO,EAAQ9kF,EAAG/6H,EAAIogN,EAAWrlF,EAAGvjH,EAC7BsoM,EAAY/kF,EAAG/6H,EAAIqgN,EAAWtlF,EAAGvjH,CACnC,CACAniC,EAAUe,OAAO,OAAQ,gBAAgB07C,KAAK,CAC5CoI,GAAI2lL,EACJrrK,GAAIsrK,EACJ1lL,GAAIwlL,EACJnrK,GAAImrK,EACJ,eAAgBK,EAChBz4H,OAAQ04H,EACR,mBAAoBp6C,EAAQ1N,UAAUj4D,EAAGmlD,UAAW26D,KACnDhuL,QAAQ,aAAa,GAAMA,QAAQ,SAAS,GAC/C58C,EAAUe,OAAO,OAAQ,gBAAgB07C,KAAK,CAC5CoI,GAAI2lL,EACJrrK,GAAIsrK,EACJ1lL,GAAIwlL,EACJnrK,GAAImrK,EACJ,eAAgBK,EAAa,EAC7Bz4H,OAAQozH,IACP3oL,QAAQ,aAAa,GAAMA,QAAQ,SAAS,EACjD,EACiC,IAA7B+tL,EAAM1nO,QAAQ,WAChBjD,EAAUe,OAAO,SAAU,gBAAgB07C,KAAK,CAC9C2L,GAAI0iL,GAAqB,UAAZhgH,EAAGynC,KAAmBq4E,GAAcA,GACjDviL,GAAIkiL,EACJ38M,EAAGg9M,EACHp0N,KAAMq0N,IACLjuL,QAAQ,aAAa,EAE5B,CACA,GAAIytL,EAAO,CACT,IACIY,EAAaC,EADb1P,EAAa0B,EAAc1B,WAE/B5wG,EAAK4wG,GAAcA,EAAW5wG,GAC9BE,EAAK0wG,GAAcA,EAAW1wG,GAEhB,WADFF,EAAGslD,WAEb+6D,EAAcxnB,EAAIqY,SAClBoP,EAAcznB,EAAIsY,WAElBkP,EAAcrgH,EAAG2uE,QAAUiiC,EAAW7zN,EACtCujO,EAAcpgH,EAAGyuE,QAAUiiC,EAAW5zN,GAExC,IAKIujO,EAAOC,EALPC,EAAiBtpI,EAAUoG,YAAYqzH,EAAWrmN,MAAOowN,GAAiB,IAAMnyH,EAAOpB,SAASuzH,GAAiB/J,EAAWrmN,MAC5Hm2N,EAAQ1gH,EAAG6hC,UACX8+E,EAAa3gH,EAAGolD,eAChBw7D,EAAS5gH,EAAGmlD,YAAcs7D,EAC1BI,EAAQ9S,EAAK3d,cAAcz0F,EAAIqE,GAEnC,IAAiC,IAA7B0gH,EAAMroO,QAAQ,YAAiD,IAA7BqoO,EAAMroO,QAAQ,UAAkB,CAKpE,IAJiC,IAA7BqoO,EAAMroO,QAAQ,YAChBkoO,EAAQM,EACRL,EAAYF,IAEmB,IAA7BI,EAAMroO,QAAQ,UAAkB,CAClC,IAAIyoO,EAAW9gH,EAAGgiC,kBACd++E,EAAW/gH,EAAGiiC,kBACA,SAAdjiC,EAAG2hC,SACLm/E,EAAWtpO,KAAK8mB,IAAIwiN,EAAU9gH,EAAG7mH,UACjC4nO,EAAWvpO,KAAK6mB,IAAI0iN,EAAU/gH,EAAG7mH,WAEnConO,EAAQzlF,EAAG53H,GAAK,EAAI69M,GAAYjmF,EAAGrzI,EACnC+4N,EAAY1lF,EAAG53H,GAAK,EAAI49M,GAAYhmF,EAAGrzI,CACzC,CACArS,EAAUe,OAAO,OAAQ,gBAAgB07C,KAAK,CAC5CoI,GAAIomL,EACJ9rK,GAAI8rK,EACJlmL,GAAIomL,EACJ/rK,GAAIgsK,EACJ,eAAgBG,EAChBp5H,OAAQq5H,EACR,mBAAoB/6C,EAAQ1N,UAAUn4D,EAAGqlD,UAAWs7D,KACnD3uL,QAAQ,aAAa,GAAMA,QAAQ,SAAS,GAC/C58C,EAAUe,OAAO,OAAQ,gBAAgB07C,KAAK,CAC5CoI,GAAIomL,EACJ9rK,GAAI8rK,EACJlmL,GAAIomL,EACJ/rK,GAAIgsK,EACJ,eAAgBG,EAAa,EAC7Bp5H,OAAQozH,IACP3oL,QAAQ,aAAa,GAAMA,QAAQ,SAAS,EACjD,EACiC,IAA7B0uL,EAAMroO,QAAQ,WAChBjD,EAAUe,OAAO,SAAU,gBAAgB07C,KAAK,CAC9C2L,GAAI6iL,EACJ5iL,GAAIojL,GAAqB,QAAZ7gH,EAAG2nC,KAAiBg5E,GAAcA,GAC/C39M,EAAG29M,EACH/0N,KAAMg1N,IACL5uL,QAAQ,aAAa,EAE5B,CA3H6B,CA4H/B,CAYA,SAAS+hL,EAAcp4G,EAAI03G,GACzB,OAAKA,GACDA,EAAezC,aAAej1G,EAAG23G,aAAa1C,YAAcyC,EAAe1C,aAAeh1G,EAAG23G,aAAa3C,UAEhH,CACA,SAASp1D,EAAUz7I,EAAGpY,GACpB,OAAO2tK,EAAa9Z,UAAUz7I,GAAK,GAAI,CACrCpY,MACA8zJ,YAAa,CAAC,KAAM,MAAO,MAAO,IAAK,IAAK,KAAM,IAAK,MAE3D,CAkBA,SAAS24D,EAAStiF,EAAUoiF,EAAchnF,GACxC,IAAI17E,EAAK0iK,EAAapiF,EAAW,KAC7BnyH,EAAMu0M,EAAapiF,EAAW,OAC9BmO,EAAMi0E,EAAa5+F,GAAG,GAC1B,GAAgB,aAAZ9jE,EAAG93D,MAAmC,kBAAZ83D,EAAG93D,KAA0BimB,EAAM6xC,EAAGkgG,eAAe/xI,QAC9E,GAAgB,SAAZ6xC,EAAG93D,KAAiB,CAC3B,IAAIunO,EAAkB/M,EAAajjH,MAAM6gC,EAAW,mBACpD,GAAImvF,EAAiB,CACnB,IAAIp4N,EAAIqrN,EAAa5+F,GAAG4+F,EAAa17N,OACjCkjB,EAAQ7S,EAAEipI,EAAW,cACX,IAAVp2H,IAAkBA,EAAQ7S,EAAEipI,IAChC,IAAIl5I,EAAMiQ,EAAEipI,EAAW,YACX,IAARl5I,IAAgBA,EAAMiQ,EAAEipI,IAC5B,IAAI52G,EAAOtiC,EAAM8iB,EACO,QAApBulN,EACFthN,GAAOub,EACsB,WAApB+lM,IACTthN,GAAOub,EAAO,EAElB,CACAvb,EAAM6xC,EAAG+6H,IAAI5sK,EACf,CAMA,OALIsgI,GAAOA,EAAI98H,GAAK88H,EAAI98H,EAAE+9M,YAAc1vK,EAAGuoF,MACd,UAAvB7M,EAAWi0F,SAAiD,UAA1Bj0F,EAAWk0F,aAC/CzhN,GAAOsgI,EAAI98H,EAAEk+M,OAGV1hN,CACT,CACA,SAASg1M,EAAa/4G,GACpB,OAAOA,EAAGouE,UAAYpuE,EAAGvlE,SAC3B,CACA,SAASw+K,EAAcj5G,GACrB,OAAOA,EAAGmuE,WAAanuE,EAAGxlE,UAC5B,CACA,SAASD,EAAsBylE,EAAIriH,GACjC,IAAI2zI,EAAatxB,EAAGonB,YAChB9sF,EAAO38C,EAAK48C,wBACZ8D,EAAK/D,EAAK9mB,KACV+qB,EAAKjE,EAAKjnB,IACVirB,EAAKD,EAAK/D,EAAKxqC,MACf0uC,EAAKD,EAAKjE,EAAKvqC,OACfonJ,EAAKjvB,EAAI1pB,iBAAiB8yB,EAAW8wB,cAAhCl6B,CAA+C7pF,EAAIE,GACxD84G,EAAKnvB,EAAI1pB,iBAAiB8yB,EAAW8wB,cAAhCl6B,CAA+C5pF,EAAIE,GACxDknL,EAAKvuE,EAAG,GACRwuE,EAAKxuE,EAAG,GACRyuE,EAAKvuE,EAAG,GACRwuE,EAAKxuE,EAAG,GACZ,MAAO,CACLj2J,EAAGskO,EACHrkO,EAAGskO,EACH71N,MAAO81N,EAAKF,EACZ31N,OAAQ81N,EAAKF,EACbtyM,IAAKx3B,KAAK8mB,IAAIgjN,EAAIE,GAClBryM,KAAM33B,KAAK8mB,IAAI+iN,EAAIE,GACnBtyM,MAAOz3B,KAAK6mB,IAAIgjN,EAAIE,GACpBryM,OAAQ13B,KAAK6mB,IAAIijN,EAAIE,GAEzB,CACF,IAIEC,GAA8B5+L,EAAW,CAC3C,2CAA2Ct6B,EAASkuB,GAElD,IAAIotG,EAAMtN,KACN/tB,EAAStC,IACTwsE,EAAiBvC,KAAmBuC,eACxCj8I,EAAOluB,QAAU,SAAkCuiK,EAAQlpC,EAAS72B,EAAQ3T,GAC1EA,EAAOA,GAAQ,CAAC,EAChB,IAAIsqI,EAAY9/F,EAAQx+B,OACxB,SAASu+H,EAAgB9vL,GAClBulD,EAAK6K,KAAKpwD,KACbulD,EAAK6K,KAAKpwD,GAAQ6vL,EAAY9/F,EAAQx+B,OAAOnB,KAAKpwD,GAAQ+vF,EAAQ3/B,KAAKpwD,GAE3E,CACI+vF,GAAW8wC,EAAe9wC,EAAQx/B,aAC/BhL,EAAK6K,OAAM7K,EAAK6K,KAAO,CAAC,GAC7B0/H,EAAgB,QAChBA,EAAgB,UAChBA,EAAgB,SAChBA,EAAgB,UAChBA,EAAgB,SAChBA,EAAgB,WACZD,GACGtqI,EAAK3rE,UAAS2rE,EAAK3rE,QAAU+8E,EAAOtqG,QAAQ0jI,EAAQx+B,OAAO33E,QAASm2G,EAAQpf,gBAC5EprB,EAAKqL,cAAarL,EAAKqL,YAAcm/B,EAAQx+B,OAAOX,cAEpDrL,EAAK3rE,UAAS2rE,EAAK3rE,QAAUm2G,EAAQpf,gBAG9CzX,EAAO,qBAAsB3T,EAAK3rE,SAClCs/E,EAAO,yBAA0B3T,EAAKqL,aACtCsI,EAAO,wBAAyB3T,EAAKuL,YACrCkhC,EAAIp4B,WAAWV,EAAQ,kBAAmB3T,EAAK6K,MAC/C8I,EAAO,mBAAoB3T,EAAK5N,MAClC,CACF,IAIEo4I,GAAiC/+L,EAAW,CAC9C,8CAA8Ct6B,EAASkuB,GAErD,IAAIotG,EAAMtN,KACNsrG,EAA2BJ,KAC3Bh9G,EAAmB3iB,IACvBrrE,EAAOluB,QAAU,SAAoCw7I,EAAU33C,GAI7Dy1H,EAAyB99E,EAAU33C,GAHnC,SAAgBv6D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOg5C,EAAU33C,EAAWqY,EAAkB5yE,EAAMuuD,EACjE,GAEF,CACF,IAIE0hI,GAAoBj/L,EAAW,CACjC,gCAAgCt6B,EAASkuB,GAEvC,IAAIotG,EAAMtN,KACNrrB,EAAarI,IACbg/H,EAA2BJ,KAC/BhrM,EAAOluB,QAAU,SAAwB2jG,EAASC,EAAUw3C,EAAc9kF,GAIxE,IAAIu4B,EAAOysC,EAAInkC,WAAW,CAAC,EAAG7gC,EAAO2jC,YACjC2J,EAAS4S,gBAAe3nB,EAAKuL,YAAc,GAC/Ck/H,EAAyB31H,EAASC,GALlC,SAAgBt6D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOmB,EAASC,EAAUjB,EAAYr5D,EAAMuuD,EACzD,GAGoDhJ,EACtD,CACF,IAIE2qI,GAA6Bl/L,EAAW,CAC1C,0CAA0Ct6B,EAASkuB,GAEjD,IAAIotG,EAAMtN,KACN9R,EAAmB3iB,IACvBrrE,EAAOluB,QAAU,SAAiCw7I,EAAU33C,GAC1D,SAASrB,EAAOl5D,EAAMuuD,GACpB,YAAwB,IAApBgM,EAAUv6D,GAAyBu6D,EAAUv6D,GAC1CgyF,EAAI94B,OAAOg5C,EAAU33C,EAAWqY,EAAkB5yE,EAAMuuD,EACjE,CAGA,OAFA2K,EAAO,aACPA,EAAO,iBACAA,EAAO,YAChB,CACF,IAIEi3H,GAA2Bn/L,EAAW,CACxC,uCAAuCt6B,EAASkuB,GAE9C,IAAIotG,EAAMtN,KACN9R,EAAmB3iB,IACnBmgI,EAA0BF,KAC1BF,EAA2BJ,KAC/BhrM,EAAOluB,QAAU,SAA8Bw7I,EAAU33C,GACvD,SAASrB,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOg5C,EAAU33C,EAAWqY,EAAkB5yE,EAAMuuD,EACjE,CACgB6hI,EAAwBl+E,EAAU33C,KAEhDrB,EAAO,iBACPA,EAAO,kBAGQ,WADFA,EAAO,aACKA,EAAO,mBAClC,IAAIm3H,EAAY91H,EAAUoyC,KAAK,UAC3B2jF,EAAS/1H,EAAUoyC,KAAK,OACxB4jF,EAASh2H,EAAUoyC,KAAK,OACxB92I,EAAM0kG,EAAU+gC,iBAAiBn4I,OACV,SAAvBo3G,EAAUjK,YAAyB+/H,GAAaC,GAAUC,IAAmB,IAAR16N,IAAcw6N,GAAaC,IAAWC,GAAkB,IAAR16N,KACvH0kG,EAAUjK,SAAW,OAEvB0/H,EAAyB99E,EAAU33C,EAAWrB,GAC9C84B,EAAIp4B,WAAWV,EAAQ,4BAA6BqB,EAAU5J,WAAWP,KAC3E,CACF,IAIEogI,GAAgBx/L,EAAW,CAC7B,4BAA4Bt6B,EAASkuB,GAEnC,IAAIotG,EAAMtN,KACN5O,EAAWxE,KA6Bf,SAASm/G,EAAMzmG,EAAWxG,EAAIyG,EAAQ97H,GACpCA,EAAKA,GAAM6jI,EAAI31D,SACX1vE,MAAMiI,QAAQo1H,KAChBxG,EAAG,GAAGyG,GAAU97H,EAAG67H,GAEvB,CAjCAplG,EAAOluB,QAAU,SAAcozG,GAC7B,IAAIw4B,EAAWx4B,EAAGw4B,SACdlH,EAAatxB,EAAGonB,YACpB,SAASw/F,EAAoBC,GAC3B,OAAO,SAAS9iN,GACd,OAAOmkH,EAAI53B,gBAAgB,CAAEnI,UAAWpkF,GAAO,CAAE4sF,QAASk2H,EAAOl2H,SAAW2gC,EAC9E,CACF,CACA,IAAK,IAAIr2I,EAAI,EAAGA,EAAIu9I,EAASn/I,OAAQ4B,IAAK,CACxC,IAAIy+H,EAAK8e,EAASv9I,GACdo6G,EAAQqkB,EAAG,GAAGrkB,MAClB,IAAI2W,EAASN,QAAQrW,EAAO,YAA5B,CACA,IAAIyxH,EAAS96G,EAASN,QAAQrW,EAAO,SAAWsxH,EAAQz+F,EAAI3H,UAC5DumG,EAAOzxH,EAAMlN,UAAWuxB,EAAI,KAAMktG,EAAoBvxH,IAClDA,EAAM+N,eAAe0jH,EAAOzxH,EAAM+N,cAAesW,EAAI,MACpDrkB,EAAMxO,aACXigI,EAAOzxH,EAAMxO,WAAW/2E,QAAS4pG,EAAI,OACrCotG,EAAOzxH,EAAMxO,WAAWC,YAAa4yB,EAAI,OACzCotG,EAAOzxH,EAAMxO,WAAWP,KAAKrlG,KAAMy4H,EAAI,OACvCotG,EAAOzxH,EAAMxO,WAAWP,KAAK13F,MAAO8qH,EAAI,OACxCotG,EAAOzxH,EAAMxO,WAAWP,KAAK1B,OAAQ80B,EAAI,OACzCotG,EAAOzxH,EAAMxO,WAAWP,KAAK9gC,OAAQk0D,EAAI,OACzCotG,EAAOzxH,EAAMxO,WAAWP,KAAKhhF,MAAOo0G,EAAI,OACxCotG,EAAOzxH,EAAMxO,WAAWP,KAAKl+E,QAASsxG,EAAI,OAC1CotG,EAAOzxH,EAAMxO,WAAWG,WAAY0yB,EAAI,OACxCotG,EAAOzxH,EAAMxO,WAAWhZ,MAAO6rC,EAAI,OAdc,CAenD,CACF,CAOF,IAIEqtG,GAAgB7/L,EAAW,CAC7B,6BAA6Bt6B,EAASkuB,GAEpC,IAAIkxF,EAAWxE,KACXh0G,EAAQ0+M,KAAgB1+M,MAC5BsnB,EAAOluB,QAAU,SAAeozG,EAAIk9F,EAAKxlD,GACvC,IAAIsvE,EAAkBh7G,EAASJ,mBAAmB,cAAe,UAA3CI,CAAsDhM,EAAIA,EAAGoqC,YAInF,SAAS68E,IACPjnH,EAAGiqB,KAAK,eAAgB,CAAE9pI,OAAQ6/G,EAAGoqC,WAAY1rI,MAAOw+L,GAC1D,MALgB,IAAZxlD,GACFlkJ,EAAMwsG,EAAIk9F,EAAKxlD,GAAS,GAKtB13C,EAAGoqC,YAAc8yD,GAAOA,EAAIh+L,SAC1B8nN,GAAmBA,EAAgBj+L,KACrCi+L,EAAgBj+L,KAAKk+L,GAChBA,IACH/pB,EAAIgqB,0BAA0BhqB,EAAIgqB,2BAE1C,CACF,IAIEC,GAAajgM,EAAW,CAC1B,6BAA6Bt6B,EAASkuB,GAEpC,IAAIkQ,EAAKD,IACLm9F,EAAMtN,KACN4iF,EAAcH,KACd5pC,EAAUe,KACV1rD,EAAmB3iB,IACnBihI,EAAclV,KAClBp3L,EAAOluB,QAAU,CACf4+G,WAAY,YACZtnH,KAAM,KACNkiG,UAAWT,IACX8jB,OAAQ,CACNvmD,OAAQ4lD,GAEVvZ,WAAYrI,IACZ4hB,mBACA43B,2BAA4BulF,KAC5Bn8G,eAAgBq8G,KAChB98E,qBAAsBg9E,KACtB3yE,KAAMgzE,KACNzxD,oBAAqBxB,EAAQwB,oBAC7BG,WAAY3B,EAAQ2B,WACpBI,MAAO/B,EAAQ+B,MACfL,WAAY1B,EAAQ0B,WACpBgB,sBAAuB1C,EAAQ0C,sBAC/BkxD,gBAaF,SAAyBhyH,EAAOorB,EAAUvqF,GACxC,OAAOgyF,EAAI1H,WAAWnrB,EAAOorB,EAAU,cAAgBvqF,EACzD,EAdEoxL,cAeF,SAAuBjyH,EAAOi8B,EAAY7Q,GAIxC,OAAOyH,EAAI1H,WAAWnrB,EAAOorB,EAAU,aAHvC,SAAiB18G,GACf,OAAOmkH,EAAI53B,gBAAgB,CAAEnI,UAAWpkF,GAAO,CAAE4sF,QAAS0E,EAAM1E,SAAW2gC,EAC7E,GAEF,EAnBE99H,MAAO4zN,EAAY5zN,MACnBypM,QAASO,EAAYP,QACrBggB,UAAWmK,EAAYnK,UACvBsK,YAGF,SAAqBC,GACnB,IAAIn0L,EAAY60F,EAAI1F,cAAcglG,GAAwBA,EAAuBx8L,EAAGsI,OAAOk0L,GAC3Fn0L,EAAUS,UAAU,eAAe3D,SACnCkD,EAAUS,UAAU,cAAc3D,QACpC,EANE4I,MAAOguL,KAgBX,IAIEU,GAAmBvgM,EAAW,CAChC,wCAAwCt6B,GAEtCA,EAAQ86N,WAAa,SAASlhI,GAC5B,MAAoB,UAAbA,GAAqC,WAAbA,CACjC,EACA55F,EAAQ+6N,SAAW,SAASnhI,GAC1B,MAAoB,mBAAbA,GAA8C,iBAAbA,GAA4C,aAAbA,GAAwC,aAAbA,GAAwC,eAAbA,CAC/H,EACA55F,EAAQg7N,SAAW,SAASphI,GAC1B,MAAoB,aAAbA,GAAwC,iBAAbA,CACpC,EACA55F,EAAQi7N,SAAW,SAASrhI,GAC1B,MAAoB,WAAbA,GAAsC,aAAbA,GAAwC,aAAbA,GAAwC,eAAbA,CACxF,EACA55F,EAAQk7N,SAAW,SAASthI,GAC1B,MAAoB,UAAbA,GAAqC,mBAAbA,GAA8C,iBAAbA,CAClE,EACA55F,EAAQm7N,mBAAqB,SAASvhI,GACpC,OAAO55F,EAAQk7N,SAASthI,IAAa55F,EAAQi7N,SAASrhI,EACxD,CACF,IAIEwhI,GAA4B9gM,EAAW,CACzC,+BAA+Bt6B,EAASkuB,GAEtCA,EAAOluB,QAAU,SAAyBozG,GACxC,IAAIsxB,EAAatxB,EAAGonB,YAChBkK,EAAW4T,WAAa5T,EAAW4T,UAAUjkJ,QAC/CqwI,EAAW4T,UAAU9uG,MAAK,SAASnpC,GAC7BA,EAAEg7N,MAAMh7N,EAAEg7N,KAAKzxM,MAAM,CAAE5nB,OAAO,EAAM8hC,OAAO,GACjD,GAEJ,CACF,IAIEw3L,GAAmBhhM,EAAW,CAChC,wBAAwBt6B,EAASkuB,GAE/BA,EAAOluB,QAAU,CACfygI,KAAM,CACJv9H,MAAO,MACPC,OAAQ,IACRyM,KAAM,sVACNiP,UAAW,0BAEb08M,KAAM,CACJr4N,MAAO,MACPC,OAAQ,IACRyM,KAAM,yTACNiP,UAAW,0BAEb,eAAgB,CACd3b,MAAO,IACPC,OAAQ,IACRyM,KAAM,obACNiP,UAAW,0BAEb28M,QAAS,CACPt4N,MAAO,IACPC,OAAQ,IACRyM,KAAM,4MACNiP,UAAW,0BAEb48M,IAAK,CACHv4N,MAAO,IACPC,OAAQ,IACRyM,KAAM,8KACNiP,UAAW,0BAEb68M,UAAW,CACTx4N,MAAO,IACPC,OAAQ,IACRyM,KAAM,qHACNiP,UAAW,0BAEb88M,WAAY,CACVz4N,MAAO,IACPC,OAAQ,IACRyM,KAAM,qEACNiP,UAAW,0BAEb+8M,UAAW,CACT14N,MAAO,IACPC,OAAQ,IACRyM,KAAM,uaACNiP,UAAW,0BAEbg9M,cAAe,CACb34N,MAAO,KACPC,OAAQ,IACRyM,KAAM,wDACNiP,UAAW,0BAEbi9M,gBAAiB,CACf54N,MAAO,KACPC,OAAQ,IACRyM,KAAM,wGACNiP,UAAW,0BAEbk9M,WAAY,CACV74N,MAAO,KACPC,OAAQ,IACRyM,KAAM,qMACNiP,UAAW,0BAEb,SAAU,CACR3b,MAAO,IACPC,OAAQ,IACRyM,KAAM,wcACNiP,UAAW,0BAEb,YAAa,CACX3b,MAAO,IACPC,OAAQ,IACRyM,KAAM,ogBACNiP,UAAW,0BAEbm9M,OAAQ,CACN94N,MAAO,IACPC,OAAQ,IACRyM,KAAM,6dACNiP,UAAW,0BAEbo9M,MAAO,CACL/4N,MAAO,IACPC,OAAQ,IACRyM,KAAM,qdACNiP,UAAW,0BAEbq9M,SAAU,CACRh5N,MAAO,MACPC,OAAQ,IACRyM,KAAM,2bACNiP,UAAW,0BAEbs9M,KAAM,CACJj5N,MAAO,MACPC,OAAQ,IACRyM,KAAM,uZACNiP,UAAW,0BAEbu9M,aAAc,CACZl5N,MAAO,GACPC,OAAQ,GACRyM,KAAM,s0BACNiP,UAAW,2BAEbw9M,eAAgB,CACdn5N,MAAO,GACPC,OAAQ,GACRyM,KAAM,uYACNiP,UAAW,yBAEby9M,MAAO,CACLp5N,MAAO,KACPC,OAAQ,IACRyM,KAAM,qiBACNiP,UAAW,0BAEb09M,UAAW,CACTr5N,MAAO,IACPC,OAAQ,IACRyM,KAAM,2YACNiP,UAAW,0BAEb29M,SAAU,CACRt5N,MAAO,GACPC,OAAQ,GACRyM,KAAM,8eACNiP,UAAW,2BAEb49M,SAAU,CACRv5N,MAAO,GACPC,OAAQ,GACRyM,KAAM,4EACNiP,UAAW,2BAEb69M,WAAY,CACVx5N,MAAO,GACPC,OAAQ,GACRyM,KAAM,yPACNiP,UAAW,2BAEb89M,WAAY,CACVz5N,MAAO,GACPC,OAAQ,GACRyM,KAAM,0OACNiP,UAAW,2BAEb+9M,UAAW,CACT15N,MAAO,IACPC,OAAQ,IACRyM,KAAM,6LACNiP,UAAW,8BAEbg+M,OAAQ,CACN35N,MAAO,KACPC,OAAQ,KACRyM,KAAM,kQACNiP,UAAW,uBAEbi+M,cAAe,CACbxlO,KAAM,gBACN+vC,IAAK,CACH,iEACA,kCACA,mBACA,6EACA,iDACA,gDACA,gDACA,gDACA,gDACA,gDACA,uFACA,uFACA,uFACA,yFACA,QACA,UACAp0C,KAAK,KAGb,IAIE8pO,GAAqBziM,EAAW,CAClC,mDAAmDt6B,EAASkuB,GAG1DA,EAAOluB,QAAU,CACfg9N,aAFiB,GAGjBC,KAAM,EACNC,KAAMF,EACNG,KAAMH,GACNI,KAAMJ,GACNK,MAAOpuO,KAAKsnD,IAAItnD,KAAKsgD,GAAK,GAC1B+tL,MAAOruO,KAAKunD,IAAIvnD,KAAKsgD,GAAK,GAC1BW,MAAOjhD,KAAK2xC,KAAK,GAErB,IAIE28L,GAAmBjjM,EAAW,CAChC,uCAAuCt6B,EAASkuB,GAE9C,IAAIwrG,EAAe1L,KAAc0L,aACjC,SAAS6qD,EAAIv7H,EAAIt6B,GACf,OAAQs6B,EAAG93D,MACT,IAAK,MACH,OAAO83D,EAAGs7H,IAAI51J,GAChB,IAAK,OACH,OAAOs6B,EAAGu7H,IAAI71J,EAAG,EAAGs6B,EAAGy2D,UACzB,QACE,OAAOz2D,EAAGu7H,IAAI71J,GAEpB,CAuBAR,EAAOluB,QAAU,CACfukL,MACAF,IAxBF,SAAar7H,EAAIt6B,GACf,OAAQs6B,EAAG93D,MACT,IAAK,MACH,OAAO83D,EAAGo7H,IAAI11J,GAChB,IAAK,OACH,OAAOs6B,EAAGq7H,IAAI31J,EAAG,EAAGs6B,EAAGy2D,UACzB,QACE,OAAOz2D,EAAGq7H,IAAI31J,GAEpB,EAgBE8uM,QAfF,SAAiBx0K,GACf,IAAIh5D,EAA6B,MAArBg5D,EAAGuoF,IAAI76H,OAAO,GAAa,EAAI,EAC3C,OAAO,SAASgY,GACd,OAAO61J,EAAIv7H,EAAIt6B,EAAE1+B,GACnB,CACF,EAWEytO,aAVF,SAAsB5kF,GACpB,OAAOnf,EACLmf,EAAS9W,MAAMqkD,QACfvtC,EAAS7W,MAAMokD,QAEnB,EAOF,IAIEs3C,GAAmBpjM,EAAW,CAChC,iDAAiDt6B,GAE/C,IAAI4qK,EAAeP,KACf7wE,EAAYujI,KACZC,EAAexjI,EAAUwjI,aACzB9sL,EAAQspD,EAAUtpD,MAClBytL,EAAmBJ,KACnBh5C,EAAMo5C,EAAiBp5C,IACvBF,EAAMs5C,EAAiBt5C,IACvBu5C,EAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxBC,EAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GAyKvB,SAAS3gC,EAASzlL,EAAG4H,GACnB,OAAOpwB,KAAKD,IAAIyoB,EAAI4H,IAAM,IAC5B,CACA,SAAS0uL,EAAKt2L,EAAG4H,GACf,IAAI0vB,EAAK1vB,EAAE,GAAK5H,EAAE,GACdu3B,EAAK3vB,EAAE,GAAK5H,EAAE,GAClB,OAAOxoB,KAAK2xC,KACVmO,EAAKA,EAAKC,EAAKA,EAEnB,CAjLAhvC,EAAQ89N,WAAa,SAAS5wK,GAC5B,IAAI6wK,EAAK7wK,EAASzgE,OAClB,IAAKsxO,EAAI,MAAO,QAEhB,IADA,IAAI9+N,EAAM,GACD5Q,EAAI,EAAGA,EAAI0vO,EAAI1vO,IAEtB,IADA,IAAI2vO,EAAK9wK,EAAS7+D,GAAG5B,OACZ6H,EAAI,EAAGA,EAAI0pO,EAAI1pO,IAAK,CAC3B,IAAI06B,EAAIk+B,EAAS7+D,GAAGiG,GAAG,GACvB,GAAU,MAAN06B,EACF/vB,GAAO,SAGP,IADA,IAAIg/N,EAAK/wK,EAAS7+D,GAAGiG,GAAG7H,OACf8H,EAAI,EAAGA,EAAI0pO,EAAI1pO,IAAK,CAC3B,IAAI2pO,EAAQ3pO,EACF,MAANy6B,GAAmB,MAANA,EACfkvM,EAAQL,EAAItpO,GACG,MAANy6B,IACTkvM,EAAQN,EAAGrpO,IAEb0K,GAAOiuD,EAAS7+D,GAAGiG,GAAG4pO,GAClB3pO,EAAI,GAAKA,EAAI0pO,EAAK,IACpBh/N,GAAO,IAEX,CAEJ,CAEF,OAAOA,CACT,EACAe,EAAQm+N,UAAY,SAASl/N,EAAKm0G,EAAIylC,EAAUulF,GAC9C,IAOI7pO,EAGA8pO,EACAC,EAXAlzD,EAAMR,EAAa3rK,GACnBs/N,EAAQ,GACRhoN,GAAK,EAML/hB,EAAI,EACJC,EAAI,EAGJ+pO,EAAW,WACbH,EAAQ7pO,EACR8pO,EAAQ7pO,CACV,EACA+pO,IACA,IAAK,IAAInwO,EAAI,EAAGA,EAAI+8K,EAAI3+K,OAAQ4B,IAAK,CACnC,IACIqjD,EAAIsa,EAAIpa,EAAIqa,EADZwyK,EAAS,GAETrwM,EAAIg9I,EAAI/8K,GAAG,GACX2gC,EAAIZ,EACR,OAAQA,GACN,IAAK,IAnBP7X,IACAgoN,EAAMhoN,GAAK,GAoBP/hB,GAAK42K,EAAI/8K,GAAG,GACZoG,GAAK22K,EAAI/8K,GAAG,GACZowO,EAAOzxO,KAAK,CAACgiC,EAAGx6B,EAAGC,IACnB+pO,IACA,MACF,IAAK,IACL,IAAK,IACH9sL,GAAM05H,EAAI/8K,GAAG,GACbujD,GAAMw5H,EAAI/8K,GAAG,GACbmG,GAAK42K,EAAI/8K,GAAG,GACZoG,GAAK22K,EAAI/8K,GAAG,GACZowO,EAAOzxO,KAAK,CAACgiC,EAAGx6B,EAAGC,EAAGi9C,EAAIE,IAC1B,MACF,IAAK,IACHF,GAAM05H,EAAI/8K,GAAG,GACbujD,GAAMw5H,EAAI/8K,GAAG,GACb29D,GAAMo/G,EAAI/8K,GAAG,GACb49D,GAAMm/G,EAAI/8K,GAAG,GACbmG,GAAK42K,EAAI/8K,GAAG,GACZoG,GAAK22K,EAAI/8K,GAAG,GACZowO,EAAOzxO,KAAK,CAACgiC,EAAGx6B,EAAGC,EAAGi9C,EAAIE,EAAIoa,EAAIC,IAClC,MACF,IAAK,IACL,IAAK,IACHz3D,GAAK42K,EAAI/8K,GAAG,GACZoG,GAAK22K,EAAI/8K,GAAG,GACZowO,EAAOzxO,KAAK,CAACgiC,EAAGx6B,EAAGC,IACnB,MACF,IAAK,IACHu6B,EAAI,IACJx6B,GAAK42K,EAAI/8K,GAAG,GACZowO,EAAOzxO,KAAK,CAACgiC,EAAGx6B,EAAGC,IACnB,MACF,IAAK,IACHu6B,EAAI,IACJv6B,GAAK22K,EAAI/8K,GAAG,GACZowO,EAAOzxO,KAAK,CAACgiC,EAAGx6B,EAAGC,IACnB,MACF,IAAK,IACHu6B,EAAI,IACJ,IAAI87B,GAAMsgH,EAAI/8K,GAAG,GACb08D,GAAMqgH,EAAI/8K,GAAG,IACX+8K,EAAI/8K,GAAG,KACXy8D,GAAMA,EACNC,GAAMA,GAER,IAAI2zK,EAAOlqO,EAAIs2D,EACX6zK,EAAOlqO,EACX,IAAKF,EAAI,EAAGA,GAAKyoO,EAAe,EAAGzoO,IAAK,CACtC,IAAIomB,EAAI,EAAI1rB,KAAKsgD,GAAKh7C,EAAIyoO,EAC1ByB,EAAOzxO,KAAK,CACVgiC,EACA0vM,EAAO5zK,EAAK77D,KAAKsnD,IAAI57B,GACrBgkN,EAAO5zK,EAAK97D,KAAKunD,IAAI77B,IAEzB,CACA,MACF,IAAK,IACCnmB,IAAM6pO,GAAS5pO,IAAM6pO,IACvB9pO,EAAI6pO,EACJ5pO,EAAI6pO,EACJG,EAAOzxO,KAAK,CAACgiC,EAAGx6B,EAAGC,KASzB,IALA,IAAIs+C,GAAU8lG,GAAY,CAAC,GAAG9lG,OAC1B1+C,EAAO++G,EAAGonB,YAAY8X,MACtBssF,EAAc/lF,GAAmC,UAAvBA,EAASgmF,UACnCC,EAAcjmF,GAAmC,UAAvBA,EAASkmF,UACnCC,GAA6B,IAAlBZ,EACN9pO,EAAI,EAAGA,EAAImqO,EAAOhyO,OAAQ6H,IAAK,CACtC,IAAKC,EAAI,EAAGA,EAAI,EAAI,EAAGA,GAAK,EAAG,CAC7B,IAAI0qO,EAAKR,EAAOnqO,GAAGC,EAAI,GACnB2qO,EAAKT,EAAOnqO,GAAGC,EAAI,QACZ,IAAP0qO,QAAwB,IAAPC,IACrB1qO,EAAIyqO,EACJxqO,EAAIyqO,EACArmF,IACEA,EAAS9W,OAAS8W,EAAS9W,MAAMwiD,KAC/By6C,IAAUC,GAAMpmF,EAAS9W,MAAMqkD,SAEjC64C,EADEL,EACGv6C,EAAIxrC,EAAS9W,MAAO8W,EAASrgC,SAAWymH,EAExC16C,EAAI1rC,EAAS9W,MAAOk9F,KAGvBD,IAAUC,GAAM5qO,EAAKmjB,GACrBu7B,EAAQksL,EAAKlsL,EAAOv+C,EAAE,GAAKyqO,EAAK5qO,EAAK26B,EACpCiwM,GAAU5qO,EAAK26B,GAElB6pH,EAAS7W,OAAS6W,EAAS7W,MAAMuiD,KAC/By6C,IAAUE,GAAMrmF,EAAS7W,MAAMokD,SAEjC84C,EADEJ,EACGz6C,EAAIxrC,EAAS7W,MAAO6W,EAASpgC,SAAWymH,EAExC36C,EAAI1rC,EAAS7W,MAAOk9F,KAGvBF,IAAUE,GAAM7qO,EAAKsmB,GACbukN,EAARnsL,EAAaA,EAAOt+C,EAAE,GAAKyqO,EAAK7qO,EAAK6K,EAC/B,EAAIggO,EAAK7qO,EAAK6K,IAG5Bu/N,EAAOnqO,GAAGC,EAAI,GAAK0qO,EACnBR,EAAOnqO,GAAGC,EAAI,GAAK2qO,EACrB,CACAX,EAAMhoN,GAAGvpB,KACPyxO,EAAOnqO,GAAGjE,QAEd,CACF,CACA,OAAOkuO,CACT,EAWAv+N,EAAQm/N,kBAAoB,SAASjzK,GAEnC,GAAY,IADFA,EAAKz/D,OACA,OAAO,EACtB,IAAK,IAAI6H,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAG1B,IAAK4oM,EAFKhxI,EAAK,GAAG53D,GAAK43D,EAAK,GAAG53D,GACrB43D,EAAK,GAAG53D,GAAK43D,EAAK,GAAG53D,IACN,OAAO,EAGhC,IAAK4oM,EAFKhxI,EAAK,GAAG53D,GAAK43D,EAAK,GAAG53D,GACrB43D,EAAK,GAAG53D,GAAK43D,EAAK,GAAG53D,IACN,OAAO,CAClC,CACA,SAAK4oM,EAAShxI,EAAK,GAAG,GAAIA,EAAK,GAAG,MAAQgxI,EAAShxI,EAAK,GAAG,GAAIA,EAAK,GAAG,SAC7D6hJ,EAAK7hJ,EAAK,GAAIA,EAAK,IAAM6hJ,EAAK7hJ,EAAK,GAAIA,EAAK,IACxD,EACAlsD,EAAQo/N,gBAAkB,SAASlzK,GACjC,IAAI/sD,EAAM+sD,EAAKz/D,OACf,GAAI0S,IAAQ69N,EAAe,EAAG,OAAO,EACrC79N,EAAM69N,EACN,IAAK,IAAI3uO,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAK,CAC5B,IAAIkG,GAAW,EAAN4K,EAAU9Q,GAAK8Q,EACpB0gJ,GAAM1gJ,EAAM,EAAI5K,GAAK4K,EACrB+qC,GAAM/qC,EAAM,EAAI9Q,GAAK8Q,EACzB,IAAK+9L,EACH6Q,EAAK7hJ,EAAK79D,GAAI69D,EAAKhiB,IACnB6jK,EAAK7hJ,EAAK33D,GAAI23D,EAAK2zF,KAClB,OAAO,CACZ,CACA,OAAO,CACT,EACA7/I,EAAQq/N,cAAgB,SAASC,EAAWpsN,EAAO9iB,GACjD,IAAKkvO,EAAW,MAAO,CAACpsN,EAAO9iB,GAC/B,IAAIg5F,EAAMppF,EAAQu/N,YAAY,CAC5B9tL,GAAIv+B,EAAM,GACVy+B,GAAIz+B,EAAM,GACVw+B,GAAIthD,EAAI,GACRwhD,GAAIxhD,EAAI,KAEN6kD,GAAMm0C,EAAI13C,GAAK03C,EAAI33C,IAAM,EACzByD,GAAMk0C,EAAIx3C,GAAKw3C,EAAIz3C,IAAM,EACzBmZ,GAAMs+B,EAAI13C,GAAK03C,EAAI33C,IAAM,EACzBsZ,GAAMq+B,EAAIx3C,GAAKw3C,EAAIz3C,IAAM,EACxBmZ,IAAIA,EAAKC,GAAU7a,GACnB6a,IAAIA,EAAKD,GAAU5a,GAExB,IADA,IAAIgc,EAAO,GACF79D,EAAI,EAAGA,EAAI2uO,EAAc3uO,IAAK,CACrC,IAAIssB,EAAQ,EAAJtsB,EAAQY,KAAKsgD,GAAKytL,EAC1B9wK,EAAKl/D,KAAK,CACRioD,EAAK6V,EAAK77D,KAAKsnD,IAAI57B,GACnBu6B,EAAK6V,EAAK97D,KAAKunD,IAAI77B,IAEvB,CACA,OAAOuxC,CACT,EACAlsD,EAAQu/N,YAAc,SAASn2I,GAC7B,IAAI33C,EAAK23C,EAAI33C,GACTE,EAAKy3C,EAAIz3C,GACTD,EAAK03C,EAAI13C,GACTE,EAAKw3C,EAAIx3C,GACT7C,EAAK2C,EAAKD,EACVzC,EAAK4C,EAAKD,EAGVsD,IAFJxD,GAAM1C,GAES2C,GAAM,EACjBwD,IAFJvD,GAAM3C,GAES4C,GAAM,EAIrB,MAAO,CACLH,GAAIwD,GAHNlG,GADYmB,GAKVyB,GAAIuD,GAHNlG,GAFYkB,GAMVwB,GAAIuD,EAAKlG,EACT6C,GAAIsD,EAAKlG,EAEb,EACAhvC,EAAQw/N,iBAAmB,SAAStyK,EAAU60E,EAAOC,GACnD,IAAIy9F,EAAyB,SAAf19F,EAAM7wI,KAChBwuO,EAAyB,SAAf19F,EAAM9wI,KACpB,IAAKuuO,IAAYC,EAAS,OAAOxyK,EACjC,IAAK,IAAI7+D,EAAI,EAAGA,EAAI6+D,EAASzgE,OAAQ4B,IACnC,IAAK,IAAIiG,EAAI,EAAGA,EAAI44D,EAAS7+D,GAAG5B,OAAQ6H,IACtC,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAI24D,EAAS7+D,GAAGiG,GAAG7H,OAAQ8H,GAAK,EAC9CkrO,IAASvyK,EAAS7+D,GAAGiG,GAAGC,EAAI,GAAK24D,EAAS7+D,GAAGiG,GAAGC,EAAI,GAAG9E,QAAQ,IAAK,MACpEiwO,IAASxyK,EAAS7+D,GAAGiG,GAAGC,EAAI,GAAK24D,EAAS7+D,GAAGiG,GAAGC,EAAI,GAAG9E,QAAQ,IAAK,MAI9E,OAAOy9D,CACT,CACF,IAIEyyK,GAAoBrlM,EAAW,CACjC,mDAAmDt6B,EAASkuB,GAE1D,IAAI0xM,EAAc/E,KACdE,EAAW6E,EAAY7E,SACvBC,EAAW4E,EAAY5E,SACvBxhI,EAAYujI,KACZE,EAAOzjI,EAAUyjI,KACjBC,EAAO1jI,EAAU0jI,KACjBC,EAAO3jI,EAAU2jI,KACjBC,EAAO5jI,EAAU4jI,KACjBC,EAAQ7jI,EAAU6jI,MAClBC,EAAQ9jI,EAAU8jI,MAClBK,EAAmBJ,KACnBh5C,EAAMo5C,EAAiBp5C,IACvBF,EAAMs5C,EAAiBt5C,IAEvBp5C,EADgBJ,KACaI,aAC7B47B,EAAU62D,KACVS,EAAYt3D,EAAQs3D,UACpBL,EAAaj3D,EAAQi3D,WACrByB,EAAc14D,EAAQ04D,YACtBC,EAAmB34D,EAAQ24D,iBAgE/B,SAASK,EAAeC,EAAUC,EAAanmI,GAC7C,IAwCI1tC,EAxCAv9D,EAAImxO,EAAS,GAAG,GAChB1sH,EAAK2sH,EAAY3sH,GACjB/yG,EAAI1R,EAAEwH,aAAa,KACnB6pO,EAAW5sH,EAAGonB,YAAY5jB,SAC1BiiC,EAAWknF,EAAYlnF,SACvBulF,EAAgB2B,EAAY3B,cAC5Br8F,EAAQ8W,EAAS9W,MACjBC,EAAQ6W,EAAS7W,MACjBi+F,IAAWpnF,EAAS9lG,SAAW8lG,EAAS9W,MACxCm+F,IAAWrnF,EAAS9lG,SAAW8lG,EAAS7W,MACxCm+F,EAAanF,EAASphI,GACtB1sC,EAAWixK,EAAU99N,EAAG+yG,EAAIylC,EAAUulF,GACtCgC,EAAW,CACbx7H,UAAU,EACVjK,QAASqlI,EAASrlI,QAClBrjG,KAAM0oO,EAAS1oO,KACfsjG,WAAYolI,EAASplI,WACrBC,OAAQmlI,EAASnlI,OACjBI,YAAa+kI,EAAS/kI,YACtBH,YAAaklI,EAASllI,YACtBC,iBAAkB,CAChB10F,KAAM25N,EAASjlI,iBAAiB10F,KAChCqzF,KAAMsmI,EAASjlI,iBAAiBrB,MAElCsB,WAAYglI,EAAShlI,WACrBxmF,MAAOwrN,EAASxrN,MAChB+kG,KAAM0mH,EAAS,QAAUl+F,EAAMwP,IAC/B/3B,KAAM0mH,EAAS,QAAUl+F,EAAMuP,IAC/Bn5B,MAAO4nH,EAAS5nH,MAChBz8G,QAASqkO,EAASrkO,QAClBjL,KAAM,CACJsR,MAAOg+N,EAAStvO,KAAKsR,MACrBkB,MAAO88N,EAAStvO,KAAKwS,MACrBsyG,KAAMwqH,EAAStvO,KAAK8kH,OASxB,GANK2qH,IACHC,EAASloH,UAAY8nH,EAAS9nH,UAC9BkoH,EAASjoH,SAAW6nH,EAAS7nH,UAGP,IAApBjrD,EAASzgE,SAAcy/D,EAAOgB,EAAS,IACvChB,GAAwB,IAAhBA,EAAKz/D,QACJ,aAAbmtG,EACEwmI,EAASlvO,KAAO,OAChBkvO,EAAS3uL,GAAKya,EAAK,GAAG,GACtBk0K,EAASzuL,GAAKua,EAAK,GAAG,GACtBk0K,EAAS1uL,GAAKwa,EAAK,GAAG,GACtBk0K,EAASxuL,GAAKsa,EAAK,GAAG,QACjB,GAAIA,GAAqB,aAAb0tC,EACjBwmI,EAASlvO,KAAO,OAChBkvO,EAAS3uL,GAAKya,EAAK,GAAG,GACtBk0K,EAASzuL,GAAKua,EAAK,GAAG,GACtBk0K,EAAS1uL,GAAKwa,EAAK,GAAG,GACtBk0K,EAASxuL,GAAKsa,EAAK,GAAG,QACjB,GAAIA,GAAqB,eAAb0tC,EAA2B,CAC5CwmI,EAASlvO,KAAO,SAChB,IAAImvO,EAAKn0K,EAAK+wK,GAAM,GAChBqD,EAAKp0K,EAAKgxK,GAAM,GAChBqD,EAAKr0K,EAAKixK,GAAM,GAChBqD,EAAKt0K,EAAKkxK,GAAM,GAChBqD,EAAKv0K,EAAK+wK,GAAM,GAChByD,EAAKx0K,EAAKgxK,GAAM,GAChByD,EAAKz0K,EAAKixK,GAAM,GAChByD,EAAK10K,EAAKkxK,GAAM,GAChByD,EAAahoF,EAAS9W,QAAkC,SAAxB8W,EAAS9W,MAAM7wI,MAA2C,QAAxB2nJ,EAAS9W,MAAM7wI,MACjF4vO,EAAajoF,EAAS7W,QAAkC,SAAxB6W,EAAS7W,MAAM9wI,MAA2C,QAAxB2nJ,EAAS7W,MAAM9wI,MACjF2vO,IACFR,EAAKh8C,EAAIxrC,EAAS9W,MAAOs+F,GACzBC,EAAKj8C,EAAIxrC,EAAS9W,MAAOu+F,GACzBC,EAAKl8C,EAAIxrC,EAAS9W,MAAOw+F,GACzBC,EAAKn8C,EAAIxrC,EAAS9W,MAAOy+F,IAEvBM,IACFL,EAAKp8C,EAAIxrC,EAAS7W,MAAOy+F,GACzBC,EAAKr8C,EAAIxrC,EAAS7W,MAAO0+F,GACzBC,EAAKt8C,EAAIxrC,EAAS7W,MAAO2+F,GACzBC,EAAKv8C,EAAIxrC,EAAS7W,MAAO4+F,IAE3B,IAAInvL,GAAM6uL,EAAKE,GAAM,EACjB7uL,GAAM8uL,EAAKE,GAAM,EAGjBv3I,EAAMm2I,EAAY,CACpB9tL,KACAE,KACAD,GAAID,GALI+uL,EAAKF,EAAKC,EAAKF,GAAM,EAKfhD,EACdzrL,GAAID,GALIivL,EAAKF,EAAKC,EAAKF,GAAM,EAKfnD,IAEZuD,IACFz3I,EAAI33C,GAAK8yI,EAAI1rC,EAAS9W,MAAO34C,EAAI33C,IACjC23C,EAAI13C,GAAK6yI,EAAI1rC,EAAS9W,MAAO34C,EAAI13C,KAE/BovL,IACF13I,EAAIz3C,GAAK4yI,EAAI1rC,EAAS7W,MAAO54C,EAAIz3C,IACjCy3C,EAAIx3C,GAAK2yI,EAAI1rC,EAAS7W,MAAO54C,EAAIx3C,KAEnCwuL,EAAS3uL,GAAK23C,EAAI33C,GAClB2uL,EAASzuL,GAAKy3C,EAAIz3C,GAClByuL,EAAS1uL,GAAK03C,EAAI13C,GAClB0uL,EAASxuL,GAAKw3C,EAAIx3C,EACpB,MACEwuL,EAASlvO,KAAO,OACZ6wI,GAASC,GAAOw9F,EAAiBtyK,EAAU60E,EAAOC,GACtDo+F,EAASxwN,KAAOkuN,EAAW5wK,GAC3BhB,EAAO,KAET,OAAOk0K,CACT,CACAlyM,EAAOluB,QAAU,CACf+gO,UA9KF,SAAmBjB,EAAUC,GAC3B,GAAKD,EAASrzO,QACNqzO,EAAS,GAAG,GACpB,CACA,IAAI1sH,EAAK2sH,EAAY3sH,GACjBgrH,EAAgB2B,EAAY3B,cAC5BxkI,EAAWmmI,EAAYnmI,SACvB48C,GAAUpjC,EAAG98C,QAAU,CAAC,GAAGkgF,QAAU,GACzC,IAAKukF,EAASnhI,SAA+B,IAAlBwkI,EAA0B,CACnD,IAAI5wM,EAAK4lF,EAAGonB,YAAYwmG,kBACxB,GAAIxzM,EAAKgpH,EAAO/pJ,OACd,OAAQ2mH,EAAGonB,YAAYgc,OAAOhpH,GAAIt8B,MAChC,IAAK,OACH0oG,EAAW,WACX,MACF,IAAK,SACHA,EAAW,aACX,MACF,IAAK,OACHA,EAAW,WACX,MACF,IAAK,OACH,IAAIhqF,EAAO4mI,EAAOhpH,GAAI5d,MAAQ,GAE5BgqF,EAD4B,MAA1BhqF,EAAKA,EAAKnjB,OAAS,GACV,iBAEA,eAKrB,CACA,IAAI2zO,EAAWP,EAAeC,EAAUC,EAAanmI,GACrDqxC,EAAa73B,GAIb,IAHA,IAAI6tH,EAAclB,EAAYkB,YAC1B35F,GAAc25F,GAAe,CAAC,GAAG35F,WACjC45F,EAAY,GACP3pM,EAAI,EAAGA,EAAIi/G,EAAO/pJ,OAAQ8qC,IAAK,CACtC,IAAI4pM,EAAa/tH,EAAGonB,YAAYgc,OAAOj/G,GAEvC,GADA2pM,EAAU3pM,GAAK4pM,EAAW16F,YACJ,IAAlB23F,GAA4B7mM,IAAM67E,EAAGonB,YAAYwmG,kBAAmB,CACtE,IAAII,EAAYhB,EAChB,OAAQe,EAAWjwO,MACjB,IAAK,OACL,IAAK,OACL,IAAK,SACHo2I,EAAW,KAAM85F,EAAU3vL,IAAM0vL,EAAWlqH,SAAW,IACvDqwB,EAAW,KAAM85F,EAAU1vL,IAAMyvL,EAAWhqH,SAAW,IACvDmwB,EAAW,KAAM85F,EAAUzvL,IAAMwvL,EAAW9pH,SAAW,IACvDiwB,EAAW,KAAM85F,EAAUxvL,IAAMuvL,EAAW5pH,SAAW,IACvD,MACF,IAAK,OACH+vB,EAAW,OAAQ85F,EAAUxxN,MAGnC,CACF,CACA,YAAsB,IAAlBwuN,GACF8C,EAAUl0O,KAAKozO,GACRc,GAEFD,EAAcA,EAAY15F,eAAiB,CAAC,CA1DrC,CA2DhB,EAiHEs4F,iBAEJ,IAIEwB,GAAwB/mM,EAAW,CACrC,+DAA+Dt6B,EAASkuB,GAEtE,IACI4sM,EADcD,KACWC,WAEzB7vF,EADgBJ,KACaI,aAC7B47B,EAAU62D,KACVS,EAAYt3D,EAAQs3D,UACpBL,EAAaj3D,EAAQi3D,WACrB0B,EAAmB34D,EAAQ24D,iBAC/BtxM,EAAOluB,QAAU,SAAuB8/N,EAAUC,GAChD,GAAKD,EAASrzO,OAAd,CACA,IAAIkC,EAAImxO,EAAS,GAAG,GACpB,GAAKnxO,EAAL,CACA,IAAI0R,EAAI1R,EAAEwH,aAAa,KACnBi9G,EAAK2sH,EAAY3sH,GACjB4sH,EAAW5sH,EAAGonB,YAAY5hB,aAC1BigC,EAAWknF,EAAYlnF,SACvB9W,EAAQ8W,EAAS9W,MACjBC,EAAQ6W,EAAS7W,MACjBs/F,EAAoBvB,EAAYuB,kBAChC1nI,EAAWmmI,EAAYnmI,SACvB4wD,GAAcp3C,EAAG98C,QAAU,CAAC,GAAGk0F,YAAc,GACjD,IAAKswE,EAAWlhI,SAAmC,IAAtB0nI,EAA8B,CACzD,IAAI9zM,EAAK4lF,EAAGonB,YAAY+mG,sBACxB,GAAI/zM,EAAKg9H,EAAW/9J,OAClB,OAAQ2mH,EAAGonB,YAAYgwB,WAAWh9H,GAAIt8B,MACpC,IAAK,OACH0oG,EAAW,SACX,MACF,IAAK,OACHA,EAAW,QAInB,CACA,IAWI1tC,EAXAgB,EAAWixK,EAAU99N,EAAG+yG,EAAIylC,EAAUyoF,GACtCE,EAAe,CACjBjoH,KAAMwoB,EAAMwP,IACZ/3B,KAAMwoB,EAAMuP,IACZ51I,QAASqkO,EAASrkO,QAClBjL,KAAM,CACJsR,MAAOg+N,EAAStvO,KAAKsR,MACrBkB,MAAO88N,EAAStvO,KAAKwS,MACrBsyG,KAAMwqH,EAAStvO,KAAK8kH,OAIA,IAApBtoD,EAASzgE,SAAcy/D,EAAOgB,EAAS,IACvChB,GAAwB,IAAhBA,EAAKz/D,QACJ,WAAbmtG,GACE4nI,EAAatwO,KAAO,OACpBswO,EAAa/vL,GAAKya,EAAK,GAAG,GAC1Bs1K,EAAa7vL,GAAKua,EAAK,GAAG,GAC1Bs1K,EAAa9vL,GAAKwa,EAAK,GAAG,GAC1Bs1K,EAAa5vL,GAAKsa,EAAK,GAAG,KAE1Bs1K,EAAatwO,KAAO,OAChB6wI,GAASC,GAAOw9F,EAAiBtyK,EAAU60E,EAAOC,GACtDw/F,EAAa5xN,KAAOkuN,EAAW5wK,GAC/BhB,EAAO,MAET++E,EAAa73B,GAIb,IAHA,IAAI6tH,EAAclB,EAAYkB,YAC1B35F,GAAc25F,GAAe,CAAC,GAAG35F,WACjCm6F,EAAgB,GACXlqM,EAAI,EAAGA,EAAIizH,EAAW/9J,OAAQ8qC,IAAK,CAC1C,IAAI4pM,EAAa/tH,EAAGonB,YAAYgwB,WAAWjzH,GAC3C,GAAK4pM,GAKL,GADAM,EAAclqM,GAAK4pM,EAAW16F,YACJ,IAAtB66F,GAAgC/pM,IAAM67E,EAAGonB,YAAY+mG,sBAAuB,CAC9E,IAAIH,EAAYI,EAChB,OAAQL,EAAWjwO,MACjB,IAAK,OACHo2I,EAAW,KAAM85F,EAAU3vL,IAC3B61F,EAAW,KAAM85F,EAAU1vL,IAC3B41F,EAAW,KAAM85F,EAAUzvL,IAC3B21F,EAAW,KAAM85F,EAAUxvL,IAC3B,MACF,IAAK,OACH01F,EAAW,OAAQ85F,EAAUxxN,MAGnC,OAjBE6xN,EAAclqM,GAAK4pM,CAkBvB,CACA,YAA0B,IAAtBG,GACFG,EAAcz0O,KAAKw0O,GACZC,GAEFR,EAAcA,EAAY15F,eAAiB,CAAC,CA/ErC,CAFc,CAkF9B,CACF,IAIEm6F,GAAqBpnM,EAAW,CAClC,qCAAqCt6B,EAASkuB,GAE5CA,EAAOluB,QAAU,CACf2hO,UAAW,4BACXC,QAAS,WAQTC,SAAU,CACRvzM,EAAG,CAAE,GAAG,EAAMwzM,MAAO,GACrBzuM,EAAG,CAAE,GAAG,EAAMyuM,MAAO,GACrB9tM,EAAG,CAAE,GAAG,EAAM8tM,MAAO,GACrBziJ,EAAG,CAAC,EACJlwD,EAAG,CAAE,GAAG,EAAM,GAAG,EAAM2yM,MAAO,GAC9Bz2K,EAAG,CAAE,GAAG,EAAM,GAAG,EAAM,GAAG,EAAMy2K,MAAO,GACvCl5I,EAAG,CAAE,GAAG,EAAMk5I,MAAO,GACrBzyM,EAAG,CAAE,GAAG,EAAM,GAAG,EAAMyyM,MAAO,GAE9BjtM,EAAG,CAAC,GAENktM,SAAU,CACRzzM,EAAG,CAAE,GAAG,EAAMwzM,MAAO,GACrBzuM,EAAG,CAAE,GAAG,EAAMyuM,MAAO,GACrB9tM,EAAG,CAAC,EACJqrD,EAAG,CAAE,GAAG,EAAMyiJ,MAAO,GACrB3yM,EAAG,CAAE,GAAG,EAAM,GAAG,EAAM2yM,MAAO,GAC9Bz2K,EAAG,CAAE,GAAG,EAAM,GAAG,EAAM,GAAG,EAAMy2K,MAAO,GACvCl5I,EAAG,CAAE,GAAG,EAAMk5I,MAAO,GACrBzyM,EAAG,CAAE,GAAG,EAAM,GAAG,EAAMyyM,MAAO,GAE9BjtM,EAAG,CAAC,GAENmtM,UAAW,CACT1zM,EAAG,EACH+E,EAAG,EACHW,EAAG,EACHqrD,EAAG,EACHlwD,EAAG,EACHk8B,EAAG,EACHu9B,EAAG,EACHv5D,EAAG,EAEHwF,EAAG,GAGT,IAIEotM,GAAmB3nM,EAAW,CAChC,mCAAmCt6B,GAEjC,IAAIw5F,EAAYkoI,KACZpmG,EAAMtN,KACNw3F,EAAO92B,KA8OX,SAASwzC,EAAcv0J,EAAM52D,GAE3B,IAAIorN,EAAc,EAIlB,OALAprN,EAAQA,GAAS,IAEJ42D,IAAuB,aAAdA,EAAKz8E,MAAqC,kBAAdy8E,EAAKz8E,QACrDixO,GAAex0J,EAAK02G,IAAI,GAAK12G,EAAK02G,IAAI,IAAMttK,GAEvCorN,CACT,CApPAniO,EAAQoiO,qBAAuB,SAASp5K,GACtC,MAAmB,QAAZA,EAAG93D,KAAiB83D,EAAG86H,IAAM,SAASp1J,GAC3C,OAAOA,CACT,CACF,EACA1uB,EAAQqiO,qBAAuB,SAASr5K,GACtC,MAAmB,QAAZA,EAAG93D,KAAiB83D,EAAG66H,IAAM,SAASn1J,GAC3C,OAAOA,CACT,CACF,EACA1uB,EAAQsiO,WAAa,SAASC,GAC5B,OAAO,SAAS7zM,GAEd,OADIA,EAAEj/B,UAASi/B,EAAIA,EAAEj/B,QAAQ,IAAK,MAC3B8yO,EAAY7zM,EACrB,CACF,EACA1uB,EAAQwiO,WAAa,SAASC,GAC5B,OAAO,SAAS/zM,GACd,OAAO+zM,EAAc/zM,GAAGj/B,QAAQ,IAAK,IACvC,CACF,EACAuQ,EAAQ0iO,kBAAoB,SAAS9yN,EAAM+yN,EAAaC,GACtD,IAAIC,EAAuB,GAW3B,OAVejzN,EAAK/Z,MAAM2jG,EAAUmoI,WAC3Bh0O,SAAQ,SAASi7E,GACxB,IAAIk6J,EAAmBH,EAAY/5J,EAAQlyD,OAAO,IAAIorN,MACtD,QAAyB,IAArBgB,EAAJ,CACA,IAAIjiO,EAAS+nE,EAAQ14E,OAAO,GAAG2F,MAAM2jG,EAAUooI,SAC/C,GAAK/gO,KAAUA,EAAOpU,OAASq2O,GAA/B,CACA,IAAI7jO,EAAM4B,EAAOiiO,GACb15I,EAAMw5I,EAAQ3jO,EAAMq8H,EAAI7K,YAAYxxH,GACxC4jO,EAAqB71O,KAAKo8F,EAH6B,CAFhB,CAMzC,IACOy5I,CACT,EACA7iO,EAAQ+iO,eAAiB,SAAS3vH,EAAIzlC,EAAM52D,EAAOotJ,EAAY6+D,GAC7D,IACIC,EADA1wF,EAAKn/B,EAAGonB,YAAY8X,MAExB,GAAI3kE,EACF,GAAgB,WAAZq1J,EACFC,EAAc,SAASv0M,GACrB,OAAOi/C,EAAK4/C,SAAW42C,EAAa,EAAIz1I,EAAIA,GAAKi/C,EAAKy4G,OACxD,MACK,CACL,IAAIvC,EAAM7jL,EAAQqiO,qBAAqB10J,GACvCs1J,EAAc,SAASv0M,GACrB,IAAIyzM,EAAcD,EAAcv0J,EAAM52D,GACtC,OAAO42D,EAAKy4G,QAAUz4G,EAAK02G,IAAIR,EAAIn1J,GAAG,IAASyzM,CACjD,EACkB,SAAdx0J,EAAKz8E,OAAiB+xO,EAAcjjO,EAAQsiO,WAAWW,GAC7D,MAEAA,EADS9+D,EACK,SAASz1I,GACrB,OAAO6jH,EAAG53H,EAAI43H,EAAGrzI,GAAK,EAAIwvB,EAC5B,EAEc,SAASA,GACrB,OAAO6jH,EAAG/6H,EAAI+6H,EAAGvjH,EAAIN,CACvB,EAEF,OAAOu0M,CACT,EACAjjO,EAAQkjO,eAAiB,SAAS9vH,EAAIzlC,EAAMw2F,EAAYjyC,GACtD,IACIixG,EADA5wF,EAAKn/B,EAAGonB,YAAY8X,MAExB,GAAI3kE,EACF,GAAY,WAARukD,EACFixG,EAAc,SAAShkN,GACrB,IAAIoY,GAAKpY,EAAIwuD,EAAKy4G,SAAWz4G,EAAK4/C,QAClC,OAAO42C,EAAa,EAAI5sI,EAAIA,CAC9B,MACK,CACL,IAAIusJ,EAAM9jL,EAAQoiO,qBAAqBz0J,GACvCw1J,EAAc,SAAShkN,GACrB,OAAO2kK,EAAIn2G,EAAK42G,IAAIplK,EAAIwuD,EAAKy4G,SAC/B,CACF,MAEA+8C,EADSh/D,EACK,SAAShlJ,GACrB,OAAO,GAAKA,EAAIozH,EAAG53H,GAAK43H,EAAGrzI,CAC7B,EAEc,SAASigB,GACrB,OAAQA,EAAIozH,EAAG/6H,GAAK+6H,EAAGvjH,CACzB,EAEF,OAAOm0M,CACT,EACAnjO,EAAQojO,qCAAuC,SAASh6I,EAAKzsF,GAC3D,IAAI0mO,EAAmD,IAAhCp0O,KAAK+b,MAAMrO,EAAc,GAC5C2mO,EAAcr0O,KAAK+b,MAAMo+E,GAC7B,OAAOi6I,EAAmBC,EAAc,GAAMA,CAChD,EACAtjO,EAAQujO,6BAA+B,SAASnwH,EAAIpjH,GAClD,IAAI9D,EAAUknH,EAAGonB,YAAYgc,OAAOxmJ,IAAU,CAAC,EAC3C6oJ,EAAWzlC,EAAGonB,YAAYsX,OAAO5lJ,EAAQqtH,KAAOrtH,EAAQstH,MAa5D,OAZoBq/B,EAElBA,EAAS2qF,cAAe,GAExB3qF,EAAW,CAAC,EACR3sJ,EAAQqtH,MAAyB,UAAjBrtH,EAAQqtH,OAAkBs/B,EAAS9W,MAAQ3uB,EAAGonB,YAAYtuI,EAAQqtH,KAAO,SACzFrtH,EAAQstH,MAAyB,UAAjBttH,EAAQstH,OAAkBq/B,EAAS7W,MAAQ5uB,EAAGonB,YAAYtuI,EAAQstH,KAAO,UAE/Fq/B,EAASgmF,UAAY3yO,EAAQ2yO,UAC7BhmF,EAASkmF,UAAY7yO,EAAQ6yO,UAC7BlmF,EAASrgC,QAAUtsH,EAAQssH,QAC3BqgC,EAASpgC,QAAUvsH,EAAQusH,QACpB,CACLvsH,UACA2sJ,WAEJ,EACA74I,EAAQyjO,iCAAmC,SAASrwH,EAAIpjH,GACtD,IAAI9D,EAAUknH,EAAGonB,YAAYgwB,WAAWx6J,IAAU,CAAC,EAC/C6oJ,EAAWzlC,EAAGonB,YAAYsX,OAAO5lJ,EAAQqtH,KAAOrtH,EAAQstH,MAS5D,OARoBq/B,EAElBA,EAAS2qF,cAAe,GAExB3qF,EAAW,CAAC,EACR3sJ,EAAQqtH,OAAMs/B,EAAS9W,MAAQ3uB,EAAGonB,YAAYtuI,EAAQqtH,KAAO,SAC7DrtH,EAAQstH,OAAMq/B,EAAS7W,MAAQ5uB,EAAGonB,YAAYtuI,EAAQstH,KAAO,UAE5D,CACLttH,UACA2sJ,WAEJ,EACA74I,EAAQ0jO,cAAgB,SAAStwH,EAAIlnH,GACnC,IAMIy3O,EAAKC,EAAKC,EAAKC,EAKfryL,EAAIC,EAAIC,EAAIC,EAXZ1gD,EAAOhF,EAAQgF,KACf6yO,EAAWve,EAAKz1B,WAAW7jM,EAAQqtH,MACnCyqH,EAAWxe,EAAKz1B,WAAW7jM,EAAQstH,MACnC/B,EAAK+tG,EAAKt7E,UAAU92B,EAAIlnH,EAAQqtH,MAChC5B,EAAK6tG,EAAKt7E,UAAU92B,EAAIlnH,EAAQstH,MAChC+4B,EAAKn/B,EAAGonB,YAAY8X,MAEpB2xF,EAAc/B,EAAczqH,EAAIvrH,EAAQ+qH,SACxCitH,EAAYhC,EAAczqH,EAAIvrH,EAAQirH,SACtCgtH,EAAcjC,EAAcvqH,EAAIzrH,EAAQmrH,SACxC+sH,EAAYlC,EAAcvqH,EAAIzrH,EAAQqrH,SAkC1C,GAhCIE,EACe,WAAbssH,EACFH,EAAM,SAASl1M,GACb,OAAO+oF,EAAG2uE,QAAU3uE,EAAG8V,QAAU7+F,CACnC,GAEAi1M,EAAM3jO,EAAQqiO,qBAAqB5qH,GACnCmsH,EAAM,SAASl1M,GACb,OAAO+oF,EAAG2uE,QAAU3uE,EAAG4sE,IAAIs/C,EAAIj1M,GAAG,GACpC,GAGFk1M,EAAM,SAASl1M,GACb,OAAO6jH,EAAG/6H,EAAI+6H,EAAGvjH,EAAIN,CACvB,EAEEipF,EACe,WAAbqsH,EACFF,EAAM,SAASp1M,GACb,OAAOipF,EAAGyuE,QAAUzuE,EAAG4V,SAAW,EAAI7+F,EACxC,GAEAm1M,EAAM7jO,EAAQqiO,qBAAqB1qH,GACnCmsH,EAAM,SAASp1M,GACb,OAAOipF,EAAGyuE,QAAUzuE,EAAG0sE,IAAIw/C,EAAIn1M,GAAG,GACpC,GAGFo1M,EAAM,SAASp1M,GACb,OAAO6jH,EAAG53H,EAAI43H,EAAGrzI,GAAK,EAAIwvB,EAC5B,EAEW,SAATx9B,EAGF,OAFIumH,GAAkB,SAAZA,EAAGvmH,OAAiB0yO,EAAM5jO,EAAQsiO,WAAWsB,IACnDjsH,GAAkB,SAAZA,EAAGzmH,OAAiB4yO,EAAM9jO,EAAQsiO,WAAWwB,IA8B3D,SAAqB53O,EAAS03O,EAAKE,GACjC,IAAIO,EAASn4O,EAAQ0jB,KACjB00N,EAAYp4O,EAAQ2yO,UACpB0F,EAAYr4O,EAAQ6yO,UACpByF,EAAUt4O,EAAQssH,QAClBisH,EAAUv4O,EAAQusH,QACtB,OAAO4rH,EAAO50O,QAAQ+pG,EAAUmoI,WAAW,SAAS/4J,GAClD,IAAI87J,EAAc,EACdC,EAAc/7J,EAAQlyD,OAAO,GAC7BkuN,EAAUprI,EAAUqoI,SAAS8C,GAC7BE,EAAUrrI,EAAUuoI,SAAS4C,GAC7BG,EAAUtrI,EAAUwoI,UAAU2C,GAC9BI,EAAcn8J,EAAQ14E,OAAO,GAAGT,QAAQ+pG,EAAUooI,SAAS,SAASoD,GAUtE,OATIJ,EAAQF,GACiBM,EAAT,UAAdV,EAA+BV,EAAIY,GAAW5sN,OAAOotN,GAC5CpB,EAAIoB,GACRH,EAAQH,KACUM,EAAT,UAAdT,EAA+BT,EAAIW,GAAW7sN,OAAOotN,GAC5ClB,EAAIkB,MAEnBN,EACkBI,IAASE,EAAQ,KAC5BA,CACT,IAKA,OAJIN,EAAcI,IAChBC,EAAcA,EAAYt1O,QAAQ,YAAa,IAC/C6rI,EAAI1qF,IAAI,oCAAsCg4B,IAEzC+7J,EAAcI,CACvB,GACF,CA3DWE,CAAY/4O,EAAS03O,EAAKE,GAEnC,GAA0B,UAAtB53O,EAAQ2yO,UAAuB,CACjC,IAAIqG,EAAatB,EAAI13O,EAAQssH,SAC7B/mE,EAAKyzL,EAAah5O,EAAQulD,GAAKwyL,EAC/BvyL,EAAKwzL,EAAah5O,EAAQwlD,GAAKwyL,CACjC,MACEzyL,EAAKmyL,EAAI13O,EAAQulD,IAAMwyL,EACvBvyL,EAAKkyL,EAAI13O,EAAQwlD,IAAMwyL,EAEzB,GAA0B,UAAtBh4O,EAAQ6yO,UAAuB,CACjC,IAAIoG,EAAarB,EAAI53O,EAAQusH,SAC7B9mE,EAAKwzL,EAAaj5O,EAAQylD,GAAKwyL,EAC/BvyL,EAAKuzL,EAAaj5O,EAAQ0lD,GAAKwyL,CACjC,MACEzyL,EAAKmyL,EAAI53O,EAAQylD,IAAMwyL,EACvBvyL,EAAKkyL,EAAI53O,EAAQ0lD,IAAMwyL,EAEzB,GAAa,SAATlzO,EAAiB,MAAO,IAAMugD,EAAK,IAAME,EAAK,IAAMD,EAAK,IAAME,EACnE,GAAa,SAAT1gD,EAAiB,MAAO,IAAMugD,EAAK,IAAME,EAAK,IAAMD,EAAK,IAAME,EAAK,IAAMH,EAAK,IACnF,IAAIwD,GAAMxD,EAAKC,GAAM,EACjBwD,GAAMvD,EAAKC,GAAM,EACjBkZ,EAAK77D,KAAKD,IAAIimD,EAAKxD,GACnBsZ,EAAK97D,KAAKD,IAAIkmD,EAAKvD,GACnBsW,EAAO,IAAM6C,EAAK,IAAMC,EACxBq6K,EAAUnwL,EAAK6V,EAAK,IAAM5V,EAE9B,MAAO,IAAMkwL,EAAUn9K,EAAO,UADlBhT,EAAK,KAAOC,EAAK6V,GACqB9C,EAAO,UAAYm9K,EAAU,GACjF,CAwCF,IAIEC,GAAyB/qM,EAAW,CACtC,0CAA0Ct6B,EAASkuB,GAEjD,IAAIotG,EAAMtN,KACNw3F,EAAO92B,KACP5hB,EAAevgB,KACf+wB,EAAU1Q,KACVuxD,EAAYT,KAAmBS,UAC/Bt3D,EAAUo7D,KACVyB,EAAgB78D,EAAQ68D,cACxBzrH,EAA6BpB,KAC7Bo1C,EAAUH,KAAoBG,QAClC/9H,EAAOluB,QAAU,SAAmBozG,EAAIpjH,EAAO9D,EAASo5O,GAEtD,GADAA,EAAWp+L,UAAU,gBAAgB3D,SAC/Br3C,EAAQsoB,MAAMnO,MAAQna,EAAQsoB,MAAMkiG,aAA1C,CACA,IAAIrwG,EACJ,GAAIna,EAAQsoB,MAAMkiG,aAAc,CAC9B,IAAI6uH,EAAiB,CAAC,EACtB,GAAqB,SAAjBr5O,EAAQgF,KAAiB,CAC3B,IAAIs0O,EAAMhgB,EAAKt7E,UAAU92B,EAAIlnH,EAAQqtH,MACjCksH,EAAMjgB,EAAKt7E,UAAU92B,EAAIlnH,EAAQstH,MACrC,IAAK,IAAIlsH,KAAO2qH,EAA4B,CAC1C,IAAI9gG,EAAM8gG,EAA2B3qH,GAAKpB,EAASs5O,EAAKC,QAC5C,IAARtuN,IAAgBouN,EAAej4O,GAAO6pB,EAC5C,CACF,CACA9Q,EAAOi1H,EAAI5D,4BACTxrI,EAAQsoB,MAAMkiG,aACd,CAAC,EACDtD,EAAGonB,YAAY0Z,UACfqxF,EAEJ,MACEl/N,EAAOna,EAAQsoB,MAAMnO,KAEvB,IASIq/N,EAASC,EAASC,EAASC,EAT3BC,EAAkB,CACpB,aAAc91O,GAEZ0pG,EAAOxtG,EAAQsoB,MAAMklF,KAKrBqsI,EADaT,EAAW90O,OAAO,KAAK84C,KAAKw8L,GAAiBr8L,QAAQ,eAAe,GAC1Dj5C,OAAO,QAAQ84C,KAJrB,CACnB,aAAc,IAG+CG,QAAQ,oBAAoB,GAAMpjC,KAAKA,GAEtG,GAAIna,EAAQ0jB,KAAM,CAChB,IAAIvP,EAAIqjO,EAActwH,EAAIlnH,GACtBghE,EAAWixK,EAAU99N,EAAG+yG,GAC5BsyH,EAAUtiM,IACVwiM,EAAUxiM,IACVuiM,GAAU,IACVE,GAAU,IACV,IAAK,IAAIx3O,EAAI,EAAGA,EAAI6+D,EAASzgE,OAAQ4B,IACnC,IAAK,IAAIiG,EAAI,EAAGA,EAAI44D,EAAS7+D,GAAG5B,OAAQ6H,IAEtC,IADA,IAAI6qB,EAAI+tC,EAAS7+D,GAAGiG,GACXC,EAAI,EAAGA,EAAI4qB,EAAE1yB,OAAQ8H,GAAK,EAAG,CACpC,IAAI0qO,EAAK9/M,EAAE5qB,GACP2qO,EAAK//M,EAAE5qB,EAAI,GACfmxO,EAAUz2O,KAAK8mB,IAAI2vN,EAASzG,GAC5B0G,EAAU12O,KAAK6mB,IAAI6vN,EAAS1G,GAC5B2G,EAAU32O,KAAK8mB,IAAI6vN,EAAS1G,GAC5B2G,EAAU52O,KAAK6mB,IAAI+vN,EAAS3G,EAC9B,CAGN,KAAO,CACL,IAAIznH,EAAK+tG,EAAKt7E,UAAU92B,EAAIlnH,EAAQqtH,MAChC0qH,EAAc/3O,EAAQ+qH,QACtBitH,EAAYh4O,EAAQirH,QACpB4sH,EAAWve,EAAKz1B,WAAW7jM,EAAQqtH,MACnC5B,EAAK6tG,EAAKt7E,UAAU92B,EAAIlnH,EAAQstH,MAChC2qH,EAAcj4O,EAAQmrH,QACtB+sH,EAAYl4O,EAAQqrH,QACpBysH,EAAWxe,EAAKz1B,WAAW7jM,EAAQstH,MACnCoqH,EAAM,SAASl1M,EAAG3X,GAEpB,OADkB8vJ,EAAQk8D,eAAe3vH,EAAIqE,EAAI1gG,GAAO,EAAOgtN,EACxDd,CAAYv0M,EACrB,EACIo1M,EAAM,SAASp1M,EAAG3X,GAEpB,OADkB8vJ,EAAQk8D,eAAe3vH,EAAIuE,EAAI5gG,GAAO,EAAMitN,EACvDf,CAAYv0M,EACrB,EACAg3M,EAAU9B,EAAI13O,EAAQulD,GAAIwyL,GAC1B0B,EAAU/B,EAAI13O,EAAQwlD,GAAIwyL,GAC1B0B,EAAU9B,EAAI53O,EAAQylD,GAAIwyL,GAC1B0B,EAAU/B,EAAI53O,EAAQ0lD,GAAIwyL,EAC5B,CACA,IAAI7rH,EAAYrsH,EAAQsoB,MAAM+jG,UACZ,SAAdA,IAEAA,EADmB,SAAjBrsH,EAAQgF,KA2BhB,SAAuBw0O,EAASE,EAASD,EAASE,GAChD,IAAI72L,EAAID,EAOR,OANAA,EAAK9/C,KAAKD,IAAI22O,EAAUD,GAEtB12L,EADE22L,GAAWD,EACRE,EAAUC,EAEVA,EAAUD,GAET,IAAM32O,KAAKsgD,GAAKtgD,KAAKioD,MAAMlI,EAAID,EACzC,CAnCkBi3L,CAAcN,EAASE,EAASD,EAASE,GAEzC,GAGhBE,EAAU7vO,MAAK,SAASqhB,GAGtB,OAFAA,EAAErhB,KAAKonL,EAAQ5jF,KAAMA,GAAMpwD,KAAK,CAAC,GACjCwjI,EAAapgB,gBAAgBn1I,EAAG67F,GACzB77F,CACT,IACA,IACI0uN,EAyBN,SAA0BP,EAASE,EAASD,EAASE,EAASK,EAAcC,EAAiBC,GAC3F,IASIC,EAAOC,EAAO7mN,EAAUC,EATxBi3J,EAAeuvD,EAAa1xN,MAAM8jG,aAClCiuH,EAAYL,EAAa1xN,MAAM+jG,UAC/BiuH,EAAcN,EAAa1xN,MAAMuM,QACjC0lN,EAAYP,EAAah1O,KACzBw1O,EAAez3O,KAAKsgD,GAAK,IAAM42L,EAC/B96C,EAAOp8L,KAAKunD,IAAIkwL,GAChBt7C,EAAOn8L,KAAKsnD,IAAImwL,GAChBluH,EAAU0tH,EAAa1xN,MAAMgkG,QAC7BC,EAAUytH,EAAa1xN,MAAMikG,QAEjC,GAAkB,SAAdguH,EAAsB,CACH,UAAjB9vD,GACF0vD,EAAQX,EACRY,EAAQV,GACkB,QAAjBjvD,GACT0vD,EAAQV,EACRW,EAAQT,IAERQ,GAASX,EAAUC,GAAW,EAC9BW,GAASV,EAAUC,GAAW,GAEhB,SAAZrtH,IAGyBA,EAFN,UAAjBm+D,EACgB,SAAd4vD,EACEZ,EAAUD,EAAmB,OACxBC,EAAUD,EAAmB,QACvB,SAEXC,EAAUD,EAAmB,QACxBC,EAAUD,EAAmB,OACvB,SAES,QAAjB/uD,EACS,SAAd4vD,EACEZ,EAAUD,EAAmB,QACxBC,EAAUD,EAAmB,OACvB,SAEXC,EAAUD,EAAmB,OACxBC,EAAUD,EAAmB,QACvB,SAGP,UAGd,IAAIiB,EAAoB,CAAE//M,KAAM,EAAG0qB,OAAQ,EAAG5qB,OAAQ,GAClDkgN,EAAoB,CAAEjgN,QAAS,EAAGqlI,OAAQ,EAAGvlI,IAAK,GACtD,GAAkB,SAAd8/M,EAAsB,CACxB,IAAIM,EAAmBD,EAAkBnuH,GACzCh5F,GAAY+mN,EAAcn7C,EAAOw7C,EACjCnnN,EAAW8mN,EAAcp7C,EAAOy7C,CAClC,MAGEpnN,EAAW+mN,EAFaG,EAAkBnuH,GAG1C94F,EAAW8mN,EAFaI,EAAkBnuH,GAI5C4tH,GAAgB5mN,EAChB6mN,GAAgB5mN,CAClB,MACED,EAAW+mN,EAAc,GACc,IAAnC7vD,EAAa7mL,QAAQ,UACvBu2O,EAAQp3O,KAAK6mB,IAAI4vN,EAASC,GAAWlmN,EACrB,SAAZ+4F,IAAoBA,EAAU,WACS,IAAlCm+D,EAAa7mL,QAAQ,SAC9Bu2O,EAAQp3O,KAAK8mB,IAAI2vN,EAASC,GAAWlmN,EACrB,SAAZ+4F,IAAoBA,EAAU,UAElC6tH,GAASX,EAAUC,GAAW,EACd,SAAZntH,IAAoBA,EAAU,WAGlC8tH,GADmC,IAAjC3vD,EAAa7mL,QAAQ,OACfb,KAAK8mB,IAAI6vN,EAASC,IACmB,IAApClvD,EAAa7mL,QAAQ,UACtBb,KAAK6mB,IAAI8vN,EAASC,IAEjBD,EAAUC,GAAW,EAEhCnmN,EAAW8mN,EACK,WAAZ/tH,EACF6tH,GAAgB5mN,EACK,QAAZ+4F,IACT6tH,GAAgB5mN,GAGpB,IAAIonN,EAAgB76E,EAAQxzC,GACxBsuH,EAAiBb,EAAa1xN,MAAMklF,KAAKrlG,KACzC2yO,EAAaZ,EAAOjjO,OAGxB,MAAO,CAAEkjO,MAAOA,GAFFW,EAAaF,EAAgBC,GAAkB17C,EAE7Bi7C,MAAOA,IADxBU,EAAaF,EAAgBC,GAAkB37C,EACP5yE,UACzD,CAtHgByuH,CAAiBvB,EAASE,EAASD,EAASE,EAAS35O,EAASqsH,EAD/D+kE,EAAQ1C,KAAKmrD,EAAUh1O,SAEhCs1O,EAAQJ,EAAQI,MAChBC,EAAQL,EAAQK,MAChB9tH,EAAUytH,EAAQztH,QACtButH,EAAUz8L,KAAK,CACb,cAAe,CACb1iB,KAAM,QACN0qB,OAAQ,SACR5qB,MAAO,OACP8xF,GACF/jH,EAAG6xO,EACH9xO,EAAG6xO,EACHxnN,UAAW,UAAY05F,EAAY,IAAM8tH,EAAQ,IAAMC,EAAQ,MAC9DpwO,KAAK42K,EAAara,aAAc4zE,EAAOC,EApGqB,CAqGjE,CAyGF,IAIEY,GAA2B5sM,EAAW,CACxC,4CAA4Ct6B,EAASkuB,GAEnD,IACIwrG,EADM1L,KACa0L,aACnBk3E,EAAcH,KACdmvB,EAAc/E,KACdE,EAAW6E,EAAY7E,SACvBD,EAAa8E,EAAY9E,WACzB17G,EAAWxE,KACX3a,EAAStC,IACTnE,EAAYujI,KACZE,EAAOzjI,EAAUyjI,KACjBC,EAAO1jI,EAAU0jI,KACjBC,EAAO3jI,EAAU2jI,KACjBC,EAAO5jI,EAAU4jI,KAEjBtyF,EADgBD,KACwBC,wBACxC+7B,EAAU62D,KACVyB,EAAoBt4D,EAAQs4D,kBAC5BC,EAAkBv4D,EAAQu4D,gBAC1BtB,EAAaj3D,EAAQi3D,WACrBiD,EAAYpB,KAAoBoB,UAChClB,EAAiBF,KAAoBE,eACrCsH,EAAgB9F,KAChB+F,EAAY/B,KAuOhB,SAASgC,EAAan7K,EAAM53D,GAC1B,IAGIgzO,EAAOC,EAAOC,EAHdhzO,EAAI03D,EAAK53D,GAAG,GACZG,EAAIy3D,EAAK53D,GAAG,GACZ6K,EAAM+sD,EAAKz/D,OAUf,OAPA86O,EAAQr7K,EADRo7K,GAAShzO,EAAI,GAAK6K,GACE,GACpBqoO,EAAQt7K,EAAKo7K,GAAO,GAChBC,IAAU/yO,GAAKgzO,IAAU/yO,IAE3B8yO,EAAQr7K,EADRo7K,GAAShzO,EAAI,GAAK6K,GACE,GACpBqoO,EAAQt7K,EAAKo7K,GAAO,IAEf,CAACA,EAAOC,EAAOC,EACxB,CApPAt5M,EAAOluB,QAAU,SAASynO,EAAgBv6K,EAAU4yK,EAAUC,EAAa2H,GACpEA,IAAQA,EAAS,GACtB,IAAIt0H,EAAK2sH,EAAY3sH,GACrB,SAAS9iC,IACPm3J,EAAgBv6K,EAAU4yK,EAAUC,EAAa2H,MAC7CtI,EAAgBlyK,EAAS,KAAO6yK,EAAY74D,UAC9Cv8H,EAAO,CAAEg9L,WAAW,GAExB,CACA,SAASh9L,EAAOkkD,GACd,IAAI+4I,EAAe,CAAC,OACc,IAA9B7H,EAAY3B,gBACd2B,EAAY3B,eAAgB,EAC5BwJ,EAAe7G,EAAUjB,EAAUC,SAEC,IAAlCA,EAAYuB,oBACdvB,EAAYuB,mBAAoB,EAChCsG,EAAeT,EAAcrH,EAAUC,GACvC3sH,EAAGonB,YAAYowB,WAAY,GAEzBt7J,OAAOgkB,KAAKs0N,GAAcn7O,QAC5B2yH,EAASlpH,MAAM24F,GAAQ,CAAC,GAAG84I,UAAY,WAAa,eAAgBv0H,EAAIw0H,EAE5E,CACA,IAUIC,EACAC,EACAC,EACAC,EACAC,EAbAl9F,EADa33B,EAAGonB,YACOwQ,WACvBpxC,EAAWmmI,EAAYnmI,SACvBsuI,EAAanN,EAASnhI,GACtBuuI,EAAerN,EAAWlhI,GAiB9B,IAhBIsuI,GAAcC,KAChB/0H,EAAGonB,YAAY0Q,YAAa,GAE9BJ,EAAwB13B,GACxB0sH,EAASx2L,KAAK,IAAKw0L,EAAW5wK,IAMzBw6K,IAAW3H,EAAY3B,gBAAiB2B,EAAYuB,oBACvD2G,EAiLJ,SAAyBG,EAAaC,GACpC,IAAK,IAAIh6O,EAAI,EAAGA,EAAIg6O,EAAW57O,OAAQ4B,IAAK,CAC1C,IAAI69D,EAAOm8K,EAAWh6O,GACtB+5O,EAAY/5O,GAAK,GACjB,IAAK,IAAIiG,EAAI,EAAGA,EAAI43D,EAAKz/D,OAAQ6H,IAAK,CACpC8zO,EAAY/5O,GAAGiG,GAAK,GACpB,IAAK,IAAIC,EAAI,EAAGA,EAAI23D,EAAK53D,GAAG7H,OAAQ8H,IAClC6zO,EAAY/5O,GAAGiG,GAAGC,GAAK23D,EAAK53D,GAAGC,EAEnC,CACF,CACA,OAAO6zO,CACT,CA7LmBE,CAAgB,GAAIp7K,GA2FrC,SAA8BmhB,GAC5Bw5J,EAAoB,GACpB,IAAK,IAAIx5O,EAAI,EAAGA,EAAI6+D,EAASzgE,OAAQ4B,IAAK,CACxC,IAAI69D,EAAOgB,EAAS7+D,GAChBk6O,EAASpJ,EAAkBjzK,GAC3Bs8K,GAAaD,GAAUnJ,EAAgBlzK,GAC3C27K,EAAkBx5O,GAAK,GAEvB,IADA,IAAI8Q,EAAM+sD,EAAKz/D,OACN6H,EAAI,EAAGA,EAAI6K,EAAK7K,IACvB,GAAmB,MAAf43D,EAAK53D,GAAG,MACRk0O,GAAal0O,IAAM2oO,GAAQ3oO,IAAM4oO,GAAQ5oO,IAAM6oO,GAAQ7oO,IAAM8oO,GAAjE,CAGA,IACIqL,EADAC,EAAgBH,GAAUxI,EAAYuB,kBAEtCoH,IAAeD,EAAYpB,EAAan7K,EAAM53D,IAClD,IAAIE,EAAI03D,EAAK53D,GAAG,GACZG,EAAIy3D,EAAK53D,GAAG,GACZszD,EAASymB,EAAG79E,OAAOk4O,EAAgB,OAAS,UAAUp/L,KAAK,SAAUj7C,GAAGi7C,KAAK,SAAUh1C,GAAGokB,MAAM,CAClGrV,KAAM48F,EAAOx5F,WACbu4F,OAAQiB,EAAO1C,YACf,eAAgB,EAChB,kBAAmB,eAErB,GAAImrI,EAAe,CACjB,IAAI35L,EAAK05L,EAAU,GAAKj0O,EACpBw6C,EAAKy5L,EAAU,GAAKh0O,EACpByO,EAAQ8rC,EAAK,EAAI//C,KAAK6mB,IAAI7mB,KAAK8mB,IAAI,GAAI9mB,KAAKD,IAAI+/C,GAAM,GAAI,GAC1D5rC,EAAS4rC,EAAK,EAAI9/C,KAAK6mB,IAAI7mB,KAAK8mB,IAAI,GAAI9mB,KAAKD,IAAIggD,GAAM,GAAI,GAC/D4Y,EAAOne,QAAQuF,EAAK,mBAAqB,oBAAoB,GAAM1F,KAAK,QAASpmC,GAAOomC,KAAK,SAAUnmC,GAAQmmC,KAAK,IAAK90C,EAAI0O,EAAQ,GAAGomC,KAAK,IAAK70C,EAAI0O,EAAS,GAAGmmC,KAAK,YAAaowF,EAAa3qF,EAAK,EAAGC,EAAK,GAChN,MACE4Y,EAAOne,QAAQ,eAAe,GAAMH,KAAK,IAAK,GAAGA,KAAK,KAAM90C,GAAG80C,KAAK,KAAM70C,GAE5EozO,EAAkBx5O,GAAGiG,GAAK,CACxBtB,QAAS40D,EAAO72D,OAChBqiH,KACA++F,OAAQw2B,EACRn2B,OAAQo2B,EACRl2B,QAASm2B,GAEXj4B,EAAY7iL,KAAK85M,EAAkBx5O,GAAGiG,GA5BtC,CA8BJ,CACF,CApIEw0O,CADQ/9F,EAAUv6I,OAAO,KAAK84C,KAAK,QAAS,wBAkK9C,WAEE,GADAw+L,EAAmB,GACd56K,EAASzgE,OAAd,CACA,IAAI4B,EAAI,EACRy5O,EAAiBz5O,GAAK,CACpB2E,QAAS8sO,EAAS,GAAG,GACrB1sH,KACA++F,OAAQ42B,EACRv2B,OAAQw2B,EACRt2B,QAASu2B,GAEXr4B,EAAY7iL,KAAK+5M,EAAiBz5O,GATN,CAU9B,CA5KE66O,IAEEhB,GAAcnI,EAAY74D,QAAS,CACrC,IAAIo+D,EAAav6F,EAAUrkG,OAAO,eAC9Bw/L,EAAerG,EAAeC,EAAUC,EAAaA,EAAYnmI,UACrEwtI,EAAUh0H,EAAI,aAAc8yH,EAAcZ,EAC5C,CACA,SAASqD,EAAgBr4B,GACvBy3B,GAAUz3B,EAAIX,WAAWx5M,aAAa,UACtC6xO,GAAU13B,EAAIX,WAAWx5M,aAAa,UACtC0xO,EAAkBE,GAAQC,GAAQ11B,OAAS62B,CAC7C,CACA,SAASA,EAAqBp6L,EAAIC,GAChC,GAAKke,EAASzgE,OAAd,CACA,IAAIglD,EAAKw2L,EAAaF,GAAQC,GAAQ,GAClCr2L,EAAKs2L,EAAaF,GAAQC,GAAQ,GAClC97K,EAAOgB,EAAS66K,GAChB5oO,EAAM+sD,EAAKz/D,OACf,GAAI0yO,EAAkBjzK,GAAO,CAC3B,IAAIk9K,EAAMr6L,EACNs6L,EAAMr6L,EACN+wL,EAAYuB,oBACE+F,EAAan7K,EAAM87K,GACrB,KAAO97K,EAAK87K,GAAQ,GAChCqB,EAAM,EAEND,EAAM,GAGV,IAAK,IAAI7xM,EAAI,EAAGA,EAAIp4B,EAAKo4B,IACvB,GAAIA,IAAMywM,EAAV,CACA,IAAI5+I,EAAMl9B,EAAK30B,GACX6xD,EAAI,KAAOl9B,EAAK87K,GAAQ,KAC1B5+I,EAAI,GAAK33C,EAAK23L,GAEZhgJ,EAAI,KAAOl9B,EAAK87K,GAAQ,KAC1B5+I,EAAI,GAAKz3C,EAAK03L,EANU,CAW5B,GAFAn9K,EAAK87K,GAAQ,GAAKv2L,EAAK23L,EACvBl9K,EAAK87K,GAAQ,GAAKr2L,EAAK03L,GAClBlK,EAAkBjzK,GACrB,IAAK,IAAI53D,EAAI,EAAGA,EAAI6K,EAAK7K,IACvB,IAAK,IAAIC,EAAI,EAAGA,EAAI23D,EAAK53D,GAAG7H,OAAQ8H,IAClC23D,EAAK53D,GAAGC,GAAK0zO,EAAaF,GAAQzzO,GAAGC,EAI7C,MACE23D,EAAK87K,GAAQ,GAAKv2L,EAAK1C,EACvBmd,EAAK87K,GAAQ,GAAKr2L,EAAK3C,EAEzBshC,GAvC4B,CAwC9B,CACA,SAASs4J,IACPj+L,GACF,CAsBA,SAASk+L,EAAsBp3B,EAAWnB,GACxC,GAAkB,IAAdmB,EAAiB,CACnBs2B,GAAUz3B,EAAIX,WAAWx5M,aAAa,UACtC6xO,GAAU13B,EAAIX,WAAWx5M,aAAa,UACtC,IAAI+1D,EAAOgB,EAAS66K,GACf5I,EAAkBjzK,IAAUkzK,EAAgBlzK,IA1BrD,WACE,GAAKgB,EAASzgE,QACTygE,EAAS66K,IACT76K,EAAS66K,GAAQt7O,OAAtB,CAEA,IADA,IAAI68O,EAAa,GACRh1O,EAAI,EAAGA,EAAI44D,EAAS66K,GAAQt7O,OAAQ6H,IACvCA,IAAM0zO,GACRsB,EAAWt8O,KACTkgE,EAAS66K,GAAQzzO,IAInBg1O,EAAW78O,OAAS,IAA6B,IAAtB68O,EAAW78O,QAAqC,MAArB68O,EAAW,GAAG,MACvD,IAAXtB,IACFsB,EAAW,GAAG,GAAK,KAErBp8K,EAAS66K,GAAUuB,EACnBh5J,IACA3lC,IAfkC,CAiBtC,CAOM4+L,EAEJ,CACF,CAwDA,SAASC,EAAoBz6L,EAAIC,IAXjC,SAAmBD,EAAIC,GACrB,GAAKke,EAASzgE,OACd,IAAK,IAAI4B,EAAI,EAAGA,EAAI6+D,EAASzgE,OAAQ4B,IACnC,IAAK,IAAIiG,EAAI,EAAGA,EAAI44D,EAAS7+D,GAAG5B,OAAQ6H,IACtC,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAI24D,EAAS7+D,GAAGiG,GAAG7H,OAAQ8H,GAAK,EAClD24D,EAAS7+D,GAAGiG,GAAGC,EAAI,GAAK0zO,EAAa55O,GAAGiG,GAAGC,EAAI,GAAKw6C,EACpDme,EAAS7+D,GAAGiG,GAAGC,EAAI,GAAK0zO,EAAa55O,GAAGiG,GAAGC,EAAI,GAAKy6C,CAI5D,CAEEy6L,CAAU16L,EAAIC,GACdshC,GACF,CACA,SAASy4J,EAAyBz4B,IAChCy3B,GAAUz3B,EAAIX,WAAWx5M,aAAa,aACzB4xO,EAAS,GACtBD,EAAiBC,GAAQz1B,OAASk3B,CACpC,CACA,SAASR,IACPr+L,GACF,CACA,SAASs+L,EAAqBx3B,GACV,IAAdA,GA8CR,SAA8Br+F,GAC5B,GAAK0nH,EAAW1nH,EAAGonB,YAAY5gC,UAA/B,CACAkxC,EAAwB13B,GACxB,IAAI5lF,EAAK4lF,EAAGonB,YAAY+mG,sBACpB/2E,GAAcp3C,EAAG98C,QAAU,CAAC,GAAGk0F,YAAc,GACjD,GAAIh9H,EAAKg9H,EAAW/9J,OAAQ,CAE1B,IADA,IAAI8xC,EAAO,GACFhH,EAAI,EAAGA,EAAIizH,EAAW/9J,OAAQ8qC,IACjCA,IAAM/J,GACR+Q,EAAKvxC,KAAKw9J,EAAWjzH,WAGlB67E,EAAGonB,YAAY+mG,sBACtB,IAAImI,EAAkBt2H,EAAGonB,YAAYgwB,WAAWh9H,GAChD4lF,EAAGonB,YAAYmvG,UAAY,CACzBpwH,KAAMmwH,EAAgBnwH,KACtBC,KAAMkwH,EAAgBlwH,MAExB4F,EAASlpH,KAAK,eAAgBk9G,EAAI,CAChCo3C,WAAYjsH,GAEhB,CApBgD,CAqBlD,CAnEMqrM,CAAqBx2H,EAEzB,CAcF,CAoDF,IAIEy2H,GAAgBvvM,EAAW,CAC7B,gCAAgCt6B,EAASkuB,GAEvC,IAAIkQ,EAAKD,IACLihF,EAAWxE,KACX0gB,EAAMtN,KACNw3F,EAAO92B,KACPyvC,EAAYT,KAAmBS,UAC/BsJ,EAAkBP,KAClBE,EAAY/B,KACZv6F,EAA0BD,KAAyBC,wBACnD7qC,EAAStC,IACT2/E,EAAU1Q,KACV7lC,EAAc7B,KAAwB6B,YACtC6pE,EAAcH,KACduC,EAAYH,KACZr5G,EAAYkoI,KACZ76D,EAAUo7D,KACVyB,EAAgB78D,EAAQ68D,cAO5B,SAASjmD,EAAKrqE,GACZ,IAAIsxB,EAAatxB,EAAGonB,YAKpB,IAAK,IAAIjmI,KAJTmwI,EAAWolG,iBAAiB5iM,UAAU,QAAQ3D,SAC9CmhG,EAAWqlG,iBAAiB7iM,UAAU,QAAQ3D,SAC9CmhG,EAAWolG,iBAAiB5iM,UAAU,QAAQ3D,SAC9CmhG,EAAWqlG,iBAAiB7iM,UAAU,QAAQ3D,SAChCmhG,EAAWoN,OAAQ,CAC/B,IAAIk4F,EAAatlG,EAAWoN,OAAOv9I,GAAGy1O,WAClCA,IACFA,EAAW9iM,UAAU,QAAQ3D,SAC7BymM,EAAW9iM,UAAU,QAAQ3D,SAEjC,CACA,IAAK,IAAIl1C,EAAI,EAAGA,EAAIq2I,EAAW8R,OAAO/pJ,OAAQ4B,KACP,IAAjCq2I,EAAW8R,OAAOnoJ,GAAGssG,SACvB6oG,EAAQpwF,EAAI/kH,EAGlB,CACA,SAAS47O,EAAgB72H,GACvB,QAASA,EAAGonB,YAAY0Q,UAC1B,CACA,SAASg/F,EAAqB92H,GAC5B,OAAQA,EAAG4Z,SAASnoB,MAAMS,aAC5B,CACA,SAASk+F,EAAQpwF,EAAIpjH,GACnBojH,EAAGonB,YAAY2vG,UAAUjjM,UAAU,4BAA8Bl3C,EAAQ,MAAMuzC,SAC/E,IAAIpV,EAAI04I,EAAQ08D,6BAA6BnwH,EAAIpjH,GAC7C9D,EAAUiiC,EAAEjiC,QACZ2sJ,EAAW1qH,EAAE0qH,SAgBjB,SAASuxF,EAAUC,GACjB,IAAIhqO,EAAIqjO,EAActwH,EAAIlnH,GACtB6rG,EAAQ,CACV,aAAc/nG,EACd,YAAa9D,EAAQisH,SACrB93G,KAEE1E,EAAUzP,EAAQyP,QAClB+3K,EAAYxnL,EAAQgsH,UACpBy7D,EAAYznL,EAAQwE,KAAKwS,MAAQhX,EAAQwE,KAAKsR,MAAQ,gBACtDqtK,EAAYnjL,EAAQwE,KAAKwS,MACzBonO,EAAWp+O,EAAQwE,KAAK8kH,KACvB65D,IAAkC,IAArBnjL,EAAQ04G,WACxByqE,EAAY,EACZi7D,EAAW,SAEb,IAAIC,EAA6B,MAApBlqO,EAAEA,EAAE5T,OAAS,GACtB2xO,EAAgB8L,EAAqB92H,IAAOlnH,EAAQ04G,UAAYwO,EAAGonB,YAAYwmG,oBAAsBhxO,EACrGouO,IACF1qD,EAAY62D,EAAS,gBAAkBn3H,EAAGonB,YAAY9hB,YAAYR,UAClEv8G,EAAUy3G,EAAGonB,YAAY9hB,YAAY/8G,SAEvC,IAIIslO,EAJAqE,EAAa+E,EAAW75O,OAAO,KAAKi5C,QAAQ,eAAe,GAAMH,KAAK,CAAE,aAAct5C,IACtF4f,EAAO01N,EAAW90O,OAAO,QAAQ84C,KAAKyuD,GAAOr/E,MAAM,UAAW/c,GAASzF,KAAK+pG,EAAOjB,OAAQ20E,GAAWz9K,KAAK+pG,EAAO58F,KAAMqwK,GAAWx9K,KAAKonL,EAAQ5N,SAAU46D,EAAUj7D,GAKxK,GAJAm7D,EAAYlF,EAAYlyH,EAAIlnH,GAC5Bk7O,EAAUh0H,EAAIpjH,EAAO9D,EAASo5O,IAE1BlH,GAAiBhrH,EAAG4Z,SAASnoB,MAAMS,iBAAe27H,EAAcl6F,EAAY3zB,EAAG98C,OAAQ,SAAUpqE,IACjGkyO,EAAe,CACjBxuN,EAAK8I,MAAM,CACTnb,OAAQ,SAEV,IAAIwiO,EAAc,CAChB/sO,QAAS4c,EAAK7e,OACd8nJ,WACAzlC,KACA6tH,cACA/5D,QAASh7K,EAAQsoB,MAAMnO,MAAQna,EAAQsoB,MAAMkiG,aAC7C0nH,eAAe,GAGblxK,EAAWixK,EAAU99N,EAAG+yG,GAC5Bq0H,EAAgBv6K,EAAUt9C,EAAMmwN,EAClC,MACM3sH,EAAG4Z,SAASnoB,MAAMS,cAsB5B,SAA0B8N,EAAIq3H,EAAWvE,EAAcl2O,EAAOq6O,EAAYpJ,GACxE,IAOIxvL,EAAIE,EAAID,EAAIE,EAAI4yL,EAASC,EACzBp6L,EAAIgjB,EAAI9c,EAAI7K,EAAIglM,EAAMC,EAAMC,EAAMC,EAClCxG,EA4BAyG,EArCAC,EAAW,GACXC,EAAY,GACZpM,EAAyC,UAA3BsH,EAAarH,UAC3BC,EAAyC,UAA3BoH,EAAanH,UAC3BkM,EAA+B,SAAtB/E,EAAah1O,KACtBg6O,EAA+B,SAAtBhF,EAAah1O,KACtBo2I,EAAa25F,EAAY35F,WAIzBg+F,EAAalnM,EAAGsI,OAAO+jM,EAAU15O,OAAOjC,YACxC2oH,EAAK+tG,EAAKt7E,UAAU92B,EAAI8yH,EAAa3sH,MACrCwqH,EAAWve,EAAKz1B,WAAWm2C,EAAa3sH,MACxC5B,EAAK6tG,EAAKt7E,UAAU92B,EAAI8yH,EAAa1sH,MACrCwqH,EAAWxe,EAAKz1B,WAAWm2C,EAAa1sH,MACxC2xH,EAAcjF,EAAajvH,QAC3Bm0H,EAAYlF,EAAa/uH,QACzBk0H,EAAcnF,EAAa7uH,QAC3Bi0H,EAAYpF,EAAa3uH,QACzBqsH,EAAM,SAASl1M,EAAG3X,GAEpB,OADkB8vJ,EAAQk8D,eAAe3vH,EAAIqE,EAAI1gG,GAAO,EAAOgtN,EACxDd,CAAYv0M,EACrB,EACIo1M,EAAM,SAASp1M,EAAG3X,GAEpB,OADkB8vJ,EAAQk8D,eAAe3vH,EAAIuE,EAAI5gG,GAAO,EAAMitN,EACvDf,CAAYv0M,EACrB,EACI68M,GAAM1kE,EAAQq8D,eAAe9vH,EAAIqE,GAAI,EAAOssH,GAC5CyH,GAAM3kE,EAAQq8D,eAAe9vH,EAAIuE,GAAI,EAAMqsH,GAC3CyH,GAAiBC,KACjB3L,GAAc,CAChB/sO,QAASy4O,GAAe16O,OACxBqiH,KACA++F,OAAQw5B,GACRn5B,OAAQo5B,GACRl5B,QAASm5B,IAKX,SAASH,KACP,OAAOT,EAASa,KAA0BrB,CAC5C,CACA,SAASqB,KACP,IAAIC,EAAkB,GAClBC,EAAe/8O,KAAK6mB,IAAIowN,EAAax1O,KAAKwS,MAAO6oO,GACjD38M,EAAIi7M,EAAW75O,OAAO,KAAK84C,KAAK,aAAct5C,GAAOs5C,KAAK,eAAe,GAC7Ela,EAAE5+B,OAAO,QAAQ84C,KAAK,IAAKmhM,EAAUnhM,KAAK,MAAM5wB,MAAM,CACpDnb,OAAQ,OACR,eAAgByuO,EAChB,iBAAkB,MAGpB,IAAIC,EAAc,CAChB,eAAgB,KAGdC,EAAej9O,KAAK6mB,IAAIk2N,EAAe,EAAGD,GAa9C,OAZA38M,EAAE5+B,OAAO,UAAU84C,KAAK,CACtB,kBAAmB,cACnB2L,GAAI2pL,EAAcgF,EAAIsC,EAAa1tH,SAAW0tH,EAAaz0L,GAAKmyL,EAAIsC,EAAaz0L,GAAI05L,GACrFj2L,GAAI4pL,EAAcgF,EAAIoC,EAAaztH,SAAWytH,EAAav0L,GAAKmyL,EAAIoC,EAAav0L,GAAI05L,GACrF5wN,EAAGyxN,IACFxzN,MAAMuzN,GAAaxiM,QAAQ,eAAe,GAC7Cra,EAAE5+B,OAAO,UAAU84C,KAAK,CACtB,kBAAmB,YACnB2L,GAAI2pL,EAAcgF,EAAIsC,EAAa1tH,SAAW0tH,EAAax0L,GAAKkyL,EAAIsC,EAAax0L,GAAI05L,GACrFl2L,GAAI4pL,EAAcgF,EAAIoC,EAAaztH,SAAWytH,EAAat0L,GAAKkyL,EAAIoC,EAAat0L,GAAI05L,GACrF7wN,EAAGyxN,IACFxzN,MAAMuzN,GAAaxiM,QAAQ,eAAe,GACtCra,CACT,CACA,SAAS+8M,GAAe77B,GACtB,GAAI25B,EAAgB72H,GAClB03H,EAAW,UAGb,GAAIG,EAEAH,EADyB,SAAvBx6B,EAAIh+L,OAAOE,QACF,OAEmD,gBAAnD89L,EAAIh+L,OAAOqwF,WAAW,mBAAmBnzG,MAA0B,0BAA4B,4BAEvG,CACL,IAAI48O,EAAWrM,GAAY/sO,QAAQ26C,wBAC/B3e,EAAIo9M,EAAS1lN,MAAQ0lN,EAASxlN,KAC9B1nB,EAAIktO,EAASzlN,OAASylN,EAAS3lN,IAC/BjyB,EAAI87M,EAAIhjK,QAAU8+L,EAASxlN,KAC3BnyB,EAAI67M,EAAI/iK,QAAU6+L,EAAS3lN,IAC3BlpB,GAAU2tO,GAAUl8M,EAAI+7M,GAAY7rO,EAAI8rO,IAAc16B,EAAI77J,SAAWm8J,EAAYC,UAAUr8M,EAAIw6B,EAAG,EAAIv6B,EAAIyK,GAAK,OACnH8zM,EAAUy3B,EAAWltO,GACrButO,EAAWvtO,EAAO7G,MAAM,KAAK,EAC/B,CACF,CACA,SAASi1O,GAAUr7B,GACb25B,EAAgB72H,KAChBwrH,IACF4F,EAAUZ,EAAIsC,EAAa1tH,UAEzBsmH,IACF2F,EAAUX,EAAIoC,EAAaztH,UAEH,SAAtBytH,EAAah1O,KACfmzO,EAAS6B,EAAat2N,MAEtB6hC,EAAKmtL,EAAcsH,EAAaz0L,GAAKmyL,EAAIsC,EAAaz0L,IACtDE,EAAKmtL,EAAcoH,EAAav0L,GAAKmyL,EAAIoC,EAAav0L,IACtDD,EAAKktL,EAAcsH,EAAax0L,GAAKkyL,EAAIsC,EAAax0L,IACtDE,EAAKktL,EAAcoH,EAAat0L,GAAKkyL,EAAIoC,EAAat0L,KAEpDH,EAAKC,GACPnB,EAAKkB,EACLm5L,EAAO,KACPllM,EAAKgM,EACLm5L,EAAO,OAEPt6L,EAAKmB,EACLk5L,EAAO,KACPllM,EAAK+L,EACLo5L,EAAO,OAEJ/L,GAAentL,EAAKC,GAAMktL,GAAentL,EAAKC,GACjDvH,EAAKsH,EACL+4L,EAAO,KACPr9K,EAAKzb,EACL+4L,EAAO,OAEPtgM,EAAKuH,EACL84L,EAAO,KACPr9K,EAAK1b,EACLg5L,EAAO,MAETwB,GAAe77B,GACf+7B,GAAiBhC,EAAYnE,GAC7BoG,GAA8B7B,EAAWvE,EAAc9yH,GACvD2sH,GAAYztB,OAAsB,SAAbw4B,EAAsByB,GAAYC,GACvDzM,GAAY/tN,OAASs+L,EAAIt+L,OAC3B,CACA,SAAS45N,KACH3B,EAAgB72H,KACpB4/F,EAAUy3B,GACVgC,GAAiBpC,GACjBG,EAAYC,EAAWr3H,EAAI8yH,GAC3B9mH,EAASlpH,KAAK,eAAgBk9G,EAAI6tH,EAAY15F,gBAChD,CACA,SAASskG,KACH5B,EAAgB72H,IACpBq5H,GAAiBpC,EACnB,CACA,SAASkC,GAAUx9L,EAAIC,GACrB,GAA0B,SAAtBk3L,EAAah1O,KAAiB,CAChC,IAAIw7O,EAAO,SAAS/hH,GAClB,OAAOA,CACT,EACIgiH,EAAQD,EACRE,EAAQF,EACR9N,EACFt3F,EAAW,UAAW4+F,EAAa1tH,QAAU+yH,GAAI/G,EAAUz1L,KAE3D49L,EAAQ,SAAgBn4O,GACtB,OAAO+2O,GAAI3H,EAAIpvO,GAAKu6C,EACtB,EACI0oE,GAAkB,SAAZA,EAAGvmH,OAAiBy7O,EAAQ9lE,EAAQ27D,WAAWmK,KAEvD7N,EACFx3F,EAAW,UAAW4+F,EAAaztH,QAAU+yH,GAAI/G,EAAUz1L,KAE3D49L,EAAQ,SAAgBn4O,GACtB,OAAO+2O,GAAI1H,EAAIrvO,GAAKu6C,EACtB,EACI2oE,GAAkB,SAAZA,EAAGzmH,OAAiB07O,EAAQ/lE,EAAQ27D,WAAWoK,KAE3DtlG,EAAW,OAAQ4+F,EAAat2N,KAAOi9N,EAASxI,EAAQsI,EAAOC,GACjE,MACMhO,EACFt3F,EAAW,UAAW4+F,EAAa1tH,QAAU+yH,GAAI/G,EAAUz1L,KAE3Du4F,EAAW,KAAM4+F,EAAaz0L,GAAK85L,GAAI95L,EAAK1C,IAC5Cu4F,EAAW,KAAM4+F,EAAax0L,GAAK65L,GAAI75L,EAAK3C,KAE1C+vL,EACFx3F,EAAW,UAAW4+F,EAAaztH,QAAU+yH,GAAI/G,EAAUz1L,KAE3Ds4F,EAAW,KAAM4+F,EAAav0L,GAAK65L,GAAI75L,EAAK3C,IAC5Cs4F,EAAW,KAAM4+F,EAAat0L,GAAK45L,GAAI55L,EAAK5C,KAGhDy7L,EAAUnhM,KAAK,IAAKo6L,EAActwH,EAAI8yH,IACtCmG,GAAiBhC,EAAYnE,GAC7BkB,EAAUh0H,EAAIpjH,EAAOk2O,EAAcZ,EACrC,CACA,SAASkH,GAAYz9L,EAAIC,GACvB,GAAIk8L,EAAQ,CACV,IAAIwB,EAAO,SAAS/hH,GAClB,OAAOA,CACT,EACIgiH,EAAQD,EACRE,EAAQF,EACR9N,EACFt3F,EAAW,UAAW4+F,EAAa1tH,QAAU+yH,GAAI/G,EAAUz1L,KAE3D49L,EAAQ,SAAgBn4O,GACtB,OAAO+2O,GAAI3H,EAAIpvO,GAAKu6C,EACtB,EACI0oE,GAAkB,SAAZA,EAAGvmH,OAAiBy7O,EAAQ9lE,EAAQ27D,WAAWmK,KAEvD7N,EACFx3F,EAAW,UAAW4+F,EAAaztH,QAAU+yH,GAAI/G,EAAUz1L,KAE3D49L,EAAQ,SAAgBn4O,GACtB,OAAO+2O,GAAI1H,EAAIrvO,GAAKu6C,EACtB,EACI2oE,GAAkB,SAAZA,EAAGzmH,OAAiB07O,EAAQ/lE,EAAQ27D,WAAWoK,KAE3DtlG,EAAW,OAAQ4+F,EAAat2N,KAAOi9N,EAASxI,EAAQsI,EAAOC,GACjE,MAAO,GAAI3B,GACT,GAAiB,4BAAbH,EAAwC,CAC1C,IAAIgC,EAAQr7L,EAAK1C,EACbg+L,EAAQjO,EAAcntL,EAAK3C,EAAK2C,EAAK3C,EACzCs4F,EAAW,KAAM4+F,EAAaz0L,GAAKmtL,EAAckO,EAAQvB,GAAIuB,IAC7DxlG,EAAW,KAAM4+F,EAAav0L,GAAKmtL,EAAciO,EAAQvB,GAAIuB,GAC/D,MAAO,GAAiB,0BAAbjC,EAAsC,CAC/C,IAAIkC,EAAQt7L,EAAK3C,EACbk+L,EAAQnO,EAAcltL,EAAK5C,EAAK4C,EAAK5C,EACzCs4F,EAAW,KAAM4+F,EAAax0L,GAAKktL,EAAcoO,EAAQzB,GAAIyB,IAC7D1lG,EAAW,KAAM4+F,EAAat0L,GAAKktL,EAAcmO,EAAQzB,GAAIyB,GAC/D,MACK,CACL,IAAIpyN,EAAM,SAAS5b,GACjB,OAAkC,IAA3B6rO,EAASh7O,QAAQmP,EAC1B,EACIiuO,EAAOryN,EAAI,KACXsyN,EAAOtyN,EAAI,KACXuyN,EAAOvyN,EAAI,KACXwyN,EAAOxyN,EAAI,KACXyyN,EAAOJ,EAAO7iM,EAAK2E,EAAK3E,EACxBkjM,EAAOJ,EAAO9/K,EAAKre,EAAKqe,EACxBmgL,EAAOJ,EAAO78L,EAAKxB,EAAKwB,EACxBk9L,GAAOJ,EAAO3nM,EAAKqJ,EAAKrJ,EACxBo5L,IACEoO,IAAMI,EAAOjjM,EAAK2E,GAClBm+L,IAAMI,EAAOlgL,EAAKre,MAEnB8vL,GAAeyO,EAAOD,EAAOtC,GAAalM,GAAewO,EAAOC,EAAOvC,KAC1E1jG,EAAWojG,EAAMxE,EAAawE,GAAQ5L,EAAcwO,EAAO9B,GAAI8B,IAC/DhmG,EAAWqjG,EAAMzE,EAAayE,GAAQ7L,EAAcyO,EAAO/B,GAAI+B,KAE7DE,GAAOD,EAAOzC,IAChBzjG,EAAWsjG,EAAM1E,EAAa0E,GAAQhM,EAAc4O,EAAOjC,GAAIiC,IAC/DlmG,EAAWujG,EAAM3E,EAAa2E,GAAQjM,EAAc6O,GAAOlC,GAAIkC,KAEnE,CACAhD,EAAUnhM,KAAK,IAAKo6L,EAActwH,EAAI8yH,IACtCmG,GAAiBhC,EAAYnE,GAC7BkB,EAAUh0H,EAAIpjH,EAAOk2O,EAAcZ,EACrC,CACA,SAAS+G,GAAiBqB,EAAaC,GAIrC,SAASC,IACP,IAAIC,EAAmC,SAAvBF,EAAcz8O,KAC1B48O,EAAaJ,EAAYxmM,UAAU,eAAe6B,KAAK,CAAC,IACxDpsC,EAAc,EAClBmxO,EAAWljM,QAAQp6C,OAAO,QAAQ84C,KAAK,CACrCjmC,KAAM,OACN,YAAa,UACb27F,OAAQ,OACR,eAAgBriG,IACf8sC,QAAQ,cAAc,GACzB,IAAI2sL,EAAOwN,EACThF,EAAc+O,EAAcn1H,QAAU8iB,EAAI3V,SACxCkoH,EAAY,CAACF,EAAcl8L,GAAIk8L,EAAcj8L,IAAMm1H,EAAQ67D,kBAAkBiL,EAAc/9N,KAAM4pF,EAAUqoI,YAG3GxL,EAAOyN,EACThF,EAAc6O,EAAcl1H,QAAU6iB,EAAI3V,SACxCkoH,EAAY,CAACF,EAAch8L,GAAIg8L,EAAc/7L,IAAMi1H,EAAQ67D,kBAAkBiL,EAAc/9N,KAAM4pF,EAAUuoI,YAK/G,GAFA3L,EAAOvvD,EAAQu8D,qCAAqChN,EAAMz5N,GAC1D05N,EAAOxvD,EAAQu8D,qCAAqC/M,EAAM15N,GACtDiiO,GAAeE,EAAa,CAC9B,IAAIiP,EAAY,KAAO3X,EAAO,EAAIz5N,GAAe,KAAO05N,EAAO,EAAI15N,GAAe,oCAClFmxO,EAAWxkM,KAAK,IAAKykM,EACvB,MAAO,GAAInP,EAAa,CACtB,IAAIoP,EAAW,KAAO5X,EAAO,EAAIz5N,GAAe,KAAO05N,EAAO,EAAI15N,GAAe,gBACjFmxO,EAAWxkM,KAAK,IAAK0kM,EACvB,KAAO,CACL,IAAIC,EAAW,KAAO7X,EAAO,EAAIz5N,GAAe,KAAO05N,EAAO,EAAI15N,GAAe,gBACjFmxO,EAAWxkM,KAAK,IAAK2kM,EACvB,CACF,EAnCIrP,GAAeE,IACjB8O,GAmCJ,CACA,SAASnB,GAAiBiB,GACxBA,EAAYxmM,UAAU,eAAe3D,QACvC,CACA,SAAS+oM,GAA8B4B,EAAYP,EAAeQ,GAChE,IAAI50H,EAAOo0H,EAAcp0H,KACrBC,EAAOm0H,EAAcn0H,KACrB40H,EAAM5oB,EAAKt7E,UAAUikG,EAAK50H,GAC1B80H,EAAM7oB,EAAKt7E,UAAUikG,EAAK30H,GAC1B80H,EAAW,GACF,UAAT/0H,GAAqB60H,EAAItzE,YAAWwzE,GAAY/0H,GACvC,UAATC,GAAqB60H,EAAIvzE,YAAWwzE,GAAY90H,GACpD8jE,EAAQpC,WACNgzD,EACAI,EAAW,OAASH,EAAI3zG,YAAYi3C,KAAO68D,EAAW,KACtDH,EAEJ,CAhRAv9B,EAAY7iL,KAAKgyM,IACjB0L,GAAe16O,OAAOw9O,YAAcpC,EAgRtC,CA7UQqC,CAAiBp7H,EAAIxjG,EAAM1jB,EAAS8D,EAAOq6O,EAAYpJ,IACzB,IAArB/0O,EAAQ04G,UACjBh1F,EAAK8I,MACH,iBACA6xN,GAAUtqI,EAAOtkG,QAAQ+3K,GAAa/3K,GAAW,GAAM,SAAW,OAIxEiU,EAAK7e,OAAO+hB,iBAAiB,SAAS,WACpC,OAsVN,SAAuBsgG,EAAIxjG,GACzB,GAAKs6N,EAAqB92H,GAA1B,CACA,IAAIpgH,EAAU4c,EAAK7e,OACfy8B,GAAMx6B,EAAQmD,aAAa,cAC/B,GAAIq3B,GAAM,EAAG,CACX,GAAIA,IAAO4lF,EAAGonB,YAAYwmG,kBAExB,YADAyN,EAAgBr7H,GAGlBA,EAAGonB,YAAYwmG,kBAAoBxzM,EACnC4lF,EAAGonB,YAAYk0G,iBAAmBD,EAClChxD,EAAKrqE,EACP,CAXqC,CAYvC,CAnWau7H,CAAcv7H,EAAIxjG,EAC3B,GACF,CAvEK1jB,EAAQu6I,SAA8B,IAApBv6I,EAAQyuG,UACT,UAAlBzuG,EAAQksH,MACVgyH,EAAUh3H,EAAGonB,YAAYsvG,kBACC,UAAjB59O,EAAQqtH,MAAqC,UAAjBrtH,EAAQstH,KAC7C4wH,EAAUh3H,EAAGonB,YAAYuvG,kBACE,YAAlB79O,EAAQksH,MACjBgyH,EAAUvxF,EAAS+1F,mBAEf/1F,EAAS2qF,aAEX4G,GADevxF,EAASq1D,cAAgBr1D,GACrBmxF,YAEnBI,EAAUh3H,EAAGonB,YAAYuvG,kBA4D/B,CACA,SAASS,EAAYC,EAAWr3H,EAAI8yH,GAClC,IAAIoI,GAAYpI,EAAa3sH,KAAO2sH,EAAa1sH,MAAM/pH,QAAQ,SAAU,IAAIA,QAAQ,uBAAwB,IAC7G6tL,EAAQpC,WACNuvD,EACA6D,EAAW,OAASl7H,EAAGonB,YAAYi3C,KAAO68D,EAAW,KACrDl7H,EAEJ,CA0TA,SAASy5H,EAASxI,EAAQsI,EAAOC,GAC/B,OAAOvI,EAAO50O,QAAQ+pG,EAAUmoI,WAAW,SAAS/4J,GAClD,IAAI87J,EAAc,EACdC,EAAc/7J,EAAQlyD,OAAO,GAC7BkuN,EAAUprI,EAAUqoI,SAAS8C,GAC7BE,EAAUrrI,EAAUuoI,SAAS4C,GAC7BG,EAAUtrI,EAAUwoI,UAAU2C,GAQlC,OAAOA,EAPW/7J,EAAQ14E,OAAO,GAAGT,QAAQ+pG,EAAUooI,SAAS,SAASoD,GACtE,OAAIN,GAAeI,IACfF,EAAQF,GAAcM,EAAQ2H,EAAM3H,GAC/BH,EAAQH,KAAcM,EAAQ4H,EAAM5H,IAC7CN,KAHmCM,CAKrC,GAEF,GACF,CAeA,SAASyJ,EAAgBr7H,GAClB82H,EAAqB92H,IACjBA,EAAGonB,YAAYwmG,mBACd,IACRl2F,EAAwB13B,UACjBA,EAAGonB,YAAYwmG,kBACtBvjD,EAAKrqE,GAET,CArdAllF,EAAOluB,QAAU,CACfy9K,OACA+lB,UACAqrC,iBAmdF,SAA0Bz7H,GACxB,GAAK82H,EAAqB92H,GAA1B,CACA03B,EAAwB13B,GACxB,IAAI5lF,EAAK4lF,EAAGonB,YAAYwmG,kBACpBxqF,GAAUpjC,EAAG98C,QAAU,CAAC,GAAGkgF,QAAU,GACzC,GAAIhpH,EAAKgpH,EAAO/pJ,OAAQ,CAEtB,IADA,IAAI8xC,EAAO,GACFhH,EAAI,EAAGA,EAAIi/G,EAAO/pJ,OAAQ8qC,IAC7BA,IAAM/J,GACR+Q,EAAKvxC,KAAKwpJ,EAAOj/G,IAIrB,cADO67E,EAAGonB,YAAYwmG,kBACf5hH,EAASlpH,KAAK,eAAgBk9G,EAAI,CACvCojC,OAAQj4G,GAEZ,CAfqC,CAgBvC,EAneE6oM,YAoeJ,IAIE0H,GAAkBx0M,EAAW,CAC/B,oCAAoCt6B,EAASkuB,GAE3C,IAAIkxF,EAAWxE,KACXyiE,EAAQ9uC,KACR4zC,EAAUp5C,KACVgmG,EAAQzT,KACRuT,EAAmBhF,KAAgBgF,iBACnCvzG,EAAMtN,KACN1+F,EAAIgsG,EAAIhsG,EACRs3E,EAAiB14E,EAAOluB,QAAU,CAAC,EA4NvC,SAASgvO,EAAgB57H,EAAIisB,GAC3B,IAOIr2E,EAAI36D,EAPJsd,EAAS0zH,EAAGqwE,cACZ5kH,EAAOn/E,EAAOxV,aAAa,aAC3BghB,EAAMxL,EAAOxV,aAAa,cAAe,EACzCuuI,EAAatxB,EAAGonB,YAChBqS,EAAO,CAAC,EACRqM,EAASipC,EAAQ5jJ,KAAK60E,EAAI,MAAM,GAChCy/E,EAAmBnuD,EAAWsuD,wBAElC,GAAa,SAATloG,EAAiB,CACnB,IAGImkJ,EAHAC,EAAc,OAAR/3N,EAAe,GAAM,EAC3B65B,GAAM,EAAIk+L,GAAO,EACjBj+L,GAAM,EAAIi+L,GAAO,EAErB,IAAK7gP,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAE7B,KADA26D,EAAKkwF,EAAO7qJ,IACJitK,WAEN,GADA2zE,EAASjmL,EAAG+7F,MACA,SAAR5tI,EACF01H,EAAKoiG,EAAS,eAAgB,OACzB,GAAY,UAAR93N,OACiB,IAAtB6xC,EAAGupI,qBAAmD,IAAtBvpI,EAAGwpI,eACrC3lD,EAAKoiG,EAAS,eAAgB,OACC,IAAtBjmL,EAAGupI,gBACZ1lD,EAAKoiG,EAAS,cAAgBjmL,EAAG2pI,kBACjC9lD,EAAKoiG,EAAS,UAAY,CAAC,KAAMjmL,EAAGwpI,sBACL,IAAtBxpI,EAAGwpI,gBACZ3lD,EAAKoiG,EAAS,UAAY,CAACjmL,EAAGupI,eAAgB,MAC9C1lD,EAAKoiG,EAAS,cAAgBjmL,EAAG2pI,mBAEjC9lD,EAAKoiG,EAAS,UAAY,CAACjmL,EAAGupI,eAAgBvpI,EAAGwpI,qBAEtB,IAAzBxpI,EAAG8pI,oBACLjmD,EAAKoiG,EAAS,eAAiBjmL,EAAG8pI,kBACT,OAArBD,GAA8B7pI,EAAG8pI,oBACnCD,EAAmB,YAGlB,CACL,IAAIs8C,EAAW,CACbnmL,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IAChB8lB,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,KAEdksM,EAAW,CACbp+L,EAAKm+L,EAAS,GAAKl+L,EAAKk+L,EAAS,GACjCn+L,EAAKm+L,EAAS,GAAKl+L,EAAKk+L,EAAS,IAEnCtiG,EAAKoiG,EAAS,aAAejmL,EAAGm7H,IAAIirD,EAAS,IAC7CviG,EAAKoiG,EAAS,aAAejmL,EAAGm7H,IAAIirD,EAAS,GAC/C,CAGN,KACe,cAATtkJ,GAAiC,MAAR3zE,GAAuB,MAARA,IAC1CA,EAAMutH,EAAW2qG,SAAW,IAAM,IAClC1jO,EAAO3d,aAAa,WAAYmpB,IAElC01H,EAAK/hD,GAAQ3zE,EAEfutH,EAAWsuD,wBAA0BH,EACrCzzE,EAASlpH,KAAK,eAAgBk9G,EAAIy5B,EACpC,CA2CA,SAASyiG,EAAal8H,EAAIisB,GAOxB,IANA,IAAI1zH,EAAS0zH,EAAGqwE,cACZpmK,EAAO39B,EAAOxV,aAAa,aAC3BghB,EAAMxL,EAAOxV,aAAa,cAAe,EACzCo5O,EAAWn8H,EAAGonB,YAAYqP,UAAUC,MAAQ,GAC5Cwa,EAAe,CAAC,EAChBj6D,EAAQ/gD,EAAK5yC,MAAM,KACdrI,EAAI,EAAGA,EAAIkhP,EAAS9iP,OAAQ4B,IACnCi2J,EAAairF,EAASlhP,GAAK,IAAMg8F,EAAM,IAAMlzE,EAE/C,IAAIq4N,EAAgB,QAARr4N,EAAgBA,EAAM,OAClCmtI,EAAa1qD,SAAW41I,EACxBpwH,EAASlpH,KAAK,eAAgBk9G,EAAIkxC,EACpC,CAqBA,SAASmrF,EAAer8H,EAAIisB,GAQ1B,IAPA,IACI/1F,EADS+1F,EAAGqwE,cACEv5M,aAAa,aAC3Bu5O,EAAyB,kBAATpmM,EAChBqmM,EAAwB,iBAATrmM,EACfo7F,EAAatxB,EAAGonB,YAChB+0G,EAAW7qG,EAAWmF,UAAUC,MAAQ,GACxC+C,EAAO,CAAC,EACHx+I,EAAI,EAAGA,EAAIkhP,EAAS9iP,OAAQ4B,IAAK,CACxC,IAKIuhP,EALAC,EAAUN,EAASlhP,GACnB2tO,EAAS6T,EAAU,UACnBC,EAAcD,EAAU,eACxBE,EAAaF,EAAU,cACvB9lG,EAAQrF,EAAWmrG,GAAS7oF,OAE5B0oF,GACF7iG,EAAKmvF,EAAS,OAASjyF,EAAMimG,YAAY5iO,GACzCy/H,EAAKmvF,EAAS,QAAUjyF,EAAMimG,YAAYlhI,IAC1C+9B,EAAKmvF,EAAS,WAAajyF,EAAMimG,YAAY1+L,OAC7Cs+L,GAAY,GACHD,IACT9iG,EAAKmvF,EAAS,OAAS,KACvBnvF,EAAKmvF,EAAS,QAAU,KACxBnvF,EAAKmvF,EAAS,WAAa,KAC3B4T,GAAY,GAEVA,IACF/iG,EAAKijG,EAAc,MAAQ/lG,EAAMimG,YAAYF,YAAYt7O,EACzDq4I,EAAKijG,EAAc,MAAQ/lG,EAAMimG,YAAYF,YAAYr7O,EACzDo4I,EAAKijG,EAAc,MAAQ/lG,EAAMimG,YAAYF,YAAYp7O,EACzDm4I,EAAKkjG,GAAchmG,EAAMimG,YAAYD,WAEzC,CACA3wH,EAASlpH,KAAK,eAAgBk9G,EAAIy5B,EACpC,CAcA,SAASojG,EAAe78H,EAAIisB,GAC1B,IAAI1zH,EAAS0zH,EAAGqwE,cACZv4L,EAAMxL,EAAOukO,aACbxrG,EAAatxB,EAAGonB,YAChB+0G,EAAW7qG,EAAWmF,UAAUC,MAAQ,GACxCwlD,EAAO,CAAC,QAAS,QAAS,SAC1B6gD,EAAgB,CAAC,EACjB7rF,EAAe,CAAC,EACpB,GAAIntI,EACFmtI,EAAentI,EACfxL,EAAOukO,aAAe,SACjB,CACL,IAAK,IAAI7hP,EAAI,EAAGA,EAAIkhP,EAAS9iP,OAAQ4B,IAAK,CACxC,IAAIwhP,EAAUN,EAASlhP,GACnB+hP,EAAc1rG,EAAWmrG,GACzBQ,EAAgBR,EAAU,aAC9BM,EAAcE,GAAiBD,EAAYv2I,UAC3CyqD,EAAa+rF,IAAiB,EAC9B,IAAK,IAAI/7O,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIq5E,EAAO2hH,EAAKh7L,GACZg8O,EAAYT,EAAU,IAAMliK,EAAO,cACvC22E,EAAagsF,IAAa,EAC1BH,EAAcG,GAAaF,EAAYziK,GAAMgvF,UAC/C,CACF,CACAhxJ,EAAOukO,aAAeC,CACxB,CACA,OAAO7rF,CACT,CAmDA,SAASisF,EAAUn9H,EAAIisB,GAMrB,IALA,IAAI1zH,EAAS0zH,EAAGqwE,cACZpmK,EAAO39B,EAAOxV,aAAa,aAC3BghB,EAAMxL,EAAOxV,aAAa,cAAe,EACzCuuI,EAAatxB,EAAGonB,YAChBg2G,EAAS9rG,EAAWmF,UAAUi+B,KAAO,GAChCz5K,EAAI,EAAGA,EAAImiP,EAAO/jP,OAAQ4B,IAAK,CACtC,IAAIm/B,EAAKgjN,EAAOniP,GACZoiP,EAAY/rG,EAAWl3G,GAC3B,GAAa,SAAT8b,EAAiB,CACnB,IAAIxtC,EAAQ20O,EAAUnoK,WAAWxsE,MAC7B40O,EAAmB,OAARv5N,EAAe,EAAIrb,EAAQ,GAAMA,EAChDsjH,EAASlpH,KAAK,eAAgBk9G,EAAI5lF,EAAK,oBAAqBkjN,EAC9D,CACF,CACa,UAATpnM,GACFqnM,EAAUv9H,EAAI,MAElB,CAaA,SAASw9H,EAAax9H,GACpB,IAAIsxB,EAAatxB,EAAGonB,YACpB,OAAIkK,EAAW7qC,YACX6qC,EAAWuR,KAAK,aACXvR,EAAW2qG,SAAW,IAAM,IAE9B,UACT,CACA,SAASwB,EAAYz9H,GACnB,IAAI09H,EAAWF,EAAax9H,GAC5BgM,EAASlpH,KAAK,eAAgBk9G,EAAI,YAAa09H,EACjD,CAsJA,SAASC,EAAiB39H,EAAIisB,GAC5B2xG,EAAe59H,EAAIisB,EAAI,SACzB,CACA,SAAS4xG,EAAc79H,EAAIisB,GACzB2xG,EAAe59H,EAAIisB,EAAI,MACzB,CACA,SAAS2xG,EAAe59H,EAAIisB,EAAIx7F,GAO9B,IANA,IACI1sB,EADSkoH,EAAGqwE,cACCv5M,aAAa,YAC1BuuI,EAAatxB,EAAGonB,YAChB02G,EAAaxsG,EAAWmF,UAAUhmG,IAAY,GAE9CstM,EAAO,CAAC,EACH9iP,EAAI,EAAGA,EAAI6iP,EAAWzkP,OAAQ4B,IAAK,CAC1C,IAAIm/B,EAAK0jN,EAAW7iP,GAChByK,EAAU4rI,EAAWl3G,GAAItxB,KACzB1K,EAAe,OAAR2lB,EALA,KAKwBre,EAAUA,EALlC,KAMXq4O,EAAK3jN,EAAK,SAAWh8B,CACvB,CACA4tH,EAASlpH,KAAK,eAAgBk9G,EAAI+9H,EACpC,CACA,SAASR,EAAUv9H,EAAIkhC,GAIrB,IAHA,IAAI5P,EAAatxB,EAAGonB,YAChB02G,EAAaxsG,EAAWmF,UAAUyK,IAAgB,GAClD68F,EAAO,CAAC,EACH9iP,EAAI,EAAGA,EAAI6iP,EAAWzkP,OAAQ4B,IAKrC,IAJA,IAAIm/B,EAAK0jN,EAAW7iP,GAEhB2hP,EADatrG,EAAWl3G,GAAI+5L,SACHyoB,YACzBoB,EAAW9hP,OAAOgkB,KAAK08N,GAClB17O,EAAI,EAAGA,EAAI88O,EAAS3kP,OAAQ6H,IAAK,CACxC,IAAIhH,EAAM8jP,EAAS98O,GACnB68O,EAAK3jN,EAAK,IAAMlgC,GAAO0iP,EAAY1iP,EACrC,CAEF8xH,EAASlpH,KAAK,eAAgBk9G,EAAI+9H,EACpC,CAxsBAvqI,EAAeyqI,QAAU,CACvB/5O,KAAM,UACN+hH,MAAO,SAASjG,GACd,IACIjhF,GADOihF,EAAG4Z,SAASnmB,sBAAwB,CAAC,GAC9B10E,QAAU,MAC5B,OAA0B7C,EAAE8jF,EAAV,QAAXjhF,EAAyB,yBAExB,gBAEV,EACA7qB,KAAMynO,EAAM/S,OACZ7vL,MAAO,SAASinE,GACd,IAAIvM,EAAuBuM,EAAG4Z,SAASnmB,qBACnChY,EAAO,CAAE18D,OAAQ00E,EAAqB10E,QAAU,OACpDmpG,EAAIjzB,SAAS/4E,EAAE8jF,EAAI,iDAAkD,QACrE,CAAC,WAAY,QAAS,SAAU,SAASzlH,SAAQ,SAASL,GACpDA,KAAOu5G,IACThY,EAAKvhG,GAAOu5G,EAAqBv5G,GAErC,IACA8xH,EAASlpH,KAAK,gBAAiBk9G,EAAIvkB,GAAM1yD,MAAK,SAASm1M,GACrDh2G,EAAIjzB,SAAS/4E,EAAE8jF,EAAI,sBAAwB,MAAQk+H,EAAU,OAC/D,IAAGjjG,OAAM,WACP/S,EAAIjzB,SAAS/4E,EAAE8jF,EAAI,yDAA0D,OAC/E,GACF,GAEFxM,EAAempC,gBAAkB,CAC/Bz4I,KAAM,kBACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,uBACf,EACA9rG,KAAMynO,EAAM5S,KACZhwL,MAAO,SAASinE,GACdiqE,EAAMttC,gBAAgB38B,EACxB,GAEFxM,EAAe2qI,kBAAoB,CACjCj6O,KAAM,oBACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,uBACf,EACA9rG,KAAMynO,EAAMlS,OACZ1wL,MAAO,SAASinE,GACdiqE,EAAMttC,gBAAgB38B,EACxB,GAEFxM,EAAe4qI,OAAS,CACtBl6O,KAAM,SACNm6O,KAAM,OACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,OACf,EACA9pE,KAAM,WACNnyB,IAAK,OACL7P,KAAMynO,EAAMvT,QACZrvL,MAAO6iM,GAETpoI,EAAe8qI,MAAQ,CACrBp6O,KAAM,QACNm6O,KAAM,MACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,MACf,EACA9pE,KAAM,WACNnyB,IAAK,MACL7P,KAAMynO,EAAMtT,IACZtvL,MAAO6iM,GAETpoI,EAAe+qI,SAAW,CACxBr6O,KAAM,WACNm6O,KAAM,SACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,aACf,EACA9pE,KAAM,WACNnyB,IAAK,SACL7P,KAAMynO,EAAMxS,UACZpwL,MAAO6iM,GAETpoI,EAAegrI,QAAU,CACvBt6O,KAAM,UACNm6O,KAAM,QACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,eACf,EACA9pE,KAAM,WACNnyB,IAAK,QACL7P,KAAMynO,EAAMzS,MACZnwL,MAAO6iM,GAETpoI,EAAey1H,eAAiB,CAC9B/kO,KAAM,iBACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,uBACf,EACA9pE,KAAM,WACNnyB,IAAK,iBACL7P,KAAMynO,EAAM1S,eACZlwL,MAAO6iM,GAETpoI,EAAew1H,aAAe,CAC5B9kO,KAAM,eACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,qBACf,EACA9pE,KAAM,WACNnyB,IAAK,eACL7P,KAAMynO,EAAM3S,aACZjwL,MAAO6iM,GAETpoI,EAAe41H,SAAW,CACxBllO,KAAM,WACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,YACf,EACA9pE,KAAM,WACNnyB,IAAK,WACL7P,KAAMynO,EAAMvS,SACZrwL,MAAO6iM,GAETpoI,EAAe61H,SAAW,CACxBnlO,KAAM,WACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,iBACf,EACA9pE,KAAM,WACNnyB,IAAK,WACL7P,KAAMynO,EAAMtS,SACZtwL,MAAO6iM,GAETpoI,EAAe81H,WAAa,CAC1BplO,KAAM,aACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,cACf,EACA9pE,KAAM,WACNnyB,IAAK,aACL7P,KAAMynO,EAAMrS,WACZvwL,MAAO6iM,GAETpoI,EAAe+1H,WAAa,CAC1BrlO,KAAM,aACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,qBACf,EACA9rG,KAAMynO,EAAMpS,WACZxwL,MAAO0iM,GAETjoI,EAAeirI,SAAW,CACxBv6O,KAAM,WACNm6O,KAAM,SACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,UACf,EACA9pE,KAAM,OACNnyB,IAAK,KACL7P,KAAMynO,EAAMrT,UACZvvL,MAAO6iM,GAETpoI,EAAekrI,UAAY,CACzBx6O,KAAM,YACNm6O,KAAM,UACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,WACf,EACA9pE,KAAM,OACNnyB,IAAK,MACL7P,KAAMynO,EAAMpT,WACZxvL,MAAO6iM,GAETpoI,EAAemrI,YAAc,CAC3Bz6O,KAAM,cACNm6O,KAAM,YACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,YACf,EACA9pE,KAAM,OACNnyB,IAAK,OACL7P,KAAMynO,EAAMnT,UACZzvL,MAAO6iM,GAETpoI,EAAeorI,aAAe,CAC5B16O,KAAM,eACNm6O,KAAM,aACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,aACf,EACA9pE,KAAM,OACNnyB,IAAK,QACL7P,KAAMynO,EAAMxT,KACZpvL,MAAO6iM,GAETpoI,EAAeqrI,sBAAwB,CACrC36O,KAAM,wBACNm6O,KAAM,eACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,6BACf,EACA9pE,KAAM,YACNnyB,IAAK,UACL7P,KAAMynO,EAAMlT,cACZzjK,QAAS,KACTjsB,MAAO6iM,GAETpoI,EAAesrI,sBAAwB,CACrC56O,KAAM,wBACNm6O,KAAM,eACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,wBACf,EACA9pE,KAAM,YACNnyB,IAAK,SAASi8F,GACZ,OAAOA,EAAGonB,YAAY60G,SAAW,IAAM,GACzC,EACA/nO,KAAMynO,EAAMjT,gBACZ1jK,QAAS,KACTjsB,MAAO6iM,GAgETpoI,EAAeurI,OAAS,CACtB76O,KAAM,SACNm6O,KAAM,OACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,OACf,EACA9pE,KAAM,iBACNnyB,IAAK,OACL7P,KAAMynO,EAAMvT,QACZrvL,MAAOmjM,GAET1oI,EAAewrI,MAAQ,CACrB96O,KAAM,QACNm6O,KAAM,MACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,MACf,EACA9pE,KAAM,iBACNnyB,IAAK,MACL7P,KAAMynO,EAAMtT,IACZtvL,MAAOmjM,GAET1oI,EAAeyrI,cAAgB,CAC7B/6O,KAAM,gBACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,mBACf,EACA9pE,KAAM,iBACNnyB,IAAK,QACL7P,KAAMynO,EAAM,aACZ5iM,MAAOmjM,GAET1oI,EAAe0rI,cAAgB,CAC7Bh7O,KAAM,gBACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,qBACf,EACA9pE,KAAM,iBACNnyB,IAAK,YACL7P,KAAMynO,EAAM,UACZ5iM,MAAOmjM,GAgBT1oI,EAAe2rI,qBAAuB,CACpCj7O,KAAM,uBACNm6O,KAAM,qBACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,0BACf,EACA9pE,KAAM,eACNhiC,KAAMynO,EAAMxT,KACZpvL,MAAOsjM,GAET7oI,EAAe4rI,sBAAwB,CACrCl7O,KAAM,wBACNm6O,KAAM,sBACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,4BACf,EACA9pE,KAAM,gBACNhiC,KAAMynO,EAAM9S,MACZ9vL,MAAOsjM,GAqCT7oI,EAAe6rI,eAAiB,CAC9Bn7O,KAAM,iBACNm6O,KAAM,eACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,oCACf,EACA9pE,KAAM,YACNnyB,IAAK,KACLu7N,QAAQ,EACRprO,KAAMynO,EAAMlT,cACZzjK,QAAS,KACTjsB,MA+BF,SAAuBinE,EAAIisB,GACzB,IAAIilB,EAAe2rF,EAAe78H,EAAIisB,GACtCjgB,EAASlpH,KAAK,eAAgBk9G,EAAIkxC,EACpC,GACA19C,EAAe+rI,UAAY,CACzBr7O,KAAM,YACNm6O,KAAM,SACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,UACf,EACA9pE,KAAM,OACNnyB,IAAK,KACL7P,KAAMynO,EAAMrT,UACZvvL,MAAOokM,GAET3pI,EAAegsI,WAAa,CAC1Bt7O,KAAM,aACNm6O,KAAM,UACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,WACf,EACA9pE,KAAM,OACNnyB,IAAK,MACL7P,KAAMynO,EAAMpT,WACZxvL,MAAOokM,GAET3pI,EAAeisI,SAAW,CACxBv7O,KAAM,WACNm6O,KAAM,QACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,QACf,EACA9pE,KAAM,QACNnyB,IAAK,KACL7P,KAAMynO,EAAMnT,UACZzvL,MAAOokM,GAET3pI,EAAeksI,gBAAkB,CAC/Bx7O,KAAM,kBACNm6O,KAAM,eACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,oCACf,EACA9pE,KAAM,YACNnyB,IAAK,KACLu7N,QAAQ,EACRprO,KAAMynO,EAAMlT,cACZzjK,QAAS,KACTjsB,MAAO0kM,GAqBTjqI,EAAemsI,gBAAkB,CAC/Bz7O,KAAM,kBACNm6O,KAAM,eACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,oCACf,EACA9pE,KAAM,YACNnyB,IAAK,UACL7P,KAAMynO,EAAMlT,cACZzjK,QAAS,KACTjsB,MAAO0kM,GAcTjqI,EAAeosI,gBAAkB,CAC/B17O,KAAM,mBACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,aACf,EACA9rG,KAAMynO,EAAMxT,KACZpvL,MAAO,SAASinE,GAMd,IALA,IAAI+9H,EAAO,CACT,cAAe,GACf,SAAU,GACV,SAAU,IAEH9iP,EAAI,EAAGA,EAAI+kH,EAAGs5B,UAAUjgJ,OAAQ4B,IAAK,CAC5C,IAAI2hP,EAAc58H,EAAGs5B,UAAUr+I,GAAG4kP,aAClC9B,EAAK,eAAenkP,KAAKgjP,EAAYj/O,KAAKg1C,OAAO11C,SACjD8gP,EAAK,UAAUnkP,KAAKgjP,EAAYj/O,KAAKyD,EAAEnE,SACvC8gP,EAAK,UAAUnkP,KAAKgjP,EAAYj/O,KAAK0D,EAAEpE,QACzC,CACA+uH,EAASlpH,KAAK,UAAWk9G,EAAI+9H,EAC/B,GAEFvqI,EAAeiqI,YAAc,CAC3Bv5O,KAAM,cACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,oCACf,EACA9pE,KAAM,YACNnyB,IAAK,KACLu7N,QAAQ,EACRprO,KAAMynO,EAAMlT,cACZzjK,QAAS,KACTjsB,MAAO,SAASinE,EAAIisB,GAClB,IAAIilB,EAAe2rF,EAAe78H,EAAIisB,GACtCilB,EAAazqD,UAAY+2I,EAAax9H,GACtCgM,EAASlpH,KAAK,eAAgBk9G,EAAIkxC,EACpC,GAEF19C,EAAessI,WAAa,CAC1B57O,KAAM,aACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,cACf,EACA9rG,KAAMynO,EAAMxT,KACZpvL,MAAO,SAASinE,EAAIisB,GAClB,IAAI1zH,EAAS0zH,EAAGqwE,cAChB/jM,EAAO3d,aAAa,YAAa,QACjC2d,EAAO3d,aAAa,WAAY,SAChCghP,EAAgB57H,EAAIisB,GACpB1zH,EAAO3d,aAAa,YAAa,iBACjCyhP,EAAer8H,EAAIisB,GACnBsxG,EAAUv9H,EAAI,OACdu9H,EAAUv9H,EAAI,UACdu9H,EAAUv9H,EAAI,MAChB,GAEFxM,EAAeusI,iBAAmB,CAChC77O,KAAM,mBACN+hH,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,qBACf,EACA9rG,KAAMynO,EAAMnS,UACZtzL,KAAM,0BACNnyB,IAAK,KACLg1B,MAAO,SAASinE,GACd,IAAIsxB,EAAatxB,EAAGonB,YAChBq4D,EAAmBnuD,EAAWsuD,wBAClCtuD,EAAWsuD,wBAA+C,OAArBH,EAA4B,MAAQ,KACzEzzE,EAASlpH,KAAK,eAAgBk9G,EAGlC,SAAgCA,GAK9B,IAJA,IACIggI,EAAqD,OADxChgI,EAAGonB,YACSw4D,wBACzB95C,EAASipC,EAAQ5jJ,KAAK60E,EAAI,MAAM,GAChCy5B,EAAO,CAAC,EACHx+I,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CACtC,IAAI26D,EAAKkwF,EAAO7qJ,GAChBw+I,EAAK7jF,EAAG+7F,MAAQ,iBAAiBquF,GAAqBpqL,EAAG8pI,iBAC3D,CACA,OAAOjmD,CACT,CAbsCwmG,CAAuBjgI,GAC3D,GAaFxM,EAAe0sI,gBAAkB,CAC/Bh8O,KAAM,kBACNm6O,KAAM,YACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,aACf,EACA9pE,KAAM,QACNhiC,KAAMynO,EAAMxT,KACZpvL,MAAO,SAASinE,GACdu9H,EAAUv9H,EAAI,SAChB,GAEFxM,EAAe2sI,aAAe,CAC5Bj8O,KAAM,eACNm6O,KAAM,YACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,aACf,EACA9pE,KAAM,QACNhiC,KAAMynO,EAAMxT,KACZpvL,MAAO,SAASinE,GACdu9H,EAAUv9H,EAAI,MAChB,GAEFxM,EAAe4sI,aAAe,CAC5Bl8O,KAAM,eACNm6O,KAAM,SACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,UACf,EACA9pE,KAAM,OACNnyB,IAAK,KACL7P,KAAMynO,EAAMrT,UACZvvL,MAAO4kM,GAETnqI,EAAe6sI,UAAY,CACzBn8O,KAAM,YACNm6O,KAAM,SACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,UACf,EACA9pE,KAAM,OACNnyB,IAAK,KACL7P,KAAMynO,EAAMrT,UACZvvL,MAAO8kM,GAETrqI,EAAe8sI,cAAgB,CAC7Bp8O,KAAM,gBACNm6O,KAAM,UACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,WACf,EACA9pE,KAAM,OACNnyB,IAAK,MACL7P,KAAMynO,EAAMpT,WACZxvL,MAAO4kM,GAETnqI,EAAe+sI,WAAa,CAC1Br8O,KAAM,aACNm6O,KAAM,UACNp4H,MAAO,SAASjG,GACd,OAAO9jF,EAAE8jF,EAAI,WACf,EACA9pE,KAAM,OACNnyB,IAAK,MACL7P,KAAMynO,EAAMpT,WACZxvL,MAAO8kM,EAuCX,IAIE2C,GAAqBt5M,EAAW,CAClC,sCAAsCt6B,EAASkuB,GAE7C,IAAI04E,EAAiBkoI,KACjB+E,EAAavkP,OAAOgkB,KAAKszF,GACzBktI,EAAa,CACf,WACA,eACA,iBACA,aACA,WACA,cAEEC,EAAc,CAChB,cACA,eACA,eACA,cACA,oBACA/8O,OAAO88O,GACLE,EAAc,GAQlBH,EAAWlmP,SAAQ,SAAS4G,IAPL,SAAS8qB,GAC9B,IAA+C,IAA3C00N,EAAYjkP,QAAQuvB,EAAEoyN,MAAQpyN,EAAE/nB,MAApC,CACA,IAAIqjC,EAAQtb,EAAE/nB,KACVm6O,GAAQpyN,EAAEoyN,MAAQpyN,EAAE/nB,MAAM6F,eACM,IAAhC62O,EAAYlkP,QAAQ6qC,IAAeq5M,EAAYhnP,KAAK2tC,IACrB,IAA/Bq5M,EAAYlkP,QAAQ2hP,IAAcuC,EAAYhnP,KAAKykP,EAJC,CAK1D,CAEEwC,CAAiBrtI,EAAeryG,GAClC,IACAy/O,EAAYt2N,OACZwQ,EAAOluB,QAAU,CACf8zO,aACAC,cACAC,cAEJ,IAIEE,GAAuB55M,EAAW,CACpC,uCAAuCt6B,EAASkuB,GAE9B0lN,KAChB1lN,EAAOluB,QAAU,CACfy3F,SAAU,UACVknE,YAAa,CACXhnE,QAAS,aACT7gF,OAAQ,CAAC,IAAK,KACd+gF,KAAM,IACNJ,SAAU,WAEZv0E,QAAS,CACPy0E,QAAS,QACTF,SAAU,WAEZz1F,MAAO,CACL21F,QAAS,QACTF,SAAU,WAEZ08I,YAAa,CACXx8I,QAAS,QACTF,SAAU,WAEZiE,WAAY,CACV/D,QAAS,MACTF,SAAU,QAEZ3oE,IAAK,CACH6oE,QAAS,SACTmB,SAAS,EACTjB,KAAM,GACNJ,SAAU,WAEZl0D,OAAQ,CACNo0D,QAAS,SACTmB,SAAS,EACTjB,KAAM,GACNJ,SAAU,WAGhB,IAIE28I,GAAoB95M,EAAW,CACjC,qCAAqCt6B,EAASkuB,GAE5C,IAAIotG,EAAMtN,KACN/tB,EAAStC,IACT+wC,EAAWxJ,KACXviC,EAAauxI,KACjBhmN,EAAOluB,QAAU,SAA8Bw7I,EAAU33C,GACvD,IAAIpB,EAAc+4C,EAAS64F,SAAW,CAAC,EACnC3xI,EAAegsC,EAAS1I,aAAaniC,EAAW,WACpD,SAASrB,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAOC,EAAaC,EAAcC,EAAYr5D,EAAMuuD,EACjE,CACA2K,EAAO,eACPA,EAAO,UAAWvC,EAAO7B,WAAWyF,EAAUoW,cAAe,KAC7D,IAAImhC,EAAen7C,EAAOpB,SAASoB,EAAOtoF,IAAIksF,EAAUwwI,QAAQnxN,UAChEs/E,EAAO,QAASvC,EAAO7B,WAAWg9C,EAAc,KAChD54C,EAAO,cAAevC,EAAO7B,WAAWg9C,EAAc,KACtD54C,EAAO,aAAcqB,EAAUnI,YAC/B8G,EAAO,OACPA,EAAO,SACT,CACF,IAIE8xI,GAAkBh6M,EAAW,CAC/B,oCAAoCt6B,EAASkuB,GAE3C,IAAIkQ,EAAKD,IACL+rD,EAAY7G,IACZi4C,EAAMtN,KACN+gH,EAAQzT,KACRpgM,EAAUD,IAAkBC,QAC5Bq5M,EAAS,IAAIC,UACjB,SAASC,EAAQ5lJ,GACfziG,KAAKS,UAAYgiG,EAAKhiG,UACtBT,KAAK4G,QAAUlF,SAASC,cAAc,OACtC3B,KAAKu+C,OAAOkkD,EAAK6lJ,UAAW7lJ,EAAKqjH,SACjC9lN,KAAKS,UAAUoB,YAAY7B,KAAK4G,QAClC,CACA,IAAI2hP,EAAQF,EAAQjnP,UACpBmnP,EAAMhqM,OAAS,SAAS+pM,EAAWxiC,GACjC9lN,KAAKsoP,UAAYA,EACjB,IAAIt5M,EAAUhvC,KAAKsoP,UAAU1nH,SACzB0X,EAAat4I,KAAKsoP,UAAUl6G,YAC5Bo6G,EAAY,WAAalwG,EAAW+sC,KACxCrlL,KAAK4G,QAAQhF,aAAa,KAAM4mP,GAChCxoP,KAAKqlL,KAAOmjE,EACZxoP,KAAK4G,QAAQ2M,UAAY,UACM,UAA3By7B,EAAQmrE,iBAA4Bn6G,KAAK4G,QAAQ2M,WAAa,2BAC3B,MAAnC+kI,EAAW2vG,QAAQ11E,cACrBvyK,KAAK4G,QAAQ2M,WAAa,YAC1BuyM,EAAUA,EAAQz2I,WAEpB,IAAI/iD,EAAQgsH,EAAW2vG,QACnBQ,EAAgB,IAAMD,EAAY,kBACtC9mP,SAASkI,iBAAiB6+O,GAAelnP,SAAQ,SAASo5C,GACxDA,EAAMruB,MAAMyK,gBAAkBzK,EAAMwK,OACtC,IACA,IAAI4xN,GAAmB1oP,KAAK2oP,WAAW7iC,GACnC8iC,EAAe5oP,KAAK6oP,UAAY75M,EAAQ0rE,YACxCouI,EAAiB9oP,KAAKojC,SAAW4L,EAAQ5L,OAE7C,GADApjC,KAAKojC,OAAS4L,EAAQ5L,QAClBslN,GAAmBE,GAAgBE,KACrC9oP,KAAK+oP,mBACL/oP,KAAKgpP,cAAcljC,GACf92K,EAAQ2rE,WAAa3rE,EAAQ0rE,aAAa,CAC5C,IAAIuuI,EAAYjpP,KAAKkpP,UACjBl6M,EAAQ2rE,YACVsuI,EAAU11O,UAAY01O,EAAU11O,UAAY,cAEP,MAAnC+kI,EAAW2vG,QAAQ11E,YACrBvyK,KAAK4G,QAAQjG,aAAasoP,EAAWjpP,KAAK4G,QAAQ4rC,WAAW,IAE7DxyC,KAAK4G,QAAQ/E,YAAYonP,GAE3BjpP,KAAK6oP,SAAU,CACjB,CAEF7oP,KAAKmpP,qBACLj6G,EAAI5nB,gBAAgB,IAAMkhI,EAAY,gBAAiB,UAAW,aAAc,SAAWl8N,EAAMy7N,YAAa,SAAWz7N,EAAM1W,MAAO5V,KAAK4G,QAC7I,EACA2hP,EAAMS,cAAgB,SAASljC,GAC7B,IAAI/lN,EAAQC,KACZA,KAAK8lN,QAAUA,EACf9lN,KAAKopP,eAAiB,GACtBppP,KAAKqpP,aAAe,GACpBrpP,KAAK8lN,QAAQvkN,SAAQ,SAAS+nP,GAC5B,IAAI3uM,EAAQ56C,EAAMwpP,cAClBD,EAAY/nP,SAAQ,SAASioP,GAC3B,IAAIC,EAAaD,EAAat+O,KAC9B,IAAKu+O,EACH,MAAM,IAAIz3O,MAAM,+CAElB,IAAgD,IAA5CjS,EAAMspP,aAAa3lP,QAAQ+lP,GAC7B,MAAM,IAAIz3O,MAAM,gBAAkBy3O,EAAa,cAEjD1pP,EAAMspP,aAAazoP,KAAK6oP,GACxB,IAAIlqO,EAASxf,EAAM2pP,aAAaF,GAChCzpP,EAAMqpP,eAAexoP,KAAK2e,GAC1Bo7B,EAAM94C,YAAY0d,EACpB,IACAxf,EAAM6G,QAAQ/E,YAAY84C,EAC5B,GACF,EACA4tM,EAAMgB,YAAc,WAClB,IAAI5uM,EAAQj5C,SAASC,cAAc,OACnCg5C,EAAMpnC,UAAY,gBAClB,IAAI+Y,EAAQtsB,KAAKsoP,UAAUl6G,YAAY65G,QAEvC,OADAttM,EAAMruB,MAAMyK,gBAAkBzK,EAAMwK,QAC7B6jB,CACT,EACA4tM,EAAMmB,aAAe,SAAS90O,GAC5B,IAAI7U,EAAQC,KACRuf,EAAS7d,SAASC,cAAc,KACpC4d,EAAO3d,aAAa,MAAO,WAC3B2d,EAAOhM,UAAY,cACnB,IAAI05G,EAAQr4G,EAAOq4G,WACL,IAAVA,EAAkBA,EAAQr4G,EAAO1J,KACX,oBAAV+hH,IAAsBA,EAAQA,EAAMjtH,KAAKsoP,aACrDr7H,GAAmB,IAAVA,IAAa1tG,EAAO3d,aAAa,aAAcqrH,QACxC,IAAhBr4G,EAAOsoC,MAAiB39B,EAAO3d,aAAa,YAAagT,EAAOsoC,MACpE,IAAInyB,EAAMnW,EAAOmW,IAMjB,QALY,IAARA,IACiB,oBAARA,IAAoBA,EAAMA,EAAI/qB,KAAKsoP,YAC9C/oO,EAAO3d,aAAa,WAAYmpB,IAGb,oBADTnW,EAAOmrC,MAEjB,MAAM,IAAI/tC,MAAM,yDAEhBuN,EAAOmH,iBAAiB,SAAS,SAASusH,GACxCr+H,EAAOmrC,MAAMhgD,EAAMuoP,UAAWr1G,GAC9BlzI,EAAMopP,mBAAmBl2G,EAAGqwE,cAC9B,IAEF/jM,EAAO3d,aAAa,cAAegT,EAAO0xO,SAAU,GAChD1xO,EAAO0xO,QAAQt0M,EAAGsI,OAAO/6B,GAAQ89B,QAAQ,UAAU,GACvD,IAAIniC,EAAOtG,EAAOsG,KAOlB,MANoB,oBAATA,EACTqE,EAAO1d,YAAYqZ,KAEnBqE,EAAO1d,YAAY7B,KAAK2pP,WAAWzuO,GAAQynO,EAAM7S,WAEnDvwN,EAAO3d,aAAa,eAAgBgT,EAAOo3D,SAAW,KAC/CzsD,CACT,EACAgpO,EAAMoB,WAAa,SAASC,GAC1B,IAEI1uO,EAFA2uO,EAAa/rJ,EAAU8rJ,EAAS7yO,QAAUyU,OAAOo+N,EAAS7yO,QAAU6yO,EAASE,OAASF,EAASG,QAC/FC,EAAQ,6BAEZ,GAAIJ,EAASpmO,KAAM,EACjBtI,EAAOxZ,SAAS26C,gBAAgB2tM,EAAO,QAClCpoP,aAAa,UAAW,CAAC,EAAG,EAAGgoP,EAAS9yO,MAAO+yO,GAAYhjP,KAAK,MACrEqU,EAAKtZ,aAAa,QAAS,QAC3B,IAAI4hB,EAAO9hB,SAAS26C,gBAAgB2tM,EAAO,QAC3CxmO,EAAK5hB,aAAa,IAAKgoP,EAASpmO,MAC5BomO,EAASn3N,UACXjP,EAAK5hB,aAAa,YAAagoP,EAASn3N,gBACX,IAApBm3N,EAASE,QAClBtmO,EAAK5hB,aAAa,YAAa,qBAAuBgoP,EAASE,OAAS,KAE1E5uO,EAAKrZ,YAAY2hB,EACnB,CAOA,OANIomO,EAAS3uM,MAEX//B,EADaitO,EAAO8B,gBAAgBL,EAAS3uM,IAAK,mBACpCzI,WAAW,IAE3Bt3B,EAAKtZ,aAAa,SAAU,OAC5BsZ,EAAKtZ,aAAa,QAAS,OACpBsZ,CACT,EACAqtO,EAAMY,mBAAqB,SAASe,GAClC,IAAI5xG,EAAat4I,KAAKsoP,UAAUl6G,YAC5B+7G,OAAoC,IAAlBD,EAA2BA,EAAcngP,aAAa,aAAe,KAC3F/J,KAAKopP,eAAe7nP,SAAQ,SAASge,GACnC,IAAI6qO,EAAU7qO,EAAOxV,aAAa,cAAe,EAC7CsgP,EAAW9qO,EAAOxV,aAAa,aAC/BugP,EAAwD,SAAvC/qO,EAAOxV,aAAa,eACrCwgP,EAAUv4M,EAAGsI,OAAO/6B,GACpBirO,EAAoB,SAASC,EAASC,GACxC,IAAIp+N,EAAQgsH,EAAW2vG,QACnBngI,EAAU2iI,EAAQh+O,cAAc,cAChCq7G,IACE4iI,GAAaD,EAAQtkO,QAAQ,UAC/B2hG,EAAQx7F,MAAMrV,KAAOqV,EAAMy7N,YAE3BjgI,EAAQx7F,MAAMrV,KAAOqV,EAAM1W,MAGjC,EACA,GAAI00O,GACF,GAAID,IAAaF,EAAiB,CAChC,IAAIQ,GAAYJ,EAAQltM,QAAQ,UAChCktM,EAAQltM,QAAQ,SAAUstM,GAC1BH,EAAkBjrO,EAAQorO,EAC5B,MACK,CACL,IAAI5/N,EAAmB,OAAbs/N,EAAoBA,EAAWn7G,EAAIhvC,eAAeo4C,EAAY+xG,GAAUthP,MAClFwhP,EAAQltM,QAAQ,SAAUtyB,IAAQq/N,GAClCI,EAAkBjrO,EAAQwL,IAAQq/N,EACpC,CACF,GACF,EACA7B,EAAMI,WAAa,SAAS7iC,GAC1B,IAAI8kC,EAAiB5qP,KAAK8lN,QAC1B,IAAK8kC,EAAgB,OAAO,EAC5B,GAAI9kC,EAAQzlN,SAAWuqP,EAAevqP,OAAQ,OAAO,EACrD,IAAK,IAAI4B,EAAI,EAAGA,EAAI6jN,EAAQzlN,SAAU4B,EAAG,CACvC,GAAI6jN,EAAQ7jN,GAAG5B,SAAWuqP,EAAe3oP,GAAG5B,OAAQ,OAAO,EAC3D,IAAK,IAAI6H,EAAI,EAAGA,EAAI49M,EAAQ7jN,GAAG5B,OAAQ6H,IACrC,GAAI49M,EAAQ7jN,GAAGiG,GAAGgD,OAAS0/O,EAAe3oP,GAAGiG,GAAGgD,KAAM,OAAO,CAEjE,CACA,OAAO,CACT,EAIAq9O,EAAMW,QAAU,WACd,IAAIvuM,EAAQ36C,KAAKupP,cACbl+N,EAAI3pB,SAASC,cAAc,KAO/B,OANA0pB,EAAEk5I,KAAO,sBACTl5I,EAAEnF,OAAS,SACXmF,EAAEzpB,aAAa,aAAwBstI,EAAIhsG,EAAEljC,KAAKsoP,UAAW,2BAPhD,MAAQx5M,EAAU,KAQ/BzjB,EAAE9X,UAAY,6CACd8X,EAAExpB,YAAY7B,KAAK2pP,WAAWhH,EAAMjS,gBACpC/1L,EAAM94C,YAAYwpB,GACXsvB,CACT,EACA4tM,EAAMQ,iBAAmB,WACvB,KAAO/oP,KAAK4G,QAAQlG,YAClBV,KAAK4G,QAAQjE,YAAY3C,KAAK4G,QAAQlG,YAExCV,KAAK6oP,SAAU,CACjB,EACAN,EAAM/3F,QAAU,WACdthB,EAAIjpB,cAAcjmH,KAAKS,UAAUgM,cAAc,YACjD,EAaAq1B,EAAOluB,QAZP,SAAuBozG,EAAI8+F,GACzB,IAAIxtE,EAAatxB,EAAGonB,YAChBy8G,EAAU,IAAIxC,EAAQ,CACxBC,UAAWthI,EACXvmH,UAAW63I,EAAWwyG,YAAYnmP,OAClCmhN,YAKF,OAHIxtE,EAAWyyG,cACb/4M,EAAGsI,OAAOuwM,EAAQjkP,SAASxC,OAAO,QAAQi5C,QAAQ,6BAA6B,GAAMpjC,KAAK,WAErF4wO,CACT,CAEF,IAIEG,GAAiB98M,EAAW,CAC9B,mCAAmCt6B,EAASkuB,GAE1C,IAAIi0J,EAAUp5C,KACVsuG,EAAkBrwE,KAClB5nD,EAAWxE,KACXuvD,EAAiBvC,KAAmBuC,eACpCmtE,EAAgBhD,KAChB1tI,EAAiBkoI,KACjBgF,EAAaF,KAAqBE,WAClC18I,EAAa42B,KAAc52B,WAC/BlpE,EAAOluB,QAAU,SAAuBozG,GACtC,IAAIsxB,EAAatxB,EAAGonB,YAChBp/F,EAAUg4E,EAAG4Z,SACbiqH,EAAUvyG,EAAWiY,SACzB,GAAKvhH,EAAQmrE,gBAAmBnrE,EAAQ2rE,UAAxC,CAOA,IAAK9wG,MAAMiI,QAAQk9B,EAAQsrE,wBACzB,MAAM,IAAItoG,MAAM,CACd,iDACA,qBACAnL,KAAK,MAET,IAAKgD,MAAMiI,QAAQk9B,EAAQurE,qBACzB,MAAM,IAAIvoG,MAAM,CACd,8CACA,qBACAnL,KAAK,MAET,IACIskP,EADAC,EAAgBp8M,EAAQwrE,eAG1B2wI,EADEthP,MAAMiI,QAAQs5O,IAAkBA,EAAc/qP,OAiOpD,SAA0BgrP,GAExB,IADA,IAAID,EAAgBpgJ,EAAW,GAAIqgJ,GAC1BppP,EAAI,EAAGA,EAAImpP,EAAc/qP,OAAQ4B,IAExC,IADA,IAAIqnP,EAAc8B,EAAcnpP,GACvBiG,EAAI,EAAGA,EAAIohP,EAAYjpP,OAAQ6H,IAAK,CAC3C,IAAIqX,EAAS+pO,EAAYphP,GACzB,GAAsB,kBAAXqX,EAAqB,CAC9B,QAA+B,IAA3Bi7F,EAAej7F,GAGjB,MAAM,IAAIvN,MAAM,CACd,yCACA,uBACAnL,KAAK,MALPukP,EAAcnpP,GAAGiG,GAAKsyG,EAAej7F,EAOzC,CACF,CAEF,OAAO6rO,CACT,CAnPmBE,CAAiBF,IACtBp8M,EAAQmrE,gBAAkBnrE,EAAQ2rE,UAC7B,GAOnB,SAAyBqM,GACvB,IAAIsxB,EAAatxB,EAAGonB,YAChB4hB,EAAWhpC,EAAGs5B,UACdtxG,EAAUg4E,EAAG4Z,SACjB,SAASn3H,EAAM8kC,EAAO8vH,GACpB,GAAkB,kBAAPA,GACT,GAAIA,EAAGttJ,gBAAkBw9B,EAAMx9B,cAAe,OAAO,MAChD,CACL,IAAIkyE,EAAKo7E,EAAGnzJ,KACRm6H,EAAKg5B,EAAGgnF,MAAQhnF,EAAGnzJ,KACvB,GAAI+3E,IAAO10C,GAAS82F,IAAO92F,EAAMx9B,cAAe,OAAO,CACzD,CACA,OAAO,CACT,CACA,IAAIw6O,EAAYjzG,EAAW2vG,QAAQvlN,IACV,kBAAd6oN,IAAwBA,EAAY,CAACA,IAChD,IAAIC,EAAelzG,EAAW2vG,QAAQ9wM,OACV,kBAAjBq0M,IAA2BA,EAAe,CAACA,IACtD,IAAIC,EAAez8M,EAAQurE,oBAAoB3vG,OAC7C2gP,EAAUl/N,QAAO,SAAS9pB,GACxB,IAAK,IAAIu7C,EAAK,EAAGA,EAAK9O,EAAQsrE,uBAAuBj6G,OAAQy9C,IAC3D,GAAIr0C,EAAMlH,EAAGysC,EAAQsrE,uBAAuBx8D,IAAM,OAAO,EAE3D,OAAO,CACT,KAEE4tM,EAAkB18M,EAAQsrE,uBAAuB1vG,OACnD4gP,EAAan/N,QAAO,SAAS9pB,GAC3B,IAAK,IAAIu7C,EAAK,EAAGA,EAAK9O,EAAQurE,oBAAoBl6G,OAAQy9C,IACxD,GAAIr0C,EAAMlH,EAAGysC,EAAQurE,oBAAoBz8D,IAAM,OAAO,EAExD,OAAO,CACT,KAEE48K,EAAepiF,EAAWuR,KAAK,aAC/B8hG,EAAUrzG,EAAWuR,KAAK,QAC1B4jF,EAASn1F,EAAWuR,KAAK,OACzB+hG,EAAStzG,EAAWuR,KAAK,OACzBgiG,EAAgBvzG,EAAWuR,KAAK,cAChCiiG,EAAaxzG,EAAWuR,KAAK,WAC7B0jF,EAAYj1F,EAAWuR,KAAK,UAC5B2jF,EAASl1F,EAAWuR,KAAK,OACzBkiG,EAAWzzG,EAAWuR,KAAK,SAC3BmiG,EAAW1zG,EAAWuR,KAAK,SAC3BoiG,EAAY3zG,EAAWuR,KAAK,UAC5BqiG,EA6HN,SAAyB5zG,GAEvB,IADA,IAAIwU,EAASipC,EAAQ5jJ,KAAK,CAAEi8F,YAAakK,GAAc,MAAM,GACpDr2I,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IACjC,IAAK6qJ,EAAO7qJ,GAAGitK,WACb,OAAO,EAGX,OAAO,CACT,CArIqBi9E,CAAgB7zG,GAC/B8zG,EAAuBruE,EAAezlC,EAAW7qC,WACjD9zD,EAAS,GACb,SAAS0yM,EAASC,GAChB,GAAKA,EAASjsP,OAAd,CAEA,IADA,IAAIwlE,EAAM,GACD/nB,EAAK,EAAGA,EAAKwuM,EAASjsP,OAAQy9C,IAAM,CAM3C,IALA,IAAIvP,EAAQ+9M,EAASxuM,GACjBugH,EAAK7jD,EAAejsE,GACpB00C,EAAKo7E,EAAGnzJ,KAAK6F,cACbs0H,GAAMg5B,EAAGgnF,MAAQhnF,EAAGnzJ,MAAM6F,cAC1Bi7L,GAAQ,EACH7gK,EAAI,EAAGA,EAAIugN,EAAgBrrP,OAAQ8qC,IAAK,CAC/C,IAAI5c,EAAIm9N,EAAgBvgN,GAAGp6B,cAC3B,GAAIwd,IAAM00D,GAAM10D,IAAM82G,EAAI,CACxB2mE,GAAQ,EACR,KACF,CACF,CACIA,GACJnmI,EAAIjlE,KAAK45G,EAAejsE,GAC1B,CACAoL,EAAO/4C,KAAKilE,EAlBgB,CAmB9B,CACA,IAAI0mL,EAAc,CAAC,WACfv9M,EAAQqrE,sBAAuBkyI,EAAY3rP,KAAK,qBAC3CouC,EAAQorE,iBAAiBmyI,EAAY3rP,KAAK,mBACnDyrP,EAASE,GACT,IAAIC,EAAY,GACZC,EAAa,GACbC,EAAa,GACbC,EAAgB,IACfjyB,GAAgBkxB,GAAUC,GAAiBC,GAAcre,EAASke,EAAUpe,EAAYC,EAASue,EAAWC,EAAW,GAC1HS,EAAa,CAAC,eACdC,EAAa,CAAC,eACLjf,GACT+e,EAAY,CAAC,YAAa,cAC1BC,EAAa,CAAC,mBACdC,EAAa,CAAC,aACLf,GACTc,EAAa,CAAC,kBACdC,EAAa,CAAC,uBAAwB,0BAC7Bnf,GACTif,EAAY,CAAC,eAAgB,iBAC7BC,EAAa,CAAC,eACdC,EAAa,CAAC,oBACLlf,GACTgf,EAAY,CAAC,YAAa,cAC1BC,EAAa,CAAC,eACdC,EAAa,CAAC,iBACLd,EACTa,EAAa,CAAC,mBACLR,GACTQ,EAAa,CAAC,wBAAyB,yBACvCC,EAAa,CAAC,oBAEdD,EAAa,CAAC,eAEZ/xB,GACF+xB,EAAW7rP,KAAK,mBAAoB,wBAAyB,0BA+FjE,SAAoBovJ,GAClB,IAAK,IAAI/tJ,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IACnC,IAAK+wH,EAASN,QAAQs9B,EAAS/tJ,GAAI,WAAY,OAAO,EAExD,OAAO,CACT,CAlGM2qP,CAAW58F,IAAao8F,KAC1BK,EAAa,IAEX/xB,IAAiBwxB,IACnBM,EAAY,CAAC,WAAY,YAAa,eAChB,eAAlBE,EAAW,KAAqBA,EAAa,CAAC,kBAEhDf,EACFgB,EAAgB,CAAC,SAAU,QAAS,gBAAiB,iBAC5CjyB,IAAiBwxB,GAAgBJ,EAC1Ca,EAAgB,CAAC,SAAU,SAClBpf,GAAaC,GAAUC,EAChCkf,EAAgB,CAAC,SACRZ,IACTY,EAAgB,CAAC,WA2DrB,SAAsB38F,GAEpB,IADA,IAAI68F,GAAa,EACR5qP,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,SACvBwsP,EAD+B5qP,IAAK,CAExC,IAAIo6G,EAAQ2zC,EAAS/tJ,GAChBo6G,EAAM1E,SAAY0E,EAAM1E,QAAQs/B,eACjCjkB,EAASN,QAAQrW,EAAO,iBACtB4uI,EAAgBpwE,WAAWx+D,IAAU4uI,EAAgBnwE,QAAQz+D,MAC/DwwI,GAAa,GAEN75H,EAASN,QAAQrW,EAAO,eACT,QAApBA,EAAMm1G,WAAwC,QAAjBn1G,EAAMl1G,SAIvC0lP,GAAa,GAEjB,CACA,OAAOA,CACT,CA5EMC,CAAa98F,IACf28F,EAAc/rP,KAAK,WAAY,WAEjC,IAAImsP,EAAoB,GACpBC,EAAc,SAAS3hO,IACa,IAAlC0hO,EAAkBrpP,QAAQ2nB,KACC,IAA3BohO,EAAW/oP,QAAQ2nB,IACrB0hO,EAAkBnsP,KAAKyqB,EAE3B,EACA,GAAIxhB,MAAMiI,QAAQ25O,GAAe,CAE/B,IADA,IAAIwB,EAAU,GACLhrP,EAAI,EAAGA,EAAIwpP,EAAaprP,OAAQ4B,IAAK,CAC5C,IAAIgxB,EAAIw4N,EAAaxpP,GACJ,kBAANgxB,GACTA,EAAIA,EAAEliB,eACyB,IAA3B22O,EAAWhkP,QAAQuvB,IACjBqlH,EAAWuR,KAAK,WAAavR,EAAWuR,KAAK,QACjDvR,EAAWuR,KAAK,eACd8iG,EAAc/rP,KAAKqyB,GAEN,qBAANA,EACT+5N,EAAY,oBACG,gBAAN/5N,EACT+5N,EAAY,eACG,iBAAN/5N,EACT+5N,EAAY,yBACG,iBAAN/5N,GACT+5N,EAAY,yBACZA,EAAY,mBACZA,EAAY,kBACZA,EAAY,oBACG,gBAAN/5N,IACT+5N,EAAY,yBACZA,EAAY,yBACZA,EAAY,mBACZA,EAAY,kBACZA,EAAY,qBAETC,EAAQrsP,KAAKqyB,EACtB,CACAw4N,EAAewB,CACjB,CAIA,OAHAZ,EAASM,GACTN,EAASG,EAAU5hP,OAAO8hP,IAC1BL,EAASU,GAsCX,SAA+BpzM,EAAQmsK,GACrC,GAAIA,EAAQzlN,OACV,GAAIwJ,MAAMiI,QAAQg0M,EAAQ,IACxB,IAAK,IAAI7jN,EAAI,EAAGA,EAAI6jN,EAAQzlN,OAAQ4B,IAClC03C,EAAO/4C,KAAKklN,EAAQ7jN,SAEjB03C,EAAO/4C,KAAKklN,GAErB,OAAOnsK,CACT,CA9CSuzM,CAAsBvzM,EAAQ8xM,EACvC,CA9KmB0B,CAAgBnmI,GAE7B6jI,EAASA,EAAQtsM,OAAOyoE,EAAImkI,GAC3B7yG,EAAWiY,SAAW26F,EAAclkI,EAAImkI,EAvB7C,MALMN,IACFA,EAAQr6F,iBACDlY,EAAWiY,SA2BxB,CA4OF,IAIE68F,GAAmBl/M,EAAW,CAChC,kCAAkCt6B,EAASkuB,GAEzCA,EAAOluB,QAAU,CACf4+G,WAAY,YACZtnH,KAAM,UACN4kH,iBAAkBg4H,KAClBz3F,qBAAsB23F,KACtBqF,OAAQrC,KAEZ,IAIEsC,GAAqBp/M,EAAW,CAClC,oCAAoCt6B,EAASkuB,GAE3C,IAAI69H,EAAUD,KAAoBC,QAClC79H,EAAOluB,QAAU,SAAmBgpD,EAAI01C,EAAQi7I,QACvB,IAAnBA,IACFA,EAAiB5tF,EAAQ/iG,EAAG0yG,iBAAmB,WAEjD,IAAIk+E,EAAc,CAAC5wL,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IAAK8lB,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,KACpDoO,EAASsoM,EAAY,IAAMA,EAAY,GAAKA,EAAY,IAAMD,EAClE3wL,EAAG9lB,MAAQ8lB,EAAGy9E,OAAOvjG,MAAQ,CAC3B8lB,EAAGm7H,IAAI7yI,GAAUsoM,EAAY,GAAKtoM,GAAUotD,GAC5C11C,EAAGm7H,IAAI7yI,GAAUsoM,EAAY,GAAKtoM,GAAUotD,IAE9C11C,EAAGu8F,UACL,CACF,IAIEs0F,GAAsBv/M,EAAW,CACnC,qCAAqCt6B,GAEnC,IAAIs7H,EAAMtN,KACN8sC,EAAYmuB,KACZ//C,EAAUH,KAAmBG,QAC7BhtB,EAAmB29C,KACnBigF,EAAYJ,KACZnqD,EAAarN,KACbr9F,EAAerB,IAAoBqB,aACnCknE,EAAUD,KAAoBC,QAyHlC,SAASguF,EAAoB5sD,EAAM6sD,EAAOnrJ,GACxC,IAAIq6F,EAAQr6F,EAAKq6F,MACbrlF,EAAYhV,EAAKgV,UACjBo2I,EAAWprJ,EAAKorJ,SAChBC,EAAmBr2I,EAAU+mC,sBAC7Bkf,EAAcjmD,EAAU8mC,iBACxB1B,EAAO+wG,EAAMzoG,IACbjI,EAAWL,EAAKvyH,OAAO,GACvByjO,IAAet2I,EAAU4wC,YAAc,CAAC,GAAGnL,IAAa,CAAC,GAAGL,IAAS,CAAC,EACtEmxG,EAASJ,EAAMzoG,IACfD,EAA2B,MAArB8oG,EAAO1jO,OAAO,GAGxB,SAAS8rF,EAAOl5D,EAAMuuD,GACpB,OAAOyjC,EAAI94B,OAAO2qF,EAAM6sD,EAAO99H,EAAkB5yE,EAAMuuD,EACzD,CAJAmiJ,EAAMp1D,YAAc,KACpBo1D,EAAMK,iBAAmB,KAIzB73I,EAAO,YAAay3I,EAAW,SAAW,SAC1C3+G,EAAI94B,OAAO2qF,EAAM6sD,EAAO,CACtBt+E,gBAAiB,CACf/jE,QAAS,aACT7gF,OAAQw6H,EAAM,CAAC,OAAQ,SAAU,SAAW,CAAC,SAAU,SAAU,OACjEz5C,KAAMy5C,EAAM,SAAW,WAExB,mBACH,IACIjjJ,EAAGg9H,EADHlQ,EAAW6+H,EAAM9oP,KAEjBopP,EAAe,GACnB,IAAKjsP,EAAI,EAAGA,EAAI66L,EAAMz8L,OAAQ4B,KAC5Bg9H,EAAM69D,EAAM76L,MACA+rP,GACFv2I,EAAUqlC,EAAQ7d,IACpBn6H,OAASiqH,GACfm/H,EAAattP,KAAKq+H,GAGtB,IAAIkvH,EAAYC,EAAmBN,EAAkBE,GACrD,GAAIG,EAAW,CACb,IAAIE,EAAsB,GAC1B,IAAKpsP,EAAI,EAAGA,EAAIisP,EAAa7tP,OAAQ4B,IAE9BksP,EADLlvH,EAAMivH,EAAajsP,KACEosP,EAAoBztP,KAAKq+H,GAEhDivH,EAAeG,CACjB,CACA,IACIloO,EAASipJ,EADTk/E,EAAUJ,EAAa7tP,OAEvBiuP,IAAYvtD,EAAK56K,SAAW4nO,EAAW5nO,WACzCA,EAAU+oH,EAAI94B,OAAO2qF,EAAM6sD,EAAO,CAChCznO,QAAS,CACPolF,QAAS,aACT7gF,OAAQwjO,EACRziJ,MAAoD,IAA9CyiJ,EAAaxqP,QAAQqqP,EAAW5nO,SAAkB4nO,EAAW5nO,aAAU,IAE9E,YAEL,IAAIooO,EAAkBV,IAAa3oG,EAAM0oG,EAAM5gG,YAAS,EASxD,GARIshG,IAAYnoO,IAAY46K,EAAK3xB,aAAem/E,KAC9Cn/E,EAAclgC,EAAI94B,OAAO2qF,EAAM6sD,EAAO,CACpCx+E,YAAa,CACX7jE,QAAS,aACT7gF,OAAQwjO,EAAatjP,OAAO,EAAC,MAE9B,cAAe2jP,IAEhBpoO,EAAS,CACXynO,EAAMp1D,YAAcg2D,EAAuB9wF,EAAaswF,EAAQ7nO,EAAS,GACzE,IAAIsoO,EAAYh3I,EAAUqlC,EAAQ32H,IAC9BuoO,EAAa16M,EAAOyjE,EAAWm2I,GAAS55M,EAAOyjE,EAAWg3I,GAC1DvpG,KAA+B,MAAtB/+H,EAAQmE,OAAO,MAC1BokO,GAAcxpG,EAAM,IAAM,KAAOwpG,GAEnCF,EAAuBV,EAAkBE,EAAQ7nO,EAASuoO,EAC5D,MAAW3tD,EAAK56K,UAA4C,IAAjC22K,EAAMp5L,QAAQq9L,EAAK56K,UAC5C+oH,EAAI5yB,KAAK,WAAasxI,EAAMj1F,MAAQ,cAAgBooC,EAAK56K,QAAU,+BAErE,GAAIipJ,EAAa,CACf,IAAIC,EAAaj5D,EAAO,cACnBi5D,IAAYA,EAAau+E,EAAMv+E,WAAa,GACjDm/E,EAAuBV,EAAkBE,EAAQ5+E,EAAaC,EAChE,MAAW0xB,EAAK3xB,cAAoD,IAArC0tB,EAAMp5L,QAAQq9L,EAAK3xB,cAChDlgC,EAAI5yB,KAAK,WAAasxI,EAAMj1F,MAAQ,kBAAoBooC,EAAK3xB,YAAc,kIAE/E,CACA,SAASp7H,EAAOyjE,EAAW76C,GACzB,IAAIjW,EAASiW,EAAGjW,OAIhB,OAHKA,IACHA,EAAS8wD,EAAUqlC,EAAQlgF,EAAGmpF,aAAap/F,QAEtCA,EAAO,GAAKA,EAAO,EAC5B,CACA,SAASynM,EAAmBz0M,EAAQq0M,GAClC,IAAK,IAAI/rP,EAAI,EAAGA,EAAI03C,EAAOt5C,OAAQ4B,IACjC,GAAI03C,EAAO13C,GAAG+rP,GACZ,OAAOr0M,EAAO13C,GAGlB,OAAO,IACT,CACA,SAASusP,EAAuBV,EAAkBE,EAAQW,EAAQt/E,GAChE,IAAIptK,EAAGiG,EAAG0mP,EAAQC,EAAMC,EACpBX,EAAYC,EAAmBN,EAAkBE,GACnC,OAAdG,IACFA,EAAY,CAAC,GACHH,GAAU,EACpBc,EAAiBhB,EAAiBztP,OAClCytP,EAAiBltP,KAAKutP,IAEtBW,EAAiBhB,EAAiBpqP,QAAQyqP,GAE5C,IAAIY,EAAgB7rP,OAAOgkB,KAAKinO,GAChC,IAAKlsP,EAAI,EAAGA,EAAI6rP,EAAiBztP,OAAQ4B,IAEvC,GADA2sP,EAASd,EAAiB7rP,GACtBA,IAAM6sP,GAAkBF,EAAOD,GAAS,CAC1C,IAAIK,EAAYJ,EAAOD,GACvB,IAAKzmP,EAAI,EAAGA,EAAI6mP,EAAc1uP,OAAQ6H,IAEpC0mP,EADAC,EAAOE,EAAc7mP,IACN+mP,EAAeD,EAAWC,EAAe5/E,EAAY8+E,EAAUU,KAGhF,YADAf,EAAiBpuL,OAAOovL,EAAgB,EAE1C,CAEF,GAAmB,IAAfz/E,EACF,IAAKnnK,EAAI,EAAGA,EAAI6mP,EAAc1uP,OAAQ6H,IAAK,CACzC,IAAIhH,EAAM6tP,EAAc7mP,GACxBimP,EAAUjtP,GAAO+tP,EAAe5/E,EAAY8+E,EAAUjtP,GACxD,CAEFitP,EAAUQ,GAAU,CACtB,CACA,SAASM,EAAe5jO,EAAG4H,GACzB,IAEIi8N,EAAMC,EAFNC,EAAU,GACVC,EAAU,GAEG,kBAANhkO,IAET6jO,GADAE,EAAU/jO,EAAE5hB,MAAM,UAAU,IACbpJ,OACfgrB,GAAKA,EAAEvnB,OAAOorP,IAEC,kBAANj8N,IAETk8N,GADAE,EAAUp8N,EAAExpB,MAAM,UAAU,IACbpJ,OACf4yB,GAAKA,EAAEnvB,OAAOqrP,IAEhB,IAAIntN,EAAI3W,EAAI4H,EACZ,OAAKi8N,GAASC,EAGTD,GAASC,GAAQC,EAAQ9kO,OAAO,KAAO+kO,EAAQ/kO,OAAO,GAGvD4kO,IAASC,EACJntN,GAEDktN,EAAOC,EAAOC,EAAQtrP,OAAOqrP,GAAQE,EAAQvrP,OAAOorP,IAASltN,EAL5DotN,EAAUC,EAAUhkO,EAAI4H,EAHxB+O,CASX,CACA,SAASstN,EAAY30M,EAAO29F,GAK1B,IAJA,IAAIrwI,EAAOqwI,EAAW4N,MAClBqpG,EAAStnP,EAAK6K,EAAI7K,EAAK26B,EACvBijC,EAAM,CAAC,EACP3+C,EAAOhkB,OAAOgkB,KAAKyzB,GACd14C,EAAI,EAAGA,EAAIilB,EAAK7mB,OAAQ4B,IAAK,CACpC,IAAIf,EAAMgmB,EAAKjlB,GACX8oB,EAAM4vB,EAAMz5C,GAChB,GAAmB,kBAAR6pB,EAAkB,CAC3B,IAAI5hB,EAAS4hB,EAAIthB,MAAM,UAAU,GAC7Bw9J,EAAO99J,EAAO9I,OAClB0qB,GAAOA,EAAIjnB,OAAOmjK,GAElB,IADA,IAAIioC,EAA4B,MAArB/lM,EAAOmhB,OAAO,GAAailO,EAAS,EAAIA,EAC1CrnP,EAAI,EAAGA,EAAI++J,EAAM/+J,IACxB6iB,GAAOmkL,CAEX,CACArpI,EAAI3kE,GAAO6pB,CACb,CACA,OAAO86C,CACT,CAyHA,SAAS2pL,EAAa5yL,EAAI01C,GACxB,IAAIm9I,EAAc7yL,EAAGyiI,aACjBkuD,EAAiB5tF,EAAQ/iG,EAAG0yG,iBAC5BpqH,EAASuqM,EAAY,IAAMA,EAAY,GAAKA,EAAY,IAAMlC,EAClE3wL,EAAGjW,OAASiW,EAAGy9E,OAAO1zF,OAAS,CAC7BzB,GAAUuqM,EAAY,GAAKvqM,GAAUotD,EACrCptD,GAAUuqM,EAAY,GAAKvqM,GAAUotD,GAEvC11C,EAAGu8F,UACL,CA1aAvlJ,EAAQ8mK,eAAiB,SAAStrB,EAAU33C,EAAWhV,GACrD,IAIIxgG,EAAG04C,EAAOkiG,EAAMgmG,EAAQ9hD,EAAM6sD,EAAO1wM,EAAMnyB,EAJ3C+xK,EAAQr6F,EAAKq6F,MACb4yD,EAAajtJ,EAAKitJ,WAClB5B,EAAmBr2I,EAAU+mC,sBAAwB,GACrDkf,EAAcjmD,EAAU8mC,iBAAmB,GAE/C,IAAKt8I,EAAI,EAAGA,EAAI66L,EAAMz8L,OAAQ4B,IAI5B0rP,EAFA5sD,EAAO3xC,EADPyzF,EAAS/lG,EAAQggD,EAAM76L,KAEvB2rP,EAAQn2I,EAAUorI,GACe,CAC/B/lD,QACArlF,YACAo2I,SAAU6B,EAAW7M,KAGzB,SAASzpE,EAAMz/H,EAAQg2M,GACrB,IAAK1tP,EAAI,EAAGA,EAAI03C,EAAOt5C,OAAQ4B,IAE7B,IAAK46I,KADLliG,EAAQhB,EAAO13C,GAEbw1G,EAAUqlC,EAAQD,IAAO8yG,GAAah1M,CAG5C,CAEA,IADAy+H,EAAM1b,EAAa,eACdz7J,EAAI,EAAGA,EAAI6rP,EAAiBztP,OAAQ4B,IAEvC,IAAK46I,KADLliG,EAAQmzM,EAAiB7rP,GAGvB,IADA2rP,EAAQn2I,EAAUqlC,EAAQD,KAChBqyB,WAAY,CACpB,IAAK,IAAIupB,KAAS99I,EAAO,CACvB,IAAIi1M,EAAU9yG,EAAQ27C,IACuB,KAAxCrpC,EAASwgG,IAAY,CAAC,GAAG1gF,YAC5BhgC,EAAI5yB,KACF,8CAAgDszI,EAAU,wFAG9Dn4I,EAAUm4I,GAAS1gF,YAAa,CAClC,CACA,KACF,CAIJ,IADAjtK,EAAI,EACGA,EAAI6rP,EAAiBztP,QAAQ,CAElC,IAAKw8I,KADLliG,EAAQmzM,EAAiB7rP,GACL,EAClB2rP,EAAQn2I,EAAUqlC,EAAQD,KAChB27C,aAAet1L,OAAOgkB,KAAK0mO,EAAMp1D,aAAan4L,SAAW6C,OAAOgkB,KAAKyzB,GAAOt6C,SACpFytP,EAAiBpuL,OAAOz9D,EAAG,GAC3BA,KAEF,KACF,CACAA,GACF,CACAm3K,EAAM00E,EAAkB,oBACxB,IAAI+B,EAAa,CACf,YACA,QACA,YACA,YACA,cACA,gBACA,iBAEEC,GAAW,EACXC,GAAqB,EACzB,SAASC,IACPjlO,EAAM6iO,EAAM1wM,GACC,gBAATA,IACF6yM,EAAqBnC,EAAMn/C,oBAE/B,CACA,IAAKxsM,EAAI,EAAGA,EAAIy7J,EAAYr9J,OAAQ4B,IAAK,CACvC04C,EAAQ+iH,EAAYz7J,GACpB,IAAK,IAAIiG,EAAI,EAAGA,EAAI2nP,EAAWxvP,OAAQ6H,IAAK,CAG1C,IAAI+nP,EACJ,IAAKpzG,KAHL3/F,EAAO2yM,EAAW3nP,GAClB6iB,EAAM,KAEO4vB,EAIX,GAFAomJ,EAAO3xC,EADPyzF,EAAS/lG,EAAQD,IAEjB+wG,EAAQn2I,EAAUorI,GACZ3lM,KAAQ0wM,EAAd,CAGA,IAAKA,EAAMznO,UACT8pO,EAASrC,EACL1wM,KAAQ6jJ,GAAM,CAChBivD,IACA,KACF,CAEU,OAARjlO,GAAgBmyB,KAAQ6jJ,GAC1BivD,GATF,CAqBF,GATa,UAAT9yM,GAAoBnyB,GAAOg2K,EAAKjqJ,OAA+B,IAAtBiqJ,EAAKjqJ,MAAMz2C,QAAkC,OAAlB0gM,EAAKjqJ,MAAM,IAAiC,OAAlBiqJ,EAAKjqJ,MAAM,KAC3Gg5M,GAAW,GAEA,cAAT5yM,GAAgC,OAARnyB,GAAgB+kO,IAC1C/kO,GAAM,GAEI,OAARA,GAAgBmyB,KAAQ+yM,IAC1BllO,EAAMklO,EAAO/yM,IAEH,OAARnyB,EACF,IAAK8xH,KAAQliG,GACXizM,EAAQn2I,EAAUqlC,EAAQD,KACpB3/F,GAAiB,UAATA,EAAmBnyB,EAAI9mB,QAAU8mB,EAClC,gBAATmyB,IACF0wM,EAAMn/C,oBAAsBshD,EAC5B5sD,EAAWyqD,EAAOn2I,GAI1B,CACF,CACF,EAkLA7jG,EAAQs8O,QAAU,SAAiBlpI,GACjC,IAEI/kH,EAAGiG,EAAGyyC,EAAOw1M,EAAQvzL,EAAIwzL,EAAWt0O,EAAMw2F,EAF1CgmC,EAAatxB,EAAGonB,YAChB0/G,EAAmBx1G,EAAWkG,uBAAyB,GAE3D,IAAKv8I,EAAI,EAAGA,EAAI6rP,EAAiBztP,OAAQ4B,IAAK,CAC5C04C,EAAQ20M,EAAYxB,EAAiB7rP,GAAIq2I,GACzC,IAAIiK,EAAUr/I,OAAOgkB,KAAKyzB,GACtB01M,EAAWr5M,IACXs5M,EAAW,EACXC,EAAav5M,IACbw5M,EAAa,CAAC,EACdttD,EAAO,CAAC,EACRutD,GAAyB,EAC7B,IAAKvoP,EAAI,EAAGA,EAAIq6I,EAAQliJ,OAAQ6H,IAE9Bg7L,EADAitD,EAAS5tG,EAAQr6I,IACF00D,EAAK07E,EAAWwE,EAAQqzG,IACnCvzL,EAAGyiI,aAAcziI,EAAGjW,OAASiW,EAAGyiI,aAAap7L,QAC5C24D,EAAGyiI,aAAeziI,EAAGjW,OAAO1iD,QAC5B24D,EAAG8zL,cAAa9zL,EAAG8zL,YAAc9zL,EAAG9lB,MAAM7yC,SAC/C24D,EAAGu8F,WACHq3F,EAAWL,GAAUC,EAAYvtP,KAAKD,IAAIg6D,EAAGm6H,IAAMp8I,EAAMw1M,GACzDE,EAAWxtP,KAAK8mB,IAAI0mO,EAAUD,GACT,WAAjBxzL,EAAGwoE,WAA2BxoE,EAAG+zL,wBACnCJ,EAAa1tP,KAAK8mB,IAAI4mO,EAAYH,WAE7BxzL,EAAG+zL,sBACVL,EAAWztP,KAAK6mB,IAAI4mO,EAAUF,GACT,WAAjBxzL,EAAGwoE,YAAwBqrH,GAAyB,GAE1D,KAAIJ,EAAW53J,EAAe63J,IAAaG,EAC3C,IAAKvoP,EAAI,EAAGA,EAAIq6I,EAAQliJ,OAAQ6H,IAK9B,GAHAkoP,EAAYI,EADZL,EAAS5tG,EAAQr6I,IAGjB4T,GADA8gD,EAAKsmI,EAAKitD,IACA/qH,UACNgrH,IAAcG,GAAuB,WAATz0O,EAE9B,GADAw2F,EAAS89I,EAAYG,EACR,UAATz0O,EACF4xO,EAAU9wL,EAAI01C,OACT,CACL,IAAIm9I,EAAc7yL,EAAGyiI,aACjBuxD,GAAgBh0L,EAAGjW,OAAO,GAAKiW,EAAGjW,OAAO,KAAO8oM,EAAY,GAAKA,EAAY,IAC7EoB,GAAej0L,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IAAM8lB,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,MAAQ8lB,EAAGg8F,IAAIh8F,EAAG8zL,YAAY,IAAM9zL,EAAGg8F,IAAIh8F,EAAG8zL,YAAY,KAEnH,IADAp+I,GAAUs+I,GACGC,EAAc,EAAG,CAC5Bj0L,EAAGjW,OAASiW,EAAGy9E,OAAO1zF,OAAS8oM,EAAYxrP,QAC3CypP,EAAU9wL,EAAI01C,GACd,QACF,CAKA,GAJIu+I,EAAc,IAChBj0L,EAAG9lB,MAAQ8lB,EAAGy9E,OAAOvjG,MAAQ8lB,EAAG8zL,YAAYzsP,QAC5CquG,GAAUu+I,GAERj0L,EAAG8xG,UAAW,CAChB,IAAIkqB,EAAMh8H,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IACtB+hJ,EAAMj8H,EAAGg8F,IAAIh8F,EAAG9lB,MAAM,IACtBg6M,GAAel4D,EAAMC,GAAO,EAC5Bk4D,EAAWD,EACXE,EAAWF,EACXG,EAAYpuP,KAAKD,IAAIi2L,EAAMi4D,GAC3BI,EAAWJ,EAAcG,EAAY3+I,EAAS,OAC9C6+I,EAAWL,EAAcG,EAAY3+I,EAAS,OAC9C2qF,EAAYvuB,EAAUwuB,UAAU5kD,EAAY17E,EAAI,GAChDugI,EAAYzuB,EAAUwuB,UAAU5kD,EAAY17E,EAAI,GACpD4yL,EAAa5yL,EAAI01C,GACjB,IAIIjR,EACAl5F,EALA2qB,EAAIjwB,KAAKD,IAAIg6D,EAAGm6H,IAChBqG,EAAW1uB,EAAU2uB,eAAer2E,EAAIpqD,GACxC0gI,EAAWF,EAASzzK,IACpB4zK,EAAWH,EAAS1zK,IAGxB,IAAKvhB,EAAI,EAAGA,EAAIm1L,EAASj9L,OAAQ8H,KAC/Bk5F,EAASi8F,EAASn1L,GAAG4iB,IAAMkyK,EAAUK,EAASn1L,IAAM2qB,GACvCo+N,GAAY7vJ,EAAS0vJ,IAChCA,EAAW1vJ,GAGf,IAAKl5F,EAAI,EAAGA,EAAIo1L,EAASl9L,OAAQ8H,KAC/Bk5F,EAASk8F,EAASp1L,GAAG4iB,IAAMoyK,EAAUI,EAASp1L,IAAM2qB,GACvCq+N,GAAY9vJ,EAAS2vJ,IAChCA,EAAW3vJ,GAIfiR,IADoB0+I,EAAWD,IAAa,EAAIE,GAEhDF,EAAWn0L,EAAGm7H,IAAIg5D,GAClBC,EAAWp0L,EAAGm7H,IAAIi5D,GAClBp0L,EAAG9lB,MAAQ8lB,EAAGy9E,OAAOvjG,MAAQ8hJ,EAAMC,EAAM,CAACk4D,EAAUC,GAAY,CAACA,EAAUD,EAC7E,CACAvB,EAAa5yL,EAAI01C,EACnB,CAGN,CACF,EACA1+F,EAAQw9O,aAAe,SAAsB94G,EAAYuE,GAEvD,IADA,IAAI6gB,EAAcplB,EAAWiG,iBACpBt8I,EAAI,EAAGA,EAAIy7J,EAAYr9J,OAAQ4B,IAEtC,GADYy7J,EAAYz7J,GACd46I,GAAO,MAAO,IAAM56I,EAEhC,OAAO46I,CACT,EACAjpI,EAAQi/F,MAAQ,SAAemU,EAAIpqD,GACjC,GAAIA,EAAGyiI,aAAc,CAInB,IAHA,IAAIgyD,GAAgB,EAChBx0G,EAAOjgF,EAAGuoF,IACV2oG,EAAmB9mI,EAAGonB,YAAYoQ,sBAC7Bt2I,EAAI,EAAGA,EAAI4lP,EAAiBztP,OAAQ6H,IAC3C,GAAI4lP,EAAiB5lP,GAAG20I,GAAO,CAC7Bw0G,GAAgB,EAChB,KACF,CAEGA,GAAkC,WAAjBz0L,EAAGwoE,YACvBxoE,EAAGy9E,OAAO1zF,OAASiW,EAAGjW,OAASiW,EAAGyiI,oBAC3BziI,EAAGyiI,aAEd,CACF,CAWF,IAIEiyD,GAAsBpjN,EAAW,CACnC,8BAA8Bt6B,GAE5B,IAAIo+B,EAAKD,IACLihF,EAAWxE,KACXyiE,EAAQ9uC,KACRjT,EAAMtN,KACN8+C,EAAevgB,KACfoxF,EAAkBviB,KAClBn7H,EAAStC,IACT2/E,EAAU1Q,KACV+hB,EAASvR,KACTq3D,EAAU+E,KACVh0B,EAAO92B,KACPW,EAAqBvjC,KACrB8xF,EAAkB/D,KAClBgE,EAAyBD,EAAgBtB,QACzCwB,EAAuBF,EAAgB3+I,MACvC+tF,EAAc/D,KAAoB+D,YAClC+wD,EAAwB,QACxBC,EAAyB,SACzBC,EAAsB,MACtBn1G,EAAkBlB,KAAqBkB,gBAI3C,SAASo1G,EAAkBC,EAASC,EAASC,GAC3C,IAAK,IAAIhwP,EAAI,EAAGA,EAAIgwP,EAAQ5xP,OAAQ4B,IAAK,CACvC,IAAIiwP,EAAYD,EAAQhwP,GAAG,GACvBkwP,EAAYF,EAAQhwP,GAAG,GAC3B,KAAIiwP,EAAU,IAAMH,EAAQ,IAAMG,EAAU,IAAMH,EAAQ,KAGtDI,EAAU,GAAKH,EAAQ,IAAMG,EAAU,GAAKH,EAAQ,GACtD,OAAO,CAEX,CACA,OAAO,CACT,CACA,SAASI,EAAQprI,GACf,IAII/kH,EAAGy8J,EAASjS,EAAU7vF,EAAIyuD,EAAIE,EAJ9B+sB,EAAatxB,EAAGonB,YAChB+X,EAAK7N,EAAW4N,MAChBhxE,EAAMixE,EAAGpzH,EACT+5H,EAASssE,EAAKjnL,KAAK60E,EAAI,IAAI,GAS/B,GAPAsxB,EAAWylG,UAAUzxN,MAAM,CACzBxV,MAAOkwG,EAAG4Z,SAAStnB,YAAcg/B,EAAW9qB,WAAaxG,EAAG4Z,SAASyxH,gBAAkBrrI,EAAG98C,OAAOpzD,MAAQ,OAASwhI,EAAWxhI,MAAQ,KACrIC,OAAQiwG,EAAG4Z,SAAStnB,YAAcg/B,EAAW9qB,WAAaxG,EAAG4Z,SAAS0xH,iBAAmBtrI,EAAG98C,OAAOnzD,OAAS,OAASuhI,EAAWvhI,OAAS,OACxI+jC,UAAU,aAAahxC,KAAKonL,EAAQ5O,QAAShqC,EAAWxhI,MAAOwhI,EAAWvhI,QAC7EiwG,EAAG4Z,SAAS/lB,cAAcmM,EAAIsxB,EAAWzqB,eACzCj6G,EAAQ2+O,cAAcvrI,GACtBqhI,EAAQgF,OAAOrmI,IACVsxB,EAAWuR,KAAK,aACnB,OAAOonC,EAAMpuC,iBAAiB77B,GAEhC,SAASwrI,EAAgBplG,EAAKqlG,EAAYz/F,GACxC,IAAI0/F,EAAStlG,EAAIulG,IAAM,EACvB,MAA0B,MAAtBvlG,EAAIjI,IAAI76H,OAAO,GACZmoO,EACa,QAATz/F,EAAuBy/F,EAAWz4D,QAAU9kH,EAAMw9K,EACpDD,EAAWz4D,QAAUy4D,EAAWtxH,QAAUjsD,EAAMw9K,EAF/BvsG,EAAG53H,EAAI43H,EAAGrzI,GAAK,GAAKs6I,EAAI5oJ,UAAY,IAAMkuP,EAAS,EAIxED,EACa,UAATz/F,EAAyBy/F,EAAWz4D,QAAUy4D,EAAWtxH,QAAUjsD,EAAMw9K,EAC3ED,EAAWz4D,QAAU9kH,EAAMw9K,EAFVvsG,EAAG/6H,EAAI+6H,EAAGvjH,GAAKwqH,EAAI5oJ,UAAY,GAAKkuP,EAAS,CAGvE,CACA,IAAKzwP,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CAElC,IAAI6jJ,GADJlpF,EAAKkwF,EAAO7qJ,IACOqjJ,YACnB1oF,EAAG+9I,eAAiB,CAAC,EACrB/9I,EAAG+1L,IAAMzhE,EAAQlO,WAAWh8D,EAAIpqD,EAAGg1G,UAAW,GAC9Ch1G,EAAGk7I,kBAAoB06C,EAAgB51L,EAAIkpF,EAAWlpF,EAAGo2F,MACzDp2F,EAAGq7I,oBAAsBr7I,EAAGuwF,QAAUrH,EAAY0sG,EAChD51L,EACAkpF,EACAm9C,EAAmB/iC,cAActjG,EAAGo2F,OAClC,IACN,CACA,IAAI4/F,EAAqB,GACrBC,EAAgB,GAChBC,EAAe,GACfC,EAA2D,IAA7Cl/I,EAAOtkG,QAAQ+oI,EAAWzqB,gBAAoE,IAA5Cha,EAAOtkG,QAAQ+oI,EAAWxqB,eAAuBwqB,EAAWzqB,gBAAkByqB,EAAWxqB,aAC7J,IAAK4wC,KAAWpmB,EAAWoN,OAEzB,IADA+G,EAAWnU,EAAWoN,OAAOgZ,IAChBs0F,SACPvmG,EAAS7qF,IACX6qF,EAAS7qF,GAAGzqB,SAEds1G,EAAS7qF,QAAK,MACT,CACL,IAAImwL,EAAUtlG,EAAS9W,MAAMhvF,OACzBqrM,EAAUvlG,EAAS7W,MAAMjvF,OACzBssM,EAAYxmG,EAASwmG,UACzB,GAAInB,EAAkBC,EAASC,EAASc,KAAuD,IAAtCp0F,EAAQh7J,QAAQg5I,GAAyB,CAChG,IAAIw2G,EAASD,EAAUtuP,OACnBwuP,EAAc1mG,EAAS7qF,GAAKstE,EAAIzF,aAAawpH,EAAW,OAAQ,MACpEC,EAAOvyP,aAAawyP,EAAYxuP,OAAQuuP,EAAO1gN,WAAW,IAC1DqgN,EAAcjyP,KAAK89J,EACrB,MACEu0F,EAAU34M,OAAO,WAAWnD,SAC5B27M,EAAalyP,KAAK,CAACmxP,EAASC,IACvBe,IACHH,EAAmBhyP,KAAK89J,GACxBm0F,EAAcjyP,KAAK89J,GAGzB,CAEF,IA+CI00F,EAAaC,EAAcC,EAAeC,EAAYC,EAAgBC,EACtEC,EAAeC,EAAYC,EAAaC,EAAcC,EAAgBC,EACtEC,EAjDAC,EAAmB37G,EAAWoS,SAAS5vG,UAAU,OAAO6B,KAAKi2M,GAMjE,IALAqB,EAAiBz1M,QAAQp6C,OAAO,QAAQi5C,QAAQ,MAAM,GACtD42M,EAAiBx1M,OAAOtH,SACxB88M,EAAiB72M,MAAK,SAAS82M,GAC7B57G,EAAWoN,OAAOwuG,GAAUtyL,GAAK5vB,EAAGsI,OAAOt6C,KAC7C,IACKiC,EAAI,EAAGA,EAAI4wP,EAAcxyP,OAAQ4B,IACpCwqJ,EAAWnU,EAAWoN,OAAOmtG,EAAc5wP,IAC3CopH,EAAKohC,EAAS9W,MACdpqB,EAAKkhC,EAAS7W,MACV6W,EAAS7qF,SAAqB,IAAfypD,EAAG2uE,cAAqC,IAAfzuE,EAAGyuE,SAC7CvtC,EAAS7qF,GAAG93D,KACVonL,EAAQ3O,QACRl3D,EAAG2uE,QAAU9kH,EACbq2C,EAAGyuE,QAAU9kH,EACbm2C,EAAG8V,QAAU,EAAIjsD,EACjBq2C,EAAG4V,QAAU,EAAIjsD,GACjBprE,KAAK+pG,EAAO58F,KAAMqhI,EAAWxqB,cAAcxhG,MAAM,eAAgB,GAGvE,IAAKgsH,EAAW6R,oBACd,IAAKuU,KAAWpmB,EAAWoN,OAAQ,CACjC+G,EAAWnU,EAAWoN,OAAOgZ,GAC7BrzC,EAAKohC,EAAS9W,MACdpqB,EAAKkhC,EAAS7W,MACd,IASIu+G,EACAC,EAVA5hC,EAAS/lE,EAAS+lE,OAAS,OAASl6E,EAAW+sC,KAAO3mB,EAAU,OAChE21F,EAAWnlH,EAAItF,iBAAiB0O,EAAWm+D,OAAQ,WAAY+b,GAAQ,SAASrnM,GAClFA,EAAEkyB,QAAQ,YAAY,GAAMj5C,OAAO,OACrC,IACAqoJ,EAAS6nG,SAAWD,EAAS/5M,OAAO,QAAQ4C,KAAK,CAC/CpmC,MAAOu0G,EAAG8V,QACVpqH,OAAQw0G,EAAG4V,UAEb+vD,EAAQlC,aAAaviC,EAAS3M,KAAMz0B,EAAG2uE,QAASzuE,EAAGyuE,SAG/CvtC,EAASG,qBACXunG,EAAa,KACbC,EAAc5hC,IAEd2hC,EAAa3hC,EACb4hC,EAAc,MAEhBljE,EAAQpC,WAAWriC,EAAS3M,KAAMq0G,EAAYntI,GAC9CylC,EAAS2nG,YAAcA,CACzB,CAKF,SAASG,EAAUlsP,GACjB,MAAO,IAAM+qP,EAAc,IAAM/qP,EAAI,IAAMgrP,CAC7C,CACA,SAASmB,GAAcnsP,GACrB,MAAO,IAAMgjH,EAAG2uE,QAAU,IAAM3xL,EAAI,IAAMgjH,EAAG8V,OAC/C,CACA,SAASszH,GAAUrsP,GACjB,MAAO,IAAMA,EAAI,IAAMurP,EAAa,IAAMD,CAC5C,CACA,SAASgB,GAActsP,GAIrB,YAHkB,IAAdmjH,EAAGmsF,SACLtvM,GAAKmjH,EAAGmsF,QAEH,IAAMtvM,EAAI,IAAMmjH,EAAGyuE,QAAU,IAAMzuE,EAAG4V,OAC/C,CACA,SAASwzH,GAASvnG,EAAKwnG,EAAQC,GAC7B,IAAKznG,EAAIskB,UAAYhT,IAAYtR,EAAIH,aAAc,MAAO,GAC1D,IAAKG,EAAI9H,YAAa,OAAOuvG,EAAWznG,EAAI0qD,mBAC5C,IAAIjyI,EAAM+uL,EAAOxnG,EAAI0qD,mBAErB,OADI1qD,EAAID,SAAQtnF,GAAO+uL,EAAOxnG,EAAI6qD,sBAC3BpyI,CACT,CACA,IAAK64F,KAAWpmB,EAAWoN,OAAQ,CACjC+G,EAAWnU,EAAWoN,OAAOgZ,GAC7BrzC,EAAKohC,EAAS9W,MACdpqB,EAAKkhC,EAAS7W,MACd,IAAIk/G,GAAQ,OACRC,EAAuB1pI,EAAIqzC,KAC7B80F,EAAiBwB,EAAyB3pI,EAAI,OAAQE,EAAIuhC,GAC1DsmG,EAAc/nI,EAAG2uE,SAAWw5D,EAAiBt+K,EAAMs+K,EAAiB,GACpEC,EAAkBuB,EAAyB3pI,EAAI,QAASE,EAAIuhC,GAC5DumG,EAAehoI,EAAG2uE,QAAU3uE,EAAG8V,SAAWsyH,EAAkBv+K,EAAMu+K,EAAkB,GACpFH,EAAgBd,EAAgBnnI,EAAIE,EAAI,UACxCgoI,EAAaf,EAAgBnnI,EAAIE,EAAI,SACrCyoI,GAAgB3oI,EAAGi6B,aAAeoZ,IAAYrzC,EAAG4hC,eACd,aAAd5hC,EAAG8hC,QAAuC,QAAd9hC,EAAG8hC,SAClD9hC,EAAGsvF,eAAej8C,GAAW,CAAC40F,EAAeC,IAE/CuB,GAAQH,GAAStpI,EAAIkpI,EAAWC,IAC5BR,GAAgB3oI,EAAGqmD,WAA2B,QAAdrmD,EAAG8hC,QAAkC,aAAd9hC,EAAG8hC,UAC5D2nG,IAASP,EAAUjB,GAAiBiB,EAAUhB,IAEhD9mG,EAASwoG,OAAO3oO,MAAM,eAAgB++F,EAAGsnI,IAAM,MAAM7oP,KAAK+pG,EAAOjB,OAAQyY,EAAGqmD,SAAWrmD,EAAGsmD,UAAY,kBAExGllB,EAASwoG,OAAO/3M,KAAK,IAAK43M,IAC1B,IAAII,GAAQ,OACRH,EAAuBxpI,EAAImzC,KAC7Bo1F,EAAiBkB,EAAyBzpI,EAAI,SAAUF,EAAIyhC,GAC5D4mG,EAAgBnoI,EAAGyuE,QAAUzuE,EAAG4V,SAAW2yH,EAAiB5+K,EAAM,GAClE6+K,EAAciB,EAAyBzpI,EAAI,MAAOF,EAAIyhC,GACtD6mG,EAAapoI,EAAGyuE,SAAW+5D,EAAc7+K,EAAM,GAC/C0+K,EAAcpB,EAAgBjnI,EAAIF,EAAI,QACtCwoI,EAAerB,EAAgBjnI,EAAIF,EAAI,WACvC2oI,GAAgBzoI,EAAG+5B,aAAeoZ,IAAYnzC,EAAG0hC,eACd,aAAd1hC,EAAG4hC,QAAuC,QAAd5hC,EAAG4hC,SAClD5hC,EAAGovF,eAAej8C,GAAW,CAACk1F,EAAaC,IAE7CqB,GAAQP,GAASppI,EAAIkpI,GAAWC,IAC5BV,GAAgBzoI,EAAGmmD,WAA2B,QAAdnmD,EAAG4hC,QAAkC,aAAd5hC,EAAG4hC,UAC5D+nG,IAAST,GAAUb,GAAea,GAAUZ,IAE9CpnG,EAAS0oG,OAAO7oO,MAAM,eAAgBi/F,EAAGonI,IAAM,MAAM7oP,KAAK+pG,EAAOjB,OAAQ2Y,EAAGmmD,SAAWnmD,EAAGomD,UAAY,kBAExGllB,EAAS0oG,OAAOj4M,KAAK,IAAKg4M,GAC5B,CAEA,OADA97B,EAAKljB,cAAclvF,GACZiqE,EAAMpuC,iBAAiB77B,EAChC,CACA,SAAS+tI,EAAuBn4L,EAAI8hG,GAClC,OAAQ9hG,EAAG8Z,OAAS9Z,EAAG80G,YAAchT,IAAY9hG,EAAGqwF,cAA8B,QAAdrwF,EAAGuwF,QAAkC,aAAdvwF,EAAGuwF,OAChG,CACA,SAASioG,EAAuBx4L,EAAIo2F,EAAMlN,GACxC,IAAKA,EAAU4rB,WAAa5rB,EAAU6sG,IAAK,OAAO,EAClD,GAAyB,QAArB7sG,EAAUqH,QAAyC,aAArBrH,EAAUqH,OAAuB,OAAO,EAC1E,IAAI/H,EAAWU,EAAUR,YACzB,IAAKF,EAAU,OAAO,EACtB,IAAIiwG,EAAYpyD,EAAmBtjC,QAAQ3M,GAC3C,OAAIlN,EAAUkN,OAASA,EACd5N,EAASz+F,OAAO0uM,KAAez4L,EAAGjW,OAAO0uM,GAE3CvvG,EAAUqH,QAAU/H,EAASz+F,OAAO,EAAI0uM,KAAez4L,EAAGjW,OAAO,EAAI0uM,EAC9E,CACA,SAASL,EAAyBp4L,EAAIo2F,EAAMlN,EAAWgH,GACrD,GAAIsoG,EAAuBx4L,EAAIo2F,EAAMlN,GACnC,OAAOA,EAAU6sG,IAEnB,IAAK,IAAI1wP,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAAK,CACtC,IAAIqzP,EAAMxoG,EAAO7qJ,GACjB,GAAIqzP,EAAIjwG,YAAcS,EAAUT,WAAa+vG,EAAuBx4L,EAAIo2F,EAAMsiG,GAC5E,OAAOA,EAAI3C,GAEf,CACA,OAAO,CACT,CAiKA,SAAS4C,EAAkBlpI,GACzB,MAAgB,QAAZA,EACK42E,EAAmBjjC,UAAY,GAAM,KACvB,WAAZ3zC,EACF,SAEA42E,EAAmBhjC,UAAY,IAE1C,CA7YArsJ,EAAQ4hP,aAAe,SAASxuI,GAC9B,OAAOkoB,EAAI1I,YAAY,CAACyqD,EAAMr+B,aAAcw/F,GAAUprI,EACxD,EAmOApzG,EAAQ2+O,cAAgB,SAASvrI,GAC/B,IAAIiG,EAAQjG,EAAGonB,YAAYnhB,MACvBqrB,EAAatxB,EAAGonB,YAChBqnH,EAsKN,SAAgCn9G,GAC9B,IAAIrrB,EAAQqrB,EAAWrrB,MACnBwoI,EAAa7D,EAMjB,OALI1iH,EAAI1T,cAAcvO,GACpBwoI,EAAa5D,EACJ3iH,EAAI5T,aAAarO,KAC1BwoI,EAAa9D,GAER8D,CACT,CA/KmBC,CAAuBp9G,GACpC11F,EA+KN,SAAwB01F,GACtB,IAAIrrB,EAAQqrB,EAAWrrB,MACnBrqE,EAAK,MAMT,OALIssF,EAAIzT,YAAYxO,GAClBrqE,EAAKqgJ,EAAmBjjC,UAAY,KAC3B9wB,EAAIxT,eAAezO,KAC5BrqE,EAAKqgJ,EAAmBhjC,UAAY,MAE/Br9G,CACT,CAxLW+yM,CAAer9G,GACpBjwI,EAsIN,SAAuBiwI,EAAY11F,GACjC,IAAIqqE,EAAQqrB,EAAWrrB,MACnBk5B,EAAK7N,EAAW4N,MAChB0vG,EAAY,EAMhB,MALW,QAAPhzM,GAAiBA,EAEVA,IAAOqgJ,EAAmBjjC,UAAY,OAC/C41F,EAAY3oI,EAAM/3C,IAAI3mD,GAFtBqnO,GAAa3oI,EAAM/3C,IAAIjiD,EAIT,SAAZg6F,EAAM5kH,EACD89I,EAAG53H,EAAI,EAGP,UADC0+F,EAAMG,KAEH+4B,EAAG53H,EAAI43H,EAAGrzI,EAAIqzI,EAAGrzI,EAAIm6G,EAAM5kH,EAAIutP,EAG/Bt9G,EAAWvhI,OAASuhI,EAAWvhI,OAASk2G,EAAM5kH,EAAIutP,CAGjE,CA1JUC,CAAcv9G,EAAY11F,GAC9Bx6C,EAoHN,SAAuBkwI,EAAYm9G,GACjC,IAAIxoI,EAAQqrB,EAAWrrB,MACnBk5B,EAAK7N,EAAW4N,MAChB4vG,EAAY,EAMhB,OALIL,IAAe9D,EACjBmE,EAAY7oI,EAAM/3C,IAAI9pD,EACbqqO,IAAe5D,IACxBiE,GAAa7oI,EAAM/3C,IAAI7mD,GAGlB,UADC4+F,EAAME,KAEHg5B,EAAG/6H,EAAI+6H,EAAGvjH,EAAIqqF,EAAM7kH,EAAI0tP,EAGxBx9G,EAAWxhI,MAAQm2G,EAAM7kH,EAAI0tP,CAE1C,CApIUC,CAAcz9G,EAAYm9G,GAclC,GAbAlzD,EAAOlR,KAAKrqE,EAAI,SAAU,CACxBwqE,cAAel5C,EACfx0H,SAAU,aACVquK,iBAAkB,sBAClBV,YAAan5C,EAAW4O,WAAWpH,KACnCsyC,oBAAqB95C,EAAW4O,WAAWh6B,SAC3C3W,WAAY,CACVnuG,IACAC,IACA,cAAeotP,EACf7yM,QAGAqqE,EAAMhzG,MAAQgzG,EAAMI,WAAY,CAClC,IAAI2oI,EAAWhkN,EAAG8I,UAAU,WACxBm7M,EAAc/kE,EAAQ1C,KAAKx8I,EAAG8I,UAAU,aAAan2C,QAAQoS,OAC7Dq7I,EA+DR,SAAyBprC,EAAIiG,EAAOgpI,GAClC,IAAIC,EAASjpI,EAAM5kH,EACf8tP,EAAelpI,EAAMZ,QACrB7nH,EAAW0xP,EAAS,GAAM,IAAM,IAChCE,EAAYpvI,EAAGonB,YAAY15G,OAAOlwB,GAClC4tJ,EAAa,EAMjB,MALmB,UAAfnlC,EAAMG,KACRglC,EAAa6jG,EAAchpI,EAAM/3C,IAAI3mD,EAAI0+F,EAAM/3C,IAAIjiD,EAC3B,cAAfg6F,EAAMG,OACfglC,EA3BJ,SAA0B5tJ,EAAU0xP,EAAQC,EAAcp/O,EAAQolM,GAChE,IAAIv7M,EAAO,EAeX,MAdqB,WAAjBu1P,IACFv1P,GAAQu7M,EAAa,GAEN,MAAb33M,GACmB,QAAjB2xP,IACFv1P,GAAQu7M,GAEVv7M,GAAQmW,EAASm/O,EAASn/O,IAEL,WAAjBo/O,IACFv1P,GAAQu7M,GAEVv7M,GAAQs1P,EAASn/O,GAEZnW,CACT,CAUiBy1P,CAAiB7xP,EAAU0xP,EAAQC,EAAcnvI,EAAGonB,YAAYr3H,OAAQk/O,GAAehpI,EAAM/3C,IAAI3mD,EAAI0+F,EAAM/3C,IAAIjiD,GAE1Hm/H,EAAagkG,EACRhkG,EAEF,CACT,CA9EqBkkG,CAAgBtvI,EAAIiG,EAAOgpI,GAC5C,GAAI7jG,EAAa,EAAG,EA8ExB,SAA8BprC,EAAI3+G,EAAG+pJ,EAAY6jG,GAC/C,IAAIM,EAAU,mBACVtpI,EAAQjG,EAAGonB,YAAYnhB,MACvBzoH,EAAWyoH,EAAM5kH,EAAI,GAAM,IAAM,IACjCzH,EAAO,CACTwH,EAAG6kH,EAAM7kH,EACTC,EAAG4kH,EAAM5kH,EACTkmB,EAAG,EACH0E,EAAG,GAEDujO,EAAe,CAAC,EACD,UAAfvpI,EAAMG,MAvDZ,SAA4BpG,EAAIiG,EAAOzoH,EAAU6D,EAAG4tP,GAClD,IAAIrkG,EAA4B,UAAf3kC,EAAMG,KAAmBpG,EAAGonB,YAAY8X,MAAMpzI,EAAIk0G,EAAGonB,YAAYr3H,OAC9E0/O,EAAUvnH,EAAIzT,YAAYxO,GAAS5kH,EAAIA,EAAI4tP,EAC3CS,EAAuB,MAAblyP,EAAmBotJ,EAAa6kG,EAAUA,EACxD,QAAIvnH,EAAIzT,YAAYxO,IAAuB,MAAbzoH,GAAoB0qI,EAAIvT,eAAe1O,IAAuB,MAAbzoH,IAGtEkyP,EAAUT,CAErB,CA8CgCU,CAAmB3vI,EAAIiG,EAAOzoH,EAAU6D,EAAG4tP,GACvEr1P,EAAK4D,GAAY4tJ,EACO,cAAfnlC,EAAMG,OACfopI,EAAahyP,GAAY4tJ,EACzBprC,EAAGonB,YAAYkY,gBAAgBiwG,GAAWC,GAE5CvlE,EAAMn/B,gBAAgB9qC,EAAIuvI,GAC1BtlE,EAAMl/B,WAAW/qC,EAAIuvI,EAAS31P,EAChC,CAhGMg2P,CAAqB5vI,EAAI3+G,EAAG+pJ,EAAY6jG,GACxCD,EAAS94M,KAAK,CACZ90C,IACAC,IACA,cAAeotP,EACf7yM,GAAI2yM,EAAkBtoI,EAAMZ,WAC3BviH,KAAK42K,EAAara,aAAcj+J,EAAGC,GACtC,IAAIgqM,GAAcplF,EAAMhzG,KAAKxQ,MAAMi3K,EAAaha,aAAe,IAAIrmK,OACnE,GAAIgyM,EAAY,CACd,IAAI/wE,EAAQ2hE,EAAmBljC,aAAesyC,EAAapP,EAAmBhjC,UAC9D,IAAZhzC,EAAM5kH,IACRi5H,GAASA,GAEX00H,EAASl7M,UAAU,SAASsC,MAAK,WAC/B,IAAIy5M,GAAS72P,KAAK+J,aAAa,MAAM9F,MAAM,GAAI,GAAKq9H,EAAQ,KAC5DthI,KAAK4B,aAAa,KAAMi1P,EAC1B,GACF,CACA,IAAIC,EAAc9kN,EAAG8I,UAAU,oBAC/B,GAAIg8M,EAAYnyP,OAAQ,CACtB,IAAIoyP,EAAUf,EAASrxP,OAAOyvL,UAE1BuB,EADcohE,EAAQ1uP,EAAI0uP,EAAQhgP,OACRwrL,EAAO3M,oBAAsB3oE,EAAMC,SAAS5f,KAAKrlG,KAC/E6uP,EAAY55M,KAAK,CACf90C,IACAC,EAAGstL,EACH,cAAe8/D,EACf7yM,GAAI2yM,EAAkBtoI,EAAMZ,WAC3BviH,KAAK42K,EAAara,aAAcj+J,EAAGutL,EACxC,CACF,CACF,CACF,EAoIA/hL,EAAQojP,aAAe,SAAShwI,GAC9B,IAEI/kH,EAFAu9I,EAAWx4B,EAAGw4B,SACdy3G,EAAiB,GAErB,IAAKh1P,EAAI,EAAGA,EAAIu9I,EAASn/I,OAAQ4B,IAAK,CACpC,IAAIy+H,EAAK8e,EAASv9I,GACdopJ,EAAM3qB,EAAG,IAAM,CAAC,EAChBrkB,EAAQgvC,EAAIhvC,OAAS,CAAC,EACtB1E,EAAU0E,EAAM1E,SAAW,CAAC,EAC5Bu/I,EAAmBv/I,EAAQu/I,iBAC3BA,GAAkBA,EAAiBx2H,EAAIrkB,GAC3C,IAAI86I,EAAYx/I,EAAQw/I,UACpBA,GAAWF,EAAer2P,KAAK,CAAEyK,GAAI8rP,EAAW9rG,OACtD,CACA,GAAI4rG,EAAe52P,OAAQ,CACzB,IAAK4B,EAAI,EAAGA,EAAIg1P,EAAe52P,OAAQ4B,IAAK,CAC1C,IAAIuoK,EAAOysF,EAAeh1P,GAC1BuoK,EAAKn/J,GAAG27G,EAAIwjD,EAAKnf,IACnB,CACAkmG,EAAgBvqI,GAChBpzG,EAAQwjP,iBAAiBpwI,EAC3B,CAGA,OAFAiqE,EAAM3kK,MAAM06F,GACZgM,EAASJ,mBAAmB,SAAU,OAAtCI,CAA8ChM,GACvCiqE,EAAMpuC,iBAAiB77B,EAChC,EACApzG,EAAQyjP,YAAc,SAASrwI,GAE7B,OADAgM,EAASJ,mBAAmB,WAAY,OAAxCI,CAAgDhM,GACzCiqE,EAAMpuC,iBAAiB77B,EAChC,EACApzG,EAAQ0jP,aAAe,SAAStwI,GAC9B,IAAI98C,EAAS88C,EAAG98C,OAEhB,OADA88C,EAAG98C,YAAS,EACL8oD,EAASlpH,KAAK,UAAWk9G,EAAI,GAAI98C,EAC1C,EACAt2D,EAAQ2jP,SAAW,SAASvwI,GAE1B,OADAgM,EAASJ,mBAAmB,SAAU,OAAtCI,CAA8ChM,GACvCiqE,EAAMpuC,iBAAiB77B,EAChC,EACApzG,EAAQ4jP,gBAAkB,SAASxwI,GAQjC,OAPAoyG,EAAK/nC,KAAKrqE,EAAI,UACVA,EAAGonB,YAAY+b,sBACjBn3B,EAAS7D,iBAAiBgrG,MAAMs9B,WAAWzwI,GAC3CuqI,EAAgBvqI,GAChBpzG,EAAQwjP,iBAAiBpwI,IAE3BpzG,EAAQ2+O,cAAcvrI,GACfiqE,EAAMpuC,iBAAiB77B,EAChC,EACApzG,EAAQ8jP,UAAY,SAAS1wI,GAC3B,IAAIsxB,EAAatxB,EAAGonB,YACpBi6G,EAAQgF,OAAOrmI,GACf,IAAK,IAAI/kH,EAAI,EAAGA,EAAIq2I,EAAWE,iBAAiBn4I,OAAQ4B,IAAK,CAC3D,IAAI01P,EAAWr/G,EAAWE,iBAAiBv2I,GAAG01P,SAC1CA,GAAUA,EAAS3wI,EACzB,CACA,OAAOiqE,EAAMpuC,iBAAiB77B,EAChC,EACApzG,EAAQgkP,SAAW,SAAS5wI,GAG1B,IAFA,IAAIsxB,EAAatxB,EAAGonB,YAChB+0G,EAAW7qG,EAAWmF,UAAUC,KAC3Bz7I,EAAI,EAAGA,EAAIkhP,EAAS9iP,OAAQ4B,IAAK,CACxC,IAAI+hP,EAAc1rG,EAAW6qG,EAASlhP,IAC1B+hP,EAAYppF,OAClBi9F,YAAY7T,EACpB,CACF,EACApwO,EAAQkkP,SAAW,SAAS9wI,GAC1B,IAAIsxB,EAAatxB,EAAGonB,YACpBmjH,EAAgBvqI,GAEhB,IADA,IAAIuxB,EAAkBD,EAAWE,iBACxBv2I,EAAI,EAAGA,EAAIs2I,EAAgBl4I,OAAQ4B,IAC1Cs2I,EAAgBt2I,GAAG69I,KAAK94B,GAS1B,OAPApzG,EAAQwjP,iBAAiBpwI,GACzBiqE,EAAM3kK,MAAM06F,GACZgM,EAASJ,mBAAmB,aAAc,OAA1CI,CAAkDhM,GAClDgM,EAASJ,mBAAmB,SAAU,OAAtCI,CAA8ChM,GAC9CgM,EAASJ,mBAAmB,cAAe,OAA3CI,CAAmDhM,GACnDgM,EAASJ,mBAAmB,SAAU,OAAtCI,CAA8ChM,GAC9CsxB,EAAWqa,aAAc,EAClBs+B,EAAMpuC,iBAAiB77B,EAChC,EACApzG,EAAQwjP,iBAAmB,SAASpwI,GAClC,IAAIsxB,EAAatxB,EAAGonB,YACpB,GAAIkK,EAAWuR,KAAK,QAAS,CAC3B,IAGI5nJ,EAAG67J,EAHH9N,EAAWhpC,EAAGs5B,UACdy3G,EAAe,GACf/9F,EAAW,GAKf,IAHI1hB,EAAW6R,qBACb7R,EAAW0/G,WAAW3mE,OAEnBpvL,EAAI,EAAGA,EAAI+tJ,EAAS3vJ,OAAQ4B,IAAK,CACpC,IAAIo6G,EAAQ2zC,EAAS/tJ,IACC,IAAlBo6G,EAAM9N,SAAsC,IAAlB8N,EAAM8kB,UACf,UAAf9kB,EAAMv3G,KACRwzI,EAAW6kF,aAAa9gH,EAAMvN,KAAKuiF,OACX,cAAfh1E,EAAMv3G,KACfoqI,EAAIvgB,WAAWopI,EAAc17I,EAAMs5B,MAAQt5B,EAAMu5B,OACzB,mBAAfv5B,EAAMv3G,MACfoqI,EAAIvgB,WAAWqrC,EAAU39C,EAAMqiD,SAGrC,CACA,IAAKz8J,EAAI,EAAGA,EAAI81P,EAAa13P,OAAQ4B,KACnC67J,EAAKxlB,EAAWoN,OAAOqyG,EAAa91P,KAC7B24J,QAAQkD,EAAGlD,OAAOy2B,OAE3B,IAAKpvL,EAAI,EAAGA,EAAI+3J,EAAS35J,OAAQ4B,KAC/B67J,EAAKxlB,EAAW0hB,EAAS/3J,IAAIk5N,UACtBvgE,QAAQkD,EAAGlD,OAAOy2B,MAE7B,CACF,EACAz9K,EAAQqkP,0BAA4B,SAASjxI,GAI3C,IAHA,IACIpqD,EADAkwF,EAASssE,EAAKjnL,KAAK60E,EAAI,IAAI,GAE3BkxI,EAAgB,CAAC,EACZj2P,EAAI,EAAGA,EAAI6qJ,EAAOzsJ,OAAQ4B,IAEjC,IAAKi2P,GADLt7L,EAAKkwF,EAAO7qJ,IACUkjJ,KAAM,CAC1B+yG,EAAct7L,EAAGuoF,KAAO,EACxBusG,EAAqB1qI,EAAIpqD,GACzBgkI,EAAY55E,EAAIpqD,GAChB,IAAIu7L,EAAav7L,EAAG47H,YACpB,GAAI2/D,EACF,IAAK,IAAIj6G,KAAOi6G,EAAY,CAC1B,IAAI/qG,EAAMgsE,EAAKt7E,UAAU92B,EAAIk3B,GAC7B0iD,EAAY55E,EAAIomC,EAAKxwF,EAAG9lB,OACxBohN,EAAch6G,GAAO,CACvB,CAEJ,CAEFuzG,EAAuBzqI,EACzB,EACApzG,EAAQwkP,UAAY,SAASpxI,GAC3BgM,EAASJ,mBAAmB,cAAe,OAA3CI,CAAmDhM,GACnDgM,EAASJ,mBAAmB,gBAAiB,OAA7CI,CAAqDhM,EACvD,EACApzG,EAAQykP,kBAAoB,SAASrxI,GACnCgM,EAASJ,mBAAmB,SAAU,OAAtCI,CAA8ChM,GAC9CgM,EAASJ,mBAAmB,gBAAiB,OAA7CI,CAAqDhM,GACrDgM,EAASJ,mBAAmB,UAAW,OAAvCI,CAA+ChM,GAC/CgM,EAASJ,mBAAmB,cAAe,OAA3CI,CAAmDhM,GACnDgM,EAASJ,mBAAmB,WAAY,OAAxCI,CAAgDhM,EAClD,CACF,IAIEsxI,GAAgBpqN,EAAW,CAC7B,oCAAoCt6B,EAASkuB,GAE3C,IAAIiwM,EAAYT,KAAmBS,UAC/BsJ,EAAkBP,KAClBp8F,EAA0BD,KAAyBC,wBACnD7qC,EAAStC,IACT2/E,EAAU1Q,KACV7lC,EAAc7B,KAAwB6B,YACtC8/B,EAAUo7D,KACVyB,EAAgB78D,EAAQ68D,cAM5B,SAASjmD,EAAKrqE,GACZ,IAAIsxB,EAAatxB,EAAGonB,YAGpB,IAAK,IAAIjmI,KAFTu2I,EAAwB13B,GACxBsxB,EAAWigH,gBAAgBz9M,UAAU,QAAQ3D,SAC/BmhG,EAAWoN,OAAQ,CAC/B,IAAI8yG,EAAiBlgH,EAAWoN,OAAOv9I,GAAGqwP,eACtCA,GAAgBA,EAAe19M,UAAU,QAAQ3D,QACvD,CACA,IAAK,IAAIl1C,EAAI,EAAGA,EAAIq2I,EAAW8lB,WAAW/9J,OAAQ4B,IAChDm1M,EAAQpwF,EAAI/kH,EAEhB,CACA,SAASw2P,EAAyBzxI,GAChC,OAAOA,EAAG4Z,SAASxnB,aACrB,CACA,SAASg+F,EAAQpwF,EAAIpjH,GACnBojH,EAAGonB,YAAY2vG,UAAUjjM,UAAU,gCAAkCl3C,EAAQ,MAAMuzC,SACnF,IAAIpV,EAAI04I,EAAQ48D,iCAAiCrwH,EAAIpjH,GACjD9D,EAAUiiC,EAAEjiC,QACZ2sJ,EAAW1qH,EAAE0qH,SACZ3sJ,EAAQu6I,QAEb,SAAuBm+G,GACrB,IAAIvkP,EAAIqjO,EAActwH,EAAIlnH,GACtB6rG,EAAQ,CACV,aAAc/nG,EACd,YAAa,UACbqQ,KAEE1E,EAAUzP,EAAQyP,QAClB+3K,EAAY,gBACZC,EAAYznL,EAAQwE,KAAKsR,OAASi+F,EAAOpB,SAASuU,EAAGonB,YAAYtgB,cACjEm1D,EAAYnjL,EAAQwE,KAAKwS,MACzBonO,EAAWp+O,EAAQwE,KAAK8kH,KACvB65D,IACHA,EAAY,EACZi7D,EAAW,SAEb,IAAIhJ,EAAoBujB,EAAyBzxI,IAAOA,EAAGonB,YAAY+mG,wBAA0BvxO,EAC7FsxO,IACF5tD,EAAYtgE,EAAGonB,YAAY3hB,gBAAgBX,UAC3Cv8G,EAAUy3G,EAAGonB,YAAY3hB,gBAAgBl9G,SAG3C,IADA,IAAImpP,EAAW,GACNC,EAAU,EAAGA,GAAW,EAAGA,IAAW,CAC7C,IAAIn1O,EAAOg1O,EAAep0P,OAAO,QAAQ84C,KAAKyuD,GAAOr/E,MAAM,UAAWqsO,EAAU,GAAMppP,GAASzF,KAAK+pG,EAAOjB,OAAQ20E,GAAWz9K,KAAK+pG,EAAO58F,KAAMqwK,GAAWx9K,KACzJonL,EAAQ5N,SACRq1E,EAAU,QAAUza,EACpBya,EAAU,EAAI11E,EAAYA,GAG5B,GADAm7D,EAAY56N,EAAMwjG,EAAIlnH,GAClBo1O,EAAmB,CACrB,IAAIL,EAAcl6F,EAAY3zB,EAAG98C,OAAQ,aAAcpqE,GACvD0jB,EAAK8I,MAAM,CACTnb,OAAQ,SAEV,IAAIwiO,EAAc,CAChB/sO,QAAS4c,EAAK7e,OACd8nJ,WACAzlC,KACA6tH,cACAK,mBAAmB,GAGjBp0K,EAAWixK,EAAU99N,EAAG+yG,GAC5Bq0H,EAAgBv6K,EAAUt9C,EAAMmwN,EAClC,MACEnwN,EAAK8I,MAAM,iBAAkBqsO,EAAU,MAAQ,QAEjDD,EAASC,GAAWn1O,CACtB,CACA,IAAIo1O,EAAWF,EAAS,GACTA,EAAS,GACf/zP,OAAO+hB,iBAAiB,SAAS,WACxC,OAYN,SAA2BsgG,EAAIxjG,GAC7B,GAAKi1O,EAAyBzxI,GAA9B,CACA,IAAIpgH,EAAU4c,EAAK7e,OACfy8B,GAAMx6B,EAAQmD,aAAa,cAC/B,GAAIq3B,GAAM,EAAG,CACX,GAAIA,IAAO4lF,EAAGonB,YAAY+mG,sBAExB,YADA0jB,EAAoB7xI,GAGtBA,EAAGonB,YAAY+mG,sBAAwB/zM,EACvC4lF,EAAGonB,YAAY0qH,qBAAuBD,EACtCxnE,EAAKrqE,EACP,CAXyC,CAY3C,CAzBa+xI,CAAkB/xI,EAAI4xI,EAC/B,GACF,CAvDAI,CAAchyI,EAAGonB,YAAYmqH,gBAwD/B,CACA,SAASna,EAAY6a,EAAejyI,EAAIkyI,GACtC,IAAIhX,EAAWgX,EAAiB/rI,KAAO+rI,EAAiB9rI,KACxD8jE,EAAQpC,WACNmqE,EACA,OAASjyI,EAAGonB,YAAYi3C,KAAO68D,EAC/Bl7H,EAEJ,CAsBA,SAAS6xI,EAAoB7xI,GACtByxI,EAAyBzxI,IACrBA,EAAGonB,YAAY+mG,uBACd,IACRz2F,EAAwB13B,UACjBA,EAAGonB,YAAY+mG,sBACtB9jD,EAAKrqE,GAET,CAxHAllF,EAAOluB,QAAU,CACfy9K,OACA+lB,UACA+hD,sBAsGF,SAA+BnyI,GAC7B,GAAKyxI,EAAyBzxI,GAA9B,CACA,IAAI5lF,EAAK4lF,EAAGonB,YAAYgwB,WAAW/9J,OAAS,EAC5C2mH,EAAGonB,YAAY+mG,sBAAwB/zM,EACvC4lF,EAAGonB,YAAY0qH,qBAAuBD,EACtCxnE,EAAKrqE,EAJoC,CAK3C,EAUF,IAIEoyI,GAAoBlrN,EAAW,CACjC,2CAA2Ct6B,EAASkuB,GAqGlDA,EAAOluB,QApGP,WACE,IAAIykB,EACAghO,EAAgB,EAChBC,GAAU,EACd,SAAS14P,EAAKkE,EAAM63C,GAKlB,OAJAtkB,EAAG8Z,KAAKvxC,KAAK,CACXkE,OACA63C,KAAMA,EAAOp/B,KAAKxW,MAAMwW,KAAK5W,UAAUg2C,SAAS,IAE3CtkB,CACT,CAwFA,OAvFAA,EAAK,CACH8Z,KAAM,GACNonN,UAAW,WACT,OAAOF,GACT,EACAG,kBAAmB,SAASC,EAAMC,GAChC,OAAO94P,EAAK,QAAS,CAAE64P,OAAMC,QAC/B,EACAC,YAAa,SAASC,EAAK51P,GAEzB,OADApD,EAAK,UAAW,CAAEg5P,MAAK5iO,GAAIhzB,IACpBpD,EAAK,OAAQ,CAAEg5P,MAAK5iO,GAAIhzB,GACjC,EACA61P,aAAc,SAASD,GACrB,OAAOh5P,EAAK,UAAW,CAAEg5P,OAC3B,EACAE,cAAe,SAASF,GACtB,OAAOh5P,EAAK,aAAc,CAAEg5P,OAC9B,EACAG,WAAY,SAASH,EAAK1/O,GACxB,OAAOtZ,EAAK,UAAW,CAAEg5P,MAAK1/O,WAChC,EACA8/O,cAAe,SAASJ,GACtB,OAAOh5P,EAAK,UAAW,CAAEg5P,OAC3B,EACAK,WAAY,SAASL,EAAKM,EAAOt2L,GAC/B,OAAOhjE,EAAK,cAAe,CAAEg5P,MAAKM,QAAOt2L,SAC3C,EACAu2L,OAAQ,SAASP,GACf,OAAOh5P,EAAK,SAAU,CAAEg5P,OAC1B,EACA3kM,OAAQ,SAAS2kM,EAAKM,EAAOt2L,GAC3B,OAAOhjE,EAAK,SAAU,CAAEg5P,MAAKM,QAAOt2L,SACtC,EACAw2L,KAAM,SAAShyP,GACb,OAAIA,IAAMkxP,EACDjhO,GACTihO,EAAUlxP,EACHxH,EAAK,OAAQ,CAAEwH,MACxB,EACAo8C,IAAK,SAAS7H,GAGZ,MAFoB,kBAATA,IACTA,EAAOp/B,KAAK5W,UAAUg2C,GAAM,EAAO,OAC9B/7C,EAAK,MAAO,CAAEgxL,IAAKj1I,GAC5B,EACApgB,MAAO,WACL,OAAO37B,EAAK,QACd,EACA8Z,SAAU,SAAS2/O,GACjB,OAAOz5P,EAAK,WAAY,CAAEy5P,QAC5B,EACAC,WAAY,SAASV,GACnB,OAAOh5P,EAAK,cAAe,CAAEg5P,OAC/B,EACAW,gBAAiB,SAAS32P,EAAOozB,GAC/B,OAAOp2B,EAAK,iBAAkB,CAAEgD,QAAOozB,MACzC,EACAwjO,gBAAiB,SAAS52P,EAAOozB,GAC/B,OAAOp2B,EAAK,iBAAkB,CAAEgD,QAAOozB,MACzC,EACAyjO,SAAU,SAASC,EAAKC,GACtB,OAAO/5P,EAAK,YAAa,CAAE85P,MAAKC,OAClC,EACAC,WAAY,SAASh3P,GACnB,OAAOhD,EAAK,cAAe,CAAEgD,SAC/B,EACAi3P,WAAY,SAASj3P,GACnB,OAAOhD,EAAK,cAAe,CAAEgD,SAC/B,EACAk3P,aAAc,SAASl3P,EAAOozB,GAC5B,OAAOp2B,EAAK,iBAAkB,CAAEgD,QAAOozB,MACzC,EACA+jO,aAAc,SAASn3P,EAAOozB,GAC5B,OAAOp2B,EAAK,iBAAkB,CAAEgD,QAAOozB,MACzC,EACAgkO,aAAc,SAASC,EAAQzlH,GAC7B,OAAO50I,EAAK,YAAa,CAAEq6P,SAAQzlH,UACrC,EACA0lH,aAAc,SAASt3P,GACrB,OAAOhD,EAAK,YAAa,CAAEgD,SAC7B,EACAu3P,UAAW,SAASF,EAAQzlH,GAC1B,OAAO50I,EAAK,aAAc,CAAEq6P,SAAQzlH,UACtC,EACArW,KAAM,WACJ,OAAOv+H,EAAK,OACd,EAGJ,CAEF,IAIEw6P,GAAkBltN,EAAW,CAC/B,yCAAyCt6B,EAASkuB,GAkHhDA,EAAOluB,QAjHP,SAAiBynP,GACI,kBAARA,IACTA,EAAM,OACR,IAAIhjO,EAAK,CACPijO,QAAS,SAASh5N,GAGhB,MAFiB,kBAANA,IACT+4N,EAAM/4N,GACD+4N,CACT,EACAE,mBAAoB,SAASvkO,EAAIwD,EAAMF,GACrC,IAAIoyM,EAAKlyM,EAAK,GACVmyM,EAAKnyM,EAAK,GACVoyM,EAAKtyM,EAAM,GACXuyM,EAAKvyM,EAAM,GACXkhO,EAAKxkO,EAAG,GAEZ,OAAQ41M,EAAKF,IADJ11M,EAAG,GACa21M,IAAOE,EAAKF,IAAO6uB,EAAK9uB,KAAQ2uB,CAC3D,EACAI,aAAc,SAAS1oO,EAAGyH,EAAMF,GAC9B,IAAIohO,EAAU3oO,EAAE,GAAKyH,EAAK,GACtBmhO,EAAUrhO,EAAM,GAAKE,EAAK,GAC1BohO,EAAU7oO,EAAE,GAAKyH,EAAK,GACtBqhO,EAAUvhO,EAAM,GAAKE,EAAK,GAC1B2qF,EAAMy2I,EAAUD,EAAUD,EAAUG,EACxC,QAAI12I,EAAMk2I,MAGNl2I,GADQw2I,EAAUA,EAAUE,EAAUA,IACvBR,EAGrB,EACAS,YAAa,SAAS7qP,EAAIC,GACxB,OAAOrO,KAAKD,IAAIqO,EAAG,GAAKC,EAAG,IAAMmqP,CACnC,EACAU,YAAa,SAAS9qP,EAAIC,GACxB,OAAOrO,KAAKD,IAAIqO,EAAG,GAAKC,EAAG,IAAMmqP,CACnC,EACAW,WAAY,SAAS/qP,EAAIC,GACvB,OAAOmnB,EAAGyjO,YAAY7qP,EAAIC,IAAOmnB,EAAG0jO,YAAY9qP,EAAIC,EACtD,EACA+qP,cAAe,SAAShrP,EAAIC,GAC1B,OAAImnB,EAAGyjO,YAAY7qP,EAAIC,GACdmnB,EAAG0jO,YAAY9qP,EAAIC,GAAM,EAAID,EAAG,GAAKC,EAAG,IAAM,EAAI,EACpDD,EAAG,GAAKC,EAAG,IAAM,EAAI,CAC9B,EACAgrP,gBAAiB,SAASxB,EAAKC,EAAKwB,GAClC,IAAIrgL,EAAM4+K,EAAI,GAAKC,EAAI,GACnB5+K,EAAM2+K,EAAI,GAAKC,EAAI,GACnByB,EAAMzB,EAAI,GAAKwB,EAAI,GACnBE,EAAM1B,EAAI,GAAKwB,EAAI,GACvB,OAAOt5P,KAAKD,IAAIk5E,EAAMugL,EAAMD,EAAMrgL,GAAOs/K,CAC3C,EACAiB,eAAgB,SAAStxL,EAAIC,EAAIvmB,EAAIC,GACnC,IAAI43M,EAAMtxL,EAAG,GAAKD,EAAG,GACjBwxL,EAAMvxL,EAAG,GAAKD,EAAG,GACjByxL,EAAM93M,EAAG,GAAKD,EAAG,GACjBg4M,EAAM/3M,EAAG,GAAKD,EAAG,GACjBi4M,EAAMJ,EAAMG,EAAMF,EAAMC,EAC5B,GAAI55P,KAAKD,IAAI+5P,GAAOtB,EAClB,OAAO,EACT,IAAI14M,EAAKqoB,EAAG,GAAKtmB,EAAG,GAChB9B,EAAKooB,EAAG,GAAKtmB,EAAG,GAChBy5G,GAAMs+F,EAAM75M,EAAK85M,EAAM/5M,GAAMg6M,EAC7Bt+F,GAAMk+F,EAAM35M,EAAK45M,EAAM75M,GAAMg6M,EAC7BvsN,EAAM,CACRwsN,OAAQ,EACRC,OAAQ,EACR7lO,GAAI,CACFg0C,EAAG,GAAKmzF,EAAKo+F,EACbvxL,EAAG,GAAKmzF,EAAKq+F,IAuBjB,OAnBEpsN,EAAIwsN,OADFz+F,IAAOk9F,GACK,EACPl9F,EAAKk9F,GACE,EACPl9F,EAAK,IAAMk9F,EACL,EACNl9F,EAAK,EAAIk9F,EACH,EAEA,EAEbjrN,EAAIysN,OADFx+F,IAAOg9F,GACK,EACPh9F,EAAKg9F,GACE,EACPh9F,EAAK,IAAMg9F,EACL,EACNh9F,EAAK,EAAIg9F,EACH,EAEA,EACRjrN,CACT,EACA0sN,kBAAmB,SAAS9lO,EAAI+lO,GAM9B,IALA,IAAI30P,EAAI4uB,EAAG,GACP3uB,EAAI2uB,EAAG,GACPgmO,EAASD,EAAOA,EAAO18P,OAAS,GAAG,GACnC48P,EAASF,EAAOA,EAAO18P,OAAS,GAAG,GACnC68P,GAAS,EACJj7P,EAAI,EAAGA,EAAI86P,EAAO18P,OAAQ4B,IAAK,CACtC,IAAIk7P,EAASJ,EAAO96P,GAAG,GACnBm7P,EAASL,EAAO96P,GAAG,GACnBm7P,EAAS/0P,EAAIgzP,GAAO4B,EAAS50P,EAAIgzP,IAAQ2B,EAASG,IAAW90P,EAAI+0P,IAAWH,EAASG,GAAUD,EAAS/0P,EAAIizP,IAC9G6B,GAAUA,GACZF,EAASG,EACTF,EAASG,CACX,CACA,OAAOF,CACT,GAEF,OAAO7kO,CACT,CAEF,IAIEglO,GAAsBnvN,EAAW,CACnC,6CAA6Ct6B,EAASkuB,GAwEpDA,EAAOluB,QAvEU,CACftI,OAAQ,WACN,IAAI+sB,EAAK,CACPzzB,KAAM,CAAEA,MAAM,EAAMQ,KAAM,MAC1Bk4P,OAAQ,SAAS34P,GACf,OAAa,OAATA,GAAiBA,IAAS0zB,EAAGzzB,IAGnC,EACA24P,QAAS,WACP,OAAwB,OAAjBllO,EAAGzzB,KAAKQ,IACjB,EACAo4P,QAAS,WACP,OAAOnlO,EAAGzzB,KAAKQ,IACjB,EACAzE,aAAc,SAASgE,EAAM48I,GAG3B,IAFA,IAAI5vG,EAAOtZ,EAAGzzB,KACV64P,EAAOplO,EAAGzzB,KAAKQ,KACH,OAATq4P,GAAe,CACpB,GAAIl8G,EAAMk8G,GAKR,OAJA94P,EAAKQ,KAAOs4P,EAAKt4P,KACjBR,EAAKS,KAAOq4P,EACZA,EAAKt4P,KAAKC,KAAOT,OACjB84P,EAAKt4P,KAAOR,GAGdgtC,EAAO8rN,EACPA,EAAOA,EAAKr4P,IACd,CACAusC,EAAKvsC,KAAOT,EACZA,EAAKQ,KAAOwsC,EACZhtC,EAAKS,KAAO,IACd,EACAs4P,eAAgB,SAASn8G,GAGvB,IAFA,IAAIp8I,EAAOkzB,EAAGzzB,KACV64P,EAAOplO,EAAGzzB,KAAKQ,KACH,OAATq4P,IACDl8G,EAAMk8G,IAEVt4P,EAAOs4P,EACPA,EAAOA,EAAKr4P,KAEd,MAAO,CACLjF,OAAQgF,IAASkzB,EAAGzzB,KAAO,KAAOO,EAClCo7D,MAAOk9L,EACPj8P,OAAQ,SAASmD,GAMf,OALAA,EAAKQ,KAAOA,EACZR,EAAKS,KAAOq4P,EACZt4P,EAAKC,KAAOT,EACC,OAAT84P,IACFA,EAAKt4P,KAAOR,GACPA,CACT,EAEJ,GAEF,OAAO0zB,CACT,EACA1zB,KAAM,SAASg4C,GAUb,OATAA,EAAKx3C,KAAO,KACZw3C,EAAKv3C,KAAO,KACZu3C,EAAKxF,OAAS,WACZwF,EAAKx3C,KAAKC,KAAOu3C,EAAKv3C,KAClBu3C,EAAKv3C,OACPu3C,EAAKv3C,KAAKD,KAAOw3C,EAAKx3C,MACxBw3C,EAAKx3C,KAAO,KACZw3C,EAAKv3C,KAAO,IACd,EACOu3C,CACT,EAGJ,IAIEghN,GAAsBzvN,EAAW,CACnC,6CAA6Ct6B,EAASkuB,GACpD,IAAI87N,EAAaP,KAyUjBv7N,EAAOluB,QAxUP,SAAqBiqP,EAAkBxC,EAAKyC,GAe1C,SAASC,EAAYj3O,EAAO9iB,EAAK41P,GAC/B,MAAO,CACLx4N,GAAI08N,EAAWA,EAASvE,aAAe,EACvCzyO,QACA9iB,MACAg6P,OAAQ,CACN9D,MAAON,EAAIoE,OAAO9D,MAClBt2L,MAAOg2L,EAAIoE,OAAOp6L,OAEpBq6L,UAAW,KAEf,CACA,IAAIC,EAAaN,EAAWtyP,SAgB5B,SAAS6yP,EAASlrH,EAAImrH,GACpBF,EAAWv9P,aAAasyI,GAAI,SAASwqH,GASnC,OAzBJ,SAAsBY,EAAYC,EAAMC,EAAMC,EAAYC,EAAMC,GAC9D,IAAIC,EAAOtD,EAAIY,cAAcqC,EAAMG,GACnC,OAAa,IAATE,EACKA,EACLtD,EAAIW,WAAWuC,EAAMG,GAChB,EACLL,IAAeG,EACVH,EAAa,GAAK,EACpBhD,EAAIE,mBACTgD,EACAC,EAAaC,EAAOC,EAEpBF,EAAaE,EAAOD,GAClB,GAAK,CACX,CAGeG,CACT3rH,EAAG4rH,QACH5rH,EAAGj8G,GACHonO,EACAX,EAAKoB,QACLpB,EAAKzmO,GACLymO,EAAK/kP,MAAMse,IAEC,CAChB,GACF,CAyBA,SAAS8nO,EAAgBlF,EAAK1/O,GAC5B,IAAI6kP,EAzBN,SAA8BnF,EAAK1/O,GACjC,IAAI6kP,EAAWnB,EAAWj5P,KAAK,CAC7Bk6P,SAAS,EACT7nO,GAAI4iO,EAAI9yO,MACR8yO,MACA1/O,UACAxB,MAAO,KACPu8C,OAAQ,OAGV,OADAkpM,EAASY,EAAUnF,EAAI51P,KAChB+6P,CACT,CAciBC,CAAqBpF,EAAK1/O,GAEzC,OAfF,SAA4B6kP,EAAUnF,EAAK1/O,GACzC,IAAI+kP,EAASrB,EAAWj5P,KAAK,CAC3Bk6P,SAAS,EACT7nO,GAAI4iO,EAAI51P,IACR41P,MACA1/O,UACAxB,MAAOqmP,EACP9pM,OAAQ,OAEV8pM,EAASrmP,MAAQumP,EACjBd,EAASc,EAAQF,EAAS/nO,GAC5B,CAGEkoO,CAAmBH,EAAUnF,EAAK1/O,GAC3B6kP,CACT,CASA,SAASI,EAAYlsH,EAAIj8G,GACvB,IAAIukB,EAAKwiN,EAAY/mO,EAAIi8G,EAAG2mH,IAAI51P,IAAKivI,EAAG2mH,KAExC,OAXF,SAAwB3mH,EAAIjvI,GACtB85P,GACFA,EAASnE,YAAY1mH,EAAG2mH,IAAK51P,GAC/BivI,EAAGv6H,MAAMy+B,SACT87F,EAAG2mH,IAAI51P,IAAMA,EACbivI,EAAGv6H,MAAMse,GAAKhzB,EACdm6P,EAASlrH,EAAGv6H,MAAOu6H,EAAGj8G,GACxB,CAGEooO,CAAensH,EAAIj8G,GACZ8nO,EAAgBvjN,EAAI03F,EAAG/4H,QAChC,CACA,SAASmlP,EAAUC,EAAqBC,GACtC,IAAIC,EAAc5B,EAAWtyP,SAa7B,SAASm0P,EAAsBC,GAC7B,OAAOF,EAAY9B,gBAAe,SAASD,GACzC,IAAIkB,EAdR,SAAuBgB,EAAKD,GAC1B,IAAIz0L,EAAK00L,EAAI/F,IAAI9yO,MACb84O,EAAKD,EAAI/F,IAAI51P,IACb2gD,EAAK+6M,EAAI9F,IAAI9yO,MACbk4F,EAAK0gJ,EAAI9F,IAAI51P,IACjB,OAAIq3P,EAAIa,gBAAgBjxL,EAAItmB,EAAIq6D,GAC1Bq8I,EAAIa,gBAAgB0D,EAAIj7M,EAAIq6D,IAEzBq8I,EAAIE,mBAAmBqE,EAAIj7M,EAAIq6D,GAD7B,GACwC,EAE5Cq8I,EAAIE,mBAAmBtwL,EAAItmB,EAAIq6D,GAAM,GAAK,CACnD,CAGe6gJ,CAAcH,EAAKjC,EAAKxqH,IACnC,OAAO0rH,EAAO,CAChB,GACF,CACA,SAASnF,EAAkBmG,EAAKD,GAC9B,IAAIjG,EAAOkG,EAAI/F,IACXF,EAAOgG,EAAI9F,IACX3uL,EAAKwuL,EAAK3yO,MACV84O,EAAKnG,EAAKz1P,IACV2gD,EAAK+0M,EAAK5yO,MACVk4F,EAAK06I,EAAK11P,IACV85P,GACFA,EAAStE,kBAAkBC,EAAMC,GACnC,IAAIz3P,EAAIo5P,EAAIiB,eAAerxL,EAAI20L,EAAIj7M,EAAIq6D,GACvC,IAAU,IAAN/8G,EAAa,CACf,IAAKo5P,EAAIa,gBAAgBjxL,EAAI20L,EAAIj7M,GAC/B,OAAO,EACT,GAAI02M,EAAIW,WAAW/wL,EAAI+zC,IAAOq8I,EAAIW,WAAW4D,EAAIj7M,GAC/C,OAAO,EACT,IAAIm7M,EAAYzE,EAAIW,WAAW/wL,EAAItmB,GAC/Bo7M,EAAY1E,EAAIW,WAAW4D,EAAI5gJ,GACnC,GAAI8gJ,GAAaC,EACf,OAAOL,EACT,IAAIM,GAAcF,GAAazE,EAAII,aAAaxwL,EAAItmB,EAAIq6D,GACpDihJ,GAAcF,GAAa1E,EAAII,aAAamE,EAAIj7M,EAAIq6D,GACxD,GAAI8gJ,EAMF,OALIG,EACFd,EAAYO,EAAKE,GAEjBT,EAAYQ,EAAK3gJ,GAEZ0gJ,EACEM,IACJD,IACCE,EACFd,EAAYO,EAAKE,GAEjBT,EAAYQ,EAAK3gJ,IAGrBmgJ,EAAYO,EAAKz0L,GAErB,MACmB,IAAbhpE,EAAE26P,UACc,IAAd36P,EAAE46P,OACJsC,EAAYQ,EAAKh7M,GACG,IAAb1iD,EAAE46P,OACTsC,EAAYQ,EAAK19P,EAAE+0B,IACC,IAAb/0B,EAAE46P,QACTsC,EAAYQ,EAAK3gJ,IAEJ,IAAb/8G,EAAE46P,UACc,IAAd56P,EAAE26P,OACJuC,EAAYO,EAAKz0L,GACG,IAAbhpE,EAAE26P,OACTuC,EAAYO,EAAKz9P,EAAE+0B,IACC,IAAb/0B,EAAE26P,QACTuC,EAAYO,EAAKE,IAGvB,OAAO,CACT,CAEA,IADA,IAAIrjL,EAAW,IACP2hL,EAAWX,WAAW,CAC5B,IAAItqH,EAAKirH,EAAWV,UAGpB,GAFIM,GACFA,EAAS1D,KAAKnnH,EAAGj8G,GAAG,IAClBi8G,EAAG4rH,QAAS,CACd,IAAIqB,EAA0B,WAC5B,GAAIhG,EAAO,CACT,IAAIiG,EAAO3G,EAAkBvmH,EAAIinH,GACjC,GAAIiG,EACF,OAAOA,CACX,CACA,QAAIv8L,GACK41L,EAAkBvmH,EAAIrvE,EAEjC,EAEIk6L,GACFA,EAAS/D,WAAW9mH,EAAG2mH,IAAK3mH,EAAG/4H,SACjC,IAAIkmP,EAAcX,EAAsBxsH,GACpCinH,EAAQkG,EAAYjgQ,OAASigQ,EAAYjgQ,OAAO8yI,GAAK,KACrDrvE,EAAQw8L,EAAY7/L,MAAQ6/L,EAAY7/L,MAAM0yE,GAAK,KACnD6qH,GACFA,EAAS7D,WACPhnH,EAAG2mH,MACHM,GAAQA,EAAMN,MACdh2L,GAAQA,EAAMg2L,KAGlB,IAwCQsD,EArCA5W,EAHJ+Z,EAAMH,IACV,GAAIG,EACExC,GAGAvX,EAD0B,OAAxBrzG,EAAG2mH,IAAIoE,OAAOp6L,OAGPqvE,EAAG2mH,IAAIoE,OAAO9D,QAAUjnH,EAAG2mH,IAAIoE,OAAOp6L,SAE/Cy8L,EAAIzG,IAAIoE,OAAO9D,OAASmG,EAAIzG,IAAIoE,OAAO9D,OAEzCmG,EAAIzG,IAAIqE,UAAYhrH,EAAG2mH,IAAIoE,OAEzBF,GACFA,EAAShE,cAAcuG,EAAIzG,KAC7B3mH,EAAGv6H,MAAMy+B,SACT87F,EAAG97F,SAEL,GAAI+mN,EAAWV,YAAcvqH,EAAI,CAC3B6qH,GACFA,EAAS3D,OAAOlnH,EAAG2mH,KACrB,QACF,CACIiE,GAGAvX,EAD0B,OAAxBrzG,EAAG2mH,IAAIoE,OAAOp6L,OAGPqvE,EAAG2mH,IAAIoE,OAAO9D,QAAUjnH,EAAG2mH,IAAIoE,OAAOp6L,MAI/CqvE,EAAG2mH,IAAIoE,OAAOp6L,MAHXA,EAGmBA,EAAMg2L,IAAIoE,OAAO9D,MAFjBoF,EAKtBrsH,EAAG2mH,IAAIoE,OAAO9D,MADZ5T,GACqBrzG,EAAG2mH,IAAIoE,OAAOp6L,MAEfqvE,EAAG2mH,IAAIoE,OAAOp6L,OAEb,OAArBqvE,EAAG2mH,IAAIqE,YAMLf,EAJCt5L,EAGCqvE,EAAG/4H,UAAY0pD,EAAM1pD,QACd0pD,EAAMg2L,IAAIqE,UAAU/D,MAEpBt2L,EAAMg2L,IAAIoE,OAAO9D,MALnBjnH,EAAG/4H,QAAUqlP,EAAwBD,EAOhDrsH,EAAG2mH,IAAIqE,UAAY,CACjB/D,MAAOgD,EACPt5L,MAAOs5L,IAITY,GACFA,EAAS7oM,OACPg+E,EAAG2mH,MACHM,GAAQA,EAAMN,MACdh2L,GAAQA,EAAMg2L,KAGlB3mH,EAAGv6H,MAAMu8C,OAASmrM,EAAY5+P,OAAOo8P,EAAWj5P,KAAK,CAAEsuI,OACzD,KAAO,CACL,IAAIqtH,EAAKrtH,EAAGh+E,OACZ,GAAW,OAAPqrM,EACF,MAAM,IAAItuP,MAAM,2FAOlB,GALIwtP,EAAYlC,OAAOgD,EAAGn7P,OAASq6P,EAAYlC,OAAOgD,EAAGl7P,OACvDo0P,EAAkB8G,EAAGn7P,KAAK8tI,GAAIqtH,EAAGl7P,KAAK6tI,IACpC6qH,GACFA,EAASjE,aAAayG,EAAGrtH,GAAG2mH,KAC9B0G,EAAGnpN,UACE87F,EAAG/4H,QAAS,CACf,IAAIiR,EAAI8nH,EAAG2mH,IAAIoE,OACf/qH,EAAG2mH,IAAIoE,OAAS/qH,EAAG2mH,IAAIqE,UACvBhrH,EAAG2mH,IAAIqE,UAAY9yO,CACrB,CACAoxD,EAAS37E,KAAKqyI,EAAG2mH,IACnB,CACAsE,EAAWV,UAAUrmN,QACvB,CAGA,OAFI2mN,GACFA,EAAS3+H,OACJ5iD,CACT,CACA,OAAKshL,EAaE,CACL0C,UAAW,SAASxD,GAGlB,IAFA,IAAIrC,EAjTY5zO,EAAO9iB,EAkTnB22P,EAAMoC,EAAOA,EAAO18P,OAAS,GACxB4B,EAAI,EAAGA,EAAI86P,EAAO18P,OAAQ4B,IAAK,CACtCy4P,EAAMC,EACNA,EAAMoC,EAAO96P,GACb,IAAIu+P,EAAUnF,EAAIY,cAAcvB,EAAKC,GACrB,IAAZ6F,GAEJ1B,GAzTch4O,EA2TV05O,EAAU,EAAI9F,EAAMC,EA3TH32P,EA4TjBw8P,EAAU,EAAI7F,EAAMD,EA3TrB,CACLt5N,GAAI08N,EAAWA,EAASvE,aAAe,EACvCzyO,QACA9iB,MACAg6P,OAAQ,CACN9D,MAAO,KAEPt2L,MAAO,MAGTq6L,UAAW,QAmTP,EAEJ,CACF,EACAoB,UAAW,SAASoB,GAClB,OAAOpB,EAAUoB,GAAU,EAC7B,GAjCO,CACLpB,UAAW,SAASqB,EAAWC,EAAWC,EAAWC,GAOnD,OANAH,EAAUn/P,SAAQ,SAASq4P,GACzBkF,EAAgBf,EAAYnE,EAAI9yO,MAAO8yO,EAAI51P,IAAK41P,IAAM,EACxD,IACAgH,EAAUr/P,SAAQ,SAASq4P,GACzBkF,EAAgBf,EAAYnE,EAAI9yO,MAAO8yO,EAAI51P,IAAK41P,IAAM,EACxD,IACOyF,EAAUsB,EAAWE,EAC9B,EA0BN,CAEF,IAIEC,GAA0B5yN,EAAW,CACvC,iDAAiDt6B,EAASkuB,GA8KxDA,EAAOluB,QA7KP,SAAwB2oE,EAAU8+K,EAAKyC,GACrC,IAAIiD,EAAS,GACTC,EAAU,GAyKd,OAxKAzkL,EAASh7E,SAAQ,SAASq4P,GACxB,IAAIc,EAAMd,EAAI9yO,MACV6zO,EAAMf,EAAI51P,IACd,GAAIq3P,EAAIW,WAAWtB,EAAKC,GACtBv+I,QAAQE,KAAK,wGADf,CAIIwhJ,GACFA,EAASxD,WAAWV,GAuBtB,IAtBA,IAAIqH,EAAc,CAChBr9P,MAAO,EACPs9P,cAAc,EACdC,aAAa,GAEXC,EAAe,CACjBx9P,MAAO,EACPs9P,cAAc,EACdC,aAAa,GAEXE,EAAaJ,EAYRh/P,EAAI,EAAGA,EAAI8+P,EAAO1gQ,OAAQ4B,IAAK,CACtC,IACI+H,GADAimC,EAAQ8wN,EAAO9+P,IACF,GAEboxG,GADQpjE,EAAM,GACPA,EAAMA,EAAM5vC,OAAS,IAEhC,GADY4vC,EAAMA,EAAM5vC,OAAS,GAC7Bg7P,EAAIW,WAAWhyP,EAAM0wP,IACvB,GAAI4G,EAASr/P,GAAG,GAAM,GACpB,WACG,GAAIo5P,EAAIW,WAAWhyP,EAAM2wP,IAC9B,GAAI2G,EAASr/P,GAAG,GAAM,GACpB,WACG,GAAIo5P,EAAIW,WAAW3oJ,EAAMqnJ,IAC9B,GAAI4G,EAASr/P,GAAG,GAAO,GACrB,WACG,GAAIo5P,EAAIW,WAAW3oJ,EAAMsnJ,IAC1B2G,EAASr/P,GAAG,GAAO,GACrB,KAEN,CACA,GAAIo/P,IAAeJ,EAIjB,OAHAF,EAAOngQ,KAAK,CAAC85P,EAAKC,SACdmD,GACFA,EAASrD,SAASC,EAAKC,IAG3B,GAAI0G,IAAeD,EAAc,CAC3BtD,GACFA,EAASlD,WAAWqG,EAAYr9P,OAClC,IAAIA,EAAQq9P,EAAYr9P,MACpBozB,EAAKiqO,EAAYE,YAAcxG,EAAMD,EACrC6G,EAAYN,EAAYC,aACxBjxN,EAAQ8wN,EAAOn9P,GACf49P,EAAOD,EAAYtxN,EAAM,GAAKA,EAAMA,EAAM5vC,OAAS,GACnDohQ,EAAQF,EAAYtxN,EAAM,GAAKA,EAAMA,EAAM5vC,OAAS,GACpDqhQ,EAAOH,EAAYtxN,EAAMA,EAAM5vC,OAAS,GAAK4vC,EAAM,GACnD0xN,EAAQJ,EAAYtxN,EAAMA,EAAM5vC,OAAS,GAAK4vC,EAAM,GAaxD,OAZIorN,EAAIa,gBAAgBuF,EAAOD,EAAMxqO,KAC/BuqO,GACEzD,GACFA,EAASvD,gBAAgB0G,EAAYr9P,MAAOozB,GAC9CiZ,EAAMtlB,UAEFmzO,GACFA,EAAStD,gBAAgByG,EAAYr9P,MAAOozB,GAC9CiZ,EAAMmrB,OAERomM,EAAOC,GAELpG,EAAIW,WAAW0F,EAAM1qO,IACvB+pO,EAAOrhM,OAAO97D,EAAO,GACjBy3P,EAAIa,gBAAgByF,EAAOD,EAAMF,KAC/BD,GACEzD,GACFA,EAAStD,gBAAgByG,EAAYr9P,MAAO49P,GAC9CvxN,EAAMmrB,QAEF0iM,GACFA,EAASvD,gBAAgB0G,EAAYr9P,MAAO49P,GAC9CvxN,EAAMtlB,UAGNmzO,GACFA,EAASjD,WAAWoG,EAAYr9P,YAClCo9P,EAAQpgQ,KAAKqvC,SAGXsxN,GACEzD,GACFA,EAAShD,aAAamG,EAAYr9P,MAAOozB,GAC3CiZ,EAAM2rB,QAAQ5kC,KAEV8mO,GACFA,EAAS/C,aAAakG,EAAYr9P,MAAOozB,GAC3CiZ,EAAMrvC,KAAKo2B,IAGf,CA6BA,IAAI4qO,EAAIX,EAAYr9P,MAChBq/B,EAAIm+N,EAAax9P,MACjBk6P,GACFA,EAAS9C,aAAa4G,EAAG3+N,GAC3B,IAAI4+N,EAAWd,EAAOa,GAAGvhQ,OAAS0gQ,EAAO99N,GAAG5iC,OACxC4gQ,EAAYC,aACVE,EAAaF,aACXW,GACFC,EAAaF,GACbG,EAAYH,EAAG3+N,KAEf6+N,EAAa7+N,GACb8+N,EAAY9+N,EAAG2+N,IAGjBG,EAAY9+N,EAAG2+N,GAGbR,EAAaF,aACfa,EAAYH,EAAG3+N,GAEX4+N,GACFC,EAAaF,GACbG,EAAY9+N,EAAG2+N,KAEfE,EAAa7+N,GACb8+N,EAAYH,EAAG3+N,GA7JrB,CAcA,SAASq+N,EAAS9rH,EAAQ0rH,EAAcC,GAItC,OAHAE,EAAWz9P,MAAQ4xI,EACnB6rH,EAAWH,aAAeA,EAC1BG,EAAWF,YAAcA,EACrBE,IAAeJ,GACjBI,EAAaD,GACN,IAETC,EAAa,MACN,EACT,CA+EA,SAASS,EAAatsH,GAChBsoH,GACFA,EAAS5C,aAAa1lH,GACxBurH,EAAOvrH,GAAQnmE,SACjB,CACA,SAAS0yL,EAAY9G,EAAQzlH,GAC3B,IAAIwsH,EAASjB,EAAO9F,GAChBgH,EAASlB,EAAOvrH,GAChB0sH,EAAQF,EAAOA,EAAO3hQ,OAAS,GAC/B8hQ,EAASH,EAAOA,EAAO3hQ,OAAS,GAChC+hQ,EAAQH,EAAO,GACfI,EAASJ,EAAO,GAChB5G,EAAIa,gBAAgBiG,EAAQD,EAAOE,KACjCtE,GACFA,EAAStD,gBAAgBS,EAAQiH,GACnCF,EAAO5mM,MACP8mM,EAAQC,GAEN9G,EAAIa,gBAAgBgG,EAAOE,EAAOC,KAChCvE,GACFA,EAASvD,gBAAgB/kH,EAAQ4sH,GACnCH,EAAOt3O,SAELmzO,GACFA,EAAS3C,UAAUF,EAAQzlH,GAC7BurH,EAAO9F,GAAU+G,EAAOp3P,OAAOq3P,GAC/BlB,EAAOrhM,OAAO81E,EAAQ,EACxB,CA+BF,IACOwrH,CACT,CAEF,IAIEsB,GAA2Bp0N,EAAW,CACxC,kDAAkDt6B,EAASkuB,GACzD,SAASwY,EAAOiiC,EAAUliC,EAAWyjN,GACnC,IAAIzrP,EAAS,GAoBb,OAnBAkqE,EAASh7E,SAAQ,SAASq4P,GACxB,IAAIh2P,GAASg2P,EAAIoE,OAAO9D,MAAQ,EAAI,IAAMN,EAAIoE,OAAOp6L,MAAQ,EAAI,IAAMg2L,EAAIqE,WAAarE,EAAIqE,UAAU/D,MAAQ,EAAI,IAAMN,EAAIqE,WAAarE,EAAIqE,UAAUr6L,MAAQ,EAAI,GAC1I,IAArBvpB,EAAUz2C,IACZyO,EAAOzR,KAAK,CACVwgC,GAAI08N,EAAWA,EAASvE,aAAe,EACvCzyO,MAAO8yO,EAAI9yO,MACX9iB,IAAK41P,EAAI51P,IACTg6P,OAAQ,CACN9D,MAA4B,IAArB7/M,EAAUz2C,GAEjBggE,MAA4B,IAArBvpB,EAAUz2C,IAGnBq6P,UAAW,MAGjB,IACIH,GACFA,EAASpjP,SAASrI,GACbA,CACT,CACA,IAAIkwP,EAAkB,CACpBxmO,MAAO,SAASwgD,EAAUuhL,GACxB,OAAOxjN,EAAOiiC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCuhL,EACL,EACA0E,UAAW,SAASjmL,EAAUuhL,GAC5B,OAAOxjN,EAAOiiC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCuhL,EACL,EACA2E,WAAY,SAASlmL,EAAUuhL,GAC7B,OAAOxjN,EAAOiiC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCuhL,EACL,EACA4E,cAAe,SAASnmL,EAAUuhL,GAChC,OAAOxjN,EAAOiiC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCuhL,EACL,EACA6E,IAAK,SAASpmL,EAAUuhL,GACtB,OAAOxjN,EAAOiiC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCuhL,EACL,GAEFh8N,EAAOluB,QAAU2uP,CA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a,EAAGl1b,UAAU24b,QAAU,SAAiB9xb,GACtC,KAAOjI,KAAKK,OAAS4H,GACnBjI,KAAKu2b,MAAMv2b,KAAKK,UAAY,EAE9B,OAAOL,IACT,EACAs2b,EAAGl1b,UAAUq4b,MAAQ,WACnB,KAAOz5b,KAAKK,OAAS,GAAqC,IAAhCL,KAAKu2b,MAAMv2b,KAAKK,OAAS,IACjDL,KAAKK,SAEP,OAAOL,KAAKg6b,WACd,EACA1D,EAAGl1b,UAAU44b,UAAY,WAIvB,OAHoB,IAAhBh6b,KAAKK,QAAkC,IAAlBL,KAAKu2b,MAAM,KAClCv2b,KAAKm3b,SAAW,GAEXn3b,IACT,EACAs2b,EAAGl1b,UAAUo6X,QAAU,WACrB,OAAQx7X,KAAKqc,IAAM,UAAY,SAAWrc,KAAKuN,SAAS,IAAM,GAChE,EACA,IAAI0sb,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAEEC,EAAa,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,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,GAEEC,EAAa,CACf,EACA,EACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,IACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,KACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,MACA,SACA,SACA,SACA,SACA,SACA,UAwbF,SAASC,EAAW1qZ,EAAOmhK,EAAKhrI,GAC9BA,EAAIsxX,SAAWtmP,EAAIsmP,SAAWznZ,EAAMynZ,SACpC,IAAIpkb,EAAM28B,EAAMrvC,OAASwwM,EAAIxwM,OAAS,EACtCwlE,EAAIxlE,OAAS0S,EACbA,EAAMA,EAAM,EAAI,EAChB,IAAIsY,EAAqB,EAAjBqkB,EAAM6mZ,MAAM,GAChBtja,EAAmB,EAAf49K,EAAI0lP,MAAM,GACdloa,EAAIhD,EAAI4H,EACR0gB,EAAS,SAAJtlB,EACLgsa,EAAQhsa,EAAI,SAAW,EAC3Bw3C,EAAI0wX,MAAM,GAAK5iZ,EACf,IAAK,IAAIxrC,EAAI,EAAGA,EAAI4K,EAAK5K,IAAK,CAI5B,IAHA,IAAImyb,EAASD,IAAU,GACnBE,EAAgB,SAARF,EACRG,EAAO33b,KAAK8mB,IAAIxhB,EAAG0oM,EAAIxwM,OAAS,GAC3B6H,EAAIrF,KAAK6mB,IAAI,EAAGvhB,EAAIunC,EAAMrvC,OAAS,GAAI6H,GAAKsyb,EAAMtyb,IAAK,CAC9D,IAAIjG,EAAIkG,EAAID,EAAI,EAIhBoyb,IADAjsa,GAFAhD,EAAqB,EAAjBqkB,EAAM6mZ,MAAMt0b,KAChBgxB,EAAmB,EAAf49K,EAAI0lP,MAAMrub,IACFqyb,GACE,SAAW,EACzBA,EAAY,SAAJlsa,CACV,CACAw3C,EAAI0wX,MAAMpub,GAAa,EAARoyb,EACfF,EAAiB,EAATC,CACV,CAMA,OALc,IAAVD,EACFx0X,EAAI0wX,MAAMpub,GAAa,EAARkyb,EAEfx0X,EAAIxlE,SAECwlE,EAAI4zX,OACb,CAtdAnD,EAAGl1b,UAAUmM,SAAW,SAAkBujB,EAAM6D,GAG9C,IAAIkxC,EACJ,GAFAlxC,EAAoB,EAAVA,GAAe,EAEZ,MAHb7D,EAAOA,GAAQ,KAGa,QAATA,EAAgB,CACjC+0C,EAAM,GAGN,IAFA,IAAI5lB,EAAM,EACNo6Y,EAAQ,EACHp4b,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAAK,CACpC,IAAI2gC,EAAI5iC,KAAKu2b,MAAMt0b,GACf23b,GAA6B,UAApBh3Z,GAAKqd,EAAMo6Y,IAAmB9sb,SAAS,IAGlDs4D,EADY,KADdw0X,EAAQz3Z,IAAM,GAAKqd,EAAM,WACNh+C,IAAMjC,KAAKK,OAAS,EAC/B45b,EAAM,EAAIL,EAAKv5b,QAAUu5b,EAAO/zX,EAEhC+zX,EAAO/zX,GAEf5lB,GAAO,IACI,KACTA,GAAO,GACPh+C,IAEJ,CAIA,IAHc,IAAVo4b,IACFx0X,EAAMw0X,EAAM9sb,SAAS,IAAMs4D,GAEtBA,EAAIxlE,OAASs0B,IAAY,GAC9BkxC,EAAM,IAAMA,EAKd,OAHsB,IAAlB7lE,KAAKm3b,WACPtxX,EAAM,IAAMA,GAEPA,CACT,CACA,GAAI/0C,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAClD,IAAI2pa,EAAYP,EAAWppa,GACvB4pa,EAAYP,EAAWrpa,GAC3B+0C,EAAM,GACN,IAAI7jC,EAAIhiC,KAAK0f,QAEb,IADAsiB,EAAEm1Z,SAAW,GACLn1Z,EAAE24Z,UAAU,CAClB,IAAItsa,EAAI2T,EAAE44Z,KAAKF,GAAWntb,SAASujB,GAKjC+0C,GAJF7jC,EAAIA,EAAE64Z,MAAMH,IACLC,SAGCtsa,EAAIw3C,EAFJo0X,EAAMQ,EAAYpsa,EAAEhuB,QAAUguB,EAAIw3C,CAI5C,CAIA,IAHI7lE,KAAK26b,WACP90X,EAAM,IAAMA,GAEPA,EAAIxlE,OAASs0B,IAAY,GAC9BkxC,EAAM,IAAMA,EAKd,OAHsB,IAAlB7lE,KAAKm3b,WACPtxX,EAAM,IAAMA,GAEPA,CACT,CACAmhV,GAAO,EAAO,kCAChB,EACAsvC,EAAGl1b,UAAU05b,SAAW,WACtB,IAAI1qZ,EAAMpwC,KAAKu2b,MAAM,GAQrB,OAPoB,IAAhBv2b,KAAKK,OACP+vC,GAAuB,SAAhBpwC,KAAKu2b,MAAM,GACO,IAAhBv2b,KAAKK,QAAkC,IAAlBL,KAAKu2b,MAAM,GACzCnmZ,GAAO,iBAAmC,SAAhBpwC,KAAKu2b,MAAM,GAC5Bv2b,KAAKK,OAAS,GACvB2mZ,GAAO,EAAO,8CAES,IAAlBhnZ,KAAKm3b,UAAkB/mZ,EAAMA,CACtC,EACAkmZ,EAAGl1b,UAAUmlC,OAAS,WACpB,OAAOvmC,KAAKuN,SAAS,GACvB,EACA+ob,EAAGl1b,UAAU25b,SAAW,SAAkBlC,EAAQx4b,GAEhD,OADA2mZ,EAA0B,qBAAZlwB,GACP92X,KAAKg7b,YAAYlkE,EAAS+hE,EAAQx4b,EAC3C,EACAi2b,EAAGl1b,UAAUo4b,QAAU,SAAiBX,EAAQx4b,GAC9C,OAAOL,KAAKg7b,YAAYnxb,MAAOgvb,EAAQx4b,EACzC,EACAi2b,EAAGl1b,UAAU45b,YAAc,SAAqBC,EAAWpC,EAAQx4b,GACjE,IAAIs8F,EAAa38F,KAAK28F,aAClBu+V,EAAY76b,GAAUwC,KAAK6mB,IAAI,EAAGizE,GACtCqqT,EAAOrqT,GAAcu+V,EAAW,yCAChCl0C,EAAOk0C,EAAY,EAAG,+BACtBl7b,KAAKy5b,QACL,IAEIxma,EAAGhxB,EAFHw6X,EAA0B,OAAXo8D,EACf5qZ,EAAM,IAAIgtZ,EAAUC,GAEpB/vZ,EAAInrC,KAAK0f,QACb,GAAK+8W,EASE,CACL,IAAKx6X,EAAI,GAAIkpC,EAAEwvZ,SAAU14b,IACvBgxB,EAAIkY,EAAEgwZ,MAAM,KACZhwZ,EAAEiwZ,OAAO,GACTntZ,EAAIhsC,GAAKgxB,EAEX,KAAOhxB,EAAIi5b,EAAWj5b,IACpBgsC,EAAIhsC,GAAK,CAEb,KAlBmB,CACjB,IAAKA,EAAI,EAAGA,EAAIi5b,EAAYv+V,EAAY16F,IACtCgsC,EAAIhsC,GAAK,EAEX,IAAKA,EAAI,GAAIkpC,EAAEwvZ,SAAU14b,IACvBgxB,EAAIkY,EAAEgwZ,MAAM,KACZhwZ,EAAEiwZ,OAAO,GACTntZ,EAAIitZ,EAAYj5b,EAAI,GAAKgxB,CAE7B,CAUA,OAAOgb,CACT,EACIprC,KAAKw4b,MACP/E,EAAGl1b,UAAUk6b,WAAa,SAAoB14Z,GAC5C,OAAO,GAAK//B,KAAKw4b,MAAMz4Z,EACzB,EAEA0zZ,EAAGl1b,UAAUk6b,WAAa,SAAoB14Z,GAC5C,IAAIrU,EAAIqU,EACJvU,EAAI,EAiBR,OAhBIE,GAAK,OACPF,GAAK,GACLE,KAAO,IAELA,GAAK,KACPF,GAAK,EACLE,KAAO,GAELA,GAAK,IACPF,GAAK,EACLE,KAAO,GAELA,GAAK,IACPF,GAAK,EACLE,KAAO,GAEFF,EAAIE,CACb,EAEF+na,EAAGl1b,UAAUm6b,UAAY,SAAmB34Z,GAC1C,GAAU,IAANA,EAAS,OAAO,GACpB,IAAIrU,EAAIqU,EACJvU,EAAI,EAoBR,OAnBmB,KAAV,KAAJE,KACHF,GAAK,GACLE,KAAO,IAES,KAAT,IAAJA,KACHF,GAAK,EACLE,KAAO,GAEQ,KAAR,GAAJA,KACHF,GAAK,EACLE,KAAO,GAEO,KAAP,EAAJA,KACHF,GAAK,EACLE,KAAO,GAEO,KAAP,EAAJA,IACHF,IAEKA,CACT,EACAioa,EAAGl1b,UAAUk2b,UAAY,WACvB,IAAI10Z,EAAI5iC,KAAKu2b,MAAMv2b,KAAKK,OAAS,GAC7BuzC,EAAK5zC,KAAKs7b,WAAW14Z,GACzB,OAA2B,IAAnB5iC,KAAKK,OAAS,GAAUuzC,CAClC,EAUA0iZ,EAAGl1b,UAAUo6b,SAAW,WACtB,GAAIx7b,KAAK26b,SAAU,OAAO,EAE1B,IADA,IAAItsa,EAAI,EACCpsB,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAAK,CACpC,IAAIgxB,EAAIjzB,KAAKu7b,UAAUv7b,KAAKu2b,MAAMt0b,IAElC,GADAosB,GAAK4E,EACK,KAANA,EAAU,KAChB,CACA,OAAO5E,CACT,EACAioa,EAAGl1b,UAAUu7F,WAAa,WACxB,OAAO95F,KAAK8/B,KAAK3iC,KAAKs3b,YAAc,EACtC,EACAhB,EAAGl1b,UAAUq6b,OAAS,SAAgB3kb,GACpC,OAAsB,IAAlB9W,KAAKm3b,SACAn3b,KAAK4C,MAAM84b,MAAM5kb,GAAO6kb,MAAM,GAEhC37b,KAAK0f,OACd,EACA42a,EAAGl1b,UAAUw6b,SAAW,SAAkB9kb,GACxC,OAAI9W,KAAK67b,MAAM/kb,EAAQ,GACd9W,KAAK87b,KAAKhlb,GAAO6kb,MAAM,GAAGI,OAE5B/7b,KAAK0f,OACd,EACA42a,EAAGl1b,UAAU+vM,MAAQ,WACnB,OAAyB,IAAlBnxM,KAAKm3b,QACd,EACAb,EAAGl1b,UAAUw1b,IAAM,WACjB,OAAO52b,KAAK0f,QAAQq8a,MACtB,EACAzF,EAAGl1b,UAAU26b,KAAO,WAIlB,OAHK/7b,KAAK26b,WACR36b,KAAKm3b,UAAY,GAEZn3b,IACT,EACAs2b,EAAGl1b,UAAU46b,KAAO,SAAcnrP,GAChC,KAAO7wM,KAAKK,OAASwwM,EAAIxwM,QACvBL,KAAKu2b,MAAMv2b,KAAKK,UAAY,EAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAI4uM,EAAIxwM,OAAQ4B,IAC9BjC,KAAKu2b,MAAMt0b,GAAKjC,KAAKu2b,MAAMt0b,GAAK4uM,EAAI0lP,MAAMt0b,GAE5C,OAAOjC,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAU66b,IAAM,SAAaprP,GAE9B,OADAm2M,EAA0C,KAAlChnZ,KAAKm3b,SAAWtmP,EAAIsmP,WACrBn3b,KAAKg8b,KAAKnrP,EACnB,EACAylP,EAAGl1b,UAAU86b,GAAK,SAAYrrP,GAC5B,OAAI7wM,KAAKK,OAASwwM,EAAIxwM,OAAeL,KAAK0f,QAAQu8a,IAAIprP,GAC/CA,EAAInxL,QAAQu8a,IAAIj8b,KACzB,EACAs2b,EAAGl1b,UAAU+6b,IAAM,SAAatrP,GAC9B,OAAI7wM,KAAKK,OAASwwM,EAAIxwM,OAAeL,KAAK0f,QAAQs8a,KAAKnrP,GAChDA,EAAInxL,QAAQs8a,KAAKh8b,KAC1B,EACAs2b,EAAGl1b,UAAUg7b,MAAQ,SAAevrP,GAClC,IAAI59K,EAEFA,EADEjzB,KAAKK,OAASwwM,EAAIxwM,OAChBwwM,EAEA7wM,KAEN,IAAK,IAAIiC,EAAI,EAAGA,EAAIgxB,EAAE5yB,OAAQ4B,IAC5BjC,KAAKu2b,MAAMt0b,GAAKjC,KAAKu2b,MAAMt0b,GAAK4uM,EAAI0lP,MAAMt0b,GAG5C,OADAjC,KAAKK,OAAS4yB,EAAE5yB,OACTL,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAUi7b,KAAO,SAAcxrP,GAEhC,OADAm2M,EAA0C,KAAlChnZ,KAAKm3b,SAAWtmP,EAAIsmP,WACrBn3b,KAAKo8b,MAAMvrP,EACpB,EACAylP,EAAGl1b,UAAUk7b,IAAM,SAAazrP,GAC9B,OAAI7wM,KAAKK,OAASwwM,EAAIxwM,OAAeL,KAAK0f,QAAQ28a,KAAKxrP,GAChDA,EAAInxL,QAAQ28a,KAAKr8b,KAC1B,EACAs2b,EAAGl1b,UAAUm7b,KAAO,SAAc1rP,GAChC,OAAI7wM,KAAKK,OAASwwM,EAAIxwM,OAAeL,KAAK0f,QAAQ08a,MAAMvrP,GACjDA,EAAInxL,QAAQ08a,MAAMp8b,KAC3B,EACAs2b,EAAGl1b,UAAUo7b,MAAQ,SAAe3rP,GAClC,IAAIxlL,EACA4H,EACAjzB,KAAKK,OAASwwM,EAAIxwM,QACpBgrB,EAAIrrB,KACJizB,EAAI49K,IAEJxlL,EAAIwlL,EACJ59K,EAAIjzB,MAEN,IAAK,IAAIiC,EAAI,EAAGA,EAAIgxB,EAAE5yB,OAAQ4B,IAC5BjC,KAAKu2b,MAAMt0b,GAAKopB,EAAEkra,MAAMt0b,GAAKgxB,EAAEsja,MAAMt0b,GAEvC,GAAIjC,OAASqrB,EACX,KAAOppB,EAAIopB,EAAEhrB,OAAQ4B,IACnBjC,KAAKu2b,MAAMt0b,GAAKopB,EAAEkra,MAAMt0b,GAI5B,OADAjC,KAAKK,OAASgrB,EAAEhrB,OACTL,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAUq7b,KAAO,SAAc5rP,GAEhC,OADAm2M,EAA0C,KAAlChnZ,KAAKm3b,SAAWtmP,EAAIsmP,WACrBn3b,KAAKw8b,MAAM3rP,EACpB,EACAylP,EAAGl1b,UAAUuhQ,IAAM,SAAa9xD,GAC9B,OAAI7wM,KAAKK,OAASwwM,EAAIxwM,OAAeL,KAAK0f,QAAQ+8a,KAAK5rP,GAChDA,EAAInxL,QAAQ+8a,KAAKz8b,KAC1B,EACAs2b,EAAGl1b,UAAUs7b,KAAO,SAAc7rP,GAChC,OAAI7wM,KAAKK,OAASwwM,EAAIxwM,OAAeL,KAAK0f,QAAQ88a,MAAM3rP,GACjDA,EAAInxL,QAAQ88a,MAAMx8b,KAC3B,EACAs2b,EAAGl1b,UAAUs6b,MAAQ,SAAe5kb,GAClCkwY,EAAwB,kBAAVlwY,GAAsBA,GAAS,GAC7C,IAAI6lb,EAAsC,EAAxB95b,KAAK8/B,KAAK7rB,EAAQ,IAChC8lb,EAAW9lb,EAAQ,GACvB9W,KAAK+5b,QAAQ4C,GACTC,EAAW,GACbD,IAEF,IAAK,IAAI16b,EAAI,EAAGA,EAAI06b,EAAa16b,IAC/BjC,KAAKu2b,MAAMt0b,GAAsB,UAAhBjC,KAAKu2b,MAAMt0b,GAK9B,OAHI26b,EAAW,IACb58b,KAAKu2b,MAAMt0b,IAAMjC,KAAKu2b,MAAMt0b,GAAK,UAAY,GAAK26b,GAE7C58b,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAU06b,KAAO,SAAchlb,GAChC,OAAO9W,KAAK0f,QAAQg8a,MAAM5kb,EAC5B,EACAw/a,EAAGl1b,UAAUy7b,KAAO,SAAcC,EAAK/xa,GACrCi8X,EAAsB,kBAAR81C,GAAoBA,GAAO,GACzC,IAAI78Y,EAAM68Y,EAAM,GAAK,EACjBC,EAAOD,EAAM,GAOjB,OANA98b,KAAK+5b,QAAQ95Y,EAAM,GAEjBjgD,KAAKu2b,MAAMt2Y,GADTl1B,EACgB/qB,KAAKu2b,MAAMt2Y,GAAO,GAAK88Y,EAEvB/8b,KAAKu2b,MAAMt2Y,KAAS,GAAK88Y,GAEtC/8b,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAU47b,KAAO,SAAcnsP,GAChC,IAAIxiL,EAYAhD,EAAG4H,EAXP,GAAsB,IAAlBjzB,KAAKm3b,UAAmC,IAAjBtmP,EAAIsmP,SAI7B,OAHAn3b,KAAKm3b,SAAW,EAChB9oa,EAAIruB,KAAKi9b,KAAKpsP,GACd7wM,KAAKm3b,UAAY,EACVn3b,KAAKg6b,YACP,GAAsB,IAAlBh6b,KAAKm3b,UAAmC,IAAjBtmP,EAAIsmP,SAIpC,OAHAtmP,EAAIsmP,SAAW,EACf9oa,EAAIruB,KAAKi9b,KAAKpsP,GACdA,EAAIsmP,SAAW,EACR9oa,EAAE2ra,YAGPh6b,KAAKK,OAASwwM,EAAIxwM,QACpBgrB,EAAIrrB,KACJizB,EAAI49K,IAEJxlL,EAAIwlL,EACJ59K,EAAIjzB,MAGN,IADA,IAAIq6b,EAAQ,EACHp4b,EAAI,EAAGA,EAAIgxB,EAAE5yB,OAAQ4B,IAC5BosB,GAAkB,EAAbhD,EAAEkra,MAAMt0b,KAAwB,EAAbgxB,EAAEsja,MAAMt0b,IAAUo4b,EAC1Cr6b,KAAKu2b,MAAMt0b,GAAS,SAAJosB,EAChBgsa,EAAQhsa,IAAM,GAEhB,KAAiB,IAAVgsa,GAAep4b,EAAIopB,EAAEhrB,OAAQ4B,IAClCosB,GAAkB,EAAbhD,EAAEkra,MAAMt0b,IAAUo4b,EACvBr6b,KAAKu2b,MAAMt0b,GAAS,SAAJosB,EAChBgsa,EAAQhsa,IAAM,GAGhB,GADAruB,KAAKK,OAASgrB,EAAEhrB,OACF,IAAVg6b,EACFr6b,KAAKu2b,MAAMv2b,KAAKK,QAAUg6b,EAC1Br6b,KAAKK,cACA,GAAIgrB,IAAMrrB,KACf,KAAOiC,EAAIopB,EAAEhrB,OAAQ4B,IACnBjC,KAAKu2b,MAAMt0b,GAAKopB,EAAEkra,MAAMt0b,GAG5B,OAAOjC,IACT,EACAs2b,EAAGl1b,UAAUshC,IAAM,SAAamuK,GAC9B,IAAI5iK,EACJ,OAAqB,IAAjB4iK,EAAIsmP,UAAoC,IAAlBn3b,KAAKm3b,UAC7BtmP,EAAIsmP,SAAW,EACflpZ,EAAMjuC,KAAKumK,IAAIsqC,GACfA,EAAIsmP,UAAY,EACTlpZ,GACmB,IAAjB4iK,EAAIsmP,UAAoC,IAAlBn3b,KAAKm3b,UACpCn3b,KAAKm3b,SAAW,EAChBlpZ,EAAM4iK,EAAItqC,IAAIvmK,MACdA,KAAKm3b,SAAW,EACTlpZ,GAELjuC,KAAKK,OAASwwM,EAAIxwM,OAAeL,KAAK0f,QAAQs9a,KAAKnsP,GAChDA,EAAInxL,QAAQs9a,KAAKh9b,KAC1B,EACAs2b,EAAGl1b,UAAU67b,KAAO,SAAcpsP,GAChC,GAAqB,IAAjBA,EAAIsmP,SAAgB,CACtBtmP,EAAIsmP,SAAW,EACf,IAAI9oa,EAAIruB,KAAKg9b,KAAKnsP,GAElB,OADAA,EAAIsmP,SAAW,EACR9oa,EAAE2ra,WACX,CAAO,GAAsB,IAAlBh6b,KAAKm3b,SAId,OAHAn3b,KAAKm3b,SAAW,EAChBn3b,KAAKg9b,KAAKnsP,GACV7wM,KAAKm3b,SAAW,EACTn3b,KAAKg6b,YAEd,IAOI3ua,EAAG4H,EAPH4ia,EAAM71b,KAAK61b,IAAIhlP,GACnB,GAAY,IAARglP,EAIF,OAHA71b,KAAKm3b,SAAW,EAChBn3b,KAAKK,OAAS,EACdL,KAAKu2b,MAAM,GAAK,EACTv2b,KAGL61b,EAAM,GACRxqa,EAAIrrB,KACJizB,EAAI49K,IAEJxlL,EAAIwlL,EACJ59K,EAAIjzB,MAGN,IADA,IAAIq6b,EAAQ,EACHp4b,EAAI,EAAGA,EAAIgxB,EAAE5yB,OAAQ4B,IAE5Bo4b,GADAhsa,GAAkB,EAAbhD,EAAEkra,MAAMt0b,KAAwB,EAAbgxB,EAAEsja,MAAMt0b,IAAUo4b,IAC7B,GACbr6b,KAAKu2b,MAAMt0b,GAAS,SAAJosB,EAElB,KAAiB,IAAVgsa,GAAep4b,EAAIopB,EAAEhrB,OAAQ4B,IAElCo4b,GADAhsa,GAAkB,EAAbhD,EAAEkra,MAAMt0b,IAAUo4b,IACV,GACbr6b,KAAKu2b,MAAMt0b,GAAS,SAAJosB,EAElB,GAAc,IAAVgsa,GAAep4b,EAAIopB,EAAEhrB,QAAUgrB,IAAMrrB,KACvC,KAAOiC,EAAIopB,EAAEhrB,OAAQ4B,IACnBjC,KAAKu2b,MAAMt0b,GAAKopB,EAAEkra,MAAMt0b,GAO5B,OAJAjC,KAAKK,OAASwC,KAAK6mB,IAAI1pB,KAAKK,OAAQ4B,GAChCopB,IAAMrrB,OACRA,KAAKm3b,SAAW,GAEXn3b,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAUmlK,IAAM,SAAasqC,GAC9B,OAAO7wM,KAAK0f,QAAQu9a,KAAKpsP,EAC3B,EAkCA,IAAIqsP,EAAc,SAAsBxtZ,EAAOmhK,EAAKhrI,GAClD,IAIIlyB,EACAE,EACAD,EANAvoB,EAAIqkB,EAAM6mZ,MACVtja,EAAI49K,EAAI0lP,MACRx0Z,EAAI8jC,EAAI0wX,MACRv0Z,EAAI,EAIJgpC,EAAY,EAAP3/C,EAAE,GACP8xa,EAAW,KAALnyX,EACNoyX,EAAMpyX,IAAO,GACbC,EAAY,EAAP5/C,EAAE,GACPgya,EAAW,KAALpyX,EACNqyX,EAAMryX,IAAO,GACb20L,EAAY,EAAPv0O,EAAE,GACPkya,EAAW,KAAL39L,EACN49L,EAAM59L,IAAO,GACbqyK,EAAY,EAAP5mZ,EAAE,GACPoya,EAAW,KAALxrB,EACNyrB,EAAMzrB,IAAO,GACb0rB,EAAY,EAAPtya,EAAE,GACPuya,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPzya,EAAE,GACP0ya,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5ya,EAAE,GACP6ya,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP/ya,EAAE,GACPgza,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPlza,EAAE,GACPmza,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPrza,EAAE,GACPsza,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbh6Y,EAAY,EAAPzxB,EAAE,GACP4ra,EAAW,KAALn6Y,EACNo6Y,EAAMp6Y,IAAO,GACbC,EAAY,EAAP1xB,EAAE,GACP8ra,EAAW,KAALp6Y,EACNq6Y,EAAMr6Y,IAAO,GACbq6D,EAAY,EAAP/rF,EAAE,GACPgsa,EAAW,KAALjgV,EACNkgV,EAAMlgV,IAAO,GACbC,EAAY,EAAPhsF,EAAE,GACPksa,EAAW,KAALlgV,EACNmgV,EAAMngV,IAAO,GACbogV,EAAY,EAAPpsa,EAAE,GACPqsa,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPvsa,EAAE,GACPwsa,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP1sa,EAAE,GACP2sa,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP7sa,EAAE,GACP8sa,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPhta,EAAE,GACPita,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPnta,EAAE,GACPota,GAAW,KAALD,GACNE,GAAMF,KAAO,GACjBv6X,EAAIsxX,SAAWznZ,EAAMynZ,SAAWtmP,EAAIsmP,SACpCtxX,EAAIxlE,OAAS,GAKb,IAAI8jD,IAAMniB,GAJV2R,EAAK9wC,KAAK09b,KAAKpD,EAAK0B,IAID,KAAa,MAFhChrZ,GADAA,EAAMhxC,KAAK09b,KAAKpD,EAAK2B,IACTj8b,KAAK09b,KAAKnD,EAAKyB,GAAO,KAEO,IAAM,EAC/C78Z,IAFA4R,EAAK/wC,KAAK09b,KAAKnD,EAAK0B,KAETjrZ,IAAQ,IAAM,IAAMsQ,KAAO,IAAM,EAC5CA,IAAM,SACNxQ,EAAK9wC,KAAK09b,KAAKlD,EAAKwB,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAKlD,EAAKyB,IACTj8b,KAAK09b,KAAKjD,EAAKuB,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAKjD,EAAKwB,GAKpB,IAAIx6Y,IAAMtiB,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAK4B,GAAO,GAIb,KAAa,MAFhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAK6B,GAAO,GACtBn8b,KAAK09b,KAAKnD,EAAK2B,GAAO,KAEO,IAAM,EAC/C/8Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAK4B,GAAO,IAErBnrZ,IAAQ,IAAM,IAAMyQ,KAAO,IAAM,EAC5CA,IAAM,SACN3Q,EAAK9wC,KAAK09b,KAAKhD,EAAKsB,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAKhD,EAAKuB,IACTj8b,KAAK09b,KAAK/C,EAAKqB,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAK/C,EAAKsB,GACpBnrZ,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAK0B,GAAO,EAEhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAK2B,GAAO,GACtBn8b,KAAK09b,KAAKjD,EAAKyB,GAAO,EAClCnrZ,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAK0B,GAAO,EAKhC,IAAIwB,IAAMx+Z,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAK8B,GAAO,GAIb,KAAa,MAFhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAK+B,GAAO,GACtBr8b,KAAK09b,KAAKnD,EAAK6B,GAAO,KAEO,IAAM,EAC/Cj9Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAK8B,GAAO,IAErBrrZ,IAAQ,IAAM,IAAM2sZ,KAAO,IAAM,EAC5CA,IAAM,SACN7sZ,EAAK9wC,KAAK09b,KAAK9C,EAAKoB,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAK9C,EAAKqB,IACTj8b,KAAK09b,KAAK7C,EAAKmB,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAK7C,EAAKoB,GACpBnrZ,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAKwB,GAAO,EAEhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAKyB,GAAO,GACtBn8b,KAAK09b,KAAK/C,EAAKuB,GAAO,EAClCnrZ,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAKwB,GAAO,EAChCrrZ,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAK4B,GAAO,EAEhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAK6B,GAAO,GACtBr8b,KAAK09b,KAAKjD,EAAK2B,GAAO,EAClCrrZ,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAK4B,GAAO,EAKhC,IAAIuB,IAAMz+Z,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAKgC,GAAO,GAIb,KAAa,MAFhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAKiC,GAAO,GACtBv8b,KAAK09b,KAAKnD,EAAK+B,GAAO,KAEO,IAAM,EAC/Cn9Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAKgC,GAAO,IAErBvrZ,IAAQ,IAAM,IAAM4sZ,KAAO,IAAM,EAC5CA,IAAM,SACN9sZ,EAAK9wC,KAAK09b,KAAK3C,EAAKiB,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAK3C,EAAKkB,IACTj8b,KAAK09b,KAAK1C,EAAKgB,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAK1C,EAAKiB,GACpBnrZ,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAKsB,GAAO,EAEhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAKuB,GAAO,GACtBn8b,KAAK09b,KAAK7C,EAAKqB,GAAO,EAClCnrZ,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAKsB,GAAO,EAChCrrZ,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAK0B,GAAO,EAEhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAK2B,GAAO,GACtBr8b,KAAK09b,KAAK/C,EAAKyB,GAAO,EAClCrrZ,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAK0B,GAAO,EAChCvrZ,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAK8B,GAAO,EAEhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAK+B,GAAO,GACtBv8b,KAAK09b,KAAKjD,EAAK6B,GAAO,EAClCvrZ,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAK8B,GAAO,EAKhC,IAAIsB,IAAM1+Z,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAKmC,GAAO,GAIb,KAAa,MAFhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAKoC,IAAO,GACtB18b,KAAK09b,KAAKnD,EAAKkC,GAAO,KAEO,IAAM,EAC/Ct9Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAKmC,IAAO,IAErB1rZ,IAAQ,IAAM,IAAM6sZ,KAAO,IAAM,EAC5CA,IAAM,SACN/sZ,EAAK9wC,KAAK09b,KAAKxC,EAAKc,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAKxC,EAAKe,IACTj8b,KAAK09b,KAAKvC,EAAKa,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAKvC,EAAKc,GACpBnrZ,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAKmB,GAAO,EAEhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAKoB,GAAO,GACtBn8b,KAAK09b,KAAK1C,EAAKkB,GAAO,EAClCnrZ,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAKmB,GAAO,EAChCrrZ,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAKwB,GAAO,EAEhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAKyB,GAAO,GACtBr8b,KAAK09b,KAAK7C,EAAKuB,GAAO,EAClCrrZ,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAKwB,GAAO,EAChCvrZ,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAK4B,GAAO,EAEhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAK6B,GAAO,GACtBv8b,KAAK09b,KAAK/C,EAAK2B,GAAO,EAClCvrZ,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAK4B,GAAO,EAChCzrZ,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAKiC,GAAO,EAEhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAKkC,IAAO,GACtB18b,KAAK09b,KAAKjD,EAAKgC,GAAO,EAClC1rZ,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAKiC,IAAO,EAKhC,IAAIoB,IAAM3+Z,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAKsC,IAAO,GAIb,KAAa,MAFhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAKuC,IAAO,GACtB78b,KAAK09b,KAAKnD,EAAKqC,IAAO,KAEO,IAAM,EAC/Cz9Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAKsC,IAAO,IAErB7rZ,IAAQ,IAAM,IAAM8sZ,KAAO,IAAM,EAC5CA,IAAM,SACNhtZ,EAAK9wC,KAAK09b,KAAKrC,EAAKW,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAKrC,EAAKY,IACTj8b,KAAK09b,KAAKpC,EAAKU,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAKpC,EAAKW,GACpBnrZ,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAKgB,GAAO,EAEhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAKiB,GAAO,GACtBn8b,KAAK09b,KAAKvC,EAAKe,GAAO,EAClCnrZ,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAKgB,GAAO,EAChCrrZ,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAKqB,GAAO,EAEhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAKsB,GAAO,GACtBr8b,KAAK09b,KAAK1C,EAAKoB,GAAO,EAClCrrZ,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAKqB,GAAO,EAChCvrZ,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAK0B,GAAO,EAEhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAK2B,GAAO,GACtBv8b,KAAK09b,KAAK7C,EAAKyB,GAAO,EAClCvrZ,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAK0B,GAAO,EAChCzrZ,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAK+B,GAAO,EAEhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAKgC,IAAO,GACtB18b,KAAK09b,KAAK/C,EAAK8B,GAAO,EAClC1rZ,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAK+B,IAAO,EAChC5rZ,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAKoC,IAAO,EAEhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAKqC,IAAO,GACtB78b,KAAK09b,KAAKjD,EAAKmC,IAAO,EAClC7rZ,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAKoC,IAAO,EAKhC,IAAIkB,IAAM5+Z,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAKyC,IAAO,GAIb,KAAa,MAFhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAK0C,IAAO,GACtBh9b,KAAK09b,KAAKnD,EAAKwC,IAAO,KAEO,IAAM,EAC/C59Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAKyC,IAAO,IAErBhsZ,IAAQ,IAAM,IAAM+sZ,KAAO,IAAM,EAC5CA,IAAM,SACNjtZ,EAAK9wC,KAAK09b,KAAKlC,EAAKQ,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAKlC,EAAKS,IACTj8b,KAAK09b,KAAKjC,EAAKO,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAKjC,EAAKQ,GACpBnrZ,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAKa,GAAO,EAEhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAKc,GAAO,GACtBn8b,KAAK09b,KAAKpC,EAAKY,GAAO,EAClCnrZ,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAKa,GAAO,EAChCrrZ,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAKkB,GAAO,EAEhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAKmB,GAAO,GACtBr8b,KAAK09b,KAAKvC,EAAKiB,GAAO,EAClCrrZ,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAKkB,GAAO,EAChCvrZ,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAKuB,GAAO,EAEhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAKwB,GAAO,GACtBv8b,KAAK09b,KAAK1C,EAAKsB,GAAO,EAClCvrZ,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAKuB,GAAO,EAChCzrZ,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAK6B,GAAO,EAEhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAK8B,IAAO,GACtB18b,KAAK09b,KAAK7C,EAAK4B,GAAO,EAClC1rZ,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAK6B,IAAO,EAChC5rZ,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAKkC,IAAO,EAEhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAKmC,IAAO,GACtB78b,KAAK09b,KAAK/C,EAAKiC,IAAO,EAClC7rZ,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAKkC,IAAO,EAChC/rZ,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAKuC,IAAO,EAEhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAKwC,IAAO,GACtBh9b,KAAK09b,KAAKjD,EAAKsC,IAAO,EAClChsZ,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAKuC,IAAO,EAKhC,IAAIgB,IAAM7+Z,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAK4C,IAAO,GAIb,KAAa,MAFhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAK6C,IAAO,GACtBn9b,KAAK09b,KAAKnD,EAAK2C,IAAO,KAEO,IAAM,EAC/C/9Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAK4C,IAAO,IAErBnsZ,IAAQ,IAAM,IAAMgtZ,KAAO,IAAM,EAC5CA,IAAM,SACNltZ,EAAK9wC,KAAK09b,KAAK/B,EAAKK,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAK/B,EAAKM,IACTj8b,KAAK09b,KAAK9B,EAAKI,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAK9B,EAAKK,GACpBnrZ,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAKU,GAAO,EAEhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAKW,GAAO,GACtBn8b,KAAK09b,KAAKjC,EAAKS,GAAO,EAClCnrZ,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAKU,GAAO,EAChCrrZ,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAKe,GAAO,EAEhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAKgB,GAAO,GACtBr8b,KAAK09b,KAAKpC,EAAKc,GAAO,EAClCrrZ,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAKe,GAAO,EAChCvrZ,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAKoB,GAAO,EAEhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAKqB,GAAO,GACtBv8b,KAAK09b,KAAKvC,EAAKmB,GAAO,EAClCvrZ,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAKoB,GAAO,EAChCzrZ,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAK0B,GAAO,EAEhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAK2B,IAAO,GACtB18b,KAAK09b,KAAK1C,EAAKyB,GAAO,EAClC1rZ,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAK0B,IAAO,EAChC5rZ,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAKgC,IAAO,EAEhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAKiC,IAAO,GACtB78b,KAAK09b,KAAK7C,EAAK+B,IAAO,EAClC7rZ,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAKgC,IAAO,EAChC/rZ,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAKqC,IAAO,EAEhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAKsC,IAAO,GACtBh9b,KAAK09b,KAAK/C,EAAKoC,IAAO,EAClChsZ,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAKqC,IAAO,EAChClsZ,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAK0C,IAAO,EAEhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAK2C,IAAO,GACtBn9b,KAAK09b,KAAKjD,EAAKyC,IAAO,EAClCnsZ,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAK0C,IAAO,EAKhC,IAAIc,IAAM9+Z,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAK+C,IAAO,GAIb,KAAa,MAFhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAKgD,IAAO,GACtBt9b,KAAK09b,KAAKnD,EAAK8C,IAAO,KAEO,IAAM,EAC/Cl+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAK+C,IAAO,IAErBtsZ,IAAQ,IAAM,IAAMitZ,KAAO,IAAM,EAC5CA,IAAM,SACNntZ,EAAK9wC,KAAK09b,KAAK5B,EAAKE,GAEpBhrZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKG,IACTj8b,KAAK09b,KAAK3B,EAAKC,GAAO,EAClCjrZ,EAAK/wC,KAAK09b,KAAK3B,EAAKE,GACpBnrZ,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAKO,GAAO,EAEhClrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAKQ,GAAO,GACtBn8b,KAAK09b,KAAK9B,EAAKM,GAAO,EAClCnrZ,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAKO,GAAO,EAChCrrZ,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAKY,GAAO,EAEhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAKa,GAAO,GACtBr8b,KAAK09b,KAAKjC,EAAKW,GAAO,EAClCrrZ,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAKY,GAAO,EAChCvrZ,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAKiB,GAAO,EAEhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAKkB,GAAO,GACtBv8b,KAAK09b,KAAKpC,EAAKgB,GAAO,EAClCvrZ,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAKiB,GAAO,EAChCzrZ,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAKuB,GAAO,EAEhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAKwB,IAAO,GACtB18b,KAAK09b,KAAKvC,EAAKsB,GAAO,EAClC1rZ,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAKuB,IAAO,EAChC5rZ,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAK6B,IAAO,EAEhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAK8B,IAAO,GACtB78b,KAAK09b,KAAK1C,EAAK4B,IAAO,EAClC7rZ,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAK6B,IAAO,EAChC/rZ,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAKmC,IAAO,EAEhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAKoC,IAAO,GACtBh9b,KAAK09b,KAAK7C,EAAKkC,IAAO,EAClChsZ,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAKmC,IAAO,EAChClsZ,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAKwC,IAAO,EAEhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAKyC,IAAO,GACtBn9b,KAAK09b,KAAK/C,EAAKuC,IAAO,EAClCnsZ,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAKwC,IAAO,EAChCrsZ,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAK6C,IAAO,EAEhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAK8C,IAAO,GACtBt9b,KAAK09b,KAAKjD,EAAK4C,IAAO,EAClCtsZ,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAK6C,IAAO,EAKhC,IAAIY,IAAM/+Z,GAJV2R,EAAKA,EAAK9wC,KAAK09b,KAAKpD,EAAKkD,IAAO,GAIb,KAAa,MAFhCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKpD,EAAKmD,IAAO,GACtBz9b,KAAK09b,KAAKnD,EAAKiD,IAAO,KAEO,IAAM,EAC/Cr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKnD,EAAKkD,IAAO,IAErBzsZ,IAAQ,IAAM,IAAMktZ,KAAO,IAAM,EAC5CA,IAAM,SACNptZ,EAAK9wC,KAAK09b,KAAK5B,EAAKI,GAEpBlrZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKK,IACTn8b,KAAK09b,KAAK3B,EAAKG,GAAO,EAClCnrZ,EAAK/wC,KAAK09b,KAAK3B,EAAKI,GACpBrrZ,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAKS,GAAO,EAEhCprZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAKU,GAAO,GACtBr8b,KAAK09b,KAAK9B,EAAKQ,GAAO,EAClCrrZ,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAKS,GAAO,EAChCvrZ,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAKc,GAAO,EAEhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAKe,GAAO,GACtBv8b,KAAK09b,KAAKjC,EAAKa,GAAO,EAClCvrZ,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAKc,GAAO,EAChCzrZ,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAKoB,GAAO,EAEhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAKqB,IAAO,GACtB18b,KAAK09b,KAAKpC,EAAKmB,GAAO,EAClC1rZ,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAKoB,IAAO,EAChC5rZ,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAK0B,IAAO,EAEhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAK2B,IAAO,GACtB78b,KAAK09b,KAAKvC,EAAKyB,IAAO,EAClC7rZ,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAK0B,IAAO,EAChC/rZ,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAKgC,IAAO,EAEhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAKiC,IAAO,GACtBh9b,KAAK09b,KAAK1C,EAAK+B,IAAO,EAClChsZ,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAKgC,IAAO,EAChClsZ,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAKsC,IAAO,EAEhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAKuC,IAAO,GACtBn9b,KAAK09b,KAAK7C,EAAKqC,IAAO,EAClCnsZ,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAKsC,IAAO,EAChCrsZ,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAK2C,IAAO,EAEhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAK4C,IAAO,GACtBt9b,KAAK09b,KAAK/C,EAAK0C,IAAO,EAClCtsZ,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAK2C,IAAO,EAKhC,IAAIa,IAAOh/Z,GAJX2R,EAAKA,EAAK9wC,KAAK09b,KAAKlD,EAAKgD,IAAO,GAIZ,KAAa,MAFjCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlD,EAAKiD,IAAO,GACtBz9b,KAAK09b,KAAKjD,EAAK+C,IAAO,KAEQ,IAAM,EAChDr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKjD,EAAKgD,IAAO,IAErBzsZ,IAAQ,IAAM,IAAMmtZ,KAAQ,IAAM,EAC7CA,IAAO,SACPrtZ,EAAK9wC,KAAK09b,KAAK5B,EAAKM,GAEpBprZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKO,IACTr8b,KAAK09b,KAAK3B,EAAKK,GAAO,EAClCrrZ,EAAK/wC,KAAK09b,KAAK3B,EAAKM,GACpBvrZ,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAKW,GAAO,EAEhCtrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAKY,GAAO,GACtBv8b,KAAK09b,KAAK9B,EAAKU,GAAO,EAClCvrZ,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAKW,GAAO,EAChCzrZ,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAKiB,GAAO,EAEhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAKkB,IAAO,GACtB18b,KAAK09b,KAAKjC,EAAKgB,GAAO,EAClC1rZ,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAKiB,IAAO,EAChC5rZ,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAKuB,IAAO,EAEhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAKwB,IAAO,GACtB78b,KAAK09b,KAAKpC,EAAKsB,IAAO,EAClC7rZ,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAKuB,IAAO,EAChC/rZ,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAK6B,IAAO,EAEhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAK8B,IAAO,GACtBh9b,KAAK09b,KAAKvC,EAAK4B,IAAO,EAClChsZ,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAK6B,IAAO,EAChClsZ,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAKmC,IAAO,EAEhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAKoC,IAAO,GACtBn9b,KAAK09b,KAAK1C,EAAKkC,IAAO,EAClCnsZ,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAKmC,IAAO,EAChCrsZ,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAKyC,IAAO,EAEhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAK0C,IAAO,GACtBt9b,KAAK09b,KAAK7C,EAAKwC,IAAO,EAClCtsZ,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAKyC,IAAO,EAKhC,IAAIc,IAAOj/Z,GAJX2R,EAAKA,EAAK9wC,KAAK09b,KAAKhD,EAAK8C,IAAO,GAIZ,KAAa,MAFjCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKhD,EAAK+C,IAAO,GACtBz9b,KAAK09b,KAAK/C,EAAK6C,IAAO,KAEQ,IAAM,EAChDr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAK/C,EAAK8C,IAAO,IAErBzsZ,IAAQ,IAAM,IAAMotZ,KAAQ,IAAM,EAC7CA,IAAO,SACPttZ,EAAK9wC,KAAK09b,KAAK5B,EAAKQ,GAEpBtrZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKS,IACTv8b,KAAK09b,KAAK3B,EAAKO,GAAO,EAClCvrZ,EAAK/wC,KAAK09b,KAAK3B,EAAKQ,GACpBzrZ,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAKc,GAAO,EAEhCzrZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAKe,IAAO,GACtB18b,KAAK09b,KAAK9B,EAAKa,GAAO,EAClC1rZ,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAKc,IAAO,EAChC5rZ,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAKoB,IAAO,EAEhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAKqB,IAAO,GACtB78b,KAAK09b,KAAKjC,EAAKmB,IAAO,EAClC7rZ,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAKoB,IAAO,EAChC/rZ,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAK0B,IAAO,EAEhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAK2B,IAAO,GACtBh9b,KAAK09b,KAAKpC,EAAKyB,IAAO,EAClChsZ,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAK0B,IAAO,EAChClsZ,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAKgC,IAAO,EAEhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAKiC,IAAO,GACtBn9b,KAAK09b,KAAKvC,EAAK+B,IAAO,EAClCnsZ,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAKgC,IAAO,EAChCrsZ,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAKsC,IAAO,EAEhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAKuC,IAAO,GACtBt9b,KAAK09b,KAAK1C,EAAKqC,IAAO,EAClCtsZ,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAKsC,IAAO,EAKhC,IAAIe,IAAOl/Z,GAJX2R,EAAKA,EAAK9wC,KAAK09b,KAAK9C,EAAK4C,IAAO,GAIZ,KAAa,MAFjCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK9C,EAAK6C,IAAO,GACtBz9b,KAAK09b,KAAK7C,EAAK2C,IAAO,KAEQ,IAAM,EAChDr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAK7C,EAAK4C,IAAO,IAErBzsZ,IAAQ,IAAM,IAAMqtZ,KAAQ,IAAM,EAC7CA,IAAO,SACPvtZ,EAAK9wC,KAAK09b,KAAK5B,EAAKW,GAEpBzrZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKY,KACT18b,KAAK09b,KAAK3B,EAAKU,GAAO,EAClC1rZ,EAAK/wC,KAAK09b,KAAK3B,EAAKW,IACpB5rZ,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAKiB,IAAO,EAEhC5rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAKkB,IAAO,GACtB78b,KAAK09b,KAAK9B,EAAKgB,IAAO,EAClC7rZ,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAKiB,IAAO,EAChC/rZ,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAKuB,IAAO,EAEhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAKwB,IAAO,GACtBh9b,KAAK09b,KAAKjC,EAAKsB,IAAO,EAClChsZ,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAKuB,IAAO,EAChClsZ,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAK6B,IAAO,EAEhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAK8B,IAAO,GACtBn9b,KAAK09b,KAAKpC,EAAK4B,IAAO,EAClCnsZ,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAK6B,IAAO,EAChCrsZ,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAKmC,IAAO,EAEhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAKoC,IAAO,GACtBt9b,KAAK09b,KAAKvC,EAAKkC,IAAO,EAClCtsZ,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAKmC,IAAO,EAKhC,IAAIgB,IAAOn/Z,GAJX2R,EAAKA,EAAK9wC,KAAK09b,KAAK3C,EAAKyC,IAAO,GAIZ,KAAa,MAFjCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK3C,EAAK0C,IAAO,GACtBz9b,KAAK09b,KAAK1C,EAAKwC,IAAO,KAEQ,IAAM,EAChDr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAK1C,EAAKyC,IAAO,IAErBzsZ,IAAQ,IAAM,IAAMstZ,KAAQ,IAAM,EAC7CA,IAAO,SACPxtZ,EAAK9wC,KAAK09b,KAAK5B,EAAKc,IAEpB5rZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKe,KACT78b,KAAK09b,KAAK3B,EAAKa,IAAO,EAClC7rZ,EAAK/wC,KAAK09b,KAAK3B,EAAKc,IACpB/rZ,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAKoB,IAAO,EAEhC/rZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAKqB,IAAO,GACtBh9b,KAAK09b,KAAK9B,EAAKmB,IAAO,EAClChsZ,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAKoB,IAAO,EAChClsZ,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAK0B,IAAO,EAEhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAK2B,IAAO,GACtBn9b,KAAK09b,KAAKjC,EAAKyB,IAAO,EAClCnsZ,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAK0B,IAAO,EAChCrsZ,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAKgC,IAAO,EAEhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAKiC,IAAO,GACtBt9b,KAAK09b,KAAKpC,EAAK+B,IAAO,EAClCtsZ,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAKgC,IAAO,EAKhC,IAAIiB,IAAOp/Z,GAJX2R,EAAKA,EAAK9wC,KAAK09b,KAAKxC,EAAKsC,IAAO,GAIZ,KAAa,MAFjCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKxC,EAAKuC,IAAO,GACtBz9b,KAAK09b,KAAKvC,EAAKqC,IAAO,KAEQ,IAAM,EAChDr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKvC,EAAKsC,IAAO,IAErBzsZ,IAAQ,IAAM,IAAMutZ,KAAQ,IAAM,EAC7CA,IAAO,SACPztZ,EAAK9wC,KAAK09b,KAAK5B,EAAKiB,IAEpB/rZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKkB,KACTh9b,KAAK09b,KAAK3B,EAAKgB,IAAO,EAClChsZ,EAAK/wC,KAAK09b,KAAK3B,EAAKiB,IACpBlsZ,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAKuB,IAAO,EAEhClsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAKwB,IAAO,GACtBn9b,KAAK09b,KAAK9B,EAAKsB,IAAO,EAClCnsZ,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAKuB,IAAO,EAChCrsZ,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAK6B,IAAO,EAEhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAK8B,IAAO,GACtBt9b,KAAK09b,KAAKjC,EAAK4B,IAAO,EAClCtsZ,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAK6B,IAAO,EAKhC,IAAIkB,IAAOr/Z,GAJX2R,EAAKA,EAAK9wC,KAAK09b,KAAKrC,EAAKmC,IAAO,GAIZ,KAAa,MAFjCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKrC,EAAKoC,IAAO,GACtBz9b,KAAK09b,KAAKpC,EAAKkC,IAAO,KAEQ,IAAM,EAChDr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKpC,EAAKmC,IAAO,IAErBzsZ,IAAQ,IAAM,IAAMwtZ,KAAQ,IAAM,EAC7CA,IAAO,SACP1tZ,EAAK9wC,KAAK09b,KAAK5B,EAAKoB,IAEpBlsZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKqB,KACTn9b,KAAK09b,KAAK3B,EAAKmB,IAAO,EAClCnsZ,EAAK/wC,KAAK09b,KAAK3B,EAAKoB,IACpBrsZ,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAK0B,IAAO,EAEhCrsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAK2B,IAAO,GACtBt9b,KAAK09b,KAAK9B,EAAKyB,IAAO,EAClCtsZ,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAK0B,IAAO,EAKhC,IAAImB,IAAOt/Z,GAJX2R,EAAKA,EAAK9wC,KAAK09b,KAAKlC,EAAKgC,IAAO,GAIZ,KAAa,MAFjCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAKlC,EAAKiC,IAAO,GACtBz9b,KAAK09b,KAAKjC,EAAK+B,IAAO,KAEQ,IAAM,EAChDr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAKjC,EAAKgC,IAAO,IAErBzsZ,IAAQ,IAAM,IAAMytZ,KAAQ,IAAM,EAC7CA,IAAO,SACP3tZ,EAAK9wC,KAAK09b,KAAK5B,EAAKuB,IAEpBrsZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAKwB,KACTt9b,KAAK09b,KAAK3B,EAAKsB,IAAO,EAClCtsZ,EAAK/wC,KAAK09b,KAAK3B,EAAKuB,IAKpB,IAAIoB,IAAOv/Z,GAJX2R,EAAKA,EAAK9wC,KAAK09b,KAAK/B,EAAK6B,IAAO,GAIZ,KAAa,MAFjCxsZ,GADAA,EAAMA,EAAMhxC,KAAK09b,KAAK/B,EAAK8B,IAAO,GACtBz9b,KAAK09b,KAAK9B,EAAK4B,IAAO,KAEQ,IAAM,EAChDr+Z,IAFA4R,EAAKA,EAAK/wC,KAAK09b,KAAK9B,EAAK6B,IAAO,IAErBzsZ,IAAQ,IAAM,IAAM0tZ,KAAQ,IAAM,EAC7CA,IAAO,SAKP,IAAIC,IAAOx/Z,GAJX2R,EAAK9wC,KAAK09b,KAAK5B,EAAK0B,KAIA,KAAa,MAFjCxsZ,GADAA,EAAMhxC,KAAK09b,KAAK5B,EAAK2B,KACTz9b,KAAK09b,KAAK3B,EAAKyB,IAAO,KAEQ,IAAM,EA0BhD,OAzBAr+Z,IAFA4R,EAAK/wC,KAAK09b,KAAK3B,EAAK0B,MAETzsZ,IAAQ,IAAM,IAAM2tZ,KAAQ,IAAM,EAC7CA,IAAO,SACPz/Z,EAAE,GAAKoiB,GACPpiB,EAAE,GAAKuiB,GACPviB,EAAE,GAAKy+Z,GACPz+Z,EAAE,GAAK0+Z,GACP1+Z,EAAE,GAAK2+Z,GACP3+Z,EAAE,GAAK4+Z,GACP5+Z,EAAE,GAAK6+Z,GACP7+Z,EAAE,GAAK8+Z,GACP9+Z,EAAE,GAAK++Z,GACP/+Z,EAAE,GAAKg/Z,GACPh/Z,EAAE,IAAMi/Z,GACRj/Z,EAAE,IAAMk/Z,GACRl/Z,EAAE,IAAMm/Z,GACRn/Z,EAAE,IAAMo/Z,GACRp/Z,EAAE,IAAMq/Z,GACRr/Z,EAAE,IAAMs/Z,GACRt/Z,EAAE,IAAMu/Z,GACRv/Z,EAAE,IAAMw/Z,GACRx/Z,EAAE,IAAMy/Z,GACE,IAANx/Z,IACFD,EAAE,IAAMC,EACR6jC,EAAIxlE,UAECwlE,CACT,EAsCA,SAAS47X,EAAW/xZ,EAAOmhK,EAAKhrI,GAE9B,OADW,IAAI67X,GACHC,KAAKjyZ,EAAOmhK,EAAKhrI,EAC/B,CAeA,SAAS67X,EAAKt5b,EAAGC,GACfrI,KAAKoI,EAAIA,EACTpI,KAAKqI,EAAIA,CACX,CA1DKxF,KAAK09b,OACRrD,EAAc9C,GAwChB9D,EAAGl1b,UAAUwgc,MAAQ,SAAe/wP,EAAKhrI,GACvC,IAAI53B,EACAl7B,EAAM/S,KAAKK,OAASwwM,EAAIxwM,OAU5B,OARE4tC,EADkB,KAAhBjuC,KAAKK,QAAgC,KAAfwwM,EAAIxwM,OACtB68b,EAAYl9b,KAAM6wM,EAAKhrI,GACpB9yD,EAAM,GACTqnb,EAAWp6b,KAAM6wM,EAAKhrI,GACnB9yD,EAAM,KA7CnB,SAAkB28B,EAAOmhK,EAAKhrI,GAC5BA,EAAIsxX,SAAWtmP,EAAIsmP,SAAWznZ,EAAMynZ,SACpCtxX,EAAIxlE,OAASqvC,EAAMrvC,OAASwwM,EAAIxwM,OAGhC,IAFA,IAAIg6b,EAAQ,EACRwH,EAAU,EACL15b,EAAI,EAAGA,EAAI09D,EAAIxlE,OAAS,EAAG8H,IAAK,CACvC,IAAImyb,EAASuH,EACbA,EAAU,EAGV,IAFA,IAAItH,EAAgB,SAARF,EACRG,EAAO33b,KAAK8mB,IAAIxhB,EAAG0oM,EAAIxwM,OAAS,GAC3B6H,EAAIrF,KAAK6mB,IAAI,EAAGvhB,EAAIunC,EAAMrvC,OAAS,GAAI6H,GAAKsyb,EAAMtyb,IAAK,CAC9D,IAAIjG,EAAIkG,EAAID,EAGRmmB,GAFqB,EAAjBqhB,EAAM6mZ,MAAMt0b,KACG,EAAf4uM,EAAI0lP,MAAMrub,IAEdyrC,EAAS,SAAJtlB,EAGTksa,EAAa,UADb5mZ,EAAKA,EAAK4mZ,EAAQ,GAGlBsH,IADAvH,GAHAA,EAASA,GAAUjsa,EAAI,SAAW,GAAK,IAGpBslB,IAAO,IAAM,KACV,GACtB2mZ,GAAU,QACZ,CACAz0X,EAAI0wX,MAAMpub,GAAKoyb,EACfF,EAAQC,EACRA,EAASuH,CACX,CAMA,OALc,IAAVxH,EACFx0X,EAAI0wX,MAAMpub,GAAKkyb,EAEfx0X,EAAIxlE,SAECwlE,EAAI4zX,OACb,CAaUqI,CAAS9hc,KAAM6wM,EAAKhrI,GAEpB47X,EAAWzhc,KAAM6wM,EAAKhrI,GAEvB53B,CACT,EAKAyzZ,EAAKtgc,UAAU2gc,QAAU,SAAiB7qY,GAGxC,IAFA,IAAI3oC,EAAI,IAAI1kB,MAAMqtD,GACd9rC,EAAIkra,EAAGl1b,UAAUk6b,WAAWpkY,GAAK,EAC5Bj1D,EAAI,EAAGA,EAAIi1D,EAAGj1D,IACrBssB,EAAEtsB,GAAKjC,KAAKgic,OAAO//b,EAAGmpB,EAAG8rC,GAE3B,OAAO3oC,CACT,EACAmza,EAAKtgc,UAAU4gc,OAAS,SAAgB55b,EAAGgjB,EAAG8rC,GAC5C,GAAU,IAAN9uD,GAAWA,IAAM8uD,EAAI,EAAG,OAAO9uD,EAEnC,IADA,IAAI+/D,EAAK,EACAlmE,EAAI,EAAGA,EAAImpB,EAAGnpB,IACrBkmE,IAAW,EAAJ//D,IAAUgjB,EAAInpB,EAAI,EACzBmG,IAAM,EAER,OAAO+/D,CACT,EACAu5X,EAAKtgc,UAAU+zC,QAAU,SAAiB8sZ,EAAKC,EAAKC,EAAKC,EAAMC,EAAMnrY,GACnE,IAAK,IAAIj1D,EAAI,EAAGA,EAAIi1D,EAAGj1D,IACrBmgc,EAAKngc,GAAKigc,EAAID,EAAIhgc,IAClBogc,EAAKpgc,GAAKkgc,EAAIF,EAAIhgc,GAEtB,EACAy/b,EAAKtgc,UAAUqxB,UAAY,SAAmByva,EAAKC,EAAKC,EAAMC,EAAMnrY,EAAG+qY,GACrEjic,KAAKm1C,QAAQ8sZ,EAAKC,EAAKC,EAAKC,EAAMC,EAAMnrY,GACxC,IAAK,IAAI/rC,EAAI,EAAGA,EAAI+rC,EAAG/rC,IAAM,EAI3B,IAHA,IAAIC,EAAID,GAAK,EACTm3a,EAAQz/b,KAAKsnD,IAAI,EAAItnD,KAAKsgD,GAAK/3B,GAC/Bm3a,EAAQ1/b,KAAKunD,IAAI,EAAIvnD,KAAKsgD,GAAK/3B,GAC1B2H,EAAI,EAAGA,EAAImkC,EAAGnkC,GAAK3H,EAG1B,IAFA,IAAIo3a,EAASF,EACTG,EAASF,EACJr6b,EAAI,EAAGA,EAAIijB,EAAGjjB,IAAK,CAC1B,IAAI8hB,EAAKo4a,EAAKrva,EAAI7qB,GACdw6b,EAAKL,EAAKtva,EAAI7qB,GACdy6b,EAAKP,EAAKrva,EAAI7qB,EAAIijB,GAClBy3a,EAAKP,EAAKtva,EAAI7qB,EAAIijB,GAClBuzC,EAAK8jY,EAASG,EAAKF,EAASG,EAChCA,EAAKJ,EAASI,EAAKH,EAASE,EAC5BA,EAAKjkY,EACL0jY,EAAKrva,EAAI7qB,GAAK8hB,EAAK24a,EACnBN,EAAKtva,EAAI7qB,GAAKw6b,EAAKE,EACnBR,EAAKrva,EAAI7qB,EAAIijB,GAAKnB,EAAK24a,EACvBN,EAAKtva,EAAI7qB,EAAIijB,GAAKu3a,EAAKE,EACnB16b,IAAMkjB,IACRszC,EAAK4jY,EAAQE,EAASD,EAAQE,EAC9BA,EAASH,EAAQG,EAASF,EAAQC,EAClCA,EAAS9jY,EAEb,CAGN,EACAgjY,EAAKtgc,UAAUyhc,YAAc,SAAqB14a,EAAG2I,GACnD,IAAIokC,EAAqB,EAAjBr0D,KAAK6mB,IAAIoJ,EAAG3I,GAChB24a,EAAU,EAAJ5rY,EACNj1D,EAAI,EACR,IAAKi1D,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/Bj1D,IAEF,OAAO,GAAKA,EAAI,EAAI6gc,CACtB,EACApB,EAAKtgc,UAAU2hc,UAAY,SAAmBb,EAAKC,EAAKjrY,GACtD,KAAIA,GAAK,GACT,IAAK,IAAIj1D,EAAI,EAAGA,EAAIi1D,EAAI,EAAGj1D,IAAK,CAC9B,IAAIssB,EAAI2za,EAAIjgc,GACZigc,EAAIjgc,GAAKigc,EAAIhrY,EAAIj1D,EAAI,GACrBigc,EAAIhrY,EAAIj1D,EAAI,GAAKssB,EACjBA,EAAI4za,EAAIlgc,GACRkgc,EAAIlgc,IAAMkgc,EAAIjrY,EAAIj1D,EAAI,GACtBkgc,EAAIjrY,EAAIj1D,EAAI,IAAMssB,CACpB,CACF,EACAmza,EAAKtgc,UAAU4hc,aAAe,SAAsBC,EAAI/rY,GAEtD,IADA,IAAImjY,EAAQ,EACHp4b,EAAI,EAAGA,EAAIi1D,EAAI,EAAGj1D,IAAK,CAC9B,IAAI2gC,EAAoC,KAAhC//B,KAAK+b,MAAMqkb,EAAG,EAAIhhc,EAAI,GAAKi1D,GAAYr0D,KAAK+b,MAAMqkb,EAAG,EAAIhhc,GAAKi1D,GAAKmjY,EAC3E4I,EAAGhhc,GAAS,SAAJ2gC,EAENy3Z,EADEz3Z,EAAI,SACE,EAEAA,EAAI,SAAW,CAE3B,CACA,OAAOqga,CACT,EACAvB,EAAKtgc,UAAU8hc,WAAa,SAAoBD,EAAIlwb,EAAKmvb,EAAKhrY,GAE5D,IADA,IAAImjY,EAAQ,EACHp4b,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACvBo4b,GAAyB,EAAR4I,EAAGhhc,GACpBigc,EAAI,EAAIjgc,GAAa,KAARo4b,EACbA,KAAkB,GAClB6H,EAAI,EAAIjgc,EAAI,GAAa,KAARo4b,EACjBA,KAAkB,GAEpB,IAAKp4b,EAAI,EAAI8Q,EAAK9Q,EAAIi1D,IAAKj1D,EACzBigc,EAAIjgc,GAAK,EAEX+kZ,EAAiB,IAAVqzC,GACPrzC,EAA2B,MAAX,KAARqzC,GACV,EACAqH,EAAKtgc,UAAU+hc,KAAO,SAAcjsY,GAElC,IADA,IAAIk4M,EAAK,IAAIvlQ,MAAMqtD,GACVj1D,EAAI,EAAGA,EAAIi1D,EAAGj1D,IACrBmtQ,EAAGntQ,GAAK,EAEV,OAAOmtQ,CACT,EACAsyL,EAAKtgc,UAAUugc,KAAO,SAAcv5b,EAAGC,EAAGw9D,GACxC,IAAI3O,EAAI,EAAIl3D,KAAK6ic,YAAYz6b,EAAE/H,OAAQgI,EAAEhI,QACrC4hc,EAAMjic,KAAK+hc,QAAQ7qY,GACnBh0B,EAAIljC,KAAKmjc,KAAKjsY,GACdgrY,EAAM,IAAIr4b,MAAMqtD,GAChBksY,EAAO,IAAIv5b,MAAMqtD,GACjBmsY,EAAO,IAAIx5b,MAAMqtD,GACjBosY,EAAO,IAAIz5b,MAAMqtD,GACjBqsY,EAAQ,IAAI15b,MAAMqtD,GAClBssY,EAAQ,IAAI35b,MAAMqtD,GAClBusY,EAAO59X,EAAI0wX,MACfkN,EAAKpjc,OAAS62D,EACdl3D,KAAKkjc,WAAW96b,EAAEmub,MAAOnub,EAAE/H,OAAQ6hc,EAAKhrY,GACxCl3D,KAAKkjc,WAAW76b,EAAEkub,MAAOlub,EAAEhI,OAAQijc,EAAMpsY,GACzCl3D,KAAKyyB,UAAUyva,EAAKh/Z,EAAGkga,EAAMC,EAAMnsY,EAAG+qY,GACtCjic,KAAKyyB,UAAU6wa,EAAMpga,EAAGqga,EAAOC,EAAOtsY,EAAG+qY,GACzC,IAAK,IAAIhgc,EAAI,EAAGA,EAAIi1D,EAAGj1D,IAAK,CAC1B,IAAIy8D,EAAK0kY,EAAKnhc,GAAKshc,EAAMthc,GAAKohc,EAAKphc,GAAKuhc,EAAMvhc,GAC9Cohc,EAAKphc,GAAKmhc,EAAKnhc,GAAKuhc,EAAMvhc,GAAKohc,EAAKphc,GAAKshc,EAAMthc,GAC/Cmhc,EAAKnhc,GAAKy8D,CACZ,CAOA,OANA1+D,KAAK+ic,UAAUK,EAAMC,EAAMnsY,GAC3Bl3D,KAAKyyB,UAAU2wa,EAAMC,EAAMI,EAAMvga,EAAGg0B,EAAG+qY,GACvCjic,KAAK+ic,UAAUU,EAAMvga,EAAGg0B,GACxBl3D,KAAKgjc,aAAaS,EAAMvsY,GACxB2O,EAAIsxX,SAAW/ub,EAAE+ub,SAAW9ub,EAAE8ub,SAC9BtxX,EAAIxlE,OAAS+H,EAAE/H,OAASgI,EAAEhI,OACnBwlE,EAAI4zX,OACb,EACAnD,EAAGl1b,UAAUu9H,IAAM,SAAakyE,GAC9B,IAAIhrI,EAAM,IAAIywX,EAAG,MAEjB,OADAzwX,EAAI0wX,MAAQ,IAAI1sb,MAAM7J,KAAKK,OAASwwM,EAAIxwM,QACjCL,KAAK4hc,MAAM/wP,EAAKhrI,EACzB,EACAywX,EAAGl1b,UAAUsic,KAAO,SAAc7yP,GAChC,IAAIhrI,EAAM,IAAIywX,EAAG,MAEjB,OADAzwX,EAAI0wX,MAAQ,IAAI1sb,MAAM7J,KAAKK,OAASwwM,EAAIxwM,QACjCohc,EAAWzhc,KAAM6wM,EAAKhrI,EAC/B,EACAywX,EAAGl1b,UAAUm/b,KAAO,SAAc1vP,GAChC,OAAO7wM,KAAK0f,QAAQkib,MAAM/wP,EAAK7wM,KACjC,EACAs2b,EAAGl1b,UAAUy4b,MAAQ,SAAehpP,GAClCm2M,EAAsB,kBAARn2M,GACdm2M,EAAOn2M,EAAM,UAEb,IADA,IAAIwpP,EAAQ,EACHp4b,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAAK,CACpC,IAAI2gC,GAAqB,EAAhB5iC,KAAKu2b,MAAMt0b,IAAU4uM,EAC1Bl9J,GAAU,SAAJ/Q,IAAyB,SAARy3Z,GAC3BA,IAAU,GACVA,GAASz3Z,EAAI,SAAW,EACxBy3Z,GAAS1mZ,IAAO,GAChB3zC,KAAKu2b,MAAMt0b,GAAU,SAAL0xC,CAClB,CAKA,OAJc,IAAV0mZ,IACFr6b,KAAKu2b,MAAMt0b,GAAKo4b,EAChBr6b,KAAKK,UAEAL,IACT,EACAs2b,EAAGl1b,UAAUuic,KAAO,SAAc9yP,GAChC,OAAO7wM,KAAK0f,QAAQm6a,MAAMhpP,EAC5B,EACAylP,EAAGl1b,UAAUwic,IAAM,WACjB,OAAO5jc,KAAK2+H,IAAI3+H,KAClB,EACAs2b,EAAGl1b,UAAUyic,KAAO,WAClB,OAAO7jc,KAAKugc,KAAKvgc,KAAK0f,QACxB,EACA42a,EAAGl1b,UAAUqlD,IAAM,SAAaoqJ,GAC9B,IAAIjuK,EAjkCN,SAAoBiuK,GAElB,IADA,IAAIjuK,EAAI,IAAI/4B,MAAMgnM,EAAIymP,aACbwF,EAAM,EAAGA,EAAMl6Z,EAAEviC,OAAQy8b,IAAO,CACvC,IAAI78Y,EAAM68Y,EAAM,GAAK,EACjBC,EAAOD,EAAM,GACjBl6Z,EAAEk6Z,IAAQjsP,EAAI0lP,MAAMt2Y,GAAO,GAAK88Y,KAAUA,CAC5C,CACA,OAAOn6Z,CACT,CAyjCUkha,CAAWjzP,GACnB,GAAiB,IAAbjuK,EAAEviC,OAAc,OAAO,IAAIi2b,EAAG,GAElC,IADA,IAAIroZ,EAAMjuC,KACDiC,EAAI,EAAGA,EAAI2gC,EAAEviC,QACP,IAATuiC,EAAE3gC,GADsBA,IAAKgsC,EAAMA,EAAI21Z,OAG7C,KAAM3hc,EAAI2gC,EAAEviC,OACV,IAAK,IAAI8qC,EAAI8C,EAAI21Z,MAAO3hc,EAAI2gC,EAAEviC,OAAQ4B,IAAKkpC,EAAIA,EAAEy4Z,MAClC,IAAThha,EAAE3gC,KACNgsC,EAAMA,EAAI0wF,IAAIxzF,IAGlB,OAAO8C,CACT,EACAqoZ,EAAGl1b,UAAU2ic,OAAS,SAAgBr+T,GACpCshR,EAAuB,kBAATthR,GAAqBA,GAAQ,GAC3C,IAGIzjI,EAHAosB,EAAIq3G,EAAO,GACXv6G,GAAKu6G,EAAOr3G,GAAK,GACjB21a,EAAY,WAAa,GAAK31a,GAAK,GAAKA,EAE5C,GAAU,IAANA,EAAS,CACX,IAAIgsa,EAAQ,EACZ,IAAKp4b,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAAK,CAChC,IAAIgic,EAAWjkc,KAAKu2b,MAAMt0b,GAAK+hc,EAC3Bhia,GAAqB,EAAhBhiC,KAAKu2b,MAAMt0b,IAAUgic,GAAY51a,EAC1CruB,KAAKu2b,MAAMt0b,GAAK+/B,EAAIq4Z,EACpBA,EAAQ4J,IAAa,GAAK51a,CAC5B,CACIgsa,IACFr6b,KAAKu2b,MAAMt0b,GAAKo4b,EAChBr6b,KAAKK,SAET,CACA,GAAU,IAAN8qB,EAAS,CACX,IAAKlpB,EAAIjC,KAAKK,OAAS,EAAG4B,GAAK,EAAGA,IAChCjC,KAAKu2b,MAAMt0b,EAAIkpB,GAAKnrB,KAAKu2b,MAAMt0b,GAEjC,IAAKA,EAAI,EAAGA,EAAIkpB,EAAGlpB,IACjBjC,KAAKu2b,MAAMt0b,GAAK,EAElBjC,KAAKK,QAAU8qB,CACjB,CACA,OAAOnrB,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAU8ic,MAAQ,SAAex+T,GAElC,OADAshR,EAAyB,IAAlBhnZ,KAAKm3b,UACLn3b,KAAK+jc,OAAOr+T,EACrB,EACA4wT,EAAGl1b,UAAUg6b,OAAS,SAAgB11T,EAAMugR,EAAMk+C,GAEhD,IAAIrxb,EADJk0Y,EAAuB,kBAATthR,GAAqBA,GAAQ,GAGzC5yH,EADEmzY,GACGA,EAAOA,EAAO,IAAM,GAErB,EAEN,IAAI53X,EAAIq3G,EAAO,GACXv6G,EAAItoB,KAAK8mB,KAAK+7G,EAAOr3G,GAAK,GAAIruB,KAAKK,QACnCw3b,EAAO,SAAW,WAAaxpa,GAAKA,EACpC+1a,EAAcD,EAGlB,GAFArxb,GAAKqY,EACLrY,EAAIjQ,KAAK6mB,IAAI,EAAG5W,GACZsxb,EAAa,CACf,IAAK,IAAInic,EAAI,EAAGA,EAAIkpB,EAAGlpB,IACrBmic,EAAY7N,MAAMt0b,GAAKjC,KAAKu2b,MAAMt0b,GAEpCmic,EAAY/jc,OAAS8qB,CACvB,CACA,GAAU,IAANA,QACG,GAAInrB,KAAKK,OAAS8qB,EAEvB,IADAnrB,KAAKK,QAAU8qB,EACVlpB,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC3BjC,KAAKu2b,MAAMt0b,GAAKjC,KAAKu2b,MAAMt0b,EAAIkpB,QAGjCnrB,KAAKu2b,MAAM,GAAK,EAChBv2b,KAAKK,OAAS,EAEhB,IAAIg6b,EAAQ,EACZ,IAAKp4b,EAAIjC,KAAKK,OAAS,EAAG4B,GAAK,IAAgB,IAAVo4b,GAAep4b,GAAK6Q,GAAI7Q,IAAK,CAChE,IAAI23b,EAAuB,EAAhB55b,KAAKu2b,MAAMt0b,GACtBjC,KAAKu2b,MAAMt0b,GAAKo4b,GAAS,GAAKhsa,EAAIura,IAASvra,EAC3Cgsa,EAAQT,EAAO/B,CACjB,CAQA,OAPIuM,GAAyB,IAAV/J,IACjB+J,EAAY7N,MAAM6N,EAAY/jc,UAAYg6b,GAExB,IAAhBr6b,KAAKK,SACPL,KAAKu2b,MAAM,GAAK,EAChBv2b,KAAKK,OAAS,GAETL,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAUijc,MAAQ,SAAe3+T,EAAMugR,EAAMk+C,GAE9C,OADAn9C,EAAyB,IAAlBhnZ,KAAKm3b,UACLn3b,KAAKo7b,OAAO11T,EAAMugR,EAAMk+C,EACjC,EACA7N,EAAGl1b,UAAUkjc,KAAO,SAAc5+T,GAChC,OAAO1lI,KAAK0f,QAAQwkb,MAAMx+T,EAC5B,EACA4wT,EAAGl1b,UAAUi1b,MAAQ,SAAe3wT,GAClC,OAAO1lI,KAAK0f,QAAQqkb,OAAOr+T,EAC7B,EACA4wT,EAAGl1b,UAAUmjc,KAAO,SAAc7+T,GAChC,OAAO1lI,KAAK0f,QAAQ2kb,MAAM3+T,EAC5B,EACA4wT,EAAGl1b,UAAUojc,MAAQ,SAAe9+T,GAClC,OAAO1lI,KAAK0f,QAAQ07a,OAAO11T,EAC7B,EACA4wT,EAAGl1b,UAAUy6b,MAAQ,SAAeiB,GAClC91C,EAAsB,kBAAR81C,GAAoBA,GAAO,GACzC,IAAIzua,EAAIyua,EAAM,GACV3xa,GAAK2xa,EAAMzua,GAAK,GAChB8c,EAAI,GAAK9c,EACb,QAAIruB,KAAKK,QAAU8qB,OACXnrB,KAAKu2b,MAAMpra,GACLggB,EAChB,EACAmrZ,EAAGl1b,UAAUqjc,OAAS,SAAgB/+T,GACpCshR,EAAuB,kBAATthR,GAAqBA,GAAQ,GAC3C,IAAIr3G,EAAIq3G,EAAO,GACXv6G,GAAKu6G,EAAOr3G,GAAK,GAErB,GADA24X,EAAyB,IAAlBhnZ,KAAKm3b,SAAgB,2CACxBn3b,KAAKK,QAAU8qB,EACjB,OAAOnrB,KAMT,GAJU,IAANquB,GACFlD,IAEFnrB,KAAKK,OAASwC,KAAK8mB,IAAIwB,EAAGnrB,KAAKK,QACrB,IAANguB,EAAS,CACX,IAAIwpa,EAAO,SAAW,WAAaxpa,GAAKA,EACxCruB,KAAKu2b,MAAMv2b,KAAKK,OAAS,IAAMw3b,CACjC,CACA,OAAO73b,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAUsjc,MAAQ,SAAeh/T,GAClC,OAAO1lI,KAAK0f,QAAQ+kb,OAAO/+T,EAC7B,EACA4wT,EAAGl1b,UAAUu6b,MAAQ,SAAe9qP,GAGlC,OAFAm2M,EAAsB,kBAARn2M,GACdm2M,EAAOn2M,EAAM,UACTA,EAAM,EAAU7wM,KAAK2kc,OAAO9zP,GACV,IAAlB7wM,KAAKm3b,SACa,IAAhBn3b,KAAKK,SAAiC,EAAhBL,KAAKu2b,MAAM,IAAU1lP,GAC7C7wM,KAAKu2b,MAAM,GAAK1lP,GAAuB,EAAhB7wM,KAAKu2b,MAAM,IAClCv2b,KAAKm3b,SAAW,EACTn3b,OAETA,KAAKm3b,SAAW,EAChBn3b,KAAK2kc,MAAM9zP,GACX7wM,KAAKm3b,SAAW,EACTn3b,MAEFA,KAAK85b,OAAOjpP,EACrB,EACAylP,EAAGl1b,UAAU04b,OAAS,SAAgBjpP,GACpC7wM,KAAKu2b,MAAM,IAAM1lP,EACjB,IAAK,IAAI5uM,EAAI,EAAGA,EAAIjC,KAAKK,QAAUL,KAAKu2b,MAAMt0b,IAAM,SAAUA,IAC5DjC,KAAKu2b,MAAMt0b,IAAM,SACbA,IAAMjC,KAAKK,OAAS,EACtBL,KAAKu2b,MAAMt0b,EAAI,GAAK,EAEpBjC,KAAKu2b,MAAMt0b,EAAI,KAInB,OADAjC,KAAKK,OAASwC,KAAK6mB,IAAI1pB,KAAKK,OAAQ4B,EAAI,GACjCjC,IACT,EACAs2b,EAAGl1b,UAAUujc,MAAQ,SAAe9zP,GAGlC,GAFAm2M,EAAsB,kBAARn2M,GACdm2M,EAAOn2M,EAAM,UACTA,EAAM,EAAG,OAAO7wM,KAAK27b,OAAO9qP,GAChC,GAAsB,IAAlB7wM,KAAKm3b,SAIP,OAHAn3b,KAAKm3b,SAAW,EAChBn3b,KAAK27b,MAAM9qP,GACX7wM,KAAKm3b,SAAW,EACTn3b,KAGT,GADAA,KAAKu2b,MAAM,IAAM1lP,EACG,IAAhB7wM,KAAKK,QAAgBL,KAAKu2b,MAAM,GAAK,EACvCv2b,KAAKu2b,MAAM,IAAMv2b,KAAKu2b,MAAM,GAC5Bv2b,KAAKm3b,SAAW,OAEhB,IAAK,IAAIl1b,EAAI,EAAGA,EAAIjC,KAAKK,QAAUL,KAAKu2b,MAAMt0b,GAAK,EAAGA,IACpDjC,KAAKu2b,MAAMt0b,IAAM,SACjBjC,KAAKu2b,MAAMt0b,EAAI,IAAM,EAGzB,OAAOjC,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAUwjc,KAAO,SAAc/zP,GAChC,OAAO7wM,KAAK0f,QAAQi8a,MAAM9qP,EAC5B,EACAylP,EAAGl1b,UAAUyjc,KAAO,SAAch0P,GAChC,OAAO7wM,KAAK0f,QAAQilb,MAAM9zP,EAC5B,EACAylP,EAAGl1b,UAAU0jc,KAAO,WAElB,OADA9kc,KAAKm3b,SAAW,EACTn3b,IACT,EACAs2b,EAAGl1b,UAAUwB,IAAM,WACjB,OAAO5C,KAAK0f,QAAQolb,MACtB,EACAxO,EAAGl1b,UAAU2jc,aAAe,SAAsBl0P,EAAKlyE,EAAKh0G,GAC1D,IACI1oB,EAEA2gC,EAHA7vB,EAAM89L,EAAIxwM,OAASsqB,EAEvB3qB,KAAK+5b,QAAQhnb,GAEb,IAAIsnb,EAAQ,EACZ,IAAKp4b,EAAI,EAAGA,EAAI4uM,EAAIxwM,OAAQ4B,IAAK,CAC/B2gC,GAA6B,EAAxB5iC,KAAKu2b,MAAMt0b,EAAI0oB,IAAc0va,EAClC,IAAI//Z,GAAwB,EAAfu2K,EAAI0lP,MAAMt0b,IAAU08H,EAEjC07T,IADAz3Z,GAAa,SAARtI,IACS,KAAOA,EAAQ,SAAW,GACxCt6B,KAAKu2b,MAAMt0b,EAAI0oB,GAAa,SAAJiY,CAC1B,CACA,KAAO3gC,EAAIjC,KAAKK,OAASsqB,EAAO1oB,IAE9Bo4b,GADAz3Z,GAA6B,EAAxB5iC,KAAKu2b,MAAMt0b,EAAI0oB,IAAc0va,IACrB,GACbr6b,KAAKu2b,MAAMt0b,EAAI0oB,GAAa,SAAJiY,EAE1B,GAAc,IAAVy3Z,EAAa,OAAOr6b,KAAKy5b,QAG7B,IAFAzyC,GAAkB,IAAXqzC,GACPA,EAAQ,EACHp4b,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAE3Bo4b,GADAz3Z,IAAsB,EAAhB5iC,KAAKu2b,MAAMt0b,IAAUo4b,IACd,GACbr6b,KAAKu2b,MAAMt0b,GAAS,SAAJ2gC,EAGlB,OADA5iC,KAAKm3b,SAAW,EACTn3b,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAU4jc,SAAW,SAAkBn0P,EAAK/0L,GAC7C,IAAI6O,GAAQ3qB,KAAKK,OAASwwM,EAAIxwM,QAC1BgrB,EAAIrrB,KAAK0f,QACTuT,EAAI49K,EACJo0P,EAA8B,EAAxBhya,EAAEsja,MAAMtja,EAAE5yB,OAAS,GAGf,KADdsqB,EAAQ,GADM3qB,KAAKs7b,WAAW2J,MAG5Bhya,EAAIA,EAAEoja,MAAM1ra,GACZU,EAAE04a,OAAOp5a,GACTs6a,EAA8B,EAAxBhya,EAAEsja,MAAMtja,EAAE5yB,OAAS,IAE3B,IACI8qC,EADArY,EAAIzH,EAAEhrB,OAAS4yB,EAAE5yB,OAErB,GAAa,QAATyb,EAAgB,EAClBqvB,EAAI,IAAImrZ,EAAG,OACTj2b,OAASyyB,EAAI,EACfqY,EAAEorZ,MAAQ,IAAI1sb,MAAMshC,EAAE9qC,QACtB,IAAK,IAAI4B,EAAI,EAAGA,EAAIkpC,EAAE9qC,OAAQ4B,IAC5BkpC,EAAEorZ,MAAMt0b,GAAK,CAEjB,CACA,IAAIqkC,EAAOjb,EAAE3L,QAAQqlb,aAAa9xa,EAAG,EAAGH,GAClB,IAAlBwT,EAAK6wZ,WACP9ra,EAAIib,EACA6E,IACFA,EAAEorZ,MAAMzja,GAAK,IAGjB,IAAK,IAAI5qB,EAAI4qB,EAAI,EAAG5qB,GAAK,EAAGA,IAAK,CAC/B,IAAIg9b,EAAmC,UAAL,EAAxB75a,EAAEkra,MAAMtja,EAAE5yB,OAAS6H,KAAkD,EAA5BmjB,EAAEkra,MAAMtja,EAAE5yB,OAAS6H,EAAI,IAG1E,IAFAg9b,EAAKric,KAAK8mB,IAAIu7a,EAAKD,EAAM,EAAG,UAC5B55a,EAAE05a,aAAa9xa,EAAGiya,EAAIh9b,GACA,IAAfmjB,EAAE8ra,UACP+N,IACA75a,EAAE8ra,SAAW,EACb9ra,EAAE05a,aAAa9xa,EAAG,EAAG/qB,GAChBmjB,EAAEsva,WACLtva,EAAE8ra,UAAY,GAGdhsZ,IACFA,EAAEorZ,MAAMrub,GAAKg9b,EAEjB,CAQA,OAPI/5Z,GACFA,EAAEsuZ,QAEJpua,EAAEoua,QACW,QAAT39a,GAA4B,IAAV6O,GACpBU,EAAE+va,OAAOzwa,GAEJ,CACLw/I,IAAKh/H,GAAK,KACViD,IAAK/iB,EAET,EACAira,EAAGl1b,UAAU41b,OAAS,SAAgBnmP,EAAK/0L,EAAMs7D,GAE/C,OADA4vU,GAAQn2M,EAAI8pP,UACR36b,KAAK26b,SACA,CACLxwR,IAAK,IAAImsR,EAAG,GACZloZ,IAAK,IAAIkoZ,EAAG,IAIM,IAAlBt2b,KAAKm3b,UAAmC,IAAjBtmP,EAAIsmP,UAC7BlpZ,EAAMjuC,KAAK42b,MAAMI,OAAOnmP,EAAK/0L,GAChB,QAATA,IACFquJ,EAAMl8H,EAAIk8H,IAAIysR,OAEH,QAAT96a,IACFsyB,EAAMH,EAAIG,IAAIwoZ,MACVx/W,GAA6B,IAAjBhpC,EAAI+oZ,UAClB/oZ,EAAI4uZ,KAAKnsP,IAGN,CACL1mC,MACA/7H,QAGkB,IAAlBpuC,KAAKm3b,UAAmC,IAAjBtmP,EAAIsmP,UAC7BlpZ,EAAMjuC,KAAKg3b,OAAOnmP,EAAI+lP,MAAO96a,GAChB,QAATA,IACFquJ,EAAMl8H,EAAIk8H,IAAIysR,OAET,CACLzsR,MACA/7H,IAAKH,EAAIG,MAG0B,KAAlCpuC,KAAKm3b,SAAWtmP,EAAIsmP,WACvBlpZ,EAAMjuC,KAAK42b,MAAMI,OAAOnmP,EAAI+lP,MAAO96a,GACtB,QAATA,IACFsyB,EAAMH,EAAIG,IAAIwoZ,MACVx/W,GAA6B,IAAjBhpC,EAAI+oZ,UAClB/oZ,EAAI6uZ,KAAKpsP,IAGN,CACL1mC,IAAKl8H,EAAIk8H,IACT/7H,QAGAyiK,EAAIxwM,OAASL,KAAKK,QAAUL,KAAK61b,IAAIhlP,GAAO,EACvC,CACL1mC,IAAK,IAAImsR,EAAG,GACZloZ,IAAKpuC,MAGU,IAAf6wM,EAAIxwM,OACO,QAATyb,EACK,CACLquJ,IAAKnqK,KAAKmlc,KAAKt0P,EAAI0lP,MAAM,IACzBnoZ,IAAK,MAGI,QAATtyB,EACK,CACLquJ,IAAK,KACL/7H,IAAK,IAAIkoZ,EAAGt2b,KAAK46b,KAAK/pP,EAAI0lP,MAAM,MAG7B,CACLpsR,IAAKnqK,KAAKmlc,KAAKt0P,EAAI0lP,MAAM,IACzBnoZ,IAAK,IAAIkoZ,EAAGt2b,KAAK46b,KAAK/pP,EAAI0lP,MAAM,MAG7Bv2b,KAAKglc,SAASn0P,EAAK/0L,GAhE1B,IAAIquJ,EAAK/7H,EAAKH,CAiEhB,EACAqoZ,EAAGl1b,UAAU+oK,IAAM,SAAa0mC,GAC9B,OAAO7wM,KAAKg3b,OAAOnmP,EAAK,OAAO,GAAO1mC,GACxC,EACAmsR,EAAGl1b,UAAUgtC,IAAM,SAAayiK,GAC9B,OAAO7wM,KAAKg3b,OAAOnmP,EAAK,OAAO,GAAOziK,GACxC,EACAkoZ,EAAGl1b,UAAUgkc,KAAO,SAAcv0P,GAChC,OAAO7wM,KAAKg3b,OAAOnmP,EAAK,OAAO,GAAMziK,GACvC,EACAkoZ,EAAGl1b,UAAUg2b,SAAW,SAAkBvmP,GACxC,IAAIw0P,EAAKrlc,KAAKg3b,OAAOnmP,GACrB,GAAIw0P,EAAGj3Z,IAAIusZ,SAAU,OAAO0K,EAAGl7R,IAC/B,IAAI/7H,EAA0B,IAApBi3Z,EAAGl7R,IAAIgtR,SAAiBkO,EAAGj3Z,IAAI6uZ,KAAKpsP,GAAOw0P,EAAGj3Z,IACpDk3Z,EAAOz0P,EAAI2zP,MAAM,GACjBjlR,EAAKsxB,EAAIsqP,MAAM,GACftF,EAAMznZ,EAAIynZ,IAAIyP,GAClB,OAAIzP,EAAM,GAAY,IAAPt2Q,GAAoB,IAARs2Q,EAAkBwP,EAAGl7R,IACrB,IAApBk7R,EAAGl7R,IAAIgtR,SAAiBkO,EAAGl7R,IAAIw6R,MAAM,GAAKU,EAAGl7R,IAAIwxR,MAAM,EAChE,EACArF,EAAGl1b,UAAUw5b,KAAO,SAAc/pP,GAChCm2M,EAAOn2M,GAAO,UAGd,IAFA,IAAI99K,GAAK,GAAK,IAAM89K,EAChBzvL,EAAM,EACDnf,EAAIjC,KAAKK,OAAS,EAAG4B,GAAK,EAAGA,IACpCmf,GAAO2R,EAAI3R,GAAuB,EAAhBphB,KAAKu2b,MAAMt0b,KAAW4uM,EAE1C,OAAOzvL,CACT,EACAk1a,EAAGl1b,UAAUy5b,MAAQ,SAAehqP,GAClCm2M,EAAOn2M,GAAO,UAEd,IADA,IAAIwpP,EAAQ,EACHp4b,EAAIjC,KAAKK,OAAS,EAAG4B,GAAK,EAAGA,IAAK,CACzC,IAAI2gC,GAAqB,EAAhB5iC,KAAKu2b,MAAMt0b,IAAkB,SAARo4b,EAC9Br6b,KAAKu2b,MAAMt0b,GAAK2gC,EAAIiuK,EAAM,EAC1BwpP,EAAQz3Z,EAAIiuK,CACd,CACA,OAAO7wM,KAAKy5b,OACd,EACAnD,EAAGl1b,UAAU+jc,KAAO,SAAct0P,GAChC,OAAO7wM,KAAK0f,QAAQm7a,MAAMhqP,EAC5B,EACAylP,EAAGl1b,UAAUmkc,KAAO,SAAcxya,GAChCi0X,EAAsB,IAAfj0X,EAAEoka,UACTnwC,GAAQj0X,EAAE4na,UACV,IAAIvyb,EAAIpI,KACJqI,EAAI0qB,EAAErT,QAERtX,EADiB,IAAfA,EAAE+ub,SACA/ub,EAAEg9b,KAAKrya,GAEP3qB,EAAEsX,QAOR,IALA,IAAIy+I,EAAK,IAAIm4R,EAAG,GACZj4R,EAAK,IAAIi4R,EAAG,GACZnkB,EAAK,IAAImkB,EAAG,GACZ/6W,EAAK,IAAI+6W,EAAG,GACZtzZ,EAAI,EACD56B,EAAEo9b,UAAYn9b,EAAEm9b,UACrBp9b,EAAEgzb,OAAO,GACT/yb,EAAE+yb,OAAO,KACPp4Z,EAIJ,IAFA,IAAI+hG,EAAK18H,EAAEqX,QACPolH,EAAK18H,EAAEsX,SACHtX,EAAEuyb,UAAU,CAClB,IAAK,IAAI14b,EAAI,EAAGwjc,EAAK,EAAyB,KAArBr9b,EAAEmub,MAAM,GAAKkP,IAAaxjc,EAAI,KAAMA,EAAGwjc,IAAO,GACvE,GAAIxjc,EAAI,EAEN,IADAmG,EAAEgzb,OAAOn5b,GACFA,KAAM,IACPk8J,EAAGunS,SAAWrnS,EAAGqnS,WACnBvnS,EAAG6+R,KAAKj4T,GACRs5B,EAAG4+R,KAAKn4T,IAEVq5B,EAAGi9R,OAAO,GACV/8R,EAAG+8R,OAAO,GAGd,IAAK,IAAIlzb,EAAI,EAAGy9b,EAAK,EAAyB,KAArBt9b,EAAEkub,MAAM,GAAKoP,IAAaz9b,EAAI,KAAMA,EAAGy9b,IAAO,GACvE,GAAIz9b,EAAI,EAEN,IADAG,EAAE+yb,OAAOlzb,GACFA,KAAM,IACPiqa,EAAGuzB,SAAWnqX,EAAGmqX,WACnBvzB,EAAG6qB,KAAKj4T,GACRxpD,EAAG0hX,KAAKn4T,IAEVqtS,EAAGipB,OAAO,GACV7/W,EAAG6/W,OAAO,GAGVhzb,EAAEytb,IAAIxtb,IAAM,GACdD,EAAE60b,KAAK50b,GACP81J,EAAG8+R,KAAK9qB,GACR9zQ,EAAG4+R,KAAK1hX,KAERlzE,EAAE40b,KAAK70b,GACP+pa,EAAG8qB,KAAK9+R,GACR5iF,EAAG0hX,KAAK5+R,GAEZ,CACA,MAAO,CACLhzI,EAAG8mZ,EACHl/Y,EAAGsoD,EACH01H,IAAK5oM,EAAE07b,OAAO/ga,GAElB,EACAszZ,EAAGl1b,UAAUwkc,OAAS,SAAgB7ya,GACpCi0X,EAAsB,IAAfj0X,EAAEoka,UACTnwC,GAAQj0X,EAAE4na,UACV,IAAItva,EAAIrrB,KACJizB,EAAIF,EAAErT,QAER2L,EADiB,IAAfA,EAAE8ra,SACA9ra,EAAE+5a,KAAKrya,GAEP1H,EAAE3L,QAKR,IAHA,IAgCIuuB,EAhCAqX,EAAK,IAAIgxY,EAAG,GACZ12X,EAAK,IAAI02X,EAAG,GACZh1T,EAAQruG,EAAEvT,QACP2L,EAAEwra,KAAK,GAAK,GAAK5ja,EAAE4ja,KAAK,GAAK,GAAG,CACrC,IAAK,IAAI50b,EAAI,EAAGwjc,EAAK,EAAyB,KAArBp6a,EAAEkra,MAAM,GAAKkP,IAAaxjc,EAAI,KAAMA,EAAGwjc,IAAO,GACvE,GAAIxjc,EAAI,EAEN,IADAopB,EAAE+va,OAAOn5b,GACFA,KAAM,GACPqjD,EAAGogZ,SACLpgZ,EAAG03Y,KAAK17T,GAEVh8E,EAAG81Y,OAAO,GAGd,IAAK,IAAIlzb,EAAI,EAAGy9b,EAAK,EAAyB,KAArB1ya,EAAEsja,MAAM,GAAKoP,IAAaz9b,EAAI,KAAMA,EAAGy9b,IAAO,GACvE,GAAIz9b,EAAI,EAEN,IADA+qB,EAAEmoa,OAAOlzb,GACFA,KAAM,GACP03D,EAAG8lY,SACL9lY,EAAGo9X,KAAK17T,GAEV1hE,EAAGw7X,OAAO,GAGV/va,EAAEwqa,IAAI5ia,IAAM,GACd5H,EAAE4xa,KAAKhqa,GACPqyB,EAAG23Y,KAAKr9X,KAER3sC,EAAEgqa,KAAK5xa,GACPu0C,EAAGq9X,KAAK33Y,GAEZ,CAUA,OAPErX,EADgB,IAAd5iB,EAAEwra,KAAK,GACHvxY,EAEAsa,GAEAi3X,KAAK,GAAK,GAChB5oZ,EAAI+uZ,KAAKjqa,GAEJkb,CACT,EACAqoZ,EAAGl1b,UAAU6vM,IAAM,SAAaJ,GAC9B,GAAI7wM,KAAK26b,SAAU,OAAO9pP,EAAIjuM,MAC9B,GAAIiuM,EAAI8pP,SAAU,OAAO36b,KAAK4C,MAC9B,IAAIyoB,EAAIrrB,KAAK0f,QACTuT,EAAI49K,EAAInxL,QACZ2L,EAAE8ra,SAAW,EACblka,EAAEkka,SAAW,EACb,IAAK,IAAIxsa,EAAQ,EAAGU,EAAEm6a,UAAYvya,EAAEuya,SAAU76a,IAC5CU,EAAE+va,OAAO,GACTnoa,EAAEmoa,OAAO,GAEX,OAAG,CACD,KAAO/va,EAAEm6a,UACPn6a,EAAE+va,OAAO,GAEX,KAAOnoa,EAAEuya,UACPvya,EAAEmoa,OAAO,GAEX,IAAI/sa,EAAIhD,EAAEwqa,IAAI5ia,GACd,GAAI5E,EAAI,EAAG,CACT,IAAIE,EAAIlD,EACRA,EAAI4H,EACJA,EAAI1E,CACN,MAAO,GAAU,IAANF,GAAyB,IAAd4E,EAAE4ja,KAAK,GAC3B,MAEFxra,EAAE4xa,KAAKhqa,EACT,CACA,OAAOA,EAAE8wa,OAAOp5a,EAClB,EACA2ra,EAAGl1b,UAAUykc,KAAO,SAAch1P,GAChC,OAAO7wM,KAAKulc,KAAK10P,GAAKxlL,EAAE+5a,KAAKv0P,EAC/B,EACAylP,EAAGl1b,UAAUokc,OAAS,WACpB,OAA+B,KAAP,EAAhBxlc,KAAKu2b,MAAM,GACrB,EACAD,EAAGl1b,UAAUskc,MAAQ,WACnB,OAA+B,KAAP,EAAhB1lc,KAAKu2b,MAAM,GACrB,EACAD,EAAGl1b,UAAU+5b,MAAQ,SAAetqP,GAClC,OAAO7wM,KAAKu2b,MAAM,GAAK1lP,CACzB,EACAylP,EAAGl1b,UAAU0kc,MAAQ,SAAehJ,GAClC91C,EAAsB,kBAAR81C,GACd,IAAIzua,EAAIyua,EAAM,GACV3xa,GAAK2xa,EAAMzua,GAAK,GAChB8c,EAAI,GAAK9c,EACb,GAAIruB,KAAKK,QAAU8qB,EAGjB,OAFAnrB,KAAK+5b,QAAQ5ua,EAAI,GACjBnrB,KAAKu2b,MAAMpra,IAAMggB,EACVnrC,KAGT,IADA,IAAIq6b,EAAQlvZ,EACHlpC,EAAIkpB,EAAa,IAAVkva,GAAep4b,EAAIjC,KAAKK,OAAQ4B,IAAK,CACnD,IAAI2gC,EAAoB,EAAhB5iC,KAAKu2b,MAAMt0b,GAEnBo4b,GADAz3Z,GAAKy3Z,KACS,GACdz3Z,GAAK,SACL5iC,KAAKu2b,MAAMt0b,GAAK2gC,CAClB,CAKA,OAJc,IAAVy3Z,IACFr6b,KAAKu2b,MAAMt0b,GAAKo4b,EAChBr6b,KAAKK,UAEAL,IACT,EACAs2b,EAAGl1b,UAAUu5b,OAAS,WACpB,OAAuB,IAAhB36b,KAAKK,QAAkC,IAAlBL,KAAKu2b,MAAM,EACzC,EACAD,EAAGl1b,UAAUy1b,KAAO,SAAchmP,GAChC,IAII5iK,EAJAkpZ,EAAWtmP,EAAM,EACrB,GAAsB,IAAlB7wM,KAAKm3b,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBn3b,KAAKm3b,UAAkBA,EAAU,OAAO,EAG5C,GAFAn3b,KAAKy5b,QAEDz5b,KAAKK,OAAS,EAChB4tC,EAAM,MACD,CACDkpZ,IACFtmP,GAAOA,GAETm2M,EAAOn2M,GAAO,SAAU,qBACxB,IAAIjuK,EAAoB,EAAhB5iC,KAAKu2b,MAAM,GACnBtoZ,EAAMrL,IAAMiuK,EAAM,EAAIjuK,EAAIiuK,GAAO,EAAI,CACvC,CACA,OAAsB,IAAlB7wM,KAAKm3b,SAA8B,GAANlpZ,EAC1BA,CACT,EACAqoZ,EAAGl1b,UAAUy0b,IAAM,SAAahlP,GAC9B,GAAsB,IAAlB7wM,KAAKm3b,UAAmC,IAAjBtmP,EAAIsmP,SAAgB,OAAQ,EACvD,GAAsB,IAAlBn3b,KAAKm3b,UAAmC,IAAjBtmP,EAAIsmP,SAAgB,OAAO,EACtD,IAAIlpZ,EAAMjuC,KAAK+lc,KAAKl1P,GACpB,OAAsB,IAAlB7wM,KAAKm3b,SAA8B,GAANlpZ,EAC1BA,CACT,EACAqoZ,EAAGl1b,UAAU2kc,KAAO,SAAcl1P,GAChC,GAAI7wM,KAAKK,OAASwwM,EAAIxwM,OAAQ,OAAO,EACrC,GAAIL,KAAKK,OAASwwM,EAAIxwM,OAAQ,OAAQ,EAEtC,IADA,IAAI4tC,EAAM,EACDhsC,EAAIjC,KAAKK,OAAS,EAAG4B,GAAK,EAAGA,IAAK,CACzC,IAAIopB,EAAoB,EAAhBrrB,KAAKu2b,MAAMt0b,GACfgxB,EAAmB,EAAf49K,EAAI0lP,MAAMt0b,GAClB,GAAIopB,IAAM4H,EAAV,CACI5H,EAAI4H,EACNgb,GAAO,EACE5iB,EAAI4H,IACbgb,EAAM,GAER,KANqB,CAOvB,CACA,OAAOA,CACT,EACAqoZ,EAAGl1b,UAAU4kc,IAAM,SAAan1P,GAC9B,OAA0B,IAAnB7wM,KAAK62b,KAAKhmP,EACnB,EACAylP,EAAGl1b,UAAUmmK,GAAK,SAAYspC,GAC5B,OAAyB,IAAlB7wM,KAAK61b,IAAIhlP,EAClB,EACAylP,EAAGl1b,UAAU6kc,KAAO,SAAcp1P,GAChC,OAAO7wM,KAAK62b,KAAKhmP,IAAQ,CAC3B,EACAylP,EAAGl1b,UAAU8kc,IAAM,SAAar1P,GAC9B,OAAO7wM,KAAK61b,IAAIhlP,IAAQ,CAC1B,EACAylP,EAAGl1b,UAAU+kc,IAAM,SAAat1P,GAC9B,OAA2B,IAApB7wM,KAAK62b,KAAKhmP,EACnB,EACAylP,EAAGl1b,UAAUkmK,GAAK,SAAYupC,GAC5B,OAA0B,IAAnB7wM,KAAK61b,IAAIhlP,EAClB,EACAylP,EAAGl1b,UAAUglc,KAAO,SAAcv1P,GAChC,OAAO7wM,KAAK62b,KAAKhmP,IAAQ,CAC3B,EACAylP,EAAGl1b,UAAUilc,IAAM,SAAax1P,GAC9B,OAAO7wM,KAAK61b,IAAIhlP,IAAQ,CAC1B,EACAylP,EAAGl1b,UAAUklc,IAAM,SAAaz1P,GAC9B,OAA0B,IAAnB7wM,KAAK62b,KAAKhmP,EACnB,EACAylP,EAAGl1b,UAAUq2b,GAAK,SAAY5mP,GAC5B,OAAyB,IAAlB7wM,KAAK61b,IAAIhlP,EAClB,EACAylP,EAAGj6a,IAAM,SAAaw0L,GACpB,OAAO,IAAI01P,EAAI11P,EACjB,EACAylP,EAAGl1b,UAAUolc,MAAQ,SAAe7sK,GAGlC,OAFAqtH,GAAQhnZ,KAAKqc,IAAK,yCAClB2qY,EAAyB,IAAlBhnZ,KAAKm3b,SAAgB,iCACrBx9J,EAAI8sK,UAAUzmc,MAAM0mc,UAAU/sK,EACvC,EACA28J,EAAGl1b,UAAUulc,QAAU,WAErB,OADA3/C,EAAOhnZ,KAAKqc,IAAK,wDACVrc,KAAKqc,IAAIuqb,YAAY5mc,KAC9B,EACAs2b,EAAGl1b,UAAUslc,UAAY,SAAmB/sK,GAE1C,OADA35R,KAAKqc,IAAMs9Q,EACJ35R,IACT,EACAs2b,EAAGl1b,UAAUylc,SAAW,SAAkBltK,GAExC,OADAqtH,GAAQhnZ,KAAKqc,IAAK,yCACXrc,KAAK0mc,UAAU/sK,EACxB,EACA28J,EAAGl1b,UAAU0lc,OAAS,SAAgBj2P,GAEpC,OADAm2M,EAAOhnZ,KAAKqc,IAAK,sCACVrc,KAAKqc,IAAIqmB,IAAI1iC,KAAM6wM,EAC5B,EACAylP,EAAGl1b,UAAU2lc,QAAU,SAAiBl2P,GAEtC,OADAm2M,EAAOhnZ,KAAKqc,IAAK,uCACVrc,KAAKqc,IAAI2gb,KAAKh9b,KAAM6wM,EAC7B,EACAylP,EAAGl1b,UAAU4lc,OAAS,SAAgBn2P,GAEpC,OADAm2M,EAAOhnZ,KAAKqc,IAAK,sCACVrc,KAAKqc,IAAIkqJ,IAAIvmK,KAAM6wM,EAC5B,EACAylP,EAAGl1b,UAAU6lc,QAAU,SAAiBp2P,GAEtC,OADAm2M,EAAOhnZ,KAAKqc,IAAK,uCACVrc,KAAKqc,IAAI4gb,KAAKj9b,KAAM6wM,EAC7B,EACAylP,EAAGl1b,UAAU8lc,OAAS,SAAgBr2P,GAEpC,OADAm2M,EAAOhnZ,KAAKqc,IAAK,sCACVrc,KAAKqc,IAAI8qb,IAAInnc,KAAM6wM,EAC5B,EACAylP,EAAGl1b,UAAUgmc,OAAS,SAAgBv2P,GAGpC,OAFAm2M,EAAOhnZ,KAAKqc,IAAK,sCACjBrc,KAAKqc,IAAIgrb,SAASrnc,KAAM6wM,GACjB7wM,KAAKqc,IAAIsiH,IAAI3+H,KAAM6wM,EAC5B,EACAylP,EAAGl1b,UAAUkmc,QAAU,SAAiBz2P,GAGtC,OAFAm2M,EAAOhnZ,KAAKqc,IAAK,sCACjBrc,KAAKqc,IAAIgrb,SAASrnc,KAAM6wM,GACjB7wM,KAAKqc,IAAIkkb,KAAKvgc,KAAM6wM,EAC7B,EACAylP,EAAGl1b,UAAUmmc,OAAS,WAGpB,OAFAvgD,EAAOhnZ,KAAKqc,IAAK,sCACjBrc,KAAKqc,IAAImrb,SAASxnc,MACXA,KAAKqc,IAAIunb,IAAI5jc,KACtB,EACAs2b,EAAGl1b,UAAUqmc,QAAU,WAGrB,OAFAzgD,EAAOhnZ,KAAKqc,IAAK,uCACjBrc,KAAKqc,IAAImrb,SAASxnc,MACXA,KAAKqc,IAAIwnb,KAAK7jc,KACvB,EACAs2b,EAAGl1b,UAAUsmc,QAAU,WAGrB,OAFA1gD,EAAOhnZ,KAAKqc,IAAK,uCACjBrc,KAAKqc,IAAImrb,SAASxnc,MACXA,KAAKqc,IAAIm4B,KAAKx0C,KACvB,EACAs2b,EAAGl1b,UAAUumc,QAAU,WAGrB,OAFA3gD,EAAOhnZ,KAAKqc,IAAK,uCACjBrc,KAAKqc,IAAImrb,SAASxnc,MACXA,KAAKqc,IAAIwpb,KAAK7lc,KACvB,EACAs2b,EAAGl1b,UAAUwmc,OAAS,WAGpB,OAFA5gD,EAAOhnZ,KAAKqc,IAAK,sCACjBrc,KAAKqc,IAAImrb,SAASxnc,MACXA,KAAKqc,IAAIu6a,IAAI52b,KACtB,EACAs2b,EAAGl1b,UAAUymc,OAAS,SAAgBh3P,GAGpC,OAFAm2M,EAAOhnZ,KAAKqc,MAAQw0L,EAAIx0L,IAAK,qBAC7Brc,KAAKqc,IAAImrb,SAASxnc,MACXA,KAAKqc,IAAIoqC,IAAIzmD,KAAM6wM,EAC5B,EACA,IAAIi3P,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAEV,SAASC,EAAO55Z,EAAOxb,GACrB/yB,KAAKkL,KAAOqjC,EACZvuC,KAAK+yB,EAAI,IAAIuja,EAAGvja,EAAG,IACnB/yB,KAAKmqB,EAAInqB,KAAK+yB,EAAEuka,YAChBt3b,KAAKmI,EAAI,IAAImub,EAAG,GAAGyN,OAAO/jc,KAAKmqB,GAAG8ya,KAAKj9b,KAAK+yB,GAC5C/yB,KAAK8gJ,IAAM9gJ,KAAKooc,MAClB,CAoCA,SAASC,IACPF,EAAOr+b,KACL9J,KACA,OACA,0EAEJ,CAgDA,SAASsoc,IACPH,EAAOr+b,KACL9J,KACA,OACA,iEAEJ,CAEA,SAASuoc,IACPJ,EAAOr+b,KACL9J,KACA,OACA,wDAEJ,CAEA,SAASwoc,IACPL,EAAOr+b,KACL9J,KACA,QACA,sEAEJ,CAiCA,SAASumc,EAAIzza,GACX,GAAiB,kBAANA,EAAgB,CACzB,IAAI21a,EAAQnS,EAAGoS,OAAO51a,GACtB9yB,KAAK8yB,EAAI21a,EAAM11a,EACf/yB,KAAKyoc,MAAQA,CACf,MACEzhD,EAAOl0X,EAAEkza,IAAI,GAAI,kCACjBhmc,KAAK8yB,EAAIA,EACT9yB,KAAKyoc,MAAQ,IAEjB,CA8KA,SAASE,EAAK71a,GACZyza,EAAIz8b,KAAK9J,KAAM8yB,GACf9yB,KAAK2qB,MAAQ3qB,KAAK8yB,EAAEwka,YAChBt3b,KAAK2qB,MAAQ,KAAO,IACtB3qB,KAAK2qB,OAAS,GAAK3qB,KAAK2qB,MAAQ,IAElC3qB,KAAKquB,EAAI,IAAIioa,EAAG,GAAGyN,OAAO/jc,KAAK2qB,OAC/B3qB,KAAKu/K,GAAKv/K,KAAK4oc,KAAK5oc,KAAKquB,EAAEu1a,OAC3B5jc,KAAK6oc,KAAO7oc,KAAKquB,EAAEu3a,OAAO5lc,KAAK8yB,GAC/B9yB,KAAK8oc,KAAO9oc,KAAK6oc,KAAKlqU,IAAI3+H,KAAKquB,GAAGs2a,MAAM,GAAGx6R,IAAInqK,KAAK8yB,GACpD9yB,KAAK8oc,KAAO9oc,KAAK8oc,KAAK1D,KAAKplc,KAAKquB,GAChCruB,KAAK8oc,KAAO9oc,KAAKquB,EAAEk4I,IAAIvmK,KAAK8oc,KAC9B,CApVAX,EAAO/mc,UAAUgnc,KAAO,WACtB,IAAItnT,EAAM,IAAIw1S,EAAG,MAEjB,OADAx1S,EAAIy1S,MAAQ,IAAI1sb,MAAMhH,KAAK8/B,KAAK3iC,KAAKmqB,EAAI,KAClC22H,CACT,EACAqnT,EAAO/mc,UAAU2nc,QAAU,SAAiBl4P,GAC1C,IACIm4P,EADA36a,EAAIwiL,EAER,GACE7wM,KAAKsK,MAAM+jB,EAAGruB,KAAK8gJ,KAGnBkoT,GADA36a,GADAA,EAAIruB,KAAKipc,MAAM56a,IACT2ua,KAAKh9b,KAAK8gJ,MACPw2S,kBACF0R,EAAOhpc,KAAKmqB,GACrB,IAAI0ra,EAAMmT,EAAOhpc,KAAKmqB,GAAK,EAAIkE,EAAE03a,KAAK/lc,KAAK+yB,GAa3C,OAZY,IAAR8ia,GACFxna,EAAEkoa,MAAM,GAAK,EACbloa,EAAEhuB,OAAS,GACFw1b,EAAM,EACfxna,EAAE4ua,KAAKj9b,KAAK+yB,QAEI,IAAZ1E,EAAEora,MACJpra,EAAEora,QAEFpra,EAAE66a,SAGC76a,CACT,EACA85a,EAAO/mc,UAAUkJ,MAAQ,SAAeshB,EAAOi6C,GAC7Cj6C,EAAMwva,OAAOp7b,KAAKmqB,EAAG,EAAG07C,EAC1B,EACAsiY,EAAO/mc,UAAU6nc,MAAQ,SAAep4P,GACtC,OAAOA,EAAI0vP,KAAKvgc,KAAKmI,EACvB,EAQA0qY,EAASw1D,EAAMF,GACfE,EAAKjnc,UAAUkJ,MAAQ,SAAeshB,EAAOllB,GAG3C,IAFA,IAAImxb,EAAO,QACPsR,EAAStmc,KAAK8mB,IAAIiC,EAAMvrB,OAAQ,GAC3B4B,EAAI,EAAGA,EAAIknc,EAAQlnc,IAC1ByE,EAAO6vb,MAAMt0b,GAAK2pB,EAAM2qa,MAAMt0b,GAGhC,GADAyE,EAAOrG,OAAS8oc,EACZv9a,EAAMvrB,QAAU,EAGlB,OAFAurB,EAAM2qa,MAAM,GAAK,OACjB3qa,EAAMvrB,OAAS,GAGjB,IAAI8E,EAAOymB,EAAM2qa,MAAM,GAEvB,IADA7vb,EAAO6vb,MAAM7vb,EAAOrG,UAAY8E,EAAO0yb,EAClC51b,EAAI,GAAIA,EAAI2pB,EAAMvrB,OAAQ4B,IAAK,CAClC,IAAImD,EAAwB,EAAjBwmB,EAAM2qa,MAAMt0b,GACvB2pB,EAAM2qa,MAAMt0b,EAAI,KAAOmD,EAAOyyb,IAAS,EAAI1yb,IAAS,GACpDA,EAAOC,CACT,CACAD,KAAU,GACVymB,EAAM2qa,MAAMt0b,EAAI,IAAMkD,EACT,IAATA,GAAcymB,EAAMvrB,OAAS,GAC/BurB,EAAMvrB,QAAU,GAEhBurB,EAAMvrB,QAAU,CAEpB,EACAgoc,EAAKjnc,UAAU6nc,MAAQ,SAAep4P,GACpCA,EAAI0lP,MAAM1lP,EAAIxwM,QAAU,EACxBwwM,EAAI0lP,MAAM1lP,EAAIxwM,OAAS,GAAK,EAC5BwwM,EAAIxwM,QAAU,EAEd,IADA,IAAIszC,EAAK,EACA1xC,EAAI,EAAGA,EAAI4uM,EAAIxwM,OAAQ4B,IAAK,CACnC,IAAI2gC,EAAmB,EAAfiuK,EAAI0lP,MAAMt0b,GAClB0xC,GAAU,IAAJ/Q,EACNiuK,EAAI0lP,MAAMt0b,GAAU,SAAL0xC,EACfA,EAAS,GAAJ/Q,GAAU+Q,EAAK,SAAW,EACjC,CAOA,OANkC,IAA9Bk9J,EAAI0lP,MAAM1lP,EAAIxwM,OAAS,KACzBwwM,EAAIxwM,SAC8B,IAA9BwwM,EAAI0lP,MAAM1lP,EAAIxwM,OAAS,IACzBwwM,EAAIxwM,UAGDwwM,CACT,EAQAgiM,EAASy1D,EAAMH,GAQft1D,EAAS01D,EAAMJ,GAQft1D,EAAS21D,EAAQL,GACjBK,EAAOpnc,UAAU6nc,MAAQ,SAAep4P,GAEtC,IADA,IAAIwpP,EAAQ,EACHp4b,EAAI,EAAGA,EAAI4uM,EAAIxwM,OAAQ4B,IAAK,CACnC,IAAI2xC,EAA0B,IAAL,EAAfi9J,EAAI0lP,MAAMt0b,IAAeo4b,EAC/B1mZ,EAAU,SAALC,EACTA,KAAQ,GACRi9J,EAAI0lP,MAAMt0b,GAAK0xC,EACf0mZ,EAAQzmZ,CACV,CAIA,OAHc,IAAVymZ,IACFxpP,EAAI0lP,MAAM1lP,EAAIxwM,UAAYg6b,GAErBxpP,CACT,EACAylP,EAAGoS,OAAS,SAAen6Z,GACzB,GAAIu5Z,EAAOv5Z,GAAQ,OAAOu5Z,EAAOv5Z,GACjC,IAAI66Z,EACJ,GAAc,SAAV76Z,EACF66Z,EAAS,IAAIf,OACR,GAAc,SAAV95Z,EACT66Z,EAAS,IAAId,OACR,GAAc,SAAV/5Z,EACT66Z,EAAS,IAAIb,MACR,IAAc,WAAVh6Z,EAGT,MAAM,IAAIv8B,MAAM,iBAAmBu8B,GAFnC66Z,EAAS,IAAIZ,CAGf,CAEA,OADAV,EAAOv5Z,GAAS66Z,EACTA,CACT,EAYA7C,EAAInlc,UAAUomc,SAAW,SAAkBn8a,GACzC27X,EAAsB,IAAf37X,EAAE8ra,SAAgB,iCACzBnwC,EAAO37X,EAAEhP,IAAK,kCAChB,EACAkqb,EAAInlc,UAAUimc,SAAW,SAAkBh8a,EAAG4H,GAC5C+zX,EAAqC,KAA7B37X,EAAE8ra,SAAWlka,EAAEkka,UAAiB,iCACxCnwC,EACE37X,EAAEhP,KAAOgP,EAAEhP,MAAQ4W,EAAE5W,IACrB,kCAEJ,EACAkqb,EAAInlc,UAAUwnc,KAAO,SAAcv9a,GACjC,OAAIrrB,KAAKyoc,MAAczoc,KAAKyoc,MAAMM,QAAQ19a,GAAGq7a,UAAU1mc,MAChDqrB,EAAE+5a,KAAKplc,KAAK8yB,GAAG4za,UAAU1mc,KAClC,EACAumc,EAAInlc,UAAUw1b,IAAM,SAAavra,GAC/B,OAAIA,EAAEsva,SACGtva,EAAE3L,QAEJ1f,KAAK8yB,EAAEyzI,IAAIl7I,GAAGq7a,UAAU1mc,KACjC,EACAumc,EAAInlc,UAAUshC,IAAM,SAAarX,EAAG4H,GAClCjzB,KAAKqnc,SAASh8a,EAAG4H,GACjB,IAAIgb,EAAM5iB,EAAEqX,IAAIzP,GAIhB,OAHIgb,EAAI4nZ,IAAI71b,KAAK8yB,IAAM,GACrBmb,EAAIgvZ,KAAKj9b,KAAK8yB,GAETmb,EAAIy4Z,UAAU1mc,KACvB,EACAumc,EAAInlc,UAAU47b,KAAO,SAAc3xa,EAAG4H,GACpCjzB,KAAKqnc,SAASh8a,EAAG4H,GACjB,IAAIgb,EAAM5iB,EAAE2xa,KAAK/pa,GAIjB,OAHIgb,EAAI4nZ,IAAI71b,KAAK8yB,IAAM,GACrBmb,EAAIgvZ,KAAKj9b,KAAK8yB,GAETmb,CACT,EACAs4Z,EAAInlc,UAAUmlK,IAAM,SAAal7I,EAAG4H,GAClCjzB,KAAKqnc,SAASh8a,EAAG4H,GACjB,IAAIgb,EAAM5iB,EAAEk7I,IAAItzI,GAIhB,OAHIgb,EAAI4oZ,KAAK,GAAK,GAChB5oZ,EAAI+uZ,KAAKh9b,KAAK8yB,GAETmb,EAAIy4Z,UAAU1mc,KACvB,EACAumc,EAAInlc,UAAU67b,KAAO,SAAc5xa,EAAG4H,GACpCjzB,KAAKqnc,SAASh8a,EAAG4H,GACjB,IAAIgb,EAAM5iB,EAAE4xa,KAAKhqa,GAIjB,OAHIgb,EAAI4oZ,KAAK,GAAK,GAChB5oZ,EAAI+uZ,KAAKh9b,KAAK8yB,GAETmb,CACT,EACAs4Z,EAAInlc,UAAU+lc,IAAM,SAAa97a,EAAGwlL,GAElC,OADA7wM,KAAKwnc,SAASn8a,GACPrrB,KAAK4oc,KAAKv9a,EAAEgra,MAAMxlP,GAC3B,EACA01P,EAAInlc,UAAUm/b,KAAO,SAAcl1a,EAAG4H,GAEpC,OADAjzB,KAAKqnc,SAASh8a,EAAG4H,GACVjzB,KAAK4oc,KAAKv9a,EAAEk1a,KAAKtta,GAC1B,EACAsza,EAAInlc,UAAUu9H,IAAM,SAAatzG,EAAG4H,GAElC,OADAjzB,KAAKqnc,SAASh8a,EAAG4H,GACVjzB,KAAK4oc,KAAKv9a,EAAEszG,IAAI1rG,GACzB,EACAsza,EAAInlc,UAAUyic,KAAO,SAAcx4a,GACjC,OAAOrrB,KAAKugc,KAAKl1a,EAAGA,EAAE3L,QACxB,EACA6mb,EAAInlc,UAAUwic,IAAM,SAAav4a,GAC/B,OAAOrrB,KAAK2+H,IAAItzG,EAAGA,EACrB,EACAk7a,EAAInlc,UAAUozC,KAAO,SAAcnpB,GACjC,GAAIA,EAAEsva,SAAU,OAAOtva,EAAE3L,QACzB,IAAI2pb,EAAOrpc,KAAK8yB,EAAEqoa,MAAM,GAExB,GADAn0C,EAAOqiD,EAAO,IAAM,GACP,IAATA,EAAY,CACd,IAAI5iZ,EAAMzmD,KAAK8yB,EAAE4P,IAAI,IAAI4zZ,EAAG,IAAI8E,OAAO,GACvC,OAAOp7b,KAAKymD,IAAIp7B,EAAGo7B,EACrB,CAGA,IAFA,IAAItb,EAAInrC,KAAK8yB,EAAE+xa,KAAK,GAChB15a,EAAI,GACAggB,EAAEwvZ,UAA2B,IAAfxvZ,EAAEgwZ,MAAM,IAC5Bhwa,IACAggB,EAAEiwZ,OAAO,GAEXp0C,GAAQ77W,EAAEwvZ,UACV,IAAI2O,EAAO,IAAIhT,EAAG,GAAGkQ,MAAMxmc,MACvBupc,EAAOD,EAAK1B,SACZ4B,EAAOxpc,KAAK8yB,EAAE+xa,KAAK,GAAGzJ,OAAO,GAC7B9yb,EAAItI,KAAK8yB,EAAEwka,YAEf,IADAhvb,EAAI,IAAIgub,EAAG,EAAIhub,EAAIA,GAAGk+b,MAAMxmc,MACW,IAAhCA,KAAKymD,IAAIn+C,EAAGkhc,GAAM3T,IAAI0T,IAC3Bjhc,EAAEy+b,QAAQwC,GAMZ,IAJA,IAAIvna,EAAIhiC,KAAKymD,IAAIn+C,EAAG6iC,GAChB9c,EAAIruB,KAAKymD,IAAIp7B,EAAG8f,EAAEy5Z,KAAK,GAAGxJ,OAAO,IACjC7sa,EAAIvuB,KAAKymD,IAAIp7B,EAAG8f,GAChBrY,EAAI3H,EACe,IAAhBoD,EAAEsna,IAAIyT,IAAa,CAExB,IADA,IAAIxoT,EAAMvyH,EACDtsB,EAAI,EAAqB,IAAlB6+I,EAAI+0S,IAAIyT,GAAarnc,IACnC6+I,EAAMA,EAAIymT,SAEZvgD,EAAO/kZ,EAAI6wB,GACX,IAAIG,EAAIjzB,KAAKymD,IAAIzkB,EAAG,IAAIs0Z,EAAG,GAAGyN,OAAOjxa,EAAI7wB,EAAI,IAC7CosB,EAAIA,EAAE+4a,OAAOn0a,GACb+O,EAAI/O,EAAEs0a,SACNh5a,EAAIA,EAAE64a,OAAOpla,GACblP,EAAI7wB,CACN,CACA,OAAOosB,CACT,EACAk4a,EAAInlc,UAAUykc,KAAO,SAAcx6a,GACjC,IAAIo+a,EAAMp+a,EAAEu6a,OAAO5lc,KAAK8yB,GACxB,OAAqB,IAAjB22a,EAAItS,UACNsS,EAAItS,SAAW,EACRn3b,KAAK4oc,KAAKa,GAAK7B,UAEf5nc,KAAK4oc,KAAKa,EAErB,EACAlD,EAAInlc,UAAUqlD,IAAM,SAAap7B,EAAGwlL,GAClC,GAAIA,EAAI8pP,SAAU,OAAO,IAAIrE,EAAG,GAAGkQ,MAAMxmc,MACzC,GAAoB,IAAhB6wM,EAAIgmP,KAAK,GAAU,OAAOxra,EAAE3L,QAChC,IACIgqb,EAAM,IAAI7/b,MAAM,IACpB6/b,EAAI,GAAK,IAAIpT,EAAG,GAAGkQ,MAAMxmc,MACzB0pc,EAAI,GAAKr+a,EACT,IAAK,IAAIppB,EAAI,EAAGA,EAAIync,EAAIrpc,OAAQ4B,IAC9Bync,EAAIznc,GAAKjC,KAAK2+H,IAAI+qU,EAAIznc,EAAI,GAAIopB,GAEhC,IAAI4iB,EAAMy7Z,EAAI,GACVh9b,EAAU,EACVi9b,EAAa,EACb7ib,EAAQ+pL,EAAIymP,YAAc,GAI9B,IAHc,IAAVxwa,IACFA,EAAQ,IAEL7kB,EAAI4uM,EAAIxwM,OAAS,EAAG4B,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAI23b,EAAO/oP,EAAI0lP,MAAMt0b,GACZiG,EAAI4e,EAAQ,EAAG5e,GAAK,EAAGA,IAAK,CACnC,IAAI40b,EAAMlD,GAAQ1xb,EAAI,EAClB+lC,IAAQy7Z,EAAI,KACdz7Z,EAAMjuC,KAAK4jc,IAAI31Z,IAEL,IAAR6uZ,GAAyB,IAAZpwb,GAIjBA,IAAY,EACZA,GAAWowb,GA1BE,MA2Bb6M,GACwC,IAAN1nc,GAAiB,IAANiG,KAC7C+lC,EAAMjuC,KAAK2+H,IAAI1wF,EAAKy7Z,EAAIh9b,IACxBi9b,EAAa,EACbj9b,EAAU,IATRi9b,EAAa,CAUjB,CACA7ib,EAAQ,EACV,CACA,OAAOmnB,CACT,EACAs4Z,EAAInlc,UAAUqlc,UAAY,SAAmB51P,GAC3C,IAAIxiL,EAAIwiL,EAAIu0P,KAAKplc,KAAK8yB,GACtB,OAAOzE,IAAMwiL,EAAMxiL,EAAE3O,QAAU2O,CACjC,EACAk4a,EAAInlc,UAAUwlc,YAAc,SAAqB/1P,GAC/C,IAAI5iK,EAAM4iK,EAAInxL,QAEd,OADAuuB,EAAI5xB,IAAM,KACH4xB,CACT,EACAqoZ,EAAGsT,KAAO,SAAc/4P,GACtB,OAAO,IAAI83P,EAAK93P,EAClB,EAcAgiM,EAAS81D,EAAMpC,GACfoC,EAAKvnc,UAAUqlc,UAAY,SAAmB51P,GAC5C,OAAO7wM,KAAK4oc,KAAK/3P,EAAIwlP,MAAMr2b,KAAK2qB,OAClC,EACAg+a,EAAKvnc,UAAUwlc,YAAc,SAAqB/1P,GAChD,IAAIxiL,EAAIruB,KAAK4oc,KAAK/3P,EAAIlyE,IAAI3+H,KAAK6oc,OAE/B,OADAx6a,EAAEhS,IAAM,KACDgS,CACT,EACAs6a,EAAKvnc,UAAUm/b,KAAO,SAAcl1a,EAAG4H,GACrC,GAAI5H,EAAEsva,UAAY1na,EAAE0na,SAGlB,OAFAtva,EAAEkra,MAAM,GAAK,EACblra,EAAEhrB,OAAS,EACJgrB,EAET,IAAIkD,EAAIlD,EAAEk1a,KAAKtta,GACX+O,EAAIzT,EAAEm2a,MAAM1kc,KAAK2qB,OAAOg0G,IAAI3+H,KAAK8oc,MAAMrE,OAAOzkc,KAAK2qB,OAAOg0G,IAAI3+H,KAAK8yB,GACnElE,EAAIL,EAAE0ua,KAAKj7Z,GAAGo5Z,OAAOp7b,KAAK2qB,OAC1BsjB,EAAMrf,EAMV,OALIA,EAAEina,IAAI71b,KAAK8yB,IAAM,EACnBmb,EAAMrf,EAAEqua,KAAKj9b,KAAK8yB,GACTlE,EAAEioa,KAAK,GAAK,IACrB5oZ,EAAMrf,EAAEoua,KAAKh9b,KAAK8yB,IAEbmb,EAAIy4Z,UAAU1mc,KACvB,EACA2oc,EAAKvnc,UAAUu9H,IAAM,SAAatzG,EAAG4H,GACnC,GAAI5H,EAAEsva,UAAY1na,EAAE0na,SAAU,OAAO,IAAIrE,EAAG,GAAGoQ,UAAU1mc,MACzD,IAAIuuB,EAAIlD,EAAEszG,IAAI1rG,GACV+O,EAAIzT,EAAEm2a,MAAM1kc,KAAK2qB,OAAOg0G,IAAI3+H,KAAK8oc,MAAMrE,OAAOzkc,KAAK2qB,OAAOg0G,IAAI3+H,KAAK8yB,GACnElE,EAAIL,EAAE0ua,KAAKj7Z,GAAGo5Z,OAAOp7b,KAAK2qB,OAC1BsjB,EAAMrf,EAMV,OALIA,EAAEina,IAAI71b,KAAK8yB,IAAM,EACnBmb,EAAMrf,EAAEqua,KAAKj9b,KAAK8yB,GACTlE,EAAEioa,KAAK,GAAK,IACrB5oZ,EAAMrf,EAAEoua,KAAKh9b,KAAK8yB,IAEbmb,EAAIy4Z,UAAU1mc,KACvB,EACA2oc,EAAKvnc,UAAUykc,KAAO,SAAcx6a,GAElC,OADUrrB,KAAK4oc,KAAKv9a,EAAEu6a,OAAO5lc,KAAK8yB,GAAG6rG,IAAI3+H,KAAKu/K,KACnCmnR,UAAU1mc,KACvB,CACD,CA/uFD,CADAurQ,EAAUkmL,EAAqBoY,IAAIt+L,GAgvFvBvrQ,KACb,EAGH,KAAM,SAEKurQ,GAEPA,EAAQ33P,QACR,SAAkBssD,GAChB,IAAIj+D,EAAGiG,EAAGC,EACNgiB,EAAI+1C,EAAM7/D,OACVypc,EAAK,EACT,IAAK7nc,EAAI,EAAGA,EAAIkoB,IAAKloB,EACnB6nc,GAAM5pY,EAAMj+D,GAAG5B,OAEjB,IAAIgS,EAAS,IAAIxI,MAAMigc,GACnBC,EAAM,EACV,IAAK9nc,EAAI,EAAGA,EAAIkoB,IAAKloB,EAAG,CACtB,IAAI+/B,EAAIk+B,EAAMj+D,GACVgS,EAAI+tB,EAAE3hC,OACV,IAAK6H,EAAI,EAAGA,EAAI+L,IAAK/L,EAAG,CACtB,IAAI+qB,EAAI5gB,EAAO03b,KAAS,IAAIlgc,MAAMoK,EAAI,GAClC8e,EAAI,EACR,IAAK5qB,EAAI,EAAGA,EAAI8L,IAAK9L,EACfA,IAAMD,IAGV+qB,EAAEF,KAAOiP,EAAE75B,IAEb,GAAQ,EAAJD,EAAO,CACT,IAAI44I,EAAM7tH,EAAE,GACZA,EAAE,GAAKA,EAAE,GACTA,EAAE,GAAK6tH,CACT,CACF,CACF,CACA,OAAOzuI,CACT,CACD,EAGH,KAAM,SAEKk5P,EAASimL,EAA0BC,GAE1ClmL,EAAQ33P,QA+GR,SAA6BypF,EAAMoiD,EAAMC,GACvC,OAAQ1yI,UAAU3M,QAChB,KAAK,EACH,OAZJ2pc,EAAS,GACTC,EAF0B7hc,EAaIi1F,EAXdj1F,EAAG8hc,GAAY,GACxBF,EAWL,KAAK,EACH,MAAoB,oBAATvqT,EACFwqT,EAAa5sW,EAAMA,EAAMoiD,GAAM,GAX9C,SAAiCr3I,EAAGC,GAGlC,OAFA2hc,EAAS,GACTC,EAAa7hc,EAAGC,EAAG6hc,GAAY,GACxBF,CACT,CASeG,CAAwB9sW,EAAMoiD,GAEzC,KAAK,EACH,OAAOwqT,EAAa5sW,EAAMoiD,EAAMC,GAAM,GACxC,QACE,MAAM,IAAI1tI,MAAM,oCAvBtB,IAA4B5J,CAyB5B,EA7HA,IAgGI4hc,EAhGAI,EAAO3Y,EAAqB,MAC5B4Y,EAAQ5Y,EAAqB,KAC7B6Y,EAAmB7Y,EAAqB,MAC5C,SAAS8Y,EAASt2b,EAAG2lN,GACnB,IAAK,IAAI1xN,EAAI,EAAGA,EAAI+L,IAAK/L,EACvB,KAAM0xN,EAAI1xN,IAAM0xN,EAAI1xN,EAAI+L,IACtB,OAAO,EAGX,OAAO,CACT,CACA,SAASu2b,EAAaC,EAAOx2b,EAAG0oC,EAAMoyD,GAGpC,IAFA,IAAIg7V,EAAM,EACNjkc,EAAQ,EACH7D,EAAI,EAAGkoB,EAAIsgb,EAAMpqc,OAAQ4B,EAAIkoB,IAAKloB,EAAG,CAC5C,IAAIgxB,EAAIw3a,EAAMxoc,GACd,IAAIsoc,EAASt2b,EAAGgf,GAAhB,CAGA,IAAK,IAAI/qB,EAAI,EAAGA,EAAI,EAAI+L,IAAK/L,EAC3By0C,EAAKotZ,KAAS92a,EAAE/qB,GAElB6mG,EAAIjpG,KAAW7D,CAJf,CAKF,CACA,OAAO6D,CACT,CACA,SAASmkc,EAAa5tb,EAAKL,EAAMywD,EAAOi+X,GACtC,IAAIvgb,EAAI9N,EAAIhc,OACRyyB,EAAI9W,EAAK3b,OACb,KAAI8pB,GAAK,GAAK2I,GAAK,GAAnB,CAGA,IAAI7e,EAAIoI,EAAI,GAAGhc,SAAW,EAC1B,KAAI4T,GAAK,GAAT,CAGA,IAAI02b,EACAC,EAAUR,EAAKS,aAAa,EAAI52b,EAAIkW,GACpC2gb,EAASV,EAAKW,YAAY5gb,GAE9B,IADAA,EAAIqgb,EAAanub,EAAKpI,EAAG22b,EAASE,IAC1B,EAAG,CACT,GAAU,IAAN72b,GAAWy2b,EACbL,EAAM1oa,KAAKxX,GACXwgb,EAASN,EAAMW,cACb/2b,EACAw4D,EACA,EACAtiD,EACAygb,EACAE,EACA,EACA3gb,EACAygb,EACAE,OAEG,CACL,IAAIG,EAAWb,EAAKS,aAAa,EAAI52b,EAAI6e,GACrCo4a,EAAUd,EAAKW,YAAYj4a,IAC/BA,EAAI03a,EAAaxub,EAAM/H,EAAGg3b,EAAUC,IAC5B,IACNb,EAAM1oa,KAAKxX,EAAI2I,GAEb63a,EADQ,IAAN12b,EACOo2b,EAAMc,eACbl3b,EACAw4D,EACA,EACAtiD,EACAygb,EACAE,EACA,EACAh4a,EACAm4a,EACAC,GAGOZ,EACPr2b,EACAw4D,EACAi+X,EACAvgb,EACAygb,EACAE,EACAh4a,EACAm4a,EACAC,GAGJd,EAAKgB,KAAKH,GACVb,EAAKgB,KAAKF,GAEd,CACAd,EAAKgB,KAAKR,GACVR,EAAKgB,KAAKN,EACZ,CACA,OAAOH,CA3DP,CAJA,CAgEF,CAEA,SAAST,EAAWjoc,EAAGiG,GACrB8hc,EAAOppc,KAAK,CAACqB,EAAGiG,GAClB,CA2BD,EAGH,KAAM,SAEKqqb,EAAyBvsW,GA8HhC,SAASqlX,EAAkBC,GACzB,OAAOA,EA5FP,SAAwBr3b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAC7D,OAAIr4C,EAAKm1J,EAAKqsR,EAAKppY,EAjCrB,SAA2BnuD,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAEhE,IADA,IAAIopY,EAAK,EAAIx3b,EACJhS,EAAIk9K,EAAI9kG,EAAKoxX,EAAKtsR,EAAIl9K,EAAI+nB,IAAM/nB,EAAGo4E,GAAMoxX,EAAI,CACpD,IAAIpmZ,EAAK8iB,EAAGvL,EAAKyd,GAAK/0B,EAAK6iB,EAAGvL,EAAKyd,EAAKpmE,GAAI8jE,EAAKwzX,EAAGtpc,GACpD8gC,EAAG,IAAK,IAAI76B,EAAIk6D,EAAIspY,EAAKD,EAAKrpY,EAAIl6D,EAAIsjc,IAAMtjc,EAAGwjc,GAAMD,EAAI,CACvD,IAAIlmZ,EAAKsc,EAAGjF,EAAK8uY,GAAKlmZ,EAAKqc,EAAGjF,EAAK8uY,EAAKz3b,GAAIgxE,EAAK5iB,EAAGn6D,GACpD,KAAIs9C,EAAKH,GAAMC,EAAKC,GAApB,CACA,IAAK,IAAIp9C,EAAIy0D,EAAK,EAAGz0D,EAAI8L,IAAK9L,EAAG,CAC/B,IAAIy8C,EAAKujB,EAAGhgE,EAAIkyE,GAAKx1B,EAAKsjB,EAAGhgE,EAAI8L,EAAIomE,GAAK31B,EAAKmd,EAAG15D,EAAIujc,GAAK/mZ,EAAKkd,EAAG15D,EAAI8L,EAAIy3b,GAC3E,GAAI7mZ,EAAKH,GAAMC,EAAKC,EAAI,SAAS7hB,CACnC,CACA,IAAI4oa,EAAKniZ,EAAGuuB,EAAIkN,GAChB,QAAW,IAAP0mX,EAAe,OAAOA,CANM,CAOlC,CACF,CACF,CAmBWC,CAAkB33b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAlBpE,SAA4BpuD,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAEjE,IADA,IAAIopY,EAAK,EAAIx3b,EACJ/L,EAAIk6D,EAAIspY,EAAKD,EAAKrpY,EAAIl6D,EAAIsjc,IAAMtjc,EAAGwjc,GAAMD,EAAI,CACpD,IAAIlmZ,EAAKsc,EAAGjF,EAAK8uY,GAAKlmZ,EAAKqc,EAAGjF,EAAK8uY,EAAKz3b,GAAIgxE,EAAK5iB,EAAGn6D,GACpD66B,EAAG,IAAK,IAAI9gC,EAAIk9K,EAAI9kG,EAAKoxX,EAAKtsR,EAAIl9K,EAAI+nB,IAAM/nB,EAAGo4E,GAAMoxX,EAAI,CACvD,IAAIpmZ,EAAK8iB,EAAGvL,EAAKyd,GAAK/0B,EAAK6iB,EAAGvL,EAAKyd,EAAKpmE,GAAI8jE,EAAKwzX,EAAGtpc,GACpD,KAAIujD,EAAKH,GAAMC,EAAKC,GAApB,CACA,IAAK,IAAIp9C,EAAIy0D,EAAK,EAAGz0D,EAAI8L,IAAK9L,EAAG,CAC/B,IAAIy8C,EAAKujB,EAAGhgE,EAAIkyE,GAAKx1B,EAAKsjB,EAAGhgE,EAAI8L,EAAIomE,GAAK31B,EAAKmd,EAAG15D,EAAIujc,GAAK/mZ,EAAKkd,EAAG15D,EAAI8L,EAAIy3b,GAC3E,GAAI7mZ,EAAKH,GAAMC,EAAKC,EAAI,SAAS7hB,CACnC,CACA,IAAI4oa,EAAKniZ,EAAGuuB,EAAIkN,GAChB,QAAW,IAAP0mX,EAAe,OAAOA,CANM,CAOlC,CACF,CACF,CAKWE,CAAmB53b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,EAErE,EAoEA,SAA2BpuD,EAAG2oD,EAAIpT,EAAIsiZ,EAAI3sR,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GACpE,OAAIr4C,EAAKm1J,EAAKqsR,EAAKppY,EACb0pY,EAlER,SAA2B73b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAEhE,IADA,IAAIopY,EAAK,EAAIx3b,EACJhS,EAAIk9K,EAAI9kG,EAAKoxX,EAAKtsR,EAAIl9K,EAAI+nB,IAAM/nB,EAAGo4E,GAAMoxX,EAAI,CACpD,IAAIpmZ,EAAK8iB,EAAGvL,EAAKyd,GAAK/0B,EAAK6iB,EAAGvL,EAAKyd,EAAKpmE,GAAI8jE,EAAKwzX,EAAGtpc,GACpD8gC,EAAG,IAAK,IAAI76B,EAAIk6D,EAAIspY,EAAKD,EAAKrpY,EAAIl6D,EAAIsjc,IAAMtjc,EAAGwjc,GAAMD,EAAI,CACvD,IAAIlmZ,EAAKsc,EAAGjF,EAAK8uY,GAAKzmX,EAAK5iB,EAAGn6D,GAC9B,KAAIq9C,GAAMF,GAAMC,EAAKC,GAArB,CACA,IAAK,IAAIp9C,EAAIy0D,EAAK,EAAGz0D,EAAI8L,IAAK9L,EAAG,CAC/B,IAAIy8C,EAAKujB,EAAGhgE,EAAIkyE,GAAKx1B,EAAKsjB,EAAGhgE,EAAI8L,EAAIomE,GAAK31B,EAAKmd,EAAG15D,EAAIujc,GAAK/mZ,EAAKkd,EAAG15D,EAAI8L,EAAIy3b,GAC3E,GAAI7mZ,EAAKH,GAAMC,EAAKC,EAAI,SAAS7hB,CACnC,CACA,IAAI4oa,EAAKniZ,EAAGy7B,EAAIlN,GAChB,QAAW,IAAP4zX,EAAe,OAAOA,CANO,CAOnC,CACF,CACF,CAoDaI,CAAkB93b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAnDtE,SAAuBpuD,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAE5D,IADA,IAAIopY,EAAK,EAAIx3b,EACJhS,EAAIk9K,EAAI9kG,EAAKoxX,EAAKtsR,EAAIl9K,EAAI+nB,IAAM/nB,EAAGo4E,GAAMoxX,EAAI,CACpD,IAAIpmZ,EAAK8iB,EAAGvL,EAAKyd,GAAK/0B,EAAK6iB,EAAGvL,EAAKyd,EAAKpmE,GAAI8jE,EAAKwzX,EAAGtpc,GACpD8gC,EAAG,IAAK,IAAI76B,EAAIk6D,EAAIspY,EAAKD,EAAKrpY,EAAIl6D,EAAIsjc,IAAMtjc,EAAGwjc,GAAMD,EAAI,CACvD,IAAIlmZ,EAAKsc,EAAGjF,EAAK8uY,GAAKzmX,EAAK5iB,EAAGn6D,GAC9B,KAAIq9C,EAAKF,GAAMC,EAAKC,GAApB,CACA,IAAK,IAAIp9C,EAAIy0D,EAAK,EAAGz0D,EAAI8L,IAAK9L,EAAG,CAC/B,IAAIy8C,EAAKujB,EAAGhgE,EAAIkyE,GAAKx1B,EAAKsjB,EAAGhgE,EAAI8L,EAAIomE,GAAK31B,EAAKmd,EAAG15D,EAAIujc,GAAK/mZ,EAAKkd,EAAG15D,EAAI8L,EAAIy3b,GAC3E,GAAI7mZ,EAAKH,GAAMC,EAAKC,EAAI,SAAS7hB,CACnC,CACA,IAAI4oa,EAAKniZ,EAAGuuB,EAAIkN,GAChB,QAAW,IAAP0mX,EAAe,OAAOA,CANM,CAOlC,CACF,CACF,CAsCaK,CAAc/3b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAG1DypY,EAxCR,SAA4B73b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAEjE,IADA,IAAIopY,EAAK,EAAIx3b,EACJ/L,EAAIk6D,EAAIspY,EAAKD,EAAKrpY,EAAIl6D,EAAIsjc,IAAMtjc,EAAGwjc,GAAMD,EAAI,CACpD,IAAIlmZ,EAAKsc,EAAGjF,EAAK8uY,GAAKzmX,EAAK5iB,EAAGn6D,GAC9B66B,EAAG,IAAK,IAAI9gC,EAAIk9K,EAAI9kG,EAAKoxX,EAAKtsR,EAAIl9K,EAAI+nB,IAAM/nB,EAAGo4E,GAAMoxX,EAAI,CACvD,IAAIpmZ,EAAK8iB,EAAGvL,EAAKyd,GAAK/0B,EAAK6iB,EAAGvL,EAAKyd,EAAKpmE,GAAI8jE,EAAKwzX,EAAGtpc,GACpD,KAAIsjD,GAAMF,GAAMC,EAAKC,GAArB,CACA,IAAK,IAAIp9C,EAAIy0D,EAAK,EAAGz0D,EAAI8L,IAAK9L,EAAG,CAC/B,IAAIy8C,EAAKujB,EAAGhgE,EAAIkyE,GAAKx1B,EAAKsjB,EAAGhgE,EAAI8L,EAAIomE,GAAK31B,EAAKmd,EAAG15D,EAAIujc,GAAK/mZ,EAAKkd,EAAG15D,EAAI8L,EAAIy3b,GAC3E,GAAI7mZ,EAAKH,GAAMC,EAAKC,EAAI,SAAS7hB,CACnC,CACA,IAAI4oa,EAAKniZ,EAAGy7B,EAAIlN,GAChB,QAAW,IAAP4zX,EAAe,OAAOA,CANO,CAOnC,CACF,CACF,CA0BaM,CAAmBh4b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAzBvE,SAAwBpuD,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,GAE7D,IADA,IAAIopY,EAAK,EAAIx3b,EACJ/L,EAAIk6D,EAAIspY,EAAKD,EAAKrpY,EAAIl6D,EAAIsjc,IAAMtjc,EAAGwjc,GAAMD,EAAI,CACpD,IAAIlmZ,EAAKsc,EAAGjF,EAAK8uY,GAAKzmX,EAAK5iB,EAAGn6D,GAC9B66B,EAAG,IAAK,IAAI9gC,EAAIk9K,EAAI9kG,EAAKoxX,EAAKtsR,EAAIl9K,EAAI+nB,IAAM/nB,EAAGo4E,GAAMoxX,EAAI,CACvD,IAAIpmZ,EAAK8iB,EAAGvL,EAAKyd,GAAK/0B,EAAK6iB,EAAGvL,EAAKyd,EAAKpmE,GAAI8jE,EAAKwzX,EAAGtpc,GACpD,KAAIsjD,EAAKF,GAAMC,EAAKC,GAApB,CACA,IAAK,IAAIp9C,EAAIy0D,EAAK,EAAGz0D,EAAI8L,IAAK9L,EAAG,CAC/B,IAAIy8C,EAAKujB,EAAGhgE,EAAIkyE,GAAKx1B,EAAKsjB,EAAGhgE,EAAI8L,EAAIomE,GAAK31B,EAAKmd,EAAG15D,EAAIujc,GAAK/mZ,EAAKkd,EAAG15D,EAAI8L,EAAIy3b,GAC3E,GAAI7mZ,EAAKH,GAAMC,EAAKC,EAAI,SAAS7hB,CACnC,CACA,IAAI4oa,EAAKniZ,EAAGuuB,EAAIkN,GAChB,QAAW,IAAP0mX,EAAe,OAAOA,CANM,CAOlC,CACF,CACF,CAYaO,CAAej4b,EAAG2oD,EAAIpT,EAAI21H,EAAIn1J,EAAIm+C,EAAIojY,EAAInpY,EAAIopY,EAAI3pY,EAAIQ,EAGnE,CAKF,CACA2jB,EAASmmX,QAAUd,GAAkB,GACrCrlX,EAAS0kX,KAAOW,GAAkB,EACnC,EAGH,KAAM,SAEK9/L,EAASimL,EAA0BC,GAE1ClmL,EAAQ33P,QA6HR,SAA0BK,EAAGw4D,EAAO2/X,EAAU/vL,EAAOgwL,EAAQC,EAAQhwL,EAAOiwL,EAAQC,IA1FpF,SAAkBv4b,EAAGnO,GACnB,IAAI2mc,EAAS,EAAI/mU,EAAKqyT,KAAKjyb,EAAQ,IAAMmO,EAAI,GAAK,EAC9Cy4b,EAAUhnU,EAAKwyT,SAASyU,EAAcF,GACtCG,EAAWvsc,OAASqsc,IACtBtC,EAAKgB,KAAKwB,GACVA,EAAaxC,EAAKW,YAAY2B,IAEhC,IAAIG,EAAannU,EAAKwyT,SAAS4U,EAAcL,GACzCM,EAAW1sc,OAASwsc,IACtBzC,EAAKgB,KAAK2B,GACVA,EAAa3C,EAAKS,aAAagC,GAEnC,CA+EEG,CAAS/4b,EAAGooQ,EAAQC,GACpB,IAEIquL,EAFAtwa,EAAM,EACN4ya,EAAW,EAAIh5b,EA0BnB,IAxBAi5b,EACE7ya,IACA,EACA,EACAgiP,EACA,EACAC,EACA8vL,EAAW,GAAK,GAChB,IACAp1Z,KAEGo1Z,GACHc,EACE7ya,IACA,EACA,EACAiiP,EACA,EACAD,EACA,GACA,IACArlO,KAGG3c,EAAM,GAAG,CAEd,IAAI8ya,GADJ9ya,GAAO,GACUsya,EACbprX,EAAOqrX,EAAWO,GAClBC,EAAWR,EAAWO,EAAO,GAC7BE,EAAST,EAAWO,EAAO,GAC3BG,EAAYV,EAAWO,EAAO,GAC9BI,EAAUX,EAAWO,EAAO,GAC5B/sa,EAAQwsa,EAAWO,EAAO,GAC1BK,EAAOnza,EAAMyya,EACbn5Z,EAAKo5Z,EAAWS,GAChB55Z,EAAKm5Z,EAAWS,EAAO,GACvB1jW,EAAe,EAAR1pE,EACPsqa,KAAkB,GAARtqa,GACV/jB,EAAMgwb,EACNoB,EAAWnB,EACXtwb,EAAOuwb,EACPmB,EAAYlB,EAOhB,GANI1iW,IACFztF,EAAMkwb,EACNkB,EAAWjB,EACXxwb,EAAOqwb,EACPqB,EAAYpB,KAEF,EAARlsa,GAUEgta,IATJC,EAASM,EACP15b,EACAstE,EACA6rX,EACAC,EACAhxb,EACAoxb,EACA75Z,QAMQ,EAARxT,IACFgta,EAAWQ,EACT35b,EACAstE,EACA6rX,EACAC,EACAhxb,EACAoxb,EACA95Z,KAEc05Z,GAVlB,CAcA,IAAIQ,EAAWR,EAASD,EACpBU,EAAYP,EAAUD,EAC1B,GAAI5C,GACF,GAAIz2b,EAAI45b,GAAYA,EAAWC,GAAaC,EAAsB,CAchE,QAAe,KAbfpD,EAASN,EAAM2D,aACb/5b,EACAstE,EACA9U,EACA2gY,EACAC,EACAhxb,EACAoxb,EACAH,EACAC,EACAvxb,EACA0xb,IAGA,OAAO/C,EAET,QACF,MACK,CACL,GAAI12b,EAAIpR,KAAK8mB,IAAIkkb,EAAUC,GAAaG,EAAoB,CAe1D,QAAe,KAdftD,EAASuD,EACPj6b,EACAstE,EACA9U,EACAq9B,EACAsjW,EACAC,EACAhxb,EACAoxb,EACAH,EACAC,EACAvxb,EACA0xb,IAGA,OAAO/C,EAET,QACF,CAAO,GAAI12b,EAAI45b,EAAWC,EAAYK,EAAa,CAejD,QAAe,KAdfxD,EAASN,EAAM+D,cACbn6b,EACAstE,EACA9U,EACAq9B,EACAsjW,EACAC,EACAhxb,EACAoxb,EACAH,EACAC,EACAvxb,EACA0xb,IAGA,OAAO/C,EAET,QACF,CACF,CACA,IAAI0D,EAAOC,EACTr6b,EACAstE,EACA6rX,EACAC,EACAhxb,EACAoxb,EACA95Z,EACAC,GAEF,GAAIw5Z,EAAWiB,EACb,GAAIp6b,GAAKo6b,EAAOjB,GAAYa,GAc1B,QAAe,KAbftD,EAAS4D,EACPt6b,EACAstE,EAAO,EACP9U,EACA2gY,EACAiB,EACAhyb,EACAoxb,EACAH,EACAC,EACAvxb,EACA0xb,IAGA,OAAO/C,OAEJ,GAAIppX,IAASttE,EAAI,GA4BtB,QAAe,KA1Bb02b,EADE7gW,EACOugW,EAAMc,eACbl3b,EACAw4D,EACA6gY,EACAC,EACAvxb,EACA0xb,EACAN,EACAiB,EACAhyb,EACAoxb,GAGOpD,EAAMc,eACbl3b,EACAw4D,EACA2gY,EACAiB,EACAhyb,EACAoxb,EACAH,EACAC,EACAvxb,EACA0xb,IAIF,OAAO/C,OAGTuC,EACE7ya,IACAknD,EAAO,EACP6rX,EACAiB,EACAf,EACAC,EACAzjW,GACA,IACA9yD,KAEFk2Z,EACE7ya,IACAknD,EAAO,EACP+rX,EACAC,EACAH,EACAiB,EACO,EAAPvkW,GACA,IACA9yD,KAIN,GAAIq3Z,EAAOhB,EAAQ,CACjB,IAAImB,EAAQC,EACVx6b,EACAstE,EACA+rX,EACAC,EACAvxb,EACA0xb,GAEE75Z,GAAM73B,EAAKixb,EAAWuB,EAAQjtX,GAC9BmtX,GAAQC,EACV16b,EACAstE,EACAitX,EACAjB,EACAvxb,EACA0xb,EACA75Z,IA4BF,GA1BI66Z,GAAQnB,GACVL,EACE7ya,IACAknD,EACA8sX,EACAhB,EACAqB,GACAnB,GACQ,EAAPzjW,IAAa4gW,EAAO,GAAK,GAC1B72Z,GACAD,GAGA05Z,EAAYkB,GACdtB,EACE7ya,IACAknD,EACA8sX,EACAhB,EACAC,EACAkB,GACQ,EAAP1kW,IAAa4gW,EAAO,GAAK,GAC1B/2Z,EACAE,IAGA26Z,EAAQ,IAAME,IA6BhB,QAAe,KA3Bb/D,EADED,EACOkE,EACP36b,EACAstE,EACA9U,EACA4hY,EACAhB,EACAhxb,EACAoxb,EACAe,EACAxyb,EACA0xb,EAAUc,IAGHK,EACP56b,EACAstE,EACA9U,EACAq9B,EACAukW,EACAhB,EACAhxb,EACAoxb,EACAe,EACAxyb,EACA0xb,EAAUc,KAIZ,OAAO7D,OAEJ,GAAI6D,EAAQE,GAAO,CACxB,IAAII,GACJ,GAAIpE,GAUF,GAAI2D,GATJS,GAAOC,EACL96b,EACAstE,EACA8sX,EACAhB,EACAhxb,EACAoxb,EACA55Z,KAEe,CACf,IAAIm7Z,GAAOL,EACT16b,EACAstE,EACA8sX,EACAS,GACAzyb,EACAoxb,EACA55Z,IAEF,GAAI0tC,IAASttE,EAAI,EAAG,CAClB,GAAIo6b,EAAOW,SAaM,KAZfrE,EAASN,EAAMW,cACb/2b,EACAw4D,EACA4hY,EACAW,GACA3yb,EACAoxb,EACAe,EACAE,GACA1yb,EACA0xb,IAGA,OAAO/C,EAGX,GAAIqE,GAAOF,SAaM,KAZfnE,EAASN,EAAMc,eACbl3b,EACAw4D,EACAuiY,GACAF,GACAzyb,EACAoxb,EACAe,EACAE,GACA1yb,EACA0xb,IAGA,OAAO/C,CAGb,MACM0D,EAAOW,IACT9B,EACE7ya,IACAknD,EAAO,EACP8sX,EACAW,GACAR,EACAE,GACA,IACA,IACA13Z,KAGAg4Z,GAAOF,KACT5B,EACE7ya,IACAknD,EAAO,EACPytX,GACAF,GACAN,EACAE,GACA,GACA,IACA13Z,KAEFk2Z,EACE7ya,IACAknD,EAAO,EACPitX,EACAE,GACAM,GACAF,GACA,GACA,IACA93Z,KAIR,OAuBIq3Z,GApBFS,GADEhlW,EACKmlW,EACLh7b,EACAstE,EACA8sX,EACAhB,EACAhxb,EACAoxb,EACA55Z,IAGKk7Z,EACL96b,EACAstE,EACA8sX,EACAhB,EACAhxb,EACAoxb,EACA55Z,OAIE0tC,IAASttE,EAAI,EAEb02b,EADE7gW,EACOugW,EAAMc,eACbl3b,EACAw4D,EACA+hY,EACAE,GACA1yb,EACA0xb,EACAW,EACAS,GACAzyb,EACAoxb,GAGOpD,EAAMc,eACbl3b,EACAw4D,EACA4hY,EACAS,GACAzyb,EACAoxb,EACAe,EACAE,GACA1yb,EACA0xb,IAIJR,EACE7ya,IACAknD,EAAO,EACP8sX,EACAS,GACAN,EACAE,GACA5kW,GACA,IACA9yD,KAEFk2Z,EACE7ya,IACAknD,EAAO,EACPitX,EACAE,GACAL,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,MACN,KAAM,eACN,KAAM,QACN,KAAM,SACN,KAAM,UACN,KAAM,gBACN,KAAM,kBACN,KAAM,QACN,KAAM,MACN,KAAM,OACN,KAAM,YACN,KAAM,kBACN,KAAM,OACN,KAAM,UACN,KAAM,OACN,KAAM,OACN,KAAM,SACN,KAAM,WACN,KAAM,UACN,KAAM,UACN,KAAM,SACN,KAAM,yBACN,KAAM,wBACN,KAAM,wBACN,KAAM,uBACN,MAAO,qBACP,MAAO,qBACP,MAAO,iBACP,MAAO,iBACP,MAAO,SACP,MAAO,uBACP,MAAO,mBACP,MAAO,iBACP,MAAO,2BACP,MAAO,iBACP,MAAO,2BACP,MAAO,cACP,MAAO,WACP,MAAO,qBACP,MAAO,gBACP,MAAO,wBACP,MAAO,yBACP,MAAO,yBACP,MAAO,sBACP,MAAO,wBACP,MAAO,QACP,MAAO,UACP,MAAO,qBACP,MAAO,2BACP,MAAO,kBACP,MAAO,iBACP,MAAO,UACP,MAAO,wBACP,MAAO,yBACP,MAAO,gBACP,MAAO,gBACP,MAAO,kBACP,MAAO,kBACP,MAAO,gBACP,MAAO,uBACP,MAAO,oBACP,MAAO,2BACP,MAAO,uBACP,MAAO,kBACP,MAAO,2BACP,MAAO,2BACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,KAAM,YACN,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,iBACP,MAAO,wBACP,MAAO,gBACP,MAAO,YACP,MAAO,YACP,MAAO,mBACP,MAAO,2BACP,MAAO,8BACP,MAAO,8BACP,MAAO,8BACP,MAAO,8BACP,MAAO,8BACP,MAAO,8BACP,MAAO,4BACP,MAAO,8BACP,MAAO,2BACP,MAAO,6BA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A,cACA,oBACA,kBACA,yBAEH,EAGH,KAAM,SAEK2gQ,GACPA,EAAQ33P,QAAU,CAEhB,MACA,OACA,MACA,MACA,OACA,OACA,OACA,QACA,MACA,QACA,OACA,OACA,UACA,WACA,MACA,QACA,MACA,OACA,cACA,QACA,QACA,eACA,2BACA,sBACA,kBACA,wBACA,eACA,gBACA,WACA,gBACA,0BACA,eACA,eACA,eACA,eACA,SACA,cACA,kBACA,mBACA,eACA,eACA,cACA,eACA,kBACA,gBACA,iBACA,4BACA,uBACA,mBACA,yBACA,gBACA,0BACA,wBACA,mBACA,iBACA,2BACA,wBACA,mBACA,kCACA,oBACA,kCACA,eACA,sBACA,0BACA,qBACA,sBACA,sBACA,gCACA,gCACA,qBACA,4BACA,qCACA,8BACA,+BACA,sCACA,+CACA,wCACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,YACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,qBACA,eACA,cACA,sBACA,6BACA,sCACA,+BACA,oBACA,cACA,qBACA,mBACA,0BACA,mCACA,4BACA,YACA,cACA,mBACA,cACA,SACA,WACA,gBACA,MACA,OACA,iBACA,MACA,MACA,MACA,MACA,YACA,MACA,WACA,MACA,UACA,UACA,UACA,OACA,MACA,aACA,OACA,OACA,MACA,YACA,eACA,gBACA,mBACA,cACA,iBACA,kBACA,sBACA,oBACA,mBACA,uBACA,qBAEH,EAGH,KAAM,SAEK23P,EAASimL,EAA0BC,GAC1C,IAAImpD,EAAOnpD,EAAqB,KAChClmL,EAAQ33P,QAAUgne,EAAK32e,QAAQ2G,OAAO,CACpC,SACA,WACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,qBACA,qBACA,cACA,eACA,eACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,qBAEH,EAGH,IAAK,SAEM2gQ,GACPA,EAAQ33P,QAAU,CAEhB,YACA,QACA,UACA,OACA,YACA,QACA,UACA,UACA,QACA,WACA,KACA,MACA,QACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,OACA,QACA,UACA,SACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,cACA,kBACA,kBACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,SACA,OACA,SACA,UACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,gBACA,sBACA,SACA,OACA,YACA,QAEH,EAGH,KAAM,SAEK23P,GACPA,EAAQ33P,QAAU,CAChB,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEH,EAGH,KAAM,SAEK23P,EAASimL,EAA0BC,GAC1C,IAAIo5D,EAAWp5D,EAAqB,MACpClmL,EAAQ33P,QACR,SAAwBf,EAAKizH,GAC3B,IAAI1hH,EAAYyme,EAAS/kX,GACrBilX,EAAS,GAGb,OADAA,GADAA,EAASA,EAAOngf,OAAOwZ,EAAUvR,KACjBjI,OAAOwZ,E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B,EAAK9R,GAAGD,GAE9BmyC,EAAU4oe,UADDhpgB,GAGa,GAExBogC,EAAUsC,KAAK61a,eAAiBn4a,EAAUm4a,eAAevud,QACzDjE,KAAK68e,QAAQxe,UAAUhkb,EAAUsC,MACjC38C,KAAK29I,MAAM41K,OAAO6wK,OAAO5/d,SAAW61C,EAAUm4a,gBACvC,CACT,CACF,EAMA,IAAIw7D,EAAc,CAChB,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF,SAASC,EAAO5igB,EAAG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B,GAEhC,IAAIsmF,EAAe0nC,KAAc1nC,aACjCtmF,EAAQq3oB,kBAAoB,SAAS5/nB,GACnC,OAAO6uE,EAAa7uE,GAAKxhB,MAAMzI,UAAU6C,MAAM6F,KAAKuhB,GAAKA,CAC3D,EACAzX,EAAQs3oB,UAAY,SAASr+kB,GAC3B,QAASA,EAAUohG,QACrB,EACAr6J,EAAQ28M,UAAY,SAAS1jJ,GAC3B,OAAOA,EAAU0hC,WAAa,YAAa1hC,EAC7C,CACF,IAIEs+kB,GAAgBj9mB,EAAW,CAC7B,gCAAgCt6B,EAASkuB,GAEvC,IAAIspnB,EAAqB,CACvB,yBACA,GACA,0BACA,GACA,iDACA,iDACA,iDACA,iDACA,GACA,uEACA,uDACA,GACA,oDACA,4BACA,2DACA,6BACA,0CACA,GACA,qCACA,qCACA,GACA,+CACA,+CACA,GACA,8BACA,uDACA,IACA,GACA,6DACA,gFACA,gFACA,8CACA,IACA,GACA,2BACA,8BACA,IACA,GACA,+CACA,8CACA,IACA,GACA,4CACA,eACA,0CACA,0CACA,0CACA,uCACA,SACA,IACA,GACA,4CACA,eACA,0CACA,0CACA,0CACA,uCACA,SACA,IACA,GACA,4DACA,sCACA,sCACA,sCACA,oCACA,IACA,GACA,2DACA,oBACA,mBACA,mBACA,mBACA,mBACA,GACA,mCACA,uCACA,2CACA,gCACA,yDACA,gCACA,kEACA,sFACA,gCACA,oEACA,wBACA,kCACA,gBACA,YACA,QACA,oBACA,IACA,GACA,2EACA,qCACA,sCACA,8BACA,GACA,0CACA,4CACA,wCACA,SACA,GACA,mBACA,4EACA,aACA,cACA,SACA,IACA,GACA,gBACA,qDACA,qDACA,qDACA,oDACA,GACA,2BACA,GACA,wDACA,GACA,kBACA,2CACA,kFACA,KACAvkpB,KAAK,MACHwkpB,EAAuB,CACzB,yBACA,GACA,0BACA,GACA,gBACA,gCACA,KACAxkpB,KAAK,MACHykpB,EAASzI,KAAsBC,kBAC/B5zgB,EAAMtN,KACN2phB,EAAoB,KACpBC,EAAa,KACbC,EAAa,IAAI1y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,CACd,IACA,IACA,IACA,GAEF,KAAQ,CACN,EACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,IACA,GAEF,MAAS,CACP,IACA,IACA,IACA,GAEF,MAAS,CACP,IACA,IACA,IACA,GAEF,OAAU,CACR,IACA,IACA,IACA,GAEF,MAAS,CACP,EACA,EACA,EACA,GAEF,eAAkB,CAChB,IACA,IACA,IACA,GAEF,KAAQ,CACN,EACA,EACA,IACA,GAEF,WAAc,CACZ,IACA,GACA,IACA,GAEF,MAAS,CACP,IACA,GACA,GACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,UAAa,CACX,GACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,EACA,GAEF,UAAa,CACX,IACA,IACA,GACA,GAEF,MAAS,CACP,IACA,IACA,GACA,GAEF,eAAkB,CAChB,IACA,IACA,IACA,GAEF,SAAY,CACV,IACA,IACA,IACA,GAEF,QAAW,CACT,IACA,GACA,GACA,GAEF,KAAQ,CACN,EACA,IACA,IACA,GAEF,SAAY,CACV,EACA,EACA,IACA,GAEF,SAAY,CACV,EACA,IACA,IACA,GAEF,cAAiB,CACf,IACA,IACA,GACA,GAEF,SAAY,CACV,IACA,IACA,IACA,GAEF,UAAa,CACX,EACA,IACA,EACA,GAEF,SAAY,CACV,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,YAAe,CACb,IACA,EACA,IACA,GAEF,eAAkB,CAChB,GACA,IACA,GACA,GAEF,WAAc,CACZ,IACA,IACA,EACA,GAEF,WAAc,CACZ,IACA,GACA,IACA,GAEF,QAAW,CACT,IACA,EACA,EACA,GAEF,WAAc,CACZ,IACA,IACA,IACA,GAEF,aAAgB,CACd,IACA,IACA,IACA,GAEF,cAAiB,CACf,GACA,GACA,IACA,GAEF,cAAiB,CACf,GACA,GACA,GACA,GAEF,cAAiB,CACf,GACA,GACA,GACA,GAEF,cAAiB,CACf,EACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,EACA,IACA,GAEF,SAAY,CACV,IACA,GACA,IACA,GAEF,YAAe,CACb,EACA,IACA,IACA,GAEF,QAAW,CACT,IACA,IACA,IACA,GAEF,QAAW,CACT,IACA,IACA,IACA,GAEF,WAAc,CACZ,GACA,IACA,IACA,GAEF,UAAa,CACX,IACA,GACA,GACA,GAEF,YAAe,CACb,IACA,IACA,IACA,GAEF,YAAe,CACb,GACA,IACA,GACA,GAEF,QAAW,CACT,IACA,EACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,IACA,GAEF,KAAQ,CACN,IACA,IACA,EACA,GAEF,UAAa,CACX,IACA,IACA,GACA,GAEF,KAAQ,CACN,IACA,IACA,IACA,GAEF,MAAS,CACP,EACA,IACA,EACA,GAEF,YAAe,CACb,IACA,IACA,GACA,GAEF,KAAQ,CACN,IACA,IACA,IACA,GAEF,SAAY,CACV,IACA,IACA,IACA,GAEF,QAAW,CACT,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,GACA,GACA,GAEF,OAAU,CACR,GACA,EACA,IACA,GAEF,MAAS,CACP,IACA,IACA,IACA,GAEF,MAAS,CACP,IACA,IACA,IACA,GAEF,SAAY,CACV,IACA,IACA,IACA,GAEF,cAAiB,CACf,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,EACA,GAEF,aAAgB,CACd,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,qBAAwB,CACtB,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,YAAe,CACb,IACA,IACA,IACA,GAEF,cAAiB,CACf,GACA,IACA,IACA,GAEF,aAAgB,CACd,IACA,IACA,IACA,GAEF,eAAkB,CAChB,IACA,IACA,IACA,GAEF,eAAkB,CAChB,IACA,IACA,IACA,GAEF,eAAkB,CAChB,IACA,IACA,IACA,GAEF,YAAe,CACb,IACA,IACA,IACA,GAEF,KAAQ,CACN,EACA,IACA,EACA,GAEF,UAAa,CACX,GACA,IACA,GACA,GAEF,MAAS,CACP,IACA,IACA,IACA,GAEF,QAAW,CACT,IACA,EACA,IACA,GAEF,OAAU,CACR,IACA,EACA,EACA,GAEF,iBAAoB,CAClB,IACA,IACA,IACA,GAEF,WAAc,CACZ,EACA,EACA,IACA,GAEF,aAAgB,CACd,IACA,GACA,IACA,GAEF,aAAgB,CACd,IACA,IACA,IACA,GAEF,eAAkB,CAChB,GACA,IACA,IACA,GAEF,gBAAmB,CACjB,IACA,IACA,IACA,GAEF,kBAAqB,CACnB,EACA,IACA,IACA,GAEF,gBAAmB,CACjB,GACA,IACA,IACA,GAEF,gBAAmB,CACjB,IACA,GACA,IACA,GAEF,aAAgB,CACd,GACA,GACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,SAAY,CACV,IACA,IACA,IACA,GAEF,YAAe,CACb,IACA,IACA,IACA,GAEF,KAAQ,CACN,EACA,EACA,IACA,GAEF,QAAW,CACT,IACA,IACA,IACA,GAEF,MAAS,CACP,IACA,IACA,EACA,GAEF,UAAa,CACX,IACA,IACA,GACA,GAEF,OAAU,CACR,IACA,IACA,EACA,GAEF,UAAa,CACX,IACA,GACA,EACA,GAEF,OAAU,CACR,IACA,IACA,IACA,GAEF,cAAiB,CACf,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,cAAiB,CACf,IACA,IACA,IACA,GAEF,cAAiB,CACf,IACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,KAAQ,CACN,IACA,IACA,GACA,GAEF,KAAQ,CACN,IACA,IACA,IACA,GAEF,KAAQ,CACN,IACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,IACA,GAEF,OAAU,CACR,IACA,EACA,IACA,GAEF,cAAiB,CACf,IACA,GACA,IACA,GAEF,IAAO,CACL,IACA,EACA,EACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,UAAa,CACX,GACA,IACA,IACA,GAEF,YAAe,CACb,IACA,GACA,GACA,GAEF,OAAU,CACR,IACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,GACA,GAEF,SAAY,CACV,GACA,IACA,GACA,GAEF,SAAY,CACV,IACA,IACA,IACA,GAEF,OAAU,CACR,IACA,GACA,GACA,GAEF,OAAU,CACR,IACA,IACA,IACA,GAEF,QAAW,CACT,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,GACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,UAAa,CACX,IACA,IACA,IACA,GAEF,KAAQ,CACN,IACA,IACA,IACA,GAEF,YAAe,CACb,EACA,IACA,IACA,GAEF,UAAa,CACX,GACA,IACA,IACA,GAEF,IAAO,CACL,IACA,IACA,IACA,GAEF,KAAQ,CACN,EACA,IACA,IACA,GAEF,QAAW,CACT,IACA,IACA,IACA,GAEF,OAAU,CACR,IACA,GACA,GACA,GAEF,UAAa,CACX,GACA,IACA,IACA,GAEF,OAAU,CACR,IACA,IACA,IACA,GAEF,MAAS,CACP,IACA,IACA,IACA,GAEF,MAAS,CACP,IACA,IACA,IACA,GAEF,WAAc,CACZ,IACA,IACA,IACA,GAEF,OAAU,CACR,IACA,IACA,EACA,GAEF,YAAe,CACb,IACA,IACA,GACA,IAGJ,SAASC,EAAezhrB,GAEtB,OADAA,EAAIY,KAAK+b,MAAM3c,IACJ,EAAI,EAAIA,EAAI,IAAM,IAAMA,CACrC,CACA,SAAS0hrB,EAAgBr4pB,GACvB,OAAOA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,CACjC,CACA,SAASs4pB,EAAc/wqB,GACrB,MAA4B,MAAxBA,EAAIA,EAAIxS,OAAS,GACZqjrB,EAAe94pB,WAAW/X,GAAO,IAAM,KAEzC6wqB,EAAet5pB,SAASvX,GACjC,CACA,SAASgxqB,EAAgBhxqB,GACvB,MAA4B,MAAxBA,EAAIA,EAAIxS,OAA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oG,KAAM,WAER,CACEpG,KAAM,QACNoG,KAAM,WAER,CACEpG,KAAM,QACNoG,KAAM,iCAER,CACEpG,KAAM,QACNoG,KAAM,kCAER,CACEpG,KAAM,QACNoG,KAAM,gCAER,CACEpG,KAAM,QACNoG,KAAM,iCAER,CACEpG,KAAM,QACNoG,KAAM,yBAER,CACEpG,KAAM,QACNoG,KAAM,iCAER,CACEpG,KAAM,SACNoG,KAAM,OAER,CACEpG,KAAM,SACNoG,KAAM,qBAER,CACEpG,KAAM,SACNoG,KAAM,mBAER,CACEpG,KAAM,SACNoG,KAAM,6BAER,CACEpG,KAAM,SACNoG,KAAM,2BAER,CACEpG,KAAM,SACNoG,KAAM,qBAER,CACEpG,KAAM,SACNoG,KAAM,mBAER,CACEpG,KAAM,SACNoG,KAAM,6BAER,CACEpG,KAAM,SACNoG,KAAM,2BAER,CACEpG,KAAM,SACNoG,KAAM,gBAER,CACEpG,KAAM,SACNoG,KAAM,8BAER,CACEpG,KAAM,SACNoG,KAAM,4BAER,CACEpG,KAAM,SACNoG,KAAM,mBAER,CACEpG,KAAM,SACNoG,KAAM,2BAER,CACEpG,KAAM,SACNoG,KAAM,8BAER,CACEpG,KAAM,SACNoG,KAAM,eAER,CACEpG,KAAM,UACNoG,KAAM,gBAER,CACEpG,KAAM,UACN6P,WAAY,EACZzJ,KAAM,cAER,CACEpG,KAAM,UACNoG,KAAM,6BAGQw4rB,GAAa,CAAC,CAC9B5+rB,KAAM,UACNoG,KAAM,aAESw4rB,GAAa,CAC5B,CACE5+rB,KAAM,QACNoG,KAAM,KAER,CACEpG,KAAM,QACNoG,KAAM,KAER,CACEpG,KAAM,QACNoG,KAAM,gCAgFV,IAAI29sB,GAA2B,CAC7B,IAAK,SACL,IAAK,SACL,EAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,KAAM,SACN,IAAK,S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d,OACZgq3B,EAAarn4B,EAAKC,QAClBmvG,EAAgBx0H,KAAK2s5B,mBAAmBlq3B,EAAMgq3B,GAC9Cpn4B,EAAQrlB,KAAK0s5B,eAAejq3B,EAAMgq3B,GAClC/D,EAAQxl5B,OAAOu6B,eAAe6u3B,EAAgBlr5B,WAAWshC,IAAI54B,KAAK9J,KAAMolB,EAAM/d,EAAQ+iM,GAC1F,GAAe,MAAXA,EAAgB,CAClB,IAAIoktB,EAAa9F,EAAMjm3B,OACnBgs3B,EAAmB/F,EAAMrj4B,QACzBqp4B,EAA8B1u5B,KAAK2s5B,mBAAmB6B,EAAYnp4B,GAClEsp4B,EAAsBn6xB,GAAiBk6xB,EAA8B1u5B,KAAKy0H,aAAa+5xB,EAAYnp4B,GAAO,GAAQrlB,KAAKy0H,aAAa+5xB,EAAYnp4B,GAAO,GACvJsp4B,IAAwBF,GAC1B/F,EAAMrj4B,MAAMsp4B,EAEhB,CACA,OAAOjG,CACT,IAEF,IAAI6F,EAAc,sDACdhC,EAAsB,eACtBK,EAAoB,kFACpBE,EAA0B,4EAC9B/04B,EAAKu7G,UAAUs7xB,QAAUtC,EACzB,IAAIW,EAAmB,CACrB,KACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,MAEEK,EAAmB,CACrB,KACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QAwHJ,IAIEuB,GAAiB3g3B,EAAW,CAC9B,0DACE,IAAIn2B,EAAO4s4B,KACP1h5B,EAASk/lB,KACb,SAAS2sT,EAAejJ,GACtB7l5B,KAAKozC,MAAQpzC,KAAK6k5B,gBAAgBgB,GAAY,KAAO7l5B,KAAK6k5B,gBAAgB,GAC5E,CACAiK,EAAe1t5B,UAAY,IAAI2W,EAAK4w4B,aACpC1l5B,EAAO6r5B,EAAe1t5B,UAAW,CAG/B8J,KAAM,SAGN084B,QAAS,UAGTC,aAAc,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAG/DF,aAAa,EAGbZ,SAAU,EAGVI,WAAY,EAGZH,OAAQ,EAgBRnC,gBAAiB,CAEf,GAAI,CACF354B,KAAM,SACN+74B,OAAQ,CAAC,MAAO,MAChBa,WAAY,CACV,QACA,QACA,SACA,QACA,OACA,SACA,WACA,YACA,UACA,QACA,OACA,SACA,kBAEFC,gBAAiB,CACf,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,OACA,OAEFC,SAAU,CAAC,WAAY,SAAU,WAAY,UAAW,QAAS,QAAS,aAC1EC,cAAe,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC1DC,Y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,SAASz22B,EAAI/iB,EAAG4H,GACd,OAAO5H,EAAI4H,EAAIpwB,KAAK2/B,MAAMnX,EAAI4H,EAChC,CACA,SAASw93B,EAAKpl4B,EAAG4H,GACf,OAAOmb,EAAI/iB,EAAI,EAAG4H,GAAK,CACzB,CA1XAu93B,EAAcpv5B,UAAY,IAAI2W,EAAK4w4B,aACnC1l5B,EAAOut5B,EAAcpv5B,UAAW,CAG9B8J,KAAM,QAGN084B,QAAS,SAGTD,aAAa,EAGbZ,SAAU,EAGVI,WAAY,EAGZH,OAAQ,EAkBRnC,gBAAiB,CAEf,GAAI,CACF354B,KAAM,QACN+74B,OAAQ,CAAC,GAAI,IACba,WAAY,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,gBAAiB,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,SAAU,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,cAAe,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,YAAa,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF10xB,OAAQ,KACR20xB,WAAY,WACZC,SAAU,EACVC,OAAO,EACPqI,WAAY,CACV,MACA,KACA,MACA,OACA,OACA,MACA,SACA,MACA,OACA,MACA,MACA,MACA,MACA,SACA,OACA,MACA,QACA,QACA,SAEFC,cAAe,CACb,OACA,KACA,QACA,MACA,WACA,OACA,QACA,QACA,QACA,KACA,QACA,KACA,MACA,KACA,MACA,MACA,QACA,SACA,QACA,UASN1K,SAAU,SAASxj3B,GAEjB,OADAziC,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AC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACtD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,G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AAK,EAC7C,OAAO5D,KAAKotF,QAAQ3qD,EAAMpd,EAAO4iB,EACnC,EAOAlD,QAAS,SAAStC,EAAMpd,EAAO4iB,GAC7B,IAAIgmT,EAAQl2U,EAAK4w4B,aAAavn5B,UAAU2jC,QAAQ13B,MAAMrN,KAAMgN,WAK5D,OAJIihV,IAEFA,GADAxrT,EAAoB,MAAbA,EAAKA,KAAeA,EAAKA,KAAOA,IACvB,MAAQA,GAAQ,MAE3BwrT,CACT,EASAi0W,UAAW,SAASz/pB,EAAMpd,EAAO4iB,EAAK7rB,GACpC,IAAIgJ,EAAOrN,EAAK4w4B,aAAavn5B,UAAU8gsB,UAAU70rB,MAAMrN,KAAMgN,WAC7D,GAAIoY,EAAKqd,KAAO,MAAQrd,EAAKqd,KAAO,KAClC,MAAMrmB,EAAM/Y,QAAQ,QAASrD,KAAKozC,MAAMloC,MAE1C,OAAOka,CACT,IAEFrN,EAAKu7G,UAAUqhyB,UAAYL,EAC3B,IAAIG,EAAgB,CAClB,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MAEA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MAEJ,IAIEG,GAAoB1m3B,EAAW,CACjC,wCAAwCt6B,EAASkuB,GAE/CA,EAAOluB,QAAU+w4B,KACjBkE,KACAuD,KACAyC,KACAG,KACAK,KACAG,KACAS,KACAG,KACAG,KACAkB,KACAG,KACAoB,KACAY,KACAM,KACAG,IACF,IAIEQ,GAAqB3m3B,EAAW,CAClC,oCAAoCt6B,EAASkuB,GAE3C,IAAIwxF,EAAYshyB,KACZ1lxB,EAAMtN,KACNx0B,EAAYhW,IACZoB,EAAU4U,EAAU5U,QACpBN,EAASkV,EAAUlV,OACnBqe,EAAa,CACfhL,QAAS,aACT7gF,OAAQwkH,EAAIpM,eAAexP,EAAUA,WACrCjoB,SAAU,OACVI,KAAM,aAEJivE,EAAiB,SAASvE,EAAQlpC,EAAS/vF,EAAMuuD,GACnD,IAAIE,EAAQ,CAAC,EAEb,OADAA,EAAMzuD,GAAQq5D,EACP24B,EAAI94B,OAAO+/D,EAAQlpC,EAASthC,EAAOzuD,EAAMuuD,EAClD,EAyDIqpzB,EAAU,KACVC,EAAqB,CACvB9g5B,EAAG,CAAE,EAAG,KAAM,IAAK,KAEnB1R,EAAG,CAAE,EAAG,IAAK,IAAK,KAElB8oB,EAAG,CAAE,EAAG,IAAK,IAAK,KAElBic,EAAG,CAAE,EAAG,KAAM,IAAK,MAEnBp/B,EAAG,CAAE,EAAG,KAAM,IAAK,KAEnBgrF,EAAG,CAAE,EAAG,KAAM,IAAK,KAEnBpgE,EAAG,CAAE,EAAG,KAAM,IAAK,KAEnBG,EAAG,CAAE,EAAG,IAAK,IAAK,KAElB2oZ,EAAG,CAAE,EAAG,KAAM,IAAK,MAEnBvza,EAAG,CAAE,EAAG,KAAM,IAAK,MAEnBigC,EAAG,CAAE,EAAG,OAAQ,IAAK,QAErB02B,EAAG811B,EAEHly3B,EAAGky3B,EAIH9y3B,EAAG,CAAE,EAAG,gBAAiB,IAAK,iBAC9B55B,EAAG,CAAE,EAAG,aAAc,IAAK,eA8BzB4s5B,EAAU,CAAC,EACf,SAASC,EAAO5hyB,GACd,IAAI6hyB,EAAcF,EAAQ3hyB,GAC1B,OAAI6hyB,IACJA,EAAcF,EAAQ3hyB,GAAYC,EAAU1yF,SAASyyF,GAEvD,CACA,SAAS8hyB,EAAUlryB,GACjB,OAAOilB,EAAInkC,WAAW,CAAC,EAAGwL,EAAY,CAAE0T,eAC1C,CACA,SAASmryB,EAA0B72xB,GACjC,MAAO,yCAA2CA,EAAQ,cAC5D,CACA,IAAI82xB,EAAS,CACX1yuB,UAAWwyuB,EAAUC,EAA0B,OAE7C5+kB,EAAUtnM,EAAInkC,WAAW,CAAC,EAAGsqzB,EAAQ,CACvCzyuB,UAAWuyuB,EAAUC,EAA0B,QAE7C3+kB,EAAWvnM,EAAInkC,WAAW,CAAC,EAAGyrO,EAAS,CACzC8qM,UAAW6zY,EAAUC,EAA0B,QAE7Cn3B,EAAYk3B,EAAU,CACxB,0DACA,6DACA,gEACA,uCACAtu5B,KAAK,MACPi7B,EAAOluB,QAAU,CACf4+G,WAAY,YACZtnH,KAAM,YACNulH,OAAQ,CACN1H,OAAQ,CACNkxG,QAASu8G,EACThuC,IAAKguC,EACL58G,IAAK48G,EACLopW,QAASppW,EACTq6L,QAASr6L,EACT5jQ,UAAW4jQ,EACX8+kB,YAAa9+kB,EACb++kB,mBAAoB/+kB,EACpBG,UAAWF,EACXomK,QAASpmK,EACT++kB,OAAQ/+kB,EACRv8G,UAAWs8G,EACX38G,KAAMw7rB,EACNt7rB,YAAas7rB,GAEfnr1B,OAAQ,CACNmpD,SAAU8hyB,EAAU,CAClB,+DACA,yCACAtu5B,KAAK,OAETgrH,SAAU,CACR8jB,MAAO,CAAEtiB,SAAU4qwB,GACnBrovB,MAAO,CAAEviB,SAAU4qwB,GACnBtgvB,MAAO,CACLhI,MAAO,CAAEtiB,SAAU4qwB,GAOnBrovB,MAAO,CAAEviB,SAAU4qwB,GACnBrgvB,MAAO,CAAEvqB,SAAU4qwB,IAErBhkuB,MAAO,CACLC,WAAY,CAAE7mC,SAAU4qwB,MAI9BnuwB,iBAAkBvZ,EAClBmkE,iBACA+6uB,oBAhMwB,SAASl+yB,EAASC,EAAU0rJ,EAAQh5L,GAC5D,IAAK,IAAIjoE,EAAI,EAAGA,EAAIihQ,EAAO7iQ,OAAQ4B,IACjCy4K,EAAenjE,EAASC,EAAU0rJ,EAAOjhQ,GAAK,WAAYioE,EAAOmpD,SAErE,EA6LEqiyB,iBA3KqB,CACrB9G,QAAS,aACTG,OAAQ,aACRK,UAAW,aACXG,UAAW,aACXS,OAAQ,aACRG,QAAS,aACTG,OAAQ,aACRkB,MAAO,aACPG,WAAY,aACZoB,OAAQ,aACRW,QAAS,aACTC,OAAQ,aACRM,OAAQ,aACRG,KAAM,aACNO,UAAW,cA6JXgB,eA7LmB,CACnB/G,QAAS,aACTG,OAAQ,aACRK,UAAW,aACXG,UAAW,aACXS,OAAQ,aACRG,QAAS,aACTG,OAAQ,aACRkB,MAAO,aACPG,WAAY,aACZoB,OAAQ,aACRW,QAAS,aACTC,OAAQ,aACRM,OAAQ,aACRG,KAAM,aACNO,UAAW,cA+KXiB,UA5Jc,CACdhH,QAAS,CAAC,aAAc,cACxBG,OAAQ,CAAC,aAAc,cACvBK,UAAW,CAAC,aAAc,cAC1BG,UAAW,CAAC,aAAc,cAC1BS,OAAQ,CAAC,aAAc,cACvBG,QAAS,CAAC,aAAc,cACxBG,OAAQ,CAAC,aAAc,cACvBkB,MAAO,CAAC,aAAc,cACtBG,WAAY,CAAC,aAAc,cAC3BoB,OAAQ,CAAC,aAAc,cACvBW,QAAS,CAAC,aAAc,cACxBC,OAAQ,CAAC,aAAc,cACvBM,OAAQ,CAAC,aAAc,cACvBG,KAAM,CAAC,aAAc,cACrBO,UAAW,CAAC,aAAc,eA8I1BM,SACAY,YA5GF,SAAqB//xB,EAAK1tH,EAAGirH,GAK3B,IAJA,IAGIyiyB,EAAUC,EAAWC,EAAcC,EAAcC,EAHjD9gyB,EAASvyH,KAAK2/B,OAAOp6B,EAAI,KAAQ8vF,GAAUM,EAC3C87B,EAAQ2gyB,EAAO5hyB,GAAUiC,OAAOF,GAChCnzH,EAAI,GAE8B,KAA9BA,EAAI6zH,EAAIpyH,QAAQ,IAAKzB,KAEV,OADjB6z5B,EAAWhgyB,EAAIxrG,OAAOroB,EAAI,KACW,MAAb6z5B,GAAiC,MAAbA,GAC1CE,EAAe,EACfD,EAAYjgyB,EAAIxrG,OAAOroB,EAAI,GACV,MAAb6z5B,IAAkBA,EAAW,OAEjCC,EAAYD,EACZA,EAAW,IACXE,EAAe,IAEjBC,EAAelB,EAAmBgB,KAIFG,EAA1BD,IAAiBnB,EAA2BA,EACzBxgyB,EAAMiB,WAAW0gyB,EAAaH,IACrDhgyB,EAAMA,EAAIhyH,OAAO,EAAG7B,GAAKi05B,EAAkBpgyB,EAAIhyH,OAAO7B,EAAI+z5B,GAC1D/z5B,GAAKi05B,EAAgB715B,QALrB4B,GAAK+z5B,EAQT,OAAOlgyB,CACT,EAmFF,IAIEqgyB,GAAqBjo3B,EAAW,CAClC,mBAAmBt6B,EAASkuB,GAE1BA,EAAOluB,QAAUih5B,IACnB,IAIEuB,GAAelo3B,EAAW,CAC5B,eAAet6B,EAASkuB,GACtB,IAAIiL,EAASuyS,KACbvyS,EAAOslF,SAAS,CAEdm6N,KACA2K,KACAsX,KACAwC,KACAa,KACAgP,KACAQ,KACA8H,KACA0F,KACAyC,KACAsC,KACAgxC,KACA2K,KACA4Z,KACA2F,KACAe,KACAuB,KACAi7F,KACA+D,KACA0L,KACAO,KACAa,KACAgB,KACA6B,KACAswD,KACAgB,KACAiqD,KACA+G,KACAiU,KACAiP,KACA80J,KACAmB,KACAiB,KACAgjC,KACAQ,KACAa,KACA0nB,KACAiH,KACAoN,KACAqN,KACAe,KACAuD,KACAsC,KACAM,KACA0O,KACAiB,KACA8B,KACA4B,KAEAyR,OAEFr03B,EAAOluB,QAAUm5B,CACnB,IAEF,OAAOqp3B,IACR,EA9g3PY,GA4l3Pb,OADAx23B,OAAOmN,OAASA,EACTA,CAAM,EAnm3PuBjL,EAAOluB,QACxCkuB,EAAOluB,QAAUi5B,IAEjBjoC,EAAKq6J,WAAapyH,iCCFrB,IAAIwp3B,EAAuB1i5B,EAAQ,MAEnC,SAAS2i5B,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3Cx03B,EAAOluB,QAAU,WACf,SAAS05Y,EAAKvoZ,EAAO+e,EAAUC,EAAeC,EAAUC,EAAcwy4B,GACpE,GAAIA,IAAWJ,EAAf,CAIA,IAAI7m3B,EAAM,IAAIx9B,MACZ,mLAKF,MADAw9B,EAAItkC,KAAO,sBACLskC,CAPN,CAQF,CAEA,SAASkn3B,IACP,OAAOppgB,CACT,CAHAA,EAAKqpgB,WAAarpgB,EAMlB,IAAIspgB,EAAiB,CACnBvy5B,MAAOipZ,EACPupgB,OAAQvpgB,EACRwpgB,KAAMxpgB,EACNxhZ,KAAMwhZ,EACNnoY,OAAQmoY,EACRxxX,OAAQwxX,EACRz7Y,OAAQy7Y,EACRjuU,OAAQiuU,EAERn4S,IAAKm4S,EACLypgB,QAASL,EACT9v5B,QAAS0mZ,EACT0pgB,YAAa1pgB,EACb2pgB,WAAYP,EACZ/x5B,KAAM2oZ,EACN4pgB,SAAUR,EACVjghB,MAAOighB,EACPS,UAAWT,EACXpk4B,MAAOok4B,EACPU,MAAOV,EAEPW,eAAgBd,EAChBC,kBAAmBF,GAKrB,OAFAM,EAAeU,UAAYV,EAEpBA,CACT,kBC/CE903B,EAAOluB,QAAUD,EAAQ,KAARA,0BCNnBmuB,EAAOluB,QAFoB,4ECGd,IAAI0zD,EAAG3zD,EAAQ,MAAS6+Z,EAAG7+Z,EAAQ,MAAa,SAASof,EAAE1H,GAAG,IAAI,IAAI4H,EAAE,yDAAyD5H,EAAE2W,EAAE,EAAEA,EAAEh1B,UAAU3M,OAAO2hC,IAAI/O,GAAG,WAAWgL,mBAAmBjxB,UAAUg1B,IAAI,MAAM,yBAAyB3W,EAAE,WAAW4H,EAAE,gHAAgH,CAAC,IAAIk7C,EAAG,IAAInyC,IAAI6se,EAAG,CAAC,EAAE,SAASE,EAAG19e,EAAE4H,GAAGirC,EAAG7yC,EAAE4H,GAAGirC,EAAG7yC,EAAE,UAAU4H,EAAE,CACxb,SAASirC,EAAG7yC,EAAE4H,GAAW,IAAR41e,EAAGx9e,GAAG4H,EAAM5H,EAAE,EAAEA,EAAE4H,EAAE5yB,OAAOgrB,IAAI8iD,EAAGzrC,IAAIzP,EAAE5H,GAAG,CAC5D,IAAI2ozB,IAAK,qBAAqBp0yB,QAAQ,qBAAqBA,OAAOl+B,UAAU,qBAAqBk+B,OAAOl+B,SAASC,eAAeyz0B,EAAGly0B,OAAO9B,UAAUsa,eAAe8sD,EAAG,8VAA8V0rwB,EACpgB,CAAC,EAAEnkpB,EAAG,CAAC,EACiN,SAASztJ,EAAEjX,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,EAAE0X,GAAGhjC,KAAKu35B,gBAAgB,IAAItk4B,GAAG,IAAIA,GAAG,IAAIA,EAAEjzB,KAAKw35B,cAAcvj5B,EAAEjU,KAAKy35B,mBAAmBl15B,EAAEvC,KAAK035B,gBAAgB113B,EAAEhiC,KAAK+ymB,aAAa1nlB,EAAErrB,KAAK8E,KAAKmuB,EAAEjzB,KAAK235B,YAAYrs4B,EAAEtrB,KAAK435B,kBAAkB503B,CAAC,CAAC,IAAI16B,EAAE,CAAC,EACpb,uIAAuIgC,MAAM,KAAK/I,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe9pB,SAAQ,SAAS8pB,GAAG,IAAI4H,EAAE5H,EAAE,GAAG/iB,EAAE2qB,GAAG,IAAIqP,EAAErP,EAAE,GAAE,EAAG5H,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAAS9pB,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAEta,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiBxP,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8O/gB,MAAM,KAAK/I,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAEta,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAYxP,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAY9pB,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQ9pB,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAAS9pB,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAEta,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIm3D,EAAG,gBAAgB,SAAS8gO,EAAG39Q,GAAG,OAAOA,EAAE,GAAGmR,aAAa,CAIxZ,SAASurC,EAAG18C,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE+F,EAAEoT,eAAeuX,GAAG3qB,EAAE2qB,GAAG,MAAQ,OAAO1wB,EAAE,IAAIA,EAAEuC,KAAKmP,KAAK,EAAEgf,EAAE5yB,SAAS,MAAM4yB,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,MAP9I,SAAY5H,EAAE4H,EAAE+O,EAAE/tB,GAAG,GAAG,OAAOgf,GAAG,qBAAqBA,GADqE,SAAY5H,EAAE4H,EAAE+O,EAAE/tB,GAAG,GAAG,OAAO+tB,GAAG,IAAIA,EAAEl9B,KAAK,OAAM,EAAG,cAAcmuB,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGhf,IAAc,OAAO+tB,GAASA,EAAEu13B,gBAAmD,WAAnCls4B,EAAEA,EAAEta,cAAc9M,MAAM,EAAE,KAAsB,UAAUonB,GAAE,QAAQ,OAAM,EAAG,CAC/T+iD,CAAG/iD,EAAE4H,EAAE+O,EAAE/tB,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAO+tB,EAAE,OAAOA,EAAEl9B,MAAM,KAAK,EAAE,OAAOmuB,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOwgB,MAAMxgB,GAAG,KAAK,EAAE,OAAOwgB,MAAMxgB,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOtEsizB,CAAGtizB,EAAE+O,EAAEz/B,EAAE0R,KAAK+tB,EAAE,MAAM/tB,GAAG,OAAO1R,EARxK,SAAY8oB,GAAG,QAAG+pzB,EAAGtr0B,KAAKimL,EAAG1kK,KAAe+pzB,EAAGtr0B,KAAKoq0B,EAAG7ozB,KAAem9C,EAAGnhD,KAAKgE,GAAU0kK,EAAG1kK,IAAG,GAAG6ozB,EAAG7ozB,IAAG,GAAS,GAAE,CAQwD4ozB,CAAGhhzB,KAAK,OAAO+O,EAAE3W,EAAEqwB,gBAAgBzoB,GAAG5H,EAAEzpB,aAAaqxB,EAAE,GAAG+O,IAAIz/B,EAAEm15B,gBAAgBrs4B,EAAE9oB,EAAEwwmB,cAAc,OAAO/wkB,EAAE,IAAIz/B,EAAEuC,MAAQ,GAAGk9B,GAAG/O,EAAE1wB,EAAEi15B,cAAcvj5B,EAAE1R,EAAEk15B,mBAAmB,OAAOz13B,EAAE3W,EAAEqwB,gBAAgBzoB,IAAa+O,EAAE,KAAXz/B,EAAEA,EAAEuC,OAAc,IAAIvC,IAAG,IAAKy/B,EAAE,GAAG,GAAGA,EAAE/tB,EAAEoX,EAAE0nB,eAAe9+B,EAAEgf,EAAE+O,GAAG3W,EAAEzpB,aAAaqxB,EAAE+O,KAAI,CAHjd,0jCAA0jC13B,MAAM,KAAK/I,SAAQ,SAAS8pB,GAAG,IAAI4H,EAAE5H,EAAEhoB,QAAQ6kE,EACzmC8gO,GAAI1gS,EAAE2qB,GAAG,IAAIqP,EAAErP,EAAE,GAAE,EAAG5H,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2E/gB,MAAM,KAAK/I,SAAQ,SAAS8pB,GAAG,IAAI4H,EAAE5H,EAAEhoB,QAAQ6kE,EAAG8gO,GAAI1gS,EAAE2qB,GAAG,IAAIqP,EAAErP,EAAE,GAAE,EAAG5H,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAa9pB,SAAQ,SAAS8pB,GAAG,IAAI4H,EAAE5H,EAAEhoB,QAAQ6kE,EAAG8gO,GAAI1gS,EAAE2qB,GAAG,IAAIqP,EAAErP,EAAE,GAAE,EAAG5H,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAe9pB,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAEta,cAAc,MAAK,GAAG,EAAG,IACldzI,EAAEuv5B,UAAU,IAAIv13B,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAc/gC,SAAQ,SAAS8pB,GAAG/iB,EAAE+iB,GAAG,IAAIiX,EAAEjX,EAAE,GAAE,EAAGA,EAAEta,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAIipD,EAAGsN,EAAGww1B,mDAAmDv51B,EAAG7gC,OAAOwN,IAAI,iBAAiBm9B,EAAG3qC,OAAOwN,IAAI,gBAAgBqgF,EAAG7tF,OAAOwN,IAAI,kBAAkB4riB,EAAGp5iB,OAAOwN,IAAI,qBAAqBkpyB,EAAG12yB,OAAOwN,IAAI,kBAAkBwpyB,EAAGh3yB,OAAOwN,IAAI,kBAAkBupyB,EAAG/2yB,OAAOwN,IAAI,iBAAiBgqyB,EAAGx3yB,OAAOwN,IAAI,qBAAqB4pyB,EAAGp3yB,OAAOwN,IAAI,kBAAkB0pyB,EAAGl3yB,OAAOwN,IAAI,uBAAuB4qyB,EAAGp4yB,OAAOwN,IAAI,cAAcyqyB,EAAGj4yB,OAAOwN,IAAI,cAAcxN,OAAOwN,IAAI,eAAexN,OAAOwN,IAAI,0BACje,IAAIqpyB,EAAG72yB,OAAOwN,IAAI,mBAAmBxN,OAAOwN,IAAI,uBAAuBxN,OAAOwN,IAAI,eAAexN,OAAOwN,IAAI,wBAAwB,IAAI2qyB,EAAGn4yB,OAAOE,SAAS,SAAS63yB,EAAGpqzB,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEwqzB,GAAIxqzB,EAAEwqzB,IAAKxqzB,EAAE,eAA0CA,EAAE,IAAI,CAAC,IAAoB4pzB,EAAhB3tyB,EAAEpkC,OAAOD,OAAU,SAASqx0B,EAAGjpzB,GAAG,QAAG,IAAS4pzB,EAAG,IAAI,MAAMjj0B,OAAQ,CAAC,MAAMgwB,GAAG,IAAI/O,EAAE+O,EAAE2rC,MAAMxqE,OAAOsG,MAAM,gBAAgBwr0B,EAAGhizB,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAKgizB,EAAG5pzB,CAAC,CAAC,IAAIqqzB,GAAG,EACzb,SAASP,EAAG9pzB,EAAE4H,GAAG,IAAI5H,GAAGqqzB,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAI1zyB,EAAEhwB,MAAM+l5B,kBAAkB/l5B,MAAM+l5B,uBAAkB,EAAO,IAAI,GAAG9k4B,EAAE,GAAGA,EAAE,WAAW,MAAMjhB,OAAQ,EAAE9O,OAAOgR,eAAe+e,EAAE7xB,UAAU,QAAQ,CAAC4H,IAAI,WAAW,MAAMgJ,OAAQ,IAAI,kBAAkB09H,SAASA,QAAQ82Q,UAAU,CAAC,IAAI92Q,QAAQ82Q,UAAUvzX,EAAE,GAAG,CAAC,MAAM7H,GAAG,IAAInX,EAAEmX,CAAC,CAACskH,QAAQ82Q,UAAUn7X,EAAE,GAAG4H,EAAE,KAAK,CAAC,IAAIA,EAAEnpB,MAAM,CAAC,MAAMshB,GAAGnX,EAAEmX,CAAC,CAACC,EAAEvhB,KAAKmpB,EAAE7xB,UAAU,KAAK,CAAC,IAAI,MAAM4Q,OAAQ,CAAC,MAAMoZ,GAAGnX,EAAEmX,CAAC,CAACC,GAAG,CAAC,CAAC,MAAMD,GAAG,GAAGA,GAAGnX,GAAG,kBAAkBmX,EAAEuiD,MAAM,CAAC,IAAI,IAAIprE,EAAE6oB,EAAEuiD,MAAMrjE,MAAM,MACnfghB,EAAErX,EAAE05D,MAAMrjE,MAAM,MAAM04B,EAAEzgC,EAAElC,OAAO,EAAEyS,EAAEwY,EAAEjrB,OAAO,EAAE,GAAG2iC,GAAG,GAAGlwB,GAAGvQ,EAAEygC,KAAK1X,EAAExY,IAAIA,IAAI,KAAK,GAAGkwB,GAAG,GAAGlwB,EAAEkwB,IAAIlwB,IAAI,GAAGvQ,EAAEygC,KAAK1X,EAAExY,GAAG,CAAC,GAAG,IAAIkwB,GAAG,IAAIlwB,EAAG,MAAMkwB,IAAQ,IAAJlwB,GAASvQ,EAAEygC,KAAK1X,EAAExY,GAAG,CAAC,IAAI3K,EAAE,KAAK5F,EAAEygC,GAAG3/B,QAAQ,WAAW,QAA6F,OAArFgoB,EAAE5H,aAAatb,EAAE0zX,SAAS,iBAAiB1zX,EAAEA,EAAE9E,QAAQ,cAAcgoB,EAAE5H,cAAqBtb,CAAC,QAAO,GAAG66B,GAAG,GAAGlwB,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ4i0B,GAAG,EAAG1j0B,MAAM+l5B,kBAAkB/13B,CAAC,CAAC,OAAO3W,EAAEA,EAAEA,EAAE5H,aAAa4H,EAAEngB,KAAK,IAAIop0B,EAAGjpzB,GAAG,EAAE,CAC9Z,SAASmpzB,EAAGnpzB,GAAG,OAAOA,EAAEnrB,KAAK,KAAK,EAAE,OAAOo00B,EAAGjpzB,EAAEvmB,MAAM,KAAK,GAAG,OAAOwv0B,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAOjpzB,EAAE8pzB,EAAG9pzB,EAAEvmB,MAAK,GAAM,KAAK,GAAG,OAAOumB,EAAE8pzB,EAAG9pzB,EAAEvmB,KAAK06B,QAAO,GAAM,KAAK,EAAE,OAAOnU,EAAE8pzB,EAAG9pzB,EAAEvmB,MAAK,GAAM,QAAQ,MAAM,GAAG,CACxR,SAASmx0B,EAAG5qzB,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE5H,aAAa4H,EAAEngB,MAAM,KAAK,GAAG,kBAAkBmgB,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKkgG,EAAG,MAAM,WAAW,KAAKljD,EAAG,MAAM,SAAS,KAAK+rwB,EAAG,MAAM,WAAW,KAAKt9P,EAAG,MAAM,aAAa,KAAKg+P,EAAG,MAAM,WAAW,KAAKF,EAAG,MAAM,eAAe,GAAG,kBAAkBvpzB,EAAE,OAAOA,EAAEiU,UAAU,KAAKm1yB,EAAG,OAAOppzB,EAAE5H,aAAa,WAAW,YAAY,KAAKixzB,EAAG,OAAOrpzB,EAAEu1G,SAASn9G,aAAa,WAAW,YAAY,KAAKyxzB,EAAG,IAAIjizB,EAAE5H,EAAEmU,OAC7Z,OADoanU,EAAEA,EAAE5H,eACnd4H,EAAE,MADieA,EAAE4H,EAAExP,aAClfwP,EAAE/nB,MAAM,IAAY,cAAcmgB,EAAE,IAAI,cAAqBA,EAAE,KAAKyqzB,EAAG,OAA6B,QAAtB7izB,EAAE5H,EAAE5H,aAAa,MAAcwP,EAAEgjzB,EAAG5qzB,EAAEvmB,OAAO,OAAO,KAAK6w0B,EAAG1izB,EAAE5H,EAAE5G,SAAS4G,EAAEA,EAAEyta,MAAM,IAAI,OAAOm9Y,EAAG5qzB,EAAE4H,GAAG,CAAC,MAAM+O,GAAG,EAAE,OAAO,IAAI,CAC3M,SAASqzyB,EAAGhqzB,GAAG,IAAI4H,EAAE5H,EAAEvmB,KAAK,OAAOumB,EAAEnrB,KAAK,KAAK,GAAG,MAAM,QAAQ,KAAK,EAAE,OAAO+yB,EAAExP,aAAa,WAAW,YAAY,KAAK,GAAG,OAAOwP,EAAE2tG,SAASn9G,aAAa,WAAW,YAAY,KAAK,GAAG,MAAM,qBAAqB,KAAK,GAAG,OAAkB4H,GAAXA,EAAE4H,EAAEuM,QAAW/b,aAAa4H,EAAEngB,MAAM,GAAG+nB,EAAExP,cAAc,KAAK4H,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK,EAAE,MAAM,WAAW,KAAK,EAAE,OAAO4H,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG,OAAOgjzB,EAAGhjzB,GAAG,KAAK,EAAE,OAAOA,IAAI6jjB,EAAG,aAAa,OAAO,KAAK,GAAG,MAAM,YACtf,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,KAAK,GAAG,MAAM,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,oBAAoB7jjB,EAAE,OAAOA,EAAExP,aAAawP,EAAE/nB,MAAM,KAAK,GAAG,kBAAkB+nB,EAAE,OAAOA,EAAE,OAAO,IAAI,CAAC,SAASohzB,EAAGhpzB,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAqB,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,GAAG,CACra,SAASwpzB,EAAGxpzB,GAAG,IAAI4H,EAAE5H,EAAEvmB,KAAK,OAAOumB,EAAEA,EAAEs+I,WAAW,UAAUt+I,EAAEta,gBAAgB,aAAakiB,GAAG,UAAUA,EAAE,CAEtF,SAAS0hzB,EAAGtpzB,GAAGA,EAAE2s4B,gBAAgB3s4B,EAAE2s4B,cADvD,SAAY3s4B,GAAG,IAAI4H,EAAE4hzB,EAAGxpzB,GAAG,UAAU,QAAQ2W,EAAE9+B,OAAOyrB,yBAAyBtD,EAAE9e,YAAYnL,UAAU6xB,GAAGhf,EAAE,GAAGoX,EAAE4H,GAAG,IAAI5H,EAAE3P,eAAeuX,IAAI,qBAAqB+O,GAAG,oBAAoBA,EAAEj5B,KAAK,oBAAoBi5B,EAAEh5B,IAAI,CAAC,IAAIzG,EAAEy/B,EAAEj5B,IAAIuiB,EAAE0W,EAAEh5B,IAAiL,OAA7K9F,OAAOgR,eAAemX,EAAE4H,EAAE,CAAC6a,cAAa,EAAG/kC,IAAI,WAAW,OAAOxG,EAAEuH,KAAK9J,KAAK,EAAEgJ,IAAI,SAASqiB,GAAGpX,EAAE,GAAGoX,EAAEC,EAAExhB,KAAK9J,KAAKqrB,EAAE,IAAInoB,OAAOgR,eAAemX,EAAE4H,EAAE,CAAC9e,WAAW6tB,EAAE7tB,aAAmB,CAAC+f,SAAS,WAAW,OAAOjgB,CAAC,EAAEssB,SAAS,SAASlV,GAAGpX,EAAE,GAAGoX,CAAC,EAAE4s4B,aAAa,WAAW5s4B,EAAE2s4B,cACxf,YAAY3s4B,EAAE4H,EAAE,EAAE,CAAC,CAAkDqizB,CAAGjqzB,GAAG,CAAC,SAASmqzB,EAAGnqzB,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAI4H,EAAE5H,EAAE2s4B,cAAc,IAAI/k4B,EAAE,OAAM,EAAG,IAAI+O,EAAE/O,EAAEiB,WAAejgB,EAAE,GAAqD,OAAlDoX,IAAIpX,EAAE4g0B,EAAGxpzB,GAAGA,EAAE8S,QAAQ,OAAO,QAAQ9S,EAAEjoB,QAAOioB,EAAEpX,KAAa+tB,IAAG/O,EAAEsN,SAASlV,IAAG,EAAM,CAAC,SAAS0qzB,EAAG1qzB,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqB3pB,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAO2pB,EAAEq/I,eAAer/I,EAAEq6D,IAAI,CAAC,MAAMzyD,GAAG,OAAO5H,EAAEq6D,IAAI,CAAC,CACpa,SAASswvB,EAAG3qzB,EAAE4H,GAAG,IAAI+O,EAAE/O,EAAEkL,QAAQ,OAAOmJ,EAAE,CAAC,EAAErU,EAAE,CAACil4B,oBAAe,EAAOpk4B,kBAAa,EAAO1wB,WAAM,EAAO+6B,QAAQ,MAAM6D,EAAEA,EAAE3W,EAAE8s4B,cAAcC,gBAAgB,CAAC,SAASxiF,EAAGvqzB,EAAE4H,GAAG,IAAI+O,EAAE,MAAM/O,EAAEa,aAAa,GAAGb,EAAEa,aAAa7f,EAAE,MAAMgf,EAAEkL,QAAQlL,EAAEkL,QAAQlL,EAAEil4B,eAAel23B,EAAEqyyB,EAAG,MAAMphzB,EAAE7vB,MAAM6vB,EAAE7vB,MAAM4+B,GAAG3W,EAAE8s4B,cAAc,CAACC,eAAenk5B,EAAEoriB,aAAar9gB,EAAE9B,WAAW,aAAajN,EAAEnuB,MAAM,UAAUmuB,EAAEnuB,KAAK,MAAMmuB,EAAEkL,QAAQ,MAAMlL,EAAE7vB,MAAM,CAAC,SAASs+D,EAAGr2C,EAAE4H,GAAe,OAAZA,EAAEA,EAAEkL,UAAiB4pC,EAAG18C,EAAE,UAAU4H,GAAE,EAAG,CAC9d,SAAS4uC,EAAGx2C,EAAE4H,GAAGyuC,EAAGr2C,EAAE4H,GAAG,IAAI+O,EAAEqyyB,EAAGphzB,EAAE7vB,OAAO6Q,EAAEgf,EAAEnuB,KAAK,GAAG,MAAMk9B,EAAK,WAAW/tB,GAAM,IAAI+tB,GAAG,KAAK3W,EAAEjoB,OAAOioB,EAAEjoB,OAAO4+B,KAAE3W,EAAEjoB,MAAM,GAAG4+B,GAAO3W,EAAEjoB,QAAQ,GAAG4+B,IAAI3W,EAAEjoB,MAAM,GAAG4+B,QAAQ,GAAG,WAAW/tB,GAAG,UAAUA,EAA8B,YAA3BoX,EAAEqwB,gBAAgB,SAAgBzoB,EAAEvX,eAAe,SAASyyB,GAAG9iB,EAAE4H,EAAEnuB,KAAKk9B,GAAG/O,EAAEvX,eAAe,iBAAiByyB,GAAG9iB,EAAE4H,EAAEnuB,KAAKuv0B,EAAGphzB,EAAEa,eAAe,MAAMb,EAAEkL,SAAS,MAAMlL,EAAEil4B,iBAAiB7s4B,EAAE6s4B,iBAAiBjl4B,EAAEil4B,eAAe,CACla,SAAS/m1B,EAAG9lD,EAAE4H,EAAE+O,GAAG,GAAG/O,EAAEvX,eAAe,UAAUuX,EAAEvX,eAAe,gBAAgB,CAAC,IAAIzH,EAAEgf,EAAEnuB,KAAK,KAAK,WAAWmP,GAAG,UAAUA,QAAG,IAASgf,EAAE7vB,OAAO,OAAO6vB,EAAE7vB,OAAO,OAAO6vB,EAAE,GAAG5H,EAAE8s4B,cAAc94W,aAAar9gB,GAAG/O,IAAI5H,EAAEjoB,QAAQioB,EAAEjoB,MAAM6vB,GAAG5H,EAAEyI,aAAab,CAAC,CAAU,MAAT+O,EAAE3W,EAAEngB,QAAcmgB,EAAEngB,KAAK,IAAImgB,EAAE6s4B,iBAAiB7s4B,EAAE8s4B,cAAcC,eAAe,KAAKp23B,IAAI3W,EAAEngB,KAAK82B,EAAE,CACzV,SAASmM,GAAG9iB,EAAE4H,EAAE+O,GAAM,WAAW/O,GAAG8izB,EAAG1qzB,EAAE5E,iBAAiB4E,IAAE,MAAM2W,EAAE3W,EAAEyI,aAAa,GAAGzI,EAAE8s4B,cAAc94W,aAAah0hB,EAAEyI,eAAe,GAAGkO,IAAI3W,EAAEyI,aAAa,GAAGkO,GAAE,CAAC,IAAIyiiB,GAAG56jB,MAAMiI,QAC7K,SAASwsD,GAAGjzC,EAAE4H,EAAE+O,EAAE/tB,GAAe,GAAZoX,EAAEA,EAAEvrB,QAAWmzB,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAI1wB,EAAE,EAAEA,EAAEy/B,EAAE3hC,OAAOkC,IAAI0wB,EAAE,IAAI+O,EAAEz/B,KAAI,EAAG,IAAIy/B,EAAE,EAAEA,EAAE3W,EAAEhrB,OAAO2hC,IAAIz/B,EAAE0wB,EAAEvX,eAAe,IAAI2P,EAAE2W,GAAG5+B,OAAOioB,EAAE2W,GAAGtnB,WAAWnY,IAAI8oB,EAAE2W,GAAGtnB,SAASnY,GAAGA,GAAG0R,IAAIoX,EAAE2W,GAAGq23B,iBAAgB,EAAG,KAAK,CAAmB,IAAlBr23B,EAAE,GAAGqyyB,EAAGryyB,GAAG/O,EAAE,KAAS1wB,EAAE,EAAEA,EAAE8oB,EAAEhrB,OAAOkC,IAAI,CAAC,GAAG8oB,EAAE9oB,GAAGa,QAAQ4+B,EAAiD,OAA9C3W,EAAE9oB,GAAGmY,UAAS,OAAGzG,IAAIoX,EAAE9oB,GAAG815B,iBAAgB,IAAW,OAAOpl4B,GAAG5H,EAAE9oB,GAAG2V,WAAW+a,EAAE5H,EAAE9oB,GAAG,CAAC,OAAO0wB,IAAIA,EAAEvY,UAAS,EAAG,CAAC,CACxY,SAAS494B,GAAGjt4B,EAAE4H,GAAG,GAAG,MAAMA,EAAEsl4B,wBAAwB,MAAMvm5B,MAAM+gB,EAAE,KAAK,OAAOuU,EAAE,CAAC,EAAErU,EAAE,CAAC7vB,WAAM,EAAO0wB,kBAAa,EAAO9uB,SAAS,GAAGqmB,EAAE8s4B,cAAc94W,cAAc,CAAC,SAASpif,GAAG5xC,EAAE4H,GAAG,IAAI+O,EAAE/O,EAAE7vB,MAAM,GAAG,MAAM4+B,EAAE,CAA+B,GAA9BA,EAAE/O,EAAEjuB,SAASiuB,EAAEA,EAAEa,aAAgB,MAAMkO,EAAE,CAAC,GAAG,MAAM/O,EAAE,MAAMjhB,MAAM+gB,EAAE,KAAK,GAAG0xiB,GAAGziiB,GAAG,CAAC,GAAG,EAAEA,EAAE3hC,OAAO,MAAM2R,MAAM+gB,EAAE,KAAKiP,EAAEA,EAAE,EAAE,CAAC/O,EAAE+O,CAAC,CAAC,MAAM/O,IAAIA,EAAE,IAAI+O,EAAE/O,CAAC,CAAC5H,EAAE8s4B,cAAc,CAAC94W,aAAag1R,EAAGryyB,GAAG,CACnY,SAASw23B,GAAGnt4B,EAAE4H,GAAG,IAAI+O,EAAEqyyB,EAAGphzB,EAAE7vB,OAAO6Q,EAAEog0B,EAAGphzB,EAAEa,cAAc,MAAMkO,KAAIA,EAAE,GAAGA,KAAM3W,EAAEjoB,QAAQioB,EAAEjoB,MAAM4+B,GAAG,MAAM/O,EAAEa,cAAczI,EAAEyI,eAAekO,IAAI3W,EAAEyI,aAAakO,IAAI,MAAM/tB,IAAIoX,EAAEyI,aAAa,GAAG7f,EAAE,CAAC,SAASwk5B,GAAGpt4B,GAAG,IAAI4H,EAAE5H,EAAEoyB,YAAYxqB,IAAI5H,EAAE8s4B,cAAc94W,cAAc,KAAKpshB,GAAG,OAAOA,IAAI5H,EAAEjoB,MAAM6vB,EAAE,CAAC,SAASw1C,GAAGp9C,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAC7c,SAASqt4B,GAAGrt4B,EAAE4H,GAAG,OAAO,MAAM5H,GAAG,iCAAiCA,EAAEo9C,GAAGx1C,GAAG,+BAA+B5H,GAAG,kBAAkB4H,EAAE,+BAA+B5H,CAAC,CAChK,IAAI6M,GAAe7M,GAAZq5C,IAAYr5C,GAAsJ,SAASA,EAAE4H,GAAG,GAAG,+BAA+B5H,EAAEmxB,cAAc,cAAcnxB,EAAEA,EAAEsyB,UAAU1qB,MAAM,CAA2F,KAA1FiF,GAAGA,IAAIx2B,SAASC,cAAc,QAAUg8C,UAAU,QAAQ1qB,EAAEsS,UAAUh4B,WAAW,SAAa0lB,EAAEiF,GAAGx3B,WAAW2qB,EAAE3qB,YAAY2qB,EAAE1oB,YAAY0oB,EAAE3qB,YAAY,KAAKuyB,EAAEvyB,YAAY2qB,EAAExpB,YAAYoxB,EAAEvyB,WAAW,CAAC,EAAvb,qBAAqBi45B,OAAOA,MAAMC,wBAAwB,SAAS3l4B,EAAE+O,EAAE/tB,EAAE1R,GAAGo25B,MAAMC,yBAAwB,WAAW,OAAOvt4B,GAAE4H,EAAE+O,EAAM,GAAE,EAAE3W,IACtK,SAASwt4B,GAAGxt4B,EAAE4H,GAAG,GAAGA,EAAE,CAAC,IAAI+O,EAAE3W,EAAE3qB,WAAW,GAAGshC,GAAGA,IAAI3W,EAAEyt4B,WAAW,IAAI923B,EAAEyQ,SAAwB,YAAdzQ,EAAE+xY,UAAU9gZ,EAAS,CAAC5H,EAAEoyB,YAAYxqB,CAAC,CACtH,IAAIiE,GAAG,CAACzpB,yBAAwB,EAAGC,aAAY,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAG4rB,UAAS,EAAG3rB,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGK,YAAW,EAAG0p5B,WAAU,EAAGzp5B,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGE,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAClfC,MAAK,EAAGE,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAIyo5B,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAAS7w1B,GAAG98C,EAAE4H,EAAE+O,GAAG,OAAO,MAAM/O,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAG+O,GAAG,kBAAkB/O,GAAG,IAAIA,GAAGiE,GAAGxb,eAAe2P,IAAI6L,GAAG7L,IAAI,GAAG4H,GAAG9vB,OAAO8vB,EAAE,IAAI,CACzb,SAASgm4B,GAAG5t4B,EAAE4H,GAAa,IAAI,IAAI+O,KAAlB3W,EAAEA,EAAEiB,MAAmB2G,EAAE,GAAGA,EAAEvX,eAAesmB,GAAG,CAAC,IAAI/tB,EAAE,IAAI+tB,EAAEt+B,QAAQ,MAAMnB,EAAE4lE,GAAGnmC,EAAE/O,EAAE+O,GAAG/tB,GAAG,UAAU+tB,IAAIA,EAAE,YAAY/tB,EAAEoX,EAAEsnB,YAAY3Q,EAAEz/B,GAAG8oB,EAAE2W,GAAGz/B,CAAC,CAAC,CADYW,OAAOgkB,KAAKgQ,IAAI31B,SAAQ,SAAS8pB,GAAG2t4B,GAAGz35B,SAAQ,SAAS0xB,GAAGA,EAAEA,EAAE5H,EAAEf,OAAO,GAAGkS,cAAcnR,EAAEb,UAAU,GAAG0M,GAAGjE,GAAGiE,GAAG7L,EAAE,GAAE,IAChI,IAAI28C,GAAG1gC,EAAE,CAAC4x3B,UAAS,GAAI,CAACh/1B,MAAK,EAAGppC,MAAK,EAAG6wC,IAAG,EAAGspb,KAAI,EAAGkua,OAAM,EAAG56Q,IAAG,EAAGzkX,KAAI,EAAGluQ,OAAM,EAAGwt4B,QAAO,EAAGtw1B,MAAK,EAAGmmC,MAAK,EAAG2pI,OAAM,EAAG96M,QAAO,EAAGu73B,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGlu4B,EAAE4H,GAAG,GAAGA,EAAE,CAAC,GAAG+0C,GAAG38C,KAAK,MAAM4H,EAAEjuB,UAAU,MAAMiuB,EAAEsl4B,yBAAyB,MAAMvm5B,MAAM+gB,EAAE,IAAI1H,IAAI,GAAG,MAAM4H,EAAEsl4B,wBAAwB,CAAC,GAAG,MAAMtl4B,EAAEjuB,SAAS,MAAMgN,MAAM+gB,EAAE,KAAK,GAAG,kBAAkBE,EAAEsl4B,2BAA2B,WAAWtl4B,EAAEsl4B,yBAAyB,MAAMvm5B,MAAM+gB,EAAE,IAAK,CAAC,GAAG,MAAME,EAAE3G,OAAO,kBAAkB2G,EAAE3G,MAAM,MAAMta,MAAM+gB,EAAE,IAAK,CAAC,CAClW,SAASqrC,GAAG/yC,EAAE4H,GAAG,IAAI,IAAI5H,EAAE3nB,QAAQ,KAAK,MAAM,kBAAkBuvB,EAAEq7X,GAAG,OAAOjjY,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,IAAIi9C,GAAG,KAAK,SAASywI,GAAG1tL,GAA6F,OAA1FA,EAAEA,EAAEnF,QAAQmF,EAAEk4L,YAAY3jL,QAAS453B,0BAA0Bnu4B,EAAEA,EAAEmu4B,yBAAgC,IAAInu4B,EAAEonB,SAASpnB,EAAE3oB,WAAW2oB,CAAC,CAAC,IAAIqnI,GAAG,KAAKukH,GAAG,KAAKwipB,GAAG,KACpc,SAASC,GAAGru4B,GAAG,GAAGA,EAAEsu4B,GAAGtu4B,GAAG,CAAC,GAAG,oBAAoBqnI,GAAG,MAAM1gJ,MAAM+gB,EAAE,MAAM,IAAIE,EAAE5H,EAAEuu4B,UAAU3m4B,IAAIA,EAAE4m4B,GAAG5m4B,GAAGy/H,GAAGrnI,EAAEuu4B,UAAUvu4B,EAAEvmB,KAAKmuB,GAAG,CAAC,CAAC,SAAS6m4B,GAAGzu4B,GAAG4rP,GAAGwipB,GAAGA,GAAG745B,KAAKyqB,GAAGou4B,GAAG,CAACpu4B,GAAG4rP,GAAG5rP,CAAC,CAAC,SAAS0u4B,KAAK,GAAG9ipB,GAAG,CAAC,IAAI5rP,EAAE4rP,GAAGhkP,EAAEwm4B,GAAoB,GAAjBA,GAAGxipB,GAAG,KAAKyipB,GAAGru4B,GAAM4H,EAAE,IAAI5H,EAAE,EAAEA,EAAE4H,EAAE5yB,OAAOgrB,IAAIqu4B,GAAGzm4B,EAAE5H,GAAG,CAAC,CAAC,SAAS2u4B,GAAG3u4B,EAAE4H,GAAG,OAAO5H,EAAE4H,EAAE,CAAC,SAASgn4B,KAAK,CAAC,IAAIC,IAAG,EAAG,SAASC,GAAG9u4B,EAAE4H,EAAE+O,GAAG,GAAGk43B,GAAG,OAAO7u4B,EAAE4H,EAAE+O,GAAGk43B,IAAG,EAAG,IAAI,OAAOF,GAAG3u4B,EAAE4H,EAAE+O,EAAE,CAAC,QAAWk43B,IAAG,GAAG,OAAOjjpB,IAAI,OAAOwipB,MAAGQ,KAAKF,KAAI,CAAC,CAChb,SAASK,GAAG/u4B,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAEuu4B,UAAU,GAAG,OAAO533B,EAAE,OAAO,KAAK,IAAI/tB,EAAE4l5B,GAAG733B,GAAG,GAAG,OAAO/tB,EAAE,OAAO,KAAK+tB,EAAE/tB,EAAEgf,GAAG5H,EAAE,OAAO4H,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBhf,GAAGA,EAAEiE,YAAqBjE,IAAI,YAAboX,EAAEA,EAAEvmB,OAAuB,UAAUumB,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGpX,EAAE,MAAMoX,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAG2W,GAAG,oBACleA,EAAE,MAAMhwB,MAAM+gB,EAAE,IAAIE,SAAS+O,IAAI,OAAOA,CAAC,CAAC,IAAIq43B,IAAG,EAAG,GAAGrmF,EAAG,IAAI,IAAIsmF,GAAG,CAAC,EAAEp35B,OAAOgR,eAAeom5B,GAAG,UAAU,CAACvx5B,IAAI,WAAWsx5B,IAAG,CAAE,IAAIz63B,OAAOlZ,iBAAiB,OAAO4z4B,GAAGA,IAAI163B,OAAOqf,oBAAoB,OAAOq72B,GAAGA,GAAG,CAAC,MAAMjv4B,IAAGgv4B,IAAG,CAAE,CAAC,SAASE,GAAGlv4B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,EAAE0X,EAAElwB,EAAE3K,GAAG,IAAIijB,EAAEvhB,MAAMzI,UAAU6C,MAAM6F,KAAKkD,UAAU,GAAG,IAAIimB,EAAE5lB,MAAM20B,EAAE5W,EAAE,CAAC,MAAM0H,GAAG9yB,KAAKyp1B,QAAQ32zB,EAAE,CAAC,CAAC,IAAI0n4B,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACnxE,QAAQ,SAASp+zB,GAAGmv4B,IAAG,EAAGC,GAAGpv4B,CAAC,GAAG,SAASwv4B,GAAGxv4B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,EAAE0X,EAAElwB,EAAE3K,GAAGqy5B,IAAG,EAAGC,GAAG,KAAKF,GAAGlt5B,MAAMut5B,GAAG5t5B,UAAU,CACjW,SAAS8t5B,GAAGzv4B,GAAG,IAAI4H,EAAE5H,EAAE2W,EAAE3W,EAAE,GAAGA,EAAE0v4B,UAAU,KAAK9n4B,EAAEhuB,QAAQguB,EAAEA,EAAEhuB,WAAW,CAAComB,EAAE4H,EAAE,GAAO,KAAa,MAAjBA,EAAE5H,GAAS+gF,SAAcpqE,EAAE/O,EAAEhuB,QAAQomB,EAAE4H,EAAEhuB,aAAaomB,EAAE,CAAC,OAAO,IAAI4H,EAAE/yB,IAAI8hC,EAAE,IAAI,CAAC,SAASg53B,GAAG3v4B,GAAG,GAAG,KAAKA,EAAEnrB,IAAI,CAAC,IAAI+yB,EAAE5H,EAAE4v4B,cAAsE,GAAxD,OAAOho4B,IAAkB,QAAd5H,EAAEA,EAAE0v4B,aAAqB9n4B,EAAE5H,EAAE4v4B,gBAAmB,OAAOho4B,EAAE,OAAOA,EAAEio4B,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAG9v4B,GAAG,GAAGyv4B,GAAGzv4B,KAAKA,EAAE,MAAMrZ,MAAM+gB,EAAE,KAAM,CAE1S,SAASqo4B,GAAG/v4B,GAAW,OAAO,QAAfA,EADtN,SAAYA,GAAG,IAAI4H,EAAE5H,EAAE0v4B,UAAU,IAAI9n4B,EAAE,CAAS,GAAG,QAAXA,EAAE6n4B,GAAGzv4B,IAAe,MAAMrZ,MAAM+gB,EAAE,MAAM,OAAOE,IAAI5H,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAI2W,EAAE3W,EAAEpX,EAAEgf,IAAI,CAAC,IAAI1wB,EAAEy/B,EAAE/8B,OAAO,GAAG,OAAO1C,EAAE,MAAM,IAAI+oB,EAAE/oB,EAAEw45B,UAAU,GAAG,OAAOzv4B,EAAE,CAAY,GAAG,QAAdrX,EAAE1R,EAAE0C,QAAmB,CAAC+8B,EAAE/tB,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG1R,EAAEmrE,QAAQpiD,EAAEoiD,MAAM,CAAC,IAAIpiD,EAAE/oB,EAAEmrE,MAAMpiD,GAAG,CAAC,GAAGA,IAAI0W,EAAE,OAAOm53B,GAAG545B,GAAG8oB,EAAE,GAAGC,IAAIrX,EAAE,OAAOkn5B,GAAG545B,GAAG0wB,EAAE3H,EAAEA,EAAEo1C,OAAO,CAAC,MAAM1uD,MAAM+gB,EAAE,KAAM,CAAC,GAAGiP,EAAE/8B,SAASgP,EAAEhP,OAAO+8B,EAAEz/B,EAAE0R,EAAEqX,MAAM,CAAC,IAAI,IAAI0X,GAAE,EAAGlwB,EAAEvQ,EAAEmrE,MAAM56D,GAAG,CAAC,GAAGA,IAAIkvB,EAAE,CAACgB,GAAE,EAAGhB,EAAEz/B,EAAE0R,EAAEqX,EAAE,KAAK,CAAC,GAAGxY,IAAImB,EAAE,CAAC+uB,GAAE,EAAG/uB,EAAE1R,EAAEy/B,EAAE1W,EAAE,KAAK,CAACxY,EAAEA,EAAE4tD,OAAO,CAAC,IAAI19B,EAAE,CAAC,IAAIlwB,EAAEwY,EAAEoiD,MAAM56D,GAAG,CAAC,GAAGA,IAC5fkvB,EAAE,CAACgB,GAAE,EAAGhB,EAAE1W,EAAErX,EAAE1R,EAAE,KAAK,CAAC,GAAGuQ,IAAImB,EAAE,CAAC+uB,GAAE,EAAG/uB,EAAEqX,EAAE0W,EAAEz/B,EAAE,KAAK,CAACuQ,EAAEA,EAAE4tD,OAAO,CAAC,IAAI19B,EAAE,MAAMhxB,MAAM+gB,EAAE,KAAM,CAAC,CAAC,GAAGiP,EAAE+43B,YAAY9m5B,EAAE,MAAMjC,MAAM+gB,EAAE,KAAM,CAAC,GAAG,IAAIiP,EAAE9hC,IAAI,MAAM8R,MAAM+gB,EAAE,MAAM,OAAOiP,EAAE433B,UAAUlt5B,UAAUs1B,EAAE3W,EAAE4H,CAAC,CAAkBoo4B,CAAGhw4B,IAAmBiw4B,GAAGjw4B,GAAG,IAAI,CAAC,SAASiw4B,GAAGjw4B,GAAG,GAAG,IAAIA,EAAEnrB,KAAK,IAAImrB,EAAEnrB,IAAI,OAAOmrB,EAAE,IAAIA,EAAEA,EAAEqiD,MAAM,OAAOriD,GAAG,CAAC,IAAI4H,EAAEqo4B,GAAGjw4B,GAAG,GAAG,OAAO4H,EAAE,OAAOA,EAAE5H,EAAEA,EAAEq1C,OAAO,CAAC,OAAO,IAAI,CAC1X,IAAIqG,GAAGyrW,EAAG+of,0BAA0Br01B,GAAGsrW,EAAGgpf,wBAAwB1ne,GAAGthB,EAAGipf,qBAAqBrq1B,GAAGohW,EAAGkpf,sBAAsB9/e,GAAEpJ,EAAGmpf,aAAa3vO,GAAGx5Q,EAAGopf,iCAAiCzpzB,GAAGqgU,EAAGqpf,2BAA2Bp9E,GAAGjsa,EAAGspf,8BAA8B5+1B,GAAGs1W,EAAGupf,wBAAwBvpzB,GAAGggU,EAAGwpf,qBAAqBn8E,GAAGrta,EAAGypf,sBAAsBrh1B,GAAG,KAAKE,GAAG,KACvV,IAAIH,GAAG93E,KAAKw4b,MAAMx4b,KAAKw4b,MAAiC,SAAYhwa,GAAU,OAAPA,KAAK,EAAS,IAAIA,EAAE,GAAG,IAAIizzB,GAAGjzzB,GAAG20zB,GAAG,GAAG,CAAC,EAA/E1B,GAAGz70B,KAAK2hD,IAAIw7xB,GAAGn90B,KAAKklD,IAA4D,IAAIoyB,GAAG,GAAGo4B,GAAG,QAC7H,SAAST,GAAGzmF,GAAG,OAAOA,GAAGA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,QAAFA,EAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,OAAS,UAAFA,EAAY,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,WAAW,OAAO,WACzgB,QAAQ,OAAOA,EAAE,CAAC,SAASgzzB,GAAGhzzB,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAE6w4B,aAAa,GAAG,IAAIl63B,EAAE,OAAO,EAAE,IAAI/tB,EAAE,EAAE1R,EAAE8oB,EAAE8w4B,eAAe7w4B,EAAED,EAAE+w4B,YAAYp53B,EAAI,UAAFhB,EAAY,GAAG,IAAIgB,EAAE,CAAC,IAAIlwB,EAAEkwB,GAAGzgC,EAAE,IAAIuQ,EAAEmB,EAAE69F,GAAGh/F,GAAS,KAALwY,GAAG0X,KAAU/uB,EAAE69F,GAAGxmF,GAAI,MAAa,KAAP0X,EAAEhB,GAAGz/B,GAAQ0R,EAAE69F,GAAG9uE,GAAG,IAAI1X,IAAIrX,EAAE69F,GAAGxmF,IAAI,GAAG,IAAIrX,EAAE,OAAO,EAAE,GAAG,IAAIgf,GAAGA,IAAIhf,GAAG,KAAKgf,EAAE1wB,MAAKA,EAAE0R,GAAGA,KAAEqX,EAAE2H,GAAGA,IAAQ,KAAK1wB,GAAG,KAAO,QAAF+oB,IAAY,OAAO2H,EAA0C,GAAxC,KAAO,EAAFhf,KAAOA,GAAK,GAAF+tB,GAA4B,KAAtB/O,EAAE5H,EAAEgx4B,gBAAwB,IAAIhx4B,EAAEA,EAAEix4B,cAAcrp4B,GAAGhf,EAAE,EAAEgf,GAAc1wB,EAAE,IAAby/B,EAAE,GAAG24C,GAAG1nD,IAAUhf,GAAGoX,EAAE2W,GAAG/O,IAAI1wB,EAAE,OAAO0R,CAAC,CACvc,SAAS2vM,GAAGv4L,EAAE4H,GAAG,OAAO5H,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO4H,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAOA,EAAE,IAAuJ,QAAQ,OAAO,EAAE,CACrN,SAAS6nR,GAAGzvR,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAE6w4B,cAAsC7w4B,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAAS0vR,KAAK,IAAI1vR,EAAE8uD,GAAoC,OAA1B,KAAQ,SAAfA,KAAK,MAAqBA,GAAG,IAAW9uD,CAAC,CAAC,SAAS+kf,GAAG/kf,GAAG,IAAI,IAAI4H,EAAE,GAAG+O,EAAE,EAAE,GAAGA,EAAEA,IAAI/O,EAAEryB,KAAKyqB,GAAG,OAAO4H,CAAC,CAC3a,SAAS2rzB,GAAGvzzB,EAAE4H,EAAE+O,GAAG3W,EAAE6w4B,cAAcjp4B,EAAE,YAAYA,IAAI5H,EAAE8w4B,eAAe,EAAE9w4B,EAAE+w4B,YAAY,IAAG/w4B,EAAEA,EAAEkx4B,YAAWtp4B,EAAE,GAAG0nD,GAAG1nD,IAAQ+O,CAAC,CACzH,SAASk9yB,GAAG7zzB,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAEgx4B,gBAAgBpp4B,EAAE,IAAI5H,EAAEA,EAAEix4B,cAAct63B,GAAG,CAAC,IAAI/tB,EAAE,GAAG0mE,GAAG34C,GAAGz/B,EAAE,GAAG0R,EAAE1R,EAAE0wB,EAAE5H,EAAEpX,GAAGgf,IAAI5H,EAAEpX,IAAIgf,GAAG+O,IAAIz/B,CAAC,CAAC,CAAC,IAAI08D,GAAE,EAAE,SAASygxB,GAAGr0zB,GAAS,OAAO,GAAbA,IAAIA,GAAa,EAAEA,EAAE,KAAO,UAAFA,GAAa,GAAG,UAAU,EAAE,CAAC,CAAC,IAAIg0zB,GAAGC,GAAGe,GAAGC,GAAGvB,GAAGyB,IAAG,EAAGL,GAAG,GAAGV,GAAG,KAAKX,GAAG,KAAKmB,GAAG,KAAKL,GAAG,IAAI35c,IAAIg5c,GAAG,IAAIh5c,IAAIy6c,GAAG,GAAGf,GAAG,6PAA6Pr10B,MAAM,KAChiB,SAASu00B,GAAGxzzB,EAAE4H,GAAG,OAAO5H,GAAG,IAAK,UAAU,IAAK,WAAWo0zB,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYX,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWmB,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaL,GAAG/sb,OAAO5/X,EAAEup4B,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBv9E,GAAGpsb,OAAO5/X,EAAEup4B,WAAW,CACnT,SAASj9E,GAAGl0zB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,GAAG,OAAG,OAAOD,GAAGA,EAAEox4B,cAAcnx4B,GAASD,EAAE,CAACqx4B,UAAUzp4B,EAAE0p4B,aAAa363B,EAAE463B,iBAAiB3o5B,EAAEwo5B,YAAYnx4B,EAAEux4B,iBAAiB,CAACt65B,IAAI,OAAO0wB,IAAY,QAARA,EAAE0m4B,GAAG1m4B,KAAaqszB,GAAGrszB,IAAI5H,IAAEA,EAAEux4B,kBAAkB3o5B,EAAEgf,EAAE5H,EAAEwx4B,iBAAiB,OAAOt65B,IAAI,IAAI0wB,EAAEvvB,QAAQnB,IAAI0wB,EAAEryB,KAAK2B,GAAU8oB,EAAC,CAEpR,SAAS+zzB,GAAG/zzB,GAAG,IAAI4H,EAAEwtzB,GAAGp1zB,EAAEnF,QAAQ,GAAG,OAAO+M,EAAE,CAAC,IAAI+O,EAAE843B,GAAG7n4B,GAAG,GAAG,OAAO+O,EAAE,GAAW,MAAR/O,EAAE+O,EAAE9hC,MAAY,GAAW,QAAR+yB,EAAE+n4B,GAAGh53B,IAA4D,OAA/C3W,EAAEqx4B,UAAUzp4B,OAAE8rzB,GAAG1zzB,EAAEgoB,UAAS,WAAWgtyB,GAAGr+yB,EAAE,SAAgB,GAAG,IAAI/O,GAAG+O,EAAE433B,UAAUlt5B,QAAQuu5B,cAAc6B,aAAmE,YAArDzx4B,EAAEqx4B,UAAU,IAAI163B,EAAE9hC,IAAI8hC,EAAE433B,UAAUmD,cAAc,KAAY,CAAC1x4B,EAAEqx4B,UAAU,IAAI,CAClT,SAASt8E,GAAG/0zB,GAAG,GAAG,OAAOA,EAAEqx4B,UAAU,OAAM,EAAG,IAAI,IAAIzp4B,EAAE5H,EAAEwx4B,iBAAiB,EAAE5p4B,EAAE5yB,QAAQ,CAAC,IAAI2hC,EAAEu+yB,GAAGl1zB,EAAEsx4B,aAAatx4B,EAAEux4B,iBAAiB3p4B,EAAE,GAAG5H,EAAEox4B,aAAa,GAAG,OAAOz63B,EAAiG,OAAe,QAAR/O,EAAE0m4B,GAAG333B,KAAas9yB,GAAGrszB,GAAG5H,EAAEqx4B,UAAU163B,GAAE,EAA3H,IAAI/tB,EAAE,IAAtB+tB,EAAE3W,EAAEox4B,aAAwBlw5B,YAAYy1B,EAAEl9B,KAAKk9B,GAAGsmC,GAAGr0D,EAAE+tB,EAAE9b,OAAOqgM,cAActyM,GAAGq0D,GAAG,KAA0Dr1C,EAAEtI,OAAO,CAAC,OAAM,CAAE,CAAC,SAASu1zB,GAAG70zB,EAAE4H,EAAE+O,GAAGo+yB,GAAG/0zB,IAAI2W,EAAE6wX,OAAO5/X,EAAE,CAAC,SAASuszB,KAAKgB,IAAG,EAAG,OAAOf,IAAIW,GAAGX,MAAMA,GAAG,MAAM,OAAOX,IAAIsB,GAAGtB,MAAMA,GAAG,MAAM,OAAOmB,IAAIG,GAAGH,MAAMA,GAAG,MAAML,GAAGr+0B,QAAQ2+0B,IAAIjB,GAAG190B,QAAQ2+0B,GAAG,CACnf,SAASsG,GAAGn7zB,EAAE4H,GAAG5H,EAAEqx4B,YAAYzp4B,IAAI5H,EAAEqx4B,UAAU,KAAKl8E,KAAKA,IAAG,EAAGhua,EAAG+of,0BAA0B/of,EAAGupf,wBAAwBv8E,KAAK,CAC5H,SAASyH,GAAG57zB,GAAG,SAAS4H,EAAEA,GAAG,OAAOuzzB,GAAGvzzB,EAAE5H,EAAE,CAAC,GAAG,EAAE80zB,GAAG9/0B,OAAO,CAACmm1B,GAAGrG,GAAG,GAAG90zB,GAAG,IAAI,IAAI2W,EAAE,EAAEA,EAAEm+yB,GAAG9/0B,OAAO2hC,IAAI,CAAC,IAAI/tB,EAAEks0B,GAAGn+yB,GAAG/tB,EAAEyo5B,YAAYrx4B,IAAIpX,EAAEyo5B,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOj9E,IAAI+G,GAAG/G,GAAGp0zB,GAAG,OAAOyzzB,IAAI0H,GAAG1H,GAAGzzzB,GAAG,OAAO40zB,IAAIuG,GAAGvG,GAAG50zB,GAAGu0zB,GAAGr+0B,QAAQ0xB,GAAGgszB,GAAG190B,QAAQ0xB,GAAO+O,EAAE,EAAEA,EAAE0+yB,GAAGrg1B,OAAO2hC,KAAI/tB,EAAEys0B,GAAG1+yB,IAAK063B,YAAYrx4B,IAAIpX,EAAEyo5B,UAAU,MAAM,KAAK,EAAEh8E,GAAGrg1B,QAAiB,QAAR2hC,EAAE0+yB,GAAG,IAAYg8E,WAAYt9E,GAAGp9yB,GAAG,OAAOA,EAAE063B,WAAWh8E,GAAG/1zB,OAAO,CAAC,IAAI+1G,GAAG1mE,EAAGgj2B,wBAAwB9rsB,IAAG,EAC5a,SAAS+rsB,GAAG5x4B,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE08D,GAAE3zC,EAAEo1G,GAAGvpH,WAAWupH,GAAGvpH,WAAW,KAAK,IAAI8nD,GAAE,EAAEi+1B,GAAG7x4B,EAAE4H,EAAE+O,EAAE/tB,EAAE,CAAC,QAAQgrD,GAAE18D,EAAEm+H,GAAGvpH,WAAWmU,CAAC,CAAC,CAAC,SAAS07F,GAAG37F,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE08D,GAAE3zC,EAAEo1G,GAAGvpH,WAAWupH,GAAGvpH,WAAW,KAAK,IAAI8nD,GAAE,EAAEi+1B,GAAG7x4B,EAAE4H,EAAE+O,EAAE/tB,EAAE,CAAC,QAAQgrD,GAAE18D,EAAEm+H,GAAGvpH,WAAWmU,CAAC,CAAC,CACjO,SAAS4x4B,GAAG7x4B,EAAE4H,EAAE+O,EAAE/tB,GAAG,GAAGi9M,GAAG,CAAC,IAAI3uN,EAAEg+0B,GAAGl1zB,EAAE4H,EAAE+O,EAAE/tB,GAAG,GAAG,OAAO1R,EAAE465B,GAAG9x4B,EAAE4H,EAAEhf,EAAEmtB,GAAGY,GAAG68yB,GAAGxzzB,EAAEpX,QAAQ,GANtF,SAAYoX,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,OAAO0wB,GAAG,IAAK,UAAU,OAAOwszB,GAAGF,GAAGE,GAAGp0zB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,IAAG,EAAG,IAAK,YAAY,OAAOu80B,GAAGS,GAAGT,GAAGzzzB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,IAAG,EAAG,IAAK,YAAY,OAAO090B,GAAGV,GAAGU,GAAG50zB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,IAAG,EAAG,IAAK,cAAc,IAAI+oB,EAAE/oB,EAAEi65B,UAAkD,OAAxC58E,GAAG520B,IAAIsiB,EAAEi0zB,GAAGK,GAAG720B,IAAIuiB,IAAI,KAAKD,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,KAAU,EAAG,IAAK,oBAAoB,OAAO+oB,EAAE/oB,EAAEi65B,UAAUv9E,GAAGj20B,IAAIsiB,EAAEi0zB,GAAGN,GAAGl20B,IAAIuiB,IAAI,KAAKD,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,KAAI,EAAG,OAAM,CAAE,CAM1Qu90B,CAAGv90B,EAAE8oB,EAAE4H,EAAE+O,EAAE/tB,GAAGA,EAAEwqQ,uBAAuB,GAAGogkB,GAAGxzzB,EAAEpX,GAAK,EAAFgf,IAAM,EAAE0szB,GAAGj80B,QAAQ2nB,GAAG,CAAC,KAAK,OAAO9oB,GAAG,CAAC,IAAI+oB,EAAEqu4B,GAAGp35B,GAA0D,GAAvD,OAAO+oB,GAAG+zzB,GAAG/zzB,GAAiB,QAAdA,EAAEi1zB,GAAGl1zB,EAAE4H,EAAE+O,EAAE/tB,KAAakp5B,GAAG9x4B,EAAE4H,EAAEhf,EAAEmtB,GAAGY,GAAM1W,IAAI/oB,EAAE,MAAMA,EAAE+oB,CAAC,CAAC,OAAO/oB,GAAG0R,EAAEwqQ,iBAAiB,MAAM0+oB,GAAG9x4B,EAAE4H,EAAEhf,EAAE,KAAK+tB,EAAE,CAAC,CAAC,IAAIZ,GAAG,KACpU,SAASm/yB,GAAGl1zB,EAAE4H,EAAE+O,EAAE/tB,GAA2B,GAAxBmtB,GAAG,KAAwB,QAAX/V,EAAEo1zB,GAAVp1zB,EAAE0tL,GAAG9kM,KAAuB,GAAW,QAARgf,EAAE6n4B,GAAGzv4B,IAAYA,EAAE,UAAU,GAAW,MAAR2W,EAAE/O,EAAE/yB,KAAW,CAAS,GAAG,QAAXmrB,EAAE2v4B,GAAG/n4B,IAAe,OAAO5H,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAI2W,EAAE,CAAC,GAAG/O,EAAE2m4B,UAAUlt5B,QAAQuu5B,cAAc6B,aAAa,OAAO,IAAI7p4B,EAAE/yB,IAAI+yB,EAAE2m4B,UAAUmD,cAAc,KAAK1x4B,EAAE,IAAI,MAAM4H,IAAI5H,IAAIA,EAAE,MAAW,OAAL+V,GAAG/V,EAAS,IAAI,CAC7S,SAASq73B,GAAGr73B,GAAG,OAAOA,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,OAAO,EAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,OAAO,EACpqC,IAAK,UAAU,OAAO2gqB,MAAM,KAAK75kB,GAAG,OAAO,EAAE,KAAKssuB,GAAG,OAAO,EAAE,KAAKvhxB,GAAG,KAAKs1C,GAAG,OAAO,GAAG,KAAKqtuB,GAAG,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,OAAO,GAAG,CAAC,IAAIu9E,GAAG,KAAKh6uB,GAAG,KAAK5zJ,GAAG,KAAK,SAAS6t4B,KAAK,GAAG7t4B,GAAG,OAAOA,GAAG,IAAInE,EAAkBpX,EAAhBgf,EAAEmwJ,GAAGphJ,EAAE/O,EAAE5yB,OAASkC,EAAE,UAAU665B,GAAGA,GAAGh65B,MAAMg65B,GAAG3/2B,YAAYnyB,EAAE/oB,EAAElC,OAAO,IAAIgrB,EAAE,EAAEA,EAAE2W,GAAG/O,EAAE5H,KAAK9oB,EAAE8oB,GAAGA,KAAK,IAAI2X,EAAEhB,EAAE3W,EAAE,IAAIpX,EAAE,EAAEA,GAAG+uB,GAAG/P,EAAE+O,EAAE/tB,KAAK1R,EAAE+oB,EAAErX,GAAGA,KAAK,OAAOub,GAAGjtB,EAAE0B,MAAMonB,EAAE,EAAEpX,EAAE,EAAEA,OAAE,EAAO,CACxY,SAASqp5B,GAAGjy4B,GAAG,IAAI4H,EAAE5H,EAAEo5D,QAA+E,MAAvE,aAAap5D,EAAgB,KAAbA,EAAEA,EAAEohyB,WAAgB,KAAKx5xB,IAAI5H,EAAE,IAAKA,EAAE4H,EAAE,KAAK5H,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAASky4B,KAAK,OAAM,CAAE,CAAC,SAASC,KAAK,OAAM,CAAE,CAC5K,SAASp+uB,GAAG/zJ,GAAG,SAAS4H,EAAEA,EAAEhf,EAAE1R,EAAE+oB,EAAE0X,GAA6G,IAAI,IAAIhB,KAAlHhiC,KAAKy95B,WAAWxq4B,EAAEjzB,KAAK095B,YAAYn75B,EAAEvC,KAAK8E,KAAKmP,EAAEjU,KAAKy85B,YAAYnx4B,EAAEtrB,KAAKkmB,OAAO8c,EAAEhjC,KAAKsjN,cAAc,KAAkBj4L,EAAEA,EAAE3P,eAAesmB,KAAK/O,EAAE5H,EAAE2W,GAAGhiC,KAAKgiC,GAAG/O,EAAEA,EAAE3H,GAAGA,EAAE0W,IAAgI,OAA5HhiC,KAAK295B,oBAAoB,MAAMry4B,EAAEszS,iBAAiBtzS,EAAEszS,kBAAiB,IAAKtzS,EAAEsy4B,aAAaL,GAAGC,GAAGx95B,KAAK695B,qBAAqBL,GAAUx95B,IAAI,CAC9E,OAD+EsnC,EAAErU,EAAE7xB,UAAU,CAAC03C,eAAe,WAAW94C,KAAK4+T,kBAAiB,EAAG,IAAIvzS,EAAErrB,KAAKy85B,YAAYpx4B,IAAIA,EAAEytB,eAAeztB,EAAEytB,iBAAiB,mBAAmBztB,EAAEuy4B,cAC7evy4B,EAAEuy4B,aAAY,GAAI595B,KAAK295B,mBAAmBJ,GAAG,EAAE9+oB,gBAAgB,WAAW,IAAIpzP,EAAErrB,KAAKy85B,YAAYpx4B,IAAIA,EAAEozP,gBAAgBpzP,EAAEozP,kBAAkB,mBAAmBpzP,EAAEyy4B,eAAezy4B,EAAEyy4B,cAAa,GAAI995B,KAAK695B,qBAAqBN,GAAG,EAAErzR,QAAQ,WAAW,EAAE6zR,aAAaR,KAAYtq4B,CAAC,CACjR,IAAoL+q4B,GAAGryZ,GAAGC,GAAtLr+K,GAAG,CAAC0wkB,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAExwH,UAAU,SAAStixB,GAAG,OAAOA,EAAEsixB,WAAWhqwB,KAAK+O,KAAK,EAAEksR,iBAAiB,EAAEw/lB,UAAU,GAAGv/kB,GAAGz/J,GAAGmuK,IAAI8wkB,GAAG/23B,EAAE,CAAC,EAAEimT,GAAG,CAAC9nS,KAAK,EAAEgD,OAAO,IAAI612B,GAAGl/uB,GAAGi/uB,IAAaE,GAAGj33B,EAAE,CAAC,EAAE+23B,GAAG,CAACG,QAAQ,EAAEC,QAAQ,EAAEv92B,QAAQ,EAAEC,QAAQ,EAAEH,MAAM,EAAEC,MAAM,EAAEp7B,QAAQ,EAAEwiC,SAAS,EAAEziC,OAAO,EAAED,QAAQ,EAAE+44B,iBAAiBC,GAAGp/4B,OAAO,EAAEumM,QAAQ,EAAEpmK,cAAc,SAASr0B,GAAG,YAAO,IAASA,EAAEq0B,cAAcr0B,EAAEuz4B,cAAcvz4B,EAAEk4L,WAAWl4L,EAAEg7L,UAAUh7L,EAAEuz4B,YAAYvz4B,EAAEq0B,aAAa,EAAEm/2B,UAAU,SAASxz4B,GAAG,MAAG,cAC3eA,EAASA,EAAEwz4B,WAAUxz4B,IAAIugf,KAAKA,IAAI,cAAcvgf,EAAEvmB,MAAMk55B,GAAG3y4B,EAAEmz4B,QAAQ5yZ,GAAG4yZ,QAAQ7yZ,GAAGtgf,EAAEoz4B,QAAQ7yZ,GAAG6yZ,SAAS9yZ,GAAGqyZ,GAAG,EAAEpyZ,GAAGvgf,GAAU2y4B,GAAE,EAAEc,UAAU,SAASzz4B,GAAG,MAAM,cAAcA,EAAEA,EAAEyz4B,UAAUnzZ,EAAE,IAAIozZ,GAAG3/uB,GAAGm/uB,IAAiCS,GAAG5/uB,GAA7B93I,EAAE,CAAC,EAAEi33B,GAAG,CAACU,aAAa,KAA4CC,GAAG9/uB,GAA9B93I,EAAE,CAAC,EAAE+23B,GAAG,CAAC3+2B,cAAc,KAA0Ey/2B,GAAG//uB,GAA5D93I,EAAE,CAAC,EAAEimT,GAAG,CAAC6xkB,cAAc,EAAE1+I,YAAY,EAAE2+I,cAAc,KAAcC,GAAGh43B,EAAE,CAAC,EAAEimT,GAAG,CAACgykB,cAAc,SAASl04B,GAAG,MAAM,kBAAkBA,EAAEA,EAAEk04B,cAAc3/3B,OAAO2/3B,aAAa,IAAIC,GAAGpgvB,GAAGkgvB,IAAyBG,GAAGrgvB,GAArB93I,EAAE,CAAC,EAAEimT,GAAG,CAAC5wS,KAAK,KAAc+i3B,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGx14B,GAAG,IAAI4H,EAAEjzB,KAAKy85B,YAAY,OAAOxp4B,EAAEyr4B,iBAAiBzr4B,EAAEyr4B,iBAAiBrz4B,MAAIA,EAAEm14B,GAAGn14B,OAAM4H,EAAE5H,EAAK,CAAC,SAASsz4B,KAAK,OAAOkC,EAAE,CAChS,IAAIC,GAAGx53B,EAAE,CAAC,EAAE+23B,GAAG,CAACn95B,IAAI,SAASmqB,GAAG,GAAGA,EAAEnqB,IAAI,CAAC,IAAI+xB,EAAEys4B,GAAGr04B,EAAEnqB,MAAMmqB,EAAEnqB,IAAI,GAAG,iBAAiB+xB,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAa5H,EAAEvmB,KAAc,MAARumB,EAAEiy4B,GAAGjy4B,IAAU,QAAQtoB,OAAOC,aAAaqoB,GAAI,YAAYA,EAAEvmB,MAAM,UAAUumB,EAAEvmB,KAAKy75B,GAAGl14B,EAAEo5D,UAAU,eAAe,EAAE,EAAEzmD,KAAK,EAAEha,SAAS,EAAE6B,QAAQ,EAAEwiC,SAAS,EAAEziC,OAAO,EAAED,QAAQ,EAAE6+G,OAAO,EAAEphG,OAAO,EAAEs73B,iBAAiBC,GAAGlyG,SAAS,SAASphyB,GAAG,MAAM,aAAaA,EAAEvmB,KAAKw45B,GAAGjy4B,GAAG,CAAC,EAAEo5D,QAAQ,SAASp5D,GAAG,MAAM,YAAYA,EAAEvmB,MAAM,UAAUumB,EAAEvmB,KAAKumB,EAAEo5D,QAAQ,CAAC,EAAEmmF,MAAM,SAASv/I,GAAG,MAAM,aAC7eA,EAAEvmB,KAAKw45B,GAAGjy4B,GAAG,YAAYA,EAAEvmB,MAAM,UAAUumB,EAAEvmB,KAAKumB,EAAEo5D,QAAQ,CAAC,IAAIs80B,GAAG3hvB,GAAG0hvB,IAAiIE,GAAG5hvB,GAA7H93I,EAAE,CAAC,EAAEi33B,GAAG,CAAC/B,UAAU,EAAE1l5B,MAAM,EAAEC,OAAO,EAAEkq5B,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAGpivB,GAArH93I,EAAE,CAAC,EAAE+23B,GAAG,CAACz82B,QAAQ,EAAEgowB,cAAc,EAAErpwB,eAAe,EAAE36B,OAAO,EAAED,QAAQ,EAAEE,QAAQ,EAAEwiC,SAAS,EAAEq22B,iBAAiBC,MAA0E8C,GAAGrivB,GAA3D93I,EAAE,CAAC,EAAEimT,GAAG,CAACwlR,aAAa,EAAE2tK,YAAY,EAAE2+I,cAAc,KAAcqC,GAAGp63B,EAAE,CAAC,EAAEi33B,GAAG,CAAC3tuB,OAAO,SAASvlK,GAAG,MAAM,WAAWA,EAAEA,EAAEulK,OAAO,gBAAgBvlK,GAAGA,EAAEs24B,YAAY,CAAC,EACnfr52B,OAAO,SAASj9B,GAAG,MAAM,WAAWA,EAAEA,EAAEi9B,OAAO,gBAAgBj9B,GAAGA,EAAEu24B,YAAY,eAAev24B,GAAGA,EAAEm9B,WAAW,CAAC,EAAE4qc,OAAO,EAAE7qc,UAAU,IAAIs52B,GAAGzivB,GAAGsivB,IAAIh+3B,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI6/xB,GAAGyQ,GAAI,qBAAqBp0yB,OAAO4ra,GAAG,KAAKwoY,GAAI,iBAAiBty0B,WAAW8pc,GAAG9pc,SAASog6B,cAAc,IAAIp+F,GAAGsQ,GAAI,cAAcp0yB,SAAS4ra,GAAGy4X,GAAG+P,KAAMzQ,IAAI/3X,IAAI,EAAEA,IAAI,IAAIA,IAAImN,GAAG51c,OAAOC,aAAa,IAAI6g0B,IAAG,EAC1W,SAAStsY,GAAGlsa,EAAE4H,GAAG,OAAO5H,GAAG,IAAK,QAAQ,OAAO,IAAIqY,GAAGhgC,QAAQuvB,EAAEwxD,SAAS,IAAK,UAAU,OAAO,MAAMxxD,EAAEwxD,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAASk/uB,GAAGt4yB,GAAc,MAAM,kBAAjBA,EAAEA,EAAEo9B,SAAkC,SAASp9B,EAAEA,EAAEsxB,KAAK,IAAI,CAAC,IAAI+lZ,IAAG,EAE9Q,IAAIlL,GAAG,CAAC5hb,OAAM,EAAGwP,MAAK,EAAGI,UAAS,EAAG,kBAAiB,EAAGP,OAAM,EAAGI,OAAM,EAAGF,QAAO,EAAGD,UAAS,EAAG4xB,OAAM,EAAGrzC,QAAO,EAAGuhB,KAAI,EAAG/K,MAAK,EAAGsL,MAAK,EAAGR,KAAI,EAAGO,MAAK,GAAI,SAAS6+yB,GAAG94yB,GAAG,IAAI4H,EAAE5H,GAAGA,EAAEs+I,UAAUt+I,EAAEs+I,SAAS54J,cAAc,MAAM,UAAUkiB,IAAIuka,GAAGnsa,EAAEvmB,MAAM,aAAamuB,CAAO,CAAC,SAASkyD,GAAG95D,EAAE4H,EAAE+O,EAAE/tB,GAAG6l5B,GAAG7l5B,GAAsB,GAAnBgf,EAAEuwyB,GAAGvwyB,EAAE,aAAgB5yB,SAAS2hC,EAAE,IAAI68S,GAAG,WAAW,SAAS,KAAK78S,EAAE/tB,GAAGoX,EAAEzqB,KAAK,CAAC8kB,MAAMsc,EAAEyW,UAAUxlB,IAAI,CAAC,IAAI2wyB,GAAG,KAAKiC,GAAG,KAAK,SAAS77yB,GAAGqB,GAAG+5D,GAAG/5D,EAAE,EAAE,CAAC,SAASi4yB,GAAGj4yB,GAAe,GAAGmqzB,EAAT/R,GAAGp4yB,IAAY,OAAOA,CAAC,CACpe,SAASg5yB,GAAGh5yB,EAAE4H,GAAG,GAAG,WAAW5H,EAAE,OAAO4H,CAAC,CAAC,IAAIsxyB,IAAG,EAAG,GAAGyP,EAAG,CAAC,IAAI5P,GAAG,GAAG4P,EAAG,CAAC,IAAI9P,GAAG,YAAYxi0B,SAAS,IAAIwi0B,GAAG,CAAC,IAAIU,GAAGlj0B,SAASC,cAAc,OAAOij0B,GAAGhj0B,aAAa,UAAU,WAAWsi0B,GAAG,oBAAoBU,GAAGm9F,OAAO,CAAC39F,GAAGF,EAAE,MAAME,IAAG,EAAGG,GAAGH,MAAM1i0B,SAASog6B,cAAc,EAAEpg6B,SAASog6B,aAAa,CAAC,SAASt9F,KAAKZ,KAAKA,GAAGo+F,YAAY,mBAAmB/8F,IAAIY,GAAGjC,GAAG,KAAK,CAAC,SAASqB,GAAG55yB,GAAG,GAAG,UAAUA,EAAE0nlB,cAAcuwN,GAAGuC,IAAI,CAAC,IAAI5yyB,EAAE,GAAGkyD,GAAGlyD,EAAE4yyB,GAAGx6yB,EAAE0tL,GAAG1tL,IAAI8u4B,GAAGnw4B,GAAGiJ,EAAE,CAAC,CAC/b,SAAS6xyB,GAAGz5yB,EAAE4H,EAAE+O,GAAG,YAAY3W,GAAGm5yB,KAAUqB,GAAG7jyB,GAAR4hyB,GAAG3wyB,GAAUgv4B,YAAY,mBAAmBh9F,KAAK,aAAa55yB,GAAGm5yB,IAAI,CAAC,SAASgB,GAAGn6yB,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOi4yB,GAAGuC,GAAG,CAAC,SAASV,GAAG95yB,EAAE4H,GAAG,GAAG,UAAU5H,EAAE,OAAOi4yB,GAAGrwyB,EAAE,CAAC,SAASmyyB,GAAG/5yB,EAAE4H,GAAG,GAAG,UAAU5H,GAAG,WAAWA,EAAE,OAAOi4yB,GAAGrwyB,EAAE,CAAiE,IAAIkzyB,GAAG,oBAAoBjj0B,OAAOorZ,GAAGprZ,OAAOorZ,GAA5G,SAAYjjY,EAAE4H,GAAG,OAAO5H,IAAI4H,IAAI,IAAI5H,GAAG,EAAEA,IAAI,EAAE4H,IAAI5H,IAAIA,GAAG4H,IAAIA,CAAC,EACtW,SAAS0xyB,GAAGt5yB,EAAE4H,GAAG,GAAGkzyB,GAAG96yB,EAAE4H,GAAG,OAAM,EAAG,GAAG,kBAAkB5H,GAAG,OAAOA,GAAG,kBAAkB4H,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI+O,EAAE9+B,OAAOgkB,KAAKmE,GAAGpX,EAAE/Q,OAAOgkB,KAAK+L,GAAG,GAAG+O,EAAE3hC,SAAS4T,EAAE5T,OAAO,OAAM,EAAG,IAAI4T,EAAE,EAAEA,EAAE+tB,EAAE3hC,OAAO4T,IAAI,CAAC,IAAI1R,EAAEy/B,EAAE/tB,GAAG,IAAImh0B,EAAGtr0B,KAAKmpB,EAAE1wB,KAAK4j0B,GAAG96yB,EAAE9oB,GAAG0wB,EAAE1wB,IAAI,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,SAAS8j0B,GAAGh7yB,GAAG,KAAKA,GAAGA,EAAE3qB,YAAY2qB,EAAEA,EAAE3qB,WAAW,OAAO2qB,CAAC,CACtU,SAAS46yB,GAAG56yB,EAAE4H,GAAG,IAAwBhf,EAApB+tB,EAAEqkyB,GAAGh7yB,GAAO,IAAJA,EAAE,EAAY2W,GAAG,CAAC,GAAG,IAAIA,EAAEyQ,SAAS,CAA0B,GAAzBx+B,EAAEoX,EAAE2W,EAAEyb,YAAYp9C,OAAUgrB,GAAG4H,GAAGhf,GAAGgf,EAAE,MAAM,CAACtuB,KAAKq9B,EAAE36B,OAAO4rB,EAAE5H,GAAGA,EAAEpX,CAAC,CAACoX,EAAE,CAAC,KAAK2W,GAAG,CAAC,GAAGA,EAAEzhC,YAAY,CAACyhC,EAAEA,EAAEzhC,YAAY,MAAM8qB,CAAC,CAAC2W,EAAEA,EAAEt/B,UAAU,CAACs/B,OAAE,CAAM,CAACA,EAAEqkyB,GAAGrkyB,EAAE,CAAC,CAAC,SAASujyB,GAAGl6yB,EAAE4H,GAAG,SAAO5H,IAAG4H,KAAE5H,IAAI4H,KAAK5H,GAAG,IAAIA,EAAEonB,YAAYxf,GAAG,IAAIA,EAAEwf,SAAS8yxB,GAAGl6yB,EAAE4H,EAAEvwB,YAAY,aAAa2oB,EAAEA,EAAEiyB,SAASrqB,KAAG5H,EAAEs0B,4BAAwD,GAA7Bt0B,EAAEs0B,wBAAwB1sB,KAAY,CAC9Z,SAASyxyB,KAAK,IAAI,IAAIr5yB,EAAEuU,OAAO3M,EAAE8izB,IAAK9izB,aAAa5H,EAAE624B,mBAAmB,CAAC,IAAI,IAAIlg4B,EAAE,kBAAkB/O,EAAEkv4B,cAAcn+4B,SAASugJ,IAAI,CAAC,MAAMtwJ,GAAG+tB,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAM/O,EAAE8izB,GAA/B1qzB,EAAE4H,EAAEkv4B,eAAgCzg6B,SAAS,CAAC,OAAOuxB,CAAC,CAAC,SAAS6yyB,GAAGz6yB,GAAG,IAAI4H,EAAE5H,GAAGA,EAAEs+I,UAAUt+I,EAAEs+I,SAAS54J,cAAc,OAAOkiB,IAAI,UAAUA,IAAI,SAAS5H,EAAEvmB,MAAM,WAAWumB,EAAEvmB,MAAM,QAAQumB,EAAEvmB,MAAM,QAAQumB,EAAEvmB,MAAM,aAAaumB,EAAEvmB,OAAO,aAAamuB,GAAG,SAAS5H,EAAE+24B,gBAAgB,CACxa,SAAS38F,GAAGp6yB,GAAG,IAAI4H,EAAEyxyB,KAAK1iyB,EAAE3W,EAAEg34B,YAAYpu5B,EAAEoX,EAAEi34B,eAAe,GAAGrv4B,IAAI+O,GAAGA,GAAGA,EAAEvb,eAAe8+yB,GAAGvjyB,EAAEvb,cAAc6rB,gBAAgBtQ,GAAG,CAAC,GAAG,OAAO/tB,GAAG6xzB,GAAG9jyB,GAAG,GAAG/O,EAAEhf,EAAE6S,WAAc,KAARuE,EAAEpX,EAAEjQ,OAAiBqnB,EAAE4H,GAAG,mBAAmB+O,EAAEA,EAAEug4B,eAAetv4B,EAAE+O,EAAEwg4B,aAAa3/5B,KAAK8mB,IAAI0B,EAAE2W,EAAE5+B,MAAM/C,aAAa,IAAGgrB,GAAG4H,EAAE+O,EAAEvb,eAAe/kB,WAAWuxB,EAAE0M,aAAaC,QAASqrI,aAAa,CAAC5/I,EAAEA,EAAE4/I,eAAe,IAAI1oK,EAAEy/B,EAAEyb,YAAYp9C,OAAOirB,EAAEzoB,KAAK8mB,IAAI1V,EAAE6S,MAAMvkB,GAAG0R,OAAE,IAASA,EAAEjQ,IAAIsnB,EAAEzoB,KAAK8mB,IAAI1V,EAAEjQ,IAAIzB,IAAI8oB,EAAEqb,QAAQpb,EAAErX,IAAI1R,EAAE0R,EAAEA,EAAEqX,EAAEA,EAAE/oB,GAAGA,EAAE0j0B,GAAGjkyB,EAAE1W,GAAG,IAAI0X,EAAEijyB,GAAGjkyB,EACvf/tB,GAAG1R,GAAGygC,IAAI,IAAI3X,EAAEo34B,YAAYp34B,EAAEq34B,aAAang6B,EAAEoC,MAAM0mB,EAAEs34B,eAAepg6B,EAAE8E,QAAQgkB,EAAEu34B,YAAY5/3B,EAAEr+B,MAAM0mB,EAAEw34B,cAAc7/3B,EAAE37B,WAAU4rB,EAAEA,EAAEuyD,eAAgBs90B,SAASvg6B,EAAEoC,KAAKpC,EAAE8E,QAAQgkB,EAAE6/I,kBAAkB5/I,EAAErX,GAAGoX,EAAE8/I,SAASl4I,GAAG5H,EAAEqb,OAAO1D,EAAEr+B,KAAKq+B,EAAE37B,UAAU4rB,EAAE8v4B,OAAO//3B,EAAEr+B,KAAKq+B,EAAE37B,QAAQgkB,EAAE8/I,SAASl4I,IAAI,CAAM,IAALA,EAAE,GAAO5H,EAAE2W,EAAE3W,EAAEA,EAAE3oB,YAAY,IAAI2oB,EAAEonB,UAAUxf,EAAEryB,KAAK,CAACgG,QAAQykB,EAAEmP,KAAKnP,EAAE+7xB,WAAW/sxB,IAAIhP,EAAE87xB,YAAmD,IAAvC,oBAAoBnlxB,EAAElnB,OAAOknB,EAAElnB,QAAYknB,EAAE,EAAEA,EAAE/O,EAAE5yB,OAAO2hC,KAAI3W,EAAE4H,EAAE+O,IAAKp7B,QAAQwgzB,WAAW/7xB,EAAEmP,KAAKnP,EAAEzkB,QAAQugzB,UAAU97xB,EAAEgP,GAAG,CAAC,CACzf,IAAIwqyB,GAAGmP,GAAI,iBAAiBty0B,UAAU,IAAIA,SAASog6B,aAAav7F,GAAG,KAAKZ,GAAG,KAAKmrB,GAAG,KAAKzrB,IAAG,EAC3F,SAASO,GAAGv6yB,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAE+tB,EAAEpC,SAASoC,EAAEA,EAAEtgC,SAAS,IAAIsgC,EAAEyQ,SAASzQ,EAAEA,EAAEvb,cAAc4+yB,IAAI,MAAMkB,IAAIA,KAAKwP,EAAG9h0B,KAAU,mBAALA,EAAEsyzB,KAAyBT,GAAG7xzB,GAAGA,EAAE,CAAC6S,MAAM7S,EAAEsu5B,eAAev+5B,IAAIiQ,EAAEuu5B,cAAuFvu5B,EAAE,CAACyu5B,YAA3Ezu5B,GAAGA,EAAEwS,eAAexS,EAAEwS,cAAckZ,aAAaC,QAAQqrI,gBAA+By3vB,WAAWC,aAAa1u5B,EAAE0u5B,aAAaC,UAAU3u5B,EAAE2u5B,UAAUC,YAAY5u5B,EAAE4u5B,aAAc/xE,IAAInsB,GAAGmsB,GAAG780B,KAAK680B,GAAG780B,EAAsB,GAApBA,EAAEuvzB,GAAGmC,GAAG,aAAgBtl0B,SAAS4yB,EAAE,IAAI4rT,GAAG,WAAW,SAAS,KAAK5rT,EAAE+O,GAAG3W,EAAEzqB,KAAK,CAAC8kB,MAAMuN,EAAEwlB,UAAUxkC,IAAIgf,EAAE/M,OAAOqgzB,KAAK,CACtf,SAASrB,GAAG75yB,EAAE4H,GAAG,IAAI+O,EAAE,CAAC,EAAiF,OAA/EA,EAAE3W,EAAEta,eAAekiB,EAAEliB,cAAcixB,EAAE,SAAS3W,GAAG,SAAS4H,EAAE+O,EAAE,MAAM3W,GAAG,MAAM4H,EAAS+O,CAAC,CAAC,IAAIskyB,GAAG,CAAC08F,aAAa99F,GAAG,YAAY,gBAAgB+9F,mBAAmB/9F,GAAG,YAAY,sBAAsBg+F,eAAeh+F,GAAG,YAAY,kBAAkBi+F,cAAcj+F,GAAG,aAAa,kBAAkBgB,GAAG,CAAC,EAAEE,GAAG,CAAC,EACpF,SAASL,GAAG16yB,GAAG,GAAG66yB,GAAG76yB,GAAG,OAAO66yB,GAAG76yB,GAAG,IAAIi7yB,GAAGj7yB,GAAG,OAAOA,EAAE,IAAY2W,EAAR/O,EAAEqzyB,GAAGj7yB,GAAK,IAAI2W,KAAK/O,EAAE,GAAGA,EAAEvX,eAAesmB,IAAIA,KAAKokyB,GAAG,OAAOF,GAAG76yB,GAAG4H,EAAE+O,GAAG,OAAO3W,CAAC,CAA/X2ozB,IAAK5N,GAAG1k0B,SAASC,cAAc,OAAO2qB,MAAM,mBAAmBsT,gBAAgB0myB,GAAG08F,aAAavrxB,iBAAiB6urB,GAAG28F,mBAAmBxrxB,iBAAiB6urB,GAAG48F,eAAezrxB,WAAW,oBAAoB73G,eAAe0myB,GAAG68F,cAAchs5B,YAAwJ,IAAImuzB,GAAGS,GAAG,gBAAgB15V,GAAG05V,GAAG,sBAAsBmhB,GAAGnhB,GAAG,kBAAkBlzT,GAAGkzT,GAAG,iBAAiBq9F,GAAG,IAAIn9hB,IAAI2yE,GAAG,smBAAsmBtuc,MAAM,KAC/lC,SAASszM,GAAGvyL,EAAE4H,GAAGmw4B,GAAGp65B,IAAIqiB,EAAE4H,GAAG81e,EAAG91e,EAAE,CAAC5H,GAAG,CAAC,IAAI,IAAIm8gB,GAAG,EAAEA,GAAG5uF,GAAGv4c,OAAOmniB,KAAK,CAAC,IAAI67X,GAAGzqd,GAAG4uF,IAA2D5pV,GAApDyltB,GAAGty5B,cAAuD,MAAtCsy5B,GAAG,GAAG7m4B,cAAc6m4B,GAAGp/5B,MAAM,IAAiB,CAAC25M,GAAG0nnB,GAAG,kBAAkB1nnB,GAAGyuR,GAAG,wBAAwBzuR,GAAGspoB,GAAG,oBAAoBtpoB,GAAG,WAAW,iBAAiBA,GAAG,UAAU,WAAWA,GAAG,WAAW,UAAUA,GAAGi1T,GAAG,mBAAmB30c,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAC7cA,EAAG,iBAAiB,CAAC,aAAa,gBAAgB6qc,EAAG,WAAW,oEAAoEz+f,MAAM,MAAMy+f,EAAG,WAAW,uFAAuFz+f,MAAM,MAAMy+f,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2Dz+f,MAAM,MAAMy+f,EAAG,qBAAqB,6DAA6Dz+f,MAAM,MAC/fy+f,EAAG,sBAAsB,8DAA8Dz+f,MAAM,MAAM,IAAIylV,GAAG,6NAA6NzlV,MAAM,KAAK+kL,GAAG,IAAIrzJ,IAAI,0CAA0C1xB,MAAM,KAAKM,OAAOmlV,KACzZ,SAASzuO,GAAGj2F,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEoX,EAAEvmB,MAAM,gBAAgBumB,EAAEi4L,cAActhL,EAlDjE,SAAY3W,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,EAAE0X,EAAElwB,EAAE3K,GAA4B,GAAzB0y5B,GAAGxt5B,MAAMrN,KAAKgN,WAAcwt5B,GAAG,CAAC,IAAGA,GAAgC,MAAMxo5B,MAAM+gB,EAAE,MAA1C,IAAI3H,EAAEqv4B,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAGvv4B,EAAE,CAAC,CAkDpEk44B,CAAGrv5B,EAAEgf,OAAE,EAAO5H,GAAGA,EAAEi4L,cAAc,IAAI,CACxG,SAASl+H,GAAG/5D,EAAE4H,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAI+O,EAAE,EAAEA,EAAE3W,EAAEhrB,OAAO2hC,IAAI,CAAC,IAAI/tB,EAAEoX,EAAE2W,GAAGz/B,EAAE0R,EAAEyR,MAAMzR,EAAEA,EAAEwkC,UAAUptB,EAAE,CAAC,IAAIC,OAAE,EAAO,GAAG2H,EAAE,IAAI,IAAI+P,EAAE/uB,EAAE5T,OAAO,EAAE,GAAG2iC,EAAEA,IAAI,CAAC,IAAIlwB,EAAEmB,EAAE+uB,GAAG76B,EAAE2K,EAAE8tB,SAASxV,EAAEtY,EAAEwwM,cAA2B,GAAbxwM,EAAEA,EAAE8lC,SAAYzwC,IAAImjB,GAAG/oB,EAAEs75B,uBAAuB,MAAMxy4B,EAAEi2F,GAAG/+G,EAAEuQ,EAAEsY,GAAGE,EAAEnjB,CAAC,MAAM,IAAI66B,EAAE,EAAEA,EAAE/uB,EAAE5T,OAAO2iC,IAAI,CAAoD,GAA5C76B,GAAP2K,EAAEmB,EAAE+uB,IAAOpC,SAASxV,EAAEtY,EAAEwwM,cAAcxwM,EAAEA,EAAE8lC,SAAYzwC,IAAImjB,GAAG/oB,EAAEs75B,uBAAuB,MAAMxy4B,EAAEi2F,GAAG/+G,EAAEuQ,EAAEsY,GAAGE,EAAEnjB,CAAC,CAAC,CAAC,CAAC,GAAGuy5B,GAAG,MAAMrv4B,EAAEsv4B,GAAGD,IAAG,EAAGC,GAAG,KAAKtv4B,CAAE,CAC5a,SAASwX,GAAExX,EAAE4H,GAAG,IAAI+O,EAAE/O,EAAEimB,SAAI,IAASlX,IAAIA,EAAE/O,EAAEimB,IAAI,IAAIld,KAAK,IAAI/nB,EAAEoX,EAAE,WAAW2W,EAAEvT,IAAIxa,KAAKsv5B,GAAGtw4B,EAAE5H,EAAE,GAAE,GAAI2W,EAAEU,IAAIzuB,GAAG,CAAC,SAASuv5B,GAAGn44B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAE,EAAEgf,IAAIhf,GAAG,GAAGsv5B,GAAGvh4B,EAAE3W,EAAEpX,EAAEgf,EAAE,CAAC,IAAIww4B,GAAG,kBAAkB5g6B,KAAKqyC,SAAS3nC,SAAS,IAAItJ,MAAM,GAAG,SAASm7c,GAAG/zb,GAAG,IAAIA,EAAEo44B,IAAI,CAACp44B,EAAEo44B,KAAI,EAAGt11B,EAAG5sE,SAAQ,SAAS0xB,GAAG,oBAAoBA,IAAIo8J,GAAG5gK,IAAIwE,IAAIuw4B,GAAGvw4B,GAAE,EAAG5H,GAAGm44B,GAAGvw4B,GAAE,EAAG5H,GAAG,IAAG,IAAI4H,EAAE,IAAI5H,EAAEonB,SAASpnB,EAAEA,EAAE5E,cAAc,OAAOwM,GAAGA,EAAEww4B,MAAMxw4B,EAAEww4B,KAAI,EAAGD,GAAG,mBAAkB,EAAGvw4B,GAAG,CAAC,CACjb,SAASsw4B,GAAGl44B,EAAE4H,EAAE+O,EAAE/tB,GAAG,OAAOyy4B,GAAGzz3B,IAAI,KAAK,EAAE,IAAI1wB,EAAE065B,GAAG,MAAM,KAAK,EAAE165B,EAAEykH,GAAG,MAAM,QAAQzkH,EAAE265B,GAAGl73B,EAAEz/B,EAAEwmB,KAAK,KAAKkK,EAAE+O,EAAE3W,GAAG9oB,OAAE,GAAQ835B,IAAI,eAAepn4B,GAAG,cAAcA,GAAG,UAAUA,IAAI1wB,GAAE,GAAI0R,OAAE,IAAS1R,EAAE8oB,EAAE3E,iBAAiBuM,EAAE+O,EAAE,CAAC4c,SAAQ,EAAG8mK,QAAQnjN,IAAI8oB,EAAE3E,iBAAiBuM,EAAE+O,GAAE,QAAI,IAASz/B,EAAE8oB,EAAE3E,iBAAiBuM,EAAE+O,EAAE,CAAC0jL,QAAQnjN,IAAI8oB,EAAE3E,iBAAiBuM,EAAE+O,GAAE,EAAG,CAClV,SAASm73B,GAAG9x4B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,IAAI+oB,EAAErX,EAAE,GAAG,KAAO,EAAFgf,IAAM,KAAO,EAAFA,IAAM,OAAOhf,EAAEoX,EAAE,OAAO,CAAC,GAAG,OAAOpX,EAAE,OAAO,IAAI+uB,EAAE/uB,EAAE/T,IAAI,GAAG,IAAI8iC,GAAG,IAAIA,EAAE,CAAC,IAAIlwB,EAAEmB,EAAE2l5B,UAAUmD,cAAc,GAAGjq5B,IAAIvQ,GAAG,IAAIuQ,EAAE2/B,UAAU3/B,EAAEpQ,aAAaH,EAAE,MAAM,GAAG,IAAIygC,EAAE,IAAIA,EAAE/uB,EAAEhP,OAAO,OAAO+9B,GAAG,CAAC,IAAI76B,EAAE66B,EAAE9iC,IAAI,IAAG,IAAIiI,GAAG,IAAIA,MAAKA,EAAE66B,EAAE423B,UAAUmD,iBAAkBx65B,GAAG,IAAI4F,EAAEsqC,UAAUtqC,EAAEzF,aAAaH,GAAE,OAAOygC,EAAEA,EAAE/9B,MAAM,CAAC,KAAK,OAAO6N,GAAG,CAAS,GAAG,QAAXkwB,EAAEy9yB,GAAG3t0B,IAAe,OAAe,GAAG,KAAX3K,EAAE66B,EAAE9iC,MAAc,IAAIiI,EAAE,CAAC8L,EAAEqX,EAAE0X,EAAE,SAAS3X,CAAC,CAACvY,EAAEA,EAAEpQ,UAAU,CAAC,CAACuR,EAAEA,EAAEhP,MAAM,CAACk15B,IAAG,WAAW,IAAIlm5B,EAAEqX,EAAE/oB,EAAEw2M,GAAG/2K,GAAGgB,EAAE,GACpf3X,EAAE,CAAC,IAAIvY,EAAEsw5B,GAAGr65B,IAAIsiB,GAAG,QAAG,IAASvY,EAAE,CAAC,IAAI3K,EAAE02U,GAAG10T,EAAEkB,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIiy4B,GAAGt73B,GAAG,MAAM3W,EAAE,IAAK,UAAU,IAAK,QAAQljB,EAAE445B,GAAG,MAAM,IAAK,UAAU524B,EAAE,QAAQhiB,EAAE+25B,GAAG,MAAM,IAAK,WAAW/04B,EAAE,OAAOhiB,EAAE+25B,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY/25B,EAAE+25B,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIl93B,EAAEziB,OAAO,MAAM8L,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcljB,EAAE425B,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO525B,EAC1iB625B,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa725B,EAAEq55B,GAAG,MAAM,KAAKl8F,GAAG,KAAKj5V,GAAG,KAAK66W,GAAG/+0B,EAAEg35B,GAAG,MAAM,KAAKtsZ,GAAG1qgB,EAAEs55B,GAAG,MAAM,IAAK,SAASt55B,EAAEm25B,GAAG,MAAM,IAAK,QAAQn25B,EAAE055B,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQ155B,EAAEq35B,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYr35B,EAAE645B,GAAG,IAAIzy4B,EAAE,KAAO,EAAF0E,GAAKytyB,GAAGnyyB,GAAG,WAAWlD,EAAEjjB,EAAEmmB,EAAE,OAAOzb,EAAEA,EAAE,UAAU,KAAKA,EAAEyb,EAAE,GAAG,IAAI,IAAQK,EAAJgU,EAAE3uB,EAAI,OAC/e2uB,GAAG,CAAK,IAAIg/N,GAARhzO,EAAEgU,GAAUg33B,UAAsF,GAA5E,IAAIhr4B,EAAE1uB,KAAK,OAAO0hQ,IAAIhzO,EAAEgzO,EAAE,OAAOx5P,IAAc,OAAVw5P,EAAEw4pB,GAAGx33B,EAAEx6B,KAAYmmB,EAAE3tB,KAAK2rL,GAAG3pJ,EAAEg/N,EAAEhzO,MAAS8xyB,EAAE,MAAM99xB,EAAEA,EAAE39B,MAAM,CAAC,EAAEspB,EAAEluB,SAASyS,EAAE,IAAI3K,EAAE2K,EAAEqX,EAAE,KAAK6X,EAAEz/B,GAAGygC,EAAEpiC,KAAK,CAAC8kB,MAAM5S,EAAE2lC,UAAUlqB,IAAI,CAAC,CAAC,GAAG,KAAO,EAAF0E,GAAK,CAA4E,GAAnC9qB,EAAE,aAAakjB,GAAG,eAAeA,KAAtEvY,EAAE,cAAcuY,GAAG,gBAAgBA,IAA2C2W,IAAIsmC,MAAKn+C,EAAE6X,EAAE0d,eAAe1d,EAAE483B,eAAen+E,GAAGt2zB,KAAIA,EAAE6lU,OAAgB7nV,GAAG2K,KAAGA,EAAEvQ,EAAEq9B,SAASr9B,EAAEA,GAAGuQ,EAAEvQ,EAAEkkB,eAAe3T,EAAE6sB,aAAa7sB,EAAE4w5B,aAAa9j4B,OAAUz3B,GAAqCA,EAAE8L,EAAiB,QAAfkW,GAAnCA,EAAE6X,EAAE0d,eAAe1d,EAAEqkL,WAAkBo6nB,GAAGt2zB,GAAG,QAC9dA,KAARu2yB,EAAEo6F,GAAG3w4B,KAAU,IAAIA,EAAEjqB,KAAK,IAAIiqB,EAAEjqB,OAAKiqB,EAAE,QAAUhiB,EAAE,KAAKgiB,EAAElW,GAAK9L,IAAIgiB,GAAE,CAAgU,GAA/ToE,EAAEww4B,GAAGn9pB,EAAE,eAAex5P,EAAE,eAAew6B,EAAE,QAAW,eAAevX,GAAG,gBAAgBA,IAAEkD,EAAEyy4B,GAAGp/pB,EAAE,iBAAiBx5P,EAAE,iBAAiBw6B,EAAE,WAAU89xB,EAAE,MAAMv4zB,EAAE2K,EAAE2wzB,GAAGt7zB,GAAGymB,EAAE,MAAMzE,EAAErX,EAAE2wzB,GAAGt5yB,IAAGrX,EAAE,IAAIyb,EAAEqzO,EAAEh/N,EAAE,QAAQz6B,EAAE65B,EAAEz/B,IAAK2jB,OAAOw6yB,EAAE5tzB,EAAE4sC,cAAc9wB,EAAEgzO,EAAE,KAAK6+kB,GAAGl+0B,KAAK0R,KAAIsa,EAAE,IAAIA,EAAEnmB,EAAEw6B,EAAE,QAAQzY,EAAE6X,EAAEz/B,IAAK2jB,OAAO0I,EAAEL,EAAEmxB,cAAcghxB,EAAE9+jB,EAAErzO,GAAGmyyB,EAAE9+jB,EAAKz5P,GAAGgiB,EAAE8I,EAAE,CAAa,IAAR7qB,EAAE+hB,EAAEyY,EAAE,EAAMhU,EAAhBL,EAAEpmB,EAAkBymB,EAAEA,EAAE0zd,GAAG1zd,GAAGgU,IAAQ,IAAJhU,EAAE,EAAMgzO,EAAEx5P,EAAEw5P,EAAEA,EAAE0gP,GAAG1gP,GAAGhzO,IAAI,KAAK,EAAEgU,EAAEhU,GAAGL,EAAE+zd,GAAG/zd,GAAGqU,IAAI,KAAK,EAAEhU,EAAEgU,GAAGx6B,EACpfk6e,GAAGl6e,GAAGwmB,IAAI,KAAKgU,KAAK,CAAC,GAAGrU,IAAInmB,GAAG,OAAOA,GAAGmmB,IAAInmB,EAAE2y5B,UAAU,MAAM9n4B,EAAE1E,EAAE+zd,GAAG/zd,GAAGnmB,EAAEk6e,GAAGl6e,EAAE,CAACmmB,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAOpmB,GAAGw75B,GAAG3g4B,EAAElwB,EAAE3K,EAAEomB,GAAE,GAAI,OAAOpE,GAAG,OAAOu2yB,GAAGijG,GAAG3g4B,EAAE09xB,EAAEv2yB,EAAEoE,GAAE,EAAG,CAA8D,GAAG,YAA1CpmB,GAAjB2K,EAAEmB,EAAEwvzB,GAAGxvzB,GAAG2rB,QAAW+pI,UAAU72J,EAAE62J,SAAS54J,gBAA+B,UAAU5I,GAAG,SAAS2K,EAAEhO,KAAK,IAAI2/D,EAAG4/vB,QAAQ,GAAGF,GAAGrxzB,GAAG,GAAGyxzB,GAAG9/vB,EAAG2gwB,OAAO,CAAC3gwB,EAAG+gwB,GAAG,IAAIn6sB,EAAGy5sB,EAAE,MAAM38zB,EAAE2K,EAAE62J,WAAW,UAAUxhK,EAAE4I,gBAAgB,aAAa+B,EAAEhO,MAAM,UAAUgO,EAAEhO,QAAQ2/D,EAAG0gwB,IACrV,OAD4V1gwB,IAAKA,EAAGA,EAAGp5C,EAAEpX,IAAKkxE,GAAGniD,EAAEyhC,EAAGziC,EAAEz/B,IAAW8oH,GAAIA,EAAGhgG,EAAEvY,EAAEmB,GAAG,aAAaoX,IAAIggG,EAAGv4G,EAAEql5B,gBAClf9syB,EAAGnrF,YAAY,WAAWptB,EAAEhO,MAAMqpC,GAAGr7B,EAAE,SAASA,EAAE1P,QAAOioH,EAAGp3G,EAAEwvzB,GAAGxvzB,GAAG2rB,OAAcvU,GAAG,IAAK,WAAa84yB,GAAG94sB,IAAK,SAASA,EAAG+2yB,mBAAgB77F,GAAGl7sB,EAAGs6sB,GAAG1xzB,EAAE680B,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGnrB,GAAGY,GAAG,KAAK,MAAM,IAAK,YAAYlB,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGO,GAAG5iyB,EAAEhB,EAAEz/B,GAAG,MAAM,IAAK,kBAAkB,GAAGsi0B,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQe,GAAG5iyB,EAAEhB,EAAEz/B,GAAG,IAAIyy0B,EAAG,GAAGzR,GAAGtwyB,EAAE,CAAC,OAAO5H,GAAG,IAAK,mBAAmB,IAAIk8C,EAAG,qBAAqB,MAAMt0C,EAAE,IAAK,iBAAiBs0C,EAAG,mBACpe,MAAMt0C,EAAE,IAAK,oBAAoBs0C,EAAG,sBAAsB,MAAMt0C,EAAEs0C,OAAG,CAAM,MAAMm7X,GAAGnL,GAAGlsa,EAAE2W,KAAKulC,EAAG,oBAAoB,YAAYl8C,GAAG,MAAM2W,EAAEyiD,UAAUld,EAAG,sBAAsBA,IAAK08vB,IAAI,OAAOjiyB,EAAEoB,SAASs/Z,IAAI,uBAAuBn7X,EAAG,qBAAqBA,GAAIm7X,KAAKsyY,EAAGqoF,OAAYj6uB,GAAG,UAARg6uB,GAAG765B,GAAkB665B,GAAGh65B,MAAMg65B,GAAG3/2B,YAAYilZ,IAAG,IAAiB,GAAZr3U,EAAGm4sB,GAAGvvzB,EAAEszD,IAASlnE,SAASknE,EAAG,IAAIk41B,GAAGl41B,EAAGl8C,EAAE,KAAK2W,EAAEz/B,GAAGygC,EAAEpiC,KAAK,CAAC8kB,MAAM6hD,EAAG9uB,UAAU4yE,IAAK2ptB,EAAGztwB,EAAG5qB,KAAKq4xB,EAAa,QAATA,EAAGrR,GAAG3hyB,MAAeulC,EAAG5qB,KAAKq4xB,MAAUA,EAAGtR,GA5BhM,SAAYr4yB,EAAE4H,GAAG,OAAO5H,GAAG,IAAK,iBAAiB,OAAOs4yB,GAAG1wyB,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAE23I,MAAa,MAAKi5pB,IAAG,EAAUlrX,IAAG,IAAK,YAAY,OAAOttb,EAAE4H,EAAE0pB,QAASg8Z,IAAIkrX,GAAG,KAAKx4yB,EAAE,QAAQ,OAAO,KAAK,CA4BEq6yB,CAAGr6yB,EAAE2W,GA3Bzd,SAAY3W,EAAE4H,GAAG,GAAGyva,GAAG,MAAM,mBAAmBr3a,IAAIk4yB,IAAIhsY,GAAGlsa,EAAE4H,IAAI5H,EAAEgy4B,KAAK7t4B,GAAG4zJ,GAAGg6uB,GAAG,KAAK16d,IAAG,EAAGr3a,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAK4H,EAAEpN,SAASoN,EAAErN,QAAQqN,EAAEtN,UAAUsN,EAAEpN,SAASoN,EAAErN,OAAO,CAAC,GAAGqN,EAAEqkgB,MAAM,EAAErkgB,EAAEqkgB,KAAKj3hB,OAAO,OAAO4yB,EAAEqkgB,KAAK,GAAGrkgB,EAAE23I,MAAM,OAAO7nK,OAAOC,aAAaiwB,EAAE23I,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAOq5pB,IAAI,OAAOhxyB,EAAEmQ,OAAO,KAAKnQ,EAAE0pB,KAAyB,CA2BqF8nxB,CAAGp5yB,EAAE2W,MACje,GADoe/tB,EAAEuvzB,GAAGvvzB,EAAE,kBACve5T,SAASkC,EAAE,IAAIk95B,GAAG,gBAAgB,cAAc,KAAKz93B,EAAEz/B,GAAGygC,EAAEpiC,KAAK,CAAC8kB,MAAMnjB,EAAEk2C,UAAUxkC,IAAI1R,EAAEo6C,KAAKq4xB,GAAG,CAAC5vvB,GAAGpiD,EAAE/P,EAAE,GAAE,CAAC,SAASs5J,GAAGlhK,EAAE4H,EAAE+O,GAAG,MAAM,CAACpB,SAASvV,EAAEutB,SAAS3lB,EAAEqwL,cAActhL,EAAE,CAAC,SAASwhyB,GAAGn4yB,EAAE4H,GAAG,IAAI,IAAI+O,EAAE/O,EAAE,UAAUhf,EAAE,GAAG,OAAOoX,GAAG,CAAC,IAAI9oB,EAAE8oB,EAAEC,EAAE/oB,EAAEq35B,UAAU,IAAIr35B,EAAErC,KAAK,OAAOorB,IAAI/oB,EAAE+oB,EAAY,OAAVA,EAAE8u4B,GAAG/u4B,EAAE2W,KAAY/tB,EAAE2nD,QAAQ2wH,GAAGlhK,EAAEC,EAAE/oB,IAAc,OAAV+oB,EAAE8u4B,GAAG/u4B,EAAE4H,KAAYhf,EAAErT,KAAK2rL,GAAGlhK,EAAEC,EAAE/oB,KAAK8oB,EAAEA,EAAEpmB,MAAM,CAAC,OAAOgP,CAAC,CAAC,SAASque,GAAGj3d,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEpmB,aAAaomB,GAAG,IAAIA,EAAEnrB,KAAK,OAAOmrB,GAAI,IAAI,CACnd,SAASs44B,GAAGt44B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,IAAI,IAAI+oB,EAAE2H,EAAEwq4B,WAAWz63B,EAAE,GAAG,OAAOhB,GAAGA,IAAI/tB,GAAG,CAAC,IAAInB,EAAEkvB,EAAE75B,EAAE2K,EAAEio5B,UAAU3v4B,EAAEtY,EAAE8m5B,UAAU,GAAG,OAAOzx5B,GAAGA,IAAI8L,EAAE,MAAM,IAAInB,EAAE5S,KAAK,OAAOkrB,IAAItY,EAAEsY,EAAE7oB,EAAa,OAAV4F,EAAEiy5B,GAAGp43B,EAAE1W,KAAY0X,EAAE44B,QAAQ2wH,GAAGvqJ,EAAE75B,EAAE2K,IAAKvQ,GAAc,OAAV4F,EAAEiy5B,GAAGp43B,EAAE1W,KAAY0X,EAAEpiC,KAAK2rL,GAAGvqJ,EAAE75B,EAAE2K,KAAMkvB,EAAEA,EAAE/8B,MAAM,CAAC,IAAI+9B,EAAE3iC,QAAQgrB,EAAEzqB,KAAK,CAAC8kB,MAAMuN,EAAEwlB,UAAUzV,GAAG,CAAC,IAAI6yL,GAAG,SAASC,GAAG,iBAAiB,SAASmoP,GAAG5yb,GAAG,OAAO,kBAAkBA,EAAEA,EAAE,GAAGA,GAAGhoB,QAAQwyN,GAAG,MAAMxyN,QAAQyyN,GAAG,GAAG,CAAC,SAAS8tsB,GAAGv44B,EAAE4H,EAAE+O,GAAW,GAAR/O,EAAEgrb,GAAGhrb,GAAMgrb,GAAG5yb,KAAK4H,GAAG+O,EAAE,MAAMhwB,MAAM+gB,EAAE,KAAM,CAAC,SAAS8w4B,KAAK,CAC9e,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG344B,EAAE4H,GAAG,MAAM,aAAa5H,GAAG,aAAaA,GAAG,kBAAkB4H,EAAEjuB,UAAU,kBAAkBiuB,EAAEjuB,UAAU,kBAAkBiuB,EAAEsl4B,yBAAyB,OAAOtl4B,EAAEsl4B,yBAAyB,MAAMtl4B,EAAEsl4B,wBAAwB0L,MAAM,CAC5P,IAAIC,GAAG,oBAAoB5m4B,WAAWA,gBAAW,EAAO6m4B,GAAG,oBAAoB9m4B,aAAaA,kBAAa,EAAO+m4B,GAAG,oBAAoBhlyB,QAAQA,aAAQ,EAAOilyB,GAAG,oBAAoBC,eAAeA,eAAe,qBAAqBF,GAAG,SAAS/44B,GAAG,OAAO+44B,GAAG3z3B,QAAQ,MAAMV,KAAK1kB,GAAG42H,MAAMsixB,GAAG,EAAEL,GAAG,SAASK,GAAGl54B,GAAGiS,YAAW,WAAW,MAAMjS,CAAE,GAAE,CACpV,SAASm54B,GAAGn54B,EAAE4H,GAAG,IAAI+O,EAAE/O,EAAEhf,EAAE,EAAE,EAAE,CAAC,IAAI1R,EAAEy/B,EAAEzhC,YAA6B,GAAjB8qB,EAAE1oB,YAAYq/B,GAAMz/B,GAAG,IAAIA,EAAEkwC,SAAS,GAAY,QAATzQ,EAAEz/B,EAAEo6C,MAAc,CAAC,GAAG,IAAI1oC,EAA0B,OAAvBoX,EAAE1oB,YAAYJ,QAAG0k1B,GAAGh0zB,GAAUhf,GAAG,KAAK,MAAM+tB,GAAG,OAAOA,GAAG,OAAOA,GAAG/tB,IAAI+tB,EAAEz/B,CAAC,OAAOy/B,GAAGilzB,GAAGh0zB,EAAE,CAAC,SAASwx4B,GAAGp54B,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE9qB,YAAY,CAAC,IAAI0yB,EAAE5H,EAAEonB,SAAS,GAAG,IAAIxf,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAIA,EAAE,CAAU,GAAG,OAAZA,EAAE5H,EAAEsxB,OAAiB,OAAO1pB,GAAG,OAAOA,EAAE,MAAM,GAAG,OAAOA,EAAE,OAAO,IAAI,CAAC,CAAC,OAAO5H,CAAC,CACjY,SAASq54B,GAAGr54B,GAAGA,EAAEA,EAAEs54B,gBAAgB,IAAI,IAAI1x4B,EAAE,EAAE5H,GAAG,CAAC,GAAG,IAAIA,EAAEonB,SAAS,CAAC,IAAIzQ,EAAE3W,EAAEsxB,KAAK,GAAG,MAAM3a,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAI/O,EAAE,OAAO5H,EAAE4H,GAAG,KAAK,OAAO+O,GAAG/O,GAAG,CAAC5H,EAAEA,EAAEs54B,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAG/h6B,KAAKqyC,SAAS3nC,SAAS,IAAItJ,MAAM,GAAG4g6B,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAG50kB,GAAG,oBAAoB40kB,GAAG1r3B,GAAG,iBAAiB0r3B,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAASnkF,GAAGp1zB,GAAG,IAAI4H,EAAE5H,EAAEw54B,IAAI,GAAG5x4B,EAAE,OAAOA,EAAE,IAAI,IAAI+O,EAAE3W,EAAE3oB,WAAWs/B,GAAG,CAAC,GAAG/O,EAAE+O,EAAEguT,KAAKhuT,EAAE6i4B,IAAI,CAAe,GAAd7i4B,EAAE/O,EAAE8n4B,UAAa,OAAO9n4B,EAAEy6C,OAAO,OAAO1rC,GAAG,OAAOA,EAAE0rC,MAAM,IAAIriD,EAAEq54B,GAAGr54B,GAAG,OAAOA,GAAG,CAAC,GAAG2W,EAAE3W,EAAEw54B,IAAI,OAAO7i4B,EAAE3W,EAAEq54B,GAAGr54B,EAAE,CAAC,OAAO4H,CAAC,CAAK+O,GAAJ3W,EAAE2W,GAAMt/B,UAAU,CAAC,OAAO,IAAI,CAAC,SAASi35B,GAAGtu4B,GAAkB,QAAfA,EAAEA,EAAEw54B,KAAKx54B,EAAE2kU,MAAc,IAAI3kU,EAAEnrB,KAAK,IAAImrB,EAAEnrB,KAAK,KAAKmrB,EAAEnrB,KAAK,IAAImrB,EAAEnrB,IAAI,KAAKmrB,CAAC,CAAC,SAASo4yB,GAAGp4yB,GAAG,GAAG,IAAIA,EAAEnrB,KAAK,IAAImrB,EAAEnrB,IAAI,OAAOmrB,EAAEuu4B,UAAU,MAAM5n5B,MAAM+gB,EAAE,IAAK,CAAC,SAAS8m4B,GAAGxu4B,GAAG,OAAOA,EAAEy54B,KAAK,IAAI,CAAC,IAAIG,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAG954B,GAAG,MAAM,CAAC3e,QAAQ2e,EAAE,CACve,SAASwwZ,GAAExwZ,GAAG,EAAE654B,KAAK754B,EAAE3e,QAAQu45B,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAAS7nZ,GAAEhyf,EAAE4H,GAAGiy4B,KAAKD,GAAGC,IAAI754B,EAAE3e,QAAQ2e,EAAE3e,QAAQumB,CAAC,CAAC,IAAImy4B,GAAG,CAAC,EAAEx93B,GAAEu93B,GAAGC,IAAIC,GAAGF,IAAG,GAAIG,GAAGF,GAAG,SAASG,GAAGl64B,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAEvmB,KAAK4kC,aAAa,IAAI1H,EAAE,OAAOoj4B,GAAG,IAAInx5B,EAAEoX,EAAEuu4B,UAAU,GAAG3l5B,GAAGA,EAAEux5B,8CAA8Cvy4B,EAAE,OAAOhf,EAAEwx5B,0CAA0C,IAASn64B,EAAL/oB,EAAE,CAAC,EAAI,IAAI+oB,KAAK0W,EAAEz/B,EAAE+oB,GAAG2H,EAAE3H,GAAoH,OAAjHrX,KAAIoX,EAAEA,EAAEuu4B,WAAY4L,4CAA4Cvy4B,EAAE5H,EAAEo64B,0CAA0Clj6B,GAAUA,CAAC,CAC9d,SAASmj6B,GAAGr64B,GAAyB,OAAO,QAA7BA,EAAEA,EAAEme,yBAAmC,IAASne,CAAC,CAAC,SAASs64B,KAAK9pf,GAAEwpf,IAAIxpf,GAAEj0Y,GAAE,CAAC,SAAS65B,GAAGp2C,EAAE4H,EAAE+O,GAAG,GAAG4F,GAAEl7B,UAAU045B,GAAG,MAAMpz5B,MAAM+gB,EAAE,MAAMsqf,GAAEz1e,GAAE3U,GAAGoqf,GAAEgoZ,GAAGrj4B,EAAE,CAAC,SAAS4/B,GAAGv2C,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEoX,EAAEuu4B,UAAgC,GAAtB3m4B,EAAEA,EAAEuW,kBAAqB,oBAAoBv1B,EAAE2x5B,gBAAgB,OAAO5j4B,EAAwB,IAAI,IAAIz/B,KAA9B0R,EAAEA,EAAE2x5B,kBAAiC,KAAKrj6B,KAAK0wB,GAAG,MAAMjhB,MAAM+gB,EAAE,IAAIsizB,EAAGhqzB,IAAI,UAAU9oB,IAAI,OAAO+kC,EAAE,CAAC,EAAEtF,EAAE/tB,EAAE,CACxX,SAAS4x5B,GAAGx64B,GAA2G,OAAxGA,GAAGA,EAAEA,EAAEuu4B,YAAYvu4B,EAAEy64B,2CAA2CV,GAAGE,GAAG193B,GAAEl7B,QAAQ2wgB,GAAEz1e,GAAEvc,GAAGgyf,GAAEgoZ,GAAGA,GAAG345B,UAAe,CAAE,CAAC,SAASq55B,GAAG164B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEoX,EAAEuu4B,UAAU,IAAI3l5B,EAAE,MAAMjC,MAAM+gB,EAAE,MAAMiP,GAAG3W,EAAEu2C,GAAGv2C,EAAE4H,EAAEqy4B,IAAIrx5B,EAAE6x5B,0CAA0Cz64B,EAAEwwZ,GAAEwpf,IAAIxpf,GAAEj0Y,IAAGy1e,GAAEz1e,GAAEvc,IAAIwwZ,GAAEwpf,IAAIhoZ,GAAEgoZ,GAAGrj4B,EAAE,CAAC,IAAIgk4B,GAAG,KAAKz+X,IAAG,EAAG0+X,IAAG,EAAG,SAAS75b,GAAG/gd,GAAG,OAAO264B,GAAGA,GAAG,CAAC364B,GAAG264B,GAAGpl6B,KAAKyqB,EAAE,CAChW,SAAS664B,KAAK,IAAID,IAAI,OAAOD,GAAG,CAACC,IAAG,EAAG,IAAI564B,EAAE,EAAE4H,EAAEgsC,GAAE,IAAI,IAAIj9B,EAAEgk4B,GAAG,IAAI/m2B,GAAE,EAAE5zC,EAAE2W,EAAE3hC,OAAOgrB,IAAI,CAAC,IAAIpX,EAAE+tB,EAAE3W,GAAG,GAAGpX,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAAC+x5B,GAAG,KAAKz+X,IAAG,CAAE,CAAC,MAAMhliB,GAAG,MAAM,OAAOyj6B,KAAKA,GAAGA,GAAG/h6B,MAAMonB,EAAE,IAAI07C,GAAGorC,GAAG+zzB,IAAI3j6B,CAAE,CAAC,QAAQ08D,GAAEhsC,EAAEgz4B,IAAG,CAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAIE,GAAG,GAAG124B,GAAG,EAAE224B,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAK7mB,GAAG,EAAE8mB,GAAG,GAAG,SAASC,GAAGr74B,EAAE4H,GAAGkz4B,GAAG124B,MAAM424B,GAAGF,GAAG124B,MAAM224B,GAAGA,GAAG/64B,EAAEg74B,GAAGpz4B,CAAC,CACjV,SAAS0z4B,GAAGt74B,EAAE4H,EAAE+O,GAAGsk4B,GAAGC,MAAM5mB,GAAG2mB,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAGA,GAAGn74B,EAAE,IAAIpX,EAAE0r4B,GAAGt03B,EAAEo74B,GAAG,IAAIlk6B,EAAE,GAAGo4E,GAAG1mE,GAAG,EAAEA,KAAK,GAAG1R,GAAGy/B,GAAG,EAAE,IAAI1W,EAAE,GAAGqvD,GAAG1nD,GAAG1wB,EAAE,GAAG,GAAG+oB,EAAE,CAAC,IAAI0X,EAAEzgC,EAAEA,EAAE,EAAE+oB,GAAGrX,GAAG,GAAG+uB,GAAG,GAAGz1B,SAAS,IAAI0G,IAAI+uB,EAAEzgC,GAAGygC,EAAE282B,GAAG,GAAG,GAAGhl0B,GAAG1nD,GAAG1wB,EAAEy/B,GAAGz/B,EAAE0R,EAAEwy5B,GAAGn74B,EAAED,CAAC,MAAMs03B,GAAG,GAAGr03B,EAAE0W,GAAGz/B,EAAE0R,EAAEwy5B,GAAGp74B,CAAC,CAAC,SAASu74B,GAAGv74B,GAAG,OAAOA,EAAEpmB,SAASyh6B,GAAGr74B,EAAE,GAAGs74B,GAAGt74B,EAAE,EAAE,GAAG,CAAC,SAASw74B,GAAGx74B,GAAG,KAAKA,IAAI+64B,IAAIA,GAAGD,KAAK124B,IAAI024B,GAAG124B,IAAI,KAAK424B,GAAGF,KAAK124B,IAAI024B,GAAG124B,IAAI,KAAK,KAAKpE,IAAIm74B,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK5mB,GAAG2mB,KAAKC,IAAID,GAAGC,IAAI,IAAI,CAAC,IAAIO,GAAG,KAAKC,GAAG,KAAK5v2B,IAAE,EAAG6v2B,GAAG,KACje,SAASC,GAAG574B,EAAE4H,GAAG,IAAI+O,EAAEkl4B,GAAG,EAAE,KAAK,KAAK,GAAGll4B,EAAEg13B,YAAY,UAAUh13B,EAAE433B,UAAU3m4B,EAAE+O,EAAE/8B,OAAOomB,EAAgB,QAAd4H,EAAE5H,EAAE874B,YAAoB974B,EAAE874B,UAAU,CAACnl4B,GAAG3W,EAAE+gF,OAAO,IAAIn5E,EAAEryB,KAAKohC,EAAE,CACxJ,SAASol4B,GAAG/74B,EAAE4H,GAAG,OAAO5H,EAAEnrB,KAAK,KAAK,EAAE,IAAI8hC,EAAE3W,EAAEvmB,KAAyE,OAAO,QAA3EmuB,EAAE,IAAIA,EAAEwf,UAAUzQ,EAAEjxB,gBAAgBkiB,EAAE02I,SAAS54J,cAAc,KAAKkiB,KAAmB5H,EAAEuu4B,UAAU3m4B,EAAE6z4B,GAAGz74B,EAAE074B,GAAGtC,GAAGxx4B,EAAEvyB,aAAY,GAAO,KAAK,EAAE,OAAoD,QAA7CuyB,EAAE,KAAK5H,EAAEg84B,cAAc,IAAIp04B,EAAEwf,SAAS,KAAKxf,KAAY5H,EAAEuu4B,UAAU3m4B,EAAE6z4B,GAAGz74B,EAAE074B,GAAG,MAAK,GAAO,KAAK,GAAG,OAA+B,QAAxB9z4B,EAAE,IAAIA,EAAEwf,SAAS,KAAKxf,KAAY+O,EAAE,OAAOwk4B,GAAG,CAACpl4B,GAAGu+2B,GAAG1m3B,SAASwt4B,IAAI,KAAKp74B,EAAE4v4B,cAAc,CAACC,WAAWjo4B,EAAEq04B,YAAYtl4B,EAAEul4B,UAAU,aAAYvl4B,EAAEkl4B,GAAG,GAAG,KAAK,KAAK,IAAKtN,UAAU3m4B,EAAE+O,EAAE/8B,OAAOomB,EAAEA,EAAEqiD,MAAM1rC,EAAE8k4B,GAAGz74B,EAAE074B,GAClf,MAAK,GAAO,QAAQ,OAAM,EAAG,CAAC,SAASS,GAAGn84B,GAAG,OAAO,KAAY,EAAPA,EAAEvP,OAAS,KAAa,IAARuP,EAAE+gF,MAAU,CAAC,SAASq7zB,GAAGp84B,GAAG,GAAG8rC,GAAE,CAAC,IAAIlkC,EAAE8z4B,GAAG,GAAG9z4B,EAAE,CAAC,IAAI+O,EAAE/O,EAAE,IAAIm04B,GAAG/74B,EAAE4H,GAAG,CAAC,GAAGu04B,GAAGn84B,GAAG,MAAMrZ,MAAM+gB,EAAE,MAAME,EAAEwx4B,GAAGzi4B,EAAEzhC,aAAa,IAAI0T,EAAE6y5B,GAAG7z4B,GAAGm04B,GAAG/74B,EAAE4H,GAAGg04B,GAAGhz5B,EAAE+tB,IAAI3W,EAAE+gF,OAAe,KAAT/gF,EAAE+gF,MAAY,EAAEj1C,IAAE,EAAG2v2B,GAAGz74B,EAAE,CAAC,KAAK,CAAC,GAAGm84B,GAAGn84B,GAAG,MAAMrZ,MAAM+gB,EAAE,MAAM1H,EAAE+gF,OAAe,KAAT/gF,EAAE+gF,MAAY,EAAEj1C,IAAE,EAAG2v2B,GAAGz74B,CAAC,CAAC,CAAC,CAAC,SAASq84B,GAAGr84B,GAAG,IAAIA,EAAEA,EAAEpmB,OAAO,OAAOomB,GAAG,IAAIA,EAAEnrB,KAAK,IAAImrB,EAAEnrB,KAAK,KAAKmrB,EAAEnrB,KAAKmrB,EAAEA,EAAEpmB,OAAO6h6B,GAAGz74B,CAAC,CACha,SAASs84B,GAAGt84B,GAAG,GAAGA,IAAIy74B,GAAG,OAAM,EAAG,IAAI3v2B,GAAE,OAAOuw2B,GAAGr84B,GAAG8rC,IAAE,GAAG,EAAG,IAAIlkC,EAAkG,IAA/FA,EAAE,IAAI5H,EAAEnrB,QAAQ+yB,EAAE,IAAI5H,EAAEnrB,OAAgB+yB,EAAE,UAAXA,EAAE5H,EAAEvmB,OAAmB,SAASmuB,IAAI+w4B,GAAG344B,EAAEvmB,KAAKumB,EAAEu84B,gBAAmB304B,IAAIA,EAAE8z4B,IAAI,CAAC,GAAGS,GAAGn84B,GAAG,MAAMw84B,KAAK715B,MAAM+gB,EAAE,MAAM,KAAKE,GAAGg04B,GAAG574B,EAAE4H,GAAGA,EAAEwx4B,GAAGxx4B,EAAE1yB,YAAY,CAAO,GAANmn6B,GAAGr84B,GAAM,KAAKA,EAAEnrB,IAAI,CAAgD,KAA7BmrB,EAAE,QAApBA,EAAEA,EAAE4v4B,eAAyB5v4B,EAAE6v4B,WAAW,MAAW,MAAMlp5B,MAAM+gB,EAAE,MAAM1H,EAAE,CAAiB,IAAhBA,EAAEA,EAAE9qB,YAAgB0yB,EAAE,EAAE5H,GAAG,CAAC,GAAG,IAAIA,EAAEonB,SAAS,CAAC,IAAIzQ,EAAE3W,EAAEsxB,KAAK,GAAG,OAAO3a,EAAE,CAAC,GAAG,IAAI/O,EAAE,CAAC8z4B,GAAGtC,GAAGp54B,EAAE9qB,aAAa,MAAM8qB,CAAC,CAAC4H,GAAG,KAAK,MAAM+O,GAAG,OAAOA,GAAG,OAAOA,GAAG/O,GAAG,CAAC5H,EAAEA,EAAE9qB,WAAW,CAACwm6B,GACjgB,IAAI,CAAC,MAAMA,GAAGD,GAAGrC,GAAGp54B,EAAEuu4B,UAAUr55B,aAAa,KAAK,OAAM,CAAE,CAAC,SAASsn6B,KAAK,IAAI,IAAIx84B,EAAE074B,GAAG174B,GAAGA,EAAEo54B,GAAGp54B,EAAE9qB,YAAY,CAAC,SAASun6B,KAAKf,GAAGD,GAAG,KAAK3v2B,IAAE,CAAE,CAAC,SAAS4w2B,GAAG184B,GAAG,OAAO274B,GAAGA,GAAG,CAAC374B,GAAG274B,GAAGpm6B,KAAKyqB,EAAE,CAAC,IAAI284B,GAAGhu2B,EAAGgj2B,wBAChM,SAASiL,GAAG584B,EAAE4H,EAAE+O,GAAW,GAAG,QAAX3W,EAAE2W,EAAEh2B,MAAiB,oBAAoBqf,GAAG,kBAAkBA,EAAE,CAAC,GAAG2W,EAAEkm4B,OAAO,CAAY,GAAXlm4B,EAAEA,EAAEkm4B,OAAY,CAAC,GAAG,IAAIlm4B,EAAE9hC,IAAI,MAAM8R,MAAM+gB,EAAE,MAAM,IAAI9e,EAAE+tB,EAAE433B,SAAS,CAAC,IAAI3l5B,EAAE,MAAMjC,MAAM+gB,EAAE,IAAI1H,IAAI,IAAI9oB,EAAE0R,EAAEqX,EAAE,GAAGD,EAAE,OAAG,OAAO4H,GAAG,OAAOA,EAAEjnB,KAAK,oBAAoBinB,EAAEjnB,KAAKinB,EAAEjnB,IAAIm85B,aAAa784B,EAAS2H,EAAEjnB,KAAIinB,EAAE,SAAS5H,GAAG,IAAI4H,EAAE1wB,EAAEo+B,KAAK,OAAOtV,SAAS4H,EAAE3H,GAAG2H,EAAE3H,GAAGD,CAAC,EAAE4H,EAAEk14B,WAAW784B,EAAS2H,EAAC,CAAC,GAAG,kBAAkB5H,EAAE,MAAMrZ,MAAM+gB,EAAE,MAAM,IAAIiP,EAAEkm4B,OAAO,MAAMl25B,MAAM+gB,EAAE,IAAI1H,GAAI,CAAC,OAAOA,CAAC,CAC/c,SAAS+84B,GAAG/84B,EAAE4H,GAAuC,MAApC5H,EAAEnoB,OAAO9B,UAAUmM,SAASzD,KAAKmpB,GAASjhB,MAAM+gB,EAAE,GAAG,oBAAoB1H,EAAE,qBAAqBnoB,OAAOgkB,KAAK+L,GAAGpsB,KAAK,MAAM,IAAIwkB,GAAI,CAAC,SAASg94B,GAAGh94B,GAAiB,OAAO4H,EAAf5H,EAAEyta,OAAezta,EAAE5G,SAAS,CACrM,SAAS6j5B,GAAGj94B,GAAG,SAAS4H,EAAEA,EAAE+O,GAAG,GAAG3W,EAAE,CAAC,IAAIpX,EAAEgf,EAAEk04B,UAAU,OAAOlz5B,GAAGgf,EAAEk04B,UAAU,CAACnl4B,GAAG/O,EAAEm5E,OAAO,IAAIn4F,EAAErT,KAAKohC,EAAE,CAAC,CAAC,SAASA,EAAEA,EAAE/tB,GAAG,IAAIoX,EAAE,OAAO,KAAK,KAAK,OAAOpX,GAAGgf,EAAE+O,EAAE/tB,GAAGA,EAAEA,EAAEysD,QAAQ,OAAO,IAAI,CAAC,SAASzsD,EAAEoX,EAAE4H,GAAG,IAAI5H,EAAE,IAAI46W,IAAI,OAAOhzW,GAAG,OAAOA,EAAE/xB,IAAImqB,EAAEriB,IAAIiqB,EAAE/xB,IAAI+xB,GAAG5H,EAAEriB,IAAIiqB,EAAErvB,MAAMqvB,GAAGA,EAAEA,EAAEytC,QAAQ,OAAOr1C,CAAC,CAAC,SAAS9oB,EAAE8oB,EAAE4H,GAAsC,OAAnC5H,EAAEk94B,GAAGl94B,EAAE4H,IAAKrvB,MAAM,EAAEynB,EAAEq1C,QAAQ,KAAYr1C,CAAC,CAAC,SAASC,EAAE2H,EAAE+O,EAAE/tB,GAAa,OAAVgf,EAAErvB,MAAMqQ,EAAMoX,EAA6C,QAAjBpX,EAAEgf,EAAE8n4B,YAA6B9m5B,EAAEA,EAAErQ,OAAQo+B,GAAG/O,EAAEm5E,OAAO,EAAEpqE,GAAG/tB,GAAEgf,EAAEm5E,OAAO,EAASpqE,IAArG/O,EAAEm5E,OAAO,QAAQpqE,EAAqF,CAAC,SAASgB,EAAE/P,GACzd,OAD4d5H,GAC7f,OAAO4H,EAAE8n4B,YAAY9n4B,EAAEm5E,OAAO,GAAUn5E,CAAC,CAAC,SAASngB,EAAEuY,EAAE4H,EAAE+O,EAAE/tB,GAAG,OAAG,OAAOgf,GAAG,IAAIA,EAAE/yB,MAAW+yB,EAAEu14B,GAAGxm4B,EAAE3W,EAAEvP,KAAK7H,IAAKhP,OAAOomB,EAAE4H,KAAEA,EAAE1wB,EAAE0wB,EAAE+O,IAAK/8B,OAAOomB,EAAS4H,EAAC,CAAC,SAAS9qB,EAAEkjB,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAIqX,EAAE0W,EAAEl9B,KAAK,OAAGwmB,IAAIigG,EAAUz4F,EAAEzH,EAAE4H,EAAE+O,EAAEj9B,MAAMC,SAASiP,EAAE+tB,EAAE9gC,KAAQ,OAAO+xB,IAAIA,EAAE+j4B,cAAc1r4B,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEgU,WAAWq2yB,GAAI0yF,GAAG/84B,KAAK2H,EAAEnuB,QAAamP,EAAE1R,EAAE0wB,EAAE+O,EAAEj9B,QAASiH,IAAIi85B,GAAG584B,EAAE4H,EAAE+O,GAAG/tB,EAAEhP,OAAOomB,EAAEpX,KAAEA,EAAEw05B,GAAGzm4B,EAAEl9B,KAAKk9B,EAAE9gC,IAAI8gC,EAAEj9B,MAAM,KAAKsmB,EAAEvP,KAAK7H,IAAKjI,IAAIi85B,GAAG584B,EAAE4H,EAAE+O,GAAG/tB,EAAEhP,OAAOomB,EAASpX,EAAC,CAAC,SAASmX,EAAEC,EAAE4H,EAAE+O,EAAE/tB,GAAG,OAAG,OAAOgf,GAAG,IAAIA,EAAE/yB,KACjf+yB,EAAE2m4B,UAAUmD,gBAAgB/63B,EAAE+63B,eAAe9p4B,EAAE2m4B,UAAU51hB,iBAAiBhiW,EAAEgiW,iBAAsB/wW,EAAEy14B,GAAG1m4B,EAAE3W,EAAEvP,KAAK7H,IAAKhP,OAAOomB,EAAE4H,KAAEA,EAAE1wB,EAAE0wB,EAAE+O,EAAEh9B,UAAU,KAAMC,OAAOomB,EAAS4H,EAAC,CAAC,SAASH,EAAEzH,EAAE4H,EAAE+O,EAAE/tB,EAAEqX,GAAG,OAAG,OAAO2H,GAAG,IAAIA,EAAE/yB,MAAW+yB,EAAE014B,GAAG3m4B,EAAE3W,EAAEvP,KAAK7H,EAAEqX,IAAKrmB,OAAOomB,EAAE4H,KAAEA,EAAE1wB,EAAE0wB,EAAE+O,IAAK/8B,OAAOomB,EAAS4H,EAAC,CAAC,SAASkY,EAAE9f,EAAE4H,EAAE+O,GAAG,GAAG,kBAAkB/O,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAOA,EAAEu14B,GAAG,GAAGv14B,EAAE5H,EAAEvP,KAAKkmB,IAAK/8B,OAAOomB,EAAE4H,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEqM,UAAU,KAAKi/B,EAAG,OAAOv8B,EAAEym4B,GAAGx14B,EAAEnuB,KAAKmuB,EAAE/xB,IAAI+xB,EAAEluB,MAAM,KAAKsmB,EAAEvP,KAAKkmB,IACjfh2B,IAAIi85B,GAAG584B,EAAE,KAAK4H,GAAG+O,EAAE/8B,OAAOomB,EAAE2W,EAAE,KAAKqmC,EAAG,OAAOp1C,EAAEy14B,GAAGz14B,EAAE5H,EAAEvP,KAAKkmB,IAAK/8B,OAAOomB,EAAE4H,EAAE,KAAK0izB,EAAiB,OAAOxqyB,EAAE9f,GAAEpX,EAAnBgf,EAAE6la,OAAmB7la,EAAExO,UAAUud,GAAG,GAAGyiiB,GAAGxxiB,IAAIwizB,EAAGxizB,GAAG,OAAOA,EAAE014B,GAAG114B,EAAE5H,EAAEvP,KAAKkmB,EAAE,OAAQ/8B,OAAOomB,EAAE4H,EAAEm14B,GAAG/84B,EAAE4H,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS5E,EAAEhD,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE,OAAO0wB,EAAEA,EAAE/xB,IAAI,KAAK,GAAG,kBAAkB8gC,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAO,OAAOz/B,EAAE,KAAKuQ,EAAEuY,EAAE4H,EAAE,GAAG+O,EAAE/tB,GAAG,GAAG,kBAAkB+tB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE1C,UAAU,KAAKi/B,EAAG,OAAOv8B,EAAE9gC,MAAMqB,EAAE4F,EAAEkjB,EAAE4H,EAAE+O,EAAE/tB,GAAG,KAAK,KAAKo0D,EAAG,OAAOrmC,EAAE9gC,MAAMqB,EAAE6oB,EAAEC,EAAE4H,EAAE+O,EAAE/tB,GAAG,KAAK,KAAK0h0B,EAAG,OAAiBtnzB,EAAEhD,EACpf4H,GADwe1wB,EAAEy/B,EAAE82Z,OACxe92Z,EAAEvd,UAAUxQ,GAAG,GAAGwwjB,GAAGziiB,IAAIyzyB,EAAGzzyB,GAAG,OAAO,OAAOz/B,EAAE,KAAKuwB,EAAEzH,EAAE4H,EAAE+O,EAAE/tB,EAAE,MAAMm05B,GAAG/84B,EAAE2W,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS35B,EAAEgjB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,GAAG,kBAAkB0R,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAwBnB,EAAEmgB,EAAnB5H,EAAEA,EAAEtiB,IAAIi5B,IAAI,KAAW,GAAG/tB,EAAE1R,GAAG,GAAG,kBAAkB0R,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEqrB,UAAU,KAAKi/B,EAAG,OAA2Cp2D,EAAE8qB,EAAtC5H,EAAEA,EAAEtiB,IAAI,OAAOkL,EAAE/S,IAAI8gC,EAAE/tB,EAAE/S,MAAM,KAAW+S,EAAE1R,GAAG,KAAK8lE,EAAG,OAA2Cj9C,EAAE6H,EAAtC5H,EAAEA,EAAEtiB,IAAI,OAAOkL,EAAE/S,IAAI8gC,EAAE/tB,EAAE/S,MAAM,KAAW+S,EAAE1R,GAAG,KAAKoz0B,EAAiB,OAAOtt0B,EAAEgjB,EAAE4H,EAAE+O,GAAE1W,EAAvBrX,EAAE6kb,OAAuB7kb,EAAEwQ,UAAUliB,GAAG,GAAGkikB,GAAGxwjB,IAAIwh0B,EAAGxh0B,GAAG,OAAwB6e,EAAEG,EAAnB5H,EAAEA,EAAEtiB,IAAIi5B,IAAI,KAAW/tB,EAAE1R,EAAE,MAAM6l6B,GAAGn14B,EAAEhf,EAAE,CAAC,OAAO,IAAI,CAC9f,SAASkW,EAAE5nB,EAAEygC,EAAElwB,EAAE3K,GAAG,IAAI,IAAIijB,EAAE,KAAK0H,EAAE,KAAKlE,EAAEoU,EAAEJ,EAAEI,EAAE,EAAE56B,EAAE,KAAK,OAAOwmB,GAAGgU,EAAE9vB,EAAEzS,OAAOuiC,IAAI,CAAChU,EAAEhrB,MAAMg/B,GAAGx6B,EAAEwmB,EAAEA,EAAE,MAAMxmB,EAAEwmB,EAAE8xC,QAAQ,IAAIv2C,EAAEkE,EAAE9rB,EAAEqsB,EAAE9b,EAAE8vB,GAAGz6B,GAAG,GAAG,OAAOgiB,EAAE,CAAC,OAAOyE,IAAIA,EAAExmB,GAAG,KAAK,CAACijB,GAAGuD,GAAG,OAAOzE,EAAE4w4B,WAAW9n4B,EAAE1wB,EAAEqsB,GAAGoU,EAAE1X,EAAEnB,EAAE6Y,EAAEJ,GAAG,OAAO9P,EAAE1H,EAAEjB,EAAE2I,EAAE4tC,QAAQv2C,EAAE2I,EAAE3I,EAAEyE,EAAExmB,CAAC,CAAC,GAAGw6B,IAAI9vB,EAAEzS,OAAO,OAAO2hC,EAAEz/B,EAAEqsB,GAAGuoC,IAAGuv2B,GAAGnk6B,EAAEqgC,GAAGxX,EAAE,GAAG,OAAOwD,EAAE,CAAC,KAAKgU,EAAE9vB,EAAEzS,OAAOuiC,IAAkB,QAAdhU,EAAEuc,EAAE5oC,EAAEuQ,EAAE8vB,GAAGz6B,MAAc66B,EAAE1X,EAAEsD,EAAEoU,EAAEJ,GAAG,OAAO9P,EAAE1H,EAAEwD,EAAEkE,EAAE4tC,QAAQ9xC,EAAEkE,EAAElE,GAAc,OAAXuoC,IAAGuv2B,GAAGnk6B,EAAEqgC,GAAUxX,CAAC,CAAC,IAAIwD,EAAE3a,EAAE1R,EAAEqsB,GAAGgU,EAAE9vB,EAAEzS,OAAOuiC,IAAsB,QAAlBx6B,EAAEC,EAAEumB,EAAErsB,EAAEqgC,EAAE9vB,EAAE8vB,GAAGz6B,MAAckjB,GAAG,OAAOjjB,EAAE2y5B,WAAWns4B,EAAEikY,OAAO,OACvfzqZ,EAAElH,IAAI0hC,EAAEx6B,EAAElH,KAAK8hC,EAAE1X,EAAEljB,EAAE46B,EAAEJ,GAAG,OAAO9P,EAAE1H,EAAEhjB,EAAE0qB,EAAE4tC,QAAQt4D,EAAE0qB,EAAE1qB,GAAuD,OAApDijB,GAAGuD,EAAErtB,SAAQ,SAAS8pB,GAAG,OAAO4H,EAAE1wB,EAAE8oB,EAAE,IAAG8rC,IAAGuv2B,GAAGnk6B,EAAEqgC,GAAUxX,CAAC,CAAC,SAASmD,EAAEhsB,EAAEygC,EAAElwB,EAAE3K,GAAG,IAAIijB,EAAEqqzB,EAAG3i0B,GAAG,GAAG,oBAAoBsY,EAAE,MAAMpZ,MAAM+gB,EAAE,MAAkB,GAAG,OAAfjgB,EAAEsY,EAAEthB,KAAKgJ,IAAc,MAAMd,MAAM+gB,EAAE,MAAM,IAAI,IAAInE,EAAExD,EAAE,KAAK0H,EAAEkQ,EAAEJ,EAAEI,EAAE,EAAE56B,EAAE,KAAK+hB,EAAErX,EAAE1N,OAAO,OAAO0tB,IAAI3I,EAAEg1G,KAAKv8F,IAAIzY,EAAErX,EAAE1N,OAAO,CAAC0tB,EAAElvB,MAAMg/B,GAAGx6B,EAAE0qB,EAAEA,EAAE,MAAM1qB,EAAE0qB,EAAE4tC,QAAQ,IAAInyC,EAAEF,EAAE9rB,EAAEuwB,EAAE3I,EAAE/mB,MAAM+E,GAAG,GAAG,OAAOomB,EAAE,CAAC,OAAOuE,IAAIA,EAAE1qB,GAAG,KAAK,CAACijB,GAAGyH,GAAG,OAAOvE,EAAEws4B,WAAW9n4B,EAAE1wB,EAAEuwB,GAAGkQ,EAAE1X,EAAEiD,EAAEyU,EAAEJ,GAAG,OAAOhU,EAAExD,EAAEmD,EAAEK,EAAE8xC,QAAQnyC,EAAEK,EAAEL,EAAEuE,EAAE1qB,CAAC,CAAC,GAAG+hB,EAAEg1G,KAAK,OAAOn9F,EAAEz/B,EACzfuwB,GAAGqkC,IAAGuv2B,GAAGnk6B,EAAEqgC,GAAGxX,EAAE,GAAG,OAAO0H,EAAE,CAAC,MAAM3I,EAAEg1G,KAAKv8F,IAAIzY,EAAErX,EAAE1N,OAAwB,QAAjB+kB,EAAEghB,EAAE5oC,EAAE4nB,EAAE/mB,MAAM+E,MAAc66B,EAAE1X,EAAEnB,EAAE6Y,EAAEJ,GAAG,OAAOhU,EAAExD,EAAEjB,EAAEyE,EAAE8xC,QAAQv2C,EAAEyE,EAAEzE,GAAc,OAAXgtC,IAAGuv2B,GAAGnk6B,EAAEqgC,GAAUxX,CAAC,CAAC,IAAI0H,EAAE7e,EAAE1R,EAAEuwB,IAAI3I,EAAEg1G,KAAKv8F,IAAIzY,EAAErX,EAAE1N,OAA4B,QAArB+kB,EAAE9hB,EAAEyqB,EAAEvwB,EAAEqgC,EAAEzY,EAAE/mB,MAAM+E,MAAckjB,GAAG,OAAOlB,EAAE4w4B,WAAWjo4B,EAAE+/X,OAAO,OAAO1oY,EAAEjpB,IAAI0hC,EAAEzY,EAAEjpB,KAAK8hC,EAAE1X,EAAEnB,EAAE6Y,EAAEJ,GAAG,OAAOhU,EAAExD,EAAEjB,EAAEyE,EAAE8xC,QAAQv2C,EAAEyE,EAAEzE,GAAuD,OAApDkB,GAAGyH,EAAEvxB,SAAQ,SAAS8pB,GAAG,OAAO4H,EAAE1wB,EAAE8oB,EAAE,IAAG8rC,IAAGuv2B,GAAGnk6B,EAAEqgC,GAAUxX,CAAC,CAG3T,OAH4T,SAASs1yB,EAAEr1yB,EAAEpX,EAAEqX,EAAExY,GAAkF,GAA/E,kBAAkBwY,GAAG,OAAOA,GAAGA,EAAExmB,OAAOymH,GAAI,OAAOjgG,EAAEpqB,MAAMoqB,EAAEA,EAAEvmB,MAAMC,UAAa,kBAAkBsmB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEgU,UAAU,KAAKi/B,EAAGlzC,EAAE,CAAC,IAAI,IAAIljB,EAC7hBmjB,EAAEpqB,IAAIkqB,EAAEnX,EAAE,OAAOmX,GAAG,CAAC,GAAGA,EAAElqB,MAAMiH,EAAE,CAAU,IAATA,EAAEmjB,EAAExmB,QAAYymH,GAAI,GAAG,IAAIngG,EAAElrB,IAAI,CAAC8hC,EAAE3W,EAAED,EAAEs1C,UAASzsD,EAAE1R,EAAE6oB,EAAEE,EAAEvmB,MAAMC,WAAYC,OAAOomB,EAAEA,EAAEpX,EAAE,MAAMoX,CAAC,OAAO,GAAGD,EAAE4r4B,cAAc7u5B,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEm3B,WAAWq2yB,GAAI0yF,GAAGlg6B,KAAKijB,EAAEtmB,KAAK,CAACk9B,EAAE3W,EAAED,EAAEs1C,UAASzsD,EAAE1R,EAAE6oB,EAAEE,EAAEvmB,QAASiH,IAAIi85B,GAAG584B,EAAED,EAAEE,GAAGrX,EAAEhP,OAAOomB,EAAEA,EAAEpX,EAAE,MAAMoX,CAAC,CAAC2W,EAAE3W,EAAED,GAAG,KAAK,CAAM6H,EAAE5H,EAAED,GAAGA,EAAEA,EAAEs1C,OAAO,CAACp1C,EAAExmB,OAAOymH,IAAIt3G,EAAE005B,GAAGr94B,EAAEvmB,MAAMC,SAASqmB,EAAEvP,KAAKhJ,EAAEwY,EAAEpqB,MAAO+D,OAAOomB,EAAEA,EAAEpX,KAAInB,EAAE215B,GAAGn94B,EAAExmB,KAAKwmB,EAAEpqB,IAAIoqB,EAAEvmB,MAAM,KAAKsmB,EAAEvP,KAAKhJ,IAAK9G,IAAIi85B,GAAG584B,EAAEpX,EAAEqX,GAAGxY,EAAE7N,OAAOomB,EAAEA,EAAEvY,EAAE,CAAC,OAAOkwB,EAAE3X,GAAG,KAAKg9C,EAAGh9C,EAAE,CAAC,IAAID,EAAEE,EAAEpqB,IAAI,OACzf+S,GAAG,CAAC,GAAGA,EAAE/S,MAAMkqB,EAAC,CAAC,GAAG,IAAInX,EAAE/T,KAAK+T,EAAE2l5B,UAAUmD,gBAAgBzx4B,EAAEyx4B,eAAe9o5B,EAAE2l5B,UAAU51hB,iBAAiB14W,EAAE04W,eAAe,CAAChiW,EAAE3W,EAAEpX,EAAEysD,UAASzsD,EAAE1R,EAAE0R,EAAEqX,EAAEtmB,UAAU,KAAMC,OAAOomB,EAAEA,EAAEpX,EAAE,MAAMoX,CAAC,CAAM2W,EAAE3W,EAAEpX,GAAG,KAAM,CAAKgf,EAAE5H,EAAEpX,GAAGA,EAAEA,EAAEysD,OAAO,EAACzsD,EAAEy05B,GAAGp94B,EAAED,EAAEvP,KAAKhJ,IAAK7N,OAAOomB,EAAEA,EAAEpX,CAAC,CAAC,OAAO+uB,EAAE3X,GAAG,KAAKsqzB,EAAG,OAAiBjV,EAAEr1yB,EAAEpX,GAAdmX,EAAEE,EAAEwta,OAAcxta,EAAE7G,UAAU3R,GAAG,GAAG2xjB,GAAGn5iB,GAAG,OAAOnB,EAAEkB,EAAEpX,EAAEqX,EAAExY,GAAG,GAAG2i0B,EAAGnqzB,GAAG,OAAOiD,EAAElD,EAAEpX,EAAEqX,EAAExY,GAAGs15B,GAAG/84B,EAAEC,EAAE,CAAC,MAAM,kBAAkBA,GAAG,KAAKA,GAAG,kBAAkBA,GAAGA,EAAE,GAAGA,EAAE,OAAOrX,GAAG,IAAIA,EAAE/T,KAAK8hC,EAAE3W,EAAEpX,EAAEysD,UAASzsD,EAAE1R,EAAE0R,EAAEqX,IAAKrmB,OAAOomB,EAAEA,EAAEpX,IACnf+tB,EAAE3W,EAAEpX,IAAGA,EAAEu05B,GAAGl94B,EAAED,EAAEvP,KAAKhJ,IAAK7N,OAAOomB,EAAEA,EAAEpX,GAAG+uB,EAAE3X,IAAI2W,EAAE3W,EAAEpX,EAAE,CAAS,CAAC,IAAI205B,GAAGN,IAAG,GAAIO,GAAGP,IAAG,GAAIQ,GAAG3D,GAAG,MAAM4D,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAAS5j4B,KAAK4j4B,GAAGD,GAAGD,GAAG,IAAI,CAAC,SAASji2B,GAAGz7C,GAAG,IAAI4H,EAAE614B,GAAGp85B,QAAQmva,GAAEitf,IAAIz94B,EAAE694B,cAAcj24B,CAAC,CAAC,SAASg0C,GAAG57C,EAAE4H,EAAE+O,GAAG,KAAK,OAAO3W,GAAG,CAAC,IAAIpX,EAAEoX,EAAE0v4B,UAA+H,IAApH1v4B,EAAE894B,WAAWl24B,KAAKA,GAAG5H,EAAE894B,YAAYl24B,EAAE,OAAOhf,IAAIA,EAAEk15B,YAAYl24B,IAAI,OAAOhf,IAAIA,EAAEk15B,WAAWl24B,KAAKA,IAAIhf,EAAEk15B,YAAYl24B,GAAM5H,IAAI2W,EAAE,MAAM3W,EAAEA,EAAEpmB,MAAM,CAAC,CACnZ,SAASo3c,GAAGhxb,EAAE4H,GAAG814B,GAAG194B,EAAE494B,GAAGD,GAAG,KAAsB,QAAjB394B,EAAEA,EAAE8qtB,eAAuB,OAAO9qtB,EAAE+94B,eAAe,KAAK/94B,EAAEg+4B,MAAMp24B,KAAKg8nB,IAAG,GAAI5joB,EAAE+94B,aAAa,KAAK,CAAC,SAASxoF,GAAGv1zB,GAAG,IAAI4H,EAAE5H,EAAE694B,cAAc,GAAGD,KAAK594B,EAAE,GAAGA,EAAE,CAAC2jB,QAAQ3jB,EAAEi+4B,cAAcr24B,EAAE7tB,KAAK,MAAM,OAAO4j6B,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM/25B,MAAM+gB,EAAE,MAAMi24B,GAAG394B,EAAE094B,GAAG5yL,aAAa,CAACkzL,MAAM,EAAED,aAAa/94B,EAAE,MAAM294B,GAAGA,GAAG5j6B,KAAKimB,EAAE,OAAO4H,CAAC,CAAC,IAAIquzB,GAAG,KAAK,SAASE,GAAGn2zB,GAAG,OAAOi2zB,GAAGA,GAAG,CAACj2zB,GAAGi2zB,GAAG1g1B,KAAKyqB,EAAE,CACvY,SAASyc,GAAGzc,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE0wB,EAAEs24B,YAA+E,OAAnE,OAAOhn6B,GAAGy/B,EAAE58B,KAAK48B,EAAEw/yB,GAAGvuzB,KAAK+O,EAAE58B,KAAK7C,EAAE6C,KAAK7C,EAAE6C,KAAK48B,GAAG/O,EAAEs24B,YAAYvn4B,EAASs+mB,GAAGj1nB,EAAEpX,EAAE,CAAC,SAASqsoB,GAAGj1nB,EAAE4H,GAAG5H,EAAEg+4B,OAAOp24B,EAAE,IAAI+O,EAAE3W,EAAE0v4B,UAAqC,IAA3B,OAAO/43B,IAAIA,EAAEqn4B,OAAOp24B,GAAG+O,EAAE3W,EAAMA,EAAEA,EAAEpmB,OAAO,OAAOomB,GAAGA,EAAE894B,YAAYl24B,EAAgB,QAAd+O,EAAE3W,EAAE0v4B,aAAqB/43B,EAAEmn4B,YAAYl24B,GAAG+O,EAAE3W,EAAEA,EAAEA,EAAEpmB,OAAO,OAAO,IAAI+8B,EAAE9hC,IAAI8hC,EAAE433B,UAAU,IAAI,CAAC,IAAI4P,IAAG,EAAG,SAAS1mF,GAAGz3zB,GAAGA,EAAEo+4B,YAAY,CAACC,UAAUr+4B,EAAE4v4B,cAAc0O,gBAAgB,KAAKC,eAAe,KAAKx2V,OAAO,CAAC80N,QAAQ,KAAKqhI,YAAY,KAAKF,MAAM,GAAGQ,QAAQ,KAAK,CAC/e,SAAS/oF,GAAGz1zB,EAAE4H,GAAG5H,EAAEA,EAAEo+4B,YAAYx24B,EAAEw24B,cAAcp+4B,IAAI4H,EAAEw24B,YAAY,CAACC,UAAUr+4B,EAAEq+4B,UAAUC,gBAAgBt+4B,EAAEs+4B,gBAAgBC,eAAev+4B,EAAEu+4B,eAAex2V,OAAO/njB,EAAE+njB,OAAOy2V,QAAQx+4B,EAAEw+4B,SAAS,CAAC,SAASC,GAAGz+4B,EAAE4H,GAAG,MAAM,CAAC824B,UAAU1+4B,EAAE2+4B,KAAK/24B,EAAE/yB,IAAI,EAAE42qB,QAAQ,KAAKrwqB,SAAS,KAAKrB,KAAK,KAAK,CACtR,SAAS0ngB,GAAGzhf,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEoX,EAAEo+4B,YAAY,GAAG,OAAOx15B,EAAE,OAAO,KAAgB,GAAXA,EAAEA,EAAEm/jB,OAAU,KAAO,EAAFzwY,IAAK,CAAC,IAAIpgM,EAAE0R,EAAEi0xB,QAA+D,OAAvD,OAAO3lyB,EAAE0wB,EAAE7tB,KAAK6tB,GAAGA,EAAE7tB,KAAK7C,EAAE6C,KAAK7C,EAAE6C,KAAK6tB,GAAGhf,EAAEi0xB,QAAQj1wB,EAASqtnB,GAAGj1nB,EAAE2W,EAAE,CAAoF,OAAnE,QAAhBz/B,EAAE0R,EAAEs15B,cAAsBt24B,EAAE7tB,KAAK6tB,EAAEuuzB,GAAGvt0B,KAAKgf,EAAE7tB,KAAK7C,EAAE6C,KAAK7C,EAAE6C,KAAK6tB,GAAGhf,EAAEs15B,YAAYt24B,EAASqtnB,GAAGj1nB,EAAE2W,EAAE,CAAC,SAASq/yB,GAAGh2zB,EAAE4H,EAAE+O,GAAmB,GAAG,QAAnB/O,EAAEA,EAAEw24B,eAA0Bx24B,EAAEA,EAAEmgjB,OAAO,KAAO,QAAFpxiB,IAAY,CAAC,IAAI/tB,EAAEgf,EAAEo24B,MAAwBrn4B,GAAlB/tB,GAAGoX,EAAE6w4B,aAAkBjp4B,EAAEo24B,MAAMrn4B,EAAEk9yB,GAAG7zzB,EAAE2W,EAAE,CAAC,CACrZ,SAASotO,GAAG/jP,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAEo+4B,YAAYx15B,EAAEoX,EAAE0v4B,UAAU,GAAG,OAAO9m5B,GAAoB+tB,KAAhB/tB,EAAEA,EAAEw15B,aAAmB,CAAC,IAAIln6B,EAAE,KAAK+oB,EAAE,KAAyB,GAAG,QAAvB0W,EAAEA,EAAE2n4B,iBAA4B,CAAC,EAAE,CAAC,IAAI3m4B,EAAE,CAAC+m4B,UAAU/n4B,EAAE+n4B,UAAUC,KAAKho4B,EAAEgo4B,KAAK9p6B,IAAI8hC,EAAE9hC,IAAI42qB,QAAQ90oB,EAAE80oB,QAAQrwqB,SAASu7B,EAAEv7B,SAASrB,KAAK,MAAM,OAAOkmB,EAAE/oB,EAAE+oB,EAAE0X,EAAE1X,EAAEA,EAAElmB,KAAK49B,EAAEhB,EAAEA,EAAE58B,IAAI,OAAO,OAAO48B,GAAG,OAAO1W,EAAE/oB,EAAE+oB,EAAE2H,EAAE3H,EAAEA,EAAElmB,KAAK6tB,CAAC,MAAM1wB,EAAE+oB,EAAE2H,EAAiH,OAA/G+O,EAAE,CAAC0n4B,UAAUz15B,EAAEy15B,UAAUC,gBAAgBpn6B,EAAEqn6B,eAAet+4B,EAAE8njB,OAAOn/jB,EAAEm/jB,OAAOy2V,QAAQ515B,EAAE415B,cAASx+4B,EAAEo+4B,YAAYzn4B,EAAQ,CAAoB,QAAnB3W,EAAE2W,EAAE4n4B,gBAAwB5n4B,EAAE2n4B,gBAAgB124B,EAAE5H,EAAEjmB,KACnf6tB,EAAE+O,EAAE4n4B,eAAe324B,CAAC,CACpB,SAASg34B,GAAG5+4B,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE8oB,EAAEo+4B,YAAYD,IAAG,EAAG,IAAIl+4B,EAAE/oB,EAAEon6B,gBAAgB3m4B,EAAEzgC,EAAEqn6B,eAAe925B,EAAEvQ,EAAE6wkB,OAAO80N,QAAQ,GAAG,OAAOp1xB,EAAE,CAACvQ,EAAE6wkB,OAAO80N,QAAQ,KAAK,IAAI//xB,EAAE2K,EAAEsY,EAAEjjB,EAAE/C,KAAK+C,EAAE/C,KAAK,KAAK,OAAO49B,EAAE1X,EAAEF,EAAE4X,EAAE59B,KAAKgmB,EAAE4X,EAAE76B,EAAE,IAAI2qB,EAAEzH,EAAE0v4B,UAAU,OAAOjo4B,KAAoBhgB,GAAhBggB,EAAEA,EAAE224B,aAAgBG,kBAAmB5m4B,IAAI,OAAOlwB,EAAEggB,EAAE624B,gBAAgBv+4B,EAAEtY,EAAE1N,KAAKgmB,EAAE0H,EAAE824B,eAAezh6B,GAAG,CAAC,GAAG,OAAOmjB,EAAE,CAAC,IAAI6f,EAAE5oC,EAAEmn6B,UAA6B,IAAnB1m4B,EAAE,EAAElQ,EAAE1H,EAAEjjB,EAAE,KAAK2K,EAAEwY,IAAI,CAAC,IAAI+C,EAAEvb,EAAEk35B,KAAK3h6B,EAAEyK,EAAEi35B,UAAU,IAAI915B,EAAEoa,KAAKA,EAAE,CAAC,OAAOyE,IAAIA,EAAEA,EAAE1tB,KAAK,CAAC2k6B,UAAU1h6B,EAAE2h6B,KAAK,EAAE9p6B,IAAI4S,EAAE5S,IAAI42qB,QAAQhkqB,EAAEgkqB,QAAQrwqB,SAASqM,EAAErM,SACvfrB,KAAK,OAAOimB,EAAE,CAAC,IAAIlB,EAAEkB,EAAEkD,EAAEzb,EAAU,OAARub,EAAE4E,EAAE5qB,EAAE25B,EAASzT,EAAEruB,KAAK,KAAK,EAAc,GAAG,oBAAfiqB,EAAEoE,EAAEuopB,SAAiC,CAAC3roB,EAAEhhB,EAAErgB,KAAKzB,EAAE8iC,EAAE9c,GAAG,MAAMhD,CAAC,CAAC8f,EAAEhhB,EAAE,MAAMkB,EAAE,KAAK,EAAElB,EAAEiiF,OAAe,MAATjiF,EAAEiiF,MAAa,IAAI,KAAK,EAAsD,GAAG,QAA3C/9E,EAAE,oBAAdlE,EAAEoE,EAAEuopB,SAAgC3spB,EAAErgB,KAAKzB,EAAE8iC,EAAE9c,GAAGlE,SAAe,IAASkE,EAAE,MAAMhD,EAAE8f,EAAE7D,EAAE,CAAC,EAAE6D,EAAE9c,GAAG,MAAMhD,EAAE,KAAK,EAAEm+4B,IAAG,EAAG,CAAC,OAAO125B,EAAErM,UAAU,IAAIqM,EAAEk35B,OAAO3+4B,EAAE+gF,OAAO,GAAe,QAAZ/9E,EAAE9rB,EAAEsn6B,SAAiBtn6B,EAAEsn6B,QAAQ,CAAC/25B,GAAGub,EAAEztB,KAAKkS,GAAG,MAAMzK,EAAE,CAAC0h6B,UAAU1h6B,EAAE2h6B,KAAK374B,EAAEnuB,IAAI4S,EAAE5S,IAAI42qB,QAAQhkqB,EAAEgkqB,QAAQrwqB,SAASqM,EAAErM,SAASrB,KAAK,MAAM,OAAO0tB,GAAG1H,EAAE0H,EAAEzqB,EAAEF,EAAEgjC,GAAGrY,EAAEA,EAAE1tB,KAAKiD,EAAE26B,GAAG3U,EAC3e,GAAG,QAAZvb,EAAEA,EAAE1N,MAAiB,IAAsB,QAAnB0N,EAAEvQ,EAAE6wkB,OAAO80N,SAAiB,MAAep1xB,GAAJub,EAAEvb,GAAM1N,KAAKipB,EAAEjpB,KAAK,KAAK7C,EAAEqn6B,eAAev74B,EAAE9rB,EAAE6wkB,OAAO80N,QAAQ,IAAI,EAAsG,GAA5F,OAAOp1wB,IAAI3qB,EAAEgjC,GAAG5oC,EAAEmn6B,UAAUvh6B,EAAE5F,EAAEon6B,gBAAgBv+4B,EAAE7oB,EAAEqn6B,eAAe924B,EAA4B,QAA1BG,EAAE1wB,EAAE6wkB,OAAOm2V,aAAwB,CAAChn6B,EAAE0wB,EAAE,GAAG+P,GAAGzgC,EAAEyn6B,KAAKzn6B,EAAEA,EAAE6C,WAAW7C,IAAI0wB,EAAE,MAAM,OAAO3H,IAAI/oB,EAAE6wkB,OAAOi2V,MAAM,GAAGxoF,IAAI79yB,EAAE3X,EAAEg+4B,MAAMrm4B,EAAE3X,EAAE4v4B,cAAc9v3B,CAAC,CAAC,CAC9V,SAASypT,GAAGvpU,EAAE4H,EAAE+O,GAA8B,GAA3B3W,EAAE4H,EAAE424B,QAAQ524B,EAAE424B,QAAQ,KAAQ,OAAOx+4B,EAAE,IAAI4H,EAAE,EAAEA,EAAE5H,EAAEhrB,OAAO4yB,IAAI,CAAC,IAAIhf,EAAEoX,EAAE4H,GAAG1wB,EAAE0R,EAAExN,SAAS,GAAG,OAAOlE,EAAE,CAAqB,GAApB0R,EAAExN,SAAS,KAAKwN,EAAE+tB,EAAK,oBAAoBz/B,EAAE,MAAMyP,MAAM+gB,EAAE,IAAIxwB,IAAIA,EAAEuH,KAAKmK,EAAE,CAAC,CAAC,CAAC,IAAI0s0B,GAAG,CAAC,EAAEI,GAAGokF,GAAGxkF,IAAIvzpB,GAAG+3uB,GAAGxkF,IAAIc,GAAG0jF,GAAGxkF,IAAI,SAAS5qgB,GAAG1qT,GAAG,GAAGA,IAAIs1zB,GAAG,MAAM3u0B,MAAM+gB,EAAE,MAAM,OAAO1H,CAAC,CACnS,SAASwqT,GAAGxqT,EAAE4H,GAAyC,OAAtCoqf,GAAEokU,GAAGxuzB,GAAGoqf,GAAEjwV,GAAG/hK,GAAGgyf,GAAE0jU,GAAGJ,IAAIt1zB,EAAE4H,EAAEwf,UAAmB,KAAK,EAAE,KAAK,GAAGxf,GAAGA,EAAEA,EAAEqf,iBAAiBrf,EAAEupB,aAAak82B,GAAG,KAAK,IAAI,MAAM,QAAkEzl4B,EAAEyl4B,GAArCzl4B,GAAvB5H,EAAE,IAAIA,EAAE4H,EAAEvwB,WAAWuwB,GAAMupB,cAAc,KAAKnxB,EAAEA,EAAEjF,SAAkBy1Z,GAAEkla,IAAI1jU,GAAE0jU,GAAG9tzB,EAAE,CAAC,SAASmwzB,KAAKvna,GAAEkla,IAAIlla,GAAEzuP,IAAIyuP,GAAE4la,GAAG,CAAC,SAASC,GAAGr2zB,GAAG0qT,GAAG0rgB,GAAG/00B,SAAS,IAAIumB,EAAE8iT,GAAGgrgB,GAAGr00B,SAAas1B,EAAE023B,GAAGzl4B,EAAE5H,EAAEvmB,MAAMmuB,IAAI+O,IAAIq7e,GAAEjwV,GAAG/hK,GAAGgyf,GAAE0jU,GAAG/+yB,GAAG,CAAC,SAASmhzB,GAAG93zB,GAAG+hK,GAAG1gL,UAAU2e,IAAIwwZ,GAAEkla,IAAIlla,GAAEzuP,IAAI,CAAC,IAAInmJ,GAAEk+3B,GAAG,GACxZ,SAAS7hF,GAAGj4zB,GAAG,IAAI,IAAI4H,EAAE5H,EAAE,OAAO4H,GAAG,CAAC,GAAG,KAAKA,EAAE/yB,IAAI,CAAC,IAAI8hC,EAAE/O,EAAEgo4B,cAAc,GAAG,OAAOj53B,IAAmB,QAAfA,EAAEA,EAAEk53B,aAAqB,OAAOl53B,EAAE2a,MAAM,OAAO3a,EAAE2a,MAAM,OAAO1pB,CAAC,MAAM,GAAG,KAAKA,EAAE/yB,UAAK,IAAS+yB,EAAE204B,cAAcsC,aAAa,GAAG,KAAa,IAARj34B,EAAEm5E,OAAW,OAAOn5E,OAAO,GAAG,OAAOA,EAAEy6C,MAAM,CAACz6C,EAAEy6C,MAAMzoE,OAAOguB,EAAEA,EAAEA,EAAEy6C,MAAM,QAAQ,CAAC,GAAGz6C,IAAI5H,EAAE,MAAM,KAAK,OAAO4H,EAAEytC,SAAS,CAAC,GAAG,OAAOztC,EAAEhuB,QAAQguB,EAAEhuB,SAASomB,EAAE,OAAO,KAAK4H,EAAEA,EAAEhuB,MAAM,CAACguB,EAAEytC,QAAQz7D,OAAOguB,EAAEhuB,OAAOguB,EAAEA,EAAEytC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAIojxB,GAAG,GACrc,SAASL,KAAK,IAAI,IAAIp4zB,EAAE,EAAEA,EAAEy4zB,GAAGzj1B,OAAOgrB,IAAIy4zB,GAAGz4zB,GAAG8+4B,8BAA8B,KAAKrmF,GAAGzj1B,OAAO,CAAC,CAAC,IAAIqj1B,GAAG1pxB,EAAGow2B,uBAAuBC,GAAGrw2B,EAAGgj2B,wBAAwBsN,GAAG,EAAEpo4B,GAAE,KAAKg1B,GAAE,KAAK/zB,GAAE,KAAK+/yB,IAAG,EAAGqnF,IAAG,EAAGC,GAAG,EAAE3mF,GAAG,EAAE,SAASpoxB,KAAI,MAAMzpD,MAAM+gB,EAAE,KAAM,CAAC,SAASgwzB,GAAG13zB,EAAE4H,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAI+O,EAAE,EAAEA,EAAE/O,EAAE5yB,QAAQ2hC,EAAE3W,EAAEhrB,OAAO2hC,IAAI,IAAImkyB,GAAG96yB,EAAE2W,GAAG/O,EAAE+O,IAAI,OAAM,EAAG,OAAM,CAAE,CAChW,SAASyo4B,GAAGp/4B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,GAAyH,GAAtHg/4B,GAAGh/4B,EAAE4W,GAAEjP,EAAEA,EAAEgo4B,cAAc,KAAKho4B,EAAEw24B,YAAY,KAAKx24B,EAAEo24B,MAAM,EAAE3lF,GAAGh30B,QAAQ,OAAO2e,GAAG,OAAOA,EAAE4v4B,cAAcyP,GAAGrnF,GAAGh4zB,EAAE2W,EAAE/tB,EAAE1R,GAAMgo6B,GAAG,CAACj/4B,EAAE,EAAE,EAAE,CAAY,GAAXi/4B,IAAG,EAAGC,GAAG,EAAK,IAAIl/4B,EAAE,MAAMtZ,MAAM+gB,EAAE,MAAMzH,GAAG,EAAE6X,GAAE+zB,GAAE,KAAKjkC,EAAEw24B,YAAY,KAAK/lF,GAAGh30B,QAAQi+5B,GAAGt/4B,EAAE2W,EAAE/tB,EAAE1R,EAAE,OAAOgo6B,GAAG,CAA+D,GAA9D7mF,GAAGh30B,QAAQk+5B,GAAG334B,EAAE,OAAOikC,IAAG,OAAOA,GAAE9xD,KAAKkl6B,GAAG,EAAEnn4B,GAAE+zB,GAAEh1B,GAAE,KAAKghzB,IAAG,EAAMjwzB,EAAE,MAAMjhB,MAAM+gB,EAAE,MAAM,OAAO1H,CAAC,CAAC,SAASs3zB,KAAK,IAAIt3zB,EAAE,IAAIm/4B,GAAQ,OAALA,GAAG,EAASn/4B,CAAC,CAC/Y,SAASs4zB,KAAK,IAAIt4zB,EAAE,CAAC4v4B,cAAc,KAAKyO,UAAU,KAAKmB,UAAU,KAAKl31B,MAAM,KAAKvuE,KAAK,MAA8C,OAAxC,OAAO+9B,GAAEjB,GAAE+43B,cAAc933B,GAAE9X,EAAE8X,GAAEA,GAAE/9B,KAAKimB,EAAS8X,EAAC,CAAC,SAAS2n4B,KAAK,GAAG,OAAO5z2B,GAAE,CAAC,IAAI7rC,EAAE6W,GAAE643B,UAAU1v4B,EAAE,OAAOA,EAAEA,EAAE4v4B,cAAc,IAAI,MAAM5v4B,EAAE6rC,GAAE9xD,KAAK,IAAI6tB,EAAE,OAAOkQ,GAAEjB,GAAE+43B,cAAc933B,GAAE/9B,KAAK,GAAG,OAAO6tB,EAAEkQ,GAAElQ,EAAEikC,GAAE7rC,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMrZ,MAAM+gB,EAAE,MAAU1H,EAAE,CAAC4v4B,eAAP/j2B,GAAE7rC,GAAqB4v4B,cAAcyO,UAAUxy2B,GAAEwy2B,UAAUmB,UAAU3z2B,GAAE2z2B,UAAUl31B,MAAMzc,GAAEyc,MAAMvuE,KAAK,MAAM,OAAO+9B,GAAEjB,GAAE+43B,cAAc933B,GAAE9X,EAAE8X,GAAEA,GAAE/9B,KAAKimB,CAAC,CAAC,OAAO8X,EAAC,CACje,SAASogzB,GAAGl4zB,EAAE4H,GAAG,MAAM,oBAAoBA,EAAEA,EAAE5H,GAAG4H,CAAC,CACnD,SAAS834B,GAAG1/4B,GAAG,IAAI4H,EAAE634B,KAAK9o4B,EAAE/O,EAAE0gD,MAAM,GAAG,OAAO3xC,EAAE,MAAMhwB,MAAM+gB,EAAE,MAAMiP,EAAEgp4B,oBAAoB3/4B,EAAE,IAAIpX,EAAEijD,GAAE30D,EAAE0R,EAAE425B,UAAUv/4B,EAAE0W,EAAEkmwB,QAAQ,GAAG,OAAO58wB,EAAE,CAAC,GAAG,OAAO/oB,EAAE,CAAC,IAAIygC,EAAEzgC,EAAE6C,KAAK7C,EAAE6C,KAAKkmB,EAAElmB,KAAKkmB,EAAElmB,KAAK49B,CAAC,CAAC/uB,EAAE425B,UAAUto6B,EAAE+oB,EAAE0W,EAAEkmwB,QAAQ,IAAI,CAAC,GAAG,OAAO3lyB,EAAE,CAAC+oB,EAAE/oB,EAAE6C,KAAK6O,EAAEA,EAAEy15B,UAAU,IAAI525B,EAAEkwB,EAAE,KAAK76B,EAAE,KAAKijB,EAAEE,EAAE,EAAE,CAAC,IAAIwH,EAAE1H,EAAE4+4B,KAAK,IAAIM,GAAGx34B,KAAKA,EAAE,OAAO3qB,IAAIA,EAAEA,EAAE/C,KAAK,CAAC4k6B,KAAK,EAAEhy5B,OAAOoT,EAAEpT,OAAOiz5B,cAAc7/4B,EAAE6/4B,cAAcC,WAAW9/4B,EAAE8/4B,WAAW9l6B,KAAK,OAAO6O,EAAEmX,EAAE6/4B,cAAc7/4B,EAAE8/4B,WAAW7/4B,EAAEpX,EAAEmX,EAAEpT,YAAY,CAAC,IAAImzB,EAAE,CAAC6+3B,KAAKl34B,EAAE9a,OAAOoT,EAAEpT,OAAOiz5B,cAAc7/4B,EAAE6/4B,cACngBC,WAAW9/4B,EAAE8/4B,WAAW9l6B,KAAK,MAAM,OAAO+C,GAAG2K,EAAE3K,EAAEgjC,EAAEnI,EAAE/uB,GAAG9L,EAAEA,EAAE/C,KAAK+lC,EAAEjJ,GAAEmn4B,OAAOv24B,EAAE+tzB,IAAI/tzB,CAAC,CAAC1H,EAAEA,EAAEhmB,IAAI,OAAO,OAAOgmB,GAAGA,IAAIE,GAAG,OAAOnjB,EAAE66B,EAAE/uB,EAAE9L,EAAE/C,KAAK0N,EAAEqzzB,GAAGlyzB,EAAEgf,EAAEgo4B,iBAAiBhsQ,IAAG,GAAIh8nB,EAAEgo4B,cAAchn5B,EAAEgf,EAAEy24B,UAAU1m4B,EAAE/P,EAAE434B,UAAU1i6B,EAAE65B,EAAEmp4B,kBAAkBl35B,CAAC,CAAiB,GAAG,QAAnBoX,EAAE2W,EAAEun4B,aAAwB,CAAChn6B,EAAE8oB,EAAE,GAAGC,EAAE/oB,EAAEyn6B,KAAK9n4B,GAAEmn4B,OAAO/94B,EAAEu1zB,IAAIv1zB,EAAE/oB,EAAEA,EAAE6C,WAAW7C,IAAI8oB,EAAE,MAAM,OAAO9oB,IAAIy/B,EAAEqn4B,MAAM,GAAG,MAAM,CAACp24B,EAAEgo4B,cAAcj53B,EAAEwW,SAAS,CAC9X,SAAS4y3B,GAAG//4B,GAAG,IAAI4H,EAAE634B,KAAK9o4B,EAAE/O,EAAE0gD,MAAM,GAAG,OAAO3xC,EAAE,MAAMhwB,MAAM+gB,EAAE,MAAMiP,EAAEgp4B,oBAAoB3/4B,EAAE,IAAIpX,EAAE+tB,EAAEwW,SAASj2C,EAAEy/B,EAAEkmwB,QAAQ58wB,EAAE2H,EAAEgo4B,cAAc,GAAG,OAAO145B,EAAE,CAACy/B,EAAEkmwB,QAAQ,KAAK,IAAIllwB,EAAEzgC,EAAEA,EAAE6C,KAAK,GAAGkmB,EAAED,EAAEC,EAAE0X,EAAEhrB,QAAQgrB,EAAEA,EAAE59B,WAAW49B,IAAIzgC,GAAG4j0B,GAAG76yB,EAAE2H,EAAEgo4B,iBAAiBhsQ,IAAG,GAAIh8nB,EAAEgo4B,cAAc3v4B,EAAE,OAAO2H,EAAE434B,YAAY534B,EAAEy24B,UAAUp+4B,GAAG0W,EAAEmp4B,kBAAkB7/4B,CAAC,CAAC,MAAM,CAACA,EAAErX,EAAE,CAAC,SAASo35B,KAAK,CACpW,SAASC,GAAGjg5B,EAAE4H,GAAG,IAAI+O,EAAEE,GAAEjuB,EAAE625B,KAAKvo6B,EAAE0wB,IAAI3H,GAAG66yB,GAAGlyzB,EAAEgn5B,cAAc145B,GAAsE,GAAnE+oB,IAAIrX,EAAEgn5B,cAAc145B,EAAE0spB,IAAG,GAAIh7oB,EAAEA,EAAE0/D,MAAMiwwB,GAAGpnpB,GAAGzzK,KAAK,KAAKiZ,EAAE/tB,EAAEoX,GAAG,CAACA,IAAOpX,EAAEs35B,cAAct44B,GAAG3H,GAAG,OAAO6X,IAAuB,EAApBA,GAAE833B,cAAc/65B,IAAM,CAAuD,GAAtD8hC,EAAEoqE,OAAO,KAAK/pC,GAAG,EAAEo3S,GAAG1wV,KAAK,KAAKiZ,EAAE/tB,EAAE1R,EAAE0wB,QAAG,EAAO,MAAS,OAAO8P,GAAE,MAAM/wB,MAAM+gB,EAAE,MAAM,KAAQ,GAAHu34B,KAAQx/1B,GAAG9oC,EAAE/O,EAAE1wB,EAAE,CAAC,OAAOA,CAAC,CAAC,SAASuoE,GAAGz/C,EAAE4H,EAAE+O,GAAG3W,EAAE+gF,OAAO,MAAM/gF,EAAE,CAACkg5B,YAAYt44B,EAAE7vB,MAAM4+B,GAAmB,QAAhB/O,EAAEiP,GAAEun4B,cAAsBx24B,EAAE,CAACu44B,WAAW,KAAKC,OAAO,MAAMvp4B,GAAEun4B,YAAYx24B,EAAEA,EAAEw44B,OAAO,CAACpg5B,IAAgB,QAAX2W,EAAE/O,EAAEw44B,QAAgBx44B,EAAEw44B,OAAO,CAACpg5B,GAAG2W,EAAEphC,KAAKyqB,EAAG,CAClf,SAASouV,GAAGpuV,EAAE4H,EAAE+O,EAAE/tB,GAAGgf,EAAE7vB,MAAM4+B,EAAE/O,EAAEs44B,YAAYt35B,EAAE20f,GAAG31e,IAAI61e,GAAGz9e,EAAE,CAAC,SAASmxK,GAAGnxK,EAAE4H,EAAE+O,GAAG,OAAOA,GAAE,WAAW4me,GAAG31e,IAAI61e,GAAGz9e,EAAE,GAAE,CAAC,SAASu9e,GAAGv9e,GAAG,IAAI4H,EAAE5H,EAAEkg5B,YAAYlg5B,EAAEA,EAAEjoB,MAAM,IAAI,IAAI4+B,EAAE/O,IAAI,OAAOkzyB,GAAG96yB,EAAE2W,EAAE,CAAC,MAAM/tB,GAAG,OAAM,CAAE,CAAC,CAAC,SAAS60f,GAAGz9e,GAAG,IAAI4H,EAAEqtnB,GAAGj1nB,EAAE,GAAG,OAAO4H,GAAG+8yB,GAAG/8yB,EAAE5H,EAAE,GAAG,EAAE,CAClQ,SAASuoB,GAAGvoB,GAAG,IAAI4H,EAAE0wzB,KAA8M,MAAzM,oBAAoBt4zB,IAAIA,EAAEA,KAAK4H,EAAEgo4B,cAAcho4B,EAAEy24B,UAAUr+4B,EAAEA,EAAE,CAAC68wB,QAAQ,KAAKqhI,YAAY,KAAKF,MAAM,EAAE7w3B,SAAS,KAAKwy3B,oBAAoBznF,GAAG4nF,kBAAkB9/4B,GAAG4H,EAAE0gD,MAAMtoD,EAAEA,EAAEA,EAAEmtB,SAASg3xB,GAAGzmzB,KAAK,KAAKmZ,GAAE7W,GAAS,CAAC4H,EAAEgo4B,cAAc5v4B,EAAE,CAC5P,SAASg3C,GAAGh3C,EAAE4H,EAAE+O,EAAE/tB,GAA8O,OAA3OoX,EAAE,CAACnrB,IAAImrB,EAAE/f,OAAO2nB,EAAEu9H,QAAQxuH,EAAEmimB,KAAKlwnB,EAAE7O,KAAK,MAAsB,QAAhB6tB,EAAEiP,GAAEun4B,cAAsBx24B,EAAE,CAACu44B,WAAW,KAAKC,OAAO,MAAMvp4B,GAAEun4B,YAAYx24B,EAAEA,EAAEu44B,WAAWng5B,EAAEjmB,KAAKimB,GAAmB,QAAf2W,EAAE/O,EAAEu44B,YAAoBv44B,EAAEu44B,WAAWng5B,EAAEjmB,KAAKimB,GAAGpX,EAAE+tB,EAAE58B,KAAK48B,EAAE58B,KAAKimB,EAAEA,EAAEjmB,KAAK6O,EAAEgf,EAAEu44B,WAAWng5B,GAAWA,CAAC,CAAC,SAAS0lzB,KAAK,OAAO+5F,KAAK7P,aAAa,CAAC,SAASl1mB,GAAG16R,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAEoh1B,KAAKzhzB,GAAEkqE,OAAO/gF,EAAE9oB,EAAE045B,cAAc541B,GAAG,EAAEpvC,EAAE+O,OAAE,OAAO,IAAS/tB,EAAE,KAAKA,EAAE,CAC9Y,SAASy7zB,GAAGrkzB,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAEuo6B,KAAK725B,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIqX,OAAE,EAAO,GAAG,OAAO4rC,GAAE,CAAC,IAAIl0B,EAAEk0B,GAAE+j2B,cAA0B,GAAZ3v4B,EAAE0X,EAAEwtH,QAAW,OAAOv8I,GAAG8u0B,GAAG9u0B,EAAE+uB,EAAEmhmB,MAAmC,YAA5B5hoB,EAAE045B,cAAc541B,GAAGpvC,EAAE+O,EAAE1W,EAAErX,GAAU,CAACiuB,GAAEkqE,OAAO/gF,EAAE9oB,EAAE045B,cAAc541B,GAAG,EAAEpvC,EAAE+O,EAAE1W,EAAErX,EAAE,CAAC,SAASkiW,GAAG9qV,EAAE4H,GAAG,OAAO8yR,GAAG,QAAQ,EAAE16R,EAAE4H,EAAE,CAAC,SAAS2wzB,GAAGv4zB,EAAE4H,GAAG,OAAOy8yB,GAAG,KAAK,EAAErkzB,EAAE4H,EAAE,CAAC,SAAS6pE,GAAGzxE,EAAE4H,GAAG,OAAOy8yB,GAAG,EAAE,EAAErkzB,EAAE4H,EAAE,CAAC,SAASw8yB,GAAGpkzB,EAAE4H,GAAG,OAAOy8yB,GAAG,EAAE,EAAErkzB,EAAE4H,EAAE,CAChX,SAAS8pD,GAAG1xD,EAAE4H,GAAG,MAAG,oBAAoBA,GAAS5H,EAAEA,IAAI4H,EAAE5H,GAAG,WAAW4H,EAAE,KAAK,GAAK,OAAOA,QAAG,IAASA,GAAS5H,EAAEA,IAAI4H,EAAEvmB,QAAQ2e,EAAE,WAAW4H,EAAEvmB,QAAQ,IAAI,QAA1E,CAA2E,CAAC,SAASyk0B,GAAG9lzB,EAAE4H,EAAE+O,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEp3B,OAAO,CAACygB,IAAI,KAAYqkzB,GAAG,EAAE,EAAE3yvB,GAAGh0D,KAAK,KAAKkK,EAAE5H,GAAG2W,EAAE,CAAC,SAASupa,KAAK,CAAC,SAASx6V,GAAG1lF,EAAE4H,GAAG,IAAI+O,EAAE8o4B,KAAK734B,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIhf,EAAE+tB,EAAEi53B,cAAc,OAAG,OAAOhn5B,GAAG,OAAOgf,GAAG8vzB,GAAG9vzB,EAAEhf,EAAE,IAAWA,EAAE,IAAG+tB,EAAEi53B,cAAc,CAAC5v4B,EAAE4H,GAAU5H,EAAC,CAC7Z,SAASqwb,GAAGrwb,EAAE4H,GAAG,IAAI+O,EAAE8o4B,KAAK734B,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIhf,EAAE+tB,EAAEi53B,cAAc,OAAG,OAAOhn5B,GAAG,OAAOgf,GAAG8vzB,GAAG9vzB,EAAEhf,EAAE,IAAWA,EAAE,IAAGoX,EAAEA,IAAI2W,EAAEi53B,cAAc,CAAC5v4B,EAAE4H,GAAU5H,EAAC,CAAC,SAASskzB,GAAGtkzB,EAAE4H,EAAE+O,GAAG,OAAG,KAAQ,GAAHso4B,KAAcj/4B,EAAEq+4B,YAAYr+4B,EAAEq+4B,WAAU,EAAGz6Q,IAAG,GAAI5joB,EAAE4v4B,cAAcj53B,IAAEmkyB,GAAGnkyB,EAAE/O,KAAK+O,EAAE+4Q,KAAK74Q,GAAEmn4B,OAAOrn4B,EAAE6+yB,IAAI7+yB,EAAE3W,EAAEq+4B,WAAU,GAAWz24B,EAAC,CAAC,SAASiiF,GAAG7pF,EAAE4H,GAAG,IAAI+O,EAAEi9B,GAAEA,GAAE,IAAIj9B,GAAG,EAAEA,EAAEA,EAAE,EAAE3W,GAAE,GAAI,IAAIpX,EAAEo25B,GAAGlz5B,WAAWkz5B,GAAGlz5B,WAAW,CAAC,EAAE,IAAIkU,GAAE,GAAI4H,GAAG,CAAC,QAAQgsC,GAAEj9B,EAAEqo4B,GAAGlz5B,WAAWlD,CAAC,CAAC,CAAC,SAASyqd,KAAK,OAAOosc,KAAK7P,aAAa,CAC1d,SAASlj1B,GAAG1sD,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEgxE,GAAG55D,GAAkE,GAA/D2W,EAAE,CAACgo4B,KAAK/15B,EAAE+D,OAAOgqB,EAAEip4B,eAAc,EAAGC,WAAW,KAAK9l6B,KAAK,MAASuhT,GAAGt7R,GAAG4kzB,GAAGh9yB,EAAE+O,QAAQ,GAAiB,QAAdA,EAAE8F,GAAGzc,EAAE4H,EAAE+O,EAAE/tB,IAAY,CAAW+7zB,GAAGhuyB,EAAE3W,EAAEpX,EAAXwoD,MAAgBg0wB,GAAGzuyB,EAAE/O,EAAEhf,EAAE,CAAC,CAC/K,SAASu7zB,GAAGnkzB,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEgxE,GAAG55D,GAAG9oB,EAAE,CAACyn6B,KAAK/15B,EAAE+D,OAAOgqB,EAAEip4B,eAAc,EAAGC,WAAW,KAAK9l6B,KAAK,MAAM,GAAGuhT,GAAGt7R,GAAG4kzB,GAAGh9yB,EAAE1wB,OAAO,CAAC,IAAI+oB,EAAED,EAAE0v4B,UAAU,GAAG,IAAI1v4B,EAAEg+4B,QAAQ,OAAO/94B,GAAG,IAAIA,EAAE+94B,QAAiC,QAAxB/94B,EAAE2H,EAAE+34B,qBAA8B,IAAI,IAAIho4B,EAAE/P,EAAEk44B,kBAAkBr45B,EAAEwY,EAAE0X,EAAEhB,GAAqC,GAAlCz/B,EAAE0o6B,eAAc,EAAG1o6B,EAAE2o6B,WAAWp45B,EAAKqzzB,GAAGrzzB,EAAEkwB,GAAG,CAAC,IAAI76B,EAAE8qB,EAAEs24B,YAA+E,OAAnE,OAAOph6B,GAAG5F,EAAE6C,KAAK7C,EAAEi/0B,GAAGvuzB,KAAK1wB,EAAE6C,KAAK+C,EAAE/C,KAAK+C,EAAE/C,KAAK7C,QAAG0wB,EAAEs24B,YAAYhn6B,EAAQ,CAAC,CAAC,MAAM6oB,GAAG,CAAwB,QAAd4W,EAAE8F,GAAGzc,EAAE4H,EAAE1wB,EAAE0R,MAAoB+7zB,GAAGhuyB,EAAE3W,EAAEpX,EAAb1R,EAAEk6D,MAAgBg0wB,GAAGzuyB,EAAE/O,EAAEhf,GAAG,CAAC,CAC/c,SAAS0yS,GAAGt7R,GAAG,IAAI4H,EAAE5H,EAAE0v4B,UAAU,OAAO1v4B,IAAI6W,IAAG,OAAOjP,GAAGA,IAAIiP,EAAC,CAAC,SAAS+tyB,GAAG5kzB,EAAE4H,GAAGs34B,GAAGrnF,IAAG,EAAG,IAAIlhzB,EAAE3W,EAAE68wB,QAAQ,OAAOlmwB,EAAE/O,EAAE7tB,KAAK6tB,GAAGA,EAAE7tB,KAAK48B,EAAE58B,KAAK48B,EAAE58B,KAAK6tB,GAAG5H,EAAE68wB,QAAQj1wB,CAAC,CAAC,SAASw9yB,GAAGplzB,EAAE4H,EAAE+O,GAAG,GAAG,KAAO,QAAFA,GAAW,CAAC,IAAI/tB,EAAEgf,EAAEo24B,MAAwBrn4B,GAAlB/tB,GAAGoX,EAAE6w4B,aAAkBjp4B,EAAEo24B,MAAMrn4B,EAAEk9yB,GAAG7zzB,EAAE2W,EAAE,CAAC,CAC9P,IAAI4o4B,GAAG,CAACc,YAAY9qF,GAAG+qF,YAAYlw2B,GAAExvD,WAAWwvD,GAAEmw2B,UAAUnw2B,GAAEow2B,oBAAoBpw2B,GAAExoD,mBAAmBwoD,GAAEqw2B,gBAAgBrw2B,GAAEsw2B,QAAQtw2B,GAAEuw2B,WAAWvw2B,GAAEww2B,OAAOxw2B,GAAEyw2B,SAASzw2B,GAAE0w2B,cAAc1w2B,GAAE2w2B,iBAAiB3w2B,GAAE4w2B,cAAc5w2B,GAAE6w2B,iBAAiB7w2B,GAAE8w2B,qBAAqB9w2B,GAAE16B,MAAM06B,GAAE+w2B,0BAAyB,GAAI9B,GAAG,CAACgB,YAAY9qF,GAAG+qF,YAAY,SAAStg5B,EAAE4H,GAA4C,OAAzC0wzB,KAAKs3E,cAAc,CAAC5v4B,OAAE,IAAS4H,EAAE,KAAKA,GAAU5H,CAAC,EAAEpf,WAAW200B,GAAGgrF,UAAUz1jB,GAAG01jB,oBAAoB,SAASxg5B,EAAE4H,EAAE+O,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEp3B,OAAO,CAACygB,IAAI,KAAY06R,GAAG,QAC3f,EAAEhpO,GAAGh0D,KAAK,KAAKkK,EAAE5H,GAAG2W,EAAE,EAAE8p4B,gBAAgB,SAASzg5B,EAAE4H,GAAG,OAAO8yR,GAAG,QAAQ,EAAE16R,EAAE4H,EAAE,EAAEhgB,mBAAmB,SAASoY,EAAE4H,GAAG,OAAO8yR,GAAG,EAAE,EAAE16R,EAAE4H,EAAE,EAAE844B,QAAQ,SAAS1g5B,EAAE4H,GAAG,IAAI+O,EAAE2hzB,KAAqD,OAAhD1wzB,OAAE,IAASA,EAAE,KAAKA,EAAE5H,EAAEA,IAAI2W,EAAEi53B,cAAc,CAAC5v4B,EAAE4H,GAAU5H,CAAC,EAAE2g5B,WAAW,SAAS3g5B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAE0v0B,KAAkM,OAA7L1wzB,OAAE,IAAS+O,EAAEA,EAAE/O,GAAGA,EAAEhf,EAAEgn5B,cAAchn5B,EAAEy15B,UAAUz24B,EAAE5H,EAAE,CAAC68wB,QAAQ,KAAKqhI,YAAY,KAAKF,MAAM,EAAE7w3B,SAAS,KAAKwy3B,oBAAoB3/4B,EAAE8/4B,kBAAkBl44B,GAAGhf,EAAE0/D,MAAMtoD,EAAEA,EAAEA,EAAEmtB,SAASu/B,GAAGhvD,KAAK,KAAKmZ,GAAE7W,GAAS,CAACpX,EAAEgn5B,cAAc5v4B,EAAE,EAAE4g5B,OAAO,SAAS5g5B,GAC3d,OAAdA,EAAE,CAAC3e,QAAQ2e,GAAhBs4zB,KAA4Bs3E,cAAc5v4B,CAAC,EAAE6g5B,SAASt43B,GAAGu43B,cAAc5ge,GAAG6ge,iBAAiB,SAAS/g5B,GAAG,OAAOs4zB,KAAKs3E,cAAc5v4B,CAAC,EAAEgh5B,cAAc,WAAW,IAAIhh5B,EAAEuoB,IAAG,GAAI3gB,EAAE5H,EAAE,GAA6C,OAA1CA,EAAE6pF,GAAGnsF,KAAK,KAAKsC,EAAE,IAAIs4zB,KAAKs3E,cAAc5v4B,EAAQ,CAAC4H,EAAE5H,EAAE,EAAEih5B,iBAAiB,WAAW,EAAEC,qBAAqB,SAASlh5B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEiuB,GAAE3/B,EAAEoh1B,KAAK,GAAGxsxB,GAAE,CAAC,QAAG,IAASn1B,EAAE,MAAMhwB,MAAM+gB,EAAE,MAAMiP,EAAEA,GAAG,KAAK,CAAO,GAANA,EAAE/O,IAAO,OAAO8P,GAAE,MAAM/wB,MAAM+gB,EAAE,MAAM,KAAQ,GAAHu34B,KAAQx/1B,GAAG72D,EAAEgf,EAAE+O,EAAE,CAACz/B,EAAE045B,cAAcj53B,EAAE,IAAI1W,EAAE,CAACloB,MAAM4+B,EAAEup4B,YAAYt44B,GACvZ,OAD0Z1wB,EAAEoxE,MAAMroD,EAAE6qV,GAAG35K,GAAGzzK,KAAK,KAAK9U,EACpfqX,EAAED,GAAG,CAACA,IAAIpX,EAAEm4F,OAAO,KAAK/pC,GAAG,EAAEo3S,GAAG1wV,KAAK,KAAK9U,EAAEqX,EAAE0W,EAAE/O,QAAG,EAAO,MAAa+O,CAAC,EAAEjB,MAAM,WAAW,IAAI1V,EAAEs4zB,KAAK1wzB,EAAE8P,GAAE0p4B,iBAAiB,GAAGt12B,GAAE,CAAC,IAAIn1B,EAAEyk4B,GAAkDxz4B,EAAE,IAAIA,EAAE,KAA9C+O,GAAH292B,KAAU,GAAG,GAAGhl0B,GAAhBgl0B,IAAsB,IAAIpy4B,SAAS,IAAIy0B,GAAuB,GAAPA,EAAEwo4B,QAAWv34B,GAAG,IAAI+O,EAAEz0B,SAAS,KAAK0lB,GAAG,GAAG,MAAaA,EAAE,IAAIA,EAAE,KAAf+O,EAAE6hzB,MAAmBt20B,SAAS,IAAI,IAAI,OAAO8d,EAAE4v4B,cAAcho4B,CAAC,EAAEu54B,0BAAyB,GAAInpF,GAAG,CAACqoF,YAAY9qF,GAAG+qF,YAAY56zB,GAAG9kG,WAAW200B,GAAGgrF,UAAUhoF,GAAGioF,oBAAoB16F,GAAGl+zB,mBAAmB6pF,GAAGgv0B,gBAAgBr8F,GAAGs8F,QAAQrwd,GAAGswd,WAAWjB,GAAGkB,OAAOl7F,GAAGm7F,SAAS,WAAW,OAAOnB,GAAGxnF,GAAG,EACrhB4oF,cAAc5ge,GAAG6ge,iBAAiB,SAAS/g5B,GAAc,OAAOskzB,GAAZm7F,KAAiB5z2B,GAAE+j2B,cAAc5v4B,EAAE,EAAEgh5B,cAAc,WAAgD,MAAM,CAArCtB,GAAGxnF,IAAI,GAAKunF,KAAK7P,cAAyB,EAAEqR,iBAAiBjB,GAAGkB,qBAAqBjB,GAAGvq4B,MAAM29b,GAAG8tc,0BAAyB,GAAI7B,GAAG,CAACe,YAAY9qF,GAAG+qF,YAAY56zB,GAAG9kG,WAAW200B,GAAGgrF,UAAUhoF,GAAGioF,oBAAoB16F,GAAGl+zB,mBAAmB6pF,GAAGgv0B,gBAAgBr8F,GAAGs8F,QAAQrwd,GAAGswd,WAAWZ,GAAGa,OAAOl7F,GAAGm7F,SAAS,WAAW,OAAOd,GAAG7nF,GAAG,EAAE4oF,cAAc5ge,GAAG6ge,iBAAiB,SAAS/g5B,GAAG,IAAI4H,EAAE634B,KAAK,OAAO,OACzf5z2B,GAAEjkC,EAAEgo4B,cAAc5v4B,EAAEskzB,GAAG18yB,EAAEikC,GAAE+j2B,cAAc5v4B,EAAE,EAAEgh5B,cAAc,WAAgD,MAAM,CAArCjB,GAAG7nF,IAAI,GAAKunF,KAAK7P,cAAyB,EAAEqR,iBAAiBjB,GAAGkB,qBAAqBjB,GAAGvq4B,MAAM29b,GAAG8tc,0BAAyB,GAAI,SAASj8F,GAAGllzB,EAAE4H,GAAG,GAAG5H,GAAGA,EAAExW,aAAa,CAA4B,IAAI,IAAImtB,KAAnC/O,EAAEqU,EAAE,CAAC,EAAErU,GAAG5H,EAAEA,EAAExW,kBAA4B,IAASoe,EAAE+O,KAAK/O,EAAE+O,GAAG3W,EAAE2W,IAAI,OAAO/O,CAAC,CAAC,OAAOA,CAAC,CAAC,SAAS49yB,GAAGxlzB,EAAE4H,EAAE+O,EAAE/tB,GAA8B+tB,EAAE,QAAXA,EAAEA,EAAE/tB,EAAtBgf,EAAE5H,EAAE4v4B,sBAAmC,IAASj53B,EAAE/O,EAAEqU,EAAE,CAAC,EAAErU,EAAE+O,GAAG3W,EAAE4v4B,cAAcj53B,EAAE,IAAI3W,EAAEg+4B,QAAQh+4B,EAAEo+4B,YAAYC,UAAU1n4B,EAAE,CACrd,IAAIwuyB,GAAG,CAACk8F,UAAU,SAASrh5B,GAAG,SAAOA,EAAEA,EAAEsh5B,kBAAiB7R,GAAGzv4B,KAAKA,CAAI,EAAEuh5B,gBAAgB,SAASvh5B,EAAE4H,EAAE+O,GAAG3W,EAAEA,EAAEsh5B,gBAAgB,IAAI145B,EAAEwoD,KAAIl6D,EAAE0iF,GAAG55D,GAAGC,EAAEw+4B,GAAG715B,EAAE1R,GAAG+oB,EAAEwrpB,QAAQ7jpB,OAAE,IAAS+O,GAAG,OAAOA,IAAI1W,EAAE7kB,SAASu7B,GAAe,QAAZ/O,EAAE65e,GAAGzhf,EAAEC,EAAE/oB,MAAcyt0B,GAAG/8yB,EAAE5H,EAAE9oB,EAAE0R,GAAGot0B,GAAGpuzB,EAAE5H,EAAE9oB,GAAG,EAAEsq6B,oBAAoB,SAASxh5B,EAAE4H,EAAE+O,GAAG3W,EAAEA,EAAEsh5B,gBAAgB,IAAI145B,EAAEwoD,KAAIl6D,EAAE0iF,GAAG55D,GAAGC,EAAEw+4B,GAAG715B,EAAE1R,GAAG+oB,EAAEprB,IAAI,EAAEorB,EAAEwrpB,QAAQ7jpB,OAAE,IAAS+O,GAAG,OAAOA,IAAI1W,EAAE7kB,SAASu7B,GAAe,QAAZ/O,EAAE65e,GAAGzhf,EAAEC,EAAE/oB,MAAcyt0B,GAAG/8yB,EAAE5H,EAAE9oB,EAAE0R,GAAGot0B,GAAGpuzB,EAAE5H,EAAE9oB,GAAG,EAAEuq6B,mBAAmB,SAASzh5B,EAAE4H,GAAG5H,EAAEA,EAAEsh5B,gBAAgB,IAAI3q4B,EAAEy6B,KAAIxoD,EACnfgxE,GAAG55D,GAAG9oB,EAAEun6B,GAAG9n4B,EAAE/tB,GAAG1R,EAAErC,IAAI,OAAE,IAAS+yB,GAAG,OAAOA,IAAI1wB,EAAEkE,SAASwsB,GAAe,QAAZA,EAAE65e,GAAGzhf,EAAE9oB,EAAE0R,MAAc+7zB,GAAG/8yB,EAAE5H,EAAEpX,EAAE+tB,GAAGq/yB,GAAGpuzB,EAAE5H,EAAEpX,GAAG,GAAG,SAAS08zB,GAAGtlzB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,EAAE0X,GAAiB,MAAM,oBAApB3X,EAAEA,EAAEuu4B,WAAsCmT,sBAAsB1h5B,EAAE0h5B,sBAAsB945B,EAAEqX,EAAE0X,IAAG/P,EAAE7xB,YAAW6xB,EAAE7xB,UAAU4r6B,wBAAsBroG,GAAG3iyB,EAAE/tB,KAAK0wzB,GAAGpi0B,EAAE+oB,GAAK,CAC1S,SAAS+lzB,GAAGhmzB,EAAE4H,EAAE+O,GAAG,IAAI/tB,GAAE,EAAG1R,EAAE6i6B,GAAO954B,EAAE2H,EAAEwW,YAA2W,MAA/V,kBAAkBne,GAAG,OAAOA,EAAEA,EAAEs1zB,GAAGt1zB,IAAI/oB,EAAEmj6B,GAAGzy4B,GAAGqy4B,GAAG193B,GAAEl7B,QAAyB4e,GAAGrX,EAAE,QAAtBA,EAAEgf,EAAEyW,oBAA4B,IAASz1B,GAAGsx5B,GAAGl64B,EAAE9oB,GAAG6i6B,IAAIny4B,EAAE,IAAIA,EAAE+O,EAAE1W,GAAGD,EAAE4v4B,cAAc,OAAOho4B,EAAEmN,YAAO,IAASnN,EAAEmN,MAAMnN,EAAEmN,MAAM,KAAKnN,EAAEg64B,QAAQz8F,GAAGnlzB,EAAEuu4B,UAAU3m4B,EAAEA,EAAE054B,gBAAgBth5B,EAAEpX,KAAIoX,EAAEA,EAAEuu4B,WAAY4L,4CAA4Cjj6B,EAAE8oB,EAAEo64B,0CAA0Cn64B,GAAU2H,CAAC,CAC5Z,SAASy+yB,GAAGrmzB,EAAE4H,EAAE+O,EAAE/tB,GAAGoX,EAAE4H,EAAEmN,MAAM,oBAAoBnN,EAAEi64B,2BAA2Bj64B,EAAEi64B,0BAA0Blr4B,EAAE/tB,GAAG,oBAAoBgf,EAAEk64B,kCAAkCl64B,EAAEk64B,iCAAiCnr4B,EAAE/tB,GAAGgf,EAAEmN,QAAQ/U,GAAGmlzB,GAAGq8F,oBAAoB554B,EAAEA,EAAEmN,MAAM,KAAK,CACpQ,SAASgwyB,GAAG/kzB,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE8oB,EAAEuu4B,UAAUr35B,EAAEwC,MAAMi9B,EAAEz/B,EAAE69B,MAAM/U,EAAE4v4B,cAAc145B,EAAEo+B,KAAK,CAAC,EAAEmizB,GAAGz3zB,GAAG,IAAIC,EAAE2H,EAAEwW,YAAY,kBAAkBne,GAAG,OAAOA,EAAE/oB,EAAEysC,QAAQ4xyB,GAAGt1zB,IAAIA,EAAEo64B,GAAGzy4B,GAAGqy4B,GAAG193B,GAAEl7B,QAAQnK,EAAEysC,QAAQu23B,GAAGl64B,EAAEC,IAAI/oB,EAAE69B,MAAM/U,EAAE4v4B,cAA2C,oBAA7B3v4B,EAAE2H,EAAE4W,4BAAiDgnyB,GAAGxlzB,EAAE4H,EAAE3H,EAAE0W,GAAGz/B,EAAE69B,MAAM/U,EAAE4v4B,eAAe,oBAAoBho4B,EAAE4W,0BAA0B,oBAAoBtnC,EAAE6q6B,yBAAyB,oBAAoB7q6B,EAAE8q6B,2BAA2B,oBAAoB9q6B,EAAE+q6B,qBAAqBr64B,EAAE1wB,EAAE69B,MACrf,oBAAoB79B,EAAE+q6B,oBAAoB/q6B,EAAE+q6B,qBAAqB,oBAAoB/q6B,EAAE8q6B,2BAA2B9q6B,EAAE8q6B,4BAA4Bp64B,IAAI1wB,EAAE69B,OAAOowyB,GAAGq8F,oBAAoBtq6B,EAAEA,EAAE69B,MAAM,MAAM6p4B,GAAG5+4B,EAAE2W,EAAEz/B,EAAE0R,GAAG1R,EAAE69B,MAAM/U,EAAE4v4B,eAAe,oBAAoB145B,EAAEgr6B,oBAAoBli5B,EAAE+gF,OAAO,QAAQ,CAAC,SAASuluB,GAAGtmzB,EAAE4H,GAAG,IAAI,IAAI+O,EAAE,GAAG/tB,EAAEgf,EAAE,GAAG+O,GAAGwyyB,EAAGvg0B,GAAGA,EAAEA,EAAEhP,aAAagP,GAAG,IAAI1R,EAAEy/B,CAAC,CAAC,MAAM1W,GAAG/oB,EAAE,6BAA6B+oB,EAAE8mH,QAAQ,KAAK9mH,EAAEqiD,KAAK,CAAC,MAAM,CAACvqE,MAAMioB,EAAEyS,OAAO7K,EAAE06C,MAAMprE,EAAEir6B,OAAO,KAAK,CAC1d,SAASj8F,GAAGlmzB,EAAE4H,EAAE+O,GAAG,MAAM,CAAC5+B,MAAMioB,EAAEyS,OAAO,KAAK6vC,MAAM,MAAM3rC,EAAEA,EAAE,KAAKwr4B,OAAO,MAAMv64B,EAAEA,EAAE,KAAK,CAAC,SAAS29yB,GAAGvlzB,EAAE4H,GAAG,IAAImpF,QAAQhgG,MAAM6W,EAAE7vB,MAAM,CAAC,MAAM4+B,GAAG1E,YAAW,WAAW,MAAM0E,CAAE,GAAE,CAAC,CAAC,IAAImuyB,GAAG,oBAAoBvn0B,QAAQA,QAAQq9X,IAAI,SAASmrc,GAAG/lzB,EAAE4H,EAAE+O,IAAGA,EAAE8n4B,IAAI,EAAE9n4B,IAAK9hC,IAAI,EAAE8hC,EAAE80oB,QAAQ,CAAClwqB,QAAQ,MAAM,IAAIqN,EAAEgf,EAAE7vB,MAAsD,OAAhD4+B,EAAEv7B,SAAS,WAAWqq0B,KAAKA,IAAG,EAAGT,GAAGp8zB,GAAG28zB,GAAGvlzB,EAAE4H,EAAE,EAAS+O,CAAC,CACrW,SAAS6vyB,GAAGxmzB,EAAE4H,EAAE+O,IAAGA,EAAE8n4B,IAAI,EAAE9n4B,IAAK9hC,IAAI,EAAE,IAAI+T,EAAEoX,EAAEvmB,KAAK8kC,yBAAyB,GAAG,oBAAoB31B,EAAE,CAAC,IAAI1R,EAAE0wB,EAAE7vB,MAAM4+B,EAAE80oB,QAAQ,WAAW,OAAO7iqB,EAAE1R,EAAE,EAAEy/B,EAAEv7B,SAAS,WAAWmq0B,GAAGvlzB,EAAE4H,EAAE,CAAC,CAAC,IAAI3H,EAAED,EAAEuu4B,UAA8O,OAApO,OAAOtu4B,GAAG,oBAAoBA,EAAEmi5B,oBAAoBzr4B,EAAEv7B,SAAS,WAAWmq0B,GAAGvlzB,EAAE4H,GAAG,oBAAoBhf,IAAI,OAAO+8zB,GAAGA,GAAG,IAAIh1yB,IAAI,CAACh8B,OAAOgx0B,GAAGtuyB,IAAI1iC,OAAO,IAAIgiC,EAAE/O,EAAE06C,MAAM3tE,KAAKyt6B,kBAAkBx64B,EAAE7vB,MAAM,CAACsq6B,eAAe,OAAO1r4B,EAAEA,EAAE,IAAI,GAAUA,CAAC,CACnb,SAASkuyB,GAAG7kzB,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEoX,EAAEsi5B,UAAU,GAAG,OAAO155B,EAAE,CAACA,EAAEoX,EAAEsi5B,UAAU,IAAIx9F,GAAG,IAAI5t0B,EAAE,IAAIy5B,IAAI/nB,EAAEjL,IAAIiqB,EAAE1wB,EAAE,WAAiB,KAAXA,EAAE0R,EAAElL,IAAIkqB,MAAgB1wB,EAAE,IAAIy5B,IAAI/nB,EAAEjL,IAAIiqB,EAAE1wB,IAAIA,EAAEksB,IAAIuT,KAAKz/B,EAAEmgC,IAAIV,GAAG3W,EAAEilzB,GAAGvnzB,KAAK,KAAKsC,EAAE4H,EAAE+O,GAAG/O,EAAE8c,KAAK1kB,EAAEA,GAAG,CAAC,SAAS6lzB,GAAG7lzB,GAAG,EAAE,CAAC,IAAI4H,EAA4E,IAAvEA,EAAE,KAAK5H,EAAEnrB,OAAsB+yB,EAAE,QAApBA,EAAE5H,EAAE4v4B,gBAAyB,OAAOho4B,EAAEio4B,YAAuBjo4B,EAAE,OAAO5H,EAAEA,EAAEA,EAAEpmB,MAAM,OAAO,OAAOomB,GAAG,OAAO,IAAI,CAChW,SAASqlzB,GAAGrlzB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,OAAG,KAAY,EAAP8oB,EAAEvP,OAAeuP,IAAI4H,EAAE5H,EAAE+gF,OAAO,OAAO/gF,EAAE+gF,OAAO,IAAIpqE,EAAEoqE,OAAO,OAAOpqE,EAAEoqE,QAAQ,MAAM,IAAIpqE,EAAE9hC,MAAM,OAAO8hC,EAAE+43B,UAAU/43B,EAAE9hC,IAAI,KAAI+yB,EAAE624B,IAAI,EAAE,IAAK5p6B,IAAI,EAAE4sgB,GAAG9qe,EAAE/O,EAAE,KAAK+O,EAAEqn4B,OAAO,GAAGh+4B,IAAEA,EAAE+gF,OAAO,MAAM/gF,EAAEg+4B,MAAM9m6B,EAAS8oB,EAAC,CAAC,IAAIumzB,GAAG53wB,EAAG4z2B,kBAAkB3+Q,IAAG,EAAG,SAASwiL,GAAGpmzB,EAAE4H,EAAE+O,EAAE/tB,GAAGgf,EAAEy6C,MAAM,OAAOriD,EAAEw94B,GAAG514B,EAAE,KAAK+O,EAAE/tB,GAAG205B,GAAG314B,EAAE5H,EAAEqiD,MAAM1rC,EAAE/tB,EAAE,CACnV,SAASu9zB,GAAGnmzB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAGy/B,EAAEA,EAAExC,OAAO,IAAIlU,EAAE2H,EAAEjnB,IAAqC,OAAjCqwc,GAAGppb,EAAE1wB,GAAG0R,EAAEw25B,GAAGp/4B,EAAE4H,EAAE+O,EAAE/tB,EAAEqX,EAAE/oB,GAAGy/B,EAAE2gzB,KAAQ,OAAOt3zB,GAAI4joB,IAA2E93lB,IAAGn1B,GAAG4k4B,GAAG3z4B,GAAGA,EAAEm5E,OAAO,EAAEqluB,GAAGpmzB,EAAE4H,EAAEhf,EAAE1R,GAAU0wB,EAAEy6C,QAA7Gz6C,EAAEw24B,YAAYp+4B,EAAEo+4B,YAAYx24B,EAAEm5E,QAAQ,KAAK/gF,EAAEg+4B,QAAQ9m6B,EAAE+u0B,GAAGjmzB,EAAE4H,EAAE1wB,GAAoD,CACzN,SAASokC,GAAGtb,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,GAAG,OAAO8oB,EAAE,CAAC,IAAIC,EAAE0W,EAAEl9B,KAAK,MAAG,oBAAoBwmB,GAAIq7zB,GAAGr7zB,SAAI,IAASA,EAAEzW,cAAc,OAAOmtB,EAAEmI,cAAS,IAASnI,EAAEntB,eAAoDwW,EAAEo94B,GAAGzm4B,EAAEl9B,KAAK,KAAKmP,EAAEgf,EAAEA,EAAEnX,KAAKvZ,IAAKyJ,IAAIinB,EAAEjnB,IAAIqf,EAAEpmB,OAAOguB,EAASA,EAAEy6C,MAAMriD,IAArG4H,EAAE/yB,IAAI,GAAG+yB,EAAEnuB,KAAKwmB,EAAE67zB,GAAG97zB,EAAE4H,EAAE3H,EAAErX,EAAE1R,GAAyE,CAAW,GAAV+oB,EAAED,EAAEqiD,MAAS,KAAKriD,EAAEg+4B,MAAM9m6B,GAAG,CAAC,IAAIygC,EAAE1X,EAAEs84B,cAA0C,IAAhB5l4B,EAAE,QAAdA,EAAEA,EAAEmI,SAAmBnI,EAAE2iyB,IAAQ3hyB,EAAE/uB,IAAIoX,EAAErf,MAAMinB,EAAEjnB,IAAI,OAAOsl0B,GAAGjmzB,EAAE4H,EAAE1wB,EAAE,CAA6C,OAA5C0wB,EAAEm5E,OAAO,GAAE/gF,EAAEk94B,GAAGj94B,EAAErX,IAAKjI,IAAIinB,EAAEjnB,IAAIqf,EAAEpmB,OAAOguB,EAASA,EAAEy6C,MAAMriD,CAAC,CAC1b,SAAS87zB,GAAG97zB,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,GAAG,OAAO8oB,EAAE,CAAC,IAAIC,EAAED,EAAEu84B,cAAc,GAAGjjG,GAAGr5yB,EAAErX,IAAIoX,EAAErf,MAAMinB,EAAEjnB,IAAI,IAAGijpB,IAAG,EAAGh8nB,EAAEo04B,aAAapz5B,EAAEqX,EAAE,KAAKD,EAAEg+4B,MAAM9m6B,GAAsC,OAAO0wB,EAAEo24B,MAAMh+4B,EAAEg+4B,MAAM/3F,GAAGjmzB,EAAE4H,EAAE1wB,GAAjE,KAAa,OAAR8oB,EAAE+gF,SAAgB6ijB,IAAG,EAAyC,EAAC,OAAO4+Q,GAAGxi5B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE,CACxN,SAASwoE,GAAG1/C,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEgf,EAAEo04B,aAAa9k6B,EAAE0R,EAAEjP,SAASsmB,EAAE,OAAOD,EAAEA,EAAE4v4B,cAAc,KAAK,GAAG,WAAWhn5B,EAAE6H,KAAK,GAAG,KAAY,EAAPmX,EAAEnX,MAAQmX,EAAEgo4B,cAAc,CAAC6S,UAAU,EAAEC,UAAU,KAAK325B,YAAY,MAAMimgB,GAAE2wZ,GAAGC,IAAIA,IAAIjs4B,MAAM,CAAC,GAAG,KAAO,WAAFA,GAAc,OAAO3W,EAAE,OAAOC,EAAEA,EAAEwi5B,UAAU9r4B,EAAEA,EAAE/O,EAAEo24B,MAAMp24B,EAAEk24B,WAAW,WAAWl24B,EAAEgo4B,cAAc,CAAC6S,UAAUzi5B,EAAE0i5B,UAAU,KAAK325B,YAAY,MAAM6b,EAAEw24B,YAAY,KAAKpsZ,GAAE2wZ,GAAGC,IAAIA,IAAI5i5B,EAAE,KAAK4H,EAAEgo4B,cAAc,CAAC6S,UAAU,EAAEC,UAAU,KAAK325B,YAAY,MAAMnD,EAAE,OAAOqX,EAAEA,EAAEwi5B,UAAU9r4B,EAAEq7e,GAAE2wZ,GAAGC,IAAIA,IAAIh65B,CAAC,MAAM,OACtfqX,GAAGrX,EAAEqX,EAAEwi5B,UAAU9r4B,EAAE/O,EAAEgo4B,cAAc,MAAMhn5B,EAAE+tB,EAAEq7e,GAAE2wZ,GAAGC,IAAIA,IAAIh65B,EAAc,OAAZw9zB,GAAGpmzB,EAAE4H,EAAE1wB,EAAEy/B,GAAU/O,EAAEy6C,KAAK,CAAC,SAASw0qB,GAAG72tB,EAAE4H,GAAG,IAAI+O,EAAE/O,EAAEjnB,KAAO,OAAOqf,GAAG,OAAO2W,GAAG,OAAO3W,GAAGA,EAAErf,MAAMg2B,KAAE/O,EAAEm5E,OAAO,IAAIn5E,EAAEm5E,OAAO,QAAO,CAAC,SAASyh0B,GAAGxi5B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,IAAI+oB,EAAEo64B,GAAG1j4B,GAAGsj4B,GAAG193B,GAAEl7B,QAAmD,OAA3C4e,EAAEi64B,GAAGty4B,EAAE3H,GAAG+wb,GAAGppb,EAAE1wB,GAAGy/B,EAAEyo4B,GAAGp/4B,EAAE4H,EAAE+O,EAAE/tB,EAAEqX,EAAE/oB,GAAG0R,EAAE0u0B,KAAQ,OAAOt3zB,GAAI4joB,IAA2E93lB,IAAGljD,GAAG2y5B,GAAG3z4B,GAAGA,EAAEm5E,OAAO,EAAEqluB,GAAGpmzB,EAAE4H,EAAE+O,EAAEz/B,GAAU0wB,EAAEy6C,QAA7Gz6C,EAAEw24B,YAAYp+4B,EAAEo+4B,YAAYx24B,EAAEm5E,QAAQ,KAAK/gF,EAAEg+4B,QAAQ9m6B,EAAE+u0B,GAAGjmzB,EAAE4H,EAAE1wB,GAAoD,CACla,SAAS2r6B,GAAG7i5B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,GAAGmj6B,GAAG1j4B,GAAG,CAAC,IAAI1W,GAAE,EAAGu64B,GAAG5y4B,EAAE,MAAM3H,GAAE,EAAW,GAAR+wb,GAAGppb,EAAE1wB,GAAM,OAAO0wB,EAAE2m4B,UAAU3wX,GAAG59gB,EAAE4H,GAAGo+yB,GAAGp+yB,EAAE+O,EAAE/tB,GAAGm8zB,GAAGn9yB,EAAE+O,EAAE/tB,EAAE1R,GAAG0R,GAAE,OAAQ,GAAG,OAAOoX,EAAE,CAAC,IAAI2X,EAAE/P,EAAE2m4B,UAAU9m5B,EAAEmgB,EAAE204B,cAAc5k4B,EAAEj+B,MAAM+N,EAAE,IAAI3K,EAAE66B,EAAEgM,QAAQ5jB,EAAE4W,EAAEyH,YAAY,kBAAkBre,GAAG,OAAOA,EAAEA,EAAEw1zB,GAAGx1zB,GAAyBA,EAAEm64B,GAAGty4B,EAA1B7H,EAAEs64B,GAAG1j4B,GAAGsj4B,GAAG193B,GAAEl7B,SAAmB,IAAIomB,EAAEkP,EAAE6H,yBAAyBsB,EAAE,oBAAoBrY,GAAG,oBAAoBkQ,EAAEoq4B,wBAAwBji4B,GAAG,oBAAoBnI,EAAEmq4B,kCAAkC,oBAAoBnq4B,EAAEkq4B,4BAC1dp65B,IAAImB,GAAG9L,IAAIijB,IAAIsmzB,GAAGz+yB,EAAE+P,EAAE/uB,EAAEmX,GAAGo+4B,IAAG,EAAG,IAAIn74B,EAAE4E,EAAEgo4B,cAAcj43B,EAAE5C,MAAM/R,EAAE474B,GAAGh34B,EAAEhf,EAAE+uB,EAAEzgC,GAAG4F,EAAE8qB,EAAEgo4B,cAAcno5B,IAAImB,GAAGoa,IAAIlmB,GAAGk95B,GAAG345B,SAAS885B,IAAI,oBAAoB124B,IAAI+9yB,GAAG59yB,EAAE+O,EAAElP,EAAE7e,GAAG9L,EAAE8qB,EAAEgo4B,gBAAgBno5B,EAAE025B,IAAI74F,GAAG19yB,EAAE+O,EAAElvB,EAAEmB,EAAEoa,EAAElmB,EAAEijB,KAAK+f,GAAG,oBAAoBnI,EAAEqq4B,2BAA2B,oBAAoBrq4B,EAAEsq4B,qBAAqB,oBAAoBtq4B,EAAEsq4B,oBAAoBtq4B,EAAEsq4B,qBAAqB,oBAAoBtq4B,EAAEqq4B,2BAA2Brq4B,EAAEqq4B,6BAA6B,oBAAoBrq4B,EAAEuq4B,oBAAoBt64B,EAAEm5E,OAAO,WAClf,oBAAoBppE,EAAEuq4B,oBAAoBt64B,EAAEm5E,OAAO,SAASn5E,EAAE204B,cAAc3z5B,EAAEgf,EAAEgo4B,cAAc9y5B,GAAG66B,EAAEj+B,MAAMkP,EAAE+uB,EAAE5C,MAAMj4B,EAAE66B,EAAEgM,QAAQ5jB,EAAEnX,EAAEnB,IAAI,oBAAoBkwB,EAAEuq4B,oBAAoBt64B,EAAEm5E,OAAO,SAASn4F,GAAE,EAAG,KAAK,CAAC+uB,EAAE/P,EAAE2m4B,UAAU94E,GAAGz1zB,EAAE4H,GAAGngB,EAAEmgB,EAAE204B,cAAcx84B,EAAE6H,EAAEnuB,OAAOmuB,EAAE+j4B,YAAYlk5B,EAAEy9zB,GAAGt9yB,EAAEnuB,KAAKgO,GAAGkwB,EAAEj+B,MAAMqmB,EAAE+f,EAAElY,EAAEo04B,aAAah54B,EAAE2U,EAAEgM,QAAwB,kBAAhB7mC,EAAE65B,EAAEyH,cAAiC,OAAOthC,EAAEA,EAAEy40B,GAAGz40B,GAAyBA,EAAEo95B,GAAGty4B,EAA1B9qB,EAAEu95B,GAAG1j4B,GAAGsj4B,GAAG193B,GAAEl7B,SAAmB,IAAIrE,EAAE25B,EAAE6H,0BAA0B/W,EAAE,oBAAoBzqB,GAAG,oBAAoB26B,EAAEoq4B,0BAC9e,oBAAoBpq4B,EAAEmq4B,kCAAkC,oBAAoBnq4B,EAAEkq4B,4BAA4Bp65B,IAAIq4B,GAAG9c,IAAIlmB,IAAIup0B,GAAGz+yB,EAAE+P,EAAE/uB,EAAE9L,GAAGqh6B,IAAG,EAAGn74B,EAAE4E,EAAEgo4B,cAAcj43B,EAAE5C,MAAM/R,EAAE474B,GAAGh34B,EAAEhf,EAAE+uB,EAAEzgC,GAAG,IAAI4nB,EAAE8I,EAAEgo4B,cAAcno5B,IAAIq4B,GAAG9c,IAAIlE,GAAGk74B,GAAG345B,SAAS885B,IAAI,oBAAoBnh6B,IAAIwo0B,GAAG59yB,EAAE+O,EAAE35B,EAAE4L,GAAGkW,EAAE8I,EAAEgo4B,gBAAgB7v4B,EAAEo+4B,IAAI74F,GAAG19yB,EAAE+O,EAAE5W,EAAEnX,EAAEoa,EAAElE,EAAEhiB,KAAI,IAAK2qB,GAAG,oBAAoBkQ,EAAEmr4B,4BAA4B,oBAAoBnr4B,EAAEor4B,sBAAsB,oBAAoBpr4B,EAAEor4B,qBAAqBpr4B,EAAEor4B,oBAAoBn65B,EAAEkW,EAAEhiB,GAAG,oBAAoB66B,EAAEmr4B,4BAC5fnr4B,EAAEmr4B,2BAA2Bl65B,EAAEkW,EAAEhiB,IAAI,oBAAoB66B,EAAEqr4B,qBAAqBp74B,EAAEm5E,OAAO,GAAG,oBAAoBppE,EAAEoq4B,0BAA0Bn64B,EAAEm5E,OAAO,QAAQ,oBAAoBppE,EAAEqr4B,oBAAoBv75B,IAAIuY,EAAEu84B,eAAev54B,IAAIhD,EAAE4v4B,gBAAgBho4B,EAAEm5E,OAAO,GAAG,oBAAoBppE,EAAEoq4B,yBAAyBt65B,IAAIuY,EAAEu84B,eAAev54B,IAAIhD,EAAE4v4B,gBAAgBho4B,EAAEm5E,OAAO,MAAMn5E,EAAE204B,cAAc3z5B,EAAEgf,EAAEgo4B,cAAc9w4B,GAAG6Y,EAAEj+B,MAAMkP,EAAE+uB,EAAE5C,MAAMjW,EAAE6Y,EAAEgM,QAAQ7mC,EAAE8L,EAAEmX,IAAI,oBAAoB4X,EAAEqr4B,oBAAoBv75B,IAAIuY,EAAEu84B,eAAev54B,IACjfhD,EAAE4v4B,gBAAgBho4B,EAAEm5E,OAAO,GAAG,oBAAoBppE,EAAEoq4B,yBAAyBt65B,IAAIuY,EAAEu84B,eAAev54B,IAAIhD,EAAE4v4B,gBAAgBho4B,EAAEm5E,OAAO,MAAMn4F,GAAE,EAAG,CAAC,OAAOq65B,GAAGjj5B,EAAE4H,EAAE+O,EAAE/tB,EAAEqX,EAAE/oB,EAAE,CACnK,SAAS+r6B,GAAGjj5B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,GAAG42tB,GAAG72tB,EAAE4H,GAAG,IAAI+P,EAAE,KAAa,IAAR/P,EAAEm5E,OAAW,IAAIn4F,IAAI+uB,EAAE,OAAOzgC,GAAGwj6B,GAAG9y4B,EAAE+O,GAAE,GAAIsvyB,GAAGjmzB,EAAE4H,EAAE3H,GAAGrX,EAAEgf,EAAE2m4B,UAAUhoF,GAAGll0B,QAAQumB,EAAE,IAAIngB,EAAEkwB,GAAG,oBAAoBhB,EAAE4H,yBAAyB,KAAK31B,EAAEurB,SAAwI,OAA/HvM,EAAEm5E,OAAO,EAAE,OAAO/gF,GAAG2X,GAAG/P,EAAEy6C,MAAMk71B,GAAG314B,EAAE5H,EAAEqiD,MAAM,KAAKpiD,GAAG2H,EAAEy6C,MAAMk71B,GAAG314B,EAAE,KAAKngB,EAAEwY,IAAImmzB,GAAGpmzB,EAAE4H,EAAEngB,EAAEwY,GAAG2H,EAAEgo4B,cAAchn5B,EAAEmsB,MAAM79B,GAAGwj6B,GAAG9y4B,EAAE+O,GAAE,GAAW/O,EAAEy6C,KAAK,CAAC,SAAS6g2B,GAAGlj5B,GAAG,IAAI4H,EAAE5H,EAAEuu4B,UAAU3m4B,EAAEu74B,eAAe/s2B,GAAGp2C,EAAE4H,EAAEu74B,eAAev74B,EAAEu74B,iBAAiBv74B,EAAE+b,SAAS/b,EAAE+b,SAASyyB,GAAGp2C,EAAE4H,EAAE+b,SAAQ,GAAI6mS,GAAGxqT,EAAE4H,EAAE8p4B,cAAc,CAC5e,SAAS0R,GAAGpj5B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAuC,OAApCul6B,KAAKC,GAAGxl6B,GAAG0wB,EAAEm5E,OAAO,IAAIqluB,GAAGpmzB,EAAE4H,EAAE+O,EAAE/tB,GAAUgf,EAAEy6C,KAAK,CAAC,IAaqLgh2B,GAAGC,GAAGC,GAAGC,GAb1Lp8tB,GAAG,CAACyotB,WAAW,KAAKoM,YAAY,KAAKC,UAAU,GAAG,SAAS3q0B,GAAGvxE,GAAG,MAAM,CAACyi5B,UAAUzi5B,EAAE0i5B,UAAU,KAAK325B,YAAY,KAAK,CAClM,SAAS035B,GAAGzj5B,EAAE4H,EAAE+O,GAAG,IAA0DlvB,EAAtDmB,EAAEgf,EAAEo04B,aAAa9k6B,EAAE0kC,GAAEv6B,QAAQ4e,GAAE,EAAG0X,EAAE,KAAa,IAAR/P,EAAEm5E,OAAqJ,IAAvIt5F,EAAEkwB,KAAKlwB,GAAE,OAAOuY,GAAG,OAAOA,EAAE4v4B,gBAAiB,KAAO,EAAF145B,IAASuQ,GAAEwY,GAAE,EAAG2H,EAAEm5E,QAAQ,KAAY,OAAO/gF,GAAG,OAAOA,EAAE4v4B,gBAAc145B,GAAG,GAAE86gB,GAAEp2e,GAAI,EAAF1kC,GAAQ,OAAO8oB,EAA2B,OAAxBo84B,GAAGx04B,GAAwB,QAArB5H,EAAE4H,EAAEgo4B,gBAA2C,QAAf5v4B,EAAEA,EAAE6v4B,aAA4B,KAAY,EAAPjo4B,EAAEnX,MAAQmX,EAAEo24B,MAAM,EAAE,OAAOh+4B,EAAEsxB,KAAK1pB,EAAEo24B,MAAM,EAAEp24B,EAAEo24B,MAAM,WAAW,OAAKrm4B,EAAE/uB,EAAEjP,SAASqmB,EAAEpX,EAAE8qB,SAAgBzT,GAAGrX,EAAEgf,EAAEnX,KAAKwP,EAAE2H,EAAEy6C,MAAM1qC,EAAE,CAAClnB,KAAK,SAAS9W,SAASg+B,GAAG,KAAO,EAAF/uB,IAAM,OAAOqX,GAAGA,EAAE694B,WAAW,EAAE794B,EAAE+74B,aAC7erk4B,GAAG1X,EAAEgpjB,GAAGtxiB,EAAE/uB,EAAE,EAAE,MAAMoX,EAAEs94B,GAAGt94B,EAAEpX,EAAE+tB,EAAE,MAAM1W,EAAErmB,OAAOguB,EAAE5H,EAAEpmB,OAAOguB,EAAE3H,EAAEo1C,QAAQr1C,EAAE4H,EAAEy6C,MAAMpiD,EAAE2H,EAAEy6C,MAAMut1B,cAAcr+zB,GAAG56D,GAAG/O,EAAEgo4B,cAAcxotB,GAAGpnL,GAAG65a,GAAGjya,EAAE+P,IAAqB,GAAG,QAArBzgC,EAAE8oB,EAAE4v4B,gBAA2C,QAAfno5B,EAAEvQ,EAAE245B,YAAqB,OAGpM,SAAY7v4B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,EAAE0X,GAAG,GAAGhB,EAAG,OAAW,IAAR/O,EAAEm5E,OAAiBn5E,EAAEm5E,QAAQ,IAAwBqmU,GAAGpnZ,EAAE4H,EAAE+P,EAA3B/uB,EAAEs9zB,GAAGv/zB,MAAM+gB,EAAE,SAAsB,OAAOE,EAAEgo4B,eAAqBho4B,EAAEy6C,MAAMriD,EAAEqiD,MAAMz6C,EAAEm5E,OAAO,IAAI,OAAK9gF,EAAErX,EAAE8qB,SAASx8B,EAAE0wB,EAAEnX,KAAK7H,EAAEqgkB,GAAG,CAACx4jB,KAAK,UAAU9W,SAASiP,EAAEjP,UAAUzC,EAAE,EAAE,OAAM+oB,EAAEq94B,GAAGr94B,EAAE/oB,EAAEygC,EAAE,OAAQopE,OAAO,EAAEn4F,EAAEhP,OAAOguB,EAAE3H,EAAErmB,OAAOguB,EAAEhf,EAAEysD,QAAQp1C,EAAE2H,EAAEy6C,MAAMz5D,EAAE,KAAY,EAAPgf,EAAEnX,OAAS8s5B,GAAG314B,EAAE5H,EAAEqiD,MAAM,KAAK1qC,GAAG/P,EAAEy6C,MAAMut1B,cAAcr+zB,GAAG55D,GAAG/P,EAAEgo4B,cAAcxotB,GAAUnnL,GAAE,GAAG,KAAY,EAAP2H,EAAEnX,MAAQ,OAAO22Z,GAAGpnZ,EAAE4H,EAAE+P,EAAE,MAAM,GAAG,OAAOzgC,EAAEo6C,KAAK,CAChd,GADid1oC,EAAE1R,EAAEhC,aAAagC,EAAEhC,YAAYwu6B,QAC3e,IAAIj85B,EAAEmB,EAAE+65B,KAA0C,OAArC/65B,EAAEnB,EAA0C2/Z,GAAGpnZ,EAAE4H,EAAE+P,EAA/B/uB,EAAEs9zB,GAAlBjmzB,EAAEtZ,MAAM+gB,EAAE,MAAa9e,OAAE,GAA0B,CAAwB,GAAvBnB,EAAE,KAAKkwB,EAAE3X,EAAE894B,YAAel6Q,IAAIn8oB,EAAE,CAAK,GAAG,QAAPmB,EAAE8uB,IAAc,CAAC,OAAOC,GAAGA,GAAG,KAAK,EAAEzgC,EAAE,EAAE,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAASA,EAAE,GAAG,MAAM,KAAK,UAAUA,EAAE,UAAU,MAAM,QAAQA,EAAE,EAChd,KADkdA,EAAE,KAAKA,GAAG0R,EAAEko5B,eAAen53B,IAAI,EAAEzgC,IAC5eA,IAAI+oB,EAAEi84B,YAAYj84B,EAAEi84B,UAAUhl6B,EAAE+9oB,GAAGj1nB,EAAE9oB,GAAGyt0B,GAAG/7zB,EAAEoX,EAAE9oB,GAAG,GAAG,CAA0B,OAAzBsh4B,KAAgCpxd,GAAGpnZ,EAAE4H,EAAE+P,EAAlC/uB,EAAEs9zB,GAAGv/zB,MAAM+gB,EAAE,OAAyB,CAAC,MAAG,OAAOxwB,EAAEo6C,MAAY1pB,EAAEm5E,OAAO,IAAIn5E,EAAEy6C,MAAMriD,EAAEqiD,MAAMz6C,EAAEg84B,GAAGlm5B,KAAK,KAAKsC,GAAG9oB,EAAE2s6B,YAAYj84B,EAAE,OAAK5H,EAAEC,EAAEg84B,YAAYP,GAAGtC,GAAGli6B,EAAEhC,aAAaum6B,GAAG7z4B,EAAEkkC,IAAE,EAAG6v2B,GAAG,KAAK,OAAO374B,IAAIi74B,GAAGC,MAAM5mB,GAAG2mB,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAG7mB,GAAGt03B,EAAE+V,GAAGql4B,GAAGp74B,EAAE4N,SAASut4B,GAAGvz4B,GAAGA,EAAEiya,GAAGjya,EAAEhf,EAAEjP,UAAUiuB,EAAEm5E,OAAO,KAAYn5E,EAAC,CALrKg10B,CAAG580B,EAAE4H,EAAE+P,EAAE/uB,EAAEnB,EAAEvQ,EAAEy/B,GAAG,GAAG1W,EAAE,CAACA,EAAErX,EAAE8qB,SAASiE,EAAE/P,EAAEnX,KAAehJ,GAAVvQ,EAAE8oB,EAAEqiD,OAAUhN,QAAQ,IAAIv4D,EAAE,CAAC2T,KAAK,SAAS9W,SAASiP,EAAEjP,UAChF,OAD0F,KAAO,EAAFg+B,IAAM/P,EAAEy6C,QAAQnrE,IAAG0R,EAAEgf,EAAEy6C,OAAQy71B,WAAW,EAAEl15B,EAAEoz5B,aAAal/5B,EAAE8qB,EAAEk04B,UAAU,OAAOlz5B,EAAEs05B,GAAGhm6B,EAAE4F,IAAKgn6B,aAA4B,SAAf5s6B,EAAE4s6B,aAAuB,OAAOr85B,EAAEwY,EAAEi94B,GAAGz15B,EAAEwY,IAAIA,EAAEq94B,GAAGr94B,EAAE0X,EAAEhB,EAAE,OAAQoqE,OAAO,EAAG9gF,EAAErmB,OACnfguB,EAAEhf,EAAEhP,OAAOguB,EAAEhf,EAAEysD,QAAQp1C,EAAE2H,EAAEy6C,MAAMz5D,EAAEA,EAAEqX,EAAEA,EAAE2H,EAAEy6C,MAA8B1qC,EAAE,QAA1BA,EAAE3X,EAAEqiD,MAAMut1B,eAAyBr+zB,GAAG56D,GAAG,CAAC8r4B,UAAU9q4B,EAAE8q4B,UAAU9r4B,EAAE+r4B,UAAU,KAAK325B,YAAY4rB,EAAE5rB,aAAakU,EAAE2v4B,cAAcj43B,EAAE1X,EAAE694B,WAAW994B,EAAE894B,YAAYnn4B,EAAE/O,EAAEgo4B,cAAcxotB,GAAUx+L,CAAC,CAAoO,OAAzNoX,GAAVC,EAAED,EAAEqiD,OAAUhN,QAAQzsD,EAAEs05B,GAAGj94B,EAAE,CAACxP,KAAK,UAAU9W,SAASiP,EAAEjP,WAAW,KAAY,EAAPiuB,EAAEnX,QAAU7H,EAAEo15B,MAAMrn4B,GAAG/tB,EAAEhP,OAAOguB,EAAEhf,EAAEysD,QAAQ,KAAK,OAAOr1C,IAAkB,QAAd2W,EAAE/O,EAAEk04B,YAAoBl04B,EAAEk04B,UAAU,CAAC974B,GAAG4H,EAAEm5E,OAAO,IAAIpqE,EAAEphC,KAAKyqB,IAAI4H,EAAEy6C,MAAMz5D,EAAEgf,EAAEgo4B,cAAc,KAAYhn5B,CAAC,CACnd,SAASixb,GAAG75a,EAAE4H,GAA8D,OAA3DA,EAAEqhjB,GAAG,CAACx4jB,KAAK,UAAU9W,SAASiuB,GAAG5H,EAAEvP,KAAK,EAAE,OAAQ7W,OAAOomB,EAASA,EAAEqiD,MAAMz6C,CAAC,CAAC,SAASw/Y,GAAGpnZ,EAAE4H,EAAE+O,EAAE/tB,GAAwG,OAArG,OAAOA,GAAG8z5B,GAAG9z5B,GAAG205B,GAAG314B,EAAE5H,EAAEqiD,MAAM,KAAK1rC,IAAG3W,EAAE65a,GAAGjya,EAAEA,EAAEo04B,aAAari6B,WAAYonG,OAAO,EAAEn5E,EAAEgo4B,cAAc,KAAY5v4B,CAAC,CAGkJ,SAASmgf,GAAGngf,EAAE4H,EAAE+O,GAAG3W,EAAEg+4B,OAAOp24B,EAAE,IAAIhf,EAAEoX,EAAE0v4B,UAAU,OAAO9m5B,IAAIA,EAAEo15B,OAAOp24B,GAAGg0C,GAAG57C,EAAEpmB,OAAOguB,EAAE+O,EAAE,CACxc,SAASot4B,GAAG/j5B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,IAAI+oB,EAAED,EAAE4v4B,cAAc,OAAO3v4B,EAAED,EAAE4v4B,cAAc,CAACoU,YAAYp84B,EAAEq84B,UAAU,KAAKC,mBAAmB,EAAE593B,KAAK19B,EAAEo/F,KAAKrxE,EAAEwt4B,SAASjt6B,IAAI+oB,EAAE+j5B,YAAYp84B,EAAE3H,EAAEgk5B,UAAU,KAAKhk5B,EAAEik5B,mBAAmB,EAAEjk5B,EAAEqmB,KAAK19B,EAAEqX,EAAE+nF,KAAKrxE,EAAE1W,EAAEkk5B,SAASjt6B,EAAE,CAC3O,SAAS8iQ,GAAGh6O,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEgf,EAAEo04B,aAAa9k6B,EAAE0R,EAAEi25B,YAAY5+4B,EAAErX,EAAEo/F,KAAsC,GAAjCo+tB,GAAGpmzB,EAAE4H,EAAEhf,EAAEjP,SAASg9B,GAAkB,KAAO,GAAtB/tB,EAAEgzB,GAAEv6B,UAAqBuH,EAAI,EAAFA,EAAI,EAAEgf,EAAEm5E,OAAO,QAAQ,CAAC,GAAG,OAAO/gF,GAAG,KAAa,IAARA,EAAE+gF,OAAW/gF,EAAE,IAAIA,EAAE4H,EAAEy6C,MAAM,OAAOriD,GAAG,CAAC,GAAG,KAAKA,EAAEnrB,IAAI,OAAOmrB,EAAE4v4B,eAAezvZ,GAAGngf,EAAE2W,EAAE/O,QAAQ,GAAG,KAAK5H,EAAEnrB,IAAIsrgB,GAAGngf,EAAE2W,EAAE/O,QAAQ,GAAG,OAAO5H,EAAEqiD,MAAM,CAACriD,EAAEqiD,MAAMzoE,OAAOomB,EAAEA,EAAEA,EAAEqiD,MAAM,QAAQ,CAAC,GAAGriD,IAAI4H,EAAE,MAAM5H,EAAE,KAAK,OAAOA,EAAEq1C,SAAS,CAAC,GAAG,OAAOr1C,EAAEpmB,QAAQomB,EAAEpmB,SAASguB,EAAE,MAAM5H,EAAEA,EAAEA,EAAEpmB,MAAM,CAAComB,EAAEq1C,QAAQz7D,OAAOomB,EAAEpmB,OAAOomB,EAAEA,EAAEq1C,OAAO,CAACzsD,GAAG,CAAC,CAAQ,GAAPopgB,GAAEp2e,GAAEhzB,GAAM,KAAY,EAAPgf,EAAEnX,MAAQmX,EAAEgo4B,cAC/e,UAAU,OAAO145B,GAAG,IAAK,WAAqB,IAAVy/B,EAAE/O,EAAEy6C,MAAUnrE,EAAE,KAAK,OAAOy/B,GAAiB,QAAd3W,EAAE2W,EAAE+43B,YAAoB,OAAOz3E,GAAGj4zB,KAAK9oB,EAAEy/B,GAAGA,EAAEA,EAAE0+B,QAAY,QAAJ1+B,EAAEz/B,IAAYA,EAAE0wB,EAAEy6C,MAAMz6C,EAAEy6C,MAAM,OAAOnrE,EAAEy/B,EAAE0+B,QAAQ1+B,EAAE0+B,QAAQ,MAAM0u2B,GAAGn84B,GAAE,EAAG1wB,EAAEy/B,EAAE1W,GAAG,MAAM,IAAK,YAA6B,IAAjB0W,EAAE,KAAKz/B,EAAE0wB,EAAEy6C,MAAUz6C,EAAEy6C,MAAM,KAAK,OAAOnrE,GAAG,CAAe,GAAG,QAAjB8oB,EAAE9oB,EAAEw45B,YAAuB,OAAOz3E,GAAGj4zB,GAAG,CAAC4H,EAAEy6C,MAAMnrE,EAAE,KAAK,CAAC8oB,EAAE9oB,EAAEm+D,QAAQn+D,EAAEm+D,QAAQ1+B,EAAEA,EAAEz/B,EAAEA,EAAE8oB,CAAC,CAAC+j5B,GAAGn84B,GAAE,EAAG+O,EAAE,KAAK1W,GAAG,MAAM,IAAK,WAAW8j5B,GAAGn84B,GAAE,EAAG,KAAK,UAAK,GAAQ,MAAM,QAAQA,EAAEgo4B,cAAc,KAAK,OAAOho4B,EAAEy6C,KAAK,CAC7d,SAASu7d,GAAG59gB,EAAE4H,GAAG,KAAY,EAAPA,EAAEnX,OAAS,OAAOuP,IAAIA,EAAE0v4B,UAAU,KAAK9n4B,EAAE8n4B,UAAU,KAAK9n4B,EAAEm5E,OAAO,EAAE,CAAC,SAASkluB,GAAGjmzB,EAAE4H,EAAE+O,GAAyD,GAAtD,OAAO3W,IAAI4H,EAAEkjtB,aAAa9qtB,EAAE8qtB,cAAc0qG,IAAI5tzB,EAAEo24B,MAAS,KAAKrn4B,EAAE/O,EAAEk24B,YAAY,OAAO,KAAK,GAAG,OAAO994B,GAAG4H,EAAEy6C,QAAQriD,EAAEqiD,MAAM,MAAM17D,MAAM+gB,EAAE,MAAM,GAAG,OAAOE,EAAEy6C,MAAM,CAA4C,IAAjC1rC,EAAEum4B,GAAZl94B,EAAE4H,EAAEy6C,MAAariD,EAAEg84B,cAAcp04B,EAAEy6C,MAAM1rC,EAAMA,EAAE/8B,OAAOguB,EAAE,OAAO5H,EAAEq1C,SAASr1C,EAAEA,EAAEq1C,SAAQ1+B,EAAEA,EAAE0+B,QAAQ6n2B,GAAGl94B,EAAEA,EAAEg84B,eAAgBpi6B,OAAOguB,EAAE+O,EAAE0+B,QAAQ,IAAI,CAAC,OAAOztC,EAAEy6C,KAAK,CAO9a,SAAS+h2B,GAAGpk5B,EAAE4H,GAAG,IAAIkkC,GAAE,OAAO9rC,EAAEmk5B,UAAU,IAAK,SAASv84B,EAAE5H,EAAEgoF,KAAK,IAAI,IAAIrxE,EAAE,KAAK,OAAO/O,GAAG,OAAOA,EAAE8n4B,YAAY/43B,EAAE/O,GAAGA,EAAEA,EAAEytC,QAAQ,OAAO1+B,EAAE3W,EAAEgoF,KAAK,KAAKrxE,EAAE0+B,QAAQ,KAAK,MAAM,IAAK,YAAY1+B,EAAE3W,EAAEgoF,KAAK,IAAI,IAAIp/F,EAAE,KAAK,OAAO+tB,GAAG,OAAOA,EAAE+43B,YAAY9m5B,EAAE+tB,GAAGA,EAAEA,EAAE0+B,QAAQ,OAAOzsD,EAAEgf,GAAG,OAAO5H,EAAEgoF,KAAKhoF,EAAEgoF,KAAK,KAAKhoF,EAAEgoF,KAAK3yC,QAAQ,KAAKzsD,EAAEysD,QAAQ,KAAK,CAC5U,SAASz9B,GAAE5X,GAAG,IAAI4H,EAAE,OAAO5H,EAAE0v4B,WAAW1v4B,EAAE0v4B,UAAUrt1B,QAAQriD,EAAEqiD,MAAM1rC,EAAE,EAAE/tB,EAAE,EAAE,GAAGgf,EAAE,IAAI,IAAI1wB,EAAE8oB,EAAEqiD,MAAM,OAAOnrE,GAAGy/B,GAAGz/B,EAAE8m6B,MAAM9m6B,EAAE4m6B,WAAWl15B,GAAkB,SAAf1R,EAAE4s6B,aAAsBl75B,GAAW,SAAR1R,EAAE6pG,MAAe7pG,EAAE0C,OAAOomB,EAAE9oB,EAAEA,EAAEm+D,aAAa,IAAIn+D,EAAE8oB,EAAEqiD,MAAM,OAAOnrE,GAAGy/B,GAAGz/B,EAAE8m6B,MAAM9m6B,EAAE4m6B,WAAWl15B,GAAG1R,EAAE4s6B,aAAal75B,GAAG1R,EAAE6pG,MAAM7pG,EAAE0C,OAAOomB,EAAE9oB,EAAEA,EAAEm+D,QAAyC,OAAjCr1C,EAAE8j5B,cAAcl75B,EAAEoX,EAAE894B,WAAWnn4B,EAAS/O,CAAC,CAC7V,SAASy84B,GAAGrk5B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEgf,EAAEo04B,aAAmB,OAANR,GAAG5z4B,GAAUA,EAAE/yB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO+iC,GAAEhQ,GAAG,KAAK,KAAK,EAUtD,KAAK,GAAG,OAAOyy4B,GAAGzy4B,EAAEnuB,OAAO6g6B,KAAK1i4B,GAAEhQ,GAAG,KAVqD,KAAK,EAA2Q,OAAzQhf,EAAEgf,EAAE2m4B,UAAUx2E,KAAKvna,GAAEwpf,IAAIxpf,GAAEj0Y,IAAG67yB,KAAKxv0B,EAAEu65B,iBAAiBv65B,EAAE+6B,QAAQ/6B,EAAEu65B,eAAev65B,EAAEu65B,eAAe,MAAS,OAAOnj5B,GAAG,OAAOA,EAAEqiD,QAAMi61B,GAAG104B,GAAGA,EAAEm5E,OAAO,EAAE,OAAO/gF,GAAGA,EAAE4v4B,cAAc6B,cAAc,KAAa,IAAR7p4B,EAAEm5E,SAAan5E,EAAEm5E,OAAO,KAAK,OAAO46zB,KAAK2I,GAAG3I,IAAIA,GAAG,QAAO2H,GAAGtj5B,EAAE4H,GAAGgQ,GAAEhQ,GAAU,KAAK,KAAK,EAAEkwzB,GAAGlwzB,GAAG,IAAI1wB,EAAEwzU,GAAG0rgB,GAAG/00B,SAC7e,GAATs1B,EAAE/O,EAAEnuB,KAAQ,OAAOumB,GAAG,MAAM4H,EAAE2m4B,UAAUgV,GAAGvj5B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG8oB,EAAErf,MAAMinB,EAAEjnB,MAAMinB,EAAEm5E,OAAO,IAAIn5E,EAAEm5E,OAAO,aAAa,CAAC,IAAIn4F,EAAE,CAAC,GAAG,OAAOgf,EAAE2m4B,UAAU,MAAM5n5B,MAAM+gB,EAAE,MAAW,OAALkQ,GAAEhQ,GAAU,IAAI,CAAkB,GAAjB5H,EAAE0qT,GAAGgrgB,GAAGr00B,SAAYi75B,GAAG104B,GAAG,CAAChf,EAAEgf,EAAE2m4B,UAAU533B,EAAE/O,EAAEnuB,KAAK,IAAIwmB,EAAE2H,EAAE204B,cAA+C,OAAjC3z5B,EAAE4w5B,IAAI5x4B,EAAEhf,EAAE6w5B,IAAIx54B,EAAED,EAAE,KAAY,EAAP4H,EAAEnX,MAAekmB,GAAG,IAAK,SAASa,GAAE,SAAS5uB,GAAG4uB,GAAE,QAAQ5uB,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ4uB,GAAE,OAAO5uB,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI1R,EAAE,EAAEA,EAAEwtV,GAAG1vV,OAAOkC,IAAIsgC,GAAEktT,GAAGxtV,GAAG0R,GAAG,MAAM,IAAK,SAAS4uB,GAAE,QAAQ5uB,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO4uB,GAAE,QACnhB5uB,GAAG4uB,GAAE,OAAO5uB,GAAG,MAAM,IAAK,UAAU4uB,GAAE,SAAS5uB,GAAG,MAAM,IAAK,QAAQ2h0B,EAAG3h0B,EAAEqX,GAAGuX,GAAE,UAAU5uB,GAAG,MAAM,IAAK,SAASA,EAAEkk5B,cAAc,CAACyX,cAActk5B,EAAEuk5B,UAAUht4B,GAAE,UAAU5uB,GAAG,MAAM,IAAK,WAAWgpD,GAAGhpD,EAAEqX,GAAGuX,GAAE,UAAU5uB,GAAkB,IAAI,IAAI+uB,KAAvBu23B,GAAGv33B,EAAE1W,GAAG/oB,EAAE,KAAkB+oB,EAAE,GAAGA,EAAE5P,eAAesnB,GAAG,CAAC,IAAIlwB,EAAEwY,EAAE0X,GAAG,aAAaA,EAAE,kBAAkBlwB,EAAEmB,EAAEwpC,cAAc3qC,KAAI,IAAKwY,EAAEwk5B,0BAA0BlM,GAAG3v5B,EAAEwpC,YAAY3qC,EAAEuY,GAAG9oB,EAAE,CAAC,WAAWuQ,IAAI,kBAAkBA,GAAGmB,EAAEwpC,cAAc,GAAG3qC,KAAI,IAAKwY,EAAEwk5B,0BAA0BlM,GAAG3v5B,EAAEwpC,YAC1e3qC,EAAEuY,GAAG9oB,EAAE,CAAC,WAAW,GAAGuQ,IAAI+1f,EAAGntf,eAAesnB,IAAI,MAAMlwB,GAAG,aAAakwB,GAAGH,GAAE,SAAS5uB,EAAE,CAAC,OAAO+tB,GAAG,IAAK,QAAQ2yyB,EAAG1g0B,GAAGk9D,EAAGl9D,EAAEqX,GAAE,GAAI,MAAM,IAAK,WAAWqpzB,EAAG1g0B,GAAGwk5B,GAAGxk5B,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBqX,EAAEokS,UAAUz7S,EAAEwwJ,QAAQo/vB,IAAI5v5B,EAAE1R,EAAE0wB,EAAEw24B,YAAYx15B,EAAE,OAAOA,IAAIgf,EAAEm5E,OAAO,EAAE,KAAK,CAACppE,EAAE,IAAIzgC,EAAEkwC,SAASlwC,EAAEA,EAAEkkB,cAAc,iCAAiC4E,IAAIA,EAAEo9C,GAAGzmC,IAAI,iCAAiC3W,EAAE,WAAW2W,IAAG3W,EAAE2X,EAAErhC,cAAc,QAASg8C,UAAU,qBAAuBtyB,EAAEA,EAAE1oB,YAAY0oB,EAAE3qB,aAC/f,kBAAkBuT,EAAEq6Y,GAAGjjY,EAAE2X,EAAErhC,cAAcqgC,EAAE,CAACssX,GAAGr6Y,EAAEq6Y,MAAMjjY,EAAE2X,EAAErhC,cAAcqgC,GAAG,WAAWA,IAAIgB,EAAE3X,EAAEpX,EAAE475B,SAAS7s4B,EAAE6s4B,UAAS,EAAG575B,EAAEhM,OAAO+6B,EAAE/6B,KAAKgM,EAAEhM,QAAQojB,EAAE2X,EAAEqZ,gBAAgBhxB,EAAE2W,GAAG3W,EAAEw54B,IAAI5x4B,EAAE5H,EAAEy54B,IAAI7w5B,EAAEy65B,GAAGrj5B,EAAE4H,GAAE,GAAG,GAAIA,EAAE2m4B,UAAUvu4B,EAAEA,EAAE,CAAW,OAAV2X,EAAEo7B,GAAGp8B,EAAE/tB,GAAU+tB,GAAG,IAAK,SAASa,GAAE,SAASxX,GAAGwX,GAAE,QAAQxX,GAAG9oB,EAAE0R,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ4uB,GAAE,OAAOxX,GAAG9oB,EAAE0R,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI1R,EAAE,EAAEA,EAAEwtV,GAAG1vV,OAAOkC,IAAIsgC,GAAEktT,GAAGxtV,GAAG8oB,GAAG9oB,EAAE0R,EAAE,MAAM,IAAK,SAAS4uB,GAAE,QAAQxX,GAAG9oB,EAAE0R,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO4uB,GAAE,QAClfxX,GAAGwX,GAAE,OAAOxX,GAAG9oB,EAAE0R,EAAE,MAAM,IAAK,UAAU4uB,GAAE,SAASxX,GAAG9oB,EAAE0R,EAAE,MAAM,IAAK,QAAQ2h0B,EAAGvqzB,EAAEpX,GAAG1R,EAAEyz0B,EAAG3qzB,EAAEpX,GAAG4uB,GAAE,UAAUxX,GAAG,MAAM,IAAK,SAAiL,QAAQ9oB,EAAE0R,QAAxK,IAAK,SAASoX,EAAE8s4B,cAAc,CAACyX,cAAc375B,EAAE475B,UAAUtt6B,EAAE+kC,EAAE,CAAC,EAAErzB,EAAE,CAAC7Q,WAAM,IAASy/B,GAAE,UAAUxX,GAAG,MAAM,IAAK,WAAW4xC,GAAG5xC,EAAEpX,GAAG1R,EAAE+15B,GAAGjt4B,EAAEpX,GAAG4uB,GAAE,UAAUxX,GAAiC,IAAIC,KAAhBiu4B,GAAGv33B,EAAEz/B,GAAGuQ,EAAEvQ,EAAa,GAAGuQ,EAAE4I,eAAe4P,GAAG,CAAC,IAAInjB,EAAE2K,EAAEwY,GAAG,UAAUA,EAAE2t4B,GAAG5t4B,EAAEljB,GAAG,4BAA4BmjB,EAAuB,OAApBnjB,EAAEA,EAAEA,EAAE875B,YAAO,IAAgBv/1B,GAAGr5C,EAAEljB,GAAI,aAAamjB,EAAE,kBAAkBnjB,GAAG,aAC7e65B,GAAG,KAAK75B,IAAI0w5B,GAAGxt4B,EAAEljB,GAAG,kBAAkBA,GAAG0w5B,GAAGxt4B,EAAE,GAAGljB,GAAG,mCAAmCmjB,GAAG,6BAA6BA,GAAG,cAAcA,IAAIu9e,EAAGntf,eAAe4P,GAAG,MAAMnjB,GAAG,aAAamjB,GAAGuX,GAAE,SAASxX,GAAG,MAAMljB,GAAG4/D,EAAG18C,EAAEC,EAAEnjB,EAAE66B,GAAG,CAAC,OAAOhB,GAAG,IAAK,QAAQ2yyB,EAAGtpzB,GAAG8lD,EAAG9lD,EAAEpX,GAAE,GAAI,MAAM,IAAK,WAAW0g0B,EAAGtpzB,GAAGot4B,GAAGpt4B,GAAG,MAAM,IAAK,SAAS,MAAMpX,EAAE7Q,OAAOioB,EAAEzpB,aAAa,QAAQ,GAAGyy0B,EAAGpg0B,EAAE7Q,QAAQ,MAAM,IAAK,SAASioB,EAAEwk5B,WAAW575B,EAAE475B,SAAmB,OAAVvk5B,EAAErX,EAAE7Q,OAAck7D,GAAGjzC,IAAIpX,EAAE475B,SAASvk5B,GAAE,GAAI,MAAMrX,EAAE6f,cAAcwqC,GAAGjzC,IAAIpX,EAAE475B,SAAS575B,EAAE6f,cAClf,GAAI,MAAM,QAAQ,oBAAoBvxB,EAAEmtT,UAAUrkS,EAAEo5I,QAAQo/vB,IAAI,OAAO7h4B,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW/tB,IAAIA,EAAE875B,UAAU,MAAM1k5B,EAAE,IAAK,MAAMpX,GAAE,EAAG,MAAMoX,EAAE,QAAQpX,GAAE,EAAG,CAACA,IAAIgf,EAAEm5E,OAAO,EAAE,CAAC,OAAOn5E,EAAEjnB,MAAMinB,EAAEm5E,OAAO,IAAIn5E,EAAEm5E,OAAO,QAAQ,CAAM,OAALnpE,GAAEhQ,GAAU,KAAK,KAAK,EAAE,GAAG5H,GAAG,MAAM4H,EAAE2m4B,UAAUiV,GAAGxj5B,EAAE4H,EAAE5H,EAAEu84B,cAAc3z5B,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOgf,EAAE2m4B,UAAU,MAAM5n5B,MAAM+gB,EAAE,MAAsC,GAAhCiP,EAAE+zS,GAAG0rgB,GAAG/00B,SAASqpU,GAAGgrgB,GAAGr00B,SAAYi75B,GAAG104B,GAAG,CAAyC,GAAxChf,EAAEgf,EAAE2m4B,UAAU533B,EAAE/O,EAAE204B,cAAc3z5B,EAAE4w5B,IAAI5x4B,GAAK3H,EAAErX,EAAE8/Z,YAAY/xY,IAC/e,QADof3W,EACvfy74B,IAAY,OAAOz74B,EAAEnrB,KAAK,KAAK,EAAE0j6B,GAAG3v5B,EAAE8/Z,UAAU/xY,EAAE,KAAY,EAAP3W,EAAEvP,OAAS,MAAM,KAAK,GAAE,IAAKuP,EAAEu84B,cAAckI,0BAA0BlM,GAAG3v5B,EAAE8/Z,UAAU/xY,EAAE,KAAY,EAAP3W,EAAEvP,OAASwP,IAAI2H,EAAEm5E,OAAO,EAAE,MAAMn4F,GAAG,IAAI+tB,EAAEyQ,SAASzQ,EAAEA,EAAEvb,eAAe3kB,eAAemS,IAAK4w5B,IAAI5x4B,EAAEA,EAAE2m4B,UAAU3l5B,CAAC,CAAM,OAALgvB,GAAEhQ,GAAU,KAAK,KAAK,GAA0B,GAAvB4oZ,GAAE50Y,IAAGhzB,EAAEgf,EAAEgo4B,cAAiB,OAAO5v4B,GAAG,OAAOA,EAAE4v4B,eAAe,OAAO5v4B,EAAE4v4B,cAAcC,WAAW,CAAC,GAAG/j2B,IAAG,OAAO4v2B,IAAI,KAAY,EAAP9z4B,EAAEnX,OAAS,KAAa,IAARmX,EAAEm5E,OAAWy7zB,KAAKC,KAAK704B,EAAEm5E,OAAO,MAAM9gF,GAAE,OAAQ,GAAGA,EAAEq84B,GAAG104B,GAAG,OAAOhf,GAAG,OAAOA,EAAEin5B,WAAW,CAAC,GAAG,OAC5f7v4B,EAAE,CAAC,IAAIC,EAAE,MAAMtZ,MAAM+gB,EAAE,MAAqD,KAA7BzH,EAAE,QAApBA,EAAE2H,EAAEgo4B,eAAyB3v4B,EAAE4v4B,WAAW,MAAW,MAAMlp5B,MAAM+gB,EAAE,MAAMzH,EAAEu54B,IAAI5x4B,CAAC,MAAM604B,KAAK,KAAa,IAAR704B,EAAEm5E,SAAan5E,EAAEgo4B,cAAc,MAAMho4B,EAAEm5E,OAAO,EAAEnpE,GAAEhQ,GAAG3H,GAAE,CAAE,MAAM,OAAO074B,KAAK2I,GAAG3I,IAAIA,GAAG,MAAM174B,GAAE,EAAG,IAAIA,EAAE,OAAe,MAAR2H,EAAEm5E,MAAYn5E,EAAE,IAAI,CAAC,OAAG,KAAa,IAARA,EAAEm5E,QAAkBn5E,EAAEo24B,MAAMrn4B,EAAE/O,KAAEhf,EAAE,OAAOA,MAAO,OAAOoX,GAAG,OAAOA,EAAE4v4B,gBAAgBhn5B,IAAIgf,EAAEy6C,MAAM0+B,OAAO,KAAK,KAAY,EAAPn5E,EAAEnX,QAAU,OAAOuP,GAAG,KAAe,EAAV4b,GAAEv6B,SAAW,IAAI8vF,KAAIA,GAAE,GAAGqnyB,OAAO,OAAO5w2B,EAAEw24B,cAAcx24B,EAAEm5E,OAAO,GAAGnpE,GAAEhQ,GAAU,MAAK,KAAK,EAAE,OAAOmwzB,KACrfurF,GAAGtj5B,EAAE4H,GAAG,OAAO5H,GAAG+zb,GAAGnsb,EAAE2m4B,UAAUmD,eAAe953B,GAAEhQ,GAAG,KAAK,KAAK,GAAG,OAAO6zC,GAAG7zC,EAAEnuB,KAAK87H,UAAU39F,GAAEhQ,GAAG,KAA+C,KAAK,GAA0B,GAAvB4oZ,GAAE50Y,IAAwB,QAArB3b,EAAE2H,EAAEgo4B,eAA0B,OAAOh43B,GAAEhQ,GAAG,KAAuC,GAAlChf,EAAE,KAAa,IAARgf,EAAEm5E,OAA4B,QAAjBppE,EAAE1X,EAAEgk5B,WAAsB,GAAGr75B,EAAEw75B,GAAGnk5B,GAAE,OAAQ,CAAC,GAAG,IAAIkxE,IAAG,OAAOnxE,GAAG,KAAa,IAARA,EAAE+gF,OAAW,IAAI/gF,EAAE4H,EAAEy6C,MAAM,OAAOriD,GAAG,CAAS,GAAG,QAAX2X,EAAEsgzB,GAAGj4zB,IAAe,CAAmG,IAAlG4H,EAAEm5E,OAAO,IAAIqj0B,GAAGnk5B,GAAE,GAAoB,QAAhBrX,EAAE+uB,EAAEym4B,eAAuBx24B,EAAEw24B,YAAYx15B,EAAEgf,EAAEm5E,OAAO,GAAGn5E,EAAEk84B,aAAa,EAAEl75B,EAAE+tB,EAAMA,EAAE/O,EAAEy6C,MAAM,OAAO1rC,GAAO3W,EAAEpX,GAANqX,EAAE0W,GAAQoqE,OAAO,SAC/d,QAAdppE,EAAE1X,EAAEyv4B,YAAoBzv4B,EAAE694B,WAAW,EAAE794B,EAAE+94B,MAAMh+4B,EAAEC,EAAEoiD,MAAM,KAAKpiD,EAAE6j5B,aAAa,EAAE7j5B,EAAEs84B,cAAc,KAAKt84B,EAAE2v4B,cAAc,KAAK3v4B,EAAEm+4B,YAAY,KAAKn+4B,EAAE6qtB,aAAa,KAAK7qtB,EAAEsu4B,UAAU,OAAOtu4B,EAAE694B,WAAWnm4B,EAAEmm4B,WAAW794B,EAAE+94B,MAAMrm4B,EAAEqm4B,MAAM/94B,EAAEoiD,MAAM1qC,EAAE0qC,MAAMpiD,EAAE6j5B,aAAa,EAAE7j5B,EAAE674B,UAAU,KAAK774B,EAAEs84B,cAAc5k4B,EAAE4k4B,cAAct84B,EAAE2v4B,cAAcj43B,EAAEi43B,cAAc3v4B,EAAEm+4B,YAAYzm4B,EAAEym4B,YAAYn+4B,EAAExmB,KAAKk+B,EAAEl+B,KAAKumB,EAAE2X,EAAEmzsB,aAAa7qtB,EAAE6qtB,aAAa,OAAO9qtB,EAAE,KAAK,CAACg+4B,MAAMh+4B,EAAEg+4B,MAAMD,aAAa/94B,EAAE+94B,eAAepn4B,EAAEA,EAAE0+B,QAA2B,OAAnB28c,GAAEp2e,GAAY,EAAVA,GAAEv6B,QAAU,GAAUumB,EAAEy6C,KAAK,CAACriD,EAClgBA,EAAEq1C,OAAO,CAAC,OAAOp1C,EAAE+nF,MAAMuoU,KAAIo0f,KAAK/84B,EAAEm5E,OAAO,IAAIn4F,GAAE,EAAGw75B,GAAGnk5B,GAAE,GAAI2H,EAAEo24B,MAAM,QAAQ,KAAK,CAAC,IAAIp15B,EAAE,GAAW,QAARoX,EAAEi4zB,GAAGtgzB,KAAa,GAAG/P,EAAEm5E,OAAO,IAAIn4F,GAAE,EAAmB,QAAhB+tB,EAAE3W,EAAEo+4B,eAAuBx24B,EAAEw24B,YAAYzn4B,EAAE/O,EAAEm5E,OAAO,GAAGqj0B,GAAGnk5B,GAAE,GAAI,OAAOA,EAAE+nF,MAAM,WAAW/nF,EAAEkk5B,WAAWxs4B,EAAE+33B,YAAY5j2B,GAAE,OAAOl0B,GAAEhQ,GAAG,UAAU,EAAE2oZ,KAAItwZ,EAAEik5B,mBAAmBS,IAAI,aAAahu4B,IAAI/O,EAAEm5E,OAAO,IAAIn4F,GAAE,EAAGw75B,GAAGnk5B,GAAE,GAAI2H,EAAEo24B,MAAM,SAAS/94B,EAAE+j5B,aAAars4B,EAAE09B,QAAQztC,EAAEy6C,MAAMz6C,EAAEy6C,MAAM1qC,IAAa,QAAThB,EAAE1W,EAAEqmB,MAAc3P,EAAE0+B,QAAQ19B,EAAE/P,EAAEy6C,MAAM1qC,EAAE1X,EAAEqmB,KAAK3O,EAAE,CAAC,OAAG,OAAO1X,EAAE+nF,MAAYpgF,EAAE3H,EAAE+nF,KAAK/nF,EAAEgk5B,UAC9er84B,EAAE3H,EAAE+nF,KAAKpgF,EAAEytC,QAAQp1C,EAAEik5B,mBAAmB3zf,KAAI3oZ,EAAEytC,QAAQ,KAAK1+B,EAAEiF,GAAEv6B,QAAQ2wgB,GAAEp2e,GAAEhzB,EAAI,EAAF+tB,EAAI,EAAI,EAAFA,GAAK/O,IAAEgQ,GAAEhQ,GAAU,MAAK,KAAK,GAAG,KAAK,GAAG,OAAOg94B,KAAKh85B,EAAE,OAAOgf,EAAEgo4B,cAAc,OAAO5v4B,GAAG,OAAOA,EAAE4v4B,gBAAgBhn5B,IAAIgf,EAAEm5E,OAAO,MAAMn4F,GAAG,KAAY,EAAPgf,EAAEnX,MAAQ,KAAQ,WAAHmy5B,MAAiBhr4B,GAAEhQ,GAAkB,EAAfA,EAAEk84B,eAAiBl84B,EAAEm5E,OAAO,OAAOnpE,GAAEhQ,GAAG,KAAK,KAAK,GAAe,KAAK,GAAG,OAAO,KAAK,MAAMjhB,MAAM+gB,EAAE,IAAIE,EAAE/yB,KAAM,CAClX,SAASgw6B,GAAG7k5B,EAAE4H,GAAS,OAAN4z4B,GAAG5z4B,GAAUA,EAAE/yB,KAAK,KAAK,EAAE,OAAOwl6B,GAAGzy4B,EAAEnuB,OAAO6g6B,KAAiB,OAAZt64B,EAAE4H,EAAEm5E,QAAen5E,EAAEm5E,OAAS,MAAH/gF,EAAS,IAAI4H,GAAG,KAAK,KAAK,EAAE,OAAOmwzB,KAAKvna,GAAEwpf,IAAIxpf,GAAEj0Y,IAAG67yB,KAAe,KAAO,OAAjBp4zB,EAAE4H,EAAEm5E,SAAqB,KAAO,IAAF/gF,IAAQ4H,EAAEm5E,OAAS,MAAH/gF,EAAS,IAAI4H,GAAG,KAAK,KAAK,EAAE,OAAOkwzB,GAAGlwzB,GAAG,KAAK,KAAK,GAA0B,GAAvB4oZ,GAAE50Y,IAAwB,QAArB5b,EAAE4H,EAAEgo4B,gBAA2B,OAAO5v4B,EAAE6v4B,WAAW,CAAC,GAAG,OAAOjo4B,EAAE8n4B,UAAU,MAAM/o5B,MAAM+gB,EAAE,MAAM+04B,IAAI,CAAW,OAAS,OAAnBz84B,EAAE4H,EAAEm5E,QAAsBn5E,EAAEm5E,OAAS,MAAH/gF,EAAS,IAAI4H,GAAG,KAAK,KAAK,GAAG,OAAO4oZ,GAAE50Y,IAAG,KAAK,KAAK,EAAE,OAAOm8yB,KAAK,KAAK,KAAK,GAAG,OAAOt8wB,GAAG7zC,EAAEnuB,KAAK87H,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOqvyB,KAC1gB,KAAyB,QAAQ,OAAO,KAAK,CArB7CvB,GAAG,SAASrj5B,EAAE4H,GAAG,IAAI,IAAI+O,EAAE/O,EAAEy6C,MAAM,OAAO1rC,GAAG,CAAC,GAAG,IAAIA,EAAE9hC,KAAK,IAAI8hC,EAAE9hC,IAAImrB,EAAExpB,YAAYmgC,EAAE433B,gBAAgB,GAAG,IAAI533B,EAAE9hC,KAAK,OAAO8hC,EAAE0rC,MAAM,CAAC1rC,EAAE0rC,MAAMzoE,OAAO+8B,EAAEA,EAAEA,EAAE0rC,MAAM,QAAQ,CAAC,GAAG1rC,IAAI/O,EAAE,MAAM,KAAK,OAAO+O,EAAE0+B,SAAS,CAAC,GAAG,OAAO1+B,EAAE/8B,QAAQ+8B,EAAE/8B,SAASguB,EAAE,OAAO+O,EAAEA,EAAE/8B,MAAM,CAAC+8B,EAAE0+B,QAAQz7D,OAAO+8B,EAAE/8B,OAAO+8B,EAAEA,EAAE0+B,OAAO,CAAC,EAAEiu2B,GAAG,WAAW,EACxTC,GAAG,SAASvj5B,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE8oB,EAAEu84B,cAAc,GAAGrl6B,IAAI0R,EAAE,CAACoX,EAAE4H,EAAE2m4B,UAAU7jlB,GAAGgrgB,GAAGr00B,SAAS,IAA4Rs2B,EAAxR1X,EAAE,KAAK,OAAO0W,GAAG,IAAK,QAAQz/B,EAAEyz0B,EAAG3qzB,EAAE9oB,GAAG0R,EAAE+h0B,EAAG3qzB,EAAEpX,GAAGqX,EAAE,GAAG,MAAM,IAAK,SAAS/oB,EAAE+kC,EAAE,CAAC,EAAE/kC,EAAE,CAACa,WAAM,IAAS6Q,EAAEqzB,EAAE,CAAC,EAAErzB,EAAE,CAAC7Q,WAAM,IAASkoB,EAAE,GAAG,MAAM,IAAK,WAAW/oB,EAAE+15B,GAAGjt4B,EAAE9oB,GAAG0R,EAAEqk5B,GAAGjt4B,EAAEpX,GAAGqX,EAAE,GAAG,MAAM,QAAQ,oBAAoB/oB,EAAEmtT,SAAS,oBAAoBz7S,EAAEy7S,UAAUrkS,EAAEo5I,QAAQo/vB,IAAyB,IAAIz44B,KAAzBmu4B,GAAGv33B,EAAE/tB,GAAS+tB,EAAE,KAAcz/B,EAAE,IAAI0R,EAAEyH,eAAe0P,IAAI7oB,EAAEmZ,eAAe0P,IAAI,MAAM7oB,EAAE6oB,GAAG,GAAG,UAAUA,EAAE,CAAC,IAAItY,EAAEvQ,EAAE6oB,GAAG,IAAI4X,KAAKlwB,EAAEA,EAAE4I,eAAesnB,KACjfhB,IAAIA,EAAE,CAAC,GAAGA,EAAEgB,GAAG,GAAG,KAAK,4BAA4B5X,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIy9e,EAAGntf,eAAe0P,GAAGE,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAI1qB,KAAKwqB,EAAE,OAAO,IAAIA,KAAKnX,EAAE,CAAC,IAAI9L,EAAE8L,EAAEmX,GAAyB,GAAtBtY,EAAE,MAAMvQ,EAAEA,EAAE6oB,QAAG,EAAUnX,EAAEyH,eAAe0P,IAAIjjB,IAAI2K,IAAI,MAAM3K,GAAG,MAAM2K,GAAG,GAAG,UAAUsY,EAAE,GAAGtY,EAAE,CAAC,IAAIkwB,KAAKlwB,GAAGA,EAAE4I,eAAesnB,IAAI76B,GAAGA,EAAEuT,eAAesnB,KAAKhB,IAAIA,EAAE,CAAC,GAAGA,EAAEgB,GAAG,IAAI,IAAIA,KAAK76B,EAAEA,EAAEuT,eAAesnB,IAAIlwB,EAAEkwB,KAAK76B,EAAE66B,KAAKhB,IAAIA,EAAE,CAAC,GAAGA,EAAEgB,GAAG76B,EAAE66B,GAAG,MAAMhB,IAAI1W,IAAIA,EAAE,IAAIA,EAAE1qB,KAAKwqB,EACpf4W,IAAIA,EAAE75B,MAAM,4BAA4BijB,GAAGjjB,EAAEA,EAAEA,EAAE875B,YAAO,EAAOnx5B,EAAEA,EAAEA,EAAEmx5B,YAAO,EAAO,MAAM975B,GAAG2K,IAAI3K,IAAImjB,EAAEA,GAAG,IAAI1qB,KAAKwqB,EAAEjjB,IAAI,aAAaijB,EAAE,kBAAkBjjB,GAAG,kBAAkBA,IAAImjB,EAAEA,GAAG,IAAI1qB,KAAKwqB,EAAE,GAAGjjB,GAAG,mCAAmCijB,GAAG,6BAA6BA,IAAIy9e,EAAGntf,eAAe0P,IAAI,MAAMjjB,GAAG,aAAaijB,GAAGyX,GAAE,SAASxX,GAAGC,GAAGxY,IAAI3K,IAAImjB,EAAE,MAAMA,EAAEA,GAAG,IAAI1qB,KAAKwqB,EAAEjjB,GAAG,CAAC65B,IAAI1W,EAAEA,GAAG,IAAI1qB,KAAK,QAAQohC,GAAG,IAAI5W,EAAEE,GAAK2H,EAAEw24B,YAAYr+4B,KAAE6H,EAAEm5E,OAAO,EAAC,CAAC,EAAEyi0B,GAAG,SAASxj5B,EAAE4H,EAAE+O,EAAE/tB,GAAG+tB,IAAI/tB,IAAIgf,EAAEm5E,OAAO,EAAE,EAkBlb,IAAI+j0B,IAAG,EAAGnx2B,IAAE,EAAGox2B,GAAG,oBAAoBhqiB,QAAQA,QAAQpqW,IAAIi3D,GAAE,KAAK,SAASo90B,GAAGhl5B,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAErf,IAAI,GAAG,OAAOg2B,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAM/tB,GAAGi/E,GAAE7nE,EAAE4H,EAAEhf,EAAE,MAAM+tB,EAAEt1B,QAAQ,IAAI,CAAC,SAAS4j6B,GAAGjl5B,EAAE4H,EAAE+O,GAAG,IAAIA,GAAG,CAAC,MAAM/tB,GAAGi/E,GAAE7nE,EAAE4H,EAAEhf,EAAE,CAAC,CAAC,IAAIs85B,IAAG,EAIxR,SAASC,GAAGnl5B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEgf,EAAEw24B,YAAyC,GAAG,QAAhCx15B,EAAE,OAAOA,EAAEA,EAAEu35B,WAAW,MAAiB,CAAC,IAAIjp6B,EAAE0R,EAAEA,EAAE7O,KAAK,EAAE,CAAC,IAAI7C,EAAErC,IAAImrB,KAAKA,EAAE,CAAC,IAAIC,EAAE/oB,EAAEiuJ,QAAQjuJ,EAAEiuJ,aAAQ,OAAO,IAASllI,GAAGgl5B,GAAGr94B,EAAE+O,EAAE1W,EAAE,CAAC/oB,EAAEA,EAAE6C,IAAI,OAAO7C,IAAI0R,EAAE,CAAC,CAAC,SAASw85B,GAAGpl5B,EAAE4H,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEw24B,aAAuBx24B,EAAEu44B,WAAW,MAAiB,CAAC,IAAIxp4B,EAAE/O,EAAEA,EAAE7tB,KAAK,EAAE,CAAC,IAAI48B,EAAE9hC,IAAImrB,KAAKA,EAAE,CAAC,IAAIpX,EAAE+tB,EAAE12B,OAAO02B,EAAEwuH,QAAQv8I,GAAG,CAAC+tB,EAAEA,EAAE58B,IAAI,OAAO48B,IAAI/O,EAAE,CAAC,CAAC,SAASy94B,GAAGrl5B,GAAG,IAAI4H,EAAE5H,EAAErf,IAAI,GAAG,OAAOinB,EAAE,CAAC,IAAI+O,EAAE3W,EAAEuu4B,UAAiBvu4B,EAAEnrB,IAA8BmrB,EAAE2W,EAAE,oBAAoB/O,EAAEA,EAAE5H,GAAG4H,EAAEvmB,QAAQ2e,CAAC,CAAC,CAClf,SAASsl5B,GAAGtl5B,GAAG,IAAI4H,EAAE5H,EAAE0v4B,UAAU,OAAO9n4B,IAAI5H,EAAE0v4B,UAAU,KAAK4V,GAAG194B,IAAI5H,EAAEqiD,MAAM,KAAKriD,EAAE874B,UAAU,KAAK974B,EAAEq1C,QAAQ,KAAK,IAAIr1C,EAAEnrB,MAAoB,QAAd+yB,EAAE5H,EAAEuu4B,oBAA4B3m4B,EAAE4x4B,WAAW5x4B,EAAE6x4B,WAAW7x4B,EAAEimB,WAAWjmB,EAAE8x4B,WAAW9x4B,EAAE+x4B,MAAM354B,EAAEuu4B,UAAU,KAAKvu4B,EAAEpmB,OAAO,KAAKomB,EAAE8qtB,aAAa,KAAK9qtB,EAAEu84B,cAAc,KAAKv84B,EAAE4v4B,cAAc,KAAK5v4B,EAAEg84B,aAAa,KAAKh84B,EAAEuu4B,UAAU,KAAKvu4B,EAAEo+4B,YAAY,IAAI,CAAC,SAASmH,GAAGvl5B,GAAG,OAAO,IAAIA,EAAEnrB,KAAK,IAAImrB,EAAEnrB,KAAK,IAAImrB,EAAEnrB,GAAG,CACna,SAAS2w6B,GAAGxl5B,GAAGA,EAAE,OAAO,CAAC,KAAK,OAAOA,EAAEq1C,SAAS,CAAC,GAAG,OAAOr1C,EAAEpmB,QAAQ2r6B,GAAGvl5B,EAAEpmB,QAAQ,OAAO,KAAKomB,EAAEA,EAAEpmB,MAAM,CAA2B,IAA1BomB,EAAEq1C,QAAQz7D,OAAOomB,EAAEpmB,OAAWomB,EAAEA,EAAEq1C,QAAQ,IAAIr1C,EAAEnrB,KAAK,IAAImrB,EAAEnrB,KAAK,KAAKmrB,EAAEnrB,KAAK,CAAC,GAAW,EAARmrB,EAAE+gF,MAAQ,SAAS/gF,EAAE,GAAG,OAAOA,EAAEqiD,OAAO,IAAIriD,EAAEnrB,IAAI,SAASmrB,EAAOA,EAAEqiD,MAAMzoE,OAAOomB,EAAEA,EAAEA,EAAEqiD,KAAK,CAAC,KAAa,EAARriD,EAAE+gF,OAAS,OAAO/gF,EAAEuu4B,SAAS,CAAC,CACzT,SAASkX,GAAGzl5B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEoX,EAAEnrB,IAAI,GAAG,IAAI+T,GAAG,IAAIA,EAAEoX,EAAEA,EAAEuu4B,UAAU3m4B,EAAE,IAAI+O,EAAEyQ,SAASzQ,EAAEt/B,WAAW/B,aAAa0qB,EAAE4H,GAAG+O,EAAErhC,aAAa0qB,EAAE4H,IAAI,IAAI+O,EAAEyQ,UAAUxf,EAAE+O,EAAEt/B,YAAa/B,aAAa0qB,EAAE2W,IAAK/O,EAAE+O,GAAIngC,YAAYwpB,GAA4B,QAAxB2W,EAAEA,EAAE+u4B,2BAA8B,IAAS/u4B,GAAG,OAAO/O,EAAEwxI,UAAUxxI,EAAEwxI,QAAQo/vB,UAAU,GAAG,IAAI5v5B,GAAc,QAAVoX,EAAEA,EAAEqiD,OAAgB,IAAIoj2B,GAAGzl5B,EAAE4H,EAAE+O,GAAG3W,EAAEA,EAAEq1C,QAAQ,OAAOr1C,GAAGyl5B,GAAGzl5B,EAAE4H,EAAE+O,GAAG3W,EAAEA,EAAEq1C,OAAO,CAC1X,SAASsw2B,GAAG3l5B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEoX,EAAEnrB,IAAI,GAAG,IAAI+T,GAAG,IAAIA,EAAEoX,EAAEA,EAAEuu4B,UAAU3m4B,EAAE+O,EAAErhC,aAAa0qB,EAAE4H,GAAG+O,EAAEngC,YAAYwpB,QAAQ,GAAG,IAAIpX,GAAc,QAAVoX,EAAEA,EAAEqiD,OAAgB,IAAIsj2B,GAAG3l5B,EAAE4H,EAAE+O,GAAG3W,EAAEA,EAAEq1C,QAAQ,OAAOr1C,GAAG2l5B,GAAG3l5B,EAAE4H,EAAE+O,GAAG3W,EAAEA,EAAEq1C,OAAO,CAAC,IAAI0yB,GAAE,KAAK690B,IAAG,EAAG,SAASC,GAAG7l5B,EAAE4H,EAAE+O,GAAG,IAAIA,EAAEA,EAAE0rC,MAAM,OAAO1rC,GAAGmv4B,GAAG9l5B,EAAE4H,EAAE+O,GAAGA,EAAEA,EAAE0+B,OAAO,CACnR,SAASyw2B,GAAG9l5B,EAAE4H,EAAE+O,GAAG,GAAG84C,IAAI,oBAAoBA,GAAGs21B,qBAAqB,IAAIt21B,GAAGs21B,qBAAqBx21B,GAAG54C,EAAE,CAAC,MAAMlvB,GAAG,CAAC,OAAOkvB,EAAE9hC,KAAK,KAAK,EAAE8+D,IAAGqx2B,GAAGru4B,EAAE/O,GAAG,KAAK,EAAE,IAAIhf,EAAEm/E,GAAE7wF,EAAE0u6B,GAAG790B,GAAE,KAAK890B,GAAG7l5B,EAAE4H,EAAE+O,GAAOiv4B,GAAG1u6B,EAAE,QAAT6wF,GAAEn/E,KAAkBg95B,IAAI5l5B,EAAE+nE,GAAEpxD,EAAEA,EAAE433B,UAAU,IAAIvu4B,EAAEonB,SAASpnB,EAAE3oB,WAAWC,YAAYq/B,GAAG3W,EAAE1oB,YAAYq/B,IAAIoxD,GAAEzwF,YAAYq/B,EAAE433B,YAAY,MAAM,KAAK,GAAG,OAAOxm0B,KAAI690B,IAAI5l5B,EAAE+nE,GAAEpxD,EAAEA,EAAE433B,UAAU,IAAIvu4B,EAAEonB,SAAS+x3B,GAAGn54B,EAAE3oB,WAAWs/B,GAAG,IAAI3W,EAAEonB,UAAU+x3B,GAAGn54B,EAAE2W,GAAGilzB,GAAG57zB,IAAIm54B,GAAGpx0B,GAAEpxD,EAAE433B,YAAY,MAAM,KAAK,EAAE3l5B,EAAEm/E,GAAE7wF,EAAE0u6B,GAAG790B,GAAEpxD,EAAE433B,UAAUmD,cAAckU,IAAG,EAClfC,GAAG7l5B,EAAE4H,EAAE+O,GAAGoxD,GAAEn/E,EAAEg95B,GAAG1u6B,EAAE,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIy8D,KAAoB,QAAhB/qD,EAAE+tB,EAAEyn4B,cAAsC,QAAfx15B,EAAEA,EAAEu35B,aAAsB,CAACjp6B,EAAE0R,EAAEA,EAAE7O,KAAK,EAAE,CAAC,IAAIkmB,EAAE/oB,EAAEygC,EAAE1X,EAAEklI,QAAQllI,EAAEA,EAAEprB,SAAI,IAAS8iC,IAAI,KAAO,EAAF1X,IAAe,KAAO,EAAFA,KAAfgl5B,GAAGtu4B,EAAE/O,EAAE+P,GAAyBzgC,EAAEA,EAAE6C,IAAI,OAAO7C,IAAI0R,EAAE,CAACi95B,GAAG7l5B,EAAE4H,EAAE+O,GAAG,MAAM,KAAK,EAAE,IAAIg9B,KAAIqx2B,GAAGru4B,EAAE/O,GAAiB,oBAAdhf,EAAE+tB,EAAE433B,WAAgCyX,sBAAsB,IAAIp95B,EAAElP,MAAMi9B,EAAE4l4B,cAAc3z5B,EAAEmsB,MAAM4B,EAAEi53B,cAAchn5B,EAAEo95B,sBAAsB,CAAC,MAAMv+5B,GAAGogF,GAAElxD,EAAE/O,EAAEngB,EAAE,CAACo+5B,GAAG7l5B,EAAE4H,EAAE+O,GAAG,MAAM,KAAK,GAAGkv4B,GAAG7l5B,EAAE4H,EAAE+O,GAAG,MAAM,KAAK,GAAU,EAAPA,EAAElmB,MAAQkjD,IAAG/qD,EAAE+qD,KAAI,OAChfh9B,EAAEi53B,cAAciW,GAAG7l5B,EAAE4H,EAAE+O,GAAGg9B,GAAE/qD,GAAGi95B,GAAG7l5B,EAAE4H,EAAE+O,GAAG,MAAM,QAAQkv4B,GAAG7l5B,EAAE4H,EAAE+O,GAAG,CAAC,SAAS4kzB,GAAGv7zB,GAAG,IAAI4H,EAAE5H,EAAEo+4B,YAAY,GAAG,OAAOx24B,EAAE,CAAC5H,EAAEo+4B,YAAY,KAAK,IAAIzn4B,EAAE3W,EAAEuu4B,UAAU,OAAO533B,IAAIA,EAAE3W,EAAEuu4B,UAAU,IAAIwW,IAAIn94B,EAAE1xB,SAAQ,SAAS0xB,GAAG,IAAIhf,EAAEmz0B,GAAGr+zB,KAAK,KAAKsC,EAAE4H,GAAG+O,EAAEvT,IAAIwE,KAAK+O,EAAEU,IAAIzP,GAAGA,EAAE8c,KAAK97B,EAAEA,GAAG,GAAE,CAAC,CACzQ,SAASgvZ,GAAG53Y,EAAE4H,GAAG,IAAI+O,EAAE/O,EAAEk04B,UAAU,GAAG,OAAOnl4B,EAAE,IAAI,IAAI/tB,EAAE,EAAEA,EAAE+tB,EAAE3hC,OAAO4T,IAAI,CAAC,IAAI1R,EAAEy/B,EAAE/tB,GAAG,IAAI,IAAIqX,EAAED,EAAE2X,EAAE/P,EAAEngB,EAAEkwB,EAAE3X,EAAE,KAAK,OAAOvY,GAAG,CAAC,OAAOA,EAAE5S,KAAK,KAAK,EAAEkzF,GAAEtgF,EAAE8m5B,UAAUqX,IAAG,EAAG,MAAM5l5B,EAAE,KAAK,EAA4C,KAAK,EAAE+nE,GAAEtgF,EAAE8m5B,UAAUmD,cAAckU,IAAG,EAAG,MAAM5l5B,EAAEvY,EAAEA,EAAE7N,MAAM,CAAC,GAAG,OAAOmuF,GAAE,MAAMphF,MAAM+gB,EAAE,MAAMo+4B,GAAG7l5B,EAAE0X,EAAEzgC,GAAG6wF,GAAE,KAAK690B,IAAG,EAAG,IAAI9o6B,EAAE5F,EAAEw45B,UAAU,OAAO5y5B,IAAIA,EAAElD,OAAO,MAAM1C,EAAE0C,OAAO,IAAI,CAAC,MAAMmmB,GAAG8nE,GAAE3wF,EAAE0wB,EAAE7H,EAAE,CAAC,CAAC,GAAkB,MAAf6H,EAAEk84B,aAAmB,IAAIl84B,EAAEA,EAAEy6C,MAAM,OAAOz6C,GAAGq+4B,GAAGr+4B,EAAE5H,GAAG4H,EAAEA,EAAEytC,OAAO,CACje,SAAS4w2B,GAAGjm5B,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAE0v4B,UAAU9m5B,EAAEoX,EAAE+gF,MAAM,OAAO/gF,EAAEnrB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAiB,GAAd+ia,GAAGhwY,EAAE5H,GAAGkm5B,GAAGlm5B,GAAQ,EAAFpX,EAAI,CAAC,IAAIu85B,GAAG,EAAEnl5B,EAAEA,EAAEpmB,QAAQwr6B,GAAG,EAAEpl5B,EAAE,CAAC,MAAMkD,GAAG2kE,GAAE7nE,EAAEA,EAAEpmB,OAAOspB,EAAE,CAAC,IAAIii5B,GAAG,EAAEnl5B,EAAEA,EAAEpmB,OAAO,CAAC,MAAMspB,GAAG2kE,GAAE7nE,EAAEA,EAAEpmB,OAAOspB,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE00Y,GAAGhwY,EAAE5H,GAAGkm5B,GAAGlm5B,GAAK,IAAFpX,GAAO,OAAO+tB,GAAGqu4B,GAAGru4B,EAAEA,EAAE/8B,QAAQ,MAAM,KAAK,EAAgD,GAA9Cg+Z,GAAGhwY,EAAE5H,GAAGkm5B,GAAGlm5B,GAAK,IAAFpX,GAAO,OAAO+tB,GAAGqu4B,GAAGru4B,EAAEA,EAAE/8B,QAAmB,GAARomB,EAAE+gF,MAAS,CAAC,IAAI7pG,EAAE8oB,EAAEuu4B,UAAU,IAAIf,GAAGt25B,EAAE,GAAG,CAAC,MAAMgsB,GAAG2kE,GAAE7nE,EAAEA,EAAEpmB,OAAOspB,EAAE,CAAC,CAAC,GAAK,EAAFta,GAAoB,OAAd1R,EAAE8oB,EAAEuu4B,WAAmB,CAAC,IAAItu4B,EAAED,EAAEu84B,cAAc5k4B,EAAE,OAAOhB,EAAEA,EAAE4l4B,cAAct84B,EAAExY,EAAEuY,EAAEvmB,KAAKqD,EAAEkjB,EAAEo+4B,YACje,GAAnBp+4B,EAAEo+4B,YAAY,KAAQ,OAAOth6B,EAAE,IAAI,UAAU2K,GAAG,UAAUwY,EAAExmB,MAAM,MAAMwmB,EAAEpgB,MAAMw2D,EAAGn/D,EAAE+oB,GAAG8yC,GAAGtrD,EAAEkwB,GAAG,IAAI5X,EAAEgzC,GAAGtrD,EAAEwY,GAAG,IAAI0X,EAAE,EAAEA,EAAE76B,EAAE9H,OAAO2iC,GAAG,EAAE,CAAC,IAAIlQ,EAAE3qB,EAAE66B,GAAGmI,EAAEhjC,EAAE66B,EAAE,GAAG,UAAUlQ,EAAEmm4B,GAAG125B,EAAE4oC,GAAG,4BAA4BrY,EAAE4xC,GAAGniE,EAAE4oC,GAAG,aAAarY,EAAE+l4B,GAAGt25B,EAAE4oC,GAAG48B,EAAGxlE,EAAEuwB,EAAEqY,EAAE/f,EAAE,CAAC,OAAOtY,GAAG,IAAK,QAAQ+uD,EAAGt/D,EAAE+oB,GAAG,MAAM,IAAK,WAAWkt4B,GAAGj25B,EAAE+oB,GAAG,MAAM,IAAK,SAAS,IAAI+C,EAAE9rB,EAAE415B,cAAcyX,YAAYrt6B,EAAE415B,cAAcyX,cAActk5B,EAAEuk5B,SAAS,IAAIxn6B,EAAEijB,EAAEloB,MAAM,MAAMiF,EAAEi2D,GAAG/7D,IAAI+oB,EAAEuk5B,SAASxn6B,GAAE,GAAIgmB,MAAM/C,EAAEuk5B,WAAW,MAAMvk5B,EAAEwI,aAAawqC,GAAG/7D,IAAI+oB,EAAEuk5B,SACnfvk5B,EAAEwI,cAAa,GAAIwqC,GAAG/7D,IAAI+oB,EAAEuk5B,SAASvk5B,EAAEuk5B,SAAS,GAAG,IAAG,IAAKtt6B,EAAEui6B,IAAIx54B,CAAC,CAAC,MAAMiD,GAAG2kE,GAAE7nE,EAAEA,EAAEpmB,OAAOspB,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAd00Y,GAAGhwY,EAAE5H,GAAGkm5B,GAAGlm5B,GAAQ,EAAFpX,EAAI,CAAC,GAAG,OAAOoX,EAAEuu4B,UAAU,MAAM5n5B,MAAM+gB,EAAE,MAAMxwB,EAAE8oB,EAAEuu4B,UAAUtu4B,EAAED,EAAEu84B,cAAc,IAAIrl6B,EAAEwxa,UAAUzoZ,CAAC,CAAC,MAAMiD,GAAG2kE,GAAE7nE,EAAEA,EAAEpmB,OAAOspB,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAd00Y,GAAGhwY,EAAE5H,GAAGkm5B,GAAGlm5B,GAAQ,EAAFpX,GAAK,OAAO+tB,GAAGA,EAAEi53B,cAAc6B,aAAa,IAAI71E,GAAGh0zB,EAAE8p4B,cAAc,CAAC,MAAMxu4B,GAAG2kE,GAAE7nE,EAAEA,EAAEpmB,OAAOspB,EAAE,CAAC,MAAM,KAAK,EAG4G,QAAQ00Y,GAAGhwY,EACnf5H,GAAGkm5B,GAAGlm5B,SAJ4Y,KAAK,GAAG43Y,GAAGhwY,EAAE5H,GAAGkm5B,GAAGlm5B,GAAqB,MAAlB9oB,EAAE8oB,EAAEqiD,OAAQ0+B,QAAa9gF,EAAE,OAAO/oB,EAAE045B,cAAc145B,EAAEq35B,UAAUvsxB,SAAS/hH,GAAGA,GAClf,OAAO/oB,EAAEw45B,WAAW,OAAOx45B,EAAEw45B,UAAUE,gBAAgBuW,GAAG51f,OAAQ,EAAF3na,GAAK2y0B,GAAGv7zB,GAAG,MAAM,KAAK,GAAsF,GAAnFyH,EAAE,OAAOkP,GAAG,OAAOA,EAAEi53B,cAAqB,EAAP5v4B,EAAEvP,MAAQkjD,IAAG5zC,EAAE4zC,KAAIlsC,EAAEmwY,GAAGhwY,EAAE5H,GAAG2zC,GAAE5zC,GAAG63Y,GAAGhwY,EAAE5H,GAAGkm5B,GAAGlm5B,GAAQ,KAAFpX,EAAO,CAA0B,GAAzBmX,EAAE,OAAOC,EAAE4v4B,eAAkB5v4B,EAAEuu4B,UAAUvsxB,SAASjiH,KAAK0H,GAAG,KAAY,EAAPzH,EAAEvP,MAAQ,IAAIm3E,GAAE5nE,EAAEyH,EAAEzH,EAAEqiD,MAAM,OAAO56C,GAAG,CAAC,IAAIqY,EAAE8nD,GAAEngE,EAAE,OAAOmgE,IAAG,CAAe,OAAV5qF,GAAJgmB,EAAE4kE,IAAMvlB,MAAar/C,EAAEnuB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAGsw6B,GAAG,EAAEni5B,EAAEA,EAAEppB,QAAQ,MAAM,KAAK,EAAEor6B,GAAGhi5B,EAAEA,EAAEppB,QAAQ,IAAIklB,EAAEkE,EAAEur4B,UAAU,GAAG,oBAAoBzv4B,EAAEkn5B,qBAAqB,CAACp95B,EAAEoa,EAAE2T,EAAE3T,EAAEppB,OAAO,IAAIguB,EAAEhf,EAAEkW,EAAEplB,MACpfkuB,EAAE204B,cAAcz94B,EAAEiW,MAAMnN,EAAEgo4B,cAAc9w4B,EAAEkn5B,sBAAsB,CAAC,MAAM9i5B,GAAG2kE,GAAEj/E,EAAE+tB,EAAEzT,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE8h5B,GAAGhi5B,EAAEA,EAAEppB,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAOopB,EAAE4s4B,cAAc,CAACwW,GAAGtm4B,GAAG,QAAQ,EAAE,OAAO9iC,GAAGA,EAAEpD,OAAOopB,EAAE4kE,GAAE5qF,GAAGop6B,GAAGtm4B,EAAE,CAACrY,EAAEA,EAAE4tC,OAAO,CAACr1C,EAAE,IAAIyH,EAAE,KAAKqY,EAAE9f,IAAI,CAAC,GAAG,IAAI8f,EAAEjrC,KAAK,GAAG,OAAO4yB,EAAE,CAACA,EAAEqY,EAAE,IAAI5oC,EAAE4oC,EAAEyu3B,UAAUxu4B,EAAa,oBAAVE,EAAE/oB,EAAE+pB,OAA4BqmB,YAAYrnB,EAAEqnB,YAAY,UAAU,OAAO,aAAarnB,EAAEtU,QAAQ,QAASlE,EAAEq4B,EAAEyu3B,UAAkC523B,OAAE,KAA1B76B,EAAEgjC,EAAEy83B,cAAct74B,QAAoB,OAAOnkB,GAAGA,EAAEuT,eAAe,WAAWvT,EAAE6O,QAAQ,KAAKlE,EAAEwZ,MAAMtV,QACzfmxD,GAAG,UAAUnlC,GAAG,CAAC,MAAMzU,GAAG2kE,GAAE7nE,EAAEA,EAAEpmB,OAAOspB,EAAE,CAAC,OAAO,GAAG,IAAI4c,EAAEjrC,KAAK,GAAG,OAAO4yB,EAAE,IAAIqY,EAAEyu3B,UAAU7lf,UAAU3oZ,EAAE,GAAG+f,EAAEy83B,aAAa,CAAC,MAAMr54B,GAAG2kE,GAAE7nE,EAAEA,EAAEpmB,OAAOspB,EAAE,OAAO,IAAI,KAAK4c,EAAEjrC,KAAK,KAAKirC,EAAEjrC,KAAK,OAAOirC,EAAE8v3B,eAAe9v3B,IAAI9f,IAAI,OAAO8f,EAAEuiC,MAAM,CAACviC,EAAEuiC,MAAMzoE,OAAOkmC,EAAEA,EAAEA,EAAEuiC,MAAM,QAAQ,CAAC,GAAGviC,IAAI9f,EAAE,MAAMA,EAAE,KAAK,OAAO8f,EAAEu1B,SAAS,CAAC,GAAG,OAAOv1B,EAAElmC,QAAQkmC,EAAElmC,SAASomB,EAAE,MAAMA,EAAEyH,IAAIqY,IAAIrY,EAAE,MAAMqY,EAAEA,EAAElmC,MAAM,CAAC6tB,IAAIqY,IAAIrY,EAAE,MAAMqY,EAAEu1B,QAAQz7D,OAAOkmC,EAAElmC,OAAOkmC,EAAEA,EAAEu1B,OAAO,CAAC,CAAC,MAAM,KAAK,GAAGuiW,GAAGhwY,EAAE5H,GAAGkm5B,GAAGlm5B,GAAK,EAAFpX,GAAK2y0B,GAAGv7zB,GAAS,KAAK,IACtd,CAAC,SAASkm5B,GAAGlm5B,GAAG,IAAI4H,EAAE5H,EAAE+gF,MAAM,GAAK,EAAFn5E,EAAI,CAAC,IAAI5H,EAAE,CAAC,IAAI,IAAI2W,EAAE3W,EAAEpmB,OAAO,OAAO+8B,GAAG,CAAC,GAAG4u4B,GAAG5u4B,GAAG,CAAC,IAAI/tB,EAAE+tB,EAAE,MAAM3W,CAAC,CAAC2W,EAAEA,EAAE/8B,MAAM,CAAC,MAAM+M,MAAM+gB,EAAE,KAAM,CAAC,OAAO9e,EAAE/T,KAAK,KAAK,EAAE,IAAIqC,EAAE0R,EAAE2l5B,UAAkB,GAAR3l5B,EAAEm4F,QAAWyszB,GAAGt25B,EAAE,IAAI0R,EAAEm4F,QAAQ,IAAgB4k0B,GAAG3l5B,EAATwl5B,GAAGxl5B,GAAU9oB,GAAG,MAAM,KAAK,EAAE,KAAK,EAAE,IAAIygC,EAAE/uB,EAAE2l5B,UAAUmD,cAAsB+T,GAAGzl5B,EAATwl5B,GAAGxl5B,GAAU2X,GAAG,MAAM,QAAQ,MAAMhxB,MAAM+gB,EAAE,MAAO,CAAC,MAAM5qB,GAAG+qF,GAAE7nE,EAAEA,EAAEpmB,OAAOkD,EAAE,CAACkjB,EAAE+gF,QAAQ,CAAC,CAAG,KAAFn5E,IAAS5H,EAAE+gF,QAAQ,KAAK,CAAC,SAASsl0B,GAAGrm5B,EAAE4H,EAAE+O,GAAGixD,GAAE5nE,EAAE69gB,GAAG79gB,EAAE4H,EAAE+O,EAAE,CACvb,SAASkngB,GAAG79gB,EAAE4H,EAAE+O,GAAG,IAAI,IAAI/tB,EAAE,KAAY,EAAPoX,EAAEvP,MAAQ,OAAOm3E,IAAG,CAAC,IAAI1wF,EAAE0wF,GAAE3nE,EAAE/oB,EAAEmrE,MAAM,GAAG,KAAKnrE,EAAErC,KAAK+T,EAAE,CAAC,IAAI+uB,EAAE,OAAOzgC,EAAE045B,eAAekV,GAAG,IAAInt4B,EAAE,CAAC,IAAIlwB,EAAEvQ,EAAEw45B,UAAU5y5B,EAAE,OAAO2K,GAAG,OAAOA,EAAEmo5B,eAAej81B,GAAElsD,EAAEq95B,GAAG,IAAI/k5B,EAAE4zC,GAAO,GAALmx2B,GAAGnt4B,GAAMg8B,GAAE72D,KAAKijB,EAAE,IAAI6nE,GAAE1wF,EAAE,OAAO0wF,IAAO9qF,GAAJ66B,EAAEiwD,IAAMvlB,MAAM,KAAK1qC,EAAE9iC,KAAK,OAAO8iC,EAAEi43B,cAAc0W,GAAGpv6B,GAAG,OAAO4F,GAAGA,EAAElD,OAAO+9B,EAAEiwD,GAAE9qF,GAAGwp6B,GAAGpv6B,GAAG,KAAK,OAAO+oB,GAAG2nE,GAAE3nE,EAAE49gB,GAAG59gB,EAAE2H,EAAE+O,GAAG1W,EAAEA,EAAEo1C,QAAQuyB,GAAE1wF,EAAE4t6B,GAAGr95B,EAAEksD,GAAE5zC,CAAC,CAACwm5B,GAAGvm5B,EAAM,MAAM,KAAoB,KAAf9oB,EAAE4s6B,eAAoB,OAAO7j5B,GAAGA,EAAErmB,OAAO1C,EAAE0wF,GAAE3nE,GAAGsm5B,GAAGvm5B,EAAM,CAAC,CACvc,SAASum5B,GAAGvm5B,GAAG,KAAK,OAAO4nE,IAAG,CAAC,IAAIhgE,EAAEggE,GAAE,GAAG,KAAa,KAARhgE,EAAEm5E,OAAY,CAAC,IAAIpqE,EAAE/O,EAAE8n4B,UAAU,IAAI,GAAG,KAAa,KAAR9n4B,EAAEm5E,OAAY,OAAOn5E,EAAE/yB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG8+D,IAAGyx2B,GAAG,EAAEx94B,GAAG,MAAM,KAAK,EAAE,IAAIhf,EAAEgf,EAAE2m4B,UAAU,GAAW,EAAR3m4B,EAAEm5E,QAAUptC,GAAE,GAAG,OAAOh9B,EAAE/tB,EAAEs55B,wBAAwB,CAAC,IAAIhr6B,EAAE0wB,EAAE+j4B,cAAc/j4B,EAAEnuB,KAAKk9B,EAAE4l4B,cAAcr3F,GAAGt9yB,EAAEnuB,KAAKk9B,EAAE4l4B,eAAe3z5B,EAAEo65B,mBAAmB9r6B,EAAEy/B,EAAEi53B,cAAchn5B,EAAE495B,oCAAoC,CAAC,IAAIvm5B,EAAE2H,EAAEw24B,YAAY,OAAOn+4B,GAAGspU,GAAG3hU,EAAE3H,EAAErX,GAAG,MAAM,KAAK,EAAE,IAAI+uB,EAAE/P,EAAEw24B,YAAY,GAAG,OAAOzm4B,EAAE,CAAQ,GAAPhB,EAAE,KAAQ,OAAO/O,EAAEy6C,MAAM,OAAOz6C,EAAEy6C,MAAMxtE,KAAK,KAAK,EACvf,KAAK,EAAE8hC,EAAE/O,EAAEy6C,MAAMks1B,UAAUhlkB,GAAG3hU,EAAE+P,EAAEhB,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIlvB,EAAEmgB,EAAE2m4B,UAAU,GAAG,OAAO533B,GAAW,EAAR/O,EAAEm5E,MAAQ,CAACpqE,EAAElvB,EAAE,IAAI3K,EAAE8qB,EAAE204B,cAAc,OAAO304B,EAAEnuB,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWqD,EAAE4n6B,WAAW/t4B,EAAElnB,QAAQ,MAAM,IAAK,MAAM3S,EAAEwiG,MAAM3oE,EAAE2oE,IAAIxiG,EAAEwiG,KAAK,CAAC,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAyJ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAhM,KAAK,GAAG,GAAG,OAAO13E,EAAEgo4B,cAAc,CAAC,IAAI7v4B,EAAE6H,EAAE8n4B,UAAU,GAAG,OAAO3v4B,EAAE,CAAC,IAAI0H,EAAE1H,EAAE6v4B,cAAc,GAAG,OAAOno4B,EAAE,CAAC,IAAIqY,EAAErY,EAAEoo4B,WAAW,OAAO/v3B,GAAG87yB,GAAG97yB,EAAE,CAAC,CAAC,CAAC,MAC5c,QAAQ,MAAMn5B,MAAM+gB,EAAE,MAAOisC,IAAW,IAAR/rC,EAAEm5E,OAAWsk0B,GAAGz94B,EAAE,CAAC,MAAM5E,GAAG6kE,GAAEjgE,EAAEA,EAAEhuB,OAAOopB,EAAE,CAAC,CAAC,GAAG4E,IAAI5H,EAAE,CAAC4nE,GAAE,KAAK,KAAK,CAAa,GAAG,QAAfjxD,EAAE/O,EAAEytC,SAAoB,CAAC1+B,EAAE/8B,OAAOguB,EAAEhuB,OAAOguF,GAAEjxD,EAAE,KAAK,CAACixD,GAAEhgE,EAAEhuB,MAAM,CAAC,CAAC,SAASws6B,GAAGpm5B,GAAG,KAAK,OAAO4nE,IAAG,CAAC,IAAIhgE,EAAEggE,GAAE,GAAGhgE,IAAI5H,EAAE,CAAC4nE,GAAE,KAAK,KAAK,CAAC,IAAIjxD,EAAE/O,EAAEytC,QAAQ,GAAG,OAAO1+B,EAAE,CAACA,EAAE/8B,OAAOguB,EAAEhuB,OAAOguF,GAAEjxD,EAAE,KAAK,CAACixD,GAAEhgE,EAAEhuB,MAAM,CAAC,CACvS,SAAS0s6B,GAAGtm5B,GAAG,KAAK,OAAO4nE,IAAG,CAAC,IAAIhgE,EAAEggE,GAAE,IAAI,OAAOhgE,EAAE/yB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI8hC,EAAE/O,EAAEhuB,OAAO,IAAIwr6B,GAAG,EAAEx94B,EAAE,CAAC,MAAM9qB,GAAG+qF,GAAEjgE,EAAE+O,EAAE75B,EAAE,CAAC,MAAM,KAAK,EAAE,IAAI8L,EAAEgf,EAAE2m4B,UAAU,GAAG,oBAAoB3l5B,EAAEs55B,kBAAkB,CAAC,IAAIhr6B,EAAE0wB,EAAEhuB,OAAO,IAAIgP,EAAEs55B,mBAAmB,CAAC,MAAMpl6B,GAAG+qF,GAAEjgE,EAAE1wB,EAAE4F,EAAE,CAAC,CAAC,IAAImjB,EAAE2H,EAAEhuB,OAAO,IAAIyr6B,GAAGz94B,EAAE,CAAC,MAAM9qB,GAAG+qF,GAAEjgE,EAAE3H,EAAEnjB,EAAE,CAAC,MAAM,KAAK,EAAE,IAAI66B,EAAE/P,EAAEhuB,OAAO,IAAIyr6B,GAAGz94B,EAAE,CAAC,MAAM9qB,GAAG+qF,GAAEjgE,EAAE+P,EAAE76B,EAAE,EAAE,CAAC,MAAMA,GAAG+qF,GAAEjgE,EAAEA,EAAEhuB,OAAOkD,EAAE,CAAC,GAAG8qB,IAAI5H,EAAE,CAAC4nE,GAAE,KAAK,KAAK,CAAC,IAAIngF,EAAEmgB,EAAEytC,QAAQ,GAAG,OAAO5tD,EAAE,CAACA,EAAE7N,OAAOguB,EAAEhuB,OAAOguF,GAAEngF,EAAE,KAAK,CAACmgF,GAAEhgE,EAAEhuB,MAAM,CAAC,CAC7d,IAwBkN6s6B,GAxB9MC,GAAGlv6B,KAAK8/B,KAAKqv4B,GAAGh42B,EAAGow2B,uBAAuBnt0B,GAAGjjC,EAAG4z2B,kBAAkBlr0B,GAAG1oC,EAAGgj2B,wBAAwBr6tB,GAAE,EAAE5/J,GAAE,KAAKuF,GAAE,KAAKG,GAAE,EAAEwl4B,GAAG,EAAED,GAAG7I,GAAG,GAAG3o0B,GAAE,EAAEy10B,GAAG,KAAKpxF,GAAG,EAAEqxF,GAAG,EAAEC,GAAG,EAAEz/f,GAAG,KAAK0/f,GAAG,KAAKZ,GAAG,EAAExB,GAAGh53B,IAASq73B,GAAG,KAAKvhG,IAAG,EAAGT,GAAG,KAAKW,GAAG,KAAKshG,IAAG,EAAGC,GAAG,KAAKn8f,GAAG,EAAEC,GAAG,EAAEm8f,GAAG,KAAKp8D,IAAI,EAAEq8D,GAAG,EAAE,SAASh22B,KAAI,OAAO,KAAO,EAAFkmI,IAAKi5O,MAAK,IAAIw6b,GAAGA,GAAGA,GAAGx6b,IAAG,CAChU,SAAS32V,GAAG55D,GAAG,OAAG,KAAY,EAAPA,EAAEvP,MAAe,EAAK,KAAO,EAAF6mL,KAAM,IAAIl6J,GAASA,IAAGA,GAAK,OAAOu/3B,GAAG7w5B,YAAkB,IAAIs75B,KAAKA,GAAG13nB,MAAM03nB,IAAU,KAAPpn5B,EAAE4zC,IAAkB5zC,EAAiBA,OAAE,KAAjBA,EAAEuU,OAAOla,OAAmB,GAAGgh4B,GAAGr73B,EAAEvmB,KAAc,CAAC,SAASkr0B,GAAG3kzB,EAAE4H,EAAE+O,EAAE/tB,GAAG,GAAG,GAAGoia,GAAG,MAAMA,GAAG,EAAEm8f,GAAG,KAAKxg6B,MAAM+gB,EAAE,MAAM6rzB,GAAGvzzB,EAAE2W,EAAE/tB,GAAM,KAAO,EAAF0uL,KAAMt3K,IAAI0X,KAAE1X,IAAI0X,KAAI,KAAO,EAAF4/J,MAAOuvuB,IAAIlw4B,GAAG,IAAIw6D,IAAGk20B,GAAGrn5B,EAAEod,KAAIkq4B,GAAGtn5B,EAAEpX,GAAG,IAAI+tB,GAAG,IAAI2gK,IAAG,KAAY,EAAP1vK,EAAEnX,QAAUk05B,GAAGp0f,KAAI,IAAI2rH,IAAI2+X,MAAK,CAC1Y,SAASyM,GAAGtn5B,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAEun5B,cA3MzB,SAAYvn5B,EAAE4H,GAAG,IAAI,IAAI+O,EAAE3W,EAAE8w4B,eAAelo5B,EAAEoX,EAAE+w4B,YAAY755B,EAAE8oB,EAAEwn5B,gBAAgBvn5B,EAAED,EAAE6w4B,aAAa,EAAE5w4B,GAAG,CAAC,IAAI0X,EAAE,GAAG23C,GAAGrvD,GAAGxY,EAAE,GAAGkwB,EAAE76B,EAAE5F,EAAEygC,IAAO,IAAI76B,EAAM,KAAK2K,EAAEkvB,IAAI,KAAKlvB,EAAEmB,KAAG1R,EAAEygC,GAAG4gL,GAAG9wM,EAAEmgB,IAAQ9qB,GAAG8qB,IAAI5H,EAAEyn5B,cAAchg6B,GAAGwY,IAAIxY,CAAC,CAAC,CA2MnL4r0B,CAAGrzzB,EAAE4H,GAAG,IAAIhf,EAAEoq0B,GAAGhzzB,EAAEA,IAAI0X,GAAE0F,GAAE,GAAG,GAAG,IAAIx0B,EAAE,OAAO+tB,GAAGklC,GAAGllC,GAAG3W,EAAEun5B,aAAa,KAAKvn5B,EAAE0n5B,iBAAiB,OAAO,GAAG9/4B,EAAEhf,GAAGA,EAAEoX,EAAE0n5B,mBAAmB9/4B,EAAE,CAAgB,GAAf,MAAM+O,GAAGklC,GAAGllC,GAAM,IAAI/O,EAAE,IAAI5H,EAAEnrB,IA5IsJ,SAAYmrB,GAAGk8gB,IAAG,EAAGn7D,GAAG/gd,EAAE,CA4I5K2n5B,CAAGC,GAAGlq5B,KAAK,KAAKsC,IAAI+gd,GAAG6mc,GAAGlq5B,KAAK,KAAKsC,IAAIg54B,IAAG,WAAW,KAAO,EAAF1huB,KAAMujuB,IAAI,IAAGlk4B,EAAE,SAAS,CAAC,OAAO09yB,GAAGzr0B,IAAI,KAAK,EAAE+tB,EAAEmwE,GAAG,MAAM,KAAK,EAAEnwE,EAAEy8yB,GAAG,MAAM,KAAK,GAAwC,QAAQz8yB,EAAEk7B,SAApC,KAAK,UAAUl7B,EAAE69yB,GAAsB79yB,EAAEkx4B,GAAGlx4B,EAAEmx4B,GAAGpq5B,KAAK,KAAKsC,GAAG,CAACA,EAAE0n5B,iBAAiB9/4B,EAAE5H,EAAEun5B,aAAa5w4B,CAAC,CAAC,CAC7c,SAASmx4B,GAAG9n5B,EAAE4H,GAAc,GAAXmj1B,IAAI,EAAEq8D,GAAG,EAAK,KAAO,EAAF9vuB,IAAK,MAAM3wL,MAAM+gB,EAAE,MAAM,IAAIiP,EAAE3W,EAAEun5B,aAAa,GAAGQ,MAAM/n5B,EAAEun5B,eAAe5w4B,EAAE,OAAO,KAAK,IAAI/tB,EAAEoq0B,GAAGhzzB,EAAEA,IAAI0X,GAAE0F,GAAE,GAAG,GAAG,IAAIx0B,EAAE,OAAO,KAAK,GAAG,KAAO,GAAFA,IAAO,KAAKA,EAAEoX,EAAEyn5B,eAAe7/4B,EAAEA,EAAEog5B,GAAGho5B,EAAEpX,OAAO,CAACgf,EAAEhf,EAAE,IAAI1R,EAAEogM,GAAEA,IAAG,EAAE,IAAIr3K,EAAEgo5B,KAAgD,IAAxCvw4B,KAAI1X,GAAGod,KAAIxV,IAAEo/4B,GAAG,KAAKrC,GAAGp0f,KAAI,IAAI23f,GAAGlo5B,EAAE4H,UAAUug5B,KAAK,KAAK,CAAC,MAAM1g6B,GAAG2g6B,GAAGpo5B,EAAEvY,EAAE,CAAUuyB,KAAK2s4B,GAAGtl6B,QAAQ4e,EAAEq3K,GAAEpgM,EAAE,OAAO+lC,GAAErV,EAAE,GAAG8P,GAAE,KAAK0F,GAAE,EAAExV,EAAEupE,GAAE,CAAC,GAAG,IAAIvpE,EAAE,CAAyC,GAAxC,IAAIA,IAAY,KAAR1wB,EAAEu4S,GAAGzvR,MAAWpX,EAAE1R,EAAE0wB,EAAEyg5B,GAAGro5B,EAAE9oB,KAAQ,IAAI0wB,EAAE,MAAM+O,EAAEiw4B,GAAGsB,GAAGlo5B,EAAE,GAAGqn5B,GAAGrn5B,EAAEpX,GAAG0+5B,GAAGtn5B,EAAEuwZ,MAAK55Y,EAAE,GAAG,IAAI/O,EAAEy/4B,GAAGrn5B,EAAEpX,OAChf,CAAuB,GAAtB1R,EAAE8oB,EAAE3e,QAAQqu5B,UAAa,KAAO,GAAF9m5B,KAGnC,SAAYoX,GAAG,IAAI,IAAI4H,EAAE5H,IAAI,CAAC,GAAW,MAAR4H,EAAEm5E,MAAY,CAAC,IAAIpqE,EAAE/O,EAAEw24B,YAAY,GAAG,OAAOzn4B,GAAe,QAAXA,EAAEA,EAAEyp4B,QAAiB,IAAI,IAAIx35B,EAAE,EAAEA,EAAE+tB,EAAE3hC,OAAO4T,IAAI,CAAC,IAAI1R,EAAEy/B,EAAE/tB,GAAGqX,EAAE/oB,EAAEgp6B,YAAYhp6B,EAAEA,EAAEa,MAAM,IAAI,IAAI+i0B,GAAG76yB,IAAI/oB,GAAG,OAAM,CAAE,CAAC,MAAMygC,GAAG,OAAM,CAAE,CAAC,CAAC,CAAW,GAAVhB,EAAE/O,EAAEy6C,MAAwB,MAAfz6C,EAAEk84B,cAAoB,OAAOnt4B,EAAEA,EAAE/8B,OAAOguB,EAAEA,EAAE+O,MAAM,CAAC,GAAG/O,IAAI5H,EAAE,MAAM,KAAK,OAAO4H,EAAEytC,SAAS,CAAC,GAAG,OAAOztC,EAAEhuB,QAAQguB,EAAEhuB,SAASomB,EAAE,OAAM,EAAG4H,EAAEA,EAAEhuB,MAAM,CAACguB,EAAEytC,QAAQz7D,OAAOguB,EAAEhuB,OAAOguB,EAAEA,EAAEytC,OAAO,CAAC,CAAC,OAAM,CAAE,CAHvXiz2B,CAAGpx6B,KAAe,KAAV0wB,EAAEog5B,GAAGho5B,EAAEpX,MAAmB,KAARqX,EAAEwvR,GAAGzvR,MAAWpX,EAAEqX,EAAE2H,EAAEyg5B,GAAGro5B,EAAEC,KAAK,IAAI2H,GAAG,MAAM+O,EAAEiw4B,GAAGsB,GAAGlo5B,EAAE,GAAGqn5B,GAAGrn5B,EAAEpX,GAAG0+5B,GAAGtn5B,EAAEuwZ,MAAK55Y,EAAqC,OAAnC3W,EAAEuo5B,aAAarx6B,EAAE8oB,EAAEwo5B,cAAc5/5B,EAASgf,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMjhB,MAAM+gB,EAAE,MAAM,KAAK,EAC8B,KAAK,EAAE+g5B,GAAGzo5B,EAAE+m5B,GAAGC,IAAI,MAD7B,KAAK,EAAU,GAARK,GAAGrn5B,EAAEpX,IAAS,UAAFA,KAAeA,GAAiB,IAAbgf,EAAEu+4B,GAAG,IAAI51f,MAAU,CAAC,GAAG,IAAIyia,GAAGhzzB,EAAE,GAAG,MAAyB,KAAnB9oB,EAAE8oB,EAAE8w4B,gBAAqBlo5B,KAAKA,EAAE,CAACwoD,KAAIpxC,EAAE+w4B,aAAa/w4B,EAAE8w4B,eAAe555B,EAAE,KAAK,CAAC8oB,EAAE0o5B,cAAc7P,GAAG4P,GAAG/q5B,KAAK,KAAKsC,EAAE+m5B,GAAGC,IAAIp/4B,GAAG,KAAK,CAAC6g5B,GAAGzo5B,EAAE+m5B,GAAGC,IAAI,MAAM,KAAK,EAAU,GAARK,GAAGrn5B,EAAEpX,IAAS,QAAFA,KAC9eA,EAAE,MAAqB,IAAfgf,EAAE5H,EAAEkx4B,WAAeh65B,GAAG,EAAE,EAAE0R,GAAG,CAAC,IAAI+uB,EAAE,GAAG23C,GAAG1mE,GAAGqX,EAAE,GAAG0X,GAAEA,EAAE/P,EAAE+P,IAAKzgC,IAAIA,EAAEygC,GAAG/uB,IAAIqX,CAAC,CAAqG,GAApGrX,EAAE1R,EAAqG,IAA3F0R,GAAG,KAAXA,EAAE2na,KAAI3na,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAK895B,GAAG995B,EAAE,OAAOA,GAAU,CAACoX,EAAE0o5B,cAAc7P,GAAG4P,GAAG/q5B,KAAK,KAAKsC,EAAE+m5B,GAAGC,IAAIp+5B,GAAG,KAAK,CAAC6/5B,GAAGzo5B,EAAE+m5B,GAAGC,IAAI,MAA+B,QAAQ,MAAMrg6B,MAAM+gB,EAAE,MAAO,CAAC,CAAW,OAAV4/4B,GAAGtn5B,EAAEuwZ,MAAYvwZ,EAAEun5B,eAAe5w4B,EAAEmx4B,GAAGpq5B,KAAK,KAAKsC,GAAG,IAAI,CACrX,SAASqo5B,GAAGro5B,EAAE4H,GAAG,IAAI+O,EAAE0wY,GAA2G,OAAxGrnZ,EAAE3e,QAAQuu5B,cAAc6B,eAAeyW,GAAGlo5B,EAAE4H,GAAGm5E,OAAO,KAAe,KAAV/gF,EAAEgo5B,GAAGho5B,EAAE4H,MAAWA,EAAEm/4B,GAAGA,GAAGpw4B,EAAE,OAAO/O,GAAG084B,GAAG184B,IAAW5H,CAAC,CAAC,SAASsk5B,GAAGtk5B,GAAG,OAAO+m5B,GAAGA,GAAG/m5B,EAAE+m5B,GAAGxx6B,KAAKyM,MAAM+k6B,GAAG/m5B,EAAE,CAE5L,SAASqn5B,GAAGrn5B,EAAE4H,GAAuD,IAApDA,IAAIk/4B,GAAGl/4B,IAAIi/4B,GAAG7m5B,EAAE8w4B,gBAAgBlp4B,EAAE5H,EAAE+w4B,cAAcnp4B,EAAM5H,EAAEA,EAAEwn5B,gBAAgB,EAAE5/4B,GAAG,CAAC,IAAI+O,EAAE,GAAG24C,GAAG1nD,GAAGhf,EAAE,GAAG+tB,EAAE3W,EAAE2W,IAAI,EAAE/O,IAAIhf,CAAC,CAAC,CAAC,SAASg/5B,GAAG5n5B,GAAG,GAAG,KAAO,EAAFs3K,IAAK,MAAM3wL,MAAM+gB,EAAE,MAAMqg5B,KAAK,IAAIng5B,EAAEorzB,GAAGhzzB,EAAE,GAAG,GAAG,KAAO,EAAF4H,GAAK,OAAO0/4B,GAAGtn5B,EAAEuwZ,MAAK,KAAK,IAAI55Y,EAAEqx4B,GAAGho5B,EAAE4H,GAAG,GAAG,IAAI5H,EAAEnrB,KAAK,IAAI8hC,EAAE,CAAC,IAAI/tB,EAAE6mS,GAAGzvR,GAAG,IAAIpX,IAAIgf,EAAEhf,EAAE+tB,EAAE0x4B,GAAGro5B,EAAEpX,GAAG,CAAC,GAAG,IAAI+tB,EAAE,MAAMA,EAAEiw4B,GAAGsB,GAAGlo5B,EAAE,GAAGqn5B,GAAGrn5B,EAAE4H,GAAG0/4B,GAAGtn5B,EAAEuwZ,MAAK55Y,EAAE,GAAG,IAAIA,EAAE,MAAMhwB,MAAM+gB,EAAE,MAAiF,OAA3E1H,EAAEuo5B,aAAavo5B,EAAE3e,QAAQqu5B,UAAU1v4B,EAAEwo5B,cAAc5g5B,EAAE6g5B,GAAGzo5B,EAAE+m5B,GAAGC,IAAIM,GAAGtn5B,EAAEuwZ,MAAY,IAAI,CACvd,SAASo4f,GAAG3o5B,EAAE4H,GAAG,IAAI+O,EAAE2gK,GAAEA,IAAG,EAAE,IAAI,OAAOt3K,EAAE4H,EAAE,CAAC,QAAY,KAAJ0vK,GAAE3gK,KAAUgu4B,GAAGp0f,KAAI,IAAI2rH,IAAI2+X,KAAK,CAAC,CAAC,SAAS+N,GAAG5o5B,GAAG,OAAOkn5B,IAAI,IAAIA,GAAGry6B,KAAK,KAAO,EAAFyiM,KAAMywuB,KAAK,IAAIng5B,EAAE0vK,GAAEA,IAAG,EAAE,IAAI3gK,EAAE0gE,GAAGvrF,WAAWlD,EAAEgrD,GAAE,IAAI,GAAGyjC,GAAGvrF,WAAW,KAAK8nD,GAAE,EAAE5zC,EAAE,OAAOA,GAAG,CAAC,QAAQ4zC,GAAEhrD,EAAEyuF,GAAGvrF,WAAW6qB,EAAM,KAAO,GAAX2gK,GAAE1vK,KAAaiz4B,IAAI,CAAC,CAAC,SAAS+J,KAAKhC,GAAGD,GAAGth6B,QAAQmva,GAAEmyf,GAAG,CAChT,SAASuF,GAAGlo5B,EAAE4H,GAAG5H,EAAEuo5B,aAAa,KAAKvo5B,EAAEwo5B,cAAc,EAAE,IAAI7x4B,EAAE3W,EAAE0o5B,cAAiD,IAAlC,IAAI/x4B,IAAI3W,EAAE0o5B,eAAe,EAAE5P,GAAGni4B,IAAO,OAAOsG,GAAE,IAAItG,EAAEsG,GAAErjC,OAAO,OAAO+8B,GAAG,CAAC,IAAI/tB,EAAE+tB,EAAQ,OAAN6k4B,GAAG5y5B,GAAUA,EAAE/T,KAAK,KAAK,EAA6B,QAA3B+T,EAAEA,EAAEnP,KAAK0kC,yBAA4B,IAASv1B,GAAG0x5B,KAAK,MAAM,KAAK,EAAEviF,KAAKvna,GAAEwpf,IAAIxpf,GAAEj0Y,IAAG67yB,KAAK,MAAM,KAAK,EAAEN,GAAGlv0B,GAAG,MAAM,KAAK,EAAEmv0B,KAAK,MAAM,KAAK,GAAc,KAAK,GAAGvna,GAAE50Y,IAAG,MAAM,KAAK,GAAG6/B,GAAG7yD,EAAEnP,KAAK87H,UAAU,MAAM,KAAK,GAAG,KAAK,GAAGqvyB,KAAKju4B,EAAEA,EAAE/8B,MAAM,CAAqE,GAApE89B,GAAE1X,EAAEid,GAAEjd,EAAEk94B,GAAGl94B,EAAE3e,QAAQ,MAAM+7B,GAAEwl4B,GAAGh74B,EAAEupE,GAAE,EAAEy10B,GAAG,KAAKE,GAAGD,GAAGrxF,GAAG,EAAEuxF,GAAG1/f,GAAG,KAAQ,OAAO4ua,GAAG,CAAC,IAAIruzB,EAC1f,EAAEA,EAAEquzB,GAAGjh1B,OAAO4yB,IAAI,GAA2B,QAAhBhf,GAAR+tB,EAAEs/yB,GAAGruzB,IAAOs24B,aAAqB,CAACvn4B,EAAEun4B,YAAY,KAAK,IAAIhn6B,EAAE0R,EAAE7O,KAAKkmB,EAAE0W,EAAEkmwB,QAAQ,GAAG,OAAO58wB,EAAE,CAAC,IAAI0X,EAAE1X,EAAElmB,KAAKkmB,EAAElmB,KAAK7C,EAAE0R,EAAE7O,KAAK49B,CAAC,CAAChB,EAAEkmwB,QAAQj0xB,CAAC,CAACqt0B,GAAG,IAAI,CAAC,OAAOj2zB,CAAC,CAC3K,SAASoo5B,GAAGpo5B,EAAE4H,GAAG,OAAE,CAAC,IAAI+O,EAAEsG,GAAE,IAAuB,GAAnBjD,KAAKq+yB,GAAGh30B,QAAQk+5B,GAAM1nF,GAAG,CAAC,IAAI,IAAIjv0B,EAAEiuB,GAAE+43B,cAAc,OAAOhn5B,GAAG,CAAC,IAAI1R,EAAE0R,EAAE0/D,MAAM,OAAOpxE,IAAIA,EAAE2lyB,QAAQ,MAAMj0xB,EAAEA,EAAE7O,IAAI,CAAC890B,IAAG,CAAE,CAA4C,GAA3ConF,GAAG,EAAEnn4B,GAAE+zB,GAAEh1B,GAAE,KAAKqo4B,IAAG,EAAGC,GAAG,EAAEvt0B,GAAGvwF,QAAQ,KAAQ,OAAOs1B,GAAG,OAAOA,EAAE/8B,OAAO,CAACu3F,GAAE,EAAEy10B,GAAGh/4B,EAAEqV,GAAE,KAAK,KAAK,CAACjd,EAAE,CAAC,IAAIC,EAAED,EAAE2X,EAAEhB,EAAE/8B,OAAO6N,EAAEkvB,EAAE75B,EAAE8qB,EAAqB,GAAnBA,EAAEwV,GAAE31B,EAAEs5F,OAAO,MAAS,OAAOjkG,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE4nC,KAAK,CAAC,IAAI3kB,EAAEjjB,EAAE2qB,EAAEhgB,EAAEq4B,EAAErY,EAAE5yB,IAAI,GAAG,KAAY,EAAP4yB,EAAEhX,QAAU,IAAIqvB,GAAG,KAAKA,GAAG,KAAKA,GAAG,CAAC,IAAI9c,EAAEyE,EAAEio4B,UAAU1s4B,GAAGyE,EAAE224B,YAAYp74B,EAAEo74B,YAAY324B,EAAEmo4B,cAAc5s4B,EAAE4s4B,cACxeno4B,EAAEu24B,MAAMh74B,EAAEg74B,QAAQv24B,EAAE224B,YAAY,KAAK324B,EAAEmo4B,cAAc,KAAK,CAAC,IAAI5y5B,EAAE6o0B,GAAGluyB,GAAG,GAAG,OAAO36B,EAAE,CAACA,EAAE+jG,QAAQ,IAAIskuB,GAAGro0B,EAAE26B,EAAElwB,EAAEwY,EAAE2H,GAAU,EAAP5qB,EAAEyT,MAAQo0zB,GAAG5kzB,EAAEF,EAAE6H,GAAO9qB,EAAEijB,EAAE,IAAIjB,GAAZ8I,EAAE5qB,GAAcoh6B,YAAY,GAAG,OAAOt/4B,EAAE,CAAC,IAAIoE,EAAE,IAAIyN,IAAIzN,EAAEmU,IAAIv6B,GAAG8qB,EAAEw24B,YAAYl74B,CAAC,MAAMpE,EAAEuY,IAAIv6B,GAAG,MAAMkjB,CAAC,CAAM,GAAG,KAAO,EAAF4H,GAAK,CAACi9yB,GAAG5kzB,EAAEF,EAAE6H,GAAG4w2B,KAAK,MAAMx42B,CAAC,CAACljB,EAAE6J,MAAM+gB,EAAE,KAAM,MAAM,GAAGokC,IAAU,EAAPrkD,EAAEgJ,KAAO,CAAC,IAAI4kzB,EAAEwQ,GAAGluyB,GAAG,GAAG,OAAO09xB,EAAE,CAAC,KAAa,MAARA,EAAEt0tB,SAAes0tB,EAAEt0tB,OAAO,KAAKskuB,GAAGhQ,EAAE19xB,EAAElwB,EAAEwY,EAAE2H,GAAG804B,GAAGp2F,GAAGxp0B,EAAE2K,IAAI,MAAMuY,CAAC,CAAC,CAACC,EAAEnjB,EAAEwp0B,GAAGxp0B,EAAE2K,GAAG,IAAI0pF,KAAIA,GAAE,GAAG,OAAOk2U,GAAGA,GAAG,CAACpnZ,GAAGonZ,GAAG9xa,KAAK0qB,GAAGA,EAAE0X,EAAE,EAAE,CAAC,OAAO1X,EAAEprB,KAAK,KAAK,EAAEorB,EAAE8gF,OAAO,MACpfn5E,IAAIA,EAAE3H,EAAE+94B,OAAOp24B,EAAkBm8O,GAAG9jP,EAAb8lzB,GAAG9lzB,EAAEnjB,EAAE8qB,IAAW,MAAM5H,EAAE,KAAK,EAAEvY,EAAE3K,EAAE,IAAIy6B,EAAEtX,EAAExmB,KAAK8pB,EAAEtD,EAAEsu4B,UAAU,GAAG,KAAa,IAARtu4B,EAAE8gF,SAAa,oBAAoBxpE,EAAEgH,0BAA0B,OAAOhb,GAAG,oBAAoBA,EAAE6+4B,oBAAoB,OAAOz8F,KAAKA,GAAGvizB,IAAIG,KAAK,CAACtD,EAAE8gF,OAAO,MAAMn5E,IAAIA,EAAE3H,EAAE+94B,OAAOp24B,EAAkBm8O,GAAG9jP,EAAbumzB,GAAGvmzB,EAAExY,EAAEmgB,IAAW,MAAM5H,CAAC,EAAEC,EAAEA,EAAErmB,MAAM,OAAO,OAAOqmB,EAAE,CAAC4o5B,GAAGly4B,EAAE,CAAC,MAAMyiC,GAAIxxC,EAAEwxC,EAAGn8B,KAAItG,GAAG,OAAOA,IAAIsG,GAAEtG,EAAEA,EAAE/8B,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAAC,SAASqu6B,KAAK,IAAIjo5B,EAAE2m5B,GAAGtl6B,QAAsB,OAAdsl6B,GAAGtl6B,QAAQk+5B,GAAU,OAAOv/4B,EAAEu/4B,GAAGv/4B,CAAC,CACrd,SAASw42B,KAAQ,IAAIrnyB,IAAG,IAAIA,IAAG,IAAIA,KAAEA,GAAE,GAAE,OAAOz5D,IAAG,KAAQ,UAAH89yB,KAAe,KAAQ,UAAHqxF,KAAeQ,GAAG3v4B,GAAE0F,GAAE,CAAC,SAAS4q4B,GAAGho5B,EAAE4H,GAAG,IAAI+O,EAAE2gK,GAAEA,IAAG,EAAE,IAAI1uL,EAAEq/5B,KAAqC,IAA7Bvw4B,KAAI1X,GAAGod,KAAIxV,IAAEo/4B,GAAG,KAAKkB,GAAGlo5B,EAAE4H,UAAUkh5B,KAAK,KAAK,CAAC,MAAM5x6B,GAAGkx6B,GAAGpo5B,EAAE9oB,EAAE,CAAgC,GAAtB8iC,KAAKs9J,GAAE3gK,EAAEgw4B,GAAGtl6B,QAAQuH,EAAK,OAAOq0B,GAAE,MAAMt2B,MAAM+gB,EAAE,MAAiB,OAAXgQ,GAAE,KAAK0F,GAAE,EAAS+zD,EAAC,CAAC,SAAS230B,KAAK,KAAK,OAAO7r4B,IAAG8r4B,GAAG9r4B,GAAE,CAAC,SAASkr4B,KAAK,KAAK,OAAOlr4B,KAAIwrZ,MAAMsgf,GAAG9r4B,GAAE,CAAC,SAAS8r4B,GAAG/o5B,GAAG,IAAI4H,EAAE6+4B,GAAGzm5B,EAAE0v4B,UAAU1v4B,EAAE4i5B,IAAI5i5B,EAAEu84B,cAAcv84B,EAAEg84B,aAAa,OAAOp04B,EAAEih5B,GAAG7o5B,GAAGid,GAAErV,EAAEgqE,GAAGvwF,QAAQ,IAAI,CAC1d,SAASwn6B,GAAG7o5B,GAAG,IAAI4H,EAAE5H,EAAE,EAAE,CAAC,IAAI2W,EAAE/O,EAAE8n4B,UAAqB,GAAX1v4B,EAAE4H,EAAEhuB,OAAU,KAAa,MAARguB,EAAEm5E,QAAc,GAAgB,QAAbpqE,EAAE0t4B,GAAG1t4B,EAAE/O,EAAEg74B,KAAkB,YAAJ3l4B,GAAEtG,OAAc,CAAW,GAAG,QAAbA,EAAEku4B,GAAGlu4B,EAAE/O,IAAmC,OAAnB+O,EAAEoqE,OAAO,WAAM9jE,GAAEtG,GAAS,GAAG,OAAO3W,EAAmE,OAAXmxE,GAAE,OAAEl0D,GAAE,MAA5Djd,EAAE+gF,OAAO,MAAM/gF,EAAE8j5B,aAAa,EAAE9j5B,EAAE874B,UAAU,IAA4B,CAAa,GAAG,QAAfl04B,EAAEA,EAAEytC,SAAyB,YAAJp4B,GAAErV,GAASqV,GAAErV,EAAE5H,CAAC,OAAO,OAAO4H,GAAG,IAAIupE,KAAIA,GAAE,EAAE,CAAC,SAASs30B,GAAGzo5B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEgrD,GAAE18D,EAAEmgG,GAAGvrF,WAAW,IAAIurF,GAAGvrF,WAAW,KAAK8nD,GAAE,EAC3Y,SAAY5zC,EAAE4H,EAAE+O,EAAE/tB,GAAG,GAAGm/5B,WAAW,OAAOb,IAAI,GAAG,KAAO,EAAF5vuB,IAAK,MAAM3wL,MAAM+gB,EAAE,MAAMiP,EAAE3W,EAAEuo5B,aAAa,IAAIrx6B,EAAE8oB,EAAEwo5B,cAAc,GAAG,OAAO7x4B,EAAE,OAAO,KAA2C,GAAtC3W,EAAEuo5B,aAAa,KAAKvo5B,EAAEwo5B,cAAc,EAAK7x4B,IAAI3W,EAAE3e,QAAQ,MAAMsF,MAAM+gB,EAAE,MAAM1H,EAAEun5B,aAAa,KAAKvn5B,EAAE0n5B,iBAAiB,EAAE,IAAIzn5B,EAAE0W,EAAEqn4B,MAAMrn4B,EAAEmn4B,WAA8J,GAzNtT,SAAY994B,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAE6w4B,cAAcjp4B,EAAE5H,EAAE6w4B,aAAajp4B,EAAE5H,EAAE8w4B,eAAe,EAAE9w4B,EAAE+w4B,YAAY,EAAE/w4B,EAAEyn5B,cAAc7/4B,EAAE5H,EAAEgp5B,kBAAkBph5B,EAAE5H,EAAEgx4B,gBAAgBpp4B,EAAEA,EAAE5H,EAAEix4B,cAAc,IAAIro5B,EAAEoX,EAAEkx4B,WAAW,IAAIlx4B,EAAEA,EAAEwn5B,gBAAgB,EAAE7w4B,GAAG,CAAC,IAAIz/B,EAAE,GAAGo4E,GAAG34C,GAAG1W,EAAE,GAAG/oB,EAAE0wB,EAAE1wB,GAAG,EAAE0R,EAAE1R,IAAI,EAAE8oB,EAAE9oB,IAAI,EAAEy/B,IAAI1W,CAAC,CAAC,CAyN5G6zzB,CAAG9zzB,EAAEC,GAAGD,IAAI0X,KAAIuF,GAAEvF,GAAE,KAAK0F,GAAE,GAAG,KAAoB,KAAfzG,EAAEmt4B,eAAoB,KAAa,KAARnt4B,EAAEoqE,QAAakm0B,KAAKA,IAAG,EAAGY,GAAGh22B,IAAG,WAAgB,OAALk22B,KAAY,IAAI,KAAI9n5B,EAAE,KAAa,MAAR0W,EAAEoqE,OAAgB,KAAoB,MAAfpqE,EAAEmt4B,eAAqB7j5B,EAAE,CAACA,EAAEo3E,GAAGvrF,WAAWurF,GAAGvrF,WAAW,KAChf,IAAI6rB,EAAEi8B,GAAEA,GAAE,EAAE,IAAInsD,EAAE6vL,GAAEA,IAAG,EAAE1lG,GAAGvwF,QAAQ,KA1CpC,SAAY2e,EAAE4H,GAAgB,GAAb6w4B,GAAG5ysB,GAAa40mB,GAAVz6yB,EAAEq5yB,MAAc,CAAC,GAAG,mBAAmBr5yB,EAAE,IAAI2W,EAAE,CAAClb,MAAMuE,EAAEk34B,eAAev+5B,IAAIqnB,EAAEm34B,mBAAmBn34B,EAAE,CAA8C,IAAIpX,GAAjD+tB,GAAGA,EAAE3W,EAAE5E,gBAAgBub,EAAErC,aAAaC,QAAeqrI,cAAcjpI,EAAEipI,eAAe,GAAGh3J,GAAG,IAAIA,EAAEwu5B,WAAW,CAACzg4B,EAAE/tB,EAAEyu5B,WAAW,IAAIng6B,EAAE0R,EAAE0u5B,aAAar34B,EAAErX,EAAE2u5B,UAAU3u5B,EAAEA,EAAE4u5B,YAAY,IAAI7g4B,EAAEyQ,SAASnnB,EAAEmnB,QAAQ,CAAC,MAAMmvN,GAAG5/N,EAAE,KAAK,MAAM3W,CAAC,CAAC,IAAI2X,EAAE,EAAElwB,GAAG,EAAE3K,GAAG,EAAEijB,EAAE,EAAE0H,EAAE,EAAEqY,EAAE9f,EAAEgD,EAAE,KAAK4E,EAAE,OAAO,CAAC,IAAI,IAAI5qB,EAAK8iC,IAAInJ,GAAG,IAAIz/B,GAAG,IAAI4oC,EAAEsH,WAAW3/B,EAAEkwB,EAAEzgC,GAAG4oC,IAAI7f,GAAG,IAAIrX,GAAG,IAAIk3B,EAAEsH,WAAWtqC,EAAE66B,EAAE/uB,GAAG,IAAIk3B,EAAEsH,WAAWzP,GACnfmI,EAAE4oY,UAAU1za,QAAW,QAAQgI,EAAE8iC,EAAEzqC,aAAkB2tB,EAAE8c,EAAEA,EAAE9iC,EAAE,OAAO,CAAC,GAAG8iC,IAAI9f,EAAE,MAAM4H,EAA8C,GAA5C5E,IAAI2T,KAAK5W,IAAI7oB,IAAIuQ,EAAEkwB,GAAG3U,IAAI/C,KAAKwH,IAAI7e,IAAI9L,EAAE66B,GAAM,QAAQ36B,EAAE8iC,EAAE5qC,aAAa,MAAU8tB,GAAJ8c,EAAE9c,GAAM3rB,UAAU,CAACyoC,EAAE9iC,CAAC,CAAC25B,GAAG,IAAIlvB,IAAI,IAAI3K,EAAE,KAAK,CAAC2e,MAAMhU,EAAE9O,IAAImE,EAAE,MAAM65B,EAAE,IAAI,CAACA,EAAEA,GAAG,CAAClb,MAAM,EAAE9iB,IAAI,EAAE,MAAMg+B,EAAE,KAA+C,IAA1C+h4B,GAAG,CAAC1B,YAAYh34B,EAAEi34B,eAAetg4B,GAAGkvL,IAAG,EAAOj+H,GAAEhgE,EAAE,OAAOggE,IAAG,GAAO5nE,GAAJ4H,EAAEggE,IAAMvlB,MAAM,KAAoB,KAAfz6C,EAAEk84B,eAAoB,OAAO9j5B,EAAEA,EAAEpmB,OAAOguB,EAAEggE,GAAE5nE,OAAO,KAAK,OAAO4nE,IAAG,CAAChgE,EAAEggE,GAAE,IAAI,IAAI9oE,EAAE8I,EAAE8n4B,UAAU,GAAG,KAAa,KAAR9n4B,EAAEm5E,OAAY,OAAOn5E,EAAE/yB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GACvK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAA3W,KAAK,EAAE,GAAG,OAAOiqB,EAAE,CAAC,IAAIoE,EAAEpE,EAAEy94B,cAAclnG,EAAEv2yB,EAAE8w4B,cAAc7y5B,EAAE6qB,EAAE2m4B,UAAUh33B,EAAEx6B,EAAEgl6B,wBAAwBn64B,EAAE+j4B,cAAc/j4B,EAAEnuB,KAAKypB,EAAEgizB,GAAGt9yB,EAAEnuB,KAAKypB,GAAGmyyB,GAAGt4zB,EAAEyp6B,oCAAoCjv4B,CAAC,CAAC,MAAM,KAAK,EAAE,IAAIhU,EAAEqE,EAAE2m4B,UAAUmD,cAAc,IAAInu4B,EAAE6jB,SAAS7jB,EAAE6uB,YAAY,GAAG,IAAI7uB,EAAE6jB,UAAU7jB,EAAE0jB,iBAAiB1jB,EAAEjsB,YAAYisB,EAAE0jB,iBAAiB,MAAyC,QAAQ,MAAMtgC,MAAM+gB,EAAE,MAAO,CAAC,MAAM6uO,GAAG1uK,GAAEjgE,EAAEA,EAAEhuB,OAAO28P,EAAE,CAAa,GAAG,QAAfv2O,EAAE4H,EAAEytC,SAAoB,CAACr1C,EAAEpmB,OAAOguB,EAAEhuB,OAAOguF,GAAE5nE,EAAE,KAAK,CAAC4nE,GAAEhgE,EAAEhuB,MAAM,CAACklB,EAAEom5B,GAAGA,IAAG,CAAW,CAwCld+D,CAAGjp5B,EAAE2W,GAAGsv4B,GAAGtv4B,EAAE3W,GAAGo6yB,GAAGs+F,IAAI7ysB,KAAK4ysB,GAAGC,GAAGD,GAAG,KAAKz44B,EAAE3e,QAAQs1B,EAAE0v4B,GAAG1v4B,EAAE3W,EAAE9oB,GAAG6uE,KAAKuxH,GAAE7vL,EAAEmsD,GAAEj8B,EAAE0/D,GAAGvrF,WAAWmU,CAAC,MAAMD,EAAE3e,QAAQs1B,EAAsF,GAApFsw4B,KAAKA,IAAG,EAAGC,GAAGln5B,EAAE+qZ,GAAG7za,GAAG+oB,EAAED,EAAE6w4B,aAAa,IAAI5w4B,IAAI0lzB,GAAG,MAhOmJ,SAAY3lzB,GAAG,GAAGyvD,IAAI,oBAAoBA,GAAGy51B,kBAAkB,IAAIz51B,GAAGy51B,kBAAkB351B,GAAGvvD,OAAE,EAAO,OAAuB,IAAhBA,EAAE3e,QAAQ0/F,OAAW,CAAC,MAAMn5E,GAAG,CAAC,CAgOxRi1J,CAAGlmJ,EAAE433B,WAAa+Y,GAAGtn5B,EAAEuwZ,MAAQ,OAAO3oZ,EAAE,IAAIhf,EAAEoX,EAAEmp5B,mBAAmBxy4B,EAAE,EAAEA,EAAE/O,EAAE5yB,OAAO2hC,IAAIz/B,EAAE0wB,EAAE+O,GAAG/tB,EAAE1R,EAAEa,MAAM,CAACsq6B,eAAenr6B,EAAEorE,MAAM6/1B,OAAOjr6B,EAAEir6B,SAAS,GAAG18F,GAAG,MAAMA,IAAG,EAAGzlzB,EAAEglzB,GAAGA,GAAG,KAAKhlzB,EAAE,KAAQ,EAAH+qZ,KAAO,IAAI/qZ,EAAEnrB,KAAKkz6B,KAAK9n5B,EAAED,EAAE6w4B,aAAa,KAAO,EAAF5w4B,GAAKD,IAAImn5B,GAAGn8f,MAAMA,GAAG,EAAEm8f,GAAGnn5B,GAAGgrZ,GAAG,EAAE6vf,IAAgB,CAFxFuO,CAAGpp5B,EAAE4H,EAAE+O,EAAE/tB,EAAE,CAAC,QAAQyuF,GAAGvrF,WAAW5U,EAAE08D,GAAEhrD,CAAC,CAAC,OAAO,IAAI,CAGhc,SAASm/5B,KAAK,GAAG,OAAOb,GAAG,CAAC,IAAIln5B,EAAEq0zB,GAAGtpa,IAAInjZ,EAAEyvE,GAAGvrF,WAAW6qB,EAAEi9B,GAAE,IAAmC,GAA/ByjC,GAAGvrF,WAAW,KAAK8nD,GAAE,GAAG5zC,EAAE,GAAGA,EAAK,OAAOkn5B,GAAG,IAAIt+5B,GAAE,MAAO,CAAmB,GAAlBoX,EAAEkn5B,GAAGA,GAAG,KAAKn8f,GAAG,EAAK,KAAO,EAAFzzO,IAAK,MAAM3wL,MAAM+gB,EAAE,MAAM,IAAIxwB,EAAEogM,GAAO,IAALA,IAAG,EAAM1vG,GAAE5nE,EAAE3e,QAAQ,OAAOumF,IAAG,CAAC,IAAI3nE,EAAE2nE,GAAEjwD,EAAE1X,EAAEoiD,MAAM,GAAG,KAAa,GAARulB,GAAEmZ,OAAU,CAAC,IAAIt5F,EAAEwY,EAAE674B,UAAU,GAAG,OAAOr05B,EAAE,CAAC,IAAI,IAAI3K,EAAE,EAAEA,EAAE2K,EAAEzS,OAAO8H,IAAI,CAAC,IAAIijB,EAAEtY,EAAE3K,GAAG,IAAI8qF,GAAE7nE,EAAE,OAAO6nE,IAAG,CAAC,IAAIngE,EAAEmgE,GAAE,OAAOngE,EAAE5yB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGsw6B,GAAG,EAAE194B,EAAExH,GAAG,IAAI6f,EAAErY,EAAE46C,MAAM,GAAG,OAAOviC,EAAEA,EAAElmC,OAAO6tB,EAAEmgE,GAAE9nD,OAAO,KAAK,OAAO8nD,IAAG,CAAK,IAAI5kE,GAARyE,EAAEmgE,IAAUvyB,QAAQr4D,EAAEyqB,EAAE7tB,OAAa,GAAN0r6B,GAAG794B,GAAMA,IACnf1H,EAAE,CAAC6nE,GAAE,KAAK,KAAK,CAAC,GAAG,OAAO5kE,EAAE,CAACA,EAAEppB,OAAOoD,EAAE4qF,GAAE5kE,EAAE,KAAK,CAAC4kE,GAAE5qF,CAAC,CAAC,CAAC,CAAC,IAAI8hB,EAAEmB,EAAEyv4B,UAAU,GAAG,OAAO5w4B,EAAE,CAAC,IAAIoE,EAAEpE,EAAEujD,MAAM,GAAG,OAAOn/C,EAAE,CAACpE,EAAEujD,MAAM,KAAK,EAAE,CAAC,IAAIgzvB,EAAEnyyB,EAAEmyC,QAAQnyC,EAAEmyC,QAAQ,KAAKnyC,EAAEmyyB,CAAC,OAAO,OAAOnyyB,EAAE,CAAC,CAAC0kE,GAAE3nE,CAAC,CAAC,CAAC,GAAG,KAAoB,KAAfA,EAAE6j5B,eAAoB,OAAOns4B,EAAEA,EAAE/9B,OAAOqmB,EAAE2nE,GAAEjwD,OAAO/P,EAAE,KAAK,OAAOggE,IAAG,CAAK,GAAG,KAAa,MAApB3nE,EAAE2nE,IAAYmZ,OAAY,OAAO9gF,EAAEprB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGsw6B,GAAG,EAAEll5B,EAAEA,EAAErmB,QAAQ,IAAImD,EAAEkjB,EAAEo1C,QAAQ,GAAG,OAAOt4D,EAAE,CAACA,EAAEnD,OAAOqmB,EAAErmB,OAAOguF,GAAE7qF,EAAE,MAAM6qB,CAAC,CAACggE,GAAE3nE,EAAErmB,MAAM,CAAC,CAAC,IAAI29B,EAAEvX,EAAE3e,QAAQ,IAAIumF,GAAErwD,EAAE,OAAOqwD,IAAG,CAAK,IAAIrkE,GAARoU,EAAEiwD,IAAUvlB,MAAM,GAAG,KAAoB,KAAf1qC,EAAEms4B,eAAoB,OAClfvg5B,EAAEA,EAAE3pB,OAAO+9B,EAAEiwD,GAAErkE,OAAOqE,EAAE,IAAI+P,EAAEJ,EAAE,OAAOqwD,IAAG,CAAK,GAAG,KAAa,MAApBngF,EAAEmgF,IAAYmZ,OAAY,IAAI,OAAOt5F,EAAE5S,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGuw6B,GAAG,EAAE395B,GAAG,CAAC,MAAM2xD,GAAIyuB,GAAEpgF,EAAEA,EAAE7N,OAAOw/D,EAAG,CAAC,GAAG3xD,IAAIkwB,EAAE,CAACiwD,GAAE,KAAK,MAAMhgE,CAAC,CAAC,IAAI2uO,EAAE9uP,EAAE4tD,QAAQ,GAAG,OAAOkhM,EAAE,CAACA,EAAE38P,OAAO6N,EAAE7N,OAAOguF,GAAE2uK,EAAE,MAAM3uO,CAAC,CAACggE,GAAEngF,EAAE7N,MAAM,CAAC,CAAU,GAAT09L,GAAEpgM,EAAE2j6B,KAAQpr1B,IAAI,oBAAoBA,GAAG451B,sBAAsB,IAAI551B,GAAG451B,sBAAsB951B,GAAGvvD,EAAE,CAAC,MAAMo5C,GAAI,CAACxwD,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQgrD,GAAEj9B,EAAE0gE,GAAGvrF,WAAW8b,CAAC,CAAC,CAAC,OAAM,CAAE,CAAC,SAAS0h5B,GAAGtp5B,EAAE4H,EAAE+O,GAAyB3W,EAAEyhf,GAAGzhf,EAAjB4H,EAAEm+yB,GAAG/lzB,EAAf4H,EAAE0+yB,GAAG3vyB,EAAE/O,GAAY,GAAY,GAAGA,EAAEwpC,KAAI,OAAOpxC,IAAIuzzB,GAAGvzzB,EAAE,EAAE4H,GAAG0/4B,GAAGtn5B,EAAE4H,GAAG,CACze,SAASigE,GAAE7nE,EAAE4H,EAAE+O,GAAG,GAAG,IAAI3W,EAAEnrB,IAAIy06B,GAAGtp5B,EAAEA,EAAE2W,QAAQ,KAAK,OAAO/O,GAAG,CAAC,GAAG,IAAIA,EAAE/yB,IAAI,CAACy06B,GAAG1h5B,EAAE5H,EAAE2W,GAAG,KAAK,CAAM,GAAG,IAAI/O,EAAE/yB,IAAI,CAAC,IAAI+T,EAAEgf,EAAE2m4B,UAAU,GAAG,oBAAoB3m4B,EAAEnuB,KAAK8kC,0BAA0B,oBAAoB31B,EAAEw55B,oBAAoB,OAAOz8F,KAAKA,GAAGvizB,IAAIxa,IAAI,CAAuBgf,EAAE65e,GAAG75e,EAAjB5H,EAAEwmzB,GAAG5+yB,EAAf5H,EAAEsmzB,GAAG3vyB,EAAE3W,GAAY,GAAY,GAAGA,EAAEoxC,KAAI,OAAOxpC,IAAI2rzB,GAAG3rzB,EAAE,EAAE5H,GAAGsn5B,GAAG1/4B,EAAE5H,IAAI,KAAK,CAAC,CAAC4H,EAAEA,EAAEhuB,MAAM,CAAC,CACnV,SAASqr0B,GAAGjlzB,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEoX,EAAEsi5B,UAAU,OAAO155B,GAAGA,EAAE4+Y,OAAO5/X,GAAGA,EAAEwpC,KAAIpxC,EAAE+w4B,aAAa/w4B,EAAE8w4B,eAAen63B,EAAEe,KAAI1X,IAAIod,GAAEzG,KAAKA,IAAI,IAAIw6D,IAAG,IAAIA,KAAM,UAAF/zD,MAAeA,IAAG,IAAImzY,KAAI41f,GAAG+B,GAAGlo5B,EAAE,GAAG8m5B,IAAInw4B,GAAG2w4B,GAAGtn5B,EAAE4H,EAAE,CAAC,SAAS2h5B,GAAGvp5B,EAAE4H,GAAG,IAAIA,IAAI,KAAY,EAAP5H,EAAEvP,MAAQmX,EAAE,GAAGA,EAAEs/E,GAAU,KAAQ,WAAfA,KAAK,MAAuBA,GAAG,WAAW,IAAIvwE,EAAEy6B,KAAc,QAAVpxC,EAAEi1nB,GAAGj1nB,EAAE4H,MAAc2rzB,GAAGvzzB,EAAE4H,EAAE+O,GAAG2w4B,GAAGtn5B,EAAE2W,GAAG,CAAC,SAASit4B,GAAG5j5B,GAAG,IAAI4H,EAAE5H,EAAE4v4B,cAAcj53B,EAAE,EAAE,OAAO/O,IAAI+O,EAAE/O,EAAEs04B,WAAWqN,GAAGvp5B,EAAE2W,EAAE,CACjZ,SAASolzB,GAAG/7zB,EAAE4H,GAAG,IAAI+O,EAAE,EAAE,OAAO3W,EAAEnrB,KAAK,KAAK,GAAG,IAAI+T,EAAEoX,EAAEuu4B,UAAcr35B,EAAE8oB,EAAE4v4B,cAAc,OAAO145B,IAAIy/B,EAAEz/B,EAAEgl6B,WAAW,MAAM,KAAK,GAAGtz5B,EAAEoX,EAAEuu4B,UAAU,MAAM,QAAQ,MAAM5n5B,MAAM+gB,EAAE,MAAO,OAAO9e,GAAGA,EAAE4+Y,OAAO5/X,GAAG2h5B,GAAGvp5B,EAAE2W,EAAE,CAQqK,SAASkx4B,GAAG7n5B,EAAE4H,GAAG,OAAO8zC,GAAG17C,EAAE4H,EAAE,CACjZ,SAAS4h5B,GAAGxp5B,EAAE4H,EAAE+O,EAAE/tB,GAAGjU,KAAKE,IAAImrB,EAAErrB,KAAKkB,IAAI8gC,EAAEhiC,KAAK0gE,QAAQ1gE,KAAK0tE,MAAM1tE,KAAKiF,OAAOjF,KAAK455B,UAAU555B,KAAK8E,KAAK9E,KAAKg35B,YAAY,KAAKh35B,KAAK4D,MAAM,EAAE5D,KAAKgM,IAAI,KAAKhM,KAAKqn6B,aAAap04B,EAAEjzB,KAAKm2uB,aAAan2uB,KAAKi75B,cAAcj75B,KAAKyp6B,YAAYzp6B,KAAK4n6B,cAAc,KAAK5n6B,KAAK8b,KAAK7H,EAAEjU,KAAKmv6B,aAAanv6B,KAAKosG,MAAM,EAAEpsG,KAAKmn6B,UAAU,KAAKnn6B,KAAKmp6B,WAAWnp6B,KAAKqp6B,MAAM,EAAErp6B,KAAK+65B,UAAU,IAAI,CAAC,SAASmM,GAAG774B,EAAE4H,EAAE+O,EAAE/tB,GAAG,OAAO,IAAI4g6B,GAAGxp5B,EAAE4H,EAAE+O,EAAE/tB,EAAE,CAAC,SAAS0y0B,GAAGt7zB,GAAiB,UAAdA,EAAEA,EAAEjqB,aAAuBiqB,EAAEyp5B,iBAAiB,CAEpd,SAASvM,GAAGl94B,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAE0v4B,UACuB,OADb,OAAO/43B,IAAGA,EAAEkl4B,GAAG774B,EAAEnrB,IAAI+yB,EAAE5H,EAAEnqB,IAAImqB,EAAEvP,OAAQk74B,YAAY3r4B,EAAE2r4B,YAAYh13B,EAAEl9B,KAAKumB,EAAEvmB,KAAKk9B,EAAE433B,UAAUvu4B,EAAEuu4B,UAAU533B,EAAE+43B,UAAU1v4B,EAAEA,EAAE0v4B,UAAU/43B,IAAIA,EAAEql4B,aAAap04B,EAAE+O,EAAEl9B,KAAKumB,EAAEvmB,KAAKk9B,EAAEoqE,MAAM,EAAEpqE,EAAEmt4B,aAAa,EAAEnt4B,EAAEml4B,UAAU,MAAMnl4B,EAAEoqE,MAAc,SAAR/gF,EAAE+gF,MAAepqE,EAAEmn4B,WAAW994B,EAAE894B,WAAWnn4B,EAAEqn4B,MAAMh+4B,EAAEg+4B,MAAMrn4B,EAAE0rC,MAAMriD,EAAEqiD,MAAM1rC,EAAE4l4B,cAAcv84B,EAAEu84B,cAAc5l4B,EAAEi53B,cAAc5v4B,EAAE4v4B,cAAcj53B,EAAEyn4B,YAAYp+4B,EAAEo+4B,YAAYx24B,EAAE5H,EAAE8qtB,aAAan0sB,EAAEm0sB,aAAa,OAAOljtB,EAAE,KAAK,CAACo24B,MAAMp24B,EAAEo24B,MAAMD,aAAan24B,EAAEm24B,cAC/epn4B,EAAE0+B,QAAQr1C,EAAEq1C,QAAQ1+B,EAAEp+B,MAAMynB,EAAEznB,MAAMo+B,EAAEh2B,IAAIqf,EAAErf,IAAWg2B,CAAC,CACxD,SAASym4B,GAAGp94B,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,GAAG,IAAI0X,EAAE,EAAM,GAAJ/uB,EAAEoX,EAAK,oBAAoBA,EAAEs7zB,GAAGt7zB,KAAK2X,EAAE,QAAQ,GAAG,kBAAkB3X,EAAE2X,EAAE,OAAO3X,EAAE,OAAOA,GAAG,KAAKkgG,EAAG,OAAOo9yB,GAAG3m4B,EAAEh9B,SAASzC,EAAE+oB,EAAE2H,GAAG,KAAK6jjB,EAAG9ziB,EAAE,EAAEzgC,GAAG,EAAE,MAAM,KAAK6x0B,EAAG,OAAO/ozB,EAAE674B,GAAG,GAAGll4B,EAAE/O,EAAI,EAAF1wB,IAAOy05B,YAAY5iF,EAAG/ozB,EAAEg+4B,MAAM/94B,EAAED,EAAE,KAAKypzB,EAAG,OAAOzpzB,EAAE674B,GAAG,GAAGll4B,EAAE/O,EAAE1wB,IAAKy05B,YAAYliF,EAAGzpzB,EAAEg+4B,MAAM/94B,EAAED,EAAE,KAAKupzB,EAAG,OAAOvpzB,EAAE674B,GAAG,GAAGll4B,EAAE/O,EAAE1wB,IAAKy05B,YAAYpiF,EAAGvpzB,EAAEg+4B,MAAM/94B,EAAED,EAAE,KAAKkpzB,EAAG,OAAOjgQ,GAAGtyiB,EAAEz/B,EAAE+oB,EAAE2H,GAAG,QAAQ,GAAG,kBAAkB5H,GAAG,OAAOA,EAAE,OAAOA,EAAEiU,UAAU,KAAKo1yB,EAAG1xyB,EAAE,GAAG,MAAM3X,EAAE,KAAKopzB,EAAGzxyB,EAAE,EAAE,MAAM3X,EAAE,KAAK6pzB,EAAGlyyB,EAAE,GACpf,MAAM3X,EAAE,KAAKyqzB,EAAG9yyB,EAAE,GAAG,MAAM3X,EAAE,KAAKsqzB,EAAG3yyB,EAAE,GAAG/uB,EAAE,KAAK,MAAMoX,EAAE,MAAMrZ,MAAM+gB,EAAE,IAAI,MAAM1H,EAAEA,SAASA,EAAE,KAAuD,OAAjD4H,EAAEi04B,GAAGlk4B,EAAEhB,EAAE/O,EAAE1wB,IAAKy05B,YAAY3r4B,EAAE4H,EAAEnuB,KAAKmP,EAAEgf,EAAEo24B,MAAM/94B,EAAS2H,CAAC,CAAC,SAAS014B,GAAGt94B,EAAE4H,EAAE+O,EAAE/tB,GAA2B,OAAxBoX,EAAE674B,GAAG,EAAE774B,EAAEpX,EAAEgf,IAAKo24B,MAAMrn4B,EAAS3W,CAAC,CAAC,SAASipjB,GAAGjpjB,EAAE4H,EAAE+O,EAAE/tB,GAAuE,OAApEoX,EAAE674B,GAAG,GAAG774B,EAAEpX,EAAEgf,IAAK+j4B,YAAYziF,EAAGlpzB,EAAEg+4B,MAAMrn4B,EAAE3W,EAAEuu4B,UAAU,CAACvsxB,UAAS,GAAWhiH,CAAC,CAAC,SAASm94B,GAAGn94B,EAAE4H,EAAE+O,GAA8B,OAA3B3W,EAAE674B,GAAG,EAAE774B,EAAE,KAAK4H,IAAKo24B,MAAMrn4B,EAAS3W,CAAC,CAC5W,SAASq94B,GAAGr94B,EAAE4H,EAAE+O,GAA8J,OAA3J/O,EAAEi04B,GAAG,EAAE,OAAO774B,EAAErmB,SAASqmB,EAAErmB,SAAS,GAAGqmB,EAAEnqB,IAAI+xB,IAAKo24B,MAAMrn4B,EAAE/O,EAAE2m4B,UAAU,CAACmD,cAAc1x4B,EAAE0x4B,cAAcgY,gBAAgB,KAAK/wiB,eAAe34W,EAAE24W,gBAAuB/wW,CAAC,CACtL,SAAS+zC,GAAG37C,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAGvC,KAAKE,IAAI+yB,EAAEjzB,KAAK+85B,cAAc1x4B,EAAErrB,KAAK4z6B,aAAa5z6B,KAAK2t6B,UAAU3t6B,KAAK0M,QAAQ1M,KAAK+06B,gBAAgB,KAAK/06B,KAAK+z6B,eAAe,EAAE/z6B,KAAK4y6B,aAAa5y6B,KAAKwu6B,eAAexu6B,KAAKgvC,QAAQ,KAAKhvC,KAAK+y6B,iBAAiB,EAAE/y6B,KAAKu85B,WAAWnsZ,GAAG,GAAGpwgB,KAAK6y6B,gBAAgBzia,IAAI,GAAGpwgB,KAAKq85B,eAAer85B,KAAK6z6B,cAAc7z6B,KAAKq06B,iBAAiBr06B,KAAK8y6B,aAAa9y6B,KAAKo85B,YAAYp85B,KAAKm85B,eAAen85B,KAAKk85B,aAAa,EAAEl85B,KAAKs85B,cAAclsZ,GAAG,GAAGpwgB,KAAKys6B,iBAAiBx45B,EAAEjU,KAAKw06B,mBAAmBjy6B,EAAEvC,KAAKg16B,gCAC/e,IAAI,CAAC,SAAS7t2B,GAAG97C,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,EAAE0X,EAAElwB,EAAE3K,GAAgN,OAA7MkjB,EAAE,IAAI27C,GAAG37C,EAAE4H,EAAE+O,EAAElvB,EAAE3K,GAAG,IAAI8qB,GAAGA,EAAE,GAAE,IAAK3H,IAAI2H,GAAG,IAAIA,EAAE,EAAE3H,EAAE474B,GAAG,EAAE,KAAK,KAAKj04B,GAAG5H,EAAE3e,QAAQ4e,EAAEA,EAAEsu4B,UAAUvu4B,EAAEC,EAAE2v4B,cAAc,CAACr05B,QAAQqN,EAAE6o5B,aAAa963B,EAAE/2B,MAAM,KAAKmM,YAAY,KAAK695B,0BAA0B,MAAMnyF,GAAGx3zB,GAAUD,CAAC,CACzP,SAASg0kB,GAAGh0kB,GAAG,IAAIA,EAAE,OAAO+54B,GAAuB/54B,EAAE,CAAC,GAAGyv4B,GAA1Bzv4B,EAAEA,EAAEsh5B,mBAA8Bth5B,GAAG,IAAIA,EAAEnrB,IAAI,MAAM8R,MAAM+gB,EAAE,MAAM,IAAIE,EAAE5H,EAAE,EAAE,CAAC,OAAO4H,EAAE/yB,KAAK,KAAK,EAAE+yB,EAAEA,EAAE2m4B,UAAU5q3B,QAAQ,MAAM3jB,EAAE,KAAK,EAAE,GAAGq64B,GAAGzy4B,EAAEnuB,MAAM,CAACmuB,EAAEA,EAAE2m4B,UAAUkM,0CAA0C,MAAMz64B,CAAC,EAAE4H,EAAEA,EAAEhuB,MAAM,OAAO,OAAOguB,GAAG,MAAMjhB,MAAM+gB,EAAE,KAAM,CAAC,GAAG,IAAI1H,EAAEnrB,IAAI,CAAC,IAAI8hC,EAAE3W,EAAEvmB,KAAK,GAAG4g6B,GAAG1j4B,GAAG,OAAO4/B,GAAGv2C,EAAE2W,EAAE/O,EAAE,CAAC,OAAOA,CAAC,CACpW,SAASizF,GAAG76F,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,EAAE+oB,EAAE0X,EAAElwB,EAAE3K,GAAwK,OAArKkjB,EAAE87C,GAAGnlC,EAAE/tB,GAAE,EAAGoX,EAAE9oB,EAAE+oB,EAAE0X,EAAElwB,EAAE3K,IAAK6mC,QAAQqwjB,GAAG,MAAMr9jB,EAAE3W,EAAE3e,SAAsB4e,EAAEw+4B,GAAhB715B,EAAEwoD,KAAIl6D,EAAE0iF,GAAGjjD,KAAev7B,cAAS,IAASwsB,GAAG,OAAOA,EAAEA,EAAE,KAAK65e,GAAG9qe,EAAE1W,EAAE/oB,GAAG8oB,EAAE3e,QAAQ285B,MAAM9m6B,EAAEq80B,GAAGvzzB,EAAE9oB,EAAE0R,GAAG0+5B,GAAGtn5B,EAAEpX,GAAUoX,CAAC,CAAC,SAASioI,GAAGjoI,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI1R,EAAE0wB,EAAEvmB,QAAQ4e,EAAEmxC,KAAIz5B,EAAEiiD,GAAG1iF,GAAsL,OAAnLy/B,EAAEq9jB,GAAGr9jB,GAAG,OAAO/O,EAAE+b,QAAQ/b,EAAE+b,QAAQhN,EAAE/O,EAAEu74B,eAAexs4B,GAAE/O,EAAE624B,GAAGx+4B,EAAE0X,IAAK8zoB,QAAQ,CAAClwqB,QAAQykB,GAAuB,QAApBpX,OAAE,IAASA,EAAE,KAAKA,KAAagf,EAAExsB,SAASwN,GAAe,QAAZoX,EAAEyhf,GAAGvqgB,EAAE0wB,EAAE+P,MAAcgtyB,GAAG3kzB,EAAE9oB,EAAEygC,EAAE1X,GAAG+1zB,GAAGh2zB,EAAE9oB,EAAEygC,IAAWA,CAAC,CAC3b,SAASg+a,GAAG31b,GAAe,OAAZA,EAAEA,EAAE3e,SAAcghE,OAAyBriD,EAAEqiD,MAAMxtE,IAAoDmrB,EAAEqiD,MAAMks1B,WAAhF,IAA0F,CAAC,SAASl81B,GAAGryC,EAAE4H,GAAqB,GAAG,QAArB5H,EAAEA,EAAE4v4B,gBAA2B,OAAO5v4B,EAAE6v4B,WAAW,CAAC,IAAIl53B,EAAE3W,EAAEk84B,UAAUl84B,EAAEk84B,UAAU,IAAIvl4B,GAAGA,EAAE/O,EAAE+O,EAAE/O,CAAC,CAAC,CAAC,SAASw3e,GAAGp/e,EAAE4H,GAAGyqC,GAAGryC,EAAE4H,IAAI5H,EAAEA,EAAE0v4B,YAAYr91B,GAAGryC,EAAE4H,EAAE,CAnB7S6+4B,GAAG,SAASzm5B,EAAE4H,EAAE+O,GAAG,GAAG,OAAO3W,EAAE,GAAGA,EAAEu84B,gBAAgB304B,EAAEo04B,cAAchC,GAAG345B,QAAQuipB,IAAG,MAAO,CAAC,GAAG,KAAK5joB,EAAEg+4B,MAAMrn4B,IAAI,KAAa,IAAR/O,EAAEm5E,OAAW,OAAO6ijB,IAAG,EAzE1I,SAAY5joB,EAAE4H,EAAE+O,GAAG,OAAO/O,EAAE/yB,KAAK,KAAK,EAAEqu6B,GAAGt74B,GAAG604B,KAAK,MAAM,KAAK,EAAEpmF,GAAGzuzB,GAAG,MAAM,KAAK,EAAEyy4B,GAAGzy4B,EAAEnuB,OAAO+g6B,GAAG5y4B,GAAG,MAAM,KAAK,EAAE4iT,GAAG5iT,EAAEA,EAAE2m4B,UAAUmD,eAAe,MAAM,KAAK,GAAG,IAAI9o5B,EAAEgf,EAAEnuB,KAAK87H,SAASr+H,EAAE0wB,EAAE204B,cAAcxk6B,MAAMi6gB,GAAEyrZ,GAAG705B,EAAEi15B,eAAej15B,EAAEi15B,cAAc3m6B,EAAE,MAAM,KAAK,GAAqB,GAAG,QAArB0R,EAAEgf,EAAEgo4B,eAA2B,OAAG,OAAOhn5B,EAAEin5B,YAAkB79Y,GAAEp2e,GAAY,EAAVA,GAAEv6B,SAAWumB,EAAEm5E,OAAO,IAAI,MAAQ,KAAKpqE,EAAE/O,EAAEy6C,MAAMy71B,YAAmB2F,GAAGzj5B,EAAE4H,EAAE+O,IAAGq7e,GAAEp2e,GAAY,EAAVA,GAAEv6B,SAA8B,QAAnB2e,EAAEimzB,GAAGjmzB,EAAE4H,EAAE+O,IAAmB3W,EAAEq1C,QAAQ,MAAK28c,GAAEp2e,GAAY,EAAVA,GAAEv6B,SAAW,MAAM,KAAK,GAC7d,GADgeuH,EAAE,KAAK+tB,EACrf/O,EAAEk24B,YAAe,KAAa,IAAR994B,EAAE+gF,OAAW,CAAC,GAAGn4F,EAAE,OAAOoxP,GAAGh6O,EAAE4H,EAAE+O,GAAG/O,EAAEm5E,OAAO,GAAG,CAA6F,GAA1E,QAAlB7pG,EAAE0wB,EAAEgo4B,iBAAyB145B,EAAE+s6B,UAAU,KAAK/s6B,EAAE8wG,KAAK,KAAK9wG,EAAEip6B,WAAW,MAAMnuZ,GAAEp2e,GAAEA,GAAEv6B,SAAYuH,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOgf,EAAEo24B,MAAM,EAAEt+1B,GAAG1/C,EAAE4H,EAAE+O,GAAG,OAAOsvyB,GAAGjmzB,EAAE4H,EAAE+O,EAAE,CAwE7GsjO,CAAGj6O,EAAE4H,EAAE+O,GAAGitnB,GAAG,KAAa,OAAR5joB,EAAE+gF,MAAmB,MAAM6ijB,IAAG,EAAG93lB,IAAG,KAAa,QAARlkC,EAAEm5E,QAAgBu6zB,GAAG1z4B,EAAEoz4B,GAAGpz4B,EAAErvB,OAAiB,OAAVqvB,EAAEo24B,MAAM,EAASp24B,EAAE/yB,KAAK,KAAK,EAAE,IAAI+T,EAAEgf,EAAEnuB,KAAKmkiB,GAAG59gB,EAAE4H,GAAG5H,EAAE4H,EAAEo04B,aAAa,IAAI9k6B,EAAEgj6B,GAAGty4B,EAAE2U,GAAEl7B,SAAS2vc,GAAGppb,EAAE+O,GAAGz/B,EAAEko6B,GAAG,KAAKx34B,EAAEhf,EAAEoX,EAAE9oB,EAAEy/B,GAAG,IAAI1W,EAAEq3zB,KACvI,OAD4I1vzB,EAAEm5E,OAAO,EAAE,kBAAkB7pG,GAAG,OAAOA,GAAG,oBAAoBA,EAAEi9B,aAAQ,IAASj9B,EAAE+8B,UAAUrM,EAAE/yB,IAAI,EAAE+yB,EAAEgo4B,cAAc,KAAKho4B,EAAEw24B,YAC1e,KAAK/D,GAAGzx5B,IAAIqX,GAAE,EAAGu64B,GAAG5y4B,IAAI3H,GAAE,EAAG2H,EAAEgo4B,cAAc,OAAO145B,EAAE69B,YAAO,IAAS79B,EAAE69B,MAAM79B,EAAE69B,MAAM,KAAK0izB,GAAG7vzB,GAAG1wB,EAAE0q6B,QAAQz8F,GAAGv9yB,EAAE2m4B,UAAUr35B,EAAEA,EAAEoq6B,gBAAgB154B,EAAEm9yB,GAAGn9yB,EAAEhf,EAAEoX,EAAE2W,GAAG/O,EAAEq74B,GAAG,KAAKr74B,EAAEhf,GAAE,EAAGqX,EAAE0W,KAAK/O,EAAE/yB,IAAI,EAAEi3D,IAAG7rC,GAAGs74B,GAAG3z4B,GAAGw+yB,GAAG,KAAKx+yB,EAAE1wB,EAAEy/B,GAAG/O,EAAEA,EAAEy6C,OAAcz6C,EAAE,KAAK,GAAGhf,EAAEgf,EAAE+j4B,YAAY3r4B,EAAE,CAAqF,OAApF49gB,GAAG59gB,EAAE4H,GAAG5H,EAAE4H,EAAEo04B,aAAuBpz5B,GAAV1R,EAAE0R,EAAE6kb,OAAU7kb,EAAEwQ,UAAUwO,EAAEnuB,KAAKmP,EAAE1R,EAAE0wB,EAAE/yB,IAQtU,SAAYmrB,GAAG,GAAG,oBAAoBA,EAAE,OAAOs7zB,GAAGt7zB,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEiU,YAAgB41yB,EAAG,OAAO,GAAG,GAAG7pzB,IAAIyqzB,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAR2Lo/F,CAAGjh6B,GAAGoX,EAAEklzB,GAAGt8zB,EAAEoX,GAAU9oB,GAAG,KAAK,EAAE0wB,EAAE464B,GAAG,KAAK564B,EAAEhf,EAAEoX,EAAE2W,GAAG,MAAM3W,EAAE,KAAK,EAAE4H,EAAEi74B,GAAG,KAAKj74B,EAAEhf,EAAEoX,EAAE2W,GAAG,MAAM3W,EAAE,KAAK,GAAG4H,EAAEu+yB,GAAG,KAAKv+yB,EAAEhf,EAAEoX,EAAE2W,GAAG,MAAM3W,EAAE,KAAK,GAAG4H,EAAE0T,GAAG,KAAK1T,EAAEhf,EAAEs8zB,GAAGt8zB,EAAEnP,KAAKumB,GAAG2W,GAAG,MAAM3W,EAAE,MAAMrZ,MAAM+gB,EAAE,IACvgB9e,EAAE,IAAK,CAAC,OAAOgf,EAAE,KAAK,EAAE,OAAOhf,EAAEgf,EAAEnuB,KAAKvC,EAAE0wB,EAAEo04B,aAA2CwG,GAAGxi5B,EAAE4H,EAAEhf,EAArC1R,EAAE0wB,EAAE+j4B,cAAc/i5B,EAAE1R,EAAEgu0B,GAAGt8zB,EAAE1R,GAAcy/B,GAAG,KAAK,EAAE,OAAO/tB,EAAEgf,EAAEnuB,KAAKvC,EAAE0wB,EAAEo04B,aAA2C6G,GAAG7i5B,EAAE4H,EAAEhf,EAArC1R,EAAE0wB,EAAE+j4B,cAAc/i5B,EAAE1R,EAAEgu0B,GAAGt8zB,EAAE1R,GAAcy/B,GAAG,KAAK,EAAE3W,EAAE,CAAO,GAANkj5B,GAAGt74B,GAAM,OAAO5H,EAAE,MAAMrZ,MAAM+gB,EAAE,MAAM9e,EAAEgf,EAAEo04B,aAA+B9k6B,GAAlB+oB,EAAE2H,EAAEgo4B,eAAkBr05B,QAAQk60B,GAAGz1zB,EAAE4H,GAAGg34B,GAAGh34B,EAAEhf,EAAE,KAAK+tB,GAAG,IAAIgB,EAAE/P,EAAEgo4B,cAA0B,GAAZhn5B,EAAE+uB,EAAEp8B,QAAW0kB,EAAEwx4B,aAAY,CAAC,GAAGxx4B,EAAE,CAAC1kB,QAAQqN,EAAE6o5B,cAAa,EAAG7x5B,MAAM+3B,EAAE/3B,MAAMgq6B,0BAA0Bjy4B,EAAEiy4B,0BAA0B795B,YAAY4rB,EAAE5rB,aAAa6b,EAAEw24B,YAAYC,UAChfp+4B,EAAE2H,EAAEgo4B,cAAc3v4B,EAAU,IAAR2H,EAAEm5E,MAAU,CAAuBn5E,EAAEw74B,GAAGpj5B,EAAE4H,EAAEhf,EAAE+tB,EAAjCz/B,EAAEov0B,GAAG3/zB,MAAM+gB,EAAE,MAAME,IAAmB,MAAM5H,CAAC,CAAM,GAAGpX,IAAI1R,EAAE,CAAuB0wB,EAAEw74B,GAAGpj5B,EAAE4H,EAAEhf,EAAE+tB,EAAjCz/B,EAAEov0B,GAAG3/zB,MAAM+gB,EAAE,MAAME,IAAmB,MAAM5H,CAAC,CAAM,IAAI074B,GAAGtC,GAAGxx4B,EAAE2m4B,UAAUmD,cAAcr85B,YAAYom6B,GAAG7z4B,EAAEkkC,IAAE,EAAG6v2B,GAAG,KAAKhl4B,EAAE6m4B,GAAG514B,EAAE,KAAKhf,EAAE+tB,GAAG/O,EAAEy6C,MAAM1rC,EAAEA,GAAGA,EAAEoqE,OAAe,EAATpqE,EAAEoqE,MAAS,KAAKpqE,EAAEA,EAAE0+B,OAAQ,KAAI,CAAM,GAALon2B,KAAQ7z5B,IAAI1R,EAAE,CAAC0wB,EAAEq+yB,GAAGjmzB,EAAE4H,EAAE+O,GAAG,MAAM3W,CAAC,CAAComzB,GAAGpmzB,EAAE4H,EAAEhf,EAAE+tB,EAAE,CAAC/O,EAAEA,EAAEy6C,KAAK,CAAC,OAAOz6C,EAAE,KAAK,EAAE,OAAOyuzB,GAAGzuzB,GAAG,OAAO5H,GAAGo84B,GAAGx04B,GAAGhf,EAAEgf,EAAEnuB,KAAKvC,EAAE0wB,EAAEo04B,aAAa/74B,EAAE,OAAOD,EAAEA,EAAEu84B,cAAc,KAAK5k4B,EAAEzgC,EAAEyC,SAASg/5B,GAAG/v5B,EAAE1R,GAAGygC,EAAE,KAAK,OAAO1X,GAAG044B,GAAG/v5B,EAAEqX,KAAK2H,EAAEm5E,OAAO,IACnf81oB,GAAG72tB,EAAE4H,GAAGw+yB,GAAGpmzB,EAAE4H,EAAE+P,EAAEhB,GAAG/O,EAAEy6C,MAAM,KAAK,EAAE,OAAO,OAAOriD,GAAGo84B,GAAGx04B,GAAG,KAAK,KAAK,GAAG,OAAO674B,GAAGzj5B,EAAE4H,EAAE+O,GAAG,KAAK,EAAE,OAAO6zS,GAAG5iT,EAAEA,EAAE2m4B,UAAUmD,eAAe9o5B,EAAEgf,EAAEo04B,aAAa,OAAOh84B,EAAE4H,EAAEy6C,MAAMk71B,GAAG314B,EAAE,KAAKhf,EAAE+tB,GAAGyvyB,GAAGpmzB,EAAE4H,EAAEhf,EAAE+tB,GAAG/O,EAAEy6C,MAAM,KAAK,GAAG,OAAOz5D,EAAEgf,EAAEnuB,KAAKvC,EAAE0wB,EAAEo04B,aAA2C71F,GAAGnmzB,EAAE4H,EAAEhf,EAArC1R,EAAE0wB,EAAE+j4B,cAAc/i5B,EAAE1R,EAAEgu0B,GAAGt8zB,EAAE1R,GAAcy/B,GAAG,KAAK,EAAE,OAAOyvyB,GAAGpmzB,EAAE4H,EAAEA,EAAEo04B,aAAarl4B,GAAG/O,EAAEy6C,MAAM,KAAK,EAAmD,KAAK,GAAG,OAAO+jwB,GAAGpmzB,EAAE4H,EAAEA,EAAEo04B,aAAari6B,SAASg9B,GAAG/O,EAAEy6C,MAAM,KAAK,GAAGriD,EAAE,CACxZ,GADyZpX,EAAEgf,EAAEnuB,KAAK87H,SAASr+H,EAAE0wB,EAAEo04B,aAAa/74B,EAAE2H,EAAE204B,cAClf5k4B,EAAEzgC,EAAEa,MAAMi6gB,GAAEyrZ,GAAG705B,EAAEi15B,eAAej15B,EAAEi15B,cAAclm4B,EAAK,OAAO1X,EAAE,GAAG66yB,GAAG76yB,EAAEloB,MAAM4/B,IAAI,GAAG1X,EAAEtmB,WAAWzC,EAAEyC,WAAWqg6B,GAAG345B,QAAQ,CAACumB,EAAEq+yB,GAAGjmzB,EAAE4H,EAAE+O,GAAG,MAAM3W,CAAC,OAAO,IAAc,QAAVC,EAAE2H,EAAEy6C,SAAiBpiD,EAAErmB,OAAOguB,GAAG,OAAO3H,GAAG,CAAC,IAAIxY,EAAEwY,EAAE6qtB,aAAa,GAAG,OAAOrjuB,EAAE,CAACkwB,EAAE1X,EAAEoiD,MAAM,IAAI,IAAIvlE,EAAE2K,EAAEs25B,aAAa,OAAOjh6B,GAAG,CAAC,GAAGA,EAAE6mC,UAAU/6B,EAAE,CAAC,GAAG,IAAIqX,EAAEprB,IAAI,EAACiI,EAAE2h6B,IAAI,EAAE9n4B,GAAGA,IAAK9hC,IAAI,EAAE,IAAIkrB,EAAEE,EAAEm+4B,YAAY,GAAG,OAAOr+4B,EAAE,CAAY,IAAI0H,GAAf1H,EAAEA,EAAEgojB,QAAe80N,QAAQ,OAAOp1wB,EAAE3qB,EAAE/C,KAAK+C,GAAGA,EAAE/C,KAAK0tB,EAAE1tB,KAAK0tB,EAAE1tB,KAAK+C,GAAGijB,EAAE88wB,QAAQ//xB,CAAC,CAAC,CAACmjB,EAAE+94B,OAAOrn4B,EAAgB,QAAd75B,EAAEmjB,EAAEyv4B,aAAqB5y5B,EAAEkh6B,OAAOrn4B,GAAGilC,GAAG37C,EAAErmB,OAClf+8B,EAAE/O,GAAGngB,EAAEu25B,OAAOrn4B,EAAE,KAAK,CAAC75B,EAAEA,EAAE/C,IAAI,CAAC,MAAM,GAAG,KAAKkmB,EAAEprB,IAAI8iC,EAAE1X,EAAExmB,OAAOmuB,EAAEnuB,KAAK,KAAKwmB,EAAEoiD,WAAW,GAAG,KAAKpiD,EAAEprB,IAAI,CAAY,GAAG,QAAd8iC,EAAE1X,EAAErmB,QAAmB,MAAM+M,MAAM+gB,EAAE,MAAMiQ,EAAEqm4B,OAAOrn4B,EAAgB,QAAdlvB,EAAEkwB,EAAE+33B,aAAqBjo5B,EAAEu25B,OAAOrn4B,GAAGilC,GAAGjkC,EAAEhB,EAAE/O,GAAG+P,EAAE1X,EAAEo1C,OAAO,MAAM19B,EAAE1X,EAAEoiD,MAAM,GAAG,OAAO1qC,EAAEA,EAAE/9B,OAAOqmB,OAAO,IAAI0X,EAAE1X,EAAE,OAAO0X,GAAG,CAAC,GAAGA,IAAI/P,EAAE,CAAC+P,EAAE,KAAK,KAAK,CAAa,GAAG,QAAf1X,EAAE0X,EAAE09B,SAAoB,CAACp1C,EAAErmB,OAAO+9B,EAAE/9B,OAAO+9B,EAAE1X,EAAE,KAAK,CAAC0X,EAAEA,EAAE/9B,MAAM,CAACqmB,EAAE0X,CAAC,CAACyuyB,GAAGpmzB,EAAE4H,EAAE1wB,EAAEyC,SAASg9B,GAAG/O,EAAEA,EAAEy6C,KAAK,CAAC,OAAOz6C,EAAE,KAAK,EAAE,OAAO1wB,EAAE0wB,EAAEnuB,KAAKmP,EAAEgf,EAAEo04B,aAAari6B,SAASq3c,GAAGppb,EAAE+O,GAAW/tB,EAAEA,EAAV1R,EAAEq+0B,GAAGr+0B,IAAU0wB,EAAEm5E,OAAO,EAAEqluB,GAAGpmzB,EAAE4H,EAAEhf,EAAE+tB,GACpf/O,EAAEy6C,MAAM,KAAK,GAAG,OAAgBnrE,EAAEgu0B,GAAXt8zB,EAAEgf,EAAEnuB,KAAYmuB,EAAEo04B,cAA6B1g4B,GAAGtb,EAAE4H,EAAEhf,EAAtB1R,EAAEgu0B,GAAGt8zB,EAAEnP,KAAKvC,GAAcy/B,GAAG,KAAK,GAAG,OAAOmlzB,GAAG97zB,EAAE4H,EAAEA,EAAEnuB,KAAKmuB,EAAEo04B,aAAarl4B,GAAG,KAAK,GAAG,OAAO/tB,EAAEgf,EAAEnuB,KAAKvC,EAAE0wB,EAAEo04B,aAAa9k6B,EAAE0wB,EAAE+j4B,cAAc/i5B,EAAE1R,EAAEgu0B,GAAGt8zB,EAAE1R,GAAG0miB,GAAG59gB,EAAE4H,GAAGA,EAAE/yB,IAAI,EAAEwl6B,GAAGzx5B,IAAIoX,GAAE,EAAGw64B,GAAG5y4B,IAAI5H,GAAE,EAAGgxb,GAAGppb,EAAE+O,GAAGqvyB,GAAGp+yB,EAAEhf,EAAE1R,GAAG6t0B,GAAGn9yB,EAAEhf,EAAE1R,EAAEy/B,GAAGss4B,GAAG,KAAKr74B,EAAEhf,GAAE,EAAGoX,EAAE2W,GAAG,KAAK,GAAG,OAAOqjO,GAAGh6O,EAAE4H,EAAE+O,GAAG,KAAK,GAAG,OAAO+oC,GAAG1/C,EAAE4H,EAAE+O,GAAG,MAAMhwB,MAAM+gB,EAAE,IAAIE,EAAE/yB,KAAM,EAYxC,IAAIq50B,GAAG,oBAAoB47F,YAAYA,YAAY,SAAS9p5B,GAAG+wF,QAAQhgG,MAAMiP,EAAE,EAAE,SAAS4tzB,GAAG5tzB,GAAGrrB,KAAKo16B,cAAc/p5B,CAAC,CACjI,SAAS8M,GAAG9M,GAAGrrB,KAAKo16B,cAAc/p5B,CAAC,CAC5J,SAAS22d,GAAG32d,GAAG,SAASA,GAAG,IAAIA,EAAEonB,UAAU,IAAIpnB,EAAEonB,UAAU,KAAKpnB,EAAEonB,SAAS,CAAC,SAASumyB,GAAG3tzB,GAAG,SAASA,GAAG,IAAIA,EAAEonB,UAAU,IAAIpnB,EAAEonB,UAAU,KAAKpnB,EAAEonB,WAAW,IAAIpnB,EAAEonB,UAAU,iCAAiCpnB,EAAE0oZ,WAAW,CAAC,SAAS58Y,KAAK,CAExa,SAASkqF,GAAGh2F,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,IAAI+oB,EAAE0W,EAAE+u4B,oBAAoB,GAAGzl5B,EAAE,CAAC,IAAI0X,EAAE1X,EAAE,GAAG,oBAAoB/oB,EAAE,CAAC,IAAIuQ,EAAEvQ,EAAEA,EAAE,WAAW,IAAI8oB,EAAE21b,GAAGh+a,GAAGlwB,EAAEhJ,KAAKuhB,EAAE,CAAC,CAACioI,GAAGrgI,EAAE+P,EAAE3X,EAAE9oB,EAAE,MAAMygC,EADxJ,SAAY3X,EAAE4H,EAAE+O,EAAE/tB,EAAE1R,GAAG,GAAGA,EAAE,CAAC,GAAG,oBAAoB0R,EAAE,CAAC,IAAIqX,EAAErX,EAAEA,EAAE,WAAW,IAAIoX,EAAE21b,GAAGh+a,GAAG1X,EAAExhB,KAAKuhB,EAAE,CAAC,CAAC,IAAI2X,EAAEkjF,GAAGjzF,EAAEhf,EAAEoX,EAAE,EAAE,MAAK,EAAG,EAAG,GAAG8L,IAAmF,OAA/E9L,EAAE0l5B,oBAAoB/t4B,EAAE3X,EAAE2kU,IAAIhtT,EAAEt2B,QAAQ0yc,GAAG,IAAI/zb,EAAEonB,SAASpnB,EAAE3oB,WAAW2oB,GAAG4o5B,KAAYjx4B,CAAC,CAAC,KAAKzgC,EAAE8oB,EAAEyt4B,WAAWzt4B,EAAE1oB,YAAYJ,GAAG,GAAG,oBAAoB0R,EAAE,CAAC,IAAInB,EAAEmB,EAAEA,EAAE,WAAW,IAAIoX,EAAE21b,GAAG74c,GAAG2K,EAAEhJ,KAAKuhB,EAAE,CAAC,CAAC,IAAIljB,EAAEg/D,GAAG97C,EAAE,GAAE,EAAG,KAAK,GAAK,EAAG,EAAG,GAAG8L,IAA0G,OAAtG9L,EAAE0l5B,oBAAoB5o6B,EAAEkjB,EAAE2kU,IAAI7nV,EAAEuE,QAAQ0yc,GAAG,IAAI/zb,EAAEonB,SAASpnB,EAAE3oB,WAAW2oB,GAAG4o5B,IAAG,WAAW3gxB,GAAGrgI,EAAE9qB,EAAE65B,EAAE/tB,EAAE,IAAU9L,CAAC,CACpUuy0B,CAAG14yB,EAAE/O,EAAE5H,EAAE9oB,EAAE0R,GAAG,OAAO+sc,GAAGh+a,EAAE,CAHpL7K,GAAG/2B,UAAUo+B,OAAOy5yB,GAAG730B,UAAUo+B,OAAO,SAASnU,GAAG,IAAI4H,EAAEjzB,KAAKo16B,cAAc,GAAG,OAAOni5B,EAAE,MAAMjhB,MAAM+gB,EAAE,MAAMugI,GAAGjoI,EAAE4H,EAAE,KAAK,KAAK,EAAEkF,GAAG/2B,UAAUi06B,QAAQp8F,GAAG730B,UAAUi06B,QAAQ,WAAW,IAAIhq5B,EAAErrB,KAAKo16B,cAAc,GAAG,OAAO/p5B,EAAE,CAACrrB,KAAKo16B,cAAc,KAAK,IAAIni5B,EAAE5H,EAAE0x4B,cAAckX,IAAG,WAAW3gxB,GAAG,KAAKjoI,EAAE,KAAK,KAAK,IAAG4H,EAAE+8T,IAAI,IAAI,CAAC,EACzT73T,GAAG/2B,UAAUk06B,2BAA2B,SAASjq5B,GAAG,GAAGA,EAAE,CAAC,IAAI4H,EAAEqtzB,KAAKj1zB,EAAE,CAACqx4B,UAAU,KAAKx24B,OAAOmF,EAAEgoB,SAASpgB,GAAG,IAAI,IAAI+O,EAAE,EAAEA,EAAE0+yB,GAAGrg1B,QAAQ,IAAI4yB,GAAGA,EAAEytzB,GAAG1+yB,GAAGqR,SAASrR,KAAK0+yB,GAAGhhxB,OAAO19B,EAAE,EAAE3W,GAAG,IAAI2W,GAAGo9yB,GAAG/zzB,EAAE,CAAC,EAEXg0zB,GAAG,SAASh0zB,GAAG,OAAOA,EAAEnrB,KAAK,KAAK,EAAE,IAAI+yB,EAAE5H,EAAEuu4B,UAAU,GAAG3m4B,EAAEvmB,QAAQuu5B,cAAc6B,aAAa,CAAC,IAAI963B,EAAE8vE,GAAG7+E,EAAEip4B,cAAc,IAAIl63B,IAAIk9yB,GAAGjszB,EAAI,EAAF+O,GAAK2w4B,GAAG1/4B,EAAE2oZ,MAAK,KAAO,EAAFj5O,MAAOqtuB,GAAGp0f,KAAI,IAAIsqf,MAAM,CAAC,MAAM,KAAK,GAAG+N,IAAG,WAAW,IAAIhh5B,EAAEqtnB,GAAGj1nB,EAAE,GAAG,GAAG,OAAO4H,EAAE,CAAC,IAAI+O,EAAEy6B,KAAIuzwB,GAAG/8yB,EAAE5H,EAAE,EAAE2W,EAAE,CAAC,IAAGyoe,GAAGp/e,EAAE,GAAG,EAC/bi0zB,GAAG,SAASj0zB,GAAG,GAAG,KAAKA,EAAEnrB,IAAI,CAAC,IAAI+yB,EAAEqtnB,GAAGj1nB,EAAE,WAAW,GAAG,OAAO4H,EAAa+8yB,GAAG/8yB,EAAE5H,EAAE,UAAXoxC,MAAwBguc,GAAGp/e,EAAE,UAAU,CAAC,EAAEg1zB,GAAG,SAASh1zB,GAAG,GAAG,KAAKA,EAAEnrB,IAAI,CAAC,IAAI+yB,EAAEgyD,GAAG55D,GAAG2W,EAAEs+mB,GAAGj1nB,EAAE4H,GAAG,GAAG,OAAO+O,EAAaguyB,GAAGhuyB,EAAE3W,EAAE4H,EAAXwpC,MAAgBguc,GAAGp/e,EAAE4H,EAAE,CAAC,EAAEqtzB,GAAG,WAAW,OAAOrhxB,EAAC,EAAE8/wB,GAAG,SAAS1zzB,EAAE4H,GAAG,IAAI+O,EAAEi9B,GAAE,IAAI,OAAOA,GAAE5zC,EAAE4H,GAAG,CAAC,QAAQgsC,GAAEj9B,CAAC,CAAC,EAClS0wH,GAAG,SAASrnI,EAAE4H,EAAE+O,GAAG,OAAO/O,GAAG,IAAK,QAAyB,GAAjB4uC,EAAGx2C,EAAE2W,GAAG/O,EAAE+O,EAAE92B,KAAQ,UAAU82B,EAAEl9B,MAAM,MAAMmuB,EAAE,CAAC,IAAI+O,EAAE3W,EAAE2W,EAAEt/B,YAAYs/B,EAAEA,EAAEt/B,WAAsF,IAA3Es/B,EAAEA,EAAEp4B,iBAAiB,cAAc2T,KAAK5W,UAAU,GAAGssB,GAAG,mBAAuBA,EAAE,EAAEA,EAAE+O,EAAE3hC,OAAO4yB,IAAI,CAAC,IAAIhf,EAAE+tB,EAAE/O,GAAG,GAAGhf,IAAIoX,GAAGpX,EAAEsh6B,OAAOlq5B,EAAEkq5B,KAAK,CAAC,IAAIhz6B,EAAEs35B,GAAG5l5B,GAAG,IAAI1R,EAAE,MAAMyP,MAAM+gB,EAAE,KAAKyizB,EAAGvh0B,GAAG4tD,EAAG5tD,EAAE1R,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAWi25B,GAAGnt4B,EAAE2W,GAAG,MAAM,IAAK,SAAmB,OAAV/O,EAAE+O,EAAE5+B,QAAek7D,GAAGjzC,IAAI2W,EAAE6t4B,SAAS584B,GAAE,GAAI,EAAE+m4B,GAAGga,GAAG/Z,GAAGga,GACpa,IAAIt/kB,GAAG,CAAC6glB,uBAAsB,EAAG1iyB,OAAO,CAAC6mxB,GAAGl2F,GAAGo2F,GAAGC,GAAGC,GAAGia,KAAKhha,GAAG,CAACyia,wBAAwBh1F,GAAGi1F,WAAW,EAAE5m4B,QAAQ,SAAS6m4B,oBAAoB,aAC1Iv3a,GAAG,CAACs3a,WAAW1ia,GAAG0ia,WAAW5m4B,QAAQkke,GAAGlke,QAAQ6m4B,oBAAoB3ia,GAAG2ia,oBAAoBC,eAAe5ia,GAAG4ia,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,gBAAgB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBt82B,EAAGow2B,uBAAuBmM,wBAAwB,SAASlr5B,GAAW,OAAO,QAAfA,EAAE+v4B,GAAG/v4B,IAAmB,KAAKA,EAAEuu4B,SAAS,EAAE6b,wBAAwBzia,GAAGyia,yBARjN,WAAc,OAAO,IAAI,EASpUe,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,KAAKC,kBAAkB,mCAAmC,GAAG,qBAAqBC,+BAA+B,CAAC,IAAI59F,GAAG49F,+BAA+B,IAAI59F,GAAG69F,YAAY79F,GAAG89F,cAAc,IAAIp81B,GAAGs+vB,GAAG+9F,OAAO74a,IAAItjb,GAAGo+vB,EAAE,CAAC,MAAM7tzB,IAAG,CAAC,CAACzX,EAAQkk5B,mDAAmDnjkB,GAC/Y/gV,EAAQsj6B,aAAa,SAAS7r5B,EAAE4H,GAAG,IAAI+O,EAAE,EAAEh1B,UAAU3M,aAAQ,IAAS2M,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIg1e,GAAG/ud,GAAG,MAAMjhB,MAAM+gB,EAAE,MAAM,OAbuH,SAAY1H,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAE,EAAEjH,UAAU3M,aAAQ,IAAS2M,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACsyB,SAAS+oC,EAAGnnE,IAAI,MAAM+S,EAAE,KAAK,GAAGA,EAAEjP,SAASqmB,EAAE0x4B,cAAc9p4B,EAAE+wW,eAAehiW,EAAE,CAa1Ru8d,CAAGlze,EAAE4H,EAAE,KAAK+O,EAAE,EAAEpuB,EAAQuj6B,WAAW,SAAS9r5B,EAAE4H,GAAG,IAAI+ud,GAAG32d,GAAG,MAAMrZ,MAAM+gB,EAAE,MAAM,IAAIiP,GAAE,EAAG/tB,EAAE,GAAG1R,EAAEg30B,GAA4P,OAAzP,OAAOtmzB,QAAG,IAASA,KAAI,IAAKA,EAAEmk5B,sBAAsBp14B,GAAE,QAAI,IAAS/O,EAAEw54B,mBAAmBx45B,EAAEgf,EAAEw54B,uBAAkB,IAASx54B,EAAEuh5B,qBAAqBjy6B,EAAE0wB,EAAEuh5B,qBAAqBvh5B,EAAEk0C,GAAG97C,EAAE,GAAE,EAAG,KAAK,EAAK2W,EAAE,EAAG/tB,EAAE1R,GAAG8oB,EAAE2kU,IAAI/8T,EAAEvmB,QAAQ0yc,GAAG,IAAI/zb,EAAEonB,SAASpnB,EAAE3oB,WAAW2oB,GAAU,IAAI4tzB,GAAGhmzB,EAAE,EACrfrf,EAAQyj6B,YAAY,SAAShs5B,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEonB,SAAS,OAAOpnB,EAAE,IAAI4H,EAAE5H,EAAEsh5B,gBAAgB,QAAG,IAAS154B,EAAE,CAAC,GAAG,oBAAoB5H,EAAEmU,OAAO,MAAMxtB,MAAM+gB,EAAE,MAAiC,MAA3B1H,EAAEnoB,OAAOgkB,KAAKmE,GAAGxkB,KAAK,KAAWmL,MAAM+gB,EAAE,IAAI1H,GAAI,CAAqC,OAA5BA,EAAE,QAAVA,EAAE+v4B,GAAGno4B,IAAc,KAAK5H,EAAEuu4B,SAAkB,EAAEhm5B,EAAQ0j6B,UAAU,SAASjs5B,GAAG,OAAO4o5B,GAAG5o5B,EAAE,EAAEzX,EAAQvS,QAAQ,SAASgqB,EAAE4H,EAAE+O,GAAG,IAAIg3yB,GAAG/lzB,GAAG,MAAMjhB,MAAM+gB,EAAE,MAAM,OAAOsuF,GAAG,KAAKh2F,EAAE4H,GAAE,EAAG+O,EAAE,EAC/YpuB,EAAQ2j6B,YAAY,SAASls5B,EAAE4H,EAAE+O,GAAG,IAAIggd,GAAG32d,GAAG,MAAMrZ,MAAM+gB,EAAE,MAAM,IAAI9e,EAAE,MAAM+tB,GAAGA,EAAEw14B,iBAAiB,KAAKj16B,GAAE,EAAG+oB,EAAE,GAAG0X,EAAEu2yB,GAAyO,GAAtO,OAAOv3yB,QAAG,IAASA,KAAI,IAAKA,EAAEo14B,sBAAsB706B,GAAE,QAAI,IAASy/B,EAAEyq4B,mBAAmBnh5B,EAAE0W,EAAEyq4B,uBAAkB,IAASzq4B,EAAEwy4B,qBAAqBxx4B,EAAEhB,EAAEwy4B,qBAAqBvh5B,EAAEizF,GAAGjzF,EAAE,KAAK5H,EAAE,EAAE,MAAM2W,EAAEA,EAAE,KAAKz/B,EAAE,EAAG+oB,EAAE0X,GAAG3X,EAAE2kU,IAAI/8T,EAAEvmB,QAAQ0yc,GAAG/zb,GAAMpX,EAAE,IAAIoX,EAAE,EAAEA,EAAEpX,EAAE5T,OAAOgrB,IAA2B9oB,GAAhBA,GAAPy/B,EAAE/tB,EAAEoX,IAAOos5B,aAAgBz14B,EAAE4huB,SAAS,MAAM3wuB,EAAE+h5B,gCAAgC/h5B,EAAE+h5B,gCAAgC,CAAChz4B,EAAEz/B,GAAG0wB,EAAE+h5B,gCAAgCp06B,KAAKohC,EACvhBz/B,GAAG,OAAO,IAAI41B,GAAGlF,EAAE,EAAErf,EAAQ4rB,OAAO,SAASnU,EAAE4H,EAAE+O,GAAG,IAAIg3yB,GAAG/lzB,GAAG,MAAMjhB,MAAM+gB,EAAE,MAAM,OAAOsuF,GAAG,KAAKh2F,EAAE4H,GAAE,EAAG+O,EAAE,EAAEpuB,EAAQ8j6B,uBAAuB,SAASrs5B,GAAG,IAAI2tzB,GAAG3tzB,GAAG,MAAMrZ,MAAM+gB,EAAE,KAAK,QAAO1H,EAAE0l5B,sBAAqBkD,IAAG,WAAW5yzB,GAAG,KAAK,KAAKh2F,GAAE,GAAG,WAAWA,EAAE0l5B,oBAAoB,KAAK1l5B,EAAE2kU,IAAI,IAAI,GAAE,KAAG,EAAM,EAAEp8U,EAAQ+j6B,wBAAwB3D,GAC/Upg6B,EAAQgk6B,oCAAoC,SAASvs5B,EAAE4H,EAAE+O,EAAE/tB,GAAG,IAAI+k0B,GAAGh3yB,GAAG,MAAMhwB,MAAM+gB,EAAE,MAAM,GAAG,MAAM1H,QAAG,IAASA,EAAEsh5B,gBAAgB,MAAM365B,MAAM+gB,EAAE,KAAK,OAAOsuF,GAAGh2F,EAAE4H,EAAE+O,GAAE,EAAG/tB,EAAE,EAAEL,EAAQk7B,QAAQ,+DC/T7L,IAAIhc,EAAInf,EAAQ,MAEdC,EAAQuj6B,WAAark5B,EAAEqk5B,WACvBvj6B,EAAQ2j6B,YAAczk5B,EAAEyk5B,0CCH1B,SAASM,IAEP,GAC4C,qBAAnCf,gCAC4C,oBAA5CA,+BAA+Be,SAcxC,IAEEf,+BAA+Be,SAASA,EAC1C,CAAE,MAAOro4B,GAGP4sE,QAAQhgG,MAAMozB,EAChB,CACF,CAKEqo4B,GACA/14B,EAAOluB,QAAU,EAAjBkuB,qCCzBuclT,EAAxbqE,EAAEyK,OAAOwN,IAAI,iBAAiBlJ,EAAEtE,OAAOwN,IAAI,gBAAgBj3B,EAAEypB,OAAOwN,IAAI,kBAAkB3oC,EAAEm7B,OAAOwN,IAAI,qBAAqB5f,EAAEoS,OAAOwN,IAAI,kBAAkBlI,EAAEtF,OAAOwN,IAAI,kBAAkBp4B,EAAE4qB,OAAOwN,IAAI,iBAAiB/iC,EAAEu1B,OAAOwN,IAAI,wBAAwB9f,EAAEsS,OAAOwN,IAAI,qBAAqBpY,EAAE4K,OAAOwN,IAAI,kBAAkB/gB,EAAEuT,OAAOwN,IAAI,uBAAuBnY,EAAE2K,OAAOwN,IAAI,cAAcC,EAAEzN,OAAOwN,IAAI,cAAc3c,EAAEmP,OAAOwN,IAAI,mBACtb,SAAS5I,EAAEjX,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIgD,EAAEhD,EAAEiU,SAAS,OAAOjR,GAAG,KAAK4E,EAAE,OAAO5H,EAAEA,EAAEvmB,MAAQ,KAAKmP,EAAE,KAAKqX,EAAE,KAAK/oB,EAAE,KAAKuwB,EAAE,KAAK3I,EAAE,OAAOkB,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEiU,UAAY,KAAKn3B,EAAE,KAAK2K,EAAE,KAAKsY,EAAE,KAAK+f,EAAE,KAAKpY,EAAE,KAAKiQ,EAAE,OAAO3X,EAAE,QAAQ,OAAOgD,GAAG,KAAK2T,EAAE,OAAO3T,EAAE,CAAC,CADkMO,EAAE8O,OAAOwN,IAAI,0BACxIt3B,EAAQ2rB,WAAWnU,EAAoCxX,EAAQ6rB,KAAK1M,+BCPlZ+O,EAAOluB,QAAU,EAAjBkuB,oUCmDa,SAA8BiL,GAAQ,IAC7C+q4B,EAD6C,SAAAC,0RAAA7whB,CAAA4whB,EAAAC,GAAA,IAAA5whB,wlBAAAd,CAAAyxhB,GAEjD,SAAAA,EAAY/y6B,GAAO,IAAAhF,EAAA,mGAAAi0Y,CAAA,KAAA8jiB,IACjB/36B,EAAAonZ,EAAAr9Y,KAAA,KAAM/E,IAEDguB,EAAIqsG,QAAQ3uF,UACjB1wC,EAAKi46B,cAAgB,KACrBj46B,EAAKo1B,SAAW,CAAC,EAEjBp1B,EAAKk46B,iBAAmBl46B,EAAKk46B,iBAAiBlv5B,KAAtB+9X,EAAA/mZ,IACxBA,EAAKm46B,kBAAoBn46B,EAAKm46B,kBAAkBnv5B,KAAvB+9X,EAAA/mZ,IACzBA,EAAKo46B,mBAAqBp46B,EAAKo46B,mBAAmBpv5B,KAAxB+9X,EAAA/mZ,IAC1BA,EAAKq46B,OAASr46B,EAAKq46B,OAAOrv5B,KAAZ+9X,EAAA/mZ,IACdA,EAAKs46B,aAAet46B,EAAKs46B,aAAatv5B,KAAlB+9X,EAAA/mZ,IACpBA,EAAKu46B,eAAiBv46B,EAAKu46B,eAAevv5B,KAApB+9X,EAAA/mZ,IACtBA,EAAKw46B,aAAex46B,EAAKw46B,aAAaxv5B,KAAlB+9X,EAAA/mZ,IAbHA,CAclB,CAhBgD,wGAAAszZ,CAAAykhB,EAAA,EAAA526B,IAAA,eAAAkC,MAkBjD,SAAao16B,EAA2BC,EAAwBC,GAA0B,IAAAx4hB,EAAA,KACxFlgZ,KAAK+yB,EAAI/yB,KAAK+yB,EACXgd,MAAK,WACJ,IAAImwW,EAAKy4hB,WAAT,CAGA,IAAKz4hB,EAAKh6R,GACR,MAAM,IAAIl0G,MAAM,6BAGlB,OAAO+6B,EAAOmoP,MAAMgrH,EAAKh6R,GAAI,CAC3BvpE,KAAMujW,EAAKn7Y,MAAM43C,KACjButB,OAAQg2U,EAAKn7Y,MAAMmlE,OACnBt1D,OAAQsrY,EAAKn7Y,MAAM6P,OACnBshI,OAAQgqQ,EAAKn7Y,MAAMmxI,QATpB,CAWF,IACAnmG,MAAK,WACAmwW,EAAKy4hB,aAGTz4hB,EAAK+3hB,iBAAiBO,GACtBt4hB,EAAKg4hB,oBACLh4hB,EAAKo4hB,eAAeG,GAChBC,GACFx4hB,EAAKi4hB,qBAER,IA1BM,OA2BA,SAAC3o4B,GACF0wW,EAAKn7Y,MAAM0k1B,SACbvpc,EAAKn7Y,MAAM0k1B,QAAQj6yB,EAEtB,GACJ,GAnDgD,CAAAtuC,IAAA,oBAAAkC,MAqDjD,WACEpD,KAAK246B,YAAa,EAElB346B,KAAKu46B,cAAa,EAAMv46B,KAAK+E,MAAM6z6B,eAAe,EACnD,GAzDgD,CAAA136B,IAAA,qBAAAkC,MA2DjD,SAAmBy16B,GACjB746B,KAAK246B,YAAa,EAGlB,IAAMG,EACJD,EAAU3iyB,QAAU2iyB,EAAU3iyB,OAAO71I,OAASw46B,EAAU3iyB,OAAO71I,OAAS,EACpE046B,EACJ/46B,KAAK+E,MAAMmxI,QAAUl2I,KAAK+E,MAAMmxI,OAAO71I,OAASL,KAAK+E,MAAMmxI,OAAO71I,OAAS,EAEvE246B,IACJH,EAAU3u2B,SAAWlqE,KAAK+E,MAAMmlE,QAChC2u2B,EAAUl83B,OAAS38C,KAAK+E,MAAM43C,MAC9Bk83B,EAAUjk6B,SAAW5U,KAAK+E,MAAM6P,QAChCmk6B,IAAkBD,GAEdG,OAAyC,IAAvBJ,EAAUK,SAC5BC,EAAkBN,EAAUK,WAAal56B,KAAK+E,MAAMm06B,UAErDF,GAAmBC,KAAoBA,GAAoBE,KAIhEn56B,KAAKu46B,cAAa,EAAOv46B,KAAK+E,MAAMq06B,UAAU,EAC/C,GAlFgD,CAAAl46B,IAAA,uBAAAkC,MAoFjD,WACEpD,KAAK246B,YAAa,EAElB346B,KAAKs46B,eAAet46B,KAAK+E,MAAMs06B,SAE3Br56B,KAAKg46B,eAAiB1oyB,IACxB1vG,OAAOqf,oBAAoB,SAAUj/C,KAAKg46B,eAC1Ch46B,KAAKg46B,cAAgB,MAGvBh46B,KAAKs56B,qBAELvs4B,EAAO0mG,MAAMzzI,KAAKkmH,GACnB,GAjGgD,CAAAhlH,IAAA,qBAAAkC,MAmGjD,WAAqB,IAAA8imB,EAAA,KACdlmmB,KAAKkmH,IAAOlmH,KAAKkmH,GAAGkqB,gBAIzBmpyB,EAAah46B,SAAQ,SAACi46B,GACpBtzU,EAAKhgf,GAAGvtE,GAAG6g4B,EAAatzU,EAAKmyU,aAC9B,GACF,GA3GgD,CAAAn36B,IAAA,qBAAAkC,MA6GjD,WAAqB,IAAAoo1B,EAAA,KACdxr1B,KAAKkmH,IAAOlmH,KAAKkmH,GAAGkqB,gBAIzBmpyB,EAAah46B,SAAQ,SAACi46B,GACpBhuF,EAAKtluB,GAAGkqB,eAAeopyB,EAAahuF,EAAK6sF,aAC1C,GACF,GArHgD,CAAAn36B,IAAA,eAAAkC,MAuHjD,WACEpD,KAAKs46B,eAAet46B,KAAK+E,MAAMq06B,SAChC,GAzHgD,CAAAl46B,IAAA,iBAAAkC,MA2HjD,SAAeqD,GACb,GAAwB,oBAAbA,EAAyB,CAClC,IAAAgz6B,EAAuBz56B,KAAKkmH,GAG5Bz/G,EADe,CAACk2C,KAFhB883B,EAAO983B,KAEeutB,OAFtBuv2B,EAAavv2B,OAEiBgsE,OADfl2I,KAAKkmH,GAAG8gC,gBAAkBhnJ,KAAKkmH,GAAG8gC,gBAAgB2E,QAAU,MAE1D3rJ,KAAKkmH,GACvB,CACF,GAlIgD,CAAAhlH,IAAA,mBAAAkC,MAoIjD,SAAiB40nB,GAAQ,IAAAs8N,EAAA,KAClBhltB,IAIDtvI,KAAK+E,MAAM206B,mBAAqB156B,KAAKg46B,eACvCh46B,KAAKg46B,cAAgB,kBAAMjr4B,EAAOkkJ,MAAMrtG,OAAO0wwB,EAAKpuuB,GAA/B,EACrBtmF,OAAOlZ,iBAAiB,SAAU1mB,KAAKg46B,eACnChgT,GACFh4nB,KAAKg46B,kBAEGh46B,KAAK+E,MAAM206B,kBAAoB156B,KAAKg46B,gBAC9Cp44B,OAAOqf,oBAAoB,SAAUj/C,KAAKg46B,eAC1Ch46B,KAAKg46B,cAAgB,MAExB,GAnJgD,CAAA926B,IAAA,SAAAkC,MAqJjD,SAAO8iH,GACLlmH,KAAKkmH,GAAKA,EAENlmH,KAAK+E,MAAMu7Y,OAAShxQ,IACtB1vG,OAAOonF,GAAKhnH,KAAKkmH,GAEpB,GA3JgD,CAAAhlH,IAAA,oBAAAkC,MA8JjD,WAAoB,IAAAi61B,EAAA,KAClBzqtB,EAAWrxI,SAAQ,SAAC88pB,GAClB,IAAMp7oB,EAAOo60B,EAAKt41B,MAAM,KAAOs5pB,GACzB/thB,EAAU+stB,EAAKlo0B,SAASkpoB,GACxBs7Q,EAAaxiyB,QAAQ7G,GAEvBrtH,IAAS025B,EACXt8E,EAAKu8E,gBAAgBv7Q,EAAWp7oB,IACtBA,GAAQ025B,EAElBt8E,EAAKw8E,mBAAmBx7Q,GACfp7oB,GAAQ025B,GAAc125B,IAASqtH,IAExC+stB,EAAKw8E,mBAAmBx7Q,GACxBg/L,EAAKu8E,gBAAgBv7Q,EAAWp7oB,GAEnC,GACF,GA/KgD,CAAA/hB,IAAA,kBAAAkC,MAiLjD,SAAgBi7pB,EAAWp7oB,GACzBjjB,KAAKm1B,SAASkpoB,GAAap7oB,EAC3BjjB,KAAKkmH,GAAGvtE,GAAG34C,KAAK856B,mBAAmBz7Q,GAAYr+pB,KAAKm1B,SAASkpoB,GAC9D,GApLgD,CAAAn9pB,IAAA,qBAAAkC,MAsLjD,SAAmBi7pB,GACjBr+pB,KAAKkmH,GAAGkqB,eAAepwI,KAAK856B,mBAAmBz7Q,GAAYr+pB,KAAKm1B,SAASkpoB,WAClEr+pB,KAAKm1B,SAASkpoB,EACtB,GAzLgD,CAAAn9pB,IAAA,qBAAAkC,MA2LjD,SAAmBi7pB,GACjB,MAAO,UAAYA,EAAUttpB,aAC9B,GA7LgD,CAAA7P,IAAA,SAAAkC,MA+LjD,WACE,OACE226B,EAAA,QAAAp46B,cAAA,OACEy/B,GAAIphC,KAAK+E,MAAMi16B,MACf1t5B,MAAOtsB,KAAK+E,MAAMunB,MAClBtgB,IAAKhM,KAAKo46B,OACV7k6B,UAAWvT,KAAK+E,MAAMwO,WAG3B,KAxMgDuk6B,CAAA,EACrBiC,EAAAr25B,WAsO9B,OA5BAo05B,EAAgBlj5B,UAAY,CAC1B+nB,KAAMs93B,EAAA,QAAUljB,QAAQkjB,EAAA,QAAUn+4B,QAClClnB,OAAQql6B,EAAA,QAAUn+4B,OAClBouC,OAAQ+v2B,EAAA,QAAUn+4B,OAClBo6G,OAAQ+jyB,EAAA,QAAUljB,QAAQkjB,EAAA,QAAUn+4B,QACpCo94B,SAAUe,EAAA,QAAU905B,OACpByz5B,cAAeqB,EAAA,QAAUnu6B,KACzBut6B,QAASY,EAAA,QAAUnu6B,KACnB290B,QAASwwF,EAAA,QAAUnu6B,KACnBst6B,SAAUa,EAAA,QAAUnu6B,KACpBw0Y,MAAO25hB,EAAA,QAAUnjB,KACjBxq4B,MAAO2t5B,EAAA,QAAUn+4B,OACjBvoB,UAAW0m6B,EAAA,QAAUpo6B,OACrB6n6B,iBAAkBO,EAAA,QAAUnjB,KAC5BkjB,MAAOC,EAAA,QAAUpo6B,QAGnB+gI,EAAWrxI,SAAQ,SAAC88pB,GAClBy5Q,EAAgBlj5B,UAAU,KAAOypoB,GAAa47Q,EAAA,QAAUnu6B,IACzD,IAEDgs6B,EAAgBjj6B,aAAe,CAC7ByrY,OAAO,EACPo5hB,kBAAkB,EAClB/83B,KAAM,GACNrwB,MAAO,CAAC9nB,SAAU,WAAYwS,QAAS,iBAGlC8g6B,CACR,EA9RD,MAAAiC,4bAAAlr5B,CAAAlb,EAAA,OACAsm6B,KAAAtm6B,EAAA,ssBAKA,IAAMi/H,EAAa,CACjB,cACA,YACA,WACA,iBACA,uBACA,WACA,eACA,cACA,gBACA,QACA,kBACA,WACA,cACA,YACA,QACA,cACA,oBACA,WACA,cACA,UACA,SACA,WACA,YACA,eACA,YACA,cACA,gBACA,gBACA,wBACA,UACA,oBAGI2myB,EAAe,CACnB,iBACA,gBACA,kBACA,qBACA,qBACA,kBACA,wBAKIjqyB,EAA8B,qBAAX1vG,8CCpDzB,IAAAs64B,EAAAxm6B,EAAAC,EAAA,OACAwm6B,EAAAzm6B,EAAAC,EAAA,0DAEA,OAAsB,EAAAum6B,EAAA,SAAqBC,EAAA,4CCM9B,IAAI7u5B,EAAE3X,EAAQ,MAASxL,EAAEu1B,OAAOwN,IAAI,iBAAiB9f,EAAEsS,OAAOwN,IAAI,kBAAkBpY,EAAE5vB,OAAO9B,UAAUsa,eAAeyO,EAAEmB,EAAEws4B,mDAAmD8V,kBAAkB764B,EAAE,CAAC7xB,KAAI,EAAG8K,KAAI,EAAGou6B,QAAO,EAAGC,UAAS,GAChP,SAASlv4B,EAAEnJ,EAAE3W,EAAE2X,GAAG,IAAI/P,EAAEhf,EAAE,CAAC,EAAE1R,EAAE,KAAKuQ,EAAE,KAAiF,IAAImgB,UAAhF,IAAS+P,IAAIzgC,EAAE,GAAGygC,QAAG,IAAS3X,EAAEnqB,MAAMqB,EAAE,GAAG8oB,EAAEnqB,UAAK,IAASmqB,EAAErf,MAAM8G,EAAEuY,EAAErf,KAAcqf,EAAEyH,EAAEhpB,KAAKuhB,EAAE4H,KAAKF,EAAErX,eAAeuX,KAAKhf,EAAEgf,GAAG5H,EAAE4H,IAAI,GAAG+O,GAAGA,EAAEntB,aAAa,IAAIoe,KAAK5H,EAAE2W,EAAEntB,kBAAe,IAASZ,EAAEgf,KAAKhf,EAAEgf,GAAG5H,EAAE4H,IAAI,MAAM,CAACqM,SAASn3B,EAAErD,KAAKk9B,EAAE9gC,IAAIqB,EAAEyJ,IAAI8G,EAAE/N,MAAMkP,EAAEi05B,OAAO/94B,EAAEzd,QAAQ,CAACkH,EAAQ63B,SAASrgB,EAAExX,EAAQI,IAAIm3B,EAAEv3B,EAAQ0m6B,KAAKnv4B,6BCD7V,IAAI/f,EAAEsS,OAAOwN,IAAI,iBAAiB/gB,EAAEuT,OAAOwN,IAAI,gBAAgBnY,EAAE2K,OAAOwN,IAAI,kBAAkBC,EAAEzN,OAAOwN,IAAI,qBAAqB7c,EAAEqP,OAAOwN,IAAI,kBAAkB3c,EAAEmP,OAAOwN,IAAI,kBAAkBtc,EAAE8O,OAAOwN,IAAI,iBAAiB5I,EAAE5E,OAAOwN,IAAI,qBAAqBtI,EAAElF,OAAOwN,IAAI,kBAAkB9iC,EAAEs1B,OAAOwN,IAAI,cAAc7iC,EAAEq1B,OAAOwN,IAAI,cAAc5iC,EAAEo1B,OAAOE,SACzW,IAAIg+Y,EAAE,CAAC8wf,UAAU,WAAW,OAAM,CAAE,EAAEI,mBAAmB,WAAW,EAAED,oBAAoB,WAAW,EAAED,gBAAgB,WAAW,GAAG3t2B,EAAE/7D,OAAOD,OAAO4/B,EAAE,CAAC,EAAE,SAASg5Y,EAAExwZ,EAAE4H,EAAE1wB,GAAGvC,KAAK+E,MAAMsmB,EAAErrB,KAAKgvC,QAAQ/b,EAAEjzB,KAAK2gC,KAAKkC,EAAE7iC,KAAKit6B,QAAQ1q6B,GAAGq5a,CAAC,CACwI,SAASh6K,IAAI,CAAyB,SAASy7Q,EAAEhyf,EAAE4H,EAAE1wB,GAAGvC,KAAK+E,MAAMsmB,EAAErrB,KAAKgvC,QAAQ/b,EAAEjzB,KAAK2gC,KAAKkC,EAAE7iC,KAAKit6B,QAAQ1q6B,GAAGq5a,CAAC,CADxPC,EAAEz6a,UAAU0z6B,iBAAiB,CAAC,EACpQj5f,EAAEz6a,UAAU28rB,SAAS,SAAS1yqB,EAAE4H,GAAG,GAAG,kBAAkB5H,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMrZ,MAAM,yHAAyHhS,KAAKit6B,QAAQL,gBAAgB5s6B,KAAKqrB,EAAE4H,EAAE,WAAW,EAAE4oZ,EAAEz6a,UAAUm56B,YAAY,SAASlv5B,GAAGrrB,KAAKit6B,QAAQH,mBAAmB9s6B,KAAKqrB,EAAE,cAAc,EAAgBu2O,EAAExgQ,UAAUy6a,EAAEz6a,UAAsF,IAAIwmC,EAAEy1e,EAAEj8gB,UAAU,IAAIwgQ,EACrfh6N,EAAEr7B,YAAY8wgB,EAAEp+c,EAAEr3B,EAAEi0Y,EAAEz6a,WAAWwmC,EAAEol4B,sBAAqB,EAAG,IAAI712B,EAAEttD,MAAMiI,QAAQ4uzB,EAAEx9zB,OAAO9B,UAAUsa,eAAeinL,EAAE,CAACj2L,QAAQ,MAAMu6B,EAAE,CAAC/lC,KAAI,EAAG8K,KAAI,EAAGou6B,QAAO,EAAGC,UAAS,GACtK,SAASn44B,EAAE7W,EAAE4H,EAAE1wB,GAAG,IAAI0R,EAAE+tB,EAAE,CAAC,EAAE75B,EAAE,KAAK2K,EAAE,KAAK,GAAG,MAAMmgB,EAAE,IAAIhf,UAAK,IAASgf,EAAEjnB,MAAM8G,EAAEmgB,EAAEjnB,UAAK,IAASinB,EAAE/xB,MAAMiH,EAAE,GAAG8qB,EAAE/xB,KAAK+xB,EAAEytyB,EAAE52zB,KAAKmpB,EAAEhf,KAAKgzB,EAAEvrB,eAAezH,KAAK+tB,EAAE/tB,GAAGgf,EAAEhf,IAAI,IAAI+uB,EAAEh2B,UAAU3M,OAAO,EAAE,GAAG,IAAI2iC,EAAEhB,EAAEh9B,SAASzC,OAAO,GAAG,EAAEygC,EAAE,CAAC,IAAI,IAAI1X,EAAEzhB,MAAMm5B,GAAGlQ,EAAE,EAAEA,EAAEkQ,EAAElQ,IAAIxH,EAAEwH,GAAG9lB,UAAU8lB,EAAE,GAAGkP,EAAEh9B,SAASsmB,CAAC,CAAC,GAAGD,GAAGA,EAAExW,aAAa,IAAIZ,KAAK+uB,EAAE3X,EAAExW,kBAAe,IAASmtB,EAAE/tB,KAAK+tB,EAAE/tB,GAAG+uB,EAAE/uB,IAAI,MAAM,CAACqrB,SAASlU,EAAEtmB,KAAKumB,EAAEnqB,IAAIiH,EAAE6D,IAAI8G,EAAE/N,MAAMi9B,EAAEkm4B,OAAOvluB,EAAEj2L,QAAQ,CAChV,SAASy2B,EAAE9X,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEiU,WAAWlU,CAAC,CAAoG,IAAIqwC,EAAE,OAAO,SAAS14B,EAAE1X,EAAE4H,GAAG,MAAM,kBAAkB5H,GAAG,OAAOA,GAAG,MAAMA,EAAEnqB,IAA7K,SAAgBmqB,GAAG,IAAI4H,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAI5H,EAAEhoB,QAAQ,SAAQ,SAASgoB,GAAG,OAAO4H,EAAE5H,EAAE,GAAE,CAA+EyxY,CAAO,GAAGzxY,EAAEnqB,KAAK+xB,EAAE1lB,SAAS,GAAG,CAC/W,SAASkvD,EAAEpxC,EAAE4H,EAAE1wB,EAAE0R,EAAE+tB,GAAG,IAAI75B,SAASkjB,EAAK,cAAcljB,GAAG,YAAYA,IAAEkjB,EAAE,MAAK,IAAIvY,GAAE,EAAG,GAAG,OAAOuY,EAAEvY,GAAE,OAAQ,OAAO3K,GAAG,IAAK,SAAS,IAAK,SAAS2K,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOuY,EAAEiU,UAAU,KAAKlU,EAAE,KAAKjB,EAAErX,GAAE,GAAI,GAAGA,EAAE,OAAWkvB,EAAEA,EAANlvB,EAAEuY,GAASA,EAAE,KAAKpX,EAAE,IAAI8uB,EAAEjwB,EAAE,GAAGmB,EAAEkjD,EAAEn1B,IAAIz/B,EAAE,GAAG,MAAM8oB,IAAI9oB,EAAE8oB,EAAEhoB,QAAQo4D,EAAE,OAAO,KAAKgB,EAAEz6B,EAAE/O,EAAE1wB,EAAE,IAAG,SAAS8oB,GAAG,OAAOA,CAAC,KAAI,MAAM2W,IAAImB,EAAEnB,KAAKA,EADnW,SAAW3W,EAAE4H,GAAG,MAAM,CAACqM,SAASlU,EAAEtmB,KAAKumB,EAAEvmB,KAAK5D,IAAI+xB,EAAEjnB,IAAIqf,EAAErf,IAAIjH,MAAMsmB,EAAEtmB,MAAMmj6B,OAAO784B,EAAE684B,OAAO,CACyQhx2B,CAAEl1B,EAAEz/B,IAAIy/B,EAAE9gC,KAAK4R,GAAGA,EAAE5R,MAAM8gC,EAAE9gC,IAAI,IAAI,GAAG8gC,EAAE9gC,KAAKmC,QAAQo4D,EAAE,OAAO,KAAKpwC,IAAI4H,EAAEryB,KAAKohC,IAAI,EAAyB,GAAvBlvB,EAAE,EAAEmB,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOkjD,EAAE9rC,GAAG,IAAI,IAAI2X,EAAE,EAAEA,EAAE3X,EAAEhrB,OAAO2iC,IAAI,CAC/e,IAAI1X,EAAErX,EAAE8uB,EADwe56B,EACrfkjB,EAAE2X,GAAeA,GAAGlwB,GAAG2pD,EAAEt0D,EAAE8qB,EAAE1wB,EAAE+oB,EAAE0W,EAAE,MAAM,GAAG1W,EAPsU,SAAWD,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAE/iB,GAAG+iB,EAAE/iB,IAAI+iB,EAAE,eAA0CA,EAAE,IAAI,CAO5bic,CAAEjc,GAAG,oBAAoBC,EAAE,IAAID,EAAEC,EAAExhB,KAAKuhB,GAAG2X,EAAE,IAAI76B,EAAEkjB,EAAEjmB,QAAQ+5H,MAA6BrsH,GAAG2pD,EAA1Bt0D,EAAEA,EAAE/E,MAA0B6vB,EAAE1wB,EAAtB+oB,EAAErX,EAAE8uB,EAAE56B,EAAE66B,KAAkBhB,QAAQ,GAAG,WAAW75B,EAAE,MAAM8qB,EAAElwB,OAAOsoB,GAAGrZ,MAAM,mDAAmD,oBAAoBihB,EAAE,qBAAqB/vB,OAAOgkB,KAAKmE,GAAGxkB,KAAK,MAAM,IAAIosB,GAAG,6EAA6E,OAAOngB,CAAC,CACzZ,SAASmwB,EAAE5X,EAAE4H,EAAE1wB,GAAG,GAAG,MAAM8oB,EAAE,OAAOA,EAAE,IAAIpX,EAAE,GAAG+tB,EAAE,EAAmD,OAAjDy6B,EAAEpxC,EAAEpX,EAAE,GAAG,IAAG,SAASoX,GAAG,OAAO4H,EAAEnpB,KAAKvH,EAAE8oB,EAAE2W,IAAI,IAAU/tB,CAAC,CAAC,SAASuoF,EAAEnxE,GAAG,IAAI,IAAIA,EAAEmv5B,QAAQ,CAAC,IAAIvn5B,EAAE5H,EAAEov5B,SAAQxn5B,EAAEA,KAAM8c,MAAK,SAAS9c,GAAM,IAAI5H,EAAEmv5B,UAAU,IAAInv5B,EAAEmv5B,UAAQnv5B,EAAEmv5B,QAAQ,EAAEnv5B,EAAEov5B,QAAQxn5B,EAAC,IAAE,SAASA,GAAM,IAAI5H,EAAEmv5B,UAAU,IAAInv5B,EAAEmv5B,UAAQnv5B,EAAEmv5B,QAAQ,EAAEnv5B,EAAEov5B,QAAQxn5B,EAAC,KAAI,IAAI5H,EAAEmv5B,UAAUnv5B,EAAEmv5B,QAAQ,EAAEnv5B,EAAEov5B,QAAQxn5B,EAAE,CAAC,GAAG,IAAI5H,EAAEmv5B,QAAQ,OAAOnv5B,EAAEov5B,QAAQ1m6B,QAAQ,MAAMsX,EAAEov5B,OAAQ,CAC5Z,IAAIz72B,EAAE,CAACtyD,QAAQ,MAAMumF,EAAE,CAAC97E,WAAW,MAAM+7E,EAAE,CAACk30B,uBAAuBpr2B,EAAEg+1B,wBAAwB/p0B,EAAE260B,kBAAkBjruB,GAAG,SAASvvG,IAAI,MAAMphF,MAAM,2DAA4D,CACzM4B,EAAQ8m6B,SAAS,CAACpx6B,IAAI25B,EAAE1hC,QAAQ,SAAS8pB,EAAE4H,EAAE1wB,GAAG0gC,EAAE5X,GAAE,WAAW4H,EAAE5lB,MAAMrN,KAAKgN,UAAU,GAAEzK,EAAE,EAAEuD,MAAM,SAASulB,GAAG,IAAI4H,EAAE,EAAuB,OAArBgQ,EAAE5X,GAAE,WAAW4H,GAAG,IAAUA,CAAC,EAAEuma,QAAQ,SAASnua,GAAG,OAAO4X,EAAE5X,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAE2G,KAAK,SAAS3G,GAAG,IAAI8X,EAAE9X,GAAG,MAAMrZ,MAAM,yEAAyE,OAAOqZ,CAAC,GAAGzX,EAAQ8P,UAAUm4Z,EAAEjoa,EAAQ63B,SAAS1Y,EAAEnf,EAAQg4B,SAASvd,EAAEza,EAAQ+m6B,cAAct9Z,EAAEzpgB,EAAQi4B,WAAWV,EAAEv3B,EAAQk4B,SAASlJ,EAClchvB,EAAQkk5B,mDAAmD5k0B,EAAEt/E,EAAQgn6B,IAAIxn1B,EACzEx/E,EAAQin6B,aAAa,SAASxv5B,EAAE4H,EAAE1wB,GAAG,GAAG,OAAO8oB,QAAG,IAASA,EAAE,MAAMrZ,MAAM,iFAAiFqZ,EAAE,KAAK,IAAIpX,EAAEgrD,EAAE,CAAC,EAAE5zC,EAAEtmB,OAAOi9B,EAAE3W,EAAEnqB,IAAIiH,EAAEkjB,EAAErf,IAAI8G,EAAEuY,EAAE684B,OAAO,GAAG,MAAMj14B,EAAE,CAAoE,QAAnE,IAASA,EAAEjnB,MAAM7D,EAAE8qB,EAAEjnB,IAAI8G,EAAE6vL,EAAEj2L,cAAS,IAASumB,EAAE/xB,MAAM8gC,EAAE,GAAG/O,EAAE/xB,KAAQmqB,EAAEvmB,MAAMumB,EAAEvmB,KAAK+P,aAAa,IAAImuB,EAAE3X,EAAEvmB,KAAK+P,aAAa,IAAIyW,KAAK2H,EAAEytyB,EAAE52zB,KAAKmpB,EAAE3H,KAAK2b,EAAEvrB,eAAe4P,KAAKrX,EAAEqX,QAAG,IAAS2H,EAAE3H,SAAI,IAAS0X,EAAEA,EAAE1X,GAAG2H,EAAE3H,GAAG,CAAC,IAAIA,EAAEte,UAAU3M,OAAO,EAAE,GAAG,IAAIirB,EAAErX,EAAEjP,SAASzC,OAAO,GAAG,EAAE+oB,EAAE,CAAC0X,EAAEn5B,MAAMyhB,GACrf,IAAI,IAAIwH,EAAE,EAAEA,EAAExH,EAAEwH,IAAIkQ,EAAElQ,GAAG9lB,UAAU8lB,EAAE,GAAG7e,EAAEjP,SAASg+B,CAAC,CAAC,MAAM,CAAC1D,SAASlU,EAAEtmB,KAAKumB,EAAEvmB,KAAK5D,IAAI8gC,EAAEh2B,IAAI7D,EAAEpD,MAAMkP,EAAEi05B,OAAOp15B,EAAE,EAAEc,EAAQmrmB,cAAc,SAAS1zlB,GAAqK,OAAlKA,EAAE,CAACiU,SAAS1Q,EAAEs64B,cAAc794B,EAAEyv5B,eAAezv5B,EAAE0v5B,aAAa,EAAEnv6B,SAAS,KAAKov6B,SAAS,KAAK5nP,cAAc,KAAK6nP,YAAY,OAAQrv6B,SAAS,CAAC0zB,SAAS/Q,EAAEqyG,SAASv1G,GAAUA,EAAE2v5B,SAAS3v5B,CAAC,EAAEzX,EAAQjS,cAAcugC,EAAEtuB,EAAQsn6B,cAAc,SAAS7v5B,GAAG,IAAI4H,EAAEiP,EAAEnZ,KAAK,KAAKsC,GAAY,OAAT4H,EAAEnuB,KAAKumB,EAAS4H,CAAC,EAAErf,EAAQun6B,UAAU,WAAW,MAAM,CAACzu6B,QAAQ,KAAK,EAC9dkH,EAAQ7H,WAAW,SAASsf,GAAG,MAAM,CAACiU,SAASgD,EAAE9C,OAAOnU,EAAE,EAAEzX,EAAQwn6B,eAAej44B,EAAEvvB,EAAQyn6B,KAAK,SAAShw5B,GAAG,MAAM,CAACiU,SAASj3B,EAAEoc,SAAS,CAAC+15B,SAAS,EAAEC,QAAQpv5B,GAAGyta,MAAMt8V,EAAE,EAAE5oF,EAAQ89Y,KAAK,SAASrmY,EAAE4H,GAAG,MAAM,CAACqM,SAASl3B,EAAEtD,KAAKumB,EAAE8e,aAAQ,IAASlX,EAAE,KAAKA,EAAE,EAAErf,EAAQ0n6B,gBAAgB,SAASjw5B,GAAG,IAAI4H,EAAEggE,EAAE97E,WAAW87E,EAAE97E,WAAW,CAAC,EAAE,IAAIkU,GAAG,CAAC,QAAQ4nE,EAAE97E,WAAW8b,CAAC,CAAC,EAAErf,EAAQ2n6B,aAAano1B,EAAEx/E,EAAQ+35B,YAAY,SAAStg5B,EAAE4H,GAAG,OAAO+rC,EAAEtyD,QAAQi/5B,YAAYtg5B,EAAE4H,EAAE,EAAErf,EAAQ3H,WAAW,SAASof,GAAG,OAAO2zC,EAAEtyD,QAAQT,WAAWof,EAAE,EAC3fzX,EAAQu45B,cAAc,WAAW,EAAEv45B,EAAQw45B,iBAAiB,SAAS/g5B,GAAG,OAAO2zC,EAAEtyD,QAAQ0/5B,iBAAiB/g5B,EAAE,EAAEzX,EAAQg45B,UAAU,SAASvg5B,EAAE4H,GAAG,OAAO+rC,EAAEtyD,QAAQk/5B,UAAUvg5B,EAAE4H,EAAE,EAAErf,EAAQmtB,MAAM,WAAW,OAAOi+B,EAAEtyD,QAAQq0B,OAAO,EAAEntB,EAAQi45B,oBAAoB,SAASxg5B,EAAE4H,EAAE1wB,GAAG,OAAOy8D,EAAEtyD,QAAQm/5B,oBAAoBxg5B,EAAE4H,EAAE1wB,EAAE,EAAEqR,EAAQX,mBAAmB,SAASoY,EAAE4H,GAAG,OAAO+rC,EAAEtyD,QAAQuG,mBAAmBoY,EAAE4H,EAAE,EAAErf,EAAQk45B,gBAAgB,SAASzg5B,EAAE4H,GAAG,OAAO+rC,EAAEtyD,QAAQo/5B,gBAAgBzg5B,EAAE4H,EAAE,EACzdrf,EAAQm45B,QAAQ,SAAS1g5B,EAAE4H,GAAG,OAAO+rC,EAAEtyD,QAAQq/5B,QAAQ1g5B,EAAE4H,EAAE,EAAErf,EAAQo45B,WAAW,SAAS3g5B,EAAE4H,EAAE1wB,GAAG,OAAOy8D,EAAEtyD,QAAQs/5B,WAAW3g5B,EAAE4H,EAAE1wB,EAAE,EAAEqR,EAAQq45B,OAAO,SAAS5g5B,GAAG,OAAO2zC,EAAEtyD,QAAQu/5B,OAAO5g5B,EAAE,EAAEzX,EAAQs45B,SAAS,SAAS7g5B,GAAG,OAAO2zC,EAAEtyD,QAAQw/5B,SAAS7g5B,EAAE,EAAEzX,EAAQ245B,qBAAqB,SAASlh5B,EAAE4H,EAAE1wB,GAAG,OAAOy8D,EAAEtyD,QAAQ6/5B,qBAAqBlh5B,EAAE4H,EAAE1wB,EAAE,EAAEqR,EAAQy45B,cAAc,WAAW,OAAOrt2B,EAAEtyD,QAAQ2/5B,eAAe,EAAEz45B,EAAQk7B,QAAQ,sCCtBlahN,EAAOluB,QAAU,EAAjBkuB,kCCAAA,EAAOluB,QAAU,EAAjBkuB,iCCMW,SAASxW,EAAED,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAEhrB,OAAOgrB,EAAEzqB,KAAKqyB,GAAG5H,EAAE,KAAK,EAAE2W,GAAG,CAAC,IAAI/tB,EAAE+tB,EAAE,IAAI,EAAEz/B,EAAE8oB,EAAEpX,GAAG,KAAG,EAAE+uB,EAAEzgC,EAAE0wB,IAA0B,MAAM5H,EAA7BA,EAAEpX,GAAGgf,EAAE5H,EAAE2W,GAAGz/B,EAAEy/B,EAAE/tB,CAAc,CAAC,CAAC,SAASnB,EAAEuY,GAAG,OAAO,IAAIA,EAAEhrB,OAAO,KAAKgrB,EAAE,EAAE,CAAC,SAASljB,EAAEkjB,GAAG,GAAG,IAAIA,EAAEhrB,OAAO,OAAO,KAAK,IAAI4yB,EAAE5H,EAAE,GAAG2W,EAAE3W,EAAE+vC,MAAM,GAAGp5B,IAAI/O,EAAE,CAAC5H,EAAE,GAAG2W,EAAE3W,EAAE,IAAI,IAAIpX,EAAE,EAAE1R,EAAE8oB,EAAEhrB,OAAOuiC,EAAErgC,IAAI,EAAE0R,EAAE2uB,GAAG,CAAC,IAAI9P,EAAE,GAAG7e,EAAE,GAAG,EAAEgrD,EAAE5zC,EAAEyH,GAAG3I,EAAE2I,EAAE,EAAE1qB,EAAEijB,EAAElB,GAAG,GAAG,EAAE6Y,EAAEi8B,EAAEj9B,GAAG7X,EAAE5nB,GAAG,EAAEygC,EAAE56B,EAAE62D,IAAI5zC,EAAEpX,GAAG7L,EAAEijB,EAAElB,GAAG6X,EAAE/tB,EAAEkW,IAAIkB,EAAEpX,GAAGgrD,EAAE5zC,EAAEyH,GAAGkP,EAAE/tB,EAAE6e,OAAQ,MAAG3I,EAAE5nB,GAAG,EAAEygC,EAAE56B,EAAE45B,IAA0B,MAAM3W,EAA7BA,EAAEpX,GAAG7L,EAAEijB,EAAElB,GAAG6X,EAAE/tB,EAAEkW,CAAc,EAAC,CAAC,OAAO8I,CAAC,CAC3c,SAAS+P,EAAE3X,EAAE4H,GAAG,IAAI+O,EAAE3W,EAAEmw5B,UAAUvo5B,EAAEuo5B,UAAU,OAAO,IAAIx54B,EAAEA,EAAE3W,EAAE+V,GAAGnO,EAAEmO,EAAE,CAAC,GAAG,kBAAkBqhe,aAAa,oBAAoBA,YAAY/vd,IAAI,CAAC,IAAItnB,EAAEq3e,YAAY7uf,EAAQ+n5B,aAAa,WAAW,OAAOvw4B,EAAEsnB,KAAK,CAAC,KAAK,CAAC,IAAI3f,EAAE4Q,KAAKwH,EAAEpY,EAAE2f,MAAM9+B,EAAQ+n5B,aAAa,WAAW,OAAO5o4B,EAAE2f,MAAMvH,CAAC,CAAC,CAAC,IAAI9c,EAAE,GAAGE,EAAE,GAAGK,EAAE,EAAE0T,EAAE,KAAKj6B,EAAE,EAAEC,GAAE,EAAGg/B,GAAE,EAAGs0Y,GAAE,EAAG/4Y,EAAE,oBAAoBvF,WAAWA,WAAW,KAAKu+Y,EAAE,oBAAoBx+Y,aAAaA,aAAa,KAAKukO,EAAE,qBAAqBryN,aAAaA,aAAa,KACnT,SAAS8te,EAAEhyf,GAAG,IAAI,IAAI4H,EAAEngB,EAAEyb,GAAG,OAAO0E,GAAG,CAAC,GAAG,OAAOA,EAAExsB,SAAS0B,EAAEomB,OAAQ,MAAG0E,EAAEsyQ,WAAWl6Q,GAAgD,MAA9CljB,EAAEomB,GAAG0E,EAAEuo5B,UAAUvo5B,EAAEgjtB,eAAe3qtB,EAAE+C,EAAE4E,EAAa,CAACA,EAAEngB,EAAEyb,EAAE,CAAC,CAAC,SAASqZ,EAAEvc,GAAa,GAAVuwZ,GAAE,EAAGyhG,EAAEhyf,IAAOic,EAAE,GAAG,OAAOx0B,EAAEub,GAAGiZ,GAAE,EAAG6vB,EAAEupwB,OAAO,CAAC,IAAIztyB,EAAEngB,EAAEyb,GAAG,OAAO0E,GAAG0vK,EAAE/6J,EAAE3U,EAAEsyQ,UAAUl6Q,EAAE,CAAC,CACra,SAASq1yB,EAAEr1yB,EAAE4H,GAAGqU,GAAE,EAAGs0Y,IAAIA,GAAE,EAAGC,EAAE50Y,GAAGA,GAAG,GAAG3+B,GAAE,EAAG,IAAI05B,EAAE35B,EAAE,IAAS,IAALg1gB,EAAEpqf,GAAOqP,EAAExvB,EAAEub,GAAG,OAAOiU,MAAMA,EAAE2zsB,eAAehjtB,IAAI5H,IAAI6W,MAAM,CAAC,IAAIjuB,EAAEquB,EAAE77B,SAAS,GAAG,oBAAoBwN,EAAE,CAACquB,EAAE77B,SAAS,KAAK4B,EAAEi6B,EAAEm54B,cAAc,IAAIl56B,EAAE0R,EAAEquB,EAAE2zsB,gBAAgBhjtB,GAAGA,EAAErf,EAAQ+n5B,eAAe,oBAAoBp55B,EAAE+/B,EAAE77B,SAASlE,EAAE+/B,IAAIxvB,EAAEub,IAAIlmB,EAAEkmB,GAAGgvf,EAAEpqf,EAAE,MAAM9qB,EAAEkmB,GAAGiU,EAAExvB,EAAEub,EAAE,CAAC,GAAG,OAAOiU,EAAE,IAAIM,GAAE,MAAO,CAAC,IAAI9P,EAAEhgB,EAAEyb,GAAG,OAAOuE,GAAG6vK,EAAE/6J,EAAE9U,EAAEyyQ,UAAUtyQ,GAAG2P,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQN,EAAE,KAAKj6B,EAAE25B,EAAE15B,GAAE,CAAE,CAAC,CAD1a,qBAAqB+3C,gBAAW,IAASA,UAAUq73B,iBAAY,IAASr73B,UAAUq73B,WAAWC,gBAAgBt73B,UAAUq73B,WAAWC,eAAe5y5B,KAAKs3B,UAAUq73B,YAC2Q,IACzPz44B,EAD6Pi0B,GAAE,EAAG/zB,EAAE,KAAK8D,GAAG,EAAEw0B,EAAE,EAAE14B,GAAG,EACvc,SAASb,IAAI,QAAOtuB,EAAQ+n5B,eAAe543B,EAAE04B,EAAO,CAAC,SAASgB,IAAI,GAAG,OAAOt5B,EAAE,CAAC,IAAI9X,EAAEzX,EAAQ+n5B,eAAe543B,EAAE1X,EAAE,IAAI4H,GAAE,EAAG,IAAIA,EAAEkQ,GAAE,EAAG9X,EAAE,CAAC,QAAQ4H,EAAEgQ,KAAKi0B,GAAE,EAAG/zB,EAAE,KAAK,CAAC,MAAM+zB,GAAE,CAAE,CAAO,GAAG,oBAAoB0qM,EAAE3+N,EAAE,WAAW2+N,EAAEnlM,EAAE,OAAO,GAAG,qBAAqBkvqB,eAAe,CAAC,IAAInvoB,EAAE,IAAImvoB,eAAe3sqB,EAAEw9B,EAAEqvoB,MAAMrvoB,EAAEwvoB,MAAMF,UAAUrvqB,EAAEx5B,EAAE,WAAW+7B,EAAEitqB,YAAY,KAAK,CAAC,MAAMhpsB,EAAE,WAAWJ,EAAE45B,EAAE,EAAE,EAAE,SAAStF,EAAE9rC,GAAG8X,EAAE9X,EAAE6rC,IAAIA,GAAE,EAAGj0B,IAAI,CAAC,SAAS0/J,EAAEt3K,EAAE4H,GAAGgU,EAAEpE,GAAE,WAAWxX,EAAEzX,EAAQ+n5B,eAAe,GAAE1o4B,EAAE,CAC5drf,EAAQqo5B,sBAAsB,EAAEro5B,EAAQio5B,2BAA2B,EAAEjo5B,EAAQoo5B,qBAAqB,EAAEpo5B,EAAQmo5B,wBAAwB,EAAEno5B,EAAQgo6B,mBAAmB,KAAKho6B,EAAQko5B,8BAA8B,EAAElo5B,EAAQ4n5B,wBAAwB,SAASnw4B,GAAGA,EAAE5kB,SAAS,IAAI,EAAEmN,EAAQio6B,2BAA2B,WAAWv04B,GAAGh/B,IAAIg/B,GAAE,EAAG6vB,EAAEupwB,GAAG,EAC1U9szB,EAAQko6B,wBAAwB,SAASzw5B,GAAG,EAAEA,GAAG,IAAIA,EAAE+wF,QAAQhgG,MAAM,mHAAmHq/C,EAAE,EAAEpwC,EAAExoB,KAAK2/B,MAAM,IAAInX,GAAG,CAAC,EAAEzX,EAAQgo5B,iCAAiC,WAAW,OAAOvz5B,CAAC,EAAEuL,EAAQmo6B,8BAA8B,WAAW,OAAOjp6B,EAAEub,EAAE,EAAEza,EAAQoo6B,cAAc,SAAS3w5B,GAAG,OAAOhjB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI4qB,EAAE,EAAE,MAAM,QAAQA,EAAE5qB,EAAE,IAAI25B,EAAE35B,EAAEA,EAAE4qB,EAAE,IAAI,OAAO5H,GAAG,CAAC,QAAQhjB,EAAE25B,CAAC,CAAC,EAAEpuB,EAAQqo6B,wBAAwB,WAAW,EAC9fro6B,EAAQ8n5B,sBAAsB,WAAW,EAAE9n5B,EAAQso6B,yBAAyB,SAAS7w5B,EAAE4H,GAAG,OAAO5H,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAI2W,EAAE35B,EAAEA,EAAEgjB,EAAE,IAAI,OAAO4H,GAAG,CAAC,QAAQ5qB,EAAE25B,CAAC,CAAC,EAChMpuB,EAAQ2n5B,0BAA0B,SAASlw4B,EAAE4H,EAAE+O,GAAG,IAAI/tB,EAAEL,EAAQ+n5B,eAA8F,OAA/E,kBAAkB353B,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEjf,QAA6B,EAAEif,EAAE/tB,EAAE+tB,EAAE/tB,EAAG+tB,EAAE/tB,EAASoX,GAAG,KAAK,EAAE,IAAI9oB,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzM8oB,EAAE,CAAC+V,GAAGxS,IAAInoB,SAASwsB,EAAEwo5B,cAAcpw5B,EAAEk6Q,UAAUvjQ,EAAEi0sB,eAAvD1zuB,EAAEy/B,EAAEz/B,EAAoEi56B,WAAW,GAAGx54B,EAAE/tB,GAAGoX,EAAEmw5B,UAAUx54B,EAAE1W,EAAEiD,EAAElD,GAAG,OAAOvY,EAAEub,IAAIhD,IAAIvY,EAAEyb,KAAKqtZ,GAAGC,EAAE50Y,GAAGA,GAAG,GAAG20Y,GAAE,EAAGj5O,EAAE/6J,EAAE5F,EAAE/tB,MAAMoX,EAAEmw5B,UAAUj56B,EAAE+oB,EAAE+C,EAAEhD,GAAGic,GAAGh/B,IAAIg/B,GAAE,EAAG6vB,EAAEupwB,KAAYr1yB,CAAC,EACnezX,EAAQ6n5B,qBAAqBv53B,EAAEtuB,EAAQuo6B,sBAAsB,SAAS9w5B,GAAG,IAAI4H,EAAE5qB,EAAE,OAAO,WAAW,IAAI25B,EAAE35B,EAAEA,EAAE4qB,EAAE,IAAI,OAAO5H,EAAEhe,MAAMrN,KAAKgN,UAAU,CAAC,QAAQ3E,EAAE25B,CAAC,CAAC,CAAC,+BCf7JF,EAAOluB,QAAU,EAAjBkuB,sBCE+DA,EAAOluB,QAG9D,WAAc,aAEtB,SAASwo6B,EAAkB756B,EAAGgsB,EAAGpE,GAC/B,GAAI,mBAAqB5nB,EAAIA,IAAMgsB,EAAIhsB,EAAEksB,IAAIF,GAAI,OAAOvhB,UAAU3M,OAAS,EAAIkuB,EAAIpE,EACnF,MAAM,IAAIqmB,UAAU,gDACtB,CACA,SAAS6r4B,EAA2B956B,EAAGgsB,GACrC,GAAIA,EAAEE,IAAIlsB,GAAI,MAAM,IAAIiuC,UAAU,iEACpC,CACA,SAAS8r4B,EAAuBnx5B,EAAGE,GACjC,OAAOF,EAAEpiB,IAAIqz6B,EAAkBjx5B,EAAGE,GACpC,CACA,SAASkx5B,EAA2Bh66B,EAAGgsB,EAAGlD,GACxCgx5B,EAA2B956B,EAAGgsB,GAAIA,EAAEvlB,IAAIzG,EAAG8oB,EAC7C,CACA,SAASmx5B,EAAuBrx5B,EAAGE,EAAGgD,GACpC,OAAOlD,EAAEniB,IAAIoz6B,EAAkBjx5B,EAAGE,GAAIgD,GAAIA,CAC5C,CAEA,MAAMou5B,EAAwB,IAGxBC,EAAc,CAAC,EACfC,EAA6BA,KAC7BD,EAAYE,iCAAiClx6B,aAC/Cgx6B,EAAYE,sBAAsB9h6B,QAClC4h6B,EAAYE,sBAAwB,MAC3Bl76B,SAASgkF,MAClBhkF,SAASgkF,KAAK5qE,OAChB,EASI+h6B,EAAuBC,GACpB,IAAI19yB,SAAQ3uF,IACjB,IAAKqs4B,EACH,OAAOrs4B,IAET,MAAMroC,EAAIw3B,OAAOghB,QACXv4C,EAAIu3B,OAAOihB,QACjB673B,EAAYK,oBAAsBz/4B,YAAW,KAC3Cq/4B,IACAls4B,GAAS,GACRgs4B,GAEH784B,OAAOo94B,SAAS506B,EAAGC,EAAE,IAInB406B,EAAa,SAabC,EADa,CAAC,YAAa,QAAS,cAAe,SAAU,QAAS,QAAS,cAAe,gBAAiB,QAAS,cAAe,OAAQ,OAAQ,QAAS,QAAS,iBAAkB,UAAW,UAAW,OAAQ,SAAU,kBAAmB,SAAU,OAAQ,eAAgB,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,WAAY,QAAS,WAAY,aAAc,cAAe,qBAAsB,iBAAkB,uBAAwB,gBAAiB,qBAAsB,SAAU,UAAW,SAAU,MAAO,YAAa,UAAW,WAAY,YAAa,SAAU,eAAgB,aAAc,cAAe,eAAgB,SAAU,eAAgB,aAAc,cAAe,eAAgB,WAAY,cAAe,kBAAmB,MAAO,qBAAsB,+BAAgC,oBAAqB,eAAgB,eAAgB,YAAa,gBAAiB,aAAc,YAAa,YACx5B/75B,QAAO,CAACC,EAAK7N,KAC1C6N,EAAI7N,GAAa0p6B,EAAa1p6B,EACvB6N,IACoB,CAAC,GAIxB+75B,EADQ,CAAC,UAAW,UAAW,OAAQ,WAAY,SACjCh85B,QAAO,CAACC,EAAKlG,KACnCkG,EAAIlG,GAAQ+h6B,EAAa/h6B,EAClBkG,IACkB,CAAC,GAEtBg85B,EAAgB,eAQhBC,EAAwBxq6B,GAAOA,EAAIyX,OAAO,GAAGkS,cAAgB3pB,EAAI5O,MAAM,GAOvEq4G,EAAO81B,IACXh2B,QAAQE,KAAK,GAAD1xG,OAAIwy6B,EAAa,KAAAxy6B,OAAuB,kBAAZwnI,EAAuBA,EAAQvrI,KAAK,KAAOurI,GAAU,EAQzFh2H,EAAQg2H,IACZh2B,QAAQhgG,MAAM,GAADxR,OAAIwy6B,EAAa,KAAAxy6B,OAAIwnI,GAAU,EASxCkryB,EAA2B,GAO3B3sQ,EAAWv+hB,IACVkryB,EAAyBzhjB,SAASzpP,KACrCkryB,EAAyB186B,KAAKwxI,GAC9B91B,EAAK81B,GACP,EASImryB,EAAuB,SAAUC,GACrC,IAAIC,EAAazw6B,UAAU3M,OAAS,QAAsBS,IAAjBkM,UAAU,GAAmBA,UAAU,GAAK,KACrF2jqB,EAAS,IAAD/lqB,OAAK4y6B,EAAe,kEAAA5y6B,OAAiE6y6B,EAAa,SAAH7y6B,OAAY6y6B,EAAU,cAAe,IAC9I,EASMC,EAAiBny6B,GAAsB,oBAARA,EAAqBA,IAAQA,EAM5Doy6B,EAAiBpy6B,GAAOA,GAAgC,oBAAlBA,EAAIqy6B,UAM1CC,EAAYty6B,GAAOoy6B,EAAepy6B,GAAOA,EAAIqy6B,YAAcx+yB,QAAQ3uF,QAAQllC,GAM3EuiY,EAAYviY,GAAOA,GAAO6zH,QAAQ3uF,QAAQllC,KAASA,EAOnDshyB,EAAeA,IAAMnryB,SAASgkF,KAAKj5E,cAAc,IAAD7B,OAAKsy6B,EAAYz86B,YAMjEq96B,EAAoBC,IACxB,MAAMt96B,EAAYosyB,IAClB,OAAOpsyB,EAAYA,EAAUgM,cAAcsx6B,GAAkB,IAAI,EAO7DC,EAAiBzq6B,GACduq6B,EAAkB,IAADlz6B,OAAK2I,IAMzBq5yB,EAAWA,IAAMoxH,EAAed,EAAY14wB,OAK5Cy5wB,EAAUA,IAAMD,EAAed,EAAYhi6B,MAK3Cgj6B,EAAiBA,IAAMF,EAAed,EAAY,iBAKlDiB,EAAWA,IAAMH,EAAed,EAAYjwzB,OAK5CmxzB,EAAmBA,IAAMJ,EAAed,EAAY,mBAKpDzgQ,EAAWA,IAAMuhQ,EAAed,EAAYn6pB,OAK5Cs7pB,EAAmBA,IAAML,EAAed,EAAY,mBAKpDoB,EAAuBA,IAAMN,EAAed,EAAY,uBAKxDqB,EAAmBA,IAAuCT,EAAkB,IAADlz6B,OAAKsy6B,EAAYsB,QAAO,MAAA5z6B,OAAKsy6B,EAAYuB,UAKpHC,EAAkBA,IAAuCZ,EAAkB,IAADlz6B,OAAKsy6B,EAAYsB,QAAO,MAAA5z6B,OAAKsy6B,EAAYt81B,SAKnH+91B,EAAgBA,IAAuCb,EAAkB,IAADlz6B,OAAKsy6B,EAAYsB,QAAO,MAAA5z6B,OAAKsy6B,EAAY0B,OAKjHC,EAAgBA,IAAMb,EAAed,EAAY,gBAKjD4B,EAAYA,IAAMhB,EAAkB,IAADlz6B,OAAKsy6B,EAAY6B,SAKpDC,EAAaA,IAAMhB,EAAed,EAAYsB,SAK9CS,EAAYA,IAAMjB,EAAed,EAAYgC,QAK7CC,EAAsBA,IAAMnB,EAAed,EAAY,uBAKvDkC,EAAiBA,IAAMpB,EAAed,EAAY5kU,OAGlDh/lB,EAAY,yQAmBZ+l6B,EAAuBA,KAC3B,MAAM76wB,EAAQoopB,IACd,IAAKpopB,EACH,MAAO,GAGT,MAAM86wB,EAAgC96wB,EAAM56J,iBAAiB,uDACvD216B,EAAsC116B,MAAM/G,KAAKw86B,GAEtDhu5B,MAAK,CAACjG,EAAG4H,KACR,MAAMus5B,EAAYp15B,SAASiB,EAAEthB,aAAa,aAAe,KACnD016B,EAAYr15B,SAAS6I,EAAElpB,aAAa,aAAe,KACzD,OAAIy16B,EAAYC,EACP,EACED,EAAYC,GACb,EAEH,CAAC,IAIJC,EAAyBl7wB,EAAM56J,iBAAiB0P,GAChDqm6B,EAAiC916B,MAAM/G,KAAK486B,GAAwBrz5B,QAAO65F,GAAsC,OAAhCA,EAAGn8G,aAAa,cACvG,MAAO,IAAI,IAAIiyB,IAAIuj5B,EAAoC306B,OAAO+06B,KAAkCtz5B,QAAO65F,GAAM05zB,GAAY15zB,IAAI,EAMzH25zB,EAAUA,IACPC,EAASp+6B,SAASgkF,KAAMw31B,EAAY6C,SAAWD,EAASp+6B,SAASgkF,KAAMw31B,EAAY,kBAAoB4C,EAASp+6B,SAASgkF,KAAMw31B,EAAY,gBAM9I8C,EAAUA,KACd,MAAMx7wB,EAAQoopB,IACd,QAAKpopB,GAGEs7wB,EAASt7wB,EAAO04wB,EAAY+C,MAAM,EAMrCniP,EAAYA,KAChB,MAAMt5hB,EAAQoopB,IACd,QAAKpopB,GAGEA,EAAM07wB,aAAa,eAAe,EAUrCC,EAAeA,CAACj7yB,EAAMxnF,KAE1B,GADAwnF,EAAKznF,YAAc,GACfC,EAAM,CACR,MACMj1C,GADS,IAAI2/O,WACG6B,gBAAgBvsM,EAAM,aACtC1zC,EAAOvB,EAAOgE,cAAc,QAC9BzC,GACFH,MAAM/G,KAAKkH,EAAKwoC,YAAYjxC,SAAQmsE,IAClCw3D,EAAKrjI,YAAY6rE,EAAM,IAG3B,MAAMgY,EAAOj9E,EAAOgE,cAAc,QAC9Bi5E,GACF77E,MAAM/G,KAAK4iF,EAAKlzC,YAAYjxC,SAAQmsE,IAC9BA,aAAiB43a,kBAAoB53a,aAAiB0y2B,iBACxDl7yB,EAAKrjI,YAAY6rE,EAAM81F,WAAU,IAEjCt+B,EAAKrjI,YAAY6rE,EACnB,GAGN,GAQIoy2B,EAAWA,CAAC56yB,EAAM3xH,KACtB,IAAKA,EACH,OAAO,EAET,MAAMyoC,EAAYzoC,EAAUjJ,MAAM,OAClC,IAAK,IAAIrI,EAAI,EAAGA,EAAI+5C,EAAU37C,OAAQ4B,IACpC,IAAKijI,EAAKlpF,UAAUsB,SAAStB,EAAU/5C,IACrC,OAAO,EAGX,OAAO,CAAI,EAOPo+6B,EAAsBA,CAACn7yB,EAAMzwH,KACjC5K,MAAM/G,KAAKoiI,EAAKlpF,WAAWz6C,SAAQgS,IAC5BrQ,OAAOwnB,OAAOwy5B,GAAarhjB,SAAStoX,IAAerQ,OAAOwnB,OAAOyy5B,GAAWthjB,SAAStoX,IAAerQ,OAAOwnB,OAAOjW,EAAO6r6B,WAAa,CAAC,GAAGzkjB,SAAStoX,IACtJ2xH,EAAKlpF,UAAU7E,OAAO5jC,EACxB,GACA,EAQEgt6B,EAAmBA,CAACr7yB,EAAMzwH,EAAQlB,KAEtC,GADA8s6B,EAAoBn7yB,EAAMzwH,IACrBA,EAAO+r6B,YACV,OAEF,MAAMA,EAAc/r6B,EAAO+r6B,YAAY,GAClCA,IAGsB,kBAAhBA,GAA6BA,EAAYj/6B,QAIpDk/6B,GAASv7yB,EAAMs7yB,GAHblk0B,EAAK,+BAAD1xG,OAAgC2I,EAAS,+CAAA3I,cAAqD416B,EAAW,MAGpF,EAQvBE,EAAaA,CAACl8wB,EAAOm8wB,KACzB,IAAKA,EACH,OAAO,KAET,OAAQA,GACN,IAAK,SACL,IAAK,WACL,IAAK,OACH,OAAOn8wB,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAY14wB,MAAK,QAAA55J,OAAOsy6B,EAAYyD,KACrE,IAAK,WACH,OAAOn8wB,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAY14wB,MAAK,QAAA55J,OAAOsy6B,EAAY0D,SAAQ,WAC7E,IAAK,QACH,OAAOp8wB,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAY14wB,MAAK,QAAA55J,OAAOsy6B,EAAY2D,MAAK,oBAAqBr8wB,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAY14wB,MAAK,QAAA55J,OAAOsy6B,EAAY2D,MAAK,uBAChK,IAAK,QACH,OAAOr8wB,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAY14wB,MAAK,QAAA55J,OAAOsy6B,EAAYpm4B,MAAK,WAC1E,QACE,OAAO0tH,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAY14wB,MAAK,QAAA55J,OAAOsy6B,EAAYtx5B,QACvE,EAMIk15B,EAAal15B,IAIjB,GAHAA,EAAM9Q,QAGa,SAAf8Q,EAAM9mB,KAAiB,CAEzB,MAAMimB,EAAMa,EAAMxoB,MAClBwoB,EAAMxoB,MAAQ,GACdwoB,EAAMxoB,MAAQ2nB,CAChB,GAQIg25B,GAAcA,CAAC765B,EAAQ81B,EAAWgl4B,KACjC965B,GAAW81B,IAGS,kBAAdA,IACTA,EAAYA,EAAU1xC,MAAM,OAAO+hB,OAAO8qH,UAE5Cn7F,EAAUz6C,SAAQgS,IACZ1J,MAAMiI,QAAQoU,GAChBA,EAAO3kB,SAAQ2jI,IACT87yB,EACF97yB,EAAKlpF,UAAUtZ,IAAInvB,GAEnB2xH,EAAKlpF,UAAU7E,OAAO5jC,EACxB,IAGEyt6B,EACF965B,EAAO81B,UAAUtZ,IAAInvB,GAErB2S,EAAO81B,UAAU7E,OAAO5jC,EAE5B,IACA,EAOEkt6B,GAAWA,CAACv65B,EAAQ81B,KACxB+k4B,GAAY765B,EAAQ81B,GAAW,EAAK,EAOhCil4B,GAAcA,CAAC/65B,EAAQ81B,KAC3B+k4B,GAAY765B,EAAQ81B,GAAW,EAAM,EAUjCkl4B,GAAwBA,CAACh8yB,EAAM3xH,KACnC,MAAMvO,EAAW6E,MAAM/G,KAAKoiI,EAAKlgI,UACjC,IAAK,IAAI/C,EAAI,EAAGA,EAAI+C,EAAS3E,OAAQ4B,IAAK,CACxC,MAAMyrE,EAAQ1oE,EAAS/C,GACvB,GAAIyrE,aAAiBhiE,aAAeo06B,EAASpy2B,EAAOn6D,GAClD,OAAOm6D,CAEX,GAQIyz2B,GAAsBA,CAACj8yB,EAAM39H,EAAUnE,KACvCA,IAAU,GAALwH,OAAQwf,SAAShnB,MACxBA,EAAQgnB,SAAShnB,IAEfA,GAA6B,IAApBgnB,SAAShnB,GACpB8hI,EAAK54G,MAAMqmB,YAAYprC,EAA2B,kBAAVnE,EAAqB,GAAHwH,OAAMxH,EAAK,MAAOA,GAE5E8hI,EAAK54G,MAAM4vB,eAAe30C,EAC5B,EAOIs3M,GAAO,SAAU35E,GACrB,IAAIluH,EAAUhK,UAAU3M,OAAS,QAAsBS,IAAjBkM,UAAU,GAAmBA,UAAU,GAAK,OAC7Ek4H,IAGLA,EAAK54G,MAAMtV,QAAUA,EACvB,EAKMqrU,GAAOn9M,IACNA,IAGLA,EAAK54G,MAAMtV,QAAU,OAAM,EAOvBoq6B,GAA2B,SAAUl8yB,GACzC,IAAIluH,EAAUhK,UAAU3M,OAAS,QAAsBS,IAAjBkM,UAAU,GAAmBA,UAAU,GAAK,QAC7Ek4H,GAGL,IAAIm8yB,kBAAiB,KACnB/6rB,GAAOphH,EAAMA,EAAKvnF,UAAW3mC,EAAQ,IACpC4nmB,QAAQ15e,EAAM,CACfo8yB,WAAW,EACXC,SAAS,GAEb,EAQMr3K,GAAWA,CAACrlwB,EAAQgG,EAAUtD,EAAUnE,KAE5C,MAAM8iH,EAAKrhH,EAAO4H,cAAc5B,GAC5Bq7G,GACFA,EAAG55F,MAAMqmB,YAAYprC,EAAUnE,EACjC,EAQIkjP,GAAS,SAAUphH,EAAM87yB,GAEzBA,EACFniuB,GAAK35E,EAFOl4H,UAAU3M,OAAS,QAAsBS,IAAjBkM,UAAU,GAAmBA,UAAU,GAAK,QAIhFq1U,GAAKn9M,EAET,EAQM06yB,GAAc16yB,MAAWA,KAASA,EAAKu8qB,aAAev8qB,EAAKsvrB,cAAgBtvrB,EAAKs8yB,iBAAiBnh7B,SAKjGoh7B,GAAsBA,KAAO7B,GAAYrB,OAAwBqB,GAAYjB,OAAqBiB,GAAYlB,KAM9GgD,GAAex8yB,MAAWA,EAAKi1vB,aAAej1vB,EAAK+gJ,cAQnD07pB,GAAkBz8yB,IACtB,MAAM54G,EAAQsT,OAAO2d,iBAAiB2nF,GAChC08yB,EAAeh35B,WAAW0B,EAAMkxB,iBAAiB,uBAAyB,KAC1Eqk4B,EAAgBj35B,WAAW0B,EAAMkxB,iBAAiB,wBAA0B,KAClF,OAAOok4B,EAAe,GAAKC,EAAgB,CAAC,EAOxCC,GAA0B,SAAUxy4B,GACxC,IAAI/S,EAAQvvB,UAAU3M,OAAS,QAAsBS,IAAjBkM,UAAU,IAAmBA,UAAU,GAC3E,MAAM+06B,EAAmB5C,IACpB4C,GAGDnC,GAAYmC,KACVxl5B,IACFwl5B,EAAiBz15B,MAAMnV,WAAa,OACpC4q6B,EAAiBz15B,MAAMxV,MAAQ,QAEjCwmB,YAAW,KACTyk5B,EAAiBz15B,MAAMnV,WAAa,SAAHvM,OAAY0kC,EAAQ,IAAI,YACzDyy4B,EAAiBz15B,MAAMxV,MAAQ,IAAI,GAClC,IAEP,EACMkr6B,GAAuBA,KAC3B,MAAMD,EAAmB5C,IACzB,IAAK4C,EACH,OAEF,MAAME,EAAwB735B,SAASwV,OAAO2d,iBAAiBwk4B,GAAkBjr6B,OACjFir6B,EAAiBz15B,MAAM4vB,eAAe,cACtC6l4B,EAAiBz15B,MAAMxV,MAAQ,OAC/B,MACMor6B,EAA0BD,EADE735B,SAASwV,OAAO2d,iBAAiBwk4B,GAAkBjr6B,OACD,IACpFir6B,EAAiBz15B,MAAMxV,MAAQ,GAAHlM,OAAMs36B,EAAuB,IAAG,EAQxDC,GAAYA,IAAwB,qBAAXvi5B,QAA8C,qBAAbl+B,SAE1D0g7B,GAAY,4BAAAx36B,OACKsy6B,EAAYjwzB,MAAK,wBAAAriH,OAAuBsy6B,EAAY,kBAAiB,aAAAty6B,OAAYsy6B,EAAY14wB,MAAK,sDAAA55J,OACzFsy6B,EAAY5kU,MAAK,+BAAA1tmB,OACnCsy6B,EAAY,kBAAiB,4BAAAty6B,OAC5Bsy6B,EAAYhi6B,KAAI,6BAAAtQ,OAChBsy6B,EAAYn6pB,MAAK,wBAAAn4Q,OAClBsy6B,EAAYjwzB,MAAK,UAAAriH,OAASsy6B,EAAYjwzB,MAAK,4BAAAriH,OAC1Csy6B,EAAY,kBAAiB,UAAAty6B,OAASsy6B,EAAY,kBAAiB,+BAAAty6B,OACjEsy6B,EAAYtx5B,MAAK,UAAAhhB,OAASsy6B,EAAYtx5B,MAAK,uCAAAhhB,OAC/Bsy6B,EAAYmF,KAAI,yBAAAz36B,OAC9Bsy6B,EAAYpm4B,MAAK,0FAAAlsC,OAIdsy6B,EAAY5i4B,OAAM,UAAA1vC,OAASsy6B,EAAY5i4B,OAAM,gCAAA1vC,OAChDsy6B,EAAY2D,MAAK,+BAAAj26B,OACfsy6B,EAAY0D,SAAQ,wCAAAh26B,OACLsy6B,EAAY0D,SAAQ,4BAAAh26B,OAClCsy6B,EAAY905B,MAAK,gDAAAxd,OAEfsy6B,EAAYoF,SAAQ,UAAA136B,OAASsy6B,EAAYoF,SAAQ,kCAAA136B,OACtDsy6B,EAAY,sBAAqB,UAAAty6B,OAASsy6B,EAAY,sBAAqB,6BAAAty6B,OAC3Esy6B,EAAYsB,QAAO,yBAAA5z6B,OACjBsy6B,EAAY6B,OAAM,gDAAAn06B,OACDsy6B,EAAYuB,QAAO,mDAAA7z6B,OACnBsy6B,EAAY0B,KAAI,mDAAAh06B,OAChBsy6B,EAAYt81B,OAAM,2CAAAh2E,OAErCsy6B,EAAYgC,OAAM,6BAAAt06B,OAClBsy6B,EAAY,gCAA+B,yBAAAty6B,OACzCsy6B,EAAY,sBAAqB,kCAGlD756B,QAAQ,aAAc,IAKhBk/6B,GAAoBA,KACxB,MAAMj1pB,EAAeu/gB,IACrB,QAAKv/gB,IAGLA,EAAan2O,SACb8p4B,GAAY,CAACv/6B,SAAS4wC,gBAAiB5wC,SAASgkF,MAAO,CAACw31B,EAAY,eAAgBA,EAAY,eAAgBA,EAAY,iBACrH,EAAI,EAEPsF,GAA2BA,KAC/B9F,EAAY+F,gBAAgBC,wBAAwB,EAEhDC,GAA0BA,KAC9B,MAAMn+wB,EAAQoopB,IACRhhyB,EAAQs15B,GAAsB18wB,EAAO04wB,EAAYtx5B,OACjDy25B,EAAOnB,GAAsB18wB,EAAO04wB,EAAYmF,MAEhDvr4B,EAAQ0tH,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAYpm4B,MAAK,WAEjD8r4B,EAAcp+wB,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAYpm4B,MAAK,YACvDwD,EAAS4m4B,GAAsB18wB,EAAO04wB,EAAY5i4B,QAElDsm4B,EAAWp8wB,EAAM/3J,cAAc,IAAD7B,OAAKsy6B,EAAY0D,SAAQ,WACvD0B,EAAWpB,GAAsB18wB,EAAO04wB,EAAYoF,UAC1D125B,EAAMm24B,QAAUygB,GAChBH,EAAKnhyB,SAAWshyB,GAChBlo4B,EAAO4mG,SAAWshyB,GAClB5B,EAAS1/xB,SAAWshyB,GACpBF,EAASvgB,QAAUygB,GACnB1r4B,EAAMir3B,QAAU,KACdygB,KACAI,EAAYx/6B,MAAQ0zC,EAAM1zC,KAAK,EAEjC0zC,EAAMoqG,SAAW,KACfshyB,KACAI,EAAYx/6B,MAAQ0zC,EAAM1zC,KAAK,CAChC,EAOGy/6B,GAAY385B,GAA4B,kBAAXA,EAAsBxkB,SAAS+K,cAAcyZ,GAAUA,EAKpF485B,GAAqBru6B,IACzB,MAAM+vJ,EAAQoopB,IACdpopB,EAAM5iK,aAAa,OAAQ6S,EAAOwr6B,MAAQ,QAAU,UACpDz7wB,EAAM5iK,aAAa,YAAa6S,EAAOwr6B,MAAQ,SAAW,aACrDxr6B,EAAOwr6B,OACVz7wB,EAAM5iK,aAAa,aAAc,OACnC,EAMImh7B,GAAWp2H,IAC0C,QAArD/sxB,OAAO2d,iBAAiBovwB,GAAetxyB,WACzCol6B,GAAS5zI,IAAgBqwI,EAAY8F,IACvC,EAQIrh5B,GAAOltB,IAEX,MAAMwu6B,EAAsBV,KAC5B,GAAIJ,KAEF,YADA/l6B,EAAM,+CAGR,MAAM3b,EAAYiB,SAASC,cAAc,OACzClB,EAAU8S,UAAY2p6B,EAAYz86B,UAC9Bwi7B,GACFxC,GAAShg7B,EAAWy86B,EAAY,kBAElCiD,EAAa1/6B,EAAW2h7B,IACxB3h7B,EAAUsu6B,QAAoB,WAAIt65B,EAAOC,MACzC,MAAMi4yB,EAAgBk2H,GAAUpu6B,EAAOyR,QACvCymyB,EAAc9qzB,YAAYpB,GAC1Bqi7B,GAAmBru6B,GACnBsu6B,GAASp2H,GACTg2H,IAAyB,EAOrBO,GAAuBA,CAACtqsB,EAAO1yN,KAE/B0yN,aAAiBltO,YACnBwa,EAAOrkB,YAAY+2O,GAIK,kBAAVA,EACduqsB,GAAavqsB,EAAO1yN,GAIb0yN,GACPunsB,EAAaj65B,EAAQ0yN,EACvB,EAOIuqsB,GAAeA,CAACvqsB,EAAO1yN,KAEvB0yN,EAAMwqsB,OACRC,GAAiBn95B,EAAQ0yN,GAKzBunsB,EAAaj65B,EAAQ0yN,EAAMrrO,WAC7B,EAOI816B,GAAmBA,CAACn95B,EAAQg/G,KAEhC,GADAh/G,EAAOu3B,YAAc,GACjB,KAAKynF,EACP,IAAK,IAAIjjI,EAAI,EAAGA,KAAKijI,EAAMjjI,IACzBikB,EAAOrkB,YAAYqjI,EAAKjjI,GAAGuhK,WAAU,SAGvCt9I,EAAOrkB,YAAYqjI,EAAKs+B,WAAU,GACpC,EAOI8/wB,GAAgBA,CAAC1i5B,EAAUnsB,KAC/B,MAAM+p6B,EAAUQ,IACVD,EAASD,IACVN,GAAYO,IAKZtq6B,EAAO8u6B,mBAAsB9u6B,EAAO+u6B,gBAAmB/u6B,EAAOgv6B,iBAGjE5kuB,GAAK2/tB,GAFLn8lB,GAAKm8lB,GAMP+B,EAAiB/B,EAAS/p6B,EAAQ,WAGlCiv6B,GAAclF,EAASO,EAAQtq6B,GAG/B0r6B,EAAapB,EAAQtq6B,EAAOkv6B,YAAc,IAC1CpD,EAAiBxB,EAAQtq6B,EAAQ,UAAS,EAQ5C,SAASiv6B,GAAclF,EAASO,EAAQtq6B,GACtC,MAAMmv6B,EAAgBrF,IAChBsF,EAAalF,IACbmF,EAAepF,IAChBkF,GAAkBC,GAAeC,IAKtCC,GAAaH,EAAe,UAAWnv6B,GACvCsv6B,GAAaF,EAAY,OAAQpv6B,GACjCsv6B,GAAaD,EAAc,SAAUrv6B,GACrCuv6B,GAAqBJ,EAAeC,EAAYC,EAAcrv6B,GAC1DA,EAAOwv6B,iBACLxv6B,EAAOwr6B,OACTzB,EAAQ796B,aAAamj7B,EAAcF,GACnCpF,EAAQ796B,aAAakj7B,EAAYD,KAEjCpF,EAAQ796B,aAAamj7B,EAAc/E,GACnCP,EAAQ796B,aAAakj7B,EAAY9E,GACjCP,EAAQ796B,aAAaij7B,EAAe7E,KAG1C,CAQA,SAASiF,GAAqBJ,EAAeC,EAAYC,EAAcrv6B,GAChEA,EAAOyv6B,gBAIZzD,GAAS,CAACmD,EAAeC,EAAYC,GAAe5G,EAAYzn6B,QAG5DhB,EAAO0v6B,qBACTP,EAAct35B,MAAMyK,gBAAkBtiB,EAAO0v6B,mBAC7C1D,GAASmD,EAAe1G,EAAY,qBAElCzo6B,EAAO2v6B,kBACTP,EAAWv35B,MAAMyK,gBAAkBtiB,EAAO2v6B,gBAC1C3D,GAASoD,EAAY3G,EAAY,qBAE/Bzo6B,EAAO4v6B,oBACTP,EAAax35B,MAAMyK,gBAAkBtiB,EAAO4v6B,kBAC5C5D,GAASqD,EAAc5G,EAAY,sBAhBnC+D,GAAY,CAAC2C,EAAeC,EAAYC,GAAe5G,EAAYzn6B,OAkBvE,CAOA,SAASsu6B,GAAaxk6B,EAAQ+k6B,EAAY7v6B,GACxC,MAAMg1O,EAAyD4zrB,EAAsBiH,GACrFh+rB,GAAO/mO,EAAQ9K,EAAO,OAAD7J,OAAQ6+O,EAAU,WAAW,gBAClD02rB,EAAa5g6B,EAAQ9K,EAAO,GAAD7J,OAAI056B,EAAU,gBAAiB,IAC1D/k6B,EAAO3d,aAAa,aAAc6S,EAAO,GAAD7J,OAAI056B,EAAU,qBAAsB,IAG5E/k6B,EAAOhM,UAAY2p6B,EAAYoH,GAC/B/D,EAAiBhh6B,EAAQ9K,EAAQ,GAAF7J,OAAK056B,EAAU,UAChD,CAMA,MAAMC,GAAoBA,CAAC3j5B,EAAUnsB,KACnC,MAAM+9yB,EAAc4sH,IACf5sH,IAGL2tH,EAAa3tH,EAAa/9yB,EAAO+v6B,iBAAmB,IAGpDjE,EAAiB/tH,EAAa/9yB,EAAQ,eACtC6xO,GAAOkskB,EAAa/9yB,EAAOgw6B,iBAC3BjyH,EAAY5wzB,aAAa,aAAc6S,EAAOiw6B,sBAAwB,IAAG,EAOrEC,GAAkBA,CAAC/j5B,EAAUnsB,KACjC,MAAMhU,EAAYosyB,IACbpsyB,IAGLmk7B,GAAoBnk7B,EAAWgU,EAAOow6B,UACtCC,GAAoBrk7B,EAAWgU,EAAOjQ,UACtCug7B,GAAgBtk7B,EAAWgU,EAAO+sP,MAGlC++qB,EAAiB9/6B,EAAWgU,EAAQ,aAAY,EAOlD,SAASmw6B,GAAoBnk7B,EAAWok7B,GACd,kBAAbA,EACTpk7B,EAAU6rB,MAAMjS,WAAawq6B,EACnBA,GACVpE,GAAS,CAAC/+6B,SAAS4wC,gBAAiB5wC,SAASgkF,MAAOw31B,EAAY,eAEpE,CAMA,SAAS4H,GAAoBrk7B,EAAW+D,GACjCA,IAGDA,KAAY046B,EACduD,GAAShg7B,EAAWy86B,EAAY146B,KAEhC83G,EAAK,iEACLmk0B,GAAShg7B,EAAWy86B,EAAYh43B,SAEpC,CAMA,SAAS6/3B,GAAgBtk7B,EAAW+gQ,GAC7BA,GAGLi/qB,GAAShg7B,EAAWy86B,EAAY,QAADty6B,OAAS42P,IAC1C,CAYA,IAAIwjrB,GAAe,CACjBC,YAAa,IAAIr86B,QACjBs86B,SAAU,IAAIt86B,SAOhB,MAAMu86B,GAAe,CAAC,QAAS,OAAQ,QAAS,SAAU,QAAS,WAAY,YAMzEC,GAAcA,CAACxk5B,EAAUnsB,KAC7B,MAAM+vJ,EAAQoopB,IACd,IAAKpopB,EACH,OAEF,MAAMygxB,EAAcD,GAAaC,YAAYl86B,IAAI63B,GAC3Cyk5B,GAAYJ,GAAexw6B,EAAOmX,QAAUq55B,EAAYr55B,MAC9Du55B,GAAa5j7B,SAAQo/6B,IACnB,MAAM2E,EAAiBpE,GAAsB18wB,EAAO04wB,EAAYyD,IAC3D2E,IAKL/0R,GAAcowR,EAAYls6B,EAAO8w6B,iBAGjCD,EAAe/x6B,UAAY2p6B,EAAYyD,GACnC0E,GACFhjmB,GAAKijmB,GACP,IAEE7w6B,EAAOmX,QACLy55B,GACFG,GAAU/w6B,GAGZgx6B,GAAehx6B,GACjB,EAMI+w6B,GAAY/w6B,IAChB,IAAKA,EAAOmX,MACV,OAEF,IAAK855B,GAAgBjx6B,EAAOmX,OAE1B,YADAxP,EAAM,sCAADxR,OAAuC1H,OAAOgkB,KAAKw+5B,IAAiB7+6B,KAAK,OAAM,WAAA+D,OAAU6J,EAAOmX,MAAK,MAG5G,MAAM055B,EAAiBK,GAAkBlx6B,EAAOmX,OAChD,IAAK055B,EACH,OAEF,MAAM155B,EAAQ855B,GAAgBjx6B,EAAOmX,OAAO055B,EAAgB7w6B,GAC5DoqM,GAAKymuB,GAGD7w6B,EAAOmx6B,gBACTto5B,YAAW,KACTwj5B,EAAWl15B,EAAM,GAErB,EAMIi65B,GAAmBj65B,IACvB,IAAK,IAAI3pB,EAAI,EAAGA,EAAI2pB,EAAM2qF,WAAWl2G,OAAQ4B,IAAK,CAChD,MAAMm0I,EAAWxqH,EAAM2qF,WAAWt0G,GAAGiJ,KAChC,CAAC,KAAM,OAAQ,QAAS,SAAS2wX,SAASzlP,IAC7CxqH,EAAM8vB,gBAAgB06F,EAE1B,GAOIm6gB,GAAgBA,CAACowR,EAAY4E,KACjC,MAAM/gxB,EAAQoopB,IACd,IAAKpopB,EACH,OAEF,MAAM54I,EAAQ805B,EAAWl8wB,EAAOm8wB,GAChC,GAAK/05B,EAAL,CAGAi65B,GAAiBj65B,GACjB,IAAK,MAAMsxB,KAAQqo4B,EACjB355B,EAAMhqB,aAAas7C,EAAMqo4B,EAAgBro4B,GAH3C,CAIA,EAMIuo4B,GAAiBhx6B,IACrB,IAAKA,EAAOmX,MACV,OAEF,MAAM055B,EAAiBK,GAAkBlx6B,EAAOmX,OAC5C055B,GACF/E,EAAiB+E,EAAgB7w6B,EAAQ,QAC3C,EAOIqx6B,GAAsBA,CAACl65B,EAAOnX,MAC7BmX,EAAM6lK,aAAeh9K,EAAOsx6B,mBAC/Bn65B,EAAM6lK,YAAch9K,EAAOsx6B,iBAC7B,EAQIC,GAAgBA,CAACp65B,EAAOq65B,EAAWxx6B,KACvC,GAAIA,EAAOyx6B,WAAY,CACrB,MAAM995B,EAAQ1mB,SAASC,cAAc,SAC/B+/T,EAAaw7mB,EAAY,eAC/B905B,EAAMxmB,aAAa,MAAOgqB,EAAMwV,IAChChZ,EAAM7U,UAAYmuT,EACgB,kBAAvBjtT,EAAO+r6B,aAChBC,GAASr45B,EAAO3T,EAAO+r6B,YAAY0F,YAErC995B,EAAM+95B,UAAY1x6B,EAAOyx6B,WACzBD,EAAUG,sBAAsB,cAAeh+5B,EACjD,GAOIu95B,GAAoBn3P,IACxB,MAAMhqhB,EAAQoopB,IACd,GAAKpopB,EAGL,OAAO08wB,GAAsB18wB,EAAO04wB,EAAY,IAAwCA,EAAYtx5B,MAAM,EAOtGy65B,GAAwBA,CAACz65B,EAAO065B,KAChC,CAAC,SAAU,UAAUzqjB,gBAAgByqjB,GACvC165B,EAAMxoB,MAAQ,GAAHwH,OAAM076B,GACPx4iB,EAAUw4iB,IACpBhq0B,EAAK,iFAAD1xG,cAAyF076B,EAAU,KACzG,EAIIZ,GAAkB,CAAC,EAOzBA,GAAgBzr6B,KAAOyr6B,GAAgBzg6B,MAAQyg6B,GAAgBxg6B,SAAWwg6B,GAAgBvg6B,OAASug6B,GAAgB1g6B,IAAM0g6B,GAAgB3g6B,IAAM2g6B,GAAgBji7B,OAASii7B,GAAgBtg6B,KAAOsg6B,GAAgB,kBAAoBA,GAAgBng6B,KAAOmg6B,GAAgBpg6B,KAAOog6B,GAAgBrg6B,MACjS,CAACuG,EAAOnX,KACN4x6B,GAAsBz65B,EAAOnX,EAAO6x6B,YACpCN,GAAcp65B,EAAOA,EAAOnX,GAC5Bqx6B,GAAoBl65B,EAAOnX,GAC3BmX,EAAM9mB,KAAO2P,EAAOmX,MACbA,GAQT855B,GAAgBrD,KAAO,CAACz25B,EAAOnX,KAC7Bux6B,GAAcp65B,EAAOA,EAAOnX,GAC5Bqx6B,GAAoBl65B,EAAOnX,GACpBmX,GAQT855B,GAAgB5u4B,MAAQ,CAACA,EAAOriC,KAC9B,MAAM8x6B,EAAazv4B,EAAMrqC,cAAc,SACjCm26B,EAAc9r4B,EAAMrqC,cAAc,UAKxC,OAJA456B,GAAsBE,EAAY9x6B,EAAO6x6B,YACzCC,EAAWzh7B,KAAO2P,EAAOmX,MACzBy65B,GAAsBzD,EAAanu6B,EAAO6x6B,YAC1CN,GAAcO,EAAYzv4B,EAAOriC,GAC1BqiC,CAAK,EAQd4u4B,GAAgBpr4B,OAAS,CAACA,EAAQ7lC,KAEhC,GADA6lC,EAAOmD,YAAc,GACjBhpC,EAAOsx6B,iBAAkB,CAC3B,MAAMt0vB,EAAc/vL,SAASC,cAAc,UAC3Cw+6B,EAAa1uvB,EAAah9K,EAAOsx6B,kBACjCt0vB,EAAYruL,MAAQ,GACpBquL,EAAYv5K,UAAW,EACvBu5K,EAAY/2K,UAAW,EACvB4/B,EAAOz4C,YAAY4vL,EACrB,CAEA,OADAu0vB,GAAc1r4B,EAAQA,EAAQ7lC,GACvB6lC,CAAM,EAOfor4B,GAAgB7E,MAAQA,IACtBA,EAAMpj4B,YAAc,GACboj4B,GAQT6E,GAAgB9E,SAAW,CAAC4F,EAAmB/x6B,KAC7C,MAAMms6B,EAAWF,EAAW9zH,IAAY,YACxCg0H,EAASx96B,MAAQ,IACjBw96B,EAASzi5B,QAAUg5G,QAAQ1iI,EAAO6x6B,YAClC,MAAMl+5B,EAAQo+5B,EAAkB/56B,cAAc,QAE9C,OADA0z6B,EAAa/35B,EAAO3T,EAAOsx6B,kBAAoBtx6B,EAAOyx6B,YAC/CtF,CAAQ,EAQjB8E,GAAgBpD,SAAW,CAACA,EAAU7t6B,KACpC4x6B,GAAsB/D,EAAU7t6B,EAAO6x6B,YACvCR,GAAoBxD,EAAU7t6B,GAC9Bux6B,GAAc1D,EAAUA,EAAU7t6B,GAMlC,MAAMgy6B,EAAYvg0B,GAAM97F,SAASwV,OAAO2d,iBAAiB2oE,GAAIztF,YAAcrO,SAASwV,OAAO2d,iBAAiB2oE,GAAI3tF,aAyBhH,OAtBA+E,YAAW,KAET,GAAI,qBAAsBsC,OAAQ,CAChC,MAAM8m5B,EAAoBt85B,SAASwV,OAAO2d,iBAAiBqvwB,KAAY91yB,OAavE,IAAIuq6B,kBAZ0BsF,KAE5B,IAAKjl7B,SAASgkF,KAAKpoC,SAASgl4B,GAC1B,OAEF,MAAMsE,EAAgBtE,EAAS7gI,YAAcglI,EAAUnE,GACnDsE,EAAgBF,EAClB95H,IAAWtgyB,MAAMxV,MAAQ,GAAHlM,OAAMg86B,EAAa,MAEzCzF,GAAoBv0H,IAAY,QAASn4yB,EAAOqC,MAClD,IAE0C8nmB,QAAQ0jU,EAAU,CAC5D/r0B,YAAY,EACZsw0B,gBAAiB,CAAC,UAEtB,KAEKvE,CAAQ,EAOjB,MAAMwE,GAAgBA,CAAClm5B,EAAUnsB,KAC/B,MAAMsy6B,EAAgB3I,IACjB2I,IAGL3F,GAAyB2F,GACzBxG,EAAiBwG,EAAety6B,EAAQ,iBAGpCA,EAAOipC,MACTwl4B,GAAqBzu6B,EAAOipC,KAAMqp4B,GAClClouB,GAAKkouB,EAAe,UAIbty6B,EAAOwF,MACd8s6B,EAActp4B,YAAchpC,EAAOwF,KACnC4kM,GAAKkouB,EAAe,UAKpB1kmB,GAAK0kmB,GAEP3B,GAAYxk5B,EAAUnsB,GAAO,EAOzBuy6B,GAAeA,CAACpm5B,EAAUnsB,KAC9B,MAAMyq6B,EAASD,IACVC,IAGLkC,GAAyBlC,GACzB54rB,GAAO44rB,EAAQzq6B,EAAOyq6B,OAAQ,SAC1Bzq6B,EAAOyq6B,QACTgE,GAAqBzu6B,EAAOyq6B,OAAQA,GAItCqB,EAAiBrB,EAAQzq6B,EAAQ,UAAS,EAOtCwy6B,GAAaA,CAACrm5B,EAAUnsB,KAC5B,MAAMww6B,EAAcD,GAAaC,YAAYl86B,IAAI63B,GAC3C1lB,EAAO+i6B,IACb,GAAK/i6B,EAAL,CAKA,GAAI+p6B,GAAexw6B,EAAOyG,OAAS+p6B,EAAY/p6B,KAI7C,OAFAgs6B,GAAWhs6B,EAAMzG,QACjByc,GAAYhW,EAAMzG,GAGpB,GAAKA,EAAOyG,MAASzG,EAAO0y6B,SAA5B,CAIA,GAAI1y6B,EAAOyG,OAAyD,IAAjDhY,OAAOgkB,KAAKi25B,GAAWz56B,QAAQ+Q,EAAOyG,MAGvD,OAFAkB,EAAM,oFAADxR,OAAqF6J,EAAOyG,KAAI,WACrGmnU,GAAKnnU,GAGP2jM,GAAK3jM,GAGLgs6B,GAAWhs6B,EAAMzG,GACjByc,GAAYhW,EAAMzG,GAGlBgs6B,GAASvl6B,EAAMzG,EAAO6r6B,WAAa7r6B,EAAO6r6B,UAAUpl6B,MAGvB0kB,OAAO2vG,WAAW,gCAC1B7oH,iBAAiB,SAAU0g6B,GAjBhD,MAFE/kmB,GAAKnnU,EAVP,CA6BiF,EAO7EgW,GAAcA,CAAChW,EAAMzG,KACzB,IAAK,MAAO4y6B,EAAUC,KAAkBpk7B,OAAO2qB,QAAQsv5B,GACjD1o6B,EAAOyG,OAASms6B,GAClBpG,GAAY/l6B,EAAMos6B,GAGtB7G,GAASvl6B,EAAMzG,EAAOyG,MAAQii6B,EAAU1o6B,EAAOyG,OAG/CqwV,GAASrwV,EAAMzG,GAGf2y6B,KAGA7G,EAAiBrl6B,EAAMzG,EAAQ,OAAO,EAIlC2y6B,GAAmCA,KACvC,MAAM5ixB,EAAQoopB,IACd,IAAKpopB,EACH,OAEF,MAAM+ixB,EAAuB3n5B,OAAO2d,iBAAiBinH,GAAOhnH,iBAAiB,oBAEvEgq4B,EAAmBhjxB,EAAM56J,iBAAiB,4DAChD,IAAK,IAAI3H,EAAI,EAAGA,EAAIul7B,EAAiBnn7B,OAAQ4B,IAC3Cul7B,EAAiBvl7B,GAAGqqB,MAAMyK,gBAAkBww5B,CAC9C,EAEIE,GAAkB,oSAMlBC,GAAgB,oJAWhBR,GAAaA,CAAChs6B,EAAMzG,KACxB,IAAKA,EAAOyG,OAASzG,EAAO0y6B,SAC1B,OAEF,IAAIQ,EAAazs6B,EAAKyiC,UAClBiq4B,EAAa,GACbnz6B,EAAO0y6B,SACTS,EAAaC,GAAYpz6B,EAAO0y6B,UACP,YAAhB1y6B,EAAOyG,MAChB0s6B,EAAaH,GACbE,EAAaA,EAAWtk7B,QAAQ,gBAAiB,KACxB,UAAhBoR,EAAOyG,KAChB0s6B,EAAaF,GACJjz6B,EAAOyG,OAMhB0s6B,EAAaC,GALW,CACtB/3sB,SAAU,IACVjzN,QAAS,IACTN,KAAM,KAEiC9H,EAAOyG,QAE9Cys6B,EAAWxk7B,SAAWyk7B,EAAWzk7B,QACnCg96B,EAAajl6B,EAAM0s6B,EACrB,EAOIr8kB,GAAWA,CAACrwV,EAAMzG,KACtB,GAAKA,EAAOqz6B,UAAZ,CAGA5s6B,EAAKoR,MAAM1W,MAAQnB,EAAOqz6B,UAC1B5s6B,EAAKoR,MAAMqJ,YAAclhB,EAAOqz6B,UAChC,IAAK,MAAMn+yB,IAAO,CAAC,0BAA2B,2BAA4B,0BAA2B,4BACnGugoB,GAAShvvB,EAAMyuH,EAAK,mBAAoBl1H,EAAOqz6B,WAEjD59K,GAAShvvB,EAAM,sBAAuB,eAAgBzG,EAAOqz6B,UAN7D,CAMuE,EAOnED,GAAcxliB,GAAW,eAAJz3Y,OAAmBsy6B,EAAY,gBAAe,MAAAty6B,OAAKy3Y,EAAO,UAM/E0liB,GAAcA,CAACnn5B,EAAUnsB,KAC7B,MAAMsuQ,EAAQ05Z,IACT15Z,IAGAtuQ,EAAOuz6B,UAIZnpuB,GAAKkkE,EAAO,IAGZA,EAAMnhR,aAAa,MAAO6S,EAAOuz6B,UACjCjlqB,EAAMnhR,aAAa,MAAO6S,EAAOwz6B,UAAY,IAG7C9G,GAAoBp+pB,EAAO,QAAStuQ,EAAOs2V,YAC3Co2kB,GAAoBp+pB,EAAO,SAAUtuQ,EAAOu2V,aAG5CjoF,EAAMxvQ,UAAY2p6B,EAAYn6pB,MAC9Bw9pB,EAAiBx9pB,EAAOtuQ,EAAQ,UAf9B4tU,GAAKt/D,GAeiC,EAG1C,IAAIv+L,IAAW,EACX0j2B,GAAa,EACbC,GAAa,EACbC,GAAW,EACXC,GAAW,EAKf,MAAMC,GAAwB9jxB,IAC5BA,EAAM99I,iBAAiB,YAAamL,IACpCnwB,SAASgkF,KAAKh/D,iBAAiB,YAAay7B,IAC5CqiH,EAAM99I,iBAAiB,UAAW1F,IAClCwjJ,EAAM99I,iBAAiB,aAAcmL,IACrCnwB,SAASgkF,KAAKh/D,iBAAiB,YAAay7B,IAC5CqiH,EAAM99I,iBAAiB,WAAY1F,GAAG,EAMlCun6B,GAA2B/jxB,IAC/BA,EAAMvlH,oBAAoB,YAAaptB,IACvCnwB,SAASgkF,KAAKzmC,oBAAoB,YAAakD,IAC/CqiH,EAAMvlH,oBAAoB,UAAWj+B,IACrCwjJ,EAAMvlH,oBAAoB,aAAcptB,IACxCnwB,SAASgkF,KAAKzmC,oBAAoB,YAAakD,IAC/CqiH,EAAMvlH,oBAAoB,WAAYj+B,GAAG,EAMrC6Q,GAAOnM,IACX,MAAM8+I,EAAQoopB,IACd,GAAIlnyB,EAAMQ,SAAWs+I,GAASy5wB,IAAU3g4B,SAAmC53B,EAAMQ,QAAS,CACxFs+D,IAAW,EACX,MAAMgk2B,EAAWC,GAAY/i6B,GAC7Bwi6B,GAAaM,EAAStn4B,QACtBin4B,GAAaK,EAASrn4B,QACtBin4B,GAAWh+5B,SAASo6I,EAAMl4I,MAAMo85B,mBAAqB,EACrDL,GAAWj+5B,SAASo6I,EAAMl4I,MAAMq85B,kBAAoB,EACpDlI,GAASj8wB,EAAO,iBAClB,GAMIriH,GAAOz8B,IACX,MAAM8+I,EAAQoopB,IACd,GAAIpouB,GAAU,CACZ,IAAI,QACFtjC,EAAO,QACPC,GACEsn4B,GAAY/i6B,GAChB8+I,EAAMl4I,MAAMo85B,iBAAmB,GAAH996B,OAAMw96B,IAAYln4B,EAAUgn4B,IAAW,MACnE1jxB,EAAMl4I,MAAMq85B,gBAAkB,GAAH/96B,OAAMy96B,IAAYln4B,EAAUgn4B,IAAW,KACpE,GAEInn6B,GAAKA,KACT,MAAMwjJ,EAAQoopB,IACdpouB,IAAW,EACXy81B,GAAYz8wB,EAAO,iBAAiB,EAOhCikxB,GAAc/i6B,IAClB,IAAIw7B,EAAU,EACZC,EAAU,EAQZ,OAPIz7B,EAAM5gB,KAAKqxR,WAAW,UACxBj1O,EAAmCx7B,EAAMw7B,QACzCC,EAAmCz7B,EAAMy7B,SAChCz7B,EAAM5gB,KAAKqxR,WAAW,WAC/Bj1O,EAAmCx7B,EAAMk8B,QAAQ,GAAGV,QACpDC,EAAmCz7B,EAAMk8B,QAAQ,GAAGT,SAE/C,CACLD,UACAC,UACD,EAOGyn4B,GAAcA,CAACho5B,EAAUnsB,KAC7B,MAAMhU,EAAYosyB,IACZrooB,EAAQoopB,IACd,GAAKnszB,GAAc+jK,EAAnB,CAMA,GAAI/vJ,EAAOwr6B,MAAO,CAChBkB,GAAoB1g7B,EAAW,QAASgU,EAAOqC,OAC/C0tJ,EAAMl4I,MAAMxV,MAAQ,OACpB,MAAMio6B,EAASD,IACXC,GACFv6wB,EAAM7jK,aAAao+6B,EAAQd,IAE/B,MACEkD,GAAoB38wB,EAAO,QAAS/vJ,EAAOqC,OAI7Cqq6B,GAAoB38wB,EAAO,UAAW/vJ,EAAOkgB,SAGzClgB,EAAOmB,QACT4uJ,EAAMl4I,MAAM1W,MAAQnB,EAAOmB,OAIzBnB,EAAO4F,aACTmqJ,EAAMl4I,MAAMjS,WAAa5F,EAAO4F,YAElCgoU,GAAKi8lB,KAGLuK,GAAarkxB,EAAO/vJ,GAChBA,EAAO61yB,YAAc71yB,EAAOwr6B,OAC9BQ,GAASj8wB,EAAO04wB,EAAY5yH,WAC5Bg+H,GAAsB9jxB,KAEtBy8wB,GAAYz8wB,EAAO04wB,EAAY5yH,WAC/Bi+H,GAAyB/jxB,GApC3B,CAqCA,EAOIqkxB,GAAeA,CAACrkxB,EAAO/vJ,KAC3B,MAAM6r6B,EAAY7r6B,EAAO6r6B,WAAa,CAAC,EAEvC97wB,EAAMjxJ,UAAY,GAAH3I,OAAMsy6B,EAAY14wB,MAAK,KAAA55J,OAAIg16B,GAAYp7wB,GAAS87wB,EAAU97wB,MAAQ,IAC7E/vJ,EAAOwr6B,OACTQ,GAAS,CAAC/+6B,SAAS4wC,gBAAiB5wC,SAASgkF,MAAOw31B,EAAY,gBAChEuD,GAASj8wB,EAAO04wB,EAAY+C,QAE5BQ,GAASj8wB,EAAO04wB,EAAYj95B,OAI9Bsg6B,EAAiB/7wB,EAAO/vJ,EAAQ,SAEE,kBAAvBA,EAAO+r6B,aAChBC,GAASj8wB,EAAO/vJ,EAAO+r6B,aAIrB/r6B,EAAOyG,MACTul6B,GAASj8wB,EAAO04wB,EAAY,QAADty6B,OAAS6J,EAAOyG,OAC7C,EAOI4t6B,GAAsBA,CAAClo5B,EAAUnsB,KACrC,MAAMs06B,EAAyB1K,IAC/B,IAAK0K,EACH,OAEF,MAAM,cACJC,EAAa,oBACbC,GACEx06B,EACCu06B,GAA0C,IAAzBA,EAAc3o7B,aAAwCS,IAAxBmo7B,GAIpDpquB,GAAKkquB,GACLA,EAAuBtr4B,YAAc,GACjCwr4B,GAAuBD,EAAc3o7B,QACvCi8G,EAAK,yIAEP0s0B,EAAczn7B,SAAQ,CAACowB,EAAM/tB,KAC3B,MAAMsl7B,EAASC,GAAkBx35B,GAKjC,GAJAo35B,EAAuBln7B,YAAYqn7B,GAC/Btl7B,IAAUql7B,GACZxI,GAASyI,EAAQhM,EAAY,yBAE3Bt56B,IAAUol7B,EAAc3o7B,OAAS,EAAG,CACtC,MAAM+o7B,EAASC,GAAkB506B,GACjCs06B,EAAuBln7B,YAAYun7B,EACrC,MAjBA/mmB,GAAK0mmB,EAkBL,EAOEI,GAAoBx35B,IACxB,MAAMu35B,EAASxn7B,SAASC,cAAc,MAGtC,OAFA8+6B,GAASyI,EAAQhM,EAAY,kBAC7BiD,EAAa+I,EAAQv35B,GACdu35B,CAAM,EAOTG,GAAoB506B,IACxB,MAAM206B,EAAS1n7B,SAASC,cAAc,MAKtC,OAJA8+6B,GAAS2I,EAAQlM,EAAY,uBACzBzo6B,EAAO606B,uBACTnI,GAAoBiI,EAAQ,QAAS306B,EAAO606B,uBAEvCF,CAAM,EAOTG,GAAcA,CAAC3o5B,EAAUnsB,KAC7B,MAAMw4G,EAAQkxzB,IACTlxzB,IAGLm0zB,GAAyBn0zB,GACzBq5H,GAAOr5H,EAAOx4G,EAAOw4G,OAASx4G,EAAO0kG,UAAW,SAC5C1kG,EAAOw4G,OACTi2zB,GAAqBzu6B,EAAOw4G,MAAOA,GAEjCx4G,EAAO0kG,YACT8T,EAAMk5zB,UAAY1x6B,EAAO0kG,WAI3Bon0B,EAAiBtzzB,EAAOx4G,EAAQ,SAAQ,EAOpC+qB,GAASA,CAACoB,EAAUnsB,KACxBm06B,GAAYho5B,EAAUnsB,GACtBkw6B,GAAgB/j5B,EAAUnsB,GAC1Bq06B,GAAoBlo5B,EAAUnsB,GAC9Bwy6B,GAAWrm5B,EAAUnsB,GACrBsz6B,GAAYnn5B,EAAUnsB,GACtB806B,GAAY3o5B,EAAUnsB,GACtB8v6B,GAAkB3j5B,EAAUnsB,GAC5Bqy6B,GAAclm5B,EAAUnsB,GACxB6u6B,GAAc1i5B,EAAUnsB,GACxBuy6B,GAAapm5B,EAAUnsB,GACvB,MAAM+vJ,EAAQoopB,IACkB,oBAArBn4yB,EAAO+06B,WAA4BhlxB,GAC5C/vJ,EAAO+06B,UAAUhlxB,GAEnBk4wB,EAAY+M,aAAax4yB,KAAK,YAAauzB,EAAM,EAM7C+rD,GAAYA,IACTqvtB,GAAYhzH,KAMf88H,GAAeA,KACnB,IAAIC,EACJ,OAAwD,QAAhDA,EAAwBpL,WAA0D,IAA1BoL,OAAmC,EAASA,EAAsB5p4B,OAAO,EAMrI6p4B,GAAYA,KAChB,IAAIC,EACJ,OAAkD,QAA1CA,EAAqBlL,WAAoD,IAAvBkL,OAAgC,EAASA,EAAmB9p4B,OAAO,EAMzH+p4B,GAAcA,KAClB,IAAIC,EACJ,OAAsD,QAA9CA,EAAuBrL,WAAwD,IAAzBqL,OAAkC,EAASA,EAAqBhq4B,OAAO,EAMjIiq4B,GAAgB9m7B,OAAOg3gB,OAAO,CAClCt5b,OAAQ,SACRik2B,SAAU,WACVvsU,MAAO,QACP2xU,IAAK,MACL364B,MAAO,UAMH464B,GAAuBxN,IACvBA,EAAYyN,eAAiBzN,EAAY0N,sBAC3C1N,EAAYyN,cAAclr4B,oBAAoB,UAAWy93B,EAAY2N,eAAgB,CACnFzr4B,QAAS893B,EAAY4N,yBAEvB5N,EAAY0N,qBAAsB,EACpC,EAQIG,GAAoBA,CAAC7N,EAAauI,EAAauF,KACnDN,GAAqBxN,GAChBuI,EAAYhF,QACfvD,EAAY2N,eAAiB9n7B,GAAK8n7B,GAAepF,EAAa1i7B,EAAGio7B,GACjE9N,EAAYyN,cAAgBlF,EAAYqF,uBAAyB1q5B,OAASgtxB,IAC1E8vH,EAAY4N,uBAAyBrF,EAAYqF,uBACjD5N,EAAYyN,cAAczj6B,iBAAiB,UAAWg25B,EAAY2N,eAAgB,CAChFzr4B,QAAS893B,EAAY4N,yBAEvB5N,EAAY0N,qBAAsB,EACpC,EAOIK,GAAWA,CAAC7m7B,EAAOwgI,KACvB,IAAIsmzB,EACJ,MAAMC,EAAoBtL,IAE1B,GAAIsL,EAAkBtq7B,OAYpB,OAXAuD,GAAgBwgI,KAGFumzB,EAAkBtq7B,OAC9BuD,EAAQ,GAGY,IAAXA,IACTA,EAAQ+m7B,EAAkBtq7B,OAAS,QAErCsq7B,EAAkB/m7B,GAAOkX,QAIM,QAAhC4v6B,EAAgB99H,WAA0C,IAAlB89H,GAA4BA,EAAc5v6B,OAAO,EAEtF8v6B,GAAsB,CAAC,aAAc,aACrCC,GAA0B,CAAC,YAAa,WAOxCR,GAAiBA,CAACpF,EAAav/5B,EAAO8k6B,KACrCvF,IAQDv/5B,EAAMol6B,aAAiC,MAAlBpl6B,EAAM++D,UAG3Bwg2B,EAAY8F,wBACdrl6B,EAAM+4P,kBAIU,UAAd/4P,EAAMxkB,IACR8p7B,GAAYtl6B,EAAOu/5B,GAIE,QAAdv/5B,EAAMxkB,IACb+p7B,GAAUvl6B,GAIH,IAAIkl6B,MAAwBC,IAAyBhvjB,SAASn2W,EAAMxkB,KAC3Egq7B,GAAaxl6B,EAAMxkB,KAIE,WAAdwkB,EAAMxkB,KACbiq7B,GAAUzl6B,EAAOu/5B,EAAauF,IAChC,EAOIQ,GAAcA,CAACtl6B,EAAOu/5B,KAE1B,IAAKvH,EAAeuH,EAAYmG,eAC9B,OAEF,MAAMx/5B,EAAQ805B,EAAW9zH,IAAYq4H,EAAYr55B,OACjD,GAAIlG,EAAMQ,QAAU0F,GAASlG,EAAMQ,kBAAkBxa,aAAega,EAAMQ,OAAOml6B,YAAcz/5B,EAAMy/5B,UAAW,CAC9G,GAAI,CAAC,WAAY,QAAQxvjB,SAASopjB,EAAYr55B,OAC5C,OAEF895B,KACAhk6B,EAAMozB,gBACR,GAMImy4B,GAAYvl6B,IAChB,MAAMinyB,EAAgBjnyB,EAAMQ,OACtByk6B,EAAoBtL,IAC1B,IAAIiM,GAAY,EAChB,IAAK,IAAIrp7B,EAAI,EAAGA,EAAI0o7B,EAAkBtq7B,OAAQ4B,IAC5C,GAAI0qzB,IAAkBg+H,EAAkB1o7B,GAAI,CAC1Cqp7B,EAAWrp7B,EACX,KACF,CAIGyjB,EAAM2iC,SAMToi4B,GAASa,GAAW,GALpBb,GAASa,EAAU,GAOrB5l6B,EAAM+4P,kBACN/4P,EAAMozB,gBAAgB,EAMlBoy4B,GAAehq7B,IACnB,MAAMs96B,EAAUQ,IACV4E,EAAgBrF,IAChBsF,EAAalF,IACbmF,EAAepF,IACrB,IAAKF,IAAYoF,IAAkBC,IAAeC,EAChD,OAGF,MAAMh+tB,EAAU,CAAC89tB,EAAeC,EAAYC,GAC5C,GAAIpi7B,SAASgpK,yBAAyBh/J,cAAgBo6M,EAAQ+1K,SAASn6X,SAASgpK,eAC9E,OAEF,MAAMhqG,EAAUkq3B,GAAoB/ujB,SAAS36X,GAAO,qBAAuB,yBAC3E,IAAIqq7B,EAAgB7p7B,SAASgpK,cAC7B,GAAK6gxB,EAAL,CAGA,IAAK,IAAItp7B,EAAI,EAAGA,EAAIu86B,EAAQx56B,SAAS3E,OAAQ4B,IAAK,CAEhD,GADAsp7B,EAAgBA,EAAc7q3B,IACzB6q3B,EACH,OAEF,GAAIA,aAAyBC,mBAAqB5L,GAAY2L,GAC5D,KAEJ,CACIA,aAAyBC,mBAC3BD,EAAczw6B,OAXhB,CAYA,EAQIqw6B,GAAYA,CAACzl6B,EAAOu/5B,EAAauF,KACjC9M,EAAeuH,EAAYwG,kBAC7B/l6B,EAAMozB,iBACN0x4B,EAAYR,GAAcC,KAC5B,EAaF,IAAIyB,GAAiB,CACnBC,mBAAoB,IAAI/i7B,QACxBgj7B,kBAAmB,IAAIhj7B,SAQzB,MAAMij7B,GAAgBA,KACpB,MAAMpr7B,EAAYosyB,IACGhjyB,MAAM/G,KAAKpB,SAASgkF,KAAK1gF,UACjCzD,SAAQ2kH,IACfA,EAAG5oE,SAAS78C,KAGZylH,EAAGg6zB,aAAa,gBAClBh6zB,EAAGtkH,aAAa,4BAA6BskH,EAAGn8G,aAAa,gBAAkB,IAEjFm8G,EAAGtkH,aAAa,cAAe,QAAO,GACtC,EAEEkq7B,GAAkBA,KACDji7B,MAAM/G,KAAKpB,SAASgkF,KAAK1gF,UACjCzD,SAAQ2kH,IACfA,EAAGg6zB,aAAa,8BAClBh6zB,EAAGtkH,aAAa,cAAeskH,EAAGn8G,aAAa,8BAAgC,IAC/Em8G,EAAGxqE,gBAAgB,8BAEnBwqE,EAAGxqE,gBAAgB,cACrB,GACA,EAIEqw4B,GAAkC,qBAAXns5B,UAA4BA,OAAOos5B,aAM1DC,GAASA,KACb,GAAIF,KAAkBjM,EAASp+6B,SAASgkF,KAAMw31B,EAAYgP,QAAS,CACjE,MAAM7k7B,EAAS3F,SAASgkF,KAAKyhuB,UAC7BzlzB,SAASgkF,KAAKp5D,MAAM+N,IAAM,GAAHzvB,QAAgB,EAAVvD,EAAW,MACxCo56B,GAAS/+6B,SAASgkF,KAAMw31B,EAAYgP,QACpCC,IACF,GAMIA,GAAiBA,KACrB,MAAM1r7B,EAAYosyB,IAClB,IAAKpsyB,EACH,OAGF,IAAI2r7B,EAIJ3r7B,EAAUklN,aAAejgM,IACvB0m6B,EAAmBC,GAAuB3m6B,EAAM,EAKlDjlB,EAAU6r7B,YAAc5m6B,IAClB0m6B,IACF1m6B,EAAMozB,iBACNpzB,EAAM+4P,kBACR,CACD,EAOG4tqB,GAAyB3m6B,IAC7B,MAAMQ,EAASR,EAAMQ,OACfzlB,EAAYosyB,IACZk6I,EAAgB3I,IACtB,SAAK396B,IAAcsm7B,KAGfwF,GAAS7m6B,KAAU8m6B,GAAO9m6B,KAG1BQ,IAAWzlB,IAGVih7B,GAAajh7B,IAAcylB,aAAkBxa,aAAkC,UAAnBwa,EAAOE,SAErD,aAAnBF,EAAOE,WAELs75B,GAAaqF,KAEfA,EAAczp4B,SAASp3B,IAGX,EASRqm6B,GAAW7m6B,GACRA,EAAMk8B,SAAWl8B,EAAMk8B,QAAQvhD,QAAyC,WAA/BqlB,EAAMk8B,QAAQ,GAAG6q4B,UAS7DD,GAAS9m6B,GACNA,EAAMk8B,SAAWl8B,EAAMk8B,QAAQvhD,OAAS,EAE3Cqs7B,GAAaA,KACjB,GAAI5M,EAASp+6B,SAASgkF,KAAMw31B,EAAYgP,QAAS,CAC/C,MAAM7k7B,EAAS+iB,SAAS1oB,SAASgkF,KAAKp5D,MAAM+N,IAAK,IACjD4m5B,GAAYv/6B,SAASgkF,KAAMw31B,EAAYgP,QACvCxq7B,SAASgkF,KAAKp5D,MAAM+N,IAAM,GAC1B34B,SAASgkF,KAAKyhuB,WAAsB,EAAV9/yB,CAC5B,GASIsl7B,GAAmBA,KACvB,MAAMC,EAAYlr7B,SAASC,cAAc,OACzCir7B,EAAUr56B,UAAY2p6B,EAAY,qBAClCx76B,SAASgkF,KAAK7jF,YAAY+q7B,GAC1B,MAAM17D,EAAiB07D,EAAUrr4B,wBAAwBzqC,MAAQ816B,EAAU1mqB,YAE3E,OADAxkR,SAASgkF,KAAK/iF,YAAYiq7B,GACnB17D,CAAc,EAOvB,IAAI27D,GAAsB,KAK1B,MAAMC,GAA8BC,IAEN,OAAxBF,KAIAnr7B,SAASgkF,KAAKy0yB,aAAev61B,OAAO+vH,aAAuC,WAAxBo9xB,KAGrDF,GAAsBzi6B,SAASwV,OAAO2d,iBAAiB77C,SAASgkF,MAAMloC,iBAAiB,kBACvF97C,SAASgkF,KAAKp5D,MAAMiL,aAAe,GAAH3sB,OAAMii7B,GAAsBF,KAAkB,MAChF,EAEIK,GAAkCA,KACV,OAAxBH,KACFnr7B,SAASgkF,KAAKp5D,MAAMiL,aAAe,GAAH3sB,OAAMii7B,GAAmB,MACzDA,GAAsB,KACxB,EASF,SAASI,GAAyBrs5B,EAAUngC,EAAWq86B,EAAaoQ,GAC9DlN,IACFmN,GAA0Bvs5B,EAAUss5B,IAEpCrQ,EAAqBC,GAAa/s4B,MAAK,IAAMo94B,GAA0Bvs5B,EAAUss5B,KACjFhD,GAAqBxN,IAKnBqP,IACFtr7B,EAAUmB,aAAa,QAAS,2BAChCnB,EAAUi7C,gBAAgB,SAC1Bj7C,EAAUk9C,UAAY,IAEtBl9C,EAAU02C,SAER0o4B,MACFmN,KACAN,KACAZ,MAEFsB,IACF,CAKA,SAASA,KACPnM,GAAY,CAACv/6B,SAAS4wC,gBAAiB5wC,SAASgkF,MAAO,CAACw31B,EAAY6C,MAAO7C,EAAY,eAAgBA,EAAY,eAAgBA,EAAY,gBACjJ,CAOA,SAAS5kU,GAAM+0U,GACbA,EAAeC,GAAoBD,GACnC,MAAM1B,EAAqBD,GAAeC,mBAAmB5i7B,IAAI/I,MAC3Dkt7B,EAAWK,GAAkBvt7B,MAC/BA,KAAKwt7B,kBAEFH,EAAaI,cAChBC,GAAsB1t7B,MACtB2r7B,EAAmB0B,IAEZH,GAETvB,EAAmB0B,EAEvB,CACA,MAAME,GAAoB3s5B,IACxB,MAAM4jI,EAAQoopB,IACd,IAAKpopB,EACH,OAAO,EAET,MAAMygxB,EAAcD,GAAaC,YAAYl86B,IAAI63B,GACjD,IAAKqk5B,GAAenF,EAASt7wB,EAAOygxB,EAAY0I,UAAUnpxB,OACxD,OAAO,EAETy8wB,GAAYz8wB,EAAOygxB,EAAY3E,UAAU97wB,OACzCi8wB,GAASj8wB,EAAOygxB,EAAY0I,UAAUnpxB,OACtC,MAAMqgxB,EAAWh4I,IAIjB,OAHAo0I,GAAY4D,EAAUI,EAAY3E,UAAUuE,UAC5CpE,GAASoE,EAAUI,EAAY0I,UAAU9I,UACzC+I,GAAqBht5B,EAAU4jI,EAAOygxB,IAC/B,CAAI,EAMb,SAAS4I,GAAczx6B,GACrB,MAAMyx6B,EAAgBnC,GAAeE,kBAAkB7i7B,IAAI/I,MAC3D0t7B,GAAsB1t7B,MAClB6t7B,GAEFA,EAAczx6B,EAElB,CAKA,MAAMsx6B,GAAwB9s5B,IACxBA,EAAS4s5B,2BACJ5s5B,EAAS4s5B,kBAEXxI,GAAaC,YAAYl86B,IAAI63B,IAChCA,EAASu0W,WAEb,EAOIm4iB,GAAsBD,GAEE,qBAAjBA,EACF,CACLS,aAAa,EACbC,UAAU,EACVN,aAAa,GAGVvq7B,OAAOD,OAAO,CACnB6q7B,aAAa,EACbC,UAAU,EACVN,aAAa,GACZJ,GAQCO,GAAuBA,CAACht5B,EAAU4jI,EAAOygxB,KAC7C,IAAI+I,EACJ,MAAMvt7B,EAAYosyB,IAEZohJ,EAAuBtM,GAAgBn9wB,GACR,oBAA1BygxB,EAAYiJ,WACrBjJ,EAAYiJ,UAAU1pxB,GAE+B,QAAtDwpxB,EAAwBtR,EAAY+M,oBAAoD,IAA1BuE,GAAoCA,EAAsB/8yB,KAAK,YAAauzB,GACvIypxB,EACFE,GAAavt5B,EAAU4jI,EAAO/jK,EAAWwk7B,EAAYnI,YAAamI,EAAYiI,UAG9ED,GAAyBrs5B,EAAUngC,EAAWwk7B,EAAYnI,YAAamI,EAAYiI,SACrF,EAUIiB,GAAeA,CAACvt5B,EAAU4jI,EAAO/jK,EAAWq86B,EAAaoQ,KAC7DxQ,EAAY0R,+BAAiCnB,GAAyBlk6B,KAAK,KAAM6X,EAAUngC,EAAWq86B,EAAaoQ,GAInH,MAAMmB,EAA6B,SAAU9r7B,GAEzC,IAAI+r7B,EADF/r7B,EAAE2jB,SAAWs+I,IAE0D,QAAxE8pxB,EAAwB5R,EAAY0R,sCAAsE,IAA1BE,GAAoCA,EAAsBxk7B,KAAK4y6B,UACzIA,EAAY0R,+BACnB5pxB,EAAMvlH,oBAAoB,eAAgBov4B,GAC1C7pxB,EAAMvlH,oBAAoB,gBAAiBov4B,GAE/C,EACA7pxB,EAAM99I,iBAAiB,eAAgB2n6B,GACvC7pxB,EAAM99I,iBAAiB,gBAAiB2n6B,EAA2B,EAO/DlB,GAA4BA,CAACvs5B,EAAUss5B,KAC3C5v5B,YAAW,KACT,IAAIix5B,EACoB,oBAAbrB,GACTA,EAASnk6B,KAAK6X,EAASnsB,OAAvBy46B,GAEsD,QAAvDqB,EAAyB7R,EAAY+M,oBAAqD,IAA3B8E,GAAqCA,EAAuBt9yB,KAAK,YAE7HrwG,EAASu0W,UACXv0W,EAASu0W,UACX,GACA,EASEq5iB,GAAcC,IAClB,IAAIjqxB,EAAQoopB,IAKZ,GAJKpopB,GACH,IAAIkqxB,GAENlqxB,EAAQoopB,KACHpopB,EACH,OAEF,MAAMu6wB,EAASD,IACXkB,IACF39lB,GAAK47lB,KAEL0Q,GAAcnqxB,EAAOiqxB,GAEvB5vuB,GAAKkguB,GACLv6wB,EAAM5iK,aAAa,eAAgB,QACnC4iK,EAAM5iK,aAAa,YAAa,QAChC4iK,EAAM1pJ,OAAO,EAOT6z6B,GAAgBA,CAACnqxB,EAAOiqxB,KAC5B,MAAMjQ,EAAUQ,IACVD,EAASD,IACVN,GAAYO,KAGZ0P,GAAmB7O,GAAYrB,OAClCkQ,EAAkBlQ,KAEpB1/tB,GAAK2/tB,GACDiQ,IACFpsmB,GAAKosmB,GACL1P,EAAOn96B,aAAa,yBAA0B6s7B,EAAgBl76B,WAC9Dir6B,EAAQ796B,aAAao+6B,EAAQ0P,IAE/BhO,GAAS,CAACj8wB,EAAOg6wB,GAAUtB,EAAYj8L,SAAQ,EAO3C2tM,GAA6BA,CAAChu5B,EAAUnsB,KACvB,WAAjBA,EAAOmX,OAAuC,UAAjBnX,EAAOmX,MACtCij6B,GAAmBju5B,EAAUnsB,GACpB,CAAC,OAAQ,QAAS,SAAU,MAAO,YAAY22R,MAAKnpS,GAAKA,IAAMwS,EAAOmX,UAAW+x5B,EAAelp6B,EAAO6x6B,aAAex4iB,EAAUr5X,EAAO6x6B,eAChJkI,GAAYjQ,KACZuQ,GAAiBlu5B,EAAUnsB,GAC7B,EAQIs66B,GAAgBA,CAACnu5B,EAAUqk5B,KAC/B,MAAMr55B,EAAQgV,EAASou5B,WACvB,IAAKpj6B,EACH,OAAO,KAET,OAAQq55B,EAAYr55B,OAClB,IAAK,WACH,OAAOqj6B,GAAiBrj6B,GAC1B,IAAK,QACH,OAAOsj6B,GAActj6B,GACvB,IAAK,OACH,OAAOuj6B,GAAavj6B,GACtB,QACE,OAAOq55B,EAAYmK,cAAgBxj6B,EAAMxoB,MAAMD,OAASyoB,EAAMxoB,MAClE,EAOI6r7B,GAAmBrj6B,GAASA,EAAMuS,QAAU,EAAI,EAMhD+w5B,GAAgBtj6B,GAASA,EAAMuS,QAAUvS,EAAMxoB,MAAQ,KAMvD+r7B,GAAevj6B,GAASA,EAAMyj6B,OAASzj6B,EAAMyj6B,MAAMhv7B,OAA4C,OAAnCurB,EAAM7hB,aAAa,YAAuB6hB,EAAMyj6B,MAAQzj6B,EAAMyj6B,MAAM,GAAK,KAMrIR,GAAqBA,CAACju5B,EAAUnsB,KACpC,MAAM+vJ,EAAQoopB,IACd,IAAKpopB,EACH,OAKF,MAAM8qxB,EAAsBnj6B,IACL,WAAjB1X,EAAOmX,MACT2j6B,GAAsB/qxB,EAAOgrxB,GAAmBrj6B,GAAe1X,GACrC,UAAjBA,EAAOmX,OAChB6j6B,GAAqBjrxB,EAAOgrxB,GAAmBrj6B,GAAe1X,EAChE,EAEEkp6B,EAAelp6B,EAAO0X,eAAiB2hX,EAAUr5X,EAAO0X,eAC1Dqi6B,GAAYjQ,KACZV,EAAUpp6B,EAAO0X,cAAc4jB,MAAK5jB,IAClCyU,EAAS8u5B,cACTJ,EAAoBnj6B,EAAa,KAEK,kBAAxB1X,EAAO0X,aACvBmj6B,EAAoB766B,EAAO0X,cAE3B/P,EAAM,yEAADxR,cAAiF6J,EAAO0X,cAC/F,EAOI2i6B,GAAmBA,CAAClu5B,EAAUnsB,KAClC,MAAMmX,EAAQgV,EAASou5B,WAClBpj6B,IAGLy2T,GAAKz2T,GACLiy5B,EAAUpp6B,EAAO6x6B,YAAYv24B,MAAKu24B,IAChC165B,EAAMxoB,MAAyB,WAAjBqR,EAAOmX,MAAqB,GAAHhhB,OAAMggB,WAAW075B,IAAe,GAAC,GAAA176B,OAAQ076B,GAChFznuB,GAAKjzL,GACLA,EAAM9Q,QACN8lB,EAAS8u5B,aAAa,IACrBztyB,OAAMzyG,IACPpzB,EAAM,gCAADxR,OAAiC4kC,IACtC5jB,EAAMxoB,MAAQ,GACdy7M,GAAKjzL,GACLA,EAAM9Q,QACN8lB,EAAS8u5B,aAAa,IACtB,EAQJ,SAASH,GAAsB/qxB,EAAOr4I,EAAc1X,GAClD,MAAM6lC,EAAS4m4B,GAAsB18wB,EAAO04wB,EAAY5i4B,QACxD,IAAKA,EACH,OAOF,MAAMq14B,EAAeA,CAAC9q7B,EAAQ+q7B,EAAaC,KACzC,MAAMx9S,EAAS3woB,SAASC,cAAc,UACtC0woB,EAAOjvoB,MAAQys7B,EACf1P,EAAa9tS,EAAQu9S,GACrBv9S,EAAO33nB,SAAWo16B,GAAWD,EAAap76B,EAAO6x6B,YACjDzh7B,EAAOhD,YAAYwwoB,EAAO,EAE5BlmnB,EAAa5qB,SAAQwu7B,IACnB,MAAMF,EAAcE,EAAY,GAC1BH,EAAcG,EAAY,GAKhC,GAAIlm7B,MAAMiI,QAAQ896B,GAAc,CAE9B,MAAMI,EAAWtu7B,SAASC,cAAc,YACxCqu7B,EAAS5n6B,MAAQyn6B,EACjBG,EAAS936B,UAAW,EACpBoiC,EAAOz4C,YAAYmu7B,GACnBJ,EAAYru7B,SAAQwgC,GAAK4t5B,EAAaK,EAAUju5B,EAAE,GAAIA,EAAE,KAC1D,MAEE4t5B,EAAar14B,EAAQs14B,EAAaC,EACpC,IAEFv14B,EAAOx/B,OACT,CAOA,SAAS206B,GAAqBjrxB,EAAOr4I,EAAc1X,GACjD,MAAMos6B,EAAQK,GAAsB18wB,EAAO04wB,EAAY2D,OACvD,IAAKA,EACH,OAEF105B,EAAa5qB,SAAQwu7B,IACnB,MAAME,EAAaF,EAAY,GACzBG,EAAaH,EAAY,GACzBI,EAAazu7B,SAASC,cAAc,SACpCyu7B,EAAoB1u7B,SAASC,cAAc,SACjDwu7B,EAAWrr7B,KAAO,QAClBqr7B,EAAWjl7B,KAAOgy6B,EAAY2D,MAC9BsP,EAAW/s7B,MAAQ6s7B,EACfH,GAAWG,EAAYx76B,EAAO6x6B,cAChC6J,EAAWhy5B,SAAU,GAEvB,MAAM/V,EAAQ1mB,SAASC,cAAc,QACrCw+6B,EAAa/35B,EAAO8n6B,GACpB9n6B,EAAM7U,UAAY2p6B,EAAY905B,MAC9Bgo6B,EAAkBvu7B,YAAYsu7B,GAC9BC,EAAkBvu7B,YAAYumB,GAC9By45B,EAAMh/6B,YAAYuu7B,EAAkB,IAEtC,MAAMC,EAASxP,EAAMj36B,iBAAiB,SAClCym7B,EAAOhw7B,QACTgw7B,EAAO,GAAGv16B,OAEd,CASA,MAAM006B,GAAqBrj6B,IAEzB,MAAM9Z,EAAS,GAoBf,OAnBI8Z,aAAwB85W,IAC1B95W,EAAa5qB,SAAQ,CAAC6B,EAAOlC,KAC3B,IAAIov7B,EAAiBlt7B,EACS,kBAAnBkt7B,IAETA,EAAiBd,GAAmBc,IAEtCj+6B,EAAOzR,KAAK,CAACM,EAAKov7B,GAAgB,IAGpCpt7B,OAAOgkB,KAAKiF,GAAc5qB,SAAQL,IAChC,IAAIov7B,EAAiBnk6B,EAAajrB,GACJ,kBAAnBov7B,IAETA,EAAiBd,GAAmBc,IAEtCj+6B,EAAOzR,KAAK,CAACM,EAAKov7B,GAAgB,IAG/Bj+6B,CAAM,EAQTy96B,GAAaA,CAACD,EAAavJ,MACtBA,GAAcA,EAAW/46B,aAAesi7B,EAAYti7B,WAMzDgj7B,GAA2B3v5B,IAC/B,MAAMqk5B,EAAcD,GAAaC,YAAYl86B,IAAI63B,GACjDA,EAAS4v5B,iBACLvL,EAAYr55B,MACd6k6B,GAA6B7v5B,EAAU,WAEvC694B,GAAQ794B,GAAU,EACpB,EAMI8v5B,GAAwB9v5B,IAC5B,MAAMqk5B,EAAcD,GAAaC,YAAYl86B,IAAI63B,GACjDA,EAAS4v5B,iBACLvL,EAAY0L,uBACdF,GAA6B7v5B,EAAU,QAEvCg+4B,GAAKh+4B,GAAU,EACjB,EAOIgw5B,GAA0BA,CAAChw5B,EAAU4p5B,KACzC5p5B,EAAS4v5B,iBACThG,EAAYR,GAAcpp2B,OAAO,EAO7B6v2B,GAA+BA,CAAC7v5B,EAAU97B,KAC9C,MAAMmg7B,EAAcD,GAAaC,YAAYl86B,IAAI63B,GACjD,IAAKqk5B,EAAYr55B,MAEf,YADAxP,EAAM,0EAADxR,OAA2Eyy6B,EAAsBv46B,KAGxG,MAAM8mB,EAAQgV,EAASou5B,WACjB1I,EAAayI,GAAcnu5B,EAAUqk5B,GACvCA,EAAY4L,eACdC,GAAqBlw5B,EAAU0l5B,EAAYxh7B,GAClC8mB,IAAUA,EAAMml6B,iBACzBnw5B,EAASow5B,gBACTpw5B,EAASqw5B,sBAAsBhM,EAAYiM,mBAAqBtl6B,EAAMsl6B,oBACpD,SAATps7B,EACT856B,GAAKh+4B,EAAU0l5B,GAEf7H,GAAQ794B,EAAU0l5B,EACpB,EAQIwK,GAAuBA,CAAClw5B,EAAU0l5B,EAAYxh7B,KAClD,MAAMmg7B,EAAcD,GAAaC,YAAYl86B,IAAI63B,GACjDA,EAASuw5B,eACiB/xzB,QAAQ3uF,UAAUV,MAAK,IAAM8t4B,EAAUoH,EAAY4L,eAAevK,EAAYrB,EAAYiM,sBAClGnh5B,MAAKmh5B,IACrBtw5B,EAASow5B,gBACTpw5B,EAASww5B,cACLF,EACFtw5B,EAASqw5B,sBAAsBC,GACb,SAATps7B,EACT856B,GAAKh+4B,EAAU0l5B,GAEf7H,GAAQ794B,EAAU0l5B,EACpB,GACA,EAOE1H,GAAOA,CAACh+4B,EAAUx9B,KACtB,MAAM6h7B,EAAcD,GAAaC,YAAYl86B,IAAI63B,QAAY9/B,GACzDmk7B,EAAYoM,kBACd7C,GAAY7P,KAEVsG,EAAYqM,SACd1w5B,EAAS4s5B,mBAAoB,EACNpuzB,QAAQ3uF,UAAUV,MAAK,IAAM8t4B,EAAUoH,EAAYqM,QAAQlu7B,EAAO6h7B,EAAYiM,sBACtFnh5B,MAAKwh5B,KACG,IAAjBA,GACF3w5B,EAAS8u5B,cACThC,GAAsB9s5B,IAEtBA,EAAS03kB,MAAM,CACby1U,UAAU,EACV3q7B,MAA+B,qBAAjBmu7B,EAA+Bnu7B,EAAQmu7B,GAEzD,IACCtvyB,OAAM7lI,GAASo16B,GAAW5w5B,QAAY9/B,EAAWsb,MAEpDwkB,EAAS03kB,MAAM,CACby1U,UAAU,EACV3q7B,SAEJ,EAOIqu7B,GAAcA,CAAC7w5B,EAAUx9B,KAC7Bw9B,EAAS03kB,MAAM,CACbw1U,aAAa,EACb1q7B,SACA,EAQEou7B,GAAaA,CAAC5w5B,EAAUxkB,KAC5BwkB,EAASit5B,cAAczx6B,EAAM,EAQzBqi6B,GAAUA,CAAC794B,EAAUx9B,KACzB,MAAM6h7B,EAAcD,GAAaC,YAAYl86B,IAAI63B,QAAY9/B,GACzDmk7B,EAAYyM,qBACdlD,KAEEvJ,EAAY0M,YACd/w5B,EAAS8h5B,yBACT9h5B,EAAS4s5B,mBAAoB,EACHpuzB,QAAQ3uF,UAAUV,MAAK,IAAM8t4B,EAAUoH,EAAY0M,WAAWvu7B,EAAO6h7B,EAAYiM,sBACzFnh5B,MAAK6h5B,IACjBhS,GAAYtB,OAA+C,IAApBsT,GACzChx5B,EAAS8u5B,cACThC,GAAsB9s5B,IAEtB6w5B,GAAY7w5B,EAAqC,qBAApBgx5B,EAAkCxu7B,EAAQwu7B,EACzE,IACC3vyB,OAAM7lI,GAASo16B,GAAW5w5B,QAAY9/B,EAAWsb,MAEpDq16B,GAAY7w5B,EAAUx9B,EACxB,EAMF,SAASss7B,KAEP,MAAMzK,EAAcD,GAAaC,YAAYl86B,IAAI/I,MACjD,IAAKil7B,EACH,OAEF,MAAMC,EAAWF,GAAaE,SAASn86B,IAAI/I,MAC3CqiV,GAAK6imB,EAASnG,QACViB,IACEiF,EAAY/p6B,MACd2jM,GAAKo/tB,KAGP4T,GAAkB3M,GAEpBjE,GAAY,CAACiE,EAAS1gxB,MAAO0gxB,EAAS1G,SAAUtB,EAAYj8L,SAC5DikM,EAAS1gxB,MAAM9oH,gBAAgB,aAC/Bwp4B,EAAS1gxB,MAAM9oH,gBAAgB,gBAC/Bwp4B,EAAStB,cAAc1r6B,UAAW,EAClCgt6B,EAASrB,WAAW3r6B,UAAW,EAC/Bgt6B,EAASpB,aAAa5r6B,UAAW,CACnC,CACA,MAAM256B,GAAoB3M,IACxB,MAAMuJ,EAAkBvJ,EAAS1gxB,MAAMstxB,uBAAuB5M,EAASnG,OAAOh16B,aAAa,2BACvF0k7B,EAAgBpu7B,OAClBw+M,GAAK4vuB,EAAgB,GAAI,gBAChBhN,MACTp/lB,GAAK6imB,EAAS1G,QAChB,EAQF,SAASwQ,KACP,MAAM/J,EAAcD,GAAaC,YAAYl86B,IAAI/I,MAC3Ckl7B,EAAWF,GAAaE,SAASn86B,IAAI/I,MAC3C,OAAKkl7B,EAGExE,EAAWwE,EAAS1gxB,MAAOygxB,EAAYr55B,OAFrC,IAGX,CAOA,SAASmm6B,GAAmBnx5B,EAAUklL,EAAS5tM,GAC7C,MAAMgt6B,EAAWF,GAAaE,SAASn86B,IAAI63B,GAC3CklL,EAAQvkN,SAAQge,IACd2l6B,EAAS3l6B,GAAQrH,SAAWA,CAAQ,GAExC,CAMA,SAAS856B,GAAiBpm6B,EAAO1T,GAC/B,MAAMssJ,EAAQoopB,IACd,GAAKpopB,GAAU54I,EAGf,GAAmB,UAAfA,EAAM9mB,KAAkB,CAE1B,MAAMur7B,EAAS7rxB,EAAM56J,iBAAiB,UAADgB,OAAWsy6B,EAAY2D,MAAK,OACjE,IAAK,IAAI5+6B,EAAI,EAAGA,EAAIou7B,EAAOhw7B,OAAQ4B,IACjCou7B,EAAOpu7B,GAAGiW,SAAWA,CAEzB,MACE0T,EAAM1T,SAAWA,CAErB,CAMA,SAAS846B,KACPe,GAAmB/x7B,KAAM,CAAC,gBAAiB,aAAc,iBAAiB,EAC5E,CAMA,SAASww7B,KACPuB,GAAmB/x7B,KAAM,CAAC,gBAAiB,aAAc,iBAAiB,EAC5E,CAMA,SAASox7B,KACPY,GAAiBhy7B,KAAKgv7B,YAAY,EACpC,CAMA,SAASmC,KACPa,GAAiBhy7B,KAAKgv7B,YAAY,EACpC,CAQA,SAASiC,GAAsB706B,GAC7B,MAAM8o6B,EAAWF,GAAaE,SAASn86B,IAAI/I,MACrCyU,EAASuw6B,GAAaC,YAAYl86B,IAAI/I,MAC5Cmg7B,EAAa+E,EAASgM,kBAAmB906B,GACzC8o6B,EAASgM,kBAAkB396B,UAAY2p6B,EAAY,sBAC/Czo6B,EAAO+r6B,aAAe/r6B,EAAO+r6B,YAAY0Q,mBAC3CzQ,GAASyE,EAASgM,kBAAmBz86B,EAAO+r6B,YAAY0Q,mBAE1DryuB,GAAKqmuB,EAASgM,mBACd,MAAMtl6B,EAAQ5rB,KAAKgv7B,WACfpj6B,IACFA,EAAMhqB,aAAa,eAAgB,QACnCgqB,EAAMhqB,aAAa,mBAAoBs76B,EAAY,uBACnD4D,EAAWl15B,GACX605B,GAAS705B,EAAOsx5B,EAAY+U,YAEhC,CAOA,SAASvP,KACP,MAAMwC,EAAWF,GAAaE,SAASn86B,IAAI/I,MACvCkl7B,EAASgM,mBACX7umB,GAAK6imB,EAASgM,mBAEhB,MAAMtl6B,EAAQ5rB,KAAKgv7B,WACfpj6B,IACFA,EAAM8vB,gBAAgB,gBACtB9vB,EAAM8vB,gBAAgB,oBACtBul4B,GAAYr15B,EAAOsx5B,EAAY+U,YAEnC,CAEA,MAAMC,GAAgB,CACpBjl0B,MAAO,GACP9T,UAAW,GACXl/F,KAAM,GACNyjC,KAAM,GACNwh4B,OAAQ,GACRhk6B,UAAMpa,EACNgn7B,eAAWhn7B,EACXqm7B,cAAUrm7B,EACV41G,cAAU51G,EACVm/6B,OAAO,EACP31H,WAAW,EACX7yqB,WAAW,EACX/iI,MAAO,QACP4r6B,UAAW,CACT97wB,MAAO,aACPqgxB,SAAU,sBACV3p6B,KAAM,mBAERyy6B,UAAW,CACTnpxB,MAAO,aACPqgxB,SAAU,sBACV3p6B,KAAM,mBAERsl6B,YAAa,CAAC,EACdt65B,OAAQ,OACRtQ,WAAO9U,EACP+j7B,UAAU,EACVsN,YAAY,EACZC,mBAAmB,EACnB3G,gBAAgB,EAChBL,eAAe,EACfL,wBAAwB,EACxBT,wBAAwB,EACxB/G,mBAAmB,EACnBC,gBAAgB,EAChBC,kBAAkB,EAClBkO,gBAAY7w7B,EACZww7B,aAASxw7B,EACTux7B,kBAAmB,KACnBC,uBAAwB,GACxBnO,wBAAoBrj7B,EACpByx7B,eAAgB,KAChBC,oBAAqB,GACrBpO,qBAAiBtj7B,EACjB2x7B,iBAAkB,SAClBC,sBAAuB,GACvBrO,uBAAmBvj7B,EACnBoj7B,gBAAgB,EAChBD,gBAAgB,EAChB0O,cAAc,EACdC,WAAW,EACXC,aAAa,EACb/V,aAAa,EACb2H,iBAAiB,EACjBD,gBAAiB,UACjBE,qBAAsB,oBACtBf,WAAY,GACZ+N,qBAAqB,EACrBL,kBAAkB,EAClBrJ,cAAUln7B,EACViqW,gBAAYjqW,EACZkqW,iBAAalqW,EACbmn7B,SAAU,GACV344B,WAAOxuC,EACPih7B,kBAAkB,EAClBjr6B,WAAOhW,EACP6zB,aAAS7zB,EACTuZ,gBAAYvZ,EACZ8qB,WAAO9qB,EACPil7B,iBAAkB,GAClBG,WAAY,GACZI,WAAY,GACZn65B,aAAc,CAAC,EACfy55B,gBAAgB,EAChBwJ,eAAe,EACf7J,gBAAiB,CAAC,EAClBsL,oBAAgB/v7B,EAChB6v7B,wBAAwB,EACxBO,uBAAmBpw7B,EACnB0gQ,MAAM,EACNh9P,SAAU,SACVwk7B,cAAe,GACfC,yBAAqBno7B,EACrBwo7B,2BAAuBxo7B,EACvBgy7B,cAAUhy7B,EACViy7B,aAASjy7B,EACT0o7B,eAAW1o7B,EACXot7B,eAAWpt7B,EACXos7B,cAAUps7B,EACVky7B,gBAAYly7B,EACZmy7B,kBAAkB,GAEdC,GAAkB,CAAC,iBAAkB,oBAAqB,aAAc,iBAAkB,wBAAyB,oBAAqB,mBAAoB,uBAAwB,kBAAmB,QAAS,yBAA0B,qBAAsB,oBAAqB,sBAAuB,cAAe,sBAAuB,kBAAmB,iBAAkB,WAAY,aAAc,YAAa,SAAU,YAAa,OAAQ,OAAQ,YAAa,WAAY,WAAY,cAAe,WAAY,aAAc,aAAc,UAAW,gBAAiB,cAAe,iBAAkB,mBAAoB,kBAAmB,oBAAqB,iBAAkB,OAAQ,QAAS,YAAa,QAAS,aAGntBC,GAAmB,CACvB/H,mBAAetq7B,GAEXsy7B,GAA0B,CAAC,oBAAqB,gBAAiB,WAAY,YAAa,eAAgB,YAAa,cAAe,cAAe,aAAc,0BAQnKC,GAAmBC,GAChBpw7B,OAAO9B,UAAUsa,eAAe5R,KAAKoo7B,GAAeoB,GASvDC,GAAuBD,IACoB,IAAxCJ,GAAgBxv7B,QAAQ4v7B,GAS3BE,GAAwBF,GACrBH,GAAiBG,GAMpBG,GAAsB76sB,IACrBy6sB,GAAiBz6sB,IACpBt8H,EAAK,sBAAD1xG,OAAuBguO,EAAK,KAClC,EAMI86sB,GAA2B96sB,IAC3Bw6sB,GAAwBv3jB,SAASjjJ,IACnCt8H,EAAK,kBAAD1xG,OAAmBguO,EAAK,iCAC9B,EAMI+6sB,GAA2B/6sB,IAC/B,MAAMg7sB,EAAeJ,GAAsB56sB,GACvCg7sB,GACFrW,EAAqB3ksB,EAAOg7sB,EAC9B,EAQIC,GAAwBp/6B,KACJ,IAApBA,EAAOow6B,UAAsBpw6B,EAAO296B,mBACtC910B,EAAK,mFAEH7nG,EAAOC,QAAU,CAAC,QAAS,OAAQ,OAAQ,cAAcmnX,SAASpnX,EAAOC,QAC3E4nG,EAAK,kBAAD1xG,OAAmB6J,EAAOC,MAAK,yDAErC,IAAK,MAAMkkO,KAASnkO,EAClBg/6B,GAAoB76sB,GAChBnkO,EAAOwr6B,OACTyT,GAAyB96sB,GAE3B+6sB,GAAyB/6sB,EAC3B,EAQF,SAASr6L,GAAO9pC,GACd,MAAMhU,EAAYosyB,IACZrooB,EAAQoopB,IACRq4H,EAAcD,GAAaC,YAAYl86B,IAAI/I,MACjD,IAAKwkK,GAASs7wB,EAASt7wB,EAAOygxB,EAAY0I,UAAUnpxB,OAElD,YADAloD,EAAK,8IAGP,MAAMw30B,EAAuBC,GAAkBt/6B,GACzCu/6B,EAAgB9w7B,OAAOD,OAAO,CAAC,EAAGgi7B,EAAa6O,GACrDD,GAAsBG,GACtBvz7B,EAAUsu6B,QAAoB,WAAIilB,EAAct/6B,MAChD8qB,GAAOx/B,KAAMg07B,GACbhP,GAAaC,YAAYj86B,IAAIhJ,KAAMg07B,GACnC9w7B,OAAOiqC,iBAAiBntC,KAAM,CAC5ByU,OAAQ,CACNrR,MAAOF,OAAOD,OAAO,CAAC,EAAGjD,KAAKyU,OAAQA,GACtCs5B,UAAU,EACV55B,YAAY,IAGlB,CAMA,MAAM4/6B,GAAoBt/6B,IACxB,MAAMq/6B,EAAuB,CAAC,EAQ9B,OAPA5w7B,OAAOgkB,KAAKzS,GAAQlT,SAAQq3O,IACtB26sB,GAAqB36sB,GACvBk7sB,EAAqBl7sB,GAASnkO,EAAOmkO,GAErCt8H,EAAK,gCAAD1xG,OAAiCguO,GACvC,IAEKk7sB,CAAoB,EAM7B,SAAS3+iB,KACP,MAAM+viB,EAAWF,GAAaE,SAASn86B,IAAI/I,MACrCil7B,EAAcD,GAAaC,YAAYl86B,IAAI/I,MAC5Cil7B,GAMDC,EAAS1gxB,OAASk4wB,EAAY0R,iCAChC1R,EAAY0R,wCACL1R,EAAY0R,gCAEiB,oBAA3BnJ,EAAY+N,YACrB/N,EAAY+N,aAEdtW,EAAY+M,aAAax4yB,KAAK,cAC9BgjzB,GAAYj07B,OAbVk07B,GAAgBl07B,KAcpB,CAKA,MAAMi07B,GAAcrz5B,IAClBsz5B,GAAgBtz5B,UAETA,EAASnsB,cAETio6B,EAAY2N,sBACZ3N,EAAYyN,qBAEZzN,EAAY+F,eAAe,EAM9ByR,GAAkBtz5B,IAElBA,EAAS4s5B,mBACX2G,GAAcnP,GAAcpk5B,GAC5BA,EAAS4s5B,mBAAoB,IAE7B2G,GAAczI,GAAgB9q5B,GAC9Buz5B,GAAcnP,GAAcpk5B,UACrBA,EAAS4s5B,yBAET5s5B,EAAS4v5B,sBACT5v5B,EAASow5B,qBACTpw5B,EAASou5B,gBACTpu5B,EAASuw5B,oBACTvw5B,EAASww5B,mBACTxw5B,EAAS8u5B,mBACT9u5B,EAASwz5B,sBACTxz5B,EAASqw5B,6BACTrw5B,EAAS8h5B,8BACT9h5B,EAAS03kB,aACT13kB,EAASyz5B,kBACTzz5B,EAAS0z5B,kBACT1z5B,EAAS2z5B,kBACT3z5B,EAASit5B,qBACTjt5B,EAAS2d,cACT3d,EAASu0W,SAClB,EAOIg/iB,GAAgBA,CAACvi7B,EAAKgvB,KAC1B,IAAK,MAAM3+B,KAAK2P,EACdA,EAAI3P,GAAG4wZ,OAAOjyX,EAChB,EAGF,IAAI4z5B,GAA+Btx7B,OAAOg3gB,OAAO,CAC/Cxrf,UAAW,KACXymX,SAAUA,GACVmjO,MAAOA,GACPg8U,WAAYh8U,GACZ+7U,WAAY/7U,GACZi8U,WAAYj8U,GACZk4U,eAAgBA,GAChBW,aAAcA,GACdiD,eAAgB1E,GAChBsB,cAAeA,GACfI,YAAaA,GACbpC,SAAUA,GACVtB,sBAAuBA,GACvBgC,YAAaA,GACb7B,cAAeA,GACfnL,uBAAwBA,GACxBuO,sBAAuBA,GACvB1y4B,OAAQA,KAQV,MAAMk24B,GAAmBA,CAACxP,EAAaC,EAAUsF,KAC3CvF,EAAYhF,MACdyU,GAAiBzP,EAAaC,EAAUsF,IAIxCmK,GAAqBzP,GAGrB0P,GAAyB1P,GACzB2P,GAAiB5P,EAAaC,EAAUsF,GAC1C,EAQIkK,GAAmBA,CAACzP,EAAaC,EAAUsF,KAE/CtF,EAAS1gxB,MAAMC,QAAU,KACnBwgxB,IAAgB6P,GAAiB7P,IAAgBA,EAAY314B,OAAS214B,EAAYr55B,QAGtF4+5B,EAAYR,GAAc1xU,MAAM,CACjC,EAOGw8U,GAAmB7P,MACbA,EAAY1B,mBAAqB0B,EAAYzB,gBAAkByB,EAAYxB,kBAAoBwB,EAAYR,iBAEvH,IAAIsQ,IAAqB,EAKzB,MAAMJ,GAAuBzP,IAC3BA,EAAS1gxB,MAAM+gD,YAAc,KAC3B2/tB,EAASzk7B,UAAUu07B,UAAY,SAAUzy7B,GACvC2i7B,EAASzk7B,UAAUu07B,UAAY,OAG3Bzy7B,EAAE2jB,SAAWg/5B,EAASzk7B,YACxBs07B,IAAqB,EAEzB,CAAC,CACF,EAMGH,GAA2B1P,IAC/BA,EAASzk7B,UAAU8kN,YAAchjN,IAE3BA,EAAE2jB,SAAWg/5B,EAASzk7B,WACxB8B,EAAEu2C,iBAEJos4B,EAAS1gxB,MAAMwwxB,UAAY,SAAUzy7B,GACnC2i7B,EAAS1gxB,MAAMwwxB,UAAY,QAEvBzy7B,EAAE2jB,SAAWg/5B,EAAS1gxB,OAASjiK,EAAE2jB,kBAAkBxa,aAAew56B,EAAS1gxB,MAAMlnH,SAAS/6C,EAAE2jB,WAC9F6u6B,IAAqB,EAEzB,CAAC,CACF,EAQGF,GAAmBA,CAAC5P,EAAaC,EAAUsF,KAC/CtF,EAASzk7B,UAAUgkK,QAAUliK,IACvBwy7B,GACFA,IAAqB,EAGnBxy7B,EAAE2jB,SAAWg/5B,EAASzk7B,WAAai96B,EAAeuH,EAAYmN,oBAChE5H,EAAYR,GAAcnF,SAC5B,CACD,EAGGoQ,GAAkB/vzB,GAAwB,kBAATA,GAAqBA,EAAKk+yB,OAC3Dj34B,GAAY+4F,GAAQA,aAAgB15F,SAAWyp5B,GAAgB/vzB,GAC/DgwzB,GAAejo7B,IACnB,MAAMwH,EAAS,CAAC,EAahB,MAZuB,kBAAZxH,EAAK,IAAoBk/B,GAAUl/B,EAAK,IAGjD,CAAC,QAAS,OAAQ,QAAQ1L,SAAQ,CAAC2J,EAAMtH,KACvC,MAAM2H,EAAM0B,EAAKrJ,GACE,kBAAR2H,GAAoB4gC,GAAU5gC,GACvCkJ,EAAOvJ,GAAQK,OACEzK,IAARyK,GACT6Q,EAAM,sBAADxR,OAAuBM,EAAI,0CAAAN,cAAgDW,GAClF,IARFrI,OAAOD,OAAOwR,EAAQxH,EAAK,IAWtBwH,CAAM,EASf,SAASkpqB,KACP,IAAK,IAAI5wqB,EAAOC,UAAU3M,OAAQ4M,EAAO,IAAIpD,MAAMkD,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAEzB,OAAO,IAAIlN,QAAQiN,EACrB,CAqBA,SAASko7B,GAAMC,GACb,MAAMC,UAAkBr17B,MACtBs17B,KAAAA,CAAM7g7B,EAAQ8g7B,GACZ,OAAOv0jB,MAAMs0jB,MAAM7g7B,EAAQvR,OAAOD,OAAO,CAAC,EAAGmy7B,EAAaG,GAC5D,EAGF,OAAOF,CACT,CAQA,MAAMG,GAAeA,IACZ9Y,EAAYx/4B,SAAWw/4B,EAAYx/4B,QAAQs45B,eAS9CC,GAAYA,KAChB,GAAI/Y,EAAYx/4B,QAEd,OADA8k5B,KACOtF,EAAYx/4B,QAAQ6Z,MAC7B,EASI2+4B,GAAcA,KAClB,GAAIhZ,EAAYx/4B,QAAS,CACvB,MAAMq4C,EAAYmn2B,EAAYx/4B,QAAQpW,QAEtC,OADAg75B,GAAwBvs2B,GACjBA,CACT,GASIog3B,GAAcA,KAClB,MAAMrm5B,EAAQot4B,EAAYx/4B,QAC1B,OAAOoS,IAAUA,EAAM6ywB,QAAUszI,KAAcC,KAAc,EAUzDE,GAAgB9y5B,IACpB,GAAI454B,EAAYx/4B,QAAS,CACvB,MAAMq4C,EAAYmn2B,EAAYx/4B,QAAQ245B,SAAS/y5B,GAE/C,OADAg/4B,GAAwBvs2B,GAAW,GAC5BA,CACT,GAUIug3B,GAAiBA,OACXpZ,EAAYx/4B,UAAWw/4B,EAAYx/4B,QAAQ645B,aAGvD,IAAIC,IAAyB,EAC7B,MAAMC,GAAgB,CAAC,EAKvB,SAASC,KAEPD,GADWjp7B,UAAU3M,OAAS,QAAsBS,IAAjBkM,UAAU,GAAmBA,UAAU,GAAK,sBACzDhN,KACjBg27B,KACHt07B,SAASgkF,KAAKh/D,iBAAiB,QAASyv6B,IACxCH,IAAyB,EAE7B,CACA,MAAMG,GAAoBzw6B,IACxB,IAAK,IAAIwgG,EAAKxgG,EAAMQ,OAAQggG,GAAMA,IAAOxkH,SAAUwkH,EAAKA,EAAGxjH,WACzD,IAAK,MAAMw6C,KAAQ+44B,GAAe,CAChC,MAAMv/0B,EAAWwP,EAAGn8G,aAAamzC,GACjC,GAAIw5D,EAIF,YAHAu/0B,GAAc/44B,GAAMygoB,KAAK,CACvBjnkB,YAIN,CACF,EAKF,MAAMs5B,GACJzjI,WAAAA,GAEEvM,KAAK+wI,OAAS,CAAC,CACjB,CAMAqlzB,uBAAAA,CAAwB/3R,GAMtB,MALsC,qBAA3Br+pB,KAAK+wI,OAAOsthB,KAGrBr+pB,KAAK+wI,OAAOsthB,GAAa,IAEpBr+pB,KAAK+wI,OAAOsthB,EACrB,CAMA1lnB,EAAAA,CAAG0lnB,EAAWg4R,GACZ,MAAMC,EAAkBt27B,KAAKo27B,wBAAwB/3R,GAChDi4R,EAAgBz6jB,SAASw6jB,IAC5BC,EAAgB117B,KAAKy17B,EAEzB,CAMApmzB,IAAAA,CAAKouhB,EAAWg4R,GACd,IAAIt27B,EAAQC,KAIZ,MAAMu27B,EAAS,WACbx27B,EAAMqwI,eAAeiuhB,EAAWk4R,GAChC,IAAK,IAAIxp7B,EAAOC,UAAU3M,OAAQ4M,EAAO,IAAIpD,MAAMkD,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAEzBmp7B,EAAahp7B,MAAMtN,EAAOkN,EAC5B,EACAjN,KAAK24C,GAAG0lnB,EAAWk4R,EACrB,CAMAtlzB,IAAAA,CAAKothB,GACH,IAAK,IAAIthoB,EAAQ/vB,UAAU3M,OAAQ4M,EAAO,IAAIpD,MAAMkzB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG/vB,EAAK+vB,EAAQ,GAAKhwB,UAAUgwB,GAE9Bh9B,KAAKo27B,wBAAwB/3R,GAAW98pB,SAIxC807B,IACE,IACEA,EAAahp7B,MAAMrN,KAAMiN,EAC3B,CAAE,MAAOmP,GACPggG,QAAQhgG,MAAMA,EAChB,IAEJ,CAMAg0H,cAAAA,CAAeiuhB,EAAWg4R,GACxB,MAAMC,EAAkBt27B,KAAKo27B,wBAAwB/3R,GAC/Cz6pB,EAAQ0y7B,EAAgB5y7B,QAAQ2y7B,GAClCzy7B,GAAS,GACX0y7B,EAAgB523B,OAAO97D,EAAO,EAElC,CAKA8uI,kBAAAA,CAAmB2rhB,QACcv9pB,IAA3Bd,KAAK+wI,OAAOsthB,KAEdr+pB,KAAK+wI,OAAOsthB,GAAWh+pB,OAAS,EAEpC,CACAk8B,KAAAA,GACEv8B,KAAK+wI,OAAS,CAAC,CACjB,EAGF2ryB,EAAY+M,aAAe,IAAIz5yB,GAM/B,MAAMr3F,GAAKA,CAAC0lnB,EAAWg4R,KACrB3Z,EAAY+M,aAAa9w4B,GAAG0lnB,EAAWg4R,EAAa,EAOhDpmzB,GAAOA,CAACouhB,EAAWg4R,KACvB3Z,EAAY+M,aAAax5yB,KAAKouhB,EAAWg4R,EAAa,EAOlDp24B,GAAMA,CAACo+mB,EAAWg4R,KAEjBh4R,EAIDg4R,EAEF3Z,EAAY+M,aAAar5yB,eAAeiuhB,EAAWg4R,GAGnD3Z,EAAY+M,aAAa/2yB,mBAAmB2rhB,GAR5Cq+Q,EAAY+M,aAAalt5B,OAS3B,EAGF,IAAIi65B,GAA6Btz7B,OAAOg3gB,OAAO,CAC7Cxrf,UAAW,KACXwm6B,aAAcA,GACdgB,iBAAkBA,GAClBpM,YAAaA,GACbJ,aAAcA,GACdE,UAAWA,GACX6M,cAAejI,GACf7wQ,KAAMA,GACNqhQ,WAAYA,EACZN,gBAAiBA,EACjBU,eAAgBA,EAChBb,iBAAkBA,EAClB1xI,aAAcA,EACd8xI,cAAeA,EACfU,qBAAsBA,EACtBJ,UAAWA,EACXb,iBAAkBA,EAClBH,QAASA,EACTC,eAAgBA,EAChBzhQ,SAAUA,EACVoiQ,cAAeA,EACfC,UAAWA,EACXlyH,SAAUA,EACVyxH,iBAAkBA,EAClBmX,aAAcA,GACdrW,oBAAqBA,EACrBhB,SAAUA,EACVG,qBAAsBA,EACtBsX,cAAeA,GACfpC,sBAAuBA,GACvB11P,UAAWA,EACXg4P,eAAgBA,GAChBvC,qBAAsBA,GACtBF,iBAAkBA,GAClB9iuB,UAAWA,GACX4kuB,MAAOA,GACPl14B,IAAKA,GACLtH,GAAIA,GACJs3F,KAAMA,GACNylzB,YAAaA,GACblH,YAAaA,GACbiH,UAAWA,GACXE,YAAaA,KAGf,MAAMnvF,GAKJj61B,WAAAA,CAAY9F,EAAUsc,GACpB/iB,KAAKyG,SAAWA,EAChBzG,KAAKu1E,UAAYxyD,EACjB/iB,KAAKmizB,SAAU,EACfnizB,KAAK8mB,OACP,CAKAA,KAAAA,GAME,OALK9mB,KAAKmizB,UACRnizB,KAAKmizB,SAAU,EACfnizB,KAAK2nD,QAAU,IAAIhkB,KACnB3jC,KAAKohC,GAAK9D,WAAWt9B,KAAKyG,SAAUzG,KAAKu1E,YAEpCv1E,KAAKu1E,SACd,CAKAx+B,IAAAA,GAME,OALI/2C,KAAK2nD,SAAW3nD,KAAKmizB,UACvBnizB,KAAKmizB,SAAU,EACf9kxB,aAAar9B,KAAKohC,IAClBphC,KAAKu1E,YAAa,IAAI5xC,MAAO6B,UAAYxlC,KAAK2nD,QAAQniB,WAEjDxlC,KAAKu1E,SACd,CAMAsg3B,QAAAA,CAAS1r6B,GACP,MAAMg4xB,EAAUnizB,KAAKmizB,QAQrB,OAPIA,GACFnizB,KAAK+2C,OAEP/2C,KAAKu1E,WAAaprD,EACdg4xB,GACFnizB,KAAK8mB,QAEA9mB,KAAKu1E,SACd,CAKAig3B,YAAAA,GAKE,OAJIx17B,KAAKmizB,UACPnizB,KAAK+2C,OACL/2C,KAAK8mB,SAEA9mB,KAAKu1E,SACd,CAKAwg3B,SAAAA,GACE,OAAO/17B,KAAKmizB,OACd,EAGF,MAAMu0I,GAAmB,CAAC,aAAc,YAAa,eAM/CC,GAAoBli7B,IACxB,MAAMiiG,EAAsC,kBAApBjiG,EAAOiiG,SAA2Dh1G,SAAS+K,cAAcgI,EAAOiiG,UAAajiG,EAAOiiG,SAC5I,IAAKA,EACH,MAAO,CAAC,EAGV,MAAMkg1B,EAAkBlg1B,EAAS2rS,QAGjC,OAFAw0iB,GAAwBD,GACT1z7B,OAAOD,OAAO6z7B,GAAcF,GAAkBG,GAAsBH,GAAkBI,GAAeJ,GAAkBK,GAAaL,GAAkBM,GAAYN,GAAkBO,GAAaP,GAAkBQ,GAAoBR,EAAiBF,IAC1P,EAOTI,GAAgBF,IAEpB,MAAMvk7B,EAAS,CAAC,EAkBhB,OAhBmBxI,MAAM/G,KAAK8z7B,EAAgBht7B,iBAAiB,eACpDrI,SAAQq3O,IACjBy+sB,GAA0Bz+sB,EAAO,CAAC,OAAQ,UAC1C,MAAM06sB,EAAkD16sB,EAAM7uO,aAAa,QACrE3G,EAAQw1O,EAAM7uO,aAAa,SAC5Bup7B,GAAclw7B,IAGqB,mBAA7B8u7B,GAAcoB,GACvBjh7B,EAAOih7B,GAAuB,UAAVlw7B,EACyB,kBAA7B8u7B,GAAcoB,GAC9Bjh7B,EAAOih7B,GAAa/16B,KAAKxW,MAAM3D,GAE/BiP,EAAOih7B,GAAalw7B,EACtB,IAEKiP,CAAM,EAOT0k7B,GAAwBH,IAE5B,MAAMvk7B,EAAS,CAAC,EAWhB,OATsBxI,MAAM/G,KAAK8z7B,EAAgBht7B,iBAAiB,wBACpDrI,SAAQq3O,IACpB,MAAM06sB,EAAkD16sB,EAAM7uO,aAAa,QACrE3G,EAAQw1O,EAAM7uO,aAAa,SAC5Bup7B,GAAclw7B,IAGnBiP,EAAOih7B,GAAa,IAAIzjzB,SAAS,UAADjlI,OAAWxH,GAAvB,GAAiC,IAEhDiP,CAAM,EAOT2k7B,GAAiBJ,IAErB,MAAMvk7B,EAAS,CAAC,EAkBhB,OAhBoBxI,MAAM/G,KAAK8z7B,EAAgBht7B,iBAAiB,gBACpDrI,SAAQge,IAClB836B,GAA0B936B,EAAQ,CAAC,OAAQ,QAAS,eACpD,MAAMza,EAAOya,EAAOxV,aAAa,QAC5BjF,GAAS,CAAC,UAAW,SAAU,QAAQ+2X,SAAS/2X,KAGrDuN,EAAO,GAADzH,OAAI9F,EAAI,eAAgBya,EAAOo+B,UACrCtrC,EAAO,OAADzH,OAAQyy6B,EAAsBv46B,GAAK,YAAY,EACjDya,EAAO2g6B,aAAa,WACtB7t6B,EAAO,GAADzH,OAAI9F,EAAI,gBAAiBya,EAAOxV,aAAa,UAEjDwV,EAAO2g6B,aAAa,gBACtB7t6B,EAAO,GAADzH,OAAI9F,EAAI,oBAAqBya,EAAOxV,aAAa,eACzD,IAEKsI,CAAM,EAOT4k7B,GAAeL,IACnB,MAAMvk7B,EAAS,CAAC,EAEV0wQ,EAAQ6zqB,EAAgBnq7B,cAAc,cAgB5C,OAfIs2Q,IACFs0qB,GAA0Bt0qB,EAAO,CAAC,MAAO,QAAS,SAAU,QACxDA,EAAMm9pB,aAAa,SACrB7t6B,EAAO216B,SAAWjlqB,EAAMh5Q,aAAa,aAAUjJ,GAE7CiiR,EAAMm9pB,aAAa,WACrB7t6B,EAAO04V,WAAahoF,EAAMh5Q,aAAa,eAAYjJ,GAEjDiiR,EAAMm9pB,aAAa,YACrB7t6B,EAAO24V,YAAcjoF,EAAMh5Q,aAAa,gBAAajJ,GAEnDiiR,EAAMm9pB,aAAa,SACrB7t6B,EAAO416B,SAAWllqB,EAAMh5Q,aAAa,aAAUjJ,IAG5CuR,CAAM,EAOT6k7B,GAAcN,IAClB,MAAMvk7B,EAAS,CAAC,EAEV6I,EAAO076B,EAAgBnq7B,cAAc,aAW3C,OAVIyO,IACFm86B,GAA0Bn86B,EAAM,CAAC,OAAQ,UACrCA,EAAKgl6B,aAAa,UACpB7t6B,EAAO6I,KAAOA,EAAKnR,aAAa,SAE9BmR,EAAKgl6B,aAAa,WACpB7t6B,EAAOy16B,UAAY5s6B,EAAKnR,aAAa,UAEvCsI,EAAO806B,SAAWjs6B,EAAKyiC,WAElBtrC,CAAM,EAOT8k7B,GAAeP,IAEnB,MAAMvk7B,EAAS,CAAC,EAEVuZ,EAAQgr6B,EAAgBnq7B,cAAc,cACxCmf,IACFyr6B,GAA0Bzr6B,EAAO,CAAC,OAAQ,QAAS,cAAe,UAClEvZ,EAAOuZ,MAAQA,EAAM7hB,aAAa,SAAW,OACzC6hB,EAAMs05B,aAAa,WACrB7t6B,EAAO6z6B,WAAat65B,EAAM7hB,aAAa,UAErC6hB,EAAMs05B,aAAa,iBACrB7t6B,EAAO0z6B,iBAAmBn65B,EAAM7hB,aAAa,gBAE3C6hB,EAAMs05B,aAAa,WACrB7t6B,EAAOi06B,WAAa165B,EAAM7hB,aAAa,WAI3C,MAAMoiB,EAAetiB,MAAM/G,KAAK8z7B,EAAgBht7B,iBAAiB,sBAajE,OAZIuiB,EAAa9rB,SACfgS,EAAO8Z,aAAe,CAAC,EACvBA,EAAa5qB,SAAQ8woB,IACnBglT,GAA0BhlT,EAAQ,CAAC,UACnC,MAAMw9S,EAAcx9S,EAAOtooB,aAAa,SACxC,IAAK8l7B,EACH,OAEF,MAAMyH,EAAajlT,EAAO10lB,UAC1BtrC,EAAO8Z,aAAa0j6B,GAAeyH,CAAU,KAG1Cjl7B,CAAM,EAQT+k7B,GAAsBA,CAACR,EAAiBW,KAE5C,MAAMll7B,EAAS,CAAC,EAChB,IAAK,MAAMpQ,KAAKs17B,EAAY,CAC1B,MAAMjE,EAAYiE,EAAWt17B,GAEvB/B,EAAM027B,EAAgBnq7B,cAAc6m7B,GACtCpz7B,IACFm37B,GAA0Bn37B,EAAK,IAC/BmS,EAAOih7B,EAAUjw7B,QAAQ,SAAU,KAAOnD,EAAIy9C,UAAUx6C,OAE5D,CACA,OAAOkP,CAAM,EAMTwk7B,GAA0BD,IAC9B,MAAMY,EAAkBd,GAAiB9r7B,OAAO,CAAC,aAAc,sBAAuB,cAAe,aAAc,YAAa,aAAc,sBAC9If,MAAM/G,KAAK8z7B,EAAgB5x7B,UAAUzD,SAAQ2kH,IAC3C,MAAM9/F,EAAU8/F,EAAG9/F,QAAQrV,cACtBym7B,EAAgB37jB,SAASz1W,IAC5Bk2F,EAAK,yBAAD1xG,OAA0Bwb,EAAO,KACvC,GACA,EAOEix6B,GAA4BA,CAACnx0B,EAAIux0B,KACrC5t7B,MAAM/G,KAAKojH,EAAG3P,YAAYh1G,SAAQi1G,KACmB,IAA/Cih1B,EAAkB/z7B,QAAQ8yG,EAAUtrG,OACtCoxG,EAAK,CAAC,2BAAD1xG,OAA4B4rG,EAAUtrG,KAAI,UAAAN,OAASs7G,EAAG9/F,QAAQrV,cAAa,SAAAnG,OAAS6s7B,EAAkBp37B,OAAS,2BAAHuK,OAA8B6s7B,EAAkB5w7B,KAAK,OAAU,mDAClL,GACA,EAGE6w7B,GAAqB,GAOrBC,GAAYlj7B,IAChB,MAAMhU,EAAYosyB,IACZrooB,EAAQoopB,IACiB,oBAApBn4yB,EAAOq+6B,UAChBr+6B,EAAOq+6B,SAAStuxB,GAElBk4wB,EAAY+M,aAAax4yB,KAAK,WAAYuzB,GAC1C,MACMuoxB,EADant5B,OAAO2d,iBAAiB77C,SAASgkF,MACbky2B,UACvCC,GAAWp37B,EAAW+jK,EAAO/vJ,GAG7B6oB,YAAW,KACTw65B,GAAuBr37B,EAAW+jK,EAAM,GACvCkzxB,IACC7X,MACFkY,GAAmBt37B,EAAWgU,EAAOw+6B,iBAAkBlG,GACvDlB,MAEG7L,KAActD,EAAYE,wBAC7BF,EAAYE,sBAAwBl76B,SAASgpK,eAEjB,oBAAnBj2J,EAAOs+6B,SAChBz15B,YAAW,IAAM7oB,EAAOs+6B,QAAQvuxB,KAElCk4wB,EAAY+M,aAAax4yB,KAAK,UAAWuzB,GACzCy8wB,GAAYxg7B,EAAWy86B,EAAY,iBAAiB,EAMhD8a,GAA4Bty6B,IAChC,MAAM8+I,EAAQoopB,IACd,GAAIlnyB,EAAMQ,SAAWs+I,EACnB,OAEF,MAAM/jK,EAAYosyB,IAClBrooB,EAAMvlH,oBAAoB,eAAgB+44B,IAC1CxzxB,EAAMvlH,oBAAoB,gBAAiB+44B,IAC3Cv37B,EAAU6rB,MAAMsr6B,UAAY,MAAM,EAO9BE,GAAyBA,CAACr37B,EAAW+jK,KACrCm9wB,GAAgBn9wB,IAClB/jK,EAAU6rB,MAAMsr6B,UAAY,SAC5BpzxB,EAAM99I,iBAAiB,eAAgBsx6B,IACvCxzxB,EAAM99I,iBAAiB,gBAAiBsx6B,KAExCv37B,EAAU6rB,MAAMsr6B,UAAY,MAC9B,EAQIG,GAAqBA,CAACt37B,EAAWwy7B,EAAkBlG,KACvDd,KACIgH,GAA4C,WAAxBlG,GACtBD,GAA4BC,GAI9Bzv5B,YAAW,KACT78B,EAAU0mzB,UAAY,CAAC,GACvB,EAQE0wI,GAAaA,CAACp37B,EAAW+jK,EAAO/vJ,KACpCgs6B,GAAShg7B,EAAWgU,EAAO6r6B,UAAUuE,UACjCpw6B,EAAOgjI,WAET+sB,EAAMl4I,MAAMqmB,YAAY,UAAW,IAAK,aACxCksK,GAAKr6C,EAAO,QACZlnI,YAAW,KAETmj5B,GAASj8wB,EAAO/vJ,EAAO6r6B,UAAU97wB,OAEjCA,EAAMl4I,MAAM4vB,eAAe,UAAU,GACpCw74B,KAEH74uB,GAAKr6C,EAAO,QAEdi8wB,GAAS,CAAC/+6B,SAAS4wC,gBAAiB5wC,SAASgkF,MAAOw31B,EAAY6C,OAC5Dtr6B,EAAO096B,YAAc196B,EAAOow6B,WAAapw6B,EAAOwr6B,OAClDQ,GAAS,CAAC/+6B,SAAS4wC,gBAAiB5wC,SAASgkF,MAAOw31B,EAAY,eAClE,EAGF,IAAI+a,GAAyB,CAM3Bhz6B,MAAOA,CAACpT,EAAQq/6B,IACP,oDAAoD7p6B,KAAKxV,GAAUutH,QAAQ3uF,UAAY2uF,QAAQ3uF,QAAQyg5B,GAAqB,yBAOrIns6B,IAAKA,CAAClT,EAAQq/6B,IAEL,8FAA8F7p6B,KAAKxV,GAAUutH,QAAQ3uF,UAAY2uF,QAAQ3uF,QAAQyg5B,GAAqB,gBAOjL,SAASgH,GAA0Bzj7B,GAE7BA,EAAOo86B,iBAGU,UAAjBp86B,EAAOmX,QACTnX,EAAOo86B,eAAiBoH,GAA8B,OAEnC,QAAjBxj7B,EAAOmX,QACTnX,EAAOo86B,eAAiBoH,GAA4B,KAExD,CAKA,SAASE,GAA4B1j7B,KAE9BA,EAAOyR,QAAmC,kBAAlBzR,EAAOyR,SAAwBxkB,SAAS+K,cAAcgI,EAAOyR,SAAoC,kBAAlBzR,EAAOyR,SAAwBzR,EAAOyR,OAAOrkB,eACvJy6G,EAAK,uDACL7nG,EAAOyR,OAAS,OAEpB,CAOA,SAASky6B,GAAc3j7B,GACrByj7B,GAA0Bzj7B,GAGtBA,EAAOi96B,sBAAwBj96B,EAAOk96B,YACxCr10B,EAAK,oMAEP670B,GAA4B1j7B,GAGA,kBAAjBA,EAAOw4G,QAChBx4G,EAAOw4G,MAAQx4G,EAAOw4G,MAAM3iH,MAAM,MAAMzD,KAAK,WAE/C86B,GAAKltB,EACP,CAGA,IAAIgu6B,GACJ,IAAI4V,GAAwB,IAAIzv7B,QAChC,MAAM0v7B,GAKJ/r7B,WAAAA,GAME,GAFAgw6B,EAA2Bv86B,KAAMq47B,QAAU,GAErB,qBAAXz45B,OACT,OAEF6i5B,GAAkBzi7B,KAGlB,IAAK,IAAI+M,EAAOC,UAAU3M,OAAQ4M,EAAO,IAAIpD,MAAMkD,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAEzB,MAAMqr7B,EAAcr17B,OAAOg3gB,OAAOl6gB,KAAKuM,YAAY2o7B,aAAajo7B,IAGhEjN,KAAKyU,OAAS8j7B,EAGdv47B,KAAKwt7B,mBAAoB,EACzBhR,EAAuB6b,GAAUr47B,KAAMA,KAAKs17B,MAAM7S,GAAgBhu6B,QACpE,CACA6g7B,KAAAA,CAAMkD,GACJ,IAAIpD,EAAcpo7B,UAAU3M,OAAS,QAAsBS,IAAjBkM,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEvF,GADA6m7B,GAAsB3w7B,OAAOD,OAAO,CAAC,EAAGmy7B,EAAaoD,IACjD9b,EAAY+F,gBAAiB,CAC/B,MAAMkJ,EAAqBD,GAAeC,mBAAmB5i7B,IAAI2z6B,EAAY+F,kBACvE,kBACJ+K,GACE9Q,EAAY+F,gBAChB/F,EAAY+F,gBAAgBttiB,WACvBq4iB,GACH7B,EAAmB,CACjB8B,aAAa,IAGb5N,KACFiM,IAEJ,CACApP,EAAY+F,gBAAkBA,GAC9B,MAAMwC,EAAcwT,GAAcD,EAAYpD,GAC9CgD,GAAcnT,GACd/h7B,OAAOg3gB,OAAO+qa,GAGVvI,EAAYx/4B,UACdw/4B,EAAYx/4B,QAAQ6Z,cACb2l4B,EAAYx/4B,SAIrBG,aAAaq/4B,EAAYK,qBACzB,MAAMmI,EAAWwT,GAAiBjW,IAGlC,OAFAjj5B,GAAOij5B,GAAiBwC,GACxBD,GAAaC,YAAYj86B,IAAIy56B,GAAiBwC,GACvC0T,GAAYlW,GAAiByC,EAAUD,EAChD,CAGAl14B,IAAAA,CAAK6o5B,GACH,OAAOtc,EAAuB+b,GAAUr47B,MAAM+vC,KAAK6o5B,EACrD,CACAvtG,QAAQwtG,GACN,OAAOvc,EAAuB+b,GAAUr47B,MAAMqr1B,QAAQwtG,EACxD,EASF,MAAMF,GAAcA,CAAC/35B,EAAUsk5B,EAAUD,IAChC,IAAI7lzB,SAAQ,CAAC3uF,EAASJ,KAK3B,MAAMm64B,EAAcsO,IAClBl45B,EAAS03kB,MAAM,CACbm1U,aAAa,EACbqL,WACA,EAEJpN,GAAeC,mBAAmB3i7B,IAAI43B,EAAU6P,GAChDi74B,GAAeE,kBAAkB5i7B,IAAI43B,EAAUyP,GAC/C604B,EAAStB,cAAcn/wB,QAAU,KAC/B8rxB,GAAyB3v5B,EAAS,EAEpCsk5B,EAASrB,WAAWp/wB,QAAU,KAC5BisxB,GAAsB9v5B,EAAS,EAEjCsk5B,EAASpB,aAAar/wB,QAAU,KAC9BmsxB,GAAwBhw5B,EAAU4p5B,EAAY,EAEhDtF,EAAS1yH,YAAY/tpB,QAAU,KAC7B+lxB,EAAYR,GAAc1xU,MAAM,EAElCm8U,GAAiBxP,EAAaC,EAAUsF,GACxCD,GAAkB7N,EAAauI,EAAauF,GAC5CoE,GAA2Bhu5B,EAAUqk5B,GACrC0S,GAAU1S,GACV8T,GAAWrc,EAAauI,EAAauF,GACrCwO,GAAU9T,EAAUD,GAGpB3n5B,YAAW,KACT4n5B,EAASzk7B,UAAU0mzB,UAAY,CAAC,GAChC,IASAsxI,GAAgBA,CAACD,EAAYpD,KACjC,MAAM6D,EAAiBtC,GAAkB6B,GACnC/j7B,EAASvR,OAAOD,OAAO,CAAC,EAAGiv7B,GAAekD,EAAa6D,EAAgBT,GAS7E,OARA/j7B,EAAO6r6B,UAAYp96B,OAAOD,OAAO,CAAC,EAAGiv7B,GAAc5R,UAAW7r6B,EAAO6r6B,WACrE7r6B,EAAOk56B,UAAYzq7B,OAAOD,OAAO,CAAC,EAAGiv7B,GAAcvE,UAAWl56B,EAAOk56B,YAC5C,IAArBl56B,EAAOgjI,YACThjI,EAAO6r6B,UAAY,CACjBuE,SAAU,qBAEZpw6B,EAAOk56B,UAAY,CAAC,GAEfl56B,CAAM,EAOTik7B,GAAmB935B,IACvB,MAAMsk5B,EAAW,CACf1gxB,MAAOoopB,IACPnszB,UAAWosyB,IACX2xI,QAASQ,IACT4E,cAAerF,IACfsF,WAAYlF,IACZmF,aAAcpF,IACdK,OAAQD,IACRtsH,YAAa4sH,IACb8R,kBAAmB5S,IACnB0K,cAAe3K,KAGjB,OADA2G,GAAaE,SAASl86B,IAAI43B,EAAUsk5B,GAC7BA,CAAQ,EAQX6T,GAAaA,CAACrc,EAAauI,EAAauF,KAC5C,MAAMzI,EAAmB5C,IACzB98lB,GAAK0/lB,GACDkD,EAAY314B,QACdot4B,EAAYx/4B,QAAU,IAAIsp0B,IAAM,KAC9BgkF,EAAY,gBACL9N,EAAYx/4B,OAAO,GACzB+n5B,EAAY314B,OACX214B,EAAYlD,mBACdljuB,GAAKkjuB,GACLxB,EAAiBwB,EAAkBkD,EAAa,oBAChD3n5B,YAAW,KACLo/4B,EAAYx/4B,SAAWw/4B,EAAYx/4B,QAAQilxB,SAE7C2/H,GAAwBmD,EAAY314B,MACtC,KAGN,EAgBI0p5B,GAAYA,CAAC9T,EAAUD,KAC3B,IAAIA,EAAYhF,MAIhB,OAAKvC,EAAeuH,EAAYmG,oBAK5B8N,GAAehU,IAGfiU,GAAYjU,EAAUD,IAG1BwF,IAAU,EAAG,KAVXlN,EAAqB,sBACrB6b,KASa,EAOXF,GAAiBhU,IACrB,MAAMmU,EAAoBxv7B,MAAM/G,KAAKoi7B,EAAS1gxB,MAAM56J,iBAAiB,gBACrE,IAAK,MAAM0v7B,KAAoBD,EAC7B,GAAIC,aAA4B5t7B,aAAek06B,GAAY0Z,GAEzD,OADAA,EAAiBx+6B,SACV,EAGX,OAAO,CAAK,EAQRq+6B,GAAcA,CAACjU,EAAUD,IACzBA,EAAY2N,WAAahT,GAAYsF,EAASrB,aAChDqB,EAASrB,WAAW/o6B,SACb,GAELmq6B,EAAY4N,aAAejT,GAAYsF,EAASpB,eAClDoB,EAASpB,aAAahp6B,SACf,MAELmq6B,EAAY0N,eAAgB/S,GAAYsF,EAAStB,kBACnDsB,EAAStB,cAAc9o6B,SAChB,GAILs+6B,GAAoBA,KACpB137B,SAASgpK,yBAAyBh/J,aAAsD,oBAAhChK,SAASgpK,cAAcC,MACjFjpK,SAASgpK,cAAcC,MACzB,EAIF,GAAsB,qBAAX/qI,QAA0B,QAAQvY,KAAKg5B,UAAUwl2B,WAAa7h4B,SAAS8iG,KAAKr9G,MAAM,0BAA2B,CACtH,MAAMipC,EAAM,IAAI/O,KACV415B,EAAiB9hjB,aAAa8+R,QAAQ,mBACvCgjR,GAEO7m5B,EAAIlN,UAAY7B,KAAK58B,MAAMwy7B,IAAmB,MAAwB,GAChFj85B,YAAW,KACT57B,SAASgkF,KAAKp5D,MAAMg5L,cAAgB,OACpC,MAAMk0uB,EAAkB937B,SAASC,cAAc,SAC/C637B,EAAgB7u1B,IAAM,8DACtB6u1B,EAAgBv4b,MAAO,EACvBv/f,SAASgkF,KAAK7jF,YAAY237B,GAC1Bl85B,YAAW,KACTk85B,EAAgBphM,OAAOn2mB,OAAM,QAE3B,GACD,KAAK,GACP,KAbHw1P,aAAag6R,QAAQ,kBAAmB,GAAF7mqB,OAAK8nC,GAe/C,CAGA4l5B,GAAWl37B,UAAUov7B,eAAiBA,GACtC8H,GAAWl37B,UAAU4v7B,cAAgBA,GACrCsH,GAAWl37B,UAAU4t7B,SAAWA,GAChCsJ,GAAWl37B,UAAU+v7B,aAAeA,GACpCmH,GAAWl37B,UAAUgw7B,YAAcA,GACnCkH,GAAWl37B,UAAUsu7B,YAAcA,GACnC4I,GAAWl37B,UAAUgz7B,eAAiB1E,GACtC4I,GAAWl37B,UAAU6v7B,sBAAwBA,GAC7CqH,GAAWl37B,UAAUsh7B,uBAAyBA,GAC9C4V,GAAWl37B,UAAUk3mB,MAAQA,GAC7BggV,GAAWl37B,UAAUiz7B,WAAa/7U,GAClCggV,GAAWl37B,UAAUkz7B,WAAah8U,GAClCggV,GAAWl37B,UAAUmz7B,WAAaj8U,GAClCggV,GAAWl37B,UAAUys7B,cAAgBA,GACrCyK,GAAWl37B,UAAUm9C,OAASA,GAC9B+54B,GAAWl37B,UAAU+zY,SAAWA,GAGhCjyY,OAAOD,OAAOq17B,GAAY9B,IAG1Btz7B,OAAOgkB,KAAKst6B,IAAiBjz7B,SAAQL,IAKnCo37B,GAAWp37B,GAAO,WAChB,OAAIuh7B,IAAmBA,GAAgBvh7B,GAC9Buh7B,GAAgBvh7B,MAAQ8L,WAE1B,IACT,CAAC,IAEHsr7B,GAAWtO,cAAgBA,GAC3BsO,GAAWxp5B,QAAU,UAErB,MAAM4/4B,GAAO4J,GAIb,OAFA5J,GAAK366B,QAAU266B,GAERA,EAET,CA3/IkF7h5B,GA4/I9D,qBAAT7sC,MAAwBA,KAAKy57B,cAAaz57B,KAAK057B,KAAO157B,KAAK257B,WAAa357B,KAAK0u7B,KAAO1u7B,KAAKs47B,WAAat47B,KAAKy57B,aACtH,oBAAoB/37B,UAAU,SAASa,EAAEgsB,GAAG,IAAIpE,EAAE5nB,EAAEZ,cAAc,SAAS,GAAGY,EAAEq37B,qBAAqB,QAAQ,GAAG/37B,YAAYsoB,GAAGA,EAAEo8F,WAAWp8F,EAAEo8F,WAAWruG,WAAWiS,EAAEo8F,WAAWsz0B,QAAQtr6B,QAAQ,IAAIpE,EAAEwzB,UAAUpvB,CAAC,CAAC,MAAMhsB,GAAG4nB,EAAEg85B,UAAU535B,CAAC,CAAC,CAA5M,CAA8M7sB,SAAS,ij0BClgJrP,SAASkX,IACP,OAAOkpB,EAAOluB,QAAUgF,EAAW1V,OAAOD,OAASC,OAAOD,OAAO8lB,OAAS,SAAUoB,GAClF,IAAK,IAAI5nB,EAAI,EAAGA,EAAIyK,UAAU3M,OAAQkC,IAAK,CACzC,IAAIgsB,EAAIvhB,UAAUzK,GAClB,IAAK,IAAI8rB,KAAKE,GAAG,CAAG,GAAE7S,eAAe5R,KAAKykB,EAAGF,KAAOlE,EAAEkE,GAAKE,EAAEF,GAC/D,CACA,OAAOlE,CACT,EAAG2X,EAAOluB,QAAQ0a,YAAa,EAAMwT,EAAOluB,QAAiB,QAAIkuB,EAAOluB,QAASgF,EAASvL,MAAM,KAAML,UACxG,CACA80B,EAAOluB,QAAUgF,EAAUkpB,EAAOluB,QAAQ0a,YAAa,EAAMwT,EAAOluB,QAAiB,QAAIkuB,EAAOluB,kBCJhGkuB,EAAOluB,QALP,SAAgCrR,GAC9B,OAAOA,GAAKA,EAAE+rB,WAAa/rB,EAAI,CAC7B,QAAWA,EAEf,EACyCu/B,EAAOluB,QAAQ0a,YAAa,EAAMwT,EAAOluB,QAAiB,QAAIkuB,EAAOluB,kBCI9GkuB,EAAOluB,QATP,SAAuCya,EAAG9rB,GACxC,GAAI,MAAQ8rB,EAAG,MAAO,CAAC,EACvB,IAAIE,EAAI,CAAC,EACT,IAAK,IAAIpE,KAAKkE,EAAG,GAAI,CAAC,EAAE3S,eAAe5R,KAAKukB,EAAGlE,GAAI,CACjD,GAAI5nB,EAAEs5X,SAAS1xW,GAAI,SACnBoE,EAAEpE,GAAKkE,EAAElE,EACX,CACA,OAAOoE,CACT,EACgDuT,EAAOluB,QAAQ0a,YAAa,EAAMwT,EAAOluB,QAAiB,QAAIkuB,EAAOluB,qCCTrH,SAASgF,IACP,OAAOA,EAAW1V,OAAOD,OAASC,OAAOD,OAAO8lB,OAAS,SAAUoB,GACjE,IAAK,IAAI5nB,EAAI,EAAGA,EAAIyK,UAAU3M,OAAQkC,IAAK,CACzC,IAAIgsB,EAAIvhB,UAAUzK,GAClB,IAAK,IAAI8rB,KAAKE,GAAG,CAAG,GAAE7S,eAAe5R,KAAKykB,EAAGF,KAAOlE,EAAEkE,GAAKE,EAAEF,GAC/D,CACA,OAAOlE,CACT,EAAGvR,EAASvL,MAAM,KAAML,UAC1B,+CCRA,SAAS2L,EAA8B0V,EAAG9rB,GACxC,GAAI,MAAQ8rB,EAAG,MAAO,CAAC,EACvB,IAAIE,EAAI,CAAC,EACT,IAAK,IAAIpE,KAAKkE,EAAG,GAAI,CAAC,EAAE3S,eAAe5R,KAAKukB,EAAGlE,GAAI,CACjD,GAAI5nB,EAAEs5X,SAAS1xW,GAAI,SACnBoE,EAAEpE,GAAKkE,EAAElE,EACX,CACA,OAAOoE,CACT,+CCRA,SAASF,EAAE9rB,GAAG,IAAIgsB,EAAEjD,EAAEnB,EAAE,GAAG,GAAG,iBAAiB5nB,GAAG,iBAAiBA,EAAE4nB,GAAG5nB,OAAO,GAAG,iBAAiBA,EAAE,GAAGsH,MAAMiI,QAAQvP,GAAG,CAAC,IAAIw/B,EAAEx/B,EAAElC,OAAO,IAAIkuB,EAAE,EAAEA,EAAEwT,EAAExT,IAAIhsB,EAAEgsB,KAAKjD,EAAE+C,EAAE9rB,EAAEgsB,OAAOpE,IAAIA,GAAG,KAAKA,GAAGmB,EAAE,MAAM,IAAIA,KAAK/oB,EAAEA,EAAE+oB,KAAKnB,IAAIA,GAAG,KAAKA,GAAGmB,GAAG,OAAOnB,CAAC,kBAAgI,QAAxH,WAAgB,IAAI,IAAI5nB,EAAEgsB,EAAEjD,EAAE,EAAEnB,EAAE,GAAG4X,EAAE/0B,UAAU3M,OAAOirB,EAAEyW,EAAEzW,KAAK/oB,EAAEyK,UAAUse,MAAMiD,EAAEF,EAAE9rB,MAAM4nB,IAAIA,GAAG,KAAKA,GAAGoE,GAAG,OAAOpE,CAAC,ICC3Wwyf,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB/7gB,IAAjBg8gB,EACH,OAAOA,EAAalpgB,QAGrB,IAAIkuB,EAAS66e,EAAyBE,GAAY,CAGjDjpgB,QAAS,CAAC,GAOX,OAHA29a,EAAoBsrF,GAAU/ygB,KAAKg4B,EAAOluB,QAASkuB,EAAQA,EAAOluB,QAASgpgB,GAGpE96e,EAAOluB,OACf,CCrBAgpgB,EAAoBzyf,EAAK2X,IACxB,IAAImtJ,EAASntJ,GAAUA,EAAOxT,WAC7B,IAAOwT,EAAiB,QACxB,IAAM,EAEP,OADA86e,EAAoB3ogB,EAAEg7K,EAAQ,CAAE5jK,EAAG4jK,IAC5BA,CAAM,QCNd,IACI6qwB,EADAx0jB,EAAWpiY,OAAOu6B,eAAkB7rB,GAAS1O,OAAOu6B,eAAe7rB,GAASA,GAASA,EAAa,UAQtGgrgB,EAAoBruf,EAAI,SAASnrB,EAAO0Y,GAEvC,GADU,EAAPA,IAAU1Y,EAAQpD,KAAKoD,IAChB,EAAP0Y,EAAU,OAAO1Y,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAP0Y,GAAa1Y,EAAMkrB,WAAY,OAAOlrB,EAC1C,GAAW,GAAP0Y,GAAoC,oBAAf1Y,EAAM2sC,KAAqB,OAAO3sC,CAC5D,CACA,IAAIm4C,EAAKr4C,OAAOoI,OAAO,MACvBsxgB,EAAoBvuf,EAAEktB,GACtB,IAAI5K,EAAM,CAAC,EACXmp5B,EAAiBA,GAAkB,CAAC,KAAMx0jB,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAI54X,EAAiB,EAAPoP,GAAY1Y,EAAyB,iBAAXsJ,KAAyBot7B,EAAep27B,QAAQgJ,GAAUA,EAAU44X,EAAS54X,GACxHxJ,OAAOqnC,oBAAoB79B,GAASnL,SAASL,GAASyvC,EAAIzvC,GAAO,IAAOkC,EAAMlC,KAI/E,OAFAyvC,EAAa,QAAI,IAAM,EACvBise,EAAoB3ogB,EAAEsnC,EAAI5K,GACnB4K,CACR,MCxBAqhe,EAAoB3ogB,EAAI,CAACL,EAASq7B,KACjC,IAAI,IAAI/tC,KAAO+tC,EACX2te,EAAoB76e,EAAEkN,EAAY/tC,KAAS07gB,EAAoB76e,EAAEnuB,EAAS1S,IAC5EgC,OAAOgR,eAAeN,EAAS1S,EAAK,CAAEiT,YAAY,EAAMpL,IAAKkmC,EAAW/tC,IAE1E,ECND07gB,EAAoB76e,EAAI,CAACnwB,EAAKqR,IAAU/f,OAAO9B,UAAUsa,eAAe5R,KAAK8H,EAAKqR,GCClF25f,EAAoBvuf,EAAKza,IACH,qBAAX8pB,QAA0BA,OAAOC,aAC1Cz6B,OAAOgR,eAAeN,EAAS8pB,OAAOC,YAAa,CAAEv6B,MAAO,WAE7DF,OAAOgR,eAAeN,EAAS,aAAc,CAAExQ,OAAO,GAAO,ECL9Dw5gB,EAAoB7pf,EAAI,sMCOZgn6B,EAAAA,2RAAAA,EAAAA,IAAAA,EAsBX,KAdC,UAOAA,EAAA,YAMAA,EAAA,kBAsKF,MAAMC,EAAoB,WAySV,SAAAC,EAAU727B,EAAYgvI,GACpC,IAAc,IAAVhvI,GAA6B,OAAVA,GAAmC,qBAAVA,EAC9C,MAAM,IAAI4O,MAAMogI,EAEpB,CAEgB,SAAAv1H,EAAQs6mB,EAAW/kf,GACjC,IAAK+kf,EAAM,CAEc,qBAAZ/6gB,SAAyBA,QAAQE,KAAK81B,GAEjD,IAME,MAAM,IAAIpgI,MAAMogI,EAEjB,CAAC,MAAO7vI,IAAI,CACd,CACH,CASA,SAAS237B,EAAgBl26B,EAAoBpgB,GAC3C,MAAO,CACLu27B,IAAKn26B,EAASoc,MACdl/B,IAAK8iB,EAAS9iB,IACd8pB,IAAKpnB,EAET,CAKM,SAAUw27B,EACd1t7B,EACA+hC,EACArO,EACAl/B,GAcA,YAfA,IAAAk/B,IAAAA,EAAa,MAGDxnB,EAAA,CACVgrI,SAA6B,kBAAZl3I,EAAuBA,EAAUA,EAAQk3I,SAC1DngJ,OAAQ,GACR2F,KAAM,IACY,kBAAPqlC,EAAkB2sjB,EAAU3sjB,GAAMA,EAAE,CAC/CrO,QAKAl/B,IAAMutC,GAAOA,EAAgBvtC,KAAQA,GAjChC2B,KAAKqyC,SAAS3nC,SAAS,IAAIzJ,OAAO,EAAG,IAoC9C,CAKgB,SAAAu27B,EAAUtk7B,GAIV,IAJW,SACzB6tI,EAAW,IAAG,OACdngJ,EAAS,GAAE,KACX2F,EAAO,IACO2M,EAKd,OAJItS,GAAqB,MAAXA,IACZmgJ,GAAiC,MAArBngJ,EAAO6mB,OAAO,GAAa7mB,EAAS,IAAMA,GACpD2F,GAAiB,MAATA,IACVw6I,GAA+B,MAAnBx6I,EAAKkhB,OAAO,GAAalhB,EAAO,IAAMA,GAC7Cw6I,CACT,CAKM,SAAUw3c,EAAU53kB,GACxB,IAAI826B,EAA4B,CAAC,EAEjC,GAAI926B,EAAM,CACR,IAAI+26B,EAAY/26B,EAAK9f,QAAQ,KACzB627B,GAAa,IACfD,EAAWlx7B,KAAOoa,EAAK1f,OAAOy27B,GAC9B/26B,EAAOA,EAAK1f,OAAO,EAAGy27B,IAGxB,IAAIC,EAAch36B,EAAK9f,QAAQ,KAC3B827B,GAAe,IACjBF,EAAW727B,OAAS+f,EAAK1f,OAAO027B,GAChCh36B,EAAOA,EAAK1f,OAAO,EAAG027B,IAGpBh36B,IACF826B,EAAW12yB,SAAWpgI,EAEzB,CAED,OAAO826B,CACT,CASA,SAASG,EACPC,EACAC,EACAC,EACA967B,QAAA,IAAAA,IAAAA,EAA6B,CAAC,GAE9B,IAAI,OAAE8/B,EAASl+B,SAASi+B,YAAY,SAAEk75B,GAAW,GAAU/67B,EACvDg77B,EAAgBl75B,EAAOqpwB,QACvBjxxB,EAAS+h7B,EAAOgB,IAChBni5B,EAA4B,KAE5Bh1C,EAAQkvhB,IASZ,SAASA,IAEP,OADYgoa,EAAc165B,OAAS,CAAEpV,IAAK,OAC7BA,GACf,CAEA,SAASgw6B,IACPhj7B,EAAS+h7B,EAAOgB,IAChB,IAAIE,EAAYnoa,IACZxxZ,EAAqB,MAAb25zB,EAAoB,KAAOA,EAAYr37B,EACnDA,EAAQq37B,EACJri5B,GACFA,EAAS,CAAE5gC,SAAQgM,SAAUilxB,EAAQjlxB,SAAUs9G,SAEnD,CA+CA,SAAS45zB,EAAUzs5B,GAIjB,IAAI3d,EACyB,SAA3B8O,EAAO5b,SAAS89B,OACZliB,EAAO5b,SAAS89B,OAChBliB,EAAO5b,SAASugJ,KAElBA,EAAqB,kBAAP91H,EAAkBA,EAAK4r5B,EAAW5r5B,GASpD,OALA81H,EAAOA,EAAKlhK,QAAQ,KAAM,OAC1B427B,EACEnp6B,EACsE,sEAAAyzI,GAEjE,IAAIkzH,IAAIlzH,EAAMzzI,EACvB,CApFa,MAATltB,IACFA,EAAQ,EACRk37B,EAAc5xJ,aAAYtwxB,EAAM,GAAAki7B,EAAc165B,MAAO,CAAApV,IAAKpnB,IAAS,KAoFrE,IAAIqlyB,EAAmB,CACrB,UAAIjxxB,GACF,OAAOA,GAET,YAAIgM,GACF,OAAO026B,EAAY965B,EAAQk75B,IAE7BK,MAAAA,CAAO9v7B,GACL,GAAIutC,EACF,MAAM,IAAI5mC,MAAM,8CAKlB,OAHA4tB,EAAOlZ,iBAAiBsz6B,EAAmBgB,GAC3Cpi5B,EAAWvtC,EAEJ,KACLu0B,EAAOqf,oBAAoB+64B,EAAmBgB,GAC9Cpi5B,EAAW,IAAI,GAGnB+h5B,WAAWls5B,GACFks5B,EAAW/65B,EAAQ6O,GAE5Bys5B,YACAE,cAAAA,CAAe3s5B,GAEb,IAAI1pB,EAAMm26B,EAAUzs5B,GACpB,MAAO,CACLm1G,SAAU7+H,EAAI6+H,SACdngJ,OAAQshB,EAAIthB,OACZ2F,KAAM2b,EAAI3b,OAGdxI,KAlGF,SAAc6tC,EAAQrO,GACpBpoB,EAAS+h7B,EAAOsB,KAChB,IAAIr36B,EAAWo26B,EAAenxJ,EAAQjlxB,SAAUyqB,EAAIrO,GAChDw65B,GAAkBA,EAAiB526B,EAAUyqB,GAEjD7qC,EAAQkvhB,IAAa,EACrB,IAAIwoa,EAAepB,EAAgBl26B,EAAUpgB,GACzCmhB,EAAMkkxB,EAAQ0xJ,WAAW326B,GAG7B,IACE826B,EAAcS,UAAUD,EAAc,GAAIv26B,GAC1C,MAAO3I,GAKP,GAAIA,aAAiBo/6B,cAA+B,mBAAfp/6B,EAAMlR,KACzC,MAAMkR,EAIRwjB,EAAO5b,SAAS/gB,OAAO8hB,EACxB,CAEG816B,GAAYji5B,GACdA,EAAS,CAAE5gC,SAAQgM,SAAUilxB,EAAQjlxB,SAAUs9G,MAAO,GAE1D,EAuEEj+H,QArEF,SAAiBorC,EAAQrO,GACvBpoB,EAAS+h7B,EAAO/3L,QAChB,IAAIh+uB,EAAWo26B,EAAenxJ,EAAQjlxB,SAAUyqB,EAAIrO,GAChDw65B,GAAkBA,EAAiB526B,EAAUyqB,GAEjD7qC,EAAQkvhB,IACR,IAAIwoa,EAAepB,EAAgBl26B,EAAUpgB,GACzCmhB,EAAMkkxB,EAAQ0xJ,WAAW326B,GAC7B826B,EAAc5xJ,aAAaoyJ,EAAc,GAAIv26B,GAEzC816B,GAAYji5B,GACdA,EAAS,CAAE5gC,SAAQgM,SAAUilxB,EAAQjlxB,SAAUs9G,MAAO,GAE1D,EAyDEo1sB,GAAGvszB,GACM2w6B,EAAcpkH,GAAGvszB,IAI5B,OAAO8+wB,CACT,CC7tBA,IAAYwyJ,EAAAA,KAAAA,IAAAA,EAKX,KAJC,YACAA,EAAA,oBACAA,EAAA,oBACAA,EAAA,cA0RgC,IAAIz/5B,IAAuB,CAC3D,OACA,gBACA,OACA,KACA,QACA,aAoNI,SAAU0/5B,EAGdC,EACAC,EACAC,GAEA,YAFQ,IAARA,IAAAA,EAAW,KAEJC,EAAgBH,EAAQC,EAAaC,GAAU,EACxD,CAEM,SAAUC,EAGdH,EACAC,EACAC,EACAE,GAEA,IAGIn4yB,EAAWo4yB,GAFU,kBAAhBJ,EAA2BxgW,EAAUwgW,GAAeA,GAEvBh4yB,UAAY,IAAKi4yB,GAEvD,GAAgB,MAAZj4yB,EACF,OAAO,KAGT,IAAIqzR,EAAWglhB,EAAcN,IAmM/B,SAA2B1khB,GACzBA,EAAS3lZ,MAAK,CAACjG,EAAG4H,IAChB5H,EAAEiqD,QAAUriD,EAAEqiD,MACVriD,EAAEqiD,MAAQjqD,EAAEiqD,MAyCpB,SAAwBjqD,EAAa4H,GACnC,IAAIghD,EACF5oD,EAAEhrB,SAAW4yB,EAAE5yB,QAAUgrB,EAAEpnB,MAAM,GAAI,GAAGg4B,OAAM,CAAC9R,EAAGloB,IAAMkoB,IAAM8I,EAAEhxB,KAElE,OAAOgyE,EAKH5oD,EAAEA,EAAEhrB,OAAS,GAAK4yB,EAAEA,EAAE5yB,OAAS,GAG/B,CACN,CArDQ677B,CACE7w6B,EAAE8w6B,WAAW7y7B,KAAK2lG,GAASA,EAAKmt1B,gBAChCnp6B,EAAEkp6B,WAAW7y7B,KAAK2lG,GAASA,EAAKmt1B,kBAG1C,CA3MEC,CAAkBplhB,GAElB,IAAI9wZ,EAAU,KACd,IAAK,IAAIlkB,EAAI,EAAc,MAAXkkB,GAAmBlkB,EAAIg1a,EAAS52a,SAAU4B,EAAG,CAO3D,IAAIq67B,EAAUC,EAAW34yB,GACzBz9H,EAAUq26B,EACRvlhB,EAASh1a,GACTq67B,EACAP,EAEH,CAED,OAAO516B,CACT,CAyCA,SAAS816B,EAGPN,EACA1khB,EACAwlhB,EACAC,QAF2C,IAA3CzlhB,IAAAA,EAA2C,SAC3C,IAAAwlhB,IAAAA,EAA4C,SAClC,IAAVC,IAAAA,EAAa,IAEb,IAAIC,EAAeA,CACjBC,EACAh57B,EACAi57B,KAEA,IAAI5t1B,EAAmC,CACrC4t1B,kBACmB/77B,IAAjB+77B,EAA6BD,EAAMp56B,MAAQ,GAAKq56B,EAClDx4Q,eAAuC,IAAxBu4Q,EAAMv4Q,cACrB+3Q,cAAex47B,EACfg57B,SAGE3t1B,EAAK4t1B,aAAa1mqB,WAAW,OAC/B8jqB,EACEhr1B,EAAK4t1B,aAAa1mqB,WAAWumqB,GAC7B,wBAAwBzt1B,EAAK4t1B,aAA7B,wBACMH,EADN,4GAKFzt1B,EAAK4t1B,aAAe5t1B,EAAK4t1B,aAAa547B,MAAMy47B,EAAWr87B,SAGzD,IAAImjB,EAAOs56B,EAAU,CAACJ,EAAYzt1B,EAAK4t1B,eACnCV,EAAaM,EAAY7x7B,OAAOqkG,GAKhC2t1B,EAAM537B,UAAY437B,EAAM537B,SAAS3E,OAAS,IAC5C457B,GAGkB,IAAhB2C,EAAMh57B,MACN,4FACuC4f,EAAI,MAE7Cy46B,EAAcW,EAAM537B,SAAUiya,EAAUklhB,EAAY346B,KAKpC,MAAdo56B,EAAMp56B,MAAiBo56B,EAAMh57B,QAIjCqza,EAASr2a,KAAK,CACZ4iB,OACA8xD,MAAOyn3B,EAAav56B,EAAMo56B,EAAMh57B,OAChCu47B,cACA,EAaJ,OAXAR,EAAOp67B,SAAQ,CAACq77B,EAAOh57B,KAAS,IAAAo57B,EAE9B,GAAmB,KAAfJ,EAAMp56B,MAA0B,OAAXw56B,EAACJ,EAAMp56B,OAANw56B,EAAYnhkB,SAAS,KAG7C,IAAK,IAAIohkB,KAAYC,EAAwBN,EAAMp56B,MACjDm56B,EAAaC,EAAOh57B,EAAOq57B,QAH7BN,EAAaC,EAAOh57B,EAKrB,IAGIqza,CACT,CAgBA,SAASimhB,EAAwB156B,GAC/B,IAAI+4D,EAAW/4D,EAAKlZ,MAAM,KAC1B,GAAwB,IAApBiyE,EAASl8E,OAAc,MAAO,GAElC,IAAKqxC,KAAUi8oB,GAAQpxmB,EAGnB60hB,EAAa1/jB,EAAMolW,SAAS,KAE5Br4W,EAAWiT,EAAMruC,QAAQ,MAAO,IAEpC,GAAoB,IAAhBsqrB,EAAKttrB,OAGP,OAAO+wmB,EAAa,CAAC3ykB,EAAU,IAAM,CAACA,GAGxC,IAAI0+5B,EAAeD,EAAwBvvQ,EAAK9mrB,KAAK,MAEjDwL,EAAmB,GAqBvB,OAZAA,EAAOzR,QACFu87B,EAAa7z7B,KAAK8z7B,GACP,KAAZA,EAAiB3+5B,EAAW,CAACA,EAAU2+5B,GAASv27B,KAAK,QAKrDuqmB,GACF/+lB,EAAOzR,QAAQu87B,GAIV9q7B,EAAO/I,KAAK2z7B,GACjBz56B,EAAK2yQ,WAAW,MAAqB,KAAb8mqB,EAAkB,IAAMA,GAEpD,CAaA,MAAMI,EAAU,YACVC,EAAsB,EACtBC,EAAkB,EAClBC,EAAoB,EACpBC,EAAqB,GACrBC,GAAgB,EAChBC,EAAWxy6B,GAAoB,MAANA,EAE/B,SAAS4x6B,EAAav56B,EAAc5f,GAClC,IAAI24E,EAAW/4D,EAAKlZ,MAAM,KACtBsz7B,EAAerh3B,EAASl8E,OAS5B,OARIk8E,EAAS6uN,KAAKuypB,KAChBC,GAAgBF,GAGd957B,IACFg67B,GAAgBL,GAGXhh3B,EACJlwD,QAAQlB,IAAOwy6B,EAAQxy6B,KACvBhK,QACC,CAACm0D,EAAOkH,IACNlH,GACC+n3B,EAAQh26B,KAAKm1D,GACV8g3B,EACY,KAAZ9g3B,EACAgh3B,EACAC,IACNG,EAEN,CAiBA,SAASpB,EAIPqB,EACAj6yB,EACAm4yB,QAAY,IAAZA,IAAAA,GAAe,GAEf,IAAI,WAAEI,GAAe0B,EAEjBC,EAAgB,CAAC,EACjBC,EAAkB,IAClB536B,EAA2D,GAC/D,IAAK,IAAIlkB,EAAI,EAAGA,EAAIk67B,EAAW977B,SAAU4B,EAAG,CAC1C,IAAIgtG,EAAOkt1B,EAAWl67B,GAClB+B,EAAM/B,IAAMk67B,EAAW977B,OAAS,EAChC297B,EACkB,MAApBD,EACIn6yB,EACAA,EAAS3/I,MAAM857B,EAAgB197B,SAAW,IAC5CoJ,EAAQw07B,EACV,CAAEz66B,KAAMyrF,EAAK4t1B,aAAcx4Q,cAAep1kB,EAAKo1kB,cAAergrB,OAC9Dg67B,GAGEpB,EAAQ3t1B,EAAK2t1B,MAkBjB,IAfGnz7B,GACDzF,GACA+37B,IACCI,EAAWA,EAAW977B,OAAS,GAAGu87B,MAAMh57B,QAEzC6F,EAAQw07B,EACN,CACEz66B,KAAMyrF,EAAK4t1B,aACXx4Q,cAAep1kB,EAAKo1kB,cACpBrgrB,KAAK,GAEPg67B,KAICv07B,EACH,OAAO,KAGTvG,OAAOD,OAAO667B,EAAer07B,EAAMgL,QAEnC0R,EAAQvlB,KAAK,CAEX6T,OAAQqp7B,EACRl6yB,SAAUk5yB,EAAU,CAACiB,EAAiBt07B,EAAMm6I,WAC5Cs6yB,aAAcC,EACZrB,EAAU,CAACiB,EAAiBt07B,EAAMy07B,gBAEpCtB,UAGyB,MAAvBnz7B,EAAMy07B,eACRH,EAAkBjB,EAAU,CAACiB,EAAiBt07B,EAAMy07B,eAEvD,CAED,OAAO/36B,CACT,CAiHgB,SAAA836B,EAId367B,EACAsgJ,GAEuB,kBAAZtgJ,IACTA,EAAU,CAAEkgB,KAAMlgB,EAAS+grB,eAAe,EAAOrgrB,KAAK,IAGxD,IAAKo67B,EAASC,GA4ChB,SACE766B,EACA6gqB,EACArgrB,QADa,IAAbqgrB,IAAAA,GAAgB,QACb,IAAHrgrB,IAAAA,GAAM,GAEN6Y,EACW,MAAT2G,IAAiBA,EAAKszX,SAAS,MAAQtzX,EAAKszX,SAAS,MACrD,eAAetzX,EAAf,oCACMA,EAAKngB,QAAQ,MAAO,MAD1B,qIAGsCmgB,EAAKngB,QAAQ,MAAO,MAAK,MAGjE,IAAIoR,EAA8B,GAC9B6p7B,EACF,IACA966B,EACGngB,QAAQ,UAAW,IACnBA,QAAQ,OAAQ,KAChBA,QAAQ,qBAAsB,QAC9BA,QACC,qBACA,CAAC6/B,EAAWow5B,EAAmBliV,KAC7B38lB,EAAO7T,KAAK,CAAE0y7B,YAAWliV,WAA0B,MAAdA,IAC9BA,EAAa,eAAiB,gBAIzC5tlB,EAAKszX,SAAS,MAChBriY,EAAO7T,KAAK,CAAE0y7B,UAAW,MACzBgL,GACW,MAAT966B,GAAyB,OAATA,EACZ,QACA,qBACGxf,EAETs67B,GAAgB,QACE,KAAT966B,GAAwB,MAATA,IAQxB866B,GAAgB,iBAKlB,IAAIF,EAAU,IAAIn06B,OAAOq06B,EAAcj6Q,OAAgBvjrB,EAAY,KAEnE,MAAO,CAACs97B,EAAS3p7B,EACnB,CAjGkC8p7B,CAC9Bj77B,EAAQkgB,KACRlgB,EAAQ+grB,cACR/grB,EAAQU,KAGNyF,EAAQm6I,EAASn6I,MAAM207B,GAC3B,IAAK307B,EAAO,OAAO,KAEnB,IAAIs07B,EAAkBt07B,EAAM,GACxBy07B,EAAeH,EAAgB167B,QAAQ,UAAW,MAClDm77B,EAAgB/07B,EAAMxF,MAAM,GAuBhC,MAAO,CACLwQ,OAvBmB4p7B,EAAel96B,QAClC,CAACuwY,EAAI37Y,EAA6BnS,KAAS,IAApC,UAAE0v7B,EAAS,WAAEliV,GAAYr7lB,EAG9B,GAAkB,MAAdu96B,EAAmB,CACrB,IAAImL,EAAaD,EAAc567B,IAAU,GACzCs67B,EAAeH,EACZ957B,MAAM,EAAG857B,EAAgB197B,OAASo+7B,EAAWp+7B,QAC7CgD,QAAQ,UAAW,KACvB,CAED,MAAMD,EAAQo77B,EAAc567B,GAM5B,OAJE8tZ,EAAK4hiB,GADHliV,IAAehumB,OACCtC,GAECsC,GAAS,IAAIC,QAAQ,OAAQ,KAE3CquZ,CAAI,GAEb,CAAC,GAKD9tQ,SAAUm6yB,EACVG,eACA567B,UAEJ,CA2DM,SAAUi57B,EAAWn57B,GACzB,IACE,OAAOA,EACJkH,MAAM,KACNhB,KAAKg5B,GAAMwjW,mBAAmBxjW,GAAGj/B,QAAQ,MAAO,SAChDwD,KAAK,KACR,MAAOuV,GAQP,OAPAS,GACE,EACA,iBAAiBzZ,EAAjB,oHAEegZ,EAAK,MAGfhZ,CACR,CACH,CAKgB,SAAA447B,EACdp4yB,EACAi4yB,GAEA,GAAiB,MAAbA,EAAkB,OAAOj4yB,EAE7B,IAAKA,EAAS7yI,cAAcolR,WAAW0lqB,EAAS9q7B,eAC9C,OAAO,KAKT,IAAI40tB,EAAak2N,EAAS/kjB,SAAS,KAC/B+kjB,EAASx77B,OAAS,EAClBw77B,EAASx77B,OACTq+7B,EAAW96yB,EAASt5H,OAAOq7sB,GAC/B,OAAI+4N,GAAyB,MAAbA,EAEP,KAGF96yB,EAAS3/I,MAAM0huB,IAAe,GACvC,CA2CA,SAASg5N,EACPrna,EACA//d,EACA4yE,EACA3mH,GAEA,MACE,qBAAqB8zgB,EAArB,2CACQ//d,EAAK,YAAah6C,KAAK5W,UAC7B6c,GAFF,yCAIQ2mH,EAJR,2HAOJ,CAyBM,SAAUy0zB,EAEdz46B,GACA,OAAOA,EAAQkG,QACb,CAAC5iB,EAAO7F,IACI,IAAVA,GAAgB6F,EAAMmz7B,MAAMp56B,MAAQ/Z,EAAMmz7B,MAAMp56B,KAAKnjB,OAAS,GAEpE,CAIgB,SAAAw+7B,EAEd146B,EAAc246B,GACd,IAAIC,EAAcH,EAA2Bz46B,GAK7C,OAAI246B,EACKC,EAAYz17B,KAAI,CAACG,EAAOuhB,IAC7BA,IAAQ+z6B,EAAY1+7B,OAAS,EAAIoJ,EAAMm6I,SAAWn6I,EAAMy07B,eAIrDa,EAAYz17B,KAAKG,GAAUA,EAAMy07B,cAC1C,CAKM,SAAUc,EACdC,EACAC,EACAC,EACAC,GAEA,IAAI3w5B,OAFU,IAAd2w5B,IAAAA,GAAiB,GAGI,kBAAVH,EACTxw5B,EAAK2sjB,EAAU6jW,IAEfxw5B,EAAE71B,EAAQ,GAAAqm7B,GAEVhF,GACGxr5B,EAAGm1G,WAAan1G,EAAGm1G,SAASi4O,SAAS,KACtC8ikB,EAAoB,IAAK,WAAY,SAAUlw5B,IAEjDwr5B,GACGxr5B,EAAGm1G,WAAan1G,EAAGm1G,SAASi4O,SAAS,KACtC8ikB,EAAoB,IAAK,WAAY,OAAQlw5B,IAE/Cwr5B,GACGxr5B,EAAGhrC,SAAWgrC,EAAGhrC,OAAOo4X,SAAS,KAClC8ikB,EAAoB,IAAK,SAAU,OAAQlw5B,KAI/C,IAGI3rC,EAHAu87B,EAAwB,KAAVJ,GAAgC,KAAhBxw5B,EAAGm1G,SACjC07yB,EAAaD,EAAc,IAAM5w5B,EAAGm1G,SAaxC,GAAkB,MAAd07yB,EACFx87B,EAAOq87B,MACF,CACL,IAAII,EAAqBL,EAAe7+7B,OAAS,EAMjD,IAAK++7B,GAAkBE,EAAWnpqB,WAAW,MAAO,CAClD,IAAIqpqB,EAAaF,EAAWh17B,MAAM,KAElC,KAAyB,OAAlBk17B,EAAW,IAChBA,EAAW706B,QACX406B,GAAsB,EAGxB9w5B,EAAGm1G,SAAW47yB,EAAW347B,KAAK,IAC/B,CAED/D,EAAOy87B,GAAsB,EAAIL,EAAeK,GAAsB,GACvE,CAED,IAAI/76B,WAzKsBirB,EAAQgx5B,QAAY,IAAZA,IAAAA,EAAe,KACjD,IACE77yB,SAAU07yB,EAAU,OACpB777B,EAAS,GAAE,KACX2F,EAAO,IACS,kBAAPqlC,EAAkB2sjB,EAAU3sjB,GAAMA,EAEzCm1G,EAAW07yB,EACXA,EAAWnpqB,WAAW,KACpBmpqB,EAWR,SAAyBzC,EAAsB4C,GAC7C,IAAIlj3B,EAAWkj3B,EAAap87B,QAAQ,OAAQ,IAAIiH,MAAM,KAYtD,OAXuBuy7B,EAAavy7B,MAAM,KAEzB/I,SAASi7E,IACR,OAAZA,EAEED,EAASl8E,OAAS,GAAGk8E,EAASnhB,MACb,MAAZohB,GACTD,EAAS37E,KAAK47E,EACf,IAGID,EAASl8E,OAAS,EAAIk8E,EAAS11E,KAAK,KAAO,GACpD,CAxBQ647B,CAAgBJ,EAAYG,GAC9BA,EAEJ,MAAO,CACL77yB,WACAngJ,OAAQk87B,EAAgBl87B,GACxB2F,KAAMw27B,EAAcx27B,GAExB,CAuJay27B,CAAYpx5B,EAAI3rC,GAGvBg97B,EACFR,GAA6B,MAAfA,GAAsBA,EAAWxojB,SAAS,KAEtDipjB,GACDV,GAA8B,MAAfC,IAAuBH,EAAiBrojB,SAAS,KAQnE,OANGtzX,EAAKogI,SAASkzP,SAAS,OACvBgpjB,IAA4BC,IAE7Bv86B,EAAKogI,UAAY,KAGZpgI,CACT,OAiBas56B,EAAa1y3B,GACxBA,EAAMvjE,KAAK,KAAKxD,QAAQ,SAAU,KAKvB867B,EAAqBv6yB,GAChCA,EAASvgJ,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,KAKlCs87B,EAAmBl87B,GAC7BA,GAAqB,MAAXA,EAEPA,EAAO0yR,WAAW,KAClB1yR,EACA,IAAMA,EAHN,GAQOm87B,EAAiBx27B,GAC3BA,GAAiB,MAATA,EAAoBA,EAAK+sR,WAAW,KAAO/sR,EAAO,IAAMA,EAAzC,GAwDgB4I,MAySpC,SAAUgu7B,EAAqB5j7B,GACnC,OACW,MAATA,GACwB,kBAAjBA,EAAM64C,QACe,kBAArB74C,EAAM48pB,YACa,mBAAnB58pB,EAAM6j7B,UACb,SAAU7j7B,CAEd,CClgCA,MAAM8j7B,EAAgD,CACpD,OACA,MACA,QACA,UAMIC,GAJuB,IAAInk6B,IAC/Bkk6B,GAG2C,CAC3C,SACGA,IAEuB,IAAIlk6B,IAAgBmk6B,GAEpB,IAAInk6B,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACf,IAAIA,IAAI,CAAC,IAAK,MAwoFlB0B,OAAO,gPC9vGtC,MAAM0i6B,EACX307B,EAAAA,cAAoD,MAK/C,MAAM407B,EAAyB507B,EAAAA,cAEpC,MA8CK,MAAM607B,EAAoB707B,EAAAA,cAC/B,MAYK,MAAM807B,EAAkB907B,EAAAA,cAC7B,YAaW+07B,GAAe/07B,EAAAA,cAAwC,CAClEg17B,OAAQ,KACRt66B,QAAS,GACTu66B,aAAa,IAOR,MAAMC,GAAoBl17B,EAAAA,cAAyB,MClFnD,SAASm17B,KACd,OAA4C,MAArCn17B,EAAAA,WAAiB807B,EAC1B,CAYO,SAASM,KAQd,OANED,MADFE,GAAU,GAOHr17B,EAAAA,WAAiB807B,GAAiBv86B,QAC3C,CAkDA,SAAS+86B,GACP5y5B,GAEe1iC,EAAAA,WAAiB607B,GAAmBhoU,QAKjD7snB,EAAAA,gBAAsB0iC,EAE1B,CAQO,SAAS6y5B,KACd,IAAI,YAAEN,GAAgBj17B,EAAAA,WAAiB+07B,IAGvC,OAAOE,EAq4BT,WACE,IAAI,OAAEO,GAAWC,GAAqBC,GAAeC,mBACjDhg6B,EAAKig6B,GAAkBC,GAAoBF,mBAE3CG,EAAY917B,EAAAA,QAAa,GAsB7B,OArBAs17B,IAA0B,KACxBQ,EAAU707B,SAAU,CAAI,IAGOjB,EAAAA,aAC/B,SAACgjC,EAAiB3uC,QAAwB,IAAxBA,IAAAA,EAA2B,CAAC,GAKvCyh8B,EAAU707B,UAEG,kBAAP+hC,EACTwy5B,EAAOO,SAAS/y5B,GAEhBwy5B,EAAOO,SAAS/y5B,EAAE71B,EAAA,CAAI6o7B,YAAarg6B,GAAOthC,IAE9C,GACA,CAACmh8B,EAAQ7/5B,GAIb,CAh6BuBsg6B,GAGvB,WAEId,MADFE,GAAU,GAOV,IAAIa,EAAoBl27B,EAAAA,WAAiB207B,IACrC,SAAEvE,EAAQ,OAAE+F,EAAM,UAAEvh5B,GAAc50C,EAAAA,WAAiB607B,IACnD,QAAEn66B,GAAY1a,EAAAA,WAAiB+07B,KAC7B58yB,SAAUu7yB,GAAqB0B,KAEjCgB,EAAqBtk7B,KAAK5W,UAC5Bm77B,EAAoB376B,EAASy76B,EAAO9C,uBAGlCyC,EAAY917B,EAAAA,QAAa,GAqD7B,OApDAs17B,IAA0B,KACxBQ,EAAU707B,SAAU,CAAI,IAGOjB,EAAAA,aAC/B,SAACgjC,EAAiB3uC,GAKhB,QALwC,IAAxBA,IAAAA,EAA2B,CAAC,IAKvCyh8B,EAAU707B,QAAS,OAExB,GAAkB,kBAAP+hC,EAET,YADA4R,EAAUq2xB,GAAGjoyB,GAIf,IAAIjrB,EAAOw76B,EACTvw5B,EACAlxB,KAAKxW,MAAM867B,GACX1C,EACqB,SAArBr/7B,EAAQ+o3B,UASe,MAArB84E,GAA0C,MAAb9F,IAC/Br46B,EAAKogI,SACe,MAAlBpgI,EAAKogI,SACDi4yB,EACAiB,EAAU,CAACjB,EAAUr46B,EAAKogI,aAG/B9jJ,EAAQuD,QAAUg9C,EAAUh9C,QAAUg9C,EAAUz/C,MACjD4iB,EACA1jB,EAAQsgC,MACRtgC,EAEJ,GACA,CACE+77B,EACAx74B,EACAwh5B,EACA1C,EACAwC,GAKN,CA1E6CI,EAC7C,CAkKO,SAASC,GACdrG,EACAC,EACAqG,EACAL,GAGEhB,MADFE,GAAU,GAOV,IAAI,UAAEzg5B,GAAc50C,EAAAA,WAAiB607B,IAC/Bn66B,QAAS+76B,GAAkBz27B,EAAAA,WAAiB+07B,IAC9C2B,EAAaD,EAAcA,EAAc7h8B,OAAS,GAClD+h8B,EAAeD,EAAaA,EAAW1t7B,OAAS,CAAC,EAEjD4t7B,GADiBF,GAAaA,EAAWv+yB,SACpBu+yB,EAAaA,EAAWjE,aAAe,KAC9CiE,GAAcA,EAAWvF,MAqC3C,IAEI546B,EAFAs+6B,EAAsBzB,KAG1B,GAAIjF,EAAa,KAAA2G,EACf,IAAIC,EACqB,kBAAhB5G,EAA2BxgW,EAAUwgW,GAAeA,EAGpC,MAAvByG,IAC4B,OADFE,EACxBC,EAAkB5+yB,eAAQ,EAA1B2+yB,EAA4BpsqB,WAAWksqB,KAF3CvB,GAAU,GASV986B,EAAWw+6B,CACb,MACEx+6B,EAAWs+6B,EAGb,IAAI1+yB,EAAW5/H,EAAS4/H,UAAY,IAEhCo6yB,EAAoBp6yB,EACxB,GAA2B,MAAvBy+yB,EAA4B,CAe9B,IAAII,EAAiBJ,EAAmBh/7B,QAAQ,MAAO,IAAIiH,MAAM,KAEjE0z7B,EAAoB,IADLp6yB,EAASvgJ,QAAQ,MAAO,IAAIiH,MAAM,KACdrG,MAAMw+7B,EAAepi8B,QAAQwG,KAAK,IACvE,CAEA,IAAIsf,EAAUu16B,EAAYC,EAAQ,CAAE/3yB,SAAUo6yB,IAmB9C,IAAI0E,EAAkBC,GACpBx86B,GACEA,EAAQ7c,KAAKG,GACXvG,OAAOD,OAAO,CAAC,EAAGwG,EAAO,CACvBgL,OAAQvR,OAAOD,OAAO,CAAC,EAAGm/7B,EAAc347B,EAAMgL,QAC9CmvI,SAAUk5yB,EAAU,CAClBuF,EAEAhi5B,EAAU+64B,eACN/64B,EAAU+64B,eAAe3x7B,EAAMm6I,UAAUA,SACzCn6I,EAAMm6I,WAEZs6yB,aACyB,MAAvBz07B,EAAMy07B,aACFmE,EACAvF,EAAU,CACRuF,EAEAhi5B,EAAU+64B,eACN/64B,EAAU+64B,eAAe3x7B,EAAMy07B,cAAct6yB,SAC7Cn6I,EAAMy07B,mBAIxBgE,EACAD,EACAL,GAMF,OAAIhG,GAAe8G,EAEfj37B,EAAAA,cAAC807B,EAAgB307B,SAAQ,CACvBxI,MAAO,CACL4gB,SAAQpL,EAAA,CACNgrI,SAAU,IACVngJ,OAAQ,GACR2F,KAAM,GACNg3B,MAAO,KACPl/B,IAAK,WACF8iB,GAEL4+6B,eAAgB7I,EAAegB,MAGhC2H,GAKAA,CACT,CAEA,SAASG,KACP,IAAIzm7B,EA0cC,WAAkC,IAAA0m7B,EACvC,IAAI1m7B,EAAQ3Q,EAAAA,WAAiBk17B,IACzBvg6B,EAAQ2i6B,GAAmBzB,GAAoB0B,eAC/CC,EAAU5B,GAAkBC,GAAoB0B,eAIpD,QAAcli8B,IAAVsb,EACF,OAAOA,EAIT,OAAO,OAAP0m7B,EAAO1i6B,EAAMg1S,aAAN,EAAA0tnB,EAAeG,EACxB,CAvdcC,GACR9wzB,EAAU4tzB,EAAqB5j7B,GAC5BA,EAAM64C,OAAU,IAAA74C,EAAM48pB,WACzB58pB,aAAiBpK,MACjBoK,EAAMg2H,QACN70H,KAAK5W,UAAUyV,GACfuxD,EAAQvxD,aAAiBpK,MAAQoK,EAAMuxD,MAAQ,KAC/C5d,EAAY,yBACZoz4B,EAAY,CAAExu6B,QAAS,SAAUoC,gBAAiBg5B,GAsBtD,OACEtkD,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAI,2CACJA,EAAAA,cAAA,MAAI6gB,MAAO,CAAEqO,UAAW,WAAay3G,GACpCzkE,EAAQliE,EAAAA,cAAA,OAAK6gB,MAAO626B,GAAYx13B,GAAe,KAvBtC,KA2BhB,CAEA,MAAMy13B,GAAsB337B,EAAAA,cAACo37B,GAAqB,MAgB3C,MAAMQ,WAA4B537B,EAAAA,UAIvCc,WAAAA,CAAYxH,GACVi8X,MAAMj8X,GACN/E,KAAKogC,MAAQ,CACXpc,SAAUjf,EAAMif,SAChBs/6B,aAAcv+7B,EAAMu+7B,aACpBln7B,MAAOrX,EAAMqX,MAEjB,CAEA,+BAAOwtB,CAAyBxtB,GAC9B,MAAO,CAAEA,MAAOA,EAClB,CAEA,+BAAOytB,CACL9kC,EACAq7B,GAUA,OACEA,EAAMpc,WAAajf,EAAMif,UACD,SAAvBoc,EAAMkj6B,cAAkD,SAAvBv+7B,EAAMu+7B,aAEjC,CACLln7B,MAAOrX,EAAMqX,MACb4H,SAAUjf,EAAMif,SAChBs/6B,aAAcv+7B,EAAMu+7B,cAQjB,CACLln7B,WAAuBtb,IAAhBiE,EAAMqX,MAAsBrX,EAAMqX,MAAQgkB,EAAMhkB,MACvD4H,SAAUoc,EAAMpc,SAChBs/6B,aAAcv+7B,EAAMu+7B,cAAgBlj6B,EAAMkj6B,aAE9C,CAEA71B,iBAAAA,CAAkBrx5B,EAAYmn7B,GAC5Bnn1B,QAAQhgG,MACN,wDACAA,EACAmn7B,EAEJ,CAEA/j6B,MAAAA,GACE,YAA4B1+B,IAArBd,KAAKogC,MAAMhkB,MAChB3Q,EAAAA,cAAC+07B,GAAa507B,SAAQ,CAACxI,MAAOpD,KAAK+E,MAAMy+7B,cACvC/37B,EAAAA,cAACk17B,GAAkB/07B,SAAQ,CACzBxI,MAAOpD,KAAKogC,MAAMhkB,MAClBpX,SAAUhF,KAAK+E,MAAMsT,aAIzBrY,KAAK+E,MAAMC,QAEf,EASF,SAASy+7B,GAAa1t7B,GAAwD,IAAvD,aAAEyt7B,EAAY,MAAE/57B,EAAK,SAAEzE,GAA8B+Q,EACtE4r7B,EAAoBl27B,EAAAA,WAAiB207B,GAazC,OAREuB,GACAA,EAAkBrpU,QAClBqpU,EAAkBtjU,gBACjB50nB,EAAMmz7B,MAAM8G,cAAgBj67B,EAAMmz7B,MAAM+G,iBAEzChC,EAAkBtjU,cAAculU,2BAA6Bn67B,EAAMmz7B,MAAMx75B,IAIzE31B,EAAAA,cAAC+07B,GAAa507B,SAAQ,CAACxI,MAAOog8B,GAC3Bx+7B,EAGP,CAEO,SAAS297B,GACdx86B,EACA+76B,EACAD,EACAL,GAC2B,IAAAiC,EAC3B,QAJ2B,IAA3B3B,IAAAA,EAA8B,SACc,IAA5CD,IAAAA,EAA+C,WACX,IAApCL,IAAAA,EAAuC,MAExB,MAAXz76B,EAAiB,KAAA296B,EACnB,IAAK7B,EACH,OAAO,KAGT,GAAIA,EAAgB7snB,OAGlBjvT,EAAU876B,EAAgB976B,YACrB,MACL,OAAA296B,EAAAlC,IAAAkC,EAAQC,qBACiB,IAAzB7B,EAAc7h8B,SACb4h8B,EAAgB+B,aACjB/B,EAAgB976B,QAAQ9lB,OAAS,GAUjC,OAAO,KAFP8lB,EAAU876B,EAAgB976B,OAG5B,CACF,CAEA,IAAIu86B,EAAkBv86B,EAGlBivT,EAAS,OAAHyunB,EAAG5B,QAAA,EAAA4B,EAAiBzunB,OAC9B,GAAc,MAAVA,EAAgB,CAClB,IAAI6unB,EAAavB,EAAgBzrvB,WAC9BnkL,GAAMA,EAAE8p6B,MAAMx75B,SAA+BtgC,KAAnB,MAANs0U,OAAM,EAANA,EAAStiT,EAAE8p6B,MAAMx75B,OAGtC6i6B,GAAc,GADhBnD,GAAU,GAMV4B,EAAkBA,EAAgBz+7B,MAChC,EACApB,KAAK8mB,IAAI+46B,EAAgBri8B,OAAQ4j8B,EAAa,GAElD,CAIA,IAAIC,GAAiB,EACjBC,GAAiB,EACrB,GAAIlC,GAAmBL,GAAUA,EAAOmC,oBACtC,IAAK,IAAI9h8B,EAAI,EAAGA,EAAIyg8B,EAAgBri8B,OAAQ4B,IAAK,CAC/C,IAAIwH,EAAQi57B,EAAgBzg8B,GAM5B,IAJIwH,EAAMmz7B,MAAMwH,iBAAmB367B,EAAMmz7B,MAAMyH,0BAC7CF,EAAgBli8B,GAGdwH,EAAMmz7B,MAAMx75B,GAAI,CAClB,IAAI,WAAEkj6B,EAAU,OAAElvnB,GAAW6snB,EACzBsC,EACF967B,EAAMmz7B,MAAM7d,aACmBj+6B,IAA/Bwj8B,EAAW767B,EAAMmz7B,MAAMx75B,OACrBg0S,QAAqCt0U,IAA3Bs0U,EAAO3rU,EAAMmz7B,MAAMx75B,KACjC,GAAI33B,EAAMmz7B,MAAMvhB,MAAQkpB,EAAkB,CAIxCL,GAAiB,EAEfxB,EADEyB,GAAiB,EACDzB,EAAgBz+7B,MAAM,EAAGkg8B,EAAgB,GAEzC,CAACzB,EAAgB,IAErC,KACF,CACF,CACF,CAGF,OAAOA,EAAgB90M,aAAY,CAAC6yM,EAAQh37B,EAAO7F,KAEjD,IAAIwY,EACAoo7B,GAA8B,EAC9Bd,EAAuC,KACvCW,EAAiD,KA0VzD,IAAqBnj8B,EAzVb+g8B,IACF7l7B,EAAQg5T,GAAU3rU,EAAMmz7B,MAAMx75B,GAAKg0S,EAAO3rU,EAAMmz7B,MAAMx75B,SAAMtgC,EAC5D4i8B,EAAej67B,EAAMmz7B,MAAM8G,cAAgBN,GAEvCc,IACEC,EAAgB,GAAe,IAAVvg8B,GAoVZ1C,EAlVT,kBACA,GAkVIuj8B,GAAcvj8B,KAC1Buj8B,GAAcvj8B,IAAO,GAhVfsj8B,GAA8B,EAC9BH,EAAyB,MAChBF,IAAkBvg8B,IAC3B4g8B,GAA8B,EAC9BH,EAAyB567B,EAAMmz7B,MAAMyH,wBAA0B,QAKrE,IAAIl+6B,EAAU+76B,EAAct37B,OAAO837B,EAAgBz+7B,MAAM,EAAGL,EAAQ,IAChEylvB,EAAcA,KAChB,IAAIrkvB,EAkBJ,OAhBEA,EADEoX,EACSsn7B,EACFc,EACEH,EACF567B,EAAMmz7B,MAAMl56B,UAOVjY,EAAAA,cAAChC,EAAMmz7B,MAAMl56B,UAAS,MACxBja,EAAMmz7B,MAAMh27B,QACV6C,EAAMmz7B,MAAMh27B,QAEZ657B,EAGXh17B,EAAAA,cAACg47B,GAAa,CACZh67B,MAAOA,EACP+57B,aAAc,CACZ/C,SACAt66B,UACAu66B,YAAgC,MAAnBuB,GAEfj97B,SAAUA,GACV,EAMN,OAAOi97B,IACJx47B,EAAMmz7B,MAAM+G,eAAiBl67B,EAAMmz7B,MAAM8G,cAA0B,IAAV9/7B,GAC1D6H,EAAAA,cAAC437B,GAAmB,CAClBr/6B,SAAUi+6B,EAAgBj+6B,SAC1Bs/6B,aAAcrB,EAAgBqB,aAC9Bjr7B,UAAWqr7B,EACXtn7B,MAAOA,EACPpX,SAAUqkvB,IACVm6M,aAAc,CAAE/C,OAAQ,KAAMt66B,UAASu66B,aAAa,KAGtDr3M,GACD,GACA,KACL,CAAC,IAEI83M,GAAc,SAAdA,GAAc,OAAdA,EAAc,wBAAdA,EAAc,gCAAdA,EAAc,gCAAdA,CAAc,EAAdA,IAAc,IAMdG,GAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,wBAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,wCAAnBA,EAAmB,wBAAnBA,EAAmB,gCAAnBA,EAAmB,gCAAnBA,EAAmB,wBAAnBA,CAAmB,EAAnBA,IAAmB,IAmBxB,SAASJ,GAAqBwD,GAC5B,IAAI/qqB,EAAMluR,EAAAA,WAAiB207B,GAE3B,OADUzmqB,GAAVmnqB,GAAU,GACHnnqB,CACT,CAEA,SAASopqB,GAAmB2B,GAC1B,IAAItk6B,EAAQ30B,EAAAA,WAAiB407B,GAE7B,OADUjg6B,GAAV0g6B,GAAU,GACH1g6B,CACT,CASA,SAASih6B,GAAkBqD,GACzB,IAAI9H,EARN,WACE,IAAIA,EAAQnx7B,EAAAA,WAAiB+07B,IAE7B,OADU5D,GAAVkE,GAAU,GACHlE,CACT,CAIc+H,GACRC,EAAYhI,EAAMz26B,QAAQy26B,EAAMz26B,QAAQ9lB,OAAS,GAKrD,OAHEuk8B,EAAUhI,MAAMx75B,IADlB0/5B,GAAU,GAIH8D,EAAUhI,MAAMx75B,EACzB,CA4NA,MAAMqj6B,GAAyC,CAAC,ECvlChD,MAAMI,GAA4C,CAAC,EASnD,MAAMC,GAAiBA,CAACl7mB,EAAct5S,EAAaw4B,KAP5C,IAA+BspE,EAC/ByyzB,GAD+BzyzB,EAUlC,kDAAwC9hG,EAAxC,sBACuBs5S,EADvB,4DAE+B9gR,EAAI,OAVnC+73B,GAAczyzB,IAAW,EACzBh2B,QAAQE,KAAK81B,GAUd,EAEI,SAAS2yzB,GACdC,EACAC,GAEiB,MAAZD,GAAAA,EAAcE,oBACjBJ,GACE,qBACA,kFACA,kEAKD,MAAAE,GAAAA,EAAclG,sBACbmG,GAAiBA,EAAanG,sBAEhCgG,GACE,uBACA,kEACA,oEAIAG,IACGA,EAAaE,mBAChBL,GACE,oBACA,yDACA,iEAICG,EAAaG,wBAChBN,GACE,yBACA,uEACA,sEAICG,EAAalB,qBAChBe,GACE,sBACA,wDACA,mEAICG,EAAaI,gCAChBP,GACE,iCACA,+EACA,8EAIR,CCY4Br57B,EAAsB,gBAgT3C,SAAS657B,GAAMC,GACpBzE,GAAU,EAKZ,CAqBO,SAAS0E,GAAM1iI,GAQqB,IAPzC+4H,SAAU4J,EAAe,IAAG,SAC5Bzg8B,EAAW,KACXgf,SAAU0h7B,EAAY,eACtB9C,EAAiB7I,EAAegB,IAAG,UACnC164B,EACAi4kB,OAAQqtU,GAAa,EAAK,OAC1B/D,GACY9+H,EAET89H,MADHE,GAAU,GAQV,IAAIjF,EAAW4J,EAAapi8B,QAAQ,OAAQ,KACxCui8B,EAAoBn67B,EAAAA,SACtB,KAAM,CACJow7B,WACAx74B,YACAi4kB,OAAQqtU,EACR/D,OAAMhp7B,EAAA,CACJkm7B,sBAAsB,GACnB8C,MAGP,CAAC/F,EAAU+F,EAAQvh5B,EAAWsl5B,IAGJ,kBAAjBD,IACTA,EAAetqW,EAAUsqW,IAG3B,IAAI,SACF9hzB,EAAW,IAAG,OACdngJ,EAAS,GAAE,KACX2F,EAAO,GAAE,MACTg3B,EAAQ,KAAI,IACZl/B,EAAM,WACJwk8B,EAEAG,EAAkBp67B,EAAAA,SAAc,KAClC,IAAIq67B,EAAmB9J,EAAcp4yB,EAAUi4yB,GAE/C,OAAwB,MAApBiK,EACK,KAGF,CACL9h7B,SAAU,CACR4/H,SAAUkizB,EACVri8B,SACA2F,OACAg3B,QACAl/B,OAEF0h8B,iBACD,GACA,CAAC/G,EAAUj4yB,EAAUngJ,EAAQ2F,EAAMg3B,EAAOl/B,EAAK0h8B,IASlD,OAAuB,MAAnBiD,EACK,KAIPp67B,EAAAA,cAAC607B,EAAkB107B,SAAQ,CAACxI,MAAOwi8B,GACjCn67B,EAAAA,cAAC807B,EAAgB307B,SAAQ,CAAC5G,SAAUA,EAAU5B,MAAOyi8B,IAG3D,CAaO,SAASE,GAAMzhI,GAGqB,IAHpB,SACrBt/zB,EAAQ,SACRgf,GACYsgzB,EACZ,OF3KO09H,GE2KUgE,GAAyBhh8B,GAAWgf,EACvD,CAuC4B,IAAIo7G,SAAQ,SAEP3zH,EAAAA,UAkH1B,SAASu67B,GACdhh8B,EACA037B,QAAoB,IAApBA,IAAAA,EAAuB,IAEvB,IAAIf,EAAwB,GA6D5B,OA3DAlw7B,EAAAA,SAAelK,QAAQyD,GAAU,CAAC4B,EAAShD,KACzC,IAAK6H,EAAAA,eAAqB7E,GAGxB,OAGF,IAAIq/7B,EAAW,IAAIvJ,EAAY947B,GAE/B,GAAIgD,EAAQ9B,OAAS2G,EAAAA,SAMnB,YAJAkw7B,EAAO/67B,KAAKyM,MACVsu7B,EACAqK,GAAyBp/7B,EAAQ7B,MAAMC,SAAUih8B,IAMnDr/7B,EAAQ9B,OAASwg8B,IADnBxE,GAAU,GAQPl67B,EAAQ7B,MAAMnB,OAAUgD,EAAQ7B,MAAMC,UADzC877B,GAAU,GAKV,IAAIlE,EAAqB,CACvBx75B,GAAIx6B,EAAQ7B,MAAMq8B,IAAM6k6B,EAASp/7B,KAAK,KACtCw9qB,cAAez9qB,EAAQ7B,MAAMs/qB,cAC7Bz9qB,QAASA,EAAQ7B,MAAM6B,QACvB8c,UAAW9c,EAAQ7B,MAAM2e,UACzB9f,MAAOgD,EAAQ7B,MAAMnB,MACrB4f,KAAM5c,EAAQ7B,MAAMye,KACpBu75B,OAAQn46B,EAAQ7B,MAAMg66B,OACtB/m6B,OAAQpR,EAAQ7B,MAAMiT,OACtB0r7B,aAAc987B,EAAQ7B,MAAM2+7B,aAC5BC,cAAe/87B,EAAQ7B,MAAM4+7B,cAC7BuC,iBACiC,MAA/Bt/7B,EAAQ7B,MAAM4+7B,eACgB,MAA9B/87B,EAAQ7B,MAAM2+7B,aAChByC,iBAAkBv/7B,EAAQ7B,MAAMoh8B,iBAChCtxgB,OAAQjub,EAAQ7B,MAAM8vb,OACtBwmf,KAAMz06B,EAAQ7B,MAAMs26B,MAGlBz06B,EAAQ7B,MAAMC,WAChB437B,EAAM537B,SAAWgh8B,GACfp/7B,EAAQ7B,MAAMC,SACdih8B,IAIJtK,EAAO/67B,KAAKg87B,EAAM,IAGbjB,CACT,CC1fgD,IAAI3/5B,IAAI,CACtD,oCACA,sBACA,eCeF,IACE4D,OAAOwm6B,qBAHT,GAIC,CAAC,MAAO7j8B,IACP,CAgJiE,IAAI0jY,IAkCvE,MACMogkB,GAAsB567B,EAAsB,gBAE5B667B,EAAmB,UAEvB767B,EAAY,MAiWxB,SAAU867B,GAAatkI,GAKR,IALS,SAC5B45H,EAAQ,SACR727B,EAAQ,OACR487B,EAAM,OACNhi6B,GACmBqiyB,EACfukI,EAAa/67B,EAAAA,SRlbH,IACd3L,EQkb0B,MAAtB0m8B,EAAW957B,UACb857B,EAAW957B,cRnbb,KAAA5M,EQmb4C,CAAE8/B,SAAQi75B,UAAU,MRnbhE/67B,EAAiC,CAAC,GAoB3B267B,GAlBP,SACE765B,EACAk75B,GAEA,IAAI,SAAEl3yB,EAAQ,OAAEngJ,EAAM,KAAE2F,GAASw2B,EAAO5b,SACxC,OAAOo26B,EACL,GACA,CAAEx2yB,WAAUngJ,SAAQ2F,QAEnB0x7B,EAAc165B,OAAS065B,EAAc165B,MAAM+55B,KAAQ,KACnDW,EAAc165B,OAAS065B,EAAc165B,MAAMl/B,KAAQ,UAExD,IAEA,SAA2B0+B,EAAgB6O,GACzC,MAAqB,kBAAPA,EAAkBA,EAAK4r5B,EAAW5r5B,EAClD,GAKE,KACA3uC,KQ8ZF,IAAImpyB,EAAUu9J,EAAW957B,SACpB0zB,EAAOqm6B,GAAgBh77B,EAAAA,SAAe,CACzCuM,OAAQixxB,EAAQjxxB,OAChBgM,SAAUilxB,EAAQjlxB,YAEhB,mBAAEkh7B,GAAuBtD,GAAU,CAAC,EACpC7jQ,EAAWtyrB,EAAAA,aACZwmuB,IACCizN,GAAsBmB,GAClBA,IAAoB,IAAMI,EAAax0N,KACvCw0N,EAAax0N,EAAS,GAE5B,CAACw0N,EAAcvB,IAOjB,OAJAz57B,EAAAA,iBAAsB,IAAMw9xB,EAAQkyJ,OAAOp9P,IAAW,CAACkrG,EAASlrG,IAEhEtyrB,EAAAA,WAAgB,IAAMi77B,GAAyB9E,IAAS,CAACA,IAGvDn27B,EAAAA,cAAC+57B,GAAM,CACL3J,SAAUA,EACV727B,SAAUA,EACVgf,SAAUoc,EAAMpc,SAChB4+6B,eAAgBxi6B,EAAMpoB,OACtBqoC,UAAW4ovB,EACX24J,OAAQA,GAGd,CA0HoB,qBAAXhi6B,QACoB,qBAApBA,OAAOl+B,UACPk+B,OAAOl+B,SAASC,cAyazB,IAAKw/7B,GAAAA,GAQAG,GAAAA,IARAH,GAAAA,KAAAA,GAMJ,KALC,4CACAA,GAAA,sBACAA,GAAA,oCACAA,GAAA,wBACAA,GAAA,iDAGGG,GAAAA,KAAAA,GAIJ,KAHC,wBACAA,GAAA,0BACAA,GAAA,4CC32CF,SAAS,GAAQv/5B,GAGf,OAAO,GAAU,mBAAqBrE,QAAU,iBAAmBA,OAAOE,SAAW,SAAUmE,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBrE,QAAUqE,EAAEx1B,cAAgBmxB,QAAUqE,IAAMrE,OAAOt8B,UAAY,gBAAkB2gC,CACpH,EAAG,GAAQA,EACb,CCNA,SAAS,GAAcxT,GACrB,IAAItsB,ECFN,SAAqBssB,EAAGF,GACtB,GAAI,UAAY,GAAQE,KAAOA,EAAG,OAAOA,EACzC,IAAIhsB,EAAIgsB,EAAEmP,OAAO06V,aACjB,QAAI,IAAW71X,EAAG,CAChB,IAAIN,EAAIM,EAAEuH,KAAKykB,EAAGF,GAAK,WACvB,GAAI,UAAY,GAAQpsB,GAAI,OAAOA,EACnC,MAAM,IAAIuuC,UAAU,+CACtB,CACA,OAAQ,WAAaniB,EAAItrB,OAASyoB,QAAQ+C,EAC5C,CDPU,CAAYA,EAAG,UACvB,MAAO,UAAY,GAAQtsB,GAAKA,EAAIA,EAAI,EAC1C,CEJA,SAAS,GAAgBM,EAAG8rB,EAAGE,GAC7B,OAAQF,EAAI,GAAcA,MAAO9rB,EAAIW,OAAOgR,eAAe3R,EAAG8rB,EAAG,CAC/DjrB,MAAOmrB,EACPpa,YAAY,EACZ25B,cAAc,EACdC,UAAU,IACPxrC,EAAE8rB,GAAKE,EAAGhsB,CACjB,CCPA,SAAS,GAAQA,EAAG8rB,GAClB,IAAIE,EAAIrrB,OAAOgkB,KAAK3kB,GACpB,GAAIW,OAAOsnC,sBAAuB,CAChC,IAAIzI,EAAI7+B,OAAOsnC,sBAAsBjoC,GACrC8rB,IAAM0T,EAAIA,EAAE1V,QAAO,SAAUgC,GAC3B,OAAOnrB,OAAOyrB,yBAAyBpsB,EAAG8rB,GAAGla,UAC/C,KAAKoa,EAAE3tB,KAAKyM,MAAMkhB,EAAGwT,EACvB,CACA,OAAOxT,CACT,CACA,SAAS,GAAehsB,GACtB,IAAK,IAAI8rB,EAAI,EAAGA,EAAIrhB,UAAU3M,OAAQguB,IAAK,CACzC,IAAIE,EAAI,MAAQvhB,UAAUqhB,GAAKrhB,UAAUqhB,GAAK,CAAC,EAC/CA,EAAI,EAAI,GAAQnrB,OAAOqrB,IAAI,GAAIhtB,SAAQ,SAAU8sB,GAC/C,GAAe9rB,EAAG8rB,EAAGE,EAAEF,GACzB,IAAKnrB,OAAOoqC,0BAA4BpqC,OAAOiqC,iBAAiB5qC,EAAGW,OAAOoqC,0BAA0B/e,IAAM,GAAQrrB,OAAOqrB,IAAIhtB,SAAQ,SAAU8sB,GAC7InrB,OAAOgR,eAAe3R,EAAG8rB,EAAGnrB,OAAOyrB,yBAAyBJ,EAAGF,GACjE,GACF,CACA,OAAO9rB,CACT,qnJChBa,IAqEDok8B,GAAAA,GAaAC,GAAAA,GAaAC,GAAAA,GASAC,GAAAA,GAsDAC,GAAAA,GA9JCC,GAAY,CACrBC,aAAc,UACdC,IAAK,iBAELC,aAAc,OAEdC,kBAAmB,4CACnBC,uBAAwB,4BACxBC,sBAAuB,SAEvBC,KAAM,OACNC,KAAM,SAENC,6BAA8B,sGAE9BC,cAAe,iBACfC,yBAA0B,mBAE1BC,eAAgB,IAEhBC,WAAY,aAEZC,OAAQ,SAERC,cAAe,uCAEfC,aAAc,SACdC,cAAe,UACfC,qBAAsB,iBACtBC,YAAa,QAEbC,mBAAoB,OACpBC,gBAAiB,qBACjBC,cAAe,gBACfC,uBAAwB,WACxBC,2BAA4B,OAC5BC,sBAAuB,kDACvBC,sBAAuB,wBACvBC,YAAa,cACbC,aAAc,GACdC,eAAgB,MAChBC,cAAe,IACfC,cAAe,4DACfC,aAAc,aACdC,aAAc,IACdC,gCAAiC,gBACjCC,kCAAmC,sBACnCC,mCAAoC,wBACpCC,oBAAqB,CAAC,4BAA6B,oBAAqB,sBAAuB,mBAC/FC,oBAAqB,QACrBC,uBAAwB,WACxBC,mBAAoB,IACpBC,iBAAkB,oBAGTC,GAAsB,CAC/B1C,GAAUgB,aACVhB,GAAUiB,cACVjB,GAAUkB,sBAGDyB,GAAWC,GACjBF,GAAmB,CACtB1C,GAAUmB,eAMFxB,GAAAA,KAAAA,GAQX,KAPG,4BACAA,GAAA,0BACAA,GAAA,6BACAA,GAAA,mCACAA,GAAA,yCACAA,GAAA,kCACAA,GAAA,kCAMQC,GAAAA,KAAAA,GAQX,KAPG,mBACAA,GAAA,0BACAA,GAAA,6BACAA,GAAA,cACAA,GAAA,+BACAA,GAAA,gCACAA,GAAiD,iDAMzCC,GAAAA,KAAAA,GAIX,KAHG,gBACAA,GAAA,8BACAA,GAAA,uBAMQC,GAAAA,KAAAA,GAiDX,KAhDG,sBACAA,GAAA,4BACAA,GAAA,8BACAA,GAAA,8BACAA,GAAA,wBACAA,GAAA,gBACAA,GAAA,cACAA,GAAA,cACAA,GAAA,sCACAA,GAAA,4BACAA,GAAA,oBACAA,GAAA,8BACAA,GAAA,wBACAA,GAAA,cACAA,GAAA,cACAA,GAAA,gBACAA,GAAA,8BACAA,GAAA,0BACAA,GAAA,YACAA,GAAA,gCACAA,GAAA,8CACAA,GAAA,8BACAA,GAAA,sCACAA,GAAA,4BACAA,GAAA,4BACAA,GAAA,0BACAA,GAAA,4BACAA,GAAA,iDACAA,GAAA,8CACAA,GAAA,0CACAA,GAAA,wBACAA,GAAA,sBACAA,GAAA,2CACAA,GAAA,8BACAA,GAAA,0BACAA,GAAA,8BACAA,GAAA,oCACAA,GAAA,8CACAA,GAAA,wBACAA,GAAA,kBACAA,GAAA,0BACAA,GAAA,0CACAA,GAAA,4BACAA,GAAA,YACAA,GAAA,6BACAA,GAAA,kCACAA,GAAA,6BACAA,GAAA,2BAMQC,GAAAA,KAAAA,GAGX,KAFG,4BACAA,GAAA,gBAQS,IAYD8C,GAAAA,GAZCC,GAAc,CACvBC,MAAO,QACPC,eAAgB,iBAChBC,QAAS,UACTt1e,KAAM,OACNu1e,OAAQ,SACRC,WAAY,eAMJN,GAAAA,KAAAA,GAUX,KATG,kBACAA,GAAA,UACAA,GAAA,wBACAA,GAAA,oBACAA,GAAA,0BACAA,GAAA,8BACAA,GAAA,sBACAA,GAAA,+BACAA,GAAA,uCAMS,IAkBDO,GAAAA,GASAC,GAAAA,GAaAC,GAAAA,GAUAC,GAAAA,GAQAC,GAAAA,GAUAC,GAAAA,GApECC,GAA4B,CACrCC,MAAO,QACPC,KAAM,SAgBER,GAAAA,KAAAA,GAIX,KAHG,cACAA,GAAA,oBACAA,GAAA,uBAMQC,GAAAA,KAAAA,GAQX,KAPG,0BACAA,GAAA,8CACAA,GAAA,8CACAA,GAAA,yCACAA,GAAA,oCACAA,GAAA,gCACAA,GAAA,0DAMQC,GAAAA,KAAAA,GAKX,KAJG,2BACAA,GAAA,yBACAA,GAAA,yBACAA,GAAgC,gCAMxBC,GAAAA,KAAAA,GAGX,KAFG,wBACAA,GAAA,2BAMQC,GAAAA,KAAAA,GAKX,KAJG,mBACAA,GAAA,2BACAA,GAAA,4DACAA,GAAA,8BAMQC,GAAAA,KAAAA,GAUX,KATGA,GAAA,kBACAA,GAAAA,GAAA,gBACAA,GAAAA,GAAA,oBACAA,GAAAA,GAAA,wBACAA,GAAAA,GAAA,kCACAA,GAAAA,GAAA,oCACAA,GAAAA,GAAA,0BACAA,GAAAA,GAAA,kCACAA,GAAAA,GAAA,4BAMG,IASKI,GAAAA,GATCC,GAAe,cAEfC,GAAgB,IAEhBC,GACE,qBADFA,GAEa,OAGdH,GAAAA,KAAAA,GAKX,KAJG,gBACAA,GAAA,cACAA,GAAA,kBACAA,GAAA,oCAGS,IAgBDI,GAAAA,GAhBCC,GAAyB,CAClCC,eAAgB,EAChBC,qBAAsB,GACtBC,sBAAuB,IACvBC,kBAAmB,GACnBC,UAAW,mBACXC,mBAAoB,IACpBC,gBAAiB,IACjBC,cAAe,IACfC,eAAgB,IAChBC,cAAe,kBAMPX,GAAAA,KAAAA,GAIX,KAHG,gBACAA,GAAA,UACAA,GAAA,eAMS,IAmBDY,GAAAA,GAQCC,GAAAA,GAQDC,GAAAA,GAUAC,GAAAA,GAQAC,GAAAA,GASAC,GAAAA,GA9DCC,GAEsB,GAFtBA,GAI0B,KAJ1BA,GAMU,aANVA,GAQkB,oBAGlBC,GACY,gBADZA,GAEc,mBAMfP,GAAAA,KAAAA,GAGX,KAFG,oBACAA,GAAA,qBAMSC,GAAAA,KAAAA,GAGZ,KAFGA,GAAA,+BACAA,GAAAA,GAAA,sCAMQC,GAAAA,KAAAA,GAKX,KAJG,0BACAA,GAAA,mBACAA,GAAA,yBACAA,GAAA,UAMQC,GAAAA,KAAAA,GAMX,KALG,gCACAA,GAAA,iCACAA,GAAA,4BACAA,GAAA,wCACAA,GAAA,qCAGQC,GAAAA,KAAAA,GAOX,KANG,iBACAA,GAAA,kBACAA,GAAA,2BACAA,GAAA,gCACAA,GAAA,gCACAA,GAAA,oCAGQC,GAAAA,KAAAA,GAIX,KAHG,UACAA,GAAA,UACAA,GAAA,UAGG,ICvVKG,GAAAA,GAOAC,GAAAA,GASAC,GAAAA,GAQAC,GAAAA,GAkBAC,GAAAA,GAQAC,GAAAA,GAWAC,GAAAA,GAeAC,GAWAC,GC9HCC,GACQ,CACb9u6B,KAAM,mBACN2Q,KAAM,uCAHDm+5B,GAKU,CACf9u6B,KAAM,sBACN2Q,KAAM,wIAOdo+5B,GAAA,SAAA5ljB,GAsBI,SAAA4ljB,EAAYC,EAAoB37V,EAAuB47V,GAAvD,IASClt8B,EAAA,KARSw5d,EAAc83I,EAAkB27V,EAAS,KAAK37V,EAAiB27V,SACrEjt8B,EAAAonZ,EAAAr9Y,KAAA,KAAMyvd,IAAa,KACnBr2d,OAAOi0X,eAAep3X,EAAMgt8B,EAAU3r8B,WAEtCrB,EAAKit8B,UAAYA,GAAahG,GAAU4B,aACxC7o8B,EAAKsxmB,aAAeA,GAAgB21V,GAAU4B,aAC9C7o8B,EAAKmt8B,SAAWD,GAAYjG,GAAU4B,aACtC7o8B,EAAKmL,KAAO,cAuBpB,OArD+Bii8B,GAAKJ,EAAA5ljB,GAiChC4ljB,EAAgB3r8B,UAAAgs8B,iBAAhB,SAAiBC,GACbrt8B,KAAKqt8B,cAAgBA,GAOlBN,EAAqBO,sBAA5B,SAA6BC,GACzB,OAAO,IAAIR,EAAUD,GAAiC9u6B,KAAS8u6B,GAAiCn+5B,KAAS,KAAA4+5B,IAQtGR,EAAuBS,wBAA9B,SAA+BD,GAC3B,OAAO,IAAIR,EAAUD,GAAmC9u6B,KAAS8u6B,GAAmCn+5B,KAAS,KAAA4+5B,IAEpHR,CAAD,CArDA,CAA+B/67B,OCdlBy77B,GACU,CACfzv6B,KAAM,qBACN2Q,KAAM,oEAHD8+5B,GAKY,CACjBzv6B,KAAM,wBACN2Q,KAAM,4CAPD8+5B,GASiB,CACtBzv6B,KAAM,wBACN2Q,KAAM,yDAXD8+5B,GAae,CACpBzv6B,KAAM,wBACN2Q,KAAM,+PAfD8+5B,GAuBc,CACnBzv6B,KAAM,2CACN2Q,KAAM,kLAzBD8+5B,GA2BiB,CACtBzv6B,KAAM,8BACN2Q,KAAM,yRA7BD8+5B,GA+BW,CAChBzv6B,KAAM,uBACN2Q,KAAM,sHAOd++5B,GAAA,SAAAvmjB,GAEI,SAAYumjB,EAAAV,EAAmB37V,GAA/B,IAAAtxmB,EACIonZ,EAAMr9Y,KAAA,KAAAkj8B,EAAW37V,IAIpB,YAHGtxmB,EAAKmL,KAAO,gCAEZhI,OAAOi0X,eAAep3X,EAAM2t8B,EAA8Bts8B,aAwDlE,OA9DmD+r8B,GAASO,EAAAvmjB,GAYjDumjB,EAAAC,4BAAP,WACI,OAAO,IAAID,EAA8BD,GAAuDzv6B,KAC5Fyv6B,GAAuD9+5B,OAMxD++5B,EAAAE,sCAAP,WACI,OAAO,IAAIF,EAA8BD,GAAyDzv6B,KAC9Fyv6B,GAAyD9+5B,OAO1D++5B,EAA8BG,+BAArC,SAAsCC,GAClC,OAAO,IAAIJ,EAA8BD,GAA8Dzv6B,KAASyv6B,GAA8D9+5B,KAAwB,oBAAAm/5B,IAMnMJ,EAAAK,mCAAP,WACI,OAAO,IAAIL,EAA8BD,GAA4Dzv6B,KACjGyv6B,GAA4D9+5B,OAM7D++5B,EAAAM,iCAAP,WACI,OAAO,IAAIN,EAA8BD,GAA2Dzv6B,KAChGyv6B,GAA2D9+5B,OAM5D++5B,EAAAO,uCAAP,WACI,OAAO,IAAIP,EAA8BD,GAA8Dzv6B,KAAMyv6B,GAA8D9+5B,OAMxK++5B,EAAAQ,yBAAP,WACI,OAAO,IAAIR,EAA8BD,GAAwDzv6B,KAAMyv6B,GAAwD9+5B,OAEtK++5B,CAAD,CA9DA,CAAmDX,ICStCoB,GAA2D,CACpExmG,WAAY,WACR,OAAOvouB,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDI,kBAAmB,WACf,OAAOhv0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDK,qBAAsB,WAClB,OAAOjv0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDM,mBAAoB,WAChB,OAAOlv0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDO,mBAAoB,WAChB,OAAOnv0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDQ,eAAgB,WACZ,MAAO,IAEXC,mBAAoB,WAChB,OAAO,MAEXC,qBAAsB,WAClB,OAAO,MAEXC,oBAAqB,WACjB,OAAO,MAEXC,sBAAuB,WACnB,OAAOxv0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDa,WAAY,WACR,OAAOzv0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDc,cAAe,WACX,OAAO1v0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDe,OAAQ,WACJ,OAAO3v0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDgB,eAAgB,WACZ,OAAO5v0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDiB,YAAa,WACT,OAAO7v0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDkB,UAAW,WACP,OAAO9v0B,QAAQ/uF,OAAOq95B,GAA8BM,qCAExDmB,iBAAkB,WACd,OAAO,MAEXC,oBAAqB,aAGrBC,uBAAwB,WACpB,MAAO,IAEXC,0BAA2B,WACvB,OAAO,GAEXC,2BAA4B,aAG5BC,4BAA6B,aAG7BC,cAAe,WACX,MAAM/B,GAA8BM,oCAExC0B,UAAW,WACP,MAAMhC,GAA8BM,oCAExC2B,UAAW,aAGXC,iBAAkB,aAGlBC,iBAAkB,WACd,OAAO,MAEXC,yBAA0B,aAG1BC,oBAAqB,aAGrBC,iBAAkB,WACd,MAAMtC,GAA8BM,oCAExCiC,aAAc,WACV,OAAO7w0B,QAAQ/uF,OACXq95B,GAA8BM,sCH5I7BkC,GAQY,gBARZA,GAYI,IAZJA,GAgBK,IAhBLA,GAoBU,OApBVA,GAwBiB,GAxBjBA,GA4BC,kBAGDC,GACG,uCADHA,GAEe,mCAFfA,GAGO,QAGR9D,GAAAA,KAAAA,GAKX,KAJG,6BACAA,GAAA,sCACAA,GAAA,oBACAA,GAAA,qBAGQC,GAAAA,KAAAA,GAIX,KAHG,4BACAA,GAAA,gCACAA,GAAA,+BAMQC,GAAAA,KAAAA,GAGX,KAFG,UACAA,GAAA,aAMQC,GAAAA,KAAAA,GAgBX,KAfG,sBACAA,GAAA,6CACAA,GAAA,8BACAA,GAAA,8BACAA,GAAA,+BACAA,GAAA,4BACAA,GAAA,kCACAA,GAAA,mBACAA,GAAA,gCACAA,GAAA,gBACAA,GAAA,4CACAA,GAAA,gCACAA,GAAA,uCACAA,GAAA,gCACAA,GAAA,6CAGQC,GAAAA,KAAAA,GAGX,KAFG,iCACAA,GAAA,8BAMQC,GAAAA,KAAAA,GAGX,KAFG,0BACAA,GAAA,+BASQC,GAAAA,KAAAA,GAUX,KATGA,GAAA,iDACAA,GAAAA,GAAA,2CACAA,GAAAA,GAAA,2BACAA,GAAAA,GAAA,+DACAA,GAAAA,GAAA,mDACAA,GAAAA,GAAA,6CACAA,GAAAA,GAAA,kEACAA,GAAAA,GAAA,qBACAA,GAAAA,GAAA,+BAMJ,SAAYC,GACRA,EAAA,oBACAA,EAAA,cACAA,EAAA,gBACAA,EAAA,WACH,CALD,CAAYA,KAAAA,GAKX,KAMD,SAAYC,GAIRA,EAAA,kBAIAA,EAAA,cAIAA,EAAA,gBAIAA,EAAA,4BAIAA,EAAA,sBAIAA,EAAA,gCAIAA,EAAA,WACH,CA7BD,CAAYA,KAAAA,GA6BX,KAEY,IAUDuD,GAAAA,GAVCC,GAAgD,CACzDC,OAAQ5G,IAMC6G,GAAiB,OAGlBH,GAAAA,KAAAA,GAGX,KAFG,0BACAA,GAAA,8BAIG,IAIKI,GAAAA,GAJCC,GAAU,UAEVC,GAAmBD,GAAO,SAE3BD,GAAAA,KAAAA,GAmCX,KA7BGA,GAAA,qBAKAA,GAAAA,GAAA,6BAMAA,GAAAA,GAAA,2DAMAA,GAAAA,GAAA,+BAMAA,GAAAA,GAAA,mDAKAA,GAAAA,GAAA,eInNS,ICYDG,GAAAA,GDZCC,GACgB,CACrB5y6B,KAAM,6BACN2Q,KAAM,+GAHDii6B,GAKa,CAClB5y6B,KAAM,0BACN2Q,KAAM,mFAPDii6B,GASU,CACf5y6B,KAAM,sBACN2Q,KAAM,8EAXDii6B,GAaS,CACd5y6B,KAAM,sBACN2Q,KAAM,oFAfDii6B,GAiBgB,CACrB5y6B,KAAM,6BACN2Q,KAAM,2EAnBDii6B,GAqBK,CACV5y6B,KAAM,gBACN2Q,KAAM,+EAvBDii6B,GAyBqB,CAC1B5y6B,KAAM,sBACN2Q,KAAM,+IA3BDii6B,GA6BY,CACjB5y6B,KAAM,wBACN2Q,KAAM,uGA/BDii6B,GAqCU,CACf5y6B,KAAM,gBACN2Q,KAAM,6IAvCDii6B,GAyCW,CAChB5y6B,KAAM,iBACN2Q,KAAM,iGA3CDii6B,GA6CW,CAChB5y6B,KAAM,kBACN2Q,KAAM,mBA/CDii6B,GAiDW,CAChB5y6B,KAAM,iBACN2Q,KAAM,wFAnDDii6B,GAqDW,CAChB5y6B,KAAM,kBACN2Q,KAAM,mBAvDDii6B,GAyDc,CACnB5y6B,KAAM,sBACN2Q,KAAM,gOA3DDii6B,GA+Dc,CACnB5y6B,KAAM,qBACN2Q,KAAM,6FAjEDii6B,GAuEe,CACpB5y6B,KAAM,2BACN2Q,KAAM,qJAzEDii6B,GA4EiB,CACtB5y6B,KAAM,6BACN2Q,KAAM,6HA9EDii6B,GAgFoB,CACzB5y6B,KAAM,gCACN2Q,KAAM,oIAlFDii6B,GAoFiB,CACtB5y6B,KAAM,yBACN2Q,KAAM,6EAtFDii6B,GAwFc,CACnB5y6B,KAAM,4BACN2Q,KAAM,8FA1FDii6B,GA4Fc,CACnB5y6B,KAAM,4BACN2Q,KAAM,gGA9FDii6B,GAgGY,CACjB5y6B,KAAM,yBACN2Q,KAAM,wCAlGDii6B,GAoGgB,CACrB5y6B,KAAM,uBACN2Q,KAAM,6CAtGDii6B,GAwGmB,CACxB5y6B,KAAM,gCACN2Q,KAAM,mHA1GDii6B,GA4GU,CACf5y6B,KAAM,sBACN2Q,KAAM,2BA9GDii6B,GAgHe,CACpB5y6B,KAAM,4BACN2Q,KAAM,oDAlHDii6B,GAoHiB,CACtB5y6B,KAAM,+BACN2Q,KAAM,2FAtHDii6B,GAwHW,CAChB5y6B,KAAM,uBACN2Q,KAAM,8CA1HDii6B,GA4HgB,CACrB5y6B,KAAM,4BACN2Q,KAAM,6DA9HDii6B,GAgIO,CACZ5y6B,KAAM,mBACN2Q,KAAM,4CAlIDii6B,GAoIS,CACd5y6B,KAAM,sCACN2Q,KAAM,iFAtIDii6B,GAwII,CACT5y6B,KAAM,mBACN2Q,KAAM,6EA1IDii6B,GA4IS,CACd5y6B,KAAM,qBACN2Q,KAAM,sBA9IDii6B,GAgJc,CACnB5y6B,KAAM,0BACN2Q,KAAM,4BAlJDii6B,GAoJiB,CACtB5y6B,KAAM,6BACN2Q,KAAM,+BAtJDii6B,GAwJS,CACd5y6B,KAAM,oBACN2Q,KAAM,4FA1JDii6B,GA4JgB,CACrB5y6B,KAAM,4BACN2Q,KAAM,kKA9JDii6B,GAgKa,CAClB5y6B,KAAM,yBACN2Q,KAAM,sOAlKDii6B,GAoKW,CAChB5y6B,KAAM,uBACN2Q,KAAM,wDAtKDii6B,GAwKY,CACjB5y6B,KAAM,0CACN2Q,KAAM,mEA1KDii6B,GA4KsB,CAC3B5y6B,KAAM,kDACN2Q,KAAM,qEA9KDii6B,GAwLkB,CACvB5y6B,KAAM,0BACN2Q,KAAM,+DA1LDii6B,GA4LW,CAChB5y6B,KAAM,qCACN2Q,KAAM,+CA9LDii6B,GAgMK,CACV5y6B,KAAM,iBACN2Q,KAAM,yIAlMDii6B,GAoMc,CACnB5y6B,KAAM,0BACN2Q,KAAM,4DAtMDii6B,GAwMU,CACf5y6B,KAAM,gBACN2Q,KAAM,2BAOdki6B,GAAA,SAAA1pjB,GAEI,SAAY0pjB,EAAA7D,EAAmB37V,GAA/B,IAAAtxmB,EACIonZ,EAAMr9Y,KAAA,KAAAkj8B,EAAW37V,IAIpB,YAHGtxmB,EAAKmL,KAAO,kBAEZhI,OAAOi0X,eAAep3X,EAAM8w8B,EAAgBzv8B,aAiWpD,OAvWqC+r8B,GAAS0D,EAAA1pjB,GAanC0pjB,EAA6BC,8BAApC,SAAqCC,GACjC,OAAO,IAAIF,EAAgBD,GAA+C5y6B,KACnE4y6B,GAA+Cji6B,KAA2B,uBAAAoi6B,IAO9EF,EAAAG,2BAAP,WACI,OAAO,IAAIH,EAAgBD,GAA4C5y6B,KACnE,GAAG4y6B,GAA4Cji6B,OAOhDki6B,EAAuBI,wBAA9B,SAA+BC,GAC3B,OAAO,IAAIL,EAAgBD,GAAyC5y6B,KAC7D4y6B,GAAyCji6B,KAA2B,uBAAAui6B,IAOxEL,EAA2BM,4BAAlC,SAAmCC,GAC/B,OAAO,IAAIP,EAAgBD,GAAwC5y6B,KAC5D4y6B,GAAwCji6B,KAAyB,qBAAAyi6B,IAMrEP,EAAsCQ,uCAA7C,SAA8CC,GAC1C,OAAO,IAAIT,EAAgBD,GAA+C5y6B,KACnE4y6B,GAA+Cji6B,KAAgB,YAAA2i6B,IAMnET,EAAAU,mBAAP,SAA0BC,EAAkBF,GACxC,OAAO,IAAIT,EAAgBD,GAAoC5y6B,KACxD4y6B,GAAoCji6B,KAAI,0BAA0B2i6B,EAAS,0BAA0BE,EAASln8B,MAAM,KAAK,KAM7Hum8B,EAAkCY,mCAAzC,SAA0CH,GACtC,OAAO,IAAIT,EAAgBD,GAAoD5y6B,KACxE4y6B,GAAoDji6B,KAA8C,0CAAA2i6B,IAOtGT,EAA8Ba,+BAArC,SAAsCC,GAClC,OAAO,IAAId,EAAgBD,GAA2C5y6B,KAC/D4y6B,GAA2Cji6B,KAAsB,kBAAAgj6B,IAOrEd,EAAAe,wBAAP,SAA+BC,EAAsBt4e,GACjD,OAAO,IAAIs3e,EAAgBD,GAAyC5y6B,KAC7D4y6B,GAAyCji6B,KAAI,mBAAmBkj6B,EAA2B,eAAAt4e,IAM/Fs3e,EAAAiB,yBAAP,WACI,OAAO,IAAIjB,EAAgBD,GAA0C5y6B,KACjE4y6B,GAA0Cji6B,OAO3Cki6B,EAAwBkB,yBAA/B,SAAgCC,GAC5B,OAAO,IAAInB,EAAgBD,GAA0C5y6B,KAC9D4y6B,GAA0Cji6B,KAAU,MAAAqj6B,IAMxDnB,EAAAoB,yBAAP,WACI,OAAO,IAAIpB,EAAgBD,GAA0C5y6B,KACjE4y6B,GAA0Cji6B,OAO3Cki6B,EAAAqB,4BAAP,WACI,OAAO,IAAIrB,EAAgBD,GAA6C5y6B,KACpE4y6B,GAA6Cji6B,OAM9Cki6B,EAAAsB,4BAAP,WACI,OAAO,IAAItB,EAAgBD,GAA6C5y6B,KACpE4y6B,GAA6Cji6B,OAO9Cki6B,EAAwBuB,yBAA/B,SAAgCC,GAC5B,OAAO,IAAIxB,EAAgBD,GAA0C5y6B,KAC9D4y6B,GAA0Cji6B,KAAU,MAAA0j6B,IAMxDxB,EAAAyB,yCAAP,WACI,OAAO,IAAIzB,EAAgBD,GAA8C5y6B,KAClE4y6B,GAA8Cji6B,KAAI,MAMtDki6B,EAAA0B,2CAAP,WACI,OAAO,IAAI1B,EAAgBD,GAAgD5y6B,KACvE4y6B,GAAgDji6B,OAMjDki6B,EAAA2B,8CAAP,WACI,OAAO,IAAI3B,EAAgBD,GAAmD5y6B,KAC1E4y6B,GAAmDji6B,OAMpDki6B,EAAA4B,oCAAP,WACI,OAAO,IAAI5B,EAAgBD,GAAgD5y6B,KAAM4y6B,GAAgDji6B,OAO9Hki6B,EAAgC6B,iCAAvC,SAAwCC,GACpC,OAAO,IAAI9B,EAAgBD,GAA6C5y6B,KAAS4y6B,GAA6Cji6B,KAAqB,iBAAAgk6B,IAOhJ9B,EAAkC+B,mCAAzC,SAA0CD,GACtC,OAAO,IAAI9B,EAAgBD,GAA6C5y6B,KAAS4y6B,GAA6Cji6B,KAAqB,iBAAAgk6B,IAOhJ9B,EAAyBgC,0BAAhC,SAAiCC,GAC7B,OAAO,IAAIjC,EAAgBD,GAA2C5y6B,KAAS4y6B,GAA2Cji6B,KAAsB,kBAAAmk6B,IAO7IjC,EAAAkC,8BAAP,WACI,OAAO,IAAIlC,EAAgBD,GAA+C5y6B,KAAM,GAAG4y6B,GAA+Cji6B,OAM/Hki6B,EAAAmC,+BAAP,WACI,OAAO,IAAInC,EAAgBD,GAAkD5y6B,KAAM,GAAG4y6B,GAAkDji6B,OAMrIki6B,EAAAoC,6BAAP,WACI,OAAO,IAAIpC,EAAgBD,GAAyC5y6B,KAAM,GAAG4y6B,GAAyCji6B,OAMnHki6B,EAAAqC,6BAAP,WACI,OAAO,IAAIrC,EAAgBD,GAA8C5y6B,KAAM,GAAG4y6B,GAA8Cji6B,OAM7Hki6B,EAAAsC,oCAAP,WACI,OAAO,IAAItC,EAAgBD,GAAgD5y6B,KAAM,GAAG4y6B,GAAgDji6B,OAMjIki6B,EAAAuC,iCAAP,WACI,OAAO,IAAIvC,EAAgBD,GAA0C5y6B,KAAM4y6B,GAA0Cji6B,OAMlHki6B,EAAAwC,mCAAP,WACI,OAAO,IAAIxC,EAAgBD,GAA+C5y6B,KAAM4y6B,GAA+Cji6B,OAM5Hki6B,EAAAyC,0BAAP,WACI,OAAO,IAAIzC,EAAgBD,GAAsC5y6B,KAAM4y6B,GAAsCji6B,OAM1Gki6B,EAAA0C,uBAAP,WACI,OAAO,IAAI1C,EAAgBD,GAAwC5y6B,KAAM,GAAG4y6B,GAAwCji6B,OAOjHki6B,EAAyB2C,0BAAhC,SAAiCC,GAC7B,OAAO,IAAI5C,EAAgBD,GAAmC5y6B,KAAM,GAAG4y6B,GAAmCji6B,KAAO8k6B,IAM9G5C,EAAA6C,4BAAP,WACI,OAAO,IAAI7C,EAAgBD,GAAwC5y6B,KAAM,GAAG4y6B,GAAwCji6B,OAMjHki6B,EAAA8C,iCAAP,WACI,OAAO,IAAI9C,EAAgBD,GAA6C5y6B,KAAM,GAAG4y6B,GAA6Cji6B,OAM3Hki6B,EAAA+C,oCAAP,WACI,OAAO,IAAI/C,EAAgBD,GAAgD5y6B,KAAM,GAAG4y6B,GAAgDji6B,OAMjIki6B,EAAAgD,4BAAP,WACI,OAAO,IAAIhD,EAAgBD,GAAwC5y6B,KAAM,GAAG4y6B,GAAwCji6B,OAMjHki6B,EAAAiD,6BAAP,WACI,OAAO,IAAIjD,EAAgBD,GAA+C5y6B,KAAM,GAAG4y6B,GAA+Cji6B,OAM/Hki6B,EAAAkD,2BAAP,WACI,OAAO,IAAIlD,EAAgBD,GAA4C5y6B,KAAM4y6B,GAA4Cji6B,OAMtHki6B,EAAAmD,8BAAP,WACI,OAAO,IAAInD,EAAgBD,GAA0C5y6B,KAAM4y6B,GAA0Cji6B,OAMlHki6B,EAAAoD,+BAAP,WACI,OAAO,IAAIpD,EAAgBD,GAA2C5y6B,KAAM4y6B,GAA2Cji6B,OAMpHki6B,EAAAqD,sCAAP,WACI,OAAO,IAAIrD,EAAgBD,GAAqD5y6B,KAAM4y6B,GAAqDji6B,OAGxIki6B,EAAAsD,gCAAP,WACI,OAAO,IAAItD,EAAgBD,GAAiD5y6B,KAAM4y6B,GAAiDji6B,OAMhIki6B,EAAAuD,8BAAP,WACI,OAAO,IAAIvD,EAAgBD,GAA0C5y6B,KAAM4y6B,GAA0Cji6B,OAMlHki6B,EAAAwD,wBAAP,WACI,OAAO,IAAIxD,EAAgBD,GAAoC5y6B,KAAM4y6B,GAAoCji6B,OAMtGki6B,EAAAyD,iCAAP,WACI,OAAO,IAAIzD,EAAgBD,GAA6C5y6B,KAAM4y6B,GAA6Cji6B,OAMxHki6B,EAAA0D,wBAAP,WACI,OAAO,IAAI1D,EAAgBD,GAAyC5y6B,KAAM4y6B,GAAyCji6B,OAE1Hki6B,CAAD,CAvWA,CAAqC9D,IEhNrCyH,GAAA,oBAAAA,IAAA,CAwHA,OAjHWA,EAAeC,gBAAtB,SAAuBC,GACnB,GAAIF,EAAYj3sB,QAAQm3sB,GACpB,MAAM7D,GAAgBM,4BAA4BuD,GAEtD,IACMvu7B,EADkB,uCACQ3c,KAAKkr8B,GACrC,IAAKvu7B,GAAWA,EAAQ9lB,OAAS,EAC7B,MAAMww8B,GAAgBI,wBAAwB,6BAA6B1z7B,KAAK5W,UAAU+t8B,IAO9F,MALuC,CACnC9+4B,OAAQzvC,EAAQ,GAChBwu7B,WAAYxu7B,EAAQ,GACpByu7B,OAAQzu7B,EAAQ,KAUjBqu7B,EAAOj3sB,QAAd,SAAe1qP,GACX,MAAuB,qBAARA,IAAwBA,GAAO,IAAMA,EAAIxS,QAOrDm08B,EAAUK,WAAjB,SAAkBC,GACd,GAAIA,IAAWN,EAAYj3sB,QAAQu3sB,GAC/B,IACI,IAAMlj8B,EAAM2L,KAAKxW,MAAM+t8B,GACvB,OAAmC,IAA5B5x8B,OAAOgkB,KAAKtV,GAAKvR,MAC3B,CAAC,MAAOkC,IAAI,CAEjB,OAAO,GAGJiy8B,EAAAr+qB,WAAP,SAAkBtjR,EAAapP,GAC3B,OAA+B,IAAxBoP,EAAInP,QAAQD,IAGhB+w8B,EAAA19jB,SAAP,SAAgBjkY,EAAapP,GACzB,OAAQoP,EAAIxS,QAAUoD,EAAOpD,QAAYwS,EAAIsmX,YAAY11X,KAAaoP,EAAIxS,OAASoD,EAAOpD,QAQvFm08B,EAAmBO,oBAA1B,SAA8BlxzB,GAC1B,IAAMjyI,EAAU,CAAC,EACX6C,EAASovI,EAAMv5I,MAAM,KACrB0uF,EAAS,SAAC7tE,GAAc,OAAA26W,mBAAmB36W,EAAE9nB,QAAQ,MAAO,KAAK,EASvE,OARAoR,EAAOlT,SAAQ,SAAC6jjB,GACZ,GAAIA,EAAKjijB,OAAQ,CACP,IAAAihG,EAAeghd,EAAK96iB,MAAM,SAAU,GAAnCpJ,EAAGkjG,EAAA,GAAEhhG,EAAgCghG,EAAA,GACxCljG,GAAOkC,IACPwO,EAAIonF,EAAO93F,IAAQ83F,EAAO51F,GAEjC,CACL,IACOwO,GAQJ4i8B,EAAgBQ,iBAAvB,SAAwBhk6B,GACpB,OAAOA,EAAI1nC,KAAI,SAAA6qY,GAAS,OAAAA,EAAMhxY,MAAN,KAOrBqx8B,EAA2BS,4BAAlC,SAAmCjk6B,GAC/B,OAAOA,EAAI3kB,QAAO,SAAA8nX,GACd,OAAQqgkB,EAAYj3sB,QAAQ42I,EAChC,KAOGqgkB,EAAeU,gBAAtB,SAA0Bri8B,GACtB,IACI,OAAO0K,KAAKxW,MAAM8L,EACrB,CAAC,MAAOtQ,IACL,OAAO,IACV,GAQEiy8B,EAAAW,aAAP,SAAoB7x8B,EAAiBsoB,GAOjC,OAFsB,IAAI3B,OAAO3mB,EAAQD,QAAQ,MAAO,QAAQA,QAAQ,MAAO,SAASA,QAAQ,MAAO,QAE1FgkB,KAAKuE,IAEzB4o7B,CAAD,CAxHA,IDWY7D,GAAAA,KAAAA,GAMX,KALGA,GAAA,iBACAA,GAAAA,GAAA,qBACAA,GAAAA,GAAA,eACAA,GAAAA,GAAA,qBACAA,GAAAA,GAAA,iBAaJ,IEnCYyE,GFmCZC,GAAA,WAoBI,SAAAA,EAAYC,EAA8BC,EAAsBC,GAdxD,KAAArs2B,MAAkBwn2B,GAAS8E,KAe/B,IAGMC,EAAmBJ,GAAiBD,EAAOM,6BACjD318B,KAAK418B,cAAgBF,EAAiBG,gBAJR,WAE9B,EAGA718B,KAAK818B,kBAAoBJ,EAAiBI,oBAAqB,EAC/D918B,KAAKmpG,MAA8C,kBAA/Bus2B,EAAiBK,SAAyBL,EAAiBK,SAAWpF,GAAS8E,KACnGz18B,KAAKqt8B,cAAgBqI,EAAiBrI,eAAiBrG,GAAU4B,aACjE5o8B,KAAKu18B,YAAcA,GAAevO,GAAU4B,aAC5C5o8B,KAAKw18B,eAAiBA,GAAkBxO,GAAU4B,aAyK1D,OAtKmByM,EAAAM,2BAAf,WACI,MAAO,CACHE,eAAgB,aAGhBC,mBAAmB,EACnBC,SAAUpF,GAAS8E,OAOpBJ,EAAAj08B,UAAAse,MAAP,SAAa617B,EAAqBC,EAAwBnI,GACtD,OAAO,IAAIgI,EAAO,CAACQ,eAAgB718B,KAAK418B,cAAeE,kBAAmB918B,KAAK818B,kBAAmBC,SAAU/18B,KAAKmpG,MAAOkk2B,cAAeA,GAAiBrt8B,KAAKqt8B,eAAgBkI,EAAaC,IAMtLH,EAAAj08B,UAAA408B,WAAR,SAAmBA,EAAoBl28B,GACnC,KAAKA,EAAQi28B,SAAW/18B,KAAKmpG,QAAYnpG,KAAK818B,mBAAqBh28B,EAAQm28B,aAA3E,CAGA,IAAMrjkB,GAAY,IAAIjvW,MAAO8C,cAYvB+d,GARDgw5B,GAAYj3sB,QAAQz9P,EAAQut8B,eAErBmH,GAAYj3sB,QAAQv9P,KAAKqt8B,eAGrB,IAAIz6jB,EAAS,IAFb,IAAIA,EAAS,QAAQ5yY,KAAKqt8B,cAAa,IAFvC,IAAIz6jB,EAAS,QAAQ9yY,EAAQut8B,cAAa,KAOlC,MAAMrt8B,KAAKu18B,YAAW,IAAIv18B,KAAKw18B,eAAoB,MAAA7E,GAAS7w8B,EAAQi28B,UAAS,MAAMC,EAE3Gh28B,KAAKk28B,gBAAgBp28B,EAAQi28B,SAAUvx5B,EAAK1kD,EAAQm28B,cAAe,EAflE,GAqBLZ,EAAAj08B,UAAA808B,gBAAA,SAAgB/s2B,EAAiBipC,EAAiB6j0B,GAC1Cj28B,KAAK418B,eACL518B,KAAK418B,cAAczs2B,EAAOipC,EAAS6j0B,IAO3CZ,EAAAj08B,UAAAgb,MAAA,SAAMg2H,EAAiBi7zB,GACnBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAAS3+7B,MACnBik8B,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAA+08B,SAAA,SAAS/j0B,EAAiBi7zB,GACtBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAAS3+7B,MACnBik8B,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAyb,QAAA,SAAQu1H,EAAiBi7zB,GACrBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAASyF,QACnBH,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAi18B,WAAA,SAAWjk0B,EAAiBi7zB,GACxBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAASyF,QACnBH,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAmb,KAAA,SAAK61H,EAAiBi7zB,GAClBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAAS8E,KACnBQ,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAk18B,QAAA,SAAQlk0B,EAAiBi7zB,GACrBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAAS8E,KACnBQ,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAm18B,QAAA,SAAQnk0B,EAAiBi7zB,GACrBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAAS6F,QACnBP,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAq18B,WAAA,SAAWrk0B,EAAiBi7zB,GACxBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAAS6F,QACnBP,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAi7G,MAAA,SAAM+1B,EAAiBi7zB,GACnBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAAS+F,MACnBT,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAu18B,SAAA,SAASvk0B,EAAiBi7zB,GACtBrt8B,KAAKg28B,WAAW5j0B,EAAS,CACrB2j0B,SAAUpF,GAAS+F,MACnBT,aAAa,EACb5I,cAAeA,GAAiBrG,GAAU4B,gBAOlDyM,EAAAj08B,UAAAw18B,oBAAA,WACI,OAAO528B,KAAK818B,oBAAqB,GAExCT,CAAD,CAvMA,IEnCA,SAAYD,GACRA,EAAA,wCACAA,EAAA,oCACAA,EAAA,kCACAA,EAAA,sCACAA,EAAA,8BACAA,EAAA,kCACAA,EAAA,kCACAA,EAAA,6CACAA,EAAA,iDACAA,EAAA,iDACAA,EAAA,gEACAA,EAAA,uCACAA,EAAA,2CACAA,EAAA,2CACAA,EAAA,2DACAA,EAAA,+DACAA,EAAA,+DACAA,EAAA,iDACAA,EAAA,6CACAA,EAAA,gCACAA,EAAA,gCACAA,EAAA,oCACAA,EAAA,oCACAA,EAAA,4BACAA,EAAA,8CACH,CA1BD,CAAYA,KAAAA,GA0BX,KCHD,ICpBYyB,GAAAA,GCAAC,GAAAA,GFoBZC,GAAA,oBAAAA,IAAA,CA2DA,OApDWA,EAAAC,8BAAP,SAAqC5k0B,EAAuB6k0B,GACxD,OAAQ7k0B,EAAQ8k0B,WACZ,KAAK9B,GAAU+B,YACX,OAAOtK,GAAkBuK,MAC7B,KAAKhC,GAAUiC,iBACX,OAAOxK,GAAkByK,UAC7B,KAAKlC,GAAUmC,oBACX,GAAInl0B,EAAQol0B,kBAAoB5K,GAAgB6K,UAAYrl0B,EAAQol0B,kBAAoB5K,GAAgBh6I,MACpG,OAAOi6I,GAAkB6K,aAE7B,MACJ,KAAKtC,GAAUuC,sBACX,OAAO9K,GAAkB+K,eAC7B,KAAKxC,GAAUyC,aACX,OAAOhL,GAAkBiL,OAC7B,KAAK1C,GAAU2C,mBACf,KAAK3C,GAAU4C,mBACX,GAAIf,GAAiBA,IAAkBpK,GAAkByK,UAErD,MAEJ,OAAOzK,GAAkBoL,KAC7B,KAAK7C,GAAU8C,WACX,GAAIjB,GAAiBA,IAAkBpK,GAAkBiL,OAErD,MAEJ,OAAOjL,GAAkBoL,KAC7B,KAAK7C,GAAU+C,oBACX,GAAIlB,GAAiBA,IAAkBpK,GAAkB+K,eAErD,MAEJ,OAAO/K,GAAkBoL,KAC7B,KAAK7C,GAAUgD,cACf,KAAKhD,GAAUiD,cACf,KAAKjD,GAAUkD,sBACf,KAAKlD,GAAUmD,sBACf,KAAKnD,GAAUoD,qBACX,GAAIpm0B,EAAQol0B,kBAAoB5K,GAAgB6K,UAAYrl0B,EAAQol0B,kBAAoB5K,GAAgBh6I,MAAO,CAC3G,GAAIqkJ,GAAiBA,IAAkBpK,GAAkBuK,OAASH,IAAkBpK,GAAkB6K,aAElG,MAEJ,OAAO7K,GAAkBoL,IAC5B,EAKT,OAAO,MAEdlB,CAAD,CA3DA,GGLgB,SAAA0B,GAAgBC,EAAuBl+b,GACnD,GAAIg6b,GAAYj3sB,QAAQm7sB,GACpB,MAAM7H,GAAgBG,6BAG1B,IACI,IAAM2H,EAA4Bn+b,EAAOo+b,aAAaF,GACtD,OAAOn77B,KAAKxW,MAAM4x8B,EACrB,CAAC,MAAOp28B,IACL,MAAMsu8B,GAAgBC,8BAA+Bvu8B,GAAsB6vI,QAC9E,CACL,CAMM,SAAUym0B,GAAiCC,GAC7C,GAAItE,GAAYj3sB,QAAQu7sB,GACpB,MAAMjI,GAAgBC,8BAA8B,8BAExD,IAAMiI,EAA4BD,EAAcxu8B,MAAMig8B,GAAWyO,sBAAuB,GACxF,MAAO,CACHlq2B,IAAKiq2B,EAAgB,GACrBE,KAAMF,EAAgB148B,OAAS,EAAI2m8B,GAAU4B,aAAemQ,EAAgB,GAEpF,EFzCYlC,GAAAA,KAAAA,GAKX,KAJGA,GAAA,qBACAA,GAAAA,GAAA,eACAA,GAAAA,GAAA,eACAA,GAAAA,GAAA,gBCJQC,GAAAA,KAAAA,GAGX,KAFG,UACAA,GAAA,YEkCJ,IAAAoC,GAAA,oBAAAA,IAAA,CA4PA,OAzOIA,EAAA938B,UAAA+38B,kBAAA,WAEI,MADiC,CAACn58B,KAAK848B,cAAe948B,KAAKo58B,aAC1Cvy8B,KAAK0j8B,GAAW8O,qBAAqBto8B,eAM1Dmo8B,EAAA938B,UAAAk48B,mBAAA,WACI,OAAOJ,EAAcK,wBAAwB,CACzCT,cAAe948B,KAAK848B,cACpBM,YAAap58B,KAAKo58B,YAClBI,SAAUx58B,KAAKy58B,MACfC,SAAU158B,KAAK058B,SACfC,eAAgB358B,KAAK258B,kBAO7BT,EAAA938B,UAAAw48B,eAAA,WACI,MAAO,CACHd,cAAe948B,KAAK848B,cACpBM,YAAap58B,KAAKo58B,YAClBI,SAAUx58B,KAAKy58B,MACfC,SAAU158B,KAAK058B,SACfC,eAAgB358B,KAAK258B,eACrBzu8B,KAAMlL,KAAKkL,KACX2u8B,cAAe758B,KAAK658B,cACpBC,gBAAiB958B,KAAK858B,gBACtBC,cAAe/58B,KAAK+58B,gBAQrBb,EAAuBK,wBAA9B,SAA+BS,GAO3B,MANmB,CACfA,EAAiBlB,cACjBkB,EAAiBZ,aAAepS,GAAU4B,aAC1CoR,EAAiBR,UAAYxS,GAAU4B,cAGzB/h8B,KAAK0j8B,GAAW8O,qBAAqBto8B,eAQpDmo8B,EAAAe,cAAP,SACIC,EASAxlS,GAEA,IAAMylS,EAAyB,IAAIjB,EAE/BxkS,EAAUqlS,gBAAkBlD,GAAcuD,KAC1CD,EAAQJ,cAAgBzP,GAAiB+P,kBAClC3lS,EAAU4lS,eAAiBxD,GAAayD,IAC/CJ,EAAQJ,cAAgBzP,GAAiBkQ,mBAEzCL,EAAQJ,cAAgBzP,GAAiBmQ,qBAG7CN,EAAQO,WAAaR,EAAeQ,WACpCP,EAAQrB,cAAgBoB,EAAepB,cACvCqB,EAAQL,gBAAkBI,EAAeJ,gBAEzC,IAAMtjV,EAAM0jV,EAAed,aAAgB1kS,GAAaA,EAAUimS,oBAElE,IAAKnkV,EACD,MAAMq6U,GAAgBwC,qCAiB1B,GAdA8G,EAAQf,YAAc5iV,EAEtB2jV,EAAQV,MAAQS,EAAeL,cAAce,KAAO5T,GAAU4B,aAE9DuR,EAAQN,cAAgBK,EAAeL,cAGvCM,EAAQR,eAAiBO,EAAeL,cAAcgB,KAAQX,EAAeL,cAActzyB,KAAOygyB,GAAU4B,aAOxGuR,EAAQJ,gBAAkBzP,GAAiBkQ,mBAAoB,CAC/D,IAAMM,EAAoBZ,EAAeL,cAAckB,mBACjD917B,EAASi17B,EAAeL,cAAcmB,OAAUd,EAAeL,cAAcmB,OAAO,GAAK,KAE/Fb,EAAQT,SAAWoB,GAAqB717B,GAAS,EACpD,MACGk17B,EAAQT,SAAWQ,EAAeL,cAAcoB,KAAO,GAO3D,OALAd,EAAQjv8B,KAAOgv8B,EAAeL,cAAc3u8B,KAE5Civ8B,EAAQe,mBAAqBhB,EAAegB,mBAC5Cf,EAAQgB,YAAcjB,EAAeiB,YAE9BhB,GAUJjB,EAAAkC,sBAAP,SACIC,EACAH,EACAC,GAEA,IAAMhB,EAAyB,IAAIjB,EAkBnC,OAhBAiB,EAAQJ,cACJsB,EAAYtB,eAAiBzP,GAAiBmQ,qBAClDN,EAAQrB,cAAgBuC,EAAYvC,cACpCqB,EAAQR,eAAiB0B,EAAY1B,eACrCQ,EAAQL,gBAAkBuB,EAAYvB,gBAEtCK,EAAQV,MAAQ4B,EAAY7B,SAC5BW,EAAQf,YAAciC,EAAYjC,YAElCe,EAAQT,SAAW2B,EAAY3B,SAC/BS,EAAQjv8B,KAAOmw8B,EAAYnw8B,KAC3Biv8B,EAAQN,cAAgBwB,EAAYxB,cAEpCM,EAAQe,mBAAqBA,EAC7Bf,EAAQgB,YAAcA,EAEfhB,GAQJjB,EAAqBoC,sBAA5B,SACIC,EACAC,EACAC,EACAC,EACA7B,GAGA,IAAM8B,GAAyB,OAAb9B,QAAa,IAAbA,OAAa,EAAbA,EAAetzyB,KAAMszyB,EAActzyB,IAAMygyB,GAAU4B,aAGrE,GAAI4S,IAAa3E,GAAcuD,MAAQoB,IAAa3E,GAAc+E,KAC9D,OAAOD,EAIX,GAAIJ,EACA,IACI,IAAMb,EAAajC,GAAgB8C,EAAkBG,GACrD,IAAKlH,GAAYj3sB,QAAQm9sB,EAAW5r2B,OAAS0l2B,GAAYj3sB,QAAQm9sB,EAAWzB,MACxE,MAAO,GAAGyB,EAAW5r2B,IAAMy71B,GAAWyO,sBAAwB0B,EAAWzB,IAEhF,CAAC,MAAO128B,IAAI,CAKjB,OADAk58B,EAAOlF,QAAQ,8BACRoF,GAOJzC,EAAe2C,gBAAtB,SAAuBC,GAEnB,QAAKA,IAKDA,EAAOpg8B,eAAe,kBACtBog8B,EAAOpg8B,eAAe,gBACtBog8B,EAAOpg8B,eAAe,UACtBog8B,EAAOpg8B,eAAe,mBACtBog8B,EAAOpg8B,eAAe,aACtBog8B,EAAOpg8B,eAAe,mBAUvBw97B,EAAA6C,mBAAP,SAA0BC,EAA8BC,EAA8BC,GAClF,IAAKF,IAAaC,EACd,OAAO,EAGX,IAAIE,GAAc,EAClB,GAAID,EAAe,CACf,IAAME,EAAkBJ,EAASnC,eAAiB,CAAC,EAC7CwC,EAAkBJ,EAASpC,eAAiB,CAAC,EAGnDsC,EAAeC,EAAeE,MAAQD,EAAeC,KACpDF,EAAen78B,QAAUo78B,EAAep78B,KAC5C,CAED,OAAQ+68B,EAASlD,gBAAkBmD,EAASnD,eACvCkD,EAASrC,iBAAmBsC,EAAStC,gBACrCqC,EAAStC,WAAauC,EAASvC,UAC/BsC,EAASxC,WAAayC,EAASzC,UAC/BwC,EAAS5C,cAAgB6C,EAAS7C,aAClC4C,EAASlC,kBAAoBmC,EAASnC,iBACvCqC,GAEXjD,CAAD,CA5PA,GCzBA,MAAMqD,GAAmC,CACrC376B,SAAUut6B,GACVqO,WAAY3P,GAAkBoL,KAC9BwE,SAAU,GACVhB,OAAQ,IAAIpG,GAAO,CAAC,IAGXqH,IAAc39V,EAAAA,EAAAA,eACvBw9V,IAEwBG,GAAY1hC,SCKxC,SAAgB2hC,GAAsBC,EAAmCC,GACrE,GAAID,EAAOv88B,SAAWw88B,EAAOx88B,OACzB,OAAO,EAGX,MAAMy88B,EAAkB,IAAID,GAE5B,OAAOD,EAAO3g7B,OAAO8g7B,IACjB,MAAMC,EAAWF,EAAgBny7B,QACjC,SAAKoy7B,IAAaC,KAIVD,EAASjE,gBAAkBkE,EAASlE,eACpCiE,EAASpD,iBAAmBqD,EAASrD,gBACrCoD,EAASrD,WAAasD,EAAStD,SAFvC,GAIP,CAED,SAAgBuD,GAAwBC,EAA4BC,GAChE,GAAID,EAAY788B,OAAS,IAAM888B,EAAmBrE,eAAiBqE,EAAmBxD,gBAAkBwD,EAAmBzD,UAAW,CAelI,OAdwBwD,EAAY7w7B,QAAO+w7B,KACnCD,EAAmBzD,UAAYyD,EAAmBzD,SAAS3o8B,gBAAkBqs8B,EAAW1D,SAAS3o8B,mBAGjGos8B,EAAmBrE,eAAiBqE,EAAmBrE,cAAc/n8B,gBAAkBqs8B,EAAWtE,cAAc/n8B,kBAGhHos8B,EAAmBxD,gBAAkBwD,EAAmBxD,eAAe5o8B,gBAAkBqs8B,EAAWzD,eAAe5o8B,kBAOpG,IAAM,IAChC,CACG,OAAO,IAEd,CCxED,MACa+9B,GAAU,SCGvB,IAuBKuu6B,GAAAA,OAAAA,KAAAA,GAAsB,KACvB,wCACAA,GAAA,cAiBJ,MAAMC,GAAUA,CAAC/3M,EAA0BvtvB,KACvC,MAAM,KAAElT,EAAF,QAAQgyqB,GAAY9+pB,EAC1B,IAAIul8B,EAAgBh4M,EAAci3M,WAElC,OAAQ138B,GACJ,KAAKu48B,GAAuBG,mBACpBj4M,EAAci3M,aAAe3P,GAAkB4Q,UAC/CF,EAAgB1Q,GAAkBoL,KAClCnhS,EAAQ2kS,OAAOl/7B,KAAK,gFAExB,MACJ,KAAK8g8B,GAAuBK,MACxB,MAAMtr0B,EAAU0kiB,EAAQ1kiB,QAClBn9E,EAAS8h5B,GAAkBC,8BAA8B5k0B,EAASmznB,EAAci3M,YAClFvn5B,IACA6hnB,EAAQ2kS,OAAOl/7B,KAAf,kBAAA3R,OAAsCwnI,EAAQ8k0B,UAAA,wCAAAts8B,OAAgD26vB,EAAci3M,WAAA,QAAA5x8B,OAAiBqqD,IAC7Hso5B,EAAgBto5B,GAEpB,MACJ,QACI,MAAM,IAAIjjD,MAAJ,wBAAApH,OAAkC9F,IAGhD,MAAM648B,EAAkB7mS,EAAQl2oB,SAAS4t6B,iBACzC,OAAI+O,IAAkBh4M,EAAci3M,YAC/BG,GAAsBgB,EAAiBp4M,EAAck3M,UAO/Cc,IAAkBh4M,EAAci3M,WAEvCjokB,GAAAA,GAAA,GACOgxX,GADA,IAEHi3M,WAAYe,IAERZ,GAAsBgB,EAAiBp4M,EAAck3M,UAQtDl3M,EANPhxX,GAAAA,GAAA,GACOgxX,GADA,IAEHk3M,SAAUkB,IAfdppkB,GAAAA,GAAA,GACOgxX,GADA,IAEHi3M,WAAYe,EACZd,SAAUkB,GAiBjB,EAML,SAAgBC,GAAA7n8B,OAAa,SAAC6qB,EAAD,SAAW57B,GAAX+Q,GACzB615B,EAAAA,EAAAA,YAAU,KACNhr4B,EAASkv6B,yBAAyBM,GAAW3k8B,MAAOqjC,GAApD,GACD,CAAClO,IAEJ,MAAM666B,GAAS1vC,EAAAA,EAAAA,UAAQ,IACZnr4B,EAAS8u6B,YAAYhw7B,MDzGhB,oBCyG2BovB,KACxC,CAAClO,KAEGR,EAAO4xsB,IAAeg6L,EAAAA,EAAAA,YAAWsxC,QAASx88B,GAAW,KAEjD,CACH078B,WAAY3P,GAAkB4Q,QAC9BhB,SAAU776B,EAAS4t6B,sBAI3B5iC,EAAAA,EAAAA,YAAU,KACN,MAAMiyC,EAAaj96B,EAASuu6B,kBAAkB/8zB,IAC1C4/lB,EAAY,CACRl7D,QAAS,CACLl2oB,WACA666B,SACArp0B,WAEJttI,KAAMu48B,GAAuBK,OANjC,IA8BJ,OArBAjC,EAAOlF,QAAP,qDAAA3r8B,OAAoEiz8B,IAEpEj96B,EAAS+m0B,aAAa53zB,MAAK,KACvBnP,EAASgu6B,wBAAwB3szB,OAAM,KAE7B,IACPopsB,SAAQ,KAKPr5G,EAAY,CACRl7D,QAAS,CACLl2oB,WACA666B,UAEJ328B,KAAMu48B,GAAuBG,oBALjC,GARJ,IAkBG,KAECK,IACApC,EAAOlF,QAAP,0CAAA3r8B,OAAyDiz8B,IACzDj96B,EAASwu6B,oBAAoByO,GAChC,CALL,GAOD,CAACj96B,EAAU666B,IAEd,MAAMqC,EAA6B,CAC/Bl96B,WACA476B,WAAYp86B,EAAMo86B,WAClBC,SAAUr86B,EAAMq86B,SAChBhB,UAGJ,OACIsC,EAAAA,cAACrB,GAAY9w8B,SAAb,CAAsBxI,MAAO068B,GACxB948B,EAGZ,CC/JD,MAAag58B,GAAUA,KAAoB/x8B,EAAAA,EAAAA,YAAWyw8B,ICAtD,SAASuB,GAAgBf,EAA4BgB,GACjD,OAAGA,IAAiBA,EAAaxE,UAAYwE,EAAapF,eAAiBoF,EAAavE,kBAC3EsD,GAAwBC,EAAagB,GAG3ChB,EAAY788B,OAAS,CAC/B,CAMD,SAAgB898B,GAAmBD,GAC/B,MAAQzB,SAAUS,EAAZ,WAAyBV,GAAewB,MAEvCI,EAAkBC,IAAuBnyC,EAAAA,EAAAA,WAAkB,IAC1DswC,IAAe3P,GAAkB4Q,SAG9BQ,GAAgBf,EAAagB,KAOxC,OAJAtyC,EAAAA,EAAAA,YAAU,KACNyyC,EAAoBJ,GAAgBf,EAAagB,GAAjD,GACD,CAAChB,EAAagB,IAEVE,CACV,CC3BD,SAASE,GAAW196B,EAAoCu86B,GACpD,OAAKA,IAAwBA,EAAmBrE,eAAkBqE,EAAmBxD,gBAAmBwD,EAAmBzD,UAKpHuD,GAAwBr86B,EAAS4t6B,iBAAkB2O,GAH/Cv86B,EAASiv6B,kBAIvB,CAMD,SAAgB0O,GAAWpB,GACvB,MAAM,SAAEv86B,EAAF,WAAY476B,EAAZ,OAAwBf,GAAWuC,MAElC7D,EAASqE,IAActyC,EAAAA,EAAAA,WAA2B,IAAMoyC,GAAW196B,EAAUu86B,KAcpF,OAZAvxC,EAAAA,EAAAA,YAAU,KACN4yC,GAAYC,IACR,MAAMC,EAAcJ,GAAW196B,EAAUu86B,GACzC,OAAKjE,GAAc6C,mBAAmB0C,EAAgBC,GAAa,GAK5DD,GAJHhD,EAAOl/7B,KAAK,iCACLmi8B,EAGX,GAPJ,GASD,CAAClC,EAAYW,EAAoBv86B,EAAU666B,IAEvCtB,CACV,6FC/BD,SAJA,WAAuC,IAArB727B,EAAYtW,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,KAC/B,MAAMmvB,EAAe1wB,EAAAA,WAAiBS,GAAAA,GACtC,OAAQiwB,IALavqB,EAKiBuqB,EAJH,IAA5Bj5B,OAAOgkB,KAAKtV,GAAKvR,QAI6C87B,EAAf7Y,EALxD,IAAuB1R,CAMvB,ECNaia,IAAqBzL,EAAAA,GAAWA,KAI7C,SAHA,WACE,OAAOu+7B,GADqB3x8B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG6e,GAEjC,gBCHA,MAAMtW,GAAY,CAAC,YAAa,6DCHhC,MACA,IADmBD,EAAAA,GAAsBA,GAAC,SAAU,CAAC,SCO/CgO,IAAelD,EAAAA,GAAAA,KA0BrB,GFvBe,WAAiC,IAAdtgB,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC3C,MAAM,QACJoW,EAAO,aACPE,EAAY,iBACZs77B,EAAmB,cAAa,kBAChCC,GACE/+8B,EACEg/8B,GAAUrp8B,EAAAA,GAAAA,SAAO,MAAO,CAC5BkS,kBAAmB1E,GAAiB,UAATA,GAA6B,OAATA,GAA0B,OAATA,GADlDxN,CAEbgM,GAAeA,GAgBlB,OAfyBhW,EAAAA,YAAiB,SAAa2M,EAASpM,GAC9D,MAAM0I,EAAQqq8B,GAASz77B,GACjB077B,GAAgB/j7B,EAAAA,GAAYA,GAAC7iB,IACjC,UACE7E,EAAS,UACT8E,EAAY,OACV2m8B,EACJtm8B,GAAQC,EAAAA,GAAAA,GAA8Bqm8B,EAAezp8B,IACvD,OAAoBiE,EAAAA,GAAAA,KAAKsl8B,GAASlm8B,EAAAA,GAAAA,GAAS,CACzCQ,GAAIf,EACJrM,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWsr8B,EAAoBA,EAAkBD,GAAoBA,GACrFlq8B,MAAO0O,GAAU1O,EAAM0O,IAAoB1O,GAC1CgE,GACL,GAEF,CE5BYum8B,CAAU,CACpB777B,QAASC,GAAAA,EACTC,aAAY,GACZs77B,iBAAkBM,GAAWt68B,KAC7Bi68B,kBAAmBx67B,GAAkBA,EAACiY,sECZxC,MASA,GATwB+2zB,IACtB,IAAI8rH,EAMJ,OAJEA,EADE9rH,EAAY,EACD,QAAUA,GAAa,EAEvB,IAAMxw1B,KAAK2hD,IAAI6uyB,EAAY,GAAK,GAEvC8rH,EAAa,KAAK1z7B,QAAQ,EAAE,iBCN/B,SAAS2z7B,GAAqBhq8B,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,EACqBE,EAAAA,GAAsBA,GAAC,WAAY,CAAC,OAAQ,UAAW,WAAY,YAAa,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,gBAAnc,MCDMC,GAAY,CAAC,YAAa,YAAa,YAAa,SAAU,WA0B9D8p8B,IAAY5p8B,EAAAA,GAAMA,IAAC,MAAO,CAC9BvK,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAWyZ,UAAWzZ,EAAW+pE,QAAU10E,EAAO4tH,QAAgC,cAAvBjjH,EAAWyZ,SAA2BpkB,EAAO,YAADJ,OAAa+K,EAAW090B,YAAa,GAP1J590B,EASfM,IAGG,IAHF,MACFrB,EAAK,WACLiB,GACDI,EACC,IAAIup8B,EACJ,OAAO1m8B,EAAAA,GAAAA,GAAS,CACdme,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQuC,WAAWC,MAC1D1E,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,QAC1C/C,WAAYzC,EAAM0C,YAAY9L,OAAO,gBACnCqK,EAAW+pE,QAAU,CACvBvtD,aAAczd,EAAM4d,MAAMH,cACF,aAAvBxc,EAAWyZ,SAA0B,CACtCkG,OAAQ,aAAF1qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,UAC3B,cAAvBzE,EAAWyZ,UAA2BxW,EAAAA,GAAAA,GAAS,CAChD6hB,WAAY/lB,EAAMmD,MAAQnD,GAAOuM,QAAQtL,EAAW090B,aAClD3+0B,EAAMmD,MAA+B,SAAvBnD,EAAMoD,QAAQgE,MAAmB,CACjDyj8B,gBAAiB,mBAAF308B,QAAqBye,EAAAA,GAAAA,IAAM,OAAQm27B,GAAgB7p8B,EAAW090B,YAAW,MAAAzo1B,QAAKye,EAAAA,GAAAA,IAAM,OAAQm27B,GAAgB7p8B,EAAW090B,YAAW,MAChJ3+0B,EAAMmD,MAAQ,CACf0n8B,gBAAiE,OAA/CD,EAAuB5q8B,EAAMmD,KAAKkqM,eAAoB,EAASu9vB,EAAqB3p8B,EAAW090B,aAChH,IAwFL,GAtF2B5n1B,EAAAA,YAAiB,SAAe2M,EAASpM,GAClE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,cAEF,UACFqI,EAAS,UACT8E,EAAY,MAAK,UACjBg70B,EAAY,EAAC,OACb3zwB,GAAS,EAAK,QACdtwD,EAAU,aACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACAg70B,YACA3zwB,SACAtwD,YAEIrW,EA7DkBpD,KACxB,MAAM,OACJ+pE,EAAM,UACN2zwB,EAAS,QACTjk0B,EAAO,QACPrW,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwqB,GAAUswD,GAAU,UAAuB,cAAZtwD,GAA2B,YAAJxkB,OAAgByo1B,KAEvF,OAAOp60B,EAAAA,GAAcA,GAACD,EAAOom8B,GAAsBrm8B,EAAQ,EAmD3CG,CAAkBvD,GAQlC,OAAoB6D,EAAAA,GAAAA,KAAK6l8B,IAAWzm8B,EAAAA,GAAAA,GAAS,CAC3CQ,GAAIf,EACJ1C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,GACL,IC3FO,SAAS+m8B,GAAsBrq8B,GACpC,OAAOC,EAAAA,GAAAA,IAAqB,YAAaD,EAC3C,EACsBE,EAAAA,GAAsBA,GAAC,YAAa,CAAC,OAAQ,gBAAiB,mBAAoB,iBAAkB,iBAAkB,mBAAoB,eAAgB,eAAgB,iBAAkB,eAAgB,mBAAoB,aAAc,YAAa,eAAgB,iBAAjS,MCDMC,GAAY,CAAC,YAAa,QAAS,oBAAqB,YAyBxDmq8B,GAAWA,CAACC,EAAMC,IAASD,EAAO,GAAH/08B,OAAc,MAAR+08B,OAAe,EAASA,EAAKt88B,QAAQ,IAAK,IAAG,MAAAuH,OAAKg18B,EAAI,KAAMA,EACjGC,IAAapq8B,EAAAA,GAAMA,IAACqq8B,GAAO,CAC/B508B,KAAM,YACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO,WAADJ,QAAYiL,EAAAA,GAAUA,GAACF,EAAWnR,YAAcwG,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWC,SAAU,GAP3GH,EAShBM,IAGG,IAHF,MACFrB,EAAK,WACLiB,GACDI,EACC,MAAMgq8B,EAAgD,UAAvBrr8B,EAAMoD,QAAQgE,KAAmBpH,EAAMoD,QAAQ6F,KAAK,KAAOjJ,EAAMoD,QAAQ6F,KAAK,KAC7G,OAAO/E,EAAAA,GAAAA,GAAS,CACd5B,QAAS,OACTsiB,cAAe,SACfxiB,MAAO,OACP4jB,UAAW,aAEXpsB,WAAY,GACa,UAAxBqH,EAAWnR,UAAwB,CACpCA,SAAU,QACVqL,QAAS6E,EAAMmD,MAAQnD,GAAO7E,OAAOkQ,OACrCsa,IAAK,EACLG,KAAM,OACNF,MAAO,EACP,eAAgB,CAEd91B,SAAU,aAEa,aAAxBmR,EAAWnR,UAA2B,CACvCA,SAAU,WACVqL,QAAS6E,EAAMmD,MAAQnD,GAAO7E,OAAOkQ,OACrCsa,IAAK,EACLG,KAAM,OACNF,MAAO,GACkB,WAAxB3kB,EAAWnR,UAAyB,CAErCA,SAAU,SACVqL,QAAS6E,EAAMmD,MAAQnD,GAAO7E,OAAOkQ,OACrCsa,IAAK,EACLG,KAAM,OACNF,MAAO,GACkB,WAAxB3kB,EAAWnR,UAAyB,CACrCA,SAAU,UACe,aAAxBmR,EAAWnR,UAA2B,CACvCA,SAAU,aACRkQ,EAAMmD,OAAQe,EAAAA,GAAAA,GAAS,CAAC,EAAwB,YAArBjD,EAAWC,OAAuB,CAC/DmhB,gBAAiBgp7B,EACjBnq8B,MAAOlB,EAAMoD,QAAQkF,gBAAgB+i8B,IACpCpq8B,EAAWC,OAA8B,YAArBD,EAAWC,OAA4C,YAArBD,EAAWC,OAA4C,gBAArBD,EAAWC,OAA2B,CAC/HmhB,gBAAiBriB,EAAMoD,QAAQnC,EAAWC,OAAOmC,KACjDnC,MAAOlB,EAAMoD,QAAQnC,EAAWC,OAAO4H,cACjB,YAArB7H,EAAWC,OAAuB,CACnCA,MAAO,WACiB,SAAvBlB,EAAMoD,QAAQgE,OAAoBnG,EAAWqq8B,mBAAqB,CACnEjp7B,gBAAiB,KACjBnhB,MAAO,MACe,gBAArBD,EAAWC,QAA2BgD,EAAAA,GAAAA,GAAS,CAChDme,gBAAiB,cACjBnhB,MAAO,WACiB,SAAvBlB,EAAMoD,QAAQgE,MAAmB,CAClCyj8B,gBAAiB,UACd7q8B,EAAMmD,OAAQe,EAAAA,GAAAA,GAAS,CAAC,EAAwB,YAArBjD,EAAWC,OAAuB,CAChE,sBAAuBD,EAAWqq8B,kBAAoBtr8B,EAAMmD,KAAKC,QAAQmo8B,OAAOC,UAAYR,GAAShr8B,EAAMmD,KAAKC,QAAQmo8B,OAAOE,OAAQzr8B,EAAMmD,KAAKC,QAAQmo8B,OAAOC,WACjK,iBAAkBvq8B,EAAWqq8B,kBAAoBtr8B,EAAMmD,KAAKC,QAAQmC,KAAKC,QAAUwl8B,GAAShr8B,EAAMmD,KAAKC,QAAQmo8B,OAAOG,UAAW1r8B,EAAMmD,KAAKC,QAAQmC,KAAKC,UACxJvE,EAAWC,QAAUD,EAAWC,MAAMnM,MAAM,oCAAsC,CACnF,sBAAuBkM,EAAWqq8B,kBAAoBtr8B,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOmC,KAAO2n8B,GAAShr8B,EAAMmD,KAAKC,QAAQmo8B,OAAOE,OAAQzr8B,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOmC,MAClL,iBAAkBpC,EAAWqq8B,kBAAoBtr8B,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAO4H,aAAeki8B,GAAShr8B,EAAMmD,KAAKC,QAAQmo8B,OAAOG,UAAW1r8B,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAO4H,gBACtL,CAAC,UAAW,eAAeq+W,SAASlmX,EAAWC,QAAU,CAC3DmhB,gBAAiB,4BAChB,CACDnhB,MAA4B,YAArBD,EAAWC,MAAsB,UAAY,uBAC9B,gBAArBD,EAAWC,OAA2B,CACvC2p8B,gBAAiB,OACjBxo7B,gBAAiB,cACjBnhB,MAAO,YACN,IAsEL,GApE4BnK,EAAAA,YAAiB,SAAgB2M,EAASpM,GACpE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,eAEF,UACFqI,EAAS,MACTqC,EAAQ,UAAS,kBACjBoq8B,GAAoB,EAAK,SACzBx78B,EAAW,SACTO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACApR,WACAw78B,sBAEIjn8B,EAhHkBpD,KACxB,MAAM,MACJC,EAAK,SACLpR,EAAQ,QACRuU,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ,QAAFgG,QAAUiL,EAAAA,GAAUA,GAACD,IAAM,WAAAhL,QAAeiL,EAAAA,GAAUA,GAACrR,MAEpE,OAAOyU,EAAAA,GAAcA,GAACD,EAAOym8B,GAAuB1m8B,EAAQ,EAuG5CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKqm8B,IAAYjn8B,EAAAA,GAAAA,GAAS,CAC5C8mE,QAAQ,EACRrnE,UAAW,SACX1C,WAAYA,EACZ090B,UAAW,EACX9/0B,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,EAAwB,UAAb/O,GAAwB,aACjEwH,IAAKA,GACJ0M,GACL,ICtIO,SAAS2n8B,GAAuBjr8B,GACrC,OAAOC,EAAAA,GAAAA,IAAqB,aAAcD,EAC5C,EACuBE,EAAAA,GAAsBA,GAAC,aAAc,CAAC,OAAQ,UAAW,UAAW,UAA3F,MCDMC,GAAY,CAAC,YAAa,YAAa,iBAAkB,WAoBzD+q8B,IAAc7q8B,EAAAA,GAAMA,IAAC,MAAO,CAChCvK,KAAM,aACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,MAAO+Q,EAAW4q8B,gBAAkBv18B,EAAOw18B,QAASx18B,EAAO2K,EAAWyZ,SAAS,GAP9E3Z,EASjBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbpU,SAAU,WACVwS,QAAS,OACTyiB,WAAY,WACV9jB,EAAW4q8B,gBAAkB,CAC/B9o7B,YAAa/iB,EAAM0d,QAAQ,GAC3BmF,aAAc7iB,EAAM0d,QAAQ,GAC5B,CAAC1d,EAAMmM,YAAYG,GAAG,OAAQ,CAC5ByW,YAAa/iB,EAAM0d,QAAQ,GAC3BmF,aAAc7iB,EAAM0d,QAAQ,KAEN,UAAvBzc,EAAWyZ,SAAuB,CACnCrO,UAAW,IACX,IAAEvM,IAAA,IAAC,MACHE,EAAK,WACLiB,GACDnB,EAAA,MAA4B,YAAvBmB,EAAWyZ,SAAyB1a,EAAM2L,OAAOS,OAAO,IAgE9D,GA/D6BrV,EAAAA,YAAiB,SAAiB2M,EAASpM,GACtE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,gBAEF,UACFqI,EAAS,UACT8E,EAAY,MAAK,eACjBko8B,GAAiB,EAAK,QACtBnx7B,EAAU,WACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACAko8B,iBACAnx7B,YAEIrW,EAzDkBpD,KACxB,MAAM,QACJoD,EAAO,eACPwn8B,EAAc,QACdnx7B,GACEzZ,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QAAS278B,GAAkB,UAAWnx7B,IAE/C,OAAOnW,EAAAA,GAAcA,GAACD,EAAOqn8B,GAAwBtn8B,EAAQ,EAgD7CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK8m8B,IAAa1n8B,EAAAA,GAAAA,GAAS,CAC7CQ,GAAIf,EACJ9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,EACL2J,WAAYA,GACX+C,GACL,IC3EO,SAAS+n8B,GAA0Brr8B,GACxC,OAAOC,EAAAA,GAAAA,IAAqB,gBAAiBD,EAC/C,EAC0BE,EAAAA,GAAsBA,GAAC,gBAAiB,CAAC,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,YAAa,YAAa,QAAS,QAAS,UAAW,SAAU,UAAW,WAAY,YAAa,aAAc,cAAe,eAAgB,SAAU,eAAgB,cAA3R,MCDMC,GAAY,CAAC,QAAS,YAAa,YAAa,eAAgB,SAAU,YAAa,UAAW,kBAyB3Fmr8B,IAAiBjr8B,EAAAA,GAAMA,IAAC,OAAQ,CAC3CvK,KAAM,gBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAWyZ,SAAWpkB,EAAO2K,EAAWyZ,SAA+B,YAArBzZ,EAAWk/E,OAAuB7pF,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWk/E,SAAWl/E,EAAWgr8B,QAAU318B,EAAO218B,OAAQhr8B,EAAWir8B,cAAgB518B,EAAO418B,aAAcjr8B,EAAWkr8B,WAAa718B,EAAO618B,UAAU,GAP5Ppr8B,EAS3BM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb8b,OAAQ,GACgB,YAAvB/e,EAAWyZ,SAAyB,CAErCk+E,KAAM,WACkB,YAAvB33F,EAAWyZ,SAAyB1a,EAAM+C,WAAW9B,EAAWyZ,SAA+B,YAArBzZ,EAAWk/E,OAAuB,CAC7Gj6D,UAAWjlB,EAAWk/E,OACrBl/E,EAAWgr8B,QAAU,CACtB1n7B,SAAU,SACVC,aAAc,WACdE,WAAY,UACXzjB,EAAWir8B,cAAgB,CAC5Bpo7B,aAAc,UACb7iB,EAAWkr8B,WAAa,CACzBro7B,aAAc,IACd,IACIso7B,GAAwB,CAC5Bji8B,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,UAAW,KACXC,UAAW,KACXC,MAAO,IACPC,MAAO,IACP/H,QAAS,KAILwp8B,GAAuB,CAC3B7m8B,QAAS,eACT8m8B,YAAa,eACb7m8B,UAAW,iBACX8m8B,cAAe,iBACf7k8B,MAAO,cAwHT,GAnHgC3Q,EAAAA,YAAiB,SAAoB2M,EAASpM,GAC5E,MAAMk18B,GAAa3s8B,EAAAA,GAAAA,GAAgB,CACjCxP,MAAOqT,EACPlN,KAAM,kBAEF0K,EAR0BA,IACzBmr8B,GAAqBnr8B,IAAUA,EAOxBur8B,CAA0BD,EAAWtr8B,OAC7C7Q,GAAQk2B,EAAAA,GAAYA,IAACriB,EAAAA,GAAAA,GAAS,CAAC,EAAGso8B,EAAY,CAClDtr8B,YAEI,MACFi/E,EAAQ,UAAS,UACjBthF,EAAS,UACT8E,EAAS,aACTuo8B,GAAe,EAAK,OACpBD,GAAS,EAAK,UACdE,GAAY,EAAK,QACjBzx7B,EAAU,QAAO,eACjBgy7B,EAAiBN,IACf/78B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC8vF,QACAj/E,QACArC,YACA8E,YACAuo8B,eACAD,SACAE,YACAzx7B,UACAgy7B,mBAEI197B,EAAYrL,IAAcwo8B,EAAY,IAAMO,EAAehy7B,IAAY0x7B,GAAsB1x7B,KAAa,OAC1GrW,EAnGkBpD,KACxB,MAAM,MACJk/E,EAAK,aACL+r3B,EAAY,OACZD,EAAM,UACNE,EAAS,QACTzx7B,EAAO,QACPrW,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwqB,EAA8B,YAArBzZ,EAAWk/E,OAAuB,QAAJjqF,QAAYiL,EAAAA,GAAUA,GAACg/E,IAAU+r3B,GAAgB,eAAgBD,GAAU,SAAUE,GAAa,cAE1J,OAAO5n8B,EAAAA,GAAcA,GAACD,EAAOyn8B,GAA2B1n8B,EAAQ,EAuFhDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKkn8B,IAAgB9n8B,EAAAA,GAAAA,GAAS,CAChDQ,GAAIsK,EACJ1X,IAAKA,EACL2J,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,GACL,+DCzHA,SAAS,GAAuBnW,EAAGgsB,GACjC,OAAOA,IAAMA,EAAIhsB,EAAE0B,MAAM,IAAKf,OAAOg3gB,OAAOh3gB,OAAOiqC,iBAAiB5qC,EAAG,CACrEmQ,IAAK,CACHtP,MAAOF,OAAOg3gB,OAAO3rf,MAG3B,CCNA,SAAS,GAAgBA,EAAGhsB,GAC1B,OAAO,GAAkBW,OAAOi0X,eAAiBj0X,OAAOi0X,eAAepuW,OAAS,SAAUwF,EAAGhsB,GAC3F,OAAOgsB,EAAEG,UAAYnsB,EAAGgsB,CAC1B,EAAG,GAAgBA,EAAGhsB,EACxB,CCHA,SAAS,GAAegsB,EAAGwT,GACzBxT,EAAEntB,UAAY8B,OAAOoI,OAAOy2B,EAAE3gC,WAAYmtB,EAAEntB,UAAUmL,YAAcgiB,EAAG,GAAeA,EAAGwT,EAC3F,CCFA,SAAet2B,EAAAA,cAAoB,MCO5B,SAAS418B,GAAgBr88B,EAAU0tmB,GACxC,IAIIrgmB,EAASnP,OAAOoI,OAAO,MAO3B,OANItG,GAAU016B,EAAAA,SAASpx6B,IAAItE,GAAU,SAAUg9B,GAC7C,OAAOA,CACT,IAAGzgC,SAAQ,SAAUmsE,GAEnBr7D,EAAOq7D,EAAMxsE,KATF,SAAgBwsE,GAC3B,OAAOgliB,IAAS0oU,EAAAA,EAAAA,gBAAe1t2B,GAASgliB,EAAMhliB,GAASA,CACzD,CAOsB4z4B,CAAO5z4B,EAC7B,IACOr7D,CACT,CAiEA,SAASkv8B,GAAQ7z4B,EAAOzqD,EAAMle,GAC5B,OAAsB,MAAfA,EAAMke,GAAgBle,EAAMke,GAAQyqD,EAAM3oE,MAAMke,EACzD,CAaO,SAASu+7B,GAAoBC,EAAWC,EAAkBC,GAC/D,IAAIC,EAAmBP,GAAgBI,EAAUz88B,UAC7CA,EA/DC,SAA4BG,EAAMC,GAIvC,SAASy88B,EAAe3g9B,GACtB,OAAOA,KAAOkE,EAAOA,EAAKlE,GAAOiE,EAAKjE,EACxC,CALAiE,EAAOA,GAAQ,CAAC,EAChBC,EAAOA,GAAQ,CAAC,EAQhB,IAcInD,EAdA6/8B,EAAkB5+8B,OAAOoI,OAAO,MAChCy28B,EAAc,GAElB,IAAK,IAAIC,KAAW788B,EACd688B,KAAW588B,EACT288B,EAAY1h9B,SACdyh9B,EAAgBE,GAAWD,EAC3BA,EAAc,IAGhBA,EAAYnh9B,KAAKoh9B,GAKrB,IAAIC,EAAe,CAAC,EAEpB,IAAK,IAAIlwwB,KAAW3sM,EAAM,CACxB,GAAI088B,EAAgB/vwB,GAClB,IAAK9vM,EAAI,EAAGA,EAAI6/8B,EAAgB/vwB,GAAS1xM,OAAQ4B,IAAK,CACpD,IAAIig9B,EAAiBJ,EAAgB/vwB,GAAS9vM,GAC9Cgg9B,EAAaH,EAAgB/vwB,GAAS9vM,IAAM4/8B,EAAeK,EAC7D,CAGFD,EAAalwwB,GAAW8vwB,EAAe9vwB,EACzC,CAGA,IAAK9vM,EAAI,EAAGA,EAAI8/8B,EAAY1h9B,OAAQ4B,IAClCgg9B,EAAaF,EAAY9/8B,IAAM4/8B,EAAeE,EAAY9/8B,IAG5D,OAAOgg9B,CACT,CAmBiBE,CAAmBT,EAAkBE,GAmCpD,OAlCA1+8B,OAAOgkB,KAAKliB,GAAUzD,SAAQ,SAAUL,GACtC,IAAIwsE,EAAQ1oE,EAAS9D,GACrB,IAAKk66B,EAAAA,EAAAA,gBAAe1t2B,GAApB,CACA,IAAI004B,EAAWlh9B,KAAOwg9B,EAClBW,EAAWnh9B,KAAO0g9B,EAClBU,EAAYZ,EAAiBxg9B,GAC7Bqh9B,GAAYnnC,EAAAA,EAAAA,gBAAeknC,KAAeA,EAAUv98B,MAAMu7zB,IAE1D+hJ,GAAaD,IAAWG,EAQhBF,IAAWD,GAAYG,EAMxBF,GAAWD,IAAWhnC,EAAAA,EAAAA,gBAAeknC,KAI9Ct98B,EAAS9D,IAAO256B,EAAAA,EAAAA,cAAant2B,EAAO,CAClCi04B,SAAUA,EAAS547B,KAAK,KAAM2kD,GAC9B4yvB,GAAIgiJ,EAAUv98B,MAAMu7zB,GACpB7hxB,KAAM8i6B,GAAQ7z4B,EAAO,OAAQ+z4B,GAC7Bjj6B,MAAO+i6B,GAAQ7z4B,EAAO,QAAS+z4B,MAXjCz88B,EAAS9D,IAAO256B,EAAAA,EAAAA,cAAant2B,EAAO,CAClC4yvB,IAAI,IAVNt7zB,EAAS9D,IAAO256B,EAAAA,EAAAA,cAAant2B,EAAO,CAClCi04B,SAAUA,EAAS547B,KAAK,KAAM2kD,GAC9B4yvB,IAAI,EACJ7hxB,KAAM8i6B,GAAQ7z4B,EAAO,OAAQ+z4B,GAC7Bjj6B,MAAO+i6B,GAAQ7z4B,EAAO,QAAS+z4B,IAZD,CA+BpC,IACOz88B,CACT,CClIA,IAAI0lB,GAASxnB,OAAOwnB,QAAU,SAAU9Y,GACtC,OAAO1O,OAAOgkB,KAAKtV,GAAKtI,KAAI,SAAUnB,GACpC,OAAOyJ,EAAIzJ,EACb,GACF,EAuBIq68B,GAA+B,SAAUC,GAG3C,SAASD,EAAgBz98B,EAAOiqC,GAC9B,IAAIjvC,EAIA2i9B,GAFJ3i9B,EAAQ0i9B,EAAiB348B,KAAK9J,KAAM+E,EAAOiqC,IAAYhvC,MAE9B0i9B,aAAa357B,KC5C1C,SAAgCxmB,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAImgY,eAAe,6DAC3C,OAAOngY,CACT,CDyC+CukZ,CAAuB/mZ,IAUlE,OAPAA,EAAMqgC,MAAQ,CACZ096B,aAAc,CACZ6E,YAAY,GAEdD,aAAcA,EACd/8F,aAAa,GAER5l3B,CACT,CAlBA6i9B,GAAeJ,EAAiBC,GAoBhC,IAAIth9B,EAASqh9B,EAAgBph9B,UAqE7B,OAnEAD,EAAOos6B,kBAAoB,WACzBvt6B,KAAK6i9B,SAAU,EACf7i9B,KAAK+9rB,SAAS,CACZ+/Q,aAAc,CACZ6E,YAAY,IAGlB,EAEAxh9B,EAAOkw6B,qBAAuB,WAC5Brx6B,KAAK6i9B,SAAU,CACjB,EAEAL,EAAgB346B,yBAA2B,SAAkC436B,EAAW1r8B,GACtF,IDiBmChR,EAAO488B,ECjBtCD,EAAmB3r8B,EAAK/Q,SACxB098B,EAAe3s8B,EAAK2s8B,aAExB,MAAO,CACL198B,SAFgB+Q,EAAK4v2B,aDeY5g3B,ECbc088B,EDaPE,ECbkBe,EDcvDrB,GAAgBt88B,EAAMC,UAAU,SAAU0oE,GAC/C,OAAOmt2B,EAAAA,EAAAA,cAAant2B,EAAO,CACzBi04B,SAAUA,EAAS547B,KAAK,KAAM2kD,GAC9B4yvB,IAAI,EACJwiJ,OAAQvB,GAAQ7z4B,EAAO,SAAU3oE,GACjCy5C,MAAO+i6B,GAAQ7z4B,EAAO,QAAS3oE,GAC/B05C,KAAM8i6B,GAAQ7z4B,EAAO,OAAQ3oE,IAEjC,KCtB8Ey88B,GAAoBC,EAAWC,EAAkBgB,GAC3H/8F,aAAa,EAEjB,EAGAxk3B,EAAOuh9B,aAAe,SAAsBh14B,EAAO/oE,GACjD,IAAIo+8B,EAAsB1B,GAAgBrh9B,KAAK+E,MAAMC,UACjD0oE,EAAMxsE,OAAO6h9B,IAEbr14B,EAAM3oE,MAAM488B,UACdj04B,EAAM3oE,MAAM488B,SAASh98B,GAGnB3E,KAAK6i9B,SACP7i9B,KAAK+9rB,UAAS,SAAU39pB,GACtB,IAAIp7B,GAAW4T,EAAAA,GAAAA,GAAS,CAAC,EAAGwnB,EAAMp7B,UAGlC,cADOA,EAAS0oE,EAAMxsE,KACf,CACL8D,SAAUA,EAEd,IAEJ,EAEA7D,EAAOq+B,OAAS,WACd,IAAIwj7B,EAAchj9B,KAAK+E,MACnB2e,EAAYs/7B,EAAY3q8B,UACxB4q8B,EAAeD,EAAYC,aAC3Bl+8B,GAAQ4T,EAAAA,GAAAA,GAA8Bqq8B,EAAa,CAAC,YAAa,iBAEjElF,EAAe998B,KAAKogC,MAAM096B,aAC1B948B,EAAW0lB,GAAO1qB,KAAKogC,MAAMp7B,UAAUsE,IAAI258B,GAK/C,cAJOl+8B,EAAM+98B,cACN/98B,EAAMy5C,aACNz5C,EAAM05C,KAEK,OAAd/6B,EACkBjY,EAAAA,cAAoBy38B,GAAuBt38B,SAAU,CACvExI,MAAO068B,GACN948B,GAGeyG,EAAAA,cAAoBy38B,GAAuBt38B,SAAU,CACvExI,MAAO068B,GACOry8B,EAAAA,cAAoBiY,EAAW3e,EAAOC,GACxD,EAEOw98B,CACT,CA3FmC,CA2FjC/28B,EAAAA,WAEF+28B,GAAgB5t7B,UAyDZ,CAAC,EACL4t7B,GAAgB3t8B,aA5KG,CACjBwD,UAAW,MACX4q8B,aAAc,SAAsBv14B,GAClC,OAAOA,CACT,GAyKF,sCErGA,SA7EA,SAAgB3oE,GACd,MAAM,UACJwO,EAAS,QACTwF,EAAO,QACPoq8B,GAAU,EAAK,QACfC,EAAO,QACPC,EAAO,WACPC,EACAhjJ,GAAIijJ,EAAM,SACV5B,EAAQ,QACRzk7B,GACEn4B,GACGy+8B,EAASC,GAAch48B,EAAAA,UAAe,GACvCi48B,GAAkBrq8B,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQ4q8B,OAAQ5q8B,EAAQ6q8B,cAAeT,GAAWpq8B,EAAQ8q8B,eAC5FC,EAAe,CACnBht8B,MAAOws8B,EACPvs8B,OAAQus8B,EACRjp7B,KAAOip7B,EAAa,EAAKD,EACzB7o7B,MAAQ8o7B,EAAa,EAAKF,GAEtBW,GAAiB1q8B,EAAAA,GAAIA,GAACN,EAAQ20D,MAAO814B,GAAWzq8B,EAAQir8B,aAAcb,GAAWpq8B,EAAQkr8B,cAc/F,OAbKV,GAAWC,GACdC,GAAW,GAEbh48B,EAAAA,WAAgB,KACd,IAAK838B,GAAsB,MAAZ5B,EAAkB,CAE/B,MAAMuC,EAAY5m7B,WAAWqk7B,EAAUzk7B,GACvC,MAAO,KACLG,aAAa6m7B,EAAU,CAE3B,CACgB,GACf,CAACvC,EAAU4B,EAAQrm7B,KACF1jB,EAAAA,GAAAA,KAAK,OAAQ,CAC/BjG,UAAWmw8B,EACXp37B,MAAOw37B,EACP9+8B,UAAuBwU,EAAAA,GAAAA,KAAK,OAAQ,CAClCjG,UAAWww8B,KAGjB,EC9CA,MACA,IAD2Bzu8B,EAAAA,GAAsBA,GAAC,iBAAkB,CAAC,OAAQ,SAAU,gBAAiB,gBAAiB,QAAS,eAAgB,iBCLrI,IAAA6u8B,GAAAC,GAAAC,GAAAC,GAIb,MAAM/u8B,GAAY,CAAC,SAAU,UAAW,aACxC,IACEo4V,GACA42mB,GACAC,GACAC,GAYF,MAEMC,IAAgBv38B,EAAAA,GAAAA,IAAUwgW,KAAOA,GAAMw2mB,KAAAA,GAAAQ,GAAA,mIAWvCC,IAAez38B,EAAAA,GAAAA,IAAUo38B,KAAQA,GAAOH,KAAAA,GAAAO,GAAA,2EASxCE,IAAkB138B,EAAAA,GAAAA,IAAUq38B,KAAQA,GAAOH,KAAAA,GAAAM,GAAA,0IAapCG,IAAkBrv8B,EAAAA,GAAMA,IAAC,OAAQ,CAC5CvK,KAAM,iBACNkK,KAAM,QAFuBK,CAG5B,CACDwjB,SAAU,SACVqsL,cAAe,OACf9gN,SAAU,WACVqL,OAAQ,EACRwqB,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,KAAM,EACNrI,aAAc,YAKH4y7B,IAAoBtv8B,EAAAA,GAAMA,IAACuv8B,GAAQ,CAC9C958B,KAAM,iBACNkK,KAAM,UAFyBK,CAG9Bgv8B,KAAQA,GAAOH,KAAAA,GAAAK,GAAA,kyBA2CdM,GAAmBrB,cAAec,GAlGrB,KAkG8C3u8B,IAAA,IAAC,MAC9DrB,GACDqB,EAAA,OAAKrB,EAAM0C,YAAYuK,OAAOC,SAAS,GAAEqj8B,GAAmBpB,eAAerv8B,IAAA,IAAC,MAC3EE,GACDF,EAAA,OAAKE,EAAM0C,YAAYC,SAASC,OAAO,GAAE2t8B,GAAmBv34B,MAAOu34B,GAAmBjB,aAAcY,GAtGpF,KAsG4G927B,IAAA,IAAC,MAC5HpZ,GACDoZ,EAAA,OAAKpZ,EAAM0C,YAAYuK,OAAOC,SAAS,GAAEqj8B,GAAmBhB,aAAcY,IAAiB5iJ,IAAA,IAAC,MAC3FvtzB,GACDutzB,EAAA,OAAKvtzB,EAAM0C,YAAYuK,OAAOC,SAAS,IA6MxC,GAtMiCnW,EAAAA,YAAiB,SAAqB2M,EAASpM,GAC9E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,oBAGJg6C,OAAQgg6B,GAAa,EAAK,QAC1Bns8B,EAAU,CAAC,EAAC,UACZxF,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACxC4v8B,EAASC,GAAc358B,EAAAA,SAAe,IACvCsmM,EAAUtmM,EAAAA,OAAa,GACvB458B,EAAiB558B,EAAAA,OAAa,MACpCA,EAAAA,WAAgB,KACV458B,EAAe348B,UACjB248B,EAAe348B,UACf248B,EAAe348B,QAAU,KAC3B,GACC,CAACy48B,IAGJ,MAAMG,EAAoB758B,EAAAA,QAAa,GAGjC858B,GAAa7j7B,EAAAA,GAAUA,KAGvB8j7B,EAAmB/58B,EAAAA,OAAa,MAChChL,EAAYgL,EAAAA,OAAa,MACzBg68B,EAAch68B,EAAAA,aAAkBgJ,IACpC,MAAM,QACJ0u8B,EAAO,QACPC,EAAO,QACPC,EAAO,WACPC,EAAU,GACVn16B,GACE15B,EACJ2w8B,GAAWM,GAAc,IAAIA,GAAyBls8B,EAAAA,GAAAA,KAAKur8B,GAAmB,CAC5Ehs8B,QAAS,CACP4q8B,QAAQtq8B,EAAAA,GAAIA,GAACN,EAAQ4q8B,OAAQsB,GAAmBtB,QAChDC,eAAevq8B,EAAAA,GAAIA,GAACN,EAAQ6q8B,cAAeqB,GAAmBrB,eAC9DC,eAAexq8B,EAAAA,GAAIA,GAACN,EAAQ8q8B,cAAeoB,GAAmBpB,eAC9Dn24B,OAAOr0D,EAAAA,GAAIA,GAACN,EAAQ20D,MAAOu34B,GAAmBv34B,OAC9Cs24B,cAAc3q8B,EAAAA,GAAIA,GAACN,EAAQir8B,aAAciB,GAAmBjB,cAC5DC,cAAc5q8B,EAAAA,GAAIA,GAACN,EAAQkr8B,aAAcgB,GAAmBhB,eAE9D/m7B,QAhKW,IAiKXim7B,QAASA,EACTC,QAASA,EACTC,QAASA,EACTC,WAAYA,GACXvxwB,EAAQrlM,YACXqlM,EAAQrlM,SAAW,EACnB248B,EAAe348B,QAAUyhC,CAAE,GAC1B,CAACp1B,IACE+N,EAAQrb,EAAAA,aAAkB,WAA6C,IAA5Cia,EAAK1Y,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGlN,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmhC,EAAEnhC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,OAC9D,MAAM,QACJm28B,GAAU,EAAK,OACfj+5B,EAASgg6B,GAAcpl9B,EAAQqj9B,QAAO,YACtCwC,GAAc,GACZ7l9B,EACJ,GAA8C,eAAhC,MAAT4lB,OAAgB,EAASA,EAAM5gB,OAAyBwg9B,EAAkB548B,QAE7E,YADA448B,EAAkB548B,SAAU,GAGgB,gBAAhC,MAATgZ,OAAgB,EAASA,EAAM5gB,QAClCwg9B,EAAkB548B,SAAU,GAE9B,MAAM9F,EAAU++8B,EAAc,KAAOll9B,EAAUiM,QACzC40C,EAAO16C,EAAUA,EAAQ26C,wBAA0B,CACvDzqC,MAAO,EACPC,OAAQ,EACRyjB,KAAM,EACNH,IAAK,GAIP,IAAI+o7B,EACAC,EACAC,EACJ,GAAIp+5B,QAAoBpkD,IAAV4kB,GAAyC,IAAlBA,EAAMw7B,SAAmC,IAAlBx7B,EAAMy7B,UAAkBz7B,EAAMw7B,UAAYx7B,EAAMk8B,QAC1Gwh6B,EAAUvg9B,KAAK+b,MAAM0iC,EAAKxqC,MAAQ,GAClCus8B,EAAUxg9B,KAAK+b,MAAM0iC,EAAKvqC,OAAS,OAC9B,CACL,MAAM,QACJmqC,EAAO,QACPC,GACEz7B,EAAMk8B,SAAWl8B,EAAMk8B,QAAQvhD,OAAS,EAAIqlB,EAAMk8B,QAAQ,GAAKl8B,EACnE097B,EAAUvg9B,KAAK+b,MAAMsiC,EAAUI,EAAK9mB,MACpC6o7B,EAAUxg9B,KAAK+b,MAAMuiC,EAAUG,EAAKjnB,IACtC,CACA,GAAI6qB,EACFo+5B,EAAazg9B,KAAK2xC,MAAM,EAAI8M,EAAKxqC,OAAS,EAAIwqC,EAAKvqC,QAAU,GAAK,GAG9Dus8B,EAAa,IAAM,IACrBA,GAAc,OAEX,CACL,MAAMsC,EAAqF,EAA7E/i9B,KAAK6mB,IAAI7mB,KAAKD,KAAKgE,EAAUA,EAAQs/Q,YAAc,GAAKk9rB,GAAUA,GAAe,EACzFyC,EAAsF,EAA9Ehj9B,KAAK6mB,IAAI7mB,KAAKD,KAAKgE,EAAUA,EAAQq/Q,aAAe,GAAKo9rB,GAAUA,GAAe,EAChGC,EAAazg9B,KAAK2xC,KAAKox6B,GAAS,EAAIC,GAAS,EAC/C,CAGa,MAATng8B,GAAiBA,EAAMk8B,QAIQ,OAA7B4j6B,EAAiB948B,UAEnB848B,EAAiB948B,QAAU,KACzB+48B,EAAY,CACVtC,UACAC,UACAC,UACAC,aACAn16B,MACA,EAIJo36B,EAAWz+7B,MA3OS,IA2OW,KACzB0+7B,EAAiB948B,UACnB848B,EAAiB948B,UACjB848B,EAAiB948B,QAAU,KAC7B,KAIJ+48B,EAAY,CACVtC,UACAC,UACAC,UACAC,aACAn16B,MAGN,GAAG,CAAC+26B,EAAYO,EAAaF,IACvBpC,EAAU138B,EAAAA,aAAkB,KAChCqb,EAAM,CAAC,EAAG,CACRq87B,SAAS,GACT,GACD,CAACr87B,IACEiwB,EAAOtrC,EAAAA,aAAkB,CAACia,EAAOyoB,KAKrC,GAJAo36B,EAAW/n7B,QAImC,cAAhC,MAAT9X,OAAgB,EAASA,EAAM5gB,OAAwB0g9B,EAAiB948B,QAM3E,OALA848B,EAAiB948B,UACjB848B,EAAiB948B,QAAU,UAC3B648B,EAAWz+7B,MAAM,GAAG,KAClBiwB,EAAKrxB,EAAOyoB,EAAG,IAInBq36B,EAAiB948B,QAAU,KAC3B048B,GAAWM,GACLA,EAAWrl9B,OAAS,EACfql9B,EAAWzh9B,MAAM,GAEnByh9B,IAETL,EAAe348B,QAAUyhC,CAAE,GAC1B,CAACo36B,IAMJ,OALA958B,EAAAA,oBAA0BO,GAAK,KAAM,CACnCm38B,UACAr87B,QACAiwB,UACE,CAACos6B,EAASr87B,EAAOiwB,KACDv9B,EAAAA,GAAAA,KAAKsr8B,IAAiBls8B,EAAAA,GAAAA,GAAS,CACjDrF,WAAW8F,EAAAA,GAAIA,GAAC4r8B,GAAmBrg9B,KAAMmU,EAAQnU,KAAM2O,GACvDvH,IAAKvL,GACJiY,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKgp8B,GAAiB,CAC3Cnq8B,UAAW,KACXomC,MAAM,EACNz5C,SAAUmg9B,MAGhB,IC1TO,SAASW,GAA0B1w8B,GACxC,OAAOC,EAAAA,GAAAA,IAAqB,gBAAiBD,EAC/C,CACA,MACA,IAD0BE,EAAAA,GAAsBA,GAAC,gBAAiB,CAAC,OAAQ,WAAY,iBCDjFC,GAAY,CAAC,SAAU,eAAgB,WAAY,YAAa,YAAa,WAAY,gBAAiB,qBAAsB,cAAe,wBAAyB,gBAAiB,SAAU,UAAW,gBAAiB,cAAe,UAAW,iBAAkB,YAAa,UAAW,cAAe,eAAgB,YAAa,aAAc,cAAe,eAAgB,WAAY,mBAAoB,iBAAkB,QAgCvaww8B,IAAiBtw8B,EAAAA,GAAMA,IAAC,SAAU,CAC7CvK,KAAM,gBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHjB6Q,CAI3B,CACDuB,QAAS,cACTyiB,WAAY,SACZD,eAAgB,SAChBh1B,SAAU,WACVk2B,UAAW,aACXsr7B,wBAAyB,cACzBjv7B,gBAAiB,cAGjBf,QAAS,EACTV,OAAQ,EACRZ,OAAQ,EAERvC,aAAc,EACdwC,QAAS,EAETxjB,OAAQ,UACR0F,WAAY,OACZkyJ,cAAe,SACfk9yB,cAAe,OAEflujB,iBAAkB,OAElBmujB,eAAgB,OAEhBtw8B,MAAO,UACP,sBAAuB,CACrBuw8B,YAAa,QAEf,CAAC,KAADv78B,OAAMw78B,GAAkBlu8B,WAAa,CACnCotM,cAAe,OAEfn0M,OAAQ,WAEV,eAAgB,CACdk18B,YAAa,WAgZjB,GAvYgC568B,EAAAA,YAAiB,SAAoB2M,EAASpM,GAC5E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,mBAEF,OACF8M,EAAM,aACNsu8B,GAAe,EAAK,SACpBth9B,EAAQ,UACRuO,EAAS,UACT8E,EAAY,SAAQ,SACpBH,GAAW,EAAK,cAChBqu8B,GAAgB,EAAK,mBACrBC,GAAqB,EAAK,YAC1BC,GAAc,EAAK,cACnBC,EAAgB,IAAG,OACnB7/7B,EAAM,QACN6oS,EAAO,cACPi3pB,EAAa,YACbC,EAAW,QACXhg8B,EAAO,eACPig8B,EAAc,UACdC,EAAS,QACTC,EAAO,YACPC,EAAW,aACXC,EAAY,UACZC,EAAS,WACTC,EAAU,YACVC,EAAW,aACXC,EAAY,SACZC,EAAW,EAAC,iBACZC,EAAgB,eAChBC,EAAc,KACd1i9B,GACEC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCky8B,EAAYh88B,EAAAA,OAAa,MACzBi88B,EAAYj88B,EAAAA,OAAa,MACzBk88B,GAAkBjn7B,EAAAA,GAAUA,GAACgn7B,EAAWF,IACxC,kBACJ7g8B,EACAC,QAASgh8B,EACT/g8B,OAAQgh8B,EACR778B,IAAK878B,IACHC,EAAAA,GAAiBA,MACdxp7B,EAAcyp7B,GAAmBv88B,EAAAA,UAAe,GACnDyM,GAAYqmB,GACdyp7B,GAAgB,GAElBv88B,EAAAA,oBAA0BuM,GAAQ,KAAM,CACtCumB,aAAcA,KACZyp7B,GAAgB,GAChBP,EAAU/68B,QAAQoO,OAAO,KAEzB,IACJ,MAAOmt8B,EAAcC,GAAmBz88B,EAAAA,UAAe,GACvDA,EAAAA,WAAgB,KACdy88B,GAAgB,EAAK,GACpB,IACH,MAAMC,EAAoBF,IAAiB1B,IAAkBru8B,EAM7D,SAASkw8B,EAAiBC,EAAcC,GAAsD,IAAvCC,EAAgBv78B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGw58B,EACxE,OAAOgC,EAAAA,GAAgBA,IAAC9i8B,IAClB4i8B,GACFA,EAAc5i8B,GAMhB,OAJe6i8B,GACAb,EAAUh78B,SACvBg78B,EAAUh78B,QAAQ278B,GAAc3i8B,IAE3B,CAAI,GAEf,CAhBAja,EAAAA,WAAgB,KACV8yB,GAAgBko7B,IAAgBF,GAAiB0B,GACnDP,EAAUh78B,QAAQy28B,SACpB,GACC,CAACoD,EAAeE,EAAalo7B,EAAc0p7B,IAa9C,MAAMn1d,EAAkBs1d,EAAiB,QAASpB,GAC5CyB,EAAoBL,EAAiB,OAAQzB,GAC7C+B,EAAkBN,EAAiB,OAAQxB,GAC3C7zd,EAAgBq1d,EAAiB,OAAQlB,GACzCyB,EAAmBP,EAAiB,QAAQ1i8B,IAC5C6Y,GACF7Y,EAAMozB,iBAEJmu6B,GACFA,EAAavh8B,EACf,IAEIkj8B,EAAmBR,EAAiB,QAASf,GAC7CwB,EAAiBT,EAAiB,OAAQjB,GAC1C2B,EAAkBV,EAAiB,OAAQhB,GAC3Cz0d,GAAay1d,EAAiB,QAAQ1i8B,IAC1Cmi8B,EAAkBni8B,IACgB,IAA9BiB,EAAkBja,SACpBs78B,GAAgB,GAEdnh8B,GACFA,EAAOnB,EACT,IACC,GACGqj8B,IAAcP,EAAAA,GAAgBA,IAAC9i8B,IAE9B+h8B,EAAU/68B,UACb+68B,EAAU/68B,QAAUgZ,EAAM49L,eAE5BskwB,EAAmBli8B,IACe,IAA9BiB,EAAkBja,UACpBs78B,GAAgB,GACZnB,GACFA,EAAenh8B,IAGfkB,GACFA,EAAQlB,EACV,IAEIsj8B,GAAoBA,KACxB,MAAMzp8B,EAASko8B,EAAU/68B,QACzB,OAAO2L,GAA2B,WAAdA,KAA+C,MAAnBkH,EAAO6G,SAAmB7G,EAAOglJ,KAAK,EAMlF0kzB,GAAax98B,EAAAA,QAAa,GAC1Bga,IAAgB+i8B,EAAAA,GAAgBA,IAAC9i8B,IAEjC+g8B,IAAgBwC,GAAWv88B,SAAW6xB,GAAgBmp7B,EAAUh78B,SAAyB,MAAdgZ,EAAMxkB,MACnF+n9B,GAAWv88B,SAAU,EACrBg78B,EAAUh78B,QAAQqqC,KAAKrxB,GAAO,KAC5Bgi8B,EAAUh78B,QAAQoa,MAAMpB,EAAM,KAG9BA,EAAMQ,SAAWR,EAAM49L,eAAiB0lwB,MAAqC,MAAdtj8B,EAAMxkB,KACvEwkB,EAAMozB,iBAEJgu6B,GACFA,EAAUph8B,GAIRA,EAAMQ,SAAWR,EAAM49L,eAAiB0lwB,MAAqC,UAAdtj8B,EAAMxkB,MAAoBgX,IAC3FwN,EAAMozB,iBACF42Q,GACFA,EAAQhqS,GAEZ,IAEIwj8B,IAAcV,EAAAA,GAAgBA,IAAC9i8B,IAG/B+g8B,GAA6B,MAAd/g8B,EAAMxkB,KAAewm9B,EAAUh78B,SAAW6xB,IAAiB7Y,EAAMk5S,mBAClFqqpB,GAAWv88B,SAAU,EACrBg78B,EAAUh78B,QAAQqqC,KAAKrxB,GAAO,KAC5Bgi8B,EAAUh78B,QAAQy28B,QAAQz97B,EAAM,KAGhCqh8B,GACFA,EAAQrh8B,GAINgqS,GAAWhqS,EAAMQ,SAAWR,EAAM49L,eAAiB0lwB,MAAqC,MAAdtj8B,EAAMxkB,MAAgBwkB,EAAMk5S,kBACxGlP,EAAQhqS,EACV,IAEF,IAAIyj8B,GAAgB9w8B,EACE,WAAlB8w8B,KAA+Bzw8B,EAAM6rJ,MAAQ7rJ,EAAM+1B,MACrD066B,GAAgBzC,GAElB,MAAM0C,GAAc,CAAC,EACC,WAAlBD,IACFC,GAAYtk9B,UAAgBhE,IAATgE,EAAqB,SAAWA,EACnDsk9B,GAAYlx8B,SAAWA,IAElBQ,EAAM6rJ,MAAS7rJ,EAAM+1B,KACxB266B,GAAY7v8B,KAAO,UAEjBrB,IACFkx8B,GAAY,iBAAmBlx8B,IAGnC,MAAMmx8B,IAAY3o7B,EAAAA,GAAUA,GAAC10B,EAAK878B,EAAiBL,GASnD,MAAM9x8B,IAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCuh9B,eACAju8B,YACAH,WACAqu8B,gBACAC,qBACAC,cACAa,WACA/o7B,iBAEIxlB,GA3QkBpD,KACxB,MAAM,SACJuC,EAAQ,aACRqmB,EAAY,sBACZ+q7B,EAAqB,QACrBvw8B,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQsT,GAAY,WAAYqmB,GAAgB,iBAEnDgr7B,GAAkBtw8B,EAAAA,GAAcA,GAACD,EAAO8s8B,GAA2B/s8B,GAIzE,OAHIwlB,GAAgB+q7B,IAClBC,EAAgB3k9B,MAAQ,IAAJgG,OAAQ0+8B,IAEvBC,CAAe,EA6PNrw8B,CAAkBvD,IAClC,OAAoBwD,EAAAA,GAAAA,MAAM4s8B,IAAgBnt8B,EAAAA,GAAAA,GAAS,CACjDQ,GAAI+v8B,GACJ518B,WAAW8F,EAAAA,GAAIA,GAACN,GAAQnU,KAAM2O,GAC9BoC,WAAYA,GACZkR,OAAQ8re,GACRjjM,QAASA,EACTi3pB,cAAe8B,EACf7h8B,QAASmi8B,GACTjC,UAAWrh8B,GACXsh8B,QAASmC,GACTlC,YAAal0d,EACbm0d,aAAc0B,EACdzB,UAAWn0d,EACX6zd,YAAa8B,EACbvB,WAAY0B,EACZzB,YAAa0B,EACbzB,aAAcuB,EACd588B,IAAKq98B,GACL/B,SAAUpv8B,GAAY,EAAIov8B,EAC1Bxi9B,KAAMA,GACLsk9B,GAAa1w8B,EAAO,CACrB1T,SAAU,CAACA,EAAUmj9B,GAGrB3u8B,EAAAA,GAAAA,KAAKgw8B,IAAa5w8B,EAAAA,GAAAA,GAAS,CACzB5M,IAAK278B,EACLzi6B,OAAQoh6B,GACPiB,IAAqB,QAE5B,IC3TO,SAASkC,GAAsBr08B,GACpC,OAAOC,EAAAA,GAAAA,IAAqB,YAAaD,EAC3C,CACA,MACA,IADsBE,EAAAA,GAAsBA,GAAC,YAAa,CAAC,OAAQ,OAAQ,cAAe,cAAe,gBAAiB,cAAe,YAAa,WAAY,cAAe,WAAY,kBAAmB,kBAAmB,oBAAqB,kBAAmB,gBAAiB,eAAgB,kBAAmB,YAAa,mBAAoB,mBAAoB,qBAAsB,mBAAoB,iBAAkB,gBAAiB,mBAAoB,mBAAoB,eAAgB,WAAY,eAAgB,eAAgB,iBAAkB,eAAgB,aAAc,YAAa,eAAgB,gBAAiB,iBAAkB,gBAAiB,oBAAqB,qBAAsB,oBAAqB,qBAAsB,sBAAuB,qBAAsB,aAAc,YAAa,YAAa,YAAa,YAAa,UAAW,OAAQ,gBAAiB,iBAAkB,kBCGj6B,SAJwC7J,EAAAA,cAAoB,CAAC,GCI7D,SAJ8CA,EAAAA,mBAAoB3K,GCA5DyU,GAAY,CAAC,WAAY,QAAS,YAAa,YAAa,WAAY,mBAAoB,qBAAsB,UAAW,wBAAyB,YAAa,OAAQ,YAAa,OAAQ,WAkChMm08B,GAAmB/z8B,IAAciD,EAAAA,GAAAA,GAAS,CAAC,EAAuB,UAApBjD,EAAW1N,MAAoB,CACjF,uBAAwB,CACtB6N,SAAU,KAES,WAApBH,EAAW1N,MAAqB,CACjC,uBAAwB,CACtB6N,SAAU,KAES,UAApBH,EAAW1N,MAAoB,CAChC,uBAAwB,CACtB6N,SAAU,MAGR6z8B,IAAal08B,EAAAA,GAAMA,IAACm08B,GAAY,CACpCji8B,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,YACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAWyZ,SAAUpkB,EAAO,GAADJ,OAAI+K,EAAWyZ,SAAOxkB,QAAGiL,EAAAA,GAAUA,GAACF,EAAWC,SAAW5K,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAW1N,QAAU+C,EAAO,GAADJ,OAAI+K,EAAWyZ,QAAO,QAAAxkB,QAAOiL,EAAAA,GAAUA,GAACF,EAAW1N,QAA+B,YAArB0N,EAAWC,OAAuB5K,EAAO6+8B,aAAcl08B,EAAWm08B,kBAAoB9+8B,EAAO8+8B,iBAAkBn08B,EAAWwgM,WAAanrM,EAAOmrM,UAAU,GAR3W1gM,EAUhBM,IAGG,IAHF,MACFrB,EAAK,WACLiB,GACDI,EACC,IAAIg08B,EAAuBC,EAC3B,MAAMC,EAAyD,UAAvBv18B,EAAMoD,QAAQgE,KAAmBpH,EAAMoD,QAAQ6F,KAAK,KAAOjJ,EAAMoD,QAAQ6F,KAAK,KAChHus8B,EAA8D,UAAvBx18B,EAAMoD,QAAQgE,KAAmBpH,EAAMoD,QAAQ6F,KAAK/D,KAAOlF,EAAMoD,QAAQ6F,KAAK,KAC3H,OAAO/E,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW8H,OAAQ,CAC3CqX,SAAU,GACVjC,QAAS,WACTxC,cAAezd,EAAMmD,MAAQnD,GAAO4d,MAAMH,aAC1Chb,WAAYzC,EAAM0C,YAAY9L,OAAO,CAAC,mBAAoB,aAAc,eAAgB,SAAU,CAChG+L,SAAU3C,EAAM0C,YAAYC,SAAS4K,QAEvC,WAAWrJ,EAAAA,GAAAA,GAAS,CAClBst8B,eAAgB,OAChBnv7B,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQmC,KAAKkw8B,eAAc,OAAAv/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAM4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQmC,KAAKC,QAASxF,EAAMoD,QAAQE,OAAOyC,cAErL,uBAAwB,CACtBsc,gBAAiB,gBAEK,SAAvBphB,EAAWyZ,SAA2C,YAArBzZ,EAAWC,OAAuB,CACpEmhB,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAM4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAMrD,EAAMoD,QAAQE,OAAOyC,cAEzM,uBAAwB,CACtBsc,gBAAiB,gBAEK,aAAvBphB,EAAWyZ,SAA+C,YAArBzZ,EAAWC,OAAuB,CACxE0f,OAAQ,aAAF1qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,MACrEgf,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAM4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAMrD,EAAMoD,QAAQE,OAAOyC,cAEzM,uBAAwB,CACtBsc,gBAAiB,gBAEK,cAAvBphB,EAAWyZ,SAA2B,CACvC2H,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQuy8B,OAAOC,wBAA0BJ,EAClFzv7B,WAAY/lB,EAAMmD,MAAQnD,GAAOuM,QAAQ,GAEzC,uBAAwB,CACtBwZ,WAAY/lB,EAAMmD,MAAQnD,GAAOuM,QAAQ,GACzC8V,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQ6F,KAAK,OAE9B,cAAvBhI,EAAWyZ,SAAgD,YAArBzZ,EAAWC,OAAuB,CACzEmhB,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOqF,KAEjE,uBAAwB,CACtB8b,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,QAGrE,YAAYa,EAAAA,GAAAA,GAAS,CAAC,EAA0B,cAAvBjD,EAAWyZ,SAA2B,CAC7DqL,WAAY/lB,EAAMmD,MAAQnD,GAAOuM,QAAQ,KAE3C,CAAC,KAADrW,OAAM2/8B,GAAchs7B,gBAAiB3lB,EAAAA,GAAAA,GAAS,CAAC,EAA0B,cAAvBjD,EAAWyZ,SAA2B,CACtFqL,WAAY/lB,EAAMmD,MAAQnD,GAAOuM,QAAQ,KAE3C,CAAC,KAADrW,OAAM2/8B,GAAcry8B,YAAaU,EAAAA,GAAAA,GAAS,CACxChD,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOE,UACpB,aAAvBvC,EAAWyZ,SAA0B,CACtCkG,OAAQ,aAAF1qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO4C,qBAClC,cAAvBjF,EAAWyZ,SAA2B,CACvCxZ,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOE,SAC5CuiB,WAAY/lB,EAAMmD,MAAQnD,GAAOuM,QAAQ,GACzC8V,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO4C,sBAEhC,SAAvBjF,EAAWyZ,SAAsB,CAClCuF,QAAS,WACe,SAAvBhf,EAAWyZ,SAA2C,YAArBzZ,EAAWC,OAAuB,CACpEA,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,MAC/B,aAAvBpC,EAAWyZ,SAA0B,CACtCuF,QAAS,WACTW,OAAQ,0BACgB,aAAvB3f,EAAWyZ,SAA+C,YAArBzZ,EAAWC,OAAuB,CACxEA,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,KACvDud,OAAQ5gB,EAAMmD,KAAO,kBAAHjN,OAAqB8J,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,wBAAAx/8B,QAAyBye,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAM,MACpI,cAAvBpC,EAAWyZ,SAA2B,CACvCxZ,MAAOlB,EAAMmD,KAEbnD,EAAMmD,KAAKC,QAAQmC,KAAKC,QAAwF,OAA7E6v8B,GAAyBC,EAAiBt18B,EAAMoD,SAASkF,sBAA2B,EAAS+s8B,EAAsBjg9B,KAAKkg9B,EAAgBt18B,EAAMoD,QAAQ6F,KAAK,MAC9LoZ,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQuy8B,OAAOG,mBAAqBP,EAC7Exv7B,WAAY/lB,EAAMmD,MAAQnD,GAAOuM,QAAQ,IACjB,cAAvBtL,EAAWyZ,SAAgD,YAArBzZ,EAAWC,OAAuB,CACzEA,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAO4H,aACvDuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,MAC3C,YAArBpC,EAAWC,OAAuB,CACnCA,MAAO,UACP+f,YAAa,gBACQ,UAApBhgB,EAAW1N,MAA2C,SAAvB0N,EAAWyZ,SAAsB,CACjEuF,QAAS,UACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KACd,UAApB/B,EAAW1N,MAA2C,SAAvB0N,EAAWyZ,SAAsB,CACjEuF,QAAS,WACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KACd,UAApB/B,EAAW1N,MAA2C,aAAvB0N,EAAWyZ,SAA0B,CACrEuF,QAAS,UACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KACd,UAApB/B,EAAW1N,MAA2C,aAAvB0N,EAAWyZ,SAA0B,CACrEuF,QAAS,WACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KACd,UAApB/B,EAAW1N,MAA2C,cAAvB0N,EAAWyZ,SAA2B,CACtEuF,QAAS,WACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KACd,UAApB/B,EAAW1N,MAA2C,cAAvB0N,EAAWyZ,SAA2B,CACtEuF,QAAS,WACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KAClC/B,EAAWwgM,WAAa,CACzBr/L,MAAO,QACP,IACDtC,IAAA,IAAC,WACFmB,GACDnB,EAAA,OAAKmB,EAAWm08B,kBAAoB,CACnCrv7B,UAAW,OACX,UAAW,CACTA,UAAW,QAEb,CAAC,KAAD7vB,OAAM2/8B,GAAchs7B,eAAiB,CACnC9D,UAAW,QAEb,WAAY,CACVA,UAAW,QAEb,CAAC,KAAD7vB,OAAM2/8B,GAAcry8B,WAAa,CAC/BuiB,UAAW,QAEd,IACKgw7B,IAAkBh18B,EAAAA,GAAMA,IAAC,OAAQ,CACrCvK,KAAM,YACNkK,KAAM,YACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAO0/8B,UAAW1/8B,EAAO,WAADJ,QAAYiL,EAAAA,GAAUA,GAACF,EAAW1N,QAAS,GAPvDwN,EASrBqY,IAAA,IAAC,WACFnY,GACDmY,EAAA,OAAKlV,EAAAA,GAAAA,GAAS,CACb5B,QAAS,UACTuhB,YAAa,EACbE,YAAa,GACQ,UAApB9iB,EAAW1N,MAAoB,CAChCwwB,YAAa,GACZix7B,GAAiB/z8B,GAAY,IAC1Bg18B,IAAgBl18B,EAAAA,GAAMA,IAAC,OAAQ,CACnCvK,KAAM,YACNkK,KAAM,UACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAO4/8B,QAAS5/8B,EAAO,WAADJ,QAAYiL,EAAAA,GAAUA,GAACF,EAAW1N,QAAS,GAPvDwN,EASnBwszB,IAAA,IAAC,WACFtszB,GACDsszB,EAAA,OAAKrpzB,EAAAA,GAAAA,GAAS,CACb5B,QAAS,UACTuhB,aAAc,EACdE,WAAY,GACS,UAApB9iB,EAAW1N,MAAoB,CAChCswB,aAAc,GACbmx7B,GAAiB/z8B,GAAY,IA8JhC,GA7J4BlK,EAAAA,YAAiB,SAAgB2M,EAASpM,GAEpE,MAAM6+8B,EAAep/8B,EAAAA,WAAiBq/8B,IAChCC,EAA4Ct/8B,EAAAA,WAAiBu/8B,IAC7DC,GAAgBn28B,EAAAA,GAAYA,GAAC+18B,EAAczy8B,GAC3CrT,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOkm9B,EACP//8B,KAAM,eAEF,SACFlG,EAAQ,MACR4Q,EAAQ,UAAS,UACjByC,EAAY,SAAQ,UACpB9E,EAAS,SACT2E,GAAW,EAAK,iBAChB4x8B,GAAmB,EAAK,mBACxBoB,GAAqB,EACrBN,QAASO,EAAW,sBACpB7B,EAAqB,UACrBnzwB,GAAY,EAAK,KACjBluM,EAAO,SACPyi9B,UAAWU,EAAa,KACxBtm9B,EAAI,QACJsqB,EAAU,QACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACAyC,YACAH,WACA4x8B,mBACAoB,qBACA/0wB,YACAluM,OACAnD,OACAsqB,YAEIrW,EA9OkBpD,KACxB,MAAM,MACJC,EAAK,iBACLk08B,EAAgB,UAChB3zwB,EAAS,KACTluM,EAAI,QACJmnB,EAAO,QACPrW,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwqB,EAAS,GAAFxkB,OAAKwkB,GAAOxkB,QAAGiL,EAAAA,GAAUA,GAACD,IAAM,OAAAhL,QAAWiL,EAAAA,GAAUA,GAAC5N,IAAK,GAAA2C,OAAOwkB,EAAO,QAAAxkB,QAAOiL,EAAAA,GAAUA,GAAC5N,IAAK,QAAA2C,QAAYiL,EAAAA,GAAUA,GAACD,IAAUk08B,GAAoB,mBAAoB3zwB,GAAa,aAC5M/tL,MAAO,CAAC,SACRsi8B,UAAW,CAAC,OAAQ,YAAa,WAAF9/8B,QAAaiL,EAAAA,GAAUA,GAAC5N,KACvD2i9B,QAAS,CAAC,OAAQ,UAAW,WAAFhg9B,QAAaiL,EAAAA,GAAUA,GAAC5N,MAE/Csh9B,GAAkBtw8B,EAAAA,GAAcA,GAACD,EAAOyw8B,GAAuB1w8B,GACrE,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EA8N7Brw8B,CAAkBvD,GAC5B+08B,EAAYU,IAA8B5x8B,EAAAA,GAAAA,KAAKix8B,GAAiB,CACpEl38B,UAAWwF,EAAQ2x8B,UACnB/08B,WAAYA,EACZ3Q,SAAUom9B,IAENR,EAAUO,IAA4B3x8B,EAAAA,GAAAA,KAAKmx8B,GAAe,CAC9Dp38B,UAAWwF,EAAQ6x8B,QACnBj18B,WAAYA,EACZ3Q,SAAUmm9B,IAENE,EAAoBN,GAA6C,GACvE,OAAoB5x8B,EAAAA,GAAAA,MAAMww8B,IAAY/w8B,EAAAA,GAAAA,GAAS,CAC7CjD,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACwx8B,EAAat38B,UAAWwF,EAAQnU,KAAM2O,EAAW838B,GACjEhz8B,UAAWA,EACXH,SAAUA,EACVuu8B,aAAcyE,EACd5B,uBAAuBjw8B,EAAAA,GAAIA,GAACN,EAAQwlB,aAAc+q7B,GAClDt98B,IAAKA,EACLlH,KAAMA,GACL4T,EAAO,CACRK,QAASA,EACT/T,SAAU,CAAC0l9B,EAAW1l9B,EAAU4l9B,KAEpC,ICjRA,GAPyBxn9B,IACvB,MAAM4I,EAAMP,EAAAA,OAAa,CAAC,GAI1B,OAHAA,EAAAA,WAAgB,KACdO,EAAIU,QAAUtJ,CAAK,IAEd4I,EAAIU,OAAO,iBCFpB,SAHA,SAAyB9F,GACvB,MAA0B,kBAAZA,CAChB,ECmBA,SARA,SAA0Bow5B,EAAah83B,EAAYrlB,GACjD,YAAoB7U,IAAhBk25B,GAA6Bs0D,GAAgBt0D,GACxCh83B,GAEFpiB,EAAAA,GAAAA,GAAS,CAAC,EAAGoiB,EAAY,CAC9BrlB,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGoiB,EAAWrlB,WAAYA,IAEpD,ECNA,SAVA,SAA8BmmB,GAA0B,IAAlByv7B,EAAWv+8B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAClD,QAAelM,IAAXg7B,EACF,MAAO,CAAC,EAEV,MAAMzpB,EAAS,CAAC,EAIhB,OAHAnP,OAAOgkB,KAAK4U,GAAQzP,QAAOpJ,GAAQA,EAAKxZ,MAAM,aAAuC,oBAAjBqyB,EAAO7Y,KAAyBso8B,EAAY1vlB,SAAS54W,KAAO1hB,SAAQ0hB,IACtI5Q,EAAO4Q,GAAQ6Y,EAAO7Y,EAAK,IAEtB5Q,CACT,ECCA,SAVA,SAA2BypB,GACzB,QAAeh7B,IAAXg7B,EACF,MAAO,CAAC,EAEV,MAAMzpB,EAAS,CAAC,EAIhB,OAHAnP,OAAOgkB,KAAK4U,GAAQzP,QAAOpJ,KAAUA,EAAKxZ,MAAM,aAAuC,oBAAjBqyB,EAAO7Y,MAAuB1hB,SAAQ0hB,IAC1G5Q,EAAO4Q,GAAQ6Y,EAAO7Y,EAAK,IAEtB5Q,CACT,ECqDA,SApDA,SAAwB4tqB,GACtB,MAAM,aACJurS,EAAY,gBACZC,EAAe,kBACfC,EAAiB,uBACjBC,EAAsB,UACtBp48B,GACE0sqB,EACJ,IAAKurS,EAAc,CAGjB,MAAMI,GAAgBvy8B,EAAAA,GAAIA,GAAoB,MAAnBoy8B,OAA0B,EAASA,EAAgBl48B,UAAWA,EAAqC,MAA1Bo48B,OAAiC,EAASA,EAAuBp48B,UAAgC,MAArBm48B,OAA4B,EAASA,EAAkBn48B,WACjOs48B,GAAcjz8B,EAAAA,GAAAA,GAAS,CAAC,EAAsB,MAAnB6y8B,OAA0B,EAASA,EAAgBn/7B,MAAiC,MAA1Bq/7B,OAAiC,EAASA,EAAuBr/7B,MAA4B,MAArBo/7B,OAA4B,EAASA,EAAkBp/7B,OACpNvnB,GAAQ6T,EAAAA,GAAAA,GAAS,CAAC,EAAG6y8B,EAAiBE,EAAwBD,GAOpE,OANIE,EAAcvr9B,OAAS,IACzB0E,EAAMwO,UAAYq48B,GAEhB1o9B,OAAOgkB,KAAK2k8B,GAAaxr9B,OAAS,IACpC0E,EAAMunB,MAAQu/7B,GAET,CACL9m9B,QACA+m9B,iBAAahr9B,EAEjB,CAKA,MAAMir9B,EAAgBC,IAAqBpz8B,EAAAA,GAAAA,GAAS,CAAC,EAAG+y8B,EAAwBD,IAC1EO,EAAsCC,GAAkBR,GACxDS,EAAiCD,GAAkBP,GACnDS,EAAoBZ,EAAaO,GAMjCH,GAAgBvy8B,EAAAA,GAAIA,GAAsB,MAArB+y8B,OAA4B,EAASA,EAAkB748B,UAA8B,MAAnBk48B,OAA0B,EAASA,EAAgBl48B,UAAWA,EAAqC,MAA1Bo48B,OAAiC,EAASA,EAAuBp48B,UAAgC,MAArBm48B,OAA4B,EAASA,EAAkBn48B,WACnSs48B,GAAcjz8B,EAAAA,GAAAA,GAAS,CAAC,EAAwB,MAArBwz8B,OAA4B,EAASA,EAAkB9/7B,MAA0B,MAAnBm/7B,OAA0B,EAASA,EAAgBn/7B,MAAiC,MAA1Bq/7B,OAAiC,EAASA,EAAuBr/7B,MAA4B,MAArBo/7B,OAA4B,EAASA,EAAkBp/7B,OAClRvnB,GAAQ6T,EAAAA,GAAAA,GAAS,CAAC,EAAGwz8B,EAAmBX,EAAiBU,EAAgCF,GAO/F,OANIL,EAAcvr9B,OAAS,IACzB0E,EAAMwO,UAAYq48B,GAEhB1o9B,OAAOgkB,KAAK2k8B,GAAaxr9B,OAAS,IACpC0E,EAAMunB,MAAQu/7B,GAET,CACL9m9B,QACA+m9B,YAAaM,EAAkBpg9B,IAEnC,EC1DA,SANA,SAA+Bqg9B,EAAgB128B,EAAY228B,GACzD,MAA8B,oBAAnBD,EACFA,EAAe128B,EAAY228B,GAE7BD,CACT,ECLM928B,GAAY,CAAC,cAAe,oBAAqB,aAAc,0BAmCrE,SAtBA,SAAsB0qqB,GACpB,IAAIssS,EACJ,MAAM,YACFv1D,EAAW,kBACX00D,EAAiB,WACjB/18B,EAAU,uBACV628B,GAAyB,GACvBvsS,EACJ0N,GAAOh1qB,EAAAA,GAAAA,GAA8BsnqB,EAAY1qqB,IAC7Ck38B,EAA0BD,EAAyB,CAAC,EAAIE,GAAsBhB,EAAmB/18B,IAErG5Q,MAAOwM,EAAW,YAClBu68B,GACEa,IAAe/z8B,EAAAA,GAAAA,GAAS,CAAC,EAAG+0qB,EAAM,CACpC+9R,kBAAmBe,KAEfzg9B,GAAM00B,EAAAA,GAAAA,GAAWor7B,EAAwC,MAA3BW,OAAkC,EAASA,EAAwBzg9B,IAA6D,OAAvDug9B,EAAwBtsS,EAAWwrS,sBAA2B,EAASc,EAAsBvg9B,KAI1M,OAHc4g9B,GAAiB51D,GAAap+4B,EAAAA,GAAAA,GAAS,CAAC,EAAGrH,EAAa,CACpEvF,QACE2J,EAEN,ECEA,SA3BA,SAAkBsqqB,GAChB,MACE4sS,aAAcC,EACdpwrB,UAAWqwrB,GAAgB,EAC3Brj8B,IAAKsj8B,EAAU,GAAE,SACjBC,GAAW,GACThtS,EACE44P,EAAYq0C,GAAiB,CACjCL,aAAcC,EACdpj8B,IAAKsj8B,IAEP,IAAItwrB,EAAYqwrB,GACM,IAAlBA,GAAgD,IAArBD,GAA2BG,IACxDvwrB,GAAY,GAEd,MAAM,aACJmwrB,EAAY,IACZnj8B,EAAMsj8B,GACJtwrB,EAAYm8oB,EAAY54P,EAE5B,MAAO,CACL4sS,eACAnwrB,YACAhzQ,MACAyj8B,aALmBN,GAAgBrh8B,OAAOqh8B,GAAgBnj8B,EAAM,GAAH9e,OAAM8e,EAAG,KAAMmj8B,EAOhF,ECrCO,SAASO,GAAqBh48B,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,CACA,MAGA,IAHqBE,EAAAA,GAAsBA,GAAC,WAAY,CAAC,OAAQ,QAAS,MAAO,WAAY,uBAAwB,0BAA2B,sBAAuB,yBAA0B,YAAa,aAAc,YAAa,eAAgB,iBAAkB,eAAgB,eAAgB,qBAAsB,kBAEjU,8BAA+B,iCAAkC,+BAAgC,kCAAmC,iCAAkC,oCAAqC,kCAAmC,uCCHxOC,GAAY,CAAC,eAAgB,YAAa,UAAW,YAAa,aAAc,kBAAmB,WAAY,UAAW,QAAS,YAAa,MAAO,eAAgB,QAAS,YAAa,WAAY,WA+BzM838B,IAAY538B,EAAAA,GAAMA,IAAC,OAAQ,CAC/BvK,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAH7B6Q,CAIf,CACDjR,SAAU,WACVwS,QAAS,cAET+xJ,cAAe,SACfz6J,WAAY,IAERg/8B,IAAa738B,EAAAA,GAAMA,IAAC,OAAQ,CAChCvK,KAAM,WACNkK,KAAM,QACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOui9B,MAAOvi9B,EAAO2K,EAAWyZ,SAAUpkB,EAAO,eAADJ,QAAgBiL,EAAAA,GAAUA,GAACF,EAAW638B,aAAazoyB,WAASn6K,QAAGiL,EAAAA,GAAUA,GAACF,EAAW638B,aAAa3oyB,aAAWj6K,QAAGiL,EAAAA,GAAUA,GAACF,EAAWs2R,WAAkC,YAArBt2R,EAAWC,OAAuB5K,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWC,SAAWD,EAAW+mR,WAAa1xR,EAAO0xR,UAAU,GAPvTjnR,EAShBqY,IAEG,IAFF,MACFpZ,GACDoZ,EACC,IAAI2/7B,EACJ,MAAO,CACLz28B,QAAS,OACTsiB,cAAe,MACfC,SAAU,OACVC,eAAgB,SAChBE,aAAc,SACdD,WAAY,SACZj1B,SAAU,WACVk2B,UAAW,aACX1c,WAAYtJ,EAAM+C,WAAWuG,WAC7B3O,WAAYqF,EAAM+C,WAAW0G,iBAC7BrI,SAAUpB,EAAM+C,WAAWC,QAAQ,IACnCkf,SAAU827B,GACVp+8B,WAAY,EACZqlB,QAAS,QACT5d,OAAQ228B,GACRv77B,aAzDoB,GA0DpBtiB,OAAQ,EAERsH,WAAYzC,EAAM0C,YAAY9L,OAAO,YAAa,CAChDqW,OAAQjN,EAAM0C,YAAYuK,OAAOC,UACjCvK,SAAU3C,EAAM0C,YAAYC,SAAS+K,iBAEvCpN,SAAU,IAAI9R,OAAOgkB,MAAoC,OAA7Bum8B,EAAc/48B,EAAMmD,MAAgB418B,EAAc/48B,GAAOoD,SAASuU,QAAOnrB,IACnG,IAAIys9B,EAAcC,EAClB,OAAuC,OAA9BD,EAAej58B,EAAMmD,MAAgB818B,EAAej58B,GAAOoD,QAAQ5W,GAAK6W,OAAwC,OAA9B618B,EAAel58B,EAAMmD,MAAgB+18B,EAAel58B,GAAOoD,QAAQ5W,GAAKsc,YAAY,IAC9KlU,KAAIsM,IAAS,CACd7Q,MAAO,CACL6Q,SAEF0W,MAAO,CACLyK,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQlC,GAAOmC,KACtDnC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQlC,GAAO4H,kBAE3C,CACHzY,MAAO,CACLqqB,QAAS,OAEX9C,MAAO,CACL6F,aA/EW,EAgFXpb,OAAQ828B,EACRj37B,SAAUi37B,EACVl57B,QAAS,IAEV,CACD5vB,MAAOk9zB,IAAA,IAAC,WACNtszB,GACDsszB,EAAA,MAA0C,QAArCtszB,EAAW638B,aAAazoyB,UAA6D,UAAvCpvK,EAAW638B,aAAa3oyB,YAAiD,gBAAvBlvK,EAAWs2R,OAAyB,EAC1I3/Q,MAAO,CACL+N,IAAK,EACLC,MAAO,EACP7H,UAAW,gCACXq77B,gBAAiB,UACjB,CAAC,KAADlj9B,OAAMmj9B,GAAarxrB,YAAc,CAC/BjqQ,UAAW,mCAGd,CACD1tB,MAAO+9zB,IAAA,IAAC,WACNntzB,GACDmtzB,EAAA,MAA0C,WAArCntzB,EAAW638B,aAAazoyB,UAAgE,UAAvCpvK,EAAW638B,aAAa3oyB,YAAiD,gBAAvBlvK,EAAWs2R,OAAyB,EAC7I3/Q,MAAO,CACLiO,OAAQ,EACRD,MAAO,EACP7H,UAAW,+BACXq77B,gBAAiB,YACjB,CAAC,KAADlj9B,OAAMmj9B,GAAarxrB,YAAc,CAC/BjqQ,UAAW,kCAGd,CACD1tB,MAAOu/zB,IAAA,IAAC,WACN3uzB,GACD2uzB,EAAA,MAA0C,QAArC3uzB,EAAW638B,aAAazoyB,UAA6D,SAAvCpvK,EAAW638B,aAAa3oyB,YAAgD,gBAAvBlvK,EAAWs2R,OAAyB,EACzI3/Q,MAAO,CACL+N,IAAK,EACLG,KAAM,EACN/H,UAAW,iCACXq77B,gBAAiB,QACjB,CAAC,KAADlj9B,OAAMmj9B,GAAarxrB,YAAc,CAC/BjqQ,UAAW,oCAGd,CACD1tB,MAAOgg0B,IAAA,IAAC,WACNpvzB,GACDovzB,EAAA,MAA0C,WAArCpvzB,EAAW638B,aAAazoyB,UAAgE,SAAvCpvK,EAAW638B,aAAa3oyB,YAAgD,gBAAvBlvK,EAAWs2R,OAAyB,EAC5I3/Q,MAAO,CACLiO,OAAQ,EACRC,KAAM,EACN/H,UAAW,gCACXq77B,gBAAiB,UACjB,CAAC,KAADlj9B,OAAMmj9B,GAAarxrB,YAAc,CAC/BjqQ,UAAW,mCAGd,CACD1tB,MAAO2j0B,IAAA,IAAC,WACN/yzB,GACD+yzB,EAAA,MAA0C,QAArC/yzB,EAAW638B,aAAazoyB,UAA6D,UAAvCpvK,EAAW638B,aAAa3oyB,YAAiD,aAAvBlvK,EAAWs2R,OAAsB,EACvI3/Q,MAAO,CACL+N,IAAK,MACLC,MAAO,MACP7H,UAAW,gCACXq77B,gBAAiB,UACjB,CAAC,KAADlj9B,OAAMmj9B,GAAarxrB,YAAc,CAC/BjqQ,UAAW,mCAGd,CACD1tB,MAAO6j0B,IAAA,IAAC,WACNjzzB,GACDizzB,EAAA,MAA0C,WAArCjzzB,EAAW638B,aAAazoyB,UAAgE,UAAvCpvK,EAAW638B,aAAa3oyB,YAAiD,aAAvBlvK,EAAWs2R,OAAsB,EAC1I3/Q,MAAO,CACLiO,OAAQ,MACRD,MAAO,MACP7H,UAAW,+BACXq77B,gBAAiB,YACjB,CAAC,KAADlj9B,OAAMmj9B,GAAarxrB,YAAc,CAC/BjqQ,UAAW,kCAGd,CACD1tB,MAAO+j0B,IAAA,IAAC,WACNnzzB,GACDmzzB,EAAA,MAA0C,QAArCnzzB,EAAW638B,aAAazoyB,UAA6D,SAAvCpvK,EAAW638B,aAAa3oyB,YAAgD,aAAvBlvK,EAAWs2R,OAAsB,EACtI3/Q,MAAO,CACL+N,IAAK,MACLG,KAAM,MACN/H,UAAW,iCACXq77B,gBAAiB,QACjB,CAAC,KAADlj9B,OAAMmj9B,GAAarxrB,YAAc,CAC/BjqQ,UAAW,oCAGd,CACD1tB,MAAO2k0B,IAAA,IAAC,WACN/zzB,GACD+zzB,EAAA,MAA0C,WAArC/zzB,EAAW638B,aAAazoyB,UAAgE,SAAvCpvK,EAAW638B,aAAa3oyB,YAAgD,aAAvBlvK,EAAWs2R,OAAsB,EACzI3/Q,MAAO,CACLiO,OAAQ,MACRC,KAAM,MACN/H,UAAW,gCACXq77B,gBAAiB,UACjB,CAAC,KAADlj9B,OAAMmj9B,GAAarxrB,YAAc,CAC/BjqQ,UAAW,mCAGd,CACD1tB,MAAO,CACL23R,WAAW,GAEbpwQ,MAAO,CACLnV,WAAYzC,EAAM0C,YAAY9L,OAAO,YAAa,CAChDqW,OAAQjN,EAAM0C,YAAYuK,OAAOC,UACjCvK,SAAU3C,EAAM0C,YAAYC,SAASgL,mBAI5C,IAoNH,GAlN2B5W,EAAAA,YAAiB,SAAe2M,EAASpM,GAClE,IAAI+J,EAAMi48B,EAAax58B,EAAOy58B,EAAcC,EAAiBC,EAC7D,MAAMpp9B,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,cAGJsi9B,aAAcY,EAAmB,CAC/BrpyB,SAAU,MACVF,WAAY,SACb,UACDtxK,EAAS,UACT8E,EAAS,WACT1D,EAAa,CAAC,EAAC,gBACf058B,EAAkB,CAAC,EAAC,SACpBrp9B,EACAinS,QAASqirB,EAAc,cACvB148B,MAAO248B,EAAY,UACnB7xrB,UAAWqwrB,GAAgB,EAC3Brj8B,IAAKsj8B,EAAU,GACfH,aAAcC,EAAgB,MAC9B9z8B,EAAK,UACL8mB,EAAS,SACTmt7B,GAAW,EACX797B,QAASo/7B,EAAc,YACrBzp9B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,aACJs38B,EACAnwrB,UAAW+xrB,EAAiB,IAC5B/k8B,EACAyj8B,aAAcuB,GACZC,GAAS,CACXjl8B,IAAKsj8B,EACLtwrB,UAAWqwrB,EACXF,aAAcC,EACdG,aAEIp0C,EAAYq0C,GAAiB,CACjCM,aAAcY,EACdx48B,MAAO248B,EACPtirB,QAASqirB,EACTl/7B,QAASo/7B,EACT3B,aAAcC,IAEVpwrB,EAAY+xrB,GAAqC,MAAhB5B,GAAwC,QAAhB2B,GACzD,MACJ548B,EAAQ248B,EAAS,QACjBtirB,EAAUqirB,EAAW,aACrBd,EAAeY,EAAgB,QAC/Bh/7B,EAAUo/7B,GACR9xrB,EAAYm8oB,EAAY9z6B,EACtBoo9B,EAA2B,QAAZ/97B,EAAoBs/7B,OAAuB5t9B,EAC1D6U,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC8n9B,eACAnwrB,YACAhzQ,MACAyj8B,eACAF,WACAO,eACA538B,QACAq2R,UACA78Q,YAEIrW,EAxQkBpD,KACxB,MAAM,MACJC,EAAK,aACL438B,EAAY,UACZ9wrB,EAAS,QACTuP,EAAO,QACP78Q,EAAO,QACPrW,EAAU,CAAC,GACTpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QACP2o9B,MAAO,CAAC,QAASn+7B,EAASstQ,GAAa,YAAa,eAAF9xR,QAAiBiL,EAAAA,GAAUA,GAAC238B,EAAazoyB,WAASn6K,QAAGiL,EAAAA,GAAUA,GAAC238B,EAAa3oyB,aAAW,eAAAj6K,QAAmBiL,EAAAA,GAAUA,GAAC238B,EAAazoyB,WAASn6K,QAAGiL,EAAAA,GAAUA,GAAC238B,EAAa3oyB,aAAWj6K,QAAGiL,EAAAA,GAAUA,GAACo2R,IAAQ,UAAArhS,QAAciL,EAAAA,GAAUA,GAACo2R,IAAsB,YAAVr2R,GAAuB,QAAJhL,QAAYiL,EAAAA,GAAUA,GAACD,MAE3U,OAAOqD,EAAAA,GAAcA,GAACD,EAAOo08B,GAAsBr08B,EAAQ,EA2P3CG,CAAkBvD,GAG5Bi58B,EAAmH,OAAvG748B,EAA8D,OAAtDi48B,EAAuB,MAATh18B,OAAgB,EAASA,EAAMpU,MAAgBop9B,EAAcr58B,EAAWk68B,MAAgB948B,EAAOs38B,GACjIyB,EAAyH,OAA5Gt68B,EAAiE,OAAxDy58B,EAAwB,MAATj18B,OAAgB,EAASA,EAAMu08B,OAAiBU,EAAet58B,EAAWo68B,OAAiBv68B,EAAQ848B,GACxI0B,EAAmF,OAAlEd,EAA+B,MAAbpu7B,OAAoB,EAASA,EAAUl7B,MAAgBsp9B,EAAkBG,EAAgBzp9B,KAC5Hqq9B,EAAsF,OAApEd,EAAgC,MAAbru7B,OAAoB,EAASA,EAAUyt7B,OAAiBY,EAAmBE,EAAgBd,MAChI2B,EAAYC,GAAa,CAC7Bn4D,YAAa43D,EACblD,kBAAmBsD,EACnBrD,uBAAwBjz8B,EACxB+y8B,gBAAiB,CACfz/8B,MACAoN,GAAIf,GAEN1C,aACApC,WAAW8F,EAAAA,GAAIA,GAAkB,MAAjB218B,OAAwB,EAASA,EAAcz78B,UAAWwF,EAAQnU,KAAM2O,KAEpF678B,EAAaD,GAAa,CAC9Bn4D,YAAa83D,EACbpD,kBAAmBuD,EACnBt58B,aACApC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQw08B,MAAyB,MAAlB0B,OAAyB,EAASA,EAAe178B,aAElF,OAAoB4F,EAAAA,GAAAA,MAAMy18B,GAAUh28B,EAAAA,GAAAA,GAAS,CAAC,EAAGs28B,EAAW,CAC1Dlq9B,SAAU,CAACA,GAAuBwU,EAAAA,GAAAA,KAAKs18B,GAAWl28B,EAAAA,GAAAA,GAAS,CAAC,EAAGw28B,EAAY,CACzEpq9B,SAAUmo9B,QAGhB,ICvTO,SAASkC,GAAuBj68B,GACrC,OAAOC,EAAAA,GAAAA,IAAqB,aAAcD,EAC5C,CACA,MACA,IADuBE,EAAAA,GAAsBA,GAAC,aAAc,CAAC,OAAQ,WAAY,YAAa,QAAS,SAAU,WAAY,QAAS,WAAY,eAAgB,uBAAwB,iBAAkB,gBAAiB,UAAW,oBCDlOC,GAAY,CAAC,WAAY,WAAY,YAAa,YAAa,WAAY,QAAS,cAAe,OAAQ,YAAa,WA2BxH+58B,IAAc758B,EAAAA,GAAMA,IAAC,MAAO,CAChCvK,KAAM,aACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAW458B,UAAYvk9B,EAAOuk9B,SAAUvk9B,EAAO2K,EAAWyZ,SAAUzZ,EAAWqE,OAAShP,EAAOgP,MAAkC,aAA3BrE,EAAW48J,aAA8BvnK,EAAO+5K,SAAUpvK,EAAW658B,UAAYxk9B,EAAOwk9B,SAAU758B,EAAW3Q,UAAYgG,EAAOyk9B,aAAc958B,EAAW3Q,UAAuC,aAA3B2Q,EAAW48J,aAA8BvnK,EAAO0k9B,qBAA+C,UAAzB/58B,EAAWilB,WAAoD,aAA3BjlB,EAAW48J,aAA8BvnK,EAAO2k9B,eAAyC,SAAzBh68B,EAAWilB,WAAmD,aAA3BjlB,EAAW48J,aAA8BvnK,EAAO4k9B,cAAc,GAP3hBn68B,EASjBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb8b,OAAQ,EAERpmB,WAAY,EACZ2hT,YAAa,EACbk2pB,YAAa,QACbxw7B,aAAcjhB,EAAMmD,MAAQnD,GAAOoD,QAAQsC,QAC3Cy18B,kBAAmB,QAClBl68B,EAAW458B,UAAY,CACxB/q9B,SAAU,WACV+1B,OAAQ,EACRC,KAAM,EACN1jB,MAAO,QACNnB,EAAWqE,OAAS,CACrB2b,YAAajhB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQg48B,eAAc,aAAazm8B,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQsC,QAAS,MACrF,UAAvBzE,EAAWyZ,SAAuB,CACnCqJ,WAAY,IACY,WAAvB9iB,EAAWyZ,SAAmD,eAA3BzZ,EAAW48J,aAAgC,CAC/E95I,WAAY/jB,EAAM0d,QAAQ,GAC1BmG,YAAa7jB,EAAM0d,QAAQ,IACH,WAAvBzc,EAAWyZ,SAAmD,aAA3BzZ,EAAW48J,aAA8B,CAC7Ej6I,UAAW5jB,EAAM0d,QAAQ,GACzBoG,aAAc9jB,EAAM0d,QAAQ,IACA,aAA3Bzc,EAAW48J,aAA8B,CAC1Cx7J,OAAQ,OACR848B,kBAAmB,EACnBE,iBAAkB,QACjBp68B,EAAW658B,UAAY,CACxB717B,UAAW,UACX5iB,OAAQ,QACR,IAAEvC,IAAA,IAAC,WACHmB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAW3Q,UAAY,CACxCgS,QAAS,OACToiB,WAAY,SACZwB,UAAW,SACXtF,OAAQ,EACR067B,eAAgB,QAChBC,gBAAiB,QACjB,sBAAuB,CACrB5tkB,QAAS,KACT1oX,UAAW,WAEb,IAAE7L,IAAA,IAAC,MACHpZ,EAAK,WACLiB,GACDmY,EAAA,OAAKlV,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAW3Q,UAAuC,aAA3B2Q,EAAW48J,aAA8B,CACjF,sBAAuB,CACrBz7J,MAAO,OACPye,UAAW,cAAF3qB,QAAiB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,SACvD418B,eAAgB,YAElB,IAAE/tJ,IAAA,IAAC,MACHvtzB,EAAK,WACLiB,GACDsszB,EAAA,OAAKrpzB,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAW3Q,UAAuC,aAA3B2Q,EAAW48J,aAA8B,CACjFj5I,cAAe,SACf,sBAAuB,CACrBviB,OAAQ,OACR2e,WAAY,cAAF9qB,QAAiB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,SACxD618B,gBAAiB,YAEnB,IAAEntJ,IAAA,IAAC,WACHntzB,GACDmtzB,EAAA,OAAKlqzB,EAAAA,GAAAA,GAAS,CAAC,EAA4B,UAAzBjD,EAAWilB,WAAoD,aAA3BjlB,EAAW48J,aAA8B,CAC9F,YAAa,CACXz7J,MAAO,OAET,WAAY,CACVA,MAAO,QAEiB,SAAzBnB,EAAWilB,WAAmD,aAA3BjlB,EAAW48J,aAA8B,CAC7E,YAAa,CACXz7J,MAAO,OAET,WAAY,CACVA,MAAO,QAET,IACIo58B,IAAiBz68B,EAAAA,GAAMA,IAAC,OAAQ,CACpCvK,KAAM,aACNkK,KAAM,UACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOmme,QAAoC,aAA3Bx7d,EAAW48J,aAA8BvnK,EAAOml9B,gBAAgB,GAPrE168B,EASpB6uzB,IAAA,IAAC,MACF5vzB,EAAK,WACLiB,GACD2uzB,EAAA,OAAK1rzB,EAAAA,GAAAA,GAAS,CACb5B,QAAS,eACTygB,YAAa,QAAF7sB,OAAU8J,EAAM0d,QAAQ,GAAE,WACrCmF,aAAc,QAAF3sB,OAAU8J,EAAM0d,QAAQ,GAAE,YACV,aAA3Bzc,EAAW48J,aAA8B,CAC1Cj7I,WAAY,QAAF1sB,OAAU8J,EAAM0d,QAAQ,GAAE,WACpCoF,cAAe,QAAF5sB,OAAU8J,EAAM0d,QAAQ,GAAE,YACvC,IACIg+7B,GAAuB3k9B,EAAAA,YAAiB,SAAiB2M,EAASpM,GACtE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,gBAEF,SACFqk9B,GAAW,EAAK,SAChBvq9B,EAAQ,UACRuO,EAAS,UACT8E,GAAYrT,EAAW,MAAQ,MAAI,SACnCwq9B,GAAW,EAAK,MAChBx18B,GAAQ,EAAK,YACbu4J,EAAc,aAAY,KAC1Bh5J,GAAqB,OAAdlB,EAAqB,iBAAcvX,GAAS,UACnD85B,EAAY,SAAQ,QACpBxL,EAAU,aACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCwq9B,WACAl38B,YACAm38B,WACAx18B,QACAu4J,cACAh5J,OACAqhB,YACAxL,YAEIrW,EA5JkBpD,KACxB,MAAM,SACJ458B,EAAQ,SACRvq9B,EAAQ,QACR+T,EAAO,SACPy28B,EAAQ,MACRx18B,EAAK,YACLu4J,EAAW,UACX33I,EAAS,QACTxL,GACEzZ,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ2q9B,GAAY,WAAYng8B,EAASpV,GAAS,QAAyB,aAAhBu4J,GAA8B,WAAYi9yB,GAAY,WAAYxq9B,GAAY,eAAgBA,GAA4B,aAAhButK,GAA8B,uBAAsC,UAAd33I,GAAyC,aAAhB23I,GAA8B,iBAAgC,SAAd33I,GAAwC,aAAhB23I,GAA8B,iBACjW4+T,QAAS,CAAC,UAA2B,aAAhB5+T,GAA8B,oBAErD,OAAOt5J,EAAAA,GAAcA,GAACD,EAAOq28B,GAAwBt28B,EAAQ,EA6I7CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK818B,IAAa128B,EAAAA,GAAAA,GAAS,CAC7CQ,GAAIf,EACJ9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BgG,KAAMA,EACNvN,IAAKA,EACL2J,WAAYA,GACX+C,EAAO,CACR1T,SAAUA,GAAwBwU,EAAAA,GAAAA,KAAK028B,GAAgB,CACrD388B,UAAWwF,EAAQo4d,QACnBx7d,WAAYA,EACZ3Q,SAAUA,IACP,OAET,IAMAor9B,GAAQC,sBAAuB,EAgE/B,2BC1PA,UAAeh88B,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,+JACD,iBCASq88B,GAA4B,CACrCC,KAAM,CACFC,SAJS,uCAKT97S,UAAW,2CACX+7S,YAAa,IACbC,sBAAuB,KACzBzl9B,MAAO,CACL0l9B,cAAe,eACfC,wBAAwB,IAInBC,GAAkC,CAAC,wCAAwC,6CAgB3EC,GAAkC,CAC3CxgB,OAAQugB,WC5BG,MAAME,IA8EpBC,GA9EoBD,GAAAA,GACZE,eAAiBh4jB,UACtB,MAAMkhjB,EAAsB,OAAZ+W,SAAY,IAAZA,QAAY,EAAZA,GAAcrhB,mBAC9B,GAAIsK,EAAS,CACX,IAAIgX,EACJ,IAEEA,QAAmBD,GAAa5iB,mBAAmB,CACjDgC,OAAQugB,GACR1W,QAASA,IAEX/91B,QAAQ53D,IAAI,6CAEd,CAAE,MAAA4s6B,GAEAD,QAAmBD,GAAa9iB,kBAAkB,CAChDkC,OAAQugB,GACR1W,QAASA,GAEb,CAEA,OAAOgX,EAAW/8S,WACpB,GAtBiB28S,GAyBZM,cAAgBp4jB,SAGd2iR,MAFO01S,6CAEQ,CACpB185B,QAAS,CACP+qwB,OAAQ,2CACR4xJ,cAAe,gBAAmBP,GAAKC,oBAGxClh7B,MAAMykB,GAAaA,EAASoxB,SAC5B71C,MAAMykB,GAEEA,EAASpxD,QArCH2t9B,GA0CZS,mBAAqBv4jB,SAKnB2iR,MAFiB,GAEQ,CAC9BlloB,OAAQ,OACRke,QAAS,CACP+qwB,OAAQ,2CACR4xJ,cAAe,gBAAmBP,GAAKC,iBACvC,eAAgB,oBAElBvr4B,KAAMnoE,KAAK5W,UAAU,CACnB8q9B,SAAUA,MAGX1h7B,MAAMykB,GAAaA,EAASoxB,SAC5B71C,MAAMykB,GACEA,EAASpxD,QA5DH2t9B,GAgEZW,WAAYz4jB,UACjB2iR,MAAMhilB,qDAAoD,CACxDljD,OAAQ,OACRke,QAAQ,CACN+qwB,OAAQ,mBACR4xJ,cAAe,gBAAkBP,GAAKC,iBACtC,eAAgB,sBAGnBlh7B,MAAMykB,GAAaA,EAASoxB,SAC5B71C,MAAMykB,GACEA,GACP,EC/CN,MAkBam95B,IAAc5yW,EAAAA,EAAAA,oBACzBj+mB,GAGW8w9B,GAAe778B,IAA4C,IAA3C,SAAE/Q,GAAmC+Q,EAChE,MAAO878B,EAAWC,IAAgB5lD,EAAAA,EAAAA,eAAmBpr6B,GASrD,OACE0Y,EAAAA,GAAAA,KAACm48B,GAAY/l9B,SAAQ,CAACxI,MAAO,CAAEyu9B,YAAWC,gBAAe9s9B,SACtDA,GACoB,EAKd+s9B,GAAiBA,KAC5B,MAAM/i7B,GAAU/iC,EAAAA,EAAAA,YAAW0l9B,IAC3B,IAAK3i7B,EACH,MAAM,IAAIh9B,MAAM,qDAElB,OAAOg9B,CAAO,EC7EhB,IAAe36B,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,2GACD,SCFJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,oPACD,iBC4EJ,GApE4C8B,IAAuB,IAAtB,aAAEi88B,GAAcj88B,EAC3D,MAAMko8B,EAAkBE,MAClB,SAAEv96B,EAAQ,SAAE676B,GAAauB,KACzB7D,EAAUoE,GAAY9B,EAAS,IAAM,CAAC,IACrCwV,EAAwBC,GAA6Bzm9B,EAAAA,SAAmC,MACzF+17B,EAAWR,MAIX,UAAC6wB,GAAaE,KAEdI,EAAYA,KAEhB,IAEEvx7B,EAASiu6B,WAAWiiB,GACtB,CAAC,MAAM108B,GACLggG,QAAQhgG,MAAM,oBAAqBA,EACrC,GAQF,OAAK6h8B,GASDzk8B,EAAAA,GAAAA,KAAC448B,GAAG,CAAC1w8B,GAAI,CAAE+W,WAAY,QAASzzB,UAC9BwU,EAAAA,GAAAA,KAAC6w8B,GAAM,CACL36pB,QAASA,IAAM8xoB,EAAS,YACxBkpB,WAAWlx8B,EAAAA,GAAAA,KAAC648B,GAAa,IACzB3w8B,GAAI,CAAE9L,MAAO,QAAS2iB,YAAa,SAAUvzB,SACrC,OAAPm18B,QAAO,IAAPA,OAAO,EAAPA,EAASjv8B,UAZdsO,EAAAA,GAAAA,KAAC448B,GAAG,CAAC1w8B,GAAI,CAAE+W,WAAY,OAAQF,YAAa,QAASvzB,UACnDwU,EAAAA,GAAAA,KAAC6w8B,GAAM,CAAC36pB,QAASyiqB,EAAWv88B,MAAM,UAAU808B,WAAWlx8B,EAAAA,GAAAA,KAAC497B,GAAK,IAAIpy8B,SAAG,WAoC1E,EC7Ea,SAAS+jB,GAAK1d,EAAIkgY,GAC/B,OAAO,WACL,OAAOlgY,EAAGgC,MAAMk+X,EAASv+X,UAC3B,CACF,CCAA,MAAOO,SAAQA,IAAIrK,OAAO9B,WACnBq8B,eAAcA,IAAIv6B,OAEnBov9B,IAAUrn9B,GAGb/H,OAAOoI,OAAO,MAHQqrY,IACrB,MAAM9jY,EAAMtF,GAASzD,KAAK6sY,GAC1B,OAAO1rY,GAAM4H,KAAS5H,GAAM4H,GAAOA,EAAI5O,MAAM,GAAI,GAAG8M,cAAc,GAFvD,IAAC9F,GAKhB,MAAMsn9B,GAAczt9B,IAClBA,EAAOA,EAAKiM,cACJ4lY,GAAU27kB,GAAO37kB,KAAW7xY,GAGhC0t9B,GAAa1t9B,GAAQ6xY,UAAgBA,IAAU7xY,GAS9CgN,QAAOA,IAAIjI,MASZmnY,GAAcwhlB,GAAW,aAqB/B,MAAMj33B,GAAgBg33B,GAAW,eA2BjC,MAAMrilB,GAAWsilB,GAAW,UAQtBnhlB,GAAamhlB,GAAW,YASxBhhlB,GAAWghlB,GAAW,UAStBpilB,GAAYuG,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/CtpX,GAAiBtC,IACrB,GAAoB,WAAhBun8B,GAAOvn8B,GACT,OAAO,EAGT,MAAM3pB,EAAYq8B,GAAe1S,GACjC,OAAsB,OAAd3pB,GAAsBA,IAAc8B,OAAO9B,WAAkD,OAArC8B,OAAOu6B,eAAer8B,OAA0Bs8B,OAAOC,eAAe5S,MAAU2S,OAAOE,YAAY7S,EAAI,EAUnK2pJ,GAAS69yB,GAAW,QASpBE,GAASF,GAAW,QASpBG,GAASH,GAAW,QASpBI,GAAaJ,GAAW,YAsCxBK,GAAoBL,GAAW,oBAE9BM,GAAkB9zkB,GAAW+zkB,GAAYC,IAAa,CAAC,iBAAkB,UAAW,WAAY,WAAWzp9B,IAAIip9B,IA2BtH,SAAShx9B,GAAQqQ,EAAKvG,GAA+B,IAM/CpJ,EACAmpB,GAPoB,WAAC4n8B,GAAa,GAAMhm9B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhD,GAAY,OAAR4E,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLE,GAAQF,GAEV,IAAK3P,EAAI,EAAGmpB,EAAIxZ,EAAIvR,OAAQ4B,EAAImpB,EAAGnpB,IACjCoJ,EAAGvB,KAAK,KAAM8H,EAAI3P,GAAIA,EAAG2P,OAEtB,CAEL,MAAMsV,EAAO8r8B,EAAa9v9B,OAAOqnC,oBAAoB34B,GAAO1O,OAAOgkB,KAAKtV,GAClEmB,EAAMmU,EAAK7mB,OACjB,IAAIa,EAEJ,IAAKe,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBf,EAAMgmB,EAAKjlB,GACXoJ,EAAGvB,KAAK,KAAM8H,EAAI1Q,GAAMA,EAAK0Q,EAEjC,CACF,CAEA,SAASqh9B,GAAQrh9B,EAAK1Q,GACpBA,EAAMA,EAAI6P,cACV,MAAMmW,EAAOhkB,OAAOgkB,KAAKtV,GACzB,IACI1E,EADAjL,EAAIilB,EAAK7mB,OAEb,KAAO4B,KAAM,GAEX,GADAiL,EAAOga,EAAKjlB,GACRf,IAAQgM,EAAK6D,cACf,OAAO7D,EAGX,OAAO,IACT,CAEA,MAAMgm9B,GAEsB,qBAAfn83B,WAAmCA,WACvB,qBAATjqD,KAAuBA,KAA0B,qBAAXlN,OAAyBA,OAASkqb,OAGlFqpgB,GAAoBnk7B,IAAagiW,GAAYhiW,IAAYA,IAAYkk7B,GAoD3E,MA8HMh53B,IAAgBsrS,GAKG,qBAAfzsS,YAA8Bt7D,GAAes7D,YAH9C49S,GACEnR,IAAcmR,aAAiBnR,IAHrB,IAACA,GAetB,MAiCM4tlB,GAAab,GAAW,mBAWxB728B,GAAiB,CAAC3F,IAAA,IAAC,eAAC2F,GAAe3F,EAAA,MAAK,CAACnE,EAAKqR,IAASvH,EAAe5R,KAAK8H,EAAKqR,EAAK,EAApE,CAAsE/f,OAAO9B,WAS9F0wY,GAAWyglB,GAAW,UAEtBc,GAAoBA,CAACzh9B,EAAK0r8B,KAC9B,MAAMttkB,EAAc9sY,OAAOoqC,0BAA0B17B,GAC/C0h9B,EAAqB,CAAC,EAE5B/x9B,GAAQyuY,GAAa,CAAC/kW,EAAY//B,KAChC,IAAIklC,GAC2C,KAA1CA,EAAMkt6B,EAAQry6B,EAAY//B,EAAM0G,MACnC0h9B,EAAmBpo9B,GAAQklC,GAAOnF,EACpC,IAGF/nC,OAAOiqC,iBAAiBv7B,EAAK0h9B,EAAmB,EAsD5Cxue,GAAQ,6BAERyue,GAAQ,aAERC,GAAW,CACfD,MAAK,GACLzue,MAAK,GACL2ue,YAAa3ue,GAAQA,GAAMtod,cAAgB+27B,IAwB7C,MA+BMG,GAAYnB,GAAW,iBAQvBoB,GAAgB,EAAEC,EAAuBC,KAC7C,OAAID,EACKrk7B,aAGFsk7B,GAAyBtu9B,EAW7B,SAAFqF,OAAW/H,KAAKqyC,UAXsBo+lB,EAWV,GAV3B4/U,GAAQxs8B,iBAAiB,WAAWlS,IAAoB,IAAnB,OAACspB,EAAM,KAAE6e,GAAKnoC,EAC7CspB,IAAWo17B,IAAWv26B,IAASp3C,GACjC+toB,EAAUjzoB,QAAUizoB,EAAU3onB,OAAV2onB,EACtB,IACC,GAEKnlmB,IACNmlmB,EAAU1yoB,KAAKutC,GACf+k7B,GAAQjnP,YAAY1muB,EAAO,IAAI,GAEC4oC,GAAO7Q,WAAW6Q,GAXxB,IAAE5oC,EAAO+toB,CAYxC,EAjBqB,CAkBI,oBAAjB/jmB,aACP8hW,GAAW6hlB,GAAQjnP,cAGf6nP,GAAiC,qBAAnBxvD,eAClBA,eAAev74B,KAAKmq8B,IAAgC,qBAAZt53B,SAA2BA,QAAQ45S,UAAYmglB,GAIzF,IACE7h9B,QAAO,GACPypF,cAAa,GACb08R,SAlpBF,SAAkBltW,GAChB,OAAe,OAARA,IAAiBimX,GAAYjmX,IAA4B,OAApBA,EAAIxe,cAAyBykY,GAAYjmX,EAAIxe,cACpF8kY,GAAWtmX,EAAIxe,YAAY0rX,WAAaltW,EAAIxe,YAAY0rX,SAASltW,EACxE,EAgpBEgp8B,WApgBkBp9kB,IAClB,IAAIo+N,EACJ,OAAOp+N,IACgB,oBAAbq9kB,UAA2Br9kB,aAAiBq9kB,UAClD3ilB,GAAWsF,EAAMvyY,UACY,cAA1B2wmB,EAAOu9W,GAAO37kB,KAEL,WAATo+N,GAAqB1jO,GAAWsF,EAAMppY,WAAkC,sBAArBopY,EAAMppY,YAG/D,EA2fDwgY,kBA9nBF,SAA2BhjX,GACzB,IAAI1Y,EAMJ,OAJEA,EAD0B,qBAAhBmnF,aAAiCA,YAAYW,OAC9CX,YAAYW,OAAOpvE,GAElBA,GAASA,EAAI2xE,QAAYnB,GAAcxwE,EAAI2xE,QAEhDrqF,CACT,EAunBE69X,SAAQ,GACRsB,SAAQ,GACRV,UA9kBgB6F,IAAmB,IAAVA,IAA4B,IAAVA,EA+kB3CvG,SAAQ,GACR/iX,cAAa,GACbwl8B,iBAAgB,GAChB9zkB,UAAS,GACT+zkB,WAAU,GACVC,UAAS,GACT/hlB,YAAW,GACXt8N,OAAM,GACN+9yB,OAAM,GACNC,OAAM,GACN5glB,SAAQ,GACRT,WAAU,GACVysP,SA9hBgB/ymB,GAAQqlX,GAASrlX,IAAQsmX,GAAWtmX,EAAIwwX,MA+hBxDq3kB,kBAAiB,GACjB143B,aAAY,GACZy43B,WAAU,GACVpx9B,QAAO,GACPkzB,MAhaF,SAASA,IACP,MAAM,SAACw/7B,GAAYd,GAAiBnz9B,OAASA,MAAQ,CAAC,EAChDqS,EAAS,CAAC,EACV6h9B,EAAcA,CAACnp8B,EAAK7pB,KACxB,MAAMiz9B,EAAYF,GAAYhB,GAAQ5g9B,EAAQnR,IAAQA,EAClDmsB,GAAchb,EAAO8h9B,KAAe9m8B,GAActC,GACpD1Y,EAAO8h9B,GAAa1/7B,EAAMpiB,EAAO8h9B,GAAYpp8B,GACpCsC,GAActC,GACvB1Y,EAAO8h9B,GAAa1/7B,EAAM,CAAC,EAAG1J,GACrBjZ,GAAQiZ,GACjB1Y,EAAO8h9B,GAAapp8B,EAAI9mB,QAExBoO,EAAO8h9B,GAAapp8B,CACtB,EAGF,IAAK,IAAI9oB,EAAI,EAAGmpB,EAAIpe,UAAU3M,OAAQ4B,EAAImpB,EAAGnpB,IAC3C+K,UAAU/K,IAAMV,GAAQyL,UAAU/K,GAAIiy9B,GAExC,OAAO7h9B,CACT,EA6YEq0B,OAjYa,SAACrb,EAAG4H,EAAGs4W,GAA8B,IAArB,WAACynlB,GAAWhm9B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAE,CAAC,EAQ5C,OAPAzL,GAAQ0xB,GAAG,CAAClI,EAAK7pB,KACXqqY,GAAW8F,GAAWtmX,GACxBM,EAAEnqB,GAAO6nB,GAAKgC,EAAKwgX,GAEnBlgX,EAAEnqB,GAAO6pB,CACX,GACC,CAACio8B,eACG3n8B,CACT,EAyXEloB,KA7fY0P,GAAQA,EAAI1P,KACxB0P,EAAI1P,OAAS0P,EAAIxP,QAAQ,qCAAsC,IA6f/D+w9B,SAjXgB/xkB,IACc,QAA1BA,EAAQx+Y,WAAW,KACrBw+Y,EAAUA,EAAQp+Y,MAAM,IAEnBo+Y,GA8WPxP,SAlWeA,CAACtmY,EAAa8n9B,EAAkBtv9B,EAAOirY,KACtDzjY,EAAYnL,UAAY8B,OAAOoI,OAAO+o9B,EAAiBjz9B,UAAW4uY,GAClEzjY,EAAYnL,UAAUmL,YAAcA,EACpCrJ,OAAOgR,eAAe3H,EAAa,QAAS,CAC1CnJ,MAAOix9B,EAAiBjz9B,YAE1B2D,GAAS7B,OAAOD,OAAOsJ,EAAYnL,UAAW2D,EAAM,EA6VpDuv9B,aAjVmBA,CAACC,EAAWC,EAASno8B,EAAQoo8B,KAChD,IAAI1v9B,EACA9C,EACAghB,EACJ,MAAM2yB,EAAS,CAAC,EAIhB,GAFA4+6B,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAzv9B,EAAQ7B,OAAOqnC,oBAAoBgq7B,GACnCty9B,EAAI8C,EAAM1E,OACH4B,KAAM,GACXghB,EAAOle,EAAM9C,GACPwy9B,IAAcA,EAAWxx8B,EAAMsx8B,EAAWC,IAAc5+6B,EAAO3yB,KACnEux8B,EAAQvx8B,GAAQsx8B,EAAUtx8B,GAC1B2yB,EAAO3yB,IAAQ,GAGnBsx8B,GAAuB,IAAXlo8B,GAAoBoR,GAAe827B,EACjD,OAASA,KAAelo8B,GAAUA,EAAOko8B,EAAWC,KAAaD,IAAcrx9B,OAAO9B,WAEtF,OAAOoz9B,CAAO,EA2TdlC,OAAM,GACNC,WAAU,GACVz7kB,SAjTeA,CAACjkY,EAAK86lB,EAAcnpmB,KACnCqO,EAAM9P,OAAO8P,SACI/R,IAAb0D,GAA0BA,EAAWqO,EAAIxS,UAC3CmE,EAAWqO,EAAIxS,QAEjBmE,GAAYmpmB,EAAattmB,OACzB,MAAMsS,EAAYE,EAAInP,QAAQiqmB,EAAcnpmB,GAC5C,OAAsB,IAAfmO,GAAoBA,IAAcnO,CAAQ,EA2SjDg1b,QAhSe7iD,IACf,IAAKA,EAAO,OAAO,KACnB,GAAI7kY,GAAQ6kY,GAAQ,OAAOA,EAC3B,IAAI10Y,EAAI00Y,EAAMt2Y,OACd,IAAKmxY,GAASvvY,GAAI,OAAO,KACzB,MAAM+uC,EAAM,IAAInnC,MAAM5H,GACtB,KAAOA,KAAM,GACX+uC,EAAI/uC,GAAK00Y,EAAM10Y,GAEjB,OAAO+uC,CAAG,EAwRV0j7B,aA7PmBA,CAAC9i9B,EAAKvG,KACzB,MAEMuyB,GAFYhsB,GAAOA,EAAI8rB,OAAOE,WAET9zB,KAAK8H,GAEhC,IAAIS,EAEJ,MAAQA,EAASurB,EAASx4B,UAAYiN,EAAO8sH,MAAM,CACjD,MAAMimb,EAAO/yiB,EAAOjP,MACpBiI,EAAGvB,KAAK8H,EAAKwziB,EAAK,GAAIA,EAAK,GAC7B,GAoPAuva,SAzOeA,CAACC,EAAQ/h9B,KACxB,IAAIsT,EACJ,MAAM6qB,EAAM,GAEZ,KAAwC,QAAhC7qB,EAAUyu8B,EAAOpr9B,KAAKqJ,KAC5Bm+B,EAAIpwC,KAAKulB,GAGX,OAAO6qB,CAAG,EAkOVoi7B,WAAU,GACV138B,eAAc,GACdm58B,WAAYn58B,GACZ238B,kBAAiB,GACjByB,cAzLqBlj9B,IACrByh9B,GAAkBzh9B,GAAK,CAACq5B,EAAY//B,KAElC,GAAImmY,GAAWz/X,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUlO,QAAQwH,GAC/D,OAAO,EAGT,MAAM9H,EAAQwO,EAAI1G,GAEbmmY,GAAWjuY,KAEhB6nC,EAAW92B,YAAa,EAEpB,aAAc82B,EAChBA,EAAW8C,UAAW,EAInB9C,EAAWjiC,MACdiiC,EAAWjiC,IAAM,KACf,MAAMgJ,MAAM,qCAAwC9G,EAAO,IAAK,GAEpE,GACA,EAmKF6p9B,YAhKkBA,CAACC,EAAerv9B,KAClC,MAAMiM,EAAM,CAAC,EAEP4rmB,EAAUxskB,IACdA,EAAIzvC,SAAQ6B,IACVwO,EAAIxO,IAAS,CAAI,GACjB,EAKJ,OAFA0O,GAAQkj9B,GAAiBx3W,EAAOw3W,GAAiBx3W,EAAOz6mB,OAAOiy9B,GAAe1q9B,MAAM3E,IAE7EiM,CAAG,EAsJVqj9B,YAlOkBpi9B,GACXA,EAAI9B,cAAc1N,QAAQ,yBAC/B,SAAkByvB,EAAG7hB,EAAIC,GACvB,OAAOD,EAAGurB,cAAgBtrB,CAC5B,IA+NFw9G,KApJWA,OAqJXwm2B,eAnJqBA,CAAC9x9B,EAAO0wB,IACb,MAAT1wB,GAAiBooB,OAAO2sC,SAAS/0D,GAASA,GAASA,EAAQ0wB,EAmJlEm/7B,QAAO,GACPnpgB,OAAQopgB,GACRC,iBAAgB,GAChBK,SAAQ,GACR2B,eA1IqB,WAAgD,IAA/Clt9B,EAAI+E,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAAI40X,EAAQ50X,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGwm9B,GAASC,YACjD5g9B,EAAM,GACV,MAAM,OAACxS,GAAUuhY,EACjB,KAAO35X,KACL4K,GAAO+uX,EAAS/+X,KAAKqyC,SAAW70C,EAAO,GAGzC,OAAOwS,CACT,EAmIEui9B,oBA1HF,SAA6Bz+kB,GAC3B,SAAUA,GAAStF,GAAWsF,EAAMvyY,SAAyC,aAA9BuyY,EAAMj5W,OAAOC,cAA+Bg5W,EAAMj5W,OAAOE,UAC1G,EAyHEy37B,aAvHoBzj9B,IACpB,MAAM+7D,EAAQ,IAAI9jE,MAAM,IAElB4iE,EAAQA,CAAC3uC,EAAQ77B,KAErB,GAAImuY,GAAStyW,GAAS,CACpB,GAAI6vC,EAAMjqE,QAAQo6B,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxB6vC,EAAM1rE,GAAK67B,EACX,MAAM5X,EAASpU,GAAQgsB,GAAU,GAAK,CAAC,EASvC,OAPAv8B,GAAQu8B,GAAQ,CAAC16B,EAAOlC,KACtB,MAAMo09B,EAAe7o5B,EAAMrpE,EAAOnB,EAAI,IACrC+uY,GAAYsklB,KAAkBpv8B,EAAOhlB,GAAOo09B,EAAa,IAG5D3n5B,EAAM1rE,QAAKnB,EAEJolB,CACT,CACF,CAEA,OAAO4X,CAAM,EAGf,OAAO2uC,EAAM76D,EAAK,EAAE,EA4FpB8h9B,UAAS,GACT9j7B,WAxFkB+mW,GAClBA,IAAUvG,GAASuG,IAAUtF,GAAWsF,KAAWtF,GAAWsF,EAAM5mW,OAASshW,GAAWsF,EAAM10P,OAwF9F1yG,aAAcok7B,GACdG,KAAIA,ICvuBN,SAASyB,GAAWnj1B,EAASp0G,EAAMppB,EAAQigD,EAASL,GAClDxiD,MAAMlI,KAAK9J,MAEPgS,MAAM24Y,kBACR34Y,MAAM24Y,kBAAkB3qZ,KAAMA,KAAKuM,aAEnCvM,KAAK2tE,OAAS,IAAI37D,OAAS27D,MAG7B3tE,KAAKoyI,QAAUA,EACfpyI,KAAKkL,KAAO,aACZ8yB,IAASh+B,KAAKg+B,KAAOA,GACrBppB,IAAW5U,KAAK4U,OAASA,GACzBigD,IAAY70D,KAAK60D,QAAUA,GACvBL,IACFx0D,KAAKw0D,SAAWA,EAChBx0D,KAAKi1D,OAAST,EAASS,OAAST,EAASS,OAAS,KAEtD,CAEAug6B,GAAM3ilB,SAAS0ilB,GAAYvj9B,MAAO,CAChCu0B,OAAQ,WACN,MAAO,CAEL6rG,QAASpyI,KAAKoyI,QACdlnI,KAAMlL,KAAKkL,KAEX++G,YAAajqH,KAAKiqH,YAClB9kG,OAAQnlB,KAAKmlB,OAEbsw8B,SAAUz19B,KAAKy19B,SACfC,WAAY119B,KAAK019B,WACjBC,aAAc319B,KAAK219B,aACnBho5B,MAAO3tE,KAAK2tE,MAEZ/4D,OAAQ4g9B,GAAMH,aAAar19B,KAAK4U,QAChCopB,KAAMh+B,KAAKg+B,KACXi3B,OAAQj1D,KAAKi1D,OAEjB,IAGF,MAAM7zD,GAAYm09B,GAAWn09B,UACvB4uY,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAzuY,SAAQy8B,IACRgyW,GAAYhyW,GAAQ,CAAC56B,MAAO46B,EAAK,IAGnC96B,OAAOiqC,iBAAiBoo7B,GAAYvllB,IACpC9sY,OAAOgR,eAAe9S,GAAW,eAAgB,CAACgC,OAAO,IAGzDmy9B,GAAWzy9B,KAAO,CAACsZ,EAAO4hB,EAAMppB,EAAQigD,EAASL,EAAUoh6B,KACzD,MAAMC,EAAa3y9B,OAAOoI,OAAOlK,IAgBjC,OAdAo09B,GAAMlB,aAAal48B,EAAOy58B,GAAY,SAAgBjk9B,GACpD,OAAOA,IAAQI,MAAM5Q,SACvB,IAAG6hB,GACe,iBAATA,IAGTsy8B,GAAWzr9B,KAAK+r9B,EAAYz58B,EAAMg2H,QAASp0G,EAAMppB,EAAQigD,EAASL,GAElEqh6B,EAAWC,MAAQ158B,EAEnBy58B,EAAW3q9B,KAAOkR,EAAMlR,KAExB0q9B,GAAe1y9B,OAAOD,OAAO4y9B,EAAYD,GAElCC,CAAU,EAGnB,YCxFA,SAASE,GAAYp/kB,GACnB,OAAO6+kB,GAAMno8B,cAAcspX,IAAU6+kB,GAAM1j9B,QAAQ6kY,EACrD,CASA,SAASq/kB,GAAe909B,GACtB,OAAOs09B,GAAM1+kB,SAAS51Y,EAAK,MAAQA,EAAI+C,MAAM,GAAI,GAAK/C,CACxD,CAWA,SAAS+09B,GAAUzy8B,EAAMtiB,EAAKg19B,GAC5B,OAAK1y8B,EACEA,EAAK5Y,OAAO1J,GAAKoI,KAAI,SAAc/D,EAAOtD,GAG/C,OADAsD,EAAQyw9B,GAAezw9B,IACf2w9B,GAAQj09B,EAAI,IAAMsD,EAAQ,IAAMA,CAC1C,IAAGsB,KAAKqv9B,EAAO,IAAM,IALHh19B,CAMpB,CAaA,MAAMytZ,GAAa6mkB,GAAMlB,aAAakB,GAAO,CAAC,EAAG,MAAM,SAAgBvy8B,GACrE,MAAO,WAAWoE,KAAKpE,EACzB,IA8JA,SArIA,SAAoBrR,EAAKuk9B,EAAUr29B,GACjC,IAAK019B,GAAMpllB,SAASx+X,GAClB,MAAM,IAAI4+B,UAAU,4BAItB2l7B,EAAWA,GAAY,IAAyBnC,SAYhD,MAAMoC,GATNt29B,EAAU019B,GAAMlB,aAAax09B,EAAS,CACpCs29B,YAAY,EACZF,MAAM,EACN9g7B,SAAS,IACR,GAAO,SAAiBi9lB,EAAQv0mB,GAEjC,OAAQ037B,GAAMxklB,YAAYlzW,EAAOu0mB,GACnC,KAE2B+jV,WAErBC,EAAUv29B,EAAQu29B,SAAWC,EAC7BJ,EAAOp29B,EAAQo29B,KACf9g7B,EAAUt1C,EAAQs1C,QAElBmh7B,GADQz29B,EAAQi4R,MAAwB,qBAATA,MAAwBA,OACpCy9rB,GAAMJ,oBAAoBe,GAEnD,IAAKX,GAAMnklB,WAAWgllB,GACpB,MAAM,IAAI7l7B,UAAU,8BAGtB,SAASgm7B,EAAapz9B,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAIoy9B,GAAM9gzB,OAAOtxK,GACf,OAAOA,EAAMojC,cAGf,IAAK+v7B,GAAWf,GAAM9C,OAAOtv9B,GAC3B,MAAM,IAAImy9B,GAAW,gDAGvB,OAAIC,GAAMj63B,cAAcn4F,IAAUoy9B,GAAMt73B,aAAa92F,GAC5Cmz9B,GAA2B,oBAATx+rB,KAAsB,IAAIA,KAAK,CAAC30R,IAAUyzX,OAAO/zX,KAAKM,GAG1EA,CACT,CAYA,SAASkz9B,EAAelz9B,EAAOlC,EAAKsiB,GAClC,IAAIwtB,EAAM5tC,EAEV,GAAIA,IAAUogB,GAAyB,kBAAVpgB,EAC3B,GAAIoy9B,GAAM1+kB,SAAS51Y,EAAK,MAEtBA,EAAMk19B,EAAal19B,EAAMA,EAAI+C,MAAM,GAAI,GAEvCb,EAAQma,KAAK5W,UAAUvD,QAClB,GACJoy9B,GAAM1j9B,QAAQ1O,IAnGvB,SAAqB4tC,GACnB,OAAOwk7B,GAAM1j9B,QAAQk/B,KAASA,EAAIo6P,KAAK2qrB,GACzC,CAiGiCU,CAAYrz9B,KACnCoy9B,GAAM7C,WAAWvv9B,IAAUoy9B,GAAM1+kB,SAAS51Y,EAAK,SAAW8vC,EAAMwk7B,GAAMh8hB,QAAQp2b,IAYhF,OATAlC,EAAM809B,GAAe909B,GAErB8vC,EAAIzvC,SAAQ,SAAc2kH,EAAItiH,IAC1B4x9B,GAAMxklB,YAAY9qR,IAAc,OAAPA,GAAgBiw2B,EAAS/x9B,QAEtC,IAAZgxC,EAAmB6g7B,GAAU,CAAC/09B,GAAM0C,EAAOsy9B,GAAqB,OAAZ9g7B,EAAmBl0C,EAAMA,EAAM,KACnFs19B,EAAatw2B,GAEjB,KACO,EAIX,QAAI6v2B,GAAY3y9B,KAIhB+y9B,EAAS/x9B,OAAO6x9B,GAAUzy8B,EAAMtiB,EAAKg19B,GAAOM,EAAapz9B,KAElD,EACT,CAEA,MAAMuqE,EAAQ,GAER+o5B,EAAiBxz9B,OAAOD,OAAO0rZ,GAAY,CAC/C2nkB,iBACAE,eACAT,YAAWA,KAyBb,IAAKP,GAAMpllB,SAASx+X,GAClB,MAAM,IAAI4+B,UAAU,0BAKtB,OA5BA,SAASmm7B,EAAMvz9B,EAAOogB,GACpB,IAAIgy8B,GAAMxklB,YAAY5tY,GAAtB,CAEA,IAA8B,IAA1BuqE,EAAMjqE,QAAQN,GAChB,MAAM4O,MAAM,kCAAoCwR,EAAK3c,KAAK,MAG5D8mE,EAAM/sE,KAAKwC,GAEXoy9B,GAAMj09B,QAAQ6B,GAAO,SAAc8iH,EAAIhlH,IAKtB,OAJEs09B,GAAMxklB,YAAY9qR,IAAc,OAAPA,IAAgBmw2B,EAAQvs9B,KAChEqs9B,EAAUjw2B,EAAIsv2B,GAAMtllB,SAAShvY,GAAOA,EAAIiC,OAASjC,EAAKsiB,EAAMkz8B,KAI5DC,EAAMzw2B,EAAI1iG,EAAOA,EAAK5Y,OAAO1J,GAAO,CAACA,GAEzC,IAEAysE,EAAMvS,KAlB8B,CAmBtC,CAMAu75B,CAAM/k9B,GAECuk9B,CACT,EC5MA,SAASz83B,GAAO7mF,GACd,MAAM+j9B,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAO347B,mBAAmBprB,GAAKxP,QAAQ,oBAAoB,SAAkBoG,GAC3E,OAAOmt9B,EAAQnt9B,EACjB,GACF,CAUA,SAASot9B,GAAqBpi9B,EAAQ3U,GACpCE,KAAK829B,OAAS,GAEdri9B,GAAUsi9B,GAAWti9B,EAAQzU,KAAMF,EACrC,CAEA,MAAMsB,GAAYy19B,GAAqBz19B,UAEvCA,GAAUgD,OAAS,SAAgB8G,EAAM9H,GACvCpD,KAAK829B,OAAOl29B,KAAK,CAACsK,EAAM9H,GAC1B,EAEAhC,GAAUmM,SAAW,SAAkByp9B,GACrC,MAAMC,EAAUD,EAAU,SAAS5z9B,GACjC,OAAO4z9B,EAAQlt9B,KAAK9J,KAAMoD,EAAOs2F,GACnC,EAAIA,GAEJ,OAAO15F,KAAK829B,OAAOxt9B,KAAI,SAAc87iB,GACnC,OAAO6xa,EAAQ7xa,EAAK,IAAM,IAAM6xa,EAAQ7xa,EAAK,GAC/C,GAAG,IAAIv+iB,KAAK,IACd,EAEA,YC5CA,SAAS6yF,GAAO3uE,GACd,OAAOkT,mBAAmBlT,GACxB1nB,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAAS6z9B,GAASny8B,EAAKtQ,EAAQ3U,GAE5C,IAAK2U,EACH,OAAOsQ,EAGT,MAAMky8B,EAAUn39B,GAAWA,EAAQ45F,QAAUA,GAEzC873B,GAAMnklB,WAAWvxY,KACnBA,EAAU,CACR0G,UAAW1G,IAIf,MAAMq39B,EAAcr39B,GAAWA,EAAQ0G,UAEvC,IAAI4w9B,EAUJ,GAPEA,EADED,EACiBA,EAAY1i9B,EAAQ3U,GAEpB019B,GAAM5C,kBAAkBn+8B,GACzCA,EAAOlH,WACP,IAAIsp9B,GAAqBpi9B,EAAQ3U,GAASyN,SAAS0p9B,GAGnDG,EAAkB,CACpB,MAAMC,EAAgBty8B,EAAIrhB,QAAQ,MAEX,IAAnB2z9B,IACFty8B,EAAMA,EAAI9gB,MAAM,EAAGoz9B,IAErBty8B,KAA8B,IAAtBA,EAAIrhB,QAAQ,KAAc,IAAM,KAAO0z9B,CACjD,CAEA,OAAOry8B,CACT,CCEA,SAlEA,MACExY,WAAAA,GACEvM,KAAKm1B,SAAW,EAClB,CAUA67mB,GAAAA,CAAIsmV,EAAWC,EAAUz39B,GAOvB,OANAE,KAAKm1B,SAASv0B,KAAK,CACjB029B,YACAC,WACAC,cAAa139B,GAAUA,EAAQ039B,YAC/BC,QAAS339B,EAAUA,EAAQ239B,QAAU,OAEhCz39B,KAAKm1B,SAAS90B,OAAS,CAChC,CASAq39B,KAAAA,CAAMt27B,GACAphC,KAAKm1B,SAASiM,KAChBphC,KAAKm1B,SAASiM,GAAM,KAExB,CAOA5D,KAAAA,GACMx9B,KAAKm1B,WACPn1B,KAAKm1B,SAAW,GAEpB,CAYA5zB,OAAAA,CAAQ8J,GACNmq9B,GAAMj09B,QAAQvB,KAAKm1B,UAAU,SAAwBriB,GACzC,OAANA,GACFzH,EAAGyH,EAEP,GACF,GCjEF,IACE6k9B,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDvB,IACEvo1B,WAAW,EACXv2H,QAAS,CACP++8B,gBCJsC,qBAApBA,gBAAkCA,gBAAkBjB,GDKtE7C,SEN+B,qBAAbA,SAA2BA,SAAW,KFOxDj8rB,KGP2B,qBAATA,KAAuBA,KAAO,MHSlDggsB,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXhDC,GAAkC,qBAAXp47B,QAA8C,qBAAbl+B,SAExDu29B,GAAkC,kBAAd536B,WAA0BA,gBAAav/C,EAmB3Do39B,GAAwBF,MAC1BC,IAAc,CAAC,cAAe,eAAgB,MAAMv09B,QAAQu09B,GAAWE,SAAW,GAWhFC,GAE2B,qBAAtBrnT,mBAEPjkoB,gBAAgBikoB,mBACc,oBAAvBjkoB,KAAKwgtB,cAIVxrsB,GAASk26B,IAAiBp47B,OAAO5b,SAASugJ,MAAQ,mBCvCxD,GAAAgwO,GAAAA,GAAA,GACKihlB,GACAhmO,ICyFL,SA9CA,SAAwB2mO,GACtB,SAASkC,EAAU708B,EAAMpgB,EAAO8iB,EAAQtiB,GACtC,IAAIsH,EAAOsY,EAAK5f,KAEhB,GAAa,cAATsH,EAAsB,OAAO,EAEjC,MAAMot9B,EAAe9s8B,OAAO2sC,UAAUjtD,GAChCk63B,EAASxh4B,GAAS4f,EAAKnjB,OAG7B,GAFA6K,GAAQA,GAAQsq9B,GAAM1j9B,QAAQoU,GAAUA,EAAO7lB,OAAS6K,EAEpDk63B,EAOF,OANIowF,GAAMX,WAAW3u8B,EAAQhb,GAC3Bgb,EAAOhb,GAAQ,CAACgb,EAAOhb,GAAO9H,GAE9B8iB,EAAOhb,GAAQ9H,GAGTk19B,EAGLpy8B,EAAOhb,IAAUsq9B,GAAMpllB,SAASlqX,EAAOhb,MAC1Cgb,EAAOhb,GAAQ,IASjB,OANemt9B,EAAU708B,EAAMpgB,EAAO8iB,EAAOhb,GAAOtH,IAEtC4x9B,GAAM1j9B,QAAQoU,EAAOhb,MACjCgb,EAAOhb,GA/Cb,SAAuB8lC,GACrB,MAAMp/B,EAAM,CAAC,EACPsV,EAAOhkB,OAAOgkB,KAAK8pB,GACzB,IAAI/uC,EACJ,MAAM8Q,EAAMmU,EAAK7mB,OACjB,IAAIa,EACJ,IAAKe,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBf,EAAMgmB,EAAKjlB,GACX2P,EAAI1Q,GAAO8vC,EAAI9vC,GAEjB,OAAO0Q,CACT,CAoCqB2m9B,CAAcry8B,EAAOhb,MAG9Bot9B,CACV,CAEA,GAAI9C,GAAMzB,WAAWoC,IAAaX,GAAMnklB,WAAW8klB,EAASto8B,SAAU,CACpE,MAAMjc,EAAM,CAAC,EAMb,OAJA4j9B,GAAMd,aAAayB,GAAU,CAACjr9B,EAAM9H,KAClCi19B,EA1EN,SAAuBnt9B,GAKrB,OAAOsq9B,GAAMb,SAAS,gBAAiBzp9B,GAAM5B,KAAIG,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CAkEgB+u9B,CAActt9B,GAAO9H,EAAOwO,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECzDA,MAAMs/F,GAAW,CAEfun3B,aAAcC,GAEdC,QAAS,CAAC,MAAO,OAAQ,SAEzBzkT,iBAAkB,CAAC,SAA0Bv3nB,EAAMiY,GACjD,MAAMgk6B,EAAchk6B,EAAQik6B,kBAAoB,GAC1CC,EAAqBF,EAAYl19B,QAAQ,qBAAuB,EAChEq19B,EAAkBvD,GAAMpllB,SAASzzV,GAEnCo86B,GAAmBvD,GAAMpC,WAAWz26B,KACtCA,EAAO,IAAIq36B,SAASr36B,IAKtB,GAFmB646B,GAAMzB,WAAWp36B,GAGlC,OAAOm86B,EAAqBv78B,KAAK5W,UAAUqy9B,GAAer86B,IAASA,EAGrE,GAAI646B,GAAMj63B,cAAc5+C,IACtB646B,GAAMv9lB,SAASt7U,IACf646B,GAAM13V,SAASnhlB,IACf646B,GAAM/C,OAAO916B,IACb646B,GAAM9C,OAAO/16B,IACb646B,GAAM3C,iBAAiBl26B,GAEvB,OAAOA,EAET,GAAI646B,GAAMznlB,kBAAkBpxV,GAC1B,OAAOA,EAAK+/C,OAEd,GAAI843B,GAAM5C,kBAAkBj26B,GAE1B,OADAiY,EAAQqk6B,eAAe,mDAAmD,GACnEt86B,EAAKpvC,WAGd,IAAIol9B,EAEJ,GAAIoG,EAAiB,CACnB,GAAIH,EAAYl19B,QAAQ,sCAAwC,EAC9D,OCvEO,SAA0Bi5C,EAAM78C,GAC7C,OAAOi39B,GAAWp66B,EAAM,IAAI6ysB,GAASz2uB,QAAQ++8B,gBAAmB509B,OAAOD,OAAO,CAC5Eoz9B,QAAS,SAASjz9B,EAAOlC,EAAKsiB,EAAMi3J,GAClC,OAAI+0kB,GAAS0pO,QAAU1D,GAAMv9lB,SAAS70X,IACpCpD,KAAKoE,OAAOlD,EAAKkC,EAAMmK,SAAS,YACzB,GAGFktK,EAAQ67yB,eAAejp9B,MAAMrN,KAAMgN,UAC5C,GACClN,GACL,CD4Deq59B,CAAiBx86B,EAAM38C,KAAKo59B,gBAAgB7r9B,WAGrD,IAAKol9B,EAAa6C,GAAM7C,WAAWh26B,KAAUi86B,EAAYl19B,QAAQ,wBAA0B,EAAG,CAC5F,MAAM219B,EAAYr59B,KAAKw2nB,KAAOx2nB,KAAKw2nB,IAAIw9V,SAEvC,OAAO+C,GACLpE,EAAa,CAAC,UAAWh26B,GAAQA,EACjC086B,GAAa,IAAIA,EACjBr59B,KAAKo59B,eAET,CACF,CAEA,OAAIL,GAAmBD,GACrBlk6B,EAAQqk6B,eAAe,oBAAoB,GAxEjD,SAAyBK,EAAUzw7B,EAAQmu7B,GACzC,GAAIxB,GAAMtllB,SAASoplB,GACjB,IAEE,OADCzw7B,GAAUtrB,KAAKxW,OAAOuy9B,GAChB9D,GAAMry9B,KAAKm29B,EACpB,CAAE,MAAO/29B,IACP,GAAe,gBAAXA,GAAE2I,KACJ,MAAM3I,EAEV,CAGF,OAAQy09B,GAAWz58B,KAAK5W,WAAW2y9B,EACrC,CA4DaC,CAAgB586B,IAGlBA,CACT,GAEA686B,kBAAmB,CAAC,SAA2B786B,GAC7C,MAAM876B,EAAez49B,KAAKy49B,cAAgBvn3B,GAASun3B,aAC7Cb,EAAoBa,GAAgBA,EAAab,kBACjD6B,EAAsC,SAAtBz59B,KAAK+0D,aAE3B,GAAIyg6B,GAAM1C,WAAWn26B,IAAS646B,GAAM3C,iBAAiBl26B,GACnD,OAAOA,EAGT,GAAIA,GAAQ646B,GAAMtllB,SAASvzV,KAAWi76B,IAAsB539B,KAAK+0D,cAAiB0k6B,GAAgB,CAChG,MACMC,IADoBjB,GAAgBA,EAAad,oBACP8B,EAEhD,IACE,OAAOl88B,KAAKxW,MAAM41C,EACpB,CAAE,MAAOp6C,IACP,GAAIm39B,EAAmB,CACrB,GAAe,gBAAXn39B,GAAE2I,KACJ,MAAMqq9B,GAAWzy9B,KAAKP,GAAGgz9B,GAAWoE,iBAAkB359B,KAAM,KAAMA,KAAKw0D,UAEzE,MAAMjyD,EACR,CACF,CACF,CAEA,OAAOo6C,CACT,GAMAzf,QAAS,EAET087B,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBvjW,IAAK,CACHw9V,SAAUxkO,GAASz2uB,QAAQi78B,SAC3Bj8rB,KAAMy3d,GAASz2uB,QAAQg/Q,MAGzBiisB,eAAgB,SAAwB/k6B,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAL,QAAS,CACPr6C,OAAQ,CACN,OAAU,oCACV,oBAAgBzZ,KAKtB009B,GAAMj09B,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAWm1C,IAChEw6D,GAASt8C,QAAQle,GAAU,CAAC,CAAC,IAG/B,YE1JMuj7B,GAAoBzE,GAAMT,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtBmF,GAAax87B,OAAO,aAE1B,SAASy87B,GAAgBvk6B,GACvB,OAAOA,GAAU7yD,OAAO6yD,GAAQzyD,OAAO4N,aACzC,CAEA,SAASqp9B,GAAeh39B,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGFoy9B,GAAM1j9B,QAAQ1O,GAASA,EAAMkG,IAAI8w9B,IAAkBr39B,OAAOK,EACnE,CAgBA,SAASi39B,GAAiBrr7B,EAAS5rC,EAAOwyD,EAAQvpC,EAAQiu8B,GACxD,OAAI9E,GAAMnklB,WAAWhlX,GACZA,EAAOviB,KAAK9J,KAAMoD,EAAOwyD,IAG9B0k6B,IACFl39B,EAAQwyD,GAGL4/5B,GAAMtllB,SAAS9sY,GAEhBoy9B,GAAMtllB,SAAS7jX,IACiB,IAA3BjpB,EAAMM,QAAQ2oB,GAGnBmp8B,GAAM1jlB,SAASzlX,GACVA,EAAOhF,KAAKjkB,QADrB,OANA,EASF,CAsBA,MAAMm39B,GACJhu9B,WAAAA,CAAYqoD,GACVA,GAAW50D,KAAKgJ,IAAI4rD,EACtB,CAEA5rD,GAAAA,CAAI4sD,EAAQ4k6B,EAAgBC,GAC1B,MAAM3t7B,EAAO9sC,KAEb,SAAS8+Y,EAAU7xM,EAAQytxB,EAASC,GAClC,MAAMC,EAAUT,GAAgBO,GAEhC,IAAKE,EACH,MAAM,IAAI5o9B,MAAM,0CAGlB,MAAM9Q,EAAMs09B,GAAMvC,QAAQnm7B,EAAM8t7B,KAE5B159B,QAAqBJ,IAAdgsC,EAAK5rC,KAAmC,IAAby59B,QAAmC759B,IAAb659B,IAAwC,IAAd7t7B,EAAK5rC,MACzF4rC,EAAK5rC,GAAOw59B,GAAWN,GAAentxB,GAE1C,CAEA,MAAM4txB,EAAaA,CAACjm6B,EAAS+l6B,IAC3BnF,GAAMj09B,QAAQqzD,GAAS,CAACq4I,EAAQytxB,IAAY57kB,EAAU7xM,EAAQytxB,EAASC,KAEzE,GAAInF,GAAMno8B,cAAcuoC,IAAWA,aAAkB51D,KAAKuM,YACxDsu9B,EAAWjl6B,EAAQ4k6B,QACd,GAAGhF,GAAMtllB,SAASt6U,KAAYA,EAASA,EAAOzyD,UArEtB,iCAAiCkkB,KAqEmBuuC,EArEVzyD,QAsEvE039B,ED1EN,CAAeC,IACb,MAAMry9B,EAAS,CAAC,EAChB,IAAIvH,EACA6pB,EACA9oB,EAsBJ,OApBA649B,GAAcA,EAAWxw9B,MAAM,MAAM/I,SAAQ,SAAgB+C,GAC3DrC,EAAIqC,EAAKZ,QAAQ,KACjBxC,EAAMoD,EAAKkmB,UAAU,EAAGvoB,GAAGkB,OAAO4N,cAClCga,EAAMzmB,EAAKkmB,UAAUvoB,EAAI,GAAGkB,QAEvBjC,GAAQuH,EAAOvH,IAAQ+49B,GAAkB/49B,KAIlC,eAARA,EACEuH,EAAOvH,GACTuH,EAAOvH,GAAKN,KAAKmqB,GAEjBtiB,EAAOvH,GAAO,CAAC6pB,GAGjBtiB,EAAOvH,GAAOuH,EAAOvH,GAAOuH,EAAOvH,GAAO,KAAO6pB,EAAMA,EAE3D,IAEOtiB,CACR,EC+CgBsy9B,CAAanl6B,GAAS4k6B,QAC5B,GAAIhF,GAAMzC,UAAUn95B,GACzB,IAAK,MAAO10D,EAAKkC,KAAUwyD,EAAO/nC,UAChCixX,EAAU17Y,EAAOlC,EAAKu59B,QAGd,MAAV7k6B,GAAkBkpV,EAAU07kB,EAAgB5k6B,EAAQ6k6B,GAGtD,OAAOz69B,IACT,CAEA+I,GAAAA,CAAI6sD,EAAQ/sB,GAGV,GAFA+sB,EAASuk6B,GAAgBvk6B,GAEb,CACV,MAAM10D,EAAMs09B,GAAMvC,QAAQjz9B,KAAM41D,GAEhC,GAAI10D,EAAK,CACP,MAAMkC,EAAQpD,KAAKkB,GAEnB,IAAK2nC,EACH,OAAOzlC,EAGT,IAAe,IAAXylC,EACF,OA5GV,SAAqBh2B,GACnB,MAAMk4e,EAAS7nf,OAAOoI,OAAO,MACvB0v9B,EAAW,mCACjB,IAAIvx9B,EAEJ,KAAQA,EAAQux9B,EAASxx9B,KAAKqJ,IAC5Bk4e,EAAOthf,EAAM,IAAMA,EAAM,GAG3B,OAAOshf,CACT,CAkGiBkwe,CAAY739B,GAGrB,GAAIoy9B,GAAMnklB,WAAWxoW,GACnB,OAAOA,EAAO/+B,KAAK9J,KAAMoD,EAAOlC,GAGlC,GAAIs09B,GAAM1jlB,SAASjpW,GACjB,OAAOA,EAAOr/B,KAAKpG,GAGrB,MAAM,IAAIotC,UAAU,yCACtB,CACF,CACF,CAEA/hB,GAAAA,CAAImnC,EAAQwo4B,GAGV,GAFAxo4B,EAASuk6B,GAAgBvk6B,GAEb,CACV,MAAM10D,EAAMs09B,GAAMvC,QAAQjz9B,KAAM41D,GAEhC,SAAU10D,QAAqBJ,IAAdd,KAAKkB,IAAwBk97B,IAAWi8B,GAAiBr69B,EAAMA,KAAKkB,GAAMA,EAAKk97B,GAClG,CAEA,OAAO,CACT,CAEAvriB,OAAOj9V,EAAQwo4B,GACb,MAAMtx5B,EAAO9sC,KACb,IAAIk79B,GAAU,EAEd,SAASC,EAAaT,GAGpB,GAFAA,EAAUP,GAAgBO,GAEb,CACX,MAAMx59B,EAAMs09B,GAAMvC,QAAQnm7B,EAAM4t7B,IAE5Bx59B,GAASk97B,IAAWi8B,GAAiBvt7B,EAAMA,EAAK5rC,GAAMA,EAAKk97B,YACtDtx5B,EAAK5rC,GAEZg69B,GAAU,EAEd,CACF,CAQA,OANI1F,GAAM1j9B,QAAQ8jD,GAChBA,EAAOr0D,QAAQ459B,GAEfA,EAAavl6B,GAGRsl6B,CACT,CAEA197B,KAAAA,CAAM4g6B,GACJ,MAAMl36B,EAAOhkB,OAAOgkB,KAAKlnB,MACzB,IAAIiC,EAAIilB,EAAK7mB,OACT669B,GAAU,EAEd,KAAOj59B,KAAK,CACV,MAAMf,EAAMgmB,EAAKjlB,GACbm87B,IAAWi8B,GAAiBr69B,EAAMA,KAAKkB,GAAMA,EAAKk97B,GAAS,YACtDp+7B,KAAKkB,GACZg69B,GAAU,EAEd,CAEA,OAAOA,CACT,CAEA5mxB,SAAAA,CAAUvuK,GACR,MAAM+G,EAAO9sC,KACP40D,EAAU,CAAC,EAsBjB,OApBA4g6B,GAAMj09B,QAAQvB,MAAM,CAACoD,EAAOwyD,KAC1B,MAAM10D,EAAMs09B,GAAMvC,QAAQr+5B,EAASgB,GAEnC,GAAI10D,EAGF,OAFA4rC,EAAK5rC,GAAOk59B,GAAeh39B,eACpB0pC,EAAK8oB,GAId,MAAMq9Z,EAAaltb,EA9JzB,SAAsB6vB,GACpB,OAAOA,EAAOzyD,OACX4N,cAAc1N,QAAQ,mBAAmB,CAACu/B,EAAG00f,EAAMzkhB,IAC3CykhB,EAAK96f,cAAgB3pB,GAElC,CAyJkCuo9B,CAAaxl6B,GAAU7yD,OAAO6yD,GAAQzyD,OAE9D8vd,IAAer9Z,UACV9oB,EAAK8oB,GAGd9oB,EAAKmmb,GAAcmngB,GAAeh39B,GAElCwxD,EAAQq+Z,IAAc,CAAI,IAGrBjzd,IACT,CAEA4K,MAAAA,GAAmB,QAAAmC,EAAAC,UAAA3M,OAATonD,EAAO,IAAA59C,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAPu6C,EAAOv6C,GAAAF,UAAAE,GACf,OAAOlN,KAAKuM,YAAY3B,OAAO5K,QAASynD,EAC1C,CAEAlhB,MAAAA,CAAO807B,GACL,MAAMzp9B,EAAM1O,OAAOoI,OAAO,MAM1B,OAJAkq9B,GAAMj09B,QAAQvB,MAAM,CAACoD,EAAOwyD,KACjB,MAATxyD,IAA2B,IAAVA,IAAoBwO,EAAIgkD,GAAUyl6B,GAAa7F,GAAM1j9B,QAAQ1O,GAASA,EAAMyD,KAAK,MAAQzD,EAAM,IAG3GwO,CACT,CAEA,CAAC8rB,OAAOE,YACN,OAAO16B,OAAO2qB,QAAQ7tB,KAAKumC,UAAU7I,OAAOE,WAC9C,CAEArwB,QAAAA,GACE,OAAOrK,OAAO2qB,QAAQ7tB,KAAKumC,UAAUj9B,KAAIyM,IAAA,IAAE6/C,EAAQxyD,GAAM2S,EAAA,OAAK6/C,EAAS,KAAOxyD,CAAK,IAAEyD,KAAK,KAC5F,CAEA,IAAK62B,OAAOC,eACV,MAAO,cACT,CAEA,WAAO76B,CAAK6zY,GACV,OAAOA,aAAiB32Y,KAAO22Y,EAAQ,IAAI32Y,KAAK22Y,EAClD,CAEA,aAAO/rY,CAAO8mC,GACZ,MAAMk8E,EAAW,IAAI5tH,KAAK0xC,GAAO,QAAA3U,EAAA/vB,UAAA3M,OADXonD,EAAO,IAAA59C,MAAAkzB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPyqB,EAAOzqB,EAAA,GAAAhwB,UAAAgwB,GAK7B,OAFAyqB,EAAQlmD,SAAS2kB,GAAW0nG,EAAS5kH,IAAIkd,KAElC0nG,CACT,CAEA,eAAO+vf,CAAS/njB,GACd,MAIM0l6B,GAJYt79B,KAAKk69B,IAAel69B,KAAKk69B,IAAc,CACvDoB,UAAW,CAAC,IAGcA,UACtBl69B,EAAYpB,KAAKoB,UAEvB,SAASm69B,EAAeb,GACtB,MAAME,EAAUT,GAAgBO,GAE3BY,EAAUV,MAtNrB,SAAwBhp9B,EAAKgkD,GAC3B,MAAM4l6B,EAAehG,GAAMP,YAAY,IAAMr/5B,GAE7C,CAAC,MAAO,MAAO,OAAOr0D,SAAQ0iM,IAC5B/gM,OAAOgR,eAAetC,EAAKqyL,EAAau3xB,EAAc,CACpDp49B,MAAO,SAASq8I,EAAMC,EAAM82P,GAC1B,OAAOx2Y,KAAKikM,GAAYn6L,KAAK9J,KAAM41D,EAAQ6pF,EAAMC,EAAM82P,EACzD,EACA1oW,cAAc,GACd,GAEN,CA4MQ2t7B,CAAer69B,EAAWs59B,GAC1BY,EAAUV,IAAW,EAEzB,CAIA,OAFApF,GAAM1j9B,QAAQ8jD,GAAUA,EAAOr0D,QAAQg69B,GAAkBA,EAAe3l6B,GAEjE51D,IACT,EAGFu69B,GAAa58W,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpG63W,GAAMnC,kBAAkBkH,GAAan59B,WAAW,CAAAoT,EAAUtT,KAAQ,IAAjB,MAACkC,GAAMoR,EAClDkn9B,EAASx69B,EAAI,GAAGs7B,cAAgBt7B,EAAI+C,MAAM,GAC9C,MAAO,CACL8E,IAAKA,IAAM3F,EACX4F,GAAAA,CAAI2y9B,GACF379B,KAAK079B,GAAUC,CACjB,EACD,IAGHnG,GAAMV,cAAcyF,IAEpB,YC/Re,SAASqB,GAAcj1yB,EAAKnyH,GACzC,MAAM5/C,EAAS5U,MAAQkxG,GACjBliE,EAAUwlB,GAAY5/C,EACtBggD,EAAU2l6B,GAAaz39B,KAAKksC,EAAQ4lB,SAC1C,IAAIjY,EAAO3N,EAAQ2N,KAQnB,OANA646B,GAAMj09B,QAAQolL,GAAK,SAAmBt7K,GACpCsxC,EAAOtxC,EAAGvB,KAAK8K,EAAQ+nC,EAAMiY,EAAQ0/I,YAAa9/I,EAAWA,EAASS,YAASn0D,EACjF,IAEA8zD,EAAQ0/I,YAED33J,CACT,CCzBe,SAASk/6B,GAASz49B,GAC/B,SAAUA,IAASA,EAAM049B,WAC3B,CCUA,SAASC,GAAc3p1B,EAASx9H,EAAQigD,GAEtC0g6B,GAAWzr9B,KAAK9J,KAAiB,MAAXoyI,EAAkB,WAAaA,EAASmj1B,GAAWyG,aAAcpn9B,EAAQigD,GAC/F70D,KAAKkL,KAAO,eACd,CAEAsq9B,GAAM3ilB,SAASkplB,GAAexG,GAAY,CACxCuG,YAAY,IAGd,YCXe,SAASG,GAAOxr7B,EAASJ,EAAQmkB,GAC9C,MAAMwl6B,EAAiBxl6B,EAAS5/C,OAAOol9B,eAClCxl6B,EAASS,QAAW+k6B,IAAkBA,EAAexl6B,EAASS,QAGjE5kB,EAAO,IAAIkl7B,GACT,mCAAqC/g6B,EAASS,OAC9C,CAACsg6B,GAAW2G,gBAAiB3G,GAAWoE,kBAAkB929B,KAAK2/B,MAAMgyB,EAASS,OAAS,KAAO,GAC9FT,EAAS5/C,OACT4/C,EAASK,QACTL,IAPF/jB,EAAQ+jB,EAUZ,CC4BA,SA9CA,SAAqB2n6B,EAAcxy8B,GACjCwy8B,EAAeA,GAAgB,GAC/B,MAAM1i4B,EAAQ,IAAI5vF,MAAMsy9B,GAClBC,EAAa,IAAIvy9B,MAAMsy9B,GAC7B,IAEIE,EAFAry9B,EAAO,EACPqpG,EAAO,EAKX,OAFA1pF,OAAc7oB,IAAR6oB,EAAoBA,EAAM,IAEzB,SAAc2y8B,GACnB,MAAM5p7B,EAAM/O,KAAK+O,MAEX6p7B,EAAYH,EAAW/o3B,GAExBgp3B,IACHA,EAAgB3p7B,GAGlB+mD,EAAMzvF,GAAQsy9B,EACdF,EAAWpy9B,GAAQ0oC,EAEnB,IAAIzwC,EAAIoxG,EACJmp3B,EAAa,EAEjB,KAAOv69B,IAAM+H,GACXwy9B,GAAc/i4B,EAAMx3F,KACpBA,GAAQk69B,EASV,GANAny9B,GAAQA,EAAO,GAAKmy9B,EAEhBny9B,IAASqpG,IACXA,GAAQA,EAAO,GAAK8o3B,GAGlBzp7B,EAAM2p7B,EAAgB1y8B,EACxB,OAGF,MAAM8y8B,EAASF,GAAa7p7B,EAAM6p7B,EAElC,OAAOE,EAAS559B,KAAK+b,MAAmB,IAAb498B,EAAoBC,QAAU379B,CAC3D,CACF,ECTA,SArCA,SAAkBuK,EAAIqx9B,GACpB,IAEIC,EACArt7B,EAHAsjW,EAAY,EACZt5T,EAAY,IAAOoj5B,EAIvB,MAAM1kW,EAAS,SAAC/qnB,GAA2B,IAArBylC,EAAG1lC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG22B,KAAK+O,MAC/BkgW,EAAYlgW,EACZiq7B,EAAW,KACPrt7B,IACFjS,aAAaiS,GACbA,EAAQ,MAEVjkC,EAAGgC,MAAM,KAAMJ,EACjB,EAoBA,MAAO,CAlBW,WAChB,MAAMylC,EAAM/O,KAAK+O,MACX+p7B,EAAS/p7B,EAAMkgW,EAAU,QAAA7lY,EAAAC,UAAA3M,OAFX4M,EAAI,IAAApD,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,GAAAF,UAAAE,GAGnBuv9B,GAAUnj5B,EACb0+iB,EAAO/qnB,EAAMylC,IAEbiq7B,EAAW1v9B,EACNqiC,IACHA,EAAQhS,YAAW,KACjBgS,EAAQ,KACR0olB,EAAO2kW,EAAS,GACfrj5B,EAAYmj5B,IAGrB,EAEcj69B,IAAMm69B,GAAY3kW,EAAO2kW,GAGzC,ECrCaC,GAAuB,SAAChk7B,EAAUik7B,GAA+B,IAAbH,EAAI1v9B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAClE8v9B,EAAgB,EACpB,MAAMC,EAAeC,GAAY,GAAI,KAErC,OAAOj+1B,IAASx8H,IACd,MAAMw6gB,EAASx6gB,EAAEw6gB,OACX1+Y,EAAQ97H,EAAE069B,iBAAmB169B,EAAE87H,WAAQv9H,EACvCo89B,EAAgBngd,EAAS+/c,EACzBK,EAAOJ,EAAaG,GAG1BJ,EAAgB//c,EAchBnke,EAZa,CACXmke,SACA1+Y,QACA1oE,SAAU0oE,EAAS0+Y,EAAS1+Y,OAASv9H,EACrC24F,MAAOyj4B,EACPC,KAAMA,QAAcr89B,EACpBs89B,UAAWD,GAAQ9+1B,GAVL0+Y,GAAU1+Y,GAUeA,EAAQ0+Y,GAAUogd,OAAOr89B,EAChE4kB,MAAOnjB,EACP069B,iBAA2B,MAAT5+1B,EAClB,CAACw+1B,EAAmB,WAAa,WAAW,GAGhC,GACbH,EACL,EAEaW,GAAyBA,CAACh/1B,EAAOi/1B,KAC5C,MAAML,EAA4B,MAAT5+1B,EAEzB,MAAO,CAAE0+Y,GAAWugd,EAAU,GAAG,CAC/BL,mBACA5+1B,QACA0+Y,WACEugd,EAAU,GAAG,EAGNC,GAAkBly9B,GAAO,mBAAA0B,EAAAC,UAAA3M,OAAI4M,EAAI,IAAApD,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,GAAAF,UAAAE,GAAA,OAAKso9B,GAAM1B,MAAK,IAAMzo9B,KAAM4B,IAAM,ECzChF,GAAeuivB,GAAS0oO,uBAA0Bp26B,GAShD,IAAI21O,IAAI+3d,GAAS1tsB,QATuC076B,GAUxDhuO,GAASnvsB,WAAa,kBAAkBh5B,KAAKmouB,GAASnvsB,UAAUC,WAVIv7B,IACpEA,EAAM,IAAI0yQ,IAAI1yQ,EAAKyquB,GAAS1tsB,QAG1BA,GAAOwmH,WAAavjJ,EAAIujJ,UACxBxmH,GAAOglE,OAAS/hG,EAAI+hG,OACnB022B,IAAU176B,GAAO276B,OAAS148B,EAAI048B,QAK/B,KAAM,EAXsC,IAAE376B,GAAQ076B,GCC1D,SAAehuO,GAAS0oO,sBAGtB,CACEzhmB,KAAAA,CAAMvrX,EAAM9H,EAAOs2qB,EAASl2pB,EAAMmjC,EAAQ+26B,GACxC,MAAMC,EAAS,CAACzy9B,EAAO,IAAM+yB,mBAAmB76B,IAEhDoy9B,GAAMhklB,SAASkoS,IAAYikT,EAAO/89B,KAAK,WAAa,IAAI+iC,KAAK+1oB,GAASkkT,eAEtEpI,GAAMtllB,SAAS1sX,IAASm68B,EAAO/89B,KAAK,QAAU4iB,GAE9Cgy8B,GAAMtllB,SAASvpV,IAAWg36B,EAAO/89B,KAAK,UAAY+lD,IAEvC,IAAX+26B,GAAmBC,EAAO/89B,KAAK,UAE/Bc,SAASi89B,OAASA,EAAO929B,KAAK,KAChC,EAEAovX,IAAAA,CAAK/qX,GACH,MAAMzB,EAAQ/H,SAASi89B,OAAOl09B,MAAM,IAAIwgB,OAAO,aAAe/e,EAAO,cACrE,OAAQzB,EAAQq8X,mBAAmBr8X,EAAM,IAAM,IACjD,EAEA0tC,MAAAA,CAAOjsC,GACLlL,KAAKy2X,MAAMvrX,EAAM,GAAIy4B,KAAK+O,MAAQ,MACpC,GAMF,CACE+jV,KAAAA,GAAS,EACTR,KAAIA,IACK,KAET9+U,MAAAA,GAAU,GCxBC,SAAS0m7B,GAAct5M,EAASu5M,GAC7C,OAAIv5M,ICHG,8BAA8Bl9vB,KDGPy28B,GENjB,SAAqBv5M,EAASw5M,GAC3C,OAAOA,EACHx5M,EAAQlhxB,QAAQ,SAAU,IAAM,IAAM069B,EAAY169B,QAAQ,OAAQ,IAClEkhxB,CACN,CFGWy5M,CAAYz5M,EAASu5M,GAEvBA,CACT,CGfA,MAAMG,GAAmBtnlB,GAAUA,aAAiB4jlB,GAAYhmlB,GAAA,GAAQoC,GAAUA,EAWnE,SAASunlB,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAMxp9B,EAAS,CAAC,EAEhB,SAASyp9B,EAAen48B,EAAQ4X,EAAQ7a,EAAMgx8B,GAC5C,OAAIuB,GAAMno8B,cAAcnH,IAAWsv8B,GAAMno8B,cAAcyQ,GAC9C037B,GAAM/g8B,MAAM3qB,KAAK,CAACmq9B,YAAW/t8B,EAAQ4X,GACnC037B,GAAMno8B,cAAcyQ,GACtB037B,GAAM/g8B,MAAM,CAAC,EAAGqJ,GACd037B,GAAM1j9B,QAAQgsB,GAChBA,EAAO75B,QAET65B,CACT,CAGA,SAASwg8B,EAAoBjz8B,EAAG4H,EAAGhQ,EAAOgx8B,GACxC,OAAKuB,GAAMxklB,YAAY/9W,GAEXui8B,GAAMxklB,YAAY3lX,QAAvB,EACEgz8B,OAAev99B,EAAWuqB,EAAGpI,EAAOgx8B,GAFpCoK,EAAehz8B,EAAG4H,EAAGhQ,EAAOgx8B,EAIvC,CAGA,SAASsK,EAAiBlz8B,EAAG4H,GAC3B,IAAKui8B,GAAMxklB,YAAY/9W,GACrB,OAAOor8B,OAAev99B,EAAWmyB,EAErC,CAGA,SAASur8B,EAAiBnz8B,EAAG4H,GAC3B,OAAKui8B,GAAMxklB,YAAY/9W,GAEXui8B,GAAMxklB,YAAY3lX,QAAvB,EACEgz8B,OAAev99B,EAAWuqB,GAF1Bgz8B,OAAev99B,EAAWmyB,EAIrC,CAGA,SAASwr8B,EAAgBpz8B,EAAG4H,EAAGhQ,GAC7B,OAAIA,KAAQm78B,EACHC,EAAehz8B,EAAG4H,GAChBhQ,KAAQk78B,EACVE,OAAev99B,EAAWuqB,QAD5B,CAGT,CAEA,MAAMqz8B,EAAW,CACf358B,IAAKw58B,EACL7n7B,OAAQ6n7B,EACR5h7B,KAAM4h7B,EACNh6M,QAASi6M,EACTtqT,iBAAkBsqT,EAClBhF,kBAAmBgF,EACnBG,iBAAkBH,EAClBth8B,QAASsh8B,EACTI,eAAgBJ,EAChBviT,gBAAiBuiT,EACjBK,cAAeL,EACf7F,QAAS6F,EACTzp6B,aAAcyp6B,EACd5E,eAAgB4E,EAChB3E,eAAgB2E,EAChBM,iBAAkBN,EAClBO,mBAAoBP,EACpBQ,WAAYR,EACZ1E,iBAAkB0E,EAClBzE,cAAeyE,EACfS,eAAgBT,EAChBU,UAAWV,EACXW,UAAWX,EACXY,WAAYZ,EACZa,YAAab,EACbc,WAAYd,EACZe,iBAAkBf,EAClBxE,eAAgByE,EAChB7p6B,QAASA,CAACvpC,EAAG4H,EAAIhQ,IAASq78B,EAAoBL,GAAgB5y8B,GAAI4y8B,GAAgBhr8B,GAAGhQ,GAAM,IAS7F,OANAuy8B,GAAMj09B,QAAQ2B,OAAOgkB,KAAKhkB,OAAOD,OAAO,CAAC,EAAGk79B,EAASC,KAAW,SAA4Bn78B,GAC1F,MAAMwR,EAAQiq8B,EAASz78B,IAASq78B,EAC1BkB,EAAc/q8B,EAAM0p8B,EAAQl78B,GAAOm78B,EAAQn78B,GAAOA,GACvDuy8B,GAAMxklB,YAAYwulB,IAAgB/q8B,IAAUgq8B,IAAqB7p9B,EAAOqO,GAAQu88B,EACnF,IAEO5q9B,CACT,CChGA,SAAgBA,IACd,MAAMi6Q,EAAYqvsB,GAAY,CAAC,EAAGtp9B,GAElC,IAaIgk9B,GAbA,KAACj86B,EAAI,cAAEki7B,EAAa,eAAEhF,EAAc,eAAED,EAAc,QAAEhl6B,EAAO,KAAE275B,GAAQ1hsB,EAe3E,GAbAA,EAAUj6N,QAAUA,EAAU2l6B,GAAaz39B,KAAK8xD,GAEhDi6N,EAAU9pQ,IAAMmy8B,GAAS2G,GAAchvsB,EAAU01f,QAAS11f,EAAU9pQ,KAAMnQ,EAAOH,OAAQG,EAAO+p9B,kBAG5FpO,GACF375B,EAAQ5rD,IAAI,gBAAiB,SAC3BktqB,MAAMq6S,EAAK7W,UAAY,IAAM,KAAO6W,EAAKrr8B,SAAWu68B,SAASxh8B,mBAAmBsy7B,EAAKrr8B,WAAa,MAMlGsw8B,GAAMzB,WAAWp36B,GACnB,GAAI6ysB,GAAS0oO,uBAAyB1oO,GAAS4oO,+BAC7Cxj6B,EAAQqk6B,oBAAen49B,QAClB,IAAiD,KAA5C839B,EAAchk6B,EAAQik6B,kBAA6B,CAE7D,MAAO/z9B,KAASimf,GAAU6te,EAAcA,EAAYtu9B,MAAM,KAAKhB,KAAI/D,GAASA,EAAMpC,SAAQkpB,OAAO8qH,SAAW,GAC5GviF,EAAQqk6B,eAAe,CAACn09B,GAAQ,yBAA0Bimf,GAAQlkf,KAAK,MACzE,CAOF,GAAI2ovB,GAAS0oO,wBACX2G,GAAiBrJ,GAAMnklB,WAAWwtlB,KAAmBA,EAAgBA,EAAchwsB,IAE/EgwsB,IAAoC,IAAlBA,GAA2Ba,GAAgB7wsB,EAAU9pQ,MAAO,CAEhF,MAAM468B,EAAY9F,GAAkBD,GAAkBgG,GAAQ3pmB,KAAK2jmB,GAE/D+F,GACF/q6B,EAAQ5rD,IAAI6w9B,EAAgB8F,EAEhC,CAGF,OAAO9wsB,CACR,EC1CD,GAFwD,qBAAnB/5N,gBAEG,SAAUlgD,GAChD,OAAO,IAAIwqH,SAAQ,SAA4B3uF,EAASJ,GACtD,MAAMuwH,EAAUi/zB,GAAcjr9B,GAC9B,IAAIkr9B,EAAcl/zB,EAAQjkH,KAC1B,MAAMoj7B,EAAiBxF,GAAaz39B,KAAK89J,EAAQhsG,SAAS0/I,YAC1D,IACI0rxB,EACAC,EAAiBC,EACjBC,EAAaC,GAHb,aAACrr6B,EAAY,iBAAE+p6B,EAAgB,mBAAEC,GAAsBn+zB,EAK3D,SAASzhC,IACPgh2B,GAAeA,IACfC,GAAiBA,IAEjBx/zB,EAAQy+zB,aAAez+zB,EAAQy+zB,YAAY56I,YAAYu7I,GAEvDp/zB,EAAQy6gB,QAAUz6gB,EAAQy6gB,OAAOp8nB,oBAAoB,QAAS+g7B,EAChE,CAEA,IAAInr6B,EAAU,IAAIC,eAOlB,SAASur6B,IACP,IAAKxr6B,EACH,OAGF,MAAMyr6B,EAAkB/F,GAAaz39B,KACnC,0BAA2B+xD,GAAWA,EAAQ0r6B,yBAahDtE,IAAO,SAAkB749B,GACvBqtC,EAAQrtC,GACR+7H,GACF,IAAG,SAAiB3vF,GAClBa,EAAOb,GACP2vF,GACF,GAfiB,CACfxiF,KAHoBoY,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxCF,EAAQL,SAA/BK,EAAQK,aAGRD,OAAQJ,EAAQI,OAChB+jnB,WAAYnknB,EAAQmknB,WACpBpknB,QAAS0r6B,EACT1r9B,SACAigD,YAYFA,EAAU,IACZ,CAlCAA,EAAQr2B,KAAKoiI,EAAQlqH,OAAOla,cAAeokI,EAAQ77I,KAAK,GAGxD8vC,EAAQ33B,QAAU0jI,EAAQ1jI,QAiCtB,cAAe23B,EAEjBA,EAAQwr6B,UAAYA,EAGpBxr6B,EAAQW,mBAAqB,WACtBX,GAAkC,IAAvBA,EAAQY,aAQD,IAAnBZ,EAAQI,QAAkBJ,EAAQ2r6B,aAAwD,IAAzC3r6B,EAAQ2r6B,YAAY989B,QAAQ,WAKjF45B,WAAW+i8B,EACb,EAIFxr6B,EAAQ4r6B,QAAU,WACX5r6B,IAILxkB,EAAO,IAAIkl7B,GAAW,kBAAmBA,GAAWmL,aAAc9r9B,EAAQigD,IAG1EA,EAAU,KACZ,EAGAA,EAAQU,QAAU,WAGhBllB,EAAO,IAAIkl7B,GAAW,gBAAiBA,GAAWoL,YAAa/r9B,EAAQigD,IAGvEA,EAAU,IACZ,EAGAA,EAAQ+r6B,UAAY,WAClB,IAAIC,EAAsBjg0B,EAAQ1jI,QAAU,cAAgB0jI,EAAQ1jI,QAAU,cAAgB,mBAC9F,MAAMu77B,EAAe73zB,EAAQ63zB,cAAgBC,GACzC93zB,EAAQig0B,sBACVA,EAAsBjg0B,EAAQig0B,qBAEhCxw7B,EAAO,IAAIkl7B,GACTsL,EACApI,EAAaZ,oBAAsBtC,GAAWuL,UAAYvL,GAAWmL,aACrE9r9B,EACAigD,IAGFA,EAAU,IACZ,OAGgB/zD,IAAhBg/9B,GAA6BC,EAAe9G,eAAe,MAGvD,qBAAsBpk6B,GACxB2g6B,GAAMj09B,QAAQw+9B,EAAex57B,UAAU,SAA0Bxb,EAAK7pB,GACpE2zD,EAAQkB,iBAAiB70D,EAAK6pB,EAChC,IAIGyq8B,GAAMxklB,YAAYpwO,EAAQq7gB,mBAC7BpnnB,EAAQonnB,kBAAoBr7gB,EAAQq7gB,iBAIlClnnB,GAAiC,SAAjBA,IAClBF,EAAQE,aAAe6rG,EAAQ7rG,cAI7Bgq6B,KACAmB,EAAmBE,GAAiBxD,GAAqBmC,GAAoB,GAC/Elq6B,EAAQnuC,iBAAiB,WAAYw58B,IAInCpB,GAAoBjq6B,EAAQ88oB,UAC5BsuR,EAAiBE,GAAevD,GAAqBkC,GAEvDjq6B,EAAQ88oB,OAAOjrrB,iBAAiB,WAAYu58B,GAE5Cpr6B,EAAQ88oB,OAAOjrrB,iBAAiB,UAAWy58B,KAGzCv/zB,EAAQy+zB,aAAez+zB,EAAQy6gB,UAGjC2kT,EAAap/4B,IACN/rB,IAGLxkB,GAAQuwC,GAAUA,EAAO97E,KAAO,IAAIi39B,GAAc,KAAMnn9B,EAAQigD,GAAW+rB,GAC3E/rB,EAAQsB,QACRtB,EAAU,KAAI,EAGhB+rG,EAAQy+zB,aAAez+zB,EAAQy+zB,YAAY0B,UAAUf,GACjDp/zB,EAAQy6gB,SACVz6gB,EAAQy6gB,OAAO7mhB,QAAUwr0B,IAAep/zB,EAAQy6gB,OAAO30pB,iBAAiB,QAASs58B,KAIrF,MAAM13zB,ECvLK,SAAuBvjJ,GACpC,MAAMtb,EAAQ,4BAA4BD,KAAKub,GAC/C,OAAOtb,GAASA,EAAM,IAAM,EAC9B,CDoLqBu39B,CAAcpg0B,EAAQ77I,KAEnCujJ,IAAsD,IAA1CknlB,GAASuoO,UAAUr09B,QAAQ4kK,GACzCj4H,EAAO,IAAIkl7B,GAAW,wBAA0BjtzB,EAAW,IAAKitzB,GAAW2G,gBAAiBtn9B,IAM9FigD,EAAQgB,KAAKiq6B,GAAe,KAC9B,GACF,EErJA,GA3CuBmB,CAACC,EAAShk8B,KAC/B,MAAM,OAAC78B,GAAW6g+B,EAAUA,EAAUA,EAAQ708B,OAAO8qH,SAAW,GAEhE,GAAIj6G,GAAW78B,EAAQ,CACrB,IAEIm0J,EAFAymhB,EAAa,IAAIC,gBAIrB,MAAMulT,EAAU,SAAU788B,GACxB,IAAK4wI,EAAS,CACZA,GAAU,EACViwrB,IACA,MAAMj1yB,EAAM5rB,aAAkB5R,MAAQ4R,EAAS5jB,KAAK4jB,OACpDq3pB,EAAW9knB,MAAM3mB,aAAe+l7B,GAAa/l7B,EAAM,IAAIus7B,GAAcvs7B,aAAex9B,MAAQw9B,EAAI4iG,QAAU5iG,GAC5G,CACF,EAEA,IAAIF,EAAQpS,GAAWI,YAAW,KAChCgS,EAAQ,KACRmx7B,EAAQ,IAAIlL,GAAW,WAAD3q9B,OAAYsyB,EAAO,mBAAmBq47B,GAAWuL,WAAW,GACjF5j8B,GAEH,MAAMunzB,EAAcA,KACdy8I,IACF5x7B,GAASjS,aAAaiS,GACtBA,EAAQ,KACR4x7B,EAAQ3/9B,SAAQ85qB,IACdA,EAAOopK,YAAcppK,EAAOopK,YAAYg8I,GAAWplT,EAAOp8nB,oBAAoB,QAASwh7B,EAAQ,IAEjGS,EAAU,KACZ,EAGFA,EAAQ3/9B,SAAS85qB,GAAWA,EAAO30pB,iBAAiB,QAAS+58B,KAE7D,MAAM,OAACplT,GAAUJ,EAIjB,OAFAI,EAAOopK,YAAc,IAAM+wI,GAAM1B,KAAKrvI,GAE/BppK,CACT,GC5CF,SAAS,GAAe94qB,EAAG0R,GACzBjU,KAAKsiC,EAAI//B,EAAGvC,KAAKmI,EAAI8L,CACvB,CCDA,SAAS,GAAoB1R,GAC3B,OAAO,WACL,OAAO,IAAI,GAAeA,EAAE8K,MAAMrN,KAAMgN,WAC1C,CACF,CACA,SAAS,GAAezK,GACtB,IAAI8rB,EAAGE,EACP,SAAS+9C,EAAOj+C,EAAGE,GACjB,IACE,IAAIpE,EAAI5nB,EAAE8rB,GAAGE,GACXwT,EAAI5X,EAAE/mB,MACNwrB,EAAImT,aAAa,GACnBq9F,QAAQ3uF,QAAQ7hB,EAAImT,EAAEO,EAAIP,GAAGgO,MAAK,SAAUxhB,GAC1C,GAAIK,EAAG,CACL,IAAI3sB,EAAI,WAAaosB,EAAI,SAAW,OACpC,IAAK0T,EAAE55B,GAAKomB,EAAE4wG,KAAM,OAAO7yD,EAAOrqE,EAAGssB,GACrCA,EAAIhsB,EAAEN,GAAGssB,GAAGnrB,KACd,CACA649B,EAAO9x8B,EAAEg1G,KAAO,SAAW,SAAU5wG,EACvC,IAAG,SAAUhsB,GACX+pE,EAAO,QAAS/pE,EAClB,GACF,CAAE,MAAOA,GACP059B,EAAO,QAAS159B,EAClB,CACF,CACA,SAAS059B,EAAO159B,EAAG4nB,GACjB,OAAQ5nB,GACN,IAAK,SACH8rB,EAAEoiB,QAAQ,CACRrtC,MAAO+mB,EACPg1G,MAAM,IAER,MACF,IAAK,QACH9wG,EAAEgiB,OAAOlmB,GACT,MACF,QACEkE,EAAEoiB,QAAQ,CACRrtC,MAAO+mB,EACPg1G,MAAM,KAGX9wG,EAAIA,EAAEjpB,MAAQknE,EAAOj+C,EAAEntB,IAAKmtB,EAAE9iB,KAAOgjB,EAAI,IAC5C,CACAvuB,KAAKmh+B,QAAU,SAAU5+9B,EAAG4nB,GAC1B,OAAO,IAAIi1G,SAAQ,SAAUr9F,EAAGnT,GAC9B,IAAI3sB,EAAI,CACNf,IAAKqB,EACLgJ,IAAK4e,EACLsmB,QAAS1O,EACTsO,OAAQzhB,EACRxpB,KAAM,MAERmpB,EAAIA,EAAIA,EAAEnpB,KAAOnD,GAAKosB,EAAIE,EAAItsB,EAAGqqE,EAAO/pE,EAAG4nB,GAC7C,GACF,EAAG,mBAAqB5nB,EAAU,SAAMvC,KAAa,YAAI,EAC3D,CCzDA,SAAS,GAAqBuC,GAC5B,OAAO,IAAI,GAAcA,EAAG,EAC9B,CCFA,SAAS,GAAwBgsB,GAC/B,IAAIhsB,EAAI,CAAC,EACP4nB,GAAI,EACN,SAASi38B,EAAK7+9B,EAAG8rB,GACf,OAAOlE,GAAI,EAAIkE,EAAI,IAAI+wG,SAAQ,SAAUj1G,GACvCA,EAAEoE,EAAEhsB,GAAG8rB,GACT,IAAI,CACF8wG,MAAM,EACN/7H,MAAO,IAAI,GAAcirB,EAAG,GAEhC,CACA,OAAO9rB,EAAE,oBAAsBm7B,QAAUA,OAAOE,UAAY,cAAgB,WAC1E,OAAO59B,IACT,EAAGuC,EAAE6C,KAAO,SAAUmpB,GACpB,OAAOpE,GAAKA,GAAI,EAAIoE,GAAK6y8B,EAAK,OAAQ7y8B,EACxC,EAAG,mBAAqBA,EAAS,QAAMhsB,EAAS,MAAI,SAAUgsB,GAC5D,GAAIpE,EAAG,MAAMA,GAAI,EAAIoE,EACrB,OAAO6y8B,EAAK,QAAS7y8B,EACvB,GAAI,mBAAqBA,EAAU,SAAMhsB,EAAU,OAAI,SAAUgsB,GAC/D,OAAOpE,GAAKA,GAAI,EAAIoE,GAAK6y8B,EAAK,SAAU7y8B,EAC1C,GAAIhsB,CACN,CCtBA,SAAS,GAAe8rB,GACtB,IAAIlE,EACFoE,EACAwT,EACAx/B,EAAI,EACN,IAAK,oBAAsBm7B,SAAWnP,EAAImP,OAAOuiX,cAAel+W,EAAIrE,OAAOE,UAAWr7B,KAAM,CAC1F,GAAIgsB,GAAK,OAASpE,EAAIkE,EAAEE,IAAK,OAAOpE,EAAErgB,KAAKukB,GAC3C,GAAI0T,GAAK,OAAS5X,EAAIkE,EAAE0T,IAAK,OAAO,IAAI,GAAsB5X,EAAErgB,KAAKukB,IACrEE,EAAI,kBAAmBwT,EAAI,YAC7B,CACA,MAAM,IAAIyO,UAAU,+BACtB,CACA,SAAS,GAAsBniB,GAC7B,SAASgz8B,EAAkChz8B,GACzC,GAAInrB,OAAOmrB,KAAOA,EAAG,OAAO+wG,QAAQ/uF,OAAO,IAAIG,UAAUniB,EAAI,uBAC7D,IAAIlE,EAAIkE,EAAE8wG,KACV,OAAOC,QAAQ3uF,QAAQpiB,EAAEjrB,OAAO2sC,MAAK,SAAU1hB,GAC7C,MAAO,CACLjrB,MAAOirB,EACP8wG,KAAMh1G,EAEV,GACF,CACA,OAAO,GAAwB,SAA+BkE,GAC5DruB,KAAKmrB,EAAIkD,EAAGruB,KAAKmqB,EAAIkE,EAAEjpB,IACzB,EAAG,GAAsBhE,UAAY,CACnC+pB,EAAG,KACHhB,EAAG,KACH/kB,KAAM,WACJ,OAAOi89B,EAAkCrh+B,KAAKmqB,EAAE9c,MAAMrN,KAAKmrB,EAAGne,WAChE,EACA,OAAU,SAAiBqhB,GACzB,IAAIlE,EAAInqB,KAAKmrB,EAAU,OACvB,YAAO,IAAWhB,EAAIi1G,QAAQ3uF,QAAQ,CACpCrtC,MAAOirB,EACP8wG,MAAM,IACHki2B,EAAkCl38B,EAAE9c,MAAMrN,KAAKmrB,EAAGne,WACzD,EACA,MAAS,SAAgBqhB,GACvB,IAAIlE,EAAInqB,KAAKmrB,EAAU,OACvB,YAAO,IAAWhB,EAAIi1G,QAAQ/uF,OAAOhiB,GAAKgz8B,EAAkCl38B,EAAE9c,MAAMrN,KAAKmrB,EAAGne,WAC9F,GACC,IAAI,GAAsBqhB,EAC/B,CHgBA,GAAejtB,UAAU,mBAAqBs8B,QAAUA,OAAOuiX,eAAiB,mBAAqB,WACnG,OAAOjgZ,IACT,EAAG,GAAeoB,UAAUgE,KAAO,SAAU7C,GAC3C,OAAOvC,KAAKmh+B,QAAQ,OAAQ5+9B,EAC9B,EAAG,GAAenB,UAAiB,MAAI,SAAUmB,GAC/C,OAAOvC,KAAKmh+B,QAAQ,QAAS5+9B,EAC/B,EAAG,GAAenB,UAAkB,OAAI,SAAUmB,GAChD,OAAOvC,KAAKmh+B,QAAQ,SAAU5+9B,EAChC,EIlEO,MAAM++9B,GAAc,UAAWzmlB,EAAO0mlB,GAC3C,IAAIxu9B,EAAM8nY,EAAMl+S,WAEhB,IAAK4k4B,GAAaxu9B,EAAMwu9B,EAEtB,kBADM1mlB,GAIR,IACI72Y,EADAg5F,EAAM,EAGV,KAAOA,EAAMjqF,GACX/O,EAAMg5F,EAAMuk4B,QACN1mlB,EAAM52Y,MAAM+4F,EAAKh5F,GACvBg5F,EAAMh5F,CAEV,EAEauntB,GAAS,eAAAx1sB,EAAAyr9B,IAAG,UAAiBr9kB,EAAUo9kB,GAAW,IAAAE,EAAAC,GAAA,EAAAC,GAAA,MAC7D,QAA8C16pB,EAA9C26pB,EAAAC,GAA0BC,GAAW39kB,IAASu9kB,IAAAz6pB,QAAA86pB,GAAAH,EAAAx89B,SAAA+5H,KAAAui2B,GAAA,EAAE,OAA/B7mlB,EAAK5zE,EAAA7jU,YACpB4+9B,GAAAH,GAAOP,GAAYzmlB,EAAO0mlB,IAC5B,CAAC,OAAA/x7B,GAAAmy7B,GAAA,EAAAF,EAAAjy7B,CAAA,aAAAky7B,GAAA,MAAAE,EAAA389B,eAAA889B,GAAAH,EAAA389B,UAAA,YAAA089B,EAAA,MAAAF,CAAA,EACH,IAAC,gBAJqB5uvB,EAAA86nB,GAAA,OAAA531B,EAAA1I,MAAA,KAAAL,UAAA,KAMhB809B,GAAU,eAAAtt9B,EAAAgt9B,IAAG,UAAiBpy3B,GAClC,GAAIA,EAAO1xE,OAAOuiX,eAEhB,kBADA+hlB,GAAAH,GAAOzy3B,KAIT,MAAM6y3B,EAAS7y3B,EAAO8y3B,YACtB,IACE,OAAS,CACP,MAAM,KAAC/i2B,EAAI,MAAE/7H,SAAM2+9B,GAASE,EAAOhsmB,QACnC,GAAI92P,EACF,YAEI/7H,CACR,CACF,CAAE,cACA2+9B,GAAME,EAAOrh5B,SACf,CACF,IAAC,gBAlBegtxB,GAAA,OAAAp51B,EAAAnH,MAAA,KAAAL,UAAA,KAoBHm19B,GAAcA,CAAC/y3B,EAAQmy3B,EAAWa,EAAYC,KACzD,MAAMzk8B,EAAW2trB,GAAUn8mB,EAAQmy3B,GAEnC,IACIpi2B,EADA1lC,EAAQ,EAER6o4B,EAAa//9B,IACV48H,IACHA,GAAO,EACPkj2B,GAAYA,EAAS9/9B,GACvB,EAGF,OAAO,IAAI42qB,eAAe,CACxB,UAAMh0Q,CAAK81Q,GACT,IACE,MAAM,KAAC97iB,EAAI,MAAE/7H,SAAew6B,EAASx4B,OAErC,GAAI+5H,EAGF,OAFDmj2B,SACCrnT,EAAW3iE,QAIb,IAAIvlmB,EAAM3P,EAAMu5F,WAChB,GAAIyl4B,EAAY,CACd,IAAIG,EAAc9o4B,GAAS1mF,EAC3Bqv9B,EAAWG,EACb,CACAtnT,EAAWunT,QAAQ,IAAIzp4B,WAAW31F,GACpC,CAAE,MAAOosC,GAEP,MADA8y7B,EAAU9y7B,GACJA,CACR,CACF,EACAoxC,OAAOh9D,IACL0+8B,EAAU1+8B,GACHga,EAAS34B,WAEjB,CACDoyY,cAAe,GACf,EC3EEorlB,GAAoC,oBAAV7mT,OAA2C,oBAAZT,SAA8C,oBAAbjC,SAC1FwpT,GAA4BD,IAA8C,oBAAnBtpT,eAGvDwpT,GAAaF,KAA4C,oBAAhBG,aACzC5L,GAA0C,IAAI4L,YAAjC/v9B,GAAQmk9B,GAAQt93B,OAAO7mF,IACtComZ,SAAe,IAAIlgU,iBAAiB,IAAImglB,SAASrmqB,GAAKipqB,gBADtD,IAAEk7S,GAIN,MAAM3v8B,GAAO,SAAChc,GACZ,IAAI,QAAA0B,EAAAC,UAAA3M,OADe4M,EAAI,IAAApD,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,EAAA,GAAAF,UAAAE,GAErB,QAAS7B,KAAM4B,EACjB,CAAE,MAAO1K,IACP,OAAO,CACT,CACF,EAEMsg+B,GAAwBH,IAA6Br78B,IAAK,KAC9D,IAAIy78B,GAAiB,EAErB,MAAMC,EAAiB,IAAI5nT,QAAQq0E,GAAS1tsB,OAAQ,CAClD4jC,KAAM,IAAIyzlB,eACVzioB,OAAQ,OACR,UAAIss7B,GAEF,OADAF,GAAiB,EACV,MACT,IACClu6B,QAAQnmC,IAAI,gBAEf,OAAOq08B,IAAmBC,CAAc,IAKpCE,GAAyBP,IAC7Br78B,IAAK,IAAMmu8B,GAAM3C,iBAAiB,IAAI35S,SAAS,IAAIxzlB,QAG/Cw94B,GAAY,CAChB9z3B,OAAQ6z3B,IAA0B,CAAEh17B,GAAQA,EAAIy3C,OAG7B,IAAEz3C,GAAvBw07B,KAAuBx07B,GAOpB,IAAIiroB,SANL,CAAC,OAAQ,cAAe,OAAQ,WAAY,UAAU33qB,SAAQuD,KAC3Do+9B,GAAUp+9B,KAAUo+9B,GAAUp+9B,GAAQ0w9B,GAAMnklB,WAAWpjW,GAAInpC,IAAUmpC,GAAQA,EAAInpC,KAChF,CAACo+B,EAAGtuB,KACF,MAAM,IAAI2g9B,GAAW,kBAAD3q9B,OAAmB9F,EAAI,sBAAsByw9B,GAAW4N,gBAAiBvu9B,EAAO,EACpG,KAIR,MA8BMwu9B,GAAoBnqkB,MAAOrkW,EAAS8wB,KACxC,MAAMrlF,EAASm19B,GAAMN,eAAetg6B,EAAQyu6B,oBAE5C,OAAiB,MAAVhj+B,EAjCa44Z,WACpB,GAAY,MAARvzU,EACF,OAAO,EAGT,GAAG8v4B,GAAM9C,OAAOht4B,GACd,OAAOA,EAAKz9E,KAGd,GAAGut9B,GAAMJ,oBAAoB1v4B,GAAO,CAClC,MAAMq+rB,EAAW,IAAI5oG,QAAQq0E,GAAS1tsB,OAAQ,CAC5CpL,OAAQ,OACRgvC,SAEF,aAAcq+rB,EAASjoG,eAAen/kB,UACxC,CAEA,OAAG643B,GAAMznlB,kBAAkBroT,IAAS8v4B,GAAMj63B,cAAc7V,GAC/CA,EAAKiX,YAGX643B,GAAM5C,kBAAkBlt4B,KACzBA,GAAc,IAGb8v4B,GAAMtllB,SAASxqT,UACFi94B,GAAWj94B,IAAOiX,gBADlC,EAEA,EAMwB2m4B,CAAc594B,GAAQrlF,CAAM,ECxFhDkj+B,GAAgB,CACpBC,KCNF,KDOE7u6B,IAAK8u6B,GACL7nT,MDwFa6mT,IAAoB,OAACxpkB,IAClC,IAAI,IACFl0Y,EAAG,OACH2xB,EAAM,KACNiG,EAAI,OACJ0+nB,EAAM,YACNgkT,EAAW,QACXni8B,EAAO,mBACP6h8B,EAAkB,iBAClBD,EAAgB,aAChB/p6B,EAAY,QACZH,EAAO,gBACPqnnB,EAAkB,cAAa,aAC/BynT,GACE7D,GAAcjr9B,GAElBmgD,EAAeA,GAAgBA,EAAe,IAAIhkD,cAAgB,OAElE,IAEI8jD,EAFA8u6B,EAAiB1C,GAAe,CAAC5lT,EAAQgkT,GAAeA,EAAYuE,iBAAkB1m8B,GAI1F,MAAMunzB,EAAck/I,GAAkBA,EAAel/I,aAAe,MAChEk/I,EAAel/I,aAClB,GAED,IAAIo/I,EAEJ,IACE,GACE/E,GAAoB+D,IAAoC,QAAXns7B,GAA+B,SAAXA,GACG,KAAnEmt7B,QAA6BT,GAAkBxu6B,EAASjY,IACzD,CACA,IAMImn7B,EANA//M,EAAW,IAAI5oG,QAAQp2pB,EAAK,CAC9B2xB,OAAQ,OACRgvC,KAAM/oC,EACNqm7B,OAAQ,SASV,GAJIxN,GAAMzB,WAAWp36B,KAAUmn7B,EAAoB//M,EAASnvtB,QAAQ7rD,IAAI,kBACtE6rD,EAAQqk6B,eAAe6K,GAGrB//M,EAASr+rB,KAAM,CACjB,MAAO084B,EAAY5/9B,GAAS669B,GAC1BwG,EACAjH,GAAqBW,GAAeuB,KAGtCni7B,EAAOwl7B,GAAYp+M,EAASr+rB,KA1GT,MA0GmC084B,EAAY5/9B,EACpE,CACF,CAEKgz9B,GAAMtllB,SAAS+rS,KAClBA,EAAkBA,EAAkB,UAAY,QAKlD,MAAM8nT,EAAyB,gBAAiB5oT,QAAQ/5qB,UACxDyzD,EAAU,IAAIsmnB,QAAQp2pB,EAAGwvX,GAAAA,GAAA,GACpBmvlB,GAAY,IACfroT,OAAQsoT,EACRjt7B,OAAQA,EAAOla,cACfo4B,QAASA,EAAQ0/I,YAAY/tK,SAC7Bm/C,KAAM/oC,EACNqm7B,OAAQ,OACR5nT,YAAa2oT,EAAyB9nT,OAAkBn7qB,KAG1D,IAAI0zD,QAAiBonnB,MAAM/mnB,GAE3B,MAAMmv6B,EAAmBf,KAA4C,WAAjBlu6B,GAA8C,aAAjBA,GAEjF,GAAIku6B,KAA2BlE,GAAuBiF,GAAoBv/I,GAAe,CACvF,MAAM3k1B,EAAU,CAAC,EAEjB,CAAC,SAAU,aAAc,WAAWyB,SAAQ0hB,IAC1CnjB,EAAQmjB,GAAQuxC,EAASvxC,EAAK,IAGhC,MAAMgh9B,EAAwBzO,GAAMN,eAAe1g6B,EAASI,QAAQ7rD,IAAI,oBAEjEq59B,EAAY5/9B,GAASu89B,GAAsB1B,GAChD4G,EACArH,GAAqBW,GAAewB,IAAqB,KACtD,GAELvq6B,EAAW,IAAI0knB,SACbipT,GAAY3t6B,EAASkxB,KAlJF,MAkJ4B084B,GAAY,KACzD5/9B,GAASA,IACTii1B,GAAeA,GAAa,IAE9B3k1B,EAEJ,CAEAi1D,EAAeA,GAAgB,OAE/B,IAAImv6B,QAAqBhB,GAAU1N,GAAMvC,QAAQiQ,GAAWnu6B,IAAiB,QAAQP,EAAU5/C,GAI/F,OAFCov9B,GAAoBv/I,GAAeA,UAEvB,IAAIrltB,SAAQ,CAAC3uF,EAASJ,KACjC4r7B,GAAOxr7B,EAASJ,EAAQ,CACtBsM,KAAMun7B,EACNtv6B,QAAS2l6B,GAAaz39B,KAAK0xD,EAASI,SACpCK,OAAQT,EAASS,OACjB+jnB,WAAYxknB,EAASwknB,WACrBpkqB,SACAigD,WACA,GAEN,CAAE,MAAOrlB,GAGP,GAFAi1yB,GAAeA,IAEXj1yB,GAAoB,cAAbA,EAAItkC,MAAwB,SAASmc,KAAKmoB,EAAI4iG,SACvD,MAAMlvI,OAAOD,OACX,IAAIsy9B,GAAW,gBAAiBA,GAAWoL,YAAa/r9B,EAAQigD,GAChE,CACEih6B,MAAOtm7B,EAAIsm7B,OAAStm7B,IAK1B,MAAM+l7B,GAAWzy9B,KAAK0sC,EAAKA,GAAOA,EAAIxR,KAAMppB,EAAQigD,EACtD,CACD,ICtND2g6B,GAAMj09B,QAAQgi+B,IAAe,CAACl49B,EAAIjI,KAChC,GAAIiI,EAAI,CACN,IACEnI,OAAOgR,eAAe7I,EAAI,OAAQ,CAACjI,SACrC,CAAE,MAAOb,IACP,CAEFW,OAAOgR,eAAe7I,EAAI,cAAe,CAACjI,SAC5C,KAGF,MAAM+g+B,GAAgBvg9B,GAAM,KAAAhZ,OAAUgZ,GAEhCwg9B,GAAoBzL,GAAYnD,GAAMnklB,WAAWsnlB,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,GACe0L,IACXA,EAAW7O,GAAM1j9B,QAAQuy9B,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAAChk+B,GAAUgk+B,EACjB,IAAIC,EACA3L,EAEJ,MAAM4L,EAAkB,CAAC,EAEzB,IAAK,IAAIti+B,EAAI,EAAGA,EAAI5B,EAAQ4B,IAAK,CAE/B,IAAIm/B,EAIJ,GALAkj8B,EAAgBD,EAASpi+B,GAGzB029B,EAAU2L,GAELF,GAAiBE,KACpB3L,EAAU4K,IAAeni8B,EAAKr+B,OAAOuh+B,IAAgBvz9B,oBAErCjQ,IAAZ639B,GACF,MAAM,IAAIpD,GAAW,oBAAD3q9B,OAAqBw2B,EAAE,MAI/C,GAAIu37B,EACF,MAGF4L,EAAgBnj8B,GAAM,IAAMn/B,GAAK029B,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAM6L,EAAUth+B,OAAO2qB,QAAQ028B,GAC5Bj79B,KAAIyM,IAAA,IAAEqrB,EAAIhB,GAAMrqB,EAAA,MAAK,WAAAnL,OAAWw2B,EAAE,OACtB,IAAVhB,EAAkB,sCAAwC,gCAAgC,IAG/F,IAAIjV,EAAI9qB,EACLmk+B,EAAQnk+B,OAAS,EAAI,YAAcmk+B,EAAQl79B,IAAI669B,IAAct99B,KAAK,MAAQ,IAAMs99B,GAAaK,EAAQ,IACtG,0BAEF,MAAM,IAAIjP,GACR,wDAA0Dpq8B,EAC1D,kBAEJ,CAEA,OAAOwt8B,CAAO,EE3DlB,SAAS8L,GAA6B7v9B,GAKpC,GAJIA,EAAOyq9B,aACTzq9B,EAAOyq9B,YAAYqF,mBAGjB9v9B,EAAOymqB,QAAUzmqB,EAAOymqB,OAAO7mhB,QACjC,MAAM,IAAIun0B,GAAc,KAAMnn9B,EAElC,CASe,SAAS+v9B,GAAgB/v9B,GACtC6v9B,GAA6B7v9B,GAE7BA,EAAOggD,QAAU2l6B,GAAaz39B,KAAK8R,EAAOggD,SAG1ChgD,EAAO+nC,KAAOi/6B,GAAc9x9B,KAC1B8K,EACAA,EAAOs/pB,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAASxwqB,QAAQkR,EAAO8hC,SAC1C9hC,EAAOggD,QAAQqk6B,eAAe,qCAAqC,GAKrE,OAFgBoL,GAAoBzv9B,EAAO+j9B,SAAWzn3B,GAASyn3B,QAExDA,CAAQ/j9B,GAAQm7B,MAAK,SAA6BykB,GAYvD,OAXAiw6B,GAA6B7v9B,GAG7B4/C,EAAS7X,KAAOi/6B,GAAc9x9B,KAC5B8K,EACAA,EAAO4k9B,kBACPhl6B,GAGFA,EAASI,QAAU2l6B,GAAaz39B,KAAK0xD,EAASI,SAEvCJ,CACT,IAAG,SAA4B5wC,GAe7B,OAdKi48B,GAASj48B,KACZ6g9B,GAA6B7v9B,GAGzBgP,GAAUA,EAAO4wC,WACnB5wC,EAAO4wC,SAAS7X,KAAOi/6B,GAAc9x9B,KACnC8K,EACAA,EAAO4k9B,kBACP518B,EAAO4wC,UAET5wC,EAAO4wC,SAASI,QAAU2l6B,GAAaz39B,KAAK8gB,EAAO4wC,SAASI,WAIzDwqE,QAAQ/uF,OAAOzsB,EACxB,GACF,CChFO,MAAM4t0B,GAAU,QCKjBozI,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUrj+B,SAAQ,CAACuD,EAAM7C,KAC7E2i+B,GAAW9/9B,GAAQ,SAAmB6xY,GACpC,cAAcA,IAAU7xY,GAAQ,KAAO7C,EAAI,EAAI,KAAO,KAAO6C,CAC/D,CAAC,IAGH,MAAM+/9B,GAAqB,CAAC,EAW5BD,GAAWnM,aAAe,SAAsB908B,EAAWmrB,EAASsjG,GAClE,SAAS0y1B,EAAch/1B,EAAKn3F,GAC1B,MAAO,uCAAoDm3F,EAAM,IAAOn3F,GAAQyjG,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAAChvI,EAAO0iI,EAAKrjC,KAClB,IAAkB,IAAd9+E,EACF,MAAM,IAAI4x8B,GACRuP,EAAch/1B,EAAK,qBAAuBh3F,EAAU,OAASA,EAAU,KACvEym7B,GAAWwP,gBAef,OAXIj27B,IAAY+17B,GAAmB/+1B,KACjC++1B,GAAmB/+1B,IAAO,EAE1B1pB,QAAQE,KACNwo3B,EACEh/1B,EACA,+BAAiCh3F,EAAU,8CAK1CnrB,GAAYA,EAAUvgB,EAAO0iI,EAAKrjC,EAAY,CAEzD,EAEAmi4B,GAAWI,SAAW,SAAkBC,GACtC,MAAO,CAAC7h+B,EAAO0iI,KAEb1pB,QAAQE,KAAK,GAAD1xG,OAAIk7H,EAAG,gCAAAl7H,OAA+Bq69B,KAC3C,EAEX,EAmCA,UACEC,cAxBF,SAAuBpl+B,EAAS2wH,EAAQ002B,GACtC,GAAuB,kBAAZrl+B,EACT,MAAM,IAAIy19B,GAAW,4BAA6BA,GAAW6P,sBAE/D,MAAMl+8B,EAAOhkB,OAAOgkB,KAAKpnB,GACzB,IAAImC,EAAIilB,EAAK7mB,OACb,KAAO4B,KAAM,GAAG,CACd,MAAM6jI,EAAM5+G,EAAKjlB,GACX0hB,EAAY8sG,EAAOqV,GACzB,GAAIniH,EAAJ,CACE,MAAMvgB,EAAQtD,EAAQgmI,GAChBzzH,OAAmBvR,IAAVsC,GAAuBugB,EAAUvgB,EAAO0iI,EAAKhmI,GAC5D,IAAe,IAAXuS,EACF,MAAM,IAAIkj9B,GAAW,UAAYzv1B,EAAM,YAAczzH,EAAQkj9B,GAAW6P,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAI5P,GAAW,kBAAoBzv1B,EAAKyv1B,GAAW8P,eAE7D,CACF,EAIET,WAAUA,ICtFNA,GAAajh9B,GAAUih9B,WAS7B,MAAMU,GACJ/49B,WAAAA,CAAYg59B,GACVvl+B,KAAKkxG,SAAWq03B,EAChBvl+B,KAAKwl+B,aAAe,CAClB3w6B,QAAS,IAAI4w6B,GACbjx6B,SAAU,IAAIix6B,GAElB,CAUA,aAAM5w6B,CAAQ6w6B,EAAa9w9B,GACzB,IACE,aAAa5U,KAAK+jxB,SAAS2hN,EAAa9w9B,EAC1C,CAAE,MAAO46B,GACP,GAAIA,aAAex9B,MAAO,CACxB,IAAI64H,EAAQ,CAAC,EAEb74H,MAAM24Y,kBAAoB34Y,MAAM24Y,kBAAkB9/Q,GAAUA,EAAQ,IAAI74H,MAGxE,MAAM27D,EAAQk9D,EAAMl9D,MAAQk9D,EAAMl9D,MAAMtqE,QAAQ,QAAS,IAAM,GAC/D,IACOmsC,EAAIm+B,MAGEA,IAAU5qE,OAAOysC,EAAIm+B,OAAOmpU,SAASnpU,EAAMtqE,QAAQ,YAAa,OACzEmsC,EAAIm+B,OAAS,KAAOA,GAHpBn+B,EAAIm+B,MAAQA,CAKhB,CAAE,MAAOprE,IACP,CAEJ,CAEA,MAAMitC,CACR,CACF,CAEAu0uB,QAAAA,CAAS2hN,EAAa9w9B,GAGO,kBAAhB8w9B,GACT9w9B,EAASA,GAAU,CAAC,GACbmQ,IAAM2g9B,EAEb9w9B,EAAS8w9B,GAAe,CAAC,EAG3B9w9B,EAASsp9B,GAAYl+9B,KAAKkxG,SAAUt8F,GAEpC,MAAM,aAAC6j9B,EAAY,iBAAEkG,EAAgB,QAAE/p6B,GAAWhgD,OAE7B9T,IAAjB239B,GACF908B,GAAUuh9B,cAAczM,EAAc,CACpCd,kBAAmBiN,GAAWnM,aAAamM,GAAWlw3B,SACtDkj3B,kBAAmBgN,GAAWnM,aAAamM,GAAWlw3B,SACtDmj3B,oBAAqB+M,GAAWnM,aAAamM,GAAWlw3B,WACvD,GAGmB,MAApBiq3B,IACEnJ,GAAMnklB,WAAWstlB,GACnB/p9B,EAAO+p9B,iBAAmB,CACxBn49B,UAAWm49B,GAGbh78B,GAAUuh9B,cAAcvG,EAAkB,CACxCjl4B,OAAQkr4B,GAAWt5X,SACnB9kmB,UAAWo+9B,GAAWt5X,WACrB,IAIP3nlB,GAAUuh9B,cAActw9B,EAAQ,CAC9BmvI,QAAS6g1B,GAAWI,SAAS,WAC7BW,cAAef,GAAWI,SAAS,mBAClC,GAGHpw9B,EAAO8hC,QAAU9hC,EAAO8hC,QAAU12C,KAAKkxG,SAASx6D,QAAU,OAAO3lC,cAGjE,IAAI609B,EAAiBhx6B,GAAW4g6B,GAAM/g8B,MACpCmgC,EAAQr6C,OACRq6C,EAAQhgD,EAAO8hC,SAGjBke,GAAW4g6B,GAAMj09B,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjDm1C,WACQke,EAAQle,EAAO,IAI1B9hC,EAAOggD,QAAU2l6B,GAAa3v9B,OAAOg79B,EAAgBhx6B,GAGrD,MAAMix6B,EAA0B,GAChC,IAAIC,GAAiC,EACrC9l+B,KAAKwl+B,aAAa3w6B,QAAQtzD,SAAQ,SAAoCwk+B,GACjC,oBAAxBA,EAAYtO,UAA0D,IAAhCsO,EAAYtO,QAAQ7i9B,KAIrEkx9B,EAAiCA,GAAkCC,EAAYvO,YAE/EqO,EAAwBjq6B,QAAQmq6B,EAAYzO,UAAWyO,EAAYxO,UACrE,IAEA,MAAMyO,EAA2B,GAKjC,IAAIz17B,EAJJvwC,KAAKwl+B,aAAahx6B,SAASjzD,SAAQ,SAAkCwk+B,GACnEC,EAAyBpl+B,KAAKml+B,EAAYzO,UAAWyO,EAAYxO,SACnE,IAGA,IACIxk9B,EADA9Q,EAAI,EAGR,IAAK6j+B,EAAgC,CACnC,MAAM717B,EAAQ,CAAC007B,GAAgB578B,KAAK/oB,WAAOc,GAO3C,IANAmvC,EAAM2rB,QAAQvuD,MAAM4iC,EAAO417B,GAC3B517B,EAAMrvC,KAAKyM,MAAM4iC,EAAO+17B,GACxBjz9B,EAAMk9B,EAAM5vC,OAEZkwC,EAAU6uF,QAAQ3uF,QAAQ77B,GAEnB3S,EAAI8Q,GACTw9B,EAAUA,EAAQR,KAAKE,EAAMhuC,KAAMguC,EAAMhuC,MAG3C,OAAOsuC,CACT,CAEAx9B,EAAM8y9B,EAAwBxl+B,OAE9B,IAAIwuR,EAAYj6Q,EAIhB,IAFA3S,EAAI,EAEGA,EAAI8Q,GAAK,CACd,MAAM6l7B,EAAcitC,EAAwB5j+B,KACtCgk+B,EAAaJ,EAAwB5j+B,KAC3C,IACE4sR,EAAY+pqB,EAAY/pqB,EAC1B,CAAE,MAAOzyQ,GACP6p9B,EAAWn89B,KAAK9J,KAAMoc,GACtB,KACF,CACF,CAEA,IACEm0B,EAAUo07B,GAAgB769B,KAAK9J,KAAM6uR,EACvC,CAAE,MAAOzyQ,GACP,OAAOgjH,QAAQ/uF,OAAOj0B,EACxB,CAKA,IAHAna,EAAI,EACJ8Q,EAAMiz9B,EAAyB3l+B,OAExB4B,EAAI8Q,GACTw9B,EAAUA,EAAQR,KAAKi27B,EAAyB/j+B,KAAM+j+B,EAAyB/j+B,MAGjF,OAAOsuC,CACT,CAEA217B,MAAAA,CAAOtx9B,GAGL,OAAOsi9B,GADU2G,IADjBjp9B,EAASsp9B,GAAYl+9B,KAAKkxG,SAAUt8F,IACE2vwB,QAAS3vwB,EAAOmQ,KAC5BnQ,EAAOH,OAAQG,EAAO+p9B,iBAClD,EAIFnJ,GAAMj09B,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6Bm1C,GAE/E4u7B,GAAMlk+B,UAAUs1C,GAAU,SAAS3xB,EAAKnQ,GACtC,OAAO5U,KAAK60D,QAAQqp6B,GAAYtp9B,GAAU,CAAC,EAAG,CAC5C8hC,SACA3xB,MACA43B,MAAO/nC,GAAU,CAAC,GAAG+nC,OAEzB,CACF,IAEA646B,GAAMj09B,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+Bm1C,GAGrE,SAASyv7B,EAAmBC,GAC1B,OAAO,SAAoBrh9B,EAAK43B,EAAM/nC,GACpC,OAAO5U,KAAK60D,QAAQqp6B,GAAYtp9B,GAAU,CAAC,EAAG,CAC5C8hC,SACAke,QAASwx6B,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLrh9B,MACA43B,SAEJ,CACF,CAEA2o7B,GAAMlk+B,UAAUs1C,GAAUyv7B,IAE1Bb,GAAMlk+B,UAAUs1C,EAAS,QAAUyv7B,GAAmB,EACxD,IAEA,YC7NA,MAAME,GACJ959B,WAAAA,CAAY+kC,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAId,UAAU,gCAGtB,IAAI817B,EAEJtm+B,KAAKuwC,QAAU,IAAI6uF,SAAQ,SAAyB3uF,GAClD617B,EAAiB717B,CACnB,IAEA,MAAMlrC,EAAQvF,KAGdA,KAAKuwC,QAAQR,MAAK6wC,IAChB,IAAKr7E,EAAMisI,WAAY,OAEvB,IAAIvvI,EAAIsD,EAAMisI,WAAWnxI,OAEzB,KAAO4B,KAAM,GACXsD,EAAMisI,WAAWvvI,GAAG2+E,GAEtBr7E,EAAMisI,WAAa,IAAI,IAIzBxxI,KAAKuwC,QAAQR,KAAOw27B,IAClB,IAAI3xX,EAEJ,MAAMrkkB,EAAU,IAAI6uF,SAAQ3uF,IAC1BlrC,EAAMw79B,UAAUtw7B,GAChBmkkB,EAAWnkkB,CAAO,IACjBV,KAAKw27B,GAMR,OAJAh27B,EAAQqwC,OAAS,WACfr7E,EAAMk/0B,YAAY7vO,EACpB,EAEOrkkB,CAAO,EAGhBe,GAAS,SAAgB8gG,EAASx9H,EAAQigD,GACpCtvD,EAAMqe,SAKVre,EAAMqe,OAAS,IAAIm48B,GAAc3p1B,EAASx9H,EAAQigD,GAClDyx6B,EAAe/g+B,EAAMqe,QACvB,GACF,CAKA8g9B,gBAAAA,GACE,GAAI1k+B,KAAK4jB,OACP,MAAM5jB,KAAK4jB,MAEf,CAMAm98B,SAAAA,CAAUno7B,GACJ54C,KAAK4jB,OACPg1B,EAAS54C,KAAK4jB,QAIZ5jB,KAAKwxI,WACPxxI,KAAKwxI,WAAW5wI,KAAKg4C,GAErB54C,KAAKwxI,WAAa,CAAC54F,EAEvB,CAMA6ryB,WAAAA,CAAY7ryB,GACV,IAAK54C,KAAKwxI,WACR,OAEF,MAAM5tI,EAAQ5D,KAAKwxI,WAAW9tI,QAAQk1C,IACvB,IAAXh1C,GACF5D,KAAKwxI,WAAW9xE,OAAO97D,EAAO,EAElC,CAEAgg+B,aAAAA,GACE,MAAM3oT,EAAa,IAAIC,gBAEjB/knB,EAAS3mB,IACbyroB,EAAW9knB,MAAM3mB,EAAI,EAOvB,OAJAxvC,KAAK+g+B,UAAU5q6B,GAEf8knB,EAAWI,OAAOopK,YAAc,IAAMzk1B,KAAKyk1B,YAAYtuxB,GAEhD8knB,EAAWI,MACpB,CAMA,aAAOv9oB,GACL,IAAI8iD,EAIJ,MAAO,CACLr7E,MAJY,IAAI8g+B,IAAY,SAAkBrk8B,GAC9C4+C,EAAS5+C,CACX,IAGE4+C,SAEJ,EAGF,YCtIA,MAAM4l5B,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZjzD,GAAI,IACJkzD,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjCpn+B,OAAO2qB,QAAQ248B,IAAgBjl+B,SAAQwU,IAAkB,IAAhB7U,EAAKkC,GAAM2S,EAClDyw9B,GAAepj+B,GAASlC,CAAG,IAG7B,YCxBA,MAAMqp+B,GAnBN,SAASC,EAAeC,GACtB,MAAMz77B,EAAU,IAAIs27B,GAAMmF,GACpB7p8B,EAAW7X,GAAKu88B,GAAMlk+B,UAAUyzD,QAAS7lB,GAa/C,OAVAwm7B,GAAM9u7B,OAAO9F,EAAU0k8B,GAAMlk+B,UAAW4tC,EAAS,CAACgk7B,YAAY,IAG9DwC,GAAM9u7B,OAAO9F,EAAUoO,EAAS,KAAM,CAACgk7B,YAAY,IAGnDpy7B,EAASt1B,OAAS,SAAgBi69B,GAChC,OAAOiF,EAAetM,GAAYuM,EAAelF,GACnD,EAEO3k8B,CACT,CAGc4p8B,CAAet53B,IAG7Bq53B,GAAMjF,MAAQA,GAGdiF,GAAMxO,cAAgBA,GACtBwO,GAAMlE,YAAcA,GACpBkE,GAAM1O,SAAWA,GACjB0O,GAAM/4I,QAAUA,GAChB+4I,GAAMxT,WAAaA,GAGnBwT,GAAMhV,WAAaA,GAGnBgV,GAAMG,OAASH,GAAMxO,cAGrBwO,GAAMj87B,IAAM,SAAa20gB,GACvB,OAAO7jb,QAAQ9wF,IAAI20gB,EACrB,EAEAsnb,GAAMI,OC9CS,SAAgBlk+B,GAC7B,OAAO,SAAcuqC,GACnB,OAAOvqC,EAAS4G,MAAM,KAAM2jC,EAC9B,CACF,ED6CAu57B,GAAMK,aE7DS,SAAsB9zT,GACnC,OAAO0+S,GAAMpllB,SAAS0mS,KAAsC,IAAzBA,EAAQ8zT,YAC7C,EF8DAL,GAAMrM,YAAcA,GAEpBqM,GAAMhQ,aAAeA,GAErBgQ,GAAMM,WAAal0lB,GAASqilB,GAAexD,GAAMpC,WAAWz8kB,GAAS,IAAIq9kB,SAASr9kB,GAASA,GAE3F4zlB,GAAMO,WAAazG,GAEnBkG,GAAM/D,eAAiBA,GAEvB+D,GAAMx29B,QAAUw29B,GAGhB,YG/EMQ,IAAsBhsX,EAAAA,EAAAA,oBAAmDj+mB,GAElEkq+B,GAAgEj19B,IAAmB,IAAlB,SAAE/Q,GAAU+Q,EACxF,MAAOk19B,EAAqBC,IAA0Bh/D,EAAAA,EAAAA,UAAiB,GAEjEi/D,EAAqBlykB,UACzB,IACE,MAAMm7Q,QAAoB28S,GAAeE,iBACnCz85B,QAAiB+16B,GAAMxh+B,IAAI6wF,0DAAyD,CACxFhlC,QAAS,CACP,eAAgB,mBAChBw26B,cAAc,UAADxg+B,OAAYwpqB,MAG7B82T,EAAuB126B,EAAS7X,KAAK0u7B,oBACvC,CAAE,MAAOjv9B,GACPggG,QAAQhgG,MAAM,uCAAwCA,EACxD,GAOF,OAJAwv5B,EAAAA,EAAAA,YAAU,KACRu/D,GAAoB,GACnB,KAGD3x9B,EAAAA,GAAAA,KAACux9B,GAAoBn/9B,SAAQ,CAACxI,MAAO,CAAE6n+B,sBAAqBE,sBAAqBnm+B,SAC9EA,GAC4B,EC6InC,GAtKesm+B,KACb,MAAMrtB,EAAkBE,KAClB3c,EAAWR,KAEXuqC,EAAY539B,EAAQ,OAGpB,oBAAEs39B,GDsBqBO,MAC7B,MAAMx87B,GAAU/iC,EAAAA,EAAAA,YAAW8+9B,IAC3B,IAAK/77B,EACH,MAAM,IAAIh9B,MAAM,8DAElB,OAAOg9B,CAAO,EC3BkBw87B,GAuBhC,OACEhy9B,EAAAA,GAAAA,KAACym8B,GAAM,CACLz78B,SAAS,WACTkd,GAAI,CACFrH,WAAY,2BACZzE,MAAO,QACP619B,eAAgB,YAChBhx8B,UAAW,oCACX1jB,OAAQ,OACR,6BAA8B,CAC5BA,OAAQ,QAEV,6BAA8B,CAC5BA,OAAQ,SAEV/R,UAEFwU,EAAAA,GAAAA,KAACky9B,GAAO,CACNt88B,QAAQ,QACR1N,GAAI,CACFX,UAAW,OACXhK,OAAQ,OACRC,QAAS,OACTyiB,WAAY,SACZD,eAAgB,SAChB7E,QAAS,EACT,6BAA8B,CAC5B5T,UAAW,QAEb,6BAA8B,CAC5BA,UAAW,QAEb,4BAA6B,CAC3BuY,cAAe,SACfG,WAAY,eAEdz0B,UAEFwU,EAAAA,GAAAA,KAAC448B,GAAG,CACF1w8B,GAAI,CACF8U,SAAU,OACV1f,MAAO,OACPE,QAAS,OACTwiB,eAAgB,gBAChBC,WAAY,SACZ9E,QAAS,UACT3vB,UAEFwU,EAAAA,GAAAA,KAAC448B,GAAG,CAAC1w8B,GAAI,CACP1K,QAAS,OACTyiB,WAAY,SACZF,SAAU,OACVpD,IAAK,OACLnxB,SACCi58B,IACC9k8B,EAAAA,GAAAA,MAAAwy9B,GAAAA,SAAA,CAAA3m+B,SAAA,EACEwU,EAAAA,GAAAA,KAAC448B,GAAG,CAAC1w8B,GAAI,CAAE1K,QAAS,OAAQyiB,WAAY,UAAWz0B,SAChDum+B,GACC/x9B,EAAAA,GAAAA,KAAA,OAAKmxF,IAAK4g4B,EAAWrpgB,IAAI,OAAO51c,MAAO,CAAEvV,OAAQ,YAEjDyC,EAAAA,GAAAA,KAACoy9B,GAAU,CAACx88B,QAAQ,KAAK1N,GAAI,CAAErS,WAAY,OAAQuG,MAAO,QAAS8I,cAAe,GAAI1Z,SAAC,WAkC3FmU,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CACb1K,QAAS,OACTyiB,WAAY,SACZF,SAAU,OACVjB,UAAW,CAAEhJ,GAAI,MAAOC,GAAI,IAC3BvqB,SAAA,EACDwU,EAAAA,GAAAA,KAAC448B,GAAG,CAAC1w8B,GAAI,CAAE1K,QAAS,OAAQyiB,WAAY,SAAUlB,YAAa,QAASvzB,UACpEmU,EAAAA,GAAAA,MAACkx8B,GAAM,CACL36pB,QAASA,IAAM8xoB,EAAS,kBAAkBx87B,SAAA,EAE1CwU,EAAAA,GAAAA,KAACu18B,GAAK,CACJlC,aAAcoe,EAAsB,EAAIA,EAAsB,KAC9Dr19B,MAAM,QACN8L,GAAI,CACF,oBAAqB,CACnBqV,gBAAiB,UACjBnhB,MAAO,QACPE,SAAU,UACV,6BAA8B,CAAEA,SAAU,WAC1C,6BAA8B,CAAEA,SAAU,YAE5C9Q,UAEFwU,EAAAA,GAAAA,KAACqy9B,GAAa,CAACnq9B,GAAI,CAAE9L,MAAO,QAASE,SAAU,SAAU,6BAA8B,CAAEA,SAAU,WAAa,6BAA8B,CAAEA,SAAU,gBAE5J0D,EAAAA,GAAAA,KAACoy9B,GAAU,CAAClq9B,GAAI,CAAE+W,WAAY,MAAO7iB,MAAO,QAASvG,WAAY,OAAQyG,SAAU,OAAQ,6BAA8B,CAAEA,SAAU,UAAY,6BAA8B,CAAEA,SAAU,WAAa9Q,SAAC,wBAK/MwU,EAAAA,GAAAA,KAAC428B,GAAO,CAAC79yB,YAAY,WAAWi9yB,UAAQ,EAAC9t8B,GAAI,CAAEiU,YAAa,yBAC5Dnc,EAAAA,GAAAA,KAACsy9B,GAAS,iBAOT,ECpKb,IAAez39B,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,kHACD,UCTG,SAAS839B,GAAsB329B,GACpC,OAAOC,EAAAA,GAAAA,IAAqB,YAAaD,EAC3C,EACsBE,EAAAA,GAAsBA,GAAC,YAAa,CAAC,OAAQ,eAAgB,WAAY,UAAW,SAAU,MAAO,aAA3H,MCDMC,GAAY,CAAC,YAAa,cAAe,aAAc,yBAA0B,oBAAqB,0BAC1GwZ,GAAa,CAAC,YAAa,QAAS,aACpChC,GAAa,CAAC,aAmBD,SAASi/8B,GAOxB9g+B,EAAM+0qB,GACJ,MAAM,UACF1sqB,EACAyj5B,YAAai1E,EAAkB,WAC/Bt29B,EAAU,uBACVg28B,EAAsB,kBACtBugB,EAAiB,uBACjBC,GACElsT,EACJmsT,GAAqBzz9B,EAAAA,GAAAA,GAA8BsnqB,EAAY1qqB,KAE7D8C,UAAWg09B,EAAa,MACxBrz9B,EAAQ,CACN,CAAC9N,QAAOpK,GACT,UACDg/B,EAAY,CACV,CAAC50B,QAAOpK,IAER6q9B,EACJjz8B,GAAQC,EAAAA,GAAAA,GAA8Bgz8B,EAAwB587B,IAC1Dio4B,EAAch+4B,EAAM9N,IAAS+g+B,EAI7Bxf,EAA0BC,GAAsB5s7B,EAAU50B,GAAOyK,GACjE229B,EAAkB3f,IAAe/z8B,EAAAA,GAAAA,GAAS,CAC5CrF,aACC649B,EAAoB,CACrBzgB,uBAAiC,SAATzg9B,EAAkBwN,OAAQ5X,EAClD4q9B,kBAAmBe,MAGnB1n9B,OACEsT,UAAWk09B,GACZ,YACDzgB,GACEwgB,EACJ/69B,GAAcoH,EAAAA,GAAAA,GAA8B2z9B,EAAgBvn+B,MAAOgoB,IAC/D/gB,GAAM00B,EAAAA,GAAAA,GAAWor7B,EAAwC,MAA3BW,OAAkC,EAASA,EAAwBzg9B,IAAKi0qB,EAAWj0qB,KACjHwg+B,EAAiBN,EAAoBA,EAAkB369B,GAAe,CAAC,EACvEk79B,GAAkB7z9B,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAY629B,GAC3CE,EAAyB,SAATxh+B,EAAkBqh+B,GAAiBF,EAAgBE,EACnExn+B,EAAQ6n9B,GAAiB51D,GAAap+4B,EAAAA,GAAAA,GAAS,CAAC,EAAY,SAAT1N,IAAoBmh+B,IAAkBrz9B,EAAM9N,IAASih+B,EAAiC,SAATjh+B,IAAoB8N,EAAM9N,IAASih+B,EAAwB569B,EAAam79B,GAAiB,CAC7Ntz9B,GAAIsz9B,GACH,CACD1g+B,QACEyg+B,GAIJ,OAHAvp+B,OAAOgkB,KAAKsl9B,GAAgBjr+B,SAAQuiB,WAC3B/e,EAAM+e,EAAS,IAEjB,CAACkz4B,EAAajy5B,EACvB,CC/EA,MAAMwQ,GAAY,CAAC,MAAO,WAAY,YAAa,YAAa,QAAS,YAAa,WAAY,QAAS,MAAO,SAAU,WAwBtHo39B,IAAal39B,EAAAA,GAAMA,IAAC,MAAO,CAC/BvK,KAAM,YACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAWyZ,SAAUzZ,EAAWi39B,cAAgB5h+B,EAAO4h+B,aAAa,GAPjFn39B,EAShBM,IAAA,IAAC,MACFrB,GACDqB,EAAA,MAAM,CACLvR,SAAU,WACVwS,QAAS,OACTyiB,WAAY,SACZD,eAAgB,SAChBlrB,WAAY,EACZwI,MAAO,GACPC,OAAQ,GACRiH,WAAYtJ,EAAM+C,WAAWuG,WAC7BlI,SAAUpB,EAAM+C,WAAWC,QAAQ,IACnCpI,WAAY,EACZ6iB,aAAc,MACd8G,SAAU,SACVpiB,WAAY,OACZ7B,SAAU,CAAC,CACTjQ,MAAO,CACLqqB,QAAS,WAEX9C,MAAO,CACL6F,cAAezd,EAAMmD,MAAQnD,GAAO4d,MAAMH,eAE3C,CACDptB,MAAO,CACLqqB,QAAS,UAEX9C,MAAO,CACL6F,aAAc,IAEf,CACDptB,MAAO,CACL6n+B,cAAc,GAEhBtg9B,OAAO1T,EAAAA,GAAAA,GAAS,CACdhD,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQuC,WAAWtG,SAC/CW,EAAMmD,KAAO,CACdkf,gBAAiBriB,EAAMmD,KAAKC,QAAQ+09B,OAAO3sB,YACzCtn8B,EAAAA,GAAAA,GAAS,CACXme,gBAAiBriB,EAAMoD,QAAQ6F,KAAK,MACnCjJ,EAAMwc,YAAY,OAAQ,CAC3B6F,gBAAiBriB,EAAMoD,QAAQ6F,KAAK,WAGzC,IACKmv9B,IAAYr39B,EAAAA,GAAMA,IAAC,MAAO,CAC9BvK,KAAM,YACNkK,KAAM,MACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAO8uR,KAH7BrkR,CAIf,CACDqB,MAAO,OACPC,OAAQ,OACR6jB,UAAW,SAEXmy8B,UAAW,QAEXn39B,MAAO,cAEPo39B,WAAY,MAERC,IAAiBx39B,EAAAA,GAAMA,IAACy39B,GAAQ,CACpChi+B,KAAM,YACNkK,KAAM,WACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAO+zB,UAHxBtpB,CAIpB,CACDqB,MAAO,MACPC,OAAQ,QAwCV,MAiJA,GAjJ4BtL,EAAAA,YAAiB,SAAgB2M,EAASpM,GACpE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,eAEF,IACFg3d,EACAl9d,SAAUmo+B,EAAY,UACtB559B,EAAS,UACT8E,EAAY,MAAK,MACjBW,EAAQ,CAAC,EAAC,UACV8mB,EAAY,CAAC,EAAC,SACdst8B,EAAQ,MACRjzkB,EAAK,IACLxvT,EAAG,OACH0i4B,EAAM,QACNj+8B,EAAU,YACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAC/C,IAAIvQ,EAAW,KAGf,MAAM+3gB,EA5DR,SAAkBvogB,GAKf,IALgB,YACjB8luB,EAAW,eACXgzP,EAAc,IACd3i4B,EAAG,OACH0i4B,GACD749B,EACC,MAAOuogB,EAAQ+yO,GAAarkvB,EAAAA,UAAe,GA8B3C,OA7BAA,EAAAA,WAAgB,KACd,IAAKk/F,IAAQ0i4B,EACX,OAEFv9O,GAAU,GACV,IAAI73uB,GAAS,EACb,MAAM8qQ,EAAQ,IAAI0W,MAmBlB,OAlBA1W,EAAMztN,OAAS,KACRr9C,GAGL63uB,EAAU,SAAS,EAErB/se,EAAMxtN,QAAU,KACTt9C,GAGL63uB,EAAU,QAAQ,EAEpB/se,EAAMu3d,YAAcA,EACpBv3d,EAAMuqtB,eAAiBA,EACvBvqtB,EAAMp4K,IAAMA,EACR0i4B,IACFtqtB,EAAMwqtB,OAASF,GAEV,KACLp19B,GAAS,CAAK,CACf,GACA,CAACqiuB,EAAagzP,EAAgB3i4B,EAAK0i4B,IAC/Btwd,CACT,CAuBiBywd,EAAU509B,EAAAA,GAAAA,GAAS,CAAC,EAAGw09B,EAAU,CAC9Czi4B,MACA0i4B,YAEII,EAAS9i4B,GAAO0i4B,EAChBK,EAAmBD,GAAqB,UAAX1wd,EAC7BpngB,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6n+B,cAAec,EACfr19B,YACA+W,YAEIrW,EAjKkBpD,KACxB,MAAM,QACJoD,EAAO,QACPqW,EAAO,aACPw98B,GACEj39B,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwqB,EAASw98B,GAAgB,gBACxC9ysB,IAAK,CAAC,OACN/6P,SAAU,CAAC,aAEb,OAAO9lB,EAAAA,GAAcA,GAACD,EAAO+y9B,GAAuBhz9B,EAAQ,EAsJ5CG,CAAkBvD,IAC3Bg49B,EAASC,GAAgB5B,GAAQ,MAAO,CAC7Cz49B,UAAWwF,EAAQ+gR,IACnBk9nB,YAAa81E,GACbnhB,uBAAwB,CACtB3y8B,QACA8mB,UAAW,CACTg6P,KAAKlhR,EAAAA,GAAAA,GAAS,CAAC,EAAGw09B,EAAUtt8B,EAAUg6P,OAG1C2xrB,gBAAiB,CACfvpf,MACAv3X,MACA0i4B,SACAlzkB,SAEFxkZ,eAgBF,OAbE3Q,EADE0o+B,GACsBl09B,EAAAA,GAAAA,KAAKm09B,GAAS/09B,EAAAA,GAAAA,GAAS,CAAC,EAAGg19B,IAGxCT,GAAiC,IAAjBA,EAChBA,EACFM,GAAUvrgB,EACRA,EAAI,IAES1od,EAAAA,GAAAA,KAAKyz9B,GAAgB,CAC3Ct39B,WAAYA,EACZpC,UAAWwF,EAAQgmB,YAGHvlB,EAAAA,GAAAA,KAAKmz9B,IAAY/z9B,EAAAA,GAAAA,GAAS,CAC5CQ,GAAIf,EACJ1C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,EAAO,CACR1T,SAAUA,IAEd,ICtNO,SAAS6o+B,GAA0Bz49B,GACxC,OAAOC,EAAAA,GAAAA,IAAqB,gBAAiBD,EAC/C,CACA,MACA,IAD0BE,EAAAA,GAAsBA,GAAC,gBAAiB,CAAC,OAAQ,WAAY,eAAgB,eAAgB,iBAAkB,aAAc,YAAa,eAAgB,eAAgB,YAAa,UAAW,YAAa,aAAc,cCDjPC,GAAY,CAAC,OAAQ,WAAY,YAAa,QAAS,WAAY,qBAAsB,QA0BzFu49B,IAAiBr49B,EAAAA,GAAMA,IAACm08B,GAAY,CACxC1+8B,KAAM,gBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAA2B,YAArB+Q,EAAWC,OAAuB5K,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWC,SAAWD,EAAWolD,MAAQ/vD,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAWolD,QAAU/vD,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAW1N,QAAS,GAPlMwN,EASpBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbgiB,UAAW,SACXzsB,KAAM,WACN2H,SAAUpB,EAAM+C,WAAWC,QAAQ,IACnCid,QAAS,EACTxC,aAAc,MACd8G,SAAU,UAEVrjB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOC,OAC5Cd,WAAYzC,EAAM0C,YAAY9L,OAAO,mBAAoB,CACvD+L,SAAU3C,EAAM0C,YAAYC,SAAS2K,aAErCrM,EAAW4w8B,eAAiB,CAC9B,UAAW,CACTxv7B,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO+19B,cAAa,OAAAnj+B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAM4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQE,OAAOC,OAAQvD,EAAMoD,QAAQE,OAAOyC,cAEvL,uBAAwB,CACtBsc,gBAAiB,iBAGA,UAApBphB,EAAWolD,MAAoB,CAChCtiC,WAAgC,UAApB9iB,EAAW1N,MAAoB,GAAK,IAC3B,QAApB0N,EAAWolD,MAAkB,CAC9BxiC,YAAiC,UAApB5iB,EAAW1N,MAAoB,GAAK,IACjD,IAAEuM,IAGE,IAHD,MACHE,EAAK,WACLiB,GACDnB,EACC,IAAIkC,EACJ,MAAMoB,EAAwD,OAA7CpB,GAAYhC,EAAMmD,MAAQnD,GAAOoD,cAAmB,EAASpB,EAASf,EAAWC,OAClG,OAAOgD,EAAAA,GAAAA,GAAS,CAAC,EAAwB,YAArBjD,EAAWC,OAAuB,CACpDA,MAAO,WACe,YAArBD,EAAWC,OAA4C,YAArBD,EAAWC,QAAuBgD,EAAAA,GAAAA,GAAS,CAC9EhD,MAAkB,MAAXkC,OAAkB,EAASA,EAAQC,OACxCpC,EAAW4w8B,eAAiB,CAC9B,WAAW3t8B,EAAAA,GAAAA,GAAS,CAAC,EAAGd,GAAW,CACjCif,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAWkN,EAAQsy8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAM4O,EAAAA,GAAAA,IAAMvR,EAAQC,KAAMrD,EAAMoD,QAAQE,OAAOyC,eACnJ,CAED,uBAAwB,CACtBsc,gBAAiB,mBAGC,UAApBphB,EAAW1N,MAAoB,CACjC0sB,QAAS,EACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KACd,UAApB/B,EAAW1N,MAAoB,CAChC0sB,QAAS,GACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KAClC,CACD,CAAC,KAAD9M,OAAMoj+B,GAAkB919B,WAAa,CACnC6e,gBAAiB,cACjBnhB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOE,WAE9C,IA4GJ,GArGgCzM,EAAAA,YAAiB,SAAoB2M,EAASpM,GAC5E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,mBAEF,KACF6vD,GAAO,EAAK,SACZ/1D,EAAQ,UACRuO,EAAS,MACTqC,EAAQ,UAAS,SACjBsC,GAAW,EAAK,mBAChBgz8B,GAAqB,EAAK,KAC1Bjj9B,EAAO,UACLlD,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCg2D,OACAnlD,QACAsC,WACAgz8B,qBACAjj9B,SAEI8Q,EA5GkBpD,KACxB,MAAM,QACJoD,EAAO,SACPb,EAAQ,MACRtC,EAAK,KACLmlD,EAAI,KACJ9yD,GACE0N,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQsT,GAAY,WAAsB,YAAVtC,GAAuB,QAAJhL,QAAYiL,EAAAA,GAAUA,GAACD,IAAUmlD,GAAQ,OAAJnwD,QAAWiL,EAAAA,GAAUA,GAACklD,IAAS,OAAFnwD,QAASiL,EAAAA,GAAUA,GAAC5N,MAElJ,OAAOgR,EAAAA,GAAcA,GAACD,EAAO609B,GAA2B909B,EAAQ,EAiGhDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKs09B,IAAgBl19B,EAAAA,GAAAA,GAAS,CAChDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B+y8B,cAAc,EACdG,aAAcyE,EACdhz8B,SAAUA,EACVlM,IAAKA,GACJ0M,EAAO,CACR/C,WAAYA,EACZ3Q,SAAUA,IAEd,+DC/He,SAASip+B,GAAmBrn+B,GAGvC,IAAIsn+B,EADN,OAAI9j9B,SAAS3e,EAAAA,QAAe,KAAO,IAEd,MAAX7E,GAAuD,OAAnCsn+B,EAAiBtn+B,EAAQ7B,YAAiB,EAASmp+B,EAAeli+B,MAAQ,MAIrF,MAAXpF,OAAkB,EAASA,EAAQoF,MAAQ,IACrD,gBCTA,MAAMmi+B,GAAqB,CAAC,QAAS,SAAU,WAAY,UAAW,SAAU,aAAc,kBAAmB,kBAAmB,oDAAoDtn+B,KAAK,KAwC7L,SAASun+B,GAAmBxp+B,GAC1B,MAAMyp+B,EAAkB,GAClBC,EAAkB,GAgBxB,OAfAzk+B,MAAM/G,KAAK8B,EAAKgF,iBAAiBuk+B,KAAqB5s+B,SAAQ,CAACoD,EAAM1C,KACnE,MAAMss+B,EA3CV,SAAqB5p+B,GACnB,MAAM6p+B,EAAepk9B,SAASzlB,EAAKoF,aAAa,aAAe,GAAI,IACnE,OAAKyhB,OAAOioB,MAAM+67B,GAYW,SAAzB7p+B,EAAKy95B,kBAAiD,UAAlBz95B,EAAKglK,UAA0C,UAAlBhlK,EAAKglK,UAA0C,YAAlBhlK,EAAKglK,WAA6D,OAAlChlK,EAAKoF,aAAa,YAC3I,EAEFpF,EAAK2i9B,SAdHknB,CAeX,CAyByBC,CAAY9p+B,IACX,IAAlB4p+B,GAXR,SAAyC5p+B,GACvC,QAAIA,EAAKuT,UAA6B,UAAjBvT,EAAKyhB,SAAqC,WAAdzhB,EAAKG,MAfxD,SAA4BH,GAC1B,GAAqB,UAAjBA,EAAKyhB,SAAqC,UAAdzhB,EAAKG,KACnC,OAAO,EAET,IAAKH,EAAKuG,KACR,OAAO,EAET,MAAMwj+B,EAAW7j+B,GAAYlG,EAAK8hB,cAAcha,cAAc,sBAAD7B,OAAuBC,IACpF,IAAI8j+B,EAASD,EAAS,UAAD9j+B,OAAWjG,EAAKuG,KAAI,eAIzC,OAHKyj+B,IACHA,EAASD,EAAS,UAAD9j+B,OAAWjG,EAAKuG,KAAI,QAEhCyj+B,IAAWhq+B,CACpB,CAE6Eiq+B,CAAmBjq+B,GAIhG,CAMgCkq+B,CAAgClq+B,KAGvC,IAAjB4p+B,EACFF,EAAgBzt+B,KAAK+D,GAErB2p+B,EAAgB1t+B,KAAK,CACnBku+B,cAAe7s+B,EACfql9B,SAAUinB,EACV5p+B,KAAMA,IAEV,IAEK2p+B,EAAgBh98B,MAAK,CAACjG,EAAG4H,IAAM5H,EAAEi87B,WAAar07B,EAAEq07B,SAAWj87B,EAAEyj9B,cAAgB778B,EAAE678B,cAAgBzj9B,EAAEi87B,SAAWr07B,EAAEq07B,WAAUh+8B,KAAI+hB,GAAKA,EAAE1mB,OAAMiG,OAAOyj+B,EACzJ,CACA,SAASU,KACP,OAAO,CACT,CAmQA,SA9PA,SAAmBhq+B,GACjB,MAAM,SACJC,EAAQ,iBACRgq+B,GAAmB,EAAK,oBACxBC,GAAsB,EAAK,oBAC3BC,GAAsB,EAAK,YAC3BC,EAAcf,GAAkB,UAChCtlM,EAAYimM,GAAgB,KAC5Bvw8B,GACEz5B,EACEqq+B,EAAyB3j+B,EAAAA,QAAa,GACtC4j+B,EAAgB5j+B,EAAAA,OAAa,MAC7B6j+B,EAAc7j+B,EAAAA,OAAa,MAC3B8j+B,EAAgB9j+B,EAAAA,OAAa,MAC7B+j+B,EAAwB/j+B,EAAAA,OAAa,MAGrCgk+B,EAAYhk+B,EAAAA,QAAa,GACzBik+B,EAAUjk+B,EAAAA,OAAa,MACvB498B,GAAY3o7B,EAAAA,GAAAA,GAAWut8B,GAAmBjp+B,GAAW0q+B,GACrDC,EAAclk+B,EAAAA,OAAa,MACjCA,EAAAA,WAAgB,KAET+yB,GAASkx8B,EAAQhj+B,UAGtB+i+B,EAAU/i+B,SAAWsi+B,EAAgB,GACpC,CAACA,EAAkBxw8B,IACtB/yB,EAAAA,WAAgB,KAEd,IAAK+yB,IAASkx8B,EAAQhj+B,QACpB,OAEF,MAAM8Z,GAAMC,EAAAA,GAAaA,GAACip9B,EAAQhj+B,SAYlC,OAXKgj+B,EAAQhj+B,QAAQ4wC,SAAS92B,EAAIkkJ,iBAC3Bgl0B,EAAQhj+B,QAAQwz6B,aAAa,aAIhCwvD,EAAQhj+B,QAAQ9K,aAAa,WAAY,MAEvC6t+B,EAAU/i+B,SACZgj+B,EAAQhj+B,QAAQoO,SAGb,KAEAo09B,IAKCK,EAAc7i+B,SAAW6i+B,EAAc7i+B,QAAQoO,QACjDs09B,EAAuB1i+B,SAAU,EACjC6i+B,EAAc7i+B,QAAQoO,SAExBy09B,EAAc7i+B,QAAU,KAC1B,CACD,GAIA,CAAC8xB,IACJ/yB,EAAAA,WAAgB,KAEd,IAAK+yB,IAASkx8B,EAAQhj+B,QACpB,OAEF,MAAM8Z,GAAMC,EAAAA,GAAaA,GAACip9B,EAAQhj+B,SAC5Bkj+B,EAAYnzE,IAChBkzE,EAAYjj+B,QAAU+v5B,GAClBwyE,GAAwBnmM,KAAmC,QAApB2zH,EAAYv75B,KAMnDslB,EAAIkkJ,gBAAkBgl0B,EAAQhj+B,SAAW+v5B,EAAYp02B,WAGvD+m7B,EAAuB1i+B,SAAU,EAC7B4i+B,EAAY5i+B,SACd4i+B,EAAY5i+B,QAAQoO,QAExB,EAEI+09B,EAAUA,KACd,MAAMC,EAAcJ,EAAQhj+B,QAI5B,GAAoB,OAAhBoj+B,EACF,OAEF,IAAKtp9B,EAAIup9B,aAAejnM,KAAesmM,EAAuB1i+B,QAE5D,YADA0i+B,EAAuB1i+B,SAAU,GAKnC,GAAIoj+B,EAAYxy7B,SAAS92B,EAAIkkJ,eAC3B,OAIF,GAAIuk0B,GAAuBzo9B,EAAIkkJ,gBAAkB2k0B,EAAc3i+B,SAAW8Z,EAAIkkJ,gBAAkB4k0B,EAAY5i+B,QAC1G,OAIF,GAAI8Z,EAAIkkJ,gBAAkB8k0B,EAAsB9i+B,QAC9C8i+B,EAAsB9i+B,QAAU,UAC3B,GAAsC,OAAlC8i+B,EAAsB9i+B,QAC/B,OAEF,IAAK+i+B,EAAU/i+B,QACb,OAEF,IAAIsj+B,EAAW,GAOf,GANIxp9B,EAAIkkJ,gBAAkB2k0B,EAAc3i+B,SAAW8Z,EAAIkkJ,gBAAkB4k0B,EAAY5i+B,UACnFsj+B,EAAWb,EAAYO,EAAQhj+B,UAK7Bsj+B,EAAS3v+B,OAAS,EAAG,CACvB,IAAI4v+B,EAAsBC,EAC1B,MAAMC,EAAah51B,SAAyD,OAA/C841B,EAAuBN,EAAYjj+B,cAAmB,EAASuj+B,EAAqB5n7B,WAA8G,SAA/C,OAAhD6n7B,EAAwBP,EAAYjj+B,cAAmB,EAASwj+B,EAAsBhv+B,MAChNkv+B,EAAYJ,EAAS,GACrBK,EAAgBL,EAASA,EAAS3v+B,OAAS,GACxB,kBAAd+v+B,GAAmD,kBAAlBC,IACtCF,EACFE,EAAcv19B,QAEds19B,EAAUt19B,QAIhB,MACEg19B,EAAYh19B,OACd,EAEF0L,EAAIE,iBAAiB,UAAWmp9B,GAChCrp9B,EAAIE,iBAAiB,UAAWkp9B,GAAW,GAQ3C,MAAMxp5B,EAAWg9d,aAAY,KACvB58hB,EAAIkkJ,eAA+C,SAA9BlkJ,EAAIkkJ,cAActkJ,SACzCyp9B,GACF,GACC,IACH,MAAO,KACLxsb,cAAcj9d,GACd5/D,EAAIy4B,oBAAoB,UAAW4w7B,GACnCrp9B,EAAIy4B,oBAAoB,UAAW2w7B,GAAW,EAAK,CACpD,GACA,CAACZ,EAAkBC,EAAqBC,EAAqBpmM,EAAWtqwB,EAAM2w8B,IACjF,MAWMmB,EAAsB5q9B,IACI,OAA1B6p9B,EAAc7i+B,UAChB6i+B,EAAc7i+B,QAAUgZ,EAAMg6B,eAEhC+v7B,EAAU/i+B,SAAU,CAAI,EAE1B,OAAoByM,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACxCzG,SAAU,EAAcwU,EAAAA,GAAAA,KAAK,MAAO,CAClC8t8B,SAAU9o7B,EAAO,GAAK,EACtB5X,QAAS0p9B,EACTtk+B,IAAKqj+B,EACL,cAAe,kBACA5j+B,EAAAA,aAAmBzG,EAAU,CAC5CgH,IAAKq98B,EACLzi8B,QAzBYlB,IACgB,OAA1B6p9B,EAAc7i+B,UAChB6i+B,EAAc7i+B,QAAUgZ,EAAMg6B,eAEhC+v7B,EAAU/i+B,SAAU,EACpB8i+B,EAAsB9i+B,QAAUgZ,EAAMQ,OACtC,MAAMqq9B,EAAuBvr+B,EAASD,MAAM6hB,QACxC2p9B,GACFA,EAAqB7q9B,EACvB,KAiBiBlM,EAAAA,GAAAA,KAAK,MAAO,CAC3B8t8B,SAAU9o7B,EAAO,GAAK,EACtB5X,QAAS0p9B,EACTtk+B,IAAKsj+B,EACL,cAAe,kBAGrB,4BCrLA,SAnE4B7j+B,EAAAA,YAAiB,SAAgB1G,EAAOyr+B,GAClE,MAAM,SACJxr+B,EAAQ,UACRvE,EAAS,cACTgw+B,GAAgB,GACd1r+B,GACG2r+B,EAAWC,GAAgBll+B,EAAAA,SAAe,MAC3C498B,GAAY3o7B,EAAAA,GAAAA,GAAyBj1B,EAAAA,eAAqBzG,GAAYip+B,GAAmBjp+B,GAAY,KAAMwr+B,GAejH,IAdA/v8B,EAAAA,GAAiBA,IAAC,KACXgw8B,GACHE,EA1BN,SAAsBlw+B,GACpB,MAA4B,oBAAdA,EAA2BA,IAAcA,CACzD,CAwBmBosyB,CAAapsyB,IAAciB,SAASgkF,KACnD,GACC,CAACjlF,EAAWgw+B,KACfhw8B,EAAAA,GAAiBA,IAAC,KAChB,GAAIiw8B,IAAcD,EAEhB,OADAzw8B,EAAAA,GAAMA,GAACww8B,EAAcE,GACd,MACL1w8B,EAAAA,GAAMA,GAACww8B,EAAc,KAAK,CAGd,GACf,CAACA,EAAcE,EAAWD,IACzBA,EAAe,CACjB,GAAkBhl+B,EAAAA,eAAqBzG,GAAW,CAChD,MAAM2jB,EAAW,CACf3c,IAAKq98B,GAEP,OAAoB598B,EAAAA,aAAmBzG,EAAU2jB,EACnD,CACA,OAAoBnP,EAAAA,GAAAA,KAAK/N,EAAAA,SAAgB,CACvCzG,SAAUA,GAEd,CACA,OAAoBwU,EAAAA,GAAAA,KAAK/N,EAAAA,SAAgB,CACvCzG,SAAU0r+B,EAAyBpqC,EAAAA,aAAsBth8B,EAAU0r+B,GAAaA,GAEpF,IC3DA,IACY,ECDL,IAAIE,GAAc,SAAqBjs+B,GAC5C,OAAOA,EAAKwizB,SACd,ECOW0pL,GAAY,YACZC,GAAS,SACTC,GAAW,WACXC,GAAU,UACVC,GAAU,UA6FjBC,GAA0B,SAAUzuB,GAGtC,SAASyuB,EAAWns+B,EAAOiqC,GACzB,IAAIjvC,EAEJA,EAAQ0i9B,EAAiB348B,KAAK9J,KAAM+E,EAAOiqC,IAAYhvC,KACvD,IAGImx+B,EADAruB,EAFc9z6B,MAEuB2z6B,WAAa598B,EAAMy5C,MAAQz5C,EAAM+98B,OAuB1E,OArBA/i9B,EAAMqx+B,aAAe,KAEjBrs+B,EAAMu7zB,GACJwiJ,GACFquB,EAAgBL,GAChB/w+B,EAAMqx+B,aAAeL,IAErBI,EAAgBH,GAIhBG,EADEps+B,EAAMss+B,eAAiBts+B,EAAMus+B,aACfT,GAEAC,GAIpB/w+B,EAAMqgC,MAAQ,CACZ60B,OAAQk86B,GAEVpx+B,EAAMwx+B,aAAe,KACdxx+B,CACT,CAhCA6i9B,GAAesuB,EAAYzuB,GAkC3ByuB,EAAWrn8B,yBAA2B,SAAkC9zB,EAAM2gwB,GAG5E,OAFa3gwB,EAAKuqzB,IAEJ5pD,EAAUzhtB,SAAW476B,GAC1B,CACL576B,OAAQ676B,IAIL,IACT,EAkBA,IAAI3v+B,EAAS+v+B,EAAW9v+B,UAkPxB,OAhPAD,EAAOos6B,kBAAoB,WACzBvt6B,KAAKwx+B,cAAa,EAAMxx+B,KAAKox+B,aAC/B,EAEAjw+B,EAAOkt6B,mBAAqB,SAA4BwK,GACtD,IAAI44D,EAAa,KAEjB,GAAI54D,IAAc746B,KAAK+E,MAAO,CAC5B,IAAIkwD,EAASj1D,KAAKogC,MAAM60B,OAEpBj1D,KAAK+E,MAAMu7zB,GACTrrwB,IAAW876B,IAAY976B,IAAW+76B,KACpCS,EAAaV,IAGX976B,IAAW876B,IAAY976B,IAAW+76B,KACpCS,EAAaR,GAGnB,CAEAjx+B,KAAKwx+B,cAAa,EAAOC,EAC3B,EAEAtw+B,EAAOkw6B,qBAAuB,WAC5Brx6B,KAAK0x+B,oBACP,EAEAvw+B,EAAOww+B,YAAc,WACnB,IACIlz7B,EAAMD,EAAOsk6B,EADb5l7B,EAAUl9B,KAAK+E,MAAMm4B,QAWzB,OATAuhB,EAAOD,EAAQsk6B,EAAS5l7B,EAET,MAAXA,GAAsC,kBAAZA,IAC5BuhB,EAAOvhB,EAAQuhB,KACfD,EAAQthB,EAAQshB,MAEhBsk6B,OAA4Bhi9B,IAAnBo8B,EAAQ4l7B,OAAuB5l7B,EAAQ4l7B,OAAStk6B,GAGpD,CACLC,KAAMA,EACND,MAAOA,EACPsk6B,OAAQA,EAEZ,EAEA3h9B,EAAOqw+B,aAAe,SAAsBI,EAAUH,GAKpD,QAJiB,IAAbG,IACFA,GAAW,GAGM,OAAfH,EAIF,GAFAzx+B,KAAK0x+B,qBAEDD,IAAeV,GAAU,CAC3B,GAAI/w+B,KAAK+E,MAAMss+B,eAAiBrx+B,KAAK+E,MAAMus+B,aAAc,CACvD,IAAI3s+B,EAAO3E,KAAK+E,MAAM8s+B,QAAU7x+B,KAAK+E,MAAM8s+B,QAAQnl+B,QAAU457B,EAAAA,YAAqBtm8B,MAI9E2E,GAAMis+B,GAAYjs+B,EACxB,CAEA3E,KAAK8x+B,aAAaF,EACpB,MACE5x+B,KAAK+x+B,mBAEE/x+B,KAAK+E,MAAMss+B,eAAiBrx+B,KAAKogC,MAAM60B,SAAW676B,IAC3D9w+B,KAAK+9rB,SAAS,CACZ9ooB,OAAQ476B,IAGd,EAEA1v+B,EAAO2w+B,aAAe,SAAsBF,GAC1C,IAAI1xlB,EAASlgZ,KAETw+C,EAAQx+C,KAAK+E,MAAMy5C,MACnBwz7B,EAAYhy+B,KAAKgvC,QAAUhvC,KAAKgvC,QAAQ2z6B,WAAaivB,EAErDp99B,EAAQxU,KAAK+E,MAAM8s+B,QAAU,CAACG,GAAa,CAAC1rC,EAAAA,YAAqBtm8B,MAAOgy+B,GACxEC,EAAYz99B,EAAM,GAClB099B,EAAiB199B,EAAM,GAEvB299B,EAAWny+B,KAAK2x+B,cAChBS,EAAeJ,EAAYG,EAASrvB,OAASqvB,EAAS3z7B,OAGrDoz7B,IAAapz7B,GAAS5pC,GACzB5U,KAAKqy+B,aAAa,CAChBp96B,OAAQ+76B,KACP,WACD9wlB,EAAOn7Y,MAAMut+B,UAAUL,EACzB,KAIFjy+B,KAAK+E,MAAMwt+B,QAAQN,EAAWC,GAC9Bly+B,KAAKqy+B,aAAa,CAChBp96B,OAAQ876B,KACP,WACD7wlB,EAAOn7Y,MAAMyt+B,WAAWP,EAAWC,GAEnChylB,EAAOuylB,gBAAgBL,GAAc,WACnClylB,EAAOmylB,aAAa,CAClBp96B,OAAQ+76B,KACP,WACD9wlB,EAAOn7Y,MAAMut+B,UAAUL,EAAWC,EACpC,GACF,GACF,IACF,EAEA/w+B,EAAO4w+B,YAAc,WACnB,IAAI7rY,EAASlmmB,KAETy+C,EAAOz+C,KAAK+E,MAAM05C,KAClB0z7B,EAAWny+B,KAAK2x+B,cAChBM,EAAYjy+B,KAAK+E,MAAM8s+B,aAAU/w+B,EAAYwl8B,EAAAA,YAAqBtm8B,MAEjEy+C,IAAQ7pC,IASb5U,KAAK+E,MAAM2t+B,OAAOT,GAClBjy+B,KAAKqy+B,aAAa,CAChBp96B,OAAQg86B,KACP,WACD/qY,EAAOnhmB,MAAM4t+B,UAAUV,GAEvB/rY,EAAOusY,gBAAgBN,EAAS1z7B,MAAM,WACpCynjB,EAAOmsY,aAAa,CAClBp96B,OAAQ676B,KACP,WACD5qY,EAAOnhmB,MAAM488B,SAASswB,EACxB,GACF,GACF,KArBEjy+B,KAAKqy+B,aAAa,CAChBp96B,OAAQ676B,KACP,WACD5qY,EAAOnhmB,MAAM488B,SAASswB,EACxB,GAkBJ,EAEA9w+B,EAAOuw+B,mBAAqB,WACA,OAAtB1x+B,KAAKux+B,eACPvx+B,KAAKux+B,aAAa3w5B,SAClB5gF,KAAKux+B,aAAe,KAExB,EAEApw+B,EAAOkx+B,aAAe,SAAsB58W,EAAWhvnB,GAIrDA,EAAWzG,KAAK4y+B,gBAAgBns+B,GAChCzG,KAAK+9rB,SAAStoE,EAAWhvnB,EAC3B,EAEAtF,EAAOyx+B,gBAAkB,SAAyBns+B,GAChD,IAAI+k1B,EAASxr1B,KAETiY,GAAS,EAcb,OAZAjY,KAAKux+B,aAAe,SAAU7r9B,GACxBzN,IACFA,GAAS,EACTuz0B,EAAO+lJ,aAAe,KACtB9q+B,EAASif,GAEb,EAEA1lB,KAAKux+B,aAAa3w5B,OAAS,WACzB3oE,GAAS,CACX,EAEOjY,KAAKux+B,YACd,EAEApw+B,EAAOsx+B,gBAAkB,SAAyBv18B,EAASozG,GACzDtwI,KAAK4y+B,gBAAgBti2B,GACrB,IAAI3rI,EAAO3E,KAAK+E,MAAM8s+B,QAAU7x+B,KAAK+E,MAAM8s+B,QAAQnl+B,QAAU457B,EAAAA,YAAqBtm8B,MAC9E6y+B,EAA0C,MAAX318B,IAAoBl9B,KAAK+E,MAAM+t+B,eAElE,GAAKnu+B,IAAQku+B,EAAb,CAKA,GAAI7y+B,KAAK+E,MAAM+t+B,eAAgB,CAC7B,IAAIhl9B,EAAQ9tB,KAAK+E,MAAM8s+B,QAAU,CAAC7x+B,KAAKux+B,cAAgB,CAAC5s+B,EAAM3E,KAAKux+B,cAC/DU,EAAYnk9B,EAAM,GAClBil9B,EAAoBjl9B,EAAM,GAE9B9tB,KAAK+E,MAAM+t+B,eAAeb,EAAWc,EACvC,CAEe,MAAX718B,GACFI,WAAWt9B,KAAKux+B,aAAcr08B,EAXhC,MAFEI,WAAWt9B,KAAKux+B,aAAc,EAelC,EAEApw+B,EAAOq+B,OAAS,WACd,IAAIy1B,EAASj1D,KAAKogC,MAAM60B,OAExB,GAAIA,IAAW476B,GACb,OAAO,KAGT,IAAI7tB,EAAchj9B,KAAK+E,MACnBC,EAAWg+8B,EAAYh+8B,SAgBvBgu+B,GAfMhwB,EAAY1iJ,GACF0iJ,EAAYsuB,aACXtuB,EAAYquB,cACnBruB,EAAYF,OACbE,EAAYxk6B,MACbwk6B,EAAYvk6B,KACTuk6B,EAAY9l7B,QACL8l7B,EAAY8vB,eACnB9vB,EAAYuvB,QACTvvB,EAAYwvB,WACbxvB,EAAYsvB,UACftvB,EAAY0vB,OACT1vB,EAAY2vB,UACb3vB,EAAYrB,SACbqB,EAAY6uB,SACVl59B,EAAAA,GAAAA,GAA8Bqq8B,EAAa,CAAC,WAAY,KAAM,eAAgB,gBAAiB,SAAU,QAAS,OAAQ,UAAW,iBAAkB,UAAW,aAAc,YAAa,SAAU,YAAa,WAAY,aAEjP,OAGEv38B,EAAAA,cAAoBy38B,GAAuBt38B,SAAU,CACnDxI,MAAO,MACc,oBAAb4B,EAA0BA,EAASiwD,EAAQ+96B,GAAcvn+B,EAAAA,aAAmBA,EAAAA,SAAeumB,KAAKhtB,GAAWgu+B,GAEzH,EAEO9B,CACT,CAlT8B,CAkT5Bzl+B,EAAAA,WA+LF,SAASijH,KAAQ,CA7LjBwi3B,GAAWzn8B,YAAcy56B,GACzBguB,GAAWt88B,UA0LP,CAAC,EAILs88B,GAAWr89B,aAAe,CACxByrzB,IAAI,EACJgxK,cAAc,EACdD,eAAe,EACfvuB,QAAQ,EACRtk6B,OAAO,EACPC,MAAM,EACN8z7B,QAAS7j3B,GACT8j3B,WAAY9j3B,GACZ4j3B,UAAW5j3B,GACXgk3B,OAAQhk3B,GACRik3B,UAAWjk3B,GACXiz1B,SAAUjz1B,IAEZwi3B,GAAWL,UAAYA,GACvBK,GAAWJ,OAASA,GACpBI,GAAWH,SAAWA,GACtBG,GAAWF,QAAUA,GACrBE,GAAWD,QAAUA,GACrB,2BC1mBe,SAASlyB,KACtB,MAAMrq8B,EAAQu+9B,GAAe3v9B,GAAAA,GAK7B,OAAO5O,EAAM2O,GAAAA,IAAa3O,CAC5B,CCbO,MAAMw+9B,GAASvu+B,GAAQA,EAAKwizB,UAC5B,SAASgsL,GAAmBpu+B,EAAOjF,GACxC,IAAIsz+B,EAAuBC,EAC3B,MAAM,QACJn28B,EAAO,OACPvb,EAAM,MACN2K,EAAQ,CAAC,GACPvnB,EACJ,MAAO,CACLsS,SAAgE,OAArD+79B,EAAwB9m9B,EAAM6k2B,oBAA8BiiH,EAA2C,kBAAZl28B,EAAuBA,EAAUA,EAAQp9B,EAAQgc,OAAS,EAChK6F,OAAoE,OAA3D0x9B,EAAwB/m9B,EAAMgn9B,0BAAoCD,EAA0C,kBAAX1x9B,EAAsBA,EAAO7hB,EAAQgc,MAAQ6F,EACvJoB,MAAOuJ,EAAMin9B,gBAEjB,CCTA,MAAMh+9B,GAAY,CAAC,iBAAkB,SAAU,WAAY,SAAU,KAAM,UAAW,YAAa,aAAc,SAAU,WAAY,YAAa,QAAS,UAAW,uBAUlKvK,GAAS,CACbwo+B,SAAU,CACRjk+B,QAAS,GAEXkk+B,QAAS,CACPlk+B,QAAS,IA0Lb,GAlL0B9D,EAAAA,YAAiB,SAAc1G,EAAOiH,GAC9D,MAAM0I,EAAQqq8B,KACR20B,EAAiB,CACrBl17B,MAAO9pC,EAAM0C,YAAYC,SAAS+K,eAClCq8B,KAAM/pC,EAAM0C,YAAYC,SAASgL,gBAE7B,eACFyw9B,EAAc,OACdhwB,GAAS,EAAI,SACb998B,EAAQ,OACR2c,EACA2+yB,GAAIijJ,EAAM,QACVgvB,EAAO,UACPD,EAAS,WACTE,EAAU,OACVE,EAAM,SACN/wB,EAAQ,UACRgxB,EAAS,MACTrm9B,EAAK,QACL4Q,EAAUw28B,EAAc,oBAExBC,EAAsBzC,IACpBns+B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAEzCs89B,EAAUpm+B,EAAAA,OAAa,MACvB498B,GAAY3o7B,EAAAA,GAAUA,GAACmx8B,EAAS5D,GAAmBjp+B,GAAWgH,GAC9D4n+B,EAA+Bnt+B,GAAYot+B,IAC/C,GAAIpt+B,EAAU,CACZ,MAAM9B,EAAOkt+B,EAAQnl+B,aAGI5L,IAArB+y+B,EACFpt+B,EAAS9B,GAET8B,EAAS9B,EAAMkv+B,EAEnB,GAEIC,EAAiBF,EAA6BpB,GAC9CxnD,EAAc4oD,GAA6B,CAACjv+B,EAAMov+B,KACtDb,GAAOvu+B,GAEP,MAAMqv+B,EAAkBb,GAAmB,CACzC7m9B,QACA4Q,UACAvb,UACC,CACD7F,KAAM,UAERnX,EAAK2nB,MAAM2n9B,iBAAmBv/9B,EAAM0C,YAAY9L,OAAO,UAAW0o+B,GAClErv+B,EAAK2nB,MAAMnV,WAAazC,EAAM0C,YAAY9L,OAAO,UAAW0o+B,GACxDzB,GACFA,EAAQ5t+B,EAAMov+B,EAChB,IAEIG,EAAgBN,EAA6BtB,GAC7C6B,EAAgBP,EAA6BjB,GAC7CyB,EAAaR,GAA6Bjv+B,IAC9C,MAAMqv+B,EAAkBb,GAAmB,CACzC7m9B,QACA4Q,UACAvb,UACC,CACD7F,KAAM,SAERnX,EAAK2nB,MAAM2n9B,iBAAmBv/9B,EAAM0C,YAAY9L,OAAO,UAAW0o+B,GAClErv+B,EAAK2nB,MAAMnV,WAAazC,EAAM0C,YAAY9L,OAAO,UAAW0o+B,GACxDtB,GACFA,EAAO/t+B,EACT,IAEI+98B,EAAekxB,EAA6BjyB,GAOlD,OAAoBno8B,EAAAA,GAAAA,KAAKm69B,GAAqB/69B,EAAAA,GAAAA,GAAS,CACrDkq8B,OAAQA,EACRxiJ,GAAIijJ,EACJsuB,QAAkCA,EAClCU,QAASvnD,EACTsnD,UAAW4B,EACX1B,WAAYsB,EACZpB,OAAQ0B,EACRzyB,SAAUe,EACViwB,UAAWwB,EACXrB,eAhB2B1t+B,IACvB0t+B,GAEFA,EAAejB,EAAQnl+B,QAAStH,EAClC,EAaA83B,QAASA,GACRxkB,EAAO,CACR1T,SAAUA,CAACo7B,EAAO4y8B,IACIvn+B,EAAAA,aAAmBzG,GAAU4T,EAAAA,GAAAA,GAAS,CACxD0T,OAAO1T,EAAAA,GAAAA,GAAS,CACdrJ,QAAS,EACT4pB,WAAsB,WAAViH,GAAuBmj7B,OAAoBzi9B,EAAX,UAC3CkK,GAAOo1B,GAAQ9T,EAAOtnB,EAASD,MAAMunB,OACxCtgB,IAAKq98B,GACJ2pB,MAGT,IC/HO,SAASqB,GAAwBj/9B,GACtC,OAAOC,EAAAA,GAAAA,IAAqB,cAAeD,EAC7C,EACwBE,EAAAA,GAAsBA,GAAC,cAAe,CAAC,OAAQ,cAAvE,MCDMC,GAAY,CAAC,WAAY,YAAa,YAAa,aAAc,kBAAmB,YAAa,OAAQ,YAAa,QAAS,sBAAuB,sBAoBtJ++9B,IAAe7+9B,EAAAA,GAAMA,IAAC,MAAO,CACjCvK,KAAM,cACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAW+mR,WAAa1xR,EAAO0xR,UAAU,GAP7CjnR,EASlBjB,IAAA,IAAC,WACFmB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACbpU,SAAU,QACVwS,QAAS,OACTyiB,WAAY,SACZD,eAAgB,SAChBc,MAAO,EACPC,OAAQ,EACRF,IAAK,EACLG,KAAM,EACNzD,gBAAiB,qBACjBiv7B,wBAAyB,eACxBrw8B,EAAW+mR,WAAa,CACzB3lQ,gBAAiB,eACjB,IA2IF,GA1I8BtrB,EAAAA,YAAiB,SAAkB2M,EAASpM,GACxE,IAAIki9B,EAAiBn48B,EAAMi48B,EAC3B,MAAMjp9B,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,iBAEF,SACFlG,EAAQ,UACRuO,EAAS,UACT8E,EAAY,MAAK,WACjB1D,EAAa,CAAC,EAAC,gBACf058B,EAAkB,CAAC,EAAC,UACpB3xrB,GAAY,EAAK,KACjBl+P,EAAI,UACJsB,EAAY,CAAC,EAAC,MACd9mB,EAAQ,CAAC,EAAC,oBACV269B,EAAsBY,GAAI,mBAC1BpjH,GACEps3B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACAqkR,cAEI3jR,EA3DkBpD,KACxB,MAAM,QACJoD,EAAO,UACP2jR,GACE/mR,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ83R,GAAa,cAE9B,OAAOzjR,EAAAA,GAAcA,GAACD,EAAOq79B,GAAyBt79B,EAAQ,EAmD9CG,CAAkBvD,GAC5Bq58B,EAAsD,OAArCd,EAAkBpu7B,EAAUl7B,MAAgBsp9B,EAAkBG,EAAgBzp9B,KACrG,OAAoB4U,EAAAA,GAAAA,KAAKm69B,GAAqB/69B,EAAAA,GAAAA,GAAS,CACrD0nzB,GAAI9hyB,EACJtB,QAASi01B,GACRz42B,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAK869B,IAAc179B,EAAAA,GAAAA,GAAS,CACjD,eAAe,GACdo28B,EAAe,CAChB518B,GAAmF,OAA9ErD,EAAqC,OAA7Bi48B,EAAch18B,EAAMpU,MAAgBop9B,EAAcr58B,EAAWk68B,MAAgB948B,EAAOsC,EACjG9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,EAA4B,MAAjBy78B,OAAwB,EAASA,EAAcz78B,WACxFoC,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAA6B,MAAjBq58B,OAAwB,EAASA,EAAcr58B,YACpFoD,QAASA,EACT/M,IAAKA,EACLhH,SAAUA,OAGhB,yCCxFe,SAASwv+B,GAAiBhu9B,GAEvC,MAAMiu9B,EAAgBju9B,EAAI8rB,gBAAgB4zO,YAC1C,OAAOrjR,KAAKD,IAAIg9B,OAAO8vH,WAAa+k1B,EACtC,CCGO,SAASC,GAAW9t+B,EAASi4M,GAC9BA,EACFj4M,EAAQhF,aAAa,cAAe,QAEpCgF,EAAQ80C,gBAAgB,cAE5B,CACA,SAASi57B,GAAgB/t+B,GACvB,OAAOwjB,UAASsV,EAAAA,GAAWA,GAAC94B,GAAS22C,iBAAiB32C,GAAS2wB,aAAc,KAAO,CACtF,CAUA,SAASq98B,GAAmBn0+B,EAAWo0+B,EAAcC,EAAgBC,EAAmBl2xB,GACtF,MAAMh0K,EAAY,CAACgq8B,EAAcC,KAAmBC,GACpD,GAAGxz+B,QAAQuI,KAAKrJ,EAAUuE,UAAU4B,IAClC,MAAMou+B,GAAuD,IAAhCnq8B,EAAUnnC,QAAQkD,GACzCqu+B,GAbV,SAAwCru+B,GAItC,MACMsu+B,GAAqE,IADjD,CAAC,WAAY,SAAU,QAAS,OAAQ,MAAO,OAAQ,WAAY,UAAW,MAAO,WAAY,QAAS,OAAQ,SAAU,SACzGxx+B,QAAQkD,EAAQwf,SACvD+u9B,EAAoC,UAApBvu+B,EAAQwf,SAAwD,WAAjCxf,EAAQmD,aAAa,QAC1E,OAAOmr+B,GAAsBC,CAC/B,CAKmCC,CAA+Bxu+B,GAC1Dou+B,GAAwBC,GAC1BP,GAAW9t+B,EAASi4M,EACtB,GAEJ,CACA,SAASw2xB,GAAYv/3B,EAAOrvG,GAC1B,IAAIukB,GAAO,EAQX,OAPA8qF,EAAMs1L,MAAK,CAACp7Q,EAAMpsB,MACZ6C,EAASupB,KACXhF,EAAMpnB,GACC,KAIJonB,CACT,CACA,SAASsq9B,GAAgBv4E,EAAeh45B,GACtC,MAAMww+B,EAAe,GACf90+B,EAAYs85B,EAAct85B,UAChC,IAAKsE,EAAMyw+B,kBAAmB,CAC5B,GAnDJ,SAAuB/0+B,GACrB,MAAM+lB,GAAMC,EAAAA,GAAaA,GAAChmB,GAC1B,OAAI+lB,EAAIk/D,OAASjlF,GACRi/B,EAAAA,GAAWA,GAACj/B,GAAWivJ,WAAalpI,EAAI8rB,gBAAgB4zO,YAE1DzlR,EAAU053B,aAAe153B,EAAUwlR,YAC5C,CA6CQwvtB,CAAch1+B,GAAY,CAE5B,MAAMi1+B,EAAgBlB,IAAiB/t9B,EAAAA,GAAaA,GAAChmB,IACrD80+B,EAAa30+B,KAAK,CAChBwC,MAAO3C,EAAU6rB,MAAMiL,aACvBhwB,SAAU,gBACV2+G,GAAIzlH,IAGNA,EAAU6rB,MAAMiL,aAAe,GAAH3sB,OAAM+p+B,GAAgBl0+B,GAAai1+B,EAAa,MAG5E,MAAM/s+B,GAAgB8d,EAAAA,GAAaA,GAAChmB,GAAWmJ,iBAAiB,cAChE,GAAGrI,QAAQuI,KAAKnB,GAAe/B,IAC7B2u+B,EAAa30+B,KAAK,CAChBwC,MAAOwD,EAAQ0lB,MAAMiL,aACrBhwB,SAAU,gBACV2+G,GAAIt/G,IAENA,EAAQ0lB,MAAMiL,aAAe,GAAH3sB,OAAM+p+B,GAAgB/t+B,GAAW8u+B,EAAa,KAAI,GAEhF,CACA,IAAIC,EACJ,GAAIl1+B,EAAUiC,sBAAsBkz+B,iBAClCD,GAAkBlv9B,EAAAA,GAAaA,GAAChmB,GAAWilF,SACtC,CAGL,MAAM7gF,EAASpE,EAAUo1+B,cACnBC,GAAkBp28B,EAAAA,GAAWA,GAACj/B,GACpCk1+B,EAAkE,UAArC,MAAV9w+B,OAAiB,EAASA,EAAO8kK,WAA+E,WAAvDms0B,EAAgBv47B,iBAAiB14C,GAAQ+y7B,UAAyB/y7B,EAASpE,CACzJ,CAIA80+B,EAAa30+B,KAAK,CAChBwC,MAAOuy+B,EAAgBrp9B,MAAM2M,SAC7B1xB,SAAU,WACV2+G,GAAIyv3B,GACH,CACDvy+B,MAAOuy+B,EAAgBrp9B,MAAMyp9B,UAC7Bxu+B,SAAU,aACV2+G,GAAIyv3B,GACH,CACDvy+B,MAAOuy+B,EAAgBrp9B,MAAMsr6B,UAC7Brw7B,SAAU,aACV2+G,GAAIyv3B,IAENA,EAAgBrp9B,MAAM2M,SAAW,QACnC,CAcA,MAbgBizlB,KACdqpX,EAAah0+B,SAAQwU,IAIf,IAJgB,MACpB3S,EAAK,GACL8iH,EAAE,SACF3+G,GACDwO,EACK3S,EACF8iH,EAAG55F,MAAMqmB,YAAYprC,EAAUnE,GAE/B8iH,EAAG55F,MAAM4vB,eAAe30C,EAC1B,GACA,CAGN,CCrGA,MAAMyu+B,GAAiB,IDsHhB,MACLzp+B,WAAAA,GACEvM,KAAKi2+B,gBAAa,EAClBj2+B,KAAKk2+B,YAAS,EACdl2+B,KAAKk2+B,OAAS,GACdl2+B,KAAKi2+B,WAAa,EACpB,CACAvz8B,GAAAA,CAAIziB,EAAOxf,GACT,IAAI01+B,EAAan2+B,KAAKk2+B,OAAOxy+B,QAAQuc,GACrC,IAAoB,IAAhBk29B,EACF,OAAOA,EAETA,EAAan2+B,KAAKk2+B,OAAO71+B,OACzBL,KAAKk2+B,OAAOt1+B,KAAKqf,GAGbA,EAAMm29B,UACR1B,GAAWz09B,EAAMm29B,UAAU,GAE7B,MAAMC,EAnCV,SAA2B51+B,GACzB,MAAM41+B,EAAiB,GAMvB,MALA,GAAG90+B,QAAQuI,KAAKrJ,EAAUuE,UAAU4B,IACU,SAAxCA,EAAQmD,aAAa,gBACvBss+B,EAAez1+B,KAAKgG,EACtB,IAEKyv+B,CACT,CA2B2BC,CAAkB71+B,GACzCm0+B,GAAmBn0+B,EAAWwf,EAAMs29B,MAAOt29B,EAAMm29B,SAAUC,GAAgB,GAC3E,MAAMG,EAAiBnB,GAAYr1+B,KAAKi2+B,YAAYjm9B,GAAQA,EAAKvvB,YAAcA,IAC/E,OAAwB,IAApB+1+B,GACFx2+B,KAAKi2+B,WAAWO,GAAgBN,OAAOt1+B,KAAKqf,GACrCk29B,IAETn2+B,KAAKi2+B,WAAWr1+B,KAAK,CACnBs1+B,OAAQ,CAACj29B,GACTxf,YACAyrnB,QAAS,KACTmqX,mBAEKF,EACT,CACAI,KAAAA,CAAMt29B,EAAOlb,GACX,MAAMyx+B,EAAiBnB,GAAYr1+B,KAAKi2+B,YAAYjm9B,IAAwC,IAAhCA,EAAKkm9B,OAAOxy+B,QAAQuc,KAC1E884B,EAAgB/85B,KAAKi2+B,WAAWO,GACjCz5E,EAAc7wS,UACjB6wS,EAAc7wS,QAAUopX,GAAgBv4E,EAAeh45B,GAE3D,CACAoyC,MAAAA,CAAOl3B,GAA+B,IAAxBw29B,IAAezp+B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GAC3B,MAAMmp+B,EAAan2+B,KAAKk2+B,OAAOxy+B,QAAQuc,GACvC,IAAoB,IAAhBk29B,EACF,OAAOA,EAET,MAAMK,EAAiBnB,GAAYr1+B,KAAKi2+B,YAAYjm9B,IAAwC,IAAhCA,EAAKkm9B,OAAOxy+B,QAAQuc,KAC1E884B,EAAgB/85B,KAAKi2+B,WAAWO,GAKtC,GAJAz5E,EAAcm5E,OAAOx26B,OAAOq91B,EAAcm5E,OAAOxy+B,QAAQuc,GAAQ,GACjEjgB,KAAKk2+B,OAAOx26B,OAAOy26B,EAAY,GAGK,IAAhCp5E,EAAcm5E,OAAO71+B,OAEnB085B,EAAc7wS,SAChB6wS,EAAc7wS,UAEZjsmB,EAAMm29B,UAER1B,GAAWz09B,EAAMm29B,SAAUK,GAE7B7B,GAAmB73E,EAAct85B,UAAWwf,EAAMs29B,MAAOt29B,EAAMm29B,SAAUr5E,EAAcs5E,gBAAgB,GACvGr2+B,KAAKi2+B,WAAWv26B,OAAO826B,EAAgB,OAClC,CAEL,MAAME,EAAU35E,EAAcm5E,OAAOn5E,EAAcm5E,OAAO71+B,OAAS,GAI/Dq2+B,EAAQN,UACV1B,GAAWgC,EAAQN,UAAU,EAEjC,CACA,OAAOD,CACT,CACAQ,UAAAA,CAAW129B,GACT,OAAOjgB,KAAKk2+B,OAAO71+B,OAAS,GAAKL,KAAKk2+B,OAAOl2+B,KAAKk2+B,OAAO71+B,OAAS,KAAO4f,CAC3E,GCjBF,SAvKA,SAAkBggqB,GAChB,MAAM,UACJx/qB,EAAS,qBACTm2+B,GAAuB,EAAK,kBAC5BpB,GAAoB,EAAK,QAEzBqB,EAAUb,GAAc,qBACxBc,GAAuB,EAAK,kBAC5BC,EAAiB,mBACjBC,EAAkB,SAClBhy+B,EAAQ,QACRiy+B,EAAO,KACPz48B,EAAI,QACJkx8B,GACEzvT,EAGEhgqB,EAAQxU,EAAAA,OAAa,CAAC,GACtByr+B,EAAezr+B,EAAAA,OAAa,MAC5B2q+B,EAAW3q+B,EAAAA,OAAa,MACxB498B,GAAY3o7B,EAAAA,GAAAA,GAAW018B,EAAU1G,IAChCxoP,EAAQiwP,GAAa1r+B,EAAAA,UAAgB+yB,GACtCi3Q,EAvCR,SAA0BzwS,GACxB,QAAOA,GAAWA,EAASD,MAAM2W,eAAe,KAClD,CAqCwB079B,CAAiBpy+B,GACvC,IAAIqy+B,GAAiB,EACa,UAA9Bp3T,EAAW,iBAA4D,IAA9BA,EAAW,iBACtDo3T,GAAiB,GAEnB,MACMC,EAAWA,KACfr39B,EAAMvT,QAAQ0p+B,SAAWA,EAAS1p+B,QAClCuT,EAAMvT,QAAQ6p+B,MAAQW,EAAaxq+B,QAC5BuT,EAAMvT,SAET6q+B,EAAgBA,KACpBV,EAAQN,MAAMe,IAAY,CACxB9B,sBAIEY,EAAS1p+B,UACX0p+B,EAAS1p+B,QAAQy6yB,UAAY,EAC/B,EAEIqwL,GAAahvB,EAAAA,GAAAA,IAAiB,KAClC,MAAMivB,EAhEV,SAAsBh3+B,GACpB,MAA4B,oBAAdA,EAA2BA,IAAcA,CACzD,CA8D8BosyB,CAAapsyB,KAjBpBgmB,EAAAA,GAAaA,GAACyw9B,EAAaxq+B,SAiBgBg5E,KAC9Dmx5B,EAAQn08B,IAAI408B,IAAYG,GAGpBrB,EAAS1p+B,SACX6q+B,GACF,IAEIZ,EAAalr+B,EAAAA,aAAkB,IAAMor+B,EAAQF,WAAWW,MAAa,CAACT,IACtEa,GAAkBlvB,EAAAA,GAAAA,IAAiB7j9B,IACvCuy+B,EAAaxq+B,QAAU/H,EAClBA,IAGD65B,GAAQm48B,IACVY,IACSnB,EAAS1p+B,SAClBgo+B,GAAW0B,EAAS1p+B,QAAS2q+B,GAC/B,IAEIM,EAAcls+B,EAAAA,aAAkB,KACpCor+B,EAAQ1/7B,OAAOmg8B,IAAYD,EAAe,GACzC,CAACA,EAAgBR,IACpBpr+B,EAAAA,WAAgB,IACP,KACLks+B,GAAa,GAEd,CAACA,IACJls+B,EAAAA,WAAgB,KACV+yB,EACFg58B,IACU/hsB,GAAkBqhsB,GAC5Ba,GACF,GACC,CAACn58B,EAAMm58B,EAAalisB,EAAeqhsB,EAAsBU,IAC5D,MAAMI,EAAsBC,GAAiBny9B,IAC3C,IAAIoy9B,EACiD,OAApDA,EAAwBD,EAAc/wB,YAAsBgxB,EAAsBhu+B,KAAK+t+B,EAAeny9B,GAQrF,WAAdA,EAAMxkB,KAAoC,MAAhBwkB,EAAMklJ,OAEnC+r0B,MAGIC,IAEHlx9B,EAAM+4P,kBACFw4tB,GACFA,EAAQvx9B,EAAO,kBAEnB,EAEIqy9B,EAA4BF,GAAiBny9B,IACjD,IAAIsy9B,EAC+C,OAAlDA,EAAwBH,EAAcnorB,UAAoBsorB,EAAsBlu+B,KAAK+t+B,EAAeny9B,GACjGA,EAAMQ,SAAWR,EAAM49L,eAGvB2zxB,GACFA,EAAQvx9B,EAAO,gBACjB,EA8CF,MAAO,CACLuy9B,aA7CmB,WAAwB,IAAvBJ,EAAa7q+B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrC,MAAMkr+B,EAAqBlsB,GAAqB/rS,UAGzCi4T,EAAmBnB,yBACnBmB,EAAmBlB,mBAC1B,MAAMmB,GAAwBv/9B,EAAAA,GAAAA,GAAS,CAAC,EAAGs/9B,EAAoBL,GAC/D,OAAOj/9B,EAAAA,GAAAA,GAAS,CACdW,KAAM,gBACL4+9B,EAAuB,CACxBrxB,UAAW8wB,EAAoBO,GAC/Bns+B,IAAKq98B,GAET,EAiCE+uB,iBAhCuB,WACvB,MAAMD,EAD+Bnr+B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEzC,OAAO4L,EAAAA,GAAAA,GAAS,CACd,eAAe,GACdu/9B,EAAuB,CACxBzorB,QAASqorB,EAA0BI,GACnC358B,QAEJ,EAyBE208B,mBAxByBA,KAgBlB,CACLZ,SAAS118B,EAAAA,GAAqBA,IAhBZmu5B,KAClBmsD,GAAU,GACNJ,GACFA,GACF,GAYwD,MAAZ/x+B,OAAmB,EAASA,EAASD,MAAMwt+B,SACvF5wB,UAAU9k7B,EAAAA,GAAqBA,IAXZ6l7B,KACnBy0B,GAAU,GACNH,GACFA,IAEEF,GACFa,GACF,GAI0D,MAAZ3y+B,OAAmB,EAASA,EAASD,MAAM488B,YAO3F+tB,QAASrmB,EACTgvB,UAAWX,EACXf,aACAzvP,SACAzxc,gBAEJ,EC/LO,SAAS6isB,GAAqBlj+B,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,EACqBE,EAAAA,GAAsBA,GAAC,WAAY,CAAC,OAAQ,SAAU,aAA3E,MCDMC,GAAY,CAAC,oBAAqB,gBAAiB,UAAW,YAAa,uBAAwB,WAAY,YAAa,YAAa,aAAc,kBAAmB,mBAAoB,sBAAuB,uBAAwB,gBAAiB,sBAAuB,oBAAqB,eAAgB,cAAe,kBAAmB,UAAW,oBAAqB,qBAAsB,OAAQ,YAAa,QAAS,SA6Bhbgj+B,IAAY9i+B,EAAAA,GAAMA,IAAC,MAAO,CAC9BvK,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,MAAO+Q,EAAW6oB,MAAQ7oB,EAAWuxuB,QAAUl8uB,EAAO67Z,OAAO,GAP9DpxZ,EASfqY,IAAA,IAAC,MACFpZ,EAAK,WACLiB,GACDmY,EAAA,OAAKlV,EAAAA,GAAAA,GAAS,CACbpU,SAAU,QACVqL,QAAS6E,EAAMmD,MAAQnD,GAAO7E,OAAOoQ,MACrCqa,MAAO,EACPC,OAAQ,EACRF,IAAK,EACLG,KAAM,IACJ7kB,EAAW6oB,MAAQ7oB,EAAWuxuB,QAAU,CAC1C/ttB,WAAY,UACZ,IACIq/8B,IAAgB/i+B,EAAAA,GAAMA,IAACgj+B,GAAU,CACrCvt+B,KAAM,WACNkK,KAAM,WACNM,kBAAmBA,CAAC3Q,EAAOiG,IAClBA,EAAO656B,UAJIpv6B,CAMnB,CACD5F,QAAS,IAgBL6o+B,GAAqBjt+B,EAAAA,YAAiB,SAAe2M,EAASpM,GAClE,IAAI+J,EAAMi48B,EAAax58B,EAAOmk+B,EAAiBzqB,EAAiB0qB,EAChE,MAAM7z+B,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BrJ,KAAM,WACNnG,MAAOqT,KAEH,kBACFyg+B,EAAoBL,GAAa,cACjCM,EAAa,UACbvl+B,EAAS,qBACTuj+B,GAAuB,EAAK,SAC5B9x+B,EAAQ,UACRvE,EAAS,UACT4X,EAAS,WACT1D,EAAa,CAAC,EAAC,gBACf058B,EAAkB,CAAC,EAAC,iBACpB2gB,GAAmB,EAAK,oBACxBC,GAAsB,EAAK,qBAC3B2H,GAAuB,EAAK,cAC5BnG,GAAgB,EAAK,oBACrBvB,GAAsB,EAAK,kBAC3BsG,GAAoB,EAAK,aACzBuD,GAAe,EAAK,YACpBC,GAAc,EAAK,gBACnBC,EAAe,KACfz68B,EAAI,UACJsB,EAAS,MACT9mB,GAEEjU,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC2j+B,GAAoBtg+B,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAC5C+x+B,uBACA9H,mBACAC,sBACA2H,uBACAnG,gBACAvB,sBACAsG,oBACAuD,eACAC,iBAEI,aACJf,EAAY,iBACZG,EAAgB,mBAChBjF,EAAkB,UAClBkF,EAAS,WACT1B,EAAU,OACVzvP,EAAM,cACNzxc,GACE0jsB,IAASvg+B,EAAAA,GAAAA,GAAS,CAAC,EAAGsg+B,EAAmB,CAC3CxJ,QAAS1j+B,KAEL2J,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAGsg+B,EAAmB,CACjDhyP,WAEInuuB,EAjHkBpD,KACxB,MAAM,KACJ6oB,EAAI,OACJ0otB,EAAM,QACNnuuB,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QAAS45B,GAAQ0otB,GAAU,UAClC29L,SAAU,CAAC,aAEb,OAAO5r6B,EAAAA,GAAcA,GAACD,EAAOs/9B,GAAsBv/9B,EAAQ,EAuG3CG,CAAkBvD,GAC5Bq99B,EAAa,CAAC,EAMpB,QALgCly+B,IAA5BkE,EAASD,MAAMui9B,WACjB0rB,EAAW1rB,SAAW,MAIpB7xqB,EAAe,CACjB,MAAM,QACJ88rB,EAAO,SACP5wB,GACEwxB,IACJH,EAAWT,QAAUA,EACrBS,EAAWrxB,SAAWA,CACxB,CACA,MAAMiN,EAAmH,OAAvG748B,EAA8D,OAAtDi48B,EAAuB,MAATh18B,OAAgB,EAASA,EAAMpU,MAAgBop9B,EAAcr58B,EAAWk68B,MAAgB948B,EAAOwi+B,GACjIa,EAAwI,OAAxH5k+B,EAAuE,OAA9Dmk+B,EAA2B,MAAT3/9B,OAAgB,EAASA,EAAM6r6B,UAAoB8zD,EAAkBhk+B,EAAW8j+B,UAAoBjk+B,EAAQqk+B,EACvJ7pB,EAAmF,OAAlEd,EAA+B,MAAbpu7B,OAAoB,EAASA,EAAUl7B,MAAgBsp9B,EAAkBG,EAAgBzp9B,KAC5Hy0+B,EAA+F,OAA1ET,EAAmC,MAAb948B,OAAoB,EAASA,EAAU+k5B,UAAoB+zD,EAAsBvqB,EAAgBxpC,SAC5IqqC,EAAYC,GAAa,CAC7Bn4D,YAAa43D,EACblD,kBAAmBsD,EACnBrD,uBAAwBjz8B,EACxB8y8B,aAAcysB,EACdxsB,gBAAiB,CACfz/8B,MACAoN,GAAIf,GAEN1C,aACApC,WAAW8F,EAAAA,GAAIA,GAAC9F,EAA4B,MAAjBy78B,OAAwB,EAASA,EAAcz78B,UAAsB,MAAXwF,OAAkB,EAASA,EAAQnU,MAAO+Q,EAAW6oB,MAAQ7oB,EAAWuxuB,SAAsB,MAAXnuuB,OAAkB,EAASA,EAAQ8tZ,WAEvMyykB,EAAgBnqB,GAAa,CACjCn4D,YAAaoiF,EACb1tB,kBAAmB2tB,EACnB5tB,gBAAiBqtB,EACjBttB,aAAcqsB,GACLO,GAAiBx/9B,EAAAA,GAAAA,GAAS,CAAC,EAAGi/9B,EAAe,CAClDnorB,QAASntT,IACH02+B,GACFA,EAAgB12+B,GAEG,MAAjBs1+B,GAAyBA,EAAcnorB,SACzCmorB,EAAcnorB,QAAQntT,EACxB,KAINgR,WAAW8F,EAAAA,GAAIA,GAAsB,MAArBgg+B,OAA4B,EAASA,EAAkB9l+B,UAA4B,MAAjBul+B,OAAwB,EAASA,EAAcvl+B,UAAsB,MAAXwF,OAAkB,EAASA,EAAQ8r6B,UAC/Klv6B,eAEF,OAAKqj+B,GAAgBx68B,GAAUi3Q,IAAiByxc,GAG5B1tuB,EAAAA,GAAAA,KAAKmyB,GAAQ,CAC/B3/B,IAAKqs+B,EACL53+B,UAAWA,EACXgw+B,cAAeA,EACfzr+B,UAAuBmU,EAAAA,GAAAA,MAAMy18B,GAAUh28B,EAAAA,GAAAA,GAAS,CAAC,EAAGs28B,EAAW,CAC7Dlq9B,SAAU,EAAE+z+B,GAAgBF,GAAiCr/9B,EAAAA,GAAAA,KAAK4/9B,GAAcxg+B,EAAAA,GAAAA,GAAS,CAAC,EAAG0g+B,IAAkB,MAAmB9/9B,EAAAA,GAAAA,KAAK+/9B,GAAW,CAChJtK,oBAAqBA,EACrBD,iBAAkBA,EAClBE,oBAAqBA,EACrBpmM,UAAW6tM,EACXn48B,KAAMA,EACNx5B,SAAuByG,EAAAA,aAAmBzG,EAAUgu+B,WAbjD,IAiBX,IAsLA,qBC5WA,MAAM/96B,GAAS,YAWA,SAASuk7B,GAAYzj+B,GAAmG,IAAlG,YAAE0j+B,EAAW,KAAEvu+B,EAAI,YAAE++G,EAAW,OAAEyv3B,EAAM,OAAEC,EAAM,mBAAEC,EAAkB,KAAErg+B,GAAyBxD,EAGlI,MAAOyoB,EAAMq78B,GAAWpu+B,EAAAA,UAAe,GAGjCks+B,EAAcA,IAAMkC,GAAQ,GAC5Br4C,EAAWR,KAOjB,OACE7n7B,EAAAA,GAAAA,MAACi58B,GAAG,CACF1w8B,GAAI,CACF5K,MAAO,OACPC,OAAQ,SACR/R,SAAA,EAEFmU,EAAAA,GAAAA,MAACi58B,GAAG,CACF/58B,UAAU,UACVqJ,GAAI,CACFld,SAAU,WACVuS,OAAQ,QACRD,MAAO,OACPigB,gBAAiB,OACjB0D,UAAW,iCACXnF,OAAQ,oBACRnD,aAAc,OACdwC,QAAS,OACT3d,QAAS,OACTsiB,cAAe,SACfniB,WAAY,gBACZ8hB,SAAU,SACV,UAAW,CACTxG,UAAW,mBACXgI,UAAW,gCACX9E,YAAa,YAEf3wB,SAAA,EAGFmU,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CACP1K,QAAS,OACTwiB,eAAgB,gBAChBC,WAAY,aACZvB,GAAI,EACJphB,MAAO,OACP8f,SAAU,GACV5xB,SAAA,EAEAmU,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CACP1K,QAAS,OACTyiB,WAAY,SACZtrB,KAAM,EACNyoB,SAAU,EACVqB,GAAI,GACJjzB,SAAA,EACAwU,EAAAA,GAAAA,KAACqz9B,GAAM,CACLnr9B,GAAI,CACFoV,QAAS,UACTlhB,MAAO,UACPkB,MAAO,CAAEwY,GAAI,GAAIC,GAAI,IACrBxY,OAAQ,CAAEuY,GAAI,GAAIC,GAAI,IACtB0I,GAAI,EACJ3pB,WAAY,GACZtJ,UAEFwU,EAAAA,GAAAA,KAACsg+B,GAASA,EAAI,CAACp49B,GAAI,CAAE5L,SAAU,CAAEwZ,GAAI,GAAIC,GAAI,UAE/CpW,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CACPkV,SAAU,EACVzoB,KAAM,GACNnJ,SAAA,EACAwU,EAAAA,GAAAA,KAACoy9B,GAAU,CACTlq9B,GAAI,CACF5L,SAAU,CAAEwZ,GAAI,SAAUC,GAAI,QAC9BlgB,WAAY,MACZuG,MAAO,UACPtG,WAAY,IACZ8pB,WAAY,SACZH,SAAU,SACVC,aAAc,YACdl0B,SAEDkG,KAEHsO,EAAAA,GAAAA,KAACoy9B,GAAU,CACTlq9B,GAAI,CACF5L,SAAU,CAAEwZ,GAAI,SAAUC,GAAI,WAC9B3Z,MAAO,OACPoiB,GAAI,GACJoB,WAAY,SACZH,SAAU,SACVC,aAAc,YACdl0B,SAEDy0+B,WAMPtg+B,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CACP1K,QAAS,OACTyiB,WAAY,SACZtD,IAAK,GACL7nB,WAAY,GACZtJ,SAAA,CACCiwD,KACCz7C,EAAAA,GAAAA,KAAC448B,GAAG,CACF1w8B,GAAI,CACFoV,QAAS,UACTlhB,MAAO,UACPwhB,GAAI,CAAE9H,GAAI,EAAGC,GAAI,KACjB8H,GAAI,IACJvhB,SAAU,CAAEwZ,GAAI,UAAWC,GAAI,UAC/BlgB,WAAY,MACZ8iB,aAAc,OACdzT,cAAe,QACf0a,WAAY,SACZ5C,SAAU,CAAElH,GAAI,OAAQC,GAAI,QAC5B0J,SAAU,SACVC,aAAc,YACdl0B,SAEDiwD,MAGLz7C,EAAAA,GAAAA,KAACug+B,GAAU,CACT9x+B,KAAK,QACLyZ,GAAI,CACF9L,MAAO,OACP+e,QAAS,CAAErF,GAAI,GAAKC,GAAI,IACxBvqB,UAEFwU,EAAAA,GAAAA,KAACwg+B,GAAQA,EAAI,CAACt49B,GAAI,CAAE5L,SAAU,CAAEwZ,GAAI,GAAIC,GAAI,gBAMlDpW,EAAAA,GAAAA,MAACi58B,GAAG,CACF1w8B,GAAI,CACFvT,KAAM,EACN8qB,SAAU,SACVf,GAAI,EACJrB,UAAW,uBACX7xB,SAAA,EAEFwU,EAAAA,GAAAA,KAACoy9B,GAAU,CACTlq9B,GAAI,CACF5L,SAAU,CAAEwZ,GAAI,SAAUC,GAAI,YAC9B3Z,MAAO,OACPtG,WAAY,IACZ0H,QAAS,cACTjH,gBAAiB,EACjBkq+B,gBAAiB,WACjBhh9B,SAAU,SACVC,aAAc,YACdl0B,SAEDilH,EAAY5pH,OAAS,GAAE,GAAAuK,OAAMq/G,EAAYz/F,UAAU,EAAG,KAAI,OAAQy/F,IAEpEA,EAAY5pH,OAAS,KACpBmZ,EAAAA,GAAAA,KAACoy9B,GAAU,CACTl8qB,QAnKO8nrB,IAAMqC,GAAQ,GAoKrBn49B,GAAI,CACF9L,MAAO,UACPzE,OAAQ,UACR2E,SAAU,CAAEwZ,GAAI,SAAUC,GAAI,YAC9ByI,GAAI,GACJhzB,SACH,kBAOLmU,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CACP1K,QAAS,OACTwiB,eAAgB,gBAChBC,WAAY,SACZzB,GAAI,OACJhB,GAAI,EACJzB,UAAW,oBACXY,IAAK,GACLnxB,SAAA,EACAwU,EAAAA,GAAAA,KAAC6w8B,GAAM,CACLj77B,QAAQ,YACRs77B,WAAWlx8B,EAAAA,GAAAA,KAAC0g+B,GAAUA,EAAI,CAACx49B,GAAI,CAAE5L,SAAU,CAAEwZ,GAAI,GAAIC,GAAI,OACzDmgS,QAASgqrB,EACTh49B,GAAI,CACFoV,QAAS,UACTlhB,MAAO,QACPuc,aAAc,MACdwC,QAAS,CAAErF,GAAI,WAAYC,GAAI,YAC/B1R,cAAe,OACf/H,SAAU,CAAEwZ,GAAI,SAAUC,GAAI,YAC9BlgB,WAAY,MACZunB,SAAU,EACVzoB,KAAM,WACN,UAAW,CACT2oB,QAAS,YAEX9xB,SACH,UAIDmU,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CACP1K,QAAS,OACTmf,IAAK,GACL7nB,WAAY,GACZtJ,SAAA,EACAwU,EAAAA,GAAAA,KAACug+B,GAAU,CACT9x+B,KAAK,QACLyZ,GAAI,CACFoV,QAAS,UACThgB,MAAO,CAAEwY,GAAI,GAAIC,GAAI,IACrBxY,OAAQ,CAAEuY,GAAI,GAAIC,GAAI,IACtB,UAAW,CAAEuH,QAAS,YAGxBxK,MAAO,CAAC6M,WAAqB,SAAR5f,GAAoBqg+B,EAAmBvt9B,QAAO8t9B,GAAaA,EAAUC,eAAiBX,IAAap5+B,OAAS,EAAK,UAAY,UAClJqvT,QAASiqrB,EAAO30+B,UAEhBwU,EAAAA,GAAAA,KAAC6g+B,GAAIA,EAAI,CAAC349B,GAAI,CAAE5L,SAAU,CAAEwZ,GAAI,GAAIC,GAAI,IAAM3Z,MAAO,gBAEvD4D,EAAAA,GAAAA,KAACug+B,GAAU,CACT9x+B,KAAK,QACLyZ,GAAI,CACFoV,QAAS,UACThgB,MAAO,CAAEwY,GAAI,GAAIC,GAAI,IACrBxY,OAAQ,CAAEuY,GAAI,GAAIC,GAAI,IACtB,UAAW,CAAEuH,QAAS,YAExBxK,MAAO,CAAC6M,WAAqB,SAAR5f,GAAoBqg+B,EAAmBvt9B,QAAO8t9B,GAAaA,EAAUC,eAAiBX,IAAap5+B,OAAS,EAAK,UAAY,UAClJqvT,QAxOU4qrB,KACpBl+3B,QAAQ53D,IAAI,oBACZg94B,EAAS,SAAS,EAsOex87B,UAEvBwU,EAAAA,GAAAA,KAAC+g+B,GAAYA,EAAI,CAAC749B,GAAI,CAAE5L,SAAU,CAAEwZ,GAAI,GAAIC,GAAI,IAAM3Z,MAAO,yBAOrE4D,EAAAA,GAAAA,KAACk/9B,GAAK,CACJl68B,KAAMA,EACNy48B,QAASU,EACTj29B,GAAI,CACF1K,QAAS,OACTyiB,WAAY,SACZD,eAAgB,UAChBx0B,UAEFmU,EAAAA,GAAAA,MAACi58B,GAAG,CACF1w8B,GAAI,CACFoV,QAAS,mBACT3E,aAAc,MACdsI,UAAW,GACX1H,EAAG,EACHyD,SAAU,QACV1f,MAAO,MACP+f,UAAW,OACXryB,SAAU,WACVoz7B,UAAW,OACXlj6B,OAAQ,QACR1vB,SAAA,EAEFwU,EAAAA,GAAAA,KAACug+B,GAAU,CACTrqrB,QAASiorB,EACTj29B,GAAI,CACFld,SAAU,WACV61B,IAAK,EACLC,MAAO,GACPt1B,UAEFwU,EAAAA,GAAAA,KAACgh+B,GAAKA,EAAI,OAEZhh+B,EAAAA,GAAAA,KAACoy9B,GAAU,CAACx88B,QAAQ,KAAK1N,GAAI,CAAEwW,GAAI,EAAGjB,GAAI,GAAIjyB,SAC3CkG,KAEHsO,EAAAA,GAAAA,KAACoy9B,GAAU,CACTx88B,QAAQ,QACR1N,GAAI,CACF9L,MAAO,OACPtG,WAAY,IACZwG,SAAU,OACV8kB,UAAW,UACX+1rB,YAAa,cACb3rtB,SAEDilH,WAMb,gBCxUA,MA6DA,GA7DwBww3B,KACtB,MAAMj5C,EAAWR,KAEjB,OACExn7B,EAAAA,GAAAA,KAAC448B,GAAG,CACF1iqB,QAASA,IAAM8xoB,EAAS,qBACxB9/6B,GAAI,CACFvQ,OAAQ,UACR4P,UAAW,QACXjK,MAAO,OACPE,QAAS,OACTyiB,WAAY,SACZD,eAAgB,SAChBzC,gBAAiB,UACjBzB,OAAQ,qBACRnD,aAAc,OACdhb,WAAY,gBACZ,UAAW,CACTsb,UAAW,mBACXgI,UAAW,sCACX1D,gBAAiB,YAEnB/xB,UAEFmU,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CAAEkZ,UAAW,UAAW51B,SAAA,EAC/BwU,EAAAA,GAAAA,KAACqz9B,GAAM,CACLnr9B,GAAI,CACF5K,MAAO,GACPC,OAAQ,GACR+f,QAAS,OACTlhB,MAAO,UACP8e,OAAQ,SACR+F,UAAW,sCACXz1B,UAEFwU,EAAAA,GAAAA,KAACkh+B,GAAGA,EAAI,CAACh59B,GAAI,CAAE5L,SAAU,SAE3B0D,EAAAA,GAAAA,KAACoy9B,GAAU,CACTx88B,QAAQ,KACR1N,GAAI,CACF4W,UAAW,OACX1iB,MAAO,UACPvG,WAAY,OACZrK,SACH,sBAGDwU,EAAAA,GAAAA,KAACoy9B,GAAU,CACTx88B,QAAQ,QACR1N,GAAI,CACF4W,UAAW,MACX1iB,MAAO,QACP5Q,SACH,0CAIC,EC5DV,SAAS21+B,GAA8BC,GACnC,GAAqB,qBAAV10mB,MACP,OAAO00mB,EAMX,MAAMC,EAAiB,IAAI50mB,IAO3B,OAAO,IAAIC,OANuB,WAI9B,OAAO00mB,KAAiB5t+B,UAC5B,GAC4C,CAMxCjE,IAAKA,CAAC+x+B,EAAS55+B,IACC,WAARA,EACO05+B,GAINC,EAAeps9B,IAAIvtB,IACpB25+B,EAAe7x+B,IAAI9H,EAAK05+B,EAAiB15+B,IAEtC25+B,EAAe9x+B,IAAI7H,KAGtC,CCnCA,SAAS65+B,GAAoBz48B,GACzB,OAAc,OAANA,GACS,kBAANA,GACY,oBAAZA,EAAExb,KACjB,CCHA,SAAS,GAAyBvkB,EAAGgsB,GACnC,GAAI,MAAQhsB,EAAG,MAAO,CAAC,EACvB,IAAIw/B,EACF1T,EACApsB,GAAI,KAA4B,QAClC,GAAIiB,OAAOsnC,sBAAuB,CAChC,IAAIrf,EAAIjoB,OAAOsnC,sBAAsBjoC,GACrC,IAAK8rB,EAAI,EAAGA,EAAIlD,EAAE9qB,OAAQguB,IAAK0T,EAAI5W,EAAEkD,GAAIE,EAAEstW,SAAS95V,IAAM,CAAC,EAAE6L,qBAAqB9jC,KAAKvH,EAAGw/B,KAAO9/B,EAAE8/B,GAAKx/B,EAAEw/B,GAC5G,CACA,OAAO9/B,CACT,CCXA,MAAM+4+B,GAAqB148B,GAChBz4B,MAAMiI,QAAQwwB,GCDzB,SAAS248B,GAAe71+B,EAAMD,GAC1B,IAAK0E,MAAMiI,QAAQ3M,GACf,OAAO,EACX,MAAM+1+B,EAAa/1+B,EAAK9E,OACxB,GAAI66+B,IAAe91+B,EAAK/E,OACpB,OAAO,EACX,IAAK,IAAI4B,EAAI,EAAGA,EAAIi5+B,EAAYj5+B,IAC5B,GAAIkD,EAAKlD,KAAOmD,EAAKnD,GACjB,OAAO,EAEf,OAAO,CACX,CCRA,SAASk5+B,GAAe748B,GACpB,MAAoB,kBAANA,GAAkBz4B,MAAMiI,QAAQwwB,EAClD,CCLA,SAAS848B,GAAcC,GACnB,MAAMj78B,EAAQ,CAAC,CAAC,EAAG,CAAC,GAKpB,OAJkB,OAAlBi78B,QAA4C,IAAlBA,GAAoCA,EAAc3w9B,OAAOnpB,SAAQ,CAAC6B,EAAOlC,KAC/Fk/B,EAAM,GAAGl/B,GAAOkC,EAAM2F,MACtBq3B,EAAM,GAAGl/B,GAAOkC,EAAMu2e,aAAa,IAEhCv5c,CACX,CACA,SAASk78B,GAAwBv2+B,EAAOkqC,EAAYmkW,EAAQiomB,GAIxD,GAA0B,oBAAfps8B,EAA2B,CAClC,MAAOviC,EAASoyc,GAAYs8hB,GAAcC,GAC1Cps8B,EAAaA,OAAsBnuC,IAAXsyY,EAAuBA,EAASruY,EAAMquY,OAAQ1mY,EAASoyc,EACnF,CAaA,GAR0B,kBAAf7va,IACPA,EAAalqC,EAAMiQ,UAAYjQ,EAAMiQ,SAASi6B,IAOxB,oBAAfA,EAA2B,CAClC,MAAOviC,EAASoyc,GAAYs8hB,GAAcC,GAC1Cps8B,EAAaA,OAAsBnuC,IAAXsyY,EAAuBA,EAASruY,EAAMquY,OAAQ1mY,EAASoyc,EACnF,CACA,OAAO7va,CACX,CC/BA,SAASss8B,GAAeF,EAAeps8B,EAAYmkW,GAC/C,MAAMruY,EAAQs2+B,EAAcG,WAC5B,OAAOF,GAAwBv2+B,EAAOkqC,OAAuBnuC,IAAXsyY,EAAuBA,EAASruY,EAAMquY,OAAQiomB,EACpG,CCLA,MAAMI,GAAuB,CACzB,UACA,cACA,aACA,aACA,WACA,YACA,QAEEC,GAAe,CAAC,aAAcD,ICN9BE,GAAqB,CACvB,uBACA,IACA,IACA,IACA,aACA,aACA,aACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,OACA,QACA,SAKEC,GAAiB,IAAI5/8B,IAAI2/8B,ICnBzBE,GAAyB3y8B,GAAsB,IAAVA,EACrC4y8B,GAAyBv59B,GAAiBA,EAAe,ICLzDw59B,GAAoB,CACtBj3+B,KAAM,SACNk3+B,UAAW,IACXC,QAAS,GACTC,UAAW,IAQTC,GAAsB,CACxBr3+B,KAAM,YACNuS,SAAU,IAMRuvD,GAAO,CACT9hE,KAAM,YACN8hE,KAAM,CAAC,IAAM,GAAK,IAAM,GACxBvvD,SAAU,IAER+k+B,GAAuBA,CAAC/vT,EAAQt2qB,KAAoB,IAAlB,UAAE5I,GAAW4I,EACjD,OAAI5I,EAAU9M,OAAS,EACZ87+B,GAEFP,GAAent9B,IAAI49pB,GACjBA,EAASl2Z,WAAW,SAxBG,CAClCrxR,KAAM,SACNk3+B,UAAW,IACXC,QAAoB,IAsBa9u+B,EAAU,GAtBnB,EAAItK,KAAK2xC,KAAK,KAAO,GAC7C0n8B,UAAW,IAsBDH,GAEHn16B,EAAI,ECpCf,SAASy16B,GAAmBll+B,EAAYjW,GACpC,OAAOiW,EACDA,EAAWjW,IACTiW,EAAoB,SACpBA,OACFrW,CACV,CCNA,MAAMw7+B,IACc,EADdA,IAEe,ECFfC,IACO,ECDPC,GAAap5+B,GAAoB,OAAVA,EAC7B,SAASq5+B,GAAiBtv+B,EAAS4I,EAAmC2m+B,GAAe,IAAhD,OAAEl42B,EAAM,WAAEm42B,EAAa,QAAQ5m+B,EAChE,MAAM6m+B,EAAoBzv+B,EAAUkf,OAAOmw9B,IACrC54+B,EAAQ4gI,GAAyB,SAAfm42B,GAAyBn42B,EAAS,IAAM,EAC1D,EACAo42B,EAAkBv8+B,OAAS,EACjC,OAAQuD,QAA2B9C,IAAlB47+B,EAEXA,EADAE,EAAkBh5+B,EAE5B,CCTA,MAAM8qH,GAAQvZ,GAAQA,ECGtB,MAAM0n4B,GAAa,CACf,OACA,mBACA,SACA,YACA,SACA,cAGJ,SAASC,GAAoBC,EAAmBC,GAC5C,IAAIC,GAAe,EACfC,GAAoB,EACxB,MAAM988B,EAAQ,CACVkhG,MAAO,EACPsxQ,UAAW,EACXuqmB,cAAc,GAEZC,EAAmBA,IAAOH,GAAe,EACzCnl6B,EAAQ+k6B,GAAW179B,QAAO,CAACC,EAAKlgB,KAClCkgB,EAAIlgB,GCtBZ,SAA0B+7+B,GAKtB,IAAII,EAAY,IAAIrh9B,IAChBm1P,EAAY,IAAIn1P,IAKhBmh9B,GAAe,EACfG,GAAiB,EAIrB,MAAMC,EAAc,IAAIn3mB,QACxB,IAAIo3mB,EAAkB,CAClBl82B,MAAO,EACPsxQ,UAAW,EACXuqmB,cAAc,GAElB,SAASM,EAAgBh3+B,GACjB82+B,EAAY9u9B,IAAIhoB,KAChBkrB,EAAK8d,SAAShpC,GACdw2+B,KAEJx2+B,EAAS+2+B,EACb,CACA,MAAM7r9B,EAAO,CAIT8d,SAAU,SAAChpC,GACP,MACMktE,EAFuC3mE,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,IACNmw+B,EACLE,EAAYlstB,EAK9C,OAP0BnkR,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,IAItBuw+B,EAAY768B,IAAIj8B,GACfktE,EAAMllD,IAAIhoB,IACXktE,EAAMjxC,IAAIj8B,GACPA,CACX,EAIAm6E,OAASn6E,IACL0qR,EAAU0hI,OAAOpsZ,GACjB82+B,EAAY1qlB,OAAOpsZ,EAAS,EAKhCmzF,QAAU8j5B,IACNF,EAAkBE,EAMdP,EACAG,GAAiB,GAGrBH,GAAe,GACdE,EAAWlstB,GAAa,CAACA,EAAWkstB,GAErCA,EAAU97+B,QAAQk8+B,GAGlBJ,EAAU7/8B,QACV2/8B,GAAe,EACXG,IACAA,GAAiB,EACjB3r9B,EAAKioE,QAAQ8j5B,IACjB,GAGR,OAAO/r9B,CACX,CDxDmBgs9B,CAAiBP,GACrBh89B,IACR,CAAC,IACE,KAAE60W,EAAI,iBAAE2nnB,EAAgB,OAAEr/7B,EAAM,UAAEs/7B,EAAS,OAAEr+8B,EAAM,WAAEs+8B,GAAehm6B,EACpEim6B,EAAeA,KACjB,MAAMnrmB,EAAY0pmB,GACZl88B,EAAMwyW,UACN6vH,YAAY/vd,MAClBuq8B,GAAe,EACf788B,EAAMkhG,MAAQ472B,EACR,IAAO,GACPr6+B,KAAK6mB,IAAI7mB,KAAK8mB,IAAIipX,EAAYxyW,EAAMwyW,UAtB/B,IAsBuD,GAClExyW,EAAMwyW,UAAYA,EAClBxyW,EAAM+88B,cAAe,EAErBlnnB,EAAKr8R,QAAQx5D,GACbw98B,EAAiBhk5B,QAAQx5D,GACzBme,EAAOq7C,QAAQx5D,GACfy98B,EAAUjk5B,QAAQx5D,GAClBZ,EAAOo6D,QAAQx5D,GACf098B,EAAWlk5B,QAAQx5D,GACnBA,EAAM+88B,cAAe,EACjBF,GAAgBD,IAChBE,GAAoB,EACpBH,EAAkBgB,GACtB,EASEtu8B,EAAWot8B,GAAW179B,QAAO,CAACC,EAAKlgB,KACrC,MAAMywB,EAAOmmD,EAAM52E,GAMnB,OALAkgB,EAAIlgB,GAAO,SAAC04F,GAAkD,IAAzCok5B,EAAShx+B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAAUo+J,EAASp+J,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAG7C,OAFKiw+B,IATTA,GAAe,EACfC,GAAoB,EACf988B,EAAM+88B,cACPJ,EAAkBgB,IAQXps9B,EAAK8d,SAASmqD,EAASok5B,EAAW5y0B,EAC7C,EACOhqJ,CAAG,GACX,CAAC,GAMJ,MAAO,CAAEquB,WAAUmxC,OALHgZ,IACZ,IAAK,IAAI33F,EAAI,EAAGA,EAAI46+B,GAAWx8+B,OAAQ4B,IACnC61E,EAAM+k6B,GAAW56+B,IAAI2+E,OAAOgZ,EAChC,EAEuBx5D,QAAO03C,QACtC,CEpEA,MAAQroC,SAAU04E,GAAOvnC,OAAQq95B,GAAa798B,MAAOs98B,GAAW5l6B,MAAOom6B,IAAgBpB,GAAqD,qBAA1B9rtB,sBAAwCA,sBAAwBtiK,IAAM,GCiBlLyv3B,GAAaA,CAAC5v9B,EAAG08C,EAAI20L,OAAU,EAAM,EAAMA,EAAK,EAAM30L,GAAM18C,GAAK,EAAMqxO,EAAK,EAAM30L,IAAO18C,EAAI,EAAM08C,GACrG18C,EAoBJ,SAAS6v9B,GAAYhkgB,EAAKE,EAAK+jgB,EAAKC,GAEhC,GAAIlkgB,IAAQE,GAAO+jgB,IAAQC,EACvB,OAAO5v3B,GACX,MAAM6v3B,EAAYl4J,GArBtB,SAAyBj+0B,EAAG8wb,EAAY20C,EAAYuM,EAAKikgB,GACrD,IAAI/oR,EACAkpR,EACAv8+B,EAAI,EACR,GACIu8+B,EAAWtljB,GAAc20C,EAAa30C,GAAc,EACpDo8R,EAAW6oR,GAAWK,EAAUpkgB,EAAKikgB,GAAOj2+B,EACxCkttB,EAAW,EACXznP,EAAa2wgB,EAGbtljB,EAAasljB,QAEZ37+B,KAAKD,IAAI0ytB,GAfO,QAgBnBrztB,EAfuB,IAgB7B,OAAOu8+B,CACX,CAK6BC,CAAgBp4J,EAAI,EAAG,EAAGjsW,EAAKikgB,GAExD,OAAQ9v9B,GAAY,IAANA,GAAiB,IAANA,EAAUA,EAAI4v9B,GAAWI,EAAShw9B,GAAI+rd,EAAKgkgB,EACxE,CC9CA,MAAMI,GAAgB/89B,GAAYoR,GAAMA,GAAK,GAAMpR,EAAO,EAAIoR,GAAK,GAAK,EAAIpR,EAAO,GAAK,EAAIoR,KAAO,ECA7F4r9B,GAAiBh99B,GAAYoR,GAAM,EAAIpR,EAAO,EAAIoR,GCElD6r9B,GAAwBR,GAAY,IAAM,KAAM,IAAM,KACtDS,GAAuBF,GAAcC,IACrCE,GAA0BJ,GAAaG,ICJvCE,GAAchs9B,IAAOA,GAAK,GAAK,EAAI,GAAM8r9B,GAAO9r9B,GAAK,IAAO,EAAIlwB,KAAK4jD,IAAI,GAAI,IAAM1zB,EAAI,KCCvFis9B,GAAUjs9B,GAAM,EAAIlwB,KAAKunD,IAAIvnD,KAAKg4E,KAAK9nD,IACvCks9B,GAAUN,GAAcK,IACxBE,GAAYR,GAAaM,ICFzBG,GAAqB788B,GAAM,qQAAcjb,KAAKib,GCDpD,IAAIzlB,GAAU6xG,GACVur0B,GAAYvr0B,GCAhB,MAAM0w3B,GAAqB988B,GAAM,uCAA+Bjb,KAAKib,GCH/D+88B,GAAyB95+B,GAAWrE,GAAuB,kBAARA,GAAoBA,EAAIi1R,WAAW5wR,GACtF+5+B,GACQD,GAAsB,MAC9BE,GACQF,GAAsB,UAC9BG,GAAsBp8+B,KACAm8+B,GAAsBn8+B,IAIvCq8+B,GAAuBp49B,KAAKjkB,EAAMkH,MAAM,MAAM,GAAGnH,QAEtDs8+B,GAAyB,+qBCCzBC,GAEN,oFASA,SAASC,GAAiBjz+B,EAAS9F,GAAoB,IAAX8wC,EAAK1qC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAChDit7B,GAAUvi5B,GAFG,EAEgB,yDAAF9sC,OAA2D8B,EAAO,yDAC7F,MAAOnH,EAAOw5B,GAVlB,SAA0BryB,GACtB,MAAMjD,EAAQi2+B,GAAsBl2+B,KAAKkD,GACzC,IAAKjD,EACD,MAAO,CAAC,GACZ,MAAO,CAAEm2+B,EAAQC,EAAQ9g9B,GAAYt1B,EACrC,MAAO,CAAC,KAADmB,OAAiB,OAAXg1+B,QAA8B,IAAXA,EAAoBA,EAASC,GAAU9g9B,EAC3E,CAI8B+g9B,CAAiBpz+B,GAE3C,IAAKnH,EACD,OAEJ,MAAMw6+B,EAAWng9B,OAAO2d,iBAAiB32C,GAAS42C,iBAAiBj4C,GACnE,GAAIw6+B,EAAU,CACV,MAAMvssB,EAAUussB,EAAS58+B,OACzB,OAAOi8+B,GAAkB5rsB,GAAW5oR,WAAW4oR,GAAWA,CAC9D,CACA,OAAOgssB,GAAmBzg9B,GACpB4g9B,GAAiB5g9B,EAAUn4B,EAAS8wC,EAAQ,GAC5C3Y,CACV,CCvCA,MAAMw3C,GAAQA,CAAC5sD,EAAKD,EAAK4Y,IACjBA,EAAI5Y,EACGA,EACP4Y,EAAI3Y,EACGA,EACJ2Y,ECHLnd,GAAS,CACXkC,KAAOib,GAAmB,kBAANA,EACpBv7B,MAAO6jB,WACP6H,UAAY6P,GAAMA,GAEhBjZ,GAAKkrX,GAAAA,GAAA,GACJpvX,IAAM,IACTsN,UAAY6P,GAAMi0C,GAAM,EAAG,EAAGj0C,KAE5B5yB,GAAK6kY,GAAAA,GAAA,GACJpvX,IAAM,IACTpR,QAAS,ICbPis+B,GAAkBtu9B,IAAI,CACxBrK,KAAOib,GAAmB,kBAANA,GAAkBA,EAAEw0W,SAASplX,IAAiC,IAAxB4Q,EAAEh4B,MAAM,KAAKjK,OACvE0G,MAAO6jB,WACP6H,UAAY6P,GAAC,GAAA13B,OAAQ03B,GAAC13B,OAAG8mB,KAEvB6oZ,GAAwBylkB,GAAe,OACvClq5B,GAAwBkq5B,GAAe,KACvC5o9B,GAAmB4o9B,GAAe,MAClC5yzB,GAAmB4yzB,GAAe,MAClCC,GAAmBD,GAAe,MAClCE,GAAkB3rmB,GAAAA,GAAA,GACjBz+S,IAAO,IACV/uF,MAAQu7B,GAAMwzD,GAAQ/uF,MAAMu7B,GAAK,IACjC7P,UAAY6P,GAAMwzD,GAAQrjE,UAAc,IAAJ6P,KCTlC698B,GAAiB,IAAInk9B,IAAI,CAC3B,QACA,SACA,MACA,OACA,QACA,SACA,IACA,IACA,aACA,eAEEok9B,GAAiB998B,GAAMA,IAAMnd,IAAUmd,IAAMlL,GAC7Cip9B,GAAmBA,CAAC7q8B,EAAQwnD,IAAQpyE,WAAW4qB,EAAOlrC,MAAM,MAAM0yF,IAClEsj5B,GAAyBA,CAACl+xB,EAAMm+xB,IAAS,CAACC,EAAKzq+B,KAAoB,IAAlB,UAAE0c,GAAW1c,EAChE,GAAkB,SAAd0c,IAAyBA,EACzB,OAAO,EACX,MAAMgu9B,EAAWhu9B,EAAUhpB,MAAM,mLACjC,GAAIg3+B,EACA,OAAOJ,GAAiBI,EAAS,GAAIF,GAEpC,CACD,MAAM/q8B,EAAS/iB,EAAUhpB,MAAM,iLAC/B,OAAI+rC,EACO6q8B,GAAiB7q8B,EAAO,GAAI4sK,GAG5B,CAEf,GAEEs+xB,GAAgB,IAAI1k9B,IAAI,CAAC,IAAK,IAAK,MACnC2k9B,GAAgChF,GAAmBtv9B,QAAQnrB,IAASw/+B,GAAcjy9B,IAAIvtB,KAY5F,MAAM0/+B,GAAmB,CAErB9p+B,MAAOA,CAAAtC,EAAAsZ,KAAA,IAAC,EAAE1lB,GAAGoM,GAAE,YAAEijB,EAAc,IAAG,aAAEF,EAAe,KAAKzJ,EAAA,OAAK1lB,EAAEshB,IAAMthB,EAAEuhB,IAAMiB,WAAW6M,GAAe7M,WAAW2M,EAAa,EAC/HxgB,OAAQA,CAAAkrzB,EAAAa,KAAA,IAAC,EAAEz6zB,GAAG45zB,GAAE,WAAE3qyB,EAAa,IAAG,cAAEE,EAAgB,KAAKsryB,EAAA,OAAKz6zB,EAAEqhB,IAAMrhB,EAAEshB,IAAMiB,WAAW0M,GAAc1M,WAAW4M,EAAc,EAChI6C,IAAKA,CAACmm9B,EAAKl8K,KAAA,IAAE,IAAEjqyB,GAAKiqyB,EAAA,OAAK15yB,WAAWyP,EAAI,EACxCG,KAAMA,CAACgm9B,EAAKz7K,KAAA,IAAE,KAAEvqyB,GAAMuqyB,EAAA,OAAKn6yB,WAAW4P,EAAK,EAC3CD,OAAQA,CAAAmuyB,EAAAE,KAAA,IAAC,EAAEvg0B,GAAGqg0B,GAAE,IAAEruyB,GAAKuuyB,EAAA,OAAKh+yB,WAAWyP,IAAQhyB,EAAEqhB,IAAMrhB,EAAEshB,IAAI,EAC7D2Q,MAAOA,CAAAwuyB,EAAAY,KAAA,IAAC,EAAEth0B,GAAG0g0B,GAAE,KAAEtuyB,GAAMkvyB,EAAA,OAAK9+yB,WAAW4P,IAASpyB,EAAEshB,IAAMthB,EAAEuhB,IAAI,EAE9DvhB,EAAGk4+B,GAAuB,EAAG,IAC7Bj4+B,EAAGi4+B,GAAuB,EAAG,KAGjCM,GAAiBxmrB,WAAawmrB,GAAiBx4+B,EAC/Cw4+B,GAAiBvmrB,WAAaumrB,GAAiBv4+B,EC3D/C,MAAMw4+B,GAAiBv+8B,GAAOx9B,GAASA,EAAKuiB,KAAKib,GCK3Cw+8B,GAAsB,CAAC379B,GAAQiS,GAAI0+D,GAASykV,GAAS0lkB,GAAI7yzB,GCLlD,CACT/lK,KAAOib,GAAY,SAANA,EACbv7B,MAAQu7B,GAAMA,IDOZy+8B,GAA0Bz+8B,GAAMw+8B,GAAoB/86B,KAAK886B,GAAcv+8B,IETvE0+8B,GAAY,IAAIhl9B,IACtB,IAAIil9B,IAAc,EACdC,IAAsB,EAC1B,SAASC,KACL,GAAID,GAAqB,CACrB,MAAME,EAAqBv3+B,MAAM/G,KAAKk++B,IAAW309B,QAAQ4kB,GAAaA,EAASow8B,mBACzEC,EAAoB,IAAItl9B,IAAIol9B,EAAmB93+B,KAAK2nC,GAAaA,EAASrqC,WAC1E26+B,EAAsB,IAAIt7mB,IAKhCq7mB,EAAkB//+B,SAASqF,IACvB,MAAM46+B,EJqBlB,SAAyCnG,GACrC,MAAMmG,EAAoB,GAQ1B,OAPAb,GAA8Bp/+B,SAASL,IACnC,MAAMkC,EAAQi4+B,EAAcnn9B,SAAShzB,QACvBJ,IAAVsC,IACAo++B,EAAkB5g/B,KAAK,CAACM,EAAKkC,EAAM2F,QACnC3F,EAAM4F,IAAI9H,EAAIi1R,WAAW,SAAW,EAAI,GAC5C,IAEGqrtB,CACX,CI/BsCC,CAAgC76+B,GACrD46+B,EAAkBnh/B,SAEvBkh/B,EAAoBv4+B,IAAIpC,EAAS46+B,GACjC56+B,EAAQ44B,SAAQ,IAGpB4h9B,EAAmB7/+B,SAAS0vC,GAAaA,EAASyw8B,wBAElDJ,EAAkB//+B,SAASqF,IACvBA,EAAQ44B,SACR,MAAM0slB,EAAUq1X,EAAoBx4+B,IAAInC,GACpCslnB,GACAA,EAAQ3qnB,SAAQwU,IAAkB,IAAhB7U,EAAKkC,GAAM2S,EACzB,IAAIquF,EAC6B,QAAhCA,EAAKx9F,EAAQstB,SAAShzB,UAAyB,IAAPkjG,GAAyBA,EAAGp7F,IAAI5F,EAAM,GAEvF,IAGJg++B,EAAmB7/+B,SAAS0vC,GAAaA,EAAS0w8B,oBAElDP,EAAmB7/+B,SAAS0vC,SACUnwC,IAA9BmwC,EAAS2w8B,kBACThi9B,OAAOo94B,SAAS,EAAG/r4B,EAAS2w8B,iBAChC,GAER,CACAV,IAAsB,EACtBD,IAAc,EACdD,GAAUz/+B,SAAS0vC,GAAaA,EAASqqoB,aACzC0lU,GAAUxj9B,OACd,CACA,SAASqk9B,KACLb,GAAUz/+B,SAAS0vC,IACfA,EAAS6w8B,gBACL7w8B,EAASow8B,mBACTH,IAAsB,EAC1B,GAER,CAKA,MAAMa,GACFx1+B,WAAAA,CAAYy1+B,EAAqBrxtB,EAAYzlR,EAAM+2+B,EAAar7+B,GAA0B,IAAjBs7+B,EAAOl1+B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAK5EhN,KAAKmi/B,YAAa,EAMlBni/B,KAAKki/B,SAAU,EAKfli/B,KAAKqh/B,kBAAmB,EAKxBrh/B,KAAKih/B,aAAc,EACnBjh/B,KAAKgi/B,oBAAsB,IAAIA,GAC/Bhi/B,KAAK2wR,WAAaA,EAClB3wR,KAAKkL,KAAOA,EACZlL,KAAKii/B,YAAcA,EACnBji/B,KAAK4G,QAAUA,EACf5G,KAAKki/B,QAAUA,CACnB,CACAE,eAAAA,GACIpi/B,KAAKih/B,aAAc,EACfjh/B,KAAKki/B,SACLlB,GAAUt+8B,IAAI1iC,MACTih/B,KACDA,IAAc,EACd943B,GAAM8tQ,KAAK4rnB,IACX153B,GAAMy13B,iBAAiBuD,OAI3Bnh/B,KAAK8h/B,gBACL9h/B,KAAKs7qB,WAEb,CACAwmU,aAAAA,GACI,MAAM,oBAAEE,EAAmB,KAAE92+B,EAAI,QAAEtE,EAAO,YAAEq7+B,GAAgBji/B,KAK5D,IAAK,IAAIiC,EAAI,EAAGA,EAAI+/+B,EAAoB3h/B,OAAQ4B,IAC5C,GAA+B,OAA3B+/+B,EAAoB//+B,GAIpB,GAAU,IAANA,EAAS,CACT,MAAMqprB,EAA+B,OAAhB22T,QAAwC,IAAhBA,OAAyB,EAASA,EAAYl5+B,MACrF2z+B,EAAgBsF,EAAoBA,EAAoB3h/B,OAAS,GACvE,QAAqBS,IAAjBwqrB,EACA02T,EAAoB,GAAK12T,OAExB,GAAI1krB,GAAWsE,EAAM,CACtB,MAAMm3+B,EAAcz7+B,EAAQ07+B,UAAUp3+B,EAAMwx+B,QACxB57+B,IAAhBuh/B,GAA6C,OAAhBA,IAC7BL,EAAoB,GAAKK,EAEjC,MAC+Bvh/B,IAA3Bkh/B,EAAoB,KACpBA,EAAoB,GAAKtF,GAEzBuF,QAAgCnh/B,IAAjBwqrB,GACf22T,EAAYj5+B,IAAIg5+B,EAAoB,GAE5C,MAEIA,EAAoB//+B,GAAK+/+B,EAAoB//+B,EAAI,EAIjE,CACAsg/B,gBAAAA,GAAqB,CACrBb,mBAAAA,GAAwB,CACxBc,eAAAA,GAAoB,CACpBb,eAAAA,GAAoB,CACpBrmU,QAAAA,GACIt7qB,KAAKmi/B,YAAa,EAClBni/B,KAAK2wR,WAAW3wR,KAAKgi/B,oBAAqBhi/B,KAAK08+B,eAC/CsE,GAAUnulB,OAAO7yZ,KACrB,CACA4gF,MAAAA,GACS5gF,KAAKmi/B,aACNni/B,KAAKih/B,aAAc,EACnBD,GAAUnulB,OAAO7yZ,MAEzB,CACAssE,MAAAA,GACStsE,KAAKmi/B,YACNni/B,KAAKoi/B,iBACb,EC9JJ,MAAMK,GAAYng9B,GAAMz/B,KAAK+b,MAAU,IAAJ0jB,GAAc,ICF3Cog9B,GAAa,sCCAnB,MAAMC,GAAmB,6UCQnBC,GAAgBA,CAAC99+B,EAAM8pvB,IAActstB,GAChC60G,QAAsB,kBAAN70G,GACnBqg9B,GAAiBt79B,KAAKib,IACtBA,EAAE6zP,WAAWrxR,IACZ8pvB,ICZT,SAAmBtstB,GACf,OAAY,MAALA,CACX,CDWaug9B,CAAUvg9B,IACXp/B,OAAO9B,UAAUsa,eAAe5R,KAAKw4B,EAAGsstB,IAE9Ck0P,GAAaA,CAACC,EAAOC,EAAOC,IAAW3g9B,IACzC,GAAiB,kBAANA,EACP,OAAOA,EACX,MAAOjX,EAAG4H,EAAG+O,EAAG3Y,GAASiZ,EAAE74B,MAAMi5+B,IACjC,MAAO,CACH,CAACK,GAAQn49B,WAAWS,GACpB,CAAC239B,GAAQp49B,WAAWqI,GACpB,CAACgw9B,GAAQr49B,WAAWoX,GACpB3Y,WAAiBvoB,IAAVuoB,EAAsBuB,WAAWvB,GAAS,EACpD,EEnBC659B,GAAO3umB,GAAAA,GAAA,GACNpvX,IAAM,IACTsN,UAAY6P,GAAMz/B,KAAK+b,MAHL0jB,IAAMi0C,GAAM,EAAG,IAAKj0C,GAGT6g9B,CAAa7g9B,MAExCugE,GAAO,CACTx7E,KAAoBu79B,GAAc,MAAO,OACzC77+B,MAAqB+7+B,GAAW,MAAO,QAAS,QAChDrw9B,UAAW1c,IAAA,IAAC,IAAEsG,EAAG,MAAEM,EAAK,KAAEX,EAAMqN,MAAO+59B,EAAU,GAAGrt+B,EAAA,MAAK,QACrDmt+B,GAAQzw9B,UAAUpW,GAClB,KACA6m+B,GAAQzw9B,UAAU9V,GAClB,KACAum+B,GAAQzw9B,UAAUzW,GAClB,KACAym+B,GAASp59B,GAAMoJ,UAAU2w9B,IACzB,GAAG,GCYX,MAAMvpkB,GAAM,CACRxyZ,KAAoBu79B,GAAc,KAClC77+B,MAhCJ,SAAkBu7B,GACd,IAAIjU,EAAI,GACJ2U,EAAI,GACJ/P,EAAI,GACJ5H,EAAI,GAmBR,OAjBIiX,EAAEjiC,OAAS,GACXguB,EAAIiU,EAAE9X,UAAU,EAAG,GACnBwY,EAAIV,EAAE9X,UAAU,EAAG,GACnByI,EAAIqP,EAAE9X,UAAU,EAAG,GACnBa,EAAIiX,EAAE9X,UAAU,EAAG,KAInB6D,EAAIiU,EAAE9X,UAAU,EAAG,GACnBwY,EAAIV,EAAE9X,UAAU,EAAG,GACnByI,EAAIqP,EAAE9X,UAAU,EAAG,GACnBa,EAAIiX,EAAE9X,UAAU,EAAG,GACnB6D,GAAKA,EACL2U,GAAKA,EACL/P,GAAKA,EACL5H,GAAKA,GAEF,CACHhP,IAAK+N,SAASiE,EAAG,IACjB1R,MAAOyN,SAAS4Y,EAAG,IACnBhnB,KAAMoO,SAAS6I,EAAG,IAClB5J,MAAOgC,EAAIjB,SAASiB,EAAG,IAAM,IAAM,EAE3C,EAIIoH,UAAWowE,GAAKpwE,WC/BdqwE,GAAO,CACTz7E,KAAoBu79B,GAAc,MAAO,OACzC77+B,MAAqB+7+B,GAAW,MAAO,aAAc,aACrDrw9B,UAAW1c,IAAwD,IAAvD,IAAEgna,EAAG,WAAEugG,EAAU,UAAEC,EAAWl0f,MAAO+59B,EAAU,GAAGrt+B,EAC1D,MAAQ,QACJlT,KAAK+b,MAAMm+Z,GACX,KACAjnV,GAAQrjE,UAAUgw9B,GAASnle,IAC3B,KACAxnb,GAAQrjE,UAAUgw9B,GAASlle,IAC3B,KACAkle,GAASp59B,GAAMoJ,UAAU2w9B,IACzB,GAAG,GCbTxt+B,GAAQ,CACVyR,KAAOib,GAAMugE,GAAKx7E,KAAKib,IAAMu3Y,GAAIxyZ,KAAKib,IAAMwgE,GAAKz7E,KAAKib,GACtDv7B,MAAQu7B,GACAugE,GAAKx7E,KAAKib,GACHugE,GAAK97F,MAAMu7B,GAEbwgE,GAAKz7E,KAAKib,GACRwgE,GAAK/7F,MAAMu7B,GAGXu3Y,GAAI9ya,MAAMu7B,GAGzB7P,UAAY6P,GACY,kBAANA,EACRA,EACAA,EAAE5mB,eAAe,OACbmnF,GAAKpwE,UAAU6P,GACfwgE,GAAKrwE,UAAU6P,ICtB3B+g9B,GAAa,4UCanB,MAAMC,GAAe,SACfC,GAAc,QAKdC,GAAe,8pCACrB,SAASC,GAAoBrg/B,GACzB,MAAMsg/B,EAAgBtg/B,EAAMmK,WACtBmd,EAAS,GACT0qB,EAAU,CACZx/B,MAAO,GACPuP,OAAQ,GACRqjzB,IAAK,IAEHj2b,EAAQ,GACd,IAAItwY,EAAI,EACR,MAmBMqI,EAnBYo5+B,EAAcrg/B,QAAQmg/B,IAAeG,IAC/C/t+B,GAAMyR,KAAKs89B,IACXvu8B,EAAQx/B,MAAMhV,KAAKqB,GACnBswY,EAAM3xY,KAAK2i/B,IACX749B,EAAO9pB,KAAKgV,GAAM7O,MAAM48+B,KAEnBA,EAAYxttB,WApBF,SAqBf/gP,EAAQozxB,IAAI5n0B,KAAKqB,GACjBswY,EAAM3xY,KAvBA,OAwBN8pB,EAAO9pB,KAAK+i/B,KAGZvu8B,EAAQjwB,OAAOvkB,KAAKqB,GACpBswY,EAAM3xY,KAAK0i/B,IACX549B,EAAO9pB,KAAKgqB,WAAW+49B,OAEzB1h/B,EA7BU,SAgCQqI,MAhCR,OAiChB,MAAO,CAAEogB,SAAQpgB,QAAO8qC,UAASm9V,QACrC,CACA,SAASqxmB,GAAkBth9B,GACvB,OAAOmh9B,GAAoBnh9B,GAAG5X,MAClC,CACA,SAASm59B,GAAkB/l9B,GACvB,MAAM,MAAExzB,EAAK,MAAEioY,GAAUkxmB,GAAoB3l9B,GACvCgm9B,EAAcx5+B,EAAMjK,OAC1B,OAAQiiC,IACJ,IAAI57B,EAAS,GACb,IAAK,IAAIzE,EAAI,EAAGA,EAAI6h/B,EAAa7h/B,IAE7B,GADAyE,GAAU4D,EAAMrI,QACHnB,IAATwhC,EAAErgC,GAAkB,CACpB,MAAM6C,EAAOytY,EAAMtwY,GAEfyE,GADA5B,IAASw++B,GACCb,GAASng9B,EAAErgC,IAEhB6C,IAASy++B,GACJ3t+B,GAAM6c,UAAU6P,EAAErgC,IAGlBqgC,EAAErgC,EAEpB,CAEJ,OAAOyE,CAAM,CAErB,CACA,MAAMq9+B,GAAwBzh9B,GAAmB,kBAANA,EAAiB,EAAIA,EAMhE,MAAMngB,GAAU,CACZkF,KAhFJ,SAAcib,GACV,IAAI8hE,EAAID,EACR,OAAQ1wD,MAAMnR,IACG,kBAANA,KAC0B,QAA9B8hE,EAAK9hE,EAAE74B,MAAMi5+B,WAAgC,IAAPt+4B,OAAgB,EAASA,EAAG/jG,SAAW,KAC3C,QAA9B8jG,EAAK7hE,EAAE74B,MAAM45+B,WAAgC,IAAPl/4B,OAAgB,EAASA,EAAG9jG,SAAW,GAChF,CACZ,EA0EI0G,MAAO68+B,GACPC,kBAAiB,GACjBG,kBATJ,SAA2B1h9B,GACvB,MAAM75B,EAASm7+B,GAAkBth9B,GAEjC,OADoBuh9B,GAAkBvh9B,EAC/BnO,CAAY1rB,EAAOa,IAAIy6+B,IAClC,GC7EME,GAAc,IAAIjo9B,IAAI,CAAC,aAAc,WAAY,WAAY,YACnE,SAASko9B,GAAmB5h9B,GACxB,MAAOp3B,EAAM9H,GAASk/B,EAAEr+B,MAAM,GAAI,GAAGqG,MAAM,KAC3C,GAAa,gBAATY,EACA,OAAOo3B,EACX,MAAOnd,GAAU/hB,EAAMqG,MAAMi5+B,KAAe,GAC5C,IAAKv99B,EACD,OAAOmd,EACX,MAAM5Q,EAAOtuB,EAAMC,QAAQ8hB,EAAQ,IACnC,IAAI2O,EAAemw9B,GAAYx19B,IAAIvjB,GAAQ,EAAI,EAG/C,OAFIia,IAAW/hB,IACX0wB,GAAgB,KACb5oB,EAAO,IAAM4oB,EAAepC,EAAO,GAC9C,CACA,MAAMyy9B,GAAgB,sLAChB939B,GAAMkoX,GAAAA,GAAA,GACLpyX,IAAO,IACV6h+B,kBAAoB1h9B,IAChB,MAAM8h9B,EAAY9h9B,EAAE74B,MAAM06+B,IAC1B,OAAOC,EAAYA,EAAU96+B,IAAI46+B,IAAoBr9+B,KAAK,KAAOy7B,CAAC,ICvBpE+h9B,GAA0B,CAE5Bp0rB,YAAa74R,GACbkt9B,eAAgBlt9B,GAChB247B,iBAAkB347B,GAClBy47B,kBAAmBz47B,GACnBmt9B,gBAAiBnt9B,GACjBjF,aAAciF,GACdi8C,OAAQj8C,GACRot9B,oBAAqBpt9B,GACrBqt9B,qBAAsBrt9B,GACtBst9B,wBAAyBtt9B,GACzBut9B,uBAAwBvt9B,GAExBtgB,MAAOsgB,GACPZ,SAAUY,GACVrgB,OAAQqgB,GACRP,UAAWO,GACXiD,IAAKjD,GACLkD,MAAOlD,GACPmD,OAAQnD,GACRoD,KAAMpD,GAENzC,QAASyC,GACTE,WAAYF,GACZG,aAAcH,GACdI,cAAeJ,GACfK,YAAaL,GACb1C,OAAQ0C,GACRkB,UAAWlB,GACXmB,YAAanB,GACboB,aAAcpB,GACdqB,WAAYrB,GAEZwt9B,oBAAqBxt9B,GACrByt9B,oBAAqBzt9B,IClCnB0t9B,GAAsB,CACxBp+6B,OAAQ6zW,GACR52T,QAAS42T,GACT32T,QAAS22T,GACT12T,QAAS02T,GACT7qa,MAAK,GACL85N,OAAQ95N,GACR+5N,OAAQ/5N,GACRq1+B,OAAQr1+B,GACRi3D,KAAM4zW,GACN+E,MAAO/E,GACPyqkB,MAAOzqkB,GACPt2W,SAAU7sC,GACVgjS,WAAYhjS,GACZijS,WAAYjjS,GACZ6t9B,WAAY7t9B,GACZhvB,EAAGgvB,GACH/uB,EAAG+uB,GACH9uB,EAAG8uB,GACHmtF,YAAantF,GACb8t9B,qBAAsB9t9B,GACtB7nB,QAAS8Z,GACT879B,QAASjF,GACTkF,QAASlF,GACTmF,QAASju9B,ICzBPku9B,GAAG/wmB,GAAAA,GAAA,GACFpvX,IAAM,IACTsN,UAAW5vB,KAAK+b,QCEd2m+B,GAAgBhxmB,GAAAA,GAAAA,GAAA,GACf8vmB,IACAS,IAAmB,IACtBj1+B,OAAQy1+B,GACRr9+B,KAAMmvB,GAENpnB,YAAaqZ,GACb/Y,cAAe+Y,GACfm89B,WAAYF,KCPVG,GAAiBlxmB,GAAAA,GAAA,GAChBgxmB,IAAgB,IAEnB3v+B,MAAK,GACLmhB,gBAAiBnhB,GACjBqgB,aAAcrgB,GACdqB,KAAMrB,GACNg9F,OAAQh9F,GAER+f,YAAa/f,GACbggB,eAAgBhgB,GAChBigB,iBAAkBjgB,GAClBkgB,kBAAmBlgB,GACnBmgB,gBAAiBngB,GACjByW,OAAM,GACNq59B,aAAcr59B,KAKZs59B,GAAuBzk/B,GAAQuk/B,GAAkBvk/B,GCvBvD,SAAS8i/B,GAAkB9i/B,EAAKkC,GAC5B,IAAIwi/B,EAAmBD,GAAoBzk/B,GAI3C,OAHI0k/B,IAAqBv59B,KACrBu59B,EAAmBzj+B,IAEhByj+B,EAAiB5B,kBAClB4B,EAAiB5B,kBAAkB5g/B,QACnCtC,CACV,CCHA,MAAM+k/B,GAAmB,IAAI7p9B,IAAI,CAAC,OAAQ,OAAQ,MCDlD,MAAM8p9B,WAA6B/D,GAC/Bx1+B,WAAAA,CAAYy1+B,EAAqBrxtB,EAAYzlR,EAAM+2+B,EAAar7+B,GAC5Do6X,MAAMghnB,EAAqBrxtB,EAAYzlR,EAAM+2+B,EAAar7+B,GAAS,EACvE,CACAk7+B,aAAAA,GACI,MAAM,oBAAEE,EAAmB,QAAEp7+B,EAAO,KAAEsE,GAASlL,KAC/C,IAAK4G,IAAYA,EAAQ8F,QACrB,OACJs0X,MAAM8gnB,gBAIN,IAAK,IAAI7/+B,EAAI,EAAGA,EAAI+/+B,EAAoB3h/B,OAAQ4B,IAAK,CACjD,IAAI8j/B,EAAW/D,EAAoB//+B,GACnC,GAAwB,kBAAb8j/B,IACPA,EAAWA,EAAS5i/B,OAChBq8+B,GAAmBuG,IAAW,CAC9B,MAAMhG,EAAWJ,GAAiBoG,EAAUn/+B,EAAQ8F,cACnC5L,IAAbi/+B,IACAiC,EAAoB//+B,GAAK89+B,GAEzB99+B,IAAM+/+B,EAAoB3h/B,OAAS,IACnCL,KAAK08+B,cAAgBqJ,EAE7B,CAER,CAaA,GAPA/l/B,KAAKgm/B,wBAOA7F,GAAe1x9B,IAAIvjB,IAAwC,IAA/B82+B,EAAoB3h/B,OACjD,OAEJ,MAAOyhD,EAAQ57B,GAAU879B,EACnBiE,EAAalF,GAAuBj/7B,GACpCok8B,EAAanF,GAAuB769B,GAI1C,GAAI+/9B,IAAeC,EAMnB,GAAI9F,GAAc6F,IAAe7F,GAAc8F,GAC3C,IAAK,IAAIjk/B,EAAI,EAAGA,EAAI+/+B,EAAoB3h/B,OAAQ4B,IAAK,CACjD,MAAMmB,EAAQ4++B,EAAoB//+B,GACb,kBAAVmB,IACP4++B,EAAoB//+B,GAAK2oB,WAAWxnB,GAE5C,MAMApD,KAAKqh/B,kBAAmB,CAEhC,CACA2E,oBAAAA,GACI,MAAM,oBAAEhE,EAAmB,KAAE92+B,GAASlL,KAChCmm/B,EAAsB,GAC5B,IAAK,IAAIlk/B,EAAI,EAAGA,EAAI+/+B,EAAoB3h/B,OAAQ4B,KC7E/B,kBADTmB,ED+EO4++B,EAAoB//+B,IC7ElB,IAAVmB,EAEQ,OAAVA,GACY,SAAVA,GAA8B,MAAVA,GAAiB+7+B,GAAkB/7+B,KD2EtD+i/B,EAAoBvl/B,KAAKqB,GChFzC,IAAgBmB,EDmFJ+i/B,EAAoB9l/B,QD3EhC,SAAqC2h/B,EAAqBmE,EAAqBj7+B,GAC3E,IACIk7+B,EADAnk/B,EAAI,EAER,KAAOA,EAAI+/+B,EAAoB3h/B,SAAW+l/B,GAAoB,CAC1D,MAAML,EAAW/D,EAAoB//+B,GACb,kBAAb8j/B,IACNF,GAAiBp39B,IAAIs39B,IACtBtC,GAAoBsC,GAAUr79B,OAAOrqB,SACrC+l/B,EAAqBpE,EAAoB//+B,IAE7CA,GACJ,CACA,GAAImk/B,GAAsBl7+B,EACtB,IAAK,MAAMm7+B,KAAaF,EACpBnE,EAAoBqE,GAAarC,GAAkB94+B,EAAMk7+B,EAGrE,CC2DYE,CAA4BtE,EAAqBmE,EAAqBj7+B,EAE9E,CACAw2+B,mBAAAA,GACI,MAAM,QAAE96+B,EAAO,oBAAEo7+B,EAAmB,KAAE92+B,GAASlL,KAC/C,IAAK4G,IAAYA,EAAQ8F,QACrB,OACS,WAATxB,IACAlL,KAAK4h/B,iBAAmBhi9B,OAAO2m9B,aAEnCvm/B,KAAKwm/B,eAAiB5F,GAAiB11+B,GAAMtE,EAAQ6/+B,qBAAsB7m9B,OAAO2d,iBAAiB32C,EAAQ8F,UAC3Gs1+B,EAAoB,GAAKhi/B,KAAKwm/B,eAE9B,MAAME,EAAkB1E,EAAoBA,EAAoB3h/B,OAAS,QACjDS,IAApB4l/B,GACA9/+B,EAAQstB,SAAShpB,EAAMw7+B,GAAiBvniB,KAAKuniB,GAAiB,EAEtE,CACA/E,eAAAA,GACI,IAAIv94B,EACJ,MAAM,QAAEx9F,EAAO,KAAEsE,EAAI,oBAAE82+B,GAAwBhi/B,KAC/C,IAAK4G,IAAYA,EAAQ8F,QACrB,OACJ,MAAMtJ,EAAQwD,EAAQstB,SAAShpB,GAC/B9H,GAASA,EAAM+7c,KAAKn/c,KAAKwm/B,gBAAgB,GACzC,MAAMG,EAAqB3E,EAAoB3h/B,OAAS,EAClDq8+B,EAAgBsF,EAAoB2E,GAC1C3E,EAAoB2E,GAAsB/F,GAAiB11+B,GAAMtE,EAAQ6/+B,qBAAsB7m9B,OAAO2d,iBAAiB32C,EAAQ8F,UACzG,OAAlBgw+B,QAAiD57+B,IAAvBd,KAAK08+B,gBAC/B18+B,KAAK08+B,cAAgBA,IAGa,QAAjCt44B,EAAKpkG,KAAKwh/B,yBAAsC,IAAPp94B,OAAgB,EAASA,EAAG/jG,SACtEL,KAAKwh/B,kBAAkBjg/B,SAAQwU,IAA+C,IAA7C6w+B,EAAoBC,GAAoB9w+B,EACrEnP,EACKstB,SAAS0y9B,GACT59+B,IAAI69+B,EAAoB,IAGrC7m/B,KAAKgm/B,sBACT,EE9HJ,SAASc,GAAYhi/B,GACjB,MAAuB,oBAATA,CAClB,CCCA,IAAI4tC,GACJ,SAASq08B,KACLr08B,QAAM5xC,CACV,CASA,MAAMykB,GAAO,CACTmtB,IAAKA,UACW5xC,IAAR4xC,IACAntB,GAAKvc,IAAI00+B,GAAUP,cAAgBb,GAC7BoB,GAAU9qmB,UACV6vH,YAAY/vd,OAEfA,IAEX1pC,IAAMg++B,IACFt08B,GAAMs08B,EACN1iF,eAAeyiF,GAAU,GCf3BE,GAAeA,CAAC7j/B,EAAO8H,IAEZ,WAATA,MAKiB,kBAAV9H,IAAsByG,MAAMiI,QAAQ1O,OAE1B,kBAAVA,IACN+e,GAAQkF,KAAKjkB,IAAoB,MAAVA,GACvBA,EAAM+yR,WAAW,mFCP1B,MAAM+wtB,GACF36+B,WAAAA,CAAWwJ,GAAmH,IAAlH,SAAEm+H,GAAW,EAAI,MAAEnxH,EAAQ,EAAC,KAAEje,EAAO,YAAW,OAAE0/H,EAAS,EAAC,YAAE2i3B,EAAc,EAAC,WAAExK,EAAa,QAAoB5m+B,EAATjW,EAAOsn/B,GAAArx+B,EAAAR,IAEtHvV,KAAKqn/B,WAAY,EACjBrn/B,KAAKsn/B,qBAAsB,EAC3Btn/B,KAAKun/B,UAAYhi+B,GAAKmtB,MACtB1yC,KAAKF,QAAOy0Y,GAAA,CACRrgQ,WACAnxH,QACAje,OACA0/H,SACA2i3B,cACAxK,cACG78+B,GAEPE,KAAKwn/B,uBACT,CAWAC,aAAAA,GACI,OAAKzn/B,KAAK0n/B,YAEH1n/B,KAAK0n/B,WAAa1n/B,KAAKun/B,UA/BZ,GAgCZvn/B,KAAK0n/B,WAFA1n/B,KAAKun/B,SAIpB,CAMA,YAAIxH,GAIA,OAHK//+B,KAAK2n/B,WAAc3n/B,KAAKsn/B,sBzBGjCzF,KACAV,MyBDWnh/B,KAAK2n/B,SAChB,CAMAC,mBAAAA,CAAoBz6+B,EAAWuv+B,GAC3B18+B,KAAK0n/B,WAAani+B,GAAKmtB,MACvB1yC,KAAKsn/B,qBAAsB,EAC3B,MAAM,KAAEp8+B,EAAI,KAAEpG,EAAI,SAAEg6c,EAAQ,MAAE/7b,EAAK,WAAE4tQ,EAAU,SAAEyopB,EAAQ,YAAE0tE,GAAiB9m/B,KAAKF,QAKjF,IAAKgn/B,IC5Db,SAAoB35+B,EAAWjC,EAAMpG,EAAMg6c,GAMvC,MAAM+oiB,EAAiB16+B,EAAU,GACjC,GAAuB,OAAnB06+B,EACA,OAAO,EAMX,GAAa,YAAT38+B,GAA+B,eAATA,EACtB,OAAO,EACX,MAAM48+B,EAAiB36+B,EAAUA,EAAU9M,OAAS,GAC9C0n/B,EAAqBd,GAAaY,EAAgB38+B,GAClD88+B,EAAqBf,GAAaa,EAAgB58+B,GAGxD,OAFA2R,GAAQkr+B,IAAuBC,EAAoB,6BAAFp9+B,OAA+BM,EAAI,WAAAN,OAAUi9+B,EAAc,UAAAj9+B,OAASk9+B,EAAc,OAAAl9+B,OAAMi9+B,EAAc,+DAAAj9+B,OAA8Di9+B,EAAc,8BAAAj9+B,OAA6Bk9+B,EAAc,kCAEzQC,IAAuBC,KA9BhC,SAA6B76+B,GACzB,MAAMT,EAAUS,EAAU,GAC1B,GAAyB,IAArBA,EAAU9M,OACV,OAAO,EACX,IAAK,IAAI4B,EAAI,EAAGA,EAAIkL,EAAU9M,OAAQ4B,IAClC,GAAIkL,EAAUlL,KAAOyK,EACjB,OAAO,CAEnB,CAyBYu7+B,CAAoB96+B,KACb,WAATrI,GAAqBgi/B,GAAYhi/B,KAAUg6c,EACrD,CDkC6BopiB,CAAW/6+B,EAAWjC,EAAMpG,EAAMg6c,GAAW,CAE9D,GAAIy9hB,KAAkCx59B,EAIlC,OAHa,OAAbq25B,QAAkC,IAAbA,GAA+BA,EAASqjE,GAAiBtv+B,EAAWnN,KAAKF,QAAS48+B,IACxF,OAAf/rtB,QAAsC,IAAfA,GAAiCA,SACxD3wR,KAAKmo/B,yBAKLno/B,KAAKF,QAAQuX,SAAW,CAEhC,CACA,MAAM+w+B,EAAoBpo/B,KAAKqo/B,aAAal7+B,EAAWuv+B,IAC7B,IAAtB0L,IAEJpo/B,KAAK2n/B,UAASpzmB,GAAA,CACVpnY,YACAuv+B,iBACG0L,GAEPpo/B,KAAKso/B,iBACT,CACAA,cAAAA,GAAmB,CAMnBv48B,IAAAA,CAAKU,EAASJ,GACV,OAAOrwC,KAAKuo/B,uBAAuBx48B,KAAKU,EAASJ,EACrD,CACAikjB,OAAAA,GACIt0lB,KAAKF,QAAQgF,KAAO,YACpB9E,KAAKF,QAAQ8mE,KAAO,QACxB,CACA4g7B,qBAAAA,GACIxn/B,KAAKuo/B,uBAAyB,IAAInp3B,SAAS3uF,IACvCzwC,KAAKmo/B,uBAAyB138B,CAAO,GAE7C,EErGJ,MAAMklB,GAAWA,CAAC7yD,EAAM2rC,EAAIrrC,KACxB,MAAMol/B,EAAmB/58B,EAAK3rC,EAC9B,OAA4B,IAArB0l/B,EAAyB,GAAKpl/B,EAAQN,GAAQ0l/B,CAAgB,ECZnEC,GAAuB,SAAC9m+B,EAAQtK,GAEjC,IADL6yc,EAAUl9c,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAEL7F,EAAS,GACb,MAAMmtc,EAAYzxc,KAAK6mB,IAAI7mB,KAAK+b,MAAMvH,EAAW6yc,GAAa,GAC9D,IAAK,IAAIjod,EAAI,EAAGA,EAAIqyc,EAAWryc,IAC3BkF,GAAUwa,EAAOg0C,GAAS,EAAG2+Y,EAAY,EAAGryc,IAAM,KAEtD,MAAO,UAAP2I,OAAiBzD,EAAOqjB,UAAU,EAAGrjB,EAAO9G,OAAS,GAAE,IAC3D,ECLA,SAASqo/B,GAAkB5piB,EAAU4/L,GACjC,OAAOA,EAAgB5/L,GAAY,IAAO4/L,GAAiB,CAC/D,CCLA,SAASiqW,GAAsBt7D,EAAc9+5B,EAAG7hB,GAC5C,MAAMk8+B,EAAQ/l/B,KAAK6mB,IAAI6E,EAFI,EAEwB,GACnD,OAAOm69B,GAAkBh8+B,EAAU2g7B,EAAau7D,GAAQr69B,EAAIq69B,EAChE,CCNA,MAAMC,GAAiB,CAEnB7M,UAAW,IACXC,QAAS,GACT6M,KAAM,EACNhqiB,SAAU,EAEVznc,SAAU,IACVquD,OAAQ,GACRqj7B,eAAgB,GAEhB7M,UAAW,CACP8M,SAAU,IACVj1+B,QAAS,GAEbk1+B,UAAW,CACPD,SAAU,KACVj1+B,QAAS,IAGbm1+B,YAAa,IACb5pM,YAAa,GACb6pM,WAAY,IACZC,WAAY,GClBVC,GAAU,KAChB,SAASC,GAAUvz+B,GAA0I,IACrJwz+B,EACAvtiB,GAFY,SAAE3kc,EAAWwx+B,GAAexx+B,SAAQ,OAAEquD,EAASmj7B,GAAenj7B,OAAM,SAAEo5Y,EAAW+piB,GAAe/piB,SAAQ,KAAEgqiB,EAAOD,GAAeC,MAAO/y+B,EAGvJ8G,GAAQxF,GAAYwk+B,GAAsBgN,GAAevpM,aAAc,8CACvE,IAAIkqM,EAAe,EAAI9j7B,EAIvB8j7B,EAAejz6B,GAAMsy6B,GAAeM,WAAYN,GAAeO,WAAYI,GAC3Eny+B,EAAWk/D,GAAMsy6B,GAAeK,YAAaL,GAAevpM,YAAaw8L,GAAsBzk+B,IAC3Fmy+B,EAAe,GAIfD,EAAYE,IACR,MAAMC,EAAmBD,EAAeD,EAClClo3B,EAAQoo3B,EAAmBry+B,EAC3BgU,EAAIq+9B,EAAmB5qiB,EACvB7rb,EAAI029B,GAAgBF,EAAcD,GAClCxn9B,EAAIn/B,KAAK+gD,KAAK09E,GACpB,OAAO+n3B,GAAWh+9B,EAAI4H,EAAK+O,CAAC,EAEhCg6a,EAAcytiB,IACV,MACMno3B,EADmBmo3B,EAAeD,EACPny+B,EAC3BpD,EAAIqtH,EAAQw9U,EAAWA,EACvBv8c,EAAIM,KAAK4jD,IAAI+i8B,EAAc,GAAK3m/B,KAAK4jD,IAAIgj8B,EAAc,GAAKpy+B,EAC5DiU,EAAIzoB,KAAK+gD,KAAK09E,GACdt+F,EAAI2m9B,GAAgB9m/B,KAAK4jD,IAAIgj8B,EAAc,GAAID,GAErD,QADgBD,EAASE,GAAgBJ,GAAU,GAAK,EAAI,KACzCp1+B,EAAI1R,GAAK+oB,GAAM0X,CAAC,IAOvCum9B,EAAYE,GACE5m/B,KAAK+gD,KAAK6l8B,EAAepy+B,KACxBoy+B,EAAe3qiB,GAAYznc,EAAW,GAC1C,KAEX2kc,EAAcytiB,GACA5m/B,KAAK+gD,KAAK6l8B,EAAepy+B,IACIA,EAAWA,GAAvCync,EAAW2qiB,KAI9B,MACMA,EAmBV,SAAyBF,EAAUvtiB,EAAY4tiB,GAC3C,IAAIv3+B,EAASu3+B,EACb,IAAK,IAAI3n/B,EAAI,EAAGA,EAAI4n/B,GAAgB5n/B,IAChCoQ,GAAkBk3+B,EAASl3+B,GAAU2pc,EAAW3pc,GAEpD,OAAOA,CACX,CAzByBy3+B,CAAgBP,EAAUvtiB,EAD1B,EAAI3kc,GAGzB,GADAA,EAAWwk+B,GAAsBxk+B,GAC7Bo8B,MAAMg28B,GACN,MAAO,CACHzN,UAAW6M,GAAe7M,UAC1BC,QAAS4M,GAAe5M,QACxB5k+B,YAGH,CACD,MAAM2k+B,EAAYn5+B,KAAK4jD,IAAIgj8B,EAAc,GAAKX,EAC9C,MAAO,CACH9M,YACAC,QAAwB,EAAfuN,EAAmB3m/B,KAAK2xC,KAAKs08B,EAAO9M,GAC7C3k+B,WAER,CACJ,CACA,MAAMwy+B,GAAiB,GAQvB,SAASF,GAAgBF,EAAcD,GACnC,OAAOC,EAAe5m/B,KAAK2xC,KAAK,EAAIg18B,EAAeA,EACvD,CC/EA,MAAMO,GAAuB,IAC7B,SAASC,GAAsB5l+B,GAC3B,IAAI/M,EAAW,EAEf,IAAI+oB,EAAQhc,EAAUhf,KAAKiS,GAC3B,MAAQ+oB,EAAM++F,MAAQ9nH,EAAW0y+B,IAC7B1y+B,GAHa,GAIb+oB,EAAQhc,EAAUhf,KAAKiS,GAE3B,OAAOA,GAAY0y+B,GAAuB/y8B,IAAW3/B,CACzD,CCNA,MAAM4y+B,GAAe,CAAC,WAAY,UAC5BC,GAAc,CAAC,YAAa,UAAW,QAC7C,SAASC,GAAarq/B,EAASonB,GAC3B,OAAOA,EAAKkkR,MAAMlqS,QAAyBJ,IAAjBhB,EAAQoB,IACtC,CAqCA,SAASkp/B,KAAgG,IAAzFC,EAAuBr9+B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG67+B,GAAeE,eAAgBrj7B,EAAM14D,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG67+B,GAAenj7B,OAC7F,MAAM5lE,EAA6C,kBAA5Buq/B,EACjB,CACEtB,eAAgBsB,EAChBl9+B,UAAW,CAAC,EAAG,GACfu4D,UAEF2k7B,EACN,IAAI,UAAEnO,EAAS,UAAE+M,GAAcnp/B,EAC/B,MAAMgiD,EAAShiD,EAAQqN,UAAU,GAC3B+Y,EAASpmB,EAAQqN,UAAUrN,EAAQqN,UAAU9M,OAAS,GAKtD+/B,EAAQ,CAAE++F,MAAM,EAAO/7H,MAAO0+C,IAC9B,UAAEk67B,EAAS,QAAEC,EAAO,KAAE6M,EAAI,SAAEzx+B,EAAQ,SAAEync,EAAQ,uBAAEwriB,GApD1D,SAA0Bxq/B,GACtB,IAAIyq/B,EAAah2mB,GAAA,CACbuqE,SAAU+piB,GAAe/piB,SACzBk9hB,UAAW6M,GAAe7M,UAC1BC,QAAS4M,GAAe5M,QACxB6M,KAAMD,GAAeC,KACrBwB,wBAAwB,GACrBxq/B,GAGP,IAAKqq/B,GAAarq/B,EAASoq/B,KACvBC,GAAarq/B,EAASmq/B,IACtB,GAAInq/B,EAAQip/B,eAAgB,CACxB,MAAMA,EAAiBjp/B,EAAQip/B,eACzBnk/B,EAAQ,EAAI/B,KAAKsgD,IAAwB,IAAjB4l8B,GACxB/M,EAAYp3+B,EAAOA,EACnBq3+B,EAAU,EAAI1l6B,GAAM,IAAM,EAAG,EAAIz2E,EAAQ4lE,QAAU7iE,KAAK2xC,KAAKwn8B,GACnEuO,EAAah2mB,GAAAA,GAAA,GACNg2mB,GAAa,IAChBzB,KAAMD,GAAeC,KACrB9M,YACAC,WAER,KACK,CACD,MAAMuO,EAAUlB,GAAWxp/B,GAC3Byq/B,EAAah2mB,GAAAA,GAAAA,GAAA,GACNg2mB,GACAC,GAAO,IACV1B,KAAMD,GAAeC,OAEzByB,EAAcD,wBAAyB,CAC3C,CAEJ,OAAOC,CACX,CAiBsFE,CAAgBl2mB,GAAAA,GAAC,CAAC,EAC7Fz0Y,GAAO,IACVg/c,UAAWg9hB,GAAsBh8+B,EAAQg/c,UAAY,MAEnD4riB,EAAkB5riB,GAAY,EAC9B0qiB,EAAevN,GAAW,EAAIp5+B,KAAK2xC,KAAKwn8B,EAAY8M,IACpD6B,EAAezk+B,EAAS47B,EACxB8o8B,EAAsB9O,GAAsBj5+B,KAAK2xC,KAAKwn8B,EAAY8M,IAQlE+B,EAAkBho/B,KAAKD,IAAI+n/B,GAAgB,EAOjD,IAAIG,EACJ,GAPA5O,IAAcA,EAAY2O,EACpBhC,GAAe3M,UAAU8M,SACzBH,GAAe3M,UAAUno+B,SAC/Bk1+B,IAAcA,EAAY4B,EACpBhC,GAAeI,UAAUD,SACzBH,GAAeI,UAAUl1+B,SAE3By1+B,EAAe,EAAG,CAClB,MAAMuB,EAAcpB,GAAgBiB,EAAqBpB,GAEzDsB,EAAiBv89B,IACb,MAAMg79B,EAAW1m/B,KAAK+gD,KAAK4l8B,EAAeoB,EAAsBr89B,GAChE,OAAQrI,EACJqj+B,IACOmB,EACClB,EAAeoB,EAAsBD,GACrCI,EACAlo/B,KAAKunD,IAAI2g8B,EAAcx89B,GACvBo89B,EAAe9n/B,KAAKsnD,IAAI4g8B,EAAcx89B,GAAG,CAE7D,MACK,GAAqB,IAAjBi79B,EAELsB,EAAiBv89B,GAAMrI,EACnBrjB,KAAK+gD,KAAKgn8B,EAAsBr89B,IAC3Bo89B,GACID,EAAkBE,EAAsBD,GAAgBp89B,OAEpE,CAED,MAAMy89B,EAAoBJ,EAAsB/n/B,KAAK2xC,KAAKg18B,EAAeA,EAAe,GACxFsB,EAAiBv89B,IACb,MAAMg79B,EAAW1m/B,KAAK+gD,KAAK4l8B,EAAeoB,EAAsBr89B,GAE1D089B,EAAWpo/B,KAAK8mB,IAAIqh+B,EAAoBz89B,EAAG,KACjD,OAAQrI,EACHqj+B,IACKmB,EACElB,EAAeoB,EAAsBD,GACrC9n/B,KAAKi+a,KAAKmqkB,GACVD,EACIL,EACA9n/B,KAAKy9a,KAAK2qkB,IAClBD,CAAiB,CAEjC,CACA,MAAM5m+B,EAAY,CACd8m+B,mBAAoBZ,GAAyBjz+B,GAAmB,KAChEjS,KAAOmpB,IACH,MAAM7hB,EAAUo++B,EAAcv89B,GAC9B,GAAK+79B,EAmBDlq9B,EAAM++F,KAAO5wG,GAAKlX,MAnBO,CACzB,IAAI8z+B,EAAkB,EAMlB3B,EAAe,IACf2B,EACU,IAAN589B,EACMst9B,GAAsB6O,GACtB/B,GAAsBmC,EAAev89B,EAAG7hB,IAEtD,MAAM0++B,EAA2Bvo/B,KAAKD,IAAIuo/B,IAAoBjP,EACxDmP,EAA+Bxo/B,KAAKD,IAAIsjB,EAASxZ,IAAYu8+B,EACnE7o9B,EAAM++F,KACFis3B,GAA4BC,CACpC,CAKA,OADAjr9B,EAAMh9B,MAAQg9B,EAAM++F,KAAOj5G,EAASxZ,EAC7B0zB,CAAK,EAEhB7yB,SAAUA,KACN,MAAM29+B,EAAqBro/B,KAAK8mB,IAAIqg+B,GAAsB5l+B,GAAY2l+B,IAChEpo+B,EAAS8m+B,IAAsB9y7B,GAAavxC,EAAUhf,KAAK8l/B,EAAqBv17B,GAAUvyD,OAAO8n/B,EAAoB,IAC3H,OAAOA,EAAqB,MAAQvp+B,CAAM,GAGlD,OAAOyC,CACX,CC/JA,SAASkmxB,GAAOv0xB,GAAiK,IAAhK,UAAE5I,EAAS,SAAE2xc,EAAW,EAAG,MAAE+mG,EAAQ,GAAG,aAAEylc,EAAe,IAAG,cAAEC,EAAgB,GAAE,gBAAEC,EAAkB,IAAG,aAAEC,EAAY,IAAE9h+B,EAAG,IAAED,EAAG,UAAEu/9B,EAAY,GAAG,UAAE/M,GAAYnm+B,EAC3K,MAAM+rC,EAAS30C,EAAU,GACnBizB,EAAQ,CACV++F,MAAM,EACN/7H,MAAO0+C,GAGL4p8B,EAAmBpp9B,QACTxhC,IAAR6oB,EACOD,OACC5oB,IAAR4oB,GAEG7mB,KAAKD,IAAI+mB,EAAM2Y,GAAKz/B,KAAKD,IAAI8mB,EAAM4Y,GAD/B3Y,EAC0CD,EAEzD,IAAIii+B,EAAY9lc,EAAQ/mG,EACxB,MAAM8siB,EAAQ9p8B,EAAS6p8B,EACjBzl+B,OAA0BplB,IAAjB2q/B,EAA6BG,EAAQH,EAAaG,GAK7D1l+B,IAAW0l+B,IACXD,EAAYzl+B,EAAS47B,GACzB,MAAM+p8B,EAAat99B,IAAOo99B,EAAY9o/B,KAAK+gD,KAAKr1B,EAAI+89B,GAC9CQ,EAAcv99B,GAAMrI,EAAS2l+B,EAAUt99B,GACvCw99B,EAAiBx99B,IACnB,MAAM+yG,EAAQuq3B,EAAUt99B,GAClBy99B,EAASF,EAAWv99B,GAC1B6R,EAAM++F,KAAOt8H,KAAKD,IAAI0+H,IAAU2n3B,EAChC7o9B,EAAMh9B,MAAQg9B,EAAM++F,KAAOj5G,EAAS8l+B,CAAM,EAQ9C,IAAIC,EACAC,EACJ,MAAMC,EAAsB599B,IAjCL+T,SAkCAlC,EAAMh9B,WAlCStC,IAAR6oB,GAAqB2Y,EAAI3Y,QAAiB7oB,IAAR4oB,GAAqB4Y,EAAI5Y,KAoCrFui+B,EAAsB199B,EACtB299B,EAAW9B,GAAO,CACdj9+B,UAAW,CAACizB,EAAMh9B,MAAOso/B,EAAgBtr9B,EAAMh9B,QAC/C07c,SAAU6piB,GAAsBmD,EAAYv99B,EAAG6R,EAAMh9B,OACrD64+B,QAASsP,EACTvP,UAAWwP,EACXvC,YACA/M,cACF,EAGN,OADAiQ,EAAmB,GACZ,CACHjB,mBAAoB,KACpB9l/B,KAAOmpB,IAOH,IAAI699B,GAAkB,EAUtB,OATKF,QAAoCpr/B,IAAxBmr/B,IACbG,GAAkB,EAClBL,EAAcx99B,GACd499B,EAAmB599B,SAMKztB,IAAxBmr/B,GAAqC199B,GAAK099B,EACnCC,EAAS9m/B,KAAKmpB,EAAI099B,KAGxBG,GAAmBL,EAAcx99B,GAC3B6R,EACX,EAGZ,CClFA,MAAMte,GAAuBs89B,GAAY,IAAM,EAAG,EAAG,GAC/Cv89B,GAAwBu89B,GAAY,EAAG,EAAG,IAAM,GAChDx89B,GAA0Bw89B,GAAY,IAAM,EAAG,IAAM,GCJrDiO,GAAsB1q+B,GAAW9X,MAAMiI,QAAQ6P,IAAgC,kBAAdA,EAAO,GCQxE2q+B,GAAe,CACjBvn7B,OAAQ2pD,GACR5sG,OAAM,GACNF,UAAS,GACTC,QAAO,GACPm99B,OAAM,GACNE,UAAS,GACTD,QAAO,GACPJ,OAAM,GACNC,UAAS,GACTF,QAAO,GACPG,WAAUA,IAERwN,GAA8Bt98B,IAChC,GAAIo98B,GAAmBp98B,GAAa,CAEhCgr5B,GAAgC,IAAtBhr5B,EAAW5uC,OAAc,2DACnC,MAAOilD,EAAIE,EAAIoa,EAAIC,GAAM5wB,EACzB,OAAOmv8B,GAAY947B,EAAIE,EAAIoa,EAAIC,EACnC,CACK,MAA0B,kBAAf5wB,GAEZgr5B,QAAuCn57B,IAA7Bwr/B,GAAar98B,GAA2B,wBAAFrkC,OAA0BqkC,EAAU,MAC7Eq98B,GAAar98B,IAEjBA,CAAU,EC1Bfu98B,GAAmBA,CAACnh+B,EAAG4H,IAAOqP,GAAMrP,EAAE5H,EAAEiX,IACxCi5W,GAAO,mBAAAxuY,EAAAC,UAAA3M,OAAIos/B,EAAY,IAAA5i/B,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAZu/+B,EAAYv/+B,GAAAF,UAAAE,GAAA,OAAKu/+B,EAAatr+B,OAAOqr+B,GAAiB,ECajEE,GAAYA,CAAC5p/B,EAAM2rC,EAAIknB,IAClB7yD,GAAQ2rC,EAAK3rC,GAAQ6yD,ECrBhC,SAASg37B,GAAS559B,EAAGoY,EAAG5c,GAKpB,OAJIA,EAAI,IACJA,GAAK,GACLA,EAAI,IACJA,GAAK,GACLA,EAAI,EAAI,EACDwE,EAAc,GAAToY,EAAIpY,GAASxE,EACzBA,EAAI,GACG4c,EACP5c,EAAI,EAAI,EACDwE,GAAKoY,EAAIpY,IAAM,EAAI,EAAIxE,GAAK,EAChCwE,CACX,CCbA,SAAS659B,GAAavh+B,EAAG4H,GACrB,OAAQF,GAAOA,EAAI,EAAIE,EAAI5H,CAC/B,CCSA,MAAMwh+B,GAAiBA,CAAC/p/B,EAAM2rC,EAAInM,KAC9B,MAAMwq9B,EAAWhq/B,EAAOA,EAClBiq/B,EAAOzq9B,GAAKmM,EAAKA,EAAKq+8B,GAAYA,EACxC,OAAOC,EAAO,EAAI,EAAIlq/B,KAAK2xC,KAAKu48B,EAAK,EAEnC99W,GAAa,CAACp1N,GAAKh3U,GAAMC,IAE/B,SAASkq5B,GAAOp3+B,GACZ,MAAM9Q,GAFYw9B,EAEQ1sB,EAFFq5nB,GAAWlrkB,MAAMj/D,GAASA,EAAKuiB,KAAKib,MAA1CA,MAIlB,GADAzlB,GAAQs6H,QAAQryI,GAAO,IAAF8F,OAAMgL,EAAK,0EAC3BuhI,QAAQryI,GACT,OAAO,EACX,IAAIsuT,EAAQtuT,EAAKiC,MAAM6O,GAKvB,OAJI9Q,IAASg+F,KAETswN,EFZR,SAAmBr9S,GAAwC,IAAvC,IAAEgna,EAAG,WAAEugG,EAAU,UAAEC,EAAS,MAAEl0f,GAAOtT,EACrDgna,GAAO,IACPugG,GAAc,IACdC,GAAa,IACb,IAAIlhgB,EAAM,EACNM,EAAQ,EACRX,EAAO,EACX,GAAKshgB,EAGA,CACD,MAAMnye,EAAIoye,EAAY,GAChBA,GAAa,EAAID,GACjBC,EAAYD,EAAaC,EAAYD,EACrCvqf,EAAI,EAAIwqf,EAAYpye,EAC1B9uB,EAAMsw+B,GAAS559B,EAAGoY,EAAG4xY,EAAM,EAAI,GAC/Bpga,EAAQgw+B,GAAS559B,EAAGoY,EAAG4xY,GACvB/ga,EAAO2w+B,GAAS559B,EAAGoY,EAAG4xY,EAAM,EAAI,EACpC,MAVI1ga,EAAMM,EAAQX,EAAOuhgB,EAWzB,MAAO,CACHlhgB,IAAKxZ,KAAK+b,MAAY,IAANvC,GAChBM,MAAO9Z,KAAK+b,MAAc,IAARjC,GAClBX,KAAMnZ,KAAK+b,MAAa,IAAP5C,GACjBqN,QAER,CEbgB4j+B,CAAW75rB,IAEhBA,CACX,CACA,MAAM85rB,GAAWA,CAACpq/B,EAAM2rC,KACpB,MAAM0+8B,EAAWH,GAAOlq/B,GAClBsq/B,EAASJ,GAAOv+8B,GACtB,IAAK0+8B,IAAaC,EACd,OAAOR,GAAa9p/B,EAAM2rC,GAE9B,MAAM4+8B,EAAO94mB,GAAA,GAAQ44mB,GACrB,OAAQ7q9B,IACJ+q9B,EAAQhx+B,IAAMww+B,GAAeM,EAAS9w+B,IAAK+w+B,EAAO/w+B,IAAKimB,GACvD+q9B,EAAQ1w+B,MAAQkw+B,GAAeM,EAASxw+B,MAAOyw+B,EAAOzw+B,MAAO2lB,GAC7D+q9B,EAAQrx+B,KAAO6w+B,GAAeM,EAASnx+B,KAAMox+B,EAAOpx+B,KAAMsmB,GAC1D+q9B,EAAQhk+B,MAAQqj+B,GAAUS,EAAS9j+B,MAAO+j+B,EAAO/j+B,MAAOiZ,GACjDugE,GAAKpwE,UAAU469B,GACzB,EC3CCC,GAAkB,IAAItx9B,IAAI,CAAC,OAAQ,WCUzC,SAAS0w9B,GAAUrh+B,EAAG4H,GAClB,OAAQF,GAAMw69B,GAAYli+B,EAAG4H,EAAGF,EACpC,CACA,SAASy69B,GAASni+B,GACd,MAAiB,kBAANA,EACAqh+B,GAEW,kBAANrh+B,EACLm09B,GAAmBn09B,GACpBuh+B,GACAh3+B,GAAMyR,KAAKgE,GACP6h+B,GACAO,GAEL5j/B,MAAMiI,QAAQuZ,GACZqi+B,GAEW,kBAANri+B,EACLzV,GAAMyR,KAAKgE,GAAK6h+B,GAAWS,GAE/Bf,EACX,CACA,SAASc,GAASri+B,EAAG4H,GACjB,MAAMvsB,EAAS,IAAI2kB,GACb2toB,EAAYtypB,EAAOrG,OACnBut/B,EAAavi+B,EAAE/hB,KAAI,CAACg5B,EAAGrgC,IAAMur/B,GAASlr9B,EAATkr9B,CAAYlr9B,EAAGrP,EAAEhxB,MACpD,OAAQ8wB,IACJ,IAAK,IAAI9wB,EAAI,EAAGA,EAAI+2pB,EAAW/2pB,IAC3ByE,EAAOzE,GAAK2r/B,EAAW3r/B,GAAG8wB,GAE9B,OAAOrsB,CAAM,CAErB,CACA,SAASin/B,GAAUti+B,EAAG4H,GAClB,MAAMvsB,EAAM6tY,GAAAA,GAAA,GAAQlpX,GAAM4H,GACpB269B,EAAa,CAAC,EACpB,IAAK,MAAM1s/B,KAAOwF,OACC5F,IAAXuqB,EAAEnqB,SAAiCJ,IAAXmyB,EAAE/xB,KAC1B0s/B,EAAW1s/B,GAAOss/B,GAASni+B,EAAEnqB,GAAXss/B,CAAiBni+B,EAAEnqB,GAAM+xB,EAAE/xB,KAGrD,OAAQohC,IACJ,IAAK,MAAMphC,KAAO0s/B,EACdln/B,EAAOxF,GAAO0s/B,EAAW1s/B,GAAKohC,GAElC,OAAO57B,CAAM,CAErB,CAcA,MAAM+m/B,GAAaA,CAAC3r8B,EAAQ57B,KACxB,MAAMwwF,EAAWv0F,GAAQ0h+B,kBAAkB399B,GACrC2n+B,EAAcpK,GAAoB3h8B,GAClCgs8B,EAAcrK,GAAoBv99B,GAIxC,OAHuB2n+B,EAAYz48B,QAAQozxB,IAAIno0B,SAAWyt/B,EAAY148B,QAAQozxB,IAAIno0B,QAC9Ewt/B,EAAYz48B,QAAQx/B,MAAMvV,SAAWyt/B,EAAY148B,QAAQx/B,MAAMvV,QAC/Dwt/B,EAAYz48B,QAAQjwB,OAAO9kB,QAAUyt/B,EAAY148B,QAAQjwB,OAAO9kB,OAE3Dit/B,GAAgB7+9B,IAAIqzB,KACpBgs8B,EAAYpj+B,OAAOrqB,QACnBit/B,GAAgB7+9B,IAAIvI,KAChB2n+B,EAAYnj+B,OAAOrqB,OD5EpC,SAAuByhD,EAAQ57B,GAC3B,OAAIon+B,GAAgB7+9B,IAAIqzB,GACZ/uB,GAAOA,GAAK,EAAI+uB,EAAS57B,EAGzB6M,GAAOA,GAAK,EAAI7M,EAAS47B,CAEzC,CCsEmBis8B,CAAcjs8B,EAAQ57B,GAE1Bq1X,GAAKmymB,GA3BpB,SAAoB5r8B,EAAQ57B,GACxB,IAAIk+E,EACJ,MAAM4p5B,EAAgB,GAChBC,EAAW,CAAEr4+B,MAAO,EAAG4yzB,IAAK,EAAGrjzB,OAAQ,GAC7C,IAAK,IAAIljB,EAAI,EAAGA,EAAIikB,EAAOwE,OAAOrqB,OAAQ4B,IAAK,CAC3C,MAAM6C,EAAOohB,EAAOqsX,MAAMtwY,GACpBis/B,EAAcps8B,EAAO1M,QAAQtwC,GAAMmp/B,EAASnp/B,IAC5Cqp/B,EAAoD,QAArC/p5B,EAAKtiD,EAAOp3B,OAAOwj+B,UAAiC,IAAP9p5B,EAAgBA,EAAK,EACvF4p5B,EAAc/r/B,GAAKks/B,EACnBF,EAASnp/B,IACb,CACA,OAAOkp/B,CACX,CAe6BI,CAAWP,EAAaC,GAAcA,EAAYpj+B,QAASgsF,IAGhF75F,IAAQ,EAAM,mBAAFjS,OAAqBk3C,EAAM,WAAAl3C,OAAUsb,EAAM,6KAChD0m+B,GAAa9q8B,EAAQ57B,GAChC,ECvFJ,SAASwiF,GAAI5lG,EAAM2rC,EAAI1b,GACnB,GAAoB,kBAATjwB,GACO,kBAAP2rC,GACM,kBAAN1b,EACP,OAAO259B,GAAU5p/B,EAAM2rC,EAAI1b,GAG/B,OADcy69B,GAAS1q/B,EAChBur/B,CAAMvr/B,EAAM2rC,EACvB,CC4BA,SAASk2B,GAAY/4C,EAAOllB,GAAqD,IAA3C6vE,MAAO+36B,GAAU,EAAI,KAAE1n7B,EAAI,MAAEyn7B,GAAOrh/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC1E,MAAM08Y,EAAc99X,EAAMvrB,OAM1B,GALA457B,GAAUvwiB,IAAgBhjZ,EAAOrG,OAAQ,wDAKrB,IAAhBqpZ,EACA,MAAO,IAAMhjZ,EAAO,GACxB,GAAoB,IAAhBgjZ,GAAqB99X,EAAM,KAAOA,EAAM,GACxC,MAAO,IAAMllB,EAAO,GAEpBklB,EAAM,GAAKA,EAAM89X,EAAc,KAC/B99X,EAAQ,IAAIA,GAAOyjD,UACnB3oE,EAAS,IAAIA,GAAQ2oE,WAEzB,MAAMk/6B,EAjDV,SAAsB7n/B,EAAQkgE,EAAM4n7B,GAChC,MAAMD,EAAS,GACTE,EAAeD,GAAe9l5B,GAC9Bgm5B,EAAYho/B,EAAOrG,OAAS,EAClC,IAAK,IAAI4B,EAAI,EAAGA,EAAIys/B,EAAWzs/B,IAAK,CAChC,IAAIos/B,EAAQI,EAAa/n/B,EAAOzE,GAAIyE,EAAOzE,EAAI,IAC/C,GAAI2kE,EAAM,CACN,MAAM+n7B,EAAiB9k/B,MAAMiI,QAAQ80D,GAAQA,EAAK3kE,IAAMysH,GAAO9nD,EAC/Dyn7B,EAAQ9ymB,GAAKozmB,EAAgBN,EACjC,CACAE,EAAO3t/B,KAAKyt/B,EAChB,CACA,OAAOE,CACX,CAoCmBK,CAAalo/B,EAAQkgE,EAAMyn7B,GACpCK,EAAYH,EAAOlu/B,OACnB6hb,EAAgB5/Y,IAClB,IAAIrgC,EAAI,EACR,GAAIys/B,EAAY,EACZ,KAAOzs/B,EAAI2pB,EAAMvrB,OAAS,KAClBiiC,EAAI1W,EAAM3pB,EAAI,IADOA,KAKjC,MAAM4s/B,EAAkBl57B,GAAS/pC,EAAM3pB,GAAI2pB,EAAM3pB,EAAI,GAAIqgC,GACzD,OAAOis9B,EAAOts/B,GAAG4s/B,EAAgB,EAErC,OAAOP,EACAhs9B,GAAM4/Y,EAAa3rW,GAAM3qD,EAAM,GAAIA,EAAM89X,EAAc,GAAIpnX,IAC5D4/Y,CACV,CCrEA,SAAS4skB,GAAc998B,GACnB,MAAM3pC,EAAS,CAAC,GAEhB,OCFJ,SAAoBA,EAAQkuE,GACxB,MAAM5rD,EAAMtiB,EAAOA,EAAOhH,OAAS,GACnC,IAAK,IAAI4B,EAAI,EAAGA,GAAKszE,EAAWtzE,IAAK,CACjC,MAAM8s/B,EAAiBp57B,GAAS,EAAG4f,EAAWtzE,GAC9CoF,EAAOzG,KAAK8r/B,GAAU/i+B,EAAK,EAAGol+B,GAClC,CACJ,CDLIC,CAAW3n/B,EAAQ2pC,EAAI3wC,OAAS,GACzBgH,CACX,CEIA,SAAS8F,GAAS4I,GAA4E,IAA3E,SAAEsB,EAAW,IAAKlK,UAAW8h/B,EAAc,MAAExn1B,EAAK,KAAE7gG,EAAO,aAAc7wD,EAKxF,MAAMm5+B,ECfato7B,IACZ/8D,MAAMiI,QAAQ80D,IAA4B,kBAAZA,EAAK,GDclBuo7B,CAAcvo7B,GAChCA,EAAKt9D,IAAIij/B,IACTA,GAA2B3l7B,GAK3BxmC,EAAQ,CACV++F,MAAM,EACN/7H,MAAO6r/B,EAAe,IAKpBG,EE7BV,SAA8B/n/B,EAAQgQ,GAClC,OAAOhQ,EAAOiC,KAAKy4B,GAAMA,EAAI1qB,GACjC,CF2B0Bg4+B,CAGtB5n1B,GAASA,EAAMpnK,SAAW4u/B,EAAe5u/B,OACnConK,EACAqn1B,GAAcG,GAAiB53+B,GAC/Bi4+B,EAAoB3q7B,GAAYyq7B,EAAeH,EAAgB,CACjEro7B,KAAM/8D,MAAMiI,QAAQo9+B,GACdA,GA9BSxk+B,EA+BKuk+B,EA/BGtt+B,EA+Baut+B,EA9BjCxk+B,EAAOphB,KAAI,IAAMqY,GAAUC,KAAW89C,OAAO,EAAGh1C,EAAOrqB,OAAS,MAD3E,IAAuBqqB,EAAQ/I,EAiC3B,MAAO,CACHup+B,mBAAoB7z+B,EACpBjS,KAAOmpB,IACH6R,EAAMh9B,MAAQks/B,EAAkB/g+B,GAChC6R,EAAM++F,KAAO5wG,GAAKlX,EACX+oB,GAGnB,CG7CA,MAAMmv9B,GAAmBhx8B,IACrB,MAAMix8B,EAAgBz5+B,IAAA,IAAC,UAAE68X,GAAW78X,EAAA,OAAKwoC,EAAOq0V,EAAU,EAC1D,MAAO,CACH9rX,MAAOA,IAAMqhG,GAAM5pE,OAAOix8B,GAAe,GACzCz48B,KAAMA,IAAMkn8B,GAAYuR,GAKxB988B,IAAKA,IAAOgr8B,GAAUP,aAAeO,GAAU9qmB,UAAYrtX,GAAKmtB,MACnE,ECEC+88B,GAAa,CACfC,MAAOplN,GACPA,QAAO,GACP1hvB,MAAOz7C,GACPA,UAAWA,GACXi9+B,OAAMA,IAEJuF,GAAqB755B,GAAYA,EAAU,IAMjD,MAAM855B,WAA4B1I,GAC9B36+B,WAAAA,CAAYzM,GACRkhY,MAAMlhY,GAINE,KAAK6v/B,SAAW,KAIhB7v/B,KAAK8v/B,WAAa,KAIlB9v/B,KAAKw4vB,YAAc,EAInBx4vB,KAAK+v/B,cAAgB,EAMrB/v/B,KAAKgw/B,iBAAmB,UAIxBhw/B,KAAKulS,UAAY,KACjBvlS,KAAKogC,MAAQ,OAKbpgC,KAAK+2C,KAAO,KAGR,GAFA/2C,KAAKixC,SAAS2vC,SACd5gF,KAAKqn/B,WAAY,EACE,SAAfrn/B,KAAKogC,MACL,OACJpgC,KAAKiw/B,WACL,MAAM,OAAEC,GAAWlw/B,KAAKF,QACxBow/B,GAAUA,GAAQ,EAEtB,MAAM,KAAEhl/B,EAAI,YAAE+2+B,EAAW,QAAEr7+B,EAAO,UAAEuG,GAAcnN,KAAKF,QACjDqw/B,GAAkC,OAAZvp/B,QAAgC,IAAZA,OAAqB,EAASA,EAAQm7+B,mBAAqBA,GAE3G/h/B,KAAKixC,SAAW,IAAIk/8B,EAAmBhj/B,GADpBij/B,CAACxT,EAAmBF,IAAkB18+B,KAAK4n/B,oBAAoBhL,EAAmBF,IACvCxx+B,EAAM+2+B,EAAar7+B,GACjF5G,KAAKixC,SAASmx8B,iBAClB,CACA9tZ,OAAAA,GACItzN,MAAMszN,UAEFt0lB,KAAK2n/B,WACLzk/B,OAAOD,OAAOjD,KAAK2n/B,UAAW3n/B,KAAKqo/B,aAAaro/B,KAAK2n/B,UAAUx6+B,WAEvE,CACAk7+B,YAAAA,CAAagI,GACT,MAAM,KAAEvr/B,EAAO,YAAW,OAAE0/H,EAAS,EAAC,YAAE2i3B,EAAc,EAAC,WAAExK,EAAU,SAAE79hB,EAAW,GAAO9+c,KAAKF,QACtFww/B,EAAmBxJ,GAAYhi/B,GAC/BA,EACA2q/B,GAAW3q/B,IAASqI,GAO1B,IAAIoj/B,EACAC,EACAF,IAAqBnj/B,IACK,kBAAnBkj/B,EAAY,KAInBE,EAAwBh1mB,GAAKo0mB,GAAmBjn5B,GAAI2n5B,EAAY,GAAIA,EAAY,KAChFA,EAAc,CAAC,EAAG,MAEtB,MAAMjs+B,EAAYks+B,EAAgB/7mB,GAAAA,GAAC,CAAC,EAAIv0Y,KAAKF,SAAO,IAAEqN,UAAWkj/B,KAK9C,WAAf1T,IACA6T,EAAoBF,EAAgB/7mB,GAAAA,GAAC,CAAC,EAC/Bv0Y,KAAKF,SAAO,IACfqN,UAAW,IAAIkj/B,GAAahh7B,UAC5ByvY,UAAWA,MAWkB,OAAjC16b,EAAU8m+B,qBACV9m+B,EAAU8m+B,mBAAqBlB,GAAsB5l+B,IAEzD,MAAM,mBAAE8m+B,GAAuB9m+B,EACzBqs+B,EAAmBvF,EAAqB/D,EAE9C,MAAO,CACH/i+B,YACAos+B,oBACAD,wBACArF,qBACAuF,mBACAC,cAPkBD,GAAoBjs3B,EAAS,GAAK2i3B,EAS5D,CACAmB,cAAAA,GACI,MAAM,SAAEp02B,GAAW,GAASl0I,KAAKF,QACjCE,KAAKo4vB,OACyB,WAA1Bp4vB,KAAKgw/B,kBAAkC972B,EAIvCl0I,KAAKogC,MAAQpgC,KAAKgw/B,iBAHlBhw/B,KAAKgkZ,OAKb,CACAz3U,IAAAA,CAAKqmU,GAA2B,IAAhB+9mB,EAAM3j/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAClB,MAAM,SAAE+y+B,GAAa//+B,KAErB,IAAK+/+B,EAAU,CACX,MAAM,UAAE5y+B,GAAcnN,KAAKF,QAC3B,MAAO,CAAEq/H,MAAM,EAAM/7H,MAAO+J,EAAUA,EAAU9M,OAAS,GAC7D,CACA,MAAM,cAAEq8+B,EAAa,UAAEt49B,EAAS,kBAAEos+B,EAAiB,sBAAED,EAAqB,UAAEpj/B,EAAS,mBAAE+9+B,EAAkB,cAAEwF,EAAa,iBAAED,GAAsB1Q,EAChJ,GAAuB,OAAnB//+B,KAAKulS,UACL,OAAOnhR,EAAUhf,KAAK,GAC1B,MAAM,MAAE2d,EAAK,OAAEyhH,EAAM,WAAEm42B,EAAU,YAAEwK,EAAW,SAAE/tE,GAAap56B,KAAKF,QAO9DE,KAAKkqyB,MAAQ,EACblqyB,KAAKulS,UAAY1iS,KAAK8mB,IAAI3pB,KAAKulS,UAAWqtG,GAErC5yY,KAAKkqyB,MAAQ,IAClBlqyB,KAAKulS,UAAY1iS,KAAK8mB,IAAIipX,EAAY89mB,EAAgB1w/B,KAAKkqyB,MAAOlqyB,KAAKulS,YAGvEortB,EACA3w/B,KAAKw4vB,YAAc5lX,EAEI,OAAlB5yY,KAAK6v/B,SACV7v/B,KAAKw4vB,YAAcx4vB,KAAK6v/B,SAMxB7v/B,KAAKw4vB,YACD31vB,KAAK+b,MAAMg0X,EAAY5yY,KAAKulS,WAAavlS,KAAKkqyB,MAGtD,MAAM0mN,EAAmB5w/B,KAAKw4vB,YAAcz1uB,GAAS/iB,KAAKkqyB,OAAS,EAAI,GAAK,GACtE2mN,EAAiB7w/B,KAAKkqyB,OAAS,EAC/B0mN,EAAmB,EACnBA,EAAmBF,EACzB1w/B,KAAKw4vB,YAAc31vB,KAAK6mB,IAAIkn+B,EAAkB,GAE3B,aAAf5w/B,KAAKogC,OAA0C,OAAlBpgC,KAAK6v/B,WAClC7v/B,KAAKw4vB,YAAck4P,GAEvB,IAAIhw6B,EAAU1gF,KAAKw4vB,YACfs4P,EAAiB1s+B,EACrB,GAAIogH,EAAQ,CAMR,MAAM7uE,EAAW9yD,KAAK8mB,IAAI3pB,KAAKw4vB,YAAak4P,GAAiBD,EAK7D,IAAIM,EAAmBlu/B,KAAK2/B,MAAMmzB,GAK9Bq77B,EAAoBr77B,EAAW,GAK9Bq77B,GAAqBr77B,GAAY,IAClCq77B,EAAoB,GAEF,IAAtBA,GAA2BD,IAC3BA,EAAmBlu/B,KAAK8mB,IAAIon+B,EAAkBvs3B,EAAS,GAIhC2S,QAAQ452B,EAAmB,KAE3B,YAAfpU,GACAqU,EAAoB,EAAIA,EACpB7J,IACA6J,GAAqB7J,EAAcsJ,IAGnB,WAAf9T,IACLmU,EAAiBN,IAGzB9v6B,EAAUnK,GAAM,EAAG,EAAGy66B,GAAqBP,CAC/C,CAMA,MAAMrw9B,EAAQyw9B,EACR,CAAE1x3B,MAAM,EAAO/7H,MAAO+J,EAAU,IAChC2j/B,EAAe1r/B,KAAKs7E,GACtB6v6B,IACAnw9B,EAAMh9B,MAAQmt/B,EAAsBnw9B,EAAMh9B,QAE9C,IAAI,KAAE+7H,GAAS/+F,EACVyw9B,GAAyC,OAAvB3F,IACnB/r3B,EACIn/H,KAAKkqyB,OAAS,EACRlqyB,KAAKw4vB,aAAek4P,EACpB1w/B,KAAKw4vB,aAAe,GAElC,MAAMy4P,EAAwC,OAAlBjx/B,KAAK6v/B,WACb,aAAf7v/B,KAAKogC,OAAwC,YAAfpgC,KAAKogC,OAAuB++F,GAU/D,OATI8x3B,QAAyCnw/B,IAAlB47+B,IACvBt88B,EAAMh9B,MAAQq5+B,GAAiBtv+B,EAAWnN,KAAKF,QAAS48+B,IAExDtjE,GACAA,EAASh54B,EAAMh9B,OAEf6t/B,GACAjx/B,KAAK43Y,SAEFx3W,CACX,CACA,YAAI/oB,GACA,MAAM,SAAE0o+B,GAAa//+B,KACrB,OAAO+/+B,EAAWjE,GAAsBiE,EAASmL,oBAAsB,CAC3E,CACA,QAAI3l+B,GACA,OAAOu29B,GAAsB97+B,KAAKw4vB,YACtC,CACA,QAAIjzuB,CAAKyh+B,GACLA,EAAUnL,GAAsBmL,GAChChn/B,KAAKw4vB,YAAcwuP,EACG,OAAlBhn/B,KAAK6v/B,UAAoC,IAAf7v/B,KAAKkqyB,MAC/BlqyB,KAAK6v/B,SAAW7I,EAEXhn/B,KAAKkx/B,SACVlx/B,KAAKulS,UAAYvlS,KAAKkx/B,OAAOx+8B,MAAQs08B,EAAUhn/B,KAAKkqyB,MAE5D,CACA,SAAIA,GACA,OAAOlqyB,KAAK+v/B,aAChB,CACA,SAAI7lN,CAAMinN,GACN,MAAM9qzB,EAAarmM,KAAK+v/B,gBAAkBoB,EAC1Cnx/B,KAAK+v/B,cAAgBoB,EACjB9qzB,IACArmM,KAAKulB,KAAOu29B,GAAsB97+B,KAAKw4vB,aAE/C,CACAJ,IAAAA,GAII,GAHKp4vB,KAAKixC,SAASgw8B,aACfjh/B,KAAKixC,SAASq7B,UAEbtsE,KAAK2n/B,UAEN,YADA3n/B,KAAKgw/B,iBAAmB,WAG5B,GAAIhw/B,KAAKqn/B,UACL,OACJ,MAAM,OAAE6J,EAAS3B,GAAe,OAAE6B,EAAM,UAAE7rtB,GAAcvlS,KAAKF,QACxDE,KAAKkx/B,SACNlx/B,KAAKkx/B,OAASA,GAAQt+mB,GAAc5yY,KAAKusE,KAAKqmU,MAElDw+mB,GAAUA,IACV,MAAM1+8B,EAAM1yC,KAAKkx/B,OAAOx+8B,MACF,OAAlB1yC,KAAK6v/B,SACL7v/B,KAAKulS,UAAY7yP,EAAM1yC,KAAK6v/B,SAEtB7v/B,KAAKulS,UAGS,aAAfvlS,KAAKogC,QACVpgC,KAAKulS,UAAY7yP,GAHjB1yC,KAAKulS,UAA0B,OAAdA,QAAoC,IAAdA,EAAuBA,EAAYvlS,KAAKyn/B,gBAKhE,aAAfzn/B,KAAKogC,OACLpgC,KAAKwn/B,wBAETxn/B,KAAK8v/B,WAAa9v/B,KAAKulS,UACvBvlS,KAAK6v/B,SAAW,KAKhB7v/B,KAAKogC,MAAQ,UACbpgC,KAAKkx/B,OAAOpq+B,OAChB,CACAk9X,KAAAA,GACI,IAAI5/S,EACCpkG,KAAK2n/B,WAIV3n/B,KAAKogC,MAAQ,SACbpgC,KAAK6v/B,SAAuC,QAA3Bzr5B,EAAKpkG,KAAKw4vB,mBAAgC,IAAPp0pB,EAAgBA,EAAK,GAJrEpkG,KAAKgw/B,iBAAmB,QAKhC,CACA10U,QAAAA,GACuB,YAAft7qB,KAAKogC,OACLpgC,KAAKo4vB,OAETp4vB,KAAKgw/B,iBAAmBhw/B,KAAKogC,MAAQ,WACrCpgC,KAAK6v/B,SAAW,IACpB,CACAj4mB,MAAAA,GACI53Y,KAAKiw/B,WACLjw/B,KAAKogC,MAAQ,WACb,MAAM,WAAEuwP,GAAe3wR,KAAKF,QAC5B6wR,GAAcA,GAClB,CACA/vM,MAAAA,GAC4B,OAApB5gF,KAAK8v/B,YACL9v/B,KAAKusE,KAAKvsE,KAAK8v/B,YAEnB9v/B,KAAKiw/B,WACLjw/B,KAAKwn/B,uBACT,CACAyI,QAAAA,GACIjw/B,KAAKogC,MAAQ,OACbpgC,KAAKqx/B,aACLrx/B,KAAKmo/B,yBACLno/B,KAAKwn/B,wBACLxn/B,KAAKulS,UAAYvlS,KAAK8v/B,WAAa,KACnC9v/B,KAAKixC,SAAS2vC,QAClB,CACAyw6B,UAAAA,GACSrx/B,KAAKkx/B,SAEVlx/B,KAAKkx/B,OAAOn68B,OACZ/2C,KAAKkx/B,YAASpw/B,EAClB,CACA6v/B,MAAAA,CAAOpr+B,GAEH,OADAvlB,KAAKulS,UAAY,EACVvlS,KAAKusE,KAAKhnD,GAAM,EAC3B,EC5XJ,MAAM+r+B,GAAoB,IAAIt19B,IAAI,CAC9B,UACA,WACA,SACA,cCPJ,SAAS01X,GAAKjrZ,GACV,IAAI4L,EACJ,MAAO,UACYvR,IAAXuR,IACAA,EAAS5L,KACN4L,EAEf,CCHA,MAAMk/+B,GAAgB,CAClBC,kBAAc1w/B,GCFlB,SAAS2w/B,GAAahr/B,EAAUir/B,GAC5B,MAAMC,EAAWjgmB,GAAKjrZ,GACtB,MAAO,KAAQ,IAAI29F,EAAI,OAA8C,QAAtCA,EAAKmt5B,GAAcG,UAAkC,IAAPtt5B,EAAgBA,EAAKut5B,GAAU,CAChH,CCJA,MAAMC,GAAqCH,IAAa,KACpD,IACI/v/B,SACKC,cAAc,OACdstR,QAAQ,CAAE1/Q,QAAS,GAAK,CAAEoS,OAAQ,gBAC3C,CACA,MAAOpf,IACH,OAAO,CACX,CACA,OAAO,CAAI,GACZ,gBCRH,SAASsv/B,GAAuBlw+B,GAC5B,OAAOw1H,QAA2B,oBAAXx1H,GAAyBiw+B,OAC3Cjw+B,GACkB,kBAAXA,IACHA,KAAUmw+B,IAAwBF,OACvCvF,GAAmB1q+B,IAClB9X,MAAMiI,QAAQ6P,IAAWA,EAAOsa,MAAM419B,IAC/C,CACA,MAAME,GAAsBh8+B,IAAA,IAAEsV,EAAG4H,EAAG+O,EAAG/tB,GAAE8B,EAAA,sBAAAnL,OAAqBygB,EAAC,MAAAzgB,OAAKqoB,EAAC,MAAAroB,OAAKo3B,EAAC,MAAAp3B,OAAKqJ,EAAC,MAC3E69+B,GAAuB,CACzB/s7B,OAAQ,SACR6B,KAAM,OACN9kD,OAAQ,UACRD,QAAS,WACTD,UAAW,cACXo99B,OAAsB+S,GAAoB,CAAC,EAAG,IAAM,IAAM,IAC1D9S,QAAuB8S,GAAoB,CAAC,IAAM,EAAG,EAAG,MACxDlT,OAAsBkT,GAAoB,CAAC,IAAM,IAAM,KAAO,MAC9DnT,QAAuBmT,GAAoB,CAAC,IAAM,KAAM,IAAM,OAElE,SAASC,GAAwBrw+B,EAAQtK,GACrC,OAAKsK,EAGsB,oBAAXA,GAAyBiw+B,KAC9BnJ,GAAqB9m+B,EAAQtK,GAE/Bg1+B,GAAmB1q+B,GACjBow+B,GAAoBpw+B,GAEtB9X,MAAMiI,QAAQ6P,GACZA,EAAOrY,KAAK2o/B,GAAkBD,GAAwBC,EAAe56+B,IACxEy6+B,GAAqBjw+B,UAGlBiw+B,GAAqBnw+B,QAb5B,CAeR,CCvCA,SAASuw+B,GAAoBtr/B,EAAS05F,EAAWnzF,GAA4G,IAAjG,MAAE4V,EAAQ,EAAC,SAAE1L,EAAW,IAAG,OAAEmtH,EAAS,EAAC,WAAEm42B,EAAa,OAAM,KAAE/16B,EAAO,YAAW,MAAE6gG,GAAQz6J,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACtJ,MAAMml/B,EAAkB,CAAE,CAAC7x5B,GAAYnzF,GACnCs6J,IACA0q1B,EAAgB9q/B,OAASogK,GAC7B,MAAM9lJ,EAASqw+B,GAAwBpr7B,EAAMvvD,GAM7C,OAFIxN,MAAMiI,QAAQ6P,KACdww+B,EAAgBxw+B,OAASA,GACtB/a,EAAQqoR,QAAQkjuB,EAAiB,CACpCpv+B,QACA1L,WACAsK,OAAS9X,MAAMiI,QAAQ6P,GAAmB,SAATA,EACjC1K,KAAM,OACN8w1B,WAAYvjuB,EAAS,EACrBnpH,UAA0B,YAAfsh+B,EAA2B,YAAc,UAE5D,CCpBA,SAASyV,GAAe362B,EAAW462B,GAC/B562B,EAAU462B,SAAWA,EACrB562B,EAAU+mQ,SAAW,IACzB,CCDA,MAAM8zmB,GAA8B5gmB,IAAK,IAAMxuZ,OAAOwY,eAAe5R,KAAK0hC,QAAQpqC,UAAW,uHCoE7F,MAAMmx/B,GAA6B,CAC/BxT,WAAU,GACVD,UAAS,GACTI,UAASA,IAKb,MAAMsT,WAA6BtL,GAC/B36+B,WAAAA,CAAYzM,GACRkhY,MAAMlhY,GACN,MAAM,KAAEoL,EAAI,YAAE+2+B,EAAW,QAAEr7+B,EAAO,UAAEuG,GAAcnN,KAAKF,QACvDE,KAAKixC,SAAW,IAAI608B,GAAqB34+B,GAAW,CAACyv+B,EAAmBF,IAAkB18+B,KAAK4n/B,oBAAoBhL,EAAmBF,IAAgBxx+B,EAAM+2+B,EAAar7+B,GACzK5G,KAAKixC,SAASmx8B,iBAClB,CACAiG,YAAAA,CAAal7+B,EAAWuv+B,GACpB,IAAIt44B,EACJ,IAAI,SAAE/sF,EAAW,IAAG,MAAEowJ,EAAK,KAAE7gG,EAAI,KAAE9hE,EAAI,YAAEm9+B,EAAW,KAAE/2+B,EAAI,UAAEq6R,GAAevlS,KAAKF,QAKhF,KAAmC,QAA5BskG,EAAK694B,EAAY1gM,aAA0B,IAAPn9sB,OAAgB,EAASA,EAAG13F,SACnE,OAAO,EAlBnB,IA1CuC5M,EA2E/B,GARoB,kBAAT8mE,GACPgr7B,MACkBhr7B,KA1BZ2r7B,KA2BN3r7B,EAAO2r7B,GAA2B3r7B,IArElCkg7B,IAD2Bhn/B,EA2EGE,KAAKF,SA1EfgF,OACP,WAAjBhF,EAAQgF,OACP+s/B,GAAuB/x/B,EAAQ8mE,MAwEiB,CAC7C,MAAA6r7B,EAAmEzy/B,KAAKF,SAAlE,WAAE6wR,EAAU,SAAEyopB,EAAQ,YAAE6oE,EAAW,QAAEr7+B,GAAqB6r/B,EAAT3y/B,EAAOsn/B,GAAAqL,EAAAl9+B,IACxDm9+B,EAxElB,SAA8Bvl/B,EAAWrN,GAMrC,MAAM6y/B,EAAkB,IAAI/C,GAAmBr7mB,GAAAA,GAAC,CAAC,EAC1Cz0Y,GAAO,IACVqN,YACAq3H,OAAQ,EACRzhH,MAAO,EACP+j+B,aAAa,KAEjB,IAAI1m9B,EAAQ,CAAE++F,MAAM,EAAO/7H,MAAO+J,EAAU,IAC5C,MAAMyl/B,EAAwB,GAK9B,IAAIrk+B,EAAI,EACR,MAAQ6R,EAAM++F,MAAQ5wG,EA/BN,KAgCZ6R,EAAQuy9B,EAAgBhC,OAAOpi+B,GAC/Bqk+B,EAAsBhy/B,KAAKw/B,EAAMh9B,OACjCmrB,GAvCY,GAyChB,MAAO,CACHk5I,WAAO3mK,EACPqM,UAAWyl/B,EACXv7+B,SAAUkX,EA5CE,GA6CZq4C,KAAM,SAEd,CAyC0Cis7B,CAAqB1l/B,EAAWrN,GAKrC,KAJzBqN,EAAYul/B,EAAsBvl/B,WAIpB9M,SACV8M,EAAU,GAAKA,EAAU,IAE7BkK,EAAWq7+B,EAAsBr7+B,SACjCowJ,EAAQir1B,EAAsBjr1B,MAC9B7gG,EAAO8r7B,EAAsB9r7B,KAC7B9hE,EAAO,WACX,CACA,MAAM2yI,EAAYy62B,GAAoBjQ,EAAY1gM,MAAM70yB,QAASxB,EAAMiC,EAASonY,GAAAA,GAAA,GAAOv0Y,KAAKF,SAAO,IAAEuX,WAAUowJ,QAAO7gG,UAyBtH,OAtBA6wE,EAAU8tJ,UAA0B,OAAdA,QAAoC,IAAdA,EAAuBA,EAAYvlS,KAAKyn/B,gBAChFzn/B,KAAK8y/B,iBACLV,GAAe362B,EAAWz3I,KAAK8y/B,iBAC/B9y/B,KAAK8y/B,qBAAkBhy/B,GAWvB22I,EAAU+mQ,SAAW,KACjB,MAAM,WAAE7tH,GAAe3wR,KAAKF,QAC5Bmi/B,EAAYj5+B,IAAIyz+B,GAAiBtv+B,EAAWnN,KAAKF,QAAS48+B,IAC1D/rtB,GAAcA,IACd3wR,KAAK4gF,SACL5gF,KAAKmo/B,wBAAwB,EAG9B,CACH1w2B,YACApgI,WACAowJ,QACA3iK,OACA8hE,OACAz5D,UAAWA,EAEnB,CACA,YAAIkK,GACA,MAAM,SAAE0o+B,GAAa//+B,KACrB,IAAK+/+B,EACD,OAAO,EACX,MAAM,SAAE1o+B,GAAa0o+B,EACrB,OAAOjE,GAAsBzk+B,EACjC,CACA,QAAIkO,GACA,MAAM,SAAEw69B,GAAa//+B,KACrB,IAAK+/+B,EACD,OAAO,EACX,MAAM,UAAEto2B,GAAcso2B,EACtB,OAAOjE,GAAsBrk2B,EAAU+gnB,aAAe,EAC1D,CACA,QAAIjzuB,CAAKyh+B,GACL,MAAM,SAAEjH,GAAa//+B,KACrB,IAAK+/+B,EACD,OACJ,MAAM,UAAEto2B,GAAcso2B,EACtBto2B,EAAU+gnB,YAAcqjP,GAAsBmL,EAClD,CACA,SAAI98M,GACA,MAAM,SAAE61M,GAAa//+B,KACrB,IAAK+/+B,EACD,OAAO,EACX,MAAM,UAAEto2B,GAAcso2B,EACtB,OAAOto2B,EAAUs72B,YACrB,CACA,SAAI7oN,CAAMinN,GACN,MAAM,SAAEpR,GAAa//+B,KACrB,IAAK+/+B,EACD,OACJ,MAAM,UAAEto2B,GAAcso2B,EACtBto2B,EAAUs72B,aAAe5B,CAC7B,CACA,SAAI/w9B,GACA,MAAM,SAAE2/8B,GAAa//+B,KACrB,IAAK+/+B,EACD,MAAO,OACX,MAAM,UAAEto2B,GAAcso2B,EACtB,OAAOto2B,EAAUu72B,SACrB,CACA,aAAIzttB,GACA,MAAM,SAAEw6sB,GAAa//+B,KACrB,IAAK+/+B,EACD,OAAO,KACX,MAAM,UAAEto2B,GAAcso2B,EAGtB,OAAOto2B,EAAU8tJ,SACrB,CAKA6stB,cAAAA,CAAeC,GACX,GAAKry/B,KAAK2n/B,UAGL,CACD,MAAM,SAAE5H,GAAa//+B,KACrB,IAAK+/+B,EACD,OAAOrx3B,GACX,MAAM,UAAE+oB,GAAcso2B,EACtBqS,GAAe362B,EAAW462B,EAC9B,MARIry/B,KAAK8y/B,gBAAkBT,EAS3B,OAAO3j4B,EACX,CACA0poB,IAAAA,GACI,GAAIp4vB,KAAKqn/B,UACL,OACJ,MAAM,SAAEtH,GAAa//+B,KACrB,IAAK+/+B,EACD,OACJ,MAAM,UAAEto2B,GAAcso2B,EACM,aAAxBto2B,EAAUu72B,WACVhz/B,KAAKwn/B,wBAET/v2B,EAAU2gnB,MACd,CACAp0W,KAAAA,GACI,MAAM,SAAE+7lB,GAAa//+B,KACrB,IAAK+/+B,EACD,OACJ,MAAM,UAAEto2B,GAAcso2B,EACtBto2B,EAAUusQ,OACd,CACAjtW,IAAAA,GAGI,GAFA/2C,KAAKixC,SAAS2vC,SACd5gF,KAAKqn/B,WAAY,EACE,SAAfrn/B,KAAKogC,MACL,OACJpgC,KAAKmo/B,yBACLno/B,KAAKwn/B,wBACL,MAAM,SAAEzH,GAAa//+B,KACrB,IAAK+/+B,EACD,OACJ,MAAM,UAAEto2B,EAAS,UAAEtqI,EAAS,SAAEkK,EAAQ,KAAEvS,EAAI,KAAE8hE,EAAI,MAAE6gG,GAAUs40B,EAC9D,GAA4B,SAAxBto2B,EAAUu72B,WACc,aAAxBv72B,EAAUu72B,UACV,OAUJ,GAAIhz/B,KAAKulB,KAAM,CACX,MAAA0t+B,EAAmEjz/B,KAAKF,SAAlE,YAAEmi/B,EAAW,SAAE7oE,EAAQ,WAAEzopB,EAAU,QAAE/pR,GAAqBqs/B,EAATnz/B,EAAOsn/B,GAAA6L,EAAAlk+B,IACxD4j+B,EAAkB,IAAI/C,GAAmBr7mB,GAAAA,GAAC,CAAC,EAC1Cz0Y,GAAO,IACVqN,YACAkK,WACAvS,OACA8hE,OACA6gG,QACAq/0B,aAAa,KAEXoM,EAAarX,GAAsB77+B,KAAKulB,MAC9C089B,EAAYkR,gBAAgBR,EAAgBhC,OAAOuC,EAjQ3C,IAiQqE9v/B,MAAOuv/B,EAAgBhC,OAAOuC,GAAY9v/B,MAjQ/G,GAkQZ,CACA,MAAM,OAAE8s/B,GAAWlw/B,KAAKF,QACxBow/B,GAAUA,IACVlw/B,KAAK4gF,QACT,CACA06lB,QAAAA,GACI,MAAM,SAAEykU,GAAa//+B,KAChB+/+B,GAELA,EAASto2B,UAAUmgQ,QACvB,CACAh3T,MAAAA,GACI,MAAM,SAAEm/5B,GAAa//+B,KAChB+/+B,GAELA,EAASto2B,UAAU72D,QACvB,CACA,eAAOmoR,CAASjpW,GACZ,MAAM,YAAEmi/B,EAAW,KAAE/2+B,EAAI,YAAEi8+B,EAAW,WAAExK,EAAU,QAAEV,EAAO,KAAEn3+B,GAAShF,EACtE,OAAQwy/B,MACJpn/B,GACAom/B,GAAkB7i+B,IAAIvjB,IACtB+2+B,GACAA,EAAY1gM,OACZ0gM,EAAY1gM,MAAM70yB,mBAAmBhB,cAKpCu2+B,EAAY1gM,MAAMi6L,WAAWpiE,WAC7B+tE,GACc,WAAfxK,GACY,IAAZV,GACS,YAATn3+B,CACR,ECxTJ,MAAMsu/B,GAAyB1hmB,IAAK,SAAgC5wZ,IAA1B8+B,OAAOyz9B,iBCAjD,MAAMC,GACF/m/B,WAAAA,CAAYgn/B,GAERvz/B,KAAK+2C,KAAO,IAAM/2C,KAAKwz/B,OAAO,QAC9Bxz/B,KAAKuz/B,WAAaA,EAAWln+B,OAAO8qH,QACxC,CACApnG,IAAAA,CAAK0j9B,EAAWC,GACZ,OAAOt03B,QAAQ9wF,IAAItuC,KAAKuz/B,YAAYxj9B,KAAK0j9B,GAAWxx2B,MAAMyx2B,EAC9D,CAIAC,MAAAA,CAAO7v+B,GACH,OAAO9jB,KAAKuz/B,WAAW,GAAGzv+B,EAC9B,CACA8v+B,MAAAA,CAAO9v+B,EAAU0c,GACb,IAAK,IAAIv+B,EAAI,EAAGA,EAAIjC,KAAKuz/B,WAAWlz/B,OAAQ4B,IACxCjC,KAAKuz/B,WAAWtx/B,GAAG6hB,GAAY0c,CAEvC,CACA4x9B,cAAAA,CAAeC,EAAUtz9B,GACrB,MAAM809B,EAAgB7z/B,KAAKuz/B,WAAWjq/B,KAAKmuI,GACnC272B,MAA4B372B,EAAU262B,eAC/B362B,EAAU262B,eAAeC,GAGzBtz9B,EAAS04G,KAGxB,MAAO,KACHo82B,EAActy/B,SAAQ,CAACq/E,EAAQ3+E,KAC3B2+E,GAAUA,IACV5gF,KAAKuz/B,WAAWtx/B,GAAG80C,MAAM,GAC3B,CAEV,CACA,QAAIxxB,GACA,OAAOvlB,KAAK2z/B,OAAO,OACvB,CACA,QAAIpu+B,CAAKA,GACLvlB,KAAK4z/B,OAAO,OAAQru+B,EACxB,CACA,SAAI2kxB,GACA,OAAOlqyB,KAAK2z/B,OAAO,QACvB,CACA,SAAIzpN,CAAMA,GACNlqyB,KAAK4z/B,OAAO,QAAS1pN,EACzB,CACA,aAAI3kgB,GACA,OAAOvlS,KAAK2z/B,OAAO,YACvB,CACA,YAAIt8+B,GACA,IAAIqS,EAAM,EACV,IAAK,IAAIznB,EAAI,EAAGA,EAAIjC,KAAKuz/B,WAAWlz/B,OAAQ4B,IACxCynB,EAAM7mB,KAAK6mB,IAAIA,EAAK1pB,KAAKuz/B,WAAWtx/B,GAAGoV,UAE3C,OAAOqS,CACX,CACA8p+B,MAAAA,CAAOvvzB,GACHjkM,KAAKuz/B,WAAWhy/B,SAASuy/B,GAAaA,EAAS7vzB,MACnD,CACAqwZ,OAAAA,GACIt0lB,KAAKwz/B,OAAO,UAChB,CACAp7P,IAAAA,GACIp4vB,KAAKwz/B,OAAO,OAChB,CACAxvmB,KAAAA,GACIhkZ,KAAKwz/B,OAAO,QAChB,CACA5y6B,MAAAA,GACI5gF,KAAKwz/B,OAAO,SAChB,CACAl4U,QAAAA,GACIt7qB,KAAKwz/B,OAAO,WAChB,sICjEJ,MAAMO,GAAqB,SAAC7o/B,EAAM9H,EAAO8iB,GAAM,IAAE/O,EAAUnK,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGpG,EAAOoG,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAAEkz/B,EAAShn/B,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAAA,OAAM6vR,IACtF,MAAMsjuB,EAAkB5X,GAAmBll+B,EAAYjM,IAAS,CAAC,EAM3D6X,EAAQkx+B,EAAgBlx+B,OAAS5L,EAAW4L,OAAS,EAK3D,IAAI,QAAE29D,EAAU,GAAMvpE,EACtBupE,GAAoBm75B,GAAsB949B,GAC1C,IAAIjjB,EAAOy0Y,GAAAA,GAAA,CACPpnY,UAAWtD,MAAMiI,QAAQoU,GAAUA,EAAS,CAAC,KAAMA,GACnD0gD,KAAM,UACNk4Y,SAAU17c,EAAMu2e,eACbs6gB,GAAe,IAClBlx+B,OAAQ29D,EACR041B,SAAW924B,IACPl/B,EAAM4F,IAAIs5B,GACV2x9B,EAAgB76E,UAAY66E,EAAgB76E,SAAS924B,EAAE,EAE3DquP,WAAYA,KACRA,IACAsjuB,EAAgBtjuB,YAAcsjuB,EAAgBtjuB,YAAY,EAE9DzlR,OACA+2+B,YAAa7++B,EACbwD,QAASot/B,OAAYlz/B,EAAY8F,KCrCzC,SAA4BmP,GAA2I,IAA1I,KAAEm++B,EAAMnx+B,MAAOox+B,EAAM,cAAEC,EAAa,gBAAEC,EAAe,iBAAEC,EAAgB,OAAE9v3B,EAAM,WAAEm42B,EAAU,YAAEwK,EAAW,KAAErk/B,EAAI,QAAE49E,GAAwB3qE,EAAZoB,EAAUiw+B,GAAArx+B,EAAAR,IAC/J,QAASrS,OAAOgkB,KAAK/P,GAAY9W,MACrC,EDyCSk0/B,CAAoBN,KACrBn0/B,EAAOy0Y,GAAAA,GAAA,GACAz0Y,GACAs8+B,GAAqBlx+B,EAAMpL,KAQlCA,EAAQuX,WACRvX,EAAQuX,SAAWwk+B,GAAsB/7+B,EAAQuX,WAEjDvX,EAAQqn/B,cACRrn/B,EAAQqn/B,YAActL,GAAsB/7+B,EAAQqn/B,mBAEnCrm/B,IAAjBhB,EAAQgD,OACRhD,EAAQqN,UAAU,GAAKrN,EAAQgD,MAEnC,IAAI0x/B,GAAa,EAmBjB,KAlBqB,IAAjB10/B,EAAQgF,MACc,IAArBhF,EAAQuX,WAAmBvX,EAAQqn/B,eACpCrn/B,EAAQuX,SAAW,EACG,IAAlBvX,EAAQijB,QACRyx+B,GAAa,KAGjBjY,IACAD,MACAkY,GAAa,EACb10/B,EAAQuX,SAAW,EACnBvX,EAAQijB,MAAQ,GAOhByx+B,IAAeR,QAA6Blz/B,IAAhBsC,EAAM2F,MAAqB,CACvD,MAAM2z+B,EAAgBD,GAAiB38+B,EAAQqN,UAAW8m/B,GAC1D,QAAsBnz/B,IAAlB47+B,EAOA,OANAv03B,GAAM5pE,QAAO,KACTz+C,EAAQs56B,SAASsjE,GACjB58+B,EAAQ6wR,YAAY,IAIjB,IAAI2iuB,GAAsB,GAEzC,CAMA,OAAKU,GAAaxB,GAAqBzppB,SAASjpW,GACrC,IAAI0y/B,GAAqB1y/B,GAGzB,IAAI8v/B,GAAoB9v/B,EACnC,CACH,EE9GD,SAAS20/B,GAAczj9B,EAAKhhB,IACG,IAAvBghB,EAAIttC,QAAQssB,IACZghB,EAAIpwC,KAAKovB,EACjB,CACA,SAAS8nY,GAAW9mX,EAAKhhB,GACrB,MAAMpsB,EAAQotC,EAAIttC,QAAQssB,GACtBpsB,GAAS,GACTotC,EAAI0uB,OAAO97D,EAAO,EAC1B,CCNA,MAAM8w/B,GACFno/B,WAAAA,GACIvM,KAAK6z/B,cAAgB,EACzB,CACAnx9B,GAAAA,CAAI4tG,GAEA,OADAmk3B,GAAcz0/B,KAAK6z/B,cAAevj3B,GAC3B,IAAMwnR,GAAW93Z,KAAK6z/B,cAAevj3B,EAChD,CACAtgG,MAAAA,CAAO3kB,EAAG4H,EAAG+O,GACT,MAAM2y9B,EAAmB30/B,KAAK6z/B,cAAcxz/B,OAC5C,GAAKs0/B,EAEL,GAAyB,IAArBA,EAIA30/B,KAAK6z/B,cAAc,GAAGxo+B,EAAG4H,EAAG+O,QAG5B,IAAK,IAAI//B,EAAI,EAAGA,EAAI0y/B,EAAkB1y/B,IAAK,CAKvC,MAAMquI,EAAUtwI,KAAK6z/B,cAAc5x/B,GACnCquI,GAAWA,EAAQjlH,EAAG4H,EAAG+O,EAC7B,CAER,CACA+pT,OAAAA,GACI,OAAO/rV,KAAK6z/B,cAAcxz/B,MAC9B,CACAm9B,KAAAA,GACIx9B,KAAK6z/B,cAAcxz/B,OAAS,CAChC,EC1BJ,MAIMu0/B,GAAsB,CACxBlo/B,aAAS5L,GAOb,MAAM+z/B,GASFto/B,WAAAA,CAAYo1B,GAAoB,IAAA5hC,EAAA,SAAdD,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAKzBhN,KAAK8uC,QAAU,UAQf9uC,KAAK80/B,iBAAmB,KAIxB90/B,KAAK+wI,OAAS,CAAC,EACf/wI,KAAK+0/B,gBAAkB,SAACzy9B,GAAqB,IAAlB9C,IAAMxyB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GAC7B,MAAMwrvB,EAAcjzuB,GAAKmtB,MAMrB3yC,EAAKi1/B,YAAcx8P,GACnBz4vB,EAAKk1/B,oBAETl1/B,EAAKoF,KAAOpF,EAAK2M,QACjB3M,EAAKm1/B,WAAW5y9B,GAEZviC,EAAK2M,UAAY3M,EAAKoF,MAAQpF,EAAKgxI,OAAOp/D,QAC1C5xE,EAAKgxI,OAAOp/D,OAAO3hC,OAAOjwC,EAAK2M,SAG/B8yB,GAAUz/B,EAAKgxI,OAAOok3B,eACtBp1/B,EAAKgxI,OAAOok3B,cAAcnl9B,OAAOjwC,EAAK2M,QAE9C,EACA1M,KAAKo1/B,aAAc,EACnBp1/B,KAAKk1/B,WAAWvz9B,GAChB3hC,KAAKuhzB,MAAQzhzB,EAAQyhzB,KACzB,CACA2zM,UAAAA,CAAWxo/B,GA/DEtJ,MAgETpD,KAAK0M,QAAUA,EACf1M,KAAKg1/B,UAAYzv+B,GAAKmtB,MACQ,OAA1B1yC,KAAK80/B,uBAAyCh0/B,IAAZ4L,IAClC1M,KAAK80/B,kBAnEA1x/B,EAmE2BpD,KAAK0M,SAlErC+mC,MAAM7oB,WAAWxnB,KAoEzB,CACA6x/B,iBAAAA,GAAiD,IAA/BI,EAAcro/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGhN,KAAK0M,QACpC1M,KAAKq1/B,eAAiBA,EACtBr1/B,KAAKs1/B,cAAgBt1/B,KAAKg1/B,SAC9B,CAyCAO,QAAAA,CAAS/wK,GAIL,OAAOxk1B,KAAK24C,GAAG,SAAU6ryB,EAC7B,CACA7ryB,EAAAA,CAAG0lnB,EAAW53pB,GACLzG,KAAK+wI,OAAOsthB,KACbr+pB,KAAK+wI,OAAOsthB,GAAa,IAAIq2V,IAEjC,MAAMjwK,EAAczk1B,KAAK+wI,OAAOsthB,GAAW37nB,IAAIj8B,GAC/C,MAAkB,WAAd43pB,EACO,KACHomL,IAKAt8tB,GAAM8tQ,MAAK,KACFj2X,KAAK+wI,OAAOp/D,OAAOo6Q,WACpB/rV,KAAK+2C,MACT,GACF,EAGH0tyB,CACX,CACA+wK,cAAAA,GACI,IAAK,MAAMC,KAAiBz1/B,KAAK+wI,OAC7B/wI,KAAK+wI,OAAO0k3B,GAAej49B,OAEnC,CAMA4xmB,MAAAA,CAAOsmX,EAAeC,GAClB31/B,KAAK01/B,cAAgBA,EACrB11/B,KAAK21/B,kBAAoBA,CAC7B,CAgBA3s/B,GAAAA,CAAIs5B,GAAkB,IAAf9C,IAAMxyB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GACJwyB,GAAWx/B,KAAK01/B,cAIjB11/B,KAAK01/B,cAAcpz9B,EAAGtiC,KAAK+0/B,iBAH3B/0/B,KAAK+0/B,gBAAgBzy9B,EAAG9C,EAKhC,CACA2z9B,eAAAA,CAAgBhu/B,EAAMuH,EAAS40H,GAC3BthI,KAAKgJ,IAAI0D,GACT1M,KAAKmF,UAAOrE,EACZd,KAAKq1/B,eAAiBlw/B,EACtBnF,KAAKs1/B,cAAgBt1/B,KAAKg1/B,UAAY1z3B,CAC1C,CAKA69U,IAAAA,CAAK78a,GAAwB,IAArBsz9B,IAAY5o/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GAChBhN,KAAK+0/B,gBAAgBzy9B,GACrBtiC,KAAKmF,KAAOm9B,EACZtiC,KAAKs1/B,cAAgBt1/B,KAAKq1/B,oBAAiBv0/B,EAC3C80/B,GAAgB51/B,KAAK+2C,OACjB/2C,KAAK21/B,mBACL31/B,KAAK21/B,mBACb,CAQA5s/B,GAAAA,GAII,OAHI6r/B,GAAoBlo/B,SACpBko/B,GAAoBlo/B,QAAQ9L,KAAKZ,MAE9BA,KAAK0M,OAChB,CAIAmp/B,WAAAA,GACI,OAAO71/B,KAAKmF,IAChB,CAQAw0e,WAAAA,GACI,MAAM6+Q,EAAcjzuB,GAAKmtB,MACzB,IAAK1yC,KAAK80/B,uBACkBh0/B,IAAxBd,KAAKq1/B,gBACL78P,EAAcx4vB,KAAKg1/B,UAnOJ,GAoOf,OAAO,EAEX,MAAM1z3B,EAAQz+H,KAAK8mB,IAAI3pB,KAAKg1/B,UAAYh1/B,KAAKs1/B,cAtO1B,IAwOnB,OAAO5M,GAAkB999B,WAAW5qB,KAAK0M,SACrCke,WAAW5qB,KAAKq1/B,gBAAiB/z3B,EACzC,CAaAx6G,KAAAA,CAAMgv+B,GAEF,OADA91/B,KAAK+2C,OACE,IAAIqoF,SAAS3uF,IAChBzwC,KAAKo1/B,aAAc,EACnBp1/B,KAAKy3I,UAAYq+2B,EAAerl9B,GAC5BzwC,KAAK+wI,OAAOgl3B,gBACZ/1/B,KAAK+wI,OAAOgl3B,eAAe/l9B,QAC/B,IACDD,MAAK,KACA/vC,KAAK+wI,OAAOil3B,mBACZh2/B,KAAK+wI,OAAOil3B,kBAAkBhm9B,SAElChwC,KAAKi2/B,gBAAgB,GAE7B,CAMAl/8B,IAAAA,GACQ/2C,KAAKy3I,YACLz3I,KAAKy3I,UAAU1gG,OACX/2C,KAAK+wI,OAAOml3B,iBACZl2/B,KAAK+wI,OAAOml3B,gBAAgBlm9B,UAGpChwC,KAAKi2/B,gBACT,CAMAE,WAAAA,GACI,QAASn2/B,KAAKy3I,SAClB,CACAw+2B,cAAAA,UACWj2/B,KAAKy3I,SAChB,CAUA+Y,OAAAA,GACIxwJ,KAAKw1/B,iBACLx1/B,KAAK+2C,OACD/2C,KAAK21/B,mBACL31/B,KAAK21/B,mBAEb,EAEJ,SAAS1T,GAAYtg9B,EAAM7hC,GACvB,OAAO,IAAI+0/B,GAAYlz9B,EAAM7hC,EACjC,yCCpTA,SAASs2/B,GAAe/a,EAAen6+B,EAAKkC,GACpCi4+B,EAActwkB,SAAS7pa,GACvBm6+B,EAAcnn9B,SAAShzB,GAAK8H,IAAI5F,GAGhCi4+B,EAAcgb,SAASn1/B,EAAK+g/B,GAAY7++B,GAEhD,CCZA,MAAMkz/B,GAAezj/B,GAAQA,EAAIxP,QAAQ,kBAAoB,SAAS0N,cCAhEwl/B,GAA+B,QAAUD,GADjB,kBCA9B,SAASE,GAAqBnb,GAC1B,OAAOA,EAAct2+B,MAAMwx/B,GAC/B,CCJA,MAAME,GAAiBrz/B,GAAU+zI,QAAQ/zI,GAASA,EAAMu2e,aCExD,SAAS+8gB,GAAqBrb,EAAen6+B,GACzC,MAAMy1/B,EAAatb,EAAcnn9B,SAAS,cAK1C,GCN6B9wB,EDMDuz/B,ECLrBx/2B,QAAQs/2B,GAAcrz/B,IAAUA,EAAMs/B,KDMzC,OAAOi09B,EAAWj09B,IAAIxhC,GCP9B,IAAiCkC,CDSjC,yCEGA,SAASwz/B,GAAoB7g/B,EAAoC7U,GAAK,IAAxC,cAAE21/B,EAAa,eAAEC,GAAgB/g/B,EAC3D,MAAMgh/B,EAAcF,EAAcn7+B,eAAexa,KAAgC,IAAxB41/B,EAAe51/B,GAExE,OADA41/B,EAAe51/B,IAAO,EACf61/B,CACX,CACA,SAASC,GAAc3b,EAAe4b,GAAmE,IAA9C,MAAEl0+B,EAAQ,EAAC,mBAAEm0+B,EAAkB,KAAEpy/B,GAAMkI,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAClG,IAAIo3F,EACJ,IAAI,WAAEjtF,EAAakk+B,EAAce,uBAAsB,cAAE+a,GAA6BF,EAAX/w+B,EAAMkh+B,GAAK6P,EAAmB1h/B,IACrG2h/B,IACA//+B,EAAa+/+B,GACjB,MAAM3D,EAAa,GACb6D,EAAqBty/B,GACvBu2+B,EAAcgc,gBACdhc,EAAcgc,eAAellR,WAAWrtuB,GAC5C,IAAK,MAAM5D,KAAOglB,EAAQ,CACtB,MAAM9iB,EAAQi4+B,EAAcnn9B,SAAShzB,EAAgD,QAA1CkjG,EAAKi34B,EAAcic,aAAap2/B,UAAyB,IAAPkjG,EAAgBA,EAAK,MAC5G6xU,EAAc/vZ,EAAOhlB,GAC3B,QAAoBJ,IAAhBm1a,GACCmhlB,GACGR,GAAqBQ,EAAoBl2/B,GAC7C,SAEJ,MAAM+y/B,EAAe1/mB,GAAA,CACjBxxX,SACGs59B,GAAmBll+B,GAAc,CAAC,EAAGjW,IAM5C,IAAI8y/B,GAAY,EAChB,GAAIp09B,OAAO239B,uBAAwB,CAC/B,MAAMC,EAAWhB,GAAqBnb,GACtC,GAAImc,EAAU,CACV,MAAMjytB,EAAY3lQ,OAAO239B,uBAAuBC,EAAUt2/B,EAAKinH,IAC7C,OAAdo9K,IACA0utB,EAAgB1utB,UAAYA,EAC5ByutB,GAAY,EAEpB,CACJ,CACA0C,GAAqBrb,EAAen6+B,GACpCkC,EAAM0jB,MAAMit+B,GAAmB7y/B,EAAKkC,EAAO6ya,EAAaolkB,EAAcoc,oBAAsB7b,GAAent9B,IAAIvtB,GACzG,CAAE4D,MAAM,GACRmv/B,EAAiB5Y,EAAe2Y,IACtC,MAAMv82B,EAAYr0I,EAAMq0I,UACpBA,GACA872B,EAAW3y/B,KAAK62I,EAExB,CAQA,OAPI0/2B,GACA/33B,QAAQ9wF,IAAIil9B,GAAYxj9B,MAAK,KACzBo4E,GAAM5pE,QAAO,KACT448B,GPnDhB,SAAmB9b,EAAeps8B,GAE9B,IAAAl5B,EADiBwl+B,GAAeF,EAAeps8B,IACsB,CAAC,GAAlE,cAAEko9B,EAAgB,CAAC,EAAC,WAAEhg/B,EAAa,CAAC,GAAcpB,EAARmQ,EAAMkh+B,GAAArx+B,EAAAR,IACpD2Q,EAAMquX,GAAAA,GAAA,GAAQruX,GAAWix+B,GACzB,IAAK,MAAMj2/B,KAAOglB,EAEdkw+B,GAAe/a,EAAen6+B,GQjBAohC,ERgBapc,EAAOhlB,GQd/C85+B,GAAkB148B,GAAKA,EAAEA,EAAEjiC,OAAS,IAAM,EAAIiiC,IAFnBA,KRmBtC,CO2CiCo19B,CAAUrc,EAAe8b,EAAc,GAC1D,IAGH5D,CACX,CErEA,SAASoE,GAAetc,EAAejs9B,GAAuB,IAAdtvB,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvD,IAAIo3F,EACJ,MAAM274B,EAAWxE,GAAeF,EAAejs9B,EAA0B,SAAjBtvB,EAAQgF,KACjB,QAAxCs/F,EAAKi34B,EAAcuc,uBAAoC,IAAPxz5B,OAAgB,EAASA,EAAGgvS,YAC7EtyY,GACN,IAAI,WAAEqW,EAAakk+B,EAAce,wBAA0B,CAAC,GAAM2D,GAAY,CAAC,EAC3Ejg/B,EAAQo3/B,qBACR//+B,EAAarX,EAAQo3/B,oBAMzB,MAAMW,EAAe9X,EACf,IAAM3g3B,QAAQ9wF,IAAI0o9B,GAAc3b,EAAe0E,EAAUjg/B,IACzD,IAAMs/H,QAAQ3uF,UAKdqn9B,EAAqBzc,EAAc0c,iBAAmB1c,EAAc0c,gBAAgB9v/B,KACpF,WAAsB,IAArB+v/B,EAAYhr/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EACd,MAAM,cAAEon/B,EAAgB,EAAC,gBAAEC,EAAe,iBAAEC,GAAsBn9+B,EAClE,OAkBZ,SAAyBkk+B,EAAejs9B,GAAgF,IAAvEgl+B,EAAapn/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAGqn/B,EAAern/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAGsn/B,EAAgBtn/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAGlN,EAAOkN,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAClH,MAAMyy/B,EAAa,GACb0E,GAAsB5c,EAAc0c,gBAAgB9v/B,KAAO,GAAKos/B,EAChE6D,EAA+C,IAArB5D,EAC1B,WAAM,OAAJtn/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAAUqn/B,CAAe,EAC9B,WAAM,OAAK4D,GAATjr/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAA+Bqn/B,CAAe,EAUzD,OATAxq/B,MAAM/G,KAAKu4+B,EAAc0c,iBACpBzm+B,KAAK6m+B,IACL52/B,SAAQ,CAACmsE,EAAOzrE,KACjByrE,EAAM19B,OAAO,iBAAkB5gB,GAC/Bmk+B,EAAW3y/B,KAAK+2/B,GAAejq7B,EAAOt+C,EAAOmlX,GAAAA,GAAA,GACtCz0Y,GAAO,IACVijB,MAAOqx+B,EAAgB8D,EAAwBj2/B,MAChD8tC,MAAK,IAAM29B,EAAM19B,OAAO,oBAAqB5gB,KAAU,IAEvDgwG,QAAQ9wF,IAAIil9B,EACvB,CAlCmB6E,CAAgB/c,EAAejs9B,EAASgl+B,EAAgB4D,EAAc3D,EAAiBC,EAAkBx0/B,EACpH,EACE,IAAMs/H,QAAQ3uF,WAKd,KAAEyj9B,GAAS/8+B,EACjB,GAAI+8+B,EAAM,CACN,MAAOxi9B,EAAOC,GAAiB,mBAATui9B,EAChB,CAAC2D,EAAcC,GACf,CAACA,EAAoBD,GAC3B,OAAOnm9B,IAAQ3B,MAAK,IAAM4B,KAC9B,CAEI,OAAOytF,QAAQ9wF,IAAI,CAACup9B,IAAgBC,EAAmBh4/B,EAAQijB,QAEvE,CAkBA,SAASo1+B,GAAgB9s+B,EAAG4H,GACxB,OAAO5H,EAAEgt+B,iBAAiBpl+B,EAC9B,CC5DA,MAAMql+B,GAAkB5c,GAAar7+B,OACrC,SAASk4/B,GAAkBld,GACvB,IAAKA,EACD,OACJ,IAAKA,EAAcmd,sBAAuB,CACtC,MAAMxp9B,EAAUqs8B,EAAcx2+B,QACxB0z/B,GAAkBld,EAAcx2+B,SAChC,CAAC,EAIP,YAHoC/D,IAAhCu6+B,EAAct2+B,MAAM+jV,UACpB95S,EAAQ85S,QAAUuypB,EAAct2+B,MAAM+jV,SAEnC95S,CACX,CACA,MAAMA,EAAU,CAAC,EACjB,IAAK,IAAI/sC,EAAI,EAAGA,EAAIq2/B,GAAiBr2/B,IAAK,CACtC,MAAMiJ,EAAOww+B,GAAaz5+B,GACpBghB,EAAOo49B,EAAct2+B,MAAMmG,IAC7Biw+B,GAAel49B,KAAkB,IAATA,KACxB+rB,EAAQ9jC,GAAQ+X,EAExB,CACA,OAAO+rB,CACX,yCChBMyp9B,GAAuB,IAAIhd,IAAsBps6B,UACjDqp7B,GAAoBjd,GAAqBp7+B,OAC/C,SAASs4/B,GAAYtd,GACjB,OAAQkY,GAAen03B,QAAQ9wF,IAAIil9B,EAAWjq/B,KAAIyM,IAAA,IAAC,UAAE0hI,EAAS,QAAE33I,GAASiW,EAAA,OCR7E,SAA8Bsl+B,EAAeps8B,GAA0B,IAE/DwoG,EAFiD33I,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAGhE,GAFAqu+B,EAAcrr8B,OAAO,iBAAkBf,GAEnCplC,MAAMiI,QAAQm9B,GAAa,CAC3B,MAAMsk9B,EAAatk9B,EAAW3lC,KAAK8lB,GAAYuo+B,GAAetc,EAAejs9B,EAAStvB,KACtF23I,EAAYrY,QAAQ9wF,IAAIil9B,EAC5B,MACK,GAA0B,kBAAftk9B,EACZwoG,EAAYkg3B,GAAetc,EAAeps8B,EAAYnvC,OAErD,CACD,MAAM84/B,EAA2C,oBAAf3p9B,EAC5Bss8B,GAAeF,EAAeps8B,EAAYnvC,EAAQszY,QAClDnkW,EACNwoG,EAAYrY,QAAQ9wF,IAAI0o9B,GAAc3b,EAAeud,EAAoB94/B,GAC7E,CACA,OAAO23I,EAAU1nG,MAAK,KAClBsr8B,EAAcrr8B,OAAO,oBAAqBf,EAAW,GAE7D,CDXkF4p9B,CAAqBxd,EAAe5j2B,EAAW33I,EAAQ,IACzI,CACA,SAASg5/B,GAAqBzd,GAC1B,IAAIpstB,EAAU0puB,GAAYtd,GACtBj78B,EAAQ249B,KACRC,GAAkB,EAKtB,MAAMC,EAA2Bn0/B,GAAS,CAACsc,EAAK6tB,KAC5C,IAAIm1D,EACJ,MAAM274B,EAAWxE,GAAeF,EAAeps8B,EAAqB,SAATnqC,EACZ,QAAxCs/F,EAAKi34B,EAAcuc,uBAAoC,IAAPxz5B,OAAgB,EAASA,EAAGgvS,YAC7EtyY,GACN,GAAIi/+B,EAAU,CACV,MAAM,WAAE5o+B,EAAU,cAAEgg/B,GAA6BpX,EAAX759B,EAAMkh+B,GAAKrH,EAAQxq+B,IACzD6L,EAAGmzX,GAAAA,GAAAA,GAAA,GAAQnzX,GAAQ8E,GAAWix+B,EAClC,CACA,OAAO/1+B,CAAG,EAmBd,SAAS83+B,EAAeC,GACpB,MAAM,MAAEp0/B,GAAUs2+B,EACZrs8B,EAAUup9B,GAAkBld,EAAcx2+B,SAAW,CAAC,EAKtD0u/B,EAAa,GAKb6F,EAAc,IAAIp99B,IAMxB,IAAIq99B,EAAkB,CAAC,EAKnBC,EAAsBti9B,IAO1B,IAAK,IAAI/0C,EAAI,EAAGA,EAAIy2/B,GAAmBz2/B,IAAK,CACxC,MAAM6C,EAAO2z/B,GAAqBx2/B,GAC5Bs3/B,EAAYn59B,EAAMt7B,GAClBme,OAAuBniB,IAAhBiE,EAAMD,GACbC,EAAMD,GACNkqC,EAAQlqC,GACR00/B,EAAgBre,GAAel49B,GAK/Bw2+B,EAAc30/B,IAASq0/B,EAAoBI,EAAU5uwB,SAAW,MAClD,IAAhB8uwB,IACAH,EAAsBr3/B,GAO1B,IAAIy3/B,EAAcz2+B,IAAS+rB,EAAQlqC,IAC/Bme,IAASle,EAAMD,IACf00/B,EAeJ,GAXIE,GACAV,GACA3d,EAAcse,yBACdD,GAAc,GAMlBH,EAAU1C,cAAatinB,GAAA,GAAQ8knB,IAI7BE,EAAU5uwB,UAA4B,OAAhB8uwB,IAElBx2+B,IAASs2+B,EAAUK,UAErB7e,GAAoB939B,IACJ,mBAATA,EACP,SAOJ,MAAM42+B,EAAmBC,GAAuBP,EAAUK,SAAU32+B,GACpE,IAAI82+B,EAAoBF,GAEnB/0/B,IAASq0/B,GACNI,EAAU5uwB,WACT+uwB,GACDF,GAEHv3/B,EAAIq3/B,GAAuBE,EAC5BQ,GAAuB,EAK3B,MAAMC,EAAiBpw/B,MAAMiI,QAAQmR,GAAQA,EAAO,CAACA,GAKrD,IAAIi3+B,EAAiBD,EAAe94+B,OAAO83+B,EAAwBn0/B,GAAO,CAAC,IACvD,IAAhB20/B,IACAS,EAAiB,CAAC,GAUtB,MAAM,mBAAEC,EAAqB,CAAC,GAAMZ,EAC9B199B,EAAO04W,GAAAA,GAAA,GACN4lnB,GACAD,GAEDE,EAAiBl5/B,IACnB64/B,GAAoB,EAChBX,EAAY3q+B,IAAIvtB,KAChB84/B,GAAuB,EACvBZ,EAAYvmmB,OAAO3xZ,IAEvBq4/B,EAAUzC,eAAe51/B,IAAO,EAChC,MAAM+g/B,EAAc5G,EAAcnn9B,SAAShzB,GACvC+g/B,IACAA,EAAYoY,WAAY,EAAK,EAErC,IAAK,MAAMn5/B,KAAO26B,EAAS,CACvB,MAAMz2B,EAAO80/B,EAAeh5/B,GACtBiE,EAAOg1/B,EAAmBj5/B,GAEhC,GAAIm4/B,EAAgB39+B,eAAexa,GAC/B,SAIJ,IAAIo5/B,GAAkB,EAElBA,EADAtf,GAAkB51+B,IAAS41+B,GAAkB71+B,IAC1B81+B,GAAe71+B,EAAMD,GAGtBC,IAASD,EAE3Bm1/B,OACax5/B,IAATsE,GAA+B,OAATA,EAEtBg1/B,EAAcl5/B,GAIdk4/B,EAAY129B,IAAIxhC,QAGNJ,IAATsE,GAAsBg0/B,EAAY3q+B,IAAIvtB,GAK3Ck5/B,EAAcl5/B,GAOdq4/B,EAAU1C,cAAc31/B,IAAO,CAEvC,CAKAq4/B,EAAUK,SAAW32+B,EACrBs2+B,EAAUY,mBAAqBD,EAI3BX,EAAU5uwB,WACV0uwB,EAAe9knB,GAAAA,GAAA,GAAQ8knB,GAAoBa,IAE3ClB,GAAmB3d,EAAckf,wBACjCR,GAAoB,GAQpBA,MAFyBL,GAAeG,IACIG,IAE5CzG,EAAW3y/B,QAAQq5/B,EAAe3w/B,KAAKmuI,IAAS,CAC5CA,UAAWA,EACX33I,QAAS,CAAEgF,YAGvB,CAMA,GAAIs0/B,EAAYnx/B,KAAM,CAClB,MAAMuy/B,EAAoB,CAAC,EAC3BpB,EAAY73/B,SAASL,IACjB,MAAMu5/B,EAAiBpf,EAAcqf,cAAcx5/B,GAC7C+g/B,EAAc5G,EAAcnn9B,SAAShzB,GACvC+g/B,IACAA,EAAYoY,WAAY,GAE5BG,EAAkBt5/B,GAA0B,OAAnBu5/B,QAA8C,IAAnBA,EAA4BA,EAAiB,IAAI,IAEzGlH,EAAW3y/B,KAAK,CAAE62I,UAAW+i3B,GACjC,CACA,IAAIG,EAAgBxj3B,QAAQo82B,EAAWlz/B,QAOvC,OANI24/B,IACmB,IAAlBj0/B,EAAM+jV,SAAqB/jV,EAAM+jV,UAAY/jV,EAAMkqR,SACnDostB,EAAcse,yBACfgB,GAAgB,GAEpB3B,GAAkB,EACX2B,EAAgB1ruB,EAAQskuB,GAAcn03B,QAAQ3uF,SACzD,CAkBA,MAAO,CACHyo9B,iBACA/7rB,UAhBJ,SAAmBr4T,EAAM6lP,GACrB,IAAIvmJ,EAEJ,GAAIhkE,EAAMt7B,GAAM6lP,WAAaA,EACzB,OAAOvrH,QAAQ3uF,UAEsB,QAAxC2zD,EAAKi34B,EAAc0c,uBAAoC,IAAP3z5B,GAAyBA,EAAG7iG,SAASmsE,IAAY,IAAI02B,EAAI,OAAuC,QAA/BA,EAAK12B,EAAM2p7B,sBAAmC,IAAPjz5B,OAAgB,EAASA,EAAG+4N,UAAUr4T,EAAM6lP,EAAS,IAC9MvqN,EAAMt7B,GAAM6lP,SAAWA,EACvB,MAAM4owB,EAAa2F,EAAep0/B,GAClC,IAAK,MAAM5D,KAAOk/B,EACdA,EAAMl/B,GAAK21/B,cAAgB,CAAC,EAEhC,OAAOtD,CACX,EAIIqH,mBAjQJ,SAA4BC,GACxB5ruB,EAAU4ruB,EAAaxf,EAC3B,EAgQIlpQ,SAAUA,IAAM/xsB,EAChB7D,MAAOA,KACH6D,EAAQ249B,KACRC,GAAkB,CAAI,EAGlC,CACA,SAASc,GAAuB30/B,EAAMC,GAClC,MAAoB,kBAATA,EACAA,IAASD,IAEX0E,MAAMiI,QAAQ1M,KACX61+B,GAAe71+B,EAAMD,EAGrC,CACA,SAAS21/B,KACL,MAAO,CACHnwwB,SAFyB39O,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAGzB6p/B,cAAe,CAAC,EAChBC,eAAgB,CAAC,EACjBqD,mBAAoB,CAAC,EAE7B,CACA,SAASpB,KACL,MAAO,CACH9puB,QAAS6ruB,IAAgB,GACzBC,YAAaD,KACbE,WAAYF,KACZG,SAAUH,KACVI,UAAWJ,KACXK,WAAYL,KACZr88B,KAAMq88B,KAEd,CEzUA,MAAMtzc,GACFj7iB,WAAAA,CAAY5H,GACR3E,KAAK0s6B,WAAY,EACjB1s6B,KAAK2E,KAAOA,CAChB,CACA45C,MAAAA,GAAW,ECHf,IAAInd,GAAK,ECCT,MAAMmy9B,GAAa,CACf972B,UAAW,CACP+va,QCDR,cAA+BA,GAM3Bj7iB,WAAAA,CAAY5H,GACRq8X,MAAMr8X,GACNA,EAAK0y/B,iBAAmB1y/B,EAAK0y/B,eAAiByB,GAAqBn0/B,GACvE,CACAy2/B,mCAAAA,GACI,MAAM,QAAEnsuB,GAAYjvR,KAAK2E,KAAK62+B,WAC1BT,GAAoB9rtB,KACpBjvR,KAAKq7/B,gBAAkBpsuB,EAAQ8xsB,UAAU/g+B,KAAK2E,MAEtD,CAIA4x+B,KAAAA,GACIv2+B,KAAKo7/B,qCACT,CACA788B,MAAAA,GACI,MAAM,QAAE0wO,GAAYjvR,KAAK2E,KAAK62+B,YACtBvstB,QAASqsuB,GAAgBt7/B,KAAK2E,KAAKk06B,WAAa,CAAC,EACrD5ppB,IAAYqsuB,GACZt7/B,KAAKo7/B,qCAEb,CACA/lF,OAAAA,GACI,IAAIjx0B,EACJpkG,KAAK2E,KAAK0y/B,eAAe969B,QACO,QAA/B6nE,EAAKpkG,KAAKq7/B,uBAAoC,IAAPj35B,GAAyBA,EAAGt6F,KAAK9J,KAC7E,ID9BAy+C,KAAM,CACF+ogB,QDLR,cAAmCA,GAC/Bj7iB,WAAAA,GACIy0X,SAASh0X,WACThN,KAAKohC,GAAKA,IACd,CACAmd,MAAAA,GACI,IAAKv+C,KAAK2E,KAAKiz/B,gBACX,OACJ,MAAM,UAAE2D,EAAS,eAAEC,GAAmBx7/B,KAAK2E,KAAKiz/B,iBACxC2D,UAAWE,GAAkBz7/B,KAAK2E,KAAK+2/B,qBAAuB,CAAC,EACvE,IAAK17/B,KAAK2E,KAAK0y/B,gBAAkBkE,IAAcE,EAC3C,OAEJ,MAAME,EAAgB37/B,KAAK2E,KAAK0y/B,eAAel6rB,UAAU,QAASo+rB,GAC9DC,IAAmBD,GACnBI,EAAc5r9B,MAAK,IAAMyr9B,EAAex7/B,KAAKohC,KAErD,CACAm18B,KAAAA,GACI,MAAM,SAAElk3B,GAAaryH,KAAK2E,KAAKiz/B,iBAAmB,CAAC,EAC/Cvl4B,IACAryH,KAAKq16B,QAAUhjzB,EAASryH,KAAKohC,IAErC,CACAi04B,OAAAA,GAAY,KG3BVumF,GAAa,CACfxz/B,GAAG,EACHC,GAAG,GAEP,SAASwz/B,KACL,OAAOD,GAAWxz/B,GAAKwz/B,GAAWvz/B,CACtC,CCJA,SAASyz/B,GAAaC,EAAmBj8/B,GACrC,MAAMkmd,ECHV,SAAyB+1iB,EAAmBryd,EAAOsyd,GAC/C,IAAI535B,EACJ,GAAI235B,aAA6Bvw9B,QAC7B,MAAO,CAACuw9B,GAEP,GAAiC,kBAAtBA,EAAgC,CAC5C,IAAIn3/B,EAAOlD,SACPgoiB,IAMA9kiB,EAAO8kiB,EAAMh9hB,SAEjB,MAAMs5c,EAAqH,QAAzG5hX,EAAuB,OAAlB435B,QAA4C,IAAlBA,OAA2B,EAASA,EAAcD,UAAuC,IAAP335B,EAAgBA,EAAKx/F,EAAKgF,iBAAiBmy/B,GAC9K,OAAO/1iB,EAAWn8c,MAAM/G,KAAKkjd,GAAY,EAC7C,CACA,OAAOn8c,MAAM/G,KAAKi5/B,EACtB,CDhBqBE,CAAgBF,GAC3BG,EAAyB,IAAIhhV,gBAOnC,MAAO,CAACl1N,EANUzxE,GAAAA,GAAA,CACd7uL,SAAS,GACN5lN,GAAO,IACVu7qB,OAAQ6gV,EAAuB7gV,SAEpBz6lB,IAAMs76B,EAAuB/l8B,QAEhD,CELA,SAASgm8B,GAAa11/B,GAClB,OAAQif,IACsB,UAAtBA,EAAM474B,aAA2Bu6F,MAErCp1/B,EAASif,EAAM,CAEvB,CCbA,MAAM02+B,GAAoB12+B,GACI,UAAtBA,EAAM474B,YACyB,kBAAjB574B,EAAMnG,QAAuBmG,EAAMnG,QAAU,GAWhC,IAApBmG,EAAM674B,UCbf86F,GAAa,IAAIj2nB,QCKvB,SAAS+1nB,GAAa11/B,GAClB,OAAQif,IACc,UAAdA,EAAMxkB,KAEVuF,EAASif,EAAM,CAEvB,CACA,SAAS42+B,GAAiBp2+B,EAAQphB,GAC9BohB,EAAOqgM,cAAc,IAAIg2yB,aAAa,UAAYz3/B,EAAM,CAAEy85B,WAAW,EAAMrD,SAAS,IACxF,CACA,MCfMysB,GAAoB,IAAI3u5B,IAAI,CAC9B,SACA,QACA,SACA,WACA,MCEJ,MAAMwg+B,GAAgBA,CAAC33/B,EAAQ6oE,MACtBA,IAGI7oE,IAAW6oE,GAIT8u7B,GAAc33/B,EAAQ6oE,EAAMmo6B,gBCH3C,SAAS4mB,GAAkB/2+B,GACvB,OAAO02+B,GAAiB12+B,KAAWm2+B,IACvC,CAoBA,SAASa,GAAMX,EAAmBY,GAA4B,IAAd78/B,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvD,MAAOg5c,EAAU42iB,EAAcC,GAAgBf,GAAaC,EAAmBj8/B,GACzEg9/B,EAAcC,IAChB,MAAMn2/B,EAAUm2/B,EAAWz5yB,cAC3B,IAAKm5yB,GAAkBM,IAAeV,GAAW5t+B,IAAI7nB,GACjD,OACJy1/B,GAAW359B,IAAI97B,GACf,MAAMo2/B,EAAaL,EAAaI,GAC1BE,EAAeA,CAACC,EAAUxg/B,KAC5BkjB,OAAOqf,oBAAoB,YAAak+8B,GACxCv99B,OAAOqf,oBAAoB,gBAAiBm+8B,GACvCX,GAAkBS,IAAcb,GAAW5t+B,IAAI7nB,KAGpDy1/B,GAAWxpmB,OAAOjsZ,GACdo2/B,GACAA,EAAWE,EAAU,CAAExg/B,YAC3B,EAEEyg/B,EAAeE,IACjBJ,EAAaI,EAASv9/B,EAAQw9/B,iBAC1Bd,GAAc51/B,EAASy2/B,EAAQn3+B,QAAQ,EAEzCk3+B,EAAmBG,IACrBN,EAAaM,GAAa,EAAM,EAEpC399B,OAAOlZ,iBAAiB,YAAay2+B,EAAaP,GAClDh99B,OAAOlZ,iBAAiB,gBAAiB02+B,EAAiBR,EAAa,EAU3E,OARA52iB,EAASzkd,SAASqF,KFxDtB,SAAqCA,GACjC,OAAO+j7B,GAAkBl85B,IAAI7nB,EAAQwf,WAAkC,IAAtBxf,EAAQ0g9B,QAC7D,EEuDak2C,CAA4B52/B,KAC7BA,EAAQ0g9B,SAAW,IAERxn9B,EAAQw9/B,gBAAkB199B,OAASh5B,GAC3C8f,iBAAiB,cAAeo2+B,EAAYF,GACnDh2/B,EAAQ8f,iBAAiB,SAAUhB,GHtDf+3+B,EAACC,EAAYd,KACrC,MAAMh2/B,EAAU82/B,EAAWp6yB,cAC3B,IAAK18M,EACD,OACJ,MAAM+2/B,EAAgBxB,IAAa,KAC/B,GAAIE,GAAW5t+B,IAAI7nB,GACf,OACJ01/B,GAAiB11/B,EAAS,QAC1B,MAAMg3/B,EAAczB,IAAa,KAC7BG,GAAiB11/B,EAAS,KAAK,IAGnCA,EAAQ8f,iBAAiB,QAASk3+B,EAAahB,GAC/Ch2/B,EAAQ8f,iBAAiB,QAFNise,IAAM2pgB,GAAiB11/B,EAAS,WAENg2/B,EAAa,IAE9Dh2/B,EAAQ8f,iBAAiB,UAAWi3+B,EAAef,GAInDh2/B,EAAQ8f,iBAAiB,QAAQ,IAAM9f,EAAQq4C,oBAAoB,UAAW0+8B,IAAgBf,EAAa,EGmC1Da,CAAoB/3+B,EAAOk3+B,IAAeA,EAAa,IAEjGC,CACX,CCtEA,SAASgB,GAAiBn4+B,GACtB,MAAO,CACHg7B,MAAO,CACHt4C,EAAGsd,EAAMs7B,MACT34C,EAAGqd,EAAMu7B,OAGrB,CCTA,SAAS688B,GAAY53+B,EAAQm4oB,EAAW/thB,GAAsC,IAA7BxwI,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAE04M,SAAS,GAElE,OADAx/L,EAAOQ,iBAAiB23oB,EAAW/thB,EAASxwI,GACrC,IAAMomB,EAAO+4B,oBAAoBo/mB,EAAW/thB,EACvD,CCAA,SAASyt3B,GAAgB73+B,EAAQm4oB,EAAW/thB,EAASxwI,GACjD,OAAOg+/B,GAAY53+B,EAAQm4oB,EFMP/thB,IACZ5qH,GAAU02+B,GAAiB12+B,IAAU4qH,EAAQ5qH,EAAOm4+B,GAAiBn4+B,IEPvCs4+B,CAAe1t3B,GAAUxwI,EACnE,CCLA,MAAMmkE,GAAWA,CAAC54C,EAAG4H,IAAMpwB,KAAKD,IAAIyoB,EAAI4H,GCWxC,MAAMgr+B,GACF1x/B,WAAAA,CAAYmZ,EAAOyP,GAAiF,IAAvE,mBAAE+o+B,EAAkB,cAAEC,EAAa,iBAAEC,GAAmB,GAAQpx/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAgE7F,GA5DAhN,KAAK+8/B,WAAa,KAIlB/8/B,KAAKq+/B,cAAgB,KAIrBr+/B,KAAKs+/B,kBAAoB,KAIzBt+/B,KAAKm1B,SAAW,CAAC,EAIjBn1B,KAAKm+/B,cAAgBv+9B,OACrB5/B,KAAKuprB,YAAc,KACf,IAAMvprB,KAAKq+/B,gBAAiBr+/B,KAAKs+/B,kBAC7B,OACJ,MAAM/h/B,EAAOgi/B,GAAWv+/B,KAAKs+/B,kBAAmBt+/B,KAAKipyB,SAC/Cu1N,EAAmC,OAApBx+/B,KAAK+8/B,WAIpB0B,EDxClB,SAAoBpz+B,EAAG4H,GAEnB,MAAMyr+B,EAASz67B,GAAS54C,EAAEjjB,EAAG6qB,EAAE7qB,GACzBu2/B,EAAS167B,GAAS54C,EAAEhjB,EAAG4qB,EAAE5qB,GAC/B,OAAOxF,KAAK2xC,KAAKkq9B,GAAU,EAAIC,GAAU,EAC7C,CCmC4CC,CAAWri/B,EAAKlV,OAAQ,CAAEe,EAAG,EAAGC,EAAG,KAAQ,EAC3E,IAAKm2/B,IAAiBC,EAClB,OACJ,MAAM,MAAE/98B,GAAUnkC,GACZ,UAAEq2X,GAAc8qmB,GACtB19+B,KAAKipyB,QAAQroyB,KAAI2zY,GAAAA,GAAC,CAAC,EAAI7zV,GAAK,IAAEkyV,eAC9B,MAAM,QAAEptL,EAAO,OAAEQ,GAAWhmN,KAAKm1B,SAC5Bqp+B,IACDh5yB,GAAWA,EAAQxlN,KAAKq+/B,cAAe9h/B,GACvCvc,KAAK+8/B,WAAa/8/B,KAAKq+/B,eAE3Br4yB,GAAUA,EAAOhmN,KAAKq+/B,cAAe9h/B,EAAK,EAE9Cvc,KAAK6+/B,kBAAoB,CAACn5+B,EAAOnJ,KAC7Bvc,KAAKq+/B,cAAgB34+B,EACrB1lB,KAAKs+/B,kBAAoBx3d,GAAevqhB,EAAMvc,KAAKk+/B,oBAEnD/14B,GAAM5pE,OAAOv+C,KAAKuprB,aAAa,EAAK,EAExCvprB,KAAK8+/B,gBAAkB,CAACp5+B,EAAOnJ,KAC3Bvc,KAAKgE,MACL,MAAM,MAAE+6/B,EAAK,aAAEC,EAAY,gBAAEC,GAAoBj//B,KAAKm1B,SAGtD,GAFIn1B,KAAKo+/B,kBACLa,GAAmBA,KACjBj//B,KAAKq+/B,gBAAiBr+/B,KAAKs+/B,kBAC7B,OACJ,MAAMY,EAAUX,GAA0B,kBAAf74+B,EAAM5gB,KAC3B9E,KAAKs+/B,kBACLx3d,GAAevqhB,EAAMvc,KAAKk+/B,oBAAqBl+/B,KAAKipyB,SACtDjpyB,KAAK+8/B,YAAcgC,GACnBA,EAAMr5+B,EAAOw5+B,GAEjBF,GAAgBA,EAAat5+B,EAAOw5+B,EAAQ,GAG3C9C,GAAiB12+B,GAClB,OACJ1lB,KAAKo+/B,iBAAmBA,EACxBp+/B,KAAKm1B,SAAWA,EAChBn1B,KAAKk+/B,mBAAqBA,EAC1Bl+/B,KAAKm+/B,cAAgBA,GAAiBv+9B,OACtC,MACMu/9B,EAAcr4d,GADP+2d,GAAiBn4+B,GACW1lB,KAAKk+/B,qBACxC,MAAEx98B,GAAUy+8B,GACZ,UAAEvsnB,GAAc8qmB,GACtB19+B,KAAKipyB,QAAU,CAAA10Z,GAAAA,GAAA,GAAM7zV,GAAK,IAAEkyV,eAC5B,MAAM,eAAEwsnB,GAAmBjq+B,EAC3Biq+B,GACIA,EAAe15+B,EAAO64+B,GAAWY,EAAan//B,KAAKipyB,UACvDjpyB,KAAKq//B,gBAAkB9jnB,GAAKwinB,GAAgB/9/B,KAAKm+/B,cAAe,cAAen+/B,KAAK6+/B,mBAAoBd,GAAgB/9/B,KAAKm+/B,cAAe,YAAan+/B,KAAK8+/B,iBAAkBf,GAAgB/9/B,KAAKm+/B,cAAe,gBAAiBn+/B,KAAK8+/B,iBAC9O,CACAQ,cAAAA,CAAenq+B,GACXn1B,KAAKm1B,SAAWA,CACpB,CACAnxB,GAAAA,GACIhE,KAAKq//B,iBAAmBr//B,KAAKq//B,kBAC7BphB,GAAYj++B,KAAKuprB,YACrB,EAEJ,SAASziJ,GAAevqhB,EAAM2h/B,GAC1B,OAAOA,EAAqB,CAAEx98B,MAAOw98B,EAAmB3h/B,EAAKmkC,QAAWnkC,CAC5E,CACA,SAASgj/B,GAAcl0+B,EAAG4H,GACtB,MAAO,CAAE7qB,EAAGijB,EAAEjjB,EAAI6qB,EAAE7qB,EAAGC,EAAGgjB,EAAEhjB,EAAI4qB,EAAE5qB,EACtC,CACA,SAASk2/B,GAAUxo/B,EAAYkzxB,GAAS,IAApB,MAAEvovB,GAAO3qC,EACzB,MAAO,CACH2qC,QACA4gF,MAAOi+3B,GAAc7+8B,EAAO8+8B,GAAgBv2N,IAC5C5hyB,OAAQk4/B,GAAc7+8B,EAAO++8B,GAAiBx2N,IAC9CnqV,SAAU66B,GAAYsvT,EAAS,IAEvC,CACA,SAASw2N,GAAiBx2N,GACtB,OAAOA,EAAQ,EACnB,CACA,SAASu2N,GAAgBv2N,GACrB,OAAOA,EAAQA,EAAQ5oyB,OAAS,EACpC,CACA,SAASs5e,GAAYsvT,EAASoL,GAC1B,GAAIpL,EAAQ5oyB,OAAS,EACjB,MAAO,CAAE+H,EAAG,EAAGC,EAAG,GAEtB,IAAIpG,EAAIgnyB,EAAQ5oyB,OAAS,EACrBq//B,EAAmB,KACvB,MAAMlwP,EAAYgwP,GAAgBv2N,GAClC,KAAOhnyB,GAAK,IACRy9/B,EAAmBz2N,EAAQhnyB,KACvButwB,EAAU58X,UAAY8snB,EAAiB9snB,UACvCipmB,GAAsBxnM,MAG1BpyyB,IAEJ,IAAKy9/B,EACD,MAAO,CAAEt3/B,EAAG,EAAGC,EAAG,GAEtB,MAAMkd,EAAOu29B,GAAsBtsO,EAAU58X,UAAY8snB,EAAiB9snB,WAC1E,GAAa,IAATrtX,EACA,MAAO,CAAEnd,EAAG,EAAGC,EAAG,GAEtB,MAAM8i/B,EAAkB,CACpB/i/B,GAAIonwB,EAAUpnwB,EAAIs3/B,EAAiBt3/B,GAAKmd,EACxCld,GAAImnwB,EAAUnnwB,EAAIq3/B,EAAiBr3/B,GAAKkd,GAQ5C,OANI4l+B,EAAgB/i/B,IAAM4uC,MACtBm08B,EAAgB/i/B,EAAI,GAEpB+i/B,EAAgB9i/B,IAAM2uC,MACtBm08B,EAAgB9i/B,EAAI,GAEjB8i/B,CACX,CCzJA,SAASwU,GAAY3z/B,GACjB,OAAQA,GACW,kBAARA,GACP9I,OAAO9B,UAAUsa,eAAe5R,KAAKkC,EAAK,UAClD,CCIA,SAAS4z/B,GAAWr+6B,GAChB,OAAOA,EAAK73D,IAAM63D,EAAK53D,GAC3B,CAIA,SAASk2+B,GAAcv+3B,EAAOxjG,EAAQ5X,GAAsB,IAAd47B,EAAM90C,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GACnDs0H,EAAMx/E,OAASA,EACfw/E,EAAMw+3B,YAAcpT,GAAU5u9B,EAAOnU,IAAKmU,EAAOpU,IAAK43G,EAAMx/E,QAC5Dw/E,EAAM5xH,MAAQkw/B,GAAW15+B,GAAU05+B,GAAW9h+B,GAC9CwjG,EAAMv6E,UACF2l8B,GAAUxm+B,EAAOyD,IAAKzD,EAAOwD,IAAK43G,EAAMx/E,QAAUw/E,EAAMw+3B,aACvDx+3B,EAAM5xH,OAjBG,OAiBmB4xH,EAAM5xH,OAhBzB,QAiBV+jC,MAAM6tF,EAAM5xH,UACZ4xH,EAAM5xH,MAAQ,IAEb4xH,EAAMv6E,YAlBO,KAmBdu6E,EAAMv6E,WAlBQ,KAmBdtT,MAAM6tF,EAAMv6E,cACZu6E,EAAMv6E,UAAY,EAE1B,CACA,SAASg58B,GAAaz+3B,EAAOxjG,EAAQ5X,EAAQ47B,GACzC+98B,GAAcv+3B,EAAMl5H,EAAG01B,EAAO11B,EAAG8d,EAAO9d,EAAG05C,EAASA,EAAOqj8B,aAAUrk/B,GACrE++/B,GAAcv+3B,EAAMj5H,EAAGy1B,EAAOz1B,EAAG6d,EAAO7d,EAAGy5C,EAASA,EAAOsj8B,aAAUtk/B,EACzE,CACA,SAASk//B,GAAiB95+B,EAAQ2i2B,EAAUhk3B,GACxCqhB,EAAOyD,IAAM9kB,EAAO8kB,IAAMk/1B,EAASl/1B,IACnCzD,EAAOwD,IAAMxD,EAAOyD,IAAMi2+B,GAAW/2I,EACzC,CAKA,SAASo3I,GAAyB/5+B,EAAQgkD,EAAQrlE,GAC9CqhB,EAAOyD,IAAMugD,EAAOvgD,IAAM9kB,EAAO8kB,IACjCzD,EAAOwD,IAAMxD,EAAOyD,IAAMi2+B,GAAW117B,EACzC,CACA,SAASg27B,GAAqBh6+B,EAAQgkD,EAAQrlE,GAC1Co7/B,GAAyB/5+B,EAAO9d,EAAG8hE,EAAO9hE,EAAGvD,EAAOuD,GACpD63/B,GAAyB/5+B,EAAO7d,EAAG6hE,EAAO7hE,EAAGxD,EAAOwD,EACxD,CCnBA,SAAS83/B,GAA4B5+6B,EAAM53D,EAAKD,GAC5C,MAAO,CACHC,SAAa7oB,IAAR6oB,EAAoB43D,EAAK53D,IAAMA,OAAM7oB,EAC1C4oB,SAAa5oB,IAAR4oB,EACC63D,EAAK73D,IAAMA,GAAO63D,EAAK73D,IAAM63D,EAAK53D,UAClC7oB,EAEd,CAcA,SAASs//B,GAA4BC,EAAYC,GAC7C,IAAI32+B,EAAM22+B,EAAgB32+B,IAAM02+B,EAAW12+B,IACvCD,EAAM42+B,EAAgB52+B,IAAM22+B,EAAW32+B,IAO3C,OAJI42+B,EAAgB52+B,IAAM42+B,EAAgB32+B,IACtC02+B,EAAW32+B,IAAM22+B,EAAW12+B,OAC3BA,EAAKD,GAAO,CAACA,EAAKC,IAEhB,CAAEA,MAAKD,MAClB,CAuCA,MAAM62+B,GAAiB,IAgBvB,SAASC,GAAmBC,EAAaC,EAAUC,GAC/C,MAAO,CACHh3+B,IAAKi3+B,GAAoBH,EAAaC,GACtCh3+B,IAAKk3+B,GAAoBH,EAAaE,GAE9C,CACA,SAASC,GAAoBH,EAAar4+B,GACtC,MAA8B,kBAAhBq4+B,EACRA,EACAA,EAAYr4+B,IAAU,CAChC,CC9HA,MAWM627B,GAAYA,KAAA,CACd728B,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,KCVzC,SAASm3+B,GAASp6/B,GACd,MAAO,CAACA,EAAS,KAAMA,EAAS,KACpC,CCGA,SAASq6/B,GAAuB/q/B,GAAgC,IAA/B,IAAEskB,EAAG,KAAEG,EAAI,MAAEF,EAAK,OAAEC,GAASxkB,EAC1D,MAAO,CACH3N,EAAG,CAAEuhB,IAAK6Q,EAAM9Q,IAAK4Q,GACrBjyB,EAAG,CAAEshB,IAAK0Q,EAAK3Q,IAAK6Q,GAE5B,CCVA,SAASwm+B,GAAgBrx/B,GACrB,YAAiB5O,IAAV4O,GAAiC,IAAVA,CAClC,CACA,SAASsx/B,GAAQjr/B,GAA4B,IAA3B,MAAErG,EAAK,OAAE85N,EAAM,OAAEC,GAAQ1zN,EACvC,OAASgr/B,GAAgBrx/B,KACpBqx/B,GAAgBv3xB,KAChBu3xB,GAAgBt3xB,EACzB,CACA,SAAS94G,GAAajmG,GAClB,OAAQs2+B,GAASt2+B,IACbu2+B,GAAev2+B,IACfA,EAAOpiB,GACPoiB,EAAOg8C,QACPh8C,EAAOi5F,SACPj5F,EAAOk5F,SACPl5F,EAAO40Z,OACP50Z,EAAOs69B,KACf,CACA,SAASic,GAAev2+B,GACpB,OAAOw2+B,GAAcx2+B,EAAOtiB,IAAM84/B,GAAcx2+B,EAAOriB,EAC3D,CACA,SAAS64/B,GAAc99/B,GACnB,OAAOA,GAAmB,OAAVA,CACpB,CCjBA,SAAS+9/B,GAAWzg9B,EAAOhxC,EAAOow/B,GAG9B,OAAOA,EADQpw/B,GADYgxC,EAAQo/8B,EAGvC,CAIA,SAASsB,GAAgB1g9B,EAAOqG,EAAWr3C,EAAOow/B,EAAahoS,GAI3D,YAHiBh3tB,IAAbg3tB,IACAp3qB,EAAQyg9B,GAAWzg9B,EAAOo3qB,EAAUgoS,IAEjCqB,GAAWzg9B,EAAOhxC,EAAOow/B,GAAe/48B,CACnD,CAIA,SAASs68B,GAAe9/6B,GAAuD,IAAjDx6B,EAAS/5C,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAG0C,EAAK1C,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAG8y/B,EAAW9y/B,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAAEg3tB,EAAQ9qtB,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EACzEygF,EAAK53D,IAAMy3+B,GAAgB7/6B,EAAK53D,IAAKo9B,EAAWr3C,EAAOow/B,EAAahoS,GACpEv2oB,EAAK73D,IAAM03+B,GAAgB7/6B,EAAK73D,IAAKq9B,EAAWr3C,EAAOow/B,EAAahoS,EACxE,CAIA,SAASwpS,GAAc1nyB,EAAG7jN,GAAY,IAAV,EAAE3N,EAAC,EAAEC,GAAG0N,EAChCsr/B,GAAeznyB,EAAIxxN,EAAGA,EAAE2+C,UAAW3+C,EAAEsH,MAAOtH,EAAE03/B,aAC9CuB,GAAeznyB,EAAIvxN,EAAGA,EAAE0+C,UAAW1+C,EAAEqH,MAAOrH,EAAEy3/B,YAClD,CACA,MAAMyB,GAAsB,cACtBC,GAAsB,gBA6D5B,SAASC,GAAclg7B,EAAMtd,GACzBsd,EAAK53D,IAAM43D,EAAK53D,IAAMs6C,EACtBsd,EAAK73D,IAAM63D,EAAK73D,IAAMu6C,CAC1B,CAMA,SAASy97B,GAAcng7B,EAAMog7B,EAAeC,EAAW9pS,GAA4B,IAAlB+pS,EAAU70/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAG1Eq0/B,GAAe9/6B,EAAMog7B,EAAeC,EAFhBlV,GAAUnr6B,EAAK53D,IAAK43D,EAAK73D,IAAKm4+B,GAEU/pS,EAChE,CAIA,SAASgqS,GAAaloyB,EAAKnnM,GACvBiv+B,GAAc9nyB,EAAIxxN,EAAGqqB,EAAUrqB,EAAGqqB,EAAU+2M,OAAQ/2M,EAAU/iB,MAAO+iB,EAAU0y9B,SAC/Euc,GAAc9nyB,EAAIvxN,EAAGoqB,EAAUpqB,EAAGoqB,EAAUg3M,OAAQh3M,EAAU/iB,MAAO+iB,EAAU2y9B,QACnF,CCjHA,SAASqB,GAAmB7l9B,EAAUkmgB,GAClC,OAAOg6d,GHeX,SAA4Bpg9B,EAAOomf,GAC/B,IAAKA,EACD,OAAOpmf,EACX,MAAMqh9B,EAAUj7d,EAAe,CAAE1+hB,EAAGs4C,EAAMlmB,KAAMnyB,EAAGq4C,EAAMrmB,MACnDqmrB,EAAc55K,EAAe,CAAE1+hB,EAAGs4C,EAAMpmB,MAAOjyB,EAAGq4C,EAAMnmB,SAC9D,MAAO,CACHF,IAAK0n+B,EAAQ15/B,EACbmyB,KAAMun+B,EAAQ35/B,EACdmyB,OAAQmmrB,EAAYr4sB,EACpBiyB,MAAOomrB,EAAYt4sB,EAE3B,CG1BmC45/B,CAAmBph+B,EAAS2gB,wBAAyBulf,GACxF,CCJA,MAAMm7d,GAAmBls/B,IAAiB,IAAhB,QAAErJ,GAASqJ,EACjC,OAAOrJ,EAAUA,EAAQ+Z,cAAckZ,YAAc,IAAI,ECkBvDui+B,GAAsB,IAAIt5/B,QAKhC,MAAMu5/B,GACF51/B,WAAAA,CAAY8u+B,GACRr7+B,KAAKoigC,aAAe,KACpBpigC,KAAK47/B,YAAa,EAClB57/B,KAAKqigC,iBAAmB,KACxBrigC,KAAK8//B,YAAc,CAAE13/B,EAAG,EAAGC,EAAG,GAI9BrI,KAAKsgT,aAAc,EACnBtgT,KAAKsigC,uBAAwB,EAI7BtigC,KAAKwlE,QP5BK,CACdp9D,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,IO8BjC1pB,KAAKq7+B,cAAgBA,CACzB,CACAv09B,KAAAA,CAAMy7+B,GAA4C,IAA/B,aAAEC,GAAe,GAAOx1/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAI3C,MAAM,gBAAE4q/B,GAAoB53/B,KAAKq7+B,cACjC,GAAIuc,IAAiD,IAA9BA,EAAgB2D,UACnC,OACJ,MA6FM,iBAAE6C,GAAqBp+/B,KAAKw7+B,WAClCx7+B,KAAKyigC,WAAa,IAAIxE,GAAWsE,EAAa,CAC1CnD,eA/FoB15+B,IACpB,MAAM,iBAAE04+B,GAAqBp+/B,KAAKw7+B,WAGlC4iB,EAAmBp+/B,KAAK0igC,iBAAmB1igC,KAAK2igC,gBAC5CH,GACAxigC,KAAKwigC,aAAa3E,GAAiBn4+B,GAAOg7B,MAC9C,EAyFA8kK,QAvFYA,CAAC9/L,EAAOnJ,KAEpB,MAAM,KAAEslC,EAAI,gBAAE+g9B,EAAe,YAAEC,GAAgB7igC,KAAKw7+B,WACpD,GAAI357B,IAAS+g9B,IACL5igC,KAAKoigC,cACLpigC,KAAKoigC,eACTpigC,KAAKoigC,aC7DJ,OADI7g7B,ED8D2B1/B,IC7Df,MAAT0/B,EACZq66B,GAAWr66B,GACJ,MAGPq66B,GAAWr66B,IAAQ,EACZ,KACHq66B,GAAWr66B,IAAQ,CAAK,GAK5Bq66B,GAAWxz/B,GAAKwz/B,GAAWvz/B,EACpB,MAGPuz/B,GAAWxz/B,EAAIwz/B,GAAWvz/B,GAAI,EACvB,KACHuz/B,GAAWxz/B,EAAIwz/B,GAAWvz/B,GAAI,CAAK,ID6C9BrI,KAAKoigC,cACN,OCjEpB,IAAqB7g7B,EDmETvhF,KAAK47/B,YAAa,EAClB57/B,KAAKqigC,iBAAmB,KACxBrigC,KAAK8igC,qBACD9igC,KAAKq7+B,cAAcn/5B,aACnBl8E,KAAKq7+B,cAAcn/5B,WAAW6m7B,oBAAqB,EACnD/igC,KAAKq7+B,cAAcn/5B,WAAWh2D,YAASplB,GAK3C+//B,IAAUt/6B,IACN,IAAI70E,EAAU1M,KAAKgjgC,mBAAmBzh7B,GAAMx4E,OAAS,EAIrD,GAAI+sF,GAAQzuE,KAAK3a,GAAU,CACvB,MAAM,WAAEwvE,GAAel8E,KAAKq7+B,cAC5B,GAAIn/5B,GAAcA,EAAWhS,OAAQ,CACjC,MAAM+47B,EAAe/m7B,EAAWhS,OAAOg57B,UAAU3h7B,GACjD,GAAI0h7B,EAAc,CAEdv2/B,EADekz/B,GAAWqD,IACNr4+B,WAAWle,GAAW,IAC9C,CACJ,CACJ,CACA1M,KAAK8//B,YAAYv+6B,GAAQ70E,CAAO,IAGhCm2/B,GACA164B,GAAM213B,YAAW,IAAM+kB,EAAYn9+B,EAAOnJ,KAE9Cm6+B,GAAqB12/B,KAAKq7+B,cAAe,aACzC,MAAM,eAAEgc,GAAmBr3/B,KAAKq7+B,cAChCgc,GAAkBA,EAAel6rB,UAAU,aAAa,EAAK,EA4C7Dn3G,OA1CWA,CAACtgM,EAAOnJ,KAEnB,MAAM,gBAAEqm/B,EAAe,kBAAEO,EAAiB,gBAAEC,EAAe,OAAEC,GAAYrjgC,KAAKw7+B,WAE9E,IAAKonB,IAAoB5igC,KAAKoigC,aAC1B,OACJ,MAAM,OAAE/6/B,GAAWkV,EAEnB,GAAI4m/B,GAA+C,OAA1BnjgC,KAAKqigC,iBAM1B,OALArigC,KAAKqigC,iBAuWrB,SAA6Bh7/B,GAA4B,IAApBi8/B,EAAat2/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAC7CqO,EAAY,KACZxY,KAAKD,IAAIyE,EAAOgB,GAAKi7/B,EACrBjo/B,EAAY,IAEPxY,KAAKD,IAAIyE,EAAOe,GAAKk7/B,IAC1Bjo/B,EAAY,KAEhB,OAAOA,CACX,CAhXwCko/B,CAAoBl8/B,QAEd,OAA1BrH,KAAKqigC,kBACLe,GAAmBA,EAAgBpjgC,KAAKqigC,mBAKhDrigC,KAAKwjgC,WAAW,IAAKjn/B,EAAKmkC,MAAOr5C,GACjCrH,KAAKwjgC,WAAW,IAAKjn/B,EAAKmkC,MAAOr5C,GAOjCrH,KAAKq7+B,cAAc778B,SAKnB6j+B,GAAUA,EAAO39+B,EAAOnJ,EAAK,EAa7Byi/B,aAXiBA,CAACt5+B,EAAOnJ,IAASvc,KAAK+2C,KAAKrxB,EAAOnJ,GAYnD0i/B,gBAXoBA,IAAM4B,IAAUt/6B,IACpC,IAAI6iB,EACJ,MAAwC,WAAjCpkG,KAAKyjgC,kBAAkBli7B,KAC0B,QAAlD6iB,EAAKpkG,KAAKgjgC,mBAAmBzh7B,GAAMk2D,iBAA8B,IAAPrzC,OAAgB,EAASA,EAAGg0pB,OAAO,KASpG,CACC8lQ,mBAAoBl+/B,KAAKq7+B,cAAcqoB,wBACvCtF,mBACAD,cAAe8D,GAAiBjigC,KAAKq7+B,gBAE7C,CACAtk8B,IAAAA,CAAKrxB,EAAOnJ,GACR,MAAMq/+B,EAAa57/B,KAAK47/B,WAExB,GADA57/B,KAAK4gF,UACAg76B,EACD,OACJ,MAAM,SAAE98iB,GAAavic,EACrBvc,KAAK81/B,eAAeh3iB,GACpB,MAAM,UAAE6kjB,GAAc3jgC,KAAKw7+B,WACvBmoB,GACAx74B,GAAM213B,YAAW,IAAM6lB,EAAUj++B,EAAOnJ,IAEhD,CACAqkE,MAAAA,GACI5gF,KAAK47/B,YAAa,EAClB,MAAM,WAAE1/6B,EAAU,eAAEm76B,GAAmBr3/B,KAAKq7+B,cACxCn/5B,IACAA,EAAW6m7B,oBAAqB,GAEpC/igC,KAAKyigC,YAAczigC,KAAKyigC,WAAWz+/B,MACnChE,KAAKyigC,gBAAa3hgC,EAClB,MAAM,gBAAE8hgC,GAAoB5igC,KAAKw7+B,YAC5BonB,GAAmB5igC,KAAKoigC,eACzBpigC,KAAKoigC,eACLpigC,KAAKoigC,aAAe,MAExB/K,GAAkBA,EAAel6rB,UAAU,aAAa,EAC5D,CACAqmsB,UAAAA,CAAWji7B,EAAM+1e,EAAQjwjB,GACrB,MAAM,KAAEw6C,GAAS7hD,KAAKw7+B,WAEtB,IAAKn0+B,IAAWu8/B,GAAWri7B,EAAM1/B,EAAM7hD,KAAKqigC,kBACxC,OACJ,MAAMwB,EAAY7jgC,KAAKgjgC,mBAAmBzh7B,GAC1C,IAAIn8E,EAAOpF,KAAK8//B,YAAYv+6B,GAAQl6E,EAAOk6E,GAEvCvhF,KAAKsgT,aAAetgT,KAAKsgT,YAAY/+N,KACrCn8E,ERrLZ,SAA0Bs7C,EAAK3qC,EAAgByvD,GAAS,IAAvB,IAAE77C,EAAG,IAAED,GAAK3T,EAazC,YAZYjV,IAAR6oB,GAAqB+2B,EAAQ/2B,EAE7B+2B,EAAQ8kB,EACFkn7B,GAAU/i+B,EAAK+2B,EAAO8kB,EAAQ77C,KAC9B9mB,KAAK6mB,IAAIg3B,EAAO/2B,QAET7oB,IAAR4oB,GAAqBg3B,EAAQh3B,IAElCg3B,EAAQ8kB,EACFkn7B,GAAUhj+B,EAAKg3B,EAAO8kB,EAAQ97C,KAC9B7mB,KAAK8mB,IAAI+2B,EAAOh3B,IAEnBg3B,CACX,CQuKmBoj9B,CAAiB1+/B,EAAMpF,KAAKsgT,YAAY/+N,GAAOvhF,KAAKwlE,QAAQ+b,KAEvEsi7B,EAAU76/B,IAAI5D,EAClB,CACA09/B,kBAAAA,GACI,IAAI1+5B,EACJ,MAAM,gBAAE2/5B,EAAe,YAAEtD,GAAgBzggC,KAAKw7+B,WACxCtx6B,EAASlqE,KAAKq7+B,cAAcn/5B,aAC7Bl8E,KAAKq7+B,cAAcn/5B,WAAWhS,OAC7BlqE,KAAKq7+B,cAAcn/5B,WAAW01S,SAAQ,GACG,QAAxCxtR,EAAKpkG,KAAKq7+B,cAAcn/5B,kBAA+B,IAAPkoB,OAAgB,EAASA,EAAGl6B,OAC7E857B,EAAkBhkgC,KAAKsgT,YACzByjtB,GAAmBpE,GAAYoE,GAC1B/jgC,KAAKsgT,cACNtgT,KAAKsgT,YAActgT,KAAKikgC,yBAKxBjkgC,KAAKsgT,eADLyjtB,IAAmB757B,IRvKnC,SAAiCg57B,EAAS1u/B,GAAgC,IAA9B,IAAE6lB,EAAG,KAAEG,EAAI,OAAED,EAAM,MAAED,GAAO9lB,EACpE,MAAO,CACHpM,EAAG+3/B,GAA4B+C,EAAU96/B,EAAGoyB,EAAMF,GAClDjyB,EAAG83/B,GAA4B+C,EAAU76/B,EAAGgyB,EAAKE,GAEzD,CQmKmC2p+B,CAAwBh67B,EAAOg57B,UAAWa,GAMrE/jgC,KAAKwlE,QRhHb,WAA0D,IAA9Bi77B,EAAWzz/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGuz/B,GAOtC,OANoB,IAAhBE,EACAA,EAAc,GAEO,IAAhBA,IACLA,EAAcF,IAEX,CACHn4/B,EAAGo4/B,GAAmBC,EAAa,OAAQ,SAC3Cp4/B,EAAGm4/B,GAAmBC,EAAa,MAAO,UAElD,CQqGuB0D,CAAmB1D,GAK9BuD,IAAoBhkgC,KAAKsgT,aACzBp2O,GACAlqE,KAAKsgT,cACJtgT,KAAKsigC,uBACNzB,IAAUt/6B,KACmB,IAArBvhF,KAAKsgT,aACLtgT,KAAKgjgC,mBAAmBzh7B,KACxBvhF,KAAKsgT,YAAY/+N,GR1IrC,SAA+BrX,EAAQo2O,GACnC,MAAM8jtB,EAAsB,CAAC,EAO7B,YANwBtjgC,IAApBw/S,EAAY32R,MACZy6+B,EAAoBz6+B,IAAM22R,EAAY32R,IAAMugD,EAAOvgD,UAE/B7oB,IAApBw/S,EAAY52R,MACZ06+B,EAAoB16+B,IAAM42R,EAAY52R,IAAMwgD,EAAOvgD,KAEhDy6+B,CACX,CQiI6CC,CAAsBn67B,EAAOg57B,UAAU3h7B,GAAOvhF,KAAKsgT,YAAY/+N,IAC5F,GAGZ,CACA0i7B,qBAAAA,GACI,MAAQF,gBAAiBzjtB,EAAW,yBAAEgktB,GAA6BtkgC,KAAKw7+B,WACxE,IAAKl7rB,IAAgBq/sB,GAAYr/sB,GAC7B,OAAO,EACX,MAAMiktB,EAAqBjktB,EAAY5zS,QACvCut7B,GAAiC,OAAvBsqE,EAA6B,0GACvC,MAAM,WAAEro7B,GAAel8E,KAAKq7+B,cAE5B,IAAKn/5B,IAAeA,EAAWhS,OAC3B,OAAO,EACX,MAAMs67B,EF7Od,SAAwB59/B,EAAS69/B,EAAoBvG,GACjD,MAAMwG,EAAcje,GAAmB7/+B,EAASs3/B,IAC1C,OAAEyG,GAAWF,EAKnB,OAJIE,IACAlD,GAAciD,EAAYt8/B,EAAGu8/B,EAAOt9/B,OAAOe,GAC3Cq5/B,GAAciD,EAAYr8/B,EAAGs8/B,EAAOt9/B,OAAOgB,IAExCq8/B,CACX,CEqO+BE,CAAeL,EAAoBro7B,EAAWt3E,KAAM5E,KAAKq7+B,cAAcqoB,yBAC9F,IAAImB,ERnLZ,SAAiC3B,EAAWsB,GACxC,MAAO,CACHp8/B,EAAGg4/B,GAA4B8C,EAAU96/B,EAAGo8/B,EAAep8/B,GAC3DC,EAAG+3/B,GAA4B8C,EAAU76/B,EAAGm8/B,EAAen8/B,GAEnE,CQ8KkCy8/B,CAAwB5o7B,EAAWhS,OAAOg57B,UAAWsB,GAK/E,GAAIF,EAA0B,CAC1B,MAAMS,EAAkBT,EL/OpC,SAAgC9v/B,GAAW,IAAV,EAAEpM,EAAC,EAAEC,GAAGmM,EACrC,MAAO,CAAE6lB,IAAKhyB,EAAEshB,IAAK2Q,MAAOlyB,EAAEshB,IAAK6Q,OAAQlyB,EAAEqhB,IAAK8Q,KAAMpyB,EAAEuhB,IAC9D,CK6O6Dq7+B,CAAwBH,IACzE7kgC,KAAKsigC,wBAA0ByC,EAC3BA,IACAF,EAAsB/D,GAAwBiE,GAEtD,CACA,OAAOF,CACX,CACA/O,cAAAA,CAAeh3iB,GACX,MAAM,KAAEj9Z,EAAI,aAAEoj9B,EAAY,YAAExE,EAAW,eAAEyE,EAAc,iBAAE9G,EAAgB,oBAAE+G,GAAyBnlgC,KAAKw7+B,WACnGl7rB,EAActgT,KAAKsgT,aAAe,CAAC,EACnC8ktB,EAAqBvE,IAAUt/6B,IACjC,IAAKqi7B,GAAWri7B,EAAM1/B,EAAM7hD,KAAKqigC,kBAC7B,OAEJ,IAAIlr/B,EAAcmpS,GAAeA,EAAY/+N,IAAU,CAAC,EACpD686B,IACAjn/B,EAAa,CAAEwS,IAAK,EAAGD,IAAK,IAOhC,MAAM8h+B,EAAkBiV,EAAc,IAAM,IACtClV,EAAgBkV,EAAc,GAAK,IACnCn2N,EAAO/1Z,GAAAA,GAAA,CACTzvY,KAAM,UACNg6c,SAAUmmjB,EAAenmjB,EAASv9X,GAAQ,EAC1Ciq6B,kBACAD,gBACAD,aAAc,IACdrC,UAAW,EACX/M,UAAW,IACRgpB,GACA/t/B,GAKP,OAAOnX,KAAKqlgC,wBAAwB9j7B,EAAM+otB,EAAQ,IAGtD,OAAOlrqB,QAAQ9wF,IAAI829B,GAAoBr19B,KAAKo19B,EAChD,CACAE,uBAAAA,CAAwB9j7B,EAAMpqE,GAC1B,MAAM0s/B,EAAY7jgC,KAAKgjgC,mBAAmBzh7B,GAE1C,OADAm16B,GAAqB12/B,KAAKq7+B,cAAe955B,GAClCsi7B,EAAU/8+B,MAAMit+B,GAAmBxy6B,EAAMsi7B,EAAW,EAAG1s/B,EAAYnX,KAAKq7+B,eAAe,GAClG,CACAsnB,aAAAA,GACI9B,IAAUt/6B,GAASvhF,KAAKgjgC,mBAAmBzh7B,GAAMxqC,QACrD,CACA2r9B,cAAAA,GACI7B,IAAUt/6B,IAAW,IAAI6iB,EAAI,OAA0D,QAAlDA,EAAKpkG,KAAKgjgC,mBAAmBzh7B,GAAMk2D,iBAA8B,IAAPrzC,OAAgB,EAASA,EAAG4/S,OAAO,GACtI,CACAy/mB,iBAAAA,CAAkBli7B,GACd,IAAI6iB,EACJ,OAA0D,QAAlDA,EAAKpkG,KAAKgjgC,mBAAmBzh7B,GAAMk2D,iBAA8B,IAAPrzC,OAAgB,EAASA,EAAGhkE,KAClG,CAOA4i+B,kBAAAA,CAAmBzh7B,GACf,MAAM+j7B,EAAU,QAAH16/B,OAAW22E,EAAK/kD,eACvBz3B,EAAQ/E,KAAKq7+B,cAAcG,WAC3B+pB,EAAsBxggC,EAAMuggC,GAClC,OAAOC,GAEDvlgC,KAAKq7+B,cAAcnn9B,SAASqtD,GAAOx8E,EAAM+jV,QACrC/jV,EAAM+jV,QAAQvnQ,QACdzgF,IAAc,EAC5B,CACA0hgC,YAAAA,CAAa9h9B,GACTmg9B,IAAUt/6B,IACN,MAAM,KAAE1/B,GAAS7hD,KAAKw7+B,WAEtB,IAAKooB,GAAWri7B,EAAM1/B,EAAM7hD,KAAKqigC,kBAC7B,OACJ,MAAM,WAAEnm7B,GAAel8E,KAAKq7+B,cACtBwoB,EAAY7jgC,KAAKgjgC,mBAAmBzh7B,GAC1C,GAAIrF,GAAcA,EAAWhS,OAAQ,CACjC,MAAM,IAAEvgD,EAAG,IAAED,GAAQwyD,EAAWhS,OAAOg57B,UAAU3h7B,GACjDsi7B,EAAU76/B,IAAI03C,EAAM6gC,GAAQmr6B,GAAU/i+B,EAAKD,EAAK,IACpD,IAER,CAMA87+B,8BAAAA,GACI,IAAKxlgC,KAAKq7+B,cAAc3u+B,QACpB,OACJ,MAAM,KAAEm1C,EAAI,gBAAEki9B,GAAoB/jgC,KAAKw7+B,YACjC,WAAEt/5B,GAAel8E,KAAKq7+B,cAC5B,IAAKskB,GAAYoE,KAAqB7n7B,IAAel8E,KAAKsgT,YACtD,OAKJtgT,KAAK2igC,gBAKL,MAAM8C,EAAc,CAAEr9/B,EAAG,EAAGC,EAAG,GAC/Bw4/B,IAAUt/6B,IACN,MAAMsi7B,EAAY7jgC,KAAKgjgC,mBAAmBzh7B,GAC1C,GAAIsi7B,IAAkC,IAArB7jgC,KAAKsgT,YAAuB,CACzC,MAAM0rsB,EAAS6X,EAAU96/B,MACzB08/B,EAAYlk7B,GRnS5B,SAAoBzjD,EAAQ5X,GACxB,IAAI47B,EAAS,GACb,MAAM4j9B,EAAe9F,GAAW9h+B,GAC1B66L,EAAeinyB,GAAW15+B,GAOhC,OANIyyM,EAAe+syB,EACf5j9B,EAAS6T,GAASzvC,EAAOyD,IAAKzD,EAAOwD,IAAMg8+B,EAAc5n+B,EAAOnU,KAE3D+7+B,EAAe/syB,IACpB72K,EAAS6T,GAAS73B,EAAOnU,IAAKmU,EAAOpU,IAAMivM,EAAczyM,EAAOyD,MAE7D4sD,GAAM,EAAG,EAAGz0B,EACvB,CQwRoC6j9B,CAAW,CAAEh8+B,IAAKqi+B,EAAQti+B,IAAKsi+B,GAAUhs/B,KAAKsgT,YAAY/+N,GAClF,KAKJ,MAAM,kBAAEqk7B,GAAsB5lgC,KAAKq7+B,cAAcG,WACjDx7+B,KAAKq7+B,cAAc3u+B,QAAQ4f,MAAMmG,UAAYmz+B,EACvCA,EAAkB,CAAC,EAAG,IACtB,OACN1p7B,EAAWt3E,MAAQs3E,EAAWt3E,KAAKihgC,eACnC3p7B,EAAW+6uB,eACXj3zB,KAAK8igC,qBAKLjC,IAAUt/6B,IACN,IAAKqi7B,GAAWri7B,EAAM1/B,EAAM,MACxB,OAIJ,MAAMgi9B,EAAY7jgC,KAAKgjgC,mBAAmBzh7B,IACpC,IAAE53D,EAAG,IAAED,GAAQ1pB,KAAKsgT,YAAY/+N,GACtCsi7B,EAAU76/B,IAAI0j/B,GAAU/i+B,EAAKD,EAAK+7+B,EAAYlk7B,IAAO,GAE7D,CACAuk7B,YAAAA,GACI,IAAK9lgC,KAAKq7+B,cAAc3u+B,QACpB,OACJw1/B,GAAoBl5/B,IAAIhJ,KAAKq7+B,cAAer7+B,MAC5C,MAIM+lgC,EAAsBhI,GAJZ/9/B,KAAKq7+B,cAAc3u+B,QAIkB,eAAgBgZ,IACjE,MAAM,KAAEm8B,EAAI,aAAEmk9B,GAAe,GAAShmgC,KAAKw7+B,WAC3C357B,GAAQmk9B,GAAgBhmgC,KAAK8mB,MAAMpB,EAAM,IAEvCug/B,EAAyBA,KAC3B,MAAM,gBAAElC,GAAoB/jgC,KAAKw7+B,WAC7BmkB,GAAYoE,IAAoBA,EAAgBr3/B,UAChD1M,KAAKsgT,YAActgT,KAAKikgC,wBAC5B,GAEE,WAAE/n7B,GAAel8E,KAAKq7+B,cACtB6qB,EAA4Bhq7B,EAAWx1D,iBAAiB,UAAWu/+B,GACrE/p7B,IAAeA,EAAWhS,SAC1BgS,EAAWt3E,MAAQs3E,EAAWt3E,KAAKihgC,eACnC3p7B,EAAW+6uB,gBAEf9usB,GAAM8tQ,KAAKgwoB,GAKX,MAAME,EAAqBrI,GAAYl+9B,OAAQ,UAAU,IAAM5/B,KAAKwlgC,mCAK9DY,EAA2Blq7B,EAAWx1D,iBAAiB,aAAc3Q,IAAiC,IAAhC,MAAEurH,EAAK,iBAAE+k4B,GAAkBtw/B,EAC/F/V,KAAK47/B,YAAcyK,IACnBxF,IAAUt/6B,IACN,MAAM0g6B,EAAcji/B,KAAKgjgC,mBAAmBzh7B,GACvC0g6B,IAELji/B,KAAK8//B,YAAYv+6B,IAAS+/C,EAAM//C,GAAMx6B,UACtCk77B,EAAYj5+B,IAAIi5+B,EAAYl5+B,MAAQu4H,EAAM//C,GAAMx6B,WAAU,IAE9D/mD,KAAKq7+B,cAAc778B,SACvB,IAEJ,MAAO,KACH2m+B,IACAJ,IACAG,IACAE,GAA4BA,GAA0B,CAE9D,CACA5qB,QAAAA,GACI,MAAMz2+B,EAAQ/E,KAAKq7+B,cAAcG,YAC3B,KAAE357B,GAAO,EAAK,kBAAEsh9B,GAAoB,EAAK,gBAAEP,GAAkB,EAAK,gBAAEmB,GAAkB,EAAK,YAAEtD,EAAcF,GAAc,aAAE0E,GAAe,GAAUlggC,EAC1J,OAAAwvY,GAAAA,GAAA,GACOxvY,GAAK,IACR88C,OACAsh9B,oBACAP,kBACAmB,kBACAtD,cACAwE,gBAER,EAEJ,SAASrB,GAAWvo/B,EAAWwmC,EAAMwg9B,GACjC,QAAkB,IAATxg9B,GAAiBA,IAASxmC,KACT,OAArBgn/B,GAA6BA,IAAqBhn/B,EAC3D,CEzcA,MAAMir/B,GAAgBh23B,GAAY,CAAC5qH,EAAOnJ,KAClC+zH,GACAnoB,GAAM213B,YAAW,IAAMxt2B,EAAQ5qH,EAAOnJ,IAC1C,ECJJ,MAAMgq/B,IAAkBxnZ,EAAAA,EAAAA,eAAc,MCHtC,MAAMynZ,IAAqBznZ,EAAAA,EAAAA,eAAc,CAAC,GCGpC0nZ,IAA2B1nZ,EAAAA,EAAAA,eAAc,CAAC,GCD1C2nZ,GAAwB,CAK1BC,wBAAwB,EAKxBC,gBAAgB,GCbpB,SAASC,GAAgBz8pB,EAAQ7oR,GAC7B,OAAIA,EAAK73D,MAAQ63D,EAAK53D,IACX,EACHygV,GAAU7oR,EAAK73D,IAAM63D,EAAK53D,KAAQ,GAC9C,CAQA,MAAMm9+B,GAAsB,CACxBC,QAASA,CAAC/a,EAAQrn/B,KACd,IAAKA,EAAKuhB,OACN,OAAO8l+B,EAKX,GAAsB,kBAAXA,EAAqB,CAC5B,IAAI509B,GAAG/P,KAAK2k+B,GAIR,OAAOA,EAHPA,EAASph+B,WAAWoh+B,EAK5B,CAKA,MAAM5j/B,EAAIy+/B,GAAgB7a,EAAQrn/B,EAAKuhB,OAAO9d,GACxCC,EAAIw+/B,GAAgB7a,EAAQrn/B,EAAKuhB,OAAO7d,GAC9C,MAAO,GAAPuC,OAAUxC,EAAC,MAAAwC,OAAKvC,EAAC,OCjCnB2+/B,GAAmB,CACrBD,QAASA,CAAC/a,EAAMj2+B,KAAqC,IAAnC,UAAEkx/B,EAAS,gBAAEC,GAAiBnx/B,EAC5C,MAAMohF,EAAW605B,EACX3/4B,EAASlqF,GAAQpb,MAAMil/B,GAE7B,GAAI3/4B,EAAOhsG,OAAS,EAChB,OAAO82F,EACX,MAAMuf,EAAWv0F,GAAQ0h+B,kBAAkBmI,GACrC3k/B,EAA8B,kBAAdglG,EAAO,GAAkB,EAAI,EAE7C+V,EAAS8k5B,EAAgB9+/B,EAAEsH,MAAQu3/B,EAAU7+/B,EAC7Ci6G,EAAS6k5B,EAAgB7+/B,EAAEqH,MAAQu3/B,EAAU5+/B,EACnDgkG,EAAO,EAAIhlG,IAAW+6G,EACtB/V,EAAO,EAAIhlG,IAAWg7G,EAOtB,MAAM8k5B,EAAeza,GAAUtq4B,EAAQC,EAAQ,IAO/C,MALkC,kBAAvBhW,EAAO,EAAIhlG,KAClBglG,EAAO,EAAIhlG,IAAW8//B,GAEQ,kBAAvB965B,EAAO,EAAIhlG,KAClBglG,EAAO,EAAIhlG,IAAW8//B,GACnBzw5B,EAASrK,EAAO,GC9BzB+65B,GAAkB,CAAC,ECEzB,MAAQ339B,SAAU439B,GAAWzm7B,OAAQ0m7B,IAAoBxqB,GAAoBx4E,gBAAgB,GCW7F,MAAMijG,WAAiC7j/B,EAAAA,UAMnC6p5B,iBAAAA,GACI,MAAM,cAAE8tE,EAAa,YAAEmsB,EAAW,kBAAEC,EAAiB,SAAEhkpB,GAAazjX,KAAK+E,OACnE,WAAEm3E,GAAem/5B,EFpB/B,IAA2BqsB,IEqBDC,GFpBtBzkgC,OAAOD,OAAOmkgC,GAAiBM,GEqBvBxr7B,IACIsr7B,EAAY7s9B,OACZ6s9B,EAAY7s9B,MAAMjY,IAAIw5C,GACtBur7B,GAAqBA,EAAkBp14B,UAAYoxP,GACnDgkpB,EAAkBp14B,SAASn2C,GAE/BA,EAAWt3E,KAAK4+O,YAChBtnK,EAAWx1D,iBAAiB,qBAAqB,KAC7C1mB,KAAK4ngC,cAAc,IAEvB1r7B,EAAWiwlB,WAAU53R,GAAAA,GAAC,CAAC,EAChBr4T,EAAWp8E,SAAO,IACrB07/B,eAAgBA,IAAMx7/B,KAAK4ngC,mBAGnClB,GAAsBE,gBAAiB,CAC3C,CACAx5F,uBAAAA,CAAwByL,GACpB,MAAM,iBAAEgvF,EAAgB,cAAExsB,EAAa,KAAEx57B,EAAI,UAAE058B,GAAcv7/B,KAAK+E,MAC5Dm3E,EAAam/5B,EAAcn/5B,WACjC,OAAKA,GASLA,EAAWq/6B,UAAYA,EACnB158B,GACAg33B,EAAUgvF,mBAAqBA,QACV/mgC,IAArB+mgC,EACA3r7B,EAAW4r7B,aAGX9ngC,KAAK4ngC,eAEL/uF,EAAU0iF,YAAcA,IACpBA,EACAr/6B,EAAW6r7B,UAEL7r7B,EAAW8r7B,YAMjB7/4B,GAAM213B,YAAW,KACb,MAAMnw6B,EAAQuO,EAAW+r7B,WACpBt67B,GAAUA,EAAMi2nB,QAAQvjsB,QACzBL,KAAK4ngC,cACT,KAIL,MAnCI,IAoCf,CACAv5F,kBAAAA,GACI,MAAM,WAAEny1B,GAAel8E,KAAK+E,MAAMs2+B,cAC9Bn/5B,IACAA,EAAWt3E,KAAK4+O,YAChB6jxB,GAAUvpB,YAAW,MACZ5h6B,EAAWgs7B,kBAAoBhs7B,EAAWis7B,UAC3CnogC,KAAK4ngC,cACT,IAGZ,CACAv2F,oBAAAA,GACI,MAAM,cAAEgqE,EAAa,YAAEmsB,EAAaC,kBAAmBW,GAAoBpogC,KAAK+E,OAC1E,WAAEm3E,GAAem/5B,EACnBn/5B,IACAA,EAAWms7B,4BACPb,GAAeA,EAAY7s9B,OAC3B6s9B,EAAY7s9B,MAAMxD,OAAO+kC,GACzBks7B,GAAkBA,EAAeE,YACjCF,EAAeE,WAAWps7B,GAEtC,CACA0r7B,YAAAA,GACI,MAAM,aAAEA,GAAiB5ngC,KAAK+E,MAC9B6igC,GAAgBA,GACpB,CACApo+B,MAAAA,GACI,OAAO,IACX,EAEJ,SAAS+o+B,GAAcxjgC,GACnB,MAAOw2/B,EAAWqM,GCtFtB,WACI,MAAM549B,GAAU/iC,EAAAA,EAAAA,YAAWs6/B,IAC3B,GAAgB,OAAZv39B,EACA,MAAO,EAAC,EAAM,MAClB,MAAM,UAAEus9B,EAAS,eAAEC,EAAc,SAAEnp4B,GAAarjF,EAG1C5N,GAAKL,EAAAA,EAAAA,UACX6q4B,EAAAA,EAAAA,YAAU,IAAMv5yB,EAASjxF,IAAK,IAC9B,MAAMwm+B,GAAej8F,EAAAA,EAAAA,cAAY,IAAM6vF,GAAkBA,EAAep69B,IAAK,CAACA,EAAIo69B,IAClF,OAAQD,GAAaC,EAAiB,EAAC,EAAOoM,GAAgB,EAAC,EACnE,CD2EsCY,GAC5BhB,GAAcv7/B,EAAAA,EAAAA,YAAWu6/B,IAC/B,OAAQxy/B,EAAAA,GAAAA,KAAIuz/B,GAAwBhznB,GAAAA,GAAA,GAAOxvY,GAAK,IAAEyigC,YAAaA,EAAaC,mBAAmBx7/B,EAAAA,EAAAA,YAAWw6/B,IAA2BlL,UAAWA,EAAWqM,aAAcA,IAC7K,CACA,MAAMD,GAAyB,CAC3Bx1+B,aAAYoiX,GAAAA,GAAA,GACLuynB,IAAmB,IACtB2B,QAAS,CACL,sBACA,uBACA,yBACA,6BAGRjkB,oBAAqBsiB,GACrBriB,qBAAsBqiB,GACtBniB,uBAAwBmiB,GACxBpiB,wBAAyBoiB,GACzBrs+B,UAAWus+B,IE5HT0B,GAAU,CAAC,UAAW,WAAY,aAAc,eAChDC,GAAaD,GAAQrogC,OACrBuogC,GAAYxlgC,GAA2B,kBAAVA,EAAqBwnB,WAAWxnB,GAASA,EACtEylgC,GAAQzlgC,GAA2B,kBAAVA,GAAsBg0B,GAAG/P,KAAKjkB,GA0C7D,SAAS0lgC,GAAUp++B,EAAQq++B,GACvB,YAA8BjogC,IAAvB4pB,EAAOq++B,GACRr++B,EAAOq++B,GACPr++B,EAAOyH,YACjB,CAwBA,MAAM62+B,GAAgCrmgB,GAAS,EAAG,GAAKs8e,IACjDgqB,GAAiCtmgB,GAAS,GAAK,IAAMj0Y,IAC3D,SAASi0Y,GAASh5e,EAAKD,EAAK/H,GACxB,OAAQoR,GAEAA,EAAIpJ,EACG,EACPoJ,EAAIrJ,EACG,EACJ/H,EAAOg0C,GAAShsC,EAAKD,EAAKqJ,GAEzC,CCrFA,SAASm2+B,GAAa3n7B,EAAM4n7B,GACxB5n7B,EAAK53D,IAAMw/+B,EAAWx/+B,IACtB43D,EAAK73D,IAAMy/+B,EAAWz/+B,GAC1B,CAMA,SAAS0/+B,GAAYxvyB,EAAKyvyB,GACtBH,GAAatvyB,EAAIxxN,EAAGihgC,EAAUjhgC,GAC9B8ggC,GAAatvyB,EAAIvxN,EAAGghgC,EAAUhhgC,EAClC,CAMA,SAASihgC,GAAkBho4B,EAAOio4B,GAC9Bjo4B,EAAMv6E,UAAYwi9B,EAAYxi9B,UAC9Bu6E,EAAM5xH,MAAQ65/B,EAAY75/B,MAC1B4xH,EAAMw+3B,YAAcyJ,EAAYzJ,YAChCx+3B,EAAMx/E,OAASyn9B,EAAYzn9B,MAC/B,CCrBA,SAAS0n9B,GAAiB9o9B,EAAOqG,EAAWr3C,EAAOow/B,EAAahoS,GAM5D,OAJAp3qB,EAAQyg9B,GADRzg9B,GAASqG,EACiB,EAAIr3C,EAAOow/B,QACpBh//B,IAAbg3tB,IACAp3qB,EAAQyg9B,GAAWzg9B,EAAO,EAAIo3qB,EAAUgoS,IAErCp/8B,CACX,CAsBA,SAAS+o9B,GAAqBlo7B,EAAMk5E,EAAU1kJ,EAA8B+rC,EAAQ4n9B,GAAY,IAA/CxogC,EAAKyogC,EAAUC,GAAU7z/B,GAlB1E,SAAyBwrE,GAA8F,IAAxFx6B,EAAS/5C,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAG0C,EAAK1C,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAG80C,EAAM90C,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAAK8qtB,EAAQ9qtB,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAAEqogC,EAAUn8/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGu0E,EAAMmo7B,EAAU18/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGu0E,EACzGuU,GAAQzuE,KAAK0/B,KACbA,EAAYn8B,WAAWm8B,GAEvBA,EADyB2l8B,GAAUgd,EAAW//+B,IAAK+/+B,EAAWhg/B,IAAKq9B,EAAY,KAChD2i9B,EAAW//+B,KAE9C,GAAyB,kBAAdo9B,EACP,OACJ,IAAI+48B,EAAcpT,GAAUyc,EAAWx/+B,IAAKw/+B,EAAWz/+B,IAAKo4B,GACxDy/B,IAAS4n7B,IACTrJ,GAAe/48B,GACnBw6B,EAAK53D,IAAM6/+B,GAAiBjo7B,EAAK53D,IAAKo9B,EAAWr3C,EAAOow/B,EAAahoS,GACrEv2oB,EAAK73D,IAAM8/+B,GAAiBjo7B,EAAK73D,IAAKq9B,EAAWr3C,EAAOow/B,EAAahoS,EACzE,CAMI+xS,CAAgBto7B,EAAMk5E,EAAWv5J,GAAMu5J,EAAWkv2B,GAAWlv2B,EAAWmv2B,GAAYnv2B,EAAW/qJ,MAAOoyC,EAAQ4n9B,EAClH,CAIA,MAAMI,GAAQ,CAAC,IAAK,SAAU,WACxBC,GAAQ,CAAC,IAAK,SAAU,WAK9B,SAASC,GAAoBpwyB,EAAKn/D,EAAY4u2B,EAAWY,GACrDR,GAAqB7vyB,EAAIxxN,EAAGqyJ,EAAYqv2B,GAAOT,EAAYA,EAAUjhgC,OAAItH,EAAWmpgC,EAAYA,EAAU7hgC,OAAItH,GAC9G2ogC,GAAqB7vyB,EAAIvxN,EAAGoyJ,EAAYsv2B,GAAOV,EAAYA,EAAUhhgC,OAAIvH,EAAWmpgC,EAAYA,EAAU5hgC,OAAIvH,EAClH,CCjDA,SAASopgC,GAAgB5o4B,GACrB,OAA2B,IAApBA,EAAMv6E,WAAmC,IAAhBu6E,EAAM5xH,KAC1C,CACA,SAASy6/B,GAAY7o4B,GACjB,OAAO4o4B,GAAgB5o4B,EAAMl5H,IAAM8hgC,GAAgB5o4B,EAAMj5H,EAC7D,CACA,SAAS+hgC,GAAW/++B,EAAG4H,GACnB,OAAO5H,EAAE1B,MAAQsJ,EAAEtJ,KAAO0B,EAAE3B,MAAQuJ,EAAEvJ,GAC1C,CAIA,SAAS2g/B,GAAkBh/+B,EAAG4H,GAC1B,OAAQpwB,KAAK+b,MAAMyM,EAAE1B,OAAS9mB,KAAK+b,MAAMqU,EAAEtJ,MACvC9mB,KAAK+b,MAAMyM,EAAE3B,OAAS7mB,KAAK+b,MAAMqU,EAAEvJ,IAC3C,CACA,SAAS4g/B,GAAiBj/+B,EAAG4H,GACzB,OAAOo3+B,GAAkBh/+B,EAAEjjB,EAAG6qB,EAAE7qB,IAAMiigC,GAAkBh/+B,EAAEhjB,EAAG4qB,EAAE5qB,EACnE,CACA,SAASqF,GAAYksN,GACjB,OAAOgmyB,GAAWhmyB,EAAIxxN,GAAKw3/B,GAAWhmyB,EAAIvxN,EAC9C,CACA,SAASkigC,GAAgBl/+B,EAAG4H,GACxB,OAAQ5H,EAAE07B,YAAc9zB,EAAE8zB,WACtB17B,EAAE3b,QAAUujB,EAAEvjB,OACd2b,EAAEy0+B,cAAgB7s+B,EAAE6s+B,WAC5B,CC1BA,MAAM0K,GACFj+/B,WAAAA,GACIvM,KAAK4jsB,QAAU,EACnB,CACAlhqB,GAAAA,CAAI/9B,GACA8v/B,GAAcz0/B,KAAK4jsB,QAASj/rB,GAC5BA,EAAK8lgC,gBACT,CACAtz9B,MAAAA,CAAOxyC,GAKH,GAJAmzZ,GAAW93Z,KAAK4jsB,QAASj/rB,GACrBA,IAAS3E,KAAK0qgC,WACd1qgC,KAAK0qgC,cAAW5pgC,GAEhB6D,IAAS3E,KAAKmttB,KAAM,CACpB,MAAMu9S,EAAW1qgC,KAAK4jsB,QAAQ5jsB,KAAK4jsB,QAAQvjsB,OAAS,GAChDqqgC,GACA1qgC,KAAK+ngC,QAAQ2C,EAErB,CACJ,CACA1C,QAAAA,CAASrjgC,GACL,MAAMgmgC,EAAc3qgC,KAAK4jsB,QAAQ3sf,WAAW4sf,GAAWl/rB,IAASk/rB,IAChE,GAAoB,IAAhB8mU,EACA,OAAO,EAIX,IAAID,EACJ,IAAK,IAAIzogC,EAAI0ogC,EAAa1ogC,GAAK,EAAGA,IAAK,CACnC,MAAM4hsB,EAAS7jsB,KAAK4jsB,QAAQ3hsB,GAC5B,IAAyB,IAArB4hsB,EAAO03T,UAAqB,CAC5BmP,EAAW7mU,EACX,KACJ,CACJ,CACA,QAAI6mU,IACA1qgC,KAAK+ngC,QAAQ2C,IACN,EAKf,CACA3C,OAAAA,CAAQpjgC,EAAMimgC,GACV,MAAMF,EAAW1qgC,KAAKmttB,KACtB,GAAIxotB,IAAS+lgC,IAEb1qgC,KAAK0qgC,SAAWA,EAChB1qgC,KAAKmttB,KAAOxotB,EACZA,EAAKk6M,OACD6rzB,GAAU,CACVA,EAAS9p+B,UAAY8p+B,EAASD,iBAC9B9lgC,EAAK8lgC,iBACL9lgC,EAAKkmgC,WAAaH,EACdE,IACAjmgC,EAAKkmgC,WAAWC,iBAAkB,GAElCJ,EAASK,WACTpmgC,EAAKomgC,SAAWL,EAASK,SACzBpmgC,EAAKomgC,SAASzT,aACVoT,EAASM,iBAAmBN,EAASpT,cAEzC3y/B,EAAKC,MAAQD,EAAKC,KAAKqmgC,aACvBtmgC,EAAKumgC,eAAgB,GAEzB,MAAM,UAAE32T,GAAc5vsB,EAAK7E,SACT,IAAdy0sB,GACAm2T,EAASrorB,MAcjB,CACJ,CACA8orB,qBAAAA,GACInrgC,KAAK4jsB,QAAQrisB,SAASoD,IAClB,MAAM,QAAE7E,EAAO,aAAEsrgC,GAAiBzmgC,EAClC7E,EAAQ07/B,gBAAkB17/B,EAAQ07/B,iBAC9B4P,GACAA,EAAatrgC,QAAQ07/B,gBACjB4P,EAAatrgC,QAAQ07/B,gBAC7B,GAER,CACAiP,cAAAA,GACIzqgC,KAAK4jsB,QAAQrisB,SAASoD,IAClBA,EAAKi8B,UAAYj8B,EAAK8lgC,gBAAe,EAAM,GAEnD,CAKAY,kBAAAA,GACQrrgC,KAAKmttB,MAAQnttB,KAAKmttB,KAAK49S,WACvB/qgC,KAAKmttB,KAAK49S,cAAWjqgC,EAE7B,EC5GJ,MAAMwqgC,GAAiBA,CAACjg/B,EAAG4H,IAAM5H,EAAEqsB,MAAQzkB,EAAEykB,MCG7C,MAAM6z9B,GACFh//B,WAAAA,GACIvM,KAAKgF,SAAW,GAChBhF,KAAKwrgC,SAAU,CACnB,CACA9o+B,GAAAA,CAAIgrC,GACA+m7B,GAAcz0/B,KAAKgF,SAAU0oE,GAC7B1tE,KAAKwrgC,SAAU,CACnB,CACAr09B,MAAAA,CAAOu2B,GACHoqV,GAAW93Z,KAAKgF,SAAU0oE,GAC1B1tE,KAAKwrgC,SAAU,CACnB,CACAjqgC,OAAAA,CAAQkF,GACJzG,KAAKwrgC,SAAWxrgC,KAAKgF,SAASssB,KAAKg6+B,IACnCtrgC,KAAKwrgC,SAAU,EACfxrgC,KAAKgF,SAASzD,QAAQkF,EAC1B,ECZJ,SAASglgC,GAAmBrogC,GACxB,MAAMsogC,EAAiBjV,GAAcrz/B,GAASA,EAAM2F,MAAQ3F,EAC5D,OtDRmBk/B,EsDQEop+B,EtDPdv03B,QAAQ70G,GAAkB,kBAANA,GAAkBA,EAAEomE,KAAOpmE,EAAEqp+B,SsDQlDD,EAAeC,UACfD,EtDVapp+B,KsDWvB,CCNA,SAASvf,GAAMtc,EAAUy2B,GACrB,MAAMpW,EAAQvB,GAAKmtB,MACbk59B,EAAe71/B,IAAmB,IAAlB,UAAE68X,GAAW78X,EAC/B,MAAM2qE,EAAUkyT,EAAY9rX,EACxB45D,GAAWxjD,IACX+g9B,GAAY2tB,GACZnlgC,EAASi6E,EAAUxjD,GACvB,EAGJ,OADAirF,GAAM8tQ,KAAK21oB,GAAc,GAClB,IAAM3tB,GAAY2tB,EAC7B,CCUA,MAAMp1X,GAAU,CACZ1xoB,KAAM,kBACN+mgC,WAAY,EACZC,qBAAsB,EACtBC,uBAAwB,GAEtBC,GAA4B,qBAAXps+B,aAAiD9+B,IAAvB8+B,OAAOqs+B,YAClDC,GAAgB,CAAC,GAAI,IAAK,IAAK,KAC/BC,GAAmB,CAAEhz+B,WAAY,UAMvC,IAAIiI,GAAK,EACT,SAASgr+B,GAAyBlrgC,EAAKm6+B,EAAe3w9B,EAAQ2h/B,GAC1D,MAAM,aAAE/U,GAAiBjc,EAErBic,EAAap2/B,KACbwpB,EAAOxpB,GAAOo2/B,EAAap2/B,GAC3Bm6+B,EAAcixB,eAAeprgC,EAAK,GAC9BmrgC,IACAA,EAAsBnrgC,GAAO,GAGzC,CACA,SAASqrgC,GAAuCC,GAE5C,GADAA,EAAeC,2BAA4B,EACvCD,EAAe5ngC,OAAS4ngC,EACxB,OACJ,MAAM,cAAEnxB,GAAkBmxB,EAAe1sgC,QACzC,IAAKu7+B,EACD,OACJ,MAAMmc,EAAWhB,GAAqBnb,GACtC,GAAIz78B,OAAO8s+B,4BAA4BlV,EAAU,aAAc,CAC3D,MAAM,OAAEtt7B,EAAM,SAAEu5S,GAAa+opB,EAAe1sgC,QAC5C8/B,OAAO+s+B,+BAA+BnV,EAAU,YAAarv4B,KAASj+C,GAAUu5S,GACpF,CACA,MAAM,OAAE5+W,GAAW2ngC,EACf3ngC,IAAWA,EAAO4ngC,2BAClBF,GAAuC1ngC,EAE/C,CACA,SAAS+ngC,GAAoB72/B,GAA6F,IAA5F,qBAAE82/B,EAAoB,cAAEC,EAAa,cAAEC,EAAa,kBAAEC,EAAiB,eAAEC,GAAiBl3/B,EACpH,OAAO,MACHxJ,WAAAA,GAAuH,IAA3G+q/B,EAAYtq/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGnI,EAAMmI,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAqB,OAAlB8//B,QAA4C,IAAlBA,OAA2B,EAASA,IAIlG9sgC,KAAKohC,GAAKA,KAIVphC,KAAKktgC,YAAc,EAOnBltgC,KAAKgF,SAAW,IAAIg3B,IAKpBh8B,KAAKF,QAAU,CAAC,EAMhBE,KAAKmtgC,iBAAkB,EACvBntgC,KAAK+igC,oBAAqB,EAO1B/igC,KAAKkrgC,eAAgB,EAKrBlrgC,KAAKotgC,mBAAoB,EAKzBptgC,KAAKqtgC,yBAA0B,EAK/BrtgC,KAAKstgC,kBAAmB,EAIxBttgC,KAAKutgC,uBAAwB,EAC7BvtgC,KAAKwtgC,uBAAwB,EAK7BxtgC,KAAKirgC,YAAa,EAIlBjrgC,KAAKytgC,OAAQ,EAKbztgC,KAAK0tgC,YAAa,EAIlB1tgC,KAAK2tgC,sBAAuB,EAO5B3tgC,KAAKysgC,2BAA4B,EASjCzsgC,KAAKingC,UAAY,CAAE7+/B,EAAG,EAAGC,EAAG,GAI5BrI,KAAK+r9B,cAAgB,IAAI9llB,IACzBjmY,KAAK4tgC,iBAAkB,EAEvB5tgC,KAAK6tgC,iBAAkB,EACvB7tgC,KAAKq26B,eAAiB,IAAMr26B,KAAKu+C,SACjCv+C,KAAK8tgC,2BAA4B,EACjC9tgC,KAAK+tgC,kBAAoB,KACjB/tgC,KAAKirgC,aACLjrgC,KAAKirgC,YAAa,EAClBjrgC,KAAKgugC,oBACT,EAOJhugC,KAAKirlB,iBAAmB,KACpBjrlB,KAAK8tgC,2BAA4B,EAK7B9B,KACAx1X,GAAQq1X,WACJr1X,GAAQs1X,qBACJt1X,GAAQu1X,uBACJ,GAEhB/rgC,KAAKsB,MAAMC,QAAQ0sgC,IACnBjugC,KAAKsB,MAAMC,QAAQ2sgC,IACnBlugC,KAAKsB,MAAMC,QAAQ4sgC,IACnBnugC,KAAKsB,MAAMC,QAAQ6sgC,IACfpC,IACAps+B,OAAOqs+B,YAAYpuY,OAAO2Y,GAC9B,EAKJx2oB,KAAKqugC,yBAA2B,EAChCrugC,KAAKsugC,cAAe,EACpBtugC,KAAKuwN,WAAY,EACjBvwN,KAAKuugC,kBAAoB,EAKzBvugC,KAAKwugC,YAAc,IAAIvooB,IACvBjmY,KAAKs3/B,aAAeA,EACpBt3/B,KAAK4E,KAAOC,EAASA,EAAOD,MAAQC,EAAS7E,KAC7CA,KAAKwjB,KAAO3e,EAAS,IAAIA,EAAO2e,KAAM3e,GAAU,GAChD7E,KAAK6E,OAASA,EACd7E,KAAK03C,MAAQ7yC,EAASA,EAAO6yC,MAAQ,EAAI,EACzC,IAAK,IAAIz1C,EAAI,EAAGA,EAAIjC,KAAKwjB,KAAKnjB,OAAQ4B,IAClCjC,KAAKwjB,KAAKvhB,GAAG0rgC,sBAAuB,EAEpC3tgC,KAAK4E,OAAS5E,OACdA,KAAKsB,MAAQ,IAAIiqgC,GACzB,CACA7k/B,gBAAAA,CAAiBxb,EAAMolI,GAInB,OAHKtwI,KAAK+r9B,cAAct97B,IAAIvjB,IACxBlL,KAAK+r9B,cAAc/i9B,IAAIkC,EAAM,IAAIwp/B,IAE9B10/B,KAAK+r9B,cAAchj9B,IAAImC,GAAMw3B,IAAI4tG,EAC5C,CACAm+3B,eAAAA,CAAgBvjgC,GACZ,MAAMwjgC,EAAsB1ugC,KAAK+r9B,cAAchj9B,IAAImC,GAAM,QAAA6B,EAAAC,UAAA3M,OADpC4M,EAAI,IAAApD,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,EAAA,GAAAF,UAAAE,GAEzBwhgC,GAAuBA,EAAoB1+9B,UAAU/iC,EACzD,CACA0hgC,YAAAA,CAAazjgC,GACT,OAAOlL,KAAK+r9B,cAAct97B,IAAIvjB,EAClC,CAIAqr+B,KAAAA,CAAM318B,GAAqD,IAA3Csq+B,EAAal+/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGhN,KAAK4E,KAAKgpgC,gBACtC,GAAI5tgC,KAAK4gC,SACL,OCnPhB,IAAsBh6B,EDoPV5G,KAAKytgC,OCpPK7mgC,EDoPgBg6B,aCnPRgu+B,YAAkC,QAApBhogC,EAAQwf,QDoPxCpmB,KAAK4gC,SAAWA,EAChB,MAAM,SAAE6iV,EAAQ,OAAEv5S,EAAM,cAAEmx6B,GAAkBr7+B,KAAKF,QASjD,GARIu7+B,IAAkBA,EAAc3u+B,SAChC2u+B,EAAc9E,MAAM318B,GAExB5gC,KAAK4E,KAAKtD,MAAMohC,IAAI1iC,MACpBA,KAAK6E,QAAU7E,KAAK6E,OAAOG,SAAS09B,IAAI1iC,MACpCkrgC,IAAkBhh8B,GAAUu5S,KAC5BzjX,KAAKkrgC,eAAgB,GAErB2B,EAAsB,CACtB,IAAIgC,EACJ,MAAMC,EAAsBA,IAAO9ugC,KAAK4E,KAAK4ogC,uBAAwB,EACrEX,EAAqBjs+B,GAAU,KAC3B5gC,KAAK4E,KAAK4ogC,uBAAwB,EAClCqB,GAAeA,IACfA,EAAc9r/B,GAAM+r/B,EAAqB,KACrCpI,GAAsBC,yBACtBD,GAAsBC,wBAAyB,EAC/C3mgC,KAAKsB,MAAMC,QAAQwtgC,IACvB,GAER,CACItrpB,GACAzjX,KAAK4E,KAAKoqgC,mBAAmBvrpB,EAAUzjX,OAGd,IAAzBA,KAAKF,QAAQmvR,SACbostB,IACC53nB,GAAYv5S,IACblqE,KAAK0mB,iBAAiB,aAAalS,IAA+E,IAA9E,MAAE8sH,EAAK,iBAAE+k4B,EAAgB,yBAAE4I,EAA0B/k8B,OAAQy8E,GAAYnyI,EACzG,GAAIxU,KAAKkvgC,yBAGL,OAFAlvgC,KAAKkmB,YAASplB,OACdd,KAAKmvgC,oBAAiBrugC,GAI1B,MAAMsugC,EAAmBpvgC,KAAKF,QAAQqX,YAClCkk+B,EAAce,wBACdizB,IACE,uBAAEC,EAAsB,0BAAEC,GAA+Bl0B,EAAcG,WAKvEg0B,GAAiBxvgC,KAAKyvgC,eACvBnF,GAAiBtqgC,KAAKyvgC,aAAc9o3B,IACrCso3B,EAMES,GAAgCrJ,GAAoB4I,EAC1D,GAAIjvgC,KAAKF,QAAQ6vgC,YACZ3vgC,KAAK6qgC,YAAc7qgC,KAAK6qgC,WAAWjq+B,UACpC8u+B,GACCrJ,IACImJ,IAAkBxvgC,KAAKkogC,kBAAoB,CAC5ClogC,KAAK6qgC,aACL7qgC,KAAKorgC,aAAeprgC,KAAK6qgC,WACzB7qgC,KAAKorgC,aAAaA,kBAAetqgC,GAErCd,KAAK4vgC,mBAAmBtu4B,EAAOou4B,GAC/B,MAAMG,EAAgBt7nB,GAAAA,GAAA,GACf8nmB,GAAmB+yB,EAAkB,WAAS,IACjDhe,OAAQke,EACR3+uB,WAAY4+uB,KAEZl0B,EAAcoc,oBACdz3/B,KAAKF,QAAQ6vgC,cACbE,EAAiB9s/B,MAAQ,EACzB8s/B,EAAiB/qgC,MAAO,GAE5B9E,KAAK81/B,eAAe+Z,EACxB,MAOSxJ,GACD0I,GAAgB/ugC,MAEhBA,KAAKmogC,UAAYnogC,KAAKF,QAAQ07/B,gBAC9Bx7/B,KAAKF,QAAQ07/B,iBAGrBx7/B,KAAKyvgC,aAAe9o3B,CAAS,GAGzC,CACA0uxB,OAAAA,GACIr16B,KAAKF,QAAQ2jX,UAAYzjX,KAAK8ngC,aAC9B9ngC,KAAK4E,KAAKtD,MAAM61C,OAAOn3C,MACvB,MAAM2tE,EAAQ3tE,KAAKiogC,WACnBt67B,GAASA,EAAMx2B,OAAOn3C,MACtBA,KAAK6E,QAAU7E,KAAK6E,OAAOG,SAAS6tZ,OAAO7yZ,MAC3CA,KAAK4gC,cAAW9/B,EAChBm9+B,GAAYj++B,KAAKirlB,iBACrB,CAEA6kb,WAAAA,GACI9vgC,KAAKutgC,uBAAwB,CACjC,CACAwC,aAAAA,GACI/vgC,KAAKutgC,uBAAwB,CACjC,CACAyC,eAAAA,GACI,OAAOhwgC,KAAKutgC,uBAAyBvtgC,KAAKwtgC,qBAC9C,CACA0B,sBAAAA,GACI,OAAQlvgC,KAAK+igC,oBACR/igC,KAAK6E,QAAU7E,KAAK6E,OAAOqqgC,2BAC5B,CACR,CAEAe,WAAAA,GACQjwgC,KAAKgwgC,oBAEThwgC,KAAKirgC,YAAa,EAClBjrgC,KAAKsB,OAAStB,KAAKsB,MAAMC,QAAQ2ugC,IACjClwgC,KAAKktgC,cACT,CACAiD,oBAAAA,GACI,MAAM,cAAE90B,GAAkBr7+B,KAAKF,QAC/B,OAAOu7+B,GAAiBA,EAAcG,WAAWoqB,iBACrD,CACAkC,UAAAA,GAAyC,IAA9BsI,IAAqBpjgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GAE5B,GADAhN,KAAK4E,KAAKgpgC,iBAAkB,EACxB5tgC,KAAK4E,KAAKorgC,kBAEV,YADAhwgC,KAAKF,QAAQ07/B,gBAAkBx7/B,KAAKF,QAAQ07/B,kBAoBhD,GALI579B,OAAO+s+B,iCACN3sgC,KAAKysgC,2BACNF,GAAuCvsgC,OAE1CA,KAAK4E,KAAKqmgC,YAAcjrgC,KAAK4E,KAAKqrgC,cAC/BjwgC,KAAKkrgC,cACL,OACJlrgC,KAAKkrgC,eAAgB,EACrB,IAAK,IAAIjpgC,EAAI,EAAGA,EAAIjC,KAAKwjB,KAAKnjB,OAAQ4B,IAAK,CACvC,MAAM0C,EAAO3E,KAAKwjB,KAAKvhB,GACvB0C,EAAKgpgC,sBAAuB,EAC5BhpgC,EAAKkhgC,aAAa,YACdlhgC,EAAK7E,QAAQ6vgC,YACbhrgC,EAAKmjgC,YAAW,EAExB,CACA,MAAM,SAAErkpB,EAAQ,OAAEv5S,GAAWlqE,KAAKF,QAClC,QAAiBgB,IAAb2iX,IAA2Bv5S,EAC3B,OACJ,MAAM077B,EAAoB5lgC,KAAKmwgC,uBAC/BnwgC,KAAKqwgC,2BAA6BzK,EAC5BA,EAAkB5lgC,KAAKs3/B,aAAc,SACrCx2/B,EACNd,KAAKswgC,iBACLF,GAAyBpwgC,KAAKyugC,gBAAgB,aAClD,CACAlw9B,MAAAA,GACIv+C,KAAK6tgC,iBAAkB,EAKvB,GAJyB7tgC,KAAKgwgC,kBAQ1B,OAHAhwgC,KAAK+vgC,gBACL/vgC,KAAKgugC,yBACLhugC,KAAKsB,MAAMC,QAAQgvgC,IAGlBvwgC,KAAKirgC,YACNjrgC,KAAKsB,MAAMC,QAAQivgC,IAEvBxwgC,KAAKirgC,YAAa,EAIlBjrgC,KAAKsB,MAAMC,QAAQkvgC,IAKnBzwgC,KAAKsB,MAAMC,QAAQ01zB,IAKnBj3zB,KAAKsB,MAAMC,QAAQmvgC,IACnB1wgC,KAAKgugC,oBAML,MAAMt79B,EAAMntB,GAAKmtB,MACjBgr8B,GAAUp82B,MAAQ/qD,GAAM,EAAG,IAAO,GAAI7jC,EAAMgr8B,GAAU9qmB,WACtD8qmB,GAAU9qmB,UAAYlgW,EACtBgr8B,GAAUP,cAAe,EACzBe,GAAW3/7B,OAAOq7C,QAAQ8j5B,IAC1BQ,GAAWL,UAAUjk5B,QAAQ8j5B,IAC7BQ,GAAW1+8B,OAAOo6D,QAAQ8j5B,IAC1BA,GAAUP,cAAe,CAC7B,CACA35vB,SAAAA,GACSxjP,KAAK6tgC,kBACN7tgC,KAAK6tgC,iBAAkB,EACvBxG,GAAUpxoB,KAAKj2X,KAAKq26B,gBAE5B,CACA23F,iBAAAA,GACIhugC,KAAKsB,MAAMC,QAAQovgC,IACnB3wgC,KAAKwugC,YAAYjtgC,QAAQqvgC,GAC7B,CACAC,wBAAAA,GACS7wgC,KAAK8tgC,4BACN9tgC,KAAK8tgC,2BAA4B,EACjC3l5B,GAAM013B,UAAU79+B,KAAKirlB,kBAAkB,GAAO,GAEtD,CACAo9a,yBAAAA,GAMIlg5B,GAAM213B,YAAW,KACT99+B,KAAKkrgC,cACLlrgC,KAAK4E,KAAK4+O,YAGVxjP,KAAK4E,KAAKmpgC,mBACd,GAER,CAIAuC,cAAAA,IACQtwgC,KAAK+qgC,UAAa/qgC,KAAK4gC,WAE3B5gC,KAAK+qgC,SAAW/qgC,KAAK4xX,UACzB,CACAqlc,YAAAA,GACI,IAAKj3zB,KAAK4gC,SACN,OAGJ,GADA5gC,KAAK6lgC,iBACC7lgC,KAAKF,QAAQgxgC,sBAAuB9wgC,KAAKmogC,YAC1CnogC,KAAKkrgC,cACN,OASJ,GAAIlrgC,KAAK6qgC,aAAe7qgC,KAAK6qgC,WAAWjq+B,SACpC,IAAK,IAAI3+B,EAAI,EAAGA,EAAIjC,KAAKwjB,KAAKnjB,OAAQ4B,IAAK,CAC1BjC,KAAKwjB,KAAKvhB,GAClB4jgC,cACT,CAEJ,MAAMkL,EAAa/wgC,KAAKkqE,OACxBlqE,KAAKkqE,OAASlqE,KAAK4xX,SAAQ,GAC3B5xX,KAAKgxgC,gB7BngBC,CACd5ogC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6BqgB7B1pB,KAAKkrgC,eAAgB,EACrBlrgC,KAAKkngC,qBAAkBpmgC,EACvBd,KAAKyugC,gBAAgB,UAAWzugC,KAAKkqE,OAAOg57B,WAC5C,MAAM,cAAE7nB,GAAkBr7+B,KAAKF,QAC/Bu7+B,GACIA,EAAcrr8B,OAAO,gBAAiBhwC,KAAKkqE,OAAOg57B,UAAW6N,EAAaA,EAAW7N,eAAYpigC,EACzG,CACA+kgC,YAAAA,GAAgC,IAAnBrygB,EAAKxmf,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,UACbq0+B,EAAmBlq2B,QAAQn3I,KAAKF,QAAQmxgC,cAAgBjxgC,KAAK4gC,UAMjE,GALI5gC,KAAK2kgC,QACL3kgC,KAAK2kgC,OAAOuI,cAAgBltgC,KAAK4E,KAAKsogC,aACtCltgC,KAAK2kgC,OAAOnxgB,QAAUA,IACtB6tf,GAAmB,GAEnBA,EAAkB,CAClB,MAAM77jB,EAASwnlB,EAAkBhtgC,KAAK4gC,UACtC5gC,KAAK2kgC,OAAS,CACVuI,YAAaltgC,KAAK4E,KAAKsogC,YACvB15gB,QACAhuE,SACAn+a,OAAQ0lgC,EAAc/sgC,KAAK4gC,UAC3Bsw+B,QAASlxgC,KAAK2kgC,OAAS3kgC,KAAK2kgC,OAAOn/kB,OAASA,EAEpD,CACJ,CACAynlB,cAAAA,GACI,IAAKA,EACD,OACJ,MAAMkE,EAAmBnxgC,KAAKkrgC,eAC1BlrgC,KAAK2tgC,sBACL3tgC,KAAKF,QAAQgxgC,oBACXM,EAAgBpxgC,KAAKkngC,kBAAoBiD,GAAYnqgC,KAAKkngC,iBAC1DtB,EAAoB5lgC,KAAKmwgC,uBACzBkB,EAAyBzL,EACzBA,EAAkB5lgC,KAAKs3/B,aAAc,SACrCx2/B,EACAwwgC,EAA8BD,IAA2BrxgC,KAAKqwgC,2BAChEc,IACCC,GACGzg5B,GAAa3wH,KAAKs3/B,eAClBga,KACJrE,EAAejtgC,KAAK4gC,SAAUyw+B,GAC9BrxgC,KAAK2tgC,sBAAuB,EAC5B3tgC,KAAKyqgC,iBAEb,CACA74oB,OAAAA,GAAgC,IAAxB2/oB,IAAevkgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GACnB,MAAMwkgC,EAAUxxgC,KAAK4kgC,iBACrB,IAAI1B,EAAYljgC,KAAKyxgC,oBAAoBD,GAi+BrD,IAAkB53yB,EAv9BN,OAJI23yB,IACArO,EAAYljgC,KAAKuxgC,gBAAgBrO,IA29B7CwO,IADc93yB,EAx9BGspyB,GAy9BH96/B,GACdspgC,GAAU93yB,EAAIvxN,GAz9BC,CACH6kgC,YAAaltgC,KAAK4E,KAAKsogC,YACvByE,YAAaH,EACbtO,YACA5L,aAAc,CAAC,EACfx59B,OAAQ99B,KAAKohC,GAErB,CACAwj+B,cAAAA,GACI,IAAIxg6B,EACJ,MAAM,cAAEi34B,GAAkBr7+B,KAAKF,QAC/B,IAAKu7+B,EACD,M7B1kBE,CACdjz+B,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6B4kB7B,MAAMkwM,EAAMyhxB,EAAcoL,qBAE1B,MADgD,QAAtBri5B,EAAKpkG,KAAK2kgC,cAA2B,IAAPvg6B,OAAgB,EAASA,EAAG8s6B,UAAYlxgC,KAAKwjB,KAAK4nR,KAAKwmuB,KACzF,CAElB,MAAM,OAAEjN,GAAW3kgC,KAAK4E,KACpB+//B,IACAlD,GAAc7nyB,EAAIxxN,EAAGu8/B,EAAOt9/B,OAAOe,GACnCq5/B,GAAc7nyB,EAAIvxN,EAAGs8/B,EAAOt9/B,OAAOgB,GAE3C,CACA,OAAOuxN,CACX,CACA63yB,mBAAAA,CAAoB73yB,GAChB,IAAIx1H,EACJ,MAAMyt6B,E7BzlBA,CACdzpgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6B4lB7B,GADA0/+B,GAAYyI,EAAkBj4yB,GACH,QAAtBx1H,EAAKpkG,KAAK2kgC,cAA2B,IAAPvg6B,OAAgB,EAASA,EAAG8s6B,QAC3D,OAAOW,EAMX,IAAK,IAAI5vgC,EAAI,EAAGA,EAAIjC,KAAKwjB,KAAKnjB,OAAQ4B,IAAK,CACvC,MAAM0C,EAAO3E,KAAKwjB,KAAKvhB,IACjB,OAAE0igC,EAAM,QAAE7kgC,GAAY6E,EACxBA,IAAS3E,KAAK4E,MAAQ+//B,GAAU7kgC,EAAQmxgC,eAKpCtM,EAAOuM,SACP9H,GAAYyI,EAAkBj4yB,GAElC6nyB,GAAcoQ,EAAiBzpgC,EAAGu8/B,EAAOt9/B,OAAOe,GAChDq5/B,GAAcoQ,EAAiBxpgC,EAAGs8/B,EAAOt9/B,OAAOgB,GAExD,CACA,OAAOwpgC,CACX,CACA5ktB,cAAAA,CAAerzF,GAA4B,IAAvBk4yB,EAAa9kgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAC7B,MAAM+kgC,E7BpnBA,CACd3pgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6BsnB7B0/+B,GAAY2I,EAAgBn4yB,GAC5B,IAAK,IAAI33N,EAAI,EAAGA,EAAIjC,KAAKwjB,KAAKnjB,OAAQ4B,IAAK,CACvC,MAAM0C,EAAO3E,KAAKwjB,KAAKvhB,IAClB6vgC,GACDntgC,EAAK7E,QAAQmxgC,cACbtsgC,EAAKgggC,QACLhggC,IAASA,EAAKC,MACdk9/B,GAAaiQ,EAAgB,CACzB3pgC,GAAIzD,EAAKgggC,OAAOt9/B,OAAOe,EACvBC,GAAI1D,EAAKgggC,OAAOt9/B,OAAOgB,IAG1BsoH,GAAahsH,EAAK2y/B,eAEvBwK,GAAaiQ,EAAgBptgC,EAAK2y/B,aACtC,CAIA,OAHI3m4B,GAAa3wH,KAAKs3/B,eAClBwK,GAAaiQ,EAAgB/xgC,KAAKs3/B,cAE/Bya,CACX,CACAR,eAAAA,CAAgB33yB,GACZ,MAAMo4yB,E7B3oBA,CACd5pgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6B6oB7B0/+B,GAAY4I,EAAqBp4yB,GACjC,IAAK,IAAI33N,EAAI,EAAGA,EAAIjC,KAAKwjB,KAAKnjB,OAAQ4B,IAAK,CACvC,MAAM0C,EAAO3E,KAAKwjB,KAAKvhB,GACvB,IAAK0C,EAAKi8B,SACN,SACJ,IAAK+vF,GAAahsH,EAAK2y/B,cACnB,SACJ0J,GAASr8/B,EAAK2y/B,eAAiB3y/B,EAAK2rgC,iBACpC,MAAMrG,E7BppBJ,CACd7hgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6BupBzB0/+B,GAAYa,EADItlgC,EAAKiggC,kBAErBoF,GAAoBgI,EAAqBrtgC,EAAK2y/B,aAAc3y/B,EAAKomgC,SAAWpmgC,EAAKomgC,SAAS7H,eAAYpigC,EAAWmpgC,EACrH,CAIA,OAHIt54B,GAAa3wH,KAAKs3/B,eAClB0S,GAAoBgI,EAAqBhygC,KAAKs3/B,cAE3C0a,CACX,CACAC,cAAAA,CAAe3w4B,GACXthI,KAAKkygC,YAAc5w4B,EACnBthI,KAAK4E,KAAKisgC,2BACV7wgC,KAAKotgC,mBAAoB,CAC7B,CACAjhW,UAAAA,CAAWrsqB,GACPE,KAAKF,QAAOy0Y,GAAAA,GAAAA,GAAA,GACLv0Y,KAAKF,SACLA,GAAO,IACVy0sB,eAAiCzzsB,IAAtBhB,EAAQy0sB,WAA0Bz0sB,EAAQy0sB,WAE7D,CACAg8T,iBAAAA,GACIvwgC,KAAK2kgC,YAAS7jgC,EACdd,KAAKkqE,YAASppE,EACdd,KAAK+qgC,cAAWjqgC,EAChBd,KAAKqwgC,gCAA6BvvgC,EAClCd,KAAKkygC,iBAAcpxgC,EACnBd,KAAKkmB,YAASplB,EACdd,KAAKkrgC,eAAgB,CACzB,CACAiH,kCAAAA,GACSnygC,KAAKoygC,gBAQNpygC,KAAKoygC,eAAe/D,2BACpB3wB,GAAU9qmB,WACV5yY,KAAKoygC,eAAelE,oBAAmB,EAE/C,CACAA,kBAAAA,GAA+C,IAA5BmE,EAAkBrlgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GACjC,IAAIo3F,EAMJ,MAAM+onB,EAAOnttB,KAAKsygC,UAClBtygC,KAAKotgC,oBAAsBptgC,KAAKotgC,kBAAoBjgT,EAAKigT,mBACzDptgC,KAAKstgC,mBAAqBttgC,KAAKstgC,iBAAmBngT,EAAKmgT,kBACvDttgC,KAAKqtgC,0BAA4BrtgC,KAAKqtgC,wBAA0BlgT,EAAKkgT,yBACrE,MAAMkF,EAAWp73B,QAAQn3I,KAAKorgC,eAAiBprgC,OAASmttB,EAWxD,KANkBklT,GACbE,GAAYvygC,KAAKqtgC,yBAClBrtgC,KAAKotgC,oBACmB,QAAtBhp6B,EAAKpkG,KAAK6E,cAA2B,IAAPu/F,OAAgB,EAASA,EAAGgp6B,oBAC5DptgC,KAAKwygC,gCACLxygC,KAAK4E,KAAK4ogC,uBAEV,OACJ,MAAM,OAAEtj8B,EAAM,SAAEu5S,GAAazjX,KAAKF,QAIlC,GAAKE,KAAKkqE,SAAYA,GAAUu5S,GAAhC,CAQA,GANAzjX,KAAKqugC,yBAA2B3wB,GAAU9qmB,WAMrC5yY,KAAKkygC,cAAgBlygC,KAAKmvgC,eAAgB,CAC3C,MAAMiD,EAAiBpygC,KAAKyygC,6BACxBL,GACAA,EAAelo8B,QACY,IAA3BlqE,KAAKuugC,mBACLvugC,KAAKoygC,eAAiBA,EACtBpygC,KAAKmygC,qCACLnygC,KAAKmvgC,e7B5uBP,CACd/mgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6B8uBrB1pB,KAAK0ygC,qB7B7uBP,CACdtqgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6B+uBrBw2+B,GAAqBlggC,KAAK0ygC,qBAAsB1ygC,KAAKkqE,OAAOg57B,UAAWkP,EAAelo8B,OAAOg57B,WAC7FkG,GAAYppgC,KAAKmvgC,eAAgBnvgC,KAAK0ygC,uBAGtC1ygC,KAAKoygC,eAAiBpygC,KAAKmvgC,oBAAiBrugC,CAEpD,CAKA,GAAKd,KAAKmvgC,gBAAmBnvgC,KAAKkygC,YAAlC,C/B9tBZ,IAAyBhs/B,EAAQ2i2B,EAAUhk3B,E+BuwB/B,GApCK7E,KAAKkmB,SACNlmB,KAAKkmB,O7B/vBH,CACd9d,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6BiwBzB1pB,KAAK2ygC,qB7BhwBH,CACdvqgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,K6BswBzB1pB,KAAKmvgC,gBACLnvgC,KAAK0ygC,sBACL1ygC,KAAKoygC,gBACLpygC,KAAKoygC,eAAels/B,QACpBlmB,KAAKmygC,qC/B9uBIjs/B,E+B+uBOlmB,KAAKkmB,O/B/uBJ2i2B,E+B+uBY7o3B,KAAKmvgC,e/B/uBPtqgC,E+B+uBuB7E,KAAKoygC,eAAels/B,O/B9uBlF85+B,GAAiB95+B,EAAO9d,EAAGyg3B,EAASzg3B,EAAGvD,EAAOuD,GAC9C43/B,GAAiB95+B,EAAO7d,EAAGwg3B,EAASxg3B,EAAGxD,EAAOwD,I+BkvB7BrI,KAAKkygC,aACN/63B,QAAQn3I,KAAKorgC,cAEbprgC,KAAKkmB,OAASlmB,KAAKitT,eAAejtT,KAAKkqE,OAAOg57B,WAG9CkG,GAAYppgC,KAAKkmB,OAAQlmB,KAAKkqE,OAAOg57B,WAEzC5B,GAActhgC,KAAKkmB,OAAQlmB,KAAKkygC,cAMhC9I,GAAYppgC,KAAKkmB,OAAQlmB,KAAKkqE,OAAOg57B,WAKrCljgC,KAAKwygC,+BAAgC,CACrCxygC,KAAKwygC,gCAAiC,EACtC,MAAMJ,EAAiBpygC,KAAKyygC,6BACxBL,GACAj73B,QAAQi73B,EAAehH,gBACnBj03B,QAAQn3I,KAAKorgC,gBAChBgH,EAAetygC,QAAQmxgC,cACxBmB,EAAels/B,QACY,IAA3BlmB,KAAKuugC,mBACLvugC,KAAKoygC,eAAiBA,EACtBpygC,KAAKmygC,qCACLnygC,KAAKmvgC,e7B7yBP,CACd/mgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6B+yBrB1pB,KAAK0ygC,qB7B9yBP,CACdtqgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6BgzBrBw2+B,GAAqBlggC,KAAK0ygC,qBAAsB1ygC,KAAKkmB,OAAQks/B,EAAels/B,QAC5Ekj/B,GAAYppgC,KAAKmvgC,eAAgBnvgC,KAAK0ygC,uBAGtC1ygC,KAAKoygC,eAAiBpygC,KAAKmvgC,oBAAiBrugC,CAEpD,CAIIkrgC,IACAx1X,GAAQs1X,sBAhEF,CA5BA,CA8Fd,CACA2G,0BAAAA,GACI,GAAKzygC,KAAK6E,SACNm8/B,GAAShhgC,KAAK6E,OAAOyy/B,gBACrB2J,GAAejhgC,KAAK6E,OAAOyy/B,cAG/B,OAAIt3/B,KAAK6E,OAAO+tgC,eACL5ygC,KAAK6E,OAGL7E,KAAK6E,OAAO4tgC,4BAE3B,CACAG,YAAAA,GACI,OAAOz73B,SAASn3I,KAAKmvgC,gBACjBnvgC,KAAKkygC,aACLlygC,KAAKF,QAAQ6vgC,aACb3vgC,KAAKkqE,OACb,CACAik8B,cAAAA,GACI,IAAI/p6B,EACJ,MAAM+onB,EAAOnttB,KAAKsygC,UACZC,EAAWp73B,QAAQn3I,KAAKorgC,eAAiBprgC,OAASmttB,EACxD,IAAI0lT,GAAU,EAuBd,IAlBI7ygC,KAAKotgC,oBAA6C,QAAtBhp6B,EAAKpkG,KAAK6E,cAA2B,IAAPu/F,OAAgB,EAASA,EAAGgp6B,sBACtFyF,GAAU,GAMVN,IACCvygC,KAAKqtgC,yBAA2BrtgC,KAAKstgC,oBACtCuF,GAAU,GAMV7ygC,KAAKqugC,2BAA6B3wB,GAAU9qmB,YAC5CigoB,GAAU,GAEVA,EACA,OACJ,MAAM,OAAE3o8B,EAAM,SAAEu5S,GAAazjX,KAAKF,QAWlC,GANAE,KAAKmtgC,gBAAkBh23B,QAASn3I,KAAK6E,QAAU7E,KAAK6E,OAAOsogC,iBACvDntgC,KAAKkogC,kBACLlogC,KAAK8ygC,kBACJ9ygC,KAAKmtgC,kBACNntgC,KAAKkygC,YAAclygC,KAAKmvgC,oBAAiBrugC,IAExCd,KAAKkqE,SAAYA,IAAUu5S,EAC5B,OAKJ2lpB,GAAYppgC,KAAKgxgC,gBAAiBhxgC,KAAKkqE,OAAOg57B,WAI9C,MAAM6P,EAAiB/ygC,KAAKingC,UAAU7+/B,EAChC4qgC,EAAiBhzgC,KAAKingC,UAAU5+/B,GzBp2BlD,SAAyBuxN,EAAKqtyB,EAAWhhE,GAAsC,IAA5BgtE,EAAkBjmgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GACjE,MAAMkmgC,EAAajtE,EAAS5l8B,OAC5B,IAAK6ygC,EACD,OAGJ,IAAIvugC,EACA28H,EAFJ2l4B,EAAU7+/B,EAAI6+/B,EAAU5+/B,EAAI,EAG5B,IAAK,IAAIpG,EAAI,EAAGA,EAAIixgC,EAAYjxgC,IAAK,CACjC0C,EAAOsh8B,EAAShk8B,GAChBq/H,EAAQ38H,EAAKuigC,gBAKb,MAAM,cAAE7rB,GAAkB12+B,EAAK7E,QAC3Bu7+B,GACAA,EAAct2+B,MAAMunB,OACkB,aAAtC+u9B,EAAct2+B,MAAMunB,MAAMtV,UAG1Bi8/B,GACAtugC,EAAK7E,QAAQmxgC,cACbtsgC,EAAKgggC,QACLhggC,IAASA,EAAKC,MACdk9/B,GAAaloyB,EAAK,CACdxxN,GAAIzD,EAAKgggC,OAAOt9/B,OAAOe,EACvBC,GAAI1D,EAAKgggC,OAAOt9/B,OAAOgB,IAG3Bi5H,IAEA2l4B,EAAU7+/B,GAAKk5H,EAAMl5H,EAAEsH,MACvBu3/B,EAAU5+/B,GAAKi5H,EAAMj5H,EAAEqH,MAEvB4x/B,GAAc1nyB,EAAKt4F,IAEnB2x4B,GAAsBti5B,GAAahsH,EAAK2y/B,eACxCwK,GAAaloyB,EAAKj1N,EAAK2y/B,cAE/B,CAKI2P,EAAU7+/B,EAAIo5/B,IACdyF,EAAU7+/B,EAAIm5/B,KACd0F,EAAU7+/B,EAAI,GAEd6+/B,EAAU5+/B,EAAIm5/B,IACdyF,EAAU5+/B,EAAIk5/B,KACd0F,EAAU5+/B,EAAI,EAEtB,CyBozBY8qgC,CAAgBnzgC,KAAKgxgC,gBAAiBhxgC,KAAKingC,UAAWjngC,KAAKwjB,KAAM+u/B,IAK7DplT,EAAKjjpB,QACJijpB,EAAKjnsB,QACgB,IAArBlmB,KAAKingC,UAAU7+/B,GAAgC,IAArBpI,KAAKingC,UAAU5+/B,IAC1C8ktB,EAAKjnsB,OAASinsB,EAAKjjpB,OAAOg57B,UAC1B/1S,EAAKwlT,qB7Bj5BH,CACdvqgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,K6Bo5B7B,MAAM,OAAExD,GAAWinsB,EACdjnsB,GAYAlmB,KAAKkngC,iBAAoBlngC,KAAKozgC,qBAI/B9J,GAAkBtpgC,KAAKozgC,oBAAoBhrgC,EAAGpI,KAAKkngC,gBAAgB9+/B,GACnEkhgC,GAAkBtpgC,KAAKozgC,oBAAoB/qgC,EAAGrI,KAAKkngC,gBAAgB7+/B,IAJnErI,KAAKqzgC,yBAeTtT,GAAa///B,KAAKkngC,gBAAiBlngC,KAAKgxgC,gBAAiB9q/B,EAAQlmB,KAAKs3/B,cAClEt3/B,KAAKingC,UAAU7+/B,IAAM2qgC,GACrB/ygC,KAAKingC,UAAU5+/B,IAAM2qgC,GACpBzI,GAAgBvqgC,KAAKkngC,gBAAgB9+/B,EAAGpI,KAAKozgC,oBAAoBhrgC,IACjEmigC,GAAgBvqgC,KAAKkngC,gBAAgB7+/B,EAAGrI,KAAKozgC,oBAAoB/qgC,KAClErI,KAAKsugC,cAAe,EACpBtugC,KAAKyqgC,iBACLzqgC,KAAKyugC,gBAAgB,mBAAoBvo/B,IAKzC8l/B,IACAx1X,GAAQu1X,0BAnCJ/rgC,KAAKozgC,sBACLpzgC,KAAKqzgC,yBACLrzgC,KAAKyqgC,iBAmCjB,CACAporB,IAAAA,GACIriV,KAAKuwN,WAAY,CAErB,CACA1R,IAAAA,GACI7+M,KAAKuwN,WAAY,CAErB,CACAk6yB,cAAAA,GAAiC,IAAlB6I,IAAStmgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GACpB,IAAIo3F,EAEJ,GADsC,QAArCA,EAAKpkG,KAAKF,QAAQu7+B,qBAAkC,IAAPj34B,GAAyBA,EAAGqm6B,iBACtE6I,EAAW,CACX,MAAM3l8B,EAAQ3tE,KAAKiogC,WACnBt67B,GAASA,EAAM887B,gBACnB,CACIzqgC,KAAKorgC,eAAiBprgC,KAAKorgC,aAAaxq+B,WACxC5gC,KAAKorgC,kBAAetqgC,EAE5B,CACAuygC,sBAAAA,GACIrzgC,KAAKozgC,oB7Bz9BG,CAChBhrgC,EAPoB,CACpB2+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,GAIbz3/B,EARoB,CACpB0+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,I6B49BL9//B,KAAKkngC,gB7B19BG,CAChB9+/B,EAPoB,CACpB2+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,GAIbz3/B,EARoB,CACpB0+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,I6B69BL9//B,KAAKuzgC,6B7B39BG,CAChBnrgC,EAPoB,CACpB2+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,GAIbz3/B,EARoB,CACpB0+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,G6B89BT,CACA8P,kBAAAA,CAAmBtu4B,GAA6C,IAAtCou4B,EAA4B1igC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAClD,MAAM+9/B,EAAW/qgC,KAAK+qgC,SAChByI,EAAuBzI,EACvBA,EAASzT,aACT,CAAC,EACDmc,EAAWl/nB,GAAA,GAAQv0Y,KAAKs3/B,cACxB4a,E7Bn+BE,CAChB9pgC,EAPoB,CACpB2+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,GAIbz3/B,EARoB,CACpB0+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,I6Bs+BA9//B,KAAKoygC,gBACLpygC,KAAKoygC,eAAetygC,QAAQ6vgC,aAC7B3vgC,KAAKmvgC,eAAiBnvgC,KAAK0ygC,0BAAuB5xgC,GAEtDd,KAAKwygC,gCAAkC9C,EACvC,MAAMgE,E7Bp+BA,CACdtrgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6Bw+BvBiq/B,GAFiB5I,EAAWA,EAASjt+B,YAASh9B,MAC/Bd,KAAKkqE,OAASlqE,KAAKkqE,OAAOpsC,YAASh9B,GAElD6sE,EAAQ3tE,KAAKiogC,WACb2L,GAAgBjm8B,GAASA,EAAMi2nB,QAAQvjsB,QAAU,EACjDwzgC,EAAyB183B,QAAQw83B,IAClCC,IAC0B,IAA3B5zgC,KAAKF,QAAQy0sB,YACZv0sB,KAAKwjB,KAAK4nR,KAAK0ouB,KAEpB,IAAIC,EADJ/zgC,KAAKuugC,kBAAoB,EAEzBvugC,KAAKg0gC,eAAkBhoB,IACnB,MAAMr27B,EAAWq27B,EAAS,INj/B1C,IAAmB3g+B,EAAG4H,EMk/BNgh/B,GAAa/B,EAAY9pgC,EAAGk5H,EAAMl5H,EAAGutD,GACrCs+8B,GAAa/B,EAAY7pgC,EAAGi5H,EAAMj5H,EAAGstD,GACrC31D,KAAKiygC,eAAeC,GAChBlygC,KAAKmvgC,gBACLnvgC,KAAK0ygC,sBACL1ygC,KAAKkqE,QACLlqE,KAAKoygC,gBACLpygC,KAAKoygC,eAAelo8B,SACpBg27B,GAAqBwT,EAAgB1zgC,KAAKkqE,OAAOg57B,UAAWljgC,KAAKoygC,eAAelo8B,OAAOg57B,WAggB3G,SAAgBx8/B,EAAQ5D,EAAM2rC,EAAI1b,GAC9Bmh/B,GAAQxtgC,EAAO0B,EAAGtF,EAAKsF,EAAGqmC,EAAGrmC,EAAG2qB,GAChCmh/B,GAAQxtgC,EAAO2B,EAAGvF,EAAKuF,EAAGomC,EAAGpmC,EAAG0qB,EACpC,CAlgBoBoh/B,CAAOn0gC,KAAKmvgC,eAAgBnvgC,KAAK0ygC,qBAAsBgB,EAAgB/98B,GAKnEo+8B,INhgCL1o/B,EMigCerrB,KAAKmvgC,eNjgCjBl8+B,EMigCiC8g/B,ENhgC5C3J,GAAW/++B,EAAEjjB,EAAG6qB,EAAE7qB,IAAMgigC,GAAW/++B,EAAEhjB,EAAG4qB,EAAE5qB,MMigC7BrI,KAAKotgC,mBAAoB,GAExB2G,IACDA,E7BrgCN,CACd3rgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,K6BugCrB0/+B,GAAY2K,EAAoB/zgC,KAAKmvgC,iBAErCwE,IACA3zgC,KAAKgrgC,gBAAkByI,ET1gC3C,SAAmBvt/B,EAAQo+1B,EAAQn3J,EAAMx3pB,EAAUk+8B,EAAwBD,GACnEC,GACA3t/B,EAAO3W,QAAUm9+B,GAAU,OAEV5r/B,IAAjBqstB,EAAK59sB,QAAwB49sB,EAAK59sB,QAAU,EAAGy5/B,GAAgBrz8B,IAC/DzvC,EAAOku/B,YAAc1nB,QAA6B5r/B,IAAnBwj3B,EAAO/02B,QAAwB+02B,EAAO/02B,QAAU,EAAG,EAAG05/B,GAAiBtz8B,KAEjGi+8B,IACL1t/B,EAAO3W,QAAUm9+B,QAA6B5r/B,IAAnBwj3B,EAAO/02B,QAAwB+02B,EAAO/02B,QAAU,OAAoBzO,IAAjBqstB,EAAK59sB,QAAwB49sB,EAAK59sB,QAAU,EAAGomD,IAKjI,IAAK,IAAI1zD,EAAI,EAAGA,EAAI0mgC,GAAY1mgC,IAAK,CACjC,MAAMoygC,EAAc,SAAHzpgC,OAAY89/B,GAAQzmgC,GAAE,UACvC,IAAIqygC,EAAexL,GAAUxkJ,EAAQ+vJ,GACjCE,EAAazL,GAAU37S,EAAMknT,QACZvzgC,IAAjBwzgC,QAA6CxzgC,IAAfyzgC,IAElCD,IAAiBA,EAAe,GAChCC,IAAeA,EAAa,GACI,IAAjBD,GACI,IAAfC,GACA1L,GAAKyL,KAAkBzL,GAAK0L,IAE5Bru/B,EAAOmu/B,GAAexxgC,KAAK6mB,IAAIgj+B,GAAUkc,GAAS0L,GAAe1L,GAAS2L,GAAa5+8B,GAAW,IAC9FmgC,GAAQzuE,KAAKkt/B,IAAez+6B,GAAQzuE,KAAKit/B,MACzCpu/B,EAAOmu/B,IAAgB,MAI3Bnu/B,EAAOmu/B,GAAeE,EAE9B,EAIIjwJ,EAAO59yB,QAAUympB,EAAKzmpB,UACtBxgD,EAAOwgD,OAASgm7B,GAAUpoI,EAAO59yB,QAAU,EAAGympB,EAAKzmpB,QAAU,EAAG/Q,GAExE,CSm+BoB6+8B,CAAUf,EAAaD,EAAsBxzgC,KAAKs3/B,aAAc3h8B,EAAUk+8B,EAAwBD,IAEtG5zgC,KAAK4E,KAAKisgC,2BACV7wgC,KAAKyqgC,iBACLzqgC,KAAKuugC,kBAAoB548B,CAAQ,EAErC31D,KAAKg0gC,eAAeh0gC,KAAKF,QAAQ6vgC,WAAa,IAAO,EACzD,CACA7Z,cAAAA,CAAeh2/B,GACXE,KAAKyugC,gBAAgB,kBACrBzugC,KAAKkogC,kBAAoBlogC,KAAKkogC,iBAAiBnx9B,OAC3C/2C,KAAKorgC,cAAgBprgC,KAAKorgC,aAAalD,kBACvClogC,KAAKorgC,aAAalD,iBAAiBnx9B,OAEnC/2C,KAAK8ygC,mBACL70B,GAAYj++B,KAAK8ygC,kBACjB9ygC,KAAK8ygC,sBAAmBhygC,GAO5Bd,KAAK8ygC,iBAAmB3q5B,GAAM5pE,QAAO,KACjCmo9B,GAAsBC,wBAAyB,EAC/C3mgC,KAAKkogC,iBE1iCrB,SAA4B9kgC,EAAO+J,EAAWrN,GAC1C,MAAM20gC,EAAgBhe,GAAcrz/B,GAASA,EAAQ6++B,GAAY7++B,GAEjE,OADAqxgC,EAAc3t/B,MAAMit+B,GAAmB,GAAI0gB,EAAetngC,EAAWrN,IAC9D20gC,EAAch93B,SACzB,CFsiCwCi93B,CAAmB,EArgCnC,IAqgCqDngoB,GAAAA,GAAA,GACtDz0Y,GAAO,IACVs56B,SAAW4yE,IACPhs/B,KAAKg0gC,eAAehoB,GACpBls/B,EAAQs56B,UAAYt56B,EAAQs56B,SAAS4yE,EAAO,EAEhDr7tB,WAAYA,KACR7wR,EAAQ6wR,YAAc7wR,EAAQ6wR,aAC9B3wR,KAAK20gC,mBAAmB,KAG5B30gC,KAAKorgC,eACLprgC,KAAKorgC,aAAalD,iBAAmBlogC,KAAKkogC,kBAE9ClogC,KAAK8ygC,sBAAmBhygC,CAAS,GAEzC,CACA6zgC,iBAAAA,GACQ30gC,KAAKorgC,eACLprgC,KAAKorgC,aAAalD,sBAAmBpngC,EACrCd,KAAKorgC,aAAaN,qBAAkBhqgC,GAExC,MAAM6sE,EAAQ3tE,KAAKiogC,WACnBt67B,GAASA,EAAMw97B,wBACfnrgC,KAAKorgC,aACDprgC,KAAKkogC,iBACDlogC,KAAKgrgC,qBACDlqgC,EACZd,KAAKyugC,gBAAgB,oBACzB,CACAM,eAAAA,GACQ/ugC,KAAKkogC,mBACLlogC,KAAKg0gC,gBAAkBh0gC,KAAKg0gC,eAriCpB,KAsiCRh0gC,KAAKkogC,iBAAiBnx9B,QAE1B/2C,KAAK20gC,mBACT,CACAC,uBAAAA,GACI,MAAMznT,EAAOnttB,KAAKsygC,UAClB,IAAI,qBAAEK,EAAoB,OAAEzs/B,EAAM,OAAEgkD,EAAM,aAAEot7B,GAAiBnqS,EAC7D,GAAKwlT,GAAyBzs/B,GAAWgkD,EAAzC,CAOA,GAAIlqE,OAASmttB,GACTnttB,KAAKkqE,QACLA,GACA2q8B,GAA0B70gC,KAAKF,QAAQg1gC,cAAe90gC,KAAKkqE,OAAOg57B,UAAWh57B,EAAOg57B,WAAY,CAChGh9+B,EAASlmB,KAAKkmB,Q7BtlCZ,CACd9d,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6BwlCzB,MAAMu4nB,EAAU29W,GAAW5//B,KAAKkqE,OAAOg57B,UAAU96/B,GACjD8d,EAAO9d,EAAEuhB,IAAMwjsB,EAAKjnsB,OAAO9d,EAAEuhB,IAC7BzD,EAAO9d,EAAEshB,IAAMxD,EAAO9d,EAAEuhB,IAAMs4nB,EAC9B,MAAMC,EAAU09W,GAAW5//B,KAAKkqE,OAAOg57B,UAAU76/B,GACjD6d,EAAO7d,EAAEshB,IAAMwjsB,EAAKjnsB,OAAO7d,EAAEshB,IAC7BzD,EAAO7d,EAAEqhB,IAAMxD,EAAO7d,EAAEshB,IAAMu4nB,CAClC,CACAknX,GAAYuJ,EAAsBzs/B,GAMlC47+B,GAAa6Q,EAAsBrb,GAOnCyI,GAAa///B,KAAKuzgC,6BAA8BvzgC,KAAKgxgC,gBAAiB2B,EAAsBrb,EA/BlF,CAgCd,CACA0X,kBAAAA,CAAmBvrpB,EAAU9+W,GACpB3E,KAAKwugC,YAAY//+B,IAAIg1V,IACtBzjX,KAAKwugC,YAAYxlgC,IAAIy6W,EAAU,IAAI+mpB,IAEzBxqgC,KAAKwugC,YAAYzlgC,IAAI06W,GAC7B/gV,IAAI/9B,GACV,MAAMiQ,EAASjQ,EAAK7E,QAAQi1gC,uBAC5BpwgC,EAAKojgC,QAAQ,CACT5w/B,WAAYvC,EAASA,EAAOuC,gBAAarW,EACzC8pgC,sBAAuBh2/B,GAAUA,EAAOoggC,4BAClCpggC,EAAOoggC,4BAA4BrwgC,QACnC7D,GAEd,CACAqngC,MAAAA,GACI,MAAMx67B,EAAQ3tE,KAAKiogC,WACnB,OAAOt67B,GAAQA,EAAMw/oB,OAASnttB,IAClC,CACAsygC,OAAAA,GACI,IAAIlu6B,EACJ,MAAM,SAAEq/Q,GAAazjX,KAAKF,QAC1B,OAAO2jX,IAAuC,QAA1Br/Q,EAAKpkG,KAAKiogC,kBAA+B,IAAP7j6B,OAAgB,EAASA,EAAG+onB,OAAgBnttB,IACtG,CACAi1gC,WAAAA,GACI,IAAI7w6B,EACJ,MAAM,SAAEq/Q,GAAazjX,KAAKF,QAC1B,OAAO2jX,EAAsC,QAA1Br/Q,EAAKpkG,KAAKiogC,kBAA+B,IAAP7j6B,OAAgB,EAASA,EAAGsm6B,cAAW5pgC,CAChG,CACAmngC,QAAAA,GACI,MAAM,SAAExkpB,GAAazjX,KAAKF,QAC1B,GAAI2jX,EACA,OAAOzjX,KAAK4E,KAAK4pgC,YAAYzlgC,IAAI06W,EACzC,CACAskpB,OAAAA,GAAiE,IAAzD,WAAE2F,EAAU,WAAEv2/B,EAAU,sBAAEyz/B,GAAwB59/B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC1D,MAAM2gE,EAAQ3tE,KAAKiogC,WACft67B,GACAA,EAAMo67B,QAAQ/ngC,KAAM4qgC,GACpB8C,IACA1tgC,KAAKkngC,qBAAkBpmgC,EACvBd,KAAK0tgC,YAAa,GAElBv2/B,GACAnX,KAAKmsqB,WAAW,CAAEh1pB,cAC1B,CACA6w/B,QAAAA,GACI,MAAMr67B,EAAQ3tE,KAAKiogC,WACnB,QAAIt67B,GACOA,EAAMq67B,SAAShogC,KAK9B,CACAkwgC,oBAAAA,GACI,MAAM,cAAE70B,GAAkBr7+B,KAAKF,QAC/B,IAAKu7+B,EACD,OAEJ,IAAI65B,GAAyB,EAK7B,MAAM,aAAE5d,GAAiBjc,EAWzB,IAVIic,EAAahv/B,GACbgv/B,EAAa5w7B,QACb4w7B,EAAa3z4B,SACb2z4B,EAAa1z4B,SACb0z4B,EAAazz4B,SACbyz4B,EAAah4kB,OACbg4kB,EAAatS,SACbkwB,GAAyB,IAGxBA,EACD,OACJ,MAAMC,EAAc,CAAC,EACjB7d,EAAahv/B,GACb8jgC,GAAyB,IAAK/wB,EAAe85B,EAAan1gC,KAAKgrgC,iBAGnE,IAAK,IAAI/ogC,EAAI,EAAGA,EAAIiqgC,GAAc7rgC,OAAQ4B,IACtCmqgC,GAAyB,SAADxhgC,OAAUshgC,GAAcjqgC,IAAMo5+B,EAAe85B,EAAan1gC,KAAKgrgC,iBACvFoB,GAAyB,OAADxhgC,OAAQshgC,GAAcjqgC,IAAMo5+B,EAAe85B,EAAan1gC,KAAKgrgC,iBAIzF3vB,EAAc778B,SAEd,IAAK,MAAMt+B,KAAOi0gC,EACd95B,EAAcixB,eAAeprgC,EAAKi0gC,EAAYj0gC,IAC1ClB,KAAKgrgC,kBACLhrgC,KAAKgrgC,gBAAgB9pgC,GAAOi0gC,EAAYj0gC,IAKhDm6+B,EAAcovB,gBAClB,CACA2K,mBAAAA,CAAoBC,GAChB,IAAIjx6B,EAAID,EACR,IAAKnkG,KAAK4gC,UAAY5gC,KAAKytgC,MACvB,OACJ,IAAKztgC,KAAKuwN,UACN,OAAO47yB,GAEX,MAAMnhgC,EAAS,CACXmuB,WAAY,IAEVys+B,EAAoB5lgC,KAAKmwgC,uBAC/B,GAAInwgC,KAAK0tgC,WAQL,OAPA1tgC,KAAK0tgC,YAAa,EAClB1igC,EAAOuE,QAAU,GACjBvE,EAAOs6M,cACHmmzB,GAAiC,OAAd4J,QAAoC,IAAdA,OAAuB,EAASA,EAAU/vzB,gBAAkB,GACzGt6M,EAAOynB,UAAYmz+B,EACbA,EAAkB5lgC,KAAKs3/B,aAAc,IACrC,OACCts/B,EAEX,MAAMmitB,EAAOnttB,KAAKsygC,UAClB,IAAKtygC,KAAKkngC,kBAAoBlngC,KAAKkqE,SAAWijpB,EAAKjnsB,OAAQ,CACvD,MAAMov/B,EAAc,CAAC,EAerB,OAdIt1gC,KAAKF,QAAQ2jX,WACb6xpB,EAAY/lgC,aACsBzO,IAA9Bd,KAAKs3/B,aAAa/n/B,QACZvP,KAAKs3/B,aAAa/n/B,QAClB,EACV+lgC,EAAYhwzB,cACRmmzB,GAAiC,OAAd4J,QAAoC,IAAdA,OAAuB,EAASA,EAAU/vzB,gBAAkB,IAEzGtlN,KAAKsugC,eAAiB394B,GAAa3wH,KAAKs3/B,gBACxCge,EAAY7i/B,UAAYmz+B,EAClBA,EAAkB,CAAC,EAAG,IACtB,OACN5lgC,KAAKsugC,cAAe,GAEjBgH,CACX,CACA,MAAMC,EAAiBpoT,EAAK69S,iBAAmB79S,EAAKmqS,aACpDt3/B,KAAK40gC,0BACL5pgC,EAAOynB,UGrwCnB,SAAkC6uG,EAAO2l4B,EAAWuO,GAChD,IAAI/i/B,EAAY,GAOhB,MAAMgj/B,EAAan04B,EAAMl5H,EAAE2+C,UAAYkg9B,EAAU7+/B,EAC3Cuy3B,EAAar5vB,EAAMj5H,EAAE0+C,UAAYkg9B,EAAU5+/B,EAC3CqtgC,GAAkC,OAApBF,QAAgD,IAApBA,OAA6B,EAASA,EAAgBltgC,IAAM,EAW5G,IAVImtgC,GAAc96I,GAAc+6I,KAC5Bjj/B,EAAY,eAAH7nB,OAAkB6qgC,EAAU,QAAA7qgC,OAAO+v3B,EAAU,QAAA/v3B,OAAO8qgC,EAAU,SAMvD,IAAhBzO,EAAU7+/B,GAA2B,IAAhB6+/B,EAAU5+/B,IAC/BoqB,GAAa,SAAJ7nB,OAAa,EAAIq8/B,EAAU7+/B,EAAC,MAAAwC,OAAK,EAAIq8/B,EAAU5+/B,EAAC,OAEzDmtgC,EAAiB,CACjB,MAAM,qBAAEtwB,EAAoB,OAAEx+6B,EAAM,QAAEi9C,EAAO,QAAEC,EAAO,MAAE07T,EAAK,MAAE0lkB,GAAUwwB,EACrEtwB,IACAzy9B,EAAY,eAAH7nB,OAAkBs6+B,EAAoB,QAAAt6+B,OAAO6nB,IACtDi0C,IACAj0C,GAAa,UAAJ7nB,OAAc87D,EAAM,UAC7Bi9C,IACAlxF,GAAa,WAAJ7nB,OAAe+4G,EAAO,UAC/BC,IACAnxF,GAAa,WAAJ7nB,OAAeg5G,EAAO,UAC/B07T,IACA7sZ,GAAa,SAAJ7nB,OAAa00a,EAAK,UAC3B0lkB,IACAvy9B,GAAa,SAAJ7nB,OAAao6+B,EAAK,SACnC,CAKA,MAAM2wB,EAAgBr04B,EAAMl5H,EAAEsH,MAAQu3/B,EAAU7+/B,EAC1CwtgC,EAAgBt04B,EAAMj5H,EAAEqH,MAAQu3/B,EAAU5+/B,EAIhD,OAHsB,IAAlBstgC,GAAyC,IAAlBC,IACvBnj/B,GAAa,SAAJ7nB,OAAa+qgC,EAAa,MAAA/qgC,OAAKgrgC,EAAa,MAElDnj/B,GAAa,MACxB,CHutC+Boj/B,CAAyB71gC,KAAKuzgC,6BAA8BvzgC,KAAKingC,UAAWsO,GAC3F3P,IACA56/B,EAAOynB,UAAYmz+B,EAAkB2P,EAAgBvqgC,EAAOynB,YAEhE,MAAM,EAAErqB,EAAC,EAAEC,GAAMrI,KAAKkngC,gBACtBl8/B,EAAO8i9B,gBAAkB,GAAHlj9B,OAAiB,IAAXxC,EAAE05C,OAAY,MAAAl3C,OAAgB,IAAXvC,EAAEy5C,OAAY,OACzDqrqB,EAAK69S,gBAKLhggC,EAAOuE,QACH49sB,IAASnttB,KACiG,QAAnGmkG,EAAuC,QAAjCC,EAAKmx6B,EAAehmgC,eAA4B,IAAP60F,EAAgBA,EAAKpkG,KAAKs3/B,aAAa/n/B,eAA4B,IAAP40F,EAAgBA,EAAK,EACjInkG,KAAK8qgC,gBACD9qgC,KAAKs3/B,aAAa/n/B,QAClBgmgC,EAAenB,YAO7BppgC,EAAOuE,QACH49sB,IAASnttB,UACwBc,IAA3By0gC,EAAehmgC,QACXgmgC,EAAehmgC,QACf,QAC2BzO,IAA/By0gC,EAAenB,YACXmB,EAAenB,YACf,EAKlB,IAAK,MAAMlzgC,KAAOkmgC,GAAiB,CAC/B,QAA4BtmgC,IAAxBy0gC,EAAer0gC,GACf,SACJ,MAAM,QAAE6lgC,EAAO,QAAE0B,GAAYrB,GAAgBlmgC,GAOvC40gC,EAAiC,SAArB9qgC,EAAOynB,UACnB8i/B,EAAer0gC,GACf6lgC,EAAQwO,EAAer0gC,GAAMistB,GACnC,GAAIs7S,EAAS,CACT,MAAM53zB,EAAM43zB,EAAQpogC,OACpB,IAAK,IAAI4B,EAAI,EAAGA,EAAI4uM,EAAK5uM,IACrB+I,EAAOy9/B,EAAQxmgC,IAAM6zgC,CAE7B,MAEI9qgC,EAAO9J,GAAO40gC,CAEtB,CAYA,OANI91gC,KAAKF,QAAQ2jX,WACbz4W,EAAOs6M,cACH6ngB,IAASnttB,KACHyrgC,GAAiC,OAAd4J,QAAoC,IAAdA,OAAuB,EAASA,EAAU/vzB,gBAAkB,GACrG,QAEPt6M,CACX,CACA2lgC,aAAAA,GACI3wgC,KAAK6qgC,WAAa7qgC,KAAK+qgC,cAAWjqgC,CACtC,CAEAi1gC,SAAAA,GACI/1gC,KAAK4E,KAAKtD,MAAMC,SAASoD,IAAW,IAAIy/F,EAAI,OAAwC,QAAhCA,EAAKz/F,EAAKujgC,wBAAqC,IAAP9j6B,OAAgB,EAASA,EAAGrtD,MAAM,IAC9H/2C,KAAK4E,KAAKtD,MAAMC,QAAQgvgC,IACxBvwgC,KAAK4E,KAAK4pgC,YAAYhx+B,OAC1B,EAER,CACA,SAASy5xB,GAAatyzB,GAClBA,EAAKsyzB,cACT,CACA,SAASy5M,GAAmB/rgC,GACxB,IAAIy/F,EACJ,MAAM2m6B,GAAuC,QAA1B3m6B,EAAKz/F,EAAKkmgC,kBAA+B,IAAPzm6B,OAAgB,EAASA,EAAG2m6B,WAAapmgC,EAAKomgC,SACnG,GAAIpmgC,EAAKwjgC,UACLxjgC,EAAKulE,QACL6g8B,GACApmgC,EAAKgqgC,aAAa,aAAc,CAChC,MAAQzL,UAAWh57B,EAAQyn8B,YAAaqE,GAAmBrxgC,EAAKulE,QAC1D,cAAE4q8B,GAAkBnwgC,EAAK7E,QACzByygC,EAAWxH,EAASjt+B,SAAWn5B,EAAKulE,OAAOpsC,OAG3B,SAAlBg3+B,EACAjU,IAAUt/6B,IACN,MAAM007B,EAAe1D,EACfxH,EAAS4G,YAAYpw7B,GACrBwp7B,EAAS7H,UAAU3h7B,GACnBlhF,EAASu//B,GAAWqW,GAC1BA,EAAats/B,IAAMugD,EAAOqX,GAAM53D,IAChCss/B,EAAavs/B,IAAMus/B,EAAats/B,IAAMtpB,CAAM,IAG3Cw0gC,GAA0BC,EAAe/J,EAAS7H,UAAWh57B,IAClE227B,IAAUt/6B,IACN,MAAM007B,EAAe1D,EACfxH,EAAS4G,YAAYpw7B,GACrBwp7B,EAAS7H,UAAU3h7B,GACnBlhF,EAASu//B,GAAW117B,EAAOqX,IACjC007B,EAAavs/B,IAAMus/B,EAAats/B,IAAMtpB,EAIlCsE,EAAKwqgC,iBAAmBxqgC,EAAKujgC,mBAC7BvjgC,EAAKyogC,mBAAoB,EACzBzogC,EAAKwqgC,eAAe5t7B,GAAM73D,IACtB/kB,EAAKwqgC,eAAe5t7B,GAAM53D,IAAMtpB,EACxC,IAGR,MAAM61gC,E7B33CM,CAChB9tgC,EAPoB,CACpB2+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,GAIbz3/B,EARoB,CACpB0+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,I6B83CTC,GAAamW,EAAahs8B,EAAQ6g8B,EAAS7H,WAC3C,MAAMiT,E7B73CM,CAChB/tgC,EAPoB,CACpB2+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,GAIbz3/B,EARoB,CACpB0+C,UAAW,EACXr3C,MAAO,EACPoyC,OAAQ,EACRg+8B,YAAa,I6Bg4CLyS,EACAxS,GAAaoW,EAAaxxgC,EAAKsoT,eAAe+otB,GAAgB,GAAOjL,EAAS4G,aAG9E5R,GAAaoW,EAAajs8B,EAAQ6g8B,EAAS7H,WAE/C,MAAMmD,GAAoB8D,GAAY+L,GACtC,IAAIjH,GAA2B,EAC/B,IAAKtqgC,EAAKkmgC,WAAY,CAClB,MAAMuH,EAAiBztgC,EAAK8tgC,6BAK5B,GAAIL,IAAmBA,EAAevH,WAAY,CAC9C,MAAQE,SAAUqL,EAAgBls8B,OAAQms8B,GAAiBjE,EAC3D,GAAIgE,GAAkBC,EAAc,CAChC,MAAMC,E7B14CR,CACdlugC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6B44CrBw2+B,GAAqBoW,EAAkBvL,EAAS7H,UAAWkT,EAAelT,WAC1E,MAAMwQ,E7B54CR,CACdtrgC,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,I6B84CrBw2+B,GAAqBwT,EAAgBxp8B,EAAQms8B,EAAanT,WACrDoH,GAAiBgM,EAAkB5C,KACpCzE,GAA2B,GAE3BmD,EAAetygC,QAAQ6vgC,aACvBhrgC,EAAKwqgC,eAAiBuE,EACtB/ugC,EAAK+tgC,qBAAuB4D,EAC5B3xgC,EAAKytgC,eAAiBA,EAE9B,CACJ,CACJ,CACAztgC,EAAK8pgC,gBAAgB,YAAa,CAC9Bvk8B,SACA6g8B,WACAzp4B,MAAO604B,EACPD,cACA7P,mBACA4I,4BAER,MACK,GAAItqgC,EAAKwjgC,SAAU,CACpB,MAAM,eAAE3M,GAAmB72/B,EAAK7E,QAChC07/B,GAAkBA,GACtB,CAMA72/B,EAAK7E,QAAQqX,gBAAarW,CAC9B,CACA,SAASmtgC,GAAoBtpgC,GAIrBqngC,IACAx1X,GAAQq1X,aAEPlngC,EAAKE,SAQLF,EAAKiugC,iBACNjugC,EAAKyogC,kBAAoBzogC,EAAKE,OAAOuogC,mBAOzCzogC,EAAK0ogC,0BAA4B1ogC,EAAK0ogC,wBAA0Bl23B,QAAQxyI,EAAKyogC,mBACzEzogC,EAAKE,OAAOuogC,mBACZzogC,EAAKE,OAAOwogC,0BAChB1ogC,EAAK2ogC,mBAAqB3ogC,EAAK2ogC,iBAAmB3ogC,EAAKE,OAAOyogC,kBAClE,CACA,SAASc,GAAgBzpgC,GACrBA,EAAKyogC,kBACDzogC,EAAK0ogC,wBACD1ogC,EAAK2ogC,kBACD,CAChB,CACA,SAASqD,GAAchsgC,GACnBA,EAAKgsgC,eACT,CACA,SAASJ,GAAkB5rgC,GACvBA,EAAK4rgC,mBACT,CACA,SAASC,GAAmB7rgC,GACxBA,EAAKumgC,eAAgB,CACzB,CACA,SAASuF,GAAoB9rgC,GACzB,MAAM,cAAE02+B,GAAkB12+B,EAAK7E,QAC3Bu7+B,GAAiBA,EAAcG,WAAW+6B,uBAC1Cl7B,EAAcrr8B,OAAO,uBAEzBrrC,EAAKsogC,gBACT,CACA,SAAS8B,GAAgBpqgC,GACrBA,EAAKoqgC,kBACLpqgC,EAAKutgC,YAAcvtgC,EAAKwqgC,eAAiBxqgC,EAAKuhB,YAASplB,EACvD6D,EAAKyogC,mBAAoB,CAC7B,CACA,SAASc,GAAmBvpgC,GACxBA,EAAKupgC,oBACT,CACA,SAASC,GAAexpgC,GACpBA,EAAKwpgC,gBACT,CACA,SAAS+B,GAAqBvrgC,GAC1BA,EAAKurgC,sBACT,CACA,SAASU,GAAoBjj8B,GACzBA,EAAM097B,oBACV,CACA,SAAS4I,GAAavtgC,EAAQ46H,EAAOvuG,GACjCrsB,EAAOqgD,UAAY2l8B,GAAUpr3B,EAAMv6E,UAAW,EAAGh0B,GACjDrsB,EAAOgJ,MAAQg9+B,GAAUpr3B,EAAM5xH,MAAO,EAAGqjB,GACzCrsB,EAAOo7C,OAASw/E,EAAMx/E,OACtBp7C,EAAOo5/B,YAAcx+3B,EAAMw+3B,WAC/B,CACA,SAASoU,GAAQxtgC,EAAQ5D,EAAM2rC,EAAI1b,GAC/BrsB,EAAOijB,IAAM+i+B,GAAU5p/B,EAAK6mB,IAAK8kB,EAAG9kB,IAAKoJ,GACzCrsB,EAAOgjB,IAAMgj+B,GAAU5p/B,EAAK4mB,IAAK+kB,EAAG/kB,IAAKqJ,EAC7C,CAKA,SAAS+g/B,GAAoBnvgC,GACzB,OAAQA,EAAKqmgC,sBAAwDlqgC,IAArC6D,EAAKqmgC,gBAAgBoJ,WACzD,CACA,MAAM/E,GAA0B,CAC5Bh4/B,SAAU,IACVuvD,KAAM,CAAC,GAAK,EAAG,GAAK,IAElB4v8B,GAAqB3kgC,GAAgC,qBAAdwuC,WACzCA,UAAUC,WACVD,UAAUC,UAAUvvC,cAAc8qX,SAAShqX,GAMzC4kgC,GAAaD,GAAkB,kBAAoBA,GAAkB,WACrE3zgC,KAAK+b,MACL8vG,GACN,SAASgj5B,GAAUnw7B,GAEfA,EAAK53D,IAAM8s/B,GAAWl17B,EAAK53D,KAC3B43D,EAAK73D,IAAM+s/B,GAAWl17B,EAAK73D,IAC/B,CAKA,SAASmr/B,GAA0BC,EAAe/J,EAAU7g8B,GACxD,MAA0B,aAAlB4q8B,GACe,oBAAlBA,I/B3hDO1xgC,E+B4hDIsK,GAAYq9/B,G/B5hDT7k/B,E+B4hDoBxY,GAAYw8D,G/B5hDxB4hR,E+B4hDiC,K/B3hDrDjpV,KAAKD,IAAIQ,EAAQ8iB,IAAW4lU,IADvC,IAAgB1oV,EAAO8iB,EAAQ4lU,C+B6hD/B,CACA,SAAS8lrB,GAAuBjtgC,GAC5B,IAAIy/F,EACJ,OAAOz/F,IAASA,EAAKC,OAAgC,QAAtBw/F,EAAKz/F,EAAKgggC,cAA2B,IAAPvg6B,OAAgB,EAASA,EAAG8s6B,QAC7F,CIziDA,MAAMwF,GAAyB9J,GAAqB,CAChDC,qBAAsBA,CAAC7ggC,EAAKgkC,IAAW8t9B,GAAY9x/B,EAAK,SAAUgkC,GAClE+89B,cAAeA,KAAA,CACX3kgC,EAAG1G,SAAS4wC,gBAAgB80wB,YAAc1lzB,SAASgkF,KAAK0huB,WACxD/+yB,EAAG3G,SAAS4wC,gBAAgB60wB,WAAazlzB,SAASgkF,KAAKyhuB,YAE3D6lN,kBAAmBA,KAAM,ICNvBvI,GAAqB,CACvB/3/B,aAAS5L,GAEP61gC,GAAqB/J,GAAqB,CAC5CG,cAAgBns+B,IAAQ,CACpBx4B,EAAGw4B,EAASwmxB,WACZ/+yB,EAAGu4B,EAASumxB,YAEhB2lN,cAAeA,KACX,IAAKrI,GAAmB/3/B,QAAS,CAC7B,MAAMkqgC,EAAe,IAAIF,GAAuB,CAAC,GACjDE,EAAargC,MAAM328B,QACnBg3+B,EAAazqW,WAAW,CAAE8kW,cAAc,IACxCxM,GAAmB/3/B,QAAUkqgC,CACjC,CACA,OAAOnS,GAAmB/3/B,OAAO,EAErCuggC,eAAgBA,CAACrs+B,EAAUx9B,KACvBw9B,EAAStU,MAAMmG,eAAsB3xB,IAAVsC,EAAsBA,EAAQ,MAAM,EAEnE4pgC,kBAAoBps+B,GAAau2G,QAAuD,UAA/Cv3G,OAAO2d,iBAAiB3c,GAAUp8B,YClBzEq9C,GAAO,CACTwtL,IAAK,CACDm4U,Q1BKR,cAAyBA,GACrBj7iB,WAAAA,GACIy0X,SAASh0X,WACThN,KAAK62gC,0BAA4Bno5B,EACrC,CACAoo5B,aAAAA,CAAcC,GACV/2gC,KAAKg3gC,QAAU,IAAI/Y,GAAW8Y,EAAkB/2gC,KAAKi3gC,oBAAqB,CACtE/Y,mBAAoBl+/B,KAAK2E,KAAK++/B,wBAC9BvF,cAAe8D,GAAiBjigC,KAAK2E,OAE7C,CACAsygC,iBAAAA,GACI,MAAM,kBAAEC,EAAiB,WAAEC,EAAU,MAAEC,EAAK,SAAEC,GAAar3gC,KAAK2E,KAAK62+B,WACrE,MAAO,CACH4jB,eAAgBkH,GAAa4Q,GAC7B1xzB,QAAS8gzB,GAAa6Q,GACtBnxzB,OAAQoxzB,EACRrY,MAAOA,CAACr5+B,EAAOnJ,YACJvc,KAAKg3gC,QACRK,GACAlv5B,GAAM213B,YAAW,IAAMu5B,EAAS3x/B,EAAOnJ,IAC3C,EAGZ,CACAg69B,KAAAA,GACIv2+B,KAAK62gC,0BAA4B9Y,GAAgB/9/B,KAAK2E,KAAK+H,QAAS,eAAgBgZ,GAAU1lB,KAAK82gC,cAAcpx/B,IACrH,CACA64B,MAAAA,GACIv+C,KAAKg3gC,SAAWh3gC,KAAKg3gC,QAAQ1X,eAAet//B,KAAKi3gC,oBACrD,CACA5hG,OAAAA,GACIr16B,KAAK62gC,4BACL72gC,KAAKg3gC,SAAWh3gC,KAAKg3gC,QAAQhzgC,KACjC,I0BrCA69C,KAAM,CACF2lgB,QCNR,cAA0BA,GACtBj7iB,WAAAA,CAAY5H,GACRq8X,MAAMr8X,GACN3E,KAAKs3gC,oBAAsB5o5B,GAC3B1uH,KAAKq//B,gBAAkB3w4B,GACvB1uH,KAAK8z/B,SAAW,IAAIqO,GAA0Bx9/B,EAClD,CACA4x+B,KAAAA,GAGI,MAAM,aAAEghC,GAAiBv3gC,KAAK2E,KAAK62+B,WAC/B+7B,IACAv3gC,KAAKs3gC,oBAAsBC,EAAax2C,UAAU/g+B,KAAK8z/B,WAE3D9z/B,KAAKq//B,gBAAkBr//B,KAAK8z/B,SAASgS,gBAAkBp34B,EAC3D,CACA2mzB,OAAAA,GACIr16B,KAAKs3gC,sBACLt3gC,KAAKq//B,iBACT,GDZImY,eAAgBb,GAChBpO,cAAaA,KEPrB,SAASkP,GAAiB9ygC,EAAM+gB,EAAOgy/B,GACnC,MAAM,MAAE3ygC,GAAUJ,EACdA,EAAK0y/B,gBAAkBty/B,EAAMi2/B,YAC7Br2/B,EAAK0y/B,eAAel6rB,UAAU,aAA4B,UAAdu6sB,GAEhD,MACMjxgC,EAAW1B,EADE,UAAY2ygC,GAE3BjxgC,GACA0hH,GAAM213B,YAAW,IAAMr3+B,EAASif,EAAOm4+B,GAAiBn4+B,KAEhE,CCVA,SAASiy/B,GAAiBhzgC,EAAM+gB,EAAOgy/B,GACnC,MAAM,MAAE3ygC,GAAUJ,EACdA,EAAK0y/B,gBAAkBty/B,EAAMk2/B,UAC7Bt2/B,EAAK0y/B,eAAel6rB,UAAU,WAA0B,UAAdu6sB,GAE9C,MACMjxgC,EAAW1B,EADE,SAAyB,QAAd2ygC,EAAsB,GAAKA,IAErDjxgC,GACA0hH,GAAM213B,YAAW,IAAMr3+B,EAASif,EAAOm4+B,GAAiBn4+B,KAEhE,mBCVMky/B,GAAoB,IAAIhvgC,QAMxBivgC,GAAY,IAAIjvgC,QAChBkvgC,GAAwB3joB,IAC1B,MAAM1tY,EAAWmxgC,GAAkB7ugC,IAAIorY,EAAMjuX,QAC7Czf,GAAYA,EAAS0tY,EAAM,EAEzB4joB,GAA4Blq/B,IAC9BA,EAAQtsB,QAAQu2gC,GAAqB,EAqBzC,SAASE,GAAoBpxgC,EAAS9G,EAAS2G,GAC3C,MAAMwxgC,EApBV,SAAiCligC,GAAuB,IAAtB,KAAEnR,GAAkBmR,EAATjW,EAAOsn/B,GAAArx+B,EAAAR,IAChD,MAAM2igC,EAAatzgC,GAAQlD,SAItBm2gC,GAAUpp/B,IAAIyp/B,IACfL,GAAU7ugC,IAAIkvgC,EAAY,CAAC,GAE/B,MAAMC,EAAgBN,GAAU9ugC,IAAImvgC,GAC9Bh3gC,EAAMqc,KAAK5W,UAAU7G,GAQ3B,OAHKq4gC,EAAcj3gC,KACfi3gC,EAAcj3gC,GAAO,IAAIk3gC,qBAAqBL,GAAwBxjoB,GAAA,CAAI3vY,QAAS9E,KAEhFq4gC,EAAcj3gC,EACzB,CAEsCm3gC,CAAyBv4gC,GAG3D,OAFA83gC,GAAkB5ugC,IAAIpC,EAASH,GAC/BwxgC,EAA0Br5Z,QAAQh4mB,GAC3B,KACHgxgC,GAAkB/knB,OAAOjsZ,GACzBqxgC,EAA0BK,UAAU1xgC,EAAQ,CAEpD,CC3CA,MAAM2xgC,GAAiB,CACnBntuB,KAAM,EACN98P,IAAK,GCAT,MAAMkq+B,GAAoB,CACtBC,OAAQ,CACJjxd,QDAR,cAA4BA,GACxBj7iB,WAAAA,GACIy0X,SAASh0X,WACThN,KAAK04gC,gBAAiB,EACtB14gC,KAAK24gC,UAAW,CACpB,CACAC,aAAAA,GACI54gC,KAAKq16B,UACL,MAAM,SAAEz8c,EAAW,CAAC,GAAM54d,KAAK2E,KAAK62+B,YAC9B,KAAE52+B,EAAM8vB,OAAQmk/B,EAAU,OAAE1z6B,EAAS,OAAM,KAAE8qC,GAAS2oV,EACtD94d,EAAU,CACZ8E,KAAMA,EAAOA,EAAK8H,aAAU5L,EAC5B+3gC,aACAv/7B,UAA6B,kBAAX6rB,EAAsBA,EAASoz6B,GAAepz6B,IA+BpE,OAAO6y6B,GAAoBh4gC,KAAK2E,KAAK+H,QAAS5M,GA7BhBq0Y,IAC1B,MAAM,eAAE2koB,GAAmB3koB,EAI3B,GAAIn0Y,KAAK24gC,WAAaG,EAClB,OAMJ,GALA94gC,KAAK24gC,SAAWG,EAKZ7o4B,IAAS6o4B,GAAkB94gC,KAAK04gC,eAChC,OAEKI,IACL94gC,KAAK04gC,gBAAiB,GAEtB14gC,KAAK2E,KAAK0y/B,gBACVr3/B,KAAK2E,KAAK0y/B,eAAel6rB,UAAU,cAAe27sB,GAMtD,MAAM,gBAAEC,EAAe,gBAAEC,GAAoBh5gC,KAAK2E,KAAK62+B,WACjD/0+B,EAAWqygC,EAAiBC,EAAkBC,EACpDvygC,GAAYA,EAAS0tY,EAAM,GAGnC,CACAoimB,KAAAA,GACIv2+B,KAAK44gC,eACT,CACAr69B,MAAAA,GACI,GAAoC,qBAAzB659B,qBACP,OACJ,MAAM,MAAErzgC,EAAK,UAAE8z6B,GAAc746B,KAAK2E,KAC5Bs0gC,EAAoB,CAAC,SAAU,SAAU,QAAQ7tuB,KAO/D,SAAiCr1R,GAA0D,IAAzD,SAAE6id,EAAW,CAAC,GAAG7id,GAAI6id,SAAUghK,EAAe,CAAC,GAAG5snB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACpF,OAAQ9B,GAAS0td,EAAS1td,KAAU0unB,EAAa1unB,EACrD,CAToEgugC,CAAyBn0gC,EAAO8z6B,IACxFogG,GACAj5gC,KAAK44gC,eAEb,CACAvjG,OAAAA,GAAY,ICxDZlnI,IAAK,CACD3mP,QHMR,cAA2BA,GACvB+ub,KAAAA,GACI,MAAM,QAAE7p+B,GAAY1M,KAAK2E,KACpB+H,IAEL1M,KAAKq16B,QAAUqnF,GAAMhw/B,GAAUqw/B,IAC3B4a,GAAiB33gC,KAAK2E,KAAMo4/B,EAAY,SACjC,CAACG,EAAQnn/B,KAAA,IAAE,QAAE2G,GAAS3G,EAAA,OAAK4hgC,GAAiB33gC,KAAK2E,KAAMu4/B,EAAUxg/B,EAAU,MAAQ,SAAS,IACpG,CAAE4g/B,gBAAiBt9/B,KAAK2E,KAAKI,MAAMo0gC,kBAC1C,CACA9jG,OAAAA,GAAY,IGdZv65B,MAAO,CACH0siB,QCTR,cAA2BA,GACvBj7iB,WAAAA,GACIy0X,SAASh0X,WACThN,KAAK2qP,UAAW,CACpB,CACA/jO,OAAAA,GACI,IAAIX,GAAiB,EAOrB,IACIA,EAAiBjmB,KAAK2E,KAAK+H,QAAQyZ,QAAQ,iBAC/C,CACA,MAAO5jB,IACH0jB,GAAiB,CACrB,CACKA,GAAmBjmB,KAAK2E,KAAK0y/B,iBAElCr3/B,KAAK2E,KAAK0y/B,eAAel6rB,UAAU,cAAc,GACjDn9T,KAAK2qP,UAAW,EACpB,CACA9jO,MAAAA,GACS7mB,KAAK2qP,UAAa3qP,KAAK2E,KAAK0y/B,iBAEjCr3/B,KAAK2E,KAAK0y/B,eAAel6rB,UAAU,cAAc,GACjDn9T,KAAK2qP,UAAW,EACpB,CACA4rvB,KAAAA,GACIv2+B,KAAKq16B,QAAU95hB,GAAKuinB,GAAY99/B,KAAK2E,KAAK+H,QAAS,SAAS,IAAM1M,KAAK4mB,YAAYk3+B,GAAY99/B,KAAK2E,KAAK+H,QAAS,QAAQ,IAAM1M,KAAK6mB,WACzI,CACAwu5B,OAAAA,GAAY,IDtBZ765B,MAAO,CACHgtiB,QJAR,cAA2BA,GACvB+ub,KAAAA,GACI,MAAM,QAAE7p+B,GAAY1M,KAAK2E,KACpB+H,IAEL1M,KAAKq16B,QpDAb,SAAe0mF,EAAmBqd,GAA4B,IAAdt5gC,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvD,MAAOg5c,EAAU42iB,EAAch86B,GAAUk76B,GAAaC,EAAmBj8/B,GACnEu5gC,EAAiBld,IAAcmd,IACjC,MAAM,OAAEpz/B,GAAWoz/B,EACbC,EAAaH,EAAaE,GAChC,IAAKC,IAAerz/B,EAChB,OACJ,MAAMsz/B,EAAiBrd,IAAcsd,IACjCF,EAAWE,GACXvz/B,EAAO+4B,oBAAoB,eAAgBu69B,EAAe,IAE9Dtz/B,EAAOQ,iBAAiB,eAAgB8y/B,EAAgB5c,EAAa,IAKzE,OAHA52iB,EAASzkd,SAASqF,IACdA,EAAQ8f,iBAAiB,eAAgB2y/B,EAAgBzc,EAAa,IAEnEh86B,CACX,CoDjBuBpmE,CAAM9N,GAAUqw/B,IAC3B0a,GAAiBz3gC,KAAK2E,KAAMo4/B,EAAY,SAChCG,GAAaua,GAAiBz3gC,KAAK2E,KAAMu4/B,EAAU,UAEnE,CACA7nF,OAAAA,GAAY,KMvBVnr2B,GAAS,CACXA,OAAQ,CACJst8B,eAAgBb,GAChBpO,cAAaA,KCAfmR,IAAsB36Z,EAAAA,EAAAA,eAAc,CACtCm/Y,mBAAqBnr+B,GAAMA,EAC3BoiR,UAAU,EACVwkuB,cAAe,UCNbC,IAAgB76Z,EAAAA,EAAAA,eAAc,CAAC,GCH/Bzve,GAA8B,qBAAX1vG,OCGnBmh6B,GAA4BzxzB,GAAYw8xB,EAAAA,gBAAkBF,EAAAA,UCA1DiuG,IAAc96Z,EAAAA,EAAAA,eAAc,CAAEjzgB,QAAQ,ICQ5C,SAASgu6B,GAAiBp2/B,EAAWq2/B,EAAah1gC,EAAOi1gC,EAAqBC,GAC1E,IAAI716B,EAAID,EACR,MAAQk34B,cAAex2+B,IAAWoH,EAAAA,EAAAA,YAAW2tgC,IACvCM,GAAcjugC,EAAAA,EAAAA,YAAW4tgC,IACzBjiB,GAAkB3r/B,EAAAA,EAAAA,YAAWs6/B,IAC7B4T,GAAsBlugC,EAAAA,EAAAA,YAAWytgC,IAAqBC,cACtDS,GAAmBnuG,EAAAA,EAAAA,QAAO,MAIhC+tG,EAAsBA,GAAuBE,EAAYr42B,UACpDu42B,EAAiB1tgC,SAAWstgC,IAC7BI,EAAiB1tgC,QAAUstgC,EAAoBt2/B,EAAW,CACtDq2/B,cACAl1gC,SACAE,QACA6y/B,kBACA2C,wBAAuB3C,IACW,IAA5BA,EAAgB9uqB,QAEtBqxrB,yBAGR,MAAM9+B,EAAgB++B,EAAiB1tgC,QAKjC2tgC,GAA2BpugC,EAAAA,EAAAA,YAAWw6/B,KACxCprB,GACCA,EAAcn/5B,aACf+97B,GACwB,SAAvB5+B,EAAcv2+B,MAA0C,QAAvBu2+B,EAAcv2+B,MA2DxD,SAA8Bu2+B,EAAet2+B,EAAOk1gC,EAA2BlF,GAC3E,MAAM,SAAEtxpB,EAAQ,OAAEv5S,EAAM,KAAEroB,EAAI,gBAAEki9B,EAAe,aAAEkN,EAAY,WAAEtB,GAAgB5qgC,EAC/Es2+B,EAAcn/5B,WAAa,IAAI+97B,EAA0B5+B,EAAcic,aAAcvy/B,EAAM,8BACrFjE,EACAw5gC,GAAyBj/B,EAAcx2+B,SAC7Cw2+B,EAAcn/5B,WAAWiwlB,WAAW,CAChC1oT,WACAv5S,SACA4m8B,oBAAqB353B,QAAQt1F,IAAUki9B,GAAmBpE,GAAYoE,GACtE1oB,gBAQAy5B,cAAiC,kBAAX5q8B,EAAsBA,EAAS,OACrD6q8B,yBACA9D,eACAtB,cAER,CAhFQ/C,CAAqBwN,EAAiB1tgC,QAAS3H,EAAOk1gC,EAA2BI,GAErF,MAAM3tG,GAAYT,EAAAA,EAAAA,SAAO,IACzBh55B,EAAAA,EAAAA,qBAAmB,KAKXoo+B,GAAiB3uE,EAAUhg6B,SAC3B2u+B,EAAc987B,OAAOx5C,EAAO6y/B,EAChC,IAMJ,MAAM2iB,EAAoBx1gC,EAAMwx/B,IAC1BikB,GAAevuG,EAAAA,EAAAA,QAAO90xB,QAAQoj4B,MACY,QAAzCn26B,EAAKxkE,OAAO66+B,+BAA4C,IAAPr26B,OAAgB,EAASA,EAAGt6F,KAAK81B,OAAQ26+B,MAC9C,QAA7Cp26B,EAAKvkE,OAAO8s+B,mCAAgD,IAAPvo6B,OAAgB,EAASA,EAAGr6F,KAAK81B,OAAQ26+B,KAqCpG,OApCAx5E,IAA0B,KACjBs6C,IAEL3uE,EAAUhg6B,SAAU,EACpBkzB,OAAO86+B,iBAAkB,EACzBr/B,EAAcs/B,iBACdtT,GAAU7n+B,OAAO678B,EAAc778B,QAW3Bg7+B,EAAa9tgC,SAAW2u+B,EAAcgc,gBACtChc,EAAcgc,eAAe6B,iBACjC,KAEJttF,EAAAA,EAAAA,YAAU,KACDyvE,KAEAm/B,EAAa9tgC,SAAW2u+B,EAAcgc,gBACvChc,EAAcgc,eAAe6B,iBAE7BshB,EAAa9tgC,UAEb435B,gBAAe,KACX,IAAIlg0B,EAC0C,QAA7CA,EAAKxkE,OAAOg7+B,mCAAgD,IAAPx26B,GAAyBA,EAAGt6F,KAAK81B,OAAQ26+B,EAAkB,IAErHC,EAAa9tgC,SAAU,GAC3B,IAEG2u+B,CACX,CAwBA,SAASi/B,GAAyBj/B,GAC9B,GAAKA,EAEL,OAAiD,IAA1CA,EAAcv7+B,QAAQ+6gC,gBACvBx/B,EAAcn/5B,WACdo+7B,GAAyBj/B,EAAcx2+B,OACjD,CC5HA,SAASi2gC,GAAaf,EAAa1+B,EAAe0/B,GAC9C,OAAOpvG,EAAAA,EAAAA,cAAa/q4B,IAChBA,GAAYm5+B,EAAYxjC,OAASwjC,EAAYxjC,MAAM318B,GAC/Cy68B,IACIz68B,EACAy68B,EAAc9E,MAAM318B,GAGpBy68B,EAAchmE,WAGlB0lG,IAC2B,oBAAhBA,EACPA,EAAYn6+B,GAEP++9B,GAAYob,KACjBA,EAAYrugC,QAAUk0B,GAE9B,GAOJ,CAACy68B,GACL,CC7BA,SAASmd,GAAsBzz/B,GAC3B,OAAQg2+B,GAAoBh2+B,EAAMkqR,UAC9BystB,GAAatwsB,MAAMlgS,GAASiw+B,GAAep2+B,EAAMmG,KACzD,CACA,SAAS8vgC,GAAcj2gC,GACnB,OAAOoyI,QAAQqh3B,GAAsBzz/B,IAAUA,EAAMiQ,SACzD,CCNA,SAASimgC,GAAuBl2gC,GAC5B,MAAM,QAAE+jV,EAAO,QAAE75D,GCFrB,SAAgClqR,EAAOiqC,GACnC,GAAIwp9B,GAAsBzz/B,GAAQ,CAC9B,MAAM,QAAE+jV,EAAO,QAAE75D,GAAYlqR,EAC7B,MAAO,CACH+jV,SAAqB,IAAZA,GAAqBqypB,GAAerypB,GACvCA,OACAhoV,EACNmuR,QAASkstB,GAAelstB,GAAWA,OAAUnuR,EAErD,CACA,OAAyB,IAAlBiE,EAAMwS,QAAoBy3B,EAAU,CAAC,CAChD,CDTiCks+B,CAAuBn2gC,GAAOkH,EAAAA,EAAAA,YAAW2tgC,KACtE,OAAO7tG,EAAAA,EAAAA,UAAQ,KAAM,CAAGjjlB,UAAS75D,aAAY,CAACksvB,GAA0BryrB,GAAUqyrB,GAA0BlsvB,IAChH,CACA,SAASksvB,GAA0Bl4/B,GAC/B,OAAOpZ,MAAMiI,QAAQmR,GAAQA,EAAKpc,KAAK,KAAOoc,CAClD,CEVA,MAAMm4/B,GAAe,CACjB3j4B,UAAW,CACP,UACA,WACA,aACA,WACA,OACA,cACA,aACA,aAEJh5F,KAAM,CAAC,QACPoD,KAAM,CAAC,OAAQ,gBACf/mC,MAAO,CAAC,cACRN,MAAO,CAAC,aAAc,eAAgB,cACtC2zxB,IAAK,CAAC,WAAY,QAAS,aAAc,eACzC9+jB,IAAK,CAAC,QAAS,aAAc,oBAAqB,YAClDopyB,OAAQ,CAAC,cAAe,kBAAmB,mBAC3Cvu8B,OAAQ,CAAC,SAAU,aAEjBmx8B,GAAqB,CAAC,EAC5B,IAAK,MAAMn6gC,KAAOk6gC,GACdC,GAAmBn6gC,GAAO,CACtB4nyB,UAAY/jyB,GAAUq2gC,GAAal6gC,GAAKkqS,MAAMlgS,KAAWnG,EAAMmG,MCvBvE,MAAMowgC,GAAwB59+B,OAAOwN,IAAI,yBCyBzC,SAASqw+B,GAA6BxlgC,GAAoF,IAAnF,kBAAEylgC,EAAiB,oBAAExB,EAAmB,UAAEyB,EAAS,eAAEC,EAAc,UAAEh4/B,GAAY3N,EACpHylgC,GCxBJ,SAAsB7ye,GAClB,IAAK,MAAMzniB,KAAOyniB,EACd0ye,GAAmBn6gC,GAAIqzY,GAAAA,GAAA,GAChB8moB,GAAmBn6gC,IACnByniB,EAASzniB,GAGxB,CDiByBy6gC,CAAaH,GAiClC,MAAMI,GAA4B7vgC,EAAAA,EAAAA,aAhClC,SAAyBhH,EAAOg2gC,GAK5B,IAAIxS,EACJ,MAAMsT,EAActnoB,GAAAA,GAAAA,GAAA,IACbtoY,EAAAA,EAAAA,YAAWytgC,KACX30gC,GAAK,IACR0+W,SAAUq4pB,GAAY/2gC,MAEpB,SAAEowS,GAAa0muB,EACf7s+B,EAAUis+B,GAAuBl2gC,GACjCg1gC,EAAc2B,EAAe32gC,EAAOowS,GAC1C,IAAKA,GAAY7lK,GAAW,EA4BpC,YACqBrjI,EAAAA,EAAAA,YAAW4tgC,IAAa/t6B,OAKrClS,CAQR,CAzCYmi7B,GACA,MAAMC,EAyClB,SAAoCj3gC,GAChC,MAAM,KAAE88C,EAAI,OAAEqoB,GAAWmx8B,GACzB,IAAKx59B,IAASqoB,EACV,MAAO,CAAC,EACZ,MAAM26L,EAAQ0vI,GAAAA,GAAA,GAAQ1yV,GAASqoB,GAC/B,MAAO,CACHq+7B,eAAyB,OAAT1m9B,QAA0B,IAATA,OAAkB,EAASA,EAAKinvB,UAAU/jyB,MAAuB,OAAXmlE,QAA8B,IAAXA,OAAoB,EAASA,EAAO4+tB,UAAU/jyB,IAClJ8/P,EAAS0jwB,mBACTzngC,EACN02gC,eAAgB3ywB,EAAS2ywB,eAEjC,CApDqCyE,CAA2BJ,GACpDtT,EAAgByT,EAAiBzT,cAOjCv59B,EAAQqs8B,cAAgBy+B,GAAiBp2/B,EAAWq2/B,EAAa8B,EAAgB7B,EAAqBgC,EAAiBxE,eAC3H,CAKA,OAAQl9F,EAAAA,GAAAA,MAAKs/F,GAAchugC,SAAU,CAAExI,MAAO4rC,EAAShqC,SAAU,CAACujgC,GAAiBv59B,EAAQqs8B,eAAiBrn+B,EAAAA,GAAAA,KAAIu0/B,EAAah0nB,GAAA,CAAI8mmB,cAAers8B,EAAQqs8B,eAAkBwgC,IAAqB,KAAMJ,EAAU/3/B,EAAW3e,EAAO+1gC,GAAaf,EAAa/q+B,EAAQqs8B,cAAe0/B,GAAchB,EAAa5kuB,EAAUnmQ,EAAQqs8B,iBACnU,IAGA,OADAugC,EAA0BN,IAAyB53/B,EAC5Ck4/B,CACX,CACA,SAASE,GAAWtngC,GAAe,IAAd,SAAEivW,GAAUjvW,EAC7B,MAAM0ngC,GAAgBjwgC,EAAAA,EAAAA,YAAWu6/B,IAAoBpl+B,GACrD,OAAO86+B,QAA8Bp7gC,IAAb2iX,EAClBy4pB,EAAgB,IAAMz4pB,EACtBA,CACV,CEhEA,MAAM04pB,GAAuB,CACzB,UACA,SACA,OACA,OACA,UACA,IACA,QACA,OACA,SACA,SACA,OACA,WACA,OACA,UACA,UACA,WACA,OACA,OACA,SACA,SACA,MACA,OACA,QACA,MACA,QC3BJ,SAASC,GAAe14/B,GACpB,MAKqB,kBAAdA,IAIHA,EAAUm4W,SAAS,SAOvBsgpB,GAAqBz4gC,QAAQggB,IAAc,GAIvC,QAAS2D,KAAK3D,GAItB,CC3BA,SAAS24/B,GAAWz1gC,EAAOmP,EAAmBs//B,EAAWn57B,GAAY,IAAxC,MAAE5vD,EAAK,KAAEzU,GAAM9B,EACxC7S,OAAOD,OAAO2D,EAAQ0lB,MAAOA,EAAO4vD,GAAcA,EAAWk57B,oBAAoBC,IAEjF,IAAK,MAAMn0gC,KAAO2W,EACdjR,EAAQ0lB,MAAMqmB,YAAYzxC,EAAK2W,EAAK3W,GAE5C,CCHA,MAAMo7gC,GAAsB,IAAItg/B,IAAI,CAChC,gBACA,kBACA,eACA,mBACA,aACA,WACA,oBACA,eACA,cACA,aACA,UACA,UACA,eACA,mBACA,mBACA,eACA,cACA,UACA,oBACA,aACA,cACA,aACA,iBCtBJ,SAASug/B,GAAU31gC,EAASmlpB,EAAaywX,EAAYtg8B,GACjDmg8B,GAAWz1gC,EAASmlpB,OAAajrpB,EAAWo7E,GAC5C,IAAK,MAAMh7E,KAAO6qpB,EAAYpgjB,MAC1B/kG,EAAQhF,aAAc06gC,GAAoB7t/B,IAAIvtB,GAA0BA,EAAnBo1/B,GAAYp1/B,GAAY6qpB,EAAYpgjB,MAAMzqG,GAEvG,CCNA,SAASu7gC,GAAoBv7gC,EAAG6U,GAAwB,IAAtB,OAAEm0D,EAAM,SAAEu5S,GAAU1tW,EAClD,OAAQ6l+B,GAAent9B,IAAIvtB,IACvBA,EAAIi1R,WAAW,YACbjsN,QAAuBppE,IAAb2iX,OACL2jpB,GAAgBlmgC,IAAgB,YAARA,EACvC,CCLA,SAASw7gC,GAA4B33gC,EAAO8z6B,EAAWwiE,GACnD,IAAIj34B,EACJ,MAAM,MAAE93E,GAAUvnB,EACZ43gC,EAAY,CAAC,EACnB,IAAK,MAAMz7gC,KAAOorB,GACVmq+B,GAAcnq+B,EAAMprB,KACnB236B,EAAUvs5B,OACPmq+B,GAAc59E,EAAUvs5B,MAAMprB,KAClCu7gC,GAAoBv7gC,EAAK6D,SACgIjE,KAAnD,QAApGsjG,EAAuB,OAAlBi34B,QAA4C,IAAlBA,OAA2B,EAASA,EAAcnn9B,SAAShzB,UAAyB,IAAPkjG,OAAgB,EAASA,EAAGi25B,cAC1IsiB,EAAUz7gC,GAAOorB,EAAMprB,IAG/B,OAAOy7gC,CACX,CCbA,SAASD,GAA4B33gC,EAAO8z6B,EAAWwiE,GACnD,MAAMshC,EAAYC,GAA8B73gC,EAAO8z6B,EAAWwiE,GAClE,IAAK,MAAMn6+B,KAAO6D,EACd,GAAI0x/B,GAAc1x/B,EAAM7D,KACpBu1/B,GAAc59E,EAAU336B,IAAO,CAI/By7gC,GAHuD,IAArChhC,GAAmBj4+B,QAAQxC,GACvC,OAASA,EAAIopB,OAAO,GAAGkS,cAAgBt7B,EAAIspB,UAAU,GACrDtpB,GACiB6D,EAAM7D,EACjC,CAEJ,OAAOy7gC,CACX,CCPA,SAASE,GAAYl7+B,GACjB,MAAM31B,GAAMig6B,EAAAA,EAAAA,QAAO,MAInB,OAHoB,OAAhBjg6B,EAAIU,UACJV,EAAIU,QAAUi1B,KAEX31B,EAAIU,OACf,yCCIA,MAAMowgC,GAAsBlogC,GAAW,CAAC7P,EAAOowS,KAC3C,MAAMnmQ,GAAU/iC,EAAAA,EAAAA,YAAW2tgC,IACrBhiB,GAAkB3r/B,EAAAA,EAAAA,YAAWs6/B,IAC7BwW,EAAOA,IAbjB,SAAkBhngC,EAA+DhR,EAAOiqC,EAAS4o9B,GAAiB,IAA/F,4BAAE8kB,EAA2B,kBAAEM,EAAiB,QAAEC,GAAUlngC,EAC3E,MAAMqqB,EAAQ,CACVk39B,aAAc4lB,GAAiBn4gC,EAAOiqC,EAAS4o9B,EAAiB8kB,GAChE3wX,YAAaixX,KAKjB,OAHIC,IACA78+B,EAAMm28B,MAAS318B,GAAaq8+B,EAAQl4gC,EAAO67B,EAAUR,IAElDA,CACX,CAIuB+8+B,CAAUvogC,EAAQ7P,EAAOiqC,EAAS4o9B,GACrD,OAAOzitB,EAAW4nuB,IAASF,GAAYE,EAAK,EAEhD,SAASG,GAAiBn4gC,EAAOiqC,EAAS4o9B,EAAiBwlB,GACvD,MAAM1y/B,EAAS,CAAC,EACV2y/B,EAAeD,EAAmBr4gC,EAAO,CAAC,GAChD,IAAK,MAAM7D,KAAOm8gC,EACd3y/B,EAAOxpB,GAAOuqgC,GAAmB4R,EAAan8gC,IAElD,IAAI,QAAE4nV,EAAO,QAAE75D,GAAYlqR,EAC3B,MAAMu4gC,EAA0B9kB,GAAsBzz/B,GAChDw4gC,EAAkBvC,GAAcj2gC,GAClCiqC,GACAuu+B,IACCD,IACiB,IAAlBv4gC,EAAMwS,eACUzW,IAAZgoV,IACAA,EAAU95S,EAAQ85S,cACNhoV,IAAZmuR,IACAA,EAAUjgP,EAAQigP,UAE1B,IAAIuuvB,IAA4B5lB,IACE,IAA5BA,EAAgB9uqB,QAEtB00rB,EAA4BA,IAAyC,IAAZ10rB,EACzD,MAAM20rB,EAAeD,EAA4BvuvB,EAAU65D,EAC3D,GAAI20rB,GACwB,mBAAjBA,IACN1iC,GAAoB0iC,GAAe,CACpC,MAAMtr+B,EAAOtoC,MAAMiI,QAAQ2rgC,GAAgBA,EAAe,CAACA,GAC3D,IAAK,IAAIx7gC,EAAI,EAAGA,EAAIkwC,EAAK9xC,OAAQ4B,IAAK,CAClC,MAAM89+B,EAAWzE,GAAwBv2+B,EAAOotC,EAAKlwC,IACrD,GAAI89+B,EAAU,CACV,MAAM,cAAEoX,EAAa,WAAEhg/B,GAA0B4o+B,EAAX759B,EAAMkh+B,GAAKrH,EAAQxq+B,IACzD,IAAK,MAAMrU,KAAOglB,EAAQ,CACtB,IAAI+vZ,EAAc/vZ,EAAOhlB,GACzB,GAAI2I,MAAMiI,QAAQmka,GAAc,CAQ5BA,EAAcA,EAHAunmB,EACRvnmB,EAAY51a,OAAS,EACrB,EAEV,CACoB,OAAhB41a,IACAvrZ,EAAOxpB,GAAO+0a,EAEtB,CACA,IAAK,MAAM/0a,KAAOi2/B,EACdzs+B,EAAOxpB,GAAOi2/B,EAAcj2/B,EAEpC,CACJ,CACJ,CACA,OAAOwpB,CACX,CC/EA,MAAMgz/B,GAAwBA,KAAA,CAC1Bpx/B,MAAO,CAAC,EACRmG,UAAW,CAAC,EACZq77B,gBAAiB,CAAC,EAClBj28B,KAAM,CAAC,ICFL8lgC,GAAuBA,IAAAppoB,GAAAA,GAAC,CAAD,EDFC,CAC1BjoX,MAAO,CAAC,EACRmG,UAAW,CAAC,EACZq77B,gBAAiB,CAAC,EAClBj28B,KAAM,CAAC,ICDmB,IAC1B8zF,MAAO,CAAC,ICDNiy6B,GAAiBA,CAACx6gC,EAAO0B,IACpBA,GAAyB,kBAAV1B,EAChB0B,EAAK2tB,UAAUrvB,GACfA,ECFJy6gC,GAAiB,CACnBz1gC,EAAG,aACHC,EAAG,aACHC,EAAG,aACH48+B,qBAAsB,eAEpB44B,GAAgBniC,GAAmBt7+B,OCJzC,SAAS09gC,GAAgB39+B,EAAOk39B,EAAcsO,GAC1C,MAAM,MAAEt5+B,EAAK,KAAEzU,EAAI,gBAAEi28B,GAAoB1t7B,EAEzC,IAAIuwF,GAAe,EACfqt5B,GAAqB,EAOzB,IAAK,MAAM98gC,KAAOo2/B,EAAc,CAC5B,MAAMl0/B,EAAQk0/B,EAAap2/B,GAC3B,GAAI06+B,GAAent9B,IAAIvtB,GAEnByvH,GAAe,OAGd,GAAI2u3B,GAAkBp++B,GACvB2W,EAAK3W,GAAOkC,MAGX,CAED,MAAM66gC,EAAcL,GAAex6gC,EAAOmi/B,GAAiBrk/B,IACvDA,EAAIi1R,WAAW,WAEf6nvB,GAAqB,EACrBlwD,EAAgB5s9B,GACZ+8gC,GAGJ3x/B,EAAMprB,GAAO+8gC,CAErB,CACJ,CAiBA,GAhBK3mB,EAAa7k+B,YACVk+F,GAAgBi14B,EAChBt5+B,EAAMmG,UD3BlB,SAAwB6k+B,EAAc7k+B,EAAWmz+B,GAE7C,IAAIsY,EAAkB,GAClBC,GAAqB,EAKzB,IAAK,IAAIl8gC,EAAI,EAAGA,EAAI67gC,GAAe77gC,IAAK,CACpC,MAAMf,EAAMy6+B,GAAmB15+B,GACzBmB,EAAQk0/B,EAAap2/B,GAC3B,QAAcJ,IAAVsC,EACA,SACJ,IAAIg7gC,GAAiB,EAOrB,GALIA,EADiB,kBAAVh7gC,EACUA,KAAWlC,EAAIi1R,WAAW,SAAW,EAAI,GAGnB,IAAtBvrQ,WAAWxnB,IAE3Bg7gC,GAAkBxY,EAAmB,CACtC,MAAMqY,EAAcL,GAAex6gC,EAAOmi/B,GAAiBrk/B,IACtDk9gC,IACDD,GAAqB,EAErBD,GAAmB,GAAJtzgC,OADOizgC,GAAe38gC,IAAQA,EACV,KAAA0J,OAAIqzgC,EAAW,OAElDrY,IACAnz+B,EAAUvxB,GAAO+8gC,EAEzB,CACJ,CAUA,OATAC,EAAkBA,EAAgB/6gC,OAG9ByigC,EACAsY,EAAkBtY,EAAkBnz+B,EAAW0r/B,EAAqB,GAAKD,GAEpEC,IACLD,EAAkB,QAEfA,CACX,CCf8BG,CAAe/mB,EAAcl39B,EAAM3N,UAAWmz+B,GAE3Dt5+B,EAAMmG,YAKXnG,EAAMmG,UAAY,SAOtBur/B,EAAoB,CACpB,MAAM,QAAE74B,EAAU,MAAK,QAAEC,EAAU,MAAK,QAAEC,EAAU,GAAOv3B,EAC3Dxh8B,EAAMwh8B,gBAAkB,GAAHlj9B,OAAMu6+B,EAAO,KAAAv6+B,OAAIw6+B,EAAO,KAAAx6+B,OAAIy6+B,EACrD,CACJ,CC5DA,SAASsgB,GAAW7j9B,EAAQz6C,EAAQY,GAChC,MAAyB,kBAAX65C,EACRA,EACA1qB,GAAG3E,UAAUprB,EAASY,EAAO65C,EACvC,CCJA,MAAMw89B,GAAW,CACbj3gC,OAAQ,oBACRhD,MAAO,oBAELk6gC,GAAY,CACdl3gC,OAAQ,mBACRhD,MAAO,sHCDX,SAASm6gC,GAAcp++B,EAAKrqB,EAEf0ogC,EAAU7Y,GAAmB,IAFZ,MAAE8Y,EAAK,MAAEC,EAAK,UAAEC,EAAS,QAAEz5B,EAAO,QAAEC,EAAO,WAAE5m3B,EAAU,YAAEqg5B,EAAc,EAAC,WAAEC,EAAa,GAE1G/ogC,EAMP,GALAgogC,GAAgB39+B,EADXgn9B,GAAArx+B,EAAAR,IAC0Bqw/B,GAK3B6Y,EAIA,YAHIr++B,EAAM9T,MAAM7T,UACZ2nB,EAAMurE,MAAMlzF,QAAU2nB,EAAM9T,MAAM7T,UAI1C2nB,EAAMurE,MAAQvrE,EAAM9T,MACpB8T,EAAM9T,MAAQ,CAAC,EACf,MAAM,MAAEq/E,EAAK,MAAEr/E,EAAK,WAAEupF,GAAez1E,EAKjCurE,EAAMl5E,YACFojF,IACAvpF,EAAMmG,UAAYk5E,EAAMl5E,kBACrBk5E,EAAMl5E,WAGbojF,SACa/0G,IAAZqk/B,QAAqCrk/B,IAAZsk/B,GAAyB949B,EAAMmG,aACzDnG,EAAMwh8B,gBFzBd,SAAgCj42B,EAAYsv4B,EAASC,GACjD,MAAM25B,EAAYpZ,GAAWxgB,EAAStv4B,EAAWztG,EAAGytG,EAAW/+F,OACzDkogC,EAAYrZ,GAAWvgB,EAASvv4B,EAAWxtG,EAAGwtG,EAAW9+F,QAC/D,MAAO,GAAPnM,OAAUm0gC,EAAS,KAAAn0gC,OAAIo0gC,EAC3B,CEqBgCC,CAAuBpp6B,OAAwB/0G,IAAZqk/B,EAAwBA,EAAU,QAAiBrk/B,IAAZsk/B,EAAwBA,EAAU,UAG1Htk/B,IAAV49gC,IACA/y6B,EAAMvjG,EAAIs2gC,QACA59gC,IAAV69gC,IACAhz6B,EAAMtjG,EAAIs2gC,QACI79gC,IAAd89gC,IACAjz6B,EAAMj8F,MAAQkvgC,QAEC99gC,IAAf09H,GD7BR,SAAsB7yB,EAAOtrG,GAAqD,IAA7C+xB,EAAOplB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAG3F,EAAM2F,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAGkygC,IAAWlygC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GAErE2+F,EAAM6yB,WAAa,EAGnB,MAAMt3G,EAAOg4/B,EAAcZ,GAAWC,GAEtC5y6B,EAAMzkF,EAAK7f,QAAU+vB,GAAG3E,WAAWprB,GAEnC,MAAMm3H,EAAapnG,GAAG3E,UAAUpyB,GAC1Bw+gC,EAAczn/B,GAAG3E,UAAUL,GACjCu5E,EAAMzkF,EAAK7iB,OAAS,GAAHuG,OAAM4zH,EAAU,KAAA5zH,OAAIi0gC,EACzC,CCkBQM,CAAaxz6B,EAAO6yB,EAAYqg5B,EAAaC,GAAY,EAEjE,CCjDA,MAAML,GAAYv+gC,GAAuB,kBAARA,GAA0C,QAAtBA,EAAI6Q,cCQnDqugC,GAAkB,CACpB1D,eAAgBoB,GAAmB,CAC/BJ,4BAA6BA,GAC7BM,kBAAmBW,GACnBV,QAASA,CAACl4gC,EAAO67B,EAAQ7qB,KAAoC,IAAlC,YAAEg2oB,EAAW,aAAEurW,GAAcvh/B,EACpDoyG,GAAM8tQ,MAAK,KACP,IACI81R,EAAYl2iB,WAEJ,oBADGj1E,EAASwzJ,QAEVxzJ,EAASwzJ,UACTxzJ,EAAS2gB,uBACvB,CACA,MAAOh/C,IAEHwppB,EAAYl2iB,WAAa,CACrBztG,EAAG,EACHC,EAAG,EACHyO,MAAO,EACPC,OAAQ,EAEhB,KAEJoxG,GAAM3oF,QAAO,KACTg/+B,GAAczyX,EAAaurW,EAAcmnB,GAAS79+B,EAASxa,SAAUrhB,EAAM6ggC,mBAC3E2W,GAAU37+B,EAAUmrnB,EAAY,GAClC,KC9BRszX,GAAmB,CACrB3D,eAAgBoB,GAAmB,CAC/BJ,4BAA2B,GAC3BM,kBAAmBU,MCD3B,SAAS4B,GAAkBp5/B,EAAQ4X,EAAQ/4B,GACvC,IAAK,MAAM7D,KAAO48B,EACT249B,GAAc349B,EAAO58B,KAAUu7gC,GAAoBv7gC,EAAK6D,KACzDmhB,EAAOhlB,GAAO48B,EAAO58B,GAGjC,CAQA,SAASq+gC,GAASx6gC,EAAOg1gC,GACrB,MACMzt/B,EAAQ,CAAC,EAMf,OAFAgz/B,GAAkBhz/B,EALAvnB,EAAMunB,OAAS,CAAC,EAKEvnB,GACpC7B,OAAOD,OAAOqpB,EAdlB,SAA+BvW,EAAwBgkgC,GAAa,IAApC,kBAAEnU,GAAmB7v/B,EACjD,OAAOg25B,EAAAA,EAAAA,UAAQ,KACX,MAAM3r4B,EXfgB,CAC1B9T,MAAO,CAAC,EACRmG,UAAW,CAAC,EACZq77B,gBAAiB,CAAC,EAClBj28B,KAAM,CAAC,GWaH,OADAkmgC,GAAgB39+B,EAAO25+B,EAAanU,GAC7B1igC,OAAOD,OAAO,CAAC,EAAGm9B,EAAMvoB,KAAMuoB,EAAM9T,MAAM,GAClD,CAACyt/B,GACR,CAQyByF,CAAuBz6gC,EAAOg1gC,IAC5Czt/B,CACX,CACA,SAASmz/B,GAAa16gC,EAAOg1gC,GAEzB,MAAM2F,EAAY,CAAC,EACbpz/B,EAAQiz/B,GAASx6gC,EAAOg1gC,GAoB9B,OAnBIh1gC,EAAM88C,OAA+B,IAAvB98C,EAAMihgC,eAEpB0Z,EAAUp1N,WAAY,EAEtBh+xB,EAAMzV,WACFyV,EAAMqz/B,iBACFrz/B,EAAMsz/B,mBACF,OAEZtz/B,EAAMuz/B,aACa,IAAf96gC,EAAM88C,KACA,OAAM,OAAAj3C,OACgB,MAAf7F,EAAM88C,KAAe,IAAM,WAEzB/gD,IAAnBiE,EAAMui9B,WACLvi9B,EAAM+6gC,OAAS/6gC,EAAMg7gC,YAAch7gC,EAAMk2/B,YAC1CykB,EAAUp4D,SAAW,GAEzBo4D,EAAUpz/B,MAAQA,EACXoz/B,CACX,CChDA,MAAMM,GAAmB,IAAIhk/B,IAAI,CAC7B,UACA,OACA,WACA,UACA,QACA,SACA,WACA,aACA,oBACA,SACA,UACA,wBACA,mBACA,sBACA,WACA,cACA,SACA,YACA,2BACA,kBACA,sBACA,SACA,SACA,eACA,aACA,kBACA,kBACA,kBACA,eACA,aAUJ,SAASik/B,GAAkB/+gC,GACvB,OAAQA,EAAIi1R,WAAW,UAClBj1R,EAAIi1R,WAAW,SAAmB,cAARj1R,GAC3BA,EAAIi1R,WAAW,WACfj1R,EAAIi1R,WAAW,UACfj1R,EAAIi1R,WAAW,UACfj1R,EAAIi1R,WAAW,aACf6pvB,GAAiBvx/B,IAAIvtB,EAC7B,CCpDA,IAAIg/gC,GAAiBh/gC,IAAS++gC,GAAkB/+gC,GAoBhD,KAnBiCi/gC,GAyBLxsgC,QAAQ,0BAA0BI,WArB1DmsgC,GAAiBh/gC,GAAQA,EAAIi1R,WAAW,OAAS8pvB,GAAkB/+gC,GAAOi/gC,GAAYj/gC,GAsB1F,CACA,MAAOkjG,IACH,CA5BJ,IAAiC+76B,GCGjC,SAASC,GAAYr7gC,EAAOg1gC,EAAasG,EAAW38/B,GAChD,MAAM48/B,GAAcv0G,EAAAA,EAAAA,UAAQ,KACxB,MAAM3r4B,EAAQu9+B,KAEd,OADAa,GAAcp++B,EAAO25+B,EAAa0E,GAAS/6/B,GAAY3e,EAAM6ggC,mBAC7DrxnB,GAAAA,GAAA,GACOn0W,EAAMurE,OAAK,IACdr/E,MAAKioX,GAAA,GAAOn0W,EAAM9T,QAAO,GAE9B,CAACyt/B,IACJ,GAAIh1gC,EAAMunB,MAAO,CACb,MAAMi0/B,EAAY,CAAC,EACnBjB,GAAkBiB,EAAWx7gC,EAAMunB,MAAOvnB,GAC1Cu7gC,EAAYh0/B,MAAKioX,GAAAA,GAAA,GAAQgsoB,GAAcD,EAAYh0/B,MACvD,CACA,OAAOg0/B,CACX,CCdA,SAASE,KAA4C,IAA5BC,EAAkBzzgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAsBvC,MArBkByugC,CAAC/3/B,EAAW3e,EAAOiH,EAAG+J,EAAoBo/R,KAAa,IAA/B,aAAEmitB,GAAcvh/B,EACtD,MAGMuqgC,GAHiBlE,GAAe14/B,GAChC08/B,GACAX,IAC6B16gC,EAAOuy/B,EAAcnitB,EAAUzxR,GAC5Dg9/B,EFoBd,SAAqB37gC,EAAO47gC,EAAOF,GAC/B,MAAMC,EAAgB,CAAC,EACvB,IAAK,MAAMx/gC,KAAO6D,EAQF,WAAR7D,GAA4C,kBAAjB6D,EAAM2lB,SAEjCw1/B,GAAch/gC,KACU,IAAvBu/gC,GAA+BR,GAAkB/+gC,KAChDy/gC,IAAUV,GAAkB/+gC,IAE7B6D,EAAiB,WACd7D,EAAIi1R,WAAW,aACnBuqvB,EAAcx/gC,GACV6D,EAAM7D,IAGlB,OAAOw/gC,CACX,CE3C8B7r/B,CAAY9vB,EAA4B,kBAAd2e,EAAwB+8/B,GAClEG,EAAel9/B,IAAc+nB,EAAAA,SAAQ8oW,GAAAA,GAAAA,GAAA,GAChCmsoB,GAAkBJ,GAAW,IAAEt0gC,QACpC,CAAC,GAMD,SAAEhH,GAAaD,EACf87gC,GAAmB90G,EAAAA,EAAAA,UAAQ,IAAO0qF,GAAczx/B,GAAYA,EAAS+D,MAAQ/D,GAAW,CAACA,IAC/F,OAAOrD,EAAAA,EAAAA,eAAc+hB,EAAS6wX,GAAAA,GAAA,GACvBqsoB,GAAY,IACf57gC,SAAU67gC,IACZ,CAGV,CCxBA,SAASC,GAA6BtF,EAAmBxB,GACrD,OAAO,SAA+Bt2/B,GAAmE,IAAxD,mBAAE+8/B,GAAoBzzgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAEyzgC,oBAAoB,GAW5F,OAAOlF,GAPKhnoB,GAAAA,GAAA,GAHO6noB,GAAe14/B,GAC5B07/B,GACAC,IAEW,IACb7D,oBACAC,UAAW+E,GAAgBC,GAC3BzG,sBACAt2/B,cAGR,CACJ,CCnBA,MAAM6upB,GAAuB,CAAE7lqB,QAAS,MAClCq0gC,GAA2B,CAAEr0gC,SAAS,GCF5C,MAAMs0gC,GAAqB,IAAIp4gC,QCQzBq4gC,GAAa,IAAIngC,GAAqBlr+B,GAAOuM,sBCc7C++/B,GAAoB,CACtB,iBACA,oBACA,SACA,sBACA,gBACA,uBACA,2BAMJ,MAAMC,GAQFzE,2BAAAA,CAA4Bn3E,EAAQ67E,EAAYC,GAC5C,MAAO,CAAC,CACZ,CACA90gC,WAAAA,CAAWwJ,GAA6G,IAA5G,OAAElR,EAAM,MAAEE,EAAK,gBAAE6y/B,EAAe,oBAAEuiB,EAAmB,sBAAE5f,EAAqB,YAAEwf,GAAchkgC,EAAEjW,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAKjHhN,KAAK0M,QAAU,KAIf1M,KAAKgF,SAAW,IAAIg3B,IAIpBh8B,KAAKg7gC,eAAgB,EACrBh7gC,KAAKw4/B,uBAAwB,EAQ7Bx4/B,KAAKy3/B,mBAAqB,KAM1Bz3/B,KAAK0qB,OAAS,IAAIu7W,IAClBjmY,KAAK+h/B,iBAAmBA,GAIxB/h/B,KAAK2oiB,SAAW,CAAC,EAKjB3oiB,KAAKshhC,mBAAqB,IAAIr7oB,IAM9BjmY,KAAKuhhC,iBAAmB,CAAC,EAIzBvhhC,KAAK+wI,OAAS,CAAC,EAMf/wI,KAAKwhhC,uBAAyB,CAAC,EAC/BxhhC,KAAKyhhC,aAAe,IAAMzhhC,KAAKgwC,OAAO,SAAUhwC,KAAKs3/B,cACrDt3/B,KAAKw/B,OAAS,KACLx/B,KAAK0M,UAEV1M,KAAK0hhC,eACL1hhC,KAAK2hhC,eAAe3hhC,KAAK0M,QAAS1M,KAAK+rpB,YAAa/rpB,KAAK+E,MAAMunB,MAAOtsB,KAAKk8E,YAAW,EAE1Fl8E,KAAK4hhC,kBAAoB,EACzB5hhC,KAAKyqgC,eAAiB,KAClB,MAAM/39B,EAAMntB,GAAKmtB,MACb1yC,KAAK4hhC,kBAAoBlv+B,IACzB1yC,KAAK4hhC,kBAAoBlv+B,EACzBy1E,GAAM3oF,OAAOx/B,KAAKw/B,QAAQ,GAAO,GACrC,EAEJ,MAAM,aAAE839B,EAAY,YAAEvrW,GAAgBguX,EACtC/5gC,KAAKs3/B,aAAeA,EACpBt3/B,KAAK6hhC,WAAUttoB,GAAA,GAAQ+inB,GACvBt3/B,KAAK8hhC,cAAgB/8gC,EAAM+jV,QAAOyrD,GAAA,GAAQ+inB,GAAiB,CAAC,EAC5Dt3/B,KAAK+rpB,YAAcA,EACnB/rpB,KAAK6E,OAASA,EACd7E,KAAK+E,MAAQA,EACb/E,KAAK43/B,gBAAkBA,EACvB53/B,KAAK03C,MAAQ7yC,EAASA,EAAO6yC,MAAQ,EAAI,EACzC13C,KAAKm6gC,oBAAsBA,EAC3Bn6gC,KAAKF,QAAUA,EACfE,KAAKu6/B,sBAAwBpj3B,QAAQoj3B,GACrCv6/B,KAAKw4/B,sBAAwBA,GAAsBzz/B,GACnD/E,KAAKg7gC,cAAgBA,GAAcj2gC,GAC/B/E,KAAKg7gC,gBACLh7gC,KAAK+3/B,gBAAkB,IAAI/79B,KAE/Bh8B,KAAK25/B,uBAAyBxi3B,QAAQtyI,GAAUA,EAAO6H,SAWvD,MAAAq1gC,EAA+C/hhC,KAAK08gC,4BAA4B33gC,EAAO,CAAC,EAAG/E,OAArF,WAAE22/B,GAAoCorB,EAArBC,EAAmB56B,GAAA26B,EAAAxsgC,IAC1C,IAAK,MAAMrU,KAAO8ghC,EAAqB,CACnC,MAAM5+gC,EAAQ4+gC,EAAoB9ghC,QACRJ,IAAtBw2/B,EAAap2/B,IAAsBu1/B,GAAcrz/B,IACjDA,EAAM4F,IAAIsu/B,EAAap2/B,IAAM,EAErC,CACJ,CACAq1+B,KAAAA,CAAM318B,GACF5gC,KAAK0M,QAAUk0B,EACfog/B,GAAmBh4gC,IAAI43B,EAAU5gC,MAC7BA,KAAKk8E,aAAel8E,KAAKk8E,WAAWt7C,UACpC5gC,KAAKk8E,WAAWq65B,MAAM318B,GAEtB5gC,KAAK6E,QAAU7E,KAAKg7gC,gBAAkBh7gC,KAAKw4/B,wBAC3Cx4/B,KAAKiihC,sBAAwBjihC,KAAK6E,OAAOq9gC,gBAAgBlihC,OAE7DA,KAAK0qB,OAAOnpB,SAAQ,CAAC6B,EAAOlC,IAAQlB,KAAKmihC,kBAAkBjhhC,EAAKkC,KAC3D29gC,GAAyBr0gC,SC/JtC,WAEI,GADAq0gC,GAAyBr0gC,SAAU,EAC9B4iI,GAEL,GAAI1vG,OAAO2vG,WAAY,CACnB,MAAM6y4B,EAAmBxi/B,OAAO2vG,WAAW,4BACrC8y4B,EAA8BA,IAAO9vW,GAAqB7lqB,QAAU01gC,EAAiBj8/B,QAC3Fi8/B,EAAiB/v4B,YAAYgw4B,GAC7BA,GACJ,MAEI9vW,GAAqB7lqB,SAAU,CAEvC,CDmJY41gC,GAEJtihC,KAAKy3/B,mBAC4B,UAA7Bz3/B,KAAKm6gC,sBAE8B,WAA7Bn6gC,KAAKm6gC,qBAED5nW,GAAqB7lqB,SAI/B1M,KAAK6E,QACL7E,KAAK6E,OAAOG,SAAS09B,IAAI1iC,MAC7BA,KAAKu+C,OAAOv+C,KAAK+E,MAAO/E,KAAK43/B,gBACjC,CACAviF,OAAAA,GACI2rG,GAAmBnunB,OAAO7yZ,KAAK0M,SAC/B1M,KAAKk8E,YAAcl8E,KAAKk8E,WAAWm51B,UACnC4oE,GAAYj++B,KAAKyhhC,cACjBxjC,GAAYj++B,KAAKw/B,QACjBx/B,KAAKshhC,mBAAmB//gC,SAAS41C,GAAWA,MAC5Cn3C,KAAKshhC,mBAAmB9j/B,QACxBx9B,KAAKiihC,uBAAyBjihC,KAAKiihC,wBACnCjihC,KAAK6E,QAAU7E,KAAK6E,OAAOG,SAAS6tZ,OAAO7yZ,MAC3C,IAAK,MAAMkB,KAAOlB,KAAK+wI,OACnB/wI,KAAK+wI,OAAO7vI,GAAKs8B,QAErB,IAAK,MAAMt8B,KAAOlB,KAAK2oiB,SAAU,CAC7B,MAAMD,EAAU1oiB,KAAK2oiB,SAASzniB,GAC1BwniB,IACAA,EAAQ2sY,UACR3sY,EAAQgkY,WAAY,EAE5B,CACA1s6B,KAAK0M,QAAU,IACnB,CACAy1gC,iBAAAA,CAAkBjhhC,EAAKkC,GACfpD,KAAKshhC,mBAAmB7y/B,IAAIvtB,IAC5BlB,KAAKshhC,mBAAmBv4gC,IAAI7H,EAA5BlB,GAEJ,MAAMuihC,EAAmB3mC,GAAent9B,IAAIvtB,GACtCshhC,EAAiBp/gC,EAAMu1C,GAAG,UAAW8p+B,IACvCzihC,KAAKs3/B,aAAap2/B,GAAOuhhC,EACzBzihC,KAAK+E,MAAMq06B,UAAYjxzB,GAAM013B,UAAU79+B,KAAKyhhC,cACxCc,GAAoBvihC,KAAKk8E,aACzBl8E,KAAKk8E,WAAWox7B,kBAAmB,EACvC,IAEEoV,EAAwBt/gC,EAAMu1C,GAAG,gBAAiB34C,KAAKyqgC,gBAC7D,IAAIkY,EACA/i/B,OAAOgj/B,wBACPD,EAAkB/i/B,OAAOgj/B,sBAAsB5ihC,KAAMkB,EAAKkC,IAE9DpD,KAAKshhC,mBAAmBt4gC,IAAI9H,GAAK,KAC7BshhC,IACAE,IACIC,GACAA,IACAv/gC,EAAMm+yB,OACNn+yB,EAAM2zC,MAAM,GAExB,CACAsh9B,gBAAAA,CAAiB3/+B,GAIb,OAAK1Y,KAAK0M,SACL1M,KAAK6ihC,0BACN7ihC,KAAK8E,OAAS4T,EAAM5T,KAGjB9E,KAAK6ihC,yBAAyB7ihC,KAAK0M,QAASgM,EAAMhM,SAF9C,CAGf,CACAiugC,cAAAA,GACI,IAAIz5gC,EAAM,YACV,IAAKA,KAAOm6gC,GAAoB,CAC5B,MAAMyH,EAAoBzH,GAAmBn6gC,GAC7C,IAAK4hhC,EACD,SACJ,MAAM,UAAEh6O,EAAWthP,QAASu7d,GAAuBD,EAYnD,IARK9ihC,KAAK2oiB,SAASzniB,IACf6hhC,GACAj6O,EAAU9oyB,KAAK+E,SACf/E,KAAK2oiB,SAASzniB,GAAO,IAAI6hhC,EAAmB/ihC,OAK5CA,KAAK2oiB,SAASzniB,GAAM,CACpB,MAAMwniB,EAAU1oiB,KAAK2oiB,SAASzniB,GAC1BwniB,EAAQgkY,UACRhkY,EAAQnqf,UAGRmqf,EAAQ6tc,QACR7tc,EAAQgkY,WAAY,EAE5B,CACJ,CACJ,CACAg1G,YAAAA,GACI1hhC,KAAK229B,MAAM329B,KAAK+rpB,YAAa/rpB,KAAKs3/B,aAAct3/B,KAAK+E,MACzD,CAMA0h/B,kBAAAA,GACI,OAAOzm/B,KAAK0M,QACN1M,KAAKgjhC,2BAA2BhjhC,KAAK0M,QAAS1M,KAAK+E,OxFzQ/C,CACdqD,EAFe,CAASuhB,IAAK,EAAGD,IAAK,GAGrCrhB,EAHe,CAASshB,IAAK,EAAGD,IAAK,GwF4QrC,CACAu5/B,cAAAA,CAAe/hhC,GACX,OAAOlB,KAAKs3/B,aAAap2/B,EAC7B,CACAorgC,cAAAA,CAAeprgC,EAAKkC,GAChBpD,KAAKs3/B,aAAap2/B,GAAOkC,CAC7B,CAKAm7C,MAAAA,CAAOx5C,EAAO6y/B,IACN7y/B,EAAM6ggC,mBAAqB5lgC,KAAK+E,MAAM6ggC,oBACtC5lgC,KAAKyqgC,iBAETzqgC,KAAK646B,UAAY746B,KAAK+E,MACtB/E,KAAK+E,MAAQA,EACb/E,KAAK07/B,oBAAsB17/B,KAAK43/B,gBAChC53/B,KAAK43/B,gBAAkBA,EAIvB,IAAK,IAAI31/B,EAAI,EAAGA,EAAIi/gC,GAAkB7ghC,OAAQ4B,IAAK,CAC/C,MAAMf,EAAMgghC,GAAkBj/gC,GAC1BjC,KAAKwhhC,uBAAuBtghC,KAC5BlB,KAAKwhhC,uBAAuBtghC,YACrBlB,KAAKwhhC,uBAAuBtghC,IAEvC,MACM03C,EAAW7zC,EADK,KAAO7D,GAEzB03C,IACA54C,KAAKwhhC,uBAAuBtghC,GAAOlB,KAAK24C,GAAGz3C,EAAK03C,GAExD,CACA54C,KAAKuhhC,iBEpTb,SAAqC36gC,EAASxB,EAAMD,GAChD,IAAK,MAAMjE,KAAOkE,EAAM,CACpB,MAAMmmrB,EAAYnmrB,EAAKlE,GACjBgihC,EAAY/9gC,EAAKjE,GACvB,GAAIu1/B,GAAclrU,GAKd3krB,EAAQyv/B,SAASn1/B,EAAKqqrB,QASrB,GAAIkrU,GAAcysB,GAKnBt8gC,EAAQyv/B,SAASn1/B,EAAK+g/B,GAAY12T,EAAW,CAAEg2H,MAAO36yB,UAErD,GAAIs8gC,IAAc33V,EAMnB,GAAI3krB,EAAQmka,SAAS7pa,GAAM,CACvB,MAAMiihC,EAAgBv8gC,EAAQstB,SAAShzB,IACP,IAA5BiihC,EAAc9oB,UACd8oB,EAAchkkB,KAAKosO,GAEb43V,EAAc/tB,aACpB+tB,EAAcn6gC,IAAIuirB,EAE1B,KACK,CACD,MAAMk3V,EAAc77gC,EAAQq8gC,eAAe/hhC,GAC3C0F,EAAQyv/B,SAASn1/B,EAAK+g/B,QAA4Bnh/B,IAAhB2hhC,EAA4BA,EAAcl3V,EAAW,CAAEg2H,MAAO36yB,IACpG,CAER,CAEA,IAAK,MAAM1F,KAAOiE,OACIrE,IAAdsE,EAAKlE,IACL0F,EAAQw8gC,YAAYlihC,GAE5B,OAAOkE,CACX,CFgQgCi+gC,CAA4BrjhC,KAAMA,KAAK08gC,4BAA4B33gC,EAAO/E,KAAK646B,UAAW746B,MAAOA,KAAKuhhC,kBAC1HvhhC,KAAKsjhC,wBACLtjhC,KAAKsjhC,wBAEb,CACA9nC,QAAAA,GACI,OAAOx7+B,KAAK+E,KAChB,CAIAw+gC,UAAAA,CAAWr4gC,GACP,OAAOlL,KAAK+E,MAAMiQ,SAAWhV,KAAK+E,MAAMiQ,SAAS9J,QAAQpK,CAC7D,CAIAs7+B,oBAAAA,GACI,OAAOp8+B,KAAK+E,MAAMoS,UACtB,CACAus/B,qBAAAA,GACI,OAAO1jgC,KAAK+E,MAAMm5/B,kBACtB,CACAslB,qBAAAA,GACI,OAAOxjhC,KAAKg7gC,cACNh7gC,KACAA,KAAK6E,OACD7E,KAAK6E,OAAO2+gC,6BACZ1ihC,CACd,CAIAohhC,eAAAA,CAAgBx08B,GACZ,MAAM+18B,EAAqBzjhC,KAAKwjhC,wBAChC,GAAIC,EAGA,OAFAA,EAAmB1rB,iBACf0rB,EAAmB1rB,gBAAgBr19B,IAAIgrC,GACpC,IAAM+18B,EAAmB1rB,gBAAgBllmB,OAAOnlV,EAE/D,CAIA2o7B,QAAAA,CAASn1/B,EAAKkC,GAEV,MAAM+/gC,EAAgBnjhC,KAAK0qB,OAAO3hB,IAAI7H,GAClCkC,IAAU+/gC,IACNA,GACAnjhC,KAAKojhC,YAAYlihC,GACrBlB,KAAKmihC,kBAAkBjhhC,EAAKkC,GAC5BpD,KAAK0qB,OAAO1hB,IAAI9H,EAAKkC,GACrBpD,KAAKs3/B,aAAap2/B,GAAOkC,EAAM2F,MAEvC,CAIAq6gC,WAAAA,CAAYlihC,GACRlB,KAAK0qB,OAAOmoY,OAAO3xZ,GACnB,MAAMuj1B,EAAczk1B,KAAKshhC,mBAAmBv4gC,IAAI7H,GAC5Cuj1B,IACAA,IACAzk1B,KAAKshhC,mBAAmBzunB,OAAO3xZ,WAE5BlB,KAAKs3/B,aAAap2/B,GACzBlB,KAAK0jhC,2BAA2BxihC,EAAKlB,KAAK+rpB,YAC9C,CAIAhhP,QAAAA,CAAS7pa,GACL,OAAOlB,KAAK0qB,OAAO+D,IAAIvtB,EAC3B,CACAgzB,QAAAA,CAAShzB,EAAK4yB,GACV,GAAI9zB,KAAK+E,MAAM2lB,QAAU1qB,KAAK+E,MAAM2lB,OAAOxpB,GACvC,OAAOlB,KAAK+E,MAAM2lB,OAAOxpB,GAE7B,IAAIkC,EAAQpD,KAAK0qB,OAAO3hB,IAAI7H,GAK5B,YAJcJ,IAAVsC,QAAwCtC,IAAjBgzB,IACvB1wB,EAAQ6++B,GAA6B,OAAjBnu9B,OAAwBhzB,EAAYgzB,EAAc,CAAEytxB,MAAOvhzB,OAC/EA,KAAKq2/B,SAASn1/B,EAAKkC,IAEhBA,CACX,CAMAk/+B,SAAAA,CAAUph/B,EAAKglB,GACX,IAAIk+E,EACJ,IAAIhhG,OAAmCtC,IAA3Bd,KAAKs3/B,aAAap2/B,IAAuBlB,KAAK0M,QAEI,QAAvD03F,EAAKpkG,KAAK2jhC,uBAAuB3jhC,KAAK+E,MAAO7D,UAAyB,IAAPkjG,EAAgBA,EAAKpkG,KAAK4jhC,sBAAsB5jhC,KAAK0M,QAASxL,EAAKlB,KAAKF,SADxIE,KAAKs3/B,aAAap2/B,GDzYTohC,MCsZf,YAXcxhC,IAAVsC,GAAiC,OAAVA,IACF,kBAAVA,IACNg8+B,GAAkBh8+B,IAAU+7+B,GAAkB/7+B,IAE/CA,EAAQwnB,WAAWxnB,ID/YZk/B,ECiZal/B,GDjZP69gC,GAAWl98B,KAAK886B,GAAcv+8B,KCiZbngB,GAAQkF,KAAKnB,KAC3C9iB,EAAQ4g/B,GAAkB9i/B,EAAKglB,KAEnClmB,KAAK6jhC,cAAc3ihC,EAAKu1/B,GAAcrz/B,GAASA,EAAM2F,MAAQ3F,IAE1Dqz/B,GAAcrz/B,GAASA,EAAM2F,MAAQ3F,CAChD,CAKAyghC,aAAAA,CAAc3ihC,EAAKkC,GACfpD,KAAK6hhC,WAAW3ghC,GAAOkC,CAC3B,CAKAs3/B,aAAAA,CAAcx5/B,GACV,IAAIkjG,EACJ,MAAM,QAAE0kP,GAAY9oV,KAAK+E,MACzB,IAAI++gC,EACJ,GAAuB,kBAAZh7rB,GAA2C,kBAAZA,EAAsB,CAC5D,MAAM15T,EAAUks9B,GAAwBt7+B,KAAK+E,MAAO+jV,EAAyC,QAA/B1kP,EAAKpkG,KAAK43/B,uBAAoC,IAAPxz5B,OAAgB,EAASA,EAAGgvS,QAC7HhkX,IACA00/B,EAAmB10/B,EAAQluB,GAEnC,CAIA,GAAI4nV,QAAgChoV,IAArBgjhC,EACX,OAAOA,EAMX,MAAM59/B,EAASlmB,KAAK2jhC,uBAAuB3jhC,KAAK+E,MAAO7D,GACvD,YAAeJ,IAAXolB,GAAyBuw+B,GAAcvw+B,QAMRplB,IAA5Bd,KAAK8hhC,cAAc5ghC,SACDJ,IAArBgjhC,OACEhjhC,EACAd,KAAK6hhC,WAAW3ghC,GARXglB,CASf,CACAyyB,EAAAA,CAAG0lnB,EAAW53pB,GAIV,OAHKzG,KAAK+wI,OAAOsthB,KACbr+pB,KAAK+wI,OAAOsthB,GAAa,IAAIq2V,IAE1B10/B,KAAK+wI,OAAOsthB,GAAW37nB,IAAIj8B,EACtC,CACAupC,MAAAA,CAAOqunB,GACH,GAAIr+pB,KAAK+wI,OAAOsthB,GAAY,SAAAtxpB,EAAAC,UAAA3M,OADX4M,EAAI,IAAApD,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,EAAA,GAAAF,UAAAE,GAEjBlN,KAAK+wI,OAAOsthB,GAAWrunB,UAAU/iC,EACrC,CACJ,EGrdJ,MAAM82gC,WAAyB5C,GAC3B50gC,WAAAA,GACIy0X,SAASh0X,WACThN,KAAK+h/B,iBAAmB+D,EAC5B,CACA+8B,wBAAAA,CAAyBx3/B,EAAG4H,GAMxB,OAAsC,EAA/B5H,EAAEs0B,wBAAwB1sB,GAAS,GAAK,CACnD,CACA0w/B,sBAAAA,CAAuB5+gC,EAAO7D,GAC1B,OAAO6D,EAAMunB,MACPvnB,EAAMunB,MAAMprB,QACZJ,CACV,CACA4ihC,0BAAAA,CAA2BxihC,EAAG6U,GAAmB,IAAjB,KAAE8B,EAAI,MAAEyU,GAAOvW,SACpC8B,EAAK3W,UACLorB,EAAMprB,EACjB,CACAoihC,sBAAAA,GACQtjhC,KAAKgkhC,oBACLhkhC,KAAKgkhC,2BACEhkhC,KAAKgkhC,mBAEhB,MAAM,SAAEh/gC,GAAahF,KAAK+E,MACtB0x/B,GAAczx/B,KACdhF,KAAKgkhC,kBAAoBh/gC,EAAS2zC,GAAG,UAAWqz8B,IACxChs/B,KAAK0M,UACL1M,KAAK0M,QAAQ+wC,YAAc,GAAH7yC,OAAMoh/B,GAClC,IAGZ,EC3BJ,MAAMi4B,WAA0BF,GAC5Bx3gC,WAAAA,GACIy0X,SAASh0X,WACThN,KAAK8E,KAAO,OACZ9E,KAAK2hhC,eAAiBtF,EAC1B,CACAuH,qBAAAA,CAAsBhj/B,EAAU1/B,GAC5B,GAAI06+B,GAAent9B,IAAIvtB,GAAM,CACzB,MAAMgjhC,EAAcv+B,GAAoBzk/B,GACxC,OAAOgjhC,GAAcA,EAAYnwgC,SAAe,CACpD,CACK,CACD,MAAM67I,GAfQhpJ,EAeyBg6B,EAdxChB,OAAO2d,iBAAiB32C,IAejBxD,GAASk8+B,GAAkBp++B,GAC3B0uJ,EAAcpyG,iBAAiBt8C,GAC/B0uJ,EAAc1uJ,KAAS,EAC7B,MAAwB,kBAAVkC,EAAqBA,EAAMD,OAASC,CACtD,CApBR,IAA0BwD,CAqBtB,CACAo8gC,0BAAAA,CAA2Bpi/B,EAAQ7qB,GAA0B,IAAxB,mBAAEmo/B,GAAoBno/B,EACvD,OAAO0w+B,GAAmB7l9B,EAAUs99B,EACxC,CACAvnC,KAAAA,CAAM5qU,EAAaurW,EAAcvy/B,GAC7Bg5gC,GAAgBhyX,EAAaurW,EAAcvy/B,EAAM6ggC,kBACrD,CACA8W,2BAAAA,CAA4B33gC,EAAO8z6B,EAAWwiE,GAC1C,OAAOqhC,GAA4B33gC,EAAO8z6B,EAAWwiE,EACzD,EC5BJ,MAAM8oC,WAAyBJ,GAC3Bx3gC,WAAAA,GACIy0X,SAASh0X,WACThN,KAAK8E,KAAO,MACZ9E,KAAKy+gC,UAAW,EAChBz+gC,KAAKgjhC,2BAA6B/jE,EACtC,CACA0kE,sBAAAA,CAAuB5+gC,EAAO7D,GAC1B,OAAO6D,EAAM7D,EACjB,CACA0ihC,qBAAAA,CAAsBhj/B,EAAU1/B,GAC5B,GAAI06+B,GAAent9B,IAAIvtB,GAAM,CACzB,MAAMgjhC,EAAcv+B,GAAoBzk/B,GACxC,OAAOgjhC,GAAcA,EAAYnwgC,SAAe,CACpD,CAEA,OADA7S,EAAOo7gC,GAAoB7t/B,IAAIvtB,GAA0BA,EAAnBo1/B,GAAYp1/B,GAC3C0/B,EAAS72B,aAAa7I,EACjC,CACAw7gC,2BAAAA,CAA4B33gC,EAAO8z6B,EAAWwiE,GAC1C,OAAOqhC,GAA4B33gC,EAAO8z6B,EAAWwiE,EACzD,CACA1kB,KAAAA,CAAM5qU,EAAaurW,EAAcvy/B,GAC7By5gC,GAAczyX,EAAaurW,EAAct3/B,KAAKy+gC,SAAU15gC,EAAM6ggC,kBAClE,CACA+b,cAAAA,CAAe/g/B,EAAUmrnB,EAAaspX,EAAWn57B,GAC7Cqg8B,GAAU37+B,EAAUmrnB,EAAaspX,EAAWn57B,EAChD,CACAq65B,KAAAA,CAAM318B,GACF5gC,KAAKy+gC,SAAWA,GAAS79+B,EAASxa,SAClC46W,MAAMu1mB,MAAM318B,EAChB,ECpCJ,MAAMwj/B,GAAyBA,CAAC1ggC,EAAW5jB,IAChCs8gC,GAAe14/B,GAChB,IAAIyggC,GAAiBrkhC,GACrB,IAAImkhC,GAAkBnkhC,EAAS,CAC7B+6gC,gBAAiBn3/B,IAAc+nB,EAAAA,WCNrC44+B,GAAuB1pC,GCIemmC,GAA4BvsoB,GAAAA,GAAAA,GAAAA,GAAC,CAAC,EACnEg/mB,IACAilB,IACA329B,IACAqoB,IACJk68B,KCFH,MAAME,WAAwB74gC,EAAAA,UAC1B2h6B,uBAAAA,CAAwByL,GACpB,MAAMjy6B,EAAU5G,KAAK+E,MAAMw/gC,SAAS73gC,QACpC,GAAI9F,GAAWiy6B,EAAU0iF,YAAcv7/B,KAAK+E,MAAMw2/B,UAAW,CACzD,MAAMtz/B,EAAOjI,KAAK+E,MAAMk2K,QAAQvuK,QAChCzE,EAAK8O,OAASnQ,EAAQ4tzB,cAAgB,EACtCvszB,EAAK6O,MAAQlQ,EAAQ66yB,aAAe,EACpCx5yB,EAAKoyB,IAAMzzB,EAAQwuL,UACnBntL,EAAKuyB,KAAO5zB,EAAQuuL,UACxB,CACA,OAAO,IACX,CAIAk5uB,kBAAAA,GAAuB,CACvB7u4B,MAAAA,GACI,OAAOx/B,KAAK+E,MAAMC,QACtB,EAEJ,SAASw/gC,GAAQzugC,GAA0B,IAAzB,SAAE/Q,EAAQ,UAAEu2/B,GAAWxl/B,EACrC,MAAMqrB,GAAKL,EAAAA,EAAAA,SACL/0B,GAAMig6B,EAAAA,EAAAA,QAAO,MACbhk6B,GAAOgk6B,EAAAA,EAAAA,QAAO,CAChBn15B,MAAO,EACPC,OAAQ,EACRsjB,IAAK,EACLG,KAAM,KAEJ,MAAEv5B,IAAUgL,EAAAA,EAAAA,YAAWytgC,IAkC7B,OAxBAzmgC,EAAAA,EAAAA,qBAAmB,KACf,MAAM,MAAE6D,EAAK,OAAEC,EAAM,IAAEsjB,EAAG,KAAEG,GAASvyB,EAAKyE,QAC1C,GAAI6u/B,IAAcvv/B,EAAIU,UAAYoK,IAAUC,EACxC,OACJ/K,EAAIU,QAAQqi6B,QAAQ01G,YAAcrj/B,EAClC,MAAM9U,EAAQ5qB,SAASC,cAAc,SAerC,OAdIV,IACAqrB,EAAMrrB,MAAQA,GAClBS,SAASsI,KAAKnI,YAAYyqB,GACtBA,EAAMtqB,OACNsqB,EAAMtqB,MAAMK,WAAW,oCAADuI,OACDw2B,EAAE,yEAAAx2B,OAEdkM,EAAK,wCAAAlM,OACJmM,EAAM,qCAAAnM,OACTyvB,EAAG,sCAAAzvB,OACF4vB,EAAI,0CAIT,KACH94B,SAASsI,KAAKrH,YAAY2pB,EAAM,CACnC,GACF,CAACiv+B,KACIvn/B,EAAAA,GAAAA,KAAIswgC,GAAiB,CAAE/oB,UAAWA,EAAWgpB,SAAUv4gC,EAAKivK,QAAShzK,EAAMjD,SAAUyG,EAAAA,aAAmBzG,EAAU,CAAEgH,SAChI,CClEA,MAAM04gC,GAAgB3ugC,IAA4F,IAA3F,SAAE/Q,EAAQ,QAAE8jV,EAAO,UAAEyyqB,EAAS,eAAEC,EAAc,OAAEponB,EAAM,sBAAEuxoB,EAAqB,KAAE7ogC,GAAO/F,EACzG,MAAM6ugC,EAAmB/H,GAAYgI,IAC/Bzj/B,GAAKL,EAAAA,EAAAA,SACL+j/B,GAAyBn5G,EAAAA,EAAAA,cAAa3nf,IACxC4gmB,EAAiB57gC,IAAIg7a,GAAS,GAC9B,IAAK,MAAMm+jB,KAAcyiC,EAAiBl6/B,SACtC,IAAKy39B,EACD,OAERqZ,GAAkBA,GAAgB,GACnC,CAACopB,EAAkBppB,IAChBxs9B,GAAU+83B,EAAAA,EAAAA,UAAQ,KAAM,CAC1B3q4B,KACA0nT,UACAyyqB,YACAnonB,SACAoonB,eAAgBspB,EAChBzy5B,SAAW2xT,IACP4gmB,EAAiB57gC,IAAIg7a,GAAS,GACvB,IAAM4gmB,EAAiB/xnB,OAAOmxB,OAQ7C2gmB,EACM,CAAC9hhC,KAAKqyC,SAAU4v+B,GAChB,CAACvpB,EAAWupB,IAiBlB,OAhBA/4G,EAAAA,EAAAA,UAAQ,KACJ64G,EAAiBrjhC,SAAQ,CAAC2hC,EAAGhiC,IAAQ0jhC,EAAiB57gC,IAAI9H,GAAK,IAAO,GACvE,CAACq6/B,IAKJ9v/B,EAAAA,WAAgB,MACX8v/B,IACIqpB,EAAiB38gC,MAClBuz/B,GACAA,GAAgB,GACrB,CAACD,IACS,cAATz/+B,IACA9W,GAAWgP,EAAAA,GAAAA,KAAIwwgC,GAAU,CAAEjpB,UAAWA,EAAWv2/B,SAAUA,MAEvDgP,EAAAA,GAAAA,KAAIuy/B,GAAgB36/B,SAAU,CAAExI,MAAO4rC,EAAShqC,SAAUA,GAAW,EAEjF,SAAS6/gC,KACL,OAAO,IAAI5+oB,GACf,CCxDA,MAAM8+oB,GAAer38B,GAAUA,EAAMxsE,KAAO,GAC5C,SAAS8jhC,GAAahghC,GAClB,MAAMiiQ,EAAW,GAMjB,OAJAyzqB,EAAAA,SAASn56B,QAAQyD,GAAW0oE,KACpB0t2B,EAAAA,EAAAA,gBAAe1t2B,IACfu5L,EAASrmQ,KAAK8sE,EAAM,IAErBu5L,CACX,CCgCA,MAAMg+wB,GAAkBlvgC,IAAyH,IAAxH,SAAE/Q,EAAQ,gBAAEkghC,EAAe,OAAE9xoB,EAAM,QAAEtqD,GAAU,EAAI,eAAE0yqB,EAAc,sBAAEmpB,GAAwB,EAAI,KAAE7ogC,EAAO,QAAS/F,EACxIkk7B,IAAWirF,EAAiB,4CAK5B,MAAMC,GAAkBp5G,EAAAA,EAAAA,UAAQ,IAAMi5G,GAAahghC,IAAW,CAACA,IAKzDoghC,EAAcD,EAAgB77gC,IAAIy7gC,IAIlC/rB,GAAkB/sF,EAAAA,EAAAA,SAAO,GAMzBo5G,GAAyBp5G,EAAAA,EAAAA,QAAOk5G,GAIhCG,EAAezI,IAAY,IAAM,IAAI52oB,OAKpCs/oB,EAAgBC,IAAqBt5G,EAAAA,EAAAA,UAASi5G,IAC9CtE,EAAkB4E,IAAuBv5G,EAAAA,EAAAA,UAASi5G,GACzDpkF,IAA0B,KACtBi4D,EAAgBts/B,SAAU,EAC1B24gC,EAAuB34gC,QAAUy4gC,EAIjC,IAAK,IAAIljhC,EAAI,EAAGA,EAAI4+gC,EAAiBxghC,OAAQ4B,IAAK,CAC9C,MAAMf,EAAM6jhC,GAAYlE,EAAiB5+gC,IACpCmjhC,EAAYvppB,SAAS36X,GAMtBokhC,EAAazynB,OAAO3xZ,IALU,IAA1BokhC,EAAav8gC,IAAI7H,IACjBokhC,EAAat8gC,IAAI9H,GAAK,EAMlC,IACD,CAAC2/gC,EAAkBuE,EAAY/khC,OAAQ+khC,EAAYv+gC,KAAK,OAC3D,MAAM6+gC,EAAkB,GACxB,GAAIP,IAAoBI,EAAgB,CACpC,IAAII,EAAe,IAAIR,GAKvB,IAAK,IAAIljhC,EAAI,EAAGA,EAAI4+gC,EAAiBxghC,OAAQ4B,IAAK,CAC9C,MAAMyrE,EAAQmz8B,EAAiB5+gC,GACzBf,EAAM6jhC,GAAYr38B,GACnB038B,EAAYvppB,SAAS36X,KACtBykhC,EAAajm9B,OAAOz9D,EAAG,EAAGyrE,GAC1Bg48B,EAAgB9khC,KAAK8sE,GAE7B,CAcA,MATa,SAAT5xD,GAAmB4pgC,EAAgBrlhC,SACnCslhC,EAAeD,GAEnBD,EAAoBT,GAAaW,SACjCH,EAAkBL,EAMtB,CAWA,MAAM,YAAES,IAAgB35gC,EAAAA,EAAAA,YAAWu6/B,IACnC,OAAQxy/B,EAAAA,GAAAA,KAAIy3B,GAAAA,SAAU,CAAEzmC,SAAU67gC,EAAiBv3gC,KAAKokE,IAChD,MAAMxsE,EAAM6jhC,GAAYr38B,GAClB6t7B,EAAY4pB,IAAoBtE,GAClCuE,EAAYvppB,SAAS36X,GAmBzB,OAAQ8S,EAAAA,GAAAA,KAAI0wgC,GAAe,CAAEnpB,UAAWA,EAAWzyqB,UAAUkwqB,EAAgBts/B,UAAWo8U,SAC9EhoV,EACOsyY,OAAQmonB,OAAYz6/B,EAAYsyY,EAAQuxoB,sBAAuBA,EAAuB7ogC,KAAMA,EAAM0/+B,eAAgBD,OAAYz6/B,EApBhI4x+B,KACX,IAAI4yC,EAAa72/B,IAAIvtB,GAIjB,OAHAokhC,EAAat8gC,IAAI9H,GAAK,GAK1B,IAAI2khC,GAAsB,EAC1BP,EAAa/jhC,SAASukhC,IACbA,IACDD,GAAsB,EAAK,IAE/BA,IACgB,OAAhBD,QAAwC,IAAhBA,GAAkCA,IAC1DH,EAAoBJ,EAAuB34gC,SAC3C8u/B,GAAkBA,IACtB,EAI+Jx2/B,SAAU0oE,GAASxsE,EAAI,KACzL,EC1JP6khC,GAAYpygC,EAAQ,MAyR1B,GAxRuCqygC,KACrC,MAAOC,EAAaC,IAAkBh6G,EAAAA,EAAAA,WAAS,GAGzCi6G,EAAaA,KACjB3sgC,EAAAA,GAAAA,KAAC6qgC,GAAOl62B,IAAG,CACT2+K,QAAS,CAAEv5U,QAAS,GACpB0/Q,QAAS,CAAE1/Q,QAAS,GACpBkvC,KAAM,CAAElvC,QAAS,GACjB+c,MAAO,CACL9nB,SAAU,QACV61B,IAAK,EACLG,KAAM,EACNF,MAAO,EACPC,OAAQ,EACRlgB,WAAY,qBACZrD,QAAS,OACTwiB,eAAgB,SAChBC,WAAY,SACZ5pB,OAAQ,KAEV6/S,QAASA,IAAMw2tB,GAAe,GAAOlhhC,UAErCwU,EAAAA,GAAAA,KAAC6qgC,GAAOl62B,IAAG,CACT2+K,QAAS,CAAEp5U,MAAO,IAClBu/Q,QAAS,CAAEv/Q,MAAO,GAClB+uC,KAAM,CAAE/uC,MAAO,IACf4c,MAAO,CACLxV,MAAO,MACP0f,SAAU,SACV9oB,YAAa,OACb2M,WAAY,OACZ8X,aAAc,OACd8G,SAAU,UAEZy2R,QAAUntT,GAAMA,EAAEk8Q,kBAAkBz5Q,UAEpCwU,EAAAA,GAAAA,KAAA,UACE1C,MAAM,OACNC,OAAO,OACP4zF,IAAI,yDACJsiB,MAAM,aACNm55B,YAAY,IACZtg1B,MAAM,2FACNug1B,iBAAe,QAMvB,OACEltgC,EAAAA,GAAAA,MAAA,OACEmT,MAAO,CACLjS,WAAY,UACZ0G,UAAW,QACXjK,MAAO,OACP6d,QAAS,SACTnwB,SAAU,WACVux+B,UAAW,SACXrh9B,OAAQ,EACRgG,UAAW,cACX11B,SAAA,EAGFmU,EAAAA,GAAAA,MAAA,OACEmT,MAAO,CACLkK,SAAU,SACV9B,OAAQ,SACR1d,QAAS,OACTsiB,cAAe,MACfnD,IAAK,OACLsD,WAAY,SACZnB,UAAW,KACXtzB,SAAA,EAGFmU,EAAAA,GAAAA,MAAA,OAAKmT,MAAO,CAAEne,KAAM,GAAInJ,SAAA,EACtBmU,EAAAA,GAAAA,MAACkrgC,GAAOxlgC,GAAE,CACRiqU,QAAS,CAAEv5U,QAAS,EAAGlH,EAAG,IAC1B4mR,QAAS,CAAE1/Q,QAAS,EAAGlH,EAAG,GAC1BikB,MAAO,CACLxW,SAAU,OACVzG,WAAY,MACZuG,MAAO,UACP4iB,aAAc,SACdlpB,WAAY,OACZtK,SAAA,CACH,eAECwU,EAAAA,GAAAA,KAAA,SAAM,cAENA,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAA,QAAM8S,MAAO,CAAE1W,MAAO,WAAY5Q,SAAC,mBAGrCwU,EAAAA,GAAAA,KAAC6qgC,GAAOtx/B,EAAC,CACP+1T,QAAS,CAAEv5U,QAAS,EAAGlH,EAAG,IAC1B4mR,QAAS,CAAE1/Q,QAAS,EAAGlH,EAAG,GAC1B8O,WAAY,CAAE4L,MAAO,IACrBuJ,MAAO,CACLxW,SAAU,UACVF,MAAO,OACP4iB,aAAc,OACdhC,SAAU,QACVlnB,WAAY,OACZtK,SACH,6IAMDmU,EAAAA,GAAAA,MAACkrgC,GAAOl62B,IAAG,CACT2+K,QAAS,CAAEv5U,QAAS,EAAGlH,EAAG,IAC1B4mR,QAAS,CAAE1/Q,QAAS,EAAGlH,EAAG,GAC1B8O,WAAY,CAAE4L,MAAO,IACrBuJ,MAAO,CACLtV,QAAS,OACTmf,IAAK,OACLmC,UAAW,SACXqB,UAAW,aACXn1B,SAAU,WACVqL,OAAQ,GACR7K,SAAA,EAGFwU,EAAAA,GAAAA,KAACsy9B,GAAS,CACR9Z,aAAetiqB,IACbl2S,EAAAA,GAAAA,KAAC6qgC,GAAO9kgC,OAAM,CACZy7+B,WAAY,CAAEtr/B,MAAO,MACrBur/B,SAAU,CAAEvr/B,MAAO,KACnB4c,MAAO,CACLqI,QAAS,YACT7e,SAAU,OACVihB,gBAAiB,UACjBnhB,MAAO,QACP0f,OAAQ,OACRnD,aAAc,MACdhhB,OAAQ,UACR9B,WAAY,MACZorB,UAAW,oCAEbi1R,QAASA,EAAQ1qT,SAClB,aAOLmU,EAAAA,GAAAA,MAACkrgC,GAAO9kgC,OAAM,CACZy7+B,WAAY,CAAEtr/B,MAAO,MACrBur/B,SAAU,CAAEvr/B,MAAO,KACnB4c,MAAO,CACLqI,QAAS,YACT7e,SAAU,OACVihB,gBAAiB,cACjBnhB,MAAO,UACP0f,OAAQ,oBACRnD,aAAc,OACdhhB,OAAQ,UACR9B,WAAY,MACZ2H,QAAS,OACTyiB,WAAY,SACZtD,IAAK,OAEPu5R,QAASA,IAAMw2tB,GAAe,GAAMlhhC,SAAA,CACrC,cAECwU,EAAAA,GAAAA,KAAA,QAAAxU,SAAM,qBAMZwU,EAAAA,GAAAA,KAAA,OAAK8S,MAAO,CAAEne,KAAM,GAAInJ,UACtBwU,EAAAA,GAAAA,KAAA,OACEmxF,IAAKo76B,GACL7jjB,IAAI,OACJ51c,MAAO,CACLxV,MAAO,OACPC,OAAQ,OACRob,aAAc,gBAOtB3Y,EAAAA,GAAAA,KAAA,OACE8S,MAAO,CACLtV,QAAS,OACTijB,oBAAqB,iBACrB9D,IAAK,OACLmC,UAAW,QACXtzB,SAED,CACC,CACEkW,KAAM,eACN9X,MAAO,eACPglB,MAAO,oBACP4uJ,QAAS,UACTsv2B,WAAY,WAEd,CACEprgC,KAAM,SACN9X,MAAO,OACPglB,MAAO,gBACP4uJ,QAAS,UACTsv2B,WAAY,WAEd,CACEprgC,KAAM,eACN9X,MAAO,UACPglB,MAAO,cACP4uJ,QAAS,UACTsv2B,WAAY,WAEd,CACEprgC,KAAM,qBACN9X,MAAO,OACPglB,MAAO,uBACP4uJ,QAAS,UACTsv2B,WAAY,YAEdh9gC,KAAI,CAACsjR,EAAMhpR,KACXuV,EAAAA,GAAAA,MAACkrgC,GAAOl62B,IAAG,CAET2+K,QAAS,CAAEv5U,QAAS,EAAGlH,EAAG,IAC1B4mR,QAAS,CAAE1/Q,QAAS,EAAGlH,EAAG,GAC1B8O,WAAY,CAAE4L,MAAO,GAAc,GAARnf,GAC3B0oB,MAAO,CACLyK,gBAAiB61P,EAAK51G,QACtBriJ,QAAS,OACTxC,aAAc,OACdnb,QAAS,OACTsiB,cAAe,SACfG,WAAY,SACZtD,IAAK,QACLnxB,SAAA,EAEFwU,EAAAA,GAAAA,KAAA,OACE8S,MAAO,CACLyK,gBAAiB,QACjBjgB,MAAO,OACPC,OAAQ,OACRob,aAAc,OACdnb,QAAS,OACTyiB,WAAY,SACZD,eAAgB,SAChB1jB,SAAU,QACV9Q,SAED4nR,EAAK1xQ,QAER1B,EAAAA,GAAAA,KAAA,OACE8S,MAAO,CACLxW,SAAU,OACVzG,WAAY,MACZuG,MAAOg3Q,EAAK05vB,YACZthhC,SAED4nR,EAAKxpR,SAERoW,EAAAA,GAAAA,KAAA,OAAK8S,MAAO,CAAE1W,MAAO,OAAQE,SAAU,QAAS9Q,SAC7C4nR,EAAKxkQ,UAtCHxkB,QA6CX4V,EAAAA,GAAAA,KAACyrgC,GAAe,CAAAjghC,SACbihhC,IAAezsgC,EAAAA,GAAAA,KAAC2sgC,EAAU,QAEzB,iBC/QV,SAJiC16gC,EAAAA,gBCL1B,SAAS86gC,GAAoBnxgC,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,CACA,MAGMoxgC,GAAa,CAAC,QAAQ,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,IAUrE,IAToBlxgC,EAAAA,GAAsBA,GAAC,UAAW,CAAC,OAAQ,YAAa,OAAQ,kBAJnE,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAMpChM,KAAI8oB,GAAW,cAAJxnB,OAAkBwnB,QALtB,CAAC,iBAAkB,SAAU,cAAe,OAOjD9oB,KAAI+R,GAAa,gBAAJzQ,OAAoByQ,QANjC,CAAC,SAAU,eAAgB,QAQhC/R,KAAIu1C,GAAQ,WAAJj0C,OAAei0C,QAE7B2n+B,GAAWl9gC,KAAIrB,GAAQ,WAAJ2C,OAAe3C,QAAYu+gC,GAAWl9gC,KAAIrB,GAAQ,WAAJ2C,OAAe3C,QAAYu+gC,GAAWl9gC,KAAIrB,GAAQ,WAAJ2C,OAAe3C,QAAYu+gC,GAAWl9gC,KAAIrB,GAAQ,WAAJ2C,OAAe3C,QAAYu+gC,GAAWl9gC,KAAIrB,GAAQ,WAAJ2C,OAAe3C,OCHvNsN,GAAY,CAAC,YAAa,UAAW,gBAAiB,YAAa,YAAa,YAAa,OAAQ,aAAc,UAAW,OAAQ,gBAc5I,SAASs3yB,GAAU9hyB,GACjB,MAAMhkB,EAAQ6jB,WAAWG,GACzB,MAAO,GAAPngB,OAAU7D,GAAK6D,OAAG7H,OAAOgoB,GAAK1nB,QAAQN,OAAOgE,GAAQ,KAAO,KAC9D,CAmGA,SAAS0/gC,GAA8B34/B,GAGpC,IAHqC,YACtCjN,EAAW,OACX6J,GACDoD,EACK44/B,EAAa,GACjBxjhC,OAAOgkB,KAAKwD,GAAQnpB,SAAQL,IACP,KAAfwlhC,GAGgB,IAAhBh8/B,EAAOxpB,KACTwlhC,EAAaxlhC,EACf,IAEF,MAAMylhC,EAA8BzjhC,OAAOgkB,KAAKrG,GAAayQ,MAAK,CAACjG,EAAG4H,IAC7DpS,EAAYwK,GAAKxK,EAAYoS,KAEtC,OAAO0z/B,EAA4B1ihC,MAAM,EAAG0ihC,EAA4BjjhC,QAAQgjhC,GAClF,CA2HA,MAAME,IAAWnxgC,EAAAA,GAAMA,IAAC,MAAO,CAC7BvK,KAAM,UACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,GACE,UACJtE,EAAS,UACT4a,EAAS,KACT2U,EAAI,QACJoC,EAAO,KACPysB,EAAI,aACJgo+B,EAAY,YACZhmgC,GACElL,EACJ,IAAImxgC,EAAgB,GAGhBrmhC,IACFqmhC,EA9CC,SAA8B10/B,EAASvR,GAA0B,IAAb7V,EAAMgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEnE,IAAKolB,GAAWA,GAAW,EACzB,MAAO,GAGT,GAAuB,kBAAZA,IAAyB5G,OAAOioB,MAAMjoB,OAAO4G,KAAgC,kBAAZA,EAC1E,MAAO,CAACpnB,EAAO,cAADJ,OAAe7H,OAAOqvB,MAGtC,MAAM00/B,EAAgB,GAOtB,OANAjmgC,EAAYtf,SAAQ0uB,IAClB,MAAM7sB,EAAQgvB,EAAQnC,GAClBzE,OAAOpoB,GAAS,GAClB0jhC,EAAclmhC,KAAKoK,EAAO,WAADJ,OAAYqlB,EAAU,KAAArlB,OAAI7H,OAAOK,KAC5D,IAEK0jhC,CACT,CA4BsBC,CAAqB30/B,EAASvR,EAAa7V,IAE7D,MAAMg8gC,EAAoB,GAO1B,OANAnmgC,EAAYtf,SAAQ0uB,IAClB,MAAM7sB,EAAQuS,EAAWsa,GACrB7sB,GACF4jhC,EAAkBpmhC,KAAKoK,EAAO,QAADJ,OAASqlB,EAAU,KAAArlB,OAAI7H,OAAOK,KAC7D,IAEK,CAAC4H,EAAOpG,KAAMnE,GAAauK,EAAOvK,UAAWuvB,GAAQhlB,EAAOglB,KAAM62/B,GAAgB77gC,EAAO67gC,gBAAiBC,EAA6B,QAAdzrgC,GAAuBrQ,EAAO,gBAADJ,OAAiB7H,OAAOsY,KAAwB,SAATwjC,GAAmB7zC,EAAO,WAADJ,OAAY7H,OAAO87C,QAAamo+B,EAAkB,GA7BlQvxgC,EA+Bd6uzB,IAAA,IAAC,WACF3uzB,GACD2uzB,EAAA,OAAK1rzB,EAAAA,GAAAA,GAAS,CACb8hB,UAAW,cACV/kB,EAAWlV,WAAa,CACzBuW,QAAS,OACTuiB,SAAU,OACVziB,MAAO,QACNnB,EAAWqa,MAAQ,CACpB0E,OAAQ,GACP/e,EAAWkxgC,cAAgB,CAC5Bjw/B,SAAU,GACW,SAApBjhB,EAAWkpC,MAAmB,CAC/BtlB,SAAU5jB,EAAWkpC,MACrB,IArNK,SAA0BrqC,GAG9B,IAH+B,MAChCE,EAAK,WACLiB,GACDnB,EACC,MAAMyygC,GAAkBr2/B,EAAAA,GAAAA,IAAwB,CAC9ClG,OAAQ/U,EAAW0F,UACnBwF,YAAanM,EAAMmM,YAAY6J,SAEjC,OAAOkF,EAAAA,GAAAA,IAAkB,CACvBlb,SACCuygC,GAAiBp3/B,IAClB,MAAMnpB,EAAS,CACb4yB,cAAezJ,GAOjB,OALoC,IAAhCA,EAAUnsB,QAAQ,YACpBgD,EAAO,QAADkE,OAASs8gC,GAAYl3/B,OAAU,CACnCwG,SAAU,SAGP9vB,CAAM,GAEjB,IAyBO,SAAuBu7zB,GAG3B,IAH4B,MAC7BvtzB,EAAK,WACLiB,GACDsszB,EACC,MAAM,UACJxh0B,EAAS,WACT0mhC,GACExxgC,EACJ,IAAI3K,EAAS,CAAC,EACd,GAAIvK,GAA4B,IAAf0mhC,EAAkB,CACjC,MAAMC,GAAmBx2/B,EAAAA,GAAAA,IAAwB,CAC/ClG,OAAQy8/B,EACRtmgC,YAAanM,EAAMmM,YAAY6J,SAEjC,IAAI28/B,EAC4B,kBAArBD,IACTC,EAA0BZ,GAA+B,CACvD5lgC,YAAanM,EAAMmM,YAAY6J,OAC/BA,OAAQ08/B,KAGZp8gC,GAAS4kB,EAAAA,GAAAA,IAAkB,CACzBlb,SACC0ygC,GAAkB,CAACv3/B,EAAWI,KAC/B,IAAIq3/B,EACJ,MAAMtz/B,EAAetf,EAAM0d,QAAQvC,GACnC,MAAqB,QAAjBmE,EACK,CACLsE,UAAW,IAAF1tB,OAAMiizB,GAAU74xB,IACzB,CAAC,QAADppB,OAASs8gC,GAAYl3/B,OAAS,CAC5BsH,WAAYu1xB,GAAU74xB,KAI6B,OAApDsz/B,EAAwBD,IAAoCC,EAAsBzrpB,SAAS5rW,GACvF,CAAC,EAEH,CACLqI,UAAW,EACX,CAAC,QAAD1tB,OAASs8gC,GAAYl3/B,OAAS,CAC5BsH,WAAY,GAEf,GAEL,CACA,OAAOtsB,CACT,IACO,SAA0B83zB,GAG9B,IAH+B,MAChCpuzB,EAAK,WACLiB,GACDmtzB,EACC,MAAM,UACJri0B,EAAS,cACT8mhC,GACE5xgC,EACJ,IAAI3K,EAAS,CAAC,EACd,GAAIvK,GAA+B,IAAlB8mhC,EAAqB,CACpC,MAAMC,GAAsB52/B,EAAAA,GAAAA,IAAwB,CAClDlG,OAAQ68/B,EACR1mgC,YAAanM,EAAMmM,YAAY6J,SAEjC,IAAI28/B,EAC+B,kBAAxBG,IACTH,EAA0BZ,GAA+B,CACvD5lgC,YAAanM,EAAMmM,YAAY6J,OAC/BA,OAAQ88/B,KAGZx8gC,GAAS4kB,EAAAA,GAAAA,IAAkB,CACzBlb,SACC8ygC,GAAqB,CAAC33/B,EAAWI,KAClC,IAAIw3/B,EACJ,MAAMzz/B,EAAetf,EAAM0d,QAAQvC,GACnC,MAAqB,QAAjBmE,EACK,CACLld,MAAO,eAAFlM,OAAiBiizB,GAAU74xB,GAAa,KAC7CyE,WAAY,IAAF7tB,OAAMiizB,GAAU74xB,IAC1B,CAAC,QAADppB,OAASs8gC,GAAYl3/B,OAAS,CAC5ByH,YAAao1xB,GAAU74xB,KAI6B,OAArDyz/B,EAAyBJ,IAAoCI,EAAuB5rpB,SAAS5rW,GACzF,CAAC,EAEH,CACLnZ,MAAO,OACP2hB,WAAY,EACZ,CAAC,QAAD7tB,OAASs8gC,GAAYl3/B,OAAS,CAC5ByH,YAAa,GAEhB,GAEL,CACA,OAAOzsB,CACT,IAnNO,SAAqB+K,GAGzB,IACG9N,GAJuB,MAC3ByM,EAAK,WACLiB,GACDI,EAEC,OAAOrB,EAAMmM,YAAYqG,KAAK/F,QAAO,CAAC6F,EAAciJ,KAElD,IAAIjlB,EAAS,CAAC,EAId,GAHI2K,EAAWsa,KACbhoB,EAAO0N,EAAWsa,KAEfhoB,EACH,OAAO+e,EAET,IAAa,IAAT/e,EAEF+C,EAAS,CACPquB,UAAW,EACXjrB,SAAU,EACVooB,SAAU,aAEP,GAAa,SAATvuB,EACT+C,EAAS,CACPquB,UAAW,OACXjrB,SAAU,EACVE,WAAY,EACZkoB,SAAU,OACV1f,MAAO,YAEJ,CACL,MAAM4wgC,GAA0B92/B,EAAAA,GAAAA,IAAwB,CACtDlG,OAAQ/U,EAAWzH,QACnB2S,YAAanM,EAAMmM,YAAY6J,SAE3Bi9/B,EAAiD,kBAA5BD,EAAuCA,EAAwBz3/B,GAAcy3/B,EACxG,QAAoB5mhC,IAAhB6mhC,GAA6C,OAAhBA,EAC/B,OAAO3ggC,EAGT,MAAMlQ,EAAQ,GAAHlM,OAAM/H,KAAK+b,MAAM3W,EAAO0/gC,EAAc,KAAQ,IAAI,KAC7D,IAAI7ugC,EAAO,CAAC,EACZ,GAAInD,EAAWlV,WAAakV,EAAWqa,MAAqC,IAA7Bra,EAAW4xgC,cAAqB,CAC7E,MAAMvz/B,EAAetf,EAAM0d,QAAQzc,EAAW4xgC,eAC9C,GAAqB,QAAjBvz/B,EAAwB,CAC1B,MAAMmiL,EAAY,QAAHvrM,OAAWkM,EAAK,OAAAlM,OAAMiizB,GAAU74xB,GAAa,KAC5Dlb,EAAO,CACLugB,UAAW88K,EACX3/K,SAAU2/K,EAEd,CACF,CAIAnrM,GAAS4N,EAAAA,GAAAA,GAAS,CAChBygB,UAAWviB,EACX1I,SAAU,EACVooB,SAAU1f,GACTgC,EACL,CAQA,OAL6C,IAAzCpE,EAAMmM,YAAY6J,OAAOuF,GAC3B/sB,OAAOD,OAAO+jB,EAAchc,GAE5Bgc,EAAatS,EAAMmM,YAAYG,GAAGiP,IAAejlB,EAE5Cgc,CAAY,GAClB,CAAC,EACN,IA2OA,MAAM9N,GAAoBvD,IACxB,MAAM,QACJoD,EAAO,UACPtY,EAAS,UACT4a,EAAS,KACT2U,EAAI,QACJoC,EAAO,KACPysB,EAAI,aACJgo+B,EAAY,YACZhmgC,GACElL,EACJ,IAAIiygC,EAAiB,GAGjBnnhC,IACFmnhC,EAnCG,SAA+Bx1/B,EAASvR,GAE7C,IAAKuR,GAAWA,GAAW,EACzB,MAAO,GAGT,GAAuB,kBAAZA,IAAyB5G,OAAOioB,MAAMjoB,OAAO4G,KAAgC,kBAAZA,EAC1E,MAAO,CAAC,cAADxnB,OAAe7H,OAAOqvB,KAG/B,MAAMrZ,EAAU,GAQhB,OAPA8H,EAAYtf,SAAQ0uB,IAClB,MAAM7sB,EAAQgvB,EAAQnC,GACtB,GAAIzE,OAAOpoB,GAAS,EAAG,CACrB,MAAMmQ,EAAY,WAAH3I,OAAcqlB,EAAU,KAAArlB,OAAI7H,OAAOK,IAClD2V,EAAQnY,KAAK2S,EACf,KAEKwF,CACT,CAgBqB8ugC,CAAsBz1/B,EAASvR,IAElD,MAAMingC,EAAqB,GAC3BjngC,EAAYtf,SAAQ0uB,IAClB,MAAM7sB,EAAQuS,EAAWsa,GACrB7sB,GACF0khC,EAAmBlnhC,KAAK,QAADgK,OAASqlB,EAAU,KAAArlB,OAAI7H,OAAOK,IACvD,IAEF,MAAM4V,EAAQ,CACZpU,KAAM,CAAC,OAAQnE,GAAa,YAAauvB,GAAQ,OAAQ62/B,GAAgB,kBAAmBe,EAA8B,QAAdvsgC,GAAuB,gBAAJzQ,OAAoB7H,OAAOsY,IAAuB,SAATwjC,GAAmB,WAAJj0C,OAAe7H,OAAO87C,OAAYip+B,IAE3N,OAAO7ugC,EAAAA,GAAcA,GAACD,EAAOutgC,GAAqBxtgC,EAAQ,EA6M5D,SA3M0BtN,EAAAA,YAAiB,SAAc2M,EAASpM,GAChE,MAAMk18B,GAAa3s8B,EAAAA,GAAAA,GAAgB,CACjCxP,MAAOqT,EACPlN,KAAM,aAEF,YACJ2V,GACEk+7B,KACEh68B,GAAQk2B,EAAAA,GAAYA,GAACim7B,IACrB,UACF3t8B,EACArF,QAAS65gC,EACTR,cAAeS,EAAiB,UAChC3vgC,EAAY,MAAK,UACjB5X,GAAY,EAAK,UACjB4a,EAAY,MAAK,KACjB2U,GAAO,EACPm3/B,WAAYc,EAAc,QAC1B71/B,EAAU,EAAC,KACXysB,EAAO,OAAM,aACbgo+B,GAAe,GACb9hhC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC4xgC,EAAac,GAAkB71/B,EAC/Bm1/B,EAAgBS,GAAqB51/B,EACrC81/B,EAAiBz8gC,EAAAA,WAAiB08gC,IAGlCj6gC,EAAUzN,EAAYsnhC,GAAe,GAAKG,EAC1Cvx/B,EAAoB,CAAC,EACrByx/B,GAAgBxvgC,EAAAA,GAAAA,GAAS,CAAC,EAAGF,GACnCmI,EAAYqG,KAAK3lB,SAAQ0uB,IACE,MAArBvX,EAAMuX,KACR0G,EAAkB1G,GAAcvX,EAAMuX,UAC/Bm4/B,EAAcn4/B,GACvB,IAEF,MAAMta,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCmJ,UACAzN,YACA4a,YACA2U,OACAm3/B,aACAI,gBACA1o+B,OACAgo+B,eACAz0/B,WACCuE,EAAmB,CACpB9V,YAAaA,EAAYqG,OAErBnO,EAAUG,GAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK2ugC,GAAYv8gC,SAAU,CAC7CxI,MAAO8K,EACPlJ,UAAuBwU,EAAAA,GAAAA,KAAKotgC,IAAUhugC,EAAAA,GAAAA,GAAS,CAC7CjD,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B6F,GAAIf,EACJrM,IAAKA,GACJo8gC,KAEP,oDCraA,MAAM7ygC,GAAY,CAAC,WAAY,UAAW,UAAW,QAAS,SAM9D,SAASwf,GAAc3xB,GACrB,OAAOgnB,SAAShnB,EAAO,KAAO,CAChC,CACA,MAAM4H,GACI,CAENmuB,WAAY,SAEZ30B,SAAU,WAEVy0B,SAAU,SACVliB,OAAQ,EACRsjB,IAAK,EACLG,KAAM,EAEN/H,UAAW,iBAiBf,MAoLA,GApLsChnB,EAAAA,YAAiB,SAA0B1G,EAAOyr+B,GACtF,MAAM,SACF+kB,EAAQ,QACR8yB,EAAO,QACPC,EAAU,EAAC,MACXh8/B,EAAK,MACLlpB,GACE2B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KAE7C7I,QAAS2zB,GACP50B,EAAAA,OAAsB,MAATrI,GACXmlhC,EAAW98gC,EAAAA,OAAa,MACxB498B,GAAY3o7B,EAAAA,GAAAA,GAAW8v8B,EAAc+3C,GACrCC,EAAY/8gC,EAAAA,OAAa,MACzBg9gC,EAAYh9gC,EAAAA,OAAa,MACzBi9gC,EAA0Bj9gC,EAAAA,aAAkB,KAChD,MAAMmgB,EAAQ28/B,EAAS77gC,QAEjBkjJ,GADkBlwH,EAAAA,GAAWA,GAAC9T,GACE2xB,iBAAiB3xB,GAGvD,GAA4B,QAAxBgkI,EAAc94I,MAChB,MAAO,CACL6xgC,iBAAkB,EAClBC,aAAa,GAGjB,MAAMC,EAAeJ,EAAU/7gC,QAC/Bm8gC,EAAav8/B,MAAMxV,MAAQ84I,EAAc94I,MACzC+xgC,EAAazlhC,MAAQwoB,EAAMxoB,OAAS2B,EAAM0sL,aAAe,IACpB,OAAjCo31B,EAAazlhC,MAAMa,OAAO,KAI5B4khC,EAAazlhC,OAAS,KAExB,MAAMs3B,EAAYk1H,EAAcl1H,UAC1B/F,EAAUI,GAAc66H,EAAcp4H,eAAiBzC,GAAc66H,EAAct4H,YACnFhC,EAASP,GAAc66H,EAAcig0B,mBAAqB967B,GAAc66H,EAAc001B,gBAGtF301B,EAAck53B,EAAa1uJ,aAGjC0uJ,EAAazlhC,MAAQ,IACrB,MAAM0lhC,EAAkBD,EAAa1uJ,aAGrC,IAAI70pB,EAAc31E,EACd243B,IACFhjzB,EAAcziO,KAAK6mB,IAAI8B,OAAO88/B,GAAWQ,EAAiBxjzB,IAExD+izB,IACF/izB,EAAcziO,KAAK8mB,IAAI6B,OAAO68/B,GAAWS,EAAiBxjzB,IAE5DA,EAAcziO,KAAK6mB,IAAI47M,EAAawjzB,GAKpC,MAAO,CACLH,iBAHuBrjzB,GAA6B,eAAd5qM,EAA6B/F,EAAUW,EAAS,GAItFsz/B,YAHkB/lhC,KAAKD,IAAI0iO,EAAc31E,IAAgB,EAI1D,GACA,CAAC043B,EAASC,EAASvjhC,EAAM0sL,cACtBs31B,EAAat9gC,EAAAA,aAAkB,KACnC,MAAMu9gC,EAAiBN,IACvB,QAjFa5nhC,KADA8Q,EAkFDo3gC,IAjFsB,OAARp3gC,GAA4C,IAA5B1O,OAAOgkB,KAAKtV,GAAKvR,QAAyC,IAAzBuR,EAAI+2gC,mBAA2B/2gC,EAAIg3gC,YAkF5G,OAnFN,IAAiBh3gC,EAqFb,MAAM+2gC,EAAmBK,EAAeL,iBAClC/8/B,EAAQ28/B,EAAS77gC,QACnB87gC,EAAU97gC,UAAYi8gC,IACxBH,EAAU97gC,QAAUi8gC,EACpB/8/B,EAAMU,MAAMvV,OAAS,GAAHnM,OAAM+9gC,EAAgB,OAE1C/8/B,EAAMU,MAAM2M,SAAW+v/B,EAAeJ,YAAc,SAAW,EAAE,GAChE,CAACF,KACJjo/B,EAAAA,GAAiBA,IAAC,KAChB,MAAMwo/B,EAAeA,KACnBF,GAAY,EAMd,IAAIG,EACJ,MAMMC,GAAuBls/B,EAAAA,GAAQA,GAACgs/B,GAChCr9/B,EAAQ28/B,EAAS77gC,QACjBop+B,GAAkBp28B,EAAAA,GAAWA,GAAC9T,GAEpC,IAAI8ylB,EAKJ,OANAo3X,EAAgBpv9B,iBAAiB,SAAUyigC,GAEb,qBAAnBxqa,iBACTD,EAAiB,IAAIC,eAAmEsqa,GACxFvqa,EAAeE,QAAQhzlB,IAElB,KACLu9/B,EAAqB3r/B,QACrBkzH,qBAAqBw43B,GACrBpzC,EAAgB727B,oBAAoB,SAAUkq+B,GAC1Czqa,GACFA,EAAeG,YACjB,CACD,GACA,CAAC6pa,EAAyBK,KAC7Bto/B,EAAAA,GAAiBA,IAAC,KAChBso/B,GAAY,IAUd,OAAoB5vgC,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACxCzG,SAAU,EAAcwU,EAAAA,GAAAA,KAAK,YAAYZ,EAAAA,GAAAA,GAAS,CAChDxV,MAAOA,EACPmy/B,SAXiB7v+B,IACd2a,GACH0o/B,IAEExzB,GACFA,EAAS7v+B,EACX,EAME1Z,IAAKq98B,EAGLpy5B,KAAMqx9B,EACNh8/B,MAAOA,GACN5T,KAAsBc,EAAAA,GAAAA,KAAK,WAAY,CACxC,eAAe,EACfjG,UAAWxO,EAAMwO,UACjB8S,UAAU,EACVra,IAAKy8gC,EACLnhE,UAAW,EACXh77B,OAAO1T,EAAAA,GAAAA,GAAS,CAAC,EAAG5N,GAAeshB,EAAO,CACxCgL,WAAY,EACZE,cAAe,QAIvB,IC1Le,SAAS4x/B,GAAgBrzgC,GAIrC,IAJsC,MACvChR,EAAK,OACLizsB,EAAM,eACNqxU,GACDtzgC,EACC,OAAOiisB,EAAO72rB,QAAO,CAACC,EAAKgf,KACzBhf,EAAIgf,GAASr7B,EAAMq7B,GACfip/B,GAC0B,qBAAjBtkhC,EAAMq7B,KACfhf,EAAIgf,GAASip/B,EAAejp/B,IAGzBhf,IACN,CAAC,EACN,CCNA,SAJwC3V,EAAAA,mBAAoB3K,GCA7C,SAASwohC,KACtB,OAAO79gC,EAAAA,WAAiB89gC,GAC1B,0BC8BA,SA7BA,SAAqBxzgC,GAIlB,IAJmB,OACpB/K,EAAM,QACNoY,EAAO,aACPE,EAAe,CAAC,GACjBvN,EACC,MAAMyzgC,EAAazqE,GAASz77B,GACtB0D,EAAiC,oBAAXhc,EAAwBA,EAAOoY,GAAUomgC,EAAWpmgC,IAAyBomgC,GAAcx+gC,EACvH,OAAoBwO,EAAAA,GAAAA,KAAKiwgC,GAAAA,EAAiB,CACxCz+gC,OAAQgc,GAEZ,ECQA,SAhBA,SAAsBjiB,GACpB,OAAoByU,EAAAA,GAAAA,KAAKkwgC,IAAoB9wgC,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAC/Due,aAAcA,GAAAA,EACdF,QAASC,GAAAA,IAEb,ECRO,SAAS0nZ,GAAS3na,GACvB,OAAgB,MAATA,KAAmByG,MAAMiI,QAAQ1O,IAA2B,IAAjBA,EAAM/C,OAC1D,CASO,SAASsphC,GAAS/3gC,GAAkB,IAAbg4gC,EAAG58gC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAC/B,OAAO4E,IAAQm5Z,GAASn5Z,EAAIxO,QAAwB,KAAdwO,EAAIxO,OAAgBwmhC,GAAO7+mB,GAASn5Z,EAAIkiB,eAAsC,KAArBliB,EAAIkiB,aACrG,CCjBO,SAAS+1/B,GAAyBz0gC,GACvC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,CACA,MACA,IADyBE,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,OAAQ,cAAe,UAAW,WAAY,eAAgB,aAAc,QAAS,YAAa,YAAa,iBAAkB,YAAa,cAAe,WAAY,QAAS,iBAAkB,iBAAkB,kBAAmB,oBAAqB,kBAAmB,qBCA5UC,GAAY,CAAC,mBAAoB,eAAgB,YAAa,YAAa,QAAS,aAAc,kBAAmB,eAAgB,WAAY,+BAAgC,eAAgB,QAAS,YAAa,KAAM,iBAAkB,aAAc,WAAY,SAAU,UAAW,UAAW,YAAa,OAAQ,SAAU,WAAY,UAAW,UAAW,YAAa,UAAW,cAAe,WAAY,eAAgB,OAAQ,OAAQ,YAAa,QAAS,iBAAkB,OAAQ,SAsBteu0gC,GAAwBA,CAAC/khC,EAAOiG,KAC3C,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAWo0gC,aAAe/+gC,EAAO++gC,YAAap0gC,EAAWq0gC,gBAAkBh/gC,EAAOi/gC,aAAct0gC,EAAWu0gC,cAAgBl/gC,EAAOm/gC,WAAYx0gC,EAAWyG,OAASpR,EAAOoR,MAA2B,UAApBzG,EAAW1N,MAAoB+C,EAAOo/gC,UAAWz0gC,EAAW00gC,WAAar/gC,EAAOq/gC,UAAW10gC,EAAWC,OAAS5K,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWC,SAAWD,EAAWwgM,WAAanrM,EAAOmrM,UAAWxgM,EAAW20gC,aAAet/gC,EAAOs/gC,YAAY,EAEhbC,GAAyBA,CAACxlhC,EAAOiG,KAC5C,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAO4gB,MAA2B,UAApBjW,EAAW1N,MAAoB+C,EAAOw/gC,eAAgB70gC,EAAW00gC,WAAar/gC,EAAOy/gC,eAAoC,WAApB90gC,EAAW7Q,MAAqBkG,EAAO0/gC,gBAAiB/0gC,EAAWq0gC,gBAAkBh/gC,EAAO2/gC,kBAAmBh1gC,EAAWu0gC,cAAgBl/gC,EAAO4/gC,gBAAiBj1gC,EAAW20gC,aAAet/gC,EAAO6/gC,iBAAiB,EAyBpUC,IAAgBr1gC,EAAAA,GAAMA,IAAC,MAAO,CACzCvK,KAAM,eACNkK,KAAM,OACNM,kBAAmBo0gC,IAHQr0gC,EAI1BM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW4H,MAAO,CACzCzJ,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,QAC1C5K,WAAY,WAEZorB,UAAW,aAEXl2B,SAAU,WACV2M,OAAQ,OACR6F,QAAS,cACTyiB,WAAY,SACZ,CAAC,KAAD7uB,OAAMmghC,GAAiB7ygC,WAAa,CAClCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAK/B,SAC1C/G,OAAQ,YAETwE,EAAW00gC,YAAazxgC,EAAAA,GAAAA,GAAS,CAClC+b,QAAS,aACY,UAApBhf,EAAW1N,MAAoB,CAChCqvB,WAAY,IACV3hB,EAAWwgM,WAAa,CAC1Br/L,MAAO,QACP,IACWk0gC,IAAqBv1gC,EAAAA,GAAMA,IAAC,QAAS,CAChDvK,KAAM,eACNkK,KAAM,QACNM,kBAAmB60gC,IAHa90gC,EAI/BjB,IAGG,IAHF,MACFE,EAAK,WACLiB,GACDnB,EACC,MAAMwF,EAA+B,UAAvBtF,EAAMoD,QAAQgE,KACtB21K,GAAc74K,EAAAA,GAAAA,GAAS,CAC3BhD,MAAO,gBACNlB,EAAMmD,KAAO,CACdtI,QAASmF,EAAMmD,KAAKtI,QAAQw26B,kBAC1B,CACFx26B,QAASyK,EAAQ,IAAO,IACvB,CACD7C,WAAYzC,EAAM0C,YAAY9L,OAAO,UAAW,CAC9C+L,SAAU3C,EAAM0C,YAAYC,SAASC,YAGnC2zgC,EAAoB,CACxB17gC,QAAS,gBAEL27gC,EAAqBx2gC,EAAMmD,KAAO,CACtCtI,QAASmF,EAAMmD,KAAKtI,QAAQw26B,kBAC1B,CACFx26B,QAASyK,EAAQ,IAAO,IAE1B,OAAOpB,EAAAA,GAAAA,GAAS,CACd00F,KAAM,UACN5uF,cAAe,UACf9I,MAAO,eACP+e,QAAS,YACTW,OAAQ,EACRoF,UAAW,cACXrgB,WAAY,OACZtD,OAAQ,WAER2d,OAAQ,EAERsx7B,wBAAyB,cACzBhv8B,QAAS,QAET4f,SAAU,EACV9f,MAAO,OAEPso5B,cAAe,uBACf+rH,kBAAmB,OACnB,+BAAgC151B,EAChC,sBAAuBA,EAEvB,0BAA2BA,EAE3B,2BAA4BA,EAE5B,UAAW,CACTz7J,QAAS,GAGX,YAAa,CACXyE,UAAW,QAEb,+BAAgC,CAE9Bs9X,iBAAkB,QAGpB,CAAC,+BAADntZ,OAAgCmghC,GAAiBhB,YAAW,OAAO,CACjE,+BAAgCkB,EAChC,sBAAuBA,EAEvB,0BAA2BA,EAE3B,2BAA4BA,EAE5B,qCAAsCC,EACtC,4BAA6BA,EAE7B,gCAAiCA,EAEjC,iCAAkCA,GAEpC,CAAC,KAADtghC,OAAMmghC,GAAiB7ygC,WAAa,CAClC3I,QAAS,EAET67gC,qBAAsB12gC,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAK/B,UAE1D,qBAAsB,CACpBizgC,kBAAmB,QACnB/rH,cAAe,kBAEI,UAApBzp5B,EAAW1N,MAAoB,CAChCqvB,WAAY,GACX3hB,EAAW00gC,WAAa,CACzBtzgC,OAAQ,OACR6sE,OAAQ,OACRjvD,QAAS,EACT2C,WAAY,GACS,WAApB3hB,EAAW7Q,MAAqB,CAEjCmh9B,cAAe,aACf,IAEEolE,IAAiC7xgC,EAAAA,GAAAA,KAAKuN,GAAc,CACxD/b,OAAQ,CACN,2BAA4B,CAC1BlI,KAAM,CACJkU,QAAS,UAGb,kCAAmC,CACjClU,KAAM,CACJkU,QAAS,aA2fjB,GAhf+BvL,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,IAAIs/gC,EACJ,MAAMvmhC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,kBAGJ,mBAAoBqghC,EAAe,aACnCC,EAAY,UACZz7G,EAAS,UACTx85B,EAAS,WACToB,EAAa,CAAC,EAAC,gBACf058B,EAAkB,CAAC,EAAC,aACpBv67B,EAAY,SACZ5b,EAAQ,6BACRuzgC,EAA4B,aAC5BvB,EAAY,UACZ/z0B,GAAY,EAAK,GACjB/0K,EAAE,eACFsq/B,EAAiB,QACjBC,WAAYC,EAAiB,CAAC,EAC9BrD,SAAUsD,EAAY,QACtBxD,EAAO,QACPC,EAAO,UACP+B,GAAY,EAAK,KACjBn/gC,EAAI,OACJ2b,EAAM,SACN0u+B,EAAQ,QACR7lsB,EAAO,QACP9oS,EAAO,UACPkg8B,EAAS,QACTC,EAAO,YACPt1xB,EAAW,SACXprK,EAAQ,aACRylgC,EAAY,KACZ709B,EAAI,UACJn3B,EAAY,CAAC,EAAC,MACd9mB,EAAQ,CAAC,EAAC,eACVgxgC,EAAc,KACdllhC,EAAO,OACP1B,MAAO2ohC,GACLhnhC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCnS,EAAgC,MAAxBwohC,EAAexohC,MAAgBwohC,EAAexohC,MAAQ2ohC,GAElEr/gC,QAAS2zB,GACP50B,EAAAA,OAAsB,MAATrI,GACXmlhC,EAAW98gC,EAAAA,SACXughC,EAAwBvghC,EAAAA,aAAkBm1B,IAC1Cg5D,CAAwC,GAK3C,IACGqy7B,GAAiBvr/B,EAAAA,GAAUA,GAAC6n/B,EAAUsD,EAAcD,EAAe5/gC,IAAKgghC,IACvE1t/B,EAAS4t/B,GAAczghC,EAAAA,UAAe,GACvC49gC,EAAiBC,KAUvB,MAAM6C,EAAM/C,GAAiB,CAC3BrkhC,QACAskhC,iBACArxU,OAAQ,CAAC,QAAS,WAAY,QAAS,cAAe,OAAQ,WAAY,YAE5Em0U,EAAI7t/B,QAAU+q/B,EAAiBA,EAAe/q/B,QAAUA,EAIxD7yB,EAAAA,WAAgB,MACT49gC,GAAkBnxgC,GAAYomB,IACjC4t/B,GAAW,GACPrlgC,GACFA,IAEJ,GACC,CAACwigC,EAAgBnxgC,EAAUomB,EAASzX,IACvC,MAAMulgC,EAAW/C,GAAkBA,EAAe+C,SAC5CC,EAAUhD,GAAkBA,EAAegD,QAC3CC,EAAa7ghC,EAAAA,aAAkBmG,IAC/B+3gC,GAAS/3gC,GACPw6gC,GACFA,IAEOC,GACTA,GACF,GACC,CAACD,EAAUC,KACd5r/B,EAAAA,GAAAA,IAAkB,KACZJ,GACFis/B,EAAW,CACTlphC,SAEJ,GACC,CAACA,EAAOkphC,EAAYjs/B,IAuDvB50B,EAAAA,WAAgB,KACd6ghC,EAAW/D,EAAS77gC,QAAQ,GAE3B,IASH,IAAI6/gC,EAAiBb,EACjBC,EAAaC,EACbvB,GAAgC,UAAnBkC,IAObZ,EANE109B,GAMWr+C,EAAAA,GAAAA,GAAS,CACpB9T,UAAMhE,EACNwnhC,QAASrx9B,EACTox9B,QAASpx9B,GACR009B,IAEU/ygC,EAAAA,GAAAA,GAAS,CACpB9T,UAAMhE,EACNunhC,UACAC,WACCqD,GAELY,EAAiBC,IAQnB/ghC,EAAAA,WAAgB,KACV49gC,GACFA,EAAeoD,gBAAgBt14B,QAAQ6y4B,GACzC,GACC,CAACX,EAAgBW,IACpB,MAAMr0gC,IAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,MAAOu2gC,EAAIv2gC,OAAS,UACpBsC,SAAUi0gC,EAAIj0gC,SACdgygC,eACA9tgC,MAAO+vgC,EAAI/vgC,MACXkiB,QAAS6t/B,EAAI7t/B,QACbyr/B,YAAaV,EACblz0B,YACAm00B,YAAa6B,EAAI7B,YACjBD,YACApihC,KAAMkkhC,EAAIlkhC,KACV+hhC,iBACAllhC,SAEIiU,GAtYkBpD,KACxB,MAAM,QACJoD,EAAO,MACPnD,EAAK,SACLsC,EAAQ,MACRkE,EAAK,aACL8tgC,EAAY,QACZ5r/B,EAAO,YACPyr/B,EAAW,UACX5z0B,EAAS,YACTm00B,EAAW,UACXD,EAAS,SACThkgC,EAAQ,KACRpe,EAAI,eACJ+hhC,EAAc,KACdllhC,GACE6Q,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ,QAAFgG,QAAUiL,EAAAA,GAAUA,GAACD,IAAUsC,GAAY,WAAYkE,GAAS,QAAS+5L,GAAa,YAAa73K,GAAW,UAAWyr/B,GAAe,cAAe9hhC,GAAiB,WAATA,GAAqB,OAAJ2C,QAAWiL,EAAAA,GAAUA,GAAC5N,IAASoihC,GAAa,YAAaL,GAAkB,eAAgBE,GAAgB,aAAcI,GAAe,cAAejkgC,GAAY,YAChWuF,MAAO,CAAC,QAAS1T,GAAY,WAAqB,WAATpT,GAAqB,kBAAmBulhC,GAAa,iBAA2B,UAATpihC,GAAoB,iBAAkBqihC,GAAe,mBAAoBN,GAAkB,oBAAqBE,GAAgB,kBAAmB7jgC,GAAY,aAEjR,OAAOpN,EAAAA,GAAcA,GAACD,EAAO6wgC,GAA0B9wgC,EAAQ,EAiX/CG,CAAkBvD,IAC5Bk58B,GAAO718B,EAAMpU,MAAQ+P,EAAWk68B,MAAQi8D,GACxC57D,GAAYpv7B,EAAUl7B,MAAQyp9B,EAAgBzp9B,MAAQ,CAAC,EACvD8nhC,GAAQ1zgC,EAAM4S,OAASjX,EAAW+3gC,OAAS1B,GAEjD,OADAW,GAAa/ygC,EAAAA,GAAAA,GAAS,CAAC,EAAG+ygC,EAAoD,OAAvCL,EAAmBxr/B,EAAUlU,OAAiB0//B,EAAmBj9D,EAAgBzi8B,QACpGzS,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACxCzG,SAAU,EAAEymhC,GAAgCJ,IAAgClygC,EAAAA,GAAAA,MAAM018B,IAAMj28B,EAAAA,GAAAA,GAAS,CAAC,EAAGs28B,IAAY5D,GAAgBuD,KAAS,CACxIl58B,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,GAAYu58B,GAAUv58B,aAC9C,CACD3J,IAAKA,EACL0jT,QAlEgBhqS,IACd6igC,EAAS77gC,SAAWgZ,EAAM49L,gBAAkB59L,EAAMQ,QACpDqigC,EAAS77gC,QAAQoO,QAEf40S,GACFA,EAAQhqS,EACV,GA6DGhN,EAAO,CACRnF,WAAW8F,EAAAA,GAAIA,GAACN,GAAQnU,KAAMsq9B,GAAU378B,UAAWA,EAAW8S,GAAY,yBAC1ErhB,SAAU,CAACglhC,GAA6BxwgC,EAAAA,GAAAA,KAAK+vgC,GAAmB39gC,SAAU,CACxExI,MAAO,KACP4B,UAAuBwU,EAAAA,GAAAA,KAAKkzgC,IAAO9zgC,EAAAA,GAAAA,GAAS,CAC1CjD,WAAYA,GACZ,eAAgBw2gC,EAAI/vgC,MACpB,mBAAoBmvgC,EACpBC,aAAcA,EACdz7G,UAAWA,EACXj84B,aAAcA,EACd5b,SAAUi0gC,EAAIj0gC,SACdkpB,GAAIA,EACJur/B,iBAjDejngC,IAErB4mgC,EAAmC,yBAAxB5mgC,EAAM054B,cAA2CmpH,EAAS77gC,QAAU,CAC7EtJ,MAAO,KACP,EA8CI8H,KAAMA,EACNumL,YAAaA,EACbprK,SAAUA,EACVoY,SAAU0t/B,EAAI1t/B,SACdw4B,KAAMA,EACN7zD,MAAOA,EACP0j9B,UAAWA,EACXC,QAASA,EACTji9B,KAAMA,GACL6mhC,GAAargE,GAAgBohE,KAAU,CACxCtzgC,GAAImzgC,EACJ52gC,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,GAAYg2gC,EAAWh2gC,aAC/C,CACD3J,IAAKighC,EACL14gC,WAAW8F,EAAAA,GAAIA,GAACN,GAAQ6S,MAAO+//B,EAAWp4gC,UAAW8S,GAAY,yBACjEQ,OAvIWnB,IACbmB,GACFA,EAAOnB,GAELkmgC,EAAe/kgC,QACjB+kgC,EAAe/kgC,OAAOnB,GAEpB2jgC,GAAkBA,EAAexigC,OACnCwigC,EAAexigC,OAAOnB,GAEtBwmgC,GAAW,EACb,EA6HM32B,SA3Ha,SAAC7v+B,GACpB,IAAK2a,EAAc,CACjB,MAAMz5B,EAAU8e,EAAMQ,QAAUqigC,EAAS77gC,QACzC,GAAe,MAAX9F,EACF,MAAM,IAAIoL,OAA2NsL,EAAAA,GAAAA,GAAuB,IAE9PgvgC,EAAW,CACTlphC,MAAOwD,EAAQxD,OAEnB,CAAC,QAAA2J,EAAAC,UAAA3M,OAT6B4M,EAAI,IAAApD,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,EAAA,GAAAF,UAAAE,GAU9B0+gC,EAAer2B,UACjBq2B,EAAer2B,SAAS7v+B,KAAUzY,GAIhCso/B,GACFA,EAAS7v+B,KAAUzY,EAEvB,EA0GQ2Z,QA5JYlB,IAGdymgC,EAAIj0gC,SACNwN,EAAM+4P,mBAGJ73P,GACFA,EAAQlB,GAENkmgC,EAAehlgC,SACjBglgC,EAAehlgC,QAAQlB,GAErB2jgC,GAAkBA,EAAezigC,QACnCyigC,EAAezigC,QAAQlB,GAEvBwmgC,GAAW,GACb,OA6IMhC,EAAc4B,EAAeA,GAAalzgC,EAAAA,GAAAA,GAAS,CAAC,EAAGuzgC,EAAK,CAC9DnC,oBACI,WAGZ,IC1dO,SAAS4C,GAAqBx3gC,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,CACA,MACA,IADqBwD,EAAAA,GAAAA,GAAS,CAAC,EAAGmygC,IAAkBz1gC,EAAAA,GAAsBA,GAAC,WAAY,CAAC,OAAQ,YAAa,WCHvGC,GAAY,CAAC,mBAAoB,aAAc,kBAAmB,YAAa,iBAAkB,YAAa,YAAa,QAAS,QAwBpIs3gC,IAAYp3gC,EAAAA,GAAMA,IAACq1gC,GAAe,CACtCnjgC,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,IAAI+nhC,GAA+B/nhC,EAAOiG,IAAU2K,EAAWo3gC,kBAAoB/hhC,EAAOgihC,UAAU,GAR7Fv3gC,EAUfqY,IAGG,IAHF,MACFpZ,EAAK,WACLiB,GACDmY,EAEC,IAAIm//B,EADiC,UAAvBv4gC,EAAMoD,QAAQgE,KACE,sBAAwB,2BAItD,OAHIpH,EAAMmD,OACRo1gC,EAAkB,QAAHrihC,OAAW8J,EAAMmD,KAAKC,QAAQyC,OAAO2ygC,oBAAmB,OAAAtihC,OAAM8J,EAAMmD,KAAKtI,QAAQ49gC,eAAc,OAEzGv0gC,EAAAA,GAAAA,GAAS,CACdpU,SAAU,YACTmR,EAAWo0gC,aAAe,CAC3B,YAAa,CACXzx/B,UAAW,MAEX3iB,EAAWo3gC,kBAAoB,CACjC,WAAY,CACVt3/B,aAAc,aAAF7qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,MAC3EyiB,KAAM,EACND,OAAQ,EAER8nX,QAAS,KACT79Y,SAAU,WACV81B,MAAO,EACP7H,UAAW,YACXtb,WAAYzC,EAAM0C,YAAY9L,OAAO,YAAa,CAChD+L,SAAU3C,EAAM0C,YAAYC,SAASC,QACrCqK,OAAQjN,EAAM0C,YAAYuK,OAAOE,UAEnCyjM,cAAe,QAEjB,CAAC,KAAD16M,OAAMu66B,GAAa7m5B,QAAO,WAAW,CAGnC7L,UAAW,2BAEb,CAAC,KAAD7nB,OAAMu66B,GAAa/o6B,QAAU,CAC3B,sBAAuB,CACrB0Z,mBAAoBphB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,OAG3D,YAAa,CACX0d,aAAc,aAAF7qB,OAAeqihC,GAC3Bzy/B,KAAM,EACND,OAAQ,EAER8nX,QAAS,WACT79Y,SAAU,WACV81B,MAAO,EACPnjB,WAAYzC,EAAM0C,YAAY9L,OAAO,sBAAuB,CAC1D+L,SAAU3C,EAAM0C,YAAYC,SAASC,UAEvCguM,cAAe,QAEjB,CAAC,gBAAD16M,OAAiBu66B,GAAajt6B,SAAQ,OAAAtN,OAAMu66B,GAAa/o6B,MAAK,aAAa,CACzEqZ,aAAc,aAAF7qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,SAE9D,uBAAwB,CACtBub,aAAc,aAAF7qB,OAAeqihC,KAG/B,CAAC,KAADrihC,OAAMu66B,GAAajt6B,SAAQ,YAAY,CACrCk1gC,kBAAmB,WAErB,IAEEC,IAAa53gC,EAAAA,GAAMA,IAAC63gC,GAAgB,CACxCpihC,KAAM,WACNkK,KAAM,QACNM,kBAAmB63gC,IAHF93gC,CAIhB,CAAC,GACEi3gC,GAAqBjhhC,EAAAA,YAAiB,SAAe2M,EAASpM,GAClE,IAAI+J,EAAMi48B,EAAax58B,EAAOg5gC,EAC9B,MAAMzohC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,cAEF,iBACF6hhC,EAAgB,WAChBp4gC,EAAa,CAAC,EACd058B,gBAAiBo/D,EAAmB,UACpCt30B,GAAY,EAAK,eACjBu10B,EAAiB,QAAO,UACxBrB,GAAY,EAAK,UACjBvq/B,EAAS,MACT9mB,EAAQ,CAAC,EAAC,KACVlU,EAAO,QACLC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCwD,EA/GkBpD,KACxB,MAAM,QACJoD,EAAO,iBACPg0gC,GACEp3gC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QAASmohC,GAAoB,aACpCnhgC,MAAO,CAAC,UAEJ297B,GAAkBtw8B,EAAAA,GAAcA,GAACD,EAAO4zgC,GAAsB7zgC,GACpE,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EAqG7Brw8B,CAAkBnU,GAI5B2ohC,EAAuB,CAC3B9ohC,KAAM,CACJ+Q,WALe,CACjBo3gC,sBAOI1+D,GAAgC,MAAbvu7B,EAAoBA,EAAY2t/B,IAAuB/vgC,EAAAA,GAASA,GAAc,MAAboiB,EAAoBA,EAAY2t/B,EAAqBC,GAAwBA,EACjK9+D,EAA0F,OAA9E748B,EAAqC,OAA7Bi48B,EAAch18B,EAAMpU,MAAgBop9B,EAAcr58B,EAAWk68B,MAAgB948B,EAAO82gC,GACxGc,EAAgG,OAAnFn5gC,EAAwC,OAA/Bg5gC,EAAex0gC,EAAM4S,OAAiB4hgC,EAAe74gC,EAAW+3gC,OAAiBl4gC,EAAQ64gC,GACrH,OAAoB7zgC,EAAAA,GAAAA,KAAKo0gC,IAAWh1gC,EAAAA,GAAAA,GAAS,CAC3CI,MAAO,CACLpU,KAAMgq9B,EACNhj8B,MAAO+hgC,GAET7t/B,UAAWuu7B,EACXl4wB,UAAWA,EACXu10B,eAAgBA,EAChBrB,UAAWA,EACXr+gC,IAAKA,EACLlH,KAAMA,GACL4T,EAAO,CACRK,QAASA,IAEb,IA2LA2zgC,GAAMjzgC,QAAU,QAChB,YCjVO,SAASo0gC,GAA2Bz4gC,GACzC,OAAOC,EAAAA,GAAAA,IAAqB,iBAAkBD,EAChD,CACA,MACA,IAD2BwD,EAAAA,GAAAA,GAAS,CAAC,EAAGmygC,IAAkBz1gC,EAAAA,GAAsBA,GAAC,iBAAkB,CAAC,OAAQ,YAAa,WCHnHC,GAAY,CAAC,mBAAoB,aAAc,kBAAmB,YAAa,cAAe,iBAAkB,YAAa,YAAa,QAAS,QAwBnJu4gC,IAAkBr4gC,EAAAA,GAAMA,IAACq1gC,GAAe,CAC5CnjgC,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,iBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,IAAI+nhC,GAA+B/nhC,EAAOiG,IAAU2K,EAAWo3gC,kBAAoB/hhC,EAAOgihC,UAAU,GARvFv3gC,EAUrBqY,IAGG,IAHF,MACFpZ,EAAK,WACLiB,GACDmY,EACC,IAAIpX,EACJ,MAAMsD,EAA+B,UAAvBtF,EAAMoD,QAAQgE,KACtBmxgC,EAAkBjzgC,EAAQ,sBAAwB,2BAClD+c,EAAkB/c,EAAQ,sBAAwB,4BAClD+zgC,EAAkB/zgC,EAAQ,sBAAwB,4BAClDY,EAAqBZ,EAAQ,sBAAwB,4BAC3D,OAAOpB,EAAAA,GAAAA,GAAS,CACdpU,SAAU,WACVuyB,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQk2gC,YAAYps9B,GAAK7qC,EAClEyt9B,qBAAsB9v+B,EAAMmD,MAAQnD,GAAO4d,MAAMH,aACjDsy9B,sBAAuB/v+B,EAAMmD,MAAQnD,GAAO4d,MAAMH,aAClDhb,WAAYzC,EAAM0C,YAAY9L,OAAO,mBAAoB,CACvD+L,SAAU3C,EAAM0C,YAAYC,SAASC,QACrCqK,OAAQjN,EAAM0C,YAAYuK,OAAOE,UAEnC,UAAW,CACTkV,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQk2gC,YAAYC,QAAUF,EAEvE,uBAAwB,CACtBh3/B,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQk2gC,YAAYps9B,GAAK7qC,IAGtE,CAAC,KAADnsB,OAAMsjhC,GAAmB5v/B,UAAY,CACnCvH,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQk2gC,YAAYps9B,GAAK7qC,GAEpE,CAAC,KAADnsB,OAAMsjhC,GAAmBh2gC,WAAa,CACpC6e,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQk2gC,YAAYG,WAAavzgC,KAE1EjF,EAAWo3gC,kBAAoB,CACjC,WAAY,CACVt3/B,aAAc,aAAF7qB,OAA4F,OAA5E8L,GAAYhC,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAS,iBAAsB,EAASc,EAASqB,MACjIyiB,KAAM,EACND,OAAQ,EAER8nX,QAAS,KACT79Y,SAAU,WACV81B,MAAO,EACP7H,UAAW,YACXtb,WAAYzC,EAAM0C,YAAY9L,OAAO,YAAa,CAChD+L,SAAU3C,EAAM0C,YAAYC,SAASC,QACrCqK,OAAQjN,EAAM0C,YAAYuK,OAAOE,UAEnCyjM,cAAe,QAEjB,CAAC,KAAD16M,OAAMsjhC,GAAmB5v/B,QAAO,WAAW,CAGzC7L,UAAW,2BAEb,CAAC,KAAD7nB,OAAMsjhC,GAAmB9xgC,QAAU,CACjC,sBAAuB,CACrB0Z,mBAAoBphB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,OAG3D,YAAa,CACX0d,aAAc,aAAF7qB,OAAe8J,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQyC,OAAO2ygC,oBAAmB,OAAAtihC,OAAM8J,EAAMmD,KAAKtI,QAAQ49gC,eAAc,KAAMF,GAC1Izy/B,KAAM,EACND,OAAQ,EAER8nX,QAAS,WACT79Y,SAAU,WACV81B,MAAO,EACPnjB,WAAYzC,EAAM0C,YAAY9L,OAAO,sBAAuB,CAC1D+L,SAAU3C,EAAM0C,YAAYC,SAASC,UAEvCguM,cAAe,QAEjB,CAAC,gBAAD16M,OAAiBsjhC,GAAmBh2gC,SAAQ,OAAAtN,OAAMsjhC,GAAmB9xgC,MAAK,aAAa,CACrFqZ,aAAc,aAAF7qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,UAEhE,CAAC,KAADtP,OAAMsjhC,GAAmBh2gC,SAAQ,YAAY,CAC3Ck1gC,kBAAmB,WAEpBz3gC,EAAWq0gC,gBAAkB,CAC9Bvy/B,YAAa,IACZ9hB,EAAWu0gC,cAAgB,CAC5B3y/B,aAAc,IACb5hB,EAAW00gC,YAAazxgC,EAAAA,GAAAA,GAAS,CAClC+b,QAAS,iBACY,UAApBhf,EAAW1N,MAAoB,CAChCqvB,WAAY,GACZE,cAAe,GACd7hB,EAAW20gC,aAAe,CAC3Bhz/B,WAAY,GACZE,cAAe,IACd7hB,EAAW20gC,aAAmC,UAApB30gC,EAAW1N,MAAoB,CAC1DqvB,WAAY,EACZE,cAAe,IACd,IAEC42/B,IAAmB34gC,EAAAA,GAAMA,IAAC63gC,GAAgB,CAC9CpihC,KAAM,iBACNkK,KAAM,QACNM,kBAAmB63gC,IAHI93gC,EAItBwszB,IAAA,IAAC,MACFvtzB,EAAK,WACLiB,GACDsszB,EAAA,OAAKrpzB,EAAAA,GAAAA,GAAS,CACb0e,WAAY,GACZC,aAAc,GACdC,cAAe,EACfC,YAAa,KACX/iB,EAAMmD,MAAQ,CAChB,qBAAsB,CACpBw2gC,gBAAwC,UAAvB35gC,EAAMoD,QAAQgE,KAAmB,KAAO,4BACzDsvgC,oBAA4C,UAAvB12gC,EAAMoD,QAAQgE,KAAmB,KAAO,OAC7DwygC,WAAmC,UAAvB55gC,EAAMoD,QAAQgE,KAAmB,KAAO,OACpD0o+B,oBAAqB,UACrBC,qBAAsB,YAEvB/v+B,EAAMmD,MAAQ,CACf,qBAAsB,CACpB2s+B,oBAAqB,UACrBC,qBAAsB,WAExB,CAAC/v+B,EAAMyc,uBAAuB,SAAU,CACtC,qBAAsB,CACpBk9/B,gBAAiB,4BACjBjD,oBAAqB,OACrBkD,WAAY,UAGK,UAApB34gC,EAAW1N,MAAoB,CAChCqvB,WAAY,GACZE,cAAe,GACd7hB,EAAW20gC,aAAe,CAC3Bhz/B,WAAY,GACZE,cAAe,IACd7hB,EAAWq0gC,gBAAkB,CAC9Bvy/B,YAAa,GACZ9hB,EAAWu0gC,cAAgB,CAC5B3y/B,aAAc,GACb5hB,EAAW20gC,aAAmC,UAApB30gC,EAAW1N,MAAoB,CAC1DqvB,WAAY,EACZE,cAAe,GACd7hB,EAAW00gC,WAAa,CACzB/y/B,WAAY,EACZE,cAAe,EACfC,YAAa,EACbF,aAAc,GACd,IACIy2/B,GAA2BvihC,EAAAA,YAAiB,SAAqB2M,EAASpM,GAC9E,IAAI+J,EAAMi48B,EAAax58B,EAAOg5gC,EAC9B,MAAMzohC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,oBAEF,WACFyJ,EAAa,CAAC,EACd058B,gBAAiBo/D,EAAmB,UACpCt30B,GAAY,EAAK,eAEjBu10B,EAAiB,QAAO,UACxBrB,GAAY,EAAK,UACjBvq/B,EAAS,MACT9mB,EAAQ,CAAC,EAAC,KACVlU,EAAO,QACLC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCoxM,YACAu10B,iBACArB,YACAvlhC,SAEIiU,EA/LkBpD,KACxB,MAAM,QACJoD,EAAO,iBACPg0gC,GACEp3gC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QAASmohC,GAAoB,aACpCnhgC,MAAO,CAAC,UAEJ297B,GAAkBtw8B,EAAAA,GAAcA,GAACD,EAAO60gC,GAA4B90gC,GAC1E,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EAqL7Brw8B,CAAkBnU,GAC5BwphC,EAA6B,CACjC3phC,KAAM,CACJ+Q,cAEFiW,MAAO,CACLjW,eAGE048B,GAAgC,MAAbvu7B,EAAoBA,EAAY2t/B,IAAuB/vgC,EAAAA,GAASA,GAAC6wgC,EAAyC,MAAbzu/B,EAAoBA,EAAY2t/B,GAAuBc,EACvK3/D,EAA0F,OAA9E748B,EAAqC,OAA7Bi48B,EAAch18B,EAAMpU,MAAgBop9B,EAAcr58B,EAAWk68B,MAAgB948B,EAAO+3gC,GACxGH,EAAgG,OAAnFn5gC,EAAwC,OAA/Bg5gC,EAAex0gC,EAAM4S,OAAiB4hgC,EAAe74gC,EAAW+3gC,OAAiBl4gC,EAAQ45gC,GACrH,OAAoB50gC,EAAAA,GAAAA,KAAKo0gC,IAAWh1gC,EAAAA,GAAAA,GAAS,CAC3CI,MAAO,CACLpU,KAAMgq9B,EACNhj8B,MAAO+hgC,GAETt/D,gBAAiBA,EACjBl4wB,UAAWA,EACXu10B,eAAgBA,EAChBrB,UAAWA,EACXr+gC,IAAKA,EACLlH,KAAMA,GACL4T,EAAO,CACRK,QAASA,IAEb,IAkMAi1gC,GAAYv0gC,QAAU,QACtB,YCxaA,IAAI+0gC,GACJ,MAAMj5gC,GAAY,CAAC,WAAY,UAAW,YAAa,QAAS,WAK1Dk5gC,IAAqBh5gC,EAAAA,GAAMA,IAAC,WAAY,CAC5CkS,kBAAmBpE,GAAqBA,GADf9N,CAExB,CACDmlB,UAAW,OACXp2B,SAAU,WACV+1B,OAAQ,EACRD,MAAO,EACPD,KAAM,EACNG,KAAM,EACN9F,OAAQ,EACRC,QAAS,QACT2wL,cAAe,OACfnzL,aAAc,UACdg07B,YAAa,QACbl2pB,YAAa,EACbh3R,SAAU,SACVrC,SAAU,OAEN83/B,IAAuBj5gC,EAAAA,GAAMA,IAAC,SAAU,CAC5CkS,kBAAmBpE,GAAqBA,GADb9N,EAE1BM,IAAA,IAAC,WACFJ,EAAU,MACVjB,GACDqB,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbs8c,MAAO,QAEPp+c,MAAO,OAEPmiB,SAAU,WACRtjB,EAAWg5gC,WAAa,CAC1Bh6/B,QAAS,EACTrlB,WAAY,OAEZ6H,WAAYzC,EAAM0C,YAAY9L,OAAO,QAAS,CAC5C+L,SAAU,IACVsK,OAAQjN,EAAM0C,YAAYuK,OAAOE,WAElClM,EAAWg5gC,YAAa/1gC,EAAAA,GAAAA,GAAS,CAClC5B,QAAS,QAET2d,QAAS,EACT5d,OAAQ,GAERjB,SAAU,SACVqjB,WAAY,SACZ3C,SAAU,IACVrf,WAAYzC,EAAM0C,YAAY9L,OAAO,YAAa,CAChD+L,SAAU,GACVsK,OAAQjN,EAAM0C,YAAYuK,OAAOE,UAEnCuX,WAAY,SACZ,WAAY,CACV3B,YAAa,EACbF,aAAc,EACdvgB,QAAS,eACTzH,QAAS,EACT4pB,WAAY,YAEbxjB,EAAWq3U,SAAW,CACvBx2T,SAAU,OACVrf,WAAYzC,EAAM0C,YAAY9L,OAAO,YAAa,CAChD+L,SAAU,IACVsK,OAAQjN,EAAM0C,YAAYuK,OAAOE,QACjCkB,MAAO,OAER,ICvEI,SAAS6rgC,GAA6Bx5gC,GAC3C,OAAOC,EAAAA,GAAAA,IAAqB,mBAAoBD,EAClD,CACA,MACA,IAD6BwD,EAAAA,GAAAA,GAAS,CAAC,EAAGmygC,IAAkBz1gC,EAAAA,GAAsBA,GAAC,mBAAoB,CAAC,OAAQ,iBAAkB,WCH5HC,GAAY,CAAC,aAAc,YAAa,iBAAkB,QAAS,YAAa,UAAW,QAAS,QA0BpGs5gC,IAAoBp5gC,EAAAA,GAAMA,IAACq1gC,GAAe,CAC9CnjgC,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,mBACNkK,KAAM,OACNM,kBAAmBo3gC,IAJKr3gC,EAKvBqY,IAGG,IAHF,MACFpZ,EAAK,WACLiB,GACDmY,EACC,MAAM6H,EAAqC,UAAvBjhB,EAAMoD,QAAQgE,KAAmB,sBAAwB,4BAC7E,OAAOlD,EAAAA,GAAAA,GAAS,CACdpU,SAAU,WACV2tB,cAAezd,EAAMmD,MAAQnD,GAAO4d,MAAMH,aAC1C,CAAC,YAADvnB,OAAakkhC,GAAqBC,iBAAmB,CACnDp5/B,aAAcjhB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,SAGlD,uBAAwB,CACtB,CAAC,YAADtP,OAAakkhC,GAAqBC,iBAAmB,CACnDp5/B,YAAajhB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQyC,OAAO2ygC,oBAAmB,YAAav3/B,IAGhG,CAAC,KAAD/qB,OAAMkkhC,GAAqBxw/B,QAAO,MAAA1zB,OAAKkkhC,GAAqBC,iBAAmB,CAC7Ep5/B,aAAcjhB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,KAC7Dk4S,YAAa,GAEf,CAAC,KAADrlT,OAAMkkhC,GAAqB1ygC,MAAK,MAAAxR,OAAKkkhC,GAAqBC,iBAAmB,CAC3Ep5/B,aAAcjhB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,MAEnD,CAAC,KAADnN,OAAMkkhC,GAAqB52gC,SAAQ,MAAAtN,OAAKkkhC,GAAqBC,iBAAmB,CAC9Ep5/B,aAAcjhB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOE,WAEnDvC,EAAWq0gC,gBAAkB,CAC9Bvy/B,YAAa,IACZ9hB,EAAWu0gC,cAAgB,CAC5B3y/B,aAAc,IACb5hB,EAAW00gC,YAAazxgC,EAAAA,GAAAA,GAAS,CAClC+b,QAAS,eACY,UAApBhf,EAAW1N,MAAoB,CAChC0sB,QAAS,eACR,IAEC85/B,IAAqBh5gC,EAAAA,GAAMA,KFQlB,SAAwB1Q,GACrC,MAAM,UACFwO,EAAS,MACT6U,EAAK,QACL4kU,GACEjoV,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCo5gC,EAAqB,MAATvmgC,GAA2B,KAAVA,EAC7BzS,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCioV,UACA2hsB,cAEF,OAAoBn1gC,EAAAA,GAAAA,KAAKi1gC,IAAoB71gC,EAAAA,GAAAA,GAAS,CACpD,eAAe,EACfrF,UAAWA,EACXoC,WAAYA,GACX+C,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKk1gC,GAAsB,CAChD/4gC,WAAYA,EACZ3Q,SAAU2phC,GAAyBn1gC,EAAAA,GAAAA,KAAK,OAAQ,CAC9CxU,SAAUojB,IAEZomgC,KAAUA,IAAqBh1gC,EAAAA,GAAAA,KAAK,OAAQ,CAC1CjG,UAAW,cACXvO,SAAU,gBAIlB,GEpCkD,CAChDkG,KAAM,mBACNkK,KAAM,iBACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAO+jhC,gBAHpBt5gC,EAIxBwszB,IAEG,IAFF,MACFvtzB,GACDutzB,EACC,MAAMtsyB,EAAqC,UAAvBjhB,EAAMoD,QAAQgE,KAAmB,sBAAwB,4BAC7E,MAAO,CACL6Z,YAAajhB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQyC,OAAO2ygC,oBAAmB,YAAav3/B,EAC7F,IAEGq5/B,IAAqBv5gC,EAAAA,GAAMA,IAAC63gC,GAAgB,CAChDpihC,KAAM,mBACNkK,KAAM,QACNM,kBAAmB63gC,IAHM93gC,EAIxBqtzB,IAAA,IAAC,MACFpuzB,EAAK,WACLiB,GACDmtzB,EAAA,OAAKlqzB,EAAAA,GAAAA,GAAS,CACb+b,QAAS,gBACPjgB,EAAMmD,MAAQ,CAChB,qBAAsB,CACpBw2gC,gBAAwC,UAAvB35gC,EAAMoD,QAAQgE,KAAmB,KAAO,4BACzDsvgC,oBAA4C,UAAvB12gC,EAAMoD,QAAQgE,KAAmB,KAAO,OAC7DwygC,WAAmC,UAAvB55gC,EAAMoD,QAAQgE,KAAmB,KAAO,OACpDqW,aAAc,YAEfzd,EAAMmD,MAAQ,CACf,qBAAsB,CACpBsa,aAAc,WAEhB,CAACzd,EAAMyc,uBAAuB,SAAU,CACtC,qBAAsB,CACpBk9/B,gBAAiB,4BACjBjD,oBAAqB,OACrBkD,WAAY,UAGK,UAApB34gC,EAAW1N,MAAoB,CAChC0sB,QAAS,cACRhf,EAAW00gC,WAAa,CACzB11/B,QAAS,GACRhf,EAAWq0gC,gBAAkB,CAC9Bvy/B,YAAa,GACZ9hB,EAAWu0gC,cAAgB,CAC5B3y/B,aAAc,GACd,IACI03/B,GAA6BxjhC,EAAAA,YAAiB,SAAuB2M,EAASpM,GAClF,IAAI+J,EAAMi48B,EAAax58B,EAAOg5gC,EAAc0B,EAC5C,MAAMnqhC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,sBAEF,WACFyJ,EAAa,CAAC,EAAC,UACfwhM,GAAY,EAAK,eACjBu10B,EAAiB,QAAO,MACxBtjgC,EAAK,UACLiigC,GAAY,EAAK,QACjBr9rB,EAAO,MACPh0U,EAAQ,CAAC,EAAC,KACVlU,EAAO,QACLC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCwD,EAvHkBpD,KACxB,MAAM,QACJoD,GACEpD,EAME4z8B,GAAkBtw8B,EAAAA,GAAcA,GALxB,CACZrU,KAAM,CAAC,QACPmqhC,eAAgB,CAAC,kBACjBnjgC,MAAO,CAAC,UAEoCgjgC,GAA8B71gC,GAC5E,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EA6G7Brw8B,CAAkBnU,GAC5BskhC,EAAiBC,KACjB6C,EAAM/C,GAAiB,CAC3BrkhC,QACAskhC,iBACArxU,OAAQ,CAAC,QAAS,WAAY,QAAS,UAAW,cAAe,OAAQ,cAErErisB,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,MAAOu2gC,EAAIv2gC,OAAS,UACpBsC,SAAUi0gC,EAAIj0gC,SACdkE,MAAO+vgC,EAAI/vgC,MACXkiB,QAAS6t/B,EAAI7t/B,QACbyr/B,YAAaV,EACblz0B,YACAm00B,YAAa6B,EAAI7B,YACjBD,YACApihC,KAAMkkhC,EAAIlkhC,KACVnD,SAEI8p9B,EAA0F,OAA9E748B,EAAqC,OAA7Bi48B,EAAch18B,EAAMpU,MAAgBop9B,EAAcr58B,EAAWk68B,MAAgB948B,EAAO84gC,GACxGlB,EAAgG,OAAnFn5gC,EAAwC,OAA/Bg5gC,EAAex0gC,EAAM4S,OAAiB4hgC,EAAe74gC,EAAW+3gC,OAAiBl4gC,EAAQw6gC,GACrH,OAAoBx1gC,EAAAA,GAAAA,KAAKo0gC,IAAWh1gC,EAAAA,GAAAA,GAAS,CAC3CI,MAAO,CACLpU,KAAMgq9B,EACNhj8B,MAAO+hgC,GAET7B,aAAc1r/B,IAAsB5mB,EAAAA,GAAAA,KAAKi1gC,GAAoB,CAC3D94gC,WAAYA,EACZpC,UAAWwF,EAAQg2gC,eACnB3mgC,MAAgB,MAATA,GAA2B,KAAVA,GAAgB+jgC,EAAI1t/B,SAAWyw/B,IAAoBA,GAA+B/1gC,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CAC9HzG,SAAU,CAACojB,EAAO,SAAU,QACxBA,EACN4kU,QAA4B,qBAAZA,EAA0BA,EAAU71M,QAAQ/2G,EAAM4p/B,gBAAkB5p/B,EAAMs5c,QAAUt5c,EAAM9B,WAE5G63K,UAAWA,EACXu10B,eAAgBA,EAChBrB,UAAWA,EACXr+gC,IAAKA,EACLlH,KAAMA,GACL4T,EAAO,CACRK,SAASH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAAS,CAC7Bg2gC,eAAgB,SAGtB,IAuKAE,GAAcx1gC,QAAU,QACxB,YC3VO,SAAS01gC,GAA2B/5gC,GACzC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,CACA,MACA,IADyBE,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,OAAQ,iBAAkB,UAAW,WAAY,QAAS,SAAU,WAAY,aCD3IC,GAAY,CAAC,WAAY,YAAa,QAAS,YAAa,WAAY,QAAS,SAAU,UAAW,YA4B/F65gC,IAAgB35gC,EAAAA,GAAMA,IAAC,QAAS,CAC3CvK,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAAK,EAEhB/K,KAAW,IAFM,WAClB2K,GACDI,EACC,OAAO6C,EAAAA,GAAAA,GAAS,CAAC,EAAG5N,EAAOpG,KAA2B,cAArB+Q,EAAWC,OAAyB5K,EAAOqkhC,eAAgB15gC,EAAW+je,QAAU1ue,EAAO0ue,OAAO,GANtGjke,EAQ1BjB,IAAA,IAAC,MACFE,EAAK,WACLiB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACbhD,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,WACzCzF,EAAM+C,WAAW4H,MAAO,CACzB/P,WAAY,WACZqlB,QAAS,EACTnwB,SAAU,WACV,CAAC,KAADoG,OAAM0khC,GAAiBhx/B,UAAY,CACjC1oB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,MAEzD,CAAC,KAADnN,OAAM0khC,GAAiBp3gC,WAAa,CAClCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAK/B,UAE5C,CAAC,KAADtN,OAAM0khC,GAAiBlzgC,QAAU,CAC/BxG,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,OAE7C,IACIw3gC,IAAoB95gC,EAAAA,GAAMA,IAAC,OAAQ,CACvCvK,KAAM,eACNkK,KAAM,WACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOo1K,UAHrB3qK,EAIvBqY,IAAA,IAAC,MACFpZ,GACDoZ,EAAA,MAAM,CACL,CAAC,KAADljB,OAAM0khC,GAAiBlzgC,QAAU,CAC/BxG,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,MAE9C,IA+FD,GA9F+BtM,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,kBAEF,SACFlG,EAAQ,UACRuO,EAAS,UACT8E,EAAY,SACVtT,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAEzC42gC,EAAM/C,GAAiB,CAC3BrkhC,QACAskhC,eAHqBC,KAIrBtxU,OAAQ,CAAC,QAAS,WAAY,UAAW,WAAY,QAAS,YAE1DrisB,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,MAAOu2gC,EAAIv2gC,OAAS,UACpByC,YACAH,SAAUi0gC,EAAIj0gC,SACdkE,MAAO+vgC,EAAI/vgC,MACXs9d,OAAQyyiB,EAAIzyiB,OACZp7c,QAAS6t/B,EAAI7t/B,QACbG,SAAU0t/B,EAAI1t/B,WAEV1lB,EAhFkBpD,KACxB,MAAM,QACJoD,EAAO,MACPnD,EAAK,QACL0oB,EAAO,SACPpmB,EAAQ,MACRkE,EAAK,OACLs9d,EAAM,SACNj7c,GACE9oB,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ,QAAFgG,QAAUiL,EAAAA,GAAUA,GAACD,IAAUsC,GAAY,WAAYkE,GAAS,QAASs9d,GAAU,SAAUp7c,GAAW,UAAWG,GAAY,YAC5I2hJ,SAAU,CAAC,WAAYhkK,GAAS,UAElC,OAAOnD,EAAAA,GAAcA,GAACD,EAAOm2gC,GAA4Bp2gC,EAAQ,EAkEjDG,CAAkBvD,GAClC,OAAoBwD,EAAAA,GAAAA,MAAMi2gC,IAAex2gC,EAAAA,GAAAA,GAAS,CAChDQ,GAAIf,EACJ1C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,EAAO,CACR1T,SAAU,CAACA,EAAUmnhC,EAAI1t/B,WAAyBtlB,EAAAA,GAAAA,MAAMo2gC,GAAmB,CACzE55gC,WAAYA,EACZ,eAAe,EACfpC,UAAWwF,EAAQqnK,SACnBp7K,SAAU,CAAC,SAAU,UAG3B,IC5GO,SAASwqhC,GAA4Bp6gC,GAC1C,OAAOC,EAAAA,GAAAA,IAAqB,gBAAiBD,EAC/C,EAC0BE,EAAAA,GAAsBA,GAAC,gBAAiB,CAAC,OAAQ,UAAW,WAAY,QAAS,WAAY,WAAY,cAAe,YAAa,SAAU,WAAY,WAAY,SAAU,aAA3M,MCDMC,GAAY,CAAC,mBAAoB,SAAU,SAAU,UAAW,aA8BhEk6gC,IAAiBh6gC,EAAAA,GAAMA,IAACi6gC,GAAW,CACvC/ngC,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,gBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAAC,CACN,CAAC,MAAD6F,OAAO0khC,GAAiBlv2B,WAAap1K,EAAOo1K,UAC3Cp1K,EAAOpG,KAAM+Q,EAAWo0gC,aAAe/+gC,EAAO++gC,YAAiC,UAApBp0gC,EAAW1N,MAAoB+C,EAAOo/gC,UAAWz0gC,EAAWg6gC,QAAU3khC,EAAO2khC,QAASh6gC,EAAWi6gC,kBAAoB5khC,EAAO6khC,SAAUl6gC,EAAW2oB,SAAWtzB,EAAOszB,QAAStzB,EAAO2K,EAAWyZ,SAAS,GAVlP3Z,EAYpBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,QACT828B,gBAAiB,WACjB107B,WAAY,SACZH,SAAU,SACVC,aAAc,WACd1C,SAAU,QACT7gB,EAAWo0gC,aAAe,CAC3BvlhC,SAAU,WACVg2B,KAAM,EACNH,IAAK,EAEL5H,UAAW,+BACU,UAApB9c,EAAW1N,MAAoB,CAEhCwqB,UAAW,+BACV9c,EAAWg6gC,QAAU,CACtBl9/B,UAAW,mCACXq77B,gBAAiB,WACjBt37B,SAAU,SACR7gB,EAAWi6gC,kBAAoB,CACjCz4gC,WAAYzC,EAAM0C,YAAY9L,OAAO,CAAC,QAAS,YAAa,aAAc,CACxE+L,SAAU3C,EAAM0C,YAAYC,SAASC,QACrCqK,OAAQjN,EAAM0C,YAAYuK,OAAOE,WAEX,WAAvBlM,EAAWyZ,UAAwBxW,EAAAA,GAAAA,GAAS,CAK7C/I,OAAQ,EACRy1M,cAAe,OACf7yL,UAAW,iCACX+D,SAAU,qBACW,UAApB7gB,EAAW1N,MAAoB,CAChCwqB,UAAW,kCACV9c,EAAWg6gC,SAAU/2gC,EAAAA,GAAAA,GAAS,CAC/B/B,WAAY,OACZyuM,cAAe,OACf7yL,UAAW,mCACX+D,SAAU,qBACW,UAApB7gB,EAAW1N,MAAoB,CAChCwqB,UAAW,sCACe,aAAvB9c,EAAWyZ,UAA0BxW,EAAAA,GAAAA,GAAS,CAEjD/I,OAAQ,EACRy1M,cAAe,OACf7yL,UAAW,iCACX+D,SAAU,qBACW,UAApB7gB,EAAW1N,MAAoB,CAChCwqB,UAAW,iCACV9c,EAAWg6gC,QAAU,CACtB94gC,WAAY,OACZyuM,cAAe,OAGf9uL,SAAU,oBACV/D,UAAW,sCACV,IA4GH,GA3GgChnB,EAAAA,YAAiB,SAAoB2M,EAASpM,GAC5E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BrJ,KAAM,gBACNnG,MAAOqT,KAEH,iBACFw3gC,GAAmB,EACnBD,OAAQG,EAAU,UAClBv8gC,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC8zgC,EAAiBC,KACvB,IAAIqG,EAASG,EACS,qBAAXH,GAA0BtG,IACnCsG,EAAStG,EAAe3viB,QAAU2viB,EAAe/q/B,SAAW+q/B,EAAeY,cAE7E,MAAMkC,EAAM/C,GAAiB,CAC3BrkhC,QACAskhC,iBACArxU,OAAQ,CAAC,OAAQ,UAAW,WAAY,aAEpCrisB,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6qhC,mBACA7F,YAAaV,EACbsG,SACA1nhC,KAAMkkhC,EAAIlkhC,KACVmnB,QAAS+8/B,EAAI/8/B,QACbqP,SAAU0t/B,EAAI1t/B,SACdH,QAAS6t/B,EAAI7t/B,UAETvlB,EAzHkBpD,KACxB,MAAM,QACJoD,EAAO,YACPgxgC,EAAW,KACX9hhC,EAAI,OACJ0nhC,EAAM,iBACNC,EAAgB,QAChBxggC,EAAO,SACPqP,GACE9oB,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQmlhC,GAAe,eAAgB6F,GAAoB,WAAYD,GAAU,SAAU1nhC,GAAiB,WAATA,GAAqB,OAAJ2C,QAAWiL,EAAAA,GAAUA,GAAC5N,IAASmnB,GAC1JgxJ,SAAU,CAAC3hJ,GAAY,aAEnB8q7B,GAAkBtw8B,EAAAA,GAAcA,GAACD,EAAOw2gC,GAA6Bz2gC,GAC3E,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EA0G7Brw8B,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKi2gC,IAAgB72gC,EAAAA,GAAAA,GAAS,CAChD,cAAe+2gC,EACfh6gC,WAAYA,EACZ3J,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,EAAO,CACRK,QAASA,IAEb,mBCjJO,SAASg3gC,GAA6B36gC,GAC3C,OAAOC,EAAAA,GAAAA,IAAqB,iBAAkBD,EAChD,EAC2BE,EAAAA,GAAsBA,GAAC,iBAAkB,CAAC,OAAQ,aAAc,eAAgB,cAAe,YAAa,aAAvI,MCDMC,GAAY,CAAC,WAAY,YAAa,QAAS,YAAa,WAAY,QAAS,UAAW,YAAa,cAAe,SAAU,WAAY,OAAQ,WAwBtJy6gC,IAAkBv6gC,EAAAA,GAAMA,IAAC,MAAO,CACpCvK,KAAM,iBACNkK,KAAM,OACNM,kBAAmBA,CAAAK,EAEhB/K,KAAW,IAFM,WAClB2K,GACDI,EACC,OAAO6C,EAAAA,GAAAA,GAAS,CAAC,EAAG5N,EAAOpG,KAAMoG,EAAO,SAADJ,QAAUiL,EAAAA,GAAUA,GAACF,EAAW+e,UAAY/e,EAAWwgM,WAAanrM,EAAOmrM,UAAU,GANxG1gM,EAQrBjB,IAAA,IAAC,WACFmB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACb5B,QAAS,cACTsiB,cAAe,SACf90B,SAAU,WAEVoyB,SAAU,EACVjC,QAAS,EACTD,OAAQ,EACRY,OAAQ,EACRyzI,cAAe,OACQ,WAAtBpzJ,EAAW+e,QAAuB,CACnC4D,UAAW,GACXE,aAAc,GACS,UAAtB7iB,EAAW+e,QAAsB,CAClC4D,UAAW,EACXE,aAAc,GACb7iB,EAAWwgM,WAAa,CACzBr/L,MAAO,QACP,IAyOF,GA/MiCrL,EAAAA,YAAiB,SAAqB2M,EAASpM,GAC9E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,oBAEF,SACFlG,EAAQ,UACRuO,EAAS,MACTqC,EAAQ,UAAS,UACjByC,EAAY,MAAK,SACjBH,GAAW,EAAK,MAChBkE,GAAQ,EACRkiB,QAAS2x/B,EAAe,UACxB950B,GAAY,EAAK,YACjBm00B,GAAc,EAAK,OACnB51/B,EAAS,OAAM,SACf+J,GAAW,EAAK,KAChBx2B,EAAO,SAAQ,QACfmnB,EAAU,YACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACAyC,YACAH,WACAkE,QACA+5L,YACAm00B,cACA51/B,SACA+J,WACAx2B,OACAmnB,YAEIrW,EAlGkBpD,KACxB,MAAM,QACJoD,EAAO,OACP2b,EAAM,UACNyhL,GACExgM,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAmB,SAAX8vB,GAAqB,SAAJ9pB,QAAaiL,EAAAA,GAAUA,GAAC6e,IAAWyhL,GAAa,cAElF,OAAOl9L,EAAAA,GAAcA,GAACD,EAAO+2gC,GAA8Bh3gC,EAAQ,EAyFnDG,CAAkBvD,IAC3Bs0gC,EAAcwC,GAAmBhhhC,EAAAA,UAAe,KAGrD,IAAIykhC,GAAsB,EAY1B,OAXIlrhC,GACFyG,EAAAA,SAAelK,QAAQyD,GAAU0oE,IAC/B,KAAKyi9B,EAAAA,GAAYA,GAACzi9B,EAAO,CAAC,QAAS,WACjC,OAEF,MAAM9hD,GAAQukgC,EAAAA,GAAYA,GAACzi9B,EAAO,CAAC,WAAaA,EAAM3oE,MAAM6mB,MAAQ8hD,EAChE9hD,GAAwBA,EAAM7mB,MflG7BilhC,iBemGHkG,GAAsB,EACxB,IAGGA,CAAmB,KAErBx2iB,EAAQ02iB,GAAa3khC,EAAAA,UAAe,KAGzC,IAAI4khC,GAAgB,EAWpB,OAVIrrhC,GACFyG,EAAAA,SAAelK,QAAQyD,GAAU0oE,KAC1Byi9B,EAAAA,GAAYA,GAACzi9B,EAAO,CAAC,QAAS,aAG/Bi88B,GAASj88B,EAAM3oE,OAAO,IAAS4khC,GAASj88B,EAAM3oE,MAAM4mhC,YAAY,MAClE0E,GAAgB,EAClB,IAGGA,CAAa,KAEfC,EAAcpE,GAAczghC,EAAAA,UAAe,GAC9CyM,GAAYo4gC,GACdpE,GAAW,GAEb,MAAM5t/B,OAA8Bx9B,IAApBmvhC,GAAkC/3gC,EAA6Bo4gC,EAAlBL,EAC7D,IAAIM,EAcJ,MAAMC,EAAe/khC,EAAAA,SAAc,KAC1B,CACLw+gC,eACAwC,kBACA72gC,QACAsC,WACAkE,QACAs9d,SACAp7c,UACA63K,YACAm00B,cACArihC,OACA4e,OAAQA,KACNqlgC,GAAW,EAAM,EAEnBG,QAASA,KACP+D,GAAU,EAAM,EAElBhE,SAAUA,KACRgE,GAAU,EAAK,EAEjBxpgC,QAASA,KACPslgC,GAAW,EAAK,EAElBqE,iBACA9x/B,WACArP,aAED,CAAC66/B,EAAcr0gC,EAAOsC,EAAUkE,EAAOs9d,EAAQp7c,EAAS63K,EAAWm00B,EAAaiG,EAAgB9x/B,EAAUx2B,EAAMmnB,IACnH,OAAoB5V,EAAAA,GAAAA,KAAK+vgC,GAAmB39gC,SAAU,CACpDxI,MAAOothC,EACPxrhC,UAAuBwU,EAAAA,GAAAA,KAAKw2gC,IAAiBp3gC,EAAAA,GAAAA,GAAS,CACpDQ,GAAIf,EACJ1C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,EAAO,CACR1T,SAAUA,MAGhB,IC9MO,SAASyrhC,GAAgCr7gC,GAC9C,OAAOC,EAAAA,GAAAA,IAAqB,oBAAqBD,EACnD,CACA,MACA,IAD8BE,EAAAA,GAAsBA,GAAC,oBAAqB,CAAC,OAAQ,QAAS,WAAY,YAAa,aAAc,YAAa,UAAW,SAAU,aCDrK,IAAIk5gC,GACJ,MAAMj5gC,GAAY,CAAC,WAAY,YAAa,YAAa,WAAY,QAAS,SAAU,UAAW,SAAU,WAAY,WA4BnHm7gC,IAAqBj7gC,EAAAA,GAAMA,IAAC,IAAK,CACrCvK,KAAM,oBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAW1N,MAAQ+C,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAW1N,QAAU0N,EAAW60P,WAAax/P,EAAOw/P,UAAW70P,EAAW+je,QAAU1ue,EAAO0ue,OAAO,GAP5Ijke,EASxBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbhD,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,WACzCzF,EAAM+C,WAAW+H,QAAS,CAC3Bob,UAAW,OACXtC,UAAW,EACXC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZ,CAAC,KAAD7tB,OAAM+lhC,GAAsBz4gC,WAAa,CACvCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAK/B,UAE5C,CAAC,KAADtN,OAAM+lhC,GAAsBv0gC,QAAU,CACpCxG,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,OAExB,UAApBpC,EAAW1N,MAAoB,CAChCqwB,UAAW,GACV3iB,EAAW60P,WAAa,CACzB/xO,WAAY,GACZF,YAAa,IACb,IAqGF,GApGoC9sB,EAAAA,YAAiB,SAAwB2M,EAASpM,GACpF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,uBAEF,SACFlG,EAAQ,UACRuO,EAAS,UACT8E,EAAY,KACVtT,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAEzC42gC,EAAM/C,GAAiB,CAC3BrkhC,QACAskhC,eAHqBC,KAIrBtxU,OAAQ,CAAC,UAAW,OAAQ,WAAY,QAAS,SAAU,UAAW,cAElErisB,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACAmyP,UAA2B,WAAhB2hxB,EAAI/8/B,SAAwC,aAAhB+8/B,EAAI/8/B,QAC3CA,QAAS+8/B,EAAI/8/B,QACbnnB,KAAMkkhC,EAAIlkhC,KACViQ,SAAUi0gC,EAAIj0gC,SACdkE,MAAO+vgC,EAAI/vgC,MACXs9d,OAAQyyiB,EAAIzyiB,OACZp7c,QAAS6t/B,EAAI7t/B,QACbG,SAAU0t/B,EAAI1t/B,WAEV1lB,EA5EkBpD,KACxB,MAAM,QACJoD,EAAO,UACPyxP,EAAS,KACTviQ,EAAI,SACJiQ,EAAQ,MACRkE,EAAK,OACLs9d,EAAM,QACNp7c,EAAO,SACPG,GACE9oB,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQsT,GAAY,WAAYkE,GAAS,QAASnU,GAAQ,OAAJ2C,QAAWiL,EAAAA,GAAUA,GAAC5N,IAASuiQ,GAAa,YAAalsO,GAAW,UAAWo7c,GAAU,SAAUj7c,GAAY,aAE9K,OAAOxlB,EAAAA,GAAcA,GAACD,EAAOy3gC,GAAiC13gC,EAAQ,EA8DtDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKk3gC,IAAoB93gC,EAAAA,GAAAA,GAAS,CACpDQ,GAAIf,EACJ1C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,EAAO,CACR1T,SAAuB,MAAbA,EACVwphC,KAAUA,IAAqBh1gC,EAAAA,GAAAA,KAAK,OAAQ,CAC1CjG,UAAW,cACXvO,SAAU,YACNA,IAEV,2BCxGA,MAIM4rhC,GAA0BnlhC,EAAAA,gBAczB,MAAMolhC,GAASA,KACpB,MAAMzthC,EAAQqI,EAAAA,WAAiBmlhC,IAC/B,OAAgB,MAATxthC,GAAgBA,CAAa,ECXtC,SAJiCqI,EAAAA,cAAoB,CAAC,GCL/C,SAASqlhC,GAAoB17gC,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,EACoBE,EAAAA,GAAsBA,GAAC,UAAW,CAAC,OAAQ,UAAW,QAAS,cAAnF,MCDMC,GAAY,CAAC,WAAY,YAAa,YAAa,QAAS,iBAAkB,aAuB9Ew7gC,IAAWt7gC,EAAAA,GAAMA,IAAC,KAAM,CAC5BvK,KAAM,UACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,MAAO+Q,EAAWq7gC,gBAAkBhmhC,EAAO2pB,QAAShf,EAAWs7gC,OAASjmhC,EAAOimhC,MAAOt7gC,EAAWu7gC,WAAalmhC,EAAOkmhC,UAAU,GAPjIz7gC,EASdM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbu4gC,UAAW,OACXz8/B,OAAQ,EACRC,QAAS,EACTnwB,SAAU,aACRmR,EAAWq7gC,gBAAkB,CAC/B15/B,WAAY,EACZE,cAAe,GACd7hB,EAAWu7gC,WAAa,CACzB55/B,WAAY,GACZ,IA+EF,GA9E0B7rB,EAAAA,YAAiB,SAAc2M,EAASpM,GAChE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,aAEF,SACFlG,EAAQ,UACRuO,EAAS,UACT8E,EAAY,KAAI,MAChB44gC,GAAQ,EAAK,eACbD,GAAiB,EAAK,UACtBE,GACEnshC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCy5B,EAAUvjC,EAAAA,SAAc,KAAM,CAClCwlhC,WACE,CAACA,IACCt7gC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACA44gC,QACAD,mBAEIj4gC,EAxDkBpD,KACxB,MAAM,QACJoD,EAAO,eACPi4gC,EAAc,MACdC,EAAK,UACLC,GACEv7gC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QAASoshC,GAAkB,UAAWC,GAAS,QAASC,GAAa,cAE9E,OAAOj4gC,EAAAA,GAAcA,GAACD,EAAO83gC,GAAqB/3gC,EAAQ,EA8C1CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK43gC,GAAYxlhC,SAAU,CAC7CxI,MAAO4rC,EACPhqC,UAAuBmU,EAAAA,GAAAA,MAAM43gC,IAAUn4gC,EAAAA,GAAAA,GAAS,CAC9CQ,GAAIf,EACJ9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,EACL2J,WAAYA,GACX+C,EAAO,CACR1T,SAAU,CAACkshC,EAAWlshC,OAG5B,IClFA,MCGMuQ,GAAY,CAAC,UAAW,YAAa,gBAAiB,WAAY,YAAa,yBAA0B,kBAAmB,YAAa,WAU/I,SAAS87gC,GAASl/+B,EAAMniB,EAAMshgC,GAC5B,OAAIn/+B,IAASniB,EACJmiB,EAAKzxC,WAEVsvB,GAAQA,EAAKnjB,mBACRmjB,EAAKnjB,mBAEPykhC,EAAkB,KAAOn/+B,EAAKzxC,UACvC,CACA,SAAS6whC,GAAap/+B,EAAMniB,EAAMshgC,GAChC,OAAIn/+B,IAASniB,EACJshgC,EAAkBn/+B,EAAKzxC,WAAayxC,EAAK2m3B,UAE9C9o4B,GAAQA,EAAKwhgC,uBACRxhgC,EAAKwhgC,uBAEPF,EAAkB,KAAOn/+B,EAAK2m3B,SACvC,CACA,SAAS24H,GAAoBC,EAAWC,GACtC,QAAqB7whC,IAAjB6whC,EACF,OAAO,EAET,IAAI13gC,EAAOy3gC,EAAUvrG,UAMrB,YALarl7B,IAATmZ,IAEFA,EAAOy3gC,EAAUj0+B,aAEnBxjC,EAAOA,EAAK9W,OAAO4N,cACC,IAAhBkJ,EAAK5Z,SAGLsxhC,EAAaC,UACR33gC,EAAK,KAAO03gC,EAAazqgC,KAAK,GAEa,IAA7CjN,EAAKvW,QAAQiuhC,EAAazqgC,KAAKrgB,KAAK,KAC7C,CACA,SAASgrhC,GAAU1/+B,EAAM2/+B,EAAcR,EAAiBS,EAAwBC,EAAmBL,GACjG,IAAIM,GAAc,EACdP,EAAYM,EAAkB7/+B,EAAM2/+B,IAAcA,GAAeR,GACrE,KAAOI,GAAW,CAEhB,GAAIA,IAAcv/+B,EAAKzxC,WAAY,CACjC,GAAIuxhC,EACF,OAAO,EAETA,GAAc,CAChB,CAGA,MAAMC,GAAoBH,IAAiCL,EAAUx5gC,UAAwD,SAA5Cw5gC,EAAU3nhC,aAAa,kBACxG,GAAK2nhC,EAAUxxG,aAAa,aAAgBuxG,GAAoBC,EAAWC,KAAiBO,EAK1F,OADAR,EAAU52gC,SACH,EAHP42gC,EAAYM,EAAkB7/+B,EAAMu/+B,EAAWJ,EAKnD,CACA,OAAO,CACT,CAQA,MA0MA,GA1M8B7lhC,EAAAA,YAAiB,SAAkB1G,EAAOiH,GACtE,MAAM,QAGFwy6B,EAAO,UACPzO,GAAY,EAAK,cACjBoiH,GAAgB,EAAK,SACrBnthC,EAAQ,UACRuO,EAAS,uBACTw+gC,GAAyB,EAAK,gBAC9BT,GAAkB,EAAK,UACvBxqE,EAAS,QACT137B,EAAU,gBACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC68gC,EAAU3mhC,EAAAA,OAAa,MACvB4mhC,EAAkB5mhC,EAAAA,OAAa,CACnCyb,KAAM,GACN0qgC,WAAW,EACXU,oBAAoB,EACpBrkP,SAAU,QAEZxtwB,EAAAA,GAAAA,IAAkB,KACZsv4B,GACFqiH,EAAQ1lhC,QAAQoO,OAClB,GACC,CAACi15B,IACJtk6B,EAAAA,oBAA0B+y6B,GAAS,KAAM,CACvC+zG,wBAAyBA,CAACC,EAAgBz8gC,KAEpC,IAFsC,UAC1CsF,GACDtF,EAGC,MAAM08gC,GAAmBL,EAAQ1lhC,QAAQ4f,MAAMxV,MAC/C,GAAI07gC,EAAiBvswB,aAAemswB,EAAQ1lhC,QAAQu5Q,cAAgBwswB,EAAiB,CACnF,MAAM/8C,EAAgB,GAAH9q+B,OAAM4p+B,IAAiB/t9B,EAAAA,GAAAA,GAAc+rgC,IAAkB,MAC1EJ,EAAQ1lhC,QAAQ4f,MAAoB,QAAdjR,EAAsB,cAAgB,gBAAkBq69B,EAC9E08C,EAAQ1lhC,QAAQ4f,MAAMxV,MAAQ,eAAHlM,OAAkB8q+B,EAAa,IAC5D,CACA,OAAO08C,EAAQ1lhC,OAAO,KAEtB,IACJ,MAkDM288B,GAAY3o7B,EAAAA,GAAUA,GAAC0x/B,EAASpmhC,GAOtC,IAAI0mhC,GAAmB,EAIvBjnhC,EAAAA,SAAelK,QAAQyD,GAAU,CAAC0oE,EAAO9pE,KACpB6H,EAAAA,eAAqBiiE,IAenCA,EAAM3oE,MAAMmT,WACC,iBAAZkX,GAA8Bs+C,EAAM3oE,MAAM2V,WAEd,IAArBg4gC,KADTA,EAAkB9uhC,GAKlB8uhC,IAAoB9uhC,IAAU8pE,EAAM3oE,MAAMmT,UAAYw1D,EAAM3oE,MAAMsr9B,sBAAwB3i5B,EAAM5oE,KAAKur9B,wBACvGqiE,GAAmB,EACfA,GAAmB1thC,EAAS3E,SAE9BqyhC,GAAmB,KAzBjBA,IAAoB9uhC,IACtB8uhC,GAAmB,EACfA,GAAmB1thC,EAAS3E,SAE9BqyhC,GAAmB,GAuBzB,IAEF,MAAM586B,EAAQrqG,EAAAA,SAAenC,IAAItE,GAAU,CAAC0oE,EAAO9pE,KACjD,GAAIA,IAAU8uhC,EAAiB,CAC7B,MAAMC,EAAgB,CAAC,EAOvB,OANIR,IACFQ,EAAc5iH,WAAY,QAECjv6B,IAAzB4sE,EAAM3oE,MAAMui9B,UAAsC,iBAAZl47B,IACxCujgC,EAAcrrE,SAAW,GAEP778B,EAAAA,aAAmBiiE,EAAOil9B,EAChD,CACA,OAAOjl9B,CAAK,IAEd,OAAoBl0D,EAAAA,GAAAA,KAAKo5gC,IAAMh6gC,EAAAA,GAAAA,GAAS,CACtCW,KAAM,OACNvN,IAAKq98B,EACL918B,UAAWA,EACXuz8B,UA7GoBph8B,IACpB,MAAMysB,EAAOig/B,EAAQ1lhC,QACfxL,EAAMwkB,EAAMxkB,IAOZ4whC,GAAerrgC,EAAAA,GAAAA,GAAc0rB,GAAMu4H,cACzC,GAAY,cAARxpK,EAEFwkB,EAAMozB,iBACN+4+B,GAAU1/+B,EAAM2/+B,EAAcR,EAAiBS,EAAwBV,SAClE,GAAY,YAARnwhC,EACTwkB,EAAMozB,iBACN+4+B,GAAU1/+B,EAAM2/+B,EAAcR,EAAiBS,EAAwBR,SAClE,GAAY,SAARrwhC,EACTwkB,EAAMozB,iBACN+4+B,GAAU1/+B,EAAM,KAAMm/+B,EAAiBS,EAAwBV,SAC1D,GAAY,QAARnwhC,EACTwkB,EAAMozB,iBACN+4+B,GAAU1/+B,EAAM,KAAMm/+B,EAAiBS,EAAwBR,SAC1D,GAAmB,IAAfrwhC,EAAIb,OAAc,CAC3B,MAAMwyhC,EAAWR,EAAgB3lhC,QAC3BomhC,EAAW5xhC,EAAI6P,cACfgihC,EAAWtwhB,YAAY/vd,MACzBmg/B,EAAS3rgC,KAAK7mB,OAAS,IAErB0yhC,EAAWF,EAAS5kP,SAAW,KACjC4kP,EAAS3rgC,KAAO,GAChB2rgC,EAASjB,WAAY,EACrBiB,EAASP,oBAAqB,GACrBO,EAASjB,WAAakB,IAAaD,EAAS3rgC,KAAK,KAC1D2rgC,EAASjB,WAAY,IAGzBiB,EAAS5kP,SAAW8kP,EACpBF,EAAS3rgC,KAAKtmB,KAAKkyhC,GACnB,MAAME,EAAqBlB,IAAiBe,EAASjB,WAAaH,GAAoBK,EAAce,GAChGA,EAASP,qBAAuBU,GAAsBnB,GAAU1/+B,EAAM2/+B,GAAc,EAAOC,EAAwBV,GAAUwB,IAC/HntgC,EAAMozB,iBAEN+5+B,EAASP,oBAAqB,CAElC,CACIxrE,GACFA,EAAUph8B,EACZ,EA8DA4h8B,SAAUv3C,EAAY,GAAK,GAC1Br35B,EAAO,CACR1T,SAAU8wG,IAEd,6BCzOA,MAAMvgG,GAAY,CAAC,iBAAkB,SAAU,WAAY,SAAU,KAAM,UAAW,YAAa,aAAc,SAAU,WAAY,YAAa,QAAS,UAAW,uBAWxK,SAASolK,GAASv3K,GAChB,MAAO,SAAPwH,OAAgBxH,EAAK,MAAAwH,OAAKxH,GAAS,EAAC,IACtC,CACA,MAAM4H,GAAS,CACbwo+B,SAAU,CACRjk+B,QAAS,EACTkjB,UAAWkoJ,GAAS,IAEtB84zB,QAAS,CACPlk+B,QAAS,EACTkjB,UAAW,SAQTwggC,GAAmC,qBAAd5y+B,WAA6B,0CAA0Ch5B,KAAKg5B,UAAUC,YAAc,2BAA2Bj5B,KAAKg5B,UAAUC,WAOnK4y+B,GAAoBznhC,EAAAA,YAAiB,SAAc1G,EAAOiH,GAC9D,MAAM,eACF8m+B,EAAc,OACdhwB,GAAS,EAAI,SACb998B,EAAQ,OACR2c,EACA2+yB,GAAIijJ,EAAM,QACVgvB,EAAO,UACPD,EAAS,WACTE,EAAU,OACVE,EAAM,SACN/wB,EAAQ,UACRgxB,EAAS,MACTrm9B,EAAK,QACL4Q,EAAU,OAAM,oBAEhBy28B,EAAsBzC,IACpBns+B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC+5B,GAAQ5N,EAAAA,GAAUA,KAClByx/B,EAAc1nhC,EAAAA,SACdiJ,EAAQqq8B,KACR8yB,EAAUpm+B,EAAAA,OAAa,MACvB498B,GAAY3o7B,EAAAA,GAAUA,GAACmx8B,EAAS5D,GAAmBjp+B,GAAWgH,GAC9D4n+B,EAA+Bnt+B,GAAYot+B,IAC/C,GAAIpt+B,EAAU,CACZ,MAAM9B,EAAOkt+B,EAAQnl+B,aAGI5L,IAArB+y+B,EACFpt+B,EAAS9B,GAET8B,EAAS9B,EAAMkv+B,EAEnB,GAEIC,EAAiBF,EAA6BpB,GAC9CxnD,EAAc4oD,GAA6B,CAACjv+B,EAAMov+B,KACtDb,GAAOvu+B,GAEP,MACE0S,SAAU852B,EAAkB,MAC5Bpu2B,EACApB,OAAQ2x9B,GACNH,GAAmB,CACrB7m9B,QACA4Q,UACAvb,UACC,CACD7F,KAAM,UAER,IAAIzE,EACY,SAAZ6lB,GACF7lB,EAAW3C,EAAM0C,YAAYoL,sBAAsB7d,EAAKshR,cACxDktwB,EAAYzmhC,QAAU2K,GAEtBA,EAAW852B,EAEbxs3B,EAAK2nB,MAAMnV,WAAa,CAACzC,EAAM0C,YAAY9L,OAAO,UAAW,CAC3D+L,WACA0L,UACErO,EAAM0C,YAAY9L,OAAO,YAAa,CACxC+L,SAAU47gC,GAAc57gC,EAAsB,KAAXA,EACnC0L,QACApB,OAAQ2x9B,KACNzs+B,KAAK,KACL0r+B,GACFA,EAAQ5t+B,EAAMov+B,EAChB,IAEIG,EAAgBN,EAA6BtB,GAC7C6B,EAAgBP,EAA6BjB,GAC7CyB,EAAaR,GAA6Bjv+B,IAC9C,MACE0S,SAAU852B,EAAkB,MAC5Bpu2B,EACApB,OAAQ2x9B,GACNH,GAAmB,CACrB7m9B,QACA4Q,UACAvb,UACC,CACD7F,KAAM,SAER,IAAIzE,EACY,SAAZ6lB,GACF7lB,EAAW3C,EAAM0C,YAAYoL,sBAAsB7d,EAAKshR,cACxDktwB,EAAYzmhC,QAAU2K,GAEtBA,EAAW852B,EAEbxs3B,EAAK2nB,MAAMnV,WAAa,CAACzC,EAAM0C,YAAY9L,OAAO,UAAW,CAC3D+L,WACA0L,UACErO,EAAM0C,YAAY9L,OAAO,YAAa,CACxC+L,SAAU47gC,GAAc57gC,EAAsB,KAAXA,EACnC0L,MAAOkwgC,GAAclwgC,EAAQA,GAAoB,KAAX1L,EACtCsK,OAAQ2x9B,KACNzs+B,KAAK,KACTlC,EAAK2nB,MAAM/c,QAAU,EACrB5K,EAAK2nB,MAAMmG,UAAYkoJ,GAAS,KAC5B+3zB,GACFA,EAAO/t+B,EACT,IAEI+98B,EAAekxB,EAA6BjyB,GAUlD,OAAoBno8B,EAAAA,GAAAA,KAAKm69B,GAAqB/69B,EAAAA,GAAAA,GAAS,CACrDkq8B,OAAQA,EACRxiJ,GAAIijJ,EACJsuB,QAASA,EACTU,QAASvnD,EACTsnD,UAAW4B,EACX1B,WAAYsB,EACZpB,OAAQ0B,EACRzyB,SAAUe,EACViwB,UAAWwB,EACXrB,eAnB2B1t+B,IACX,SAAZ83B,GACFoS,EAAMxoB,MAAMqsgC,EAAYzmhC,SAAW,EAAGtH,GAEpC0t+B,GAEFA,EAAejB,EAAQnl+B,QAAStH,EAClC,EAaA83B,QAAqB,SAAZA,EAAqB,KAAOA,GACpCxkB,EAAO,CACR1T,SAAUA,CAACo7B,EAAO4y8B,IACIvn+B,EAAAA,aAAmBzG,GAAU4T,EAAAA,GAAAA,GAAS,CACxD0T,OAAO1T,EAAAA,GAAAA,GAAS,CACdrJ,QAAS,EACTkjB,UAAWkoJ,GAAS,KACpBxhJ,WAAsB,WAAViH,GAAuBmj7B,OAAoBzi9B,EAAX,UAC3CkK,GAAOo1B,GAAQ9T,EAAOtnB,EAASD,MAAMunB,OACxCtgB,IAAKq98B,GACJ2pB,MAGT,IA2EAkgD,GAAKE,gBAAiB,EACtB,YC7PO,SAASC,GAAuBj+gC,GACrC,OAAOC,EAAAA,GAAAA,IAAqB,aAAcD,EAC5C,EACuBE,EAAAA,GAAsBA,GAAC,aAAc,CAAC,OAAQ,UAArE,MCDMC,GAAY,CAAC,cACjBwZ,GAAa,CAAC,SAAU,WAAY,eAAgB,iBAAkB,kBAAmB,WAAY,YAAa,YAAa,YAAa,kBAAmB,OAAQ,aAAc,QAAS,YAAa,kBAAmB,sBAAuB,qBAAsB,kBAAmB,qBAC9RhC,GAAa,CAAC,aAuBT,SAASumgC,GAAahy+B,EAAMyjI,GACjC,IAAI19K,EAAS,EAQb,MAPwB,kBAAb09K,EACT19K,EAAS09K,EACa,WAAbA,EACT19K,EAASi6C,EAAKvqC,OAAS,EACD,WAAbguK,IACT19K,EAASi6C,EAAKvqC,QAET1P,CACT,CACO,SAASkshC,GAAcjy+B,EAAMujI,GAClC,IAAIx9K,EAAS,EAQb,MAP0B,kBAAfw9K,EACTx9K,EAASw9K,EACe,WAAfA,EACTx9K,EAASi6C,EAAKxqC,MAAQ,EACE,UAAf+tK,IACTx9K,EAASi6C,EAAKxqC,OAETzP,CACT,CACA,SAASmshC,GAAwB1lE,GAC/B,MAAO,CAACA,EAAgBjpyB,WAAYipyB,EAAgB/oyB,UAAUz7K,KAAI6gB,GAAkB,kBAANA,EAAiB,GAAHvf,OAAMuf,EAAC,MAAOA,IAAGtjB,KAAK,IACpH,CACA,SAAS4shC,GAAgBC,GACvB,MAA2B,oBAAbA,EAA0BA,IAAaA,CACvD,CACA,MAUaC,IAAcl+gC,EAAAA,GAAMA,IAACij+B,GAAO,CACvCxt+B,KAAM,aACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHpB6Q,CAIxB,CAAC,GACSm+gC,IAAen+gC,EAAAA,GAAMA,IAACo+gC,GAAW,CAC5C3ohC,KAAM,aACNkK,KAAM,QACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOsP,OAHnB7E,CAIzB,CACDjR,SAAU,WACVoz7B,UAAW,OACXm+C,UAAW,SAGXn/8B,SAAU,GACV7V,UAAW,GACXyV,SAAU,oBACVK,UAAW,oBAEXb,QAAS,IAicX,GA/b6BvqB,EAAAA,YAAiB,SAAiB2M,EAASpM,GACtE,IAAI8nhC,EAAkB9lE,EAAa+lE,EACnC,MAAMhvhC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,gBAEF,OACF8M,EAAM,SACN07gC,EAAQ,aACRlmE,EAAe,CACbzoyB,SAAU,MACVF,WAAY,QACb,eACDmv2B,EAAc,gBACdC,EAAkB,WAAU,SAC5BjvhC,EAAQ,UACRuO,EACA9S,UAAWu2J,EAAa,UACxBq8rB,EAAY,EAAC,gBACb6gM,EAAkB,GAAE,KACpB11/B,EACA21/B,WAAYC,EAAiB,CAAC,EAAC,MAC/Bp7gC,EAAK,UACL8mB,EAAS,gBACTgu7B,EAAkB,CAChB/oyB,SAAU,MACVF,WAAY,QACb,oBACD8uzB,EAAsBu/C,GACtB/hK,mBAAoBkjK,EAAyB,OAC7CC,iBAAiB,WACf9hD,GACE,CAAC,EAAC,kBACNgD,GAAoB,GAClBzw+B,EACJuvhC,GAAkB37gC,EAAAA,GAAAA,GAA8B5T,EAAMuvhC,gBAAiB/+gC,IACvEmD,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOgqB,IACzCwlgC,EAA8F,OAApET,EAAgC,MAAbh0/B,OAAoB,EAASA,EAAUxlB,OAAiBw5gC,EAAmBM,EACxHI,EAAW/ohC,EAAAA,SACXgphC,GAAiB/z/B,EAAAA,GAAUA,GAAC8z/B,EAAUD,EAAuBvohC,KAC7D2J,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCyo9B,eACAymE,kBACA5gM,YACA6gM,kBACAK,yBACAzmE,kBACA6lB,sBACAxiH,mBAAoBkjK,EACpBC,oBAEIv7gC,EAnFkBpD,KACxB,MAAM,QACJoD,GACEpD,EAKJ,OAAOsD,EAAAA,GAAcA,GAJP,CACZrU,KAAM,CAAC,QACP0V,MAAO,CAAC,UAEmB+4gC,GAAwBt6gC,EAAQ,EA2E7CG,CAAkBvD,GAI5B++gC,EAAkBjphC,EAAAA,aAAkB,KACxC,GAAwB,mBAApBwohC,EAMF,OAAOD,EAET,MAAMW,EAAmBlB,GAAgBC,GAInCkB,GADgBD,GAAkD,IAA9BA,EAAiBli/B,SAAiBki/B,GAAmBlugC,EAAAA,GAAAA,GAAc+tgC,EAAS9nhC,SAASg5E,MAC9FnkC,wBAOjC,MAAO,CACLlnB,IAAKu6/B,EAAWv6/B,IAAMi5/B,GAAasB,EAAYpnE,EAAazoyB,UAC5DvqJ,KAAMo6/B,EAAWp6/B,KAAO+4/B,GAAcqB,EAAYpnE,EAAa3oyB,YAChE,GACA,CAAC6u2B,EAAUlmE,EAAa3oyB,WAAY2oyB,EAAazoyB,SAAUiv2B,EAAgBC,IAGxEY,EAAqBpphC,EAAAA,aAAkBqphC,IACpC,CACL/v2B,SAAUuu2B,GAAawB,EAAUhnE,EAAgB/oyB,UACjDF,WAAY0u2B,GAAcuB,EAAUhnE,EAAgBjpyB,eAErD,CAACipyB,EAAgBjpyB,WAAYipyB,EAAgB/oyB,WAC1Cgw2B,EAAsBtphC,EAAAA,aAAkB7E,IAC5C,MAAMkuhC,EAAW,CACfh+gC,MAAOlQ,EAAQ66yB,YACf1qyB,OAAQnQ,EAAQ4tzB,cAIZwgO,EAAsBH,EAAmBC,GAC/C,GAAwB,SAApBb,EACF,MAAO,CACL55/B,IAAK,KACLG,KAAM,KACNsz7B,gBAAiB0lE,GAAwBwB,IAK7C,MAAMryH,EAAe+xH,IAGrB,IAAIr6/B,EAAMso4B,EAAato4B,IAAM26/B,EAAoBjw2B,SAC7CvqJ,EAAOmo4B,EAAano4B,KAAOw6/B,EAAoBnw2B,WACnD,MAAMtqJ,EAASF,EAAMy6/B,EAAS/9gC,OACxBujB,EAAQE,EAAOs6/B,EAASh+gC,MAGxBg/9B,GAAkBp28B,EAAAA,GAAAA,GAAY+z/B,GAAgBC,IAG9CuB,EAAkBn/C,EAAgBnm1B,YAAcuk4B,EAChDgB,EAAiBp/C,EAAgBpm1B,WAAawk4B,EAGpD,GAAwB,OAApBA,GAA4B75/B,EAAM65/B,EAAiB,CACrD,MAAM5t/B,EAAOjM,EAAM65/B,EACnB75/B,GAAOiM,EACP0u/B,EAAoBjw2B,UAAYz+I,CAClC,MAAO,GAAwB,OAApB4t/B,GAA4B35/B,EAAS06/B,EAAiB,CAC/D,MAAM3u/B,EAAO/L,EAAS06/B,EACtB56/B,GAAOiM,EACP0u/B,EAAoBjw2B,UAAYz+I,CAClC,CAQA,GAAwB,OAApB4t/B,GAA4B15/B,EAAO05/B,EAAiB,CACtD,MAAM5t/B,EAAO9L,EAAO05/B,EACpB15/B,GAAQ8L,EACR0u/B,EAAoBnw2B,YAAcv+I,CACpC,MAAO,GAAIhM,EAAQ46/B,EAAgB,CACjC,MAAM5u/B,EAAOhM,EAAQ46/B,EACrB16/B,GAAQ8L,EACR0u/B,EAAoBnw2B,YAAcv+I,CACpC,CACA,MAAO,CACLjM,IAAK,GAAFzvB,OAAK/H,KAAK+b,MAAMyb,GAAI,MACvBG,KAAM,GAAF5vB,OAAK/H,KAAK+b,MAAM4b,GAAK,MACzBsz7B,gBAAiB0lE,GAAwBwB,GAC1C,GACA,CAACtB,EAAUO,EAAiBS,EAAiBG,EAAoBX,KAC7DiB,EAAcC,GAAmB3phC,EAAAA,SAAe+yB,GACjD62/B,EAAuB5phC,EAAAA,aAAkB,KAC7C,MAAM7E,EAAU4thC,EAAS9nhC,QACzB,IAAK9F,EACH,OAEF,MAAM0uhC,EAAcP,EAAoBnuhC,GAChB,OAApB0uhC,EAAYj7/B,MACdzzB,EAAQ0lB,MAAM+N,IAAMi7/B,EAAYj7/B,KAET,OAArBi7/B,EAAY96/B,OACd5zB,EAAQ0lB,MAAMkO,KAAO86/B,EAAY96/B,MAEnC5zB,EAAQ0lB,MAAMwh8B,gBAAkBwnE,EAAYxnE,gBAC5CsnE,GAAgB,EAAK,GACpB,CAACL,IACJtphC,EAAAA,WAAgB,KACV+p+B,GACF518B,OAAOlZ,iBAAiB,SAAU2ugC,GAE7B,IAAMz1/B,OAAOqf,oBAAoB,SAAUo2+B,KACjD,CAAC3B,EAAUl+C,EAAmB6/C,IAUjC5phC,EAAAA,WAAgB,KACV+yB,GACF62/B,GACF,IAEF5phC,EAAAA,oBAA0BuM,GAAQ,IAAMwmB,EAAO,CAC7C+2/B,eAAgBA,KACdF,GAAsB,GAEtB,MAAM,CAAC72/B,EAAM62/B,IACjB5phC,EAAAA,WAAgB,KACd,IAAK+yB,EACH,OAEF,MAAMyq/B,GAAehs/B,EAAAA,GAAAA,IAAS,KAC5Bo4/B,GAAsB,IAElBv/C,GAAkBp28B,EAAAA,GAAAA,GAAYg0/B,GAEpC,OADA59C,EAAgBpv9B,iBAAiB,SAAUuigC,GACpC,KACLA,EAAazr/B,QACbs48B,EAAgB727B,oBAAoB,SAAUgq+B,EAAa,CAC5D,GACA,CAACyK,EAAUl1/B,EAAM62/B,IACpB,IAAIlkK,EAAqBkjK,EACM,SAA3BA,GAAsC1gD,EAAoBy/C,iBAC5DjiK,OAAqBrw3B,GAMvB,MAAML,EAAYu2J,IAAkB083B,GAAWjtgC,EAAAA,GAAAA,GAAcgtgC,GAAgBC,IAAWhu8B,UAAO5kF,GACzF8t9B,EAAkE,OAAtDZ,EAAuB,MAATh18B,OAAgB,EAASA,EAAMpU,MAAgBop9B,EAAc2lE,GACvF6B,EAAqE,OAAxDzB,EAAwB,MAAT/6gC,OAAgB,EAASA,EAAMsB,OAAiBy5gC,EAAeH,GAC3F6B,EAAatmE,GAAa,CAC9Bn4D,YAAaw+H,EACb9pE,mBAAmB9y8B,EAAAA,GAAAA,GAAS,CAAC,EAAG27gC,EAAwB,CACtDjogC,MAAO6ogC,EAAeZ,EAAuBjogC,OAAQ1T,EAAAA,GAAAA,GAAS,CAAC,EAAG27gC,EAAuBjogC,MAAO,CAC9F/c,QAAS,MAGbk88B,gBAAiB,CACfp4H,YACArn1B,IAAKyohC,GAEP9+gC,aACApC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQuB,MAAiC,MAA1Bi6gC,OAAiC,EAASA,EAAuBhhhC,aAE5FmihC,EAAgBvmE,GAAa,CAC/Bn4D,YAAa43D,EACblD,mBAAiC,MAAb5r7B,OAAoB,EAASA,EAAUl7B,OAAS,CAAC,EACrE+m9B,uBAAwBjz8B,EACxB+y8B,gBAAiB,CACfz/8B,MACA8zB,UAAW,CACT+k5B,SAAU,CACRnopB,WAAW,IAGfj8R,YACA+9B,QAEF7oB,aACApC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,MAG9BusB,UAAW61/B,GACTD,EACJxmE,GAAYv28B,EAAAA,GAAAA,GAA8B+8gC,EAAe3ogC,IAC3D,OAAoBvT,EAAAA,GAAAA,KAAKo18B,GAAUh28B,EAAAA,GAAAA,GAAS,CAAC,EAAGs28B,GAAY5D,GAAgBsD,IAAa,CACvF9u7B,UAAW61/B,EACXngD,qBACC,CACDxw+B,UAAuBwU,EAAAA,GAAAA,KAAKm69B,GAAqB/69B,EAAAA,GAAAA,GAAS,CACxDkq8B,QAAQ,EACRxiJ,GAAI9hyB,EACJg08B,WAtFmBsB,CAAClt+B,EAASmt+B,KAC3BvB,GACFA,EAAW5r+B,EAASmt+B,GAEtBshD,GAAsB,EAmFpB1zE,SAjFiBe,KACnB0yE,GAAgB,EAAM,EAiFpBl4/B,QAASi01B,GACRmjK,EAAiB,CAClBtvhC,UAAuBwU,EAAAA,GAAAA,KAAKg8gC,GAAW58gC,EAAAA,GAAAA,GAAS,CAAC,EAAG68gC,EAAY,CAC9DzwhC,SAAUA,UAIlB,ICpWO,SAAS4whC,GAAoBxghC,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,EACoBE,EAAAA,GAAsBA,GAAC,UAAW,CAAC,OAAQ,QAAS,SAAxE,MCDMC,GAAY,CAAC,cACjBwZ,GAAa,CAAC,YAAa,WAAY,YAAa,uBAAwB,gBAAiB,UAAW,OAAQ,aAAc,iBAAkB,qBAAsB,kBAAmB,UAAW,QAAS,aAezM8mgC,GAAa,CACjB9w2B,SAAU,MACVF,WAAY,SAERix2B,GAAa,CACjB/w2B,SAAU,MACVF,WAAY,QAaRkx2B,IAAWtghC,EAAAA,GAAMA,IAACughC,GAAS,CAC/BrugC,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,UACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAJ9B6Q,CAKd,CAAC,GACSwghC,IAAYxghC,EAAAA,GAAMA,IAACm+gC,GAAc,CAC5C1ohC,KAAM,UACNkK,KAAM,QACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOsP,OAHtB7E,CAItB,CAIDohB,UAAW,oBAEXq//B,wBAAyB,UAErBC,IAAe1ghC,EAAAA,GAAMA,IAAC2ghC,GAAU,CACpClrhC,KAAM,UACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOmnC,MAH1B18B,CAIlB,CAEDugB,QAAS,IAmPX,GAjP0BvqB,EAAAA,YAAiB,SAAc2M,EAASpM,GAChE,IAAI+nhC,EAAcD,EAClB,MAAM/uhC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,aAEF,UACF6k6B,GAAY,EAAI,SAChB/q6B,EAAQ,UACRuO,EAAS,qBACT8ihC,GAAuB,EAAK,cAC5BC,EAAgB,CAAC,EAAC,QAClBr/C,EAAO,KACPz48B,EAAI,WACJ21/B,EAAa,CAAC,EAAC,eACfoC,EAAc,mBACdplK,EAAqB,OACrBmjK,iBAAiB,WACf9hD,GACE,CAAC,EAAC,QACNpj9B,EAAU,eAAc,MACxBpW,EAAQ,CAAC,EAAC,UACV8mB,EAAY,CAAC,GACX/6B,EACJuvhC,GAAkB37gC,EAAAA,GAAAA,GAA8B5T,EAAMuvhC,gBAAiB/+gC,IACvEmD,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOgqB,IACzCyngC,EAAQ3F,KACRl7gC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCgr6B,YACAsmH,uBACAC,gBACA9jD,aACA2hD,aACAhjK,qBACAmjK,kBACAllgC,YAEIrW,EA1EkBpD,KACxB,MAAM,QACJoD,GACEpD,EAMJ,OAAOsD,EAAAA,GAAcA,GALP,CACZrU,KAAM,CAAC,QACP0V,MAAO,CAAC,SACR63B,KAAM,CAAC,SAEoByj/B,GAAqB78gC,EAAQ,EAiE1CG,CAAkBvD,GAC5Bw8gC,EAAgBpiH,IAAcsmH,GAAwB73/B,EACtDi4/B,EAAqBhrhC,EAAAA,OAAa,MAyBxC,IAAIinhC,GAAmB,EAIvBjnhC,EAAAA,SAAenC,IAAItE,GAAU,CAAC0oE,EAAO9pE,KAChB6H,EAAAA,eAAqBiiE,KAQnCA,EAAM3oE,MAAMmT,WACC,iBAAZkX,GAA8Bs+C,EAAM3oE,MAAM2V,WAEd,IAArBg4gC,KADTA,EAAkB9uhC,GAItB,IAEF,MAAM4xhC,EAA4C,OAA/BzB,EAAe/6gC,EAAMsB,OAAiBy5gC,EAAekC,GAClES,EAAiE,OAAvC5C,EAAmBh0/B,EAAUxlB,OAAiBw5gC,EAAmBK,EAC3FnlE,EAAgBG,GAAa,CACjCn4D,YAAah+4B,EAAMpU,KACnB8m9B,kBAAmB5r7B,EAAUl7B,KAC7B+Q,aACApC,UAAW,CAACwF,EAAQnU,KAAM2O,KAEtBojhC,EAAiBxnE,GAAa,CAClCn4D,YAAaw+H,EACb9pE,kBAAmBgrE,EACnB/ghC,aACApC,UAAWwF,EAAQuB,QAErB,OAAoBd,EAAAA,GAAAA,KAAKu8gC,IAAUn9gC,EAAAA,GAAAA,GAAS,CAC1Cq+9B,QAASA,EACTzpB,aAAc,CACZzoyB,SAAU,SACVF,WAAY2x2B,EAAQ,QAAU,QAEhC1oE,gBAAiB0oE,EAAQX,GAAaC,GACtC98gC,MAAO,CACLsB,MAAOk7gC,EACP5whC,KAAMoU,EAAMpU,MAEdk7B,UAAW,CACTl7B,KAAMoq9B,EACN108B,MAAOq8gC,GAETn4/B,KAAMA,EACNxyB,IAAKA,EACLml3B,mBAAoBA,EACpBmjK,iBAAiB17gC,EAAAA,GAAAA,GAAS,CACxB459B,WA9EmBsB,CAAClt+B,EAASmt+B,KAC3B0iD,EAAmB/phC,SACrB+phC,EAAmB/phC,QAAQ6lhC,wBAAwB3rhC,EAAS,CAC1DyU,UAAWm7gC,EAAQ,MAAQ,QAG3BhkD,GACFA,EAAW5r+B,EAASmt+B,EACtB,GAuEGugD,GACH3+gC,WAAYA,GACX+C,EAAO,CACRK,QAASw9gC,EACTvxhC,UAAuBwU,EAAAA,GAAAA,KAAK28gC,IAAcv9gC,EAAAA,GAAAA,GAAS,CACjDku8B,UA1EsBph8B,IACN,QAAdA,EAAMxkB,MACRwkB,EAAMozB,iBACFm+7B,GACFA,EAAQvx9B,EAAO,cAEnB,EAqEE845B,QAASi4G,EACT1mH,UAAWA,KAAmC,IAArB2iH,GAA0B2D,GACnDlE,cAAeA,EACf/igC,QAASA,GACRkngC,EAAe,CAChB/ihC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQo5B,KAAMmk/B,EAAc/ihC,WAC5CvO,SAAUA,OAGhB,ICrMO,SAAS4xhC,GAA8BxhhC,GAC5C,OAAOC,EAAAA,GAAAA,IAAqB,kBAAmBD,EACjD,CACA,MACA,IAD4BE,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,OAAQ,SAAU,WAAY,SAAU,WAAY,WAAY,WAAY,OAAQ,WAAY,aAAc,eAAgB,eAAgB,cAAe,UCD9NC,GAAY,CAAC,YAAa,WAAY,QAAS,gBAAiB,WAAY,WA0BrEshhC,GAA2B9ghC,IAAA,IAAC,WACvCJ,EAAU,MACVjB,GACDqB,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbqt8B,cAAe,OAEflujB,iBAAkB,OAIlBlhZ,WAAY,OACZsb,aAAc,EAEdhhB,OAAQ,UACR,WAAWyH,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAMmD,KAAO,CACnCkf,gBAAiB,QAAFnsB,OAAU8J,EAAMmD,KAAKC,QAAQyC,OAAO2ygC,oBAAmB,aACpE,CACFn2/B,gBAAwC,UAAvBriB,EAAMoD,QAAQgE,KAAmB,sBAAwB,6BACzE,CACDqW,aAAc,IAGhB,gBAAiB,CACfnb,QAAS,QAEX,CAAC,KAADpM,OAAMkshC,GAAoB5+gC,WAAa,CACrC/G,OAAQ,WAEV,cAAe,CACb4F,OAAQ,QAEV,uDAAwD,CACtDggB,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQuC,WAAWC,OAG5D,MAAO,CACLid,aAAc,GACdX,SAAU,KAEY,WAAvBjhB,EAAWyZ,SAAwB,CACpC,MAAO,CACLmI,aAAc,KAEQ,aAAvB5hB,EAAWyZ,SAA0B,CACtC+C,cAAezd,EAAMmD,MAAQnD,GAAO4d,MAAMH,aAC1C,UAAW,CACTA,cAAezd,EAAMmD,MAAQnD,GAAO4d,MAAMH,cAE5C,MAAO,CACLoF,aAAc,KAEhB,EACIw//B,IAAqBthhC,EAAAA,GAAMA,IAAC,SAAU,CAC1CvK,KAAM,kBACNkK,KAAM,SACNuS,kBAAmBpE,GAAqBA,EACxC7N,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOsvC,OAAQtvC,EAAO2K,EAAWyZ,SAAUzZ,EAAWyG,OAASpR,EAAOoR,MAAO,CACnF,CAAC,KAADxR,OAAMkshC,GAAoBjnH,WAAa7k6B,EAAO6k6B,UAC9C,GAVqBp65B,CAYxBohhC,IACUG,GAAyBxihC,IAAA,IAAC,WACrCmB,EAAU,MACVjB,GACDF,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CAGbpU,SAAU,WACV81B,MAAO,EACPD,IAAK,mBAELirL,cAAe,OAEf1vM,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOC,OAC5C,CAAC,KAADrN,OAAMkshC,GAAoB5+gC,WAAa,CACrCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOE,WAE7CvC,EAAW6oB,MAAQ,CACpB/L,UAAW,kBACa,WAAvB9c,EAAWyZ,SAAwB,CACpCkL,MAAO,GACiB,aAAvB3kB,EAAWyZ,SAA0B,CACtCkL,MAAO,GACP,EACI28/B,IAAmBxhhC,EAAAA,GAAMA,IAAC,MAAO,CACrCvK,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOkQ,KAAMvF,EAAWyZ,SAAWpkB,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAWyZ,WAAazZ,EAAW6oB,MAAQxzB,EAAOkshC,SAAS,GAP1GzhhC,CAStBuhhC,IAyFH,GApFuCvrhC,EAAAA,YAAiB,SAA2B1G,EAAOiH,GACxF,MAAM,UACFuH,EAAS,SACT2E,EAAQ,MACRkE,EAAK,cACL+6gC,EAAa,SACb5O,EAAQ,QACRn5/B,EAAU,YACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCmT,WACAkX,UACAhT,UAEIrD,EApIkBpD,KACxB,MAAM,QACJoD,EAAO,QACPqW,EAAO,SACPlX,EAAQ,SACR235B,EAAQ,KACRrx4B,EAAI,MACJpiB,GACEzG,EACEqD,EAAQ,CACZshC,OAAQ,CAAC,SAAUlrB,EAASlX,GAAY,WAAY235B,GAAY,WAAYzz5B,GAAS,SACrFlB,KAAM,CAAC,OAAQ,OAAFtQ,QAASiL,EAAAA,GAAUA,GAACuZ,IAAYoP,GAAQ,WAAYtmB,GAAY,aAE/E,OAAOe,EAAAA,GAAcA,GAACD,EAAO49gC,GAA+B79gC,EAAQ,EAuHpDG,CAAkBvD,GAClC,OAAoBwD,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACxCzG,SAAU,EAAcwU,EAAAA,GAAAA,KAAKu9gC,IAAoBn+gC,EAAAA,GAAAA,GAAS,CACxDjD,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQuhC,OAAQ/mC,GAChC2E,SAAUA,EACVlM,IAAKu8gC,GAAYv8gC,GAChB0M,IAAS3T,EAAM8q6B,SAAW,MAAoBr25B,EAAAA,GAAAA,KAAKy9gC,GAAkB,CACtE79gC,GAAI+9gC,EACJxhhC,WAAYA,EACZpC,UAAWwF,EAAQmC,SAGzB,8BC9JO,SAASk8gC,GAAwBhihC,GACtC,OAAOC,EAAAA,GAAAA,IAAqB,YAAaD,EAC3C,CACA,MACA,IADsBE,EAAAA,GAAsBA,GAAC,YAAa,CAAC,OAAQ,SAAU,WAAY,SAAU,WAAY,WAAY,WAAY,UAAW,OAAQ,WAAY,aAAc,eAAgB,eAAgB,cAAe,UCAnO,IAAIk5gC,GACJ,MAAMj5gC,GAAY,CAAC,mBAAoB,aAAc,YAAa,YAAa,WAAY,YAAa,cAAe,eAAgB,WAAY,eAAgB,QAAS,gBAAiB,WAAY,UAAW,YAAa,WAAY,OAAQ,SAAU,WAAY,UAAW,UAAW,SAAU,OAAQ,WAAY,cAAe,qBAAsB,WAAY,OAAQ,QAAS,WAmB3X8hhC,IAAe5hhC,EAAAA,GAAMA,IAAC,MAAO,CACjCvK,KAAM,YACNkK,KAAM,SACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAEP,CACE,CAAC,KAAD6F,OAAM0shC,GAAch9+B,SAAWtvC,EAAOsvC,QACrC,CACD,CAAC,KAAD1vC,OAAM0shC,GAAch9+B,SAAWtvC,EAAO2K,EAAWyZ,UAChD,CACD,CAAC,KAADxkB,OAAM0shC,GAAcl7gC,QAAUpR,EAAOoR,OACpC,CACD,CAAC,KAADxR,OAAM0shC,GAAcznH,WAAa7k6B,EAAO6k6B,UACxC,GAjBep65B,CAmBlBohhC,GAA0B,CAE3B,CAAC,KAADjshC,OAAM0shC,GAAch9+B,SAAW,CAC7BvjC,OAAQ,OAERgK,UAAW,WAEXmY,aAAc,WACdE,WAAY,SACZH,SAAU,YAGRs+/B,IAAa9hhC,EAAAA,GAAMA,IAAC,MAAO,CAC/BvK,KAAM,YACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOkQ,KAAMvF,EAAWyZ,SAAWpkB,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAWyZ,WAAazZ,EAAW6oB,MAAQxzB,EAAOkshC,SAAS,GAPhHzhhC,CAShBuhhC,IACGQ,IAAoB/hhC,EAAAA,GAAMA,IAAC,QAAS,CACxCkS,kBAAmB1E,IAAQC,EAAAA,GAAqBA,GAACD,IAAkB,YAATA,EAC1D/X,KAAM,YACNkK,KAAM,cACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOyshC,aAJrBhihC,CAKvB,CACD8kB,OAAQ,EACRC,KAAM,EACNh2B,SAAU,WACV+K,QAAS,EACT+1M,cAAe,OACfxuM,MAAO,OACP4jB,UAAW,eAEb,SAASg9/B,GAAersgC,EAAG4H,GACzB,MAAiB,kBAANA,GAAwB,OAANA,EACpB5H,IAAM4H,EAIRlwB,OAAOsoB,KAAOtoB,OAAOkwB,EAC9B,CACA,SAASsqO,GAAQvmP,GACf,OAAkB,MAAXA,GAAsC,kBAAZA,IAAyBA,EAAQ7T,MACpE,CACA,MAqjBA,GAjiBiCsI,EAAAA,YAAiB,SAAqB1G,EAAOiH,GAC5E,IAAI2rhC,EACJ,MACI,mBAAoBpM,EACpB,aAAcqM,EAAS,UACvB7nH,EAAS,UACT8nH,EAAS,SACT7yhC,EAAQ,UACRuO,EAAS,YACTukhC,EAAW,aACXhkgC,EAAY,SACZ5b,EAAQ,aACR6/gC,EAAY,MACZ37gC,GAAQ,EAAK,cACb+6gC,EACA5O,SAAUsD,EAAY,QACtBmM,EAAO,UACPC,EAAY,CAAC,EAAC,SACdpoH,EAAQ,KACR3k6B,EAAI,OACJ2b,EAAM,SACN0u+B,EAAQ,QACRte,EAAO,QACPrw9B,EAAO,OACPsxgC,EACA15/B,KAAM25/B,EAAQ,SACd9xgC,EAAQ,YACR+xgC,EAAW,mBACXC,EAAqB,CAAC,EACtB/wE,SAAUgxE,EAIVl1hC,MAAO2ohC,EAAS,QAChB38/B,EAAU,YACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACxCnS,EAAOm1hC,IAAiBt4/B,EAAAA,GAAaA,GAAC,CAC3CC,WAAY6r/B,EACZh4gC,QAAS+f,EACT5oB,KAAM,YAEDsthC,EAAWC,IAAgBx4/B,EAAAA,GAAaA,GAAC,CAC9CC,WAAYi4/B,EACZpkhC,QAAS+jhC,EACT5shC,KAAM,WAEFq9gC,EAAW98gC,EAAAA,OAAa,MACxBithC,EAAajthC,EAAAA,OAAa,OACzBkthC,EAAaC,GAAkBnthC,EAAAA,SAAe,OAEnDiB,QAASmshC,GACPpthC,EAAAA,OAAyB,MAAZ0shC,IACVW,EAAmBC,GAAwBtthC,EAAAA,WAC5C498B,GAAY3o7B,EAAAA,GAAUA,GAAC10B,EAAK6/gC,GAC5BmN,EAAmBvthC,EAAAA,aAAkB9G,IACzC+zhC,EAAWhshC,QAAU/H,EACjBA,GACFi0hC,EAAej0hC,EACjB,GACC,IACGs0hC,EAA+B,MAAfN,OAAsB,EAASA,EAAYj2hC,WACjE+I,EAAAA,oBAA0B498B,GAAW,KAAM,CACzCvu8B,MAAOA,KACL49gC,EAAWhshC,QAAQoO,OAAO,EAE5BnW,KAAM4jhC,EAAS77gC,QACftJ,WACE,CAACA,IAGLqI,EAAAA,WAAgB,KACVqshC,GAAeU,GAAaG,IAAgBE,IAC9CE,EAAqBlB,EAAY,KAAOoB,EAAc/ywB,aACtDwywB,EAAWhshC,QAAQoO,QACrB,GAEC,CAAC69gC,EAAad,IAGjBpshC,EAAAA,WAAgB,KACVsk6B,GACF2oH,EAAWhshC,QAAQoO,OACrB,GACC,CAACi15B,IACJtk6B,EAAAA,WAAgB,KACd,IAAKushC,EACH,OAEF,MAAM5vgC,GAAQ3B,EAAAA,GAAAA,GAAciygC,EAAWhshC,SAAS45G,eAAe0x6B,GAC/D,GAAI5vgC,EAAO,CACT,MAAMkoH,EAAUA,KACV26B,eAAeiu3B,aACjBR,EAAWhshC,QAAQoO,OACrB,EAGF,OADAsN,EAAM1B,iBAAiB,QAAS4pH,GACzB,KACLloH,EAAM62B,oBAAoB,QAASqxF,EAAQ,CAE/C,CACgB,GACf,CAAC0n5B,IACJ,MAAMz5+B,EAASA,CAAC/f,EAAM9Y,KAChB8Y,EACE05/B,GACFA,EAAOxygC,GAEAux9B,GACTA,EAAQvx9B,GAELmzgC,IACHE,EAAqBlB,EAAY,KAAOoB,EAAc/ywB,aACtDuywB,EAAaj6/B,GACf,EAeI26/B,EAAgB1thC,EAAAA,SAAe+tb,QAAQx0b,GAavCo0hC,EAAkB1r9B,GAAShoD,IAC/B,IAAI8a,EAGJ,GAAK9a,EAAM49L,cAAc48tB,aAAa,YAAtC,CAGA,GAAIrQ,EAAU,CACZrv4B,EAAW32B,MAAMiI,QAAQ1O,GAASA,EAAMa,QAAU,GAClD,MAAMo1hC,EAAYj2hC,EAAMM,QAAQgqE,EAAM3oE,MAAM3B,QACzB,IAAfi2hC,EACF74/B,EAAS5/B,KAAK8sE,EAAM3oE,MAAM3B,OAE1Bo9B,EAASk/B,OAAO259B,EAAW,EAE/B,MACE74/B,EAAWktC,EAAM3oE,MAAM3B,MAKzB,GAHIsqE,EAAM3oE,MAAM2qT,SACdhiP,EAAM3oE,MAAM2qT,QAAQhqS,GAElBtiB,IAAUo9B,IACZ+3/B,EAAc/3/B,GACV+09B,GAAU,CAKZ,MAAM94F,EAAc/24B,EAAM+24B,aAAe/24B,EACnC4zgC,EAAc,IAAI78H,EAAYlw5B,YAAYkw5B,EAAY335B,KAAM235B,GAClEv55B,OAAOgR,eAAeolhC,EAAa,SAAU,CAC3Cvr/B,UAAU,EACV3qC,MAAO,CACLA,MAAOo9B,EACPt1B,UAGJqq/B,EAAS+jC,EAAa5r9B,EACxB,CAEGmi2B,GACHtx3B,GAAO,EAAO74B,EAnChB,CAoCA,EAcI8Y,EAAuB,OAAhBm6/B,GAAwBH,EAgBrC,IAAIxhhC,EACAuihC,SAFG7ghC,EAAM,gBAGb,MAAM8ghC,GAAkB,GACxB,IAAIC,IAAiB,EACjBC,IAAa,GAGb/P,GAAS,CACXvmhC,WACI20hC,KACAK,EACFphhC,EAAUohhC,EAAYh1hC,GAEtBq2hC,IAAiB,GAGrB,MAAM3j7B,GAAQqj7B,EAAc7vhC,KAAIokE,IAC9B,IAAmBjiE,EAAAA,eAAqBiiE,GACtC,OAAO,KAOT,IAAIhzD,EACJ,GAAIm15B,EAAU,CACZ,IAAKhm6B,MAAMiI,QAAQ1O,GACjB,MAAM,IAAI4O,OAAkJsL,EAAAA,GAAAA,GAAuB,IAErL5C,EAAWtX,EAAMgoS,MAAK9oQ,GAAKo1/B,GAAep1/B,EAAGorC,EAAM3oE,MAAM3B,SACrDsX,GAAY++gC,IACdD,GAAgB54hC,KAAK8sE,EAAM3oE,MAAMC,SAErC,MACE0V,EAAWg9gC,GAAet0hC,EAAOsqE,EAAM3oE,MAAM3B,OACzCsX,GAAY++gC,KACdF,EAAgB7r9B,EAAM3oE,MAAMC,UAMhC,OAHI0V,IACFg/gC,IAAa,GAEKjuhC,EAAAA,aAAmBiiE,EAAO,CAC5C,gBAAiBhzD,EAAW,OAAS,QACrCg1S,QAAS0puB,EAAgB1r9B,GACzBq54B,QAASrh8B,IACW,MAAdA,EAAMxkB,KAIRwkB,EAAMozB,iBAEJ40B,EAAM3oE,MAAMgi9B,SACdr54B,EAAM3oE,MAAMgi9B,QAAQrh8B,EACtB,EAEFnM,KAAM,SACNmB,WACAtX,WAAOtC,EAEP,aAAc4sE,EAAM3oE,MAAM3B,OAC1B,IAWAq2hC,KAGEzihC,EAFA645B,EAC6B,IAA3B2pH,GAAgBn5hC,OACR,KAEAm5hC,GAAgBr4gC,QAAO,CAACza,EAAQgnE,EAAO9pE,KAC/C8C,EAAO9F,KAAK8sE,GACR9pE,EAAQ41hC,GAAgBn5hC,OAAS,GACnCqG,EAAO9F,KAAK,MAEP8F,IACN,IAGK6yhC,GAKd,IAIIjyE,GAJAqyE,GAAeb,GACdjB,GAAagB,GAAoBF,IACpCgB,GAAeV,EAAc/ywB,aAI7BohsB,GAD0B,qBAAjBgxE,EACEA,EAEApghC,EAAW,KAAO,EAE/B,MAAM0hhC,GAAWvB,EAAmBj3/B,KAAOl2B,EAAO,wBAAHN,OAA2BM,QAASpK,GAC7E6U,IAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCqqB,UACAhsB,QACAo7B,OACApiB,UAEIrD,GAvVkBpD,KACxB,MAAM,QACJoD,EAAO,QACPqW,EAAO,SACPlX,EAAQ,SACR235B,EAAQ,KACRrx4B,EAAI,MACJpiB,GACEzG,EACEqD,EAAQ,CACZshC,OAAQ,CAAC,SAAUlrB,EAASlX,GAAY,WAAY235B,GAAY,WAAYzz5B,GAAS,SACrFlB,KAAM,CAAC,OAAQ,OAAFtQ,QAASiL,EAAAA,GAAUA,GAACuZ,IAAYoP,GAAQ,WAAYtmB,GAAY,YAC7Eu/gC,YAAa,CAAC,gBAEhB,OAAOx+gC,EAAAA,GAAcA,GAACD,EAAOo+gC,GAAyBr+gC,EAAQ,EAyU9CG,CAAkBvD,IAC5B8/gC,IAAa78gC,EAAAA,GAAAA,GAAS,CAAC,EAAGq/gC,EAAU9D,WAA4D,OAA/CwD,EAAuBM,EAAUn4/B,gBAAqB,EAAS63/B,EAAqBr9gC,OACrIu/gC,IAAY94/B,EAAAA,GAAKA,KACvB,OAAoB5nB,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACxCzG,SAAU,EAAcwU,EAAAA,GAAAA,KAAK69gC,IAAcz+gC,EAAAA,GAAAA,GAAS,CAClD5M,IAAKgthC,EACL1xE,SAAUA,GACV/t8B,KAAM,WACN,gBAAiBsghC,GACjB,gBAAiB3hhC,EAAW,YAASpX,EACrC,gBAAiB09B,EAAO,OAAS,QACjC,gBAAiB,UACjB,aAAco5/B,EACd,kBAAmB,CAACI,EAAS4B,IAAUvtgC,OAAO8qH,SAAStwI,KAAK,WAAQ/F,EACpE,mBAAoByqhC,EACpBzkE,UAxJkBph8B,IACpB,IAAKW,EAAU,EAKyB,IAJpB,CAAC,IAAK,UAAW,YAGnC,SACc3iB,QAAQgiB,EAAMxkB,OAC1BwkB,EAAMozB,iBACNyF,GAAO,EAAM74B,GAEjB,GA+IEsh8B,YAAa9u8B,GAAYmO,EAAW,KA/NhBX,IAED,IAAjBA,EAAMnG,SAIVmG,EAAMozB,iBACN4/+B,EAAWhshC,QAAQoO,QACnByjC,GAAO,EAAM74B,GAAM,EAwNjBmB,OA7IenB,KAEZ8Y,GAAQ3X,IAEX3jB,OAAOgR,eAAewR,EAAO,SAAU,CACrCqoB,UAAU,EACV3qC,MAAO,CACLA,QACA8H,UAGJ2b,EAAOnB,GACT,EAkIEkB,QAASA,GACRyxgC,EAAoB,CACrB1ihC,WAAYA,GACZpC,WAAW8F,EAAAA,GAAIA,GAACg/gC,EAAmB9khC,UAAWwF,GAAQuhC,OAAQ/mC,GAG9D6tB,GAAIw4/B,GACJ50hC,SAAUu4P,GAAQvmP,GAClBw3gC,KAAUA,IAAqBh1gC,EAAAA,GAAAA,KAAK,OAAQ,CAC1CjG,UAAW,cACXvO,SAAU,YACNgS,MACUwC,EAAAA,GAAAA,KAAKg+gC,IAAmB5+gC,EAAAA,GAAAA,GAAS,CACjD,eAAgBwD,EAChBhZ,MAAOyG,MAAMiI,QAAQ1O,GAASA,EAAMyD,KAAK,KAAOzD,EAChD8H,KAAMA,EACNc,IAAKu8gC,EACL,eAAe,EACfhzB,SAnOiB7v+B,IACnB,MAAMgoD,EAAQyr9B,EAAcp19B,MAAK+19B,GAAaA,EAAU/0hC,MAAM3B,QAAUsiB,EAAMQ,OAAO9iB,aACvEtC,IAAV4sE,IAGJ6q9B,EAAc7q9B,EAAM3oE,MAAM3B,OACtBmy/B,GACFA,EAAS7v+B,EAAOgoD,GAClB,EA4NE454B,UAAW,EACXpv8B,SAAUA,EACV3E,UAAWwF,GAAQ0+gC,YACnB1nH,UAAWA,EACXp65B,WAAYA,IACX+C,KAAsBc,EAAAA,GAAAA,KAAK+9gC,GAAY,CACxCn+gC,GAAI+9gC,EACJ5jhC,UAAWwF,GAAQmC,KACnBvF,WAAYA,MACG6D,EAAAA,GAAAA,KAAK2m5B,IAAMvn5B,EAAAA,GAAAA,GAAS,CACnCwoB,GAAI,QAAFx2B,OAAUM,GAAQ,IACpBwohC,SAAUuF,EACVz6/B,KAAMA,EACNy48B,QAvPgBvx9B,IAClB64B,GAAO,EAAO74B,EAAM,EAuPlB8n8B,aAAc,CACZzoyB,SAAU,SACVF,WAAY,UAEdipyB,gBAAiB,CACf/oyB,SAAU,MACVF,WAAY,WAEboz2B,EAAW,CACZ3B,eAAe19gC,EAAAA,GAAAA,GAAS,CACtB,kBAAmBo/gC,EACnBz+gC,KAAM,UACN,uBAAwBs25B,EAAW,YAAS/u6B,EAC5CwwhC,iBAAiB,EACjBlw/B,GAAIy4/B,IACH5B,EAAU3B,eACbx2/B,WAAWlnB,EAAAA,GAAAA,GAAS,CAAC,EAAGq/gC,EAAUn4/B,UAAW,CAC3CxlB,OAAO1B,EAAAA,GAAAA,GAAS,CAAC,EAAG68gC,GAAY,CAC9BnpgC,OAAO1T,EAAAA,GAAAA,GAAS,CACdge,SAAU+igC,IACK,MAAdlE,GAAqBA,GAAWnpgC,MAAQ,UAG/CtnB,SAAU8wG,QAGhB,ICtfA,IAAezhG,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,mBACD,iBCPEsB,GAAY,CAAC,YAAa,WAAY,UAAW,YAAa,cAAe,eAAgB,gBAAiB,KAAM,QAAS,aAAc,QAAS,UAAW,YAAa,WAAY,SAAU,UAAW,SAAU,OAAQ,cAAe,qBAAsB,WACxQwZ,GAAa,CAAC,QAwBVgrgC,GAAmB,CACvB7uhC,KAAM,YACNwK,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,KAC7C+iB,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D7N,KAAM,QAEF4khC,IAAcvkhC,EAAAA,GAAMA,IAACi3gC,GAAOqN,GAAdtkhC,CAAgC,IAC9CwkhC,IAAsBxkhC,EAAAA,GAAMA,IAACw5gC,GAAe8K,GAAtBtkhC,CAAwC,IAC9DykhC,IAAoBzkhC,EAAAA,GAAMA,IAACu4gC,GAAa+L,GAApBtkhC,CAAsC,IAC1D0khC,GAAsB1uhC,EAAAA,YAAiB,SAAgB2M,EAASpM,GACpE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BrJ,KAAM,YACNnG,MAAOqT,KAEH,UACFy/gC,GAAY,EAAK,SACjB7yhC,EACA+T,QAASqhhC,EAAc,CAAC,EAAC,UACzB7mhC,EAAS,YACTukhC,GAAc,EAAK,aACnBC,GAAe,EAAK,cACpBZ,EAAgBkD,GAAiB,GACjCj5/B,EAAE,MACFxV,EAAK,WACL+//B,EAAU,MACVvjgC,EAAK,QACL4vgC,EAAO,UACPC,EAAS,SACTpoH,GAAW,EAAK,OAChByqH,GAAS,EAAK,QACdrjD,EAAO,OACPihD,EAAM,KACN15/B,EAAI,YACJ45/B,EAAW,mBACXC,EACAjpgC,QAASo/7B,EAAc,YACrBzp9B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCm2gC,EAAiB4O,EAASC,GAAoBC,GAE9CrO,EAAM/C,GAAiB,CAC3BrkhC,QACAskhC,eAHqBC,KAIrBtxU,OAAQ,CAAC,UAAW,WAEhB5orB,EAAU+8/B,EAAI/8/B,SAAWo/7B,EACzB748B,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCqqB,UACArW,QAASqhhC,IAELrhhC,EAxDkBpD,KACxB,MAAM,QACJoD,GACEpD,EACJ,OAAOoD,CAAO,EAoDEG,CAAkBvD,GAC5B8khC,GAAgB9hhC,EAAAA,GAAAA,GAA8BI,EAASgW,IACvDw9/B,EAAiB3ggC,GAAS,CAC9B1J,UAAuB1I,EAAAA,GAAAA,KAAKwghC,GAAa,CACvCrkhC,WAAYA,IAEd+khC,UAAuBlhhC,EAAAA,GAAAA,KAAKyghC,GAAqB,CAC/C7xgC,MAAOA,EACPzS,WAAYA,IAEd+je,QAAqBlge,EAAAA,GAAAA,KAAK0ghC,GAAmB,CAC3CvkhC,WAAYA,KAEdyZ,GACIurgC,GAAoBj6/B,EAAAA,GAAUA,GAAC10B,EAAKii+B,GAAmBs+C,IAC7D,OAAoB/ygC,EAAAA,GAAAA,KAAK/N,EAAAA,SAAgB,CACvCzG,SAAuByG,EAAAA,aAAmB8ghC,GAAgB3zgC,EAAAA,GAAAA,GAAS,CAGjE8ygC,iBACAC,YAAY/ygC,EAAAA,GAAAA,GAAS,CACnB5T,WACAoX,MAAO+vgC,EAAI/vgC,MACX+6gC,gBACA/ngC,UACAtqB,UAAMhE,EAEN+u6B,YACCyqH,EAAS,CACVl5/B,MACE,CACFy2/B,YACAC,cACAC,eACAC,UACAC,YACAhhD,UACAihD,SACA15/B,OACA45/B,cACAC,oBAAoBz/gC,EAAAA,GAAAA,GAAS,CAC3BwoB,MACCi3/B,IACF1M,EAAY,CACb5ygC,QAAS4ygC,GAAajugC,EAAAA,GAASA,GAAC+8gC,EAAe9O,EAAW5ygC,SAAW0hhC,GACpE7ugC,EAAQA,EAAM7mB,MAAM4mhC,WAAa,CAAC,KACnC97G,GAAYyqH,GAAUvC,IAA6B,aAAZ3ogC,EAAyB,CAClE49T,SAAS,GACP,CAAC,EAAG,CACNhhV,IAAK2uhC,EACLpnhC,WAAW8F,EAAAA,GAAIA,GAACkzgC,EAAexnhC,MAAMwO,UAAWA,EAAWwF,EAAQnU,QACjEgnB,GAAS,CACXwD,WACC1W,KAEP,IAoJAyhhC,GAAO1ghC,QAAU,SACjB,YCzRO,SAASmhhC,GAAyBxlhC,GACvC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,EACyBE,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,SAAjE,MCDMC,GAAY,CAAC,eAAgB,YAAa,WAAY,YAAa,QAAS,eAAgB,WAAY,QAAS,sBAAuB,YAAa,aAAc,KAAM,kBAAmB,aAAc,aAAc,WAAY,QAAS,UAAW,UAAW,YAAa,OAAQ,SAAU,WAAY,UAAW,cAAe,WAAY,OAAQ,SAAU,cAAe,OAAQ,QAAS,WAmBtYslhC,GAAmB,CACvB34gC,SAAUwqgC,GACVhziB,OAAQs0iB,GACR0M,SAAUzL,IAWN6L,IAAgBrlhC,EAAAA,GAAMA,IAACslhC,GAAa,CACxC7vhC,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHzB6Q,CAInB,CAAC,GA8UJ,GA5S+BhK,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,kBAEF,aACFsghC,EAAY,UACZz7G,GAAY,EAAK,SACjB/q6B,EAAQ,UACRuO,EAAS,MACTqC,EAAQ,UAAS,aACjBke,EAAY,SACZ5b,GAAW,EAAK,MAChBkE,GAAQ,EAAK,oBACb4+gC,EAAmB,UACnB7k1B,GAAY,EAAK,WACjB8k1B,EACA75/B,GAAIJ,EAAU,gBACdk6/B,EAAe,WACfvP,EAAU,WACVwP,EAAU,SACV5S,EAAQ,MACRnggC,EAAK,QACLiggC,EAAO,QACPC,EAAO,UACP+B,GAAY,EAAK,KACjBn/gC,EAAI,OACJ2b,EAAM,SACN0u+B,EAAQ,QACR3u+B,EAAO,YACP6qK,EAAW,SACXhzJ,GAAW,EAAK,KAChBw4B,EAAI,OACJ3c,GAAS,EAAK,YACd8g/B,EAAW,KACXt2hC,EAAI,MACJ1B,EAAK,QACLgsB,EAAU,YACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCgr6B,YACAn65B,QACAsC,WACAkE,QACA+5L,YACAk00B,YACA5r/B,WACA6b,SACAlrB,YAEIrW,EAlGkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBg2hC,GAA0B7hhC,EAAQ,EA2F/CG,CAAkBvD,GAMlC,MAAM0lhC,EAAY,CAAC,EACH,aAAZjsgC,IACE8rgC,GAAqD,qBAA3BA,EAAgBvL,SAC5C0L,EAAUrusB,QAAUkusB,EAAgBvL,QAEtC0L,EAAUjzgC,MAAQA,GAEhBkyB,IAEG8g/B,GAAgBA,EAAYd,SAC/Be,EAAUj6/B,QAAKtgC,GAEjBu6hC,EAAU,yBAAsBv6hC,GAElC,MAAMsgC,GAAKL,EAAAA,GAAKA,GAACC,GACXs6/B,EAAeL,GAAc75/B,EAAK,GAAHx2B,OAAMw2B,EAAE,qBAAiBtgC,EACxDy6hC,EAAenzgC,GAASgZ,EAAK,GAAHx2B,OAAMw2B,EAAE,eAAWtgC,EAC7CyrhC,EAAiBsO,GAAiBzrgC,GAClCosgC,GAA4BhihC,EAAAA,GAAAA,KAAK+ygC,GAAgB3zgC,EAAAA,GAAAA,GAAS,CAC9D,mBAAoB0ihC,EACpB9P,aAAcA,EACdz7G,UAAWA,EACXj84B,aAAcA,EACdqiL,UAAWA,EACXk00B,UAAWA,EACXn/gC,KAAMA,EACN+rD,KAAMA,EACNox9B,QAASA,EACTC,QAASA,EACTxjhC,KAAMA,EACN1B,MAAOA,EACPg+B,GAAIA,EACJmn/B,SAAUA,EACV1hgC,OAAQA,EACR0u+B,SAAUA,EACV3u+B,QAASA,EACT6qK,YAAaA,EACbk61B,WAAYA,GACX0P,EAAWF,IACd,OAAoBhihC,EAAAA,GAAAA,MAAM2hhC,IAAelihC,EAAAA,GAAAA,GAAS,CAChDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B2E,SAAUA,EACVkE,MAAOA,EACP+5L,UAAWA,EACXnqM,IAAKA,EACLyyB,SAAUA,EACV7oB,MAAOA,EACPwZ,QAASA,EACTzZ,WAAYA,GACX+C,EAAO,CACR1T,SAAU,CAAU,MAATojB,GAA2B,KAAVA,IAA6B5O,EAAAA,GAAAA,KAAKiihC,IAAY7ihC,EAAAA,GAAAA,GAAS,CACjF8ihC,QAASt6/B,EACTA,GAAIm6/B,GACHL,EAAiB,CAClBl2hC,SAAUojB,KACPkyB,GAAsB9gC,EAAAA,GAAAA,KAAK2ghC,IAAQvhhC,EAAAA,GAAAA,GAAS,CAC/C,mBAAoB0ihC,EACpBl6/B,GAAIA,EACJ42/B,QAASuD,EACTn4hC,MAAOA,EACPwoB,MAAO4vgC,GACNJ,EAAa,CACdp2hC,SAAUA,KACNw2hC,EAAcP,IAA2BzhhC,EAAAA,GAAAA,KAAKmihC,IAAgB/ihC,EAAAA,GAAAA,GAAS,CAC3EwoB,GAAIk6/B,GACHN,EAAqB,CACtBh2hC,SAAUi2hC,QAGhB,ICvMO,SAASW,GAAsBxmhC,GACpC,OAAOC,EAAAA,GAAAA,IAAqB,YAAaD,EAC3C,CACA,MACA,IADsBE,EAAAA,GAAsBA,GAAC,YAAa,CAAC,OAAQ,cAAe,aAAc,YAAa,QAAS,mBAAoB,kBAAmB,kBAAmB,eAAgB,eAAgB,eAAgB,eAAgB,eAAgB,iBAAkB,oBCAlR,SAJmC7J,EAAAA,cAAoB,CAAC,GCGlD8J,GAAY,CAAC,mBAAoB,kBAAmB,oBAAqB,gBAAiB,WAAY,YAAa,uBAAwB,aAAc,YAAa,WAAY,kBAAmB,UAAW,UAAW,OAAQ,iBAAkB,aAAc,SAAU,sBAAuB,qBAAsB,mBAiB1TsmhC,IAAiBpmhC,EAAAA,GAAMA,IAACgj+B,GAAU,CACtCvt+B,KAAM,YACNkK,KAAM,WACNkrrB,UAAWA,CAACv7rB,EAAOiG,IAAWA,EAAO656B,UAHhBpv6B,CAIpB,CAED5F,QAAS,IAiBLishC,IAAarmhC,EAAAA,GAAMA,IAACij+B,GAAO,CAC/Bxt+B,KAAM,YACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAH5B6Q,CAIhB,CACD,eAAgB,CAEdjR,SAAU,yBAGRu3hC,IAAkBtmhC,EAAAA,GAAMA,IAAC,MAAO,CACpCvK,KAAM,YACNkK,KAAM,YACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOvK,UAAWuK,EAAO,SAADJ,QAAUiL,EAAAA,GAAUA,GAACF,EAAWgv/B,UAAW,GAPvDlv/B,EASrBM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb7B,OAAQ,OACR,eAAgB,CACdA,OAAQ,QAGVif,QAAS,GACc,UAAtBrgB,EAAWgv/B,QAAsB,CAClC3t/B,QAAS,OACTwiB,eAAgB,SAChBC,WAAY,UACW,SAAtB9jB,EAAWgv/B,QAAqB,CACjC/sE,UAAW,OACXm+C,UAAW,SACXn78B,UAAW,SACX,WAAY,CACVynX,QAAS,KACTrrY,QAAS,eACT+xJ,cAAe,SACfhyJ,OAAQ,OACRD,MAAO,MAET,IACIklhC,IAAcvmhC,EAAAA,GAAMA,IAACqq8B,GAAO,CAChC508B,KAAM,YACNkK,KAAM,QACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOsP,MAAOtP,EAAO,cAADJ,QAAeiL,EAAAA,GAAUA,GAACF,EAAWgv/B,UAAY35/B,EAAO,aAADJ,QAAciL,EAAAA,GAAUA,GAAC9S,OAAO4S,EAAW6gB,aAAe7gB,EAAWwgM,WAAanrM,EAAOixhC,eAAgBtmhC,EAAWumhC,YAAclxhC,EAAOmxhC,gBAAgB,GAP5N1mhC,EASjBjB,IAAA,IAAC,MACFE,EAAK,WACLiB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACb8b,OAAQ,GACRlwB,SAAU,WACVoz7B,UAAW,OAEX,eAAgB,CACdA,UAAW,UACXn95B,UAAW,SAEU,UAAtB9kB,EAAWgv/B,QAAsB,CAClC3t/B,QAAS,OACTsiB,cAAe,SACfzC,UAAW,qBACY,SAAtBlhB,EAAWgv/B,QAAqB,CACjC3t/B,QAAS,eACT+xJ,cAAe,SACfnuI,UAAW,SACTjlB,EAAW6gB,UAAY,CACzBA,SAAU,qBACe,OAAxB7gB,EAAW6gB,UAAqB,CACjCA,SAAqC,OAA3B9hB,EAAMmM,YAAY6Q,KAAgB7uB,KAAK6mB,IAAIhV,EAAMmM,YAAY6J,OAAO4E,GAAI,KAAO,OAAH1kB,OAAU8J,EAAMmM,YAAY6J,OAAO4E,IAAE1kB,OAAG8J,EAAMmM,YAAY6Q,KAAI,YACpJ,CAAC,KAAD9mB,OAAMwxhC,GAAcC,kBAAoB,CACtC,CAAC3nhC,EAAMmM,YAAYgR,KAAKhvB,KAAK6mB,IAAIhV,EAAMmM,YAAY6J,OAAO4E,GAAI,KAAO,KAAU,CAC7EkH,SAAU,uBAGb7gB,EAAW6gB,UAAoC,OAAxB7gB,EAAW6gB,UAAqB,CACxDA,SAAU,GAAF5rB,OAAK8J,EAAMmM,YAAY6J,OAAO/U,EAAW6gB,WAAS5rB,OAAG8J,EAAMmM,YAAY6Q,MAC/E,CAAC,KAAD9mB,OAAMwxhC,GAAcC,kBAAoB,CACtC,CAAC3nhC,EAAMmM,YAAYgR,KAAKnd,EAAMmM,YAAY6J,OAAO/U,EAAW6gB,UAAY,KAAU,CAChFA,SAAU,uBAGb7gB,EAAWwgM,WAAa,CACzBr/L,MAAO,qBACNnB,EAAWumhC,YAAc,CAC1BxngC,OAAQ,EACR5d,MAAO,OACP0f,SAAU,OACVzf,OAAQ,OACR8f,UAAW,OACX1E,aAAc,EACd,CAAC,KAADvnB,OAAMwxhC,GAAcC,kBAAoB,CACtC3ngC,OAAQ,EACR8B,SAAU,SAEZ,IA8PF,GAzP4B/qB,EAAAA,YAAiB,SAAgB2M,EAASpM,GACpE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,cAEFwJ,EAAQqq8B,KACRu9E,EAA4B,CAChC99+B,MAAO9pC,EAAM0C,YAAYC,SAAS+K,eAClCq8B,KAAM/pC,EAAM0C,YAAYC,SAASgL,gBAG/B,mBAAoBkpgC,EACpB,kBAAmBgR,EAAkB,kBACrC1jD,EAAiB,cACjBC,EAAa,SACb9z+B,EAAQ,UACRuO,EAAS,qBACTqj+B,GAAuB,EAAK,WAC5BslD,GAAa,EAAK,UAClB/l1B,GAAY,EAAK,SACjB3/K,EAAW,KAAI,gBACfyi9B,EAAe,QACfvprB,EAAO,QACPunrB,EAAO,KACPz48B,EAAI,eACJg+/B,EAAiB18E,GAAK,WACtBq0E,EAAa,CAAC,EAAC,OACfxvB,EAAS,QAAO,oBAChBhxB,EAAsBY,GAAI,mBAC1BpjH,EAAqBmrK,EAAyB,gBAC9ChI,GACEvvhC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6x+B,uBACAslD,aACA/l1B,YACA3/K,WACAmu+B,WAEI5r/B,EAlKkBpD,KACxB,MAAM,QACJoD,EAAO,OACP4r/B,EAAM,SACNnu+B,EAAQ,UACR2/K,EAAS,WACT+l1B,GACEvmhC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QACPnE,UAAW,CAAC,YAAa,SAAFmK,QAAWiL,EAAAA,GAAUA,GAAC8u/B,KAC7Crq/B,MAAO,CAAC,QAAS,cAAF1P,QAAgBiL,EAAAA,GAAUA,GAAC8u/B,IAAO,aAAA/5/B,QAAiBiL,EAAAA,GAAUA,GAAC9S,OAAOyzB,KAAc2/K,GAAa,iBAAkB+l1B,GAAc,oBAEjJ,OAAOjjhC,EAAAA,GAAcA,GAACD,EAAO4ihC,GAAuB7ihC,EAAQ,EAqJ5CG,CAAkBvD,GAC5B8mhC,EAAgBhxhC,EAAAA,SAuBhBixhC,GAAiB37/B,EAAAA,GAAKA,GAACw7/B,GACvBI,EAAqBlxhC,EAAAA,SAAc,KAChC,CACLmxhC,QAASF,KAEV,CAACA,IACJ,OAAoBljhC,EAAAA,GAAAA,KAAKsihC,IAAYljhC,EAAAA,GAAAA,GAAS,CAC5CrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9Buj+B,sBAAsB,EACtBni+B,WAAY,CACV8j+B,SAAUojD,IAEZxtE,gBAAiB,CACfxpC,UAAUjs6B,EAAAA,GAAAA,GAAS,CACjBu42B,qBACA/32B,GAAIy/9B,GACHC,IAELlC,qBAAsBA,EACtBK,QAASA,EACTz48B,KAAMA,EACNxyB,IAAKA,EACL0jT,QAvC0BhqS,IACtBgqS,GACFA,EAAQhqS,GAIL+2gC,EAAc/vhC,UAGnB+vhC,EAAc/vhC,QAAU,KACpBus+B,GACFA,EAAgBvz9B,GAEdux9B,GACFA,EAAQvx9B,EAAO,iBACjB,EAyBA/P,WAAYA,GACX+C,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKm69B,GAAqB/69B,EAAAA,GAAAA,GAAS,CACxDkq8B,QAAQ,EACRxiJ,GAAI9hyB,EACJtB,QAASi01B,EACT532B,KAAM,gBACL+6gC,EAAiB,CAClBtvhC,UAAuBwU,EAAAA,GAAAA,KAAKuihC,GAAiB,CAC3CxohC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQtY,WACxBum9B,YAvDkBth8B,IAGtB+2gC,EAAc/vhC,QAAUgZ,EAAMQ,SAAWR,EAAM49L,aAAa,EAqDxD3tM,WAAYA,EACZ3Q,UAAuBwU,EAAAA,GAAAA,KAAKwihC,IAAapjhC,EAAAA,GAAAA,GAAS,CAChDQ,GAAIojhC,EACJnpM,UAAW,GACX950B,KAAM,SACN,mBAAoBgygC,EACpB,kBAAmBmR,GAClBvI,EAAY,CACb5ghC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQuB,MAAO65gC,EAAW5ghC,WAC1CoC,WAAYA,EACZ3Q,UAAuBwU,EAAAA,GAAAA,KAAKqjhC,GAAcjxhC,SAAU,CAClDxI,MAAOu5hC,EACP33hC,SAAUA,cAMtB,ICzQO,SAAS83hC,GAA2B1nhC,GACzC,OAAOC,EAAAA,GAAAA,IAAqB,iBAAkBD,EAChD,CACA,MACA,IAD2BE,EAAAA,GAAsBA,GAAC,iBAAkB,CAAC,SCD/DC,GAAY,CAAC,YAAa,MAoB1BwnhC,IAAkBtnhC,EAAAA,GAAMA,IAACm29B,GAAY,CACzC1g+B,KAAM,iBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHvB6Q,CAIrB,CACDkf,QAAS,YACTxmB,KAAM,aAoDR,GAlDiC1C,EAAAA,YAAiB,SAAqB2M,EAASpM,GAC9E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,oBAEF,UACFqI,EACA6tB,GAAI47/B,GACFj4hC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,EAAa5Q,EACbgU,EA5BkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBk4hC,GAA4B/jhC,EAAQ,EAqBjDG,CAAkBvD,IAC5B,QACJinhC,EAAUI,GACRvxhC,EAAAA,WAAiBoxhC,IACrB,OAAoBrjhC,EAAAA,GAAAA,KAAKujhC,IAAiBnkhC,EAAAA,GAAAA,GAAS,CACjDP,UAAW,KACX9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,EACLojB,QAAS,KACTgS,GAAc,MAAV47/B,EAAiBA,EAASJ,GAC7BlkhC,GACL,ICrDO,SAASukhC,GAA6B7nhC,GAC3C,OAAOC,EAAAA,GAAAA,IAAqB,mBAAoBD,EAClD,EAC6BE,EAAAA,GAAsBA,GAAC,mBAAoB,CAAC,OAAQ,aAAjF,MCDMC,GAAY,CAAC,YAAa,YAoB1B2nhC,IAAoBznhC,EAAAA,GAAMA,IAAC,MAAO,CACtCvK,KAAM,mBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAWylM,UAAYpwM,EAAOowM,SAAS,GAPtC3lM,EASvBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbzK,KAAM,WAEN+nhC,wBAAyB,QACzBt+F,UAAW,OACXjj6B,QAAS,aACRhf,EAAWylM,SAAW,CACvBzmL,QAAS,YACTY,UAAW,aAAF3qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,SACtDqb,aAAc,aAAF7qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,UACvD,CACF,CAAC,IAADxP,OAAKuyhC,GAAmBv4hC,KAAI,SAAS,CACnC0yB,WAAY,IAEd,IAgDF,GA/CmC7rB,EAAAA,YAAiB,SAAuB2M,EAASpM,GAClF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,sBAEF,UACFqI,EAAS,SACT6nM,GAAW,GACTr2M,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCq2M,aAEIriM,EAlDkBpD,KACxB,MAAM,QACJoD,EAAO,SACPqiM,GACEzlM,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQw2M,GAAY,aAE7B,OAAOniM,EAAAA,GAAcA,GAACD,EAAOikhC,GAA8BlkhC,EAAQ,EA0CnDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK0jhC,IAAmBtkhC,EAAAA,GAAAA,GAAS,CACnDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,GACJ0M,GACL,ICpEO,SAAS0khC,GAA6BhohC,GAC3C,OAAOC,EAAAA,GAAAA,IAAqB,mBAAoBD,EAClD,EAC6BE,EAAAA,GAAsBA,GAAC,mBAAoB,CAAC,OAAQ,YAAjF,MCDMC,GAAY,CAAC,YAAa,kBAmB1B8nhC,IAAoB5nhC,EAAAA,GAAMA,IAAC,MAAO,CACtCvK,KAAM,mBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,MAAO+Q,EAAW2nhC,gBAAkBtyhC,EAAOonB,QAAQ,GAP5C3c,EASvBM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTyiB,WAAY,SACZ9E,QAAS,EACT6E,eAAgB,WAChBrrB,KAAM,aACJwH,EAAW2nhC,gBAAkB,CAC/B,gCAAiC,CAC/B7kgC,WAAY,IAEd,IAgDF,GA/CmChtB,EAAAA,YAAiB,SAAuB2M,EAASpM,GAClF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,sBAEF,UACFqI,EAAS,eACT+phC,GAAiB,GACfv4hC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCu4hC,mBAEIvkhC,EA7CkBpD,KACxB,MAAM,QACJoD,EAAO,eACPukhC,GACE3nhC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QAAS04hC,GAAkB,YAEpC,OAAOrkhC,EAAAA,GAAcA,GAACD,EAAOokhC,GAA8BrkhC,EAAQ,EAqCnDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK6jhC,IAAmBzkhC,EAAAA,GAAAA,GAAS,CACnDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,GACJ0M,GACL,IC/De,SAASzD,GAAcR,GACpC,MAAM,MACJC,EAAK,KACLxJ,EAAI,MACJnG,GACE0P,EACJ,OAAKC,GAAUA,EAAMC,YAAeD,EAAMC,WAAWzJ,IAAUwJ,EAAMC,WAAWzJ,GAAM2J,cAG/EC,EAAAA,GAAYA,GAACJ,EAAMC,WAAWzJ,GAAM2J,aAAc9P,GAFhDA,CAGX,CCQA,SAASw4hC,GAAiB154B,EAAO254B,EAAgBju5B,EAAYku5B,EAAeC,GAC1E,MAAOj0hC,EAAO63P,GAAY71P,EAAAA,UAAe,IACnCiyhC,GAASnu5B,EACJA,EAAWsU,GAAO19H,QAEvBs3gC,EACKA,EAAc554B,GAAO19H,QAKvBq3gC,IAwBT,OAtBA/8/B,EAAAA,GAAiBA,IAAC,KAChB,IAAIxoB,GAAS,EACb,IAAKs3H,EACH,OAEF,MAAMou5B,EAAYpu5B,EAAWsU,GACvB+54B,EAAcA,KAId3lhC,GACFqpP,EAASq8xB,EAAUx3gC,QACrB,EAKF,OAHAy3gC,IAEAD,EAAUtr5B,YAAYur5B,GACf,KACL3lhC,GAAS,EACT0lhC,EAAUvt5B,eAAewt5B,EAAY,CACtC,GACA,CAAC/54B,EAAOtU,IACJ9lI,CACT,CAGA,MAAMo0hC,GAAiCpyhC,EAAiC,qBACxE,SAASqyhC,GAAiBj64B,EAAO254B,EAAgBju5B,EAAYku5B,EAAeC,GAC1E,MAAMK,EAAqBtyhC,EAAAA,aAAkB,IAAM+xhC,GAAgB,CAACA,IAC9DQ,EAAoBvyhC,EAAAA,SAAc,KACtC,GAAIiyhC,GAASnu5B,EACX,MAAO,IAAMA,EAAWsU,GAAO19H,QAEjC,GAAsB,OAAlBs3gC,EAAwB,CAC1B,MAAM,QACJt3gC,GACEs3gC,EAAc554B,GAClB,MAAO,IAAM19H,CACf,CACA,OAAO43gC,CAAkB,GACxB,CAACA,EAAoBl64B,EAAO454B,EAAeC,EAAOnu5B,KAC9Cg8xB,EAAaw1D,GAAat19B,EAAAA,SAAc,KAC7C,GAAmB,OAAf8jI,EACF,MAAO,CAACwu5B,EAAoB,IAAM,QAEpC,MAAME,EAAiB1u5B,EAAWsU,GAClC,MAAO,CAAC,IAAMo64B,EAAe93gC,QAAS6pB,IAEpCiu/B,EAAe5r5B,YAAYriG,GACpB,KACLiu/B,EAAe7t5B,eAAepgG,EAAO,GAEvC,GACD,CAAC+t/B,EAAoBxu5B,EAAYsU,IAEpC,OADcg64B,GAA+B98D,EAAWx1D,EAAayyH,EAEvE,CACe,SAASE,GAAcC,GAA0B,IAAdr+hC,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC3D,MAAM0H,EAAQqq8B,KAKRq/E,EAAsC,qBAAXx+/B,QAAuD,qBAAtBA,OAAO2vG,YACnE,eACJiu5B,GAAiB,EAAK,WACtBju5B,GAAa6u5B,EAAoBx+/B,OAAO2vG,WAAa,MAAI,cACzDku5B,EAAgB,KAAI,MACpBC,GAAQ,GACNzohC,GAAc,CAChB/J,KAAM,mBACNnG,MAAOjF,EACP4U,UAOF,IAAImvI,EAA8B,oBAAfs64B,EAA4BA,EAAWzphC,GAASyphC,EACnEt64B,EAAQA,EAAMxgJ,QAAQ,eAAgB,IAYtC,YATuEvC,IAAnC+8hC,GAA+CC,GAAmBP,IAC5D154B,EAAO254B,EAAgBju5B,EAAYku5B,EAAeC,EAS9F,CCzHe,SAASW,GAAatohC,GAKlC,IALmC,MACpChR,EAAK,KACLmG,EAAI,aACJoY,EAAY,QACZF,GACDrN,EACKrB,EAAQqq8B,GAASz77B,GACjBF,IACF1O,EAAQA,EAAM0O,IAAY1O,GAO5B,OALoBO,GAAc,CAChCP,QACAxJ,OACAnG,SAGJ,CCfe,SAASs5hC,GAAatohC,GAGlC,IAHmC,MACpChR,EAAK,KACLmG,GACD6K,EACC,OAAOuohC,GAAoB,CACzBv5hC,QACAmG,OACAoY,aAAY,KACZF,QAASC,GAAAA,GAEb,2BCXO,SAASqp8B,GAAsBL,EAAgB128B,EAAY228B,GAChE,MAA8B,oBAAnBD,EACFA,EAAe128B,EAAY228B,GAE7BD,CACT,CCRA,MACA,GADgB/0D,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,SCDxCinI,GAAgBA,CAACC,EAAOC,IAC/BD,EAAMn+hC,SAAWo+hC,EAAcp+hC,QAG5Bo+hC,EAAcxigC,OAAMyigC,GAAgBF,EAAM3iqB,SAAS6iqB,KAE/CC,GAAwB5ohC,IAK/B,IALgC,OACpC6ohC,EAAM,cACNC,EAAa,MACbL,EAAK,aACLM,GACD/ohC,EACC,MAAMgphC,EAA4B,MAATP,EAAgBA,EAAQM,EACjD,IAAIE,EACJ,GAAc,MAAVJ,EACFI,EAAoBJ,OACf,GAAIG,EAAiBljqB,SAASgjqB,GACnCG,EAAoBH,MACf,MAAIE,EAAiB1+hC,OAAS,GAGnC,MAAM,IAAI2R,MAAM,wDAFhBgthC,EAAoBD,EAAiB,EAGvC,CACA,MAAO,CACLP,MAAOO,EACPH,OAAQI,EACT,ECzBUC,GAAmBA,CAACzpE,EAAO0pE,EAAWC,KACjD,IAAIC,EAAaF,EAIjB,OAHAE,EAAa5pE,EAAMvu4B,SAASm48B,EAAY5pE,EAAMjx7B,SAAS46/B,IACvDC,EAAa5pE,EAAMjtE,WAAW62I,EAAY5pE,EAAM/w7B,WAAW06/B,IAC3DC,EAAa5pE,EAAMhtE,WAAW42I,EAAY5pE,EAAM7w7B,WAAWw6/B,IACpDC,CAAU,EAENC,GAAyBtphC,IAShC,IATiC,KACrCqP,EAAI,cACJk6gC,EAAa,YACbC,EAAW,QACXC,EAAO,QACPC,EAAO,eACPC,EAAc,MACdlqE,EAAK,SACLmqE,GACD5phC,EACC,MAAM+w4B,EAAQm4I,GAAiBzpE,EAAOA,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GAAWv6gC,GAC/Em6gC,GAAe/pE,EAAMpw7B,SAASq6/B,EAAS34I,KACzC24I,EAAU34I,GAERw4I,GAAiB9pE,EAAMrw7B,QAAQq6/B,EAAS14I,KAC1C04I,EAAU14I,GAEZ,IAAItmpB,EAAUp7O,EACVy6gC,EAAWz6gC,EAWf,IAVIow8B,EAAMpw7B,SAAShgB,EAAMq6gC,KACvBj/xB,EAAUi/xB,EACVI,EAAW,MAETrqE,EAAMrw7B,QAAQ/f,EAAMo6gC,KAClBK,IACFA,EAAWL,GAEbh/xB,EAAU,MAELA,GAAWq/xB,GAAU,CAO1B,GANIr/xB,GAAWg1tB,EAAMrw7B,QAAQq7N,EAASg/xB,KACpCh/xB,EAAU,MAERq/xB,GAAYrqE,EAAMpw7B,SAASy6/B,EAAUJ,KACvCI,EAAW,MAETr/xB,EAAS,CACX,IAAKk/xB,EAAel/xB,GAClB,OAAOA,EAETA,EAAUg1tB,EAAMsqE,QAAQt/xB,EAAS,EACnC,CACA,GAAIq/xB,EAAU,CACZ,IAAKH,EAAeG,GAClB,OAAOA,EAETA,EAAWrqE,EAAMsqE,QAAQD,GAAW,EACtC,CACF,CACA,OAAO,IAAI,EAGAE,GAAmBA,CAACvqE,EAAOpy9B,EAAO0wB,IAChC,MAAT1wB,GAAkBoy9B,EAAMzw7B,QAAQ3hC,GAG7BA,EAFE0wB,EAUEksgC,GAAkBA,CAACxqE,EAAO/y7B,KACrC,MACML,EAAS,CADIoz7B,EAAMyqE,YAAYx9/B,IAErC,KAAOL,EAAO/hC,OAAS,IAAI,CACzB,MAAM6/hC,EAAY99/B,EAAOA,EAAO/hC,OAAS,GACzC+hC,EAAOxhC,KAAK409B,EAAM2qE,UAAUD,EAAW,GACzC,CACA,OAAO99/B,CAAM,EAEFg+/B,GAAeA,CAAC5qE,EAAOmqE,EAAUU,IAA4B,SAAdA,EAAuB7qE,EAAM8qE,WAAW9qE,EAAMoqE,sBAAiB9+hC,EAAW6+hC,IAAanqE,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GACxKY,GAAiBA,CAAC/qE,EAAOvv7B,KACpC,MAAM7gB,EAAOow8B,EAAMvu4B,SAASuu4B,EAAMpw8B,OAAqB,OAAb6gB,EAAoB,EAAI,IAClE,OAAOuv7B,EAAMzv7B,OAAO3gB,EAAM,WAAW,EAEjCo7gC,GAAY,CAAC,OAAQ,QAAS,OACvBC,GAAmBh7+B,GAAQ+6+B,GAAU3kqB,SAASp2U,GAC9Ci7+B,GAAoBA,CAAClrE,EAAKhh9B,EAGpCmshC,KAAgB,IAHsB,OACvC56/B,EAAM,MACNy4/B,GACDhqhC,EACC,GAAc,MAAVuxB,EACF,OAAOA,EAET,MAAM4C,EAAU6s7B,EAAM7s7B,QACtB,OAAI41/B,GAAcC,EAAO,CAAC,SACjB71/B,EAAQlG,KAEb87/B,GAAcC,EAAO,CAAC,UACjB71/B,EAAQtjB,MAEbk5gC,GAAcC,EAAO,CAAC,QACjB71/B,EAAQi4/B,WAEbrC,GAAcC,EAAO,CAAC,QAAS,SAC1B,GAAP5zhC,OAAU+9B,EAAQtjB,MAAK,KAAAza,OAAI+9B,EAAQlG,MAEjC87/B,GAAcC,EAAO,CAAC,MAAO,UACxB,GAAP5zhC,OAAU+9B,EAAQtjB,MAAK,KAAAza,OAAI+9B,EAAQi4/B,YAEjCD,EAIK,KAAKt5gC,KAAKmu8B,EAAMqrE,wBAA0Bl4/B,EAAQm4/B,sBAAwBn4/B,EAAQo4/B,WAEpFp4/B,EAAQq4/B,YAAY,EAEhBC,GAAcA,CAACzrE,EAAOpw8B,KACjC,MAAM0B,EAAQ0u8B,EAAM0rE,YAAY97gC,GAChC,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG9b,KAAIg9B,GAAQkv7B,EAAMsqE,QAAQh5gC,EAAOwf,IAAM,ECxHhE66/B,GAAY,CAAC,QAAS,UAAW,WAC1BC,GAAa37+B,GAAQ07+B,GAAUtlqB,SAASp2U,GAQxC47+B,GAAyBA,CAACj+hC,EAAO6iC,EAAUq7/B,KACtD,GAAIA,EAAM,CAER,IADwBl+hC,GAAS,GAAK,KAAO,QACrB6iC,EACtB,MAAoB,OAAbA,EAAoB7iC,EAAQ,GAAKA,EAAQ,EAEpD,CACA,OAAOA,CAAK,EAMDm+hC,GAAkBA,CAACn8gC,EAAMow8B,IACN,KAAvBA,EAAMjx7B,SAASnf,GAAwC,GAAzBow8B,EAAM/w7B,WAAWrf,GAAaow8B,EAAM7w7B,WAAWvf,GAEzEo8gC,GAA8BA,CAACC,EAA0CjsE,IAAU,CAACksE,EAAUC,IACrGF,EACKjsE,EAAMrw7B,QAAQu8/B,EAAUC,GAE1BJ,GAAgBG,EAAUlsE,GAAS+rE,GAAgBI,EAAWnsE,GAE1DosE,GAAoBA,CAACpsE,EAAKz/8B,KAIjC,IAJmC,OACvCgwB,EAAM,MACNy4/B,EAAK,KACL8C,GACDvrhC,EACC,GAAc,MAAVgwB,EACF,OAAOA,EAET,MAAM4C,EAAU6s7B,EAAM7s7B,QACtB,OAAI41/B,GAAcC,EAAO,CAAC,UACjB8C,EAAO,GAAH12hC,OAAM+9B,EAAQk5/B,SAAQ,KAAAj3hC,OAAI+9B,EAAQ1C,UAAa0C,EAAQm5/B,SAEhEvD,GAAcC,EAAO,CAAC,YACjB71/B,EAAQM,QAEbs1/B,GAAcC,EAAO,CAAC,YACjB71/B,EAAQO,QAEbq1/B,GAAcC,EAAO,CAAC,UAAW,YAC5B,GAAP5zhC,OAAU+9B,EAAQM,QAAO,KAAAr+B,OAAI+9B,EAAQO,SAEnCq1/B,GAAcC,EAAO,CAAC,QAAS,UAAW,YACrC8C,EAAO,GAAH12hC,OAAM+9B,EAAQk5/B,SAAQ,KAAAj3hC,OAAI+9B,EAAQM,QAAO,KAAAr+B,OAAI+9B,EAAQO,QAAO,KAAAt+B,OAAI+9B,EAAQ1C,UAAQ,GAAAr7B,OAAQ+9B,EAAQm5/B,SAAQ,KAAAl3hC,OAAI+9B,EAAQM,QAAO,KAAAr+B,OAAI+9B,EAAQO,SAE7Io4/B,EAAO,GAAH12hC,OAAM+9B,EAAQk5/B,SAAQ,KAAAj3hC,OAAI+9B,EAAQM,QAAO,KAAAr+B,OAAI+9B,EAAQ1C,UAAQ,GAAAr7B,OAAQ+9B,EAAQm5/B,SAAQ,KAAAl3hC,OAAI+9B,EAAQM,QAAS,ECtD1G84/B,GAA2B,CACtCt//B,KAAM,EACNpd,MAAO,EACP4iB,IAAK,EACLa,MAAO,EACPG,QAAS,EACTC,QAAS,EACT3mB,aAAc,GAUVy/gC,GAAYA,CAACxsE,EAAOysE,EAAa78gC,KACrC,GAAI68gC,IAAgBF,GAAyBt//B,KAC3C,OAAO+y7B,EAAMyqE,YAAY76gC,GAE3B,GAAI68gC,IAAgBF,GAAyB18gC,MAC3C,OAAOmw8B,EAAM0sE,aAAa98gC,GAE5B,GAAI68gC,IAAgBF,GAAyB95/B,IAC3C,OAAOut7B,EAAM8qE,WAAWl7gC,GAI1B,IAAI+8gC,EAAc/8gC,EAUlB,OATI68gC,EAAcF,GAAyB94/B,UACzCk5/B,EAAc3sE,EAAMjtE,WAAW45I,EAAa,IAE1CF,EAAcF,GAAyB74/B,UACzCi5/B,EAAc3sE,EAAMhtE,WAAW25I,EAAa,IAE1CF,EAAcF,GAAyBx/gC,eACzC4/gC,EAAc3sE,EAAM/sE,gBAAgB05I,EAAa,IAE5CA,CAAW,ECvCPC,GAAsCA,CAAC5sE,EAAO6sE,KACzD,MAAMzthC,EAAS4g9B,EAAM8sE,eAAeD,GACpC,GAAc,MAAVzthC,EACF,MAAM,IAAI5C,MAAM,CAAC,mBAADpH,OAAoBy3hC,EAAW,oDAAoD,0IAA0Ix7hC,KAAK,OAEpP,MAAsB,kBAAX+N,EACF,CACL9P,KAAM8P,EACNgk9B,YAAwB,aAAXhk9B,EAAwB,SAAW,QAChD8jN,eAAW53N,GAGR,CACLgE,KAAM8P,EAAO2thC,YACb3pE,YAAahk9B,EAAOgk9B,YACpBlgwB,UAAW9jN,EAAO8jN,UACnB,EAgBU8p0B,GAAmBA,CAAChtE,EAAOmqE,EAAU55/B,KAChD,MAAMigb,EAAW,GACXtza,EAAM8i7B,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GACxC8C,EAAYjtE,EAAM0rE,YAAYxu/B,GAC9Bgw/B,EAAUltE,EAAMmtE,UAAUjw/B,GAChC,IAAIhmC,EAAU+1hC,EACd,KAAOjtE,EAAMpw7B,SAAS14B,EAASg2hC,IAC7B18kB,EAASpld,KAAK8L,GACdA,EAAU8o9B,EAAMsqE,QAAQpzhC,EAAS,GAEnC,OAAOs5c,EAAS18c,KAAIi94B,GAAWivE,EAAMotE,eAAer8I,EAASxg3B,IAAQ,EAE1D88/B,GAA0BA,CAACrtE,EAAOmqE,EAAU4C,EAAax8/B,KACpE,OAAQw8/B,GACN,IAAK,QAED,OAAOvC,GAAgBxqE,EAAOA,EAAMoqE,sBAAiB9+hC,EAAW6+hC,IAAWr2hC,KAAI+b,GAASmw8B,EAAMotE,eAAev9gC,EAAO0gB,KAExH,IAAK,UAED,OAAOy8/B,GAAiBhtE,EAAOmqE,EAAU55/B,GAE7C,IAAK,WACH,CACE,MAAM2M,EAAM8i7B,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GAC9C,MAAO,CAACnqE,EAAM8qE,WAAW5t/B,GAAM8i7B,EAAMstE,SAASpw/B,IAAMppC,KAAI8b,GAAQow8B,EAAMotE,eAAex9gC,EAAM2gB,IAC7F,CACF,QAEI,MAAO,GAEb,EAEWg9/B,GAAoBA,CAACvtE,EAAOwtE,EAAU/6hC,KACjD,IAAIg7hC,EAAgBD,EAMpB,IAHAC,EAAgBz3gC,OAAOy3gC,GAAe11hC,WAG/B01hC,EAAc5iiC,OAAS4H,GAC5Bg7hC,EAAgB,IAAHr4hC,OAAOq4hC,GAEtB,OAAOA,CAAa,EAETC,GAAyBA,CAAC1tE,EAAOmqE,EAAUv8hC,EAAO+/hC,EAAmBh+W,KAOhF,GAAqB,QAAjBA,EAAQrgrB,MAA0C,sBAAxBqgrB,EAAQyzS,YAAqC,CACzE,MAAMxz8B,EAAOow8B,EAAMtu4B,QAAQi88B,EAAkBC,aAAchgiC,GAC3D,OAAOoy9B,EAAMotE,eAAex9gC,EAAM+/pB,EAAQp/oB,OAC5C,CAGA,MAAMi9/B,EAAW5/hC,EAAMmK,WACvB,OAAI43qB,EAAQk+W,uBACHN,GAAkBvtE,EAAOwtE,EAAU79W,EAAQzsd,WAE7Csq0B,CAAQ,EAEJM,GAAqBA,CAAC9tE,EAAOmqE,EAAUx6W,EAAS1gmB,EAAS8+8B,EAAyBC,EAAYC,KACzG,MAAMni6B,EA/EoB78C,KAC1B,OAAQA,GACN,IAAK,UACH,OAAO,EACT,IAAK,YACH,OAAQ,EACV,IAAK,SACH,OAAO,EACT,IAAK,WACH,OAAQ,EACV,QACE,OAAO,EACX,EAmEci/8B,CAAoBj/8B,GAC5Bo6K,EAAsB,SAAZp6K,EACVygN,EAAoB,QAAZzgN,EACRk/8B,EAAsC,KAAlBx+W,EAAQ/hrB,OAAgBy7P,GAAWqmC,EAoD7D,MAA4B,UAAxBigZ,EAAQyzS,aAAmD,sBAAxBzzS,EAAQyzS,YAnDpBgrE,MACzB,MAAMT,EAAoBI,EAAwBp+W,EAAQrgrB,MAAM,CAC9Don5B,YAAas3I,EACbz9/B,OAAQo/oB,EAAQp/oB,OAChB6y7B,YAAazzS,EAAQyzS,cAEjBirE,EAAgBzgiC,GAAS8/hC,GAAuB1tE,EAAOmqE,EAAUv8hC,EAAO+/hC,EAAmBh+W,GAC3FxzpB,EAAwB,YAAjBwzpB,EAAQrgrB,MAAyC,MAAnB2+hC,GAA2BA,EAAgBK,YAAcL,EAAgBK,YAAc,EAElI,IAAIC,EADwB35gC,SAAS+6pB,EAAQ/hrB,MAAO,IACFk+H,EAAQ3vG,EAC1D,GAAIgygC,EAAmB,CACrB,GAAqB,SAAjBx+W,EAAQrgrB,OAAoBogS,IAAUrmC,EACxC,OAAO22tB,EAAMotE,eAAeptE,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GAAWx6W,EAAQp/oB,QAGjFg+/B,EADEzi6B,EAAQ,GAAKu9H,EACSskyB,EAAkBjkX,QAElBikX,EAAkBlkX,OAE9C,CASA,OARI8kX,EAAwBpygC,IAAS,KAC/B2vG,EAAQ,GAAKu9H,KACfklyB,GAAyBpygC,GAAQA,EAAOoygC,GAAyBpygC,IAE/D2vG,EAAQ,GAAK4jK,KACf6+vB,GAAyBA,EAAwBpygC,IAGjDoygC,EAAwBZ,EAAkBlkX,QACrC4kX,EAAcV,EAAkBjkX,SAAW6kX,EAAwBZ,EAAkBlkX,QAAU,IAAMkkX,EAAkBlkX,QAAUkkX,EAAkBjkX,QAAU,IAElK6kX,EAAwBZ,EAAkBjkX,QACrC2kX,EAAcV,EAAkBlkX,SAAWkkX,EAAkBjkX,QAAU6kX,EAAwB,IAAMZ,EAAkBlkX,QAAUkkX,EAAkBjkX,QAAU,IAE/J2kX,EAAcE,EAAsB,EAkBpCH,GAhBmBI,MAC1B,MAAMlkiC,EAAU+iiC,GAAwBrtE,EAAOmqE,EAAUx6W,EAAQrgrB,KAAMqgrB,EAAQp/oB,QAC/E,GAAuB,IAAnBjmC,EAAQO,OACV,OAAO8krB,EAAQ/hrB,MAEjB,GAAIugiC,EACF,OAAIri6B,EAAQ,GAAKu9H,EACR/+P,EAAQ,GAEVA,EAAQA,EAAQO,OAAS,GAElC,MAAM4jiC,EAAqBnkiC,EAAQ4D,QAAQyhrB,EAAQ/hrB,OAEnD,OAAOtD,GADiBmkiC,EAAqBnkiC,EAAQO,OAASihI,GAASxhI,EAAQO,OACjD,EAKzB2jiC,EAAqB,EAEjBE,GAAyBA,CAAC/+W,EAASj/pB,KAC9C,IAAI9iB,EAAQ+hrB,EAAQ/hrB,OAAS+hrB,EAAQ1zf,YACrC,MAAM0y2B,EAA6B,cAAXj+gC,EAAyBi/pB,EAAQi/W,wBAA0Bj/W,EAAQk+W,uBAC5E,cAAXn9gC,GAA0Bi/pB,EAAQk+W,yBAA2Bl+W,EAAQi/W,0BACvEhhiC,EAAQooB,OAAOpoB,GAAOmK,YAexB,MAPgC,CAAC,YAAa,aAAasuX,SAAS31W,IAAmC,UAAxBi/pB,EAAQyzS,cAA4BurE,GAAoC,IAAjB/giC,EAAM/C,SAE1I+C,EAAQ,GAAHwH,OAAMxH,EAAK,WAEH,cAAX8iB,IACF9iB,EAAQ,SAAHwH,OAAYxH,EAAK,WAEjBA,CAAK,EAEDihiC,GAAcC,GAAeA,EAAYjhiC,QAAQ,8BAA+B,IAChFkhiC,GAAkCA,CAACt/W,EAAUojO,KACxD,IAAI7j5B,EAAW,EACXggiC,EAAkBn8I,EAAQ,EAAI,EAClC,MAAMo8I,EAAc,GACpB,IAAK,IAAIxiiC,EAAI,EAAGA,EAAIgjrB,EAAS5krB,OAAQ4B,GAAK,EAAG,CAC3C,MAAMkjrB,EAAUF,EAAShjrB,GACnByiiC,EAAgBR,GAAuB/+W,EAASkjO,EAAQ,YAAc,aACtEs8I,EAAa,GAAH/5hC,OAAMu6qB,EAAQy/W,gBAAch6hC,OAAG85hC,GAAa95hC,OAAGu6qB,EAAQ0/W,cACjEC,EAAgBT,GAAYM,GAAYtkiC,OACxC0kiC,EAAuBJ,EAAWtkiC,OAGlC2kiC,EAAeX,GAAYK,GAC3BO,EAAeT,EAAkBE,EAAchhiC,QAAQshiC,EAAa,IAAM7/W,EAAQy/W,eAAevkiC,OACjG6kiC,EAAaD,EAAeD,EAAa3kiC,OAC/CokiC,EAAY7jiC,MAAKgY,EAAAA,GAAAA,GAAS,CAAC,EAAGusqB,EAAS,CACrCr+pB,MAAOtiB,EACPR,IAAKQ,EAAWsgiC,EAChBG,eACAC,gBAEF1giC,GAAYsgiC,EAEZN,GAAmBO,CACrB,CACA,OAAON,CAAW,EAEdU,GAAwBA,CAAC3vE,EAAOmqE,EAAUyF,EAAYC,EAAeC,KACzE,OAAQD,EAAcvgiC,MACpB,IAAK,OAED,OAAOsgiC,EAAWG,qBAAqB,CACrCC,YAAahwE,EAAMotE,eAAeptE,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GAAW2F,GAAejliC,OAC9F0lC,OAAQu//B,IAGd,IAAK,QAED,OAAOF,EAAWK,sBAAsB,CACtC7sE,YAAaysE,EAAczsE,YAC3B7y7B,OAAQu//B,IAGd,IAAK,MAED,OAAOF,EAAWM,oBAAoB,CACpC3//B,OAAQu//B,IAGd,IAAK,UAED,OAAOF,EAAWO,wBAAwB,CACxC/sE,YAAaysE,EAAczsE,YAC3B7y7B,OAAQu//B,IAGd,IAAK,QAED,OAAOF,EAAWQ,sBAAsB,CACtC7//B,OAAQu//B,IAGd,IAAK,UAED,OAAOF,EAAWS,wBAAwB,CACxC9//B,OAAQu//B,IAGd,IAAK,UAED,OAAOF,EAAWU,wBAAwB,CACxC///B,OAAQu//B,IAGd,IAAK,WAED,OAAOF,EAAWW,yBAAyB,CACzChggC,OAAQu//B,IAGd,QAEI,OAAOA,EAEb,EAEWU,GAA2BA,CAACxwE,EAAOwtE,EAAUiD,EAAetz8B,IAMhE6i4B,EAAMotE,eAAeptE,EAAMzu9B,MAAMi8hC,EAAUiD,GAAgBtz8B,GAE9Duz8B,GAAwBA,CAAC1wE,EAAOmqE,EAAU55/B,IAAgG,IAArFyv7B,EAAMotE,eAAeptE,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GAAW55/B,GAAQ1lC,OACxH8liC,GAAoCA,CAAC3wE,EAAOmqE,EAAU/mE,EAAa2pE,EAAax8/B,KAC3F,GAAoB,UAAhB6y7B,EACF,OAAO,EAET,MAAMlm7B,EAAM8i7B,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GAC9C,OAAQ4C,GAEN,IAAK,OAED,GAAI2D,GAAsB1wE,EAAOmqE,EAAU55/B,GAAS,CAElD,MAAyB,SADHyv7B,EAAMotE,eAAeptE,EAAM4wE,QAAQ1z/B,EAAK,GAAI3M,EAEpE,CAEA,MAAyB,OADHyv7B,EAAMotE,eAAeptE,EAAM4wE,QAAQ1z/B,EAAK,MAAO3M,GAGzE,IAAK,QAED,OAAOyv7B,EAAMotE,eAAeptE,EAAMyqE,YAAYvt/B,GAAM3M,GAAQ1lC,OAAS,EAEzE,IAAK,MAED,OAAOm19B,EAAMotE,eAAeptE,EAAM0sE,aAAaxv/B,GAAM3M,GAAQ1lC,OAAS,EAE1E,IAAK,UAED,OAAOm19B,EAAMotE,eAAeptE,EAAM0rE,YAAYxu/B,GAAM3M,GAAQ1lC,OAAS,EAEzE,IAAK,QAED,OAAOm19B,EAAMotE,eAAeptE,EAAMvu4B,SAASv0C,EAAK,GAAI3M,GAAQ1lC,OAAS,EAEzE,IAAK,UAED,OAAOm19B,EAAMotE,eAAeptE,EAAMjtE,WAAW712B,EAAK,GAAI3M,GAAQ1lC,OAAS,EAE3E,IAAK,UAED,OAAOm19B,EAAMotE,eAAeptE,EAAMhtE,WAAW912B,EAAK,GAAI3M,GAAQ1lC,OAAS,EAE3E,QAEI,MAAM,IAAI2R,MAAM,wBAEtB,EAmBWq0hC,GAA0BA,CAAC7wE,EAAOmqE,EAAUyF,EAAYr//B,EAAQ3gB,EAAMkhhC,EAAeC,EAA2Bl+I,KAC3H,IAAIu8I,EAAiB,GACrB,MAAM3/W,EAAW,GACXvyoB,EAAM8i7B,EAAMpw8B,OACZohhC,EAAcjhiC,IAClB,GAAc,KAAVA,EACF,OAAO,KAET,MAAM8/hC,EAAgBjD,GAAoC5sE,EAAOjw9B,GAC3D6+hC,EAA0B+B,GAAkC3wE,EAAOmqE,EAAU0F,EAAczsE,YAAaysE,EAAcvgiC,KAAMS,GAC5H89hC,EAAyBkD,EAA4BnC,EAAwD,UAA9BiB,EAAczsE,YAC7F6tE,EAAsB,MAARrhhC,GAAgBow8B,EAAMzw7B,QAAQ3f,GAClD,IAAIshhC,EAAeD,EAAcjxE,EAAMotE,eAAex9gC,EAAM7f,GAAS,GACjEmzN,EAAY,KAChB,GAAI2q0B,EACF,GAAIe,EACF1r0B,EAA6B,KAAjBgu0B,EAAsBlxE,EAAMotE,eAAelw/B,EAAKntC,GAAOlF,OAASqmiC,EAAarmiC,WACpF,CACL,GAA+B,MAA3BgliC,EAAc3s0B,UAChB,MAAM,IAAI1mN,MAAM,kBAADpH,OAAmBrF,EAAK,6DAEzCmzN,EAAY2s0B,EAAc3s0B,UACtB+t0B,IACFC,EAAe3D,GAAkBvtE,EAAOkxE,EAAchu0B,GAE1D,CAcF,OAZAusd,EAASrkrB,MAAKgY,EAAAA,GAAAA,GAAS,CAAC,EAAGyshC,EAAe,CACxCt//B,OAAQxgC,EACRmzN,YACAt1N,MAAOsjiC,EACPj12B,YAAa0z2B,GAAsB3vE,EAAOmqE,EAAUyF,EAAYC,EAAe9/hC,GAC/E4+hC,gBAAiBC,EACjBA,0BACAf,yBACAuB,eAAoC,IAApB3/W,EAAS5krB,OAAeukiC,EAAiB,GACzDC,aAAc,GACdhulB,UAAU,KAEL,IAAI,EAIb,IAAI8vlB,EAA0B,GAC1BC,EAAa7ggC,EACb8ggC,EAAarxE,EAAMsxE,aAAa/ggC,GACpC,KAAO8ggC,IAAeD,GAIpB,GAHAA,EAAaC,EACbA,EAAarxE,EAAMsxE,aAAaF,GAChCD,GAA2B,EACvBA,EAA0B,EAC5B,MAAM,IAAI30hC,MAAM,yIAGpB,MAAM+0hC,EAAiBF,EAGjBG,EA1E0BC,EAACzxE,EAAOzv7B,KACxC,MAAMihgC,EAAe,IAEnBlghC,MAAOoghC,EACPljiC,IAAKmjiC,GACH3xE,EAAM4xE,kBACJxyE,EAAS,IAAI3q8B,OAAO,MAADrf,OAAOs8hC,EAAS,QAAAt8hC,OAAOu8hC,EAAO,QAAAv8hC,OAAOu8hC,EAAO,MAAM,KAC3E,IAAI19hC,EAAQ,KAEZ,KAAOA,EAAQmr9B,EAAOpr9B,KAAKu8B,IACzBihgC,EAAapmiC,KAAK,CAChBkmB,MAAOrd,EAAM7F,MACbI,IAAK4w9B,EAAOji9B,UAAY,IAG5B,OAAOq0hC,CAAY,EA2DEC,CAA0BzxE,EAAOuxE,GAGhDM,EAAqB,IAAIp9gC,OAAO,KAADrf,OAAM1H,OAAOgkB,KAAKsu8B,EAAM8sE,gBAAgBhxgC,MAAK,CAACjG,EAAG4H,IAAMA,EAAE5yB,OAASgrB,EAAEhrB,SACxGwG,KAAK,KAAI,KAAK,KAEf,IAAIygiC,EAAoB,GACxB,IAAK,IAAIrliC,EAAI,EAAGA,EAAI8kiC,EAAe1miC,OAAQ4B,GAAK,EAAG,CACjD,MAAMsliC,EAA2BP,EAAajj+B,MAAKyj+B,GAAeA,EAAY1ghC,OAAS7kB,GAAKuliC,EAAYxjiC,KAAO/B,IACzGq1hB,EAAOyvgB,EAAe9kiC,GACtBwliC,EAA4C,MAA5BF,EAChBG,EAAiB,GAAH98hC,OAAM08hC,GAAiB18hC,OAAGm8hC,EAAe9iiC,MAAMhC,IAC7D0liC,EAAcN,EAAmBhghC,KAAKqghC,GAC5C,IAAKD,GAAiBnwgB,EAAK7thB,MAAM,gBAAkBk+hC,EACjDL,EAAoBI,EAAezjiC,MAAM,EAAGojiC,EAAmB10hC,WAC/D1Q,GAAKoliC,EAAmB10hC,UAAY,MAC/B,CAGoB80hC,IAA8C,MAA5BF,OAAmC,EAASA,EAAyBzghC,SAAW7kB,IAAkC,MAA5BsliC,OAAmC,EAASA,EAAyBvjiC,OAAS/B,IAE7MukiC,EAAYc,GACZA,EAAoB,GACI,IAApBriX,EAAS5krB,OACXukiC,GAAkBttgB,EAElB2tJ,EAASA,EAAS5krB,OAAS,GAAGwkiC,cAAgBvtgB,EAGpD,CACF,CAEA,OADAkvgB,EAAYc,GACLriX,EAAS37qB,KAAI67qB,IAClB,MAAMyiX,EAAiBnsb,IACrB,IAAIosb,EAAmBpsb,EAOvB,OANI4sS,GAA8B,OAArBw/I,GAA6BA,EAAiBhsqB,SAAS,OAClEgsqB,EAAmB,SAAHj9hC,OAAYi9hC,EAAgB,WAExB,aAAlBvB,GAAgC,CAAC,IAAK,IAAK,KAAKzqqB,SAASgsqB,KAC3DA,EAAmB,IAAHj9hC,OAAOi9hC,EAAgB,MAElCA,CAAgB,EAIzB,OAFA1iX,EAAQy/W,eAAiBgD,EAAeziX,EAAQy/W,gBAChDz/W,EAAQ0/W,aAAe+C,EAAeziX,EAAQ0/W,cACvC1/W,CAAO,GACd,EAmIG,MAAM2iX,GAAmBA,CAAC7iX,EAAUo7W,KACrCzm8B,CAAwC,EAsExCmu8B,GAAmC,CACvCtlgC,KAAM,EACNpd,MAAO,EACP4iB,IAAK,EACLs+2B,QAAS,EACTz92B,MAAO,EACPG,QAAS,EACTC,QAAS,EACTjD,SAAU,GAEC+hgC,GAA6BA,CAACxyE,EAAOmqE,EAAUsI,EAAoBhjX,EAAUijX,EAAeC,IAEzG,IAAIljX,GAAU3zpB,MAAK,CAACjG,EAAG4H,IAAM80gC,GAAiC18gC,EAAEvmB,MAAQijiC,GAAiC90gC,EAAEnuB,QAAOqc,QAAO,CAACi+gC,EAAYj6W,KAC/HgjX,GAA+BhjX,EAAQtuO,SAlEbuxlB,EAAC5yE,EAAOmqE,EAAUx6W,EAAS8iX,EAAoBI,KAC9E,OAAQljX,EAAQrgrB,MACd,IAAK,OAED,OAAO0w9B,EAAM4wE,QAAQiC,EAAkB7yE,EAAM8yE,QAAQL,IAEzD,IAAK,QAED,OAAOzyE,EAAMrt4B,SAASkg9B,EAAkB7yE,EAAMvx7B,SAASgkgC,IAE3D,IAAK,UACH,CACE,MAAMM,EAAsB/F,GAAiBhtE,EAAOmqE,EAAUx6W,EAAQp/oB,QAChEyigC,EAA2BhzE,EAAMotE,eAAeqF,EAAoB9iX,EAAQp/oB,QAC5E0igC,EAAwBF,EAAoB7kiC,QAAQ8kiC,GAEpDligC,EAD6BiigC,EAAoB7kiC,QAAQyhrB,EAAQ/hrB,OAC7BqliC,EAC1C,OAAOjzE,EAAMsqE,QAAQmI,EAAoB3hgC,EAC3C,CACF,IAAK,MAED,OAAOkv7B,EAAMtu4B,QAAQmh9B,EAAkB7yE,EAAMrx7B,QAAQ8jgC,IAEzD,IAAK,WACH,CACE,MAAMS,EAAOlzE,EAAMjx7B,SAAS0jgC,GAAsB,GAC5CU,EAAkBnzE,EAAMjx7B,SAAS8jgC,GACvC,OAAIK,GAAQC,GAAmB,GACtBnzE,EAAMozE,SAASP,GAAmB,KAEtCK,GAAQC,EAAkB,GACtBnzE,EAAMozE,SAASP,EAAkB,IAEnCA,CACT,CACF,IAAK,QAED,OAAO7yE,EAAMvu4B,SAASoh9B,EAAkB7yE,EAAMjx7B,SAAS0jgC,IAE3D,IAAK,UAED,OAAOzyE,EAAMjtE,WAAW8/I,EAAkB7yE,EAAM/w7B,WAAWwjgC,IAE/D,IAAK,UAED,OAAOzyE,EAAMhtE,WAAW6/I,EAAkB7yE,EAAM7w7B,WAAWsjgC,IAE/D,QAEI,OAAOI,EAEb,EAgBSD,CAAyB5yE,EAAOmqE,EAAUx6W,EAAS8iX,EAAoB7I,GAEzEA,GACN8I,GCppBG3yhC,GAAY,CAAC,QAAS,iBAIfszhC,GAAyB,CACpCC,WAAY,KACZC,cAAe3I,GACf4I,yBAA0BjzhC,IACxB,IAAI,MACA3S,EAAK,cACL8kiC,GACEnyhC,EACJtB,GAASkE,EAAAA,GAAAA,GAA8B5C,EAAMR,IAC/C,OAAa,MAATnS,GAAiBqR,EAAO+g9B,MAAMzw7B,QAAQ3hC,GACjCA,EAEY,MAAjB8kiC,EACKA,EFyB0BnyhC,KAMjC,IANkC,MACtChR,EAAK,MACLyw9B,EAAK,YACLysE,EAAW,SACXtC,EACAS,aAAc6I,GACflzhC,EACC,IAAImzhC,EACJ,IAAIhB,EAAgBe,EAAiBA,IAAmBjH,GAAUxsE,EAAOysE,EAAa7B,GAAa5qE,EAAOmqE,IACrF,MAAjB56hC,EAAM06hC,SAAmBjqE,EAAM2zE,WAAWpkiC,EAAM06hC,QAASyI,KAC3DA,EAAgBlG,GAAUxsE,EAAOysE,EAAal9hC,EAAM06hC,UAEjC,MAAjB16hC,EAAMy6hC,SAAmBhqE,EAAM4zE,YAAYrkiC,EAAMy6hC,QAAS0I,KAC5DA,EAAgBlG,GAAUxsE,EAAOysE,EAAal9hC,EAAMy6hC,UAEtD,MAAMr6/B,EAAUq8/B,GAAwG,OAA3E0H,EAAwBnkiC,EAAM08hC,2CAAoDyH,EAA+B1zE,GAO9J,OANqB,MAAjBzw9B,EAAMskiC,SAAmBlkgC,EAAQpgC,EAAMskiC,QAASnB,KAClDA,EAAgBlG,GAAUxsE,EAAOysE,EAAal9hC,EAAM08hC,yCAA2C18hC,EAAMskiC,QAAUpK,GAAiBzpE,EAAO0yE,EAAenjiC,EAAMskiC,WAEzI,MAAjBtkiC,EAAMukiC,SAAmBnkgC,EAAQ+igC,EAAenjiC,EAAMukiC,WACxDpB,EAAgBlG,GAAUxsE,EAAOysE,EAAal9hC,EAAM08hC,yCAA2C18hC,EAAMukiC,QAAUrK,GAAiBzpE,EAAO0yE,EAAenjiC,EAAMukiC,WAEvJpB,CAAa,EE7CXqB,CAAwB90hC,EAAO,EAExC+0hC,WJqCsCC,CAACj0E,EAAOpy9B,IAAmB,MAATA,GAAkBoy9B,EAAMzw7B,QAAQ3hC,GAAgBA,EAAP,KIpCjGsmiC,eJ2C2BC,CAACn0E,EAAOnq8B,EAAG4H,KACjCui8B,EAAMzw7B,QAAQ1Z,IAAW,MAALA,IAAcmq8B,EAAMzw7B,QAAQ9R,IAAW,MAALA,GAGpDui8B,EAAMo0E,QAAQv+gC,EAAG4H,GI9CxB42gC,YAAaA,CAACx+gC,EAAG4H,IAAM5H,IAAM4H,EAC7B62gC,SAAU1thC,GAAkB,MAATA,EACnB2thC,kBAAmB,KACnBC,YAAaA,CAACx0E,EAAOpy9B,IAAmB,MAATA,GAAkBoy9B,EAAMzw7B,QAAQ3hC,GAAgBoy9B,EAAMw0E,YAAY5miC,GAAzB,KACxE6miC,YAAaA,CAACz0E,EAAOmqE,EAAUv8hC,IAAmB,MAATA,EAAgB,KAAOoy9B,EAAMy0E,YAAY7miC,EAAOu8hC,IAE9EuK,GAA8B,CACzCC,qBAAsBA,CAAC30E,EAAOpy9B,EAAOgniC,IAAgC,MAAThniC,GAAkBoy9B,EAAMzw7B,QAAQ3hC,GAA8BA,EAArBgniC,EACrGC,qBAAsBA,CAAC70E,EAAOpw8B,EAAMklhC,EAAcjiJ,EAAOkiJ,KAClB/0E,EAAMzw7B,QAAQ3f,MAAWklhC,EAErDA,EAEF/F,GAAgCgG,EAAoBnlhC,GAAOij4B,GAEpEmiJ,wBD6a+CC,CAACxlX,EAAUojO,KAC1D,MAIMrzxB,EAJoBiwjB,EAAS37qB,KAAI67qB,IACrC,MAAMulX,EAAYxG,GAAuB/+W,EAASkjO,EAAQ,YAAc,aACxE,MAAO,GAAPz94B,OAAUu6qB,EAAQy/W,gBAAch6hC,OAAG8/hC,GAAS9/hC,OAAGu6qB,EAAQ0/W,aAAY,IAEnCh+hC,KAAK,IACvC,OAAKwh5B,EASE,SAAPz94B,OAAgBoqH,EAAO,UARdA,CAQc,EC3bvB216B,qBAAsBA,CAACn1E,EAAOp17B,KAAU,CACtChb,KAAMgb,EAAMh9B,MACZ8kiC,cAAe9ngC,EAAMwqgC,eACrBC,YAAa5lX,GAAYA,EACzB6lX,8BAA+BC,IAAiB,CAC9C3niC,MAAO2niC,EACPH,eAAiC,MAAjBG,GAA0Bv1E,EAAMzw7B,QAAQgmgC,GAAwCA,EAAvB3qgC,EAAMwqgC,mBAGnFI,cAAeA,CAAChI,EAAU4H,EAAgB1/I,IAAcA,EAAU83I,EAAS7/hC,OAAQyniC,IC/C/Er1hC,GAAY,CAAC,cAKN01hC,GAAwCx/hC,EAAAA,cAAoB,MAgBlE,MAAMy/hC,GAAuB,SAA8B9yhC,GAChE,IAAI+yhC,EACJ,MACI/F,WAAYgG,GACVhzhC,EACJizhC,GAAe1yhC,EAAAA,GAAAA,GAA8BP,EAAS7C,KAEtDig9B,MAAO81E,EACPlG,WAAYmG,GAC0D,OAAnEJ,EAAoB1/hC,EAAAA,WAAiBw/hC,KAAqCE,EAAoB,CACjG31E,WAAO109B,EACPskiC,gBAAYtkiC,GAERiE,EAAQs5hC,GAAc,CAG1Bt5hC,MAAOsmiC,EACPngiC,KAAM,6BAEF,SACJlG,EACAwmiC,YAAaC,EAAW,YACxBC,EAAW,gBACXC,EAAe,cACfC,EACAxG,WAAYyG,GACV9miC,EACEqgiC,EAAa35hC,EAAAA,SAAc,KAAMmN,EAAAA,GAAAA,GAAS,CAAC,EAAGizhC,EAAiBN,EAAkBH,IAAe,CAACS,EAAiBN,EAAkBH,IACpI51E,EAAQ/p9B,EAAAA,SAAc,KAC1B,IAAKggiC,EACH,OAAIH,GAGG,KAET,MAAM3yE,EAAU,IAAI8yE,EAAY,CAC9BrogC,OAAQwogC,EACRjjgC,QAAS+igC,EACT9qgC,SAAU+qgC,IAEZ,IAAKhzE,EAAQmzE,aACX,MAAM,IAAI95hC,MAAM,CAAC,wHAAyH,wIAAyI,0HAA0HnL,KAAK,OAEpZ,OAAO8x9B,CAAO,GACb,CAAC8yE,EAAaG,EAAeF,EAAaC,EAAiBL,IACxDS,EAAetgiC,EAAAA,SAAc,IAC5B+p9B,EAGE,CACLiqE,QAASjqE,EAAMpw8B,KAAK,2BACpBo6gC,QAAShqE,EAAMpw8B,KAAK,4BAJb,MAMR,CAACow8B,IACE1X,EAAery8B,EAAAA,SAAc,KAC1B,CACL+p9B,QACAu2E,eACA3G,gBAED,CAAC2G,EAAcv2E,EAAO4vE,IACzB,OAAoB5rhC,EAAAA,GAAAA,KAAKyxhC,GAAyBr/hC,SAAU,CAC1DxI,MAAO068B,EACP948B,SAAUA,GAEd,ECpFMgniC,GAAc,CAElBC,cAAe,iBACfC,UAAW,aAEXC,iBAAkB,qBAClBC,aAAc,iBACdC,qCAAsC5m/B,GAAiB,SAATA,EAAkB,6CAA+C,6CAE/G3+B,MAAO,QACP9iB,IAAK,MAELsoiC,kBAAmB,SACnBC,iBAAkB,QAClBC,cAAe,KACfC,iBAAkB,QAElBC,uBAAwB,cACxBC,2BAA4B,qBAC5BC,uBAAwB,cACxBC,4BAA6B,oBAE7BC,eAAgBA,CAACrn/B,EAAMlgC,EAAMoz8B,IAAY,UAAL/t9B,OAAe66C,EAAI,MAAA76C,OAAc,OAAT2a,EAAgB,mBAAqB,oBAAH3a,OAAuB+t9B,EAAQ5y7B,OAAOxgB,EAAM,cAC1IwnhC,qBAAsBjkgC,GAAS,GAAJl+B,OAAOk+B,EAAK,UACvCkkgC,uBAAwB/jgC,GAAW,GAAJr+B,OAAOq+B,EAAO,YAC7CgkgC,uBAAwB/jgC,GAAW,GAAJt+B,OAAOs+B,EAAO,YAE7CgkgC,eAAgBzn/B,GAAQ,UAAJ76C,OAAc66C,GAElC0n/B,8BAA+B,cAC/BC,6BAA8B,IAC9BC,gCAAiCC,GAAc,QAAJ1iiC,OAAY0iiC,GACvDC,uBAAwBD,GAAc,GAAJ1iiC,OAAO0iiC,GAEzCE,uBAAwBA,CAACpqiC,EAAOoy9B,IAAoB,OAAVpy9B,GAAkBoy9B,EAAMzw7B,QAAQ3hC,GAAS,iCAAHwH,OAAoC4q9B,EAAMzv7B,OAAO3iC,EAAO,aAAgB,cACxJqqiC,uBAAwBA,CAACrqiC,EAAOoy9B,IAAoB,OAAVpy9B,GAAkBoy9B,EAAMzw7B,QAAQ3hC,GAAS,iCAAHwH,OAAoC4q9B,EAAMzv7B,OAAO3iC,EAAO,aAAgB,cACxJsqiC,gBAAiB,cAEjBC,eAAgB,YAChBC,eAAgB,YAEhBrI,qBAAsB9whC,GAAU,IAAI+vH,OAAO/vH,EAAO+whC,aAClDC,sBAAuBhxhC,GAAiC,WAAvBA,EAAOmk9B,YAA2B,OAAS,KAC5E8sE,oBAAqBA,IAAM,KAC3BC,wBAAyBlxhC,GAAiC,WAAvBA,EAAOmk9B,YAA2B,OAAS,KAC9EgtE,sBAAuBA,IAAM,KAC7BC,wBAAyBA,IAAM,KAC/BC,wBAAyBA,IAAM,KAC/BC,yBAA0BA,IAAM,MAErB8H,GAAiB7B,GCrDQ8B,GDsDK9B,ICjDrBpzhC,EAAAA,GAAAA,GAAS,CAAC,EAAGk1hC,IALGA,OCG/B,MAAMC,GAAyBA,KACpC,MAAMC,EAAeviiC,EAAAA,WAAiBw/hC,IACtC,GAAqB,OAAjB+C,EACF,MAAM,IAAIh8hC,MAAM,CAAC,oEAAqE,2EAA4E,mGAAmGnL,KAAK,OAE5Q,GAA2B,OAAvBmniC,EAAax4E,MACf,MAAM,IAAIxj9B,MAAM,CAAC,qFAAsF,kFAAkFnL,KAAK,OAEhM,MAAMu+hC,EAAa35hC,EAAAA,SAAc,KAAMmN,EAAAA,GAAAA,GAAS,CAAC,EAAGi1hC,GAAgBG,EAAa5I,aAAa,CAAC4I,EAAa5I,aAC5G,OAAO35hC,EAAAA,SAAc,KAAMmN,EAAAA,GAAAA,GAAS,CAAC,EAAGo1hC,EAAc,CACpD5I,gBACE,CAAC4I,EAAc5I,GAAY,EAEpB6I,GAAWA,IAAMF,KAAyBv4E,MAC1C04E,GAAkBA,IAAMH,KAAyBhC,aACjDoC,GAAgBA,IAAMJ,KAAyB3I,WAC/CgJ,GAASzO,IACpB,MAAMnqE,EAAQy4E,KACRv7/B,EAAMjnC,EAAAA,SAIZ,YAHoB3K,IAAhB4xC,EAAIhmC,UACNgmC,EAAIhmC,QAAU8o9B,EAAMoqE,sBAAiB9+hC,EAAW6+hC,IAE3Cjt/B,EAAIhmC,OAAO,ECzBb,SAAS2hiC,GAA8Bj5hC,GAC5C,OAAOC,EAAAA,GAAAA,IAAqB,oBAAqBD,EACnD,EACqCE,EAAAA,GAAsBA,GAAC,oBAAqB,CAAC,OAAQ,YAAnF,MCiBDg5hC,IAAqB74hC,EAAAA,GAAMA,IAAC,MAAO,CACvCvK,KAAM,oBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHpB6Q,EAIxBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTsiB,cAAe,SACfG,WAAY,aACZD,eAAgB,gBAChB7E,QAASjgB,EAAM0d,QAAQ,EAAG,IACzBzc,EAAW44hC,aAAe,CAC3Bx3hC,OAAQ,OACRyf,SAAU,IACV7B,QAAS,GACT6E,eAAgB,aAChBD,SAAU,QACV,IACIi1gC,IAAwB/4hC,EAAAA,GAAMA,IAAC,MAAO,CAC1CvK,KAAM,oBACNkK,KAAM,UACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOq3Y,SAHjB5sY,EAI3BjB,IAEG,IAFF,WACFmB,GACDnB,EACC,IAAIi6hC,EACJ,MAAO,CACLz3hC,QAAS,OACTuiB,SAAU,OACVziB,MAAO,OACP0iB,eAAgB7jB,EAAW44hC,YAAc,aAAe,gBACxDj1gC,cAAe3jB,EAAW44hC,YAAyE,OAA1DE,EAAwB94hC,EAAW+4hC,oBAA8BD,EAAwB,SAAW,MAC7ItgiC,KAAM,EACNsrB,WAAY9jB,EAAW44hC,YAAc,aAAe,SACrD,IAEUI,GAA8BljiC,EAAAA,YAAiB,SAAwB2M,EAASpM,GAC3F,MAAMjH,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,uBAEF,SACJlG,EAAQ,UACRuO,EAAS,aACTq7hC,EAAY,OACZ/noB,EAAM,QACN+1nB,GACE73hC,EACE4Q,EAAa5Q,EACbgU,EA/DkBpD,KACxB,MAAM,QACJoD,EAAO,YACPw1hC,GACE54hC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QACPy9Y,QAAS,CAAC,WACVwspB,cAAe,CAAC,gBAAiBN,GAAe,2BAElD,OAAOt1hC,EAAAA,GAAcA,GAACD,EAAOq1hC,GAA+Bt1hC,EAAQ,EAqDpDG,CAAkBvD,GAClC,OAAIkxZ,EACK,MAEW1tZ,EAAAA,GAAAA,MAAMm1hC,GAAoB,CAC5CtiiC,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3Q,SAAU,EAAcwU,EAAAA,GAAAA,KAAKoy9B,GAAY,CACvCh29B,MAAO,iBACPwZ,QAAS,WACTgS,GAAIw7/B,EACJ53hC,SAAU4piC,KACKp1hC,EAAAA,GAAAA,KAAKg1hC,GAAuB,CAC3Cj7hC,UAAWwF,EAAQspY,QACnB1sY,WAAYA,EACZ3Q,SAAUA,MAGhB,IC1FO,SAAS8piC,GAAiC15hC,GAC/C,OAAOC,EAAAA,GAAAA,IAAqB,uBAAwBD,EACtD,EACwCE,EAAAA,GAAsBA,GAAC,uBAAwB,CAAC,OAAQ,UAAzF,MCFDC,GAAY,CAAC,QAAS,cAAe,WAAY,gBAAiB,qBAAsB,QAAS,aAsBjGw5hC,IAAwBt5hC,EAAAA,GAAMA,IAACk5hC,GAAgB,CACnDzjiC,KAAM,uBACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHb6Q,CAI3B,CAAC,GACEu5hC,IAAyBv5hC,EAAAA,GAAMA,IAACm29B,GAAY,CAChD1g+B,KAAM,uBACNkK,KAAM,QACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOiiH,OAHZx3G,EAI5BM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAW44hC,aAAe,CAC3C75gC,OAAQ,uBACR,IAWWu6gC,GAAiCxjiC,EAAAA,YAAiB,SAA2B2M,EAASpM,GACjG,MAAMjH,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,0BAEF,MACF9H,EAAK,YACLmriC,EAAW,cACXW,EAAa,mBACbC,EAAqB,eAAI,MACzB3Q,EAAK,UACLjrhC,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCig9B,EAAQy4E,KACR7I,EAAa+I,KACbp1hC,EAlDkBpD,KACxB,MAAM,QACJoD,GACEpD,EAKJ,OAAOsD,EAAAA,GAAcA,GAJP,CACZrU,KAAM,CAAC,QACPqoH,MAAO,CAAC,UAEmB6h7B,GAAkC/1hC,EAAQ,EA0CvDG,CAAkBnU,GAC5BqqiC,EAAW3jiC,EAAAA,SAAc,KAC7B,IAAKrI,EACH,OAAO+riC,EAET,MAAME,EAAkB3O,GAAkBlrE,EAAO,CAC/Czv7B,OAAQmpgC,EACR1Q,UACC,GACH,OAAOhpE,EAAMotE,eAAex/hC,EAAOisiC,EAAgB,GAClD,CAACjsiC,EAAO8riC,EAAeC,EAAoB35E,EAAOgpE,IAC/C7ohC,EAAa5Q,EACnB,OAAoByU,EAAAA,GAAAA,KAAKu1hC,IAAuBn2hC,EAAAA,GAAAA,GAAS,CACvD5M,IAAKA,EACL4iiC,aAAcxJ,EAAWsH,uBACzB6B,YAAaA,EACbh7hC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKw1hC,GAAwB,CAClD5/gC,QAAS,KACTylE,MAAO058B,EAAc,OAAS,SAC9B54hC,WAAYA,EACZpC,UAAWwF,EAAQk0G,MACnBjoH,SAAUoqiC,MAGhB,ICrFaE,GAAyBC,IACpC,QAA0BzuiC,IAAtByuiC,EAGJ,OAAOrsiC,OAAOgkB,KAAKqohC,GAAmBpuhC,QAAO,CAACC,EAAKlgB,KAAQ0X,EAAAA,GAAAA,GAAS,CAAC,EAAGwI,EAAK,CAC3E,CAAC,GAADxW,OAAI1J,EAAI+C,MAAM,EAAG,GAAG8M,eAAanG,OAAG1J,EAAI+C,MAAM,KAAOsriC,EAAkBruiC,MACrE,CAAC,EAAE,ECHF,SAASsuiC,GAA8BzqiC,EAAOmG,GACnD,IAAIukiC,EAAmBC,EAAuBC,EAAuBC,EACrE,MAAMp6E,EAAQy4E,KACRlC,EAAemC,KACfhtF,EAAam9E,GAAc,CAC/Bt5hC,QACAmG,SAEIk6hC,EAAa35hC,EAAAA,SAAc,KAC/B,IAAIokiC,EACJ,OAA+G,OAAvD,OAAlDA,EAAwB3uF,EAAWkkF,iBAAsB,EAASyK,EAAsBjB,cACrF1tF,EAAWkkF,YAEbxshC,EAAAA,GAAAA,GAAS,CAAC,EAAGso8B,EAAWkkF,WAAY,CACzCsH,uBAAwBxrF,EAAWkkF,WAAWwJ,cAC9C,GACD,CAAC1tF,EAAWkkF,aACTpshC,EAAkD,OAAzCy2hC,EAAoBvuF,EAAWlo8B,OAAiBy2hC,EAAoBH,GAAuBpuF,EAAWvs8B,YACrH,OAAOiE,EAAAA,GAAAA,GAAS,CAAC,EAAGso8B,EAAY,CAC9BkkF,cACCzG,GAAsB,CACvBH,MAAOt9E,EAAWs9E,MAClBI,OAAQ19E,EAAW09E,OACnBE,aAAc,CAAC,OAAQ,OACvBD,cAAe,QACb,CACFS,cAAqE,OAArDoQ,EAAwBxuF,EAAWo+E,gBAAyBoQ,EAC5EnQ,YAAiE,OAAnDoQ,EAAwBzuF,EAAWq+E,cAAuBoQ,EACxElQ,QAASM,GAAiBvqE,EAAOtU,EAAWu+E,QAASsM,EAAatM,SAClED,QAASO,GAAiBvqE,EAAOtU,EAAWs+E,QAASuM,EAAavM,SAClExmhC,OAAOJ,EAAAA,GAAAA,GAAS,CACdkI,QAASmuhC,IACRj2hC,GACH8mB,UAA6D,OAAjD8vgC,EAAwB1uF,EAAWph7B,WAAqB8vgC,EAAwB1uF,EAAWmN,iBAE3G,CC1CO,MAAMyhF,GAAe/5hC,IAItB,IAJuB,MAC3BhR,EAAK,MACL3B,EAAK,QACLu19B,GACD5i9B,EACC,GAAc,OAAV3S,EACF,OAAO,KAET,MAAM,kBACJ2siC,EAAiB,mBACjBC,EAAkB,kBAClBC,EAAiB,YACjB1Q,EAAW,cACXD,EAAa,SACbK,GACE56hC,EACE2tC,EAAMim7B,EAAQnD,MAAMoqE,sBAAiB9+hC,EAAW6+hC,GAChDF,EAAUM,GAAiBpnE,EAAQnD,MAAOzw9B,EAAM06hC,QAAS9mE,EAAQozE,aAAatM,SAC9ED,EAAUO,GAAiBpnE,EAAQnD,MAAOzw9B,EAAMy6hC,QAAS7mE,EAAQozE,aAAavM,SACpF,QAAQ,GACN,KAAM7mE,EAAQnD,MAAMzw7B,QAAQ3hC,GAC1B,MAAO,cACT,KAAK+zI,QAAQ445B,GAAqBA,EAAkB3siC,IAClD,MAAO,oBACT,KAAK+zI,QAAQ645B,GAAsBA,EAAmB5siC,IACpD,MAAO,qBACT,KAAK+zI,QAAQ845B,GAAqBA,EAAkB7siC,IAClD,MAAO,oBACT,KAAK+zI,QAAQmo5B,GAAiB3mE,EAAQnD,MAAM2zE,WAAW/liC,EAAOsvC,IAC5D,MAAO,gBACT,KAAKykG,QAAQoo5B,GAAe5mE,EAAQnD,MAAM4zE,YAAYhmiC,EAAOsvC,IAC3D,MAAO,cACT,KAAKykG,QAAQso5B,GAAW9mE,EAAQnD,MAAM4zE,YAAYhmiC,EAAOq8hC,IACvD,MAAO,UACT,KAAKto5B,QAAQqo5B,GAAW7mE,EAAQnD,MAAM2zE,WAAW/liC,EAAOo8hC,IACtD,MAAO,UACT,QACE,OAAO,KACX,ECjCF,SAHA,SAAyB54hC,GACvB,MAA0B,kBAAZA,CAChB,ECsBA,SAZA,SAA0Bow5B,EAAah83B,EAAYrlB,GACjD,YAAoB7U,IAAhBk25B,GAA6Bs0D,GAAgBt0D,GACxCh83B,EAETu5W,GAAAA,GAAA,GACKv5W,GAAU,IACbrlB,WAAU4+X,GAAAA,GAAA,GACLv5W,EAAWrlB,YACXA,IAGT,ECTA,SAVA,SAA8BmmB,GAA0B,IAAlByv7B,EAAWv+8B,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAClD,QAAelM,IAAXg7B,EACF,MAAO,CAAC,EAEV,MAAMzpB,EAAS,CAAC,EAIhB,OAHAnP,OAAOgkB,KAAK4U,GAAQzP,QAAOpJ,GAAQA,EAAKxZ,MAAM,aAAuC,oBAAjBqyB,EAAO7Y,KAAyBso8B,EAAY1vlB,SAAS54W,KAAO1hB,SAAQ0hB,IACtI5Q,EAAO4Q,GAAQ6Y,EAAO7Y,EAAK,IAEtB5Q,CACT,ECCA,SAVA,SAA2BypB,GACzB,QAAeh7B,IAAXg7B,EACF,MAAO,CAAC,EAEV,MAAMzpB,EAAS,CAAC,EAIhB,OAHAnP,OAAOgkB,KAAK4U,GAAQzP,QAAOpJ,KAAUA,EAAKxZ,MAAM,aAAuC,oBAAjBqyB,EAAO7Y,MAAuB1hB,SAAQ0hB,IAC1G5Q,EAAO4Q,GAAQ6Y,EAAO7Y,EAAK,IAEtB5Q,CACT,ECyEA,SAzEA,SAAwB4tqB,GACtB,MAAM,aACJurS,EAAY,gBACZC,EAAe,kBACfC,EAAiB,uBACjBC,EAAsB,UACtBp48B,GACE0sqB,EACJ,IAAKurS,EAAc,CAGjB,MAAMI,GAAgBvy8B,EAAAA,GAAIA,GAAgB,OAAfoy8B,QAAe,IAAfA,OAAe,EAAfA,EAAiBl48B,UAAWA,EAAiC,OAAtBo48B,QAAsB,IAAtBA,OAAsB,EAAtBA,EAAwBp48B,UAA4B,OAAjBm48B,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBn48B,WAClHs48B,EAAWt3kB,GAAAA,GAAAA,GAAA,GACG,OAAfk3kB,QAAe,IAAfA,OAAe,EAAfA,EAAiBn/7B,OACK,OAAtBq/7B,QAAsB,IAAtBA,OAAsB,EAAtBA,EAAwBr/7B,OACP,OAAjBo/7B,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBp/7B,OAElBvnB,EAAKwvY,GAAAA,GAAAA,GAAA,GACNk3kB,GACAE,GACAD,GAQL,OANIE,EAAcvr9B,OAAS,IACzB0E,EAAMwO,UAAYq48B,GAEhB1o9B,OAAOgkB,KAAK2k8B,GAAaxr9B,OAAS,IACpC0E,EAAMunB,MAAQu/7B,GAET,CACL9m9B,QACA+m9B,iBAAahr9B,EAEjB,CAKA,MAAMir9B,EAAgBC,GAAoBz3kB,GAAAA,GAAC,CAAC,EACvCo3kB,GACAD,IAECO,EAAsCC,GAAkBR,GACxDS,EAAiCD,GAAkBP,GACnDS,EAAoBZ,EAAaO,GAMjCH,GAAgBvy8B,EAAAA,GAAIA,GAAkB,OAAjB+y8B,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB748B,UAA0B,OAAfk48B,QAAe,IAAfA,OAAe,EAAfA,EAAiBl48B,UAAWA,EAAiC,OAAtBo48B,QAAsB,IAAtBA,OAAsB,EAAtBA,EAAwBp48B,UAA4B,OAAjBm48B,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBn48B,WAChJs48B,EAAWt3kB,GAAAA,GAAAA,GAAAA,GAAA,GACK,OAAjB63kB,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB9/7B,OACJ,OAAfm/7B,QAAe,IAAfA,OAAe,EAAfA,EAAiBn/7B,OACK,OAAtBq/7B,QAAsB,IAAtBA,OAAsB,EAAtBA,EAAwBr/7B,OACP,OAAjBo/7B,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBp/7B,OAElBvnB,EAAKwvY,GAAAA,GAAAA,GAAAA,GAAA,GACN63kB,GACAX,GACAU,GACAF,GAQL,OANIL,EAAcvr9B,OAAS,IACzB0E,EAAMwO,UAAYq48B,GAEhB1o9B,OAAOgkB,KAAK2k8B,GAAaxr9B,OAAS,IACpC0E,EAAMunB,MAAQu/7B,GAET,CACL9m9B,QACA+m9B,YAAaM,EAAkBpg9B,IAEnC,EC9EA,SANA,SAA+Bqg9B,EAAgB128B,EAAY228B,GACzD,MAA8B,oBAAnBD,EACFA,EAAe128B,EAAY228B,GAE7BD,CACT,ECTa928B,GAAA,0EAqCb,SAvBA,SAAsB0qqB,GAAY,IAAAssS,EAChC,MAAM,YACJv1D,EAAW,kBACX00D,EAAiB,WACjB/18B,EAAU,uBACV628B,GAAyB,GAEvBvsS,EADCvnqB,EAAK0u+B,GACNnnU,EAAU1qqB,IACRk38B,EAA0BD,EAAyB,CAAC,EAAIE,GAAsBhB,EAAmB/18B,IAErG5Q,MAAOwM,EAAW,YAClBu68B,GACEa,GAAcp4kB,GAAAA,GAAC,CAAC,EACf77X,GAAK,IACRgz8B,kBAAmBe,KAEfzg9B,ECTO,WAA6B,QAAAe,EAAAC,UAAA3M,OAANsgC,EAAI,IAAA92B,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJyzB,EAAIzzB,GAAAF,UAAAE,GAMxC,OAAOzB,EAAAA,SAAc,IACfk1B,EAAK1E,OAAMjwB,GAAc,MAAPA,IACb,KAEF40B,IACLD,EAAKp/B,SAAQyK,KCnBJ,SAAgBA,EAAK5I,GACf,oBAAR4I,EACTA,EAAI5I,GACK4I,IACTA,EAAIU,QAAUtJ,EAElB,CDcQ48B,CAAOh0B,EAAK40B,EAAS,GACrB,GAIHD,EACL,CDTcD,CAAWor7B,EAAoC,OAAvBW,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBzg9B,IAA+B,QAA5Bug9B,EAAEtsS,EAAWwrS,uBAAe,IAAAc,OAAA,EAA1BA,EAA4Bvg9B,KAK9F,OAJc4g9B,GAAiB51D,EAAWzihB,GAAAA,GAAA,GACrChjY,GAAW,IACdvF,QACC2J,EAEL,EGlCO,SAASu6hC,GAA8B96hC,GAC5C,OAAOC,EAAAA,GAAAA,IAAqB,oBAAqBD,EACnD,CACA,MACA,IAD8BE,EAAAA,GAAsBA,GAAC,oBAAqB,CAAC,OAAQ,SAAU,WAAY,WAAY,gBAAiB,cAAe,uBAAwB,cAAe,cCD5L,IAAIk5gC,GACJ,MAAMj5gC,GAAY,CAAC,WAAY,YAAa,YAAa,uBAAwB,oBAAqB,WAAY,WAkC5G46hC,IAAqB16hC,EAAAA,GAAMA,IAAC,MAAO,CACvCvK,KAAM,oBACNkK,KAAM,OACNM,kBAvBwBA,CAAC3Q,EAAOiG,KAChC,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO,WAADJ,QAAYiL,EAAAA,GAAUA,GAACF,EAAWnR,aAAkD,IAApCmR,EAAWy6hC,sBAAiCpliC,EAAOoliC,qBAAsBpliC,EAAO2K,EAAWyZ,SAAS,GAgBtJ3Z,EAIxBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTD,OAAQ,SAER8f,UAAW,MACX4C,WAAY,SACZL,WAAY,SACZxjB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOC,QACpB,WAAvBtC,EAAWyZ,SAAwB,CAEpC,CAAC,KAADxkB,OAAMyliC,GAAsBC,cAAa,WAAA1liC,OAAUyliC,GAAsB/lB,YAAW,MAAM,CACxFhy/B,UAAW,KAEY,UAAxB3iB,EAAWnR,UAAwB,CAEpC+zB,YAAa,GACY,QAAxB5iB,EAAWnR,UAAsB,CAElCi0B,WAAY,IACyB,IAApC9iB,EAAWy6hC,sBAAiC,CAE7C9q1B,cAAe,QACf,IAwGF,GAvGoC75M,EAAAA,YAAiB,SAAwB2M,EAASpM,GACpF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,uBAEF,SACFlG,EAAQ,UACRuO,EAAS,UACT8E,EAAY,MAAK,qBACjB+3hC,GAAuB,EAAK,kBAC5BG,GAAoB,EAAK,SACzB/riC,EACA4qB,QAASo/7B,GACPzp9B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC8zgC,EAAiBC,MAAoB,CAAC,EAC5C,IAAIl6/B,EAAUo/7B,EACVA,GAAe66D,EAAej6/B,QAO9Bi6/B,IAAmBj6/B,IACrBA,EAAUi6/B,EAAej6/B,SAE3B,MAAMzZ,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCulhC,YAAajB,EAAeiB,YAC5BrihC,KAAMohhC,EAAephhC,KACrBmoiC,uBACA5riC,WACA4qB,YAEIrW,EA9EkBpD,KACxB,MAAM,QACJoD,EAAO,qBACPq3hC,EAAoB,YACpB9lB,EAAW,SACX9lhC,EAAQ,KACRyD,EAAI,QACJmnB,GACEzZ,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwriC,GAAwB,uBAAwB5riC,GAAY,WAAJoG,QAAeiL,EAAAA,GAAUA,GAACrR,IAAa4qB,EAASk7/B,GAAe,cAAerihC,GAAQ,OAAJ2C,QAAWiL,EAAAA,GAAUA,GAAC5N,MAEjL,OAAOgR,EAAAA,GAAcA,GAACD,EAAOk3hC,GAA+Bn3hC,EAAQ,EAkEpDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK+vgC,GAAmB39gC,SAAU,CACpDxI,MAAO,KACP4B,UAAuBwU,EAAAA,GAAAA,KAAK22hC,IAAoBv3hC,EAAAA,GAAAA,GAAS,CACvDQ,GAAIf,EACJ1C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,EAAO,CACR1T,SAA8B,kBAAbA,GAA0BuriC,GAGzBp3hC,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACtCzG,SAAU,CAAc,UAAbR,EAA4GgqhC,KAAUA,IAAqBh1gC,EAAAA,GAAAA,KAAK,OAAQ,CACjKjG,UAAW,cACXvO,SAAU,YACL,KAAMA,MAP6DwU,EAAAA,GAAAA,KAAKoy9B,GAAY,CAC3Fh29B,MAAO,iBACP5Q,SAAUA,QASlB,mBC3He,SAASwriC,GAAU7riC,GAChC,GAAY,MAARA,EACF,OAAOi7B,OAGT,GAAwB,oBAApBj7B,EAAK4I,WAAkC,CACzC,IAAIkZ,EAAgB9hB,EAAK8hB,cACzB,OAAOA,GAAgBA,EAAckZ,aAAwBC,MAC/D,CAEA,OAAOj7B,CACT,CCTA,SAASwnC,GAAUxnC,GAEjB,OAAOA,aADU6riC,GAAU7riC,GAAM6mC,SACI7mC,aAAgB6mC,OACvD,CAEA,SAASilgC,GAAc9riC,GAErB,OAAOA,aADU6riC,GAAU7riC,GAAM+G,aACI/G,aAAgB+G,WACvD,CAEA,SAASgliC,GAAa/riC,GAEpB,MAA0B,qBAAfkiH,aAKJliH,aADU6riC,GAAU7riC,GAAMkiH,YACIliH,aAAgBkiH,WACvD,CCpBO,IAAIn9F,GAAM7mB,KAAK6mB,IACXC,GAAM9mB,KAAK8mB,IACX/K,GAAQ/b,KAAK+b,MCFT,SAAS+xhC,KACtB,IAAIC,EAASvw/B,UAAUww/B,cAEvB,OAAc,MAAVD,GAAkBA,EAAOE,QAAUjniC,MAAMiI,QAAQ8+hC,EAAOE,QACnDF,EAAOE,OAAOxniC,KAAI,SAAU0mB,GACjC,OAAOA,EAAKgsY,MAAQ,IAAMhsY,EAAK8e,OACjC,IAAGjoC,KAAK,KAGHw5C,UAAUC,SACnB,CCTe,SAASyw/B,KACtB,OAAQ,iCAAiC1phC,KAAKsphC,KAChD,CCCe,SAASpv/B,GAAsB36C,EAASoqiC,EAAcC,QAC9C,IAAjBD,IACFA,GAAe,QAGO,IAApBC,IACFA,GAAkB,GAGpB,IAAInphB,EAAalhhB,EAAQ26C,wBACrBioL,EAAS,EACTC,EAAS,EAETun0B,GAAgBP,GAAc7piC,KAChC4iO,EAAS5iO,EAAQ66yB,YAAc,GAAI7iyB,GAAMkpgB,EAAWhxgB,OAASlQ,EAAQ66yB,aAAmB,EACxFh4kB,EAAS7iO,EAAQ4tzB,aAAe,GAAI51yB,GAAMkpgB,EAAW/wgB,QAAUnQ,EAAQ4tzB,cAAoB,GAG7F,IACI08O,GADO/kgC,GAAUvlC,GAAW4piC,GAAU5piC,GAAWg5B,QAC3BsxgC,eAEtBC,GAAoBJ,MAAsBE,EAC1C7oiC,GAAK0/gB,EAAWttf,MAAQ22gC,GAAoBD,EAAiBA,EAAe/72B,WAAa,IAAMq0C,EAC/FnhO,GAAKy/gB,EAAWztf,KAAO82gC,GAAoBD,EAAiBA,EAAe972B,UAAY,IAAMq0C,EAC7F3yN,EAAQgxgB,EAAWhxgB,MAAQ0yN,EAC3BzyN,EAAS+wgB,EAAW/wgB,OAAS0yN,EACjC,MAAO,CACL3yN,MAAOA,EACPC,OAAQA,EACRsjB,IAAKhyB,EACLiyB,MAAOlyB,EAAI0O,EACXyjB,OAAQlyB,EAAI0O,EACZyjB,KAAMpyB,EACNA,EAAGA,EACHC,EAAGA,EAEP,CCvCe,SAAS+oiC,GAAgBzsiC,GACtC,IAAI0siC,EAAMb,GAAU7riC,GAGpB,MAAO,CACLyizB,WAHeiqP,EAAIC,YAInBnqP,UAHckqP,EAAI9qD,YAKtB,CCTe,SAASgrD,GAAY3qiC,GAClC,OAAOA,GAAWA,EAAQ+iK,UAAY,IAAI54J,cAAgB,IAC5D,CCDe,SAASygiC,GAAmB5qiC,GAEzC,QAASulC,GAAUvlC,GAAWA,EAAQ6f,cACtC7f,EAAQlF,WAAak+B,OAAOl+B,UAAU4wC,eACxC,CCFe,SAASm//B,GAAoB7qiC,GAQ1C,OAAO26C,GAAsBiw/B,GAAmB5qiC,IAAU4zB,KAAO42gC,GAAgBxqiC,GAASwgzB,UAC5F,CCXe,SAAS7pwB,GAAiB32C,GACvC,OAAO4piC,GAAU5piC,GAAS22C,iBAAiB32C,EAC7C,CCFe,SAAS8qiC,GAAe9qiC,GAErC,IAAI+qiC,EAAoBp0/B,GAAiB32C,GACrCqyB,EAAW04gC,EAAkB14gC,SAC7B888B,EAAY47D,EAAkB57D,UAC9Bn+C,EAAY+5G,EAAkB/5G,UAElC,MAAO,6BAA6Bvw6B,KAAK4R,EAAW2+5B,EAAYm+C,EAClE,CCSe,SAAS67D,GAAiBC,EAAyB73O,EAAc83O,QAC9D,IAAZA,IACFA,GAAU,GAGZ,IAAIC,EAA0BtB,GAAcz2O,GACxCg4O,EAAuBvB,GAAcz2O,IAf3C,SAAyBpzzB,GACvB,IAAI06C,EAAO16C,EAAQ26C,wBACfioL,EAAS5qN,GAAM0iC,EAAKxqC,OAASlQ,EAAQ66yB,aAAe,EACpDh4kB,EAAS7qN,GAAM0iC,EAAKvqC,QAAUnQ,EAAQ4tzB,cAAgB,EAC1D,OAAkB,IAAXhrlB,GAA2B,IAAXC,CACzB,CAU4Dwo0B,CAAgBj4O,GACtE1nxB,EAAkBk//B,GAAmBx3O,GACrC14wB,EAAOC,GAAsBsw/B,EAAyBG,EAAsBF,GAC5EntC,EAAS,CACXv9M,WAAY,EACZD,UAAW,GAETt4uB,EAAU,CACZzmE,EAAG,EACHC,EAAG,GAkBL,OAfI0piC,IAA4BA,IAA4BD,MACxB,SAA9BP,GAAYv3O,IAChB03O,GAAep//B,MACbqy9B,ECnCS,SAAuBhggC,GACpC,OAAIA,IAAS6riC,GAAU7riC,IAAU8riC,GAAc9riC,GCJxC,CACLyizB,YAFyCxgzB,EDQbjC,GCNRyizB,WACpBD,UAAWvgzB,EAAQugzB,WDGZiqP,GAAgBzsiC,GCNZ,IAA8BiC,CDU7C,CD6BesriC,CAAcl4O,IAGrBy2O,GAAcz2O,KAChBnrvB,EAAUttB,GAAsBy4wB,GAAc,IACtC5xzB,GAAK4xzB,EAAax4wB,WAC1BqtB,EAAQxmE,GAAK2xzB,EAAav4wB,WACjBnP,IACTu8B,EAAQzmE,EAAIqpiC,GAAoBn//B,KAI7B,CACLlqC,EAAGk5C,EAAK9mB,KAAOmq+B,EAAOv9M,WAAav4uB,EAAQzmE,EAC3CC,EAAGi5C,EAAKjnB,IAAMsq+B,EAAOx9M,UAAYt4uB,EAAQxmE,EACzCyO,MAAOwqC,EAAKxqC,MACZC,OAAQuqC,EAAKvqC,OAEjB,CGtDe,SAASo7hC,GAAcvriC,GACpC,IAAIkhhB,EAAavme,GAAsB36C,GAGnCkQ,EAAQlQ,EAAQ66yB,YAChB1qyB,EAASnQ,EAAQ4tzB,aAUrB,OARI3xzB,KAAKD,IAAIklhB,EAAWhxgB,MAAQA,IAAU,IACxCA,EAAQgxgB,EAAWhxgB,OAGjBjU,KAAKD,IAAIklhB,EAAW/wgB,OAASA,IAAW,IAC1CA,EAAS+wgB,EAAW/wgB,QAGf,CACL3O,EAAGxB,EAAQuuL,WACX9sL,EAAGzB,EAAQwuL,UACXt+K,MAAOA,EACPC,OAAQA,EAEZ,CCrBe,SAASq7hC,GAAcxriC,GACpC,MAA6B,SAAzB2qiC,GAAY3qiC,GACPA,EAMPA,EAAQyriC,cACRzriC,EAAQlE,aACRguiC,GAAa9piC,GAAWA,EAAQkgH,KAAO,OAEvC0q7B,GAAmB5qiC,EAGvB,CCde,SAAS0riC,GAAgB3tiC,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAajB,QAAQ6tiC,GAAY5siC,KAAU,EAEvDA,EAAK8hB,cAAci/D,KAGxB+q9B,GAAc9riC,IAAS+siC,GAAe/siC,GACjCA,EAGF2tiC,GAAgBF,GAAcztiC,GACvC,CCJe,SAAS4tiC,GAAkB3riC,EAASurC,GACjD,IAAIqggC,OAES,IAATrggC,IACFA,EAAO,IAGT,IAAIsggC,EAAeH,GAAgB1riC,GAC/B8riC,EAASD,KAAqE,OAAlDD,EAAwB5riC,EAAQ6f,oBAAyB,EAAS+rhC,EAAsB9s9B,MACpH2r9B,EAAMb,GAAUiC,GAChBvshC,EAASwshC,EAAS,CAACrB,GAAKzmiC,OAAOymiC,EAAIH,gBAAkB,GAAIQ,GAAee,GAAgBA,EAAe,IAAMA,EAC7GE,EAAcxggC,EAAKvnC,OAAOsb,GAC9B,OAAOwshC,EAASC,EAChBA,EAAY/niC,OAAO2niC,GAAkBH,GAAclshC,IACrD,CCxBe,SAAS0shC,GAAehsiC,GACrC,MAAO,CAAC,QAAS,KAAM,MAAMlD,QAAQ6tiC,GAAY3qiC,KAAa,CAChE,CCKA,SAASisiC,GAAoBjsiC,GAC3B,OAAK6piC,GAAc7piC,IACoB,UAAvC22C,GAAiB32C,GAASpC,SAInBoC,EAAQozzB,aAHN,IAIX,CAwCe,SAAS84O,GAAgBlsiC,GAItC,IAHA,IAAIg5B,EAAS4wgC,GAAU5piC,GACnBozzB,EAAe64O,GAAoBjsiC,GAEhCozzB,GAAgB44O,GAAe54O,IAA6D,WAA5Cz8wB,GAAiBy8wB,GAAcx1zB,UACpFw1zB,EAAe64O,GAAoB74O,GAGrC,OAAIA,IAA+C,SAA9Bu3O,GAAYv3O,IAA0D,SAA9Bu3O,GAAYv3O,IAAwE,WAA5Cz8wB,GAAiBy8wB,GAAcx1zB,UAC3Ho7B,EAGFo6xB,GAhDT,SAA4BpzzB,GAC1B,IAAImsiC,EAAY,WAAW1rhC,KAAKsphC,MAGhC,GAFW,WAAWtphC,KAAKsphC,OAEfF,GAAc7piC,IAII,UAFX22C,GAAiB32C,GAEnBpC,SACb,OAAO,KAIX,IAAIq/J,EAAcuu4B,GAAcxriC,GAMhC,IAJI8piC,GAAa7s4B,KACfA,EAAcA,EAAY/8C,MAGrB2p7B,GAAc5s4B,IAAgB,CAAC,OAAQ,QAAQngK,QAAQ6tiC,GAAY1t4B,IAAgB,GAAG,CAC3F,IAAI/2J,EAAMywC,GAAiBsmH,GAI3B,GAAsB,SAAlB/2J,EAAI2lB,WAA4C,SAApB3lB,EAAIy3G,aAA0C,UAAhBz3G,EAAI+i+B,UAAiF,IAA1D,CAAC,YAAa,eAAens+B,QAAQoJ,EAAI6p/B,aAAsBo8C,GAAgC,WAAnBjmiC,EAAI6p/B,YAA2Bo8C,GAAajmiC,EAAIuf,QAAyB,SAAfvf,EAAIuf,OACjO,OAAOw3I,EAEPA,EAAcA,EAAYnhK,UAE9B,CAEA,OAAO,IACT,CAgByBswiC,CAAmBpsiC,IAAYg5B,CACxD,CCpEO,IAAIvF,GAAM,MACNE,GAAS,SACTD,GAAQ,QACRE,GAAO,OACPi5I,GAAO,OACPw/3B,GAAiB,CAAC54gC,GAAKE,GAAQD,GAAOE,IACtC1T,GAAQ,QACR9iB,GAAM,MAEN40d,GAAW,WACXs6kB,GAAS,SAETC,GAAmCF,GAAe9xhC,QAAO,SAAUC,EAAK2mpB,GACjF,OAAO3mpB,EAAIxW,OAAO,CAACm9pB,EAAY,IAAMjhpB,GAAOihpB,EAAY,IAAM/jqB,IAChE,GAAG,IACQi0wB,GAA0B,GAAGrtwB,OAAOqoiC,GAAgB,CAACx/3B,KAAOtyJ,QAAO,SAAUC,EAAK2mpB,GAC3F,OAAO3mpB,EAAIxW,OAAO,CAACm9pB,EAAWA,EAAY,IAAMjhpB,GAAOihpB,EAAY,IAAM/jqB,IAC3E,GAAG,IAaQoviC,GAAiB,CAXJ,aACN,OACK,YAEC,aACN,OACK,YAEE,cACN,QACK,cC3BxB,SAAS5jiC,GAAM6jiC,GACb,IAAI/piC,EAAM,IAAI28X,IACVqtqB,EAAU,IAAIt3gC,IACd3pB,EAAS,GAKb,SAASif,EAAKwk4B,GACZw9I,EAAQ5wgC,IAAIoz3B,EAAS5q5B,MACN,GAAGN,OAAOkr5B,EAASv1O,UAAY,GAAIu1O,EAASy9I,kBAAoB,IACtEhyiC,SAAQ,SAAUiyiC,GACzB,IAAKF,EAAQ7khC,IAAI+khC,GAAM,CACrB,IAAIC,EAAcnqiC,EAAIP,IAAIyqiC,GAEtBC,GACFnihC,EAAKmihC,EAET,CACF,IACAphiC,EAAOzR,KAAKk15B,EACd,CAQA,OAzBAu9I,EAAU9xiC,SAAQ,SAAUu05B,GAC1Bxs5B,EAAIN,IAAI8s5B,EAAS5q5B,KAAM4q5B,EACzB,IAiBAu9I,EAAU9xiC,SAAQ,SAAUu05B,GACrBw9I,EAAQ7khC,IAAIqn4B,EAAS5q5B,OAExBomB,EAAKwk4B,EAET,IACOzj5B,CACT,CChCe,SAAS4qB,GAAS5xB,GAC/B,IAAI68xB,EACJ,OAAO,WAUL,OATKA,IACHA,EAAU,IAAI9oqB,SAAQ,SAAU3uF,GAC9B2uF,QAAQ3uF,UAAUV,MAAK,WACrBm4vB,OAAUpnyB,EACV2vC,EAAQplC,IACV,GACF,KAGK68xB,CACT,CACF,CCLA,IAAIwrQ,GAAkB,CACpB3rY,UAAW,SACXsrY,UAAW,GACXM,SAAU,YAGZ,SAASC,KACP,IAAK,IAAI7miC,EAAOC,UAAU3M,OAAQ4M,EAAO,IAAIpD,MAAMkD,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAGzB,OAAQD,EAAKm+R,MAAK,SAAUxkS,GAC1B,QAASA,GAAoD,oBAAlCA,EAAQ26C,sBACrC,GACF,CAEO,SAASsy/B,GAAgBC,QACL,IAArBA,IACFA,EAAmB,CAAC,GAGtB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkB1xvB,eAC3CA,OAA4C,IAA3B6xvB,EAAoCR,GAAkBQ,EAC3E,OAAO,SAAsBtsiC,EAAWsriC,EAAQpziC,QAC9B,IAAZA,IACFA,EAAUuiT,GAGZ,IAAIjiR,EAAQ,CACV2noB,UAAW,SACXosY,iBAAkB,GAClBr0iC,QAASoD,OAAOD,OAAO,CAAC,EAAGywiC,GAAiBrxvB,GAC5C+xvB,cAAe,CAAC,EAChBpulB,SAAU,CACRp+c,UAAWA,EACXsriC,OAAQA,GAEV387B,WAAY,CAAC,EACbvrG,OAAQ,CAAC,GAEPqpiC,EAAmB,GACnBC,GAAc,EACd1zgC,EAAW,CACbR,MAAOA,EACP+roB,WAAY,SAAoBooY,GAC9B,IAAIz0iC,EAAsC,oBAArBy0iC,EAAkCA,EAAiBn0gC,EAAMtgC,SAAWy0iC,EACzFC,IACAp0gC,EAAMtgC,QAAUoD,OAAOD,OAAO,CAAC,EAAGo/S,EAAgBjiR,EAAMtgC,QAASA,GACjEsgC,EAAMq0gC,cAAgB,CACpB7siC,UAAWukC,GAAUvkC,GAAa2qiC,GAAkB3qiC,GAAaA,EAAU8siC,eAAiBnC,GAAkB3qiC,EAAU8siC,gBAAkB,GAC1IxB,OAAQX,GAAkBW,IAI5B,IAAIiB,EFhCG,SAAwBd,GAErC,IAAIc,EAAmB3kiC,GAAM6jiC,GAE7B,OAAOD,GAAejyhC,QAAO,SAAUC,EAAKoye,GAC1C,OAAOpye,EAAIxW,OAAOupiC,EAAiB9nhC,QAAO,SAAUyp4B,GAClD,OAAOA,EAAStia,QAAUA,CAC5B,IACF,GAAG,GACL,CEuB+BmhjB,CClEhB,SAAqBtB,GAClC,IAAIz9/B,EAASy9/B,EAAUlyhC,QAAO,SAAUy0B,EAAQlpC,GAC9C,IAAI+4H,EAAW7vF,EAAOlpC,EAAQxB,MAK9B,OAJA0qC,EAAOlpC,EAAQxB,MAAQu6H,EAAWviI,OAAOD,OAAO,CAAC,EAAGwiI,EAAU/4H,EAAS,CACrE5M,QAASoD,OAAOD,OAAO,CAAC,EAAGwiI,EAAS3lI,QAAS4M,EAAQ5M,SACrD68C,KAAMz5C,OAAOD,OAAO,CAAC,EAAGwiI,EAAS9oF,KAAMjwC,EAAQiwC,QAC5CjwC,EACEkpC,CACT,GAAG,CAAC,GAEJ,OAAO1yC,OAAOgkB,KAAK0uB,GAAQtsC,KAAI,SAAUpI,GACvC,OAAO00C,EAAO10C,EAChB,GACF,CDqD8C0ziC,CAAY,GAAGhqiC,OAAOqpiC,EAAkB7zgC,EAAMtgC,QAAQuziC,aAM5F,OAJAjzgC,EAAM+zgC,iBAAmBA,EAAiB9nhC,QAAO,SAAUyG,GACzD,OAAOA,EAAEquH,OACX,IA+FF/gH,EAAM+zgC,iBAAiB5yiC,SAAQ,SAAUwU,GACvC,IAAI7K,EAAO6K,EAAK7K,KACZ2piC,EAAe9+hC,EAAKjW,QACpBA,OAA2B,IAAjB+0iC,EAA0B,CAAC,EAAIA,EACzCC,EAAS/+hC,EAAK++hC,OAElB,GAAsB,oBAAXA,EAAuB,CAChC,IAAIC,EAAYD,EAAO,CACrB10gC,MAAOA,EACPl1B,KAAMA,EACN01B,SAAUA,EACV9gC,QAASA,IAGPk1iC,EAAS,WAAmB,EAEhCX,EAAiBzziC,KAAKm0iC,GAAaC,EACrC,CACF,IA/GSp0gC,EAAS2d,QAClB,EAMAg83B,YAAa,WACX,IAAI+5H,EAAJ,CAIA,IAAIW,EAAkB70gC,EAAM4lb,SACxBp+c,EAAYqtiC,EAAgBrtiC,UAC5BsriC,EAAS+B,EAAgB/B,OAG7B,GAAKU,GAAiBhsiC,EAAWsriC,GAAjC,CAKA9ygC,EAAMimJ,MAAQ,CACZz+K,UAAWgqiC,GAAiBhqiC,EAAWkriC,GAAgBI,GAAoC,UAA3B9ygC,EAAMtgC,QAAQ6ziC,UAC9ET,OAAQf,GAAce,IAOxB9ygC,EAAM7D,OAAQ,EACd6D,EAAM2noB,UAAY3noB,EAAMtgC,QAAQioqB,UAKhC3noB,EAAM+zgC,iBAAiB5yiC,SAAQ,SAAUu05B,GACvC,OAAO113B,EAAMg0gC,cAAct+I,EAAS5q5B,MAAQhI,OAAOD,OAAO,CAAC,EAAG6y5B,EAASn52B,KACzE,IAEA,IAAK,IAAI/4C,EAAQ,EAAGA,EAAQw8B,EAAM+zgC,iBAAiB9ziC,OAAQuD,IACzD,IAAoB,IAAhBw8B,EAAM7D,MAAV,CAMA,IAAI24gC,EAAwB90gC,EAAM+zgC,iBAAiBvwiC,GAC/CyH,EAAK6piC,EAAsB7piC,GAC3B8piC,EAAyBD,EAAsBp1iC,QAC/C+0vB,OAAsC,IAA3BsgT,EAAoC,CAAC,EAAIA,EACpDjqiC,EAAOgqiC,EAAsBhqiC,KAEf,oBAAPG,IACT+0B,EAAQ/0B,EAAG,CACT+0B,MAAOA,EACPtgC,QAAS+0vB,EACT3pvB,KAAMA,EACN01B,SAAUA,KACNR,EAdR,MAHEA,EAAM7D,OAAQ,EACd34B,GAAS,CAzBb,CATA,CAqDF,EAGA26C,OAAQthB,IAAS,WACf,OAAO,IAAImiG,SAAQ,SAAU3uF,GAC3B7P,EAAS254B,cACT9p4B,EAAQrQ,EACV,GACF,IACAowH,QAAS,WACPgk5B,IACAF,GAAc,CAChB,GAGF,IAAKV,GAAiBhsiC,EAAWsriC,GAC/B,OAAOtygC,EAmCT,SAAS4zgC,IACPH,EAAiB9yiC,SAAQ,SAAU8J,GACjC,OAAOA,GACT,IACAgpiC,EAAmB,EACrB,CAEA,OAvCAzzgC,EAASuroB,WAAWrsqB,GAASiwC,MAAK,SAAU3P,IACrCk0gC,GAAex0iC,EAAQs1iC,eAC1Bt1iC,EAAQs1iC,cAAch1gC,EAE1B,IAmCOQ,CACT,CACF,CACO,IElMH8kL,GAAU,CACZA,SAAS,GCFI,SAAS2v1B,GAAiBttY,GACvC,OAAOA,EAAUz9pB,MAAM,KAAK,EAC9B,CCHe,SAASgriC,GAAavtY,GACnC,OAAOA,EAAUz9pB,MAAM,KAAK,EAC9B,CCFe,SAASiriC,GAAyBxtY,GAC/C,MAAO,CAAC,MAAO,UAAUrkqB,QAAQqkqB,IAAc,EAAI,IAAM,GAC3D,CCEe,SAASytY,GAAez/hC,GACrC,IAOI84D,EAPAjnE,EAAYmO,EAAKnO,UACjBhB,EAAUmP,EAAKnP,QACfmhqB,EAAYhypB,EAAKgypB,UACjB0tY,EAAgB1tY,EAAYstY,GAAiBttY,GAAa,KAC1D2tY,EAAY3tY,EAAYutY,GAAavtY,GAAa,KAClD4tY,EAAU/tiC,EAAUQ,EAAIR,EAAUkP,MAAQ,EAAIlQ,EAAQkQ,MAAQ,EAC9D8+hC,EAAUhuiC,EAAUS,EAAIT,EAAUmP,OAAS,EAAInQ,EAAQmQ,OAAS,EAGpE,OAAQ0+hC,GACN,KAAKp7gC,GACHw0C,EAAU,CACRzmE,EAAGutiC,EACHttiC,EAAGT,EAAUS,EAAIzB,EAAQmQ,QAE3B,MAEF,KAAKwjB,GACHs0C,EAAU,CACRzmE,EAAGutiC,EACHttiC,EAAGT,EAAUS,EAAIT,EAAUmP,QAE7B,MAEF,KAAKujB,GACHu0C,EAAU,CACRzmE,EAAGR,EAAUQ,EAAIR,EAAUkP,MAC3BzO,EAAGutiC,GAEL,MAEF,KAAKp7gC,GACHq0C,EAAU,CACRzmE,EAAGR,EAAUQ,EAAIxB,EAAQkQ,MACzBzO,EAAGutiC,GAEL,MAEF,QACE/m+B,EAAU,CACRzmE,EAAGR,EAAUQ,EACbC,EAAGT,EAAUS,GAInB,IAAIwtiC,EAAWJ,EAAgBF,GAAyBE,GAAiB,KAEzE,GAAgB,MAAZI,EAAkB,CACpB,IAAI9iiC,EAAmB,MAAb8iiC,EAAmB,SAAW,QAExC,OAAQH,GACN,KAAK5uhC,GACH+nD,EAAQgn+B,GAAYhn+B,EAAQgn+B,IAAajuiC,EAAUmL,GAAO,EAAInM,EAAQmM,GAAO,GAC7E,MAEF,KAAK/O,GACH6qE,EAAQgn+B,GAAYhn+B,EAAQgn+B,IAAajuiC,EAAUmL,GAAO,EAAInM,EAAQmM,GAAO,GAKnF,CAEA,OAAO87D,CACT,CC5DA,IAAIin+B,GAAa,CACfz7gC,IAAK,OACLC,MAAO,OACPC,OAAQ,OACRC,KAAM,QAeD,SAASu7gC,GAAYvhiC,GAC1B,IAAIwhiC,EAEA9C,EAAS1+hC,EAAM0+hC,OACf+C,EAAazhiC,EAAMyhiC,WACnBluY,EAAYvzpB,EAAMuzpB,UAClB2tY,EAAYlhiC,EAAMkhiC,UAClB7m+B,EAAUr6D,EAAMq6D,QAChBrqE,EAAWgQ,EAAMhQ,SACjB0xiC,EAAkB1hiC,EAAM0hiC,gBACxBC,EAAW3hiC,EAAM2hiC,SACjBC,EAAe5hiC,EAAM4hiC,aACrBtE,EAAUt9hC,EAAMs9hC,QAChBuE,EAAaxn+B,EAAQzmE,EACrBA,OAAmB,IAAfiuiC,EAAwB,EAAIA,EAChCC,EAAazn+B,EAAQxmE,EACrBA,OAAmB,IAAfiuiC,EAAwB,EAAIA,EAEhCxohC,EAAgC,oBAAjBsohC,EAA8BA,EAAa,CAC5DhuiC,EAAGA,EACHC,EAAGA,IACA,CACHD,EAAGA,EACHC,EAAGA,GAGLD,EAAI0lB,EAAM1lB,EACVC,EAAIylB,EAAMzlB,EACV,IAAIg23B,EAAOxvzB,EAAQnzD,eAAe,KAC9B4i3B,EAAOzvzB,EAAQnzD,eAAe,KAC9B06M,EAAQ57L,GACR27L,EAAQ97L,GACRg3gC,EAAMzxgC,OAEV,GAAIu2gC,EAAU,CACZ,IAAIn8O,EAAe84O,GAAgBI,GAC/BqD,EAAa,eACbC,EAAY,cAchB,GAZIx8O,IAAiBw2O,GAAU0C,IAGmB,WAA5C31/B,GAFJy8wB,EAAew3O,GAAmB0B,IAEC1uiC,UAAsC,aAAbA,IAC1D+xiC,EAAa,eACbC,EAAY,eAOZzuY,IAAc1toB,KAAQ0toB,IAAcvtoB,IAAQutoB,IAAcztoB,KAAUo7gC,IAAc1xiC,GACpFmyN,EAAQ57L,GAGRlyB,IAFcypiC,GAAW93O,IAAiBq3O,GAAOA,EAAIH,eAAiBG,EAAIH,eAAen6hC,OACzFijzB,EAAau8O,IACEN,EAAWl/hC,OAC1B1O,GAAK6tiC,EAAkB,GAAK,EAG9B,GAAInuY,IAAcvtoB,KAASutoB,IAAc1toB,IAAO0toB,IAAcxtoB,KAAWm7gC,IAAc1xiC,GACrFoyN,EAAQ97L,GAGRlyB,IAFc0piC,GAAW93O,IAAiBq3O,GAAOA,EAAIH,eAAiBG,EAAIH,eAAep6hC,MACzFkjzB,EAAaw8O,IACEP,EAAWn/hC,MAC1B1O,GAAK8tiC,EAAkB,GAAK,CAEhC,CAEA,IAgBMO,EAhBFC,EAAexziC,OAAOD,OAAO,CAC/BuB,SAAUA,GACT2xiC,GAAYL,IAEX7zO,GAAyB,IAAjBm0O,EAlFd,SAA2BrgiC,EAAMs7hC,GAC/B,IAAIjpiC,EAAI2N,EAAK3N,EACTC,EAAI0N,EAAK1N,EACTsuiC,EAAMtF,EAAIhzb,kBAAoB,EAClC,MAAO,CACLj2mB,EAAGwW,GAAMxW,EAAIuuiC,GAAOA,GAAO,EAC3BtuiC,EAAGuW,GAAMvW,EAAIsuiC,GAAOA,GAAO,EAE/B,CA0EsCC,CAAkB,CACpDxuiC,EAAGA,EACHC,EAAGA,GACFmoiC,GAAU0C,IAAW,CACtB9qiC,EAAGA,EACHC,EAAGA,GAML,OAHAD,EAAI65zB,EAAM75zB,EACVC,EAAI45zB,EAAM55zB,EAEN6tiC,EAGKhziC,OAAOD,OAAO,CAAC,EAAGyziC,IAAeD,EAAiB,CAAC,GAAkBtg1B,GAASmoqB,EAAO,IAAM,GAAIm4K,EAAerg1B,GAASioqB,EAAO,IAAM,GAAIo4K,EAAehkhC,WAAa4+gC,EAAIhzb,kBAAoB,IAAM,EAAI,aAAej2mB,EAAI,OAASC,EAAI,MAAQ,eAAiBD,EAAI,OAASC,EAAI,SAAUouiC,IAG5RvziC,OAAOD,OAAO,CAAC,EAAGyziC,IAAeV,EAAkB,CAAC,GAAmB7/0B,GAASmoqB,EAAOj23B,EAAI,KAAO,GAAI2tiC,EAAgB5/0B,GAASioqB,EAAOj23B,EAAI,KAAO,GAAI4tiC,EAAgBvjhC,UAAY,GAAIujhC,GAC9L,CCtHA,IAAI5siC,GAAO,CACToxB,KAAM,QACNF,MAAO,OACPC,OAAQ,MACRF,IAAK,UAEQ,SAASw8gC,GAAqB9uY,GAC3C,OAAOA,EAAU1kqB,QAAQ,0BAA0B,SAAUyziC,GAC3D,OAAO1tiC,GAAK0tiC,EACd,GACF,CCVA,IAAI1tiC,GAAO,CACT0d,MAAO,MACP9iB,IAAK,SAEQ,SAAS+yiC,GAA8BhvY,GACpD,OAAOA,EAAU1kqB,QAAQ,cAAc,SAAUyziC,GAC/C,OAAO1tiC,GAAK0tiC,EACd,GACF,CCPe,SAASx5/B,GAASz4C,EAAQ6oE,GACvC,IAAI47F,EAAW57F,EAAMsp+B,aAAetp+B,EAAMsp+B,cAE1C,GAAInyiC,EAAOy4C,SAASowB,GAClB,OAAO,EAEJ,GAAI47F,GAAYon4B,GAAapn4B,GAAW,CACzC,IAAIlkK,EAAOsoE,EAEX,EAAG,CACD,GAAItoE,GAAQP,EAAOoyiC,WAAW7xiC,GAC5B,OAAO,EAITA,EAAOA,EAAK1C,YAAc0C,EAAK0hH,IACjC,OAAS1hH,EACX,CAGF,OAAO,CACT,CCtBe,SAAS8xiC,GAAiB51/B,GACvC,OAAOp+C,OAAOD,OAAO,CAAC,EAAGq+C,EAAM,CAC7B9mB,KAAM8mB,EAAKl5C,EACXiyB,IAAKinB,EAAKj5C,EACViyB,MAAOgnB,EAAKl5C,EAAIk5C,EAAKxqC,MACrByjB,OAAQ+mB,EAAKj5C,EAAIi5C,EAAKvqC,QAE1B,CCqBA,SAASogiC,GAA2BvwiC,EAASwwiC,EAAgBzD,GAC3D,OAAOyD,IAAmBx+kB,GAAWs+kB,GCzBxB,SAAyBtwiC,EAAS+siC,GAC/C,IAAItC,EAAMb,GAAU5piC,GAChB82C,EAAO8z/B,GAAmB5qiC,GAC1BsqiC,EAAiBG,EAAIH,eACrBp6hC,EAAQ4mC,EAAKwoO,YACbnvQ,EAAS2mC,EAAKuoO,aACd79Q,EAAI,EACJC,EAAI,EAER,GAAI6oiC,EAAgB,CAClBp6hC,EAAQo6hC,EAAep6hC,MACvBC,EAASm6hC,EAAen6hC,OACxB,IAAIsgiC,EAAiBtG,MAEjBsG,IAAmBA,GAA+B,UAAb1D,KACvCvriC,EAAI8oiC,EAAe/72B,WACnB9sL,EAAI6oiC,EAAe972B,UAEvB,CAEA,MAAO,CACLt+K,MAAOA,EACPC,OAAQA,EACR3O,EAAGA,EAAIqpiC,GAAoB7qiC,GAC3ByB,EAAGA,EAEP,CDDwDiviC,CAAgB1wiC,EAAS+siC,IAAaxngC,GAAUirgC,GAdxG,SAAoCxwiC,EAAS+siC,GAC3C,IAAIry/B,EAAOC,GAAsB36C,GAAS,EAAoB,UAAb+siC,GASjD,OARAry/B,EAAKjnB,IAAMinB,EAAKjnB,IAAMzzB,EAAQ66C,UAC9BH,EAAK9mB,KAAO8mB,EAAK9mB,KAAO5zB,EAAQ46C,WAChCF,EAAK/mB,OAAS+mB,EAAKjnB,IAAMzzB,EAAQq/Q,aACjC3kO,EAAKhnB,MAAQgnB,EAAK9mB,KAAO5zB,EAAQs/Q,YACjC5kO,EAAKxqC,MAAQlQ,EAAQs/Q,YACrB5kO,EAAKvqC,OAASnQ,EAAQq/Q,aACtB3kO,EAAKl5C,EAAIk5C,EAAK9mB,KACd8mB,EAAKj5C,EAAIi5C,EAAKjnB,IACPinB,CACT,CAG0Hi2/B,CAA2BH,EAAgBzD,GAAYuD,GEtBlK,SAAyBtwiC,GACtC,IAAI4riC,EAEA90/B,EAAO8z/B,GAAmB5qiC,GAC1B4wiC,EAAYpG,GAAgBxqiC,GAC5B8+E,EAA0D,OAAlD8s9B,EAAwB5riC,EAAQ6f,oBAAyB,EAAS+rhC,EAAsB9s9B,KAChG5uE,EAAQ4S,GAAIg0B,EAAK+5/B,YAAa/5/B,EAAKwoO,YAAaxgM,EAAOA,EAAK+x9B,YAAc,EAAG/x9B,EAAOA,EAAKwgM,YAAc,GACvGnvQ,EAAS2S,GAAIg0B,EAAKy80B,aAAcz80B,EAAKuoO,aAAcvgM,EAAOA,EAAKy0yB,aAAe,EAAGz0yB,EAAOA,EAAKugM,aAAe,GAC5G79Q,GAAKoviC,EAAUpwP,WAAaqqP,GAAoB7qiC,GAChDyB,GAAKmviC,EAAUrwP,UAMnB,MAJiD,QAA7C5pwB,GAAiBmoC,GAAQhoC,GAAMriC,YACjCjT,GAAKshB,GAAIg0B,EAAKwoO,YAAaxgM,EAAOA,EAAKwgM,YAAc,GAAKpvQ,GAGrD,CACLA,MAAOA,EACPC,OAAQA,EACR3O,EAAGA,EACHC,EAAGA,EAEP,CFCkMqviC,CAAgBlG,GAAmB5qiC,IACrO,CAsBe,SAAS+wiC,GAAgB/wiC,EAASguc,EAAUgjmB,EAAcjE,GACvE,IAAIkE,EAAmC,oBAAbjjmB,EAlB5B,SAA4Bhuc,GAC1B,IAAIkxiC,EAAkBvF,GAAkBH,GAAcxriC,IAElDmxiC,EADoB,CAAC,WAAY,SAASr0iC,QAAQ65C,GAAiB32C,GAASpC,WAAa,GACnDisiC,GAAc7piC,GAAWksiC,GAAgBlsiC,GAAWA,EAE9F,OAAKulC,GAAU4rgC,GAKRD,EAAgBzrhC,QAAO,SAAU+qhC,GACtC,OAAOjrgC,GAAUirgC,IAAmB95/B,GAAS85/B,EAAgBW,IAAmD,SAAhCxG,GAAY6F,EAC9F,IANS,EAOX,CAK6DY,CAAmBpxiC,GAAW,GAAGgE,OAAOgqc,GAC/FkjmB,EAAkB,GAAGltiC,OAAOitiC,EAAqB,CAACD,IAClDK,EAAsBH,EAAgB,GACtCI,EAAeJ,EAAgB32hC,QAAO,SAAUg3hC,EAASf,GAC3D,IAAI91/B,EAAO61/B,GAA2BvwiC,EAASwwiC,EAAgBzD,GAK/D,OAJAwE,EAAQ99gC,IAAM3Q,GAAI43B,EAAKjnB,IAAK89gC,EAAQ99gC,KACpC89gC,EAAQ79gC,MAAQ3Q,GAAI23B,EAAKhnB,MAAO69gC,EAAQ79gC,OACxC69gC,EAAQ59gC,OAAS5Q,GAAI23B,EAAK/mB,OAAQ49gC,EAAQ59gC,QAC1C49gC,EAAQ39gC,KAAO9Q,GAAI43B,EAAK9mB,KAAM29gC,EAAQ39gC,MAC/B29gC,CACT,GAAGhB,GAA2BvwiC,EAASqxiC,EAAqBtE,IAK5D,OAJAuE,EAAaphiC,MAAQohiC,EAAa59gC,MAAQ49gC,EAAa19gC,KACvD09gC,EAAanhiC,OAASmhiC,EAAa39gC,OAAS29gC,EAAa79gC,IACzD69gC,EAAa9viC,EAAI8viC,EAAa19gC,KAC9B09gC,EAAa7viC,EAAI6viC,EAAa79gC,IACvB69gC,CACT,CGpEe,SAASE,GAAmBC,GACzC,OAAOn1iC,OAAOD,OAAO,CAAC,ECDf,CACLo3B,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,KAAM,GDHuC69gC,EACjD,CEHe,SAASC,GAAgBl1iC,EAAO8jB,GAC7C,OAAOA,EAAK/F,QAAO,SAAUo3hC,EAASr3iC,GAEpC,OADAq3iC,EAAQr3iC,GAAOkC,EACRm1iC,CACT,GAAG,CAAC,EACN,CCKe,SAASC,GAAep4gC,EAAOtgC,QAC5B,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAI+0vB,EAAW/0vB,EACX24iC,EAAqB5jT,EAAS9sF,UAC9BA,OAAmC,IAAvB0wY,EAAgCr4gC,EAAM2noB,UAAY0wY,EAC9DC,EAAoB7jT,EAAS8+S,SAC7BA,OAAiC,IAAtB+E,EAA+Bt4gC,EAAMuzgC,SAAW+E,EAC3DC,EAAoB9jT,EAASjgT,SAC7BA,OAAiC,IAAtB+jmB,ErBbY,kBqBaqCA,EAC5DC,EAAwB/jT,EAAS+iT,aACjCA,OAAyC,IAA1BgB,EAAmChglB,GAAWgglB,EAC7DC,EAAwBhkT,EAASikT,eACjCA,OAA2C,IAA1BD,EAAmC3F,GAAS2F,EAC7DE,EAAuBlkT,EAASmkT,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBpkT,EAASlguB,QAC5BA,OAA+B,IAArBskhC,EAA8B,EAAIA,EAC5CZ,EAAgBD,GAAsC,kBAAZzjhC,EAAuBA,EAAU2jhC,GAAgB3jhC,EAASs+gC,KACpGiG,EAAaJ,IAAmB5F,GrBpBf,YqBoBoCA,GACrD+C,EAAa71gC,EAAMimJ,MAAM6s3B,OACzBtsiC,EAAUw5B,EAAM4lb,SAASgzlB,EAAcE,EAAaJ,GACpDK,EAAqBxB,GAAgBxrgC,GAAUvlC,GAAWA,EAAUA,EAAQ8tiC,gBAAkBlD,GAAmBpxgC,EAAM4lb,SAASktlB,QAASt+lB,EAAUgjmB,EAAcjE,GACjKyF,EAAsB73/B,GAAsBnhB,EAAM4lb,SAASp+c,WAC3DyxiC,EAAgB7D,GAAe,CACjC5tiC,UAAWwxiC,EACXxyiC,QAASqviC,EACTtC,SAAU,WACV5rY,UAAWA,IAETuxY,EAAmBpC,GAAiBh0iC,OAAOD,OAAO,CAAC,EAAGgziC,EAAYoD,IAClEE,EAAoBT,IAAmB5F,GAASoG,EAAmBF,EAGnEI,EAAkB,CACpBn/gC,IAAK8+gC,EAAmB9+gC,IAAMk/gC,EAAkBl/gC,IAAMg+gC,EAAch+gC,IACpEE,OAAQg/gC,EAAkBh/gC,OAAS4+gC,EAAmB5+gC,OAAS89gC,EAAc99gC,OAC7EC,KAAM2+gC,EAAmB3+gC,KAAO++gC,EAAkB/+gC,KAAO69gC,EAAc79gC,KACvEF,MAAOi/gC,EAAkBj/gC,MAAQ6+gC,EAAmB7+gC,MAAQ+9gC,EAAc/9gC,OAExEm/gC,EAAar5gC,EAAMg0gC,cAAc/siC,OAErC,GAAIyxiC,IAAmB5F,IAAUuG,EAAY,CAC3C,IAAIpyiC,EAASoyiC,EAAW1xY,GACxB7kqB,OAAOgkB,KAAKsyhC,GAAiBj4iC,SAAQ,SAAUL,GAC7C,IAAIwiH,EAAW,CAACppF,GAAOC,IAAQ72B,QAAQxC,IAAQ,EAAI,GAAK,EACpDqgF,EAAO,CAAClnD,GAAKE,IAAQ72B,QAAQxC,IAAQ,EAAI,IAAM,IACnDs4iC,EAAgBt4iC,IAAQmG,EAAOk6E,GAAQmiC,CACzC,GACF,CAEA,OAAO817B,CACT,CC/DO,SAAS14X,GAAOn3pB,EAAKvmB,EAAOsmB,GACjC,OAAO44E,GAAQ34E,EAAK04E,GAAQj/F,EAAOsmB,GACrC,CCAA,SAASgwhC,GAAezghC,EAAUqoB,EAAMq4/B,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBvxiC,EAAG,EACHC,EAAG,IAIA,CACLgyB,IAAKpB,EAASoB,IAAMinB,EAAKvqC,OAAS4iiC,EAAiBtxiC,EACnDiyB,MAAOrB,EAASqB,MAAQgnB,EAAKxqC,MAAQ6iiC,EAAiBvxiC,EACtDmyB,OAAQtB,EAASsB,OAAS+mB,EAAKvqC,OAAS4iiC,EAAiBtxiC,EACzDmyB,KAAMvB,EAASuB,KAAO8mB,EAAKxqC,MAAQ6iiC,EAAiBvxiC,EAExD,CAEA,SAASwxiC,GAAsB3ghC,GAC7B,MAAO,CAACoB,GAAKC,GAAOC,GAAQC,IAAM4wQ,MAAK,SAAUp4I,GAC/C,OAAO/5H,EAAS+5H,IAAS,CAC3B,GACF,CCbA,IACI6m5B,GAA4BhG,GAAgB,CAC9CI,iBAFqB,CnB+BvB,CACE/oiC,KAAM,iBACNi2I,SAAS,EACTqyW,MAAO,QACPnof,GAAI,WAAe,EACnBypiC,OAxCF,SAAgB/+hC,GACd,IAAIqqB,EAAQrqB,EAAKqqB,MACbQ,EAAW7qB,EAAK6qB,SAChB9gC,EAAUiW,EAAKjW,QACfg6iC,EAAkBh6iC,EAAQ6kgC,OAC1BA,OAA6B,IAApBm1C,GAAoCA,EAC7CC,EAAkBj6iC,EAAQ8jF,OAC1BA,OAA6B,IAApBm29B,GAAoCA,EAC7Cn6gC,EAAS4wgC,GAAUpwgC,EAAM4lb,SAASktlB,QAClCuB,EAAgB,GAAG7piC,OAAOw1B,EAAMq0gC,cAAc7siC,UAAWw4B,EAAMq0gC,cAAcvB,QAYjF,OAVIvuC,GACF8vC,EAAclziC,SAAQ,SAAUkxiC,GAC9BA,EAAa/rhC,iBAAiB,SAAUka,EAAS2d,OAAQmnK,GAC3D,IAGE9hI,GACFhkD,EAAOlZ,iBAAiB,SAAUka,EAAS2d,OAAQmnK,IAG9C,WACDi/yB,GACF8vC,EAAclziC,SAAQ,SAAUkxiC,GAC9BA,EAAaxz/B,oBAAoB,SAAUre,EAAS2d,OAAQmnK,GAC9D,IAGE9hI,GACFhkD,EAAOqf,oBAAoB,SAAUre,EAAS2d,OAAQmnK,GAE1D,CACF,EASE/oK,KAAM,CAAC,GoB7BT,CACEzxC,KAAM,gBACNi2I,SAAS,EACTqyW,MAAO,OACPnof,GApBF,SAAuB0K,GACrB,IAAIqqB,EAAQrqB,EAAKqqB,MACbl1B,EAAO6K,EAAK7K,KAKhBk1B,EAAMg0gC,cAAclpiC,GAAQsqiC,GAAe,CACzC5tiC,UAAWw4B,EAAMimJ,MAAMz+K,UACvBhB,QAASw5B,EAAMimJ,MAAM6s3B,OACrBS,SAAU,WACV5rY,UAAW3noB,EAAM2noB,WAErB,EAQEprnB,KAAM,CAAC,Gf2IT,CACEzxC,KAAM,gBACNi2I,SAAS,EACTqyW,MAAO,cACPnof,GA9CF,SAAuBy3zB,GACrB,IAAI1iyB,EAAQ0iyB,EAAM1iyB,MACdtgC,EAAUgj0B,EAAMhj0B,QAChBk6iC,EAAwBl6iC,EAAQo2iC,gBAChCA,OAA4C,IAA1B8D,GAA0CA,EAC5DC,EAAoBn6iC,EAAQq2iC,SAC5BA,OAAiC,IAAtB8D,GAAsCA,EACjDC,EAAwBp6iC,EAAQs2iC,aAChCA,OAAyC,IAA1B8D,GAA0CA,EACzDxD,EAAe,CACjB3uY,UAAWstY,GAAiBj1gC,EAAM2noB,WAClC2tY,UAAWJ,GAAal1gC,EAAM2noB,WAC9BmrY,OAAQ9ygC,EAAM4lb,SAASktlB,OACvB+C,WAAY71gC,EAAMimJ,MAAM6s3B,OACxBgD,gBAAiBA,EACjBpE,QAAoC,UAA3B1xgC,EAAMtgC,QAAQ6ziC,UAGgB,MAArCvzgC,EAAMg0gC,cAAciF,gBACtBj5gC,EAAMp1B,OAAOkoiC,OAAShwiC,OAAOD,OAAO,CAAC,EAAGm9B,EAAMp1B,OAAOkoiC,OAAQ6C,GAAY7yiC,OAAOD,OAAO,CAAC,EAAGyziC,EAAc,CACvG7n+B,QAASzuC,EAAMg0gC,cAAciF,cAC7B70iC,SAAU47B,EAAMtgC,QAAQ6ziC,SACxBwC,SAAUA,EACVC,aAAcA,OAIe,MAA7Bh2gC,EAAMg0gC,cAAc9z3B,QACtBlgJ,EAAMp1B,OAAOs1K,MAAQp9K,OAAOD,OAAO,CAAC,EAAGm9B,EAAMp1B,OAAOs1K,MAAOy13B,GAAY7yiC,OAAOD,OAAO,CAAC,EAAGyziC,EAAc,CACrG7n+B,QAASzuC,EAAMg0gC,cAAc9z3B,MAC7B97K,SAAU,WACV2xiC,UAAU,EACVC,aAAcA,OAIlBh2gC,EAAMm2E,WAAW287B,OAAShwiC,OAAOD,OAAO,CAAC,EAAGm9B,EAAMm2E,WAAW287B,OAAQ,CACnE,wBAAyB9ygC,EAAM2noB,WAEnC,EAQEprnB,KAAM,CAAC,GgB3FT,CACEzxC,KAAM,cACNi2I,SAAS,EACTqyW,MAAO,QACPnof,GA5EF,SAAqB0K,GACnB,IAAIqqB,EAAQrqB,EAAKqqB,MACjBl9B,OAAOgkB,KAAKkZ,EAAM4lb,UAAUzkd,SAAQ,SAAU2J,GAC5C,IAAIohB,EAAQ8T,EAAMp1B,OAAOE,IAAS,CAAC,EAC/BqrG,EAAan2E,EAAMm2E,WAAWrrG,IAAS,CAAC,EACxCtE,EAAUw5B,EAAM4lb,SAAS96c,GAExBuliC,GAAc7piC,IAAa2qiC,GAAY3qiC,KAO5C1D,OAAOD,OAAO2D,EAAQ0lB,MAAOA,GAC7BppB,OAAOgkB,KAAKqvF,GAAYh1G,SAAQ,SAAU2J,GACxC,IAAI9H,EAAQmzG,EAAWrrG,IAET,IAAV9H,EACFwD,EAAQ80C,gBAAgBxwC,GAExBtE,EAAQhF,aAAasJ,GAAgB,IAAV9H,EAAiB,GAAKA,EAErD,IACF,GACF,EAoDE0xiC,OAlDF,SAAgBtgiC,GACd,IAAI4rB,EAAQ5rB,EAAM4rB,MACd+5gC,EAAgB,CAClBjH,OAAQ,CACN1uiC,SAAU47B,EAAMtgC,QAAQ6ziC,SACxBn5gC,KAAM,IACNH,IAAK,IACL3F,OAAQ,KAEV4rJ,MAAO,CACL97K,SAAU,YAEZoD,UAAW,CAAC,GASd,OAPA1E,OAAOD,OAAOm9B,EAAM4lb,SAASktlB,OAAO5mhC,MAAO6thC,EAAcjH,QACzD9ygC,EAAMp1B,OAASmviC,EAEX/5gC,EAAM4lb,SAAS1lS,OACjBp9K,OAAOD,OAAOm9B,EAAM4lb,SAAS1lS,MAAMh0J,MAAO6thC,EAAc753B,OAGnD,WACLp9K,OAAOgkB,KAAKkZ,EAAM4lb,UAAUzkd,SAAQ,SAAU2J,GAC5C,IAAItE,EAAUw5B,EAAM4lb,SAAS96c,GACzBqrG,EAAan2E,EAAMm2E,WAAWrrG,IAAS,CAAC,EAGxCohB,EAFkBppB,OAAOgkB,KAAKkZ,EAAMp1B,OAAO0Q,eAAexQ,GAAQk1B,EAAMp1B,OAAOE,GAAQiviC,EAAcjviC,IAE7EiW,QAAO,SAAUmL,EAAO/kB,GAElD,OADA+kB,EAAM/kB,GAAY,GACX+kB,CACT,GAAG,CAAC,GAECmkhC,GAAc7piC,IAAa2qiC,GAAY3qiC,KAI5C1D,OAAOD,OAAO2D,EAAQ0lB,MAAOA,GAC7BppB,OAAOgkB,KAAKqvF,GAAYh1G,SAAQ,SAAUi1G,GACxC5vG,EAAQ80C,gBAAgB86D,EAC1B,IACF,GACF,CACF,EASE+pkB,SAAU,CAAC,kBCnCb,CACEr1qB,KAAM,SACNi2I,SAAS,EACTqyW,MAAO,OACP+sL,SAAU,CAAC,iBACXl1qB,GA5BF,SAAgBmJ,GACd,IAAI4rB,EAAQ5rB,EAAM4rB,MACdtgC,EAAU0U,EAAM1U,QAChBoL,EAAOsJ,EAAMtJ,KACbkviC,EAAkBt6iC,EAAQuH,OAC1BA,OAA6B,IAApB+yiC,EAA6B,CAAC,EAAG,GAAKA,EAC/Cz9/B,EAAOs7tB,GAAW92vB,QAAO,SAAUC,EAAK2mpB,GAE1C,OADA3mpB,EAAI2mpB,GA5BD,SAAiCA,EAAW1hf,EAAOh/K,GACxD,IAAIouiC,EAAgBJ,GAAiBttY,GACjCsyY,EAAiB,CAAC7/gC,GAAMH,IAAK32B,QAAQ+xiC,IAAkB,GAAK,EAAI,EAEhE1/hC,EAAyB,oBAAX1O,EAAwBA,EAAOnE,OAAOD,OAAO,CAAC,EAAGojL,EAAO,CACxE0hf,UAAWA,KACP1gqB,EACFiziC,EAAWvkiC,EAAK,GAChBkuD,EAAWluD,EAAK,GAIpB,OAFAukiC,EAAWA,GAAY,EACvBr2+B,GAAYA,GAAY,GAAKo2+B,EACtB,CAAC7/gC,GAAMF,IAAO52B,QAAQ+xiC,IAAkB,EAAI,CACjDrtiC,EAAG67D,EACH57D,EAAGiyiC,GACD,CACFlyiC,EAAGkyiC,EACHjyiC,EAAG47D,EAEP,CASqBs2+B,CAAwBxyY,EAAW3noB,EAAMimJ,MAAOh/K,GAC1D+Z,CACT,GAAG,CAAC,GACAo5hC,EAAwB79/B,EAAKvc,EAAM2noB,WACnC3/pB,EAAIoyiC,EAAsBpyiC,EAC1BC,EAAImyiC,EAAsBnyiC,EAEW,MAArC+3B,EAAMg0gC,cAAciF,gBACtBj5gC,EAAMg0gC,cAAciF,cAAcjxiC,GAAKA,EACvCg4B,EAAMg0gC,cAAciF,cAAchxiC,GAAKA,GAGzC+3B,EAAMg0gC,cAAclpiC,GAAQyxC,CAC9B,GC6FA,CACEzxC,KAAM,OACNi2I,SAAS,EACTqyW,MAAO,OACPnof,GA5HF,SAAc0K,GACZ,IAAIqqB,EAAQrqB,EAAKqqB,MACbtgC,EAAUiW,EAAKjW,QACfoL,EAAO6K,EAAK7K,KAEhB,IAAIk1B,EAAMg0gC,cAAclpiC,GAAMuviC,MAA9B,CAoCA,IAhCA,IAAIC,EAAoB56iC,EAAQ+1iC,SAC5B8E,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmB96iC,EAAQ+6iC,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8Bj7iC,EAAQk7iC,mBACtCrmhC,EAAU70B,EAAQ60B,QAClBigb,EAAW90c,EAAQ80c,SACnBgjmB,EAAe93iC,EAAQ83iC,aACvBoB,EAAcl5iC,EAAQk5iC,YACtBiC,EAAwBn7iC,EAAQo7iC,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwBr7iC,EAAQq7iC,sBAChCC,EAAqBh7gC,EAAMtgC,QAAQioqB,UACnC0tY,EAAgBJ,GAAiB+F,GAEjCJ,EAAqBD,IADHtF,IAAkB2F,IACqCF,EAAiB,CAACrE,GAAqBuE,IAjCtH,SAAuCrzY,GACrC,GAAIstY,GAAiBttY,KAAet0f,GAClC,MAAO,GAGT,IAAI4n4B,EAAoBxE,GAAqB9uY,GAC7C,MAAO,CAACgvY,GAA8BhvY,GAAYszY,EAAmBtE,GAA8BsE,GACrG,CA0B6IC,CAA8BF,IACrKnjS,EAAa,CAACmjS,GAAoBxwiC,OAAOowiC,GAAoB75hC,QAAO,SAAUC,EAAK2mpB,GACrF,OAAO3mpB,EAAIxW,OAAOyqiC,GAAiBttY,KAAet0f,GCvCvC,SAA8BrzI,EAAOtgC,QAClC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAI+0vB,EAAW/0vB,EACXioqB,EAAY8sF,EAAS9sF,UACrBnzN,EAAWigT,EAASjgT,SACpBgjmB,EAAe/iT,EAAS+iT,aACxBjjhC,EAAUkguB,EAASlguB,QACnBumhC,EAAiBrmT,EAASqmT,eAC1BK,EAAwB1mT,EAASsmT,sBACjCA,OAAkD,IAA1BI,EAAmCC,GAAgBD,EAC3E7F,EAAYJ,GAAavtY,GACzBkwG,EAAay9R,EAAYwF,EAAiB/H,GAAsBA,GAAoB9mhC,QAAO,SAAU07oB,GACvG,OAAOutY,GAAavtY,KAAe2tY,CACrC,IAAKzC,GACDwI,EAAoBxjS,EAAW5rvB,QAAO,SAAU07oB,GAClD,OAAOozY,EAAsBz3iC,QAAQqkqB,IAAc,CACrD,IAEiC,IAA7B0zY,EAAkBp7iC,SACpBo7iC,EAAoBxjS,GAItB,IAAIyjS,EAAYD,EAAkBt6hC,QAAO,SAAUC,EAAK2mpB,GAOtD,OANA3mpB,EAAI2mpB,GAAaywY,GAAep4gC,EAAO,CACrC2noB,UAAWA,EACXnzN,SAAUA,EACVgjmB,aAAcA,EACdjjhC,QAASA,IACR0ghC,GAAiBttY,IACb3mpB,CACT,GAAG,CAAC,GACJ,OAAOle,OAAOgkB,KAAKw0hC,GAAWpqhC,MAAK,SAAUjG,EAAG4H,GAC9C,OAAOyohC,EAAUrwhC,GAAKqwhC,EAAUzohC,EAClC,GACF,CDC6D0ohC,CAAqBv7gC,EAAO,CACnF2noB,UAAWA,EACXnzN,SAAUA,EACVgjmB,aAAcA,EACdjjhC,QAASA,EACTumhC,eAAgBA,EAChBC,sBAAuBA,IACpBpzY,EACP,GAAG,IACC6zY,EAAgBx7gC,EAAMimJ,MAAMz+K,UAC5BquiC,EAAa71gC,EAAMimJ,MAAM6s3B,OACzB2I,EAAY,IAAI51qB,IAChB61qB,GAAqB,EACrBC,EAAwB9jS,EAAW,GAE9Bh2wB,EAAI,EAAGA,EAAIg2wB,EAAW53wB,OAAQ4B,IAAK,CAC1C,IAAI8lqB,EAAYkwG,EAAWh2wB,GAEvB+5iC,EAAiB3G,GAAiBttY,GAElCk0Y,EAAmB3G,GAAavtY,KAAejhpB,GAC/CixJ,EAAa,CAAC19I,GAAKE,IAAQ72B,QAAQs4iC,IAAmB,EACtDjpiC,EAAMglK,EAAa,QAAU,SAC7B9+I,EAAWu/gC,GAAep4gC,EAAO,CACnC2noB,UAAWA,EACXnzN,SAAUA,EACVgjmB,aAAcA,EACdoB,YAAaA,EACbrkhC,QAASA,IAEPunhC,EAAoBnk4B,EAAakk4B,EAAmB3hhC,GAAQE,GAAOyhhC,EAAmB1hhC,GAASF,GAE/FuhhC,EAAc7oiC,GAAOkjiC,EAAWljiC,KAClCmpiC,EAAoBrF,GAAqBqF,IAG3C,IAAIC,EAAmBtF,GAAqBqF,GACxCE,EAAS,GAUb,GARIzB,GACFyB,EAAOx7iC,KAAKq4B,EAAS+ihC,IAAmB,GAGtClB,GACFsB,EAAOx7iC,KAAKq4B,EAASijhC,IAAsB,EAAGjjhC,EAASkjhC,IAAqB,GAG1EC,EAAOnghC,OAAM,SAAUslH,GACzB,OAAOA,CACT,IAAI,CACFw65B,EAAwBh0Y,EACxB+zY,GAAqB,EACrB,KACF,CAEAD,EAAU7yiC,IAAI++pB,EAAWq0Y,EAC3B,CAEA,GAAIN,EAqBF,IAnBA,IAEIO,EAAQ,SAAenqiC,GACzB,IAAIoqiC,EAAmBrkS,EAAWl0sB,MAAK,SAAUgkmB,GAC/C,IAAIq0Y,EAASP,EAAU9yiC,IAAIg/pB,GAE3B,GAAIq0Y,EACF,OAAOA,EAAOn4iC,MAAM,EAAGiO,GAAI+pB,OAAM,SAAUslH,GACzC,OAAOA,CACT,GAEJ,IAEA,GAAI+65B,EAEF,OADAP,EAAwBO,EACjB,OAEX,EAESpqiC,EAnBYgpiC,EAAiB,EAAI,EAmBZhpiC,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFFmqiC,EAAMnqiC,GAEK,KACxB,CAGEkuB,EAAM2noB,YAAcg0Y,IACtB37gC,EAAMg0gC,cAAclpiC,GAAMuviC,OAAQ,EAClCr6gC,EAAM2noB,UAAYg0Y,EAClB37gC,EAAM7D,OAAQ,EA5GhB,CA8GF,EAQEg3gC,iBAAkB,CAAC,UACnB52/B,KAAM,CACJ89/B,OAAO,IETX,CACEvviC,KAAM,kBACNi2I,SAAS,EACTqyW,MAAO,OACPnof,GA/HF,SAAyB0K,GACvB,IAAIqqB,EAAQrqB,EAAKqqB,MACbtgC,EAAUiW,EAAKjW,QACfoL,EAAO6K,EAAK7K,KACZwviC,EAAoB56iC,EAAQ+1iC,SAC5B8E,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmB96iC,EAAQ+6iC,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDhmmB,EAAW90c,EAAQ80c,SACnBgjmB,EAAe93iC,EAAQ83iC,aACvBoB,EAAcl5iC,EAAQk5iC,YACtBrkhC,EAAU70B,EAAQ60B,QAClB4nhC,EAAkBz8iC,EAAQ08iC,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwB38iC,EAAQ48iC,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtDxjhC,EAAWu/gC,GAAep4gC,EAAO,CACnCw0a,SAAUA,EACVgjmB,aAAcA,EACdjjhC,QAASA,EACTqkhC,YAAaA,IAEXvD,EAAgBJ,GAAiBj1gC,EAAM2noB,WACvC2tY,EAAYJ,GAAal1gC,EAAM2noB,WAC/B40Y,GAAmBjH,EACnBG,EAAWN,GAAyBE,GACpCoF,ECrCY,MDqCShF,ECrCH,IAAM,IDsCxBwD,EAAgBj5gC,EAAMg0gC,cAAciF,cACpCuC,EAAgBx7gC,EAAMimJ,MAAMz+K,UAC5BquiC,EAAa71gC,EAAMimJ,MAAM6s3B,OACzB0J,EAA4C,oBAAjBF,EAA8BA,EAAax5iC,OAAOD,OAAO,CAAC,EAAGm9B,EAAMimJ,MAAO,CACvG0hf,UAAW3noB,EAAM2noB,aACb20Y,EACFG,EAA2D,kBAAtBD,EAAiC,CACxE/G,SAAU+G,EACV/B,QAAS+B,GACP15iC,OAAOD,OAAO,CAChB4yiC,SAAU,EACVgF,QAAS,GACR+B,GACCE,EAAsB18gC,EAAMg0gC,cAAc/siC,OAAS+4B,EAAMg0gC,cAAc/siC,OAAO+4B,EAAM2noB,WAAa,KACjGprnB,EAAO,CACTv0C,EAAG,EACHC,EAAG,GAGL,GAAKgxiC,EAAL,CAIA,GAAIsB,EAAe,CACjB,IAAIoC,EAEAC,EAAwB,MAAbnH,EAAmBx7gC,GAAMG,GACpCyihC,EAAuB,MAAbpH,EAAmBt7gC,GAASD,GACtCvnB,EAAmB,MAAb8iiC,EAAmB,SAAW,QACpCxuiC,EAASgyiC,EAAcxD,GACvBlshC,EAAMtiB,EAAS4xB,EAAS+jhC,GACxBtzhC,EAAMriB,EAAS4xB,EAASgkhC,GACxBC,EAAWV,GAAUvG,EAAWljiC,GAAO,EAAI,EAC3C6uF,EAAS8z8B,IAAc5uhC,GAAQ80hC,EAAc7oiC,GAAOkjiC,EAAWljiC,GAC/D81Q,EAAS6sxB,IAAc5uhC,IAASmvhC,EAAWljiC,IAAQ6oiC,EAAc7oiC,GAGjEoqiC,EAAe/8gC,EAAM4lb,SAAS1lS,MAC9B883B,EAAYZ,GAAUW,EAAehL,GAAcgL,GAAgB,CACrErmiC,MAAO,EACPC,OAAQ,GAENsmiC,EAAqBj9gC,EAAMg0gC,cAAc,oBAAsBh0gC,EAAMg0gC,cAAc,oBAAoBz/gC,QXhFtG,CACL0F,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,KAAM,GW6EF8ihC,EAAkBD,EAAmBL,GACrCO,EAAkBF,EAAmBJ,GAMrC96L,EAAWrhM,GAAO,EAAG86X,EAAc7oiC,GAAMqqiC,EAAUrqiC,IACnDyqiC,EAAYb,EAAkBf,EAAc7oiC,GAAO,EAAImqiC,EAAW/6L,EAAWm7L,EAAkBT,EAA4BhH,SAAWj08B,EAASugxB,EAAWm7L,EAAkBT,EAA4BhH,SACxM4H,EAAYd,GAAmBf,EAAc7oiC,GAAO,EAAImqiC,EAAW/6L,EAAWo7L,EAAkBV,EAA4BhH,SAAWhtxB,EAASs5lB,EAAWo7L,EAAkBV,EAA4BhH,SACzM6H,EAAoBt9gC,EAAM4lb,SAAS1lS,OAASwy3B,GAAgB1ygC,EAAM4lb,SAAS1lS,OAC3Eq93B,EAAeD,EAAiC,MAAb7H,EAAmB6H,EAAkBj8/B,WAAa,EAAIi8/B,EAAkBl8/B,YAAc,EAAI,EAC7Ho8/B,EAAwH,OAAjGb,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBjH,IAAqBkH,EAAwB,EAEvJc,EAAYx2iC,EAASo2iC,EAAYG,EACjCE,EAAkBh9X,GAAO07X,EAASn68B,GAAQ14E,EAF9BtiB,EAASm2iC,EAAYI,EAAsBD,GAEKh0hC,EAAKtiB,EAAQm1iC,EAASl68B,GAAQ54E,EAAKm0hC,GAAan0hC,GAChH2vhC,EAAcxD,GAAYiI,EAC1BnhgC,EAAKk5/B,GAAYiI,EAAkBz2iC,CACrC,CAEA,GAAIyziC,EAAc,CAChB,IAAIiD,EAEAC,EAAyB,MAAbnI,EAAmBx7gC,GAAMG,GAErCyjhC,GAAwB,MAAbpI,EAAmBt7gC,GAASD,GAEvC0/J,GAAUq/2B,EAAcwB,GAExB9tiC,GAAmB,MAAZ8tiC,EAAkB,SAAW,QAEpCvh3B,GAAOU,GAAU/gK,EAAS+khC,GAE1B3k3B,GAAOW,GAAU/gK,EAASglhC,IAE1BC,IAAuD,IAAxC,CAAC7jhC,GAAKG,IAAM92B,QAAQ+xiC,GAEnC0I,GAAyH,OAAjGJ,EAAgD,MAAvBjB,OAA8B,EAASA,EAAoBjC,IAAoBkD,EAAyB,EAEzJK,GAAaF,GAAe5k3B,GAAOU,GAAU4h3B,EAAc7uiC,IAAQkpiC,EAAWlpiC,IAAQoxiC,GAAuBtB,EAA4BhC,QAEzIwD,GAAaH,GAAelk3B,GAAU4h3B,EAAc7uiC,IAAQkpiC,EAAWlpiC,IAAQoxiC,GAAuBtB,EAA4BhC,QAAUxh3B,GAE5Iil3B,GAAmB9B,GAAU0B,GRzH9B,SAAwBv0hC,EAAKvmB,EAAOsmB,GACzC,IAAI4Y,EAAIw+oB,GAAOn3pB,EAAKvmB,EAAOsmB,GAC3B,OAAO4Y,EAAI5Y,EAAMA,EAAM4Y,CACzB,CQsHoDi8gC,CAAeH,GAAYpk3B,GAASqk3B,IAAcv9X,GAAO07X,EAAS4B,GAAa9k3B,GAAMU,GAASwi3B,EAAS6B,GAAahl3B,IAEpKgg3B,EAAcwB,GAAWyD,GACzB3hgC,EAAKk+/B,GAAWyD,GAAmBtk3B,EACrC,CAEA55J,EAAMg0gC,cAAclpiC,GAAQyxC,CAvE5B,CAwEF,EAQE42/B,iBAAkB,CAAC,WE3DrB,CACEroiC,KAAM,QACNi2I,SAAS,EACTqyW,MAAO,OACPnof,GApEF,SAAe0K,GACb,IAAIyoiC,EAEAp+gC,EAAQrqB,EAAKqqB,MACbl1B,EAAO6K,EAAK7K,KACZpL,EAAUiW,EAAKjW,QACfq9iC,EAAe/8gC,EAAM4lb,SAAS1lS,MAC9B+43B,EAAgBj5gC,EAAMg0gC,cAAciF,cACpC5D,EAAgBJ,GAAiBj1gC,EAAM2noB,WACvCxmlB,EAAOg09B,GAAyBE,GAEhC1iiC,EADa,CAACynB,GAAMF,IAAO52B,QAAQ+xiC,IAAkB,EAClC,SAAW,QAElC,GAAK0H,GAAiB9D,EAAtB,CAIA,IAAIhB,EAxBgB,SAAyB1jhC,EAASyL,GAItD,OAAOg4gC,GAAsC,kBAH7CzjhC,EAA6B,oBAAZA,EAAyBA,EAAQzxB,OAAOD,OAAO,CAAC,EAAGm9B,EAAMimJ,MAAO,CAC/E0hf,UAAW3noB,EAAM2noB,aACbpzoB,GACkDA,EAAU2jhC,GAAgB3jhC,EAASs+gC,IAC7F,CAmBsBwL,CAAgB3+iC,EAAQ60B,QAASyL,GACjDg9gC,EAAYjL,GAAcgL,GAC1BuB,EAAmB,MAATn99B,EAAelnD,GAAMG,GAC/Bwy7B,EAAmB,MAATzr4B,EAAehnD,GAASD,GAClCqkhC,EAAUv+gC,EAAMimJ,MAAMz+K,UAAUmL,GAAOqtB,EAAMimJ,MAAMz+K,UAAU25E,GAAQ839B,EAAc939B,GAAQnhD,EAAMimJ,MAAM6s3B,OAAOngiC,GAC9G6riC,EAAYvF,EAAc939B,GAAQnhD,EAAMimJ,MAAMz+K,UAAU25E,GACxDm89B,EAAoB5K,GAAgBqK,GACpC0B,EAAanB,EAA6B,MAATn89B,EAAem89B,EAAkBz3xB,cAAgB,EAAIy3xB,EAAkBx3xB,aAAe,EAAI,EAC3H44xB,EAAoBH,EAAU,EAAIC,EAAY,EAG9Cj1hC,EAAM0uhC,EAAcqG,GACpBh1hC,EAAMm1hC,EAAazB,EAAUrqiC,GAAOsliC,EAAcrrF,GAClD9n6B,EAAS25/B,EAAa,EAAIzB,EAAUrqiC,GAAO,EAAI+riC,EAC/Cz3iC,EAASy5qB,GAAOn3pB,EAAKu7B,EAAQx7B,GAE7Bq1hC,EAAWx99B,EACfnhD,EAAMg0gC,cAAclpiC,KAASsziC,EAAwB,CAAC,GAAyBO,GAAY13iC,EAAQm3iC,EAAsBn6Q,aAAeh9xB,EAAS69C,EAAQs5/B,EAnBzJ,CAoBF,EAkCE1J,OAhCF,SAAgBtgiC,GACd,IAAI4rB,EAAQ5rB,EAAM4rB,MAEd4+gC,EADUxqiC,EAAM1U,QACW8G,QAC3Bu2iC,OAAoC,IAArB6B,EAA8B,sBAAwBA,EAErD,MAAhB7B,IAKwB,kBAAjBA,IACTA,EAAe/8gC,EAAM4lb,SAASktlB,OAAOzmiC,cAAc0wiC,MAOhD7//B,GAASld,EAAM4lb,SAASktlB,OAAQiK,KAIrC/8gC,EAAM4lb,SAAS1lS,MAAQ683B,EACzB,EASE58X,SAAU,CAAC,iBACXgzX,iBAAkB,CAAC,oBTlCrB,CACEroiC,KAAM,OACNi2I,SAAS,EACTqyW,MAAO,OACP+/iB,iBAAkB,CAAC,mBACnBloiC,GAlCF,SAAc0K,GACZ,IAAIqqB,EAAQrqB,EAAKqqB,MACbl1B,EAAO6K,EAAK7K,KACZ0wiC,EAAgBx7gC,EAAMimJ,MAAMz+K,UAC5BquiC,EAAa71gC,EAAMimJ,MAAM6s3B,OACzByG,EAAmBv5gC,EAAMg0gC,cAAc6K,gBACvCC,EAAoB1G,GAAep4gC,EAAO,CAC5C04gC,eAAgB,cAEdqG,EAAoB3G,GAAep4gC,EAAO,CAC5C44gC,aAAa,IAEXoG,EAA2B1F,GAAewF,EAAmBtD,GAC7DyD,EAAsB3F,GAAeyF,EAAmBlJ,EAAY0D,GACpE2F,EAAoB1F,GAAsBwF,GAC1CG,EAAmB3F,GAAsByF,GAC7Cj/gC,EAAMg0gC,cAAclpiC,GAAQ,CAC1Bk0iC,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpBn/gC,EAAMm2E,WAAW287B,OAAShwiC,OAAOD,OAAO,CAAC,EAAGm9B,EAAMm2E,WAAW287B,OAAQ,CACnE,+BAAgCoM,EAChC,sBAAuBC,GAE3B,MUjDO,SAASC,GAAsBpqiC,GACpC,OAAOC,EAAAA,GAAAA,IAAqB,YAAaD,EAC3C,EACsBE,EAAAA,GAAsBA,GAAC,YAAa,CAAC,SAA3D,MCDMC,GAAY,CAAC,WAAY,WAAY,YAAa,gBAAiB,YAAa,OAAQ,YAAa,gBAAiB,YAAa,YAAa,QAAS,kBAAmB,cAChLwZ,GAAa,CAAC,WAAY,WAAY,YAAa,YAAa,gBAAiB,cAAe,YAAa,OAAQ,YAAa,gBAAiB,YAAa,QAAS,aAAc,YAAa,SA2BtM,SAAS0kgC,GAAgBC,GACvB,MAA2B,oBAAbA,EAA0BA,IAAaA,CACvD,CACA,SAAS+c,GAAc7piC,GACrB,YAA4B9F,IAArB8F,EAAQ6rC,QACjB,CAIA,MASMgtgC,GAAuB,CAAC,EACxBC,GAA6Bj0iC,EAAAA,YAAiB,SAAuB1G,EAAOyr+B,GAChF,IAAIxiB,EACJ,MAAM,SACF0lE,EAAQ,SACR1uhC,EAAQ,UACRqW,EAAS,cACTo19B,EAAa,UACb4iE,EAAS,KACT70gC,EACAupoB,UAAW43Y,EAAgB,cAC3BC,EACAC,UAAWC,EAAa,UACxBhghC,EAAY,CAAC,EAAC,MACd9mB,EAAQ,CAAC,EAAC,gBACVs7gC,GAGEvvhC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCwqiC,EAAat0iC,EAAAA,OAAa,MAC1Bu0iC,GAASt/gC,EAAAA,GAAAA,GAAWq/gC,EAAYvvE,GAChCqvE,EAAYp0iC,EAAAA,OAAa,MACzBw0iC,GAAkBv/gC,EAAAA,GAAAA,GAAWm/gC,EAAWC,GACxCI,EAAqBz0iC,EAAAA,OAAaw0iC,IACxCx/gC,EAAAA,GAAiBA,IAAC,KAChBy/gC,EAAmBxziC,QAAUuziC,CAAe,GAC3C,CAACA,IACJx0iC,EAAAA,oBAA0Bq0iC,GAAe,IAAMD,EAAUnziC,SAAS,IAClE,MAAMyziC,EAhER,SAAuBp4Y,EAAW1spB,GAChC,GAAkB,QAAdA,EACF,OAAO0spB,EAET,OAAQA,GACN,IAAK,aACH,MAAO,eACT,IAAK,eACH,MAAO,aACT,IAAK,UACH,MAAO,YACT,IAAK,YACH,MAAO,UACT,QACE,OAAOA,EAEb,CAgDuBq4Y,CAAcT,EAAkBtkiC,IAK9C0spB,EAAWs4Y,GAAgB50iC,EAAAA,SAAe00iC,IAC1CG,EAAuBC,GAA4B90iC,EAAAA,SAAegohC,GAAgBC,IACzFjohC,EAAAA,WAAgB,KACVo0iC,EAAUnziC,SACZmziC,EAAUnziC,QAAQ6t6B,aACpB,IAEF9u6B,EAAAA,WAAgB,KACViohC,GACF6sB,EAAyB9sB,GAAgBC,GAC3C,GACC,CAACA,KACJjz/B,EAAAA,GAAiBA,IAAC,KAChB,IAAK6/gC,IAA0B9hhC,EAC7B,OAaF,IAAIgihC,EAAkB,CAAC,CACrBt1iC,KAAM,kBACNpL,QAAS,CACPk5iC,YAAavoE,IAEd,CACDvl+B,KAAM,OACNpL,QAAS,CACPk5iC,YAAavoE,IAEd,CACDvl+B,KAAM,WACNi2I,SAAS,EACTqyW,MAAO,aACPnof,GAAI0K,IAEE,IAFD,MACHqqB,GACDrqB,EA1BDsqiC,EA2BqBjghC,EA3BH2noB,UA2BS,IAGZ,MAAbsrY,IACFmN,EAAkBA,EAAgB51iC,OAAOyoiC,IAEvCuM,GAA4C,MAA3BA,EAAcvM,YACjCmN,EAAkBA,EAAgB51iC,OAAOg1iC,EAAcvM,YAEzD,MAAMH,EAAS2G,GAAayG,EAAuBP,EAAWrziC,SAASkM,EAAAA,GAAAA,GAAS,CAC9EmvpB,UAAWo4Y,GACVP,EAAe,CAChBvM,UAAWmN,KAGb,OADAN,EAAmBxziC,QAAQwmiC,GACpB,KACLA,EAAO1i5B,UACP0v5B,EAAmBxziC,QAAQ,KAAK,CACjC,GACA,CAAC4ziC,EAAuB7vE,EAAe4iE,EAAW70gC,EAAMohhC,EAAeO,IAC1E,MAAMntE,EAAa,CACjBjrU,UAAWA,GAEW,OAApBusX,IACFthD,EAAWshD,gBAAkBA,GAE/B,MAAMv7gC,EAjHkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoB46iC,GAAuBzmiC,EAAQ,EA0G5CG,CAAkBnU,GAC5B8p9B,EAAqC,OAA7Bb,EAAch18B,EAAMpU,MAAgBop9B,EAAc,MAC1DkB,EAAYC,GAAa,CAC7Bn4D,YAAa63D,EACbnD,kBAAmB5r7B,EAAUl7B,KAC7B+m9B,uBAAwBjz8B,EACxB+y8B,gBAAiB,CACfly8B,KAAM,UACNvN,IAAKg0iC,GAEPrqiC,WAAY5Q,EACZwO,UAAWwF,EAAQnU,OAErB,OAAoB4U,EAAAA,GAAAA,KAAKq18B,GAAMj28B,EAAAA,GAAAA,GAAS,CAAC,EAAGs28B,EAAW,CACrDlq9B,SAA8B,oBAAbA,EAA0BA,EAASgu+B,GAAchu+B,IAEtE,IAyMA,GApM4ByG,EAAAA,YAAiB,SAAgB1G,EAAOyr+B,GAClE,MAAM,SACFkjD,EAAQ,SACR1uhC,EACAvE,UAAWu2J,EAAa,UACxB37I,EAAY,MAAK,cACjBo19B,GAAgB,EAAK,YACrBuI,GAAc,EAAK,UACnBq6D,EAAS,KACT70gC,EAAI,UACJupoB,EAAY,SAAQ,cACpB63Y,EAAgBH,GAAoB,UACpCI,EAAS,MACTvzhC,EAAK,WACLnV,GAAa,EAAK,UAClB2oB,EAAY,CAAC,EAAC,MACd9mB,EAAQ,CAAC,GACPjU,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOgqB,KACxCm4tB,EAAQiwP,GAAa1r+B,EAAAA,UAAe,GAO3C,IAAKut+B,IAAgBx68B,KAAUrnB,GAAc+vuB,GAC3C,OAAO,KAMT,IAAIzmvB,EACJ,GAAIu2J,EACFv2J,EAAYu2J,OACP,GAAI083B,EAAU,CACnB,MAAMiB,EAAmBlB,GAAgBC,GACzCjzhC,EAAYk0hC,GAAoB8b,GAAc9b,IAAoBlugC,EAAAA,GAAaA,GAACkugC,GAAkBjv8B,MAAOj/D,EAAAA,GAAaA,GAAC,MAAMi/D,IAC/H,CACA,MAAM1uE,EAAWwnB,IAAQw68B,GAAiB7h+B,IAAc+vuB,OAAmBpmvB,EAAT,OAC5Dkz+B,EAAkB789B,EAAa,CACnCmpzB,GAAI9hyB,EACJ+z8B,QAvBkBvnD,KAClBmsD,GAAU,EAAM,EAuBhBx1B,SArBmBe,KACnBy0B,GAAU,EAAK,QAqBbr2+B,EACJ,OAAoB0Y,EAAAA,GAAAA,KAAKmyB,GAAQ,CAC/B8k8B,cAAeA,EACfhw+B,UAAWA,EACXuE,UAAuBwU,EAAAA,GAAAA,KAAKkmiC,IAAe9miC,EAAAA,GAAAA,GAAS,CAClD86gC,SAAUA,EACVr4gC,UAAWA,EACXo19B,cAAeA,EACf4iE,UAAWA,EACXrniC,IAAKwk+B,EACLhy8B,KAAMrnB,GAAc+vuB,EAAS1otB,EAC7BupoB,UAAWA,EACX63Y,cAAeA,EACfC,UAAWA,EACX//gC,UAAWA,EACX9mB,MAAOA,GACNN,EAAO,CACR4T,OAAO1T,EAAAA,GAAAA,GAAS,CAEdpU,SAAU,QAEV61B,IAAK,EACLG,KAAM,EACNxjB,WACCsV,GACHgogC,gBAAiBtgD,EACjBhv+B,SAAUA,MAGhB,ICrPMuQ,GAAY,CAAC,WAAY,YAAa,aAAc,kBAAmB,YAAa,gBAAiB,cAAe,YAAa,OAAQ,YAAa,gBAAiB,YAAa,aAAc,QAAS,aAU3MkriC,IAAahriC,EAAAA,GAAMA,IAACiriC,GAAY,CACpCx1iC,KAAM,YACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAH5B6Q,CAIhB,CAAC,GA8LJ,GAhL4BhK,EAAAA,YAAiB,SAAgB2M,EAASpM,GACpE,IAAIgi9B,EACJ,MAAMt58B,GAAQqq8B,EAAAA,GAAAA,KACRh68B,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,eAEF,SACFwohC,EAAQ,UACRr7gC,EAAS,WACT1D,EAAU,gBACV058B,EAAe,UACf5t9B,EAAS,cACTgw+B,EAAa,YACbuI,EAAW,UACXq6D,EAAS,KACT70gC,EAAI,UACJupoB,EAAS,cACT63Y,EAAa,UACbC,EAAS,WACT1oiC,EAAU,MACV6B,EAAK,UACL8mB,GACE/6B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCoriC,EAAuE,OAAtD3yF,EAAuB,MAATh18B,OAAgB,EAASA,EAAMpU,MAAgBop9B,EAA4B,MAAdr58B,OAAqB,EAASA,EAAWk68B,KACrI7z7B,GAAapiB,EAAAA,GAAAA,GAAS,CAC1B86gC,WACAjzhC,YACAgw+B,gBACAuI,cACAq6D,YACA70gC,OACAupoB,YACA63Y,gBACAC,YACA1oiC,cACCuB,GACH,OAAoBc,EAAAA,GAAAA,KAAKiniC,IAAY7niC,EAAAA,GAAAA,GAAS,CAC5CQ,GAAIf,EACJgD,UAAoB,MAAT3G,OAAgB,EAASA,EAAM2G,UAC1CrC,MAAO,CACLpU,KAAM+7iC,GAER7ghC,UAAwB,MAAbA,EAAoBA,EAAYuu7B,GAC1Crz7B,EAAY,CACbhvB,IAAKA,IAET,IC/EO,SAAS40iC,GAA6BxriC,GAC3C,OAAOC,EAAAA,GAAAA,IAAqB,mBAAoBD,EAClD,EACoCE,EAAAA,GAAsBA,GAAC,mBAAoB,CAAC,OAAQ,UCHjF,SAASuriC,GAAcx8iC,EAAOy8iC,GACnC,OAAIj3iC,MAAMiI,QAAQgviC,GACTA,EAAY7khC,OAAMjM,IAAiC,IAAzB3rB,EAAMX,QAAQssB,MAEV,IAAhC3rB,EAAMX,QAAQo9iC,EACvB,CACO,MAiBMC,GAAmB,WAC9B,MAAMC,GAD6Bh0iC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGtL,UAChBgpK,cACtB,OAAKs24B,EAGDA,EAAS5kN,WACJ2kN,GAAiBC,EAAS5kN,YAE5B4kN,EALE,IAMX,EACaC,GAAmC,yBC9B1CC,GAA4C,qBAAd7ggC,WAA6BA,UAAUC,UAAU72C,MAAM,6BACrF03iC,GAAiBD,IAAwBA,GAAqB,GAAK92hC,SAAS82hC,GAAqB,GAAI,IAAM,KAC3GE,GAAaF,IAAwBA,GAAqB,GAAK92hC,SAAS82hC,GAAqB,GAAI,IAAM,KAChGG,GAAuBF,IAAkBA,GAAiB,IAAMC,IAAcA,GAAa,KAAM,EACjGE,GAA6BA,IACjBpjB,GARM,0CAQgC,CAC3DV,gBAAgB,KAEO6jB,GCVrB9riC,GAAY,CAAC,iBAAkB,kBAAmB,aAAc,WAAY,iBAAkB,eAAgB,eAAgB,qBAwB9HgsiC,IAAoB9riC,EAAAA,GAAMA,IAAC+riC,GAAW,CAC1Ct2iC,KAAM,mBACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHjB6Q,EAIvBM,IAAA,IAAC,MACFrB,GACDqB,EAAA,MAAM,CACLlG,OAAQ6E,EAAM7E,OAAOoQ,MACtB,IACKwhiC,IAAqBhsiC,EAAAA,GAAMA,IAACisiC,GAAU,CAC1Cx2iC,KAAM,mBACNkK,KAAM,QACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOsP,OAHhB7E,EAIxBjB,IAAA,IAAC,WACFmB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACbod,QAAS,EACT837B,gBAAiB,cAChBn48B,EAAWoypB,UAAUlsS,SAAS,QAAU,CACzCiylB,gBAAiB,iBACjB,IAoHF,MAAM6zF,GAAyCl2iC,EAAAA,YAAiB,CAAC1G,EAAOiH,KACtE,MAAM,eACFwwhC,EAAc,gBACdolB,EACAjsiC,WAAYksiC,EAAY,SACxB78iC,EAAQ,eACR2xhC,EAAc,aACdmrB,EAAY,aACZC,EAAY,kBACZC,GAGEj9iC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAGipiC,EAAc,CAC5C95Y,UAAW65Y,IAEPnsB,EAAatmE,GAAa,CAC9Bn4D,YAAawlI,EACb9wE,kBAAmBirE,EACnBlrE,gBAAiB,CACfnE,UAAW,EACXj0H,UAAW,EACXrn1B,OAEFuH,UAAWuuiC,EACXnsiC,eAEF,OAAoB6D,EAAAA,GAAAA,KAAKgjhC,GAAgB5jhC,EAAAA,GAAAA,GAAS,CAAC,EAAGF,EAAO+8gC,EAAY,CACvE/luB,QAAShqS,IACP,IAAIu8hC,EACJF,EAAar8hC,GACiC,OAA7Cu8hC,EAAsBxsB,EAAW/luB,UAAoBuyvB,EAAoBn4iC,KAAK2rhC,EAAY/vgC,EAAM,EAEnG2h8B,aAAc3h8B,IACZ,IAAIw8hC,EACJF,EAAkBt8hC,GACmC,OAApDw8hC,EAAwBzsB,EAAWpuE,eAAyB66F,EAAsBp4iC,KAAK2rhC,EAAY/vgC,EAAM,EAE5G/P,WAAYA,EACZ3Q,SAAUA,IACT,IAEE,SAASm9iC,GAAc/piC,GAC5B,IAAIgqiC,EAAuBC,EAAuBC,EAAqBC,EACvE,MAAMx9iC,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,sBAEF,SACJwohC,EAAQ,SACR1uhC,EAAQ,aACRw9iC,EAAe,KAAI,mBACnBC,EAAkB,OAClB57hC,EAAM,UACN67hC,EAAS,KACTlkhC,EAAI,KACJjlB,EAAI,UACJwupB,EAAS,MACT/upB,EAAK,UACL8mB,EACA6ihC,iBAAkBC,GAChB79iC,EACJ0G,EAAAA,WAAgB,KACd,SAASga,EAAcg34B,IAEjBj+3B,GAA6B,WAApBi+3B,EAAYv75B,KAAwC,QAApBu75B,EAAYv75B,KACvDwhjC,GAEJ,CAEA,OADAhhjC,SAASglB,iBAAiB,UAAWjB,GAC9B,KACL/jB,SAASu9C,oBAAoB,UAAWx5B,EAAc,CACvD,GACA,CAACi9hC,EAAWlkhC,IACf,MAAMqkhC,EAAwBp3iC,EAAAA,OAAa,MAC3CA,EAAAA,WAAgB,KACD,YAAT8N,GAAsBkpiC,IAAuBA,MAG7CjkhC,EACFqkhC,EAAsBn2iC,QAAUq0iC,GAAiBr/iC,UACxCmhjC,EAAsBn2iC,SAAWm2iC,EAAsBn2iC,mBAAmBhB,aAGnF4xB,YAAW,KACLulhC,EAAsBn2iC,mBAAmBhB,aAC3Cm3iC,EAAsBn2iC,QAAQoO,OAChC,IAEJ,GACC,CAAC0jB,EAAMjlB,EAAMkpiC,IAChB,MAAOK,EAAcf,EAAcC,GArMrC,SAA8B/piC,EAAQ8qiC,GACpC,MAAMC,EAAWv3iC,EAAAA,QAAa,GACxBw3iC,EAAoBx3iC,EAAAA,QAAa,GACjCom+B,EAAUpm+B,EAAAA,OAAa,MACvBy3iC,EAAez3iC,EAAAA,QAAa,GAClCA,EAAAA,WAAgB,KACd,GAAKwM,EAWL,OAFAvW,SAASglB,iBAAiB,YAAay8hC,GAAsB,GAC7DzhjC,SAASglB,iBAAiB,aAAcy8hC,GAAsB,GACvD,KACLzhjC,SAASu9C,oBAAoB,YAAakkgC,GAAsB,GAChEzhjC,SAASu9C,oBAAoB,aAAckkgC,GAAsB,GACjED,EAAax2iC,SAAU,CAAK,EAR9B,SAASy2iC,IACPD,EAAax2iC,SAAU,CACzB,CAOC,GACA,CAACuL,IAQJ,MAAMmriC,GAAkB56F,EAAAA,GAAAA,IAAiB9i8B,IACvC,IAAKw9hC,EAAax2iC,QAChB,OAKF,MAAM22iC,EAAkBJ,EAAkBv2iC,QAC1Cu2iC,EAAkBv2iC,SAAU,EAC5B,MAAM8Z,GAAMC,EAAAA,GAAaA,GAACor9B,EAAQnl+B,SAKlC,IAAKml+B,EAAQnl+B,SAEb,YAAagZ,GAxDjB,SAA8BA,EAAOc,GACnC,OAAOA,EAAI8rB,gBAAgB4zO,YAAcxgQ,EAAMw7B,SAAW16B,EAAI8rB,gBAAgB2zO,aAAevgQ,EAAMy7B,OACrG,CAsD0BmigC,CAAqB59hC,EAAOc,GAChD,OAIF,GAAIw8hC,EAASt2iC,QAEX,YADAs2iC,EAASt2iC,SAAU,GAGrB,IAAI62iC,EAIFA,EADE79hC,EAAM89hC,aACI99hC,EAAM89hC,eAAe9/iC,QAAQmu+B,EAAQnl+B,UAAY,GAEhD8Z,EAAI8rB,gBAAgBgL,SAAS53B,EAAMQ,SAAW2r9B,EAAQnl+B,QAAQ4wC,SAAS53B,EAAMQ,QAEvFq9hC,GAAcF,GACjBN,EAAYr9hC,EACd,IAII+9hC,EAAkBA,KACtBR,EAAkBv2iC,SAAU,CAAI,EAiClC,OA/BAjB,EAAAA,WAAgB,KACd,GAAIwM,EAAQ,CACV,MAAMuO,GAAMC,EAAAA,GAAaA,GAACor9B,EAAQnl+B,SAC5Bo88B,EAAkBA,KACtBk6F,EAASt2iC,SAAU,CAAI,EAIzB,OAFA8Z,EAAIE,iBAAiB,aAAc08hC,GACnC58hC,EAAIE,iBAAiB,YAAaoi8B,GAC3B,KACLti8B,EAAIy4B,oBAAoB,aAAcmkgC,GACtC58hC,EAAIy4B,oBAAoB,YAAa6p6B,EAAgB,CAEzD,CACgB,GACf,CAAC7w8B,EAAQmriC,IACZ33iC,EAAAA,WAAgB,KAKd,GAAIwM,EAAQ,CACV,MAAMuO,GAAMC,EAAAA,GAAaA,GAACor9B,EAAQnl+B,SAElC,OADA8Z,EAAIE,iBAAiB,QAAS08hC,GACvB,KACL58hC,EAAIy4B,oBAAoB,QAASmkgC,GAEjCH,EAAkBv2iC,SAAU,CAAK,CAErC,CACgB,GACf,CAACuL,EAAQmriC,IACL,CAACvxE,EAAS4xE,EAAiBA,EACpC,CA6F0DC,CAAqBllhC,EAAgB,MAAV3X,EAAiBA,EAAS67hC,GACvGluB,EAAW/ohC,EAAAA,OAAa,MACxB498B,GAAY3o7B,EAAAA,GAAAA,GAAW8z/B,EAAUguB,GACjC/tB,GAAiB/z/B,EAAAA,GAAAA,GAAW2o7B,EAAWy5F,GACvCntiC,EAAa5Q,EACbgU,EAnPkBpD,KACxB,MAAM,QACJoD,GACEpD,EAKJ,OAAOsD,EAAAA,GAAcA,GAJP,CACZrU,KAAM,CAAC,QACP0V,MAAO,CAAC,UAEmBsmiC,GAA8B7niC,EAAQ,EA2OnDG,CAAkBvD,GAC5BguiC,EAA0BrC,KAC1BqB,EAAyC,MAAtBC,EAA6BA,EAAqBe,EAQrEzyE,GAA4F,OAA7EkxE,EAAiC,MAATppiC,OAAgB,EAASA,EAAM4qiC,mBAA6BxB,EAAwBO,GAAoBpuE,GAAO2+C,GACtJ35C,EAAyF,OAA5E8oE,EAAiC,MAATrpiC,OAAgB,EAASA,EAAM6qiC,kBAA4BxB,EAAwByB,GACxHhkG,EAA+E,OAAtEwiG,EAA+B,MAATtpiC,OAAgB,EAASA,EAAM+qiC,cAAwBzB,EAAsBb,GAC5GuC,EAAoE,OAA1DzB,EAAyB,MAATvpiC,OAAgB,EAASA,EAAMk6hC,QAAkBqP,EAAgBhB,GAC3F0C,EAAc90F,GAAa,CAC/Bn4D,YAAagtJ,EACbt4F,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUozgC,OAC1DznF,gBAAiB,CACft08B,YAAY,EACZoC,OACAilB,OACAk1/B,WACA3rX,YACA++S,UApBkBph8B,IACF,WAAdA,EAAMxkB,MAERwkB,EAAM+4P,kBACNikyB,IACF,GAiBAnviC,UAAWwF,EAAQnU,KACnB+Q,WAAY5Q,IAEd,OAAoByU,EAAAA,GAAAA,KAAKwqiC,GAAQpriC,EAAAA,GAAAA,GAAS,CAAC,EAAGqriC,EAAa,CACzDj/iC,SAAU8oB,IAAA,IAAC,gBACTwmgC,EACAvsX,UAAW65Y,GACZ9zhC,EAAA,OAAkBtU,EAAAA,GAAAA,KAAK+/9B,GAAW3g+B,EAAAA,GAAAA,GAAS,CAC1C4lB,KAAMA,EACNww8B,kBAAkB,EAKlBE,qBAAqB,EACrBD,oBAA8B,YAAT119B,EACrBuvxB,UAAWA,KAAM,GACH,MAAbhpwB,OAAoB,EAASA,EAAU+jhC,iBAAkB,CAC1D7+iC,UAAuBwU,EAAAA,GAAAA,KAAK039B,GAAYt49B,EAAAA,GAAAA,GAAS,CAAC,EAAG07gC,EAA8B,MAAbx0/B,OAAoB,EAASA,EAAU8jhC,kBAAmB,CAC9H5+iC,UAAuBwU,EAAAA,GAAAA,KAAKmoiC,GAA2B,CACrDnlB,eAAgB18E,EAChBnq8B,WAAYA,EACZisiC,gBAAiBA,EACjB51iC,IAAKyohC,EACLstB,aAAcA,EACdC,kBAAmBA,EACnBF,aAAc/oiC,EAAQuB,MACtBq8gC,eAA6B,MAAb72/B,OAAoB,EAASA,EAAUikhC,aACvD/+iC,SAAUA,SAGb,IAEP,gBC3TO,SAASk/iC,GAAcn/iC,EAAOgvG,EAAU817B,EAAaE,GAC1D,MAAM,MACJ3miC,EAAK,QACLqm1B,GACE1k1B,EACE4z9B,EAAUo1E,KACVoW,EAA6B14iC,EAAAA,OAAas+hC,GAC1Cqa,EAAkBrw8B,EAAS,CAC/B4k3B,UACAv19B,QACA2B,UAQF,OANA0G,EAAAA,WAAgB,KACVg+0B,IAAYogN,EAAYua,EAAiBD,EAA2Bz3iC,UACtE+80B,EAAQ26N,EAAiBhhjC,GAE3B+gjC,EAA2Bz3iC,QAAU03iC,CAAe,GACnD,CAACva,EAAapgN,EAAS06N,EAA4BC,EAAiBhhjC,IAChEghjC,CACT,CCZO,MAAMC,GAAuBv2hC,IAM9B,IALJ6xgC,SAAU2kB,EACVlhjC,MAAO2ohC,EAAS,aAChBj4/B,EAAY,SACZyh+B,EAAQ,aACRgvD,GACDz2hC,EACC,IAAI/X,EAAMvB,EACV,MAAMgh9B,EAAQy4E,KACRuW,EAAoB/4iC,EAAAA,OAAaqoB,GACjCwy5B,EAAmF,OAArEvw6B,EAAoB,MAAbg2gC,EAAoBA,EAAYy4B,EAAkB93iC,SAAmBqJ,EAAOwuiC,EAAazb,WAC9G2b,EAAgBh5iC,EAAAA,SAAc,IAAM84iC,EAAava,YAAYx0E,EAAOlvC,IAAa,CAACkvC,EAAO+uF,EAAcj+H,IACvGo+H,GAAmBl8F,EAAAA,GAAAA,IAAiBho7B,GACnB,MAAjBikhC,EACKjkhC,EAEF+jhC,EAAata,YAAYz0E,EAAOivF,EAAejkhC,KAElDmkhC,EAAoF,OAAhEnwiC,EAAwB,MAAhB8viC,EAAuBA,EAAeG,GAAyBjwiC,EAAQ,UAMzG,MAAO,CACLpR,MANgCqI,EAAAA,SAAc,IAAM84iC,EAAata,YAAYz0E,EAAOmvF,EAAkBr+H,IAAa,CAACi+H,EAAc/uF,EAAOmvF,EAAkBr+H,IAO3Js+H,mBANwBp8F,EAAAA,GAAAA,IAAiB,SAACho7B,GAC1C,MAAMqkhC,EAA4BH,EAAiBlkhC,GAAU,QAAAzzB,EAAAC,UAAA3M,OADNykjC,EAAW,IAAAj7iC,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAX43iC,EAAW53iC,EAAA,GAAAF,UAAAE,GAEtD,MAAZqo/B,GAAoBA,EAASsvD,KAA8BC,EAC7D,IAIEnlB,SAAUglB,EACX,EAMUI,GAAiC9iP,IAOxC,IAPyC,KAC7C/2zB,EACAy0hC,SAAU2kB,EACVlhjC,MAAO2ohC,EAAS,aAChBj4/B,EACAyh+B,SAAUyvD,EAAY,aACtBT,GACDtiP,EACC,MAAOgjP,EAAwB1khC,IAAYN,EAAAA,GAAAA,GAAc,CACvD/0B,OACAk1B,MAAO,QACPF,WAAY6r/B,EACZh4gC,QAAyB,MAAhB+f,EAAuBA,EAAeywhC,EAAazb,aAExDvzC,GAAW/sC,EAAAA,GAAAA,IAAiB,SAACho7B,GACjCD,EAASC,GAAU,QAAAzD,EAAA/vB,UAAA3M,OAD2BykjC,EAAW,IAAAj7iC,MAAAkzB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAX8nhC,EAAW9nhC,EAAA,GAAAhwB,UAAAgwB,GAEzC,MAAhBgohC,GAAwBA,EAAaxkhC,KAAaskhC,EACpD,IACA,OAAOT,GAAqB,CAC1B1kB,SAAU2kB,EACVlhjC,MAAO6hjC,EACPnxhC,kBAAchzB,EACdy0/B,WACAgvD,gBACA,EC6CSW,GAAiBnviC,IAMxB,IANyB,MAC7BhR,EAAK,aACLw/iC,EAAY,UACZlkB,EAAS,eACT8kB,EAAc,UACdxhiC,GACD5N,EACC,MAAM,SACJqviC,EAAQ,SACR7vD,EACAny/B,MAAOiijC,EACPvxhC,aAAcwxhC,EAAc,cAC5BC,EAAmC,YAAnBJ,EAChBK,iBAAkBC,EAAoB,yBACtCC,EACA/lB,SAAU2kB,GACRv/iC,GAEF2H,QAASonB,GACProB,EAAAA,OAAa65iC,IAEf54iC,QAAS2zB,GACP50B,EAAAA,YAAyB3K,IAAZukjC,GAiBjB,MAAM7vF,EAAQy4E,KACRt1E,EAAUo1E,MACTyX,EAAkBG,IAAuB1lhC,EAAAA,GAAAA,GAAc,CAC5DC,WAAYulhC,EACZ1xiC,QAAS,KACT7I,KAAM,iBACNk1B,MAAO,sBAEH,OACJ+9M,EAAM,UACNyn0B,GChKwB7viC,KAItB,IAJuB,KAC3ByoB,EAAI,OACJ05/B,EAAM,QACNjhD,GACDlh+B,EACC,MAAM8viC,EAAwBp6iC,EAAAA,OAA6B,mBAAT+yB,GAAoB9xB,SAC/D8rhC,EAAWstB,GAAkBr6iC,EAAAA,UAAe,GAuBnD,OAnBAA,EAAAA,WAAgB,KACd,GAAIo6iC,EAAuB,CACzB,GAAoB,mBAATrnhC,EACT,MAAM,IAAIxsB,MAAM,sEAElB8ziC,EAAetnhC,EACjB,IACC,CAACqnhC,EAAuBrnhC,IAYpB,CACL2/M,OAAQq6yB,EACRotB,UAbgBn6iC,EAAAA,aAAkBs6iC,IAC7BF,GACHC,EAAeC,GAEbA,GAAa7tB,GACfA,KAEG6tB,GAAa9uE,GAChBA,GACF,GACC,CAAC4uE,EAAuB3tB,EAAQjhD,IAIlC,EDiIG+uE,CAAajhjC,IACVkhjC,EAAWC,GAAgBz6iC,EAAAA,UAAe,KAC/C,IAAI4ziB,EAQJ,OANEA,OADcv+iB,IAAZukjC,EACaA,OACWvkjC,IAAjBgzB,EACMA,EAEAywhC,EAAazb,WAEvB,CACLqd,MAAO9mgB,EACP+mgB,mBAAoB/mgB,EACpBgngB,mBAAoBhngB,EACpBingB,oBAAqBjB,EACrBkB,2BAA2B,EAC5B,KAEG,SACJ5mB,EAAQ,kBACRilB,GACEP,GAAqB,CACvB1kB,SAAU2kB,EACVlhjC,MAAOiijC,EACPvxhC,eACAyh+B,WACAgvD,iBAEFL,IAActriC,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAChC3B,MAAO6ijC,EAAUE,MACjBxmB,aACEh8gC,EAAW4giC,EAAa1a,YAAa0a,EAAaxa,mBACtD,MAAMyc,GAAah+F,EAAAA,GAAAA,IAAiBxw8B,IAClC,MAAMyuiC,EAAgB,CACpBzuiC,SACAiuiC,YACA5/2B,WAAYutN,IAAe2wpB,EAAa7a,eAAel0E,EAAOx98B,EAAO5U,MAAOwwZ,GAC5EvzX,eACAklhC,iBAEImB,EA7LiBjyiC,KACzB,MAAM,OACJuD,EAAM,WACNquL,EAAU,UACV4/2B,EAAS,aACT5lhC,GACE5rB,EACEkyiC,GAAiCtmhC,IAAiB4lhC,EAAUM,0BAGlE,MAAoB,sBAAhBvuiC,EAAO9M,OAGS,uBAAhB8M,EAAO9M,QAGLy7iC,IAAiC,CAAC,SAAU,QAAS,SAAS9qrB,SAAS7jX,EAAO4uiC,gBAG3Evg3B,EAAW4/2B,EAAUG,qBAEV,qBAAhBpuiC,EAAO9M,MAAyD,YAA1B8M,EAAO6uiC,gBAQ7B,yBAAhB7uiC,EAAO9M,UALLy7iC,GAGGtg3B,EAAW4/2B,EAAUG,qBAUlB,EAwJYU,CAAmBL,GACnCM,EAjJgBtyiC,KACxB,MAAM,OACJuD,EAAM,WACNquL,EAAU,UACV4/2B,EAAS,aACT5lhC,EAAY,cACZklhC,GACE9wiC,EACEkyiC,GAAiCtmhC,IAAiB4lhC,EAAUM,0BAClE,MAAoB,uBAAhBvuiC,EAAO9M,QAGLy7iC,IAAiC,CAAC,SAAU,QAAS,SAAS9qrB,SAAS7jX,EAAO4uiC,gBAG3Evg3B,EAAW4/2B,EAAUI,oBAEV,qBAAhBruiC,EAAO9M,MAAyD,WAA1B8M,EAAO6uiC,gBAA+BtB,IAG1EoB,GAGGtg3B,EAAW4/2B,EAAUI,oBAEV,yBAAhBruiC,EAAO9M,MAC0B,WAA5B8M,EAAOgviC,kBAAiC3g3B,EAAW4/2B,EAAUI,mBAE1D,EAqHWY,CAAkBR,GACjCS,EAhHgBzyiC,KACxB,MAAM,OACJuD,EAAM,cACNutiC,GACE9wiC,EACJ,MAAoB,uBAAhBuD,EAAO9M,OAGS,qBAAhB8M,EAAO9M,KACwB,WAA1B8M,EAAO6uiC,gBAA+BtB,EAE3B,yBAAhBvtiC,EAAO9M,MAC0B,WAA5B8M,EAAOgviC,iBAEJ,EAkGUG,CAAkBV,GAOtC,GANAP,GAAa/gjC,IAAQyT,EAAAA,GAAAA,GAAS,CAAC,EAAGzT,EAAM,CACtCghjC,MAAOnuiC,EAAO5U,MACdgjjC,mBAAoBM,EAAgB1uiC,EAAO5U,MAAQ+B,EAAKihjC,mBACxDC,mBAAoBU,EAAe/uiC,EAAO5U,MAAQ+B,EAAKkhjC,mBACvDE,2BAA2B,MAEzBG,EAAe,CACjB,MAQM13gC,EAAU,CACdo1gC,gBATsC,sBAAhBpsiC,EAAO9M,KAA+B8M,EAAOg3B,QAAQo1gC,gBAAkBzgiC,EAAU,CACvGg18B,UACAv19B,MAAO4U,EAAO5U,MACd2B,OAAO6T,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACzB3B,MAAO4U,EAAO5U,MACdu8hC,gBAQgB,yBAAhB3nhC,EAAO9M,MAAsD,MAAnB8M,EAAOoviC,WACnDp4gC,EAAQo4gC,SAAWpviC,EAAOoviC,UAE5BxC,EAAkB5siC,EAAO5U,MAAO4rC,EAClC,CACI+3gC,GAAgB3B,GAClBA,EAASptiC,EAAO5U,OAEd8jjC,GACFtB,GAAU,EACZ,IAEF,QAAgB9kjC,IAAZukjC,SAA4DvkjC,IAAlCmljC,EAAUK,sBAAsC/B,EAAa7a,eAAel0E,EAAOywF,EAAUK,oBAAqBjB,IAAW,CACzJ,MAAMgC,EAA2B9C,EAAa7a,eAAel0E,EAAOywF,EAAUE,MAAOd,GACrFa,GAAa/gjC,IAAQyT,EAAAA,GAAAA,GAAS,CAAC,EAAGzT,EAAM,CACtCmhjC,oBAAqBjB,GACpBgC,EAA2B,CAAC,EAAI,CACjChB,mBAAoBhB,EACpBe,mBAAoBf,EACpBc,MAAOd,EACPkB,2BAA2B,KAE/B,CACA,MAAMe,GAAc9+F,EAAAA,GAAAA,IAAiB,KACnCg+F,EAAW,CACTpjjC,MAAOmhjC,EAAazb,WACpB59hC,KAAM,qBACN07iC,aAAc,SACd,IAEEW,GAAe/+F,EAAAA,GAAAA,IAAiB,KACpCg+F,EAAW,CACTpjjC,MAAO6ijC,EAAUG,mBACjBl7iC,KAAM,qBACN07iC,aAAc,UACd,IAEEY,GAAgBh/F,EAAAA,GAAAA,IAAiB,KACrCg+F,EAAW,CACTpjjC,MAAO6ijC,EAAUG,mBACjBl7iC,KAAM,qBACN07iC,aAAc,WACd,IAEEa,GAAej/F,EAAAA,GAAAA,IAAiB,KACpCg+F,EAAW,CACTpjjC,MAAO6ijC,EAAUI,mBACjBn7iC,KAAM,qBACN07iC,aAAc,UACd,IAEEc,GAAiBl/F,EAAAA,GAAAA,IAAiB,KACtCg+F,EAAW,CACTpjjC,MAAOmhjC,EAAaxb,cAAcvzE,EAAOmqE,EAAUU,GACnDn1hC,KAAM,qBACN07iC,aAAc,SACd,IAEEpvE,GAAahvB,EAAAA,GAAAA,IAAiB,IAAMo9F,GAAU,KAC9CjuE,GAAcnvB,EAAAA,GAAAA,IAAiB,IAAMo9F,GAAU,KAC/C+B,GAAen/F,EAAAA,GAAAA,IAAiB,SAACho7B,GAAoC,OAAKgmhC,EAAW,CACzFt7iC,KAAM,mBACN9H,MAAOo9B,EACPqmhC,eAH6D75iC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,WAIhE,IAGI46iC,GAAuBp/F,EAAAA,GAAAA,IAAiB,CAACho7B,EAAUwmhC,EAAkBI,IAAaZ,EAAW,CACjGt7iC,KAAM,uBACN9H,MAAOo9B,EACPwmhC,iBAAsC,MAApBA,EAA2BA,EAAmB,SAChEI,eAEIS,GAAwBr/F,EAAAA,GAAAA,IAAiB,CAACho7B,EAAUwO,IAAYw3gC,EAAW,CAC/Et7iC,KAAM,oBACN9H,MAAOo9B,EACPwO,cAEI84gC,GAAoCt/F,EAAAA,GAAAA,IAAiBu/F,IACzDpC,EAAoBoC,GACQ,MAA5BrC,GAAoCA,EAAyBqC,EAAoB,IAE7EvpI,EAAU,CACdwpI,QAASV,EACTlC,SAAUmC,EACV7E,UAAW8E,EACXS,SAAUR,EACVS,WAAYR,EACZxvB,OAAQ1gD,EACRP,QAASU,GAELwwE,EAAgB,CACpB/kjC,MAAO6ijC,EAAUE,MACjB5wD,SAAUsyD,EACVrC,mBACAE,yBAA0BoC,GAEtBM,EAAY38iC,EAAAA,SAAc,IAAM84iC,EAAa/a,WAAWh0E,EAAOywF,EAAUE,QAAQ,CAAC3wF,EAAO+uF,EAAc0B,EAAUE,QAyBvH,MAAO,CACL3nhC,KAAM2/M,EACNkq0B,WAAYF,EACZG,UA3BmB,CACnBlljC,MAAOgljC,EACP7yD,SAAUoyD,EACV1wE,QAASU,EACTn58B,KAAM2/M,EACNun0B,yBAA0BoC,GAuB1BS,aAVqB3viC,EAAAA,GAAAA,GAAS,CAAC,EAAG4l6B,EAAS,CAC3Cp76B,MAAOgljC,EACP7yD,SAAUoyD,EACVa,iBAAkBZ,EAClB7ihC,QAfc0jhC,IACd,MAAMrsiC,EAAQuH,EAAU,CACtBg18B,UACAv19B,MAAOqljC,EACP1jjC,OAAO6T,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACzB3B,MAAOqljC,EACP9oB,eAGJ,OAAQ4kB,EAAaza,SAAS1thC,EAAM,IAapCoi6B,UACD,EE7VI,SAASkqI,GAAQ3yiC,GASrB,IATsB,SACvBw/+B,EAAQ,aACRozD,EAAY,OACZ/pB,EACAn5+B,KAAMgz9B,EAAM,MACZ+lB,EAAK,UACLzuH,EACA64I,YAAaC,EAAa,oBAC1BC,GACD/yiC,EACC,IAAIgziC,EAAQC,EAaZ,MAAMC,EAAiBx9iC,EAAAA,OAAamzhC,GAC9BsqB,EAAgBz9iC,EAAAA,OAAa+yhC,GAC7B7+/B,EAAcl0B,EAAAA,OAAa+yhC,EAAM3iqB,SAAS+iqB,GAAUA,EAASJ,EAAM,KAClE/4+B,EAAM0jgC,IAAWlphC,EAAAA,GAAAA,GAAc,CACpC/0B,KAAM,WACNk1B,MAAO,OACPF,WAAYu4+B,EACZ1kgC,QAAS4rB,EAAYjzB,UAEjB08iC,EAAqB39iC,EAAAA,OAAask6B,EAAYtq3B,EAAO,OACpDmjgC,EAAaS,IAAkBpphC,EAAAA,GAAAA,GAAc,CAClD/0B,KAAM,WACNk1B,MAAO,cACPF,WAAY2ohC,EACZ90iC,QAASq1iC,EAAmB18iC,UAE9BjB,EAAAA,WAAgB,MAEVw9iC,EAAev8iC,SAAWu8iC,EAAev8iC,UAAYkyhC,GAAUsqB,EAAcx8iC,SAAWw8iC,EAAcx8iC,QAAQ0+R,MAAKk+wB,IAAiB9qB,EAAM3iqB,SAASytrB,QACrJH,EAAQ3qB,EAAM3iqB,SAAS+iqB,GAAUA,EAASJ,EAAM,IAChD0qB,EAAcx8iC,QAAU8xhC,EACxByqB,EAAev8iC,QAAUkyhC,EAC3B,GACC,CAACA,EAAQuqB,EAAS1jgC,EAAM+4+B,IAC3B,MAAM+qB,EAAY/qB,EAAM96hC,QAAQ+hD,GAC1B6jgC,EAAkD,OAAlCP,EAASvqB,EAAM+qB,EAAY,IAAcR,EAAS,KAClES,EAA+C,OAAnCR,EAAUxqB,EAAM+qB,EAAY,IAAcP,EAAU,KAChES,GAA0BjhG,EAAAA,GAAAA,IAAiB,CAACkhG,EAAa35E,KAG3Ds5E,EAFEt5E,EAEa25E,EAGAC,GAAmBD,IAAgBC,EAAkB,KAAOA,GAGtD,MAAvBb,GAA+BA,EAAoBY,EAAa35E,EAAS,IAErE65E,GAAmBphG,EAAAA,GAAAA,IAAiBqhG,IAExCJ,EAAwBI,GAAS,GAC7BA,IAAYpkgC,IAGhB0jgC,EAAQU,GACJlB,GACFA,EAAakB,GACf,IAEIC,GAAethG,EAAAA,GAAAA,IAAiB,KAChCghG,GACFI,EAAiBJ,EACnB,IAEIO,GAA0BvhG,EAAAA,GAAAA,IAAiB,CAACpl9B,EAAO4mjC,EAA2BC,KAClF,MAAMC,EAAiE,WAA9BF,EACnCG,EAAeF,EAGrBzrB,EAAM96hC,QAAQumjC,GAAgBzrB,EAAMn+hC,OAAS,EAAI82I,QAAQqy6B,GAKzD,GAHAj0D,EAASny/B,EADoB8mjC,GAAoCC,EAAe,UAAYH,EACtDC,GAGlCA,GAAgBA,IAAiBxkgC,EAAM,CACzC,MAAM2kgC,EAAwB5rB,EAAMA,EAAM96hC,QAAQumjC,GAAgB,GAC9DG,GAEFR,EAAiBQ,EAErB,MAAWF,GACTJ,GACF,IAEF,MAAO,CACLrkgC,OACA0jgC,QAASS,EACThB,cACAS,eAAgBI,EAChBD,WACAF,eAEA3phC,YAAa6+/B,EAAM3iqB,SAAS+iqB,GAAUA,EAASJ,EAAM,GACrDsrB,eACAC,0BAEJ,CC/GA,MAAMx0iC,GAAY,CAAC,YAAa,MCChC,SAAS80iC,KACP,MAAsB,qBAAXzqhC,OACF,WAELA,OAAO0jc,QAAU1jc,OAAO0jc,OAAO/wT,aAAe3yI,OAAO0jc,OAAO/wT,YAAYx0G,MACrB,KAA9Cl7D,KAAKD,IAAIg9B,OAAO0jc,OAAO/wT,YAAYx0G,OAAgB,YAAc,WAItEn+B,OAAO2yI,aACuC,KAAzC1vK,KAAKD,IAAI4oB,OAAOoU,OAAO2yI,cAAuB,YAEhD,UACT,CACO,MCNM+34B,GAAuBv0iC,IAK9B,IAL+B,MACnChR,EAAK,qBACLwljC,EAAoB,qBACpBC,EAAoB,eACpBrF,GACDpviC,EACC,MAAM,YACJw8J,GACExtK,EACEwpiC,EDHsBkc,EAACjsB,EAAOksB,KACpC,MAAOn44B,EAAao44B,GAAkBl/iC,EAAAA,SAAe4+iC,IAUrD,OATA5phC,EAAAA,GAAiBA,IAAC,KAChB,MAAM415B,EAAeA,KACnBs0H,EAAeN,KAAiB,EAGlC,OADAzqhC,OAAOlZ,iBAAiB,oBAAqB2v6B,GACtC,KACLz25B,OAAOqf,oBAAoB,oBAAqBo34B,EAAa,CAC9D,GACA,KACCwqH,GAAcriB,EAAO,CAAC,QAAS,UAAW,aAKlB,eADHksB,GAAqBn44B,EACP,ECbnBk44B,CAAeD,EAAqBhsB,MAAOjs3B,GAO/D,MAAO,CACLg24B,aAPkB3viC,EAAAA,GAAAA,GAAS,CAAC,EAAG4xiC,EAAsBD,EAAsB,CAC3Ehc,cACA4W,iBACAjtiC,SAAUnT,EAAMmT,SAChBmO,SAAUthB,EAAMshB,WAIjB,ECfUukiC,GAAe,SAACx46B,GAAiC,IAAxBpmE,EAAOh/D,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,UAC1C637B,GAAgB,EACpB,MAAMgmH,EAAehhjC,MAAMiI,QAAQsgI,GAAWA,EAAQvrI,KAAK,MAAQurI,EACnE,MAAO,KACAyyzB,IACHA,GAAgB,EACA,UAAZ743B,EACFowC,QAAQhgG,MAAMyuiC,GAEdzu8B,QAAQE,KAAKuu8B,GAEjB,CAEJ,ECtBaC,IADoBF,GAAa,CAAC,uFAAwF,wEAAyE,uJACvL70iC,IASnB,IAToB,MACxBhR,EAAK,aACLw/iC,EAAY,UACZlkB,EAAS,eACT8kB,EAAc,SACd58B,EAAQ,oBACRwiC,EAAmB,UACnBpniC,EAAS,cACTqniC,GACDj1iC,EAMC,MAAMk1iC,EAAsB/F,GAAe,CACzCngjC,QACAw/iC,eACAlkB,YACA8kB,iBACAxhiC,cAEIuniC,EJAsBn1iC,KAMxB,IANyB,MAC7BhR,EAAK,qBACLwljC,EAAoB,oBACpBQ,EAAmB,SACnBxiC,EAAQ,cACRyiC,GACDj1iC,EACC,MAAM,SACJw/+B,EAAQ,KACR/29B,EAAI,yBACJknhC,EAAwB,QACxBzuE,GACEszE,GAEF9kgC,KAAMgz9B,EAAM,MACZ+lB,EAAK,OACLI,EAAM,aACN+pB,EAAY,cACZwC,EAAa,SACbxrB,GACE56hC,EACEqmjC,GAAuBzyiC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KAC5D,KACJkwC,EAAI,QACJ0jgC,EAAO,YACPxphC,EAAW,YACXiphC,EAAW,eACXS,EAAc,wBACdU,GACErB,GAAS,CACXjjgC,KAAMgz9B,EACN+lB,QACAI,SACArpC,WACAozD,eACA54I,UAAWi7I,KAEP,UACJK,EAAS,eACTC,GACE7/iC,EAAAA,SAAc,IAAM+yhC,EAAMr9gC,QAAO,CAACC,EAAKmqiC,KACzC,IAAIC,EAUJ,OAREA,EADkC,MAAhCL,EAAcI,GACL,KAEA,QAEbnqiC,EAAIkqiC,eAAeC,GAAiBC,EACnB,OAAbA,IACFpqiC,EAAIiqiC,WAAY,GAEXjqiC,CAAG,GACT,CACDiqiC,WAAW,EACXC,eAAgB,CAAC,KACf,CAACH,EAAe3sB,IACditB,EAAiBhgjC,EAAAA,SAAc,IAAM+yhC,EAAMr9gC,QAAO,CAACC,EAAKmqiC,IACxB,MAAhCJ,EAAcI,IAA0BnqB,GAAWmqB,GAC9CnqiC,EAAM,EAERA,GACN,IAAI,CAAC+piC,EAAe3sB,IACjBktB,EAAkBJ,EAAe7lgC,GACjCg9/B,GAAqBj6F,EAAAA,GAAAA,IAAiB,IAA0B,OAApBkjG,KAC3CC,EAAYC,GAAiBngjC,EAAAA,SAAmC,OAApBigjC,EAA2BjmgC,EAAO,MA2CrF,OA1CIkmgC,IAAelmgC,GAAiC,OAAzB6lgC,EAAe7lgC,IACxCmmgC,EAAcnmgC,IAEhBhlB,EAAAA,GAAiBA,IAAC,KAEQ,UAApBirhC,GAA+BlthC,IACjCy48B,IACA358B,YAAW,KAGG,MAAZir/B,GAAoBA,EAAS77gC,QAAQoO,QACrC4qiC,EAAyBjggC,EAAK,IAElC,GACC,CAACA,KAEJhlB,EAAAA,GAAiBA,IAAC,KAChB,IAAKjC,EACH,OAEF,IAAIqrhC,EAAUpkgC,EAGU,UAApBimgC,GAA6C,MAAdC,IACjC9B,EAAU8B,GAIR9B,IAAYlqhC,GAA2C,OAA5B2rhC,EAAezB,IAAqD,OAAhCyB,EAAe3rhC,KAChFkqhC,EAAUlqhC,GAERkqhC,IAAYpkgC,GACd0jgC,EAAQU,GAEVR,EAAeQ,GAAS,EAAK,GAC5B,CAACrrhC,IAOG,CACL6shC,YACA5I,qBACA8F,YARkB,CAClB/pB,QACA/4+B,KAAMkmgC,EACNhD,aAAcQ,GAMd0C,kBAAmBA,KACjB,GAAkB,MAAdF,EACF,OAAO,KAET,MAAM9p5B,EAAWsp5B,EAAcQ,GAC/B,OAAgB,MAAZ9p5B,EACK,KAEFA,GAASjpJ,EAAAA,GAAAA,GAAS,CAAC,EAAGwyiC,EAAsBL,EAAqBR,EAAsB,CAC5F/rB,QACAmB,WACApqC,SAAUw0D,EACVtkgC,KAAMkmgC,EACNhD,aAAcQ,EACdP,cACAE,oBAAqBO,EACrByC,iBAAkBL,EAAiB,EACnCA,mBACC,EAEN,EInI2BM,CAAe,CACzChnjC,QACAwjhC,WACAwiC,sBACAC,gBACAT,qBAAsBU,EAAoB3C,YAEtC0D,EAAuB1B,GAAqB,CAChDvljC,QACAogjC,iBACAoF,qBAAsBU,EAAoB1C,YAC1CiC,qBAAsBU,EAAoB3C,cAE5C,MAAO,CAEL/phC,KAAMyshC,EAAoBzshC,KAC1Bgg5B,QAASysI,EAAoBzsI,QAC7B6pI,WAAY4C,EAAoB5C,WAEhCwD,kBAAmBX,EAAoBW,kBACvCR,UAAWH,EAAoBG,UAC/B5I,mBAAoByI,EAAoBzI,mBAExC8F,YAAayD,EAAqBzD,YACnC,GCjDI,SAAS0D,GAA6B72iC,GAC3C,OAAOC,EAAAA,GAAAA,IAAqB,mBAAoBD,EAClD,CACO,MAAM82iC,IAAuB52iC,EAAAA,GAAsBA,GAAC,mBAAoB,CAAC,OAAQ,YAAa,iBAAkB,UAAW,YAAa,OAAQ,cCHjJC,GAAY,CAAC,WAAY,UAAW,WAAY,aAAc,WAiBpE,SAAS42iC,GAAiBpnjC,GACxB,MAAM,SACFqgjC,EAAQ,QACR4C,EAAO,SACPC,EAAQ,WACRC,EAAU,QACV1pI,GACEz56B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC6vhC,EAAa+I,KACnB,GAAe,MAAX3vH,GAAsC,IAAnBA,EAAQn+6B,OAC7B,OAAO,KAET,MAAMylN,EAAqB,MAAX04tB,OAAkB,EAASA,EAAQl16B,KAAI8ijC,IACrD,OAAQA,GACN,IAAK,QACH,OAAoB5yiC,EAAAA,GAAAA,KAAK6w8B,GAAQ,CAC/B36pB,QAASs4vB,EACThjjC,SAAUogiC,EAAWmH,kBACpB6f,GACL,IAAK,SACH,OAAoB5yiC,EAAAA,GAAAA,KAAK6w8B,GAAQ,CAC/B36pB,QAASu4vB,EACTjjjC,SAAUogiC,EAAWkH,mBACpB8f,GACL,IAAK,SACH,OAAoB5yiC,EAAAA,GAAAA,KAAK6w8B,GAAQ,CAC/B36pB,QAAS01vB,EACTpgjC,SAAUogiC,EAAWoH,eACpB4f,GACL,IAAK,QACH,OAAoB5yiC,EAAAA,GAAAA,KAAK6w8B,GAAQ,CAC/B36pB,QAASw4vB,EACTljjC,SAAUogiC,EAAWqH,kBACpB2f,GACL,QACE,OAAO,KACX,IAEF,OAAoB5yiC,EAAAA,GAAAA,KAAK6yiC,IAAezziC,EAAAA,GAAAA,GAAS,CAAC,EAAGF,EAAO,CAC1D1T,SAAU8gN,IAEd,CC3DO,SAASwm2B,GAAwBl3iC,GACtC,OAAOC,EAAAA,GAAAA,IAAqB,cAAeD,EAC7C,CACA,MACA,IADwBE,EAAAA,GAAsBA,GAAC,cAAe,CAAC,OAAQ,YAAa,eAAgB,QAAS,sBAAuB,WAAY,UAAW,UAAW,UAAW,SAAU,kBAAmB,aCHvM,SAASi3iC,GAA8Bn3iC,GAC5C,OAAOC,EAAAA,GAAAA,IAAqB,oBAAqBD,EACnD,CACA,MACA,IAD8BE,EAAAA,GAAsBA,GAAC,oBAAqB,CAAC,OAAQ,eAAgB,QAAS,sBAAuB,WAAY,UAAW,UAAW,aCH9J,SAASk3iC,GAA8Cp3iC,GAC5D,OAAOC,EAAAA,GAAAA,IAAqB,6BAA8BD,EAC5D,EACuCE,EAAAA,GAAsBA,GAAC,6BAA8B,CAAC,OAAQ,mBAArG,MCDMC,GAAY,CAAC,aAoBbk3iC,IAA8Bh3iC,EAAAA,GAAMA,IAAC,MAAO,CAChDvK,KAAM,6BACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAW4q8B,gBAAkBv18B,EAAOu18B,eAAe,GAPxC9q8B,EASjCM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbpU,SAAU,WACV81B,MAAO,GACPD,IAAK,MACL5H,UAAW,oBACV9c,EAAW4q8B,gBAAkB,CAC9Bjm7B,MAAO,GACP,IAKIoyhC,GAAuCjhjC,EAAAA,YAAiB,SAAiC2M,EAASpM,GACtG,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,gCAEF,UACFqI,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCy5B,EAAUvjC,EAAAA,WAAiB2lhC,IAC3Bz7gC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCw78B,eAAgBvx6B,EAAQux6B,iBAEpBxn8B,EA9CkBpD,KACxB,MAAM,eACJ4q8B,EAAc,QACdxn8B,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ278B,GAAkB,mBAEnC,OAAOtn8B,EAAAA,GAAcA,GAACD,EAAOwziC,GAA+CzziC,EAAQ,EAsCpEG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKiziC,IAA6B7ziC,EAAAA,GAAAA,GAAS,CAC7DrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,GACJ0M,GACL,IAuBAg0iC,GAAwBjziC,QAAU,0BAClC,YCtFMlE,GAAY,CAAC,aACjBwZ,GAAa,CAAC,aAAc,YAAa,SAAU,WAAY,YAAa,YAAa,aAAc,kBAAmB,qBAAsB,iBAAkB,QAAS,WAAY,iBAAkB,iBAAkB,UAAW,wBAAyB,kBAAmB,WAAY,YAAa,SA8ChS49hC,IAAel3iC,EAAAA,GAAMA,IAAC,MAAO,CACxCvK,KAAM,cACNkK,KAAM,OACNM,kBA5B+BA,CAAC3Q,EAAOiG,KACvC,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAWs7gC,OAASjmhC,EAAOimhC,MAAiC,eAA1Bt7gC,EAAW8jB,YAA+BzuB,EAAO4hjC,oBAAqBj3iC,EAAWyE,SAAWpP,EAAOoP,SAAUzE,EAAW4q8B,gBAAkBv18B,EAAOw18B,SAAU7q8B,EAAWq7gC,gBAAkBhmhC,EAAO2pB,QAAShf,EAAW4J,QAAUvU,EAAOuU,OAAQ5J,EAAWk3iC,oBAAsB7hjC,EAAO8hjC,gBAAgB,GAqBjUr3iC,EAIzBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTwiB,eAAgB,aAChBC,WAAY,SACZj1B,SAAU,WACV0h9B,eAAgB,OAChBpv8B,MAAO,OACP4jB,UAAW,aACXE,UAAW,SACTjlB,EAAWq7gC,iBAAkBp4gC,EAAAA,GAAAA,GAAS,CACxC0e,WAAY,EACZE,cAAe,GACd7hB,EAAWs7gC,OAAS,CACrB35/B,WAAY,EACZE,cAAe,IACb7hB,EAAW4q8B,gBAAkB,CAC/B9o7B,YAAa,GACbF,aAAc,MACX5hB,EAAWm3iC,iBAAmB,CAGjCv1hC,aAAc,OACV5hB,EAAWm3iC,iBAAmB,CAClC,CAAC,QAADlijC,OAASmijC,GAAsBnojC,OAAS,CACtC2yB,aAAc,KAEf,CACD,CAAC,KAAD3sB,OAAMoijC,GAAgBzuhC,eAAiB,CACrCxH,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO8C,OAExD,CAAC,KAADlQ,OAAMoijC,GAAgBtyiC,WAAa,CACjCqc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,MAAM0O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,iBACxL,CAAC,KAAD/P,OAAMoijC,GAAgBzuhC,eAAiB,CACrCxH,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,YAAAx/8B,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,OAAOsO,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAO+C,gBAGrR,CAAC,KAADnQ,OAAMoijC,GAAgB90iC,WAAa,CACjC3I,SAAUmF,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO6C,kBAErB,eAA1BlF,EAAW8jB,YAA+B,CAC3CA,WAAY,cACX9jB,EAAWyE,SAAW,CACvBqb,aAAc,aAAF7qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,SACzD6yiC,eAAgB,eACft3iC,EAAW4J,QAAU,CACtBpI,WAAYzC,EAAM0C,YAAY9L,OAAO,mBAAoB,CACvD+L,SAAU3C,EAAM0C,YAAYC,SAAS2K,WAEvC,UAAW,CACTkk8B,eAAgB,OAChBnv7B,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOwC,MAEtD,uBAAwB,CACtBuc,gBAAiB,gBAGrB,CAAC,KAADnsB,OAAMoijC,GAAgBtyiC,SAAQ,WAAW,CACvCqc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,YAAAx/8B,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,OAAO4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAOyC,cAEjR,uBAAwB,CACtBsc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,MAAM0O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,oBAG3LhF,EAAWk3iC,oBAAsB,CAGlCt1hC,aAAc,IACd,IACI21hC,IAAoBz3iC,EAAAA,GAAMA,IAAC,KAAM,CACrCvK,KAAM,cACNkK,KAAM,YACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOvK,WAHrBgV,CAIvB,CACDjR,SAAU,aAkSZ,GA5R8BiH,EAAAA,YAAiB,SAAkB2M,EAASpM,GACxE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,iBAEF,WACFuuB,EAAa,SAAQ,UACrBs24B,GAAY,EAAK,OACjBxw5B,GAAS,EACTva,SAAUmo+B,EAAY,UACtB559B,EACA8E,UAAW80iC,EAAa,WACxBx4iC,EAAa,CAAC,EAAC,gBACf058B,EAAkB,CAAC,EAAC,mBACpB++F,EAAqB,KACrBC,gBACE95iC,UAAW+5iC,GACT,CAAC,EAAC,MACNr8B,GAAQ,EAAK,SACb/4gC,GAAW,EAAK,eAChBqo8B,GAAiB,EAAK,eACtBywE,GAAiB,EAAK,QACtB52gC,GAAU,EAAK,sBACfkv8B,EAAqB,gBACrBwjG,EAAe,SACfpyiC,GAAW,EAAK,UAChBolB,EAAY,CAAC,EAAC,MACd9mB,EAAQ,CAAC,GACPjU,EACJsojC,GAAiB10iC,EAAAA,GAAAA,GAA8B5T,EAAMsojC,eAAgB93iC,IACrEmD,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOgqB,IACzCigB,EAAUvjC,EAAAA,WAAiB2lhC,IAC3BZ,EAAe/khC,EAAAA,SAAc,KAAM,CACvCwlhC,MAAOA,GAASji/B,EAAQii/B,QAAS,EACjCx3/B,aACA8m7B,oBACE,CAAC9m7B,EAAYuV,EAAQii/B,MAAOA,EAAO1wE,IACjCgtG,EAAc9hjC,EAAAA,OAAa,OACjCg1B,EAAAA,GAAAA,IAAkB,KACZsv4B,GACEw9I,EAAY7gjC,SACd6gjC,EAAY7gjC,QAAQoO,OAIxB,GACC,CAACi15B,IACJ,MAAM/q6B,EAAWyG,EAAAA,SAAe+tb,QAAQ2ziB,GAGlC0/E,EAAqB7njC,EAAS3E,SAAU8vhC,EAAAA,GAAYA,GAACnrhC,EAASA,EAAS3E,OAAS,GAAI,CAAC,4BACrFsV,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC00B,aACAs24B,YACAxw5B,SACA0xgC,MAAOT,EAAaS,MACpB/4gC,WACAqo8B,iBACAywE,iBACA52gC,UACAyyiC,qBACAnyiC,aAEI3B,EAxKkBpD,KACxB,MAAM,WACJ8jB,EAAU,OACVla,EAAM,QACNxG,EAAO,MACPk4gC,EAAK,SACL/4gC,EAAQ,eACRqo8B,EAAc,eACdywE,EAAc,QACd52gC,EAAO,mBACPyyiC,EAAkB,SAClBnyiC,GACE/E,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQqshC,GAAS,SAAU1wE,GAAkB,WAAYywE,GAAkB,UAAW52gC,GAAW,UAAWlC,GAAY,WAAYqH,GAAU,SAAyB,eAAfka,GAA+B,sBAAuBozhC,GAAsB,kBAAmBnyiC,GAAY,YAC1Qja,UAAW,CAAC,cAEd,OAAOwY,EAAAA,GAAcA,GAACD,EAAOsziC,GAAyBvziC,EAAQ,EAuJ9CG,CAAkBvD,GAC5B0z8B,GAAY3o7B,EAAAA,GAAUA,GAAC6shC,EAAavhjC,GACpC6i9B,EAAO718B,EAAMpU,MAAQ+P,EAAWk68B,MAAQ89F,GACxCz9F,EAAYpv7B,EAAUl7B,MAAQyp9B,EAAgBzp9B,MAAQ,CAAC,EACvDyn9B,GAAiBzz8B,EAAAA,GAAAA,GAAS,CAC9BrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAMsq9B,EAAU378B,UAAWA,GACnD2E,YACCQ,GACH,IAAIgL,EAAYypiC,GAAiB,KAQjC,OAPI5tiC,IACF8s8B,EAAeh08B,UAAY80iC,GAAiB,MAC5C9gG,EAAe/C,uBAAwBjw8B,EAAAA,GAAIA,GAAC2ziC,GAAgBzuhC,aAAc+q7B,GAC1E5l8B,EAAYkm8B,IAIVijG,GAEFnpiC,EAAa2o8B,EAAeh08B,WAAc80iC,EAAwBzpiC,EAAR,MAG/B,OAAvB0piC,IACgB,OAAd1piC,EACFA,EAAY,MAC0B,OAA7B2o8B,EAAeh08B,YACxBg08B,EAAeh08B,UAAY,SAGXmB,EAAAA,GAAAA,KAAK43gC,GAAYxlhC,SAAU,CAC7CxI,MAAOothC,EACPxrhC,UAAuBmU,EAAAA,GAAAA,MAAM+ziC,IAAmBt0iC,EAAAA,GAAAA,GAAS,CACvDQ,GAAIg0iC,EACJ75iC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQtY,UAAW6sjC,GACnCthjC,IAAKq98B,EACL1z8B,WAAYA,GACX03iC,EAAgB,CACjBrojC,SAAU,EAAcwU,EAAAA,GAAAA,KAAKq18B,GAAMj28B,EAAAA,GAAAA,GAAS,CAAC,EAAGs28B,GAAY5D,GAAgBuD,IAAS,CACnFz18B,GAAIsK,EACJ/N,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAYu58B,EAAUv58B,aAC9C028B,EAAgB,CACjBrn9B,SAAUA,KACPA,EAASo2D,cAIA5hD,EAAAA,GAAAA,KAAK43gC,GAAYxlhC,SAAU,CAC7CxI,MAAOothC,EACPxrhC,UAAuBmU,EAAAA,GAAAA,MAAM018B,GAAMj28B,EAAAA,GAAAA,GAAS,CAAC,EAAGs28B,EAAW,CACzD918B,GAAIsK,EACJ1X,IAAKq98B,IACHiC,GAAgBuD,IAAS,CAC3Bl58B,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAYu58B,EAAUv58B,aAC9C028B,EAAgB,CACjBrn9B,SAAU,CAACA,EAAU8njC,IAAgCtziC,EAAAA,GAAAA,KAAKkziC,GAAyB,CACjF1njC,SAAU8njC,SAIlB,ICzPA,IAAez4iC,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,oLACD,UCTG,SAASu5iC,GAAoBp4iC,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,CACA,MACA,IADoBE,EAAAA,GAAsBA,GAAC,UAAW,CAAC,OAAQ,YAAa,aAAc,aAAc,YAAa,eAAgB,iBAAkB,eAAgB,eAAgB,WAAY,YAAa,wBAAyB,0BAA2B,YAAa,wBAAyB,0BAA2B,WAAY,SAAU,kBAAmB,oBAAqB,gBAAiB,kBAAmB,SAAU,cAAe,eAAgB,qBAAsB,uBAAwB,OAAQ,YAAa,aAAc,mBAAoB,qBAAsB,QAAS,aAAc,cAAe,aAAc,kBAAmB,mBAAoB,yBAA0B,2BAA4B,iCAAkC,mCAAoC,+BAAgC,iCAAkC,iBCD91BC,GAAY,CAAC,SAAU,YAAa,YAAa,QAAS,YAAa,aAAc,WAAY,OAAQ,QAAS,UAAW,WAAY,YAAa,UAAW,OAAQ,UAAW,WAAY,yBAoChMk4iC,IAAWh4iC,EAAAA,GAAMA,IAAC,MAAO,CAC7BvK,KAAM,UACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,GACE,MACJ6Q,EAAK,UACLky6B,EAAS,UACT4lI,EAAS,SACTC,EAAQ,KACR1ljC,EAAI,QACJmnB,GACEzZ,EACJ,MAAO,CAAC,CACN,CAAC,MAAD/K,OAAOgjjC,GAAYC,SAAW7ijC,EAAO6ijC,QACpC,CACD,CAAC,MAADjjjC,OAAOgjjC,GAAYC,SAAW7ijC,EAAO,SAADJ,QAAUiL,EAAAA,GAAUA,GAAC5N,MACxD,CACD,CAAC,MAAD2C,OAAOgjjC,GAAYC,SAAW7ijC,EAAO,cAADJ,QAAeiL,EAAAA,GAAUA,GAACD,MAC7D,CACD,CAAC,MAADhL,OAAOgjjC,GAAY1yiC,OAASlQ,EAAOkQ,MAClC,CACD,CAAC,MAADtQ,OAAOgjjC,GAAY1yiC,OAASlQ,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAAC5N,MACpD,CACD,CAAC,MAAD2C,OAAOgjjC,GAAY1yiC,OAASlQ,EAAO,YAADJ,QAAaiL,EAAAA,GAAUA,GAACiy6B,MACzD,CACD,CAAC,MAADl96B,OAAOgjjC,GAAYE,aAAe9ijC,EAAO8ijC,YACxC,CACD,CAAC,MAADljjC,OAAOgjjC,GAAYE,aAAe9ijC,EAAO,aAADJ,QAAciL,EAAAA,GAAUA,GAAC5N,MAChE,CACD,CAAC,MAAD2C,OAAOgjjC,GAAYE,aAAe9ijC,EAAO,kBAADJ,QAAmBiL,EAAAA,GAAUA,GAACD,MACrE,CACD,CAAC,MAADhL,OAAOgjjC,GAAYE,aAAe9ijC,EAAO,aAADJ,QAAciL,EAAAA,GAAUA,GAACuZ,GAAQ,SAAAxkB,QAAQiL,EAAAA,GAAUA,GAACD,MAC3F5K,EAAOpG,KAAMoG,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAAC5N,KAAU+C,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACD,KAAW83iC,GAAa1ijC,EAAO0ijC,UAAWA,GAAuB,YAAV93iC,GAAuB5K,EAAO,iBAADJ,QAAkBiL,EAAAA,GAAUA,GAACD,GAAM,MAAM+3iC,GAAY3ijC,EAAO+ijC,UAAWJ,GAAsB,YAAV/3iC,GAAuB5K,EAAO,iBAADJ,QAAkBiL,EAAAA,GAAUA,GAACD,KAAW5K,EAAOokB,GAAUpkB,EAAO,GAADJ,OAAIwkB,GAAOxkB,QAAGiL,EAAAA,GAAUA,GAACD,KAAU,GAnCtWH,EAqCdM,IAGG,IAHF,MACFrB,EAAK,WACLiB,GACDI,EACC,MAAMgsgB,EAAmC,UAAvBrtgB,EAAMoD,QAAQgE,KAAmBpH,EAAMoD,QAAQ6F,KAAK,KAAOjJ,EAAMoD,QAAQ6F,KAAK,KAChG,OAAO/E,EAAAA,GAAAA,GAAS,CACd4d,SAAU,OACVxY,WAAYtJ,EAAM+C,WAAWuG,WAC7BlI,SAAUpB,EAAM+C,WAAWC,QAAQ,IACnCV,QAAS,cACTyiB,WAAY,SACZD,eAAgB,SAChBziB,OAAQ,GACRnB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,QAC1C6c,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO0C,SACtDyX,aAAc,GACdiH,WAAY,SACZjiB,WAAYzC,EAAM0C,YAAY9L,OAAO,CAAC,mBAAoB,eAE1D6F,OAAQ,QAER6kB,QAAS,EACTkw7B,eAAgB,OAChB5w7B,OAAQ,EAERX,QAAS,EAETo0I,cAAe,SACfruI,UAAW,aACX,CAAC,KAAD9vB,OAAMgjjC,GAAY11iC,WAAa,CAC7B3I,SAAUmF,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO6C,gBAC9CyqM,cAAe,QAEjB,CAAC,MAAD16M,OAAOgjjC,GAAYC,SAAW,CAC5Bp1hC,WAAY,EACZF,aAAc,EACdzhB,MAAO,GACPC,OAAQ,GACRnB,MAAOlB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQk2iC,KAAKC,mBAAqBlsiB,EACjEjsgB,SAAUpB,EAAM+C,WAAWC,QAAQ,KAErC,CAAC,MAAD9M,OAAOgjjC,GAAYM,qBAAuB,CACxCt4iC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC7CuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQe,MAEzD,CAAC,MAADrQ,OAAOgjjC,GAAYO,uBAAyB,CAC1Cv4iC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQqC,UAAUqD,aAC/CuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQqC,UAAUc,MAE3D,CAAC,MAADrQ,OAAOgjjC,GAAYQ,cAAgB,CACjC31hC,WAAY,EACZF,aAAc,EACdzhB,MAAO,GACPC,OAAQ,GACRjB,SAAUpB,EAAM+C,WAAWC,QAAQ,KAErC,CAAC,MAAD9M,OAAOgjjC,GAAY1yiC,QAAStC,EAAAA,GAAAA,GAAS,CACnC6f,WAAY,EACZF,aAAc,GACO,UAApB5iB,EAAW1N,MAAoB,CAChC6N,SAAU,GACV2iB,WAAY,EACZF,aAAc,GACb5iB,EAAWmy6B,YAAcny6B,EAAWC,QAASgD,EAAAA,GAAAA,GAAS,CACvDhD,MAAOlB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQk2iC,KAAKK,iBAAmBtsiB,GACzC,YAArBpsgB,EAAWC,OAAuB,CACnCA,MAAO,aAET,CAAC,MAADhL,OAAOgjjC,GAAYE,cAAel1iC,EAAAA,GAAAA,GAAS,CACzCot8B,wBAAyB,cACzBpw8B,MAAOlB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQmC,KAAKkw8B,eAAc,aAAa9g8B,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQmC,KAAKC,QAAS,KACjHpE,SAAU,GACV3E,OAAQ,UACRujB,OAAQ,eACR,UAAW,CACT9e,MAAOlB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQmC,KAAKkw8B,eAAc,YAAY9g8B,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQmC,KAAKC,QAAS,MAE7F,UAApBvE,EAAW1N,MAAoB,CAChC6N,SAAU,GACVyiB,YAAa,EACbE,YAAa,GACS,YAArB9iB,EAAWC,OAAuB,CACnCA,MAAOlB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAO04iC,oBAAmB,YAAYjliC,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQnC,EAAWC,OAAO4H,aAAc,IACpJ,oBAAqB,CACnB5H,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAO4H,iBAGtC,UAApB7H,EAAW1N,MAAoB,CAChC8O,OAAQ,IACc,YAArBpB,EAAWC,OAAuB,CACnCmhB,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,KACjEnC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAO4H,cACtD7H,EAAWg4iC,UAAY,CACxB,CAAC,KAAD/ijC,OAAMgjjC,GAAYrvhC,eAAiB,CACjCxH,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAOu2iC,gBAAe,YAAA3jjC,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,OAAOsO,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQE,OAAO0C,SAAUhG,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAO+C,gBAExRpF,EAAWg4iC,UAAiC,YAArBh4iC,EAAWC,OAAuB,CAC1D,CAAC,KAADhL,OAAMgjjC,GAAYrvhC,eAAiB,CACjCxH,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOqF,OAEnE,IACDzG,IAAA,IAAC,MACFE,EAAK,WACLiB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAW+3iC,WAAa,CACzC72iC,WAAY,OACZmv8B,wBAAyB,cACzB708B,OAAQ,UACR,UAAW,CACT4lB,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAOu2iC,gBAAe,YAAA3jjC,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,OAAO4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQE,OAAO0C,SAAUhG,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAOyC,eAEzR,CAAC,KAAD7P,OAAMgjjC,GAAYrvhC,eAAiB,CACjCxH,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAOu2iC,gBAAe,YAAA3jjC,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,OAAOsO,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQE,OAAO0C,SAAUhG,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAO+C,eAEzR,WAAY,CACV0f,WAAY/lB,EAAMmD,MAAQnD,GAAOuM,QAAQ,KAE1CtL,EAAW+3iC,WAAkC,YAArB/3iC,EAAWC,OAAuB,CAC3D,CAAC,cAADhL,OAAegjjC,GAAYrvhC,eAAiB,CAC1CxH,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOqF,OAEnE,IAAE6S,IAAA,IAAC,MACHpZ,EAAK,WACLiB,GACDmY,EAAA,OAAKlV,EAAAA,GAAAA,GAAS,CAAC,EAA0B,aAAvBjD,EAAWyZ,SAA0B,CACtD2H,gBAAiB,cACjBzB,OAAQ5gB,EAAMmD,KAAO,aAAHjN,OAAgB8J,EAAMmD,KAAKC,QAAQk2iC,KAAKQ,eAAa,aAAA5jjC,OAAyC,UAAvB8J,EAAMoD,QAAQgE,KAAmBpH,EAAMoD,QAAQ6F,KAAK,KAAOjJ,EAAMoD,QAAQ6F,KAAK,MACvK,CAAC,KAAD/S,OAAMgjjC,GAAYF,UAAS,WAAW,CACpC32hC,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOwC,OAExD,CAAC,KAAD5P,OAAMgjjC,GAAYrvhC,eAAiB,CACjCxH,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO8C,OAExD,CAAC,MAADlQ,OAAOgjjC,GAAYC,SAAW,CAC5Bp1hC,WAAY,GAEd,CAAC,MAAD7tB,OAAOgjjC,GAAYQ,cAAgB,CACjC31hC,WAAY,GAEd,CAAC,MAAD7tB,OAAOgjjC,GAAY1yiC,OAAS,CAC1Bud,WAAY,GAEd,CAAC,MAAD7tB,OAAOgjjC,GAAYa,YAAc,CAC/Bh2hC,WAAY,GAEd,CAAC,MAAD7tB,OAAOgjjC,GAAYE,aAAe,CAChCv1hC,YAAa,GAEf,CAAC,MAAD3tB,OAAOgjjC,GAAYc,kBAAoB,CACrCn2hC,YAAa,IAES,aAAvB5iB,EAAWyZ,SAA+C,YAArBzZ,EAAWC,OAAuB,CACxEA,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,KACvDud,OAAQ,aAAF1qB,OAAe8J,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,YAAY/g8B,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAM,KAClJ,CAAC,KAADnN,OAAMgjjC,GAAYF,UAAS,WAAW,CACpC32hC,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAM4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAMrD,EAAMoD,QAAQE,OAAOyC,eAE3M,CAAC,KAAD7P,OAAMgjjC,GAAYrvhC,eAAiB,CACjCxH,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,MAAMsO,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAMrD,EAAMoD,QAAQE,OAAO+C,eAE3M,CAAC,MAADnQ,OAAOgjjC,GAAYE,aAAe,CAChCl4iC,MAAOlB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,YAAY/g8B,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAM,IACpI,oBAAqB,CACnBnC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,QAG3D,IACI42iC,IAAYl5iC,EAAAA,GAAMA,IAAC,OAAQ,CAC/BvK,KAAM,UACNkK,KAAM,QACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,GACE,KACJkD,GACE0N,EACJ,MAAO,CAAC3K,EAAOod,MAAOpd,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAAC5N,KAAS,GAV3CwN,EAYfwszB,IAAA,IAAC,WACFtszB,GACDsszB,EAAA,OAAKrpzB,EAAAA,GAAAA,GAAS,CACbqgB,SAAU,SACVC,aAAc,WACdzB,YAAa,GACbF,aAAc,GACd6B,WAAY,UACY,aAAvBzjB,EAAWyZ,SAA0B,CACtCqI,YAAa,GACbF,aAAc,IACO,UAApB5hB,EAAW1N,MAAoB,CAChCwvB,YAAa,EACbF,aAAc,GACO,UAApB5hB,EAAW1N,MAA2C,aAAvB0N,EAAWyZ,SAA0B,CACrEqI,YAAa,EACbF,aAAc,GACd,IACF,SAASq3hC,GAAsBC,GAC7B,MAA6B,cAAtBA,EAAc3tjC,KAA6C,WAAtB2tjC,EAAc3tjC,GAC5D,CAKA,MAgOA,GAhO0BuK,EAAAA,YAAiB,SAAc2M,EAASpM,GAChE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,aAGJ2ijC,OAAQiB,EAAU,UAClBv7iC,EACAm6iC,UAAWqB,EAAa,MACxBn5iC,EAAQ,UACRyC,UAAW8w8B,EACX2kG,WAAYkB,EAAc,SAC1B92iC,GAAW,EACXgD,KAAM+ziC,EAAQ,MACd7miC,EAAK,QACLsnS,EAAO,SACPi+vB,EAAQ,UACR7mG,EAAS,QACTC,EAAO,KACP9+8B,EAAO,SAAQ,QACfmnB,EAAU,SAAQ,SAClBk47B,EAAQ,sBACR4nG,GAAwB,GACtBnqjC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC45iC,EAAU1jjC,EAAAA,OAAa,MACvB498B,GAAY3o7B,EAAAA,GAAUA,GAACyuhC,EAASnjjC,GAChCojjC,EAAwB1piC,IAE5BA,EAAM+4P,kBACFkvyB,GACFA,EAASjoiC,EACX,EA0BIgoiC,KAA8B,IAAlBqB,IAA2Br/vB,IAAiBq/vB,EACxD12iC,EAAYq1iC,GAAaC,EAAW/jG,GAAaT,GAAiB,MAClExz8B,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACAH,WACAjQ,OACA2N,QACAky6B,UAAwBr86B,EAAAA,eAAqBwjjC,IAAYA,EAASlqjC,MAAM6Q,OAAiBA,EACzF+3iC,WAAYA,EACZD,YACAt+hC,YAEIrW,EA3UkBpD,KACxB,MAAM,QACJoD,EAAO,SACPb,EAAQ,KACRjQ,EAAI,MACJ2N,EAAK,UACLky6B,EAAS,SACT6lI,EAAQ,UACRD,EAAS,QACTt+hC,GACEzZ,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwqB,EAASlX,GAAY,WAAY,OAAFtN,QAASiL,EAAAA,GAAUA,GAAC5N,IAAK,QAAA2C,QAAYiL,EAAAA,GAAUA,GAACD,IAAU83iC,GAAa,YAAaA,GAAa,iBAAJ9ijC,QAAqBiL,EAAAA,GAAUA,GAACD,IAAU+3iC,GAAY,YAAaA,GAAY,iBAAJ/ijC,QAAqBiL,EAAAA,GAAUA,GAACD,IAAU,GAAFhL,OAAKwkB,GAAOxkB,QAAGiL,EAAAA,GAAUA,GAACD,KACxRwS,MAAO,CAAC,QAAS,QAAFxd,QAAUiL,EAAAA,GAAUA,GAAC5N,KACpC4ljC,OAAQ,CAAC,SAAU,SAAFjjjC,QAAWiL,EAAAA,GAAUA,GAAC5N,IAAK,cAAA2C,QAAkBiL,EAAAA,GAAUA,GAACD,KACzEsF,KAAM,CAAC,OAAQ,OAAFtQ,QAASiL,EAAAA,GAAUA,GAAC5N,IAAK,YAAA2C,QAAgBiL,EAAAA,GAAUA,GAACiy6B,KACjEgmI,WAAY,CAAC,aAAc,aAAFljjC,QAAeiL,EAAAA,GAAUA,GAAC5N,IAAK,kBAAA2C,QAAsBiL,EAAAA,GAAUA,GAACD,IAAM,aAAAhL,QAAiBiL,EAAAA,GAAUA,GAACuZ,GAAQ,SAAAxkB,QAAQiL,EAAAA,GAAUA,GAACD,MAExJ,OAAOqD,EAAAA,GAAcA,GAACD,EAAOw0iC,GAAqBz0iC,EAAQ,EAyT1CG,CAAkBvD,GAC5B05iC,EAAYh3iC,IAAcux8B,IAAahx8B,EAAAA,GAAAA,GAAS,CACpDP,UAAW8w8B,GAAiB,MAC5BG,sBAAuBvw8B,EAAQwlB,cAC9BovhC,GAAY,CACbpnG,eAAe,IACZ,CAAC,EACN,IAAIunG,EAAa,KACbH,IACFG,EAAakB,GAA+BvjjC,EAAAA,eAAqBujjC,GAAiCvjjC,EAAAA,aAAmBujjC,EAAgB,CACnIz7iC,WAAW8F,EAAAA,GAAIA,GAAC21iC,EAAejqjC,MAAMwO,UAAWwF,EAAQ+0iC,YACxDp+vB,QAAS0/vB,KACQ51iC,EAAAA,GAAAA,KAAK81iC,GAAY,CAClC/7iC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQ+0iC,YACxBp+vB,QAAS0/vB,KAGb,IAAIvB,EAAS,KACTiB,GAA2BrjjC,EAAAA,eAAqBqjjC,KAClDjB,EAAsBpijC,EAAAA,aAAmBqjjC,EAAY,CACnDv7iC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQ80iC,OAAQiB,EAAW/pjC,MAAMwO,cAGrD,IAAI2H,EAAO,KAWX,OAVI+ziC,GAAyBxjjC,EAAAA,eAAqBwjjC,KAChD/ziC,EAAoBzP,EAAAA,aAAmBwjjC,EAAU,CAC/C17iC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQmC,KAAM+ziC,EAASlqjC,MAAMwO,eAQ7B4F,EAAAA,GAAAA,MAAMs0iC,IAAU70iC,EAAAA,GAAAA,GAAS,CAC3CQ,GAAIf,EACJ9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B2E,YAAUw1iC,IAAax1iC,SAAkBpX,EACzC4uT,QAASA,EACTo3pB,UA3EoBph8B,IAEhBA,EAAM49L,gBAAkB59L,EAAMQ,QAAU0oiC,GAAsBlpiC,IAGhEA,EAAMozB,iBAEJgu6B,GACFA,EAAUph8B,EACZ,EAmEAqh8B,QAjEkBrh8B,IAEdA,EAAM49L,gBAAkB59L,EAAMQ,SAC5ByniC,GAAYiB,GAAsBlpiC,GACpCioiC,EAASjoiC,GACc,WAAdA,EAAMxkB,KAAoBiujC,EAAQzijC,SAC3CyijC,EAAQzijC,QAAQi+J,QAGhBo8yB,GACFA,EAAQrh8B,EACV,EAuDA1Z,IAAKq98B,EACL/B,SAAU4nG,GAAyBh3iC,GAAY,EAAIov8B,EACnD3x8B,WAAYA,GACX05iC,EAAW32iC,EAAO,CACnB1T,SAAU,CAAC6ojC,GAAU3yiC,GAAmB1B,EAAAA,GAAAA,KAAKm1iC,GAAW,CACtDp7iC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQqP,OACxBzS,WAAYA,EACZ3Q,SAAUojB,IACR0liC,KAER,IChZayB,GAAe,ICAtBh6iC,GAAY,CAAC,QAAS,mBAAoB,cAAe,WAAY,WACzEwZ,GAAa,CAAC,YAiBhB,SAASygiC,GAAiBzqjC,GACxB,MAAM,MACF+wG,EAAK,iBACLkx8B,EAAgB,SAChBzxD,EAAQ,QACRxw9B,GACEhgC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAC/C,GAAa,MAATugG,GAAkC,IAAjBA,EAAMz1G,OACzB,OAAO,KAET,MAAMovjC,EAAgB358B,EAAMxsG,KAAIyM,IAC9B,IAAI,SACAme,GACEne,EACJia,GAAOrX,EAAAA,GAAAA,GAA8B5C,EAAMgZ,IAC7C,MAAMyR,EAAWtM,EAAS,CACxB6Q,YAEF,MAAO,CACL3c,MAAO4H,EAAK5H,MACZsnS,QAASA,KACP6lsB,EAAS/09B,EAAUwmhC,EAAkBh3hC,EAAK,EAE5C9X,UAAW6sB,EAAQvE,GACpB,IAEH,OAAoBhnB,EAAAA,GAAAA,KAAKo5gC,IAAMh6gC,EAAAA,GAAAA,GAAS,CACtCq4gC,OAAO,EACPvvgC,GAAI,CAAC,CACHmV,UD9CqB,IC+CrBL,SAAU,IACVyC,SAAU,WACLpvB,MAAMiI,QAAQ4G,EAAMgJ,IAAMhJ,EAAMgJ,GAAK,CAAChJ,EAAMgJ,MAClDhJ,EAAO,CACR1T,SAAUyqjC,EAAcnmjC,KAAI0mB,IACNxW,EAAAA,GAAAA,KAAKk2iC,GAAU,CACjC1qjC,UAAuBwU,EAAAA,GAAAA,KAAKw0iC,IAAMp1iC,EAAAA,GAAAA,GAAS,CAAC,EAAGoX,KAC9CA,EAAK5H,WAGd,CCjDA,MAqIA,GArHwBrjB,IACtB,IAAI4qjC,EAAkBC,EACtB,MAAM,eACJzK,EAAc,SACdC,EAAQ,QACR4C,EAAO,SACPC,EAAQ,WACRC,EAAU,KACVzigC,EAAI,MACJ+4+B,EAAK,aACLmqB,EAAY,MACZvljC,EAAK,SACLmy/B,EAAQ,iBACRizD,EAAgB,QAChBzjhC,EAAO,YACPwpgC,EAAW,SACXr2hC,EAAQ,SACRmO,EAAQ,SACRrhB,EAAQ,WACR2P,EAAU,gBACV058B,EACAr18B,MAAO62iC,EACP/vhC,UAAWgwhC,GAKT/qjC,EACEiU,EAAsB,MAAd62iC,EAAqBA,EAAavgB,GAAuB36hC,GACjEmrB,EAA8B,MAAlBgwhC,EAAyBA,EAAiBzhG,EACtDt18B,EA9CkBpD,KACxB,MAAM,QACJoD,EAAO,YACPw1hC,GACE54hC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ2piC,GAAe,aAC9BwhB,eAAgB,CAAC,kBACjBjviC,QAAS,CAAC,WACVkviC,UAAW,CAAC,aACZC,KAAM,CAAC,QACPC,UAAW,CAAC,aACZC,UAAW,CAAC,cAEd,OAAOl3iC,EAAAA,GAAcA,GAACD,EAAOiziC,GAA8BlziC,EAAQ,EAgCnDG,CAAkBnU,GAI5BqrjC,EAA6E,OAAhET,EAA4B,MAAT32iC,OAAgB,EAASA,EAAMg3iC,WAAqBL,EAAmBxD,GACvGkE,EAAiBlhG,GAAa,CAClCn4D,YAAao5J,EACb1kG,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUkwhC,UAC1DvkG,gBAAiB,CACf25F,WACA4C,UACAC,WACAC,aACA1pI,QAA4B,YAAnB2mI,EAA+B,GAAK,CAAC,SAAU,UACxD5xiC,UAAWwF,EAAQi3iC,WAErBr6iC,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAC9BogjC,qBAGE6K,GAAyBx2iC,EAAAA,GAAAA,KAAK42iC,GAAWx3iC,EAAAA,GAAAA,GAAS,CAAC,EAAGy3iC,IAItD3kF,EAAmB,MAAT1y9B,OAAgB,EAASA,EAAM8H,QACzCwviC,EAAenhG,GAAa,CAChCn4D,YAAa00E,EACbhgB,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUhf,QAC1D2q8B,gBAAiB,CACf8iF,cACAh5C,WACAny/B,QACAqiD,OACAkjgC,eACAnqB,QACAtmhC,WACAmO,WACA9S,UAAWwF,EAAQ+H,SAErBnL,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAC9BogjC,qBAGErkiC,EA5FR,SAAwBwviC,GACtB,OAA6B,OAAtBA,EAAa7qgC,IACtB,CA0FkB8qgC,CAAeD,IAAmB5kF,GAAuBly9B,EAAAA,GAAAA,KAAKky9B,GAAS9y9B,EAAAA,GAAAA,GAAS,CAAC,EAAG03iC,IAAiB,KAI/GjuqB,EAAUr9Y,EAIVwrjC,EAAgB,MAATx3iC,OAAgB,EAASA,EAAMi3iC,KACtCA,EAAOxqgC,GAAQ+qgC,GAAoBh3iC,EAAAA,GAAAA,KAAKg3iC,GAAM53iC,EAAAA,GAAAA,GAAS,CAC3D6sC,KAAMA,EACNkjgC,aAAcA,EACdp1iC,UAAWwF,EAAQk3iC,MACL,MAAbnwhC,OAAoB,EAASA,EAAUmwhC,OAAS,KAI7CQ,EAA6E,OAAhEb,EAA4B,MAAT52iC,OAAgB,EAASA,EAAMm3iC,WAAqBP,EAAmBJ,GACvGkB,EAAiBvhG,GAAa,CAClCn4D,YAAay5J,EACb/kG,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUqwhC,UAC1D1kG,gBAAiB,CACf1m7B,UACAwpgC,cACAh5C,SAAUizD,EACVj1iC,UAAWwF,EAAQo3iC,WAErBx6iC,WAAY,CACVovB,UACAwpgC,cACAh5C,SAAUizD,EACVj1iC,UAAWwF,EAAQo3iC,UACnBhL,oBAIJ,MAAO,CACLrkiC,UACAuhY,UACA4tqB,OACAD,YACAG,UANgB1qgC,GAAUgrgC,GAAyBj3iC,EAAAA,GAAAA,KAAKi3iC,GAAW73iC,EAAAA,GAAAA,GAAS,CAAC,EAAG83iC,IAAmB,KAOpG,EC3HGC,IAAoBl7iC,EAAAA,GAAMA,IAAC,MAAO,CACtCvK,KAAM,mBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHrB6Q,EAIvBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,MAAM,CACLiB,QAAS,OACT+iB,gBAAiB,+BACjBC,aAAc,+BACd,CAAC,MAADpvB,OAAOshjC,GAAqBpriC,UAAYnL,EAAW44hC,YAAc,CAC/D1/hC,WAAgC,QAApB6F,EAAM2G,UAAsB,EAAI,EAC5C5M,QAAS,SACP,CACFI,WAAY,QACZJ,QAAS,GAEX,CAAC,IAAD7D,OAAKshjC,GAAqBiE,YAAcx6iC,EAAW44hC,YAAc,CAC/D1/hC,WAAY,QACZJ,QAAS,GACP,CACFI,WAAgC,QAApB6F,EAAM2G,UAAsB,EAAI,EAC5C5M,QAAS,SAEX,CAAC,MAAD7D,OAAOshjC,GAAqB8D,YAAc,CACxCnhjC,WAAY,QACZJ,QAAS,GAEZ,IACDkijC,GAAkB/7hC,UAAY,CAK5Bxb,GAAIk+4B,KAAAA,YACJ3h5B,WAAY2h5B,KAAAA,MAAgB,CAC1Bi3I,YAAaj3I,KAAAA,KAAeX,aAC3BA,WACHj14B,GAAI414B,KAAAA,UAAoB,CAACA,KAAAA,QAAkBA,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,QAAmBA,KAAAA,KAAgBA,KAAAA,UAGhI,MAAMs5J,IAA8Bn7iC,EAAAA,GAAMA,IAAC,MAAO,CACvDvK,KAAM,mBACNkK,KAAM,iBACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAO+kjC,gBAHJt6iC,CAIxC,CACD5G,WAAY,EACZJ,QAAS,EACTuI,QAAS,OACTsiB,cAAe,WAYXu3hC,GAAgB,SAAuBz4iC,GAC3C,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,sBAEF,QACJ4V,EAAO,QACPuhY,EAAO,KACP4tqB,EAAI,UACJD,EAAS,UACTG,GACEW,GAAgB/rjC,IACd,GACJ2c,EAAE,UACFnO,EAAS,YACTg7hC,EAAW,IACXviiC,EAAG,eACHm5iC,GACEpgjC,EACE4Q,EAAa5Q,EACbgU,EA7FkBpD,KACxB,MAAM,YACJ44hC,EAAW,QACXx1hC,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ2piC,GAAe,aAC9BwhB,eAAgB,CAAC,mBAEnB,OAAO92iC,EAAAA,GAAcA,GAACD,EAAOiziC,GAA8BlziC,EAAQ,EAoFnDG,CAAkBvD,GAClC,OAAoBwD,EAAAA,GAAAA,MAAMw3iC,GAAmB,CAC3C3kjC,IAAKA,EACL0V,GAAIA,EACJnO,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQnU,MACnC+Q,WAAYA,EACZ3Q,SAAU,CAACupiC,EAAc4hB,EAAYrviC,EAASythC,EAAczthC,EAAUqviC,GAAwB32iC,EAAAA,GAAAA,KAAKo3iC,GAA6B,CAC9Hr9iC,UAAWwF,EAAQg3iC,eACnB/qjC,SAA6B,YAAnBmgjC,GAA4ChsiC,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CAC1EzG,SAAU,CAACq9Y,EAAS4tqB,MACJ92iC,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACtCzG,SAAU,CAACirjC,EAAM5tqB,OAEjB2tqB,IAER,ECnHMz6iC,GAAY,CAAC,QAAS,yBAC1BwZ,GAAa,CAAC,cACdhC,GAAa,CAAC,cAoBHgkiC,GAAmBh7iC,IAC9B,IAAIi7iC,EAAuBC,EAAwBC,EAAuBC,EAAuBC,EACjG,IAAI,MACArsjC,EAAK,sBACLssjC,GACEt7iC,EACJu7iC,GAAe34iC,EAAAA,GAAAA,GAA8B5C,EAAMR,IACrD,MAAM,MACJyD,EACA8mB,UAAWgwhC,EAAc,UACzBv8iC,EAAS,GACTmO,EAAE,OACFqkB,EAAM,cACNuggC,EAAa,SACb3G,EAAQ,KACRz0hC,EAAI,MACJkd,EAAK,SACLmggC,EAAQ,SACRligC,EAAQ,SACRnO,EAAQ,UACR635B,EAAS,WACTq1H,EAAU,iBACVud,GACE59iC,EACEyw9B,EAAQy4E,KACRsjB,EAAmB9ljC,EAAAA,OAAa,MAChC+2iC,EAAe/2iC,EAAAA,OAAa,MAC5BushC,GAAUj3/B,EAAAA,GAAKA,KACfywhC,EAA4K,OAAzJR,EAA0C,MAAlBlB,GAA+E,OAApDmB,EAAyBnB,EAAehviC,cAAmB,EAASmwiC,EAAuBpqpB,SAAkBmqpB,GACnL,KACJxyhC,EAAI,QACJgg5B,EAAO,UACP6sI,EAAS,YACT9C,EAAW,kBACXsD,EAAiB,mBACjBpJ,EACA4F,WAAYoJ,GACV3G,IAAUlyiC,EAAAA,GAAAA,GAAS,CAAC,EAAG04iC,EAAc,CACvCvsjC,QACAwjhC,SAAUgpC,EACVvG,eAAe,EACfD,oBAAqB,CAAC,EACtB5F,eAAgB,aAEZuM,EAAmE,OAAjDR,EAAwBl4iC,EAAM24iC,gBAA0BT,EAAwBU,GAClGl8B,EAAgBvmE,GAAa,CAC/Bn4D,YAAa06J,EACbhmG,kBAAqC,MAAlBokG,OAAyB,EAASA,EAAe6B,eACpElmG,gBAAiB,CACfjn9B,SAAU,OAEZmR,WAAY5Q,IAEd8sjC,GAAsBl5iC,EAAAA,GAAAA,GAA8B+8gC,EAAe3mgC,IAC/D+iiC,EAAuE,OAAnDX,EAAwBn4iC,EAAM+4iC,kBAA4BZ,EAAwBp3E,GACtGi4E,EAAiB7iG,GAAa,CAChCn4D,YAAa86J,EACbpmG,kBAAqC,MAAlBokG,OAAyB,EAASA,EAAeiC,iBACpEtmG,gBAAiB,CACfvz8B,SAAUA,GAAYmO,EACtBqpS,QAASlxR,EAAOgg5B,EAAQy4D,QAAUz4D,EAAQ05G,OAC1C,aAAcm5B,EAAsBI,EAAiBrujC,MAAOoy9B,GAC5Dz65B,KAAM82/B,EAAoBrtjC,UAE5BmR,WAAY5Q,IAEdktjC,GAAwBt5iC,EAAAA,GAAAA,GAA8Bq5iC,EAAgBjliC,IAClEmliC,EAAiBl5iC,EAAMm5iC,eACvBC,EAAQp5iC,EAAMu+C,MACd8w/B,EAAal5F,GAAa,CAC9Bn4D,YAAao7J,EACb1mG,kBAAqC,MAAlBokG,OAAyB,EAASA,EAAev4/B,MACpEk05B,iBAAiB7y8B,EAAAA,GAAAA,GAAS,CAAC,EAAG64iC,EAAkBD,GAAmB,CACjEpwhC,GAAI42/B,GACH,CACD3xgC,WACAnO,WACA3E,YACAmO,KACAqkB,SACAuggC,gBACA3G,WACAv3gC,QACAld,OACA6k6B,UAAWA,IAAchr6B,EAAMy5B,KAC/BF,UAASE,QAAc19B,IAEzB6U,WAAY5Q,IAIVsmjC,IACFhD,EAAWltB,YAAavihC,EAAAA,GAAAA,GAAS,CAAC,EAAGyviC,EAAWltB,WAAY,CAC1DnvhC,IAAKw2iC,IACHz9iC,EAAMstjC,mBAAqB,CAC7B,CAAC,GAADznjC,OAAIinjC,EAAoBrtjC,SAAQ,eAA2BgV,EAAAA,GAAAA,KAAKk4iC,GAAgB94iC,EAAAA,GAAAA,GAAS,CAAC,EAAGi5iC,EAAqB,CAChH7sjC,UAAuBwU,EAAAA,GAAAA,KAAKs4iC,GAAkBl5iC,EAAAA,GAAAA,GAAS,CAAC,EAAGq5iC,EAAuB,CAChFjtjC,UAAuBwU,EAAAA,GAAAA,KAAK04iC,GAAgBt5iC,EAAAA,GAAAA,GAAS,CAAC,EAAqB,MAAlBk3iC,OAAyB,EAASA,EAAeqC,0BAKlH,MAAMG,GAAgB15iC,EAAAA,GAAAA,GAAS,CAC7BqqtB,UAAWjqtB,EAAMiqtB,UACjBsvV,UAAWv5iC,EAAMu5iC,UACjBC,YAAax5iC,EAAMw5iC,aAClBnK,EAAWrviC,OACR+mrB,EAA2C,OAAjCqxX,EAAgBp4iC,EAAMkxD,QAAkBkn/B,EAAgBP,GAClE5kC,GAAiBvr/B,EAAAA,GAAAA,GAAW6whC,EAAkBlJ,EAAW9/B,SAAUA,GACzE,IAAIkqC,EAAez6B,EACfw5B,IAEAiB,EADErqiC,EACa,GAAHxd,OAAMothC,EAAO,eAEVl3hC,GAGnB,MAAMg/B,GAAYlnB,EAAAA,GAAAA,GAAS,CAAC,EAAGk3iC,EAAgB,CAC7ChviC,SAASlI,EAAAA,GAAAA,GAAS,CAAC,EAAqB,MAAlBk3iC,OAAyB,EAASA,EAAehviC,QAAS,CAC9E87gC,QAAS5E,IAEXkb,QAAQt6hC,EAAAA,GAAAA,GAAS,CACf,kBAAmB65iC,GACA,MAAlB3C,OAAyB,EAASA,EAAe5c,UAyBtD,MAAO,CACLwf,aAxBmBA,KAAmBv5iC,EAAAA,GAAAA,MAAM+xhC,GAAsB,CAClE9F,WAAYA,EACZpgiC,SAAU,EAAcwU,EAAAA,GAAAA,KAAK44iC,GAAOx5iC,EAAAA,GAAAA,GAAS,CAAC,EAAGyviC,EAAY,CAC3DrviC,MAAOs5iC,EACPxyhC,UAAWA,EACXyo/B,SAAU0D,MACMzygC,EAAAA,GAAAA,KAAK2oiC,IAAevpiC,EAAAA,GAAAA,GAAS,CAC7CW,KAAM,SACNwupB,UAAW,eACX2rX,SAAU8uB,EAAa91iC,SACtB8x6B,EAAS,CACVhg5B,KAAMA,EACNxlB,MAAOA,EACP8mB,UAAWA,EACX2ihC,mBAAoBA,EACpBE,iBAAkBA,EAClB39iC,UAAuBwU,EAAAA,GAAAA,KAAKumrB,GAAQnnrB,EAAAA,GAAAA,GAAS,CAAC,EAAG2viC,EAA0B,MAAbzohC,OAAoB,EAASA,EAAUoqC,OAAQ,CAC3GlxD,MAAOA,EACP8mB,UAAWA,EACX96B,SAAU6mjC,aAMf,ECtKUxxB,IAAoBhmhC,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACxEvF,EAAG,mBACD,iBAKS0+iC,IAAgBt+iC,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACpEvF,EAAG,6DACD,aAKS2+iC,IAAiBv+iC,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACrEvF,EAAG,2DACD,cAKS4+iC,IAAex+iC,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACnEvF,EAAG,6IACD,YAKS6+iC,IAAYz+iC,EAAAA,GAAaA,IAAe8E,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACzEzG,SAAU,EAAcwU,EAAAA,GAAAA,KAAK,OAAQ,CACnCvF,EAAG,qJACYuF,EAAAA,GAAAA,KAAK,OAAQ,CAC5BvF,EAAG,gDAEH,SAuBS8+iC,KAlBgB1+iC,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACpEvF,EAAG,wKACD,cAKoBI,EAAAA,GAAaA,IAAe8E,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACxEzG,SAAU,EAAcwU,EAAAA,GAAAA,KAAK,OAAQ,CACnCvF,EAAG,qJACYuF,EAAAA,GAAAA,KAAK,OAAQ,CAC5BvF,EAAG,gDAEH,SAKqBI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CAChEvF,EAAG,0GACD,UC3DS++iC,GAAgBv+iC,IAC3B,MAAM+g9B,EAAQy4E,KACR7I,EAAa+I,KACbx1E,EAAUo1E,KAEV1lJ,EAA4B,QADpB02D,KACM1j8B,WACd,aACJkpiC,EAAY,kBACZ0O,EAAiB,UACjB5yB,EAAS,UACT18gC,EAAS,cACTuviC,EACAA,eACE9vjC,MAAO2ohC,EAAS,aAChBj4/B,EACAo0gC,cAAeirB,EAAiB,SAChC59D,EAAQ,OACRxv9B,EAAM,cACNuggC,EAAgB,QAChBkf,iBAAkBC,EAAoB,yBACtCC,EAAwB,0BACxBnf,GAA4B,EAC5B5G,SAAU2kB,IAEV7viC,GACE,SACJkrhC,EACAv8hC,MAAOgwjC,EAAmB,kBAC1BxO,GACEP,GAAqB,CACvB1kB,SAAU2kB,EACVlhjC,MAAO2ohC,EACPj4/B,eACAyh+B,WACAgvD,iBAEIhhB,EAA0B93hC,EAAAA,SAAc,I/GybX4njC,EAAC79F,EAAOmqE,KAC3C,MAAM74I,EAAQ0uE,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GAC1C2zB,EAAY99F,EAAM89F,UAAUxsK,GAC5Bg8I,EAAWttE,EAAMstE,SAASh8I,IAC1B,eACJysK,EAAc,aACdnwB,GACEpD,GAAgBxqE,EAAO1uE,GAAO3l4B,QAAO,CAACC,EAAKiE,KAC7C,MAAMwgB,EAAc2v7B,EAAMg+F,eAAenuiC,GACzC,OAAIwgB,EAAczkB,EAAImyiC,eACb,CACLA,eAAgB1thC,EAChBu9/B,aAAc/9gC,GAGXjE,CAAG,GACT,CACDmyiC,eAAgB,EAChBnwB,aAAc,OAEhB,MAAO,CACL3ggC,KAAM1sB,IAAA,IAAC,OACLgwB,GACDhwB,EAAA,MAAM,CACLmpqB,QAAS,EACTD,QAASinX,GAAsB1wE,EAAOmqE,EAAU55/B,GAAU,KAAO,GAClE,EACD1gB,MAAOA,KAAA,CACL65pB,QAAS,EAETD,QAASu2S,EAAMvx7B,SAASqvhC,GAAa,IAEvCrrhC,IAAKzzB,IAAA,IAAC,YACJ034B,GACD134B,EAAA,MAAM,CACL0qqB,QAAS,EACTD,QAAwB,MAAfitO,GAAuBspE,EAAMzw7B,QAAQmn3B,GAAespE,EAAMg+F,eAAetnK,GAAeqnK,EACjGnwB,aAAcA,EACf,EACD78I,QAASz43B,IAGH,IAHI,OACRiY,EAAM,YACN6y7B,GACD9q8B,EACC,GAAoB,UAAhB8q8B,EAAyB,CAC3B,MAAMtxE,EAAak7I,GAAiBhtE,EAAOmqE,EAAU55/B,GAAQz8B,IAAIkiB,QACjE,MAAO,CACL0zpB,QAASr8qB,KAAK8mB,OAAO293B,GACrBroO,QAASp8qB,KAAK6mB,OAAO493B,GAEzB,CACA,MAAO,CACLpoO,QAAS,EACTD,QAAS,EACV,EAEHn2oB,MAAOm5xB,IAED,IAFE,OACNl8xB,GACDk8xB,EACC,MAAMwxP,EAAgBj+F,EAAMjx7B,SAASu+/B,GAErC,OADoBttE,EAAMotE,eAAeptE,EAAMstE,SAASh8I,GAAQ/g3B,KAAY0thC,EAAclmjC,WAEjF,CACL2xqB,QAAS,EACTD,QAASzzpB,OAAOgq8B,EAAMotE,eAAeptE,EAAM8qE,WAAWx5I,GAAQ/g3B,KAG3D,CACLm5oB,QAAS,EACTD,QAASw0Y,EACV,EAEHxqhC,QAASA,KAAA,CACPi2oB,QAAS,EAETD,QAASu2S,EAAM/w7B,WAAWq+/B,KAE5B55/B,QAASA,KAAA,CACPg2oB,QAAS,EAETD,QAASu2S,EAAM7w7B,WAAWm+/B,KAE5B78/B,SAAUA,KAAA,CACRi5oB,QAAS,EACTD,QAAS,IAEZ,E+G9gBmDo0Y,CAAsB79F,EAAOmqE,IAAW,CAACnqE,EAAOmqE,IAC9F0K,EAAuB5+hC,EAAAA,aAAkB,SAACrI,GAAK,IAAEswjC,EAAgB1mjC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,KAAI,OAAKimjC,EAAkB5oB,qBAAqB70E,EAAOpy9B,EAAOswjC,EAAkBrrK,GAAOjj4B,GAAQihhC,GAAwB7wE,EAAOmqE,EAAUyF,EAAYr//B,EAAQ3gB,EAAMkhhC,EAAeC,EAA2Bl+I,IAAO,GAAE,CAAC4qK,EAAmBlthC,EAAQq//B,EAAY/8I,EAAOk+I,EAA2B/wE,EAAO8wE,EAAe3G,IACzXlu2B,EAAchmL,EAAAA,SAAc,IAAMwnjC,EAAkBzoB,wBAAwBH,EAAqBka,EAAazb,YAAazgJ,IAAQ,CAAC4qK,EAAmB5oB,EAAsBka,EAAazb,WAAYzgJ,KACrMjo3B,EAAO29pB,GAAYtyrB,EAAAA,UAAe,KACvC,MAAMw5qB,EAAWolX,EAAqB+oB,GACtCtrB,KACA,MAAM6rB,EAA4B,CAChC1uY,WACA7hrB,MAAOgwjC,EACPxoB,eAAgB2Z,EAAazb,WAC7B8qB,oBAAqB,MAEjB3xB,EhH7C+Bh9W,IAAYpirB,KAAK6mB,OAAOu7pB,EAAS37qB,KAAI67qB,IAC5E,IAAI0uY,EACJ,OAA2E,OAAnEA,EAAwB9xB,GAAyB58W,EAAQrgrB,OAAiB+ujC,EAAwB,CAAC,KgH2CrFC,CAA0B7uY,GACxC2lX,EAAiB2Z,EAAavb,yBAAyB,CAC3Dd,cAAeirB,EACf/vjC,MAAOgwjC,EACP59F,QACAzw9B,MAAOmujC,EACPjxB,cACAtC,aAEF,OAAO/mhC,EAAAA,GAAAA,GAAS,CAAC,EAAG+6iC,EAA2B,CAC7C/oB,kBACA,KAEG4a,EAAkBuO,IAA4B9zhC,EAAAA,GAAAA,GAAc,CACjEC,WAAYulhC,EACZ1xiC,QAAS,KACT7I,KAAM,WACNk1B,MAAO,2BAEHulhC,EAAsBoC,IAC1BgM,EAAyBhM,GACG,MAA5BrC,GAAoCA,EAAyBqC,GAC7DhqX,GAAS24E,IAAa99vB,EAAAA,GAAAA,GAAS,CAAC,EAAG89vB,EAAW,CAC5Cs9S,qBAAsB,QACrB,EAECC,EAAyBxojC,EAAAA,SAAc,KAC3C,GAAwB,MAApB+5iC,EACF,OAAO,KAET,GAAyB,QAArBA,EACF,MAAO,CACL7/U,WAAY,EACZ5zsB,SAAUqO,EAAM6kpB,SAAS5krB,OAAS,EAClC6zjC,+BAA+B,GAGnC,GAAgC,kBAArB1O,EACT,MAAO,CACL7/U,WAAY6/U,EACZzzhC,SAAUyzhC,GAGd,GAAgC,kBAArBA,EAA+B,CACxC,MAAM2O,EAAuB/zhC,EAAM6kpB,SAAShue,WAAUkue,GAAWA,EAAQrgrB,OAAS0gjC,IAClF,MAAO,CACL7/U,WAAYwuV,EACZpiiC,SAAUoiiC,EAEd,CACA,OAAO3O,CAAgB,GACtB,CAACA,EAAkBplhC,EAAM6kpB,WACtBmvY,EAAer+iC,IAIf,IAJgB,MACpB3S,EAAK,eACLwniC,EAAc,SACd3lX,GACDlvqB,EAOC,GANAgorB,GAAS24E,IAAa99vB,EAAAA,GAAAA,GAAS,CAAC,EAAG89vB,EAAW,CAC5CzxF,WACA7hrB,QACAwniC,iBACAgpB,oBAAqB,SAEnBrP,EAAa7a,eAAel0E,EAAOp17B,EAAMh9B,MAAOA,GAClD,OAEF,MAAM4rC,EAAU,CACdo1gC,gBAAiBzgiC,EAAU,CACzBg18B,UACAv19B,QACA2B,OAAO6T,EAAAA,GAAAA,GAAS,CAAC,EAAGs6iC,EAAe,CACjC9vjC,QACAu8hC,gBAINilB,EAAkBxhjC,EAAO4rC,EAAQ,EAE7BqlhC,EAAkBA,CAAChkW,EAAcikW,KACrC,MAAM7vB,EAAc,IAAIrkgC,EAAM6kpB,UAK9B,OAJAw/W,EAAYp0U,IAAgBz3sB,EAAAA,GAAAA,GAAS,CAAC,EAAG6rhC,EAAYp0U,GAAe,CAClEjttB,MAAOkxjC,EACPz9mB,UAAU,IAEL0tlB,GAAgCE,EAAap8I,EAAM,EA8H5D,OAxBA584B,EAAAA,WAAgB,KACd,MAAMw5qB,EAAWolX,EAAqBjqgC,EAAMh9B,OAC5C0kiC,KACA/pW,GAAS24E,IAAa99vB,EAAAA,GAAAA,GAAS,CAAC,EAAG89vB,EAAW,CAC5CzxF,cACC,GACF,CAACl/oB,EAAQyv7B,EAAMpy7B,SAElB33B,EAAAA,WAAgB,KACd,IAAI8ojC,GAAe,EAIjBA,GAHGhQ,EAAa7a,eAAel0E,EAAOp17B,EAAMh9B,MAAOgwjC,IAGpC7O,EAAava,YAAYx0E,EAAOp17B,EAAMh9B,SAAWmhjC,EAAava,YAAYx0E,EAAO49F,GAE9FmB,GACFx2X,GAAS24E,IAAa99vB,EAAAA,GAAAA,GAAS,CAAC,EAAG89vB,EAAW,CAC5CtzwB,MAAOgwjC,EACPxoB,eAAgBqoB,EAAkB9oB,qBAAqB30E,EAAO49F,EAAqB18S,EAAUk0R,gBAC7F3lX,SAAUolX,EAAqB+oB,MAEnC,GACC,CAACA,IAEG,CACLhzhC,QACA6zhC,yBACAtO,sBACA6O,WAhIiBA,KACjBJ,EAAa,CACXhxjC,MAAOmhjC,EAAazb,WACpB8B,eAAgBxqgC,EAAMwqgC,eACtB3lX,SAAUolX,EAAqBka,EAAazb,aAC5C,EA4HF2rB,mBA1HyBA,KACzB,GAA8B,MAA1BR,EACF,OAEF,MAAMS,EAAgBt0hC,EAAM6kpB,SAASgvY,EAAuBtuV,YACtDgvV,EAAoB1B,EAAkBtoB,qBAAqBn1E,EAAOp17B,EAAOs0hC,GAEzEE,EAD6BD,EAAkB9pB,YAAYzqgC,EAAM6kpB,UAAU54pB,QAAO84pB,GAA6B,KAAlBA,EAAQ/hrB,QAAc/C,UAC9B,KAAxBq0jC,EAActxjC,MAAe,EAAI,GAC9FqhiC,EAAc4vB,EAAgBJ,EAAuBtuV,WAAY,IACjEolU,EAAgB6pB,EAA6B,KAAOp/F,EAAMpw8B,KAAK,IAAIue,KAAK,KACxEg5+B,EAAYg4C,EAAkB7pB,8BAA8BC,IAC5C,MAAjBA,IAA0Bv1E,EAAMzw7B,QAAQgmgC,OAA+C,MAA1B4pB,EAAkBvviC,OAAiBow8B,EAAMzw7B,QAAQ4vhC,EAAkBvviC,OACnIgviC,GAAax7iC,EAAAA,GAAAA,GAAS,CAAC,EAAG+jgC,EAAW,CACnC13V,SAAUw/W,KAGZ1mW,GAAS24E,IAAa99vB,EAAAA,GAAAA,GAAS,CAAC,EAAG89vB,EAAWimQ,EAAW,CACvD13V,SAAUw/W,EACVmvB,oBAAqB,QAEzB,EAuGAiB,mBApFyBrgjC,IAIrB,IAJsB,cAC1BkgjC,EAAa,gBACbJ,EAAe,sBACfQ,GACDtgjC,EAIKsgjC,GAAyBb,GAA0BA,EAAuBtuV,WAAavlsB,EAAM6kpB,SAAS5krB,OAAS,EACjHsljC,EAAoBsO,EAAuBtuV,WAAa,GAC/CsuV,GAA0BA,EAAuBtuV,aAAesuV,EAAuBliiC,UAChG4zhC,EAAoBsO,EAAuBtuV,YAM7C,MAAMgvV,EAAoB1B,EAAkBtoB,qBAAqBn1E,EAAOp17B,EAAOs0hC,GACzEjwB,EAAc4vB,EAAgBJ,EAAuBtuV,WAAY2uV,GACjES,EAAwBJ,EAAkB9pB,YAAYpG,GACtDsG,E/GiP6BiqB,EAACx/F,EAAOvwS,KAI7C,MAAMgwY,EAAqBhwY,EAAS75Y,MAAK+5Y,GAA4B,QAAjBA,EAAQrgrB,OACtDowjC,EAAiB,GACjBC,EAAgB,GACtB,IAAK,IAAIlzjC,EAAI,EAAGA,EAAIgjrB,EAAS5krB,OAAQ4B,GAAK,EAAG,CAC3C,MAAMkjrB,EAAUF,EAAShjrB,GACNgzjC,GAAuC,YAAjB9vY,EAAQrgrB,OAE/CowjC,EAAet0jC,KAAKukrB,EAAQp/oB,QAC5BovhC,EAAcv0jC,KAAKsjiC,GAAuB/+W,EAAS,cAEvD,CACA,MAAMiwY,EAAyBF,EAAerujC,KAAK,KAC7CwujC,EAA0BF,EAActujC,KAAK,KACnD,OAAO2u9B,EAAMzu9B,MAAMsujC,EAAyBD,EAAuB,E+GlQ3CJ,CAAwBx/F,EAAOu/F,GACrD,IAAIrqiC,EACAg8hC,EAOJ,GAAqB,MAAjB3b,GAAyBv1E,EAAMzw7B,QAAQgmgC,GAAgB,CACzD,MAAM3L,EAAa4I,GAA2BxyE,EAAOmqE,EAAUoL,EAAegqB,EAAuBJ,EAAkBzsB,eAAe,GACtIx9gC,EAASiqiC,EAAkB7pB,8BAA8B1L,GACzDsnB,GAAgB,CAClB,MACEh8hC,EAASiqiC,EAAkB7pB,8BAA8BC,GACzD2b,GAAkC,MAAjB3b,IAA0Bv1E,EAAMzw7B,QAAQgmgC,OAA+C,MAA1B4pB,EAAkBvviC,OAAiBow8B,EAAMzw7B,QAAQ4vhC,EAAkBvviC,OAMnJ,OAAIshiC,EACK0N,GAAax7iC,EAAAA,GAAAA,GAAS,CAAC,EAAG8R,EAAQ,CACvCu6pB,SAAUw/W,KAGP1mW,GAAS24E,IAAa99vB,EAAAA,GAAAA,GAAS,CAAC,EAAG89vB,EAAWhsvB,EAAQ,CAC3Du6pB,SAAUw/W,EACVmvB,oBAAqB,QACpB,EAoCH0B,wBAtG8BtyB,IAC9B,MAQMxigC,EAAWyyhC,EAAkBjoB,cAAchI,EAAU5igC,EAAMwqgC,gBAR5C2qB,CAACvg8B,EAASkz6B,KAC7B,MAAM9ihC,EAAOow8B,EAAMzu9B,MAAMiuH,EAASjvF,GAClC,GAAY,MAAR3gB,IAAiBow8B,EAAMzw7B,QAAQ3f,GACjC,OAAO,KAET,MAAM6/pB,EAAWohX,GAAwB7wE,EAAOmqE,EAAUyF,EAAYr//B,EAAQ3gB,EAAMkhhC,EAAeC,EAA2Bl+I,GAC9H,OAAO2/I,GAA2BxyE,EAAOmqE,EAAUv6gC,EAAM6/pB,EAAUijX,GAAe,EAAM,IAGpFstB,EAAoBvC,EAAkB9oB,qBAAqB30E,EAAOh17B,EAAUJ,EAAMwqgC,gBACxFwpB,EAAa,CACXhxjC,MAAOo9B,EACPoqgC,eAAgB4qB,EAChBvwY,SAAUolX,EAAqB7pgC,EAAUJ,EAAM6kpB,WAC/C,EAwFFwwY,uBAnC6B7B,GAAuB71X,GAAS54rB,IAAQyT,EAAAA,GAAAA,GAAS,CAAC,EAAGzT,EAAM,CACxFyujC,0BAmCArwB,0BACA9x2B,cACAku2B,WACD,ECzPG+1B,GAA8BlhgC,GAAkC,MAAtBA,EAASmhgC,UAS5CC,GAA2B7/iC,IAMlC,IANmC,SACvCkvqB,EAAQ,mBACR4vY,EAAkB,wBAClBtxB,EAAuB,uBACvBkyB,EAAsB,SACtB91B,GACD5phC,EACC,MAAMy/8B,EAAQy4E,MACPpq5B,EAAOgy6B,GAAYpqjC,EAAAA,SAAe,MACnCqqjC,GAAattG,EAAAA,GAAAA,IAAiB,IAAMqtG,EAAS,QACnDpqjC,EAAAA,WAAgB,KACd,IAAIsqjC,EACS,MAATly6B,IAA4E,OAAzDky6B,EAAwB9wY,EAASphiB,EAAMwskB,oBAAyB,EAAS0lW,EAAsBjxjC,QAAU++I,EAAM0+4B,aACpIuzB,GACF,GACC,CAAC7wY,EAAUphiB,EAAOiy6B,IACrBrqjC,EAAAA,WAAgB,KACd,GAAa,MAATo4I,EAAe,CACjB,MAAM3mH,EAAUI,YAAW,IAAMw4hC,KA5BR,KA6BzB,MAAO,KACLl2hC,OAAOvC,aAAaH,EAAQ,CAEhC,CACA,MAAO,MAAQ,GACd,CAAC2mH,EAAOiy6B,IACX,MAAME,EAAaA,CAAAxhjC,EAGhByhjC,EAAuCC,KAAsB,IAH5C,WAClBC,EAAU,aACV9lW,GACD77sB,EACC,MAAM4hjC,EAAkBD,EAAWpljC,cAC7B2jjC,EAAgBzvY,EAASorC,GAI/B,GAAa,MAATxskB,KAAmBqy6B,GAAqBA,EAAkBry6B,EAAMzgJ,SAAWygJ,EAAMwskB,eAAiBA,EAAc,CAClH,MAAMgmW,EAAyB,GAAHzrjC,OAAMi5I,EAAMzgJ,OAAKwH,OAAGwrjC,GAC1CE,EAAgBL,EAAsCI,EAAwB3B,GACpF,IAAKgB,GAA4BY,GAM/B,OALAT,EAAS,CACPxlW,eACAjttB,MAAOizjC,EACP9zB,YAAamyB,EAAc5vjC,OAEtBwxjC,CAEX,CACA,MAAMA,EAAgBL,EAAsCG,EAAiB1B,GAC7E,OAAIgB,GAA4BY,KAAmBA,EAAcX,WAC/DG,IACO,OAETD,EAAS,CACPxlW,eACAjttB,MAAOgzjC,EACP7zB,YAAamyB,EAAc5vjC,OAEzB4wjC,GAA4BY,GACvB,KAEFA,EAAa,EAyJtB,MAAO,CACLC,uBAf4B/tG,EAAAA,GAAAA,IAAiB/z8B,IAC7C,MAAMigjC,EAAgBzvY,EAASxwqB,EAAO47sB,cAEhC77pB,EADyC,MAAtB//C,EAAO0hjC,aAAuB3qiC,OAAOioB,MAAMjoB,OAAO/W,EAAO0hjC,aA3ExD1hjC,KAC1B,MAAM+hjC,EAAqBA,CAACC,EAAYtxY,KACtC,MAAMuxY,EAAmBlriC,OAAO,GAAD5gB,OAAI6rjC,IAC7BtzB,EAAoBI,EAAwBp+W,EAAQrgrB,MAAM,CAC9Don5B,YAAa,KACbnm3B,OAAQo/oB,EAAQp/oB,OAChB6y7B,YAAazzS,EAAQyzS,cAEvB,GAAI89F,EAAmBvzB,EAAkBlkX,QACvC,MAAO,CACL02Y,WAAW,GAOf,GAAIe,EAAmBvzB,EAAkBjkX,QACvC,MAAO,CACLy2Y,WAAW,GAGf,MAAMb,EAAwBtpiC,OAAO,GAAD5gB,OAAI6rjC,EAAU,MAAOtzB,EAAkBlkX,SAAWw3Y,EAAWp2jC,SAAW8iiC,EAAkBlkX,QAAQ1xqB,WAAWlN,OAEjJ,MAAO,CACLqmiC,aAFsBxD,GAAuB1tE,EAAOmqE,EAAU+2B,EAAkBvzB,EAAmBh+W,GAGnG2vY,wBACD,EA4CH,OAAOkB,EAAWvhjC,GA1C4BwhjC,CAACQ,EAAY/B,KACzD,GAAkC,UAA9BA,EAAc97F,aAAyD,sBAA9B87F,EAAc97F,YACzD,OAAO49F,EAAmBC,EAAY/B,GAKxC,GAA2B,UAAvBA,EAAc5vjC,KAAkB,CAClC,MAAMs/hC,EAA0B+B,GAAkC3wE,EAAOmqE,EAAU,QAAS,QAAS,MAC/Fnr+B,EAAWgigC,EAAmBC,EAAY,CAC9C3xjC,KAAM4vjC,EAAc5vjC,KACpBihC,OAAQ,KACRq+/B,0BACAf,wBAAwB,EACxBzqE,YAAa,QACblgwB,UAAW,IAEb,GAAIg91B,GAA4BlhgC,GAC9B,OAAOA,EAET,MAAMmigC,EAAiB3wB,GAAyBxwE,EAAOhh6B,EAASky+B,aAAc,KAAMguB,EAAc3uhC,QAClG,OAAOntB,EAAAA,GAAAA,GAAS,CAAC,EAAG47C,EAAU,CAC5Bky+B,aAAciwB,GAElB,CAIA,GAA2B,YAAvBjC,EAAc5vjC,KAAoB,CACpC,MAAM0vD,EAAWgigC,EAAmBC,EAAY/B,GAChD,GAAIgB,GAA4BlhgC,GAC9B,OAAOA,EAET,MAAMmigC,EAAiBn0B,GAAiBhtE,EAAOmqE,EAAU+0B,EAAc3uhC,QAAQva,OAAOgpC,EAASky+B,cAAgB,GAC/G,OAAO9thC,EAAAA,GAAAA,GAAS,CAAC,EAAG47C,EAAU,CAC5Bky+B,aAAciwB,GAElB,CACA,MAAO,CACLhB,WAAW,EACZ,IAE8Dc,IAAejriC,OAAOioB,MAAMjoB,OAAOiriC,KAAa,EAK7EG,CAAoBnijC,GA5I/BA,KACzB,MAAMoijC,EAAsBA,CAAC9whC,EAAQjmC,EAAS22jC,KAC5C,MAAMK,EAAiBh3jC,EAAQusB,QAAOgmnB,GAAUA,EAAOthoB,cAAcolR,WAAWsgyB,KAChF,OAA8B,IAA1BK,EAAez2jC,OACV,CACLs1jC,WAAW,GAGR,CACLjvB,aAAcowB,EAAe,GAC7BhC,sBAAiD,IAA1BgC,EAAez2jC,OACvC,EAEG02jC,EAAqCA,CAACN,EAAY/B,EAAesC,EAAgBC,KACrF,MAAMC,EAAanxhC,GAAU88/B,GAAwBrtE,EAAOmqE,EAAU+0B,EAAc5vjC,KAAMihC,GAC1F,GAAkC,WAA9B2uhC,EAAc97F,YAChB,OAAOi+F,EAAoBnC,EAAc3uhC,OAAQmxhC,EAAWxC,EAAc3uhC,QAAS0whC,GAMrF,GAAIO,GAAyC,MAAvBC,GAA0G,WAA3E70B,GAAoC5sE,EAAOwhG,GAAgBp+F,YAA0B,CACxI,MAAMu+F,EAAkBD,EAAWF,GAC7BxigC,EAAWqigC,EAAoBG,EAAgBG,EAAiBV,GACtE,OAAIf,GAA4BlhgC,GACvB,CACLmhgC,WAAW,IAGR/8iC,EAAAA,GAAAA,GAAS,CAAC,EAAG47C,EAAU,CAC5Bky+B,aAAcuwB,EAAoBzigC,EAASky+B,aAAcywB,IAE7D,CACA,MAAO,CACLxB,WAAW,EACZ,EA0BH,OAAOK,EAAWvhjC,GAxB4BwhjC,CAACQ,EAAY/B,KACzD,OAAQA,EAAc5vjC,MACpB,IAAK,QACH,CACE,MAAMmyjC,EAAsBG,GAAiBpxB,GAAyBxwE,EAAO4hG,EAAe5hG,EAAM7s7B,QAAQtjB,MAAOqviC,EAAc3uhC,QAC/H,OAAOgxhC,EAAmCN,EAAY/B,EAAel/F,EAAM7s7B,QAAQtjB,MAAO4xiC,EAC5F,CACF,IAAK,UACH,CACE,MAAMA,EAAsBA,CAACG,EAAeD,IAAoBA,EAAgBzzjC,QAAQ0zjC,GAAe7pjC,WACvG,OAAOwpjC,EAAmCN,EAAY/B,EAAel/F,EAAM7s7B,QAAQy+C,QAAS6v+B,EAC9F,CACF,IAAK,WAED,OAAOF,EAAmCN,EAAY/B,GAE1D,QAEI,MAAO,CACLiB,WAAW,GAGnB,GAE8D,EA8EE0B,CAAmB5ijC,GACrE,MAAZ+/C,EACFihgC,EAAuB,MAEvBZ,EAAmB,CACjBH,gBACAJ,gBAAiB9//B,EAASky+B,aAC1BouB,sBAAuBtggC,EAASsggC,uBAEpC,IAIAwC,oBAAqBxB,EACtB,EC3PGvgjC,GAAY,CAAC,UAAW,YAAa,UAAW,SAAU,YAAa,UAAW,QAAS,YAAa,UAAW,YAY5GgijC,GAAW9ijC,IACtB,MAAM+g9B,EAAQy4E,MACR,MACJ7tgC,EAAK,uBACL6zhC,EAAsB,oBACtBtO,EAAmB,WACnB6O,EAAU,mBACVC,EAAkB,mBAClBI,EAAkB,wBAClBS,EAAuB,uBACvBG,EAAsB,wBACtBlyB,EAAuB,YACvB9x2B,EAAW,SACXku2B,GACEqzB,GAAcv+iC,IAEd8zgC,SAAUsD,EAAY,cACtBqnC,EACAA,eAAe,SACb7siC,GAAW,EAAK,iBAChBmxiC,EAAgB,YAChB1zB,GAEF2zB,gBAAgB,QACd/nwB,EAAO,UACPo3pB,EAAS,QACTlg8B,EAAO,OACPC,EAAM,UACNqg8B,EAAS,QACTwwG,EAAO,MACPt7iC,EAAK,UACLu7iC,EAAS,QACT3P,EAAO,SACP9viC,GACD,kBACD+6iC,EAAiB,aACjB1O,EAAY,UACZ5giC,GACElP,EACJmjjC,GAAsBj/iC,EAAAA,GAAAA,GAA8BlE,EAAOgjjC,eAAgBlijC,KACvE,sBACJghjC,EAAqB,oBACrBe,GACE1B,GAAyB,CAC3B3wY,SAAU7kpB,EAAM6kpB,SAChB4vY,qBACAtxB,0BACAkyB,yBACA91B,aAEIpX,EAAW98gC,EAAAA,OAAa,MACxB498B,GAAY3o7B,EAAAA,GAAAA,GAAWmr/B,EAActD,GACrCsvC,EAAkBpsjC,EAAAA,YAAa3K,GAE/Bun5B,EAA4B,QADpB02D,KACM1j8B,UACdy8iC,EAAersjC,EAAAA,SAAc,IjHklBNssjC,EAAC9yY,EAAUojO,KACxC,MAAMz70B,EAAY,CAAC,EACnB,IAAKy70B,EASH,OARApjO,EAAS1jrB,SAAQ,CAAC2hC,EAAGt/B,KACnB,MAAMkguB,EAAsB,IAAVlguB,EAAc,KAAOA,EAAQ,EACzCmguB,EAAanguB,IAAUqhrB,EAAS5krB,OAAS,EAAI,KAAOuD,EAAQ,EAClEgpE,EAAUhpE,GAAS,CACjBkguB,YACAC,aACD,IAEI,CACLn3pB,YACA+4pB,WAAY,EACZ5zsB,SAAUkzpB,EAAS5krB,OAAS,GAGhC,MAAM23jC,EAAU,CAAC,EACXC,EAAU,CAAC,EACjB,IAAIC,EAAuB,EACvBC,EAAqB,EACrBC,EAAWnzY,EAAS5krB,OAAS,EACjC,KAAO+3jC,GAAY,GAAG,CACpBD,EAAqBlzY,EAAShue,WAE9B,CAACkue,EAASvhrB,KACR,IAAIy0jC,EACJ,OAAOz0jC,GAASs0jC,IAA2E,OAAjDG,EAAwBlzY,EAAQ0/W,mBAAwB,EAASwzB,EAAsBx8rB,SAAS,OAEjH,QAAzBspT,EAAQ0/W,YAAsB,KAEJ,IAAxBszB,IACFA,EAAqBlzY,EAAS5krB,OAAS,GAEzC,IAAK,IAAI4B,EAAIk2jC,EAAoBl2jC,GAAKi2jC,EAAsBj2jC,GAAK,EAC/Dg2jC,EAAQh2jC,GAAKm2jC,EACbJ,EAAQI,GAAYn2jC,EACpBm2jC,GAAY,EAEdF,EAAuBC,EAAqB,CAC9C,CAUA,OATAlzY,EAAS1jrB,SAAQ,CAAC2hC,EAAGt/B,KACnB,MAAM00jC,EAAWL,EAAQr0jC,GACnBkguB,EAAyB,IAAbw0V,EAAiB,KAAON,EAAQM,EAAW,GACvDv0V,EAAau0V,IAAarzY,EAAS5krB,OAAS,EAAI,KAAO23jC,EAAQM,EAAW,GAChF1r/B,EAAUhpE,GAAS,CACjBkguB,YACAC,aACD,IAEI,CACLn3pB,YACA+4pB,WAAYqyV,EAAQ,GACpBjmiC,SAAUimiC,EAAQ/yY,EAAS5krB,OAAS,GACrC,EiHxoBwC03jC,CAAgB33hC,EAAM6kpB,SAAUojO,IAAQ,CAACjo3B,EAAM6kpB,SAAUojO,IAC5FkwK,EAAuBA,KAC3B,IAAIC,EACJ,GAAInyiC,EAEF,YADAs/hC,EAAoB,MAGtB,MAAM8S,EAA2E,OAAtDD,EAAkBjwC,EAAS77gC,QAAQ615B,gBAA0Bi2J,EAAkB,EAC1G,IAAIE,EAGFA,EAFED,GAAqBr4hC,EAAM6kpB,SAAS,GAAGggX,cAGhCwzB,GAAqBr4hC,EAAM6kpB,SAAS7kpB,EAAM6kpB,SAAS5krB,OAAS,GAAG6kiC,WADrD,EAKA9kgC,EAAM6kpB,SAAShue,WAAUkue,GAAWA,EAAQ8/W,aAAe9/W,EAAQy/W,eAAevkiC,OAASo4jC,IAEhH,MAAMpoW,GAAqC,IAAtBqoW,EAA0Bt4hC,EAAM6kpB,SAAS5krB,OAAS,EAAIq4jC,EAAmB,EAC9F/S,EAAoBt1V,EAAa,EAE7BsoW,GAAmBnwG,EAAAA,GAAAA,IAAiB,SAAC9i8B,GAGzC,IAAIA,EAAMi44B,qBAAV,CAEC,QAAA5w5B,EAAAC,UAAA3M,OALkD4M,EAAI,IAAApD,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,EAAA,GAAAF,UAAAE,GAM5C,MAAXwiT,GAAmBA,EAAQhqS,KAAUzY,GACrCsrjC,GAFA,CAGF,IACMK,GAAqBpwG,EAAAA,GAAAA,IAAiB9i8B,IAC7B,MAAbwh8B,GAAqBA,EAAUxh8B,GAG/BA,EAAMozB,gBAAgB,IAElB+/gC,GAAmBrwG,EAAAA,GAAAA,IAAiB,WAC7B,MAAX5h8B,GAAmBA,KAAQ5Z,WAE3B,MAAM4e,EAAQ28/B,EAAS77gC,QACvBkzB,OAAOvC,aAAaw6hC,EAAgBnrjC,SACpCmrjC,EAAgBnrjC,QAAU4wB,YAAW,KAE9B1R,GAASA,IAAU28/B,EAAS77gC,UAGH,MAA1BunjC,GAAkC5tiC,IAKtCuF,EAAMxoB,MAAM/C,QAAUmrB,OAAOI,EAAM424B,cAAgBh34B,OAAOI,EAAM224B,kBAAoB324B,EAAMxoB,MAAM/C,OAC9FsljC,EAAoB,OAEpB4S,KACF,GAEJ,IACMO,GAAkBtwG,EAAAA,GAAAA,IAAiB,WAC7B,MAAV3h8B,GAAkBA,KAAO7Z,WACzB24iC,EAAoB,KACtB,IACMoT,GAAmBvwG,EAAAA,GAAAA,IAAiB9i8B,IAExC,GADW,MAAXgyiC,GAAmBA,EAAQhyiC,GACvBW,EAEF,YADAX,EAAMozB,iBAGR,MAAMkghC,EAActziC,EAAM654B,cAAct3E,QAAQ,QAChD,GAAIgsO,GAA0BA,EAAuBtuV,aAAesuV,EAAuBliiC,SAAU,CACnG,MAAM2iiC,EAAgBt0hC,EAAM6kpB,SAASgvY,EAAuBtuV,YACtDszV,EAAc,cAAc5xiC,KAAK2xiC,GACjCE,EAAa,WAAW7xiC,KAAK2xiC,GAC7BG,EAAsB,yCAAyC9xiC,KAAK2xiC,GAE1E,GADyD,WAA9BtE,EAAc97F,aAA4BqgG,GAA6C,UAA9BvE,EAAc97F,aAA2BsgG,GAA4C,sBAA9BxE,EAAc97F,aAAuCugG,EAU9L,OARA7B,IACAzC,EAAmB,CACjBH,gBACAJ,gBAAiB0E,EACjBlE,uBAAuB,SAGzBpviC,EAAMozB,iBAGR,GAAImghC,GAAeC,EAIjB,YADAxziC,EAAMozB,gBAGV,CACApzB,EAAMozB,iBACNw+gC,IACAhC,EAAwB0D,EAAY,IAEhCI,GAAoB5wG,EAAAA,GAAAA,IAAiB9i8B,IACzC,GAAIW,EACF,OAEF,MAAMgziC,EAAc3ziC,EAAMQ,OAAO9iB,MACjC,GAAoB,KAAhBi2jC,EAGF,OAFA/B,SACA9C,IAGF,MAAMz34B,EAAYr3J,EAAM+24B,YAAY9/2B,KAG9B28gC,EAAqBv84B,GAAaA,EAAU18K,OAAS,EACrD2iiC,EAAWs2B,EAAqBv84B,EAAYs84B,EAC5Cp2B,EAAgBoB,GAAYrB,GAIlC,GAA8B,MAA1BixB,GAAkCqF,EAEpC,YADAhE,EAAwBgE,EAAqBv84B,EAAYkm3B,GAG3D,IAAIkzB,EACJ,GAA0C,IAAtClC,EAAuBtuV,YAAoBsuV,EAAuBliiC,WAAaqO,EAAM6kpB,SAAS5krB,OAAS,GAA8B,IAAzB4iiC,EAAc5iiC,OAC5H81jC,EAAalzB,MACR,CACL,MAAMs2B,EAAel1B,GAAY4uB,EAAkBzoB,wBAAwBpqgC,EAAM6kpB,SAAUojO,IAC3F,IAAImxK,GAAoB,EACpBC,GAAkB,EACtB,IAAK,IAAIx3jC,EAAI,EAAGA,EAAIs3jC,EAAal5jC,OAAQ4B,GAAK,GAClB,IAAtBu3jC,GAA2BD,EAAat3jC,KAAOghiC,EAAchhiC,KAC/Du3jC,EAAmBv3jC,IAEG,IAApBw3jC,GAAyBF,EAAaA,EAAal5jC,OAAS4B,EAAI,KAAOghiC,EAAcA,EAAc5iiC,OAAS4B,EAAI,KAClHw3jC,EAAiBx3jC,GAGrB,MAAMyyjC,EAAgBt0hC,EAAM6kpB,SAASgvY,EAAuBtuV,YAE5D,GADsC6zV,EAAmB9E,EAAc5tiC,OAASyyiC,EAAal5jC,OAASo5jC,EAAiB,EAAI/E,EAAc1wjC,IAGvI,OAIF,MAAM01jC,EAAqCz2B,EAAc5iiC,OAASk5jC,EAAal5jC,OAASq0jC,EAAc1wjC,IAAMqgiC,GAAYqwB,EAAc7vB,cAAgB,IAAIxkiC,OAC1J81jC,EAAalzB,EAAch/hC,MAAMywjC,EAAc5tiC,MAAQu9gC,GAAYqwB,EAAc9vB,gBAAkB,IAAIvkiC,OAAQq5jC,EACjH,CAC0B,IAAtBvD,EAAW91jC,OASfk2jC,EAAsB,CACpBJ,aACA9lW,aAAc4jW,EAAuBtuV,ajHobZtlrB,UAAUC,UAAUvvC,cAAcrN,QAAQ,YAAc,EiH7b/E+xjC,EAAuBzyB,IAEvBs0B,IACA7C,IAOF,IAEEkF,GAAqBnxG,EAAAA,GAAAA,IAAiB9i8B,IAI1C,OAHa,MAAboh8B,GAAqBA,EAAUph8B,IAGvB,GAEN,IAAmB,MAAdA,EAAMxkB,MAAgBwkB,EAAMG,SAAWH,EAAMC,SAI9CD,EAAMozB,iBACN6sgC,EAAoB,OACpB,MAIJ,IAAmB,eAAdjgiC,EAAMxkB,IAGP,GADAwkB,EAAMozB,iBACwB,MAA1Bm7gC,EACFtO,EAAoBmS,EAAanyV,iBAC5B,GAAIsuV,EAAuBtuV,aAAesuV,EAAuBliiC,SACtE4zhC,EAAoBsO,EAAuBliiC,cACtC,CACL,MAAM2miC,EAAmBZ,EAAalr/B,UAAUqn/B,EAAuBtuV,YAAY5B,WAC1D,OAArB20V,GACF/S,EAAoB+S,EAExB,CACA,MAIJ,IAAmB,cAAdhziC,EAAMxkB,IAGP,GADAwkB,EAAMozB,iBACwB,MAA1Bm7gC,EACFtO,EAAoBmS,EAAa/liC,eAC5B,GAAIkiiC,EAAuBtuV,aAAesuV,EAAuBliiC,SACtE4zhC,EAAoBsO,EAAuBtuV,gBACtC,CACL,MAAM+yV,EAAmBZ,EAAalr/B,UAAUqn/B,EAAuBtuV,YAAY7B,UAC1D,OAArB40V,GACF/S,EAAoB+S,EAExB,CACA,MAIJ,IAAmB,WAAdhziC,EAAMxkB,IAGP,GADAwkB,EAAMozB,iBACFzyB,EACF,MAE4B,MAA1B4tiC,GAAwE,IAAtCA,EAAuBtuV,YAAoBsuV,EAAuBliiC,WAAaqO,EAAM6kpB,SAAS5krB,OAAS,EAC3Im0jC,IAEAC,IAEF6C,IACA,MAIJ,IAAK,CAAC,UAAW,YAAa,OAAQ,MAAO,SAAU,YAAYz7rB,SAASn2W,EAAMxkB,KAChF,CAEE,GADAwkB,EAAMozB,iBACFzyB,GAAsC,MAA1B4tiC,EACd,MAEF,MAAMS,EAAgBt0hC,EAAM6kpB,SAASgvY,EAAuBtuV,YACtDgvV,EAAoB1B,EAAkBtoB,qBAAqBn1E,EAAOp17B,EAAOs0hC,GACzEJ,EAAkBhxB,GAAmB9tE,EAAOmqE,EAAU+0B,EAAehviC,EAAMxkB,IAAKqiiC,EAAyBoxB,EAAkBvviC,KAAM,CACrI0+gC,gBAEF+wB,EAAmB,CACjBH,gBACAJ,kBACAQ,uBAAuB,IAEzB,KACF,EACJ,KAEFr0hC,EAAAA,GAAiBA,IAAC,KAChB,IAAK8n/B,EAAS77gC,QACZ,OAEF,GAA8B,MAA1BunjC,EAOF,YANI1rC,EAAS77gC,QAAQ06yB,aAInBmhO,EAAS77gC,QAAQ06yB,WAAa,IAIlC,MAAMwyQ,EAAuBx5hC,EAAM6kpB,SAASgvY,EAAuBtuV,YAC7Dk0V,EAAsBz5hC,EAAM6kpB,SAASgvY,EAAuBliiC,UAClE,IAAIww4B,EAAiBq3J,EAAqB30B,aACtCziI,EAAeq3J,EAAoB30B,WAKvC,GAJI+uB,EAAuBC,gCACzB3xJ,GAAkBq3J,EAAqBh1B,eAAevkiC,OACtDmi6B,GAAgBq3J,EAAoBh1B,aAAaxkiC,QAE/Cki6B,IAAmBgmH,EAAS77gC,QAAQ615B,gBAAkBC,IAAiB+lH,EAAS77gC,QAAQ815B,aAAc,CAExG,MAAMs3J,EAAmBvxC,EAAS77gC,QAAQy6yB,UAItCohO,EAAS77gC,UAAYq0iC,GAAiBr/iC,WACxC6mhC,EAAS77gC,QAAQqtjC,kBAAkBx3J,EAAgBC,GAGrD+lH,EAAS77gC,QAAQy6yB,UAAY2yQ,CAC/B,KAEF,MAAM1V,EAAkBF,IAActriC,EAAAA,GAAAA,GAAS,CAAC,EAAGs6iC,EAAe,CAChE9vjC,MAAOg9B,EAAMh9B,MACbu8hC,aACEh8gC,EAAW4giC,EAAa1a,YAAa0a,EAAaxa,mBAChDiwB,EAAavujC,EAAAA,SAAc,SAGjB3K,IAAVsb,EACKA,EAEFmoiC,EAAaza,SAASsa,IAC5B,CAACG,EAAcH,EAAiBhoiC,IACnC3Q,EAAAA,WAAgB,KACTuujC,GAAe/F,GAClBqD,GACF,GACC,CAACl3hC,EAAMwqgC,eAAgBqpB,EAAwB+F,IAElDvujC,EAAAA,WAAgB,KAEV88gC,EAAS77gC,SAAW67gC,EAAS77gC,UAAYhL,SAASgpK,eACpDi74B,EAAoB,OAEf,IAAM/lhC,OAAOvC,aAAaw6hC,EAAgBnrjC,WAChD,IAMHjB,EAAAA,WAAgB,KACmB,MAA7B20B,EAAMwzhC,qBAAyD,MAA1BK,IACvCqD,IACA7C,IACF,GACC,CAACr0hC,EAAMwzhC,sBAEV,MAAM5wB,EAAWv3hC,EAAAA,SAAc,KAC7B,IAAIwujC,EACJ,OAA8D,OAAtDA,EAAwB75hC,EAAMwzhC,qBAA+BqG,EAAwBhH,EAAkBzoB,wBAAwBpqgC,EAAM6kpB,SAAUojO,EAAM,GAC5J,CAACjo3B,EAAM6kpB,SAAUguY,EAAmB7yhC,EAAMwzhC,oBAAqBvrK,IAC5D6xK,EAAYzujC,EAAAA,SAAc,IACA,MAA1BwojC,GAGkE,WAAlE7zhC,EAAM6kpB,SAASgvY,EAAuBtuV,YAAYizP,YAF7C,OAKF,WACN,CAACq7F,EAAwB7zhC,EAAM6kpB,WAC5Bk1Y,EAAgB5xC,EAAS77gC,SAAW67gC,EAAS77gC,UAAYq0iC,GAAiBr/iC,UAC1E04jC,EAAsB7V,EAAa7a,eAAel0E,EAAOp17B,EAAMh9B,MAAOmhjC,EAAazb,YACnFuxB,IAAyBF,GAAiBC,EAChD3ujC,EAAAA,oBAA0B+rjC,GAAkB,KAAM,CAChD3sB,YAAaA,IAAMzqgC,EAAM6kpB,SACzBq1Y,sBAAuBA,KACrB,IAAIC,EAAkBC,EAAeC,EACrC,MAAMhC,EAA4E,OAAvD8B,EAAmBhyC,EAAS77gC,QAAQ615B,gBAA0Bg4J,EAAmB,EACtGG,EAAqE,OAAlDF,EAAgBjyC,EAAS77gC,QAAQ815B,cAAwBg4J,EAAgB,EAC5FG,IAA+D,OAAzCF,EAAoBlyC,EAAS77gC,WAAoB+tjC,EAAkBp0iC,UAC/F,GAA0B,IAAtBoyiC,GAA+C,IAApBiC,GAAyBC,EACtD,OAAO,KAET,MAAMjC,EAAmBD,GAAqBr4hC,EAAM6kpB,SAAS,GAAGggX,aAAe,EAC7E7kgC,EAAM6kpB,SAAShue,WAAUkue,GAAWA,EAAQ8/W,aAAe9/W,EAAQy/W,eAAevkiC,OAASo4jC,IAC7F,OAA6B,IAAtBC,EAA0Bt4hC,EAAM6kpB,SAAS5krB,OAAS,EAAIq4jC,EAAmB,CAAC,EAEnF/S,oBAAqBiV,GAAsBjV,EAAoBiV,OAEjE,MAAMC,IAAmBryG,EAAAA,GAAAA,IAAiB,SAAC9i8B,GACzC,IAAIo1iC,EACJp1iC,EAAMozB,iBAAiB,QAAA/b,EAAA/vB,UAAA3M,OAF4B4M,EAAI,IAAApD,MAAAkzB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ/vB,EAAI+vB,EAAA,GAAAhwB,UAAAgwB,GAG5C,MAAXgrhC,GAAmBA,EAAQtiiC,KAAUzY,GACrCunjC,IACY,MAAZjsC,GAA+D,OAA1CuyC,EAAqBvyC,EAAS77gC,UAAoBoujC,EAAmBhgjC,QAC1F6qiC,EAAoB,EACtB,IACA,OAAO/siC,EAAAA,GAAAA,GAAS,CACd64K,cACA+51B,aAAc,MACdtzgC,SAAUi/H,QAAQj/H,IACjB0/iC,EAAqB,CACtBx0jC,MAAOi3jC,GAAwB,GAAKr3B,EACpCk3B,YACA7ziC,WACAqpS,QAASipwB,EACT/xiC,QAASiyiC,EACThyiC,OAAQiyiC,EACRpB,QAASqB,EACTxjE,SAAU6jE,EACVtyG,UAAW6yG,EACXzyG,UAAW0xG,EACX5Q,QAAS6S,GACTz+iC,MAAO49iC,EACPhujC,IAAKq98B,EACLsuG,UAAWxg7B,QAAQwg7B,IAAcyC,IAAwB/ziC,IAAanO,IACtE,EC7bS6ijC,GAA6B,CAAC,cAAe,gBAAiB,UAAW,UAAW,oBAAqB,qBAAsB,qBAC/HC,GAA6B,CAAC,cAAe,gBAAiB,UAAW,UAAW,qBAAsB,oBAAqB,cAAe,OAAQ,4CACtJC,GAAkC,CAAC,cAAe,eACzDC,GAAwB,IAAIH,MAA+BC,MAA+BC,IAKnFE,GAAyBp2jC,GAASm2jC,GAAsB/5iC,QAAO,CAACi6iC,EAAgBt3iC,KACvF/e,EAAM2W,eAAeoI,KACvBs3iC,EAAet3iC,GAAY/e,EAAM+e,IAE5Bs3iC,IACN,CAAC,GCXEC,GAAmC,CAAC,QAAS,eAAgB,gBAAiB,SAAU,gBAAiB,WAAY,WAAY,WAAY,UAAW,4BAA6B,mBAAoB,2BAA4B,oBAC9NC,GAAsCA,CAACv2jC,EAAOs7hC,KACzD,MAAMo3B,GAAiB7+iC,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,GAC9BmujC,EAAgB,CAAC,EACjBqI,EAAcz3iC,IACd2ziC,EAAe/7iC,eAAeoI,KAEhCoviC,EAAcpviC,GAAY2ziC,EAAe3ziC,UAClC2ziC,EAAe3ziC,GACxB,EAYF,OAVAu3iC,GAAiC95jC,QAAQg6jC,GACvB,SAAdl7B,EACF06B,GAA2Bx5jC,QAAQg6jC,GACZ,SAAdl7B,EACT26B,GAA2Bz5jC,QAAQg6jC,GACZ,cAAdl7B,IACT06B,GAA2Bx5jC,QAAQg6jC,GACnCP,GAA2Bz5jC,QAAQg6jC,GACnCN,GAAgC15jC,QAAQg6jC,IAEnC,CACL9D,iBACAvE,gBACD,ECPUsI,GAAezljC,IAGtB,IAFJhR,MAAOqT,EAAO,SACdmwgC,GACDxygC,EACC,MAAMhR,EAhBwBA,KAC9B,IAAI02jC,EAAoBC,EAAsBC,EAC9C,MAAMnmG,EAAQy4E,KACRlC,EAAemC,KACrB,OAAOt1hC,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACzBw6hC,YAAyD,OAA3Ck8B,EAAqB12jC,EAAMw6hC,cAAuBk8B,EAChEn8B,cAA+D,OAA/Co8B,EAAuB32jC,EAAMu6hC,gBAAyBo8B,EACtE31hC,OAA0C,OAAjC41hC,EAAgB52jC,EAAMghC,QAAkB41hC,EAAgBnmG,EAAM7s7B,QAAQq4/B,aAC/EvB,QAASM,GAAiBvqE,EAAOzw9B,EAAM06hC,QAASsM,EAAatM,SAC7DD,QAASO,GAAiBvqE,EAAOzw9B,EAAMy6hC,QAASuM,EAAavM,UAC7D,EAMYo8B,CAAwBxjjC,IAChC,eACJq/iC,EAAc,cACdvE,GACEoI,GAAoCv2jC,EAAO,QAC/C,OAAOwyjC,GAAS,CACdhvC,WACAkvC,iBACAvE,gBACA3O,aAAc1b,GACdoqB,kBAAmB/oB,GACnBvmhC,UAAWmshC,GACXzP,UAAW,QACX,EClCE9qhC,GAAY,CAAC,cASNsmjC,GAAoB/tiC,IAS3B,IAT4B,UAChC6piC,EACAtP,WAAYyT,EACZ3gC,WAAY4gC,EAAmB,QAC/B/T,EAAO,MACPhviC,EAAK,UACL8mB,EAAS,WACTnrB,EAAU,gBACV058B,GACDvg8B,EACC,IAAI/X,EAAMimjC,EAAoBC,EAAuBznjC,EAAO0njC,EAAkBC,EAC9E,MAAM/2B,EAAa+I,KACbp0D,EAA+K,OAAjKhk+B,EAA4E,OAApEimjC,EAA8B,MAAThjjC,OAAgB,EAASA,EAAMw5iC,aAAuBwJ,EAAmC,MAAdrnjC,OAAqB,EAASA,EAAWynjC,aAAuBrmjC,EAAOsmjC,GAE7L3mC,EAAgBvmE,GAAa,CAC/Bn4D,YAAa+iF,EACbruB,kBAAmG,OAA/EuwG,EAAqC,MAAbn8hC,OAAoB,EAASA,EAAU0yhC,aAAuByJ,EAA2C,MAAnB5tG,OAA0B,EAASA,EAAgBmkG,YACrL78iC,WAAY,CAAC,EACbpC,UAAW,cACXk48B,gBAAiB,CACfx+1B,MAAOm46B,EAAWsI,mBAGtB4uB,GAAkB3jjC,EAAAA,GAAAA,GAA8B+8gC,EAAenghC,IAC3DgnjC,EAA0K,OAA1J/njC,EAAyE,OAAhE0njC,EAA4B,MAATljjC,OAAgB,EAASA,EAAMu5iC,WAAqB2J,EAAiC,MAAdvnjC,OAAqB,EAASA,EAAWo+iC,WAAqBv+iC,EAAQu+iC,GACzLyJ,EAAoBrtG,GAAa,CACrCn4D,YAAaulK,EACb7wG,kBAAgG,OAA5EywG,EAAoC,MAAbr8hC,OAAoB,EAASA,EAAUyyhC,WAAqB4J,EAA0C,MAAnB9tG,OAA0B,EAASA,EAAgBkkG,UACjL58iC,WAAY,CAAC,IAmCf,MAAO,CACLwlhC,YAlCiBvihC,EAAAA,GAAAA,GAAS,CAAC,EAAGmjjC,EAAqB,CACnD7xC,cAA2B/wgC,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CAC/CzG,SAAU,CAAC2yjC,IAA0Bn+iC,EAAAA,GAAAA,KAAKk4iC,GAAgB,CACxDltjC,SAAU,MACVkd,GAAI,CACF6W,YAAoC,MAAvBwjiC,GAA+BA,EAAoB7xC,cAAgB,GAAK,KAEvFllhC,UAAuBwU,EAAAA,GAAAA,KAAKug+B,GAAYnh+B,EAAAA,GAAAA,GAAS,CAAC,EAAG0jjC,EAAiB,CACpE5swB,QAASs4vB,EACThjjC,UAAuBwU,EAAAA,GAAAA,KAAK+ijC,GAAc3jjC,EAAAA,GAAAA,GAAS,CACjD9C,SAAU,SACT0mjC,SAEoB,MAAvBT,OAA8B,EAASA,EAAoB7xC,kBAsBjEm+B,YAnBiBzviC,EAAAA,GAAAA,GAAS,CAAC,EAAGkjjC,EAAqB,CACnDp6iC,GAAI,CAAC,CACH,iBAAkB,CAChBnS,QAAS,GAEX,yBAA0B,CACxB,iBAAkB,CAChBA,QAAS,GAEX,0BAA2B,CACzB,eAAgB,CACdA,QAAS,SAIV1F,MAAMiI,QAAQgqjC,EAAoBp6iC,IAAMo6iC,EAAoBp6iC,GAAK,CAACo6iC,EAAoBp6iC,OAK9F,EC3EGnM,GAAY,CAAC,aAAc,kBAAmB,QAAS,YAAa,aAAc,cACtFwZ,GAAa,CAAC,YACdhC,GAAa,CAAC,MAAO,UAAW,YAAa,YAAa,WAAY,YAAa,WAoB/E0viC,GAAyBhxjC,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,IAAI+J,EAAM2mjC,EAAkBC,EAC5B,MAAMz7G,EAAam9E,GAAc,CAC/Bt5hC,MAAOqT,EACPlN,KAAM,kBAEF,WACFyJ,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EAAS,WACTq7/B,EAAU,WACVxP,GACEzqE,EACJxo8B,GAAQC,EAAAA,GAAAA,GAA8Buo8B,EAAY3r8B,IAC9CI,EAAaur8B,EACb07G,EAAsK,OAAzJ7mjC,EAAwE,OAAhE2mjC,EAA4B,MAAT1jjC,OAAgB,EAASA,EAAMiqtB,WAAqBy5V,EAAiC,MAAd/njC,OAAqB,EAASA,EAAWiojC,WAAqB7mjC,EAAO8mjC,GACpLnnC,EAAgBvmE,GAAa,CAC/Bn4D,YAAa4lK,EACblxG,kBAAgG,OAA5EixG,EAAoC,MAAb78hC,OAAoB,EAASA,EAAUmjsB,WAAqB05V,EAA0C,MAAnBtuG,OAA0B,EAASA,EAAgBprP,UACjL0oP,uBAAwBjz8B,EACxB/C,gBAGA4ygC,SAAUu0C,GACRpnC,EACJqnC,GAAiBpkjC,EAAAA,GAAAA,GAA8B+8gC,EAAe3mgC,IAGhEguiC,EAAepxC,YAAa/ygC,EAAAA,GAAAA,GAAS,CAAC,EAAG+ygC,EAAYoxC,EAAepxC,YACpEoxC,EAAe5hC,YAAavihC,EAAAA,GAAAA,GAAS,CAAC,EAAGuihC,EAAY4hC,EAAe5hC,YACpE,MAAM6hC,EAAgBxB,GAAa,CAC/Bz2jC,MAAOg4jC,EACPx0C,SAAUu0C,KAGV9wjC,IAAKu8gC,EAAQ,QACbmvC,EAAO,UACP5wG,EAAS,UACTozG,EAAS,SACT7ziC,EAAQ,UACRsxiC,EAAS,QACT3P,GACEgV,EACJ3U,GAAa1viC,EAAAA,GAAAA,GAA8BqkjC,EAAejwiC,KAE1DougC,WAAY8hC,EACZ5U,WAAY6U,GACVrB,GAAkB,CACpB7T,UACA2P,YACAtP,aACAltB,WAAYktB,EAAWltB,WACvBnihC,QACA8mB,YACAnrB,aACA058B,oBAEF,OAAoB708B,EAAAA,GAAAA,KAAKojjC,GAAWhkjC,EAAAA,GAAAA,GAAS,CAC3C5M,IAAKA,GACJkxjC,EAAqB,CACtB/hC,YAAYvihC,EAAAA,GAAAA,GAAS,CAAC,EAAGqkjC,EAAqB,CAC5C52iC,aAEFslgC,YAAY/ygC,EAAAA,GAAAA,GAAS,CAAC,EAAGyviC,EAAW18B,WAAY,CAC9CuuC,YACAxC,UACA5wG,YACA968B,IAAKu8gC,MAGX,IC5Fa40C,GAAoBpnjC,IAS3B,IAT4B,kBAChCg6hC,EAAiB,mBACjBC,EAAkB,kBAClBC,EAAiB,QACjBxQ,EAAO,QACPD,EAAO,cACPF,EAAa,YACbC,EAAW,SACXI,GACD5phC,EACC,MAAM4i9B,EAAUo1E,KAChB,OAAOtiiC,EAAAA,aAAkBw8B,GAalB,OAbyB6ngC,GAAa,CAC3Cn3E,UACAv19B,MAAO6kC,EACPljC,MAAO,CACLgriC,oBACAC,qBACAC,oBACAxQ,UACAD,UACAF,gBACAC,cACAI,eAES,CAAChnE,EAASo3E,EAAmBC,EAAoBC,EAAmBxQ,EAASD,EAASF,EAAeC,EAAaI,GAAU,ECS9Hy9B,GAAmB3ojC,IAC9B,MAAM,MACJrR,EACA8kiC,cAAeirB,EAAiB,qBAChCkK,EAAoB,cACpB/9B,EAAa,YACbC,EAAW,+BACX+9B,GAAiC,EAAK,QACtC99B,EAAO,QACPC,EAAO,cACP89B,EAAa,iBACb5a,EAAgB,kBAChB5S,EAAiB,SACjBpQ,GACElrhC,EACE+g9B,EAAQy4E,KACRuvB,EAAY/xjC,EAAAA,OA7CsBgyjC,EAAC9a,EAAkB2a,EAAgC9nG,IAAU,CAACp17B,EAAOpoB,KAC7G,OAAQA,EAAOlT,MACb,IAAK,cACH,OAAO8T,EAAAA,GAAAA,GAAS,CAAC,EAAGwnB,EAAO,CACzBs9hC,eAAgB1ljC,EAAOqD,UACvBsijC,aAAc3ljC,EAAO4ljC,SACrBC,2BAA4Blb,IAEhC,IAAK,gCACH,OAAO/piC,EAAAA,GAAAA,GAAS,CAAC,EAAGwnB,EAAO,CACzBy9hC,2BAA2B,IAE/B,IAAK,mBACH,CACE,GAAwB,MAApBz9hC,EAAM09hC,YAA2C,MAArB9ljC,EAAO8ljC,YAAsBtoG,EAAMuoG,UAAU/ljC,EAAO8ljC,WAAY19hC,EAAM09hC,YACpG,OAAO19hC,EAET,MAAM49hC,EAAuC,MAArBhmjC,EAAO8ljC,aAAuBR,IAAmC9nG,EAAMyoG,YAAY79hC,EAAMu9hC,aAAc3ljC,EAAO8ljC,YACtI,OAAOlljC,EAAAA,GAAAA,GAAS,CAAC,EAAGwnB,EAAO,CACzB09hC,WAAY9ljC,EAAO8ljC,WACnBD,0BAA2BG,IAAoBrb,IAAqB3qiC,EAAOkmjC,+BAC3EP,aAAcK,EAAkBxoG,EAAM0sE,aAAalqhC,EAAO8ljC,YAAc19hC,EAAMu9hC,aAC9ED,eAAqC,MAArB1ljC,EAAO8ljC,YAAsBtoG,EAAM2zE,WAAWnxhC,EAAO8ljC,WAAY19hC,EAAMu9hC,cAAgB,OAAS,SAEpH,CACF,QACE,MAAM,IAAI3rjC,MAAM,mBACpB,EAkB+ByrjC,CAA2Btm7B,QAAQwr6B,GAAmB2a,EAAgC9nG,IAAQ9o9B,QACvHw7hC,EAAgBz8hC,EAAAA,SAAc,KAClC,IAAI0yjC,EAAwB,KAO5B,OANIhL,EACFgL,EAAwBhL,EACfkK,IAETc,EAAwB3oG,EAAM0sE,aAAam7B,IAEtCx0B,GAAuBG,yBAAyB,CACrD5liC,QACAoy9B,QACAmqE,WACA56hC,MAAO0P,EACPyzhC,cAAei2B,EACfl8B,YAAaF,GAAyB95/B,KACtC,GACD,KAEIm2hC,EAAe5lhC,GAAY/sC,EAAAA,WAAiB+xjC,EAAW,CAC5DK,2BAA2B,EAC3BC,WAAY51B,EACZy1B,aAAcnoG,EAAM0sE,aAAagG,GACjCw1B,eAAgB,SAEZW,EAAoB5yjC,EAAAA,aAAkBqrqB,IAC1Ct+nB,GAAS5/B,EAAAA,GAAAA,GAAS,CAChB9T,KAAM,eACLgyqB,IACCymZ,GACFA,EAAczmZ,EAAQ8mZ,SACxB,GACC,CAACL,IACEe,EAAc7yjC,EAAAA,aAAkB2hF,IACpC,MAAMmx+B,EAAmBnx+B,EACrBoo4B,EAAMyoG,YAAYM,EAAkBH,EAAcT,eAGtDU,EAAkB,CAChBT,SAAUpoG,EAAM0sE,aAAaq8B,GAC7BljjC,UAAWm68B,EAAM2zE,WAAWo1B,EAAkBH,EAAcT,cAAgB,OAAS,SACrF,GACD,CAACS,EAAcT,aAAcU,EAAmB7oG,IAC7CkqE,EAAiBy9B,GAAkB,CACvCptB,oBACAtQ,UACAD,UACAF,gBACAC,cACAI,aAEI6+B,EAA+B/yjC,EAAAA,aAAkB,KACrD+sC,EAAS,CACP1zC,KAAM,iCACN,GACD,IACG25jC,GAAmBj2G,EAAAA,GAAAA,IAAiB,CAACk2G,EAAgBR,KACpDx+B,EAAeg/B,IAClBlmhC,EAAS,CACP1zC,KAAM,mBACNg5jC,WAAYY,EACZR,kCAEJ,IAEF,MAAO,CACLh2B,gBACAk2B,gBACAE,cACAG,mBACA/+B,iBACA8+B,+BACAH,oBACD,EC5HUM,GAA4CvpjC,IAAQC,EAAAA,GAAAA,IAAqB,gCAAiCD,GCgBjHwpjC,KDf2CtpjC,EAAAA,GAAsBA,GAAC,gCAAiC,CAAC,UCenEG,EAAAA,GAAMA,IAAC+s8B,GAAiB,CAC7Dt38B,KAAM,gCACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHJ6Q,CAIpC,CACDuB,QAAS,QACTxS,SAAU,cAML,SAASq6jC,GAA2BzmjC,GACzC,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,mCAEF,SACJlG,EAAQ,UACRuO,EAAS,iBACToviC,EAAgB,SAChBmc,GACE/5jC,EACEgU,EAhCkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoB+5jC,GAA2C5ljC,EAAQ,EAyBhEG,CAAkBnU,GAC5B2P,EAAQqq8B,KACd,OAAI4jG,EACK39iC,GAEWwU,EAAAA,GAAAA,KAAKoljC,GAAgC,CACvDrrjC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvO,UAAuBwU,EAAAA,GAAAA,KAAK+69B,GAAM,CAChCzxB,QAAQ,EACRwuB,cAAc,EACdD,eAAe,EACfn08B,QAAS,CACP4l7B,OAAQpu8B,EAAM0C,YAAYC,SAAS+K,eACnCo8B,MAAO9pC,EAAM0C,YAAYC,SAAS+K,eAClCq8B,KAAM,GAERz5C,SAAUA,GACT85jC,IAEP,gBCjDA,SAASh1iC,GAAa1mB,GAAyB,IAAlBumB,EAAG3c,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAAG0c,EAAG1c,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAM1C,OAAOupE,EAAAA,GAAAA,GAAMnzE,EAAOumB,EAAKD,EAC3B,CA8BO,SAASW,GAAezU,GAE7B,GAAIA,EAAM9Q,KACR,OAAO8Q,EAET,GAAwB,MAApBA,EAAM0U,OAAO,GACf,OAAOD,GA7BJ,SAAkBzU,GACvBA,EAAQA,EAAM3R,MAAM,GACpB,MAAM+lB,EAAK,IAAIC,OAAO,OAADrf,OAAQgL,EAAMvV,QAAU,EAAI,EAAI,EAAC,KAAK,KAC3D,IAAI6pB,EAAStU,EAAMnM,MAAMugB,GAIzB,OAHIE,GAA+B,IAArBA,EAAO,GAAG7pB,SACtB6pB,EAASA,EAAO5gB,KAAI6gB,GAAKA,EAAIA,KAExBD,EAAS,MAAHtf,OAA2B,IAAlBsf,EAAO7pB,OAAe,IAAM,GAAE,KAAAuK,OAAIsf,EAAO5gB,KAAI,CAAC6gB,EAAGvmB,IAC9DA,EAAQ,EAAIwmB,SAASD,EAAG,IAAMtnB,KAAK+b,MAAMwL,SAASD,EAAG,IAAM,IAAM,KAAQ,MAC/EtjB,KAAK,MAAK,KAAM,EACrB,CAmB0BkjB,CAASnU,IAEjC,MAAM2U,EAAS3U,EAAMlS,QAAQ,KACvBoB,EAAO8Q,EAAM4U,UAAU,EAAGD,GAChC,IAA+D,IAA3D,CAAC,MAAO,OAAQ,MAAO,OAAQ,SAAS7mB,QAAQoB,GAClD,MAAM,IAAIkN,OACgFsL,EAAAA,GAAAA,GAAuB,EAAG1H,IAEtH,IACI6U,EADAC,EAAS9U,EAAM4U,UAAUD,EAAS,EAAG3U,EAAMvV,OAAS,GAExD,GAAa,UAATyE,GAMF,GALA4lB,EAASA,EAAOpgB,MAAM,KACtBmgB,EAAaC,EAAOC,QACE,IAAlBD,EAAOrqB,QAAwC,MAAxBqqB,EAAO,GAAGJ,OAAO,KAC1CI,EAAO,GAAKA,EAAO,GAAGzmB,MAAM,KAE6D,IAAvF,CAAC,OAAQ,aAAc,UAAW,eAAgB,YAAYP,QAAQ+mB,GACxE,MAAM,IAAIzY,OACgFsL,EAAAA,GAAAA,GAAuB,GAAImN,SAGvHC,EAASA,EAAOpgB,MAAM,KAGxB,OADAogB,EAASA,EAAOphB,KAAIlG,GAASwnB,WAAWxnB,KACjC,CACL0B,OACA4lB,SACAD,aAEJ,CA8BO,SAASQ,GAAerV,GAC7B,MAAM,KACJ9Q,EAAI,WACJ2lB,GACE7U,EACJ,IAAI,OACF8U,GACE9U,EAaJ,OAZ6B,IAAzB9Q,EAAKpB,QAAQ,OAEfgnB,EAASA,EAAOphB,KAAI,CAAC6gB,EAAGloB,IAAMA,EAAI,EAAImoB,SAASD,EAAG,IAAMA,KACtB,IAAzBrlB,EAAKpB,QAAQ,SACtBgnB,EAAO,GAAK,GAAH9f,OAAM8f,EAAO,GAAE,KACxBA,EAAO,GAAK,GAAH9f,OAAM8f,EAAO,GAAE,MAGxBA,GAD6B,IAA3B5lB,EAAKpB,QAAQ,SACN,GAAHkH,OAAM6f,EAAU,KAAA7f,OAAI8f,EAAO7jB,KAAK,MAE7B,GAAH+D,OAAM8f,EAAO7jB,KAAK,OAEnB,GAAP+D,OAAU9F,EAAI,KAAA8F,OAAI8f,EAAM,IAC1B,CAuFO,SAASrB,GAAMzT,EAAOxS,GAW3B,OAVAwS,EAAQyU,GAAezU,GACvBxS,EAAQ0mB,GAAa1mB,GACF,QAAfwS,EAAM9Q,MAAiC,QAAf8Q,EAAM9Q,OAChC8Q,EAAM9Q,MAAQ,KAEG,UAAf8Q,EAAM9Q,KACR8Q,EAAM8U,OAAO,GAAK,IAAH9f,OAAOxH,GAEtBwS,EAAM8U,OAAO,GAAKtnB,EAEb6nB,GAAerV,EACxB,CCvOO,SAASmpjC,GAA0B3pjC,GACxC,OAAOC,EAAAA,GAAAA,IAAqB,gBAAiBD,EAC/C,CACO,MAAM4pjC,IAAoB1pjC,EAAAA,GAAsBA,GAAC,gBAAiB,CAAC,OAAQ,gBAAiB,kBAAmB,yBAA0B,QAAS,WAAY,aCF/JC,GAAY,CAAC,YAAa,YAAa,MAAO,WAAY,wBAAyB,gBAAiB,SAAU,cAAe,UAAW,cAAe,UAAW,SAAU,YAAa,cAAe,eAAgB,sBAAuB,WAAY,8BAA+B,WAAY,QAAS,qBAAsB,qBA6BrUiY,GAAWzX,IAAA,IAAC,MAChBrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW+H,QAAS,CAC3C1I,MpBnCsB,GoBoCtBC,OpBpCsB,GoBqCtBob,aAAc,MACdwC,QAAS,EAEToC,gBAAiB,cACjB5f,WAAYzC,EAAM0C,YAAY9L,OAAO,mBAAoB,CACvD+L,SAAU3C,EAAM0C,YAAYC,SAAS4K,QAEvCrM,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,QAC1C,yBAA0B,CACxB,UAAW,CACT6c,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,KAAM4O,GAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAOyC,gBAGzL,UAAW,CACTsc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,KAAMsO,GAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO+C,cACrL,CAAC,KAADnQ,OAAMo0jC,GAAkBtkjC,WAAa,CACnCi8+B,WAAY,mBACZ5/9B,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQe,OAG3D,CAAC,KAADrQ,OAAMo0jC,GAAkBtkjC,WAAa,CACnC9E,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC7CuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvD1I,WAAYqF,EAAM+C,WAAW0G,iBAC7B,UAAW,CACTw4+B,WAAY,mBACZ5/9B,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQe,OAG3D,CAAC,KAADrQ,OAAMo0jC,GAAkB9mjC,SAAQ,UAAAtN,OAASo0jC,GAAkBtkjC,SAAQ,MAAM,CACvE9E,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAK/B,UAE5C,CAAC,KAADtN,OAAMo0jC,GAAkB9mjC,SAAQ,MAAAtN,OAAKo0jC,GAAkBtkjC,WAAa,CAClEnL,QAAS,MAEToG,EAAWspjC,eAAiB,CAC9BvqiC,OAAQ,KAAF9pB,OpBxEkB,EoBwED,OACtB+K,EAAWupjC,qBAAuBvpjC,EAAWwpjC,6BAA+B,CAC7EvpjC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,YACxCxE,EAAWypjC,uBAAyBzpjC,EAAWmx4B,OAAS,CAC1D,CAAC,UAADl84B,OAAWo0jC,GAAkBtkjC,SAAQ,MAAM,CACzC4a,OAAQ,aAAF1qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,aAE1D,EACIzE,GAAoBA,CAAC3Q,EAAOiG,KAChC,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,MAAO+Q,EAAWspjC,eAAiBj0jC,EAAOq0jC,eAAgB1pjC,EAAWypjC,uBAAyBzpjC,EAAWmx4B,OAAS974B,EAAO874B,OAAQnx4B,EAAWupjC,qBAAuBvpjC,EAAWwpjC,6BAA+Bn0jC,EAAOs0jC,gBAAiB3pjC,EAAWupjC,sBAAwBvpjC,EAAWwpjC,6BAA+Bn0jC,EAAOu0jC,uBAAuB,EAE3VC,IAAiB/pjC,EAAAA,GAAMA,IAACm08B,GAAY,CACxC1+8B,KAAM,gBACNkK,KAAM,OACNM,kBAAiBA,IAHID,CAIpB+X,IACGiyiC,IAAmBhqjC,EAAAA,GAAMA,IAAC,MAAO,CACrCvK,KAAM,gBACNkK,KAAM,OACNM,kBAAiBA,IAHMD,EAItBjB,IAAA,IAAC,MACFE,EAAK,WACLiB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CAAC,EAAG4U,GAAS,CAC1B9Y,QACAiB,eACE,CAEFpG,QAAS,EACT+1M,cAAe,QACf,IACI52F,GAAOA,OACPgx8B,GAA6Bj0jC,EAAAA,YAAiB,SAAoB2M,EAASo49B,GAC/E,MAAMzr+B,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,mBAEF,UACF6k6B,GAAY,EAAK,UACjBx85B,EAAS,IACT00B,EAAG,SACH/vB,GAAW,EAAK,sBAChBknjC,GAAwB,EAAK,cAC7BH,GAAgB,EAAK,YACrB9oE,EAAW,QACXzmsB,EAAO,YACPiwwB,EAAW,QACX/4iC,EAAU8nG,GAAI,OACd7nG,EAAS6nG,GAAI,UACbo41B,EAAYp41B,GAAI,YAChBs41B,EAAct41B,GAAI,aAClBkx8B,EAAelx8B,GAAI,oBACnBww8B,EAAmB,SACnBxkjC,GAAW,EAAK,4BAChBykjC,GAA8B,EAAK,SACnCn6jC,EACA8h5B,MAAO+4K,GAAU,GACf96jC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCgr6B,YACA735B,WACAknjC,wBACAH,gBACAvkjC,WACAykjC,8BACAr4K,MAAO+4K,IAEH9mjC,EAnIkBpD,KACxB,MAAM,SACJ+E,EAAQ,cACRukjC,EAAa,sBACbG,EAAqB,MACrBt4K,EAAK,SACL5u4B,EAAQ,oBACRgnjC,EAAmB,4BACnBC,EAA2B,QAC3BpmjC,GACEpD,EACEmqjC,EAA2BZ,IAAwBC,EACnDnmjC,EAAQ,CACZpU,KAAM,CAAC,OAAQ8V,IAAaoljC,GAA4B,WAAY5njC,GAAY,YAAa+mjC,GAAiB,iBAAkBG,GAAyBt4K,GAAS,QAASo4K,GAAuBC,GAA+B,kBAAmBW,GAA4B,0BAChRP,uBAAwB,CAAC,2BAE3B,OAAOtmjC,EAAAA,GAAcA,GAACD,EAAO+ljC,GAA2BhmjC,EAAQ,EAmHhDG,CAAkBvD,GAC5B6/8B,EAAQy4E,KACRjiiC,EAAMP,EAAAA,OAAa,MACnB498B,GAAY3o7B,EAAAA,GAAAA,GAAW10B,EAAKwk+B,IAIlC/v8B,EAAAA,GAAiBA,IAAC,MACZsv4B,GAAc735B,GAAai++B,GAAgB+oE,GAE7ClzjC,EAAIU,QAAQoO,OACd,GACC,CAACi15B,EAAW735B,EAAUi++B,EAAa+oE,IAqBtC,OAAIA,IAAwBC,GACN3ljC,EAAAA,GAAAA,KAAKimjC,GAAkB,CACzClsjC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAMmU,EAAQwmjC,uBAAwBhsjC,GAC9DoC,WAAYA,EACZ4D,KAAMb,EAAMa,QAGIC,EAAAA,GAAAA,KAAKgmjC,IAAgB5mjC,EAAAA,GAAAA,GAAS,CAChDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKq98B,EACL/C,cAAc,EACdpu8B,SAAUA,EACVov8B,SAAU5s8B,EAAW,GAAK,EAC1Bos8B,UAAWph8B,GAASoh8B,EAAUph8B,EAAOuiB,GACrCrhB,QAASlB,GAASkB,EAAQlB,EAAOuiB,GACjCphB,OAAQnB,GAASmB,EAAOnB,EAAOuiB,GAC/B23hC,aAAcl6iC,GAASk6iC,EAAal6iC,EAAOuiB,GAC3CynR,QA5BkBhqS,IACbxN,GACHynjC,EAAY13hC,GAEVi3hC,GACFx5iC,EAAM49L,cAAcxoM,QAElB40S,GACFA,EAAQhqS,EACV,EAoBAsh8B,YAnCsBth8B,IACtBsh8B,EAAYth8B,GACRw5iC,GACFx5iC,EAAMozB,gBACR,GAgCCpgC,EAAO,CACR/C,WAAYA,EACZ3Q,SAAWA,GAAWww9B,EAAMzv7B,OAAOkC,EAAK,gBAE5C,IAwJa83hC,GAA0Bt0jC,EAAAA,KAAWi0jC,IChWlD,SAASM,GAAiBC,EAAWC,GACnC,OAAOD,EAAU58jC,QAAQ,IAAI4mB,OAAO,UAAYi2iC,EAAgB,YAAa,KAAM,MAAM78jC,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,GACtI,CCSA,IAMI496B,GAAc,SAAqBt86B,EAAMoU,GAC3C,OAAOpU,GAAQoU,GAAWA,EAAQzO,MAAM,KAAK/I,SAAQ,SAAUygC,GAC7D,ODRyCzuB,ECQbyuB,QDRIp7B,ECQVjC,GDPZq3C,UACVp1C,EAAQo1C,UAAU7E,OAAO5jC,GACa,kBAAtB3M,EAAQ2M,UACxB3M,EAAQ2M,UAAYysjC,GAAiBp5jC,EAAQ2M,UAAWA,GAExD3M,EAAQhF,aAAa,QAASo+jC,GAAiBp5jC,EAAQ2M,WAAa3M,EAAQ2M,UAAUm0D,SAAW,GAAIn0D,KAN1F,IAAqB3M,EAAS2M,CCS3C,GACF,EAwEI4sjC,GAA6B,SAAU19G,GAGzC,SAAS09G,IAGP,IAFA,IAAIpgkC,EAEKgN,EAAOC,UAAU3M,OAAQ4M,EAAO,IAAIpD,MAAMkD,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAgHzB,OA7GAnN,EAAQ0i9B,EAAiB348B,KAAKuD,MAAMo18B,EAAkB,CAACzi9B,MAAM4K,OAAOqC,KAAUjN,MACxEogkC,eAAiB,CACrBt9G,OAAQ,CAAC,EACTtk6B,MAAO,CAAC,EACRC,KAAM,CAAC,GAGT1+C,EAAMwy+B,QAAU,SAAUN,EAAWC,GACnC,IAAImuF,EAAwBtgkC,EAAMugkC,iBAAiBruF,EAAWC,GAC1Dvt+B,EAAO07jC,EAAsB,GAC7BruF,EAAYquF,EAAsB,GAEtCtgkC,EAAMwgkC,cAAc57jC,EAAM,QAE1B5E,EAAM0g7B,SAAS976B,EAAMqt+B,EAAY,SAAW,QAAS,QAEjDjy+B,EAAMgF,MAAMwt+B,SACdxy+B,EAAMgF,MAAMwt+B,QAAQN,EAAWC,EAEnC,EAEAny+B,EAAMyy+B,WAAa,SAAUP,EAAWC,GACtC,IAAIsuF,EAAyBzgkC,EAAMugkC,iBAAiBruF,EAAWC,GAC3Dvt+B,EAAO67jC,EAAuB,GAG9B17jC,EAFY07jC,EAAuB,GAEhB,SAAW,QAElCzgkC,EAAM0g7B,SAAS976B,EAAMG,EAAM,UAEvB/E,EAAMgF,MAAMyt+B,YACdzy+B,EAAMgF,MAAMyt+B,WAAWP,EAAWC,EAEtC,EAEAny+B,EAAMuy+B,UAAY,SAAUL,EAAWC,GACrC,IAAIuuF,EAAyB1gkC,EAAMugkC,iBAAiBruF,EAAWC,GAC3Dvt+B,EAAO87jC,EAAuB,GAG9B37jC,EAFY27jC,EAAuB,GAEhB,SAAW,QAElC1gkC,EAAMwgkC,cAAc57jC,EAAMG,GAE1B/E,EAAM0g7B,SAAS976B,EAAMG,EAAM,QAEvB/E,EAAMgF,MAAMut+B,WACdvy+B,EAAMgF,MAAMut+B,UAAUL,EAAWC,EAErC,EAEAny+B,EAAM2y+B,OAAS,SAAUT,GACvB,IACItt+B,EADyB5E,EAAMugkC,iBAAiBruF,GAClB,GAElCly+B,EAAMwgkC,cAAc57jC,EAAM,UAE1B5E,EAAMwgkC,cAAc57jC,EAAM,SAE1B5E,EAAM0g7B,SAAS976B,EAAM,OAAQ,QAEzB5E,EAAMgF,MAAM2t+B,QACd3y+B,EAAMgF,MAAM2t+B,OAAOT,EAEvB,EAEAly+B,EAAM4y+B,UAAY,SAAUV,GAC1B,IACItt+B,EADyB5E,EAAMugkC,iBAAiBruF,GAClB,GAElCly+B,EAAM0g7B,SAAS976B,EAAM,OAAQ,UAEzB5E,EAAMgF,MAAM4t+B,WACd5y+B,EAAMgF,MAAM4t+B,UAAUV,EAE1B,EAEAly+B,EAAM4h9B,SAAW,SAAUswB,GACzB,IACItt+B,EADyB5E,EAAMugkC,iBAAiBruF,GAClB,GAElCly+B,EAAMwgkC,cAAc57jC,EAAM,QAE1B5E,EAAM0g7B,SAAS976B,EAAM,OAAQ,QAEzB5E,EAAMgF,MAAM488B,UACd5h9B,EAAMgF,MAAM488B,SAASswB,EAEzB,EAEAly+B,EAAMugkC,iBAAmB,SAAUruF,EAAWC,GAC5C,OAAOny+B,EAAMgF,MAAM8s+B,QAAU,CAAC9x+B,EAAMgF,MAAM8s+B,QAAQnl+B,QAASul+B,GACzD,CAACA,EAAWC,EAChB,EAEAny+B,EAAM2gkC,cAAgB,SAAU57jC,GAC9B,IAAIuO,EAAatT,EAAMgF,MAAMsO,WACzBstjC,EAA2C,kBAAfttjC,EAE5ButjC,EAAgBD,EAAqB,IAD5BA,GAAsBttjC,EAAaA,EAAa,IAAM,IACZvO,EAAOuO,EAAWvO,GAGzE,MAAO,CACL87jC,cAAeA,EACfC,gBAJoBF,EAAqBC,EAAgB,UAAYvtjC,EAAWvO,EAAO,UAKvFg8jC,cAJkBH,EAAqBC,EAAgB,QAAUvtjC,EAAWvO,EAAO,QAMvF,EAEO/E,CACT,CAvHA6i9B,GAAeu9G,EAAe19G,GAyH9B,IAAIth9B,EAASg/jC,EAAc/+jC,UA4D3B,OA1DAD,EAAOs/6B,SAAW,SAAkB976B,EAAMG,EAAM0uf,GAC9C,IAAIjgf,EAAYvT,KAAK0gkC,cAAc57jC,GAAM0uf,EAAQ,aAG7CstkB,EADsB9gkC,KAAK0gkC,cAAc,SACLI,cAE3B,WAATh8jC,GAA+B,SAAV0uf,GAAoBstkB,IAC3CvtjC,GAAa,IAAMutjC,GAKP,WAAVttkB,GACE7uf,GAAMis+B,GAAYjs+B,GAGpB4O,IACFvT,KAAKogkC,eAAet7jC,GAAM0uf,GAASjgf,EA/NzB,SAAkB5O,EAAMoU,GAC/BpU,GAAQoU,GAAWA,EAAQzO,MAAM,KAAK/I,SAAQ,SAAUygC,GAC7D,OCLsCzuB,EDKbyuB,QCLIp7B,EDKVjC,GCJTq3C,UAAWp1C,EAAQo1C,UAAUtZ,IAAInvB,GCHhC,SAAkB3M,EAAS2M,GACxC,OAAI3M,EAAQo1C,YAAoBzoC,GAAa3M,EAAQo1C,UAAUsB,SAAS/pC,IACkC,KAAlG,KAAO3M,EAAQ2M,UAAUm0D,SAAW9gE,EAAQ2M,WAAa,KAAK7P,QAAQ,IAAM6P,EAAY,IAClG,CDAoEus6B,CAASl56B,EAAS2M,KAA6C,kBAAtB3M,EAAQ2M,UAAwB3M,EAAQ2M,UAAY3M,EAAQ2M,UAAY,IAAMA,EAAe3M,EAAQhF,aAAa,SAAUgF,EAAQ2M,WAAa3M,EAAQ2M,UAAUm0D,SAAW,IAAM,IAAMn0D,KADxR,IAAkB3M,EAAS2M,CDMxC,GACF,CA6NMwtjC,CAAUp8jC,EAAM4O,GAEpB,EAEApS,EAAOo/jC,cAAgB,SAAuB57jC,EAAMG,GAClD,IAAIk8jC,EAAwBhhkC,KAAKogkC,eAAet7jC,GAC5C87jC,EAAgBI,EAAsBlwiC,KACtC+viC,EAAkBG,EAAsB/ojC,OACxC6ojC,EAAgBE,EAAsB7h8B,KAC1Cn/H,KAAKogkC,eAAet7jC,GAAQ,CAAC,EAEzB87jC,GACF3/I,GAAYt86B,EAAMi8jC,GAGhBC,GACF5/I,GAAYt86B,EAAMk8jC,GAGhBC,GACF7/I,GAAYt86B,EAAMm8jC,EAEtB,EAEA3/jC,EAAOq+B,OAAS,WACd,IAAIwj7B,EAAchj9B,KAAK+E,MAEnBA,GADIi+8B,EAAY3v8B,YACRsF,EAAAA,GAAAA,GAA8Bqq8B,EAAa,CAAC,gBAExD,OAAoBv38B,EAAAA,cAAoByl+B,IAAYt49B,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACtEwt+B,QAASvy+B,KAAKuy+B,QACdD,UAAWty+B,KAAKsy+B,UAChBE,WAAYxy+B,KAAKwy+B,WACjBE,OAAQ1y+B,KAAK0y+B,OACbC,UAAW3y+B,KAAK2y+B,UAChBhxB,SAAU3h9B,KAAK2h9B,WAEnB,EAEOw+G,CACT,CAvLiC,CAuL/B10jC,EAAAA,WAEF00jC,GAActrjC,aAAe,CAC3BxB,WAAY,IAEd8sjC,GAAcvriC,UAiIT,CAAC,EACN,YG1ZaqsiC,GAAwC7rjC,IAAQC,EAAAA,GAAAA,IAAqB,4BAA6BD,GAClG8rjC,IAAgC5rjC,EAAAA,GAAsBA,GAAC,4BAA6B,CAAC,OAAQ,kBAAmB,mBAAoB,mBAAoB,YAAa,2BAA4B,8BCAxMC,GAAY,CAAC,WAAY,YAAa,mBAAoB,iBAAkB,WAAY,WAsBxF4rjC,IAA6B1rjC,EAAAA,GAAMA,IAAC+s8B,GAAiB,CACzDt38B,KAAM,4BACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAW,CAACA,EAAOpG,KAAM,CAC9C,CAAC,IAADgG,OAAKs2jC,GAA8B,qBAAuBl2jC,EAAO,oBAChE,CACD,CAAC,IAADJ,OAAKs2jC,GAA8B,sBAAwBl2jC,EAAO,qBACjE,CACD,CAAC,IAADJ,OAAKs2jC,GAA8BE,mBAAqBp2jC,EAAOo2jC,kBAC9D,CACD,CAAC,IAADx2jC,OAAKs2jC,GAA8BG,YAAcr2jC,EAAOq2jC,WACvD,CACD,CAAC,IAADz2jC,OAAKs2jC,GAA8B,8BAAgCl2jC,EAAO,6BACzE,CACD,CAAC,IAADJ,OAAKs2jC,GAA8B,+BAAiCl2jC,EAAO,gCAd5CyK,EAgBhCM,IAEG,IAFF,MACFrB,GACDqB,EACC,MAAMurjC,EAAkB5sjC,EAAM0C,YAAY9L,OAAO,YAAa,CAC5D+L,SAAU3C,EAAM0C,YAAYC,SAAS8K,QACrCR,OAAQ,oCAEV,MAAO,CACL3K,QAAS,QACTxS,SAAU,WACVux+B,UAAW,SACX,QAAS,CACPvx+B,SAAU,WACV61B,IAAK,EACLC,MAAO,EACPE,KAAM,GAER,CAAC,MAAD5vB,OAAOs2jC,GAA8B,qBAAuB,CAC1DvqE,WAAY,YACZlk+B,UAAW,kBACX5iB,OAAQ,GAEV,CAAC,MAADjF,OAAOs2jC,GAA8B,sBAAwB,CAC3DvqE,WAAY,YACZlk+B,UAAW,mBACX5iB,OAAQ,GAEV,CAAC,MAADjF,OAAOs2jC,GAA8BE,mBAAqB,CACxD3uiC,UAAW,gBACXtb,WAAYmqjC,GAEd,CAAC,MAAD12jC,OAAOs2jC,GAA8BG,YAAc,CACjD5uiC,UAAW,iBAEb,CAAC,MAAD7nB,OAAOs2jC,GAA8B,8BAAgC,CACnEvqE,WAAY,YACZlk+B,UAAW,mBACXtb,WAAYmqjC,EACZzxjC,OAAQ,GAEV,CAAC,MAADjF,OAAOs2jC,GAA8B,+BAAiC,CACpEvqE,WAAY,YACZlk+B,UAAW,kBACXtb,WAAYmqjC,EACZzxjC,OAAQ,GAEX,ICrFI,MAAM0xjC,GAA6BnsjC,IAAQC,EAAAA,GAAAA,IAAqB,iBAAkBD,GCCnFG,KDA0BD,EAAAA,GAAsBA,GAAC,iBAAkB,CAAC,OAAQ,SAAU,eAAgB,mBAAoB,kBAAmB,iBAAkB,gBAAiB,kBAAmB,eCAvL,CAAC,cAAe,MAAO,eAAgB,eAAgB,iBAAkB,qBAAsB,kBAC/GyZ,GAAa,CAAC,cAmCVyyiC,IAAyB/rjC,EAAAA,GAAMA,IAAC,MAAO,CAC3CvK,KAAM,iBACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHZ6Q,CAI5B,CAAC,GACEgsjC,IAA2BhsjC,EAAAA,GAAMA,IAAC,MAAO,CAC7CvK,KAAM,iBACNkK,KAAM,SACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAO4qD,QAHVngD,CAI9B,CACDuB,QAAS,OACTwiB,eAAgB,SAChBC,WAAY,WAERioiC,IAA8BjsjC,EAAAA,GAAMA,IAACm29B,GAAY,CACrD1g+B,KAAM,iBACNkK,KAAM,eACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAO22jC,cAHPlsjC,EAIjCqY,IAAA,IAAC,MACFpZ,GACDoZ,EAAA,MAAM,CACLhX,MAAO,GACPC,OAAQ,GACR2d,OAAQ,QACRkG,UAAW,SACX5jB,QAAS,OACTwiB,eAAgB,SAChBC,WAAY,SACZ7jB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,UAC3C,IACKynjC,IAAiCnsjC,EAAAA,GAAMA,IAACm29B,GAAY,CACxD1g+B,KAAM,iBACNkK,KAAM,kBACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAO62jC,iBAHJpsjC,EAIpCwszB,IAAA,IAAC,MACFvtzB,GACDutzB,EAAA,MAAM,CACLnrzB,MAAO,GACPC,OAAQ,GACR2d,OAAQ,QACRkG,UAAW,SACX5jB,QAAS,OACTwiB,eAAgB,SAChBC,WAAY,SACZ7jB,MAAOlB,EAAMoD,QAAQmC,KAAK/B,SAC3B,IACK4pjC,IAA4BrsjC,EAAAA,GAAMA,IAACm29B,GAAY,CACnD1g+B,KAAM,iBACNkK,KAAM,aACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOsiiC,YAHT73hC,EAI/BqtzB,IAAA,IAAC,MACFpuzB,GACDouzB,EAAA,OAAKlqzB,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW+H,QAAS,CAC3C1I,M5B3FsB,G4B4FtBC,O5B5FsB,G4B6FtB4d,QAAS,EACTD,OAAQ,KAAF9pB,O5B7FkB,E4B6FD,MACvBgL,MAAOlB,EAAMoD,QAAQmC,KAAK/B,SAC1BpC,SAAU,UACV2jB,WAAY,SACZD,eAAgB,SAChBxiB,QAAS,eACT,IACI+qjC,IAAkCtsjC,EAAAA,GAAMA,IAAC,MAAO,CACpDvK,KAAM,iBACNkK,KAAM,mBACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOg3jC,kBAHHvsjC,CAIrC,CACDuB,QAAS,OACTwiB,eAAgB,SAChBC,WAAY,SACZ1Y,UAxE2B,MA0EvBkhjC,IAAiCxsjC,EAAAA,GAAMA,KFnBtC,SAAgC2C,GACrC,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,+BAEF,SACFlG,EAAQ,UACRuO,EAAS,iBACToviC,EAAgB,SAChBmc,GAEE/5jC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCwD,EA/FkBpD,KACxB,MAAM,QACJoD,EAAO,eACP2kjC,GACE/njC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QACP65C,KAAM,CAAC,aACPyjhC,YAAa,CAAC,oBACd1jhC,MAAO,CAAC,cAAD5zC,OAAe8yjC,IACtByE,WAAY,CAAC,uBAADv3jC,OAAwB8yjC,KAEtC,OAAOzkjC,EAAAA,GAAcA,GAACD,EAAOiojC,GAAuClojC,EAAQ,EAmF5DG,CAAkBnU,GAC5B2P,EAAQqq8B,KACd,GAAI4jG,EACF,OAAoBnpiC,EAAAA,GAAAA,KAAK,MAAO,CAC9BjG,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvO,SAAUA,IAGd,MAAMo9jC,EAAoB,CACxB3jhC,KAAM1lC,EAAQ0lC,KACdyjhC,YAAanpjC,EAAQmpjC,YACrB1jhC,MAAOzlC,EAAQylC,MACf2jhC,WAAYppjC,EAAQopjC,YAEtB,OAAoB3ojC,EAAAA,GAAAA,KAAK2njC,GAA4B,CACnD5tjC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B0v8B,aAAcr88B,GAAwB6E,EAAAA,aAAmB7E,EAAS,CAChEyM,WAAY+ujC,IAEd7ojC,KAAM,eACNvU,UAAuBwU,EAAAA,GAAAA,KAAK2mjC,IAAevnjC,EAAAA,GAAAA,GAAS,CAClD049B,cAAc,EACdD,eAAe,EACfn08B,QAASxoB,EAAM0C,YAAYC,SAAS8K,QACpC9O,WAAY+ujC,GACX1pjC,EAAO,CACR1T,SAAUA,IACR85jC,IAER,GEvBsE,CACpE5zjC,KAAM,iBACNkK,KAAM,kBACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOs2jC,iBAHJ7rjC,CAIpC,CACDsL,UA/E2B,MAiFvBshjC,IAA+B5sjC,EAAAA,GAAMA,IAAC,MAAO,CACjDvK,KAAM,iBACNkK,KAAM,iBACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOs3jC,gBAHN7sjC,CAIlC,CACDwjB,SAAU,WAENspiC,IAAsB9sjC,EAAAA,GAAMA,IAAC,MAAO,CACxCvK,KAAM,iBACNkK,KAAM,gBACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOw3jC,eAHf/sjC,CAIzB,CACDif,OAAQ,GAAF9pB,O5BjIkB,E4BiIH,QACrBoM,QAAS,OACTwiB,eAAgB,WAElB,SAASipiC,GAAW1sjC,GAClB,IAAIvB,EAAOkujC,EAAYC,EACvB,IAAI,YACAC,EAAW,IACX36hC,EAAG,aACH46hC,EAAY,aACZC,EAAY,eACZpjC,EAAc,mBACdqjC,EAAkB,cAClBC,GACEjtjC,EACJ2C,GAAQC,EAAAA,GAAAA,GAA8B5C,EAAMR,IAC9C,MAAM,SACJ2C,EAAQ,sBACRknjC,EAAqB,0BACrBvB,EAAyB,4BACzBsB,EAA2B,WAC3BxqjC,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EAAS,SACT6//B,GACEijC,EACEptG,EAAQy4E,KACRv7/B,EAAM07/B,GAAOzO,GACbsjC,EAAkC,OAAjBJ,GAAyBrtG,EAAMuoG,UAAU91hC,EAAK46hC,GAC/D/yI,EAAagzI,EAAa13xB,MAAK83xB,GAAe1tG,EAAMuoG,UAAUmF,EAAaj7hC,KAC3E43hC,EAAUrqG,EAAMuoG,UAAU91hC,EAAKyK,GAC/BywhC,EAAyI,OAAlI3ujC,EAA6D,OAApDkujC,EAAsB,MAAT1pjC,OAAgB,EAASA,EAAMivB,KAAey6hC,EAA2B,MAAd/tjC,OAAqB,EAASA,EAAWwujC,KAAe3ujC,EAAQurjC,GAExJrqC,EAAgBvmE,GAAa,CAC/Bn4D,YAAamsK,EACbz3G,kBAAoF,OAAhEi3G,EAA8B,MAAb7iiC,OAAoB,EAASA,EAAUmI,KAAe06hC,EAAoC,MAAnBt0G,OAA0B,EAASA,EAAgBpm7B,IAC/Jwj7B,iBAAiB7y8B,EAAAA,GAAAA,GAAS,CACxBwmjC,wBACAD,8BACA5ljC,KAAM,WACN48+B,YAAa0nE,EAEb,iBAAkBroG,EAAM4tG,SAASn7hC,GAAK1C,WACrC7sB,GACH/C,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGgqjC,EAAa,CACpC36hC,MACAvtB,SAAUo16B,MAGduzI,GAAW1qjC,EAAAA,GAAAA,GAA8B+8gC,EAAe3mgC,IACpDgo5B,EAAatr6B,EAAAA,SAAc,IAAMyM,GAAYwnhC,EAAez3/B,IAAM,CAAC/vB,EAAUwnhC,EAAgBz3/B,IAC7Fi3hC,EAAsBzzjC,EAAAA,SAAc,IAAM+p9B,EAAMvx7B,SAASgE,KAAS86hC,GAAoB,CAACvtG,EAAOvt7B,EAAK86hC,IACnGO,EAAqB73jC,EAAAA,SAAc,KACvC,MAAMy2hC,EAAe1sE,EAAM0sE,aAAa1sE,EAAMrt4B,SAASlgD,EAAK86hC,IAC5D,OAAK5D,EAGE3pG,EAAMuoG,UAAU91hC,EAAKut7B,EAAM0rE,YAAYgB,IAFrC1sE,EAAMuoG,UAAU91hC,EAAKi6/B,EAE8B,GAC3D,CAAC6gC,EAAoB96hC,EAAKk3hC,EAA6B3pG,IACpD+tG,EAAoB93jC,EAAAA,SAAc,KACtC,MAAM+3jC,EAAahuG,EAAMguG,WAAWhuG,EAAMrt4B,SAASlgD,EAAK86hC,IACxD,OAAK5D,EAGE3pG,EAAMuoG,UAAU91hC,EAAKut7B,EAAMmtE,UAAU6gC,IAFnChuG,EAAMuoG,UAAU91hC,EAAKu7hC,EAE0B,GACvD,CAACT,EAAoB96hC,EAAKk3hC,EAA6B3pG,IAC1D,OAAoBh88B,EAAAA,GAAAA,KAAK2pjC,GAAKvqjC,EAAAA,GAAAA,GAAS,CAAC,EAAGyqjC,EAAU,CACnDp7hC,IAAKA,EACL/vB,SAAU6+5B,EACVhH,UAAWizJ,GAAiBC,EAC5Bn8K,MAAO+4K,EACPX,oBAAqBA,EACrBoE,mBAAoBA,EACpBC,kBAAmBA,EACnB7ojC,SAAUo16B,EACVw3B,SAAU27G,EAAiB,GAAK,EAChC,gBAAiBnzI,EACjB,eAAgB+vI,EAAU,YAAS/+jC,IAEvC,CAKO,SAAS2ikC,GAAYrrjC,GAC1B,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,oBAEF,mBACJw4jC,EAAkB,UAClBnwjC,EAAS,aACToqjC,EAAY,aACZmF,EAAY,WACZhF,EAAU,QACV78U,EAAO,qBACP0iV,EAAoB,6BACpBnF,EAA4B,SAC5Bn4iC,EAAQ,iBACRs8hC,EAAgB,cAChBihB,EAAgBA,KAAmBpqjC,EAAAA,GAAAA,KAAK,OAAQ,CAC9CxU,SAAU,QACV,eACF04jC,EAAc,gBACdppC,EAAe,YACfiL,EAAW,cACXD,EAAa,QACbG,EAAO,QACPD,EAAO,kBACPuQ,EAAiB,mBACjBC,EAAkB,kBAClBC,EACA4zB,mBAAoBC,EAA2B,SAC/C/zF,EAAQ,oBACR+4E,EAAmB,YACnBib,EAAW,kBACXC,EAAiB,gBACjBC,EAAe,UACfl0J,EAAS,SACT4vH,GACE56hC,EACE2tC,EAAM07/B,GAAOzO,GACbnqE,EAAQy4E,KACRl1hC,EA1OkBpD,KACxB,MAAM,QACJoD,GACEpD,EAYJ,OAAOsD,EAAAA,GAAcA,GAXP,CACZrU,KAAM,CAAC,QACPgxD,OAAQ,CAAC,UACT+rgC,aAAc,CAAC,gBACfK,iBAAkB,CAAC,oBACnBV,gBAAiB,CAAC,mBAClBgB,eAAgB,CAAC,kBACjBE,cAAe,CAAC,iBAChBX,gBAAiB,CAAC,mBAClBv0B,WAAY,CAAC,eAEci0B,GAA4BxojC,EAAQ,EA2NjDG,CAAkBnU,GAE5Bsj5B,EAA4B,QADpB02D,KACM1j8B,UAGdwojC,EAAqBC,GAA+B,EAAEv+K,EAAMng4B,IAASow8B,EAAMzv7B,OAAO3gB,EAAM,gBAAgBkF,OAAO,GAAGkS,eAClHkjgC,EAAiBy9B,GAAkB,CACvCptB,oBACAC,qBACAC,oBACAxQ,UACAD,UACAD,cACAD,gBACAK,aAEIyF,EAAa+I,MACZ+1B,EAAkBC,IAAuBlkiC,EAAAA,GAAAA,GAAc,CAC5D/0B,KAAM,cACNk1B,MAAO,WACPF,WAAY6v8B,EACZh89B,QAAsB,MAAbg85B,GAAoBA,KAExBq0J,EAAoBC,GAAyB54jC,EAAAA,UAAe,IAAMqyjC,GAAcprhC,IACjF4xhC,GAAkB97G,EAAAA,GAAAA,IAAiBvg7B,IACnC5hB,GAGJs9iC,EAAqB17hC,EAAI,IAErBs8hC,EAAWt8hC,IACVy3/B,EAAez3/B,KAClBy7hC,EAAmBz7hC,GACnBo8hC,EAAsBp8hC,GACC,MAAvB6ghC,GAA+BA,GAAoB,GACnDqb,GAAoB,GACtB,EAEI1+iC,GAAgB+i8B,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAOuiB,KAC7C,OAAQviB,EAAMxkB,KACZ,IAAK,UACHqjkC,EAAS/uG,EAAMsqE,QAAQ73/B,GAAM,IAC7BviB,EAAMozB,iBACN,MACF,IAAK,YACHyrhC,EAAS/uG,EAAMsqE,QAAQ73/B,EAAK,IAC5BviB,EAAMozB,iBACN,MACF,IAAK,YACH,CACE,MAAM0rhC,EAAuBhvG,EAAMsqE,QAAQ73/B,EAAKog3B,EAAQ,GAAK,GACvDo8K,EAAqBjvG,EAAM2qE,UAAUl4/B,EAAKog3B,EAAQ,GAAK,GACvDq8K,EAAoBrlC,GAAuB,CAC/C7pE,QACApw8B,KAAMo/iC,EACN/kC,QAASp3I,EAAQm8K,EAAuBhvG,EAAM0sE,aAAauiC,GAC3DjlC,QAASn3I,EAAQmtE,EAAMguG,WAAWiB,GAAsBD,EACxD9kC,iBACAC,aAEF4kC,EAASG,GAAqBF,GAC9B9+iC,EAAMozB,iBACN,KACF,CACF,IAAK,aACH,CACE,MAAM0rhC,EAAuBhvG,EAAMsqE,QAAQ73/B,EAAKog3B,GAAS,EAAI,GACvDo8K,EAAqBjvG,EAAM2qE,UAAUl4/B,EAAKog3B,GAAS,EAAI,GACvDq8K,EAAoBrlC,GAAuB,CAC/C7pE,QACApw8B,KAAMo/iC,EACN/kC,QAASp3I,EAAQmtE,EAAM0sE,aAAauiC,GAAsBD,EAC1DhlC,QAASn3I,EAAQm8K,EAAuBhvG,EAAMguG,WAAWiB,GACzD/kC,iBACAC,aAEF4kC,EAASG,GAAqBF,GAC9B9+iC,EAAMozB,iBACN,KACF,CACF,IAAK,OACHyrhC,EAAS/uG,EAAM0rE,YAAYj5/B,IAC3BviB,EAAMozB,iBACN,MACF,IAAK,MACHyrhC,EAAS/uG,EAAMmtE,UAAU16/B,IACzBviB,EAAMozB,iBACN,MACF,IAAK,SACHyrhC,EAAS/uG,EAAM2qE,UAAUl4/B,EAAK,IAC9BviB,EAAMozB,iBACN,MACF,IAAK,WACHyrhC,EAAS/uG,EAAM2qE,UAAUl4/B,GAAM,IAC/BviB,EAAMozB,iBAIV,IAEIiw6B,GAAcP,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAOuiB,IAAQs8hC,EAASt8hC,KACxD0qd,GAAa61d,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAOuiB,KACtCi8hC,GAAoB1uG,EAAMuoG,UAAUqG,EAAoBn8hC,KACnC,MAAvB6ghC,GAA+BA,GAAoB,GACrD,IAEIia,EAAqBvtG,EAAMvx7B,SAAS05hC,GACpCgH,EAAoBl5jC,EAAAA,SAAc,IAAMq3jC,EAAaz2iC,QAAO4b,KAASA,IAAK3+B,KAAI2+B,GAAOut7B,EAAM8qE,WAAWr4/B,MAAO,CAACut7B,EAAOstG,IAGrH8B,EAAgB7B,EAEhB8B,EAAep5jC,EAAAA,SAAc,IAAmBA,EAAAA,aAAmB,CAACm5jC,IACpEE,EAAqBtvG,EAAM0rE,YAAYxu/B,GACvCmwhC,EAAep3jC,EAAAA,SAAc,KACjC,MAAMy2hC,EAAe1sE,EAAM0sE,aAAay7B,GAClC6F,EAAahuG,EAAMguG,WAAW7F,GACpC,OAAIj+B,EAAe0kC,IAAuB5uG,EAAM2zE,WAAWi7B,EAAoBZ,IAAehuG,EAAM4zE,YAAYg7B,EAAoBliC,GAC3H7C,GAAuB,CAC5B7pE,QACApw8B,KAAMg/iC,EACN3kC,QAASyC,EACT1C,QAASgkC,EACTjkC,cACAD,gBACAI,iBACAC,aAGGykC,CAAkB,GACxB,CAACzG,EAAcr+B,EAAeC,EAAa6kC,EAAoB1kC,EAAgBlqE,EAAOmqE,IACnFolC,EAAiBt5jC,EAAAA,SAAc,KACnC,MAAMu5jC,EAA2BxvG,EAAMy0E,YAAY0zB,EAAch+B,GAC3DslC,EAAYzvG,EAAM0vG,aAAaF,GACrC,IAAI94B,EAAY12E,EAAM2qE,UAAU6kC,EAA0B,GAC1D,KAAOf,GAAmBgB,EAAU5kkC,OAAS4jkC,GAAiB,CAC5D,MAAMkB,EAAkB3vG,EAAM0vG,aAAah5B,GACrCk5B,EAAgB5vG,EAAMuoG,UAAUkH,EAAUA,EAAU5kkC,OAAS,GAAG,GAAI8kkC,EAAgB,GAAG,IAC7FA,EAAgBlhkC,MAAMmhkC,EAAgB,EAAI,GAAG7jkC,SAAQ+jB,IAC/C2/iC,EAAU5kkC,OAAS4jkC,GACrBgB,EAAUrkkC,KAAK0kB,EACjB,IAEF4mhC,EAAY12E,EAAM2qE,UAAU+L,EAAW,EACzC,CACA,OAAO+4B,CAAS,GACf,CAACtH,EAAcsG,EAAiBzuG,EAAOmqE,IAC1C,OAAoBxmhC,EAAAA,GAAAA,MAAMqojC,GAAwB,CAChDjojC,KAAM,OACN,kBAAmBwqjC,EACnBxwjC,UAAWwF,EAAQnU,KACnBI,SAAU,EAAcmU,EAAAA,GAAAA,MAAMsojC,GAA0B,CACtDlojC,KAAM,MACNhG,UAAWwF,EAAQ68C,OACnB5wD,SAAU,CAACg/jC,IAAkCxqjC,EAAAA,GAAAA,KAAKoojC,GAAgC,CAChFxyiC,QAAS,UACT7V,KAAM,eACN,aAAc6rhC,EAAW+H,8BACzB55hC,UAAWwF,EAAQ8ojC,gBACnB78jC,SAAUogiC,EAAWgI,+BACnBnM,GAAYzrE,EAAO9i7B,GAAKppC,KAAI,CAAC89E,EAASnlF,KACxC,IAAIojkC,EACJ,MAAMp9hC,EAAMut7B,EAAMzv7B,OAAOqhD,EAAS,gBAClC,OAAoB5tE,EAAAA,GAAAA,KAAKkojC,GAA6B,CACpDtyiC,QAAS,UACT7V,KAAM,eACN,aAAci88B,EAAMzv7B,OAAOyv7B,EAAMsqE,QAAQglC,EAAoB7ikC,GAAI,WACjEsR,UAAWwF,EAAQ4ojC,aACnB38jC,SAA4G,OAAjGqgkC,EAA4C,MAAtBxB,OAA6B,EAASA,EAAmB57hC,EAAKm/C,IAAoBi++B,EAAsBp9hC,GACxIA,EAAMhmC,EAAEsL,WAAW,OAEtB0zuB,GAAuBznuB,EAAAA,GAAAA,KAAKuojC,GAAiC,CAC/DxujC,UAAWwF,EAAQipjC,iBACnBh9jC,SAAU4+jC,OACMpqjC,EAAAA,GAAAA,KAAKyojC,IAAgCrpjC,EAAAA,GAAAA,GAAS,CAC9DkmjC,SAAU8F,EACVjjH,SAAU68G,EACV7b,iBAAkBA,EAClB+a,eAAgBA,EAChBnqjC,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQuojC,kBAClChtC,EAAiB,CAClBziD,QAASgzF,EACT7/jC,UAAuBwU,EAAAA,GAAAA,KAAK6ojC,GAA8B,CACxDr2jC,IAAK64jC,EACLtrjC,KAAM,WACNhG,UAAWwF,EAAQupjC,eACnBt9jC,SAAU+/jC,EAAez7jC,KAAI,CAACgc,EAAM1hB,KAAuBuV,EAAAA,GAAAA,MAAMopjC,GAAqB,CACpFhpjC,KAAM,MACNhG,UAAWwF,EAAQypjC,cAInB,gBAAiB5+jC,EAAQ,EACzBoB,SAAU,CAACg/jC,IAAkCxqjC,EAAAA,GAAAA,KAAKsojC,GAA2B,CAC3EvujC,UAAWwF,EAAQu0hC,WACnB/zhC,KAAM,YACN,aAAc6rhC,EAAWiI,gCAAgC73E,EAAM8vG,cAAchgjC,EAAK,KAClFtgB,SAAUogiC,EAAWmI,uBAAuB/3E,EAAM8vG,cAAchgjC,EAAK,OACnEA,EAAKhc,KAAI,CAAC2+B,EAAKs9hC,KAA0B/rjC,EAAAA,GAAAA,KAAKipjC,GAAY,CAC5DG,YAAa79jC,EACbkjC,IAAKA,EACL66hC,aAAc6B,EACd9B,aAAcA,EACd/7G,UAAWrh8B,EACXmB,QAASmi8B,EACTli8B,OAAQ8re,EACRgtkB,YAAa2E,EACb5kC,eAAgBA,EAChBqjC,mBAAoBA,EACpBC,cAAekB,EAGf,gBAAiBqB,EAAW,GAC3Bt9hC,EAAI16B,gBACN,QAAF3C,OAAU0a,EAAK,cAIxB,CCvdO,SAASkgjC,GAA4BpwjC,GAC1C,OAAOC,EAAAA,GAAAA,IAAqB,kBAAmBD,EACjD,CACO,MAAMqwjC,IAAsBnwjC,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,OAAQ,cAAe,WAAY,aCF3GC,GAAY,CAAC,YAAa,WAAY,WAAY,WAAY,QAAS,WAAY,UAAW,YAAa,UAAW,SAAU,eAAgB,aAAc,gBAkB9JmwjC,IAAmBjwjC,EAAAA,GAAMA,IAAC,MAAO,CACrCvK,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAW,CAACA,EAAOpG,OAHnB6Q,EAItBM,IAAA,IAAC,WACFJ,GACDI,EAAA,MAAM,CACLsjB,UAAuC,IAA5B1jB,EAAWgwjC,aAAqB,QAAU,MACrD3ujC,QAAS,OACTyiB,WAAY,SACZD,eAAgB,SACjB,IACKosiC,IAAqBnwjC,EAAAA,GAAMA,IAAC,SAAU,CAC1CvK,KAAM,kBACNkK,KAAM,cACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAW,CAACA,EAAO66jC,YAAa,CACrD,CAAC,KAADj7jC,OAAM66jC,GAAoBvtjC,WAAalN,EAAOkN,UAC7C,CACD,CAAC,KAADtN,OAAM66jC,GAAoB/qjC,WAAa1P,EAAO0P,YANvBjF,EAQxBjB,IAAA,IAAC,MACFE,GACDF,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACbhD,MAAO,QACPmhB,gBAAiB,cACjBzB,OAAQ,EACRU,QAAS,GACRthB,EAAM+C,WAAW0H,UAAW,CAC7BuV,OAAQ,QACR3d,OAAQ,GACRD,MAAO,GACPqb,aAAc,GACdhhB,OAAQ,UACR,UAAW,CACT4lB,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO+19B,cAAa,OAAAnj+B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,KAAM4O,GAAM3U,EAAMoD,QAAQE,OAAOC,OAAQvD,EAAMoD,QAAQE,OAAOyC,eAEzL,UAAW,CACTsc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO+19B,cAAa,OAAAnj+B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,KAAM4O,GAAM3U,EAAMoD,QAAQE,OAAOC,OAAQvD,EAAMoD,QAAQE,OAAOyC,eAEzL,aAAc,CACZtJ,OAAQ,OACRm0M,cAAe,QAEjB,CAAC,KAAD16M,OAAM66jC,GAAoBvtjC,WAAa,CACrCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,WAE5C,CAAC,KAADvP,OAAM66jC,GAAoB/qjC,WAAa,CACrC9E,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC7CuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvD,mBAAoB,CAClBgf,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQe,QAG3D,IAKW6qjC,GAA4Br6jC,EAAAA,MAAW,SAAsB2M,GACxE,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,qBAEF,UACF6k6B,EAAS,SACT/q6B,EAAQ,SACRkT,EAAQ,SACRwC,EAAQ,MACRtX,EAAK,SACLkk9B,EAAQ,QACR53pB,EAAO,UACPo3pB,EAAS,QACTlg8B,EAAO,OACPC,EACA,eAAgBk/iC,EAChB,aAAcnuC,GAEZ7yhC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCvJ,EAAMP,EAAAA,OAAa,MACnBsN,EA5FkBpD,KACxB,MAAM,SACJuC,EAAQ,SACRwC,EAAQ,QACR3B,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QACPihkC,YAAa,CAAC,cAAe3tjC,GAAY,WAAYwC,GAAY,aAEnE,OAAOzB,EAAAA,GAAcA,GAACD,EAAOwsjC,GAA6BzsjC,EAAQ,EAkFlDG,CAAkBnU,GAOlC,OANA07B,EAAAA,GAAiBA,IAAC,KAEd,IAAIuliC,EADFj2J,IAE8B,OAA/Bi2J,EAAeh6jC,EAAIU,UAAoBs5jC,EAAalrjC,QACvD,GACC,CAACi15B,KACgBv25B,EAAAA,GAAAA,KAAKksjC,IAAkB9sjC,EAAAA,GAAAA,GAAS,CAClDrF,UAAWwF,EAAQnU,KACnB+Q,WAAY5Q,GACX2T,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKosjC,GAAoB,CAC9C55jC,IAAKA,EACLkM,SAAUA,EACVpT,KAAM,SACNyU,KAAM,QACN+t8B,SAAUpv8B,GAAY,EAAIov8B,EAC1B,eAAgBy+G,EAChB,eAAgBrrjC,EAChB,aAAck9gC,EACdlouB,QAAShqS,GAASgqS,EAAQhqS,EAAOtiB,GACjC0j9B,UAAWph8B,GAASoh8B,EAAUph8B,EAAOtiB,GACrCwjB,QAASlB,GAASkB,EAAQlB,EAAOtiB,GACjCyjB,OAAQnB,GAASmB,EAAOnB,EAAOtiB,GAC/BmQ,UAAWwF,EAAQ8sjC,YACnBlwjC,WAAY5Q,EACZC,SAAUA,MAGhB,IChIO,SAASihkC,GAA6B7wjC,GAC3C,OAAOC,EAAAA,GAAAA,IAAqB,mBAAoBD,EAClD,EACoCE,EAAAA,GAAsBA,GAAC,mBAAoB,CAAC,SAAzE,MCFDC,GAAY,CAAC,YAAa,QAAS,eAAgB,gBAAiB,WAAY,gBAAiB,cAAe,UAAW,UAAW,WAAY,qBAAsB,WAAY,wBAAyB,YAAa,eAAgB,WAAY,sBAAuB,eAAgB,WAAY,eAwC/S,MAAM2wjC,IAAoBzwjC,EAAAA,GAAMA,IAAC,MAAO,CACtCvK,KAAM,mBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHrB6Q,CAIvB,CACDuB,QAAS,OACTuiB,SAAU,OACVG,aAAc,UACd/E,QAAS,QACT7d,MAAOy4iC,GAEP70hC,UAAW,eAWAyriC,GAA6B16jC,EAAAA,YAAiB,SAAuB2M,EAASpM,GACzF,MAAMjH,EAtCD,SAA0CA,EAAOmG,GACtD,MAAMsq9B,EAAQy4E,KACRlC,EAAemC,KACfhtF,EAAam9E,GAAc,CAC/Bt5hC,QACAmG,SAEF,OAAO0N,EAAAA,GAAAA,GAAS,CACd0mhC,eAAe,EACfC,aAAa,GACZr+E,EAAY,CACbu+E,QAASM,GAAiBvqE,EAAOtU,EAAWu+E,QAASsM,EAAatM,SAClED,QAASO,GAAiBvqE,EAAOtU,EAAWs+E,QAASuM,EAAavM,UAEtE,CAwBgB4mC,CAAiChujC,EAAS,qBAClD,UACF7E,EACAnQ,MAAO2ohC,EAAS,aAChBj4/B,EACAo0gC,cAAeirB,EAAiB,SAChCj7iC,EAAQ,cACRonhC,EAAa,YACbC,EAAW,QACXC,EAAO,QACPC,EAAO,SACPlqC,EAAQ,mBACRy6C,EAAkB,SAClB3phC,EAAQ,sBACR+4iC,EAAqB,UACrBrvJ,GAAY,EAAK,aACjBs2J,EAAY,SACZt2F,EAAQ,oBACR+4E,EAAmB,aACnB6c,EAAe,EACfhmC,SAAU2kB,EAAY,YACtByf,GACEh/jC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,MACJnS,EAAK,kBACLwhjC,EAAiB,SACjBjlB,GACEolB,GAA+B,CACjC75iC,KAAM,gBACNy0hC,SAAU2kB,EACVlhjC,MAAO2ohC,EACPj4/B,eACAyh+B,SAAUA,EACVgvD,aAAc1b,KAEVn2/B,EAAM07/B,GAAOzO,GACbjrhC,EAAQqq8B,KACRyW,EAAQy4E,KACR/F,EAAgBz8hC,EAAAA,SAAc,IAAMo9hC,GAAuBG,yBAAyB,CACxF5liC,QACAoy9B,QACAzw9B,QACA46hC,WACAuI,cAAeirB,EACflxB,YAAaF,GAAyB18gC,SACpC,IAEE1P,EAAa5Q,EACbgU,EAhGkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBqhkC,GAA8BltjC,EAAQ,EAyFnDG,CAAkBvD,GAC5B2wjC,EAAa76jC,EAAAA,SAAc,IAAM+p9B,EAAMvx7B,SAASyO,IAAM,CAAC8i7B,EAAO9i7B,IAC9D6zhC,EAAgB96jC,EAAAA,SAAc,IACrB,MAATrI,EACKoy9B,EAAMvx7B,SAAS7gC,GAEpBg8jC,EACK,KAEF5pG,EAAMvx7B,SAASikgC,IACrB,CAAC9kiC,EAAOoy9B,EAAO4pG,EAAuBl3B,KAClCs+B,EAAcC,GAAmBh7jC,EAAAA,UAAe,IAAM86jC,GAAiBD,KACvEpC,EAAkBC,IAAuBlkiC,EAAAA,GAAAA,GAAc,CAC5D/0B,KAAM,gBACNk1B,MAAO,WACPF,WAAY6v8B,EACZh89B,QAAsB,MAAbg85B,GAAoBA,IAEzB22J,GAAiBl+G,EAAAA,GAAAA,IAAiBm+G,IACtCxC,EAAoBwC,GAChB7d,GACFA,EAAoB6d,EACtB,IAEIC,EAAkBn7jC,EAAAA,aAAkBo7jC,IACxC,MAAMC,EAAoBtxG,EAAM0sE,aAAa3C,GAAe/pE,EAAMrw7B,QAAQuN,EAAK+s/B,GAAW/s/B,EAAM+s/B,GAC1FsnC,EAAmBvxG,EAAM0sE,aAAa5C,GAAiB9pE,EAAMpw7B,SAASsN,EAAK8s/B,GAAW9s/B,EAAM8s/B,GAC5FwnC,EAAkBxxG,EAAM0sE,aAAa2kC,GAC3C,QAAIrxG,EAAMpw7B,SAAS4hiC,EAAiBF,OAGhCtxG,EAAMrw7B,QAAQ6hiC,EAAiBD,MAG9B/2B,GAGEA,EAAmBg3B,GAAgB,GACzC,CAAC1nC,EAAeC,EAAaC,EAASC,EAAS/s/B,EAAKs9/B,EAAoBx6E,IACrEyxG,GAAuBz+G,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAOL,KACpD,GAAIgB,EACF,OAEF,MAAM+mE,EAAUoo4B,EAAMrt4B,SAAkB,MAAT/kF,EAAgBA,EAAQ8kiC,EAAe7ihC,GACtEu/hC,EAAkBx39B,EAAQ,IAEtB85+B,GAAa1+G,EAAAA,GAAAA,IAAiBnj8B,IAC7BuhjC,EAAgBpxG,EAAMrt4B,SAAkB,MAAT/kF,EAAgBA,EAAQ8kiC,EAAe7ihC,MACzEohjC,EAAgBphjC,GAChBqhjC,GAAe,GACXL,GACFA,EAAahhjC,GAEjB,IAEF5Z,EAAAA,WAAgB,KACdg7jC,GAAgBU,GAAsC,OAAlBZ,GAA0BY,IAAqBZ,EAAgBA,EAAgBY,GAAiB,GACnI,CAACZ,IACJ,MAAM9gjC,GAAgB+i8B,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAOL,KAC7C,MAAM6h4B,EAAe,GAErB,OAAQxh4B,EAAMxkB,KACZ,IAAK,UACHgmkC,GAAYhgL,EAAe7h4B,EAHX,GAGkC6h4B,GAClDxh4B,EAAMozB,iBACN,MACF,IAAK,YACHouhC,GAAYhgL,EAAe7h4B,EAPX,GAOkC6h4B,GAClDxh4B,EAAMozB,iBACN,MACF,IAAK,YACHouhC,GAAYhgL,EAAe7h4B,GAA6B,QAApB3Q,EAAM2G,WAAuB,EAAI,IAAM6r4B,GAC3Exh4B,EAAMozB,iBACN,MACF,IAAK,aACHouhC,GAAYhgL,EAAe7h4B,GAA6B,QAApB3Q,EAAM2G,UAAsB,GAAK,IAAM6r4B,GAC3Exh4B,EAAMozB,iBAIV,IAEIsuhC,GAAmB5+G,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAOL,KAChD6hjC,EAAW7hjC,EAAM,IAEbgijC,GAAkB7+G,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAOL,KAC3CmhjC,IAAiBnhjC,GACnBqhjC,GAAe,EACjB,IAEF,OAAoBltjC,EAAAA,GAAAA,KAAK0sjC,IAAmBttjC,EAAAA,GAAAA,GAAS,CACnD5M,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ4D,KAAM,aACN,kBAAmBwqjC,GAClBrrjC,EAAO,CACR1T,SAAUg7hC,GAAgBxqE,EAAgB,MAATpy9B,EAAgBA,EAAQ8kiC,GAAe5+hC,KAAI+b,IAC1E,MAAMiijC,EAAc9xG,EAAMvx7B,SAAS5e,GAC7BkijC,EAAY/xG,EAAMzv7B,OAAO1gB,EAAO,cAChCmijC,EAAahyG,EAAMzv7B,OAAO1gB,EAAO,SACjCyq6B,EAAaw3I,IAAgBf,EAC7BxvJ,EAAa7+5B,GAAY0ujC,EAAgBvhjC,GAC/C,OAAoB7L,EAAAA,GAAAA,KAAKssjC,GAAc,CACrCprjC,SAAUo16B,EACV1s7B,MAAOkkkC,EACP53wB,QAASu3wB,EACTngH,UAAWrh8B,EACXsq5B,UAAWm0J,GAAoBoD,IAAgBd,EAC/CtujC,SAAU6+5B,EACVuwC,SAAUggH,IAAgBd,EAAe,GAAK,EAC9C5/iC,QAASwgjC,EACTvgjC,OAAQwgjC,EACR,eAAgBf,IAAegB,EAAc,YAASxmkC,EACtD,aAAc0mkC,EACd7B,aAAcA,EACd3gkC,SAAUuikC,GACTA,EAAU,MAGnB,ICzOO,SAASE,GAA2BryjC,GACzC,OAAOC,EAAAA,GAAAA,IAAqB,iBAAkBD,EAChD,CACO,MAAMsyjC,IAAqBpyjC,EAAAA,GAAsBA,GAAC,iBAAkB,CAAC,OAAQ,aAAc,WAAY,aCFxGC,GAAY,CAAC,YAAa,YAAa,WAAY,WAAY,WAAY,QAAS,WAAY,UAAW,YAAa,UAAW,SAAU,eAAgB,eAmB7JoyjC,IAAkBlyjC,EAAAA,GAAMA,IAAC,MAAO,CACpCvK,KAAM,iBACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAW,CAACA,EAAOpG,OAHpB6Q,EAIrBM,IAAA,IAAC,WACFJ,GACDI,EAAA,MAAM,CACLsjB,UAAsC,IAA3B1jB,EAAWiyjC,YAAoB,QAAU,MACpD5wjC,QAAS,OACTyiB,WAAY,SACZD,eAAgB,SACjB,IACKquiC,IAAoBpyjC,EAAAA,GAAMA,IAAC,SAAU,CACzCvK,KAAM,iBACNkK,KAAM,aACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAW,CAACA,EAAO88jC,WAAY,CACpD,CAAC,KAADl9jC,OAAM88jC,GAAmBxvjC,WAAalN,EAAOkN,UAC5C,CACD,CAAC,KAADtN,OAAM88jC,GAAmBhtjC,WAAa1P,EAAO0P,YANvBjF,EAQvBjB,IAAA,IAAC,MACFE,GACDF,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACbhD,MAAO,QACPmhB,gBAAiB,cACjBzB,OAAQ,EACRU,QAAS,GACRthB,EAAM+C,WAAW0H,UAAW,CAC7BuV,OAAQ,QACR3d,OAAQ,GACRD,MAAO,GACPqb,aAAc,GACdhhB,OAAQ,UACR,UAAW,CACT4lB,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO+19B,cAAa,OAAAnj+B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,KAAMsO,GAAM3U,EAAMoD,QAAQE,OAAOC,OAAQvD,EAAMoD,QAAQE,OAAO+C,eAEzL,UAAW,CACTgc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO+19B,cAAa,OAAAnj+B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,KAAM4O,GAAM3U,EAAMoD,QAAQE,OAAOC,OAAQvD,EAAMoD,QAAQE,OAAOyC,eAEzL,aAAc,CACZtJ,OAAQ,OACRm0M,cAAe,QAEjB,CAAC,KAAD16M,OAAM88jC,GAAmBxvjC,WAAa,CACpCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,WAE5C,CAAC,KAADvP,OAAM88jC,GAAmBhtjC,WAAa,CACpC9E,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC7CuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvD,mBAAoB,CAClBgf,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQe,QAG3D,IAKW8sjC,GAA2Bt8jC,EAAAA,MAAW,SAAqB2M,GACtE,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,oBAEF,UACF6k6B,EAAS,UACTx85B,EAAS,SACTvO,EAAQ,SACRkT,EAAQ,SACRwC,EAAQ,MACRtX,EAAK,SACLkk9B,EAAQ,QACR53pB,EAAO,UACPo3pB,EAAS,QACTlg8B,EAAO,OACPC,EACA,eAAgBk/iC,GAEdhhkC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCvJ,EAAMP,EAAAA,OAAa,MACnBsN,EA5FkBpD,KACxB,MAAM,SACJuC,EAAQ,SACRwC,EAAQ,QACR3B,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QACPkjkC,WAAY,CAAC,aAAc5vjC,GAAY,WAAYwC,GAAY,aAEjE,OAAOzB,EAAAA,GAAcA,GAACD,EAAOyujC,GAA4B1ujC,EAAQ,EAkFjDG,CAAkBnU,GASlC,OANA0G,EAAAA,WAAgB,KACVsk6B,GAEF/j6B,EAAIU,QAAQoO,OACd,GACC,CAACi15B,KACgBv25B,EAAAA,GAAAA,KAAKmujC,IAAiB/ujC,EAAAA,GAAAA,GAAS,CACjDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAY5Q,GACX2T,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKqujC,GAAmB,CAC7C77jC,IAAKA,EACLkM,SAAUA,EACVpT,KAAM,SACNyU,KAAM,QACN+t8B,SAAUpv8B,GAAY,EAAIov8B,EAC1B,eAAgBy+G,EAChB,eAAgBrrjC,EAChBg1S,QAAShqS,GAASgqS,EAAQhqS,EAAOtiB,GACjC0j9B,UAAWph8B,GAASoh8B,EAAUph8B,EAAOtiB,GACrCwjB,QAASlB,GAASkB,EAAQlB,EAAOtiB,GACjCyjB,OAAQnB,GAASmB,EAAOnB,EAAOtiB,GAC/BmQ,UAAWwF,EAAQ+ujC,WACnBnyjC,WAAY5Q,EACZC,SAAUA,MAGhB,IClIO,SAASgjkC,GAA4B5yjC,GAC1C,OAAOC,EAAAA,GAAAA,IAAqB,kBAAmBD,EACjD,EACmCE,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,SAAvE,MCFDC,GAAY,CAAC,YAAa,YAAa,QAAS,eAAgB,gBAAiB,WAAY,gBAAiB,cAAe,UAAW,UAAW,WAAY,WAAY,oBAAqB,wBAAyB,cAAe,WAAY,sBAAuB,cAAe,WAAY,eA0C5S,MAAM0yjC,IAAmBxyjC,EAAAA,GAAMA,IAAC,MAAO,CACrCvK,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHtB6Q,CAItB,CACDuB,QAAS,OACTsiB,cAAe,MACfC,SAAU,OACVq+5B,UAAW,OACX7g7B,OAAQ,OACR4d,QAAS,QACT7d,MAAOy4iC,GACP14hC,UpCrDiC,IoCuDjC6D,UAAW,aACXl2B,SAAU,aAWC0jkC,GAA4Bz8jC,EAAAA,YAAiB,SAAsB2M,EAASpM,GACvF,MAAMjH,EA5CR,SAAyCA,EAAOmG,GAC9C,IAAIi9jC,EACJ,MAAM3yG,EAAQy4E,KACRlC,EAAemC,KACfhtF,EAAam9E,GAAc,CAC/Bt5hC,QACAmG,SAEF,OAAO0N,EAAAA,GAAAA,GAAS,CACd2mhC,aAAa,EACbD,eAAe,GACdp+E,EAAY,CACb0mH,YAAiE,OAAnDO,EAAwBjnH,EAAW0mH,aAAuBO,EAAwB,EAChG1oC,QAASM,GAAiBvqE,EAAOtU,EAAWu+E,QAASsM,EAAatM,SAClED,QAASO,GAAiBvqE,EAAOtU,EAAWs+E,QAASuM,EAAavM,UAEtE,CA4BgB4oC,CAAgChwjC,EAAS,oBACjD,UACF235B,EAAS,UACTx85B,EACAnQ,MAAO2ohC,EAAS,aAChBj4/B,EACAo0gC,cAAeirB,EAAiB,SAChCj7iC,EAAQ,cACRonhC,EAAa,YACbC,EAAW,QACXC,EAAO,QACPC,EAAO,SACPlqC,EAAQ,SACRlv+B,EAAQ,kBACR4phC,EAAiB,sBACjBmvB,EAAqB,YACrBiJ,EAAW,SACXt4F,EAAQ,oBACR+4E,EAAmB,YACnB8e,EACAjoC,SAAU2kB,EAAY,YACtByf,GACEh/jC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,MACJnS,EAAK,kBACLwhjC,EAAiB,SACjBjlB,GACEolB,GAA+B,CACjC75iC,KAAM,eACNy0hC,SAAU2kB,EACVlhjC,MAAO2ohC,EACPj4/B,eACAyh+B,SAAUA,EACVgvD,aAAc1b,KAEVn2/B,EAAM07/B,GAAOzO,GACbjrhC,EAAQqq8B,KACRyW,EAAQy4E,KACR/F,EAAgBz8hC,EAAAA,SAAc,IAAMo9hC,GAAuBG,yBAAyB,CACxF5liC,QACAoy9B,QACAzw9B,QACA46hC,WACAuI,cAAeirB,EACflxB,YAAaF,GAAyBt//B,QACpC,IAEE9sB,EAAa5Q,EACbgU,EAtGkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBojkC,GAA6BjvjC,EAAQ,EA+FlDG,CAAkBvD,GAC5B2yjC,EAAY78jC,EAAAA,SAAc,IAAM+p9B,EAAM8yE,QAAQ51/B,IAAM,CAAC8i7B,EAAO9i7B,IAC5D61hC,EAAe98jC,EAAAA,SAAc,IACpB,MAATrI,EACKoy9B,EAAM8yE,QAAQlliC,GAEnBg8jC,EACK,KAEF5pG,EAAM8yE,QAAQJ,IACpB,CAAC9kiC,EAAOoy9B,EAAO4pG,EAAuBl3B,KAClCsgC,EAAaC,GAAkBh9jC,EAAAA,UAAe,IAAM88jC,GAAgBD,KACpEpE,EAAkBC,IAAuBlkiC,EAAAA,GAAAA,GAAc,CAC5D/0B,KAAM,eACNk1B,MAAO,WACPF,WAAY6v8B,EACZh89B,QAAsB,MAAbg85B,GAAoBA,IAEzB22J,GAAiBl+G,EAAAA,GAAAA,IAAiBm+G,IACtCxC,EAAoBwC,GAChB7d,GACFA,EAAoB6d,EACtB,IAEI+B,EAAiBj9jC,EAAAA,aAAkBo7jC,IACvC,GAAItnC,GAAe/pE,EAAMmzG,aAAa9B,EAAgBn0hC,GACpD,OAAO,EAET,GAAI4s/B,GAAiB9pE,EAAMozG,YAAY/B,EAAgBn0hC,GACrD,OAAO,EAET,GAAI+s/B,GAAWjqE,EAAMmzG,aAAa9B,EAAgBpnC,GAChD,OAAO,EAET,GAAID,GAAWhqE,EAAMozG,YAAY/B,EAAgBrnC,GAC/C,OAAO,EAET,IAAKyQ,EACH,OAAO,EAET,MAAM44B,EAAiBrzG,EAAMyqE,YAAY4mC,GACzC,OAAO52B,EAAkB44B,EAAe,GACvC,CAACvpC,EAAeC,EAAaC,EAASC,EAAS/s/B,EAAKu9/B,EAAmBz6E,IACpEszG,GAAsBtgH,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAO+c,KACnD,GAAIpc,EACF,OAEF,MAAM+mE,EAAUoo4B,EAAM4wE,QAAiB,MAAThjiC,EAAgBA,EAAQ8kiC,EAAezlgC,GACrEmihC,EAAkBx39B,EAAQ,IAEtB27+B,GAAYvgH,EAAAA,GAAAA,IAAiB/l7B,IAC5BimiC,EAAelzG,EAAM4wE,QAAiB,MAAThjiC,EAAgBA,EAAQ8kiC,EAAezlgC,MACvEgmiC,EAAehmiC,GACfikiC,GAAe,GACA,MAAf2B,GAAuBA,EAAY5liC,GACrC,IAEFh3B,EAAAA,WAAgB,KACdg9jC,GAAeO,GAAoC,OAAjBT,GAAyBS,IAAoBT,EAAeA,EAAeS,GAAgB,GAC5H,CAACT,IACJ,MAAM9ijC,GAAgB+i8B,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAO+c,KAC7C,OAAQ/c,EAAMxkB,KACZ,IAAK,UACH6nkC,EAAUtmiC,EAAOmliC,GACjBlijC,EAAMozB,iBACN,MACF,IAAK,YACHiwhC,EAAUtmiC,EAAOmliC,GACjBlijC,EAAMozB,iBACN,MACF,IAAK,YACHiwhC,EAAUtmiC,GAA4B,QAApB/tB,EAAM2G,WAAuB,EAAI,IACnDqK,EAAMozB,iBACN,MACF,IAAK,aACHiwhC,EAAUtmiC,GAA4B,QAApB/tB,EAAM2G,UAAsB,GAAK,IACnDqK,EAAMozB,iBAIV,IAEImwhC,GAAkBzgH,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAO+c,KAC/CsmiC,EAAUtmiC,EAAK,IAEXymiC,GAAiB1gH,EAAAA,GAAAA,IAAiB,CAAC9i8B,EAAO+c,KAC1C+liC,IAAgB/liC,GAClBikiC,GAAe,EACjB,IAEIyC,EAAc19jC,EAAAA,OAAa,MAC3B498B,GAAY3o7B,EAAAA,GAAAA,GAAW10B,EAAKm9jC,GAsBlC,OArBA19jC,EAAAA,WAAgB,KACd,GAAIsk6B,GAAqC,OAAxBo5J,EAAYz8jC,QAC3B,OAEF,MAAM08jC,EAAiBD,EAAYz8jC,QAAQD,cAAc,kBACzD,IAAK28jC,EACH,OAIF,MAAM50Q,EAAe40Q,EAAe50Q,aAC9Bp/nB,EAAYg04B,EAAeh04B,UAC3B6wF,EAAekjzB,EAAYz8jC,QAAQu5Q,aACnCkhiB,EAAYgiR,EAAYz8jC,QAAQy6yB,UAChCkiR,EAAgBj04B,EAAYo/nB,EAC9BA,EAAevuiB,GAAgB7wF,EAAY+xnB,IAI/CgiR,EAAYz8jC,QAAQy6yB,UAAYkiR,EAAgBpjzB,EAAe,EAAIuuiB,EAAe,EAAC,GAClF,CAACu7G,KACgBv25B,EAAAA,GAAAA,KAAKyujC,IAAkBrvjC,EAAAA,GAAAA,GAAS,CAClD5M,IAAKq98B,EACL918B,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ4D,KAAM,aACN,kBAAmBwqjC,GAClBrrjC,EAAO,CACR1T,SAAUww9B,EAAM8zG,aAAa7pC,EAASD,GAASl2hC,KAAIm5B,IACjD,MAAM8miC,EAAa/zG,EAAM8yE,QAAQ7lgC,GAC3Bqt5B,EAAay5I,IAAehB,EAC5BxxJ,EAAa7+5B,GAAYwwjC,EAAejmiC,GAC9C,OAAoBjpB,EAAAA,GAAAA,KAAKuujC,GAAa,CACpCrtjC,SAAUo16B,EACV1s7B,MAAOmmkC,EACP75wB,QAASo5wB,EACThiH,UAAWrh8B,EACXsq5B,UAAWm0J,GAAoBqF,IAAef,EAC9CtwjC,SAAU6+5B,EACVuwC,SAAUiiH,IAAef,EAAc,GAAK,EAC5C5hjC,QAASqijC,EACTpijC,OAAQqijC,EACR,eAAgBZ,IAAciB,EAAa,YAASzokC,EACpD8mkC,YAAaA,EACb5ikC,SAAUww9B,EAAMzv7B,OAAOtD,EAAM,SAC5B+y7B,EAAMzv7B,OAAOtD,EAAM,QAAQ,MAGpC,ICnQO,SAAS+miC,GAAoCp0jC,GAClD,OAAOC,EAAAA,GAAAA,IAAqB,0BAA2BD,EACzD,EAC2CE,EAAAA,GAAsBA,GAAC,0BAA2B,CAAC,OAAQ,SAAU,WAAzG,MCFDC,GAAY,CAAC,WAAY,YAAa,QAAS,YAAa,iBAAkB,eAAgB,aAAc,YAAa,qBAAsB,mBAAoB,iBAAkB,iBACzLwZ,GAAa,CAAC,cACdhC,GAAa,CAAC,cAYV08iC,IAA2Bh0jC,EAAAA,GAAMA,IAAC,MAAO,CAC7CvK,KAAM,0BACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHd6Q,CAI9B,CACDuB,QAAS,SAEL0yjC,IAA6Bj0jC,EAAAA,GAAMA,IAAC,MAAO,CAC/CvK,KAAM,0BACNkK,KAAM,SACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAO2+jC,QAHZl0jC,EAIhCM,IAAA,IAAC,MACFrB,GACDqB,EAAA,MAAM,CACLe,MAAOpC,EAAM0d,QAAQ,GACtB,IACKw3iC,IAA6Bn0jC,EAAAA,GAAMA,IAACsk+B,GAAY,CACpD7u+B,KAAM,0BACNkK,KAAM,SACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOuU,QAHZ9J,EAIhCjB,IAAA,IAAC,WACFmB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAWkxZ,QAAU,CACtC1tY,WAAY,UACZ,IAYW0wiC,GAAoCp+jC,EAAAA,YAAiB,SAA8B2M,EAASpM,GACvG,IAAI89jC,EAAuBC,EAAuBC,EAAsBC,EACxE,MACM5hL,EAA4B,QADpB02D,KACM1j8B,UACdtW,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,6BAEF,SACFlG,EAAQ,UACRuO,EAAS,MACTyF,EAAK,UACL8mB,EAAS,eACToqiC,EAAc,aACdC,EAAY,WACZC,EAAU,UACVC,EAAS,mBACTC,EAAkB,iBAClBC,EAAgB,eAChBC,EAAc,cACdC,GACE1lkC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,EAAa5Q,EACbgU,EAnCkBpD,KACxB,MAAM,QACJoD,GACEpD,EAMJ,OAAOsD,EAAAA,GAAcA,GALP,CACZrU,KAAM,CAAC,QACP+kkC,OAAQ,CAAC,UACTpqjC,OAAQ,CAAC,WAEkBiqjC,GAAqCzwjC,EAAQ,EA0B1DG,CAAkBvD,GAC5B8r8B,EAAY,CAChB1qC,WAAYmzJ,EACZ787B,SAAU887B,EACVO,KAAMN,EACNhijC,MAAOiijC,GAEHM,EAAgB,CACpB5zJ,WAAYuzJ,EACZj97B,SAAUk97B,EACVG,KAAMF,EACNpijC,MAAOqijC,GAEHG,EAAoG,OAA9Ed,EAAiC,MAAT9wjC,OAAgB,EAASA,EAAM6xjC,oBAA8Bf,EAAwBF,GACnIkB,EAA0B37G,GAAa,CAC3Cn4D,YAAa4zK,EACbl/G,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAU+qiC,mBAC1Dp/G,gBAAiB,CACfxj9B,KAAM,SACNglH,MAAO098B,EAAcvijC,MACrB,aAAcuijC,EAAcvijC,MAC5BlQ,SAAUyyjC,EAAc5zJ,WACxBh82B,KAAM,MACN20P,QAASi7wB,EAAcD,MAEzB/0jC,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAY,CACnCkxZ,OAAQ8jqB,EAAct97B,WAExB95H,UAAWwF,EAAQwG,SAEfwrjC,EAA4F,OAA1EhB,EAAiC,MAAT/wjC,OAAgB,EAASA,EAAMgyjC,gBAA0BjB,EAAwBH,GAC3HqB,EAAsB97G,GAAa,CACvCn4D,YAAa+zK,EACbr/G,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUkriC,eAC1Dv/G,gBAAiB,CACfxj9B,KAAM,SACNglH,MAAOw01B,EAAUr57B,MACjB,aAAcq57B,EAAUr57B,MACxBlQ,SAAUup8B,EAAU1qC,WACpBh82B,KAAM,QACN20P,QAAS+xpB,EAAUipH,MAErB/0jC,YAAYiD,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAY,CACnCkxZ,OAAQ46iB,EAAUp00B,WAEpB95H,UAAWwF,EAAQwG,SAEf2rjC,EAAyF,OAAxElB,EAAgC,MAAThxjC,OAAgB,EAASA,EAAMmyjC,eAAyBnB,EAAuBrX,GAEvHj9B,EAAgBvmE,GAAa,CAC/Bn4D,YAAak0K,EACbx/G,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUqriC,cAC1D1/G,gBAAiB,CACf318B,SAAU,WAEZH,gBAAY7U,IAEdsqkC,GAAqBzyjC,EAAAA,GAAAA,GAA8B+8gC,EAAe3mgC,IAC9Ds8iC,EAA4F,OAA1EpB,EAAiC,MAATjxjC,OAAgB,EAASA,EAAMsyjC,gBAA0BrB,EAAwBrX,GAE3HZ,EAAiB7iG,GAAa,CAChCn4D,YAAaq0K,EACb3/G,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUwriC,eAC1D7/G,gBAAiB,CACf318B,SAAU,WAEZH,gBAAY7U,IAEdyqkC,GAAsB5yjC,EAAAA,GAAAA,GAA8Bq5iC,EAAgBjliC,IACtE,OAAoB5T,EAAAA,GAAAA,MAAMswjC,IAA0B7wjC,EAAAA,GAAAA,GAAS,CAC3D5M,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,GACX+C,EAAO,CACR1T,SAAU,EAAcwU,EAAAA,GAAAA,KAAKoxjC,GAAoBhyjC,EAAAA,GAAAA,GAAS,CAAC,EAAGkyjC,EAAyB,CACrF9lkC,SAAUqj5B,GAAqB7u4B,EAAAA,GAAAA,KAAK6xjC,GAAgBzyjC,EAAAA,GAAAA,GAAS,CAAC,EAAG2yjC,KAAqC/xjC,EAAAA,GAAAA,KAAK0xjC,GAAetyjC,EAAAA,GAAAA,GAAS,CAAC,EAAGwyjC,OACpIpmkC,GAAwBwU,EAAAA,GAAAA,KAAKoy9B,GAAY,CAC5Cx88B,QAAS,YACT/W,UAAW,OACXrT,SAAUA,KACMwU,EAAAA,GAAAA,KAAKkwjC,GAA4B,CACjDn2jC,UAAWwF,EAAQ4wjC,OACnBh0jC,WAAYA,KACG6D,EAAAA,GAAAA,KAAKuxjC,GAAgBnyjC,EAAAA,GAAAA,GAAS,CAAC,EAAGqyjC,EAAqB,CACtEjmkC,SAAUqj5B,GAAqB7u4B,EAAAA,GAAAA,KAAK0xjC,GAAetyjC,EAAAA,GAAAA,GAAS,CAAC,EAAGwyjC,KAAoC5xjC,EAAAA,GAAAA,KAAK6xjC,GAAgBzyjC,EAAAA,GAAAA,GAAS,CAAC,EAAG2yjC,UAG5I,ICxIO,SAASC,GAAgBpmjC,EAAMk8gC,EAAM/rC,EAAUsxD,GACpD,MAAMrxF,EAAQy4E,KACRw9B,ElJzBmBC,EAACtmjC,EAAMow8B,IAC3Bpw8B,EAGEow8B,EAAMjx7B,SAASnf,IAAS,GAAK,KAAO,KAFlC,KkJuBYsmjC,CAAYtmjC,EAAMow8B,GACjCm2G,EAAuBlgkC,EAAAA,aAAkBqQ,IAC7C,MAAM8vjC,EAA2B,MAARxmjC,EAAe,KlJZXymjC,EAACtmjC,EAAM0gB,EAAUq7/B,EAAM9rE,KACtD,MAAMs2G,EAAiBzqC,GAAuB7rE,EAAMjx7B,SAAShf,GAAO0gB,EAAUq7/B,GAC9E,OAAO9rE,EAAMvu4B,SAAS1hE,EAAMumjC,EAAe,EkJUMD,CAAkBzmjC,EAAMtJ,EAAMq7H,QAAQmq5B,GAAO9rE,GAC5F+/B,EAASq2E,EAAoC,MAAlB/kB,EAAyBA,EAAiB,UAAU,GAC9E,CAACvlB,EAAMl8gC,EAAMmw+B,EAAUsxD,EAAgBrxF,IAC1C,MAAO,CACLi2G,eACAE,uBAEJ,CCrCO,MAAMI,GAAuC32jC,IAAQC,EAAAA,GAAAA,IAAqB,2BAA4BD,GAChG42jC,IAA+B12jC,EAAAA,GAAsBA,GAAC,2BAA4B,CAAC,OAAQ,iBAAkB,QAAS,mBAAoB,mBCAjJC,GAAY,CAAC,QAAS,YAAa,aAAc,kBAAmB,eAAgB,WAAY,gBAAiB,cAAe,UAAW,UAAW,gBAAiB,eAAgB,OAAQ,mBAAoB,QAAS,UAAW,YAAa,YACxPwZ,GAAa,CAAC,cA8BVk9iC,IAA4Bx2jC,EAAAA,GAAMA,IAAC,MAAO,CAC9CvK,KAAM,2BACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHT6Q,CAI/B,CACDuB,QAAS,OACTyiB,WAAY,SACZnB,UAAW,GACXE,aAAc,EACdf,YAAa,GACbF,aAAc,GAEdV,UAAW,GACX9V,UAAW,KAEPmrjC,IAAsCz2jC,EAAAA,GAAMA,IAAC,MAAO,CACxDvK,KAAM,2BACNkK,KAAM,iBACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOmhkC,gBAHC12jC,EAIzCqY,IAAA,IAAC,MACFpZ,GACDoZ,EAAA,OAAKlV,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTiiB,SAAU,SACVQ,WAAY,SACZtoB,OAAQ,UACRonB,YAAa,QACZ7jB,EAAM+C,WAAW4H,MAAO,CACzBhQ,WAAYqF,EAAM+C,WAAW0G,kBAC7B,IACIiujC,IAA6B32jC,EAAAA,GAAMA,IAAC,MAAO,CAC/CvK,KAAM,2BACNkK,KAAM,QACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOod,OAHR3S,CAIhC,CACD8iB,YAAa,IAET8ziC,IAAwC52jC,EAAAA,GAAMA,IAACsk+B,GAAY,CAC/D7u+B,KAAM,2BACNkK,KAAM,mBACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOshkC,kBAHG72jC,EAI3CwszB,IAAA,IAAC,WACFtszB,GACDsszB,EAAA,OAAKrpzB,EAAAA,GAAAA,GAAS,CACb2f,YAAa,QACQ,SAApB5iB,EAAW8vC,MAAmB,CAC/B,CAAC,IAAD76C,OAAKohkC,GAA6BO,iBAAmB,CACnD95iC,UAAW,mBAEb,IACI+5iC,IAAsC/2jC,EAAAA,GAAMA,IAAC4khC,GAAmB,CACpEnvhC,KAAM,2BACNkK,KAAM,iBACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOuhkC,gBAHC92jC,EAIzCqtzB,IAAA,IAAC,MACFpuzB,GACDouzB,EAAA,MAAM,CACL6zL,WAAY,YACZx/+B,WAAYzC,EAAM0C,YAAY9L,OAAO,aACrCmnB,UAAW,eACZ,IAYKg6iC,GAAqChhkC,EAAAA,YAAiB,SAA+B2M,EAASpM,GAClG,IAAI+J,EAAM22jC,EAAuBl4jC,EAAOm4jC,EACxC,MAAMvnC,EAAa+I,KACb34E,EAAQy4E,KACRlpiC,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,8BAEF,MACF8N,EAAK,UACL8mB,EAAS,WACTnrB,EACAgpjC,aAAct4iC,EAAK,SACnBnN,EAAQ,cACRonhC,EAAa,YACbC,EAAW,QACXC,EAAO,QACPC,EAAO,cACP89B,EAAa,aACb5U,EAAY,KACZljgC,EAAI,iBACJk9/B,EAAgB,MAChBnkB,EAAK,QACLxG,EAAO,UACPzkhC,EAAS,SACToshC,GACE56hC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,EAAa5Q,EACbgU,EAlHkBpD,KACxB,MAAM,QACJoD,GACEpD,EAQJ,OAAOsD,EAAAA,GAAcA,GAPP,CACZrU,KAAM,CAAC,QACPunkC,eAAgB,CAAC,kBACjB/jjC,MAAO,CAAC,SACRkkjC,iBAAkB,CAAC,oBACnBC,eAAgB,CAAC,mBAEUR,GAAsChzjC,EAAQ,EAuG3DG,CAAkBnU,GAC5B6nkC,EAAqM,OAAjL72jC,EAAoF,OAA5E22jC,EAAiC,MAAT1zjC,OAAgB,EAASA,EAAMszjC,kBAA4BI,EAAsC,MAAd/3jC,OAAqB,EAASA,EAAWi4jC,kBAA4B72jC,EAAOs2jC,GACnNQ,EAAwB19G,GAAa,CACzCn4D,YAAa41K,EACblhH,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUwsiC,iBAC1D7gH,gBAAiB,CACfxj9B,KAAM,QACN,aAAcm9hC,EAAWiH,qCAAqC5m/B,IAEhE9vC,aACApC,UAAWwF,EAAQuzjC,mBAEfQ,EAAgM,OAA9Kt4jC,EAAmF,OAA1Em4jC,EAAiC,MAAT3zjC,OAAgB,EAASA,EAAMuzjC,gBAA0BI,EAAsC,MAAdh4jC,OAAqB,EAASA,EAAWm4jC,gBAA0Bt4jC,EAAQg4jC,GAE/M92C,EAAgBvmE,GAAa,CAC/Bn4D,YAAa81K,EACbphH,kBAAgC,MAAb5r7B,OAAoB,EAASA,EAAUysiC,eAC1D52jC,gBAAY7U,EACZyS,UAAWwF,EAAQwzjC,iBAErBQ,GAAsBp0jC,EAAAA,GAAAA,GAA8B+8gC,EAAe3mgC,IAG/Di+iC,EF1JD,SAA8B3njC,EAAKtP,GAIvC,IAJyC,cAC1CuphC,EAAa,QACbE,EAAO,SACPG,GACD5phC,EACC,MAAMy/8B,EAAQy4E,KACd,OAAOxiiC,EAAAA,SAAc,KACnB,MAAMinC,EAAM8i7B,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GACxConC,EAAmBvxG,EAAM0sE,aAAa5C,GAAiB9pE,EAAMpw7B,SAASsN,EAAK8s/B,GAAW9s/B,EAAM8s/B,GAClG,OAAQhqE,EAAMrw7B,QAAQ4hiC,EAAkB1hjC,EAAM,GAC7C,CAACi6gC,EAAeE,EAASn6gC,EAAOmw8B,EAAOmqE,GAC5C,CE+I8BstC,CAAqB5njC,EAAO,CACtDi6gC,gBACAE,UACAG,aAEIutC,EFnJD,SAAkC7njC,EAAK7Q,GAI3C,IAJ6C,YAC9C+qhC,EAAW,QACXE,EAAO,SACPE,GACDnrhC,EACC,MAAMgh9B,EAAQy4E,KACd,OAAOxiiC,EAAAA,SAAc,KACnB,MAAMinC,EAAM8i7B,EAAMoqE,sBAAiB9+hC,EAAW6+hC,GACxCmnC,EAAoBtxG,EAAM0sE,aAAa3C,GAAe/pE,EAAMrw7B,QAAQuN,EAAK+s/B,GAAW/s/B,EAAM+s/B,GAChG,OAAQjqE,EAAMpw7B,SAAS0hiC,EAAmBzhjC,EAAM,GAC/C,CAACk6gC,EAAaE,EAASp6gC,EAAOmw8B,EAAOmqE,GAC1C,CEwIkCwtC,CAAyB9njC,EAAO,CAC9Dk6gC,cACAE,UACAE,aAgBF,OAAqB,IAAjBnB,EAAMn+hC,QAA6B,SAAbm+hC,EAAM,GACvB,MAEWrlhC,EAAAA,GAAAA,MAAM8yjC,IAA2BrzjC,EAAAA,GAAAA,GAAS,CAAC,EAAGF,EAAO,CACvE/C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQnU,MACnCoH,IAAKA,EACLhH,SAAU,EAAcmU,EAAAA,GAAAA,MAAM+yjC,GAAqC,CACjE3yjC,KAAM,eACNm2S,QAvBqB09wB,KACvB,GAAqB,IAAjB5uC,EAAMn+hC,QAAiBsojC,IAAgBzwiC,EAG3C,GAAqB,IAAjBsmhC,EAAMn+hC,OACRsojC,EAAanqB,EAAMz69B,MAAKmiD,GAAMA,IAAOzgE,KAAS+4+B,EAAM,QAC/C,CAEL,MAAM6uC,EAA0C,IAAxB7uC,EAAM96hC,QAAQ+hD,GAAc,EAAI,EACxDkjgC,EAAanqB,EAAM6uC,GACrB,GAcE13jC,WAAYA,EAGZ,YAAa,SACbpC,UAAWwF,EAAQozjC,eACnBnnkC,SAAU,EAAcwU,EAAAA,GAAAA,KAAKqljC,GAA4B,CACvDlc,iBAAkBA,EAClBmc,SAAUtpG,EAAMzv7B,OAAO1gB,EAAO,gBAC9BrgB,UAAuBwU,EAAAA,GAAAA,KAAK4yjC,GAA4B,CACtDhriC,GAAI42/B,EACJrihC,WAAYA,EACZpC,UAAWwF,EAAQqP,MACnBpjB,SAAUww9B,EAAMzv7B,OAAO1gB,EAAO,oBAE9Bm5gC,EAAMn+hC,OAAS,IAAM6X,IAAyBsB,EAAAA,GAAAA,KAAKozjC,GAAkBh0jC,EAAAA,GAAAA,GAAS,CAAC,EAAGi0jC,EAAuB,CAC3G7nkC,UAAuBwU,EAAAA,GAAAA,KAAKszjC,GAAgBl0jC,EAAAA,GAAAA,GAAS,CAAC,EAAGm0jC,WAE5CvzjC,EAAAA,GAAAA,KAAK+69B,GAAM,CAC1Bj0K,GAAa,QAAT76wB,EACJzgD,UAAuBwU,EAAAA,GAAAA,KAAKqwjC,GAAsB,CAChD7wjC,MAAOA,EACP8mB,UAAWA,EACX0qiC,eAzDsB8C,IAAM/P,EAAc/nG,EAAM2qE,UAAU96gC,GAAQ,GAAI,SA0DtEiljC,mBAAoB4C,EACpBzC,cAAerlC,EAAW6G,cAC1Bm+B,WA7DkBmD,IAAMhQ,EAAc/nG,EAAM2qE,UAAU96gC,EAAO,GAAI,QA8DjE6kjC,eAAgB8C,EAChB3C,UAAWjlC,EAAW8G,iBAI9B,IC5NashC,IAAiB/3jC,EAAAA,GAAMA,IAAC,MAAPA,CAAc,CAC1CwjB,SAAU,SACVniB,MAAOy4iC,GACP14hC,U1CDyB,I0CEzB7f,QAAS,OACTsiB,cAAe,SACf5E,OAAQ,WCPG+4iC,GAA8Br4jC,IAAQC,EAAAA,GAAAA,IAAqB,kBAAmBD,GCCrFG,KDA6BD,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,OAAQ,4BCApE,CAAC,YAAa,eAAgB,QAAS,eAAgB,gBAAiB,gBAAiB,cAAe,uBAAwB,WAAY,eAAgB,gBAAiB,mBAAoB,oBAAqB,qBAAsB,oBAAqB,OAAQ,QAAS,SAAU,YAAa,WAAY,WAAY,UAAW,UAAW,wBAAyB,cAAe,sBAAuB,8BAA+B,kBAAmB,qBAAsB,aAAc,kBAAmB,QAAS,YAAa,UAAW,gBAAiB,oBAAqB,cAAe,eAAgB,aAyDvnB,MAAMo4jC,IAAmBj4jC,EAAAA,GAAMA,IAAC+3jC,GAAgB,CAC9CtikC,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHtB6Q,CAItB,CACDuB,QAAS,OACTsiB,cAAe,SACfviB,O5C9DyB,M4CgErB42jC,IAAsCl4jC,EAAAA,GAAMA,IAACopjC,GAA4B,CAC7E3zjC,KAAM,kBACNkK,KAAM,0BACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAO4ikC,yBAHHn4jC,CAIzC,CAAC,GAYSo4jC,GAA4BpikC,EAAAA,YAAiB,SAAsB2M,EAASpM,GACvF,IAAI+J,EAAM+3jC,EAAuBC,EACjC,MAAMv4G,EAAQy4E,KACR7sgC,GAAKL,EAAAA,GAAKA,KACVh8B,EApDR,SAAyCA,EAAOmG,GAC9C,IAAI8ikC,EAAqBr+B,EAAuBD,EAAuBu+B,EAAoBC,EAAmBC,EAAuBC,EACrI,MAAM54G,EAAQy4E,KACRlC,EAAemC,KACfyV,EAA0BrC,KAC1BpgG,EAAam9E,GAAc,CAC/Bt5hC,QACAmG,SAEF,OAAO0N,EAAAA,GAAAA,GAAS,CAAC,EAAGso8B,EAAY,CAC9BjgO,QAAuD,OAA7C+sV,EAAsB9sH,EAAWjgO,UAAmB+sV,EAC9DzuC,YAAiE,OAAnDoQ,EAAwBzuF,EAAWq+E,cAAuBoQ,EACxErQ,cAAqE,OAArDoQ,EAAwBxuF,EAAWo+E,gBAAyBoQ,EAC5E9Q,OAAoD,OAA3CqvC,EAAqB/sH,EAAW09E,QAAkBqvC,EAAqB,MAChFzvC,MAAiD,OAAzC0vC,EAAoBhtH,EAAWs9E,OAAiB0vC,EAAoB,CAAC,OAAQ,OACrFvrB,iBAA2E,OAAxDwrB,EAAwBjtH,EAAWyhG,kBAA4BwrB,EAAwBxqB,EAC1GigB,cAAqE,OAArDwK,EAAwBltH,EAAW0iH,eAAyBwK,EAAwB,KAAmB50jC,EAAAA,GAAAA,KAAK,OAAQ,CAClIxU,SAAU,QAEZy6hC,QAASM,GAAiBvqE,EAAOtU,EAAWu+E,QAASsM,EAAatM,SAClED,QAASO,GAAiBvqE,EAAOtU,EAAWs+E,QAASuM,EAAavM,UAEtE,CA8BgB6uC,CAAgCj2jC,EAAS,oBACjD,UACF235B,EAAS,aACT44I,EACAvljC,MAAO2ohC,EAAS,aAChBj4/B,EACAo0gC,cAAeirB,EAAiB,cAChC7zB,EAAa,YACbC,EAAW,qBACX89B,EAAoB,SACpB9nE,EAAQ,aACR+4E,EAAY,cACZ/Q,EAAa,iBACb5a,EAAgB,kBAChB5S,EAAiB,mBACjBC,EAAkB,kBAClBC,EACAxq/B,KAAMgz9B,EAAM,MACZ+lB,EAAK,OACLI,EAAM,UACNrrhC,EAAS,SACT2E,EAAQ,SACRmO,EAAQ,QACRo5gC,EAAO,QACPD,EAAO,sBACP4/B,EACAxW,YAAaC,EAAa,oBAC1BC,EAAmB,4BACnBqW,EAA2B,gBAC3B8E,EAAe,mBACfJ,EAAkB,WAClBlvjC,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EAAS,QACTmhtB,EAAO,cACP2iV,EAAa,kBACbI,EAAiB,YACjB4D,EAAW,aACXjC,EACAhmC,SAAU2kB,GACRv/iC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,MACJnS,EAAK,kBACLwhjC,EAAiB,SACjBjlB,GACEolB,GAA+B,CACjC75iC,KAAM,eACNy0hC,SAAU2kB,EACVlhjC,MAAO2ohC,EACPj4/B,eACAyh+B,WACAgvD,aAAc1b,MAEV,KACJpj/B,EAAI,QACJ0jgC,EAAO,YACPP,GAAW,eACXS,GAAc,aACdS,GAAY,wBACZC,IACErB,GAAS,CACXjjgC,KAAMgz9B,EACN+lB,QACAI,SACArpC,SAAUqvD,EACV+D,eACA54I,YACA64I,YAAaC,EACbC,yBAEI,cACJ5gB,GAAa,cACbk2B,GAAa,iBACbK,GAAgB,YAChBH,GAAW,kBACXD,GAAiB,eACjB3+B,GAAc,6BACd8+B,IACEpB,GAAiB,CACnBh6jC,QACAi6jC,uBACAn1B,cAAeirB,EACfxQ,mBACA4a,gBACA99B,UACAD,UACAuQ,oBACAxQ,cACAD,gBACAK,aAII4uC,GAAsBr2jC,GAAY9U,GAASq8hC,EAC3C+uC,GAAsBt2jC,GAAY9U,GAASo8hC,EAC3CukC,GAAc,GAAHn5jC,OAAMw2B,EAAE,eACnB2u8B,GAA2B,OAAhB64E,GACX6lB,GAA+L,OAA7K14jC,EAAkF,OAA1E+3jC,EAAiC,MAAT90jC,OAAgB,EAASA,EAAM01jC,gBAA0BZ,EAAsC,MAAdn5jC,OAAqB,EAASA,EAAW85jC,gBAA0B14jC,EAAO02jC,GAC7MkC,GAAsBx/G,GAAa,CACvCn4D,YAAay3K,GACb/iH,kBAAsG,OAAlFqiH,EAAqC,MAAbjuiC,OAAoB,EAASA,EAAU4uiC,gBAA0BX,EAA2C,MAAnB1/G,OAA0B,EAASA,EAAgBqgH,eACxLjjH,gBAAiB,CACf+yE,QACA/4+B,OACAk4gC,aAAcS,GAAcT,aAC5BhV,aAAcQ,EACdoU,cAAeA,CAACK,EAAUvijC,IAAcgjjC,GAAkB,CACxDT,WACAvijC,cAEFokhC,QAAS8uC,GACT/uC,QAASgvC,GACTt2jC,WACAqnhC,cACAD,gBACAqjB,mBACAhjB,WACA3H,QAAS+rC,GACT/qjC,QACA8mB,aAEFnqB,WAAY5Q,IAER6pkC,IAAwBpmH,EAAAA,GAAAA,IAAiBp73B,IAC7C,MAAM808B,EAAe1sE,EAAM0sE,aAAa908B,GAClCo2+B,EAAahuG,EAAMguG,WAAWp2+B,GAC9Byh/B,EAAqBnvC,GAAety8B,GAAWiy8B,GAAuB,CAC1E7pE,QACApw8B,KAAMgoE,EACNqy8B,QAASjqE,EAAMpw7B,SAASq6/B,EAASyC,GAAgBA,EAAezC,EAChED,QAAShqE,EAAMrw7B,QAAQq6/B,EAASgkC,GAAcA,EAAahkC,EAC3DD,cACAD,gBACAI,kBACAC,aACGvy8B,EACDyh/B,GACF9kB,GAAwB8kB,EAAoB,UAC3B,MAAjBtR,GAAyBA,EAAcr7B,KAEvC4nB,KACAwU,GAAYp8B,IAEdu8B,GAAiBoQ,GAAoB,EAAK,IAEtCC,IAAuBtmH,EAAAA,GAAAA,IAAiBp73B,IAC5C,MAAM6y8B,EAAczqE,EAAMyqE,YAAY7y8B,GAChCkm+B,EAAY99F,EAAM89F,UAAUlm+B,GAC5Byh/B,EAAqBnvC,GAAety8B,GAAWiy8B,GAAuB,CAC1E7pE,QACApw8B,KAAMgoE,EACNqy8B,QAASjqE,EAAMpw7B,SAASq6/B,EAASQ,GAAeA,EAAcR,EAC9DD,QAAShqE,EAAMrw7B,QAAQq6/B,EAAS8zB,GAAaA,EAAY9zB,EACzDD,cACAD,gBACAI,kBACAC,aACGvy8B,EACDyh/B,GACF9kB,GAAwB8kB,EAAoB,UAC5B,MAAhBP,GAAwBA,EAAaO,KAErC/kB,KACAwU,GAAYr+B,IAEdw+B,GAAiBoQ,GAAoB,EAAK,IAEtCE,IAA0BvmH,EAAAA,GAAAA,IAAiBvg7B,GAGtC28gC,EAFL38gC,EAEuBg3/B,GAAiBzpE,EAAOvt7B,EAAc,MAAT7kC,EAAgBA,EAAQ8kiC,IAEvDjggC,EAFuE,SAAUwd,KAI5Gh6C,EAAAA,WAAgB,KACD,MAATrI,GAAiBoy9B,EAAMzw7B,QAAQ3hC,IACjCk7jC,GAAYl7jC,EACd,GACC,CAACA,IAEJ,MAAMuS,GAAa5Q,EACbgU,GArPkBpD,KACxB,MAAM,QACJoD,GACEpD,EAKJ,OAAOsD,EAAAA,GAAcA,GAJP,CACZrU,KAAM,CAAC,QACPgpkC,wBAAyB,CAAC,4BAECH,GAA6B10jC,EAAQ,EA6OlDG,CAAkBvD,IAC5Bq5jC,GAA0B,CAC9BzvC,cACAD,gBACAE,UACAC,WAEIwvC,GAAkB,CACtB7P,wBACA/4iC,WACAnO,WACAynhC,WACAokC,gBAEImL,GAAkBzjkC,EAAAA,OAAag6C,GACrCh6C,EAAAA,WAAgB,KAGVyjkC,GAAgBxikC,UAAY+4C,IAG5BmjgC,KAAgBsmB,GAAgBxikC,SAClC28iC,GAAe5jgC,GAAM,GAEvByphC,GAAgBxikC,QAAU+4C,EAAI,GAC7B,CAACmjgC,GAAaS,GAAgB5jgC,IACjC,MAAMq9gC,GAAer3jC,EAAAA,SAAc,IAAM,CAACrI,IAAQ,CAACA,IACnD,OAAoB+V,EAAAA,GAAAA,MAAMu0jC,IAAkB90jC,EAAAA,GAAAA,GAAS,CACnD5M,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,GAAQnU,KAAM2O,GAC9BoC,WAAYA,IACX+C,EAAO,CACR1T,SAAU,EAAcwU,EAAAA,GAAAA,KAAKi1jC,IAAgB71jC,EAAAA,GAAAA,GAAS,CAAC,EAAG+1jC,MAAoCn1jC,EAAAA,GAAAA,KAAKm0jC,GAAqC,CACtIhrB,iBAAkBA,EAClBpviC,UAAWwF,GAAQ60jC,wBACnB9O,SAAUr5gC,EACV9vC,WAAYA,GACZ3Q,UAAuBmU,EAAAA,GAAAA,MAAM,MAAO,CAClCnU,SAAU,CAAU,SAATygD,IAAgCjsC,EAAAA,GAAAA,KAAK0ujC,IAActvjC,EAAAA,GAAAA,GAAS,CAAC,EAAGo2jC,GAAyBC,GAAiB,CACnH7rkC,MAAOA,EACPmy/B,SAAUu5E,GACV7+B,kBAAmBA,EACnBlgE,SAAUA,GACV+4E,oBAAqBka,GAAiB3Z,GAAe,OAAQ2Z,GAC7D4E,YAAaA,EACb1/B,cAAeA,MACH,UAATzi/B,IAAiCjsC,EAAAA,GAAAA,KAAK2sjC,IAAevtjC,EAAAA,GAAAA,GAAS,CAAC,EAAGo2jC,GAAyBC,GAAiB,CAC/Gl/F,SAAUA,GACVx89B,UAAWA,EACXnQ,MAAOA,EACPmy/B,SAAUq5E,GACV5+B,mBAAoBA,EACpB8Y,oBAAqBka,GAAiB3Z,GAAe,QAAS2Z,GAC9D2C,aAAcA,EACdz9B,cAAeA,MACH,QAATzi/B,IAA+BjsC,EAAAA,GAAAA,KAAKiqjC,IAAa7qjC,EAAAA,GAAAA,GAAS,CAAC,EAAGwljC,GAAe4Q,GAAyBC,GAAiB,CAC1HzQ,6BAA8BA,GAC9BkF,mBAAoBjF,GACpB9b,iBAAkBA,EAClBmgB,aAAcA,GACda,qBAAsBoL,GACtBh/B,kBAAmBA,EACnBC,mBAAoBA,EACpBC,kBAAmBA,EACnBlgE,SAAUA,GACV+4E,oBAAqBka,GAAiB3Z,GAAe,MAAO2Z,GAC5D7D,4BAA6BA,EAC7B8E,gBAAiBA,EACjBJ,mBAAoBA,EACpBG,kBAAmBA,EACnBrvjC,WAAYA,EACZ058B,gBAAiBA,EACjBr18B,MAAOA,EACP8mB,UAAWA,EACXmhtB,QAASA,EACT2iV,cAAeA,aAKzB,IC3VauL,GAAyBp5jC,IAAA,IAAC,KACrC0vC,EAAI,aACJkjgC,EAAY,MACZnqB,EAAK,YACLoqB,EAAW,oBACXE,EAAmB,MACnB1ljC,EAAK,aACL0wB,EAAY,cACZo0gC,EAAa,SACb3yC,EAAQ,UACRhi/B,EAAS,QACTwF,EAAO,cACPumhC,EAAa,YACbC,EAAW,QACXE,EAAO,QACPD,EAAO,kBACPuQ,EAAiB,mBACjBC,EAAkB,kBAClBC,EAAiB,iBACjB0S,EAAgB,cAChB4a,EAAa,aACboI,EAAY,aACZ2I,EAAY,YACZ1G,EAAW,qBACXvK,EAAoB,WACpB1ojC,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EAAS,QACTmhtB,EAAO,cACP2iV,EAAa,sBACbxE,EAAqB,SACrB/4iC,EAAQ,SACRnO,EAAQ,4BACRinjC,EAA2B,mBAC3B0E,EAAkB,GAClBnijC,EAAE,UACFqu5B,EAAS,gBACTk0J,EAAe,kBACfD,EAAiB,SACjBrkC,GACD5phC,EAAA,OAAkByD,EAAAA,GAAAA,KAAKq0jC,GAAc,CACpCpohC,KAAMA,EACNkjgC,aAAcA,EACdnqB,MAAOA,EAAMnygC,OAAOo0gC,IACpBmoB,YAAaA,GAAenoB,GAAiBmoB,GAAeA,EAAc,KAC1EE,oBAAqBA,EACrB1ljC,MAAOA,EACP0wB,aAAcA,EACdo0gC,cAAeA,EACf3yC,SAAUA,EACVhi/B,UAAWA,EACXwF,QAASA,EACTumhC,cAAeA,EACfC,YAAaA,EACbE,QAASA,EACTD,QAASA,EACTuQ,kBAAmBA,EACnBC,mBAAoBA,EACpBC,kBAAmBA,EACnB0S,iBAAkBA,EAClB4a,cAAeA,EACfoI,aAAcA,EACd2I,aAAcA,EACd1G,YAAaA,EACbvK,qBAAsBA,EACtB1ojC,WAAYA,EACZ058B,gBAAiBA,EACjBr18B,MAAOA,EACP8mB,UAAWA,EACXmhtB,QAASA,EACT2iV,cAAeA,EACfxE,sBAAuBA,EACvB/4iC,SAAUA,EACVnO,SAAUA,EACVinjC,4BAA6BA,EAC7B0E,mBAAoBA,EACpBnijC,GAAIA,EACJqu5B,UAAWA,EACXk0J,gBAAiBA,EACjBD,kBAAmBA,EACnBrkC,SAAUA,GACV,EC9DIyvC,GAAiC3jkC,EAAAA,YAAiB,SAA2B2M,EAASpM,GAC1F,IAAIqjkC,EAAuBC,EAAwBC,EAAuBC,EAC1E,MAAMpqC,EAAa+I,KACb34E,EAAQy4E,KAGRwhC,EAAmBjgC,GAA8Bp3hC,EAAS,wBAC1D+yiC,GAAgBvyiC,EAAAA,GAAAA,GAAS,CAC7BqvB,IAAKkniC,GACL9pjC,MAAO8pjC,GACP1siC,KAAM0siC,IACLM,EAAiBtkB,eAGdpmjC,GAAQ6T,EAAAA,GAAAA,GAAS,CAAC,EAAG62jC,EAAkB,CAC3CtkB,gBACAplhC,OAAQ26/B,GAAkBlrE,EAAOi6G,GAAkB,GACnD7H,YAAuE,OAAzDyH,EAAwBI,EAAiB7H,aAAuByH,EAAwB,EACtGr2jC,OAAOJ,EAAAA,GAAAA,GAAS,CACdu5iC,eAAgBU,GAChBt7/B,MAAOklgC,IACNgT,EAAiBz2jC,OACpB8mB,WAAWlnB,EAAAA,GAAAA,GAAS,CAAC,EAAG62jC,EAAiB3viC,UAAW,CAClDy3B,MAAO5hD,IACL,IAAI+5jC,EACJ,OAAO92jC,EAAAA,GAAAA,GAAS,CAAC,EAAG8z8B,GAA8E,OAAvDgjH,EAAwBD,EAAiB3viC,gBAAqB,EAAS4viC,EAAsBn4gC,MAAO5hD,GAAawljC,GAAuBsU,GAAmB,CACpMzjkC,OACA,EAEJ8U,SAASlI,EAAAA,GAAAA,GAAS,CAChBiuZ,QAAQ,GACkD,OAAxDyoqB,EAAyBG,EAAiB3viC,gBAAqB,EAASwviC,EAAuBxujC,cAGjG,aACJ4xiC,GACE3B,GAAiB,CACnBhsjC,QACAw/iC,aAAc1b,GACdxI,UAAW,OACXgxB,sBAAuJ,OAA/Hke,EAAkE,OAAzCC,EAAoBzqkC,EAAMqgiC,iBAAsB,EAASoqC,EAAkBhiC,wBAAkC+hC,EAAwBnqC,EAAWoI,uBACjM7phC,UAAWmshC,KAEb,OAAO4iB,GACT,IACA0c,GAAkBx6iC,UAAY,CAW5Bm74B,UAAWzY,KAAAA,KAIX/j5B,UAAW+j5B,KAAAA,OAKXiuJ,cAAejuJ,KAAAA,KAMf3i5B,WAAY2i5B,KAAAA,OAMZ+2D,gBAAiB/2D,KAAAA,OAQjBusK,mBAAoBvsK,KAAAA,KAKpB+lK,qBAAsB/lK,KAAAA,IAKtBxj4B,aAAcwj4B,KAAAA,IAKdp/4B,SAAUo/4B,KAAAA,KAKVgoI,cAAehoI,KAAAA,KAKf8nK,sBAAuB9nK,KAAAA,KAKvB+6J,kBAAmB/6J,KAAAA,KAKnBioI,YAAajoI,KAAAA,KAIb0sK,kBAAmB1sK,KAAAA,KAMnB2sK,gBAAiB3sK,KAAAA,OAKjBvx3B,OAAQux3B,KAAAA,OAMRgvI,cAAehvI,KAAAA,MAAgB,CAAC,QAAS,aAIzCixH,SAAU3xyB,GAIVxuN,MAAOkv4B,KAAAA,KAMPr2K,QAASq2K,KAAAA,KAKT8tI,WAAY9tI,KAAAA,OAIZkoI,QAASloI,KAAAA,IAITmoI,QAASnoI,KAAAA,IAKTquK,aAAcruK,KAAAA,MAAgB,CAAC,EAAG,IAIlCps5B,KAAMos5B,KAAAA,OAMN8tJ,SAAU9tJ,KAAAA,KAQVi+F,SAAUj+F,KAAAA,KAKV2/E,QAAS3/E,KAAAA,KAUT7tE,QAAS6tE,KAAAA,KAMTimK,cAAejmK,KAAAA,KAKf4gI,OAAQ5gI,KAAAA,KAKRouJ,yBAA0BpuJ,KAAAA,KAM1BqxJ,aAAcrxJ,KAAAA,KAMdg3K,aAAch3K,KAAAA,KAKd943B,KAAM843B,KAAAA,KAMNsnI,OAAQtnI,KAAAA,MAAgB,CAAC,MAAO,QAAS,SAIzC/kvB,YAAa+kvB,KAAAA,MAAgB,CAAC,YAAa,aAC3Cjx4B,SAAUix4B,KAAAA,KAKVqrJ,iBAAkBrrJ,KAAAA,KAKlB4wI,cAAe5wI,KAAAA,IAMfssK,cAAetsK,KAAAA,KAUfkuJ,iBAAkBluJ,KAAAA,UAAoB,CAACA,KAAAA,MAAgB,CAAC,MAAO,MAAO,QAAS,WAAY,UAAW,QAAS,UAAW,UAAW,SAAUA,KAAAA,OAAkBA,KAAAA,MAAgB,CAC/Kvl4B,SAAUul4B,KAAAA,OAAiBX,WAC3BhxL,WAAY2xL,KAAAA,OAAiBX,eAW/Bo5I,kBAAmBz4I,KAAAA,KAOnB04I,mBAAoB14I,KAAAA,KAOpB24I,kBAAmB34I,KAAAA,KAWnB6nK,4BAA6B7nK,KAAAA,KAK7Bx33B,UAAWw33B,KAAAA,OAKXt+4B,MAAOs+4B,KAAAA,OAIP514B,GAAI414B,KAAAA,UAAoB,CAACA,KAAAA,QAAkBA,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,QAAmBA,KAAAA,KAAgBA,KAAAA,SAQrIqoI,SAAUroI,KAAAA,OAKVl05B,MAAOk05B,KAAAA,IAMP7x2B,KAAM6x2B,KAAAA,MAAgB,CAAC,MAAO,QAAS,SAMvC6zJ,cAAe7zJ,KAAAA,MAAgB,CAC7Brv3B,IAAKqv3B,KAAAA,KACLjy4B,MAAOiy4B,KAAAA,KACP703B,KAAM603B,KAAAA,OAKRknI,MAAOlnI,KAAAA,QAAkBA,KAAAA,MAAgB,CAAC,MAAO,QAAS,SAASX,YAKnEixK,YAAatwK,KAAAA,MAAgB,CAAC,EAAG,KC9XnC,MAAMq4K,IAAyBl6jC,EAAAA,GAAMA,IAACm6jC,GAAPn6jC,CAAkB,CAC/C,CAAC,MAAD7K,OAAOwxhC,GAAc37hC,YAAc,CACjCu1B,QAAS,GAEX,CAAC,MAADprB,OAAOwxhC,GAAc9hhC,QAAU,CAC7B0b,QAAS,EACTY,SAAU24hC,MAGRsgB,IAA4Bp6jC,EAAAA,GAAMA,IAACq6jC,GAAPr6jC,CAAsB,CACtD,kBAAmB,CACjBkf,QAAS,KAGN,SAASo7iC,GAAmBhrkC,GACjC,IAAIirkC,EAAeC,EACnB,MAAM,SACJjrkC,EAAQ,UACR09iC,EAAS,KACTlkhC,EAAI,MACJxlB,EAAK,UACL8mB,GACE/6B,EACEmrkC,EAAoE,OAA1DF,EAAyB,MAATh3jC,OAAgB,EAASA,EAAMm3jC,QAAkBH,EAAgBL,GAC3Fz+F,EAA0F,OAA5E++F,EAAiC,MAATj3jC,OAAgB,EAASA,EAAMo3jC,kBAA4BH,EAAwB17F,GAC/H,OAAoB/69B,EAAAA,GAAAA,KAAK02jC,GAAQt3jC,EAAAA,GAAAA,GAAS,CACxC4lB,KAAMA,EACNy48B,QAASyrE,GACK,MAAb5ihC,OAAoB,EAASA,EAAUqwiC,OAAQ,CAChDx8F,oBAAqBzC,EACrBojD,gBAA8B,MAAbx0/B,OAAoB,EAASA,EAAUswiC,iBACxD5zC,eAAyB,MAATxjhC,OAAgB,EAASA,EAAMq3jC,YAC/Cl8C,WAAyB,MAAbr0/B,OAAoB,EAASA,EAAUuwiC,YACnDrrkC,UAAuBwU,EAAAA,GAAAA,KAAKq2jC,GAA2B,CACrD7qkC,SAAUA,MAGhB,CC3CA,MAAMuQ,GAAY,CAAC,QAAS,yBAmBf+6jC,GAAkBv6jC,IAC7B,IAAIi7iC,EAAuBC,EAAwBG,EACnD,IAAI,MACArsjC,EAAK,sBACLssjC,GACEt7iC,EACJu7iC,GAAe34iC,EAAAA,GAAAA,GAA8B5C,EAAMR,IACrD,MAAM,MACJyD,EACA8mB,UAAWgwhC,EAAc,UACzBv8iC,EAAS,GACTmO,EAAE,OACFqkB,EAAM,cACNuggC,EAAa,SACb3G,EAAQ,KACRz0hC,EAAI,MACJkd,EAAK,SACLmggC,EAAQ,SACRligC,EAAQ,SACRnO,EAAQ,WACRkthC,GACErgiC,EACEyw9B,EAAQy4E,KACRsjB,EAAmB9ljC,EAAAA,OAAa,MAChCushC,GAAUj3/B,EAAAA,GAAKA,KACfywhC,EAA4K,OAAzJR,EAA0C,MAAlBlB,GAA+E,OAApDmB,EAAyBnB,EAAehviC,cAAmB,EAASmwiC,EAAuBpqpB,SAAkBmqpB,GACnL,KACJxyhC,EAAI,QACJgg5B,EAAO,YACP+pI,EAAW,kBACXsD,EACAxD,WAAYoJ,GACV3G,IAAUlyiC,EAAAA,GAAAA,GAAS,CAAC,EAAG04iC,EAAc,CACvCvsjC,QACAwjhC,SAAUgpC,EACVvG,eAAe,EACfD,oBAAqB,CAAC,EACtB5F,eAAgB,YAEZiN,EAAQp5iC,EAAMu+C,MACd8w/B,EAAal5F,GAAa,CAC9Bn4D,YAAao7J,EACb1mG,kBAAqC,MAAlBokG,OAAyB,EAASA,EAAev4/B,MACpEk05B,iBAAiB7y8B,EAAAA,GAAAA,GAAS,CAAC,EAAG64iC,EAAkBD,GAAmB,CACjEpwhC,GAAI42/B,KACD9/gC,GAAYmO,IAAa,CAC5BqpS,QAAS8unB,EAAQ05G,OACjBpxE,WvE7DyBypH,EuE6DC/xJ,EAAQ05G,OvE7DkBxygC,IACtC,UAAdA,EAAMxkB,KAAiC,MAAdwkB,EAAMxkB,MACjCqvkC,EAAQ7qjC,GAGRA,EAAMozB,iBACNpzB,EAAM+4P,mBAEJ+xzB,GACFA,EAAc9qjC,EAChB,IuEoDK,CACDW,SAAsB,MAAZA,GAAmBA,EAC7BnO,WACA3E,YACAmO,KACAqkB,SACAuggC,gBACA3G,WACAv3gC,QACAld,SAEFyK,WAAY5Q,IvEzEc0rkC,IAACF,EAASC,EuE6EtCnoB,EAAW18B,YAAa/ygC,EAAAA,GAAAA,GAAS,CAAC,EAAGyviC,EAAW18B,WAAY,CAC1D,aAAc0lC,EAAsBI,EAAiBrujC,MAAOoy9B,KAE9D,MAAM88F,GAAgB15iC,EAAAA,GAAAA,GAAS,CAC7BqqtB,UAAWjqtB,EAAMiqtB,WAChBolV,EAAWrviC,OACR+mrB,EAA2C,OAAjCqxX,EAAgBp4iC,EAAMkxD,QAAkBkn/B,EAAgBP,GAClE5kC,GAAiBvr/B,EAAAA,GAAAA,GAAW6whC,EAAkBlJ,EAAW9/B,SAAUA,GACzE,IAAIkqC,EAAez6B,EACfw5B,IAEAiB,EADErqiC,EACa,GAAHxd,OAAMothC,EAAO,eAEVl3hC,GAGnB,MAAMg/B,GAAYlnB,EAAAA,GAAAA,GAAS,CAAC,EAAGk3iC,EAAgB,CAC7ChviC,SAASlI,EAAAA,GAAAA,GAAS,CAAC,EAAqB,MAAlBk3iC,OAAyB,EAASA,EAAehviC,QAAS,CAC9E87gC,QAAS5E,IAEXq4C,aAAaz3jC,EAAAA,GAAAA,GAAS,CACpB,kBAAmB65iC,GACA,MAAlB3C,OAAyB,EAASA,EAAeugB,eAmBtD,MAAO,CACL3d,aAlBmBA,KAAmBv5iC,EAAAA,GAAAA,MAAM+xhC,GAAsB,CAClE9F,WAAYA,EACZpgiC,SAAU,EAAcwU,EAAAA,GAAAA,KAAK44iC,GAAOx5iC,EAAAA,GAAAA,GAAS,CAAC,EAAGyviC,EAAY,CAC3DrviC,MAAOs5iC,EACPxyhC,UAAWA,EACXyo/B,SAAU0D,MACMzygC,EAAAA,GAAAA,KAAKu2jC,IAAoBn3jC,EAAAA,GAAAA,GAAS,CAAC,EAAG4l6B,EAAS,CAC/Dhg5B,KAAMA,EACNxlB,MAAOA,EACP8mB,UAAWA,EACX96B,UAAuBwU,EAAAA,GAAAA,KAAKumrB,GAAQnnrB,EAAAA,GAAAA,GAAS,CAAC,EAAG2viC,EAA0B,MAAbzohC,OAAoB,EAASA,EAAUoqC,OAAQ,CAC3GlxD,MAAOA,EACP8mB,UAAWA,EACX96B,SAAU6mjC,aAMf,ECxGG6kB,GAAgCjlkC,EAAAA,YAAiB,SAA0B2M,EAASpM,GACxF,IAAIsjkC,EAAwBC,EAAuBC,EACnD,MAAMpqC,EAAa+I,KACb34E,EAAQy4E,KAGRwhC,EAAmBjgC,GAA8Bp3hC,EAAS,uBAC1D+yiC,GAAgBvyiC,EAAAA,GAAAA,GAAS,CAC7BqvB,IAAKkniC,GACL9pjC,MAAO8pjC,GACP1siC,KAAM0siC,IACLM,EAAiBtkB,eAGdpmjC,GAAQ6T,EAAAA,GAAAA,GAAS,CAAC,EAAG62jC,EAAkB,CAC3CtkB,gBACAplhC,OAAQ26/B,GAAkBlrE,EAAOi6G,GAAkB,GACnDz2jC,OAAOJ,EAAAA,GAAAA,GAAS,CACd2+C,MAAOklgC,IACNgT,EAAiBz2jC,OACpB8mB,WAAWlnB,EAAAA,GAAAA,GAAS,CAAC,EAAG62jC,EAAiB3viC,UAAW,CAClDy3B,MAAO5hD,IACL,IAAI+5jC,EACJ,OAAO92jC,EAAAA,GAAAA,GAAS,CAAC,EAAG8z8B,GAA8E,OAAvDgjH,EAAwBD,EAAiB3viC,gBAAqB,EAAS4viC,EAAsBn4gC,MAAO5hD,GAAawljC,GAAuBsU,GAAmB,CACpMzjkC,OACA,EAEJ8U,SAASlI,EAAAA,GAAAA,GAAS,CAChBiuZ,QAAQ,GACkD,OAAxDyoqB,EAAyBG,EAAiB3viC,gBAAqB,EAASwviC,EAAuBxujC,cAGjG,aACJ4xiC,GACE4d,GAAgB,CAClBvrkC,QACAw/iC,aAAc1b,GACdxI,UAAW,OACXgxB,sBAAuJ,OAA/Hke,EAAkE,OAAzCC,EAAoBzqkC,EAAMqgiC,iBAAsB,EAASoqC,EAAkBhiC,wBAAkC+hC,EAAwBnqC,EAAWoI,uBACjM7phC,UAAWmshC,KAEb,OAAO4iB,GACT,IACAge,GAAiB97iC,UAAY,CAW3Bm74B,UAAWzY,KAAAA,KAIX/j5B,UAAW+j5B,KAAAA,OAKXiuJ,cAAejuJ,KAAAA,KAMf3i5B,WAAY2i5B,KAAAA,OAMZ+2D,gBAAiB/2D,KAAAA,OAQjBusK,mBAAoBvsK,KAAAA,KAKpB+lK,qBAAsB/lK,KAAAA,IAKtBxj4B,aAAcwj4B,KAAAA,IAKdp/4B,SAAUo/4B,KAAAA,KAKVgoI,cAAehoI,KAAAA,KAKf8nK,sBAAuB9nK,KAAAA,KAKvB+6J,kBAAmB/6J,KAAAA,KAKnBioI,YAAajoI,KAAAA,KAIb0sK,kBAAmB1sK,KAAAA,KAMnB2sK,gBAAiB3sK,KAAAA,OAKjBvx3B,OAAQux3B,KAAAA,OAMRgvI,cAAehvI,KAAAA,MAAgB,CAAC,QAAS,aAIzCixH,SAAU3xyB,GAIVxuN,MAAOkv4B,KAAAA,KAMPr2K,QAASq2K,KAAAA,KAKT8tI,WAAY9tI,KAAAA,OAIZkoI,QAASloI,KAAAA,IAITmoI,QAASnoI,KAAAA,IAKTquK,aAAcruK,KAAAA,MAAgB,CAAC,EAAG,IAIlCps5B,KAAMos5B,KAAAA,OAMN8tJ,SAAU9tJ,KAAAA,KAQVi+F,SAAUj+F,KAAAA,KAKV2/E,QAAS3/E,KAAAA,KAUT7tE,QAAS6tE,KAAAA,KAMTimK,cAAejmK,KAAAA,KAKf4gI,OAAQ5gI,KAAAA,KAKRouJ,yBAA0BpuJ,KAAAA,KAM1BqxJ,aAAcrxJ,KAAAA,KAMdg3K,aAAch3K,KAAAA,KAKd943B,KAAM843B,KAAAA,KAMNsnI,OAAQtnI,KAAAA,MAAgB,CAAC,MAAO,QAAS,SAIzC/kvB,YAAa+kvB,KAAAA,MAAgB,CAAC,YAAa,aAC3Cjx4B,SAAUix4B,KAAAA,KAKVqrJ,iBAAkBrrJ,KAAAA,KAKlB4wI,cAAe5wI,KAAAA,IAMfssK,cAAetsK,KAAAA,KAUfkuJ,iBAAkBluJ,KAAAA,UAAoB,CAACA,KAAAA,MAAgB,CAAC,MAAO,MAAO,QAAS,WAAY,UAAW,QAAS,UAAW,UAAW,SAAUA,KAAAA,OAAkBA,KAAAA,MAAgB,CAC/Kvl4B,SAAUul4B,KAAAA,OAAiBX,WAC3BhxL,WAAY2xL,KAAAA,OAAiBX,eAW/Bo5I,kBAAmBz4I,KAAAA,KAOnB04I,mBAAoB14I,KAAAA,KAOpB24I,kBAAmB34I,KAAAA,KAWnB6nK,4BAA6B7nK,KAAAA,KAK7Bx33B,UAAWw33B,KAAAA,OAKXt+4B,MAAOs+4B,KAAAA,OAIP514B,GAAI414B,KAAAA,UAAoB,CAACA,KAAAA,QAAkBA,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,QAAmBA,KAAAA,KAAgBA,KAAAA,SAQrIqoI,SAAUroI,KAAAA,OAKVl05B,MAAOk05B,KAAAA,IAMP7x2B,KAAM6x2B,KAAAA,MAAgB,CAAC,MAAO,QAAS,SAMvC6zJ,cAAe7zJ,KAAAA,MAAgB,CAC7Brv3B,IAAKqv3B,KAAAA,KACLjy4B,MAAOiy4B,KAAAA,KACP703B,KAAM603B,KAAAA,OAKRknI,MAAOlnI,KAAAA,QAAkBA,KAAAA,MAAgB,CAAC,MAAO,QAAS,SAASX,YAKnEixK,YAAatwK,KAAAA,MAAgB,CAAC,EAAG,KCjYnC,MAAM/h5B,GAAY,CAAC,yBAoBbo7jC,GAA0BllkC,EAAAA,YAAiB,SAAoB2M,EAASpM,GAC5E,MAAMjH,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,mBAEF,sBACF0lkC,EAAwB3vB,IACtBl8iC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAM/C,OAHkB2ohC,GAAc0yC,EAAuB,CACrDpzC,gBAAgB,KAGIhkhC,EAAAA,GAAAA,KAAK41jC,IAAmBx2jC,EAAAA,GAAAA,GAAS,CACnD5M,IAAKA,GACJ0M,KAEec,EAAAA,GAAAA,KAAKk3jC,IAAkB93jC,EAAAA,GAAAA,GAAS,CAClD5M,IAAKA,GACJ0M,GACL,qHCpCAm4jC,KAAAA,OAAoBC,MACpBD,KAAAA,OAAoBE,MACpBF,KAAAA,OAAoBG,MACpB,MAAMC,GAAwBrmB,GAAa,CAAC,kCAAmC,mJAAoJ,sEAAuE,+BACpStoB,GAAiB,CAErB/5/B,GAAI,OACJC,KAAM,CACJ+5/B,YAAa,OACb3pE,YAAa,QACblgwB,UAAW,GAGbx2L,EAAG,CACDqggC,YAAa,QACb3pE,YAAa,QACblgwB,UAAW,GAEbvwL,GAAI,QACJC,IAAK,CACHm6/B,YAAa,QACb3pE,YAAa,UAEfvw7B,KAAM,CACJk6/B,YAAa,QACb3pE,YAAa,UAGf/17B,EAAG,CACD0//B,YAAa,MACb3pE,YAAa,QACblgwB,UAAW,GAEb3wL,GAAI,MACJC,GAAI,CACFu6/B,YAAa,MACb3pE,YAAa,qBAGf3k9B,EAAG,CACDsuhC,YAAa,UACb3pE,YAAa,QACblgwB,UAAW,GAEbxH,GAAI,CACFqx0B,YAAa,UACb3pE,YAAa,UAEfs4G,IAAK,CACH3uC,YAAa,UACb3pE,YAAa,UAEfu4G,KAAM,CACJ5uC,YAAa,UACb3pE,YAAa,UAGftx7B,EAAG,WACHjc,EAAG,WAEHuc,EAAG,CACD26/B,YAAa,QACb3pE,YAAa,QACblgwB,UAAW,GAEb7wL,GAAI,QACJ/0B,EAAG,CACDyvhC,YAAa,QACb3pE,YAAa,QACblgwB,UAAW,GAEb5wL,GAAI,QAEJhV,EAAG,CACDyvgC,YAAa,UACb3pE,YAAa,QACblgwB,UAAW,GAEb/wL,GAAI,UAEJxc,EAAG,CACDo3gC,YAAa,UACb3pE,YAAa,QACblgwB,UAAW,GAEbhxL,GAAI,WAEA0piC,GAAiB,CACrB3uiC,KAAM,OACNpd,MAAO,OACPgsjC,WAAY,MACZzwC,WAAY,IACZx58B,QAAS,OACTkq/B,aAAc,KACdxvC,SAAU,KACVD,SAAU,KACV57/B,SAAU,IACVgD,QAAS,KACTC,QAAS,KACTqoiC,SAAU,KACVC,oBAAqB,WACrBxwC,aAAc,IACdywC,UAAW,QACX1wC,WAAY,SACZD,sBAAuB,aACvB4wC,aAAc,YACdC,aAAc,SACdC,SAAU,KACVC,YAAa,UACbC,YAAa,QACbC,aAAc,MACdC,gBAAiB,aACjBC,gBAAiB,WACjBC,iBAAkB,OAClBC,oBAAqB,YACrBC,oBAAqB,WAEjBC,GAAqB,CAAC,qBAAsB,0EAA2E,0FAA0FxrkC,KAAK,MACtNyrkC,GAA0B,CAAC,0BAA2B,2FAA4F,+FAA+FzrkC,KAAK,MA4BrP,MAAM0rkC,GACXhmkC,WAAAA,GAIQ,IAHN62B,OAAQmgxB,EAAO,QACf56wB,EAAO,SACP/H,GACD5zB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACH,IAAIwlkC,EAjCYC,EAAOrviC,EAkCvBpjC,KAAK8riC,cAAe,EACpB9riC,KAAK0ykC,sBAAuB,EAC5B1ykC,KAAKiiI,IAAM,QACXjiI,KAAK2ykC,sBAAmB,EACxB3ykC,KAAKyykC,WAAQ,EACbzykC,KAAKojC,YAAS,EACdpjC,KAAK2oC,aAAU,EACf3oC,KAAKoniC,kBAAoB,CACvBtghC,MAAO,IACP9iB,IAAK,KAEPhE,KAAKsiiC,eAAiBA,GACtBtiiC,KAAK4ykC,iBAAmBxvkC,IACtB,MAAMyvkC,EAAiB7ykC,KAAK6giC,uBAC5B,OAAIgyC,IAAmBzvkC,EAAMggC,SACpBhgC,EAEFA,EAAMggC,OAAOyviC,EAAe,EAErC7ykC,KAAK8ykC,aAAe,IAAkC,qBAArBjC,KAAAA,IACjC7wkC,KAAK+ykC,kBAAoB,IAAiC,qBAApBlC,KAAAA,GACtC7wkC,KAAKglC,OAAS,CAAC5hC,EAAO4vkC,EAAWC,KAC/B,MAAMC,EAA2BlzkC,KAAKiqiC,YAAY+oC,EAAWhzkC,KAAKgqiC,YAAY5miC,IAC9E,OAAOA,EAAM2iC,OAAOktiC,KAAwBC,EAAyBntiC,OAAOktiC,EAAmB,EAKjGjzkC,KAAKmzkC,cAAgBxzC,IACnB,OAAQA,GACN,IAAK,UAED,OAEJ,IAAK,SAED,OAAOkxC,KAAAA,GAAgBuC,QAE3B,QAEI,OAAOzzC,EAEb,EAEF3/hC,KAAKqzkC,iBAAmBjwkC,IAGtB,GAAIpD,KAAK2ykC,iBACP,OAAO3ykC,KAAK2ykC,iBAAiBvvkC,GAE/B,GAAIpD,KAAK8ykC,gBAAkB9ykC,KAAK+ykC,oBAAqB,CACnD,MAAMpzC,EAAWkxC,KAAAA,GAAgBuC,QAIjC,MAAiB,QAAbzzC,EACKkxC,KAAAA,GAAgBztkC,EAAOu8hC,GAEzBkxC,KAAaztkC,EACtB,CACA,OAAOytkC,KAAaztkC,EAAM,EAE5BpD,KAAKszkC,cAAgBlwkC,IAEnB,IAAKpD,KAAK8ykC,eACR,MAAM,IAAI9gkC,MAAMqgkC,IAElB,OAAOxB,KAAAA,IAAiBztkC,EAAM,EAEhCpD,KAAKuzkC,aAAe,CAACnwkC,EAAOu8hC,KAE1B,IAAK3/hC,KAAK8ykC,eACR,MAAM,IAAI9gkC,MAAMqgkC,IAIlB,IAAKrykC,KAAK+ykC,oBACR,MAAM,IAAI/gkC,MAAMsgkC,IAElB,MAAMkB,OAA0B1ykC,IAAVsC,IAAwBA,EAAM0zY,SAAS,KAC7D,OAAO+5rB,KAAaztkC,GAAO2vgB,GAAG/ygB,KAAKmzkC,cAAcxzC,GAAW6zC,EAAc,EAE5ExzkC,KAAKyzkC,iBAAmB,KACtB,MAAMt49B,EAAU019B,KAAAA,GAEhB,IAAI6C,EAAev49B,EADJn7G,KAAKojC,QAAU,MAM9B,YAJqBtiC,IAAjB4ykC,IACFzC,KACAyC,EAAev49B,EAAQt0E,IAElB6siC,EAAa/qiC,OAAO,EAQ7B3oC,KAAK2zkC,aAAevwkC,IAClB,IAAKpD,KAAK+ykC,oBACR,OAAO3vkC,EAET,MAAMu8hC,EAAW3/hC,KAAKgqiC,YAAY5miC,GAClC,GAAiB,QAAbu8hC,EAAoB,CACtB,IAAIi0C,EAAqBC,EACzB,MAAMC,EAAa1wkC,EAAM2vgB,GAAG/ygB,KAAKmzkC,cAAcxzC,IAAW,GAE1D,IAAmD,OAA7Ci0C,EAAsBE,EAAWrwiC,SAAmBmwiC,EAAsB,MAA4C,OAAnCC,EAAiBzwkC,EAAMqgC,SAAmBowiC,EAAiB,GAClJ,OAAOzwkC,EAMTA,EAAMqgC,QAAUqwiC,EAAWrwiC,OAC7B,CACA,OAAOrgC,CAAK,EAEdpD,KAAKolB,KAAOhiB,GACI,OAAVA,EACK,KAEFpD,KAAKyykC,MAAMrvkC,GAEpBpD,KAAK4/hC,iBAAmB,CAACx8hC,EAAOu8hC,KAC9B,GAAc,OAAVv8hC,EACF,OAAO,KAET,IAAIug/B,EAQJ,OANEA,EADe,QAAbg8C,EACY3/hC,KAAKszkC,cAAclwkC,GACX,WAAbu8hC,GAAsC,YAAbA,IAA2B3/hC,KAAK+ykC,oBACpD/ykC,KAAKqzkC,iBAAiBjwkC,GAEtBpD,KAAKuzkC,aAAanwkC,EAAOu8hC,QAErB7+hC,IAAhBd,KAAKojC,OACAug9B,EAEFA,EAAYvg9B,OAAOpjC,KAAKojC,OAAO,EAExCpjC,KAAKgqiC,YAAc5miC,IACjB,GAAIpD,KAAK+ykC,oBAAqB,CAC5B,IAAIgB,EAEJ,MAAM1siC,EAAiC,OAAzB0siC,EAAY3wkC,EAAMogC,SAAc,EAASuwiC,EAAUC,UACjE,GAAI3siC,EACF,OAAOA,CAEX,CACA,OAAIrnC,KAAK8ykC,gBAAkB1vkC,EAAM6wkC,QACxB,MAEF,QAAQ,EAEjBj0kC,KAAKiqiC,YAAc,CAAC7miC,EAAOu8hC,KACzB,GAAI3/hC,KAAKgqiC,YAAY5miC,KAAWu8hC,EAC9B,OAAOv8hC,EAET,GAAiB,QAAbu8hC,EAAoB,CAEtB,IAAK3/hC,KAAK8ykC,eACR,MAAM,IAAI9gkC,MAAMqgkC,IAElB,OAAOjvkC,EAAMkgC,KACf,CAKA,GAAiB,WAAbq8/B,EACF,OAAOv8hC,EAAMgwC,QAEf,IAAKpzC,KAAK+ykC,oBAAqB,CAC7B,GAAiB,YAAbpzC,EACF,OAAOv8hC,EAIT,MAAM,IAAI4O,MAAMsgkC,GAClB,CACA,OAAOzB,KAAAA,GAAgBztkC,EAAOpD,KAAKmzkC,cAAcxzC,GAAU,EAE7D3/hC,KAAKojkC,SAAWhgkC,GACPA,EAAMqiC,SAEfzlC,KAAKk0kC,SAAWC,GACPn0kC,KAAKyykC,MAAM0B,GAEpBn0kC,KAAKo0kC,MAAQhxkC,GACJA,EAAMojC,cAEfxmC,KAAK+G,MAAQ,CAAC3D,EAAO2iC,IACL,KAAV3iC,EACK,KAEFpD,KAAKyykC,MAAMrvkC,EAAO2iC,EAAQ/lC,KAAKojC,QAAQ,GAEhDpjC,KAAK6giC,qBAAuB,IACnB7giC,KAAKojC,QAAU,KAExBpjC,KAAKq0kC,6BAA+B,IAE3B,MAAMhtjC,KAAKrnB,KAAKyzkC,mBAAmBzsiC,IAAM,IAElDhnC,KAAK8miC,aAAe/ggC,IAClB,MAAMuuiC,EAAgBt0kC,KAAKyzkC,mBAI3B,OAAO1tiC,EAAO1iC,QAAQ,qCAAqC,CAAC6/B,EAAG7X,EAAG4H,KAChE,MAAM2oZ,EAAI3oZ,GAAKA,EAAEuJ,cACjB,OAAOnR,GAAKipjC,EAAcrhjC,IAAQqhjC,EAAc14pB,GAHjBv4a,QAAQ,kCAAkC,CAAC6/B,EAAG7X,EAAG4H,IAAM5H,GAAK4H,EAAEhvB,MAAM,IAGhD,GACnD,EAEJjE,KAAKu0kC,oBAAsBxuiC,GAClB/lC,KAAK8miC,aAAa/ggC,GAAQ1iC,QAAQ,MAAO,UAAUsltB,oBAE5D3otB,KAAKmwY,OAAS/sY,GACK,OAAVA,EAETpD,KAAK+kC,QAAU3hC,GACNpD,KAAKyykC,MAAMrvkC,GAAO2hC,UAE3B/kC,KAAK+lC,OAAS,CAAC3iC,EAAO0hJ,IACb9kJ,KAAK4iiC,eAAex/hC,EAAOpD,KAAK2oC,QAAQm8G,IAEjD9kJ,KAAK4iiC,eAAiB,CAACx/hC,EAAOoxkC,IACrBx0kC,KAAKyykC,MAAMrvkC,GAAO2iC,OAAOyuiC,GAElCx0kC,KAAKuoV,aAAeksvB,GACXA,EAETz0kC,KAAK00kC,QAAU,CAACtxkC,EAAO4vkC,EAAWthjC,IACzBtuB,EAAMkjC,KAAK0siC,EAAWthjC,GAE/B1xB,KAAK4piC,QAAU,CAACxmiC,EAAO4vkC,IACP,OAAV5vkC,GAAgC,OAAd4vkC,GAGfhzkC,KAAKyykC,MAAMrvkC,GAAOqiC,SAASD,YAAcxlC,KAAKyykC,MAAMO,GAAWvtiC,SAASD,UAEjFxlC,KAAK20kC,WAAa,CAACvxkC,EAAO4vkC,IACjBhzkC,KAAKglC,OAAO5hC,EAAO4vkC,EAAW,QAEvChzkC,KAAKi+jC,YAAc,CAAC76jC,EAAO4vkC,IAClBhzkC,KAAKglC,OAAO5hC,EAAO4vkC,EAAW,WAEvChzkC,KAAK+9jC,UAAY,CAAC36jC,EAAO4vkC,IAChBhzkC,KAAKglC,OAAO5hC,EAAO4vkC,EAAW,cAEvChzkC,KAAK40kC,WAAa,CAACxxkC,EAAO4vkC,IACjB5vkC,EAAM4hC,OAAOguiC,EAAW,QAEjChzkC,KAAKmlC,QAAU,CAAC/hC,EAAO4vkC,IACd5vkC,EAAQ4vkC,EAEjBhzkC,KAAK4okC,YAAc,CAACxlkC,EAAO4vkC,IACpBhzkC,KAAK8ykC,gBAGF9ykC,KAAK20kC,WAAWvxkC,EAAO4vkC,IAAc5vkC,EAAMkgC,MAAQ0viC,EAAU1viC,MAF5DlgC,EAAM+hC,QAAQ6tiC,EAAW,QAIpChzkC,KAAKmpiC,WAAa,CAAC/liC,EAAO4vkC,IACnBhzkC,KAAK8ykC,gBAGF9ykC,KAAK+9jC,UAAU36jC,EAAO4vkC,IAAc5vkC,EAAMkgC,MAAQ0viC,EAAU1viC,MAF3DlgC,EAAM+hC,QAAQ6tiC,EAAW,OAIpChzkC,KAAKolC,SAAW,CAAChiC,EAAO4vkC,IACf5vkC,EAAQ4vkC,EAEjBhzkC,KAAK2okC,aAAe,CAACvlkC,EAAO4vkC,IACrBhzkC,KAAK8ykC,gBAGF9ykC,KAAK20kC,WAAWvxkC,EAAO4vkC,IAAc5vkC,EAAMkgC,MAAQ0viC,EAAU1viC,MAF5DlgC,EAAMgiC,SAAS4tiC,EAAW,QAIrChzkC,KAAKopiC,YAAc,CAAChmiC,EAAO4vkC,IACpBhzkC,KAAK8ykC,gBAGF9ykC,KAAK+9jC,UAAU36jC,EAAO4vkC,IAAc5vkC,EAAMkgC,MAAQ0viC,EAAU1viC,MAF3DlgC,EAAMgiC,SAAS4tiC,EAAW,OAIrChzkC,KAAK60kC,cAAgB,CAACzxkC,EAAK2S,KAAmB,IAAhB+Q,EAAO9iB,GAAI+R,EACvC,OAAO3S,GAAS0jB,GAAS1jB,GAASY,CAAG,EAEvChE,KAAKigiC,YAAc78hC,GACVpD,KAAK2zkC,aAAavwkC,EAAM6hC,QAAQ,SAEzCjlC,KAAKkiiC,aAAe9+hC,GACXpD,KAAK2zkC,aAAavwkC,EAAM6hC,QAAQ,UAEzCjlC,KAAKkhiC,YAAc99hC,GACVpD,KAAK2zkC,aAAavwkC,EAAM6hC,QAAQ,SAEzCjlC,KAAKsgiC,WAAal9hC,GACTpD,KAAK2zkC,aAAavwkC,EAAM6hC,QAAQ,QAEzCjlC,KAAKszjC,UAAYlwjC,GACRpD,KAAK2zkC,aAAavwkC,EAAM8hC,MAAM,SAEvCllC,KAAKwjkC,WAAapgkC,GACTpD,KAAK2zkC,aAAavwkC,EAAM8hC,MAAM,UAEvCllC,KAAK2iiC,UAAYv/hC,GACRpD,KAAK2zkC,aAAavwkC,EAAM8hC,MAAM,SAEvCllC,KAAK8iiC,SAAW1/hC,GACPpD,KAAK2zkC,aAAavwkC,EAAM8hC,MAAM,QAEvCllC,KAAK80kC,SAAW,CAAC1xkC,EAAO+hG,IACfnlG,KAAK2zkC,aAAaxu+B,EAAS,EAAI/hG,EAAM0iC,SAASjjC,KAAKD,IAAIuiG,GAAS,QAAU/hG,EAAMs/B,IAAIyiE,EAAQ,SAErGnlG,KAAKmgiC,UAAY,CAAC/8hC,EAAO+hG,IAChBnlG,KAAK2zkC,aAAaxu+B,EAAS,EAAI/hG,EAAM0iC,SAASjjC,KAAKD,IAAIuiG,GAAS,SAAW/hG,EAAMs/B,IAAIyiE,EAAQ,UAEtGnlG,KAAK+0kC,SAAW,CAAC3xkC,EAAO+hG,IACfnlG,KAAK2zkC,aAAaxu+B,EAAS,EAAI/hG,EAAM0iC,SAASjjC,KAAKD,IAAIuiG,GAAS,QAAU/hG,EAAMs/B,IAAIyiE,EAAQ,SAErGnlG,KAAK8/hC,QAAU,CAAC18hC,EAAO+hG,IACdnlG,KAAK2zkC,aAAaxu+B,EAAS,EAAI/hG,EAAM0iC,SAASjjC,KAAKD,IAAIuiG,GAAS,OAAS/hG,EAAMs/B,IAAIyiE,EAAQ,QAEpGnlG,KAAK4oiC,SAAW,CAACxliC,EAAO+hG,IACfnlG,KAAK2zkC,aAAaxu+B,EAAS,EAAI/hG,EAAM0iC,SAASjjC,KAAKD,IAAIuiG,GAAS,QAAU/hG,EAAMs/B,IAAIyiE,EAAQ,SAErGnlG,KAAKg1kC,WAAa,CAAC5xkC,EAAO+hG,IACjBnlG,KAAK2zkC,aAAaxu+B,EAAS,EAAI/hG,EAAM0iC,SAASjjC,KAAKD,IAAIuiG,GAAS,UAAY/hG,EAAMs/B,IAAIyiE,EAAQ,WAEvGnlG,KAAKi1kC,WAAa,CAAC7xkC,EAAO+hG,IACjBnlG,KAAK2zkC,aAAaxu+B,EAAS,EAAI/hG,EAAM0iC,SAASjjC,KAAKD,IAAIuiG,GAAS,UAAY/hG,EAAMs/B,IAAIyiE,EAAQ,WAEvGnlG,KAAKsoiC,QAAUlliC,GACNA,EAAMq/B,OAEfziC,KAAKikC,SAAW7gC,GACPA,EAAMiiB,QAEfrlB,KAAKmkC,QAAU/gC,GACNA,EAAMgiB,OAEfplB,KAAKukC,SAAWnhC,GACPA,EAAM4jF,OAEfhnF,KAAKykC,WAAarhC,GACTA,EAAM2jF,SAEf/mF,KAAK2kC,WAAavhC,GACTA,EAAMyjF,SAEf7mF,KAAK6kC,gBAAkBzhC,GACdA,EAAMmjF,cAEfvmF,KAAKomiC,QAAU,CAAChjiC,EAAOq/B,IACdziC,KAAK2zkC,aAAavwkC,EAAM4F,IAAI,OAAQy5B,IAE7CziC,KAAKmoF,SAAW,CAAC/kF,EAAOiiB,IACfrlB,KAAK2zkC,aAAavwkC,EAAM4F,IAAI,QAASqc,IAE9CrlB,KAAKknF,QAAU,CAAC9jF,EAAOgiB,IACdplB,KAAK2zkC,aAAavwkC,EAAM4F,IAAI,OAAQoc,IAE7CplB,KAAKinF,SAAW,CAAC7jF,EAAO0lC,IACf9oC,KAAK2zkC,aAAavwkC,EAAM4F,IAAI,OAAQ8/B,IAE7C9oC,KAAKuo5B,WAAa,CAACnl5B,EAAO6lC,IACjBjpC,KAAK2zkC,aAAavwkC,EAAM4F,IAAI,SAAUigC,IAE/CjpC,KAAKwo5B,WAAa,CAACpl5B,EAAO8lC,IACjBlpC,KAAK2zkC,aAAavwkC,EAAM4F,IAAI,SAAUkgC,IAE/ClpC,KAAKyo5B,gBAAkB,CAACrl5B,EAAOmf,IACtBviB,KAAK2zkC,aAAavwkC,EAAM4F,IAAI,cAAeuZ,IAEpDviB,KAAKwzjC,eAAiBpwjC,GACbA,EAAMyiC,cAEf7lC,KAAKk1kC,aAAe9xkC,GACXpD,KAAKmgiC,UAAU/8hC,EAAO,GAE/BpD,KAAKm1kC,iBAAmB/xkC,GACfpD,KAAKmgiC,UAAU/8hC,GAAQ,GAEhCpD,KAAKo1kC,cAAgBhykC,IACnB,MACMiykC,EAAa,CADAjykC,EAAM6hC,QAAQ,SAEjC,KAAOowiC,EAAWh1kC,OAAS,IAAI,CAC7B,MAAM6/hC,EAAYm1C,EAAWA,EAAWh1kC,OAAS,GACjDg1kC,EAAWz0kC,KAAKZ,KAAKmgiC,UAAUD,EAAW,GAC5C,CACA,OAAOm1C,CAAU,EAEnBr1kC,KAAKi/hC,iBAAmB,CAACC,EAAWC,IAC3BD,EAAUl48B,KAAKm48B,EAAUn48B,QAAQD,OAAOo48B,EAAUp48B,UAAUF,OAAOs48B,EAAUt48B,UAEtF7mF,KAAKihiC,YAAc,KACjB,MAAMn6gC,EAAQ9mB,KAAKyykC,QAAQxtiC,QAAQ,QACnC,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG37B,KAAIg9B,GAAQtmC,KAAK4iiC,eAAe5iiC,KAAK8/hC,QAAQh5gC,EAAOwf,GAAO,OAAM,EAEhGtmC,KAAKklkC,aAAe9hkC,IAClB,MAAMomiC,EAAaxpiC,KAAK4ykC,iBAAiBxvkC,GACnC0jB,EAAQ0ihC,EAAWvkgC,QAAQ,SAASA,QAAQ,QAC5CjhC,EAAMwliC,EAAWtkgC,MAAM,SAASA,MAAM,QAC5C,IAAIp/B,EAAQ,EACR4G,EAAUoa,EACd,MAAMwujC,EAAc,GACpB,KAAO5okC,EAAU1I,GAAK,CACpB,MAAMspiC,EAAazqiC,KAAK2/B,MAAM18B,EAAQ,GACtCwvkC,EAAYhoC,GAAcgoC,EAAYhoC,IAAe,GACrDgoC,EAAYhoC,GAAY1siC,KAAK8L,GAC7BA,EAAU1M,KAAK8/hC,QAAQpzhC,EAAS,GAChC5G,GAAS,CACX,CACA,OAAOwvkC,CAAW,EAEpBt1kC,KAAKslkC,cAAgBlikC,GACZA,EAAMkiB,OAEftlB,KAAKspkC,aAAe,CAACxijC,EAAO9iB,KAC1B,MAAMy+hC,EAAY37gC,EAAMme,QAAQ,QAC1By9/B,EAAU1+hC,EAAIkhC,MAAM,QACpBmjD,EAAQ,GACd,IAAI37E,EAAU+1hC,EACd,KAAO/1hC,EAAUg2hC,GACfr68B,EAAMznF,KAAK8L,GACXA,EAAU1M,KAAK80kC,SAASpokC,EAAS,GAEnC,OAAO27E,CAAK,EAEdroF,KAAKu1kC,gBAAkBj0C,GACL,OAATA,EAAgB,KAAO,KAEhCthiC,KAAK2ykC,iBAAmB/xiC,EACxB5gC,KAAKyykC,OAndWA,EAmd2D,OAAlDD,EAAwBxykC,KAAK2ykC,kBAA4BH,EAAwB3B,MAndnFztiC,EAmdiGmgxB,GAndpE,kBAAakvR,KAAMzlkC,WAASo2B,OAAOA,EAAO,EAAlDqviC,GAod5CzykC,KAAKojC,OAASmgxB,EACdvjzB,KAAK2oC,SAAU/vB,EAAAA,GAAAA,GAAS,CAAC,EAAGw4jC,GAAgBzoiC,GAC5CkoiC,KAAAA,OAAoBzqL,KACtB,EC5iBF,MA2YA,GA3YaovL,KACX,MAAMv3H,EAAkBE,MAClB,UAAE0T,GAAcE,MAEf0jH,EAAYC,IAAiBxpK,EAAAA,EAAAA,UAAS,CAAC,IACvCypK,EAAgBC,IAAqB1pK,EAAAA,EAAAA,UAAS,KAC9C2pK,EAAmBC,IAAwB5pK,EAAAA,EAAAA,UAAS,KACpD6pK,EAAWC,IAAgB9pK,EAAAA,EAAAA,WAAS,IACpC+pK,EAAYC,IAAiBhqK,EAAAA,EAAAA,UAAS,CAC7C,IACO7/4B,EAAQ89uB,IAAa+hK,EAAAA,EAAAA,UAAS,IAC/Bs1B,EAAWR,KAGXm1I,EAAqBR,EAAetpjC,QAAQ8t9B,GAChDA,EAAUi8F,eAAerlkC,cAAc8qX,SAASxvW,EAAOtb,gBACvDop+B,EAAUC,aAAarp+B,cAAc8qX,SAASxvW,EAAOtb,iBAIjDslkC,EAAkBp9qB,UAEtB,GAAIgljB,EAAiB,CACnB,MAAM7pS,QAAoB28S,GAAeE,iBACzCr1S,MAHUhilB,iDAGC,CACThlC,QAAS,CACP285B,cAAc,UAAD3m9B,OAAYwpqB,MAG1BrkoB,MAAMykB,GAAaA,EAASoxB,SAC5B71C,MAAMykB,IACLkhhC,EAAclhhC,GACdohhC,EAAkBphhC,EAAS8hhC,iBAC3BR,EAAqBthhC,EAASol7B,oBAC9Bx93B,QAAQ53D,IAAIgQ,EAAS,GAE3B,IAqBFo32B,EAAAA,EAAAA,YAAU,KACJqyC,GACFo4H,GACF,GACC,CAACp4H,IAEJ,MAAMs4H,EAAsB7wjC,IAC1BykvB,EAAUzkvB,EAAMQ,OAAO9iB,MAAM,EAQzBozkC,EAAsBv9qB,UACrB88qB,SAlCuB98qB,WAC5B,MAAMl0Y,EAAM60E,0DAA0Dx4D,EACtE,GAAI686B,EAAiB,CACnB,MAAM7pS,QAAoB28S,GAAeE,iBAC3Cr1S,MAAM72pB,EAAI,CACR6vC,QAAS,CACP285B,cAAc,UAAD3m9B,OAAYwpqB,MAG1BrkoB,MAAMykB,GAAaA,EAASoxB,SAC5B71C,MAAMykB,IACL0hhC,EAAc1hhC,GACdwhhC,GAAa,GACb559B,QAAQ53D,IAAIyxhC,EAAW,GAE3B,GAqBQQ,CAAsBr1iC,GAC5Bg7E,QAAQ53D,IAAIyxhC,GACd,EAEIt+F,EAAcA,KAClBq+F,GAAa,EAAM,EAEfU,EAAoBhxjC,IACxBwwjC,EAAa3hsB,GAAAA,GAAC,CAAC,EACV0hsB,GAAU,IACb,CAACvwjC,EAAMQ,OAAOhb,MAAOwa,EAAMQ,OAAO9iB,QAClC,EAGEuzkC,EAAmB19qB,UACvB,MACMm7Q,QAAoB28S,GAAeE,uBAElBsZ,GAAMvi+B,KAHjB4xF,qDAKV,CACEwg5B,aAAc67F,EAAW77F,aACzBg8F,eAAgBH,EAAWG,eAC3Bns9B,YAAags9B,EAAWhs9B,YACxBw46B,UAAWwzC,EAAWW,WACtBl0C,QAASuzC,EAAWY,UAEtB,CACEjihC,QAAS,CACP,eAAgB,mBAEhB285B,cAAc,UAAD3m9B,OAAYwpqB,MAI/B4ha,GAAa,GACbK,GAAiB,EAqBnB,OAAIp4H,EAIA4T,IAAa148B,EAAAA,GAAAA,MAACi58B,GAAG,CACf1w8B,GAAI,CACFiT,QAAS,CAAErF,GAAI,EAAGC,GAAI,GACtBzY,MAAO,OACP0f,SAAU,SACV9B,OAAQ,UACR1vB,SAAA,EAEFmU,EAAAA,GAAAA,MAAC+2jC,GAAM,CAAC1xiC,KAAMu3iC,EAAW9+F,QAASU,EAAY3y+B,SAAA,EAC5CwU,EAAAA,GAAAA,KAACs9jC,GAAW,CAAA9xkC,SAAC,oBACbmU,EAAAA,GAAAA,MAAC22jC,GAAa,CAAA9qkC,SAAA,EACZwU,EAAAA,GAAAA,KAACojjC,GAAS,CACRloiC,OAAO,QACPtM,MAAM,iBACNtjB,KAAK,OACLqxM,WAAS,EACTjrM,KAAK,iBACL9H,MAAO6ykC,EAAWG,gBAAkB,GACpC7gF,SAAUmhF,KAGZl9jC,EAAAA,GAAAA,KAACojjC,GAAS,CACRloiC,OAAO,QACPtM,MAAM,cACNtjB,KAAK,OACLqxM,WAAS,EACTjrM,KAAK,cACL9H,MAAO6ykC,EAAWhs9B,aAAe,GACjCsr4B,SAAUmhF,KAEZv9jC,EAAAA,GAAAA,MAAC+xhC,GAAoB,CAACM,YAAa+mC,GAAavtkC,SAAA,EAC9CwU,EAAAA,GAAAA,KAACkooB,GAAI,CAAC1xnB,MAAI,EAACV,GAAI,EAAG0I,GAAI,EAAGE,GAAI,EAAElzB,UAC7BwU,EAAAA,GAAAA,KAACuhhC,GAAW,CAAC5k1B,WAAS,EAACj+K,GAAI,EAAElzB,UAC3BwU,EAAAA,GAAAA,KAACm3jC,GAAU,CACTvojC,MAAM,aACNhlB,MAAO6ykC,EAAWW,WAAanE,KAAMwD,EAAWW,YAAc,KAC9DrhF,SAAWhz/B,GACT2zkC,EAAa3hsB,GAAAA,GAAC,CAAC,EAAI0hsB,GAAU,IAAEW,WAAYr0kC,EAAIA,EAAEikC,cAAgB,QAEnE1G,UAAW,CACTmjsB,UAAW,CACT9shB,WAAW,EAGX1kB,YAAa,oBACbyp2B,gBAAiB,CACfx5gC,GAAI,CAAE5L,SAAU,YAElB4L,GAAI,CACF,wBAAyB,CACvB5L,SAAU,oBAQtB0D,EAAAA,GAAAA,KAACkooB,GAAI,CAAC1xnB,MAAI,EAACV,GAAI,EAAG4I,GAAI,EAAElzB,UACxBwU,EAAAA,GAAAA,KAACuhhC,GAAW,CAAC5k1B,WAAS,EAAAnxM,UACpBwU,EAAAA,GAAAA,KAACm3jC,GAAU,CACTvojC,MAAM,WACNhlB,MAAO6ykC,EAAWY,SAAWpE,KAAMwD,EAAWY,UAAY,KAC1DthF,SAAWhz/B,GACT2zkC,EAAa3hsB,GAAAA,GAAC,CAAC,EAAI0hsB,GAAU,IAAEY,SAAUt0kC,EAAIA,EAAEikC,cAAgB,QAEjE1G,UAAW,CACTmjsB,UAAW,CACT9shB,WAAW,EAGX1kB,YAAa,kBACbyp2B,gBAAiB,CACfx5gC,GAAI,CAAE5L,SAAU,YAElB4L,GAAI,CACF,wBAAyB,CACvB5L,SAAU,0BAkC5BqD,EAAAA,GAAAA,MAACkziC,GAAa,CAAArnjC,SAAA,EACZwU,EAAAA,GAAAA,KAAC6w8B,GAAM,CAAC36pB,QAASiorB,EAAY3y+B,SAAC,YAC9BwU,EAAAA,GAAAA,KAAC6w8B,GAAM,CAAC36pB,QAASinxB,EAAkB/gkC,MAAM,UAAU8L,GAAI,CACrDoV,QAAS,UACTlhB,MAAO,QACPuc,aAAc,MACdwC,QAAS,CAAErF,GAAI,WAAYC,GAAI,YAC/B1R,cAAe,OACf/H,SAAU,CAAEwZ,GAAI,SAAUC,GAAI,YAC9BlgB,WAAY,MACZunB,SAAU,EACVzoB,KAAM,WACN,UAAW,CACT2oB,QAAS,YAEX9xB,SAAC,gBAMPwU,EAAAA,GAAAA,KAACoy9B,GAAU,CACTx88B,QAAQ,KACR1N,GAAI,CACF8W,aAAc,CAAElJ,GAAI,EAAGC,GAAI,GAC3BzZ,SAAU,CAAEwZ,GAAI,SAAUC,GAAI,WAC9BvqB,SACH,oBAGDwU,EAAAA,GAAAA,KAACkooB,GAAI,CAAC1xnB,MAAI,EAACV,GAAI,GAAI4I,GAAI,EAAElzB,UACvBwU,EAAAA,GAAAA,KAACojjC,GAAS,CACRx0iC,MAAM,oBACNgH,QAAQ,WACR+mL,WAAS,EACT/yM,MAAOipB,EACPkp+B,SAAUghF,OAGdp9jC,EAAAA,GAAAA,MAACuooB,GAAI,CAACjhpB,WAAS,EAAC2xB,QAAS,CAAE9C,GAAI,EAAGC,GAAI,GAAK7N,GAAI,CAAE4W,UAAW,GAAItzB,SAAA,EAE9DwU,EAAAA,GAAAA,KAACkooB,GAAI,CAAC1xnB,MAAI,EAACV,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGE,GAAI,EAAE1qB,UACrCwU,EAAAA,GAAAA,KAACih+B,GAAe,MAKjBg7F,GACCU,EAAmB7skC,KAAK6w+B,IACtB3g+B,EAAAA,GAAAA,KAACkooB,GAAI,CACH1xnB,MAAI,EACJV,GAAI,GACJC,GAAI,EACJC,GAAI,EACJE,GAAI,EAAE1qB,UAGNwU,EAAAA,GAAAA,KAACgg+B,GAAY,CACXC,YAAaU,EAAUC,aACvBlv+B,KAAMiv+B,EAAUi8F,eAChBns9B,YAAakw3B,EAAUlw3B,YACvB2v3B,mBAAoBi8F,EACpBn8F,OAAQA,KAAMq9F,OAlPDt9F,EAkPqBU,EAAUC,kBAhP1D54C,EAAS,cAAD527B,OAAe6u+B,IAFIA,KAkP6C,EAC1DE,OAAQA,IAAM68F,EAAoBr8F,EAAUC,cAC5C7g+B,KAAMs48B,EAAUt48B,QATb4g+B,EAAUC,uBAqB3B5g+B,EAAAA,GAAAA,KAAC448B,GAAG,CACF1w8B,GAAI,CACF5K,MAAO,OACPC,OAAQ,OACRvS,SAAU,WACVy0B,SAAU,UACVvE,OAAQ,EACRC,QAAS,GACT3vB,UAEFwU,EAAAA,GAAAA,KAACwsgC,GAAoB,KACjB,ECtXH,SAASgxD,GAAqB5hkC,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,CACA,MACA,IADqBE,EAAAA,GAAsBA,GAAC,WAAY,CAAC,OAAQ,SAAU,OAAQ,UAAW,SAAU,eAAgB,YAAa,eAAgB,aAAc,gBAAiB,aAAc,gBAAiB,cAAe,WAAY,kBAAmB,eAAgB,kBAAmB,gBAAiB,WAAY,kBAAmB,eAAgB,kBAAmB,kBCIvX,IAAejB,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,8OACD,mBCFJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,qFACD,yBCFJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,4KACD,gBCFJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,8MACD,gBCAJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,0GACD,SCTEsB,GAAY,CAAC,SAAU,WAAY,YAAa,YAAa,QAAS,aAAc,kBAAmB,OAAQ,cAAe,UAAW,OAAQ,WAAY,YAAa,QAAS,WAmCnL0hkC,IAAYxhkC,EAAAA,GAAMA,IAACqq8B,GAAO,CAC9B508B,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAWyZ,SAAUpkB,EAAO,GAADJ,OAAI+K,EAAWyZ,SAAOxkB,QAAGiL,EAAAA,GAAUA,GAACF,EAAWC,OAASD,EAAWuhkC,YAAa,GAPzHzhkC,EASfM,IAEG,IAFF,MACFrB,GACDqB,EACC,MAAM4ogB,EAAkC,UAAvBjqgB,EAAMoD,QAAQgE,KAAmBF,GAAAA,GAASD,GAAAA,EACrDw7jC,EAA4C,UAAvBzikC,EAAMoD,QAAQgE,KAAmBH,GAAAA,EAAUC,GAAAA,GACtE,OAAOhD,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW6H,MAAO,CAC1CyX,gBAAiB,cACjB/f,QAAS,OACT2d,QAAS,WACT3f,SAAU,IAAI9R,OAAO2qB,QAAQnZ,EAAMoD,SAASuU,QAAO7X,IAAA,IAAE,CAAEpR,GAAMoR,EAAA,OAAKpR,EAAM2U,MAAQ3U,EAAM4W,KAAK,IAAE1Q,KAAIwkB,IAAA,IAAElY,GAAMkY,EAAA,MAAM,CAC7G/oB,MAAO,CACLqykC,cAAexhkC,EACfwZ,QAAS,YAEX9C,MAAO,CACL1W,MAAOlB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQu/jC,MAAM,GAADzskC,OAAIgL,EAAK,UAAW+ogB,EAASjqgB,EAAMoD,QAAQlC,GAAOoE,MAAO,IACrG+c,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQu/jC,MAAM,GAADzskC,OAAIgL,EAAK,eAAgBuhkC,EAAmBzikC,EAAMoD,QAAQlC,GAAOoE,MAAO,IAC9H,CAAC,MAADpP,OAAO0skC,GAAap8jC,OAASxG,EAAMmD,KAAO,CACxCjC,MAAOlB,EAAMmD,KAAKC,QAAQu/jC,MAAM,GAADzskC,OAAIgL,EAAK,eACtC,CACFA,MAAOlB,EAAMoD,QAAQlC,GAAOmC,OAGjC,OAAO7U,OAAO2qB,QAAQnZ,EAAMoD,SAASuU,QAAO41yB,IAAA,IAAE,CAAE7+zB,GAAM6+zB,EAAA,OAAK7+zB,EAAM2U,MAAQ3U,EAAM4W,KAAK,IAAE1Q,KAAIw5zB,IAAA,IAAEltzB,GAAMktzB,EAAA,MAAM,CACvG/9zB,MAAO,CACLqykC,cAAexhkC,EACfwZ,QAAS,YAEX9C,MAAO,CACL1W,MAAOlB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQu/jC,MAAM,GAADzskC,OAAIgL,EAAK,UAAW+ogB,EAASjqgB,EAAMoD,QAAQlC,GAAOoE,MAAO,IACrGsb,OAAQ,aAAF1qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQlC,GAAOoE,OAC1D,CAAC,MAADpP,OAAO0skC,GAAap8jC,OAASxG,EAAMmD,KAAO,CACxCjC,MAAOlB,EAAMmD,KAAKC,QAAQu/jC,MAAM,GAADzskC,OAAIgL,EAAK,eACtC,CACFA,MAAOlB,EAAMoD,QAAQlC,GAAOmC,OAGjC,OAAO7U,OAAO2qB,QAAQnZ,EAAMoD,SAASuU,QAAOi4yB,IAAA,IAAE,CAAElh0B,GAAMkh0B,EAAA,OAAKlh0B,EAAM2U,MAAQ3U,EAAM6X,IAAI,IAAE3R,KAAIy7zB,IAAA,IAAEnvzB,GAAMmvzB,EAAA,MAAM,CACtGhg0B,MAAO,CACLqykC,cAAexhkC,EACfwZ,QAAS,UAEX9C,OAAO1T,EAAAA,GAAAA,GAAS,CACdvJ,WAAYqF,EAAM+C,WAAW0G,kBAC5BzJ,EAAMmD,KAAO,CACdjC,MAAOlB,EAAMmD,KAAKC,QAAQu/jC,MAAM,GAADzskC,OAAIgL,EAAK,gBACxCmhB,gBAAiBriB,EAAMmD,KAAKC,QAAQu/jC,MAAM,GAADzskC,OAAIgL,EAAK,cAChD,CACFmhB,gBAAwC,SAAvBriB,EAAMoD,QAAQgE,KAAkBpH,EAAMoD,QAAQlC,GAAOqF,KAAOvG,EAAMoD,QAAQlC,GAAOmC,KAClGnC,MAAOlB,EAAMoD,QAAQkF,gBAAgBtI,EAAMoD,QAAQlC,GAAOmC,QAE7D,MACD,IAEEw/jC,IAAY9hkC,EAAAA,GAAMA,IAAC,MAAO,CAC9BvK,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOkQ,MAH7BzF,CAIf,CACD8iB,YAAa,GACb5D,QAAS,QACT3d,QAAS,OACTlB,SAAU,GACVvG,QAAS,KAELiokC,IAAe/hkC,EAAAA,GAAMA,IAAC,MAAO,CACjCvK,KAAM,WACNkK,KAAM,UACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOonI,SAH1B38H,CAIlB,CACDkf,QAAS,QACTiC,SAAU,EACVqC,SAAU,SAENw+iC,IAAchikC,EAAAA,GAAMA,IAAC,MAAO,CAChCvK,KAAM,WACNkK,KAAM,SACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOgN,QAH3BvC,CAIjB,CACDuB,QAAS,OACTyiB,WAAY,aACZ9E,QAAS,eACT8D,WAAY,OACZF,aAAc,IAEVm/iC,GAAqB,CACzBh7jC,SAAsBlD,EAAAA,GAAAA,KAAKm+jC,GAAqB,CAC9C7hkC,SAAU,YAEZ+G,SAAsBrD,EAAAA,GAAAA,KAAKo+jC,GAA2B,CACpD9hkC,SAAU,YAEZsG,OAAoB5C,EAAAA,GAAAA,KAAKq+jC,GAAkB,CACzC/hkC,SAAU,YAEZyG,MAAmB/C,EAAAA,GAAAA,KAAKs+jC,GAAkB,CACxChikC,SAAU,aA2Md,GAxM2BrK,EAAAA,YAAiB,SAAe2M,EAASpM,GAClE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,cAEF,OACF8M,EAAM,SACNhT,EAAQ,UACRuO,EAAS,UACTwkkC,EAAY,QAAO,MACnBnikC,EAAK,WACLjB,EAAa,CAAC,EAAC,gBACf058B,EAAkB,CAAC,EAAC,KACpBnz8B,EAAI,YACJ88jC,EAAcN,GAAkB,QAChCzgG,EAAO,KACP199B,EAAO,QAAO,SACd29jC,EAAW,UAAS,UACpBp3iC,EAAY,CAAC,EAAC,MACd9mB,EAAQ,CAAC,EAAC,QACVoW,EAAU,YACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACAshkC,WACA9njC,UACAgojC,cAAexhkC,GAASshkC,IAEpBn+jC,EAxJkBpD,KACxB,MAAM,QACJyZ,EAAO,MACPxZ,EAAK,SACLshkC,EAAQ,QACRn+jC,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ,QAAFgG,QAAUiL,EAAAA,GAAUA,GAACD,GAASshkC,IAAS,GAAAtskC,OAAOwkB,GAAOxkB,QAAGiL,EAAAA,GAAUA,GAACD,GAASshkC,IAAS,GAAAtskC,OAAOwkB,IACzGlU,KAAM,CAAC,QACPk3H,QAAS,CAAC,WACVp6H,OAAQ,CAAC,WAEX,OAAOiB,EAAAA,GAAcA,GAACD,EAAOg+jC,GAAsBj+jC,EAAQ,EA2I3CG,CAAkBvD,GAC5Bg28B,EAAyB,CAC7B3y8B,OAAOJ,EAAAA,GAAAA,GAAS,CACd45yB,YAAa79yB,EAAWsjkC,YACxBC,UAAWvjkC,EAAW6l+B,WACrBxh+B,GACH8mB,WAAWlnB,EAAAA,GAAAA,GAAS,CAAC,EAAGy18B,EAAiBvu7B,KAEpCq4iC,EAAiBC,GAAoBpsG,GAAQ,cAAe,CACjEh1E,YAAa+iF,GACbpuB,yBACAh28B,gBAEK0ikC,EAAeC,GAAkBtsG,GAAQ,YAAa,CAC3Dh1E,YAAawjF,GACb7uB,yBACAh28B,eAEF,OAAoBwD,EAAAA,GAAAA,MAAM89jC,IAAWr+jC,EAAAA,GAAAA,GAAS,CAC5CW,KAAMA,EACN850B,UAAW,EACX190B,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,EAAO,CACR1T,SAAU,EAAU,IAATkW,GAA8B1B,EAAAA,GAAAA,KAAK+9jC,GAAW,CACvD5hkC,WAAYA,EACZpC,UAAWwF,EAAQmC,KACnBlW,SAAUkW,GAAQ88jC,EAAYd,IAAaQ,GAAmBR,KAC3D,MAAmB19jC,EAAAA,GAAAA,KAAKg+jC,GAAc,CACzC7hkC,WAAYA,EACZpC,UAAWwF,EAAQq5H,QACnBptI,SAAUA,IACE,MAAVgT,GAA8BwB,EAAAA,GAAAA,KAAKi+jC,GAAa,CAClD9hkC,WAAYA,EACZpC,UAAWwF,EAAQf,OACnBhT,SAAUgT,IACP,KAAgB,MAAVA,GAAkBi/9B,GAAuBz99B,EAAAA,GAAAA,KAAKi+jC,GAAa,CACpE9hkC,WAAYA,EACZpC,UAAWwF,EAAQf,OACnBhT,UAAuBwU,EAAAA,GAAAA,KAAK2+jC,GAAiBv/jC,EAAAA,GAAAA,GAAS,CACpD3Q,KAAM,QACN,aAAc8vkC,EACd9q9B,MAAO8q9B,EACPnikC,MAAO,UACP85S,QAASunrB,GACRmhG,EAAkB,CACnBpzkC,UAAuBwU,EAAAA,GAAAA,KAAK6+jC,GAAez/jC,EAAAA,GAAAA,GAAS,CAClD9C,SAAU,SACTwikC,SAEF,QAET,ICrNA,GAZ0BC,KAGxB,IAFwBp6H,KAGtB,OACIhl8B,EAAAA,GAAAA,MAACi58B,GAAG,CAAApt9B,SAAA,EACJwU,EAAAA,GAAAA,KAACoy9B,GAAU,CAACx88B,QAAQ,KAAK/W,UAAU,KAAKqJ,GAAI,CAAC2W,GAAG,GAAGrzB,SAAE,2CACrDmU,EAAAA,GAAAA,MAACk+jC,GAAK,CAACH,SAAS,QAAOlykC,SAAA,CAAC,iCAA6BwU,EAAAA,GAAAA,KAAA,UAAAxU,SAAQ,UAAc,8CAEhF,ECFH,SAJkCyG,EAAAA,gBCL3B,SAAS+skC,GAAqBpjkC,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,EACqBE,EAAAA,GAAsBA,GAAC,WAAY,CAAC,OAAQ,iBAAjE,MCDMC,GAAY,CAAC,YAAa,YAAa,UAAW,OAAQ,gBAoB1DkjkC,IAAYhjkC,EAAAA,GAAMA,IAAC,QAAS,CAChCvK,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAW+ikC,cAAgB1tkC,EAAO0tkC,aAAa,GAPtDjjkC,EASfM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,QACTF,MAAO,OACP6hkC,eAAgB,WAChBC,cAAe,EACf,aAAahgkC,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW6H,MAAO,CAChDqV,QAASjgB,EAAM0d,QAAQ,GACvBxc,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,UAC1CygB,UAAW,OACXi+iC,YAAa,YAEdljkC,EAAW+ikC,cAAgB,CAC5BC,eAAgB,YAChB,IACIG,GAAmB,QAiFzB,GAhF2BrtkC,EAAAA,YAAiB,SAAe2M,EAASpM,GAClE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,cAEF,UACFqI,EAAS,UACT8E,EAAYygkC,GAAgB,QAC5BnkjC,EAAU,SAAQ,KAClB1sB,EAAO,SAAQ,aACfywkC,GAAe,GACb3zkC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACAsc,UACA1sB,OACAywkC,iBAEI3/jC,EAxDkBpD,KACxB,MAAM,QACJoD,EAAO,aACP2/jC,GACE/ikC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ8zkC,GAAgB,iBAEjC,OAAOz/jC,EAAAA,GAAcA,GAACD,EAAOw/jC,GAAsBz/jC,EAAQ,EAgD3CG,CAAkBvD,GAC5BksX,EAAQp2X,EAAAA,SAAc,KAAM,CAChCkpB,UACA1sB,OACAywkC,kBACE,CAAC/jjC,EAAS1sB,EAAMywkC,IACpB,OAAoBl/jC,EAAAA,GAAAA,KAAKu/jC,GAAantkC,SAAU,CAC9CxI,MAAOy+X,EACP78X,UAAuBwU,EAAAA,GAAAA,KAAKi/jC,IAAW7/jC,EAAAA,GAAAA,GAAS,CAC9CQ,GAAIf,EACJkB,KAAMlB,IAAcygkC,GAAmB,KAAO,QAC9C9skC,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,GACX+C,KAEP,IC7EA,SAJsCjN,EAAAA,gBCH/B,SAASutkC,GAAyB5jkC,GACvC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,EACyBE,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,SAAjE,MCDMC,GAAY,CAAC,YAAa,aAmB1B0jkC,IAAgBxjkC,EAAAA,GAAMA,IAAC,QAAS,CACpCvK,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHzB6Q,CAInB,CACDuB,QAAS,oBAELkikC,GAAY,CAChB9pjC,QAAS,QAEL0pjC,GAAmB,QAqDzB,GApD+BrtkC,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,kBAEF,UACFqI,EAAS,UACT8E,EAAYygkC,IACV/zkC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,cAEIU,EAjCkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBo0kC,GAA0BjgkC,EAAQ,EA0B/CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK2/jC,GAAiBvtkC,SAAU,CAClDxI,MAAO81kC,GACPl0kC,UAAuBwU,EAAAA,GAAAA,KAAKy/jC,IAAergkC,EAAAA,GAAAA,GAAS,CAClDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B6F,GAAIf,EACJrM,IAAKA,EACLuN,KAAMlB,IAAcygkC,GAAmB,KAAO,WAC9CnjkC,WAAYA,GACX+C,KAEP,ICxDO,SAAS0gkC,GAAyBhkkC,GACvC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,CACA,MACA,IADyBE,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,OAAQ,OAAQ,OAAQ,SAAU,YAAa,aAAc,kBAAmB,cAAe,YAAa,cAAe,aAAc,eAAgB,iBCDpNC,GAAY,CAAC,QAAS,YAAa,YAAa,UAAW,QAAS,OAAQ,gBAAiB,WA2B7F8jkC,IAAgB5jkC,EAAAA,GAAMA,IAAC,KAAM,CACjCvK,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAWyZ,SAAUpkB,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAW1N,QAAiC,WAAvB0N,EAAWgf,SAAwB3pB,EAAO,UAADJ,QAAWiL,EAAAA,GAAUA,GAACF,EAAWgf,WAAkC,YAArBhf,EAAWk/E,OAAuB7pF,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWk/E,SAAWl/E,EAAW+ikC,cAAgB1tkC,EAAO0tkC,aAAa,GAPrSjjkC,EASnBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW6H,MAAO,CACzCtI,QAAS,aACT+xJ,cAAe,UAGftzI,aAAc/gB,EAAMmD,KAAO,aAAHjN,OAAgB8J,EAAMmD,KAAKC,QAAQwhkC,UAAUhkjC,QAAM,kBAAA1qB,OAChD,UAAvB8J,EAAMoD,QAAQgE,MAAmBH,EAAAA,GAAAA,IAAQ0N,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQsC,QAAS,GAAI,MAAQwB,EAAAA,GAAAA,KAAOyN,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQsC,QAAS,GAAI,MAC9HwgB,UAAW,OACXjG,QAAS,IACe,SAAvBhf,EAAWyZ,SAAsB,CAClCxZ,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,QAC1C5K,WAAYoF,EAAM+C,WAAWC,QAAQ,IACrCrI,WAAYqF,EAAM+C,WAAW0G,kBACL,SAAvBxI,EAAWyZ,SAAsB,CAClCxZ,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,SAClB,WAAvBvE,EAAWyZ,SAAwB,CACpCxZ,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,UAC1C7K,WAAYoF,EAAM+C,WAAWC,QAAQ,IACrC5B,SAAUpB,EAAM+C,WAAWC,QAAQ,KACd,UAApB/B,EAAW1N,MAAoB,CAChC0sB,QAAS,WACT,CAAC,KAAD/pB,OAAM2ukC,GAAiBC,kBAAoB,CACzC1ikC,MAAO,GAEP6d,QAAS,gBACT,QAAS,CACPA,QAAS,KAGW,aAAvBhf,EAAWgf,SAA0B,CACtC7d,MAAO,GAEP6d,QAAS,aACe,SAAvBhf,EAAWgf,SAAsB,CAClCA,QAAS,GACa,SAArBhf,EAAWk/E,OAAoB,CAChCj6D,UAAW,QACW,WAArBjlB,EAAWk/E,OAAsB,CAClCj6D,UAAW,UACW,UAArBjlB,EAAWk/E,OAAqB,CACjCj6D,UAAW,QACXtB,cAAe,eACO,YAArB3jB,EAAWk/E,OAAuB,CACnCj6D,UAAW,WACVjlB,EAAW+ikC,cAAgB,CAC5Bl0kC,SAAU,SACV61B,IAAK,EACLxqB,OAAQ,EACRknB,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQuC,WAAWtG,SAC1D,IAyHF,GAnH+BtI,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,kBAEF,MACF2pF,EAAQ,UAAS,UACjBthF,EACA8E,UAAW80iC,EACXx4hC,QAAS8kjC,EACT/viB,MAAOgwiB,EACPzxkC,KAAM0xkC,EAAQ,cACdC,EACAxqjC,QAASo/7B,GACPzp9B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCssX,EAAQp2X,EAAAA,WAAiBstkC,IACzBG,EAAYztkC,EAAAA,WAAiB0tkC,IAC7BU,EAAaX,GAAmC,SAAtBA,EAAU9pjC,QAC1C,IAAI/W,EAEFA,EADE80iC,IAGU0sB,EAAa,KAAO,MAElC,IAAInwiB,EAAQgwiB,EAGM,OAAdrhkC,EACFqxhB,OAAQ5oiB,GACE4oiB,GAASmwiB,IACnBnwiB,EAAQ,OAEV,MAAMt6gB,EAAUo/7B,GAAe0qH,GAAaA,EAAU9pjC,QAChDzZ,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC8vF,QACAx8E,YACAsc,QAAS8kjC,IAAgB53sB,GAASA,EAAMltW,QAAUktW,EAAMltW,QAAU,UAClE1sB,KAAM0xkC,IAAa93sB,GAASA,EAAM55X,KAAO45X,EAAM55X,KAAO,UACtD2xkC,gBACAlB,aAA0B,SAAZtpjC,GAAsByyW,GAASA,EAAM62sB,aACnDtpjC,YAEIrW,EA5HkBpD,KACxB,MAAM,QACJoD,EAAO,QACPqW,EAAO,MACPylE,EAAK,QACLlgE,EAAO,KACP1sB,EAAI,aACJywkC,GACE/ikC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwqB,EAASspjC,GAAgB,eAA0B,YAAV7j/B,GAAuB,QAAJjqF,QAAYiL,EAAAA,GAAUA,GAACg/E,IAAsB,WAAZlgE,GAAwB,UAAJ/pB,QAAciL,EAAAA,GAAUA,GAAC8e,IAAY,OAAF/pB,QAASiL,EAAAA,GAAUA,GAAC5N,MAEzL,OAAOgR,EAAAA,GAAcA,GAACD,EAAOogkC,GAA0BrgkC,EAAQ,EAgH/CG,CAAkBvD,GAClC,IAAImkkC,EAAW,KAIf,OAHIF,IACFE,EAA6B,QAAlBF,EAA0B,YAAc,eAEjCpgkC,EAAAA,GAAAA,KAAK6/jC,IAAezgkC,EAAAA,GAAAA,GAAS,CAC/CQ,GAAIf,EACJrM,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B,YAAaumkC,EACbpwiB,MAAOA,EACP/zhB,WAAYA,GACX+C,GACL,ICxJO,SAASqhkC,GAA8B3kkC,GAC5C,OAAOC,EAAAA,GAAAA,IAAqB,oBAAqBD,EACnD,EAC8BE,EAAAA,GAAsBA,GAAC,oBAAqB,CAAC,SAA3E,MCDMC,GAAY,CAAC,YAAa,aAkB1BykkC,IAAqBvkkC,EAAAA,GAAMA,IAAC,MAAO,CACvCvK,KAAM,oBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHpB6Q,CAIxB,CACDqB,MAAO,OACPi/9B,UAAW,SAkDb,GAhDoCtq+B,EAAAA,YAAiB,SAAwB2M,EAASpM,GACpF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,uBAEF,UACFqI,EAAS,UACT8E,EAAY,OACVtT,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,cAEIU,EA9BkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBm1kC,GAA+BhhkC,EAAQ,EAuBpDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKwgkC,IAAoBphkC,EAAAA,GAAAA,GAAS,CACpD5M,IAAKA,EACLoN,GAAIf,EACJ9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,GACX+C,GACL,IChDO,SAASuhkC,GAAyB7kkC,GACvC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,EACyBE,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,SAAjE,MCDMC,GAAY,CAAC,YAAa,aAmB1B2kkC,IAAgBzkkC,EAAAA,GAAMA,IAAC,QAAS,CACpCvK,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHzB6Q,CAInB,CACDuB,QAAS,uBAELkikC,GAAY,CAChB9pjC,QAAS,QAEL0pjC,GAAmB,QAqDzB,GApD+BrtkC,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,kBAEF,UACFqI,EAAS,UACT8E,EAAYygkC,IACV/zkC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,cAEIU,EAjCkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBq1kC,GAA0BlhkC,EAAQ,EA0B/CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK2/jC,GAAiBvtkC,SAAU,CAClDxI,MAAO81kC,GACPl0kC,UAAuBwU,EAAAA,GAAAA,KAAK0gkC,IAAethkC,EAAAA,GAAAA,GAAS,CAClDQ,GAAIf,EACJ9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,EACLuN,KAAMlB,IAAcygkC,GAAmB,KAAO,WAC9CnjkC,WAAYA,GACX+C,KAEP,ICxDO,SAASyhkC,GAAwB/kkC,GACtC,OAAOC,EAAAA,GAAAA,IAAqB,cAAeD,EAC7C,CACA,MACA,IADwBE,EAAAA,GAAsBA,GAAC,cAAe,CAAC,OAAQ,WAAY,QAAS,OAAQ,WCD9FC,GAAY,CAAC,YAAa,YAAa,QAAS,YAwBhD6kkC,IAAe3kkC,EAAAA,GAAMA,IAAC,KAAM,CAChCvK,KAAM,cACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAW3L,MAAQgB,EAAOhB,KAAM2L,EAAWup6B,QAAUl06B,EAAOk06B,OAAO,GAPvEzp6B,EASlBM,IAAA,IAAC,MACFrB,GACDqB,EAAA,MAAM,CACLH,MAAO,UACPoB,QAAS,YACT+xJ,cAAe,SAEf/yI,QAAS,EACT,CAAC,KAADprB,OAAMyvkC,GAAgB7/jC,MAAK,WAAW,CACpCuc,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOwC,OAExD,CAAC,KAAD5P,OAAMyvkC,GAAgB3/jC,WAAa,CACjCqc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,MAAM0O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,iBACxL,UAAW,CACToc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,YAAAx/8B,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,OAAO4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAOyC,gBAGtR,IACKq+jC,GAAmB,KAuEzB,GAlE8BrtkC,EAAAA,YAAiB,SAAkB2M,EAASpM,GACxE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,iBAEF,UACFqI,EAAS,UACT8E,EAAYygkC,GAAgB,MAC5Bt+jC,GAAQ,EAAK,SACbE,GAAW,GACT3V,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC2jkC,EAAYztkC,EAAAA,WAAiB0tkC,IAC7BxjkC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACAmC,QACAE,WACA1Q,KAAMkvkC,GAAmC,SAAtBA,EAAU9pjC,QAC7B8v5B,OAAQg6J,GAAmC,WAAtBA,EAAU9pjC,UAE3BrW,EAjEkBpD,KACxB,MAAM,QACJoD,EAAO,SACP2B,EAAQ,MACRF,EAAK,KACLxQ,EAAI,OACJk16B,GACEvp6B,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ8V,GAAY,WAAYF,GAAS,QAASxQ,GAAQ,OAAQk16B,GAAU,WAErF,OAAOjm6B,EAAAA,GAAcA,GAACD,EAAOmhkC,GAAyBphkC,EAAQ,EAsD9CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK4gkC,IAAcxhkC,EAAAA,GAAAA,GAAS,CAC9CQ,GAAIf,EACJrM,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BgG,KAAMlB,IAAcygkC,GAAmB,KAAO,MAC9CnjkC,WAAYA,GACX+C,GACL,mBCtFA,MAAMnD,GAAY,CAAC,cACjBwZ,GAAa,CAAC,YACdhC,GAAa,CAAC,OAAQ,OAAQ,uBAAwB,SAAU,qBAsB3D,SAASpF,GAAkB1E,GAChC,MAAgB,eAATA,GAAkC,UAATA,GAA6B,OAATA,GAA0B,OAATA,CACvE,CACO,MAAM4I,IAAqBzL,EAAAA,GAAWA,KACvCyM,GAAuBhb,GACtBA,EAGEA,EAAOyY,OAAO,GAAGvZ,cAAgBc,EAAO5N,MAAM,GAF5C4N,EAIX,SAASoa,GAAYzX,GAIlB,IAJmB,aACpB8O,EAAY,MACZ5O,EAAK,QACL0O,GACD5O,EACC,OA7Be5C,EA6BA8C,EA5BoB,IAA5BxR,OAAOgkB,KAAKtV,GAAKvR,OA4BAijB,EAAe5O,EAAM0O,IAAY1O,EA7B3D,IAAiB9C,CA8BjB,CACA,SAASgb,GAAyBxX,GAChC,OAAKA,EAGE,CAACrQ,EAAOiG,IAAWA,EAAOoK,GAFxB,IAGX,CACA,SAASkY,GAAgB0B,EAAejZ,GACtC,IAAI,WACAJ,GACEI,EACJhR,GAAQ4T,EAAAA,GAAAA,GAA8B5C,EAAMR,IAC9C,MAAM0Z,EAA6C,oBAAlBD,EAA+BA,GAAcpW,EAAAA,GAAAA,GAAS,CACrFjD,cACC5Q,IAAUiqB,EACb,GAAInlB,MAAMiI,QAAQmd,GAChB,OAAOA,EAAkBC,SAAQC,GAAiB7B,GAAgB6B,GAAevW,EAAAA,GAAAA,GAAS,CACxFjD,cACC5Q,MAEL,GAAMkqB,GAAkD,kBAAtBA,GAAkCplB,MAAMiI,QAAQmd,EAAkBja,UAAW,CAC7G,MAAM,SACFA,EAAW,IACTia,EAEN,IAAI5c,GADYsG,EAAAA,GAAAA,GAA8BsW,EAAmBF,IAwBjE,OAtBA/Z,EAASzT,SAAQ6tB,IACf,IAAIC,GAAU,EACe,oBAAlBD,EAAQrqB,MACjBsqB,EAAUD,EAAQrqB,OAAM6T,EAAAA,GAAAA,GAAS,CAC/BjD,cACC5Q,EAAO4Q,IAEVzS,OAAOgkB,KAAKkI,EAAQrqB,OAAOxD,SAAQL,KACd,MAAdyU,OAAqB,EAASA,EAAWzU,MAAUkuB,EAAQrqB,MAAM7D,IAAQ6D,EAAM7D,KAASkuB,EAAQrqB,MAAM7D,KACzGmuB,GAAU,EACZ,IAGAA,IACGxlB,MAAMiI,QAAQO,KACjBA,EAAS,CAACA,IAEZA,EAAOzR,KAA8B,oBAAlBwuB,EAAQ9C,MAAuB8C,EAAQ9C,OAAM1T,EAAAA,GAAAA,GAAS,CACvEjD,cACC5Q,EAAO4Q,IAAeyZ,EAAQ9C,OACnC,IAEKja,CACT,CACA,OAAO4c,CACT,CC5FA,MACA,GD4Fe,WAAkC,IAAZrD,EAAK5e,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5C,MAAM,QACJoW,EAAO,aACPE,EAAeuI,GAAkB,sBACjCtI,EAAwBoE,GAAiB,sBACzCzE,EAAwByE,IACtBiE,EACEE,EAAW/mB,IACR0c,EAAAA,GAAeA,IAAC7I,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACzC2P,MAAOuX,IAAarT,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACtCue,eACAF,gBAKN,OADA0I,EAASI,gBAAiB,EACnB,SAAChsB,GAA2B,IAAtBisB,EAAYnf,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,GAE3BstkC,EAAAA,GAAAA,wBAAcp6kC,GAAK8K,GAAUA,EAAOqhB,QAAOC,KAAoB,MAATA,GAAiBA,EAAMJ,oBAC7E,MACIhhB,KAAM6Y,EACN3O,KAAMmX,EACNC,qBAAsBC,EACtBC,OAAQC,EAAW,kBAGnBjX,EAAoBkX,GAAyBC,GAAqBN,KAChEJ,EACJrsB,GAAU6Y,EAAAA,GAAAA,GAA8BwT,EAAcY,IAGlDP,OAAqD1rB,IAA9B2rB,EAA0CA,EAGvEF,GAAmC,SAAlBA,GAA8C,SAAlBA,IAA4B,EACnEG,EAASC,IAAe,EAS9B,IAAIK,EAA0BrF,GAIR,SAAlB4E,GAA8C,SAAlBA,EAC9BS,EAA0BzJ,EACjBgJ,EAETS,EAA0B9J,EAjIhC,SAAqBhjB,GACnB,MAAsB,kBAARA,GAIdA,EAAI2D,WAAW,GAAK,EACtB,CA4He4P,CAAYvT,KAErB8sB,OAA0BlsB,GAE5B,MAAMmsB,GAAwBstjC,EAAAA,GAAAA,SAAmBr6kC,GAAK0Y,EAAAA,GAAAA,GAAS,CAC7D+O,kBAAmBqF,EACnB5E,MAvBEA,WAwBDtoB,IACGotB,EAAoBC,GAIC,oBAAdA,GAA4BA,EAAUlF,iBAAmBkF,IAAaE,EAAAA,GAAAA,GAAcF,GACtFpoB,GAASuoB,GAAgBH,GAAWvU,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAC7D2P,MAAOuX,GAAa,CAClBvX,MAAO3P,EAAM2P,MACb4O,eACAF,eAIC+J,EAEHI,EAAoB,SAACC,GACzB,IAAIC,EAAsBP,EAAkBM,GAAU,QAAAzgB,EAAAC,UAAA3M,OADhBqtB,EAAW,IAAA7jB,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAXwgB,EAAWxgB,EAAA,GAAAF,UAAAE,GAEjD,MAAMygB,EAA8BD,EAAcA,EAAYpkB,IAAI4jB,GAAqB,GACnFnJ,GAAiBrO,GACnBiY,EAA4B/sB,MAAKmE,IAC/B,MAAM2P,EAAQuX,IAAarT,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAC7Cue,eACAF,aAEF,IAAK1O,EAAMC,aAAeD,EAAMC,WAAWoP,KAAmBrP,EAAMC,WAAWoP,GAAehP,eAC5F,OAAO,KAET,MAAMA,EAAiBL,EAAMC,WAAWoP,GAAehP,eACjD6Y,EAAyB,CAAC,EAOhC,OALA1qB,OAAO2qB,QAAQ9Y,GAAgBxT,SAAQusB,IAA0B,IAAxBC,EAASC,GAAUF,EAC1DF,EAAuBG,GAAWT,GAAgBU,GAAWpV,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAC/E2P,UACC,IAEEgB,EAAkB3Q,EAAO6oB,EAAuB,IAGvD7J,IAAkByI,GACpBmB,EAA4B/sB,MAAKmE,IAC/B,IAAIkpB,EACJ,MAAMvZ,EAAQuX,IAAarT,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CAC7Cue,eACAF,aAGF,OAAOkK,GAAgB,CACrBtY,SAF6B,MAATN,GAA2D,OAAzCuZ,EAAoBvZ,EAAMC,aAAiF,OAAzDsZ,EAAoBA,EAAkBlK,SAA0B,EAASkK,EAAkBjZ,WAGlL4D,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrB2P,UACC,IAGFgY,GACHiB,EAA4B/sB,KAAKkrB,GAEnC,MAAMoC,EAAwBP,EAA4BttB,OAASqtB,EAAYrtB,OAC/E,GAAIwJ,MAAMiI,QAAQ0b,IAAaU,EAAwB,EAAG,CACxD,MAAMC,EAAe,IAAItkB,MAAMqkB,GAAuBjX,KAAK,IAE3DwW,EAAsB,IAAID,KAAaW,GACvCV,EAAoB/a,IAAM,IAAI8a,EAAS9a,OAAQyb,EACjD,CACA,MAAMzK,EAAYuJ,EAAsBQ,KAAwBE,GAchE,OAHIztB,EAAIuZ,UACNiK,EAAUjK,QAAUvZ,EAAIuZ,SAEnBiK,CACT,EAIA,OAHIuJ,EAAsBmB,aACxBb,EAAkBa,WAAanB,EAAsBmB,YAEhDb,CACT,CACF,CC9OepK,GCCT5N,GAAY,CAAC,YAAa,YAAa,iBAAkB,QAAS,WAAY,WAW9E+N,IAAelD,EAAAA,GAAWA,KAC1Bo6jC,GAA+BC,GAAa,MAAO,CACvDvvkC,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO,WAADJ,QAAYiL,EAAAA,GAAAA,GAAW9S,OAAO4S,EAAW6gB,aAAe7gB,EAAW8zD,OAASz+D,EAAOy+D,MAAO9zD,EAAW4q8B,gBAAkBv18B,EAAOu18B,eAAe,IAGtKm6H,GAAuBtikC,GAAWuikC,GAAoB,CAC1D51kC,MAAOqT,EACPlN,KAAM,eACNoY,aAAYA,KCpBd,MA2DA,GDtBe,WAAuC,IAAdxjB,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjD,MAAM,sBAEJ4tkC,EAAwBJ,GAA4B,cACpDn8C,EAAgBq8C,GAAoB,cACpC32jC,EAAgB,gBACdjkB,EACE+6kC,EAAgBD,GAAsB7kkC,IAAA,IAAC,MAC3CrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb9B,MAAO,OACP2hB,WAAY,OACZiC,UAAW,aACXnC,YAAa,OACbvhB,QAAS,UACPrB,EAAW4q8B,gBAAkB,CAC/B9o7B,YAAa/iB,EAAM0d,QAAQ,GAC3BmF,aAAc7iB,EAAM0d,QAAQ,GAE5B,CAAC1d,EAAMmM,YAAYG,GAAG,OAAQ,CAC5ByW,YAAa/iB,EAAM0d,QAAQ,GAC3BmF,aAAc7iB,EAAM0d,QAAQ,KAE9B,IAAE5d,IAAA,IAAC,MACHE,EAAK,WACLiB,GACDnB,EAAA,OAAKmB,EAAW8zD,OAASvmE,OAAOgkB,KAAKxS,EAAMmM,YAAY6J,QAAQvJ,QAAO,CAACC,EAAK05jC,KAC3E,MAAM7qjC,EAAa6qjC,EACb13kC,EAAQsR,EAAMmM,YAAY6J,OAAOuF,GAOvC,OANc,IAAV7sB,IAEFge,EAAI1M,EAAMmM,YAAYG,GAAGiP,IAAe,CACtCuG,SAAU,GAAF5rB,OAAKxH,GAAKwH,OAAG8J,EAAMmM,YAAY6Q,QAGpCtQ,CAAG,GACT,CAAC,EAAE,IAAE0M,IAAA,IAAC,MACPpZ,EAAK,WACLiB,GACDmY,EAAA,OAAKlV,EAAAA,GAAAA,GAAS,CAAC,EAA2B,OAAxBjD,EAAW6gB,UAAqB,CAEjD,CAAC9hB,EAAMmM,YAAYG,GAAG,OAAQ,CAE5BwV,SAAU3zB,KAAK6mB,IAAIhV,EAAMmM,YAAY6J,OAAO4E,GAAI,OAEjD3Z,EAAW6gB,UAEU,OAAxB7gB,EAAW6gB,UAAqB,CAE9B,CAAC9hB,EAAMmM,YAAYG,GAAGrL,EAAW6gB,WAAY,CAE3CA,SAAU,GAAF5rB,OAAK8J,EAAMmM,YAAY6J,OAAO/U,EAAW6gB,WAAS5rB,OAAG8J,EAAMmM,YAAY6Q,QAEjF,IA2CF,OA1C+BjmB,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,MAAMjH,EAAQs5hC,EAAcjmhC,IACtB,UACF7E,EAAS,UACT8E,EAAY,MAAK,eACjBko8B,GAAiB,EAAK,MACtB924B,GAAQ,EAAK,SACbjzC,EAAW,MACTzxB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,YACAko8B,iBACA924B,QACAjzC,aAIIzd,EAxFgBG,EAACvD,EAAYoO,KACrC,MAGM,QACJhL,EAAO,MACP0wD,EAAK,eACL824B,EAAc,SACd/p7B,GACE7gB,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ4xB,GAAY,WAAJ5rB,QAAeiL,EAAAA,GAAAA,GAAW9S,OAAOyzB,KAAcizC,GAAS,QAAS824B,GAAkB,mBAE5G,OAAOtn8B,EAAAA,GAAcA,GAACD,GAZW5D,IACxBC,EAAAA,GAAAA,IAAqB0O,EAAe3O,IAWU2D,EAAQ,EA2E7CG,CAAkBvD,EAAYoO,GAC9C,OAGEvK,EAAAA,GAAAA,KAAKqhkC,GAAejikC,EAAAA,GAAAA,GAAS,CAC3BQ,GAAIf,EAGJ1C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,GAEP,GAYF,CCvIkBqikC,CAAgB,CAChCH,uBAAuBnlkC,EAAAA,GAAMA,IAAC,MAAO,CACnCvK,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO,WAADJ,QAAYiL,EAAAA,GAAUA,GAAC9S,OAAO4S,EAAW6gB,aAAe7gB,EAAW8zD,OAASz+D,EAAOy+D,MAAO9zD,EAAW4q8B,gBAAkBv18B,EAAOu18B,eAAe,IAG5K89E,cAAejmhC,IAAW7D,EAAAA,GAAAA,GAAgB,CACxCxP,MAAOqT,EACPlN,KAAM,mBC0EV,GA/EgB8vkC,KACd,MAAM/8H,EAAkBE,MAClB,SAAEv96B,EAAQ,SAAE676B,GAAauB,KACzB7D,EAAUoE,GAAW9B,EAAS,IAAM,CAAC,IACrC,UAACoV,GAAaE,MAEbkpH,EAAiBC,GAAsBzvkC,EAAAA,UAAe,GAE7D,OAAKwy8B,GAKD9k8B,EAAAA,GAAAA,MAACgikC,GAAS,CAAC3kjC,SAAS,KAAIxxB,SAAA,EACtBwU,EAAAA,GAAAA,KAAA,MAAAxU,SAAI,kBACJwU,EAAAA,GAAAA,KAAC4hkC,GAAc,CAAC/ikC,UAAWyn8B,GAAM968B,UAC/BmU,EAAAA,GAAAA,MAACkikC,GAAK,CAAC,aAAW,eAAe35jC,GAAI,CAAE4W,UAAW,QAAStzB,SAAA,EACzDwU,EAAAA,GAAAA,KAAC8hkC,GAAS,CAAC55jC,GAAI,CAAE,OAAQ,CAAE9L,MAAO,QAASmhB,gBAAiB,UAAY/xB,UACtEmU,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,sBACXwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,gBAGfmU,EAAAA,GAAAA,MAACqikC,GAAS,CAAAx2kC,SAAA,EACRmU,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAACjhkC,UAAU,KAAKqxhB,MAAM,MAAK1kiB,SAAC,UACtCwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAS,OAAPm18B,QAAO,IAAPA,OAAO,EAAPA,EAASjv8B,SAFR,SAIfiO,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAACjhkC,UAAU,KAAKqxhB,MAAM,MAAK1kiB,SAAC,cACtCwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAS,OAAPm18B,QAAO,IAAPA,OAAO,EAAPA,EAAST,aAFR,aAIfvg8B,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAACjhkC,UAAU,KAAKqxhB,MAAM,MAAK1kiB,SAAC,eACtCwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAW,OAAT6s9B,QAAS,IAATA,OAAS,EAATA,EAAWt48B,SAFV,SAIfJ,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAACjhkC,UAAU,KAAKqxhB,MAAM,MAAK1kiB,SAAC,iBACtCwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAS,OAAPm18B,QAAO,IAAPA,OAAO,EAAPA,EAASf,gBAFR,wBAQrB5/7B,EAAAA,GAAAA,KAAA,UAEAA,EAAAA,GAAAA,KAAC6w8B,GAAM,CAAC36pB,QAASA,KAAQwrxB,GAAoBD,EAAgB,EAAIj2kC,SAC9Di2kC,EAAkB,oBAAsB,sBAG1CA,IACC9hkC,EAAAA,GAAAA,MAAAwy9B,GAAAA,SAAA,CAAA3m+B,SAAA,EACEwU,EAAAA,GAAAA,KAAA,MAAAxU,SAAI,kBAEJwU,EAAAA,GAAAA,KAAC4hkC,GAAc,CAAC/ikC,UAAWyn8B,GAAM968B,UAC/BmU,EAAAA,GAAAA,MAACkikC,GAAK,CAAC,aAAW,eAAe35jC,GAAI,CAAE4W,UAAW,QAAStzB,SAAA,EACzDwU,EAAAA,GAAAA,KAAC8hkC,GAAS,CAAC55jC,GAAI,CAAE,OAAQ,CAAE9L,MAAO,QAASmhB,gBAAiB,UAAY/xB,UACtEmU,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,sBACXwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,gBAGfwU,EAAAA,GAAAA,KAACgikC,GAAS,CAAAx2kC,SACP9B,OAAOgkB,KAAKiz7B,EAAQN,eAAevw8B,KAAKpI,IACvCiY,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAACjhkC,UAAU,KAAKqxhB,MAAM,MAAK1kiB,SAAE9D,KACvCsY,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAGm18B,EAAQN,cAAc348B,OAFtBA,mBAvDxBsY,EAAAA,GAAAA,KAAC++jC,GAAiB,GAmE3B,ECvBF,GAxDmBkD,KACf,MAAMx9H,EAAkBE,MACjBu9H,EAAYC,IAAiBzvK,EAAAA,EAAAA,UAAoC,MAcxE,OAZAN,EAAAA,EAAAA,YAAU,KAQFqyC,GALuBhljB,WACvB0irB,QAAoB5qH,GAAeM,gBAAgB,EAIhCuqH,EAAsB,GAE9C,CAAC39H,IAECA,GAKG9k8B,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CAAEsV,GAAG,GAAIhyB,SAAA,EACdwU,EAAAA,GAAAA,KAACoy9B,GAAU,CAACx88B,QAAQ,KAAK/W,UAAU,KAAIrT,SAAE,gBACzCwU,EAAAA,GAAAA,KAAC4hkC,GAAc,CAAC/ikC,UAAWyn8B,GAAM968B,UAC7BmU,EAAAA,GAAAA,MAACkikC,GAAK,CAAC35jC,GAAI,CAAE4W,UAAW,QAAStzB,SAAA,EAC7BwU,EAAAA,GAAAA,KAAC8hkC,GAAS,CAAC55jC,GAAI,CAAE,OAAQ,CAAE9L,MAAO,QAASmhB,gBAAiB,UAAY/xB,UACpEmU,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACLwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,UACXwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,QACXwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,eACXwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,aACXwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAC,iBAGnBwU,EAAAA,GAAAA,KAACgikC,GAAS,CAAAx2kC,SACL02kC,GAAcA,EAAWpykC,KAAKuykC,IAC3B1ikC,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACLwU,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAE62kC,EAAU3wkC,QACtBsO,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAE62kC,EAAUz6iC,MACtB5nB,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAEjC,OAAO84kC,EAAUC,eAC7BtikC,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,SAAEjC,OAAO84kC,EAAUE,0BAC7BvikC,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,UACNwU,EAAAA,GAAAA,KAAC6w8B,GAAM,CAACj77B,QAAQ,YAAYlJ,OAAO,SAC3Bq+I,KAAM,kCAAoCs36B,EAAUz6iC,GAAGp8B,SAAC,aAPzD62kC,EAAUz6iC,iBAnB1C5nB,EAAAA,GAAAA,KAAC++jC,GAAiB,GAoC7B,EChDJ,GAZqByD,KACjB,MAAMx6I,EAAWR,KAEjB,OACI7n7B,EAAAA,GAAAA,MAACi58B,GAAG,CAAApt9B,SAAA,EACAwU,EAAAA,GAAAA,KAACoy9B,GAAU,CAACx88B,QAAQ,KAAK/W,UAAU,KAAKqJ,GAAI,CAAE2W,GAAI,GAAIrzB,SAAE,sCACxDmU,EAAAA,GAAAA,MAACk+jC,GAAK,CAACH,SAAS,QAAOlykC,SAAA,CAAE,oCAAgCwU,EAAAA,GAAAA,KAAA,UAAAxU,SAAStD,SAAS+1R,UAC3Ej+Q,EAAAA,GAAAA,KAAC6w8B,GAAM,CAAC36pB,QAASA,KAAQ8xoB,EAAS,IAAI,EAAK9/6B,GAAI,CAAEsW,GAAI,GAAIhzB,SAAE,sBACzD,ECXP,SAASi3kC,GAAiC7mkC,GAC/C,OAAOC,EAAAA,GAAAA,IAAqB,uBAAwBD,EACtD,CACA,MACA,IADiCE,EAAAA,GAAsBA,GAAC,uBAAwB,CAAC,OAAQ,WAAY,aAAc,WAAY,WAAY,UAAW,oBAAqB,kBAAmB,YAAa,cAAe,aAAc,iBCGxO,SAJ8C7J,EAAAA,cAAoB,CAAC,GCInE,SAJoDA,EAAAA,mBAAoB3K,GCFjE,SAASo7kC,GAA4B9mkC,GAC1C,OAAOC,EAAAA,GAAAA,IAAqB,kBAAmBD,EACjD,CACA,MACA,IAD4BE,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,OAAQ,WAAY,WAAY,WAAY,UAAW,YAAa,YAAa,aAAc,YAAa,cCD7KC,GAAY,CAAC,WAAY,YAAa,QAAS,WAAY,YAAa,YAAa,WAAY,cAAe,OAAQ,SA+BxH4mkC,IAAwB1mkC,EAAAA,GAAMA,IAAC,MAAO,CAC1CvK,KAAM,uBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAAC,CACN,CAAC,MAAD6F,OAAOwxkC,GAAyB7v3B,UAAYvhN,EAAOuhN,SAClD,CACD,CAAC,MAAD3hN,OAAOwxkC,GAAyB7v3B,UAAYvhN,EAAO,UAADJ,QAAWiL,EAAAA,GAAUA,GAACF,EAAW48J,gBAClF,CACD,CAAC,MAAD3nK,OAAOwxkC,GAAyBC,cAAgBrxkC,EAAOqxkC,aACtD,CACD,CAAC,MAADzxkC,OAAOwxkC,GAAyBE,aAAetxkC,EAAOsxkC,YACrD,CACD,CAAC,MAAD1xkC,OAAOwxkC,GAAyBG,eAAiBvxkC,EAAOuxkC,cACvDvxkC,EAAOpG,KAAiC,aAA3B+Q,EAAW48J,aAA8BvnK,EAAO+5K,SAAUpvK,EAAWwgM,WAAanrM,EAAOmrM,UAAU,GAjBzF1gM,EAmB3BM,IAAA,IAAC,WACFJ,EAAU,MACVjB,GACDqB,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,cACTmb,cAAezd,EAAMmD,MAAQnD,GAAO4d,MAAMH,cACd,aAA3Bxc,EAAW48J,aAA8B,CAC1Cj5I,cAAe,UACd3jB,EAAWwgM,WAAa,CACzBr/L,MAAO,QACN,CACD,CAAC,MAADlM,OAAOwxkC,GAAyB7v3B,WAAY3zM,EAAAA,GAAAA,GAAS,CAAC,EAA8B,eAA3BjD,EAAW48J,YAA+B,CACjG,CAAC,KAAD3nK,OAAMwxkC,GAAyB1hkC,SAAQ,QAAA9P,OAAOwxkC,GAAyB7v3B,QAAO,KAAA3hN,OAAIwxkC,GAAyB1hkC,WAAa,CACtHgb,WAAY,EACZ+C,WAAY,IAEZ,CACF,CAAC,KAAD7tB,OAAMwxkC,GAAyB1hkC,SAAQ,QAAA9P,OAAOwxkC,GAAyB7v3B,QAAO,KAAA3hN,OAAIwxkC,GAAyB1hkC,WAAa,CACtH6a,UAAW,EACX+C,UAAW,MAGa,eAA3B3iB,EAAW48J,YAA+B,CAC3C,CAAC,MAAD3nK,OAAOwxkC,GAAyBC,YAAW,QAAAzxkC,OAAOwxkC,GAAyBG,eAAiB,CAC1F93F,qBAAsB,EACtBC,wBAAyB,GAE3B,CAAC,MAAD95+B,OAAOwxkC,GAAyBE,WAAU,QAAA1xkC,OAAOwxkC,GAAyBG,eAAiB,CACzF9jjC,YAAa,EACb/C,WAAY,wBACZ8u9B,oBAAqB,EACrBG,uBAAwB,IAExB,CACF,CAAC,MAAD/5+B,OAAOwxkC,GAAyBC,YAAW,QAAAzxkC,OAAOwxkC,GAAyBG,eAAiB,CAC1F53F,uBAAwB,EACxBD,wBAAyB,GAE3B,CAAC,MAAD95+B,OAAOwxkC,GAAyBE,WAAU,QAAA1xkC,OAAOwxkC,GAAyBG,eAAiB,CACzFjkjC,WAAY,EACZ/C,UAAW,wBACXiv9B,oBAAqB,EACrBC,qBAAsB,IAEI,eAA3B9u+B,EAAW48J,YAA+B,CAC3C,CAAC,MAAD3nK,OAAOwxkC,GAAyBE,WAAU,KAAA1xkC,OAAI4xkC,GAAoBtkkC,SAAQ,QAAAtN,OAAOwxkC,GAAyBG,aAAY,KAAA3xkC,OAAI4xkC,GAAoBtkkC,WAAa,CACzJwd,WAAY,0BAEZ,CACF,CAAC,MAAD9qB,OAAOwxkC,GAAyBE,WAAU,KAAA1xkC,OAAI4xkC,GAAoBtkkC,SAAQ,QAAAtN,OAAOwxkC,GAAyBG,aAAY,KAAA3xkC,OAAI4xkC,GAAoBtkkC,WAAa,CACzJqd,UAAW,0BAEb,IAmKF,GAlKuC9pB,EAAAA,YAAiB,SAA2B2M,EAASpM,GAC1F,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,0BAEF,SACFlG,EAAQ,UACRuO,EAAS,MACTqC,EAAQ,WAAU,SAClBsC,GAAW,EAAK,UAChBukkC,GAAY,EAAK,UACjBtm4B,GAAY,EAAK,SACjBo/yB,EAAQ,YACRhj1B,EAAc,aAAY,KAC1BtqK,EAAO,SAAQ,MACf7E,GACE2B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCmT,WACAi+L,YACA5jC,cACAtqK,SAEI8Q,EAhHkBpD,KACxB,MAAM,QACJoD,EAAO,YACPw5J,EAAW,UACX4jC,EAAS,SACTj+L,GACEvC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAwB,aAAhB2tK,GAA8B,WAAY4jC,GAAa,aACtEoW,QAAS,CAAC,UAAW,UAAF3hN,QAAYiL,EAAAA,GAAUA,GAAC08J,IAAgBr6J,GAAY,YACtEmkkC,YAAa,CAAC,eACdC,WAAY,CAAC,cACbC,aAAc,CAAC,iBAEjB,OAAOtjkC,EAAAA,GAAcA,GAACD,EAAOijkC,GAAkCljkC,EAAQ,EAkGvDG,CAAkBvD,GAC5BgyiC,EAAel8iC,EAAAA,aAAkB,CAACia,EAAOg3jC,KAC7C,IAAKnnF,EACH,OAEF,MAAM3x/B,EAAQR,GAASA,EAAMM,QAAQg5kC,GACrC,IAAIl8iC,EACAp9B,GAASQ,GAAS,GACpB48B,EAAWp9B,EAAMa,QACjBu8B,EAASk/B,OAAO97D,EAAO,IAEvB48B,EAAWp9B,EAAQA,EAAMwH,OAAO8xkC,GAAe,CAACA,GAElDnnF,EAAS7v+B,EAAO8a,EAAS,GACxB,CAAC+09B,EAAUny/B,IACRu5kC,EAAwBlxkC,EAAAA,aAAkB,CAACia,EAAOg3jC,KACjDnnF,GAGLA,EAAS7v+B,EAAOtiB,IAAUs5kC,EAAc,KAAOA,EAAY,GAC1D,CAACnnF,EAAUny/B,IACR4rC,EAAUvjC,EAAAA,SAAc,KAAM,CAClC8H,UAAWwF,EAAQwzM,QACnBgpyB,SAAUknF,EAAYE,EAAwBh1B,EAC9CvkjC,QACA6E,OACAkuM,YACAvgM,QACAsC,cACE,CAACa,EAAQwzM,QAASkw3B,EAAWE,EAAuBh1B,EAAcvkjC,EAAO6E,EAAMkuM,EAAWvgM,EAAOsC,IAC/F0kkC,ECzJO,SAA+B53kC,GAC5C,OAAOyG,EAAAA,SAAe+tb,QAAQx0b,GAAUqnB,QAAOqhD,GAAsBjiE,EAAAA,eAAqBiiE,IAC5F,CDuJwBmvgC,CAAsB73kC,GACtC83kC,EAAgBF,EAAcv8kC,OAC9B08kC,EAA6Bn5kC,IACjC,MAAMo5kC,EAA0B,IAAVp5kC,EAChBq5kC,EAAer5kC,IAAUk5kC,EAAgB,EAC/C,OAAIE,GAAiBC,EACZ,GAELD,EACKjkkC,EAAQsjkC,YAEbY,EACKlkkC,EAAQujkC,WAEVvjkC,EAAQwjkC,YAAY,EAE7B,OAAoB/ikC,EAAAA,GAAAA,KAAK2ikC,IAAuBvjkC,EAAAA,GAAAA,GAAS,CACvDW,KAAM,QACNhG,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,EACL2J,WAAYA,GACX+C,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAK0jkC,GAAyBtxkC,SAAU,CAC7DxI,MAAO4rC,EACPhqC,SAAU43kC,EAActzkC,KAAI,CAACokE,EAAO9pE,KAMd4V,EAAAA,GAAAA,KAAK2jkC,GAA+BvxkC,SAAU,CAChExI,MAAO25kC,EAA2Bn5kC,GAClCoB,SAAU0oE,GACT9pE,SAIX,IEpMe,SAASw5kC,GAAgBh6kC,EAAOi6kC,GAC7C,YAAkBv8kC,IAAdu8kC,QAAqCv8kC,IAAVsC,IAG3ByG,MAAMiI,QAAQurkC,GACTA,EAAU35kC,QAAQN,IAAU,EAE9BA,IAAUi6kC,EACnB,CCLA,MAAM9nkC,GAAY,CAAC,SACjBwZ,GAAa,CAAC,WAAY,YAAa,QAAS,WAAY,qBAAsB,YAAa,WAAY,UAAW,WAAY,OAAQ,SA8BtIuujC,IAAmB7nkC,EAAAA,GAAMA,IAACm08B,GAAY,CAC1C1+8B,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAW1N,QAAS,GAP7CwN,EAStBM,IAGG,IAEAwnkC,GALF,MACF7okC,EAAK,WACLiB,GACDI,EACKynkC,EAAqC,aAArB7nkC,EAAWC,MAAuBlB,EAAMoD,QAAQmC,KAAKC,QAAUxF,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAMnH,OAJIrD,EAAMmD,OACR2lkC,EAAqC,aAArB7nkC,EAAWC,MAAuBlB,EAAMmD,KAAKC,QAAQmC,KAAKC,QAAUxF,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOmC,KACzHwlkC,EAA4C,aAArB5nkC,EAAWC,MAAuBlB,EAAMmD,KAAKC,QAAQmC,KAAKkw8B,eAAiBz18B,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,cAElIxx8B,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW8H,OAAQ,CAC3C4S,cAAezd,EAAMmD,MAAQnD,GAAO4d,MAAMH,aAC1CwC,QAAS,GACTW,OAAQ,aAAF1qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,SACnDxE,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOC,QAC3CtC,EAAWwgM,WAAa,CACzBr/L,MAAO,QACN,CACD,CAAC,KAADlM,OAAM4xkC,GAAoBtkkC,WAAa,CACrCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOE,SAC5Cod,OAAQ,aAAF1qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO4C,qBAE5D,UAAW,CACTsr8B,eAAgB,OAEhBnv7B,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQmC,KAAKkw8B,eAAc,OAAAv/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,KAAM4O,GAAM3U,EAAMoD,QAAQmC,KAAKC,QAASxF,EAAMoD,QAAQE,OAAOyC,cACrL,uBAAwB,CACtBsc,gBAAiB,gBAGrB,CAAC,KAADnsB,OAAM4xkC,GAAoB9hkC,WAAa,CACrC9E,MAAO4nkC,EACPzmjC,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW2ykC,EAAoB,OAAA3ykC,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,KAAM0O,GAAMm0jC,EAAe9okC,EAAMoD,QAAQE,OAAO2C,iBACzJ,UAAW,CACToc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW2ykC,EAAoB,YAAA3ykC,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAO4O,GAAMm0jC,EAAe9okC,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAOyC,cAElP,uBAAwB,CACtBsc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW2ykC,EAAoB,OAAA3ykC,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,KAAM0O,GAAMm0jC,EAAe9okC,EAAMoD,QAAQE,OAAO2C,qBAI1I,UAApBhF,EAAW1N,MAAoB,CAChC0sB,QAAS,EACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KACd,UAApB/B,EAAW1N,MAAoB,CAChC0sB,QAAS,GACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,KACnC,IAkJJ,GAhJkCjM,EAAAA,YAAiB,SAAsB2M,EAASpM,GAEhF,MAAMm/hC,EAAoB1/hC,EAAAA,WAAiByxkC,KAEvC95kC,MAAO068B,GACLqtF,EACJtgF,GAAely8B,EAAAA,GAAAA,GAA8BwyhC,EAAmB51hC,IAC5DkokC,EAAkDhykC,EAAAA,WAAiB0xkC,IACnElyH,GAAgBn28B,EAAAA,GAAYA,IAAC8D,EAAAA,GAAAA,GAAS,CAAC,EAAGiy8B,EAAc,CAC5Dnw8B,SAAU0ikC,GAAgBhlkC,EAAQhV,MAAO068B,KACvC1l8B,GACErT,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOkm9B,EACP//8B,KAAM,qBAEF,SACFlG,EAAQ,UACRuO,EAAS,MACTqC,EAAQ,WAAU,SAClBsC,GAAW,EAAK,mBAChBgz8B,GAAqB,EAAK,UAC1B/0wB,GAAY,EAAK,SACjBo/yB,EAAQ,QACR7lsB,EAAO,SACPh1S,EAAQ,KACRzS,EAAO,SAAQ,MACf7E,GACE2B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOgqB,IACzCpZ,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACAsC,WACAgz8B,qBACA/0wB,YACAluM,SAEI8Q,EA5GkBpD,KACxB,MAAM,QACJoD,EAAO,UACPo9L,EAAS,SACTz7L,EAAQ,SACRxC,EAAQ,KACRjQ,EAAI,MACJ2N,GACED,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ8V,GAAY,WAAYxC,GAAY,WAAYi+L,GAAa,YAAa,OAAFvrM,QAASiL,EAAAA,GAAUA,GAAC5N,IAAS2N,IAEtH,OAAOqD,EAAAA,GAAcA,GAACD,EAAOkjkC,GAA6BnjkC,EAAQ,EAgGlDG,CAAkBvD,GAY5B018B,EAAoBoyH,GAAmD,GAC7E,OAAoBjkkC,EAAAA,GAAAA,KAAK8jkC,IAAkB1kkC,EAAAA,GAAAA,GAAS,CAClDrF,WAAW8F,EAAAA,GAAIA,GAACwx8B,EAAat38B,UAAWwF,EAAQnU,KAAM2O,EAAW838B,GACjEnz8B,SAAUA,EACVuu8B,aAAcyE,EACdl/8B,IAAKA,EACL0jT,QAjBmBhqS,IACfgqS,IACFA,EAAQhqS,EAAOtiB,GACXsiB,EAAMk5S,mBAIR22rB,GACFA,EAAS7v+B,EAAOtiB,EAClB,EASAmy/B,SAAUA,EACVny/B,MAAOA,EACPuS,WAAYA,EACZ,eAAgB+E,GACfhC,EAAO,CACR1T,SAAUA,IAEd,IC1JO,SAAS04kC,GAA4BtokC,GAC1C,OAAOC,EAAAA,GAAAA,IAAqB,kBAAmBD,EACjD,CACA,MACA,IAD4BE,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,OAAQ,wBCHxE,SAASqokC,GAA4BvokC,GAC1C,OAAOC,EAAAA,GAAAA,IAAqB,kBAAmBD,EACjD,CACA,MACA,IAD4BE,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,OAAQ,YAAa,QAAS,QAAS,UAAW,cCHlH,SAASsokC,GAAwBxokC,GACtC,OAAOC,EAAAA,GAAAA,IAAqB,cAAeD,EAC7C,CACA,MACA,IADwBE,EAAAA,GAAsBA,GAAC,cAAe,CAAC,OAAQ,eAAgB,QAAS,WAAY,UAAW,UAAW,aCD5HC,GAAY,CAAC,YAAa,YAAa,QAAS,UAAW,iBAAkB,wBAAyB,OAAQ,WAAY,aAsC1HsokC,IAAepokC,EAAAA,GAAMA,IAACm08B,GAAY,CACtCji8B,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,cACNkK,KAAM,OACNM,kBAzB+BA,CAAC3Q,EAAOiG,KACvC,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAWs7gC,OAASjmhC,EAAOimhC,MAAOt7gC,EAAWyE,SAAWpP,EAAOoP,SAAUzE,EAAW4q8B,gBAAkBv18B,EAAOw18B,QAAQ,GAiBvH/q8B,EAKlBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW4H,MAAO,CACzCrI,QAAS,OACTwiB,eAAgB,aAChBC,WAAY,SACZj1B,SAAU,WACV0h9B,eAAgB,OAChBnl8B,UAAW,GACXuW,WAAY,EACZE,cAAe,EACfkD,UAAW,aACXtB,WAAY,WACVzjB,EAAW4q8B,gBAAkB,CAC/B9o7B,YAAa,GACbF,aAAc,IACb5hB,EAAWyE,SAAW,CACvBqb,aAAc,aAAF7qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,SACzD6yiC,eAAgB,eACf,CACD,UAAW,CACT/mG,eAAgB,OAChBnv7B,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOwC,MAEtD,uBAAwB,CACtBuc,gBAAiB,gBAGrB,CAAC,KAADnsB,OAAMkzkC,GAAgBpjkC,WAAa,CACjCqc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,MAAM0O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,iBACxL,CAAC,KAAD/P,OAAMkzkC,GAAgBv/iC,eAAiB,CACrCxH,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,YAAAx/8B,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,OAAOsO,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAO+C,gBAGrR,CAAC,KAADnQ,OAAMkzkC,GAAgBpjkC,SAAQ,WAAW,CACvCqc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,YAAAx/8B,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,OAAO4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAOyC,cAEjR,uBAAwB,CACtBsc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,MAAM0O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,mBAG5L,CAAC,KAAD/P,OAAMkzkC,GAAgBv/iC,eAAiB,CACrCxH,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO8C,OAExD,CAAC,KAADlQ,OAAMkzkC,GAAgB5lkC,WAAa,CACjC3I,SAAUmF,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO6C,iBAEhD,CAAC,QAADjQ,OAASmzkC,GAAen5kC,OAAS,CAC/B0zB,UAAW5jB,EAAM0d,QAAQ,GACzBoG,aAAc9jB,EAAM0d,QAAQ,IAE9B,CAAC,QAADxnB,OAASmzkC,GAAeC,QAAU,CAChCvljC,WAAY,IAEd,CAAC,MAAD7tB,OAAOqzkC,GAAoBr5kC,OAAS,CAClC0zB,UAAW,EACXE,aAAc,GAEhB,CAAC,MAAD5tB,OAAOqzkC,GAAoBD,QAAU,CACnCvmjC,YAAa,IAEf,CAAC,MAAD7sB,OAAOszkC,GAAoBt5kC,OAAS,CAClCgyB,SAAU,MAEVjhB,EAAWs7gC,OAAS,CACtB,CAACv8gC,EAAMmM,YAAYG,GAAG,OAAQ,CAC5BD,UAAW,SAEZpL,EAAWs7gC,QAASr4gC,EAAAA,GAAAA,GAAS,CAC9BmI,UAAW,GAEXuW,WAAY,EACZE,cAAe,GACd9iB,EAAM+C,WAAW6H,MAAO,CACzB,CAAC,MAAD1U,OAAOszkC,GAAoBt5kC,KAAI,SAAS,CACtCkR,SAAU,aAEX,IAsIH,GArI8BrK,EAAAA,YAAiB,SAAkB2M,EAASpM,GACxE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,iBAEF,UACF6k6B,GAAY,EAAK,UACjB135B,EAAY,KAAI,MAChB44gC,GAAQ,EAAK,QACb72gC,GAAU,EAAK,eACfmm8B,GAAiB,EAAK,sBACtB+I,EAAqB,KACrB/v8B,EAAO,WACP+t8B,SAAUgxE,EAAY,UACtB/khC,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCy5B,EAAUvjC,EAAAA,WAAiB2lhC,IAC3BZ,EAAe/khC,EAAAA,SAAc,KAAM,CACvCwlhC,MAAOA,GAASji/B,EAAQii/B,QAAS,EACjC1wE,oBACE,CAACvx6B,EAAQii/B,MAAOA,EAAO1wE,IACrB49H,EAAc1ykC,EAAAA,OAAa,OACjCg1B,EAAAA,GAAAA,IAAkB,KACZsv4B,GACEouK,EAAYzxkC,SACdyxkC,EAAYzxkC,QAAQoO,OAIxB,GACC,CAACi15B,IACJ,MAAMp65B,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCkshC,MAAOT,EAAaS,MACpB72gC,UACAmm8B,mBAEIxn8B,EAxIkBpD,KACxB,MAAM,SACJuC,EAAQ,MACR+4gC,EAAK,QACL72gC,EAAO,eACPmm8B,EAAc,SACd7l8B,EAAQ,QACR3B,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQqshC,GAAS,QAAS/4gC,GAAY,YAAaqo8B,GAAkB,UAAWnm8B,GAAW,UAAWM,GAAY,aAErH6u8B,GAAkBtw8B,EAAAA,GAAcA,GAACD,EAAO4kkC,GAAyB7kkC,GACvE,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EA2H7Brw8B,CAAkBnU,GAC5Bsk9B,GAAY3o7B,EAAAA,GAAUA,GAACy9iC,EAAanykC,GAC1C,IAAIs78B,EAIJ,OAHKvi9B,EAAMmT,WACTov8B,OAA4Bxm9B,IAAjBw3hC,EAA6BA,GAAgB,IAEtC9+gC,EAAAA,GAAAA,KAAK43gC,GAAYxlhC,SAAU,CAC7CxI,MAAOothC,EACPxrhC,UAAuBwU,EAAAA,GAAAA,KAAKqkkC,IAAcjlkC,EAAAA,GAAAA,GAAS,CACjD5M,IAAKq98B,EACL9v8B,KAAMA,EACN+t8B,SAAUA,EACVjv8B,UAAWA,EACXix8B,uBAAuBjw8B,EAAAA,GAAIA,GAACN,EAAQwlB,aAAc+q7B,GAClD/18B,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,EAAO,CACR/C,WAAYA,EACZoD,QAASA,MAGf,ICvLA,IAAIxW,GAAE,CAACo6C,KAAK,IAAIpuB,GAAEA,GAAG,iBAAiBqR,SAASrR,EAAEA,EAAE9hB,cAAc,YAAYmzB,OAAOw+iC,UAAUl7kC,OAAOD,QAAQsrB,GAAG7sB,SAASsI,MAAMnI,YAAYH,SAASC,cAAc,UAAU,CAACg8C,UAAU,IAAIvc,GAAG,aAAa1gC,WAAW6tB,GAAGhsB,GAAgD6oB,GAAE,oEAAoEC,GAAE,qBAAqBlB,GAAE,OAAO4X,GAAEA,CAACx/B,EAAEgsB,KAAK,IAAIF,EAAE,GAAGjD,EAAE,GAAGC,EAAE,GAAG,IAAI,IAAIlB,KAAK5nB,EAAE,CAAC,IAAIy/B,EAAEz/B,EAAE4nB,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAGkE,EAAElE,EAAE,IAAI6X,EAAE,IAAI5W,GAAG,KAAKjB,EAAE,GAAG4X,GAAEC,EAAE7X,GAAGA,EAAE,IAAI4X,GAAEC,EAAE,KAAK7X,EAAE,GAAG,GAAGoE,GAAG,IAAI,iBAAiByT,EAAE5W,GAAG2W,GAAEC,EAAEzT,EAAEA,EAAElrB,QAAQ,YAAWd,GAAG4nB,EAAE9mB,QAAQ,iCAAgCkrB,GAAG,IAAIlH,KAAKkH,GAAGA,EAAElrB,QAAQ,KAAKd,GAAGA,EAAEA,EAAE,IAAIgsB,EAAEA,MAAIpE,GAAG,MAAM6X,IAAI7X,EAAE,MAAM9C,KAAK8C,GAAGA,EAAEA,EAAE9mB,QAAQ,SAAS,OAAO0N,cAAcsa,GAAG0W,GAAEhP,EAAEgP,GAAEhP,EAAE5I,EAAE6X,GAAG7X,EAAE,IAAI6X,EAAE,IAAI,CAAC,OAAO3T,GAAGE,GAAGlD,EAAEkD,EAAE,IAAIlD,EAAE,IAAIA,GAAGD,CAAC,EAAE4W,GAAE,CAAC,EAAE7W,GAAE5oB,IAAI,GAAG,iBAAiBA,EAAE,CAAC,IAAIgsB,EAAE,GAAG,IAAI,IAAIF,KAAK9rB,EAAEgsB,GAAGF,EAAElD,GAAE5oB,EAAE8rB,IAAI,OAAOE,CAAC,CAAC,OAAOhsB,CAAC,EAA8uB,SAASqsB,GAAErsB,GAAG,IAAI8rB,EAAEruB,MAAM,CAAC,EAAEorB,EAAE7oB,EAAEuH,KAAKvH,EAAE8rB,EAAE0E,GAAGxwB,EAAE,MAAzxBN,EAACM,EAAEgsB,EAAEF,EAAEpsB,EAAE8wB,KAAK,IAAInE,EAAEzD,GAAE5oB,GAAG0R,EAAE+tB,GAAEpT,KAAKoT,GAAEpT,GAAG,CAACrsB,IAAI,IAAIgsB,EAAE,EAAEF,EAAE,GAAG,KAAKE,EAAEhsB,EAAElC,QAAQguB,EAAE,IAAIA,EAAE9rB,EAAEsB,WAAW0qB,OAAO,EAAE,MAAM,KAAKF,CAAE,EAA9E,CAAgFO,IAAI,IAAIoT,GAAE/tB,GAAG,CAAC,IAAIsa,EAAEK,IAAIrsB,EAAEA,EAAE,CAACA,IAAI,IAAIgsB,EAAEF,EAAE0T,EAAE,CAAC,CAAC,GAAG,KAAKxT,EAAEnD,GAAE5hB,KAAKjH,EAAEc,QAAQgoB,GAAE,MAAMkD,EAAE,GAAGwT,EAAEpX,QAAQ4D,EAAE,IAAIF,EAAEE,EAAE,GAAGlrB,QAAQ8mB,GAAE,KAAKhnB,OAAO4+B,EAAE65B,QAAQ75B,EAAE,GAAG1T,GAAG0T,EAAE,GAAG1T,IAAI,CAAC,IAAI0T,EAAE,GAAGxT,EAAE,IAAIA,EAAE,GAAGlrB,QAAQ8mB,GAAE,KAAKhnB,OAAO,OAAO4+B,EAAE,EAAG,EAAxL,CAA0Lx/B,GAAGy/B,GAAE/tB,GAAG8tB,GAAEhP,EAAE,CAAC,CAAC,cAAc9e,GAAGsa,GAAGA,EAAEF,EAAE,GAAG,IAAIpa,EAAE,CAAC,IAAIqX,EAAE+C,GAAG2T,GAAEgB,EAAEhB,GAAEgB,EAAE,KAAK,OAAO3U,IAAI2T,GAAEgB,EAAEhB,GAAE/tB,IAAI,EAAE1R,EAAEgsB,EAAEF,EAAEjD,KAAKA,EAAEmD,EAAEouB,KAAKpuB,EAAEouB,KAAKt5C,QAAQ+nB,EAAE7oB,IAAI,IAAIgsB,EAAEouB,KAAKj5C,QAAQnB,KAAKgsB,EAAEouB,KAAKtuB,EAAE9rB,EAAEgsB,EAAEouB,KAAKpuB,EAAEouB,KAAKp6C,EAAG,EAA/F,CAAiGy/B,GAAE/tB,GAAGsa,EAAEtsB,EAAEqpB,GAAGrX,CAAC,EAA0QhS,CAAEmpB,EAAEwwC,QAAQxwC,EAAE1Y,IAApRqgB,EAACxwB,EAAEgsB,EAAEF,IAAI9rB,EAAE4e,QAAO,CAAC5e,EAAE6oB,EAAEC,KAAK,IAAIlB,EAAEoE,EAAElD,GAAG,GAAGlB,GAAGA,EAAErgB,KAAK,CAAC,IAAIvH,EAAE4nB,EAAEkE,GAAGE,EAAEhsB,GAAGA,EAAEwC,OAAOxC,EAAEwC,MAAMwO,WAAW,MAAM8T,KAAK9kB,IAAIA,EAAE4nB,EAAEoE,EAAE,IAAIA,EAAEhsB,GAAG,iBAAiBA,EAAEA,EAAEwC,MAAM,GAAGg9B,GAAEx/B,EAAE,KAAI,IAAKA,EAAE,GAAGA,CAAC,CAAC,OAAOA,EAAE6oB,GAAG,MAAMjB,EAAE,GAAGA,EAAE,GAAE,IAA4E4I,CAAE3H,EAAE,GAAGnnB,MAAM6F,KAAKkD,UAAU,GAAGqhB,EAAE0E,GAAG3H,EAAEjK,QAAO,CAAC5e,EAAEgsB,IAAIrrB,OAAOD,OAAOV,EAAEgsB,GAAGA,EAAEzkB,KAAKykB,EAAEF,EAAE0E,GAAGxE,IAAG,CAAC,GAAGnD,EAAEmD,GAAEF,EAAEnI,QAAQmI,EAAE2U,EAAE3U,EAAE0T,EAAE1T,EAAElmB,EAAE,CAAaymB,GAAE7F,KAAK,CAACia,EAAE,IAAtB,IAAI/uB,GAAEqX,GAAE0X,GAAkBlwB,GAAE8b,GAAE7F,KAAK,CAAC5gB,EAAE,IAA0C,SAASD,GAAE3F,EAAEgsB,GAAG,IAAIF,EAAEruB,MAAM,CAAC,EAAE,OAAO,WAAW,IAAIorB,EAAEpe,UAAU,SAASqe,EAAElB,EAAE4X,GAAG,IAAIC,EAAE9+B,OAAOD,OAAO,CAAC,EAAEknB,GAAGgB,EAAE6W,EAAEzuB,WAAW8X,EAAE9X,UAAU8a,EAAE0E,EAAE7vB,OAAOD,OAAO,CAACyR,MAAM4W,IAAGA,MAAK0W,GAAG3T,EAAE0T,EAAE,UAAU1a,KAAK8D,GAAG6W,EAAEzuB,UAAUqb,GAAEvhB,MAAMghB,EAAEjD,IAAID,EAAE,IAAIA,EAAE,IAAIoD,IAAIyT,EAAEh2B,IAAI+1B,GAAG,IAAI9/B,EAAEM,EAAE,OAAOA,EAAE,KAAKN,EAAE+/B,EAAE5oB,IAAI7W,SAASy/B,EAAE5oB,IAAI4pB,IAAG/gC,EAAE,IAAI+gC,GAAEhB,GAAG/tB,GAAEhS,EAAE+/B,EAAE,CAAC,OAAOzT,EAAEA,EAAElD,GAAGA,CAAC,CAAC,qDC4B1pEmxE,GAAe6w1B,CAC1B9q7B,EACAgsB,IANAhsB,IAEyB,mBAAlBA,EAKK2wF,CAAW3wF,GAAiBA,EAAcgsB,GAAOhsB,EC/BlDy8D,GAAA,MACX,IAAIz8D,EAAQ,EACZ,MAAO,OACKA,GAAOgL,UAEpB,EALY,GAOA0lB,GAAA,MAEX,IAAI1wB,EAEJ,MAAO,KACL,QAA2B,IAAvBA,UAA2Cq9B,OAAW,IAAa,CACrE,IAAMrR,EAAaghH,WAAW,oCAC9BhtI,GAAsBgsB,GAAcA,EAAWpI,OAAA,CAEjD,OAAO5jB,CACT,CACD,EAXY,GC2CP0gC,GAAgB,IAAIgjW,IAIpBhkW,GAAoB1/B,IACxB,GAAI0gC,GAAcxU,IAAIlsB,GACpB,OAGF,IAAMgsB,EAAU+O,YAAW,KACzB2F,GAAc4vX,OAAOtwZ,GACrBqsB,GAAS,CACP9pB,KAAM,EACNu5kC,QAAS97kC,GAEb,GAbwC,KAexC0gC,GAAcj6B,IAAIzG,EAASgsB,EAC7B,EASa+T,GAAUg76B,CAAC/68B,EAAcgsB,KACpC,OAAQA,EAAOzpB,MACb,KAAK,EACH,OAAAyvY,GAAAA,GAAA,GACKhyY,GAAA,IACH+7kC,OAAQ,CAAC/vjC,EAAO0x5B,SAAU196B,EAAM+7kC,QAAQr6kC,MAAM,EA/ElC,MAkFhB,KAAK,EAEH,OAAIsqB,EAAO0x5B,MAAM7+4B,IAjBO7+B,KAC5B,IAAMgsB,EAAU0U,GAAcl6B,IAAIxG,GAC9BgsB,GACF8O,aAAa9O,EAEjB,EAaQmyyB,CAAqBnyyB,EAAO0x5B,MAAM7+4B,IAAEmzW,GAAAA,GAAA,GAIjChyY,GAAA,IACH+7kC,OAAQ/7kC,EAAM+7kC,OAAOh1kC,KAAK+kB,GACxBA,EAAE+S,KAAO7S,EAAO0x5B,MAAM7+4B,GAAAmzW,GAAAA,GAAA,GAAUlmX,GAAME,EAAO0x5B,OAAU5x5B,MAI7D,KAAK,EACH,IAAQ4x5B,MAAAl+4B,GAAUxT,EAClB,OAAOhsB,EAAM+7kC,OAAOv6gC,MAAM11C,GAAMA,EAAE+S,KAAOW,EAAMX,KAC3CkB,GAAQ//B,EAAO,CAAEuC,KAAM,EAAyBm76B,MAAAl+4B,IAChDO,GAAQ//B,EAAO,CAAEuC,KAAM,EAAsBm76B,MAAAl+4B,IAEnD,KAAK,EACH,IAAQs8iC,QAAAlzjC,GAAYoD,EAGpB,OAAIpD,EACF8W,GAAiB9W,GAEjB5oB,EAAM+7kC,OAAO/8kC,SAAS8sB,IACpB4T,GAAiB5T,EAAM+S,GACzB,IAACmzW,GAAAA,GAAA,GAIEhyY,GAAA,IACH+7kC,OAAQ/7kC,EAAM+7kC,OAAOh1kC,KAAK+kB,GACxBA,EAAE+S,KAAOjW,QAAuB,IAAZA,EAAYopX,GAAAA,GAAA,GAEvBlmX,GAAA,IACHkgF,SAAS,IAEXlgF,MAGV,KAAK,EACH,YAAuB,IAAnBE,EAAO8vjC,QAAY9psB,GAAAA,GAAA,GAEhBhyY,GAAA,IACH+7kC,OAAQ,KACV/psB,GAAAA,GAAA,GAGGhyY,GAAA,IACH+7kC,OAAQ/7kC,EAAM+7kC,OAAOjyjC,QAAQgC,GAAMA,EAAE+S,KAAO7S,EAAO8vjC,YAGvD,KAAK,EACH,OAAA9psB,GAAAA,GAAA,GACKhyY,GAAA,IACHg8kC,SAAUhwjC,EAAOhJ,OAGrB,KAAK,EACH,IAAM8F,EAAOkD,EAAOhJ,MAAQhjB,EAAMg8kC,UAAY,GAE9C,OAAAhqsB,GAAAA,GAAA,GACKhyY,GAAA,IACHg8kC,cAAU,EACVD,OAAQ/7kC,EAAM+7kC,OAAOh1kC,KAAK+kB,GAAAkmX,GAAAA,GAAA,GACrBlmX,GAAA,IACHmwjC,cAAenwjC,EAAEmwjC,cAAgBnzjC,QAGzC,EAGIic,GAA2C,GAE7Cm0B,GAAqB,CAAE6ihC,OAAQ,GAAIC,cAAU,GAEpC3vjC,GAAYrsB,IACvBk5D,GAAcn5B,GAAQm5B,GAAal5D,GACnC+kC,GAAU/lC,SAASgtB,IACjBA,EAASktC,GACX,GACF,EAEanzB,GAET,CACFg+T,MAAO,IACPlqV,MAAO,IACPM,QAAS,IACTukuB,QAAS,IACT7tW,OAAQ,KC/IJtgY,GACHvQ,GACD,CAACgsB,EAASwT,KACR,IAAM5W,EArBU,SAClB5oB,GAAA,IACAgsB,EAAAvhB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAkB,QAClB+0B,EAAA/0B,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAAA,OAAAyzY,GAAAA,GAAA,CAEAgzmB,UAAW5j9B,KAAK+O,MAChB67D,SAAS,EACTzpG,KAAAypB,EACAkwjC,UAAW,CACTllkC,KAAM,SACN,YAAa,UAEf64H,QAAA7vI,EACAi8kC,cAAe,GACZz8iC,GAAA,IACHX,IAAI,MAAAW,OAAA,EAAAA,EAAMX,KAAM49B,MAClB,CAKkBq+c,CAAY9uf,EAAShsB,EAAMw/B,GACzC,OAAAnT,GAAS,CAAE9pB,KAAA,EAA+Bm76B,MAAA905B,IACnCA,EAAMiW,EACf,EAEIjX,GAAQ815B,CAAC196B,EAAkBgsB,IAC/Bzb,GAAc,QAAdA,CAAuBvQ,EAASgsB,GAElCpE,GAAM/N,MAAQtJ,GAAc,SAC5BqX,GAAMzN,QAAU5J,GAAc,WAC9BqX,GAAM82tB,QAAUnuuB,GAAc,WAC9BqX,GAAMipX,OAAStgY,GAAc,UAE7BqX,GAAM2u6B,QAAWv27B,IACfqsB,GAAS,CACP9pB,KAAA,EACAu5kC,QAAA97kC,GAEJ,EAEA4nB,GAAMgtB,OAAU50C,GACdqsB,GAAS,CAAE9pB,KAAA,EAA+Bu5kC,QAAA97kC,IAE5C4nB,GAAMomB,QAAU,CACdhuC,EACAgsB,EAKAwT,KAEA,IAAM5W,EAAKhB,GAAM82tB,QAAQ1ytB,EAAK0ytB,QAAA1sW,GAAAA,GAAA,GAAcxyW,GAAS,MAAAA,OAAA,EAAAA,EAAMk/sB,UAE3D,OAAA1+uB,EACGwtC,MAAM1kB,IACLlB,GAAMzN,QAAQ8/E,GAAajuE,EAAK7R,QAAS2O,GAACkpX,GAAAA,GAAA,CACxCnzW,GAAAjW,GACG4W,GACA,MAAAA,OAAA,EAAAA,EAAMrlB,UAEJ2O,KAER42H,OAAO52H,IACNlB,GAAM/N,MAAMogF,GAAajuE,EAAKnS,MAAOiP,GAACkpX,GAAAA,GAAA,CACpCnzW,GAAAjW,GACG4W,GACA,MAAAA,OAAA,EAAAA,EAAM3lB,OAEb,IAEK7Z,CACT,ECpFA,ILLu0DA,GAAEgsB,GAAEF,GAAEjD,GKKv0Dqd,GAAei2iC,CAACn8kC,EAAiBgsB,KACrCK,GAAS,CACP9pB,KAAA,EACAm76B,MAAO,CAAE7+4B,GAAI7+B,EAASwU,OAAAwX,IAE1B,EACMoqb,GAAagmoB,KACjB/vjC,GAAS,CACP9pB,KAAA,EACAygB,KAAMoe,KAAK+O,OAEf,EAEa7P,GAActgC,IACzB,IAAQ+7kC,OAAA/vjC,EAAQgwjC,SAAAx8iC,GFiKM,WAAmD,IAAlDx/B,EAAAyK,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAoC,CAAC,GACrDuhB,EAAOwT,IAAY75B,EAAAA,EAAAA,UAAgBuzD,KAC1C7zB,EAAAA,EAAAA,YAAU,KACRN,GAAU1mC,KAAKmhC,GACR,KACL,IAAM1W,EAAQic,GAAU5jC,QAAQq+B,GAC5B1W,GAAS,GACXic,GAAUo4B,OAAOr0C,EAAO,EAE5B,IACC,CAACkD,IAEJ,IAAMpD,EAAeoD,EAAM+vjC,OAAOh1kC,KAAK+hB,IAhMzC,IAAAgD,EAAA2T,EAgMgD,OAAAuyW,GAAAA,GAAAA,GAAAA,GAAA,GACzChyY,GACAA,EAAa8oB,EAAEvmB,OACfumB,GAAA,IACHhU,SACEgU,EAAEhU,WACF,OAAAgX,EAAA9rB,EAAa8oB,EAAEvmB,YAAf,EAAAupB,EAAsBhX,YACtB,MAAA9U,OAAA,EAAAA,EAAc8U,WACdixB,GAAgBjd,EAAEvmB,MACpBwnB,MAAAioX,GAAAA,GAAAA,GAAA,GACKhyY,EAAa+pB,OACb,OAAA0V,EAAAz/B,EAAa8oB,EAAEvmB,YAAf,EAAAk9B,EAAsB1V,OACtBjB,EAAEiB,QAEP,IAEF,OAAAioX,GAAAA,GAAA,GACKhmX,GAAA,IACH+vjC,OAAQnzjC,GAEZ,CEjM+BgsC,CAAS50D,IAEtCogM,EAAAA,EAAAA,YAAU,KACR,GAAI5gK,EACF,OAGF,IAAM1T,EAAMsV,KAAK+O,MACX1Q,EAAWzT,EAAOjlB,KAAKrH,IAC3B,GAAIA,EAAEoV,WAAa,IACjB,OAGF,IAAMpD,GACHhS,EAAEoV,UAAY,GAAKpV,EAAEu8kC,eAAiBnwjC,EAAMpsB,EAAEsl/B,WAEjD,KAAItz+B,EAAe,GAMnB,OAAOqpB,YAAW,IAAMnT,GAAM2u6B,QAAQ727B,EAAEm/B,KAAKntB,GALvChS,EAAEssG,SACJpkF,GAAM2u6B,QAAQ727B,EAAEm/B,GAKtB,IAEA,MAAO,KACLY,EAASzgC,SAASU,GAAYA,GAAWo7B,aAAap7B,IACxD,CACF,GAAG,CAACssB,EAAQwT,IAEZ,IAAM5W,GAAW8b,EAAAA,EAAAA,cAAY,KACvBlF,GACFnT,GAAS,CAAE9pB,KAAA,EAA4BygB,KAAMoe,KAAK+O,OAEtD,GAAG,CAAC3Q,IAEE1W,GAAkB4b,EAAAA,EAAAA,cACtB,CACE5Y,EACA2T,KAMA,IAAQ48iC,aAAA38kC,GAAe,EAAO48kC,OAAA5qkC,EAAS,EAAG6qkC,gBAAA/rjC,GAAoBiP,GAAQ,CAAC,EAEjEgB,EAAiBzU,EAAOlC,QAC3ByG,IACEA,EAAEtuB,UAAYuuB,MACZ1E,EAAM7pB,UAAYuuB,IAAoBD,EAAE/b,SAEzC8ka,EAAa74Y,EAAei0K,WAAWnkL,GAAMA,EAAEsO,KAAO/S,EAAM+S,KAC5Dh5B,EAAe46B,EAAe3W,QAClC,CAACyG,EAAO2pC,IAAMA,EAAIo/W,GAAc/oZ,EAAMy7E,UACtCluG,OAOF,OALe2iC,EACZ3W,QAAQyG,GAAMA,EAAEy7E,UAChBtqG,SAAUhC,EAAe,CAACmG,EAAe,GAAK,CAAC,EAAGA,IAClD+Y,QAAO,CAAC2R,EAAK2pC,IAAM3pC,GAAO2pC,EAAE1lD,QAAU,GAAK9C,GAAQ,EAGxD,GACA,CAACsa,IAGH,MAAO,CACL+vjC,OAAA/vjC,EACA4G,SAAU,CACRupjC,aAAAj2iC,GACAk2iC,WAAAhmoB,GACAomoB,SAAA5zjC,EACA6zjC,gBAAA3zjC,GAGN,EC7FMm4yB,GAAkBr7zB,GAAAg88B,KAAAA,GAAAQ,GAAA,qIAUlB367B,GAAqB7hB,GAAAi88B,KAAAA,GAAAO,GAAA,0GAUrBv/3B,GAAsBj9E,GAAAk88B,KAAAA,GAAAM,GAAA,sIAefzh7B,GAAYogyB,GAAO,MAAPA,CAAYghJ,KAAAA,GAAAK,GAAA,+pBAKpBpi9B,GAAMA,EAAE2X,SAAW,WAIrBspzB,GAOEx5yB,IAKEznB,GAAMA,EAAE4X,WAAa,QAQvBirE,IChEXD,GAASu9W,GAAAu8oB,KAAAA,GAAAt6H,GAAA,oGAcF1x3B,GAAaswuB,GAAO,MAAPA,CAAY27Q,KAAAA,GAAAv6H,GAAA,4MAMnBpi9B,GAAMA,EAAE4X,WAAa,YACf5X,GAAMA,EAAE2X,SAAW,WAC7BirE,ICtBTy+uB,GAAkB1swB,GAAAiohC,KAAAA,GAAAx6H,GAAA,sIAUlB1gJ,GAAqB/swB,GAAAkohC,KAAAA,GAAAz6H,GAAA,4JAqBd/h7B,GAAgB8gyB,GAAO,MAAPA,CAAY27Q,KAAAA,GAAA16H,GAAA,olBAKxBpi9B,GAAMA,EAAE2X,SAAW,WAIrB0pzB,GAMEK,IAMI1h0B,GAAMA,EAAE4X,WAAa,SC9CpCspzB,GAAgBxkwB,GAAO,MAAPA,CAAYqghC,KAAAA,GAAA36H,GAAA,iCAI5BnthB,GAAmBv4X,GAAO,MAAPA,CAAYsghC,KAAAA,GAAA56H,GAAA,gJAS/Bt/I,GAAQlB,GAAAq7Q,KAAAA,GAAA76H,GAAA,8GAUD9gJ,GAAsB5kwB,GAAO,MAAPA,CAAYwghC,KAAAA,GAAA96H,GAAA,mLAKhCt/I,IAUFnjyB,GAERnsB,IAAe,IAAZkq6B,MAAA196B,GAAMwT,GACJmF,KAAAqT,EAAMzpB,KAAAi9B,EAAM29iC,UAAAv0jC,GAAc5oB,EAClC,YAAa,IAATgsB,EACkB,iBAATA,EACFlmB,EAAAA,cAACw7zB,GAAA,KAAqBt1yB,GAEtBA,EAIE,UAATwT,EACK,KAIP15B,EAAAA,cAACmvb,GAAA,KACCnvb,EAAAA,cAAC4qF,GAAAshT,GAAA,GAAeppX,IACN,YAAT4W,GACC15B,EAAAA,cAACo7zB,GAAA,KACW,UAAT1hyB,EACC15B,EAAAA,cAAC66B,GAAAqxW,GAAA,GAAcppX,IAEf9iB,EAAAA,cAACu6B,GAAA2xW,GAAA,GAAkBppX,KAM/B,ECrEM+4yB,GAAkB3h0B,GAAA,kCAAAqI,QACiB,IAAVrI,EAAS,6FAIlCg1b,GAAiBh1b,GAAA,gGAAAqI,QAEoB,IAAVrI,EAAS,oCAMpCipc,GAAe5vB,GAAO,MAAPA,CAAY+jqB,KAAAA,GAAAh7H,GAAA,oTAc3B7zH,GAAUl1a,GAAO,MAAPA,CAAYgkqB,KAAAA,GAAAj7H,GAAA,6IAqCf/itB,GAA0Cx2O,EAAAA,MACrD5W,IAA0C,IAAvCyr6B,MAAA196B,EAAOiC,SAAA+pB,EAAUjC,MAAAyV,EAAO/8B,SAAAmmB,GAAS3W,EAC5B6W,EAAsC9oB,EAAMwU,OApB5B8okC,EACxBt9kC,EACAgsB,KAGA,IAAMpD,EADM5oB,EAASs5X,SAAS,OACT,GAAK,GAEnBxwW,EAAOgD,GAAQ4E,KAClB,CA5CkB,kCACC,mCA4CnB,CAACixyB,GAAe/4yB,GAASosa,GAAcpsa,IAE3C,MAAO,CACLssH,UAAWlpH,EAAA,GAAA3jB,OACJtC,GAAU+iB,GAAK,mDAAAzgB,OACftC,GAAU+lB,GAAI,8CAEzB,EAKQm2yB,CACEji0B,EAAMiC,UAAY+pB,GAAY,aAC9BhsB,EAAMgsG,SAER,CAAEh/F,QAAS,GAET8e,EAAOjD,EAAAA,cAAC8W,GAAA,CAAU+94B,MAAO196B,IACzBy/B,EACJ5W,EAAAA,cAAC0l0B,GAAAv8c,GAAA,GAAYhyY,EAAMk8kC,WAChBji/B,GAAaj6F,EAAM6vI,QAAS7vI,IAIjC,OACE6oB,EAAAA,cAACogb,GAAA,CACCj4b,UAAWhR,EAAMgR,UACjB+Y,MAAAioX,GAAAA,GAAAA,GAAA,GACKlpX,GACA0W,GACAx/B,EAAM+pB,QAGU,mBAAbnB,EACNA,EAAS,CACPjQ,KAAAmT,EACA+jH,QAAApwG,IAGF5W,EAAAA,cAAAA,EAAAA,SAAA,KACGiD,EACA2T,GAKX,IV7Gq0Dz/B,GWY3zD+oB,EAAAA,cXZo0DyW,GAAEhP,EAAExE,GAAEta,GAAE1R,GAAE+oB,GAAE+C,GAAE2U,GAAE5X,GWch2D,IAAM+5yB,GAAer3yB,IAMI,IALvBsT,GAAA7+B,EACAgR,UAAAgb,EACAjC,MAAAyV,EACA+9iC,eAAA30jC,EACAnmB,SAAAqmB,GACFyC,EACQO,EAAY/C,EAAAA,aACf0W,IACC,GAAIA,EAAI,CACN,IAAM//B,EAAey8kC,KACnB,IAAMzqkC,EAAS+tB,EAAGuf,wBAAwBxqC,OAC1CoU,EAAe5oB,EAAI0R,EACrB,EACAhS,IACA,IAAIo/6B,iBAAiBp/6B,GAAc28mB,QAAQ58kB,EAAI,CAC7Cu/4B,SAAS,EACTD,WAAW,EACXy+J,eAAe,GAChB,IAGL,CAACx9kC,EAAI4oB,IAGP,OACEG,EAAAA,cAAC,OAAItf,IAAKqiB,EAAK9a,UAAWgb,EAAWjC,MAAOyV,GACzC1W,EAGP,EA+BMg5yB,GAAcQ,GAAAm7Q,KAAAA,GAAAr7H,GAAA,qEASPhgJ,GAAkC1C,IAQzC,IAPJ28Q,aAAAr8kC,EACAiC,SAAA+pB,EAAW,aACX0xjC,aAAAl+iC,EACA88iC,OAAA1zjC,EACAnmB,SAAAqmB,EACA2+f,eAAA37f,EACA0pS,mBAAA/1R,GACFigyB,GACUq8Q,OAAAr8kC,EAAQkzB,SAAAlhB,GAAa4uB,GAAWd,GAExC,OACEzW,EAAAA,cAAC,OACCgB,MAAAioX,GAAA,CACE/vY,SAAU,QACVqL,OAAQ,KACRwqB,IAlBe,GAmBfG,KAnBe,GAoBfF,MApBe,GAqBfC,OArBe,GAsBf+qL,cAAe,QACZj3L,GAEL9a,UAAWyuB,EACX49hC,aAAc3rjC,EAAS0qkC,WACvB13H,aAAchz8B,EAAS8qkC,UAEtB98kC,EAAOqH,KAAKypB,IACX,IAAMiQ,EAAgBjQ,EAAEvuB,UAAY+pB,EAM9BnmB,EAxEW83kC,EACvB39kC,EACAgsB,KAEA,IAAMwT,EAAMx/B,EAASs5X,SAAS,OACxB1wW,EAAqC4W,EAAM,CAAE1H,IAAK,GAAM,CAAEE,OAAQ,GAClElP,EAAuC9oB,EAASs5X,SAAS,UAC3D,CACEriW,eAAgB,UAElBj3B,EAASs5X,SAAS,SAClB,CACEriW,eAAgB,YAElB,CAAC,EACL,OAAA+6W,GAAAA,GAAA,CACE/5W,KAAM,EACNF,MAAO,EACPtjB,QAAS,OACTxS,SAAU,WACV2S,WAAY8b,UACR,EACA,yCACJR,UAAA,cAAA7nB,OAAyB2jB,GAAUwT,EAAM,GAAK,GAAD,QAC1C5W,GACAE,EACL,EA8C4Bs6yB,CAAiB3iyB,EALxB/uB,EAAS+qkC,gBAAgBjsjC,EAAG,CACzC6rjC,aAAAr8kC,EACAs8kC,OAAA1zjC,EACA2zjC,gBAAiBvwjC,KAInB,OACEjD,EAAAA,cAAC65yB,GAAA,CACC/jyB,GAAIrO,EAAEqO,GACNlgC,IAAK6xB,EAAEqO,GACP0+iC,eAAgB7rkC,EAASyqkC,aACzBnrkC,UAAWwf,EAAEw7E,QAAU81tB,GAAc,GACrC/3yB,MAAOlkB,GAEK,WAAX2qB,EAAEjuB,KACD03F,GAAazpE,EAAEq/G,QAASr/G,GACtB1H,EACFA,EAAS0H,GAETzH,EAAAA,cAACs2O,GAAA,CAASq+qB,MAAOlt5B,EAAGvuB,SAAUw+B,IAItC,IAGN,EChIO2qU,GAAQxjV,GCef,MAAMg2jC,GAAiB1qkC,GAAO288B,GAAP388B,CAAY,CACjCqB,MAAO,OACP0f,SAAU,QACVzf,OAAQ,OACR2d,OAAQ,YACRC,QAAS,OACToC,gBAAiB,UACjB0D,UAAW,mCACXtI,aAAc,SAGViujC,GAAQ3qkC,GAAO,KAAPA,CAAa,CACzBK,SAAU,OACVzG,WAAY,MACZurB,UAAW,SACXhlB,MAAO,UACP4iB,aAAc,SAGV6njC,GAAW5qkC,GAAO,KAAPA,CAAa,CAC5BK,SAAU,OACVzG,WAAY,MACZurB,UAAW,SACXhlB,MAAO,UACP0iB,UAAW,OACXE,aAAc,SAGV8njC,GAAyB7qkC,GAAO288B,GAAP388B,CAAY,CACzCuB,QAAS,OACTyiB,WAAY,SACZtD,IAAK,OACLqC,aAAc,OACdgB,eAAgB,gBAChB1iB,MAAO,OACPyiB,SAAU,WAGNgnjC,GAAgB9qkC,GAAO288B,GAAP388B,CAAY,CAChCuB,QAAS,OACTmf,IAAK,MACLoD,SAAU,OACVC,eAAgB,SAChB9E,OAAQ,WAGJ8rjC,GAAa/qkC,GAAOu4iC,GAAPv4iC,CAAa,CAC9BshB,gBAAiB,UACjBnhB,MAAO,UACPvG,WAAY,QAGRoxkC,GAAkBhrkC,GAAOmnjC,GAAPnnjC,CAAkB,CACxCqB,MAAO,QACPqb,aAAc,MACd4E,gBAAiB,UACjB0D,UAAW,iCACX,2BAA4B,CAC1BtI,aAAc,SAIZuujC,GAA0BjrkC,GAAOkrkC,GAAPlrkC,CAA0B,CACxDshB,gBAAiB,UACjB5E,aAAc,MACdsI,UAAW,iCACX1jB,OAAQ,SAGJ6pkC,GAAqBnrkC,GAAOorkC,GAAPprkC,CAAqB,CAC9CpG,WAAY,MACZuG,MAAO,UACPmB,OAAQ,OACR,iBAAkB,CAChBggB,gBAAiB,UACjBnhB,MAAO,WAET,UAAW,CACTmhB,gBAAiB,UACjBnhB,MAAO,aAILkrkC,GAAerrkC,GAAO408B,GAAP508B,CAAe,CAClCqB,MAAO,QACP6d,QAAS,SACT7e,SAAU,OACVzG,WAAY,MACZuG,MAAO,UACPmhB,gBAAiB,UACjB5E,aAAc,OACdsI,UAAW,uCACXtjB,WAAY,mDACZwiB,UAAW,WACX,UAAW,CACT5C,gBAAiB,UACjB0D,UAAW,wCAEb,aAAc,CACZ1D,gBAAiB,UACjBnhB,MAAO,aAoBLmrkC,IAhBetrkC,GAAO,IAAPA,CAAY,CAC/BG,MAAO,UACPE,SAAU,OACV8kB,UAAW,SACXtC,UAAW,OACXE,aAAc,QAGS/iB,GAAO288B,GAAP388B,CAAY,CACnCuB,QAAS,OACTyiB,WAAY,SACZtD,IAAK,OACLqD,eAAgB,SAChBhB,aAAc,SAGQ/iB,GAAO6jkC,GAAP7jkC,CAAkB,CACxCpG,WAAY,MACZyG,SAAU,OACVF,MAAO,UACP6f,aAAc,uBAGVurjC,GAAoBvrkC,GAAO6jkC,GAAP7jkC,CAAkB,CAC1C2jB,WAAY,SACZ6njC,SAAU,aACVzqjC,SAAU,UA4cZ,GAzc4B0qjC,KAC1B,MAAM,UAAErvH,GAAcE,MACfovH,EAAaC,IAAkBl1K,EAAAA,EAAAA,WAAS,IACxC8uC,EAAQqmI,IAAan1K,EAAAA,EAAAA,UAAS,KAC9Bo1K,EAAYC,IAAiBr1K,EAAAA,EAAAA,UAAS,KACtC3y5B,EAAMiokC,IAAWt1K,EAAAA,EAAAA,UAAS,SAC1B9v5B,EAAOqlkC,IAAYv1K,EAAAA,EAAAA,UAAS,KAC5Bw1K,EAAYC,IAAiBz1K,EAAAA,EAAAA,UAAS,KACtC01K,EAAgBC,IAAqB31K,EAAAA,EAAAA,UAAS,KAC9C41K,EAAgBC,IAAqB71K,EAAAA,EAAAA,UAAS,KAC9C81K,EAAWC,IAAgB/1K,EAAAA,EAAAA,UAAS,KAEpCg2K,EAAiBC,IAAqBj2K,EAAAA,EAAAA,UAAS,KAC/C93P,EAAagua,IAAkBl2K,EAAAA,EAAAA,UAAS,KACxCm2K,EAAYC,IAAiBp2K,EAAAA,EAAAA,UAAS,IAEtC36K,EAAUgxV,IAAer2K,EAAAA,EAAAA,UAAS,IACnC+xC,EAAkBE,MAsCxBvyC,EAAAA,EAAAA,YAAU,KACR,GAAGqyC,EAAgB,CAEnB,MAAMukI,EAAYvprB,UAChB,MAAMm7Q,QAAoB28S,GAAeE,iBACzCr1S,MAAMhilB,6DAA4D,CAChEhlC,QAAS,CACP285B,cAAc,UAAD3m9B,OAAYwpqB,MAG1BrkoB,MAAMykB,IACL,IAAKA,EAASkuC,GACZ,MAAM,IAAI1wF,MAAM,+BAElB,OAAOwiD,EAASoxB,MAAM,IAEvB71C,MAAM4M,IACL4liC,EAAY5liC,GACZy/D,QAAQ53D,IAAI,cAAe7H,EAAK,IAEjCslG,OAAO7lI,GAAUggG,QAAQhgG,MAAM,uBAAwBA,IAAO,EAEnEomkC,GACA,IACC,CAACvkI,EAAiBokI,KAErBz2K,EAAAA,EAAAA,YAAU,KACRxvzB,QAAQ53D,IAAI,oBAAqB+ssB,EAAS,GACzC,CAACA,KAEJq6K,EAAAA,EAAAA,YAAU,KACR,GAAIxv5B,EAAO,CACT,MAAMkzB,EAAQhS,YAAW,IAAMmkjC,EAAS,KAAK,KAC7C,MAAO,IAAMpkjC,aAAaiS,EAC5B,IACC,CAAClzB,KAEJwv5B,EAAAA,EAAAA,YAAU,KACR,GAAIo2K,EAAW,CACb,MAAM1yiC,EAAQhS,YAAW,IAAM2kjC,EAAa,KAAK,KACjD,MAAO,IAAM5kjC,aAAaiS,EAC5B,IACC,CAAC0yiC,IAEJ,MAAMS,EAAiBxprB,UACF,6BACH5xY,KAAKi6jC,GAIjBtmI,EAAOn/kB,SAASyltB,GAClBG,EAAS,cAAD72kC,OAAe02kC,EAAU,8BAvFrCrorB,eAAgCh0Y,GAM9B,GAAGg57B,EAAgB,CACnB,MAAM7pS,QAAoB28S,GAAeE,iBAG9BC,GAAa1iB,iBAAiB,GAEzC,IAEE,MAAMn87B,QAAeupqB,MAAM,GAADhxqB,OAbL,yCAcF,sBAAAA,OAAqBqa,EAAK,KAC3C,CACEyxB,OAAQ,MACRke,QAAS,CACP285B,cAAc,UAAD3m9B,OAAYwpqB,GACzB,eAAgB,sBAItB,IAAK/hqB,EAAOqwF,GACV,MAAM,IAAI1wF,MAAM,oBAADpH,OAAqByH,EAAO4iD,SAE7C,MAAMtY,QAAatqC,EAAOuzE,OAE1B,OAAOjpC,EAAKv5C,OAASu5C,EAAKv5C,MAAM/C,OAAS,CAC3C,CAAE,MAAO+b,GACPggG,QAAQhgG,MAAM,kCAAmCA,EACnD,CACF,CACA,CAwDYsmkC,CAAiBpB,IACzBD,EAAU,IAAIrmI,EAAQsmI,IACtBC,EAAc,IACdE,EAAS,KAETA,EAAS,cAAD72kC,OACQ02kC,EAAU,2CAb1BG,EAAS,sCAeX,EA4KF,OArBA71K,EAAAA,EAAAA,YAAU,KACR,WAEE,GADgBslD,GAAarhB,mBAChB,CACX,MAAM8yI,QAAqB5xH,GAAeE,iBAC1CmxH,EAAeO,GACf,MAAMT,QAAwB33G,GAAMxh+B,IAClC6wF,qDACA,CACEhlC,QAAS,CACP,eAAgB,mBAChB285B,cAAc,UAAD3m9B,OAAY+3kC,MAI/Bvm+B,QAAQ53D,IAAI09hC,EAAgBvliC,MAC5BwliC,EAAkBD,EAAgBvliC,KACpC,CACD,EAjBD,EAiBI,GACH,IAGDk16B,GAA+B,QAAlBA,EAAUt48B,OACrBJ,EAAAA,GAAAA,MAACgnkC,GAAc,CAAAn7kC,SAAA,EACbwU,EAAAA,GAAAA,KAACopkC,GAAO,CAACp+kC,SAAS,aAAao6kC,cAAc,KAC7CzlkC,EAAAA,GAAAA,MAACi58B,GAAG,CAACp78B,QAAQ,OAAOsiB,cAAc,SAASG,WAAW,SAAQz0B,SAAA,CACzC,SAAlB6s9B,EAAUt48B,OACTJ,EAAAA,GAAAA,MAAA,OAAAnU,SAAA,EACEwU,EAAAA,GAAAA,KAAC4mkC,GAAK,CAAAp7kC,SAAC,kBACPmU,EAAAA,GAAAA,MAACmnkC,GAAsB,CAAAt7kC,SAAA,EACrBwU,EAAAA,GAAAA,KAACinkC,GAAe,CACdr4jC,MAAM,sBACNgH,QAAQ,WACRnnB,KAAK,QACL7E,MAAOk+kC,EACP/rF,SAAWhz/B,GAAMg/kC,EAAch/kC,EAAE2jB,OAAO9iB,OACxCy/kC,WAAatglC,GAAgB,UAAVA,EAAErB,KAAmBuhlC,IACxCrmkC,QAASA,KAEXjD,EAAAA,GAAAA,MAACunkC,GAAuB,CACtBt9kC,MAAOmW,EACPkjkC,WAAS,EACTlnF,SA9LSutF,CAACp9jC,EAAYq9jC,KACpB,OAAZA,GACFvB,EAAQuB,EACV,EA4Lc96kC,KAAK,QAAOjD,SAAA,EAEZwU,EAAAA,GAAAA,KAAConkC,GAAkB,CAACx9kC,MAAM,OAAM4B,SAAC,UACjCwU,EAAAA,GAAAA,KAAConkC,GAAkB,CAACx9kC,MAAM,QAAO4B,SAAC,cAEpCwU,EAAAA,GAAAA,KAACsnkC,GAAY,CACX1xjC,QAAQ,YACRxZ,MAAM,UACN85S,QAjMKupG,UASnB78S,QAAQ53D,IAAIw25B,GAEZ,UACQuvB,GAAMvi+B,KACV4xF,oDACA,CAEEoh3B,OAAQA,EACRzh8B,KAAMA,GAGR,CACEq7C,QAAS,CACP,eAAgB,mBAChBw26B,cAAc,UAADxg+B,OAAYwpqB,MAI/Bh4jB,QAAQ53D,IAAI,4BACZy73B,GAAMvj6B,QAAQ,+BAAD9R,OAAgC2O,IAC7C6iG,QAAQ53D,IAAI,UAAWw25B,GACvB5+1B,QAAQ53D,IAAI,QAASjrC,EACvB,CAAE,MAAO6C,GACPggG,QAAQhgG,MAAM,sBAAuBA,EACvC,GAiKclE,UAAW8i8B,EAAO368B,SAAWkZ,EAAKvU,SACnC,gBAIFoX,IACC5C,EAAAA,GAAAA,KAAA,KAAG8S,MAAO,CAAE1W,MAAO,UAAWglB,UAAW,UAAW51B,SAAEoX,KAExD5C,EAAAA,GAAAA,KAAC+mkC,GAAa,CAAAv7kC,SACXg28B,EAAO1x8B,KAAI,CAAC2b,EAAOrhB,KAClB4V,EAAAA,GAAAA,KAACgnkC,GAAU,CAETp4jC,MAAOnD,EACP0oiC,SAAUA,IACR0zB,EAAUrmI,EAAO3u7B,QAAQ9pB,GAAMA,IAAM0iB,KAEvChd,KAAK,SALArE,QASXuV,EAAAA,GAAAA,MAAA,KAAGmT,MAAO,CAAEkM,aAAc,QAASxzB,SAAA,CAAC,kBAClBuU,EAAK+Q,OAAO,GAAGkS,cAAgBjjB,EAAKtV,MAAM,UAKhEuV,EAAAA,GAAAA,KAAC6mkC,GAAQ,CAAAr7kC,SAAC,4BACVmU,EAAAA,GAAAA,MAACmnkC,GAAsB,CAAAt7kC,SAAA,EACrBwU,EAAAA,GAAAA,KAAC2ghC,GAAM,CACL/2hC,MAAO0+kC,EACPvsF,SAzKkB7v+B,IAC5Bq8jC,EAAkBr8jC,EAAMQ,OAAO9iB,MAAM,EAyK3B20hC,cAAY,EACZ9vhC,KAAK,QACLqkB,MAAO,CAAExV,MAAO,SAAU9R,SAEzBk9kC,EAAgB54kC,KAAK6w+B,IACpB3g+B,EAAAA,GAAAA,KAACwpkC,GAAQ,CAEP5/kC,MAAO+2+B,EAAUC,aAAap1+B,SAE7Bm1+B,EAAUi8F,gBAHNj8F,EAAUC,mBAOrB5g+B,EAAAA,GAAAA,KAACinkC,GAAe,CACdr4jC,MAAM,sBACNgH,QAAQ,WACRnnB,KAAK,QACL7E,MAAOw+kC,EACPrsF,SAAWhz/B,GAAMs/kC,EAAkBt/kC,EAAE2jB,OAAO9iB,OAC5Cy/kC,WAAatglC,GAAgB,UAAVA,EAAErB,UA3MZ,6BACHmmB,KAAKu6jC,GAIjBF,EAAW7ltB,SAAS+ltB,GACtBK,EAAa,cAADr3kC,OAAeg3kC,EAAc,yBAG3CD,EAAc,IAAID,EAAYE,IAC9BC,EAAkB,IAClBI,EAAa,KATXA,EAAa,wCA0ML7lkC,QAAS4lkC,KAEXxokC,EAAAA,GAAAA,KAACsnkC,GAAY,CACX1xjC,QAAQ,YACRxZ,MAAM,UACN85S,QA/LaupG,UAGvB,GAFA78S,QAAQ53D,IAAIs9hC,GACZ1l+B,QAAQ53D,IAAIk9hC,GACRI,GAAkBJ,EAAWrhlC,OAC/B,UACQkq+B,GAAMvi+B,KACV4xF,yDACA,CAEEoh3B,OAAQ0mI,EACRtnG,aAAc0nG,GAGhB,CACElthC,QAAS,CACP,eAAgB,mBAChBw26B,cAAc,UAADxg+B,OAAYwpqB,MAI/B6rQ,GAAMvj6B,QAAQ,mCAAD9R,OAAoCk3kC,IACjD1l+B,QAAQ53D,IAAI,qBAAsBk9hC,GAClCtl+B,QAAQ53D,IAAI,UAAWs9hC,EACzB,CAAE,MAAO1lkC,GACPggG,QAAQhgG,MAAM,gCAAiCA,GAC/C6j6B,GAAM7j6B,MAAM,iCACd,MAEA6j6B,GAAM7j6B,MAAM,wDACd,EAmKUlE,UAAWwpkC,EAAWrhlC,SAAWyhlC,EAAe98kC,SACjD,oBAIFg9kC,IACCxokC,EAAAA,GAAAA,KAAA,KAAG8S,MAAO,CAAE1W,MAAO,UAAWglB,UAAW,UAAW51B,SAAEg9kC,KAExDxokC,EAAAA,GAAAA,KAAC+mkC,GAAa,CAAAv7kC,SACX08kC,EAAWp4kC,KAAI,CAAC2b,EAAOrhB,KACtB4V,EAAAA,GAAAA,KAACgnkC,GAAU,CAETp4jC,MAAOnD,EACP0oiC,SAAUA,IACRg0B,EAAcD,EAAWr1jC,QAAQ9pB,GAAMA,IAAM0iB,KAE/Chd,KAAK,SALArE,QAUX4V,EAAAA,GAAAA,KAAC6mkC,GAAQ,CAAAr7kC,SAAC,6BACVwU,EAAAA,GAAAA,KAAC4hkC,GAAc,CACb/ikC,UAAWyn8B,GACXxz7B,MAAO,CAAExV,MAAO,OAAQwhB,UAAW,QAAStzB,UAE5CmU,EAAAA,GAAAA,MAACkikC,GAAK,CAAC/ujC,MAAO,CAAExV,MAAO,QAAS9R,SAAA,EAC9BwU,EAAAA,GAAAA,KAAC8hkC,GAAS,CAAAt2kC,UACRmU,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAACunkC,GAAe,CAACjqkC,MAAM,MAAK9R,SAAC,gBAC7BwU,EAAAA,GAAAA,KAACunkC,GAAe,CAACjqkC,MAAM,MAAK9R,SAAC,kBAC7BwU,EAAAA,GAAAA,KAACunkC,GAAe,CAACjqkC,MAAM,MAAK9R,SAAC,oBAC7BwU,EAAAA,GAAAA,KAACunkC,GAAe,CAACjqkC,MAAM,MAAK9R,SAAC,kBAGjCwU,EAAAA,GAAAA,KAACgikC,GAAS,CAAAx2kC,SACPusvB,EAASjovB,KAAI,CAACurD,EAASjxD,KAAK,IAAAq/kC,EAAA,OAC3B9pkC,EAAAA,GAAAA,MAACoikC,GAAQ,CAAAv2kC,SAAA,EACPwU,EAAAA,GAAAA,KAACwnkC,GAAiB,CAAAh8kC,SAAE6vD,EAAQquhC,cAC5B1pkC,EAAAA,GAAAA,KAACwnkC,GAAiB,CAAAh8kC,SACf6vD,EAAQul7B,gBAEX5g+B,EAAAA,GAAAA,KAACwnkC,GAAiB,CAAAh8kC,UAIf,QAHAi+kC,EAAAf,EAAgBn+gC,MACdo26B,GACCA,EAAUC,eAAiBvl7B,EAAQul7B,sBACtC,IAAA6oG,OAAA,EAHAA,EAGE7M,iBAAkB,SAEvB58jC,EAAAA,GAAAA,KAAC8/jC,GAAS,CAAAt0kC,UACRmU,EAAAA,GAAAA,MAACi58B,GAAG,CAAC1w8B,GAAI,CAAE1K,QAAS,OAAQmf,IAAK,OAAQnxB,SAAA,EACvCwU,EAAAA,GAAAA,KAAC6w8B,GAAM,CACLj77B,QAAQ,YACRxZ,MAAM,UACN3N,KAAK,QACLynT,QAASA,IArNXupG,WACpB,UACQsxkB,GAAMvi+B,KACV4xF,qEACA,CAEEsp/B,WAAY3xV,EAAS3tvB,GAAOs/kC,WAC5B9oG,aAAc7oP,EAAS3tvB,GAAOw2+B,cAEhC,CACExl7B,QAAS,CACP,eAAgB,mBAChBw26B,cAAc,UAADxg+B,OAAYwpqB,MAI/B6rQ,GAAMvj6B,QAAQ,eAAD9R,OAAgB2mvB,EAAS3tvB,GAAOs/kC,WAAU,cACvD9m+B,QAAQ53D,IAAI,wBAAyB+ssB,EAAS3tvB,GAAOs/kC,YACrDZ,GAAetgI,GAAYA,EAAU,GACvC,CAAE,MAAO5l8B,GACPggG,QAAQhgG,MAAM,gCAAiCA,EACjD,GAgMqC+mkC,CAAcv/kC,GAAOoB,SACrC,aAGDwU,EAAAA,GAAAA,KAAC6w8B,GAAM,CACLj77B,QAAQ,YACRxZ,MAAM,YACN3N,KAAK,QACLynT,QAASA,IArMZupG,WAGnB,UACQsxkB,GAAMvi+B,KACV4xF,kEACA,CAEEsp/B,WAAY3xV,EAAS3tvB,GAAOs/kC,WAC5B9oG,aAAc7oP,EAAS3tvB,GAAOw2+B,cAEhC,CACExl7B,QAAS,CACP,eAAgB,mBAChBw26B,cAAc,UAADxg+B,OAAYwpqB,MAI/B6rQ,GAAMvj6B,QAAQ,eAAD9R,OAAgB2mvB,EAAS3tvB,GAAOs/kC,WAAU,YACvD9m+B,QAAQ53D,IAAI,sBAAuB+ssB,EAAS3tvB,GAAOs/kC,YACnDZ,GAAetgI,GAAYA,EAAU,GACvC,CAAE,MAAO5l8B,GACPggG,QAAQhgG,MAAM,gCAAiCA,EACjD,GA8KqCgnkC,CAAax/kC,GAC5B0oB,MAAO,CAAEyK,gBAAiB,WAAY/xB,SACvC,kBA3BQpB,EAgCJ,gBAOxB,ECjmBC2R,GAAY,CAAC,aAAc,YAAa,YAAa,WAAY,QAAS,iBAAkB,UAAW,wBAAyB,WAAY,aAoC5I8tkC,IAAqB5tkC,EAAAA,GAAMA,IAACm08B,GAAY,CAC5Cji8B,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,oBACNkK,KAAM,OACNM,kBA1B+BA,CAAC3Q,EAAOiG,KACvC,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAWs7gC,OAASjmhC,EAAOimhC,MAAiC,eAA1Bt7gC,EAAW8jB,YAA+BzuB,EAAO4hjC,oBAAqBj3iC,EAAWyE,SAAWpP,EAAOoP,SAAUzE,EAAW4q8B,gBAAkBv18B,EAAOw18B,QAAQ,GAkBvL/q8B,EAKxBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACT5I,SAAU,EACVorB,eAAgB,aAChBC,WAAY,SACZj1B,SAAU,WACV0h9B,eAAgB,OAChBtv7B,SAAU,EACV8D,UAAW,aACXE,UAAW,OACXtD,WAAY,EACZE,cAAe,EACfrgB,WAAYzC,EAAM0C,YAAY9L,OAAO,mBAAoB,CACvD+L,SAAU3C,EAAM0C,YAAYC,SAAS2K,WAEvC,UAAW,CACTkk8B,eAAgB,OAChBnv7B,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOwC,MAEtD,uBAAwB,CACtBuc,gBAAiB,gBAGrB,CAAC,KAADnsB,OAAMmijC,GAAsBryiC,WAAa,CACvCqc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,MAAM0O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,iBACxL,CAAC,KAAD/P,OAAMmijC,GAAsBxuhC,eAAiB,CAC3CxH,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,YAAAx/8B,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,OAAOsO,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAO+C,gBAGrR,CAAC,KAADnQ,OAAMmijC,GAAsBryiC,SAAQ,WAAW,CAC7Cqc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,YAAAx/8B,OAAW8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,OAAA/P,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,OAAO4O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,gBAAkBjG,EAAMoD,QAAQE,OAAOyC,cAEjR,uBAAwB,CACtBsc,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO2C,gBAAe,MAAM0O,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO2C,mBAG5L,CAAC,KAAD/P,OAAMmijC,GAAsBxuhC,eAAiB,CAC3CxH,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO8C,OAExD,CAAC,KAADlQ,OAAMmijC,GAAsB70iC,WAAa,CACvC3I,SAAUmF,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAO6C,kBAE/ClF,EAAWyE,SAAW,CACvBqb,aAAc,aAAF7qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,SACzD6yiC,eAAgB,eACW,eAA1Bt3iC,EAAW8jB,YAA+B,CAC3CA,WAAY,eACV9jB,EAAW4q8B,gBAAkB,CAC/B9o7B,YAAa,GACbF,aAAc,IACb5hB,EAAWs7gC,OAAS,CACrB35/B,WAAY,EACZE,cAAe,GACf,IA2IF,GA1IoC/rB,EAAAA,YAAiB,SAAwB2M,EAASpM,GACpF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,uBAEF,WACFuuB,EAAa,SAAQ,UACrBs24B,GAAY,EAAK,UACjB135B,EAAY,MAAK,SACjBrT,EAAQ,MACRishC,GAAQ,EAAK,eACb1wE,GAAiB,EAAK,QACtBnm8B,GAAU,EAAK,sBACfkv8B,EAAqB,SACrB5u8B,GAAW,EAAK,UAChBnH,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCy5B,EAAUvjC,EAAAA,WAAiB2lhC,IAC3BZ,EAAe/khC,EAAAA,SAAc,KAAM,CACvCwlhC,MAAOA,GAASji/B,EAAQii/B,QAAS,EACjCx3/B,aACA8m7B,oBACE,CAAC9m7B,EAAYuV,EAAQii/B,MAAOA,EAAO1wE,IACjCgtG,EAAc9hjC,EAAAA,OAAa,OACjCg1B,EAAAA,GAAAA,IAAkB,KACZsv4B,GACEw9I,EAAY7gjC,SACd6gjC,EAAY7gjC,QAAQoO,OAIxB,GACC,CAACi15B,IACJ,MAAMp65B,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC00B,aACAw3/B,MAAOT,EAAaS,MACpB1wE,iBACAnm8B,UACAM,aAEI3B,EAvHkBpD,KACxB,MAAM,WACJ8jB,EAAU,QACV1gB,EAAO,MACPk4gC,EAAK,SACL/4gC,EAAQ,eACRqo8B,EAAc,QACdnm8B,EAAO,SACPM,GACE/E,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQqshC,GAAS,SAAU1wE,GAAkB,UAAWnm8B,GAAW,UAAWlC,GAAY,WAA2B,eAAfuhB,GAA+B,sBAAuB/e,GAAY,aAE3K6u8B,GAAkBtw8B,EAAAA,GAAcA,GAACD,EAAOuziC,GAA+BxziC,GAC7E,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EAyG7Brw8B,CAAkBvD,GAC5B0z8B,GAAY3o7B,EAAAA,GAAUA,GAAC6shC,EAAavhjC,GAC1C,OAAoBwN,EAAAA,GAAAA,KAAK43gC,GAAYxlhC,SAAU,CAC7CxI,MAAOothC,EACPxrhC,UAAuBwU,EAAAA,GAAAA,KAAK6pkC,IAAoBzqkC,EAAAA,GAAAA,GAAS,CACvD5M,IAAKq98B,EACL9kzB,KAAM7rJ,EAAM6rJ,MAAQ7rJ,EAAM+1B,GAG1Bp2B,WAAYK,EAAM6rJ,MAAQ7rJ,EAAM+1B,KAAqB,QAAdp2B,EAAsB,SAAWA,EACxEix8B,uBAAuBjw8B,EAAAA,GAAIA,GAACN,EAAQwlB,aAAc+q7B,GAClD3z8B,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,EAAO,CACRK,QAASA,EACT/T,SAAUA,MAGhB,IC7JMuQ,GAAY,CAAC,aAoBb+tkC,IAAmB7tkC,EAAAA,GAAMA,IAAC,MAAO,CACrCvK,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAgC,eAA1B+Q,EAAW8jB,YAA+BzuB,EAAO4hjC,oBAAoB,GAPrEn3iC,EAStBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbge,SAAU,GACVhhB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOC,OAC5C3J,WAAY,EACZ0I,QAAS,eACkB,eAA1BrB,EAAW8jB,YAA+B,CAC3CnB,UAAW,GACX,IAgDF,GA3CkC7sB,EAAAA,YAAiB,SAAsB2M,EAASpM,GAChF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,qBAEF,UACFqI,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCy5B,EAAUvjC,EAAAA,WAAiB2lhC,IAC3Bz7gC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC00B,WAAYuV,EAAQvV,aAEhB1gB,EA/CkBpD,KACxB,MAAM,WACJ8jB,EAAU,QACV1gB,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAuB,eAAf60B,GAA+B,wBAEhD,OAAOxgB,EAAAA,GAAcA,GAACD,EAAO0kkC,GAA6B3kkC,EAAQ,EAuClDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK8pkC,IAAkB1qkC,EAAAA,GAAAA,GAAS,CAClDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,GACJ0M,GACL,IC/DMnD,GAAY,CAAC,WAAY,YAAa,oBAAqB,QAAS,UAAW,yBAA0B,YAAa,4BA2BtHgukC,IAAmB9tkC,EAAAA,GAAMA,IAAC,MAAO,CACrCvK,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAAC,CACN,CAAC,MAAD6F,OAAOqzkC,GAAoB/jkC,UAAYlP,EAAOkP,SAC7C,CACD,CAAC,MAADtP,OAAOqzkC,GAAoB9jkC,YAAcnP,EAAOmP,WAC/CnP,EAAOpG,KAAM+Q,EAAWqokC,OAAShzkC,EAAOgzkC,MAAOrokC,EAAWuE,SAAWvE,EAAWwE,WAAanP,EAAOq/gC,UAAW10gC,EAAWs7gC,OAASjmhC,EAAOimhC,MAAM,GAX9Hx7gC,EAatBM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbzK,KAAM,WACNyoB,SAAU,EACV0B,UAAW,EACXE,aAAc,GACb7iB,EAAWuE,SAAWvE,EAAWwE,WAAa,CAC/Cme,UAAW,EACXE,aAAc,GACb7iB,EAAWqokC,OAAS,CACrBvmjC,YAAa,IACb,IAgHF,GA/GkChsB,EAAAA,YAAiB,SAAsB2M,EAASpM,GAChF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,qBAEF,SACFlG,EAAQ,UACRuO,EAAS,kBACTg9hC,GAAoB,EAAK,MACzBytC,GAAQ,EACR9jkC,QAASspkC,EAAW,uBACpBC,EACAtpkC,UAAWupkC,EAAa,yBACxBC,GACE5+kC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,MACJ07gC,GACExlhC,EAAAA,WAAiB2lhC,IACrB,IAAIl3gC,EAAyB,MAAfspkC,EAAsBA,EAAcx+kC,EAC9CmV,EAAYupkC,EAChB,MAAM/tkC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCwriC,oBACAytC,QACA9jkC,UAAWA,EACXC,YAAaA,EACb82gC,UAEIl4gC,EArEkBpD,KACxB,MAAM,QACJoD,EAAO,MACPilkC,EAAK,QACL9jkC,EAAO,UACPC,EAAS,MACT82gC,GACEt7gC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQo5kC,GAAS,QAAS/sD,GAAS,QAAS/2gC,GAAWC,GAAa,aAC3ED,QAAS,CAAC,WACVC,UAAW,CAAC,cAEd,OAAOlB,EAAAA,GAAcA,GAACD,EAAO2kkC,GAA6B5kkC,EAAQ,EAwDlDG,CAAkBvD,GAqBlC,OApBe,MAAXuE,GAAmBA,EAAQpV,OAAS8m+B,IAAe2kE,IACrDr2hC,GAAuBV,EAAAA,GAAAA,KAAKoy9B,IAAYhz9B,EAAAA,GAAAA,GAAS,CAC/CwW,QAAS6hgC,EAAQ,QAAU,QAC3B19gC,UAAWwF,EAAQmB,QACnB7B,UAAqC,MAA1BorkC,GAAkCA,EAAuBr0jC,aAAUtuB,EAAY,OAC1FkW,QAAS,SACRyskC,EAAwB,CACzBz+kC,SAAUkV,MAGG,MAAbC,GAAqBA,EAAUrV,OAAS8m+B,IAAe2kE,IACzDp2hC,GAAyBX,EAAAA,GAAAA,KAAKoy9B,IAAYhz9B,EAAAA,GAAAA,GAAS,CACjDwW,QAAS,QACT7b,UAAWwF,EAAQoB,UACnBvE,MAAO,iBACPoB,QAAS,SACR2skC,EAA0B,CAC3B3+kC,SAAUmV,OAGMhB,EAAAA,GAAAA,MAAMoqkC,IAAkB3qkC,EAAAA,GAAAA,GAAS,CACnDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,GACJ0M,EAAO,CACR1T,SAAU,CAACkV,EAASC,KAExB,2IC/GO,SAASypkC,GAAuBxukC,GACrC,OAAOC,EAAAA,GAAAA,IAAqB,aAAcD,EAC5C,CACA,MACA,IADuBE,EAAAA,GAAsBA,GAAC,aAAc,CAAC,SAAU,oBAAqB,cAAe,cAAe,UAAW,eAAgB,QAAS,uBAAwB,wBAAyB,sBAAuB,yBAA0B,UCD1PC,GAAY,CAAC,QAAS,WAAY,UAAW,aAAc,kBAAmB,gBAAiB,uBAAwB,uBAAwB,qBAAsB,uBAAwB,aAAc,iBAAkB,kBAAmB,eAAgB,KAAM,aAAc,kBAAmB,UAAW,SAAU,OAAQ,YAAa,kBAAmB,cAAe,YAAa,QAAS,QAAS,sBAAuB,mBA2B/a,MAeMsukC,IAAgBpukC,EAAAA,GAAMA,IAACuuiC,GAAQ,CACnC94iC,KAAM,aACNkK,KAAM,SACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOkoiC,QAASv9hC,EAAWmukC,oBAAsB94kC,EAAO+4kC,kBAAmBpukC,EAAW2qK,OAASt1K,EAAOg5kC,aAAcrukC,EAAW6oB,MAAQxzB,EAAOi5kC,YAAY,GAPhJxukC,EASnBmzzB,IAAA,IAAC,MACFl0zB,EAAK,WACLiB,EAAU,KACV6oB,GACDoqyB,EAAA,OAAKhwzB,EAAAA,GAAAA,GAAS,CACb/I,QAAS6E,EAAMmD,MAAQnD,GAAO7E,OAAOsQ,QACrCmlM,cAAe,SACb3vM,EAAWmukC,oBAAsB,CACnCx+3B,cAAe,SACb9mL,GAAQ,CACV8mL,cAAe,QACd3vM,EAAW2qK,OAAS,CACrB,CAAC,uCAAD11K,OAAwCs5kC,GAAe5j6B,QAAU,CAC/DjmJ,IAAK,EACL/B,UAAW,UACX,YAAa,CACXw17B,gBAAiB,WAGrB,CAAC,oCAADlj9B,OAAqCs5kC,GAAe5j6B,QAAU,CAC5D/lJ,OAAQ,EACR/B,aAAc,UACd,YAAa,CACXs17B,gBAAiB,WAGrB,CAAC,sCAADlj9B,OAAuCs5kC,GAAe5j6B,SAAU1nK,EAAAA,GAAAA,GAAS,CAAC,EAAIjD,EAAW6ghC,MAGrF,CACFl8/B,MAAO,EACP/B,YAAa,WALkF,CAC/FiC,KAAM,EACN/B,WAAY,WAIX,CACD1hB,OAAQ,MACRD,MAAO,SACP,YAAa,CACXg38B,gBAAiB,eAGrB,CAAC,qCAADlj9B,OAAsCs5kC,GAAe5j6B,SAAU1nK,EAAAA,GAAAA,GAAS,CAAC,EAAIjD,EAAW6ghC,MAGpF,CACFh8/B,KAAM,EACN/B,WAAY,WALkF,CAC9F6B,MAAO,EACP/B,YAAa,WAIZ,CACDxhB,OAAQ,MACRD,MAAO,SACP,YAAa,CACXg38B,gBAAiB,UAGrB,IACIq2H,IAAiB1ukC,EAAAA,GAAMA,IAAC,MAAO,CACnCvK,KAAM,aACNkK,KAAM,UACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOmV,QAASxK,EAAWgsC,OAAS32C,EAAO22C,MAAOhsC,EAAW2qK,OAASt1K,EAAOo5kC,aAAcp5kC,EAAO,mBAADJ,QAAoBiL,EAAAA,GAAUA,GAACF,EAAWoypB,UAAUz9pB,MAAM,KAAK,MAAO,GAP5JmL,EASpBqzzB,IAAA,IAAC,MACFp0zB,EAAK,WACLiB,GACDmzzB,EAAA,OAAKlwzB,EAAAA,GAAAA,GAAS,CACbme,gBAAiBriB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQuskC,QAAQzihC,IAAKv4C,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQ6F,KAAK,KAAM,KAC7FwU,cAAezd,EAAMmD,MAAQnD,GAAO4d,MAAMH,aAC1Cvc,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQyC,OAAOZ,MAC5CqE,WAAYtJ,EAAM+C,WAAWuG,WAC7B2W,QAAS,UACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,IACnC8e,SAAU,IACV9B,OAAQ,EACRusjC,SAAU,aACV5xkC,WAAYqF,EAAM+C,WAAW0G,kBAC5BxI,EAAW2qK,OAAS,CACrB97K,SAAU,WACVkwB,OAAQ,GACP/e,EAAWgsC,OAAS,CACrBhtB,QAAS,WACT7e,SAAUpB,EAAM+C,WAAWC,QAAQ,IACnCpI,WAAY,GAAF1E,QA7GGxH,EA6GQ,GAAK,GA5GnBP,KAAK+b,MAAc,IAARxb,GAAe,KA4GJ,MAC7BiM,WAAYqF,EAAM+C,WAAWyG,mBAC5B,CACD,CAAC,IAADtT,OAAKs5kC,GAAehxC,OAAM,uCAAsCt6hC,EAAAA,GAAAA,GAAS,CACvEk18B,gBAAiB,gBACfn48B,EAAW6ghC,OAIV59gC,EAAAA,GAAAA,GAAS,CACZ6f,WAAY,QACX9iB,EAAWgsC,OAAS,CACrBlpB,WAAY,UAPS7f,EAAAA,GAAAA,GAAS,CAC9B2f,YAAa,QACZ5iB,EAAWgsC,OAAS,CACrBppB,YAAa,UAMf,CAAC,IAAD3tB,OAAKs5kC,GAAehxC,OAAM,wCAAuCt6hC,EAAAA,GAAAA,GAAS,CACxEk18B,gBAAiB,eACfn48B,EAAW6ghC,OAIV59gC,EAAAA,GAAAA,GAAS,CACZ2f,YAAa,QACZ5iB,EAAWgsC,OAAS,CACrBppB,YAAa,UAPQ3f,EAAAA,GAAAA,GAAS,CAC9B6f,WAAY,QACX9iB,EAAWgsC,OAAS,CACrBlpB,WAAY,UAMd,CAAC,IAAD7tB,OAAKs5kC,GAAehxC,OAAM,sCAAqCt6hC,EAAAA,GAAAA,GAAS,CACtEk18B,gBAAiB,gBACjBt17B,aAAc,QACb7iB,EAAWgsC,OAAS,CACrBnpB,aAAc,SAEhB,CAAC,IAAD5tB,OAAKs5kC,GAAehxC,OAAM,yCAAwCt6hC,EAAAA,GAAAA,GAAS,CACzEk18B,gBAAiB,aACjBx17B,UAAW,QACV3iB,EAAWgsC,OAAS,CACrBrpB,UAAW,WAhJf,IAAel1B,CAkJb,IACIkhlC,IAAe7ukC,EAAAA,GAAMA,IAAC,OAAQ,CAClCvK,KAAM,aACNkK,KAAM,QACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOs1K,OAH1B7qK,EAIlBi0zB,IAAA,IAAC,MACFh1zB,GACDg1zB,EAAA,MAAM,CACLzwyB,SAAU,SACVz0B,SAAU,WACVsS,MAAO,MACPC,OAAQ,SACR2jB,UAAW,aACX9kB,MAAOlB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQuskC,QAAQzihC,IAAKv4C,EAAAA,GAAAA,IAAM3U,EAAMoD,QAAQ6F,KAAK,KAAM,IACnF,YAAa,CACX0kY,QAAS,KACT3tX,OAAQ,OACR1d,QAAS,QACTF,MAAO,OACPC,OAAQ,OACRggB,gBAAiB,eACjBtE,UAAW,iBAEd,IACD,IAAI8xjC,IAAgB,EACpB,MAAMC,GAAiB,IAAI3/jC,GAAAA,EAC3B,IAAI4/jC,GAAiB,CACnBr8kC,EAAG,EACHC,EAAG,GAML,SAASq8kC,GAAoBp08B,EAAS+lzB,GACpC,OAAO,SAAC3w6B,GAAqB,QAAA3Y,EAAAC,UAAA3M,OAAXoU,EAAM,IAAA5K,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAANuH,EAAMvH,EAAA,GAAAF,UAAAE,GAClBmp7B,GACFA,EAAa3w6B,KAAUjR,GAEzB67H,EAAQ5qH,KAAUjR,EACpB,CACF,CAGA,MAyiBA,GAziB6BhJ,EAAAA,YAAiB,SAAiB2M,EAASpM,GACtE,IAAI+J,EAAMwsiC,EAAe/tiC,EAAOsZ,EAAO62jC,EAAmB1iR,EAAO2iR,EAAgB9hR,EAAO+hR,EAAcC,EAAmBxgR,EAAOygR,EAAoBC,EAAuBC,EAAoBlgR,EAAOmgR,EAAqBC,EAAkBz8Q,EAAO08Q,EACpP,MAAMrglC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,gBAEF,MACFo1K,GAAQ,EACRt7K,SAAUmo+B,EAAY,WACtBx49B,EAAa,CAAC,EAAC,gBACf058B,EAAkB,CAAC,EAAC,cACpBg3H,GAAgB,EAAK,qBACrBC,GAAuB,EAAK,qBAC5BC,GAAuB,EACvBzB,mBAAoB0B,GAAyB,EAAK,qBAClDC,GAAuB,EAAK,WAC5BC,EAAa,IAAG,eAChBC,EAAiB,EAAC,gBAClBC,EAAkB,IAAG,aACrBC,GAAe,EACfzkjC,GAAI47/B,EAAM,WACV8oD,EAAa,EAAC,gBACdC,EAAkB,KAAI,QACtB9uG,EAAO,OACPihD,EACA15/B,KAAM25/B,EAAQ,UACdpwX,EAAY,SACZi+a,gBAAiBC,EAAmB,YACpCC,EAAc,CAAC,EAAC,UAChBpmjC,EAAY,CAAC,EAAC,MACd9mB,EAAQ,CAAC,EAAC,MACVi0G,EACA0m3B,oBAAqBwyG,EAA0BjzD,GAAI,gBACnDoB,GACEvvhC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAGzCvQ,EAAwByG,EAAAA,eAAqB0h+B,GAAgBA,GAA4B3z9B,EAAAA,GAAAA,KAAK,OAAQ,CAC1GxU,SAAUmo+B,IAENz49B,EAAQqq8B,KACRy3E,EAAQ3F,MACPu1D,GAAWC,IAAgB56kC,EAAAA,YAC3B66kC,GAAUC,IAAe96kC,EAAAA,SAAe,MACzC+6kC,GAAuB/6kC,EAAAA,QAAa,GACpCq4kC,GAAqB0B,GAA0BK,EAC/CY,IAAa/kjC,EAAAA,GAAUA,KACvBgljC,IAAahljC,EAAAA,GAAUA,KACvBiljC,IAAajljC,EAAAA,GAAUA,KACvBkljC,IAAalljC,EAAAA,GAAUA,MACtB82/B,GAAWC,KAAgBx4/B,EAAAA,GAAaA,GAAC,CAC9CC,WAAYi4/B,EACZpkhC,SAAS,EACT7I,KAAM,UACNk1B,MAAO,SAET,IAAI5B,GAAOg6/B,GAcX,MAAMp3/B,IAAKL,EAAAA,GAAAA,GAAMi8/B,GACX6pD,GAAiBp7kC,EAAAA,SACjBq7kC,IAAuBt+H,EAAAA,GAAgBA,IAAC,UACb1n9B,IAA3B+llC,GAAen6kC,UACjBhL,SAASgkF,KAAKp5D,MAAMqz/B,iBAAmBknE,GAAen6kC,QACtDm6kC,GAAen6kC,aAAU5L,GAE3B8llC,GAAWppjC,OAAO,IAEpB/xB,EAAAA,WAAgB,IAAMq7kC,IAAsB,CAACA,KAC7C,MAAMtvG,GAAa9x9B,IACjB8+jC,GAAehnjC,QACf+mjC,IAAgB,EAKhB9rD,IAAa,GACTP,IAAW15/B,IACb05/B,EAAOxygC,EACT,EAEIiy9B,IAAcnvB,EAAAA,GAAgBA,IAIpC9i8B,IACE8+jC,GAAe19jC,MAAM,IAAMg/jC,GAAY,KACrCvB,IAAgB,CAAK,IAEvB9rD,IAAa,GACTxhD,GAAWz48B,IACby48B,EAAQvx9B,GAEV+gkC,GAAW3/jC,MAAMpS,EAAM0C,YAAYC,SAAS2K,UAAU,KACpDwkkC,GAAqB95kC,SAAU,CAAK,GACpC,IAEEq6kC,GAAkBrhkC,IAClB8gkC,GAAqB95kC,SAA0B,eAAfgZ,EAAM5gB,OAOtCshlC,IACFA,GAAU1qiC,gBAAgB,SAE5BgriC,GAAWlpjC,QACXmpjC,GAAWnpjC,QACPkojC,GAAcnB,IAAiBoB,EACjCe,GAAW5/jC,MAAMy9jC,GAAgBoB,EAAiBD,GAAY,KAC5DluG,GAAW9x9B,EAAM,IAGnB8x9B,GAAW9x9B,GACb,EAEIij8B,GAAmBjj8B,IACvBghkC,GAAWlpjC,QACXmpjC,GAAW7/jC,MAAMg/jC,GAAY,KAC3BnuG,GAAYjy9B,EAAM,GAClB,GAEE,kBACJiB,GACAE,OAAQgh8B,GACRjh8B,QAASgh8B,GACT578B,IAAK878B,KACHC,EAAAA,GAAiBA,MAGd,CAAEi/H,IAA0Bv7kC,EAAAA,UAAe,GAC5Cknf,GAAajte,IACjBmi8B,GAAkBni8B,IACgB,IAA9BiB,GAAkBja,UACpBs6kC,IAAuB,GACvBr+H,GAAiBjj8B,GACnB,EAEIqj8B,GAAcrj8B,IAIb0gkC,IACHC,GAAa3gkC,EAAM49L,eAErBskwB,GAAmBli8B,IACe,IAA9BiB,GAAkBja,UACpBs6kC,IAAuB,GACvBD,GAAgBrhkC,GAClB,EAEIuhkC,GAAmBvhkC,IACvB8gkC,GAAqB95kC,SAAU,EAC/B,MAAMw6kC,EAAgBlilC,EAASD,MAC3BmilC,EAAc7/H,cAChB6/H,EAAc7/H,aAAa3h8B,EAC7B,EAEIkj8B,GAAmBlj8B,IACvBuhkC,GAAiBvhkC,GACjBihkC,GAAWnpjC,QACXipjC,GAAWjpjC,QACXspjC,KACAD,GAAen6kC,QAAUhL,SAASgkF,KAAKp5D,MAAMqz/B,iBAE7Cj+gC,SAASgkF,KAAKp5D,MAAMqz/B,iBAAmB,OACvCinE,GAAW9/jC,MAAM8+jC,GAAiB,KAChClklC,SAASgkF,KAAKp5D,MAAMqz/B,iBAAmBknE,GAAen6kC,QACtDq6kC,GAAgBrhkC,EAAM,GACtB,EAEEmj8B,GAAiBnj8B,IACjB1gB,EAASD,MAAMoi9B,YACjBni9B,EAASD,MAAMoi9B,WAAWzh8B,GAE5BohkC,KACAH,GAAW7/jC,MAAMi/jC,GAAiB,KAChCpuG,GAAYjy9B,EAAM,GAClB,EAEJja,EAAAA,WAAgB,KACd,GAAK+yB,GAcL,OADA98B,SAASglB,iBAAiB,UAAWjB,GAC9B,KACL/jB,SAASu9C,oBAAoB,UAAWx5B,EAAc,EARxD,SAASA,EAAcg34B,GAEG,WAApBA,EAAYv75B,KAAwC,QAApBu75B,EAAYv75B,KAC9Cy2+B,GAAYl7E,EAEhB,CAIC,GACA,CAACk7E,GAAan58B,KACjB,MAAM6q7B,IAAY3o7B,EAAAA,GAAUA,GAACut8B,GAAmBjp+B,GAAW8i9B,GAAiBu+H,GAAcr6kC,GAIrFihH,GAAmB,IAAVA,IACZzuF,IAAO,GAET,MAAMqhhC,GAAYp0iC,EAAAA,SAcZ07kC,GAAkB,CAAC,EACnBC,GAAiC,kBAAVn69B,EACzBo49B,GACF8B,GAAgBl69B,MAASzuF,KAAQ4ojC,IAAkB7B,EAA+B,KAARt49B,EAC1Ek69B,GAAgB,oBAAsB3ojC,GAAO4C,GAAK,OAElD+ljC,GAAgB,cAAgBC,GAAgBn69B,EAAQ,KACxDk69B,GAAgB,mBAAqB3ojC,KAAS4ojC,GAAgBhmjC,GAAK,MAErE,MAAM8ljC,IAAgBtukC,EAAAA,GAAAA,GAAS,CAAC,EAAGuukC,GAAiBzukC,EAAO1T,EAASD,MAAO,CACzEwO,WAAW8F,EAAAA,GAAIA,GAACX,EAAMnF,UAAWvO,EAASD,MAAMwO,WAChD8z8B,aAAc4/H,GACdj7kC,IAAKq98B,IACJw8H,EAAe,CAChBwB,YA3BsB3hkC,IACtB,MAAMwhkC,EAAgBlilC,EAASD,MAC3BmilC,EAAcG,aAChBH,EAAcG,YAAY3hkC,GAE5B++jC,GAAiB,CACfr8kC,EAAGsd,EAAMw7B,QACT74C,EAAGqd,EAAMy7B,SAEP0+/B,GAAUnziC,SACZmziC,GAAUnziC,QAAQ6xC,QACpB,GAiBE,CAAC,GAWL,MAAM+oiC,GAA8B,CAAC,EAChC7B,IACHyB,GAAc7/H,aAAeuB,GAC7Bs+H,GAAc//H,WAAa0B,IAExB08H,IACH2B,GAAcK,YAAc7C,GAAoBqC,GAAiBG,GAAcK,aAC/EL,GAAcjgI,aAAey9H,GAAoB/7H,GAAkBu+H,GAAcjgI,cAC5E68H,KACHwD,GAA4BC,YAAcR,GAC1CO,GAA4BrgI,aAAe0B,KAG1C28H,IACH4B,GAActgkC,QAAU89jC,GAAoB37H,GAAam+H,GAActgkC,SACvEsgkC,GAAcrgkC,OAAS69jC,GAAoB/xlB,GAAYu0lB,GAAcrgkC,QAChEi9jC,KACHwD,GAA4B1gkC,QAAUmi8B,GACtCu+H,GAA4BzgkC,OAAS8re,KAQzC,MAAMitjB,GAAgBn0iC,EAAAA,SAAc,KAClC,IAAI+7kC,EACJ,IAAIC,EAAmB,CAAC,CACtBv8kC,KAAM,QACNi2I,QAAShK,QAAQmv8B,IACjBxmlC,QAAS,CACP8G,QAAS0/kC,GACT3xjC,QAAS,KAMb,OAH2D,OAAtD6yjC,EAAwBtB,EAAYtmC,gBAA0B4nC,EAAsBn0C,YACvFo0C,EAAmBA,EAAiB78kC,OAAOs7kC,EAAYtmC,cAAcvM,aAEhEz6hC,EAAAA,GAAAA,GAAS,CAAC,EAAGstkC,EAAYtmC,cAAe,CAC7CvM,UAAWo0C,GACX,GACD,CAACnB,GAAUJ,IACRvwkC,IAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCyxhC,QACAl22B,QACAwj6B,sBACA/7a,YACAk+a,sBACAtkiC,MAAO6kiC,GAAqB95kC,UAExBqM,GAlfkBpD,KACxB,MAAM,QACJoD,EAAO,mBACP+qkC,EAAkB,MAClBxj6B,EAAK,MACL3+H,EAAK,UACLomnB,GACEpypB,EACEqD,EAAQ,CACZk6hC,OAAQ,CAAC,UAAW4wC,GAAsB,oBAAqBxj6B,GAAS,eACxEngK,QAAS,CAAC,UAAWmgK,GAAS,eAAgB3+H,GAAS,QAAS,mBAAF/2C,QAAqBiL,EAAAA,GAAUA,GAACkypB,EAAUz9pB,MAAM,KAAK,MACnHg2K,MAAO,CAAC,UAEV,OAAOrnK,EAAAA,GAAcA,GAACD,EAAO4qkC,GAAwB7qkC,EAAQ,EAqe7CG,CAAkBvD,IAC5BqwkC,GAAyG,OAAtFjwkC,EAAyC,OAAjCwsiC,EAAgBvpiC,EAAMk6hC,QAAkBqP,EAAgB5tiC,EAAWqviC,QAAkBjuiC,EAAO8tkC,GACvHlwG,GAAkL,OAA3Jn/9B,EAAgH,OAAvGsZ,EAAkD,OAAzC62jC,EAAoB3rkC,EAAM7B,YAAsBwtkC,EAAoBhwkC,EAAWu89B,YAAsBpj9B,EAAQq4jC,GAAmC3xkC,EAAQ0+gC,GACjMw0D,GAA+G,OAA3FzlR,EAA4C,OAAnC2iR,EAAiB5rkC,EAAMmH,SAAmBykkC,EAAiBjwkC,EAAW0vkC,SAAmBpiR,EAAQkiR,GAC9HwD,GAAqG,OAAnF7kR,EAAwC,OAA/B+hR,EAAe7rkC,EAAMsnK,OAAiBuk6B,EAAelwkC,EAAWizkC,OAAiB9kR,EAAQwhR,GACpHrgC,GAAcr3F,GAAiBo5H,IAAiBptkC,EAAAA,GAAAA,GAAS,CAAC,EAAGstkC,EAAuD,OAAzCpB,EAAoBhljC,EAAUozgC,QAAkB4xC,EAAoBz2H,EAAgB6kF,OAAQ,CAC3K3/hC,WAAW8F,EAAAA,GAAIA,GAACN,GAAQm6hC,OAAuB,MAAfgzC,OAAsB,EAASA,EAAY3ykC,UAAsH,OAA1G+wzB,EAAmD,OAA1CygR,EAAqBjljC,EAAUozgC,QAAkB6xC,EAAqB12H,EAAgB6kF,aAAkB,EAAS5uO,EAAM/wzB,aACrNoC,IACEq+9B,GAAkBpnB,GAAiB+mB,IAAqB/69B,EAAAA,GAAAA,GAAS,CAAC,EAAG07gC,EAAmE,OAAjD0wD,EAAwBlljC,EAAU3oB,YAAsB6tkC,EAAwB32H,EAAgBl38B,YAAaxB,IACpMkykC,GAAej7H,GAAiB86H,IAAkB9ukC,EAAAA,GAAAA,GAAS,CAAC,EAA+C,OAA3CqskC,EAAqBnljC,EAAU3f,SAAmB8kkC,EAAqB52H,EAAgBlu8B,QAAS,CACpK5M,WAAW8F,EAAAA,GAAIA,GAACN,GAAQoH,QAAwH,OAA9G4kzB,EAAqD,OAA5CmgR,EAAsBpljC,EAAU3f,SAAmB+kkC,EAAsB72H,EAAgBlu8B,cAAmB,EAAS4kzB,EAAMxxzB,aACpKoC,IACEmykC,GAAoBl7H,GAAiB+6H,IAAgB/ukC,EAAAA,GAAAA,GAAS,CAAC,EAA2C,OAAvCuskC,EAAmBrljC,EAAUwgJ,OAAiB6k6B,EAAmB92H,EAAgB/tyB,MAAO,CAC/J/sK,WAAW8F,EAAAA,GAAIA,GAACN,GAAQunK,MAA8G,OAAtGoopB,EAAiD,OAAxC08Q,EAAoBtljC,EAAUwgJ,OAAiB8k6B,EAAoB/2H,EAAgB/tyB,YAAiB,EAASoopB,EAAMn1zB,aAC1JoC,IACJ,OAAoBwD,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CACxCzG,SAAU,CAAcyG,EAAAA,aAAmBzG,EAAUkilC,KAA6B1tkC,EAAAA,GAAAA,KAAKwskC,IAAiBptkC,EAAAA,GAAAA,GAAS,CAC/GQ,GAA2B,MAAvB6skC,EAA8BA,EAAsBjiC,GACxDj8Y,UAAWA,EACX2rX,SAAUmyD,EAAe,CACvBtkiC,sBAAuBA,KAAA,CACrBlnB,IAAKoqjC,GAAep8kC,EACpBmyB,KAAMiqjC,GAAer8kC,EACrBkyB,MAAOmqjC,GAAer8kC,EACtBmyB,OAAQkqjC,GAAep8kC,EACvByO,MAAO,EACPC,OAAQ,KAERqvkC,GACJvmC,UAAWA,GACXrhhC,OAAM4njC,IAAY5njC,GAClB4C,GAAIA,GACJjqB,YAAY,GACXmwkC,GAA6BrjC,GAAa,CAC3CrE,cAAeA,GACf56iC,SAAU2k0B,IAAA,IACR2qN,gBAAiByzD,GAClBp+Q,EAAA,OAAkBnwzB,EAAAA,GAAAA,KAAKm69B,IAAqB/69B,EAAAA,GAAAA,GAAS,CACpDskB,QAASxoB,EAAM0C,YAAYC,SAASC,SACnCywkC,EAAsB/zG,GAAiB,CACxChv+B,UAAuBmU,EAAAA,GAAAA,MAAMuukC,IAAkB9ukC,EAAAA,GAAAA,GAAS,CAAC,EAAGivkC,GAAc,CACxE7ilC,SAAU,CAACioH,EAAOqzD,GAAqB9mK,EAAAA,GAAAA,KAAKmukC,IAAgB/ukC,EAAAA,GAAAA,GAAS,CAAC,EAAGkvkC,GAAmB,CAC1F97kC,IAAKu6kC,MACD,WAEP,OAGT,ICziBe,SAASyB,KACtB,MAAM/pI,EAAkBE,MACjB8pI,EAAcC,GAAmBz8kC,EAAAA,SAA8B,OAChE,SAAEm1B,GAAao96B,KACf/jJ,EAAOtmzB,EAAQ,KACf6t7B,EAAWR,MACVmnJ,EAAWC,GAAgB38kC,EAAAA,UAAe,IAC3C,UAAEom9B,GAAcE,KAEhBnsiB,EADWi7gB,KACYj9yB,SAE7BxnC,QAAQ53D,IAAI,0BAA2Bqt6B,GAEvCpm9B,EAAAA,WAAgB,KACdy8kC,EAAgBtiqB,EAAY,GAC3B,CAACA,IAoBJ,OACEzsa,EAAAA,GAAAA,MAACi58B,GAAG,CACF7+8B,UAAU,UACVmO,GAAI,CACFrH,WAAY,qDACZgukC,eAAgB,YAChB5w8B,UAAW,2BACX3gI,MAAOqxkC,EAAY,OAAS,QAC5B3xjC,SAAU,QACVzV,UAAW,QACX/J,QAAS,OACTsiB,cAAe,SACf3E,QAAS,OACT8F,UAAW,+BACX7kB,MAAO,QACPuB,WAAY,mBACZnS,SAAA,EAGFwU,EAAAA,GAAAA,KAAC448B,GAAG,CACF1w8B,GAAI,CACFld,SAAU,WACV61B,IAAK,MACLG,KAAM2tjC,EAAY,OAAS,QAC3B11jC,UAAW,wBACX5iB,OAAQ,GACRknB,gBAAiB,QACjB5E,aAAc,MACdsI,UAAW,iCACX3jB,MAAO,OACPC,OAAQ,OACRC,QAAS,OACTyiB,WAAY,SACZD,eAAgB,SAChBriB,WAAY,kBACZnS,UAEFwU,EAAAA,GAAAA,KAAC6qkC,GAAO,CAACp39B,MAAOk79B,EAAY,SAAW,WAAWnjlC,UAChDwU,EAAAA,GAAAA,KAACug+B,GAAU,CACTrqrB,QAhDa44xB,KACrBF,GAAcjjlC,IAAUA,GAAK,EAgDrBuc,GAAI,CACF9L,MAAO,QACP+e,QAAS,EACT,UAAW,CACToC,gBAAiB,YAEnB/xB,SAEDmjlC,GACC3ukC,EAAAA,GAAAA,KAAC+ukC,GAAiBA,EAAI,CACpB7mkC,GAAI,CACF5L,SAAU,OACVqB,WAAY,0BAIhBqC,EAAAA,GAAAA,KAACgvkC,GAAgBA,EAAI,CACnB9mkC,GAAI,CACF5L,SAAU,OACVqB,WAAY,gCASxBqC,EAAAA,GAAAA,KAAC448B,GAAG,CACF7+8B,UAAU,eACVmO,GAAI,CACFkZ,UAAW,SACX1C,GAAI,EACJ3oB,QAAS,EACT4H,WAAY,oBACZH,QAAS,OACTwiB,eAAgB,SAChBC,WAAY,SACZ9E,QAAS,UACT3vB,UAEFwU,EAAAA,GAAAA,KAAC6qkC,GAAO,CAACp39B,MAAM,GAAEjoH,UACfwU,EAAAA,GAAAA,KAAA,OACEmxF,IAAKsvtB,EACL/3V,IAAI,WACJ51c,MAAO,CACLnb,OAAQ,UACRqlB,SAAU,OACVzf,OAAQ,OACRD,MAAOqxkC,EAAY,OAAS,MAC5Bh2jC,aAAc,MACdhb,WAAY,mBAEdu4S,QAASA,IAAM9vR,OAAOpB,KAAK,yCAA0C,gBAM1Ey/6B,GAAmB4T,GAClB148B,EAAAA,GAAAA,MAAAwy9B,GAAAA,SAAA,CAAA3m+B,SAAA,EACEwU,EAAAA,GAAAA,KAAC448B,GAAG,CAAC7+8B,UAAU,aAAYvO,UACzBwU,EAAAA,GAAAA,KAACo5gC,GAAI,CAACv6gC,UAAU,MAAMqJ,GAAI,CAAE5K,MAAO,QAAS9R,SACzC,CACC,CACEojB,MAAO,aACPlN,MAAM1B,EAAAA,GAAAA,KAACivkC,GAASA,EAAI,IACpBrnjC,GAAI,YAEJ5d,KAAM,KAER,CACE4E,MAAO,gBACPlN,MAAM1B,EAAAA,GAAAA,KAACkvkC,GAAWA,EAAI,IACtBtnjC,GAAI,YAEJ5d,KAAM,gBAER,CACE4E,MAAO,oBACPlN,MAAM1B,EAAAA,GAAAA,KAACmvkC,GAAOA,EAAI,IAElBvnjC,GAAI,UACJ5d,KAAM,qBACN,CACA4E,MAAO,aACPlN,MAAM1B,EAAAA,GAAAA,KAACovkC,GAAKA,EAAI,IAChBC,SAAU,QACVznjC,GAAI,WACJ5d,KAAM,aAER,CACE4E,MAAO,mBACPlN,MAAM1B,EAAAA,GAAAA,KAACsvkC,GAAgBA,EAAI,IAC3B1njC,GAAI,SAEJ5d,KAAM,qBAGR,CACE4E,MAAO,cACPlN,MAAM1B,EAAAA,GAAAA,KAACuvkC,GAAkBA,EAAI,IAC7B3njC,GAAI,QACJynjC,SAAU,QACVrlkC,KAAM,UAER,CACE4E,MAAO,OACPlN,MAAM1B,EAAAA,GAAAA,KAACwvkC,GAAWA,EAAI,IAEtB5njC,GAAI,OACJ5d,KAAM,SAER,CACE4E,MAAO,QACPlN,MAAM1B,EAAAA,GAAAA,KAACyvkC,GAAIA,EAAI,IACf7njC,GAAI,QAEJ5d,KAAM,qFAERla,KAAK0mB,KAAYA,EAAK64jC,UAA8B,QAAlBh3H,EAAUt48B,QAC5CC,EAAAA,GAAAA,KAAC6qkC,GAAO,CAENp39B,MAAOk79B,EAAYn4jC,EAAK5H,MAAQ,GAChC2/oB,UAAU,QAAO/iqB,UAEjBmU,EAAAA,GAAAA,MAAC+vkC,GAAc,CACbx5xB,QAASA,KAAM0puB,OAAgBppgC,EAAKoR,GAzLf5d,EAyLmBwM,EAAKxM,KAxL7D0kkC,EAAgB1kkC,QACR,OAAJA,QAAI,IAAJA,GAAAA,EAAM2yQ,WAAW,QACnBv2P,OAAOpB,KAAKhb,EAAM,UAElBg+6B,EAASh+6B,IALW41gC,IAAe51gC,CAyL8B,EACnDjQ,UAAS,aAAA3I,OACPq9kC,IAAiBj4jC,EAAKxM,KAAO,mBAAqB,IAEpD9B,GAAI,CACFyQ,aAAc,IACd+F,GAAI,EACJ7d,WACE4tkC,IAAiBj4jC,EAAKxM,KAClB,qDACA,cACNiX,UAAWwtjC,IAAiBj4jC,EAAKxM,KAAO,gCAAkC,OAC1EiP,UAAWw1jC,IAAiBj4jC,EAAKxM,KAAO,cAAgB,WACxDrM,WAAY,gBACZ,UAAW,CAAE4f,gBAAiB,uBAE9ByC,eAAgB2ujC,EAAY,SAAW,aACvCvykC,OAAwBoa,EAAKxM,KAAO,SACpCnU,WAAY44kC,IAAiBj4jC,EAAKxM,KAAO,OAAS,UAClDxe,SAAA,EAEFwU,EAAAA,GAAAA,KAAC2vkC,GAAY,CACXznkC,GAAI,CACF9L,OAAwBoa,EAAKxM,KAAO,SACpCoT,SAAU,OACV9gB,SAAU,UACV9Q,SAEDgrB,EAAK9U,QAENitkC,IACA3ukC,EAAAA,GAAAA,KAAC4vkC,GAAY,CACXlvkC,QAAS8V,EAAK5H,MACd1G,GAAI,CACFyW,GAAI,EACJriB,SAAU,UACVvG,QAAS44kC,EAAY,EAAI,EACzB11jC,UAAW01jC,EACP,oBACA,gBACJhxkC,WAAY,wCACZL,MAAOqxkC,EAAY,EAAI,OACvBlvjC,SAAU,SACV,wBAAyB,CACvBG,WAAY+ujC,EAAY,SAAW,iBAjDxCn4jC,EAAKoR,WA6DlB5nB,EAAAA,GAAAA,KAAC448B,GAAG,CAAC1w8B,GAAI,CAAE4W,UAAW,QAAStzB,UAC7BwU,EAAAA,GAAAA,KAAC6qkC,GAAO,CAACp39B,MAAM,SAAS86iB,UAAU,QAAO/iqB,UACvCmU,EAAAA,GAAAA,MAAC+vkC,GAAc,CACb31kC,UAAU,gBACVgz8B,eAAa,EACb72pB,QAzOK25xB,KACjB7nJ,EAAS,KACT5g6B,EAASqu6B,aAAa,EAwOVvt7B,GAAI,CACFyQ,aAAc,IACd,UAAW,CAAE4E,gBAAiB,uBAC9ByC,eAAgB2ujC,EAAY,SAAW,cACvCnjlC,SAAA,EAEFwU,EAAAA,GAAAA,KAAC2vkC,GAAY,CACXznkC,GAAI,CACFkV,SAAU,OACV5f,QAAS,OACTwiB,eAAgB,SAChB5jB,MAAO,SACP5Q,UAEFwU,EAAAA,GAAAA,KAAC8vkC,GAASA,EAAI,CAAC5nkC,GAAI,CAAE5L,SAAU,aAE/BqykC,IACA3ukC,EAAAA,GAAAA,KAAC4vkC,GAAY,CACXlvkC,QAAQ,SACRwH,GAAI,CACF5L,SAAU,UACVvG,QAAS44kC,EAAY,EAAI,EACzB11jC,UAAW01jC,EACP,oBACA,gBACJhxkC,WAAY,wCACZL,MAAOqxkC,EAAY,EAAI,OACvBlvjC,SAAU,SACV,wBAAyB,CACvBG,WAAY+ujC,EAAY,SAAW,wBAWnD3ukC,EAAAA,GAAAA,KAAA,OAAKjG,UAAU,cAIvB,CC1UO,SAASg2kC,GAAuBn0kC,GACrC,OAAOC,EAAAA,GAAAA,IAAqB,aAAcD,EAC5C,EACuBE,EAAAA,GAAsBA,GAAC,aAAc,CAAC,OAAQ,aAAc,WAAY,YAAa,qBAA5G,MCDMk0kC,GAA8B/9kC,EAAAA,cAAoB,CAAC,GAYzD,YCZMg+kC,GAA2Bh+kC,EAAAA,cAAoB,CAAC,GAYtD,YCdO,SAASi+kC,GAA6Bt0kC,GAC3C,OAAOC,EAAAA,GAAAA,IAAqB,mBAAoBD,EAClD,EAC6BE,EAAAA,GAAsBA,GAAC,mBAAoB,CAAC,OAAQ,aAAc,WAAY,mBAAoB,SAAU,YAAa,WAAY,OAAQ,iBAAkB,iBAA5L,MCDMC,GAAY,CAAC,aA2Bbo0kC,IAAoBl0kC,EAAAA,GAAMA,IAAC,MAAO,CACtCvK,KAAM,mBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAW48J,aAAc58J,EAAWi0kC,kBAAoB5+kC,EAAO4+kC,iBAAkBj0kC,EAAWyoB,WAAapzB,EAAOozB,UAAU,GAPhI3oB,EASvBM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbzK,KAAM,YACsB,aAA3BwH,EAAW48J,aAA8B,CAC1C95I,WAAY,IACX9iB,EAAWi0kC,kBAAoB,CAChCpllC,SAAU,WACV61B,IAAK,GACLG,KAAM,oBACNF,MAAO,oBACP,IACIuvjC,IAAoBp0kC,EAAAA,GAAMA,IAAC,OAAQ,CACvCvK,KAAM,mBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAO1G,KAAM0G,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAW48J,eAAgB,GAPnD98J,EASvBjB,IAGG,IAHF,WACFmB,EAAU,MACVjB,GACDF,EACC,MAAMmhB,EAAqC,UAAvBjhB,EAAMoD,QAAQgE,KAAmBpH,EAAMoD,QAAQ6F,KAAK,KAAOjJ,EAAMoD,QAAQ6F,KAAK,KAClG,OAAO/E,EAAAA,GAAAA,GAAS,CACd5B,QAAS,QACT2e,YAAajhB,EAAMmD,KAAOnD,EAAMmD,KAAKC,QAAQgykC,cAAcx0jC,OAASK,GACxC,eAA3BhgB,EAAW48J,aAAgC,CAC5Cy9yB,eAAgB,QAChBs0B,eAAgB,GACY,aAA3B3u+B,EAAW48J,aAA8B,CAC1C09yB,gBAAiB,QACjBs0B,gBAAiB,EACjBxj+B,UAAW,IACX,IAyDJ,GAvDmCtV,EAAAA,YAAiB,SAAuB2M,EAASpM,GAClF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,sBAEF,UACFqI,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,iBACJq0kC,EAAgB,YAChBr36B,EAAc,cACZ9mK,EAAAA,WAAiB+9kC,KACf,OACJvxkC,EAAM,SACNC,EAAQ,UACRkmB,GACE3yB,EAAAA,WAAiBg+kC,IACf9zkC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6klC,mBACAr36B,cACAt6J,SACAmmB,YACAlmB,aAEIa,EAvFkBpD,KACxB,MAAM,QACJoD,EAAO,YACPw5J,EAAW,iBACXq36B,EAAgB,OAChB3xkC,EAAM,UACNmmB,EAAS,SACTlmB,GACEvC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ2tK,EAAaq36B,GAAoB,mBAAoB3xkC,GAAU,SAAUmmB,GAAa,YAAalmB,GAAY,YAC9H5T,KAAM,CAAC,OAAQ,OAAFsG,QAASiL,EAAAA,GAAUA,GAAC08J,MAEnC,OAAOt5J,EAAAA,GAAcA,GAACD,EAAO0wkC,GAA8B3wkC,EAAQ,EA0EnDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKmwkC,IAAmB/wkC,EAAAA,GAAAA,GAAS,CACnDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,EACL2J,WAAYA,GACX+C,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKqwkC,GAAmB,CAC7Ct2kC,UAAWwF,EAAQzU,KACnBqR,WAAYA,MAGlB,IC9GMJ,GAAY,CAAC,aAAc,mBAAoB,WAAY,YAAa,YAAa,YAAa,YAAa,eAwB/Gw0kC,IAAct0kC,EAAAA,GAAMA,IAAC,MAAO,CAChCvK,KAAM,aACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAW48J,aAAc58J,EAAWi0kC,kBAAoB5+kC,EAAO4+kC,iBAAkBj0kC,EAAWq0kC,WAAah/kC,EAAOg/kC,UAAU,GAPtIv0kC,EASjBM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,QACmB,eAA3BrB,EAAW48J,aAAgC,CAC5Cj5I,cAAe,MACfG,WAAY,UACgB,aAA3B9jB,EAAW48J,aAA8B,CAC1Cj5I,cAAe,UACd3jB,EAAWi0kC,kBAAoB,CAChCnwjC,WAAY,cACZ,IACIwwjC,IAAgCzwkC,EAAAA,GAAAA,KAAKswkC,GAAe,CAAC,GAwG3D,GAvG6Br+kC,EAAAA,YAAiB,SAAiB2M,EAASpM,GACtE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,gBAEF,WACFg/kC,EAAa,EAAC,iBACdN,GAAmB,EAAK,SACxB5klC,EAAQ,UACRuO,EAAS,UACT8E,EAAY,MAAK,UACjBsuU,EAAYsjwB,GAAgB,UAC5BD,GAAY,EAAK,YACjBz36B,EAAc,cACZxtK,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCillC,YACAJ,mBACAr36B,cACAl6J,cAEIU,EAxDkBpD,KACxB,MAAM,YACJ48J,EAAW,UACXy36B,EAAS,iBACTJ,EAAgB,QAChB7wkC,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ2tK,EAAay36B,GAAa,YAAaJ,GAAoB,qBAE5E,OAAO3wkC,EAAAA,GAAcA,GAACD,EAAOuwkC,GAAwBxwkC,EAAQ,EA8C7CG,CAAkBvD,GAC5BwjhC,EAAgB1thC,EAAAA,SAAe+tb,QAAQx0b,GAAUqnB,OAAO8qH,SACxDr/D,EAAQqh9B,EAAc7vhC,KAAI,CAACqoB,EAAM/tB,IACjB6H,EAAAA,aAAmBkmB,GAAM/Y,EAAAA,GAAAA,GAAS,CACpDhV,QACA+tC,KAAM/tC,EAAQ,IAAMu1hC,EAAc94hC,QACjCsxB,EAAK5sB,UAEJ+48B,EAAery8B,EAAAA,SAAc,KAAM,CACvCy+kC,aACAN,mBACAjjwB,YACAqjwB,YACAz36B,iBACE,CAAC236B,EAAYN,EAAkBjjwB,EAAWqjwB,EAAWz36B,IACzD,OAAoB/4J,EAAAA,GAAAA,KAAKgwkC,GAAe59kC,SAAU,CAChDxI,MAAO068B,EACP948B,UAAuBwU,EAAAA,GAAAA,KAAKuwkC,IAAanxkC,EAAAA,GAAAA,GAAS,CAChDQ,GAAIf,EACJ1C,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,GACJ0M,EAAO,CACR1T,SAAU8yE,MAGhB,IChGO,SAASqygC,GAAoB/0kC,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,EACoBE,EAAAA,GAAsBA,GAAC,UAAW,CAAC,OAAQ,aAAc,WAAY,mBAAoB,cAA7G,MCDMC,GAAY,CAAC,SAAU,WAAY,YAAa,YAAa,YAAa,WAAY,WAAY,QAAS,QAyB3G60kC,IAAW30kC,EAAAA,GAAMA,IAAC,MAAO,CAC7BvK,KAAM,UACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAW48J,aAAc58J,EAAWi0kC,kBAAoB5+kC,EAAO4+kC,iBAAkBj0kC,EAAWyoB,WAAapzB,EAAOozB,UAAU,GAPzI3oB,EASdM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CAAC,EAA8B,eAA3BjD,EAAW48J,aAAgC,CAC5D96I,YAAa,EACbF,aAAc,GACb5hB,EAAWi0kC,kBAAoB,CAChCz7kC,KAAM,EACN3J,SAAU,YACV,IA0HF,GAzH0BiH,EAAAA,YAAiB,SAAc2M,EAASpM,GAChE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,aAGJ+M,OAAQoykC,EAAU,SAClBrllC,EAAQ,UACRuO,EAAS,UACT8E,EAAY,MACZ+lB,UAAWksjC,EACXpykC,SAAUqykC,EAAY,SACtBlsjC,GAAW,EAAK,MAChBz6B,EAAK,KACL+tC,GACE5sC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,WACJ20kC,EAAU,UACVvjwB,EAAS,iBACTijwB,EAAgB,YAChBr36B,EAAW,UACXy36B,GACEv+kC,EAAAA,WAAiB+9kC,IACrB,IAAKvxkC,GAAS,EAAOmmB,GAAY,EAAOlmB,GAAW,GAAS,CAACmykC,EAAYC,EAAeC,GACpFL,IAAetmlC,EACjBqU,OAAwBnX,IAAfuplC,GAA2BA,GAC1BL,GAAaE,EAAatmlC,EACpCw6B,OAA8Bt9B,IAAlBwplC,GAA8BA,GAChCN,GAAaE,EAAatmlC,IACpCsU,OAA4BpX,IAAjByplC,GAA6BA,GAE1C,MAAMzsI,EAAery8B,EAAAA,SAAc,KAAM,CACvC7H,QACA+tC,OACAtT,WACAnjB,KAAMtX,EAAQ,EACdqU,SACAmmB,YACAlmB,cACE,CAACtU,EAAO+tC,EAAMtT,EAAUpmB,EAAQmmB,EAAWlmB,IACzCvC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCkT,SACAs6J,cACAq36B,mBACAxrjC,YACAlmB,WACAmmB,WACAhmB,cAEIU,EAhFkBpD,KACxB,MAAM,QACJoD,EAAO,YACPw5J,EAAW,iBACXq36B,EAAgB,UAChBxrjC,GACEzoB,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ2tK,EAAaq36B,GAAoB,mBAAoBxrjC,GAAa,cAEnF,OAAOnlB,EAAAA,GAAcA,GAACD,EAAOmxkC,GAAqBpxkC,EAAQ,EAsE1CG,CAAkBvD,GAC5B60kC,GAA2BrxkC,EAAAA,GAAAA,MAAMixkC,IAAUxxkC,EAAAA,GAAAA,GAAS,CACxDQ,GAAIf,EACJ9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,EACL2J,WAAYA,GACX+C,EAAO,CACR1T,SAAU,CAAC2hV,GAAaijwB,GAA8B,IAAVhmlC,EAAc+iV,EAAY,KAAM3hV,MAE9E,OAAoBwU,EAAAA,GAAAA,KAAKiwkC,GAAY79kC,SAAU,CAC7CxI,MAAO068B,EACP948B,SAAU2hV,IAAcijwB,GAA8B,IAAVhmlC,GAA2BuV,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CAC3FzG,SAAU,CAAC2hV,EAAW6jwB,KACnBA,GAET,ICvGA,IAAen2kC,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,2FACD,eCFJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,uDACD,0BCTG,SAASw2kC,GAAwBr1kC,GACtC,OAAOC,EAAAA,GAAAA,IAAqB,cAAeD,EAC7C,CACA,MACA,IADwBE,EAAAA,GAAsBA,GAAC,cAAe,CAAC,OAAQ,SAAU,YAAa,QAAS,SCDvG,IAAIyjjB,GACJ,MAAMxjjB,GAAY,CAAC,SAAU,YAAa,YAAa,QAAS,QA0B1Dm1kC,IAAej1kC,EAAAA,GAAMA,IAAC0C,GAAOA,EAAE,CACnCjN,KAAM,cACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAH1B6Q,EAIlBM,IAAA,IAAC,MACFrB,GACDqB,EAAA,MAAM,CACLiB,QAAS,QACTG,WAAYzC,EAAM0C,YAAY9L,OAAO,QAAS,CAC5C+L,SAAU3C,EAAM0C,YAAYC,SAAS2K,WAEvCpM,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAK/B,SAC1C,CAAC,KAADtN,OAAM+/kC,GAAgBvsjC,YAAc,CAClCxoB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,MAE/C,CAAC,KAADnN,OAAM+/kC,GAAgB1ykC,SAAW,CAC/BrC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,MAE/C,CAAC,KAADnN,OAAM+/kC,GAAgBvukC,QAAU,CAC9BxG,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,MAE9C,IACK6ykC,IAAen1kC,EAAAA,GAAMA,IAAC,OAAQ,CAClCvK,KAAM,cACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOiP,MAH1BxE,EAIlBjB,IAAA,IAAC,MACFE,GACDF,EAAA,MAAM,CACLyC,MAAOvC,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC5C1H,SAAUpB,EAAM+C,WAAW+H,QAAQ1J,SACnCkI,WAAYtJ,EAAM+C,WAAWuG,WAC9B,IAiGD,GAhG8BvS,EAAAA,YAAiB,SAAkB2M,EAASpM,GACxE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,iBAEF,OACF+M,GAAS,EACT1E,UAAWs3kC,EAAa,UACxBzsjC,GAAY,EAAK,MACjBhiB,GAAQ,EAAK,KACblB,GACEnW,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCkT,SACAmmB,YACAhiB,UAEIrD,EAhEkBpD,KACxB,MAAM,QACJoD,EAAO,OACPd,EAAM,UACNmmB,EAAS,MACThiB,GACEzG,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQqT,GAAU,SAAUmmB,GAAa,YAAahiB,GAAS,SACtEnC,KAAM,CAAC,SAET,OAAOhB,EAAAA,GAAcA,GAACD,EAAOyxkC,GAAyB1xkC,EAAQ,EAqD9CG,CAAkBvD,GAClC,GAAoB,kBAATuF,GAAqC,kBAATA,EAAmB,CACxD,MAAM3H,GAAY8F,EAAAA,GAAIA,GAACwxkC,EAAe9xkC,EAAQnU,MAC9C,OAAIwX,GACkB5C,EAAAA,GAAAA,KAAKkxkC,IAAc9xkC,EAAAA,GAAAA,GAAS,CAC9CQ,GAAIg97B,GACJ7i8B,UAAWA,EACXvH,IAAKA,EACL2J,WAAYA,GACX+C,IAED0lB,GACkB5kB,EAAAA,GAAAA,KAAKkxkC,IAAc9xkC,EAAAA,GAAAA,GAAS,CAC9CQ,GAAI0xkC,GACJv3kC,UAAWA,EACXvH,IAAKA,EACL2J,WAAYA,GACX+C,KAEeS,EAAAA,GAAAA,MAAMuxkC,IAAc9xkC,EAAAA,GAAAA,GAAS,CAC/CrF,UAAWA,EACXvH,IAAKA,EACL2J,WAAYA,GACX+C,EAAO,CACR1T,SAAU,CAAC+zjB,KAAYA,IAAuBv/iB,EAAAA,GAAAA,KAAK,SAAU,CAC3DqvC,GAAI,KACJC,GAAI,KACJz6B,EAAG,SACa7U,EAAAA,GAAAA,KAAKoxkC,GAAc,CACnCr3kC,UAAWwF,EAAQkB,KACnB7R,EAAG,KACHC,EAAG,KACHotP,WAAY,SACZs11B,iBAAkB,UAClBp1kC,WAAYA,EACZ3Q,SAAUkW,OAGhB,CACA,OAAOA,CACT,ICxHO,SAAS8vkC,GAAyB51kC,GACvC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,CACA,MACA,IADyBE,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,OAAQ,aAAc,WAAY,QAAS,SAAU,YAAa,QAAS,WAAY,gBAAiB,mBAAoB,mBCDvLC,GAAY,CAAC,WAAY,YAAa,kBAAmB,QAAS,OAAQ,WAAY,YAAa,oBAAqB,iBA+BxH01kC,IAAgBx1kC,EAAAA,GAAMA,IAAC,OAAQ,CACnCvK,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAW48J,aAAa,GAPlC98J,EASnBM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTyiB,WAAY,SACZ,CAAC,KAAD7uB,OAAMsglC,GAAiBtB,mBAAqB,CAC1CtwjC,cAAe,UAEjB,CAAC,KAAD1uB,OAAMsglC,GAAiBhzkC,WAAa,CAClC/G,OAAQ,YAEkB,aAA3BwE,EAAW48J,aAA8B,CAC1C33I,UAAW,OACXjG,QAAS,SACT,IACIw2jC,IAAiB11kC,EAAAA,GAAMA,IAAC,OAAQ,CACpCvK,KAAM,eACNkK,KAAM,QACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOod,OAHxB3S,EAIpBjB,IAAA,IAAC,MACFE,GACDF,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW6H,MAAO,CACzCtI,QAAS,QACTG,WAAYzC,EAAM0C,YAAY9L,OAAO,QAAS,CAC5C+L,SAAU3C,EAAM0C,YAAYC,SAAS2K,WAEvC,CAAC,KAADpX,OAAMsglC,GAAiBjzkC,SAAW,CAChCrC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,QAC1C7K,WAAY,KAEd,CAAC,KAADzE,OAAMsglC,GAAiB9sjC,YAAc,CACnCxoB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,QAC1C7K,WAAY,KAEd,CAAC,KAADzE,OAAMsglC,GAAiBtB,mBAAqB,CAC1CtxjC,UAAW,IAEb,CAAC,KAAD1tB,OAAMsglC,GAAiB9ukC,QAAU,CAC/BxG,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,OAE7C,IACIqzkC,IAAyB31kC,EAAAA,GAAMA,IAAC,OAAQ,CAC5CvK,KAAM,eACNkK,KAAM,gBACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOqglC,eAHhB51kC,EAI5B,KAAM,CACPnH,WAAY,EAEZ0I,QAAS,OACTugB,aAAc,EACd,CAAC,KAAD3sB,OAAMsglC,GAAiBtB,mBAAqB,CAC1CryjC,aAAc,OAGZ+zjC,IAA0B71kC,EAAAA,GAAMA,IAAC,OAAQ,CAC7CvK,KAAM,eACNkK,KAAM,iBACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOmhkC,gBAHf12jC,EAI7BqY,IAAA,IAAC,MACFpZ,GACDoZ,EAAA,MAAM,CACLhX,MAAO,OACPlB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,UAC1C,CAAC,KAADvP,OAAMsglC,GAAiBtB,mBAAqB,CAC1ChvjC,UAAW,UAEd,IACK2wjC,GAAyB9/kC,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,IAAIw/kC,EACJ,MAAMzmlC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,kBAEF,SACFlG,EAAQ,UACRuO,EAAS,gBACT868B,EAAkB,CAAC,EAAC,MACpBjy8B,GAAQ,EACRlB,KAAM+ziC,EAAQ,SACdw8B,EAAQ,UACR3rjC,EAAY,CAAC,EACb4rjC,kBAAmBC,EAAqB,cACxCC,GACE7mlC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,iBACJq0kC,EAAgB,YAChBr36B,GACE9mK,EAAAA,WAAiB+9kC,KACf,OACJvxkC,EAAM,SACNC,EAAQ,UACRkmB,EACAljB,KAAM2wkC,GACJpglC,EAAAA,WAAiBg+kC,IACfvukC,EAAO+ziC,GAAY48B,EACzB,IAAIH,EAAoBC,EACpBzwkC,IAASwwkC,IACXA,EAAoBI,IAEtB,MAAMn2kC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCkT,SACA2xkC,mBACAxrjC,YACAlmB,WACAkE,QACAm2J,gBAEIx5J,EAvIkBpD,KACxB,MAAM,QACJoD,EAAO,YACPw5J,EAAW,OACXt6J,EAAM,UACNmmB,EAAS,MACThiB,EAAK,SACLlE,EAAQ,iBACR0xkC,GACEj0kC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ2tK,EAAan2J,GAAS,QAASlE,GAAY,WAAY0xkC,GAAoB,oBAC1FxhkC,MAAO,CAAC,QAASnQ,GAAU,SAAUmmB,GAAa,YAAahiB,GAAS,QAASlE,GAAY,WAAY0xkC,GAAoB,oBAC7HyB,cAAe,CAAC,gBAAiBpzkC,GAAU,SAAUmmB,GAAa,YAAahiB,GAAS,QAASlE,GAAY,WAAY0xkC,GAAoB,oBAC7Izd,eAAgB,CAAC,iBAAkByd,GAAoB,qBAEzD,OAAO3wkC,EAAAA,GAAcA,GAACD,EAAOgykC,GAA0BjykC,EAAQ,EAuH/CG,CAAkBvD,GAC5Bo2kC,EAAyD,OAAvCP,EAAmB1rjC,EAAU1X,OAAiBojkC,EAAmBn9H,EAAgBjm8B,MACzG,OAAoBjP,EAAAA,GAAAA,MAAM8xkC,IAAerykC,EAAAA,GAAAA,GAAS,CAChDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BvH,IAAKA,EACL2J,WAAYA,GACX+C,EAAO,CACR1T,SAAU,CAACkW,GAAQwwkC,GAAiClykC,EAAAA,GAAAA,KAAK4xkC,GAAwB,CAC/E73kC,UAAWwF,EAAQsykC,cACnB11kC,WAAYA,EACZ3Q,UAAuBwU,EAAAA,GAAAA,KAAKkykC,GAAmB9ykC,EAAAA,GAAAA,GAAS,CACtDwlB,UAAWA,EACXnmB,OAAQA,EACRmE,MAAOA,EACPlB,KAAMA,GACL0wkC,MACA,MAAmBzykC,EAAAA,GAAAA,MAAMmykC,GAAyB,CACrD/3kC,UAAWwF,EAAQozjC,eACnBx2jC,WAAYA,EACZ3Q,SAAU,CAACA,GAAwBwU,EAAAA,GAAAA,KAAK2xkC,IAAgBvykC,EAAAA,GAAAA,GAAS,CAC/DjD,WAAYA,GACXo2kC,EAAgB,CACjBx4kC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQqP,MAAyB,MAAlB2jkC,OAAyB,EAASA,EAAex4kC,WAChFvO,SAAUA,KACN,KAAMymlC,QAGlB,IA0DAF,GAAU9xkC,QAAU,YACpB,YC5OO,SAASuykC,GAAoB52kC,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,EACoBE,EAAAA,GAAsBA,GAAC,UAAW,CAAC,SAAvD,MCDMC,GAAY,CAAC,YAAa,UAoB1B02kC,IAAWx2kC,EAAAA,GAAMA,IAACqq8B,GAAO,CAC7B508B,KAAM,UACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAH9B6Q,EAId,KACM,CACLwjB,SAAU,aAwDd,GArD0BxtB,EAAAA,YAAiB,SAAc2M,EAASpM,GAChE,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,aAEF,UACFqI,EAAS,OACT24kC,GAAS,GACPnnlC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCmnlC,WAEInzkC,EA/BkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBonlC,GAAqBjzkC,EAAQ,EAwB1CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKyykC,IAAUrzkC,EAAAA,GAAAA,GAAS,CAC1CrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B8/0B,UAAW64P,EAAS,OAAIprlC,EACxBkL,IAAKA,EACL2J,WAAYA,GACX+C,GACL,ICnDO,SAASyzkC,GAA2B/2kC,GACzC,OAAOC,EAAAA,GAAAA,IAAqB,iBAAkBD,EAChD,EAC2BE,EAAAA,GAAsBA,GAAC,iBAAkB,CAAC,SAArE,MCDMC,GAAY,CAAC,YAAa,aAkB1B62kC,IAAkB32kC,EAAAA,GAAMA,IAAC,MAAO,CACpCvK,KAAM,iBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHvB6Q,EAIrB,KACM,CACLkf,QAAS,GACT,eAAgB,CACd6C,cAAe,QAoDrB,GAhDiC/rB,EAAAA,YAAiB,SAAqB2M,EAASpM,GAC9E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,oBAEF,UACFqI,EAAS,UACT8E,EAAY,OACVtT,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCsT,cAEIU,EAlCkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBunlC,GAA4BpzkC,EAAQ,EA2BjDG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK4ykC,IAAiBxzkC,EAAAA,GAAAA,GAAS,CACjDQ,GAAIf,EACJ9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,GACJ0M,GACL,ICpDO,SAAS2zkC,GAAyBj3kC,GACvC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,EACyBE,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,OAAQ,MAAO,UAAhF,MCDMC,GAAY,CAAC,YAAa,OAsB1B+2kC,IAAgB72kC,EAAAA,GAAMA,IAAC,MAAO,CAClCvK,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAW8/B,KAAOzqC,EAAOyqC,IAAI,GAPhChgC,EASnBM,IAAA,IAAC,WACFJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTsiB,cAAe,SACfC,SAAU,QACT5jB,EAAW8/B,KAAO,CACnBnc,cAAe,OACf,IA6DF,GAtD+B7tB,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,kBAEF,UACFqI,EAAS,IACTkiC,GAAM,GACJ1wC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAEzC42gC,EAAM/C,GAAiB,CAC3BrkhC,QACAskhC,eAHqBC,KAIrBtxU,OAAQ,CAAC,WAELrisB,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC0wC,MACAr5B,MAAO+vgC,EAAI/vgC,QAEPrD,EAvDkBpD,KACxB,MAAM,QACJoD,EAAO,IACP08B,EAAG,MACHr5B,GACEzG,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ6wC,GAAO,MAAOr5B,GAAS,UAExC,OAAOnD,EAAAA,GAAcA,GAACD,EAAOqzkC,GAA0BtzkC,EAAQ,EA8C/CG,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK8ykC,IAAe1zkC,EAAAA,GAAAA,GAAS,CAC/CrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,GACJ0M,GACL,IC1EO,SAAS6zkC,GAA0Bn3kC,GACxC,OAAOC,EAAAA,GAAAA,IAAqB,gBAAiBD,EAC/C,EAC0BE,EAAAA,GAAsBA,GAAC,gBAAiB,CAAC,OAAQ,MAAO,UCGlF,SAJuC7J,EAAAA,mBAAoB3K,GCArDyU,GAAY,CAAC,UAAW,WAAY,YAAa,eAAgB,OAAQ,WAAY,SAgH3F,GAzFgC9J,EAAAA,YAAiB,SAAoB1G,EAAOiH,GAC1E,MAAM,QAGFwy6B,EAAO,SACPx56B,EAAQ,UACRuO,EAAS,aACTugB,EACA5oB,KAAMshlC,EAAQ,SACdj3F,EACAny/B,MAAO2ohC,GACLhnhC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCm69B,EAAUjk+B,EAAAA,OAAa,MACvBsN,EAzBkBhU,KACxB,MAAM,QACJgU,EAAO,IACP08B,EAAG,MACHr5B,GACErX,EACEiU,EAAQ,CACZpU,KAAM,CAAC,OAAQ6wC,GAAO,MAAOr5B,GAAS,UAExC,OAAOnD,EAAAA,GAAcA,GAACD,EAAOuzkC,GAA2BxzkC,EAAQ,EAgBhDG,CAAkBnU,IAC3B3B,EAAOm1hC,IAAiBt4/B,EAAAA,GAAaA,GAAC,CAC3CC,WAAY6r/B,EACZh4gC,QAAS+f,EACT5oB,KAAM,eAERO,EAAAA,oBAA0B+y6B,GAAS,KAAM,CACvC1j6B,MAAOA,KACL,IAAI8Q,EAAQ8j9B,EAAQhj+B,QAAQD,cAAc,gCACrCmf,IACHA,EAAQ8j9B,EAAQhj+B,QAAQD,cAAc,yBAEpCmf,GACFA,EAAM9Q,OACR,KAEA,IACJ,MAAMuu8B,GAAY3o7B,EAAAA,GAAUA,GAAC10B,EAAK0j+B,GAC5Bxk+B,GAAO61B,EAAAA,GAAAA,GAAMyrjC,GACb1uI,EAAery8B,EAAAA,SAAc,KAAM,CACvCP,OACAqq/B,QAAAA,CAAS7v+B,GACP6ygC,EAAc7ygC,EAAMQ,OAAO9iB,OACvBmy/B,GACFA,EAAS7v+B,EAAOA,EAAMQ,OAAO9iB,MAEjC,EACAA,WACE,CAAC8H,EAAMqq/B,EAAUgjC,EAAen1hC,IACpC,OAAoBoW,EAAAA,GAAAA,KAAKizkC,GAAkB7glC,SAAU,CACnDxI,MAAO068B,EACP948B,UAAuBwU,EAAAA,GAAAA,KAAKkzkC,IAAW9zkC,EAAAA,GAAAA,GAAS,CAC9CW,KAAM,aACNvN,IAAKq98B,EACL918B,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,EAAO,CACR1T,SAAUA,MAGhB,mBC9EA,MAAMuQ,GAAY,CAAC,YAAa,YAAa,UAAW,UAAW,WAAY,YAAa,cActF+N,IAAelD,EAAAA,GAAWA,KAE1Bo6jC,GAA+BC,GAAa,MAAO,CACvDvvkC,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,OAE/C,SAAS81kC,GAAqB31kC,GAC5B,OAAO41kC,GAAoB,CACzB51kC,QACAmG,KAAM,WACNoY,aAAYA,IAEhB,CASA,SAASqpkC,GAAa3nlC,EAAUy2mB,GAC9B,MAAM09a,EAAgB1thC,EAAAA,SAAe+tb,QAAQx0b,GAAUqnB,OAAO8qH,SAC9D,OAAOgi5B,EAAch4gC,QAAO,CAACza,EAAQgnE,EAAO9pE,KAC1C8C,EAAO9F,KAAK8sE,GACR9pE,EAAQu1hC,EAAc94hC,OAAS,GACjCqG,EAAO9F,KAAmB6K,EAAAA,aAAmBgwmB,EAAW,CACtDv6mB,IAAK,aAAF0J,OAAehH,MAGf8C,IACN,GACL,CACA,MAQa4lB,GAAQvW,IAGf,IAHgB,WACpBJ,EAAU,MACVjB,GACDqB,EACK/K,GAAS4N,EAAAA,GAAAA,GAAS,CACpB5B,QAAS,OACTsiB,cAAe,WACd1J,EAAAA,GAAAA,IAAkB,CACnBlb,UACCkc,EAAAA,GAAAA,IAAwB,CACzBlG,OAAQ/U,EAAW0F,UACnBwF,YAAanM,EAAMmM,YAAY6J,UAC7BmF,IAAa,CACfyJ,cAAezJ,OAEjB,GAAIla,EAAWyc,QAAS,CACtB,MAAM+B,GAAczB,EAAAA,GAAAA,IAAmBhe,GACjCoc,EAAO5tB,OAAOgkB,KAAKxS,EAAMmM,YAAY6J,QAAQvJ,QAAO,CAACC,EAAK6O,MAC5B,kBAAvBta,EAAWyc,SAA0D,MAAlCzc,EAAWyc,QAAQnC,IAAuD,kBAAzBta,EAAW0F,WAA8D,MAApC1F,EAAW0F,UAAU4U,MACvJ7O,EAAI6O,IAAc,GAEb7O,IACN,CAAC,GACE6lgC,GAAkBr2/B,EAAAA,GAAAA,IAAwB,CAC9ClG,OAAQ/U,EAAW0F,UACnByV,SAEI87jC,GAAgBh8jC,EAAAA,GAAAA,IAAwB,CAC5ClG,OAAQ/U,EAAWyc,QACnBtB,SAE6B,kBAApBm2/B,GACT/jhC,OAAOgkB,KAAK+//B,GAAiB1lhC,SAAQ,CAAC0uB,EAAYrsB,EAAOid,KAEvD,IADuBomgC,EAAgBh3/B,GAClB,CACnB,MAAM48jC,EAAyBjplC,EAAQ,EAAIqjhC,EAAgBpmgC,EAAYjd,EAAQ,IAAM,SACrFqjhC,EAAgBh3/B,GAAc48jC,CAChC,KAGJ,MAAM/8jC,EAAqBA,CAACD,EAAWI,KACrC,OAAIta,EAAWm3kC,WACN,CACL32jC,KAAKjC,EAAAA,GAAAA,IAASC,EAAatE,IAGxB,CAGL,6BAA8B,CAC5B6E,OAAQ,GAEV,gCAAiC,CAC/B,CAAC,SAAD9pB,QA7DmByQ,EA6DY4U,EAAag3/B,EAAgBh3/B,GAActa,EAAW0F,UA5DtF,CACLo6B,IAAK,OACL,cAAe,QACflxC,OAAQ,MACR,iBAAkB,UAClB8W,OAuD0G6Y,EAAAA,GAAAA,IAASC,EAAatE,KA7DvGxU,KA+DtB,EAEHrQ,GAAS0S,EAAAA,GAASA,GAAC1S,GAAQ4kB,EAAAA,GAAAA,IAAkB,CAC3Clb,SACCk4kC,EAAe98jC,GACpB,CAEA,OADA9kB,GAASylB,EAAAA,GAAAA,IAAwB/b,EAAMmM,YAAa7V,GAC7CA,CAAM,EClHf,MAuDA,GD6De,WAAmC,IAAdlL,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC7C,MAAM,sBAEJ4tkC,EAAwBJ,GAA4B,cACpDn8C,EAAgBq8C,GAAoB,cACpC32jC,EAAgB,YACdjkB,EAOEitlC,EAAYnS,EAAsBtujC,IAoCxC,OAnC2B7gB,EAAAA,YAAiB,SAAc2M,EAASpM,GACjE,MAAMk18B,EAAam9E,EAAcjmhC,GAC3BrT,GAAQk2B,EAAAA,GAAYA,GAACim7B,IACrB,UACF7o8B,EAAY,MAAK,UACjBgD,EAAY,SAAQ,QACpB+W,EAAU,EAAC,QACXhY,EAAO,SACPpV,EAAQ,UACRuO,EAAS,WACTu5kC,GAAa,GACX/nlC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,EAAa,CACjB0F,YACA+W,UACA06jC,cAEI/zkC,GArBCE,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,UAEoBwQ,IAAQC,EAAAA,GAAAA,IAAqB0O,EAAe3O,IAAO,CAAC,GAsBjF,OAAoBoE,EAAAA,GAAAA,KAAKuzkC,GAAWn0kC,EAAAA,GAAAA,GAAS,CAC3CQ,GAAIf,EACJ1C,WAAYA,EACZ3J,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,EAAO,CACR1T,SAAUoV,EAAUuykC,GAAa3nlC,EAAUoV,GAAWpV,IAE1D,GASF,CCtKcgolC,CAAY,CACxBpS,uBAAuBnlkC,EAAAA,GAAMA,IAAC,MAAO,CACnCvK,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,OAE/Cy5hC,cAAejmhC,IAAW7D,EAAAA,GAAAA,GAAgB,CACxCxP,MAAOqT,EACPlN,KAAM,eCZH,SAAS+hlC,GAAkC73kC,GAChD,OAAOC,EAAAA,GAAAA,IAAqB,sBAAuBD,EACrD,CACA,MACA,IADgCE,EAAAA,GAAsBA,GAAC,sBAAuB,CAAC,OAAQ,sBAAuB,oBAAqB,uBAAwB,WAAY,QAAS,QAAS,WAAY,aCD/LC,GAAY,CAAC,UAAW,YAAa,kBAAmB,UAAW,WAAY,oBAAqB,WAAY,QAAS,iBAAkB,OAAQ,WAAY,WAAY,YAAa,SA+BjL23kC,IAAuBz3kC,EAAAA,GAAMA,IAAC,QAAS,CAClDvK,KAAM,sBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAAC,CACN,CAAC,MAAD6F,OAAOuilC,GAAwB/kkC,QAAUpd,EAAOod,OAC/Cpd,EAAOpG,KAAMoG,EAAO,iBAADJ,QAAkBiL,EAAAA,GAAUA,GAACF,EAAWy3kC,kBAAmB,GATjD33kC,EAWjCjB,IAAA,IAAC,MACFE,EAAK,WACLiB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACb5B,QAAS,cACTyiB,WAAY,SACZtoB,OAAQ,UAER43J,cAAe,SACfi9yB,wBAAyB,cACzBvt7B,YAAa,GACbF,YAAa,GAEb,CAAC,KAAD3tB,OAAMuilC,GAAwBj1kC,WAAa,CACzC/G,OAAQ,YAEqB,UAA9BwE,EAAWy3kC,gBAA8B,CAC1C9zjC,cAAe,cACfb,WAAY,GAEZF,aAAc,IACiB,QAA9B5iB,EAAWy3kC,gBAA4B,CACxC9zjC,cAAe,iBACfb,WAAY,IACmB,WAA9B9iB,EAAWy3kC,gBAA+B,CAC3C9zjC,cAAe,SACfb,WAAY,IACX,CACD,CAAC,MAAD7tB,OAAOuilC,GAAwB/kkC,QAAU,CACvC,CAAC,KAADxd,OAAMuilC,GAAwBj1kC,WAAa,CACzCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAK/B,YAG9C,IACIq3gC,IAAoB95gC,EAAAA,GAAMA,IAAC,OAAQ,CACvCvK,KAAM,sBACNkK,KAAM,WACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOo1K,UAHrB3qK,EAIvBqY,IAAA,IAAC,MACFpZ,GACDoZ,EAAA,MAAM,CACL,CAAC,KAADljB,OAAMuilC,GAAwB/wkC,QAAU,CACtCxG,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQsE,MAAMrE,MAE9C,IA0JD,GApJsCtM,EAAAA,YAAiB,SAA0B2M,EAASpM,GACxF,IAAI+J,EAAMs3kC,EACV,MAAMtolC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,yBAEF,UACFqI,EAAS,gBACT868B,EAAkB,CAAC,EAAC,QACpBpsf,EACA/pd,SAAUqykC,EAAY,kBACtBh6C,EACAnohC,MAAOklkC,EAAS,eAChBF,EAAiB,MACjB3ujC,SAAU8ujC,EAAY,UACtBztjC,EAAY,CAAC,GACX/6B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC8zgC,EAAiBC,KACjBpxgC,EAAoF,OAAxEnC,EAAuB,MAAhBw0kC,EAAuBA,EAAetonB,EAAQl9d,MAAMmT,UAAoBnC,EAAyB,MAAlBszgC,OAAyB,EAASA,EAAenxgC,SACnJumB,EAA2B,MAAhB8ujC,EAAuBA,EAAetrnB,EAAQl9d,MAAM05B,SAC/D+ujC,EAAe,CACnBt1kC,WACAumB,YAEF,CAAC,UAAW,OAAQ,WAAY,QAAS,YAAYl9B,SAAQL,IACzB,qBAAvB+ge,EAAQl9d,MAAM7D,IAA8C,qBAAf6D,EAAM7D,KAC5DsslC,EAAatslC,GAAO6D,EAAM7D,GAC5B,IAEF,MAAMirhC,EAAM/C,GAAiB,CAC3BrkhC,QACAskhC,iBACArxU,OAAQ,CAAC,WAELrisB,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCmT,WACAk1kC,iBACA3ujC,WACAriB,MAAO+vgC,EAAI/vgC,QAEPrD,EArHkBpD,KACxB,MAAM,QACJoD,EAAO,SACPb,EAAQ,eACRk1kC,EAAc,MACdhxkC,EAAK,SACLqiB,GACE9oB,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQsT,GAAY,WAAY,iBAAFtN,QAAmBiL,EAAAA,GAAUA,GAACu3kC,IAAmBhxkC,GAAS,QAASqiB,GAAY,YACpHrW,MAAO,CAAC,QAASlQ,GAAY,YAC7BkoK,SAAU,CAAC,WAAYhkK,GAAS,UAElC,OAAOnD,EAAAA,GAAcA,GAACD,EAAOi0kC,GAAmCl0kC,EAAQ,EAwGxDG,CAAkBvD,GAC5B83kC,EAAwE,OAAjDJ,EAAwBvtjC,EAAUroB,YAAsB41kC,EAAwBh/H,EAAgB528B,WAC7H,IAAI2Q,EAAQklkC,EASZ,OARa,MAATllkC,GAAiBA,EAAMtjB,OAAS8m+B,IAAe2kE,IACjDnohC,GAAqB5O,EAAAA,GAAAA,KAAKoy9B,IAAYhz9B,EAAAA,GAAAA,GAAS,CAC7CP,UAAW,QACVo1kC,EAAqB,CACtBl6kC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQqP,MAA8B,MAAvBqlkC,OAA8B,EAASA,EAAoBl6kC,WAC1FvO,SAAUojB,OAGMjP,EAAAA,GAAAA,MAAM+zkC,IAAsBt0kC,EAAAA,GAAAA,GAAS,CACvDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZ3J,IAAKA,GACJ0M,EAAO,CACR1T,SAAU,CAAcyG,EAAAA,aAAmBw2d,EAASurnB,GAAe/ujC,GAAwBtlB,EAAAA,GAAAA,MAAMu0kC,GAAO,CACtG12kC,QAAS,QACThS,SAAU,CAACojB,GAAoBjP,EAAAA,GAAAA,MAAMo2gC,GAAmB,CACtD55gC,WAAYA,EACZ,eAAe,EACfpC,UAAWwF,EAAQqnK,SACnBp7K,SAAU,CAAC,SAAU,UAEpBojB,KAET,ICjKO,SAASulkC,GAA0Bv4kC,GACxC,OAAOC,EAAAA,GAAAA,IAAqB,oBAAqBD,EACnD,EAC0BE,EAAAA,GAAsBA,GAAC,oBAAqB,CAAC,OAAQ,UAAW,WAAY,QAAS,YAAa,YAA5H,MCDMC,GAAY,CAAC,YAAa,UAAW,cAAe,YAAa,iBAAkB,WAAY,qBAAsB,OAAQ,OAAQ,KAAM,aAAc,WAAY,OAAQ,SAAU,WAAY,UAAW,WAAY,WAAY,WAAY,OAAQ,SA2B1Pq4kC,IAAiBn4kC,EAAAA,GAAMA,IAACm08B,GAAPn08B,EAAmBM,IAAA,IAAC,WACzCJ,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb+b,QAAS,EACTxC,aAAc,OACO,UAApBxc,EAAWolD,MAAoB,CAChCtiC,WAAgC,UAApB9iB,EAAW1N,MAAoB,GAAK,IAC3B,QAApB0N,EAAWolD,MAAkB,CAC9BxiC,YAAiC,UAApB5iB,EAAW1N,MAAoB,GAAK,IACjD,IACI4llC,IAAkBp4kC,EAAAA,GAAMA,IAAC,QAAS,CACtCkS,kBAAmBpE,GAAqBA,GADlB9N,CAErB,CACDtE,OAAQ,UACR3M,SAAU,WACV+K,QAAS,EACTuH,MAAO,OACPC,OAAQ,OACRsjB,IAAK,EACLG,KAAM,EACN9F,OAAQ,EACRC,QAAS,EACT9kB,OAAQ,IA2NV,GArNgCpE,EAAAA,YAAiB,SAAoB1G,EAAOiH,GAC1E,MAAM,UACF+j6B,EACA5x4B,QAAS2vjC,EAAW,YACpBC,EAAW,UACXx6kC,EAAS,eACT2k5B,EACAhg5B,SAAUqykC,EAAY,mBACtBr/H,GAAqB,EAAK,KAC1Bnw5B,GAAO,EAAK,KACZ7/C,EAAI,GACJkmB,EAAE,WACFuq/B,EAAU,SACVpD,EAAQ,KACRr9gC,EAAI,OACJ2b,EAAM,SACN0u+B,EAAQ,QACR3u+B,EAAO,SACPP,EAAQ,SACRoY,GAAW,EAAK,SAChB6o7B,EAAQ,KACRxi9B,EAAI,MACJ1B,GACE2B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACxC4oB,EAAS6vjC,IAAmB/tjC,EAAAA,GAAaA,GAAC,CAC/CC,WAAY4tjC,EACZ/5kC,QAASojI,QAAQ+gxB,GACjBht5B,KAAM,aACNk1B,MAAO,YAEHip/B,EAAiBC,KA6BvB,IAAIpxgC,EAAWqykC,EACXlhE,GACsB,qBAAbnxgC,IACTA,EAAWmxgC,EAAenxgC,UAG9B,MAAM+1kC,EAAuB,aAATnplC,GAAgC,UAATA,EACrC6Q,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCo5B,UACAjmB,WACAgz8B,qBACAnw5B,SAEIhiD,EAlHkBpD,KACxB,MAAM,QACJoD,EAAO,QACPolB,EAAO,SACPjmB,EAAQ,KACR6iD,GACEplD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQu5B,GAAW,UAAWjmB,GAAY,WAAY6iD,GAAQ,OAAJnwD,QAAWiL,EAAAA,GAAUA,GAACklD,KACvFnvC,MAAO,CAAC,UAEV,OAAO3S,EAAAA,GAAcA,GAACD,EAAO20kC,GAA2B50kC,EAAQ,EAuGhDG,CAAkBvD,GAClC,OAAoBwD,EAAAA,GAAAA,MAAMy0kC,IAAgBh1kC,EAAAA,GAAAA,GAAS,CACjDP,UAAW,OACX9E,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B+y8B,cAAc,EACdG,aAAcyE,EACdhz8B,SAAUA,EACVov8B,SAAU,KACV/t8B,UAAMzY,EACN8lB,QAlDkBlB,IACdkB,GACFA,EAAQlB,GAEN2jgC,GAAkBA,EAAezigC,SACnCyigC,EAAezigC,QAAQlB,EACzB,EA6CAmB,OA3CiBnB,IACbmB,GACFA,EAAOnB,GAEL2jgC,GAAkBA,EAAexigC,QACnCwigC,EAAexigC,OAAOnB,EACxB,EAsCA/P,WAAYA,EACZ3J,IAAKA,GACJ0M,EAAO,CACR1T,SAAU,EAAcwU,EAAAA,GAAAA,KAAKq0kC,IAAiBj1kC,EAAAA,GAAAA,GAAS,CACrDm35B,UAAWA,EACX5x4B,QAAS2vjC,EACT51L,eAAgBA,EAChB3k5B,UAAWwF,EAAQ6S,MACnB1T,SAAUA,EACVkpB,GAAI6sjC,EAAc7sjC,OAAKtgC,EACvBoK,KAAMA,EACNqq/B,SA/CsB7v+B,IAExB,GAAIA,EAAM+24B,YAAY79lB,iBACpB,OAEF,MAAMsvxB,EAAaxokC,EAAMQ,OAAOiY,QAChC6vjC,EAAgBE,GACZ34F,GAEFA,EAAS7v+B,EAAOwokC,EAClB,EAsCE7nkC,SAAUA,EACVra,IAAKu8gC,EACL9p/B,SAAUA,EACV9oB,WAAYA,EACZ2x8B,SAAUA,EACVxi9B,KAAMA,GACI,aAATA,QAAiChE,IAAVsC,EAAsB,CAAC,EAAI,CACnDA,SACCuohC,IAAcxt/B,EAAU4vjC,EAAc7ykC,KAE7C,IC5JA,IAAe7G,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,iIACD,wBCFJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,gLACD,sBCDEk6kC,IAAsB14kC,EAAAA,GAAMA,IAAC,OAAQ,CACzCkS,kBAAmBpE,GAAqBA,GADd9N,CAEzB,CACDjR,SAAU,WACVwS,QAAS,SAELo3kC,IAA4B34kC,EAAAA,GAAMA,IAAC44kC,GAAP54kC,CAAiC,CAEjEgd,UAAW,aAEP67jC,IAAqB74kC,EAAAA,GAAMA,IAAC84kC,GAAP94kC,EAA+BM,IAAA,IAAC,MACzDrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb4hB,KAAM,EACNh2B,SAAU,WACViuB,UAAW,WACXtb,WAAYzC,EAAM0C,YAAY9L,OAAO,YAAa,CAChDqW,OAAQjN,EAAM0C,YAAYuK,OAAOG,OACjCzK,SAAU3C,EAAM0C,YAAYC,SAAS2K,YAEtCrM,EAAWwoB,SAAW,CACvB1L,UAAW,WACXtb,WAAYzC,EAAM0C,YAAY9L,OAAO,YAAa,CAChDqW,OAAQjN,EAAM0C,YAAYuK,OAAOE,QACjCxK,SAAU3C,EAAM0C,YAAYC,SAAS2K,YAEvC,IA2CF,SAtCA,SAAyBjd,GACvB,MAAM,QACJo5B,GAAU,EAAK,QACfplB,EAAU,CAAC,EAAC,SACZjD,GACE/Q,EACE4Q,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrCo5B,YAEF,OAAoBhlB,EAAAA,GAAAA,MAAMg1kC,GAAqB,CAC7C56kC,UAAWwF,EAAQnU,KACnB+Q,WAAYA,EACZ3Q,SAAU,EAAcwU,EAAAA,GAAAA,KAAK40kC,GAA2B,CACtDt4kC,SAAUA,EACVvC,UAAWwF,EAAQsB,WACnB1E,WAAYA,KACG6D,EAAAA,GAAAA,KAAK80kC,GAAoB,CACxCx4kC,SAAUA,EACVvC,UAAWwF,EAAQosG,IACnBxvG,WAAYA,MAGlB,iBC9DO,SAAS64kC,GAAqBp5kC,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,CACA,MACA,IADqBE,EAAAA,GAAsBA,GAAC,WAAY,CAAC,OAAQ,UAAW,WAAY,eAAgB,iBAAkB,cCDpHC,GAAY,CAAC,UAAW,cAAe,QAAS,OAAQ,OAAQ,WAAY,OAAQ,aA2BpFk5kC,IAAYh5kC,EAAAA,GAAMA,IAACi5kC,GAAY,CACnC/mkC,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAA0B,WAApB+Q,EAAW1N,MAAqB+C,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAW1N,QAAU+C,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWC,SAAU,GARpIH,EAUfM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbhD,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,YACxCxE,EAAW4w8B,eAAiB,CAC9B,UAAW,CACTxv7B,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAgC,YAArB+K,EAAWC,MAAsBlB,EAAMmD,KAAKC,QAAQE,OAAO+19B,cAAgBr59B,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAM4O,EAAAA,GAAAA,IAA2B,YAArB1T,EAAWC,MAAsBlB,EAAMoD,QAAQE,OAAOC,OAASvD,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAMrD,EAAMoD,QAAQE,OAAOyC,cAEnV,uBAAwB,CACtBsc,gBAAiB,iBAGC,YAArBphB,EAAWC,OAAuB,CACnC,CAAC,KAADhL,OAAM+jlC,GAAaxwjC,UAAY,CAC7BvoB,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,OAExD,CACD,CAAC,KAADnN,OAAM+jlC,GAAaz2kC,WAAa,CAC9BtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOE,WAE9C,IASF,MAAM02kC,IAAkCp1kC,EAAAA,GAAAA,KAAKq1kC,GAAiB,CAC5D1wjC,SAAS,IAEL2wjC,IAA2Bt1kC,EAAAA,GAAAA,KAAKq1kC,GAAiB,CAAC,GA2IxD,GA1I2BpjlC,EAAAA,YAAiB,SAAe2M,EAASpM,GAClE,IAAI+ilC,EAAuBC,EAC3B,MAAMjqlC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,cAGJizB,QAAS2vjC,EAAW,YACpBC,EAAca,GAAkB,MAChCh5kC,EAAQ,UAAS,KACjBsF,EAAO4zkC,GACP5jlC,KAAMshlC,EACNj3F,SAAUyvD,EAAY,KACtB/8iC,EAAO,SAAQ,UACfsL,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACA3N,SAEI8Q,EA5EkBpD,KACxB,MAAM,QACJoD,EAAO,MACPnD,EAAK,KACL3N,GACE0N,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ,QAAFgG,QAAUiL,EAAAA,GAAUA,GAACD,IAAmB,WAAT3N,GAAqB,OAAJ2C,QAAWiL,EAAAA,GAAUA,GAAC5N,MAErF,OAAO2Q,EAAAA,GAAAA,GAAS,CAAC,EAAGG,GAASE,EAAAA,GAAcA,GAACD,EAAOw1kC,GAAsBz1kC,GAAS,EAmElEG,CAAkBvD,GAC5Bs5kC,EC5FCxjlC,EAAAA,WAAiBghlC,ID6FxB,IAAItujC,EAAU2vjC,EACd,MAAMv4F,GAAW149B,EAAAA,GAAAA,GAAsBmohC,EAAciqC,GAAcA,EAAW15F,UAC9E,IAAIrq/B,EAAOshlC,EArCb,IAAwBnhkC,EAAG4H,EA8CzB,OARIg8jC,IACqB,qBAAZ9wjC,IAvCS9S,EAwCO4jkC,EAAW7rlC,MAApC+6B,EAvCa,kBADQlL,EAwCsBluB,EAAM3B,QAvClB,OAAN6vB,EACpB5H,IAAM4H,EAIRlwB,OAAOsoB,KAAOtoB,OAAOkwB,IAoCN,qBAAT/nB,IACTA,EAAO+jlC,EAAW/jlC,QAGFsO,EAAAA,GAAAA,KAAKi1kC,IAAW71kC,EAAAA,GAAAA,GAAS,CAC3C9T,KAAM,QACNoW,KAAmBzP,EAAAA,aAAmByP,EAAM,CAC1CpF,SAAkE,OAAvDi5kC,EAAwBD,GAAY/plC,MAAM+Q,UAAoBi5kC,EAAwB9mlC,IAEnG8llC,YAA0BtilC,EAAAA,aAAmBsilC,EAAa,CACxDj4kC,SAAyE,OAA9Dk5kC,EAAwBJ,GAAmB7plC,MAAM+Q,UAAoBk5kC,EAAwB/mlC,IAE1G0N,WAAYA,EACZoD,QAASA,EACT7N,KAAMA,EACNizB,QAASA,EACTo39B,SAAUA,EACVvp/B,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,GACL,IEpHA,IAAerE,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,+FACD,wBCFJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,wIACD,YCFJ,IAAeI,EAAAA,GAAaA,IAAemF,EAAAA,GAAAA,KAAK,OAAQ,CACtDvF,EAAG,kGACD,yBCTG,SAASi7kC,GAAwB95kC,GACtC,OAAOC,EAAAA,GAAAA,IAAqB,cAAeD,EAC7C,CACA,MACA,IADwBE,EAAAA,GAAsBA,GAAC,cAAe,CAAC,OAAQ,UAAW,WAAY,gBAAiB,eAAgB,iBAAkB,YAAa,eCDxJC,GAAY,CAAC,cAAe,QAAS,OAAQ,gBAAiB,oBAAqB,aAAc,OAAQ,aA6BzG45kC,IAAe15kC,EAAAA,GAAMA,IAACi5kC,GAAY,CACtC/mkC,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,cACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAM+Q,EAAWy5kC,eAAiBpklC,EAAOoklC,cAAepklC,EAAO,OAADJ,QAAQiL,EAAAA,GAAUA,GAACF,EAAW1N,QAA+B,YAArB0N,EAAWC,OAAuB5K,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWC,SAAU,GARrLH,EAUlBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACbhD,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,YACxCxE,EAAW4w8B,eAAiB,CAC9B,UAAW,CACTxv7B,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAgC,YAArB+K,EAAWC,MAAsBlB,EAAMmD,KAAKC,QAAQE,OAAO+19B,cAAgBr59B,EAAMmD,KAAKC,QAAQnC,EAAWC,OAAOw08B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,MAAM4O,EAAAA,GAAAA,IAA2B,YAArB1T,EAAWC,MAAsBlB,EAAMoD,QAAQE,OAAOC,OAASvD,EAAMoD,QAAQnC,EAAWC,OAAOmC,KAAMrD,EAAMoD,QAAQE,OAAOyC,cAEnV,uBAAwB,CACtBsc,gBAAiB,iBAGC,YAArBphB,EAAWC,OAAuB,CACnC,CAAC,KAADhL,OAAMyklC,GAAgBlxjC,QAAO,QAAAvzB,OAAOyklC,GAAgBD,gBAAkB,CACpEx5kC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,MAEzD,CAAC,KAADnN,OAAMyklC,GAAgBn3kC,WAAa,CACjCtC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQE,OAAOE,WAE9C,IACI02kC,IAAkCp1kC,EAAAA,GAAAA,KAAK81kC,GAAc,CAAC,GACtDR,IAA2Bt1kC,EAAAA,GAAAA,KAAK+1kC,GAA0B,CAAC,GAC3DC,IAAwCh2kC,EAAAA,GAAAA,KAAKi2kC,GAA2B,CAAC,GAiJ/E,GAhJ8BhklC,EAAAA,YAAiB,SAAkB2M,EAASpM,GACxE,IAAI0jlC,EAAsBC,EAC1B,MAAM5qlC,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,iBAEF,YACF6ilC,EAAca,GAAkB,MAChCh5kC,EAAQ,UACRsF,KAAM+ziC,EAAW6/B,GAAW,cAC5BM,GAAgB,EAChBQ,kBAAmBC,EAAwBL,GAAwB,WACnE7jE,EAAU,KACV1jhC,EAAO,SAAQ,UACfsL,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzC2F,EAAOk0kC,EAAgBS,EAAwB5gC,EAC/C2gC,EAAoBR,EAAgBS,EAAwB9B,EAC5Dp4kC,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACAw5kC,gBACAnnlC,SAEI8Q,EAvEkBpD,KACxB,MAAM,QACJoD,EAAO,cACPq2kC,EAAa,MACbx5kC,EAAK,KACL3N,GACE0N,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwqlC,GAAiB,gBAAiB,QAAFxklC,QAAUiL,EAAAA,GAAUA,GAACD,IAAM,OAAAhL,QAAWiL,EAAAA,GAAUA,GAAC5N,MAE5Fsh9B,GAAkBtw8B,EAAAA,GAAcA,GAACD,EAAOk2kC,GAAyBn2kC,GACvE,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EA4D7Brw8B,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAK21kC,IAAcv2kC,EAAAA,GAAAA,GAAS,CAC9C9T,KAAM,WACN6mhC,YAAY/ygC,EAAAA,GAAAA,GAAS,CACnB,qBAAsBw2kC,GACrBzjE,GACHzwgC,KAAmBzP,EAAAA,aAAmByP,EAAM,CAC1CpF,SAA0D,OAA/C45kC,EAAuBx0kC,EAAKnW,MAAM+Q,UAAoB45kC,EAAuBznlC,IAE1F8llC,YAA0BtilC,EAAAA,aAAmBmklC,EAAmB,CAC9D95kC,SAAwE,OAA7D65kC,EAAwBC,EAAkB7qlC,MAAM+Q,UAAoB65kC,EAAwB1nlC,IAEzG0N,WAAYA,EACZ3J,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,EAAO,CACRK,QAASA,IAEb,IC3GO,SAAS+2kC,GAAiC16kC,GAC/C,OAAOC,EAAAA,GAAAA,IAAqB,uBAAwBD,EACtD,EACiCE,EAAAA,GAAsBA,GAAC,uBAAwB,CAAC,SAAjF,MCDMC,GAAY,CAAC,WAAY,aAoBzBw6kC,IAAwBt6kC,EAAAA,GAAMA,IAACm29B,GAAY,CAC/Cjk9B,kBAAmB1E,IAAQM,EAAAA,GAAqBA,GAACN,IAAkB,YAATA,EAC1D/X,KAAM,uBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAJjB6Q,CAK3B,CAAC,GA4CJ,GA3CuChK,EAAAA,YAAiB,SAA2B2M,EAASpM,GAC1F,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,0BAEF,UACFqI,GACExO,EACJ4Q,GAAagD,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAC9CwD,EAzBkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIE4z8B,GAAkBtw8B,EAAAA,GAAcA,GAHxB,CACZrU,KAAM,CAAC,SAEqCkrlC,GAAkC/2kC,GAChF,OAAOH,EAAAA,GAAAA,GAAS,CAAC,EAAGG,EAASww8B,EAAgB,EAiB7Brw8B,CAAkBvD,GAClC,OAAoB6D,EAAAA,GAAAA,KAAKu2kC,IAAuBn3kC,EAAAA,GAAAA,GAAS,CACvDP,UAAW,IACX+W,QAAS,QACTxZ,MAAO,iBACP5J,IAAKA,EACL2J,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BxO,EAAO,CACRgU,QAASA,IAEb,ICjDai3kC,GAAej6kC,IAItB,IAJuB,QAC3B4i9B,EAAO,MACPv19B,EAAK,MACL2B,GACDgR,EACC,GAAc,OAAV3S,EACF,OAAO,KAET,MAAM,QACJimiC,EAAO,QACPC,EAAO,YACPxF,EAAW,mBACXmsD,EAAkB,kBAClBC,EAAiB,yCACjBzuD,GAA2C,EAAK,YAChDlC,EAAW,cACXD,EAAa,SACbK,GACE56hC,EACE2tC,EAAMim7B,EAAQnD,MAAMoqE,sBAAiB9+hC,EAAW6+hC,GAChDx6/B,EAAUq8/B,GAA4BC,EAA0C9oE,EAAQnD,OAC9F,QAAQ,GACN,KAAMmD,EAAQnD,MAAMzw7B,QAAQ3hC,GAC1B,MAAO,cACT,KAAK+zI,QAAQky5B,GAAWlkgC,EAAQkkgC,EAASjmiC,IACvC,MAAO,UACT,KAAK+zI,QAAQmy5B,GAAWnkgC,EAAQ/hC,EAAOkmiC,IACrC,MAAO,UACT,KAAKny5B,QAAQmo5B,GAAiB3mE,EAAQnD,MAAMrw7B,QAAQ/hC,EAAOsvC,IACzD,MAAO,gBACT,KAAKykG,QAAQoo5B,GAAe5mE,EAAQnD,MAAMpw7B,SAAShiC,EAAOsvC,IACxD,MAAO,cACT,KAAKykG,QAAQ+48B,GAAqBA,EAAkB9slC,EAAO,UACzD,MAAO,0BACT,KAAK+zI,QAAQ+48B,GAAqBA,EAAkB9slC,EAAO,YACzD,MAAO,4BACT,KAAK+zI,QAAQ+48B,GAAqBA,EAAkB9slC,EAAO,YACzD,MAAO,4BACT,KAAK+zI,QAAQ848B,GAAsBA,EAAmBt3H,EAAQnD,MAAMjx7B,SAASnhC,GAAQ,UACnF,MAAO,2BACT,KAAK+zI,QAAQ848B,GAAsBA,EAAmBt3H,EAAQnD,MAAM/w7B,WAAWrhC,GAAQ,YACrF,MAAO,6BACT,KAAK+zI,QAAQ848B,GAAsBA,EAAmBt3H,EAAQnD,MAAM7w7B,WAAWvhC,GAAQ,YACrF,MAAO,6BACT,KAAK+zI,QAAQ2s5B,GAAenrE,EAAQnD,MAAM/w7B,WAAWrhC,GAAS0giC,IAAgB,GAC5E,MAAO,cACT,QACE,OAAO,KACX,EChCWqsD,GAAep6kC,IAGtB,IAFJhR,MAAOqT,EAAO,SACdmwgC,GACDxygC,EACC,MAAMhR,EAfwBA,KAC9B,IAAIqrlC,EAAa30B,EAAoBC,EAAsBC,EAC3D,MAAMnmG,EAAQy4E,KAERoiD,GADqC,OAA7BD,EAAcrrlC,EAAMu8hC,MAAgB8uD,EAAc56H,EAAM6+G,gCACzC7+G,EAAM7s7B,QAAQkpiC,YAAcr8G,EAAM7s7B,QAAQmpiC,YACvE,OAAOl5jC,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACzBw6hC,YAAyD,OAA3Ck8B,EAAqB12jC,EAAMw6hC,cAAuBk8B,EAChEn8B,cAA+D,OAA/Co8B,EAAuB32jC,EAAMu6hC,gBAAyBo8B,EACtE31hC,OAA0C,OAAjC41hC,EAAgB52jC,EAAMghC,QAAkB41hC,EAAgB00B,GACjE,EAMYC,CAAwBl4kC,IAChC,eACJq/iC,EAAc,cACdvE,GACEoI,GAAoCv2jC,EAAO,QAC/C,OAAOwyjC,GAAS,CACdhvC,WACAkvC,iBACAvE,gBACA3O,aAAc1b,GACdoqB,kBAAmB/oB,GACnBvmhC,UAAWqskC,GACX3vD,UAAW,QACX,EChCE9qhC,GAAY,CAAC,QAAS,YAAa,aAAc,kBAAmB,aAAc,cACtFwZ,GAAa,CAAC,YACdhC,GAAa,CAAC,MAAO,UAAW,YAAa,YAAa,WAAY,YAAa,WAoB/EwjkC,GAAyB9klC,EAAAA,YAAiB,SAAmB2M,EAASpM,GAC1E,IAAI+J,EAAM2mjC,EAAkBC,EAC5B,MAAMz7G,EAAam9E,GAAc,CAC/Bt5hC,MAAOqT,EACPlN,KAAM,kBAEF,MACF8N,EAAK,UACL8mB,EAAS,WACTnrB,EAAU,gBACV058B,EAAe,WACf8sE,EAAU,WACVxP,GACEzqE,EACJxo8B,GAAQC,EAAAA,GAAAA,GAA8Buo8B,EAAY3r8B,IAC9CI,EAAaur8B,EACb07G,EAAsK,OAAzJ7mjC,EAAwE,OAAhE2mjC,EAA4B,MAAT1jjC,OAAgB,EAASA,EAAMiqtB,WAAqBy5V,EAAiC,MAAd/njC,OAAqB,EAASA,EAAWiojC,WAAqB7mjC,EAAO8mjC,GACpLnnC,EAAgBvmE,GAAa,CAC/Bn4D,YAAa4lK,EACblxG,kBAAgG,OAA5EixG,EAAoC,MAAb78hC,OAAoB,EAASA,EAAUmjsB,WAAqB05V,EAA0C,MAAnBtuG,OAA0B,EAASA,EAAgBprP,UACjL0oP,uBAAwBjz8B,EACxB/C,gBAGA4ygC,SAAUu0C,GACRpnC,EACJqnC,GAAiBpkjC,EAAAA,GAAAA,GAA8B+8gC,EAAe3mgC,IAGhEguiC,EAAepxC,YAAa/ygC,EAAAA,GAAAA,GAAS,CAAC,EAAG+ygC,EAAYoxC,EAAepxC,YACpEoxC,EAAe5hC,YAAavihC,EAAAA,GAAAA,GAAS,CAAC,EAAGuihC,EAAY4hC,EAAe5hC,YACpE,MAAMq1D,EAAgBL,GAAa,CAC/BprlC,MAAOg4jC,EACPx0C,SAAUu0C,KAGV9wjC,IAAKu8gC,EAAQ,QACbmvC,EAAO,UACP5wG,EAAS,UACTozG,EAAS,SACT7ziC,EAAQ,UACRsxiC,EAAS,QACT3P,GACEwoC,EACJnoC,GAAa1viC,EAAAA,GAAAA,GAA8B63kC,EAAezjkC,KAE1DougC,WAAY8hC,EACZ5U,WAAY6U,GACVrB,GAAkB,CACpB7T,UACA2P,YACAtP,aACAltB,WAAYktB,EAAWltB,WACvBnihC,QACA8mB,YACAnrB,aACA058B,oBAEF,OAAoB708B,EAAAA,GAAAA,KAAKojjC,GAAWhkjC,EAAAA,GAAAA,GAAS,CAC3C5M,IAAKA,GACJkxjC,EAAqB,CACtB/hC,YAAYvihC,EAAAA,GAAAA,GAAS,CAAC,EAAGqkjC,EAAqB,CAC5C52iC,aAEFslgC,YAAY/ygC,EAAAA,GAAAA,GAAS,CAAC,EAAGyviC,EAAW18B,WAAY,CAC9CuuC,YACAxC,UACA5wG,YACA968B,IAAKu8gC,MAGX,IC9FO,SAASkoE,GAAkCr7kC,GAChD,OAAOC,EAAAA,GAAAA,IAAqB,wBAAyBD,EACvD,CACO,MAAMs7kC,IAA4Bp7kC,EAAAA,GAAsBA,GAAC,wBAAyB,CAAC,OAAQ,aCF5FC,GAAY,CAAC,YAAa,WAAY,SAkBtCo7kC,IAAyBl7kC,EAAAA,GAAMA,IAACm29B,GAAY,CAChD1g+B,KAAM,wBACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAW,CAACA,EAAOpG,KAAM,CAC9C,CAAC,KAADgG,OAAM8llC,GAA0Bh2kC,WAAa1P,EAAO0P,YAJzBjF,EAM5BM,IAAA,IAAC,MACFrB,GACDqB,EAAA,MAAM,CACLoB,WAAYzC,EAAM0C,YAAY9L,OAAO,SACrCsK,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,UAC1C,CAAC,KAADvP,OAAM8llC,GAA0Bh2kC,WAAa,CAC3C9E,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,SAE7C,IACY02kC,GAAkCnllC,EAAAA,YAAiB,SAA4B2M,EAASpM,GACnG,MAAMjH,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,2BAEF,UACFqI,EAAS,MACTnQ,GACE2B,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCwD,EAnCkBpD,KACxB,MAAM,QACJoD,EAAO,SACP2B,GACE/E,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ8V,GAAY,aAE7B,OAAOzB,EAAAA,GAAcA,GAACD,EAAOy3kC,GAAmC13kC,EAAQ,EA2BxDG,CAAkBnU,GAClC,OAAoByU,EAAAA,GAAAA,KAAKm3kC,IAAwB/3kC,EAAAA,GAAAA,GAAS,CACxD5M,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQnU,MACnCyT,UAAW,QACVK,EAAO,CACR1T,SAAU5B,IAEd,ICnDMmS,GAAY,CAAC,QAAS,YAAa,WAAY,sBAAuB,QAAS,UAAW,SAkB1Fs7kC,IAA2Bp7kC,EAAAA,GAAMA,IAAC408B,GAAQ,CAC9Cn/8B,KAAM,0BACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHV6Q,CAI9B,CACDkf,QAAS,EACTiC,SAAU,GACV/Y,cAAe,SAEJizkC,GAAoCrllC,EAAAA,YAAiB,SAA8B2M,EAASpM,GACvG,MAAMjH,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,6BAEF,MACF2pF,EAAK,UACLthF,EAAS,SACTmH,EAAQ,oBACRq2kC,EAAmB,MACnB3tlC,EAAK,QACLgsB,EAAO,MACPtY,GACE/R,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCwD,EAjCkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoBypiC,GAA+Bt1hC,EAAQ,EA0BpDG,CAAkBnU,GAClC,OAAoByU,EAAAA,GAAAA,KAAKq3kC,IAA0Bj4kC,EAAAA,GAAAA,GAAS,CAC1DwW,QAAS,OACTpjB,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQnU,OAClCkS,EAAQ,CACT4K,GAAI,CACF5K,UAEA,CAAC,EAAG4B,EAAO,CACb1T,UAAuBwU,EAAAA,GAAAA,KAAKo3kC,GAAoB,CAC9C/7/B,MAAOA,EACPthF,UAAWw9kC,EACX3hkC,QAASA,EACThsB,MAAOA,EACPsX,SAAUA,MAGhB,IC7DO,SAASs2kC,GAAiC57kC,GAC/C,OAAOC,EAAAA,GAAAA,IAAqB,uBAAwBD,EACtD,CACO,MAAM67kC,IAA2B37kC,EAAAA,GAAsBA,GAAC,uBAAwB,CAAC,OAAQ,YAAa,kBAAmB,2BAA4B,yBAA0B,gBAAiB,gBAAiB,cCFlNC,GAAY,CAAC,OAAQ,cAAe,QAAS,cAAe,WAAY,OAAQ,eAAgB,QAAS,WAAY,WAAY,aA+BjI27kC,IAAwBz7kC,EAAAA,GAAMA,IAACk5hC,GAAgB,CACnDzjiC,KAAM,uBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHjB6Q,CAI3B,CAAC,GACE07kC,IAA6B17kC,EAAAA,GAAMA,IAACm7kC,GAAoB,CAC5D1llC,KAAM,uBACNkK,KAAM,YACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOywmB,WAHZhmmB,CAIhC,CACDugB,QAAS,EACTtB,OAAQ,cACRvjB,OAAQ,YAEJiglC,IAAmC37kC,EAAAA,GAAMA,IAAC,MAAO,CACrDvK,KAAM,uBACNkK,KAAM,kBACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAW,CAAC,CACrC,CAAC,KAADJ,OAAMqmlC,GAAyBI,2BAA6BrmlC,EAAOqmlC,yBACnE,CAAC,KAADzmlC,OAAMqmlC,GAAyBK,yBAA2BtmlC,EAAOsmlC,wBAChEtmlC,EAAOumlC,kBAN6B97kC,EAOtCM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTwiB,eAAgB,WAChBC,WAAY,YACX9jB,EAAW44hC,aAAe,CAC3Bj2gC,UAAW,QACU,QAApB5jB,EAAM2G,WAAuB,CAC9Bie,cAAe,eACf,IACF83jC,GAAiCx8jC,UAAY,CAK3Cxb,GAAIk+4B,KAAAA,YACJ3h5B,WAAY2h5B,KAAAA,OAAiBX,WAC7Bj14B,GAAI414B,KAAAA,UAAoB,CAACA,KAAAA,QAAkBA,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,QAAmBA,KAAAA,KAAgBA,KAAAA,UAEvI,MAAMk6L,IAAiC/7kC,EAAAA,GAAMA,IAAC,MAAO,CACnDvK,KAAM,uBACNkK,KAAM,gBACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAW,CAAC,CACrC,CAAC,IAADJ,OAAKqmlC,GAAyBQ,YAAczmlC,EAAOymlC,WAClD,CACD,CAAC,KAAD7mlC,OAAMqmlC,GAAyBS,gBAAkB1mlC,EAAO0mlC,eACvD1mlC,EAAO2mlC,gBAP2Bl8kC,EAQpCjB,IAAA,IAAC,WACFmB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACb5B,QAAS,OACTsiB,cAAe,SACff,YAAa,OACbE,WAAY,IACX9iB,EAAW44hC,aAAe,CAC3B75gC,OAAQ,aACR4E,cAAe,MACfE,eAAgB,eAChBH,UAAW,QACV,CACD,CAAC,MAADzuB,OAAOqmlC,GAAyBQ,YAAc,CAC5C37kC,SAAU,KAEZ,IAqBF,SAAS87kC,GAAkBx5kC,GACzB,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,0BAEF,KACFo2hC,EAAI,YACJuwD,EAAW,MACXzulC,EAAK,YACLmriC,EAAW,SACXh5C,EAAQ,KACR9v8B,EAAI,aACJkjgC,EAAY,MACZnqB,EAAK,SACLtmhC,EAAQ,SACRmO,EAAQ,UACR9S,GACExO,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCig9B,EAAQy4E,KACR7I,EAAa+I,KACbz5hC,EAAQqq8B,KACR+yI,EAAkB368B,QAAQmq5B,IAASuwD,GAAerzD,EAAM3iqB,SAAS,WACjE,aACJ4vsB,EAAY,qBACZE,GACEH,GAAgBpokC,EAAOk+hC,EAAM/rC,GAE3B5/+B,EAAa5Q,EACbgU,EAnIkBpD,KACxB,MAAM,MACJjB,EAAK,YACL65hC,EAAW,QACXx1hC,GACEpD,EACEqD,EAAQ,CACZpU,KAAM,CAAC,QACP62mB,UAAW,CAAC,aACZ81e,gBAAiB,CAAC,kBAAmBhjD,GAAe,2BAAgD,QAApB75hC,EAAM2G,WAAuB,0BAC7Gs2kC,cAAe,CAAC,gBAAiBpjD,GAAe,iBAChDkjD,UAAW,CAAC,cAEd,OAAOx4kC,EAAAA,GAAcA,GAACD,EAAOg4kC,GAAkCj4kC,EAAQ,EAsHvDG,EAAkBN,EAAAA,GAAAA,GAAS,CAAC,EAAGjD,EAAY,CACzDjB,WAEI+mmB,GAAyBjimB,EAAAA,GAAAA,KAAK23kC,GAA4B,CAC9D7pI,UAAW,EACXlk9B,MAAO,IACPgsB,QAAS,KACT1U,UAAU,EACVnH,UAAWwF,EAAQ0imB,YAErB,OAAoBtimB,EAAAA,GAAAA,MAAM+3kC,IAAuBt4kC,EAAAA,GAAAA,GAAS,CACxD81hC,mBAAoB,MACpBE,aAAcxJ,EAAWwH,uBACzB2B,YAAaA,EACb54hC,WAAYA,EACZpC,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,IAC7BmF,EAAO,CACR1T,SAAU,EAAcmU,EAAAA,GAAAA,MAAMi4kC,GAAkC,CAC9D79kC,UAAWwF,EAAQw4kC,gBACnB57kC,WAAYA,EACZ3Q,SAAU,CAAC67iC,GAAcriB,EAAO,WAAyBhlhC,EAAAA,GAAAA,KAAKs3kC,GAAsB,CAClFxpI,UAAW,EACXl47B,QAAS,KACTsgS,QAASA,IAAMi5vB,EAAa,SAC5BjuiC,SAAmB,UAAT+qC,EACVriD,MAAOA,GA3BOmiB,EA2BaniB,EA3BLk+hC,EAAO9rE,EAAMzv7B,OAAOxgB,EAAM,YAAciw8B,EAAMzv7B,OAAOxgB,EAAM,aA2B7C,OAClCs7hC,GAAcriB,EAAO,CAAC,QAAS,aAAe/ib,EAAWolc,GAAcriB,EAAO,aAA2BhlhC,EAAAA,GAAAA,KAAKs3kC,GAAsB,CACtIxpI,UAAW,EACXl47B,QAAS,KACTsgS,QAASA,IAAMi5vB,EAAa,WAC5BjuiC,SAAmB,YAAT+qC,EACVriD,MAAOA,EAAQoy9B,EAAMzv7B,OAAO3iC,EAAO,WAAa,OAC9Cy9iC,GAAcriB,EAAO,CAAC,UAAW,aAAe/ib,EAAWolc,GAAcriB,EAAO,aAA2BhlhC,EAAAA,GAAAA,KAAKs3kC,GAAsB,CACxI1hkC,QAAS,KACTsgS,QAASA,IAAMi5vB,EAAa,WAC5BjuiC,SAAmB,YAAT+qC,EACVriD,MAAOA,EAAQoy9B,EAAMzv7B,OAAO3iC,EAAO,WAAa,UAEhD0ulC,IAAgC34kC,EAAAA,GAAAA,MAAMq4kC,GAAgC,CACxEj+kC,UAAWwF,EAAQ44kC,cACnBh8kC,WAAYA,EACZ3Q,SAAU,EAAcwU,EAAAA,GAAAA,KAAKs3kC,GAAsB,CACjDvqI,eAAe,EACfn37B,QAAS,YACT1U,SAA2B,OAAjB+wjC,EACVslB,oBAAqBh4kC,EAAQ04kC,UAC7BrulC,MAAOm9hC,GAAe/qE,EAAO,MAC7B9lqB,QAASrpS,OAAWvlB,EAAY,IAAM6qkC,EAAqB,MAC3DzzjC,SAAUA,KACKsB,EAAAA,GAAAA,KAAKs3kC,GAAsB,CAC1CvqI,eAAe,EACfn37B,QAAS,YACT1U,SAA2B,OAAjB+wjC,EACVslB,oBAAqBh4kC,EAAQ04kC,UAC7BrulC,MAAOm9hC,GAAe/qE,EAAO,MAC7B9lqB,QAASrpS,OAAWvlB,EAAY,IAAM6qkC,EAAqB,MAC3DzzjC,SAAUA,WA1DIqN,KA8DtB,CC1MO,SAASwskC,GAA8BhtlC,EAAOmG,GACnD,IAAI8mlC,EAAkBviD,EAAmBG,EAAuBF,EAAuBC,EACvF,MAAMn6E,EAAQy4E,KACR/sF,EAAam9E,GAAc,CAC/Bt5hC,QACAmG,SAEIo2hC,EAA+C,OAAvC0wD,EAAmB9wI,EAAWogF,MAAgB0wD,EAAmBx8H,EAAM6+G,+BAC/EjvC,EAAa35hC,EAAAA,SAAc,KAC/B,IAAIokiC,EACJ,OAA+G,OAAvD,OAAlDA,EAAwB3uF,EAAWkkF,iBAAsB,EAASyK,EAAsBjB,cACrF1tF,EAAWkkF,YAEbxshC,EAAAA,GAAAA,GAAS,CAAC,EAAGso8B,EAAWkkF,WAAY,CACzCwH,uBAAwB1rF,EAAWkkF,WAAWwJ,cAC9C,GACD,CAAC1tF,EAAWkkF,aACTpshC,EAAkD,OAAzCy2hC,EAAoBvuF,EAAWlo8B,OAAiBy2hC,EAAoBH,GAAuBpuF,EAAWvs8B,YAC/GmrB,EAA8D,OAAjD8vgC,EAAwB1uF,EAAWph7B,WAAqB8vgC,EAAwB1uF,EAAWmN,gBAC9G,OAAOz18B,EAAAA,GAAAA,GAAS,CAAC,EAAGso8B,EAAY,CAC9BogF,OACA8D,cACCzG,GAAsB,CACvBH,MAAOt9E,EAAWs9E,MAClBI,OAAQ19E,EAAW09E,OACnBE,aAAc,CAAC,QAAS,WACxBD,cAAe,UACb,CACFS,cAAqE,OAArDoQ,EAAwBxuF,EAAWo+E,gBAAyBoQ,EAC5EnQ,YAAiE,OAAnDoQ,EAAwBzuF,EAAWq+E,cAAuBoQ,EACxE32hC,OAAOJ,EAAAA,GAAAA,GAAS,CACdkI,QAAS8wkC,IACR54kC,GACH8mB,WAAWlnB,EAAAA,GAAAA,GAAS,CAAC,EAAGknB,EAAW,CACjChf,SAASlI,EAAAA,GAAAA,GAAS,CAChB0ohC,OACAuwD,YAAa3wI,EAAW2wI,aACV,MAAb/xjC,OAAoB,EAASA,EAAUhf,YAGhD,CC9CO,SAASmxkC,GAAyB78kC,GACvC,OAAOC,EAAAA,GAAAA,IAAqB,eAAgBD,EAC9C,CFiGAo8kC,GAA+B58jC,UAAY,CAKzCxb,GAAIk+4B,KAAAA,YACJ3h5B,WAAY2h5B,KAAAA,OAAiBX,WAC7Bj14B,GAAI414B,KAAAA,UAAoB,CAACA,KAAAA,QAAkBA,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,QAAmBA,KAAAA,KAAgBA,KAAAA,WEvGvGhi5B,EAAAA,GAAsBA,GAAC,eAAgB,CAAC,OAAQ,kBAAzE,MCJM48kC,GAAc,IACdC,GAAmB,GAC1BC,GAAc,CAClBhqlC,EAAG8plC,IACH7plC,EAAG6plC,KAMCrpiC,GAHDupiC,GAAYhqlC,EAGagqlC,GAAYhqlC,EACpC0gD,GAHD,EAGyBspiC,GAAY/plC,EAEpCgqlC,GAAgBA,CAAC1gkC,EAAMm9G,EAASC,KACpC,MAAM3mI,EAAI0mI,EAAUsj9B,GAAYhqlC,EAC1BC,EAAI0mI,EAAUqj9B,GAAY/plC,EAC1Bm1H,EAAO36H,KAAKioD,MAAMjC,GAAIC,IAAMjmD,KAAKioD,MAAM1iD,EAAGC,GAChD,IAAIwyH,EAAc2C,GALU,IAAM36H,KAAKsgD,IAMvC03E,EAAMh4H,KAAK+b,MAAMi8G,EAAMlpG,GAAQA,EAC/BkpG,GAAO,IACP,MACMyG,EAAQl5H,GAAK,EAAIC,GAAK,EAE5B,MAAO,CACLjF,MAJYP,KAAK2/B,MAAMq4F,EAAMlpG,IAAS,EAKtCsyC,SAHephE,KAAK2xC,KAAK8sF,GAI1B,ECzBI,SAASgx9B,GAA4Bl9kC,GAC1C,OAAOC,EAAAA,GAAAA,IAAqB,kBAAmBD,EACjD,EACmCE,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,OAAQ,UAA/E,MCFDC,GAAY,CAAC,YAAa,cAAe,UAAW,OAAQ,aAkB5Dg9kC,IAAmB98kC,EAAAA,GAAMA,IAAC,MAAO,CACrCvK,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHlB6Q,EAItBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb9B,MAAO,EACPigB,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvDvT,SAAU,WACVg2B,KAAM,kBACND,OAAQ,MACRuz7B,gBAAiB,qBAChBn48B,EAAWgl/B,eAAiB,CAC7Bxj/B,WAAYzC,EAAM0C,YAAY9L,OAAO,CAAC,YAAa,YACnD,IACIknlC,IAAoB/8kC,EAAAA,GAAMA,IAAC,MAAO,CACtCvK,KAAM,kBACNkK,KAAM,QACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOynlC,OAHjBh9kC,EAIvBjB,IAAA,IAAC,MACFE,EAAK,WACLiB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACb9B,MAAO,EACPC,OAAQ,EACRggB,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aACvD2U,aAAc,MACd3tB,SAAU,WACV61B,KAAM,GACNG,KAAM,cAAF5vB,OAAgBunlC,GAAoB,OACxC78jC,OAAQ,GAAF1qB,OAAK,GAA0B,aAAAA,QAAa8J,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,MACvF2iB,UAAW,eACV/kB,EAAW+8kC,aAAe,CAC3B37jC,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,MACvD,IAKK,SAAS46kC,GAAav6kC,GAC3B,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,qBAEF,UACFqI,EAAS,QACTq/kC,EAAO,KACP9tlC,EAAI,UACJsjjC,GACErjjC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCs9kC,EAAepnlC,EAAAA,OAAa3G,GAClC2G,EAAAA,WAAgB,KACdonlC,EAAanmlC,QAAU5H,CAAI,GAC1B,CAACA,IACJ,MAAM6Q,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC41/B,cAAek4F,EAAanmlC,UAAY5H,IAEpCiU,EAtEkBpD,KACxB,MAAM,QACJoD,GACEpD,EAKJ,OAAOsD,EAAAA,GAAcA,GAJP,CACZrU,KAAM,CAAC,QACP6tlC,MAAO,CAAC,UAEmBH,GAA6Bv5kC,EAAQ,EA8DlDG,CAAkBvD,GAYlC,OAAoB6D,EAAAA,GAAAA,KAAK+4kC,IAAkB35kC,EAAAA,GAAAA,GAAS,CAClD0T,MAZoBwmkC,MAEpB,IAAI/0hC,EAAQ,KADS,UAATj5D,EAAmB,GAAK,IACZsjjC,EAIxB,MAHa,UAATtjjC,GAAoBsjjC,EAAY,KAClCrq/B,GAAS,KAEJ,CACLhnD,OAAQlU,KAAK+b,OAAOg0kC,EAAU,IAAO,IAAOV,IAC5Cz/jC,UAAW,WAAF7nB,OAAamzD,EAAK,QAC5B,EAGM+0hC,GACPv/kC,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQnU,MACnC+Q,WAAYA,GACX+C,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKg5kC,GAAmB,CAC7C78kC,WAAYA,EACZpC,UAAWwF,EAAQ05kC,UAGzB,CCrGO,SAASM,GAAqB39kC,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,EAC4BE,EAAAA,GAAsBA,GAAC,WAAY,CAAC,OAAQ,QAAS,UAAW,aAAc,MAAO,WAAY,WAAY,iBAAlI,MC0BD09kC,IAAYv9kC,EAAAA,GAAMA,IAAC,MAAO,CAC9BvK,KAAM,WACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHzB6Q,EAIfM,IAAA,IAAC,MACFrB,GACDqB,EAAA,MAAM,CACLiB,QAAS,OACTwiB,eAAgB,SAChBC,WAAY,SACZ/E,OAAQhgB,EAAM0d,QAAQ,GACvB,IACK6gkC,IAAax9kC,EAAAA,GAAMA,IAAC,MAAO,CAC/BvK,KAAM,WACNkK,KAAM,QACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAO6ymB,OAHxBpomB,CAIhB,CACDshB,gBAAiB,kBACjB5E,aAAc,MACdpb,OAAQ,IACRD,MAAO,IACPxI,WAAY,EACZ9J,SAAU,WACV8gN,cAAe,SAEX4t4B,IAAez9kC,EAAAA,GAAMA,IAAC,MAAO,CACjCvK,KAAM,WACNkK,KAAM,UACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOmme,SAHtB17d,CAIlB,CACD,UAAW,CACTugB,QAAS,UAGPm9jC,IAAkB19kC,EAAAA,GAAMA,IAAC,MAAO,CACpCvK,KAAM,WACNkK,KAAM,aACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOoolC,YAHnB39kC,EAIrBjB,IAAA,IAAC,WACFmB,GACDnB,EAAA,OAAKoE,EAAAA,GAAAA,GAAS,CACb9B,MAAO,OACPC,OAAQ,OACRvS,SAAU,WACV8gN,cAAe,OACftvL,QAAS,EAET6p/B,YAAa,OACbhpgC,WAAY,QACXlB,EAAWuC,SAAW,CAAC,EAAI,CAC5B,yBAA0B,CACxB/G,OAAQ,UACRghB,aAAc,OAEhB,WAAY,CACVhhB,OAAQ,SAEV,IACIkilC,IAAW59kC,EAAAA,GAAMA,IAAC,MAAO,CAC7BvK,KAAM,WACNkK,KAAM,MACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOsolC,KAH1B79kC,EAIdqY,IAAA,IAAC,MACFpZ,GACDoZ,EAAA,MAAM,CACLhX,MAAO,EACPC,OAAQ,EACRob,aAAc,MACd4E,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvDvT,SAAU,WACV61B,IAAK,MACLG,KAAM,MACN/H,UAAW,wBACZ,IACK8gkC,IAAgB99kC,EAAAA,GAAMA,IAACsk+B,GAAY,CACvC7u+B,KAAM,WACNkK,KAAM,WACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOwolC,UAHrB/9kC,EAInBwszB,IAAA,IAAC,MACFvtzB,EAAK,WACLiB,GACDsszB,EAAA,OAAKrpzB,EAAAA,GAAAA,GAAS,CACb/I,OAAQ,EACRrL,SAAU,WACV+1B,OAAQ,EACRC,KAAM,EACN/C,YAAa,EACbF,aAAc,EACdzgB,MAAOq7kC,IACsB,OAA5Bx8kC,EAAW81jC,cAAyB,CACrC10iC,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvDnC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC7C,UAAW,CACTuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQF,QAEzD,IACIy5kC,IAAgBh+kC,EAAAA,GAAMA,IAACsk+B,GAAY,CACvC7u+B,KAAM,WACNkK,KAAM,WACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAO0olC,UAHrBj+kC,EAInBqtzB,IAAA,IAAC,MACFpuzB,EAAK,WACLiB,GACDmtzB,EAAA,OAAKlqzB,EAAAA,GAAAA,GAAS,CACb/I,OAAQ,EACRrL,SAAU,WACV+1B,OAAQ,EACRD,MAAO,EACP7C,YAAa,EACbF,aAAc,EACdzgB,MAAOq7kC,IACsB,OAA5Bx8kC,EAAW81jC,cAAyB,CACrC10iC,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvDnC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC7C,UAAW,CACTuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQF,QAEzD,IACI25kC,IAAoBl+kC,EAAAA,GAAMA,IAACm29B,GAAY,CAC3C1g+B,KAAM,WACNkK,KAAM,eACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAO4olC,cAHjBn+kC,CAIvB,CACDwjB,SAAU,SACVG,WAAY,SACZF,aAAc,aAMT,SAAS26jC,GAAMz7kC,GACpB,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,cAEF,KACJo2hC,EAAI,YACJuwD,EAAW,UACX9hL,EAAS,SACT/q6B,EAAQ,MACR5B,EAAK,qBACLuokC,EAAoB,eACpBmoB,EAAc,aACdroB,EAAY,YACZ3nC,EAAc,EAAC,SACfvuC,EAAQ,WACRw+F,EAAU,KACVjvlC,EAAI,UACJsjjC,EAAS,SACTlwiC,EAAQ,SACRmO,EAAQ,UACR9S,GACExO,EACE4Q,EAAa5Q,EACbyw9B,EAAQy4E,KACR7I,EAAa+I,KACbz2P,EAAWjsyB,EAAAA,QAAa,GACxBsN,EA9KkBpD,KACxB,MAAM,QACJoD,GACEpD,EAWJ,OAAOsD,EAAAA,GAAcA,GAVP,CACZrU,KAAM,CAAC,QACPi5mB,MAAO,CAAC,SACR1sI,QAAS,CAAC,WACViinB,WAAY,CAAC,cACbE,IAAK,CAAC,OACNE,SAAU,CAAC,YACXE,SAAU,CAAC,YACXE,aAAc,CAAC,iBAEYb,GAAsBh6kC,EAAQ,EAgK3CG,CAAkBvD,GAC5Bq+kC,EAAyBF,EAAe1rC,EAAWtjjC,GACnDmvlC,GAAkB3yD,GAAiB,UAATx8hC,IAAqBsjjC,EAAY,GAAKA,EAAY,IAC5ExD,EAAoBA,CAACpkhC,EAAU0zjC,KAC/Bh8kC,GAAYmO,GAGZytkC,EAAetzjC,EAAU17B,IAG7Byw/B,EAAS/09B,EAAU0zjC,EAAS,EAExB5tgC,EAAUA,CAAC5gE,EAAOwukC,KACtB,IAAI,QACFpl9B,EAAO,QACPC,GACErpH,EACJ,QAAgB5kB,IAAZguI,EAAuB,CACzB,MAAMxtF,EAAO57B,EAAMQ,OAAOq7B,wBAC1ButF,EAAUppH,EAAM66B,eAAe,GAAGW,QAAUI,EAAK9mB,KACjDu0G,EAAUrpH,EAAM66B,eAAe,GAAGY,QAAUG,EAAKjnB,GACnD,CACA,MAAM85jC,EAA4B,YAATrvlC,GAA+B,YAATA,EJtLzB,SAACgqI,EAASC,GAAsB,IAAbp9G,EAAI3kB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAClD,MAAMonlC,EAAmB,EAAPzikC,EAClB,IAAI,MACFvuB,GACEivlC,GAAc+B,EAAWtl9B,EAASC,GAEtC,OADA3rI,EAAQA,EAAQuuB,EAAO,GAChBvuB,CACT,CI+KwEqhC,CAAWqqG,EAASC,EAAS+05B,GJ9K7Ev//B,EAACuqG,EAASC,EAASuy5B,KACzC,MAAM,MACJl+hC,EAAK,SACL6gE,GACEouhC,GAAc,GAAIvj9B,EAASC,GAC/B,IAAI/nD,EAAO5jF,GAAS,GASpB,OARKk+hC,EAMHt68B,GAAQ,GALJ/iB,EAAWiuhC,KACblrgC,GAAQ,GACRA,GAAQ,IAKLA,CAAI,EIgKuGziD,CAASuqG,EAASC,EAASoI,QAAQmq5B,IACnJsjB,EAAkBuvC,EAAkBD,EAAS,EAwBzCxB,EAAcjnlC,EAAAA,SAAc,IACnB,UAAT3G,GAGGsjjC,EAAY,IAAM,GACxB,CAACtjjC,EAAMsjjC,IACJisC,EAA+B,YAATvvlC,EAAqBg/hC,EAAc,EACzDwwD,EAAa7olC,EAAAA,OAAa,OAGhCg1B,EAAAA,GAAiBA,IAAC,KACZsv4B,GAEFukL,EAAW5nlC,QAAQoO,OACrB,GACC,CAACi15B,IA4BJ,OAAoB525B,EAAAA,GAAAA,MAAM65kC,GAAW,CACnCz/kC,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQnU,MACnCI,SAAU,EAAcmU,EAAAA,GAAAA,MAAM85kC,GAAY,CACxC1/kC,UAAWwF,EAAQ8kmB,MACnB74mB,SAAU,EAAcwU,EAAAA,GAAAA,KAAK25kC,GAAiB,CAC5C/rI,YAtEkB1h8B,IACtBgyxB,EAAShryB,SAAU,EACnB45E,EAAQ5gE,EAAO,UAAU,EAqErByh8B,WAnEiBzh8B,IACjBgyxB,EAAShryB,UACX45E,EAAQ5gE,EAAO,UACfgyxB,EAAShryB,SAAU,EACrB,EAgEIw68B,UAxDgBxh8B,IAChBgyxB,EAAShryB,UACXgryB,EAAShryB,SAAU,GAErB45E,EAAQ5gE,EAAM+24B,YAAa,SAAS,EAqDhC4qL,YA/DkB3hkC,IAElBA,EAAMogM,QAAU,GAClBx/H,EAAQ5gE,EAAM+24B,YAAa,UAC7B,EA4DI9m5B,WAAY,CACVuC,YAEF3E,UAAWwF,EAAQq6kC,cAChBY,IAAuC76kC,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CAChEzG,SAAU,EAAcwU,EAAAA,GAAAA,KAAK65kC,GAAU,CACrC9/kC,UAAWwF,EAAQu6kC,MACR,MAATlwlC,IAA8BoW,EAAAA,GAAAA,KAAKm5kC,GAAc,CACnD7tlC,KAAMA,EACNsjjC,UAAWA,EACXwqC,QAASqB,EACTvB,YAAaA,QAEAl5kC,EAAAA,GAAAA,KAAK05kC,GAAc,CAClC,wBAAyBa,EACzB,aAAc3uD,EAAW0H,eAAehoiC,EAAM1B,EAAOoy9B,GACrDxp9B,IAAKsolC,EACL/6kC,KAAM,UACNut8B,UAtDgBph8B,IAEpB,IAAIgyxB,EAAShryB,QAGb,OAAQgZ,EAAMxkB,KACZ,IAAK,OAEH0jjC,EAAkB,EAAG,WACrBl/hC,EAAMozB,iBACN,MACF,IAAK,MACH8rgC,EAA2B,YAAT9/iC,EAAqB,GAAK,GAAI,WAChD4gB,EAAMozB,iBACN,MACF,IAAK,UACH8rgC,EAAkBwD,EAAYisC,EAAqB,WACnD3ukC,EAAMozB,iBACN,MACF,IAAK,YACH8rgC,EAAkBwD,EAAYisC,EAAqB,WACnD3ukC,EAAMozB,iBAIV,EA8BIwu6B,SAAU,EACV/z8B,UAAWwF,EAAQo4d,QACnBnse,SAAUA,OAEVs8hC,GAAQuwD,IAA4B14kC,EAAAA,GAAAA,MAAM1N,EAAAA,SAAgB,CAC5DzG,SAAU,EAAcwU,EAAAA,GAAAA,KAAK+5kC,GAAe,CAC1C7jyB,QAASrpS,OAAWvlB,EAAY,IAAM6qkC,EAAqB,MAC3DzzjC,SAAUA,GAA6B,OAAjBuzjC,EACtB91jC,WAAYA,EACZpC,UAAWwF,EAAQy6kC,SACnBvm+B,MAAOsz6B,GAAe/qE,EAAO,MAC7Bxw9B,UAAuBwU,EAAAA,GAAAA,KAAKm6kC,GAAmB,CAC7CvkkC,QAAS,UACT7b,UAAWwF,EAAQ66kC,aACnB5ulC,SAAUu7hC,GAAe/qE,EAAO,WAEnBh88B,EAAAA,GAAAA,KAAKi6kC,GAAe,CACnCv7kC,SAAUA,GAA6B,OAAjBuzjC,EACtB/7wB,QAASrpS,OAAWvlB,EAAY,IAAM6qkC,EAAqB,MAC3Dh2jC,WAAYA,EACZpC,UAAWwF,EAAQ26kC,SACnBzm+B,MAAOsz6B,GAAe/qE,EAAO,MAC7Bxw9B,UAAuBwU,EAAAA,GAAAA,KAAKm6kC,GAAmB,CAC7CvkkC,QAAS,UACT7b,UAAWwF,EAAQ66kC,aACnB5ulC,SAAUu7hC,GAAe/qE,EAAO,eAK1C,CC/UO,SAAS++H,GAA2Bn/kC,GACzC,OAAOC,EAAAA,GAAAA,IAAqB,iBAAkBD,EAChD,CACO,MAAMo/kC,IAAqBl/kC,EAAAA,GAAsBA,GAAC,iBAAkB,CAAC,OAAQ,WAAY,aCF1FC,GAAY,CAAC,YAAa,WAAY,QAAS,QAAS,QAAS,YAmBjEk/kC,IAAkBh/kC,EAAAA,GAAMA,IAAC,OAAQ,CACrCvK,KAAM,iBACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAW,CAACA,EAAOpG,KAAM,CAC9C,CAAC,KAADgG,OAAM4plC,GAAmBt8kC,WAAalN,EAAOkN,UAC5C,CACD,CAAC,KAADtN,OAAM4plC,GAAmB95kC,WAAa1P,EAAO0P,YANzBjF,EAQrBM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb7B,OAAQo7kC,GACRr7kC,MAAOq7kC,GACP3tlC,SAAU,WACVg2B,KAAM,gBAAF5vB,OAAkBunlC,GAAgB,YACtCn7kC,QAAS,cACTwiB,eAAgB,SAChBC,WAAY,SACZtH,aAAc,MACdvc,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKC,QAC1C8D,WAAYtJ,EAAM+C,WAAWuG,WAC7B,YAAa,CACX+Y,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQuC,WAAWC,OAE5D,CAAC,KAAD1P,OAAM4plC,GAAmB95kC,WAAa,CACpC9E,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,cAE/C,CAAC,KAAD5S,OAAM4plC,GAAmBt8kC,WAAa,CACpCotM,cAAe,OACf1vM,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAK/B,WAE3CvC,EAAWm1a,QAASlya,EAAAA,GAAAA,GAAS,CAAC,EAAGlE,EAAM+C,WAAW6H,MAAO,CAC1D1J,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQmC,KAAKE,YACzC,IAKI,SAASu6kC,GAAYt8kC,GAC1B,MAAMrT,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,oBAEF,UACFqI,EAAS,SACT2E,EAAQ,MACRtU,EAAK,MACLknb,EAAK,MACL1ia,EAAK,SACL1N,GACE3V,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,EAAa5Q,EACbgU,EAjEkBpD,KACxB,MAAM,QACJoD,EAAO,SACP2B,EAAQ,SACRxC,GACEvC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQ8V,GAAY,WAAYxC,GAAY,aAErD,OAAOe,EAAAA,GAAcA,GAACD,EAAOu7kC,GAA4Bx7kC,EAAQ,EAwDjDG,CAAkBvD,GAC5BooD,EAAQn6D,EAAQ,GAAK,GAAKf,KAAKsgD,GAAK,EAAItgD,KAAKsgD,GAAK,EAClD9iD,EAAS,IAA4Cyqb,EAAQ,IAAO,GACpE1ib,EAAIvF,KAAK+b,MAAM/b,KAAKsnD,IAAI4T,GAAS19D,GACjCgI,EAAIxF,KAAK+b,MAAM/b,KAAKunD,IAAI2T,GAAS19D,GACvC,OAAoBmZ,EAAAA,GAAAA,KAAKi7kC,IAAiB77kC,EAAAA,GAAAA,GAAS,CACjDrF,WAAW8F,EAAAA,GAAIA,GAAC9F,EAAWwF,EAAQnU,MACnC,kBAAiBsT,QAAkBpX,EACnC,kBAAiB4Z,QAAkB5Z,EACnCyY,KAAM,SACN+S,MAAO,CACLmG,UAAW,aAAF7nB,OAAexC,EAAC,QAAAwC,OAAOvC,EAAI,GAAoC,OAE1EsN,WAAYA,GACX+C,EAAO,CACR1T,SAAUojB,IAEd,CCtFO,MAAMuskC,GAAiB5+kC,IAOxB,IAPyB,KAC7BurhC,EAAI,MACJl+hC,EAAK,mBACLwxlC,EAAkB,WAClB79K,EAAU,WACVg9K,EAAU,MACVv+H,GACDz/8B,EACC,MAAM8+kC,EAAezxlC,EAAQoy9B,EAAMjx7B,SAASnhC,GAAS,KAC/C0xlC,EAAc,GAEdC,EAAUzzD,EAAO,GAAK,GACtBxxG,EAAa9o2B,GACI,OAAjB6tgC,IAGAvzD,EACW,KAATt68B,EACsB,KAAjB6tgC,GAAwC,IAAjBA,EAEzBA,IAAiB7tgC,GAAQ6tgC,EAAe,KAAO7tgC,EAEjD6tgC,IAAiB7tgC,GAE1B,IAAK,IAAIA,EAdSs68B,EAAO,EAAI,EAcFt68B,GAAQ+tgC,EAAS/tgC,GAAQ,EAAG,CACrD,IAAI5+D,EAAQ4+D,EAAKz5E,WACJ,IAATy5E,IACF5+D,EAAQ,MAEV,MAAM0ia,GAASw2mB,IAAkB,IAATt68B,GAAcA,EAAO,IAC7C5+D,EAAQot8B,EAAMjtoB,aAAangU,GAC3B,MAAM1N,EAAWo16B,EAAW9o2B,GAC5B8tgC,EAAYl0lC,MAAmB4Y,EAAAA,GAAAA,KAAKk7kC,GAAa,CAC/CtzjC,GAAI1mB,EAAWq5kC,OAAajzlC,EAC5B8C,MAAOojF,EACP8jW,MAAOA,EACPpwa,SAAUA,EACVxC,SAAU6+5B,EAAW/v1B,GACrB5+D,MAAOA,EACP,aAAcwskC,EAAmBxskC,IAChC4+D,GACL,CACA,OAAO8tgC,CAAW,EAEPE,GAAoBxglC,IAM3B,IAN4B,MAChCgh9B,EAAK,MACLpy9B,EAAK,WACL2z6B,EAAU,mBACV69K,EAAkB,WAClBb,GACDv/kC,EACC,MAAM8W,EAAIkq8B,EAAMjtoB,aAChB,MAAO,CAAC,CAAC,EAAGj9T,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,GAAIA,EAAE,OAAQ,CAAC,EAAGA,EAAE,QAAQhiB,KAAI,CAAAwkB,EAAuBlqB,KAAU,IAA/BqpY,EAAa7kX,GAAM0F,EACjN,MAAMpT,EAAWuyX,IAAgB7pY,EACjC,OAAoBoW,EAAAA,GAAAA,KAAKk7kC,GAAa,CACpCtskC,MAAOA,EACPgZ,GAAI1mB,EAAWq5kC,OAAajzlC,EAC5B8C,MAAOA,EAAQ,EACfknb,OAAO,EACP5ya,SAAU6+5B,EAAW9piB,GACrBvyX,SAAUA,EACV,aAAck6kC,EAAmBxskC,IAChC6kX,EAAY,GACf,ECjESgotB,GAAwBl/kC,IAM/B,IANgC,MACpC3S,EACA8kiC,cAAeirB,EAAiB,MAChC39F,EAAK,MACLzw9B,EAAK,SACL46hC,GACD5phC,EACC,MAAMmyhC,EAAgBz8hC,EAAAA,SAAc,IAAMo9hC,GAAuBG,yBAAyB,CACxF5liC,QACAoy9B,QACAzw9B,QACAmjiC,cAAeirB,EACflxB,YAAaF,GAAyB95/B,IACtC03/B,WACAS,aAAcA,IAAMA,GAAa5qE,EAAOmqE,EAAU,WAGpD,IAEA,OAAgB,MAATv8hC,EAAgBA,EAAQ8kiC,CAAa,ECrBxC3yhC,GAAY,CAAC,OAAQ,cAAe,YAAa,aAAc,kBAAmB,QAAS,YAAa,QAAS,eAAgB,gBAAiB,2CAA4C,UAAW,UAAW,gBAAiB,cAAe,cAAe,qBAAsB,oBAAqB,mBAAoB,WAAY,OAAQ,QAAS,SAAU,eAAgB,cAAe,sBAAuB,YAAa,WAAY,WAAY,YA+Bpc2/kC,IAAgBz/kC,EAAAA,GAAMA,IAAC+3jC,GAAgB,CAC3CtikC,KAAM,eACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHzB6Q,CAInB,CACDuB,QAAS,OACTsiB,cAAe,SACf90B,SAAU,aAEN2wlC,IAAyB1/kC,EAAAA,GAAMA,IAACo0jC,GAAsB,CAC1D3+jC,KAAM,eACNkK,KAAM,gBACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOoqlC,eAHhB3/kC,CAI5B,CACDjR,SAAU,WACV81B,MAAO,GACPD,IAAK,KAEDg7jC,GAA2B,CAAC,QAAS,WAY9BC,GAAyB7plC,EAAAA,YAAiB,SAAmB2M,EAASpM,GACjF,MAAMwp9B,EAAQy4E,KACRlpiC,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,kBAEF,KACFo2hC,EAAO9rE,EAAM6+G,+BAA8B,YAC3Cwd,GAAc,EAAK,UACnB9hL,EAAS,WACTp75B,EAAU,gBACV058B,EACAr18B,MAAO62iC,EACP/vhC,UAAWgwhC,EACX1sjC,MAAO2ohC,EAAS,aAChBj4/B,EACAo0gC,cAAeirB,EAAiB,yCAChC1xB,GAA2C,EAAK,QAChD6H,EAAO,QACPD,EAAO,cACP/J,EAAa,YACbC,EAAW,YACXuE,EAAc,EAAC,mBACfmsD,EAAkB,kBAClBC,EAAiB,iBACjBpkC,EAAgB,SAChBv2D,EACA9v8B,KAAMgz9B,EAAM,MACZ+lB,EAAQ62D,GAAwB,OAChCz2D,EAAM,aACN+pB,EAAY,YACZC,EAAW,oBACXE,EAAmB,UACnBv1iC,EAAS,SACT2E,EAAQ,SACRmO,EACAs5gC,SAAU2kB,GACRv/iC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCyD,EAAsB,MAAd62iC,EAAqBA,EAAavgB,GAAuB36hC,GACjEmrB,EAA8B,MAAlBgwhC,EAAyBA,EAAiBzhG,GACtD,MACJjr9B,EAAK,kBACLwhjC,EAAiB,SACjBjlB,GACEolB,GAA+B,CACjC75iC,KAAM,YACNy0hC,SAAU2kB,EACVlhjC,MAAO2ohC,EACPj4/B,eACAyh+B,WACAgvD,aAAc1b,KAEV0sD,EAAuBN,GAAsB,CACjD7xlC,QACA8kiC,cAAeirB,EACf39F,QACAzw9B,QACA46hC,aAEIyF,EAAa+I,KACbz7/B,EAAM07/B,GAAOzO,IACb,KACJl6+B,EAAI,QACJ0jgC,EAAO,aACPG,EAAY,SACZE,EAAQ,wBACRO,GACErB,GAAS,CACXjjgC,KAAMgz9B,EACN+lB,QACAI,SACA+pB,eACApzD,SAAUqvD,EACVgE,cACAE,yBAEI,aACJ2iB,EAAY,qBACZE,GACEH,GAAgB+pB,EAAsBj0D,EAAMyoB,GAC1C+pC,EAAiBrolC,EAAAA,aAAkB,CAAC6t9B,EAAUk8H,KAClD,MAAMrwjC,EAAUq8/B,GAA4BC,EAA0CjsE,GAChFigI,EAAkC,UAAbD,GAAqC,YAAbA,GAA0Bh3D,EAAM3iqB,SAAS,WACtF65tB,EAAoB3/kC,IAGpB,IAHqB,MACzB+Q,EAAK,IACL9iB,GACD+R,EACC,QAAIszhC,IAAWlkgC,EAAQkkgC,EAASrliC,QAG5BsliC,IAAWnkgC,EAAQre,EAAOwihC,QAG1BhK,IAAiBn6/B,EAAQre,EAAO4rB,OAGhC6s/B,IAAep6/B,EAAQuN,EAAK+ijC,EAAqBzxlC,EAAM8iB,KAGhD,EAEP6ukC,EAAe,SAACC,GACpB,GAAIA,GAD+B5olC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,KACb,EACvB,OAAO,EAET,GAA0B,MAAtBijlC,GAA8BA,EAAmB2F,EAAWJ,GAC9D,OAAO,EAET,GAAItF,EACF,OAAQsF,GACN,IAAK,QACH,OAAQtF,EAAkB16H,EAAMvu4B,SAASsugC,EAAsBK,GAAY,SAC7E,IAAK,UACH,OAAQ1F,EAAkB16H,EAAMjtE,WAAWgtM,EAAsBK,GAAY,WAC/E,IAAK,UACH,OAAQ1F,EAAkB16H,EAAMhtE,WAAW+sM,EAAsBK,GAAY,WAC/E,QACE,OAAO,EAGb,OAAO,CACT,EACA,OAAQJ,GACN,IAAK,QACH,CACE,MAAMK,EAAoBx0D,GAAuB/nE,EAAUmyG,EAAcnqC,GACnEw0D,EAAmBtgI,EAAMvu4B,SAASsugC,EAAsBM,GAG9D,OAAQH,EAAkB,CACxB5ukC,MAHY0u8B,EAAMhtE,WAAWgtE,EAAMjtE,WAAWutM,EAAkB,GAAI,GAIpE9xlC,IAHUwx9B,EAAMhtE,WAAWgtE,EAAMjtE,WAAWutM,EAAkB,IAAK,QAI9DH,EAAaE,EACtB,CACF,IAAK,UACH,CACE,MAAME,EAAqBvgI,EAAMjtE,WAAWgtM,EAAsBj8H,GAGlE,OAAQo8H,EAAkB,CACxB5ukC,MAHY0u8B,EAAMhtE,WAAWutM,EAAoB,GAIjD/xlC,IAHUwx9B,EAAMhtE,WAAWutM,EAAoB,QAI1CJ,EAAar8H,EAAUwqE,EAChC,CACF,IAAK,UACH,CACE,MAAMkyD,EAAqBxgI,EAAMhtE,WAAW+sM,EAAsBj8H,GAGlE,OAAQo8H,EAAkB,CACxB5ukC,MAHYkvkC,EAIZhylC,IAHUgylC,MAILL,EAAar8H,EACtB,CACF,QACE,MAAM,IAAItn9B,MAAM,iBACpB,GACC,CAACsvhC,EAAMi0D,EAAsB9zD,EAA0C6H,EAASmiC,EAAcpiC,EAASvF,EAAamsD,EAAoBC,EAAmB16H,EAAO8pE,EAAeC,EAAa7s/B,EAAK8r/B,IAChMu1D,GAAahzjC,EAAAA,GAAKA,KAClBunhC,EAAY78iC,EAAAA,SAAc,KAC9B,OAAQg6C,GACN,IAAK,QACH,CACE,MAAMwwiC,EAAoBA,CAACC,EAAWhC,KACpC,MAAM2B,EAAoBx0D,GAAuB60D,EAAWzqB,EAAcnqC,GAC1EyoB,EAAwBv0F,EAAMvu4B,SAASsugC,EAAsBM,GAAoB3B,EAAS,EAE5F,MAAO,CACL3+F,SAAU0gG,EACV7tC,UAAW5yF,EAAMjx7B,SAASgxjC,GAC1BvwlC,SAAU2vlC,GAAe,CACvBvxlC,QACAoy9B,QACA8rE,OACA/rC,SAAU0gG,EACVrB,mBAAoBxvD,EAAW2H,qBAC/Bh2H,WAAYm/K,GAAah+kC,GAAY47kC,EAAeoC,EAAW,SAC/DnC,eAGN,CACF,IAAK,UACH,CACE,MAAMoC,EAAe3gI,EAAM/w7B,WAAW8wjC,GAChCa,EAAsBA,CAACC,EAAanC,KACxCnqC,EAAwBv0F,EAAMjtE,WAAWgtM,EAAsBc,GAAcnC,EAAS,EAExF,MAAO,CACL9rC,UAAW+tC,EACX5gG,SAAU6gG,EACVpxlC,SAAUgwlC,GAAkB,CAC1Bx/H,QACApy9B,MAAO+ylC,EACP5gG,SAAU6gG,EACVxB,mBAAoBxvD,EAAW4H,uBAC/Bj2H,WAAYs/K,GAAen+kC,GAAY47kC,EAAeuC,EAAa,WACnEtC,eAGN,CACF,IAAK,UACH,CACE,MAAMuC,EAAe9gI,EAAM7w7B,WAAW4wjC,GAChCgB,EAAsBA,CAACC,EAAatC,KACxCnqC,EAAwBv0F,EAAMhtE,WAAW+sM,EAAsBiB,GAActC,EAAS,EAExF,MAAO,CACL9rC,UAAWkuC,EACX/gG,SAAUghG,EACVvxlC,SAAUgwlC,GAAkB,CAC1Bx/H,QACApy9B,MAAOkzlC,EACP/gG,SAAUghG,EACV3B,mBAAoBxvD,EAAW6H,uBAC/Bl2H,WAAYy/K,GAAet+kC,GAAY47kC,EAAe0C,EAAa,WACnEzC,eAGN,CACF,QACE,MAAM,IAAI/hlC,MAAM,2CACpB,GACC,CAACyzC,EAAM+v6B,EAAOpy9B,EAAOk+hC,EAAM8D,EAAW2H,qBAAsB3H,EAAW4H,uBAAwB5H,EAAW6H,uBAAwBw+B,EAAc1hB,EAAyBwrC,EAAsBzB,EAAgBC,EAAY77kC,IACxNvC,GAAa5Q,EACbgU,GAzQkBpD,KACxB,MAAM,QACJoD,GACEpD,EAKJ,OAAOsD,EAAAA,GAAcA,GAJP,CACZrU,KAAM,CAAC,QACPwwlC,cAAe,CAAC,kBAEWnD,GAA0Bl5kC,EAAQ,EAiQ/CG,CAAkBvD,IAClC,OAAoBwD,EAAAA,GAAAA,MAAM+7kC,IAAet8kC,EAAAA,GAAAA,GAAS,CAChD5M,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,GAAQnU,KAAM2O,GAC9BoC,WAAYA,IACX+C,EAAO,CACR1T,SAAU,EAAcwU,EAAAA,GAAAA,KAAKq6kC,IAAOj7kC,EAAAA,GAAAA,GAAS,CAC3Cm35B,UAAwB,MAAbA,EAAoBA,IAAc64I,EAC7CipC,YAAaA,GAAerzD,EAAM3iqB,SAAS,SAC3Cz4X,MAAOA,EACP0B,KAAM2gD,EACN67+B,KAAMA,EACNwC,YAAaA,EACbgwD,eAAgBA,EAChBroB,aAAcA,EACdE,qBAAsBA,EACtBooB,WAAYA,EACZ77kC,SAAUA,EACVmO,SAAUA,GACTiiiC,IAAawD,IAAiCtyiC,EAAAA,GAAAA,KAAK27kC,GAAwB,CAC5E5hlC,UAAWwF,GAAQq8kC,cACnBp8kC,MAAOA,EACP8mB,UAAWA,EACX0qiC,eAAgBA,IAAMrhB,EAAQG,GAC9BghB,oBAAqBhhB,EACrBmhB,cAAerlC,EAAW+G,iBAC1Bi+B,WAAYA,IAAMjhB,EAAQK,GAC1B0gB,gBAAiB1gB,EACjB6gB,UAAWjlC,EAAWgH,aACtBz2hC,WAAYA,QAGlB,IC9TO,SAAS8glC,GAA4BrhlC,GAC1C,OAAOC,EAAAA,GAAAA,IAAqB,kBAAmBD,EACjD,EACmCE,EAAAA,GAAsBA,GAAC,kBAAmB,CAAC,OAAQ,OAAQ,SAAvF,MCHDC,GAAY,CAAC,OAAQ,WAAY,YAAa,aAAc,kBAAmB,QAAS,YAAa,QAAS,eAAgB,gBAAiB,2CAA4C,UAAW,UAAW,gBAAiB,cAAe,cAAe,qBAAsB,oBAAqB,WAAY,OAAQ,SAAU,eAAgB,cAAe,sBAAuB,YAAa,WAAY,WAAY,QAAS,eAAgB,YAgC7bmhlC,IAAmBjhlC,EAAAA,GAAMA,IAAC+3jC,GAAgB,CAC9CtikC,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOpG,MAHtB6Q,EAItBjB,IAAA,IAAC,WACFmB,GACDnB,EAAA,MAAM,CACLoj7B,UAAW,OACX9g7B,MAAO,OACP,iDAAkD,CAChD6/kC,eAAgBhhlC,EAAWihlC,gBAAkB,SAAW,QAE1D//jC,UjLzCuC,IiL0CxC,IACKggkC,IAAmBphlC,EAAAA,GAAMA,IAAC2ghC,GAAU,CACxClrhC,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOmnC,MAHtB18B,CAItB,CACDkf,QAAS,IAELmikC,IAAmBrhlC,EAAAA,GAAMA,IAACutkC,GAAU,CACxC93kC,KAAM,kBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOglB,MAHtBva,EAItBqY,IAAA,IAAC,MACFpZ,GACDoZ,EAAA,MAAM,CACL6G,QAAS,WACTD,OAAQ,UACR,kBAAmB,CACjB4D,UAAW,GAEb,UAAW,CACTvB,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,KAAM4O,GAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAOyC,eAEvL,iBAAkB,CAChBsc,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvDnC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC7C,2BAA4B,CAC1BuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQe,OAG3D,qBAAsB,CACpB8b,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,KAAMsO,GAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO+C,eAExL,IAWYg8kC,GAA4BtrlC,EAAAA,YAAiB,SAAsB2M,EAASpM,GACvF,IAAI+J,EAAMihlC,EAAuBC,EACjC,MAAMzhI,EAAQy4E,KACRuU,EAAe/2iC,EAAAA,OAAa,MAC5B498B,GAAY3o7B,EAAAA,GAAAA,GAAW10B,EAAKw2iC,GAC5Bz9iC,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,qBAEF,KACFo2hC,EAAO9rE,EAAM6+G,+BAA8B,SAC3C6iB,EAAW,GAAE,UACbnnL,EAAS,WACTp75B,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EACA18B,MAAO2ohC,EAAS,aAChBj4/B,EACAo0gC,cAAeirB,EAAiB,yCAChC1xB,GAA2C,EAAK,QAChD6H,EAAO,QACPD,EAAO,cACP/J,EAAa,YACbC,EAAW,YACXuE,EAAc,EAAC,mBACfmsD,EAAkB,kBAClBC,EAAiB,SACjB36F,EACA9v8B,KAAMgz9B,EAAM,OACZmmB,EAAM,aACN+pB,EAAY,YACZC,EAAW,oBACXE,EAAmB,UACnBv1iC,EAAS,SACT2E,EAAQ,SACRmO,EAAQ,MACRm4gC,EAAQ,CAAC,SAAQ,aACjB24D,GAAe,EACfx3D,SAAU2kB,GACRv/iC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,MACJnS,EACAwhjC,kBAAmBwyC,EAAoB,SACvCz3D,GACEolB,GAA+B,CACjC75iC,KAAM,eACNy0hC,SAAU2kB,EACVlhjC,MAAO2ohC,EACPj4/B,eACAyh+B,WACAgvD,aAAc1b,KAEVzD,EAAa+I,KACbz7/B,EAAM07/B,GAAOzO,GACbhqhC,EAAalK,EAAAA,SAAc,KAAMmN,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACzD6xlC,kBAAmBp0C,EAAa91iC,WAC9B,CAAC3H,IACCgU,EA/HkBpD,KACxB,MAAM,QACJoD,GACEpD,EAMJ,OAAOsD,EAAAA,GAAcA,GALP,CACZrU,KAAM,CAAC,QACPutC,KAAM,CAAC,QACPniB,KAAM,CAAC,SAEoBymkC,GAA6B19kC,EAAQ,EAsHlDG,CAAkBvD,GAC5B0hlC,EAA8L,OAAjLthlC,EAAoF,OAA5EihlC,EAAiC,MAATh+kC,OAAgB,EAASA,EAAMs+kC,kBAA4BN,EAAsC,MAAdrilC,OAAqB,EAASA,EAAWmilC,kBAA4B/glC,EAAO+glC,GAC5MS,EAAiBpoI,GAAa,CAClCn4D,YAAaqgM,EACb3rI,kBAAwG,OAApFurI,EAAqC,MAAbn3jC,OAAoB,EAASA,EAAUw3jC,kBAA4BL,EAA2C,MAAnB5oI,OAA0B,EAASA,EAAgBipI,iBAC1L3hlC,WAAY,CAAC,EACbpC,UAAWwF,EAAQiX,OAEfulkC,EAAuBN,GAAsB,CACjD7xlC,QACA8kiC,cAAeirB,EACf39F,QACAzw9B,QACA46hC,aAEIilB,GAAoBp8F,EAAAA,GAAAA,IAAiBho7B,GAAY42jC,EAAqB52jC,EAAU,SAAU,YAC1F,wBACJuphC,GACErB,GAAS,CACXjjgC,KAAMgz9B,EACN+lB,QACAI,SACA+pB,eACApzD,SAAUqvD,EACVgE,cACAE,wBAEI0uC,GAAmBhvI,EAAAA,GAAAA,IAAiBho7B,IACxCuphC,EAAwBvphC,EAAU,SAAS,IAE7C/0B,EAAAA,WAAgB,KACd,GAA6B,OAAzB+2iC,EAAa91iC,QACf,OAEF,MAAMu7kC,EAAezlC,EAAa91iC,QAAQD,cAAc,0DACxD,IAAKw7kC,EACH,OAEF,MAAM7y5B,EAAY6y5B,EAAa7y5B,UAG/Bot3B,EAAa91iC,QAAQy6yB,UAAY/xnB,EAAY,CAAC,IAEhD,MAAM0+5B,GAAiBrolC,EAAAA,aAAkBgslC,IACvC,MAAMtyjC,EAAUq8/B,GAA4BC,EAA0CjsE,GA4BtF,UA1BM6zE,IAAWlkgC,EAAQkkgC,EAASouD,OAG5BnuD,IAAWnkgC,EAAQsyjC,EAAcnuD,OAGjChK,IAAiBn6/B,EAAQsyjC,EAAc/kjC,OAGvC6s/B,IAAep6/B,EAAQuN,EAAK+kjC,QAM5BjiI,EAAM/w7B,WAAWgzjC,GAAgB3zD,IAAgB,IAG3B,MAAtBmsD,IAA8BA,EAAmBz6H,EAAM4tG,SAASq0B,GAAcjyjC,UAAW,aAGzF0qjC,IACMA,EAAkBuH,EAAc,UAIE,GAC7C,CAACh2D,EAA0CjsE,EAAO6zE,EAASC,EAAShK,EAAe5s/B,EAAK6s/B,EAAauE,EAAamsD,EAAoBC,IACnIwH,GAAcjslC,EAAAA,SAAc,KAChC,MAAM60hC,EAAa9qE,EAAM8qE,WAAWi1D,GACpC,MAAO,CAACj1D,KAAez2hC,MAAM/G,KAAK,CAChCzC,OAAQwC,KAAK8/B,KAAK,KAAUu0jC,GAAY,IACvC,CAACh0jC,EAAGt/B,IAAU4x9B,EAAMw/G,WAAW10C,EAAY42D,GAAYtzlC,EAAQ,MAAK,GACtE,CAAC2xlC,EAAsB2B,EAAU1hI,IACpC,OAAoBh88B,EAAAA,GAAAA,KAAKk9kC,IAAkB99kC,EAAAA,GAAAA,GAAS,CAClD5M,IAAKq98B,EACL918B,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,GACX+C,EAAO,CACR1T,UAAuBwU,EAAAA,GAAAA,KAAKq9kC,GAAkB,CAC5C1kE,cAAepiH,KAAe64I,EAC9BrviC,KAAM,UACN,aAAc6rhC,EAAWwH,uBACzBr5hC,UAAWwF,EAAQo5B,KACnBntC,SAAU0ylC,GAAYpulC,KAAI+ooB,IACxB,GAAI8kd,GAAgBrD,GAAezhd,GACjC,OAAO,KAET,MAAMy9S,EAAa0lC,EAAMo0E,QAAQv3Z,EAAQjvoB,GACzC,OAAoBoW,EAAAA,GAAAA,KAAK69kC,GAAWz+kC,EAAAA,GAAAA,GAAS,CAC3C82S,QAASA,KAAOrpS,GAAYmxkC,EAAiBnld,GAC7C33nB,SAAUo16B,EACV536B,SAAUA,GAAY47kC,GAAezhd,GACrCk0U,cAAelg8B,EACf9M,KAAM,SAGN,gBAAiB8M,EACjB,gBAAiByp6B,GAChBynK,EAAgB,CACjBvylC,SAAUww9B,EAAMzv7B,OAAOssmB,EAAQivZ,EAAO,cAAgB,iBACpD9rE,EAAM4+G,MAAM/hc,GAAQ,QAIhC,ICnQO,SAASsld,GAAwCvilC,GACtD,OAAOC,EAAAA,GAAAA,IAAqB,8BAA+BD,EAC7D,EAC+CE,EAAAA,GAAsBA,GAAC,8BAA+B,CAAC,SCH/F,SAASsilC,GAA+CxilC,GAC7D,OAAOC,EAAAA,GAAAA,IAAqB,qCAAsCD,EACpE,EACsDE,EAAAA,GAAsBA,GAAC,qCAAsC,CAAC,OAAQ,SAArH,MCHDC,GAAY,CAAC,YAAa,WAAY,YAAa,WAAY,WAAY,QAAS,SAAU,QAAS,YAAa,gBAqBpHsilC,IAAsCpilC,EAAAA,GAAMA,IAAC2ghC,GAAU,CAC3DlrhC,KAAM,qCACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHC6Q,EAIzCM,IAAA,IAAC,MACFrB,EAAK,WACLiB,GACDI,EAAA,MAAM,CACL8gB,UpL1BuC,IoL2BvC/f,MAAO,GACP6d,QAAS,EACTsE,SAAU,SACV,iDAAkD,CAChD09jC,eAAgBhhlC,EAAWihlC,gBAAkB,SAAW,QAE1D,yBAA0B,CACxB,UAAW,CACTh/J,UAAW,SAGf,4CAA6C,CAC3CA,UAAW,QAEb,wBAAyB,CACvBli6B,WAAY,aAAF9qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,UAEzD,UAAW,CACTpD,QAAS,QACTqrY,QAAS,KAETtrY,OAAQ,2BAEX,IACK+glC,IAAsCrilC,EAAAA,GAAMA,IAACutkC,GAAU,CAC3D93kC,KAAM,qCACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOglB,MAHCva,EAIzCjB,IAAA,IAAC,MACFE,GACDF,EAAA,MAAM,CACLmgB,QAAS,EACTD,OAAQ,UACR5d,MpL3D+C,GoL4D/C0iB,eAAgB,SAChB,kBAAmB,CACjBlB,UAAW,GAEb,UAAW,CACTvB,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAOyC,aAAY,KAAM4O,GAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAOyC,eAEvL,iBAAkB,CAChBsc,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQnC,KACvDnC,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQsD,aAC7C,2BAA4B,CAC1BuZ,iBAAkBriB,EAAMmD,MAAQnD,GAAOoD,QAAQoC,QAAQe,OAG3D,qBAAsB,CACpB8b,gBAAiBriB,EAAMmD,KAAO,QAAHjN,OAAW8J,EAAMmD,KAAKC,QAAQoC,QAAQkw8B,YAAW,OAAAx/8B,OAAM8J,EAAMmD,KAAKC,QAAQE,OAAO+C,aAAY,KAAMsO,GAAM3U,EAAMoD,QAAQoC,QAAQnC,KAAMrD,EAAMoD,QAAQE,OAAO+C,eAExL,IAIYg9kC,GAA+CtslC,EAAAA,YAAiB,SAAyC2M,EAASpM,GAC7H,IAAIgslC,EACJ,MAAMx1C,EAAe/2iC,EAAAA,OAAa,MAC5B498B,GAAY3o7B,EAAAA,GAAAA,GAAW10B,EAAKw2iC,GAC5B77uB,EAAiBl7T,EAAAA,OAAa,MAC9B1G,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,wCAEF,UACF6k6B,EAAS,SACTwlF,EAAQ,UACRhi/B,EAAS,SACT2E,EAAQ,SACRmO,EAAQ,MACRyvF,EAAK,OACL79F,EAAM,MACNe,EAAK,UACL8mB,EAAS,aACTq3jC,GACEpylC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,EAAalK,EAAAA,SAAc,KAAMmN,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACzD6xlC,kBAAmBp0C,EAAa91iC,WAC9B,CAAC3H,IACCgU,EAnGkBpD,KACxB,MAAM,QACJoD,GACEpD,EAKJ,OAAOsD,EAAAA,GAAcA,GAJP,CACZrU,KAAM,CAAC,QACPorB,KAAM,CAAC,SAEoB4nkC,GAAgD7+kC,EAAQ,EA2FrEG,CAAkBvD,GAC5BsilC,EAA8G,OAAnFD,EAAiC,MAATh/kC,OAAgB,EAASA,EAAMk/kC,yBAAmCF,EAAwBF,GAkBnJ,OAjBArslC,EAAAA,WAAgB,KACd,GAA6B,OAAzB+2iC,EAAa91iC,QACf,OAEF,MAAMyrlC,EAAa31C,EAAa91iC,QAAQD,cAAc,yCAItD,GAHIwL,GAAU835B,GAAaooL,GACzBA,EAAWr9kC,SAERq9kC,GAAcxxxB,EAAej6T,UAAYyrlC,EAC5C,OAEFxxxB,EAAej6T,QAAUyrlC,EACzB,MAAM/i6B,EAAY+i6B,EAAW/i6B,UAG7Bot3B,EAAa91iC,QAAQy6yB,UAAY/xnB,EAAY,CAAC,KAE5B57K,EAAAA,GAAAA,KAAKq+kC,IAAqCj/kC,EAAAA,GAAAA,GAAS,CACrE5M,IAAKq98B,EACL918B,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9BoC,WAAYA,EACZw8gC,cAAepiH,GAAa935B,EAC5BsB,KAAM,WACLb,EAAO,CACR1T,SAAU8wG,EAAMxsG,KAAI+ooB,IAClB,IAAI+ld,EAAoBC,EACxB,GAAIlB,GAA4D,OAA3CiB,EAAqB/ld,EAAO0kS,aAAuBqhL,EAAmBtulC,KAAKuooB,EAAQA,EAAOjvoB,OAC7G,OAAO,KAET,MAAM0s7B,EAAaz9S,EAAOy9S,WAAWz9S,EAAOjvoB,OAC5C,OAAoBoW,EAAAA,GAAAA,KAAKy+kC,GAAyBr/kC,EAAAA,GAAAA,GAAS,CACzD82S,QAASA,KAAOrpS,GAAYkv+B,EAASljX,EAAOjvoB,OAC5CsX,SAAUo16B,EACV536B,SAAUA,IAA0D,OAA5CmglC,EAAsBhmd,EAAO0kS,iBAAsB,EAASshL,EAAoBvulC,KAAKuooB,EAAQA,EAAOjvoB,QAC5Hmj9B,cAAelg8B,EACf9M,KAAM,SAGN,gBAAiB8M,EACjB,aAAcgsnB,EAAOulZ,UACrB,gBAAiB9nG,EACjBv86B,UAAWwF,EAAQiX,MACL,MAAb8P,OAAoB,EAASA,EAAUo4jC,wBAAyB,CACjElzlC,SAAUqtoB,EAAOjqnB,QACfiqnB,EAAOjqnB,MAAM,MAGvB,ICjKakwkC,GAAwBvilC,IAQ/B,IARgC,IACpC28B,EAAG,MACHtvC,EAAK,MACLoy9B,EAAK,KACL8rE,EAAI,WACJvqH,EAAU,iBACVwhL,EAAgB,SAChBrB,GACDnhlC,EACC,MAAM8+kC,EAAezxlC,EAAQoy9B,EAAMjx7B,SAASnhC,GAAS,KAC/CiP,EAAS,GACTy96B,EAAa9o2B,GACI,OAAjB6tgC,IAGAvzD,EACW,KAATt68B,EACsB,KAAjB6tgC,GAAwC,IAAjBA,EAEzBA,IAAiB7tgC,GAAQ6tgC,EAAe,KAAO7tgC,EAEjD6tgC,IAAiB7tgC,GAEpB+tgC,EAAUzzD,EAAO,GAAK,GAC5B,IAAK,IAAIt68B,EAAO,EAAGA,GAAQ+tgC,EAAS/tgC,GAAQkwgC,EAAU,CACpD,IAAI9ukC,EAAQot8B,EAAMzv7B,OAAOyv7B,EAAMvu4B,SAASv0C,EAAKs0C,GAAOs68B,EAAO,WAAa,YACxE,MAAM1J,EAAY2gE,EAAiBnukC,SAAShC,EAAO,IAAI7a,YACvD6a,EAAQot8B,EAAMjtoB,aAAangU,GAC3B/V,EAAOzR,KAAK,CACVwC,MAAO4jF,EACP5+D,QACA0n6B,aACA/Y,aACA6gH,aAEJ,CACA,OAAOvlhC,CAAM,EAEFmmlC,GAAwBhklC,IAQ/B,IARgC,MACpCpR,EAAK,MACLoy9B,EAAK,WACLz+C,EAAU,SACVmgL,EAAQ,aACRuB,EAAY,iBACZF,EAAgB,SAChBxtrB,GAAW,GACZv2Z,EACC,MAAMs76B,EAAa8lK,GACH,OAAVxylC,IAGG2na,GAAY3na,IAAUwylC,GAE/B,MAAO,IAAI/rlC,MAAM/G,KAAK,CACpBzC,OAAQwC,KAAK8/B,KAAK,GAAKu0jC,KACtB,CAACh0jC,EAAGt/B,KACL,MAAMgylC,EAAYsB,EAAWtzlC,EAC7B,MAAO,CACLR,MAAOwylC,EACPxtkC,MAAOot8B,EAAMjtoB,aAAakwwB,EAAa7C,IACvC7+K,aACA+Y,aACA8nG,UAAW2gE,EAAiB3C,EAAUrolC,YACvC,IACA,EC9DCgI,GAAY,CAAC,OAAQ,YAAa,YAAa,aAAc,kBAAmB,QAAS,YAAa,QAAS,eAAgB,gBAAiB,2CAA4C,UAAW,UAAW,gBAAiB,cAAe,cAAe,qBAAsB,oBAAqB,WAAY,OAAQ,QAAS,SAAU,eAAgB,cAAe,sBAAuB,YAAa,WAAY,WAAY,eAAgB,YA6B9bmjlC,IAA+BjjlC,EAAAA,GAAMA,IAAC+3jC,GAAgB,CAC1DtikC,KAAM,8BACNkK,KAAM,OACNM,kBAAmBA,CAACwtB,EAAGl4B,IAAWA,EAAOpG,MAHN6Q,EAIlCM,IAAA,IAAC,MACFrB,GACDqB,EAAA,MAAM,CACLiB,QAAS,OACTsiB,cAAe,MACfxiB,MAAO,OACP2e,aAAc,aAAF7qB,QAAgB8J,EAAMmD,MAAQnD,GAAOoD,QAAQsC,SAC1D,IAWYu+kC,GAAwCltlC,EAAAA,YAAiB,SAAkC2M,EAASpM,GAC/G,MAAMwp9B,EAAQy4E,KACRlpiC,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,iCAEF,KACFo2hC,EAAO9rE,EAAM6+G,+BACbukB,UAAWC,EAAW,UACtB9oL,EAAS,WACTp75B,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EACA18B,MAAO2ohC,EAAS,aAChBj4/B,EACAo0gC,cAAeirB,EAAiB,yCAChC1xB,GAA2C,EAAK,QAChD6H,EAAO,QACPD,EAAO,cACP/J,EAAa,YACbC,EAAW,YACXuE,EAAc,EAAC,mBACfmsD,EAAkB,kBAClBC,EAAiB,SACjB36F,EACA9v8B,KAAMgz9B,EACN+lB,MAAOs6D,EAAU,CAAC,QAAS,WAAU,OACrCl6D,EAAM,aACN+pB,EACAC,YAAaC,EAAa,oBAC1BC,EAAmB,UACnBv1iC,EAAS,SACT2E,EAAQ,SACRmO,EAAQ,aACR8wkC,GAAe,EACfx3D,SAAU2kB,GACRv/iC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,KACzC,MACJnS,EACAwhjC,kBAAmBwyC,EAAoB,SACvCz3D,GACEolB,GAA+B,CACjC75iC,KAAM,2BACNy0hC,SAAU2kB,EACVlhjC,MAAO2ohC,EACPj4/B,eACAyh+B,WACAgvD,aAAc1b,KAEVzD,EAAa+I,KACbz7/B,EAAM07/B,GAAOzO,GACbi5D,EAAYntlC,EAAAA,SAAc,KAAMmN,EAAAA,GAAAA,GAAS,CAC7CkwB,MAAO,EACPG,QAAS,EACTC,QAAS,GACR2vjC,IAAc,CAACA,IACZtD,EAAuBN,GAAsB,CACjD7xlC,QACA8kiC,cAAeirB,EACf39F,QACAzw9B,QACA46hC,aAEIilB,GAAoBp8F,EAAAA,GAAAA,IAAiB,CAACho7B,EAAUqmhC,EAAgBoD,IAAiBmtC,EAAqB52jC,EAAUqmhC,EAAgBoD,KAChIzrB,EAAQ/yhC,EAAAA,SAAc,IACrB61hC,GAASw3D,EAAQj9tB,SAAS,SAGxBi9tB,EAAQj9tB,SAAS,YAAci9tB,EAAU,IAAIA,EAAS,YAFpDA,GAGR,CAACx3D,EAAMw3D,KACJ,KACJrziC,EAAI,wBACJskgC,EAAuB,YACvBnB,GACEF,GAAS,CACXjjgC,KAAMgz9B,EACN+lB,QACAI,SACA+pB,eACApzD,SAAUqvD,EACVgE,YAAaC,EACbC,wBAEIiwC,GAA4BvwI,EAAAA,GAAAA,IAAiBho7B,IACjDuphC,EAAwBvphC,EAAU,SAAU,WAAW,KAEnD,aACJiriC,EAAY,qBACZE,GACEH,GAAgB+pB,EAAsBj0D,EAAMy3D,EAA2B,UACrEjF,EAAiBrolC,EAAAA,aAAkB,CAAC6t9B,EAAUk8H,KAClD,MAAMrwjC,EAAUq8/B,GAA4BC,EAA0CjsE,GAChFigI,EAAkC,UAAbD,GAAqC,YAAbA,GAA0Bh3D,EAAM3iqB,SAAS,WACtF65tB,EAAoBlhlC,IAGpB,IAHqB,MACzBsS,EAAK,IACL9iB,GACDwQ,EACC,QAAI60hC,IAAWlkgC,EAAQkkgC,EAASrliC,QAG5BsliC,IAAWnkgC,EAAQre,EAAOwihC,QAG1BhK,IAAiBn6/B,EAAQre,EAAO4rB,OAGhC6s/B,IAAep6/B,EAAQuN,EAAK+ijC,EAAqBzxlC,EAAM8iB,KAGhD,EAEP6ukC,EAAe,SAACC,GACpB,GAAIA,GAD+B5olC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,KACb,EACvB,OAAO,EAET,GAA0B,MAAtBijlC,GAA8BA,EAAmB2F,EAAWJ,GAC9D,OAAO,EAET,GAAItF,EACF,OAAQsF,GACN,IAAK,QACH,OAAQtF,EAAkB16H,EAAMvu4B,SAASsugC,EAAsBK,GAAY,SAC7E,IAAK,UACH,OAAQ1F,EAAkB16H,EAAMjtE,WAAWgtM,EAAsBK,GAAY,WAC/E,IAAK,UACH,OAAQ1F,EAAkB16H,EAAMhtE,WAAW+sM,EAAsBK,GAAY,WAC/E,QACE,OAAO,EAGb,OAAO,CACT,EACA,OAAQJ,GACN,IAAK,QACH,CACE,MAAMK,EAAoBx0D,GAAuB/nE,EAAUmyG,EAAcnqC,GACnEw0D,EAAmBtgI,EAAMvu4B,SAASsugC,EAAsBM,GAG9D,OAAQH,EAAkB,CACxB5ukC,MAHY0u8B,EAAMhtE,WAAWgtE,EAAMjtE,WAAWutM,EAAkB,GAAI,GAIpE9xlC,IAHUwx9B,EAAMhtE,WAAWgtE,EAAMjtE,WAAWutM,EAAkB,IAAK,QAI9DH,EAAaE,EACtB,CACF,IAAK,UACH,CACE,MAAME,EAAqBvgI,EAAMjtE,WAAWgtM,EAAsBj8H,GAGlE,OAAQo8H,EAAkB,CACxB5ukC,MAHY0u8B,EAAMhtE,WAAWutM,EAAoB,GAIjD/xlC,IAHUwx9B,EAAMhtE,WAAWutM,EAAoB,QAI1CJ,EAAar8H,EAAUwqE,EAChC,CACF,IAAK,UACH,CACE,MAAMkyD,EAAqBxgI,EAAMhtE,WAAW+sM,EAAsBj8H,GAGlE,OAAQo8H,EAAkB,CACxB5ukC,MAHYkvkC,EAIZhylC,IAHUgylC,MAILL,EAAar8H,EACtB,CACF,QACE,MAAM,IAAItn9B,MAAM,iBACpB,GACC,CAACsvhC,EAAMi0D,EAAsB9zD,EAA0C6H,EAASmiC,EAAcpiC,EAASvF,EAAamsD,EAAoBC,EAAmB16H,EAAO8pE,EAAeC,EAAa7s/B,EAAK8r/B,IAChMw6D,EAAiBvtlC,EAAAA,aAAkBwtlC,IACvC,OAAQA,GACN,IAAK,QAED,MAAO,CACL1jG,SAAUzs9B,IACR,MAAM+sjC,EAAoBx0D,GAAuBv4/B,EAAO2iiC,EAAcnqC,GACtEyoB,EAAwBv0F,EAAMvu4B,SAASsugC,EAAsBM,GAAoB,SAAU,QAAQ,EAErG//+B,MAAOwi/B,GAAsB,CAC3B5ljC,MACAtvC,QACAk+hC,OACA9rE,QACAz+C,WAAYju4B,GAAS5wB,GAAY47kC,EAAehrjC,EAAO,SACvDoujC,SAAU0B,EAAU9vjC,MACpByvjC,iBAAkBnzD,EAAW2H,wBAIrC,IAAK,UAED,MAAO,CACLx3C,SAAUts9B,IACR8ghC,EAAwBv0F,EAAMjtE,WAAWgtM,EAAsBtsjC,GAAU,SAAU,UAAU,EAE/F6sE,MAAO0i/B,GAAsB,CAC3Bp1lC,MAAOoy9B,EAAM/w7B,WAAW8wjC,GACxB//H,QACAz+C,WAAY9t4B,GAAW/wB,GAAY47kC,EAAe7qjC,EAAS,WAC3DwvjC,aAAcxvjC,GAAWus7B,EAAMzv7B,OAAOyv7B,EAAMjtE,WAAW712B,EAAKzJ,GAAU,WACtEiujC,SAAU0B,EAAU3vjC,QACpB8hY,WAAY3na,EACZm1lC,iBAAkBnzD,EAAW4H,0BAIrC,IAAK,UAED,MAAO,CACLz3C,SAAUrs9B,IACR6ghC,EAAwBv0F,EAAMhtE,WAAW+sM,EAAsBrsjC,GAAU,SAAU,UAAU,EAE/F4sE,MAAO0i/B,GAAsB,CAC3Bp1lC,MAAOoy9B,EAAM7w7B,WAAW4wjC,GACxB//H,QACAz+C,WAAY7t4B,GAAWhxB,GAAY47kC,EAAe5qjC,EAAS,WAC3DuvjC,aAAcvvjC,GAAWss7B,EAAMzv7B,OAAOyv7B,EAAMhtE,WAAW912B,EAAKxJ,GAAU,WACtEgujC,SAAU0B,EAAU1vjC,QACpB6hY,WAAY3na,EACZm1lC,iBAAkBnzD,EAAW6H,0BAIrC,IAAK,WACH,CACE,MAAMisD,EAAU34D,GAAe/qE,EAAO,MAChC2jI,EAAU54D,GAAe/qE,EAAO,MACtC,MAAO,CACL+/B,SAAUo2E,EACV719B,MAAO,CAAC,CACN1yG,MAAO,KACPglB,MAAO8wkC,EACPppK,WAAYA,MAAQ1s7B,GAA0B,OAAjBqokC,EAC7B7zC,UAAWshE,GACV,CACD91lC,MAAO,KACPglB,MAAO+wkC,EACPrpK,WAAYA,MAAQ1s7B,GAA0B,OAAjBqokC,EAC7B7zC,UAAWuhE,IAGjB,CACF,QACE,MAAM,IAAInnlC,MAAM,iBAADpH,OAAkBqulC,EAAW,YAChD,GACC,CAACvmjC,EAAKtvC,EAAOk+hC,EAAM9rE,EAAOojI,EAAU9vjC,MAAO8vjC,EAAU3vjC,QAAS2vjC,EAAU1vjC,QAASk8/B,EAAW2H,qBAAsB3H,EAAW4H,uBAAwB5H,EAAW6H,uBAAwBw+B,EAAc1hB,EAAyBwrC,EAAsBr9kC,EAAU47kC,EAAgBnoB,IAC5QytB,EAAkB3tlC,EAAAA,SAAc,IAC7B+yhC,EAAMr9gC,QAAO,CAAC9O,EAAQgnlC,KACpBzglC,EAAAA,GAAAA,GAAS,CAAC,EAAGvG,EAAQ,CAC1B,CAACgnlC,GAAcL,EAAeK,MAE/B,CAAC,IACH,CAAC76D,EAAOw6D,IACLrjlC,GAAa5Q,EACbgU,GA9RkBpD,KACxB,MAAM,QACJoD,GACEpD,EAIJ,OAAOsD,EAAAA,GAAcA,GAHP,CACZrU,KAAM,CAAC,SAEoB+ylC,GAAyC5+kC,EAAQ,EAuR9DG,CAAkBvD,IAClC,OAAoB6D,EAAAA,GAAAA,KAAKk/kC,IAA8B9/kC,EAAAA,GAAAA,GAAS,CAC9D5M,IAAKA,EACLuH,WAAW8F,EAAAA,GAAIA,GAACN,GAAQnU,KAAM2O,GAC9BoC,WAAYA,GACZ4D,KAAM,SACLb,EAAO,CACR1T,SAAU9B,OAAO2qB,QAAQurkC,GAAiB9vlC,KAAIwkB,IAAA,IAAEwrkC,EAAUC,GAAYzrkC,EAAA,OAAkBtU,EAAAA,GAAAA,KAAKu+kC,GAAiC,CAC5Hji/B,MAAOyj/B,EAAYzj/B,MACnBy/4B,SAAUgkG,EAAYhkG,SACtBt9+B,OAAQwtC,IAAS6ziC,EACjBvpL,UAAwB,MAAbA,EAAoBA,EAAY64I,IAAgB0wC,EAC3DphlC,SAAUA,EACVmO,SAAUA,EACVrN,MAAgB,MAATA,EAAgBA,EAAQrE,EAC/BmrB,UAAwB,MAAbA,EAAoBA,EAAYuu7B,EAC3C8oI,aAAcA,EACd,aAAc/xD,EAAW8H,eAAeosD,IACvCA,EAAS,MAEhB,IClUaE,GAAsBzjlC,IAAA,IAAC,KAClC0vC,EAAI,aACJkjgC,EAAY,YACZC,EAAW,oBACXE,EAAmB,MACnBtqB,EAAK,MACLp7hC,EAAK,aACL0wB,EAAY,cACZo0gC,EAAa,SACb3yC,EAAQ,UACRhi/B,EAAS,QACTwF,EAAO,cACPumhC,EAAa,YACbC,EAAW,QACX8J,EAAO,QACPC,EAAO,kBACP4mD,EAAiB,mBACjBD,EAAkB,YAClBnsD,EAAW,KACXxC,EAAI,YACJuwD,EAAW,WACXl9kC,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EAAS,SACTzZ,EAAQ,SACRnO,EAAQ,GACRwJ,EAAE,UACFqu5B,EAAS,iBACT+7I,EAAgB,yCAChBrqB,EAAwC,SACxC9B,GACD5phC,EAAA,OAAkByD,EAAAA,GAAAA,KAAK87kC,GAAW,CACjC7viC,KAAMA,EACNkjgC,aAAcA,EACdC,YAAaA,GAAexnB,GAAWwnB,GAAeA,EAAc,KACpEE,oBAAqBA,EACrBtqB,MAAOA,EAAMnygC,OAAO+0gC,IACpBh+hC,MAAOA,EACP0wB,aAAcA,EACdo0gC,cAAeA,EACf3yC,SAAUA,EACVhi/B,UAAWA,EACXwF,QAASA,EACTumhC,cAAeA,EACfC,YAAaA,EACb8J,QAASA,EACTC,QAASA,EACT4mD,kBAAmBA,EACnBD,mBAAoBA,EACpBnsD,YAAaA,EACbxC,KAAMA,EACNuwD,YAAaA,EACbl9kC,WAAYA,EACZ058B,gBAAiBA,EACjBr18B,MAAOA,EACP8mB,UAAWA,EACXzZ,SAAUA,EACVnO,SAAUA,EACVwJ,GAAIA,EACJqu5B,UAAWA,EACX+7I,iBAAkBA,EAClBrqB,yCAA0CA,EAC1C9B,SAAUA,GACV,EACW85D,GAA6BjllC,IAAA,IAAC,KACzCixC,EAAI,aACJkjgC,EAAY,YACZC,EAAW,oBACXE,EAAmB,MACnBtqB,EAAK,MACLp7hC,EAAK,aACL0wB,EAAY,cACZo0gC,EAAa,SACb3yC,EAAQ,UACRhi/B,EAAS,QACTwF,EAAO,cACPumhC,EAAa,YACbC,EAAW,QACX8J,EAAO,QACPC,EAAO,kBACP4mD,EAAiB,mBACjBD,EAAkB,YAClBnsD,EAAW,KACXxC,EAAI,WACJ3shC,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EAAS,SACTzZ,EAAQ,SACRnO,EAAQ,GACRwJ,EAAE,UACFqu5B,EAAS,yCACT0xH,EAAwC,UACxCm3D,EAAS,aACTzB,EAAY,SACZx3D,GACDnrhC,EAAA,OAAkBgF,EAAAA,GAAAA,KAAKu9kC,GAAc,CACpCtxiC,KAAMA,EACNkjgC,aAAcA,EACdC,YAAaA,EACbE,oBAAqBA,EACrBtqB,MAAOA,EAAMnygC,OAAO+0gC,IACpBh+hC,MAAOA,EACP0wB,aAAcA,EACdo0gC,cAAeA,EACf3yC,SAAUA,EACVhi/B,UAAWA,EACXwF,QAASA,EACTumhC,cAAeA,EACfC,YAAaA,EACb8J,QAASA,EACTC,QAASA,EACT4mD,kBAAmBA,EACnBD,mBAAoBA,EACpBnsD,YAAaA,EACbxC,KAAMA,EACN3shC,WAAYA,EACZ058B,gBAAiBA,EACjBr18B,MAAOA,EACP8mB,UAAWA,EACXzZ,SAAUA,EACVnO,SAAUA,EACVwJ,GAAIA,EACJqu5B,UAAWA,EACX0xH,yCAA0CA,EAC1Cy1D,SAAuB,MAAb0B,OAAoB,EAASA,EAAU3vjC,QACjDkujC,aAAcA,EACdx3D,SAAUA,GACV,EACW+5D,GAAyC5rkC,IAAA,IAAC,KACrD23B,EAAI,aACJkjgC,EAAY,YACZC,EAAW,oBACXE,EAAmB,MACnBtqB,EAAK,MACLp7hC,EAAK,aACL0wB,EAAY,cACZo0gC,EAAa,SACb3yC,EAAQ,UACRhi/B,EAAS,QACTwF,EAAO,cACPumhC,EAAa,YACbC,EAAW,QACX8J,EAAO,QACPC,EAAO,kBACP4mD,EAAiB,mBACjBD,EAAkB,YAClBnsD,EAAW,KACXxC,EAAI,WACJ3shC,EAAU,gBACV058B,EAAe,MACfr18B,EAAK,UACL8mB,EAAS,SACTzZ,EAAQ,SACRnO,EAAQ,GACRwJ,EAAE,UACFqu5B,EAAS,yCACT0xH,EAAwC,UACxCm3D,EAAS,aACTzB,EAAY,SACZx3D,GACD7xgC,EAAA,OAAkBtU,EAAAA,GAAAA,KAAKm/kC,GAA0B,CAChDlziC,KAAMA,EACNkjgC,aAAcA,EACdC,YAAaA,EACbE,oBAAqBA,EACrBtqB,MAAOA,EAAMnygC,OAAO+0gC,IACpBh+hC,MAAOA,EACP0wB,aAAcA,EACdo0gC,cAAeA,EACf3yC,SAAUA,EACVhi/B,UAAWA,EACXwF,QAASA,EACTumhC,cAAeA,EACfC,YAAaA,EACb8J,QAASA,EACTC,QAASA,EACT4mD,kBAAmBA,EACnBD,mBAAoBA,EACpBnsD,YAAaA,EACbxC,KAAMA,EACN3shC,WAAYA,EACZ058B,gBAAiBA,EACjBr18B,MAAOA,EACP8mB,UAAWA,EACXzZ,SAAUA,EACVnO,SAAUA,EACVwJ,GAAIA,EACJqu5B,UAAWA,EACX0xH,yCAA0CA,EAC1Cm3D,UAAWA,EACXzB,aAAcA,EACdx3D,SAAUA,GACV,EC/JIg6D,GAAeA,CAACr4D,EAAM9C,EAAOo7D,IAC7BA,EACKp7D,EAAMnygC,QAAOo5B,InSxCUA,IAAQ07+B,GAAUtlqB,SAASp2U,IAAkB,aAATA,EmSwCrCo0iC,CAAmBp0iC,IAAkB,UAATA,IAEpD67+B,EAAO,IAAI9C,EAAO,YAAcA,ECnBzC,MAAMs7D,GAAiCrulC,EAAAA,YAAiB,SAA2B2M,EAASpM,GAC1F,IAAI+tlC,EAAuBC,EAAsB1qB,EAAwB2qB,EAAwB1qB,EAAuBC,EACxH,MAAMpqC,EAAa+I,KACb34E,EAAQy4E,KAGRwhC,EAAmBsiB,GAA8B35kC,EAAS,yBAC1D,gCACJ8hlC,EACA17D,MAAO27D,EAAa,UACpBvB,GDeG,SAAiCpklC,GAKrC,IAJD4llC,qCAAsCC,EAAW,KACjD/4D,EACAs3D,UAAWC,EAAW,MACtBr6D,GACDhqhC,EACC,MAAM4llC,EAAsD,MAAfC,EAAsBA,EAAc,GAC3EzB,GAAYhglC,EAAAA,GAAAA,GAAS,CACzBkwB,MAAO,EACPG,QAAS,EACTC,QAAS,GACR2vjC,GACGqB,EAhBuCI,EAAC1B,EAAWt/gC,KACzD,IAAIihhC,EAAkBC,EACtB,OAAO,OAAoD,OAAvCD,EAAmB3B,EAAU9vjC,OAAiByxjC,EAAmB,IAAkD,OAA3CC,EAAqB5B,EAAU3vjC,SAAmBuxjC,EAAqB,KAAOlhhC,CAAS,EAc3IghhC,CAAuC1B,EAAWwB,GAC1F,MAAO,CACLA,uCACAxB,YACAsB,kCACA17D,MAAOm7D,GAAar4D,EAAM9C,EAAO07D,GAErC,CCjCMO,CAAyBhrB,GACvBirB,EAAiBR,EAAkCT,GAA6BC,GAChFvuC,GAAgBvyiC,EAAAA,GAAAA,GAAS,CAC7BkwB,MAAO4xjC,EACPzxjC,QAASyxjC,EACTxxjC,QAASwxjC,EACTz0jC,SAAUy0jC,GACTjrB,EAAiBtkB,eACd0mC,EAAwE,OAAzDkI,EAAwBtqB,EAAiBoiB,cAAuBkI,EAC/EY,EAAmBT,EAAkC,GAAK,CAAC,UAG3D17D,GAD0F,OAA/Cw7D,EAAuB7uC,EAAcrihC,YAAiB,EAASkxjC,EAAqB9ulC,QAAUwulC,GAAuCxulC,KAC1EivlC,EAApDA,EAAc9tkC,QAAOo5B,GAAiB,aAATA,IAG/E1gD,GAAQ6T,EAAAA,GAAAA,GAAS,CAAC,EAAG62jC,EAAkB,CAC3CoiB,cACA+G,YACAztC,gBACAplhC,OAAQ67/B,GAAkBpsE,EAAOi6G,GAGjCjxC,MAAO07D,EAAkC,CAAC,SAAW17D,EACrDxlhC,OAAOJ,EAAAA,GAAAA,GAAS,CACd2+C,MAAOg5hC,GACPp+B,eAAgBW,IACf2c,EAAiBz2jC,OACpB8mB,WAAWlnB,EAAAA,GAAAA,GAAS,CAAC,EAAG62jC,EAAiB3viC,UAAW,CAClDy3B,MAAO5hD,IACL,IAAI+5jC,EACJ,OAAO92jC,EAAAA,GAAAA,GAAS,CAAC,EAAG8z8B,GAA8E,OAAvDgjH,EAAwBD,EAAiB3viC,gBAAqB,EAAS4viC,EAAsBn4gC,MAAO5hD,GAAawljC,GAAuBsU,GAAmB,CACpMzjkC,OACA,EAEJ8U,SAASlI,EAAAA,GAAAA,GAAS,CAChBiuZ,QAAQ,EACRgrrB,eAC0D,OAAxDviB,EAAyBG,EAAiB3viC,gBAAqB,EAASwviC,EAAuBxujC,SACnGkviC,WAAWp3iC,EAAAA,GAAAA,GAAS,CAClB4l6B,QAASm8K,GACiD,OAAxDV,EAAyBxqB,EAAiB3viC,gBAAqB,EAASm6jC,EAAuBjqC,gBAGjG,aACJ0C,GACE3B,GAAiB,CACnBhsjC,QACAw/iC,aAAc1b,GACdxI,UAAW,OACXgxB,sBAAuJ,OAA/Hke,EAAkE,OAAzCC,EAAoBzqkC,EAAMqgiC,iBAAsB,EAASoqC,EAAkB/hC,wBAAkC8hC,EAAwBnqC,EAAWqI,uBACjM9phC,UAAWqskC,KAEb,OAAOt9B,GACT,IACAonC,GAAkBllkC,UAAY,CAS5B0sgC,KAAMhqI,KAAAA,KAKNu6L,YAAav6L,KAAAA,KAObyY,UAAWzY,KAAAA,KAIX/j5B,UAAW+j5B,KAAAA,OAKXiuJ,cAAejuJ,KAAAA,KAMf3i5B,WAAY2i5B,KAAAA,OAMZ+2D,gBAAiB/2D,KAAAA,OAKjBxj4B,aAAcwj4B,KAAAA,IAKdp/4B,SAAUo/4B,KAAAA,KAKVgoI,cAAehoI,KAAAA,KAKfmqI,yCAA0CnqI,KAAAA,KAK1C+6J,kBAAmB/6J,KAAAA,KAKnBioI,YAAajoI,KAAAA,KAKbvx3B,OAAQux3B,KAAAA,OAMRgvI,cAAehvI,KAAAA,MAAgB,CAAC,QAAS,aAIzCixH,SAAU3xyB,GAIVxuN,MAAOkv4B,KAAAA,KAKP8tI,WAAY9tI,KAAAA,OAKZgyI,QAAShyI,KAAAA,IAKT+xI,QAAS/xI,KAAAA,IAKTwsI,YAAaxsI,KAAAA,OAIbps5B,KAAMos5B,KAAAA,OAMN8tJ,SAAU9tJ,KAAAA,KAQVi+F,SAAUj+F,KAAAA,KAKV2/E,QAAS3/E,KAAAA,KAUT7tE,QAAS6tE,KAAAA,KAKT4gI,OAAQ5gI,KAAAA,KAKRouJ,yBAA0BpuJ,KAAAA,KAM1BqxJ,aAAcrxJ,KAAAA,KAKd943B,KAAM843B,KAAAA,KAMNsnI,OAAQtnI,KAAAA,MAAgB,CAAC,QAAS,WAAY,UAAW,YAIzD/kvB,YAAa+kvB,KAAAA,MAAgB,CAAC,YAAa,aAC3Cjx4B,SAAUix4B,KAAAA,KAKVqrJ,iBAAkBrrJ,KAAAA,KAKlB4wI,cAAe5wI,KAAAA,IAUfkuJ,iBAAkBluJ,KAAAA,UAAoB,CAACA,KAAAA,MAAgB,CAAC,MAAO,MAAO,QAAS,WAAY,UAAW,QAAS,UAAW,UAAW,SAAUA,KAAAA,OAAkBA,KAAAA,MAAgB,CAC/Kvl4B,SAAUul4B,KAAAA,OAAiBX,WAC3BhxL,WAAY2xL,KAAAA,OAAiBX,eAS/Bs5L,mBAAoB34L,KAAAA,KAQpB44L,kBAAmB54L,KAAAA,KAKnB6/L,aAAc7/L,KAAAA,KAKdx33B,UAAWw33B,KAAAA,OAKXt+4B,MAAOs+4B,KAAAA,OAIP514B,GAAI414B,KAAAA,UAAoB,CAACA,KAAAA,QAAkBA,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,QAAmBA,KAAAA,KAAgBA,KAAAA,SAKrI8iM,qCAAsC9iM,KAAAA,OAOtCshM,UAAWthM,KAAAA,MAAgB,CACzBxu3B,MAAOwu3B,KAAAA,OACPru3B,QAASqu3B,KAAAA,OACTpu3B,QAASou3B,KAAAA,SASXqoI,SAAUroI,KAAAA,OAKVl05B,MAAOk05B,KAAAA,IAMP7x2B,KAAM6x2B,KAAAA,MAAgB,CAAC,QAAS,WAAY,UAAW,YAMvD6zJ,cAAe7zJ,KAAAA,MAAgB,CAC7Bxu3B,MAAOwu3B,KAAAA,KACPrx3B,SAAUqx3B,KAAAA,KACVru3B,QAASqu3B,KAAAA,KACTpu3B,QAASou3B,KAAAA,OAKXknI,MAAOlnI,KAAAA,QAAkBA,KAAAA,MAAgB,CAAC,QAAS,UAAW,YAAYX,aC/V5E,MAAMikM,GAAgCnvlC,EAAAA,YAAiB,SAA0B2M,EAASpM,GACxF,IAAI+tlC,EAAuBzqB,EAAwBC,EAAuBC,EAC1E,MAAMpqC,EAAa+I,KACb34E,EAAQy4E,KAGRwhC,EAAmBsiB,GAA8B35kC,EAAS,uBAC1D+yiC,GAAgBvyiC,EAAAA,GAAAA,GAAS,CAC7BkwB,MAAO0wjC,GACPvwjC,QAASuwjC,GACTtwjC,QAASswjC,IACR/pB,EAAiBtkB,eACd0mC,EAAwE,OAAzDkI,EAAwBtqB,EAAiBoiB,cAAuBkI,EAG/Eh1lC,GAAQ6T,EAAAA,GAAAA,GAAS,CAAC,EAAG62jC,EAAkB,CAC3CoiB,cACA1mC,gBACAplhC,OAAQ67/B,GAAkBpsE,EAAOi6G,GACjCz2jC,OAAOJ,EAAAA,GAAAA,GAAS,CACd2+C,MAAOg5hC,IACN9gB,EAAiBz2jC,OACpB8mB,WAAWlnB,EAAAA,GAAAA,GAAS,CAAC,EAAG62jC,EAAiB3viC,UAAW,CAClDy3B,MAAO5hD,IACL,IAAI+5jC,EACJ,OAAO92jC,EAAAA,GAAAA,GAAS,CAAC,EAAG8z8B,GAA8E,OAAvDgjH,EAAwBD,EAAiB3viC,gBAAqB,EAAS4viC,EAAsBn4gC,MAAO5hD,GAAawljC,GAAuBsU,GAAmB,CACpMzjkC,OACA,EAEJ8U,SAASlI,EAAAA,GAAAA,GAAS,CAChBiuZ,QAAQ,EACRgrrB,eAC0D,OAAxDviB,EAAyBG,EAAiB3viC,gBAAqB,EAASwviC,EAAuBxujC,cAGjG,aACJ4xiC,GACE4d,GAAgB,CAClBvrkC,QACAw/iC,aAAc1b,GACdxI,UAAW,OACXgxB,sBAAuJ,OAA/Hke,EAAkE,OAAzCC,EAAoBzqkC,EAAMqgiC,iBAAsB,EAASoqC,EAAkB/hC,wBAAkC8hC,EAAwBnqC,EAAWqI,uBACjM9phC,UAAWqskC,KAEb,OAAOt9B,GACT,IACAkoC,GAAiBhmkC,UAAY,CAS3B0sgC,KAAMhqI,KAAAA,KAKNu6L,YAAav6L,KAAAA,KAObyY,UAAWzY,KAAAA,KAIX/j5B,UAAW+j5B,KAAAA,OAKXiuJ,cAAejuJ,KAAAA,KAMf3i5B,WAAY2i5B,KAAAA,OAMZ+2D,gBAAiB/2D,KAAAA,OAKjBxj4B,aAAcwj4B,KAAAA,IAKdp/4B,SAAUo/4B,KAAAA,KAKVgoI,cAAehoI,KAAAA,KAKfmqI,yCAA0CnqI,KAAAA,KAK1C+6J,kBAAmB/6J,KAAAA,KAKnBioI,YAAajoI,KAAAA,KAKbvx3B,OAAQux3B,KAAAA,OAMRgvI,cAAehvI,KAAAA,MAAgB,CAAC,QAAS,aAIzCixH,SAAU3xyB,GAIVxuN,MAAOkv4B,KAAAA,KAKP8tI,WAAY9tI,KAAAA,OAKZgyI,QAAShyI,KAAAA,IAKT+xI,QAAS/xI,KAAAA,IAKTwsI,YAAaxsI,KAAAA,OAIbps5B,KAAMos5B,KAAAA,OAMN8tJ,SAAU9tJ,KAAAA,KAQVi+F,SAAUj+F,KAAAA,KAKV2/E,QAAS3/E,KAAAA,KAUT7tE,QAAS6tE,KAAAA,KAKT4gI,OAAQ5gI,KAAAA,KAKRouJ,yBAA0BpuJ,KAAAA,KAM1BqxJ,aAAcrxJ,KAAAA,KAKd943B,KAAM843B,KAAAA,KAMNsnI,OAAQtnI,KAAAA,MAAgB,CAAC,QAAS,UAAW,YAI7C/kvB,YAAa+kvB,KAAAA,MAAgB,CAAC,YAAa,aAC3Cjx4B,SAAUix4B,KAAAA,KAKVqrJ,iBAAkBrrJ,KAAAA,KAKlB4wI,cAAe5wI,KAAAA,IAUfkuJ,iBAAkBluJ,KAAAA,UAAoB,CAACA,KAAAA,MAAgB,CAAC,MAAO,MAAO,QAAS,WAAY,UAAW,QAAS,UAAW,UAAW,SAAUA,KAAAA,OAAkBA,KAAAA,MAAgB,CAC/Kvl4B,SAAUul4B,KAAAA,OAAiBX,WAC3BhxL,WAAY2xL,KAAAA,OAAiBX,eAS/Bs5L,mBAAoB34L,KAAAA,KAQpB44L,kBAAmB54L,KAAAA,KAKnBx33B,UAAWw33B,KAAAA,OAKXt+4B,MAAOs+4B,KAAAA,OAIP514B,GAAI414B,KAAAA,UAAoB,CAACA,KAAAA,QAAkBA,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,QAAmBA,KAAAA,KAAgBA,KAAAA,SAQrIqoI,SAAUroI,KAAAA,OAKVl05B,MAAOk05B,KAAAA,IAMP7x2B,KAAM6x2B,KAAAA,MAAgB,CAAC,QAAS,UAAW,YAM3C6zJ,cAAe7zJ,KAAAA,MAAgB,CAC7Bxu3B,MAAOwu3B,KAAAA,KACPru3B,QAASqu3B,KAAAA,KACTpu3B,QAASou3B,KAAAA,OAKXknI,MAAOlnI,KAAAA,QAAkBA,KAAAA,MAAgB,CAAC,QAAS,UAAW,YAAYX,aC1U5E,MAAMph5B,GAAY,CAAC,yBAoBbsllC,GAA0BpvlC,EAAAA,YAAiB,SAAoB2M,EAASpM,GAC5E,MAAMjH,EAAQs5hC,GAAc,CAC1Bt5hC,MAAOqT,EACPlN,KAAM,mBAEF,sBACF0lkC,EAAwB3vB,IACtBl8iC,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IAM/C,OAHkB2ohC,GAAc0yC,EAAuB,CACrDpzC,gBAAgB,KAGIhkhC,EAAAA,GAAAA,KAAKsglC,IAAmBlhlC,EAAAA,GAAAA,GAAS,CACnD5M,IAAKA,GACJ0M,KAEec,EAAAA,GAAAA,KAAKohlC,IAAkBhilC,EAAAA,GAAAA,GAAS,CAClD5M,IAAKA,GACJ0M,GACL,IC1CO,SAASoilC,GAAgC1llC,GAC9C,OAAOC,EAAAA,GAAAA,IAAqB,sBAAuBD,EACrD,EACgCE,EAAAA,GAAsBA,GAAC,sBAAuB,CAAC,OAAQ,cAAe,gBAAiB,eAAgB,iBAAkB,MAAO,SAAU,oBAAqB,sBAAuB,wBCLzM,IAAA6u8B,GAAAC,GAAAC,GAAAC,GAIb,MAAM/u8B,GAAY,CAAC,YAAa,QAAS,gBAAiB,OAAQ,QAAS,YAAa,QAAS,WACjG,IACEo4V,GACA42mB,GACAC,GACAC,GAYF,MAAM3jV,GAAO,GACPi6d,IAAyB5tlC,EAAAA,GAAAA,IAAUwgW,KAAOA,GAAMw2mB,KAAAA,GAAAQ,GAAA,uGAShDq2I,IAAuB7tlC,EAAAA,GAAAA,IAAUo38B,KAAQA,GAAOH,KAAAA,GAAAO,GAAA,gQA8BhDs2I,IAAuBxllC,EAAAA,GAAMA,IAAC,OAAQ,CAC1CvK,KAAM,sBACNkK,KAAM,OACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO2K,EAAWyZ,SAAUpkB,EAAO,QAADJ,QAASiL,EAAAA,GAAUA,GAACF,EAAWC,SAAU,GAPvEH,EAS1BM,IAAA,IAAC,WACFJ,EAAU,MACVjB,GACDqB,EAAA,OAAK6C,EAAAA,GAAAA,GAAS,CACb5B,QAAS,gBACe,gBAAvBrB,EAAWyZ,SAA6B,CACzCjY,WAAYzC,EAAM0C,YAAY9L,OAAO,cACf,YAArBqK,EAAWC,OAAuB,CACnCA,OAAQlB,EAAMmD,MAAQnD,GAAOoD,QAAQnC,EAAWC,OAAOmC,MACvD,IAAEvD,IAAA,IAAC,WACHmB,GACDnB,EAAA,MAA4B,kBAAvBmB,EAAWyZ,UAA+BtiB,EAAAA,GAAAA,IAAI038B,KAAQA,GAAOH,KAAAA,GAAAM,GAAA,0DAE3Do2I,GAAuB,IACzBG,IAAsBzllC,EAAAA,GAAMA,IAAC,MAAO,CACxCvK,KAAM,sBACNkK,KAAM,MACNM,kBAAmBA,CAAC3Q,EAAOiG,IAAWA,EAAOiwC,KAHnBxlC,CAIzB,CACDuB,QAAS,UAELmklC,IAAyB1llC,EAAAA,GAAMA,IAAC,SAAU,CAC9CvK,KAAM,sBACNkK,KAAM,SACNM,kBAAmBA,CAAC3Q,EAAOiG,KACzB,MAAM,WACJ2K,GACE5Q,EACJ,MAAO,CAACiG,EAAOiwD,OAAQjwD,EAAO,SAADJ,QAAUiL,EAAAA,GAAUA,GAACF,EAAWyZ,WAAazZ,EAAWyllC,eAAiBpwlC,EAAOqwlC,oBAAoB,GAPtG5llC,EAS5BqY,IAAA,IAAC,WACFnY,EAAU,MACVjB,GACDoZ,EAAA,OAAKlV,EAAAA,GAAAA,GAAS,CACbg6F,OAAQ,gBACgB,gBAAvBj9F,EAAWyZ,SAA6B,CACzCjY,WAAYzC,EAAM0C,YAAY9L,OAAO,sBACb,kBAAvBqK,EAAWyZ,SAA+B,CAE3Cjf,gBAAiB,cACjBC,iBAAkB,GAClB,IAAE6xzB,IAAA,IAAC,WACHtszB,GACDsszB,EAAA,MAA4B,kBAAvBtszB,EAAWyZ,UAAgCzZ,EAAWyllC,gBAAiBtulC,EAAAA,GAAAA,IAAI238B,KAAQA,GAAOH,KAAAA,GAAAK,GAAA,+DAExFq2I,GAAqB,IAuI7B,GA9HsCvvlC,EAAAA,YAAiB,SAA0B2M,EAASpM,GACxF,MAAMjH,GAAQwP,EAAAA,GAAAA,GAAgB,CAC5BxP,MAAOqT,EACPlN,KAAM,yBAEF,UACFqI,EAAS,MACTqC,EAAQ,UAAS,cACjBwllC,GAAgB,EAAK,KACrBnzlC,EAAO,GAAE,MACTqkB,EAAK,UACLmmJ,EAAY,IAAG,MACfrvK,EAAQ,EAAC,QACTgsB,EAAU,iBACRrqB,EACJ2T,GAAQC,EAAAA,GAAAA,GAA8B5T,EAAOwQ,IACzCI,GAAaiD,EAAAA,GAAAA,GAAS,CAAC,EAAG7T,EAAO,CACrC6Q,QACAwllC,gBACAnzlC,OACAwqK,YACArvK,QACAgsB,YAEIrW,EArGkBpD,KACxB,MAAM,QACJoD,EAAO,QACPqW,EAAO,MACPxZ,EAAK,cACLwllC,GACEzllC,EACEqD,EAAQ,CACZpU,KAAM,CAAC,OAAQwqB,EAAS,QAAFxkB,QAAUiL,EAAAA,GAAUA,GAACD,KAC3CqlC,IAAK,CAAC,OACNggB,OAAQ,CAAC,SAAU,SAAFrwD,QAAWiL,EAAAA,GAAUA,GAACuZ,IAAYgskC,GAAiB,wBAEtE,OAAOnilC,EAAAA,GAAcA,GAACD,EAAO8hlC,GAAiC/hlC,EAAQ,EAyFtDG,CAAkBvD,GAC5BkqO,EAAc,CAAC,EACfy72B,EAAY,CAAC,EACbpsI,EAAY,CAAC,EACnB,GAAgB,gBAAZ9/7B,EAA2B,CAC7B,MAAMmskC,EAAgB,EAAI14lC,KAAKsgD,KAAO29kB,GAAOrud,GAAa,GAC1DotE,EAAY1vO,gBAAkBorlC,EAAc9vkC,QAAQ,GACpDyj8B,EAAU,iBAAmBrs9B,KAAK+b,MAAMxb,GACxCy8O,EAAYzvO,iBAAmB,GAAHxF,SAAQ,IAAMxH,GAAS,IAAMm4lC,GAAe9vkC,QAAQ,GAAE,MAClF6vkC,EAAU7okC,UAAY,gBACxB,CACA,OAAoBjZ,EAAAA,GAAAA,KAAKyhlC,IAAsBrilC,EAAAA,GAAAA,GAAS,CACtDrF,WAAW8F,EAAAA,GAAIA,GAACN,EAAQnU,KAAM2O,GAC9B+Y,OAAO1T,EAAAA,GAAAA,GAAS,CACd9B,MAAO7O,EACP8O,OAAQ9O,GACPqzlC,EAAWhvkC,GACd3W,WAAYA,EACZ3J,IAAKA,EACLuN,KAAM,eACL218B,EAAWx28B,EAAO,CACnB1T,UAAuBwU,EAAAA,GAAAA,KAAK0hlC,GAAqB,CAC/C3nlC,UAAWwF,EAAQkiC,IACnBtlC,WAAYA,EACZ8C,QAAS,GAAF7N,OAAKk2nB,GAAQ,KAAAl2nB,OAAIk2nB,GAAQ,KAAAl2nB,OAAIk2nB,GAAI,KAAAl2nB,OAAIk2nB,IAC5C97nB,UAAuBwU,EAAAA,GAAAA,KAAK2hlC,GAAwB,CAClD5nlC,UAAWwF,EAAQkiD,OACnB3uC,MAAOuzN,EACPlqO,WAAYA,EACZkzC,GAAIi4kB,GACJh4kB,GAAIg4kB,GACJzymB,GAAIyymB,GAAOrud,GAAa,EACxBx7J,KAAM,OACN1G,YAAakiK,QAIrB,yCCrLI+o7B,GAAO,CACXA,QAAe,UACXC,GAAmB,KAAMC,GAAe,KAExCC,GAAa,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAE9FC,GAAS,CACL,EAAa,KACb,EAAY,MACZ,EAAY,MACZ,GAAY,IACZ,IAAc,IACd,IAAc,IACd,IAAa,KACb,IAAc,IACd,IAAc,IACd,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAc,IACd,IAAa,KACb,IAAa,KACb,GAAa,MAGjBC,GAAW,SAAS52hB,IAA+C,GAA3B02hB,GAAWj4lC,QAAQuhkB,KAAmBy2hB,GAAeE,GAAM,GAAK32hB,EAAI,EAGhH,IAAI62hB,GAAS,SAAS72hB,GAAiBw2hB,GAAmBx2hB,EAAI42hB,GAAS52hB,EAAK,EAC5E,SAAS82hB,KAAaD,GAAO,MAHLD,GAAS,KAGiB,CAElD,SAASG,GAAWr/iC,GAAmE,IAA9B,IAAI5a,EAAsB,GAAY9/B,EAAI,EAAG8Q,EAAM4pC,EAAKt8C,OAAQ4B,EAAI8Q,IAAO9Q,EAAG8/B,EAAE9/B,GAAK06C,EAAK94C,WAAW5B,GAAI,OAAO8/B,CAAG,CAO5K,SAASk6jC,GAAYt/iC,GAEpB,IADA,IAAI5a,EAAsB,GAClB9/B,EAAI,EAAGA,EAAK06C,EAAKt8C,QAAQ,IAAM4B,EAAG8/B,EAAE9/B,GAAKc,OAAOC,aAAa25C,EAAK94C,WAAW,EAAE5B,EAAE,IAAM06C,EAAK94C,WAAW,EAAE5B,IAAI,IACrH,OAAO8/B,EAAEl7B,KAAK,GACf,CAEA,IAWIq1lC,GAXAC,GAAQ,SAASx/iC,GACpB,IAAIksD,EAAKlsD,EAAK94C,WAAW,GAAIilG,EAAKnsD,EAAK94C,WAAW,GAClD,OAAS,KAANglG,GAAoB,KAANC,EAblB,SAAqBnsD,GAEpB,IADA,IAAI5a,EAAsB,GAClB9/B,EAAI,EAAGA,EAAK06C,EAAKt8C,QAAQ,IAAM4B,EAAG8/B,EAAE9/B,GAAKc,OAAOC,aAAa25C,EAAK94C,WAAW,EAAE5B,IAAM06C,EAAK94C,WAAW,EAAE5B,EAAE,IAAI,IACrH,OAAO8/B,EAAEl7B,KAAK,GACf,CASqCu1lC,CAAYz/iC,EAAK14C,MAAM,IAClD,KAAN4kG,GAAoB,KAANC,EAAmBmz/B,GAAYt/iC,EAAK14C,MAAM,IAClD,OAAN4kG,EAAqBlsD,EAAK14C,MAAM,GAC5B04C,CACR,EAEI0/iC,GAAW,SAAcj0lC,GAA2B,OAAOrF,OAAOC,aAAaoF,EAAI,EACnFk0lC,GAAW,SAAcl0lC,GAA2B,OAAOrF,OAAOC,aAAaoF,EAAI,EAoBvF,IAEIm0lC,GAAa,oEACjB,SAASC,GAAc5wkC,GAGrB,IAFA,IAAImW,EAAI,GACJ8mE,EAAK,EAAGC,EAAK,EAAGopU,EAAK,EAAG74X,EAAK,EAAGo5Y,EAAK,EAAGoiE,EAAK,EAAG+qU,EAAK,EAChD39zB,EAAI,EAAGA,EAAI2pB,EAAMvrB,QAExBg5C,GADAwvD,EAAKj9E,EAAM/nB,WAAW5B,OACX,EAEXwwb,GAAW,EAAL5pV,IAAW,GADjBC,EAAKl9E,EAAM/nB,WAAW5B,OACK,EAE3B4yf,GAAW,GAAL/rZ,IAAY,GADlBopU,EAAKtmZ,EAAM/nB,WAAW5B,OACM,EAC5B29zB,EAAU,GAAL1tZ,EACDz+X,MAAMq1D,GACR+rZ,EAAK+qU,EAAK,GACDnsxB,MAAMy+X,KACf0tZ,EAAK,IAEP79xB,GAAKw6jC,GAAWjykC,OAAO+uB,GAAMkjjC,GAAWjykC,OAAOmoa,GAAM8pqB,GAAWjykC,OAAOuqe,GAAM0nmB,GAAWjykC,OAAOs1yB,GAEjG,OAAO79xB,CACT,CACA,SAAS06jC,GAAc7wkC,GACrB,IAAImW,EAAI,GACJ8mE,EAAK,EAAGC,EAAK,EAAGopU,EAAK,EAAWugB,EAAK,EAAGoiE,EAAK,EAAG+qU,EAAK,EACzDh0yB,EAAQA,EAAMvoB,QAAQ,eAAgB,IACtC,IAAK,IAAIpB,EAAI,EAAGA,EAAI2pB,EAAMvrB,QAGxBwoG,EAFK0z/B,GAAW74lC,QAAQkoB,EAAMtB,OAAOroB,OAE1B,GADXwwb,EAAK8pqB,GAAW74lC,QAAQkoB,EAAMtB,OAAOroB,QAChB,EACrB8/B,GAAKh/B,OAAOC,aAAa6lG,GAEzBC,GAAW,GAAL2pV,IAAY,GADlBoiE,EAAK0nmB,GAAW74lC,QAAQkoB,EAAMtB,OAAOroB,QACT,EACjB,KAAP4yf,IACF9yd,GAAKh/B,OAAOC,aAAa8lG,IAG3BopU,GAAW,EAAL2iF,IAAW,GADjB+qU,EAAK28R,GAAW74lC,QAAQkoB,EAAMtB,OAAOroB,OAE1B,KAAP29zB,IACF79xB,GAAKh/B,OAAOC,aAAakva,IAG7B,OAAOnwY,CACT,CACA,IAAI26jC,GAAwB,WAAa,MAAyB,qBAAX7luB,QAA6C,qBAAZj9R,SAAuD,qBAArBA,QAAQC,YAA8BD,QAAQC,SAASl1F,IAAM,CAA3J,GAExBg4lC,GAA4B,WAC/B,GAAqB,qBAAX9luB,OAAwB,CACjC,IAAI+luB,GAAQ/luB,OAAO/zX,KACnB,IAAI85lC,EAAM,IAAM/luB,OAAO/zX,KAAK,MAAO,OAAS,CAAE,MAAMP,IAAKq6lC,GAAO,CAAM,CACtE,OAAOA,EAAO,SAAS3k0B,EAAK+kH,GAAO,OAAQA,EAAO,IAAInmB,OAAO5+F,EAAK+kH,GAAO,IAAInmB,OAAO5+F,EAAM,EAAI4+F,OAAO/zX,KAAKimB,KAAK8tW,OAChH,CACA,OAAO,WAAY,CACpB,CAPgC,GAUhC,SAASgmuB,GAAY9plC,GAEpB,OAAG2plC,GAAgB7luB,OAAOrxX,MAAQqxX,OAAOrxX,MAAMuN,GAAO,IAAI8jX,OAAO9jX,GACrC,oBAAdgmF,WAA4B,IAAIA,WAAWhmF,GAAO,IAAIlJ,MAAMkJ,EAE3E,CAEA,SAAS+plC,GAAe/plC,GAEvB,OAAG2plC,GAAgB7luB,OAAOQ,YAAcR,OAAOQ,YAAYtkX,GAAO,IAAI8jX,OAAO9jX,GACjD,oBAAdgmF,WAA4B,IAAIA,WAAWhmF,GAAO,IAAIlJ,MAAMkJ,EAE3E,CAEA,IAAIgqlC,GAAM,SAAa5xkC,GACtB,OAAGuxkC,GAAgBC,GAAYxxkC,EAAG,UAC3BA,EAAE7gB,MAAM,IAAIhB,KAAI,SAASlB,GAA0B,OAAyB,IAAlBA,EAAEvE,WAAW,EAAW,GAC1F,EASA,SAASm5lC,GAAIrgjC,GACZ,GAAG9yC,MAAMiI,QAAQ6qC,GAAO,OAAOA,EAAKrzC,KAAI,SAAS04B,GAAK,OAAOj/B,OAAOC,aAAag/B,EAAI,IAAGn7B,KAAK,IAC/D,IAA9B,IAAIk7B,EAAsB,GAAY9/B,EAAI,EAAGA,EAAI06C,EAAKt8C,SAAU4B,EAAG8/B,EAAE9/B,GAAKc,OAAOC,aAAa25C,EAAK16C,IAAK,OAAO8/B,EAAEl7B,KAAK,GACvH,CAOA,SAASo2lC,GAAKtgjC,GACb,GAAyB,oBAAf68C,YAA4B,MAAM,IAAIxnF,MAAM,eACtD,GAAG2qC,aAAgB68C,YAAa,OAAOyjgC,GAAK,IAAIlkgC,WAAWp8C,IAG3D,IADA,IAAI5a,EAAI,IAAIl4B,MAAM8yC,EAAKt8C,QACf4B,EAAI,EAAGA,EAAI06C,EAAKt8C,SAAU4B,EAAG8/B,EAAE9/B,GAAK06C,EAAK16C,GACjD,OAAO8/B,CACR,CAEA,IAAIm7jC,GAAUR,GAAU,SAASS,GAAQ,OAAOtmuB,OAAOjsX,OAAOuylC,EAAK7zlC,KAAI,SAAS2uR,GAAO,OAAO4+F,OAAOoB,SAAShgG,GAAOA,EAAM0k0B,GAAY1k0B,EAAM,IAAK,EAAI,SAASkl0B,GAC9J,GAAyB,qBAAfpkgC,WAA4B,CACrC,IAAI92F,EAAI,EAAGgjH,EAAS,EACpB,IAAIhjH,EAAI,EAAGA,EAAIk7lC,EAAK98lC,SAAU4B,EAAGgjH,GAAUk4+B,EAAKl7lC,GAAG5B,OACnD,IAAI0hC,EAAI,IAAIg3D,WAAWksB,GACnBlyG,EAAM,EACV,IAAI9Q,EAAI,EAAGgjH,EAAS,EAAGhjH,EAAIk7lC,EAAK98lC,OAAQ4kH,GAAUlyG,IAAO9Q,EAExD,GADA8Q,EAAMoqlC,EAAKl7lC,GAAG5B,OACX88lC,EAAKl7lC,aAAc82F,WAAYh3D,EAAE/4B,IAAIm0lC,EAAKl7lC,GAAIgjH,OAC5C,IAAqB,iBAAXk4+B,EAAKl7lC,GAAkB,KAAM,MACvC8/B,EAAE/4B,IAAI,IAAI+vF,WAAWokgC,EAAKl7lC,IAAKgjH,EAAO,CAE5C,OAAOljF,CACR,CACA,MAAO,GAAGn3B,OAAOyC,MAAM,GAAI8vlC,EAAK7zlC,KAAI,SAAS2uR,GAAO,OAAOpuR,MAAMiI,QAAQmmR,GAAOA,EAAM,GAAGh0R,MAAM6F,KAAKmuR,EAAM,IAC3G,EAkCA,IAAIml0B,GAAO,UAAWC,GAAO,mBAqB7B,SAASC,GAAQl1lC,GAAuD,IAA5B,IAAI25B,EAAI,GAAI9/B,EAAImG,EAAE/H,OAAO,EAAS4B,GAAG,GAAG8/B,GAAK35B,EAAEkiB,OAAOroB,KAAM,OAAO8/B,CAAG,CAClH,SAASw7jC,GAAKj7jC,EAAUruB,GAAyB,IAAIsa,EAAE,GAAG+T,EAAG,OAAO/T,EAAEluB,QAAQ4T,EAAEsa,EAAEtX,GAAK,IAAIhD,EAAEsa,EAAEluB,QAAQkuB,CAAE,CACzG,SAASivkC,GAAKl7jC,EAAUruB,GAAyB,IAAIsa,EAAE,GAAG+T,EAAE,OAAO/T,EAAEluB,QAAQ4T,EAAEsa,EAAEtX,GAAK,IAAIhD,EAAEsa,EAAEluB,QAAQkuB,CAAE,CACxG,SAASkvkC,GAAMn7jC,EAAUruB,GAAyB,IAAIsa,EAAE,GAAG+T,EAAG,OAAO/T,EAAEluB,QAAQ4T,EAAEsa,EAAEA,EAAEtX,GAAK,IAAIhD,EAAEsa,EAAEluB,OAAQ,CAG1G,IAAIq9lC,GAAqB76lC,KAAK4jD,IAAI,EAAE,IACpC,SAASk3iC,GAAMr7jC,EAAUruB,GAAyB,OAAGquB,EAAEo7jC,IAAOp7jC,GAAGo7jC,GAHjE,SAAgBp7jC,EAAUruB,GAAyB,IAAIsa,EAAE,GAAG1rB,KAAK+b,MAAM0jB,GAAI,OAAO/T,EAAEluB,QAAQ4T,EAAEsa,EAAEtX,GAAK,IAAIhD,EAAEsa,EAAEluB,QAAQkuB,CAAE,CAGxCqvkC,CAAOt7jC,EAAEruB,GAFxF,SAAgBquB,EAAUruB,GAAyB,IAAIsa,EAAE,GAAG+T,EAAG,OAAO/T,EAAEluB,QAAQ4T,EAAEsa,EAAEtX,GAAK,IAAIhD,EAAEsa,EAAEluB,QAAQkuB,CAAE,CAEesvkC,CAAtBh7lC,KAAK+b,MAAM0jB,GAAoBruB,EAAI,CAEvI,SAAS6plC,GAAc3ykC,EAAclpB,GAAyC,OAAZA,EAAIA,GAAK,EAAUkpB,EAAE9qB,QAAU,EAAI4B,GAA8B,OAAR,GAAhBkpB,EAAEtnB,WAAW5B,KAA6C,OAAR,GAAlBkpB,EAAEtnB,WAAW5B,EAAE,KAA6C,OAAR,GAAlBkpB,EAAEtnB,WAAW5B,EAAE,KAA6C,OAAR,GAAlBkpB,EAAEtnB,WAAW5B,EAAE,KAA6C,OAAR,GAAlBkpB,EAAEtnB,WAAW5B,EAAE,KAA6C,MAAR,GAAlBkpB,EAAEtnB,WAAW5B,EAAE,KAA4C,OAAR,GAAlBkpB,EAAEtnB,WAAW5B,EAAE,GAAgB,CACnV,IAAIklF,GAAiC,CACpC,CAAC,MAAO,UACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,aACR,CAAC,MAAO,YACR,CAAC,MAAO,UACR,CAAC,MAAO,aAEL/kD,GAAmC,CACtC,CAAC,IAAK,MAAO,WACb,CAAC,IAAK,MAAO,YACb,CAAC,IAAK,MAAO,SACb,CAAC,IAAK,MAAO,SACb,CAAC,IAAK,MAAO,OACb,CAAC,IAAK,MAAO,QACb,CAAC,IAAK,MAAO,QACb,CAAC,IAAK,MAAO,UACb,CAAC,IAAK,MAAO,aACb,CAAC,IAAK,MAAO,WACb,CAAC,IAAK,MAAO,YACb,CAAC,IAAK,MAAO,aAoCd,IAAI27jC,GAAY,CACf,EAAI,UACJ,EAAI,IACJ,EAAI,OACJ,EAAI,QACJ,EAAI,WACJ,EAAI,KACJ,GAAI,QACJ,GAAI,WACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,WACJ,GAAI,QACJ,GAAI,SACJ,GAAI,aACJ,GAAI,gBACJ,GAAI,OACJ,GAAI,UACJ,GAAI,cACJ,GAAI,iBACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,2BACJ,GAAI,QACJ,GAAI,YACJ,GAAI,SACJ,GAAI,WACJ,GAAI,IACJ,GAAI,+DAMDC,GAAkB,CACrB,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,EAAI,GAE5B,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAE7B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAEpC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAE7B,GAAK,EAAG,GAAI,GACZ,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAKDC,GAAkB,CAErB,EAAI,4BACJ,GAAI,4BAGJ,EAAI,iCACJ,GAAI,iCAGJ,EAAI,kCACJ,GAAI,kCAGJ,EAAI,uCACJ,GAAI,uCAGJ,GAAI,8CAGJ,GAAI,uDAGJ,GAAI,sDAGJ,GAAI,gEAGL,SAASC,GAAS91lC,EAAcy6B,EAAc0ipB,GAM7C,IALA,IAAIhoe,EAAMn1M,EAAI,GAAK,EAAI,EACnBwza,EAAIxza,EAAIm1M,EACR4g5B,EAAM,EAAGC,EAAM,EAAG3iiC,EAAI,EACtB4iiC,EAAM,EAAGC,EAAM,EAAGv7jC,EAAI,EACtBuE,EAAIzkC,KAAK2/B,MAAMo5Y,GACb0irB,EAAMz7jC,IAEX44B,GADAn0B,EAAIzkC,KAAK2/B,MAAMo5Y,IACPwirB,EAAMD,EACdp7jC,EAAIuE,EAAIg3jC,EAAMD,IACVzirB,EAAIt0Y,EAAK,QACbs0Y,EAAI,GAAKA,EAAIt0Y,GACb62jC,EAAMC,EAAKA,EAAM3iiC,EACjB4iiC,EAAMC,EAAKA,EAAMv7jC,EAGlB,GADGA,EAAIF,IAAQy7jC,EAAMz7jC,GAAKE,EAAIs7jC,EAAK5iiC,EAAI0iiC,IAAcp7jC,EAAIu7jC,EAAK7iiC,EAAI2iiC,KAC9D74a,EAAO,MAAO,CAAC,EAAGhoe,EAAM9hJ,EAAG14B,GAC/B,IAAIoI,EAAItoC,KAAK2/B,MAAM+6K,EAAM9hJ,EAAE14B,GAC3B,MAAO,CAACoI,EAAGoyK,EAAI9hJ,EAAItwB,EAAEpI,EAAGA,EACzB,CACA,SAASw7jC,GAAoBj8jC,EAAamgE,EAAcuc,GACvD,GAAG18E,EAAI,SAAWA,EAAI,EAAG,OAAO,KAChC,IAAIld,EAAU,EAAFkd,EAAM/c,EAAO1iB,KAAK2/B,MAAM,OAASF,EAAIld,IAAQwuE,EAAI,EACzD4qgC,EAAK,GACL34hC,EAAI,CAAChjC,EAAEzd,EAAMo3E,EAAEj3E,EAAMqJ,EAAE,OAAO0T,EAAEld,GAAMG,EAAKld,EAAE,EAAEyqB,EAAE,EAAE7e,EAAE,EAAE2zB,EAAE,EAAE1F,EAAE,EAAEe,EAAE,EAAEkI,EAAE,GAOzE,GANGtoC,KAAKD,IAAIijE,EAAIj3C,GAAK,OAAMi3C,EAAIj3C,EAAI,GAChC6zE,GAAQA,EAAKg8/B,WAAUr5kC,GAAQ,MAC/BygD,EAAIj3C,EAAI,QACVi3C,EAAIj3C,EAAI,EACK,SAARrJ,IAAiBsgD,EAAI22B,EAAIj3E,EAAO,IAAKH,IAAQygD,EAAIhjC,IAE3C,KAATzd,EAAco5kC,EAAOx/+B,EAAK,CAAC,KAAK,GAAG,IAAM,CAAC,KAAK,EAAE,IAAKprB,EAAI,OACxD,GAAY,IAATxuE,EAAao5kC,EAAOx/+B,EAAK,CAAC,KAAK,EAAE,IAAM,CAAC,KAAK,EAAE,GAAIprB,EAAI,MAC1D,CACDxuE,EAAO,MAAMA,EAEhB,IAAInR,EAAI,IAAI0vB,KAAK,KAAM,EAAG,GAC1B1vB,EAAEizE,QAAQjzE,EAAEkwB,UAAY/e,EAAO,GAC/Bo5kC,EAAO,CAACvqlC,EAAE8vB,cAAe9vB,EAAEgwB,WAAW,EAAEhwB,EAAEkwB,WAC1CyvD,EAAM3/E,EAAEowB,SACLjf,EAAO,KAAIwuE,GAAOA,EAAM,GAAK,GAC7BorB,IAAIprB,EAgFT,SAAuBxuE,EAAe2c,GAEpCA,EAAE,IAAM,IACR,IAAI6xD,EAAMxuE,EAAKif,SACZjf,EAAO,KAAIwuE,GAAOA,EAAM,GAAK,GAChC,OAAOA,CACT,CAtFe8qgC,CAAczqlC,EAAGuqlC,GAC/B,CAMA,OALA34hC,EAAIx9D,EAAIm2lC,EAAK,GAAI34hC,EAAI/yC,EAAI0rkC,EAAK,GAAI34hC,EAAI5xD,EAAIuqlC,EAAK,GAC/C34hC,EAAI5iC,EAAI1d,EAAO,GAAIA,EAAO1iB,KAAK2/B,MAAMjd,EAAO,IAC5CsgD,EAAI3jC,EAAI3c,EAAO,GAAIA,EAAO1iB,KAAK2/B,MAAMjd,EAAO,IAC5CsgD,EAAIj+B,EAAIriB,EACRsgD,EAAI16B,EAAIyoD,EACD/tB,CACR,CACA,IAAI84hC,GAA2B,IAAIh7jC,KAAK,KAAM,GAAI,GAAI,EAAG,EAAG,GACxDi7jC,GAA2BD,GAAYn5jC,UACvCq5jC,GAA2B,IAAIl7jC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAC1D,SAASm7jC,GAAcx8jC,EAAYm8jC,GAClC,IAAIv4M,EAAqB5j3B,EAAEkD,UAG3B,OAFGi5jC,EAAUv4M,GAAS,UACd5j3B,GAAKu8jC,KAAa34M,GAAS,QAC3BA,GAAS04M,GAAoG,KAAxEt8jC,EAAE+D,oBAAmCs4jC,GAAYt4jC,uBAAiC,KAChI,CAIA,SAAS04jC,GAAkBh9jC,GAC1B,OAA2B,GAAnBA,EAAEr+B,QAAQ,KAAcq+B,EAAIA,EAAE1+B,QAAQ,2BAA4B,KAC3E,CAsBA,SAAS27lC,GAAgB18jC,GACxB,IAAuDP,EAAnDkxD,EAAIpwF,KAAK2/B,MAAM3/B,KAAK2hD,IAAI3hD,KAAKD,IAAI0/B,IAAIz/B,KAAKo8lC,QAO9C,OALuBl9jC,EAApBkxD,IAAM,GAAKA,IAAM,EAAO3wD,EAAE8yD,YAAY,GAAGnC,GACpCpwF,KAAKD,IAAIqwF,IAAM,EAjBxB,SAAuB3wD,GACtB,IAAIM,EAAKN,EAAE,EAAE,GAAG,GACZP,EAAIg9jC,GAAkBz8jC,EAAE7W,QAAQ,KAAM,OAAGsW,EAAE1hC,QAAUuiC,IACzDb,EAAIO,EAAE8yD,YAAY,KAAU/0F,QAAUuiC,EAD6Bb,EAE5DO,EAAEmyD,cAAc,EACxB,CAY+ByqgC,CAAc58jC,GAC9B,KAAN2wD,EAAc3wD,EAAE7W,QAAQ,IAAI3nB,OAAO,EAAE,IAV9C,SAAuBw+B,GACtB,IAAIP,EAAIg9jC,GAAkBz8jC,EAAE7W,QAAQ,KACpC,OAAQsW,EAAE1hC,QAAUiiC,EAAE,EAAE,GAAG,KAAa,MAANP,GAAmB,OAANA,EAAcO,EAAE8yD,YAAY,GAAKrzD,CACjF,CAQUo9jC,CAAc78jC,GAEhBy8jC,GA3BR,SAA2Bh9jC,GAC1B,OAAsB,GAAnBA,EAAEr+B,QAAQ,KAAmBq+B,EACzBA,EAAE1+B,QAAQ,8BAA8B,OAAOA,QAAQ,eAAe,QAC9E,CAwB0B+7lC,CAAkBr9jC,EAAEvF,eAC9C,CAaA,SAAS6ikC,GAAY/8jC,EAAWmgE,GAC/B,cAAcngE,GACb,IAAK,SAAU,OAAOA,EACtB,IAAK,UAAW,OAAOA,EAAI,OAAS,QACpC,IAAK,SAAU,OAAU,EAAFA,KAASA,EAAIA,EAAE/0B,SAAS,IAAMyxlC,GAAgB18jC,GACrE,IAAK,YAAa,MAAO,GACzB,IAAK,SACJ,GAAQ,MAALA,EAAW,MAAO,GACrB,GAAGA,aAAaqB,KAAM,OAAO27jC,GAAW,GAAIR,GAAcx8jC,EAAGmgE,GAAQA,EAAKg8/B,UAAWh8/B,GAEvF,MAAM,IAAIzwF,MAAM,wCAA0CswB,EAC3D,CAUA,SAASi9jC,GAAez6lC,EAAiBgxH,EAAgB/qG,EAAKy0kC,GAC7D,IAAiC35hC,EAA7B9jC,EAAE,GAAI2F,EAAG,EAAG6oK,EAAG,EAAGloM,EAAI0iB,EAAI1iB,EAAQo3lC,EAAO,EAC7C,OAAO36lC,GACN,KAAK,GACJuD,EAAI0iB,EAAI1iB,EAAI,IAEb,KAAK,IACL,OAAOytH,EAAIz1H,QACV,KAAK,EAAG,KAAK,EAAGwlE,EAAMx9D,EAAI,IAAKo3lC,EAAO,EAAG,MACzC,QAAS55hC,EAAMx9D,EAAI,IAAOo3lC,EAAO,EAChC,MACF,KAAK,IACL,OAAO3p+B,EAAIz1H,QACV,KAAK,EAAG,KAAK,EAAGwlE,EAAM96C,EAAI+H,EAAG2skC,EAAO3p+B,EAAIz1H,OAAQ,MAChD,KAAK,EAAG,OAAO+hC,GAAOrX,EAAI+H,EAAE,GAAG,GAC/B,KAAK,EAAG,OAAOsP,GAAOrX,EAAI+H,EAAE,GAAG,GAC/B,QAAS,OAAOsP,GAAOrX,EAAI+H,EAAE,GAAG,GAC/B,MACF,KAAK,IACL,OAAOgjG,EAAIz1H,QACV,KAAK,EAAG,KAAK,EAAGwlE,EAAM96C,EAAI9W,EAAGwrlC,EAAO3p+B,EAAIz1H,OAAQ,MAChD,KAAK,EAAG,OAAO8mF,GAAKp8D,EAAIogB,GAAG,GAC3B,QAAS,OAAOg8C,GAAKp8D,EAAIogB,GAAG,GAC3B,MACF,KAAK,IACL,OAAO2qF,EAAIz1H,QACV,KAAK,EAAG,KAAK,EAAGwlE,EAAM,GAAG96C,EAAI6c,EAAE,IAAI,GAAI63jC,EAAO3p+B,EAAIz1H,OAAQ,MAC1D,QAAS,KAAM,oBAAsBy1H,EACpC,MACF,KAAK,GACL,OAAOA,EAAIz1H,QACV,KAAK,EAAG,KAAK,EAAGwlE,EAAM96C,EAAI6c,EAAG63jC,EAAO3p+B,EAAIz1H,OAAQ,MAChD,QAAS,KAAM,oBAAsBy1H,EACpC,MACF,KAAK,GACL,OAAOA,EAAIz1H,QACV,KAAK,EAAG,KAAK,EAAGwlE,EAAM96C,EAAImX,EAAGu9jC,EAAO3p+B,EAAIz1H,OAAQ,MAChD,QAAS,KAAM,sBAAwBy1H,EACtC,MACF,KAAK,IACJ,GAAU,KAAPA,GAAqB,MAAPA,GAAsB,MAAPA,GAAsB,OAAPA,GAAuB,QAAPA,EAAe,KAAM,sBAAwBA,EAC5G,OAAa,IAAV/qG,EAAI6D,GAAmB,KAAPknG,GAAqB,MAAPA,GAEpBy6E,EAAViv5B,GAAO,EAAgB,IAARA,EAAY,IAAO,IACnB,IAARA,EAAY,GAAK,GAC3B93jC,EAAK7kC,KAAK+b,MAAO2xL,GAAKxlL,EAAIkY,EAAIlY,EAAI6D,MACzB,GAAG2hL,IAAI7oK,EAAK,GACV,MAARouF,EAA2B,IAAPpuF,EAAW,IAAM,GAAGA,EAAG6oK,GAC9CxuK,EAAIw7jC,GAAK71jC,EAAG,EAAI83jC,GACL,OAAR1p+B,EAAqB/zF,EAAEj+B,OAAO,EAAE,GAC5B,IAAMi+B,EAAEj+B,OAAO,EAAEgyH,EAAIz1H,OAAO,KATmBk9lC,GAAKxykC,EAAIkY,EAAG6yF,EAAIz1H,QAUvE,KAAK,GACL,OAAOy1H,GACN,IAAK,MAAO,IAAK,OAAQjwD,EAAY,GAAN96C,EAAI8X,EAAK9X,EAAI6c,EAAG,MAC/C,IAAK,MAAO,IAAK,OAAQi+B,EAAuB,IAAV,GAAN96C,EAAI8X,EAAK9X,EAAI6c,GAAM7c,EAAImX,EAAG,MAC1D,IAAK,MAAO,IAAK,OAAQ2jC,EAAkC,IAAV,IAAV,GAAN96C,EAAI8X,EAAK9X,EAAI6c,GAAM7c,EAAImX,GAAMr/B,KAAK+b,MAAMmM,EAAIkY,EAAElY,EAAI6D,GAAI,MACvF,QAAS,KAAM,uBAAyBknG,EACvC2p+B,EAAsB,IAAf3p+B,EAAIz1H,OAAe,EAAI,EAAG,MACnC,KAAK,IACJwlE,EAAMx9D,EAAGo3lC,EAAO,EAGlB,OADaA,EAAO,EAAIlC,GAAK13hC,EAAK45hC,GAAQ,EAE3C,CAKA,SAASC,GAASv0kC,GAEjB,GAAGA,EAAE9qB,QADG,EACU,OAAO8qB,EAEzB,IADA,IAAIjjB,EAAKijB,EAAE9qB,OAFH,EAEgB0hC,EAAI5W,EAAErnB,OAAO,EAAEoE,GACjCA,GAAGijB,EAAE9qB,OAAQ6H,GAHX,EAGiB65B,IAAIA,EAAE1hC,OAAS,EAAI,IAAM,IAAM8qB,EAAErnB,OAAOoE,EAHzD,GAIR,OAAO65B,CACR,CACA,IAAI49jC,GAAO,KAYX,SAASC,GAAc9p+B,EAAgB/qG,GACtC,IAAIgX,EACA/W,EAAM8qG,EAAIpyH,QAAQ,KAAOoyH,EAAIpyH,QAAQ,KAAO,EAChD,GAAGoyH,EAAIrsH,MAAM,eAAgB,CAC5B,GAAU,GAAPshB,EAAU,MAAO,SACf,GAAGA,EAAM,EAAG,MAAO,IAAM60kC,GAAc9p+B,GAAM/qG,GAClD,IAAIq/K,EAASt0E,EAAIpyH,QAAQ,MAAqB,IAAZ0mM,IAAeA,EAAOt0E,EAAIpyH,QAAQ,MACpE,IAAIi1c,EAAK91c,KAAK2/B,MAAM3/B,KAAK2hD,IAAIz5B,GAAKloB,KAAKo8lC,QAAQ705B,EAG/C,GAFGuuQ,EAAK,IAAGA,GAAMvuQ,IAEM,KADvBroK,GAAKhX,EAAIloB,KAAK4jD,IAAI,GAAGkyZ,IAAKvjX,YAAYpqE,EAAI,GAAGo/K,EAAOuuQ,GAAIvuQ,IACnD1mM,QAAQ,KAAa,CACzB,IAAIm8lC,EAAQh9lC,KAAK2/B,MAAM3/B,KAAK2hD,IAAIz5B,GAAKloB,KAAKo8lC,QAG1C,KAFuB,IAApBl9jC,EAAEr+B,QAAQ,KAAaq+B,EAAIA,EAAEzX,OAAO,GAAK,IAAMyX,EAAEj+B,OAAO,GAAK,MAAQ+7lC,EAAQ99jC,EAAE1hC,OAAOs4c,GACpF52a,GAAK,MAAQ89jC,EAAQlnpB,GACF,OAAlB52a,EAAEj+B,OAAO,EAAE,IAEhBi+B,GADAA,EAAIA,EAAEzX,OAAO,GAAKyX,EAAEj+B,OAAO,EAAEsmM,GAAU,IAAMroK,EAAEj+B,OAAO,EAAEsmM,IAClD/mM,QAAQ,aAAa,MAAMA,QAAQ,QAAQ,MAElD0+B,EAAIA,EAAE1+B,QAAQ,MAAM,IACrB,CACA0+B,EAAIA,EAAE1+B,QAAQ,4BAA2B,SAASy8lC,EAAG5nsB,EAAGi5Q,EAAGC,GAAM,OAAOl5Q,EAAKi5Q,EAAKC,EAAGttqB,OAAO,GAAGsmM,EAAOuuQ,GAAIvuQ,GAAU,IAAMgne,EAAGttqB,OAAO60c,GAAM,GAAK,GAChJ,MAAO52a,EAAIhX,EAAI0pE,cAAczpE,GAG7B,OAFG8qG,EAAIrsH,MAAM,WAAas4B,EAAEt4B,MAAM,cAAas4B,EAAIA,EAAEj+B,OAAO,EAAEi+B,EAAE1hC,OAAO,GAAK,IAAM0hC,EAAEzX,OAAOyX,EAAE1hC,OAAO,IACjGy1H,EAAIrsH,MAAM,QAAUs4B,EAAEt4B,MAAM,SAAQs4B,EAAIA,EAAE1+B,QAAQ,MAAM,MACpD0+B,EAAE1+B,QAAQ,IAAI,IACtB,CACA,IAAI08lC,GAAQ,yBASZ,IAAIC,GAAO,iBACPC,GAAa,WACbC,GAAQ,sBACZ,SAASC,GAAMttlC,GAEd,IADA,IAAYihb,EAAR/xZ,EAAI,GACA9/B,EAAI,EAAGA,GAAK4Q,EAAIxS,SAAU4B,EAAG,OAAQ6xb,EAAGjhb,EAAIhP,WAAW5B,IAC9D,KAAK,GAAI,MACT,KAAK,GAAI8/B,GAAI,IAAK,MAClB,KAAK,GAAIA,GAAI,IAAK,MAClB,QAASA,GAAIh/B,OAAOC,aAAa8wb,GAElC,OAAO/xZ,CACR,CACA,SAASq+jC,GAAIr1kC,EAAgB9W,GAA2B,IAAIi9M,EAAKruN,KAAK4jD,IAAI,GAAGxyC,GAAI,MAAO,GAAIpR,KAAK+b,MAAMmM,EAAMmmM,GAAIA,CAAK,CACtH,SAASmv4B,GAAIt1kC,EAAgB9W,GAC5B,IAAIqslC,EAAQv1kC,EAAMloB,KAAK2/B,MAAMzX,GAAMmmM,EAAKruN,KAAK4jD,IAAI,GAAGxyC,GACpD,OAAIA,GAAK,GAAKpR,KAAK+b,MAAM0hlC,EAAQpv4B,IAAK7wN,OAAe,EAC9CwC,KAAK+b,MAAM0hlC,EAAQpv4B,EAC3B,CAWA,SAASqv4B,GAAcz7lC,EAAiBgxH,EAAgB/qG,GACvD,GAA0B,KAAvBjmB,EAAKjB,WAAW,KAAciyH,EAAIrsH,MAAMw2lC,IAAa,CACvD,IAAIO,EAAO1q+B,EAAIzyH,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,IACjE,OAAG0nB,GAAO,EAAUw1kC,GAAc,IAAKC,EAAMz1kC,GACtC,IAAMw1kC,GAAc,IAAKC,GAAOz1kC,GAAO,GAC/C,CACA,GAAsC,KAAnC+qG,EAAIjyH,WAAWiyH,EAAIz1H,OAAS,GAAW,OA5E3C,SAAsByE,EAAiBgxH,EAAgB/qG,GAEtD,IADA,IAAIC,EAAM8qG,EAAIz1H,OAAS,EACS,KAA1By1H,EAAIjyH,WAAWmnB,EAAI,MAAaA,EACtC,OAAOy1kC,GAAU37lC,EAAMgxH,EAAIhyH,OAAO,EAAEknB,GAAMD,EAAMloB,KAAK4jD,IAAI,GAAG,GAAGqvE,EAAIz1H,OAAO2qB,IAC3E,CAwEkD01kC,CAAa57lC,EAAMgxH,EAAK/qG,GACzE,IAAyB,IAAtB+qG,EAAIpyH,QAAQ,KAAa,OAlF7B,SAAuBoB,EAAiBgxH,EAAgB/qG,GACvD,IAAI41kC,EAAO7q+B,EAAIzyH,QAAQs8lC,GAAK,IAAKhh+B,EAAM7I,EAAIz1H,OAASsgmC,EAAKtgmC,OACzD,OAAOogmC,GAAU37lC,EAAM67lC,EAAM51kC,EAAMloB,KAAK4jD,IAAI,GAAG,EAAEk4E,IAAQ1nH,GAAK,IAAI0nH,EACnE,CA+EoCii+B,CAAc97lC,EAAMgxH,EAAK/qG,GAC5D,IAAyB,IAAtB+qG,EAAIpyH,QAAQ,KAAa,OAAOk8lC,GAAc9p+B,EAAK/qG,GACtD,GAAyB,KAAtB+qG,EAAIjyH,WAAW,GAAW,MAAO,IAAI08lC,GAAcz7lC,EAAKgxH,EAAIhyH,OAAsB,KAAfgyH,EAAIxrG,OAAO,GAAQ,EAAE,GAAGS,GAC9F,IAAIgX,EACA1T,EAAsBk9a,EAAI3tP,EAAIirrB,EAAOhm4B,KAAKD,IAAImoB,GAAM43D,EAAO53D,EAAM,EAAI,IAAM,GAC/E,GAAG+qG,EAAIrsH,MAAM,SAAU,OAAOk5E,EAAOg7gC,GAAM90N,EAAK/ywB,EAAIz1H,QACpD,GAAGy1H,EAAIrsH,MAAM,WAEZ,MAD2B,OAA3Bs4B,EAAI47jC,GAAM5ykC,EAAI,MAAkBgX,EAAI,IAC7BA,EAAE1hC,OAASy1H,EAAIz1H,OAAS0hC,EAAIo+jC,GAAMrq+B,EAAIhyH,OAAO,EAAEgyH,EAAIz1H,OAAO0hC,EAAE1hC,SAAW0hC,EAE/E,GAAI1T,EAAIynG,EAAIrsH,MAAMs2lC,IAAS,OAtD5B,SAAsB1xkC,EAAqBw62B,EAAiBlmzB,GAC3D,IAAIk+gC,EAAMz2kC,SAASiE,EAAE,GAAG,IAAK6ve,EAAKr7f,KAAK+b,MAAMiq3B,EAAOg4N,GAAM/vkC,EAAOjuB,KAAK2/B,MAAM07d,EAAG2imB,GAC3EC,EAAO5imB,EAAKpte,EAAK+vkC,EAAME,EAAMF,EACjC,OAAOl+gC,GAAiB,IAAT7xD,EAAa,GAAK,GAAGA,GAAQ,KAAe,IAARgwkC,EAAY7plC,GAAK,IAAKoX,EAAE,GAAGhuB,OAAS,EAAIguB,EAAE,GAAGhuB,QAAUm9lC,GAAKsD,EAAIzykC,EAAE,GAAGhuB,QAAUguB,EAAE,GAAK,IAAMA,EAAE,GAAKkvkC,GAAKwD,EAAI1ykC,EAAE,GAAGhuB,QACrK,CAkDmC2gmC,CAAa3ykC,EAAGw62B,EAAMlmzB,GACxD,GAAGmzC,EAAIrsH,MAAM,UAAW,OAAOk5E,EAAOg7gC,GAAM90N,EAAK/ywB,EAAIz1H,OAASy1H,EAAIpyH,QAAQ,MAC1E,GAAI2qB,EAAIynG,EAAIrsH,MAAMu2lC,IAEjB,OADAj+jC,EAAIq+jC,GAAIr1kC,EAAKsD,EAAE,GAAGhuB,QAAQgD,QAAQ,aAAa,MAAM88lC,GAAM9xkC,EAAE,KAAKhrB,QAAQ,MAAM,IAAI88lC,GAAM9xkC,EAAE,KAAKhrB,QAAQ,YAAW,SAASy8lC,EAAI5nsB,GAAM,MAAO,IAAMA,EAAKjhZ,GAAK,IAAKkplC,GAAa9xkC,EAAe,IAAIhuB,OAAO63Z,EAAG73Z,OAAS,KACxL,IAAvBy1H,EAAIpyH,QAAQ,MAAeq+B,EAAIA,EAAE1+B,QAAQ,OAAO,KAGxD,GADAyyH,EAAMA,EAAIzyH,QAAQ,YAAa,MAC3BgrB,EAAIynG,EAAIrsH,MAAM,gBACjB,OAAOk5E,EAAOy9gC,GAAIv3N,EAAMx62B,EAAE,GAAGhuB,QAAQgD,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOgrB,EAAE,GAAGhuB,OAAO,KAAK,KAElI,GAAIguB,EAAIynG,EAAIrsH,MAAM,qBAAuB,OAAOk5E,EAAO+8gC,GAAS/B,GAAM90N,EAAK,IAC3E,GAAIx62B,EAAIynG,EAAIrsH,MAAM,qBACjB,OAAOshB,EAAM,EAAI,IAAMw1kC,GAAcz7lC,EAAMgxH,GAAM/qG,GAAO20kC,GAAS,IAAI78lC,KAAK2/B,MAAMzX,GAvClF,SAAeA,EAAgB9W,GAC9B,OAAIA,GAAK,GAAKpR,KAAK+b,OAAOmM,EAAIloB,KAAK2/B,MAAMzX,IAAMloB,KAAK4jD,IAAI,GAAGxyC,KAAK5T,OACxD,EAED,CACR,CAkCyFg6b,CAAMtva,EAAKsD,EAAE,GAAGhuB,UAAY,IAAMk9lC,GAAK8C,GAAIt1kC,EAAKsD,EAAE,GAAGhuB,QAAQguB,EAAE,GAAGhuB,QAE1J,GAAIguB,EAAIynG,EAAIrsH,MAAM,YAAc,OAAO82lC,GAAcz7lC,EAAKgxH,EAAIzyH,QAAQ,SAAS,IAAI0nB,GACnF,GAAIsD,EAAIynG,EAAIrsH,MAAM,2BAGjB,OAFAs4B,EAAIu7jC,GAAQiD,GAAcz7lC,EAAMgxH,EAAIzyH,QAAQ,SAAS,IAAK0nB,IAC1Dwgb,EAAK,EACE+xpB,GAAQA,GAAQxn+B,EAAIzyH,QAAQ,MAAM,KAAKA,QAAQ,SAAQ,SAAS+E,GAAG,OAAOmjc,EAAGxpa,EAAE1hC,OAAO0hC,EAAEzX,OAAOihb,KAAU,MAAJnjc,EAAQ,IAAI,EAAG,KAE5H,GAAG0tH,EAAIrsH,MAAMy2lC,IAEZ,MAAO,KADPn+jC,EAAIw+jC,GAAcz7lC,EAAM,aAAcimB,IACvBjnB,OAAO,EAAE,GAAK,KAAOi+B,EAAEj+B,OAAO,EAAG,GAAK,IAAMi+B,EAAEj+B,OAAO,GAErE,IAAImw0B,EAAK,GACT,GAAI5lzB,EAAIynG,EAAIrsH,MAAM,+BAUjB,OATA8hc,EAAK1oc,KAAK8mB,IAAiB0E,EAAE,GAAUhuB,OAAO,GAC9Cu9M,EAAKsg5B,GAASr1N,EAAMhm4B,KAAK4jD,IAAI,GAAG8kZ,GAAI,GAAG,GACvCxpa,EAAI,GAAK4gD,EAEoB,MAD7BsxvB,EAAKwsR,GAAU,IAAkBpykC,EAAE,GAAWuvL,EAAG,KAC3CtzL,OAAO2pzB,EAAG5z0B,OAAO,KAAW4z0B,EAAKA,EAAGnw0B,OAAO,EAAEmw0B,EAAG5z0B,OAAO,GAAK,KAClE0hC,GAAKkyyB,EAAkB5lzB,EAAE,GAAY,IAAmBA,EAAE,IAC1D4lzB,EAAKwpR,GAAM7/4B,EAAG,GAAG2tP,IACXlrc,OAASguB,EAAE,GAAGhuB,SAAQ4z0B,EAAKksR,GAAM9xkC,EAAE,GAAGvqB,OAAOuqB,EAAE,GAAGhuB,OAAO4z0B,EAAG5z0B,SAAW4z0B,GAC7ElyyB,GAAKkyyB,EAGN,GAAI5lzB,EAAIynG,EAAIrsH,MAAM,iCAGjB,OAFA8hc,EAAK1oc,KAAK8mB,IAAI9mB,KAAK6mB,IAAI2E,EAAE,GAAGhuB,OAAQguB,EAAE,GAAGhuB,QAAQ,GAE1CsiF,IADPi7H,EAAKsg5B,GAASr1N,EAAMhm4B,KAAK4jD,IAAI,GAAG8kZ,GAAI,GAAG,IACrB,KAAK3tP,EAAG,GAAK,GAAK,MAAQ,KAAOA,EAAG,GAAK4/4B,GAAK5/4B,EAAG,GAAG2tP,GAAMl9a,EAAE,GAAK,IAAMA,EAAE,GAAKovkC,GAAM7/4B,EAAG,GAAG2tP,GAAKt0b,GAAK,IAAK,EAAEs0b,EAAG,EAAIl9a,EAAE,GAAGhuB,OAASguB,EAAE,GAAGhuB,SAExJ,GAAIguB,EAAIynG,EAAIrsH,MAAM,YAEjB,OADAs4B,EAAI47jC,GAAM5ykC,EAAK,GACZ+qG,EAAIz1H,QAAU0hC,EAAE1hC,OAAe0hC,EAC3Bo+jC,GAAMrq+B,EAAIhyH,OAAO,EAAEgyH,EAAIz1H,OAAO0hC,EAAE1hC,SAAW0hC,EAEnD,GAAI1T,EAAIynG,EAAIrsH,MAAM,uBAAyB,CAC1Cs4B,EAAI,GAAKhX,EAAIU,QAAQ5oB,KAAK8mB,IAAI0E,EAAE,GAAGhuB,OAAO,KAAKgD,QAAQ,YAAY,MACnEkoc,EAAKxpa,EAAEr+B,QAAQ,KACf,IAAIu9lC,EAAOnr+B,EAAIpyH,QAAQ,KAAO6nc,EAAI21pB,EAAOpr+B,EAAIz1H,OAAS0hC,EAAE1hC,OAAS4gmC,EACjE,OAAOd,GAAMrq+B,EAAIhyH,OAAO,EAAEm9lC,GAAQl/jC,EAAI+zF,EAAIhyH,OAAOgyH,EAAIz1H,OAAO6gmC,GAC7D,CACA,GAAI7ykC,EAAIynG,EAAIrsH,MAAM,sBAEjB,OADA8hc,EAAK80pB,GAAIt1kC,EAAKsD,EAAE,GAAGhuB,QACZ0qB,EAAM,EAAI,IAAMw1kC,GAAcz7lC,EAAMgxH,GAAM/qG,GAAO20kC,GA5E1D,SAAa30kC,GACZ,OAAGA,EAAM,YAAcA,GAAO,WAAmB,IAAIA,GAAO,EAAS,EAAJA,EAAUA,EAAI,EAAE,GAC1E,GAAGloB,KAAK2/B,MAAMzX,EACtB,CAyEmEo2kC,CAAIp2kC,IAAM1nB,QAAQ,aAAa,OAAOA,QAAQ,SAAQ,SAASy8lC,GAAM,MAAO,OAASA,EAAGz/lC,OAAS,EAAIk9lC,GAAK,EAAE,EAAEuC,EAAGz/lC,QAAU,IAAMy/lC,CAAI,IAAK,IAAMvC,GAAKhypB,EAAGl9a,EAAE,GAAGhuB,QAE/N,OAAOy1H,GACN,IAAK,aAAc,OAAOyq+B,GAAcz7lC,EAAM,WAAYimB,GAC1D,IAAK,UACL,IAAK,SACL,IAAK,QAAS,IAAI3iB,EAAIs3lC,GAAS/B,GAAM90N,EAAK,IAAK,MAAa,MAANzg4B,EAAYu6E,EAAOv6E,EAAI,GAC7E,IAAK,aAAc,OAAOm4lC,GAAcz7lC,EAAM,aAAaimB,GAAK1nB,QAAQ,OAAO,KAC/E,IAAK,WAAY,OAAOk9lC,GAAcz7lC,EAAM,WAAWimB,GAAK1nB,QAAQ,OAAO,KAG5E,MAAM,IAAI2O,MAAM,uBAAyB8jH,EAAM,IAChD,CAUA,SAASsr+B,GAAetr+B,EAAgB/qG,GACvC,IAAIgX,EACA/W,EAAM8qG,EAAIpyH,QAAQ,KAAOoyH,EAAIpyH,QAAQ,KAAO,EAChD,GAAGoyH,EAAIrsH,MAAM,eAAgB,CAC5B,GAAU,GAAPshB,EAAU,MAAO,SACf,GAAGA,EAAM,EAAG,MAAO,IAAMq2kC,GAAetr+B,GAAM/qG,GACnD,IAAIq/K,EAASt0E,EAAIpyH,QAAQ,MAAqB,IAAZ0mM,IAAeA,EAAOt0E,EAAIpyH,QAAQ,MACpE,IAAIi1c,EAAK91c,KAAK2/B,MAAM3/B,KAAK2hD,IAAIz5B,GAAKloB,KAAKo8lC,QAAQ705B,EAG/C,GAFGuuQ,EAAK,IAAGA,GAAMvuQ,KACjBroK,GAAKhX,EAAIloB,KAAK4jD,IAAI,GAAGkyZ,IAAKvjX,YAAYpqE,EAAI,GAAGo/K,EAAOuuQ,GAAIvuQ,IAClD3gM,MAAM,QAAS,CACpB,IAAIo2lC,EAAQh9lC,KAAK2/B,MAAM3/B,KAAK2hD,IAAIz5B,GAAKloB,KAAKo8lC,SACnB,IAApBl9jC,EAAEr+B,QAAQ,KAAaq+B,EAAIA,EAAEzX,OAAO,GAAK,IAAMyX,EAAEj+B,OAAO,GAAK,MAAQ+7lC,EAAQ99jC,EAAE1hC,OAAOs4c,GACpF52a,GAAK,MAAQ89jC,EAAQlnpB,GAC1B52a,EAAIA,EAAE1+B,QAAQ,MAAM,IACrB,CACA0+B,EAAIA,EAAE1+B,QAAQ,4BAA2B,SAASy8lC,EAAG5nsB,EAAGi5Q,EAAGC,GAAM,OAAOl5Q,EAAKi5Q,EAAKC,EAAGttqB,OAAO,GAAGsmM,EAAOuuQ,GAAIvuQ,GAAU,IAAMgne,EAAGttqB,OAAO60c,GAAM,GAAK,GAChJ,MAAO52a,EAAIhX,EAAI0pE,cAAczpE,GAG7B,OAFG8qG,EAAIrsH,MAAM,WAAas4B,EAAEt4B,MAAM,cAAas4B,EAAIA,EAAEj+B,OAAO,EAAEi+B,EAAE1hC,OAAO,GAAK,IAAM0hC,EAAEzX,OAAOyX,EAAE1hC,OAAO,IACjGy1H,EAAIrsH,MAAM,QAAUs4B,EAAEt4B,MAAM,SAAQs4B,EAAIA,EAAE1+B,QAAQ,MAAM,MACpD0+B,EAAE1+B,QAAQ,IAAI,IACtB,CACA,SAASg+lC,GAAcv8lC,EAAiBgxH,EAAgB/qG,GACvD,GAA0B,KAAvBjmB,EAAKjB,WAAW,KAAciyH,EAAIrsH,MAAMw2lC,IAAa,CACvD,IAAIO,EAAO1q+B,EAAIzyH,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,IACjE,OAAG0nB,GAAO,EAAUs2kC,GAAc,IAAKb,EAAMz1kC,GACtC,IAAMs2kC,GAAc,IAAKb,GAAOz1kC,GAAO,GAC/C,CACA,GAAsC,KAAnC+qG,EAAIjyH,WAAWiyH,EAAIz1H,OAAS,GAAW,OArC3C,SAAuByE,EAAiBgxH,EAAgB/qG,GAEvD,IADA,IAAIC,EAAM8qG,EAAIz1H,OAAS,EACS,KAA1By1H,EAAIjyH,WAAWmnB,EAAI,MAAaA,EACtC,OAAOy1kC,GAAU37lC,EAAMgxH,EAAIhyH,OAAO,EAAEknB,GAAMD,EAAMloB,KAAK4jD,IAAI,GAAG,GAAGqvE,EAAIz1H,OAAO2qB,IAC3E,CAiCkDs2kC,CAAcx8lC,EAAMgxH,EAAK/qG,GAC1E,IAAyB,IAAtB+qG,EAAIpyH,QAAQ,KAAa,OAjC7B,SAAwBoB,EAAiBgxH,EAAgB/qG,GACxD,IAAI41kC,EAAO7q+B,EAAIzyH,QAAQs8lC,GAAK,IAAKhh+B,EAAM7I,EAAIz1H,OAASsgmC,EAAKtgmC,OACzD,OAAOogmC,GAAU37lC,EAAM67lC,EAAM51kC,EAAMloB,KAAK4jD,IAAI,GAAG,EAAEk4E,IAAQ1nH,GAAK,IAAI0nH,EACnE,CA8BoC4i+B,CAAez8lC,EAAMgxH,EAAK/qG,GAC7D,IAAyB,IAAtB+qG,EAAIpyH,QAAQ,KAAa,OAAO09lC,GAAetr+B,EAAK/qG,GACvD,GAAyB,KAAtB+qG,EAAIjyH,WAAW,GAAW,MAAO,IAAIw9lC,GAAcv8lC,EAAKgxH,EAAIhyH,OAAsB,KAAfgyH,EAAIxrG,OAAO,GAAQ,EAAE,GAAGS,GAC9F,IAAIgX,EACA1T,EAAsBk9a,EAAI3tP,EAAIirrB,EAAOhm4B,KAAKD,IAAImoB,GAAM43D,EAAO53D,EAAM,EAAI,IAAM,GAC/E,GAAG+qG,EAAIrsH,MAAM,SAAU,OAAOk5E,EAAO46gC,GAAK10N,EAAK/ywB,EAAIz1H,QACnD,GAAGy1H,EAAIrsH,MAAM,WAEZ,OADAs4B,EAAK,GAAGhX,EAAiB,IAARA,IAAWgX,EAAI,IACzBA,EAAE1hC,OAASy1H,EAAIz1H,OAAS0hC,EAAIo+jC,GAAMrq+B,EAAIhyH,OAAO,EAAEgyH,EAAIz1H,OAAO0hC,EAAE1hC,SAAW0hC,EAE/E,GAAI1T,EAAIynG,EAAIrsH,MAAMs2lC,IAAS,OArK5B,SAAsB1xkC,EAAqBw62B,EAAiBlmzB,GAC3D,OAAOA,GAAiB,IAATkmzB,EAAa,GAAK,GAAGA,GAAQ5x3B,GAAK,IAAKoX,EAAE,GAAGhuB,OAAS,EAAIguB,EAAE,GAAGhuB,OAC9E,CAmKmCmhmC,CAAanzkC,EAAGw62B,EAAMlmzB,GACxD,GAAGmzC,EAAIrsH,MAAM,UAAW,OAAOk5E,EAAO46gC,GAAK10N,EAAK/ywB,EAAIz1H,OAASy1H,EAAIpyH,QAAQ,MACzE,GAAI2qB,EAAIynG,EAAIrsH,MAAMu2lC,IAMjB,OAHAj+jC,GADAA,GAAK,GAAGhX,GAAK1nB,QAAQ,aAAa,MAAM88lC,GAAM9xkC,EAAE,KAAKhrB,QAAQ,MAAM,IAAI88lC,GAAM9xkC,EAAE,MACzEhrB,QAAQ,YAAW,SAASy8lC,EAAI5nsB,GAErC,MAAO,IAAMA,EAAKjhZ,GAAK,IAAKkplC,GAAM9xkC,EAAE,IAAIhuB,OAAO63Z,EAAG73Z,OAAS,KAC9B,IAAvBy1H,EAAIpyH,QAAQ,MAAeq+B,EAAIA,EAAE1+B,QAAQ,OAAO,KAGxD,GADAyyH,EAAMA,EAAIzyH,QAAQ,YAAa,MAC3BgrB,EAAIynG,EAAIrsH,MAAM,gBACjB,OAAOk5E,GAAQ,GAAGkmzB,GAAMxl4B,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOgrB,EAAE,GAAGhuB,OAAO,KAAK,KAErH,GAAIguB,EAAIynG,EAAIrsH,MAAM,qBAAuB,OAAOk5E,EAAO+8gC,GAAU,GAAG72N,GACpE,GAAIx62B,EAAIynG,EAAIrsH,MAAM,qBACjB,OAAOshB,EAAM,EAAI,IAAMs2kC,GAAcv8lC,EAAMgxH,GAAM/qG,GAAO20kC,GAAU,GAAG30kC,GAAQ,IAAM9T,GAAK,IAAIoX,EAAE,GAAGhuB,QAElG,GAAIguB,EAAIynG,EAAIrsH,MAAM,YAAc,OAAO43lC,GAAcv8lC,EAAKgxH,EAAIzyH,QAAQ,SAAS,IAAI0nB,GACnF,GAAIsD,EAAIynG,EAAIrsH,MAAM,2BAGjB,OAFAs4B,EAAIu7jC,GAAQ+D,GAAcv8lC,EAAMgxH,EAAIzyH,QAAQ,SAAS,IAAK0nB,IAC1Dwgb,EAAK,EACE+xpB,GAAQA,GAAQxn+B,EAAIzyH,QAAQ,MAAM,KAAKA,QAAQ,SAAQ,SAAS+E,GAAG,OAAOmjc,EAAGxpa,EAAE1hC,OAAO0hC,EAAEzX,OAAOihb,KAAU,MAAJnjc,EAAQ,IAAI,EAAG,KAE5H,GAAG0tH,EAAIrsH,MAAMy2lC,IAEZ,MAAO,KADPn+jC,EAAIs/jC,GAAcv8lC,EAAM,aAAcimB,IACvBjnB,OAAO,EAAE,GAAK,KAAOi+B,EAAEj+B,OAAO,EAAG,GAAK,IAAMi+B,EAAEj+B,OAAO,GAErE,IAAImw0B,EAAK,GACT,GAAI5lzB,EAAIynG,EAAIrsH,MAAM,+BAUjB,OATA8hc,EAAK1oc,KAAK8mB,IAAiB0E,EAAE,GAAUhuB,OAAO,GAC9Cu9M,EAAKsg5B,GAASr1N,EAAMhm4B,KAAK4jD,IAAI,GAAG8kZ,GAAI,GAAG,GACvCxpa,EAAI,GAAK4gD,EAEoB,MAD7BsxvB,EAAKwsR,GAAU,IAAkBpykC,EAAE,GAAWuvL,EAAG,KAC3CtzL,OAAO2pzB,EAAG5z0B,OAAO,KAAW4z0B,EAAKA,EAAGnw0B,OAAO,EAAEmw0B,EAAG5z0B,OAAO,GAAK,KAClE0hC,GAAKkyyB,EAAkB5lzB,EAAE,GAAY,IAAmBA,EAAE,IAC1D4lzB,EAAKwpR,GAAM7/4B,EAAG,GAAG2tP,IACXlrc,OAASguB,EAAE,GAAGhuB,SAAQ4z0B,EAAKksR,GAAM9xkC,EAAE,GAAGvqB,OAAOuqB,EAAE,GAAGhuB,OAAO4z0B,EAAG5z0B,SAAW4z0B,GAC7ElyyB,GAAKkyyB,EAGN,GAAI5lzB,EAAIynG,EAAIrsH,MAAM,iCAGjB,OAFA8hc,EAAK1oc,KAAK8mB,IAAI9mB,KAAK6mB,IAAI2E,EAAE,GAAGhuB,OAAQguB,EAAE,GAAGhuB,QAAQ,GAE1CsiF,IADPi7H,EAAKsg5B,GAASr1N,EAAMhm4B,KAAK4jD,IAAI,GAAG8kZ,GAAI,GAAG,IACrB,KAAK3tP,EAAG,GAAK,GAAK,MAAQ,KAAOA,EAAG,GAAK4/4B,GAAK5/4B,EAAG,GAAG2tP,GAAMl9a,EAAE,GAAK,IAAMA,EAAE,GAAKovkC,GAAM7/4B,EAAG,GAAG2tP,GAAKt0b,GAAK,IAAK,EAAEs0b,EAAG,EAAIl9a,EAAE,GAAGhuB,OAASguB,EAAE,GAAGhuB,SAExJ,GAAIguB,EAAIynG,EAAIrsH,MAAM,YAEjB,OADAs4B,EAAI,GAAKhX,EACN+qG,EAAIz1H,QAAU0hC,EAAE1hC,OAAe0hC,EAC3Bo+jC,GAAMrq+B,EAAIhyH,OAAO,EAAEgyH,EAAIz1H,OAAO0hC,EAAE1hC,SAAW0hC,EAEnD,GAAI1T,EAAIynG,EAAIrsH,MAAM,sBAAwB,CACzCs4B,EAAI,GAAKhX,EAAIU,QAAQ5oB,KAAK8mB,IAAI0E,EAAE,GAAGhuB,OAAO,KAAKgD,QAAQ,YAAY,MACnEkoc,EAAKxpa,EAAEr+B,QAAQ,KACf,IAAIu9lC,EAAOnr+B,EAAIpyH,QAAQ,KAAO6nc,EAAI21pB,EAAOpr+B,EAAIz1H,OAAS0hC,EAAE1hC,OAAS4gmC,EACjE,OAAOd,GAAMrq+B,EAAIhyH,OAAO,EAAEm9lC,GAAQl/jC,EAAI+zF,EAAIhyH,OAAOgyH,EAAIz1H,OAAO6gmC,GAC7D,CACA,GAAI7ykC,EAAIynG,EAAIrsH,MAAM,sBACjB,OAAOshB,EAAM,EAAI,IAAMs2kC,GAAcv8lC,EAAMgxH,GAAM/qG,GAAO20kC,GAAS,GAAG30kC,GAAK1nB,QAAQ,aAAa,OAAOA,QAAQ,SAAQ,SAASy8lC,GAAM,MAAO,OAASA,EAAGz/lC,OAAS,EAAIk9lC,GAAK,EAAE,EAAEuC,EAAGz/lC,QAAU,IAAMy/lC,CAAI,IAAK,IAAMvC,GAAK,EAAElvkC,EAAE,GAAGhuB,QAE5N,OAAOy1H,GACN,IAAK,UACL,IAAK,SACL,IAAK,QAAS,IAAI1tH,EAAIs3lC,GAAS,GAAG72N,GAAO,MAAa,MAANzg4B,EAAYu6E,EAAOv6E,EAAI,GACvE,QACC,GAAG0tH,EAAIrsH,MAAM,aAAc,OAAO43lC,GAAcv8lC,EAAMgxH,EAAI7xH,MAAM,EAAE6xH,EAAIqjQ,YAAY,MAAOpuW,GAAOo1kC,GAAMrq+B,EAAI7xH,MAAM6xH,EAAIqjQ,YAAY,OAElI,MAAM,IAAInnX,MAAM,uBAAyB8jH,EAAM,IAChD,CACA,SAAS2q+B,GAAU37lC,EAAiBgxH,EAAgB/qG,GACnD,OAAY,EAAJA,KAAWA,EAAMs2kC,GAAcv8lC,EAAMgxH,EAAK/qG,GAAOw1kC,GAAcz7lC,EAAMgxH,EAAK/qG,EACnF,CAkBA,IAAI02kC,GAAc,kCAClB,SAASC,GAAY5r+B,GAEpB,IADA,IAAI7zH,EAAI,EAAe+/B,EAAI,GAAID,EAAI,GAC7B9/B,EAAI6zH,EAAIz1H,QACb,OAAQ2hC,EAAI8zF,EAAIxrG,OAAOroB,IACtB,IAAK,IAAQ67lC,GAAcho+B,EAAK7zH,KAAIA,GAAI,GAAGA,IAAK,MAChD,IAAK,IAAK,KAAsC,KAAzB6zH,EAAIjyH,aAAa5B,IAAcA,EAAI6zH,EAAIz1H,WAAsB4B,EAAG,MACvF,IAAK,KACL,IAAK,IAAKA,GAAG,EAAG,MAChB,IAAK,MAAOA,EAAG,MACf,IAAK,IAAK,IAAK,IACd,GAAuB,MAApB6zH,EAAIxrG,OAAOroB,EAAE,IAAkC,MAApB6zH,EAAIxrG,OAAOroB,EAAE,GAAY,OAAO,EAE/D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAEvD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAO,EAC7E,IAAK,IAAK,IAAK,IAAK,IAAK,SACxB,GAAsC,QAAnC6zH,EAAIhyH,OAAO7B,EAAG,GAAGu6B,cAAyB,OAAO,EACpD,GAAsC,UAAnCs5F,EAAIhyH,OAAO7B,EAAG,GAAGu6B,cAA2B,OAAO,EACtD,GAAsC,8BAAnCs5F,EAAIhyH,OAAO7B,EAAG,GAAGu6B,cAA2B,OAAO,IACpDv6B,EAAG,MACN,IAAK,IAEJ,IADA8/B,EAAIC,EACsB,MAApB8zF,EAAIxrG,OAAOroB,MAAgBA,EAAI6zH,EAAIz1H,QAAQ0hC,GAAK+zF,EAAIxrG,OAAOroB,GACjE,GAAG8/B,EAAEt4B,MAAMg4lC,IAAc,OAAO,EAChC,MACD,IAAK,IAEL,IAAK,IAAK,IAAK,IACd,KAAMx/lC,EAAI6zH,EAAIz1H,SAAW,YAAYqD,QAAQs+B,EAAE8zF,EAAIxrG,SAASroB,KAAO,GAAS,MAAH+/B,GAA8B,KAAnB8zF,EAAIxrG,OAAOroB,EAAE,IAAa,KAAKyB,QAAQoyH,EAAIxrG,OAAOroB,EAAE,KAAK,KAC7I,MACD,IAAK,IAAK,KAAM6zH,EAAIxrG,SAASroB,KAAO+/B,IAAgB,MACpD,IAAK,MAAO//B,EAAuB,KAAjB6zH,EAAIxrG,OAAOroB,IAA8B,KAAjB6zH,EAAIxrG,OAAOroB,MAAaA,EAAG,MACrE,IAAK,IAAK,IAAK,MAAOA,EAAG,MACzB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACpF,KAAMA,EAAI6zH,EAAIz1H,QAAU,aAAaqD,QAAQoyH,EAAIxrG,SAASroB,KAAO,IAAgB,MAElF,UAAWA,EAGb,OAAO,CACR,CAkNA,IAAI0/lC,GAAW,wCACf,SAASC,GAAQt/jC,EAAG47d,GACnB,GAAS,MAANA,EAAY,OAAO,EACtB,IAAI2jmB,EAASj3kC,WAAWsze,EAAG,IAC3B,OAAOA,EAAG,IACT,IAAK,IAAM,GAAG57d,GAAKu/jC,EAAQ,OAAO,EAAM,MACxC,IAAK,IAAM,GAAGv/jC,EAAKu/jC,EAAQ,OAAO,EAAM,MACxC,IAAK,IAAM,GAAGv/jC,EAAKu/jC,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGv/jC,GAAKu/jC,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGv/jC,GAAKu/jC,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGv/jC,GAAKu/jC,EAAQ,OAAO,EAEnC,OAAO,CACR,CACA,SAASC,GAAWx2kC,EAAcgX,GACjC,IAAIwzF,EA3RL,SAAuBA,GAGtB,IAFA,IAAIjwD,EAAwB,GACxBk8hC,GAAS,EACL9/lC,EAAI,EAAGiG,EAAI,EAAGjG,EAAI6zH,EAAIz1H,SAAU4B,EAAG,OAAe6zH,EAAIjyH,WAAW5B,IACxE,KAAK,GACJ8/lC,GAAUA,EAAQ,MACnB,KAAK,GAAI,KAAK,GAAI,KAAK,KACpB9/lC,EAAG,MACN,KAAK,GACJ4jE,EAAIA,EAAIxlE,QAAUy1H,EAAIhyH,OAAOoE,EAAEjG,EAAEiG,GACjCA,EAAIjG,EAAE,EAGR,GADA4jE,EAAIA,EAAIxlE,QAAUy1H,EAAIhyH,OAAOoE,IACf,IAAX65lC,EAAiB,MAAM,IAAI/vlC,MAAM,WAAa8jH,EAAM,0BACvD,OAAOjwD,CACR,CA4QWm8hC,CAAc12kC,GACpBF,EAAI0qG,EAAIz1H,OAAQ+vL,EAAMt6D,EAAI1qG,EAAE,GAAG1nB,QAAQ,KAE3C,GADG0nB,EAAE,GAAKglK,GAAK,KAAKhlK,EACjB0qG,EAAIz1H,OAAS,EAAG,MAAM,IAAI2R,MAAM,iCAAmC8jH,EAAIjvH,KAAK,KAAO,KACtF,GAAgB,kBAANy7B,EAAgB,MAAO,CAAC,EAAkB,IAAfwzF,EAAIz1H,QAAgB+vL,GAAK,EAAEt6D,EAAIA,EAAIz1H,OAAO,GAAG,KAClF,OAAOy1H,EAAIz1H,QACV,KAAK,EAAGy1H,EAAMs6D,GAAK,EAAI,CAAC,UAAW,UAAW,UAAWt6D,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAAM,MAClG,KAAK,EAAGA,EAAMs6D,GAAK,EAAI,CAACt6D,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAAM,MACzF,KAAK,EAAGA,EAAMs6D,GAAK,EAAI,CAACt6D,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAGpF,IAAI8nF,EAAKt7K,EAAI,EAAIwzF,EAAI,GAAKxzF,EAAI,EAAIwzF,EAAI,GAAKA,EAAI,GAC/C,IAA4B,IAAzBA,EAAI,GAAGpyH,QAAQ,OAAwC,IAAzBoyH,EAAI,GAAGpyH,QAAQ,KAAa,MAAO,CAAC0nB,EAAGwyL,GACxE,GAA8B,MAA3B9nF,EAAI,GAAGrsH,MAAM,YAAiD,MAA3BqsH,EAAI,GAAGrsH,MAAM,WAAoB,CACtE,IAAI6/C,EAAKwsE,EAAI,GAAGrsH,MAAMk4lC,IAClBp4iC,EAAKusE,EAAI,GAAGrsH,MAAMk4lC,IACtB,OAAOC,GAAQt/jC,EAAGgnB,GAAM,CAACl+B,EAAG0qG,EAAI,IAAM8r+B,GAAQt/jC,EAAGinB,GAAM,CAACn+B,EAAG0qG,EAAI,IAAM,CAAC1qG,EAAG0qG,EAAU,MAANxsE,GAAoB,MAANC,EAAa,EAAI,GAC7G,CACA,MAAO,CAACn+B,EAAGwyL,EACZ,CACA,SAAS0h5B,GAAWxp+B,EAAsBxzF,EAAUP,GAC3C,MAALA,IAAWA,EAAI,CAAC,GACnB,IAAI4+jC,EAAO,GACX,cAAc7q+B,GACb,IAAK,SAC4B6q+B,EAAtB,UAAP7q+B,GAAmB/zF,EAAEkgkC,OAAelgkC,EAAEkgkC,OAC7Bns+B,EACZ,MACD,IAAK,SAGO,OAFe6q+B,EAAhB,IAAP7q+B,GAAa/zF,EAAEkgkC,OAAelgkC,EAAEkgkC,QACX,MAAXlgkC,EAAE8/V,MAAiB9/V,EAAE8/V,MAAiBk8tB,IAAWjo+B,MAC7C6q+B,EAAQ5+jC,EAAE8/V,OAAS9/V,EAAE8/V,MAAMm8tB,GAAgBlo+B,KAAUio+B,GAAUC,GAAgBlo+B,KACrF,MAAR6q+B,IAAcA,EAAO1C,GAAgBno+B,IAAQ,WAGlD,GAAGgo+B,GAAc6C,EAAK,GAAI,OAAOtB,GAAY/8jC,EAAGP,GAC7CO,aAAaqB,OAAMrB,EAAIw8jC,GAAcx8jC,EAAGP,EAAE08jC,WAC7C,IAAInzkC,EAAIw2kC,GAAWnB,EAAMr+jC,GACzB,GAAGw7jC,GAAcxykC,EAAE,IAAK,OAAO+zkC,GAAY/8jC,EAAGP,GAC9C,IAAS,IAANO,EAAYA,EAAI,YAAa,IAAS,IAANA,EAAaA,EAAI,aAC/C,GAAS,KAANA,GAAiB,MAALA,EAAW,MAAO,GACtC,OAxQD,SAAkBwzF,EAAgBxzF,EAAWmgE,EAAcy//B,GAI1D,IAHA,IAA8CnjpB,EAAI72c,EAAG4rb,EAAjDjuX,EAAM,GAAI9jC,EAAI,GAAI9/B,EAAI,EAAG+/B,EAAI,GAAImgkC,EAAI,IACrC5jd,EAAG,IAEDt8oB,EAAI6zH,EAAIz1H,QACb,OAAQ2hC,EAAI8zF,EAAIxrG,OAAOroB,IACtB,IAAK,IACJ,IAAI67lC,GAAcho+B,EAAK7zH,GAAI,MAAM,IAAI+P,MAAM,0BAA4BgwB,EAAI,OAAQ8zF,GACnFjwD,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAE,WAAYrgC,GAAG,EAAG,MAC/C,IAAK,IACJ,IAAI8/B,EAAE,GAAgC,MAA5B+xZ,EAAGh+T,EAAIjyH,aAAa5B,KAAcA,EAAI6zH,EAAIz1H,QAAS0hC,GAAKh/B,OAAOC,aAAa8wb,GACtFjuX,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAEP,KAAM9/B,EAAG,MACtC,IAAK,KAAM,IAAI2gC,EAAIkzF,EAAIxrG,SAASroB,GAAIssB,EAAW,MAANqU,GAAmB,MAANA,EAAaA,EAAI,IACtEijC,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAEA,EAAG+T,EAAEM,KAAM3gC,EAAG,MACpC,IAAK,IAAK4jE,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAE,KAAMrgC,GAAG,EAAG,MAClD,IAAK,IACJ4jE,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAEA,KAAMrgC,EAAG,MACtC,IAAK,IAAK,IAAK,IACd,GAAuB,MAApB6zH,EAAIxrG,OAAOroB,EAAE,IAAkC,MAApB6zH,EAAIxrG,OAAOroB,EAAE,GAAY,CACtD,GAAO,MAAJ88c,GAA6E,OAAjEA,EAAGw/oB,GAAoBj8jC,EAAGmgE,EAA0B,MAApBqzB,EAAIxrG,OAAOroB,EAAE,KAA0B,MAAO,GAC7F4jE,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAEwzF,EAAIhyH,OAAO7B,EAAE,IAAKkgmC,EAAMngkC,EAAG//B,GAAG,EAAG,KAC9D,CAED,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtD+/B,EAAIA,EAAEjxB,cAEP,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChE,GAAGuxB,EAAI,EAAG,MAAO,GACjB,GAAO,MAAJy8a,GAAoD,OAAxCA,EAAGw/oB,GAAoBj8jC,EAAGmgE,IAAoB,MAAO,GAC7D,IAAP1gE,EAAIC,IAAW//B,EAAI6zH,EAAIz1H,QAAUy1H,EAAIxrG,OAAOroB,GAAG8O,gBAAkBixB,GAAGD,GAAGC,EAC9D,MAANA,GAAmC,MAAtBmgkC,EAAIpxlC,gBAAuBixB,EAAI,KACtC,MAANA,IAAWA,EAAIu8mB,GAClB14kB,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAEyT,EAAGM,EAAEP,GAAIogkC,EAAMngkC,EAAG,MACxC,IAAK,IAAK,IAAK,IAAK,IAAK,SACxB,IAAImJ,EAAE,CAAC5c,EAAEyT,EAAGM,EAAEN,GAMd,GALO,MAAJ+8a,IAAUA,EAAGw/oB,GAAoBj8jC,EAAGmgE,IACD,QAAnCqzB,EAAIhyH,OAAO7B,EAAG,GAAGu6B,eAAkC,MAAJuib,IAAU5za,EAAE7I,EAAIy8a,EAAGn3a,GAAK,GAAK,IAAM,KAAKuD,EAAE5c,EAAI,IAAKgwnB,EAAG,IAAIt8oB,GAAG,GACrE,UAAlC6zH,EAAIhyH,OAAO7B,EAAE,GAAGu6B,eAAoC,MAAJuib,IAAU5za,EAAE7I,EAAIy8a,EAAGn3a,GAAK,GAAK,KAAO,MAAMuD,EAAE5c,EAAI,IAAKtsB,GAAG,EAAGs8oB,EAAG,KAC5E,8BAAlCzohB,EAAIhyH,OAAO7B,EAAE,GAAGu6B,eAAoC,MAAJuib,IAAU5za,EAAE7I,EAAIy8a,EAAGn3a,GAAK,GAAK,eAAO,gBAAMuD,EAAE5c,EAAI,IAAKtsB,GAAG,EAAGs8oB,EAAG,MAC/GpzmB,EAAE5c,EAAI,MAAOtsB,GACb,MAAJ88c,GAAoB,MAAR5za,EAAE5c,EAAW,MAAO,GACnCs3C,EAAIA,EAAIxlE,QAAU8qC,EAAGg3jC,EAAMngkC,EAAG,MAC/B,IAAK,IAEJ,IADAD,EAAIC,EACsB,MAApB8zF,EAAIxrG,OAAOroB,MAAgBA,EAAI6zH,EAAIz1H,QAAQ0hC,GAAK+zF,EAAIxrG,OAAOroB,GACjE,GAAmB,MAAhB8/B,EAAE99B,OAAO,GAAY,KAAM,4BAA8B89B,EAAI,IAChE,GAAGA,EAAEt4B,MAAMg4lC,IAAc,CACxB,GAAO,MAAJ1ipB,GAAoD,OAAxCA,EAAGw/oB,GAAoBj8jC,EAAGmgE,IAAoB,MAAO,GACpE58B,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAEP,EAAEhxB,eAC9BoxlC,EAAMpgkC,EAAEzX,OAAO,EAChB,MAAUyX,EAAEr+B,QAAQ,MAAQ,IAC3Bq+B,GAAKA,EAAEt4B,MAAM,kBAAkB,IAAI,IAAI,IACnCi4lC,GAAY5r+B,KAAMjwD,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAI+T,EAAEP,KAElD,MAED,IAAK,IACJ,GAAS,MAANg9a,EAAY,CACP,IAAPh9a,EAAIC,IAAW//B,EAAI6zH,EAAIz1H,QAAgC,OAArB2hC,EAAE8zF,EAAIxrG,OAAOroB,KAAa8/B,GAAKC,EACjE6jC,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAEP,GAAI,KACjC,CAED,IAAK,IAAK,IAAK,IACP,IAAPA,EAAIC,IAAW//B,EAAI6zH,EAAIz1H,QAAU,YAAYqD,QAAQs+B,EAAE8zF,EAAIxrG,OAAOroB,KAAO,GAAG8/B,GAAKC,EACjF6jC,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAEP,GAAI,MACjC,IAAK,IACG,IAAPA,EAAIC,EAAS8zF,EAAIxrG,SAASroB,KAAO+/B,GAAGD,GAAGC,EACvC6jC,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAEyT,EAAGM,EAAEP,GAAIogkC,EAAMngkC,EAAG,MACxC,IAAK,MAAO//B,EAAuB,KAAjB6zH,EAAIxrG,OAAOroB,IAA8B,KAAjB6zH,EAAIxrG,OAAOroB,MAAaA,EAAG,MACrE,IAAK,IAAK,IAAK,IAAK4jE,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAU,IAAP2zkC,EAAS,IAAIlgkC,EAAIM,EAAEN,KAAM//B,EAAG,MACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7E,IAAP8/B,EAAIC,EAAS//B,EAAI6zH,EAAIz1H,QAAU,aAAaqD,QAAQoyH,EAAIxrG,SAASroB,KAAO,GAAG8/B,GAAG+zF,EAAIxrG,OAAOroB,GACzF4jE,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAEP,GAAI,MACjC,IAAK,IAAK8jC,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAEyT,EAAGM,EAAEN,KAAM//B,EAAG,MAC7C,IAAK,IAAK4jE,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAE,OAAQrgC,EAAG,MACjD,QACC,IAA2D,IAAxD,6CAAwCyB,QAAQs+B,GAAW,MAAM,IAAIhwB,MAAM,0BAA4BgwB,EAAI,OAAS8zF,GACvHjwD,EAAIA,EAAIxlE,QAAU,CAACkuB,EAAE,IAAK+T,EAAEN,KAAM//B,EAKrC,IAAqBmgmC,EAAjB5/+B,EAAK,EAAGg9+B,EAAM,EAClB,IAAIv9lC,EAAE4jE,EAAIxlE,OAAO,EAAG8hmC,EAAI,IAAKlgmC,GAAK,IAAKA,EACtC,OAAO4jE,EAAI5jE,GAAGssB,GACb,IAAK,IAAK,IAAK,IAAKs3C,EAAI5jE,GAAGssB,EAAIgwnB,EAAI4jd,EAAI,IAAQ3/+B,EAAK,IAAGA,EAAK,GAAG,MAC/D,IAAK,KACA4/+B,EAAIv8hC,EAAI5jE,GAAGqgC,EAAE74B,MAAM,YAAW+1lC,EAAI38lC,KAAK6mB,IAAI81kC,EAAI4C,EAAI,GAAG/hmC,OAAO,IAC9DmiH,EAAK,IAAGA,EAAK,GAEjB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK2/+B,EAAIt8hC,EAAI5jE,GAAGssB,EAAG,MACtD,IAAK,IAAgB,MAAR4zkC,IAAet8hC,EAAI5jE,GAAGssB,EAAI,IAAQi0F,EAAK,IAAGA,EAAK,IAAK,MACjE,IAAK,IACJ,MACD,IAAK,IACDA,EAAK,GAAK38C,EAAI5jE,GAAGqgC,EAAE74B,MAAM,UAAS+4G,EAAK,GACvCA,EAAK,GAAK38C,EAAI5jE,GAAGqgC,EAAE74B,MAAM,UAAS+4G,EAAK,GACvCA,EAAK,GAAK38C,EAAI5jE,GAAGqgC,EAAE74B,MAAM,UAAS+4G,EAAK,GAI7C,OAAOA,GACN,KAAK,EAAG,MACR,KAAK,EAEDu8V,EAAGnwb,GAAK,KAAOmwb,EAAGnwb,EAAI,IAAKmwb,EAAG97a,GAC9B87a,EAAG97a,GAAM,KAAM87a,EAAG97a,EAAI,IAAK87a,EAAG78a,GAC9B68a,EAAG78a,GAAM,KAAM68a,EAAG78a,EAAI,IAAK68a,EAAGn3a,GACjC,MACD,KAAK,EAEDm3a,EAAGnwb,GAAK,KAAOmwb,EAAGnwb,EAAI,IAAKmwb,EAAG97a,GAC9B87a,EAAG97a,GAAM,KAAM87a,EAAG97a,EAAI,IAAK87a,EAAG78a,GAKnC,IAAeos4B,EAAX+zL,EAAO,GACX,IAAIpgmC,EAAE,EAAGA,EAAI4jE,EAAIxlE,SAAU4B,EAC1B,OAAO4jE,EAAI5jE,GAAGssB,GACb,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACxC,IAAK,IAAKs3C,EAAI5jE,GAAGqgC,EAAI,GAAIujC,EAAI5jE,GAAGssB,EAAI,IAAK,MACzC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAE9Fs3C,EAAI5jE,GAAGqgC,EAAIi9jC,GAAe15hC,EAAI5jE,GAAGssB,EAAE1qB,WAAW,GAAIgiE,EAAI5jE,GAAGqgC,EAAGy8a,EAAIygpB,GAChE35hC,EAAI5jE,GAAGssB,EAAI,IAAK,MACjB,IAAK,IAAK,IAAK,IAEd,IADA+/4B,EAAKrs6B,EAAE,EACU,MAAX4jE,EAAIyo2B,KACS,OAAjBts4B,EAAE6jC,EAAIyo2B,GAAI//4B,IAAoB,MAANyT,IACjB,MAANA,GAAmB,MAANA,IAA2B,MAAb6jC,EAAIyo2B,EAAG,KAA+B,MAAhBzo2B,EAAIyo2B,EAAG,GAAG//4B,GAA6B,MAAhBs3C,EAAIyo2B,EAAG,GAAG//4B,GAA6B,MAAhBs3C,EAAIyo2B,EAAG,GAAGhs4B,IAC7F,MAAbujC,EAAI5jE,GAAGssB,IAAoB,MAANyT,GAAmB,MAANA,GAAmB,MAANA,IACzC,MAANA,IAA4B,MAAd6jC,EAAIyo2B,GAAIhs4B,GAA2B,MAAdujC,EAAIyo2B,GAAIhs4B,GAA0B,MAAbujC,EAAIyo2B,EAAG,IAA6B,KAAfzo2B,EAAIyo2B,EAAG,GAAG//4B,KAExFs3C,EAAI5jE,GAAGqgC,GAAKujC,EAAIyo2B,GAAIhs4B,EACpBujC,EAAIyo2B,GAAM,CAAChs4B,EAAE,GAAI/T,EAAE,OAAQ+/4B,EAE5B+zL,GAAQx8hC,EAAI5jE,GAAGqgC,EACfrgC,EAAIqs6B,EAAG,EAAG,MACX,IAAK,IAAKzo2B,EAAI5jE,GAAGssB,EAAI,IAAKs3C,EAAI5jE,GAAGqgC,EAAI+8jC,GAAY/8jC,EAAEmgE,GAGrD,IAAa6//B,EAAKC,EAAd/4iC,EAAK,GACT,GAAG64iC,EAAKhimC,OAAS,EAAG,CACM,IAAtBgimC,EAAKx+lC,WAAW,IAClBy+lC,EAAOhgkC,EAAE,GAA0B,KAAvB+/jC,EAAKx+lC,WAAW,IAAay+B,EAAIA,EAC7CigkC,EAAO9B,GAAU,IAAK4B,EAAMC,KAG5BC,EAAO9B,GAAU,IAAK4B,EADtBC,EAAOhgkC,EAAE,GAAK4/jC,EAAO,GAAK5/jC,EAAIA,GAE3BggkC,EAAM,GAAKz8hC,EAAI,IAAkB,KAAZA,EAAI,GAAGt3C,IAC9Bg0kC,EAAOA,EAAKz+lC,OAAO,GACnB+hE,EAAI,GAAGvjC,EAAI,IAAMujC,EAAI,GAAGvjC,IAG1Bgs4B,EAAGi0L,EAAKlimC,OAAO,EACf,IAAImimC,EAAQ38hC,EAAIxlE,OAChB,IAAI4B,EAAE,EAAGA,EAAI4jE,EAAIxlE,SAAU4B,EAAG,GAAa,MAAV4jE,EAAI5jE,IAA0B,KAAZ4jE,EAAI5jE,GAAGssB,GAAYs3C,EAAI5jE,GAAGqgC,EAAE5+B,QAAQ,MAAQ,EAAG,CAAE8+lC,EAAQvgmC,EAAG,KAAO,CACtH,IAAIwgmC,EAAM58hC,EAAIxlE,OACd,GAAGmimC,IAAU38hC,EAAIxlE,SAAiC,IAAvBkimC,EAAK7+lC,QAAQ,KAAa,CACpD,IAAIzB,EAAE4jE,EAAIxlE,OAAO,EAAG4B,GAAI,IAAIA,EACd,MAAV4jE,EAAI5jE,KAA0C,IAA5B,KAAKyB,QAAQmiE,EAAI5jE,GAAGssB,KACtC+/4B,GAAIzo2B,EAAI5jE,GAAGqgC,EAAEjiC,OAAO,GAAKiu6B,GAAMzo2B,EAAI5jE,GAAGqgC,EAAEjiC,OAAQwlE,EAAI5jE,GAAGqgC,EAAIigkC,EAAKz+lC,OAAOwq6B,EAAG,EAAGzo2B,EAAI5jE,GAAGqgC,EAAEjiC,SACjFiu6B,EAAK,EAAGzo2B,EAAI5jE,GAAGqgC,EAAI,IACpBujC,EAAI5jE,GAAGqgC,EAAIigkC,EAAKz+lC,OAAO,EAAGwq6B,EAAG,GAAIA,GAAM,GAC9Czo2B,EAAI5jE,GAAGssB,EAAI,IACXk0kC,EAAQxgmC,GAENqs6B,GAAI,GAAKm0L,EAAM58hC,EAAIxlE,SAAQwlE,EAAI48hC,GAAOngkC,EAAIigkC,EAAKz+lC,OAAO,EAAEwq6B,EAAG,GAAKzo2B,EAAI48hC,GAAOngkC,EAC/E,MACK,GAAGkgkC,IAAU38hC,EAAIxlE,SAAiC,IAAvBkimC,EAAK7+lC,QAAQ,KAAa,CAEzD,IADA4q6B,EAAKi0L,EAAK7+lC,QAAQ,KAAK,EACnBzB,EAAEugmC,EAAOvgmC,GAAI,IAAKA,EACrB,GAAa,MAAV4jE,EAAI5jE,KAA0C,IAA5B,KAAKyB,QAAQmiE,EAAI5jE,GAAGssB,GAAzC,CAGA,IAFArmB,EAAE29D,EAAI5jE,GAAGqgC,EAAE5+B,QAAQ,MAAM,GAAGzB,IAAIugmC,EAAM38hC,EAAI5jE,GAAGqgC,EAAE5+B,QAAQ,KAAK,EAAEmiE,EAAI5jE,GAAGqgC,EAAEjiC,OAAO,EAC9EmpD,EAAKqc,EAAI5jE,GAAGqgC,EAAEx+B,OAAOoE,EAAE,GACjBA,GAAG,IAAKA,EACVom6B,GAAI,IAA6B,MAAvBzo2B,EAAI5jE,GAAGqgC,EAAEhY,OAAOpiB,IAAqC,MAAvB29D,EAAI5jE,GAAGqgC,EAAEhY,OAAOpiB,MAAashD,EAAK+4iC,EAAKj4kC,OAAOgk5B,KAAQ9k3B,GAElGqc,EAAI5jE,GAAGqgC,EAAIknB,EACXqc,EAAI5jE,GAAGssB,EAAI,IACXk0kC,EAAQxgmC,CARoD,CAY7D,IAFGqs6B,GAAI,GAAKm0L,EAAM58hC,EAAIxlE,SAAQwlE,EAAI48hC,GAAOngkC,EAAIigkC,EAAKz+lC,OAAO,EAAEwq6B,EAAG,GAAKzo2B,EAAI48hC,GAAOngkC,GAC9Egs4B,EAAKi0L,EAAK7+lC,QAAQ,KAAK,EACnBzB,EAAEugmC,EAAOvgmC,EAAE4jE,EAAIxlE,SAAU4B,EAC5B,GAAa,MAAV4jE,EAAI5jE,MAA4C,IAA7B,MAAMyB,QAAQmiE,EAAI5jE,GAAGssB,IAAatsB,IAAMugmC,GAA9D,CAGA,IAFAt6lC,EAAE29D,EAAI5jE,GAAGqgC,EAAE5+B,QAAQ,MAAM,GAAGzB,IAAIugmC,EAAM38hC,EAAI5jE,GAAGqgC,EAAE5+B,QAAQ,KAAK,EAAE,EAC9D8lD,EAAKqc,EAAI5jE,GAAGqgC,EAAEx+B,OAAO,EAAEoE,GACjBA,EAAE29D,EAAI5jE,GAAGqgC,EAAEjiC,SAAU6H,EACvBom6B,EAAGi0L,EAAKlimC,SAAQmpD,GAAM+4iC,EAAKj4kC,OAAOgk5B,MAEtCzo2B,EAAI5jE,GAAGqgC,EAAIknB,EACXqc,EAAI5jE,GAAGssB,EAAI,IACXk0kC,EAAQxgmC,CARsE,CAUhF,CACD,CACA,IAAIA,EAAE,EAAGA,EAAE4jE,EAAIxlE,SAAU4B,EAAgB,MAAV4jE,EAAI5jE,IAAc,KAAKyB,QAAQmiE,EAAI5jE,GAAGssB,IAAI,IACxE+zkC,EAAOJ,EAAM,GAAK5/jC,EAAI,GAAKrgC,EAAE,GAAoB,MAAf4jE,EAAI5jE,EAAE,GAAGqgC,GAAaA,EAAEA,EAC1DujC,EAAI5jE,GAAGqgC,EAAIm+jC,GAAU56hC,EAAI5jE,GAAGssB,EAAGs3C,EAAI5jE,GAAGqgC,EAAGggkC,GACzCz8hC,EAAI5jE,GAAGssB,EAAI,KAEZ,IAAIo8a,EAAS,GACb,IAAI1oc,EAAE,EAAGA,IAAM4jE,EAAIxlE,SAAU4B,EAAgB,MAAV4jE,EAAI5jE,KAAY0oc,GAAU9kY,EAAI5jE,GAAGqgC,GACpE,OAAOqoa,CACR,CA0DQ+3pB,CAASp3kC,EAAE,GAAIgX,EAAGP,EAAGzW,EAAE,GAC/B,CACA,SAASq3kC,GAAS7s+B,EAAgB9qG,GACjC,GAAiB,iBAAPA,EAAiB,CAC1BA,GAAOA,IAAQ,EAEf,IAAI,IAAI/oB,EAAI,EAAGA,EAAI,MAAUA,EAE5B,QAAmBnB,GAAhBi9lC,GAAU97lC,IACb,GAAG87lC,GAAU97lC,IAAM6zH,EAAK,CAAE9qG,EAAM/oB,EAAG,KAAO,OADP+oB,EAAM,IAAGA,EAAM/oB,GAIhD+oB,EAAM,IAAGA,EAAM,IACnB,CAGA,OADA+ykC,GAAU/ykC,GAAO8qG,EACV9qG,CACR,CAMA,SAAS43kC,KACR7E,GAz7BD,SAAwBxvkC,GA+BvB,OA9BIA,IAAGA,EAAI,CAAC,GACZA,EAAE,GAAK,UACPA,EAAE,GAAK,IACPA,EAAE,GAAK,OACPA,EAAE,GAAK,QACPA,EAAE,GAAK,WACPA,EAAE,GAAK,KACPA,EAAE,IAAK,QACPA,EAAE,IAAK,WACPA,EAAE,IAAK,QACPA,EAAE,IAAK,UACPA,EAAE,IAAK,SACPA,EAAE,IAAK,WACPA,EAAE,IAAK,QACPA,EAAE,IAAK,SACPA,EAAE,IAAK,aACPA,EAAE,IAAK,gBACPA,EAAE,IAAK,OACPA,EAAE,IAAK,UACPA,EAAE,IAAK,cACPA,EAAE,IAAK,iBACPA,EAAE,IAAK,sBACPA,EAAE,IAAK,sBACPA,EAAE,IAAK,2BACPA,EAAE,IAAK,QACPA,EAAE,IAAK,YACPA,EAAE,IAAK,SACPA,EAAE,IAAK,WACPA,EAAE,IAAK,IACPA,EAAE,IAAK,8DACAA,CACR,CAy5Bas0kC,EACb,CAEA,IAUIC,GAAoC,CACvC,EAAK,4BACL,EAAK,iCACL,EAAK,kCACL,EAAK,uCACL,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UACzD,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtE,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UACzD,GAAM,SACN,GAAM,0CACN,GAAM,mDACN,GAAM,kDACN,GAAM,2DACN,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtE,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtD,GAAM,IACN,GAAM,OACN,GAAM,QACN,GAAM,WACN,GAAM,4BACN,GAAM,iCACN,GAAM,kCACN,GAAM,uCACN,GAAM,KACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,QACN,GAAM,YACN,GAAM,UAIHC,GAAc,mCAmElB,IAAIC,GAAsB,WAC1B,IAAIA,EAAQ,CAAC,EACbA,EAAMl0jC,QAAU,QAsBhB,IAAIm0jC,EAnBJ,WAGC,IAFA,IAAIjhkC,EAAI,EAAG6/V,EAA0B,IAAIh4X,MAAM,KAEvCsgB,EAAG,EAAQ,KAALA,IAAYA,EASzB6X,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAI7X,IACW,UAAa6X,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,EAC/C6/V,EAAM13W,GAAK6X,EAGZ,MAA6B,qBAAfg5D,WAA6B,IAAIA,WAAW6mS,GAASA,CACpE,CAESqhuB,GAaT,IAAIC,EAZJ,SAA4B3mgC,GAC3B,IAAIx6D,EAAI,EAAGM,EAAI,EAAGnY,EAAI,EAAG03W,EAAgD,qBAAf7mS,WAA6B,IAAIA,WAAW,MAAQ,IAAInxF,MAAM,MAExH,IAAIsgB,EAAI,EAAQ,KAALA,IAAYA,EAAG03W,EAAM13W,GAAKqyE,EAAEryE,GACvC,IAAIA,EAAI,EAAQ,KAALA,IAAYA,EAEtB,IADAmY,EAAIk6D,EAAEryE,GACF6X,EAAI,IAAM7X,EAAG6X,EAAI,KAAMA,GAAK,IAAKM,EAAIu/V,EAAM7/V,GAAMM,IAAM,EAAKk6D,EAAM,IAAJl6D,GAEnE,IAAIujC,EAAM,GACV,IAAI17C,EAAI,EAAQ,IAALA,IAAWA,EAAG07C,EAAI17C,EAAI,GAA2B,qBAAf6wE,WAA6B6mS,EAAMh5P,SAAa,IAAJ1+G,EAAa,IAAJA,EAAU,KAAO03W,EAAM59X,MAAU,IAAJkmB,EAAa,IAAJA,EAAU,KAClJ,OAAO07C,CACR,CACSu9hC,CAAmBH,GACxBv0e,EAAKy0e,EAAG,GAAKx0e,EAAKw0e,EAAG,GAAKE,EAAKF,EAAG,GAAKG,EAAKH,EAAG,GAAKI,EAAKJ,EAAG,GAC5DK,EAAKL,EAAG,GAAKM,EAAKN,EAAG,GAAKO,EAAKP,EAAG,GAAKQ,EAAKR,EAAG,GAAKtuR,EAAKsuR,EAAG,GAC5DtoM,EAAKsoM,EAAG,IAAK5jR,EAAK4jR,EAAG,IAAKniM,EAAKmiM,EAAG,IAAK99R,EAAK89R,EAAG,IAAKj+L,EAAKi+L,EAAG,IAiDhE,OAJAH,EAAMnhuB,MAAQohuB,EACdD,EAAMY,KA7CN,SAAoBA,EAAiB71Z,GAEpC,IADA,IAAI9uoB,GAAI8uoB,EACA9rsB,EAAI,EAAGglC,EAAI28jC,EAAKvjmC,OAAQ4B,EAAIglC,GAAIg4B,EAAKA,IAAI,EAAKgkiC,EAA4B,KAAxBhkiC,EAAE2kiC,EAAK//lC,WAAW5B,OAC5E,OAAQg9D,CACT,EA0CA+jiC,EAAM/q0B,IAxCN,SAAmB2jJ,EAAgCmyR,GAElD,IADA,IAAI9uoB,GAAI8uoB,EAA0B9mqB,EAAI20Y,EAAEv7a,OAAS,GAAI4B,EAAI,EACnDA,EAAIglC,GAAIg4B,EACbim2B,EAAGtpf,EAAE35a,KAAY,IAAJg9D,GACbomwB,EAAGzpZ,EAAE35a,KAASg9D,GAAK,EAAK,KACxB+h2B,EAAGplf,EAAE35a,KAASg9D,GAAK,GAAM,KACzBsgxB,EAAG3ja,EAAE35a,KAAQg9D,IAAM,IACnB471B,EAAGj/e,EAAE35a,MAAQ4y0B,EAAGj5Z,EAAE35a,MAAQ0hmC,EAAG/nrB,EAAE35a,MAAQyhmC,EAAG9nrB,EAAE35a,MAC5CwhmC,EAAG7nrB,EAAE35a,MAAQuhmC,EAAG5nrB,EAAE35a,MAAQshmC,EAAG3nrB,EAAE35a,MAAQqhmC,EAAG1nrB,EAAE35a,MAC5CohmC,EAAGznrB,EAAE35a,MAAQ0snB,EAAG/yM,EAAE35a,MAAQysnB,EAAG9yM,EAAE35a,MAAQghmC,EAAGrnrB,EAAE35a,MAE7C,IADAglC,GAAK,GACChlC,EAAIglC,GAAGg4B,EAAKA,IAAI,EAAKgkiC,EAAc,KAAVhkiC,EAAE28W,EAAE35a,OACnC,OAAQg9D,CACT,EA4BA+jiC,EAAMnwlC,IA1BN,SAAmBA,EAAgBk7rB,GAElC,IADA,IAAI9uoB,GAAI8uoB,EACA9rsB,EAAI,EAAGglC,EAAIp0B,EAAIxS,OAAQ2hC,EAAI,EAAG/tB,EAAI,EAAGhS,EAAIglC,IAChDjF,EAAInvB,EAAIhP,WAAW5B,MACZ,IACNg9D,EAAKA,IAAI,EAAKgkiC,EAAS,KAALhkiC,EAAEj9B,IACXA,EAAI,KAEbi9B,GADAA,EAAKA,IAAI,EAAKgkiC,EAA2B,KAAvBhkiC,GAAK,IAAMj9B,GAAG,EAAG,SAC1B,EAAKihkC,EAAsB,KAAlBhkiC,GAAK,IAAO,GAAFj9B,KACnBA,GAAK,OAAUA,EAAI,OAC5BA,EAAa,IAAN,KAAFA,GAAY/tB,EAAwB,KAApBpB,EAAIhP,WAAW5B,KAIpCg9D,GADAA,GADAA,GADAA,EAAKA,IAAI,EAAKgkiC,EAA0B,KAAtBhkiC,GAAK,IAAMj9B,GAAG,EAAG,QAC1B,EAAKihkC,EAA2B,KAAvBhkiC,GAAK,IAAMj9B,GAAG,EAAG,SAC1B,EAAKihkC,EAAsC,KAAlChkiC,GAAK,IAAMhrD,GAAG,EAAG,IAAQ,EAAF+tB,IAAM,QACtC,EAAKihkC,EAAsB,KAAlBhkiC,GAAK,IAAO,GAAFhrD,MAI5BgrD,GADAA,GADAA,EAAKA,IAAI,EAAKgkiC,EAA4B,KAAxBhkiC,GAAK,IAAMj9B,GAAG,GAAI,SAC3B,EAAKihkC,EAA2B,KAAvBhkiC,GAAK,IAAMj9B,GAAG,EAAG,SAC1B,EAAKihkC,EAAsB,KAAlBhkiC,GAAK,IAAO,GAAFj9B,KAG9B,OAAQi9B,CACT,EAKO+jiC,CACP,CA1F0B,GA4FtBa,GAAoB,WACxB,IAuFI9q0B,EAvFAnlR,EAAU,CAAC,EAWf,SAASkwlC,EAAQ/wkC,GAChB,GAA6B,KAA1BA,EAAEzI,OAAOyI,EAAE1yB,OAAS,GAAW,OAAwC,IAAhC0yB,EAAE9uB,MAAM,GAAG,GAAGP,QAAQ,KAAeqvB,EAAI+wkC,EAAQ/wkC,EAAE9uB,MAAM,GAAI,IACvG,IAAI+9B,EAAIjP,EAAEomW,YAAY,KACtB,OAAe,IAAPn3V,EAAYjP,EAAIA,EAAE9uB,MAAM,EAAG+9B,EAAE,EACtC,CAEA,SAASkjN,EAASnyN,GACjB,GAA6B,KAA1BA,EAAEzI,OAAOyI,EAAE1yB,OAAS,GAAW,OAAO6kP,EAASnyN,EAAE9uB,MAAM,GAAI,IAC9D,IAAI+9B,EAAIjP,EAAEomW,YAAY,KACtB,OAAe,IAAPn3V,EAAYjP,EAAIA,EAAE9uB,MAAM+9B,EAAE,EACnC,CASA,SAAS+hkC,EAAe9r0B,EAAgB7yQ,GACpB,kBAATA,IAAmBA,EAAO,IAAIue,KAAKve,IAC7C,IAAI4+kC,EAAiB5+kC,EAAKmf,WAE1By/jC,GADAA,EAAMA,GAAO,EAAI5+kC,EAAKqf,eACT,EAAKrf,EAAKuf,eAAe,EACtCszP,EAAIgs0B,YAAY,EAAGD,GACnB,IAAIt8M,EAAkBti4B,EAAK2e,cAAgB,KAE3C2j3B,GADAA,EAAMA,GAAO,EAAKti4B,EAAK6e,WAAW,IACrB,EAAI7e,EAAK+e,UACtB8zP,EAAIgs0B,YAAY,EAAGv8M,EACpB,CAoBA,SAASw8M,EAAkBts0B,GAC1Bus0B,GAAUvs0B,EAAM,GAGhB,IAFA,IAAI71P,EAAW,CAAC,EACZqqE,EAAQ,EACNwrL,EAAKxsQ,GAAKwsQ,EAAKv3R,OAAS,GAAG,CAChC,IAAIyE,EAAO8yR,EAAKws0B,WAAW,GACvBt6pB,EAAKlyK,EAAKws0B,WAAW,GAAIC,EAAMzs0B,EAAKxsQ,EAAI0+a,EACxC/2a,EAAI,CAAC,EACT,GAEM,QAFCjuB,EAIM,GADXsnG,EAAQwrL,EAAKws0B,WAAW,MACVrxkC,EAAEuxkC,MAAQ1s0B,EAAKws0B,WAAW,IAErCt6pB,EAAK,IACI,EAAR19V,IAAWr5E,EAAEwxkC,MAAQ3s0B,EAAKws0B,WAAW,IAC7B,EAARh4/B,IAAWr5E,EAAEouc,MAAQvpM,EAAKws0B,WAAW,KAEtCrxkC,EAAEuxkC,QAAOvxkC,EAAEiF,GAAK,IAAI2L,KAAa,IAAR5Q,EAAEuxkC,QAIhC1s0B,EAAKxsQ,EAAIi5kC,EACTtikC,EAAEj9B,GAAQiuB,CACX,CACA,OAAOgP,CACR,CAEA,SAASyikC,IAAW,OAAOzr0B,IAAOA,EAAK,CAAC,EAAI,CAC5C,SAAShyR,EAAMs76B,EAAmBvi7B,GAClC,GAAc,IAAXui7B,EAAK,IAAyB,IAAXA,EAAK,GAAY,OAAOoiL,GAAUpiL,EAAMvi7B,GAC9D,GAAuB,MAAT,GAAVui7B,EAAK,KAAwC,MAAT,GAARA,EAAK,IAAkB,OAy6CvD,SAAmBA,EAAmBvi7B,GACrC,GAA0C,iBAAvCk9lC,EAAI36K,EAAKp+6B,MAAM,EAAE,KAAK8M,cAAkC,MAAM,IAAIiB,MAAM,0BAC3E,IAAIpN,EAAQ9E,GAAWA,EAAQ8E,MAAQ,GAEnC+3C,GAAQ+/iC,IAAW7luB,OAAOoB,SAASoqjB,GAAQA,EAAK906B,SAAS,UAAYyvlC,EAAI36K,IAAO/36B,MAAM,QACtFwgE,EAAK,EAAGr1B,EAAM,GAGlB,IAAIq1B,EAAK,EAAGA,EAAKnuB,EAAKt8C,SAAUyqE,EAE/B,GADAr1B,EAAMkH,EAAKmuB,GACP,sBAAsBzjD,KAAKouB,KAC/BA,EAAMA,EAAIxxC,MAAMwxC,EAAI/xC,QAAQ,SACxBkB,IAAMA,EAAO6wC,EAAIxxC,MAAM,EAAGwxC,EAAI0jV,YAAY,KAAO,IAClD1jV,EAAIxxC,MAAM,EAAGW,EAAKvE,SAAWuE,GAChC,KAAMA,EAAKvE,OAAS,IAEnBuE,GADAA,EAAOA,EAAKX,MAAM,EAAGW,EAAKvE,OAAS,IACvB4D,MAAM,EAAGW,EAAKu0X,YAAY,KAAO,GAC1C1jV,EAAIxxC,MAAM,EAAEW,EAAKvE,SAAWuE,KAIjC,IAAI8/lC,GAAa/njC,EAAK,IAAM,IAAIlzC,MAAM,oBACtC,IAAIi7lC,EAAW,MAAM,IAAI1ylC,MAAM,4BAC/B,IAAI4ic,EAAW,MAAQ8vpB,EAAU,IAAM,IAEnCC,EAA6B,GAAIC,EAA8B,GAC/D7ikC,EAAI,CACP4ikC,UAAWA,EACXC,UAAWA,GAEZC,EAAS9ikC,GACT,IAAI+ikC,EAAUC,EAAO,EACrB,IAAIj6hC,EAAK,EAAGA,EAAKnuB,EAAKt8C,SAAUyqE,EAAI,CACnC,IAAIxmE,EAAOq4C,EAAKmuB,GACbxmE,IAASswc,GAAYtwc,IAASswc,EAAW,OACzCmwpB,KAAQC,GAAWjjkC,EAAG4a,EAAK14C,MAAM6gmC,EAAUh6hC,GAAKlmE,GACnDkgmC,EAAWh6hC,EACZ,CACA,OAAO/oC,CACR,CAh9C8DkjkC,CAAU5iL,EAAMvi7B,GAC9E,GAAGui7B,EAAKhi7B,OAAS,IAAK,MAAM,IAAI2R,MAAM,iBAAmBqw6B,EAAKhi7B,OAAS,UACvE,IAAI6kmC,EAEAC,EACAC,EACAC,EACAC,EACAC,EALAC,EAAM,IAONC,EAA8B,GAG9B7t0B,EAAyByqpB,EAAKp+6B,MAAM,EAAE,KAC1CkgmC,GAAUvs0B,EAAM,GAGhB,IAAI8t0B,EAmFJ,SAAwB9t0B,GACvB,GAAmB,IAAhBA,EAAKA,EAAKxsQ,IAAkC,IAApBwsQ,EAAKA,EAAKxsQ,EAAI,GAAY,MAAO,CAAC,EAAG,GAEhEwsQ,EAAK+t0B,IAAIC,EAAkB,sBAI3Bhu0B,EAAKxsQ,GAAK,GAGV,IAAI85kC,EAAkBtt0B,EAAKws0B,WAAW,EAAG,KAEzC,MAAO,CAACxs0B,EAAKws0B,WAAW,EAAE,KAAMc,EACjC,CAhGSW,CAAeju0B,GAExB,OADAst0B,EAAOQ,EAAG,IAET,KAAK,EAAGF,EAAM,IAAK,MAAO,KAAK,EAAGA,EAAM,KAAM,MAC9C,KAAK,EAAG,GAAY,GAATE,EAAG,GAAS,OAAOjB,GAAUpiL,EAAMvi7B,GAE9C,QAAS,MAAM,IAAIkS,MAAM,sCAAwCkzlC,GAIvD,MAARM,GAA4DrB,GAA7Cvs0B,EAAcyqpB,EAAKp+6B,MAAM,EAAEuhmC,GAAkC,IAE/E,IAAI5viC,EAAsBys3B,EAAKp+6B,MAAM,EAAEuhmC,IAqFvC,SAAsB5t0B,EAAiBst0B,GACtC,IAAIv6kC,EAAQ,EAOZ,OAHAitQ,EAAKxsQ,GAAK,EAGFT,EAAQitQ,EAAKws0B,WAAW,IAC/B,KAAK,EAAM,GAAW,GAARc,EAAW,MAAM,IAAIlzlC,MAAM,gCAAkC2Y,GAAQ,MACnF,KAAK,GAAM,GAAW,GAARu6kC,EAAW,MAAM,IAAIlzlC,MAAM,iCAAmC2Y,GAAQ,MACpF,QAAS,MAAM,IAAI3Y,MAAM,sCAAwC2Y,GAIlEitQ,EAAK+t0B,IAAI,OAAQ,uBAGjB/t0B,EAAK+t0B,IAAI,eAAgB,aAC1B,CAtGAG,CAAalu0B,EAAMst0B,GAGnB,IAAIa,EAAqBnu0B,EAAKws0B,WAAW,EAAG,KAC5C,GAAY,IAATc,GAA0B,IAAZa,EAAe,MAAM,IAAI/zlC,MAAM,uCAAyC+zlC,GAGzFnu0B,EAAKxsQ,GAAK,EAGVi6kC,EAAYzt0B,EAAKws0B,WAAW,EAAG,KAG/Bxs0B,EAAKxsQ,GAAK,EAGVwsQ,EAAK+t0B,IAAI,WAAY,6BAGrBL,EAAgB1t0B,EAAKws0B,WAAW,EAAG,KAGnCe,EAAOvt0B,EAAKws0B,WAAW,EAAG,KAG1BmB,EAAc3t0B,EAAKws0B,WAAW,EAAG,KAGjCgB,EAAgBxt0B,EAAKws0B,WAAW,EAAG,KAGnC,IAAI,IAAIj5jC,GAAK,EAAGjjC,EAAI,EAAGA,EAAI,QAC1BijC,EAAIysP,EAAKws0B,WAAW,EAAG,MAClB,KAF4Bl8lC,EAGjCu9lC,EAAUv9lC,GAAKijC,EAIhB,IAAI66jC,EAmEJ,SAAmB3jL,EAAmBmjL,GAGrC,IAFA,IAAIS,EAAWpjmC,KAAK8/B,KAAK0/4B,EAAKhi7B,OAAOmlmC,GAAK,EACtCQ,EAA8B,GAC1B/jmC,EAAE,EAAGA,EAAIgkmC,IAAYhkmC,EAAG+jmC,EAAQ/jmC,EAAE,GAAKog7B,EAAKp+6B,MAAMhC,EAAEujmC,GAAKvjmC,EAAE,GAAGujmC,GAEtE,OADAQ,EAAQC,EAAS,GAAK5jL,EAAKp+6B,MAAMgimC,EAAST,GACnCQ,CACR,CAzEkCE,CAAU7jL,EAAMmjL,GAElDW,EAAWZ,EAAaH,EAAeY,EAASR,EAAKC,GAGrD,IAAIW,EA+JJ,SAA0BJ,EAA6BX,EAAsBI,EAA6BD,GACzG,IAAI7wwB,EAAKqxwB,EAAQ3lmC,OAAQ+lmC,EAA8B,GACnDC,EAA0B,GAAIpu0B,EAAwB,GAAIqu0B,EAAgC,GAC1FC,EAAUf,EAAM,EAAGvjmC,EAAE,EAAGiG,EAAE,EAAGC,EAAE,EAAGmm6B,EAAG,EACzC,IAAIrs6B,EAAE,EAAGA,EAAI0yV,IAAM1yV,EAGlB,GAFAg2R,EAAO,IACP9vR,EAAKlG,EAAIojmC,IAAoB1wwB,IAAIxsV,GAAGwsV,IACjC0xwB,EAAKl+lC,GAAR,CACAm+lC,EAAY,GACZ,IAAIvl+B,EAAO,GACX,IAAI74H,EAAEC,EAAGD,GAAG,GAAI,CACf64H,EAAK74H,IAAK,EACVm+lC,EAAKn+lC,IAAK,EACV+vR,EAAIA,EAAI53R,QAAU6H,EAClBo+lC,EAAU1lmC,KAAKolmC,EAAQ99lC,IACvB,IAAIs+lC,EAAkBf,EAAU5imC,KAAK2/B,MAAQ,EAAFt6B,EAAIs9lC,IAE/C,GAAGA,EAAM,GADTl3L,EAAS,EAAFpm6B,EAAOq+lC,GACG,MAAM,IAAIv0lC,MAAM,yBAA2B9J,EAAI,MAAMs9lC,GACtE,IAAIQ,EAAQQ,GAAO,MAEnB,GAAGzl+B,EADH74H,EAAIu+lC,GAAcT,EAAQQ,GAAOl4L,IACrB,KACb,CACA83L,EAAYj+lC,GAAM,CAAC7G,MAAO22R,EAAKt7O,KAAK+pjC,GAAW,CAACJ,IAf5B,CAiBrB,OAAOF,CACR,CAxLiCO,CAAiBX,EAASX,EAAWI,EAAWD,GAEjFY,EAAYf,GAAWn6lC,KAAO,aAC3Bi6lC,EAAO,GAAKG,IAAkBsB,IAAYR,EAAYd,GAAep6lC,KAAO,YAC/Ek7lC,EAAYX,EAAU,IAAIv6lC,KAAO,OACjCk7lC,EAAYX,UAAYA,EACxBW,EAAYZ,IAAMA,EAGlB,IAA6BqB,EAA0B,GAAIlC,EAA6B,GAAIC,EAA8B,IAkL1H,SAAwBS,EAAsBe,EAA4BJ,EAA6Ba,EAAyB1B,EAAM91K,EAAOs1K,EAAWmC,GAIvJ,IAHA,IAEwB57lC,EAFpB67lC,EAAgB,EAAG5vkC,EAAM0vkC,EAAMxmmC,OAAO,EAAE,EACxCoy4B,EAAS2zN,EAAYf,GAAW1ojC,KAChC16C,EAAI,EAAG+kmC,EAAU,EACf/kmC,EAAIww4B,EAAOpy4B,OAAQ4B,GAAI,IAAK,CACjC,IAAI21R,EAAyB66mB,EAAOxu4B,MAAMhC,EAAGA,EAAE,KAC/CkimC,GAAUvs0B,EAAM,IAChBov0B,EAAUpv0B,EAAKws0B,WAAW,GAC1Bl5lC,EAAO+7lC,GAAUrv0B,EAAK,EAAEov0B,EAAQ7vkC,GAChC0vkC,EAAMjmmC,KAAKsK,GACX,IAAI62B,EAAkB,CACrB72B,KAAOA,EACPpG,KAAO8yR,EAAKws0B,WAAW,GACvBxulC,MAAOgiR,EAAKws0B,WAAW,GACvBn9jC,EAAO2wP,EAAKws0B,WAAW,EAAG,KAC1B3niC,EAAOm7N,EAAKws0B,WAAW,EAAG,KAC1BnliC,EAAO24N,EAAKws0B,WAAW,EAAG,KAC1B8C,MAAOtv0B,EAAKws0B,WAAW,IACvBhkkC,MAAOw3P,EAAKws0B,WAAW,EAAG,KAC1Bt9kC,MAAO,EACP7e,KAAM,GAGM,IADU2vR,EAAKws0B,WAAW,GAAKxs0B,EAAKws0B,WAAW,GAAKxs0B,EAAKws0B,WAAW,GAAKxs0B,EAAKws0B,WAAW,KACtFrikC,EAAEuqT,GAAK66wB,EAAUvv0B,EAAMA,EAAKxsQ,EAAE,IAEjC,IADUwsQ,EAAKws0B,WAAW,GAAKxs0B,EAAKws0B,WAAW,GAAKxs0B,EAAKws0B,WAAW,GAAKxs0B,EAAKws0B,WAAW,KACtFrikC,EAAE/J,GAAKmvkC,EAAUvv0B,EAAMA,EAAKxsQ,EAAE,IAC9C2W,EAAEjb,MAAQ8wQ,EAAKws0B,WAAW,EAAG,KAC7BrikC,EAAE95B,KAAO2vR,EAAKws0B,WAAW,EAAG,KACzBrikC,EAAE95B,KAAO,GAAK85B,EAAEjb,MAAQ,IAAKib,EAAE95B,KAAO85B,EAAEj9B,KAAO,EAAGi9B,EAAEjb,MAAQ8/kC,EAAY7kkC,EAAE72B,KAAO,IACtE,IAAX62B,EAAEj9B,MACJiimC,EAAgBhlkC,EAAEjb,MACfq+kC,EAAO,GAAK4B,IAAkBH,IAAYR,EAAYW,GAAe77lC,KAAO,gBAEtE62B,EAAE95B,MAAQ,MACnB85B,EAAE21X,QAAU,WACgB52Z,IAAzBslmC,EAAYrkkC,EAAEjb,SAAsBs/kC,EAAYrkkC,EAAEjb,OAASsglC,EAAgBpB,EAASjkkC,EAAEjb,MAAOs/kC,EAAYX,UAAWW,EAAYZ,MACnIY,EAAYrkkC,EAAEjb,OAAO5b,KAAO62B,EAAE72B,KAC9B62B,EAAEsgX,QAAW+jtB,EAAYrkkC,EAAEjb,OAAO61B,KAAK14C,MAAM,EAAE89B,EAAE95B,QAEjD85B,EAAE21X,QAAU,UACT31X,EAAE95B,KAAO,EAAG85B,EAAE95B,KAAO,EAChB8+lC,IAAkBH,GAAc7kkC,EAAEjb,QAAU8/kC,GAAcR,EAAYW,KAC7EhlkC,EAAEsgX,QAAUgltB,EAAetlkC,EAAGqkkC,EAAYW,GAAepqjC,MAAOypjC,EAAYU,IAAO,CAAC,GAAGnqjC,QAGtF5a,EAAEsgX,SAAS8htB,GAAUpikC,EAAEsgX,QAAS,GACnCgtiB,EAAMnk7B,GAAQ62B,EACd4ikC,EAAU/jmC,KAAKmhC,EAChB,CACD,CAlOAulkC,CAAejC,EAAWe,EAAaJ,EAASa,EAAO1B,EAD9B,CAAC,EAC0CR,EAAWW,GA6D/E,SAA0BiC,EAAqBC,EAAsBX,GAIpE,IAHA,IAAI5kmC,EAAI,EAAGglC,EAAI,EAAGw1B,EAAI,EAAGwC,EAAI,EAAG/2D,EAAI,EAAGivB,EAAK0vkC,EAAMxmmC,OAC9ConmC,EAAwB,GAAIt8jC,EAAsB,GAEhDlpC,EAAIk1B,IAAMl1B,EAAKwlmC,EAAIxlmC,GAAGkpC,EAAElpC,GAAGA,EAAGulmC,EAAGvlmC,GAAG4kmC,EAAM5kmC,GAEhD,KAAMiG,EAAIijC,EAAE9qC,SAAU6H,EAErB++B,EAAIsgkC,EADJtlmC,EAAIkpC,EAAEjjC,IACI++B,EAAGw1B,EAAI8qiC,EAAGtlmC,GAAGw6D,EAAGwC,EAAIsoiC,EAAGtlmC,GAAGg9D,EACjCwoiC,EAAIxlmC,KAAOA,KACH,IAAPglC,GAAyBwgkC,EAAIxgkC,KAAOA,IAAGwgkC,EAAIxlmC,GAAKwlmC,EAAIxgkC,KAC7C,IAAPw1B,GAAYgriC,EAAIhriC,KAAOA,IAAGgriC,EAAIxlmC,GAAKwlmC,EAAIhriC,MAEjC,IAAPwC,IAAuBwoiC,EAAIxoiC,GAAKh9D,IACzB,IAAPglC,GAAYhlC,GAAKwlmC,EAAIxlmC,KAAMwlmC,EAAIxgkC,GAAKwgkC,EAAIxlmC,GAAOkpC,EAAEguV,YAAYlyV,GAAK/+B,GAAGijC,EAAEvqC,KAAKqmC,KACrE,IAAPw1B,GAAYx6D,GAAKwlmC,EAAIxlmC,KAAMwlmC,EAAIhriC,GAAKgriC,EAAIxlmC,GAAOkpC,EAAEguV,YAAY18T,GAAKv0D,GAAGijC,EAAEvqC,KAAK67D,IAEhF,IAAIx6D,EAAE,EAAGA,EAAIk1B,IAAMl1B,EAAMwlmC,EAAIxlmC,KAAOA,KACzB,IAAPw6D,GAAyBgriC,EAAIhriC,KAAOA,EAAGgriC,EAAIxlmC,GAAKwlmC,EAAIhriC,IACxC,IAAPx1B,GAAYwgkC,EAAIxgkC,KAAOA,IAAGwgkC,EAAIxlmC,GAAKwlmC,EAAIxgkC,KAGhD,IAAIhlC,EAAE,EAAGA,EAAIk1B,IAAMl1B,EAClB,GAAkB,IAAfslmC,EAAGtlmC,GAAG6C,KAAT,CAEA,IADAoD,EAAIjG,IACIwlmC,EAAIv/lC,GAAI,GACfA,EAAIu/lC,EAAIv/lC,GACRs/lC,EAAGvlmC,GAAKulmC,EAAGt/lC,GAAK,IAAMs/lC,EAAGvlmC,SACX,IAANiG,IAAY,IAAMu/lC,EAAIv/lC,IAAMA,GAAKu/lC,EAAIv/lC,IAC9Cu/lC,EAAIxlmC,IAAM,CANiC,CAU5C,IADAulmC,EAAG,IAAM,IACLvlmC,EAAE,EAAGA,EAAIk1B,IAAMl1B,EACA,IAAfslmC,EAAGtlmC,GAAG6C,OAAyB0imC,EAAGvlmC,IAAM,IAE7C,CA/FAylmC,CAAiB/C,EAAWC,EAAWiC,GACvCA,EAAMl8kC,QAEN,IAAIoX,EAAI,CACP4ikC,UAAWA,EACXC,UAAWA,GAKZ,OADG9kmC,GAAWA,EAAQ4S,MAAKqvB,EAAErvB,IAAM,CAACkjD,OAAQA,EAAQowiC,QAASA,IACtDjkkC,CACP,CAsFA,SAASslkC,EAAelztB,EAAoB2iS,EAAsBgwb,GAKjE,IAJA,IAAIhglC,EAAQqtX,EAAMrtX,MAAO7e,EAAOksY,EAAMlsY,KAElC85B,EAAI,GACJ/W,EAAMlE,EACJgglC,GAAQ7+lC,EAAO,GAAK+iB,GAAO,GAChC+W,EAAEnhC,KAAKk2qB,EAAQ7yqB,MAAM+mB,EAAM28kC,EAAM38kC,EAAM28kC,EAAOA,IAC9C1/lC,GAAQ0/lC,EACR38kC,EAAMy7kC,GAAcK,EAAY,EAAN97kC,GAE3B,OAAgB,IAAb+W,EAAE1hC,OAAsBunmC,GAAQ,GAC3B1K,GAAQn7jC,GAAG99B,MAAM,EAAGkwY,EAAMlsY,KACnC,CAIA,SAASk+lC,EAAWn7kC,EAAgBy5G,EAAgBuh+B,EAA6BR,EAAgBC,GAChG,IAAIt6jC,EAAey7jC,EACnB,GAAG57kC,IAAQ47kC,GACV,GAAW,IAARni+B,EAAW,MAAM,IAAIzyH,MAAM,0CACxB,IAAY,IAATgZ,EAAyB,CAClC,IAAIyn3B,EAASuzN,EAAQh7kC,GAAM8H,GAAK0ykC,IAAM,GAAG,EACzC,IAAI/yN,EAAQ,OACZ,IAAI,IAAIxw4B,EAAI,EAAGA,EAAI6wB,IACdqY,EAAIs7jC,GAAch0N,EAAS,EAAFxw4B,MAAU2kmC,IADhB3kmC,EAEvBwjmC,EAAU7kmC,KAAKuqC,GAEhBg7jC,EAAWM,GAAch0N,EAAO+yN,EAAI,GAAG/g+B,EAAM,EAAGuh+B,EAASR,EAAKC,EAC/D,CACD,CAGA,SAAS2B,EAAgBpB,EAA6Bl/kC,EAAkB2+kC,EAA6BD,EAAgBa,GACpH,IAAIpu0B,EAAwB,GAAIqu0B,EAA2B,GACvDD,IAAMA,EAAO,IACjB,IAAIE,EAAUf,EAAM,EAAGt9lC,EAAI,EAAGom6B,EAAK,EACnC,IAAIpm6B,EAAE4e,EAAO5e,GAAG,GAAI,CACnBm+lC,EAAKn+lC,IAAK,EACV+vR,EAAIA,EAAI53R,QAAU6H,EAClBo+lC,EAAU1lmC,KAAKolmC,EAAQ99lC,IACvB,IAAIs+lC,EAAOf,EAAU5imC,KAAK2/B,MAAQ,EAAFt6B,EAAIs9lC,IAEpC,GAAGA,EAAM,GADTl3L,EAAS,EAAFpm6B,EAAOq+lC,GACG,MAAM,IAAIv0lC,MAAM,yBAA2B9J,EAAI,MAAMs9lC,GACtE,IAAIQ,EAAQQ,GAAO,MACnBt+lC,EAAIu+lC,GAAcT,EAAQQ,GAAOl4L,EAClC,CACA,MAAO,CAACht6B,MAAO22R,EAAKt7O,KAAK+pjC,GAAW,CAACJ,IACtC,CAkFA,SAASa,EAAUvv0B,EAA0BvwR,GAC5C,OAAO,IAAIs8B,KAA6G,KAAnGkkkC,GAAejw0B,EAAKvwR,EAAO,GAAG,IAAKxE,KAAK4jD,IAAI,EAAE,IAAIohjC,GAAejw0B,EAAKvwR,GAAQ,IAAQ,aAC5G,CAoBA,SAASw9lC,EAASiD,EAAsBrlgC,GACvC,IAAI1gE,EAAI0gE,GAAQ,CAAC,EAAG79F,EAAOm9B,EAAEn9B,MAAQ,aAGrC,GAFIkjmC,EAAIlD,YAAWkD,EAAIlD,UAAY,IAC/BkD,EAAInD,YAAWmD,EAAInD,UAAY,IAChCmD,EAAIlD,UAAUvkmC,SAAWynmC,EAAInD,UAAUtkmC,OAAQ,MAAM,IAAI2R,MAAM,8BACtC,IAAzB81lC,EAAIlD,UAAUvkmC,SAChBynmC,EAAIlD,UAAU,GAAKhgmC,EAAO,IAC1BkjmC,EAAInD,UAAU,GAAM,CAAEz5lC,KAAMtG,EAAME,KAAM,IAEtCi9B,EAAEgmkC,QAAOD,EAAInD,UAAU,GAAGuC,MAAQnlkC,EAAEgmkC,OAGxC,SAAkBD,GACjB,IAAIE,EAAK,cACT,GAAGnE,GAAI9/hC,KAAK+jiC,EAAK,IAAME,GAAK,OAC5B,IAAIj1kC,EAAI60kC,GAAQ,GAAI70kC,EAAE,GAAK,GAAIA,EAAE,GAAKA,EAAE,GAAK,GAAIA,EAAE,GAAK,GACxD+0kC,EAAInD,UAAU/jmC,KAAM,CAAEsK,KAAM88lC,EAAIljmC,KAAM,EAAGu9Y,QAAQtvX,EAAG9qB,KAAK,EAAGg/B,EAAE,GAAIw1B,EAAE,GAAIwC,EAAE,KAC1E6oiC,EAAIlD,UAAUhkmC,KAAKknmC,EAAIlD,UAAU,GAAKoD,GACtCC,EAAYH,EACb,CATCI,CAASJ,EACV,CASA,SAASG,EAAYH,EAAsBx8kC,GAC1Cu5kC,EAASiD,GAET,IADA,IAAIrpR,GAAK,EAAOtzzB,GAAI,EACZlpB,EAAI6lmC,EAAIlD,UAAUvkmC,OAAS,EAAG4B,GAAK,IAAKA,EAAG,CAClD,IAAIkmmC,EAAQL,EAAInD,UAAU1imC,GAC1B,OAAOkmmC,EAAMrjmC,MACZ,KAAK,EACDqmB,EAAGszzB,GAAK,GACJqpR,EAAInD,UAAUvpiC,MAAO0siC,EAAIlD,UAAUxpiC,OAC1C,MACD,KAAK,EAAG,KAAK,EAAG,KAAK,EACpBjwC,GAAI,EACDsoB,MAAM00jC,EAAM1riC,EAAI0riC,EAAMlhkC,EAAIkhkC,EAAMlpiC,KAAIw/wB,GAAK,GACzC0pR,EAAM1riC,GAAK,GAAK0riC,EAAMlhkC,GAAK,GAAKkhkC,EAAM1riC,GAAK0riC,EAAMlhkC,IAAGw3yB,GAAK,GAC5D,MACD,QAASA,GAAK,EAEhB,CACA,GAAIA,GAAOnzzB,EAAX,CAEA,IAAIonB,EAAM,IAAI/O,KAAK,KAAM,EAAG,IAAKz7B,EAAI,EAEjCkgmC,EAAYllmC,OAAOoI,OAASpI,OAAOoI,OAAO,MAAQ,CAAC,EACnDqxC,EAAqC,GACzC,IAAI16C,EAAI,EAAGA,EAAI6lmC,EAAIlD,UAAUvkmC,SAAU4B,EACtCmmmC,EAAUN,EAAIlD,UAAU3imC,KAAM,EACD,IAA1B6lmC,EAAInD,UAAU1imC,GAAG6C,MACpB63C,EAAK/7C,KAAK,CAACknmC,EAAIlD,UAAU3imC,GAAI6lmC,EAAInD,UAAU1imC,KAE5C,IAAIA,EAAI,EAAGA,EAAI06C,EAAKt8C,SAAU4B,EAAG,CAChC,IAAIwlmC,EAAM3D,EAAQnnjC,EAAK16C,GAAG,KAC1BkpB,EAAIi9kC,EAAUX,MAEb9qjC,EAAK/7C,KAAK,CAAC6mmC,EAAM,CAChBv8lC,KAAMg6O,EAASui3B,GAAKpkmC,QAAQ,IAAI,IAChCyB,KAAM,EACNoimC,MAAOmB,EACP/7wB,GAAI55S,EAAK1a,GAAI0a,EACb2vW,QAAS,QAGV+ltB,EAAUX,IAAO,EAEnB,CAIA,IAFA9qjC,EAAKrrB,MAAK,SAASlpB,EAAEC,GAAK,OAve3B,SAAiB+iB,EAAciD,GAE9B,IADA,IAAI4Y,EAAI7b,EAAE9gB,MAAM,KAAMmyD,EAAIpuC,EAAE/jB,MAAM,KAC1BrI,EAAI,EAAG+/B,EAAI,EAAGyG,EAAI5lC,KAAK8mB,IAAIsd,EAAE5mC,OAAQo8D,EAAEp8D,QAAS4B,EAAIwmC,IAAKxmC,EAAG,CACnE,GAAI+/B,EAAIiF,EAAEhlC,GAAG5B,OAASo8D,EAAEx6D,GAAG5B,OAAS,OAAO2hC,EAC3C,GAAGiF,EAAEhlC,IAAMw6D,EAAEx6D,GAAI,OAAOglC,EAAEhlC,GAAKw6D,EAAEx6D,IAAM,EAAI,CAC5C,CACA,OAAOglC,EAAE5mC,OAASo8D,EAAEp8D,MACrB,CAgekCiomC,CAAQlgmC,EAAE,GAAIC,EAAE,GAAK,IACtDy/lC,EAAIlD,UAAY,GAAIkD,EAAInD,UAAY,GAChC1imC,EAAI,EAAGA,EAAI06C,EAAKt8C,SAAU4B,EAAK6lmC,EAAIlD,UAAU3imC,GAAK06C,EAAK16C,GAAG,GAAI6lmC,EAAInD,UAAU1imC,GAAK06C,EAAK16C,GAAG,GAC7F,IAAIA,EAAI,EAAGA,EAAI06C,EAAKt8C,SAAU4B,EAAG,CAChC,IAAIsmmC,EAAMT,EAAInD,UAAU1imC,GACpB+lmC,EAAKF,EAAIlD,UAAU3imC,GAOvB,GALAsmmC,EAAIr9lC,KAAQg6O,EAAS8i3B,GAAI3kmC,QAAQ,IAAI,IACrCklmC,EAAIthkC,EAAIshkC,EAAI9riC,EAAI8riC,EAAItpiC,IAAMspiC,EAAI3ylC,MAAQ,GACtC2ylC,EAAItgmC,KAAOsgmC,EAAIlmtB,QAAUkmtB,EAAIlmtB,QAAQhiZ,OAAS,EAC9CkomC,EAAIzhlC,MAAQ,EACZyhlC,EAAIrB,MAASqB,EAAIrB,OAASmB,EACjB,IAANpmmC,EACFsmmC,EAAItpiC,EAAItiB,EAAKt8C,OAAS,EAAI,GAAK,EAC/BkomC,EAAItgmC,KAAO,EACXsgmC,EAAIzjmC,KAAO,OACL,GAAmB,KAAhBkjmC,EAAG/jmC,OAAO,GAAW,CAC9B,IAAIiE,EAAEjG,EAAE,EAAEiG,EAAIy0C,EAAKt8C,QAAgByjmC,EAAQgE,EAAIlD,UAAU18lC,KAAK8/lC,IAAjC9/lC,GAE7B,IADAqgmC,EAAItpiC,EAAI/2D,GAAKy0C,EAAKt8C,QAAU,EAAI6H,EAC5BA,EAAEjG,EAAE,EAAEiG,EAAIy0C,EAAKt8C,QAAgByjmC,EAAQgE,EAAIlD,UAAU18lC,KAAK47lC,EAAQkE,KAAzC9/lC,GAC7BqgmC,EAAI9riC,EAAIv0D,GAAKy0C,EAAKt8C,QAAU,EAAI6H,EAChCqgmC,EAAIzjmC,KAAO,CACZ,MACIg/lC,EAAQgE,EAAIlD,UAAU3imC,EAAE,IAAI,KAAO6hmC,EAAQkE,KAAKO,EAAI9riC,EAAIx6D,EAAI,GAC/DsmmC,EAAIzjmC,KAAO,CAEb,CArDoB,CAuDrB,CAEA,SAAS01Y,EAAOsttB,EAAsBhomC,GACrC,IAAI+6zB,EAAQ/6zB,GAAW,CAAC,EAExB,GAAqB,OAAlB+6zB,EAAMl8Z,SAAmB,OAkiC7B,SAAmBmpsB,EAAsBhomC,GAcxC,IAbA,IAAI2iG,EAAO3iG,GAAW,CAAC,EACnB80c,EAAWnyW,EAAKmyW,UAAY,UAG5B/uY,EAAM,CACT,oBACA,+CAJD+uY,EAAW,UAAYA,GAImC3wc,MAAM,GAAK,IACpE,GACA,GACA,IAGGW,EAAOkjmC,EAAIlD,UAAU,GAAI94pB,EAAKlnc,EAAMkkgB,EAAKg/lB,EAAInD,UAAU,GACnD1imC,EAAI,EAAGA,EAAI6lmC,EAAIlD,UAAUvkmC,SAAU4B,EAG1C,GAFA6pc,EAAKg8pB,EAAIlD,UAAU3imC,GAAGgC,MAAMW,EAAKvE,SACjCyogB,EAAKg/lB,EAAInD,UAAU1imC,IACZgG,MAAS6ggB,EAAGzmH,SAAiB,eAANypD,EAA9B,CAGAA,EAAKA,EAAGzoc,QAAQ,0CAA0C,SAAS2+B,GAClE,MAAO,KAAOA,EAAEn+B,WAAW,GAAG0J,SAAS,IAAM,GAC9C,IAAGlK,QAAQ,oBAAoB,SAASurB,GACvC,MAAO,KAAOA,EAAE/qB,WAAW,GAAG0J,SAAS,IAAM,GAC9C,IASA,IANA,IAAIila,EAAKs2F,EAAGzmH,QAERtwS,EAAO2q/B,IAAW7luB,OAAOoB,SAASu6C,GAAMA,EAAGjla,SAAS,UAAYyvlC,EAAIxqrB,GAGpEg2rB,EAAU,EAAGvhkC,EAAIpkC,KAAK8mB,IAAI,KAAMooF,EAAK1xG,QAASyzb,EAAK,EAC/C20qB,EAAM,EAAGA,GAAOxhkC,IAAKwhkC,GAAS30qB,EAAG/hV,EAAKluG,WAAW4kmC,KAAS,IAAQ30qB,EAAK,OAAQ00qB,EACvF,IAAIE,EAAKF,GAAe,EAAJvhkC,EAAQ,EAE5B4+B,EAAIjlE,KAAKg0c,GACT/uY,EAAIjlE,KAAK,sBAAwB6hG,EAAK79F,MAAQ,uBAAyBknc,GACvEjmY,EAAIjlE,KAAK,+BAAiC8nmC,EAAK,mBAAqB,WACpE7iiC,EAAIjlE,KAAK,iBAAmB+nmC,GAAiB7/lB,EAAIh9D,IACjDjmY,EAAIjlE,KAAK,IAETilE,EAAIjlE,KAAK8nmC,EAAKE,GAAuB72/B,GAAQ82/B,GAAgB92/B,GAzBA,CA4B9D,OADAlsC,EAAIjlE,KAAKg0c,EAAW,UACb/uY,EAAIh/D,KAAK,OACjB,CAhlCoCiimC,CAAUhB,EAAKjtS,GAElD,GADAotS,EAAYH,GAEN,QADCjtS,EAAMl8Z,SACA,OAuxBd,SAAmBmpsB,EAAsBhomC,GACxC,IAAI+6zB,EAAQ/6zB,GAAW,CAAC,EACpB+lE,EAAM,GAAIkjiC,EAAQ,GAClBhnkC,EAAe6lkC,GAAQ,GACvBlxjC,EAAUmkxB,EAAMmuS,YAAc,EAAI,EAAI58/B,EAAQ,EACvC,EAEX,IAAInqG,EAAI,EAAGiG,EAAI,EAEX+gmC,EAAW,EAAGlE,EAAO,EACrBngmC,EAAOkjmC,EAAIlD,UAAU,GAAI94pB,EAAKlnc,EAAMkkgB,EAAKg/lB,EAAInD,UAAU,GACvDuE,EAAO,GACPC,EAAQ,EAEZ,IAAIlnmC,EAAI,EAAGA,EAAI6lmC,EAAIlD,UAAUvkmC,SAAU4B,EAEtC,GADA6pc,EAAKg8pB,EAAIlD,UAAU3imC,GAAGgC,MAAMW,EAAKvE,SAASyogB,EAAKg/lB,EAAInD,UAAU1imC,IACtDgG,MAAS6ggB,EAAGzmH,SAAiB,eAANypD,EAA9B,CACA,IAAIhlb,EAAQmilC,EAGRG,EAAUxB,GAAQ97pB,EAAGzrc,QACzB,IAAI6H,EAAI,EAAGA,EAAI4jc,EAAGzrc,SAAU6H,EAAGkhmC,EAAQnF,YAAY,EAAsB,IAAnBn4pB,EAAGjoc,WAAWqE,IACpEkhmC,EAAUA,EAAQnlmC,MAAM,EAAGmlmC,EAAQh+kC,GACnC89kC,EAAKnE,GAAQ/B,GAAM/q0B,IAAY6wO,EAAGzmH,QAAyB,GAE3D,IAAIgntB,EAASvgmB,EAAGzmH,QACH,GAAV3rW,IAAa2yjC,EAASC,EAAgBD,KAGzCtnkC,EAAI6lkC,GAAQ,KACV3D,YAAY,EAAG,UACjBlikC,EAAEkikC,YAAY,EAAG,IACjBlikC,EAAEkikC,YAAY,EAAG73/B,GACjBrqE,EAAEkikC,YAAY,EAAGvtjC,GAEdoyd,EAAG9we,GAAI+rkC,EAAehikC,EAAG+me,EAAG9we,IAC1B+J,EAAEkikC,YAAY,EAAG,GACtBlikC,EAAEkikC,aAAa,EAAY,EAAR73/B,EAAa,EAAI88/B,EAAKnE,IACzChjkC,EAAEkikC,YAAY,EAAa,EAAR73/B,EAAa,EAAIi9/B,EAAOhpmC,QAC3C0hC,EAAEkikC,YAAY,EAAa,EAAR73/B,EAAa,EAAW08Z,EAAGzmH,QAAmBhiZ,QACjE0hC,EAAEkikC,YAAY,EAAGmF,EAAQ/omC,QACzB0hC,EAAEkikC,YAAY,EAAG,GAEjBgF,GAAYlnkC,EAAE1hC,OACdwlE,EAAIjlE,KAAKmhC,GACTknkC,GAAYG,EAAQ/omC,OACpBwlE,EAAIjlE,KAAKwomC,GAMTH,GAAYI,EAAOhpmC,OACnBwlE,EAAIjlE,KAAKyomC,GAGE,EAARj9/B,KACFrqE,EAAI6lkC,GAAQ,KACV3D,aAAa,EAAGiF,EAAKnE,IACvBhjkC,EAAEkikC,YAAY,EAAGoF,EAAOhpmC,QACxB0hC,EAAEkikC,YAAY,EAAUn7lB,EAAGzmH,QAAmBhiZ,QAC9C4omC,GAAYlnkC,EAAE3W,EACdy6C,EAAIjlE,KAAKmhC,KAIVA,EAAI6lkC,GAAQ,KACV3D,YAAY,EAAG,UACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,IACjBlikC,EAAEkikC,YAAY,EAAG73/B,GACjBrqE,EAAEkikC,YAAY,EAAGvtjC,GACjB3U,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,aAAa,EAAGiF,EAAKnE,IAEvBhjkC,EAAEkikC,YAAY,EAAGoF,EAAOhpmC,QACxB0hC,EAAEkikC,YAAY,EAAUn7lB,EAAGzmH,QAAmBhiZ,QAC9C0hC,EAAEkikC,YAAY,EAAGmF,EAAQ/omC,QACzB0hC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAGn9kC,GAEjBqilC,GAASpnkC,EAAE3W,EACX29kC,EAAMnomC,KAAKmhC,GACXonkC,GAASC,EAAQ/omC,OACjB0omC,EAAMnomC,KAAKwomC,KACTrE,CAzE2D,CAuF9D,OAVAhjkC,EAAI6lkC,GAAQ,IACZ7lkC,EAAEkikC,YAAY,EAAG,WACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAGc,GACjBhjkC,EAAEkikC,YAAY,EAAGc,GACjBhjkC,EAAEkikC,YAAY,EAAGkF,GACjBpnkC,EAAEkikC,YAAY,EAAGgF,GACjBlnkC,EAAEkikC,YAAY,EAAG,GAEV/G,GAAS,CAACA,GAASr3hC,GAAeq3hC,GAAQ6L,GAAQhnkC,GAC1D,CA/3BqBwnkC,CAAUzB,EAAKjtS,GAGnC,IAAI5zxB,EAAK,SAAS6gkC,GAEjB,IADA,IAAI0B,EAAY,EAAGC,EAAW,EACtBxnmC,EAAI,EAAGA,EAAI6lmC,EAAInD,UAAUtkmC,SAAU4B,EAAG,CAC7C,IAAIog7B,EAAOylL,EAAInD,UAAU1imC,GACzB,GAAIog7B,EAAKhgiB,QAAT,CAEA,IAAI6/sB,EAAO7/K,EAAKhgiB,QAAQhiZ,OACrB6hmC,EAAO,IACNA,EAAO,KAAQsH,GAActH,EAAO,IAAS,EAC3CuH,GAAavH,EAAO,KAAW,EALX,CAO3B,CAOA,IANA,IAAI6D,EAAW+B,EAAIlD,UAAUvkmC,OAAQ,GAAM,EAEvCqpmC,EAAYF,EAAY,KAAS,EACjCG,GAFYH,EAAY,GAAM,GAERC,EAAW1D,EAAU2D,EAC3CE,EAAWD,EAAW,KAAS,EAC/BE,EAAYD,GAAW,IAAM,EAAI/mmC,KAAK8/B,MAAMinkC,EAAQ,KAAK,KACrDD,EAAWC,EAAUC,EAAY,KAAS,EAAKD,GAASC,IAAcD,GAAW,IAAM,EAAI/mmC,KAAK8/B,MAAMinkC,EAAQ,KAAK,KAC3H,IAAI3ikC,EAAK,CAAC,EAAG4ikC,EAAWD,EAASF,EAAU3D,EAAS0D,EAAUD,EAAW,GAGzE,OAFA1B,EAAInD,UAAU,GAAG18lC,KAAOuhmC,GAAa,EACrCvikC,EAAE,IAAM6gkC,EAAInD,UAAU,GAAG79kC,MAAMmgB,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAMA,EAAE,GAAG,GAAM,GACpEA,CACR,CAvBS,CAuBN6gkC,GACC/lkC,EAAI6lkC,GAAQ3gkC,EAAE,IAAM,GACpBhlC,EAAI,EAAGu6F,EAAI,EAEd,IAAIv6F,EAAI,EAAGA,EAAI,IAAKA,EAAG8/B,EAAEkikC,YAAY,EAAG6F,EAAW7nmC,IACnD,IAAIA,EAAI,EAAGA,EAAI,IAAKA,EAAG8/B,EAAEkikC,YAAY,EAAG,GAMxC,IALAlikC,EAAEkikC,YAAY,EAAG,IACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,OACjBlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,GACbhimC,EAAI,EAAGA,EAAI,IAAKA,EAAG8/B,EAAEkikC,YAAY,EAAG,GAUxC,IATAlikC,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAGh9jC,EAAE,IACnBlF,EAAEkikC,YAAY,EAAGh9jC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAK,GAC7ClF,EAAEkikC,YAAY,EAAG,GACjBlikC,EAAEkikC,YAAY,EAAG,MACjBlikC,EAAEkikC,YAAY,EAAGh9jC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAK,EAAG2/jC,GAChD7kkC,EAAEkikC,YAAY,EAAGh9jC,EAAE,IACnBlF,EAAEkikC,aAAa,EAAGh9jC,EAAE,GAAKA,EAAE,GAAK,EAAG2/jC,GACnC7kkC,EAAEkikC,YAAY,EAAGh9jC,EAAE,IACfhlC,EAAI,EAAGA,EAAI,MAAOA,EAAG8/B,EAAEkikC,aAAa,EAAGhimC,EAAIglC,EAAE,GAAKA,EAAE,GAAKhlC,GAAK,GAEnE,GAAGglC,EAAE,GACJ,IAAIu1D,EAAI,EAAGA,EAAIv1D,EAAE,KAAMu1D,EAAG,CACzB,KAAMv6F,EAAI,IAAU,IAAJu6F,IAAWv6F,EAAG8/B,EAAEkikC,aAAa,EAAGhimC,EAAIglC,EAAE,GAAKA,EAAE,GAAKhlC,GAAK,GACvE8/B,EAAEkikC,aAAa,EAAGzngC,IAAMv1D,EAAE,GAAK,EAAI2/jC,EAAapqgC,EAAI,EACrD,CAED,IAAIutgC,EAAU,SAASnnkC,GACtB,IAAI45D,GAAK55D,EAAG3gC,EAAEu6F,EAAE,IAAKv6F,EAAG8/B,EAAEkikC,aAAa,EAAGhimC,EAAE,GACzC2gC,MAAO3gC,EAAG8/B,EAAEkikC,aAAa,EAAG2C,GAChC,EAEA,IADApqgC,EAAIv6F,EAAI,EACJu6F,GAAGv1D,EAAE,GAAIhlC,EAAEu6F,IAAKv6F,EAAG8/B,EAAEkikC,aAAa,EAAG+F,EAAOC,SAChD,IAAIztgC,GAAGv1D,EAAE,GAAIhlC,EAAEu6F,IAAKv6F,EAAG8/B,EAAEkikC,aAAa,EAAG+F,EAAOE,SAChDH,EAAQ9ikC,EAAE,IACV8ikC,EAAQ9ikC,EAAE,IAGV,IAFA,IAAI/+B,EAAe,EAAGg6lC,EAAkB,EACpC7/K,EAAoBylL,EAAInD,UAAU,GAChCz8lC,EAAI4/lC,EAAInD,UAAUtkmC,SAAU6H,GACjCm66B,EAAOylL,EAAInD,UAAUz8lC,IACZm6Y,WAET6/sB,EAAO7/K,EAAKhgiB,QAAQhiZ,QACV,OACVgi7B,EAAKv75B,MAAQ01E,EACbutgC,EAAS7H,EAAO,KAAW,KAG5B,IADA6H,EAAS9ikC,EAAE,GAAK,GAAM,GACV,IAANlF,EAAE3W,GAAW2W,EAAEkikC,aAAa,EAAG+F,EAAOpD,YAE5C,IADApqgC,EAAIv6F,EAAI,EACJiG,EAAI,EAAGA,EAAI4/lC,EAAInD,UAAUtkmC,SAAU6H,GACtCm66B,EAAOylL,EAAInD,UAAUz8lC,IACZm6Y,YAET6/sB,EAAO7/K,EAAKhgiB,QAAQhiZ,SACR6hmC,GAAQ,OACpB7/K,EAAKv75B,MAAQ01E,EACbutgC,EAAS7H,EAAO,IAAS,KAE1B,KAAY,IAANngkC,EAAE3W,GAAW2W,EAAEkikC,aAAa,EAAG+F,EAAOpD,YAC5C,IAAI3kmC,EAAI,EAAGA,EAAIglC,EAAE,IAAI,IAAKhlC,EAAG,CAC5B,IAAI+lmC,EAAKF,EAAIlD,UAAU3imC,GACvB,GAAI+lmC,GAAoB,IAAdA,EAAG3nmC,OAAb,CAMAgi7B,EAAOylL,EAAInD,UAAU1imC,GACZ,IAANA,IAASog7B,EAAKv75B,MAAQu75B,EAAKp66B,KAAOo66B,EAAKv75B,MAAQ,EAAI8/kC,GACtD,IAAIuD,EAAwB,IAANlomC,GAAW44zB,EAAMj2zB,MAASy96B,EAAKn36B,KASrD,GARAg3lC,EAAO,GAAGiI,EAAI9pmC,OAAO,GACrB0hC,EAAEkikC,YAAY,GAAIkG,EAAK,WACvBpokC,EAAEkikC,YAAY,EAAG/B,GACjBngkC,EAAEkikC,YAAY,EAAG5hL,EAAKv96B,MACtBi9B,EAAEkikC,YAAY,EAAG5hL,EAAKzs6B,OACtBmsB,EAAEkikC,aAAa,EAAG5hL,EAAKp74B,GACvBlF,EAAEkikC,aAAa,EAAG5hL,EAAK5l3B,GACvB16B,EAAEkikC,aAAa,EAAG5hL,EAAKpj3B,GACnBoj3B,EAAK6kL,MACJnlkC,EAAEkikC,YAAY,GAAI5hL,EAAK6kL,MAAO,YADnB,IAAIh/lC,EAAI,EAAGA,EAAI,IAAKA,EAAG65B,EAAEkikC,YAAY,EAAG,GAExDlikC,EAAEkikC,YAAY,EAAG5hL,EAAKji5B,OAAS,GAC/B2B,EAAEkikC,YAAY,EAAG,GAAIlikC,EAAEkikC,YAAY,EAAG,GACtClikC,EAAEkikC,YAAY,EAAG,GAAIlikC,EAAEkikC,YAAY,EAAG,GACtClikC,EAAEkikC,YAAY,EAAG5hL,EAAKv75B,OACtBib,EAAEkikC,YAAY,EAAG5hL,EAAKp66B,MAAO85B,EAAEkikC,YAAY,EAAG,EAlB9C,KALA,CACC,IAAI/7lC,EAAI,EAAGA,EAAI,KAAMA,EAAG65B,EAAEkikC,YAAY,EAAG,GACzC,IAAI/7lC,EAAI,EAAGA,EAAI,IAAKA,EAAG65B,EAAEkikC,YAAY,GAAI,GACzC,IAAI/7lC,EAAI,EAAGA,EAAI,KAAMA,EAAG65B,EAAEkikC,YAAY,EAAG,EAE1C,CAmBD,CACA,IAAIhimC,EAAI,EAAGA,EAAI6lmC,EAAInD,UAAUtkmC,SAAU4B,EAGtC,IAFAog7B,EAAOylL,EAAInD,UAAU1imC,IAEbgG,MAAQ,KAEf,GADA85B,EAAE3W,EAAKi35B,EAAKv75B,MAAM,GAAM,EACpB41kC,IAAW7luB,OAAOoB,SAASoqjB,EAAKhgiB,SACnCggiB,EAAKhgiB,QAAQn9Y,KAAK68B,EAAGA,EAAE3W,EAAG,EAAGi35B,EAAKp66B,MAElC85B,EAAE3W,GAAMi35B,EAAKp66B,KAAO,KAAQ,QACtB,CACN,IAAIC,EAAI,EAAGA,EAAIm66B,EAAKp66B,OAAQC,EAAG65B,EAAEkikC,YAAY,EAAG5hL,EAAKhgiB,QAAQn6Y,IAC7D,KAAU,IAAJA,IAAaA,EAAG65B,EAAEkikC,YAAY,EAAG,EACxC,CAGF,IAAIhimC,EAAI,EAAGA,EAAI6lmC,EAAInD,UAAUtkmC,SAAU4B,EAGtC,IAFAog7B,EAAOylL,EAAInD,UAAU1imC,IAEbgG,KAAO,GAAKo66B,EAAKp66B,KAAO,KAC/B,GAAIy0lC,IAAW7luB,OAAOoB,SAASoqjB,EAAKhgiB,SACnCggiB,EAAKhgiB,QAAQn9Y,KAAK68B,EAAGA,EAAE3W,EAAG,EAAGi35B,EAAKp66B,MAElC85B,EAAE3W,GAAMi35B,EAAKp66B,KAAO,IAAO,OACrB,CACN,IAAIC,EAAI,EAAGA,EAAIm66B,EAAKp66B,OAAQC,EAAG65B,EAAEkikC,YAAY,EAAG5hL,EAAKhgiB,QAAQn6Y,IAC7D,KAAU,GAAJA,IAAYA,EAAG65B,EAAEkikC,YAAY,EAAG,EACvC,CAGF,GAAIvH,GACH36jC,EAAE3W,EAAI2W,EAAE1hC,YAGR,KAAM0hC,EAAE3W,EAAI2W,EAAE1hC,QAAQ0hC,EAAEkikC,YAAY,EAAG,GAExC,OAAOlikC,CACR,CApqBAnuB,EAAQk7B,QAAU,QA0rBlB,IAmDIs7jC,EAnDAzC,EAAO,GAGPf,GAAc,EAEdhB,EAAmB,mBACnBkE,EAAa,CAAC,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,KACxDzB,EAAe,mCACf2B,EAAS,CAEZK,YAAa,EACbJ,SAAU,EACVC,SAAU,EACVtD,WAAYA,EACZ0D,UAAW,EAEX1E,iBAAkBA,EAClB2E,qBAAsB,OACtBC,WAAY,EACZC,UAAW,EACXpC,aAAcA,EAEdqC,WAAY,CAAC,UAAU,UAAU,SAAS,YAAY,WAAW,SAUlE,SAAS1N,EAAIj7jC,GAEZ,IADA,IAAI8jC,EAAM,IAAIh8D,MAAMk4B,EAAE1hC,QACd4B,EAAI,EAAGA,EAAI8/B,EAAE1hC,SAAU4B,EAAG4jE,EAAI5jE,GAAKc,OAAOC,aAAa++B,EAAE9/B,IACjE,OAAO4jE,EAAIh/D,KAAK,GACjB,CAiCA,SAASyimC,EAAgBxyb,GACxB,OAAOszb,EAAQA,EAAMO,eAAe7zb,GAAW8zb,EAAS9zb,EACzD,CACA,IAAI+zb,EAAa,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAG7EC,EAAS,CAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAGvJC,EAAS,CAAG,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,OAE7J,SAASC,EAAW7glC,GAAK,IAAIoE,EAA0B,QAAjBpE,GAAG,EAAIA,GAAG,IAAsC,QAAjBA,GAAG,EAAIA,GAAG,IAAmB,OAA6B,KAApBoE,GAAG,GAAOA,GAAG,EAAIA,EAAS,CAKrI,IAHA,IAAI08kC,EAAyC,qBAAflygC,WAE1BmygC,EAAWD,EAAmB,IAAIlygC,WAAW,KAAQ,GACjD5tD,EAAI,EAAGA,EAAK,MAASA,EAAG+/jC,EAAS//jC,GAAK6/jC,EAAW7/jC,GAEzD,SAASggkC,EAAWhhlC,EAAG8I,GACtB,IAAIqjU,EAAM40wB,EAAa,IAAJ/glC,GACnB,OAAG8I,GAAK,EAAUqjU,IAAS,EAAErjU,GAC7BqjU,EAAOA,GAAO,EAAK40wB,EAAU/glC,GAAG,EAAG,KAChC8I,GAAK,GAAWqjU,IAAS,GAAGrjU,GAC/BqjU,EAAOA,GAAO,EAAK40wB,EAAU/glC,GAAG,GAAI,QACpB,GAAG8I,EACpB,CAGA,SAASm4kC,EAAYnz0B,EAAK9wN,GAAM,IAAIvkC,EAAQ,EAAHukC,EAAOr0D,EAAKq0D,IAAK,EAAI,OAAS8wN,EAAInlR,IAAI8vB,GAAK,EAAI,EAAIq1P,EAAInlR,EAAE,IAAI,MAAM8vB,EAAI,CAAM,CACtH,SAASyokC,EAAYpz0B,EAAK9wN,GAAM,IAAIvkC,EAAQ,EAAHukC,EAAOr0D,EAAKq0D,IAAK,EAAI,OAAS8wN,EAAInlR,IAAI8vB,GAAK,EAAI,EAAIq1P,EAAInlR,EAAE,IAAI,MAAM8vB,EAAI,CAAM,CAEtH,SAAS0okC,EAAYrz0B,EAAK9wN,GAAM,IAAIvkC,EAAQ,EAAHukC,EAAOr0D,EAAKq0D,IAAK,EAAI,OAAS8wN,EAAInlR,IAAI8vB,GAAK,EAAI,EAAIq1P,EAAInlR,EAAE,IAAI,MAAM8vB,EAAI,EAAM,CACtH,SAAS2okC,EAAYtz0B,EAAK9wN,GAAM,IAAIvkC,EAAQ,EAAHukC,EAAOr0D,EAAKq0D,IAAK,EAAI,OAAS8wN,EAAInlR,IAAI8vB,GAAK,EAAI,EAAIq1P,EAAInlR,EAAE,IAAI,MAAM8vB,EAAI,GAAM,CAGtH,SAAS4okC,EAAYvz0B,EAAK9wN,EAAIh9C,GAC7B,IAAIyY,EAAQ,EAAHukC,EAAOr0D,EAAKq0D,IAAK,EAAI77C,GAAM,GAAGnB,GAAG,EACtCmY,EAAI21P,EAAInlR,KAAO8vB,EACnB,OAAGzY,EAAI,EAAIyY,EAAUN,EAAIhX,GACzBgX,GAAK21P,EAAInlR,EAAE,IAAK,EAAE8vB,EACfzY,EAAI,GAAKyY,EAAUN,EAAIhX,GAC1BgX,GAAK21P,EAAInlR,EAAE,IAAK,GAAG8vB,EAChBzY,EAAI,GAAKyY,EAAUN,EAAIhX,GAC1BgX,GAAK21P,EAAInlR,EAAE,IAAK,GAAG8vB,GACRtX,GACZ,CAGA,SAASmglC,EAAaxz0B,EAAK9wN,EAAI7kC,GAAK,IAAIM,EAAS,EAALukC,EAAQr0D,EAAIq0D,IAAO,EAM9D,OALGvkC,GAAK,EAAGq1P,EAAInlR,KAAW,EAAJwvB,IAAUM,GAE/Bq1P,EAAInlR,IAAOwvB,GAAKM,EAAK,IACrBq1P,EAAInlR,EAAE,IAAQ,EAAFwvB,IAAS,EAAEM,GAEjBukC,EAAK,CACb,CAEA,SAASukiC,EAAazz0B,EAAK9wN,EAAI7kC,GAI9B,OAFAA,GAAO,EAAFA,KADQ,EAAL6kC,GAER8wN,EAFoB9wN,IAAO,IAEjB7kC,EACH6kC,EAAK,CACb,CACA,SAASwkiC,EAAa1z0B,EAAK9wN,EAAI7kC,GAC9B,IAAgBxvB,EAAIq0D,IAAO,EAI3B,OAHA7kC,IADa,EAAL6kC,EAER8wN,EAAInlR,IAAW,IAAJwvB,EAAUA,KAAO,EAC5B21P,EAAInlR,EAAE,GAAKwvB,EACJ6kC,EAAK,CACb,CACA,SAASykiC,EAAc3z0B,EAAK9wN,EAAI7kC,GAC/B,IAAgBxvB,EAAIq0D,IAAO,EAK3B,OAJA7kC,IADa,EAAL6kC,EAER8wN,EAAInlR,IAAW,IAAJwvB,EAAUA,KAAO,EAC5B21P,EAAInlR,EAAE,GAAS,IAAJwvB,EACX21P,EAAInlR,EAAE,GAAKwvB,IAAM,EACV6kC,EAAK,EACb,CAGA,SAAS2ipB,EAAQ72rB,EAAG62a,GACnB,IAAI7ia,EAAIhU,EAAE5yB,OAAQ6hC,EAAI,EAAE+E,EAAI6ia,EAAK,EAAE7ia,EAAI6ia,EAAK,EAAG7nc,EAAI,EACnD,GAAGglC,GAAK6ia,EAAI,OAAO72a,EACnB,GAAGypkC,GAAS,CACX,IAAI36jC,EAAI+6jC,GAAe56jC,GAEvB,GAAGjP,EAAE/tB,KAAM+tB,EAAE/tB,KAAK68B,QACb,KAAM9/B,EAAIgxB,EAAE5yB,SAAU4B,EAAG8/B,EAAE9/B,GAAKgxB,EAAEhxB,GACvC,OAAO8/B,CACR,CAAO,GAAGkpkC,EAAkB,CAC3B,IAAI5/kC,EAAI,IAAI0tE,WAAW72D,GACvB,GAAG7W,EAAEriB,IAAKqiB,EAAEriB,IAAIiqB,QACX,KAAMhxB,EAAIglC,IAAKhlC,EAAGopB,EAAEppB,GAAKgxB,EAAEhxB,GAChC,OAAOopB,CACR,CAEA,OADA4H,EAAE5yB,OAAS6hC,EACJjP,CACR,CAGA,SAAS44kC,EAAgB1hlC,GAExB,IADA,IAAI4X,EAAI,IAAIl4B,MAAMsgB,GACVloB,EAAI,EAAGA,EAAIkoB,IAAKloB,EAAG8/B,EAAE9/B,GAAK,EAClC,OAAO8/B,CACR,CAGA,SAAS+pkC,EAAWC,EAAO9xpB,EAAMk7P,GAChC,IAAIlwlB,EAAS,EAAGriF,EAAI,EAAG3gC,EAAI,EAAGiG,EAAI,EAAG8jmC,EAAQ,EAAG/kkC,EAAI8kkC,EAAM1rmC,OAEtD4rmC,EAAYhB,EAAmB,IAAInwgC,YAAY,IAAM+wgC,EAAgB,IACzE,IAAI5pmC,EAAI,EAAGA,EAAI,KAAMA,EAAGgqmC,EAAShqmC,GAAK,EAEtC,IAAIA,EAAIglC,EAAGhlC,EAAIkzsB,IAAOlzsB,EAAG8pmC,EAAM9pmC,GAAK,EACpCglC,EAAI8kkC,EAAM1rmC,OAEV,IAAI6rmC,EAAQjB,EAAmB,IAAInwgC,YAAY7zD,GAAK4kkC,EAAgB5kkC,GAGpE,IAAIhlC,EAAI,EAAGA,EAAIglC,IAAKhlC,EACnBgqmC,EAAUrpkC,EAAImpkC,EAAM9pmC,MACjBgjH,EAASriF,IAAGqiF,EAASriF,GACxBspkC,EAAMjqmC,GAAK,EAGZ,IADAgqmC,EAAS,GAAK,EACVhqmC,EAAI,EAAGA,GAAKgjH,IAAUhjH,EAAGgqmC,EAAShqmC,EAAE,IAAO+pmC,EAASA,EAAQC,EAAShqmC,EAAE,IAAK,EAChF,IAAIA,EAAI,EAAGA,EAAIglC,IAAKhlC,EAEP,IADZ+pmC,EAAQD,EAAM9pmC,MACCiqmC,EAAMjqmC,GAAKgqmC,EAASD,EAAM,OAI1C,IAAIG,EAAQ,EACZ,IAAIlqmC,EAAI,EAAGA,EAAIglC,IAAKhlC,EAEnB,GAAY,IADZkqmC,EAAQJ,EAAM9pmC,IAGb,IADA+pmC,EAAQb,EAAWe,EAAMjqmC,GAAIgjH,IAAUA,EAAOkn/B,EAC1CjkmC,GAAK,GAAI+8G,EAAS,EAAIkn/B,GAAU,EAAGjkmC,GAAG,IAAKA,EAC9C+xc,EAAK+xpB,EAAO9jmC,GAAGikmC,GAAiB,GAANA,EAAalqmC,GAAG,EAG7C,OAAOgjH,CACR,CAGA,IAAImn/B,EAAWnB,EAAmB,IAAInwgC,YAAY,KAAO+wgC,EAAgB,KACrEQ,EAAWpB,EAAmB,IAAInwgC,YAAY,IAAO+wgC,EAAgB,IACzE,IAAIZ,EAAkB,CACrB,IAAI,IAAIhpmC,EAAI,EAAGA,EAAI,MAAOA,EAAGmqmC,EAASnqmC,GAAK,EAC3C,IAAIA,EAAI,EAAGA,EAAI,KAAMA,EAAGoqmC,EAASpqmC,GAAK,CACvC,EACA,WAGC,IAFA,IAAIqqmC,EAA0B,GAC1BrqmC,EAAI,EACHA,EAAE,GAAIA,IAAKqqmC,EAAM1rmC,KAAK,GAC3BkrmC,EAAWQ,EAAOD,EAAU,IAE5B,IAAIN,EAA0B,GAE9B,IADA9pmC,EAAI,EACEA,GAAG,IAAKA,IAAK8pmC,EAAMnrmC,KAAK,GAC9B,KAAMqB,GAAG,IAAKA,IAAK8pmC,EAAMnrmC,KAAK,GAC9B,KAAMqB,GAAG,IAAKA,IAAK8pmC,EAAMnrmC,KAAK,GAC9B,KAAMqB,GAAG,IAAKA,IAAK8pmC,EAAMnrmC,KAAK,GAC9BkrmC,EAAWC,EAAOK,EAAU,IAC5B,CAbD,GAaK,IAAIG,EAA4B,WAGpC,IAFA,IAAIC,EAAYvB,EAAmB,IAAIlygC,WAAW,OAAU,GACxD7wF,EAAI,EAAGC,EAAI,EACTD,EAAI6imC,EAAO1qmC,OAAS,IAAK6H,EAC9B,KAAMC,EAAI4imC,EAAO7imC,EAAE,KAAMC,EAAGqkmC,EAAUrkmC,GAAKD,EAE5C,KAAKC,EAAI,QAASA,EAAGqkmC,EAAUrkmC,GAAK,GAEpC,IAAIskmC,EAAYxB,EAAmB,IAAIlygC,WAAW,KAAS,GAC3D,IAAI7wF,EAAI,EAAGC,EAAI,EAAGD,EAAI4imC,EAAOzqmC,OAAS,IAAK6H,EAC1C,KAAMC,EAAI2imC,EAAO5imC,EAAE,KAAMC,EAAGskmC,EAAUtkmC,GAAKD,EAgG5C,OAAO,SAAqBy0C,EAAMkpB,GACjC,OAAGlpB,EAAKt8C,OAAS,EA9FlB,SAAsBs8C,EAAMkpB,GAE3B,IADA,IAAI6miC,EAAO,EACLA,EAAO/vjC,EAAKt8C,QAAQ,CACzB,IAAI4mC,EAAIpkC,KAAK8mB,IAAI,MAAQgzB,EAAKt8C,OAASqsmC,GACnC55lC,EAAI45lC,EAAOzlkC,GAAK0V,EAAKt8C,OAIzB,IAHAwlE,EAAIo+hC,YAAY,GAAInxlC,GACpB+yD,EAAIo+hC,YAAY,EAAGh9jC,GACnB4+B,EAAIo+hC,YAAY,EAAU,OAALh9jC,GACfA,KAAM,GAAG4+B,EAAIA,EAAIz6C,KAAOuxB,EAAK+vjC,IACpC,CACA,OAAO7miC,EAAIz6C,CACZ,CAmF4BuhlC,CAAahwjC,EAAMkpB,GAhF/C,SAA0BlpB,EAAMkpB,GAI/B,IAHA,IAAIsB,EAAK,EACLuliC,EAAO,EACPE,EAAQ3B,EAAmB,IAAInwgC,YAAY,OAAU,GACnD4xgC,EAAO/vjC,EAAKt8C,QAAQ,CACzB,IAAI4mC,EAA8BpkC,KAAK8mB,IAAI,MAAQgzB,EAAKt8C,OAASqsmC,GAGjE,GAAGzlkC,EAAI,GAAP,CAMC,IAJQ,GADRkgC,EAAKskiC,EAAa5liC,EAAKsB,KAAQuliC,EAAOzlkC,GAAK0V,EAAKt8C,YACrC8mE,GAAM,GAAU,EAALA,IACtBtB,EAAIz6C,EAAK+7C,EAAK,EAAK,EACnBtB,EAAIo+hC,YAAY,EAAGh9jC,GACnB4+B,EAAIo+hC,YAAY,EAAU,OAALh9jC,GACfA,KAAM,GAAG4+B,EAAIA,EAAIz6C,KAAOuxB,EAAK+vjC,KACnCvliC,EAAa,EAARtB,EAAIz6C,CAEV,KATA,CAWA+7C,EAAKskiC,EAAa5liC,EAAKsB,KAAQuliC,EAAOzlkC,GAAK0V,EAAKt8C,QAAU,GAE1D,IADA,IAAI+I,EAAO,EACL69B,KAAM,GAAG,CACd,IAAIhzB,EAAI0oC,EAAK+vjC,GAGTjjmC,GAAS,EAAGojmC,EAAO,EAEvB,IAAIpjmC,EAAQmjmC,EAJZxjmC,EAA2B,OAAlBA,GAAQ,EAAK6K,QAKrBxK,IAAgB,MAAPijmC,GACEA,IAAMjjmC,GAAS,OACvBA,EAAQijmC,GAAM,KAAM/vjC,EAAKlzC,EAAQojmC,IAASlwjC,EAAK+vjC,EAAOG,IAASA,EAAO,OAAOA,EAGjF,GAAGA,EAAO,EAAG,EAEZ54lC,EAAIw4lC,EAAUI,KACN,GAAI1liC,EAAKwkiC,EAAa9liC,EAAKsB,EAAI+jiC,EAASj3lC,EAAE,IAAI,GAAK,GAE1D03lC,EAAa9liC,EAAKsB,EAAI,GAEtBwkiC,EAAa9liC,EADbsB,GAAM,EACgB+jiC,EAASj3lC,EAAE,KAAK,GACtCkzD,GAAM,GAEP,IAAI2liC,EAAU74lC,EAAI,EAAK,EAAMA,EAAI,GAAI,EAClC64lC,EAAS,IACXlB,EAAc/liC,EAAKsB,EAAI0liC,EAAO/B,EAAO72lC,IACrCkzD,GAAM2liC,GAGP74lC,EAAIu4lC,EAAUE,EAAOjjmC,GACrB09D,EAAKwkiC,EAAa9liC,EAAKsB,EAAI+jiC,EAASj3lC,IAAI,GACxCkzD,GAAM,EAEN,IAAI4liC,EAAS94lC,EAAI,EAAI,EAAKA,EAAE,GAAI,EAC7B84lC,EAAS,IACXnB,EAAc/liC,EAAKsB,EAAIuliC,EAAOjjmC,EAAQshmC,EAAO92lC,IAC7CkzD,GAAM4liC,GAEP,IAAI,IAAI5hkC,EAAI,EAAGA,EAAI0hkC,IAAQ1hkC,EAC1ByhkC,EAAMxjmC,GAAe,MAAPsjmC,EACdtjmC,EAAoC,OAA3BA,GAAQ,EAAKuzC,EAAK+vjC,MACzBA,EAEHzlkC,GAAI4lkC,EAAO,CACZ,MAEI54lC,GAAK,IAAKA,GAAQ,GAChBkzD,EAAKukiC,EAAa7liC,EAAKsB,EAAI,GAChCA,EAAKwkiC,EAAa9liC,EAAKsB,EAAI+jiC,EAASj3lC,IACpC24lC,EAAMxjmC,GAAe,MAAPsjmC,IACZA,CAEJ,CAEAvliC,EAAKwkiC,EAAa9liC,EAAKsB,EAAI,GAAK,CAzDhC,CA0DD,CAEA,OADAtB,EAAIz6C,GAAM+7C,EAAK,GAAG,EAAG,EACdtB,EAAIz6C,CACZ,CAGQ4hlC,CAAiBrwjC,EAAMkpB,EAC/B,CACD,CA9GqC,GAgHrC,SAAS+kiC,EAASjujC,GACjB,IAAIs7O,EAAM2v0B,GAAQ,GAAG/kmC,KAAK2/B,MAAkB,IAAZma,EAAKt8C,SACjC4/C,EAAMssjC,EAAY5vjC,EAAMs7O,GAC5B,OAAOA,EAAIh0R,MAAM,EAAGg8C,EACrB,CAGA,IAAIgtjC,EAAWhC,EAAmB,IAAInwgC,YAAY,OAAS+wgC,EAAgB,OACvEqB,EAAWjC,EAAmB,IAAInwgC,YAAY,OAAS+wgC,EAAgB,OACvEsB,EAAWlC,EAAmB,IAAInwgC,YAAY,KAAS+wgC,EAAgB,KACvEuB,EAAY,EAAGC,EAAY,EAG/B,SAASr5e,GAAIr3kB,EAAM+vjC,GAElB,IAAIY,EAAQhC,EAAY3ujC,EAAM+vjC,GAAQ,IAClCa,EAASjC,EAAY3ujC,EADkB+vjC,GAAQ,GACZ,EACnCc,EAvQL,SAAqBv10B,EAAK9wN,GAAM,IAAIvkC,EAAQ,EAAHukC,EAAOr0D,EAAKq0D,IAAK,EAAI,OAAS8wN,EAAInlR,IAAI8vB,GAAK,EAAI,EAAIq1P,EAAInlR,EAAE,IAAI,MAAM8vB,EAAI,EAAM,CAuQxG6qkC,CAAY9wjC,EADiB+vjC,GAAQ,GACX,EAAGA,GAAQ,EAUlD,IATA,IAAI9pkC,EAAI,EAGJmpkC,EAAQd,EAAmB,IAAIlygC,WAAW,IAAM8ygC,EAAgB,IAChEK,EAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChEjn/B,EAAS,EACTgn/B,EAAYhB,EAAmB,IAAIlygC,WAAW,GAAK8ygC,EAAgB,GACnE6B,EAAYzC,EAAmB,IAAIlygC,WAAW,GAAK8ygC,EAAgB,GACnE5kkC,EAAI8kkC,EAAM1rmC,OACN4B,EAAI,EAAGA,EAAIurmC,IAAUvrmC,EAC5B8pmC,EAAMlB,EAAW5omC,IAAM2gC,EAAIyokC,EAAY1ujC,EAAM+vjC,GAC1Czn/B,EAASriF,IAAGqiF,EAASriF,GACxBqpkC,EAASrpkC,KACT8pkC,GAAQ,EAIT,IAAIV,EAAQ,EAEZ,IADAC,EAAS,GAAK,EACVhqmC,EAAI,EAAGA,GAAKgjH,IAAUhjH,EAAGyrmC,EAAUzrmC,GAAK+pmC,EAASA,EAAQC,EAAShqmC,EAAE,IAAK,EAC7E,IAAIA,EAAI,EAAGA,EAAIglC,IAAKhlC,EAA4B,IAArB+pmC,EAAQD,EAAM9pmC,MAAUiqmC,EAAMjqmC,GAAKyrmC,EAAU1B,MAExE,IAAIG,EAAQ,EACZ,IAAIlqmC,EAAI,EAAGA,EAAIglC,IAAKhlC,EAEnB,GAAY,IADZkqmC,EAAQJ,EAAM9pmC,IACC,CACd+pmC,EAAQd,EAASgB,EAAMjqmC,KAAM,EAAEkqmC,EAC/B,IAAI,IAAIjkmC,GAAK,GAAI,EAAEikmC,GAAQ,EAAGjkmC,GAAG,IAAKA,EAAGilmC,EAASnB,EAAO9jmC,GAAGikmC,GAAiB,EAANA,EAAYlqmC,GAAG,CACvF,CAID,IAAI0rmC,EAA2B,GAE/B,IADA1o/B,EAAS,EACH0o/B,EAAOttmC,OAASitmC,EAAQC,GAG7B,OADAb,GAAgB,GADhBV,EAAQmB,EAAS5B,EAAY5ujC,EAAM+vjC,KAE3BV,KAAW,GAClB,KAAK,GAGJ,IAFAppkC,EAAI,EAAIwokC,EAAYzujC,EAAM+vjC,GAAOA,GAAQ,EACzCV,EAAQ2B,EAAOA,EAAOttmC,OAAS,GACzBuiC,KAAM,GAAG+qkC,EAAO/smC,KAAKormC,GAC3B,MACD,KAAK,GAEJ,IADAppkC,EAAI,EAAIyokC,EAAY1ujC,EAAM+vjC,GAAOA,GAAQ,EACnC9pkC,KAAM,GAAG+qkC,EAAO/smC,KAAK,GAC3B,MACD,KAAK,GAEJ,IADAgiC,EAAI,GAAK2okC,EAAY5ujC,EAAM+vjC,GAAOA,GAAQ,EACpC9pkC,KAAO,GAAG+qkC,EAAO/smC,KAAK,GAC5B,MACD,QACC+smC,EAAO/smC,KAAKormC,GACT/m/B,EAAS+m/B,IAAO/m/B,EAAS+m/B,GAM/B,IAAIntlC,EAAK8ulC,EAAO1pmC,MAAM,EAAGqpmC,GAAQxulC,EAAK6ulC,EAAO1pmC,MAAMqpmC,GACnD,IAAIrrmC,EAAIqrmC,EAAOrrmC,EAAI,MAAOA,EAAG4c,EAAG5c,GAAK,EACrC,IAAIA,EAAIsrmC,EAAQtrmC,EAAI,KAAMA,EAAG6c,EAAG7c,GAAK,EAGrC,OAFAmrmC,EAAYtB,EAAWjtlC,EAAIoulC,EAAU,KACrCI,EAAYvB,EAAWhtlC,EAAIoulC,EAAU,IAC9BR,CACR,CAiFA,SAASkB,GAAS92b,EAAS+2b,GAC1B,IACIhoiC,EAhFL,SAAiBlpB,EAAMkxjC,GAEtB,GAAc,GAAXlxjC,EAAK,MAAuB,EAAVA,EAAK,IAAa,MAAO,CAACkgjC,GAAYgR,GAAM,GAajE,IAVA,IAAInB,EAAO,EAGP92iC,EAAS,EAETyziC,EAASvM,GAAe+Q,GAAa,GAAG,IACxCC,EAAO,EACPC,EAAK1E,EAAOhpmC,SAAS,EACrB2tmC,EAAY,EAAGC,EAAY,EAEX,IAAN,EAAPr4iC,IAEN,GADAA,EAASy1iC,EAAY1ujC,EAAM+vjC,GAAOA,GAAQ,EACtC92iC,IAAW,GAAM,EAoBrB,IARWA,GAAU,GAAM,GAE1Bo4iC,EAAY,EAAGC,EAAY,IAG3BvB,EAAO14e,GAAIr3kB,EAAM+vjC,GACjBsB,EAAYZ,EAAWa,EAAYZ,KAE5B,EACHQ,GAAQE,EAAKD,EAAO,QAAkDC,GAAxC1E,EAASv/Y,EAAQu/Y,EAAQyE,EAAO,QAAoBztmC,QAEtF,IAAIqlI,EAAO8l+B,EAAY7ujC,EAAM+vjC,EAAMsB,GAC/BhwkC,EAAQ43B,IAAS,GAAM,EAAIw2iC,EAAS1m+B,GAAQun+B,EAASvn+B,GAGzD,GAFAgn+B,GAAe,GAAP1ukC,EAEiB,MAFNA,KAAU,KAEjB,EAAG,KAAaqrkC,EAAOyE,KAAU9vkC,MACxC,IAAW,KAARA,EAAa,MAGpB,IAAI8ukC,GADJ9ukC,GAAQ,KACa,EAAK,EAAMA,EAAK,GAAI,EAAO8ukC,EAAS,IAAGA,EAAS,GACrE,IAAIzI,EAAMyJ,EAAOhD,EAAO9skC,GAErB8ukC,EAAS,IACXzI,GAAOmH,EAAY7ujC,EAAM+vjC,EAAMI,GAC/BJ,GAAQI,GAITpn+B,EAAO8l+B,EAAY7ujC,EAAM+vjC,EAAMuB,GAE/BvB,GAAe,IADf1ukC,EAAQ43B,IAAS,GAAM,EAAIy2iC,EAAS3m+B,GAAQwn+B,EAASxn+B,IAErD,IAAIqn+B,GADe/ukC,KAAU,GACR,EAAI,EAAKA,EAAK,GAAI,EACnC2jW,EAAMopuB,EAAO/skC,GASjB,IAPG+ukC,EAAS,IACXpruB,GAAO6puB,EAAY7ujC,EAAM+vjC,EAAMK,GAC/BL,GAAQK,IAILc,GAAOE,EAAK1J,IAA4C0J,GAArC1E,EAASv/Y,EAAQu/Y,EAAQhF,EAAM,MAAkBhkmC,QAClEytmC,EAAOzJ,GAAOgF,EAAOyE,GAAQzE,EAAOyE,EAAOnsuB,KAAQmsuB,CAC1D,CACD,KAvDA,CAEW,EAAPpB,IAAUA,GAAQ,GAAU,EAALA,IAE1B,IAAI5iqB,EAAKntZ,EAAK+vjC,IAAO,GAAK/vjC,EAAgB,GAAV+vjC,IAAO,KAAO,EAG9C,GAFAA,GAAQ,GAEL5iqB,EAAK,EAEP,KADI+jqB,GAAOE,EAAKD,EAAOhkqB,IAA2CikqB,GAArC1E,EAASv/Y,EAAQu/Y,EAAQyE,EAAOhkqB,IAAiBzpc,QACxEypc,KAAO,GAAKu/pB,EAAOyE,KAAUnxjC,EAAK+vjC,IAAO,GAAIA,GAAQ,CAU7D,CAsCD,OAAGmB,EAAY,CAACxE,EAASqD,EAAK,IAAK,GAC5B,CAACrD,EAAOplmC,MAAM,EAAG6pmC,GAAQpB,EAAK,IAAK,EAC3C,CAIWwB,CADCp3b,EAAQ7yqB,MAAM6yqB,EAAQ1rpB,GAAG,GACZyilC,GAExB,OADA/2b,EAAQ1rpB,GAAKy6C,EAAI,GACVA,EAAI,EACZ,CAEA,SAASsoiC,GAAcC,EAAK99jC,GAC3B,IAAG89jC,EACE,MAAM,IAAIp8lC,MAAMs+B,GADW,qBAAZ8rE,SAAyBA,QAAQhgG,MAAMk0B,EAE5D,CAEA,SAASm0jC,GAAUpiL,EAAmBvi7B,GACrC,IAAI83R,EAAyByqpB,EAC7B8hL,GAAUvs0B,EAAM,GAEhB,IACI71P,EAAI,CACP4ikC,UAFgC,GAGhCC,UAHkE,IAKnEC,EAAS9ikC,EAAG,CAAEn9B,KAAM9E,EAAQ8E,OAI5B,IADA,IAAI3C,EAAI21R,EAAKv3R,OAAS,GACJ,IAAXu3R,EAAK31R,IAA2B,IAAb21R,EAAK31R,EAAE,IAA2B,GAAb21R,EAAK31R,EAAE,IAA2B,GAAb21R,EAAK31R,EAAE,KAAeA,GAAK,KAAKA,EACpG21R,EAAKxsQ,EAAInpB,EAAI,EAGb21R,EAAKxsQ,GAAK,EACV,IAAI25kC,EAAOnt0B,EAAKws0B,WAAW,GAC3Bxs0B,EAAKxsQ,GAAK,EACV,IAAI69kC,EAAWrx0B,EAAKws0B,WAAW,GAK/B,IAFAxs0B,EAAKxsQ,EAAI69kC,EAELhnmC,EAAI,EAAGA,EAAI8imC,IAAQ9imC,EAAG,CAEzB21R,EAAKxsQ,GAAK,GACV,IAAIijlC,EAAMz20B,EAAKws0B,WAAW,GACtByJ,EAAMj20B,EAAKws0B,WAAW,GACtB4C,EAAUpv0B,EAAKws0B,WAAW,GAC1BkK,EAAO120B,EAAKws0B,WAAW,GACvBmK,EAAO320B,EAAKws0B,WAAW,GAC3Bxs0B,EAAKxsQ,GAAK,EACV,IAAI/jB,EAASuwR,EAAKws0B,WAAW,GACzBoK,EAAKtK,EAAyBts0B,EAAK3zR,MAAM2zR,EAAKxsQ,EAAE47kC,EAASpv0B,EAAKxsQ,EAAE47kC,EAAQsH,IAC5E120B,EAAKxsQ,GAAK47kC,EAAUsH,EAAOC,EAE3B,IAAItnkC,EAAI2wP,EAAKxsQ,EACbwsQ,EAAKxsQ,EAAI/jB,EAAS,EAClBonmC,GAAiB720B,EAAMy20B,EAAKR,EAAK9rkC,EAAGyskC,GACpC520B,EAAKxsQ,EAAI6b,CACV,CACA,OAAOlF,CACR,CAIA,SAAS0skC,GAAiB720B,EAAiBy20B,EAAgBR,EAAgB9rkC,EAAoByskC,GAE9F520B,EAAKxsQ,GAAK,EACV,IAAIghF,EAAQwrL,EAAKws0B,WAAW,GACxBsK,EAAO920B,EAAKws0B,WAAW,GACvBh/kC,EA9sCL,SAAwB6yQ,GACvB,IAAI+r0B,EAA0B,MAApB/r0B,EAAIms0B,WAAW,GACrB18M,EAA0B,MAApBzvnB,EAAIms0B,WAAW,GACrBr5kC,EAAM,IAAI4Y,KACV1vB,EAAU,GAANyz4B,EACJ503B,EAAU,IADM403B,KAAS,GACTA,KAAS,EAC7B383B,EAAI093B,gBAAgB,GACpB193B,EAAIq9D,YAAYs/zB,EAAM,MACtB383B,EAAIo9D,SAASr1D,EAAE,GACf/H,EAAIm8D,QAAQjzE,GACZ,IAAIgvB,EAAU,GAAN+gkC,EACJ9hkC,EAAU,IADM8hkC,KAAS,GAK7B,OAJoBA,KAAS,EAC7Bj5kC,EAAIk8D,SAAS+8gC,GACbj5kC,EAAIw93B,WAAWrm3B,GACfnX,EAAIy93B,WAAWvl3B,GAAG,GACXlY,CACR,CA8rCY4jlC,CAAe/20B,GAE1B,GAAW,KAARxrL,EAAgB,MAAM,IAAIp6F,MAAM,8BACvB4lR,EAAKws0B,WAAW,GAQb,IARf,IACIwK,EAAOh30B,EAAKws0B,WAAW,GACvByK,EAAOj30B,EAAKws0B,WAAW,GAEvB4C,EAAUpv0B,EAAKws0B,WAAW,GAC1BkK,EAAO120B,EAAKws0B,WAAW,GAGvBl5lC,EAAO,GAAYjJ,EAAI,EAAGA,EAAI+kmC,IAAW/kmC,EAAGiJ,GAAQnI,OAAOC,aAAa40R,EAAKA,EAAKxsQ,MACtF,GAAGkjlC,EAAM,CACR,IAAI11pB,EAAKsrpB,EAAyBts0B,EAAK3zR,MAAM2zR,EAAKxsQ,EAAGwsQ,EAAKxsQ,EAAIkjlC,KAC1D11pB,EAAG,QAAS,CAAC,GAAG5gb,KAAI5S,EAAOwzb,EAAG,OAAQ5gb,MACrCw2kC,GAAI,CAAC,GAAG,QAAS,CAAC,GAAGx2kC,KAAI5S,EAAOoplC,EAAG,OAAQx2kC,GACjD,CACA4/P,EAAKxsQ,GAAKkjlC,EAKV,IAAI3xjC,EAAOi7O,EAAK3zR,MAAM2zR,EAAKxsQ,EAAGwsQ,EAAKxsQ,EAAIwjlC,GACvC,OAAOF,GACN,KAAK,EAAG/xjC,EA1hBV,SAAyBm6nB,EAAS+2b,GACjC,IAAIzD,EAAO,OAAOwD,GAAS92b,EAAS+2b,GACpC,IACIiB,EAAU,IAAIC,EADD3E,EAAM2E,YAEnBlpiC,EAAMipiC,EAAQE,cAAcl4b,EAAQ7yqB,MAAM6yqB,EAAQ1rpB,GAAI0jlC,EAAQG,kBAElE,OADAn4b,EAAQ1rpB,GAAK0jlC,EAAQI,UACdrpiC,CACR,CAmhBiBspiC,CAAgBv30B,EAAMi30B,GAAO,MAC5C,KAAK,EAAG,MACR,QAAS,MAAM,IAAI78lC,MAAM,sCAAwC08lC,GAIlE,IAAIN,GAAM,EACC,EAARhigC,IAEU,WADJwrL,EAAKws0B,WAAW,KACUxs0B,EAAKws0B,WAAW,GAAIgK,GAAM,GAC5DQ,EAAOh30B,EAAKws0B,WAAW,GACvByK,EAAOj30B,EAAKws0B,WAAW,IAGrBwK,GAAQP,GAAKF,GAAcC,EAAK,wBAA0BC,EAAM,OAASO,GACzEC,GAAQhB,GAAKM,GAAcC,EAAK,0BAA4BP,EAAM,OAASgB,GAG9EO,GAAQrtkC,EAAG72B,EAAMyxC,EAAM,CAAC0yjC,QAAQ,EAAMr3kC,GAAI5S,GAC3C,CA0GA,IAAIkqlC,GAAkB,CACrB,IAAO,YACP,IAAO,WAEP,IAAO,YACP,IAAO,aACP,IAAO,YAEP,IAAO,oBACP,KAAQ,iCACR,QAAW,4BAGZ,SAAS3G,GAAiB7/lB,EAAiBh9D,GAC1C,GAAGg9D,EAAGvhB,MAAO,OAAOuhB,EAAGvhB,MAEvB,IAAItrH,EAAM6sI,EAAG59f,MAAQ,GAAI4nB,EAAImpW,EAAIxyX,MAAM,eACvC,OAAGqpB,GAAKw8kC,GAAex8kC,EAAE,KAEtBg5a,IACFh5a,GAAKmpW,EAAM6vE,GAAIric,MAAM,uBACb6lmC,GAAex8kC,EAAE,IAJWw8kC,GAAex8kC,EAAE,IAO/C,0BACR,CAGA,SAAS+1kC,GAAgBjF,GAGxB,IAFA,IAAIjnjC,EAAO6/iC,GAAcoH,GACrB7hkC,EAAI,GACA9/B,EAAI,EAAGA,EAAI06C,EAAKt8C,OAAQ4B,GAAI,GAAI8/B,EAAEnhC,KAAK+7C,EAAK14C,MAAMhC,EAAGA,EAAE,KAC/D,OAAO8/B,EAAEl7B,KAAK,QAAU,MACzB,CAgBA,SAAS+hmC,GAAuB3ulC,GAC/B,IAAIs1lC,EAAUt1lC,EAAK5W,QAAQ,2CAA2C,SAAS2+B,GAC9E,IAAIY,EAAIZ,EAAEn+B,WAAW,GAAG0J,SAAS,IAAIivB,cACrC,MAAO,KAAmB,GAAZoG,EAAEviC,OAAc,IAAMuiC,EAAIA,EACzC,IAIwB,OAFxB2skC,EAAUA,EAAQlsmC,QAAQ,OAAQ,OAAOA,QAAQ,QAAS,QAE/CinB,OAAO,KAAYillC,EAAU,MAAQA,EAAQtrmC,MAAM,IAI9D,IADA,IAAI89B,EAAsB,GAAIz3B,GAF9BilmC,EAAUA,EAAQlsmC,QAAQ,aAAc,OAAOA,QAAQ,SAAU,SAASA,QAAQ,gBAAiB,UAErDiH,MAAM,QAC5CymG,EAAK,EAAGA,EAAKzmG,EAAMjK,SAAU0wG,EAAI,CACxC,IAAIl+F,EAAMvI,EAAMymG,GAChB,GAAiB,GAAdl+F,EAAIxS,OACP,IAAI,IAAI4B,EAAI,EAAGA,EAAI4Q,EAAIxS,QAAS,CAC/B,IAAI2D,EAAM,GACN88I,EAAMjuI,EAAI5O,MAAMhC,EAAGA,EAAI+B,GACD,KAAvB88I,EAAIx2H,OAAOtmB,EAAM,GAAWA,IACA,KAAvB88I,EAAIx2H,OAAOtmB,EAAM,GAAWA,GAAO,EACZ,KAAvB88I,EAAIx2H,OAAOtmB,EAAM,KAAWA,GAAO,GAC3C88I,EAAMjuI,EAAI5O,MAAMhC,EAAGA,EAAI+B,IACvB/B,GAAK+B,GACE6O,EAAIxS,SAAQygJ,GAAO,KAC1B/+G,EAAEnhC,KAAKkgJ,EACR,MAXsB/+G,EAAEnhC,KAAK,GAY9B,CAEA,OAAOmhC,EAAEl7B,KAAK,OACf,CAiBA,SAASm+lC,GAAW8C,EAAsBnrjC,EAAwB/3C,GAGjE,IAFA,IAAsC4qmC,EAAlCtrb,EAAQ,GAAIurb,EAAM,GAAIlonB,EAAQ,GAC9Bz8a,EAAK,EACJA,EAAK,KAAMA,EAAI,CACnB,IAAIxmE,EAAOq4C,EAAKmuB,GAChB,IAAIxmE,GAAQA,EAAKmF,MAAM,SAAU,MACjC,IAAIqpB,EAAIxuB,EAAKmF,MAAM,wBACnB,GAAGqpB,EAAG,OAAOA,EAAE,GAAG/hB,eACjB,IAAK,mBAAoBmzqB,EAAQpxpB,EAAE,GAAG3vB,OAAQ,MAC9C,IAAK,eAAgBokf,EAAQz0d,EAAE,GAAG3vB,OAAQ,MAC1C,IAAK,4BAA6BssmC,EAAM38kC,EAAE,GAAG3vB,OAE/C,CAEA,SADE2nE,EACK2kiC,EAAI1+lC,eACV,IAAK,SAAUy+lC,EAAQzS,GAAIN,GAAc9/iC,EAAK14C,MAAM6mE,GAAIjkE,KAAK,MAAO,MACpE,IAAK,mBAAoB2omC,EAhC3B,SAAgC7yjC,GAI/B,IAHA,IAAI5a,EAAI,GAGA+oC,EAAK,EAAGA,EAAKnuB,EAAKt8C,SAAUyqE,EAAI,CAEvC,IADA,IAAIxmE,EAAOq4C,EAAKmuB,GACVA,GAAMnuB,EAAKt8C,QAA0C,KAAhCiE,EAAKgmB,OAAOhmB,EAAKjE,OAAS,IAAWiE,EAAOA,EAAKL,MAAM,EAAGK,EAAKjE,OAAS,GAAKs8C,IAAOmuB,GAC/G/oC,EAAEnhC,KAAK0D,EACR,CAGA,IAAI,IAAImr0B,EAAK,EAAGA,EAAK1tyB,EAAE1hC,SAAUov0B,EAAI1tyB,EAAE0tyB,GAAM1tyB,EAAE0tyB,GAAIps0B,QAAQ,sBAAsB,SAASy8lC,GAAM,OAAO/8lC,OAAOC,aAAaonB,SAAS01kC,EAAG77lC,MAAM,GAAI,IAAM,IACvJ,OAAO84lC,GAAIh7jC,EAAEl7B,KAAK,QACnB,CAmBmC6omC,CAAuB/yjC,EAAK14C,MAAM6mE,IAAM,MACzE,QAAS,MAAM,IAAI94D,MAAM,yCAA2Cy9lC,GAErE,IAAIptL,EAAO+sL,GAAQtH,EAAK5jb,EAAMjgrB,MAAMW,EAAKvE,QAASmvmC,EAAO,CAACH,QAAQ,IAC/D9nnB,IAAO86b,EAAK96b,MAAQA,EACxB,CAgGA,SAAS6nnB,GAAQtH,EAAsB58lC,EAAiBm3Y,EAAuB5/S,GAC9E,IAAI4sgC,EAAS5sgC,GAAQA,EAAK4sgC,OACtBA,GAAQxK,EAASiD,GACrB,IAAIzlL,GAAQgtL,GAAUxL,GAAI9/hC,KAAK+jiC,EAAK58lC,GACpC,IAAIm36B,EAAM,CACT,IAAIstL,EAAmB7H,EAAIlD,UAAU,GAClC15lC,EAAKjH,MAAM,EAAG0rmC,EAAMtvmC,SAAWsvmC,EAAOA,EAAQzkmC,GAE1B,KAAnBykmC,EAAM1rmC,OAAO,KAAW0rmC,GAAS,KACpCA,GAASA,EAAQzkmC,GAAM7H,QAAQ,KAAK,MAErCg/6B,EAAQ,CAACn36B,KAAMg6O,EAASh6O,GAAOpG,KAAM,GACrCgjmC,EAAInD,UAAU/jmC,KAAKyh7B,GACnBylL,EAAIlD,UAAUhkmC,KAAK+umC,GACfN,GAAQxL,GAAIruI,MAAMo6I,OAAO9H,EAC9B,CASA,OAPAzlL,EAAKhgiB,QAAWA,EAChBggiB,EAAKp66B,KAAOo6Y,EAAUA,EAAQhiZ,OAAS,EACpCoiG,IACCA,EAAKslgC,QAAO1lL,EAAK6kL,MAAQzkgC,EAAKslgC,OAC9BtlgC,EAAKzqE,KAAIqq5B,EAAKrq5B,GAAKyqE,EAAKzqE,IACxByqE,EAAK6pP,KAAI+1lB,EAAK/1lB,GAAK7pP,EAAK6pP,KAErB+1lB,CACR,CA+CA,OArBAzu6B,EAAQmwD,KA9+BR,SAAc+jiC,EAAsBtklC,GACnC,IAAIqslC,EAAgC/H,EAAIlD,UAAUt7lC,KAAI,SAASlB,GAAK,OAAOA,EAAEo0B,aAAe,IACxFszkC,EAA4BD,EAAYvmmC,KAAI,SAASlB,GAAK,IAAIC,EAAID,EAAEkC,MAAM,KAAM,OAAOjC,EAAEA,EAAEhI,QAAyB,KAAf+H,EAAEnE,OAAO,GAAY,EAAI,GAAK,IACnIkE,GAAgB,EACM,KAAvBqb,EAAK3f,WAAW,IAAuBsE,GAAI,EAAMqb,EAAOqslC,EAAY,GAAG5rmC,MAAM,GAAI,GAAKuf,GACpFrb,GAA2B,IAAvBqb,EAAK9f,QAAQ,KACtB,IAAIqsmC,EAAoBvslC,EAAKgZ,cACzBoG,GAAqB,IAANz6B,EAAa0nmC,EAAYnsmC,QAAQqsmC,GAAUD,EAAQpsmC,QAAQqsmC,GAC9E,IAAU,IAAPntkC,EAAU,OAAOklkC,EAAInD,UAAU/hkC,GAElC,IAAI9P,GAAKi9kC,EAAOtmmC,MAAM4zlC,IAGtB,IAFA0S,EAASA,EAAO1smC,QAAQ+5lC,GAAK,IAC1BtqkC,IAAGi9kC,EAASA,EAAO1smC,QAAQg6lC,GAAK,MAC/Bz6jC,EAAI,EAAGA,EAAIitkC,EAAYxvmC,SAAUuiC,EAAG,CACvC,IAAI9P,EAAI+8kC,EAAYjtkC,GAAGv/B,QAAQg6lC,GAAK,KAAOwS,EAAYjtkC,IAAIv/B,QAAQ+5lC,GAAK,KAAO2S,EAAQ,OAAOjI,EAAInD,UAAU/hkC,GAC5G,IAAI9P,EAAIg9kC,EAAQltkC,GAAGv/B,QAAQg6lC,GAAK,KAAOyS,EAAQltkC,IAAIv/B,QAAQ+5lC,GAAK,KAAO2S,EAAQ,OAAOjI,EAAInD,UAAU/hkC,EACrG,CACA,OAAO,IACR,EA69BAhvB,EAAQqiX,KA1vCR,SAAcr+F,EAA0B93R,GACvC,IAAIgF,EAAOhF,GAAWA,EAAQgF,KAI9B,OAHIA,GACA43lC,IAAW7luB,OAAOoB,SAASrgG,KAAO9yR,EAAO,UAEtCA,GAAQ,UACd,IAAK,OAA2F,OAXlG,SAAmBogP,EAAqBplP,GAEvC,OADA0kmC,IACOz9lC,EAAMgyR,EAAGi30B,aAAa9q3B,GAAWplP,EACzC,CAQyGmwmC,CAAUr40B,EAAM93R,GACvH,IAAK,SAAiH,OAAOiH,EAAMg2lC,GAAIN,GAAc7k0B,IAAQ93R,GAC7J,IAAK,SAAkG,OAAOiH,EAAMg2lC,GAAInl0B,GAAO93R,GAEhI,OAAOiH,EAAkE6wR,EAAM93R,EAChF,EAgvCA8T,EAAQ7M,MAAQA,EAChB6M,EAAQ6iX,MAv7BR,SAAeqxuB,EAAsBhomC,GACpC,IAAIiiC,EAAIy4W,EAAOsttB,EAAKhomC,GACpB,OAAOA,GAAWA,EAAQgF,MAAQ,UACjC,IAAK,OAAmE,OAA3D0/lC,IAAUzr0B,EAAGm30B,cAAcpwmC,EAAQolP,SAAWnjN,GAAoBA,EAC/E,IAAK,SAAU,MAAmB,iBAALA,EAAgBA,EAAIi7jC,EAAIj7jC,GACrD,IAAK,SAAU,OAAOy6jC,GAA0B,iBAALz6jC,EAAgBA,EAAIi7jC,EAAIj7jC,IACnE,IAAK,SAAU,GAAG26jC,GAAS,OAAO7luB,OAAOoB,SAASl2V,GAAKA,EAAI46jC,GAAY56jC,GAEvE,IAAK,QAAS,MAAmB,iBAALA,EAAgBg7jC,GAAIh7jC,GAAKA,EAEtD,OAAOA,CACR,EA66BAnuB,EAAQu8lC,UAr8BR,SAAoBrI,EAAsB5i3B,EAAqBplP,GAC9D0kmC,IACA,IAAIzikC,EAAIy4W,EAAOsttB,EAAKhomC,GAEpBi5R,EAAGm30B,cAAchr3B,EAAUnjN,EAC5B,EAi8BAnuB,EAAQ4h9B,MAAQ,CACf46I,QA/DD,SAAiB3tgC,GAChB,IAAI1gE,EAAsB,CAAC,EAE3B,OADA8ikC,EAAS9ikC,EAAG0gE,GACL1gE,CACR,EA4DCqtkC,QAASA,GACTiB,QAhCD,SAAiBvI,EAAsB58lC,GACtC25lC,EAASiD,GACT,IAAIzlL,EAAOwhL,GAAI9/hC,KAAK+jiC,EAAK58lC,GACzB,GAAGm36B,EAAM,IAAI,IAAIn66B,EAAI,EAAGA,EAAI4/lC,EAAInD,UAAUtkmC,SAAU6H,EAAG,GAAG4/lC,EAAInD,UAAUz8lC,IAAMm66B,EAG7E,OAFAylL,EAAInD,UAAUjliC,OAAOx3D,EAAG,GACxB4/lC,EAAIlD,UAAUlliC,OAAOx3D,EAAG,IACjB,EAER,OAAO,CACR,EAwBCoomC,QAtBD,SAAiBxI,EAAsByI,EAAqBC,GAC3D3L,EAASiD,GACT,IAAIzlL,EAAOwhL,GAAI9/hC,KAAK+jiC,EAAKyI,GACzB,GAAGluL,EAAM,IAAI,IAAIn66B,EAAI,EAAGA,EAAI4/lC,EAAInD,UAAUtkmC,SAAU6H,EAAG,GAAG4/lC,EAAInD,UAAUz8lC,IAAMm66B,EAG7E,OAFAylL,EAAInD,UAAUz8lC,GAAGgD,KAAOg6O,EAASsr3B,GACjC1I,EAAIlD,UAAU18lC,GAAKsomC,GACZ,EAER,OAAO,CACR,EAcCZ,OAZD,SAAgB9H,GAAiCG,EAAYH,GAAK,EAAO,EAaxE2I,UAAWA,GACXC,WAAYA,GACZvM,UAAWA,GACXjH,QAASA,GACTyT,SAr7BD,SAAkBC,GAAQ,IACzB,IACI9B,EAAU,IAAIC,EADD6B,EAAK7B,YAGtB,GADAD,EAAQE,cAAc,IAAIj2gC,WAAW,CAAC,EAAG,IAAK+1gC,EAAQG,mBACnDH,EAAQI,UACN,MAAM,IAAIl9lC,MAAM,kCADCo4lC,EAAQwG,CAE/B,CAAE,MAAMrumC,IAAI65G,QAAQhgG,MAAM,4BAA8B7Z,GAAE6vI,SAAW7vI,IAAK,CAAE,EAg7B3EgqmC,YAAa3B,EACbiG,YAAajD,GACb5D,OAAQA,GAGFp2lC,CACP,CA5qDwB,GA8qDxB,IAAIk9lC,GAyEJ,SAAS5plC,GAAK6a,GAEb,IADA,IAAIowyB,EAAKjv0B,OAAOgkB,KAAK6a,GAAIgrC,EAAK,GACtB9qE,EAAI,EAAGA,EAAIkw0B,EAAG9x0B,SAAU4B,EAAMiB,OAAO9B,UAAUsa,eAAe5R,KAAKi4B,EAAGowyB,EAAGlw0B,KAAK8qE,EAAGnsE,KAAKux0B,EAAGlw0B,IACjG,OAAO8qE,CACR,CAQA,SAASgkiC,GAAMn/lC,GAEd,IADA,IAAImwB,EAAK,GAAa4gK,EAAIz7K,GAAKtV,GACvB3P,EAAI,EAAGA,IAAM0gM,EAAEtiM,SAAU4B,EAAG8/B,EAAEnwB,EAAI+wL,EAAE1gM,KAAO0gM,EAAE1gM,GACrD,OAAO8/B,CACR,CAiBA,IAAIivkC,GAAwB,IAAIrtkC,KAAK,KAAM,GAAI,GAAI,EAAG,EAAG,GACzD,SAASstkC,GAAQ3ukC,EAAYm8jC,GAC5B,IAAIv4M,EAAqB5j3B,EAAEkD,UAG3B,OAFGi5jC,IAAUv4M,GAAS,YAEdA,GADoB8qN,GAASxrkC,UAA+F,KAArElD,EAAE+D,oBAAmC2qkC,GAAS3qkC,uBACjF,KAC7B,CACA,IAAI6qkC,GAAuB,IAAIvtkC,KAC3BwtkC,GAAwBH,GAASxrkC,UAAqG,KAA3E0rkC,GAAQ7qkC,oBAAmC2qkC,GAAS3qkC,qBAC/G+qkC,GAAyBF,GAAQ7qkC,oBACrC,SAASgrkC,GAAQ/ukC,GAChB,IAAIujC,EAAM,IAAIliC,KAKd,OAJAkiC,EAAIygB,QAAY,GAAJhkD,EAAS,GAAK,GAAK,IAAO6ukC,IAClCtriC,EAAIx/B,sBAAwB+qkC,IAC/BvriC,EAAIygB,QAAQzgB,EAAIrgC,UAAoD,KAAvCqgC,EAAIx/B,oBAAsB+qkC,KAEjDvriC,CACR,CAGA,SAASyriC,GAAanmlC,GACrB,IAAIomlC,EAAM,EAAGv5kC,EAAK,EAAGzS,GAAO,EACxBuN,EAAI3H,EAAE1hB,MAAM,8EAChB,IAAIqpB,EAAG,MAAM,IAAI9gB,MAAM,IAAMmZ,EAAI,gCACjC,IAAI,IAAIlpB,EAAI,EAAGA,GAAK6wB,EAAEzyB,SAAU4B,EAC/B,GAAI6wB,EAAE7wB,GAAN,CAGA,OAFA+1B,EAAK,EACF/1B,EAAI,IAAGsjB,GAAO,GACVuN,EAAE7wB,GAAGgC,MAAM6uB,EAAE7wB,GAAG5B,OAAO,IAC7B,IAAK,IACJ,MAAM,IAAI2R,MAAM,mCAAqC8gB,EAAE7wB,GAAGgC,MAAM6uB,EAAE7wB,GAAG5B,OAAO,IAC7E,IAAK,IAAK23B,GAAM,GAEhB,IAAK,IAAKA,GAAM,GAEhB,IAAK,IACJ,IAAIzS,EAAM,MAAM,IAAIvT,MAAM,qCACrBgmB,GAAM,GAIbu5kC,GAAOv5kC,EAAK5N,SAAS0I,EAAE7wB,GAAI,GAhBT,CAkBnB,OAAOsvmC,CACR,CAEA,IAAIC,GAA8B,IAAI7tkC,KAAK,4BACvC8tkC,GAA4Bh+jC,MAAmB+9jC,GAAeztkC,eAA8B,IAAIJ,KAAK,WAAa6tkC,GAClHE,GAAqD,MAA9BD,GAAa1tkC,cAExC,SAASmn3B,GAAUr44B,EAAqB8+lC,GACvC,IAAI19lC,EAAI,IAAI0vB,KAAK9wB,GACjB,GAAG6+lC,GAIF,OAFGC,EAAU,EAAG19lC,EAAEqyE,QAAQryE,EAAEuxB,UAAoC,GAAxBvxB,EAAEoyB,oBAA2B,KAC7DsrkC,EAAU,GAAG19lC,EAAEqyE,QAAQryE,EAAEuxB,UAAoC,GAAxBvxB,EAAEoyB,oBAA2B,KACnEpyB,EAER,GAAGpB,aAAe8wB,KAAM,OAAO9wB,EAC/B,GAAiC,MAA9B4+lC,GAAa1tkC,gBAA0B0P,MAAMx/B,EAAE8vB,eAAgB,CACjE,IAAI5Y,EAAIlX,EAAE8vB,cACV,OAAGlxB,EAAInP,QAAQ,GAAKynB,IAAM,GAC1BlX,EAAEm0E,YAAYn0E,EAAE8vB,cAAgB,KADI9vB,CAErC,CACA,IAAIkW,EAAItX,EAAIpJ,MAAM,SAAS,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,KAChDo8D,EAAM,IAAIliC,MAAMxZ,EAAE,IAAKA,EAAE,GAAK,GAAIA,EAAE,IAAMA,EAAE,IAAI,GAAMA,EAAE,IAAI,GAAMA,EAAE,IAAI,GAE5E,OADGtX,EAAInP,QAAQ,MAAQ,IAAGmiE,EAAM,IAAIliC,KAAKkiC,EAAIrgC,UAAsC,GAA1BqgC,EAAIx/B,oBAA2B,MACjFw/B,CACR,CAEA,SAAS+riC,GAAO5gkC,EAAuB6gkC,GACtC,GAAGnV,IAAW7luB,OAAOoB,SAASjnV,GAAM,CACnC,GAAG6gkC,EAAS,CACX,GAAa,KAAV7gkC,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAO8gkC,GAAU9gkC,EAAI/sC,MAAM,GAAGsJ,SAAS,YAC5E,GAAa,KAAVyjC,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAO8gkC,GAAU7V,GAAYjrjC,EAAI/sC,MAAM,GAAGsJ,SAAS,WACzF,CACA,OAAOyjC,EAAIzjC,SAAS,SACrB,CAEA,GAA0B,qBAAhBi8sB,YAA6B,IACtC,GAAGqoZ,EAAS,CACX,GAAa,KAAV7gkC,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAO8gkC,GAAU,IAAItoZ,YAAY,YAAYxwnB,OAAOhoD,EAAI/sC,MAAM,KACnG,GAAa,KAAV+sC,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAO8gkC,GAAU,IAAItoZ,YAAY,YAAYxwnB,OAAOhoD,EAAI/sC,MAAM,IACpG,CACA,IAAIqyV,EAAM,CACT,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAG/C,OADGzsV,MAAMiI,QAAQk/B,KAAMA,EAAM,IAAI+nD,WAAW/nD,IACrC,IAAIw4qB,YAAY,UAAUxwnB,OAAOhoD,GAAK3tC,QAAQ,yKAAkC,SAAS2+B,GAAK,OAAOs0T,EAAIt0T,IAAMA,CAAG,GAC1H,CAAE,MAAMz/B,IAAI,CAGZ,IADA,IAAIw/B,EAAI,GACA9/B,EAAI,EAAGA,GAAK+uC,EAAI3wC,SAAU4B,EAAG8/B,EAAEnhC,KAAKmC,OAAOC,aAAaguC,EAAI/uC,KACpE,OAAO8/B,EAAEl7B,KAAK,GACf,CAEA,SAASwvc,GAAIt0a,GACZ,GAAkB,oBAARxkB,OAAwB1T,MAAMiI,QAAQiwB,GAAI,OAAOxkB,KAAKxW,MAAMwW,KAAK5W,UAAUo7B,IACrF,GAAe,iBAALA,GAAsB,MAALA,EAAW,OAAOA,EAC7C,GAAGA,aAAa4B,KAAM,OAAO,IAAIA,KAAK5B,EAAEyD,WACxC,IAAIqgC,EAAM,CAAC,EACX,IAAI,IAAI19D,KAAK45B,EAAM7+B,OAAO9B,UAAUsa,eAAe5R,KAAKi4B,EAAG55B,KAAI09D,EAAI19D,GAAKkuc,GAAIt0a,EAAE55B,KAC9E,OAAO09D,CACR,CAEA,SAAS5uD,GAAK+qB,EAAa5W,GAAuC,IAAZ,IAAI2W,EAAI,GAAUA,EAAE1hC,OAAS+qB,GAAG2W,GAAGC,EAAG,OAAOD,CAAG,CAGtG,SAASgwkC,GAAS5mlC,GACjB,IAAImX,EAAe9W,OAAOL,GAC1B,IAAIsoB,MAAMnR,GAAI,OAAO61B,SAAS71B,GAAKA,EAAIsB,IACvC,IAAI,KAAKvc,KAAK8D,GAAI,OAAOmX,EACzB,IAAI2+xB,EAAK,EACLv5xB,EAAKvc,EAAE9nB,QAAQ,iBAAiB,QAAQA,QAAQ,OAAO,IAAIA,QAAQ,QAAQ,WAAwB,OAAX49zB,GAAM,IAAY,EAAG,IACjH,OAAIxtxB,MAAMnR,EAAI9W,OAAOkc,KACrBA,EAAKA,EAAGrkC,QAAQ,cAAa,SAASy8lC,EAAI5nsB,GAAgB,OAAV+oa,GAAMA,EAAW/oa,CAAG,IAChEzkX,MAAMnR,EAAI9W,OAAOkc,IACdpF,EAD2BA,EAAI2+xB,GAFJ3+xB,EAAI2+xB,CAIvC,CACA,IAAI+wS,GAAe,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAClI,SAASC,GAAU9mlC,GAClB,IAAI4W,EAAI,IAAI4B,KAAKxY,GAAIhB,EAAI,IAAIwZ,KAAKC,KAC9Bv7B,EAAI05B,EAAEumgC,UAAWx1gC,EAAIiP,EAAEkC,WAAYhwB,EAAI8tB,EAAEoC,UAC7C,GAAGsP,MAAMx/B,GAAI,OAAOkW,EACpB,IAAI+uC,EAAQ/tC,EAAEpa,cACd,GAAGmoD,EAAMzvD,MAAM,oDAEd,IADAyvD,EAAQA,EAAM71D,QAAQ,UAAU,IAAIA,QAAQ,6BAA6B,KAChEhD,OAAS,IAAqC,GAAhC2xmC,GAAatumC,QAAQw1D,GAAc,OAAO/uC,OAC3D,GAAG+uC,EAAMzvD,MAAM,SAAU,OAAO0gB,EACvC,OAAG9hB,EAAI,GAAKA,EAAI,KAAa8hB,GACzB2I,EAAI,GAAK7e,EAAI,IAAW,KAAL5L,EAAiB05B,EACrC5W,EAAE1hB,MAAM,iBAAyB0gB,EAC7B4X,CACR,CAEA,IAAImwkC,GAA4B,WAC/B,IAAIC,EAAuD,GAApC,UAAU7nmC,MAAM,UAAUjK,OACjD,OAAO,SAAqBwS,EAAgBmX,EAAI2mB,GAC/C,GAAGwhkC,GAAiC,iBAANnolC,EAAgB,OAAOnX,EAAIvI,MAAM0f,GAE/D,IADA,IAAI+I,EAAIlgB,EAAIvI,MAAM0f,GAAK+X,EAAI,CAAChP,EAAE,IACtB9wB,EAAI,EAAGA,EAAI8wB,EAAE1yB,SAAU4B,EAAK8/B,EAAEnhC,KAAK+vC,GAAM5O,EAAEnhC,KAAKmyB,EAAE9wB,IAC1D,OAAO8/B,CACR,CACD,CARgC,GAShC,SAASqwkC,GAAWz1jC,GACnB,OAAIA,EACDA,EAAK0lW,SAAW1lW,EAAK73C,KAAa8smC,GAAOj1jC,EAAK0lW,SAAS,GACvD1lW,EAAKA,KAAaw/iC,GAAMx/iC,EAAKA,MAC7BA,EAAK01jC,cAAgB3V,GAAgBP,GAAMx/iC,EAAK01jC,eAAe9kmC,SAAS,WACxEovC,EAAK21jC,SAAiBnW,GAAMx/iC,EAAK21jC,YACjC31jC,EAAK28W,OAAS38W,EAAK28W,MAAMi5sB,WAAmBpW,GAAMyV,GAAO/nmC,MAAMzI,UAAU6C,MAAM6F,KAAK6yC,EAAK28W,MAAMi5sB,aAAa,KACxG,KANU,IAOlB,CAEA,SAASC,GAAW71jC,GACnB,IAAIA,EAAM,OAAO,KACjB,GAAGA,EAAKA,KAAM,OAAOq/iC,GAAWr/iC,EAAKA,MACrC,GAAGA,EAAK01jC,cAAgB3V,GAAS,OAAO//iC,EAAK01jC,eAC7C,GAAG11jC,EAAK28W,OAAS38W,EAAK28W,MAAMi5sB,WAAY,CACvC,IAAIxwkC,EAAI4a,EAAK28W,MAAMi5sB,aACnB,MAAe,iBAALxwkC,EAAsBi6jC,GAAWj6jC,GACpCl4B,MAAMzI,UAAU6C,MAAM6F,KAAKi4B,EACnC,CACA,OAAG4a,EAAK0lW,SAAW1lW,EAAK73C,KAAa63C,EAAK0lW,QACnC,IACR,CAMA,SAASowtB,GAAe/8jC,EAAK2s4B,GAG5B,IAFA,IAAIl66B,EAAIutC,EAAIkvjC,WAAa19kC,GAAKwuB,EAAI254B,OAC9B/j6B,EAAI+25B,EAAKtx6B,cAAc1N,QAAQ,QAAS,MAAO2/B,EAAI1X,EAAEjoB,QAAQ,MAAM,KAC/DpB,EAAE,EAAGA,EAAEkG,EAAE9H,SAAU4B,EAAG,CAC7B,IAAIkoB,EAAIhiB,EAAElG,GAAGoB,QAAQ,kBAAkB,IAAI0N,cAC3C,GAAGua,GAAKnB,GAAK6Y,GAAK7Y,EAAG,OAAOurB,EAAI254B,MAAQ354B,EAAI254B,MAAMln7B,EAAElG,IAAMyzC,EAAIivjC,UAAU1imC,EACzE,CACA,OAAO,IACR,CAEA,SAASywmC,GAAWh9jC,EAAK2s4B,GACxB,IAAItg5B,EAAI0wkC,GAAe/8jC,EAAK2s4B,GAC5B,GAAQ,MAALtg5B,EAAW,MAAM,IAAI/vB,MAAM,oBAAsBqw6B,EAAO,WAC3D,OAAOtg5B,CACR,CAEA,SAAS4wkC,GAAWj9jC,EAAK2s4B,EAAiBuwL,GACzC,IAAIA,EAAM,OArBMj2jC,EAqBS+1jC,GAAWh9jC,EAAK2s4B,KArBuB,SAAxB1l4B,EAAKzxC,KAAKjH,OAAO,GAAiBuumC,GAAW71jC,GAAQy1jC,GAAWz1jC,GAAzG,IAAiBA,EAsBhB,IAAI0l4B,EAAM,OAAO,KACjB,IAAM,OAAOswL,GAAWj9jC,EAAK2s4B,EAAO,CAAE,MAAM9/6B,IAAK,OAAO,IAAM,CAC/D,CAEA,SAASswmC,GAAUn9jC,EAAK2s4B,EAAiBuwL,GACxC,IAAIA,EAAM,OAAOR,GAAWM,GAAWh9jC,EAAK2s4B,IAC5C,IAAIA,EAAM,OAAO,KACjB,IAAM,OAAOwwL,GAAUn9jC,EAAK2s4B,EAAO,CAAE,MAAM9/6B,IAAK,OAAO,IAAM,CAC9D,CAEA,SAASuwmC,GAAUp9jC,EAAK2s4B,EAAiBuwL,GACxC,IAAIA,EAAM,OAAOJ,GAAWE,GAAWh9jC,EAAK2s4B,IAC5C,IAAIA,EAAM,OAAO,KACjB,IAAM,OAAOywL,GAAUp9jC,EAAK2s4B,EAAO,CAAE,MAAM9/6B,IAAK,OAAO,IAAM,CAC9D,CAEA,SAASwwmC,GAAWr9jC,GAEnB,IADA,IAAIvtC,EAAIutC,EAAIkvjC,WAAa19kC,GAAKwuB,EAAI254B,OAAQtt5B,EAAI,GACtC9/B,EAAI,EAAGA,EAAIkG,EAAE9H,SAAU4B,EAAwB,KAAlBkG,EAAElG,GAAGgC,OAAO,IAAW89B,EAAEnhC,KAAKuH,EAAElG,GAAGoB,QAAQ,kBAAmB,KACnG,OAAO0+B,EAAEzQ,MACV,CAEA,SAAS0hlC,GAAat9jC,EAAKlyB,EAAM6+X,GAChC,GAAG3sW,EAAIkvjC,UAAW,CAEhB,IAAI32jC,EADL,GAAqB,iBAAXo0W,EAMT,OAJYp0W,EAATyujC,GAAeC,GAAYt6sB,GAztGjC,SAAoBA,GAGnB,IAFA,IAAIx8U,EAAM,GAAIotiC,EAAO,EAAGhskC,EAAIo7W,EAAQhiZ,OAAS,IACzC0hC,EAAI86jC,GAAYx6sB,EAAQhiZ,OAAS,KAC7B6ymC,EAAO,EAAGA,EAAO7wtB,EAAQhiZ,SAAU6ymC,EAAM,CAChD,IAAIlxkC,EAAIqgX,EAAQx+Y,WAAWqvmC,GAC3B,GAAGlxkC,EAAI,IAAMD,EAAEkxkC,KAAUjxkC,OACpB,GAAGA,EAAI,KACXD,EAAEkxkC,KAAW,IAAMjxkC,GAAG,EAAG,GACzBD,EAAEkxkC,KAAW,IAAO,GAAFjxkC,OACZ,GAAGA,GAAK,OAAUA,EAAI,MAAQ,CACpCA,EAAa,IAAN,KAAFA,GACL,IAAI/tB,EAA+B,KAA3BouY,EAAQx+Y,aAAaqvmC,GAC7BnxkC,EAAEkxkC,KAAW,IAAMjxkC,GAAG,EAAG,EACzBD,EAAEkxkC,KAAW,IAAMjxkC,GAAG,EAAG,GACzBD,EAAEkxkC,KAAW,IAAMh/lC,GAAG,EAAG,IAAQ,EAAF+tB,IAAM,EACrCD,EAAEkxkC,KAAW,IAAO,GAAFh/lC,CACnB,MACC8tB,EAAEkxkC,KAAW,IAAMjxkC,GAAG,GAAI,GAC1BD,EAAEkxkC,KAAW,IAAMjxkC,GAAG,EAAG,GACzBD,EAAEkxkC,KAAW,IAAO,GAAFjxkC,EAEhBixkC,EAAOhskC,IACT4+B,EAAIjlE,KAAKmhC,EAAE99B,MAAM,EAAGgvmC,IACpBA,EAAO,EACPlxkC,EAAI86jC,GAAY,OAChB51jC,EAAI,MAEN,CAEA,OADA4+B,EAAIjlE,KAAKmhC,EAAE99B,MAAM,EAAGgvmC,IACb/V,GAAQr3hC,EAChB,CA8rGcstiC,CAAW9wtB,GACfwhtB,GAAIruI,MAAM45I,QAAQ15jC,EAAKlyB,EAAMyqB,GAErC41jC,GAAIruI,MAAM45I,QAAQ15jC,EAAKlyB,EAAM6+X,EAC9B,MACK3sW,EAAI2s4B,KAAK7+5B,EAAM6+X,EACrB,CAIA,SAAS+wtB,GAASn/lC,EAAG8tB,GACpB,OAAOA,EAAEj9B,MACR,IAAK,SAAU,OAAO++lC,GAAI5tuB,KAAKhiX,EAAG,CAAEnP,KAAM,WAC1C,IAAK,SAAU,OAAO++lC,GAAI5tuB,KAAKhiX,EAAG,CAAEnP,KAAM,WAC1C,IAAK,SAAU,IAAK,QAAS,OAAO++lC,GAAI5tuB,KAAKhiX,EAAG,CAAEnP,KAAM,WAEzD,MAAM,IAAIkN,MAAM,qBAAuB+vB,EAAEj9B,KAC1C,CAEA,SAASuumC,GAAa7vlC,EAAiBsN,GACtC,GAAqB,KAAlBtN,EAAK8G,OAAO,GAAW,OAAO9G,EAAKvf,MAAM,GAC5C,IAAIoO,EAASye,EAAKxmB,MAAM,KACH,KAAlBwmB,EAAK7sB,OAAO,IAAWoO,EAAO+oD,MAEjC,IADA,IAAIl1C,EAAS1C,EAAKlZ,MAAM,KACC,IAAlB4b,EAAO7lB,QAAc,CAC3B,IAAIsxB,EAAOzL,EAAOyE,QACL,OAATgH,EAAetf,EAAO+oD,MACR,MAATzpC,GAActf,EAAOzR,KAAK+wB,EACpC,CACA,OAAOtf,EAAOxL,KAAK,IACpB,CACA,IAAIysmC,GAAa,8DACbC,GAAU,yEACVC,GAAU,+FACVC,GAAwBH,GAAW7pmC,MAAM+pmC,IAAaA,GADgE,WAEtHE,GAAQ,QAASC,GAAW,aAChC,SAASC,GAAY1zmC,EAAgB2zmC,EAAwBC,GAG5D,IAFA,IAAIxrmC,EAAK,CAAC,EACNmvb,EAAK,EAAGz1Z,EAAI,EACVy1Z,IAAOv3b,EAAIG,SAA8C,MAA5B2hC,EAAI9hC,EAAI2D,WAAW4zb,KAAqB,KAANz1Z,GAAkB,KAANA,KAAtDy1Z,GAE3B,GADIo8qB,IAAWvrmC,EAAE,GAAKpI,EAAI+D,MAAM,EAAGwzb,IAChCA,IAAOv3b,EAAIG,OAAQ,OAAOiI,EAC7B,IAAIwqB,EAAI5yB,EAAIuJ,MAAM8pmC,IAAYrrmC,EAAE,EAAGo6B,EAAE,GAAIrgC,EAAE,EAAGkpC,EAAE,GAAI2oZ,EAAG,GAAIigrB,EAAO,EAClE,GAAGjhlC,EAAG,IAAI7wB,EAAI,EAAGA,GAAK6wB,EAAEzyB,SAAU4B,EAAG,CAEpC,IADA6xb,EAAKhha,EAAE7wB,GACH+/B,EAAE,EAAGA,GAAK8xZ,EAAGzzb,QAAqC,KAArByzb,EAAGjwb,WAAWm+B,KAApBA,GAE3B,IADAmJ,EAAI2oZ,EAAG7vb,MAAM,EAAE+9B,GAAG7+B,OACU,IAAtB2wb,EAAGjwb,WAAWm+B,EAAE,MAAYA,EAGlC,IAFA+xkC,EAAmC,KAA1Bt8qB,EAAG3D,EAAGjwb,WAAWm+B,EAAE,KAAmB,IAANy1Z,EAAY,EAAI,EACzDn1Z,EAAIwxZ,EAAG7vb,MAAM+9B,EAAE,EAAE+xkC,EAAMjgrB,EAAGzzb,OAAO0zmC,GAC7B7rmC,EAAE,EAAEA,GAAGijC,EAAE9qC,QAAmC,KAApB8qC,EAAEtnC,WAAWqE,KAAnBA,GACtB,GAAGA,IAAIijC,EAAE9qC,OACL8qC,EAAEznC,QAAQ,KAAO,IAAGynC,EAAIA,EAAElnC,MAAM,EAAGknC,EAAEznC,QAAQ,OAChD4E,EAAE6iC,GAAK7I,EACHwxkC,IAASxrmC,EAAE6iC,EAAEp6B,eAAiBuxB,OAE9B,CACJ,IAAIn6B,GAAS,IAAJD,GAAwB,UAAfijC,EAAElnC,MAAM,EAAE,GAAa,QAAQ,IAAIknC,EAAElnC,MAAMiE,EAAE,GAC/D,GAAGI,EAAEH,IAAwB,OAAlBgjC,EAAElnC,MAAMiE,EAAE,EAAEA,GAAa,SACpCI,EAAEH,GAAKm6B,EACHwxkC,IAASxrmC,EAAEH,EAAE4I,eAAiBuxB,EACnC,CACD,CACA,OAAOh6B,CACR,CACA,SAAS0rmC,GAAS5rmC,GAA2B,OAAOA,EAAE/E,QAAQswmC,GAAU,MAAQ,CAEhF,IAAIM,GAAY,CACf,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,QAAS,KAENC,GAAyBnD,GAAMkD,IAI/BE,GAA2C,WAE9C,IAAIC,EAAW,+CAAgDC,EAAY,uBAC3E,OAAO,SAASF,EAAYl6lC,GAC3B,IAAIkR,EAAIlR,EAAO,GAAIhY,EAAIkpB,EAAEznB,QAAQ,aACjC,IAAS,GAANzB,EAAS,OAAOkpB,EAAE9nB,QAAQ+wmC,GAAU,SAAStU,EAAI5nsB,GAAM,OAAO+7sB,GAAUnU,IAAK/8lC,OAAOC,aAAaonB,SAAS8tY,EAAG4nsB,EAAGp8lC,QAAQ,MAAM,EAAE,GAAG,MAAMo8lC,CAAI,IAAGz8lC,QAAQgxmC,GAAU,SAASvhlC,EAAEkP,GAAI,OAAOj/B,OAAOC,aAAaonB,SAAS4X,EAAE,IAAK,IAC/N,IAAI95B,EAAIijB,EAAEznB,QAAQ,OAClB,OAAOywmC,EAAYhplC,EAAElnB,MAAM,EAAGhC,IAAMkpB,EAAElnB,MAAMhC,EAAE,EAAEiG,GAAKismC,EAAYhplC,EAAElnB,MAAMiE,EAAE,GAC5E,CACD,CAT+C,GAW3CosmC,GAAS,WAOb,IAAIC,GAAe,mBACnB,SAASC,GAAWv6lC,GAEnB,OADQA,EAAO,IACN5W,QAAQixmC,IAAU,SAASjsmC,GAAK,OAAO6rmC,GAAU7rmC,EAAI,IAAGhF,QAAQ,MAAO,SAASA,QAAQkxmC,IAAa,SAASpplC,GAAK,MAAO,OAAS,MAAMA,EAAEtnB,WAAW,GAAG0J,SAAS,KAAKtJ,OAAO,GAAK,GAAK,GAClM,CAQA,IAAIwwmC,GAA2C,WAC9C,IAAIC,EAAW,YACf,SAASC,EAAQ7U,EAAc5nsB,GAA4B,OAAOn1Z,OAAOC,aAAaonB,SAAS8tY,EAAG,IAAM,CACxG,OAAO,SAAqBrlZ,GAA6B,OAAOA,EAAIxP,QAAQqxmC,EAASC,EAAU,CAChG,CAJ+C,GAO/C,SAASC,GAAaxxmC,GACrB,OAAOA,GACN,KAAK,EAAG,KAAK,EAAM,IAAK,IAAK,IAAK,OAAQ,IAAK,OAAQ,OAAO,EAE9D,QAAS,OAAO,EAElB,CAEA,SAASyxmC,GAAUv/c,GAElB,IADA,IAAIzvlB,EAAM,GAAI5jE,EAAI,EAAG+/B,EAAI,EAAG/tB,EAAI,EAAG1R,EAAI,EAAG+oB,EAAI,EAAGsX,EAAI,EAC9C3gC,EAAIqzpB,EAAKj1pB,SACf2hC,EAAIsznB,EAAKzxpB,WAAW5B,MACZ,IAAO4jE,GAAO9iE,OAAOC,aAAag/B,IAC1C/tB,EAAIqhpB,EAAKzxpB,WAAW5B,KAChB+/B,EAAE,KAAOA,EAAE,KAAO1W,GAAU,GAAJ0W,IAAW,EAAI1W,GAAU,GAAJrX,EAAS4xD,GAAO9iE,OAAOC,aAAasoB,KACrF/oB,EAAI+ypB,EAAKzxpB,WAAW5B,KAChB+/B,EAAI,IAAO6jC,GAAO9iE,OAAOC,cAAmB,GAAJg/B,IAAW,IAAY,GAAJ/tB,IAAW,EAAU,GAAJ1R,IAEhFqgC,IAAW,EAAJZ,IAAU,IAAY,GAAJ/tB,IAAW,IAAY,GAAJ1R,IAAW,EAAU,IADjE+oB,EAAIgqoB,EAAKzxpB,WAAW5B,OACkD,MACtE4jE,GAAO9iE,OAAOC,aAAa,OAAW4/B,IAAI,GAAI,OAC9CijC,GAAO9iE,OAAOC,aAAa,OAAY,KAAF4/B,OAEtC,OAAOijC,CACR,CAEA,SAASiviC,GAAUn4jC,GAClB,IAAsC/Z,EAAG3gC,EAAuB+/B,EAA5D6jC,EAAMg3hC,GAAY,EAAElgjC,EAAKt8C,QAAe6H,EAAI,EAAGC,EAAI,EAAG+/B,EAAG,EAC7D,IAAIjmC,EAAI,EAAGA,EAAI06C,EAAKt8C,OAAQ4B,GAAGiG,EAC9BA,EAAI,GACA85B,EAAE2a,EAAK94C,WAAW5B,IAAM,IAAK2gC,EAAIZ,EAC7BA,EAAI,KAAOY,EAAW,IAAJ,GAAFZ,IAA+B,GAArB2a,EAAK94C,WAAW5B,EAAE,IAAQiG,EAAE,GACtD85B,EAAI,KAAOY,EAAS,MAAJ,GAAFZ,GAAqC,IAAJ,GAArB2a,EAAK94C,WAAW5B,EAAE,KAAgC,GAArB06C,EAAK94C,WAAW5B,EAAE,IAAQiG,EAAE,IACpFA,EAAI,EACV06B,EAAY,QAAH,EAAJZ,GAAwC,MAAJ,GAArB2a,EAAK94C,WAAW5B,EAAE,IAAsC,IAAJ,GAArB06C,EAAK94C,WAAW5B,EAAE,KAAgC,GAArB06C,EAAK94C,WAAW5B,EAAE,IACtFimC,EAAK,QAAjBtF,GAAK,SAA2B,GAAI,MAAOA,EAAI,OAAY,KAAFA,IAEhD,IAAPsF,IAAY29B,EAAI19D,KAAU,IAAH+/B,EAAQ29B,EAAI19D,KAAO+/B,IAAK,EAAGA,EAAK,GAC1D29B,EAAI19D,KAAOy6B,EAAE,IAAKijC,EAAI19D,KAAOy6B,IAAI,EAElC,OAAOijC,EAAI5hE,MAAM,EAAEkE,GAAGoF,SAAS,OAChC,CAEA,SAASwnmC,GAAUp4jC,GAAQ,OAAOggjC,GAAYhgjC,EAAM,UAAUpvC,SAAS,OAAS,CAEhF,IAAIynmC,GAAa,0CACbC,GAAWvY,KAAyBqY,GAAUC,KAA4BH,GAAUG,KAAeD,IAA0BD,GAAUE,KAA4BH,GAAUG,KAAeF,KAAcD,GAE1M/C,GAA2BpV,GAAU,SAAS//iC,GAAQ,OAAOggjC,GAAYhgjC,EAAM,QAAQpvC,SAAS,SAAW,EAAI,SAAS+npB,GAE3H,IADA,IAAIzvlB,EAAwB,GAAI5jE,EAAI,EAAG+/B,EAAI,EAAG/tB,EAAI,EAC5ChS,EAAIqzpB,EAAKj1pB,QAEd,OADA2hC,EAAIsznB,EAAKzxpB,WAAW5B,MACb,GACN,KAAK+/B,EAAI,IAAK6jC,EAAIjlE,KAAKmC,OAAOC,aAAag/B,IAAK,MAChD,KAAKA,EAAI,KACR6jC,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAOg/B,GAAK,KACzC6jC,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAW,GAAJg/B,KACpC,MACD,KAAKA,GAAK,OAASA,EAAI,MACtBA,GAAK,MAAO/tB,EAAIqhpB,EAAKzxpB,WAAW5B,KAAO,OAAS+/B,GAAG,IACnD6jC,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAQiR,GAAI,GAAM,KAC/C4xD,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAQiR,GAAI,GAAM,MAC/C4xD,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAQiR,GAAK,EAAK,MAC/C4xD,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAW,GAAJiR,KACpC,MACD,QACC4xD,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAOg/B,GAAK,MACzC6jC,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAQg/B,GAAK,EAAK,MAC/C6jC,EAAIjlE,KAAKmC,OAAOC,aAAa,KAAW,GAAJg/B,KAGvC,OAAO6jC,EAAIh/D,KAAK,GACjB,EAGIqumC,GAAyB,WAC5B,IAAIC,EAAmC,CAAC,EACxC,OAAO,SAAkB7plC,EAAa0X,GACrC,IAAIzU,EAAIjD,EAAE,KAAK0X,GAAG,IAClB,OAAGmykC,EAAQ5mlC,GAAW4mlC,EAAQ5mlC,GACtB4mlC,EAAQ5mlC,GAAK,IAAItE,OAAO,cAAcqB,EAAE,+DAA+DA,EAAE,IAAM0X,GAAG,GAC3H,CACD,CAP6B,GASzBoykC,GAAmD,WACtD,IAAIC,EAAuC,CAC1C,CAAC,OAAQ,KAAM,CAAC,SAAU,QAC1B,CAAC,OAAQ,KAAM,CAAC,OAAQ,KAAM,CAAC,KAAQ,KAAM,CAAC,KAAQ,KAAM,CAAC,MAAQ,MACpE/rmC,KAAI,SAASlB,GAA0B,MAAO,CAAC,IAAI6hB,OAAO,IAAM7hB,EAAE,GAAK,IAAK,MAAOA,EAAE,GAAK,IAC5F,OAAO,SAAoByK,GAc1B,IAbA,IAAIkvB,EAAIlvB,EAELxP,QAAQ,cAAe,IAEvBA,QAAQ,cAAc,IAEtBA,QAAQ,QAAQ,KAAKA,QAAQ,QAAQ,KAErCA,QAAQ,cAAe,KAEvBA,QAAQ,uBAAuB,MAE/BA,QAAQ,WAAW,IACdpB,EAAI,EAAGA,EAAIozmC,EAASh1mC,SAAU4B,EAAG8/B,EAAIA,EAAE1+B,QAAQgymC,EAASpzmC,GAAG,GAAIozmC,EAASpzmC,GAAG,IACnF,OAAO8/B,CACR,CACD,CAtBuD,GAwBnDuzkC,GAAwB,WAAY,IAAIC,EAAW,CAAC,EACvD,OAAO,SAAkB/y/B,GACxB,YAAoB1hH,IAAjBy0mC,EAAS/y/B,GAA0B+y/B,EAAS/y/B,GACvC+y/B,EAAS/y/B,GAAM,IAAIv4F,OAAO,YAAcu4F,EAAK,0BAA4BA,EAAK,IAAK,IAC7F,CAAE,CAJ0B,GAKxBgz/B,GAAW,wBAAyBC,GAAW,6BACnD,SAASC,GAAY/4jC,EAAiB8lD,GACrC,IAAI3vF,EAAI8gmC,GAAYj3jC,GAEhBx2B,EAA4Bw2B,EAAKlzC,MAAM6rmC,GAAQximC,EAAE6imC,YAAY,GAC7D1nkC,EAAqB,GACzB,GAAG9nB,EAAQ9lB,QAAUyS,EAAE7K,KAAM,CAC5B,GAAGw6F,EAAKmzgC,IAAK,MAAM,IAAI5jmC,MAAM,4BAA8BmU,EAAQ9lB,OAAS,OAASyS,EAAE7K,MACvF,OAAOgmC,CACR,CAKA,OAJA9nB,EAAQ5kB,SAAQ,SAAS6G,GACxB,IAAIk6B,EAAIl6B,EAAE/E,QAAQmymC,GAAS,IAAI/rmC,MAAMgsmC,IAClCnzkC,GAAG2L,EAAIrtC,KAAK,CAAC0hC,EAAE2ykC,GAAS3ykC,EAAE,IAAK/T,EAAE+T,EAAE,IACvC,IACO2L,CACR,CAEA,IAAI4nkC,GAAU,eAGd,SAASC,GAAWhjmC,GAAgB,OAAOoU,GAAKpU,GAAGxJ,KAAI,SAASnB,GAAK,MAAO,IAAMA,EAAI,KAAO2K,EAAE3K,GAAK,GAAI,IAAGtB,KAAK,GAAK,CACrH,SAASkvmC,GAAUzqlC,EAAa0X,EAAclwB,GAAK,MAAO,IAAMwY,GAAW,MAALxY,EAAagjmC,GAAWhjmC,GAAK,KAAa,MAALkwB,GAAcA,EAAEv5B,MAAMosmC,IAAS,wBAA0B,IAAM,IAAM7ykC,EAAI,KAAO1X,EAAI,KAAO,GAAI,CAiB1M,SAAS0qlC,GAAe/hmC,GACvB,GAAGyolC,IAAqF7luB,OAAOoB,SAAShkX,GAAI,OAAOA,EAAE1G,SAAS,QAC9H,GAAgB,kBAAN0G,EAAgB,OAAOA,EAEjC,GAAyB,qBAAf8kF,YAA8B9kF,aAAa8kF,WAAY,OAAOk8gC,GAASjY,GAAIC,GAAKhplC,KAC1F,MAAM,IAAIjC,MAAM,8CACjB,CAEA,IAAIikmC,GAAY,6DAGZC,GAIC,+DAcDC,GAAa,CAChB,4DACA,gDACA,sDACA,oDAuCD,IAAIC,GAAc,SAASjZ,GAAmE,IAAlB,IAAI/0lC,EAAE,GAAoBnG,EAAE,EAAEA,EAAEk7lC,EAAK,GAAG98lC,SAAS4B,EAAG,GAAGk7lC,EAAK,GAAGl7lC,GAAI,IAAI,IAAIiG,EAAE,EAAE++B,EAAEk2jC,EAAK,GAAGl7lC,GAAG5B,OAAO6H,EAAE++B,EAAE/+B,GAA5F,MAAkGE,EAAExH,KAAKyM,MAAMjF,EAAG+0lC,EAAK,GAAGl7lC,GAAGgC,MAAMiE,EAAEA,EAArI,QAA4I,OAAOE,CAAG,EACzOs+lC,GAAahK,GAAU,SAASS,GAAQ,OAAQA,EAAK,GAAG98lC,OAAS,GAAKw2X,OAAOoB,SAASkluB,EAAK,GAAG,IAAOtmuB,OAAOjsX,OAAOuylC,EAAK,GAAG7zlC,KAAI,SAASlB,GAAK,OAAOyuX,OAAOoB,SAAS7vX,GAAKA,EAAIu0lC,GAAYv0lC,EAAI,KAAMgumC,GAAYjZ,EAAM,EAAIiZ,GAEzNC,GAAa,SAASpjlC,EAAsB9H,EAAa5oB,GAAwD,IAA7B,IAAImlC,EAAqB,GAAYzlC,EAAEkpB,EAAGlpB,EAAEM,EAAGN,GAAG,EAAGylC,EAAG9mC,KAAKmC,OAAOC,aAAaszmC,GAAerjlC,EAAEhxB,KAAM,OAAOylC,EAAG7gC,KAAK,IAAIxD,QAAQ+5lC,GAAK,GAAK,EACjO6J,GAAYvK,GAAU,SAASzpkC,EAAsB9H,EAAa5oB,GAA2B,OAAIs0X,OAAOoB,SAAShlW,GAAqEA,EAAE1lB,SAAS,UAAU4d,EAAE5oB,GAAGc,QAAQ+5lC,GAAK,IAAjEiZ,GAAWpjlC,EAAE9H,EAAE5oB,EAA6E,EAAI8zmC,GAE5PE,GAAa,SAAStjlC,EAAsB9H,EAAaC,GAAwD,IAA7B,IAAIsc,EAAqB,GAAYzlC,EAAEkpB,EAAGlpB,EAAEkpB,EAAEC,IAAKnpB,EAAGylC,EAAG9mC,MAAM,IAAMqyB,EAAEhxB,GAAGsL,SAAS,KAAKtJ,OAAO,IAAK,OAAOyjC,EAAG7gC,KAAK,GAAK,EAC5M2vmC,GAAY9Z,GAAU,SAASzpkC,EAAsB9H,EAAaC,GAA2B,OAAOyrW,OAAOoB,SAAShlW,GAAkCA,EAAE1lB,SAAS,MAAM4d,EAAEA,EAAEC,GAAKmrlC,GAAWtjlC,EAAE9H,EAAEC,EAAI,EAAImrlC,GAEvME,GAAU,SAASxjlC,EAAsB9H,EAAa5oB,GAA2B,IAAX,IAAImlC,EAAG,GAAYzlC,EAAEkpB,EAAGlpB,EAAEM,EAAGN,IAAKylC,EAAG9mC,KAAKmC,OAAOC,aAAa0zmC,GAAYzjlC,EAAEhxB,KAAM,OAAOylC,EAAG7gC,KAAK,GAAK,EAC5K8vmC,GAASja,GAAU,SAAgBzpkC,EAAuB9H,EAAc5oB,GAAgB,OAAQs0X,OAAOoB,SAAShlW,GAAqCA,EAAE1lB,SAAS,OAAO4d,EAAE5oB,GAAKk0mC,GAAQxjlC,EAAE9H,EAAE5oB,EAAI,EAAIk0mC,GAElMG,GAAW,SAAS3jlC,EAAsBhxB,GAAgB,IAAI8Q,EAAM80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAI4jmC,GAAO1jlC,EAAGhxB,EAAE,EAAEA,EAAE,EAAE8Q,EAAI,GAAK,EAAG,EACxI8jmC,GAAUD,GAEVE,GAAW,SAAS7jlC,EAAsBhxB,GAAgB,IAAI8Q,EAAM80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAI4jmC,GAAO1jlC,EAAGhxB,EAAE,EAAEA,EAAE,EAAE8Q,EAAI,GAAK,EAAG,EACxIgkmC,GAAUD,GAEVE,GAAY,SAAS/jlC,EAAsBhxB,GAAgB,IAAI8Q,EAAM,EAAE80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAI4jmC,GAAO1jlC,EAAGhxB,EAAE,EAAEA,EAAE,EAAE8Q,EAAI,GAAK,EAAG,EAC3IkkmC,GAAWD,GAEXE,GAAU,SAAejklC,EAAsBhxB,GAAgB,IAAI8Q,EAAM80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAIk0lC,GAAUh0kC,EAAGhxB,EAAE,EAAEA,EAAE,EAAE8Q,GAAO,EAAG,EAC9IokmC,GAASD,GAETE,GAAW,SAASnklC,EAAsBhxB,GAAgB,IAAI8Q,EAAM80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAI4jmC,GAAO1jlC,EAAGhxB,EAAE,EAAEA,EAAE,EAAE8Q,GAAO,EAAG,EACtIskmC,GAAUD,GAEVE,GAAY,SAASrklC,EAAuBjI,GAAkB,OAtDlE,SAAwBiI,EAAuBjI,GAI9C,IAHA,IAAIG,EAAI,EAAI,GAAK8H,EAAEjI,EAAM,KAAO,GAC5BzoB,IAAmB,IAAb0wB,EAAEjI,EAAM,KAAc,IAAOiI,EAAEjI,EAAM,KAAO,EAAK,IACvD8H,EAAc,GAATG,EAAEjI,EAAI,GACP/oB,EAAI,EAAGA,GAAK,IAAKA,EAAG6wB,EAAQ,IAAJA,EAAUG,EAAEjI,EAAM/oB,GAClD,OAAQ,MAALM,EAAwB,GAALuwB,EAAU3H,GAAI6rB,KAAYpT,KACxC,GAALrhC,EAAQA,GAAK,MACTA,GAAK,KAAMuwB,GAAKjwB,KAAK4jD,IAAI,EAAE,KAC3Bt7B,EAAItoB,KAAK4jD,IAAI,EAAGlkD,EAAI,IAAMuwB,EAClC,CA6CyEyklC,CAAetklC,EAAGjI,EAAK,EAC5FwslC,GAAWF,GAEXG,GAAS,SAAkBpslC,GAAK,OAAOxhB,MAAMiI,QAAQuZ,IAA6B,qBAAf0tE,YAA8B1tE,aAAa0tE,UAAa,EAa/H,SAAS2+gC,KACRzQ,GAAY,SAASh0kC,EAAsB9H,EAAa5oB,GAAgB,OAAO25lC,GAAS1mI,MAAMx83B,OAAO,KAAM/lE,EAAEhvB,MAAMknB,EAAE5oB,IAAIc,QAAQ+5lC,GAAM,GAAK,EAC5IuZ,GAAS,SAAS1jlC,EAAsB9H,EAAa5oB,GAAgB,OAAO25lC,GAAS1mI,MAAMx83B,OAAO,MAAO/lE,EAAEhvB,MAAMknB,EAAE5oB,GAAK,EACxHs0mC,GAAU,SAAS5jlC,EAAsBhxB,GAAgB,IAAI8Q,EAAM80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAImplC,GAAS1mI,MAAMx83B,OAAO0igC,GAAczokC,EAAEhvB,MAAMhC,EAAE,EAAGA,EAAE,EAAE8Q,EAAI,IAAM,EAAG,EAC3KgkmC,GAAU,SAAS9jlC,EAAsBhxB,GAAgB,IAAI8Q,EAAM80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAImplC,GAAS1mI,MAAMx83B,OAAOyigC,GAAkBxokC,EAAEhvB,MAAMhC,EAAE,EAAGA,EAAE,EAAE8Q,EAAI,IAAM,EAAG,EAC/KkkmC,GAAW,SAAShklC,EAAsBhxB,GAAgB,IAAI8Q,EAAM,EAAE80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAImplC,GAAS1mI,MAAMx83B,OAAO,KAAM/lE,EAAEhvB,MAAMhC,EAAE,EAAEA,EAAE,EAAE8Q,EAAI,IAAM,EAAG,EACrKokmC,GAAS,SAASlklC,EAAsBhxB,GAAgB,IAAI8Q,EAAM80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAImplC,GAAS1mI,MAAMx83B,OAAO,KAAM/lE,EAAEhvB,MAAMhC,EAAE,EAAEA,EAAE,EAAE8Q,IAAQ,EAAG,EAC/JskmC,GAAU,SAASpklC,EAAsBhxB,GAAgB,IAAI8Q,EAAM80lC,GAAe50kC,EAAEhxB,GAAI,OAAO8Q,EAAM,EAAImplC,GAAS1mI,MAAMx83B,OAAO,MAAO/lE,EAAEhvB,MAAMhC,EAAE,EAAEA,EAAE,EAAE8Q,IAAQ,EAAG,CAClK,CAnBG2plC,KACFma,GAAU,SAAiB5jlC,EAAuBhxB,GAAgB,IAAI40X,OAAOoB,SAAShlW,GAAoC,OAAO2jlC,GAAS3jlC,EAAGhxB,GAAI,IAAI8Q,EAAMkgB,EAAEuqW,aAAav7X,GAAI,OAAO8Q,EAAM,EAAIkgB,EAAE1lB,SAAS,OAAOtL,EAAE,EAAEA,EAAE,EAAE8Q,EAAI,GAAK,EAAG,EACrOgkmC,GAAU,SAAiB9jlC,EAAuBhxB,GAAgB,IAAI40X,OAAOoB,SAAShlW,GAAoC,OAAO6jlC,GAAS7jlC,EAAGhxB,GAAI,IAAI8Q,EAAMkgB,EAAEuqW,aAAav7X,GAAI,OAAO8Q,EAAM,EAAIkgB,EAAE1lB,SAAS,OAAOtL,EAAE,EAAEA,EAAE,EAAE8Q,EAAI,GAAK,EAAG,EACrOkkmC,GAAW,SAAkBhklC,EAAuBhxB,GAAgB,IAAI40X,OAAOoB,SAAShlW,GAAoC,OAAO+jlC,GAAU/jlC,EAAGhxB,GAAI,IAAI8Q,EAAM,EAAEkgB,EAAEuqW,aAAav7X,GAAI,OAAOgxB,EAAE1lB,SAAS,UAAUtL,EAAE,EAAEA,EAAE,EAAE8Q,EAAI,EAAG,EAC9NokmC,GAAS,SAAgBlklC,EAAuBhxB,GAAgB,IAAI40X,OAAOoB,SAAShlW,GAAoC,OAAOiklC,GAAQjklC,EAAGhxB,GAAI,IAAI8Q,EAAMkgB,EAAEuqW,aAAav7X,GAAI,OAAOgxB,EAAE1lB,SAAS,UAAUtL,EAAE,EAAEA,EAAE,EAAE8Q,EAAK,EACpNskmC,GAAU,SAAiBpklC,EAAuBhxB,GAAgB,IAAI40X,OAAOoB,SAAShlW,GAAoC,OAAOmklC,GAASnklC,EAAGhxB,GAAI,IAAI8Q,EAAMkgB,EAAEuqW,aAAav7X,GAAI,OAAOgxB,EAAE1lB,SAAS,OAAOtL,EAAE,EAAEA,EAAE,EAAE8Q,EAAK,EACpNykmC,GAAW,SAAiBvklC,EAAuBhxB,GAAgB,OAAG40X,OAAOoB,SAAShlW,GAAuCA,EAAE0rW,aAAa18X,GAAWq1mC,GAAUrklC,EAAEhxB,EAAI,EACvKw1mC,GAAS,SAAkBpslC,GAAK,OAAOwrW,OAAOoB,SAAS5sW,IAAMxhB,MAAMiI,QAAQuZ,IAA6B,qBAAf0tE,YAA8B1tE,aAAa0tE,UAAa,GAa3H,qBAAbmjgC,IAA0Bwb,KAEpC,IAAIhB,GAAc,SAASzjlC,EAAuBjI,GAA6B,OAAOiI,EAAEjI,EAAM,EAC1FsrlC,GAAiB,SAASrjlC,EAAuBjI,GAA6B,OAAgB,IAARiI,EAAEjI,EAAI,GAAWiI,EAAEjI,EAAM,EAC/G2slC,GAAgB,SAAS1klC,EAAuBjI,GAA6B,IAAI4D,EAAa,IAARqE,EAAEjI,EAAI,GAAWiI,EAAEjI,GAAM,OAAQ4D,EAAI,MAAUA,GAAyB,GAAnB,MAASA,EAAI,EAAU,EAClKi5kC,GAAiB,SAAS50kC,EAAuBjI,GAA6B,OAAOiI,EAAEjI,EAAI,IAAI,GAAG,KAAKiI,EAAEjI,EAAI,IAAI,KAAKiI,EAAEjI,EAAI,IAAI,GAAGiI,EAAEjI,EAAM,EAC3Iy7kC,GAAgB,SAASxzkC,EAAuBjI,GAA6B,OAAQiI,EAAEjI,EAAI,IAAI,GAAKiI,EAAEjI,EAAI,IAAI,GAAKiI,EAAEjI,EAAI,IAAI,EAAGiI,EAAEjI,EAAM,EACxI4slC,GAAgB,SAAS3klC,EAAuBjI,GAA6B,OAAQiI,EAAEjI,IAAM,GAAKiI,EAAEjI,EAAI,IAAI,GAAKiI,EAAEjI,EAAI,IAAI,EAAGiI,EAAEjI,EAAI,EAAI,EAE5I,SAASyllC,GAAUxomC,EAAiBsmB,GACnC,IAAUsplC,EAAsBC,EAAWl1kC,EAAG4mB,EAAIvnD,EAAG40W,EAAjD90U,EAAE,GAA8Bq0yB,EAAG,GACvC,OAAO7nzB,GACN,IAAK,OAEJ,GADAsoV,EAAM72W,KAAKorB,EACRsxkC,IAAW7luB,OAAOoB,SAASj4X,MAAO+hC,EAAI/hC,KAAKiE,MAAMjE,KAAKorB,EAAGprB,KAAKorB,EAAE,EAAEnjB,GAAMsF,SAAS,gBAC/E,IAAItL,EAAI,EAAGA,EAAIgG,IAAQhG,EAAK8/B,GAAGh/B,OAAOC,aAAaszmC,GAAet2mC,KAAM62W,IAAOA,GAAK,EACzF5uW,GAAQ,EACR,MAED,IAAK,OAAQ85B,EAAI40kC,GAAO32mC,KAAMA,KAAKorB,EAAGprB,KAAKorB,EAAInjB,GAAO,MACtD,IAAK,UAAWA,GAAQ,EAAG85B,EAAIklkC,GAAUjnmC,KAAMA,KAAKorB,EAAGprB,KAAKorB,EAAInjB,GAAO,MAEvE,IAAK,OACJ,GAAuB,qBAAbi0lC,GACL,OAAOuU,GAAU3mmC,KAAK9J,KAAMiI,EAAM,QADH85B,EAAIm6jC,GAAS1mI,MAAMx83B,OAAOyigC,GAAkBz7lC,KAAKiE,MAAMjE,KAAKorB,EAAGprB,KAAKorB,EAAE,EAAEnjB,IAE5GA,GAAO,EAAU,MAGlB,IAAK,aAAc85B,EAAI80kC,GAAQ72mC,KAAMA,KAAKorB,GAAInjB,EAAO,EAAI4/lC,GAAe7nmC,KAAMA,KAAKorB,GAAI,MACvF,IAAK,WAAY2W,EAAIg1kC,GAAQ/2mC,KAAMA,KAAKorB,GAAInjB,EAAO,EAAI4/lC,GAAe7nmC,KAAMA,KAAKorB,GAAI,MAErF,IAAK,SAAU2W,EAAIk1kC,GAASj3mC,KAAMA,KAAKorB,GAAInjB,EAAO,EAAI,EAAI4/lC,GAAe7nmC,KAAMA,KAAKorB,GAAI,MAExF,IAAK,OAAQnjB,EAAO,EAAK4/lC,GAAe7nmC,KAAMA,KAAKorB,GAAI2W,EAAIo1kC,GAAOn3mC,KAAMA,KAAKorB,GAAc,EAAPnjB,IAAaA,GAAQ,GAAG,MAE5G,IAAK,QAASA,EAAO,EAAK4/lC,GAAe7nmC,KAAMA,KAAKorB,GAAI2W,EAAIs1kC,GAAQr3mC,KAAMA,KAAKorB,GAAc,EAAPnjB,IAAaA,GAAQ,GAAY,EAAPA,IAAc,MAE9H,IAAK,OACJ,IADYA,EAAO,EAAG85B,EAAI,GACqB,KAAxCa,EAAE8zkC,GAAY12mC,KAAMA,KAAKorB,EAAInjB,OAAcmu0B,EAAGx10B,KAAKy7lC,GAASz5jC,IACnEb,EAAIq0yB,EAAGvv0B,KAAK,IAAK,MAClB,IAAK,QACJ,IADaoB,EAAO,EAAG85B,EAAI,GACmB,KAAvCa,EAAE0zkC,GAAet2mC,KAAKA,KAAKorB,EAAGnjB,KAAYmu0B,EAAGx10B,KAAKy7lC,GAASz5jC,IAAI36B,GAAM,EAC5EA,GAAM,EAAG85B,EAAIq0yB,EAAGvv0B,KAAK,IAAK,MAG3B,IAAK,YACJ,IADiBk7B,EAAI,GAAI80U,EAAM72W,KAAKorB,EAChCnpB,EAAI,EAAGA,EAAIgG,IAAQhG,EAAG,CACzB,GAAGjC,KAAKk1X,OAAoC,IAA5Bl1X,KAAKk1X,KAAKxxX,QAAQmzW,GAIjC,OAHAj0U,EAAI8zkC,GAAY12mC,KAAM62W,GACtB72W,KAAKorB,EAAIyrV,EAAM,EACfrtT,EAAKinjC,GAAU3mmC,KAAK9J,KAAMiI,EAAKhG,EAAG2gC,EAAI,YAAc,aAC7CwzyB,EAAGvv0B,KAAK,IAAM2iD,EAEtB4sxB,EAAGx10B,KAAKy7lC,GAASia,GAAet2mC,KAAM62W,KACtCA,GAAK,CACN,CAAE90U,EAAIq0yB,EAAGvv0B,KAAK,IAAKoB,GAAQ,EAAG,MAE/B,IAAK,QACJ,GAAuB,qBAAbi0lC,GAA0B,CACnCn6jC,EAAIm6jC,GAAS1mI,MAAMx83B,OAAOyigC,GAAkBz7lC,KAAKiE,MAAMjE,KAAKorB,EAAGprB,KAAKorB,EAAInjB,IACxE,KACD,CAED,IAAK,YACJ,IADiB85B,EAAI,GAAI80U,EAAM72W,KAAKorB,EAChCnpB,EAAI,EAAGA,GAAKgG,IAAQhG,EAAG,CAC1B,GAAGjC,KAAKk1X,OAAoC,IAA5Bl1X,KAAKk1X,KAAKxxX,QAAQmzW,GAIjC,OAHAj0U,EAAI8zkC,GAAY12mC,KAAM62W,GACtB72W,KAAKorB,EAAIyrV,EAAM,EACfrtT,EAAKinjC,GAAU3mmC,KAAK9J,KAAMiI,EAAKhG,EAAG2gC,EAAI,YAAc,aAC7CwzyB,EAAGvv0B,KAAK,IAAM2iD,EAEtB4sxB,EAAGx10B,KAAKy7lC,GAASqa,GAAY12mC,KAAM62W,KACnCA,GAAK,CACN,CAAE90U,EAAIq0yB,EAAGvv0B,KAAK,IAAK,MAEpB,QACD,OAAOoB,GACN,KAAK,EAA6C,OAA1C4vmC,EAAKnB,GAAY12mC,KAAMA,KAAKorB,GAAIprB,KAAKorB,IAAYyslC,EACzD,KAAK,EAAiF,OAA9EA,GAAY,MAANtplC,EAAYoplC,GAAgBrB,IAAgBt2mC,KAAMA,KAAKorB,GAAIprB,KAAKorB,GAAK,EAAUyslC,EAC7F,KAAK,EAAG,KAAM,EACb,MAAS,MAANtplC,GAAwC,KAAR,IAAjBvuB,KAAKA,KAAKorB,EAAE,KAAmByslC,GAAO5vmC,EAAO,EAAKw+lC,GAAgBmR,IAAe53mC,KAAMA,KAAKorB,GAAIprB,KAAKorB,GAAK,EAAUyslC,IAC/HC,EAAKjQ,GAAe7nmC,KAAMA,KAAKorB,GAAIprB,KAAKorB,GAAK,EAAY0slC,GACjE,KAAK,EAAG,KAAM,EACb,GAAS,MAANvplC,EAGW,OAFCuplC,EAAH,GAAR7vmC,EAAgBuvmC,GAASx3mC,KAAMA,KAAKorB,GAC7BoslC,GAAS,CAACx3mC,KAAKA,KAAKorB,EAAE,GAAGprB,KAAKA,KAAKorB,EAAE,GAAGprB,KAAKA,KAAKorB,EAAE,GAAGprB,KAAKA,KAAKorB,EAAE,GAAGprB,KAAKA,KAAKorB,EAAE,GAAGprB,KAAKA,KAAKorB,EAAE,GAAGprB,KAAKA,KAAKorB,EAAE,GAAGprB,KAAKA,KAAKorB,EAAE,IAAK,GAC9IprB,KAAKorB,GAAK,EAAU0slC,EACd7vmC,EAAO,EAEf,KAAK,GAAI85B,EAAIy0kC,GAAUx2mC,KAAMA,KAAKorB,EAAGnjB,IAExB,OAAdjI,KAAKorB,GAAGnjB,EAAa85B,CACtB,CAEA,IAAIg2kC,GAAkB,SAAS9klC,EAAuBlI,EAAgBC,GAA2BiI,EAAEjI,GAAc,IAAND,EAAakI,EAAEjI,EAAI,GAAOD,IAAQ,EAAK,IAAOkI,EAAEjI,EAAI,GAAOD,IAAQ,GAAM,IAAOkI,EAAEjI,EAAI,GAAOD,IAAQ,GAAM,GAAO,EACzNitlC,GAAkB,SAAS/klC,EAAuBlI,EAAgBC,GAA2BiI,EAAEjI,GAAc,IAAND,EAAakI,EAAEjI,EAAI,GAAOD,GAAO,EAAK,IAAOkI,EAAEjI,EAAI,GAAOD,GAAO,GAAM,IAAOkI,EAAEjI,EAAI,GAAOD,GAAO,GAAM,GAAO,EACtNktlC,GAAkB,SAAShllC,EAAuBlI,EAAgBC,GAA2BiI,EAAEjI,GAAc,IAAND,EAAakI,EAAEjI,EAAI,GAAOD,IAAQ,EAAK,GAAO,EAEzJ,SAASmtlC,GAAW3plC,EAAcxD,EAAuBO,GACxD,IAAIrjB,EAAO,EAAGhG,EAAI,EAClB,GAAS,SAANqpB,EAAc,CAEhB,IAAIrpB,EAAI,EAAGA,GAAK8oB,EAAI1qB,SAAU4B,EAAGg2mC,GAAgBj4mC,KAAM+qB,EAAIlnB,WAAW5B,GAAIjC,KAAKorB,EAAI,EAAInpB,GACvFgG,EAAO,EAAI8iB,EAAI1qB,MAChB,MAAO,GAAS,SAANirB,EAAc,CACvB,GAAuB,qBAAb4wkC,IAA4C,KAAhBR,GAGrC,IAAIz5lC,EAAI,EAAGA,GAAK8oB,EAAI1qB,SAAU4B,EAAG,CAChC,IAAIk2mC,EAAYjc,GAAS1mI,MAAM973B,OAAOgigC,GAAc3wkC,EAAIT,OAAOroB,IAC/DjC,KAAKA,KAAKorB,EAAInpB,GAAKk2mC,EAAU,EAC9B,MAKA,IAFAptlC,EAAMA,EAAI1nB,QAAQ,gBAAiB,KAE/BpB,EAAI,EAAGA,GAAK8oB,EAAI1qB,SAAU4B,EAAGjC,KAAKA,KAAKorB,EAAInpB,GAA0B,IAApB8oB,EAAIlnB,WAAW5B,GAErEgG,EAAO8iB,EAAI1qB,MACZ,KAAO,IAAS,QAANirB,EAAa,CACtB,KAAMrpB,EAAIssB,IAAKtsB,EAEdjC,KAAKA,KAAKorB,KAAQhB,SAASW,EAAI9mB,MAAM,EAAEhC,EAAG,EAAEA,EAAE,GAAI,KAAK,EACtD,OAAOjC,IACV,CAAO,GAAS,YAANsrB,EAAiB,CAEzB,IAAItnB,EAAiBnB,KAAK8mB,IAAI3pB,KAAKorB,EAAImD,EAAGvuB,KAAKK,QAC/C,IAAI4B,EAAI,EAAGA,EAAIY,KAAK8mB,IAAIoB,EAAI1qB,OAAQkuB,KAAMtsB,EAAG,CAC5C,IAAI6xb,EAAK/oa,EAAIlnB,WAAW5B,GACxBjC,KAAKA,KAAKorB,KAAa,IAAL0oa,EAClB9zb,KAAKA,KAAKorB,KAAQ0oa,GAAM,CACzB,CACA,KAAM9zb,KAAKorB,EAAIpnB,GAAKhE,KAAKA,KAAKorB,KAAO,EACrC,OAAOprB,IACT,CAA2C,OAAOuuB,GACjD,KAAM,EAAGtmB,EAAO,EAAGjI,KAAKA,KAAKorB,GAAS,IAAJL,EAAU,MAC5C,KAAM,EAAG9iB,EAAO,EAAGjI,KAAKA,KAAKorB,GAAS,IAAJL,EAAUA,KAAS,EAAG/qB,KAAKA,KAAKorB,EAAE,GAAS,IAAJL,EAAU,MACnF,KAAM,EAAG9iB,EAAO,EAAGjI,KAAKA,KAAKorB,GAAS,IAAJL,EAAUA,KAAS,EAAG/qB,KAAKA,KAAKorB,EAAE,GAAS,IAAJL,EAAUA,KAAS,EAAG/qB,KAAKA,KAAKorB,EAAE,GAAS,IAAJL,EAAU,MAC1H,KAAM,EAAG9iB,EAAO,EAAG8vmC,GAAgB/3mC,KAAM+qB,EAAK/qB,KAAKorB,GAAI,MACvD,KAAM,EAAa,GAAVnjB,EAAO,EAAY,MAANqjB,EAAW,EA/MnC,SAAyB2H,EAAuBqP,EAActX,GAC7D,IAAIo3C,GAAS9/B,EAAI,GAAO,EAAEA,IAAK,IAAc,EAAI,IAAM,EAAI//B,EAAI,EAAGuwB,EAAI,EAClE01e,EAAKpmc,GAAO9/B,EAAKA,EACjB61B,SAASqwc,GACC,GAANA,EAASjmgB,EAAIuwB,EAAI,GAExBvwB,EAAIM,KAAK2/B,MAAM3/B,KAAK2hD,IAAIgkd,GAAM3lgB,KAAKklD,KACnCj1B,EAAI01e,EAAK3lgB,KAAK4jD,IAAI,EAAG,GAAKlkD,GACtBA,IAAM,QAAW41D,SAASrlC,IAAOA,EAAIjwB,KAAK4jD,IAAI,EAAE,KAASlkD,GAAK,MAC3DuwB,GAAKjwB,KAAK4jD,IAAI,EAAE,IAAKlkD,GAAG,QANZA,EAAI,KAAOuwB,EAAI2gB,MAAMnR,GAAK,MAAS,GAQvD,IAAI,IAAIrgC,EAAI,EAAGA,GAAK,IAAKA,EAAG6wB,GAAG,IAAKG,EAAEjI,EAAM/oB,GAAS,IAAJ6wB,EACjDG,EAAEjI,EAAM,IAAW,GAAJzoB,IAAa,EAAU,GAAJuwB,EAClCG,EAAEjI,EAAM,GAAMzoB,GAAK,EAAK6/D,CACzB,CAiMqCg2iC,CAAgBp4mC,KAAM+qB,EAAK/qB,KAAKorB,GAAI,KAAO,CAE9E,KAAK,GAAI,MACT,KAAM,EAAGnjB,EAAO,EAAG+vmC,GAAeh4mC,KAAM+qB,EAAK/qB,KAAKorB,GACnD,CACgB,OAAhBprB,KAAKorB,GAAKnjB,EAAajI,IACxB,CAEA,SAAS0wmC,GAAW2H,EAAmBC,GACtC,IAAIxllC,EAAI0jlC,GAAUx2mC,KAAKA,KAAKorB,EAAEitlC,EAAOh4mC,QAAQ,GAC7C,GAAGyyB,IAAMullC,EAAQ,MAAM,IAAIrmmC,MAAMsmmC,EAAM,YAAcD,EAAS,QAAUvllC,GACxE9yB,KAAKorB,GAAKitlC,EAAOh4mC,QAAQ,CAC1B,CAEA,SAAS8jmC,GAAUvs0B,EAAM56L,GACxB46L,EAAKxsQ,EAAI4xE,EACT46L,EAAKws0B,WAAoBqM,GACzB740B,EAAK+t0B,IAAM+K,GACX940B,EAAKqs0B,YAAciU,EACpB,CAEA,SAASK,GAAU3g1B,EAAMv3R,GAAoCu3R,EAAKxsQ,GAAK/qB,CAAQ,CAE/E,SAASunmC,GAAQ99pB,GAChB,IAAI/na,EAAI86jC,GAAY/ypB,GAEpB,OADAq6pB,GAAUpikC,EAAG,GACNA,CACR,CAGA,SAASy2kC,GAAa77jC,EAAMxO,EAAuBs0D,GAClD,GAAI9lD,EAAJ,CACA,IAAI87jC,EAASC,EAASr4mC,EACtB8jmC,GAAUxnjC,EAAMA,EAAKvxB,GAAK,GAE1B,IADA,IAAI6b,EAAI0V,EAAKt8C,OAAQs4mC,EAAK,EAAGtU,EAAM,EAC7B1njC,EAAKvxB,EAAI6b,GAAG,CAET,KADR0xkC,EAAKh8jC,EAAKynjC,WAAW,MACPuU,GAAW,IAALA,KAAoC,IAArBh8jC,EAAKynjC,WAAW,KAAY,IAC/D,IAAI3niC,EAAIm8iC,GAAeD,IAAOC,GAAe,OAG7C,IADAv4mC,EAAmB,KADnBo4mC,EAAU97jC,EAAKynjC,WAAW,IAEtBsU,EAAU,EAAGA,EAAS,GAAgB,IAAVD,IAAmBC,EAASr4mC,IAA4C,KAAhCo4mC,EAAU97jC,EAAKynjC,WAAW,MAAc,EAAEsU,EAClHrU,EAAM1njC,EAAKvxB,EAAI/qB,EACf,IAAI4T,EAAIwoD,EAAEnxC,GAAKmxC,EAAEnxC,EAAEqxB,EAAMt8C,EAAQoiG,GAEjC,GADA9lD,EAAKvxB,EAAIi5kC,EACNl2jC,EAAGl6B,EAAGwoD,EAAGk8iC,GAAK,MAClB,CAfgB,CAgBjB,CAGA,SAAS1znB,KACR,IAAIk4mB,EAAwB,GAAI0b,EAAQnc,GAAU,IAAM,KACpDoc,EAAS,SAAmBhvqB,GAC/B,IAAI/na,EAAe6lkC,GAAQ99pB,GAE3B,OADAq6pB,GAAUpikC,EAAG,GACNA,CACR,EAEIg3kC,EAAmBD,EAAOD,GAE1BG,EAAS,WACRD,IACDA,EAAO14mC,OAAS04mC,EAAO3tlC,KAAK2tlC,EAASA,EAAO90mC,MAAM,EAAG80mC,EAAO3tlC,IAAWA,EAAI2tlC,EAAO14mC,QAClF04mC,EAAO14mC,OAAS,GAAG88lC,EAAKv8lC,KAAKm4mC,GAChCA,EAAS,KACV,EAEI3zmC,EAAO,SAAiB0kc,GAC3B,OAAGivqB,GAAWjvqB,EAAMivqB,EAAO14mC,OAAS04mC,EAAO3tlC,EAAY2tlC,GACvDC,IACQD,EAASD,EAAOj2mC,KAAK6mB,IAAIogb,EAAG,EAAG+uqB,IACxC,EASA,MAAQ,CAAEzzmC,KAAKA,EAAMxE,KAFV,SAAiBq3R,GAAO+g1B,IAAuC,OAA7BD,EAAS9g1B,GAAe7sQ,IAAW2tlC,EAAO3tlC,EAAI2tlC,EAAO14mC,QAAQ+E,EAAKyzmC,EAAQ,EAEvF70mC,IAPtB,WAET,OADAg1mC,IACO9b,GAAQC,EAChB,EAIyC8b,MAAM9b,EAChD,CAqBA,SAAS+b,GAAep5iC,EAAsBukiC,EAAa5hgC,GAC1D,IAAI58B,EAAMwwY,GAAIv2Y,GAQd,GAPGukiC,EAAIl5kC,GACH06C,EAAIsziC,OAAMtziC,EAAI7jC,GAAKqikC,EAAIl5kC,EAAE6W,GACzB6jC,EAAIuziC,OAAMvziC,EAAIx3C,GAAKg2kC,EAAIl5kC,EAAEkD,KAEzBw3C,EAAIsziC,OAAMtziC,EAAI7jC,GAAKqikC,EAAIrikC,GACvB6jC,EAAIuziC,OAAMvziC,EAAIx3C,GAAKg2kC,EAAIh2kC,KAEvBo0E,GAAQA,EAAK42gC,KAAO,GAAI,CAC3B,KAAMxziC,EAAI7jC,GAAK,KAAO6jC,EAAI7jC,GAAK,IAC/B,KAAM6jC,EAAIx3C,GAAK,OAASw3C,EAAIx3C,GAAK,KAClC,CACA,OAAOw3C,CACR,CAEA,SAASyziC,GAAgBx5iC,EAAMhpB,EAAO2rD,GACrC,IAAI58B,EAAMwwY,GAAIv2Y,GAGd,OAFA+F,EAAI16C,EAAI+tlC,GAAerziC,EAAI16C,EAAG2rB,EAAM3rB,EAAGs3E,GACvC58B,EAAItjE,EAAI22mC,GAAerziC,EAAItjE,EAAGu0C,EAAM3rB,EAAGs3E,GAChC58B,CACR,CAEA,SAAS0ziC,GAAgBv3kC,EAAmBq3kC,GAC3C,GAAGr3kC,EAAEm3kC,MAAQn3kC,EAAEA,EAAI,EAAiB,IAAZA,EAAIq0a,GAAIr0a,GAAUA,EAAEA,EAAI,GAAGA,EAAEA,GAAMq3kC,EAAO,EAAK,MAAS,IAChF,GAAGr3kC,EAAEo3kC,MAAQp3kC,EAAE3T,EAAI,EAAiB,IAAZ2T,EAAIq0a,GAAIr0a,GAAUA,EAAE3T,EAAI,GAAG2T,EAAE3T,GAAMgrlC,EAAO,EAAK,QAAaA,EAAO,EAAK,MAAU,MAC1G,IAAIlulC,EAAIqulC,GAAYx3kC,GAGpB,OAFIA,EAAEm3kC,MAAkB,MAAVn3kC,EAAEm3kC,OAAchulC,EAAYA,EAyBgB9nB,QAAQ,WAAW,SAxBzE2+B,EAAEo3kC,MAAkB,MAAVp3kC,EAAEo3kC,OAAcjulC,EAmB/B,SAAiB4mF,GAA8B,OAAOA,EAAK1uG,QAAQ,kBAAkB,SAAW,CAnB7Do2mC,CAAQtulC,IACnCA,CACR,CAEA,SAASuulC,GAAiBrrlC,EAAGo0E,GAC5B,OAAY,GAATp0E,EAAElD,EAAEkD,GAAWA,EAAElD,EAAEiulC,MAClB/qlC,EAAE9rB,EAAE8rB,IAAMo0E,EAAK42gC,MAAQ,GAAK,QAAW52gC,EAAK42gC,MAAQ,EAAI,MAAU,QAAahrlC,EAAE9rB,EAAE62mC,KAI3E,GAAT/qlC,EAAElD,EAAE6W,GAAW3T,EAAElD,EAAEgulC,MAClB9qlC,EAAE9rB,EAAEy/B,IAAMygE,EAAK42gC,MAAQ,GAAK,MAAS,MAAUhrlC,EAAE9rB,EAAE42mC,KAIhDI,GAAgBlrlC,EAAElD,EAAGs3E,EAAK42gC,MAAQ,IAAME,GAAgBlrlC,EAAE9rB,EAAGkgG,EAAK42gC,OAH/DhrlC,EAAElD,EAAEiulC,KAAO,GAAK,KAAOO,GAAWtrlC,EAAElD,EAAEkD,GAAK,KAAOA,EAAE9rB,EAAE62mC,KAAO,GAAK,KAAOO,GAAWtrlC,EAAE9rB,EAAE8rB,IALxFA,EAAElD,EAAEgulC,KAAO,GAAK,KAAOS,GAAWvrlC,EAAElD,EAAE6W,GAAK,KAAO3T,EAAE9rB,EAAE42mC,KAAO,GAAK,KAAOS,GAAWvrlC,EAAE9rB,EAAEy/B,EASnG,CACA,SAAS63kC,GAAWC,GAAgC,OAAO1vlC,SAAmB0vlC,EAGjBz2mC,QAAQ,WAAW,MAHM,IAAM,CAAG,CAC/F,SAASs2mC,GAAWlkkC,GAA6B,MAAO,IAAMA,EAAM,EAAI,CAIxE,SAASskkC,GAAWC,GAAyE,IAAzC,IAAIh4kC,EAAcg4kC,EAGT32mC,QAAQ,aAAa,MAHH4Q,EAAI,EAAGhS,EAAI,EAASA,IAAM+/B,EAAE3hC,SAAU4B,EAAGgS,EAAI,GAAGA,EAAI+tB,EAAEn+B,WAAW5B,GAAK,GAAI,OAAOgS,EAAI,CAAG,CACvK,SAAS2lmC,GAAW3unB,GAA6B,GAAGA,EAAM,EAAG,MAAM,IAAIj5e,MAAM,kBAAoBi5e,GAAM,IAAI9/d,EAAE,GAAI,MAAM8/d,EAAKA,EAAKA,EAAIpof,KAAK2/B,OAAOyod,EAAI,GAAG,IAAK9/d,EAAIpoB,OAAOC,cAAeiof,EAAI,GAAG,GAAM,IAAM9/d,EAAG,OAAOA,CAAG,CAMvN,SAAS8ulC,GAAYlogC,GAEpB,IADA,IAAIt1C,EAAI,EAAGwC,EAAI,EACPh9D,EAAI,EAAGA,EAAI8vG,EAAK1xG,SAAU4B,EAAG,CACpC,IAAI6xb,EAAK/hV,EAAKluG,WAAW5B,GACtB6xb,GAAM,IAAMA,GAAM,GAAIr3X,EAAI,GAAKA,GAAKq3X,EAAK,IACpCA,GAAM,IAAMA,GAAM,KAAI70X,EAAI,GAAKA,GAAK60X,EAAK,IAClD,CACA,MAAO,CAAE9xZ,EAAGi9B,EAAI,EAAG5wC,EAAEouC,EAAI,EAC1B,CAEA,SAAS+8iC,GAAY15iC,GAGpB,IAFA,IAAImrb,EAAMnrb,EAAK99B,EAAI,EACf7W,EAAE,GACA8/d,EAAKA,GAAMA,EAAI,GAAG,GAAI,EAAG9/d,EAAIpoB,OAAOC,cAAeiof,EAAI,GAAG,GAAM,IAAM9/d,EAC5E,OAAOA,GAAK20C,EAAKzxC,EAAI,EACtB,CACA,SAAS6rlC,GAAapjkC,GACrB,IAAI9rB,EAAM8rB,EAAMpzC,QAAQ,KACxB,OAAW,GAARsnB,EAAkB,CAAEG,EAAG8ulC,GAAYnjkC,GAAQv0C,EAAG03mC,GAAYnjkC,IACtD,CAAE3rB,EAAG8ulC,GAAYnjkC,EAAM7yC,MAAM,EAAG+mB,IAAOzoB,EAAG03mC,GAAYnjkC,EAAM7yC,MAAM+mB,EAAM,IAChF,CAEA,SAASmvlC,GAAa1lwB,EAA0Bivd,GAC/C,MAAiB,qBAAPA,GAAoC,kBAAPA,EAE/By2S,GAAa1lwB,EAAGtpV,EAAGspV,EAAGlyW,IAGb,kBAAPkyW,IAAiBA,EAAK+kwB,GAAa/kwB,IAC5B,kBAAPivd,IAAiBA,EAAK81S,GAAa91S,IAGtCjvd,GAAMivd,EAAKjvd,EAAKA,EAAK,IAAMivd,EACnC,CAEA,SAAS02S,GAAkBtjkC,GAC1B,IAAI/U,EAAI,CAAC5W,EAAE,CAAC6W,EAAE,EAAE3T,EAAE,GAAG9rB,EAAE,CAACy/B,EAAE,EAAE3T,EAAE,IAC1BrD,EAAM,EAAG/oB,EAAI,EAAG6xb,EAAK,EACrB/gb,EAAM+jC,EAAMz2C,OAChB,IAAI2qB,EAAM,EAAG/oB,EAAI8Q,MACZ+gb,EAAGh9Y,EAAMjzC,WAAW5B,GAAG,IAAM,GAAK6xb,EAAK,MADpB7xb,EAEvB+oB,EAAM,GAAGA,EAAM8oa,EAIhB,IAFA/xZ,EAAE5W,EAAE6W,IAAMhX,EAENA,EAAM,EAAG/oB,EAAI8Q,MACZ+gb,EAAGh9Y,EAAMjzC,WAAW5B,GAAG,IAAM,GAAK6xb,EAAK,KADpB7xb,EAEvB+oB,EAAM,GAAGA,EAAM8oa,EAIhB,GAFA/xZ,EAAE5W,EAAEkD,IAAMrD,EAEP/oB,IAAM8Q,GAAa,IAAN+gb,EAAsC,OAA1B/xZ,EAAEx/B,EAAEy/B,EAAED,EAAE5W,EAAE6W,EAAGD,EAAEx/B,EAAE8rB,EAAE0T,EAAE5W,EAAEkD,EAAU0T,EAG7D,MAFE9/B,EAEE+oB,EAAM,EAAG/oB,GAAK8Q,MACb+gb,EAAGh9Y,EAAMjzC,WAAW5B,GAAG,IAAM,GAAK6xb,EAAK,MADnB7xb,EAExB+oB,EAAM,GAAGA,EAAM8oa,EAIhB,IAFA/xZ,EAAEx/B,EAAEy/B,IAAMhX,EAENA,EAAM,EAAG/oB,GAAK8Q,MACb+gb,EAAGh9Y,EAAMjzC,WAAW5B,GAAG,IAAM,GAAK6xb,EAAK,KADnB7xb,EAExB+oB,EAAM,GAAGA,EAAM8oa,EAGhB,OADA/xZ,EAAEx/B,EAAE8rB,IAAMrD,EACH+W,CACR,CAEA,SAASs4kC,GAAiBv6iC,EAAex9B,GACxC,IAAI6I,EAAe,KAAV20B,EAAKvxC,GAAY+T,aAAaqB,KACvC,GAAa,MAAVm8B,EAAKx3D,EAAW,IAAM,OAAQw3D,EAAKl9B,EAAI08jC,GAAWx/hC,EAAKx3D,EAAG6iC,EAAI8lkC,GAAQ3ukC,GAAKA,EAAK,CAAE,MAAM//B,IAAK,CAChG,IAAM,OAAQu9D,EAAKl9B,EAAI08jC,IAAYx/hC,EAAKw6iC,IAAI,CAAC,GAAGC,WAAWpvkC,EAAI,GAAK,GAAKA,EAAI8lkC,GAAQ3ukC,GAAKA,EAAK,CAAE,MAAM//B,IAAK,MAAO,GAAG+/B,CAAG,CAC1H,CAEA,SAASk4kC,GAAY16iC,EAAex9B,EAAWP,GAC9C,OAAW,MAAR+9B,GAA0B,MAAVA,EAAKvxC,GAAuB,KAAVuxC,EAAKvxC,EAAiB,QAC7CztB,IAAXg/D,EAAKl9B,EAAwBk9B,EAAKl9B,GACxB,KAAVk9B,EAAKvxC,IAAauxC,EAAKx3D,GAAKy5B,GAAKA,EAAEkgkC,SAAQniiC,EAAKx3D,EAAIy5B,EAAEkgkC,QAC5C,KAAVniiC,EAAKvxC,EAAiBkslC,GAAK36iC,EAAKx9B,IAAMw9B,EAAKx9B,EACpB+3kC,GAAiBv6iC,OAAnCh/D,GAALwhC,EAA8Cw9B,EAAKx9B,EACxBA,GAC/B,CAEA,SAASo4kC,GAAkB14mC,EAAqBygG,GAC/C,IAAIt4E,EAAIs4E,GAAQA,EAAKzgG,MAAQygG,EAAKzgG,MAAQ,SACtC24mC,EAAS,CAAC,EACd,OADiBA,EAAOxwlC,GAAKnoB,EACtB,CAAE44mC,WAAY,CAACzwlC,GAAI0wlC,OAAQF,EACnC,CAEA,SAASG,GAAcC,EAAoBp+jC,EAAc8lD,GACxD,IAAI1gE,EAAI0gE,GAAQ,CAAC,EACbwu7B,EAAQ8pF,EAAMlxmC,MAAMiI,QAAQipmC,GAAOh5kC,EAAEkv/B,MAEzC,IAAIhulB,EAAmB83qB,IAAQ9pF,EAAS,GAAe,CAAC,GACpD+pF,EAAK,EAAGC,EAAK,EACjB,GAAGh4qB,GAAkB,MAAZlha,EAAE+f,OAAgB,CAC1B,GAAsB,iBAAZ/f,EAAE+f,OAAoBk5jC,EAAKj5kC,EAAE+f,WAClC,CACJ,IAAIo5jC,EAA6C,iBAAZn5kC,EAAE+f,OAAqBm4jC,GAAYl4kC,EAAE+f,QAAU/f,EAAE+f,OACtFk5jC,EAAKE,EAAQ7slC,EAAG4slC,EAAKC,EAAQl5kC,CAC9B,CACIiha,EAAG,UAASA,EAAG,QAAU,QAC9B,CACA,IAAInsZ,EAAmB,CAAC3rB,EAAG,CAAC6W,EAAE,IAAU3T,EAAE,KAAW9rB,EAAG,CAACy/B,EAAE,EAAG3T,EAAE,IAChE,GAAG40a,EAAG,QAAS,CACd,IAAI12R,EAAS6t8B,GAAkBn3qB,EAAG,SAClCnsZ,EAAM3rB,EAAE6W,EAAIuqI,EAAOphJ,EAAE6W,EACrB8U,EAAM3rB,EAAEkD,EAAIk+I,EAAOphJ,EAAEkD,EACrByoB,EAAMv0C,EAAEy/B,EAAIn/B,KAAK6mB,IAAIotB,EAAMv0C,EAAEy/B,EAAGuqI,EAAOhqK,EAAEy/B,GACzC8U,EAAMv0C,EAAE8rB,EAAIxrB,KAAK6mB,IAAIotB,EAAMv0C,EAAE8rB,EAAGk+I,EAAOhqK,EAAE8rB,IAC/B,GAAP2slC,IAAUlkkC,EAAMv0C,EAAE8rB,EAAI2slC,EAAKzu8B,EAAOhqK,EAAE8rB,EAAI,EAC5C,CACA,IAAI,IAAIouC,EAAI,EAAGA,GAAK9f,EAAKt8C,SAAUo8D,EAClC,GAAI9f,EAAK8f,GAAT,CACA,IAAI5yD,MAAMiI,QAAQ6qC,EAAK8f,IAAK,MAAM,IAAIzqD,MAAM,2CAC5C,IAAI,IAAIitD,EAAI,EAAGA,GAAKtiB,EAAK8f,GAAGp8D,SAAU4+D,EACrC,GAAyB,qBAAftiB,EAAK8f,GAAGwC,GAAlB,CACA,IAAIa,EAAiB,CAACx9B,EAAGqa,EAAK8f,GAAGwC,IAC7Bk8iC,EAAMH,EAAKv+iC,EAAG2+iC,EAAMH,EAAKh8iC,EAK7B,GAJGnoB,EAAM3rB,EAAEkD,EAAI8slC,IAAKrkkC,EAAM3rB,EAAEkD,EAAI8slC,GAC7BrkkC,EAAM3rB,EAAE6W,EAAIo5kC,IAAKtkkC,EAAM3rB,EAAE6W,EAAIo5kC,GAC7BtkkC,EAAMv0C,EAAE8rB,EAAI8slC,IAAKrkkC,EAAMv0C,EAAE8rB,EAAI8slC,GAC7BrkkC,EAAMv0C,EAAEy/B,EAAIo5kC,IAAKtkkC,EAAMv0C,EAAEy/B,EAAIo5kC,IAC7Bz+jC,EAAK8f,GAAGwC,IAA4B,kBAAftiB,EAAK8f,GAAGwC,IAAoBp1D,MAAMiI,QAAQ6qC,EAAK8f,GAAGwC,KAAStiB,EAAK8f,GAAGwC,aAAct7B,KAGxG,GADG95B,MAAMiI,QAAQguD,EAAKx9B,KAAMw9B,EAAKx0C,EAAIqxB,EAAK8f,GAAGwC,GAAG,GAAIa,EAAKx9B,EAAIw9B,EAAKx9B,EAAE,IACtD,OAAXw9B,EAAKx9B,EACP,GAAGw9B,EAAKx0C,EAAGw0C,EAAKvxC,EAAI,SACf,GAAGwT,EAAEs5kC,UAAav7iC,EAAKvxC,EAAI,IAAKuxC,EAAKx9B,EAAI,MACzC,KAAIP,EAAEu5kC,WAAY,SAClBx7iC,EAAKvxC,EAAI,GAAG,KAEQ,kBAAXuxC,EAAKx9B,EAAgBw9B,EAAKvxC,EAAI,IACnB,mBAAXuxC,EAAKx9B,EAAiBw9B,EAAKvxC,EAAI,IACtCuxC,EAAKx9B,aAAaqB,MACzBm8B,EAAKx3D,EAAIy5B,EAAEkgkC,QAAUlE,GAAU,IAC5Bh8jC,EAAEw5kC,WAAaz7iC,EAAKvxC,EAAI,IAAKuxC,EAAKl9B,EAAI08jC,GAAWx/hC,EAAKx3D,EAAG2omC,GAAQnxiC,EAAKx9B,MAClEw9B,EAAKvxC,EAAI,IAAKuxC,EAAKx9B,EAAI2ukC,GAAQnxiC,EAAKx9B,GAAIw9B,EAAKl9B,EAAI08jC,GAAWx/hC,EAAKx3D,EAAGw3D,EAAKx9B,KAE5Ew9B,EAAKvxC,EAAI,SAhBiGuxC,EAAOnjB,EAAK8f,GAAGwC,GAkB/H,GAAGgy9B,EACEhulB,EAAGk4qB,KAAMl4qB,EAAGk4qB,GAAO,IACpBl4qB,EAAGk4qB,GAAKC,IAAQn4qB,EAAGk4qB,GAAKC,GAAK9ymC,IAAGw3D,EAAKx3D,EAAI26b,EAAGk4qB,GAAKC,GAAK9ymC,GACzD26b,EAAGk4qB,GAAKC,GAAOt7iC,MACT,CACN,IAAI07iC,EAAWhC,GAAa,CAACx3kC,EAAEo5kC,EAAI/slC,EAAE8slC,IAClCl4qB,EAAGu4qB,IAAav4qB,EAAGu4qB,GAAUlzmC,IAAGw3D,EAAKx3D,EAAI26b,EAAGu4qB,GAAUlzmC,GACzD26b,EAAGu4qB,GAAY17iC,CAChB,CAjC8C,CAH1B,CAwCtB,OADGhpB,EAAM3rB,EAAE6W,EAAI,MAAUiha,EAAG,QAAUk3qB,GAAarjkC,IAC5CmsZ,CACR,CACA,SAASw4qB,GAAa9+jC,EAAc8lD,GAA+B,OAAOq4gC,GAAc,KAAMn+jC,EAAM8lD,EAAO,CAY3G,SAASi5gC,GAAmB/+jC,GAC3B,IAAIg/jC,EAAgBh/jC,EAAKynjC,WAAW,GACpC,OAAyB,IAAlBuX,EAAsB,GAAKh/jC,EAAKynjC,WAAWuX,EAAe,OAClE,CAeA,SAASC,GAAaj/jC,GACrB,MAAO,CAAE2+Z,IAAK3+Z,EAAKynjC,WAAW,GAAIyX,KAAMl/jC,EAAKynjC,WAAW,GACzD,CASA,SAAS0X,GAAcn/jC,EAAMt8C,GAC5B,IAAIymB,EAAQ61B,EAAKvxB,EACbghF,EAAQzvD,EAAKynjC,WAAW,GACxBvxlC,EAAM6omC,GAAmB/+jC,GACzBo/jC,EAAY,GACZzzmC,EAAK,CAAEimB,EAAG1b,EAAKC,EAAGD,GACtB,GAAoB,KAAP,EAARu5F,GAAkB,CAGtB,IADA,IAAI4vgC,EAAer/jC,EAAKynjC,WAAW,GAC1BnimC,EAAI,EAAGA,GAAK+5mC,IAAgB/5mC,EAAG85mC,EAAUn7mC,KAAKg7mC,GAAaj/jC,IACpEr0C,EAAE+lB,EAAI0tlC,CACP,MACKzzmC,EAAE+lB,EAAI,CAAC,CAAEitb,IAAK,EAAGugqB,KAAM,IAK5B,OADAl/jC,EAAKvxB,EAAItE,EAAQzmB,EACViI,CACR,CASA,IAAI2zmC,GAAuBH,GAY3B,SAASI,GAAev/jC,GACvB,IAAIsuc,EAAMtuc,EAAKynjC,WAAW,GACtB+X,EAAYx/jC,EAAKynjC,WAAW,GAGhC,OAFA+X,GAAax/jC,EAAKynjC,WAAW,IAAM,GACnCznjC,EAAKvxB,IACE,CAAE4W,EAAGipd,EAAKkxnB,UAAWA,EAC7B,CAUA,SAASC,GAAoBz/jC,GAC5B,IAAIw/jC,EAAYx/jC,EAAKynjC,WAAW,GAGhC,OAFA+X,GAAax/jC,EAAKynjC,WAAW,IAAK,GAClCznjC,EAAKvxB,IACE,CAAE4W,GAAG,EAAGm6kC,UAAWA,EAC3B,CASA,IAAIE,GAAqBX,GAIzB,SAASY,GAA2B3/jC,GACnC,IAAIg/jC,EAAgBh/jC,EAAKynjC,WAAW,GACpC,OAAyB,IAAlBuX,GAAyC,aAAlBA,EAA+B,GAAKh/jC,EAAKynjC,WAAWuX,EAAe,OAClG,CASA,IAAIY,GAAyBb,GAIzBc,GAAcF,GAKlB,SAASG,GAAe9/jC,GACvB,IAAI1pB,EAAI0pB,EAAK14C,MAAM04C,EAAKvxB,EAAGuxB,EAAKvxB,EAAI,GAChCsxlC,EAAgB,EAAPzplC,EAAE,GAAS0plC,EAAe,EAAP1plC,EAAE,GAClC0pB,EAAKvxB,GAAK,EACV,IAAIwxlC,EAAc,IAATD,EAAanF,GAAS,CAAC,EAAG,EAAG,EAAG,EAAW,IAAPvklC,EAAE,GAAYA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK,GAAKwzkC,GAAcxzkC,EAAG,IAAM,EAC1G,OAAOyplC,EAASE,EAAK,IAAOA,CAC7B,CAYA,SAASC,GAAUlgkC,GAClB,IAAImjB,EAAkB,CAAE30C,EAAG,CAAC,EAAG5oB,EAAG,CAAC,GAKnC,OAJAu9D,EAAK30C,EAAEkD,EAAIsuB,EAAKynjC,WAAW,GAC3BtkiC,EAAKv9D,EAAE8rB,EAAIsuB,EAAKynjC,WAAW,GAC3BtkiC,EAAK30C,EAAE6W,EAAI2a,EAAKynjC,WAAW,GAC3BtkiC,EAAKv9D,EAAEy/B,EAAI2a,EAAKynjC,WAAW,GACpBtkiC,CACR,CAWA,IAAIg9iC,GAAqBD,GAyBzB,SAASE,GAAWpgkC,GACnB,GAAGA,EAAKt8C,OAASs8C,EAAKvxB,EAAI,EAAG,KAAM,4BACnC,OAAOuxB,EAAKynjC,WAAW,EAAG,IAC3B,CAmGA,SAAS4Y,GAA8Bj7kC,EAAGa,GAEzC,IACI9P,EAAeiP,EAAEqikC,WAAW,GAChC,OAAQtxkC,GACP,KAAK,EAAY,MAAO,GACxB,KAAK,WAAY,KAAK,WAAY,MAJrB,CAAE,EAAG,SAAU,EAAG,eAAgB,EAAG,MAAO,GAAI,eAIZiP,EAAEqikC,WAAW,KAAO,GAEtE,GAAItxkC,EAAI,IAAO,MAAM,IAAI9gB,MAAM,0BAA4B8gB,EAAEvlB,SAAS,KAEtE,OADAw0B,EAAE3W,GAAK,EACA2W,EAAEqikC,WAAW,EAAQ,GAALxhkC,EAAS,QAAU,SAC3C,CAQA,IAoCIq6kC,GAAc,GAEdC,GAAc,CAACD,GADD,IAIdE,GAAmB,CACf,EAAa,CAAEhzlC,EAAG,WAAYoE,EA1CpB,GA2CV,EAAa,CAAEpE,EAAG,WAAYoE,EAAG0ulC,IACjC,EAAa,CAAE9ylC,EAAG,qBAAsBoE,EAAG0ulC,IAC3C,EAAa,CAAE9ylC,EAAG,YAAaoE,EA5CrB,GA6CV,EAAa,CAAEpE,EAAG,YAAaoE,EA7CrB,GA8CV,EAAa,CAAEpE,EAAG,iBAAkBoE,EA9C1B,GA+CV,EAAa,CAAEpE,EAAG,aAAcoE,EA/CtB,GAgDV,EAAa,CAAEpE,EAAG,YAAaoE,EAhDrB,GAiDV,EAAa,CAAEpE,EAAG,cAAeoE,EAjDvB,GAkDV,GAAa,CAAEpE,EAAG,sBAAuBoE,EAlD/B,GAmDV,GAAa,CAAEpE,EAAG,YAAaoE,EA5CrB,IA6CV,GAAa,CAAEpE,EAAG,eAAgBoE,EArBlB,MAsBhB,GAAa,CAAEpE,EAAG,gBAAiBoE,EArBnB,MAsBhB,GAAa,CAAEpE,EAAG,UAAWoE,EAAG0ulC,IAChC,GAAa,CAAE9ylC,EAAG,UAAWoE,EAAG0ulC,IAChC,GAAa,CAAE9ylC,EAAG,gBAAiBoE,EAjDzB,IAkDV,GAAa,CAAEpE,EAAG,iBAAkBoE,EAzD1B,GA0DV,GAAa,CAAEpE,EAAG,YAAaoE,EAnDrB,IAoDV,GAAa,CAAEpE,EAAG,oBAAqBoE,EApD7B,IAqDV,GAAa,CAAEpE,EAAG,aAAcoE,EA5DtB,EA4DgCwE,EAAG,WAC7C,GAAa,CAAE5I,EAAG,SAAUoE,EAxClB,IAyCV,GAAa,CAAEpE,EAAG,cAAeoE,EAAG0ulC,IACpC,GAAa,CAAE9ylC,EAAG,gBAAiBoE,EAAG0ulC,IACtC,GAAa,CAAE9ylC,EAAG,WAAYoE,EAAG0ulC,IACjC,GAAa,CAAE9ylC,EAAG,UAAWoE,EAAG0ulC,IAChC,IAAa,CAAC,EAEd,WAAmB,CAAE9ylC,EAAG,SAAUoE,EAvDxB,IAwDV,WAAmB,CAAEpE,EAAG,WAAYoE,EAxD1B,IAyDV,WAAmB,CAAC,GAIxB6ulC,GAAe,CACX,EAAa,CAAEjzlC,EAAG,WAAYoE,EA5EpB,GA6EV,EAAa,CAAEpE,EAAG,QAASoE,EAAG0ulC,IAC9B,EAAa,CAAE9ylC,EAAG,UAAWoE,EAAG0ulC,IAChC,EAAa,CAAE9ylC,EAAG,SAAUoE,EAAG0ulC,IAC/B,EAAa,CAAE9ylC,EAAG,WAAYoE,EAAG0ulC,IACjC,EAAa,CAAE9ylC,EAAG,WAAYoE,EAAG0ulC,IACjC,EAAa,CAAE9ylC,EAAG,WAAYoE,EAAG0ulC,IACjC,EAAa,CAAE9ylC,EAAG,aAAcoE,EAAG0ulC,IACnC,EAAa,CAAE9ylC,EAAG,YAAaoE,EAAG0ulC,IAClC,GAAa,CAAE9ylC,EAAG,WAAYoE,EAhEpB,IAiEV,GAAa,CAAEpE,EAAG,cAAeoE,EAjEvB,IAkEV,GAAa,CAAEpE,EAAG,cAAeoE,EAlEvB,IAmEV,GAAa,CAAEpE,EAAG,eAAgBoE,EAnExB,IAoEV,GAAa,CAAEpE,EAAG,YAAaoE,EAxFrB,GAyFV,GAAa,CAAEpE,EAAG,YAAaoE,EAzFrB,GA0FV,GAAa,CAAEpE,EAAG,YAAaoE,EA1FrB,GA2FV,GAAa,CAAEpE,EAAG,YAAaoE,EAhErB,IAiEV,GAAa,CAAEpE,EAAG,cAAeoE,EAAG0ulC,IACpC,GAAa,CAAE9ylC,EAAG,cAAeoE,EA7FvB,GA8FV,IAAa,CAAC,EAEd,WAAmB,CAAEpE,EAAG,SAAUoE,EAnFxB,IAoFV,WAAmB,CAAEpE,EAAG,WAAYoE,EApF1B,IAqFV,WAAmB,CAAC,GAIxB8ulC,GAAc,CACV,EAAe,KACf,EAAe,KACf,EAAe,GACf,EAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,MAAe,MAInBC,GAAiB,CACpB,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,YAGD,SAASC,GAAOvskC,GAA6D,OAAOA,EAAI1nC,KAAI,SAASlB,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,EAAQ,GAAI,CAIrJ,IA4FIo1mC,GAAsBnnqB,GA5FEknqB,GAAO,CAElC,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAKG9C,GAAO,CACH,EAAa,SACb,EAAa,UACb,GAAa,UACb,GAAa,QACb,GAAa,SACb,GAAa,Q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CL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,gBACL,IAAK,wBACL,IAAK,qBACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,mBACL,IAAK,oBACL,IAAK,eACL,IAAK,oBACL,IAAK,uBACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,qBACL,IAAK,yBACL,IAAK,mBACL,IAAK,WACL,IAAK,iBACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,mBACL,IAAK,mBACL,IAAK,iBACL,IAAK,kBACL,IAAK,oBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,oBACL,IAAK,sBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,oBACL,IAAK,eACL,IAAK,gBACL,IAAK,qBAEHH,GAAO,CACT,EAAG,QACH,EAAG,KACH,EAAG,OACH,EAAG,UACH,EAAG,MACH,EAAG,UACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,SACH,GAAI,KACJ,GAAI,MACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,KACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,SACJ,GAAI,OACJ,GAAI,WACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,QACJ,GAAI,SACJ,GAAI,SACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,KACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,SACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,WACJ,GAAI,SACJ,GAAI,YACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,WACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,YACJ,GAAI,cACJ,GAAI,YACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,UACL,IAAK,aACL,IAAK,OACL,IAAK,QACL,IAAK,YACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,IACL,IAAK,IACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,gBACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IA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","sources":["../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/AddCircleOutline.js","../node_modules/@mui/icons-material/AdminPanelSettings.js","../node_modules/@mui/icons-material/ArrowBack.js","../node_modules/@mui/icons-material/ArrowForward.js","../node_modules/@mui/icons-material/ArrowLeftRounded.js","../node_modules/@mui/icons-material/ArrowRightRounded.js","../node_modules/@mui/icons-material/CheckCircle.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/Dashboard.js","../node_modules/@mui/icons-material/Edit.js","../node_modules/@mui/icons-material/Engineering.js","../node_modules/@mui/icons-material/Equalizer.js","../node_modules/@mui/icons-material/ExitToApp.js","../node_modules/@mui/icons-material/Group.js","../node_modules/@mui/icons-material/HelpOutline.js","../node_modules/@mui/icons-material/Info.js","../node_modules/@mui/icons-material/MoreVert.js","../node_modules/@mui/icons-material/Pending.js","../node_modules/@mui/icons-material/PersonAddAlt.js","../node_modules/@mui/icons-material/UploadFile.js","../node_modules/@mui/icons-material/Visibility.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType/deprecatedPropType.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp/unsupportedProp.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/colorManipulator.js","../node_modules/@mui/system/createStyled.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/useThemeWithoutDefault.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/isBetween.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/weekOfYear.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/plotly.js/dist/plotly.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/src/factory.js","../node_modules/src/react-plotly.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/sweetalert2/dist/sweetalert2.all.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/clsx/dist/clsx.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@azure/msal-common/src/utils/Constants.ts","../node_modules/@azure/msal-browser/src/utils/BrowserConstants.ts","../node_modules/@azure/msal-common/src/error/AuthError.ts","../node_modules/@azure/msal-browser/src/error/BrowserConfigurationAuthError.ts","../node_modules/@azure/msal-browser/src/app/IPublicClientApplication.ts","../node_modules/@azure/msal-common/src/error/ClientAuthError.ts","../node_modules/@azure/msal-common/src/logger/Logger.ts","../node_modules/@azure/msal-common/src/utils/StringUtils.ts","../node_modules/@azure/msal-browser/src/event/EventType.ts","../node_modules/@azure/msal-browser/src/event/EventMessage.ts","../node_modules/@azure/msal-common/src/authority/AuthorityType.ts","../node_modules/@azure/msal-common/src/authority/ProtocolMode.ts","../node_modules/@azure/msal-common/src/account/ClientInfo.ts","../node_modules/@azure/msal-common/src/cache/entities/AccountEntity.ts","../node_modules/@azure/msal-react/src/MsalContext.ts","../node_modules/@azure/msal-react/src/utils/utilities.ts","../node_modules/@azure/msal-react/src/packageMetadata.ts","../node_modules/@azure/msal-react/src/MsalProvider.tsx","../node_modules/@azure/msal-react/src/hooks/useMsal.ts","../node_modules/@azure/msal-react/src/hooks/useIsAuthenticated.ts","../node_modules/@azure/msal-react/src/hooks/useAccount.ts","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/system/esm/createBox.js","../node_modules/@mui/material/Box/boxClasses.js","../node_modules/@mui/material/Box/Box.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/AppBar/appBarClasses.js","../node_modules/@mui/material/AppBar/AppBar.js","../node_modules/@mui/material/Toolbar/toolbarClasses.js","../node_modules/@mui/material/Toolbar/Toolbar.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js","../node_modules/@mui/material/Button/Button.js","../node_modules/@mui/utils/esm/usePreviousProps/usePreviousProps.js","../node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/material/Badge/useBadge.js","../node_modules/@mui/material/Badge/badgeClasses.js","../node_modules/@mui/material/Badge/Badge.js","../node_modules/@mui/material/Divider/dividerClasses.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/icons-material/esm/Notifications.js","AuthConfig.ts","services/PowerBiService.ts","context/AppContext.tsx","../node_modules/@mui/icons-material/esm/Login.js","../node_modules/@mui/icons-material/esm/AccountCircle.js","components/LoginMenu.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/@babel/runtime/helpers/esm/OverloadYield.js","../node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/@babel/runtime/helpers/esm/asyncIterator.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","context/NotificationContext.tsx","components/Banner.tsx","../node_modules/@mui/material/internal/svg-icons/Person.js","../node_modules/@mui/material/Avatar/avatarClasses.js","../node_modules/@mui/material/utils/useSlot.js","../node_modules/@mui/material/Avatar/Avatar.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/@mui/utils/esm/getReactElementRef/getReactElementRef.js","../node_modules/@mui/material/Unstable_TrapFocus/FocusTrap.js","../node_modules/@mui/material/Portal/Portal.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/utils/esm/getScrollbarSize/getScrollbarSize.js","../node_modules/@mui/material/Modal/ModalManager.js","../node_modules/@mui/material/Modal/useModal.js","../node_modules/@mui/material/Modal/modalClasses.js","../node_modules/@mui/material/Modal/Modal.js","components/Card.tsx","components/CreateDashboard.tsx","../node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/get-value-transition.mjs","../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/motion-utils/dist/es/noop.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/motion-utils/dist/es/errors.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","../node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs","../node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs","../node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/transform.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/is-generator.mjs","../node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","../node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/defaults.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/utils/mix/number.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix/immediate.mjs","../node_modules/framer-motion/dist/es/utils/mix/color.mjs","../node_modules/framer-motion/dist/es/utils/mix/visibility.mjs","../node_modules/framer-motion/dist/es/utils/mix/complex.mjs","../node_modules/framer-motion/dist/es/utils/mix/index.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","../node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-flags.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/memo-supports.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-linear-easing.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/attach-timeline.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs","../node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","../node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs","../node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","../node_modules/motion-dom/dist/es/gestures/utils/setup.mjs","../node_modules/motion-dom/dist/es/utils/resolve-elements.mjs","../node_modules/motion-dom/dist/es/gestures/hover.mjs","../node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs","../node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs","../node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs","../node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs","../node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/motion-dom/dist/es/gestures/press/index.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/frameloop/microtask.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/animation/animate/single-value.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/components/create-factory.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs","../node_modules/framer-motion/dist/es/render/components/motion/create.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","components/LandingPage.tsx","../node_modules/@mui/material/Grid/GridContext.js","../node_modules/@mui/material/Grid/gridClasses.js","../node_modules/@mui/material/Grid/Grid.js","../node_modules/@mui/material/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/FormControl/formControlClasses.js","../node_modules/@mui/material/FormControl/FormControl.js","../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../node_modules/@mui/material/FormHelperText/FormHelperText.js","../node_modules/@mui/system/esm/RtlProvider/index.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/material/TextField/textFieldClasses.js","../node_modules/@mui/material/TextField/TextField.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../node_modules/@mui/material/DialogTitle/DialogTitle.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/system/esm/useMediaQuery/useMediaQuery.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/base/utils/resolveComponentProps.js","../node_modules/@mui/utils/esm/refType/refType.js","../node_modules/@mui/x-date-pickers/internals/utils/views.js","../node_modules/@mui/x-date-pickers/internals/utils/date-utils.js","../node_modules/@mui/x-date-pickers/internals/utils/time-utils.js","../node_modules/@mui/x-date-pickers/internals/utils/getDefaultReferenceDate.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useField.utils.js","../node_modules/@mui/x-date-pickers/internals/utils/valueManagers.js","../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../node_modules/@mui/x-date-pickers/locales/enUS.js","../node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","../node_modules/@mui/x-date-pickers/internals/hooks/useUtils.js","../node_modules/@mui/x-date-pickers/internals/components/pickersToolbarClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbar.js","../node_modules/@mui/x-date-pickers/DatePicker/datePickerToolbarClasses.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePickerToolbar.js","../node_modules/@mui/x-date-pickers/internals/utils/slots-migration.js","../node_modules/@mui/x-date-pickers/DatePicker/shared.js","../node_modules/@mui/x-date-pickers/internals/utils/validation/validateDate.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@mui/material/Popper/popperClasses.js","../node_modules/@mui/material/Popper/BasePopper.js","../node_modules/@mui/material/Popper/Popper.js","../node_modules/@mui/x-date-pickers/internals/components/pickersPopperClasses.js","../node_modules/@mui/x-date-pickers/internals/utils/utils.js","../node_modules/@mui/x-date-pickers/internals/hooks/useDefaultReduceAnimations.js","../node_modules/@mui/x-date-pickers/internals/components/PickersPopper.js","../node_modules/@mui/x-date-pickers/internals/hooks/useValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/useValueWithTimezone.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerValue.js","../node_modules/@mui/x-date-pickers/internals/hooks/useOpenState.js","../node_modules/@mui/x-date-pickers/internals/hooks/useViews.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerViews.js","../node_modules/@mui/x-date-pickers/internals/hooks/useIsLandscape.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerLayoutProps.js","../node_modules/@mui/x-date-pickers/internals/utils/warning.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePicker.js","../node_modules/@mui/x-date-pickers/PickersLayout/pickersLayoutClasses.js","../node_modules/@mui/x-date-pickers/PickersActionBar/PickersActionBar.js","../node_modules/@mui/material/ListItem/listItemClasses.js","../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../node_modules/@mui/material/ListItem/ListItem.js","../node_modules/@mui/material/internal/svg-icons/Cancel.js","../node_modules/@mui/material/Chip/chipClasses.js","../node_modules/@mui/material/Chip/Chip.js","../node_modules/@mui/x-date-pickers/internals/constants/dimensions.js","../node_modules/@mui/x-date-pickers/PickersShortcuts/PickersShortcuts.js","../node_modules/@mui/x-date-pickers/PickersLayout/usePickerLayout.js","../node_modules/@mui/x-date-pickers/PickersLayout/PickersLayout.js","../node_modules/@mui/x-date-pickers/internals/hooks/useDesktopPicker/useDesktopPicker.js","../node_modules/@mui/x-date-pickers/icons/index.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldState.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldCharacterEditing.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useField.js","../node_modules/@mui/x-date-pickers/internals/utils/validation/extractValidationProps.js","../node_modules/@mui/x-date-pickers/internals/utils/fields.js","../node_modules/@mui/x-date-pickers/DateField/useDateField.js","../node_modules/@mui/x-date-pickers/hooks/useClearableField.js","../node_modules/@mui/x-date-pickers/DateField/DateField.js","../node_modules/@mui/x-date-pickers/DateCalendar/useIsDateDisabled.js","../node_modules/@mui/x-date-pickers/DateCalendar/useCalendarState.js","../node_modules/@mui/x-date-pickers/DateCalendar/pickersFadeTransitionGroupClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/PickersFadeTransitionGroup.js","../node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/x-date-pickers/PickersDay/pickersDayClasses.js","../node_modules/@mui/x-date-pickers/PickersDay/PickersDay.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@mui/x-date-pickers/DateCalendar/pickersSlideTransitionClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/PickersSlideTransition.js","../node_modules/@mui/x-date-pickers/DateCalendar/dayCalendarClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/DayCalendar.js","../node_modules/@mui/x-date-pickers/MonthCalendar/pickersMonthClasses.js","../node_modules/@mui/x-date-pickers/MonthCalendar/PickersMonth.js","../node_modules/@mui/x-date-pickers/MonthCalendar/monthCalendarClasses.js","../node_modules/@mui/x-date-pickers/MonthCalendar/MonthCalendar.js","../node_modules/@mui/x-date-pickers/YearCalendar/pickersYearClasses.js","../node_modules/@mui/x-date-pickers/YearCalendar/PickersYear.js","../node_modules/@mui/x-date-pickers/YearCalendar/yearCalendarClasses.js","../node_modules/@mui/x-date-pickers/YearCalendar/YearCalendar.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js","../node_modules/@mui/x-date-pickers/internals/hooks/date-helpers-hooks.js","../node_modules/@mui/x-date-pickers/PickersCalendarHeader/pickersCalendarHeaderClasses.js","../node_modules/@mui/x-date-pickers/PickersCalendarHeader/PickersCalendarHeader.js","../node_modules/@mui/x-date-pickers/internals/components/PickerViewRoot/PickerViewRoot.js","../node_modules/@mui/x-date-pickers/DateCalendar/dateCalendarClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/DateCalendar.js","../node_modules/@mui/x-date-pickers/dateViewRenderers/dateViewRenderers.js","../node_modules/@mui/x-date-pickers/DesktopDatePicker/DesktopDatePicker.js","../node_modules/@mui/x-date-pickers/internals/components/PickersModalDialog.js","../node_modules/@mui/x-date-pickers/internals/hooks/useMobilePicker/useMobilePicker.js","../node_modules/@mui/x-date-pickers/MobileDatePicker/MobileDatePicker.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePicker.js","../node_modules/@mui/x-date-pickers/AdapterDayjs/AdapterDayjs.js","components/pages/Home.tsx","../node_modules/@mui/material/Alert/alertClasses.js","../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/Alert/Alert.js","components/PageNotAccessible.tsx","../node_modules/@mui/material/Table/TableContext.js","../node_modules/@mui/material/Table/tableClasses.js","../node_modules/@mui/material/Table/Table.js","../node_modules/@mui/material/Table/Tablelvl2Context.js","../node_modules/@mui/material/TableBody/tableBodyClasses.js","../node_modules/@mui/material/TableBody/TableBody.js","../node_modules/@mui/material/TableCell/tableCellClasses.js","../node_modules/@mui/material/TableCell/TableCell.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.js","../node_modules/@mui/material/TableRow/tableRowClasses.js","../node_modules/@mui/material/TableRow/TableRow.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/system/esm/styled.js","../node_modules/@mui/system/esm/Container/createContainer.js","../node_modules/@mui/material/Container/Container.js","components/pages/Profile.tsx","components/pages/Workspaces.tsx","components/PageNotFound.tsx","../node_modules/@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupContext.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupButtonContext.js","../node_modules/@mui/material/ToggleButton/toggleButtonClasses.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js","../node_modules/@mui/utils/esm/getValidReactChildren/getValidReactChildren.js","../node_modules/@mui/material/ToggleButtonGroup/isValueSelected.js","../node_modules/@mui/material/ToggleButton/ToggleButton.js","../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/MenuItem/menuItemClasses.js","../node_modules/@mui/material/MenuItem/MenuItem.js","../node_modules/goober/dist/goober.modern.js","../node_modules/react-hot-toast/src/core/types.ts","../node_modules/react-hot-toast/src/core/utils.ts","../node_modules/react-hot-toast/src/core/store.ts","../node_modules/react-hot-toast/src/core/toast.ts","../node_modules/react-hot-toast/src/core/use-toaster.ts","../node_modules/react-hot-toast/src/components/error.tsx","../node_modules/react-hot-toast/src/components/loader.tsx","../node_modules/react-hot-toast/src/components/checkmark.tsx","../node_modules/react-hot-toast/src/components/toast-icon.tsx","../node_modules/react-hot-toast/src/components/toast-bar.tsx","../node_modules/react-hot-toast/src/components/toaster.tsx","../node_modules/react-hot-toast/src/index.ts","components/pages/AdminPanel.tsx","../node_modules/@mui/material/ListItemButton/ListItemButton.js","../node_modules/@mui/material/ListItemIcon/ListItemIcon.js","../node_modules/@mui/material/ListItemText/ListItemText.js","../node_modules/@mui/material/Tooltip/tooltipClasses.js","../node_modules/@mui/material/Tooltip/Tooltip.js","components/SideBar.tsx","../node_modules/@mui/material/Stepper/stepperClasses.js","../node_modules/@mui/material/Stepper/StepperContext.js","../node_modules/@mui/material/Step/StepContext.js","../node_modules/@mui/material/StepConnector/stepConnectorClasses.js","../node_modules/@mui/material/StepConnector/StepConnector.js","../node_modules/@mui/material/Stepper/Stepper.js","../node_modules/@mui/material/Step/stepClasses.js","../node_modules/@mui/material/Step/Step.js","../node_modules/@mui/material/internal/svg-icons/CheckCircle.js","../node_modules/@mui/material/internal/svg-icons/Warning.js","../node_modules/@mui/material/StepIcon/stepIconClasses.js","../node_modules/@mui/material/StepIcon/StepIcon.js","../node_modules/@mui/material/StepLabel/stepLabelClasses.js","../node_modules/@mui/material/StepLabel/StepLabel.js","../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js","../node_modules/@mui/material/CardContent/cardContentClasses.js","../node_modules/@mui/material/CardContent/CardContent.js","../node_modules/@mui/material/FormGroup/formGroupClasses.js","../node_modules/@mui/material/FormGroup/FormGroup.js","../node_modules/@mui/material/RadioGroup/radioGroupClasses.js","../node_modules/@mui/material/RadioGroup/RadioGroupContext.js","../node_modules/@mui/material/RadioGroup/RadioGroup.js","../node_modules/@mui/system/esm/Stack/createStack.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js","../node_modules/@mui/material/internal/svg-icons/RadioButtonUnchecked.js","../node_modules/@mui/material/internal/svg-icons/RadioButtonChecked.js","../node_modules/@mui/material/Radio/RadioButtonIcon.js","../node_modules/@mui/material/Radio/radioClasses.js","../node_modules/@mui/material/Radio/Radio.js","../node_modules/@mui/material/RadioGroup/useRadioGroup.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js","../node_modules/@mui/material/DialogContentText/DialogContentText.js","../node_modules/@mui/x-date-pickers/internals/utils/validation/validateTime.js","../node_modules/@mui/x-date-pickers/TimeField/useTimeField.js","../node_modules/@mui/x-date-pickers/TimeField/TimeField.js","../node_modules/@mui/x-date-pickers/internals/components/pickersToolbarTextClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarText.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarButton.js","../node_modules/@mui/x-date-pickers/TimePicker/timePickerToolbarClasses.js","../node_modules/@mui/x-date-pickers/TimePicker/TimePickerToolbar.js","../node_modules/@mui/x-date-pickers/TimePicker/shared.js","../node_modules/@mui/x-date-pickers/TimeClock/timeClockClasses.js","../node_modules/@mui/x-date-pickers/TimeClock/shared.js","../node_modules/@mui/x-date-pickers/TimeClock/clockPointerClasses.js","../node_modules/@mui/x-date-pickers/TimeClock/ClockPointer.js","../node_modules/@mui/x-date-pickers/TimeClock/clockClasses.js","../node_modules/@mui/x-date-pickers/TimeClock/Clock.js","../node_modules/@mui/x-date-pickers/TimeClock/clockNumberClasses.js","../node_modules/@mui/x-date-pickers/TimeClock/ClockNumber.js","../node_modules/@mui/x-date-pickers/TimeClock/ClockNumbers.js","../node_modules/@mui/x-date-pickers/internals/hooks/useClockReferenceDate.js","../node_modules/@mui/x-date-pickers/TimeClock/TimeClock.js","../node_modules/@mui/x-date-pickers/DigitalClock/digitalClockClasses.js","../node_modules/@mui/x-date-pickers/DigitalClock/DigitalClock.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClock.js","../node_modules/@mui/x-date-pickers/timeViewRenderers/timeViewRenderers.js","../node_modules/@mui/x-date-pickers/internals/utils/date-time-utils.js","../node_modules/@mui/x-date-pickers/DesktopTimePicker/DesktopTimePicker.js","../node_modules/@mui/x-date-pickers/MobileTimePicker/MobileTimePicker.js","../node_modules/@mui/x-date-pickers/TimePicker/TimePicker.js","../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","../node_modules/xlsx/xlsx.mjs","components/pages/CreateDashboardStepper.tsx","components/pages/CreateDashboardForm.tsx","components/RequestDashboardTable.tsx","../node_modules/@mui/icons-material/esm/InsertComment.js","../node_modules/@mui/icons-material/esm/ExpandMore.js","../node_modules/@mui/icons-material/esm/ExpandLess.js","../node_modules/@mui/icons-material/esm/Stop.js","../node_modules/@mui/icons-material/esm/Mic.js","../node_modules/@mui/icons-material/esm/Send.js","components/ChatData.tsx","components/Dashboard.tsx","components/Notifications.tsx","components/JobTrackingTable.tsx","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","components/UserList.tsx","components/Help.tsx","components/PageLayout.tsx","../node_modules/@mui/material/CssBaseline/CssBaseline.js","App.tsx","../node_modules/@azure/msal-common/src/telemetry/performance/PerformanceEvent.ts","../node_modules/@azure/msal-browser/src/cache/CryptoKeyStore.ts","../node_modules/@azure/msal-common/src/error/ServerError.ts","../node_modules/@azure/msal-common/src/error/InteractionRequiredAuthError.ts","../node_modules/@azure/msal-common/src/error/JoseHeaderError.ts","../node_modules/@azure/msal-common/src/crypto/JoseHeader.ts","../node_modules/@azure/msal-browser/src/utils/MathUtils.ts","../node_modules/@azure/msal-browser/src/crypto/GuidGenerator.ts","../node_modules/@azure/msal-browser/src/utils/BrowserStringUtils.ts","../node_modules/@azure/msal-browser/src/encode/Base64Encode.ts","../node_modules/@azure/msal-browser/src/encode/Base64Decode.ts","../node_modules/@azure/msal-browser/src/error/BrowserAuthError.ts","../node_modules/@azure/msal-browser/src/crypto/PkceGenerator.ts","../node_modules/@azure/msal-browser/src/crypto/ModernBrowserCrypto.ts","../node_modules/@azure/msal-browser/src/crypto/MsrBrowserCrypto.ts","../node_modules/@azure/msal-browser/src/crypto/MsBrowserCrypto.ts","../node_modules/@azure/msal-browser/src/crypto/BrowserCrypto.ts","../node_modules/@azure/msal-browser/src/cache/DatabaseStorage.ts","../node_modules/@azure/msal-browser/src/cache/MemoryStorage.ts","../node_modules/@azure/msal-browser/src/cache/AsyncMemoryStorage.ts","../node_modules/@azure/msal-common/src/account/CcsCredential.ts","../node_modules/@azure/msal-browser/src/crypto/CryptoOps.ts","../node_modules/@azure/msal-common/src/telemetry/performance/PerformanceClient.ts","../node_modules/@azure/msal-common/src/telemetry/performance/StubPerformanceClient.ts","../node_modules/@azure/msal-common/src/crypto/ICrypto.ts","../node_modules/@azure/msal-common/src/cache/entities/CredentialEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/IdTokenEntity.ts","../node_modules/@azure/msal-common/src/error/ClientConfigurationError.ts","../node_modules/@azure/msal-common/src/request/ScopeSet.ts","../node_modules/@azure/msal-common/src/account/AuthToken.ts","../node_modules/@azure/msal-common/src/packageMetadata.ts","../node_modules/@azure/msal-common/src/cache/CacheManager.ts","../node_modules/@azure/msal-common/src/utils/TimeUtils.ts","../node_modules/@azure/msal-common/src/cache/entities/AccessTokenEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/RefreshTokenEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/AppMetadataEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/ServerTelemetryEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/AuthorityMetadataEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/ThrottlingEntity.ts","../node_modules/@azure/msal-common/src/utils/ProtocolUtils.ts","../node_modules/@azure/msal-common/src/cache/entities/CacheRecord.ts","../node_modules/@azure/msal-common/src/authority/AuthorityOptions.ts","../node_modules/@azure/msal-browser/src/cache/BrowserStorage.ts","../node_modules/@azure/msal-common/src/url/UrlString.ts","../node_modules/@azure/msal-browser/src/utils/BrowserProtocolUtils.ts","../node_modules/@azure/msal-browser/src/cache/BrowserCacheManager.ts","../node_modules/@azure/msal-common/src/config/ClientConfiguration.ts","../node_modules/@azure/msal-common/src/network/INetworkModule.ts","../node_modules/@azure/msal-browser/src/network/FetchClient.ts","../node_modules/@azure/msal-browser/src/network/XhrClient.ts","../node_modules/@azure/msal-browser/src/utils/BrowserUtils.ts","../node_modules/@azure/msal-browser/src/navigation/NavigationClient.ts","../node_modules/@azure/msal-browser/src/config/Configuration.ts","../node_modules/@azure/msal-browser/src/packageMetadata.ts","../node_modules/@azure/msal-common/src/crypto/PopTokenGenerator.ts","../node_modules/@azure/msal-browser/src/event/EventHandler.ts","../node_modules/@azure/msal-common/src/network/ThrottlingUtils.ts","../node_modules/@azure/msal-common/src/network/NetworkManager.ts","../node_modules/@azure/msal-common/src/request/RequestValidator.ts","../node_modules/@azure/msal-common/src/request/RequestParameterBuilder.ts","../node_modules/@azure/msal-common/src/client/BaseClient.ts","../node_modules/@azure/msal-common/src/cache/persistence/TokenCacheContext.ts","../node_modules/@azure/msal-common/src/response/ResponseHandler.ts","../node_modules/@azure/msal-common/src/client/AuthorizationCodeClient.ts","../node_modules/@azure/msal-common/src/authority/OpenIdConfigResponse.ts","../node_modules/@azure/msal-common/src/authority/AuthorityMetadata.ts","../node_modules/@azure/msal-common/src/authority/RegionDiscovery.ts","../node_modules/@azure/msal-browser/src/error/NativeAuthError.ts","../node_modules/@azure/msal-common/src/authority/Authority.ts","../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryResponse.ts","../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryErrorResponse.ts","../node_modules/@azure/msal-common/src/authority/AuthorityFactory.ts","../node_modules/@azure/msal-common/src/telemetry/server/ServerTelemetryManager.ts","../node_modules/@azure/msal-browser/src/interaction_client/BaseInteractionClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/StandardInteractionClient.ts","../node_modules/@azure/msal-common/src/client/RefreshTokenClient.ts","../node_modules/@azure/msal-common/src/client/SilentFlowClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentCacheClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/NativeInteractionClient.ts","../node_modules/@azure/msal-browser/src/broker/nativeBroker/NativeMessageHandler.ts","../node_modules/@azure/msal-browser/src/interaction_handler/InteractionHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/PopupClient.ts","../node_modules/@azure/msal-browser/src/interaction_handler/RedirectHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/RedirectClient.ts","../node_modules/@azure/msal-browser/src/interaction_handler/SilentHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentIframeClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentRefreshClient.ts","../node_modules/@azure/msal-browser/src/cache/TokenCache.ts","../node_modules/@azure/msal-browser/src/interaction_client/HybridSpaAuthorizationCodeClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentAuthCodeClient.ts","../node_modules/@azure/msal-browser/src/telemetry/BrowserPerformanceMeasurement.ts","../node_modules/@azure/msal-browser/src/telemetry/BrowserPerformanceClient.ts","../node_modules/@azure/msal-browser/src/app/ClientApplication.ts","../node_modules/@azure/msal-browser/src/app/PublicClientApplication.ts","index.tsx"],"sourcesContent":["var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node\n /*: HTMLStyleElement */\n ) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n /*: (\n selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache\n /*: EmotionCache */\n = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context */\n= /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache()\n/*: EmotionCache | null*/\n{\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* > */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent */\n{\n return /*#__PURE__*/forwardRef(function (props\n /*: Props */\n , ref\n /*: Ref */\n ) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n/*\ntype ThemeProviderProps = {\n theme: Object | (Object => Object),\n children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme\n/* */\n(Component\n/*: React.AbstractComponent */\n)\n/*: React.AbstractComponent<$Diff> */\n{\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n };\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n var newProps\n /*: any */\n = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(\n/* */\nfunction (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n newProps[key] = props[key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-5486c51c.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-5486c51c.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node\n /*: HTMLStyleElement | null*/\n = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\n/*\ntype Keyframes = {|\n name: string,\n styles: string,\n anim: 1,\n toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n /*: Keyframes */\nkeyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\n/*\ntype ClassNameArg =\n | string\n | boolean\n | { [key: string]: boolean }\n | Array\n | null\n | void\n*/\n\nvar classnames = function\n /*: string */\nclassnames(args\n/*: Array */\n) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered\n/*: Object */\n, css\n/*: (...args: Array) => string */\n, className\n/*: string */\n) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n/*\ntype Props = {\n children: ({\n css: (...args: any) => string,\n cx: (...args: Array) => string,\n theme: Object\n }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent*/\n= /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z\"\n}), 'Add');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8\"\n}), 'AddCircleOutline');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)([/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 11c.34 0 .67.04 1 .09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55-.69-.98-1.1-2.17-1.1-3.45 0-3.31 2.69-6 6-6\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 13c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 1.38c.62 0 1.12.51 1.12 1.12s-.51 1.12-1.12 1.12-1.12-.51-1.12-1.12.5-1.12 1.12-1.12m0 5.37c-.93 0-1.74-.46-2.24-1.17.05-.72 1.51-1.08 2.24-1.08s2.19.36 2.24 1.08c-.5.71-1.31 1.17-2.24 1.17\"\n}, \"1\")], 'AdminPanelSettings');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z\"\n}), 'ArrowBack');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n}), 'ArrowForward');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12.29 8.71 9.7 11.3c-.39.39-.39 1.02 0 1.41l2.59 2.59c.63.63 1.71.18 1.71-.71V9.41c0-.89-1.08-1.33-1.71-.7\"\n}), 'ArrowLeftRounded');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m11.71 15.29 2.59-2.59c.39-.39.39-1.02 0-1.41L11.71 8.7c-.63-.62-1.71-.18-1.71.71v5.17c0 .9 1.08 1.34 1.71.71\"\n}), 'ArrowRightRounded');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z\"\n}), 'CheckCircle');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 13h8V3H3zm0 8h8v-6H3zm10 0h8V11h-8zm0-18v6h8V3z\"\n}), 'Dashboard');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z\"\n}), 'Edit');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4m13.1-8.16c.01-.11.02-.22.02-.34 0-.12-.01-.23-.03-.34l.74-.58c.07-.05.08-.15.04-.22l-.7-1.21c-.04-.08-.14-.1-.21-.08l-.86.35c-.18-.14-.38-.25-.59-.34l-.13-.93c-.02-.09-.09-.15-.18-.15h-1.4c-.09 0-.16.06-.17.15l-.13.93c-.21.09-.41.21-.59.34l-.87-.35c-.08-.03-.17 0-.21.08l-.7 1.21c-.04.08-.03.17.04.22l.74.58c-.02.11-.03.23-.03.34 0 .11.01.23.03.34l-.74.58c-.07.05-.08.15-.04.22l.7 1.21c.04.08.14.1.21.08l.87-.35c.18.14.38.25.59.34l.13.93c.01.09.08.15.17.15h1.4c.09 0 .16-.06.17-.15l.13-.93c.21-.09.41-.21.59-.34l.87.35c.08.03.17 0 .21-.08l.7-1.21c.04-.08.03-.17-.04-.22zm-2.6.91c-.69 0-1.25-.56-1.25-1.25s.56-1.25 1.25-1.25 1.25.56 1.25 1.25-.56 1.25-1.25 1.25m.42 3.93-.5-.87c-.03-.06-.1-.08-.15-.06l-.62.25c-.13-.1-.27-.18-.42-.24l-.09-.66c-.02-.06-.08-.1-.14-.1h-1c-.06 0-.11.04-.12.11l-.09.66c-.15.06-.29.15-.42.24l-.62-.25c-.06-.02-.12 0-.15.06l-.5.87c-.03.06-.02.12.03.16l.53.41c-.01.08-.02.16-.02.24 0 .08.01.17.02.24l-.53.41c-.05.04-.06.11-.03.16l.5.87c.03.06.1.08.15.06l.62-.25c.13.1.27.18.42.24l.09.66c.01.07.06.11.12.11h1c.06 0 .12-.04.12-.11l.09-.66c.15-.06.29-.15.42-.24l.62.25c.06.02.12 0 .15-.06l.5-.87c.03-.06.02-.12-.03-.16l-.52-.41c.01-.08.02-.16.02-.24 0-.08-.01-.17-.02-.24l.53-.41c.05-.04.06-.11.04-.17m-2.42 1.65c-.46 0-.83-.38-.83-.83 0-.46.38-.83.83-.83s.83.38.83.83c0 .46-.37.83-.83.83M4.74 9h8.53c.27 0 .49-.22.49-.49v-.02c0-.27-.22-.49-.49-.49H13c0-1.48-.81-2.75-2-3.45v.95c0 .28-.22.5-.5.5s-.5-.22-.5-.5V4.14C9.68 4.06 9.35 4 9 4s-.68.06-1 .14V5.5c0 .28-.22.5-.5.5S7 5.78 7 5.5v-.95C5.81 5.25 5 6.52 5 8h-.26c-.27 0-.49.22-.49.49v.03c0 .26.22.48.49.48M9 13c1.86 0 3.41-1.28 3.86-3H5.14c.45 1.72 2 3 3.86 3\"\n}), 'Engineering');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M10 20h4V4h-4zm-6 0h4v-8H4zM16 9v11h4V9z\"\n}), 'Equalizer');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M10.09 15.59 11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2\"\n}), 'ExitToApp');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5\"\n}), 'Group');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4\"\n}), 'HelpOutline');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z\"\n}), 'Info');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"\n}), 'MoreVert');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M7 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5m5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5m5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5\"\n}), 'Pending');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M13 8c0-2.21-1.79-4-4-4S5 5.79 5 8s1.79 4 4 4 4-1.79 4-4m-2 0c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2M1 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4m2 0c.2-.71 3.3-2 6-2 2.69 0 5.78 1.28 6 2zm17-3v-3h3v-2h-3V7h-2v3h-3v2h3v3z\"\n}), 'PersonAddAlt');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z\"\n}), 'UploadFile');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3\"\n}), 'Visibility');","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n // the will define the property that has `currentColor`\n // for example heroicons uses fill=\"none\" and stroke=\"currentColor\"\n fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox,\n hasSvgAsChild\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, hasSvgAsChild && children.props, {\n ownerState: ownerState,\n children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","export default '$$material';","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","import capitalize from '@mui/utils/capitalize';\nexport default capitalize;","import createChainedFunction from '@mui/utils/createChainedFunction';\nexport default createChainedFunction;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import debounce from '@mui/utils/debounce';\nexport default debounce;","import deprecatedPropType from '@mui/utils/deprecatedPropType';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import requirePropFactory from '@mui/utils/requirePropFactory';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import setRef from '@mui/utils/setRef';\nexport default setRef;","import unsupportedProp from '@mui/utils/unsupportedProp';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/utils';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import isMuiElement from '@mui/utils/isMuiElement';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","import ownerDocument from '@mui/utils/ownerDocument';\nexport default ownerDocument;","import ownerWindow from '@mui/utils/ownerWindow';\nexport default ownerWindow;","'use client';\n\nimport useControlled from '@mui/utils/useControlled';\nexport default useControlled;","'use client';\n\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nexport default useEnhancedEffect;","'use client';\n\nimport useEventCallback from '@mui/utils/useEventCallback';\nexport default useEventCallback;","'use client';\n\nimport useForkRef from '@mui/utils/useForkRef';\nexport default useForkRef;","'use client';\n\nimport useId from '@mui/utils/useId';\nexport default useId;","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","'use client';\n\nimport useIsFocusVisible from '@mui/utils/useIsFocusVisible';\nexport default useIsFocusVisible;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\n/* import type {\n ElementType,\n StatelessFunctionalComponent,\n AbstractComponent\n} from 'react' */\n/*\nexport type Interpolations = Array\n\nexport type StyledElementType =\n | string\n | AbstractComponent<{ ...Props, className: string }, mixed>\n\nexport type StyledOptions = {\n label?: string,\n shouldForwardProp?: string => boolean,\n target?: string\n}\n\nexport type StyledComponent = StatelessFunctionalComponent & {\n defaultProps: any,\n toString: () => string,\n withComponent: (\n nextTag: StyledElementType,\n nextOptions?: StyledOptions\n ) => StyledComponent\n}\n\nexport type PrivateStyledComponent = StyledComponent & {\n __emotion_real: StyledComponent,\n __emotion_base: any,\n __emotion_styles: any,\n __emotion_forwardProp: any\n}\n*/\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key\n/*: string */\n) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag\n/*: ElementType */\n) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag\n/*: PrivateStyledComponent */\n, options\n/*: StyledOptions | void */\n, isReal\n/*: boolean */\n) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName\n /*: string */\n ) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n/*\nexport type CreateStyledComponent = (\n ...args: Interpolations\n) => StyledComponent\n\nexport type CreateStyled = {\n (\n tag: StyledElementType,\n options?: StyledOptions\n ): (...args: Interpolations) => StyledComponent,\n [key: string]: CreateStyledComponent,\n bind: () => CreateStyled\n}\n*/\n\nvar isDevelopment = false;\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled\n/*: CreateStyled */\n= function createStyled\n/*: CreateStyled */\n(tag\n/*: any */\n, options\n/* ?: StyledOptions */\n) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n /* return function(): PrivateStyledComponent { */\n\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled\n /*: PrivateStyledComponent */\n = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag\n /*: StyledElementType */\n , nextOptions\n /* ?: StyledOptions */\n ) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nlet cache;\nif (typeof document === 'object') {\n cache = createCache({\n key: 'css',\n prepend: true\n });\n}\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n children\n } = props;\n return injectFirst && cache ? /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n }) : children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","/**\n * @mui/styled-engine v5.16.8\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _styledEngine = require(\"@mui/styled-engine\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(_styledEngine.ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nvar _default = exports.default = useTheme;","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\n\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if ( /*#__PURE__*/React.isValidElement(source) || !isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if ( /*#__PURE__*/React.isValidElement(source[key])) {\n output[key] = source[key];\n } else if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import ClassNameGenerator from '../ClassNameGenerator';\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n* plotly.js v3.0.1\n* Copyright 2012-2025, Plotly, Inc.\n* All rights reserved.\n* Licensed under the MIT license\n*/\n(\n function(root, factory) {\n if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.moduleName = factory();\n }\n} (typeof self !== \"undefined\" ? self : this, () => {\n\"use strict\";\nvar Plotly = (() => {\n var __create = Object.create;\n var __defProp = Object.defineProperty;\n var __defProps = Object.defineProperties;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropDescs = Object.getOwnPropertyDescriptors;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __getOwnPropSymbols = Object.getOwnPropertySymbols;\n var __getProtoOf = Object.getPrototypeOf;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __propIsEnum = Object.prototype.propertyIsEnumerable;\n var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\n var __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n };\n var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n var __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n };\n var __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n };\n var __export = (target, all) => {\n for (var name2 in all)\n __defProp(target, name2, { get: all[name2], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n ));\n var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n // src/version.js\n var require_version = __commonJS({\n \"src/version.js\"(exports) {\n \"use strict\";\n exports.version = \"3.0.1\";\n }\n });\n\n // node_modules/native-promise-only/lib/npo.src.js\n var require_npo_src = __commonJS({\n \"node_modules/native-promise-only/lib/npo.src.js\"(exports, module) {\n (function UMD(name2, context, definition) {\n context[name2] = context[name2] || definition();\n if (typeof module != \"undefined\" && module.exports) {\n module.exports = context[name2];\n } else if (typeof define == \"function\" && false) {\n define(function $AMD$() {\n return context[name2];\n });\n }\n })(\"Promise\", typeof window != \"undefined\" ? window : exports, function DEF() {\n \"use strict\";\n var builtInProp, cycle, scheduling_queue, ToString = Object.prototype.toString, timer = typeof setImmediate != \"undefined\" ? function timer2(fn) {\n return setImmediate(fn);\n } : setTimeout;\n try {\n Object.defineProperty({}, \"x\", {});\n builtInProp = function builtInProp2(obj, name2, val, config) {\n return Object.defineProperty(obj, name2, {\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n } catch (err) {\n builtInProp = function builtInProp2(obj, name2, val) {\n obj[name2] = val;\n return obj;\n };\n }\n scheduling_queue = /* @__PURE__ */ function Queue() {\n var first, last, item;\n function Item(fn, self2) {\n this.fn = fn;\n this.self = self2;\n this.next = void 0;\n }\n return {\n add: function add(fn, self2) {\n item = new Item(fn, self2);\n if (last) {\n last.next = item;\n } else {\n first = item;\n }\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n }();\n function schedule(fn, self2) {\n scheduling_queue.add(fn, self2);\n if (!cycle) {\n cycle = timer(scheduling_queue.drain);\n }\n }\n function isThenable(o) {\n var _then, o_type = typeof o;\n if (o != null && (o_type == \"object\" || o_type == \"function\")) {\n _then = o.then;\n }\n return typeof _then == \"function\" ? _then : false;\n }\n function notify() {\n for (var i = 0; i < this.chain.length; i++) {\n notifyIsolated(\n this,\n this.state === 1 ? this.chain[i].success : this.chain[i].failure,\n this.chain[i]\n );\n }\n this.chain.length = 0;\n }\n function notifyIsolated(self2, cb, chain) {\n var ret, _then;\n try {\n if (cb === false) {\n chain.reject(self2.msg);\n } else {\n if (cb === true) {\n ret = self2.msg;\n } else {\n ret = cb.call(void 0, self2.msg);\n }\n if (ret === chain.promise) {\n chain.reject(TypeError(\"Promise-chain cycle\"));\n } else if (_then = isThenable(ret)) {\n _then.call(ret, chain.resolve, chain.reject);\n } else {\n chain.resolve(ret);\n }\n }\n } catch (err) {\n chain.reject(err);\n }\n }\n function resolve(msg) {\n var _then, self2 = this;\n if (self2.triggered) {\n return;\n }\n self2.triggered = true;\n if (self2.def) {\n self2 = self2.def;\n }\n try {\n if (_then = isThenable(msg)) {\n schedule(function() {\n var def_wrapper = new MakeDefWrapper(self2);\n try {\n _then.call(\n msg,\n function $resolve$() {\n resolve.apply(def_wrapper, arguments);\n },\n function $reject$() {\n reject.apply(def_wrapper, arguments);\n }\n );\n } catch (err) {\n reject.call(def_wrapper, err);\n }\n });\n } else {\n self2.msg = msg;\n self2.state = 1;\n if (self2.chain.length > 0) {\n schedule(notify, self2);\n }\n }\n } catch (err) {\n reject.call(new MakeDefWrapper(self2), err);\n }\n }\n function reject(msg) {\n var self2 = this;\n if (self2.triggered) {\n return;\n }\n self2.triggered = true;\n if (self2.def) {\n self2 = self2.def;\n }\n self2.msg = msg;\n self2.state = 2;\n if (self2.chain.length > 0) {\n schedule(notify, self2);\n }\n }\n function iteratePromises(Constructor, arr, resolver, rejecter) {\n for (var idx = 0; idx < arr.length; idx++) {\n (function IIFE(idx2) {\n Constructor.resolve(arr[idx2]).then(\n function $resolver$(msg) {\n resolver(idx2, msg);\n },\n rejecter\n );\n })(idx);\n }\n }\n function MakeDefWrapper(self2) {\n this.def = self2;\n this.triggered = false;\n }\n function MakeDef(self2) {\n this.promise = self2;\n this.state = 0;\n this.triggered = false;\n this.chain = [];\n this.msg = void 0;\n }\n function Promise2(executor) {\n if (typeof executor != \"function\") {\n throw TypeError(\"Not a function\");\n }\n if (this.__NPO__ !== 0) {\n throw TypeError(\"Not a promise\");\n }\n this.__NPO__ = 1;\n var def = new MakeDef(this);\n this[\"then\"] = function then(success, failure) {\n var o = {\n success: typeof success == \"function\" ? success : true,\n failure: typeof failure == \"function\" ? failure : false\n };\n o.promise = new this.constructor(function extractChain(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n o.resolve = resolve2;\n o.reject = reject2;\n });\n def.chain.push(o);\n if (def.state !== 0) {\n schedule(notify, def);\n }\n return o.promise;\n };\n this[\"catch\"] = function $catch$(failure) {\n return this.then(void 0, failure);\n };\n try {\n executor.call(\n void 0,\n function publicResolve(msg) {\n resolve.call(def, msg);\n },\n function publicReject(msg) {\n reject.call(def, msg);\n }\n );\n } catch (err) {\n reject.call(def, err);\n }\n }\n var PromisePrototype = builtInProp(\n {},\n \"constructor\",\n Promise2,\n /*configurable=*/\n false\n );\n Promise2.prototype = PromisePrototype;\n builtInProp(\n PromisePrototype,\n \"__NPO__\",\n 0,\n /*configurable=*/\n false\n );\n builtInProp(Promise2, \"resolve\", function Promise$resolve(msg) {\n var Constructor = this;\n if (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n return msg;\n }\n return new Constructor(function executor(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n resolve2(msg);\n });\n });\n builtInProp(Promise2, \"reject\", function Promise$reject(msg) {\n return new this(function executor(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n reject2(msg);\n });\n });\n builtInProp(Promise2, \"all\", function Promise$all(arr) {\n var Constructor = this;\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n if (arr.length === 0) {\n return Constructor.resolve([]);\n }\n return new Constructor(function executor(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n var len = arr.length, msgs = Array(len), count = 0;\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n msgs[idx] = msg;\n if (++count === len) {\n resolve2(msgs);\n }\n }, reject2);\n });\n });\n builtInProp(Promise2, \"race\", function Promise$race(arr) {\n var Constructor = this;\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n return new Constructor(function executor(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n resolve2(msg);\n }, reject2);\n });\n });\n return Promise2;\n });\n }\n });\n\n // node_modules/@plotly/d3/d3.js\n var require_d3 = __commonJS({\n \"node_modules/@plotly/d3/d3.js\"(exports, module) {\n !function() {\n var d3 = {\n version: \"3.8.2\"\n };\n var d3_arraySlice = [].slice, d3_array = function(list) {\n return d3_arraySlice.call(list);\n };\n var d3_document = self.document;\n function d3_documentElement(node) {\n return node && (node.ownerDocument || node.document || node).documentElement;\n }\n function d3_window(node) {\n return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n }\n if (d3_document) {\n try {\n d3_array(d3_document.documentElement.childNodes)[0].nodeType;\n } catch (e) {\n d3_array = function(list) {\n var i = list.length, array = new Array(i);\n while (i--) array[i] = list[i];\n return array;\n };\n }\n }\n if (!Date.now) Date.now = function() {\n return +/* @__PURE__ */ new Date();\n };\n if (d3_document) {\n try {\n d3_document.createElement(\"DIV\").style.setProperty(\"opacity\", 0, \"\");\n } catch (error) {\n var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;\n d3_element_prototype.setAttribute = function(name2, value) {\n d3_element_setAttribute.call(this, name2, value + \"\");\n };\n d3_element_prototype.setAttributeNS = function(space, local, value) {\n d3_element_setAttributeNS.call(this, space, local, value + \"\");\n };\n d3_style_prototype.setProperty = function(name2, value, priority) {\n d3_style_setProperty.call(this, name2, value + \"\", priority);\n };\n }\n }\n d3.ascending = d3_ascending;\n function d3_ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n d3.descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n };\n d3.min = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;\n }\n return a;\n };\n d3.max = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;\n }\n return a;\n };\n d3.extent = function(array, f) {\n var i = -1, n = array.length, a, b, c;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n return [a, c];\n };\n function d3_number(x) {\n return x === null ? NaN : +x;\n }\n function d3_numeric(x) {\n return !isNaN(x);\n }\n d3.sum = function(array, f) {\n var s = 0, n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = +array[i])) s += a;\n } else {\n while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;\n }\n return s;\n };\n d3.mean = function(array, f) {\n var s = 0, n = array.length, a, i = -1, j = n;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a;\n else --j;\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a;\n else --j;\n }\n if (j) return s / j;\n };\n d3.quantile = function(values, p) {\n var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;\n return e ? v + e * (values[h] - v) : v;\n };\n d3.median = function(array, f) {\n var numbers = [], n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);\n }\n if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), 0.5);\n };\n d3.variance = function(array, f) {\n var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;\n if (arguments.length === 1) {\n while (++i < n) {\n if (d3_numeric(a = d3_number(array[i]))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n } else {\n while (++i < n) {\n if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n if (j > 1) return s / (j - 1);\n };\n d3.deviation = function() {\n var v = d3.variance.apply(this, arguments);\n return v ? Math.sqrt(v) : v;\n };\n function d3_bisector(compare) {\n return {\n left: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n var d3_bisect = d3_bisector(d3_ascending);\n d3.bisectLeft = d3_bisect.left;\n d3.bisect = d3.bisectRight = d3_bisect.right;\n d3.bisector = function(f) {\n return d3_bisector(f.length === 1 ? function(d, x) {\n return d3_ascending(f(d), x);\n } : f);\n };\n d3.shuffle = function(array, i0, i1) {\n if ((m = arguments.length) < 3) {\n i1 = array.length;\n if (m < 2) i0 = 0;\n }\n var m = i1 - i0, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;\n }\n return array;\n };\n d3.permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n };\n d3.pairs = function(array) {\n var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [p0 = p1, p1 = array[++i]];\n return pairs;\n };\n d3.transpose = function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n };\n function d3_transposeLength(d) {\n return d.length;\n }\n d3.zip = function() {\n return d3.transpose(arguments);\n };\n d3.keys = function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n };\n d3.values = function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n };\n d3.entries = function(map) {\n var entries = [];\n for (var key in map) entries.push({\n key,\n value: map[key]\n });\n return entries;\n };\n d3.merge = function(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n return merged;\n };\n var abs = Math.abs;\n d3.range = function(start, stop, step) {\n if (arguments.length < 3) {\n step = 1;\n if (arguments.length < 2) {\n stop = start;\n start = 0;\n }\n }\n if ((stop - start) / step === Infinity) throw new Error(\"infinite range\");\n var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;\n start *= k, stop *= k, step *= k;\n if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k);\n else while ((j = start + step * ++i) < stop) range.push(j / k);\n return range;\n };\n function d3_range_integerScale(x) {\n var k = 1;\n while (x * k % 1) k *= 10;\n return k;\n }\n function d3_class(ctor, properties) {\n for (var key in properties) {\n Object.defineProperty(ctor.prototype, key, {\n value: properties[key],\n enumerable: false\n });\n }\n }\n d3.map = function(object, f) {\n var map = new d3_Map();\n if (object instanceof d3_Map) {\n object.forEach(function(key2, value) {\n map.set(key2, value);\n });\n } else if (Array.isArray(object)) {\n var i = -1, n = object.length, o;\n if (arguments.length === 1) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f.call(object, o = object[i], i), o);\n } else {\n for (var key in object) map.set(key, object[key]);\n }\n return map;\n };\n function d3_Map() {\n this._ = /* @__PURE__ */ Object.create(null);\n }\n var d3_map_proto = \"__proto__\", d3_map_zero = \"\\0\";\n d3_class(d3_Map, {\n has: d3_map_has,\n get: function(key) {\n return this._[d3_map_escape(key)];\n },\n set: function(key, value) {\n return this._[d3_map_escape(key)] = value;\n },\n remove: d3_map_remove,\n keys: d3_map_keys,\n values: function() {\n var values = [];\n for (var key in this._) values.push(this._[key]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var key in this._) entries.push({\n key: d3_map_unescape(key),\n value: this._[key]\n });\n return entries;\n },\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);\n }\n });\n function d3_map_escape(key) {\n return (key += \"\") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;\n }\n function d3_map_unescape(key) {\n return (key += \"\")[0] === d3_map_zero ? key.slice(1) : key;\n }\n function d3_map_has(key) {\n return d3_map_escape(key) in this._;\n }\n function d3_map_remove(key) {\n return (key = d3_map_escape(key)) in this._ && delete this._[key];\n }\n function d3_map_keys() {\n var keys = [];\n for (var key in this._) keys.push(d3_map_unescape(key));\n return keys;\n }\n function d3_map_size() {\n var size = 0;\n for (var key in this._) ++size;\n return size;\n }\n function d3_map_empty() {\n for (var key in this._) return false;\n return true;\n }\n d3.nest = function() {\n var nest = {}, keys = [], sortKeys = [], sortValues, rollup;\n function map(mapType, array, depth) {\n if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;\n var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(object = array[i]))) {\n values.push(object);\n } else {\n valuesByKey.set(keyValue, [object]);\n }\n }\n if (mapType) {\n object = mapType();\n setter = function(keyValue2, values2) {\n object.set(keyValue2, map(mapType, values2, depth));\n };\n } else {\n object = {};\n setter = function(keyValue2, values2) {\n object[keyValue2] = map(mapType, values2, depth);\n };\n }\n valuesByKey.forEach(setter);\n return object;\n }\n function entries(map2, depth) {\n if (depth >= keys.length) return map2;\n var array = [], sortKey = sortKeys[depth++];\n map2.forEach(function(key, keyMap) {\n array.push({\n key,\n values: entries(keyMap, depth)\n });\n });\n return sortKey ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n nest.map = function(array, mapType) {\n return map(mapType, array, 0);\n };\n nest.entries = function(array) {\n return entries(map(d3.map, array, 0), 0);\n };\n nest.key = function(d) {\n keys.push(d);\n return nest;\n };\n nest.sortKeys = function(order) {\n sortKeys[keys.length - 1] = order;\n return nest;\n };\n nest.sortValues = function(order) {\n sortValues = order;\n return nest;\n };\n nest.rollup = function(f) {\n rollup = f;\n return nest;\n };\n return nest;\n };\n d3.set = function(array) {\n var set = new d3_Set();\n if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);\n return set;\n };\n function d3_Set() {\n this._ = /* @__PURE__ */ Object.create(null);\n }\n d3_class(d3_Set, {\n has: d3_map_has,\n add: function(key) {\n this._[d3_map_escape(key += \"\")] = true;\n return key;\n },\n remove: d3_map_remove,\n values: d3_map_keys,\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key));\n }\n });\n d3.behavior = {};\n function d3_identity(d) {\n return d;\n }\n d3.rebind = function(target, source) {\n var i = 1, n = arguments.length, method;\n while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);\n return target;\n };\n function d3_rebind(target, source, method) {\n return function() {\n var value = method.apply(source, arguments);\n return value === source ? target : value;\n };\n }\n function d3_vendorSymbol(object, name2) {\n if (name2 in object) return name2;\n name2 = name2.charAt(0).toUpperCase() + name2.slice(1);\n for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {\n var prefixName = d3_vendorPrefixes[i] + name2;\n if (prefixName in object) return prefixName;\n }\n }\n var d3_vendorPrefixes = [\"webkit\", \"ms\", \"moz\", \"Moz\", \"o\", \"O\"];\n function d3_noop() {\n }\n d3.dispatch = function() {\n var dispatch = new d3_dispatch(), i = -1, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n return dispatch;\n };\n function d3_dispatch() {\n }\n d3_dispatch.prototype.on = function(type, listener) {\n var i = type.indexOf(\".\"), name2 = \"\";\n if (i >= 0) {\n name2 = type.slice(i + 1);\n type = type.slice(0, i);\n }\n if (type) return arguments.length < 2 ? this[type].on(name2) : this[type].on(name2, listener);\n if (arguments.length === 2) {\n if (listener == null) for (type in this) {\n if (this.hasOwnProperty(type)) this[type].on(name2, null);\n }\n return this;\n }\n };\n function d3_dispatch_event(dispatch) {\n var listeners = [], listenerByName = new d3_Map();\n function event() {\n var z = listeners, i = -1, n = z.length, l;\n while (++i < n) if (l = z[i].on) l.apply(this, arguments);\n return dispatch;\n }\n event.on = function(name2, listener) {\n var l = listenerByName.get(name2), i;\n if (arguments.length < 2) return l && l.on;\n if (l) {\n l.on = null;\n listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));\n listenerByName.remove(name2);\n }\n if (listener) listeners.push(listenerByName.set(name2, {\n on: listener\n }));\n return dispatch;\n };\n return event;\n }\n d3.event = null;\n function d3_eventPreventDefault() {\n d3.event.preventDefault();\n }\n function d3_eventSource() {\n var e = d3.event, s;\n while (s = e.sourceEvent) e = s;\n return e;\n }\n function d3_eventDispatch(target) {\n var dispatch = new d3_dispatch(), i = 0, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n dispatch.of = function(thiz, argumentz) {\n return function(e1) {\n try {\n var e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n d3.requote = function(s) {\n return s.replace(d3_requote_re, \"\\\\$&\");\n };\n var d3_requote_re = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n var d3_subclass = {}.__proto__ ? function(object, prototype) {\n object.__proto__ = prototype;\n } : function(object, prototype) {\n for (var property in prototype) object[property] = prototype[property];\n };\n function d3_selection(groups) {\n d3_subclass(groups, d3_selectionPrototype);\n return groups;\n }\n var d3_select = function(s, n) {\n return n.querySelector(s);\n }, d3_selectAll = function(s, n) {\n return n.querySelectorAll(s);\n }, d3_selectMatches = function(n, s) {\n var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, \"matchesSelector\")];\n d3_selectMatches = function(n2, s2) {\n return d3_selectMatcher.call(n2, s2);\n };\n return d3_selectMatches(n, s);\n };\n if (typeof Sizzle === \"function\") {\n d3_select = function(s, n) {\n return Sizzle(s, n)[0] || null;\n };\n d3_selectAll = Sizzle;\n d3_selectMatches = Sizzle.matchesSelector;\n }\n d3.selection = function() {\n return d3.select(d3_document.documentElement);\n };\n var d3_selectionPrototype = d3.selection.prototype = [];\n d3_selectionPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, group, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(subnode = selector.call(node, node.__data__, i, j));\n if (subnode && \"__data__\" in node) subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selector(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_select(selector, this);\n };\n }\n d3_selectionPrototype.selectAll = function(selector) {\n var subgroups = [], subgroup, node;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));\n subgroup.parentNode = node;\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selectorAll(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_selectAll(selector, this);\n };\n }\n var d3_nsXhtml = \"http://www.w3.org/1999/xhtml\";\n var d3_nsPrefix = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: d3_nsXhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n };\n d3.ns = {\n prefix: d3_nsPrefix,\n qualify: function(name2) {\n var i = name2.indexOf(\":\"), prefix = name2;\n if (i >= 0 && (prefix = name2.slice(0, i)) !== \"xmlns\") name2 = name2.slice(i + 1);\n return d3_nsPrefix.hasOwnProperty(prefix) ? {\n space: d3_nsPrefix[prefix],\n local: name2\n } : name2;\n }\n };\n d3_selectionPrototype.attr = function(name2, value) {\n if (arguments.length < 2) {\n if (typeof name2 === \"string\") {\n var node = this.node();\n name2 = d3.ns.qualify(name2);\n return name2.local ? node.getAttributeNS(name2.space, name2.local) : node.getAttribute(name2);\n }\n for (value in name2) this.each(d3_selection_attr(value, name2[value]));\n return this;\n }\n return this.each(d3_selection_attr(name2, value));\n };\n function d3_selection_attr(name2, value) {\n name2 = d3.ns.qualify(name2);\n function attrNull() {\n this.removeAttribute(name2);\n }\n function attrNullNS() {\n this.removeAttributeNS(name2.space, name2.local);\n }\n function attrConstant() {\n this.setAttribute(name2, value);\n }\n function attrConstantNS() {\n this.setAttributeNS(name2.space, name2.local, value);\n }\n function attrFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttribute(name2);\n else this.setAttribute(name2, x);\n }\n function attrFunctionNS() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttributeNS(name2.space, name2.local);\n else this.setAttributeNS(name2.space, name2.local, x);\n }\n return value == null ? name2.local ? attrNullNS : attrNull : typeof value === \"function\" ? name2.local ? attrFunctionNS : attrFunction : name2.local ? attrConstantNS : attrConstant;\n }\n function d3_collapse(s) {\n return s.trim().replace(/\\s+/g, \" \");\n }\n d3_selectionPrototype.classed = function(name2, value) {\n if (arguments.length < 2) {\n if (typeof name2 === \"string\") {\n var node = this.node(), n = (name2 = d3_selection_classes(name2)).length, i = -1;\n if (value = node.classList) {\n while (++i < n) if (!value.contains(name2[i])) return false;\n } else {\n value = node.getAttribute(\"class\");\n while (++i < n) if (!d3_selection_classedRe(name2[i]).test(value)) return false;\n }\n return true;\n }\n for (value in name2) this.each(d3_selection_classed(value, name2[value]));\n return this;\n }\n return this.each(d3_selection_classed(name2, value));\n };\n function d3_selection_classedRe(name2) {\n return new RegExp(\"(?:^|\\\\s+)\" + d3.requote(name2) + \"(?:\\\\s+|$)\", \"g\");\n }\n function d3_selection_classes(name2) {\n return (name2 + \"\").trim().split(/^|\\s+/);\n }\n function d3_selection_classed(name2, value) {\n name2 = d3_selection_classes(name2).map(d3_selection_classedName);\n var n = name2.length;\n function classedConstant() {\n var i = -1;\n while (++i < n) name2[i](this, value);\n }\n function classedFunction() {\n var i = -1, x = value.apply(this, arguments);\n while (++i < n) name2[i](this, x);\n }\n return typeof value === \"function\" ? classedFunction : classedConstant;\n }\n function d3_selection_classedName(name2) {\n var re = d3_selection_classedRe(name2);\n return function(node, value) {\n if (c = node.classList) return value ? c.add(name2) : c.remove(name2);\n var c = node.getAttribute(\"class\") || \"\";\n if (value) {\n re.lastIndex = 0;\n if (!re.test(c)) node.setAttribute(\"class\", d3_collapse(c + \" \" + name2));\n } else {\n node.setAttribute(\"class\", d3_collapse(c.replace(re, \" \")));\n }\n };\n }\n d3_selectionPrototype.style = function(name2, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name2 !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name2) this.each(d3_selection_style(priority, name2[priority], value));\n return this;\n }\n if (n < 2) {\n var node = this.node();\n return d3_window(node).getComputedStyle(node, null).getPropertyValue(name2);\n }\n priority = \"\";\n }\n return this.each(d3_selection_style(name2, value, priority));\n };\n function d3_selection_style(name2, value, priority) {\n function styleNull() {\n this.style.removeProperty(name2);\n }\n function styleConstant() {\n this.style.setProperty(name2, value, priority);\n }\n function styleFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.style.removeProperty(name2);\n else this.style.setProperty(name2, x, priority);\n }\n return value == null ? styleNull : typeof value === \"function\" ? styleFunction : styleConstant;\n }\n d3_selectionPrototype.property = function(name2, value) {\n if (arguments.length < 2) {\n if (typeof name2 === \"string\") return this.node()[name2];\n for (value in name2) this.each(d3_selection_property(value, name2[value]));\n return this;\n }\n return this.each(d3_selection_property(name2, value));\n };\n function d3_selection_property(name2, value) {\n function propertyNull() {\n delete this[name2];\n }\n function propertyConstant() {\n this[name2] = value;\n }\n function propertyFunction() {\n var x = value.apply(this, arguments);\n if (x == null) delete this[name2];\n else this[name2] = x;\n }\n return value == null ? propertyNull : typeof value === \"function\" ? propertyFunction : propertyConstant;\n }\n d3_selectionPrototype.text = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n } : value == null ? function() {\n this.textContent = \"\";\n } : function() {\n this.textContent = value;\n }) : this.node().textContent;\n };\n d3_selectionPrototype.html = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n } : value == null ? function() {\n this.innerHTML = \"\";\n } : function() {\n this.innerHTML = value;\n }) : this.node().innerHTML;\n };\n d3_selectionPrototype.append = function(name2) {\n name2 = d3_selection_creator(name2);\n return this.select(function() {\n return this.appendChild(name2.apply(this, arguments));\n });\n };\n function d3_selection_creator(name2) {\n function create() {\n var document2 = this.ownerDocument, namespace = this.namespaceURI;\n return namespace === d3_nsXhtml && document2.documentElement.namespaceURI === d3_nsXhtml ? document2.createElement(name2) : document2.createElementNS(namespace, name2);\n }\n function createNS() {\n return this.ownerDocument.createElementNS(name2.space, name2.local);\n }\n return typeof name2 === \"function\" ? name2 : (name2 = d3.ns.qualify(name2)).local ? createNS : create;\n }\n d3_selectionPrototype.insert = function(name2, before) {\n name2 = d3_selection_creator(name2);\n before = d3_selection_selector(before);\n return this.select(function() {\n return this.insertBefore(name2.apply(this, arguments), before.apply(this, arguments) || null);\n });\n };\n d3_selectionPrototype.remove = function() {\n return this.each(d3_selectionRemove);\n };\n function d3_selectionRemove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n }\n d3_selectionPrototype.data = function(value, key) {\n var i = -1, n = this.length, group, node;\n if (!arguments.length) {\n value = new Array(n = (group = this[0]).length);\n while (++i < n) {\n if (node = group[i]) {\n value[i] = node.__data__;\n }\n }\n return value;\n }\n function bind(group2, groupData) {\n var i2, n2 = group2.length, m = groupData.length, n0 = Math.min(n2, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n2), node2, nodeData;\n if (key) {\n var nodeByKeyValue = new d3_Map(), keyValues = new Array(n2), keyValue;\n for (i2 = -1; ++i2 < n2; ) {\n if (node2 = group2[i2]) {\n if (nodeByKeyValue.has(keyValue = key.call(node2, node2.__data__, i2))) {\n exitNodes[i2] = node2;\n } else {\n nodeByKeyValue.set(keyValue, node2);\n }\n keyValues[i2] = keyValue;\n }\n }\n for (i2 = -1; ++i2 < m; ) {\n if (!(node2 = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i2], i2)))) {\n enterNodes[i2] = d3_selection_dataNode(nodeData);\n } else if (node2 !== true) {\n updateNodes[i2] = node2;\n node2.__data__ = nodeData;\n }\n nodeByKeyValue.set(keyValue, true);\n }\n for (i2 = -1; ++i2 < n2; ) {\n if (i2 in keyValues && nodeByKeyValue.get(keyValues[i2]) !== true) {\n exitNodes[i2] = group2[i2];\n }\n }\n } else {\n for (i2 = -1; ++i2 < n0; ) {\n node2 = group2[i2];\n nodeData = groupData[i2];\n if (node2) {\n node2.__data__ = nodeData;\n updateNodes[i2] = node2;\n } else {\n enterNodes[i2] = d3_selection_dataNode(nodeData);\n }\n }\n for (; i2 < m; ++i2) {\n enterNodes[i2] = d3_selection_dataNode(groupData[i2]);\n }\n for (; i2 < n2; ++i2) {\n exitNodes[i2] = group2[i2];\n }\n }\n enterNodes.update = updateNodes;\n enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group2.parentNode;\n enter.push(enterNodes);\n update.push(updateNodes);\n exit.push(exitNodes);\n }\n var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);\n if (typeof value === \"function\") {\n while (++i < n) {\n bind(group = this[i], value.call(group, group.parentNode.__data__, i));\n }\n } else {\n while (++i < n) {\n bind(group = this[i], value);\n }\n }\n update.enter = function() {\n return enter;\n };\n update.exit = function() {\n return exit;\n };\n return update;\n };\n function d3_selection_dataNode(data) {\n return {\n __data__: data\n };\n }\n d3_selectionPrototype.datum = function(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.property(\"__data__\");\n };\n d3_selectionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_filter(selector) {\n return function() {\n return d3_selectMatches(this, selector);\n };\n }\n d3_selectionPrototype.order = function() {\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n };\n d3_selectionPrototype.sort = function(comparator) {\n comparator = d3_selection_sortComparator.apply(this, arguments);\n for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);\n return this.order();\n };\n function d3_selection_sortComparator(comparator) {\n if (!arguments.length) comparator = d3_ascending;\n return function(a, b) {\n return a && b ? comparator(a.__data__, b.__data__) : !a - !b;\n };\n }\n d3_selectionPrototype.each = function(callback) {\n return d3_selection_each(this, function(node, i, j) {\n callback.call(node, node.__data__, i, j);\n });\n };\n function d3_selection_each(groups, callback) {\n for (var j = 0, m = groups.length; j < m; j++) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {\n if (node = group[i]) callback(node, i, j);\n }\n }\n return groups;\n }\n d3_selectionPrototype.call = function(callback) {\n var args = d3_array(arguments);\n callback.apply(args[0] = this, args);\n return this;\n };\n d3_selectionPrototype.empty = function() {\n return !this.node();\n };\n d3_selectionPrototype.node = function() {\n for (var j = 0, m = this.length; j < m; j++) {\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n var node = group[i];\n if (node) return node;\n }\n }\n return null;\n };\n d3_selectionPrototype.size = function() {\n var n = 0;\n d3_selection_each(this, function() {\n ++n;\n });\n return n;\n };\n function d3_selection_enter(selection) {\n d3_subclass(selection, d3_selection_enterPrototype);\n return selection;\n }\n var d3_selection_enterPrototype = [];\n d3.selection.enter = d3_selection_enter;\n d3.selection.enter.prototype = d3_selection_enterPrototype;\n d3_selection_enterPrototype.append = d3_selectionPrototype.append;\n d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;\n d3_selection_enterPrototype.node = d3_selectionPrototype.node;\n d3_selection_enterPrototype.call = d3_selectionPrototype.call;\n d3_selection_enterPrototype.size = d3_selectionPrototype.size;\n d3_selection_enterPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, upgroup, group, node;\n for (var j = -1, m = this.length; ++j < m; ) {\n upgroup = (group = this[j]).update;\n subgroups.push(subgroup = []);\n subgroup.parentNode = group.parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));\n subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n d3_selection_enterPrototype.insert = function(name2, before) {\n if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);\n return d3_selectionPrototype.insert.call(this, name2, before);\n };\n function d3_selection_enterInsertBefore(enter) {\n var i0, j0;\n return function(d, i, j) {\n var group = enter[j].update, n = group.length, node;\n if (j != j0) j0 = j, i0 = 0;\n if (i >= i0) i0 = i + 1;\n while (!(node = group[i0]) && ++i0 < n) ;\n return node;\n };\n }\n d3.select = function(node) {\n var group;\n if (typeof node === \"string\") {\n group = [d3_select(node, d3_document)];\n group.parentNode = d3_document.documentElement;\n } else {\n group = [node];\n group.parentNode = d3_documentElement(node);\n }\n return d3_selection([group]);\n };\n d3.selectAll = function(nodes) {\n var group;\n if (typeof nodes === \"string\") {\n group = d3_array(d3_selectAll(nodes, d3_document));\n group.parentNode = d3_document.documentElement;\n } else {\n group = d3_array(nodes);\n group.parentNode = null;\n }\n return d3_selection([group]);\n };\n d3_selectionPrototype.on = function(type, listener, capture) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof type !== \"string\") {\n if (n < 2) listener = false;\n for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));\n return this;\n }\n if (n < 2) return (n = this.node()[\"__on\" + type]) && n._;\n capture = false;\n }\n return this.each(d3_selection_on(type, listener, capture));\n };\n function d3_selection_on(type, listener, capture) {\n var name2 = \"__on\" + type, i = type.indexOf(\".\"), wrap = d3_selection_onListener;\n if (i > 0) type = type.slice(0, i);\n var filter = d3_selection_onFilters.get(type);\n if (filter) type = filter, wrap = d3_selection_onFilter;\n function onRemove() {\n var l = this[name2];\n if (l) {\n this.removeEventListener(type, l, l.$);\n delete this[name2];\n }\n }\n function onAdd() {\n var l = wrap(listener, d3_array(arguments));\n onRemove.call(this);\n this.addEventListener(type, this[name2] = l, l.$ = capture);\n l._ = listener;\n }\n function removeAll() {\n var re = new RegExp(\"^__on([^.]+)\" + d3.requote(type) + \"$\"), match;\n for (var name3 in this) {\n if (match = name3.match(re)) {\n var l = this[name3];\n this.removeEventListener(match[1], l, l.$);\n delete this[name3];\n }\n }\n }\n return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;\n }\n var d3_selection_onFilters = d3.map({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n });\n if (d3_document) {\n d3_selection_onFilters.forEach(function(k) {\n if (\"on\" + k in d3_document) d3_selection_onFilters.remove(k);\n });\n }\n function d3_selection_onListener(listener, argumentz) {\n return function(e) {\n var o = d3.event;\n d3.event = e;\n argumentz[0] = this.__data__;\n try {\n listener.apply(this, argumentz);\n } finally {\n d3.event = o;\n }\n };\n }\n function d3_selection_onFilter(listener, argumentz) {\n var l = d3_selection_onListener(listener, argumentz);\n return function(e) {\n var target = this, related = e.relatedTarget;\n if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {\n l.call(target, e);\n }\n };\n }\n var d3_event_dragSelect, d3_event_dragId = 0;\n function d3_event_dragSuppress(node) {\n var name2 = \".dragsuppress-\" + ++d3_event_dragId, click = \"click\" + name2, w = d3.select(d3_window(node)).on(\"touchmove\" + name2, d3_eventPreventDefault).on(\"dragstart\" + name2, d3_eventPreventDefault).on(\"selectstart\" + name2, d3_eventPreventDefault);\n if (d3_event_dragSelect == null) {\n d3_event_dragSelect = \"onselectstart\" in node ? false : d3_vendorSymbol(node.style, \"userSelect\");\n }\n if (d3_event_dragSelect) {\n var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];\n style[d3_event_dragSelect] = \"none\";\n }\n return function(suppressClick) {\n w.on(name2, null);\n if (d3_event_dragSelect) style[d3_event_dragSelect] = select;\n if (suppressClick) {\n var off = function() {\n w.on(click, null);\n };\n w.on(click, function() {\n d3_eventPreventDefault();\n off();\n }, true);\n setTimeout(off, 0);\n }\n };\n }\n d3.mouse = function(container) {\n return d3_mousePoint(container, d3_eventSource());\n };\n var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;\n function d3_mousePoint(container, e) {\n if (e.changedTouches) e = e.changedTouches[0];\n var svg = container.ownerSVGElement || container;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n if (d3_mouse_bug44083 < 0) {\n var window2 = d3_window(container);\n if (window2.scrollX || window2.scrollY) {\n svg = d3.select(\"body\").append(\"svg\").style({\n position: \"absolute\",\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n border: \"none\"\n }, \"important\");\n var ctm = svg[0][0].getScreenCTM();\n d3_mouse_bug44083 = !(ctm.f || ctm.e);\n svg.remove();\n }\n }\n if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY;\n else point.x = e.clientX, point.y = e.clientY;\n point = point.matrixTransform(container.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n var rect = container.getBoundingClientRect();\n return [e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop];\n }\n d3.touch = function(container, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;\n if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return d3_mousePoint(container, touch);\n }\n }\n };\n d3.behavior.drag = function() {\n var event = d3_eventDispatch(drag, \"drag\", \"dragstart\", \"dragend\"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, \"mousemove\", \"mouseup\"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, \"touchmove\", \"touchend\");\n function drag() {\n this.on(\"mousedown.drag\", mousedown).on(\"touchstart.drag\", touchstart);\n }\n function dragstart(id, position, subject, move, end) {\n return function() {\n var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = \".drag\" + (dragId == null ? \"\" : \"-\" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);\n if (origin) {\n dragOffset = origin.apply(that, arguments);\n dragOffset = [dragOffset.x - position0[0], dragOffset.y - position0[1]];\n } else {\n dragOffset = [0, 0];\n }\n dispatch({\n type: \"dragstart\"\n });\n function moved() {\n var position1 = position(parent, dragId), dx, dy;\n if (!position1) return;\n dx = position1[0] - position0[0];\n dy = position1[1] - position0[1];\n dragged |= dx | dy;\n position0 = position1;\n dispatch({\n type: \"drag\",\n x: position1[0] + dragOffset[0],\n y: position1[1] + dragOffset[1],\n dx,\n dy\n });\n }\n function ended() {\n if (!position(parent, dragId)) return;\n dragSubject.on(move + dragName, null).on(end + dragName, null);\n dragRestore(dragged);\n dispatch({\n type: \"dragend\"\n });\n }\n };\n }\n drag.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return drag;\n };\n return d3.rebind(drag, event, \"on\");\n };\n function d3_behavior_dragTouchId() {\n return d3.event.changedTouches[0].identifier;\n }\n d3.touches = function(container, touches) {\n if (arguments.length < 2) touches = d3_eventSource().touches;\n return touches ? d3_array(touches).map(function(touch) {\n var point = d3_mousePoint(container, touch);\n point.identifier = touch.identifier;\n return point;\n }) : [];\n };\n var \\u03B5 = 1e-6, \\u03B52 = \\u03B5 * \\u03B5, \\u03C0 = Math.PI, \\u03C4 = 2 * \\u03C0, \\u03C4\\u03B5 = \\u03C4 - \\u03B5, half\\u03C0 = \\u03C0 / 2, d3_radians = \\u03C0 / 180, d3_degrees = 180 / \\u03C0;\n function d3_sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function d3_cross2d(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n }\n function d3_acos(x) {\n return x > 1 ? 0 : x < -1 ? \\u03C0 : Math.acos(x);\n }\n function d3_asin(x) {\n return x > 1 ? half\\u03C0 : x < -1 ? -half\\u03C0 : Math.asin(x);\n }\n function d3_sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function d3_cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function d3_tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n function d3_haversin(x) {\n return (x = Math.sin(x / 2)) * x;\n }\n var \\u03C1 = Math.SQRT2, \\u03C12 = 2, \\u03C14 = 4;\n d3.interpolateZoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < \\u03B52) {\n S = Math.log(w1 / w0) / \\u03C1;\n i = function(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(\\u03C1 * t * S)];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + \\u03C14 * d2) / (2 * w0 * \\u03C12 * d1), b1 = (w1 * w1 - w0 * w0 - \\u03C14 * d2) / (2 * w1 * \\u03C12 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / \\u03C1;\n i = function(t) {\n var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (\\u03C12 * d1) * (coshr0 * d3_tanh(\\u03C1 * s + r0) - d3_sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(\\u03C1 * s + r0)];\n };\n }\n i.duration = S * 1e3;\n return i;\n };\n d3.behavior.zoom = function() {\n var view = {\n x: 0,\n y: 0,\n k: 1\n }, translate0, center0, center, size = [960, 500], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = \"mousedown.zoom\", mousemove = \"mousemove.zoom\", mouseup = \"mouseup.zoom\", mousewheelTimer, touchstart = \"touchstart.zoom\", touchtime, event = d3_eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\"), x0, x1, y0, y1;\n if (!d3_behavior_zoomWheel) {\n d3_behavior_zoomWheel = \"onwheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);\n }, \"wheel\") : \"onmousewheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return d3.event.wheelDelta;\n }, \"mousewheel\") : (d3_behavior_zoomDelta = function() {\n return -d3.event.detail;\n }, \"MozMousePixelScroll\");\n }\n function zoom(g) {\n g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + \".zoom\", mousewheeled).on(\"dblclick.zoom\", dblclicked).on(touchstart, touchstarted);\n }\n zoom.event = function(g) {\n g.each(function() {\n var dispatch = event.of(this, arguments), view1 = view;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.zoom\", function() {\n view = this.__chart__ || {\n x: 0,\n y: 0,\n k: 1\n };\n zoomstarted(dispatch);\n }).tween(\"zoom:zoom\", function() {\n var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([(cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k], [(cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k]);\n return function(t) {\n var l = i(t), k = dx / l[2];\n this.__chart__ = view = {\n x: cx - l[0] * k,\n y: cy - l[1] * k,\n k\n };\n zoomed(dispatch);\n };\n }).each(\"interrupt.zoom\", function() {\n zoomended(dispatch);\n }).each(\"end.zoom\", function() {\n zoomended(dispatch);\n });\n } else {\n this.__chart__ = view;\n zoomstarted(dispatch);\n zoomed(dispatch);\n zoomended(dispatch);\n }\n });\n };\n zoom.translate = function(_) {\n if (!arguments.length) return [view.x, view.y];\n view = {\n x: +_[0],\n y: +_[1],\n k: view.k\n };\n rescale();\n return zoom;\n };\n zoom.scale = function(_) {\n if (!arguments.length) return view.k;\n view = {\n x: view.x,\n y: view.y,\n k: null\n };\n scaleTo(+_);\n rescale();\n return zoom;\n };\n zoom.scaleExtent = function(_) {\n if (!arguments.length) return scaleExtent;\n scaleExtent = _ == null ? d3_behavior_zoomInfinity : [+_[0], +_[1]];\n return zoom;\n };\n zoom.center = function(_) {\n if (!arguments.length) return center;\n center = _ && [+_[0], +_[1]];\n return zoom;\n };\n zoom.size = function(_) {\n if (!arguments.length) return size;\n size = _ && [+_[0], +_[1]];\n return zoom;\n };\n zoom.duration = function(_) {\n if (!arguments.length) return duration;\n duration = +_;\n return zoom;\n };\n zoom.x = function(z) {\n if (!arguments.length) return x1;\n x1 = z;\n x0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n zoom.y = function(z) {\n if (!arguments.length) return y1;\n y1 = z;\n y0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n function location2(p) {\n return [(p[0] - view.x) / view.k, (p[1] - view.y) / view.k];\n }\n function point(l) {\n return [l[0] * view.k + view.x, l[1] * view.k + view.y];\n }\n function scaleTo(s) {\n view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));\n }\n function translateTo(p, l) {\n l = point(l);\n view.x += p[0] - l[0];\n view.y += p[1] - l[1];\n }\n function zoomTo(that, p, l, k) {\n that.__chart__ = {\n x: view.x,\n y: view.y,\n k: view.k\n };\n scaleTo(Math.pow(2, k));\n translateTo(center0 = p, l);\n that = d3.select(that);\n if (duration > 0) that = that.transition().duration(duration);\n that.call(zoom.event);\n }\n function rescale() {\n if (x1) x1.domain(x0.range().map(function(x) {\n return (x - view.x) / view.k;\n }).map(x0.invert));\n if (y1) y1.domain(y0.range().map(function(y) {\n return (y - view.y) / view.k;\n }).map(y0.invert));\n }\n function zoomstarted(dispatch) {\n if (!zooming++) dispatch({\n type: \"zoomstart\"\n });\n }\n function zoomed(dispatch) {\n rescale();\n dispatch({\n type: \"zoom\",\n scale: view.k,\n translate: [view.x, view.y]\n });\n }\n function zoomended(dispatch) {\n if (!--zooming) dispatch({\n type: \"zoomend\"\n }), center0 = null;\n }\n function mousedowned() {\n var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location2(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);\n d3_selection_interrupt.call(that);\n zoomstarted(dispatch);\n function moved() {\n dragged = 1;\n translateTo(d3.mouse(that), location0);\n zoomed(dispatch);\n }\n function ended() {\n subject.on(mousemove, null).on(mouseup, null);\n dragRestore(dragged);\n zoomended(dispatch);\n }\n }\n function touchstarted() {\n var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = \".zoom-\" + d3.event.changedTouches[0].identifier, touchmove = \"touchmove\" + zoomName, touchend = \"touchend\" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);\n started();\n zoomstarted(dispatch);\n subject.on(mousedown, null).on(touchstart, started);\n function relocate() {\n var touches = d3.touches(that);\n scale0 = view.k;\n touches.forEach(function(t) {\n if (t.identifier in locations0) locations0[t.identifier] = location2(t);\n });\n return touches;\n }\n function started() {\n var target = d3.event.target;\n d3.select(target).on(touchmove, moved).on(touchend, ended);\n targets.push(target);\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n locations0[changed[i].identifier] = null;\n }\n var touches = relocate(), now = Date.now();\n if (touches.length === 1) {\n if (now - touchtime < 500) {\n var p = touches[0];\n zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);\n d3_eventPreventDefault();\n }\n touchtime = now;\n } else if (touches.length > 1) {\n var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];\n distance0 = dx * dx + dy * dy;\n }\n }\n function moved() {\n var touches = d3.touches(that), p0, l0, p1, l1;\n d3_selection_interrupt.call(that);\n for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {\n p1 = touches[i];\n if (l1 = locations0[p1.identifier]) {\n if (l0) break;\n p0 = p1, l0 = l1;\n }\n }\n if (l1) {\n var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);\n p0 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l0 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n scaleTo(scale1 * scale0);\n }\n touchtime = null;\n translateTo(p0, l0);\n zoomed(dispatch);\n }\n function ended() {\n if (d3.event.touches.length) {\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n delete locations0[changed[i].identifier];\n }\n for (var identifier in locations0) {\n return void relocate();\n }\n }\n d3.selectAll(targets).on(zoomName, null);\n subject.on(mousedown, mousedowned).on(touchstart, touchstarted);\n dragRestore();\n zoomended(dispatch);\n }\n }\n function mousewheeled() {\n var dispatch = event.of(this, arguments);\n if (mousewheelTimer) clearTimeout(mousewheelTimer);\n else d3_selection_interrupt.call(this), translate0 = location2(center0 = center || d3.mouse(this)), zoomstarted(dispatch);\n mousewheelTimer = setTimeout(function() {\n mousewheelTimer = null;\n zoomended(dispatch);\n }, 50);\n d3_eventPreventDefault();\n scaleTo(Math.pow(2, d3_behavior_zoomDelta() * 2e-3) * view.k);\n translateTo(center0, translate0);\n zoomed(dispatch);\n }\n function dblclicked() {\n var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;\n zoomTo(this, p, location2(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);\n }\n return d3.rebind(zoom, event, \"on\");\n };\n var d3_behavior_zoomInfinity = [0, Infinity], d3_behavior_zoomDelta, d3_behavior_zoomWheel;\n d3.color = d3_color;\n function d3_color() {\n }\n d3_color.prototype.toString = function() {\n return this.rgb() + \"\";\n };\n d3.hsl = d3_hsl;\n function d3_hsl(h, s, l) {\n return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse(\"\" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);\n }\n var d3_hslPrototype = d3_hsl.prototype = new d3_color();\n d3_hslPrototype.brighter = function(k) {\n k = Math.pow(0.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, this.l / k);\n };\n d3_hslPrototype.darker = function(k) {\n k = Math.pow(0.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, k * this.l);\n };\n d3_hslPrototype.rgb = function() {\n return d3_hsl_rgb(this.h, this.s, this.l);\n };\n function d3_hsl_rgb(h, s, l) {\n var m1, m2;\n h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;\n s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n m2 = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n m1 = 2 * l - m2;\n function v(h2) {\n if (h2 > 360) h2 -= 360;\n else if (h2 < 0) h2 += 360;\n if (h2 < 60) return m1 + (m2 - m1) * h2 / 60;\n if (h2 < 180) return m2;\n if (h2 < 240) return m1 + (m2 - m1) * (240 - h2) / 60;\n return m1;\n }\n function vv(h2) {\n return Math.round(v(h2) * 255);\n }\n return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));\n }\n d3.hcl = d3_hcl;\n function d3_hcl(h, c, l) {\n return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);\n }\n var d3_hclPrototype = d3_hcl.prototype = new d3_color();\n d3_hclPrototype.brighter = function(k) {\n return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.darker = function(k) {\n return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.rgb = function() {\n return d3_hcl_lab(this.h, this.c, this.l).rgb();\n };\n function d3_hcl_lab(h, c, l) {\n if (isNaN(h)) h = 0;\n if (isNaN(c)) c = 0;\n return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);\n }\n d3.lab = d3_lab;\n function d3_lab(l, a, b) {\n return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);\n }\n var d3_lab_K = 18;\n var d3_lab_X = 0.95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;\n var d3_labPrototype = d3_lab.prototype = new d3_color();\n d3_labPrototype.brighter = function(k) {\n return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.darker = function(k) {\n return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.rgb = function() {\n return d3_lab_rgb(this.l, this.a, this.b);\n };\n function d3_lab_rgb(l, a, b) {\n var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;\n x = d3_lab_xyz(x) * d3_lab_X;\n y = d3_lab_xyz(y) * d3_lab_Y;\n z = d3_lab_xyz(z) * d3_lab_Z;\n return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z), d3_xyz_rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z), d3_xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z));\n }\n function d3_lab_hcl(l, a, b) {\n return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);\n }\n function d3_lab_xyz(x) {\n return x > 0.206893034 ? x * x * x : (x - 4 / 29) / 7.787037;\n }\n function d3_xyz_lab(x) {\n return x > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;\n }\n function d3_xyz_rgb(r) {\n return Math.round(255 * (r <= 304e-5 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - 0.055));\n }\n d3.rgb = d3_rgb;\n function d3_rgb(r, g, b) {\n return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse(\"\" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);\n }\n function d3_rgbNumber(value) {\n return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);\n }\n function d3_rgbString(value) {\n return d3_rgbNumber(value) + \"\";\n }\n var d3_rgbPrototype = d3_rgb.prototype = new d3_color();\n d3_rgbPrototype.brighter = function(k) {\n k = Math.pow(0.7, arguments.length ? k : 1);\n var r = this.r, g = this.g, b = this.b, i = 30;\n if (!r && !g && !b) return new d3_rgb(i, i, i);\n if (r && r < i) r = i;\n if (g && g < i) g = i;\n if (b && b < i) b = i;\n return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));\n };\n d3_rgbPrototype.darker = function(k) {\n k = Math.pow(0.7, arguments.length ? k : 1);\n return new d3_rgb(k * this.r, k * this.g, k * this.b);\n };\n d3_rgbPrototype.hsl = function() {\n return d3_rgb_hsl(this.r, this.g, this.b);\n };\n d3_rgbPrototype.toString = function() {\n return \"#\" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);\n };\n function d3_rgb_hex(v) {\n return v < 16 ? \"0\" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);\n }\n function d3_rgb_parse(format, rgb2, hsl3) {\n var r = 0, g = 0, b = 0, m1, m2, color2;\n m1 = /([a-z]+)\\((.*)\\)/.exec(format = format.toLowerCase());\n if (m1) {\n m2 = m1[2].split(\",\");\n switch (m1[1]) {\n case \"hsl\": {\n return hsl3(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);\n }\n case \"rgb\": {\n return rgb2(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));\n }\n }\n }\n if (color2 = d3_rgb_names.get(format)) {\n return rgb2(color2.r, color2.g, color2.b);\n }\n if (format != null && format.charAt(0) === \"#\" && !isNaN(color2 = parseInt(format.slice(1), 16))) {\n if (format.length === 4) {\n r = (color2 & 3840) >> 4;\n r = r >> 4 | r;\n g = color2 & 240;\n g = g >> 4 | g;\n b = color2 & 15;\n b = b << 4 | b;\n } else if (format.length === 7) {\n r = (color2 & 16711680) >> 16;\n g = (color2 & 65280) >> 8;\n b = color2 & 255;\n }\n }\n return rgb2(r, g, b);\n }\n function d3_rgb_hsl(r, g, b) {\n var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;\n if (d) {\n s = l < 0.5 ? d / (max + min) : d / (2 - max - min);\n if (r == max) h = (g - b) / d + (g < b ? 6 : 0);\n else if (g == max) h = (b - r) / d + 2;\n else h = (r - g) / d + 4;\n h *= 60;\n } else {\n h = NaN;\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new d3_hsl(h, s, l);\n }\n function d3_rgb_lab(r, g, b) {\n r = d3_rgb_xyz(r);\n g = d3_rgb_xyz(g);\n b = d3_rgb_xyz(b);\n var x = d3_xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / d3_lab_X), y = d3_xyz_lab((0.2126729 * r + 0.7151522 * g + 0.072175 * b) / d3_lab_Y), z = d3_xyz_lab((0.0193339 * r + 0.119192 * g + 0.9503041 * b) / d3_lab_Z);\n return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));\n }\n function d3_rgb_xyz(r) {\n return (r /= 255) <= 0.04045 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4);\n }\n function d3_rgb_parseNumber(c) {\n var f = parseFloat(c);\n return c.charAt(c.length - 1) === \"%\" ? Math.round(f * 2.55) : f;\n }\n var d3_rgb_names = d3.map({\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n });\n d3_rgb_names.forEach(function(key, value) {\n d3_rgb_names.set(key, d3_rgbNumber(value));\n });\n function d3_functor(v) {\n return typeof v === \"function\" ? v : function() {\n return v;\n };\n }\n d3.functor = d3_functor;\n d3.xhr = d3_xhrType(d3_identity);\n function d3_xhrType(response) {\n return function(url, mimeType, callback) {\n if (arguments.length === 2 && typeof mimeType === \"function\") callback = mimeType, mimeType = null;\n return d3_xhr(url, mimeType, response, callback);\n };\n }\n function d3_xhr(url, mimeType, response, callback) {\n var xhr = {}, dispatch = d3.dispatch(\"beforesend\", \"progress\", \"load\", \"error\"), headers = {}, request = new XMLHttpRequest(), responseType = null;\n if (self.XDomainRequest && !(\"withCredentials\" in request) && /^(http(s)?:)?\\/\\//.test(url)) request = new XDomainRequest();\n \"onload\" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {\n request.readyState > 3 && respond();\n };\n function respond() {\n var status = request.status, result;\n if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {\n try {\n result = response.call(xhr, request);\n } catch (e) {\n dispatch.error.call(xhr, e);\n return;\n }\n dispatch.load.call(xhr, result);\n } else {\n dispatch.error.call(xhr, request);\n }\n }\n request.onprogress = function(event) {\n var o = d3.event;\n d3.event = event;\n try {\n dispatch.progress.call(xhr, request);\n } finally {\n d3.event = o;\n }\n };\n xhr.header = function(name2, value) {\n name2 = (name2 + \"\").toLowerCase();\n if (arguments.length < 2) return headers[name2];\n if (value == null) delete headers[name2];\n else headers[name2] = value + \"\";\n return xhr;\n };\n xhr.mimeType = function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return xhr;\n };\n xhr.responseType = function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return xhr;\n };\n xhr.response = function(value) {\n response = value;\n return xhr;\n };\n [\"get\", \"post\"].forEach(function(method) {\n xhr[method] = function() {\n return xhr.send.apply(xhr, [method].concat(d3_array(arguments)));\n };\n });\n xhr.send = function(method, data, callback2) {\n if (arguments.length === 2 && typeof data === \"function\") callback2 = data, data = null;\n request.open(method, url, true);\n if (mimeType != null && !(\"accept\" in headers)) headers[\"accept\"] = mimeType + \",*/*\";\n if (request.setRequestHeader) for (var name2 in headers) request.setRequestHeader(name2, headers[name2]);\n if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);\n if (responseType != null) request.responseType = responseType;\n if (callback2 != null) xhr.on(\"error\", callback2).on(\"load\", function(request2) {\n callback2(null, request2);\n });\n dispatch.beforesend.call(xhr, request);\n request.send(data == null ? null : data);\n return xhr;\n };\n xhr.abort = function() {\n request.abort();\n return xhr;\n };\n d3.rebind(xhr, dispatch, \"on\");\n return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));\n }\n function d3_xhr_fixCallback(callback) {\n return callback.length === 1 ? function(error, request) {\n callback(error == null ? request : null);\n } : callback;\n }\n function d3_xhrHasResponse(request) {\n var type = request.responseType;\n return type && type !== \"text\" ? request.response : request.responseText;\n }\n d3.dsv = function(delimiter, mimeType) {\n var reFormat = new RegExp('[\"' + delimiter + \"\\n]\"), delimiterCode = delimiter.charCodeAt(0);\n function dsv(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);\n xhr.row = function(_) {\n return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;\n };\n return xhr;\n }\n function response(request) {\n return dsv.parse(request.responseText);\n }\n function typedResponse(f) {\n return function(request) {\n return dsv.parse(request.responseText, f);\n };\n }\n dsv.parse = function(text, f) {\n var o;\n return dsv.parseRows(text, function(row, i) {\n if (o) return o(row, i - 1);\n var a = function(d) {\n var obj = {};\n var len = row.length;\n for (var k = 0; k < len; ++k) {\n obj[row[k]] = d[k];\n }\n return obj;\n };\n o = f ? function(row2, i2) {\n return f(a(row2), i2);\n } : a;\n });\n };\n dsv.parseRows = function(text, f) {\n var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;\n function token() {\n if (I >= N) return EOF;\n if (eol) return eol = false, EOL;\n var j = I;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n var c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.slice(j + 1, i).replace(/\"\"/g, '\"');\n }\n while (I < N) {\n var c = text.charCodeAt(I++), k = 1;\n if (c === 10) eol = true;\n else if (c === 13) {\n eol = true;\n if (text.charCodeAt(I) === 10) ++I, ++k;\n } else if (c !== delimiterCode) continue;\n return text.slice(j, I - k);\n }\n return text.slice(j);\n }\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && (a = f(a, n++)) == null) continue;\n rows.push(a);\n }\n return rows;\n };\n dsv.format = function(rows) {\n if (Array.isArray(rows[0])) return dsv.formatRows(rows);\n var fieldSet = new d3_Set(), fields = [];\n rows.forEach(function(row) {\n for (var field in row) {\n if (!fieldSet.has(field)) {\n fields.push(fieldSet.add(field));\n }\n }\n });\n return [fields.map(formatValue).join(delimiter)].concat(rows.map(function(row) {\n return fields.map(function(field) {\n return formatValue(row[field]);\n }).join(delimiter);\n })).join(\"\\n\");\n };\n dsv.formatRows = function(rows) {\n return rows.map(formatRow).join(\"\\n\");\n };\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n function formatValue(text) {\n return reFormat.test(text) ? '\"' + text.replace(/\\\"/g, '\"\"') + '\"' : text;\n }\n return dsv;\n };\n d3.csv = d3.dsv(\",\", \"text/csv\");\n d3.tsv = d3.dsv(\"\t\", \"text/tab-separated-values\");\n var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, \"requestAnimationFrame\")] || function(callback) {\n setTimeout(callback, 17);\n };\n d3.timer = function() {\n d3_timer.apply(this, arguments);\n };\n function d3_timer(callback, delay, then) {\n var n = arguments.length;\n if (n < 2) delay = 0;\n if (n < 3) then = Date.now();\n var time = then + delay, timer = {\n c: callback,\n t: time,\n n: null\n };\n if (d3_timer_queueTail) d3_timer_queueTail.n = timer;\n else d3_timer_queueHead = timer;\n d3_timer_queueTail = timer;\n if (!d3_timer_interval) {\n d3_timer_timeout = clearTimeout(d3_timer_timeout);\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n return timer;\n }\n function d3_timer_step() {\n var now = d3_timer_mark(), delay = d3_timer_sweep() - now;\n if (delay > 24) {\n if (isFinite(delay)) {\n clearTimeout(d3_timer_timeout);\n d3_timer_timeout = setTimeout(d3_timer_step, delay);\n }\n d3_timer_interval = 0;\n } else {\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n }\n d3.timer.flush = function() {\n d3_timer_mark();\n d3_timer_sweep();\n };\n function d3_timer_mark() {\n var now = Date.now(), timer = d3_timer_queueHead;\n while (timer) {\n if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;\n timer = timer.n;\n }\n return now;\n }\n function d3_timer_sweep() {\n var t02, t12 = d3_timer_queueHead, time = Infinity;\n while (t12) {\n if (t12.c) {\n if (t12.t < time) time = t12.t;\n t12 = (t02 = t12).n;\n } else {\n t12 = t02 ? t02.n = t12.n : d3_timer_queueHead = t12.n;\n }\n }\n d3_timer_queueTail = t02;\n return time;\n }\n d3.round = function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n };\n d3.geom = {};\n function d3_geom_pointX(d) {\n return d[0];\n }\n function d3_geom_pointY(d) {\n return d[1];\n }\n d3.geom.hull = function(vertices) {\n var x = d3_geom_pointX, y = d3_geom_pointY;\n if (arguments.length) return hull(vertices);\n function hull(data) {\n if (data.length < 3) return [];\n var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];\n for (i = 0; i < n; i++) {\n points.push([+fx.call(this, data[i], i), +fy.call(this, data[i], i), i]);\n }\n points.sort(d3_geom_hullOrder);\n for (i = 0; i < n; i++) flippedPoints.push([points[i][0], -points[i][1]]);\n var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);\n var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];\n for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);\n for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);\n return polygon;\n }\n hull.x = function(_) {\n return arguments.length ? (x = _, hull) : x;\n };\n hull.y = function(_) {\n return arguments.length ? (y = _, hull) : y;\n };\n return hull;\n };\n function d3_geom_hullUpper(points) {\n var n = points.length, hull = [0, 1], hs = 2;\n for (var i = 2; i < n; i++) {\n while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;\n hull[hs++] = i;\n }\n return hull.slice(0, hs);\n }\n function d3_geom_hullOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n d3.geom.polygon = function(coordinates) {\n d3_subclass(coordinates, d3_geom_polygonPrototype);\n return coordinates;\n };\n var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];\n d3_geom_polygonPrototype.area = function() {\n var i = -1, n = this.length, a, b = this[n - 1], area = 0;\n while (++i < n) {\n a = b;\n b = this[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n return area * 0.5;\n };\n d3_geom_polygonPrototype.centroid = function(k) {\n var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;\n if (!arguments.length) k = -1 / (6 * this.area());\n while (++i < n) {\n a = b;\n b = this[i];\n c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n return [x * k, y * k];\n };\n d3_geom_polygonPrototype.clip = function(subject) {\n var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;\n while (++i < n) {\n input = subject.slice();\n subject.length = 0;\n b = this[i];\n c = input[(m = input.length - closed) - 1];\n j = -1;\n while (++j < m) {\n d = input[j];\n if (d3_geom_polygonInside(d, a, b)) {\n if (!d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n subject.push(d);\n } else if (d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n c = d;\n }\n if (closed) subject.push(subject[0]);\n a = b;\n }\n return subject;\n };\n function d3_geom_polygonInside(p, a, b) {\n return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);\n }\n function d3_geom_polygonIntersect(c, d, a, b) {\n var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);\n return [x1 + ua * x21, y1 + ua * y21];\n }\n function d3_geom_polygonClosed(coordinates) {\n var a = coordinates[0], b = coordinates[coordinates.length - 1];\n return !(a[0] - b[0] || a[1] - b[1]);\n }\n var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];\n function d3_geom_voronoiBeach() {\n d3_geom_voronoiRedBlackNode(this);\n this.edge = this.site = this.circle = null;\n }\n function d3_geom_voronoiCreateBeach(site) {\n var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();\n beach.site = site;\n return beach;\n }\n function d3_geom_voronoiDetachBeach(beach) {\n d3_geom_voronoiDetachCircle(beach);\n d3_geom_voronoiBeaches.remove(beach);\n d3_geom_voronoiBeachPool.push(beach);\n d3_geom_voronoiRedBlackNode(beach);\n }\n function d3_geom_voronoiRemoveBeach(beach) {\n var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {\n x,\n y\n }, previous = beach.P, next = beach.N, disappearing = [beach];\n d3_geom_voronoiDetachBeach(beach);\n var lArc = previous;\n while (lArc.circle && abs(x - lArc.circle.x) < \\u03B5 && abs(y - lArc.circle.cy) < \\u03B5) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachBeach(lArc);\n lArc = previous;\n }\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachCircle(lArc);\n var rArc = next;\n while (rArc.circle && abs(x - rArc.circle.x) < \\u03B5 && abs(y - rArc.circle.cy) < \\u03B5) {\n next = rArc.N;\n disappearing.push(rArc);\n d3_geom_voronoiDetachBeach(rArc);\n rArc = next;\n }\n disappearing.push(rArc);\n d3_geom_voronoiDetachCircle(rArc);\n var nArcs = disappearing.length, iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiAddBeach(site) {\n var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;\n while (node) {\n dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;\n if (dxl > \\u03B5) node = node.L;\n else {\n dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);\n if (dxr > \\u03B5) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -\\u03B5) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -\\u03B5) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n var newArc = d3_geom_voronoiCreateBeach(site);\n d3_geom_voronoiBeaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n if (lArc === rArc) {\n d3_geom_voronoiDetachCircle(lArc);\n rArc = d3_geom_voronoiCreateBeach(lArc.site);\n d3_geom_voronoiBeaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n return;\n }\n if (!rArc) {\n newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n return;\n }\n d3_geom_voronoiDetachCircle(lArc);\n d3_geom_voronoiDetachCircle(rArc);\n var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {\n x: (cy * hb - by * hc) / d + ax,\n y: (bx * hc - cx * hb) / d + ay\n };\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);\n rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiLeftBreakPoint(arc, directrix) {\n var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n }\n function d3_geom_voronoiRightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site.y === directrix ? site.x : Infinity;\n }\n function d3_geom_voronoiCell(site) {\n this.site = site;\n this.edges = [];\n }\n d3_geom_voronoiCell.prototype.prepare = function() {\n var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;\n while (iHalfEdge--) {\n edge = halfEdges[iHalfEdge].edge;\n if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);\n }\n halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);\n return halfEdges.length;\n };\n function d3_geom_voronoiCloseCells(extent) {\n var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;\n while (iCell--) {\n cell = cells[iCell];\n if (!cell || !cell.prepare()) continue;\n halfEdges = cell.edges;\n nHalfEdges = halfEdges.length;\n iHalfEdge = 0;\n while (iHalfEdge < nHalfEdges) {\n end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;\n start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;\n if (abs(x3 - x2) > \\u03B5 || abs(y3 - y2) > \\u03B5) {\n halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < \\u03B5 && y1 - y3 > \\u03B5 ? {\n x: x0,\n y: abs(x2 - x0) < \\u03B5 ? y2 : y1\n } : abs(y3 - y1) < \\u03B5 && x1 - x3 > \\u03B5 ? {\n x: abs(y2 - y1) < \\u03B5 ? x2 : x1,\n y: y1\n } : abs(x3 - x1) < \\u03B5 && y3 - y0 > \\u03B5 ? {\n x: x1,\n y: abs(x2 - x1) < \\u03B5 ? y2 : y0\n } : abs(y3 - y0) < \\u03B5 && x3 - x0 > \\u03B5 ? {\n x: abs(y2 - y0) < \\u03B5 ? x2 : x0,\n y: y0\n } : null), cell.site, null));\n ++nHalfEdges;\n }\n }\n }\n }\n function d3_geom_voronoiHalfEdgeOrder(a, b) {\n return b.angle - a.angle;\n }\n function d3_geom_voronoiCircle() {\n d3_geom_voronoiRedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n }\n function d3_geom_voronoiAttachCircle(arc) {\n var lArc = arc.P, rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -\\u03B52) return;\n var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;\n var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = cy + Math.sqrt(x * x + y * y);\n circle.cy = cy;\n arc.circle = circle;\n var before = null, node = d3_geom_voronoiCircles._;\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L;\n else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R;\n else {\n before = node;\n break;\n }\n }\n }\n d3_geom_voronoiCircles.insert(before, circle);\n if (!before) d3_geom_voronoiFirstCircle = circle;\n }\n function d3_geom_voronoiDetachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;\n d3_geom_voronoiCircles.remove(circle);\n d3_geom_voronoiCirclePool.push(circle);\n d3_geom_voronoiRedBlackNode(circle);\n arc.circle = null;\n }\n }\n function d3_geom_clipLine(x0, y0, x1, y1) {\n return function(line) {\n var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t02 = 0, t12 = 1, dx = bx - ax, dy = by - ay, r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n } else if (dx > 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n }\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n } else if (dx > 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n }\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n } else if (dy > 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n }\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n } else if (dy > 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n }\n if (t02 > 0) line.a = {\n x: ax + t02 * dx,\n y: ay + t02 * dy\n };\n if (t12 < 1) line.b = {\n x: ax + t12 * dx,\n y: ay + t12 * dy\n };\n return line;\n };\n }\n function d3_geom_voronoiClipEdges(extent) {\n var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;\n while (i--) {\n e = edges[i];\n if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < \\u03B5 && abs(e.a.y - e.b.y) < \\u03B5) {\n e.a = e.b = null;\n edges.splice(i, 1);\n }\n }\n }\n function d3_geom_voronoiConnectEdge(edge, extent) {\n var vb = edge.b;\n if (vb) return true;\n var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!va) va = {\n x: fx,\n y: y0\n };\n else if (va.y >= y1) return;\n vb = {\n x: fx,\n y: y1\n };\n } else {\n if (!va) va = {\n x: fx,\n y: y1\n };\n else if (va.y < y0) return;\n vb = {\n x: fx,\n y: y0\n };\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!va) va = {\n x: (y0 - fb) / fm,\n y: y0\n };\n else if (va.y >= y1) return;\n vb = {\n x: (y1 - fb) / fm,\n y: y1\n };\n } else {\n if (!va) va = {\n x: (y1 - fb) / fm,\n y: y1\n };\n else if (va.y < y0) return;\n vb = {\n x: (y0 - fb) / fm,\n y: y0\n };\n }\n } else {\n if (ly < ry) {\n if (!va) va = {\n x: x0,\n y: fm * x0 + fb\n };\n else if (va.x >= x1) return;\n vb = {\n x: x1,\n y: fm * x1 + fb\n };\n } else {\n if (!va) va = {\n x: x1,\n y: fm * x1 + fb\n };\n else if (va.x < x0) return;\n vb = {\n x: x0,\n y: fm * x0 + fb\n };\n }\n }\n }\n edge.a = va;\n edge.b = vb;\n return true;\n }\n function d3_geom_voronoiEdge(lSite, rSite) {\n this.l = lSite;\n this.r = rSite;\n this.a = this.b = null;\n }\n function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, rSite);\n d3_geom_voronoiEdges.push(edge);\n if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);\n if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);\n d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));\n d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));\n return edge;\n }\n function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, null);\n edge.a = va;\n edge.b = vb;\n d3_geom_voronoiEdges.push(edge);\n return edge;\n }\n function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {\n if (!edge.a && !edge.b) {\n edge.a = vertex;\n edge.l = lSite;\n edge.r = rSite;\n } else if (edge.l === rSite) {\n edge.b = vertex;\n } else {\n edge.a = vertex;\n }\n }\n function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {\n var va = edge.a, vb = edge.b;\n this.edge = edge;\n this.site = lSite;\n this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);\n }\n d3_geom_voronoiHalfEdge.prototype = {\n start: function() {\n return this.edge.l === this.site ? this.edge.a : this.edge.b;\n },\n end: function() {\n return this.edge.l === this.site ? this.edge.b : this.edge.a;\n }\n };\n function d3_geom_voronoiRedBlackTree() {\n this._ = null;\n }\n function d3_geom_voronoiRedBlackNode(node) {\n node.U = node.C = node.L = node.R = node.P = node.N = null;\n }\n d3_geom_voronoiRedBlackTree.prototype = {\n insert: function(after, node) {\n var parent, grandpa, uncle;\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = d3_geom_voronoiRedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U, sibling, left = node.L, right = node.R, next, red;\n if (!left) next = right;\n else if (!right) next = left;\n else next = d3_geom_voronoiRedBlackFirst(right);\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) {\n node.C = false;\n return;\n }\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n if (node) node.C = false;\n }\n };\n function d3_geom_voronoiRedBlackRotateLeft(tree, node) {\n var p = node, q = node.R, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n }\n function d3_geom_voronoiRedBlackRotateRight(tree, node) {\n var p = node, q = node.L, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n }\n function d3_geom_voronoiRedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n }\n function d3_geom_voronoi(sites, bbox) {\n var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;\n d3_geom_voronoiEdges = [];\n d3_geom_voronoiCells = new Array(sites.length);\n d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();\n d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();\n while (true) {\n circle = d3_geom_voronoiFirstCircle;\n if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {\n if (site.x !== x0 || site.y !== y0) {\n d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);\n d3_geom_voronoiAddBeach(site);\n x0 = site.x, y0 = site.y;\n }\n site = sites.pop();\n } else if (circle) {\n d3_geom_voronoiRemoveBeach(circle.arc);\n } else {\n break;\n }\n }\n if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);\n var diagram = {\n cells: d3_geom_voronoiCells,\n edges: d3_geom_voronoiEdges\n };\n d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;\n return diagram;\n }\n function d3_geom_voronoiVertexOrder(a, b) {\n return b.y - a.y || b.x - a.x;\n }\n d3.geom.voronoi = function(points) {\n var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;\n if (points) return voronoi(points);\n function voronoi(data) {\n var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];\n d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {\n var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {\n var s = e.start();\n return [s.x, s.y];\n }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [[x0, y1], [x1, y1], [x1, y0], [x0, y0]] : [];\n polygon.point = data[i];\n });\n return polygons;\n }\n function sites(data) {\n return data.map(function(d, i) {\n return {\n x: Math.round(fx(d, i) / \\u03B5) * \\u03B5,\n y: Math.round(fy(d, i) / \\u03B5) * \\u03B5,\n i\n };\n });\n }\n voronoi.links = function(data) {\n return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {\n return edge.l && edge.r;\n }).map(function(edge) {\n return {\n source: data[edge.l.i],\n target: data[edge.r.i]\n };\n });\n };\n voronoi.triangles = function(data) {\n var triangles = [];\n d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {\n var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;\n while (++j < m) {\n e0 = e1;\n s0 = s1;\n e1 = edges[j].edge;\n s1 = e1.l === site ? e1.r : e1.l;\n if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {\n triangles.push([data[i], data[s0.i], data[s1.i]]);\n }\n }\n });\n return triangles;\n };\n voronoi.x = function(_) {\n return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;\n };\n voronoi.y = function(_) {\n return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;\n };\n voronoi.clipExtent = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;\n clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;\n return voronoi;\n };\n voronoi.size = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];\n return voronoi.clipExtent(_ && [[0, 0], _]);\n };\n return voronoi;\n };\n var d3_geom_voronoiClipExtent = [[-1e6, -1e6], [1e6, 1e6]];\n function d3_geom_voronoiTriangleArea(a, b, c) {\n return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);\n }\n d3.geom.delaunay = function(vertices) {\n return d3.geom.voronoi().triangles(vertices);\n };\n d3.geom.quadtree = function(points, x1, y1, x2, y2) {\n var x = d3_geom_pointX, y = d3_geom_pointY, compat;\n if (compat = arguments.length) {\n x = d3_geom_quadtreeCompatX;\n y = d3_geom_quadtreeCompatY;\n if (compat === 3) {\n y2 = y1;\n x2 = x1;\n y1 = x1 = 0;\n }\n return quadtree(points);\n }\n function quadtree(data) {\n var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;\n if (x1 != null) {\n x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;\n } else {\n x2_ = y2_ = -(x1_ = y1_ = Infinity);\n xs = [], ys = [];\n n = data.length;\n if (compat) for (i = 0; i < n; ++i) {\n d = data[i];\n if (d.x < x1_) x1_ = d.x;\n if (d.y < y1_) y1_ = d.y;\n if (d.x > x2_) x2_ = d.x;\n if (d.y > y2_) y2_ = d.y;\n xs.push(d.x);\n ys.push(d.y);\n }\n else for (i = 0; i < n; ++i) {\n var x_ = +fx(d = data[i], i), y_ = +fy(d, i);\n if (x_ < x1_) x1_ = x_;\n if (y_ < y1_) y1_ = y_;\n if (x_ > x2_) x2_ = x_;\n if (y_ > y2_) y2_ = y_;\n xs.push(x_);\n ys.push(y_);\n }\n }\n var dx = x2_ - x1_, dy = y2_ - y1_;\n if (dx > dy) y2_ = y1_ + dx;\n else x2_ = x1_ + dy;\n function insert(n2, d2, x3, y3, x12, y12, x22, y22) {\n if (isNaN(x3) || isNaN(y3)) return;\n if (n2.leaf) {\n var nx = n2.x, ny = n2.y;\n if (nx != null) {\n if (abs(nx - x3) + abs(ny - y3) < 0.01) {\n insertChild(n2, d2, x3, y3, x12, y12, x22, y22);\n } else {\n var nPoint = n2.point;\n n2.x = n2.y = n2.point = null;\n insertChild(n2, nPoint, nx, ny, x12, y12, x22, y22);\n insertChild(n2, d2, x3, y3, x12, y12, x22, y22);\n }\n } else {\n n2.x = x3, n2.y = y3, n2.point = d2;\n }\n } else {\n insertChild(n2, d2, x3, y3, x12, y12, x22, y22);\n }\n }\n function insertChild(n2, d2, x3, y3, x12, y12, x22, y22) {\n var xm = (x12 + x22) * 0.5, ym = (y12 + y22) * 0.5, right = x3 >= xm, below = y3 >= ym, i2 = below << 1 | right;\n n2.leaf = false;\n n2 = n2.nodes[i2] || (n2.nodes[i2] = d3_geom_quadtreeNode());\n if (right) x12 = xm;\n else x22 = xm;\n if (below) y12 = ym;\n else y22 = ym;\n insert(n2, d2, x3, y3, x12, y12, x22, y22);\n }\n var root = d3_geom_quadtreeNode();\n root.add = function(d2) {\n insert(root, d2, +fx(d2, ++i), +fy(d2, i), x1_, y1_, x2_, y2_);\n };\n root.visit = function(f) {\n d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);\n };\n root.find = function(point) {\n return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);\n };\n i = -1;\n if (x1 == null) {\n while (++i < n) {\n insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);\n }\n --i;\n } else data.forEach(root.add);\n xs = ys = data = d = null;\n return root;\n }\n quadtree.x = function(_) {\n return arguments.length ? (x = _, quadtree) : x;\n };\n quadtree.y = function(_) {\n return arguments.length ? (y = _, quadtree) : y;\n };\n quadtree.extent = function(_) {\n if (!arguments.length) return x1 == null ? null : [[x1, y1], [x2, y2]];\n if (_ == null) x1 = y1 = x2 = y2 = null;\n else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], y2 = +_[1][1];\n return quadtree;\n };\n quadtree.size = function(_) {\n if (!arguments.length) return x1 == null ? null : [x2 - x1, y2 - y1];\n if (_ == null) x1 = y1 = x2 = y2 = null;\n else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];\n return quadtree;\n };\n return quadtree;\n };\n function d3_geom_quadtreeCompatX(d) {\n return d.x;\n }\n function d3_geom_quadtreeCompatY(d) {\n return d.y;\n }\n function d3_geom_quadtreeNode() {\n return {\n leaf: true,\n nodes: [],\n point: null,\n x: null,\n y: null\n };\n }\n function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {\n if (!f(node, x1, y1, x2, y2)) {\n var sx = (x1 + x2) * 0.5, sy = (y1 + y2) * 0.5, children = node.nodes;\n if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);\n if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);\n if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);\n if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);\n }\n }\n function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {\n var minDistance2 = Infinity, closestPoint;\n (function find(node, x1, y1, x2, y2) {\n if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;\n if (point = node.point) {\n var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;\n if (distance2 < minDistance2) {\n var distance = Math.sqrt(minDistance2 = distance2);\n x0 = x - distance, y0 = y - distance;\n x3 = x + distance, y3 = y + distance;\n closestPoint = point;\n }\n }\n var children = node.nodes, xm = (x1 + x2) * 0.5, ym = (y1 + y2) * 0.5, right = x >= xm, below = y >= ym;\n for (var i = below << 1 | right, j = i + 4; i < j; ++i) {\n if (node = children[i & 3]) switch (i & 3) {\n case 0:\n find(node, x1, y1, xm, ym);\n break;\n case 1:\n find(node, xm, y1, x2, ym);\n break;\n case 2:\n find(node, x1, ym, xm, y2);\n break;\n case 3:\n find(node, xm, ym, x2, y2);\n break;\n }\n }\n })(root, x0, y0, x3, y3);\n return closestPoint;\n }\n d3.interpolateRgb = d3_interpolateRgb;\n function d3_interpolateRgb(a, b) {\n a = d3.rgb(a);\n b = d3.rgb(b);\n var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;\n return function(t) {\n return \"#\" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));\n };\n }\n d3.interpolateObject = d3_interpolateObject;\n function d3_interpolateObject(a, b) {\n var i = {}, c = {}, k;\n for (k in a) {\n if (k in b) {\n i[k] = d3_interpolate(a[k], b[k]);\n } else {\n c[k] = a[k];\n }\n }\n for (k in b) {\n if (!(k in a)) {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n d3.interpolateNumber = d3_interpolateNumber;\n function d3_interpolateNumber(a, b) {\n a = +a, b = +b;\n return function(t) {\n return a * (1 - t) + b * t;\n };\n }\n d3.interpolateString = d3_interpolateString;\n function d3_interpolateString(a, b) {\n var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs;\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm;\n else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({\n i,\n x: d3_interpolateNumber(am, bm)\n });\n }\n bi = d3_interpolate_numberB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs;\n else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {\n return b(t) + \"\";\n }) : function() {\n return b;\n } : (b = q.length, function(t) {\n for (var i2 = 0, o; i2 < b; ++i2) s[(o = q[i2]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var d3_interpolate_numberA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, \"g\");\n d3.interpolate = d3_interpolate;\n function d3_interpolate(a, b) {\n var i = d3.interpolators.length, f;\n while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;\n return f;\n }\n d3.interpolators = [function(a, b) {\n var t = typeof b;\n return (t === \"string\" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\\(|hsl\\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === \"object\" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);\n }];\n d3.interpolateArray = d3_interpolateArray;\n function d3_interpolateArray(a, b) {\n var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;\n for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));\n for (; i < na; ++i) c[i] = a[i];\n for (; i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < n0; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var d3_ease_default = function() {\n return d3_identity;\n };\n var d3_ease = d3.map({\n linear: d3_ease_default,\n poly: d3_ease_poly,\n quad: function() {\n return d3_ease_quad;\n },\n cubic: function() {\n return d3_ease_cubic;\n },\n sin: function() {\n return d3_ease_sin;\n },\n exp: function() {\n return d3_ease_exp;\n },\n circle: function() {\n return d3_ease_circle;\n },\n elastic: d3_ease_elastic,\n back: d3_ease_back,\n bounce: function() {\n return d3_ease_bounce;\n }\n });\n var d3_ease_mode = d3.map({\n \"in\": d3_identity,\n out: d3_ease_reverse,\n \"in-out\": d3_ease_reflect,\n \"out-in\": function(f) {\n return d3_ease_reflect(d3_ease_reverse(f));\n }\n });\n d3.ease = function(name2) {\n var i = name2.indexOf(\"-\"), t = i >= 0 ? name2.slice(0, i) : name2, m = i >= 0 ? name2.slice(i + 1) : \"in\";\n t = d3_ease.get(t) || d3_ease_default;\n m = d3_ease_mode.get(m) || d3_identity;\n return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));\n };\n function d3_ease_clamp(f) {\n return function(t) {\n return t <= 0 ? 0 : t >= 1 ? 1 : f(t);\n };\n }\n function d3_ease_reverse(f) {\n return function(t) {\n return 1 - f(1 - t);\n };\n }\n function d3_ease_reflect(f) {\n return function(t) {\n return 0.5 * (t < 0.5 ? f(2 * t) : 2 - f(2 - 2 * t));\n };\n }\n function d3_ease_quad(t) {\n return t * t;\n }\n function d3_ease_cubic(t) {\n return t * t * t;\n }\n function d3_ease_cubicInOut(t) {\n if (t <= 0) return 0;\n if (t >= 1) return 1;\n var t22 = t * t, t32 = t22 * t;\n return 4 * (t < 0.5 ? t32 : 3 * (t - t22) + t32 - 0.75);\n }\n function d3_ease_poly(e) {\n return function(t) {\n return Math.pow(t, e);\n };\n }\n function d3_ease_sin(t) {\n return 1 - Math.cos(t * half\\u03C0);\n }\n function d3_ease_exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n function d3_ease_circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n function d3_ease_elastic(a, p) {\n var s;\n if (arguments.length < 2) p = 0.45;\n if (arguments.length) s = p / \\u03C4 * Math.asin(1 / a);\n else a = 1, s = p / 4;\n return function(t) {\n return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * \\u03C4 / p);\n };\n }\n function d3_ease_back(s) {\n if (!s) s = 1.70158;\n return function(t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n function d3_ease_bounce(t) {\n return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375 : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375;\n }\n d3.interpolateHcl = d3_interpolateHcl;\n function d3_interpolateHcl(a, b) {\n a = d3.hcl(a);\n b = d3.hcl(b);\n var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;\n if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah;\n else if (bh > 180) bh -= 360;\n else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateHsl = d3_interpolateHsl;\n function d3_interpolateHsl(a, b) {\n a = d3.hsl(a);\n b = d3.hsl(b);\n var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;\n if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah;\n else if (bh > 180) bh -= 360;\n else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateLab = d3_interpolateLab;\n function d3_interpolateLab(a, b) {\n a = d3.lab(a);\n b = d3.lab(b);\n var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;\n return function(t) {\n return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + \"\";\n };\n }\n d3.interpolateRound = d3_interpolateRound;\n function d3_interpolateRound(a, b) {\n b -= a;\n return function(t) {\n return Math.round(a + b * t);\n };\n }\n d3.transform = function(string) {\n var g = d3_document.createElementNS(d3.ns.prefix.svg, \"g\");\n return (d3.transform = function(string2) {\n if (string2 != null) {\n g.setAttribute(\"transform\", string2);\n var t = g.transform.baseVal.consolidate();\n }\n return new d3_transform(t ? t.matrix : d3_transformIdentity);\n })(string);\n };\n function d3_transform(m) {\n var r0 = [m.a, m.b], r1 = [m.c, m.d], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;\n if (r0[0] * r1[1] < r1[0] * r0[1]) {\n r0[0] *= -1;\n r0[1] *= -1;\n kx *= -1;\n kz *= -1;\n }\n this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;\n this.translate = [m.e, m.f];\n this.scale = [kx, ky];\n this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;\n }\n d3_transform.prototype.toString = function() {\n return \"translate(\" + this.translate + \")rotate(\" + this.rotate + \")skewX(\" + this.skew + \")scale(\" + this.scale + \")\";\n };\n function d3_transformDot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n }\n function d3_transformNormalize(a) {\n var k = Math.sqrt(d3_transformDot(a, a));\n if (k) {\n a[0] /= k;\n a[1] /= k;\n }\n return k;\n }\n function d3_transformCombine(a, b, k) {\n a[0] += k * b[0];\n a[1] += k * b[1];\n return a;\n }\n var d3_transformIdentity = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n };\n d3.interpolateTransform = d3_interpolateTransform;\n function d3_interpolateTransformPop(s) {\n return s.length ? s.pop() + \",\" : \"\";\n }\n function d3_interpolateTranslate(ta, tb, s, q) {\n if (ta[0] !== tb[0] || ta[1] !== tb[1]) {\n var i = s.push(\"translate(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ta[0], tb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ta[1], tb[1])\n });\n } else if (tb[0] || tb[1]) {\n s.push(\"translate(\" + tb + \")\");\n }\n }\n function d3_interpolateRotate(ra, rb, s, q) {\n if (ra !== rb) {\n if (ra - rb > 180) rb += 360;\n else if (rb - ra > 180) ra += 360;\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"rotate(\", null, \")\") - 2,\n x: d3_interpolateNumber(ra, rb)\n });\n } else if (rb) {\n s.push(d3_interpolateTransformPop(s) + \"rotate(\" + rb + \")\");\n }\n }\n function d3_interpolateSkew(wa, wb, s, q) {\n if (wa !== wb) {\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"skewX(\", null, \")\") - 2,\n x: d3_interpolateNumber(wa, wb)\n });\n } else if (wb) {\n s.push(d3_interpolateTransformPop(s) + \"skewX(\" + wb + \")\");\n }\n }\n function d3_interpolateScale(ka, kb, s, q) {\n if (ka[0] !== kb[0] || ka[1] !== kb[1]) {\n var i = s.push(d3_interpolateTransformPop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ka[0], kb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ka[1], kb[1])\n });\n } else if (kb[0] !== 1 || kb[1] !== 1) {\n s.push(d3_interpolateTransformPop(s) + \"scale(\" + kb + \")\");\n }\n }\n function d3_interpolateTransform(a, b) {\n var s = [], q = [];\n a = d3.transform(a), b = d3.transform(b);\n d3_interpolateTranslate(a.translate, b.translate, s, q);\n d3_interpolateRotate(a.rotate, b.rotate, s, q);\n d3_interpolateSkew(a.skew, b.skew, s, q);\n d3_interpolateScale(a.scale, b.scale, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n }\n function d3_uninterpolateNumber(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return (x - a) / b;\n };\n }\n function d3_uninterpolateClamp(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return Math.max(0, Math.min(1, (x - a) / b));\n };\n }\n d3.layout = {};\n d3.layout.bundle = function() {\n return function(links) {\n var paths = [], i = -1, n = links.length;\n while (++i < n) paths.push(d3_layout_bundlePath(links[i]));\n return paths;\n };\n };\n function d3_layout_bundlePath(link) {\n var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [start];\n while (start !== lca) {\n start = start.parent;\n points.push(start);\n }\n var k = points.length;\n while (end !== lca) {\n points.splice(k, 0, end);\n end = end.parent;\n }\n return points;\n }\n function d3_layout_bundleAncestors(node) {\n var ancestors = [], parent = node.parent;\n while (parent != null) {\n ancestors.push(node);\n node = parent;\n parent = parent.parent;\n }\n ancestors.push(node);\n return ancestors;\n }\n function d3_layout_bundleLeastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;\n while (aNode === bNode) {\n sharedNode = aNode;\n aNode = aNodes.pop();\n bNode = bNodes.pop();\n }\n return sharedNode;\n }\n d3.layout.chord = function() {\n var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;\n function relayout() {\n var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;\n chords = [];\n groups = [];\n k = 0, i = -1;\n while (++i < n) {\n x = 0, j = -1;\n while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(d3.range(n));\n k += x;\n }\n if (sortGroups) {\n groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n }\n if (sortSubgroups) {\n subgroupIndex.forEach(function(d, i2) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i2][a], matrix[i2][b]);\n });\n });\n }\n k = (\\u03C4 - padding * n) / k;\n x = 0, i = -1;\n while (++i < n) {\n x0 = x, j = -1;\n while (++j < n) {\n var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;\n subgroups[di + \"-\" + dj] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += padding;\n }\n i = -1;\n while (++i < n) {\n j = i - 1;\n while (++j < n) {\n var source = subgroups[i + \"-\" + j], target = subgroups[j + \"-\" + i];\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source,\n target\n });\n }\n }\n }\n if (sortChords) resort();\n }\n function resort() {\n chords.sort(function(a, b) {\n return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);\n });\n }\n chord.matrix = function(x) {\n if (!arguments.length) return matrix;\n n = (matrix = x) && matrix.length;\n chords = groups = null;\n return chord;\n };\n chord.padding = function(x) {\n if (!arguments.length) return padding;\n padding = x;\n chords = groups = null;\n return chord;\n };\n chord.sortGroups = function(x) {\n if (!arguments.length) return sortGroups;\n sortGroups = x;\n chords = groups = null;\n return chord;\n };\n chord.sortSubgroups = function(x) {\n if (!arguments.length) return sortSubgroups;\n sortSubgroups = x;\n chords = null;\n return chord;\n };\n chord.sortChords = function(x) {\n if (!arguments.length) return sortChords;\n sortChords = x;\n if (chords) resort();\n return chord;\n };\n chord.chords = function() {\n if (!chords) relayout();\n return chords;\n };\n chord.groups = function() {\n if (!groups) relayout();\n return groups;\n };\n return chord;\n };\n d3.layout.force = function() {\n var force = {}, event = d3.dispatch(\"start\", \"tick\", \"end\"), timer, size = [1, 1], drag, alpha, friction = 0.9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = 0.1, theta2 = 0.64, nodes = [], links = [], distances, strengths, charges;\n function repulse(node) {\n return function(quad, x1, _, x2) {\n if (quad.point !== node) {\n var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;\n if (dw * dw / theta2 < dn) {\n if (dn < chargeDistance2) {\n var k = quad.charge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n return true;\n }\n if (quad.point && dn && dn < chargeDistance2) {\n var k = quad.pointCharge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n }\n return !quad.charge;\n };\n }\n force.tick = function() {\n if ((alpha *= 0.99) < 5e-3) {\n timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n return true;\n }\n var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;\n for (i = 0; i < m; ++i) {\n o = links[i];\n s = o.source;\n t = o.target;\n x = t.x - s.x;\n y = t.y - s.y;\n if (l = x * x + y * y) {\n l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;\n x *= l;\n y *= l;\n t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : 0.5);\n t.y -= y * k;\n s.x += x * (k = 1 - k);\n s.y += y * k;\n }\n }\n if (k = alpha * gravity) {\n x = size[0] / 2;\n y = size[1] / 2;\n i = -1;\n if (k) while (++i < n) {\n o = nodes[i];\n o.x += (x - o.x) * k;\n o.y += (y - o.y) * k;\n }\n }\n if (charge) {\n d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);\n i = -1;\n while (++i < n) {\n if (!(o = nodes[i]).fixed) {\n q.visit(repulse(o));\n }\n }\n }\n i = -1;\n while (++i < n) {\n o = nodes[i];\n if (o.fixed) {\n o.x = o.px;\n o.y = o.py;\n } else {\n o.x -= (o.px - (o.px = o.x)) * friction;\n o.y -= (o.py - (o.py = o.y)) * friction;\n }\n }\n event.tick({\n type: \"tick\",\n alpha\n });\n };\n force.nodes = function(x) {\n if (!arguments.length) return nodes;\n nodes = x;\n return force;\n };\n force.links = function(x) {\n if (!arguments.length) return links;\n links = x;\n return force;\n };\n force.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return force;\n };\n force.linkDistance = function(x) {\n if (!arguments.length) return linkDistance;\n linkDistance = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.distance = force.linkDistance;\n force.linkStrength = function(x) {\n if (!arguments.length) return linkStrength;\n linkStrength = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.friction = function(x) {\n if (!arguments.length) return friction;\n friction = +x;\n return force;\n };\n force.charge = function(x) {\n if (!arguments.length) return charge;\n charge = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.chargeDistance = function(x) {\n if (!arguments.length) return Math.sqrt(chargeDistance2);\n chargeDistance2 = x * x;\n return force;\n };\n force.gravity = function(x) {\n if (!arguments.length) return gravity;\n gravity = +x;\n return force;\n };\n force.theta = function(x) {\n if (!arguments.length) return Math.sqrt(theta2);\n theta2 = x * x;\n return force;\n };\n force.alpha = function(x) {\n if (!arguments.length) return alpha;\n x = +x;\n if (alpha) {\n if (x > 0) {\n alpha = x;\n } else {\n timer.c = null, timer.t = NaN, timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n }\n } else if (x > 0) {\n event.start({\n type: \"start\",\n alpha: alpha = x\n });\n timer = d3_timer(force.tick);\n }\n return force;\n };\n force.start = function() {\n var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;\n for (i = 0; i < n; ++i) {\n (o = nodes[i]).index = i;\n o.weight = 0;\n }\n for (i = 0; i < m; ++i) {\n o = links[i];\n if (typeof o.source == \"number\") o.source = nodes[o.source];\n if (typeof o.target == \"number\") o.target = nodes[o.target];\n ++o.source.weight;\n ++o.target.weight;\n }\n for (i = 0; i < n; ++i) {\n o = nodes[i];\n if (isNaN(o.x)) o.x = position(\"x\", w);\n if (isNaN(o.y)) o.y = position(\"y\", h);\n if (isNaN(o.px)) o.px = o.x;\n if (isNaN(o.py)) o.py = o.y;\n }\n distances = [];\n if (typeof linkDistance === \"function\") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i);\n else for (i = 0; i < m; ++i) distances[i] = linkDistance;\n strengths = [];\n if (typeof linkStrength === \"function\") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i);\n else for (i = 0; i < m; ++i) strengths[i] = linkStrength;\n charges = [];\n if (typeof charge === \"function\") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i);\n else for (i = 0; i < n; ++i) charges[i] = charge;\n function position(dimension, size2) {\n if (!neighbors) {\n neighbors = new Array(n);\n for (j = 0; j < n; ++j) {\n neighbors[j] = [];\n }\n for (j = 0; j < m; ++j) {\n var o2 = links[j];\n neighbors[o2.source.index].push(o2.target);\n neighbors[o2.target.index].push(o2.source);\n }\n }\n var candidates = neighbors[i], j = -1, l = candidates.length, x;\n while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;\n return Math.random() * size2;\n }\n return force.resume();\n };\n force.resume = function() {\n return force.alpha(0.1);\n };\n force.stop = function() {\n return force.alpha(0);\n };\n force.drag = function() {\n if (!drag) drag = d3.behavior.drag().origin(d3_identity).on(\"dragstart.force\", d3_layout_forceDragstart).on(\"drag.force\", dragmove).on(\"dragend.force\", d3_layout_forceDragend);\n if (!arguments.length) return drag;\n this.on(\"mouseover.force\", d3_layout_forceMouseover).on(\"mouseout.force\", d3_layout_forceMouseout).call(drag);\n };\n function dragmove(d) {\n d.px = d3.event.x, d.py = d3.event.y;\n force.resume();\n }\n return d3.rebind(force, event, \"on\");\n };\n function d3_layout_forceDragstart(d) {\n d.fixed |= 2;\n }\n function d3_layout_forceDragend(d) {\n d.fixed &= ~6;\n }\n function d3_layout_forceMouseover(d) {\n d.fixed |= 4;\n d.px = d.x, d.py = d.y;\n }\n function d3_layout_forceMouseout(d) {\n d.fixed &= ~4;\n }\n function d3_layout_forceAccumulate(quad, alpha, charges) {\n var cx = 0, cy = 0;\n quad.charge = 0;\n if (!quad.leaf) {\n var nodes = quad.nodes, n = nodes.length, i = -1, c;\n while (++i < n) {\n c = nodes[i];\n if (c == null) continue;\n d3_layout_forceAccumulate(c, alpha, charges);\n quad.charge += c.charge;\n cx += c.charge * c.cx;\n cy += c.charge * c.cy;\n }\n }\n if (quad.point) {\n if (!quad.leaf) {\n quad.point.x += Math.random() - 0.5;\n quad.point.y += Math.random() - 0.5;\n }\n var k = alpha * charges[quad.point.index];\n quad.charge += quad.pointCharge = k;\n cx += k * quad.point.x;\n cy += k * quad.point.y;\n }\n quad.cx = cx / quad.charge;\n quad.cy = cy / quad.charge;\n }\n var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;\n d3.layout.hierarchy = function() {\n var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;\n function hierarchy(root) {\n var stack = [root], nodes = [], node;\n root.depth = 0;\n while ((node = stack.pop()) != null) {\n nodes.push(node);\n if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {\n var n, childs, child;\n while (--n >= 0) {\n stack.push(child = childs[n]);\n child.parent = node;\n child.depth = node.depth + 1;\n }\n if (value) node.value = 0;\n node.children = childs;\n } else {\n if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;\n delete node.children;\n }\n }\n d3_layout_hierarchyVisitAfter(root, function(node2) {\n var childs2, parent;\n if (sort && (childs2 = node2.children)) childs2.sort(sort);\n if (value && (parent = node2.parent)) parent.value += node2.value;\n });\n return nodes;\n }\n hierarchy.sort = function(x) {\n if (!arguments.length) return sort;\n sort = x;\n return hierarchy;\n };\n hierarchy.children = function(x) {\n if (!arguments.length) return children;\n children = x;\n return hierarchy;\n };\n hierarchy.value = function(x) {\n if (!arguments.length) return value;\n value = x;\n return hierarchy;\n };\n hierarchy.revalue = function(root) {\n if (value) {\n d3_layout_hierarchyVisitBefore(root, function(node) {\n if (node.children) node.value = 0;\n });\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var parent;\n if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;\n if (parent = node.parent) parent.value += node.value;\n });\n }\n return root;\n };\n return hierarchy;\n };\n function d3_layout_hierarchyRebind(object, hierarchy) {\n d3.rebind(object, hierarchy, \"sort\", \"children\", \"value\");\n object.nodes = object;\n object.links = d3_layout_hierarchyLinks;\n return object;\n }\n function d3_layout_hierarchyVisitBefore(node, callback) {\n var nodes = [node];\n while ((node = nodes.pop()) != null) {\n callback(node);\n if ((children = node.children) && (n = children.length)) {\n var n, children;\n while (--n >= 0) nodes.push(children[n]);\n }\n }\n }\n function d3_layout_hierarchyVisitAfter(node, callback) {\n var nodes = [node], nodes2 = [];\n while ((node = nodes.pop()) != null) {\n nodes2.push(node);\n if ((children = node.children) && (n = children.length)) {\n var i = -1, n, children;\n while (++i < n) nodes.push(children[i]);\n }\n }\n while ((node = nodes2.pop()) != null) {\n callback(node);\n }\n }\n function d3_layout_hierarchyChildren(d) {\n return d.children;\n }\n function d3_layout_hierarchyValue(d) {\n return d.value;\n }\n function d3_layout_hierarchySort(a, b) {\n return b.value - a.value;\n }\n function d3_layout_hierarchyLinks(nodes) {\n return d3.merge(nodes.map(function(parent) {\n return (parent.children || []).map(function(child) {\n return {\n source: parent,\n target: child\n };\n });\n }));\n }\n d3.layout.partition = function() {\n var hierarchy = d3.layout.hierarchy(), size = [1, 1];\n function position(node, x, dx, dy) {\n var children = node.children;\n node.x = x;\n node.y = node.depth * dy;\n node.dx = dx;\n node.dy = dy;\n if (children && (n = children.length)) {\n var i = -1, n, c, d;\n dx = node.value ? dx / node.value : 0;\n while (++i < n) {\n position(c = children[i], x, d = c.value * dx, dy);\n x += d;\n }\n }\n }\n function depth(node) {\n var children = node.children, d = 0;\n if (children && (n = children.length)) {\n var i = -1, n;\n while (++i < n) d = Math.max(d, depth(children[i]));\n }\n return 1 + d;\n }\n function partition(d, i) {\n var nodes = hierarchy.call(this, d, i);\n position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));\n return nodes;\n }\n partition.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return partition;\n };\n return d3_layout_hierarchyRebind(partition, hierarchy);\n };\n d3.layout.pie = function() {\n var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = \\u03C4, padAngle = 0;\n function pie(data) {\n var n = data.length, values = data.map(function(d, i) {\n return +value.call(pie, d, i);\n }), a = +(typeof startAngle === \"function\" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === \"function\" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === \"function\" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;\n if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {\n return values[j] - values[i];\n } : function(i, j) {\n return sort(data[i], data[j]);\n });\n index.forEach(function(i) {\n arcs[i] = {\n data: data[i],\n value: v = values[i],\n startAngle: a,\n endAngle: a += v * k + pa,\n padAngle: p\n };\n });\n return arcs;\n }\n pie.value = function(_) {\n if (!arguments.length) return value;\n value = _;\n return pie;\n };\n pie.sort = function(_) {\n if (!arguments.length) return sort;\n sort = _;\n return pie;\n };\n pie.startAngle = function(_) {\n if (!arguments.length) return startAngle;\n startAngle = _;\n return pie;\n };\n pie.endAngle = function(_) {\n if (!arguments.length) return endAngle;\n endAngle = _;\n return pie;\n };\n pie.padAngle = function(_) {\n if (!arguments.length) return padAngle;\n padAngle = _;\n return pie;\n };\n return pie;\n };\n var d3_layout_pieSortByValue = {};\n d3.layout.stack = function() {\n var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;\n function stack(data, index) {\n if (!(n = data.length)) return data;\n var series = data.map(function(d, i2) {\n return values.call(stack, d, i2);\n });\n var points = series.map(function(d) {\n return d.map(function(v, i2) {\n return [x.call(stack, v, i2), y.call(stack, v, i2)];\n });\n });\n var orders = order.call(stack, points, index);\n series = d3.permute(series, orders);\n points = d3.permute(points, orders);\n var offsets = offset.call(stack, points, index);\n var m = series[0].length, n, i, j, o;\n for (j = 0; j < m; ++j) {\n out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);\n for (i = 1; i < n; ++i) {\n out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);\n }\n }\n return data;\n }\n stack.values = function(x2) {\n if (!arguments.length) return values;\n values = x2;\n return stack;\n };\n stack.order = function(x2) {\n if (!arguments.length) return order;\n order = typeof x2 === \"function\" ? x2 : d3_layout_stackOrders.get(x2) || d3_layout_stackOrderDefault;\n return stack;\n };\n stack.offset = function(x2) {\n if (!arguments.length) return offset;\n offset = typeof x2 === \"function\" ? x2 : d3_layout_stackOffsets.get(x2) || d3_layout_stackOffsetZero;\n return stack;\n };\n stack.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n return stack;\n };\n stack.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n return stack;\n };\n stack.out = function(z) {\n if (!arguments.length) return out;\n out = z;\n return stack;\n };\n return stack;\n };\n function d3_layout_stackX(d) {\n return d.x;\n }\n function d3_layout_stackY(d) {\n return d.y;\n }\n function d3_layout_stackOut(d, y0, y) {\n d.y0 = y0;\n d.y = y;\n }\n var d3_layout_stackOrders = d3.map({\n \"inside-out\": function(data) {\n var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {\n return max[a] - max[b];\n }), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = index[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n },\n reverse: function(data) {\n return d3.range(data.length).reverse();\n },\n \"default\": d3_layout_stackOrderDefault\n });\n var d3_layout_stackOffsets = d3.map({\n silhouette: function(data) {\n var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o > max) max = o;\n sums.push(o);\n }\n for (j = 0; j < m; ++j) {\n y0[j] = (max - sums[j]) / 2;\n }\n return y0;\n },\n wiggle: function(data) {\n var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];\n y0[0] = o = o0 = 0;\n for (j = 1; j < m; ++j) {\n for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];\n for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {\n for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {\n s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;\n }\n s2 += s3 * data[i][j][1];\n }\n y0[j] = o -= s1 ? s2 / s1 * dx : 0;\n if (o < o0) o0 = o;\n }\n for (j = 0; j < m; ++j) y0[j] -= o0;\n return y0;\n },\n expand: function(data) {\n var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o) for (i = 0; i < n; i++) data[i][j][1] /= o;\n else for (i = 0; i < n; i++) data[i][j][1] = k;\n }\n for (j = 0; j < m; ++j) y0[j] = 0;\n return y0;\n },\n zero: d3_layout_stackOffsetZero\n });\n function d3_layout_stackOrderDefault(data) {\n return d3.range(data.length);\n }\n function d3_layout_stackOffsetZero(data) {\n var j = -1, m = data[0].length, y0 = [];\n while (++j < m) y0[j] = 0;\n return y0;\n }\n function d3_layout_stackMaxIndex(array) {\n var i = 1, j = 0, v = array[0][1], k, n = array.length;\n for (; i < n; ++i) {\n if ((k = array[i][1]) > v) {\n j = i;\n v = k;\n }\n }\n return j;\n }\n function d3_layout_stackReduceSum(d) {\n return d.reduce(d3_layout_stackSum, 0);\n }\n function d3_layout_stackSum(p, d) {\n return p + d[1];\n }\n d3.layout.histogram = function() {\n var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;\n function histogram(data, i) {\n var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;\n while (++i < m) {\n bin = bins[i] = [];\n bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);\n bin.y = 0;\n }\n if (m > 0) {\n i = -1;\n while (++i < n) {\n x = values[i];\n if (x >= range[0] && x <= range[1]) {\n bin = bins[d3.bisect(thresholds, x, 1, m) - 1];\n bin.y += k;\n bin.push(data[i]);\n }\n }\n }\n return bins;\n }\n histogram.value = function(x) {\n if (!arguments.length) return valuer;\n valuer = x;\n return histogram;\n };\n histogram.range = function(x) {\n if (!arguments.length) return ranger;\n ranger = d3_functor(x);\n return histogram;\n };\n histogram.bins = function(x) {\n if (!arguments.length) return binner;\n binner = typeof x === \"number\" ? function(range) {\n return d3_layout_histogramBinFixed(range, x);\n } : d3_functor(x);\n return histogram;\n };\n histogram.frequency = function(x) {\n if (!arguments.length) return frequency;\n frequency = !!x;\n return histogram;\n };\n return histogram;\n };\n function d3_layout_histogramBinSturges(range, values) {\n return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));\n }\n function d3_layout_histogramBinFixed(range, n) {\n var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];\n while (++x <= n) f[x] = m * x + b;\n return f;\n }\n function d3_layout_histogramRange(values) {\n return [d3.min(values), d3.max(values)];\n }\n d3.layout.pack = function() {\n var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [1, 1], radius;\n function pack(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === \"function\" ? radius : function() {\n return radius;\n };\n root.x = root.y = 0;\n d3_layout_hierarchyVisitAfter(root, function(d2) {\n d2.r = +r(d2.value);\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n if (padding) {\n var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;\n d3_layout_hierarchyVisitAfter(root, function(d2) {\n d2.r += dr;\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n d3_layout_hierarchyVisitAfter(root, function(d2) {\n d2.r -= dr;\n });\n }\n d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));\n return nodes;\n }\n pack.size = function(_) {\n if (!arguments.length) return size;\n size = _;\n return pack;\n };\n pack.radius = function(_) {\n if (!arguments.length) return radius;\n radius = _ == null || typeof _ === \"function\" ? _ : +_;\n return pack;\n };\n pack.padding = function(_) {\n if (!arguments.length) return padding;\n padding = +_;\n return pack;\n };\n return d3_layout_hierarchyRebind(pack, hierarchy);\n };\n function d3_layout_packSort(a, b) {\n return a.value - b.value;\n }\n function d3_layout_packInsert(a, b) {\n var c = a._pack_next;\n a._pack_next = b;\n b._pack_prev = a;\n b._pack_next = c;\n c._pack_prev = b;\n }\n function d3_layout_packSplice(a, b) {\n a._pack_next = b;\n b._pack_prev = a;\n }\n function d3_layout_packIntersects(a, b) {\n var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;\n return 0.999 * dr * dr > dx * dx + dy * dy;\n }\n function d3_layout_packSiblings(node) {\n if (!(nodes = node.children) || !(n = nodes.length)) return;\n var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;\n function bound(node2) {\n xMin = Math.min(node2.x - node2.r, xMin);\n xMax = Math.max(node2.x + node2.r, xMax);\n yMin = Math.min(node2.y - node2.r, yMin);\n yMax = Math.max(node2.y + node2.r, yMax);\n }\n nodes.forEach(d3_layout_packLink);\n a = nodes[0];\n a.x = -a.r;\n a.y = 0;\n bound(a);\n if (n > 1) {\n b = nodes[1];\n b.x = b.r;\n b.y = 0;\n bound(b);\n if (n > 2) {\n c = nodes[2];\n d3_layout_packPlace(a, b, c);\n bound(c);\n d3_layout_packInsert(a, c);\n a._pack_prev = c;\n d3_layout_packInsert(c, b);\n b = a._pack_next;\n for (i = 3; i < n; i++) {\n d3_layout_packPlace(a, b, c = nodes[i]);\n var isect = 0, s1 = 1, s2 = 1;\n for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {\n if (d3_layout_packIntersects(j, c)) {\n isect = 1;\n break;\n }\n }\n if (isect == 1) {\n for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {\n if (d3_layout_packIntersects(k, c)) {\n break;\n }\n }\n }\n if (isect) {\n if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j);\n else d3_layout_packSplice(a = k, b);\n i--;\n } else {\n d3_layout_packInsert(a, c);\n b = c;\n bound(c);\n }\n }\n }\n }\n var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;\n for (i = 0; i < n; i++) {\n c = nodes[i];\n c.x -= cx;\n c.y -= cy;\n cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));\n }\n node.r = cr;\n nodes.forEach(d3_layout_packUnlink);\n }\n function d3_layout_packLink(node) {\n node._pack_next = node._pack_prev = node;\n }\n function d3_layout_packUnlink(node) {\n delete node._pack_next;\n delete node._pack_prev;\n }\n function d3_layout_packTransform(node, x, y, k) {\n var children = node.children;\n node.x = x += k * node.x;\n node.y = y += k * node.y;\n node.r *= k;\n if (children) {\n var i = -1, n = children.length;\n while (++i < n) d3_layout_packTransform(children[i], x, y, k);\n }\n }\n function d3_layout_packPlace(a, b, c) {\n var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;\n if (db && (dx || dy)) {\n var da = b.r + c.r, dc = dx * dx + dy * dy;\n da *= da;\n db *= db;\n var x = 0.5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = a.x + x * dx + y * dy;\n c.y = a.y + x * dy - y * dx;\n } else {\n c.x = a.x + db;\n c.y = a.y;\n }\n }\n d3.layout.tree = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [1, 1], nodeSize = null;\n function tree(d, i) {\n var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);\n d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;\n d3_layout_hierarchyVisitBefore(root1, secondWalk);\n if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode);\n else {\n var left = root0, right = root0, bottom = root0;\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return nodes;\n }\n function wrapTree(root0) {\n var root1 = {\n A: null,\n children: [root0]\n }, queue = [root1], node1;\n while ((node1 = queue.pop()) != null) {\n for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {\n queue.push((children[i] = child = {\n _: children[i],\n parent: node1,\n children: (child = children[i].children) && child.slice() || [],\n A: null,\n a: null,\n z: 0,\n m: 0,\n c: 0,\n s: 0,\n t: null,\n i\n }).a = child);\n }\n }\n return root1.children[0];\n }\n function firstWalk(v) {\n var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;\n if (children.length) {\n d3_layout_treeShift(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {\n vom = d3_layout_treeLeft(vom);\n vop = d3_layout_treeRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !d3_layout_treeRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !d3_layout_treeLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= size[0];\n node.y = node.depth * size[1];\n }\n tree.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return tree;\n };\n tree.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null ? sizeNode : null;\n return tree;\n };\n tree.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) == null ? null : sizeNode;\n return tree;\n };\n return d3_layout_hierarchyRebind(tree, hierarchy);\n };\n function d3_layout_treeSeparation(a, b) {\n return a.parent == b.parent ? 1 : 2;\n }\n function d3_layout_treeLeft(v) {\n var children = v.children;\n return children.length ? children[0] : v.t;\n }\n function d3_layout_treeRight(v) {\n var children = v.children, n;\n return (n = children.length) ? children[n - 1] : v.t;\n }\n function d3_layout_treeMove(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function d3_layout_treeShift(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function d3_layout_treeAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n d3.layout.cluster = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [1, 1], nodeSize = false;\n function cluster(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var children = node.children;\n if (children && children.length) {\n node.x = d3_layout_clusterX(children);\n node.y = d3_layout_clusterY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {\n node.x = (node.x - root.x) * size[0];\n node.y = (root.y - node.y) * size[1];\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * size[0];\n node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];\n });\n return nodes;\n }\n cluster.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return cluster;\n };\n cluster.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null;\n return cluster;\n };\n cluster.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) != null;\n return cluster;\n };\n return d3_layout_hierarchyRebind(cluster, hierarchy);\n };\n function d3_layout_clusterY(children) {\n return 1 + d3.max(children, function(child) {\n return child.y;\n });\n }\n function d3_layout_clusterX(children) {\n return children.reduce(function(x, child) {\n return x + child.x;\n }, 0) / children.length;\n }\n function d3_layout_clusterLeft(node) {\n var children = node.children;\n return children && children.length ? d3_layout_clusterLeft(children[0]) : node;\n }\n function d3_layout_clusterRight(node) {\n var children = node.children, n;\n return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;\n }\n d3.layout.treemap = function() {\n var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [1, 1], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = \"squarify\", ratio = 0.5 * (1 + Math.sqrt(5));\n function scale(children, k) {\n var i = -1, n = children.length, child, area;\n while (++i < n) {\n area = (child = children[i]).value * (k < 0 ? 0 : k);\n child.area = isNaN(area) || area <= 0 ? 0 : area;\n }\n }\n function squarify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === \"slice\" ? rect.dx : mode === \"dice\" ? rect.dy : mode === \"slice-dice\" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while ((n = remaining.length) > 0) {\n row.push(child = remaining[n - 1]);\n row.area += child.area;\n if (mode !== \"squarify\" || (score = worst(row, u)) <= best) {\n remaining.pop();\n best = score;\n } else {\n row.area -= row.pop().area;\n position(row, u, rect, false);\n u = Math.min(rect.dx, rect.dy);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n if (row.length) {\n position(row, u, rect, true);\n row.length = row.area = 0;\n }\n children.forEach(squarify);\n }\n }\n function stickify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), remaining = children.slice(), child, row = [];\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while (child = remaining.pop()) {\n row.push(child);\n row.area += child.area;\n if (child.z != null) {\n position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);\n row.length = row.area = 0;\n }\n }\n children.forEach(stickify);\n }\n }\n function worst(row, u) {\n var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;\n while (++i < n) {\n if (!(r = row[i].area)) continue;\n if (r < rmin) rmin = r;\n if (r > rmax) rmax = r;\n }\n s *= s;\n u *= u;\n return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;\n }\n function position(row, u, rect, flush) {\n var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;\n if (u == rect.dx) {\n if (flush || v > rect.dy) v = rect.dy;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dy = v;\n x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);\n }\n o.z = true;\n o.dx += rect.x + rect.dx - x;\n rect.y += v;\n rect.dy -= v;\n } else {\n if (flush || v > rect.dx) v = rect.dx;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dx = v;\n y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);\n }\n o.z = false;\n o.dy += rect.y + rect.dy - y;\n rect.x += v;\n rect.dx -= v;\n }\n }\n function treemap(d) {\n var nodes = stickies || hierarchy(d), root = nodes[0];\n root.x = root.y = 0;\n if (root.value) root.dx = size[0], root.dy = size[1];\n else root.dx = root.dy = 0;\n if (stickies) hierarchy.revalue(root);\n scale([root], root.dx * root.dy / root.value);\n (stickies ? stickify : squarify)(root);\n if (sticky) stickies = nodes;\n return nodes;\n }\n treemap.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return treemap;\n };\n treemap.padding = function(x) {\n if (!arguments.length) return padding;\n function padFunction(node) {\n var p = x.call(treemap, node, node.depth);\n return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === \"number\" ? [p, p, p, p] : p);\n }\n function padConstant(node) {\n return d3_layout_treemapPad(node, x);\n }\n var type;\n pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === \"function\" ? padFunction : type === \"number\" ? (x = [x, x, x, x], padConstant) : padConstant;\n return treemap;\n };\n treemap.round = function(x) {\n if (!arguments.length) return round != Number;\n round = x ? Math.round : Number;\n return treemap;\n };\n treemap.sticky = function(x) {\n if (!arguments.length) return sticky;\n sticky = x;\n stickies = null;\n return treemap;\n };\n treemap.ratio = function(x) {\n if (!arguments.length) return ratio;\n ratio = x;\n return treemap;\n };\n treemap.mode = function(x) {\n if (!arguments.length) return mode;\n mode = x + \"\";\n return treemap;\n };\n return d3_layout_hierarchyRebind(treemap, hierarchy);\n };\n function d3_layout_treemapPadNull(node) {\n return {\n x: node.x,\n y: node.y,\n dx: node.dx,\n dy: node.dy\n };\n }\n function d3_layout_treemapPad(node, padding) {\n var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];\n if (dx < 0) {\n x += dx / 2;\n dx = 0;\n }\n if (dy < 0) {\n y += dy / 2;\n dy = 0;\n }\n return {\n x,\n y,\n dx,\n dy\n };\n }\n d3.random = {\n normal: function(mu, sigma) {\n var n = arguments.length;\n if (n < 2) sigma = 1;\n if (n < 1) mu = 0;\n return function() {\n var x, y, r;\n do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return mu + sigma * x * Math.sqrt(-2 * Math.log(r) / r);\n };\n },\n logNormal: function() {\n var random = d3.random.normal.apply(d3, arguments);\n return function() {\n return Math.exp(random());\n };\n },\n bates: function(m) {\n var random = d3.random.irwinHall(m);\n return function() {\n return random() / m;\n };\n },\n irwinHall: function(m) {\n return function() {\n for (var s = 0, j = 0; j < m; j++) s += Math.random();\n return s;\n };\n }\n };\n d3.scale = {};\n function d3_scaleExtent(domain) {\n var start = domain[0], stop = domain[domain.length - 1];\n return start < stop ? [start, stop] : [stop, start];\n }\n function d3_scaleRange(scale) {\n return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());\n }\n function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {\n var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);\n return function(x) {\n return i(u(x));\n };\n }\n function d3_scale_nice(domain, nice) {\n var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;\n if (x1 < x0) {\n dx = i0, i0 = i1, i1 = dx;\n dx = x0, x0 = x1, x1 = dx;\n }\n domain[i0] = nice.floor(x0);\n domain[i1] = nice.ceil(x1);\n return domain;\n }\n function d3_scale_niceStep(step) {\n return step ? {\n floor: function(x) {\n return Math.floor(x / step) * step;\n },\n ceil: function(x) {\n return Math.ceil(x / step) * step;\n }\n } : d3_scale_niceIdentity;\n }\n var d3_scale_niceIdentity = {\n floor: d3_identity,\n ceil: d3_identity\n };\n function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {\n var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;\n if (domain[k] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++j <= k) {\n u.push(uninterpolate(domain[j - 1], domain[j]));\n i.push(interpolate(range[j - 1], range[j]));\n }\n return function(x) {\n var j2 = d3.bisect(domain, x, 1, k) - 1;\n return i[j2](u[j2](x));\n };\n }\n d3.scale.linear = function() {\n return d3_scale_linear([0, 1], [0, 1], d3_interpolate, false);\n };\n function d3_scale_linear(domain, range, interpolate, clamp) {\n var output, input;\n function rescale() {\n var linear2 = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;\n output = linear2(domain, range, uninterpolate, interpolate);\n input = linear2(range, domain, uninterpolate, d3_interpolate);\n return scale;\n }\n function scale(x) {\n return output(x);\n }\n scale.invert = function(y) {\n return input(y);\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(Number);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.rangeRound = function(x) {\n return scale.range(x).interpolate(d3_interpolateRound);\n };\n scale.clamp = function(x) {\n if (!arguments.length) return clamp;\n clamp = x;\n return rescale();\n };\n scale.interpolate = function(x) {\n if (!arguments.length) return interpolate;\n interpolate = x;\n return rescale();\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n d3_scale_linearNice(domain, m);\n return rescale();\n };\n scale.copy = function() {\n return d3_scale_linear(domain, range, interpolate, clamp);\n };\n return rescale();\n }\n function d3_scale_linearRebind(scale, linear2) {\n return d3.rebind(scale, linear2, \"range\", \"rangeRound\", \"interpolate\", \"clamp\");\n }\n function d3_scale_linearNice(domain, m) {\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n return domain;\n }\n function d3_scale_linearTickRange(domain, m) {\n if (m == null) m = 10;\n var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;\n if (err <= 0.15) step *= 10;\n else if (err <= 0.35) step *= 5;\n else if (err <= 0.75) step *= 2;\n extent[0] = Math.ceil(extent[0] / step) * step;\n extent[1] = Math.floor(extent[1] / step) * step + step * 0.5;\n extent[2] = step;\n return extent;\n }\n function d3_scale_linearTicks(domain, m) {\n return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));\n }\n var d3_scale_linearFormatSignificant = {\n s: 1,\n g: 1,\n p: 1,\n r: 1,\n e: 1\n };\n function d3_scale_linearPrecision(value) {\n return -Math.floor(Math.log(value) / Math.LN10 + 0.01);\n }\n function d3_scale_linearFormatPrecision(type, range) {\n var p = d3_scale_linearPrecision(range[2]);\n return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== \"e\") : p - (type === \"%\") * 2;\n }\n d3.scale.log = function() {\n return d3_scale_log(d3.scale.linear().domain([0, 1]), 10, true, [1, 10]);\n };\n function d3_scale_log(linear2, base, positive, domain) {\n function log(x) {\n return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);\n }\n function pow(x) {\n return positive ? Math.pow(base, x) : -Math.pow(base, -x);\n }\n function scale(x) {\n return linear2(log(x));\n }\n scale.invert = function(x) {\n return pow(linear2.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n positive = x[0] >= 0;\n linear2.domain((domain = x.map(Number)).map(log));\n return scale;\n };\n scale.base = function(_) {\n if (!arguments.length) return base;\n base = +_;\n linear2.domain(domain.map(log));\n return scale;\n };\n scale.nice = function() {\n var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);\n linear2.domain(niced);\n domain = niced.map(pow);\n return scale;\n };\n scale.ticks = function() {\n var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;\n if (isFinite(j - i)) {\n if (positive) {\n for (; i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);\n ticks.push(pow(i));\n } else {\n ticks.push(pow(i));\n for (; i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);\n }\n for (i = 0; ticks[i] < u; i++) {\n }\n for (j = ticks.length; ticks[j - 1] > v; j--) {\n }\n ticks = ticks.slice(i, j);\n }\n return ticks;\n };\n scale.copy = function() {\n return d3_scale_log(linear2.copy(), base, positive, domain);\n };\n return d3_scale_linearRebind(scale, linear2);\n }\n var d3_scale_logNiceNegative = {\n floor: function(x) {\n return -Math.ceil(-x);\n },\n ceil: function(x) {\n return -Math.floor(-x);\n }\n };\n d3.scale.pow = function() {\n return d3_scale_pow(d3.scale.linear(), 1, [0, 1]);\n };\n function d3_scale_pow(linear2, exponent, domain) {\n var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);\n function scale(x) {\n return linear2(powp(x));\n }\n scale.invert = function(x) {\n return powb(linear2.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n linear2.domain((domain = x.map(Number)).map(powp));\n return scale;\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n return scale.domain(d3_scale_linearNice(domain, m));\n };\n scale.exponent = function(x) {\n if (!arguments.length) return exponent;\n powp = d3_scale_powPow(exponent = x);\n powb = d3_scale_powPow(1 / exponent);\n linear2.domain(domain.map(powp));\n return scale;\n };\n scale.copy = function() {\n return d3_scale_pow(linear2.copy(), exponent, domain);\n };\n return d3_scale_linearRebind(scale, linear2);\n }\n function d3_scale_powPow(e) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);\n };\n }\n d3.scale.sqrt = function() {\n return d3.scale.pow().exponent(0.5);\n };\n d3.scale.ordinal = function() {\n return d3_scale_ordinal([], {\n t: \"range\",\n a: [[]]\n });\n };\n function d3_scale_ordinal(domain, ranger) {\n var index, range, rangeBand;\n function scale(x) {\n return range[((index.get(x) || (ranger.t === \"range\" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];\n }\n function steps(start, step) {\n return d3.range(domain.length).map(function(i) {\n return start + step * i;\n });\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = [];\n index = new d3_Map();\n var i = -1, n = x.length, xi;\n while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));\n return scale[ranger.t].apply(scale, ranger.a);\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n rangeBand = 0;\n ranger = {\n t: \"range\",\n a: arguments\n };\n return scale;\n };\n scale.rangePoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, 0) : (stop - start) / (domain.length - 1 + padding);\n range = steps(start + step * padding / 2, step);\n rangeBand = 0;\n ranger = {\n t: \"rangePoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundPoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), 0) : (stop - start) / (domain.length - 1 + padding) | 0;\n range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);\n rangeBand = 0;\n ranger = {\n t: \"rangeRoundPoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);\n range = steps(start + step * outerPadding, step);\n if (reverse) range.reverse();\n rangeBand = step * (1 - padding);\n ranger = {\n t: \"rangeBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));\n range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);\n if (reverse) range.reverse();\n rangeBand = Math.round(step * (1 - padding));\n ranger = {\n t: \"rangeRoundBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBand = function() {\n return rangeBand;\n };\n scale.rangeExtent = function() {\n return d3_scaleExtent(ranger.a[0]);\n };\n scale.copy = function() {\n return d3_scale_ordinal(domain, ranger);\n };\n return scale.domain(domain);\n }\n d3.scale.category10 = function() {\n return d3.scale.ordinal().range(d3_category10);\n };\n d3.scale.category20 = function() {\n return d3.scale.ordinal().range(d3_category20);\n };\n d3.scale.category20b = function() {\n return d3.scale.ordinal().range(d3_category20b);\n };\n d3.scale.category20c = function() {\n return d3.scale.ordinal().range(d3_category20c);\n };\n var d3_category10 = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(d3_rgbString);\n var d3_category20 = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(d3_rgbString);\n var d3_category20b = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(d3_rgbString);\n var d3_category20c = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(d3_rgbString);\n d3.scale.quantile = function() {\n return d3_scale_quantile([], []);\n };\n function d3_scale_quantile(domain, range) {\n var thresholds;\n function rescale() {\n var k = 0, q = range.length;\n thresholds = [];\n while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);\n return scale;\n }\n function scale(x) {\n if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.quantiles = function() {\n return thresholds;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return y < 0 ? [NaN, NaN] : [y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1]];\n };\n scale.copy = function() {\n return d3_scale_quantile(domain, range);\n };\n return rescale();\n }\n d3.scale.quantize = function() {\n return d3_scale_quantize(0, 1, [0, 1]);\n };\n function d3_scale_quantize(x0, x1, range) {\n var kx, i;\n function scale(x) {\n return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];\n }\n function rescale() {\n kx = range.length / (x1 - x0);\n i = range.length - 1;\n return scale;\n }\n scale.domain = function(x) {\n if (!arguments.length) return [x0, x1];\n x0 = +x[0];\n x1 = +x[x.length - 1];\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n y = y < 0 ? NaN : y / kx + x0;\n return [y, y + 1 / kx];\n };\n scale.copy = function() {\n return d3_scale_quantize(x0, x1, range);\n };\n return rescale();\n }\n d3.scale.threshold = function() {\n return d3_scale_threshold([0.5], [0, 1]);\n };\n function d3_scale_threshold(domain, range) {\n function scale(x) {\n if (x <= x) return range[d3.bisect(domain, x)];\n }\n scale.domain = function(_) {\n if (!arguments.length) return domain;\n domain = _;\n return scale;\n };\n scale.range = function(_) {\n if (!arguments.length) return range;\n range = _;\n return scale;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return [domain[y - 1], domain[y]];\n };\n scale.copy = function() {\n return d3_scale_threshold(domain, range);\n };\n return scale;\n }\n d3.scale.identity = function() {\n return d3_scale_identity([0, 1]);\n };\n function d3_scale_identity(domain) {\n function identity2(x) {\n return +x;\n }\n identity2.invert = identity2;\n identity2.domain = identity2.range = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(identity2);\n return identity2;\n };\n identity2.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n identity2.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n identity2.copy = function() {\n return d3_scale_identity(domain);\n };\n return identity2;\n }\n d3.svg = {};\n function d3_zero() {\n return 0;\n }\n d3.svg.arc = function() {\n var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;\n function arc() {\n var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - half\\u03C0, a1 = endAngle.apply(this, arguments) - half\\u03C0, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;\n if (r1 < r0) rc = r1, r1 = r0, r0 = rc;\n if (da >= \\u03C4\\u03B5) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : \"\") + \"Z\";\n var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];\n if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {\n rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);\n if (!cw) p1 *= -1;\n if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));\n if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));\n }\n if (r1) {\n x0 = r1 * Math.cos(a0 + p1);\n y0 = r1 * Math.sin(a0 + p1);\n x1 = r1 * Math.cos(a1 - p1);\n y1 = r1 * Math.sin(a1 - p1);\n var l1 = Math.abs(a1 - a0 - 2 * p1) <= \\u03C0 ? 0 : 1;\n if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {\n var h1 = (a0 + a1) / 2;\n x0 = r1 * Math.cos(h1);\n y0 = r1 * Math.sin(h1);\n x1 = y1 = null;\n }\n } else {\n x0 = y0 = 0;\n }\n if (r0) {\n x2 = r0 * Math.cos(a1 - p0);\n y2 = r0 * Math.sin(a1 - p0);\n x3 = r0 * Math.cos(a0 + p0);\n y3 = r0 * Math.sin(a0 + p0);\n var l0 = Math.abs(a0 - a1 + 2 * p0) <= \\u03C0 ? 0 : 1;\n if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {\n var h0 = (a0 + a1) / 2;\n x2 = r0 * Math.cos(h0);\n y2 = r0 * Math.sin(h0);\n x3 = y3 = null;\n }\n } else {\n x2 = y2 = 0;\n }\n if (da > \\u03B5 && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > 1e-3) {\n cr = r0 < r1 ^ cw ? 0 : 1;\n var rc1 = rc, rc0 = rc;\n if (da < \\u03C0) {\n var oc = x3 == null ? [x2, y2] : x1 == null ? [x0, y0] : d3_geom_polygonIntersect([x0, y0], [x3, y3], [x1, y1], [x2, y2]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n }\n if (x1 != null) {\n var t30 = d3_svg_arcCornerTangents(x3 == null ? [x2, y2] : [x3, y3], [x0, y0], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([x1, y1], [x2, y2], r1, rc1, cw);\n if (rc === rc1) {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t30[1], \"A\", r1, \",\", r1, \" 0 \", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), \",\", cw, \" \", t12[1], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t12[0]);\n } else {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 1,\", cr, \" \", t12[0]);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n }\n if (x3 != null) {\n var t03 = d3_svg_arcCornerTangents([x0, y0], [x3, y3], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([x2, y2], x1 == null ? [x0, y0] : [x1, y1], r0, -rc0, cw);\n if (rc === rc0) {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t21[1], \"A\", r0, \",\", r0, \" 0 \", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), \",\", 1 - cw, \" \", t03[1], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n } else {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n }\n } else {\n path.push(\"L\", x2, \",\", y2);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n if (x1 != null) path.push(\"A\", r1, \",\", r1, \" 0 \", l1, \",\", cw, \" \", x1, \",\", y1);\n path.push(\"L\", x2, \",\", y2);\n if (x3 != null) path.push(\"A\", r0, \",\", r0, \" 0 \", l0, \",\", 1 - cw, \" \", x3, \",\", y3);\n }\n path.push(\"Z\");\n return path.join(\"\");\n }\n function circleSegment(r1, cw) {\n return \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + r1;\n }\n arc.innerRadius = function(v) {\n if (!arguments.length) return innerRadius;\n innerRadius = d3_functor(v);\n return arc;\n };\n arc.outerRadius = function(v) {\n if (!arguments.length) return outerRadius;\n outerRadius = d3_functor(v);\n return arc;\n };\n arc.cornerRadius = function(v) {\n if (!arguments.length) return cornerRadius;\n cornerRadius = d3_functor(v);\n return arc;\n };\n arc.padRadius = function(v) {\n if (!arguments.length) return padRadius;\n padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);\n return arc;\n };\n arc.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return arc;\n };\n arc.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return arc;\n };\n arc.padAngle = function(v) {\n if (!arguments.length) return padAngle;\n padAngle = d3_functor(v);\n return arc;\n };\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - half\\u03C0;\n return [Math.cos(a) * r, Math.sin(a) * r];\n };\n return arc;\n };\n var d3_svg_arcAuto = \"auto\";\n function d3_svg_arcInnerRadius(d) {\n return d.innerRadius;\n }\n function d3_svg_arcOuterRadius(d) {\n return d.outerRadius;\n }\n function d3_svg_arcStartAngle(d) {\n return d.startAngle;\n }\n function d3_svg_arcEndAngle(d) {\n return d.endAngle;\n }\n function d3_svg_arcPadAngle(d) {\n return d && d.padAngle;\n }\n function d3_svg_arcSweep(x0, y0, x1, y1) {\n return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;\n }\n function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {\n var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D2 = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D2 * D2)), cx0 = (D2 * dy - dx * d) / d2, cy0 = (-D2 * dx - dy * d) / d2, cx1 = (D2 * dy + dx * d) / d2, cy1 = (-D2 * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return [[cx0 - ox, cy0 - oy], [cx0 * r1 / r, cy0 * r1 / r]];\n }\n function d3_true() {\n return true;\n }\n function d3_svg_line(projection) {\n var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = 0.7;\n function line(data) {\n var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);\n function segment() {\n segments.push(\"M\", interpolate(projection(points), tension));\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points.push([+fx.call(this, d, i), +fy.call(this, d, i)]);\n } else if (points.length) {\n segment();\n points = [];\n }\n }\n if (points.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n line.x = function(_) {\n if (!arguments.length) return x;\n x = _;\n return line;\n };\n line.y = function(_) {\n if (!arguments.length) return y;\n y = _;\n return line;\n };\n line.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return line;\n };\n line.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _;\n else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n return line;\n };\n line.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return line;\n };\n return line;\n }\n d3.svg.line = function() {\n return d3_svg_line(d3_identity);\n };\n var d3_svg_lineInterpolators = d3.map({\n linear: d3_svg_lineLinear,\n \"linear-closed\": d3_svg_lineLinearClosed,\n step: d3_svg_lineStep,\n \"step-before\": d3_svg_lineStepBefore,\n \"step-after\": d3_svg_lineStepAfter,\n basis: d3_svg_lineBasis,\n \"basis-open\": d3_svg_lineBasisOpen,\n \"basis-closed\": d3_svg_lineBasisClosed,\n bundle: d3_svg_lineBundle,\n cardinal: d3_svg_lineCardinal,\n \"cardinal-open\": d3_svg_lineCardinalOpen,\n \"cardinal-closed\": d3_svg_lineCardinalClosed,\n monotone: d3_svg_lineMonotone\n });\n d3_svg_lineInterpolators.forEach(function(key, value) {\n value.key = key;\n value.closed = /-closed$/.test(key);\n });\n function d3_svg_lineLinear(points) {\n return points.length > 1 ? points.join(\"L\") : points + \"Z\";\n }\n function d3_svg_lineLinearClosed(points) {\n return points.join(\"L\") + \"Z\";\n }\n function d3_svg_lineStep(points) {\n var i = 0, n = points.length, p = points[0], path = [p[0], \",\", p[1]];\n while (++i < n) path.push(\"H\", (p[0] + (p = points[i])[0]) / 2, \"V\", p[1]);\n if (n > 1) path.push(\"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepBefore(points) {\n var i = 0, n = points.length, p = points[0], path = [p[0], \",\", p[1]];\n while (++i < n) path.push(\"V\", (p = points[i])[1], \"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepAfter(points) {\n var i = 0, n = points.length, p = points[0], path = [p[0], \",\", p[1]];\n while (++i < n) path.push(\"H\", (p = points[i])[0], \"V\", p[1]);\n return path.join(\"\");\n }\n function d3_svg_lineCardinalOpen(points, tension) {\n return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineCardinalClosed(points, tension) {\n return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), points), d3_svg_lineCardinalTangents([points[points.length - 2]].concat(points, [points[1]]), tension));\n }\n function d3_svg_lineCardinal(points, tension) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineHermite(points, tangents) {\n if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {\n return d3_svg_lineLinear(points);\n }\n var quad = points.length != tangents.length, path = \"\", p0 = points[0], p = points[1], t02 = tangents[0], t = t02, pi = 1;\n if (quad) {\n path += \"Q\" + (p[0] - t02[0] * 2 / 3) + \",\" + (p[1] - t02[1] * 2 / 3) + \",\" + p[0] + \",\" + p[1];\n p0 = points[1];\n pi = 2;\n }\n if (tangents.length > 1) {\n t = tangents[1];\n p = points[pi];\n pi++;\n path += \"C\" + (p0[0] + t02[0]) + \",\" + (p0[1] + t02[1]) + \",\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n for (var i = 2; i < tangents.length; i++, pi++) {\n p = points[pi];\n t = tangents[i];\n path += \"S\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n }\n }\n if (quad) {\n var lp = points[pi];\n path += \"Q\" + (p[0] + t[0] * 2 / 3) + \",\" + (p[1] + t[1] * 2 / 3) + \",\" + lp[0] + \",\" + lp[1];\n }\n return path;\n }\n function d3_svg_lineCardinalTangents(points, tension) {\n var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;\n while (++i < n) {\n p0 = p1;\n p1 = p2;\n p2 = points[i];\n tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]);\n }\n return tangents;\n }\n function d3_svg_lineBasis(points) {\n if (points.length < 3) return d3_svg_lineLinear(points);\n var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [x0, x0, x0, (pi = points[1])[0]], py = [y0, y0, y0, pi[1]], path = [x0, \",\", y0, \"L\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)];\n points.push(points[n - 1]);\n while (++i <= n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n points.pop();\n path.push(\"L\", pi);\n return path.join(\"\");\n }\n function d3_svg_lineBasisOpen(points) {\n if (points.length < 4) return d3_svg_lineLinear(points);\n var path = [], i = -1, n = points.length, pi, px = [0], py = [0];\n while (++i < 3) {\n pi = points[i];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + \",\" + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));\n --i;\n while (++i < n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBasisClosed(points) {\n var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];\n while (++i < 4) {\n pi = points[i % n];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path = [d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)];\n --i;\n while (++i < m) {\n pi = points[i % n];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBundle(points, tension) {\n var n = points.length - 1;\n if (n) {\n var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;\n while (++i <= n) {\n p = points[i];\n t = i / n;\n p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);\n p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);\n }\n }\n return d3_svg_lineBasis(points);\n }\n function d3_svg_lineDot4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n var d3_svg_lineBasisBezier1 = [0, 2 / 3, 1 / 3, 0], d3_svg_lineBasisBezier2 = [0, 1 / 3, 2 / 3, 0], d3_svg_lineBasisBezier3 = [0, 1 / 6, 2 / 3, 1 / 6];\n function d3_svg_lineBasisBezier(path, x, y) {\n path.push(\"C\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));\n }\n function d3_svg_lineSlope(p0, p1) {\n return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n }\n function d3_svg_lineFiniteDifferences(points) {\n var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);\n while (++i < j) {\n m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;\n }\n m[i] = d;\n return m;\n }\n function d3_svg_lineMonotoneTangents(points) {\n var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;\n while (++i < j) {\n d = d3_svg_lineSlope(points[i], points[i + 1]);\n if (abs(d) < \\u03B5) {\n m[i] = m[i + 1] = 0;\n } else {\n a = m[i] / d;\n b = m[i + 1] / d;\n s = a * a + b * b;\n if (s > 9) {\n s = d * 3 / Math.sqrt(s);\n m[i] = s * a;\n m[i + 1] = s * b;\n }\n }\n }\n i = -1;\n while (++i <= j) {\n s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));\n tangents.push([s || 0, m[i] * s || 0]);\n }\n return tangents;\n }\n function d3_svg_lineMonotone(points) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));\n }\n d3.svg.line.radial = function() {\n var line = d3_svg_line(d3_svg_lineRadial);\n line.radius = line.x, delete line.x;\n line.angle = line.y, delete line.y;\n return line;\n };\n function d3_svg_lineRadial(points) {\n var point, i = -1, n = points.length, r, a;\n while (++i < n) {\n point = points[i];\n r = point[0];\n a = point[1] - half\\u03C0;\n point[0] = r * Math.cos(a);\n point[1] = r * Math.sin(a);\n }\n return points;\n }\n function d3_svg_area(projection) {\n var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = \"L\", tension = 0.7;\n function area(data) {\n var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {\n return x;\n } : d3_functor(x1), fy1 = y0 === y1 ? function() {\n return y;\n } : d3_functor(y1), x, y;\n function segment() {\n segments.push(\"M\", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), \"Z\");\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points0.push([x = +fx0.call(this, d, i), y = +fy0.call(this, d, i)]);\n points1.push([+fx1.call(this, d, i), +fy1.call(this, d, i)]);\n } else if (points0.length) {\n segment();\n points0 = [];\n points1 = [];\n }\n }\n if (points0.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n area.x = function(_) {\n if (!arguments.length) return x1;\n x0 = x1 = _;\n return area;\n };\n area.x0 = function(_) {\n if (!arguments.length) return x0;\n x0 = _;\n return area;\n };\n area.x1 = function(_) {\n if (!arguments.length) return x1;\n x1 = _;\n return area;\n };\n area.y = function(_) {\n if (!arguments.length) return y1;\n y0 = y1 = _;\n return area;\n };\n area.y0 = function(_) {\n if (!arguments.length) return y0;\n y0 = _;\n return area;\n };\n area.y1 = function(_) {\n if (!arguments.length) return y1;\n y1 = _;\n return area;\n };\n area.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return area;\n };\n area.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _;\n else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n interpolateReverse = interpolate.reverse || interpolate;\n L = interpolate.closed ? \"M\" : \"L\";\n return area;\n };\n area.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return area;\n };\n return area;\n }\n d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;\n d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;\n d3.svg.area = function() {\n return d3_svg_area(d3_identity);\n };\n d3.svg.area.radial = function() {\n var area = d3_svg_area(d3_svg_lineRadial);\n area.radius = area.x, delete area.x;\n area.innerRadius = area.x0, delete area.x0;\n area.outerRadius = area.x1, delete area.x1;\n area.angle = area.y, delete area.y;\n area.startAngle = area.y0, delete area.y0;\n area.endAngle = area.y1, delete area.y1;\n return area;\n };\n function d3_source(d) {\n return d.source;\n }\n function d3_target(d) {\n return d.target;\n }\n d3.svg.chord = function() {\n var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n function chord(d, i) {\n var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);\n return \"M\" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + \"Z\";\n }\n function subgroup(self2, f, d, i) {\n var subgroup2 = f.call(self2, d, i), r = radius.call(self2, subgroup2, i), a0 = startAngle.call(self2, subgroup2, i) - half\\u03C0, a1 = endAngle.call(self2, subgroup2, i) - half\\u03C0;\n return {\n r,\n a0,\n a1,\n p0: [r * Math.cos(a0), r * Math.sin(a0)],\n p1: [r * Math.cos(a1), r * Math.sin(a1)]\n };\n }\n function equals(a, b) {\n return a.a0 == b.a0 && a.a1 == b.a1;\n }\n function arc(r, p, a) {\n return \"A\" + r + \",\" + r + \" 0 \" + +(a > \\u03C0) + \",1 \" + p;\n }\n function curve(r0, p0, r1, p1) {\n return \"Q 0,0 \" + p1;\n }\n chord.radius = function(v) {\n if (!arguments.length) return radius;\n radius = d3_functor(v);\n return chord;\n };\n chord.source = function(v) {\n if (!arguments.length) return source;\n source = d3_functor(v);\n return chord;\n };\n chord.target = function(v) {\n if (!arguments.length) return target;\n target = d3_functor(v);\n return chord;\n };\n chord.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return chord;\n };\n chord.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return chord;\n };\n return chord;\n };\n function d3_svg_chordRadius(d) {\n return d.radius;\n }\n d3.svg.diagonal = function() {\n var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;\n function diagonal(d, i) {\n var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [p0, {\n x: p0.x,\n y: m\n }, {\n x: p3.x,\n y: m\n }, p3];\n p = p.map(projection);\n return \"M\" + p[0] + \"C\" + p[1] + \" \" + p[2] + \" \" + p[3];\n }\n diagonal.source = function(x) {\n if (!arguments.length) return source;\n source = d3_functor(x);\n return diagonal;\n };\n diagonal.target = function(x) {\n if (!arguments.length) return target;\n target = d3_functor(x);\n return diagonal;\n };\n diagonal.projection = function(x) {\n if (!arguments.length) return projection;\n projection = x;\n return diagonal;\n };\n return diagonal;\n };\n function d3_svg_diagonalProjection(d) {\n return [d.x, d.y];\n }\n d3.svg.diagonal.radial = function() {\n var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;\n diagonal.projection = function(x) {\n return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;\n };\n return diagonal;\n };\n function d3_svg_diagonalRadialProjection(projection) {\n return function() {\n var d = projection.apply(this, arguments), r = d[0], a = d[1] - half\\u03C0;\n return [r * Math.cos(a), r * Math.sin(a)];\n };\n }\n d3.svg.symbol = function() {\n var type = d3_svg_symbolType, size = d3_svg_symbolSize;\n function symbol(d, i) {\n return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));\n }\n symbol.type = function(x) {\n if (!arguments.length) return type;\n type = d3_functor(x);\n return symbol;\n };\n symbol.size = function(x) {\n if (!arguments.length) return size;\n size = d3_functor(x);\n return symbol;\n };\n return symbol;\n };\n function d3_svg_symbolSize() {\n return 64;\n }\n function d3_svg_symbolType() {\n return \"circle\";\n }\n function d3_svg_symbolCircle(size) {\n var r = Math.sqrt(size / \\u03C0);\n return \"M0,\" + r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + -r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + r + \"Z\";\n }\n var d3_svg_symbols = d3.map({\n circle: d3_svg_symbolCircle,\n cross: function(size) {\n var r = Math.sqrt(size / 5) / 2;\n return \"M\" + -3 * r + \",\" + -r + \"H\" + -r + \"V\" + -3 * r + \"H\" + r + \"V\" + -r + \"H\" + 3 * r + \"V\" + r + \"H\" + r + \"V\" + 3 * r + \"H\" + -r + \"V\" + r + \"H\" + -3 * r + \"Z\";\n },\n diamond: function(size) {\n var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;\n return \"M0,\" + -ry + \"L\" + rx + \",0 0,\" + ry + \" \" + -rx + \",0Z\";\n },\n square: function(size) {\n var r = Math.sqrt(size) / 2;\n return \"M\" + -r + \",\" + -r + \"L\" + r + \",\" + -r + \" \" + r + \",\" + r + \" \" + -r + \",\" + r + \"Z\";\n },\n \"triangle-down\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + ry + \"L\" + rx + \",\" + -ry + \" \" + -rx + \",\" + -ry + \"Z\";\n },\n \"triangle-up\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + -ry + \"L\" + rx + \",\" + ry + \" \" + -rx + \",\" + ry + \"Z\";\n }\n });\n d3.svg.symbolTypes = d3_svg_symbols.keys();\n var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);\n d3_selectionPrototype.transition = function(name2) {\n var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name2), subgroups = [], subgroup, node, transition = d3_transitionInherit || {\n time: Date.now(),\n ease: d3_ease_cubicInOut,\n delay: 0,\n duration: 250\n };\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_selectionPrototype.interrupt = function(name2) {\n return this.each(name2 == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name2)));\n };\n var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());\n function d3_selection_interruptNS(ns) {\n return function() {\n var lock, activeId, active;\n if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {\n active.timer.c = null;\n active.timer.t = NaN;\n if (--lock.count) delete lock[activeId];\n else delete this[ns];\n lock.active += 0.5;\n active.event && active.event.interrupt.call(this, this.__data__, active.index);\n }\n };\n }\n function d3_transition(groups, ns, id) {\n d3_subclass(groups, d3_transitionPrototype);\n groups.namespace = ns;\n groups.id = id;\n return groups;\n }\n var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;\n d3_transitionPrototype.call = d3_selectionPrototype.call;\n d3_transitionPrototype.empty = d3_selectionPrototype.empty;\n d3_transitionPrototype.node = d3_selectionPrototype.node;\n d3_transitionPrototype.size = d3_selectionPrototype.size;\n d3.transition = function(selection, name2) {\n return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name2) : selection : d3.selection().transition(selection);\n };\n d3.transition.prototype = d3_transitionPrototype;\n d3_transitionPrototype.select = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n d3_transitionNode(subnode, i, ns, id, node[ns][id]);\n subgroup.push(subnode);\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.selectAll = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n transition = node[ns][id];\n subnodes = selector.call(node, node.__data__, i, j);\n subgroups.push(subgroup = []);\n for (var k = -1, o = subnodes.length; ++k < o; ) {\n if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);\n subgroup.push(subnode);\n }\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_transition(subgroups, this.namespace, this.id);\n };\n d3_transitionPrototype.tween = function(name2, tween) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) return this.node()[ns][id].tween.get(name2);\n return d3_selection_each(this, tween == null ? function(node) {\n node[ns][id].tween.remove(name2);\n } : function(node) {\n node[ns][id].tween.set(name2, tween);\n });\n };\n function d3_transition_tween(groups, name2, value, tween) {\n var id = groups.id, ns = groups.namespace;\n return d3_selection_each(groups, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].tween.set(name2, tween(value.call(node, node.__data__, i, j)));\n } : (value = tween(value), function(node) {\n node[ns][id].tween.set(name2, value);\n }));\n }\n d3_transitionPrototype.attr = function(nameNS, value) {\n if (arguments.length < 2) {\n for (value in nameNS) this.attr(value, nameNS[value]);\n return this;\n }\n var interpolate = nameNS == \"transform\" ? d3_interpolateTransform : d3_interpolate, name2 = d3.ns.qualify(nameNS);\n function attrNull() {\n this.removeAttribute(name2);\n }\n function attrNullNS() {\n this.removeAttributeNS(name2.space, name2.local);\n }\n function attrTween(b) {\n return b == null ? attrNull : (b += \"\", function() {\n var a = this.getAttribute(name2), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttribute(name2, i(t));\n });\n });\n }\n function attrTweenNS(b) {\n return b == null ? attrNullNS : (b += \"\", function() {\n var a = this.getAttributeNS(name2.space, name2.local), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttributeNS(name2.space, name2.local, i(t));\n });\n });\n }\n return d3_transition_tween(this, \"attr.\" + nameNS, value, name2.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.attrTween = function(nameNS, tween) {\n var name2 = d3.ns.qualify(nameNS);\n function attrTween(d, i) {\n var f = tween.call(this, d, i, this.getAttribute(name2));\n return f && function(t) {\n this.setAttribute(name2, f(t));\n };\n }\n function attrTweenNS(d, i) {\n var f = tween.call(this, d, i, this.getAttributeNS(name2.space, name2.local));\n return f && function(t) {\n this.setAttributeNS(name2.space, name2.local, f(t));\n };\n }\n return this.tween(\"attr.\" + nameNS, name2.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.style = function(name2, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name2 !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name2) this.style(priority, name2[priority], value);\n return this;\n }\n priority = \"\";\n }\n function styleNull() {\n this.style.removeProperty(name2);\n }\n function styleString(b) {\n return b == null ? styleNull : (b += \"\", function() {\n var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name2), i;\n return a !== b && (i = d3_interpolate(a, b), function(t) {\n this.style.setProperty(name2, i(t), priority);\n });\n });\n }\n return d3_transition_tween(this, \"style.\" + name2, value, styleString);\n };\n d3_transitionPrototype.styleTween = function(name2, tween, priority) {\n if (arguments.length < 3) priority = \"\";\n function styleTween(d, i) {\n var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name2));\n return f && function(t) {\n this.style.setProperty(name2, f(t), priority);\n };\n }\n return this.tween(\"style.\" + name2, styleTween);\n };\n d3_transitionPrototype.text = function(value) {\n return d3_transition_tween(this, \"text\", value, d3_transition_text);\n };\n function d3_transition_text(b) {\n if (b == null) b = \"\";\n return function() {\n this.textContent = b;\n };\n }\n d3_transitionPrototype.remove = function() {\n var ns = this.namespace;\n return this.each(\"end.transition\", function() {\n var p;\n if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);\n });\n };\n d3_transitionPrototype.ease = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].ease;\n if (typeof value !== \"function\") value = d3.ease.apply(d3, arguments);\n return d3_selection_each(this, function(node) {\n node[ns][id].ease = value;\n });\n };\n d3_transitionPrototype.delay = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].delay;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].delay = +value.call(node, node.__data__, i, j);\n } : (value = +value, function(node) {\n node[ns][id].delay = value;\n }));\n };\n d3_transitionPrototype.duration = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].duration;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));\n } : (value = Math.max(1, value), function(node) {\n node[ns][id].duration = value;\n }));\n };\n d3_transitionPrototype.each = function(type, listener) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) {\n var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;\n try {\n d3_transitionInheritId = id;\n d3_selection_each(this, function(node, i, j) {\n d3_transitionInherit = node[ns][id];\n type.call(node, node.__data__, i, j);\n });\n } finally {\n d3_transitionInherit = inherit;\n d3_transitionInheritId = inheritId;\n }\n } else {\n d3_selection_each(this, function(node) {\n var transition = node[ns][id];\n (transition.event || (transition.event = d3.dispatch(\"start\", \"end\", \"interrupt\"))).on(type, listener);\n });\n }\n return this;\n };\n d3_transitionPrototype.transition = function() {\n var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if (node = group[i]) {\n transition = node[ns][id0];\n d3_transitionNode(node, i, ns, id1, {\n time: transition.time,\n ease: transition.ease,\n delay: transition.delay + transition.duration,\n duration: transition.duration\n });\n }\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id1);\n };\n function d3_transitionNamespace(name2) {\n return name2 == null ? \"__transition__\" : \"__transition_\" + name2 + \"__\";\n }\n function d3_transitionNode(node, i, ns, id, inherit) {\n var lock = node[ns] || (node[ns] = {\n active: 0,\n count: 0\n }), transition = lock[id], time, timer, duration, ease, tweens;\n function schedule(elapsed) {\n var delay = transition.delay;\n timer.t = delay + time;\n if (delay <= elapsed) return start(elapsed - delay);\n timer.c = start;\n }\n function start(elapsed) {\n var activeId = lock.active, active = lock[activeId];\n if (active) {\n active.timer.c = null;\n active.timer.t = NaN;\n --lock.count;\n delete lock[activeId];\n active.event && active.event.interrupt.call(node, node.__data__, active.index);\n }\n for (var cancelId in lock) {\n if (+cancelId < id) {\n var cancel = lock[cancelId];\n cancel.timer.c = null;\n cancel.timer.t = NaN;\n --lock.count;\n delete lock[cancelId];\n }\n }\n timer.c = tick;\n d3_timer(function() {\n if (timer.c && tick(elapsed || 1)) {\n timer.c = null;\n timer.t = NaN;\n }\n return 1;\n }, 0, time);\n lock.active = id;\n transition.event && transition.event.start.call(node, node.__data__, i);\n tweens = [];\n transition.tween.forEach(function(key, value) {\n if (value = value.call(node, node.__data__, i)) {\n tweens.push(value);\n }\n });\n ease = transition.ease;\n duration = transition.duration;\n }\n function tick(elapsed) {\n var t = elapsed / duration, e = ease(t), n = tweens.length;\n while (n > 0) {\n tweens[--n].call(node, e);\n }\n if (t >= 1) {\n transition.event && transition.event.end.call(node, node.__data__, i);\n if (--lock.count) delete lock[id];\n else delete node[ns];\n return 1;\n }\n }\n if (!transition) {\n time = inherit.time;\n timer = d3_timer(schedule, 0, time);\n transition = lock[id] = {\n tween: new d3_Map(),\n time,\n timer,\n delay: inherit.delay,\n duration: inherit.duration,\n ease: inherit.ease,\n index: i\n };\n inherit = null;\n ++lock.count;\n }\n }\n d3.svg.axis = function() {\n var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [10], tickValues = null, tickFormat_;\n function axis(g) {\n g.each(function() {\n var g2 = d3.select(this);\n var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();\n var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g2.selectAll(\".tick\").data(ticks, scale1), tickEnter = tick.enter().insert(\"g\", \".domain\").attr(\"class\", \"tick\").style(\"opacity\", \\u03B5), tickExit = d3.transition(tick.exit()).style(\"opacity\", \\u03B5).remove(), tickUpdate = d3.transition(tick.order()).style(\"opacity\", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;\n var range = d3_scaleRange(scale1), path = g2.selectAll(\".domain\").data([0]), pathUpdate = (path.enter().append(\"path\").attr(\"class\", \"domain\"), d3.transition(path));\n tickEnter.append(\"line\");\n tickEnter.append(\"text\");\n var lineEnter = tickEnter.select(\"line\"), lineUpdate = tickUpdate.select(\"line\"), text = tick.select(\"text\").text(tickFormat), textEnter = tickEnter.select(\"text\"), textUpdate = tickUpdate.select(\"text\"), sign = orient === \"top\" || orient === \"left\" ? -1 : 1, x1, x2, y1, y2;\n if (orient === \"bottom\" || orient === \"top\") {\n tickTransform = d3_svg_axisX, x1 = \"x\", y1 = \"y\", x2 = \"x2\", y2 = \"y2\";\n text.attr(\"dy\", sign < 0 ? \"0em\" : \".71em\").style(\"text-anchor\", \"middle\");\n pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + sign * outerTickSize + \"V0H\" + range[1] + \"V\" + sign * outerTickSize);\n } else {\n tickTransform = d3_svg_axisY, x1 = \"y\", y1 = \"x\", x2 = \"y2\", y2 = \"x2\";\n text.attr(\"dy\", \".32em\").style(\"text-anchor\", sign < 0 ? \"end\" : \"start\");\n pathUpdate.attr(\"d\", \"M\" + sign * outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + sign * outerTickSize);\n }\n lineEnter.attr(y2, sign * innerTickSize);\n textEnter.attr(y1, sign * tickSpacing);\n lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);\n textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);\n if (scale1.rangeBand) {\n var x = scale1, dx = x.rangeBand() / 2;\n scale0 = scale1 = function(d) {\n return x(d) + dx;\n };\n } else if (scale0.rangeBand) {\n scale0 = scale1;\n } else {\n tickExit.call(tickTransform, scale1, scale0);\n }\n tickEnter.call(tickTransform, scale0, scale1);\n tickUpdate.call(tickTransform, scale1, scale1);\n });\n }\n axis.scale = function(x) {\n if (!arguments.length) return scale;\n scale = x;\n return axis;\n };\n axis.orient = function(x) {\n if (!arguments.length) return orient;\n orient = x in d3_svg_axisOrients ? x + \"\" : d3_svg_axisDefaultOrient;\n return axis;\n };\n axis.ticks = function() {\n if (!arguments.length) return tickArguments_;\n tickArguments_ = d3_array(arguments);\n return axis;\n };\n axis.tickValues = function(x) {\n if (!arguments.length) return tickValues;\n tickValues = x;\n return axis;\n };\n axis.tickFormat = function(x) {\n if (!arguments.length) return tickFormat_;\n tickFormat_ = x;\n return axis;\n };\n axis.tickSize = function(x) {\n var n = arguments.length;\n if (!n) return innerTickSize;\n innerTickSize = +x;\n outerTickSize = +arguments[n - 1];\n return axis;\n };\n axis.innerTickSize = function(x) {\n if (!arguments.length) return innerTickSize;\n innerTickSize = +x;\n return axis;\n };\n axis.outerTickSize = function(x) {\n if (!arguments.length) return outerTickSize;\n outerTickSize = +x;\n return axis;\n };\n axis.tickPadding = function(x) {\n if (!arguments.length) return tickPadding;\n tickPadding = +x;\n return axis;\n };\n axis.tickSubdivide = function() {\n return arguments.length && axis;\n };\n return axis;\n };\n var d3_svg_axisDefaultOrient = \"bottom\", d3_svg_axisOrients = {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n };\n function d3_svg_axisX(selection, x0, x1) {\n selection.attr(\"transform\", function(d) {\n var v0 = x0(d);\n return \"translate(\" + (isFinite(v0) ? v0 : x1(d)) + \",0)\";\n });\n }\n function d3_svg_axisY(selection, y0, y1) {\n selection.attr(\"transform\", function(d) {\n var v0 = y0(d);\n return \"translate(0,\" + (isFinite(v0) ? v0 : y1(d)) + \")\";\n });\n }\n d3.svg.brush = function() {\n var event = d3_eventDispatch(brush, \"brushstart\", \"brush\", \"brushend\"), x = null, y = null, xExtent = [0, 0], yExtent = [0, 0], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];\n function brush(g) {\n g.each(function() {\n var g2 = d3.select(this).style(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush\", brushstart).on(\"touchstart.brush\", brushstart);\n var background = g2.selectAll(\".background\").data([0]);\n background.enter().append(\"rect\").attr(\"class\", \"background\").style(\"visibility\", \"hidden\").style(\"cursor\", \"crosshair\");\n g2.selectAll(\".extent\").data([0]).enter().append(\"rect\").attr(\"class\", \"extent\").style(\"cursor\", \"move\");\n var resize = g2.selectAll(\".resize\").data(resizes, d3_identity);\n resize.exit().remove();\n resize.enter().append(\"g\").attr(\"class\", function(d) {\n return \"resize \" + d;\n }).style(\"cursor\", function(d) {\n return d3_svg_brushCursor[d];\n }).append(\"rect\").attr(\"x\", function(d) {\n return /[ew]$/.test(d) ? -3 : null;\n }).attr(\"y\", function(d) {\n return /^[ns]/.test(d) ? -3 : null;\n }).attr(\"width\", 6).attr(\"height\", 6).style(\"visibility\", \"hidden\");\n resize.style(\"display\", brush.empty() ? \"none\" : null);\n var gUpdate = d3.transition(g2), backgroundUpdate = d3.transition(background), range;\n if (x) {\n range = d3_scaleRange(x);\n backgroundUpdate.attr(\"x\", range[0]).attr(\"width\", range[1] - range[0]);\n redrawX(gUpdate);\n }\n if (y) {\n range = d3_scaleRange(y);\n backgroundUpdate.attr(\"y\", range[0]).attr(\"height\", range[1] - range[0]);\n redrawY(gUpdate);\n }\n redraw(gUpdate);\n });\n }\n brush.event = function(g) {\n g.each(function() {\n var event_ = event.of(this, arguments), extent1 = {\n x: xExtent,\n y: yExtent,\n i: xExtentDomain,\n j: yExtentDomain\n }, extent0 = this.__chart__ || extent1;\n this.__chart__ = extent1;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.brush\", function() {\n xExtentDomain = extent0.i;\n yExtentDomain = extent0.j;\n xExtent = extent0.x;\n yExtent = extent0.y;\n event_({\n type: \"brushstart\"\n });\n }).tween(\"brush:brush\", function() {\n var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);\n xExtentDomain = yExtentDomain = null;\n return function(t) {\n xExtent = extent1.x = xi(t);\n yExtent = extent1.y = yi(t);\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n };\n }).each(\"end.brush\", function() {\n xExtentDomain = extent1.i;\n yExtentDomain = extent1.j;\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n });\n } else {\n event_({\n type: \"brushstart\"\n });\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n }\n });\n };\n function redraw(g) {\n g.selectAll(\".resize\").attr(\"transform\", function(d) {\n return \"translate(\" + xExtent[+/e$/.test(d)] + \",\" + yExtent[+/^s/.test(d)] + \")\";\n });\n }\n function redrawX(g) {\n g.select(\".extent\").attr(\"x\", xExtent[0]);\n g.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\", xExtent[1] - xExtent[0]);\n }\n function redrawY(g) {\n g.select(\".extent\").attr(\"y\", yExtent[0]);\n g.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\", yExtent[1] - yExtent[0]);\n }\n function brushstart() {\n var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed(\"extent\"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;\n var w = d3.select(d3_window(target)).on(\"keydown.brush\", keydown).on(\"keyup.brush\", keyup);\n if (d3.event.changedTouches) {\n w.on(\"touchmove.brush\", brushmove).on(\"touchend.brush\", brushend);\n } else {\n w.on(\"mousemove.brush\", brushmove).on(\"mouseup.brush\", brushend);\n }\n g.interrupt().selectAll(\"*\").interrupt();\n if (dragging) {\n origin[0] = xExtent[0] - origin[0];\n origin[1] = yExtent[0] - origin[1];\n } else if (resizing) {\n var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);\n offset = [xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1]];\n origin[0] = xExtent[ex];\n origin[1] = yExtent[ey];\n } else if (d3.event.altKey) center = origin.slice();\n g.style(\"pointer-events\", \"none\").selectAll(\".resize\").style(\"display\", null);\n d3.select(\"body\").style(\"cursor\", eventTarget.style(\"cursor\"));\n event_({\n type: \"brushstart\"\n });\n brushmove();\n function keydown() {\n if (d3.event.keyCode == 32) {\n if (!dragging) {\n center = null;\n origin[0] -= xExtent[1];\n origin[1] -= yExtent[1];\n dragging = 2;\n }\n d3_eventPreventDefault();\n }\n }\n function keyup() {\n if (d3.event.keyCode == 32 && dragging == 2) {\n origin[0] += xExtent[1];\n origin[1] += yExtent[1];\n dragging = 0;\n d3_eventPreventDefault();\n }\n }\n function brushmove() {\n var point = d3.mouse(target), moved = false;\n if (offset) {\n point[0] += offset[0];\n point[1] += offset[1];\n }\n if (!dragging) {\n if (d3.event.altKey) {\n if (!center) center = [(xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2];\n origin[0] = xExtent[+(point[0] < center[0])];\n origin[1] = yExtent[+(point[1] < center[1])];\n } else center = null;\n }\n if (resizingX && move1(point, x, 0)) {\n redrawX(g);\n moved = true;\n }\n if (resizingY && move1(point, y, 1)) {\n redrawY(g);\n moved = true;\n }\n if (moved) {\n redraw(g);\n event_({\n type: \"brush\",\n mode: dragging ? \"move\" : \"resize\"\n });\n }\n }\n function move1(point, scale, i) {\n var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;\n if (dragging) {\n r0 -= position;\n r1 -= size + position;\n }\n min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];\n if (dragging) {\n max = (min += position) + size;\n } else {\n if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));\n if (position < min) {\n max = min;\n min = position;\n } else {\n max = position;\n }\n }\n if (extent[0] != min || extent[1] != max) {\n if (i) yExtentDomain = null;\n else xExtentDomain = null;\n extent[0] = min;\n extent[1] = max;\n return true;\n }\n }\n function brushend() {\n brushmove();\n g.style(\"pointer-events\", \"all\").selectAll(\".resize\").style(\"display\", brush.empty() ? \"none\" : null);\n d3.select(\"body\").style(\"cursor\", null);\n w.on(\"mousemove.brush\", null).on(\"mouseup.brush\", null).on(\"touchmove.brush\", null).on(\"touchend.brush\", null).on(\"keydown.brush\", null).on(\"keyup.brush\", null);\n dragRestore();\n event_({\n type: \"brushend\"\n });\n }\n }\n brush.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.clamp = function(z) {\n if (!arguments.length) return x && y ? [xClamp, yClamp] : x ? xClamp : y ? yClamp : null;\n if (x && y) xClamp = !!z[0], yClamp = !!z[1];\n else if (x) xClamp = !!z;\n else if (y) yClamp = !!z;\n return brush;\n };\n brush.extent = function(z) {\n var x0, x1, y0, y1, t;\n if (!arguments.length) {\n if (x) {\n if (xExtentDomain) {\n x0 = xExtentDomain[0], x1 = xExtentDomain[1];\n } else {\n x0 = xExtent[0], x1 = xExtent[1];\n if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n }\n }\n if (y) {\n if (yExtentDomain) {\n y0 = yExtentDomain[0], y1 = yExtentDomain[1];\n } else {\n y0 = yExtent[0], y1 = yExtent[1];\n if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n }\n }\n return x && y ? [[x0, y0], [x1, y1]] : x ? [x0, x1] : y && [y0, y1];\n }\n if (x) {\n x0 = z[0], x1 = z[1];\n if (y) x0 = x0[0], x1 = x1[0];\n xExtentDomain = [x0, x1];\n if (x.invert) x0 = x(x0), x1 = x(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [x0, x1];\n }\n if (y) {\n y0 = z[0], y1 = z[1];\n if (x) y0 = y0[1], y1 = y1[1];\n yExtentDomain = [y0, y1];\n if (y.invert) y0 = y(y0), y1 = y(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [y0, y1];\n }\n return brush;\n };\n brush.clear = function() {\n if (!brush.empty()) {\n xExtent = [0, 0], yExtent = [0, 0];\n xExtentDomain = yExtentDomain = null;\n }\n return brush;\n };\n brush.empty = function() {\n return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];\n };\n return d3.rebind(brush, event, \"on\");\n };\n var d3_svg_brushCursor = {\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n };\n var d3_svg_brushResizes = [[\"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\"], [\"e\", \"w\"], [\"n\", \"s\"], []];\n d3.text = d3_xhrType(function(request) {\n return request.responseText;\n });\n d3.json = function(url, callback) {\n return d3_xhr(url, \"application/json\", d3_json, callback);\n };\n function d3_json(request) {\n return JSON.parse(request.responseText);\n }\n d3.html = function(url, callback) {\n return d3_xhr(url, \"text/html\", d3_html, callback);\n };\n function d3_html(request) {\n var range = d3_document.createRange();\n range.selectNode(d3_document.body);\n return range.createContextualFragment(request.responseText);\n }\n d3.xml = d3_xhrType(function(request) {\n return request.responseXML;\n });\n if (typeof define === \"function\" && false) define(d3);\n else if (typeof module === \"object\" && module.exports) module.exports = d3;\n else this.d3 = d3;\n }.apply(self);\n }\n });\n\n // node_modules/d3-time/dist/d3-time.js\n var require_d3_time = __commonJS({\n \"node_modules/d3-time/dist/d3-time.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n var t02 = /* @__PURE__ */ new Date(), t12 = /* @__PURE__ */ new Date();\n function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+date)), date;\n }\n interval.floor = function(date) {\n return floori(date = /* @__PURE__ */ new Date(+date)), date;\n };\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n interval.round = function(date) {\n var d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n interval.offset = function(date, step) {\n return offseti(date = /* @__PURE__ */ new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range;\n do\n range.push(previous = /* @__PURE__ */ new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {\n }\n }\n else while (--step >= 0) {\n while (offseti(date, 1), !test(date)) {\n }\n }\n }\n });\n };\n if (count) {\n interval.count = function(start, end) {\n t02.setTime(+start), t12.setTime(+end);\n floori(t02), floori(t12);\n return Math.floor(count(t02, t12));\n };\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function(d) {\n return field(d) % step === 0;\n } : function(d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n return interval;\n }\n var millisecond = newInterval(function() {\n }, function(date, step) {\n date.setTime(+date + step);\n }, function(start, end) {\n return end - start;\n });\n millisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return newInterval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n };\n var milliseconds = millisecond.range;\n var durationSecond = 1e3;\n var durationMinute = 6e4;\n var durationHour = 36e5;\n var durationDay = 864e5;\n var durationWeek = 6048e5;\n var second = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds());\n }, function(date, step) {\n date.setTime(+date + step * durationSecond);\n }, function(start, end) {\n return (end - start) / durationSecond;\n }, function(date) {\n return date.getUTCSeconds();\n });\n var seconds = second.range;\n var minute = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n }, function(date, step) {\n date.setTime(+date + step * durationMinute);\n }, function(start, end) {\n return (end - start) / durationMinute;\n }, function(date) {\n return date.getMinutes();\n });\n var minutes = minute.range;\n var hour = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n }, function(date, step) {\n date.setTime(+date + step * durationHour);\n }, function(start, end) {\n return (end - start) / durationHour;\n }, function(date) {\n return date.getHours();\n });\n var hours = hour.range;\n var day = newInterval(function(date) {\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n }, function(date) {\n return date.getDate() - 1;\n });\n var days = day.range;\n function weekday(i) {\n return newInterval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n }\n var sunday = weekday(0);\n var monday = weekday(1);\n var tuesday = weekday(2);\n var wednesday = weekday(3);\n var thursday = weekday(4);\n var friday = weekday(5);\n var saturday = weekday(6);\n var sundays = sunday.range;\n var mondays = monday.range;\n var tuesdays = tuesday.range;\n var wednesdays = wednesday.range;\n var thursdays = thursday.range;\n var fridays = friday.range;\n var saturdays = saturday.range;\n var month = newInterval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setMonth(date.getMonth() + step);\n }, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n }, function(date) {\n return date.getMonth();\n });\n var months = month.range;\n var year = newInterval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n }, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n }, function(date) {\n return date.getFullYear();\n });\n year.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n };\n var years = year.range;\n var utcMinute = newInterval(function(date) {\n date.setUTCSeconds(0, 0);\n }, function(date, step) {\n date.setTime(+date + step * durationMinute);\n }, function(start, end) {\n return (end - start) / durationMinute;\n }, function(date) {\n return date.getUTCMinutes();\n });\n var utcMinutes = utcMinute.range;\n var utcHour = newInterval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n }, function(date, step) {\n date.setTime(+date + step * durationHour);\n }, function(start, end) {\n return (end - start) / durationHour;\n }, function(date) {\n return date.getUTCHours();\n });\n var utcHours = utcHour.range;\n var utcDay = newInterval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n }, function(start, end) {\n return (end - start) / durationDay;\n }, function(date) {\n return date.getUTCDate() - 1;\n });\n var utcDays = utcDay.range;\n function utcWeekday(i) {\n return newInterval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n }\n var utcSunday = utcWeekday(0);\n var utcMonday = utcWeekday(1);\n var utcTuesday = utcWeekday(2);\n var utcWednesday = utcWeekday(3);\n var utcThursday = utcWeekday(4);\n var utcFriday = utcWeekday(5);\n var utcSaturday = utcWeekday(6);\n var utcSundays = utcSunday.range;\n var utcMondays = utcMonday.range;\n var utcTuesdays = utcTuesday.range;\n var utcWednesdays = utcWednesday.range;\n var utcThursdays = utcThursday.range;\n var utcFridays = utcFriday.range;\n var utcSaturdays = utcSaturday.range;\n var utcMonth = newInterval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n }, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n }, function(date) {\n return date.getUTCMonth();\n });\n var utcMonths = utcMonth.range;\n var utcYear = newInterval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n }, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n }, function(date) {\n return date.getUTCFullYear();\n });\n utcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n };\n var utcYears = utcYear.range;\n exports2.timeDay = day;\n exports2.timeDays = days;\n exports2.timeFriday = friday;\n exports2.timeFridays = fridays;\n exports2.timeHour = hour;\n exports2.timeHours = hours;\n exports2.timeInterval = newInterval;\n exports2.timeMillisecond = millisecond;\n exports2.timeMilliseconds = milliseconds;\n exports2.timeMinute = minute;\n exports2.timeMinutes = minutes;\n exports2.timeMonday = monday;\n exports2.timeMondays = mondays;\n exports2.timeMonth = month;\n exports2.timeMonths = months;\n exports2.timeSaturday = saturday;\n exports2.timeSaturdays = saturdays;\n exports2.timeSecond = second;\n exports2.timeSeconds = seconds;\n exports2.timeSunday = sunday;\n exports2.timeSundays = sundays;\n exports2.timeThursday = thursday;\n exports2.timeThursdays = thursdays;\n exports2.timeTuesday = tuesday;\n exports2.timeTuesdays = tuesdays;\n exports2.timeWednesday = wednesday;\n exports2.timeWednesdays = wednesdays;\n exports2.timeWeek = sunday;\n exports2.timeWeeks = sundays;\n exports2.timeYear = year;\n exports2.timeYears = years;\n exports2.utcDay = utcDay;\n exports2.utcDays = utcDays;\n exports2.utcFriday = utcFriday;\n exports2.utcFridays = utcFridays;\n exports2.utcHour = utcHour;\n exports2.utcHours = utcHours;\n exports2.utcMillisecond = millisecond;\n exports2.utcMilliseconds = milliseconds;\n exports2.utcMinute = utcMinute;\n exports2.utcMinutes = utcMinutes;\n exports2.utcMonday = utcMonday;\n exports2.utcMondays = utcMondays;\n exports2.utcMonth = utcMonth;\n exports2.utcMonths = utcMonths;\n exports2.utcSaturday = utcSaturday;\n exports2.utcSaturdays = utcSaturdays;\n exports2.utcSecond = second;\n exports2.utcSeconds = seconds;\n exports2.utcSunday = utcSunday;\n exports2.utcSundays = utcSundays;\n exports2.utcThursday = utcThursday;\n exports2.utcThursdays = utcThursdays;\n exports2.utcTuesday = utcTuesday;\n exports2.utcTuesdays = utcTuesdays;\n exports2.utcWednesday = utcWednesday;\n exports2.utcWednesdays = utcWednesdays;\n exports2.utcWeek = utcSunday;\n exports2.utcWeeks = utcSundays;\n exports2.utcYear = utcYear;\n exports2.utcYears = utcYears;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-time-format/dist/d3-time-format.js\n var require_d3_time_format = __commonJS({\n \"node_modules/d3-time-format/dist/d3-time-format.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_time()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-time\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}, global2.d3));\n })(exports, function(exports2, d3Time) {\n \"use strict\";\n function localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n }\n function utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n }\n function newDate(y, m, d) {\n return { y, m, d, H: 0, M: 0, S: 0, L: 0 };\n }\n function formatLocale(locale2) {\n var locale_dateTime = locale2.dateTime, locale_date = locale2.date, locale_time = locale2.time, locale_periods = locale2.periods, locale_weekdays = locale2.days, locale_shortWeekdays = locale2.shortDays, locale_months = locale2.months, locale_shortMonths = locale2.shortMonths;\n var periodRe = formatRe(locale_periods), periodLookup = formatLookup(locale_periods), weekdayRe = formatRe(locale_weekdays), weekdayLookup = formatLookup(locale_weekdays), shortWeekdayRe = formatRe(locale_shortWeekdays), shortWeekdayLookup = formatLookup(locale_shortWeekdays), monthRe = formatRe(locale_months), monthLookup = formatLookup(locale_months), shortMonthRe = formatRe(locale_shortMonths), shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n function newFormat(specifier, formats2) {\n return function(date) {\n var string = [], i = -1, j = 0, n = specifier.length, c, pad2, format;\n if (!(date instanceof Date)) date = /* @__PURE__ */ new Date(+date);\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad2 = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad2 = c === \"e\" ? \" \" : \"0\";\n if (format = formats2[c]) c = format(date, pad2);\n string.push(c);\n j = i + 1;\n }\n }\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, void 0, 1), i = parseSpecifier(d, specifier, string += \"\", 0), week, day;\n if (i != string.length) return null;\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1e3 + (\"L\" in d ? d.L : 0));\n if (Z && !(\"Z\" in d)) d.Z = 0;\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n if (d.m === void 0) d.m = \"q\" in d ? d.q : 0;\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week);\n week = d3Time.utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week);\n week = d3Time.timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n return localDate(d);\n };\n }\n function parseSpecifier(d, specifier, string, j) {\n var i = 0, n = specifier.length, m = string.length, c, parse2;\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse2 = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse2 || (j = parse2(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() {\n return specifier;\n };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() {\n return specifier;\n };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() {\n return specifier;\n };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() {\n return specifier;\n };\n return p;\n }\n };\n }\n var pads = { \"-\": \"\", \"_\": \" \", \"0\": \"0\" }, numberRe = /^\\s*\\d+/, percentRe = /^%/, requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n function pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\", string = (sign ? -value : value) + \"\", length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n }\n function requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n }\n function formatRe(names2) {\n return new RegExp(\"^(?:\" + names2.map(requote).join(\"|\") + \")\", \"i\");\n }\n function formatLookup(names2) {\n var map = {}, i = -1, n = names2.length;\n while (++i < n) map[names2[i].toLowerCase()] = i;\n return map;\n }\n function parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n }\n function parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n }\n function parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n }\n function parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), i + n[0].length) : -1;\n }\n function parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n }\n function parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n }\n function parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n }\n function parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n }\n function parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n }\n function parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n }\n function parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n }\n function parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n }\n function parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n }\n function parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1e3), i + n[0].length) : -1;\n }\n function parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n function parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n }\n function parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n }\n function formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n }\n function formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n }\n function formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n }\n function formatDayOfYear(d, p) {\n return pad(1 + d3Time.timeDay.count(d3Time.timeYear(d), d), p, 3);\n }\n function formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n }\n function formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n }\n function formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n }\n function formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n }\n function formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n }\n function formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n }\n function formatWeekNumberSunday(d, p) {\n return pad(d3Time.timeSunday.count(d3Time.timeYear(d) - 1, d), p, 2);\n }\n function formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);\n return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2);\n }\n function formatWeekdayNumberSunday(d) {\n return d.getDay();\n }\n function formatWeekNumberMonday(d, p) {\n return pad(d3Time.timeMonday.count(d3Time.timeYear(d) - 1, d), p, 2);\n }\n function formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n }\n function formatFullYear(d, p) {\n return pad(d.getFullYear() % 1e4, p, 4);\n }\n function formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n }\n function formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n }\n function formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n }\n function formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n }\n function formatUTCDayOfYear(d, p) {\n return pad(1 + d3Time.utcDay.count(d3Time.utcYear(d), d), p, 3);\n }\n function formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n }\n function formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n }\n function formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n }\n function formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n }\n function formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n }\n function formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n }\n function formatUTCWeekNumberSunday(d, p) {\n return pad(d3Time.utcSunday.count(d3Time.utcYear(d) - 1, d), p, 2);\n }\n function formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);\n return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2);\n }\n function formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n }\n function formatUTCWeekNumberMonday(d, p) {\n return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2);\n }\n function formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n }\n function formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 1e4, p, 4);\n }\n function formatUTCZone() {\n return \"+0000\";\n }\n function formatLiteralPercent() {\n return \"%\";\n }\n function formatUnixTimestamp(d) {\n return +d;\n }\n function formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1e3);\n }\n var locale;\n defaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n });\n function defaultLocale(definition) {\n locale = formatLocale(definition);\n exports2.timeFormat = locale.format;\n exports2.timeParse = locale.parse;\n exports2.utcFormat = locale.utcFormat;\n exports2.utcParse = locale.utcParse;\n return locale;\n }\n var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n function formatIsoNative(date) {\n return date.toISOString();\n }\n var formatIso = Date.prototype.toISOString ? formatIsoNative : exports2.utcFormat(isoSpecifier);\n function parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n }\n var parseIso = +/* @__PURE__ */ new Date(\"2000-01-01T00:00:00.000Z\") ? parseIsoNative : exports2.utcParse(isoSpecifier);\n exports2.isoFormat = formatIso;\n exports2.isoParse = parseIso;\n exports2.timeFormatDefaultLocale = defaultLocale;\n exports2.timeFormatLocale = formatLocale;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-format/dist/d3-format.js\n var require_d3_format = __commonJS({\n \"node_modules/d3-format/dist/d3-format.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = typeof globalThis !== \"undefined\" ? globalThis : global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function formatDecimal(x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\n }\n function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null;\n var i, coefficient = x.slice(0, i);\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n }\n function exponent(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n }\n function formatGroup(grouping, thousands) {\n return function(value, width) {\n var i = value.length, t = [], j = 0, g = grouping[0], length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n return t.reverse().join(thousands);\n };\n }\n function formatNumerals(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n }\n var re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n }\n formatSpecifier.prototype = FormatSpecifier.prototype;\n function FormatSpecifier(specifier) {\n this.fill = specifier.fill === void 0 ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === void 0 ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === void 0 ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === void 0 ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === void 0 ? void 0 : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === void 0 ? \"\" : specifier.type + \"\";\n }\n FormatSpecifier.prototype.toString = function() {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === void 0 ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === void 0 ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n };\n function formatTrim(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n }\n var prefixExponent;\n function formatPrefixAuto(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0], exponent2 = d[1], i = exponent2 - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent2 / 3))) * 3) + 1, n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0];\n }\n function formatRounded(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0], exponent2 = d[1];\n return exponent2 < 0 ? \"0.\" + new Array(-exponent2).join(\"0\") + coefficient : coefficient.length > exponent2 + 1 ? coefficient.slice(0, exponent2 + 1) + \".\" + coefficient.slice(exponent2 + 1) : coefficient + new Array(exponent2 - coefficient.length + 2).join(\"0\");\n }\n var formatTypes = {\n \"%\": function(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function(x, p) {\n return x.toExponential(p);\n },\n \"f\": function(x, p) {\n return x.toFixed(p);\n },\n \"g\": function(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function(x, p) {\n return formatRounded(x * 100, p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function(x) {\n return Math.round(x).toString(16);\n }\n };\n function identity2(x) {\n return x;\n }\n var map = Array.prototype.map, prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"\\xB5\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n function formatLocale(locale2) {\n var group = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity2 : formatGroup(map.call(locale2.grouping, Number), locale2.thousands + \"\"), currencyPrefix = locale2.currency === void 0 ? \"\" : locale2.currency[0] + \"\", currencySuffix = locale2.currency === void 0 ? \"\" : locale2.currency[1] + \"\", decimal = locale2.decimal === void 0 ? \".\" : locale2.decimal + \"\", numerals = locale2.numerals === void 0 ? identity2 : formatNumerals(map.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? \"%\" : locale2.percent + \"\", minus = locale2.minus === void 0 ? \"-\" : locale2.minus + \"\", nan = locale2.nan === void 0 ? \"NaN\" : locale2.nan + \"\";\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill, align = specifier.align, sign = specifier.sign, symbol = specifier.symbol, zero2 = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim = specifier.trim, type = specifier.type;\n if (type === \"n\") comma = true, type = \"g\";\n else if (!formatTypes[type]) precision === void 0 && (precision = 12), trim = true, type = \"g\";\n if (zero2 || fill === \"0\" && align === \"=\") zero2 = true, fill = \"0\", align = \"=\";\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\", suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n var formatType = formatTypes[type], maybeSuffix = /[defgprs%]/.test(type);\n precision = precision === void 0 ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n function format(value) {\n var valuePrefix = prefix, valueSuffix = suffix, i, n, c;\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n var valueNegative = value < 0 || 1 / value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n if (trim) value = formatTrim(value);\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n if (comma && !zero2) value = group(value, Infinity);\n var length = valuePrefix.length + value.length + valueSuffix.length, padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n if (comma && zero2) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n return numerals(value);\n }\n format.toString = function() {\n return specifier + \"\";\n };\n return format;\n }\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3];\n return function(value2) {\n return f(k * value2) + prefix;\n };\n }\n return {\n format: newFormat,\n formatPrefix\n };\n }\n var locale;\n defaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n });\n function defaultLocale(definition) {\n locale = formatLocale(definition);\n exports2.format = locale.format;\n exports2.formatPrefix = locale.formatPrefix;\n return locale;\n }\n function precisionFixed(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n }\n function precisionPrefix(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n }\n function precisionRound(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n }\n exports2.FormatSpecifier = FormatSpecifier;\n exports2.formatDefaultLocale = defaultLocale;\n exports2.formatLocale = formatLocale;\n exports2.formatSpecifier = formatSpecifier;\n exports2.precisionFixed = precisionFixed;\n exports2.precisionPrefix = precisionPrefix;\n exports2.precisionRound = precisionRound;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/is-string-blank/index.js\n var require_is_string_blank = __commonJS({\n \"node_modules/is-string-blank/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function(str) {\n var l = str.length, a;\n for (var i = 0; i < l; i++) {\n a = str.charCodeAt(i);\n if ((a < 9 || a > 13) && a !== 32 && a !== 133 && a !== 160 && a !== 5760 && a !== 6158 && (a < 8192 || a > 8205) && a !== 8232 && a !== 8233 && a !== 8239 && a !== 8287 && a !== 8288 && a !== 12288 && a !== 65279) {\n return false;\n }\n }\n return true;\n };\n }\n });\n\n // node_modules/fast-isnumeric/index.js\n var require_fast_isnumeric = __commonJS({\n \"node_modules/fast-isnumeric/index.js\"(exports, module) {\n \"use strict\";\n var allBlankCharCodes = require_is_string_blank();\n module.exports = function(n) {\n var type = typeof n;\n if (type === \"string\") {\n var original = n;\n n = +n;\n if (n === 0 && allBlankCharCodes(original)) return false;\n } else if (type !== \"number\") return false;\n return n - n < 1;\n };\n }\n });\n\n // src/constants/numerical.js\n var require_numerical = __commonJS({\n \"src/constants/numerical.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n /**\n * Standardize all missing data in calcdata to use undefined\n * never null or NaN.\n * That way we can use !==undefined, or !== BADNUM,\n * to test for real data\n */\n BADNUM: void 0,\n /*\n * Limit certain operations to well below floating point max value\n * to avoid glitches: Make sure that even when you multiply it by the\n * number of pixels on a giant screen it still works\n */\n FP_SAFE: Number.MAX_VALUE * 1e-4,\n /*\n * conversion of date units to milliseconds\n * year and month constants are marked \"AVG\"\n * to remind us that not all years and months\n * have the same length\n */\n ONEMAXYEAR: 316224e5,\n // 366 * ONEDAY\n ONEAVGYEAR: 315576e5,\n // 365.25 days\n ONEMINYEAR: 31536e6,\n // 365 * ONEDAY\n ONEMAXQUARTER: 79488e5,\n // 92 * ONEDAY\n ONEAVGQUARTER: 78894e5,\n // 1/4 of ONEAVGYEAR\n ONEMINQUARTER: 76896e5,\n // 89 * ONEDAY\n ONEMAXMONTH: 26784e5,\n // 31 * ONEDAY\n ONEAVGMONTH: 26298e5,\n // 1/12 of ONEAVGYEAR\n ONEMINMONTH: 24192e5,\n // 28 * ONEDAY\n ONEWEEK: 6048e5,\n // 7 * ONEDAY\n ONEDAY: 864e5,\n // 24 * ONEHOUR\n ONEHOUR: 36e5,\n ONEMIN: 6e4,\n ONESEC: 1e3,\n ONEMILLI: 1,\n ONEMICROSEC: 1e-3,\n /*\n * For fast conversion btwn world calendars and epoch ms, the Julian Day Number\n * of the unix epoch. From calendars.instance().newDate(1970, 1, 1).toJD()\n */\n EPOCHJD: 24405875e-1,\n /*\n * Are two values nearly equal? Compare to 1PPM\n */\n ALMOST_EQUAL: 1 - 1e-6,\n /*\n * If we're asked to clip a non-positive log value, how far off-screen\n * do we put it?\n */\n LOG_CLIP: 10,\n /*\n * not a number, but for displaying numbers: the \"minus sign\" symbol is\n * wider than the regular ascii dash \"-\"\n */\n MINUS_SIGN: \"\\u2212\"\n };\n }\n });\n\n // node_modules/base64-arraybuffer/dist/base64-arraybuffer.umd.js\n var require_base64_arraybuffer_umd = __commonJS({\n \"node_modules/base64-arraybuffer/dist/base64-arraybuffer.umd.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = typeof globalThis !== \"undefined\" ? globalThis : global2 || self, factory(global2[\"base64-arraybuffer\"] = {}));\n })(exports, function(exports2) {\n \"use strict\";\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n var encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n };\n var decode = function(base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i2, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i2 = 0; i2 < len; i2 += 4) {\n encoded1 = lookup[base64.charCodeAt(i2)];\n encoded2 = lookup[base64.charCodeAt(i2 + 1)];\n encoded3 = lookup[base64.charCodeAt(i2 + 2)];\n encoded4 = lookup[base64.charCodeAt(i2 + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n };\n exports2.decode = decode;\n exports2.encode = encode;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/lib/is_plain_object.js\n var require_is_plain_object = __commonJS({\n \"src/lib/is_plain_object.js\"(exports, module) {\n \"use strict\";\n module.exports = function isPlainObject(obj) {\n if (window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n }\n return Object.prototype.toString.call(obj) === \"[object Object]\" && Object.getPrototypeOf(obj).hasOwnProperty(\"hasOwnProperty\");\n };\n }\n });\n\n // src/lib/array.js\n var require_array = __commonJS({\n \"src/lib/array.js\"(exports) {\n \"use strict\";\n var b64decode = require_base64_arraybuffer_umd().decode;\n var isPlainObject = require_is_plain_object();\n var isArray = Array.isArray;\n var ab = ArrayBuffer;\n var dv = DataView;\n function isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n }\n exports.isTypedArray = isTypedArray;\n function isArrayOrTypedArray(a) {\n return isArray(a) || isTypedArray(a);\n }\n exports.isArrayOrTypedArray = isArrayOrTypedArray;\n function isArray1D(a) {\n return !isArrayOrTypedArray(a[0]);\n }\n exports.isArray1D = isArray1D;\n exports.ensureArray = function(out, n) {\n if (!isArray(out)) out = [];\n out.length = n;\n return out;\n };\n var typedArrays = {\n u1c: typeof Uint8ClampedArray === \"undefined\" ? void 0 : Uint8ClampedArray,\n // not supported in numpy?\n i1: typeof Int8Array === \"undefined\" ? void 0 : Int8Array,\n u1: typeof Uint8Array === \"undefined\" ? void 0 : Uint8Array,\n i2: typeof Int16Array === \"undefined\" ? void 0 : Int16Array,\n u2: typeof Uint16Array === \"undefined\" ? void 0 : Uint16Array,\n i4: typeof Int32Array === \"undefined\" ? void 0 : Int32Array,\n u4: typeof Uint32Array === \"undefined\" ? void 0 : Uint32Array,\n f4: typeof Float32Array === \"undefined\" ? void 0 : Float32Array,\n f8: typeof Float64Array === \"undefined\" ? void 0 : Float64Array\n /* TODO: potentially add Big Int\n \n i8: typeof BigInt64Array === 'undefined' ? undefined :\n BigInt64Array,\n \n u8: typeof BigUint64Array === 'undefined' ? undefined :\n BigUint64Array,\n */\n };\n typedArrays.uint8c = typedArrays.u1c;\n typedArrays.uint8 = typedArrays.u1;\n typedArrays.int8 = typedArrays.i1;\n typedArrays.uint16 = typedArrays.u2;\n typedArrays.int16 = typedArrays.i2;\n typedArrays.uint32 = typedArrays.u4;\n typedArrays.int32 = typedArrays.i4;\n typedArrays.float32 = typedArrays.f4;\n typedArrays.float64 = typedArrays.f8;\n function isArrayBuffer(a) {\n return a.constructor === ArrayBuffer;\n }\n exports.isArrayBuffer = isArrayBuffer;\n exports.decodeTypedArraySpec = function(vIn) {\n var out = [];\n var v = coerceTypedArraySpec(vIn);\n var dtype = v.dtype;\n var T = typedArrays[dtype];\n if (!T) throw new Error('Error in dtype: \"' + dtype + '\"');\n var BYTES_PER_ELEMENT = T.BYTES_PER_ELEMENT;\n var buffer = v.bdata;\n if (!isArrayBuffer(buffer)) {\n buffer = b64decode(buffer);\n }\n var shape = v.shape === void 0 ? (\n // detect 1-d length\n [buffer.byteLength / BYTES_PER_ELEMENT]\n ) : (\n // convert number to string and split to array\n (\"\" + v.shape).split(\",\")\n );\n shape.reverse();\n var ndim = shape.length;\n var nj, j;\n var ni = +shape[0];\n var rowBytes = BYTES_PER_ELEMENT * ni;\n var pos = 0;\n if (ndim === 1) {\n out = new T(buffer);\n } else if (ndim === 2) {\n nj = +shape[1];\n for (j = 0; j < nj; j++) {\n out[j] = new T(buffer, pos, ni);\n pos += rowBytes;\n }\n } else if (ndim === 3) {\n nj = +shape[1];\n var nk = +shape[2];\n for (var k = 0; k < nk; k++) {\n out[k] = [];\n for (j = 0; j < nj; j++) {\n out[k][j] = new T(buffer, pos, ni);\n pos += rowBytes;\n }\n }\n } else {\n throw new Error(\"ndim: \" + ndim + 'is not supported with the shape:\"' + v.shape + '\"');\n }\n out.bdata = v.bdata;\n out.dtype = v.dtype;\n out.shape = shape.reverse().join(\",\");\n vIn._inputArray = out;\n return out;\n };\n exports.isTypedArraySpec = function(v) {\n return isPlainObject(v) && v.hasOwnProperty(\"dtype\") && typeof v.dtype === \"string\" && v.hasOwnProperty(\"bdata\") && (typeof v.bdata === \"string\" || isArrayBuffer(v.bdata)) && (v.shape === void 0 || v.hasOwnProperty(\"shape\") && (typeof v.shape === \"string\" || typeof v.shape === \"number\"));\n };\n function coerceTypedArraySpec(v) {\n return {\n bdata: v.bdata,\n dtype: v.dtype,\n shape: v.shape\n };\n }\n exports.concat = function() {\n var args = [];\n var allArray = true;\n var totalLen = 0;\n var _constructor, arg0, i, argi, posi, leni, out, j;\n for (i = 0; i < arguments.length; i++) {\n argi = arguments[i];\n leni = argi.length;\n if (leni) {\n if (arg0) args.push(argi);\n else {\n arg0 = argi;\n posi = leni;\n }\n if (isArray(argi)) {\n _constructor = false;\n } else {\n allArray = false;\n if (!totalLen) {\n _constructor = argi.constructor;\n } else if (_constructor !== argi.constructor) {\n _constructor = false;\n }\n }\n totalLen += leni;\n }\n }\n if (!totalLen) return [];\n if (!args.length) return arg0;\n if (allArray) return arg0.concat.apply(arg0, args);\n if (_constructor) {\n out = new _constructor(totalLen);\n out.set(arg0);\n for (i = 0; i < args.length; i++) {\n argi = args[i];\n out.set(argi, posi);\n posi += argi.length;\n }\n return out;\n }\n out = new Array(totalLen);\n for (j = 0; j < arg0.length; j++) out[j] = arg0[j];\n for (i = 0; i < args.length; i++) {\n argi = args[i];\n for (j = 0; j < argi.length; j++) out[posi + j] = argi[j];\n posi += j;\n }\n return out;\n };\n exports.maxRowLength = function(z) {\n return _rowLength(z, Math.max, 0);\n };\n exports.minRowLength = function(z) {\n return _rowLength(z, Math.min, Infinity);\n };\n function _rowLength(z, fn, len0) {\n if (isArrayOrTypedArray(z)) {\n if (isArrayOrTypedArray(z[0])) {\n var len = len0;\n for (var i = 0; i < z.length; i++) {\n len = fn(len, z[i].length);\n }\n return len;\n } else {\n return z.length;\n }\n }\n return 0;\n }\n }\n });\n\n // src/lib/nested_property.js\n var require_nested_property = __commonJS({\n \"src/lib/nested_property.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n module.exports = function nestedProperty(container, propStr) {\n if (isNumeric(propStr)) propStr = String(propStr);\n else if (typeof propStr !== \"string\" || propStr.substr(propStr.length - 4) === \"[-1]\") {\n throw \"bad property string\";\n }\n var propParts = propStr.split(\".\");\n var indexed;\n var indices;\n var i, j;\n for (j = 0; j < propParts.length; j++) {\n if (String(propParts[j]).slice(0, 2) === \"__\") {\n throw \"bad property string\";\n }\n }\n j = 0;\n while (j < propParts.length) {\n indexed = String(propParts[j]).match(/^([^\\[\\]]*)((\\[\\-?[0-9]*\\])+)$/);\n if (indexed) {\n if (indexed[1]) propParts[j] = indexed[1];\n else if (j === 0) propParts.splice(0, 1);\n else throw \"bad property string\";\n indices = indexed[2].substr(1, indexed[2].length - 2).split(\"][\");\n for (i = 0; i < indices.length; i++) {\n j++;\n propParts.splice(j, 0, Number(indices[i]));\n }\n }\n j++;\n }\n if (typeof container !== \"object\") {\n return badContainer(container, propStr, propParts);\n }\n return {\n set: npSet(container, propParts, propStr),\n get: npGet(container, propParts),\n astr: propStr,\n parts: propParts,\n obj: container\n };\n };\n function npGet(cont, parts) {\n return function(retainNull) {\n var curCont = cont;\n var curPart;\n var allSame;\n var out;\n var i;\n var j;\n for (i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n if (curPart === -1) {\n allSame = true;\n out = [];\n for (j = 0; j < curCont.length; j++) {\n out[j] = npGet(curCont[j], parts.slice(i + 1))(retainNull);\n if (out[j] !== out[0]) allSame = false;\n }\n return allSame ? out[0] : out;\n }\n if (typeof curPart === \"number\" && !isArrayOrTypedArray(curCont)) {\n return void 0;\n }\n curCont = curCont[curPart];\n if (typeof curCont !== \"object\" || curCont === null) {\n return void 0;\n }\n }\n if (typeof curCont !== \"object\" || curCont === null) return void 0;\n out = curCont[parts[i]];\n if (!retainNull && out === null) return void 0;\n return out;\n };\n }\n var ARGS_PATTERN = /(^|\\.)args\\[/;\n function isDeletable(val, propStr) {\n return val === void 0 || val === null && !propStr.match(ARGS_PATTERN);\n }\n function npSet(cont, parts, propStr) {\n return function(val) {\n var curCont = cont;\n var propPart = \"\";\n var containerLevels = [[cont, propPart]];\n var toDelete = isDeletable(val, propStr);\n var curPart;\n var i;\n for (i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n if (typeof curPart === \"number\" && !isArrayOrTypedArray(curCont)) {\n throw \"array index but container is not an array\";\n }\n if (curPart === -1) {\n toDelete = !setArrayAll(curCont, parts.slice(i + 1), val, propStr);\n if (toDelete) break;\n else return;\n }\n if (!checkNewContainer(curCont, curPart, parts[i + 1], toDelete)) {\n break;\n }\n curCont = curCont[curPart];\n if (typeof curCont !== \"object\" || curCont === null) {\n throw \"container is not an object\";\n }\n propPart = joinPropStr(propPart, curPart);\n containerLevels.push([curCont, propPart]);\n }\n if (toDelete) {\n if (i === parts.length - 1) {\n delete curCont[parts[i]];\n if (Array.isArray(curCont) && +parts[i] === curCont.length - 1) {\n while (curCont.length && curCont[curCont.length - 1] === void 0) {\n curCont.pop();\n }\n }\n }\n } else curCont[parts[i]] = val;\n };\n }\n function joinPropStr(propStr, newPart) {\n var toAdd = newPart;\n if (isNumeric(newPart)) toAdd = \"[\" + newPart + \"]\";\n else if (propStr) toAdd = \".\" + newPart;\n return propStr + toAdd;\n }\n function setArrayAll(containerArray, innerParts, val, propStr) {\n var arrayVal = isArrayOrTypedArray(val);\n var allSet = true;\n var thisVal = val;\n var thisPropStr = propStr.replace(\"-1\", 0);\n var deleteThis = arrayVal ? false : isDeletable(val, thisPropStr);\n var firstPart = innerParts[0];\n var i;\n for (i = 0; i < containerArray.length; i++) {\n thisPropStr = propStr.replace(\"-1\", i);\n if (arrayVal) {\n thisVal = val[i % val.length];\n deleteThis = isDeletable(thisVal, thisPropStr);\n }\n if (deleteThis) allSet = false;\n if (!checkNewContainer(containerArray, i, firstPart, deleteThis)) {\n continue;\n }\n npSet(containerArray[i], innerParts, propStr.replace(\"-1\", i))(thisVal);\n }\n return allSet;\n }\n function checkNewContainer(container, part, nextPart, toDelete) {\n if (container[part] === void 0) {\n if (toDelete) return false;\n if (typeof nextPart === \"number\") container[part] = [];\n else container[part] = {};\n }\n return true;\n }\n function badContainer(container, propStr, propParts) {\n return {\n set: function() {\n throw \"bad container\";\n },\n get: function() {\n },\n astr: propStr,\n parts: propParts,\n obj: container\n };\n }\n }\n });\n\n // src/lib/keyed_container.js\n var require_keyed_container = __commonJS({\n \"src/lib/keyed_container.js\"(exports, module) {\n \"use strict\";\n var nestedProperty = require_nested_property();\n var SIMPLE_PROPERTY_REGEX = /^\\w*$/;\n var NONE = 0;\n var NAME = 1;\n var VALUE = 2;\n var BOTH = 3;\n var UNSET = 4;\n module.exports = function keyedContainer(baseObj, path, keyName, valueName) {\n keyName = keyName || \"name\";\n valueName = valueName || \"value\";\n var i, arr, baseProp;\n var changeTypes = {};\n if (path && path.length) {\n baseProp = nestedProperty(baseObj, path);\n arr = baseProp.get();\n } else {\n arr = baseObj;\n }\n path = path || \"\";\n var indexLookup = {};\n if (arr) {\n for (i = 0; i < arr.length; i++) {\n indexLookup[arr[i][keyName]] = i;\n }\n }\n var isSimpleValueProp = SIMPLE_PROPERTY_REGEX.test(valueName);\n var obj = {\n set: function(name2, value) {\n var changeType = value === null ? UNSET : NONE;\n if (!arr) {\n if (!baseProp || changeType === UNSET) return;\n arr = [];\n baseProp.set(arr);\n }\n var idx = indexLookup[name2];\n if (idx === void 0) {\n if (changeType === UNSET) return;\n changeType = changeType | BOTH;\n idx = arr.length;\n indexLookup[name2] = idx;\n } else if (value !== (isSimpleValueProp ? arr[idx][valueName] : nestedProperty(arr[idx], valueName).get())) {\n changeType = changeType | VALUE;\n }\n var newValue = arr[idx] = arr[idx] || {};\n newValue[keyName] = name2;\n if (isSimpleValueProp) {\n newValue[valueName] = value;\n } else {\n nestedProperty(newValue, valueName).set(value);\n }\n if (value !== null) {\n changeType = changeType & ~UNSET;\n }\n changeTypes[idx] = changeTypes[idx] | changeType;\n return obj;\n },\n get: function(name2) {\n if (!arr) return;\n var idx = indexLookup[name2];\n if (idx === void 0) {\n return void 0;\n } else if (isSimpleValueProp) {\n return arr[idx][valueName];\n } else {\n return nestedProperty(arr[idx], valueName).get();\n }\n },\n rename: function(name2, newName) {\n var idx = indexLookup[name2];\n if (idx === void 0) return obj;\n changeTypes[idx] = changeTypes[idx] | NAME;\n indexLookup[newName] = idx;\n delete indexLookup[name2];\n arr[idx][keyName] = newName;\n return obj;\n },\n remove: function(name2) {\n var idx = indexLookup[name2];\n if (idx === void 0) return obj;\n var object = arr[idx];\n if (Object.keys(object).length > 2) {\n changeTypes[idx] = changeTypes[idx] | VALUE;\n return obj.set(name2, null);\n }\n if (isSimpleValueProp) {\n for (i = idx; i < arr.length; i++) {\n changeTypes[i] = changeTypes[i] | BOTH;\n }\n for (i = idx; i < arr.length; i++) {\n indexLookup[arr[i][keyName]]--;\n }\n arr.splice(idx, 1);\n delete indexLookup[name2];\n } else {\n nestedProperty(object, valueName).set(null);\n changeTypes[idx] = changeTypes[idx] | VALUE | UNSET;\n }\n return obj;\n },\n constructUpdate: function() {\n var astr, idx;\n var update = {};\n var changed = Object.keys(changeTypes);\n for (var i2 = 0; i2 < changed.length; i2++) {\n idx = changed[i2];\n astr = path + \"[\" + idx + \"]\";\n if (arr[idx]) {\n if (changeTypes[idx] & NAME) {\n update[astr + \".\" + keyName] = arr[idx][keyName];\n }\n if (changeTypes[idx] & VALUE) {\n if (isSimpleValueProp) {\n update[astr + \".\" + valueName] = changeTypes[idx] & UNSET ? null : arr[idx][valueName];\n } else {\n update[astr + \".\" + valueName] = changeTypes[idx] & UNSET ? null : nestedProperty(arr[idx], valueName).get();\n }\n }\n } else {\n update[astr] = null;\n }\n }\n return update;\n }\n };\n return obj;\n };\n }\n });\n\n // src/lib/relative_attr.js\n var require_relative_attr = __commonJS({\n \"src/lib/relative_attr.js\"(exports, module) {\n \"use strict\";\n var ASCEND = /^(.*)(\\.[^\\.\\[\\]]+|\\[\\d\\])$/;\n var SIMPLEATTR = /^[^\\.\\[\\]]+$/;\n module.exports = function(baseAttr, relativeAttr) {\n while (relativeAttr) {\n var match = baseAttr.match(ASCEND);\n if (match) baseAttr = match[1];\n else if (baseAttr.match(SIMPLEATTR)) baseAttr = \"\";\n else throw new Error(\"bad relativeAttr call:\" + [baseAttr, relativeAttr]);\n if (relativeAttr.charAt(0) === \"^\") relativeAttr = relativeAttr.slice(1);\n else break;\n }\n if (baseAttr && relativeAttr.charAt(0) !== \"[\") {\n return baseAttr + \".\" + relativeAttr;\n }\n return baseAttr + relativeAttr;\n };\n }\n });\n\n // src/lib/to_log_range.js\n var require_to_log_range = __commonJS({\n \"src/lib/to_log_range.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n module.exports = function toLogRange(val, range) {\n if (val > 0) return Math.log(val) / Math.LN10;\n var newVal = Math.log(Math.min(range[0], range[1])) / Math.LN10;\n if (!isNumeric(newVal)) newVal = Math.log(Math.max(range[0], range[1])) / Math.LN10 - 6;\n return newVal;\n };\n }\n });\n\n // src/lib/relink_private.js\n var require_relink_private = __commonJS({\n \"src/lib/relink_private.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n var isPlainObject = require_is_plain_object();\n module.exports = function relinkPrivateKeys(toContainer, fromContainer) {\n for (var k in fromContainer) {\n var fromVal = fromContainer[k];\n var toVal = toContainer[k];\n if (toVal === fromVal) continue;\n if (k.charAt(0) === \"_\" || typeof fromVal === \"function\") {\n if (k in toContainer) continue;\n toContainer[k] = fromVal;\n } else if (isArrayOrTypedArray(fromVal) && isArrayOrTypedArray(toVal) && isPlainObject(fromVal[0])) {\n if (k === \"customdata\" || k === \"ids\") continue;\n var minLen = Math.min(fromVal.length, toVal.length);\n for (var j = 0; j < minLen; j++) {\n if (toVal[j] !== fromVal[j] && isPlainObject(fromVal[j]) && isPlainObject(toVal[j])) {\n relinkPrivateKeys(toVal[j], fromVal[j]);\n }\n }\n } else if (isPlainObject(fromVal) && isPlainObject(toVal)) {\n relinkPrivateKeys(toVal, fromVal);\n if (!Object.keys(toVal).length) delete toContainer[k];\n }\n }\n };\n }\n });\n\n // src/lib/mod.js\n var require_mod = __commonJS({\n \"src/lib/mod.js\"(exports, module) {\n \"use strict\";\n function mod(v, d) {\n var out = v % d;\n return out < 0 ? out + d : out;\n }\n function modHalf(v, d) {\n return Math.abs(v) > d / 2 ? v - Math.round(v / d) * d : v;\n }\n module.exports = {\n mod,\n modHalf\n };\n }\n });\n\n // node_modules/tinycolor2/tinycolor.js\n var require_tinycolor = __commonJS({\n \"node_modules/tinycolor2/tinycolor.js\"(exports, module) {\n (function(Math2) {\n var trimLeft = /^\\s+/, trimRight = /\\s+$/, tinyCounter = 0, mathRound = Math2.round, mathMin = Math2.min, mathMax = Math2.max, mathRandom = Math2.random;\n function tinycolor(color2, opts) {\n color2 = color2 ? color2 : \"\";\n opts = opts || {};\n if (color2 instanceof tinycolor) {\n return color2;\n }\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color2, opts);\n }\n var rgb2 = inputToRGB(color2);\n this._originalInput = color2, this._r = rgb2.r, this._g = rgb2.g, this._b = rgb2.b, this._a = rgb2.a, this._roundA = mathRound(100 * this._a) / 100, this._format = opts.format || rgb2.format;\n this._gradientType = opts.gradientType;\n if (this._r < 1) {\n this._r = mathRound(this._r);\n }\n if (this._g < 1) {\n this._g = mathRound(this._g);\n }\n if (this._b < 1) {\n this._b = mathRound(this._b);\n }\n this._ok = rgb2.ok;\n this._tc_id = tinyCounter++;\n }\n tinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n var rgb2 = this.toRgb();\n return (rgb2.r * 299 + rgb2.g * 587 + rgb2.b * 114) / 1e3;\n },\n getLuminance: function() {\n var rgb2 = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B2;\n RsRGB = rgb2.r / 255;\n GsRGB = rgb2.g / 255;\n BsRGB = rgb2.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n } else {\n R = Math2.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n } else {\n G = Math2.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B2 = BsRGB / 12.92;\n } else {\n B2 = Math2.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B2;\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100 * this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function() {\n var hsl3 = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl3.h * 360, s: hsl3.s, l: hsl3.l, a: this._a };\n },\n toHslString: function() {\n var hsl3 = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl3.h * 360), s = mathRound(hsl3.s * 100), l = mathRound(hsl3.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return this._a == 1 ? \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" : \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return this._a == 1 ? \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n _applyModification: function(fn, args) {\n var color2 = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color2._r;\n this._g = color2._g;\n this._b = color2._b;\n this.setAlpha(color2._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n };\n tinycolor.fromRatio = function(color2, opts) {\n if (typeof color2 == \"object\") {\n var newColor = {};\n for (var i in color2) {\n if (color2.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color2[i];\n } else {\n newColor[i] = convertToPercentage(color2[i]);\n }\n }\n }\n color2 = newColor;\n }\n return tinycolor(color2, opts);\n };\n function inputToRGB(color2) {\n var rgb2 = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color2 == \"string\") {\n color2 = stringInputToObject(color2);\n }\n if (typeof color2 == \"object\") {\n if (isValidCSSUnit(color2.r) && isValidCSSUnit(color2.g) && isValidCSSUnit(color2.b)) {\n rgb2 = rgbToRgb(color2.r, color2.g, color2.b);\n ok = true;\n format = String(color2.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color2.h) && isValidCSSUnit(color2.s) && isValidCSSUnit(color2.v)) {\n s = convertToPercentage(color2.s);\n v = convertToPercentage(color2.v);\n rgb2 = hsvToRgb(color2.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color2.h) && isValidCSSUnit(color2.s) && isValidCSSUnit(color2.l)) {\n s = convertToPercentage(color2.s);\n l = convertToPercentage(color2.l);\n rgb2 = hslToRgb(color2.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color2.hasOwnProperty(\"a\")) {\n a = color2.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok,\n format: color2.format || format,\n r: mathMin(255, mathMax(rgb2.r, 0)),\n g: mathMin(255, mathMax(rgb2.g, 0)),\n b: mathMin(255, mathMax(rgb2.b, 0)),\n a\n };\n }\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n }\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n if (max == min) {\n h = s = 0;\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h, s, l };\n }\n function hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p2, q2, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p2 + (q2 - p2) * 6 * t;\n if (t < 1 / 2) return q2;\n if (t < 2 / 3) return p2 + (q2 - p2) * (2 / 3 - t) * 6;\n return p2;\n }\n if (s === 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h, s, v };\n }\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math2.floor(h), f = h - i, p = v * (1 - s), q = v * (1 - f * s), t = v * (1 - (1 - f) * s), mod = i % 6, r = [v, q, p, p, t, v][mod], g = [t, v, v, q, p, p][mod], b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n function rgbToHex(r, g, b, allow3Char) {\n var hex2 = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n if (allow3Char && hex2[0].charAt(0) == hex2[0].charAt(1) && hex2[1].charAt(0) == hex2[1].charAt(1) && hex2[2].charAt(0) == hex2[2].charAt(1)) {\n return hex2[0].charAt(0) + hex2[1].charAt(0) + hex2[2].charAt(0);\n }\n return hex2.join(\"\");\n }\n function rgbaToHex(r, g, b, a, allow4Char) {\n var hex2 = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n if (allow4Char && hex2[0].charAt(0) == hex2[0].charAt(1) && hex2[1].charAt(0) == hex2[1].charAt(1) && hex2[2].charAt(0) == hex2[2].charAt(1) && hex2[3].charAt(0) == hex2[3].charAt(1)) {\n return hex2[0].charAt(0) + hex2[1].charAt(0) + hex2[2].charAt(0) + hex2[3].charAt(0);\n }\n return hex2.join(\"\");\n }\n function rgbaToArgbHex(r, g, b, a) {\n var hex2 = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n return hex2.join(\"\");\n }\n tinycolor.equals = function(color1, color2) {\n if (!color1 || !color2) {\n return false;\n }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n };\n function desaturate(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.s -= amount / 100;\n hsl3.s = clamp01(hsl3.s);\n return tinycolor(hsl3);\n }\n function saturate(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.s += amount / 100;\n hsl3.s = clamp01(hsl3.s);\n return tinycolor(hsl3);\n }\n function greyscale(color2) {\n return tinycolor(color2).desaturate(100);\n }\n function lighten(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.l += amount / 100;\n hsl3.l = clamp01(hsl3.l);\n return tinycolor(hsl3);\n }\n function brighten(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb2 = tinycolor(color2).toRgb();\n rgb2.r = mathMax(0, mathMin(255, rgb2.r - mathRound(255 * -(amount / 100))));\n rgb2.g = mathMax(0, mathMin(255, rgb2.g - mathRound(255 * -(amount / 100))));\n rgb2.b = mathMax(0, mathMin(255, rgb2.b - mathRound(255 * -(amount / 100))));\n return tinycolor(rgb2);\n }\n function darken(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.l -= amount / 100;\n hsl3.l = clamp01(hsl3.l);\n return tinycolor(hsl3);\n }\n function spin(color2, amount) {\n var hsl3 = tinycolor(color2).toHsl();\n var hue2 = (hsl3.h + amount) % 360;\n hsl3.h = hue2 < 0 ? 360 + hue2 : hue2;\n return tinycolor(hsl3);\n }\n function complement(color2) {\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.h = (hsl3.h + 180) % 360;\n return tinycolor(hsl3);\n }\n function triad(color2) {\n var hsl3 = tinycolor(color2).toHsl();\n var h = hsl3.h;\n return [\n tinycolor(color2),\n tinycolor({ h: (h + 120) % 360, s: hsl3.s, l: hsl3.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl3.s, l: hsl3.l })\n ];\n }\n function tetrad(color2) {\n var hsl3 = tinycolor(color2).toHsl();\n var h = hsl3.h;\n return [\n tinycolor(color2),\n tinycolor({ h: (h + 90) % 360, s: hsl3.s, l: hsl3.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl3.s, l: hsl3.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl3.s, l: hsl3.l })\n ];\n }\n function splitcomplement(color2) {\n var hsl3 = tinycolor(color2).toHsl();\n var h = hsl3.h;\n return [\n tinycolor(color2),\n tinycolor({ h: (h + 72) % 360, s: hsl3.s, l: hsl3.l }),\n tinycolor({ h: (h + 216) % 360, s: hsl3.s, l: hsl3.l })\n ];\n }\n function analogous(color2, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl3 = tinycolor(color2).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color2)];\n for (hsl3.h = (hsl3.h - (part * results >> 1) + 720) % 360; --results; ) {\n hsl3.h = (hsl3.h + part) % 360;\n ret.push(tinycolor(hsl3));\n }\n return ret;\n }\n function monochromatic(color2, results) {\n results = results || 6;\n var hsv = tinycolor(color2).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({ h, s, v }));\n v = (v + modification) % 1;\n }\n return ret;\n }\n tinycolor.mix = function(color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba3 = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba3);\n };\n tinycolor.readability = function(color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math2.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math2.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n };\n tinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n };\n tinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, { \"level\": level, \"size\": size }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n };\n var names2 = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n };\n var hexNames = tinycolor.hexNames = flip(names2);\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n }\n function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = \"100%\";\n }\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n if (Math2.abs(n - max) < 1e-6) {\n return 1;\n }\n return n % max / parseFloat(max);\n }\n function clamp01(val) {\n return mathMin(1, mathMax(0, val));\n }\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n function isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n }\n function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n }\n function pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n }\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n }\n function convertDecimalToHex(d) {\n return Math2.round(parseFloat(d) * 255).toString(16);\n }\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n var matchers = function() {\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n }();\n function isValidCSSUnit(color2) {\n return !!matchers.CSS_UNIT.exec(color2);\n }\n function stringInputToObject(color2) {\n color2 = color2.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named2 = false;\n if (names2[color2]) {\n color2 = names2[color2];\n named2 = true;\n } else if (color2 == \"transparent\") {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n var match;\n if (match = matchers.rgb.exec(color2)) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if (match = matchers.rgba.exec(color2)) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if (match = matchers.hsl.exec(color2)) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if (match = matchers.hsla.exec(color2)) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if (match = matchers.hsv.exec(color2)) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if (match = matchers.hsva.exec(color2)) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if (match = matchers.hex8.exec(color2)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named2 ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color2)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named2 ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color2)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named2 ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color2)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named2 ? \"name\" : \"hex\"\n };\n }\n return false;\n }\n function validateWCAG2Parms(parms) {\n var level, size;\n parms = parms || { \"level\": \"AA\", \"size\": \"small\" };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return { \"level\": level, \"size\": size };\n }\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n } else if (typeof define === \"function\" && false) {\n define(function() {\n return tinycolor;\n });\n } else {\n window.tinycolor = tinycolor;\n }\n })(Math);\n }\n });\n\n // src/lib/extend.js\n var require_extend = __commonJS({\n \"src/lib/extend.js\"(exports) {\n \"use strict\";\n var isPlainObject = require_is_plain_object();\n var isArray = Array.isArray;\n function primitivesLoopSplice(source, target) {\n var i, value;\n for (i = 0; i < source.length; i++) {\n value = source[i];\n if (value !== null && typeof value === \"object\") {\n return false;\n }\n if (value !== void 0) {\n target[i] = value;\n }\n }\n return true;\n }\n exports.extendFlat = function() {\n return _extend(arguments, false, false, false);\n };\n exports.extendDeep = function() {\n return _extend(arguments, true, false, false);\n };\n exports.extendDeepAll = function() {\n return _extend(arguments, true, true, false);\n };\n exports.extendDeepNoArrays = function() {\n return _extend(arguments, true, false, true);\n };\n function _extend(inputs, isDeep, keepAllKeys, noArrayCopies) {\n var target = inputs[0];\n var length = inputs.length;\n var input, key, src, copy, copyIsArray, clone, allPrimitives;\n if (length === 2 && isArray(target) && isArray(inputs[1]) && target.length === 0) {\n allPrimitives = primitivesLoopSplice(inputs[1], target);\n if (allPrimitives) {\n return target;\n } else {\n target.splice(0, target.length);\n }\n }\n for (var i = 1; i < length; i++) {\n input = inputs[i];\n for (key in input) {\n src = target[key];\n copy = input[key];\n if (noArrayCopies && isArray(copy)) {\n target[key] = copy;\n } else if (isDeep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n target[key] = _extend([clone, copy], isDeep, keepAllKeys, noArrayCopies);\n } else if (typeof copy !== \"undefined\" || keepAllKeys) {\n target[key] = copy;\n }\n }\n }\n return target;\n }\n }\n });\n\n // src/plots/font_attributes.js\n var require_font_attributes = __commonJS({\n \"src/plots/font_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = function(opts) {\n var variantValues = opts.variantValues;\n var editType = opts.editType;\n var colorEditType = opts.colorEditType;\n if (colorEditType === void 0) colorEditType = editType;\n var weight = {\n editType,\n valType: \"integer\",\n min: 1,\n max: 1e3,\n extras: [\"normal\", \"bold\"],\n dflt: \"normal\"\n };\n if (opts.noNumericWeightValues) {\n weight.valType = \"enumerated\";\n weight.values = weight.extras;\n weight.extras = void 0;\n weight.min = void 0;\n weight.max = void 0;\n }\n var attrs = {\n family: {\n valType: \"string\",\n noBlank: true,\n strict: true,\n editType\n },\n size: {\n valType: \"number\",\n min: 1,\n editType\n },\n color: {\n valType: \"color\",\n editType: colorEditType\n },\n weight,\n style: {\n editType,\n valType: \"enumerated\",\n values: [\"normal\", \"italic\"],\n dflt: \"normal\"\n },\n variant: opts.noFontVariant ? void 0 : {\n editType,\n valType: \"enumerated\",\n values: variantValues || [\n \"normal\",\n \"small-caps\",\n \"all-small-caps\",\n \"all-petite-caps\",\n \"petite-caps\",\n \"unicase\"\n ],\n dflt: \"normal\"\n },\n textcase: opts.noFontTextcase ? void 0 : {\n editType,\n valType: \"enumerated\",\n values: [\"normal\", \"word caps\", \"upper\", \"lower\"],\n dflt: \"normal\"\n },\n lineposition: opts.noFontLineposition ? void 0 : {\n editType,\n valType: \"flaglist\",\n flags: [\"under\", \"over\", \"through\"],\n extras: [\"none\"],\n dflt: \"none\"\n },\n shadow: opts.noFontShadow ? void 0 : {\n editType,\n valType: \"string\",\n dflt: opts.autoShadowDflt ? \"auto\" : \"none\"\n },\n editType\n // blank strings so compress_attributes can remove\n // TODO - that's uber hacky... better solution?\n };\n if (opts.autoSize) attrs.size.dflt = \"auto\";\n if (opts.autoColor) attrs.color.dflt = \"auto\";\n if (opts.arrayOk) {\n attrs.family.arrayOk = true;\n attrs.weight.arrayOk = true;\n attrs.style.arrayOk = true;\n if (!opts.noFontVariant) {\n attrs.variant.arrayOk = true;\n }\n if (!opts.noFontTextcase) {\n attrs.textcase.arrayOk = true;\n }\n if (!opts.noFontLineposition) {\n attrs.lineposition.arrayOk = true;\n }\n if (!opts.noFontShadow) {\n attrs.shadow.arrayOk = true;\n }\n attrs.size.arrayOk = true;\n attrs.color.arrayOk = true;\n }\n return attrs;\n };\n }\n });\n\n // src/components/fx/constants.js\n var require_constants = __commonJS({\n \"src/components/fx/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // hover labels for multiple horizontal bars get tilted by this angle\n YANGLE: 60,\n // size and display constants for hover text\n // pixel size of hover arrows\n HOVERARROWSIZE: 6,\n // pixels padding around text\n HOVERTEXTPAD: 3,\n // hover font\n HOVERFONTSIZE: 13,\n HOVERFONT: \"Arial, sans-serif\",\n // minimum time (msec) between hover calls\n HOVERMINTIME: 50,\n // ID suffix (with fullLayout._uid) for hover events in the throttle cache\n HOVERID: \"-hover\"\n };\n }\n });\n\n // src/components/fx/layout_attributes.js\n var require_layout_attributes = __commonJS({\n \"src/components/fx/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants();\n var fontAttrs = require_font_attributes();\n var font = fontAttrs({\n editType: \"none\"\n });\n font.family.dflt = constants.HOVERFONT;\n font.size.dflt = constants.HOVERFONTSIZE;\n module.exports = {\n clickmode: {\n valType: \"flaglist\",\n flags: [\"event\", \"select\"],\n dflt: \"event\",\n editType: \"plot\",\n extras: [\"none\"]\n },\n dragmode: {\n valType: \"enumerated\",\n values: [\n \"zoom\",\n \"pan\",\n \"select\",\n \"lasso\",\n \"drawclosedpath\",\n \"drawopenpath\",\n \"drawline\",\n \"drawrect\",\n \"drawcircle\",\n \"orbit\",\n \"turntable\",\n false\n ],\n dflt: \"zoom\",\n editType: \"modebar\"\n },\n hovermode: {\n valType: \"enumerated\",\n values: [\"x\", \"y\", \"closest\", false, \"x unified\", \"y unified\"],\n dflt: \"closest\",\n editType: \"modebar\"\n },\n hoversubplots: {\n valType: \"enumerated\",\n values: [\"single\", \"overlaying\", \"axis\"],\n dflt: \"overlaying\",\n editType: \"none\"\n },\n hoverdistance: {\n valType: \"integer\",\n min: -1,\n dflt: 20,\n editType: \"none\"\n },\n spikedistance: {\n valType: \"integer\",\n min: -1,\n dflt: -1,\n editType: \"none\"\n },\n hoverlabel: {\n bgcolor: {\n valType: \"color\",\n editType: \"none\"\n },\n bordercolor: {\n valType: \"color\",\n editType: \"none\"\n },\n font,\n grouptitlefont: fontAttrs({\n editType: \"none\"\n }),\n align: {\n valType: \"enumerated\",\n values: [\"left\", \"right\", \"auto\"],\n dflt: \"auto\",\n editType: \"none\"\n },\n namelength: {\n valType: \"integer\",\n min: -1,\n dflt: 15,\n editType: \"none\"\n },\n editType: \"none\"\n },\n selectdirection: {\n valType: \"enumerated\",\n values: [\"h\", \"v\", \"d\", \"any\"],\n dflt: \"any\",\n editType: \"none\"\n }\n };\n }\n });\n\n // src/components/fx/attributes.js\n var require_attributes = __commonJS({\n \"src/components/fx/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var hoverLabelAttrs = require_layout_attributes().hoverlabel;\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n hoverlabel: {\n bgcolor: extendFlat({}, hoverLabelAttrs.bgcolor, {\n arrayOk: true\n }),\n bordercolor: extendFlat({}, hoverLabelAttrs.bordercolor, {\n arrayOk: true\n }),\n font: fontAttrs({\n arrayOk: true,\n editType: \"none\"\n }),\n align: extendFlat({}, hoverLabelAttrs.align, { arrayOk: true }),\n namelength: extendFlat({}, hoverLabelAttrs.namelength, { arrayOk: true }),\n editType: \"none\"\n }\n };\n }\n });\n\n // src/plots/attributes.js\n var require_attributes2 = __commonJS({\n \"src/plots/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var fxAttrs = require_attributes();\n module.exports = {\n type: {\n valType: \"enumerated\",\n values: [],\n // listed dynamically\n dflt: \"scatter\",\n editType: \"calc+clearAxisTypes\",\n _noTemplating: true\n // we handle this at a higher level\n },\n visible: {\n valType: \"enumerated\",\n values: [true, false, \"legendonly\"],\n dflt: true,\n editType: \"calc\"\n },\n showlegend: {\n valType: \"boolean\",\n dflt: true,\n editType: \"style\"\n },\n legend: {\n valType: \"subplotid\",\n dflt: \"legend\",\n editType: \"style\"\n },\n legendgroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"style\"\n },\n legendgrouptitle: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"style\"\n },\n font: fontAttrs({\n editType: \"style\"\n }),\n editType: \"style\"\n },\n legendrank: {\n valType: \"number\",\n dflt: 1e3,\n editType: \"style\"\n },\n legendwidth: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"style\"\n },\n name: {\n valType: \"string\",\n editType: \"style\"\n },\n uid: {\n valType: \"string\",\n editType: \"plot\",\n anim: true\n },\n ids: {\n valType: \"data_array\",\n editType: \"calc\",\n anim: true\n },\n customdata: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n meta: {\n valType: \"any\",\n arrayOk: true,\n editType: \"plot\"\n },\n // N.B. these cannot be 'data_array' as they do not have the same length as\n // other data arrays and arrayOk attributes in general\n //\n // Maybe add another valType:\n // https://github.com/plotly/plotly.js/issues/1894\n selectedpoints: {\n valType: \"any\",\n editType: \"calc\"\n },\n hoverinfo: {\n valType: \"flaglist\",\n flags: [\"x\", \"y\", \"z\", \"text\", \"name\"],\n extras: [\"all\", \"none\", \"skip\"],\n arrayOk: true,\n dflt: \"all\",\n editType: \"none\"\n },\n hoverlabel: fxAttrs.hoverlabel,\n stream: {\n token: {\n valType: \"string\",\n noBlank: true,\n strict: true,\n editType: \"calc\"\n },\n maxpoints: {\n valType: \"number\",\n min: 0,\n max: 1e4,\n dflt: 500,\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n }\n };\n }\n });\n\n // src/components/colorscale/scales.js\n var require_scales = __commonJS({\n \"src/components/colorscale/scales.js\"(exports, module) {\n \"use strict\";\n var tinycolor = require_tinycolor();\n var scales = {\n Greys: [\n [0, \"rgb(0,0,0)\"],\n [1, \"rgb(255,255,255)\"]\n ],\n YlGnBu: [\n [0, \"rgb(8,29,88)\"],\n [0.125, \"rgb(37,52,148)\"],\n [0.25, \"rgb(34,94,168)\"],\n [0.375, \"rgb(29,145,192)\"],\n [0.5, \"rgb(65,182,196)\"],\n [0.625, \"rgb(127,205,187)\"],\n [0.75, \"rgb(199,233,180)\"],\n [0.875, \"rgb(237,248,217)\"],\n [1, \"rgb(255,255,217)\"]\n ],\n Greens: [\n [0, \"rgb(0,68,27)\"],\n [0.125, \"rgb(0,109,44)\"],\n [0.25, \"rgb(35,139,69)\"],\n [0.375, \"rgb(65,171,93)\"],\n [0.5, \"rgb(116,196,118)\"],\n [0.625, \"rgb(161,217,155)\"],\n [0.75, \"rgb(199,233,192)\"],\n [0.875, \"rgb(229,245,224)\"],\n [1, \"rgb(247,252,245)\"]\n ],\n YlOrRd: [\n [0, \"rgb(128,0,38)\"],\n [0.125, \"rgb(189,0,38)\"],\n [0.25, \"rgb(227,26,28)\"],\n [0.375, \"rgb(252,78,42)\"],\n [0.5, \"rgb(253,141,60)\"],\n [0.625, \"rgb(254,178,76)\"],\n [0.75, \"rgb(254,217,118)\"],\n [0.875, \"rgb(255,237,160)\"],\n [1, \"rgb(255,255,204)\"]\n ],\n Bluered: [\n [0, \"rgb(0,0,255)\"],\n [1, \"rgb(255,0,0)\"]\n ],\n // modified RdBu based on\n // http://www.kennethmoreland.com/color-maps/\n RdBu: [\n [0, \"rgb(5,10,172)\"],\n [0.35, \"rgb(106,137,247)\"],\n [0.5, \"rgb(190,190,190)\"],\n [0.6, \"rgb(220,170,132)\"],\n [0.7, \"rgb(230,145,90)\"],\n [1, \"rgb(178,10,28)\"]\n ],\n // Scale for non-negative numeric values\n Reds: [\n [0, \"rgb(220,220,220)\"],\n [0.2, \"rgb(245,195,157)\"],\n [0.4, \"rgb(245,160,105)\"],\n [1, \"rgb(178,10,28)\"]\n ],\n // Scale for non-positive numeric values\n Blues: [\n [0, \"rgb(5,10,172)\"],\n [0.35, \"rgb(40,60,190)\"],\n [0.5, \"rgb(70,100,245)\"],\n [0.6, \"rgb(90,120,245)\"],\n [0.7, \"rgb(106,137,247)\"],\n [1, \"rgb(220,220,220)\"]\n ],\n Picnic: [\n [0, \"rgb(0,0,255)\"],\n [0.1, \"rgb(51,153,255)\"],\n [0.2, \"rgb(102,204,255)\"],\n [0.3, \"rgb(153,204,255)\"],\n [0.4, \"rgb(204,204,255)\"],\n [0.5, \"rgb(255,255,255)\"],\n [0.6, \"rgb(255,204,255)\"],\n [0.7, \"rgb(255,153,255)\"],\n [0.8, \"rgb(255,102,204)\"],\n [0.9, \"rgb(255,102,102)\"],\n [1, \"rgb(255,0,0)\"]\n ],\n Rainbow: [\n [0, \"rgb(150,0,90)\"],\n [0.125, \"rgb(0,0,200)\"],\n [0.25, \"rgb(0,25,255)\"],\n [0.375, \"rgb(0,152,255)\"],\n [0.5, \"rgb(44,255,150)\"],\n [0.625, \"rgb(151,255,0)\"],\n [0.75, \"rgb(255,234,0)\"],\n [0.875, \"rgb(255,111,0)\"],\n [1, \"rgb(255,0,0)\"]\n ],\n Portland: [\n [0, \"rgb(12,51,131)\"],\n [0.25, \"rgb(10,136,186)\"],\n [0.5, \"rgb(242,211,56)\"],\n [0.75, \"rgb(242,143,56)\"],\n [1, \"rgb(217,30,30)\"]\n ],\n Jet: [\n [0, \"rgb(0,0,131)\"],\n [0.125, \"rgb(0,60,170)\"],\n [0.375, \"rgb(5,255,255)\"],\n [0.625, \"rgb(255,255,0)\"],\n [0.875, \"rgb(250,0,0)\"],\n [1, \"rgb(128,0,0)\"]\n ],\n Hot: [\n [0, \"rgb(0,0,0)\"],\n [0.3, \"rgb(230,0,0)\"],\n [0.6, \"rgb(255,210,0)\"],\n [1, \"rgb(255,255,255)\"]\n ],\n Blackbody: [\n [0, \"rgb(0,0,0)\"],\n [0.2, \"rgb(230,0,0)\"],\n [0.4, \"rgb(230,210,0)\"],\n [0.7, \"rgb(255,255,255)\"],\n [1, \"rgb(160,200,255)\"]\n ],\n Earth: [\n [0, \"rgb(0,0,130)\"],\n [0.1, \"rgb(0,180,180)\"],\n [0.2, \"rgb(40,210,40)\"],\n [0.4, \"rgb(230,230,50)\"],\n [0.6, \"rgb(120,70,20)\"],\n [1, \"rgb(255,255,255)\"]\n ],\n Electric: [\n [0, \"rgb(0,0,0)\"],\n [0.15, \"rgb(30,0,100)\"],\n [0.4, \"rgb(120,0,100)\"],\n [0.6, \"rgb(160,90,0)\"],\n [0.8, \"rgb(230,200,0)\"],\n [1, \"rgb(255,250,220)\"]\n ],\n Viridis: [\n [0, \"#440154\"],\n [0.06274509803921569, \"#48186a\"],\n [0.12549019607843137, \"#472d7b\"],\n [0.18823529411764706, \"#424086\"],\n [0.25098039215686274, \"#3b528b\"],\n [0.3137254901960784, \"#33638d\"],\n [0.3764705882352941, \"#2c728e\"],\n [0.4392156862745098, \"#26828e\"],\n [0.5019607843137255, \"#21918c\"],\n [0.5647058823529412, \"#1fa088\"],\n [0.6274509803921569, \"#28ae80\"],\n [0.6901960784313725, \"#3fbc73\"],\n [0.7529411764705882, \"#5ec962\"],\n [0.8156862745098039, \"#84d44b\"],\n [0.8784313725490196, \"#addc30\"],\n [0.9411764705882353, \"#d8e219\"],\n [1, \"#fde725\"]\n ],\n Cividis: [\n [0, \"rgb(0,32,76)\"],\n [0.058824, \"rgb(0,42,102)\"],\n [0.117647, \"rgb(0,52,110)\"],\n [0.176471, \"rgb(39,63,108)\"],\n [0.235294, \"rgb(60,74,107)\"],\n [0.294118, \"rgb(76,85,107)\"],\n [0.352941, \"rgb(91,95,109)\"],\n [0.411765, \"rgb(104,106,112)\"],\n [0.470588, \"rgb(117,117,117)\"],\n [0.529412, \"rgb(131,129,120)\"],\n [0.588235, \"rgb(146,140,120)\"],\n [0.647059, \"rgb(161,152,118)\"],\n [0.705882, \"rgb(176,165,114)\"],\n [0.764706, \"rgb(192,177,109)\"],\n [0.823529, \"rgb(209,191,102)\"],\n [0.882353, \"rgb(225,204,92)\"],\n [0.941176, \"rgb(243,219,79)\"],\n [1, \"rgb(255,233,69)\"]\n ]\n };\n var defaultScale = scales.RdBu;\n function getScale(scl, dflt) {\n if (!dflt) dflt = defaultScale;\n if (!scl) return dflt;\n function parseScale() {\n try {\n scl = scales[scl] || JSON.parse(scl);\n } catch (e) {\n scl = dflt;\n }\n }\n if (typeof scl === \"string\") {\n parseScale();\n if (typeof scl === \"string\") parseScale();\n }\n if (!isValidScaleArray(scl)) return dflt;\n return scl;\n }\n function isValidScaleArray(scl) {\n var highestVal = 0;\n if (!Array.isArray(scl) || scl.length < 2) return false;\n if (!scl[0] || !scl[scl.length - 1]) return false;\n if (+scl[0][0] !== 0 || +scl[scl.length - 1][0] !== 1) return false;\n for (var i = 0; i < scl.length; i++) {\n var si = scl[i];\n if (si.length !== 2 || +si[0] < highestVal || !tinycolor(si[1]).isValid()) {\n return false;\n }\n highestVal = +si[0];\n }\n return true;\n }\n function isValidScale(scl) {\n if (scales[scl] !== void 0) return true;\n else return isValidScaleArray(scl);\n }\n module.exports = {\n scales,\n defaultScale,\n get: getScale,\n isValid: isValidScale\n };\n }\n });\n\n // src/components/color/attributes.js\n var require_attributes3 = __commonJS({\n \"src/components/color/attributes.js\"(exports) {\n \"use strict\";\n exports.defaults = [\n \"#1f77b4\",\n // muted blue\n \"#ff7f0e\",\n // safety orange\n \"#2ca02c\",\n // cooked asparagus green\n \"#d62728\",\n // brick red\n \"#9467bd\",\n // muted purple\n \"#8c564b\",\n // chestnut brown\n \"#e377c2\",\n // raspberry yogurt pink\n \"#7f7f7f\",\n // middle gray\n \"#bcbd22\",\n // curry yellow-green\n \"#17becf\"\n // blue-teal\n ];\n exports.defaultLine = \"#444\";\n exports.lightLine = \"#eee\";\n exports.background = \"#fff\";\n exports.borderLine = \"#BEC8D9\";\n exports.lightFraction = 100 * (14 - 4) / (15 - 4);\n }\n });\n\n // src/components/color/index.js\n var require_color = __commonJS({\n \"src/components/color/index.js\"(exports, module) {\n \"use strict\";\n var tinycolor = require_tinycolor();\n var isNumeric = require_fast_isnumeric();\n var isTypedArray = require_array().isTypedArray;\n var color2 = module.exports = {};\n var colorAttrs = require_attributes3();\n color2.defaults = colorAttrs.defaults;\n var defaultLine = color2.defaultLine = colorAttrs.defaultLine;\n color2.lightLine = colorAttrs.lightLine;\n var background = color2.background = colorAttrs.background;\n color2.tinyRGB = function(tc) {\n var c = tc.toRgb();\n return \"rgb(\" + Math.round(c.r) + \", \" + Math.round(c.g) + \", \" + Math.round(c.b) + \")\";\n };\n color2.rgb = function(cstr) {\n return color2.tinyRGB(tinycolor(cstr));\n };\n color2.opacity = function(cstr) {\n return cstr ? tinycolor(cstr).getAlpha() : 0;\n };\n color2.addOpacity = function(cstr, op) {\n var c = tinycolor(cstr).toRgb();\n return \"rgba(\" + Math.round(c.r) + \", \" + Math.round(c.g) + \", \" + Math.round(c.b) + \", \" + op + \")\";\n };\n color2.combine = function(front, back) {\n var fc = tinycolor(front).toRgb();\n if (fc.a === 1) return tinycolor(front).toRgbString();\n var bc = tinycolor(back || background).toRgb();\n var bcflat = bc.a === 1 ? bc : {\n r: 255 * (1 - bc.a) + bc.r * bc.a,\n g: 255 * (1 - bc.a) + bc.g * bc.a,\n b: 255 * (1 - bc.a) + bc.b * bc.a\n };\n var fcflat = {\n r: bcflat.r * (1 - fc.a) + fc.r * fc.a,\n g: bcflat.g * (1 - fc.a) + fc.g * fc.a,\n b: bcflat.b * (1 - fc.a) + fc.b * fc.a\n };\n return tinycolor(fcflat).toRgbString();\n };\n color2.interpolate = function(first, second, factor) {\n var fc = tinycolor(first).toRgb();\n var sc = tinycolor(second).toRgb();\n var ic = {\n r: factor * fc.r + (1 - factor) * sc.r,\n g: factor * fc.g + (1 - factor) * sc.g,\n b: factor * fc.b + (1 - factor) * sc.b\n };\n return tinycolor(ic).toRgbString();\n };\n color2.contrast = function(cstr, lightAmount, darkAmount) {\n var tc = tinycolor(cstr);\n if (tc.getAlpha() !== 1) tc = tinycolor(color2.combine(cstr, background));\n var newColor = tc.isDark() ? lightAmount ? tc.lighten(lightAmount) : background : darkAmount ? tc.darken(darkAmount) : defaultLine;\n return newColor.toString();\n };\n color2.stroke = function(s, c) {\n var tc = tinycolor(c);\n s.style({ stroke: color2.tinyRGB(tc), \"stroke-opacity\": tc.getAlpha() });\n };\n color2.fill = function(s, c) {\n var tc = tinycolor(c);\n s.style({\n fill: color2.tinyRGB(tc),\n \"fill-opacity\": tc.getAlpha()\n });\n };\n color2.clean = function(container) {\n if (!container || typeof container !== \"object\") return;\n var keys = Object.keys(container);\n var i, j, key, val;\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n val = container[key];\n if (key.substr(key.length - 5) === \"color\") {\n if (Array.isArray(val)) {\n for (j = 0; j < val.length; j++) val[j] = cleanOne(val[j]);\n } else container[key] = cleanOne(val);\n } else if (key.substr(key.length - 10) === \"colorscale\" && Array.isArray(val)) {\n for (j = 0; j < val.length; j++) {\n if (Array.isArray(val[j])) val[j][1] = cleanOne(val[j][1]);\n }\n } else if (Array.isArray(val)) {\n var el0 = val[0];\n if (!Array.isArray(el0) && el0 && typeof el0 === \"object\") {\n for (j = 0; j < val.length; j++) color2.clean(val[j]);\n }\n } else if (val && typeof val === \"object\" && !isTypedArray(val)) color2.clean(val);\n }\n };\n function cleanOne(val) {\n if (isNumeric(val) || typeof val !== \"string\") return val;\n var valTrim = val.trim();\n if (valTrim.substr(0, 3) !== \"rgb\") return val;\n var match = valTrim.match(/^rgba?\\s*\\(([^()]*)\\)$/);\n if (!match) return val;\n var parts = match[1].trim().split(/\\s*[\\s,]\\s*/);\n var rgba3 = valTrim.charAt(3) === \"a\" && parts.length === 4;\n if (!rgba3 && parts.length !== 3) return val;\n for (var i = 0; i < parts.length; i++) {\n if (!parts[i].length) return val;\n parts[i] = Number(parts[i]);\n if (!(parts[i] >= 0)) {\n return val;\n }\n if (i === 3) {\n if (parts[i] > 1) parts[i] = 1;\n } else if (parts[i] >= 1) {\n return val;\n }\n }\n var rgbStr = Math.round(parts[0] * 255) + \", \" + Math.round(parts[1] * 255) + \", \" + Math.round(parts[2] * 255);\n if (rgba3) return \"rgba(\" + rgbStr + \", \" + parts[3] + \")\";\n return \"rgb(\" + rgbStr + \")\";\n }\n }\n });\n\n // src/constants/interactions.js\n var require_interactions = __commonJS({\n \"src/constants/interactions.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n /**\n * Timing information for interactive elements\n */\n SHOW_PLACEHOLDER: 100,\n HIDE_PLACEHOLDER: 1e3,\n // opacity dimming fraction for points that are not in selection\n DESELECTDIM: 0.2\n };\n }\n });\n\n // src/lib/regex.js\n var require_regex = __commonJS({\n \"src/lib/regex.js\"(exports) {\n \"use strict\";\n exports.counter = function(head, tail, openEnded, matchBeginning) {\n var fullTail = (tail || \"\") + (openEnded ? \"\" : \"$\");\n var startWithPrefix = matchBeginning === false ? \"\" : \"^\";\n if (head === \"xy\") {\n return new RegExp(startWithPrefix + \"x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?\" + fullTail);\n }\n return new RegExp(startWithPrefix + head + \"([2-9]|[1-9][0-9]+)?\" + fullTail);\n };\n }\n });\n\n // src/lib/coerce.js\n var require_coerce = __commonJS({\n \"src/lib/coerce.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var extendFlat = require_extend().extendFlat;\n var baseTraceAttrs = require_attributes2();\n var colorscales = require_scales();\n var Color2 = require_color();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var nestedProperty = require_nested_property();\n var counterRegex = require_regex().counter;\n var modHalf = require_mod().modHalf;\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n var isTypedArraySpec = require_array().isTypedArraySpec;\n var decodeTypedArraySpec = require_array().decodeTypedArraySpec;\n exports.valObjectMeta = {\n data_array: {\n // You can use *dflt=[] to force said array to exist though.\n coerceFunction: function(v, propOut, dflt) {\n propOut.set(\n isArrayOrTypedArray(v) ? v : isTypedArraySpec(v) ? decodeTypedArraySpec(v) : dflt\n );\n }\n },\n enumerated: {\n coerceFunction: function(v, propOut, dflt, opts) {\n if (opts.coerceNumber) v = +v;\n if (opts.values.indexOf(v) === -1) propOut.set(dflt);\n else propOut.set(v);\n },\n validateFunction: function(v, opts) {\n if (opts.coerceNumber) v = +v;\n var values = opts.values;\n for (var i = 0; i < values.length; i++) {\n var k = String(values[i]);\n if (k.charAt(0) === \"/\" && k.charAt(k.length - 1) === \"/\") {\n var regex = new RegExp(k.substr(1, k.length - 2));\n if (regex.test(v)) return true;\n } else if (v === values[i]) return true;\n }\n return false;\n }\n },\n boolean: {\n coerceFunction: function(v, propOut, dflt) {\n if (v === true || v === false) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n number: {\n coerceFunction: function(v, propOut, dflt, opts) {\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (!isNumeric(v) || opts.min !== void 0 && v < opts.min || opts.max !== void 0 && v > opts.max) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n integer: {\n coerceFunction: function(v, propOut, dflt, opts) {\n if ((opts.extras || []).indexOf(v) !== -1) {\n propOut.set(v);\n return;\n }\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (v % 1 || !isNumeric(v) || opts.min !== void 0 && v < opts.min || opts.max !== void 0 && v > opts.max) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n string: {\n // TODO 'values shouldn't be in there (edge case: 'dash' in Scatter)\n coerceFunction: function(v, propOut, dflt, opts) {\n if (typeof v !== \"string\") {\n var okToCoerce = typeof v === \"number\";\n if (opts.strict === true || !okToCoerce) propOut.set(dflt);\n else propOut.set(String(v));\n } else if (opts.noBlank && !v) propOut.set(dflt);\n else propOut.set(v);\n }\n },\n color: {\n coerceFunction: function(v, propOut, dflt) {\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (tinycolor(v).isValid()) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorlist: {\n coerceFunction: function(v, propOut, dflt) {\n function isColor(color2) {\n return tinycolor(color2).isValid();\n }\n if (!Array.isArray(v) || !v.length) propOut.set(dflt);\n else if (v.every(isColor)) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorscale: {\n coerceFunction: function(v, propOut, dflt) {\n propOut.set(colorscales.get(v, dflt));\n }\n },\n angle: {\n coerceFunction: function(v, propOut, dflt) {\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (v === \"auto\") propOut.set(\"auto\");\n else if (!isNumeric(v)) propOut.set(dflt);\n else propOut.set(modHalf(+v, 360));\n }\n },\n subplotid: {\n coerceFunction: function(v, propOut, dflt, opts) {\n var regex = opts.regex || counterRegex(dflt);\n if (typeof v === \"string\" && regex.test(v)) {\n propOut.set(v);\n return;\n }\n propOut.set(dflt);\n },\n validateFunction: function(v, opts) {\n var dflt = opts.dflt;\n if (v === dflt) return true;\n if (typeof v !== \"string\") return false;\n if (counterRegex(dflt).test(v)) return true;\n return false;\n }\n },\n flaglist: {\n coerceFunction: function(v, propOut, dflt, opts) {\n if ((opts.extras || []).indexOf(v) !== -1) {\n propOut.set(v);\n return;\n }\n if (typeof v !== \"string\") {\n propOut.set(dflt);\n return;\n }\n var vParts = v.split(\"+\");\n var i = 0;\n while (i < vParts.length) {\n var vi = vParts[i];\n if (opts.flags.indexOf(vi) === -1 || vParts.indexOf(vi) < i) {\n vParts.splice(i, 1);\n } else i++;\n }\n if (!vParts.length) propOut.set(dflt);\n else propOut.set(vParts.join(\"+\"));\n }\n },\n any: {\n coerceFunction: function(v, propOut, dflt) {\n if (v === void 0) {\n propOut.set(dflt);\n } else {\n propOut.set(\n isTypedArraySpec(v) ? decodeTypedArraySpec(v) : v\n );\n }\n }\n },\n info_array: {\n // set `dimensions=2` for a 2D array or '1-2' for either\n // `items` may be a single object instead of an array, in which case\n // `freeLength` must be true.\n // if `dimensions='1-2'` and items is a 1D array, then the value can\n // either be a matching 1D array or an array of such matching 1D arrays\n coerceFunction: function(v, propOut, dflt, opts) {\n function coercePart(v2, opts2, dflt2) {\n var out;\n var propPart = { set: function(v3) {\n out = v3;\n } };\n if (dflt2 === void 0) dflt2 = opts2.dflt;\n exports.valObjectMeta[opts2.valType].coerceFunction(v2, propPart, dflt2, opts2);\n return out;\n }\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (!isArrayOrTypedArray(v)) {\n propOut.set(dflt);\n return;\n }\n var twoD = opts.dimensions === 2 || opts.dimensions === \"1-2\" && Array.isArray(v) && isArrayOrTypedArray(v[0]);\n var items = opts.items;\n var vOut = [];\n var arrayItems = Array.isArray(items);\n var arrayItems2D = arrayItems && twoD && isArrayOrTypedArray(items[0]);\n var innerItemsOnly = twoD && arrayItems && !arrayItems2D;\n var len = arrayItems && !innerItemsOnly ? items.length : v.length;\n var i, j, row, item, len2, vNew;\n dflt = Array.isArray(dflt) ? dflt : [];\n if (twoD) {\n for (i = 0; i < len; i++) {\n vOut[i] = [];\n row = isArrayOrTypedArray(v[i]) ? v[i] : [];\n if (innerItemsOnly) len2 = items.length;\n else if (arrayItems) len2 = items[i].length;\n else len2 = row.length;\n for (j = 0; j < len2; j++) {\n if (innerItemsOnly) item = items[j];\n else if (arrayItems) item = items[i][j];\n else item = items;\n vNew = coercePart(row[j], item, (dflt[i] || [])[j]);\n if (vNew !== void 0) vOut[i][j] = vNew;\n }\n }\n } else {\n for (i = 0; i < len; i++) {\n vNew = coercePart(v[i], arrayItems ? items[i] : items, dflt[i]);\n if (vNew !== void 0) vOut[i] = vNew;\n }\n }\n propOut.set(vOut);\n },\n validateFunction: function(v, opts) {\n if (!isArrayOrTypedArray(v)) return false;\n var items = opts.items;\n var arrayItems = Array.isArray(items);\n var twoD = opts.dimensions === 2;\n if (!opts.freeLength && v.length !== items.length) return false;\n for (var i = 0; i < v.length; i++) {\n if (twoD) {\n if (!isArrayOrTypedArray(v[i]) || !opts.freeLength && v[i].length !== items[i].length) {\n return false;\n }\n for (var j = 0; j < v[i].length; j++) {\n if (!validate(v[i][j], arrayItems ? items[i][j] : items)) {\n return false;\n }\n }\n } else if (!validate(v[i], arrayItems ? items[i] : items)) return false;\n }\n return true;\n }\n }\n };\n exports.coerce = function(containerIn, containerOut, attributes, attribute, dflt) {\n var opts = nestedProperty(attributes, attribute).get();\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = nestedProperty(containerOut, attribute);\n var v = propIn.get();\n var template = containerOut._template;\n if (v === void 0 && template) {\n v = nestedProperty(template, attribute).get();\n template = 0;\n }\n if (dflt === void 0) dflt = opts.dflt;\n if (opts.arrayOk) {\n if (isArrayOrTypedArray(v)) {\n propOut.set(v);\n return v;\n } else {\n if (isTypedArraySpec(v)) {\n v = decodeTypedArraySpec(v);\n propOut.set(v);\n return v;\n }\n }\n }\n var coerceFunction = exports.valObjectMeta[opts.valType].coerceFunction;\n coerceFunction(v, propOut, dflt, opts);\n var out = propOut.get();\n if (template && out === dflt && !validate(v, opts)) {\n v = nestedProperty(template, attribute).get();\n coerceFunction(v, propOut, dflt, opts);\n out = propOut.get();\n }\n return out;\n };\n exports.coerce2 = function(containerIn, containerOut, attributes, attribute, dflt) {\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = exports.coerce(containerIn, containerOut, attributes, attribute, dflt);\n var valIn = propIn.get();\n return valIn !== void 0 && valIn !== null ? propOut : false;\n };\n exports.coerceFont = function(coerce, attr, dfltObj, opts) {\n if (!opts) opts = {};\n dfltObj = extendFlat({}, dfltObj);\n dfltObj = extendFlat(dfltObj, opts.overrideDflt || {});\n var out = {\n family: coerce(attr + \".family\", dfltObj.family),\n size: coerce(attr + \".size\", dfltObj.size),\n color: coerce(attr + \".color\", dfltObj.color),\n weight: coerce(attr + \".weight\", dfltObj.weight),\n style: coerce(attr + \".style\", dfltObj.style)\n };\n if (!opts.noFontVariant) out.variant = coerce(attr + \".variant\", dfltObj.variant);\n if (!opts.noFontLineposition) out.lineposition = coerce(attr + \".lineposition\", dfltObj.lineposition);\n if (!opts.noFontTextcase) out.textcase = coerce(attr + \".textcase\", dfltObj.textcase);\n if (!opts.noFontShadow) {\n var dfltShadow = dfltObj.shadow;\n if (dfltShadow === \"none\" && opts.autoShadowDflt) {\n dfltShadow = \"auto\";\n }\n out.shadow = coerce(attr + \".shadow\", dfltShadow);\n }\n return out;\n };\n exports.coercePattern = function(coerce, attr, markerColor, hasMarkerColorscale) {\n var shape = coerce(attr + \".shape\");\n if (shape) {\n coerce(attr + \".solidity\");\n coerce(attr + \".size\");\n var fillmode = coerce(attr + \".fillmode\");\n var isOverlay = fillmode === \"overlay\";\n if (!hasMarkerColorscale) {\n var bgcolor = coerce(\n attr + \".bgcolor\",\n isOverlay ? markerColor : void 0\n );\n coerce(\n attr + \".fgcolor\",\n isOverlay ? Color2.contrast(bgcolor) : markerColor\n );\n }\n coerce(\n attr + \".fgopacity\",\n isOverlay ? 0.5 : 1\n );\n }\n };\n exports.coerceHoverinfo = function(traceIn, traceOut, layoutOut) {\n var moduleAttrs = traceOut._module.attributes;\n var attrs = moduleAttrs.hoverinfo ? moduleAttrs : baseTraceAttrs;\n var valObj = attrs.hoverinfo;\n var dflt;\n if (layoutOut._dataLength === 1) {\n var flags = valObj.dflt === \"all\" ? valObj.flags.slice() : valObj.dflt.split(\"+\");\n flags.splice(flags.indexOf(\"name\"), 1);\n dflt = flags.join(\"+\");\n }\n return exports.coerce(traceIn, traceOut, attrs, \"hoverinfo\", dflt);\n };\n exports.coerceSelectionMarkerOpacity = function(traceOut, coerce) {\n if (!traceOut.marker) return;\n var mo = traceOut.marker.opacity;\n if (mo === void 0) return;\n var smoDflt;\n var usmoDflt;\n if (!isArrayOrTypedArray(mo) && !traceOut.selected && !traceOut.unselected) {\n smoDflt = mo;\n usmoDflt = DESELECTDIM * mo;\n }\n coerce(\"selected.marker.opacity\", smoDflt);\n coerce(\"unselected.marker.opacity\", usmoDflt);\n };\n function validate(value, opts) {\n var valObjectDef = exports.valObjectMeta[opts.valType];\n if (opts.arrayOk && isArrayOrTypedArray(value)) return true;\n if (valObjectDef.validateFunction) {\n return valObjectDef.validateFunction(value, opts);\n }\n var failed = {};\n var out = failed;\n var propMock = { set: function(v) {\n out = v;\n } };\n valObjectDef.coerceFunction(value, propMock, failed, opts);\n return out !== failed;\n }\n exports.validate = validate;\n }\n });\n\n // src/plot_api/plot_config.js\n var require_plot_config = __commonJS({\n \"src/plot_api/plot_config.js\"(exports, module) {\n \"use strict\";\n var configAttributes = {\n staticPlot: {\n valType: \"boolean\",\n dflt: false\n },\n typesetMath: {\n valType: \"boolean\",\n dflt: true\n },\n plotlyServerURL: {\n valType: \"string\",\n dflt: \"\"\n },\n editable: {\n valType: \"boolean\",\n dflt: false\n },\n edits: {\n annotationPosition: {\n valType: \"boolean\",\n dflt: false\n },\n annotationTail: {\n valType: \"boolean\",\n dflt: false\n },\n annotationText: {\n valType: \"boolean\",\n dflt: false\n },\n axisTitleText: {\n valType: \"boolean\",\n dflt: false\n },\n colorbarPosition: {\n valType: \"boolean\",\n dflt: false\n },\n colorbarTitleText: {\n valType: \"boolean\",\n dflt: false\n },\n legendPosition: {\n valType: \"boolean\",\n dflt: false\n },\n legendText: {\n valType: \"boolean\",\n dflt: false\n },\n shapePosition: {\n valType: \"boolean\",\n dflt: false\n },\n titleText: {\n valType: \"boolean\",\n dflt: false\n }\n },\n editSelection: {\n valType: \"boolean\",\n dflt: true\n },\n autosizable: {\n valType: \"boolean\",\n dflt: false\n },\n responsive: {\n valType: \"boolean\",\n dflt: false\n },\n fillFrame: {\n valType: \"boolean\",\n dflt: false\n },\n frameMargins: {\n valType: \"number\",\n dflt: 0,\n min: 0,\n max: 0.5\n },\n scrollZoom: {\n valType: \"flaglist\",\n flags: [\"cartesian\", \"gl3d\", \"geo\", \"mapbox\", \"map\"],\n extras: [true, false],\n dflt: \"gl3d+geo+map\"\n },\n doubleClick: {\n valType: \"enumerated\",\n values: [false, \"reset\", \"autosize\", \"reset+autosize\"],\n dflt: \"reset+autosize\"\n },\n doubleClickDelay: {\n valType: \"number\",\n dflt: 300,\n min: 0\n },\n showAxisDragHandles: {\n valType: \"boolean\",\n dflt: true\n },\n showAxisRangeEntryBoxes: {\n valType: \"boolean\",\n dflt: true\n },\n showTips: {\n valType: \"boolean\",\n dflt: true\n },\n showLink: {\n valType: \"boolean\",\n dflt: false\n },\n linkText: {\n valType: \"string\",\n dflt: \"Edit chart\",\n noBlank: true\n },\n sendData: {\n valType: \"boolean\",\n dflt: true\n },\n showSources: {\n valType: \"any\",\n dflt: false\n },\n displayModeBar: {\n valType: \"enumerated\",\n values: [\"hover\", true, false],\n dflt: \"hover\"\n },\n showSendToCloud: {\n valType: \"boolean\",\n dflt: false\n },\n showEditInChartStudio: {\n valType: \"boolean\",\n dflt: false\n },\n modeBarButtonsToRemove: {\n valType: \"any\",\n dflt: []\n },\n modeBarButtonsToAdd: {\n valType: \"any\",\n dflt: []\n },\n modeBarButtons: {\n valType: \"any\",\n dflt: false\n },\n toImageButtonOptions: {\n valType: \"any\",\n dflt: {}\n },\n displaylogo: {\n valType: \"boolean\",\n dflt: true\n },\n watermark: {\n valType: \"boolean\",\n dflt: false\n },\n plotGlPixelRatio: {\n valType: \"number\",\n dflt: 2,\n min: 1,\n max: 4\n },\n setBackground: {\n valType: \"any\",\n dflt: \"transparent\"\n },\n topojsonURL: {\n valType: \"string\",\n noBlank: true,\n dflt: \"https://cdn.plot.ly/\"\n },\n mapboxAccessToken: {\n valType: \"string\",\n dflt: null\n },\n logging: {\n valType: \"integer\",\n min: 0,\n max: 2,\n dflt: 1\n },\n notifyOnLogging: {\n valType: \"integer\",\n min: 0,\n max: 2,\n dflt: 0\n },\n queueLength: {\n valType: \"integer\",\n min: 0,\n dflt: 0\n },\n locale: {\n valType: \"string\",\n dflt: \"en-US\"\n },\n locales: {\n valType: \"any\",\n dflt: {}\n }\n };\n var dfltConfig = {};\n function crawl(src, target) {\n for (var k in src) {\n var obj = src[k];\n if (obj.valType) {\n target[k] = obj.dflt;\n } else {\n if (!target[k]) {\n target[k] = {};\n }\n crawl(obj, target[k]);\n }\n }\n }\n crawl(configAttributes, dfltConfig);\n module.exports = {\n configAttributes,\n dfltConfig\n };\n }\n });\n\n // src/lib/notifier.js\n var require_notifier = __commonJS({\n \"src/lib/notifier.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var NOTEDATA = [];\n module.exports = function(text, displayLength) {\n if (NOTEDATA.indexOf(text) !== -1) return;\n NOTEDATA.push(text);\n var ts = 1e3;\n if (isNumeric(displayLength)) ts = displayLength;\n else if (displayLength === \"long\") ts = 3e3;\n var notifierContainer = d3.select(\"body\").selectAll(\".plotly-notifier\").data([0]);\n notifierContainer.enter().append(\"div\").classed(\"plotly-notifier\", true);\n var notes = notifierContainer.selectAll(\".notifier-note\").data(NOTEDATA);\n function killNote(transition) {\n transition.duration(700).style(\"opacity\", 0).each(\"end\", function(thisText) {\n var thisIndex = NOTEDATA.indexOf(thisText);\n if (thisIndex !== -1) NOTEDATA.splice(thisIndex, 1);\n d3.select(this).remove();\n });\n }\n notes.enter().append(\"div\").classed(\"notifier-note\", true).style(\"opacity\", 0).each(function(thisText) {\n var note = d3.select(this);\n note.append(\"button\").classed(\"notifier-close\", true).html(\"×\").on(\"click\", function() {\n note.transition().call(killNote);\n });\n var p = note.append(\"p\");\n var lines = thisText.split(//g);\n for (var i = 0; i < lines.length; i++) {\n if (i) p.append(\"br\");\n p.append(\"span\").text(lines[i]);\n }\n if (displayLength === \"stick\") {\n note.transition().duration(350).style(\"opacity\", 1);\n } else {\n note.transition().duration(700).style(\"opacity\", 1).transition().delay(ts).call(killNote);\n }\n });\n };\n }\n });\n\n // src/lib/loggers.js\n var require_loggers = __commonJS({\n \"src/lib/loggers.js\"(exports, module) {\n \"use strict\";\n var dfltConfig = require_plot_config().dfltConfig;\n var notifier = require_notifier();\n var loggers = module.exports = {};\n loggers.log = function() {\n var i;\n if (dfltConfig.logging > 1) {\n var messages = [\"LOG:\"];\n for (i = 0; i < arguments.length; i++) {\n messages.push(arguments[i]);\n }\n console.trace.apply(console, messages);\n }\n if (dfltConfig.notifyOnLogging > 1) {\n var lines = [];\n for (i = 0; i < arguments.length; i++) {\n lines.push(arguments[i]);\n }\n notifier(lines.join(\"
\"), \"long\");\n }\n };\n loggers.warn = function() {\n var i;\n if (dfltConfig.logging > 0) {\n var messages = [\"WARN:\"];\n for (i = 0; i < arguments.length; i++) {\n messages.push(arguments[i]);\n }\n console.trace.apply(console, messages);\n }\n if (dfltConfig.notifyOnLogging > 0) {\n var lines = [];\n for (i = 0; i < arguments.length; i++) {\n lines.push(arguments[i]);\n }\n notifier(lines.join(\"
\"), \"stick\");\n }\n };\n loggers.error = function() {\n var i;\n if (dfltConfig.logging > 0) {\n var messages = [\"ERROR:\"];\n for (i = 0; i < arguments.length; i++) {\n messages.push(arguments[i]);\n }\n console.error.apply(console, messages);\n }\n if (dfltConfig.notifyOnLogging > 0) {\n var lines = [];\n for (i = 0; i < arguments.length; i++) {\n lines.push(arguments[i]);\n }\n notifier(lines.join(\"
\"), \"stick\");\n }\n };\n }\n });\n\n // src/lib/noop.js\n var require_noop = __commonJS({\n \"src/lib/noop.js\"(exports, module) {\n \"use strict\";\n module.exports = function noop() {\n };\n }\n });\n\n // src/lib/push_unique.js\n var require_push_unique = __commonJS({\n \"src/lib/push_unique.js\"(exports, module) {\n \"use strict\";\n module.exports = function pushUnique(array, item) {\n if (item instanceof RegExp) {\n var itemStr = item.toString();\n for (var i = 0; i < array.length; i++) {\n if (array[i] instanceof RegExp && array[i].toString() === itemStr) {\n return array;\n }\n }\n array.push(item);\n } else if ((item || item === 0) && array.indexOf(item) === -1) array.push(item);\n return array;\n };\n }\n });\n\n // node_modules/gl-mat4/create.js\n var require_create = __commonJS({\n \"node_modules/gl-mat4/create.js\"(exports, module) {\n module.exports = create;\n function create() {\n var out = new Float32Array(16);\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/clone.js\n var require_clone = __commonJS({\n \"node_modules/gl-mat4/clone.js\"(exports, module) {\n module.exports = clone;\n function clone(a) {\n var out = new Float32Array(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/copy.js\n var require_copy = __commonJS({\n \"node_modules/gl-mat4/copy.js\"(exports, module) {\n module.exports = copy;\n function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/identity.js\n var require_identity = __commonJS({\n \"node_modules/gl-mat4/identity.js\"(exports, module) {\n module.exports = identity2;\n function identity2(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/transpose.js\n var require_transpose = __commonJS({\n \"node_modules/gl-mat4/transpose.js\"(exports, module) {\n module.exports = transpose;\n function transpose(out, a) {\n if (out === a) {\n var a01 = a[1], a02 = a[2], a03 = a[3], a12 = a[6], a13 = a[7], a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/invert.js\n var require_invert = __commonJS({\n \"node_modules/gl-mat4/invert.js\"(exports, module) {\n module.exports = invert;\n function invert(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], b00 = a00 * a11 - a01 * a10, b01 = a00 * a12 - a02 * a10, b02 = a00 * a13 - a03 * a10, b03 = a01 * a12 - a02 * a11, b04 = a01 * a13 - a03 * a11, b05 = a02 * a13 - a03 * a12, b06 = a20 * a31 - a21 * a30, b07 = a20 * a32 - a22 * a30, b08 = a20 * a33 - a23 * a30, b09 = a21 * a32 - a22 * a31, b10 = a21 * a33 - a23 * a31, b11 = a22 * a33 - a23 * a32, det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/adjoint.js\n var require_adjoint = __commonJS({\n \"node_modules/gl-mat4/adjoint.js\"(exports, module) {\n module.exports = adjoint;\n function adjoint(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/determinant.js\n var require_determinant = __commonJS({\n \"node_modules/gl-mat4/determinant.js\"(exports, module) {\n module.exports = determinant;\n function determinant(a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], b00 = a00 * a11 - a01 * a10, b01 = a00 * a12 - a02 * a10, b02 = a00 * a13 - a03 * a10, b03 = a01 * a12 - a02 * a11, b04 = a01 * a13 - a03 * a11, b05 = a02 * a13 - a03 * a12, b06 = a20 * a31 - a21 * a30, b07 = a20 * a32 - a22 * a30, b08 = a20 * a33 - a23 * a30, b09 = a21 * a32 - a22 * a31, b10 = a21 * a33 - a23 * a31, b11 = a22 * a33 - a23 * a32;\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n }\n }\n });\n\n // node_modules/gl-mat4/multiply.js\n var require_multiply = __commonJS({\n \"node_modules/gl-mat4/multiply.js\"(exports, module) {\n module.exports = multiply;\n function multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/translate.js\n var require_translate = __commonJS({\n \"node_modules/gl-mat4/translate.js\"(exports, module) {\n module.exports = translate;\n function translate(out, a, v) {\n var x = v[0], y = v[1], z = v[2], a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/scale.js\n var require_scale = __commonJS({\n \"node_modules/gl-mat4/scale.js\"(exports, module) {\n module.exports = scale;\n function scale(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/rotate.js\n var require_rotate = __commonJS({\n \"node_modules/gl-mat4/rotate.js\"(exports, module) {\n module.exports = rotate;\n function rotate(out, a, rad, axis) {\n var x = axis[0], y = axis[1], z = axis[2], len = Math.sqrt(x * x + y * y + z * z), s, c, t, a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23, b00, b01, b02, b10, b11, b12, b20, b21, b22;\n if (Math.abs(len) < 1e-6) {\n return null;\n }\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c;\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n if (a !== out) {\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/rotateX.js\n var require_rotateX = __commonJS({\n \"node_modules/gl-mat4/rotateX.js\"(exports, module) {\n module.exports = rotateX;\n function rotateX(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n if (a !== out) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/rotateY.js\n var require_rotateY = __commonJS({\n \"node_modules/gl-mat4/rotateY.js\"(exports, module) {\n module.exports = rotateY;\n function rotateY(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n if (a !== out) {\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/rotateZ.js\n var require_rotateZ = __commonJS({\n \"node_modules/gl-mat4/rotateZ.js\"(exports, module) {\n module.exports = rotateZ;\n function rotateZ(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n if (a !== out) {\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromRotation.js\n var require_fromRotation = __commonJS({\n \"node_modules/gl-mat4/fromRotation.js\"(exports, module) {\n module.exports = fromRotation;\n function fromRotation(out, rad, axis) {\n var s, c, t;\n var x = axis[0];\n var y = axis[1];\n var z = axis[2];\n var len = Math.sqrt(x * x + y * y + z * z);\n if (Math.abs(len) < 1e-6) {\n return null;\n }\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromRotationTranslation.js\n var require_fromRotationTranslation = __commonJS({\n \"node_modules/gl-mat4/fromRotationTranslation.js\"(exports, module) {\n module.exports = fromRotationTranslation;\n function fromRotationTranslation(out, q, v) {\n var x = q[0], y = q[1], z = q[2], w = q[3], x2 = x + x, y2 = y + y, z2 = z + z, xx = x * x2, xy = x * y2, xz = x * z2, yy = y * y2, yz = y * z2, zz = z * z2, wx = w * x2, wy = w * y2, wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromScaling.js\n var require_fromScaling = __commonJS({\n \"node_modules/gl-mat4/fromScaling.js\"(exports, module) {\n module.exports = fromScaling;\n function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromTranslation.js\n var require_fromTranslation = __commonJS({\n \"node_modules/gl-mat4/fromTranslation.js\"(exports, module) {\n module.exports = fromTranslation;\n function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromXRotation.js\n var require_fromXRotation = __commonJS({\n \"node_modules/gl-mat4/fromXRotation.js\"(exports, module) {\n module.exports = fromXRotation;\n function fromXRotation(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromYRotation.js\n var require_fromYRotation = __commonJS({\n \"node_modules/gl-mat4/fromYRotation.js\"(exports, module) {\n module.exports = fromYRotation;\n function fromYRotation(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromZRotation.js\n var require_fromZRotation = __commonJS({\n \"node_modules/gl-mat4/fromZRotation.js\"(exports, module) {\n module.exports = fromZRotation;\n function fromZRotation(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromQuat.js\n var require_fromQuat = __commonJS({\n \"node_modules/gl-mat4/fromQuat.js\"(exports, module) {\n module.exports = fromQuat;\n function fromQuat(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3], x2 = x + x, y2 = y + y, z2 = z + z, xx = x * x2, yx = y * x2, yy = y * y2, zx = z * x2, zy = z * y2, zz = z * z2, wx = w * x2, wy = w * y2, wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/frustum.js\n var require_frustum = __commonJS({\n \"node_modules/gl-mat4/frustum.js\"(exports, module) {\n module.exports = frustum;\n function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left), tb = 1 / (top - bottom), nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/perspective.js\n var require_perspective = __commonJS({\n \"node_modules/gl-mat4/perspective.js\"(exports, module) {\n module.exports = perspective;\n function perspective(out, fovy, aspect, near, far) {\n var f = 1 / Math.tan(fovy / 2), nf = 1 / (near - far);\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = 2 * far * near * nf;\n out[15] = 0;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/perspectiveFromFieldOfView.js\n var require_perspectiveFromFieldOfView = __commonJS({\n \"node_modules/gl-mat4/perspectiveFromFieldOfView.js\"(exports, module) {\n module.exports = perspectiveFromFieldOfView;\n function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180), downTan = Math.tan(fov.downDegrees * Math.PI / 180), leftTan = Math.tan(fov.leftDegrees * Math.PI / 180), rightTan = Math.tan(fov.rightDegrees * Math.PI / 180), xScale = 2 / (leftTan + rightTan), yScale = 2 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = yScale;\n out[6] = 0;\n out[7] = 0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near / (near - far);\n out[15] = 0;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/ortho.js\n var require_ortho = __commonJS({\n \"node_modules/gl-mat4/ortho.js\"(exports, module) {\n module.exports = ortho;\n function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right), bt = 1 / (bottom - top), nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/lookAt.js\n var require_lookAt = __commonJS({\n \"node_modules/gl-mat4/lookAt.js\"(exports, module) {\n var identity2 = require_identity();\n module.exports = lookAt;\n function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len, eyex = eye[0], eyey = eye[1], eyez = eye[2], upx = up[0], upy = up[1], upz = up[2], centerx = center[0], centery = center[1], centerz = center[2];\n if (Math.abs(eyex - centerx) < 1e-6 && Math.abs(eyey - centery) < 1e-6 && Math.abs(eyez - centerz) < 1e-6) {\n return identity2(out);\n }\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/str.js\n var require_str = __commonJS({\n \"node_modules/gl-mat4/str.js\"(exports, module) {\n module.exports = str;\n function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n }\n }\n });\n\n // node_modules/gl-mat4/index.js\n var require_gl_mat4 = __commonJS({\n \"node_modules/gl-mat4/index.js\"(exports, module) {\n module.exports = {\n create: require_create(),\n clone: require_clone(),\n copy: require_copy(),\n identity: require_identity(),\n transpose: require_transpose(),\n invert: require_invert(),\n adjoint: require_adjoint(),\n determinant: require_determinant(),\n multiply: require_multiply(),\n translate: require_translate(),\n scale: require_scale(),\n rotate: require_rotate(),\n rotateX: require_rotateX(),\n rotateY: require_rotateY(),\n rotateZ: require_rotateZ(),\n fromRotation: require_fromRotation(),\n fromRotationTranslation: require_fromRotationTranslation(),\n fromScaling: require_fromScaling(),\n fromTranslation: require_fromTranslation(),\n fromXRotation: require_fromXRotation(),\n fromYRotation: require_fromYRotation(),\n fromZRotation: require_fromZRotation(),\n fromQuat: require_fromQuat(),\n frustum: require_frustum(),\n perspective: require_perspective(),\n perspectiveFromFieldOfView: require_perspectiveFromFieldOfView(),\n ortho: require_ortho(),\n lookAt: require_lookAt(),\n str: require_str()\n };\n }\n });\n\n // src/lib/matrix.js\n var require_matrix = __commonJS({\n \"src/lib/matrix.js\"(exports) {\n \"use strict\";\n var mat4X4 = require_gl_mat4();\n exports.init2dArray = function(rowLength, colLength) {\n var array = new Array(rowLength);\n for (var i = 0; i < rowLength; i++) array[i] = new Array(colLength);\n return array;\n };\n exports.transposeRagged = function(z) {\n var maxlen = 0;\n var zlen = z.length;\n var i, j;\n for (i = 0; i < zlen; i++) maxlen = Math.max(maxlen, z[i].length);\n var t = new Array(maxlen);\n for (i = 0; i < maxlen; i++) {\n t[i] = new Array(zlen);\n for (j = 0; j < zlen; j++) t[i][j] = z[j][i];\n }\n return t;\n };\n exports.dot = function(x, y) {\n if (!(x.length && y.length) || x.length !== y.length) return null;\n var len = x.length;\n var out;\n var i;\n if (x[0].length) {\n out = new Array(len);\n for (i = 0; i < len; i++) out[i] = exports.dot(x[i], y);\n } else if (y[0].length) {\n var yTranspose = exports.transposeRagged(y);\n out = new Array(yTranspose.length);\n for (i = 0; i < yTranspose.length; i++) out[i] = exports.dot(x, yTranspose[i]);\n } else {\n out = 0;\n for (i = 0; i < len; i++) out += x[i] * y[i];\n }\n return out;\n };\n exports.translationMatrix = function(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n };\n exports.rotationMatrix = function(alpha) {\n var a = alpha * Math.PI / 180;\n return [\n [Math.cos(a), -Math.sin(a), 0],\n [Math.sin(a), Math.cos(a), 0],\n [0, 0, 1]\n ];\n };\n exports.rotationXYMatrix = function(a, x, y) {\n return exports.dot(\n exports.dot(\n exports.translationMatrix(x, y),\n exports.rotationMatrix(a)\n ),\n exports.translationMatrix(-x, -y)\n );\n };\n exports.apply3DTransform = function(transform) {\n return function() {\n var args = arguments;\n var xyz = arguments.length === 1 ? args[0] : [args[0], args[1], args[2] || 0];\n return exports.dot(transform, [xyz[0], xyz[1], xyz[2], 1]).slice(0, 3);\n };\n };\n exports.apply2DTransform = function(transform) {\n return function() {\n var args = arguments;\n if (args.length === 3) {\n args = args[0];\n }\n var xy = arguments.length === 1 ? args[0] : [args[0], args[1]];\n return exports.dot(transform, [xy[0], xy[1], 1]).slice(0, 2);\n };\n };\n exports.apply2DTransform2 = function(transform) {\n var at = exports.apply2DTransform(transform);\n return function(xys) {\n return at(xys.slice(0, 2)).concat(at(xys.slice(2, 4)));\n };\n };\n exports.convertCssMatrix = function(m) {\n if (m) {\n var len = m.length;\n if (len === 16) return m;\n if (len === 6) {\n return [\n m[0],\n m[1],\n 0,\n 0,\n m[2],\n m[3],\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n m[4],\n m[5],\n 0,\n 1\n ];\n }\n }\n return [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n };\n exports.inverseTransformMatrix = function(m) {\n var out = [];\n mat4X4.invert(out, m);\n return [\n [out[0], out[1], out[2], out[3]],\n [out[4], out[5], out[6], out[7]],\n [out[8], out[9], out[10], out[11]],\n [out[12], out[13], out[14], out[15]]\n ];\n };\n }\n });\n\n // src/lib/dom.js\n var require_dom = __commonJS({\n \"src/lib/dom.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var loggers = require_loggers();\n var matrix = require_matrix();\n var mat4X4 = require_gl_mat4();\n function getGraphDiv(gd) {\n var gdElement;\n if (typeof gd === \"string\") {\n gdElement = document.getElementById(gd);\n if (gdElement === null) {\n throw new Error(\"No DOM element with id '\" + gd + \"' exists on the page.\");\n }\n return gdElement;\n } else if (gd === null || gd === void 0) {\n throw new Error(\"DOM element provided is null or undefined\");\n }\n return gd;\n }\n function isPlotDiv(el) {\n var el3 = d3.select(el);\n return el3.node() instanceof HTMLElement && el3.size() && el3.classed(\"js-plotly-plot\");\n }\n function removeElement(el) {\n var elParent = el && el.parentNode;\n if (elParent) elParent.removeChild(el);\n }\n function addStyleRule(selector, styleString) {\n addRelatedStyleRule(\"global\", selector, styleString);\n }\n function addRelatedStyleRule(uid, selector, styleString) {\n var id = \"plotly.js-style-\" + uid;\n var style = document.getElementById(id);\n if (style && style.matches(\".no-inline-styles\")) {\n return;\n }\n if (!style) {\n style = document.createElement(\"style\");\n style.setAttribute(\"id\", id);\n style.appendChild(document.createTextNode(\"\"));\n document.head.appendChild(style);\n }\n var styleSheet = style.sheet;\n if (!styleSheet) {\n loggers.warn(\"Cannot addRelatedStyleRule, probably due to strict CSP...\");\n } else if (styleSheet.insertRule) {\n styleSheet.insertRule(selector + \"{\" + styleString + \"}\", 0);\n } else if (styleSheet.addRule) {\n styleSheet.addRule(selector, styleString, 0);\n } else loggers.warn(\"addStyleRule failed\");\n }\n function deleteRelatedStyleRule(uid) {\n var id = \"plotly.js-style-\" + uid;\n var style = document.getElementById(id);\n if (style) removeElement(style);\n }\n function setStyleOnHover(selector, activeSelector, childSelector, activeStyle, inactiveStyle, element) {\n var activeStyleParts = activeStyle.split(\":\");\n var inactiveStyleParts = inactiveStyle.split(\":\");\n var eventAddedAttrName = \"data-btn-style-event-added\";\n if (!element) {\n element = document;\n }\n element.querySelectorAll(selector).forEach(function(el) {\n if (!el.getAttribute(eventAddedAttrName)) {\n el.addEventListener(\"mouseenter\", function() {\n var childEl = this.querySelector(childSelector);\n if (childEl) {\n childEl.style[activeStyleParts[0]] = activeStyleParts[1];\n }\n });\n el.addEventListener(\"mouseleave\", function() {\n var childEl = this.querySelector(childSelector);\n if (childEl) {\n if (activeSelector && this.matches(activeSelector)) {\n childEl.style[activeStyleParts[0]] = activeStyleParts[1];\n } else {\n childEl.style[inactiveStyleParts[0]] = inactiveStyleParts[1];\n }\n }\n });\n el.setAttribute(eventAddedAttrName, true);\n }\n });\n }\n function getFullTransformMatrix(element) {\n var allElements = getElementAndAncestors(element);\n var out = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n allElements.forEach(function(e) {\n var t = getElementTransformMatrix(e);\n if (t) {\n var m = matrix.convertCssMatrix(t);\n out = mat4X4.multiply(out, out, m);\n }\n });\n return out;\n }\n function getElementTransformMatrix(element) {\n var style = window.getComputedStyle(element, null);\n var transform = style.getPropertyValue(\"-webkit-transform\") || style.getPropertyValue(\"-moz-transform\") || style.getPropertyValue(\"-ms-transform\") || style.getPropertyValue(\"-o-transform\") || style.getPropertyValue(\"transform\");\n if (transform === \"none\") return null;\n return transform.replace(\"matrix\", \"\").replace(\"3d\", \"\").slice(1, -1).split(\",\").map(function(n) {\n return +n;\n });\n }\n function getElementAndAncestors(element) {\n var allElements = [];\n while (isTransformableElement(element)) {\n allElements.push(element);\n element = element.parentNode;\n if (typeof ShadowRoot === \"function\" && element instanceof ShadowRoot) {\n element = element.host;\n }\n }\n return allElements;\n }\n function isTransformableElement(element) {\n return element && (element instanceof Element || element instanceof HTMLElement);\n }\n function equalDomRects(a, b) {\n return a && b && a.top === b.top && a.left === b.left && a.right === b.right && a.bottom === b.bottom;\n }\n module.exports = {\n getGraphDiv,\n isPlotDiv,\n removeElement,\n addStyleRule,\n addRelatedStyleRule,\n deleteRelatedStyleRule,\n setStyleOnHover,\n getFullTransformMatrix,\n getElementTransformMatrix,\n getElementAndAncestors,\n equalDomRects\n };\n }\n });\n\n // src/plots/animation_attributes.js\n var require_animation_attributes = __commonJS({\n \"src/plots/animation_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n mode: {\n valType: \"enumerated\",\n dflt: \"afterall\",\n values: [\"immediate\", \"next\", \"afterall\"]\n },\n direction: {\n valType: \"enumerated\",\n values: [\"forward\", \"reverse\"],\n dflt: \"forward\"\n },\n fromcurrent: {\n valType: \"boolean\",\n dflt: false\n },\n frame: {\n duration: {\n valType: \"number\",\n min: 0,\n dflt: 500\n },\n redraw: {\n valType: \"boolean\",\n dflt: true\n }\n },\n transition: {\n duration: {\n valType: \"number\",\n min: 0,\n dflt: 500,\n editType: \"none\"\n },\n easing: {\n valType: \"enumerated\",\n dflt: \"cubic-in-out\",\n values: [\n \"linear\",\n \"quad\",\n \"cubic\",\n \"sin\",\n \"exp\",\n \"circle\",\n \"elastic\",\n \"back\",\n \"bounce\",\n \"linear-in\",\n \"quad-in\",\n \"cubic-in\",\n \"sin-in\",\n \"exp-in\",\n \"circle-in\",\n \"elastic-in\",\n \"back-in\",\n \"bounce-in\",\n \"linear-out\",\n \"quad-out\",\n \"cubic-out\",\n \"sin-out\",\n \"exp-out\",\n \"circle-out\",\n \"elastic-out\",\n \"back-out\",\n \"bounce-out\",\n \"linear-in-out\",\n \"quad-in-out\",\n \"cubic-in-out\",\n \"sin-in-out\",\n \"exp-in-out\",\n \"circle-in-out\",\n \"elastic-in-out\",\n \"back-in-out\",\n \"bounce-in-out\"\n ],\n editType: \"none\"\n },\n ordering: {\n valType: \"enumerated\",\n values: [\"layout first\", \"traces first\"],\n dflt: \"layout first\",\n editType: \"none\"\n }\n }\n };\n }\n });\n\n // src/plot_api/edit_types.js\n var require_edit_types = __commonJS({\n \"src/plot_api/edit_types.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n var isPlainObject = require_is_plain_object();\n var traceOpts = {\n valType: \"flaglist\",\n extras: [\"none\"],\n flags: [\"calc\", \"clearAxisTypes\", \"plot\", \"style\", \"markerSize\", \"colorbars\"]\n };\n var layoutOpts = {\n valType: \"flaglist\",\n extras: [\"none\"],\n flags: [\n \"calc\",\n \"plot\",\n \"legend\",\n \"ticks\",\n \"axrange\",\n \"layoutstyle\",\n \"modebar\",\n \"camera\",\n \"arraydraw\",\n \"colorbars\"\n ]\n };\n var traceEditTypeFlags = traceOpts.flags.slice().concat([\"fullReplot\"]);\n var layoutEditTypeFlags = layoutOpts.flags.slice().concat(\"layoutReplot\");\n module.exports = {\n traces: traceOpts,\n layout: layoutOpts,\n /*\n * default (all false) edit flags for restyle (traces)\n * creates a new object each call, so the caller can mutate freely\n */\n traceFlags: function() {\n return falseObj(traceEditTypeFlags);\n },\n /*\n * default (all false) edit flags for relayout\n * creates a new object each call, so the caller can mutate freely\n */\n layoutFlags: function() {\n return falseObj(layoutEditTypeFlags);\n },\n /*\n * update `flags` with the `editType` values found in `attr`\n */\n update: function(flags, attr) {\n var editType = attr.editType;\n if (editType && editType !== \"none\") {\n var editTypeParts = editType.split(\"+\");\n for (var i = 0; i < editTypeParts.length; i++) {\n flags[editTypeParts[i]] = true;\n }\n }\n },\n overrideAll\n };\n function falseObj(keys) {\n var out = {};\n for (var i = 0; i < keys.length; i++) out[keys[i]] = false;\n return out;\n }\n function overrideAll(attrs, editTypeOverride, overrideContainers) {\n var out = extendFlat({}, attrs);\n for (var key in out) {\n var attr = out[key];\n if (isPlainObject(attr)) {\n out[key] = overrideOne(attr, editTypeOverride, overrideContainers, key);\n }\n }\n if (overrideContainers === \"from-root\") out.editType = editTypeOverride;\n return out;\n }\n function overrideOne(attr, editTypeOverride, overrideContainers, key) {\n if (attr.valType) {\n var out = extendFlat({}, attr);\n out.editType = editTypeOverride;\n if (Array.isArray(attr.items)) {\n out.items = new Array(attr.items.length);\n for (var i = 0; i < attr.items.length; i++) {\n out.items[i] = overrideOne(attr.items[i], editTypeOverride, \"from-root\");\n }\n }\n return out;\n } else {\n return overrideAll(\n attr,\n editTypeOverride,\n key.charAt(0) === \"_\" ? \"nested\" : \"from-root\"\n );\n }\n }\n }\n });\n\n // src/components/drawing/attributes.js\n var require_attributes4 = __commonJS({\n \"src/components/drawing/attributes.js\"(exports) {\n \"use strict\";\n exports.dash = {\n valType: \"string\",\n // string type usually doesn't take values... this one should really be\n // a special type or at least a special coercion function, from the GUI\n // you only get these values but elsewhere the user can supply a list of\n // dash lengths in px, and it will be honored\n values: [\"solid\", \"dot\", \"dash\", \"longdash\", \"dashdot\", \"longdashdot\"],\n dflt: \"solid\",\n editType: \"style\"\n };\n exports.pattern = {\n shape: {\n valType: \"enumerated\",\n values: [\"\", \"/\", \"\\\\\", \"x\", \"-\", \"|\", \"+\", \".\"],\n dflt: \"\",\n arrayOk: true,\n editType: \"style\"\n },\n fillmode: {\n valType: \"enumerated\",\n values: [\"replace\", \"overlay\"],\n dflt: \"replace\",\n editType: \"style\"\n },\n bgcolor: {\n valType: \"color\",\n arrayOk: true,\n editType: \"style\"\n },\n fgcolor: {\n valType: \"color\",\n arrayOk: true,\n editType: \"style\"\n },\n fgopacity: {\n valType: \"number\",\n editType: \"style\",\n min: 0,\n max: 1\n },\n size: {\n valType: \"number\",\n min: 0,\n dflt: 8,\n arrayOk: true,\n editType: \"style\"\n },\n solidity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.3,\n arrayOk: true,\n editType: \"style\"\n },\n editType: \"style\"\n };\n }\n });\n\n // src/constants/docs.js\n var require_docs = __commonJS({\n \"src/constants/docs.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n FORMAT_LINK: \"https://github.com/d3/d3-format/tree/v1.4.5#d3-format\",\n DATE_FORMAT_LINK: \"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format\"\n };\n }\n });\n\n // src/plots/template_attributes.js\n var require_template_attributes = __commonJS({\n \"src/plots/template_attributes.js\"(exports) {\n \"use strict\";\n var docs = require_docs();\n var FORMAT_LINK = docs.FORMAT_LINK;\n var DATE_FORMAT_LINK = docs.DATE_FORMAT_LINK;\n function describeVariables(extra) {\n var descPart = extra.description ? \" \" + extra.description : \"\";\n var keys = extra.keys || [];\n if (keys.length > 0) {\n var quotedKeys = [];\n for (var i = 0; i < keys.length; i++) {\n quotedKeys[i] = \"`\" + keys[i] + \"`\";\n }\n descPart = descPart + \"Finally, the template string has access to \";\n if (keys.length === 1) {\n descPart = descPart + \"variable \" + quotedKeys[0];\n } else {\n descPart = descPart + \"variables \" + quotedKeys.slice(0, -1).join(\", \") + \" and \" + quotedKeys.slice(-1) + \".\";\n }\n }\n return descPart;\n }\n exports.hovertemplateAttrs = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n var descPart = describeVariables(extra);\n var hovertemplate = {\n valType: \"string\",\n dflt: \"\",\n editType: opts.editType || \"none\"\n };\n if (opts.arrayOk !== false) {\n hovertemplate.arrayOk = true;\n }\n return hovertemplate;\n };\n exports.texttemplateAttrs = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n var descPart = describeVariables(extra);\n var texttemplate = {\n valType: \"string\",\n dflt: \"\",\n editType: opts.editType || \"calc\"\n };\n if (opts.arrayOk !== false) {\n texttemplate.arrayOk = true;\n }\n return texttemplate;\n };\n exports.shapeTexttemplateAttrs = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n var newStr = opts.newshape ? \"new \" : \"\";\n var descPart = describeVariables(extra);\n var texttemplate = {\n valType: \"string\",\n dflt: \"\",\n editType: opts.editType || \"arraydraw\"\n };\n return texttemplate;\n };\n }\n });\n\n // src/components/shapes/label_texttemplate.js\n var require_label_texttemplate = __commonJS({\n \"src/components/shapes/label_texttemplate.js\"(exports, module) {\n \"use strict\";\n function d2l(v, axis) {\n return axis ? axis.d2l(v) : v;\n }\n function l2d(v, axis) {\n return axis ? axis.l2d(v) : v;\n }\n function x0Fn(shape) {\n return shape.x0;\n }\n function x1Fn(shape) {\n return shape.x1;\n }\n function y0Fn(shape) {\n return shape.y0;\n }\n function y1Fn(shape) {\n return shape.y1;\n }\n function x0shiftFn(shape) {\n return shape.x0shift || 0;\n }\n function x1shiftFn(shape) {\n return shape.x1shift || 0;\n }\n function y0shiftFn(shape) {\n return shape.y0shift || 0;\n }\n function y1shiftFn(shape) {\n return shape.y1shift || 0;\n }\n function dxFn(shape, xa) {\n return d2l(shape.x1, xa) + x1shiftFn(shape) - d2l(shape.x0, xa) - x0shiftFn(shape);\n }\n function dyFn(shape, xa, ya) {\n return d2l(shape.y1, ya) + y1shiftFn(shape) - d2l(shape.y0, ya) - y0shiftFn(shape);\n }\n function widthFn(shape, xa) {\n return Math.abs(dxFn(shape, xa));\n }\n function heightFn(shape, xa, ya) {\n return Math.abs(dyFn(shape, xa, ya));\n }\n function lengthFn(shape, xa, ya) {\n return shape.type !== \"line\" ? void 0 : Math.sqrt(\n Math.pow(dxFn(shape, xa), 2) + Math.pow(dyFn(shape, xa, ya), 2)\n );\n }\n function xcenterFn(shape, xa) {\n return l2d((d2l(shape.x1, xa) + x1shiftFn(shape) + d2l(shape.x0, xa) + x0shiftFn(shape)) / 2, xa);\n }\n function ycenterFn(shape, xa, ya) {\n return l2d((d2l(shape.y1, ya) + y1shiftFn(shape) + d2l(shape.y0, ya) + y0shiftFn(shape)) / 2, ya);\n }\n function slopeFn(shape, xa, ya) {\n return shape.type !== \"line\" ? void 0 : dyFn(shape, xa, ya) / dxFn(shape, xa);\n }\n module.exports = {\n x0: x0Fn,\n x1: x1Fn,\n y0: y0Fn,\n y1: y1Fn,\n slope: slopeFn,\n dx: dxFn,\n dy: dyFn,\n width: widthFn,\n height: heightFn,\n length: lengthFn,\n xcenter: xcenterFn,\n ycenter: ycenterFn\n };\n }\n });\n\n // src/components/shapes/draw_newshape/attributes.js\n var require_attributes5 = __commonJS({\n \"src/components/shapes/draw_newshape/attributes.js\"(exports, module) {\n \"use strict\";\n var overrideAll = require_edit_types().overrideAll;\n var basePlotAttributes = require_attributes2();\n var fontAttrs = require_font_attributes();\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var shapeTexttemplateAttrs = require_template_attributes().shapeTexttemplateAttrs;\n var shapeLabelTexttemplateVars = require_label_texttemplate();\n module.exports = overrideAll({\n newshape: {\n visible: extendFlat({}, basePlotAttributes.visible, {}),\n showlegend: {\n valType: \"boolean\",\n dflt: false\n },\n legend: extendFlat({}, basePlotAttributes.legend, {}),\n legendgroup: extendFlat({}, basePlotAttributes.legendgroup, {}),\n legendgrouptitle: {\n text: extendFlat({}, basePlotAttributes.legendgrouptitle.text, {}),\n font: fontAttrs({})\n },\n legendrank: extendFlat({}, basePlotAttributes.legendrank, {}),\n legendwidth: extendFlat({}, basePlotAttributes.legendwidth, {}),\n line: {\n color: {\n valType: \"color\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 4\n },\n dash: extendFlat({}, dash, {\n dflt: \"solid\"\n })\n },\n fillcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\"\n },\n fillrule: {\n valType: \"enumerated\",\n values: [\"evenodd\", \"nonzero\"],\n dflt: \"evenodd\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n layer: {\n valType: \"enumerated\",\n values: [\"below\", \"above\", \"between\"],\n dflt: \"above\"\n },\n drawdirection: {\n valType: \"enumerated\",\n values: [\"ortho\", \"horizontal\", \"vertical\", \"diagonal\"],\n dflt: \"diagonal\"\n },\n name: extendFlat({}, basePlotAttributes.name, {}),\n label: {\n text: {\n valType: \"string\",\n dflt: \"\"\n },\n texttemplate: shapeTexttemplateAttrs({ newshape: true }, { keys: Object.keys(shapeLabelTexttemplateVars) }),\n font: fontAttrs({}),\n textposition: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle left\",\n \"middle center\",\n \"middle right\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n },\n textangle: {\n valType: \"angle\",\n dflt: \"auto\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"auto\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"]\n },\n padding: {\n valType: \"number\",\n dflt: 3,\n min: 0\n }\n }\n },\n activeshape: {\n fillcolor: {\n valType: \"color\",\n dflt: \"rgb(255,0,255)\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5\n }\n }\n }, \"none\", \"from-root\");\n }\n });\n\n // src/components/selections/draw_newselection/attributes.js\n var require_attributes6 = __commonJS({\n \"src/components/selections/draw_newselection/attributes.js\"(exports, module) {\n \"use strict\";\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n newselection: {\n mode: {\n valType: \"enumerated\",\n values: [\"immediate\", \"gradual\"],\n dflt: \"immediate\",\n editType: \"none\"\n },\n line: {\n color: {\n valType: \"color\",\n editType: \"none\"\n },\n width: {\n valType: \"number\",\n min: 1,\n dflt: 1,\n editType: \"none\"\n },\n dash: extendFlat({}, dash, {\n dflt: \"dot\",\n editType: \"none\"\n }),\n editType: \"none\"\n },\n // no drawdirection here noting that layout.selectdirection is used instead.\n editType: \"none\"\n },\n activeselection: {\n fillcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"none\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5,\n editType: \"none\"\n },\n editType: \"none\"\n }\n };\n }\n });\n\n // src/plots/pad_attributes.js\n var require_pad_attributes = __commonJS({\n \"src/plots/pad_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = function(opts) {\n var editType = opts.editType;\n return {\n t: {\n valType: \"number\",\n dflt: 0,\n editType\n },\n r: {\n valType: \"number\",\n dflt: 0,\n editType\n },\n b: {\n valType: \"number\",\n dflt: 0,\n editType\n },\n l: {\n valType: \"number\",\n dflt: 0,\n editType\n },\n editType\n };\n };\n }\n });\n\n // src/plots/layout_attributes.js\n var require_layout_attributes2 = __commonJS({\n \"src/plots/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var animationAttrs = require_animation_attributes();\n var colorAttrs = require_attributes3();\n var drawNewShapeAttrs = require_attributes5();\n var drawNewSelectionAttrs = require_attributes6();\n var padAttrs = require_pad_attributes();\n var extendFlat = require_extend().extendFlat;\n var globalFont = fontAttrs({\n editType: \"calc\"\n });\n globalFont.family.dflt = '\"Open Sans\", verdana, arial, sans-serif';\n globalFont.size.dflt = 12;\n globalFont.color.dflt = colorAttrs.defaultLine;\n module.exports = {\n font: globalFont,\n title: {\n text: {\n valType: \"string\",\n editType: \"layoutstyle\"\n },\n font: fontAttrs({\n editType: \"layoutstyle\"\n }),\n subtitle: {\n text: {\n valType: \"string\",\n editType: \"layoutstyle\"\n },\n font: fontAttrs({\n editType: \"layoutstyle\"\n }),\n editType: \"layoutstyle\"\n },\n xref: {\n valType: \"enumerated\",\n dflt: \"container\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n yref: {\n valType: \"enumerated\",\n dflt: \"container\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n x: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5,\n editType: \"layoutstyle\"\n },\n y: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: \"auto\",\n editType: \"layoutstyle\"\n },\n xanchor: {\n valType: \"enumerated\",\n dflt: \"auto\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n editType: \"layoutstyle\"\n },\n yanchor: {\n valType: \"enumerated\",\n dflt: \"auto\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n editType: \"layoutstyle\"\n },\n pad: extendFlat(padAttrs({ editType: \"layoutstyle\" }), {}),\n automargin: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n editType: \"layoutstyle\"\n },\n uniformtext: {\n mode: {\n valType: \"enumerated\",\n values: [false, \"hide\", \"show\"],\n dflt: false,\n editType: \"plot\"\n },\n minsize: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n autosize: {\n valType: \"boolean\",\n dflt: false,\n // autosize, width, and height get special editType treatment in _relayout\n // so we can handle noop resizes more efficiently\n editType: \"none\"\n },\n width: {\n valType: \"number\",\n min: 10,\n dflt: 700,\n editType: \"plot\"\n },\n height: {\n valType: \"number\",\n min: 10,\n dflt: 450,\n editType: \"plot\"\n },\n minreducedwidth: {\n valType: \"number\",\n min: 2,\n dflt: 64,\n editType: \"plot\"\n },\n minreducedheight: {\n valType: \"number\",\n min: 2,\n dflt: 64,\n editType: \"plot\"\n },\n margin: {\n l: {\n valType: \"number\",\n min: 0,\n dflt: 80,\n editType: \"plot\"\n },\n r: {\n valType: \"number\",\n min: 0,\n dflt: 80,\n editType: \"plot\"\n },\n t: {\n valType: \"number\",\n min: 0,\n dflt: 100,\n editType: \"plot\"\n },\n b: {\n valType: \"number\",\n min: 0,\n dflt: 80,\n editType: \"plot\"\n },\n pad: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n autoexpand: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n computed: {\n valType: \"any\",\n editType: \"none\"\n },\n paper_bgcolor: {\n valType: \"color\",\n dflt: colorAttrs.background,\n editType: \"plot\"\n },\n plot_bgcolor: {\n // defined here, but set in cartesian.supplyLayoutDefaults\n // because it needs to know if there are (2D) axes or not\n valType: \"color\",\n dflt: colorAttrs.background,\n editType: \"layoutstyle\"\n },\n autotypenumbers: {\n valType: \"enumerated\",\n values: [\"convert types\", \"strict\"],\n dflt: \"convert types\",\n editType: \"calc\"\n },\n separators: {\n valType: \"string\",\n editType: \"plot\"\n },\n hidesources: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n showlegend: {\n // handled in legend.supplyLayoutDefaults\n // but included here because it's not in the legend object\n valType: \"boolean\",\n editType: \"legend\"\n },\n colorway: {\n valType: \"colorlist\",\n dflt: colorAttrs.defaults,\n editType: \"calc\"\n },\n datarevision: {\n valType: \"any\",\n editType: \"calc\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editrevision: {\n valType: \"any\",\n editType: \"none\"\n },\n selectionrevision: {\n valType: \"any\",\n editType: \"none\"\n },\n template: {\n valType: \"any\",\n editType: \"calc\"\n },\n newshape: drawNewShapeAttrs.newshape,\n activeshape: drawNewShapeAttrs.activeshape,\n newselection: drawNewSelectionAttrs.newselection,\n activeselection: drawNewSelectionAttrs.activeselection,\n meta: {\n valType: \"any\",\n arrayOk: true,\n editType: \"plot\"\n },\n transition: extendFlat({}, animationAttrs.transition, {\n editType: \"none\"\n })\n };\n }\n });\n\n // temp_stylePlugin:node_modules/maplibre-gl/dist/maplibre-gl.css\n var init_maplibre_gl = __esm({\n \"temp_stylePlugin:node_modules/maplibre-gl/dist/maplibre-gl.css\"() {\n }\n });\n\n // stylePlugin:/Users/ekl/code/plotly.js/node_modules/maplibre-gl/dist/maplibre-gl.css\n var maplibre_gl_exports = {};\n var init_maplibre_gl2 = __esm({\n \"stylePlugin:/Users/ekl/code/plotly.js/node_modules/maplibre-gl/dist/maplibre-gl.css\"() {\n init_maplibre_gl();\n }\n });\n\n // src/registry.js\n var require_registry = __commonJS({\n \"src/registry.js\"(exports) {\n \"use strict\";\n var Loggers = require_loggers();\n var noop = require_noop();\n var pushUnique = require_push_unique();\n var isPlainObject = require_is_plain_object();\n var addStyleRule = require_dom().addStyleRule;\n var ExtendModule = require_extend();\n var basePlotAttributes = require_attributes2();\n var baseLayoutAttributes = require_layout_attributes2();\n var extendFlat = ExtendModule.extendFlat;\n var extendDeepAll = ExtendModule.extendDeepAll;\n exports.modules = {};\n exports.allCategories = {};\n exports.allTypes = [];\n exports.subplotsRegistry = {};\n exports.componentsRegistry = {};\n exports.layoutArrayContainers = [];\n exports.layoutArrayRegexes = [];\n exports.traceLayoutAttributes = {};\n exports.localeRegistry = {};\n exports.apiMethodRegistry = {};\n exports.collectableSubplotTypes = null;\n exports.register = function register(_modules) {\n exports.collectableSubplotTypes = null;\n if (!_modules) {\n throw new Error(\"No argument passed to Plotly.register.\");\n } else if (_modules && !Array.isArray(_modules)) {\n _modules = [_modules];\n }\n for (var i = 0; i < _modules.length; i++) {\n var newModule = _modules[i];\n if (!newModule) {\n throw new Error(\"Invalid module was attempted to be registered!\");\n }\n switch (newModule.moduleType) {\n case \"trace\":\n registerTraceModule(newModule);\n break;\n case \"transform\":\n registerTransformModule(newModule);\n break;\n case \"component\":\n registerComponentModule(newModule);\n break;\n case \"locale\":\n registerLocale(newModule);\n break;\n case \"apiMethod\":\n var name2 = newModule.name;\n exports.apiMethodRegistry[name2] = newModule.fn;\n break;\n default:\n throw new Error(\"Invalid module was attempted to be registered!\");\n }\n }\n };\n exports.getModule = function(trace) {\n var _module = exports.modules[getTraceType(trace)];\n if (!_module) return false;\n return _module._module;\n };\n exports.traceIs = function(traceType, category) {\n traceType = getTraceType(traceType);\n if (traceType === \"various\") return false;\n var _module = exports.modules[traceType];\n if (!_module) {\n if (traceType) {\n Loggers.log(\"Unrecognized trace type \" + traceType + \".\");\n }\n _module = exports.modules[basePlotAttributes.type.dflt];\n }\n return !!_module.categories[category];\n };\n exports.getComponentMethod = function(name2, method) {\n var _module = exports.componentsRegistry[name2];\n if (!_module) return noop;\n return _module[method] || noop;\n };\n exports.call = function() {\n var name2 = arguments[0];\n var args = [].slice.call(arguments, 1);\n return exports.apiMethodRegistry[name2].apply(null, args);\n };\n function registerTraceModule(_module) {\n var thisType = _module.name;\n var categoriesIn = _module.categories;\n var meta = _module.meta;\n if (exports.modules[thisType]) {\n Loggers.log(\"Type \" + thisType + \" already registered\");\n return;\n }\n if (!exports.subplotsRegistry[_module.basePlotModule.name]) {\n registerSubplot(_module.basePlotModule);\n }\n var categoryObj = {};\n for (var i = 0; i < categoriesIn.length; i++) {\n categoryObj[categoriesIn[i]] = true;\n exports.allCategories[categoriesIn[i]] = true;\n }\n exports.modules[thisType] = {\n _module,\n categories: categoryObj\n };\n if (meta && Object.keys(meta).length) {\n exports.modules[thisType].meta = meta;\n }\n exports.allTypes.push(thisType);\n for (var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToTrace(componentName, thisType);\n }\n if (_module.layoutAttributes) {\n extendFlat(exports.traceLayoutAttributes, _module.layoutAttributes);\n }\n var basePlotModule = _module.basePlotModule;\n var bpmName = basePlotModule.name;\n if (bpmName === \"mapbox\") {\n var styleRules = basePlotModule.constants.styleRules;\n for (var k in styleRules) {\n addStyleRule(\".js-plotly-plot .plotly .mapboxgl-\" + k, styleRules[k]);\n }\n }\n if (bpmName === \"map\") {\n init_maplibre_gl2();\n }\n if ((bpmName === \"geo\" || bpmName === \"mapbox\" || bpmName === \"map\") && window.PlotlyGeoAssets === void 0) {\n window.PlotlyGeoAssets = { topojson: {} };\n }\n }\n function registerSubplot(_module) {\n var plotType = _module.name;\n if (exports.subplotsRegistry[plotType]) {\n Loggers.log(\"Plot type \" + plotType + \" already registered.\");\n return;\n }\n findArrayRegexps(_module);\n exports.subplotsRegistry[plotType] = _module;\n for (var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToSubplot(componentName, _module.name);\n }\n }\n function registerComponentModule(_module) {\n if (typeof _module.name !== \"string\") {\n throw new Error(\"Component module *name* must be a string.\");\n }\n var name2 = _module.name;\n exports.componentsRegistry[name2] = _module;\n if (_module.layoutAttributes) {\n if (_module.layoutAttributes._isLinkedToArray) {\n pushUnique(exports.layoutArrayContainers, name2);\n }\n findArrayRegexps(_module);\n }\n for (var traceType in exports.modules) {\n mergeComponentAttrsToTrace(name2, traceType);\n }\n for (var subplotName in exports.subplotsRegistry) {\n mergeComponentAttrsToSubplot(name2, subplotName);\n }\n if (_module.schema && _module.schema.layout) {\n extendDeepAll(baseLayoutAttributes, _module.schema.layout);\n }\n }\n function registerTransformModule(_module) {\n if (typeof _module.name !== \"string\") {\n throw new Error(\"Transform module *name* must be a string.\");\n }\n var prefix = \"Transform module \" + _module.name;\n var hasTransform = typeof _module.transform === \"function\";\n var hasCalcTransform = typeof _module.calcTransform === \"function\";\n if (!hasTransform && !hasCalcTransform) {\n throw new Error(prefix + \" is missing a *transform* or *calcTransform* method.\");\n }\n if (hasTransform && hasCalcTransform) {\n Loggers.log([\n prefix + \" has both a *transform* and *calcTransform* methods.\",\n \"Please note that all *transform* methods are executed\",\n \"before all *calcTransform* methods.\"\n ].join(\" \"));\n }\n if (!isPlainObject(_module.attributes)) {\n Loggers.log(prefix + \" registered without an *attributes* object.\");\n }\n if (typeof _module.supplyDefaults !== \"function\") {\n Loggers.log(prefix + \" registered without a *supplyDefaults* method.\");\n }\n }\n function registerLocale(_module) {\n var locale = _module.name;\n var baseLocale = locale.split(\"-\")[0];\n var newDict = _module.dictionary;\n var newFormat = _module.format;\n var hasDict = newDict && Object.keys(newDict).length;\n var hasFormat = newFormat && Object.keys(newFormat).length;\n var locales = exports.localeRegistry;\n var localeObj = locales[locale];\n if (!localeObj) locales[locale] = localeObj = {};\n if (baseLocale !== locale) {\n var baseLocaleObj = locales[baseLocale];\n if (!baseLocaleObj) locales[baseLocale] = baseLocaleObj = {};\n if (hasDict && baseLocaleObj.dictionary === localeObj.dictionary) {\n baseLocaleObj.dictionary = newDict;\n }\n if (hasFormat && baseLocaleObj.format === localeObj.format) {\n baseLocaleObj.format = newFormat;\n }\n }\n if (hasDict) localeObj.dictionary = newDict;\n if (hasFormat) localeObj.format = newFormat;\n }\n function findArrayRegexps(_module) {\n if (_module.layoutAttributes) {\n var arrayAttrRegexps = _module.layoutAttributes._arrayAttrRegexps;\n if (arrayAttrRegexps) {\n for (var i = 0; i < arrayAttrRegexps.length; i++) {\n pushUnique(exports.layoutArrayRegexes, arrayAttrRegexps[i]);\n }\n }\n }\n }\n function mergeComponentAttrsToTrace(componentName, traceType) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if (!componentSchema || !componentSchema.traces) return;\n var traceAttrs = componentSchema.traces[traceType];\n if (traceAttrs) {\n extendDeepAll(exports.modules[traceType]._module.attributes, traceAttrs);\n }\n }\n function mergeComponentAttrsToSubplot(componentName, subplotName) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if (!componentSchema || !componentSchema.subplots) return;\n var subplotModule = exports.subplotsRegistry[subplotName];\n var subplotAttrs = subplotModule.layoutAttributes;\n var subplotAttr = subplotModule.attr === \"subplot\" ? subplotModule.name : subplotModule.attr;\n if (Array.isArray(subplotAttr)) subplotAttr = subplotAttr[0];\n var componentLayoutAttrs = componentSchema.subplots[subplotAttr];\n if (subplotAttrs && componentLayoutAttrs) {\n extendDeepAll(subplotAttrs, componentLayoutAttrs);\n }\n }\n function getTraceType(traceType) {\n if (typeof traceType === \"object\") traceType = traceType.type;\n return traceType;\n }\n }\n });\n\n // src/lib/dates.js\n var require_dates = __commonJS({\n \"src/lib/dates.js\"(exports) {\n \"use strict\";\n var timeFormat = require_d3_time_format().timeFormat;\n var isNumeric = require_fast_isnumeric();\n var Loggers = require_loggers();\n var mod = require_mod().mod;\n var constants = require_numerical();\n var BADNUM = constants.BADNUM;\n var ONEDAY = constants.ONEDAY;\n var ONEHOUR = constants.ONEHOUR;\n var ONEMIN = constants.ONEMIN;\n var ONESEC = constants.ONESEC;\n var EPOCHJD = constants.EPOCHJD;\n var Registry = require_registry();\n var utcFormat = require_d3_time_format().utcFormat;\n var DATETIME_REGEXP = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\d)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d(:?\\d\\d)?)?)?)?)?)?\\s*$/m;\n var DATETIME_REGEXP_CN = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\di?)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d(:?\\d\\d)?)?)?)?)?)?\\s*$/m;\n var YFIRST = (/* @__PURE__ */ new Date()).getFullYear() - 70;\n function isWorldCalendar(calendar) {\n return calendar && Registry.componentsRegistry.calendars && typeof calendar === \"string\" && calendar !== \"gregorian\";\n }\n exports.dateTick0 = function(calendar, dayOfWeek) {\n var tick0 = _dateTick0(calendar, !!dayOfWeek);\n if (dayOfWeek < 2) return tick0;\n var v = exports.dateTime2ms(tick0, calendar);\n v += ONEDAY * (dayOfWeek - 1);\n return exports.ms2DateTime(v, 0, calendar);\n };\n function _dateTick0(calendar, sunday) {\n if (isWorldCalendar(calendar)) {\n return sunday ? Registry.getComponentMethod(\"calendars\", \"CANONICAL_SUNDAY\")[calendar] : Registry.getComponentMethod(\"calendars\", \"CANONICAL_TICK\")[calendar];\n } else {\n return sunday ? \"2000-01-02\" : \"2000-01-01\";\n }\n }\n exports.dfltRange = function(calendar) {\n if (isWorldCalendar(calendar)) {\n return Registry.getComponentMethod(\"calendars\", \"DFLTRANGE\")[calendar];\n } else {\n return [\"2000-01-01\", \"2001-01-01\"];\n }\n };\n exports.isJSDate = function(v) {\n return typeof v === \"object\" && v !== null && typeof v.getTime === \"function\";\n };\n var MIN_MS;\n var MAX_MS;\n exports.dateTime2ms = function(s, calendar) {\n if (exports.isJSDate(s)) {\n var tzOffset = s.getTimezoneOffset() * ONEMIN;\n var offsetTweak = (s.getUTCMinutes() - s.getMinutes()) * ONEMIN + (s.getUTCSeconds() - s.getSeconds()) * ONESEC + (s.getUTCMilliseconds() - s.getMilliseconds());\n if (offsetTweak) {\n var comb = 3 * ONEMIN;\n tzOffset = tzOffset - comb / 2 + mod(offsetTweak - tzOffset + comb / 2, comb);\n }\n s = Number(s) - tzOffset;\n if (s >= MIN_MS && s <= MAX_MS) return s;\n return BADNUM;\n }\n if (typeof s !== \"string\" && typeof s !== \"number\") return BADNUM;\n s = String(s);\n var isWorld = isWorldCalendar(calendar);\n var s0 = s.charAt(0);\n if (isWorld && (s0 === \"G\" || s0 === \"g\")) {\n s = s.substr(1);\n calendar = \"\";\n }\n var isChinese = isWorld && calendar.substr(0, 7) === \"chinese\";\n var match = s.match(isChinese ? DATETIME_REGEXP_CN : DATETIME_REGEXP);\n if (!match) return BADNUM;\n var y = match[1];\n var m = match[3] || \"1\";\n var d = Number(match[5] || 1);\n var H = Number(match[7] || 0);\n var M = Number(match[9] || 0);\n var S = Number(match[11] || 0);\n if (isWorld) {\n if (y.length === 2) return BADNUM;\n y = Number(y);\n var cDate;\n try {\n var calInstance = Registry.getComponentMethod(\"calendars\", \"getCal\")(calendar);\n if (isChinese) {\n var isIntercalary = m.charAt(m.length - 1) === \"i\";\n m = parseInt(m, 10);\n cDate = calInstance.newDate(y, calInstance.toMonthIndex(y, m, isIntercalary), d);\n } else {\n cDate = calInstance.newDate(y, Number(m), d);\n }\n } catch (e) {\n return BADNUM;\n }\n if (!cDate) return BADNUM;\n return (cDate.toJD() - EPOCHJD) * ONEDAY + H * ONEHOUR + M * ONEMIN + S * ONESEC;\n }\n if (y.length === 2) {\n y = (Number(y) + 2e3 - YFIRST) % 100 + YFIRST;\n } else y = Number(y);\n m -= 1;\n var date = new Date(Date.UTC(2e3, m, d, H, M));\n date.setUTCFullYear(y);\n if (date.getUTCMonth() !== m) return BADNUM;\n if (date.getUTCDate() !== d) return BADNUM;\n return date.getTime() + S * ONESEC;\n };\n MIN_MS = exports.MIN_MS = exports.dateTime2ms(\"-9999\");\n MAX_MS = exports.MAX_MS = exports.dateTime2ms(\"9999-12-31 23:59:59.9999\");\n exports.isDateTime = function(s, calendar) {\n return exports.dateTime2ms(s, calendar) !== BADNUM;\n };\n function lpad(val, digits) {\n return String(val + Math.pow(10, digits)).substr(1);\n }\n var NINETYDAYS = 90 * ONEDAY;\n var THREEHOURS = 3 * ONEHOUR;\n var FIVEMIN = 5 * ONEMIN;\n exports.ms2DateTime = function(ms, r, calendar) {\n if (typeof ms !== \"number\" || !(ms >= MIN_MS && ms <= MAX_MS)) return BADNUM;\n if (!r) r = 0;\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var msRounded = Math.round(ms - msecTenths / 10);\n var dateStr, h, m, s, msec10, d;\n if (isWorldCalendar(calendar)) {\n var dateJD = Math.floor(msRounded / ONEDAY) + EPOCHJD;\n var timeMs = Math.floor(mod(ms, ONEDAY));\n try {\n dateStr = Registry.getComponentMethod(\"calendars\", \"getCal\")(calendar).fromJD(dateJD).formatDate(\"yyyy-mm-dd\");\n } catch (e) {\n dateStr = utcFormat(\"G%Y-%m-%d\")(new Date(msRounded));\n }\n if (dateStr.charAt(0) === \"-\") {\n while (dateStr.length < 11) dateStr = \"-0\" + dateStr.substr(1);\n } else {\n while (dateStr.length < 10) dateStr = \"0\" + dateStr;\n }\n h = r < NINETYDAYS ? Math.floor(timeMs / ONEHOUR) : 0;\n m = r < NINETYDAYS ? Math.floor(timeMs % ONEHOUR / ONEMIN) : 0;\n s = r < THREEHOURS ? Math.floor(timeMs % ONEMIN / ONESEC) : 0;\n msec10 = r < FIVEMIN ? timeMs % ONESEC * 10 + msecTenths : 0;\n } else {\n d = new Date(msRounded);\n dateStr = utcFormat(\"%Y-%m-%d\")(d);\n h = r < NINETYDAYS ? d.getUTCHours() : 0;\n m = r < NINETYDAYS ? d.getUTCMinutes() : 0;\n s = r < THREEHOURS ? d.getUTCSeconds() : 0;\n msec10 = r < FIVEMIN ? d.getUTCMilliseconds() * 10 + msecTenths : 0;\n }\n return includeTime(dateStr, h, m, s, msec10);\n };\n exports.ms2DateTimeLocal = function(ms) {\n if (!(ms >= MIN_MS + ONEDAY && ms <= MAX_MS - ONEDAY)) return BADNUM;\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var d = new Date(Math.round(ms - msecTenths / 10));\n var dateStr = timeFormat(\"%Y-%m-%d\")(d);\n var h = d.getHours();\n var m = d.getMinutes();\n var s = d.getSeconds();\n var msec10 = d.getUTCMilliseconds() * 10 + msecTenths;\n return includeTime(dateStr, h, m, s, msec10);\n };\n function includeTime(dateStr, h, m, s, msec10) {\n if (h || m || s || msec10) {\n dateStr += \" \" + lpad(h, 2) + \":\" + lpad(m, 2);\n if (s || msec10) {\n dateStr += \":\" + lpad(s, 2);\n if (msec10) {\n var digits = 4;\n while (msec10 % 10 === 0) {\n digits -= 1;\n msec10 /= 10;\n }\n dateStr += \".\" + lpad(msec10, digits);\n }\n }\n }\n return dateStr;\n }\n exports.cleanDate = function(v, dflt, calendar) {\n if (v === BADNUM) return dflt;\n if (exports.isJSDate(v) || typeof v === \"number\" && isFinite(v)) {\n if (isWorldCalendar(calendar)) {\n Loggers.error(\"JS Dates and milliseconds are incompatible with world calendars\", v);\n return dflt;\n }\n v = exports.ms2DateTimeLocal(+v);\n if (!v && dflt !== void 0) return dflt;\n } else if (!exports.isDateTime(v, calendar)) {\n Loggers.error(\"unrecognized date\", v);\n return dflt;\n }\n return v;\n };\n var fracMatch = /%\\d?f/g;\n var halfYearMatch = /%h/g;\n var quarterToHalfYear = {\n 1: \"1\",\n 2: \"1\",\n 3: \"2\",\n 4: \"2\"\n };\n function modDateFormat(fmt, x, formatter, calendar) {\n fmt = fmt.replace(fracMatch, function(match) {\n var digits = Math.min(+match.charAt(1) || 6, 6);\n var fracSecs = (x / 1e3 % 1 + 2).toFixed(digits).substr(2).replace(/0+$/, \"\") || \"0\";\n return fracSecs;\n });\n var d = new Date(Math.floor(x + 0.05));\n fmt = fmt.replace(halfYearMatch, function() {\n return quarterToHalfYear[formatter(\"%q\")(d)];\n });\n if (isWorldCalendar(calendar)) {\n try {\n fmt = Registry.getComponentMethod(\"calendars\", \"worldCalFmt\")(fmt, x, calendar);\n } catch (e) {\n return \"Invalid\";\n }\n }\n return formatter(fmt)(d);\n }\n var MAXSECONDS = [59, 59.9, 59.99, 59.999, 59.9999];\n function formatTime(x, tr) {\n var timePart = mod(x + 0.05, ONEDAY);\n var timeStr = lpad(Math.floor(timePart / ONEHOUR), 2) + \":\" + lpad(mod(Math.floor(timePart / ONEMIN), 60), 2);\n if (tr !== \"M\") {\n if (!isNumeric(tr)) tr = 0;\n var sec = Math.min(mod(x / ONESEC, 60), MAXSECONDS[tr]);\n var secStr = (100 + sec).toFixed(tr).substr(1);\n if (tr > 0) {\n secStr = secStr.replace(/0+$/, \"\").replace(/[\\.]$/, \"\");\n }\n timeStr += \":\" + secStr;\n }\n return timeStr;\n }\n exports.formatDate = function(x, fmt, tr, formatter, calendar, extraFormat) {\n calendar = isWorldCalendar(calendar) && calendar;\n if (!fmt) {\n if (tr === \"y\") fmt = extraFormat.year;\n else if (tr === \"m\") fmt = extraFormat.month;\n else if (tr === \"d\") {\n fmt = extraFormat.dayMonth + \"\\n\" + extraFormat.year;\n } else {\n return formatTime(x, tr) + \"\\n\" + modDateFormat(extraFormat.dayMonthYear, x, formatter, calendar);\n }\n }\n return modDateFormat(fmt, x, formatter, calendar);\n };\n var THREEDAYS = 3 * ONEDAY;\n exports.incrementMonth = function(ms, dMonth, calendar) {\n calendar = isWorldCalendar(calendar) && calendar;\n var timeMs = mod(ms, ONEDAY);\n ms = Math.round(ms - timeMs);\n if (calendar) {\n try {\n var dateJD = Math.round(ms / ONEDAY) + EPOCHJD;\n var calInstance = Registry.getComponentMethod(\"calendars\", \"getCal\")(calendar);\n var cDate = calInstance.fromJD(dateJD);\n if (dMonth % 12) calInstance.add(cDate, dMonth, \"m\");\n else calInstance.add(cDate, dMonth / 12, \"y\");\n return (cDate.toJD() - EPOCHJD) * ONEDAY + timeMs;\n } catch (e) {\n Loggers.error(\"invalid ms \" + ms + \" in calendar \" + calendar);\n }\n }\n var y = new Date(ms + THREEDAYS);\n return y.setUTCMonth(y.getUTCMonth() + dMonth) + timeMs - THREEDAYS;\n };\n exports.findExactDates = function(data, calendar) {\n var exactYears = 0;\n var exactMonths = 0;\n var exactDays = 0;\n var blankCount = 0;\n var d;\n var di;\n var calInstance = isWorldCalendar(calendar) && Registry.getComponentMethod(\"calendars\", \"getCal\")(calendar);\n for (var i = 0; i < data.length; i++) {\n di = data[i];\n if (!isNumeric(di)) {\n blankCount++;\n continue;\n }\n if (di % ONEDAY) continue;\n if (calInstance) {\n try {\n d = calInstance.fromJD(di / ONEDAY + EPOCHJD);\n if (d.day() === 1) {\n if (d.month() === 1) exactYears++;\n else exactMonths++;\n } else exactDays++;\n } catch (e) {\n }\n } else {\n d = new Date(di);\n if (d.getUTCDate() === 1) {\n if (d.getUTCMonth() === 0) exactYears++;\n else exactMonths++;\n } else exactDays++;\n }\n }\n exactMonths += exactYears;\n exactDays += exactMonths;\n var dataCount = data.length - blankCount;\n return {\n exactYears: exactYears / dataCount,\n exactMonths: exactMonths / dataCount,\n exactDays: exactDays / dataCount\n };\n };\n }\n });\n\n // src/lib/identity.js\n var require_identity2 = __commonJS({\n \"src/lib/identity.js\"(exports, module) {\n \"use strict\";\n module.exports = function identity2(d) {\n return d;\n };\n }\n });\n\n // src/lib/search.js\n var require_search = __commonJS({\n \"src/lib/search.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var loggers = require_loggers();\n var identity2 = require_identity2();\n var BADNUM = require_numerical().BADNUM;\n var roundingError = 1e-9;\n exports.findBin = function(val, bins, linelow) {\n if (isNumeric(bins.start)) {\n return linelow ? Math.ceil((val - bins.start) / bins.size - roundingError) - 1 : Math.floor((val - bins.start) / bins.size + roundingError);\n } else {\n var n1 = 0;\n var n2 = bins.length;\n var c = 0;\n var binSize = n2 > 1 ? (bins[n2 - 1] - bins[0]) / (n2 - 1) : 1;\n var n, test;\n if (binSize >= 0) {\n test = linelow ? lessThan : lessOrEqual;\n } else {\n test = linelow ? greaterOrEqual : greaterThan;\n }\n val += binSize * roundingError * (linelow ? -1 : 1) * (binSize >= 0 ? 1 : -1);\n while (n1 < n2 && c++ < 100) {\n n = Math.floor((n1 + n2) / 2);\n if (test(bins[n], val)) n1 = n + 1;\n else n2 = n;\n }\n if (c > 90) loggers.log(\"Long binary search...\");\n return n1 - 1;\n }\n };\n function lessThan(a, b) {\n return a < b;\n }\n function lessOrEqual(a, b) {\n return a <= b;\n }\n function greaterThan(a, b) {\n return a > b;\n }\n function greaterOrEqual(a, b) {\n return a >= b;\n }\n exports.sorterAsc = function(a, b) {\n return a - b;\n };\n exports.sorterDes = function(a, b) {\n return b - a;\n };\n exports.distinctVals = function(valsIn) {\n var vals = valsIn.slice();\n vals.sort(exports.sorterAsc);\n var last;\n for (last = vals.length - 1; last > -1; last--) {\n if (vals[last] !== BADNUM) break;\n }\n var minDiff = vals[last] - vals[0] || 1;\n var errDiff = minDiff / (last || 1) / 1e4;\n var newVals = [];\n var preV;\n for (var i = 0; i <= last; i++) {\n var v = vals[i];\n var diff = v - preV;\n if (preV === void 0) {\n newVals.push(v);\n preV = v;\n } else if (diff > errDiff) {\n minDiff = Math.min(minDiff, diff);\n newVals.push(v);\n preV = v;\n }\n }\n return { vals: newVals, minDiff };\n };\n exports.roundUp = function(val, arrayIn, reverse) {\n var low = 0;\n var high = arrayIn.length - 1;\n var mid;\n var c = 0;\n var dlow = reverse ? 0 : 1;\n var dhigh = reverse ? 1 : 0;\n var rounded = reverse ? Math.ceil : Math.floor;\n while (low < high && c++ < 100) {\n mid = rounded((low + high) / 2);\n if (arrayIn[mid] <= val) low = mid + dlow;\n else high = mid - dhigh;\n }\n return arrayIn[low];\n };\n exports.sort = function(array, sortFn) {\n var notOrdered = 0;\n var notReversed = 0;\n for (var i = 1; i < array.length; i++) {\n var pairOrder = sortFn(array[i], array[i - 1]);\n if (pairOrder < 0) notOrdered = 1;\n else if (pairOrder > 0) notReversed = 1;\n if (notOrdered && notReversed) return array.sort(sortFn);\n }\n return notReversed ? array : array.reverse();\n };\n exports.findIndexOfMin = function(arr, fn) {\n fn = fn || identity2;\n var min = Infinity;\n var ind;\n for (var i = 0; i < arr.length; i++) {\n var v = fn(arr[i]);\n if (v < min) {\n min = v;\n ind = i;\n }\n }\n return ind;\n };\n }\n });\n\n // src/lib/sort_object_keys.js\n var require_sort_object_keys = __commonJS({\n \"src/lib/sort_object_keys.js\"(exports, module) {\n \"use strict\";\n module.exports = function sortObjectKeys(obj) {\n return Object.keys(obj).sort();\n };\n }\n });\n\n // src/lib/stats.js\n var require_stats = __commonJS({\n \"src/lib/stats.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n exports.aggNums = function(f, v, a, len) {\n var i, b;\n if (!len || len > a.length) len = a.length;\n if (!isNumeric(v)) v = false;\n if (isArrayOrTypedArray(a[0])) {\n b = new Array(len);\n for (i = 0; i < len; i++) b[i] = exports.aggNums(f, v, a[i]);\n a = b;\n }\n for (i = 0; i < len; i++) {\n if (!isNumeric(v)) v = a[i];\n else if (isNumeric(a[i])) v = f(+v, +a[i]);\n }\n return v;\n };\n exports.len = function(data) {\n return exports.aggNums(function(a) {\n return a + 1;\n }, 0, data);\n };\n exports.mean = function(data, len) {\n if (!len) len = exports.len(data);\n return exports.aggNums(function(a, b) {\n return a + b;\n }, 0, data) / len;\n };\n exports.geometricMean = function(data, len) {\n if (!len) len = exports.len(data);\n return Math.pow(exports.aggNums(function(a, b) {\n return a * b;\n }, 1, data), 1 / len);\n };\n exports.midRange = function(numArr) {\n if (numArr === void 0 || numArr.length === 0) return void 0;\n return (exports.aggNums(Math.max, null, numArr) + exports.aggNums(Math.min, null, numArr)) / 2;\n };\n exports.variance = function(data, len, mean) {\n if (!len) len = exports.len(data);\n if (!isNumeric(mean)) mean = exports.mean(data, len);\n return exports.aggNums(function(a, b) {\n return a + Math.pow(b - mean, 2);\n }, 0, data) / len;\n };\n exports.stdev = function(data, len, mean) {\n return Math.sqrt(exports.variance(data, len, mean));\n };\n exports.median = function(data) {\n var b = data.slice().sort();\n return exports.interp(b, 0.5);\n };\n exports.interp = function(arr, n) {\n if (!isNumeric(n)) throw \"n should be a finite number\";\n n = n * arr.length - 0.5;\n if (n < 0) return arr[0];\n if (n > arr.length - 1) return arr[arr.length - 1];\n var frac = n % 1;\n return frac * arr[Math.ceil(n)] + (1 - frac) * arr[Math.floor(n)];\n };\n }\n });\n\n // src/lib/angles.js\n var require_angles = __commonJS({\n \"src/lib/angles.js\"(exports, module) {\n \"use strict\";\n var modModule = require_mod();\n var mod = modModule.mod;\n var modHalf = modModule.modHalf;\n var PI = Math.PI;\n var twoPI = 2 * PI;\n function deg2rad(deg) {\n return deg / 180 * PI;\n }\n function rad2deg(rad) {\n return rad / PI * 180;\n }\n function isFullCircle(aBnds) {\n return Math.abs(aBnds[1] - aBnds[0]) > twoPI - 1e-14;\n }\n function angleDelta(a, b) {\n return modHalf(b - a, twoPI);\n }\n function angleDist(a, b) {\n return Math.abs(angleDelta(a, b));\n }\n function isAngleInsideSector(a, aBnds) {\n if (isFullCircle(aBnds)) return true;\n var s0, s1;\n if (aBnds[0] < aBnds[1]) {\n s0 = aBnds[0];\n s1 = aBnds[1];\n } else {\n s0 = aBnds[1];\n s1 = aBnds[0];\n }\n s0 = mod(s0, twoPI);\n s1 = mod(s1, twoPI);\n if (s0 > s1) s1 += twoPI;\n var a0 = mod(a, twoPI);\n var a1 = a0 + twoPI;\n return a0 >= s0 && a0 <= s1 || a1 >= s0 && a1 <= s1;\n }\n function isPtInsideSector(r, a, rBnds, aBnds) {\n if (!isAngleInsideSector(a, aBnds)) return false;\n var r0, r1;\n if (rBnds[0] < rBnds[1]) {\n r0 = rBnds[0];\n r1 = rBnds[1];\n } else {\n r0 = rBnds[1];\n r1 = rBnds[0];\n }\n return r >= r0 && r <= r1;\n }\n function _path(r0, r1, a0, a1, cx, cy, isClosed) {\n cx = cx || 0;\n cy = cy || 0;\n var isCircle = isFullCircle([a0, a1]);\n var aStart, aMid, aEnd;\n var rStart, rEnd;\n if (isCircle) {\n aStart = 0;\n aMid = PI;\n aEnd = twoPI;\n } else {\n if (a0 < a1) {\n aStart = a0;\n aEnd = a1;\n } else {\n aStart = a1;\n aEnd = a0;\n }\n }\n if (r0 < r1) {\n rStart = r0;\n rEnd = r1;\n } else {\n rStart = r1;\n rEnd = r0;\n }\n function pt(r, a) {\n return [r * Math.cos(a) + cx, cy - r * Math.sin(a)];\n }\n var largeArc = Math.abs(aEnd - aStart) <= PI ? 0 : 1;\n function arc(r, a, cw) {\n return \"A\" + [r, r] + \" \" + [0, largeArc, cw] + \" \" + pt(r, a);\n }\n var p;\n if (isCircle) {\n if (rStart === null) {\n p = \"M\" + pt(rEnd, aStart) + arc(rEnd, aMid, 0) + arc(rEnd, aEnd, 0) + \"Z\";\n } else {\n p = \"M\" + pt(rStart, aStart) + arc(rStart, aMid, 0) + arc(rStart, aEnd, 0) + \"ZM\" + pt(rEnd, aStart) + arc(rEnd, aMid, 1) + arc(rEnd, aEnd, 1) + \"Z\";\n }\n } else {\n if (rStart === null) {\n p = \"M\" + pt(rEnd, aStart) + arc(rEnd, aEnd, 0);\n if (isClosed) p += \"L0,0Z\";\n } else {\n p = \"M\" + pt(rStart, aStart) + \"L\" + pt(rEnd, aStart) + arc(rEnd, aEnd, 0) + \"L\" + pt(rStart, aEnd) + arc(rStart, aStart, 1) + \"Z\";\n }\n }\n return p;\n }\n function pathArc(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 0);\n }\n function pathSector(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 1);\n }\n function pathAnnulus(r0, r1, a0, a1, cx, cy) {\n return _path(r0, r1, a0, a1, cx, cy, 1);\n }\n module.exports = {\n deg2rad,\n rad2deg,\n angleDelta,\n angleDist,\n isFullCircle,\n isAngleInsideSector,\n isPtInsideSector,\n pathArc,\n pathSector,\n pathAnnulus\n };\n }\n });\n\n // src/lib/anchor_utils.js\n var require_anchor_utils = __commonJS({\n \"src/lib/anchor_utils.js\"(exports) {\n \"use strict\";\n exports.isLeftAnchor = function isLeftAnchor(opts) {\n return opts.xanchor === \"left\" || opts.xanchor === \"auto\" && opts.x <= 1 / 3;\n };\n exports.isCenterAnchor = function isCenterAnchor(opts) {\n return opts.xanchor === \"center\" || opts.xanchor === \"auto\" && opts.x > 1 / 3 && opts.x < 2 / 3;\n };\n exports.isRightAnchor = function isRightAnchor(opts) {\n return opts.xanchor === \"right\" || opts.xanchor === \"auto\" && opts.x >= 2 / 3;\n };\n exports.isTopAnchor = function isTopAnchor(opts) {\n return opts.yanchor === \"top\" || opts.yanchor === \"auto\" && opts.y >= 2 / 3;\n };\n exports.isMiddleAnchor = function isMiddleAnchor(opts) {\n return opts.yanchor === \"middle\" || opts.yanchor === \"auto\" && opts.y > 1 / 3 && opts.y < 2 / 3;\n };\n exports.isBottomAnchor = function isBottomAnchor(opts) {\n return opts.yanchor === \"bottom\" || opts.yanchor === \"auto\" && opts.y <= 1 / 3;\n };\n }\n });\n\n // src/lib/geometry2d.js\n var require_geometry2d = __commonJS({\n \"src/lib/geometry2d.js\"(exports) {\n \"use strict\";\n var mod = require_mod().mod;\n exports.segmentsIntersect = segmentsIntersect;\n function segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n var a = x2 - x1;\n var b = x3 - x1;\n var c = x4 - x3;\n var d = y2 - y1;\n var e = y3 - y1;\n var f = y4 - y3;\n var det = a * f - c * d;\n if (det === 0) return null;\n var t = (b * f - c * e) / det;\n var u = (b * d - a * e) / det;\n if (u < 0 || u > 1 || t < 0 || t > 1) return null;\n return { x: x1 + a * t, y: y1 + d * t };\n }\n exports.segmentDistance = function segmentDistance(x1, y1, x2, y2, x3, y3, x4, y4) {\n if (segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4)) return 0;\n var x12 = x2 - x1;\n var y12 = y2 - y1;\n var x34 = x4 - x3;\n var y34 = y4 - y3;\n var ll12 = x12 * x12 + y12 * y12;\n var ll34 = x34 * x34 + y34 * y34;\n var dist2 = Math.min(\n perpDistance2(x12, y12, ll12, x3 - x1, y3 - y1),\n perpDistance2(x12, y12, ll12, x4 - x1, y4 - y1),\n perpDistance2(x34, y34, ll34, x1 - x3, y1 - y3),\n perpDistance2(x34, y34, ll34, x2 - x3, y2 - y3)\n );\n return Math.sqrt(dist2);\n };\n function perpDistance2(xab, yab, llab, xac, yac) {\n var fcAB = xac * xab + yac * yab;\n if (fcAB < 0) {\n return xac * xac + yac * yac;\n } else if (fcAB > llab) {\n var xbc = xac - xab;\n var ybc = yac - yab;\n return xbc * xbc + ybc * ybc;\n } else {\n var crossProduct = xac * yab - yac * xab;\n return crossProduct * crossProduct / llab;\n }\n }\n var locationCache;\n var workingPath;\n var workingTextWidth;\n exports.getTextLocation = function getTextLocation(path, totalPathLen, positionOnPath, textWidth) {\n if (path !== workingPath || textWidth !== workingTextWidth) {\n locationCache = {};\n workingPath = path;\n workingTextWidth = textWidth;\n }\n if (locationCache[positionOnPath]) {\n return locationCache[positionOnPath];\n }\n var p0 = path.getPointAtLength(mod(positionOnPath - textWidth / 2, totalPathLen));\n var p1 = path.getPointAtLength(mod(positionOnPath + textWidth / 2, totalPathLen));\n var theta = Math.atan((p1.y - p0.y) / (p1.x - p0.x));\n var pCenter = path.getPointAtLength(mod(positionOnPath, totalPathLen));\n var x = (pCenter.x * 4 + p0.x + p1.x) / 6;\n var y = (pCenter.y * 4 + p0.y + p1.y) / 6;\n var out = { x, y, theta };\n locationCache[positionOnPath] = out;\n return out;\n };\n exports.clearLocationCache = function() {\n workingPath = null;\n };\n exports.getVisibleSegment = function getVisibleSegment(path, bounds, buffer) {\n var left = bounds.left;\n var right = bounds.right;\n var top = bounds.top;\n var bottom = bounds.bottom;\n var pMin = 0;\n var pTotal = path.getTotalLength();\n var pMax = pTotal;\n var pt0, ptTotal;\n function getDistToPlot(len) {\n var pt = path.getPointAtLength(len);\n if (len === 0) pt0 = pt;\n else if (len === pTotal) ptTotal = pt;\n var dx = pt.x < left ? left - pt.x : pt.x > right ? pt.x - right : 0;\n var dy = pt.y < top ? top - pt.y : pt.y > bottom ? pt.y - bottom : 0;\n return Math.sqrt(dx * dx + dy * dy);\n }\n var distToPlot = getDistToPlot(pMin);\n while (distToPlot) {\n pMin += distToPlot + buffer;\n if (pMin > pMax) return;\n distToPlot = getDistToPlot(pMin);\n }\n distToPlot = getDistToPlot(pMax);\n while (distToPlot) {\n pMax -= distToPlot + buffer;\n if (pMin > pMax) return;\n distToPlot = getDistToPlot(pMax);\n }\n return {\n min: pMin,\n max: pMax,\n len: pMax - pMin,\n total: pTotal,\n isClosed: pMin === 0 && pMax === pTotal && Math.abs(pt0.x - ptTotal.x) < 0.1 && Math.abs(pt0.y - ptTotal.y) < 0.1\n };\n };\n exports.findPointOnPath = function findPointOnPath(path, val, coord, opts) {\n opts = opts || {};\n var pathLength = opts.pathLength || path.getTotalLength();\n var tolerance = opts.tolerance || 1e-3;\n var iterationLimit = opts.iterationLimit || 30;\n var mul = path.getPointAtLength(0)[coord] > path.getPointAtLength(pathLength)[coord] ? -1 : 1;\n var i = 0;\n var b0 = 0;\n var b1 = pathLength;\n var mid;\n var pt;\n var diff;\n while (i < iterationLimit) {\n mid = (b0 + b1) / 2;\n pt = path.getPointAtLength(mid);\n diff = pt[coord] - val;\n if (Math.abs(diff) < tolerance) {\n return pt;\n } else {\n if (mul * diff > 0) {\n b1 = mid;\n } else {\n b0 = mid;\n }\n i++;\n }\n }\n return pt;\n };\n }\n });\n\n // src/lib/throttle.js\n var require_throttle = __commonJS({\n \"src/lib/throttle.js\"(exports) {\n \"use strict\";\n var timerCache = {};\n exports.throttle = function throttle(id, minInterval, callback) {\n var cache = timerCache[id];\n var now = Date.now();\n if (!cache) {\n for (var idi in timerCache) {\n if (timerCache[idi].ts < now - 6e4) {\n delete timerCache[idi];\n }\n }\n cache = timerCache[id] = { ts: 0, timer: null };\n }\n _clearTimeout(cache);\n function exec() {\n callback();\n cache.ts = Date.now();\n if (cache.onDone) {\n cache.onDone();\n cache.onDone = null;\n }\n }\n if (now > cache.ts + minInterval) {\n exec();\n return;\n }\n cache.timer = setTimeout(function() {\n exec();\n cache.timer = null;\n }, minInterval);\n };\n exports.done = function(id) {\n var cache = timerCache[id];\n if (!cache || !cache.timer) return Promise.resolve();\n return new Promise(function(resolve) {\n var previousOnDone = cache.onDone;\n cache.onDone = function onDone() {\n if (previousOnDone) previousOnDone();\n resolve();\n cache.onDone = null;\n };\n });\n };\n exports.clear = function(id) {\n if (id) {\n _clearTimeout(timerCache[id]);\n delete timerCache[id];\n } else {\n for (var idi in timerCache) exports.clear(idi);\n }\n };\n function _clearTimeout(cache) {\n if (cache && cache.timer !== null) {\n clearTimeout(cache.timer);\n cache.timer = null;\n }\n }\n }\n });\n\n // src/lib/clear_responsive.js\n var require_clear_responsive = __commonJS({\n \"src/lib/clear_responsive.js\"(exports, module) {\n \"use strict\";\n module.exports = function clearResponsive(gd) {\n if (gd._responsiveChartHandler) {\n window.removeEventListener(\"resize\", gd._responsiveChartHandler);\n delete gd._responsiveChartHandler;\n }\n };\n }\n });\n\n // node_modules/is-mobile/index.js\n var require_is_mobile = __commonJS({\n \"node_modules/is-mobile/index.js\"(exports, module) {\n \"use strict\";\n module.exports = isMobile;\n module.exports.isMobile = isMobile;\n module.exports.default = isMobile;\n var mobileRE = /(android|bb\\d+|meego).+mobile|armv7l|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i;\n var notMobileRE = /CrOS/;\n var tabletRE = /android|ipad|playbook|silk/i;\n function isMobile(opts) {\n if (!opts) opts = {};\n let ua = opts.ua;\n if (!ua && typeof navigator !== \"undefined\") ua = navigator.userAgent;\n if (ua && ua.headers && typeof ua.headers[\"user-agent\"] === \"string\") {\n ua = ua.headers[\"user-agent\"];\n }\n if (typeof ua !== \"string\") return false;\n let result = mobileRE.test(ua) && !notMobileRE.test(ua) || !!opts.tablet && tabletRE.test(ua);\n if (!result && opts.tablet && opts.featureDetect && navigator && navigator.maxTouchPoints > 1 && ua.indexOf(\"Macintosh\") !== -1 && ua.indexOf(\"Safari\") !== -1) {\n result = true;\n }\n return result;\n }\n }\n });\n\n // src/lib/preserve_drawing_buffer.js\n var require_preserve_drawing_buffer = __commonJS({\n \"src/lib/preserve_drawing_buffer.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isMobileOrTablet = require_is_mobile();\n module.exports = function preserveDrawingBuffer(opts) {\n var ua;\n if (opts && opts.hasOwnProperty(\"userAgent\")) {\n ua = opts.userAgent;\n } else {\n ua = getUserAgent();\n }\n if (typeof ua !== \"string\") return true;\n var enable = isMobileOrTablet({\n ua: { headers: { \"user-agent\": ua } },\n tablet: true,\n featureDetect: false\n });\n if (!enable) {\n var allParts = ua.split(\" \");\n for (var i = 1; i < allParts.length; i++) {\n var part = allParts[i];\n if (part.indexOf(\"Safari\") !== -1) {\n for (var k = i - 1; k > -1; k--) {\n var prevPart = allParts[k];\n if (prevPart.substr(0, 8) === \"Version/\") {\n var v = prevPart.substr(8).split(\".\")[0];\n if (isNumeric(v)) v = +v;\n if (v >= 13) return true;\n }\n }\n }\n }\n }\n return enable;\n };\n function getUserAgent() {\n var ua;\n if (typeof navigator !== \"undefined\") {\n ua = navigator.userAgent;\n }\n if (ua && ua.headers && typeof ua.headers[\"user-agent\"] === \"string\") {\n ua = ua.headers[\"user-agent\"];\n }\n return ua;\n }\n }\n });\n\n // src/lib/make_trace_groups.js\n var require_make_trace_groups = __commonJS({\n \"src/lib/make_trace_groups.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n module.exports = function makeTraceGroups(traceLayer, cdModule, cls) {\n var traces = traceLayer.selectAll(\"g.\" + cls.replace(/\\s/g, \".\")).data(cdModule, function(cd) {\n return cd[0].trace.uid;\n });\n traces.exit().remove();\n traces.enter().append(\"g\").attr(\"class\", cls);\n traces.order();\n var k = traceLayer.classed(\"rangeplot\") ? \"nodeRangePlot3\" : \"node3\";\n traces.each(function(cd) {\n cd[0][k] = d3.select(this);\n });\n return traces;\n };\n }\n });\n\n // src/lib/localize.js\n var require_localize = __commonJS({\n \"src/lib/localize.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n module.exports = function localize(gd, s) {\n var locale = gd._context.locale;\n for (var i = 0; i < 2; i++) {\n var locales = gd._context.locales;\n for (var j = 0; j < 2; j++) {\n var dict = (locales[locale] || {}).dictionary;\n if (dict) {\n var out = dict[s];\n if (out) return out;\n }\n locales = Registry.localeRegistry;\n }\n var baseLocale = locale.split(\"-\")[0];\n if (baseLocale === locale) break;\n locale = baseLocale;\n }\n return s;\n };\n }\n });\n\n // src/lib/filter_unique.js\n var require_filter_unique = __commonJS({\n \"src/lib/filter_unique.js\"(exports, module) {\n \"use strict\";\n module.exports = function filterUnique(array) {\n var seen = {};\n var out = [];\n var j = 0;\n for (var i = 0; i < array.length; i++) {\n var item = array[i];\n if (seen[item] !== 1) {\n seen[item] = 1;\n out[j++] = item;\n }\n }\n return out;\n };\n }\n });\n\n // src/lib/filter_visible.js\n var require_filter_visible = __commonJS({\n \"src/lib/filter_visible.js\"(exports, module) {\n \"use strict\";\n module.exports = function filterVisible(container) {\n var filterFn = isCalcData(container) ? calcDataFilter : baseFilter;\n var out = [];\n for (var i = 0; i < container.length; i++) {\n var item = container[i];\n if (filterFn(item)) out.push(item);\n }\n return out;\n };\n function baseFilter(item) {\n return item.visible === true;\n }\n function calcDataFilter(item) {\n var trace = item[0].trace;\n return trace.visible === true && trace._length !== 0;\n }\n function isCalcData(cont) {\n return Array.isArray(cont) && Array.isArray(cont[0]) && cont[0][0] && cont[0][0].trace;\n }\n }\n });\n\n // src/lib/increment.js\n var require_increment = __commonJS({\n \"src/lib/increment.js\"(exports, module) {\n \"use strict\";\n module.exports = function incrementNumeric(x, delta) {\n if (!delta) return x;\n var scale = 1 / Math.abs(delta);\n var newX = scale > 1 ? (scale * x + scale * delta) / scale : x + delta;\n var lenX1 = String(newX).length;\n if (lenX1 > 16) {\n var lenDt = String(delta).length;\n var lenX0 = String(x).length;\n if (lenX1 >= lenX0 + lenDt) {\n var s = parseFloat(newX).toPrecision(12);\n if (s.indexOf(\"e+\") === -1) newX = +s;\n }\n }\n return newX;\n };\n }\n });\n\n // src/lib/clean_number.js\n var require_clean_number = __commonJS({\n \"src/lib/clean_number.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var JUNK = /^['\"%,$#\\s']+|[, ]|['\"%,$#\\s']+$/g;\n module.exports = function cleanNumber(v) {\n if (typeof v === \"string\") {\n v = v.replace(JUNK, \"\");\n }\n if (isNumeric(v)) return Number(v);\n return BADNUM;\n };\n }\n });\n\n // src/lib/index.js\n var require_lib = __commonJS({\n \"src/lib/index.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var utcFormat = require_d3_time_format().utcFormat;\n var d3Format = require_d3_format().format;\n var isNumeric = require_fast_isnumeric();\n var numConstants = require_numerical();\n var MAX_SAFE = numConstants.FP_SAFE;\n var MIN_SAFE = -MAX_SAFE;\n var BADNUM = numConstants.BADNUM;\n var lib = module.exports = {};\n lib.adjustFormat = function adjustFormat(formatStr) {\n if (!formatStr || /^\\d[.]\\df/.test(formatStr) || /[.]\\d%/.test(formatStr)) return formatStr;\n if (formatStr === \"0.f\") return \"~f\";\n if (/^\\d%/.test(formatStr)) return \"~%\";\n if (/^\\ds/.test(formatStr)) return \"~s\";\n if (!/^[~,.0$]/.test(formatStr) && /[&fps]/.test(formatStr)) return \"~\" + formatStr;\n return formatStr;\n };\n var seenBadFormats = {};\n lib.warnBadFormat = function(f) {\n var key = String(f);\n if (!seenBadFormats[key]) {\n seenBadFormats[key] = 1;\n lib.warn('encountered bad format: \"' + key + '\"');\n }\n };\n lib.noFormat = function(value) {\n return String(value);\n };\n lib.numberFormat = function(formatStr) {\n var fn;\n try {\n fn = d3Format(lib.adjustFormat(formatStr));\n } catch (e) {\n lib.warnBadFormat(formatStr);\n return lib.noFormat;\n }\n return fn;\n };\n lib.nestedProperty = require_nested_property();\n lib.keyedContainer = require_keyed_container();\n lib.relativeAttr = require_relative_attr();\n lib.isPlainObject = require_is_plain_object();\n lib.toLogRange = require_to_log_range();\n lib.relinkPrivateKeys = require_relink_private();\n var arrayModule = require_array();\n lib.isArrayBuffer = arrayModule.isArrayBuffer;\n lib.isTypedArray = arrayModule.isTypedArray;\n lib.isArrayOrTypedArray = arrayModule.isArrayOrTypedArray;\n lib.isArray1D = arrayModule.isArray1D;\n lib.ensureArray = arrayModule.ensureArray;\n lib.concat = arrayModule.concat;\n lib.maxRowLength = arrayModule.maxRowLength;\n lib.minRowLength = arrayModule.minRowLength;\n var modModule = require_mod();\n lib.mod = modModule.mod;\n lib.modHalf = modModule.modHalf;\n var coerceModule = require_coerce();\n lib.valObjectMeta = coerceModule.valObjectMeta;\n lib.coerce = coerceModule.coerce;\n lib.coerce2 = coerceModule.coerce2;\n lib.coerceFont = coerceModule.coerceFont;\n lib.coercePattern = coerceModule.coercePattern;\n lib.coerceHoverinfo = coerceModule.coerceHoverinfo;\n lib.coerceSelectionMarkerOpacity = coerceModule.coerceSelectionMarkerOpacity;\n lib.validate = coerceModule.validate;\n var datesModule = require_dates();\n lib.dateTime2ms = datesModule.dateTime2ms;\n lib.isDateTime = datesModule.isDateTime;\n lib.ms2DateTime = datesModule.ms2DateTime;\n lib.ms2DateTimeLocal = datesModule.ms2DateTimeLocal;\n lib.cleanDate = datesModule.cleanDate;\n lib.isJSDate = datesModule.isJSDate;\n lib.formatDate = datesModule.formatDate;\n lib.incrementMonth = datesModule.incrementMonth;\n lib.dateTick0 = datesModule.dateTick0;\n lib.dfltRange = datesModule.dfltRange;\n lib.findExactDates = datesModule.findExactDates;\n lib.MIN_MS = datesModule.MIN_MS;\n lib.MAX_MS = datesModule.MAX_MS;\n var searchModule = require_search();\n lib.findBin = searchModule.findBin;\n lib.sorterAsc = searchModule.sorterAsc;\n lib.sorterDes = searchModule.sorterDes;\n lib.distinctVals = searchModule.distinctVals;\n lib.roundUp = searchModule.roundUp;\n lib.sort = searchModule.sort;\n lib.findIndexOfMin = searchModule.findIndexOfMin;\n lib.sortObjectKeys = require_sort_object_keys();\n var statsModule = require_stats();\n lib.aggNums = statsModule.aggNums;\n lib.len = statsModule.len;\n lib.mean = statsModule.mean;\n lib.geometricMean = statsModule.geometricMean;\n lib.median = statsModule.median;\n lib.midRange = statsModule.midRange;\n lib.variance = statsModule.variance;\n lib.stdev = statsModule.stdev;\n lib.interp = statsModule.interp;\n var matrixModule = require_matrix();\n lib.init2dArray = matrixModule.init2dArray;\n lib.transposeRagged = matrixModule.transposeRagged;\n lib.dot = matrixModule.dot;\n lib.translationMatrix = matrixModule.translationMatrix;\n lib.rotationMatrix = matrixModule.rotationMatrix;\n lib.rotationXYMatrix = matrixModule.rotationXYMatrix;\n lib.apply3DTransform = matrixModule.apply3DTransform;\n lib.apply2DTransform = matrixModule.apply2DTransform;\n lib.apply2DTransform2 = matrixModule.apply2DTransform2;\n lib.convertCssMatrix = matrixModule.convertCssMatrix;\n lib.inverseTransformMatrix = matrixModule.inverseTransformMatrix;\n var anglesModule = require_angles();\n lib.deg2rad = anglesModule.deg2rad;\n lib.rad2deg = anglesModule.rad2deg;\n lib.angleDelta = anglesModule.angleDelta;\n lib.angleDist = anglesModule.angleDist;\n lib.isFullCircle = anglesModule.isFullCircle;\n lib.isAngleInsideSector = anglesModule.isAngleInsideSector;\n lib.isPtInsideSector = anglesModule.isPtInsideSector;\n lib.pathArc = anglesModule.pathArc;\n lib.pathSector = anglesModule.pathSector;\n lib.pathAnnulus = anglesModule.pathAnnulus;\n var anchorUtils = require_anchor_utils();\n lib.isLeftAnchor = anchorUtils.isLeftAnchor;\n lib.isCenterAnchor = anchorUtils.isCenterAnchor;\n lib.isRightAnchor = anchorUtils.isRightAnchor;\n lib.isTopAnchor = anchorUtils.isTopAnchor;\n lib.isMiddleAnchor = anchorUtils.isMiddleAnchor;\n lib.isBottomAnchor = anchorUtils.isBottomAnchor;\n var geom2dModule = require_geometry2d();\n lib.segmentsIntersect = geom2dModule.segmentsIntersect;\n lib.segmentDistance = geom2dModule.segmentDistance;\n lib.getTextLocation = geom2dModule.getTextLocation;\n lib.clearLocationCache = geom2dModule.clearLocationCache;\n lib.getVisibleSegment = geom2dModule.getVisibleSegment;\n lib.findPointOnPath = geom2dModule.findPointOnPath;\n var extendModule = require_extend();\n lib.extendFlat = extendModule.extendFlat;\n lib.extendDeep = extendModule.extendDeep;\n lib.extendDeepAll = extendModule.extendDeepAll;\n lib.extendDeepNoArrays = extendModule.extendDeepNoArrays;\n var loggersModule = require_loggers();\n lib.log = loggersModule.log;\n lib.warn = loggersModule.warn;\n lib.error = loggersModule.error;\n var regexModule = require_regex();\n lib.counterRegex = regexModule.counter;\n var throttleModule = require_throttle();\n lib.throttle = throttleModule.throttle;\n lib.throttleDone = throttleModule.done;\n lib.clearThrottle = throttleModule.clear;\n var domModule = require_dom();\n lib.getGraphDiv = domModule.getGraphDiv;\n lib.isPlotDiv = domModule.isPlotDiv;\n lib.removeElement = domModule.removeElement;\n lib.addStyleRule = domModule.addStyleRule;\n lib.addRelatedStyleRule = domModule.addRelatedStyleRule;\n lib.deleteRelatedStyleRule = domModule.deleteRelatedStyleRule;\n lib.setStyleOnHover = domModule.setStyleOnHover;\n lib.getFullTransformMatrix = domModule.getFullTransformMatrix;\n lib.getElementTransformMatrix = domModule.getElementTransformMatrix;\n lib.getElementAndAncestors = domModule.getElementAndAncestors;\n lib.equalDomRects = domModule.equalDomRects;\n lib.clearResponsive = require_clear_responsive();\n lib.preserveDrawingBuffer = require_preserve_drawing_buffer();\n lib.makeTraceGroups = require_make_trace_groups();\n lib._ = require_localize();\n lib.notifier = require_notifier();\n lib.filterUnique = require_filter_unique();\n lib.filterVisible = require_filter_visible();\n lib.pushUnique = require_push_unique();\n lib.increment = require_increment();\n lib.cleanNumber = require_clean_number();\n lib.ensureNumber = function ensureNumber(v) {\n if (!isNumeric(v)) return BADNUM;\n v = Number(v);\n return v > MAX_SAFE || v < MIN_SAFE ? BADNUM : v;\n };\n lib.isIndex = function(v, len) {\n if (len !== void 0 && v >= len) return false;\n return isNumeric(v) && v >= 0 && v % 1 === 0;\n };\n lib.noop = require_noop();\n lib.identity = require_identity2();\n lib.repeat = function(v, cnt) {\n var out = new Array(cnt);\n for (var i = 0; i < cnt; i++) {\n out[i] = v;\n }\n return out;\n };\n lib.swapAttrs = function(cont, attrList, part1, part2) {\n if (!part1) part1 = \"x\";\n if (!part2) part2 = \"y\";\n for (var i = 0; i < attrList.length; i++) {\n var attr = attrList[i];\n var xp = lib.nestedProperty(cont, attr.replace(\"?\", part1));\n var yp = lib.nestedProperty(cont, attr.replace(\"?\", part2));\n var temp = xp.get();\n xp.set(yp.get());\n yp.set(temp);\n }\n };\n lib.raiseToTop = function raiseToTop(elem) {\n elem.parentNode.appendChild(elem);\n };\n lib.cancelTransition = function(selection) {\n return selection.transition().duration(0);\n };\n lib.constrain = function(v, v0, v1) {\n if (v0 > v1) return Math.max(v1, Math.min(v0, v));\n return Math.max(v0, Math.min(v1, v));\n };\n lib.bBoxIntersect = function(a, b, pad) {\n pad = pad || 0;\n return a.left <= b.right + pad && b.left <= a.right + pad && a.top <= b.bottom + pad && b.top <= a.bottom + pad;\n };\n lib.simpleMap = function(array, func, x1, x2, opts) {\n var len = array.length;\n var out = new Array(len);\n for (var i = 0; i < len; i++) out[i] = func(array[i], x1, x2, opts);\n return out;\n };\n lib.randstr = function randstr(existing, bits, base, _recursion) {\n if (!base) base = 16;\n if (bits === void 0) bits = 24;\n if (bits <= 0) return \"0\";\n var digits = Math.log(Math.pow(2, bits)) / Math.log(base);\n var res = \"\";\n var i, b, x;\n for (i = 2; digits === Infinity; i *= 2) {\n digits = Math.log(Math.pow(2, bits / i)) / Math.log(base) * i;\n }\n var rem = digits - Math.floor(digits);\n for (i = 0; i < Math.floor(digits); i++) {\n x = Math.floor(Math.random() * base).toString(base);\n res = x + res;\n }\n if (rem) {\n b = Math.pow(base, rem);\n x = Math.floor(Math.random() * b).toString(base);\n res = x + res;\n }\n var parsed = parseInt(res, base);\n if (existing && existing[res] || parsed !== Infinity && parsed >= Math.pow(2, bits)) {\n if (_recursion > 10) {\n lib.warn(\"randstr failed uniqueness\");\n return res;\n }\n return randstr(existing, bits, base, (_recursion || 0) + 1);\n } else return res;\n };\n lib.OptionControl = function(opt, optname) {\n if (!opt) opt = {};\n if (!optname) optname = \"opt\";\n var self2 = {};\n self2.optionList = [];\n self2._newoption = function(optObj) {\n optObj[optname] = opt;\n self2[optObj.name] = optObj;\n self2.optionList.push(optObj);\n };\n self2[\"_\" + optname] = opt;\n return self2;\n };\n lib.smooth = function(arrayIn, FWHM) {\n FWHM = Math.round(FWHM) || 0;\n if (FWHM < 2) return arrayIn;\n var alen = arrayIn.length;\n var alen2 = 2 * alen;\n var wlen = 2 * FWHM - 1;\n var w = new Array(wlen);\n var arrayOut = new Array(alen);\n var i;\n var j;\n var k;\n var v;\n for (i = 0; i < wlen; i++) {\n w[i] = (1 - Math.cos(Math.PI * (i + 1) / FWHM)) / (2 * FWHM);\n }\n for (i = 0; i < alen; i++) {\n v = 0;\n for (j = 0; j < wlen; j++) {\n k = i + j + 1 - FWHM;\n if (k < -alen) k -= alen2 * Math.round(k / alen2);\n else if (k >= alen2) k -= alen2 * Math.floor(k / alen2);\n if (k < 0) k = -1 - k;\n else if (k >= alen) k = alen2 - 1 - k;\n v += arrayIn[k] * w[j];\n }\n arrayOut[i] = v;\n }\n return arrayOut;\n };\n lib.syncOrAsync = function(sequence, arg, finalStep) {\n var ret, fni;\n function continueAsync() {\n return lib.syncOrAsync(sequence, arg, finalStep);\n }\n while (sequence.length) {\n fni = sequence.splice(0, 1)[0];\n ret = fni(arg);\n if (ret && ret.then) {\n return ret.then(continueAsync);\n }\n }\n return finalStep && finalStep(arg);\n };\n lib.stripTrailingSlash = function(str) {\n if (str.substr(-1) === \"/\") return str.substr(0, str.length - 1);\n return str;\n };\n lib.noneOrAll = function(containerIn, containerOut, attrList) {\n if (!containerIn) return;\n var hasAny = false;\n var hasAll = true;\n var i;\n var val;\n for (i = 0; i < attrList.length; i++) {\n val = containerIn[attrList[i]];\n if (val !== void 0 && val !== null) hasAny = true;\n else hasAll = false;\n }\n if (hasAny && !hasAll) {\n for (i = 0; i < attrList.length; i++) {\n containerIn[attrList[i]] = containerOut[attrList[i]];\n }\n }\n };\n lib.mergeArray = function(traceAttr, cd, cdAttr, fn) {\n var hasFn = typeof fn === \"function\";\n if (lib.isArrayOrTypedArray(traceAttr)) {\n var imax = Math.min(traceAttr.length, cd.length);\n for (var i = 0; i < imax; i++) {\n var v = traceAttr[i];\n cd[i][cdAttr] = hasFn ? fn(v) : v;\n }\n }\n };\n lib.mergeArrayCastPositive = function(traceAttr, cd, cdAttr) {\n return lib.mergeArray(traceAttr, cd, cdAttr, function(v) {\n var w = +v;\n return !isFinite(w) ? 0 : w > 0 ? w : 0;\n });\n };\n lib.fillArray = function(traceAttr, cd, cdAttr, fn) {\n fn = fn || lib.identity;\n if (lib.isArrayOrTypedArray(traceAttr)) {\n for (var i = 0; i < cd.length; i++) {\n cd[i][cdAttr] = fn(traceAttr[i]);\n }\n }\n };\n lib.castOption = function(trace, ptNumber, astr, fn) {\n fn = fn || lib.identity;\n var val = lib.nestedProperty(trace, astr).get();\n if (lib.isArrayOrTypedArray(val)) {\n if (Array.isArray(ptNumber) && lib.isArrayOrTypedArray(val[ptNumber[0]])) {\n return fn(val[ptNumber[0]][ptNumber[1]]);\n } else {\n return fn(val[ptNumber]);\n }\n } else {\n return val;\n }\n };\n lib.extractOption = function(calcPt, trace, calcKey, traceKey) {\n if (calcKey in calcPt) return calcPt[calcKey];\n var traceVal = lib.nestedProperty(trace, traceKey).get();\n if (!Array.isArray(traceVal)) return traceVal;\n };\n function makePtIndex2PtNumber(indexToPoints) {\n var ptIndex2ptNumber = {};\n for (var k in indexToPoints) {\n var pts = indexToPoints[k];\n for (var j = 0; j < pts.length; j++) {\n ptIndex2ptNumber[pts[j]] = +k;\n }\n }\n return ptIndex2ptNumber;\n }\n lib.tagSelected = function(calcTrace, trace, ptNumber2cdIndex) {\n var selectedpoints = trace.selectedpoints;\n var indexToPoints = trace._indexToPoints;\n var ptIndex2ptNumber;\n if (indexToPoints) {\n ptIndex2ptNumber = makePtIndex2PtNumber(indexToPoints);\n }\n function isCdIndexValid(v) {\n return v !== void 0 && v < calcTrace.length;\n }\n for (var i = 0; i < selectedpoints.length; i++) {\n var ptIndex = selectedpoints[i];\n if (lib.isIndex(ptIndex) || lib.isArrayOrTypedArray(ptIndex) && lib.isIndex(ptIndex[0]) && lib.isIndex(ptIndex[1])) {\n var ptNumber = ptIndex2ptNumber ? ptIndex2ptNumber[ptIndex] : ptIndex;\n var cdIndex = ptNumber2cdIndex ? ptNumber2cdIndex[ptNumber] : ptNumber;\n if (isCdIndexValid(cdIndex)) {\n calcTrace[cdIndex].selected = 1;\n }\n }\n }\n };\n lib.selIndices2selPoints = function(trace) {\n var selectedpoints = trace.selectedpoints;\n var indexToPoints = trace._indexToPoints;\n if (indexToPoints) {\n var ptIndex2ptNumber = makePtIndex2PtNumber(indexToPoints);\n var out = [];\n for (var i = 0; i < selectedpoints.length; i++) {\n var ptIndex = selectedpoints[i];\n if (lib.isIndex(ptIndex)) {\n var ptNumber = ptIndex2ptNumber[ptIndex];\n if (lib.isIndex(ptNumber)) {\n out.push(ptNumber);\n }\n }\n }\n return out;\n } else {\n return selectedpoints;\n }\n };\n lib.getTargetArray = function(trace, transformOpts) {\n var target = transformOpts.target;\n if (typeof target === \"string\" && target) {\n var array = lib.nestedProperty(trace, target).get();\n return lib.isArrayOrTypedArray(array) ? array : false;\n } else if (lib.isArrayOrTypedArray(target)) {\n return target;\n }\n return false;\n };\n function minExtend(obj1, obj2, opt) {\n var objOut = {};\n if (typeof obj2 !== \"object\") obj2 = {};\n var arrayLen = opt === \"pieLike\" ? -1 : 3;\n var keys = Object.keys(obj1);\n var i, k, v;\n for (i = 0; i < keys.length; i++) {\n k = keys[i];\n v = obj1[k];\n if (k.charAt(0) === \"_\" || typeof v === \"function\") continue;\n else if (k === \"module\") objOut[k] = v;\n else if (Array.isArray(v)) {\n if (k === \"colorscale\" || arrayLen === -1) {\n objOut[k] = v.slice();\n } else {\n objOut[k] = v.slice(0, arrayLen);\n }\n } else if (lib.isTypedArray(v)) {\n if (arrayLen === -1) {\n objOut[k] = v.subarray();\n } else {\n objOut[k] = v.subarray(0, arrayLen);\n }\n } else if (v && typeof v === \"object\") objOut[k] = minExtend(obj1[k], obj2[k], opt);\n else objOut[k] = v;\n }\n keys = Object.keys(obj2);\n for (i = 0; i < keys.length; i++) {\n k = keys[i];\n v = obj2[k];\n if (typeof v !== \"object\" || !(k in objOut) || typeof objOut[k] !== \"object\") {\n objOut[k] = v;\n }\n }\n return objOut;\n }\n lib.minExtend = minExtend;\n lib.titleCase = function(s) {\n return s.charAt(0).toUpperCase() + s.substr(1);\n };\n lib.containsAny = function(s, fragments) {\n for (var i = 0; i < fragments.length; i++) {\n if (s.indexOf(fragments[i]) !== -1) return true;\n }\n return false;\n };\n var IS_SAFARI_REGEX = /Version\\/[\\d\\.]+.*Safari/;\n lib.isSafari = function() {\n return IS_SAFARI_REGEX.test(window.navigator.userAgent);\n };\n var IS_IOS_REGEX = /iPad|iPhone|iPod/;\n lib.isIOS = function() {\n return IS_IOS_REGEX.test(window.navigator.userAgent);\n };\n var FIREFOX_VERSION_REGEX = /Firefox\\/(\\d+)\\.\\d+/;\n lib.getFirefoxVersion = function() {\n var match = FIREFOX_VERSION_REGEX.exec(window.navigator.userAgent);\n if (match && match.length === 2) {\n var versionInt = parseInt(match[1]);\n if (!isNaN(versionInt)) {\n return versionInt;\n }\n }\n return null;\n };\n lib.isD3Selection = function(obj) {\n return obj instanceof d3.selection;\n };\n lib.ensureSingle = function(parent, nodeType, className, enterFn) {\n var sel = parent.select(nodeType + (className ? \".\" + className : \"\"));\n if (sel.size()) return sel;\n var layer = parent.append(nodeType);\n if (className) layer.classed(className, true);\n if (enterFn) layer.call(enterFn);\n return layer;\n };\n lib.ensureSingleById = function(parent, nodeType, id, enterFn) {\n var sel = parent.select(nodeType + \"#\" + id);\n if (sel.size()) return sel;\n var layer = parent.append(nodeType).attr(\"id\", id);\n if (enterFn) layer.call(enterFn);\n return layer;\n };\n lib.objectFromPath = function(path, value) {\n var keys = path.split(\".\");\n var tmpObj;\n var obj = tmpObj = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var el = null;\n var parts = keys[i].match(/(.*)\\[([0-9]+)\\]/);\n if (parts) {\n key = parts[1];\n el = parts[2];\n tmpObj = tmpObj[key] = [];\n if (i === keys.length - 1) {\n tmpObj[el] = value;\n } else {\n tmpObj[el] = {};\n }\n tmpObj = tmpObj[el];\n } else {\n if (i === keys.length - 1) {\n tmpObj[key] = value;\n } else {\n tmpObj[key] = {};\n }\n tmpObj = tmpObj[key];\n }\n }\n return obj;\n };\n var dottedPropertyRegex = /^([^\\[\\.]+)\\.(.+)?/;\n var indexedPropertyRegex = /^([^\\.]+)\\[([0-9]+)\\](\\.)?(.+)?/;\n function notValid(prop) {\n return prop.slice(0, 2) === \"__\";\n }\n lib.expandObjectPaths = function(data) {\n var match, key, prop, datum, idx, dest, trailingPath;\n if (typeof data === \"object\" && !Array.isArray(data)) {\n for (key in data) {\n if (data.hasOwnProperty(key)) {\n if (match = key.match(dottedPropertyRegex)) {\n datum = data[key];\n prop = match[1];\n if (notValid(prop)) continue;\n delete data[key];\n data[prop] = lib.extendDeepNoArrays(data[prop] || {}, lib.objectFromPath(key, lib.expandObjectPaths(datum))[prop]);\n } else if (match = key.match(indexedPropertyRegex)) {\n datum = data[key];\n prop = match[1];\n if (notValid(prop)) continue;\n idx = parseInt(match[2]);\n delete data[key];\n data[prop] = data[prop] || [];\n if (match[3] === \".\") {\n trailingPath = match[4];\n dest = data[prop][idx] = data[prop][idx] || {};\n lib.extendDeepNoArrays(dest, lib.objectFromPath(trailingPath, lib.expandObjectPaths(datum)));\n } else {\n if (notValid(prop)) continue;\n data[prop][idx] = lib.expandObjectPaths(datum);\n }\n } else {\n if (notValid(key)) continue;\n data[key] = lib.expandObjectPaths(data[key]);\n }\n }\n }\n }\n return data;\n };\n lib.numSeparate = function(value, separators, separatethousands) {\n if (!separatethousands) separatethousands = false;\n if (typeof separators !== \"string\" || separators.length === 0) {\n throw new Error(\"Separator string required for formatting!\");\n }\n if (typeof value === \"number\") {\n value = String(value);\n }\n var thousandsRe = /(\\d+)(\\d{3})/;\n var decimalSep = separators.charAt(0);\n var thouSep = separators.charAt(1);\n var x = value.split(\".\");\n var x1 = x[0];\n var x2 = x.length > 1 ? decimalSep + x[1] : \"\";\n if (thouSep && (x.length > 1 || x1.length > 4 || separatethousands)) {\n while (thousandsRe.test(x1)) {\n x1 = x1.replace(thousandsRe, \"$1\" + thouSep + \"$2\");\n }\n }\n return x1 + x2;\n };\n lib.TEMPLATE_STRING_REGEX = /%{([^\\s%{}:]*)([:|\\|][^}]*)?}/g;\n var SIMPLE_PROPERTY_REGEX = /^\\w*$/;\n lib.templateString = function(string, obj) {\n var getterCache = {};\n return string.replace(lib.TEMPLATE_STRING_REGEX, function(dummy, key) {\n var v;\n if (SIMPLE_PROPERTY_REGEX.test(key)) {\n v = obj[key];\n } else {\n getterCache[key] = getterCache[key] || lib.nestedProperty(obj, key).get;\n v = getterCache[key](true);\n }\n return v !== void 0 ? v : \"\";\n });\n };\n var hovertemplateWarnings = {\n max: 10,\n count: 0,\n name: \"hovertemplate\"\n };\n lib.hovertemplateString = function() {\n return templateFormatString.apply(hovertemplateWarnings, arguments);\n };\n var texttemplateWarnings = {\n max: 10,\n count: 0,\n name: \"texttemplate\"\n };\n lib.texttemplateString = function() {\n return templateFormatString.apply(texttemplateWarnings, arguments);\n };\n var MULT_DIV_REGEX = /^(\\S+)([\\*\\/])(-?\\d+(\\.\\d+)?)$/;\n function multDivParser(inputStr) {\n var match = inputStr.match(MULT_DIV_REGEX);\n if (match) return { key: match[1], op: match[2], number: Number(match[3]) };\n return { key: inputStr, op: null, number: null };\n }\n var texttemplateWarningsForShapes = {\n max: 10,\n count: 0,\n name: \"texttemplate\",\n parseMultDiv: true\n };\n lib.texttemplateStringForShapes = function() {\n return templateFormatString.apply(texttemplateWarningsForShapes, arguments);\n };\n var TEMPLATE_STRING_FORMAT_SEPARATOR = /^[:|\\|]/;\n function templateFormatString(string, labels, d3locale) {\n var opts = this;\n var args = arguments;\n if (!labels) labels = {};\n return string.replace(lib.TEMPLATE_STRING_REGEX, function(match, rawKey, format) {\n var isOther = rawKey === \"xother\" || rawKey === \"yother\";\n var isSpaceOther = rawKey === \"_xother\" || rawKey === \"_yother\";\n var isSpaceOtherSpace = rawKey === \"_xother_\" || rawKey === \"_yother_\";\n var isOtherSpace = rawKey === \"xother_\" || rawKey === \"yother_\";\n var hasOther = isOther || isSpaceOther || isOtherSpace || isSpaceOtherSpace;\n var key = rawKey;\n if (isSpaceOther || isSpaceOtherSpace) key = key.substring(1);\n if (isOtherSpace || isSpaceOtherSpace) key = key.substring(0, key.length - 1);\n var parsedOp = null;\n var parsedNumber = null;\n if (opts.parseMultDiv) {\n var _match = multDivParser(key);\n key = _match.key;\n parsedOp = _match.op;\n parsedNumber = _match.number;\n }\n var value;\n if (hasOther) {\n value = labels[key];\n if (value === void 0) return \"\";\n } else {\n var obj, i;\n for (i = 3; i < args.length; i++) {\n obj = args[i];\n if (!obj) continue;\n if (obj.hasOwnProperty(key)) {\n value = obj[key];\n break;\n }\n if (!SIMPLE_PROPERTY_REGEX.test(key)) {\n value = lib.nestedProperty(obj, key).get(true);\n }\n if (value !== void 0) break;\n }\n }\n if (value !== void 0) {\n if (parsedOp === \"*\") value *= parsedNumber;\n if (parsedOp === \"/\") value /= parsedNumber;\n }\n if (value === void 0 && opts) {\n if (opts.count < opts.max) {\n lib.warn(\"Variable '\" + key + \"' in \" + opts.name + \" could not be found!\");\n value = match;\n }\n if (opts.count === opts.max) {\n lib.warn(\"Too many \" + opts.name + \" warnings - additional warnings will be suppressed\");\n }\n opts.count++;\n return match;\n }\n if (format) {\n var fmt;\n if (format[0] === \":\") {\n fmt = d3locale ? d3locale.numberFormat : lib.numberFormat;\n if (value !== \"\") {\n value = fmt(format.replace(TEMPLATE_STRING_FORMAT_SEPARATOR, \"\"))(value);\n }\n }\n if (format[0] === \"|\") {\n fmt = d3locale ? d3locale.timeFormat : utcFormat;\n var ms = lib.dateTime2ms(value);\n value = lib.formatDate(ms, format.replace(TEMPLATE_STRING_FORMAT_SEPARATOR, \"\"), false, fmt);\n }\n } else {\n var keyLabel = key + \"Label\";\n if (labels.hasOwnProperty(keyLabel)) value = labels[keyLabel];\n }\n if (hasOther) {\n value = \"(\" + value + \")\";\n if (isSpaceOther || isSpaceOtherSpace) value = \" \" + value;\n if (isOtherSpace || isSpaceOtherSpace) value = value + \" \";\n }\n return value;\n });\n }\n var char0 = 48;\n var char9 = 57;\n lib.subplotSort = function(a, b) {\n var l = Math.min(a.length, b.length) + 1;\n var numA = 0;\n var numB = 0;\n for (var i = 0; i < l; i++) {\n var charA = a.charCodeAt(i) || 0;\n var charB = b.charCodeAt(i) || 0;\n var isNumA = charA >= char0 && charA <= char9;\n var isNumB = charB >= char0 && charB <= char9;\n if (isNumA) numA = 10 * numA + charA - char0;\n if (isNumB) numB = 10 * numB + charB - char0;\n if (!isNumA || !isNumB) {\n if (numA !== numB) return numA - numB;\n if (charA !== charB) return charA - charB;\n }\n }\n return numB - numA;\n };\n var randSeed = 2e9;\n lib.seedPseudoRandom = function() {\n randSeed = 2e9;\n };\n lib.pseudoRandom = function() {\n var lastVal = randSeed;\n randSeed = (69069 * randSeed + 1) % 4294967296;\n if (Math.abs(randSeed - lastVal) < 429496729) return lib.pseudoRandom();\n return randSeed / 4294967296;\n };\n lib.fillText = function(calcPt, trace, contOut) {\n var fill = Array.isArray(contOut) ? function(v) {\n contOut.push(v);\n } : function(v) {\n contOut.text = v;\n };\n var htx = lib.extractOption(calcPt, trace, \"htx\", \"hovertext\");\n if (lib.isValidTextValue(htx)) return fill(htx);\n var tx = lib.extractOption(calcPt, trace, \"tx\", \"text\");\n if (lib.isValidTextValue(tx)) return fill(tx);\n };\n lib.isValidTextValue = function(v) {\n return v || v === 0;\n };\n lib.formatPercent = function(ratio, n) {\n n = n || 0;\n var str = (Math.round(100 * ratio * Math.pow(10, n)) * Math.pow(0.1, n)).toFixed(n) + \"%\";\n for (var i = 0; i < n; i++) {\n if (str.indexOf(\".\") !== -1) {\n str = str.replace(\"0%\", \"%\");\n str = str.replace(\".%\", \"%\");\n }\n }\n return str;\n };\n lib.isHidden = function(gd) {\n var display = window.getComputedStyle(gd).display;\n return !display || display === \"none\";\n };\n lib.strTranslate = function(x, y) {\n return x || y ? \"translate(\" + x + \",\" + y + \")\" : \"\";\n };\n lib.strRotate = function(a) {\n return a ? \"rotate(\" + a + \")\" : \"\";\n };\n lib.strScale = function(s) {\n return s !== 1 ? \"scale(\" + s + \")\" : \"\";\n };\n lib.getTextTransform = function(transform) {\n var noCenter = transform.noCenter;\n var textX = transform.textX;\n var textY = transform.textY;\n var targetX = transform.targetX;\n var targetY = transform.targetY;\n var anchorX = transform.anchorX || 0;\n var anchorY = transform.anchorY || 0;\n var rotate = transform.rotate;\n var scale = transform.scale;\n if (!scale) scale = 0;\n else if (scale > 1) scale = 1;\n return lib.strTranslate(\n targetX - scale * (textX + anchorX),\n targetY - scale * (textY + anchorY)\n ) + lib.strScale(scale) + (rotate ? \"rotate(\" + rotate + (noCenter ? \"\" : \" \" + textX + \" \" + textY) + \")\" : \"\");\n };\n lib.setTransormAndDisplay = function(s, transform) {\n s.attr(\"transform\", lib.getTextTransform(transform));\n s.style(\"display\", transform.scale ? null : \"none\");\n };\n lib.ensureUniformFontSize = function(gd, baseFont) {\n var out = lib.extendFlat({}, baseFont);\n out.size = Math.max(\n baseFont.size,\n gd._fullLayout.uniformtext.minsize || 0\n );\n return out;\n };\n lib.join2 = function(arr, mainSeparator, lastSeparator) {\n var len = arr.length;\n if (len > 1) {\n return arr.slice(0, -1).join(mainSeparator) + lastSeparator + arr[len - 1];\n }\n return arr.join(mainSeparator);\n };\n lib.bigFont = function(size) {\n return Math.round(1.2 * size);\n };\n var firefoxVersion = lib.getFirefoxVersion();\n var isProblematicFirefox = firefoxVersion !== null && firefoxVersion < 86;\n lib.getPositionFromD3Event = function() {\n if (isProblematicFirefox) {\n return [\n d3.event.layerX,\n d3.event.layerY\n ];\n } else {\n return [\n d3.event.offsetX,\n d3.event.offsetY\n ];\n }\n };\n }\n });\n\n // build/plotcss.js\n var require_plotcss = __commonJS({\n \"build/plotcss.js\"() {\n \"use strict\";\n var Lib = require_lib();\n var rules = {\n \"X,X div\": 'direction:ltr;font-family:\"Open Sans\",verdana,arial,sans-serif;margin:0;padding:0;',\n \"X input,X button\": 'font-family:\"Open Sans\",verdana,arial,sans-serif;',\n \"X input:focus,X button:focus\": \"outline:none;\",\n \"X a\": \"text-decoration:none;\",\n \"X a:hover\": \"text-decoration:none;\",\n \"X .crisp\": \"shape-rendering:crispEdges;\",\n \"X .user-select-none\": \"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\",\n \"X svg a\": \"fill:#447adb;\",\n \"X svg a:hover\": \"fill:#3c6dc5;\",\n \"X .main-svg\": \"position:absolute;top:0;left:0;pointer-events:none;\",\n \"X .main-svg .draglayer\": \"pointer-events:all;\",\n \"X .cursor-default\": \"cursor:default;\",\n \"X .cursor-pointer\": \"cursor:pointer;\",\n \"X .cursor-crosshair\": \"cursor:crosshair;\",\n \"X .cursor-move\": \"cursor:move;\",\n \"X .cursor-col-resize\": \"cursor:col-resize;\",\n \"X .cursor-row-resize\": \"cursor:row-resize;\",\n \"X .cursor-ns-resize\": \"cursor:ns-resize;\",\n \"X .cursor-ew-resize\": \"cursor:ew-resize;\",\n \"X .cursor-sw-resize\": \"cursor:sw-resize;\",\n \"X .cursor-s-resize\": \"cursor:s-resize;\",\n \"X .cursor-se-resize\": \"cursor:se-resize;\",\n \"X .cursor-w-resize\": \"cursor:w-resize;\",\n \"X .cursor-e-resize\": \"cursor:e-resize;\",\n \"X .cursor-nw-resize\": \"cursor:nw-resize;\",\n \"X .cursor-n-resize\": \"cursor:n-resize;\",\n \"X .cursor-ne-resize\": \"cursor:ne-resize;\",\n \"X .cursor-grab\": \"cursor:-webkit-grab;cursor:grab;\",\n \"X .modebar\": \"position:absolute;top:2px;right:2px;\",\n \"X .ease-bg\": \"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;\",\n \"X .modebar--hover>:not(.watermark)\": \"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;\",\n \"X:hover .modebar--hover .modebar-group\": \"opacity:1;\",\n \"X .modebar-group\": \"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;\",\n \"X .modebar-btn\": \"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;\",\n \"X .modebar-btn svg\": \"position:relative;top:2px;\",\n \"X .modebar.vertical\": \"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;\",\n \"X .modebar.vertical svg\": \"top:-1px;\",\n \"X .modebar.vertical .modebar-group\": \"display:block;float:none;padding-left:0px;padding-bottom:8px;\",\n \"X .modebar.vertical .modebar-group .modebar-btn\": \"display:block;text-align:center;\",\n \"X [data-title]:before,X [data-title]:after\": \"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;\",\n \"X [data-title]:hover:before,X [data-title]:hover:after\": \"display:block;opacity:1;\",\n \"X [data-title]:before\": 'content:\"\";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',\n \"X [data-title]:after\": \"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;\",\n \"X .vertical [data-title]:before,X .vertical [data-title]:after\": \"top:0%;right:200%;\",\n \"X .vertical [data-title]:before\": \"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;\",\n Y: 'font-family:\"Open Sans\",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',\n \"Y p\": \"margin:0;\",\n \"Y .notifier-note\": \"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;\",\n \"Y .notifier-close\": \"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;\",\n \"Y .notifier-close:hover\": \"color:#444;text-decoration:none;cursor:pointer;\"\n };\n for (selector in rules) {\n fullSelector = selector.replace(/^,/, \" ,\").replace(/X/g, \".js-plotly-plot .plotly\").replace(/Y/g, \".plotly-notifier\");\n Lib.addStyleRule(fullSelector, rules[selector]);\n }\n var fullSelector;\n var selector;\n }\n });\n\n // node_modules/is-browser/client.js\n var require_client = __commonJS({\n \"node_modules/is-browser/client.js\"(exports, module) {\n module.exports = true;\n }\n });\n\n // node_modules/has-hover/index.js\n var require_has_hover = __commonJS({\n \"node_modules/has-hover/index.js\"(exports, module) {\n \"use strict\";\n var isBrowser = require_client();\n var hasHover;\n if (typeof window.matchMedia === \"function\") {\n hasHover = !window.matchMedia(\"(hover: none)\").matches;\n } else {\n hasHover = isBrowser;\n }\n module.exports = hasHover;\n }\n });\n\n // node_modules/events/events.js\n var require_events = __commonJS({\n \"node_modules/events/events.js\"(exports, module) {\n \"use strict\";\n var R = typeof Reflect === \"object\" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === \"function\" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === \"function\") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function 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 Object.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 EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.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 function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.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 var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error(\"Unhandled error.\" + (er ? \" (\" + er.message + \")\" : \"\"));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\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 return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit(\n \"newListener\",\n type,\n listener.listener ? listener.listener : listener\n );\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === \"function\") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error(\"Possible EventEmitter memory leak detected. \" + existing.length + \" \" + String(type) + \" listeners added. Use emitter.setMaxListeners() to 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 return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function 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 function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ 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 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 if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit(\"removeListener\", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\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 = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === \"function\") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === \"function\")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.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 EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === \"function\") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function 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 function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function 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 function once(emitter, name2) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name2, resolver);\n reject(err);\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, name2, resolver, { once: true });\n if (name2 !== \"error\") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === \"function\") {\n eventTargetAgnosticAddListener(emitter, \"error\", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name2, listener, flags) {\n if (typeof emitter.on === \"function\") {\n if (flags.once) {\n emitter.once(name2, listener);\n } else {\n emitter.on(name2, listener);\n }\n } else if (typeof emitter.addEventListener === \"function\") {\n emitter.addEventListener(name2, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name2, 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 }\n });\n\n // src/lib/events.js\n var require_events2 = __commonJS({\n \"src/lib/events.js\"(exports, module) {\n \"use strict\";\n var EventEmitter = require_events().EventEmitter;\n var Events = {\n init: function(plotObj) {\n if (plotObj._ev instanceof EventEmitter) return plotObj;\n var ev = new EventEmitter();\n var internalEv = new EventEmitter();\n plotObj._ev = ev;\n plotObj._internalEv = internalEv;\n plotObj.on = ev.on.bind(ev);\n plotObj.once = ev.once.bind(ev);\n plotObj.removeListener = ev.removeListener.bind(ev);\n plotObj.removeAllListeners = ev.removeAllListeners.bind(ev);\n plotObj._internalOn = internalEv.on.bind(internalEv);\n plotObj._internalOnce = internalEv.once.bind(internalEv);\n plotObj._removeInternalListener = internalEv.removeListener.bind(internalEv);\n plotObj._removeAllInternalListeners = internalEv.removeAllListeners.bind(internalEv);\n plotObj.emit = function(event, data) {\n ev.emit(event, data);\n internalEv.emit(event, data);\n };\n return plotObj;\n },\n /*\n * This function behaves like jQuery's triggerHandler. It calls\n * all handlers for a particular event and returns the return value\n * of the LAST handler.\n */\n triggerHandler: function(plotObj, event, data) {\n var nodeEventHandlerValue;\n var ev = plotObj._ev;\n if (!ev) return;\n var handlers = ev._events[event];\n if (!handlers) return;\n function apply(handler) {\n if (handler.listener) {\n ev.removeListener(event, handler.listener);\n if (!handler.fired) {\n handler.fired = true;\n return handler.listener.apply(ev, [data]);\n }\n } else {\n return handler.apply(ev, [data]);\n }\n }\n handlers = Array.isArray(handlers) ? handlers : [handlers];\n var i;\n for (i = 0; i < handlers.length - 1; i++) {\n apply(handlers[i]);\n }\n nodeEventHandlerValue = apply(handlers[i]);\n return nodeEventHandlerValue;\n },\n purge: function(plotObj) {\n delete plotObj._ev;\n delete plotObj.on;\n delete plotObj.once;\n delete plotObj.removeListener;\n delete plotObj.removeAllListeners;\n delete plotObj.emit;\n delete plotObj._ev;\n delete plotObj._internalEv;\n delete plotObj._internalOn;\n delete plotObj._internalOnce;\n delete plotObj._removeInternalListener;\n delete plotObj._removeAllInternalListeners;\n return plotObj;\n }\n };\n module.exports = Events;\n }\n });\n\n // src/lib/queue.js\n var require_queue = __commonJS({\n \"src/lib/queue.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var dfltConfig = require_plot_config().dfltConfig;\n function copyArgArray(gd, args) {\n var copy = [];\n var arg;\n for (var i = 0; i < args.length; i++) {\n arg = args[i];\n if (arg === gd) copy[i] = arg;\n else if (typeof arg === \"object\") {\n copy[i] = Array.isArray(arg) ? Lib.extendDeep([], arg) : Lib.extendDeepAll({}, arg);\n } else copy[i] = arg;\n }\n return copy;\n }\n var queue = {};\n queue.add = function(gd, undoFunc, undoArgs, redoFunc, redoArgs) {\n var queueObj, queueIndex;\n gd.undoQueue = gd.undoQueue || { index: 0, queue: [], sequence: false };\n queueIndex = gd.undoQueue.index;\n if (gd.autoplay) {\n if (!gd.undoQueue.inSequence) gd.autoplay = false;\n return;\n }\n if (!gd.undoQueue.sequence || gd.undoQueue.beginSequence) {\n queueObj = { undo: { calls: [], args: [] }, redo: { calls: [], args: [] } };\n gd.undoQueue.queue.splice(queueIndex, gd.undoQueue.queue.length - queueIndex, queueObj);\n gd.undoQueue.index += 1;\n } else {\n queueObj = gd.undoQueue.queue[queueIndex - 1];\n }\n gd.undoQueue.beginSequence = false;\n if (queueObj) {\n queueObj.undo.calls.unshift(undoFunc);\n queueObj.undo.args.unshift(undoArgs);\n queueObj.redo.calls.push(redoFunc);\n queueObj.redo.args.push(redoArgs);\n }\n if (gd.undoQueue.queue.length > dfltConfig.queueLength) {\n gd.undoQueue.queue.shift();\n gd.undoQueue.index--;\n }\n };\n queue.startSequence = function(gd) {\n gd.undoQueue = gd.undoQueue || { index: 0, queue: [], sequence: false };\n gd.undoQueue.sequence = true;\n gd.undoQueue.beginSequence = true;\n };\n queue.stopSequence = function(gd) {\n gd.undoQueue = gd.undoQueue || { index: 0, queue: [], sequence: false };\n gd.undoQueue.sequence = false;\n gd.undoQueue.beginSequence = false;\n };\n queue.undo = function undo(gd) {\n var queueObj, i;\n if (gd.undoQueue === void 0 || isNaN(gd.undoQueue.index) || gd.undoQueue.index <= 0) {\n return;\n }\n gd.undoQueue.index--;\n queueObj = gd.undoQueue.queue[gd.undoQueue.index];\n gd.undoQueue.inSequence = true;\n for (i = 0; i < queueObj.undo.calls.length; i++) {\n queue.plotDo(gd, queueObj.undo.calls[i], queueObj.undo.args[i]);\n }\n gd.undoQueue.inSequence = false;\n gd.autoplay = false;\n };\n queue.redo = function redo(gd) {\n var queueObj, i;\n if (gd.undoQueue === void 0 || isNaN(gd.undoQueue.index) || gd.undoQueue.index >= gd.undoQueue.queue.length) {\n return;\n }\n queueObj = gd.undoQueue.queue[gd.undoQueue.index];\n gd.undoQueue.inSequence = true;\n for (i = 0; i < queueObj.redo.calls.length; i++) {\n queue.plotDo(gd, queueObj.redo.calls[i], queueObj.redo.args[i]);\n }\n gd.undoQueue.inSequence = false;\n gd.autoplay = false;\n gd.undoQueue.index++;\n };\n queue.plotDo = function(gd, func, args) {\n gd.autoplay = true;\n args = copyArgArray(gd, args);\n func.apply(null, args);\n };\n module.exports = queue;\n }\n });\n\n // src/plots/frame_attributes.js\n var require_frame_attributes = __commonJS({\n \"src/plots/frame_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n _isLinkedToArray: \"frames_entry\",\n group: {\n valType: \"string\"\n },\n name: {\n valType: \"string\"\n },\n traces: {\n valType: \"any\"\n },\n baseframe: {\n valType: \"string\"\n },\n data: {\n valType: \"any\"\n },\n layout: {\n valType: \"any\"\n }\n };\n }\n });\n\n // src/plot_api/plot_schema.js\n var require_plot_schema = __commonJS({\n \"src/plot_api/plot_schema.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var baseAttributes = require_attributes2();\n var baseLayoutAttributes = require_layout_attributes2();\n var frameAttributes = require_frame_attributes();\n var animationAttributes = require_animation_attributes();\n var configAttributes = require_plot_config().configAttributes;\n var editTypes = require_edit_types();\n var extendDeepAll = Lib.extendDeepAll;\n var isPlainObject = Lib.isPlainObject;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var nestedProperty = Lib.nestedProperty;\n var valObjectMeta = Lib.valObjectMeta;\n var IS_SUBPLOT_OBJ = \"_isSubplotObj\";\n var IS_LINKED_TO_ARRAY = \"_isLinkedToArray\";\n var ARRAY_ATTR_REGEXPS = \"_arrayAttrRegexps\";\n var DEPRECATED = \"_deprecated\";\n var UNDERSCORE_ATTRS = [IS_SUBPLOT_OBJ, IS_LINKED_TO_ARRAY, ARRAY_ATTR_REGEXPS, DEPRECATED];\n exports.IS_SUBPLOT_OBJ = IS_SUBPLOT_OBJ;\n exports.IS_LINKED_TO_ARRAY = IS_LINKED_TO_ARRAY;\n exports.DEPRECATED = DEPRECATED;\n exports.UNDERSCORE_ATTRS = UNDERSCORE_ATTRS;\n exports.get = function() {\n var traces = {};\n Registry.allTypes.forEach(function(type) {\n traces[type] = getTraceAttributes(type);\n });\n return {\n defs: {\n valObjects: valObjectMeta,\n metaKeys: UNDERSCORE_ATTRS.concat([\"description\", \"role\", \"editType\", \"impliedEdits\"]),\n editType: {\n traces: editTypes.traces,\n layout: editTypes.layout\n },\n impliedEdits: {}\n },\n traces,\n layout: getLayoutAttributes(),\n frames: getFramesAttributes(),\n animation: formatAttributes(animationAttributes),\n config: formatAttributes(configAttributes)\n };\n };\n exports.crawl = function(attrs, callback, specifiedLevel, attrString) {\n var level = specifiedLevel || 0;\n attrString = attrString || \"\";\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n if (UNDERSCORE_ATTRS.indexOf(attrName) !== -1) return;\n var fullAttrString = (attrString ? attrString + \".\" : \"\") + attrName;\n callback(attr, attrName, attrs, level, fullAttrString);\n if (exports.isValObject(attr)) return;\n if (isPlainObject(attr) && attrName !== \"impliedEdits\") {\n exports.crawl(attr, callback, level + 1, fullAttrString);\n }\n });\n };\n exports.isValObject = function(obj) {\n return obj && obj.valType !== void 0;\n };\n exports.findArrayAttributes = function(trace) {\n var arrayAttributes = [];\n var stack = [];\n var isArrayStack = [];\n var baseContainer, baseAttrName;\n function callback(attr, attrName, attrs, level) {\n stack = stack.slice(0, level).concat([attrName]);\n isArrayStack = isArrayStack.slice(0, level).concat([attr && attr._isLinkedToArray]);\n var splittableAttr = attr && (attr.valType === \"data_array\" || attr.arrayOk === true) && !(stack[level - 1] === \"colorbar\" && (attrName === \"ticktext\" || attrName === \"tickvals\"));\n if (!splittableAttr) return;\n crawlIntoTrace(baseContainer, 0, \"\");\n }\n function crawlIntoTrace(container, i, astrPartial) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + \"[\" + j + \"].\");\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + \".\");\n }\n }\n }\n baseContainer = trace;\n baseAttrName = \"\";\n exports.crawl(baseAttributes, callback);\n if (trace._module && trace._module.attributes) {\n exports.crawl(trace._module.attributes, callback);\n }\n return arrayAttributes;\n };\n exports.getTraceValObject = function(trace, parts) {\n var head = parts[0];\n var i = 1;\n var moduleAttrs, valObject;\n var _module = trace._module;\n if (!_module) _module = (Registry.modules[trace.type || baseAttributes.type.dflt] || {})._module;\n if (!_module) return false;\n moduleAttrs = _module.attributes;\n valObject = moduleAttrs && moduleAttrs[head];\n if (!valObject) {\n var subplotModule = _module.basePlotModule;\n if (subplotModule && subplotModule.attributes) {\n valObject = subplotModule.attributes[head];\n }\n }\n if (!valObject) valObject = baseAttributes[head];\n return recurseIntoValObject(valObject, parts, i);\n };\n exports.getLayoutValObject = function(fullLayout, parts) {\n var valObject = layoutHeadAttr(fullLayout, parts[0]);\n return recurseIntoValObject(valObject, parts, 1);\n };\n function layoutHeadAttr(fullLayout, head) {\n var i, key, _module, attributes;\n var basePlotModules = fullLayout._basePlotModules;\n if (basePlotModules) {\n var out;\n for (i = 0; i < basePlotModules.length; i++) {\n _module = basePlotModules[i];\n if (_module.attrRegex && _module.attrRegex.test(head)) {\n if (_module.layoutAttrOverrides) return _module.layoutAttrOverrides;\n if (!out && _module.layoutAttributes) out = _module.layoutAttributes;\n }\n var baseOverrides = _module.baseLayoutAttrOverrides;\n if (baseOverrides && head in baseOverrides) return baseOverrides[head];\n }\n if (out) return out;\n }\n var modules = fullLayout._modules;\n if (modules) {\n for (i = 0; i < modules.length; i++) {\n attributes = modules[i].layoutAttributes;\n if (attributes && head in attributes) {\n return attributes[head];\n }\n }\n }\n for (key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n if (_module.name === \"colorscale\" && head.indexOf(\"coloraxis\") === 0) {\n return _module.layoutAttributes[head];\n } else if (!_module.schema && head === _module.name) {\n return _module.layoutAttributes;\n }\n }\n if (head in baseLayoutAttributes) return baseLayoutAttributes[head];\n return false;\n }\n function recurseIntoValObject(valObject, parts, i) {\n if (!valObject) return false;\n if (valObject._isLinkedToArray) {\n if (isIndex(parts[i])) i++;\n else if (i < parts.length) return false;\n }\n for (; i < parts.length; i++) {\n var newValObject = valObject[parts[i]];\n if (isPlainObject(newValObject)) valObject = newValObject;\n else break;\n if (i === parts.length - 1) break;\n if (valObject._isLinkedToArray) {\n i++;\n if (!isIndex(parts[i])) return false;\n } else if (valObject.valType === \"info_array\") {\n i++;\n var index = parts[i];\n if (!isIndex(index)) return false;\n var items = valObject.items;\n if (Array.isArray(items)) {\n if (index >= items.length) return false;\n if (valObject.dimensions === 2) {\n i++;\n if (parts.length === i) return valObject;\n var index2 = parts[i];\n if (!isIndex(index2)) return false;\n valObject = items[index][index2];\n } else valObject = items[index];\n } else {\n valObject = items;\n }\n }\n }\n return valObject;\n }\n function isIndex(val) {\n return val === Math.round(val) && val >= 0;\n }\n function getTraceAttributes(type) {\n var _module, basePlotModule;\n _module = Registry.modules[type]._module, basePlotModule = _module.basePlotModule;\n var attributes = {};\n attributes.type = null;\n var copyBaseAttributes = extendDeepAll({}, baseAttributes);\n var copyModuleAttributes = extendDeepAll({}, _module.attributes);\n exports.crawl(copyModuleAttributes, function(attr, attrName, attrs, level, fullAttrString) {\n nestedProperty(copyBaseAttributes, fullAttrString).set(void 0);\n if (attr === void 0) nestedProperty(copyModuleAttributes, fullAttrString).set(void 0);\n });\n extendDeepAll(attributes, copyBaseAttributes);\n if (Registry.traceIs(type, \"noOpacity\")) {\n delete attributes.opacity;\n }\n if (!Registry.traceIs(type, \"showLegend\")) {\n delete attributes.showlegend;\n delete attributes.legendgroup;\n }\n if (Registry.traceIs(type, \"noHover\")) {\n delete attributes.hoverinfo;\n delete attributes.hoverlabel;\n }\n if (!_module.selectPoints) {\n delete attributes.selectedpoints;\n }\n extendDeepAll(attributes, copyModuleAttributes);\n if (basePlotModule.attributes) {\n extendDeepAll(attributes, basePlotModule.attributes);\n }\n attributes.type = type;\n var out = {\n meta: _module.meta || {},\n categories: _module.categories || {},\n animatable: Boolean(_module.animatable),\n type,\n attributes: formatAttributes(attributes)\n };\n if (_module.layoutAttributes) {\n var layoutAttributes = {};\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n out.layoutAttributes = formatAttributes(layoutAttributes);\n }\n if (!_module.animatable) {\n exports.crawl(out, function(attr) {\n if (exports.isValObject(attr) && \"anim\" in attr) {\n delete attr.anim;\n }\n });\n }\n return out;\n }\n function getLayoutAttributes() {\n var layoutAttributes = {};\n var key, _module;\n extendDeepAll(layoutAttributes, baseLayoutAttributes);\n for (key in Registry.subplotsRegistry) {\n _module = Registry.subplotsRegistry[key];\n if (!_module.layoutAttributes) continue;\n if (Array.isArray(_module.attr)) {\n for (var i = 0; i < _module.attr.length; i++) {\n handleBasePlotModule(layoutAttributes, _module, _module.attr[i]);\n }\n } else {\n var astr = _module.attr === \"subplot\" ? _module.name : _module.attr;\n handleBasePlotModule(layoutAttributes, _module, astr);\n }\n }\n for (key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n var schema = _module.schema;\n if (schema && (schema.subplots || schema.layout)) {\n var subplots = schema.subplots;\n if (subplots && subplots.xaxis && !subplots.yaxis) {\n for (var xkey in subplots.xaxis) {\n delete layoutAttributes.yaxis[xkey];\n }\n }\n delete layoutAttributes.xaxis.shift;\n delete layoutAttributes.xaxis.autoshift;\n } else if (_module.name === \"colorscale\") {\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n } else if (_module.layoutAttributes) {\n insertAttrs(layoutAttributes, _module.layoutAttributes, _module.name);\n }\n }\n return {\n layoutAttributes: formatAttributes(layoutAttributes)\n };\n }\n function getFramesAttributes() {\n var attrs = {\n frames: extendDeepAll({}, frameAttributes)\n };\n formatAttributes(attrs);\n return attrs.frames;\n }\n function formatAttributes(attrs) {\n mergeValTypeAndRole(attrs);\n formatArrayContainers(attrs);\n stringify(attrs);\n return attrs;\n }\n function mergeValTypeAndRole(attrs) {\n function makeSrcAttr(attrName) {\n return {\n valType: \"string\",\n editType: \"none\"\n };\n }\n function callback(attr, attrName, attrs2) {\n if (exports.isValObject(attr)) {\n if (attr.arrayOk === true || attr.valType === \"data_array\") {\n attrs2[attrName + \"src\"] = makeSrcAttr(attrName);\n }\n } else if (isPlainObject(attr)) {\n attr.role = \"object\";\n }\n }\n exports.crawl(attrs, callback);\n }\n function formatArrayContainers(attrs) {\n function callback(attr, attrName, attrs2) {\n if (!attr) return;\n var itemName = attr[IS_LINKED_TO_ARRAY];\n if (!itemName) return;\n delete attr[IS_LINKED_TO_ARRAY];\n attrs2[attrName] = { items: {} };\n attrs2[attrName].items[itemName] = attr;\n attrs2[attrName].role = \"object\";\n }\n exports.crawl(attrs, callback);\n }\n function stringify(attrs) {\n function walk(attr) {\n for (var k in attr) {\n if (isPlainObject(attr[k])) {\n walk(attr[k]);\n } else if (Array.isArray(attr[k])) {\n for (var i = 0; i < attr[k].length; i++) {\n walk(attr[k][i]);\n }\n } else {\n if (attr[k] instanceof RegExp) {\n attr[k] = attr[k].toString();\n }\n }\n }\n }\n walk(attrs);\n }\n function handleBasePlotModule(layoutAttributes, _module, astr) {\n var np = nestedProperty(layoutAttributes, astr);\n var attrs = extendDeepAll({}, _module.layoutAttributes);\n attrs[IS_SUBPLOT_OBJ] = true;\n np.set(attrs);\n }\n function insertAttrs(baseAttrs, newAttrs, astr) {\n var np = nestedProperty(baseAttrs, astr);\n np.set(extendDeepAll(np.get() || {}, newAttrs));\n }\n }\n });\n\n // src/plot_api/plot_template.js\n var require_plot_template = __commonJS({\n \"src/plot_api/plot_template.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var plotAttributes = require_attributes2();\n var TEMPLATEITEMNAME = \"templateitemname\";\n var templateAttrs = {\n name: {\n valType: \"string\",\n editType: \"none\"\n }\n };\n templateAttrs[TEMPLATEITEMNAME] = {\n valType: \"string\",\n editType: \"calc\"\n };\n exports.templatedArray = function(name2, attrs) {\n attrs._isLinkedToArray = name2;\n attrs.name = templateAttrs.name;\n attrs[TEMPLATEITEMNAME] = templateAttrs[TEMPLATEITEMNAME];\n return attrs;\n };\n exports.traceTemplater = function(dataTemplate) {\n var traceCounts = {};\n var traceType, typeTemplates;\n for (traceType in dataTemplate) {\n typeTemplates = dataTemplate[traceType];\n if (Array.isArray(typeTemplates) && typeTemplates.length) {\n traceCounts[traceType] = 0;\n }\n }\n function newTrace(traceIn) {\n traceType = Lib.coerce(traceIn, {}, plotAttributes, \"type\");\n var traceOut = { type: traceType, _template: null };\n if (traceType in traceCounts) {\n typeTemplates = dataTemplate[traceType];\n var typei = traceCounts[traceType] % typeTemplates.length;\n traceCounts[traceType]++;\n traceOut._template = typeTemplates[typei];\n } else {\n }\n return traceOut;\n }\n return {\n newTrace\n // TODO: function to figure out what's left & what didn't work\n };\n };\n exports.newContainer = function(container, name2, baseName) {\n var template = container._template;\n var part = template && (template[name2] || baseName && template[baseName]);\n if (!Lib.isPlainObject(part)) part = null;\n var out = container[name2] = { _template: part };\n return out;\n };\n exports.arrayTemplater = function(container, name2, inclusionAttr) {\n var template = container._template;\n var defaultsTemplate = template && template[arrayDefaultKey(name2)];\n var templateItems = template && template[name2];\n if (!Array.isArray(templateItems) || !templateItems.length) {\n templateItems = [];\n }\n var usedNames = {};\n function newItem(itemIn) {\n var out = { name: itemIn.name, _input: itemIn };\n var templateItemName = out[TEMPLATEITEMNAME] = itemIn[TEMPLATEITEMNAME];\n if (!validItemName(templateItemName)) {\n out._template = defaultsTemplate;\n return out;\n }\n for (var i = 0; i < templateItems.length; i++) {\n var templateItem = templateItems[i];\n if (templateItem.name === templateItemName) {\n usedNames[templateItemName] = 1;\n out._template = templateItem;\n return out;\n }\n }\n out[inclusionAttr] = itemIn[inclusionAttr] || false;\n out._template = false;\n return out;\n }\n function defaultItems() {\n var out = [];\n for (var i = 0; i < templateItems.length; i++) {\n var templateItem = templateItems[i];\n var name3 = templateItem.name;\n if (validItemName(name3) && !usedNames[name3]) {\n var outi = {\n _template: templateItem,\n name: name3,\n _input: { _templateitemname: name3 }\n };\n outi[TEMPLATEITEMNAME] = templateItem[TEMPLATEITEMNAME];\n out.push(outi);\n usedNames[name3] = 1;\n }\n }\n return out;\n }\n return {\n newItem,\n defaultItems\n };\n };\n function validItemName(name2) {\n return name2 && typeof name2 === \"string\";\n }\n function arrayDefaultKey(name2) {\n var lastChar = name2.length - 1;\n if (name2.charAt(lastChar) !== \"s\") {\n Lib.warn(\"bad argument to arrayDefaultKey: \" + name2);\n }\n return name2.substr(0, name2.length - 1) + \"defaults\";\n }\n exports.arrayDefaultKey = arrayDefaultKey;\n exports.arrayEditor = function(parentIn, containerStr, itemOut) {\n var lengthIn = (Lib.nestedProperty(parentIn, containerStr).get() || []).length;\n var index = itemOut._index;\n var templateItemName = index >= lengthIn && (itemOut._input || {})._templateitemname;\n if (templateItemName) index = lengthIn;\n var itemStr = containerStr + \"[\" + index + \"]\";\n var update;\n function resetUpdate() {\n update = {};\n if (templateItemName) {\n update[itemStr] = {};\n update[itemStr][TEMPLATEITEMNAME] = templateItemName;\n }\n }\n resetUpdate();\n function modifyBase(attr, value) {\n update[attr] = value;\n }\n function modifyItem(attr, value) {\n if (templateItemName) {\n Lib.nestedProperty(update[itemStr], attr).set(value);\n } else {\n update[itemStr + \".\" + attr] = value;\n }\n }\n function getUpdateObj() {\n var updateOut = update;\n resetUpdate();\n return updateOut;\n }\n function applyUpdate(attr, value) {\n if (attr) modifyItem(attr, value);\n var updateToApply = getUpdateObj();\n for (var key in updateToApply) {\n Lib.nestedProperty(parentIn, key).set(updateToApply[key]);\n }\n }\n return {\n modifyBase,\n modifyItem,\n getUpdateObj,\n applyUpdate\n };\n };\n }\n });\n\n // src/plots/cartesian/constants.js\n var require_constants2 = __commonJS({\n \"src/plots/cartesian/constants.js\"(exports, module) {\n \"use strict\";\n var counterRegex = require_regex().counter;\n module.exports = {\n idRegex: {\n x: counterRegex(\"x\", \"( domain)?\"),\n y: counterRegex(\"y\", \"( domain)?\")\n },\n attrRegex: counterRegex(\"[xy]axis\"),\n // axis match regular expression\n xAxisMatch: counterRegex(\"xaxis\"),\n yAxisMatch: counterRegex(\"yaxis\"),\n // pattern matching axis ids and names\n // note that this is more permissive than counterRegex, as\n // id2name, name2id, and cleanId accept \"x1\" etc\n AX_ID_PATTERN: /^[xyz][0-9]*( domain)?$/,\n AX_NAME_PATTERN: /^[xyz]axis[0-9]*$/,\n // and for 2D subplots\n SUBPLOT_PATTERN: /^x([0-9]*)y([0-9]*)$/,\n HOUR_PATTERN: \"hour\",\n WEEKDAY_PATTERN: \"day of week\",\n // pixels to move mouse before you stop clamping to starting point\n MINDRAG: 8,\n // smallest dimension allowed for a zoombox\n MINZOOM: 20,\n // width of axis drag regions\n DRAGGERSIZE: 20,\n // delay before a redraw (relayout) after smooth panning and zooming\n REDRAWDELAY: 50,\n // last resort axis ranges for x and y axes if we have no data\n DFLTRANGEX: [-1, 6],\n DFLTRANGEY: [-1, 4],\n // Layers to keep trace types in the right order\n // N.B. each 'unique' plot method must have its own layer\n traceLayerClasses: [\n \"imagelayer\",\n \"heatmaplayer\",\n \"contourcarpetlayer\",\n \"contourlayer\",\n \"funnellayer\",\n \"waterfalllayer\",\n \"barlayer\",\n \"carpetlayer\",\n \"violinlayer\",\n \"boxlayer\",\n \"ohlclayer\",\n \"scattercarpetlayer\",\n \"scatterlayer\"\n ],\n clipOnAxisFalseQuery: [\n \".scatterlayer\",\n \".barlayer\",\n \".funnellayer\",\n \".waterfalllayer\"\n ],\n layerValue2layerClass: {\n \"above traces\": \"above\",\n \"below traces\": \"below\"\n },\n zindexSeparator: \"z\"\n // used for zindex of cartesian subplots e.g. xy, xyz2, xyz3, etc.\n };\n }\n });\n\n // src/plots/cartesian/axis_ids.js\n var require_axis_ids = __commonJS({\n \"src/plots/cartesian/axis_ids.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n var constants = require_constants2();\n exports.id2name = function id2name(id) {\n if (typeof id !== \"string\" || !id.match(constants.AX_ID_PATTERN)) return;\n var axNum = id.split(\" \")[0].substr(1);\n if (axNum === \"1\") axNum = \"\";\n return id.charAt(0) + \"axis\" + axNum;\n };\n exports.name2id = function name2id(name2) {\n if (!name2.match(constants.AX_NAME_PATTERN)) return;\n var axNum = name2.substr(5);\n if (axNum === \"1\") axNum = \"\";\n return name2.charAt(0) + axNum;\n };\n exports.cleanId = function cleanId(id, axLetter, domainId) {\n var domainTest = /( domain)$/.test(id);\n if (typeof id !== \"string\" || !id.match(constants.AX_ID_PATTERN)) return;\n if (axLetter && id.charAt(0) !== axLetter) return;\n if (domainTest && !domainId) return;\n var axNum = id.split(\" \")[0].substr(1).replace(/^0+/, \"\");\n if (axNum === \"1\") axNum = \"\";\n return id.charAt(0) + axNum + (domainTest && domainId ? \" domain\" : \"\");\n };\n exports.list = function(gd, axLetter, only2d) {\n var fullLayout = gd._fullLayout;\n if (!fullLayout) return [];\n var idList = exports.listIds(gd, axLetter);\n var out = new Array(idList.length);\n var i;\n for (i = 0; i < idList.length; i++) {\n var idi = idList[i];\n out[i] = fullLayout[idi.charAt(0) + \"axis\" + idi.substr(1)];\n }\n if (!only2d) {\n var sceneIds3D = fullLayout._subplots.gl3d || [];\n for (i = 0; i < sceneIds3D.length; i++) {\n var scene = fullLayout[sceneIds3D[i]];\n if (axLetter) out.push(scene[axLetter + \"axis\"]);\n else out.push(scene.xaxis, scene.yaxis, scene.zaxis);\n }\n }\n return out;\n };\n exports.listIds = function(gd, axLetter) {\n var fullLayout = gd._fullLayout;\n if (!fullLayout) return [];\n var subplotLists = fullLayout._subplots;\n if (axLetter) return subplotLists[axLetter + \"axis\"];\n return subplotLists.xaxis.concat(subplotLists.yaxis);\n };\n exports.getFromId = function(gd, id, type) {\n var fullLayout = gd._fullLayout;\n id = id === void 0 || typeof id !== \"string\" ? id : id.replace(\" domain\", \"\");\n if (type === \"x\") id = id.replace(/y[0-9]*/, \"\");\n else if (type === \"y\") id = id.replace(/x[0-9]*/, \"\");\n return fullLayout[exports.id2name(id)];\n };\n exports.getFromTrace = function(gd, fullTrace, type) {\n var fullLayout = gd._fullLayout;\n var ax = null;\n if (Registry.traceIs(fullTrace, \"gl3d\")) {\n var scene = fullTrace.scene;\n if (scene.substr(0, 5) === \"scene\") {\n ax = fullLayout[scene][type + \"axis\"];\n }\n } else {\n ax = exports.getFromId(gd, fullTrace[type + \"axis\"] || type);\n }\n return ax;\n };\n exports.idSort = function(id1, id2) {\n var letter1 = id1.charAt(0);\n var letter2 = id2.charAt(0);\n if (letter1 !== letter2) return letter1 > letter2 ? 1 : -1;\n return +(id1.substr(1) || 1) - +(id2.substr(1) || 1);\n };\n exports.ref2id = function(ar) {\n return /^[xyz]/.test(ar) ? ar.split(\" \")[0] : false;\n };\n function isFound(axId, list) {\n if (list && list.length) {\n for (var i = 0; i < list.length; i++) {\n if (list[i][axId]) return true;\n }\n }\n return false;\n }\n exports.isLinked = function(fullLayout, axId) {\n return isFound(axId, fullLayout._axisMatchGroups) || isFound(axId, fullLayout._axisConstraintGroups);\n };\n }\n });\n\n // src/components/shapes/handle_outline.js\n var require_handle_outline = __commonJS({\n \"src/components/shapes/handle_outline.js\"(exports, module) {\n \"use strict\";\n function clearOutlineControllers(gd) {\n var zoomLayer = gd._fullLayout._zoomlayer;\n if (zoomLayer) {\n zoomLayer.selectAll(\".outline-controllers\").remove();\n }\n }\n function clearOutline(gd) {\n var zoomLayer = gd._fullLayout._zoomlayer;\n if (zoomLayer) {\n zoomLayer.selectAll(\".select-outline\").remove();\n }\n gd._fullLayout._outlining = false;\n }\n module.exports = {\n clearOutlineControllers,\n clearOutline\n };\n }\n });\n\n // src/traces/scatter/layout_attributes.js\n var require_layout_attributes3 = __commonJS({\n \"src/traces/scatter/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n scattermode: {\n valType: \"enumerated\",\n values: [\"group\", \"overlay\"],\n dflt: \"overlay\",\n editType: \"calc\"\n },\n scattergap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/plots/get_data.js\n var require_get_data = __commonJS({\n \"src/plots/get_data.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n var SUBPLOT_PATTERN = require_constants2().SUBPLOT_PATTERN;\n exports.getSubplotCalcData = function(calcData, type, subplotId) {\n var basePlotModule = Registry.subplotsRegistry[type];\n if (!basePlotModule) return [];\n var attr = basePlotModule.attr;\n var subplotCalcData = [];\n for (var i = 0; i < calcData.length; i++) {\n var calcTrace = calcData[i];\n var trace = calcTrace[0].trace;\n if (trace[attr] === subplotId) subplotCalcData.push(calcTrace);\n }\n return subplotCalcData;\n };\n exports.getModuleCalcData = function(calcdata, arg1, arg2) {\n var moduleCalcData = [];\n var remainingCalcData = [];\n var plotMethod;\n if (typeof arg1 === \"string\") {\n plotMethod = Registry.getModule(arg1).plot;\n } else if (typeof arg1 === \"function\") {\n plotMethod = arg1;\n } else {\n plotMethod = arg1.plot;\n }\n if (!plotMethod) {\n return [moduleCalcData, calcdata];\n }\n var zorder = arg2;\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var trace = cd[0].trace;\n var filterByZ = trace.zorder !== void 0;\n if (trace.visible !== true || trace._length === 0) continue;\n if (trace._module && trace._module.plot === plotMethod && (!filterByZ || trace.zorder === zorder)) {\n moduleCalcData.push(cd);\n } else {\n remainingCalcData.push(cd);\n }\n }\n return [moduleCalcData, remainingCalcData];\n };\n exports.getSubplotData = function getSubplotData(data, type, subplotId) {\n if (!Registry.subplotsRegistry[type]) return [];\n var attr = Registry.subplotsRegistry[type].attr;\n var subplotData = [];\n var trace, subplotX, subplotY;\n for (var i = 0; i < data.length; i++) {\n trace = data[i];\n if (trace[attr] === subplotId) subplotData.push(trace);\n }\n return subplotData;\n };\n }\n });\n\n // src/plots/command.js\n var require_command = __commonJS({\n \"src/plots/command.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n exports.manageCommandObserver = function(gd, container, commandList, onchange) {\n var ret = {};\n var enabled = true;\n if (container && container._commandObserver) {\n ret = container._commandObserver;\n }\n if (!ret.cache) {\n ret.cache = {};\n }\n ret.lookupTable = {};\n var binding = exports.hasSimpleAPICommandBindings(gd, commandList, ret.lookupTable);\n if (container && container._commandObserver) {\n if (!binding) {\n if (container._commandObserver.remove) {\n container._commandObserver.remove();\n container._commandObserver = null;\n return ret;\n }\n } else {\n return ret;\n }\n }\n if (binding) {\n bindingValueHasChanged(gd, binding, ret.cache);\n ret.check = function check() {\n if (!enabled) return;\n var update = bindingValueHasChanged(gd, binding, ret.cache);\n if (update.changed && onchange) {\n if (ret.lookupTable[update.value] !== void 0) {\n ret.disable();\n Promise.resolve(onchange({\n value: update.value,\n type: binding.type,\n prop: binding.prop,\n traces: binding.traces,\n index: ret.lookupTable[update.value]\n })).then(ret.enable, ret.enable);\n }\n }\n return update.changed;\n };\n var checkEvents = [\n \"plotly_relayout\",\n \"plotly_redraw\",\n \"plotly_restyle\",\n \"plotly_update\",\n \"plotly_animatingframe\",\n \"plotly_afterplot\"\n ];\n for (var i = 0; i < checkEvents.length; i++) {\n gd._internalOn(checkEvents[i], ret.check);\n }\n ret.remove = function() {\n for (var i2 = 0; i2 < checkEvents.length; i2++) {\n gd._removeInternalListener(checkEvents[i2], ret.check);\n }\n };\n } else {\n Lib.log(\"Unable to automatically bind plot updates to API command\");\n ret.lookupTable = {};\n ret.remove = function() {\n };\n }\n ret.disable = function disable() {\n enabled = false;\n };\n ret.enable = function enable() {\n enabled = true;\n };\n if (container) {\n container._commandObserver = ret;\n }\n return ret;\n };\n exports.hasSimpleAPICommandBindings = function(gd, commandList, bindingsByValue) {\n var i;\n var n = commandList.length;\n var refBinding;\n for (i = 0; i < n; i++) {\n var binding;\n var command = commandList[i];\n var method = command.method;\n var args = command.args;\n if (!Array.isArray(args)) args = [];\n if (!method) {\n return false;\n }\n var bindings = exports.computeAPICommandBindings(gd, method, args);\n if (bindings.length !== 1) {\n return false;\n }\n if (!refBinding) {\n refBinding = bindings[0];\n if (Array.isArray(refBinding.traces)) {\n refBinding.traces.sort();\n }\n } else {\n binding = bindings[0];\n if (binding.type !== refBinding.type) {\n return false;\n }\n if (binding.prop !== refBinding.prop) {\n return false;\n }\n if (Array.isArray(refBinding.traces)) {\n if (Array.isArray(binding.traces)) {\n binding.traces.sort();\n for (var j = 0; j < refBinding.traces.length; j++) {\n if (refBinding.traces[j] !== binding.traces[j]) {\n return false;\n }\n }\n } else {\n return false;\n }\n } else {\n if (binding.prop !== refBinding.prop) {\n return false;\n }\n }\n }\n binding = bindings[0];\n var value = binding.value;\n if (Array.isArray(value)) {\n if (value.length === 1) {\n value = value[0];\n } else {\n return false;\n }\n }\n if (bindingsByValue) {\n bindingsByValue[value] = i;\n }\n }\n return refBinding;\n };\n function bindingValueHasChanged(gd, binding, cache) {\n var container, value, obj;\n var changed = false;\n if (binding.type === \"data\") {\n container = gd._fullData[binding.traces !== null ? binding.traces[0] : 0];\n } else if (binding.type === \"layout\") {\n container = gd._fullLayout;\n } else {\n return false;\n }\n value = Lib.nestedProperty(container, binding.prop).get();\n obj = cache[binding.type] = cache[binding.type] || {};\n if (obj.hasOwnProperty(binding.prop)) {\n if (obj[binding.prop] !== value) {\n changed = true;\n }\n }\n obj[binding.prop] = value;\n return {\n changed,\n value\n };\n }\n exports.executeAPICommand = function(gd, method, args) {\n if (method === \"skip\") return Promise.resolve();\n var _method = Registry.apiMethodRegistry[method];\n var allArgs = [gd];\n if (!Array.isArray(args)) args = [];\n for (var i = 0; i < args.length; i++) {\n allArgs.push(args[i]);\n }\n return _method.apply(null, allArgs).catch(function(err) {\n Lib.warn(\"API call to Plotly.\" + method + \" rejected.\", err);\n return Promise.reject(err);\n });\n };\n exports.computeAPICommandBindings = function(gd, method, args) {\n var bindings;\n if (!Array.isArray(args)) args = [];\n switch (method) {\n case \"restyle\":\n bindings = computeDataBindings(gd, args);\n break;\n case \"relayout\":\n bindings = computeLayoutBindings(gd, args);\n break;\n case \"update\":\n bindings = computeDataBindings(gd, [args[0], args[2]]).concat(computeLayoutBindings(gd, [args[1]]));\n break;\n case \"animate\":\n bindings = computeAnimateBindings(gd, args);\n break;\n default:\n bindings = [];\n }\n return bindings;\n };\n function computeAnimateBindings(gd, args) {\n if (Array.isArray(args[0]) && args[0].length === 1 && [\"string\", \"number\"].indexOf(typeof args[0][0]) !== -1) {\n return [{ type: \"layout\", prop: \"_currentFrame\", value: args[0][0].toString() }];\n } else {\n return [];\n }\n }\n function computeLayoutBindings(gd, args) {\n var bindings = [];\n var astr = args[0];\n var aobj = {};\n if (typeof astr === \"string\") {\n aobj[astr] = args[1];\n } else if (Lib.isPlainObject(astr)) {\n aobj = astr;\n } else {\n return bindings;\n }\n crawl(aobj, function(path, attrName, attr) {\n bindings.push({ type: \"layout\", prop: path, value: attr });\n }, \"\", 0);\n return bindings;\n }\n function computeDataBindings(gd, args) {\n var traces, astr, val, aobj;\n var bindings = [];\n astr = args[0];\n val = args[1];\n traces = args[2];\n aobj = {};\n if (typeof astr === \"string\") {\n aobj[astr] = val;\n } else if (Lib.isPlainObject(astr)) {\n aobj = astr;\n if (traces === void 0) {\n traces = val;\n }\n } else {\n return bindings;\n }\n if (traces === void 0) {\n traces = null;\n }\n crawl(aobj, function(path, attrName, _attr) {\n var thisTraces;\n var attr;\n if (Array.isArray(_attr)) {\n attr = _attr.slice();\n var nAttr = Math.min(attr.length, gd.data.length);\n if (traces) {\n nAttr = Math.min(nAttr, traces.length);\n }\n thisTraces = [];\n for (var j = 0; j < nAttr; j++) {\n thisTraces[j] = traces ? traces[j] : j;\n }\n } else {\n attr = _attr;\n thisTraces = traces ? traces.slice() : null;\n }\n if (thisTraces === null) {\n if (Array.isArray(attr)) {\n attr = attr[0];\n }\n } else if (Array.isArray(thisTraces)) {\n if (!Array.isArray(attr)) {\n var tmp = attr;\n attr = [];\n for (var i = 0; i < thisTraces.length; i++) {\n attr[i] = tmp;\n }\n }\n attr.length = Math.min(thisTraces.length, attr.length);\n }\n bindings.push({\n type: \"data\",\n prop: path,\n traces: thisTraces,\n value: attr\n });\n }, \"\", 0);\n return bindings;\n }\n function crawl(attrs, callback, path, depth) {\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n if (attrName[0] === \"_\") return;\n var thisPath = path + (depth > 0 ? \".\" : \"\") + attrName;\n if (Lib.isPlainObject(attr)) {\n crawl(attr, callback, thisPath, depth + 1);\n } else {\n callback(thisPath, attrName, attr);\n }\n });\n }\n }\n });\n\n // src/plots/plots.js\n var require_plots = __commonJS({\n \"src/plots/plots.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var timeFormatLocale = require_d3_time_format().timeFormatLocale;\n var formatLocale = require_d3_format().formatLocale;\n var isNumeric = require_fast_isnumeric();\n var b64encode = require_base64_arraybuffer_umd();\n var Registry = require_registry();\n var PlotSchema = require_plot_schema();\n var Template = require_plot_template();\n var Lib = require_lib();\n var Color2 = require_color();\n var BADNUM = require_numerical().BADNUM;\n var axisIDs = require_axis_ids();\n var clearOutline = require_handle_outline().clearOutline;\n var scatterAttrs = require_layout_attributes3();\n var animationAttrs = require_animation_attributes();\n var frameAttrs = require_frame_attributes();\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var relinkPrivateKeys = Lib.relinkPrivateKeys;\n var _ = Lib._;\n var plots = module.exports = {};\n Lib.extendFlat(plots, Registry);\n plots.attributes = require_attributes2();\n plots.attributes.type.values = plots.allTypes;\n plots.fontAttrs = require_font_attributes();\n plots.layoutAttributes = require_layout_attributes2();\n var commandModule = require_command();\n plots.executeAPICommand = commandModule.executeAPICommand;\n plots.computeAPICommandBindings = commandModule.computeAPICommandBindings;\n plots.manageCommandObserver = commandModule.manageCommandObserver;\n plots.hasSimpleAPICommandBindings = commandModule.hasSimpleAPICommandBindings;\n plots.redrawText = function(gd) {\n gd = Lib.getGraphDiv(gd);\n return new Promise(function(resolve) {\n setTimeout(function() {\n if (!gd._fullLayout) return;\n Registry.getComponentMethod(\"annotations\", \"draw\")(gd);\n Registry.getComponentMethod(\"legend\", \"draw\")(gd);\n Registry.getComponentMethod(\"colorbar\", \"draw\")(gd);\n resolve(plots.previousPromises(gd));\n }, 300);\n });\n };\n plots.resize = function(gd) {\n gd = Lib.getGraphDiv(gd);\n var resolveLastResize;\n var p = new Promise(function(resolve, reject) {\n if (!gd || Lib.isHidden(gd)) {\n reject(new Error(\"Resize must be passed a displayed plot div element.\"));\n }\n if (gd._redrawTimer) clearTimeout(gd._redrawTimer);\n if (gd._resolveResize) resolveLastResize = gd._resolveResize;\n gd._resolveResize = resolve;\n gd._redrawTimer = setTimeout(function() {\n if (!gd.layout || gd.layout.width && gd.layout.height || Lib.isHidden(gd)) {\n resolve(gd);\n return;\n }\n delete gd.layout.width;\n delete gd.layout.height;\n var oldchanged = gd.changed;\n gd.autoplay = true;\n Registry.call(\"relayout\", gd, { autosize: true }).then(function() {\n gd.changed = oldchanged;\n if (gd._resolveResize === resolve) {\n delete gd._resolveResize;\n resolve(gd);\n }\n });\n }, 100);\n });\n if (resolveLastResize) resolveLastResize(p);\n return p;\n };\n plots.previousPromises = function(gd) {\n if ((gd._promises || []).length) {\n return Promise.all(gd._promises).then(function() {\n gd._promises = [];\n });\n }\n };\n plots.addLinks = function(gd) {\n if (!gd._context.showLink && !gd._context.showSources) return;\n var fullLayout = gd._fullLayout;\n var linkContainer = Lib.ensureSingle(fullLayout._paper, \"text\", \"js-plot-link-container\", function(s) {\n s.style({\n \"font-family\": '\"Open Sans\", Arial, sans-serif',\n \"font-size\": \"12px\",\n fill: Color2.defaultLine,\n \"pointer-events\": \"all\"\n }).each(function() {\n var links = d3.select(this);\n links.append(\"tspan\").classed(\"js-link-to-tool\", true);\n links.append(\"tspan\").classed(\"js-link-spacer\", true);\n links.append(\"tspan\").classed(\"js-sourcelinks\", true);\n });\n });\n var text = linkContainer.node();\n var attrs = { y: fullLayout._paper.attr(\"height\") - 9 };\n if (document.body.contains(text) && text.getComputedTextLength() >= fullLayout.width - 20) {\n attrs[\"text-anchor\"] = \"start\";\n attrs.x = 5;\n } else {\n attrs[\"text-anchor\"] = \"end\";\n attrs.x = fullLayout._paper.attr(\"width\") - 7;\n }\n linkContainer.attr(attrs);\n var toolspan = linkContainer.select(\".js-link-to-tool\");\n var spacespan = linkContainer.select(\".js-link-spacer\");\n var sourcespan = linkContainer.select(\".js-sourcelinks\");\n if (gd._context.showSources) gd._context.showSources(gd);\n if (gd._context.showLink) positionPlayWithData(gd, toolspan);\n spacespan.text(toolspan.text() && sourcespan.text() ? \" - \" : \"\");\n };\n function positionPlayWithData(gd, container) {\n container.text(\"\");\n var link = container.append(\"a\").attr({\n \"xlink:xlink:href\": \"#\",\n class: \"link--impt link--embedview\",\n \"font-weight\": \"bold\"\n }).text(gd._context.linkText + \" \" + String.fromCharCode(187));\n if (gd._context.sendData) {\n link.on(\"click\", function() {\n plots.sendDataToCloud(gd);\n });\n } else {\n var path = window.location.pathname.split(\"/\");\n var query = window.location.search;\n link.attr({\n \"xlink:xlink:show\": \"new\",\n \"xlink:xlink:href\": \"/\" + path[2].split(\".\")[0] + \"/\" + path[1] + query\n });\n }\n }\n plots.sendDataToCloud = function(gd) {\n var baseUrl = (window.PLOTLYENV || {}).BASE_URL || gd._context.plotlyServerURL;\n if (!baseUrl) return;\n gd.emit(\"plotly_beforeexport\");\n var hiddenformDiv = d3.select(gd).append(\"div\").attr(\"id\", \"hiddenform\").style(\"display\", \"none\");\n var hiddenform = hiddenformDiv.append(\"form\").attr({\n action: baseUrl + \"/external\",\n method: \"post\",\n target: \"_blank\"\n });\n var hiddenformInput = hiddenform.append(\"input\").attr({\n type: \"text\",\n name: \"data\"\n });\n hiddenformInput.node().value = plots.graphJson(gd, false, \"keepdata\");\n hiddenform.node().submit();\n hiddenformDiv.remove();\n gd.emit(\"plotly_afterexport\");\n return false;\n };\n var d3FormatKeys = [\n \"days\",\n \"shortDays\",\n \"months\",\n \"shortMonths\",\n \"periods\",\n \"dateTime\",\n \"date\",\n \"time\",\n \"decimal\",\n \"thousands\",\n \"grouping\",\n \"currency\"\n ];\n var extraFormatKeys = [\n \"year\",\n \"month\",\n \"dayMonth\",\n \"dayMonthYear\"\n ];\n plots.supplyDefaults = function(gd, opts) {\n var skipUpdateCalc = opts && opts.skipUpdateCalc;\n var oldFullLayout = gd._fullLayout || {};\n if (oldFullLayout._skipDefaults) {\n delete oldFullLayout._skipDefaults;\n return;\n }\n var newFullLayout = gd._fullLayout = {};\n var newLayout = gd.layout || {};\n var oldFullData = gd._fullData || [];\n var newFullData = gd._fullData = [];\n var newData = gd.data || [];\n var oldCalcdata = gd.calcdata || [];\n var context = gd._context || {};\n var i;\n if (!gd._transitionData) plots.createTransitionData(gd);\n newFullLayout._dfltTitle = {\n plot: _(gd, \"Click to enter Plot title\"),\n subtitle: _(gd, \"Click to enter Plot subtitle\"),\n x: _(gd, \"Click to enter X axis title\"),\n y: _(gd, \"Click to enter Y axis title\"),\n colorbar: _(gd, \"Click to enter Colorscale title\"),\n annotation: _(gd, \"new text\")\n };\n newFullLayout._traceWord = _(gd, \"trace\");\n var formatObj = getFormatObj(gd, d3FormatKeys);\n newFullLayout._mapboxAccessToken = context.mapboxAccessToken;\n if (oldFullLayout._initialAutoSizeIsDone) {\n var oldWidth = oldFullLayout.width;\n var oldHeight = oldFullLayout.height;\n plots.supplyLayoutGlobalDefaults(newLayout, newFullLayout, formatObj);\n if (!newLayout.width) newFullLayout.width = oldWidth;\n if (!newLayout.height) newFullLayout.height = oldHeight;\n plots.sanitizeMargins(newFullLayout);\n } else {\n plots.supplyLayoutGlobalDefaults(newLayout, newFullLayout, formatObj);\n var missingWidthOrHeight = !newLayout.width || !newLayout.height;\n var autosize = newFullLayout.autosize;\n var autosizable = context.autosizable;\n var initialAutoSize = missingWidthOrHeight && (autosize || autosizable);\n if (initialAutoSize) plots.plotAutoSize(gd, newLayout, newFullLayout);\n else if (missingWidthOrHeight) plots.sanitizeMargins(newFullLayout);\n if (!autosize && missingWidthOrHeight) {\n newLayout.width = newFullLayout.width;\n newLayout.height = newFullLayout.height;\n }\n }\n newFullLayout._d3locale = getFormatter(formatObj, newFullLayout.separators);\n newFullLayout._extraFormat = getFormatObj(gd, extraFormatKeys);\n newFullLayout._initialAutoSizeIsDone = true;\n newFullLayout._dataLength = newData.length;\n newFullLayout._modules = [];\n newFullLayout._visibleModules = [];\n newFullLayout._basePlotModules = [];\n var subplots = newFullLayout._subplots = emptySubplotLists();\n var splomAxes = newFullLayout._splomAxes = { x: {}, y: {} };\n var splomSubplots = newFullLayout._splomSubplots = {};\n newFullLayout._splomGridDflt = {};\n newFullLayout._scatterStackOpts = {};\n newFullLayout._firstScatter = {};\n newFullLayout._alignmentOpts = {};\n newFullLayout._colorAxes = {};\n newFullLayout._requestRangeslider = {};\n newFullLayout._traceUids = getTraceUids(oldFullData, newData);\n plots.supplyDataDefaults(newData, newFullData, newLayout, newFullLayout);\n var splomXa = Object.keys(splomAxes.x);\n var splomYa = Object.keys(splomAxes.y);\n if (splomXa.length > 1 && splomYa.length > 1) {\n Registry.getComponentMethod(\"grid\", \"sizeDefaults\")(newLayout, newFullLayout);\n for (i = 0; i < splomXa.length; i++) {\n Lib.pushUnique(subplots.xaxis, splomXa[i]);\n }\n for (i = 0; i < splomYa.length; i++) {\n Lib.pushUnique(subplots.yaxis, splomYa[i]);\n }\n for (var k in splomSubplots) {\n Lib.pushUnique(subplots.cartesian, k);\n }\n }\n newFullLayout._has = plots._hasPlotType.bind(newFullLayout);\n if (oldFullData.length === newFullData.length) {\n for (i = 0; i < newFullData.length; i++) {\n relinkPrivateKeys(newFullData[i], oldFullData[i]);\n }\n }\n plots.supplyLayoutModuleDefaults(newLayout, newFullLayout, newFullData, gd._transitionData);\n var _modules = newFullLayout._visibleModules;\n var crossTraceDefaultsFuncs = [];\n for (i = 0; i < _modules.length; i++) {\n var funci = _modules[i].crossTraceDefaults;\n if (funci) Lib.pushUnique(crossTraceDefaultsFuncs, funci);\n }\n for (i = 0; i < crossTraceDefaultsFuncs.length; i++) {\n crossTraceDefaultsFuncs[i](newFullData, newFullLayout);\n }\n newFullLayout._hasOnlyLargeSploms = newFullLayout._basePlotModules.length === 1 && newFullLayout._basePlotModules[0].name === \"splom\" && splomXa.length > 15 && splomYa.length > 15 && newFullLayout.shapes.length === 0 && newFullLayout.images.length === 0;\n plots.linkSubplots(newFullData, newFullLayout, oldFullData, oldFullLayout);\n plots.cleanPlot(newFullData, newFullLayout, oldFullData, oldFullLayout);\n var hadCartesian = !!(oldFullLayout._has && oldFullLayout._has(\"cartesian\"));\n var hasCartesian = !!(newFullLayout._has && newFullLayout._has(\"cartesian\"));\n var hadBgLayer = hadCartesian;\n var hasBgLayer = hasCartesian;\n if (hadBgLayer && !hasBgLayer) {\n oldFullLayout._bgLayer.remove();\n } else if (hasBgLayer && !hadBgLayer) {\n newFullLayout._shouldCreateBgLayer = true;\n }\n if (oldFullLayout._zoomlayer && !gd._dragging) {\n clearOutline({\n // mock old gd\n _fullLayout: oldFullLayout\n });\n }\n fillMetaTextHelpers(newFullData, newFullLayout);\n relinkPrivateKeys(newFullLayout, oldFullLayout);\n Registry.getComponentMethod(\"colorscale\", \"crossTraceDefaults\")(newFullData, newFullLayout);\n if (!newFullLayout._preGUI) newFullLayout._preGUI = {};\n if (!newFullLayout._tracePreGUI) newFullLayout._tracePreGUI = {};\n var tracePreGUI = newFullLayout._tracePreGUI;\n var uids = {};\n var uid;\n for (uid in tracePreGUI) uids[uid] = \"old\";\n for (i = 0; i < newFullData.length; i++) {\n uid = newFullData[i]._fullInput.uid;\n if (!uids[uid]) tracePreGUI[uid] = {};\n uids[uid] = \"new\";\n }\n for (uid in uids) {\n if (uids[uid] === \"old\") delete tracePreGUI[uid];\n }\n initMargins(newFullLayout);\n Registry.getComponentMethod(\"rangeslider\", \"makeData\")(newFullLayout);\n if (!skipUpdateCalc && oldCalcdata.length === newFullData.length) {\n plots.supplyDefaultsUpdateCalc(oldCalcdata, newFullData);\n }\n };\n plots.supplyDefaultsUpdateCalc = function(oldCalcdata, newFullData) {\n for (var i = 0; i < newFullData.length; i++) {\n var newTrace = newFullData[i];\n var cd0 = (oldCalcdata[i] || [])[0];\n if (cd0 && cd0.trace) {\n var oldTrace = cd0.trace;\n if (oldTrace._hasCalcTransform) {\n var arrayAttrs = oldTrace._arrayAttrs;\n var j, astr, oldArrayVal;\n for (j = 0; j < arrayAttrs.length; j++) {\n astr = arrayAttrs[j];\n oldArrayVal = Lib.nestedProperty(oldTrace, astr).get().slice();\n Lib.nestedProperty(newTrace, astr).set(oldArrayVal);\n }\n }\n cd0.trace = newTrace;\n }\n }\n };\n function getTraceUids(oldFullData, newData) {\n var len = newData.length;\n var oldFullInput = [];\n var i, prevFullInput;\n for (i = 0; i < oldFullData.length; i++) {\n var thisFullInput = oldFullData[i]._fullInput;\n if (thisFullInput !== prevFullInput) oldFullInput.push(thisFullInput);\n prevFullInput = thisFullInput;\n }\n var oldLen = oldFullInput.length;\n var out = new Array(len);\n var seenUids = {};\n function setUid(uid, i2) {\n out[i2] = uid;\n seenUids[uid] = 1;\n }\n function tryUid(uid, i2) {\n if (uid && typeof uid === \"string\" && !seenUids[uid]) {\n setUid(uid, i2);\n return true;\n }\n }\n for (i = 0; i < len; i++) {\n var newUid = newData[i].uid;\n if (typeof newUid === \"number\") newUid = String(newUid);\n if (tryUid(newUid, i)) continue;\n if (i < oldLen && tryUid(oldFullInput[i].uid, i)) continue;\n setUid(Lib.randstr(seenUids), i);\n }\n return out;\n }\n function emptySubplotLists() {\n var collectableSubplotTypes = Registry.collectableSubplotTypes;\n var out = {};\n var i, j;\n if (!collectableSubplotTypes) {\n collectableSubplotTypes = [];\n var subplotsRegistry = Registry.subplotsRegistry;\n for (var subplotType in subplotsRegistry) {\n var subplotModule = subplotsRegistry[subplotType];\n var subplotAttr = subplotModule.attr;\n if (subplotAttr) {\n collectableSubplotTypes.push(subplotType);\n if (Array.isArray(subplotAttr)) {\n for (j = 0; j < subplotAttr.length; j++) {\n Lib.pushUnique(collectableSubplotTypes, subplotAttr[j]);\n }\n }\n }\n }\n }\n for (i = 0; i < collectableSubplotTypes.length; i++) {\n out[collectableSubplotTypes[i]] = [];\n }\n return out;\n }\n function getFormatObj(gd, formatKeys) {\n var locale = gd._context.locale;\n if (!locale) locale = \"en-US\";\n var formatDone = false;\n var formatObj = {};\n function includeFormat(newFormat) {\n var formatFinished = true;\n for (var i2 = 0; i2 < formatKeys.length; i2++) {\n var formatKey = formatKeys[i2];\n if (!formatObj[formatKey]) {\n if (newFormat[formatKey]) {\n formatObj[formatKey] = newFormat[formatKey];\n } else formatFinished = false;\n }\n }\n if (formatFinished) formatDone = true;\n }\n for (var i = 0; i < 2; i++) {\n var locales = gd._context.locales;\n for (var j = 0; j < 2; j++) {\n var formatj = (locales[locale] || {}).format;\n if (formatj) {\n includeFormat(formatj);\n if (formatDone) break;\n }\n locales = Registry.localeRegistry;\n }\n var baseLocale = locale.split(\"-\")[0];\n if (formatDone || baseLocale === locale) break;\n locale = baseLocale;\n }\n if (!formatDone) includeFormat(Registry.localeRegistry.en.format);\n return formatObj;\n }\n function getFormatter(formatObj, separators) {\n formatObj.decimal = separators.charAt(0);\n formatObj.thousands = separators.charAt(1);\n return {\n numberFormat: function(formatStr) {\n try {\n formatStr = formatLocale(formatObj).format(\n Lib.adjustFormat(formatStr)\n );\n } catch (e) {\n Lib.warnBadFormat(formatStr);\n return Lib.noFormat;\n }\n return formatStr;\n },\n timeFormat: timeFormatLocale(formatObj).utcFormat\n };\n }\n function fillMetaTextHelpers(newFullData, newFullLayout) {\n var _meta;\n var meta4data = [];\n if (newFullLayout.meta) {\n _meta = newFullLayout._meta = {\n meta: newFullLayout.meta,\n layout: { meta: newFullLayout.meta }\n };\n }\n for (var i = 0; i < newFullData.length; i++) {\n var trace = newFullData[i];\n if (trace.meta) {\n meta4data[trace.index] = trace._meta = { meta: trace.meta };\n } else if (newFullLayout.meta) {\n trace._meta = { meta: newFullLayout.meta };\n }\n if (newFullLayout.meta) {\n trace._meta.layout = { meta: newFullLayout.meta };\n }\n }\n if (meta4data.length) {\n if (!_meta) {\n _meta = newFullLayout._meta = {};\n }\n _meta.data = meta4data;\n }\n }\n plots.createTransitionData = function(gd) {\n if (!gd._transitionData) {\n gd._transitionData = {};\n }\n if (!gd._transitionData._frames) {\n gd._transitionData._frames = [];\n }\n if (!gd._transitionData._frameHash) {\n gd._transitionData._frameHash = {};\n }\n if (!gd._transitionData._counter) {\n gd._transitionData._counter = 0;\n }\n if (!gd._transitionData._interruptCallbacks) {\n gd._transitionData._interruptCallbacks = [];\n }\n };\n plots._hasPlotType = function(category) {\n var i;\n var basePlotModules = this._basePlotModules || [];\n for (i = 0; i < basePlotModules.length; i++) {\n if (basePlotModules[i].name === category) return true;\n }\n var modules = this._modules || [];\n for (i = 0; i < modules.length; i++) {\n var name2 = modules[i].name;\n if (name2 === category) return true;\n var _module = Registry.modules[name2];\n if (_module && _module.categories[category]) return true;\n }\n return false;\n };\n plots.cleanPlot = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var i, j;\n var basePlotModules = oldFullLayout._basePlotModules || [];\n for (i = 0; i < basePlotModules.length; i++) {\n var _module = basePlotModules[i];\n if (_module.clean) {\n _module.clean(newFullData, newFullLayout, oldFullData, oldFullLayout);\n }\n }\n var hadGl = oldFullLayout._has && oldFullLayout._has(\"gl\");\n var hasGl = newFullLayout._has && newFullLayout._has(\"gl\");\n if (hadGl && !hasGl) {\n if (oldFullLayout._glcontainer !== void 0) {\n oldFullLayout._glcontainer.selectAll(\".gl-canvas\").remove();\n oldFullLayout._glcontainer.selectAll(\".no-webgl\").remove();\n oldFullLayout._glcanvas = null;\n }\n }\n var hasInfoLayer = !!oldFullLayout._infolayer;\n oldLoop:\n for (i = 0; i < oldFullData.length; i++) {\n var oldTrace = oldFullData[i];\n var oldUid = oldTrace.uid;\n for (j = 0; j < newFullData.length; j++) {\n var newTrace = newFullData[j];\n if (oldUid === newTrace.uid) continue oldLoop;\n }\n if (hasInfoLayer) {\n oldFullLayout._infolayer.select(\".cb\" + oldUid).remove();\n }\n }\n };\n plots.linkSubplots = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var i, j;\n var oldSubplots = oldFullLayout._plots || {};\n var newSubplots = newFullLayout._plots = {};\n var newSubplotList = newFullLayout._subplots;\n var mockGd = {\n _fullData: newFullData,\n _fullLayout: newFullLayout\n };\n var ids = newSubplotList.cartesian || [];\n for (i = 0; i < ids.length; i++) {\n var id = ids[i];\n var oldSubplot = oldSubplots[id];\n var xaxis = axisIDs.getFromId(mockGd, id, \"x\");\n var yaxis = axisIDs.getFromId(mockGd, id, \"y\");\n var plotinfo;\n if (oldSubplot) {\n plotinfo = newSubplots[id] = oldSubplot;\n } else {\n plotinfo = newSubplots[id] = {};\n plotinfo.id = id;\n }\n xaxis._counterAxes.push(yaxis._id);\n yaxis._counterAxes.push(xaxis._id);\n xaxis._subplotsWith.push(id);\n yaxis._subplotsWith.push(id);\n plotinfo.xaxis = xaxis;\n plotinfo.yaxis = yaxis;\n plotinfo._hasClipOnAxisFalse = false;\n for (j = 0; j < newFullData.length; j++) {\n var trace = newFullData[j];\n if (trace.xaxis === plotinfo.xaxis._id && trace.yaxis === plotinfo.yaxis._id && trace.cliponaxis === false) {\n plotinfo._hasClipOnAxisFalse = true;\n break;\n }\n }\n }\n var axList = axisIDs.list(mockGd, null, true);\n var ax;\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n var mainAx = null;\n if (ax.overlaying) {\n mainAx = axisIDs.getFromId(mockGd, ax.overlaying);\n if (mainAx && mainAx.overlaying) {\n ax.overlaying = false;\n mainAx = null;\n }\n }\n ax._mainAxis = mainAx || ax;\n if (mainAx) ax.domain = mainAx.domain.slice();\n ax._anchorAxis = ax.anchor === \"free\" ? null : axisIDs.getFromId(mockGd, ax.anchor);\n }\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n ax._counterAxes.sort(axisIDs.idSort);\n ax._subplotsWith.sort(Lib.subplotSort);\n ax._mainSubplot = findMainSubplot(ax, newFullLayout);\n if (ax._counterAxes.length && (ax.spikemode && ax.spikemode.indexOf(\"across\") !== -1 || ax.automargin && ax.mirror && ax.anchor !== \"free\" || Registry.getComponentMethod(\"rangeslider\", \"isVisible\")(ax))) {\n var min = 1;\n var max = 0;\n for (j = 0; j < ax._counterAxes.length; j++) {\n var ax2 = axisIDs.getFromId(mockGd, ax._counterAxes[j]);\n min = Math.min(min, ax2.domain[0]);\n max = Math.max(max, ax2.domain[1]);\n }\n if (min < max) {\n ax._counterDomainMin = min;\n ax._counterDomainMax = max;\n }\n }\n }\n };\n function findMainSubplot(ax, fullLayout) {\n var mockGd = { _fullLayout: fullLayout };\n var isX = ax._id.charAt(0) === \"x\";\n var anchorAx = ax._mainAxis._anchorAxis;\n var mainSubplotID = \"\";\n var nextBestMainSubplotID = \"\";\n var anchorID = \"\";\n if (anchorAx) {\n anchorID = anchorAx._mainAxis._id;\n mainSubplotID = isX ? ax._id + anchorID : anchorID + ax._id;\n }\n if (!mainSubplotID || !fullLayout._plots[mainSubplotID]) {\n mainSubplotID = \"\";\n var counterIDs = ax._counterAxes;\n for (var j = 0; j < counterIDs.length; j++) {\n var counterPart = counterIDs[j];\n var id = isX ? ax._id + counterPart : counterPart + ax._id;\n if (!nextBestMainSubplotID) nextBestMainSubplotID = id;\n var counterAx = axisIDs.getFromId(mockGd, counterPart);\n if (anchorID && counterAx.overlaying === anchorID) {\n mainSubplotID = id;\n break;\n }\n }\n }\n return mainSubplotID || nextBestMainSubplotID;\n }\n plots.clearExpandedTraceDefaultColors = function(trace) {\n var colorAttrs, path, i;\n function locateColorAttrs(attr, attrName, attrs, level) {\n path[level] = attrName;\n path.length = level + 1;\n if (attr.valType === \"color\" && attr.dflt === void 0) {\n colorAttrs.push(path.join(\".\"));\n }\n }\n path = [];\n colorAttrs = trace._module._colorAttrs;\n if (!colorAttrs) {\n trace._module._colorAttrs = colorAttrs = [];\n PlotSchema.crawl(\n trace._module.attributes,\n locateColorAttrs\n );\n }\n for (i = 0; i < colorAttrs.length; i++) {\n var origprop = Lib.nestedProperty(trace, \"_input.\" + colorAttrs[i]);\n if (!origprop.get()) {\n Lib.nestedProperty(trace, colorAttrs[i]).set(null);\n }\n }\n };\n plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {\n var modules = fullLayout._modules;\n var visibleModules = fullLayout._visibleModules;\n var basePlotModules = fullLayout._basePlotModules;\n var cnt = 0;\n var colorCnt = 0;\n var i, fullTrace, trace;\n fullLayout._transformModules = [];\n function pushModule(fullTrace2) {\n dataOut.push(fullTrace2);\n var _module = fullTrace2._module;\n if (!_module) return;\n Lib.pushUnique(modules, _module);\n if (fullTrace2.visible === true) Lib.pushUnique(visibleModules, _module);\n Lib.pushUnique(basePlotModules, fullTrace2._module.basePlotModule);\n cnt++;\n if (fullTrace2._input.visible !== false) colorCnt++;\n }\n var carpetIndex = {};\n var carpetDependents = [];\n var dataTemplate = (layout.template || {}).data || {};\n var templater = Template.traceTemplater(dataTemplate);\n for (i = 0; i < dataIn.length; i++) {\n trace = dataIn[i];\n fullTrace = templater.newTrace(trace);\n fullTrace.uid = fullLayout._traceUids[i];\n plots.supplyTraceDefaults(trace, fullTrace, colorCnt, fullLayout, i);\n fullTrace.index = i;\n fullTrace._input = trace;\n fullTrace._fullInput = fullTrace;\n pushModule(fullTrace);\n if (Registry.traceIs(fullTrace, \"carpetAxis\")) {\n carpetIndex[fullTrace.carpet] = fullTrace;\n }\n if (Registry.traceIs(fullTrace, \"carpetDependent\")) {\n carpetDependents.push(i);\n }\n }\n for (i = 0; i < carpetDependents.length; i++) {\n fullTrace = dataOut[carpetDependents[i]];\n if (!fullTrace.visible) continue;\n var carpetAxis = carpetIndex[fullTrace.carpet];\n fullTrace._carpet = carpetAxis;\n if (!carpetAxis || !carpetAxis.visible) {\n fullTrace.visible = false;\n continue;\n }\n fullTrace.xaxis = carpetAxis.xaxis;\n fullTrace.yaxis = carpetAxis.yaxis;\n }\n };\n plots.supplyAnimationDefaults = function(opts) {\n opts = opts || {};\n var i;\n var optsOut = {};\n function coerce(attr, dflt) {\n return Lib.coerce(opts || {}, optsOut, animationAttrs, attr, dflt);\n }\n coerce(\"mode\");\n coerce(\"direction\");\n coerce(\"fromcurrent\");\n if (Array.isArray(opts.frame)) {\n optsOut.frame = [];\n for (i = 0; i < opts.frame.length; i++) {\n optsOut.frame[i] = plots.supplyAnimationFrameDefaults(opts.frame[i] || {});\n }\n } else {\n optsOut.frame = plots.supplyAnimationFrameDefaults(opts.frame || {});\n }\n if (Array.isArray(opts.transition)) {\n optsOut.transition = [];\n for (i = 0; i < opts.transition.length; i++) {\n optsOut.transition[i] = plots.supplyAnimationTransitionDefaults(opts.transition[i] || {});\n }\n } else {\n optsOut.transition = plots.supplyAnimationTransitionDefaults(opts.transition || {});\n }\n return optsOut;\n };\n plots.supplyAnimationFrameDefaults = function(opts) {\n var optsOut = {};\n function coerce(attr, dflt) {\n return Lib.coerce(opts || {}, optsOut, animationAttrs.frame, attr, dflt);\n }\n coerce(\"duration\");\n coerce(\"redraw\");\n return optsOut;\n };\n plots.supplyAnimationTransitionDefaults = function(opts) {\n var optsOut = {};\n function coerce(attr, dflt) {\n return Lib.coerce(opts || {}, optsOut, animationAttrs.transition, attr, dflt);\n }\n coerce(\"duration\");\n coerce(\"easing\");\n return optsOut;\n };\n plots.supplyFrameDefaults = function(frameIn) {\n var frameOut = {};\n function coerce(attr, dflt) {\n return Lib.coerce(frameIn, frameOut, frameAttrs, attr, dflt);\n }\n coerce(\"group\");\n coerce(\"name\");\n coerce(\"traces\");\n coerce(\"baseframe\");\n coerce(\"data\");\n coerce(\"layout\");\n return frameOut;\n };\n plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, traceInIndex) {\n var colorway = layout.colorway || Color2.defaults;\n var defaultColor = colorway[colorIndex % colorway.length];\n var i;\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, plots.attributes, attr, dflt);\n }\n var visible = coerce(\"visible\");\n coerce(\"type\");\n coerce(\"name\", layout._traceWord + \" \" + traceInIndex);\n coerce(\"uirevision\", layout.uirevision);\n var _module = plots.getModule(traceOut);\n traceOut._module = _module;\n if (_module) {\n var basePlotModule = _module.basePlotModule;\n var subplotAttr = basePlotModule.attr;\n var subplotAttrs = basePlotModule.attributes;\n if (subplotAttr && subplotAttrs) {\n var subplots = layout._subplots;\n var subplotId = \"\";\n if (Array.isArray(subplotAttr)) {\n for (i = 0; i < subplotAttr.length; i++) {\n var attri = subplotAttr[i];\n var vali = Lib.coerce(traceIn, traceOut, subplotAttrs, attri);\n if (subplots[attri]) Lib.pushUnique(subplots[attri], vali);\n subplotId += vali;\n }\n } else {\n subplotId = Lib.coerce(traceIn, traceOut, subplotAttrs, subplotAttr);\n }\n if (subplots[basePlotModule.name]) {\n Lib.pushUnique(subplots[basePlotModule.name], subplotId);\n }\n }\n }\n if (visible) {\n coerce(\"customdata\");\n coerce(\"ids\");\n coerce(\"meta\");\n if (Registry.traceIs(traceOut, \"showLegend\")) {\n Lib.coerce(\n traceIn,\n traceOut,\n _module.attributes.showlegend ? _module.attributes : plots.attributes,\n \"showlegend\"\n );\n coerce(\"legend\");\n coerce(\"legendwidth\");\n coerce(\"legendgroup\");\n coerce(\"legendgrouptitle.text\");\n coerce(\"legendrank\");\n traceOut._dfltShowLegend = true;\n } else {\n traceOut._dfltShowLegend = false;\n }\n if (_module) {\n _module.supplyDefaults(traceIn, traceOut, defaultColor, layout);\n }\n if (!Registry.traceIs(traceOut, \"noOpacity\")) {\n coerce(\"opacity\");\n }\n if (Registry.traceIs(traceOut, \"notLegendIsolatable\")) {\n traceOut.visible = !!traceOut.visible;\n }\n if (!Registry.traceIs(traceOut, \"noHover\")) {\n if (!traceOut.hovertemplate) Lib.coerceHoverinfo(traceIn, traceOut, layout);\n if (traceOut.type !== \"parcats\") {\n Registry.getComponentMethod(\"fx\", \"supplyDefaults\")(traceIn, traceOut, defaultColor, layout);\n }\n }\n if (_module && _module.selectPoints) {\n var selectedpoints = coerce(\"selectedpoints\");\n if (Lib.isTypedArray(selectedpoints)) {\n traceOut.selectedpoints = Array.from(selectedpoints);\n }\n }\n }\n return traceOut;\n };\n plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, plots.layoutAttributes, attr, dflt);\n }\n var template = layoutIn.template;\n if (Lib.isPlainObject(template)) {\n layoutOut.template = template;\n layoutOut._template = template.layout;\n layoutOut._dataTemplate = template.data;\n }\n coerce(\"autotypenumbers\");\n var font = Lib.coerceFont(coerce, \"font\");\n var fontSize = font.size;\n Lib.coerceFont(coerce, \"title.font\", font, { overrideDflt: {\n size: Math.round(fontSize * 1.4)\n } });\n coerce(\"title.text\", layoutOut._dfltTitle.plot);\n coerce(\"title.xref\");\n var titleYref = coerce(\"title.yref\");\n coerce(\"title.pad.t\");\n coerce(\"title.pad.r\");\n coerce(\"title.pad.b\");\n coerce(\"title.pad.l\");\n var titleAutomargin = coerce(\"title.automargin\");\n coerce(\"title.x\");\n coerce(\"title.xanchor\");\n coerce(\"title.y\");\n coerce(\"title.yanchor\");\n coerce(\"title.subtitle.text\", layoutOut._dfltTitle.subtitle);\n Lib.coerceFont(coerce, \"title.subtitle.font\", font, {\n overrideDflt: {\n size: Math.round(layoutOut.title.font.size * 0.7)\n }\n });\n if (titleAutomargin) {\n if (titleYref === \"paper\") {\n if (layoutOut.title.y !== 0) layoutOut.title.y = 1;\n if (layoutOut.title.yanchor === \"auto\") {\n layoutOut.title.yanchor = layoutOut.title.y === 0 ? \"top\" : \"bottom\";\n }\n }\n if (titleYref === \"container\") {\n if (layoutOut.title.y === \"auto\") layoutOut.title.y = 1;\n if (layoutOut.title.yanchor === \"auto\") {\n layoutOut.title.yanchor = layoutOut.title.y < 0.5 ? \"bottom\" : \"top\";\n }\n }\n }\n var uniformtextMode = coerce(\"uniformtext.mode\");\n if (uniformtextMode) {\n coerce(\"uniformtext.minsize\");\n }\n coerce(\"autosize\", !(layoutIn.width && layoutIn.height));\n coerce(\"width\");\n coerce(\"height\");\n coerce(\"minreducedwidth\");\n coerce(\"minreducedheight\");\n coerce(\"margin.l\");\n coerce(\"margin.r\");\n coerce(\"margin.t\");\n coerce(\"margin.b\");\n coerce(\"margin.pad\");\n coerce(\"margin.autoexpand\");\n if (layoutIn.width && layoutIn.height) plots.sanitizeMargins(layoutOut);\n Registry.getComponentMethod(\"grid\", \"sizeDefaults\")(layoutIn, layoutOut);\n coerce(\"paper_bgcolor\");\n coerce(\"separators\", formatObj.decimal + formatObj.thousands);\n coerce(\"hidesources\");\n coerce(\"colorway\");\n coerce(\"datarevision\");\n var uirevision = coerce(\"uirevision\");\n coerce(\"editrevision\", uirevision);\n coerce(\"selectionrevision\", uirevision);\n Registry.getComponentMethod(\n \"modebar\",\n \"supplyLayoutDefaults\"\n )(layoutIn, layoutOut);\n Registry.getComponentMethod(\n \"shapes\",\n \"supplyDrawNewShapeDefaults\"\n )(layoutIn, layoutOut, coerce);\n Registry.getComponentMethod(\n \"selections\",\n \"supplyDrawNewSelectionDefaults\"\n )(layoutIn, layoutOut, coerce);\n coerce(\"meta\");\n if (Lib.isPlainObject(layoutIn.transition)) {\n coerce(\"transition.duration\");\n coerce(\"transition.easing\");\n coerce(\"transition.ordering\");\n }\n Registry.getComponentMethod(\n \"calendars\",\n \"handleDefaults\"\n )(layoutIn, layoutOut, \"calendar\");\n Registry.getComponentMethod(\n \"fx\",\n \"supplyLayoutGlobalDefaults\"\n )(layoutIn, layoutOut, coerce);\n Lib.coerce(layoutIn, layoutOut, scatterAttrs, \"scattermode\");\n };\n function getComputedSize(attr) {\n return typeof attr === \"string\" && attr.substr(attr.length - 2) === \"px\" && parseFloat(attr);\n }\n plots.plotAutoSize = function plotAutoSize(gd, layout, fullLayout) {\n var context = gd._context || {};\n var frameMargins = context.frameMargins;\n var newWidth;\n var newHeight;\n var isPlotDiv = Lib.isPlotDiv(gd);\n if (isPlotDiv) gd.emit(\"plotly_autosize\");\n if (context.fillFrame) {\n newWidth = window.innerWidth;\n newHeight = window.innerHeight;\n document.body.style.overflow = \"hidden\";\n } else {\n var computedStyle = isPlotDiv ? window.getComputedStyle(gd) : {};\n newWidth = getComputedSize(computedStyle.width) || getComputedSize(computedStyle.maxWidth) || fullLayout.width;\n newHeight = getComputedSize(computedStyle.height) || getComputedSize(computedStyle.maxHeight) || fullLayout.height;\n if (isNumeric(frameMargins) && frameMargins > 0) {\n var factor = 1 - 2 * frameMargins;\n newWidth = Math.round(factor * newWidth);\n newHeight = Math.round(factor * newHeight);\n }\n }\n var minWidth = plots.layoutAttributes.width.min;\n var minHeight = plots.layoutAttributes.height.min;\n if (newWidth < minWidth) newWidth = minWidth;\n if (newHeight < minHeight) newHeight = minHeight;\n var widthHasChanged = !layout.width && Math.abs(fullLayout.width - newWidth) > 1;\n var heightHasChanged = !layout.height && Math.abs(fullLayout.height - newHeight) > 1;\n if (heightHasChanged || widthHasChanged) {\n if (widthHasChanged) fullLayout.width = newWidth;\n if (heightHasChanged) fullLayout.height = newHeight;\n }\n if (!gd._initialAutoSize) {\n gd._initialAutoSize = { width: newWidth, height: newHeight };\n }\n plots.sanitizeMargins(fullLayout);\n };\n plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, transitionData) {\n var componentsRegistry = Registry.componentsRegistry;\n var basePlotModules = layoutOut._basePlotModules;\n var component, i, _module;\n var Cartesian = Registry.subplotsRegistry.cartesian;\n for (component in componentsRegistry) {\n _module = componentsRegistry[component];\n if (_module.includeBasePlot) {\n _module.includeBasePlot(layoutIn, layoutOut);\n }\n }\n if (!basePlotModules.length) {\n basePlotModules.push(Cartesian);\n }\n if (layoutOut._has(\"cartesian\")) {\n Registry.getComponentMethod(\"grid\", \"contentDefaults\")(layoutIn, layoutOut);\n Cartesian.finalizeSubplots(layoutIn, layoutOut);\n }\n for (var subplotType in layoutOut._subplots) {\n layoutOut._subplots[subplotType].sort(Lib.subplotSort);\n }\n for (i = 0; i < basePlotModules.length; i++) {\n _module = basePlotModules[i];\n if (_module.supplyLayoutDefaults) {\n _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n }\n var modules = layoutOut._modules;\n for (i = 0; i < modules.length; i++) {\n _module = modules[i];\n if (_module.supplyLayoutDefaults) {\n _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n }\n var transformModules = layoutOut._transformModules;\n for (i = 0; i < transformModules.length; i++) {\n _module = transformModules[i];\n if (_module.supplyLayoutDefaults) {\n _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData, transitionData);\n }\n }\n for (component in componentsRegistry) {\n _module = componentsRegistry[component];\n if (_module.supplyLayoutDefaults) {\n _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n }\n };\n plots.purge = function(gd) {\n var fullLayout = gd._fullLayout || {};\n if (fullLayout._glcontainer !== void 0) {\n fullLayout._glcontainer.selectAll(\".gl-canvas\").remove();\n fullLayout._glcontainer.remove();\n fullLayout._glcanvas = null;\n }\n if (fullLayout._modeBar) fullLayout._modeBar.destroy();\n if (gd._transitionData) {\n if (gd._transitionData._interruptCallbacks) {\n gd._transitionData._interruptCallbacks.length = 0;\n }\n if (gd._transitionData._animationRaf) {\n window.cancelAnimationFrame(gd._transitionData._animationRaf);\n }\n }\n Lib.clearThrottle();\n Lib.clearResponsive(gd);\n delete gd.data;\n delete gd.layout;\n delete gd._fullData;\n delete gd._fullLayout;\n delete gd.calcdata;\n delete gd.empty;\n delete gd.fid;\n delete gd.undoqueue;\n delete gd.undonum;\n delete gd.autoplay;\n delete gd.changed;\n delete gd._promises;\n delete gd._redrawTimer;\n delete gd._hmlumcount;\n delete gd._hmpixcount;\n delete gd._transitionData;\n delete gd._transitioning;\n delete gd._initialAutoSize;\n delete gd._transitioningWithDuration;\n delete gd._dragging;\n delete gd._dragged;\n delete gd._dragdata;\n delete gd._hoverdata;\n delete gd._snapshotInProgress;\n delete gd._editing;\n delete gd._mouseDownTime;\n delete gd._legendMouseDownTime;\n if (gd.removeAllListeners) gd.removeAllListeners();\n };\n plots.style = function(gd) {\n var _modules = gd._fullLayout._visibleModules;\n var styleModules = [];\n var i;\n for (i = 0; i < _modules.length; i++) {\n var _module = _modules[i];\n if (_module.style) {\n Lib.pushUnique(styleModules, _module.style);\n }\n }\n for (i = 0; i < styleModules.length; i++) {\n styleModules[i](gd);\n }\n };\n plots.sanitizeMargins = function(fullLayout) {\n if (!fullLayout || !fullLayout.margin) return;\n var width = fullLayout.width;\n var height = fullLayout.height;\n var margin = fullLayout.margin;\n var plotWidth = width - (margin.l + margin.r);\n var plotHeight = height - (margin.t + margin.b);\n var correction;\n if (plotWidth < 0) {\n correction = (width - 1) / (margin.l + margin.r);\n margin.l = Math.floor(correction * margin.l);\n margin.r = Math.floor(correction * margin.r);\n }\n if (plotHeight < 0) {\n correction = (height - 1) / (margin.t + margin.b);\n margin.t = Math.floor(correction * margin.t);\n margin.b = Math.floor(correction * margin.b);\n }\n };\n plots.clearAutoMarginIds = function(gd) {\n gd._fullLayout._pushmarginIds = {};\n };\n plots.allowAutoMargin = function(gd, id) {\n gd._fullLayout._pushmarginIds[id] = 1;\n };\n function initMargins(fullLayout) {\n var margin = fullLayout.margin;\n if (!fullLayout._size) {\n var gs = fullLayout._size = {\n l: Math.round(margin.l),\n r: Math.round(margin.r),\n t: Math.round(margin.t),\n b: Math.round(margin.b),\n p: Math.round(margin.pad)\n };\n gs.w = Math.round(fullLayout.width) - gs.l - gs.r;\n gs.h = Math.round(fullLayout.height) - gs.t - gs.b;\n }\n if (!fullLayout._pushmargin) fullLayout._pushmargin = {};\n if (!fullLayout._pushmarginIds) fullLayout._pushmarginIds = {};\n if (!fullLayout._reservedMargin) fullLayout._reservedMargin = {};\n }\n var MIN_SPECIFIED_WIDTH = 2;\n var MIN_SPECIFIED_HEIGHT = 2;\n plots.autoMargin = function(gd, id, o) {\n var fullLayout = gd._fullLayout;\n var width = fullLayout.width;\n var height = fullLayout.height;\n var margin = fullLayout.margin;\n var minreducedwidth = fullLayout.minreducedwidth;\n var minreducedheight = fullLayout.minreducedheight;\n var minFinalWidth = Lib.constrain(\n width - margin.l - margin.r,\n MIN_SPECIFIED_WIDTH,\n minreducedwidth\n );\n var minFinalHeight = Lib.constrain(\n height - margin.t - margin.b,\n MIN_SPECIFIED_HEIGHT,\n minreducedheight\n );\n var maxSpaceW = Math.max(0, width - minFinalWidth);\n var maxSpaceH = Math.max(0, height - minFinalHeight);\n var pushMargin = fullLayout._pushmargin;\n var pushMarginIds = fullLayout._pushmarginIds;\n if (margin.autoexpand !== false) {\n if (!o) {\n delete pushMargin[id];\n delete pushMarginIds[id];\n } else {\n var pad = o.pad;\n if (pad === void 0) {\n pad = Math.min(12, margin.l, margin.r, margin.t, margin.b);\n }\n if (maxSpaceW) {\n var rW = (o.l + o.r) / maxSpaceW;\n if (rW > 1) {\n o.l /= rW;\n o.r /= rW;\n }\n }\n if (maxSpaceH) {\n var rH = (o.t + o.b) / maxSpaceH;\n if (rH > 1) {\n o.t /= rH;\n o.b /= rH;\n }\n }\n var xl = o.xl !== void 0 ? o.xl : o.x;\n var xr = o.xr !== void 0 ? o.xr : o.x;\n var yt = o.yt !== void 0 ? o.yt : o.y;\n var yb = o.yb !== void 0 ? o.yb : o.y;\n pushMargin[id] = {\n l: { val: xl, size: o.l + pad },\n r: { val: xr, size: o.r + pad },\n b: { val: yb, size: o.b + pad },\n t: { val: yt, size: o.t + pad }\n };\n pushMarginIds[id] = 1;\n }\n if (!fullLayout._replotting) {\n return plots.doAutoMargin(gd);\n }\n }\n };\n function needsRedrawForShift(gd) {\n if (\"_redrawFromAutoMarginCount\" in gd._fullLayout) {\n return false;\n }\n var axList = axisIDs.list(gd, \"\", true);\n for (var ax in axList) {\n if (axList[ax].autoshift || axList[ax].shift) return true;\n }\n return false;\n }\n plots.doAutoMargin = function(gd) {\n var fullLayout = gd._fullLayout;\n var width = fullLayout.width;\n var height = fullLayout.height;\n if (!fullLayout._size) fullLayout._size = {};\n initMargins(fullLayout);\n var gs = fullLayout._size;\n var margin = fullLayout.margin;\n var reservedMargins = { t: 0, b: 0, l: 0, r: 0 };\n var oldMargins = Lib.extendFlat({}, gs);\n var ml = margin.l;\n var mr = margin.r;\n var mt = margin.t;\n var mb = margin.b;\n var pushMargin = fullLayout._pushmargin;\n var pushMarginIds = fullLayout._pushmarginIds;\n var minreducedwidth = fullLayout.minreducedwidth;\n var minreducedheight = fullLayout.minreducedheight;\n if (margin.autoexpand !== false) {\n for (var k in pushMargin) {\n if (!pushMarginIds[k]) delete pushMargin[k];\n }\n var margins = gd._fullLayout._reservedMargin;\n for (var key in margins) {\n for (var side in margins[key]) {\n var val = margins[key][side];\n reservedMargins[side] = Math.max(reservedMargins[side], val);\n }\n }\n pushMargin.base = {\n l: { val: 0, size: ml },\n r: { val: 1, size: mr },\n t: { val: 1, size: mt },\n b: { val: 0, size: mb }\n };\n for (var s in reservedMargins) {\n var autoMarginPush = 0;\n for (var m in pushMargin) {\n if (m !== \"base\") {\n if (isNumeric(pushMargin[m][s].size)) {\n autoMarginPush = pushMargin[m][s].size > autoMarginPush ? pushMargin[m][s].size : autoMarginPush;\n }\n }\n }\n var extraMargin = Math.max(0, margin[s] - autoMarginPush);\n reservedMargins[s] = Math.max(0, reservedMargins[s] - extraMargin);\n }\n for (var k1 in pushMargin) {\n var pushleft = pushMargin[k1].l || {};\n var pushbottom = pushMargin[k1].b || {};\n var fl = pushleft.val;\n var pl = pushleft.size;\n var fb = pushbottom.val;\n var pb = pushbottom.size;\n var availableWidth = width - reservedMargins.r - reservedMargins.l;\n var availableHeight = height - reservedMargins.t - reservedMargins.b;\n for (var k2 in pushMargin) {\n if (isNumeric(pl) && pushMargin[k2].r) {\n var fr = pushMargin[k2].r.val;\n var pr = pushMargin[k2].r.size;\n if (fr > fl) {\n var newL = (pl * fr + (pr - availableWidth) * fl) / (fr - fl);\n var newR = (pr * (1 - fl) + (pl - availableWidth) * (1 - fr)) / (fr - fl);\n if (newL + newR > ml + mr) {\n ml = newL;\n mr = newR;\n }\n }\n }\n if (isNumeric(pb) && pushMargin[k2].t) {\n var ft = pushMargin[k2].t.val;\n var pt = pushMargin[k2].t.size;\n if (ft > fb) {\n var newB = (pb * ft + (pt - availableHeight) * fb) / (ft - fb);\n var newT = (pt * (1 - fb) + (pb - availableHeight) * (1 - ft)) / (ft - fb);\n if (newB + newT > mb + mt) {\n mb = newB;\n mt = newT;\n }\n }\n }\n }\n }\n }\n var minFinalWidth = Lib.constrain(\n width - margin.l - margin.r,\n MIN_SPECIFIED_WIDTH,\n minreducedwidth\n );\n var minFinalHeight = Lib.constrain(\n height - margin.t - margin.b,\n MIN_SPECIFIED_HEIGHT,\n minreducedheight\n );\n var maxSpaceW = Math.max(0, width - minFinalWidth);\n var maxSpaceH = Math.max(0, height - minFinalHeight);\n if (maxSpaceW) {\n var rW = (ml + mr) / maxSpaceW;\n if (rW > 1) {\n ml /= rW;\n mr /= rW;\n }\n }\n if (maxSpaceH) {\n var rH = (mb + mt) / maxSpaceH;\n if (rH > 1) {\n mb /= rH;\n mt /= rH;\n }\n }\n gs.l = Math.round(ml) + reservedMargins.l;\n gs.r = Math.round(mr) + reservedMargins.r;\n gs.t = Math.round(mt) + reservedMargins.t;\n gs.b = Math.round(mb) + reservedMargins.b;\n gs.p = Math.round(margin.pad);\n gs.w = Math.round(width) - gs.l - gs.r;\n gs.h = Math.round(height) - gs.t - gs.b;\n if (!fullLayout._replotting && (plots.didMarginChange(oldMargins, gs) || needsRedrawForShift(gd))) {\n if (\"_redrawFromAutoMarginCount\" in fullLayout) {\n fullLayout._redrawFromAutoMarginCount++;\n } else {\n fullLayout._redrawFromAutoMarginCount = 1;\n }\n var maxNumberOfRedraws = 3 * (1 + Object.keys(pushMarginIds).length);\n if (fullLayout._redrawFromAutoMarginCount < maxNumberOfRedraws) {\n return Registry.call(\"_doPlot\", gd);\n } else {\n fullLayout._size = oldMargins;\n Lib.warn(\"Too many auto-margin redraws.\");\n }\n }\n refineTicks(gd);\n };\n function refineTicks(gd) {\n var axList = axisIDs.list(gd, \"\", true);\n [\n \"_adjustTickLabelsOverflow\",\n \"_hideCounterAxisInsideTickLabels\"\n ].forEach(function(k) {\n for (var i = 0; i < axList.length; i++) {\n var hideFn = axList[i][k];\n if (hideFn) hideFn();\n }\n });\n }\n var marginKeys = [\"l\", \"r\", \"t\", \"b\", \"p\", \"w\", \"h\"];\n plots.didMarginChange = function(margin0, margin1) {\n for (var i = 0; i < marginKeys.length; i++) {\n var k = marginKeys[i];\n var m0 = margin0[k];\n var m1 = margin1[k];\n if (!isNumeric(m0) || Math.abs(m1 - m0) > 1) {\n return true;\n }\n }\n return false;\n };\n plots.graphJson = function(gd, dataonly, mode, output, useDefaults, includeConfig) {\n if (useDefaults && dataonly && !gd._fullData || useDefaults && !dataonly && !gd._fullLayout) {\n plots.supplyDefaults(gd);\n }\n var data = useDefaults ? gd._fullData : gd.data;\n var layout = useDefaults ? gd._fullLayout : gd.layout;\n var frames = (gd._transitionData || {})._frames;\n function stripObj(d, keepFunction) {\n if (typeof d === \"function\") {\n return keepFunction ? \"_function_\" : null;\n }\n if (Lib.isPlainObject(d)) {\n var o = {};\n var src;\n Object.keys(d).sort().forEach(function(v) {\n if ([\"_\", \"[\"].indexOf(v.charAt(0)) !== -1) return;\n if (typeof d[v] === \"function\") {\n if (keepFunction) o[v] = \"_function\";\n return;\n }\n if (mode === \"keepdata\") {\n if (v.substr(v.length - 3) === \"src\") {\n return;\n }\n } else if (mode === \"keepstream\") {\n src = d[v + \"src\"];\n if (typeof src === \"string\" && src.indexOf(\":\") > 0) {\n if (!Lib.isPlainObject(d.stream)) {\n return;\n }\n }\n } else if (mode !== \"keepall\") {\n src = d[v + \"src\"];\n if (typeof src === \"string\" && src.indexOf(\":\") > 0) {\n return;\n }\n }\n o[v] = stripObj(d[v], keepFunction);\n });\n return o;\n }\n var dIsArray = Array.isArray(d);\n var dIsTypedArray = Lib.isTypedArray(d);\n if ((dIsArray || dIsTypedArray) && d.dtype && d.shape) {\n var bdata = d.bdata;\n return stripObj({\n dtype: d.dtype,\n shape: d.shape,\n bdata: (\n // case of ArrayBuffer\n Lib.isArrayBuffer(bdata) ? b64encode.encode(bdata) : (\n // case of b64 string\n bdata\n )\n )\n }, keepFunction);\n }\n if (dIsArray) {\n return d.map(function(x) {\n return stripObj(x, keepFunction);\n });\n }\n if (dIsTypedArray) {\n return Lib.simpleMap(d, Lib.identity);\n }\n if (Lib.isJSDate(d)) return Lib.ms2DateTimeLocal(+d);\n return d;\n }\n var obj = {\n data: (data || []).map(function(v) {\n var d = stripObj(v);\n if (dataonly) {\n delete d.fit;\n }\n return d;\n })\n };\n if (!dataonly) {\n obj.layout = stripObj(layout);\n if (useDefaults) {\n var gs = layout._size;\n obj.layout.computed = {\n margin: {\n b: gs.b,\n l: gs.l,\n r: gs.r,\n t: gs.t\n }\n };\n }\n }\n if (frames) obj.frames = stripObj(frames);\n if (includeConfig) obj.config = stripObj(gd._context, true);\n return output === \"object\" ? obj : JSON.stringify(obj);\n };\n plots.modifyFrames = function(gd, operations) {\n var i, op, frame;\n var _frames = gd._transitionData._frames;\n var _frameHash = gd._transitionData._frameHash;\n for (i = 0; i < operations.length; i++) {\n op = operations[i];\n switch (op.type) {\n // No reason this couldn't exist, but is currently unused/untested:\n /* case 'rename':\n frame = _frames[op.index];\n delete _frameHash[frame.name];\n _frameHash[op.name] = frame;\n frame.name = op.name;\n break;*/\n case \"replace\":\n frame = op.value;\n var oldName = (_frames[op.index] || {}).name;\n var newName = frame.name;\n _frames[op.index] = _frameHash[newName] = frame;\n if (newName !== oldName) {\n delete _frameHash[oldName];\n _frameHash[newName] = frame;\n }\n break;\n case \"insert\":\n frame = op.value;\n _frameHash[frame.name] = frame;\n _frames.splice(op.index, 0, frame);\n break;\n case \"delete\":\n frame = _frames[op.index];\n delete _frameHash[frame.name];\n _frames.splice(op.index, 1);\n break;\n }\n }\n return Promise.resolve();\n };\n plots.computeFrame = function(gd, frameName) {\n var frameLookup = gd._transitionData._frameHash;\n var i, traceIndices, traceIndex, destIndex;\n if (!frameName) {\n throw new Error(\"computeFrame must be given a string frame name\");\n }\n var framePtr = frameLookup[frameName.toString()];\n if (!framePtr) {\n return false;\n }\n var frameStack = [framePtr];\n var frameNameStack = [framePtr.name];\n while (framePtr.baseframe && (framePtr = frameLookup[framePtr.baseframe.toString()])) {\n if (frameNameStack.indexOf(framePtr.name) !== -1) break;\n frameStack.push(framePtr);\n frameNameStack.push(framePtr.name);\n }\n var result = {};\n while (framePtr = frameStack.pop()) {\n if (framePtr.layout) {\n result.layout = plots.extendLayout(result.layout, framePtr.layout);\n }\n if (framePtr.data) {\n if (!result.data) {\n result.data = [];\n }\n traceIndices = framePtr.traces;\n if (!traceIndices) {\n traceIndices = [];\n for (i = 0; i < framePtr.data.length; i++) {\n traceIndices[i] = i;\n }\n }\n if (!result.traces) {\n result.traces = [];\n }\n for (i = 0; i < framePtr.data.length; i++) {\n traceIndex = traceIndices[i];\n if (traceIndex === void 0 || traceIndex === null) {\n continue;\n }\n destIndex = result.traces.indexOf(traceIndex);\n if (destIndex === -1) {\n destIndex = result.data.length;\n result.traces[destIndex] = traceIndex;\n }\n result.data[destIndex] = plots.extendTrace(result.data[destIndex], framePtr.data[i]);\n }\n }\n }\n return result;\n };\n plots.recomputeFrameHash = function(gd) {\n var hash = gd._transitionData._frameHash = {};\n var frames = gd._transitionData._frames;\n for (var i = 0; i < frames.length; i++) {\n var frame = frames[i];\n if (frame && frame.name) {\n hash[frame.name] = frame;\n }\n }\n };\n plots.extendObjectWithContainers = function(dest, src, containerPaths) {\n var containerProp, containerVal, i, j, srcProp, destProp, srcContainer, destContainer;\n var copy = Lib.extendDeepNoArrays({}, src || {});\n var expandedObj = Lib.expandObjectPaths(copy);\n var containerObj = {};\n if (containerPaths && containerPaths.length) {\n for (i = 0; i < containerPaths.length; i++) {\n containerProp = Lib.nestedProperty(expandedObj, containerPaths[i]);\n containerVal = containerProp.get();\n if (containerVal === void 0) {\n Lib.nestedProperty(containerObj, containerPaths[i]).set(null);\n } else {\n containerProp.set(null);\n Lib.nestedProperty(containerObj, containerPaths[i]).set(containerVal);\n }\n }\n }\n dest = Lib.extendDeepNoArrays(dest || {}, expandedObj);\n if (containerPaths && containerPaths.length) {\n for (i = 0; i < containerPaths.length; i++) {\n srcProp = Lib.nestedProperty(containerObj, containerPaths[i]);\n srcContainer = srcProp.get();\n if (!srcContainer) continue;\n destProp = Lib.nestedProperty(dest, containerPaths[i]);\n destContainer = destProp.get();\n if (!Array.isArray(destContainer)) {\n destContainer = [];\n destProp.set(destContainer);\n }\n for (j = 0; j < srcContainer.length; j++) {\n var srcObj = srcContainer[j];\n if (srcObj === null) destContainer[j] = null;\n else {\n destContainer[j] = plots.extendObjectWithContainers(destContainer[j], srcObj);\n }\n }\n destProp.set(destContainer);\n }\n }\n return dest;\n };\n plots.dataArrayContainers = [\"transforms\", \"dimensions\"];\n plots.layoutArrayContainers = Registry.layoutArrayContainers;\n plots.extendTrace = function(destTrace, srcTrace) {\n return plots.extendObjectWithContainers(destTrace, srcTrace, plots.dataArrayContainers);\n };\n plots.extendLayout = function(destLayout, srcLayout) {\n return plots.extendObjectWithContainers(destLayout, srcLayout, plots.layoutArrayContainers);\n };\n plots.transition = function(gd, data, layout, traces, frameOpts, transitionOpts) {\n var opts = { redraw: frameOpts.redraw };\n var transitionedTraces = {};\n var axEdits = [];\n opts.prepareFn = function() {\n var dataLength = Array.isArray(data) ? data.length : 0;\n var traceIndices = traces.slice(0, dataLength);\n for (var i = 0; i < traceIndices.length; i++) {\n var traceIdx = traceIndices[i];\n var trace = gd._fullData[traceIdx];\n var _module = trace._module;\n if (!_module) continue;\n if (_module.animatable) {\n var n = _module.basePlotModule.name;\n if (!transitionedTraces[n]) transitionedTraces[n] = [];\n transitionedTraces[n].push(traceIdx);\n }\n gd.data[traceIndices[i]] = plots.extendTrace(gd.data[traceIndices[i]], data[i]);\n }\n var layoutUpdate = Lib.expandObjectPaths(Lib.extendDeepNoArrays({}, layout));\n var axisAttrRe = /^[xy]axis[0-9]*$/;\n for (var attr in layoutUpdate) {\n if (!axisAttrRe.test(attr)) continue;\n delete layoutUpdate[attr].range;\n }\n plots.extendLayout(gd.layout, layoutUpdate);\n delete gd.calcdata;\n plots.supplyDefaults(gd);\n plots.doCalcdata(gd);\n var newLayout = Lib.expandObjectPaths(layout);\n if (newLayout) {\n var subplots = gd._fullLayout._plots;\n for (var k in subplots) {\n var plotinfo = subplots[k];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xr0 = xa.range.slice();\n var yr0 = ya.range.slice();\n var xr1 = null;\n var yr1 = null;\n var editX = null;\n var editY = null;\n if (Array.isArray(newLayout[xa._name + \".range\"])) {\n xr1 = newLayout[xa._name + \".range\"].slice();\n } else if (Array.isArray((newLayout[xa._name] || {}).range)) {\n xr1 = newLayout[xa._name].range.slice();\n }\n if (Array.isArray(newLayout[ya._name + \".range\"])) {\n yr1 = newLayout[ya._name + \".range\"].slice();\n } else if (Array.isArray((newLayout[ya._name] || {}).range)) {\n yr1 = newLayout[ya._name].range.slice();\n }\n if (xr0 && xr1 && (xa.r2l(xr0[0]) !== xa.r2l(xr1[0]) || xa.r2l(xr0[1]) !== xa.r2l(xr1[1]))) {\n editX = { xr0, xr1 };\n }\n if (yr0 && yr1 && (ya.r2l(yr0[0]) !== ya.r2l(yr1[0]) || ya.r2l(yr0[1]) !== ya.r2l(yr1[1]))) {\n editY = { yr0, yr1 };\n }\n if (editX || editY) {\n axEdits.push(Lib.extendFlat({ plotinfo }, editX, editY));\n }\n }\n }\n return Promise.resolve();\n };\n opts.runFn = function(makeCallback) {\n var traceTransitionOpts;\n var basePlotModules = gd._fullLayout._basePlotModules;\n var hasAxisTransition = axEdits.length;\n var i;\n if (layout) {\n for (i = 0; i < basePlotModules.length; i++) {\n if (basePlotModules[i].transitionAxes) {\n basePlotModules[i].transitionAxes(gd, axEdits, transitionOpts, makeCallback);\n }\n }\n }\n if (hasAxisTransition) {\n traceTransitionOpts = Lib.extendFlat({}, transitionOpts);\n traceTransitionOpts.duration = 0;\n delete transitionedTraces.cartesian;\n } else {\n traceTransitionOpts = transitionOpts;\n }\n for (var n in transitionedTraces) {\n var traceIndices = transitionedTraces[n];\n var _module = gd._fullData[traceIndices[0]]._module;\n _module.basePlotModule.plot(gd, traceIndices, traceTransitionOpts, makeCallback);\n }\n };\n return _transition(gd, transitionOpts, opts);\n };\n plots.transitionFromReact = function(gd, restyleFlags, relayoutFlags, oldFullLayout) {\n var fullLayout = gd._fullLayout;\n var transitionOpts = fullLayout.transition;\n var opts = {};\n var axEdits = [];\n opts.prepareFn = function() {\n var subplots = fullLayout._plots;\n opts.redraw = false;\n if (restyleFlags.anim === \"some\") opts.redraw = true;\n if (relayoutFlags.anim === \"some\") opts.redraw = true;\n for (var k in subplots) {\n var plotinfo = subplots[k];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xr0 = oldFullLayout[xa._name].range.slice();\n var yr0 = oldFullLayout[ya._name].range.slice();\n var xr1 = xa.range.slice();\n var yr1 = ya.range.slice();\n xa.setScale();\n ya.setScale();\n var editX = null;\n var editY = null;\n if (xa.r2l(xr0[0]) !== xa.r2l(xr1[0]) || xa.r2l(xr0[1]) !== xa.r2l(xr1[1])) {\n editX = { xr0, xr1 };\n }\n if (ya.r2l(yr0[0]) !== ya.r2l(yr1[0]) || ya.r2l(yr0[1]) !== ya.r2l(yr1[1])) {\n editY = { yr0, yr1 };\n }\n if (editX || editY) {\n axEdits.push(Lib.extendFlat({ plotinfo }, editX, editY));\n }\n }\n return Promise.resolve();\n };\n opts.runFn = function(makeCallback) {\n var fullData = gd._fullData;\n var fullLayout2 = gd._fullLayout;\n var basePlotModules = fullLayout2._basePlotModules;\n var axisTransitionOpts;\n var traceTransitionOpts;\n var transitionedTraces;\n var allTraceIndices = [];\n for (var i = 0; i < fullData.length; i++) {\n allTraceIndices.push(i);\n }\n function transitionAxes() {\n if (!gd._fullLayout) return;\n for (var j = 0; j < basePlotModules.length; j++) {\n if (basePlotModules[j].transitionAxes) {\n basePlotModules[j].transitionAxes(gd, axEdits, axisTransitionOpts, makeCallback);\n }\n }\n }\n function transitionTraces() {\n if (!gd._fullLayout) return;\n for (var j = 0; j < basePlotModules.length; j++) {\n basePlotModules[j].plot(gd, transitionedTraces, traceTransitionOpts, makeCallback);\n }\n }\n if (axEdits.length && restyleFlags.anim) {\n if (transitionOpts.ordering === \"traces first\") {\n axisTransitionOpts = Lib.extendFlat({}, transitionOpts, { duration: 0 });\n transitionedTraces = allTraceIndices;\n traceTransitionOpts = transitionOpts;\n setTimeout(transitionAxes, transitionOpts.duration);\n transitionTraces();\n } else {\n axisTransitionOpts = transitionOpts;\n transitionedTraces = null;\n traceTransitionOpts = Lib.extendFlat({}, transitionOpts, { duration: 0 });\n setTimeout(transitionTraces, axisTransitionOpts.duration);\n transitionAxes();\n }\n } else if (axEdits.length) {\n axisTransitionOpts = transitionOpts;\n transitionAxes();\n } else if (restyleFlags.anim) {\n transitionedTraces = allTraceIndices;\n traceTransitionOpts = transitionOpts;\n transitionTraces();\n }\n };\n return _transition(gd, transitionOpts, opts);\n };\n function _transition(gd, transitionOpts, opts) {\n var aborted = false;\n function executeCallbacks(list) {\n var p = Promise.resolve();\n if (!list) return p;\n while (list.length) {\n p = p.then(list.shift());\n }\n return p;\n }\n function flushCallbacks(list) {\n if (!list) return;\n while (list.length) {\n list.shift();\n }\n }\n function executeTransitions() {\n gd.emit(\"plotly_transitioning\", []);\n return new Promise(function(resolve) {\n gd._transitioning = true;\n if (transitionOpts.duration > 0) {\n gd._transitioningWithDuration = true;\n }\n gd._transitionData._interruptCallbacks.push(function() {\n aborted = true;\n });\n if (opts.redraw) {\n gd._transitionData._interruptCallbacks.push(function() {\n return Registry.call(\"redraw\", gd);\n });\n }\n gd._transitionData._interruptCallbacks.push(function() {\n gd.emit(\"plotly_transitioninterrupted\", []);\n });\n var numCallbacks = 0;\n var numCompleted = 0;\n function makeCallback() {\n numCallbacks++;\n return function() {\n numCompleted++;\n if (!aborted && numCompleted === numCallbacks) {\n completeTransition(resolve);\n }\n };\n }\n opts.runFn(makeCallback);\n setTimeout(makeCallback());\n });\n }\n function completeTransition(callback) {\n if (!gd._transitionData) return;\n flushCallbacks(gd._transitionData._interruptCallbacks);\n return Promise.resolve().then(function() {\n if (opts.redraw) {\n return Registry.call(\"redraw\", gd);\n }\n }).then(function() {\n gd._transitioning = false;\n gd._transitioningWithDuration = false;\n gd.emit(\"plotly_transitioned\", []);\n }).then(callback);\n }\n function interruptPreviousTransitions() {\n if (!gd._transitionData) return;\n gd._transitioning = false;\n return executeCallbacks(gd._transitionData._interruptCallbacks);\n }\n var seq = [\n plots.previousPromises,\n interruptPreviousTransitions,\n opts.prepareFn,\n plots.rehover,\n plots.reselect,\n executeTransitions\n ];\n var transitionStarting = Lib.syncOrAsync(seq, gd);\n if (!transitionStarting || !transitionStarting.then) {\n transitionStarting = Promise.resolve();\n }\n return transitionStarting.then(function() {\n return gd;\n });\n }\n plots.doCalcdata = function(gd, traces) {\n var axList = axisIDs.list(gd);\n var fullData = gd._fullData;\n var fullLayout = gd._fullLayout;\n var trace, _module, i, j;\n var calcdata = new Array(fullData.length);\n var oldCalcdata = (gd.calcdata || []).slice();\n gd.calcdata = calcdata;\n fullLayout._numBoxes = 0;\n fullLayout._numViolins = 0;\n fullLayout._violinScaleGroupStats = {};\n gd._hmpixcount = 0;\n gd._hmlumcount = 0;\n fullLayout._piecolormap = {};\n fullLayout._sunburstcolormap = {};\n fullLayout._treemapcolormap = {};\n fullLayout._iciclecolormap = {};\n fullLayout._funnelareacolormap = {};\n for (i = 0; i < fullData.length; i++) {\n if (Array.isArray(traces) && traces.indexOf(i) === -1) {\n calcdata[i] = oldCalcdata[i];\n continue;\n }\n }\n for (i = 0; i < fullData.length; i++) {\n trace = fullData[i];\n trace._arrayAttrs = PlotSchema.findArrayAttributes(trace);\n trace._extremes = {};\n }\n var polarIds = fullLayout._subplots.polar || [];\n for (i = 0; i < polarIds.length; i++) {\n axList.push(\n fullLayout[polarIds[i]].radialaxis,\n fullLayout[polarIds[i]].angularaxis\n );\n }\n for (var k in fullLayout._colorAxes) {\n var cOpts = fullLayout[k];\n if (cOpts.cauto !== false) {\n delete cOpts.cmin;\n delete cOpts.cmax;\n }\n }\n var hasCalcTransform = false;\n function transformCalci(i2) {\n trace = fullData[i2];\n _module = trace._module;\n if (trace.visible === true && trace.transforms) {\n if (_module && _module.calc) {\n var cdi = _module.calc(gd, trace);\n if (cdi[0] && cdi[0].t && cdi[0].t._scene) {\n delete cdi[0].t._scene.dirty;\n }\n }\n for (j = 0; j < trace.transforms.length; j++) {\n var transform = trace.transforms[j];\n _module = transformsRegistry[transform.type];\n if (_module && _module.calcTransform) {\n trace._hasCalcTransform = true;\n hasCalcTransform = true;\n _module.calcTransform(gd, trace, transform);\n }\n }\n }\n }\n function calci(i2, isContainer) {\n trace = fullData[i2];\n _module = trace._module;\n if (!!_module.isContainer !== isContainer) return;\n var cd = [];\n if (trace.visible === true && trace._length !== 0) {\n delete trace._indexToPoints;\n var transforms = trace.transforms || [];\n for (j = transforms.length - 1; j >= 0; j--) {\n if (transforms[j].enabled) {\n trace._indexToPoints = transforms[j]._indexToPoints;\n break;\n }\n }\n if (_module && _module.calc) {\n cd = _module.calc(gd, trace);\n }\n }\n if (!Array.isArray(cd) || !cd[0]) {\n cd = [{ x: BADNUM, y: BADNUM }];\n }\n if (!cd[0].t) cd[0].t = {};\n cd[0].trace = trace;\n calcdata[i2] = cd;\n }\n setupAxisCategories(axList, fullData, fullLayout);\n for (i = 0; i < fullData.length; i++) calci(i, true);\n for (i = 0; i < fullData.length; i++) transformCalci(i);\n if (hasCalcTransform) setupAxisCategories(axList, fullData, fullLayout);\n for (i = 0; i < fullData.length; i++) calci(i, true);\n for (i = 0; i < fullData.length; i++) calci(i, false);\n doCrossTraceCalc(gd);\n var sorted = sortAxisCategoriesByValue(axList, gd);\n if (sorted.length) {\n fullLayout._numBoxes = 0;\n fullLayout._numViolins = 0;\n for (i = 0; i < sorted.length; i++) calci(sorted[i], true);\n for (i = 0; i < sorted.length; i++) calci(sorted[i], false);\n doCrossTraceCalc(gd);\n }\n Registry.getComponentMethod(\"fx\", \"calc\")(gd);\n Registry.getComponentMethod(\"errorbars\", \"calc\")(gd);\n };\n var sortAxisCategoriesByValueRegex = /(total|sum|min|max|mean|geometric mean|median) (ascending|descending)/;\n function sortAxisCategoriesByValue(axList, gd) {\n var affectedTraces = [];\n var i, j, k, l, o;\n function zMapCategory(type2, ax2, value2) {\n var axLetter2 = ax2._id.charAt(0);\n if (type2 === \"histogram2dcontour\") {\n var counterAxLetter = ax2._counterAxes[0];\n var counterAx = axisIDs.getFromId(gd, counterAxLetter);\n var xCategorical = axLetter2 === \"x\" || counterAxLetter === \"x\" && counterAx.type === \"category\";\n var yCategorical = axLetter2 === \"y\" || counterAxLetter === \"y\" && counterAx.type === \"category\";\n return function(o2, l2) {\n if (o2 === 0 || l2 === 0) return -1;\n if (xCategorical && o2 === value2[l2].length - 1) return -1;\n if (yCategorical && l2 === value2.length - 1) return -1;\n return (axLetter2 === \"y\" ? l2 : o2) - 1;\n };\n } else {\n return function(o2, l2) {\n return axLetter2 === \"y\" ? l2 : o2;\n };\n }\n }\n var aggFn = {\n min: function(values) {\n return Lib.aggNums(Math.min, null, values);\n },\n max: function(values) {\n return Lib.aggNums(Math.max, null, values);\n },\n sum: function(values) {\n return Lib.aggNums(function(a, b) {\n return a + b;\n }, null, values);\n },\n total: function(values) {\n return Lib.aggNums(function(a, b) {\n return a + b;\n }, null, values);\n },\n mean: function(values) {\n return Lib.mean(values);\n },\n \"geometric mean\": function(values) {\n return Lib.geometricMean(values);\n },\n median: function(values) {\n return Lib.median(values);\n }\n };\n function sortAscending(a, b) {\n return a[1] - b[1];\n }\n function sortDescending(a, b) {\n return b[1] - a[1];\n }\n for (i = 0; i < axList.length; i++) {\n var ax = axList[i];\n if (ax.type !== \"category\") continue;\n var match = ax.categoryorder.match(sortAxisCategoriesByValueRegex);\n if (match) {\n var aggregator = match[1];\n var order = match[2];\n var axLetter = ax._id.charAt(0);\n var isX = axLetter === \"x\";\n var categoriesValue = [];\n for (j = 0; j < ax._categories.length; j++) {\n categoriesValue.push([ax._categories[j], []]);\n }\n for (j = 0; j < ax._traceIndices.length; j++) {\n var traceIndex = ax._traceIndices[j];\n var fullTrace = gd._fullData[traceIndex];\n if (fullTrace.visible !== true) continue;\n var type = fullTrace.type;\n if (Registry.traceIs(fullTrace, \"histogram\")) {\n delete fullTrace._xautoBinFinished;\n delete fullTrace._yautoBinFinished;\n }\n var isSplom = type === \"splom\";\n var isScattergl = type === \"scattergl\";\n var cd = gd.calcdata[traceIndex];\n for (k = 0; k < cd.length; k++) {\n var cdi = cd[k];\n var catIndex, value;\n if (isSplom) {\n var currentDimensionIndex = fullTrace._axesDim[ax._id];\n if (!isX) {\n var associatedXAxisID = fullTrace._diag[currentDimensionIndex][0];\n if (associatedXAxisID) ax = gd._fullLayout[axisIDs.id2name(associatedXAxisID)];\n }\n var categories = cdi.trace.dimensions[currentDimensionIndex].values;\n for (l = 0; l < categories.length; l++) {\n catIndex = ax._categoriesMap[categories[l]];\n for (o = 0; o < cdi.trace.dimensions.length; o++) {\n if (o === currentDimensionIndex) continue;\n var dimension = cdi.trace.dimensions[o];\n categoriesValue[catIndex][1].push(dimension.values[l]);\n }\n }\n } else if (isScattergl) {\n for (l = 0; l < cdi.t.x.length; l++) {\n if (isX) {\n catIndex = cdi.t.x[l];\n value = cdi.t.y[l];\n } else {\n catIndex = cdi.t.y[l];\n value = cdi.t.x[l];\n }\n categoriesValue[catIndex][1].push(value);\n }\n if (cdi.t && cdi.t._scene) {\n delete cdi.t._scene.dirty;\n }\n } else if (cdi.hasOwnProperty(\"z\")) {\n value = cdi.z;\n var mapping = zMapCategory(fullTrace.type, ax, value);\n for (l = 0; l < value.length; l++) {\n for (o = 0; o < value[l].length; o++) {\n catIndex = mapping(o, l);\n if (catIndex + 1) categoriesValue[catIndex][1].push(value[l][o]);\n }\n }\n } else {\n catIndex = cdi.p;\n if (catIndex === void 0) catIndex = cdi[axLetter];\n value = cdi.s;\n if (value === void 0) value = cdi.v;\n if (value === void 0) value = isX ? cdi.y : cdi.x;\n if (!Array.isArray(value)) {\n if (value === void 0) value = [];\n else value = [value];\n }\n for (l = 0; l < value.length; l++) {\n categoriesValue[catIndex][1].push(value[l]);\n }\n }\n }\n }\n ax._categoriesValue = categoriesValue;\n var categoriesAggregatedValue = [];\n for (j = 0; j < categoriesValue.length; j++) {\n categoriesAggregatedValue.push([\n categoriesValue[j][0],\n aggFn[aggregator](categoriesValue[j][1])\n ]);\n }\n categoriesAggregatedValue.sort(order === \"descending\" ? sortDescending : sortAscending);\n ax._categoriesAggregatedValue = categoriesAggregatedValue;\n ax._initialCategories = categoriesAggregatedValue.map(function(c) {\n return c[0];\n });\n affectedTraces = affectedTraces.concat(ax.sortByInitialCategories());\n }\n }\n return affectedTraces;\n }\n function setupAxisCategories(axList, fullData, fullLayout) {\n var axLookup = {};\n function setupOne(ax) {\n ax.clearCalc();\n if (ax.type === \"multicategory\") {\n ax.setupMultiCategory(fullData);\n }\n axLookup[ax._id] = 1;\n }\n Lib.simpleMap(axList, setupOne);\n var matchGroups = fullLayout._axisMatchGroups || [];\n for (var i = 0; i < matchGroups.length; i++) {\n for (var axId in matchGroups[i]) {\n if (!axLookup[axId]) {\n setupOne(fullLayout[axisIDs.id2name(axId)]);\n }\n }\n }\n }\n function doCrossTraceCalc(gd) {\n var fullLayout = gd._fullLayout;\n var modules = fullLayout._visibleModules;\n var hash = {};\n var i, j, k;\n for (j = 0; j < modules.length; j++) {\n var _module = modules[j];\n var fn = _module.crossTraceCalc;\n if (fn) {\n var spType = _module.basePlotModule.name;\n if (hash[spType]) {\n Lib.pushUnique(hash[spType], fn);\n } else {\n hash[spType] = [fn];\n }\n }\n }\n for (k in hash) {\n var methods = hash[k];\n var subplots = fullLayout._subplots[k];\n if (Array.isArray(subplots)) {\n for (i = 0; i < subplots.length; i++) {\n var sp = subplots[i];\n var spInfo = k === \"cartesian\" ? fullLayout._plots[sp] : fullLayout[sp];\n for (j = 0; j < methods.length; j++) {\n methods[j](gd, spInfo, sp);\n }\n }\n } else {\n for (j = 0; j < methods.length; j++) {\n methods[j](gd);\n }\n }\n }\n }\n plots.rehover = function(gd) {\n if (gd._fullLayout._rehover) {\n gd._fullLayout._rehover();\n }\n };\n plots.redrag = function(gd) {\n if (gd._fullLayout._redrag) {\n gd._fullLayout._redrag();\n }\n };\n plots.reselect = function(gd) {\n var fullLayout = gd._fullLayout;\n var A2 = (gd.layout || {}).selections;\n var B2 = fullLayout._previousSelections;\n fullLayout._previousSelections = A2;\n var mayEmitSelected = fullLayout._reselect || JSON.stringify(A2) !== JSON.stringify(B2);\n Registry.getComponentMethod(\"selections\", \"reselect\")(gd, mayEmitSelected);\n };\n plots.generalUpdatePerTraceModule = function(gd, subplot, subplotCalcData, subplotLayout) {\n var traceHashOld = subplot.traceHash;\n var traceHash = {};\n var i;\n for (i = 0; i < subplotCalcData.length; i++) {\n var calcTraces = subplotCalcData[i];\n var trace = calcTraces[0].trace;\n if (trace.visible) {\n traceHash[trace.type] = traceHash[trace.type] || [];\n traceHash[trace.type].push(calcTraces);\n }\n }\n for (var moduleNameOld in traceHashOld) {\n if (!traceHash[moduleNameOld]) {\n var fakeCalcTrace = traceHashOld[moduleNameOld][0];\n var fakeTrace = fakeCalcTrace[0].trace;\n fakeTrace.visible = false;\n traceHash[moduleNameOld] = [fakeCalcTrace];\n }\n }\n for (var moduleName in traceHash) {\n var moduleCalcData = traceHash[moduleName];\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, subplot, Lib.filterVisible(moduleCalcData), subplotLayout);\n }\n subplot.traceHash = traceHash;\n };\n plots.plotBasePlot = function(desiredType, gd, traces, transitionOpts, makeOnCompleteCallback) {\n var _module = Registry.getModule(desiredType);\n var cdmodule = getModuleCalcData(gd.calcdata, _module)[0];\n _module.plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback);\n };\n plots.cleanBasePlot = function(desiredType, newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var had = oldFullLayout._has && oldFullLayout._has(desiredType);\n var has = newFullLayout._has && newFullLayout._has(desiredType);\n if (had && !has) {\n oldFullLayout[\"_\" + desiredType + \"layer\"].selectAll(\"g.trace\").remove();\n }\n };\n }\n });\n\n // src/constants/xmlns_namespaces.js\n var require_xmlns_namespaces = __commonJS({\n \"src/constants/xmlns_namespaces.js\"(exports) {\n \"use strict\";\n exports.xmlns = \"http://www.w3.org/2000/xmlns/\";\n exports.svg = \"http://www.w3.org/2000/svg\";\n exports.xlink = \"http://www.w3.org/1999/xlink\";\n exports.svgAttrs = {\n xmlns: exports.svg,\n \"xmlns:xlink\": exports.xlink\n };\n }\n });\n\n // src/constants/alignment.js\n var require_alignment = __commonJS({\n \"src/constants/alignment.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // from bottom left: this is the origin of our paper-reference\n // positioning system\n FROM_BL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // from top left: this is the screen pixel positioning origin\n FROM_TL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 1,\n middle: 0.5,\n top: 0\n },\n // from bottom right: sometimes you just need the opposite of ^^\n FROM_BR: {\n left: 1,\n center: 0.5,\n right: 0,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // multiple of fontSize to get the vertical offset between lines\n LINE_SPACING: 1.3,\n // multiple of fontSize to shift from the baseline\n // to the cap (captical letter) line\n // (to use when we don't calculate this shift from Drawing.bBox)\n // This is an approximation since in reality cap height can differ\n // from font to font. However, according to Wikipedia\n // an \"average\" font might have a cap height of 70% of the em\n // https://en.wikipedia.org/wiki/Em_(typography)#History\n CAP_SHIFT: 0.7,\n // half the cap height (distance between baseline and cap line)\n // of an \"average\" font (for more info see above).\n MID_SHIFT: 0.35,\n OPPOSITE_SIDE: {\n left: \"right\",\n right: \"left\",\n top: \"bottom\",\n bottom: \"top\"\n }\n };\n }\n });\n\n // src/lib/svg_text_utils.js\n var require_svg_text_utils = __commonJS({\n \"src/lib/svg_text_utils.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var LINE_SPACING = require_alignment().LINE_SPACING;\n var FIND_TEX = /([^$]*)([$]+[^$]*[$]+)([^$]*)/;\n exports.convertToTspans = function(_context, gd, _callback) {\n var str = _context.text();\n var tex = !_context.attr(\"data-notex\") && gd && gd._context.typesetMath && typeof MathJax !== \"undefined\" && str.match(FIND_TEX);\n var parent = d3.select(_context.node().parentNode);\n if (parent.empty()) return;\n var svgClass = _context.attr(\"class\") ? _context.attr(\"class\").split(\" \")[0] : \"text\";\n svgClass += \"-math\";\n parent.selectAll(\"svg.\" + svgClass).remove();\n parent.selectAll(\"g.\" + svgClass + \"-group\").remove();\n _context.style(\"display\", null).attr({\n // some callers use data-unformatted *from the element* in 'cancel'\n // so we need it here even if we're going to turn it into math\n // these two (plus style and text-anchor attributes) form the key we're\n // going to use for Drawing.bBox\n \"data-unformatted\": str,\n \"data-math\": \"N\"\n });\n function showText() {\n if (!parent.empty()) {\n svgClass = _context.attr(\"class\") + \"-math\";\n parent.select(\"svg.\" + svgClass).remove();\n }\n _context.text(\"\").style(\"white-space\", \"pre\");\n var hasLink = buildSVGText(_context.node(), str);\n if (hasLink) {\n _context.style(\"pointer-events\", \"all\");\n }\n exports.positionText(_context);\n if (_callback) _callback.call(_context);\n }\n if (tex) {\n (gd && gd._promises || []).push(new Promise(function(resolve) {\n _context.style(\"display\", \"none\");\n var fontSize = parseInt(_context.node().style.fontSize, 10);\n var config = { fontSize };\n texToSVG(tex[2], config, function(_svgEl, _glyphDefs, _svgBBox) {\n parent.selectAll(\"svg.\" + svgClass).remove();\n parent.selectAll(\"g.\" + svgClass + \"-group\").remove();\n var newSvg = _svgEl && _svgEl.select(\"svg\");\n if (!newSvg || !newSvg.node()) {\n showText();\n resolve();\n return;\n }\n var mathjaxGroup = parent.append(\"g\").classed(svgClass + \"-group\", true).attr({\n \"pointer-events\": \"none\",\n \"data-unformatted\": str,\n \"data-math\": \"Y\"\n });\n mathjaxGroup.node().appendChild(newSvg.node());\n if (_glyphDefs && _glyphDefs.node()) {\n newSvg.node().insertBefore(\n _glyphDefs.node().cloneNode(true),\n newSvg.node().firstChild\n );\n }\n var w0 = _svgBBox.width;\n var h0 = _svgBBox.height;\n newSvg.attr({\n class: svgClass,\n height: h0,\n preserveAspectRatio: \"xMinYMin meet\"\n }).style({ overflow: \"visible\", \"pointer-events\": \"none\" });\n var fill = _context.node().style.fill || \"black\";\n var g = newSvg.select(\"g\");\n g.attr({ fill, stroke: fill });\n var bb = g.node().getBoundingClientRect();\n var w = bb.width;\n var h = bb.height;\n if (w > w0 || h > h0) {\n newSvg.style(\"overflow\", \"hidden\");\n bb = newSvg.node().getBoundingClientRect();\n w = bb.width;\n h = bb.height;\n }\n var x = +_context.attr(\"x\");\n var y = +_context.attr(\"y\");\n var textHeight = fontSize || _context.node().getBoundingClientRect().height;\n var dy = -textHeight / 4;\n if (svgClass[0] === \"y\") {\n mathjaxGroup.attr({\n transform: \"rotate(\" + [-90, x, y] + \")\" + strTranslate(-w / 2, dy - h / 2)\n });\n } else if (svgClass[0] === \"l\") {\n y = dy - h / 2;\n } else if (svgClass[0] === \"a\" && svgClass.indexOf(\"atitle\") !== 0) {\n x = 0;\n y = dy;\n } else {\n var anchor = _context.attr(\"text-anchor\");\n x = x - w * (anchor === \"middle\" ? 0.5 : anchor === \"end\" ? 1 : 0);\n y = y + dy - h / 2;\n }\n newSvg.attr({\n x,\n y\n });\n if (_callback) _callback.call(_context, mathjaxGroup);\n resolve(mathjaxGroup);\n });\n }));\n } else showText();\n return _context;\n };\n var LT_MATCH = /(<|<|<)/g;\n var GT_MATCH = /(>|>|>)/g;\n function cleanEscapesForTex(s) {\n return s.replace(LT_MATCH, \"\\\\lt \").replace(GT_MATCH, \"\\\\gt \");\n }\n var inlineMath = [[\"$\", \"$\"], [\"\\\\(\", \"\\\\)\"]];\n function texToSVG(_texString, _config, _callback) {\n var MathJaxVersion = parseInt(\n (MathJax.version || \"\").split(\".\")[0]\n );\n if (MathJaxVersion !== 2 && MathJaxVersion !== 3) {\n Lib.warn(\"No MathJax version:\", MathJax.version);\n return;\n }\n var originalRenderer, originalConfig, originalProcessSectionDelay, tmpDiv;\n var setConfig2 = function() {\n originalConfig = Lib.extendDeepAll({}, MathJax.Hub.config);\n originalProcessSectionDelay = MathJax.Hub.processSectionDelay;\n if (MathJax.Hub.processSectionDelay !== void 0) {\n MathJax.Hub.processSectionDelay = 0;\n }\n return MathJax.Hub.Config({\n messageStyle: \"none\",\n tex2jax: {\n inlineMath\n },\n displayAlign: \"left\"\n });\n };\n var setConfig3 = function() {\n originalConfig = Lib.extendDeepAll({}, MathJax.config);\n if (!MathJax.config.tex) {\n MathJax.config.tex = {};\n }\n MathJax.config.tex.inlineMath = inlineMath;\n };\n var setRenderer2 = function() {\n originalRenderer = MathJax.Hub.config.menuSettings.renderer;\n if (originalRenderer !== \"SVG\") {\n return MathJax.Hub.setRenderer(\"SVG\");\n }\n };\n var setRenderer3 = function() {\n originalRenderer = MathJax.config.startup.output;\n if (originalRenderer !== \"svg\") {\n MathJax.config.startup.output = \"svg\";\n }\n };\n var initiateMathJax = function() {\n var randomID = \"math-output-\" + Lib.randstr({}, 64);\n tmpDiv = d3.select(\"body\").append(\"div\").attr({ id: randomID }).style({\n visibility: \"hidden\",\n position: \"absolute\",\n \"font-size\": _config.fontSize + \"px\"\n }).text(cleanEscapesForTex(_texString));\n var tmpNode = tmpDiv.node();\n return MathJaxVersion === 2 ? MathJax.Hub.Typeset(tmpNode) : MathJax.typeset([tmpNode]);\n };\n var finalizeMathJax = function() {\n var sel = tmpDiv.select(\n MathJaxVersion === 2 ? \".MathJax_SVG\" : \".MathJax\"\n );\n var node = !sel.empty() && tmpDiv.select(\"svg\").node();\n if (!node) {\n Lib.log(\"There was an error in the tex syntax.\", _texString);\n _callback();\n } else {\n var nodeBBox = node.getBoundingClientRect();\n var glyphDefs;\n if (MathJaxVersion === 2) {\n glyphDefs = d3.select(\"body\").select(\"#MathJax_SVG_glyphs\");\n } else {\n glyphDefs = sel.select(\"defs\");\n }\n _callback(sel, glyphDefs, nodeBBox);\n }\n tmpDiv.remove();\n };\n var resetRenderer2 = function() {\n if (originalRenderer !== \"SVG\") {\n return MathJax.Hub.setRenderer(originalRenderer);\n }\n };\n var resetRenderer3 = function() {\n if (originalRenderer !== \"svg\") {\n MathJax.config.startup.output = originalRenderer;\n }\n };\n var resetConfig2 = function() {\n if (originalProcessSectionDelay !== void 0) {\n MathJax.Hub.processSectionDelay = originalProcessSectionDelay;\n }\n return MathJax.Hub.Config(originalConfig);\n };\n var resetConfig3 = function() {\n MathJax.config = originalConfig;\n };\n if (MathJaxVersion === 2) {\n MathJax.Hub.Queue(\n setConfig2,\n setRenderer2,\n initiateMathJax,\n finalizeMathJax,\n resetRenderer2,\n resetConfig2\n );\n } else if (MathJaxVersion === 3) {\n setConfig3();\n setRenderer3();\n MathJax.startup.defaultReady();\n MathJax.startup.promise.then(function() {\n initiateMathJax();\n finalizeMathJax();\n resetRenderer3();\n resetConfig3();\n });\n }\n }\n var TAG_STYLES = {\n // would like to use baseline-shift for sub/sup but FF doesn't support it\n // so we need to use dy along with the uber hacky shift-back-to\n // baseline below\n sup: \"font-size:70%\",\n sub: \"font-size:70%\",\n s: \"text-decoration:line-through\",\n u: \"text-decoration:underline\",\n b: \"font-weight:bold\",\n i: \"font-style:italic\",\n a: \"cursor:pointer\",\n span: \"\",\n em: \"font-style:italic;font-weight:bold\"\n };\n var SHIFT_DY = {\n sub: \"0.3em\",\n sup: \"-0.6em\"\n };\n var RESET_DY = {\n sub: \"-0.21em\",\n sup: \"0.42em\"\n };\n var ZERO_WIDTH_SPACE = \"\\u200B\";\n var PROTOCOLS = [\"http:\", \"https:\", \"mailto:\", \"\", void 0, \":\"];\n var NEWLINES = exports.NEWLINES = /(\\r\\n?|\\n)/g;\n var SPLIT_TAGS = /(<[^<>]*>)/;\n var ONE_TAG = /<(\\/?)([^ >]*)(\\s+(.*))?>/i;\n var BR_TAG = //i;\n exports.BR_TAG_ALL = //gi;\n var STYLEMATCH = /(^|[\\s\"'])style\\s*=\\s*(\"([^\"]*);?\"|'([^']*);?')/i;\n var HREFMATCH = /(^|[\\s\"'])href\\s*=\\s*(\"([^\"]*)\"|'([^']*)')/i;\n var TARGETMATCH = /(^|[\\s\"'])target\\s*=\\s*(\"([^\"\\s]*)\"|'([^'\\s]*)')/i;\n var POPUPMATCH = /(^|[\\s\"'])popup\\s*=\\s*(\"([\\w=,]*)\"|'([\\w=,]*)')/i;\n function getQuotedMatch(_str, re) {\n if (!_str) return null;\n var match = _str.match(re);\n var result = match && (match[3] || match[4]);\n return result && convertEntities(result);\n }\n var COLORMATCH = /(^|;)\\s*color:/;\n exports.plainText = function(_str, opts) {\n opts = opts || {};\n var len = opts.len !== void 0 && opts.len !== -1 ? opts.len : Infinity;\n var allowedTags = opts.allowedTags !== void 0 ? opts.allowedTags : [\"br\"];\n var ellipsis = \"...\";\n var eLen = ellipsis.length;\n var oldParts = _str.split(SPLIT_TAGS);\n var newParts = [];\n var prevTag = \"\";\n var l = 0;\n for (var i = 0; i < oldParts.length; i++) {\n var p = oldParts[i];\n var match = p.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n if (tagType) {\n if (allowedTags.indexOf(tagType) !== -1) {\n newParts.push(p);\n prevTag = tagType;\n }\n } else {\n var pLen = p.length;\n if (l + pLen < len) {\n newParts.push(p);\n l += pLen;\n } else if (l < len) {\n var pLen2 = len - l;\n if (prevTag && (prevTag !== \"br\" || pLen2 <= eLen || pLen <= eLen)) {\n newParts.pop();\n }\n if (len > eLen) {\n newParts.push(p.substr(0, pLen2 - eLen) + ellipsis);\n } else {\n newParts.push(p.substr(0, pLen2));\n }\n break;\n }\n prevTag = \"\";\n }\n }\n return newParts.join(\"\");\n };\n var entityToUnicode = {\n mu: \"\\u03BC\",\n amp: \"&\",\n lt: \"<\",\n gt: \">\",\n nbsp: \"\\xA0\",\n times: \"\\xD7\",\n plusmn: \"\\xB1\",\n deg: \"\\xB0\"\n };\n var ENTITY_MATCH = /&(#\\d+|#x[\\da-fA-F]+|[a-z]+);/g;\n function convertEntities(_str) {\n return _str.replace(ENTITY_MATCH, function(fullMatch, innerMatch) {\n var outChar;\n if (innerMatch.charAt(0) === \"#\") {\n outChar = fromCodePoint(\n innerMatch.charAt(1) === \"x\" ? parseInt(innerMatch.substr(2), 16) : parseInt(innerMatch.substr(1), 10)\n );\n } else outChar = entityToUnicode[innerMatch];\n return outChar || fullMatch;\n });\n }\n exports.convertEntities = convertEntities;\n function fromCodePoint(code) {\n if (code > 1114111) return;\n var stringFromCodePoint = String.fromCodePoint;\n if (stringFromCodePoint) return stringFromCodePoint(code);\n var stringFromCharCode = String.fromCharCode;\n if (code <= 65535) return stringFromCharCode(code);\n return stringFromCharCode(\n (code >> 10) + 55232,\n code % 1024 + 56320\n );\n }\n function buildSVGText(containerNode, str) {\n str = str.replace(NEWLINES, \" \");\n var hasLink = false;\n var nodeStack = [];\n var currentNode;\n var currentLine = -1;\n function newLine() {\n currentLine++;\n var lineNode = document.createElementNS(xmlnsNamespaces.svg, \"tspan\");\n d3.select(lineNode).attr({\n class: \"line\",\n dy: currentLine * LINE_SPACING + \"em\"\n });\n containerNode.appendChild(lineNode);\n currentNode = lineNode;\n var oldNodeStack = nodeStack;\n nodeStack = [{ node: lineNode }];\n if (oldNodeStack.length > 1) {\n for (var i2 = 1; i2 < oldNodeStack.length; i2++) {\n enterNode(oldNodeStack[i2]);\n }\n }\n }\n function enterNode(nodeSpec2) {\n var type = nodeSpec2.type;\n var nodeAttrs = {};\n var nodeType;\n if (type === \"a\") {\n nodeType = \"a\";\n var target = nodeSpec2.target;\n var href2 = nodeSpec2.href;\n var popup = nodeSpec2.popup;\n if (href2) {\n nodeAttrs = {\n \"xlink:xlink:show\": target === \"_blank\" || target.charAt(0) !== \"_\" ? \"new\" : \"replace\",\n target,\n \"xlink:xlink:href\": href2\n };\n if (popup) {\n nodeAttrs.onclick = 'window.open(this.href.baseVal,this.target.baseVal,\"' + popup + '\");return false;';\n }\n }\n } else nodeType = \"tspan\";\n if (nodeSpec2.style) nodeAttrs.style = nodeSpec2.style;\n var newNode = document.createElementNS(xmlnsNamespaces.svg, nodeType);\n if (type === \"sup\" || type === \"sub\") {\n addTextNode(currentNode, ZERO_WIDTH_SPACE);\n currentNode.appendChild(newNode);\n var resetter = document.createElementNS(xmlnsNamespaces.svg, \"tspan\");\n addTextNode(resetter, ZERO_WIDTH_SPACE);\n d3.select(resetter).attr(\"dy\", RESET_DY[type]);\n nodeAttrs.dy = SHIFT_DY[type];\n currentNode.appendChild(newNode);\n currentNode.appendChild(resetter);\n } else {\n currentNode.appendChild(newNode);\n }\n d3.select(newNode).attr(nodeAttrs);\n currentNode = nodeSpec2.node = newNode;\n nodeStack.push(nodeSpec2);\n }\n function addTextNode(node, text) {\n node.appendChild(document.createTextNode(text));\n }\n function exitNode(type) {\n if (nodeStack.length === 1) {\n Lib.log(\"Ignoring unexpected end tag .\", str);\n return;\n }\n var innerNode = nodeStack.pop();\n if (type !== innerNode.type) {\n Lib.log(\"Start tag <\" + innerNode.type + \"> doesnt match end tag <\" + type + \">. Pretending it did match.\", str);\n }\n currentNode = nodeStack[nodeStack.length - 1].node;\n }\n var hasLines = BR_TAG.test(str);\n if (hasLines) newLine();\n else {\n currentNode = containerNode;\n nodeStack = [{ node: containerNode }];\n }\n var parts = str.split(SPLIT_TAGS);\n for (var i = 0; i < parts.length; i++) {\n var parti = parts[i];\n var match = parti.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n var tagStyle = TAG_STYLES[tagType];\n if (tagType === \"br\") {\n newLine();\n } else if (tagStyle === void 0) {\n addTextNode(currentNode, convertEntities(parti));\n } else {\n if (match[1]) {\n exitNode(tagType);\n } else {\n var extra = match[4];\n var nodeSpec = { type: tagType };\n var css = getQuotedMatch(extra, STYLEMATCH);\n if (css) {\n css = css.replace(COLORMATCH, \"$1 fill:\");\n if (tagStyle) css += \";\" + tagStyle;\n } else if (tagStyle) css = tagStyle;\n if (css) nodeSpec.style = css;\n if (tagType === \"a\") {\n hasLink = true;\n var href = getQuotedMatch(extra, HREFMATCH);\n if (href) {\n var safeHref = sanitizeHref(href);\n if (safeHref) {\n nodeSpec.href = safeHref;\n nodeSpec.target = getQuotedMatch(extra, TARGETMATCH) || \"_blank\";\n nodeSpec.popup = getQuotedMatch(extra, POPUPMATCH);\n }\n }\n }\n enterNode(nodeSpec);\n }\n }\n }\n return hasLink;\n }\n function sanitizeHref(href) {\n var decodedHref = encodeURI(decodeURI(href));\n var dummyAnchor1 = document.createElement(\"a\");\n var dummyAnchor2 = document.createElement(\"a\");\n dummyAnchor1.href = href;\n dummyAnchor2.href = decodedHref;\n var p1 = dummyAnchor1.protocol;\n var p2 = dummyAnchor2.protocol;\n if (PROTOCOLS.indexOf(p1) !== -1 && PROTOCOLS.indexOf(p2) !== -1) {\n return decodedHref;\n } else {\n return \"\";\n }\n }\n exports.sanitizeHTML = function sanitizeHTML(str) {\n str = str.replace(NEWLINES, \" \");\n var rootNode = document.createElement(\"p\");\n var currentNode = rootNode;\n var nodeStack = [];\n var parts = str.split(SPLIT_TAGS);\n for (var i = 0; i < parts.length; i++) {\n var parti = parts[i];\n var match = parti.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n if (tagType in TAG_STYLES) {\n if (match[1]) {\n if (nodeStack.length) {\n currentNode = nodeStack.pop();\n }\n } else {\n var extra = match[4];\n var css = getQuotedMatch(extra, STYLEMATCH);\n var nodeAttrs = css ? { style: css } : {};\n if (tagType === \"a\") {\n var href = getQuotedMatch(extra, HREFMATCH);\n if (href) {\n var safeHref = sanitizeHref(href);\n if (safeHref) {\n nodeAttrs.href = safeHref;\n var target = getQuotedMatch(extra, TARGETMATCH);\n if (target) {\n nodeAttrs.target = target;\n }\n }\n }\n }\n var newNode = document.createElement(tagType);\n currentNode.appendChild(newNode);\n d3.select(newNode).attr(nodeAttrs);\n currentNode = newNode;\n nodeStack.push(newNode);\n }\n } else {\n currentNode.appendChild(\n document.createTextNode(convertEntities(parti))\n );\n }\n }\n var key = \"innerHTML\";\n return rootNode[key];\n };\n exports.lineCount = function lineCount(s) {\n return s.selectAll(\"tspan.line\").size() || 1;\n };\n exports.positionText = function positionText(s, x, y) {\n return s.each(function() {\n var text = d3.select(this);\n function setOrGet(attr, val) {\n if (val === void 0) {\n val = text.attr(attr);\n if (val === null) {\n text.attr(attr, 0);\n val = 0;\n }\n } else text.attr(attr, val);\n return val;\n }\n var thisX = setOrGet(\"x\", x);\n var thisY = setOrGet(\"y\", y);\n if (this.nodeName === \"text\") {\n text.selectAll(\"tspan.line\").attr({ x: thisX, y: thisY });\n }\n });\n };\n function alignHTMLWith(_base, container, options) {\n var alignH = options.horizontalAlign;\n var alignV = options.verticalAlign || \"top\";\n var bRect = _base.node().getBoundingClientRect();\n var cRect = container.node().getBoundingClientRect();\n var thisRect;\n var getTop;\n var getLeft;\n if (alignV === \"bottom\") {\n getTop = function() {\n return bRect.bottom - thisRect.height;\n };\n } else if (alignV === \"middle\") {\n getTop = function() {\n return bRect.top + (bRect.height - thisRect.height) / 2;\n };\n } else {\n getTop = function() {\n return bRect.top;\n };\n }\n if (alignH === \"right\") {\n getLeft = function() {\n return bRect.right - thisRect.width;\n };\n } else if (alignH === \"center\") {\n getLeft = function() {\n return bRect.left + (bRect.width - thisRect.width) / 2;\n };\n } else {\n getLeft = function() {\n return bRect.left;\n };\n }\n return function() {\n thisRect = this.node().getBoundingClientRect();\n var x0 = getLeft() - cRect.left;\n var y0 = getTop() - cRect.top;\n var gd = options.gd || {};\n if (options.gd) {\n gd._fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(gd._fullLayout._invTransform)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n }\n this.style({\n top: y0 + \"px\",\n left: x0 + \"px\",\n \"z-index\": 1e3\n });\n return this;\n };\n }\n var onePx = \"1px \";\n exports.makeTextShadow = function(color2) {\n var x = onePx;\n var y = onePx;\n var b = onePx;\n return x + y + b + color2 + \", -\" + x + \"-\" + y + b + color2 + \", \" + x + \"-\" + y + b + color2 + \", -\" + x + y + b + color2;\n };\n exports.makeEditable = function(context, options) {\n var gd = options.gd;\n var _delegate = options.delegate;\n var dispatch = d3.dispatch(\"edit\", \"input\", \"cancel\");\n var handlerElement = _delegate || context;\n context.style({ \"pointer-events\": _delegate ? \"none\" : \"all\" });\n if (context.size() !== 1) throw new Error(\"boo\");\n function handleClick() {\n appendEditable();\n context.style({ opacity: 0 });\n var svgClass = handlerElement.attr(\"class\");\n var mathjaxClass;\n if (svgClass) mathjaxClass = \".\" + svgClass.split(\" \")[0] + \"-math-group\";\n else mathjaxClass = \"[class*=-math-group]\";\n if (mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({ opacity: 0 });\n }\n }\n function selectElementContents(_el) {\n var el = _el.node();\n var range = document.createRange();\n range.selectNodeContents(el);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n el.focus();\n }\n function appendEditable() {\n var plotDiv = d3.select(gd);\n var container = plotDiv.select(\".svg-container\");\n var div = container.append(\"div\");\n var cStyle = context.node().style;\n var fontSize = parseFloat(cStyle.fontSize || 12);\n var initialText = options.text;\n if (initialText === void 0) initialText = context.attr(\"data-unformatted\");\n div.classed(\"plugin-editable editable\", true).style({\n position: \"absolute\",\n \"font-family\": cStyle.fontFamily || \"Arial\",\n \"font-size\": fontSize,\n color: options.fill || cStyle.fill || \"black\",\n opacity: 1,\n \"background-color\": options.background || \"transparent\",\n outline: \"#ffffff33 1px solid\",\n margin: [-fontSize / 8 + 1, 0, 0, -1].join(\"px \") + \"px\",\n padding: \"0\",\n \"box-sizing\": \"border-box\"\n }).attr({ contenteditable: true }).text(initialText).call(alignHTMLWith(context, container, options)).on(\"blur\", function() {\n gd._editing = false;\n context.text(this.textContent).style({ opacity: 1 });\n var svgClass = d3.select(this).attr(\"class\");\n var mathjaxClass;\n if (svgClass) mathjaxClass = \".\" + svgClass.split(\" \")[0] + \"-math-group\";\n else mathjaxClass = \"[class*=-math-group]\";\n if (mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({ opacity: 0 });\n }\n var text = this.textContent;\n d3.select(this).transition().duration(0).remove();\n d3.select(document).on(\"mouseup\", null);\n dispatch.edit.call(context, text);\n }).on(\"focus\", function() {\n var editDiv = this;\n gd._editing = true;\n d3.select(document).on(\"mouseup\", function() {\n if (d3.event.target === editDiv) return false;\n if (document.activeElement === div.node()) div.node().blur();\n });\n }).on(\"keyup\", function() {\n if (d3.event.which === 27) {\n gd._editing = false;\n context.style({ opacity: 1 });\n d3.select(this).style({ opacity: 0 }).on(\"blur\", function() {\n return false;\n }).transition().remove();\n dispatch.cancel.call(context, this.textContent);\n } else {\n dispatch.input.call(context, this.textContent);\n d3.select(this).call(alignHTMLWith(context, container, options));\n }\n }).on(\"keydown\", function() {\n if (d3.event.which === 13) this.blur();\n }).call(selectElementContents);\n }\n if (options.immediate) handleClick();\n else handlerElement.on(\"click\", handleClick);\n return d3.rebind(context, dispatch, \"on\");\n };\n }\n });\n\n // src/components/colorscale/helpers.js\n var require_helpers = __commonJS({\n \"src/components/colorscale/helpers.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Color2 = require_color();\n var isValidScale = require_scales().isValid;\n function hasColorscale(trace, containerStr, colorKey) {\n var container = containerStr ? Lib.nestedProperty(trace, containerStr).get() || {} : trace;\n var color2 = container[colorKey || \"color\"];\n if (color2 && color2._inputArray) color2 = color2._inputArray;\n var isArrayWithOneNumber = false;\n if (Lib.isArrayOrTypedArray(color2)) {\n for (var i = 0; i < color2.length; i++) {\n if (isNumeric(color2[i])) {\n isArrayWithOneNumber = true;\n break;\n }\n }\n }\n return Lib.isPlainObject(container) && (isArrayWithOneNumber || container.showscale === true || isNumeric(container.cmin) && isNumeric(container.cmax) || isValidScale(container.colorscale) || Lib.isPlainObject(container.colorbar));\n }\n var constantAttrs = [\"showscale\", \"autocolorscale\", \"colorscale\", \"reversescale\", \"colorbar\"];\n var letterAttrs = [\"min\", \"max\", \"mid\", \"auto\"];\n function extractOpts(cont) {\n var colorAx = cont._colorAx;\n var cont2 = colorAx ? colorAx : cont;\n var out = {};\n var cLetter;\n var i, k;\n for (i = 0; i < constantAttrs.length; i++) {\n k = constantAttrs[i];\n out[k] = cont2[k];\n }\n if (colorAx) {\n cLetter = \"c\";\n for (i = 0; i < letterAttrs.length; i++) {\n k = letterAttrs[i];\n out[k] = cont2[\"c\" + k];\n }\n } else {\n var k2;\n for (i = 0; i < letterAttrs.length; i++) {\n k = letterAttrs[i];\n k2 = \"c\" + k;\n if (k2 in cont2) {\n out[k] = cont2[k2];\n continue;\n }\n k2 = \"z\" + k;\n if (k2 in cont2) {\n out[k] = cont2[k2];\n }\n }\n cLetter = k2.charAt(0);\n }\n out._sync = function(k3, v) {\n var k22 = letterAttrs.indexOf(k3) !== -1 ? cLetter + k3 : k3;\n cont2[k22] = cont2[\"_\" + k22] = v;\n };\n return out;\n }\n function extractScale(cont) {\n var cOpts = extractOpts(cont);\n var cmin = cOpts.min;\n var cmax = cOpts.max;\n var scl = cOpts.reversescale ? flipScale(cOpts.colorscale) : cOpts.colorscale;\n var N = scl.length;\n var domain = new Array(N);\n var range = new Array(N);\n for (var i = 0; i < N; i++) {\n var si = scl[i];\n domain[i] = cmin + si[0] * (cmax - cmin);\n range[i] = si[1];\n }\n return { domain, range };\n }\n function flipScale(scl) {\n var N = scl.length;\n var sclNew = new Array(N);\n for (var i = N - 1, j = 0; i >= 0; i--, j++) {\n var si = scl[i];\n sclNew[j] = [1 - si[0], si[1]];\n }\n return sclNew;\n }\n function makeColorScaleFunc(specs, opts) {\n opts = opts || {};\n var domain = specs.domain;\n var range = specs.range;\n var N = range.length;\n var _range = new Array(N);\n for (var i = 0; i < N; i++) {\n var rgba3 = tinycolor(range[i]).toRgb();\n _range[i] = [rgba3.r, rgba3.g, rgba3.b, rgba3.a];\n }\n var _sclFunc = d3.scale.linear().domain(domain).range(_range).clamp(true);\n var noNumericCheck = opts.noNumericCheck;\n var returnArray = opts.returnArray;\n var sclFunc;\n if (noNumericCheck && returnArray) {\n sclFunc = _sclFunc;\n } else if (noNumericCheck) {\n sclFunc = function(v) {\n return colorArray2rbga(_sclFunc(v));\n };\n } else if (returnArray) {\n sclFunc = function(v) {\n if (isNumeric(v)) return _sclFunc(v);\n else if (tinycolor(v).isValid()) return v;\n else return Color2.defaultLine;\n };\n } else {\n sclFunc = function(v) {\n if (isNumeric(v)) return colorArray2rbga(_sclFunc(v));\n else if (tinycolor(v).isValid()) return v;\n else return Color2.defaultLine;\n };\n }\n sclFunc.domain = _sclFunc.domain;\n sclFunc.range = function() {\n return range;\n };\n return sclFunc;\n }\n function makeColorScaleFuncFromTrace(trace, opts) {\n return makeColorScaleFunc(extractScale(trace), opts);\n }\n function colorArray2rbga(colorArray) {\n var colorObj = {\n r: colorArray[0],\n g: colorArray[1],\n b: colorArray[2],\n a: colorArray[3]\n };\n return tinycolor(colorObj).toRgbString();\n }\n module.exports = {\n hasColorscale,\n extractOpts,\n extractScale,\n flipScale,\n makeColorScaleFunc,\n makeColorScaleFuncFromTrace\n };\n }\n });\n\n // src/plots/cartesian/axis_format_attributes.js\n var require_axis_format_attributes = __commonJS({\n \"src/plots/cartesian/axis_format_attributes.js\"(exports, module) {\n \"use strict\";\n var docs = require_docs();\n var FORMAT_LINK = docs.FORMAT_LINK;\n var DATE_FORMAT_LINK = docs.DATE_FORMAT_LINK;\n function axisHoverFormat(x, noDates) {\n return {\n valType: \"string\",\n dflt: \"\",\n editType: \"none\",\n description: (noDates ? descriptionOnlyNumbers : descriptionWithDates)(\"hover text\", x) + [\n \"By default the values are formatted using \" + (noDates ? \"generic number format\" : \"`\" + x + \"axis.hoverformat`\") + \".\"\n ].join(\" \")\n };\n }\n function descriptionOnlyNumbers(label, x) {\n return [\n \"Sets the \" + label + \" formatting rule\" + (x ? \"for `\" + x + \"` \" : \"\"),\n \"using d3 formatting mini-languages\",\n \"which are very similar to those in Python. For numbers, see: \" + FORMAT_LINK + \".\"\n ].join(\" \");\n }\n function descriptionWithDates(label, x) {\n return descriptionOnlyNumbers(label, x) + [\n \" And for dates see: \" + DATE_FORMAT_LINK + \".\",\n \"We add two items to d3's date formatter:\",\n \"*%h* for half of the year as a decimal number as well as\",\n \"*%{n}f* for fractional seconds\",\n \"with n digits. For example, *2016-10-13 09:15:23.456* with tickformat\",\n \"*%H~%M~%S.%2f* would display *09~15~23.46*\"\n ].join(\" \");\n }\n module.exports = {\n axisHoverFormat,\n descriptionOnlyNumbers,\n descriptionWithDates\n };\n }\n });\n\n // src/plots/cartesian/layout_attributes.js\n var require_layout_attributes4 = __commonJS({\n \"src/plots/cartesian/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var templatedArray = require_plot_template().templatedArray;\n var descriptionWithDates = require_axis_format_attributes().descriptionWithDates;\n var ONEDAY = require_numerical().ONEDAY;\n var constants = require_constants2();\n var HOUR = constants.HOUR_PATTERN;\n var DAY_OF_WEEK = constants.WEEKDAY_PATTERN;\n var minorTickmode = {\n valType: \"enumerated\",\n values: [\"auto\", \"linear\", \"array\"],\n editType: \"ticks\",\n impliedEdits: { tick0: void 0, dtick: void 0 }\n };\n var tickmode = extendFlat({}, minorTickmode, {\n values: minorTickmode.values.slice().concat([\"sync\"])\n });\n function makeNticks(minor) {\n return {\n valType: \"integer\",\n min: 0,\n dflt: minor ? 5 : 0,\n editType: \"ticks\"\n };\n }\n var tick0 = {\n valType: \"any\",\n editType: \"ticks\",\n impliedEdits: { tickmode: \"linear\" }\n };\n var dtick = {\n valType: \"any\",\n editType: \"ticks\",\n impliedEdits: { tickmode: \"linear\" }\n };\n var tickvals = {\n valType: \"data_array\",\n editType: \"ticks\"\n };\n var ticks = {\n valType: \"enumerated\",\n values: [\"outside\", \"inside\", \"\"],\n editType: \"ticks\"\n };\n function makeTicklen(minor) {\n var obj = {\n valType: \"number\",\n min: 0,\n editType: \"ticks\"\n };\n if (!minor) obj.dflt = 5;\n return obj;\n }\n function makeTickwidth(minor) {\n var obj = {\n valType: \"number\",\n min: 0,\n editType: \"ticks\"\n };\n if (!minor) obj.dflt = 1;\n return obj;\n }\n var tickcolor = {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"ticks\"\n };\n var gridcolor = {\n valType: \"color\",\n dflt: colorAttrs.lightLine,\n editType: \"ticks\"\n };\n function makeGridwidth(minor) {\n var obj = {\n valType: \"number\",\n min: 0,\n editType: \"ticks\"\n };\n if (!minor) obj.dflt = 1;\n return obj;\n }\n var griddash = extendFlat({}, dash, { editType: \"ticks\" });\n var showgrid = {\n valType: \"boolean\",\n editType: \"ticks\"\n };\n module.exports = {\n visible: {\n valType: \"boolean\",\n editType: \"plot\"\n },\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"ticks\"\n },\n title: {\n text: {\n valType: \"string\",\n editType: \"ticks\"\n },\n font: fontAttrs({\n editType: \"ticks\"\n }),\n standoff: {\n valType: \"number\",\n min: 0,\n editType: \"ticks\"\n },\n editType: \"ticks\"\n },\n type: {\n valType: \"enumerated\",\n // '-' means we haven't yet run autotype or couldn't find any data\n // it gets turned into linear in gd._fullLayout but not copied back\n // to gd.data like the others are.\n values: [\"-\", \"linear\", \"log\", \"date\", \"category\", \"multicategory\"],\n dflt: \"-\",\n editType: \"calc\",\n // we forget when an axis has been autotyped, just writing the auto\n // value back to the input - so it doesn't make sense to template this.\n // Note: we do NOT prohibit this in `coerce`, so if someone enters a\n // type in the template explicitly it will be honored as the default.\n _noTemplating: true\n },\n autotypenumbers: {\n valType: \"enumerated\",\n values: [\"convert types\", \"strict\"],\n dflt: \"convert types\",\n editType: \"calc\"\n },\n autorange: {\n valType: \"enumerated\",\n values: [true, false, \"reversed\", \"min reversed\", \"max reversed\", \"min\", \"max\"],\n dflt: true,\n editType: \"axrange\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n autorangeoptions: {\n minallowed: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n maxallowed: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n clipmin: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n clipmax: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n include: {\n valType: \"any\",\n arrayOk: true,\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n editType: \"plot\"\n },\n rangemode: {\n valType: \"enumerated\",\n values: [\"normal\", \"tozero\", \"nonnegative\"],\n dflt: \"normal\",\n editType: \"plot\"\n },\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"axrange\", impliedEdits: { \"^autorange\": false }, anim: true },\n { valType: \"any\", editType: \"axrange\", impliedEdits: { \"^autorange\": false }, anim: true }\n ],\n editType: \"axrange\",\n impliedEdits: { autorange: false },\n anim: true\n },\n minallowed: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"^autorange\": false }\n },\n maxallowed: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"^autorange\": false }\n },\n fixedrange: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n insiderange: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"plot\" },\n { valType: \"any\", editType: \"plot\" }\n ],\n editType: \"plot\"\n },\n // scaleanchor: not used directly, just put here for reference\n // values are any opposite-letter axis id, or `false`.\n scaleanchor: {\n valType: \"enumerated\",\n values: [\n constants.idRegex.x.toString(),\n constants.idRegex.y.toString(),\n false\n ],\n editType: \"plot\"\n },\n scaleratio: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"plot\"\n },\n constrain: {\n valType: \"enumerated\",\n values: [\"range\", \"domain\"],\n editType: \"plot\"\n },\n // constraintoward: not used directly, just put here for reference\n constraintoward: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\", \"top\", \"middle\", \"bottom\"],\n editType: \"plot\"\n },\n matches: {\n valType: \"enumerated\",\n values: [\n constants.idRegex.x.toString(),\n constants.idRegex.y.toString()\n ],\n editType: \"calc\"\n },\n rangebreaks: templatedArray(\"rangebreak\", {\n enabled: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n bounds: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"calc\" },\n { valType: \"any\", editType: \"calc\" }\n ],\n editType: \"calc\"\n },\n pattern: {\n valType: \"enumerated\",\n values: [DAY_OF_WEEK, HOUR, \"\"],\n editType: \"calc\"\n },\n values: {\n valType: \"info_array\",\n freeLength: true,\n editType: \"calc\",\n items: {\n valType: \"any\",\n editType: \"calc\"\n }\n },\n dvalue: {\n // TODO could become 'any' to add support for 'months', 'years'\n valType: \"number\",\n editType: \"calc\",\n min: 0,\n dflt: ONEDAY\n },\n /*\n gap: {\n valType: 'number',\n min: 0,\n dflt: 0, // for *date* axes, maybe something else for *linear*\n editType: 'calc',\n },\n gapmode: {\n valType: 'enumerated',\n values: ['pixels', 'fraction'],\n dflt: 'pixels',\n editType: 'calc',\n },\n */\n // To complete https://github.com/plotly/plotly.js/issues/4210\n // we additionally need `gap` and make this work on *linear*, and\n // possibly all other cartesian axis types. We possibly would also need\n // some style attributes controlling the zig-zag on the corresponding\n // axis.\n editType: \"calc\"\n }),\n // ticks\n tickmode,\n nticks: makeNticks(),\n tick0,\n dtick,\n ticklabelstep: {\n valType: \"integer\",\n min: 1,\n dflt: 1,\n editType: \"ticks\"\n },\n tickvals,\n ticktext: {\n valType: \"data_array\",\n editType: \"ticks\"\n },\n ticks,\n tickson: {\n valType: \"enumerated\",\n values: [\"labels\", \"boundaries\"],\n dflt: \"labels\",\n editType: \"ticks\"\n },\n ticklabelmode: {\n valType: \"enumerated\",\n values: [\"instant\", \"period\"],\n dflt: \"instant\",\n editType: \"ticks\"\n },\n // ticklabelposition: not used directly, as values depend on direction (similar to side)\n // left/right options are for x axes, and top/bottom options are for y axes\n ticklabelposition: {\n valType: \"enumerated\",\n values: [\n \"outside\",\n \"inside\",\n \"outside top\",\n \"inside top\",\n \"outside left\",\n \"inside left\",\n \"outside right\",\n \"inside right\",\n \"outside bottom\",\n \"inside bottom\"\n ],\n dflt: \"outside\",\n editType: \"calc\"\n },\n ticklabeloverflow: {\n valType: \"enumerated\",\n values: [\n \"allow\",\n \"hide past div\",\n \"hide past domain\"\n ],\n editType: \"calc\"\n },\n ticklabelshift: {\n valType: \"integer\",\n dflt: 0,\n editType: \"ticks\"\n },\n ticklabelstandoff: {\n valType: \"integer\",\n dflt: 0,\n editType: \"ticks\"\n },\n ticklabelindex: {\n // in the future maybe add `extras: ['all', 'minor']` to allow showing labels for all ticks\n // or for all minor ticks.\n valType: \"integer\",\n arrayOk: true,\n editType: \"calc\"\n },\n mirror: {\n valType: \"enumerated\",\n values: [true, \"ticks\", false, \"all\", \"allticks\"],\n dflt: false,\n editType: \"ticks+layoutstyle\"\n },\n ticklen: makeTicklen(),\n tickwidth: makeTickwidth(),\n tickcolor,\n showticklabels: {\n valType: \"boolean\",\n dflt: true,\n editType: \"ticks\"\n },\n labelalias: {\n valType: \"any\",\n dflt: false,\n editType: \"ticks\"\n },\n automargin: {\n valType: \"flaglist\",\n flags: [\"height\", \"width\", \"left\", \"right\", \"top\", \"bottom\"],\n extras: [true, false],\n dflt: false,\n editType: \"ticks\"\n },\n showspikes: {\n valType: \"boolean\",\n dflt: false,\n editType: \"modebar\"\n },\n spikecolor: {\n valType: \"color\",\n dflt: null,\n editType: \"none\"\n },\n spikethickness: {\n valType: \"number\",\n dflt: 3,\n editType: \"none\"\n },\n spikedash: extendFlat({}, dash, { dflt: \"dash\", editType: \"none\" }),\n spikemode: {\n valType: \"flaglist\",\n flags: [\"toaxis\", \"across\", \"marker\"],\n dflt: \"toaxis\",\n editType: \"none\"\n },\n spikesnap: {\n valType: \"enumerated\",\n values: [\"data\", \"cursor\", \"hovered data\"],\n dflt: \"hovered data\",\n editType: \"none\"\n },\n tickfont: fontAttrs({\n editType: \"ticks\"\n }),\n tickangle: {\n valType: \"angle\",\n dflt: \"auto\",\n editType: \"ticks\"\n },\n autotickangles: {\n valType: \"info_array\",\n freeLength: true,\n items: {\n valType: \"angle\"\n },\n dflt: [0, 30, 90],\n editType: \"ticks\"\n },\n tickprefix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"ticks\"\n },\n showtickprefix: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"ticks\"\n },\n ticksuffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"ticks\"\n },\n showticksuffix: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"ticks\"\n },\n showexponent: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"ticks\"\n },\n exponentformat: {\n valType: \"enumerated\",\n values: [\"none\", \"e\", \"E\", \"power\", \"SI\", \"B\"],\n dflt: \"B\",\n editType: \"ticks\"\n },\n minexponent: {\n valType: \"number\",\n dflt: 3,\n min: 0,\n editType: \"ticks\"\n },\n separatethousands: {\n valType: \"boolean\",\n dflt: false,\n editType: \"ticks\"\n },\n tickformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"ticks\",\n description: descriptionWithDates(\"tick label\")\n },\n tickformatstops: templatedArray(\"tickformatstop\", {\n enabled: {\n valType: \"boolean\",\n dflt: true,\n editType: \"ticks\"\n },\n dtickrange: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"ticks\" },\n { valType: \"any\", editType: \"ticks\" }\n ],\n editType: \"ticks\"\n },\n value: {\n valType: \"string\",\n dflt: \"\",\n editType: \"ticks\"\n },\n editType: \"ticks\"\n }),\n hoverformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"none\",\n description: descriptionWithDates(\"hover text\")\n },\n // lines and grids\n showline: {\n valType: \"boolean\",\n dflt: false,\n editType: \"ticks+layoutstyle\"\n },\n linecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"layoutstyle\"\n },\n linewidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"ticks+layoutstyle\"\n },\n showgrid,\n gridcolor,\n gridwidth: makeGridwidth(),\n griddash,\n zeroline: {\n valType: \"boolean\",\n editType: \"ticks\"\n },\n zerolinecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"ticks\"\n },\n zerolinewidth: {\n valType: \"number\",\n dflt: 1,\n editType: \"ticks\"\n },\n showdividers: {\n valType: \"boolean\",\n dflt: true,\n editType: \"ticks\"\n },\n dividercolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"ticks\"\n },\n dividerwidth: {\n valType: \"number\",\n dflt: 1,\n editType: \"ticks\"\n },\n // TODO dividerlen: that would override \"to label base\" length?\n // positioning attributes\n // anchor: not used directly, just put here for reference\n // values are any opposite-letter axis id\n anchor: {\n valType: \"enumerated\",\n values: [\n \"free\",\n constants.idRegex.x.toString(),\n constants.idRegex.y.toString()\n ],\n editType: \"plot\"\n },\n // side: not used directly, as values depend on direction\n // values are top, bottom for x axes, and left, right for y\n side: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\", \"left\", \"right\"],\n editType: \"plot\"\n },\n // overlaying: not used directly, just put here for reference\n // values are false and any other same-letter axis id that's not\n // itself overlaying anything\n overlaying: {\n valType: \"enumerated\",\n values: [\n \"free\",\n constants.idRegex.x.toString(),\n constants.idRegex.y.toString()\n ],\n editType: \"plot\"\n },\n minor: {\n tickmode: minorTickmode,\n nticks: makeNticks(\"minor\"),\n tick0,\n dtick,\n tickvals,\n ticks,\n ticklen: makeTicklen(\"minor\"),\n tickwidth: makeTickwidth(\"minor\"),\n tickcolor,\n gridcolor,\n gridwidth: makeGridwidth(\"minor\"),\n griddash,\n showgrid,\n editType: \"ticks\"\n },\n layer: {\n valType: \"enumerated\",\n values: [\"above traces\", \"below traces\"],\n dflt: \"above traces\",\n editType: \"plot\"\n },\n domain: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", min: 0, max: 1, editType: \"plot\" },\n { valType: \"number\", min: 0, max: 1, editType: \"plot\" }\n ],\n dflt: [0, 1],\n editType: \"plot\"\n },\n position: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"plot\"\n },\n autoshift: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n shift: {\n valType: \"number\",\n editType: \"plot\"\n },\n categoryorder: {\n valType: \"enumerated\",\n values: [\n \"trace\",\n \"category ascending\",\n \"category descending\",\n \"array\",\n \"total ascending\",\n \"total descending\",\n \"min ascending\",\n \"min descending\",\n \"max ascending\",\n \"max descending\",\n \"sum ascending\",\n \"sum descending\",\n \"mean ascending\",\n \"mean descending\",\n \"geometric mean ascending\",\n \"geometric mean descending\",\n \"median ascending\",\n \"median descending\"\n ],\n dflt: \"trace\",\n editType: \"calc\"\n },\n categoryarray: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/components/colorbar/attributes.js\n var require_attributes7 = __commonJS({\n \"src/components/colorbar/attributes.js\"(exports, module) {\n \"use strict\";\n var axesAttrs = require_layout_attributes4();\n var fontAttrs = require_font_attributes();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n module.exports = overrideAll({\n orientation: {\n valType: \"enumerated\",\n values: [\"h\", \"v\"],\n dflt: \"v\"\n },\n thicknessmode: {\n valType: \"enumerated\",\n values: [\"fraction\", \"pixels\"],\n dflt: \"pixels\"\n },\n thickness: {\n valType: \"number\",\n min: 0,\n dflt: 30\n },\n lenmode: {\n valType: \"enumerated\",\n values: [\"fraction\", \"pixels\"],\n dflt: \"fraction\"\n },\n len: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n x: {\n valType: \"number\"\n },\n xref: {\n valType: \"enumerated\",\n dflt: \"paper\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"]\n },\n xpad: {\n valType: \"number\",\n min: 0,\n dflt: 10\n },\n y: {\n valType: \"number\"\n },\n yref: {\n valType: \"enumerated\",\n dflt: \"paper\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"]\n },\n ypad: {\n valType: \"number\",\n min: 0,\n dflt: 10\n },\n // a possible line around the bar itself\n outlinecolor: axesAttrs.linecolor,\n outlinewidth: axesAttrs.linewidth,\n // Should outlinewidth have {dflt: 0} ?\n // another possible line outside the padding and tick labels\n bordercolor: axesAttrs.linecolor,\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 0\n },\n bgcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\"\n },\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.minor.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, { dflt: \"\" }),\n ticklabeloverflow: extendFlat({}, axesAttrs.ticklabeloverflow, {}),\n // ticklabelposition: not used directly, as values depend on orientation\n // left/right options are for x axes, and top/bottom options are for y axes\n ticklabelposition: {\n valType: \"enumerated\",\n values: [\n \"outside\",\n \"inside\",\n \"outside top\",\n \"inside top\",\n \"outside left\",\n \"inside left\",\n \"outside right\",\n \"inside right\",\n \"outside bottom\",\n \"inside bottom\"\n ],\n dflt: \"outside\"\n },\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n ticklabelstep: axesAttrs.ticklabelstep,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n tickfont: fontAttrs({}),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n showexponent: axesAttrs.showexponent,\n title: {\n text: {\n valType: \"string\"\n },\n font: fontAttrs({}),\n side: {\n valType: \"enumerated\",\n values: [\"right\", \"top\", \"bottom\"]\n }\n }\n }, \"colorbars\", \"from-root\");\n }\n });\n\n // src/components/colorscale/attributes.js\n var require_attributes8 = __commonJS({\n \"src/components/colorscale/attributes.js\"(exports, module) {\n \"use strict\";\n var colorbarAttrs = require_attributes7();\n var counterRegex = require_regex().counter;\n var sortObjectKeys = require_sort_object_keys();\n var palettes = require_scales().scales;\n var paletteStr = sortObjectKeys(palettes);\n function code(s) {\n return \"`\" + s + \"`\";\n }\n module.exports = function colorScaleAttrs(context, opts) {\n context = context || \"\";\n opts = opts || {};\n var cLetter = opts.cLetter || \"c\";\n var onlyIfNumerical = \"onlyIfNumerical\" in opts ? opts.onlyIfNumerical : Boolean(context);\n var noScale = \"noScale\" in opts ? opts.noScale : context === \"marker.line\";\n var showScaleDflt = \"showScaleDflt\" in opts ? opts.showScaleDflt : cLetter === \"z\";\n var colorscaleDflt = typeof opts.colorscaleDflt === \"string\" ? palettes[opts.colorscaleDflt] : null;\n var editTypeOverride = opts.editTypeOverride || \"\";\n var contextHead = context ? context + \".\" : \"\";\n var colorAttr, colorAttrFull;\n if (\"colorAttr\" in opts) {\n colorAttr = opts.colorAttr;\n colorAttrFull = opts.colorAttr;\n } else {\n colorAttr = { z: \"z\", c: \"color\" }[cLetter];\n colorAttrFull = \"in \" + code(contextHead + colorAttr);\n }\n var effectDesc = onlyIfNumerical ? \" Has an effect only if \" + colorAttrFull + \" is set to a numerical array.\" : \"\";\n var auto = cLetter + \"auto\";\n var min = cLetter + \"min\";\n var max = cLetter + \"max\";\n var mid = cLetter + \"mid\";\n var autoFull = code(contextHead + auto);\n var minFull = code(contextHead + min);\n var maxFull = code(contextHead + max);\n var minmaxFull = minFull + \" and \" + maxFull;\n var autoImpliedEdits = {};\n autoImpliedEdits[min] = autoImpliedEdits[max] = void 0;\n var minmaxImpliedEdits = {};\n minmaxImpliedEdits[auto] = false;\n var attrs = {};\n if (colorAttr === \"color\") {\n attrs.color = {\n valType: \"color\",\n arrayOk: true,\n editType: editTypeOverride || \"style\"\n };\n if (opts.anim) {\n attrs.color.anim = true;\n }\n }\n attrs[auto] = {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\",\n impliedEdits: autoImpliedEdits\n };\n attrs[min] = {\n valType: \"number\",\n dflt: null,\n editType: editTypeOverride || \"plot\",\n impliedEdits: minmaxImpliedEdits\n };\n attrs[max] = {\n valType: \"number\",\n dflt: null,\n editType: editTypeOverride || \"plot\",\n impliedEdits: minmaxImpliedEdits\n };\n attrs[mid] = {\n valType: \"number\",\n dflt: null,\n editType: \"calc\",\n impliedEdits: autoImpliedEdits\n };\n attrs.colorscale = {\n valType: \"colorscale\",\n editType: \"calc\",\n dflt: colorscaleDflt,\n impliedEdits: { autocolorscale: false }\n };\n attrs.autocolorscale = {\n valType: \"boolean\",\n // gets overrode in 'heatmap' & 'surface' for backwards comp.\n dflt: opts.autoColorDflt === false ? false : true,\n editType: \"calc\",\n impliedEdits: { colorscale: void 0 }\n };\n attrs.reversescale = {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n };\n if (!noScale) {\n attrs.showscale = {\n valType: \"boolean\",\n dflt: showScaleDflt,\n editType: \"calc\"\n };\n attrs.colorbar = colorbarAttrs;\n }\n if (!opts.noColorAxis) {\n attrs.coloraxis = {\n valType: \"subplotid\",\n regex: counterRegex(\"coloraxis\"),\n dflt: null,\n editType: \"calc\"\n };\n }\n return attrs;\n };\n }\n });\n\n // src/components/colorscale/layout_attributes.js\n var require_layout_attributes5 = __commonJS({\n \"src/components/colorscale/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n var colorScaleAttrs = require_attributes8();\n var scales = require_scales().scales;\n module.exports = {\n editType: \"calc\",\n colorscale: {\n editType: \"calc\",\n sequential: {\n valType: \"colorscale\",\n dflt: scales.Reds,\n editType: \"calc\"\n },\n sequentialminus: {\n valType: \"colorscale\",\n dflt: scales.Blues,\n editType: \"calc\"\n },\n diverging: {\n valType: \"colorscale\",\n dflt: scales.RdBu,\n editType: \"calc\"\n }\n },\n coloraxis: extendFlat({\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n editType: \"calc\"\n }, colorScaleAttrs(\"\", {\n colorAttr: \"corresponding trace color array(s)\",\n noColorAxis: true,\n showScaleDflt: true\n }))\n };\n }\n });\n\n // src/components/colorbar/has_colorbar.js\n var require_has_colorbar = __commonJS({\n \"src/components/colorbar/has_colorbar.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function hasColorbar(container) {\n return Lib.isPlainObject(container.colorbar);\n };\n }\n });\n\n // src/plots/cartesian/clean_ticks.js\n var require_clean_ticks = __commonJS({\n \"src/plots/cartesian/clean_ticks.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var constants = require_numerical();\n var ONEDAY = constants.ONEDAY;\n var ONEWEEK = constants.ONEWEEK;\n exports.dtick = function(dtick, axType) {\n var isLog = axType === \"log\";\n var isDate = axType === \"date\";\n var isCat = axType === \"category\";\n var dtickDflt = isDate ? ONEDAY : 1;\n if (!dtick) return dtickDflt;\n if (isNumeric(dtick)) {\n dtick = Number(dtick);\n if (dtick <= 0) return dtickDflt;\n if (isCat) {\n return Math.max(1, Math.round(dtick));\n }\n if (isDate) {\n return Math.max(0.1, dtick);\n }\n return dtick;\n }\n if (typeof dtick !== \"string\" || !(isDate || isLog)) {\n return dtickDflt;\n }\n var prefix = dtick.charAt(0);\n var dtickNum = dtick.substr(1);\n dtickNum = isNumeric(dtickNum) ? Number(dtickNum) : 0;\n if (dtickNum <= 0 || !// \"M\" gives ticks every (integer) n months\n (isDate && prefix === \"M\" && dtickNum === Math.round(dtickNum) || // \"L\" gives ticks linearly spaced in data (not in position) every (float) f\n isLog && prefix === \"L\" || // \"D1\" gives powers of 10 with all small digits between, \"D2\" gives only 2 and 5\n isLog && prefix === \"D\" && (dtickNum === 1 || dtickNum === 2))) {\n return dtickDflt;\n }\n return dtick;\n };\n exports.tick0 = function(tick0, axType, calendar, dtick) {\n if (axType === \"date\") {\n return Lib.cleanDate(\n tick0,\n Lib.dateTick0(calendar, dtick % ONEWEEK === 0 ? 1 : 0)\n );\n }\n if (dtick === \"D1\" || dtick === \"D2\") {\n return void 0;\n }\n return isNumeric(tick0) ? Number(tick0) : 0;\n };\n }\n });\n\n // src/plots/cartesian/tick_value_defaults.js\n var require_tick_value_defaults = __commonJS({\n \"src/plots/cartesian/tick_value_defaults.js\"(exports, module) {\n \"use strict\";\n var cleanTicks = require_clean_ticks();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var isTypedArraySpec = require_array().isTypedArraySpec;\n var decodeTypedArraySpec = require_array().decodeTypedArraySpec;\n module.exports = function handleTickValueDefaults(containerIn, containerOut, coerce, axType, opts) {\n if (!opts) opts = {};\n var isMinor = opts.isMinor;\n var cIn = isMinor ? containerIn.minor || {} : containerIn;\n var cOut = isMinor ? containerOut.minor : containerOut;\n var prefix = isMinor ? \"minor.\" : \"\";\n function readInput(attr) {\n var v = cIn[attr];\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n return v !== void 0 ? v : (cOut._template || {})[attr];\n }\n var _tick0 = readInput(\"tick0\");\n var _dtick = readInput(\"dtick\");\n var _tickvals = readInput(\"tickvals\");\n var tickmodeDefault = isArrayOrTypedArray(_tickvals) ? \"array\" : _dtick ? \"linear\" : \"auto\";\n var tickmode = coerce(prefix + \"tickmode\", tickmodeDefault);\n if (tickmode === \"auto\" || tickmode === \"sync\") {\n coerce(prefix + \"nticks\");\n } else if (tickmode === \"linear\") {\n var dtick = cOut.dtick = cleanTicks.dtick(\n _dtick,\n axType\n );\n cOut.tick0 = cleanTicks.tick0(\n _tick0,\n axType,\n containerOut.calendar,\n dtick\n );\n } else if (axType !== \"multicategory\") {\n var tickvals = coerce(prefix + \"tickvals\");\n if (tickvals === void 0) cOut.tickmode = \"auto\";\n else if (!isMinor) coerce(\"ticktext\");\n }\n };\n }\n });\n\n // src/plots/cartesian/tick_mark_defaults.js\n var require_tick_mark_defaults = __commonJS({\n \"src/plots/cartesian/tick_mark_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes4();\n module.exports = function handleTickMarkDefaults(containerIn, containerOut, coerce, options) {\n var isMinor = options.isMinor;\n var cIn = isMinor ? containerIn.minor || {} : containerIn;\n var cOut = isMinor ? containerOut.minor : containerOut;\n var lAttr = isMinor ? layoutAttributes.minor : layoutAttributes;\n var prefix = isMinor ? \"minor.\" : \"\";\n var tickLen = Lib.coerce2(cIn, cOut, lAttr, \"ticklen\", isMinor ? (containerOut.ticklen || 5) * 0.6 : void 0);\n var tickWidth = Lib.coerce2(cIn, cOut, lAttr, \"tickwidth\", isMinor ? containerOut.tickwidth || 1 : void 0);\n var tickColor = Lib.coerce2(cIn, cOut, lAttr, \"tickcolor\", (isMinor ? containerOut.tickcolor : void 0) || cOut.color);\n var showTicks = coerce(prefix + \"ticks\", !isMinor && options.outerTicks || tickLen || tickWidth || tickColor ? \"outside\" : \"\");\n if (!showTicks) {\n delete cOut.ticklen;\n delete cOut.tickwidth;\n delete cOut.tickcolor;\n }\n };\n }\n });\n\n // src/plots/cartesian/show_dflt.js\n var require_show_dflt = __commonJS({\n \"src/plots/cartesian/show_dflt.js\"(exports, module) {\n \"use strict\";\n module.exports = function getShowAttrDflt(containerIn) {\n var showAttrsAll = [\"showexponent\", \"showtickprefix\", \"showticksuffix\"];\n var showAttrs = showAttrsAll.filter(function(a) {\n return containerIn[a] !== void 0;\n });\n var sameVal = function(a) {\n return containerIn[a] === containerIn[showAttrs[0]];\n };\n if (showAttrs.every(sameVal) || showAttrs.length === 1) {\n return containerIn[showAttrs[0]];\n }\n };\n }\n });\n\n // src/plots/array_container_defaults.js\n var require_array_container_defaults = __commonJS({\n \"src/plots/array_container_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut, opts) {\n var name2 = opts.name;\n var inclusionAttr = opts.inclusionAttr || \"visible\";\n var previousContOut = parentObjOut[name2];\n var contIn = Lib.isArrayOrTypedArray(parentObjIn[name2]) ? parentObjIn[name2] : [];\n var contOut = parentObjOut[name2] = [];\n var templater = Template.arrayTemplater(parentObjOut, name2, inclusionAttr);\n var i, itemOut;\n for (i = 0; i < contIn.length; i++) {\n var itemIn = contIn[i];\n if (!Lib.isPlainObject(itemIn)) {\n itemOut = templater.newItem({});\n itemOut[inclusionAttr] = false;\n } else {\n itemOut = templater.newItem(itemIn);\n }\n itemOut._index = i;\n if (itemOut[inclusionAttr] !== false) {\n opts.handleItemDefaults(itemIn, itemOut, parentObjOut, opts);\n }\n contOut.push(itemOut);\n }\n var defaultItems = templater.defaultItems();\n for (i = 0; i < defaultItems.length; i++) {\n itemOut = defaultItems[i];\n itemOut._index = contOut.length;\n opts.handleItemDefaults({}, itemOut, parentObjOut, opts, {});\n contOut.push(itemOut);\n }\n if (Lib.isArrayOrTypedArray(previousContOut)) {\n var len = Math.min(previousContOut.length, contOut.length);\n for (i = 0; i < len; i++) {\n Lib.relinkPrivateKeys(contOut[i], previousContOut[i]);\n }\n }\n return contOut;\n };\n }\n });\n\n // src/plots/cartesian/tick_label_defaults.js\n var require_tick_label_defaults = __commonJS({\n \"src/plots/cartesian/tick_label_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var contrast = require_color().contrast;\n var layoutAttributes = require_layout_attributes4();\n var getShowAttrDflt = require_show_dflt();\n var handleArrayContainerDefaults = require_array_container_defaults();\n module.exports = function handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options) {\n if (!options) options = {};\n var labelalias = coerce(\"labelalias\");\n if (!Lib.isPlainObject(labelalias)) delete containerOut.labelalias;\n var showAttrDflt = getShowAttrDflt(containerIn);\n var showTickLabels = coerce(\"showticklabels\");\n if (showTickLabels) {\n if (!options.noTicklabelshift) {\n coerce(\"ticklabelshift\");\n }\n if (!options.noTicklabelstandoff) {\n coerce(\"ticklabelstandoff\");\n }\n var font = options.font || {};\n var contColor = containerOut.color;\n var position = containerOut.ticklabelposition || \"\";\n var dfltFontColor = position.indexOf(\"inside\") !== -1 ? contrast(options.bgColor) : (\n // as with title.font.color, inherit axis.color only if one was\n // explicitly provided\n contColor && contColor !== layoutAttributes.color.dflt ? contColor : font.color\n );\n Lib.coerceFont(coerce, \"tickfont\", font, { overrideDflt: {\n color: dfltFontColor\n } });\n if (!options.noTicklabelstep && axType !== \"multicategory\" && axType !== \"log\") {\n coerce(\"ticklabelstep\");\n }\n if (!options.noAng) {\n var tickAngle = coerce(\"tickangle\");\n if (!options.noAutotickangles && tickAngle === \"auto\") {\n coerce(\"autotickangles\");\n }\n }\n if (axType !== \"category\") {\n var tickFormat = coerce(\"tickformat\");\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: \"tickformatstops\",\n inclusionAttr: \"enabled\",\n handleItemDefaults: tickformatstopDefaults\n });\n if (!containerOut.tickformatstops.length) {\n delete containerOut.tickformatstops;\n }\n if (!options.noExp && !tickFormat && axType !== \"date\") {\n coerce(\"showexponent\", showAttrDflt);\n coerce(\"exponentformat\");\n coerce(\"minexponent\");\n coerce(\"separatethousands\");\n }\n }\n }\n };\n function tickformatstopDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, layoutAttributes.tickformatstops, attr, dflt);\n }\n var enabled = coerce(\"enabled\");\n if (enabled) {\n coerce(\"dtickrange\");\n coerce(\"value\");\n }\n }\n }\n });\n\n // src/plots/cartesian/prefix_suffix_defaults.js\n var require_prefix_suffix_defaults = __commonJS({\n \"src/plots/cartesian/prefix_suffix_defaults.js\"(exports, module) {\n \"use strict\";\n var getShowAttrDflt = require_show_dflt();\n module.exports = function handlePrefixSuffixDefaults(containerIn, containerOut, coerce, axType, options) {\n if (!options) options = {};\n var tickSuffixDflt = options.tickSuffixDflt;\n var showAttrDflt = getShowAttrDflt(containerIn);\n var tickPrefix = coerce(\"tickprefix\");\n if (tickPrefix) coerce(\"showtickprefix\", showAttrDflt);\n var tickSuffix = coerce(\"ticksuffix\", tickSuffixDflt);\n if (tickSuffix) coerce(\"showticksuffix\", showAttrDflt);\n };\n }\n });\n\n // src/components/colorbar/defaults.js\n var require_defaults = __commonJS({\n \"src/components/colorbar/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var attributes = require_attributes7();\n module.exports = function colorbarDefaults(containerIn, containerOut, layout) {\n var colorbarOut = Template.newContainer(containerOut, \"colorbar\");\n var colorbarIn = containerIn.colorbar || {};\n function coerce(attr, dflt) {\n return Lib.coerce(colorbarIn, colorbarOut, attributes, attr, dflt);\n }\n var margin = layout.margin || { t: 0, b: 0, l: 0, r: 0 };\n var w = layout.width - margin.l - margin.r;\n var h = layout.height - margin.t - margin.b;\n var orientation = coerce(\"orientation\");\n var isVertical = orientation === \"v\";\n var thicknessmode = coerce(\"thicknessmode\");\n coerce(\n \"thickness\",\n thicknessmode === \"fraction\" ? 30 / (isVertical ? w : h) : 30\n );\n var lenmode = coerce(\"lenmode\");\n coerce(\n \"len\",\n lenmode === \"fraction\" ? 1 : isVertical ? h : w\n );\n var yref = coerce(\"yref\");\n var xref = coerce(\"xref\");\n var isPaperY = yref === \"paper\";\n var isPaperX = xref === \"paper\";\n var defaultX, defaultY, defaultYAnchor;\n var defaultXAnchor = \"left\";\n if (isVertical) {\n defaultYAnchor = \"middle\";\n defaultXAnchor = isPaperX ? \"left\" : \"right\";\n defaultX = isPaperX ? 1.02 : 1;\n defaultY = 0.5;\n } else {\n defaultYAnchor = isPaperY ? \"bottom\" : \"top\";\n defaultXAnchor = \"center\";\n defaultX = 0.5;\n defaultY = isPaperY ? 1.02 : 1;\n }\n Lib.coerce(colorbarIn, colorbarOut, {\n x: {\n valType: \"number\",\n min: isPaperX ? -2 : 0,\n max: isPaperX ? 3 : 1,\n dflt: defaultX\n }\n }, \"x\");\n Lib.coerce(colorbarIn, colorbarOut, {\n y: {\n valType: \"number\",\n min: isPaperY ? -2 : 0,\n max: isPaperY ? 3 : 1,\n dflt: defaultY\n }\n }, \"y\");\n coerce(\"xanchor\", defaultXAnchor);\n coerce(\"xpad\");\n coerce(\"yanchor\", defaultYAnchor);\n coerce(\"ypad\");\n Lib.noneOrAll(colorbarIn, colorbarOut, [\"x\", \"y\"]);\n coerce(\"outlinecolor\");\n coerce(\"outlinewidth\");\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n coerce(\"bgcolor\");\n var ticklabelposition = Lib.coerce(colorbarIn, colorbarOut, {\n ticklabelposition: {\n valType: \"enumerated\",\n dflt: \"outside\",\n values: isVertical ? [\n \"outside\",\n \"inside\",\n \"outside top\",\n \"inside top\",\n \"outside bottom\",\n \"inside bottom\"\n ] : [\n \"outside\",\n \"inside\",\n \"outside left\",\n \"inside left\",\n \"outside right\",\n \"inside right\"\n ]\n }\n }, \"ticklabelposition\");\n coerce(\"ticklabeloverflow\", ticklabelposition.indexOf(\"inside\") !== -1 ? \"hide past domain\" : \"hide past div\");\n handleTickValueDefaults(colorbarIn, colorbarOut, coerce, \"linear\");\n var font = layout.font;\n var opts = {\n noAutotickangles: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true,\n outerTicks: false,\n font\n };\n if (ticklabelposition.indexOf(\"inside\") !== -1) {\n opts.bgColor = \"black\";\n }\n handlePrefixSuffixDefaults(colorbarIn, colorbarOut, coerce, \"linear\", opts);\n handleTickLabelDefaults(colorbarIn, colorbarOut, coerce, \"linear\", opts);\n handleTickMarkDefaults(colorbarIn, colorbarOut, coerce, \"linear\", opts);\n coerce(\"title.text\", layout._dfltTitle.colorbar);\n var tickFont = colorbarOut.showticklabels ? colorbarOut.tickfont : font;\n var dfltTitleFont = Lib.extendFlat({}, font, {\n family: tickFont.family,\n size: Lib.bigFont(tickFont.size)\n });\n Lib.coerceFont(coerce, \"title.font\", dfltTitleFont);\n coerce(\"title.side\", isVertical ? \"top\" : \"right\");\n };\n }\n });\n\n // src/components/colorscale/defaults.js\n var require_defaults2 = __commonJS({\n \"src/components/colorscale/defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var hasColorbar = require_has_colorbar();\n var colorbarDefaults = require_defaults();\n var isValidScale = require_scales().isValid;\n var traceIs = require_registry().traceIs;\n function npMaybe(parentCont, prefix) {\n var containerStr = prefix.slice(0, prefix.length - 1);\n return prefix ? Lib.nestedProperty(parentCont, containerStr).get() || {} : parentCont;\n }\n module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts) {\n var prefix = opts.prefix;\n var cLetter = opts.cLetter;\n var inTrace = \"_module\" in parentContOut;\n var containerIn = npMaybe(parentContIn, prefix);\n var containerOut = npMaybe(parentContOut, prefix);\n var template = npMaybe(parentContOut._template || {}, prefix) || {};\n var thisFn = function() {\n delete parentContIn.coloraxis;\n delete parentContOut.coloraxis;\n return colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts);\n };\n if (inTrace) {\n var colorAxes = layout._colorAxes || {};\n var colorAx = coerce(prefix + \"coloraxis\");\n if (colorAx) {\n var colorbarVisuals = traceIs(parentContOut, \"contour\") && Lib.nestedProperty(parentContOut, \"contours.coloring\").get() || \"heatmap\";\n var stash = colorAxes[colorAx];\n if (stash) {\n stash[2].push(thisFn);\n if (stash[0] !== colorbarVisuals) {\n stash[0] = false;\n Lib.warn([\n \"Ignoring coloraxis:\",\n colorAx,\n \"setting\",\n \"as it is linked to incompatible colorscales.\"\n ].join(\" \"));\n }\n } else {\n colorAxes[colorAx] = [colorbarVisuals, parentContOut, [thisFn]];\n }\n return;\n }\n }\n var minIn = containerIn[cLetter + \"min\"];\n var maxIn = containerIn[cLetter + \"max\"];\n var validMinMax = isNumeric(minIn) && isNumeric(maxIn) && minIn < maxIn;\n var auto = coerce(prefix + cLetter + \"auto\", !validMinMax);\n if (auto) {\n coerce(prefix + cLetter + \"mid\");\n } else {\n coerce(prefix + cLetter + \"min\");\n coerce(prefix + cLetter + \"max\");\n }\n var sclIn = containerIn.colorscale;\n var sclTemplate = template.colorscale;\n var autoColorscaleDflt;\n if (sclIn !== void 0) autoColorscaleDflt = !isValidScale(sclIn);\n if (sclTemplate !== void 0) autoColorscaleDflt = !isValidScale(sclTemplate);\n coerce(prefix + \"autocolorscale\", autoColorscaleDflt);\n coerce(prefix + \"colorscale\");\n coerce(prefix + \"reversescale\");\n if (prefix !== \"marker.line.\") {\n var showScaleDflt;\n if (prefix && inTrace) showScaleDflt = hasColorbar(containerIn);\n var showScale = coerce(prefix + \"showscale\", showScaleDflt);\n if (showScale) {\n if (prefix && template) containerOut._template = template;\n colorbarDefaults(containerIn, containerOut, layout);\n }\n }\n };\n }\n });\n\n // src/components/colorscale/layout_defaults.js\n var require_layout_defaults = __commonJS({\n \"src/components/colorscale/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n var colorScaleAttrs = require_layout_attributes5();\n var colorScaleDefaults = require_defaults2();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, colorScaleAttrs, attr, dflt);\n }\n coerce(\"colorscale.sequential\");\n coerce(\"colorscale.sequentialminus\");\n coerce(\"colorscale.diverging\");\n var colorAxes = layoutOut._colorAxes;\n var colorAxIn, colorAxOut;\n function coerceAx(attr, dflt) {\n return Lib.coerce(colorAxIn, colorAxOut, colorScaleAttrs.coloraxis, attr, dflt);\n }\n for (var k in colorAxes) {\n var stash = colorAxes[k];\n if (stash[0]) {\n colorAxIn = layoutIn[k] || {};\n colorAxOut = Template.newContainer(layoutOut, k, \"coloraxis\");\n colorAxOut._name = k;\n colorScaleDefaults(colorAxIn, colorAxOut, layoutOut, coerceAx, { prefix: \"\", cLetter: \"c\" });\n } else {\n for (var i = 0; i < stash[2].length; i++) {\n stash[2][i]();\n }\n delete layoutOut._colorAxes[k];\n }\n }\n };\n }\n });\n\n // src/components/colorscale/cross_trace_defaults.js\n var require_cross_trace_defaults = __commonJS({\n \"src/components/colorscale/cross_trace_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var hasColorscale = require_helpers().hasColorscale;\n var extractOpts = require_helpers().extractOpts;\n module.exports = function crossTraceDefaults(fullData, fullLayout) {\n function replace(cont, k2) {\n var val = cont[\"_\" + k2];\n if (val !== void 0) {\n cont[k2] = val;\n }\n }\n function relinkColorAttrs(outerCont, cbOpt) {\n var cont = cbOpt.container ? Lib.nestedProperty(outerCont, cbOpt.container).get() : outerCont;\n if (cont) {\n if (cont.coloraxis) {\n cont._colorAx = fullLayout[cont.coloraxis];\n } else {\n var cOpts = extractOpts(cont);\n var isAuto = cOpts.auto;\n if (isAuto || cOpts.min === void 0) {\n replace(cont, cbOpt.min);\n }\n if (isAuto || cOpts.max === void 0) {\n replace(cont, cbOpt.max);\n }\n if (cOpts.autocolorscale) {\n replace(cont, \"colorscale\");\n }\n }\n }\n }\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n var cbOpts = trace._module.colorbar;\n if (cbOpts) {\n if (Array.isArray(cbOpts)) {\n for (var j = 0; j < cbOpts.length; j++) {\n relinkColorAttrs(trace, cbOpts[j]);\n }\n } else {\n relinkColorAttrs(trace, cbOpts);\n }\n }\n if (hasColorscale(trace, \"marker.line\")) {\n relinkColorAttrs(trace, {\n container: \"marker.line\",\n min: \"cmin\",\n max: \"cmax\"\n });\n }\n }\n for (var k in fullLayout._colorAxes) {\n relinkColorAttrs(fullLayout[k], { min: \"cmin\", max: \"cmax\" });\n }\n };\n }\n });\n\n // src/components/colorscale/calc.js\n var require_calc = __commonJS({\n \"src/components/colorscale/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var extractOpts = require_helpers().extractOpts;\n module.exports = function calc(gd, trace, opts) {\n var fullLayout = gd._fullLayout;\n var vals = opts.vals;\n var containerStr = opts.containerStr;\n var container = containerStr ? Lib.nestedProperty(trace, containerStr).get() : trace;\n var cOpts = extractOpts(container);\n var auto = cOpts.auto !== false;\n var min = cOpts.min;\n var max = cOpts.max;\n var mid = cOpts.mid;\n var minVal = function() {\n return Lib.aggNums(Math.min, null, vals);\n };\n var maxVal = function() {\n return Lib.aggNums(Math.max, null, vals);\n };\n if (min === void 0) {\n min = minVal();\n } else if (auto) {\n if (container._colorAx && isNumeric(min)) {\n min = Math.min(min, minVal());\n } else {\n min = minVal();\n }\n }\n if (max === void 0) {\n max = maxVal();\n } else if (auto) {\n if (container._colorAx && isNumeric(max)) {\n max = Math.max(max, maxVal());\n } else {\n max = maxVal();\n }\n }\n if (auto && mid !== void 0) {\n if (max - mid > mid - min) {\n min = mid - (max - mid);\n } else if (max - mid < mid - min) {\n max = mid + (mid - min);\n }\n }\n if (min === max) {\n min -= 0.5;\n max += 0.5;\n }\n cOpts._sync(\"min\", min);\n cOpts._sync(\"max\", max);\n if (cOpts.autocolorscale) {\n var scl;\n if (min * max < 0) scl = fullLayout.colorscale.diverging;\n else if (min >= 0) scl = fullLayout.colorscale.sequential;\n else scl = fullLayout.colorscale.sequentialminus;\n cOpts._sync(\"colorscale\", scl);\n }\n };\n }\n });\n\n // src/components/colorscale/index.js\n var require_colorscale = __commonJS({\n \"src/components/colorscale/index.js\"(exports, module) {\n \"use strict\";\n var scales = require_scales();\n var helpers = require_helpers();\n module.exports = {\n moduleType: \"component\",\n name: \"colorscale\",\n attributes: require_attributes8(),\n layoutAttributes: require_layout_attributes5(),\n supplyLayoutDefaults: require_layout_defaults(),\n handleDefaults: require_defaults2(),\n crossTraceDefaults: require_cross_trace_defaults(),\n calc: require_calc(),\n // ./scales.js is required in lib/coerce.js ;\n // it needs to be a separate module to avoid a circular dependency\n scales: scales.scales,\n defaultScale: scales.defaultScale,\n getScale: scales.get,\n isValidScale: scales.isValid,\n hasColorscale: helpers.hasColorscale,\n extractOpts: helpers.extractOpts,\n extractScale: helpers.extractScale,\n flipScale: helpers.flipScale,\n makeColorScaleFunc: helpers.makeColorScaleFunc,\n makeColorScaleFuncFromTrace: helpers.makeColorScaleFuncFromTrace\n };\n }\n });\n\n // src/traces/scatter/subtypes.js\n var require_subtypes = __commonJS({\n \"src/traces/scatter/subtypes.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var isTypedArraySpec = require_array().isTypedArraySpec;\n module.exports = {\n hasLines: function(trace) {\n return trace.visible && trace.mode && trace.mode.indexOf(\"lines\") !== -1;\n },\n hasMarkers: function(trace) {\n return trace.visible && (trace.mode && trace.mode.indexOf(\"markers\") !== -1 || // until splom implements 'mode'\n trace.type === \"splom\");\n },\n hasText: function(trace) {\n return trace.visible && trace.mode && trace.mode.indexOf(\"text\") !== -1;\n },\n isBubble: function(trace) {\n var marker = trace.marker;\n return Lib.isPlainObject(marker) && (Lib.isArrayOrTypedArray(marker.size) || isTypedArraySpec(marker.size));\n }\n };\n }\n });\n\n // src/traces/scatter/make_bubble_size_func.js\n var require_make_bubble_size_func = __commonJS({\n \"src/traces/scatter/make_bubble_size_func.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n module.exports = function makeBubbleSizeFn(trace, factor) {\n if (!factor) {\n factor = 2;\n }\n var marker = trace.marker;\n var sizeRef = marker.sizeref || 1;\n var sizeMin = marker.sizemin || 0;\n var baseFn = marker.sizemode === \"area\" ? function(v) {\n return Math.sqrt(v / sizeRef);\n } : function(v) {\n return v / sizeRef;\n };\n return function(v) {\n var baseSize = baseFn(v / factor);\n return isNumeric(baseSize) && baseSize > 0 ? Math.max(baseSize, sizeMin) : 0;\n };\n };\n }\n });\n\n // src/components/fx/helpers.js\n var require_helpers2 = __commonJS({\n \"src/components/fx/helpers.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n exports.getSubplot = function(trace) {\n return trace.subplot || trace.xaxis + trace.yaxis || trace.geo;\n };\n exports.isTraceInSubplots = function(trace, subplots) {\n if (trace.type === \"splom\") {\n var xaxes = trace.xaxes || [];\n var yaxes = trace.yaxes || [];\n for (var i = 0; i < xaxes.length; i++) {\n for (var j = 0; j < yaxes.length; j++) {\n if (subplots.indexOf(xaxes[i] + yaxes[j]) !== -1) {\n return true;\n }\n }\n }\n return false;\n }\n return subplots.indexOf(exports.getSubplot(trace)) !== -1;\n };\n exports.flat = function(subplots, v) {\n var out = new Array(subplots.length);\n for (var i = 0; i < subplots.length; i++) {\n out[i] = v;\n }\n return out;\n };\n exports.p2c = function(axArray, v) {\n var out = new Array(axArray.length);\n for (var i = 0; i < axArray.length; i++) {\n out[i] = axArray[i].p2c(v);\n }\n return out;\n };\n exports.getDistanceFunction = function(mode, dx, dy, dxy) {\n if (mode === \"closest\") return dxy || exports.quadrature(dx, dy);\n return mode.charAt(0) === \"x\" ? dx : dy;\n };\n exports.getClosest = function(cd, distfn, pointData) {\n if (pointData.index !== false) {\n if (pointData.index >= 0 && pointData.index < cd.length) {\n pointData.distance = 0;\n } else pointData.index = false;\n } else {\n var newDistance = Infinity;\n var len = cd.length;\n for (var i = 0; i < len; i++) {\n newDistance = distfn(cd[i]);\n if (newDistance <= pointData.distance) {\n pointData.index = i;\n pointData.distance = newDistance;\n }\n }\n }\n return pointData;\n };\n exports.inbox = function(v0, v1, passVal) {\n return v0 * v1 < 0 || v0 === 0 ? passVal : Infinity;\n };\n exports.quadrature = function(dx, dy) {\n return function(di) {\n var x = dx(di);\n var y = dy(di);\n return Math.sqrt(x * x + y * y);\n };\n };\n exports.makeEventData = function(pt, trace, cd) {\n var pointNumber = \"index\" in pt ? pt.index : pt.pointNumber;\n var out = {\n data: trace._input,\n fullData: trace,\n curveNumber: trace.index,\n pointNumber\n };\n if (trace._indexToPoints) {\n var pointIndices = trace._indexToPoints[pointNumber];\n if (pointIndices.length === 1) {\n out.pointIndex = pointIndices[0];\n } else {\n out.pointIndices = pointIndices;\n }\n } else {\n out.pointIndex = pointNumber;\n }\n if (trace._module.eventData) {\n out = trace._module.eventData(out, pt, trace, cd, pointNumber);\n } else {\n if (\"xVal\" in pt) out.x = pt.xVal;\n else if (\"x\" in pt) out.x = pt.x;\n if (\"yVal\" in pt) out.y = pt.yVal;\n else if (\"y\" in pt) out.y = pt.y;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n if (pt.zLabelVal !== void 0) out.z = pt.zLabelVal;\n }\n exports.appendArrayPointValue(out, trace, pointNumber);\n return out;\n };\n exports.appendArrayPointValue = function(pointData, trace, pointNumber) {\n var arrayAttrs = trace._arrayAttrs;\n if (!arrayAttrs) {\n return;\n }\n for (var i = 0; i < arrayAttrs.length; i++) {\n var astr = arrayAttrs[i];\n var key = getPointKey(astr);\n if (pointData[key] === void 0) {\n var val = Lib.nestedProperty(trace, astr).get();\n var pointVal = getPointData(val, pointNumber);\n if (pointVal !== void 0) pointData[key] = pointVal;\n }\n }\n };\n exports.appendArrayMultiPointValues = function(pointData, trace, pointNumbers) {\n var arrayAttrs = trace._arrayAttrs;\n if (!arrayAttrs) {\n return;\n }\n for (var i = 0; i < arrayAttrs.length; i++) {\n var astr = arrayAttrs[i];\n var key = getPointKey(astr);\n if (pointData[key] === void 0) {\n var val = Lib.nestedProperty(trace, astr).get();\n var keyVal = new Array(pointNumbers.length);\n for (var j = 0; j < pointNumbers.length; j++) {\n keyVal[j] = getPointData(val, pointNumbers[j]);\n }\n pointData[key] = keyVal;\n }\n }\n };\n var pointKeyMap = {\n ids: \"id\",\n locations: \"location\",\n labels: \"label\",\n values: \"value\",\n \"marker.colors\": \"color\",\n parents: \"parent\"\n };\n function getPointKey(astr) {\n return pointKeyMap[astr] || astr;\n }\n function getPointData(val, pointNumber) {\n if (Array.isArray(pointNumber)) {\n if (Array.isArray(val) && Array.isArray(val[pointNumber[0]])) {\n return val[pointNumber[0]][pointNumber[1]];\n }\n } else {\n return val[pointNumber];\n }\n }\n var xyHoverMode = {\n x: true,\n y: true\n };\n var unifiedHoverMode = {\n \"x unified\": true,\n \"y unified\": true\n };\n exports.isUnifiedHover = function(hovermode) {\n if (typeof hovermode !== \"string\") return false;\n return !!unifiedHoverMode[hovermode];\n };\n exports.isXYhover = function(hovermode) {\n if (typeof hovermode !== \"string\") return false;\n return !!xyHoverMode[hovermode];\n };\n }\n });\n\n // node_modules/parse-svg-path/index.js\n var require_parse_svg_path = __commonJS({\n \"node_modules/parse-svg-path/index.js\"(exports, module) {\n module.exports = parse2;\n var length = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0 };\n var segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig;\n function parse2(path) {\n var data = [];\n path.replace(segment, function(_, command, args) {\n var type = command.toLowerCase();\n args = parseValues(args);\n if (type == \"m\" && args.length > 2) {\n data.push([command].concat(args.splice(0, 2)));\n type = \"l\";\n command = command == \"m\" ? \"l\" : \"L\";\n }\n while (true) {\n if (args.length == length[type]) {\n args.unshift(command);\n return data.push(args);\n }\n if (args.length < length[type]) throw new Error(\"malformed path data\");\n data.push([command].concat(args.splice(0, length[type])));\n }\n });\n return data;\n }\n var number = /-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/ig;\n function parseValues(args) {\n var numbers = args.match(number);\n return numbers ? numbers.map(Number) : [];\n }\n }\n });\n\n // src/components/drawing/symbol_defs.js\n var require_symbol_defs = __commonJS({\n \"src/components/drawing/symbol_defs.js\"(exports, module) {\n \"use strict\";\n var parseSvgPath = require_parse_svg_path();\n var round = (\n // require('@plotly/d3').round;\n function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n }\n );\n var emptyPath = \"M0,0Z\";\n var sqrt2 = Math.sqrt(2);\n var sqrt3 = Math.sqrt(3);\n var PI = Math.PI;\n var cos = Math.cos;\n var sin = Math.sin;\n module.exports = {\n circle: {\n n: 0,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n var circle = \"M\" + rs + \",0A\" + rs + \",\" + rs + \" 0 1,1 0,-\" + rs + \"A\" + rs + \",\" + rs + \" 0 0,1 \" + rs + \",0Z\";\n return standoff ? align(angle, standoff, circle) : circle;\n }\n },\n square: {\n n: 1,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + rs + \",\" + rs + \"H-\" + rs + \"V-\" + rs + \"H\" + rs + \"Z\");\n }\n },\n diamond: {\n n: 2,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rd = round(r * 1.3, 2);\n return align(angle, standoff, \"M\" + rd + \",0L0,\" + rd + \"L-\" + rd + \",0L0,-\" + rd + \"Z\");\n }\n },\n cross: {\n n: 3,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 0.4, 2);\n var rc2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M\" + rc2 + \",\" + rc + \"H\" + rc + \"V\" + rc2 + \"H-\" + rc + \"V\" + rc + \"H-\" + rc2 + \"V-\" + rc + \"H-\" + rc + \"V-\" + rc2 + \"H\" + rc + \"V-\" + rc + \"H\" + rc2 + \"Z\");\n }\n },\n x: {\n n: 4,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 0.8 / sqrt2, 2);\n var ne = \"l\" + rx + \",\" + rx;\n var se = \"l\" + rx + \",-\" + rx;\n var sw = \"l-\" + rx + \",-\" + rx;\n var nw = \"l-\" + rx + \",\" + rx;\n return align(angle, standoff, \"M0,\" + rx + ne + se + sw + se + sw + nw + sw + nw + ne + nw + ne + \"Z\");\n }\n },\n \"triangle-up\": {\n n: 5,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rt = round(r * 2 / sqrt3, 2);\n var r2 = round(r / 2, 2);\n var rs = round(r, 2);\n return align(angle, standoff, \"M-\" + rt + \",\" + r2 + \"H\" + rt + \"L0,-\" + rs + \"Z\");\n }\n },\n \"triangle-down\": {\n n: 6,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rt = round(r * 2 / sqrt3, 2);\n var r2 = round(r / 2, 2);\n var rs = round(r, 2);\n return align(angle, standoff, \"M-\" + rt + \",-\" + r2 + \"H\" + rt + \"L0,\" + rs + \"Z\");\n }\n },\n \"triangle-left\": {\n n: 7,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rt = round(r * 2 / sqrt3, 2);\n var r2 = round(r / 2, 2);\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + r2 + \",-\" + rt + \"V\" + rt + \"L-\" + rs + \",0Z\");\n }\n },\n \"triangle-right\": {\n n: 8,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rt = round(r * 2 / sqrt3, 2);\n var r2 = round(r / 2, 2);\n var rs = round(r, 2);\n return align(angle, standoff, \"M-\" + r2 + \",-\" + rt + \"V\" + rt + \"L\" + rs + \",0Z\");\n }\n },\n \"triangle-ne\": {\n n: 9,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r * 0.6, 2);\n var r2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M-\" + r2 + \",-\" + r1 + \"H\" + r1 + \"V\" + r2 + \"Z\");\n }\n },\n \"triangle-se\": {\n n: 10,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r * 0.6, 2);\n var r2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M\" + r1 + \",-\" + r2 + \"V\" + r1 + \"H-\" + r2 + \"Z\");\n }\n },\n \"triangle-sw\": {\n n: 11,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r * 0.6, 2);\n var r2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M\" + r2 + \",\" + r1 + \"H-\" + r1 + \"V-\" + r2 + \"Z\");\n }\n },\n \"triangle-nw\": {\n n: 12,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r * 0.6, 2);\n var r2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M-\" + r1 + \",\" + r2 + \"V-\" + r1 + \"H\" + r2 + \"Z\");\n }\n },\n pentagon: {\n n: 13,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x1 = round(r * 0.951, 2);\n var x2 = round(r * 0.588, 2);\n var y0 = round(-r, 2);\n var y1 = round(r * -0.309, 2);\n var y2 = round(r * 0.809, 2);\n return align(angle, standoff, \"M\" + x1 + \",\" + y1 + \"L\" + x2 + \",\" + y2 + \"H-\" + x2 + \"L-\" + x1 + \",\" + y1 + \"L0,\" + y0 + \"Z\");\n }\n },\n hexagon: {\n n: 14,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var y0 = round(r, 2);\n var y1 = round(r / 2, 2);\n var x = round(r * sqrt3 / 2, 2);\n return align(angle, standoff, \"M\" + x + \",-\" + y1 + \"V\" + y1 + \"L0,\" + y0 + \"L-\" + x + \",\" + y1 + \"V-\" + y1 + \"L0,-\" + y0 + \"Z\");\n }\n },\n hexagon2: {\n n: 15,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x0 = round(r, 2);\n var x1 = round(r / 2, 2);\n var y = round(r * sqrt3 / 2, 2);\n return align(angle, standoff, \"M-\" + x1 + \",\" + y + \"H\" + x1 + \"L\" + x0 + \",0L\" + x1 + \",-\" + y + \"H-\" + x1 + \"L-\" + x0 + \",0Z\");\n }\n },\n octagon: {\n n: 16,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var a = round(r * 0.924, 2);\n var b = round(r * 0.383, 2);\n return align(angle, standoff, \"M-\" + b + \",-\" + a + \"H\" + b + \"L\" + a + \",-\" + b + \"V\" + b + \"L\" + b + \",\" + a + \"H-\" + b + \"L-\" + a + \",\" + b + \"V-\" + b + \"Z\");\n }\n },\n star: {\n n: 17,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = r * 1.4;\n var x1 = round(rs * 0.225, 2);\n var x2 = round(rs * 0.951, 2);\n var x3 = round(rs * 0.363, 2);\n var x4 = round(rs * 0.588, 2);\n var y0 = round(-rs, 2);\n var y1 = round(rs * -0.309, 2);\n var y3 = round(rs * 0.118, 2);\n var y4 = round(rs * 0.809, 2);\n var y5 = round(rs * 0.382, 2);\n return align(angle, standoff, \"M\" + x1 + \",\" + y1 + \"H\" + x2 + \"L\" + x3 + \",\" + y3 + \"L\" + x4 + \",\" + y4 + \"L0,\" + y5 + \"L-\" + x4 + \",\" + y4 + \"L-\" + x3 + \",\" + y3 + \"L-\" + x2 + \",\" + y1 + \"H-\" + x1 + \"L0,\" + y0 + \"Z\");\n }\n },\n hexagram: {\n n: 18,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var y = round(r * 0.66, 2);\n var x1 = round(r * 0.38, 2);\n var x2 = round(r * 0.76, 2);\n return align(angle, standoff, \"M-\" + x2 + \",0l-\" + x1 + \",-\" + y + \"h\" + x2 + \"l\" + x1 + \",-\" + y + \"l\" + x1 + \",\" + y + \"h\" + x2 + \"l-\" + x1 + \",\" + y + \"l\" + x1 + \",\" + y + \"h-\" + x2 + \"l-\" + x1 + \",\" + y + \"l-\" + x1 + \",-\" + y + \"h-\" + x2 + \"Z\");\n }\n },\n \"star-triangle-up\": {\n n: 19,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * sqrt3 * 0.8, 2);\n var y1 = round(r * 0.8, 2);\n var y2 = round(r * 1.6, 2);\n var rc = round(r * 4, 2);\n var aPart = \"A \" + rc + \",\" + rc + \" 0 0 1 \";\n return align(angle, standoff, \"M-\" + x + \",\" + y1 + aPart + x + \",\" + y1 + aPart + \"0,-\" + y2 + aPart + \"-\" + x + \",\" + y1 + \"Z\");\n }\n },\n \"star-triangle-down\": {\n n: 20,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * sqrt3 * 0.8, 2);\n var y1 = round(r * 0.8, 2);\n var y2 = round(r * 1.6, 2);\n var rc = round(r * 4, 2);\n var aPart = \"A \" + rc + \",\" + rc + \" 0 0 1 \";\n return align(angle, standoff, \"M\" + x + \",-\" + y1 + aPart + \"-\" + x + \",-\" + y1 + aPart + \"0,\" + y2 + aPart + x + \",-\" + y1 + \"Z\");\n }\n },\n \"star-square\": {\n n: 21,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rp = round(r * 1.1, 2);\n var rc = round(r * 2, 2);\n var aPart = \"A \" + rc + \",\" + rc + \" 0 0 1 \";\n return align(angle, standoff, \"M-\" + rp + \",-\" + rp + aPart + \"-\" + rp + \",\" + rp + aPart + rp + \",\" + rp + aPart + rp + \",-\" + rp + aPart + \"-\" + rp + \",-\" + rp + \"Z\");\n }\n },\n \"star-diamond\": {\n n: 22,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rp = round(r * 1.4, 2);\n var rc = round(r * 1.9, 2);\n var aPart = \"A \" + rc + \",\" + rc + \" 0 0 1 \";\n return align(angle, standoff, \"M-\" + rp + \",0\" + aPart + \"0,\" + rp + aPart + rp + \",0\" + aPart + \"0,-\" + rp + aPart + \"-\" + rp + \",0Z\");\n }\n },\n \"diamond-tall\": {\n n: 23,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * 0.7, 2);\n var y = round(r * 1.4, 2);\n return align(angle, standoff, \"M0,\" + y + \"L\" + x + \",0L0,-\" + y + \"L-\" + x + \",0Z\");\n }\n },\n \"diamond-wide\": {\n n: 24,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * 1.4, 2);\n var y = round(r * 0.7, 2);\n return align(angle, standoff, \"M0,\" + y + \"L\" + x + \",0L0,-\" + y + \"L-\" + x + \",0Z\");\n }\n },\n hourglass: {\n n: 25,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + rs + \",\" + rs + \"H-\" + rs + \"L\" + rs + \",-\" + rs + \"H-\" + rs + \"Z\");\n },\n noDot: true\n },\n bowtie: {\n n: 26,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + rs + \",\" + rs + \"V-\" + rs + \"L-\" + rs + \",\" + rs + \"V-\" + rs + \"Z\");\n },\n noDot: true\n },\n \"circle-cross\": {\n n: 27,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M0,\" + rs + \"V-\" + rs + \"M\" + rs + \",0H-\" + rs + \"M\" + rs + \",0A\" + rs + \",\" + rs + \" 0 1,1 0,-\" + rs + \"A\" + rs + \",\" + rs + \" 0 0,1 \" + rs + \",0Z\");\n },\n needLine: true,\n noDot: true\n },\n \"circle-x\": {\n n: 28,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n var rc = round(r / sqrt2, 2);\n return align(angle, standoff, \"M\" + rc + \",\" + rc + \"L-\" + rc + \",-\" + rc + \"M\" + rc + \",-\" + rc + \"L-\" + rc + \",\" + rc + \"M\" + rs + \",0A\" + rs + \",\" + rs + \" 0 1,1 0,-\" + rs + \"A\" + rs + \",\" + rs + \" 0 0,1 \" + rs + \",0Z\");\n },\n needLine: true,\n noDot: true\n },\n \"square-cross\": {\n n: 29,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M0,\" + rs + \"V-\" + rs + \"M\" + rs + \",0H-\" + rs + \"M\" + rs + \",\" + rs + \"H-\" + rs + \"V-\" + rs + \"H\" + rs + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n \"square-x\": {\n n: 30,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + rs + \",\" + rs + \"L-\" + rs + \",-\" + rs + \"M\" + rs + \",-\" + rs + \"L-\" + rs + \",\" + rs + \"M\" + rs + \",\" + rs + \"H-\" + rs + \"V-\" + rs + \"H\" + rs + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n \"diamond-cross\": {\n n: 31,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rd = round(r * 1.3, 2);\n return align(angle, standoff, \"M\" + rd + \",0L0,\" + rd + \"L-\" + rd + \",0L0,-\" + rd + \"ZM0,-\" + rd + \"V\" + rd + \"M-\" + rd + \",0H\" + rd);\n },\n needLine: true,\n noDot: true\n },\n \"diamond-x\": {\n n: 32,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rd = round(r * 1.3, 2);\n var r2 = round(r * 0.65, 2);\n return align(angle, standoff, \"M\" + rd + \",0L0,\" + rd + \"L-\" + rd + \",0L0,-\" + rd + \"ZM-\" + r2 + \",-\" + r2 + \"L\" + r2 + \",\" + r2 + \"M-\" + r2 + \",\" + r2 + \"L\" + r2 + \",-\" + r2);\n },\n needLine: true,\n noDot: true\n },\n \"cross-thin\": {\n n: 33,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 1.4, 2);\n return align(angle, standoff, \"M0,\" + rc + \"V-\" + rc + \"M\" + rc + \",0H-\" + rc);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"x-thin\": {\n n: 34,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n return align(angle, standoff, \"M\" + rx + \",\" + rx + \"L-\" + rx + \",-\" + rx + \"M\" + rx + \",-\" + rx + \"L-\" + rx + \",\" + rx);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n asterisk: {\n n: 35,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 1.2, 2);\n var rs = round(r * 0.85, 2);\n return align(angle, standoff, \"M0,\" + rc + \"V-\" + rc + \"M\" + rc + \",0H-\" + rc + \"M\" + rs + \",\" + rs + \"L-\" + rs + \",-\" + rs + \"M\" + rs + \",-\" + rs + \"L-\" + rs + \",\" + rs);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n hash: {\n n: 36,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r / 2, 2);\n var r2 = round(r, 2);\n return align(angle, standoff, \"M\" + r1 + \",\" + r2 + \"V-\" + r2 + \"M\" + (r1 - r2) + \",-\" + r2 + \"V\" + r2 + \"M\" + r2 + \",\" + r1 + \"H-\" + r2 + \"M-\" + r2 + \",\" + (r1 - r2) + \"H\" + r2);\n },\n needLine: true,\n noFill: true\n },\n \"y-up\": {\n n: 37,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * 1.2, 2);\n var y0 = round(r * 1.6, 2);\n var y1 = round(r * 0.8, 2);\n return align(angle, standoff, \"M-\" + x + \",\" + y1 + \"L0,0M\" + x + \",\" + y1 + \"L0,0M0,-\" + y0 + \"L0,0\");\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"y-down\": {\n n: 38,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * 1.2, 2);\n var y0 = round(r * 1.6, 2);\n var y1 = round(r * 0.8, 2);\n return align(angle, standoff, \"M-\" + x + \",-\" + y1 + \"L0,0M\" + x + \",-\" + y1 + \"L0,0M0,\" + y0 + \"L0,0\");\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"y-left\": {\n n: 39,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var y = round(r * 1.2, 2);\n var x0 = round(r * 1.6, 2);\n var x1 = round(r * 0.8, 2);\n return align(angle, standoff, \"M\" + x1 + \",\" + y + \"L0,0M\" + x1 + \",-\" + y + \"L0,0M-\" + x0 + \",0L0,0\");\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"y-right\": {\n n: 40,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var y = round(r * 1.2, 2);\n var x0 = round(r * 1.6, 2);\n var x1 = round(r * 0.8, 2);\n return align(angle, standoff, \"M-\" + x1 + \",\" + y + \"L0,0M-\" + x1 + \",-\" + y + \"L0,0M\" + x0 + \",0L0,0\");\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"line-ew\": {\n n: 41,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 1.4, 2);\n return align(angle, standoff, \"M\" + rc + \",0H-\" + rc);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"line-ns\": {\n n: 42,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 1.4, 2);\n return align(angle, standoff, \"M0,\" + rc + \"V-\" + rc);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"line-ne\": {\n n: 43,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n return align(angle, standoff, \"M\" + rx + \",-\" + rx + \"L-\" + rx + \",\" + rx);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"line-nw\": {\n n: 44,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n return align(angle, standoff, \"M\" + rx + \",\" + rx + \"L-\" + rx + \",-\" + rx);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"arrow-up\": {\n n: 45,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n var ry = round(r * 2, 2);\n return align(angle, standoff, \"M0,0L-\" + rx + \",\" + ry + \"H\" + rx + \"Z\");\n },\n backoff: 1,\n noDot: true\n },\n \"arrow-down\": {\n n: 46,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n var ry = round(r * 2, 2);\n return align(angle, standoff, \"M0,0L-\" + rx + \",-\" + ry + \"H\" + rx + \"Z\");\n },\n noDot: true\n },\n \"arrow-left\": {\n n: 47,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 2, 2);\n var ry = round(r, 2);\n return align(angle, standoff, \"M0,0L\" + rx + \",-\" + ry + \"V\" + ry + \"Z\");\n },\n noDot: true\n },\n \"arrow-right\": {\n n: 48,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 2, 2);\n var ry = round(r, 2);\n return align(angle, standoff, \"M0,0L-\" + rx + \",-\" + ry + \"V\" + ry + \"Z\");\n },\n noDot: true\n },\n \"arrow-bar-up\": {\n n: 49,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n var ry = round(r * 2, 2);\n return align(angle, standoff, \"M-\" + rx + \",0H\" + rx + \"M0,0L-\" + rx + \",\" + ry + \"H\" + rx + \"Z\");\n },\n backoff: 1,\n needLine: true,\n noDot: true\n },\n \"arrow-bar-down\": {\n n: 50,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n var ry = round(r * 2, 2);\n return align(angle, standoff, \"M-\" + rx + \",0H\" + rx + \"M0,0L-\" + rx + \",-\" + ry + \"H\" + rx + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n \"arrow-bar-left\": {\n n: 51,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 2, 2);\n var ry = round(r, 2);\n return align(angle, standoff, \"M0,-\" + ry + \"V\" + ry + \"M0,0L\" + rx + \",-\" + ry + \"V\" + ry + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n \"arrow-bar-right\": {\n n: 52,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 2, 2);\n var ry = round(r, 2);\n return align(angle, standoff, \"M0,-\" + ry + \"V\" + ry + \"M0,0L-\" + rx + \",-\" + ry + \"V\" + ry + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n arrow: {\n n: 53,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var headAngle = PI / 2.5;\n var x = 2 * r * cos(headAngle);\n var y = 2 * r * sin(headAngle);\n return align(\n angle,\n standoff,\n \"M0,0L\" + -x + \",\" + y + \"L\" + x + \",\" + y + \"Z\"\n );\n },\n backoff: 0.9,\n noDot: true\n },\n \"arrow-wide\": {\n n: 54,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var headAngle = PI / 4;\n var x = 2 * r * cos(headAngle);\n var y = 2 * r * sin(headAngle);\n return align(\n angle,\n standoff,\n \"M0,0L\" + -x + \",\" + y + \"A \" + 2 * r + \",\" + 2 * r + \" 0 0 1 \" + x + \",\" + y + \"Z\"\n );\n },\n backoff: 0.4,\n noDot: true\n }\n };\n function skipAngle(angle) {\n return angle === null;\n }\n var lastPathIn;\n var lastPathOut;\n var lastAngle;\n var lastStandoff;\n function align(angle, standoff, path) {\n if ((!angle || angle % 360 === 0) && !standoff) return path;\n if (lastAngle === angle && lastStandoff === standoff && lastPathIn === path) return lastPathOut;\n lastAngle = angle;\n lastStandoff = standoff;\n lastPathIn = path;\n function rotate(t4, xy) {\n var cosT = cos(t4);\n var sinT = sin(t4);\n var x2 = xy[0];\n var y2 = xy[1] + (standoff || 0);\n return [\n x2 * cosT - y2 * sinT,\n x2 * sinT + y2 * cosT\n ];\n }\n var t = angle / 180 * PI;\n var x = 0;\n var y = 0;\n var cmd = parseSvgPath(path);\n var str = \"\";\n for (var i = 0; i < cmd.length; i++) {\n var cmdI = cmd[i];\n var op = cmdI[0];\n var x0 = x;\n var y0 = y;\n if (op === \"M\" || op === \"L\") {\n x = +cmdI[1];\n y = +cmdI[2];\n } else if (op === \"m\" || op === \"l\") {\n x += +cmdI[1];\n y += +cmdI[2];\n } else if (op === \"H\") {\n x = +cmdI[1];\n } else if (op === \"h\") {\n x += +cmdI[1];\n } else if (op === \"V\") {\n y = +cmdI[1];\n } else if (op === \"v\") {\n y += +cmdI[1];\n } else if (op === \"A\") {\n x = +cmdI[1];\n y = +cmdI[2];\n var E2 = rotate(t, [+cmdI[6], +cmdI[7]]);\n cmdI[6] = E2[0];\n cmdI[7] = E2[1];\n cmdI[3] = +cmdI[3] + angle;\n }\n if (op === \"H\" || op === \"V\") op = \"L\";\n if (op === \"h\" || op === \"v\") op = \"l\";\n if (op === \"m\" || op === \"l\") {\n x -= x0;\n y -= y0;\n }\n var B2 = rotate(t, [x, y]);\n if (op === \"H\" || op === \"V\") op = \"L\";\n if (op === \"M\" || op === \"L\" || op === \"m\" || op === \"l\") {\n cmdI[1] = B2[0];\n cmdI[2] = B2[1];\n }\n cmdI[0] = op;\n str += cmdI[0] + cmdI.slice(1).join(\",\");\n }\n lastPathOut = str;\n return str;\n }\n }\n });\n\n // src/components/drawing/index.js\n var require_drawing = __commonJS({\n \"src/components/drawing/index.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var Registry = require_registry();\n var Color2 = require_color();\n var Colorscale = require_colorscale();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var xmlnsNamespaces = require_xmlns_namespaces();\n var alignment = require_alignment();\n var LINE_SPACING = alignment.LINE_SPACING;\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var subTypes = require_subtypes();\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var drawing = module.exports = {};\n drawing.font = function(s, font) {\n var variant = font.variant;\n var style = font.style;\n var weight = font.weight;\n var color2 = font.color;\n var size = font.size;\n var family = font.family;\n var shadow = font.shadow;\n var lineposition = font.lineposition;\n var textcase = font.textcase;\n if (family) s.style(\"font-family\", family);\n if (size + 1) s.style(\"font-size\", size + \"px\");\n if (color2) s.call(Color2.fill, color2);\n if (weight) s.style(\"font-weight\", weight);\n if (style) s.style(\"font-style\", style);\n if (variant) s.style(\"font-variant\", variant);\n if (textcase) s.style(\"text-transform\", dropNone(textcase2transform(textcase)));\n if (shadow) s.style(\"text-shadow\", shadow === \"auto\" ? svgTextUtils.makeTextShadow(Color2.contrast(color2)) : dropNone(shadow));\n if (lineposition) s.style(\"text-decoration-line\", dropNone(lineposition2decorationLine(lineposition)));\n };\n function dropNone(a) {\n return a === \"none\" ? void 0 : a;\n }\n var textcase2transformOptions = {\n normal: \"none\",\n lower: \"lowercase\",\n upper: \"uppercase\",\n \"word caps\": \"capitalize\"\n };\n function textcase2transform(textcase) {\n return textcase2transformOptions[textcase];\n }\n function lineposition2decorationLine(lineposition) {\n return lineposition.replace(\"under\", \"underline\").replace(\"over\", \"overline\").replace(\"through\", \"line-through\").split(\"+\").join(\" \");\n }\n drawing.setPosition = function(s, x, y) {\n s.attr(\"x\", x).attr(\"y\", y);\n };\n drawing.setSize = function(s, w, h) {\n s.attr(\"width\", w).attr(\"height\", h);\n };\n drawing.setRect = function(s, x, y, w, h) {\n s.call(drawing.setPosition, x, y).call(drawing.setSize, w, h);\n };\n drawing.translatePoint = function(d, sel, xa, ya) {\n var x = xa.c2p(d.x);\n var y = ya.c2p(d.y);\n if (isNumeric(x) && isNumeric(y) && sel.node()) {\n if (sel.node().nodeName === \"text\") {\n sel.attr(\"x\", x).attr(\"y\", y);\n } else {\n sel.attr(\"transform\", strTranslate(x, y));\n }\n } else {\n return false;\n }\n return true;\n };\n drawing.translatePoints = function(s, xa, ya) {\n s.each(function(d) {\n var sel = d3.select(this);\n drawing.translatePoint(d, sel, xa, ya);\n });\n };\n drawing.hideOutsideRangePoint = function(d, sel, xa, ya, xcalendar, ycalendar) {\n sel.attr(\n \"display\",\n xa.isPtWithinRange(d, xcalendar) && ya.isPtWithinRange(d, ycalendar) ? null : \"none\"\n );\n };\n drawing.hideOutsideRangePoints = function(traceGroups, subplot) {\n if (!subplot._hasClipOnAxisFalse) return;\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n traceGroups.each(function(d) {\n var trace = d[0].trace;\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var selector = Registry.traceIs(trace, \"bar-like\") ? \".bartext\" : \".point,.textpoint\";\n traceGroups.selectAll(selector).each(function(d2) {\n drawing.hideOutsideRangePoint(d2, d3.select(this), xa, ya, xcalendar, ycalendar);\n });\n });\n };\n drawing.crispRound = function(gd, lineWidth, dflt) {\n if (!lineWidth || !isNumeric(lineWidth)) return dflt || 0;\n if (gd._context.staticPlot) return lineWidth;\n if (lineWidth < 1) return 1;\n return Math.round(lineWidth);\n };\n drawing.singleLineStyle = function(d, s, lw, lc, ld) {\n s.style(\"fill\", \"none\");\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || \"\";\n Color2.stroke(s, lc || line.color);\n drawing.dashLine(s, dash, lw1);\n };\n drawing.lineGroupStyle = function(s, lw, lc, ld) {\n s.style(\"fill\", \"none\").each(function(d) {\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || \"\";\n d3.select(this).call(Color2.stroke, lc || line.color).call(drawing.dashLine, dash, lw1);\n });\n };\n drawing.dashLine = function(s, dash, lineWidth) {\n lineWidth = +lineWidth || 0;\n dash = drawing.dashStyle(dash, lineWidth);\n s.style({\n \"stroke-dasharray\": dash,\n \"stroke-width\": lineWidth + \"px\"\n });\n };\n drawing.dashStyle = function(dash, lineWidth) {\n lineWidth = +lineWidth || 1;\n var dlw = Math.max(lineWidth, 3);\n if (dash === \"solid\") dash = \"\";\n else if (dash === \"dot\") dash = dlw + \"px,\" + dlw + \"px\";\n else if (dash === \"dash\") dash = 3 * dlw + \"px,\" + 3 * dlw + \"px\";\n else if (dash === \"longdash\") dash = 5 * dlw + \"px,\" + 5 * dlw + \"px\";\n else if (dash === \"dashdot\") {\n dash = 3 * dlw + \"px,\" + dlw + \"px,\" + dlw + \"px,\" + dlw + \"px\";\n } else if (dash === \"longdashdot\") {\n dash = 5 * dlw + \"px,\" + 2 * dlw + \"px,\" + dlw + \"px,\" + 2 * dlw + \"px\";\n }\n return dash;\n };\n function setFillStyle(sel, trace, gd, forLegend) {\n var markerPattern = trace.fillpattern;\n var fillgradient = trace.fillgradient;\n var patternShape = markerPattern && drawing.getPatternAttr(markerPattern.shape, 0, \"\");\n if (patternShape) {\n var patternBGColor = drawing.getPatternAttr(markerPattern.bgcolor, 0, null);\n var patternFGColor = drawing.getPatternAttr(markerPattern.fgcolor, 0, null);\n var patternFGOpacity = markerPattern.fgopacity;\n var patternSize = drawing.getPatternAttr(markerPattern.size, 0, 8);\n var patternSolidity = drawing.getPatternAttr(markerPattern.solidity, 0, 0.3);\n var patternID = trace.uid;\n drawing.pattern(\n sel,\n \"point\",\n gd,\n patternID,\n patternShape,\n patternSize,\n patternSolidity,\n void 0,\n markerPattern.fillmode,\n patternBGColor,\n patternFGColor,\n patternFGOpacity\n );\n } else if (fillgradient && fillgradient.type !== \"none\") {\n var direction = fillgradient.type;\n var gradientID = \"scatterfill-\" + trace.uid;\n if (forLegend) {\n gradientID = \"legendfill-\" + trace.uid;\n }\n if (!forLegend && (fillgradient.start !== void 0 || fillgradient.stop !== void 0)) {\n var start, stop;\n if (direction === \"horizontal\") {\n start = {\n x: fillgradient.start,\n y: 0\n };\n stop = {\n x: fillgradient.stop,\n y: 0\n };\n } else if (direction === \"vertical\") {\n start = {\n x: 0,\n y: fillgradient.start\n };\n stop = {\n x: 0,\n y: fillgradient.stop\n };\n }\n start.x = trace._xA.c2p(\n start.x === void 0 ? trace._extremes.x.min[0].val : start.x,\n true\n );\n start.y = trace._yA.c2p(\n start.y === void 0 ? trace._extremes.y.min[0].val : start.y,\n true\n );\n stop.x = trace._xA.c2p(\n stop.x === void 0 ? trace._extremes.x.max[0].val : stop.x,\n true\n );\n stop.y = trace._yA.c2p(\n stop.y === void 0 ? trace._extremes.y.max[0].val : stop.y,\n true\n );\n sel.call(gradientWithBounds, gd, gradientID, \"linear\", fillgradient.colorscale, \"fill\", start, stop, true, false);\n } else {\n if (direction === \"horizontal\") {\n direction = direction + \"reversed\";\n }\n sel.call(drawing.gradient, gd, gradientID, direction, fillgradient.colorscale, \"fill\");\n }\n } else if (trace.fillcolor) {\n sel.call(Color2.fill, trace.fillcolor);\n }\n }\n drawing.singleFillStyle = function(sel, gd) {\n var node = d3.select(sel.node());\n var data = node.data();\n var trace = ((data[0] || [])[0] || {}).trace || {};\n setFillStyle(sel, trace, gd, false);\n };\n drawing.fillGroupStyle = function(s, gd, forLegend) {\n s.style(\"stroke-width\", 0).each(function(d) {\n var shape = d3.select(this);\n if (d[0].trace) {\n setFillStyle(shape, d[0].trace, gd, forLegend);\n }\n });\n };\n var SYMBOLDEFS = require_symbol_defs();\n drawing.symbolNames = [];\n drawing.symbolFuncs = [];\n drawing.symbolBackOffs = [];\n drawing.symbolNeedLines = {};\n drawing.symbolNoDot = {};\n drawing.symbolNoFill = {};\n drawing.symbolList = [];\n Object.keys(SYMBOLDEFS).forEach(function(k) {\n var symDef = SYMBOLDEFS[k];\n var n = symDef.n;\n drawing.symbolList.push(\n n,\n String(n),\n k,\n n + 100,\n String(n + 100),\n k + \"-open\"\n );\n drawing.symbolNames[n] = k;\n drawing.symbolFuncs[n] = symDef.f;\n drawing.symbolBackOffs[n] = symDef.backoff || 0;\n if (symDef.needLine) {\n drawing.symbolNeedLines[n] = true;\n }\n if (symDef.noDot) {\n drawing.symbolNoDot[n] = true;\n } else {\n drawing.symbolList.push(\n n + 200,\n String(n + 200),\n k + \"-dot\",\n n + 300,\n String(n + 300),\n k + \"-open-dot\"\n );\n }\n if (symDef.noFill) {\n drawing.symbolNoFill[n] = true;\n }\n });\n var MAXSYMBOL = drawing.symbolNames.length;\n var DOTPATH = \"M0,0.5L0.5,0L0,-0.5L-0.5,0Z\";\n drawing.symbolNumber = function(v) {\n if (isNumeric(v)) {\n v = +v;\n } else if (typeof v === \"string\") {\n var vbase = 0;\n if (v.indexOf(\"-open\") > 0) {\n vbase = 100;\n v = v.replace(\"-open\", \"\");\n }\n if (v.indexOf(\"-dot\") > 0) {\n vbase += 200;\n v = v.replace(\"-dot\", \"\");\n }\n v = drawing.symbolNames.indexOf(v);\n if (v >= 0) {\n v += vbase;\n }\n }\n return v % 100 >= MAXSYMBOL || v >= 400 ? 0 : Math.floor(Math.max(v, 0));\n };\n function makePointPath(symbolNumber, r, t, s) {\n var base = symbolNumber % 100;\n return drawing.symbolFuncs[base](r, t, s) + (symbolNumber >= 200 ? DOTPATH : \"\");\n }\n var stopFormatter = numberFormat(\"~f\");\n var gradientInfo = {\n radial: { type: \"radial\" },\n radialreversed: { type: \"radial\", reversed: true },\n horizontal: { type: \"linear\", start: { x: 1, y: 0 }, stop: { x: 0, y: 0 } },\n horizontalreversed: { type: \"linear\", start: { x: 1, y: 0 }, stop: { x: 0, y: 0 }, reversed: true },\n vertical: { type: \"linear\", start: { x: 0, y: 1 }, stop: { x: 0, y: 0 } },\n verticalreversed: { type: \"linear\", start: { x: 0, y: 1 }, stop: { x: 0, y: 0 }, reversed: true }\n };\n drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {\n var info = gradientInfo[type];\n return gradientWithBounds(\n sel,\n gd,\n gradientID,\n info.type,\n colorscale,\n prop,\n info.start,\n info.stop,\n false,\n info.reversed\n );\n };\n function gradientWithBounds(sel, gd, gradientID, type, colorscale, prop, start, stop, inUserSpace, reversed) {\n var len = colorscale.length;\n var info;\n if (type === \"linear\") {\n info = {\n node: \"linearGradient\",\n attrs: {\n x1: start.x,\n y1: start.y,\n x2: stop.x,\n y2: stop.y,\n gradientUnits: inUserSpace ? \"userSpaceOnUse\" : \"objectBoundingBox\"\n },\n reversed\n };\n } else if (type === \"radial\") {\n info = {\n node: \"radialGradient\",\n reversed\n };\n }\n var colorStops = new Array(len);\n for (var i = 0; i < len; i++) {\n if (info.reversed) {\n colorStops[len - 1 - i] = [stopFormatter((1 - colorscale[i][0]) * 100), colorscale[i][1]];\n } else {\n colorStops[i] = [stopFormatter(colorscale[i][0] * 100), colorscale[i][1]];\n }\n }\n var fullLayout = gd._fullLayout;\n var fullID = \"g\" + fullLayout._uid + \"-\" + gradientID;\n var gradient = fullLayout._defs.select(\".gradients\").selectAll(\"#\" + fullID).data([type + colorStops.join(\";\")], Lib.identity);\n gradient.exit().remove();\n gradient.enter().append(info.node).each(function() {\n var el = d3.select(this);\n if (info.attrs) el.attr(info.attrs);\n el.attr(\"id\", fullID);\n var stops = el.selectAll(\"stop\").data(colorStops);\n stops.exit().remove();\n stops.enter().append(\"stop\");\n stops.each(function(d) {\n var tc = tinycolor(d[1]);\n d3.select(this).attr({\n offset: d[0] + \"%\",\n \"stop-color\": Color2.tinyRGB(tc),\n \"stop-opacity\": tc.getAlpha()\n });\n });\n });\n sel.style(prop, getFullUrl(fullID, gd)).style(prop + \"-opacity\", null);\n sel.classed(\"gradient_filled\", true);\n }\n drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity, mcc, fillmode, bgcolor, fgcolor, fgopacity) {\n var isLegend = calledBy === \"legend\";\n if (mcc) {\n if (fillmode === \"overlay\") {\n bgcolor = mcc;\n fgcolor = Color2.contrast(bgcolor);\n } else {\n bgcolor = void 0;\n fgcolor = mcc;\n }\n }\n var fullLayout = gd._fullLayout;\n var fullID = \"p\" + fullLayout._uid + \"-\" + patternID;\n var width, height;\n var linearFn = function(x, x0, x1, y0, y1) {\n return y0 + (y1 - y0) * (x - x0) / (x1 - x0);\n };\n var path, linewidth, radius;\n var patternTag;\n var patternAttrs = {};\n var fgC = tinycolor(fgcolor);\n var fgRGB = Color2.tinyRGB(fgC);\n var fgAlpha = fgC.getAlpha();\n var opacity = fgopacity * fgAlpha;\n switch (shape) {\n case \"/\":\n width = size * Math.sqrt(2);\n height = size * Math.sqrt(2);\n path = \"M-\" + width / 4 + \",\" + height / 4 + \"l\" + width / 2 + \",-\" + height / 2 + \"M0,\" + height + \"L\" + width + \",0M\" + width / 4 * 3 + \",\" + height / 4 * 5 + \"l\" + width / 2 + \",-\" + height / 2;\n linewidth = solidity * size;\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"\\\\\":\n width = size * Math.sqrt(2);\n height = size * Math.sqrt(2);\n path = \"M\" + width / 4 * 3 + \",-\" + height / 4 + \"l\" + width / 2 + \",\" + height / 2 + \"M0,0L\" + width + \",\" + height + \"M-\" + width / 4 + \",\" + height / 4 * 3 + \"l\" + width / 2 + \",\" + height / 2;\n linewidth = solidity * size;\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"x\":\n width = size * Math.sqrt(2);\n height = size * Math.sqrt(2);\n path = \"M-\" + width / 4 + \",\" + height / 4 + \"l\" + width / 2 + \",-\" + height / 2 + \"M0,\" + height + \"L\" + width + \",0M\" + width / 4 * 3 + \",\" + height / 4 * 5 + \"l\" + width / 2 + \",-\" + height / 2 + \"M\" + width / 4 * 3 + \",-\" + height / 4 + \"l\" + width / 2 + \",\" + height / 2 + \"M0,0L\" + width + \",\" + height + \"M-\" + width / 4 + \",\" + height / 4 * 3 + \"l\" + width / 2 + \",\" + height / 2;\n linewidth = size - size * Math.sqrt(1 - solidity);\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"|\":\n width = size;\n height = size;\n patternTag = \"path\";\n path = \"M\" + width / 2 + \",0L\" + width / 2 + \",\" + height;\n linewidth = solidity * size;\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"-\":\n width = size;\n height = size;\n patternTag = \"path\";\n path = \"M0,\" + height / 2 + \"L\" + width + \",\" + height / 2;\n linewidth = solidity * size;\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"+\":\n width = size;\n height = size;\n patternTag = \"path\";\n path = \"M\" + width / 2 + \",0L\" + width / 2 + \",\" + height + \"M0,\" + height / 2 + \"L\" + width + \",\" + height / 2;\n linewidth = size - size * Math.sqrt(1 - solidity);\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \".\":\n width = size;\n height = size;\n if (solidity < Math.PI / 4) {\n radius = Math.sqrt(solidity * size * size / Math.PI);\n } else {\n radius = linearFn(solidity, Math.PI / 4, 1, size / 2, size / Math.sqrt(2));\n }\n patternTag = \"circle\";\n patternAttrs = {\n cx: width / 2,\n cy: height / 2,\n r: radius,\n opacity,\n fill: fgRGB\n };\n break;\n }\n var str = [\n shape || \"noSh\",\n bgcolor || \"noBg\",\n fgcolor || \"noFg\",\n size,\n solidity\n ].join(\";\");\n var pattern = fullLayout._defs.select(\".patterns\").selectAll(\"#\" + fullID).data([str], Lib.identity);\n pattern.exit().remove();\n pattern.enter().append(\"pattern\").each(function() {\n var el = d3.select(this);\n el.attr({\n id: fullID,\n width: width + \"px\",\n height: height + \"px\",\n patternUnits: \"userSpaceOnUse\",\n // for legends scale down patterns just a bit so that default size (i.e 8) nicely fit in small icons\n patternTransform: isLegend ? \"scale(0.8)\" : \"\"\n });\n if (bgcolor) {\n var bgC = tinycolor(bgcolor);\n var bgRGB = Color2.tinyRGB(bgC);\n var bgAlpha = bgC.getAlpha();\n var rects = el.selectAll(\"rect\").data([0]);\n rects.exit().remove();\n rects.enter().append(\"rect\").attr({\n width: width + \"px\",\n height: height + \"px\",\n fill: bgRGB,\n \"fill-opacity\": bgAlpha\n });\n }\n var patterns = el.selectAll(patternTag).data([0]);\n patterns.exit().remove();\n patterns.enter().append(patternTag).attr(patternAttrs);\n });\n sel.style(\"fill\", getFullUrl(fullID, gd)).style(\"fill-opacity\", null);\n sel.classed(\"pattern_filled\", true);\n };\n drawing.initGradients = function(gd) {\n var fullLayout = gd._fullLayout;\n var gradientsGroup = Lib.ensureSingle(fullLayout._defs, \"g\", \"gradients\");\n gradientsGroup.selectAll(\"linearGradient,radialGradient\").remove();\n d3.select(gd).selectAll(\".gradient_filled\").classed(\"gradient_filled\", false);\n };\n drawing.initPatterns = function(gd) {\n var fullLayout = gd._fullLayout;\n var patternsGroup = Lib.ensureSingle(fullLayout._defs, \"g\", \"patterns\");\n patternsGroup.selectAll(\"pattern\").remove();\n d3.select(gd).selectAll(\".pattern_filled\").classed(\"pattern_filled\", false);\n };\n drawing.getPatternAttr = function(mp, i, dflt) {\n if (mp && Lib.isArrayOrTypedArray(mp)) {\n return i < mp.length ? mp[i] : dflt;\n }\n return mp;\n };\n drawing.pointStyle = function(s, trace, gd, pt) {\n if (!s.size()) return;\n var fns = drawing.makePointStyleFns(trace);\n s.each(function(d) {\n drawing.singlePointStyle(d, d3.select(this), trace, fns, gd, pt);\n });\n };\n drawing.singlePointStyle = function(d, sel, trace, fns, gd, pt) {\n var marker = trace.marker;\n var markerLine = marker.line;\n if (pt && pt.i >= 0 && d.i === void 0) d.i = pt.i;\n sel.style(\n \"opacity\",\n fns.selectedOpacityFn ? fns.selectedOpacityFn(d) : d.mo === void 0 ? marker.opacity : d.mo\n );\n if (fns.ms2mrc) {\n var r;\n if (d.ms === \"various\" || marker.size === \"various\") {\n r = 3;\n } else {\n r = fns.ms2mrc(d.ms);\n }\n d.mrc = r;\n if (fns.selectedSizeFn) {\n r = d.mrc = fns.selectedSizeFn(d);\n }\n var x = drawing.symbolNumber(d.mx || marker.symbol) || 0;\n d.om = x % 200 >= 100;\n var angle = getMarkerAngle(d, trace);\n var standoff = getMarkerStandoff(d, trace);\n sel.attr(\"d\", makePointPath(x, r, angle, standoff));\n }\n var perPointGradient = false;\n var fillColor, lineColor, lineWidth;\n if (d.so) {\n lineWidth = markerLine.outlierwidth;\n lineColor = markerLine.outliercolor;\n fillColor = marker.outliercolor;\n } else {\n var markerLineWidth = (markerLine || {}).width;\n lineWidth = (d.mlw + 1 || markerLineWidth + 1 || // TODO: we need the latter for legends... can we get rid of it?\n (d.trace ? (d.trace.marker.line || {}).width : 0) + 1) - 1 || 0;\n if (\"mlc\" in d) lineColor = d.mlcc = fns.lineScale(d.mlc);\n else if (Lib.isArrayOrTypedArray(markerLine.color)) lineColor = Color2.defaultLine;\n else lineColor = markerLine.color;\n if (Lib.isArrayOrTypedArray(marker.color)) {\n fillColor = Color2.defaultLine;\n perPointGradient = true;\n }\n if (\"mc\" in d) {\n fillColor = d.mcc = fns.markerScale(d.mc);\n } else {\n fillColor = marker.color || marker.colors || \"rgba(0,0,0,0)\";\n }\n if (fns.selectedColorFn) {\n fillColor = fns.selectedColorFn(d);\n }\n }\n if (d.om) {\n sel.call(Color2.stroke, fillColor).style({\n \"stroke-width\": (lineWidth || 1) + \"px\",\n fill: \"none\"\n });\n } else {\n sel.style(\"stroke-width\", (d.isBlank ? 0 : lineWidth) + \"px\");\n var markerGradient = marker.gradient;\n var gradientType = d.mgt;\n if (gradientType) perPointGradient = true;\n else gradientType = markerGradient && markerGradient.type;\n if (Lib.isArrayOrTypedArray(gradientType)) {\n gradientType = gradientType[0];\n if (!gradientInfo[gradientType]) gradientType = 0;\n }\n var markerPattern = marker.pattern;\n var patternShape = markerPattern && drawing.getPatternAttr(markerPattern.shape, d.i, \"\");\n if (gradientType && gradientType !== \"none\") {\n var gradientColor = d.mgc;\n if (gradientColor) perPointGradient = true;\n else gradientColor = markerGradient.color;\n var gradientID = trace.uid;\n if (perPointGradient) gradientID += \"-\" + d.i;\n drawing.gradient(\n sel,\n gd,\n gradientID,\n gradientType,\n [[0, gradientColor], [1, fillColor]],\n \"fill\"\n );\n } else if (patternShape) {\n var perPointPattern = false;\n var fgcolor = markerPattern.fgcolor;\n if (!fgcolor && pt && pt.color) {\n fgcolor = pt.color;\n perPointPattern = true;\n }\n var patternFGColor = drawing.getPatternAttr(fgcolor, d.i, pt && pt.color || null);\n var patternBGColor = drawing.getPatternAttr(markerPattern.bgcolor, d.i, null);\n var patternFGOpacity = markerPattern.fgopacity;\n var patternSize = drawing.getPatternAttr(markerPattern.size, d.i, 8);\n var patternSolidity = drawing.getPatternAttr(markerPattern.solidity, d.i, 0.3);\n perPointPattern = perPointPattern || d.mcc || Lib.isArrayOrTypedArray(markerPattern.shape) || Lib.isArrayOrTypedArray(markerPattern.bgcolor) || Lib.isArrayOrTypedArray(markerPattern.fgcolor) || Lib.isArrayOrTypedArray(markerPattern.size) || Lib.isArrayOrTypedArray(markerPattern.solidity);\n var patternID = trace.uid;\n if (perPointPattern) patternID += \"-\" + d.i;\n drawing.pattern(\n sel,\n \"point\",\n gd,\n patternID,\n patternShape,\n patternSize,\n patternSolidity,\n d.mcc,\n markerPattern.fillmode,\n patternBGColor,\n patternFGColor,\n patternFGOpacity\n );\n } else {\n Lib.isArrayOrTypedArray(fillColor) ? Color2.fill(sel, fillColor[d.i]) : Color2.fill(sel, fillColor);\n }\n if (lineWidth) {\n Color2.stroke(sel, lineColor);\n }\n }\n };\n drawing.makePointStyleFns = function(trace) {\n var out = {};\n var marker = trace.marker;\n out.markerScale = drawing.tryColorscale(marker, \"\");\n out.lineScale = drawing.tryColorscale(marker, \"line\");\n if (Registry.traceIs(trace, \"symbols\")) {\n out.ms2mrc = subTypes.isBubble(trace) ? makeBubbleSizeFn(trace) : function() {\n return (marker.size || 6) / 2;\n };\n }\n if (trace.selectedpoints) {\n Lib.extendFlat(out, drawing.makeSelectedPointStyleFns(trace));\n }\n return out;\n };\n drawing.makeSelectedPointStyleFns = function(trace) {\n var out = {};\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n var marker = trace.marker || {};\n var selectedMarker = selectedAttrs.marker || {};\n var unselectedMarker = unselectedAttrs.marker || {};\n var mo = marker.opacity;\n var smo = selectedMarker.opacity;\n var usmo = unselectedMarker.opacity;\n var smoIsDefined = smo !== void 0;\n var usmoIsDefined = usmo !== void 0;\n if (Lib.isArrayOrTypedArray(mo) || smoIsDefined || usmoIsDefined) {\n out.selectedOpacityFn = function(d) {\n var base = d.mo === void 0 ? marker.opacity : d.mo;\n if (d.selected) {\n return smoIsDefined ? smo : base;\n } else {\n return usmoIsDefined ? usmo : DESELECTDIM * base;\n }\n };\n }\n var mc = marker.color;\n var smc = selectedMarker.color;\n var usmc = unselectedMarker.color;\n if (smc || usmc) {\n out.selectedColorFn = function(d) {\n var base = d.mcc || mc;\n if (d.selected) {\n return smc || base;\n } else {\n return usmc || base;\n }\n };\n }\n var ms = marker.size;\n var sms = selectedMarker.size;\n var usms = unselectedMarker.size;\n var smsIsDefined = sms !== void 0;\n var usmsIsDefined = usms !== void 0;\n if (Registry.traceIs(trace, \"symbols\") && (smsIsDefined || usmsIsDefined)) {\n out.selectedSizeFn = function(d) {\n var base = d.mrc || ms / 2;\n if (d.selected) {\n return smsIsDefined ? sms / 2 : base;\n } else {\n return usmsIsDefined ? usms / 2 : base;\n }\n };\n }\n return out;\n };\n drawing.makeSelectedTextStyleFns = function(trace) {\n var out = {};\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n var textFont = trace.textfont || {};\n var selectedTextFont = selectedAttrs.textfont || {};\n var unselectedTextFont = unselectedAttrs.textfont || {};\n var tc = textFont.color;\n var stc = selectedTextFont.color;\n var utc = unselectedTextFont.color;\n out.selectedTextColorFn = function(d) {\n var base = d.tc || tc;\n if (d.selected) {\n return stc || base;\n } else {\n if (utc) return utc;\n else return stc ? base : Color2.addOpacity(base, DESELECTDIM);\n }\n };\n return out;\n };\n drawing.selectedPointStyle = function(s, trace) {\n if (!s.size() || !trace.selectedpoints) return;\n var fns = drawing.makeSelectedPointStyleFns(trace);\n var marker = trace.marker || {};\n var seq = [];\n if (fns.selectedOpacityFn) {\n seq.push(function(pt, d) {\n pt.style(\"opacity\", fns.selectedOpacityFn(d));\n });\n }\n if (fns.selectedColorFn) {\n seq.push(function(pt, d) {\n Color2.fill(pt, fns.selectedColorFn(d));\n });\n }\n if (fns.selectedSizeFn) {\n seq.push(function(pt, d) {\n var mx = d.mx || marker.symbol || 0;\n var mrc2 = fns.selectedSizeFn(d);\n pt.attr(\"d\", makePointPath(drawing.symbolNumber(mx), mrc2, getMarkerAngle(d, trace), getMarkerStandoff(d, trace)));\n d.mrc2 = mrc2;\n });\n }\n if (seq.length) {\n s.each(function(d) {\n var pt = d3.select(this);\n for (var i = 0; i < seq.length; i++) {\n seq[i](pt, d);\n }\n });\n }\n };\n drawing.tryColorscale = function(marker, prefix) {\n var cont = prefix ? Lib.nestedProperty(marker, prefix).get() : marker;\n if (cont) {\n var colorArray = cont.color;\n if ((cont.colorscale || cont._colorAx) && Lib.isArrayOrTypedArray(colorArray)) {\n return Colorscale.makeColorScaleFuncFromTrace(cont);\n }\n }\n return Lib.identity;\n };\n var TEXTOFFSETSIGN = {\n start: 1,\n end: -1,\n middle: 0,\n bottom: 1,\n top: -1\n };\n function textPointPosition(s, textPosition, fontSize, markerRadius, dontTouchParent) {\n var group = d3.select(s.node().parentNode);\n var v = textPosition.indexOf(\"top\") !== -1 ? \"top\" : textPosition.indexOf(\"bottom\") !== -1 ? \"bottom\" : \"middle\";\n var h = textPosition.indexOf(\"left\") !== -1 ? \"end\" : textPosition.indexOf(\"right\") !== -1 ? \"start\" : \"middle\";\n var r = markerRadius ? markerRadius / 0.8 + 1 : 0;\n var numLines = (svgTextUtils.lineCount(s) - 1) * LINE_SPACING + 1;\n var dx = TEXTOFFSETSIGN[h] * r;\n var dy = fontSize * 0.75 + TEXTOFFSETSIGN[v] * r + (TEXTOFFSETSIGN[v] - 1) * numLines * fontSize / 2;\n s.attr(\"text-anchor\", h);\n if (!dontTouchParent) {\n group.attr(\"transform\", strTranslate(dx, dy));\n }\n }\n function extracTextFontSize(d, trace) {\n var fontSize = d.ts || trace.textfont.size;\n return isNumeric(fontSize) && fontSize > 0 ? fontSize : 0;\n }\n drawing.textPointStyle = function(s, trace, gd) {\n if (!s.size()) return;\n var selectedTextColorFn;\n if (trace.selectedpoints) {\n var fns = drawing.makeSelectedTextStyleFns(trace);\n selectedTextColorFn = fns.selectedTextColorFn;\n }\n var texttemplate = trace.texttemplate;\n var fullLayout = gd._fullLayout;\n s.each(function(d) {\n var p = d3.select(this);\n var text = texttemplate ? Lib.extractOption(d, trace, \"txt\", \"texttemplate\") : Lib.extractOption(d, trace, \"tx\", \"text\");\n if (!text && text !== 0) {\n p.remove();\n return;\n }\n if (texttemplate) {\n var fn = trace._module.formatLabels;\n var labels = fn ? fn(d, trace, fullLayout) : {};\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, d.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(text, labels, fullLayout._d3locale, pointValues, d, meta);\n }\n var pos = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n var fontColor = selectedTextColorFn ? selectedTextColorFn(d) : d.tc || trace.textfont.color;\n p.call(drawing.font, {\n family: d.tf || trace.textfont.family,\n weight: d.tw || trace.textfont.weight,\n style: d.ty || trace.textfont.style,\n variant: d.tv || trace.textfont.variant,\n textcase: d.tC || trace.textfont.textcase,\n lineposition: d.tE || trace.textfont.lineposition,\n shadow: d.tS || trace.textfont.shadow,\n size: fontSize,\n color: fontColor\n }).text(text).call(svgTextUtils.convertToTspans, gd).call(textPointPosition, pos, fontSize, d.mrc);\n });\n };\n drawing.selectedTextStyle = function(s, trace) {\n if (!s.size() || !trace.selectedpoints) return;\n var fns = drawing.makeSelectedTextStyleFns(trace);\n s.each(function(d) {\n var tx = d3.select(this);\n var tc = fns.selectedTextColorFn(d);\n var tp = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n Color2.fill(tx, tc);\n var dontTouchParent = Registry.traceIs(trace, \"bar-like\");\n textPointPosition(tx, tp, fontSize, d.mrc2 || d.mrc, dontTouchParent);\n });\n };\n var CatmullRomExp = 0.5;\n drawing.smoothopen = function(pts, smoothness) {\n if (pts.length < 3) {\n return \"M\" + pts.join(\"L\");\n }\n var path = \"M\" + pts[0];\n var tangents = [];\n var i;\n for (i = 1; i < pts.length - 1; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n path += \"Q\" + tangents[0][0] + \" \" + pts[1];\n for (i = 2; i < pts.length - 1; i++) {\n path += \"C\" + tangents[i - 2][1] + \" \" + tangents[i - 1][0] + \" \" + pts[i];\n }\n path += \"Q\" + tangents[pts.length - 3][1] + \" \" + pts[pts.length - 1];\n return path;\n };\n drawing.smoothclosed = function(pts, smoothness) {\n if (pts.length < 3) {\n return \"M\" + pts.join(\"L\") + \"Z\";\n }\n var path = \"M\" + pts[0];\n var pLast = pts.length - 1;\n var tangents = [makeTangent(pts[pLast], pts[0], pts[1], smoothness)];\n var i;\n for (i = 1; i < pLast; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n tangents.push(\n makeTangent(pts[pLast - 1], pts[pLast], pts[0], smoothness)\n );\n for (i = 1; i <= pLast; i++) {\n path += \"C\" + tangents[i - 1][1] + \" \" + tangents[i][0] + \" \" + pts[i];\n }\n path += \"C\" + tangents[pLast][1] + \" \" + tangents[0][0] + \" \" + pts[0] + \"Z\";\n return path;\n };\n var lastDrawnX;\n var lastDrawnY;\n function roundEnd(pt, isY, isLastPoint) {\n if (isLastPoint) pt = applyBackoff(pt);\n return isY ? roundY(pt[1]) : roundX(pt[0]);\n }\n function roundX(p) {\n var v = d3.round(p, 2);\n lastDrawnX = v;\n return v;\n }\n function roundY(p) {\n var v = d3.round(p, 2);\n lastDrawnY = v;\n return v;\n }\n function makeTangent(prevpt, thispt, nextpt, smoothness) {\n var d1x = prevpt[0] - thispt[0];\n var d1y = prevpt[1] - thispt[1];\n var d2x = nextpt[0] - thispt[0];\n var d2y = nextpt[1] - thispt[1];\n var d1a = Math.pow(d1x * d1x + d1y * d1y, CatmullRomExp / 2);\n var d2a = Math.pow(d2x * d2x + d2y * d2y, CatmullRomExp / 2);\n var numx = (d2a * d2a * d1x - d1a * d1a * d2x) * smoothness;\n var numy = (d2a * d2a * d1y - d1a * d1a * d2y) * smoothness;\n var denom1 = 3 * d2a * (d1a + d2a);\n var denom2 = 3 * d1a * (d1a + d2a);\n return [\n [\n roundX(thispt[0] + (denom1 && numx / denom1)),\n roundY(thispt[1] + (denom1 && numy / denom1))\n ],\n [\n roundX(thispt[0] - (denom2 && numx / denom2)),\n roundY(thispt[1] - (denom2 && numy / denom2))\n ]\n ];\n }\n var STEPPATH = {\n hv: function(p0, p1, isLastPoint) {\n return \"H\" + roundX(p1[0]) + \"V\" + roundEnd(p1, 1, isLastPoint);\n },\n vh: function(p0, p1, isLastPoint) {\n return \"V\" + roundY(p1[1]) + \"H\" + roundEnd(p1, 0, isLastPoint);\n },\n hvh: function(p0, p1, isLastPoint) {\n return \"H\" + roundX((p0[0] + p1[0]) / 2) + \"V\" + roundY(p1[1]) + \"H\" + roundEnd(p1, 0, isLastPoint);\n },\n vhv: function(p0, p1, isLastPoint) {\n return \"V\" + roundY((p0[1] + p1[1]) / 2) + \"H\" + roundX(p1[0]) + \"V\" + roundEnd(p1, 1, isLastPoint);\n }\n };\n var STEPLINEAR = function(p0, p1, isLastPoint) {\n return \"L\" + roundEnd(p1, 0, isLastPoint) + \",\" + roundEnd(p1, 1, isLastPoint);\n };\n drawing.steps = function(shape) {\n var onestep = STEPPATH[shape] || STEPLINEAR;\n return function(pts) {\n var path = \"M\" + roundX(pts[0][0]) + \",\" + roundY(pts[0][1]);\n var len = pts.length;\n for (var i = 1; i < len; i++) {\n path += onestep(pts[i - 1], pts[i], i === len - 1);\n }\n return path;\n };\n };\n function applyBackoff(pt, start) {\n var backoff = pt.backoff;\n var trace = pt.trace;\n var d = pt.d;\n var i = pt.i;\n if (backoff && trace && trace.marker && trace.marker.angle % 360 === 0 && trace.line && trace.line.shape !== \"spline\") {\n var arrayBackoff = Lib.isArrayOrTypedArray(backoff);\n var end = pt;\n var x1 = start ? start[0] : lastDrawnX || 0;\n var y1 = start ? start[1] : lastDrawnY || 0;\n var x2 = end[0];\n var y2 = end[1];\n var dx = x2 - x1;\n var dy = y2 - y1;\n var t = Math.atan2(dy, dx);\n var b = arrayBackoff ? backoff[i] : backoff;\n if (b === \"auto\") {\n var endI = end.i;\n if (trace.type === \"scatter\") endI--;\n var endMarker = end.marker;\n var endMarkerSymbol = endMarker.symbol;\n if (Lib.isArrayOrTypedArray(endMarkerSymbol)) endMarkerSymbol = endMarkerSymbol[endI];\n var endMarkerSize = endMarker.size;\n if (Lib.isArrayOrTypedArray(endMarkerSize)) endMarkerSize = endMarkerSize[endI];\n b = endMarker ? drawing.symbolBackOffs[drawing.symbolNumber(endMarkerSymbol)] * endMarkerSize : 0;\n b += drawing.getMarkerStandoff(d[endI], trace) || 0;\n }\n var x = x2 - b * Math.cos(t);\n var y = y2 - b * Math.sin(t);\n if ((x <= x2 && x >= x1 || x >= x2 && x <= x1) && (y <= y2 && y >= y1 || y >= y2 && y <= y1)) {\n pt = [x, y];\n }\n }\n return pt;\n }\n drawing.applyBackoff = applyBackoff;\n drawing.makeTester = function() {\n var tester = Lib.ensureSingleById(d3.select(\"body\"), \"svg\", \"js-plotly-tester\", function(s) {\n s.attr(xmlnsNamespaces.svgAttrs).style({\n position: \"absolute\",\n left: \"-10000px\",\n top: \"-10000px\",\n width: \"9000px\",\n height: \"9000px\",\n \"z-index\": \"1\"\n });\n });\n var testref = Lib.ensureSingle(tester, \"path\", \"js-reference-point\", function(s) {\n s.attr(\"d\", \"M0,0H1V1H0Z\").style({\n \"stroke-width\": 0,\n fill: \"black\"\n });\n });\n drawing.tester = tester;\n drawing.testref = testref;\n };\n drawing.savedBBoxes = {};\n var savedBBoxesCount = 0;\n var maxSavedBBoxes = 1e4;\n drawing.bBox = function(node, inTester, hash) {\n if (!hash) hash = nodeHash(node);\n var out;\n if (hash) {\n out = drawing.savedBBoxes[hash];\n if (out) return Lib.extendFlat({}, out);\n } else if (node.childNodes.length === 1) {\n var innerNode = node.childNodes[0];\n hash = nodeHash(innerNode);\n if (hash) {\n var x = +innerNode.getAttribute(\"x\") || 0;\n var y = +innerNode.getAttribute(\"y\") || 0;\n var transform = innerNode.getAttribute(\"transform\");\n if (!transform) {\n var innerBB = drawing.bBox(innerNode, false, hash);\n if (x) {\n innerBB.left += x;\n innerBB.right += x;\n }\n if (y) {\n innerBB.top += y;\n innerBB.bottom += y;\n }\n return innerBB;\n }\n hash += \"~\" + x + \"~\" + y + \"~\" + transform;\n out = drawing.savedBBoxes[hash];\n if (out) return Lib.extendFlat({}, out);\n }\n }\n var testNode, tester;\n if (inTester) {\n testNode = node;\n } else {\n tester = drawing.tester.node();\n testNode = node.cloneNode(true);\n tester.appendChild(testNode);\n }\n d3.select(testNode).attr(\"transform\", null).call(svgTextUtils.positionText, 0, 0);\n var testRect = testNode.getBoundingClientRect();\n var refRect = drawing.testref.node().getBoundingClientRect();\n if (!inTester) tester.removeChild(testNode);\n var bb = {\n height: testRect.height,\n width: testRect.width,\n left: testRect.left - refRect.left,\n top: testRect.top - refRect.top,\n right: testRect.right - refRect.left,\n bottom: testRect.bottom - refRect.top\n };\n if (savedBBoxesCount >= maxSavedBBoxes) {\n drawing.savedBBoxes = {};\n savedBBoxesCount = 0;\n }\n if (hash) drawing.savedBBoxes[hash] = bb;\n savedBBoxesCount++;\n return Lib.extendFlat({}, bb);\n };\n function nodeHash(node) {\n var inputText = node.getAttribute(\"data-unformatted\");\n if (inputText === null) return;\n return inputText + node.getAttribute(\"data-math\") + node.getAttribute(\"text-anchor\") + node.getAttribute(\"style\");\n }\n drawing.setClipUrl = function(s, localId, gd) {\n s.attr(\"clip-path\", getFullUrl(localId, gd));\n };\n function getFullUrl(localId, gd) {\n if (!localId) return null;\n var context = gd._context;\n var baseUrl = context._exportedPlot ? \"\" : context._baseUrl || \"\";\n return baseUrl ? \"url('\" + baseUrl + \"#\" + localId + \"')\" : \"url(#\" + localId + \")\";\n }\n drawing.getTranslate = function(element) {\n var re = /.*\\btranslate\\((-?\\d*\\.?\\d*)[^-\\d]*(-?\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? \"attr\" : \"getAttribute\";\n var transform = element[getter](\"transform\") || \"\";\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(\" \");\n }).split(\" \");\n return {\n x: +translate[0] || 0,\n y: +translate[1] || 0\n };\n };\n drawing.setTranslate = function(element, x, y) {\n var re = /(\\btranslate\\(.*?\\);?)/;\n var getter = element.attr ? \"attr\" : \"getAttribute\";\n var setter = element.attr ? \"attr\" : \"setAttribute\";\n var transform = element[getter](\"transform\") || \"\";\n x = x || 0;\n y = y || 0;\n transform = transform.replace(re, \"\").trim();\n transform += strTranslate(x, y);\n transform = transform.trim();\n element[setter](\"transform\", transform);\n return transform;\n };\n drawing.getScale = function(element) {\n var re = /.*\\bscale\\((\\d*\\.?\\d*)[^\\d]*(\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? \"attr\" : \"getAttribute\";\n var transform = element[getter](\"transform\") || \"\";\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(\" \");\n }).split(\" \");\n return {\n x: +translate[0] || 1,\n y: +translate[1] || 1\n };\n };\n drawing.setScale = function(element, x, y) {\n var re = /(\\bscale\\(.*?\\);?)/;\n var getter = element.attr ? \"attr\" : \"getAttribute\";\n var setter = element.attr ? \"attr\" : \"setAttribute\";\n var transform = element[getter](\"transform\") || \"\";\n x = x || 1;\n y = y || 1;\n transform = transform.replace(re, \"\").trim();\n transform += \"scale(\" + x + \",\" + y + \")\";\n transform = transform.trim();\n element[setter](\"transform\", transform);\n return transform;\n };\n var SCALE_RE = /\\s*sc.*/;\n drawing.setPointGroupScale = function(selection, xScale, yScale) {\n xScale = xScale || 1;\n yScale = yScale || 1;\n if (!selection) return;\n var scale = xScale === 1 && yScale === 1 ? \"\" : \"scale(\" + xScale + \",\" + yScale + \")\";\n selection.each(function() {\n var t = (this.getAttribute(\"transform\") || \"\").replace(SCALE_RE, \"\");\n t += scale;\n t = t.trim();\n this.setAttribute(\"transform\", t);\n });\n };\n var TEXT_POINT_LAST_TRANSLATION_RE = /translate\\([^)]*\\)\\s*$/;\n drawing.setTextPointsScale = function(selection, xScale, yScale) {\n if (!selection) return;\n selection.each(function() {\n var transforms;\n var el = d3.select(this);\n var text = el.select(\"text\");\n if (!text.node()) return;\n var x = parseFloat(text.attr(\"x\") || 0);\n var y = parseFloat(text.attr(\"y\") || 0);\n var existingTransform = (el.attr(\"transform\") || \"\").match(TEXT_POINT_LAST_TRANSLATION_RE);\n if (xScale === 1 && yScale === 1) {\n transforms = [];\n } else {\n transforms = [\n strTranslate(x, y),\n \"scale(\" + xScale + \",\" + yScale + \")\",\n strTranslate(-x, -y)\n ];\n }\n if (existingTransform) {\n transforms.push(existingTransform);\n }\n el.attr(\"transform\", transforms.join(\"\"));\n });\n };\n function getMarkerStandoff(d, trace) {\n var standoff;\n if (d) standoff = d.mf;\n if (standoff === void 0) {\n standoff = trace.marker ? trace.marker.standoff || 0 : 0;\n }\n if (!trace._geo && !trace._xA) {\n return -standoff;\n }\n return standoff;\n }\n drawing.getMarkerStandoff = getMarkerStandoff;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var sin = Math.sin;\n function rotate(t, xy) {\n var x = xy[0];\n var y = xy[1];\n return [\n x * cos(t) - y * sin(t),\n x * sin(t) + y * cos(t)\n ];\n }\n var previousLon;\n var previousLat;\n var previousX;\n var previousY;\n var previousI;\n var previousTraceUid;\n function getMarkerAngle(d, trace) {\n var angle = d.ma;\n if (angle === void 0) {\n angle = trace.marker.angle;\n if (!angle || Lib.isArrayOrTypedArray(angle)) {\n angle = 0;\n }\n }\n var x, y;\n var ref = trace.marker.angleref;\n if (ref === \"previous\" || ref === \"north\") {\n if (trace._geo) {\n var p = trace._geo.project(d.lonlat);\n x = p[0];\n y = p[1];\n } else {\n var xa = trace._xA;\n var ya = trace._yA;\n if (xa && ya) {\n x = xa.c2p(d.x);\n y = ya.c2p(d.y);\n } else {\n return 90;\n }\n }\n if (trace._geo) {\n var lon = d.lonlat[0];\n var lat = d.lonlat[1];\n var north = trace._geo.project([\n lon,\n lat + 1e-5\n // epsilon\n ]);\n var east = trace._geo.project([\n lon + 1e-5,\n // epsilon\n lat\n ]);\n var u = atan2(\n east[1] - y,\n east[0] - x\n );\n var v = atan2(\n north[1] - y,\n north[0] - x\n );\n var t;\n if (ref === \"north\") {\n t = angle / 180 * Math.PI;\n } else if (ref === \"previous\") {\n var lon1 = lon / 180 * Math.PI;\n var lat1 = lat / 180 * Math.PI;\n var lon2 = previousLon / 180 * Math.PI;\n var lat2 = previousLat / 180 * Math.PI;\n var dLon = lon2 - lon1;\n var deltaY = cos(lat2) * sin(dLon);\n var deltaX = sin(lat2) * cos(lat1) - cos(lat2) * sin(lat1) * cos(dLon);\n t = -atan2(\n deltaY,\n deltaX\n ) - Math.PI;\n previousLon = lon;\n previousLat = lat;\n }\n var A2 = rotate(u, [cos(t), 0]);\n var B2 = rotate(v, [sin(t), 0]);\n angle = atan2(\n A2[1] + B2[1],\n A2[0] + B2[0]\n ) / Math.PI * 180;\n if (ref === \"previous\" && !(previousTraceUid === trace.uid && d.i === previousI + 1)) {\n angle = null;\n }\n }\n if (ref === \"previous\" && !trace._geo) {\n if (previousTraceUid === trace.uid && d.i === previousI + 1 && isNumeric(x) && isNumeric(y)) {\n var dX = x - previousX;\n var dY = y - previousY;\n var shape = trace.line ? trace.line.shape || \"\" : \"\";\n var lastShapeChar = shape.slice(shape.length - 1);\n if (lastShapeChar === \"h\") dY = 0;\n if (lastShapeChar === \"v\") dX = 0;\n angle += atan2(dY, dX) / Math.PI * 180 + 90;\n } else {\n angle = null;\n }\n }\n }\n previousX = x;\n previousY = y;\n previousI = d.i;\n previousTraceUid = trace.uid;\n return angle;\n }\n drawing.getMarkerAngle = getMarkerAngle;\n }\n });\n\n // src/components/titles/index.js\n var require_titles = __commonJS({\n \"src/components/titles/index.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Plots = require_plots();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Drawing = require_drawing();\n var Color2 = require_color();\n var svgTextUtils = require_svg_text_utils();\n var interactConstants = require_interactions();\n var OPPOSITE_SIDE = require_alignment().OPPOSITE_SIDE;\n var numStripRE = / [XY][0-9]* /;\n var SUBTITLE_PADDING_MATHJAX_EM = 1.6;\n var SUBTITLE_PADDING_EM = 1.6;\n function draw(gd, titleClass, options) {\n var fullLayout = gd._fullLayout;\n var cont = options.propContainer;\n var prop = options.propName;\n var placeholder = options.placeholder;\n var traceIndex = options.traceIndex;\n var avoid = options.avoid || {};\n var attributes = options.attributes;\n var transform = options.transform;\n var group = options.containerGroup;\n var opacity = 1;\n var title = cont.title;\n var txt = (title && title.text ? title.text : \"\").trim();\n var titleIsPlaceholder = false;\n var font = title && title.font ? title.font : {};\n var fontFamily = font.family;\n var fontSize = font.size;\n var fontColor = font.color;\n var fontWeight = font.weight;\n var fontStyle = font.style;\n var fontVariant = font.variant;\n var fontTextcase = font.textcase;\n var fontLineposition = font.lineposition;\n var fontShadow = font.shadow;\n var subtitleProp = options.subtitlePropName;\n var subtitleEnabled = !!subtitleProp;\n var subtitlePlaceholder = options.subtitlePlaceholder;\n var subtitle = (cont.title || {}).subtitle || { text: \"\", font: {} };\n var subtitleTxt = subtitle.text.trim();\n var subtitleIsPlaceholder = false;\n var subtitleOpacity = 1;\n var subtitleFont = subtitle.font;\n var subFontFamily = subtitleFont.family;\n var subFontSize = subtitleFont.size;\n var subFontColor = subtitleFont.color;\n var subFontWeight = subtitleFont.weight;\n var subFontStyle = subtitleFont.style;\n var subFontVariant = subtitleFont.variant;\n var subFontTextcase = subtitleFont.textcase;\n var subFontLineposition = subtitleFont.lineposition;\n var subFontShadow = subtitleFont.shadow;\n var editAttr;\n if (prop === \"title.text\") editAttr = \"titleText\";\n else if (prop.indexOf(\"axis\") !== -1) editAttr = \"axisTitleText\";\n else if (prop.indexOf(\"colorbar\" !== -1)) editAttr = \"colorbarTitleText\";\n var editable = gd._context.edits[editAttr];\n function matchesPlaceholder(text, placeholder2) {\n if (text === void 0 || placeholder2 === void 0) return false;\n return text.replace(numStripRE, \" % \") === placeholder2.replace(numStripRE, \" % \");\n }\n if (txt === \"\") opacity = 0;\n else if (matchesPlaceholder(txt, placeholder)) {\n if (!editable) txt = \"\";\n opacity = 0.2;\n titleIsPlaceholder = true;\n }\n if (subtitleEnabled) {\n if (subtitleTxt === \"\") subtitleOpacity = 0;\n else if (matchesPlaceholder(subtitleTxt, subtitlePlaceholder)) {\n if (!editable) subtitleTxt = \"\";\n subtitleOpacity = 0.2;\n subtitleIsPlaceholder = true;\n }\n }\n if (options._meta) {\n txt = Lib.templateString(txt, options._meta);\n } else if (fullLayout._meta) {\n txt = Lib.templateString(txt, fullLayout._meta);\n }\n var elShouldExist = txt || subtitleTxt || editable;\n var hColorbarMoveTitle;\n if (!group) {\n group = Lib.ensureSingle(fullLayout._infolayer, \"g\", \"g-\" + titleClass);\n hColorbarMoveTitle = fullLayout._hColorbarMoveTitle;\n }\n var el = group.selectAll(\"text.\" + titleClass).data(elShouldExist ? [0] : []);\n el.enter().append(\"text\");\n el.text(txt).attr(\"class\", titleClass);\n el.exit().remove();\n var subtitleEl = null;\n var subtitleClass = titleClass + \"-subtitle\";\n var subtitleElShouldExist = subtitleTxt || editable;\n if (subtitleEnabled && subtitleElShouldExist) {\n subtitleEl = group.selectAll(\"text.\" + subtitleClass).data(subtitleElShouldExist ? [0] : []);\n subtitleEl.enter().append(\"text\");\n subtitleEl.text(subtitleTxt).attr(\"class\", subtitleClass);\n subtitleEl.exit().remove();\n }\n if (!elShouldExist) return group;\n function titleLayout(titleEl, subtitleEl2) {\n Lib.syncOrAsync([drawTitle, scootTitle], { title: titleEl, subtitle: subtitleEl2 });\n }\n function drawTitle(titleAndSubtitleEls) {\n var titleEl = titleAndSubtitleEls.title;\n var subtitleEl2 = titleAndSubtitleEls.subtitle;\n var transformVal;\n if (!transform && hColorbarMoveTitle) {\n transform = {};\n }\n if (transform) {\n transformVal = \"\";\n if (transform.rotate) {\n transformVal += \"rotate(\" + [transform.rotate, attributes.x, attributes.y] + \")\";\n }\n if (transform.offset || hColorbarMoveTitle) {\n transformVal += strTranslate(0, (transform.offset || 0) - (hColorbarMoveTitle || 0));\n }\n } else {\n transformVal = null;\n }\n titleEl.attr(\"transform\", transformVal);\n function adjustSubtitlePosition(titleElMathGroup2) {\n if (!titleElMathGroup2) return;\n var subtitleElement = d3.select(titleElMathGroup2.node().parentNode).select(\".\" + subtitleClass);\n if (!subtitleElement.empty()) {\n var titleElMathBbox2 = titleElMathGroup2.node().getBBox();\n if (titleElMathBbox2.height) {\n var subtitleY3 = titleElMathBbox2.y + titleElMathBbox2.height + SUBTITLE_PADDING_MATHJAX_EM * subFontSize;\n subtitleElement.attr(\"y\", subtitleY3);\n }\n }\n }\n titleEl.style(\"opacity\", opacity * Color2.opacity(fontColor)).call(Drawing.font, {\n color: Color2.rgb(fontColor),\n size: d3.round(fontSize, 2),\n family: fontFamily,\n weight: fontWeight,\n style: fontStyle,\n variant: fontVariant,\n textcase: fontTextcase,\n shadow: fontShadow,\n lineposition: fontLineposition\n }).attr(attributes).call(svgTextUtils.convertToTspans, gd, adjustSubtitlePosition);\n if (subtitleEl2) {\n var titleElMathGroup = group.select(\".\" + titleClass + \"-math-group\");\n var titleElBbox2 = titleEl.node().getBBox();\n var titleElMathBbox = titleElMathGroup.node() ? titleElMathGroup.node().getBBox() : void 0;\n var subtitleY2 = titleElMathBbox ? titleElMathBbox.y + titleElMathBbox.height + SUBTITLE_PADDING_MATHJAX_EM * subFontSize : titleElBbox2.y + titleElBbox2.height + SUBTITLE_PADDING_EM * subFontSize;\n var subtitleAttributes = Lib.extendFlat({}, attributes, {\n y: subtitleY2\n });\n subtitleEl2.attr(\"transform\", transformVal);\n subtitleEl2.style(\"opacity\", subtitleOpacity * Color2.opacity(subFontColor)).call(Drawing.font, {\n color: Color2.rgb(subFontColor),\n size: d3.round(subFontSize, 2),\n family: subFontFamily,\n weight: subFontWeight,\n style: subFontStyle,\n variant: subFontVariant,\n textcase: subFontTextcase,\n shadow: subFontShadow,\n lineposition: subFontLineposition\n }).attr(subtitleAttributes).call(svgTextUtils.convertToTspans, gd);\n }\n return Plots.previousPromises(gd);\n }\n function scootTitle(titleAndSubtitleEls) {\n var titleElIn = titleAndSubtitleEls.title;\n var titleGroup = d3.select(titleElIn.node().parentNode);\n if (avoid && avoid.selection && avoid.side && txt) {\n titleGroup.attr(\"transform\", null);\n var backside = OPPOSITE_SIDE[avoid.side];\n var shiftSign = avoid.side === \"left\" || avoid.side === \"top\" ? -1 : 1;\n var pad = isNumeric(avoid.pad) ? avoid.pad : 2;\n var titlebb = Drawing.bBox(titleGroup.node());\n var reservedMargins = { t: 0, b: 0, l: 0, r: 0 };\n var margins = gd._fullLayout._reservedMargin;\n for (var key in margins) {\n for (var side in margins[key]) {\n var val = margins[key][side];\n reservedMargins[side] = Math.max(reservedMargins[side], val);\n }\n }\n var paperbb = {\n left: reservedMargins.l,\n top: reservedMargins.t,\n right: fullLayout.width - reservedMargins.r,\n bottom: fullLayout.height - reservedMargins.b\n };\n var maxshift = avoid.maxShift || shiftSign * (paperbb[avoid.side] - titlebb[avoid.side]);\n var shift = 0;\n if (maxshift < 0) {\n shift = maxshift;\n } else {\n var offsetLeft = avoid.offsetLeft || 0;\n var offsetTop = avoid.offsetTop || 0;\n titlebb.left -= offsetLeft;\n titlebb.right -= offsetLeft;\n titlebb.top -= offsetTop;\n titlebb.bottom -= offsetTop;\n avoid.selection.each(function() {\n var avoidbb = Drawing.bBox(this);\n if (Lib.bBoxIntersect(titlebb, avoidbb, pad)) {\n shift = Math.max(shift, shiftSign * (avoidbb[avoid.side] - titlebb[backside]) + pad);\n }\n });\n shift = Math.min(maxshift, shift);\n cont._titleScoot = Math.abs(shift);\n }\n if (shift > 0 || maxshift < 0) {\n var shiftTemplate = {\n left: [-shift, 0],\n right: [shift, 0],\n top: [0, -shift],\n bottom: [0, shift]\n }[avoid.side];\n titleGroup.attr(\"transform\", strTranslate(shiftTemplate[0], shiftTemplate[1]));\n }\n }\n }\n el.call(titleLayout, subtitleEl);\n function setPlaceholder(element, placeholderText) {\n element.text(placeholderText).on(\"mouseover.opacity\", function() {\n d3.select(this).transition().duration(interactConstants.SHOW_PLACEHOLDER).style(\"opacity\", 1);\n }).on(\"mouseout.opacity\", function() {\n d3.select(this).transition().duration(interactConstants.HIDE_PLACEHOLDER).style(\"opacity\", 0);\n });\n }\n if (editable) {\n if (!txt) {\n setPlaceholder(el, placeholder);\n titleIsPlaceholder = true;\n } else el.on(\".opacity\", null);\n el.call(svgTextUtils.makeEditable, { gd }).on(\"edit\", function(text) {\n if (traceIndex !== void 0) {\n Registry.call(\"_guiRestyle\", gd, prop, text, traceIndex);\n } else {\n Registry.call(\"_guiRelayout\", gd, prop, text);\n }\n }).on(\"cancel\", function() {\n this.text(this.attr(\"data-unformatted\")).call(titleLayout);\n }).on(\"input\", function(d) {\n this.text(d || \" \").call(svgTextUtils.positionText, attributes.x, attributes.y);\n });\n if (subtitleEnabled) {\n if (subtitleEnabled && !txt) {\n var titleElBbox = el.node().getBBox();\n var subtitleY = titleElBbox.y + titleElBbox.height + SUBTITLE_PADDING_EM * subFontSize;\n subtitleEl.attr(\"y\", subtitleY);\n }\n if (!subtitleTxt) {\n setPlaceholder(subtitleEl, subtitlePlaceholder);\n subtitleIsPlaceholder = true;\n } else subtitleEl.on(\".opacity\", null);\n subtitleEl.call(svgTextUtils.makeEditable, { gd }).on(\"edit\", function(text) {\n Registry.call(\"_guiRelayout\", gd, \"title.subtitle.text\", text);\n }).on(\"cancel\", function() {\n this.text(this.attr(\"data-unformatted\")).call(titleLayout);\n }).on(\"input\", function(d) {\n this.text(d || \" \").call(svgTextUtils.positionText, subtitleEl.attr(\"x\"), subtitleEl.attr(\"y\"));\n });\n }\n }\n el.classed(\"js-placeholder\", titleIsPlaceholder);\n if (subtitleEl) subtitleEl.classed(\"js-placeholder\", subtitleIsPlaceholder);\n return group;\n }\n module.exports = {\n draw,\n SUBTITLE_PADDING_EM,\n SUBTITLE_PADDING_MATHJAX_EM\n };\n }\n });\n\n // src/plots/cartesian/set_convert.js\n var require_set_convert = __commonJS({\n \"src/plots/cartesian/set_convert.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var utcFormat = require_d3_time_format().utcFormat;\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var isNumeric = require_fast_isnumeric();\n var cleanNumber = Lib.cleanNumber;\n var ms2DateTime = Lib.ms2DateTime;\n var dateTime2ms = Lib.dateTime2ms;\n var ensureNumber = Lib.ensureNumber;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var numConstants = require_numerical();\n var FP_SAFE = numConstants.FP_SAFE;\n var BADNUM = numConstants.BADNUM;\n var LOG_CLIP = numConstants.LOG_CLIP;\n var ONEWEEK = numConstants.ONEWEEK;\n var ONEDAY = numConstants.ONEDAY;\n var ONEHOUR = numConstants.ONEHOUR;\n var ONEMIN = numConstants.ONEMIN;\n var ONESEC = numConstants.ONESEC;\n var axisIds = require_axis_ids();\n var constants = require_constants2();\n var HOUR_PATTERN = constants.HOUR_PATTERN;\n var WEEKDAY_PATTERN = constants.WEEKDAY_PATTERN;\n function fromLog(v) {\n return Math.pow(10, v);\n }\n function isValidCategory(v) {\n return v !== null && v !== void 0;\n }\n module.exports = function setConvert(ax, fullLayout) {\n fullLayout = fullLayout || {};\n var axId = ax._id || \"x\";\n var axLetter = axId.charAt(0);\n function toLog(v, clip) {\n if (v > 0) return Math.log(v) / Math.LN10;\n else if (v <= 0 && clip && ax.range && ax.range.length === 2) {\n var r0 = ax.range[0];\n var r1 = ax.range[1];\n return 0.5 * (r0 + r1 - 2 * LOG_CLIP * Math.abs(r0 - r1));\n } else return BADNUM;\n }\n function dt2ms(v, _, calendar, opts) {\n if ((opts || {}).msUTC && isNumeric(v)) {\n return +v;\n }\n var ms = dateTime2ms(v, calendar || ax.calendar);\n if (ms === BADNUM) {\n if (isNumeric(v)) {\n v = +v;\n var msecTenths = Math.floor(Lib.mod(v + 0.05, 1) * 10);\n var msRounded = Math.round(v - msecTenths / 10);\n ms = dateTime2ms(new Date(msRounded)) + msecTenths / 10;\n } else return BADNUM;\n }\n return ms;\n }\n function ms2dt(v, r, calendar) {\n return ms2DateTime(v, r, calendar || ax.calendar);\n }\n function getCategoryName(v) {\n return ax._categories[Math.round(v)];\n }\n function setCategoryIndex(v) {\n if (isValidCategory(v)) {\n if (ax._categoriesMap === void 0) {\n ax._categoriesMap = {};\n }\n if (ax._categoriesMap[v] !== void 0) {\n return ax._categoriesMap[v];\n } else {\n ax._categories.push(typeof v === \"number\" ? String(v) : v);\n var curLength = ax._categories.length - 1;\n ax._categoriesMap[v] = curLength;\n return curLength;\n }\n }\n return BADNUM;\n }\n function setMultiCategoryIndex(arrayIn, len) {\n var arrayOut = new Array(len);\n for (var i = 0; i < len; i++) {\n var v0 = (arrayIn[0] || [])[i];\n var v1 = (arrayIn[1] || [])[i];\n arrayOut[i] = getCategoryIndex([v0, v1]);\n }\n return arrayOut;\n }\n function getCategoryIndex(v) {\n if (ax._categoriesMap) {\n return ax._categoriesMap[v];\n }\n }\n function getCategoryPosition(v) {\n var index = getCategoryIndex(v);\n if (index !== void 0) return index;\n if (isNumeric(v)) return +v;\n }\n function getRangePosition(v) {\n return isNumeric(v) ? +v : getCategoryIndex(v);\n }\n function _l2p(v, m, b) {\n return d3.round(b + m * v, 2);\n }\n function _p2l(px, m, b) {\n return (px - b) / m;\n }\n var l2p = function l2p2(v) {\n if (!isNumeric(v)) return BADNUM;\n return _l2p(v, ax._m, ax._b);\n };\n var p2l = function(px) {\n return _p2l(px, ax._m, ax._b);\n };\n if (ax.rangebreaks) {\n var isY = axLetter === \"y\";\n l2p = function(v) {\n if (!isNumeric(v)) return BADNUM;\n var len = ax._rangebreaks.length;\n if (!len) return _l2p(v, ax._m, ax._b);\n var flip = isY;\n if (ax.range[0] > ax.range[1]) flip = !flip;\n var signAx = flip ? -1 : 1;\n var pos = signAx * v;\n var q = 0;\n for (var i = 0; i < len; i++) {\n var min = signAx * ax._rangebreaks[i].min;\n var max = signAx * ax._rangebreaks[i].max;\n if (pos < min) break;\n if (pos > max) q = i + 1;\n else {\n q = pos < (min + max) / 2 ? i : i + 1;\n break;\n }\n }\n var b2 = ax._B[q] || 0;\n if (!isFinite(b2)) return 0;\n return _l2p(v, ax._m2, b2);\n };\n p2l = function(px) {\n var len = ax._rangebreaks.length;\n if (!len) return _p2l(px, ax._m, ax._b);\n var q = 0;\n for (var i = 0; i < len; i++) {\n if (px < ax._rangebreaks[i].pmin) break;\n if (px > ax._rangebreaks[i].pmax) q = i + 1;\n }\n return _p2l(px, ax._m2, ax._B[q]);\n };\n }\n ax.c2l = ax.type === \"log\" ? toLog : ensureNumber;\n ax.l2c = ax.type === \"log\" ? fromLog : ensureNumber;\n ax.l2p = l2p;\n ax.p2l = p2l;\n ax.c2p = ax.type === \"log\" ? function(v, clip) {\n return l2p(toLog(v, clip));\n } : l2p;\n ax.p2c = ax.type === \"log\" ? function(px) {\n return fromLog(p2l(px));\n } : p2l;\n if ([\"linear\", \"-\"].indexOf(ax.type) !== -1) {\n ax.d2r = ax.r2d = ax.d2c = ax.r2c = ax.d2l = ax.r2l = cleanNumber;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ensureNumber;\n ax.d2p = ax.r2p = function(v) {\n return ax.l2p(cleanNumber(v));\n };\n ax.p2d = ax.p2r = p2l;\n ax.cleanPos = ensureNumber;\n } else if (ax.type === \"log\") {\n ax.d2r = ax.d2l = function(v, clip) {\n return toLog(cleanNumber(v), clip);\n };\n ax.r2d = ax.r2c = function(v) {\n return fromLog(cleanNumber(v));\n };\n ax.d2c = ax.r2l = cleanNumber;\n ax.c2d = ax.l2r = ensureNumber;\n ax.c2r = toLog;\n ax.l2d = fromLog;\n ax.d2p = function(v, clip) {\n return ax.l2p(ax.d2r(v, clip));\n };\n ax.p2d = function(px) {\n return fromLog(p2l(px));\n };\n ax.r2p = function(v) {\n return ax.l2p(cleanNumber(v));\n };\n ax.p2r = p2l;\n ax.cleanPos = ensureNumber;\n } else if (ax.type === \"date\") {\n ax.d2r = ax.r2d = Lib.identity;\n ax.d2c = ax.r2c = ax.d2l = ax.r2l = dt2ms;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ms2dt;\n ax.d2p = ax.r2p = function(v, _, calendar) {\n return ax.l2p(dt2ms(v, 0, calendar));\n };\n ax.p2d = ax.p2r = function(px, r, calendar) {\n return ms2dt(p2l(px), r, calendar);\n };\n ax.cleanPos = function(v) {\n return Lib.cleanDate(v, BADNUM, ax.calendar);\n };\n } else if (ax.type === \"category\") {\n ax.d2c = ax.d2l = setCategoryIndex;\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n ax.r2c = function(v) {\n var index = getRangePosition(v);\n return index !== void 0 ? index : ax.fraction2r(0.5);\n };\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getRangePosition;\n ax.d2p = function(v) {\n return ax.l2p(ax.r2c(v));\n };\n ax.p2d = function(px) {\n return getCategoryName(p2l(px));\n };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n ax.cleanPos = function(v) {\n if (typeof v === \"string\" && v !== \"\") return v;\n return ensureNumber(v);\n };\n } else if (ax.type === \"multicategory\") {\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n ax.r2c = function(v) {\n var index = getCategoryPosition(v);\n return index !== void 0 ? index : ax.fraction2r(0.5);\n };\n ax.r2c_just_indices = getCategoryIndex;\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getCategoryPosition;\n ax.d2p = function(v) {\n return ax.l2p(ax.r2c(v));\n };\n ax.p2d = function(px) {\n return getCategoryName(p2l(px));\n };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n ax.cleanPos = function(v) {\n if (Array.isArray(v) || typeof v === \"string\" && v !== \"\") return v;\n return ensureNumber(v);\n };\n ax.setupMultiCategory = function(fullData) {\n var traceIndices = ax._traceIndices;\n var i, j;\n var group = ax._matchGroup;\n if (group && ax._categories.length === 0) {\n for (var axId2 in group) {\n if (axId2 !== axId) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n traceIndices = traceIndices.concat(ax2._traceIndices);\n }\n }\n }\n var seen = [[0, {}], [0, {}]];\n var list = [];\n for (i = 0; i < traceIndices.length; i++) {\n var trace = fullData[traceIndices[i]];\n if (axLetter in trace) {\n var arrayIn = trace[axLetter];\n var len = trace._length || Lib.minRowLength(arrayIn);\n if (isArrayOrTypedArray(arrayIn[0]) && isArrayOrTypedArray(arrayIn[1])) {\n for (j = 0; j < len; j++) {\n var v0 = arrayIn[0][j];\n var v1 = arrayIn[1][j];\n if (isValidCategory(v0) && isValidCategory(v1)) {\n list.push([v0, v1]);\n if (!(v0 in seen[0][1])) {\n seen[0][1][v0] = seen[0][0]++;\n }\n if (!(v1 in seen[1][1])) {\n seen[1][1][v1] = seen[1][0]++;\n }\n }\n }\n }\n }\n }\n list.sort(function(a, b) {\n var ind0 = seen[0][1];\n var d = ind0[a[0]] - ind0[b[0]];\n if (d) return d;\n var ind1 = seen[1][1];\n return ind1[a[1]] - ind1[b[1]];\n });\n for (i = 0; i < list.length; i++) {\n setCategoryIndex(list[i]);\n }\n };\n }\n ax.fraction2r = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return ax.l2r(rl0 + v * (rl1 - rl0));\n };\n ax.r2fraction = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return (ax.r2l(v) - rl0) / (rl1 - rl0);\n };\n ax.limitRange = function(rangeAttr) {\n var minallowed = ax.minallowed;\n var maxallowed = ax.maxallowed;\n if (minallowed === void 0 && maxallowed === void 0) return;\n if (!rangeAttr) rangeAttr = \"range\";\n var range = Lib.nestedProperty(ax, rangeAttr).get();\n var rng = Lib.simpleMap(range, ax.r2l);\n var axrev = rng[1] < rng[0];\n if (axrev) rng.reverse();\n var bounds = Lib.simpleMap([minallowed, maxallowed], ax.r2l);\n if (minallowed !== void 0 && rng[0] < bounds[0]) range[axrev ? 1 : 0] = minallowed;\n if (maxallowed !== void 0 && rng[1] > bounds[1]) range[axrev ? 0 : 1] = maxallowed;\n if (range[0] === range[1]) {\n var minL = ax.l2r(minallowed);\n var maxL = ax.l2r(maxallowed);\n if (minallowed !== void 0) {\n var _max = minL + 1;\n if (maxallowed !== void 0) _max = Math.min(_max, maxL);\n range[axrev ? 1 : 0] = _max;\n }\n if (maxallowed !== void 0) {\n var _min = maxL + 1;\n if (minallowed !== void 0) _min = Math.max(_min, minL);\n range[axrev ? 0 : 1] = _min;\n }\n }\n };\n ax.cleanRange = function(rangeAttr, opts) {\n ax._cleanRange(rangeAttr, opts);\n ax.limitRange(rangeAttr);\n };\n ax._cleanRange = function(rangeAttr, opts) {\n if (!opts) opts = {};\n if (!rangeAttr) rangeAttr = \"range\";\n var range = Lib.nestedProperty(ax, rangeAttr).get();\n var i, dflt;\n if (ax.type === \"date\") dflt = Lib.dfltRange(ax.calendar);\n else if (axLetter === \"y\") dflt = constants.DFLTRANGEY;\n else if (ax._name === \"realaxis\") dflt = [0, 1];\n else dflt = opts.dfltRange || constants.DFLTRANGEX;\n dflt = dflt.slice();\n if (ax.rangemode === \"tozero\" || ax.rangemode === \"nonnegative\") {\n dflt[0] = 0;\n }\n if (!range || range.length !== 2) {\n Lib.nestedProperty(ax, rangeAttr).set(dflt);\n return;\n }\n var nullRange0 = range[0] === null;\n var nullRange1 = range[1] === null;\n if (ax.type === \"date\" && !ax.autorange) {\n range[0] = Lib.cleanDate(range[0], BADNUM, ax.calendar);\n range[1] = Lib.cleanDate(range[1], BADNUM, ax.calendar);\n }\n for (i = 0; i < 2; i++) {\n if (ax.type === \"date\") {\n if (!Lib.isDateTime(range[i], ax.calendar)) {\n ax[rangeAttr] = dflt;\n break;\n }\n if (ax.r2l(range[0]) === ax.r2l(range[1])) {\n var linCenter = Lib.constrain(\n ax.r2l(range[0]),\n Lib.MIN_MS + 1e3,\n Lib.MAX_MS - 1e3\n );\n range[0] = ax.l2r(linCenter - 1e3);\n range[1] = ax.l2r(linCenter + 1e3);\n break;\n }\n } else {\n if (!isNumeric(range[i])) {\n if (!(nullRange0 || nullRange1) && isNumeric(range[1 - i])) {\n range[i] = range[1 - i] * (i ? 10 : 0.1);\n } else {\n ax[rangeAttr] = dflt;\n break;\n }\n }\n if (range[i] < -FP_SAFE) range[i] = -FP_SAFE;\n else if (range[i] > FP_SAFE) range[i] = FP_SAFE;\n if (range[0] === range[1]) {\n var inc = Math.max(1, Math.abs(range[0] * 1e-6));\n range[0] -= inc;\n range[1] += inc;\n }\n }\n }\n };\n ax.setScale = function(usePrivateRange) {\n var gs = fullLayout._size;\n if (ax.overlaying) {\n var ax2 = axisIds.getFromId({ _fullLayout: fullLayout }, ax.overlaying);\n ax.domain = ax2.domain;\n }\n var rangeAttr = usePrivateRange && ax._r ? \"_r\" : \"range\";\n var calendar = ax.calendar;\n ax.cleanRange(rangeAttr);\n var rl0 = ax.r2l(ax[rangeAttr][0], calendar);\n var rl1 = ax.r2l(ax[rangeAttr][1], calendar);\n var isY2 = axLetter === \"y\";\n if (isY2) {\n ax._offset = gs.t + (1 - ax.domain[1]) * gs.h;\n ax._length = gs.h * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl0 - rl1);\n ax._b = -ax._m * rl1;\n } else {\n ax._offset = gs.l + ax.domain[0] * gs.w;\n ax._length = gs.w * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl1 - rl0);\n ax._b = -ax._m * rl0;\n }\n ax._rangebreaks = [];\n ax._lBreaks = 0;\n ax._m2 = 0;\n ax._B = [];\n if (ax.rangebreaks) {\n var i, brk;\n ax._rangebreaks = ax.locateBreaks(\n Math.min(rl0, rl1),\n Math.max(rl0, rl1)\n );\n if (ax._rangebreaks.length) {\n for (i = 0; i < ax._rangebreaks.length; i++) {\n brk = ax._rangebreaks[i];\n ax._lBreaks += Math.abs(brk.max - brk.min);\n }\n var flip = isY2;\n if (rl0 > rl1) flip = !flip;\n if (flip) ax._rangebreaks.reverse();\n var sign = flip ? -1 : 1;\n ax._m2 = sign * ax._length / (Math.abs(rl1 - rl0) - ax._lBreaks);\n ax._B.push(-ax._m2 * (isY2 ? rl1 : rl0));\n for (i = 0; i < ax._rangebreaks.length; i++) {\n brk = ax._rangebreaks[i];\n ax._B.push(\n ax._B[ax._B.length - 1] - sign * ax._m2 * (brk.max - brk.min)\n );\n }\n for (i = 0; i < ax._rangebreaks.length; i++) {\n brk = ax._rangebreaks[i];\n brk.pmin = l2p(brk.min);\n brk.pmax = l2p(brk.max);\n }\n }\n }\n if (!isFinite(ax._m) || !isFinite(ax._b) || ax._length < 0) {\n fullLayout._replotting = false;\n throw new Error(\"Something went wrong with axis scaling\");\n }\n };\n ax.maskBreaks = function(v) {\n var rangebreaksIn = ax.rangebreaks || [];\n var bnds, b0, b1, vb, vDate;\n if (!rangebreaksIn._cachedPatterns) {\n rangebreaksIn._cachedPatterns = rangebreaksIn.map(function(brk2) {\n return brk2.enabled && brk2.bounds ? Lib.simpleMap(\n brk2.bounds,\n brk2.pattern ? cleanNumber : ax.d2c\n // case of pattern: ''\n ) : null;\n });\n }\n if (!rangebreaksIn._cachedValues) {\n rangebreaksIn._cachedValues = rangebreaksIn.map(function(brk2) {\n return brk2.enabled && brk2.values ? Lib.simpleMap(brk2.values, ax.d2c).sort(Lib.sorterAsc) : null;\n });\n }\n for (var i = 0; i < rangebreaksIn.length; i++) {\n var brk = rangebreaksIn[i];\n if (brk.enabled) {\n if (brk.bounds) {\n var pattern = brk.pattern;\n bnds = rangebreaksIn._cachedPatterns[i];\n b0 = bnds[0];\n b1 = bnds[1];\n switch (pattern) {\n case WEEKDAY_PATTERN:\n vDate = new Date(v);\n vb = vDate.getUTCDay();\n if (b0 > b1) {\n b1 += 7;\n if (vb < b0) vb += 7;\n }\n break;\n case HOUR_PATTERN:\n vDate = new Date(v);\n var hours = vDate.getUTCHours();\n var minutes = vDate.getUTCMinutes();\n var seconds = vDate.getUTCSeconds();\n var milliseconds = vDate.getUTCMilliseconds();\n vb = hours + (minutes / 60 + seconds / 3600 + milliseconds / 36e5);\n if (b0 > b1) {\n b1 += 24;\n if (vb < b0) vb += 24;\n }\n break;\n case \"\":\n vb = v;\n break;\n }\n if (vb >= b0 && vb < b1) return BADNUM;\n } else {\n var vals = rangebreaksIn._cachedValues[i];\n for (var j = 0; j < vals.length; j++) {\n b0 = vals[j];\n b1 = b0 + brk.dvalue;\n if (v >= b0 && v < b1) return BADNUM;\n }\n }\n }\n }\n return v;\n };\n ax.locateBreaks = function(r0, r1) {\n var i, bnds, b0, b1;\n var rangebreaksOut = [];\n if (!ax.rangebreaks) return rangebreaksOut;\n var rangebreaksIn = ax.rangebreaks.slice().sort(function(a, b) {\n if (a.pattern === WEEKDAY_PATTERN && b.pattern === HOUR_PATTERN) return -1;\n if (b.pattern === WEEKDAY_PATTERN && a.pattern === HOUR_PATTERN) return 1;\n return 0;\n });\n var addBreak = function(min, max) {\n min = Lib.constrain(min, r0, r1);\n max = Lib.constrain(max, r0, r1);\n if (min === max) return;\n var isNewBreak = true;\n for (var j2 = 0; j2 < rangebreaksOut.length; j2++) {\n var brkj = rangebreaksOut[j2];\n if (min < brkj.max && max >= brkj.min) {\n if (min < brkj.min) {\n brkj.min = min;\n }\n if (max > brkj.max) {\n brkj.max = max;\n }\n isNewBreak = false;\n }\n }\n if (isNewBreak) {\n rangebreaksOut.push({ min, max });\n }\n };\n for (i = 0; i < rangebreaksIn.length; i++) {\n var brk = rangebreaksIn[i];\n if (brk.enabled) {\n if (brk.bounds) {\n var t02 = r0;\n var t12 = r1;\n if (brk.pattern) {\n t02 = Math.floor(t02);\n }\n bnds = Lib.simpleMap(brk.bounds, brk.pattern ? cleanNumber : ax.r2l);\n b0 = bnds[0];\n b1 = bnds[1];\n var t0Date = new Date(t02);\n var bndDelta;\n var step;\n switch (brk.pattern) {\n case WEEKDAY_PATTERN:\n step = ONEWEEK;\n bndDelta = ((b1 < b0 ? 7 : 0) + (b1 - b0)) * ONEDAY;\n t02 += b0 * ONEDAY - (t0Date.getUTCDay() * ONEDAY + t0Date.getUTCHours() * ONEHOUR + t0Date.getUTCMinutes() * ONEMIN + t0Date.getUTCSeconds() * ONESEC + t0Date.getUTCMilliseconds());\n break;\n case HOUR_PATTERN:\n step = ONEDAY;\n bndDelta = ((b1 < b0 ? 24 : 0) + (b1 - b0)) * ONEHOUR;\n t02 += b0 * ONEHOUR - (t0Date.getUTCHours() * ONEHOUR + t0Date.getUTCMinutes() * ONEMIN + t0Date.getUTCSeconds() * ONESEC + t0Date.getUTCMilliseconds());\n break;\n default:\n t02 = Math.min(bnds[0], bnds[1]);\n t12 = Math.max(bnds[0], bnds[1]);\n step = t12 - t02;\n bndDelta = step;\n }\n for (var t = t02; t < t12; t += step) {\n addBreak(t, t + bndDelta);\n }\n } else {\n var vals = Lib.simpleMap(brk.values, ax.d2c);\n for (var j = 0; j < vals.length; j++) {\n b0 = vals[j];\n b1 = b0 + brk.dvalue;\n addBreak(b0, b1);\n }\n }\n }\n }\n rangebreaksOut.sort(function(a, b) {\n return a.min - b.min;\n });\n return rangebreaksOut;\n };\n ax.makeCalcdata = function(trace, axLetter2, opts) {\n var arrayIn, arrayOut, i, len;\n var axType = ax.type;\n var cal = axType === \"date\" && trace[axLetter2 + \"calendar\"];\n if (axLetter2 in trace) {\n arrayIn = trace[axLetter2];\n len = trace._length || Lib.minRowLength(arrayIn);\n if (Lib.isTypedArray(arrayIn) && (axType === \"linear\" || axType === \"log\")) {\n if (len === arrayIn.length) {\n return arrayIn;\n } else if (arrayIn.subarray) {\n return arrayIn.subarray(0, len);\n }\n }\n if (axType === \"multicategory\") {\n return setMultiCategoryIndex(arrayIn, len);\n }\n arrayOut = new Array(len);\n for (i = 0; i < len; i++) {\n arrayOut[i] = ax.d2c(arrayIn[i], 0, cal, opts);\n }\n } else {\n var v0 = axLetter2 + \"0\" in trace ? ax.d2c(trace[axLetter2 + \"0\"], 0, cal) : 0;\n var dv = trace[\"d\" + axLetter2] ? Number(trace[\"d\" + axLetter2]) : 1;\n arrayIn = trace[{ x: \"y\", y: \"x\" }[axLetter2]];\n len = trace._length || arrayIn.length;\n arrayOut = new Array(len);\n for (i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n if (ax.rangebreaks) {\n for (i = 0; i < len; i++) {\n arrayOut[i] = ax.maskBreaks(arrayOut[i]);\n }\n }\n return arrayOut;\n };\n ax.isValidRange = function(range, nullOk) {\n return Array.isArray(range) && range.length === 2 && (nullOk && range[0] === null || isNumeric(ax.r2l(range[0]))) && (nullOk && range[1] === null || isNumeric(ax.r2l(range[1])));\n };\n ax.getAutorangeDflt = function(range, options) {\n var autorangeDflt = !ax.isValidRange(range, \"nullOk\");\n if (autorangeDflt && options && options.reverseDflt) autorangeDflt = \"reversed\";\n else if (range) {\n if (range[0] === null && range[1] === null) {\n autorangeDflt = true;\n } else if (range[0] === null && range[1] !== null) {\n autorangeDflt = \"min\";\n } else if (range[0] !== null && range[1] === null) {\n autorangeDflt = \"max\";\n }\n }\n return autorangeDflt;\n };\n ax.isReversed = function() {\n var autorange = ax.autorange;\n return autorange === \"reversed\" || autorange === \"min reversed\" || autorange === \"max reversed\";\n };\n ax.isPtWithinRange = function(d, calendar) {\n var coord = ax.c2l(d[axLetter], null, calendar);\n var r0 = ax.r2l(ax.range[0]);\n var r1 = ax.r2l(ax.range[1]);\n if (r0 < r1) {\n return r0 <= coord && coord <= r1;\n } else {\n return r1 <= coord && coord <= r0;\n }\n };\n ax._emptyCategories = function() {\n ax._categories = [];\n ax._categoriesMap = {};\n };\n ax.clearCalc = function() {\n var group = ax._matchGroup;\n if (group) {\n var categories = null;\n var categoriesMap = null;\n for (var axId2 in group) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n if (ax2._categories) {\n categories = ax2._categories;\n categoriesMap = ax2._categoriesMap;\n break;\n }\n }\n if (categories && categoriesMap) {\n ax._categories = categories;\n ax._categoriesMap = categoriesMap;\n } else {\n ax._emptyCategories();\n }\n } else {\n ax._emptyCategories();\n }\n if (ax._initialCategories) {\n for (var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n };\n ax.sortByInitialCategories = function() {\n var affectedTraces = [];\n ax._emptyCategories();\n if (ax._initialCategories) {\n for (var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n affectedTraces = affectedTraces.concat(ax._traceIndices);\n var group = ax._matchGroup;\n for (var axId2 in group) {\n if (axId === axId2) continue;\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n ax2._categories = ax._categories;\n ax2._categoriesMap = ax._categoriesMap;\n affectedTraces = affectedTraces.concat(ax2._traceIndices);\n }\n return affectedTraces;\n };\n var locale = fullLayout._d3locale;\n if (ax.type === \"date\") {\n ax._dateFormat = locale ? locale.timeFormat : utcFormat;\n ax._extraFormat = fullLayout._extraFormat;\n }\n ax._separators = fullLayout.separators;\n ax._numFormat = locale ? locale.numberFormat : numberFormat;\n delete ax._minDtick;\n delete ax._forceTick0;\n };\n }\n });\n\n // src/plots/cartesian/axis_autotype.js\n var require_axis_autotype = __commonJS({\n \"src/plots/cartesian/axis_autotype.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var isDateTime = Lib.isDateTime;\n var cleanNumber = Lib.cleanNumber;\n var round = Math.round;\n module.exports = function autoType(array, calendar, opts) {\n var a = array;\n var noMultiCategory = opts.noMultiCategory;\n if (isArrayOrTypedArray(a) && !a.length) return \"-\";\n if (!noMultiCategory && multiCategory(a)) return \"multicategory\";\n if (noMultiCategory && Array.isArray(a[0])) {\n var b = [];\n for (var i = 0; i < a.length; i++) {\n if (isArrayOrTypedArray(a[i])) {\n for (var j = 0; j < a[i].length; j++) {\n b.push(a[i][j]);\n }\n }\n }\n a = b;\n }\n if (moreDates(a, calendar)) return \"date\";\n var convertNumeric = opts.autotypenumbers !== \"strict\";\n if (category(a, convertNumeric)) return \"category\";\n if (linearOK(a, convertNumeric)) return \"linear\";\n return \"-\";\n };\n function hasTypeNumber(v, convertNumeric) {\n return convertNumeric ? isNumeric(v) : typeof v === \"number\";\n }\n function linearOK(a, convertNumeric) {\n var len = a.length;\n for (var i = 0; i < len; i++) {\n if (hasTypeNumber(a[i], convertNumeric)) return true;\n }\n return false;\n }\n function moreDates(a, calendar) {\n var len = a.length;\n var inc = getIncrement(len);\n var dats = 0;\n var nums = 0;\n var seen = {};\n for (var f = 0; f < len; f += inc) {\n var i = round(f);\n var ai = a[i];\n var stri = String(ai);\n if (seen[stri]) continue;\n seen[stri] = 1;\n if (isDateTime(ai, calendar)) dats++;\n if (isNumeric(ai)) nums++;\n }\n return dats > nums * 2;\n }\n function getIncrement(len) {\n return Math.max(1, (len - 1) / 1e3);\n }\n function category(a, convertNumeric) {\n var len = a.length;\n var inc = getIncrement(len);\n var nums = 0;\n var cats = 0;\n var seen = {};\n for (var f = 0; f < len; f += inc) {\n var i = round(f);\n var ai = a[i];\n var stri = String(ai);\n if (seen[stri]) continue;\n seen[stri] = 1;\n var t = typeof ai;\n if (t === \"boolean\") cats++;\n else if (convertNumeric ? cleanNumber(ai) !== BADNUM : t === \"number\") nums++;\n else if (t === \"string\") cats++;\n }\n return cats > nums * 2;\n }\n function multiCategory(a) {\n return isArrayOrTypedArray(a[0]) && isArrayOrTypedArray(a[1]);\n }\n }\n });\n\n // src/plots/cartesian/autorange.js\n var require_autorange = __commonJS({\n \"src/plots/cartesian/autorange.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var FP_SAFE = require_numerical().FP_SAFE;\n var Registry = require_registry();\n var Drawing = require_drawing();\n var axIds = require_axis_ids();\n var getFromId = axIds.getFromId;\n var isLinked = axIds.isLinked;\n module.exports = {\n applyAutorangeOptions,\n getAutoRange,\n makePadFn,\n doAutoRange,\n findExtremes,\n concatExtremes\n };\n function getAutoRange(gd, ax) {\n var i, j;\n var newRange = [];\n var fullLayout = gd._fullLayout;\n var getPadMin = makePadFn(fullLayout, ax, 0);\n var getPadMax = makePadFn(fullLayout, ax, 1);\n var extremes = concatExtremes(gd, ax);\n var minArray = extremes.min;\n var maxArray = extremes.max;\n if (minArray.length === 0 || maxArray.length === 0) {\n return Lib.simpleMap(ax.range, ax.r2l);\n }\n var minmin = minArray[0].val;\n var maxmax = maxArray[0].val;\n for (i = 1; i < minArray.length; i++) {\n if (minmin !== maxmax) break;\n minmin = Math.min(minmin, minArray[i].val);\n }\n for (i = 1; i < maxArray.length; i++) {\n if (minmin !== maxmax) break;\n maxmax = Math.max(maxmax, maxArray[i].val);\n }\n var autorange = ax.autorange;\n var axReverse = autorange === \"reversed\" || autorange === \"min reversed\" || autorange === \"max reversed\";\n if (!axReverse && ax.range) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n axReverse = rng[1] < rng[0];\n }\n if (ax.autorange === \"reversed\") {\n ax.autorange = true;\n }\n var rangeMode = ax.rangemode;\n var toZero = rangeMode === \"tozero\";\n var nonNegative = rangeMode === \"nonnegative\";\n var axLen = ax._length;\n var minSpan = axLen / 10;\n var mbest = 0;\n var minpt, maxpt, minbest, maxbest, dp, dv;\n for (i = 0; i < minArray.length; i++) {\n minpt = minArray[i];\n for (j = 0; j < maxArray.length; j++) {\n maxpt = maxArray[j];\n dv = maxpt.val - minpt.val - calcBreaksLength(ax, minpt.val, maxpt.val);\n if (dv > 0) {\n dp = axLen - getPadMin(minpt) - getPadMax(maxpt);\n if (dp > minSpan) {\n if (dv / dp > mbest) {\n minbest = minpt;\n maxbest = maxpt;\n mbest = dv / dp;\n }\n } else if (dv / axLen > mbest) {\n minbest = { val: minpt.val, nopad: 1 };\n maxbest = { val: maxpt.val, nopad: 1 };\n mbest = dv / axLen;\n }\n }\n }\n }\n function maximumPad(prev, pt) {\n return Math.max(prev, getPadMax(pt));\n }\n if (minmin === maxmax) {\n var lower = minmin - 1;\n var upper = minmin + 1;\n if (toZero) {\n if (minmin === 0) {\n newRange = [0, 1];\n } else {\n var maxPad = (minmin > 0 ? maxArray : minArray).reduce(maximumPad, 0);\n var rangeEnd = minmin / (1 - Math.min(0.5, maxPad / axLen));\n newRange = minmin > 0 ? [0, rangeEnd] : [rangeEnd, 0];\n }\n } else if (nonNegative) {\n newRange = [Math.max(0, lower), Math.max(1, upper)];\n } else {\n newRange = [lower, upper];\n }\n } else {\n if (toZero) {\n if (minbest.val >= 0) {\n minbest = { val: 0, nopad: 1 };\n }\n if (maxbest.val <= 0) {\n maxbest = { val: 0, nopad: 1 };\n }\n } else if (nonNegative) {\n if (minbest.val - mbest * getPadMin(minbest) < 0) {\n minbest = { val: 0, nopad: 1 };\n }\n if (maxbest.val <= 0) {\n maxbest = { val: 1, nopad: 1 };\n }\n }\n mbest = (maxbest.val - minbest.val - calcBreaksLength(ax, minpt.val, maxpt.val)) / (axLen - getPadMin(minbest) - getPadMax(maxbest));\n newRange = [\n minbest.val - mbest * getPadMin(minbest),\n maxbest.val + mbest * getPadMax(maxbest)\n ];\n }\n newRange = applyAutorangeOptions(newRange, ax);\n if (ax.limitRange) ax.limitRange();\n if (axReverse) newRange.reverse();\n return Lib.simpleMap(newRange, ax.l2r || Number);\n }\n function calcBreaksLength(ax, v0, v1) {\n var lBreaks = 0;\n if (ax.rangebreaks) {\n var rangebreaksOut = ax.locateBreaks(v0, v1);\n for (var i = 0; i < rangebreaksOut.length; i++) {\n var brk = rangebreaksOut[i];\n lBreaks += brk.max - brk.min;\n }\n }\n return lBreaks;\n }\n function makePadFn(fullLayout, ax, max) {\n var extrappad = 0.05 * ax._length;\n var anchorAxis = ax._anchorAxis || {};\n if ((ax.ticklabelposition || \"\").indexOf(\"inside\") !== -1 || (anchorAxis.ticklabelposition || \"\").indexOf(\"inside\") !== -1) {\n var axReverse = ax.isReversed();\n if (!axReverse) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n axReverse = rng[1] < rng[0];\n }\n if (axReverse) max = !max;\n }\n var zero2 = 0;\n if (!isLinked(fullLayout, ax._id)) {\n zero2 = padInsideLabelsOnAnchorAxis(fullLayout, ax, max);\n }\n extrappad = Math.max(zero2, extrappad);\n if (ax.constrain === \"domain\" && ax._inputDomain) {\n extrappad *= (ax._inputDomain[1] - ax._inputDomain[0]) / (ax.domain[1] - ax.domain[0]);\n }\n return function getPad(pt) {\n if (pt.nopad) return 0;\n return pt.pad + (pt.extrapad ? extrappad : zero2);\n };\n }\n var TEXTPAD = 3;\n function padInsideLabelsOnAnchorAxis(fullLayout, ax, max) {\n var pad = 0;\n var isX = ax._id.charAt(0) === \"x\";\n for (var subplot in fullLayout._plots) {\n var plotinfo = fullLayout._plots[subplot];\n if (ax._id !== plotinfo.xaxis._id && ax._id !== plotinfo.yaxis._id) continue;\n var anchorAxis = (isX ? plotinfo.yaxis : plotinfo.xaxis) || {};\n if ((anchorAxis.ticklabelposition || \"\").indexOf(\"inside\") !== -1) {\n if (!max && (anchorAxis.side === \"left\" || anchorAxis.side === \"bottom\") || max && (anchorAxis.side === \"top\" || anchorAxis.side === \"right\")) {\n if (anchorAxis._vals) {\n var rad = Lib.deg2rad(anchorAxis._tickAngles[anchorAxis._id + \"tick\"] || 0);\n var cosA = Math.abs(Math.cos(rad));\n var sinA = Math.abs(Math.sin(rad));\n if (!anchorAxis._vals[0].bb) {\n var cls = anchorAxis._id + \"tick\";\n var tickLabels = anchorAxis._selections[cls];\n tickLabels.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select(\".text-math-group\");\n if (mathjaxGroup.empty()) {\n d.bb = Drawing.bBox(thisLabel.node());\n }\n });\n }\n for (var i = 0; i < anchorAxis._vals.length; i++) {\n var t = anchorAxis._vals[i];\n var bb = t.bb;\n if (bb) {\n var w = 2 * TEXTPAD + bb.width;\n var h = 2 * TEXTPAD + bb.height;\n pad = Math.max(\n pad,\n isX ? Math.max(w * cosA, h * sinA) : Math.max(h * cosA, w * sinA)\n );\n }\n }\n }\n if (anchorAxis.ticks === \"inside\" && anchorAxis.ticklabelposition === \"inside\") {\n pad += anchorAxis.ticklen || 0;\n }\n }\n }\n }\n return pad;\n }\n function concatExtremes(gd, ax, noMatch) {\n var axId = ax._id;\n var fullData = gd._fullData;\n var fullLayout = gd._fullLayout;\n var minArray = [];\n var maxArray = [];\n var i, j, d;\n function _concat(cont, indices) {\n for (i = 0; i < indices.length; i++) {\n var item = cont[indices[i]];\n var extremes = (item._extremes || {})[axId];\n if (item.visible === true && extremes) {\n for (j = 0; j < extremes.min.length; j++) {\n d = extremes.min[j];\n collapseMinArray(minArray, d.val, d.pad, { extrapad: d.extrapad });\n }\n for (j = 0; j < extremes.max.length; j++) {\n d = extremes.max[j];\n collapseMaxArray(maxArray, d.val, d.pad, { extrapad: d.extrapad });\n }\n }\n }\n }\n _concat(fullData, ax._traceIndices);\n _concat(fullLayout.annotations || [], ax._annIndices || []);\n _concat(fullLayout.shapes || [], ax._shapeIndices || []);\n if (ax._matchGroup && !noMatch) {\n for (var axId2 in ax._matchGroup) {\n if (axId2 !== ax._id) {\n var ax2 = getFromId(gd, axId2);\n var extremes2 = concatExtremes(gd, ax2, true);\n var lenRatio = ax._length / ax2._length;\n for (j = 0; j < extremes2.min.length; j++) {\n d = extremes2.min[j];\n collapseMinArray(minArray, d.val, d.pad * lenRatio, { extrapad: d.extrapad });\n }\n for (j = 0; j < extremes2.max.length; j++) {\n d = extremes2.max[j];\n collapseMaxArray(maxArray, d.val, d.pad * lenRatio, { extrapad: d.extrapad });\n }\n }\n }\n }\n return { min: minArray, max: maxArray };\n }\n function doAutoRange(gd, ax, presetRange) {\n ax.setScale();\n if (ax.autorange) {\n ax.range = presetRange ? presetRange.slice() : getAutoRange(gd, ax);\n ax._r = ax.range.slice();\n ax._rl = Lib.simpleMap(ax._r, ax.r2l);\n var axIn = ax._input;\n var edits = {};\n edits[ax._attr + \".range\"] = ax.range;\n edits[ax._attr + \".autorange\"] = ax.autorange;\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, gd._fullLayout._preGUI, edits);\n axIn.range = ax.range.slice();\n axIn.autorange = ax.autorange;\n }\n var anchorAx = ax._anchorAxis;\n if (anchorAx && anchorAx.rangeslider) {\n var axeRangeOpts = anchorAx.rangeslider[ax._name];\n if (axeRangeOpts) {\n if (axeRangeOpts.rangemode === \"auto\") {\n axeRangeOpts.range = getAutoRange(gd, ax);\n }\n }\n anchorAx._input.rangeslider[ax._name] = Lib.extendFlat({}, axeRangeOpts);\n }\n }\n function findExtremes(ax, data, opts) {\n if (!opts) opts = {};\n if (!ax._m) ax.setScale();\n var minArray = [];\n var maxArray = [];\n var len = data.length;\n var extrapad = opts.padded || false;\n var tozero = opts.tozero && (ax.type === \"linear\" || ax.type === \"-\");\n var isLog = ax.type === \"log\";\n var hasArrayOption = false;\n var vpadLinearized = opts.vpadLinearized || false;\n var i, v, di, dmin, dmax, ppadiplus, ppadiminus, vmin, vmax;\n function makePadAccessor(item) {\n if (Array.isArray(item)) {\n hasArrayOption = true;\n return function(i2) {\n return Math.max(Number(item[i2] || 0), 0);\n };\n } else {\n var v2 = Math.max(Number(item || 0), 0);\n return function() {\n return v2;\n };\n }\n }\n var ppadplus = makePadAccessor((ax._m > 0 ? opts.ppadplus : opts.ppadminus) || opts.ppad || 0);\n var ppadminus = makePadAccessor((ax._m > 0 ? opts.ppadminus : opts.ppadplus) || opts.ppad || 0);\n var vpadplus = makePadAccessor(opts.vpadplus || opts.vpad);\n var vpadminus = makePadAccessor(opts.vpadminus || opts.vpad);\n if (!hasArrayOption) {\n vmin = Infinity;\n vmax = -Infinity;\n if (isLog) {\n for (i = 0; i < len; i++) {\n v = data[i];\n if (v < vmin && v > 0) vmin = v;\n if (v > vmax && v < FP_SAFE) vmax = v;\n }\n } else {\n for (i = 0; i < len; i++) {\n v = data[i];\n if (v < vmin && v > -FP_SAFE) vmin = v;\n if (v > vmax && v < FP_SAFE) vmax = v;\n }\n }\n data = [vmin, vmax];\n len = 2;\n }\n var collapseOpts = { tozero, extrapad };\n function addItem(i2) {\n di = data[i2];\n if (!isNumeric(di)) return;\n ppadiplus = ppadplus(i2);\n ppadiminus = ppadminus(i2);\n if (vpadLinearized) {\n dmin = ax.c2l(di) - vpadminus(i2);\n dmax = ax.c2l(di) + vpadplus(i2);\n } else {\n vmin = di - vpadminus(i2);\n vmax = di + vpadplus(i2);\n if (isLog && vmin < vmax / 10) vmin = vmax / 10;\n dmin = ax.c2l(vmin);\n dmax = ax.c2l(vmax);\n }\n if (tozero) {\n dmin = Math.min(0, dmin);\n dmax = Math.max(0, dmax);\n }\n if (goodNumber(dmin)) {\n collapseMinArray(minArray, dmin, ppadiminus, collapseOpts);\n }\n if (goodNumber(dmax)) {\n collapseMaxArray(maxArray, dmax, ppadiplus, collapseOpts);\n }\n }\n var iMax = Math.min(6, len);\n for (i = 0; i < iMax; i++) addItem(i);\n for (i = len - 1; i >= iMax; i--) addItem(i);\n return {\n min: minArray,\n max: maxArray,\n opts\n };\n }\n function collapseMinArray(array, newVal, newPad, opts) {\n collapseArray(array, newVal, newPad, opts, lessOrEqual);\n }\n function collapseMaxArray(array, newVal, newPad, opts) {\n collapseArray(array, newVal, newPad, opts, greaterOrEqual);\n }\n function collapseArray(array, newVal, newPad, opts, atLeastAsExtreme) {\n var tozero = opts.tozero;\n var extrapad = opts.extrapad;\n var includeThis = true;\n for (var j = 0; j < array.length && includeThis; j++) {\n var v = array[j];\n if (atLeastAsExtreme(v.val, newVal) && v.pad >= newPad && (v.extrapad || !extrapad)) {\n includeThis = false;\n break;\n } else if (atLeastAsExtreme(newVal, v.val) && v.pad <= newPad && (extrapad || !v.extrapad)) {\n array.splice(j, 1);\n j--;\n }\n }\n if (includeThis) {\n var clipAtZero = tozero && newVal === 0;\n array.push({\n val: newVal,\n pad: clipAtZero ? 0 : newPad,\n extrapad: clipAtZero ? false : extrapad\n });\n }\n }\n function goodNumber(v) {\n return isNumeric(v) && Math.abs(v) < FP_SAFE;\n }\n function lessOrEqual(v0, v1) {\n return v0 <= v1;\n }\n function greaterOrEqual(v0, v1) {\n return v0 >= v1;\n }\n function applyAutorangeMinOptions(v, ax) {\n var autorangeoptions = ax.autorangeoptions;\n if (autorangeoptions && autorangeoptions.minallowed !== void 0 && hasValidMinAndMax(ax, autorangeoptions.minallowed, autorangeoptions.maxallowed)) {\n return autorangeoptions.minallowed;\n }\n if (autorangeoptions && autorangeoptions.clipmin !== void 0 && hasValidMinAndMax(ax, autorangeoptions.clipmin, autorangeoptions.clipmax)) {\n return Math.max(v, ax.d2l(autorangeoptions.clipmin));\n }\n return v;\n }\n function applyAutorangeMaxOptions(v, ax) {\n var autorangeoptions = ax.autorangeoptions;\n if (autorangeoptions && autorangeoptions.maxallowed !== void 0 && hasValidMinAndMax(ax, autorangeoptions.minallowed, autorangeoptions.maxallowed)) {\n return autorangeoptions.maxallowed;\n }\n if (autorangeoptions && autorangeoptions.clipmax !== void 0 && hasValidMinAndMax(ax, autorangeoptions.clipmin, autorangeoptions.clipmax)) {\n return Math.min(v, ax.d2l(autorangeoptions.clipmax));\n }\n return v;\n }\n function hasValidMinAndMax(ax, min, max) {\n if (min !== void 0 && max !== void 0) {\n min = ax.d2l(min);\n max = ax.d2l(max);\n return min < max;\n }\n return true;\n }\n function applyAutorangeOptions(range, ax) {\n if (!ax || !ax.autorangeoptions) return range;\n var min = range[0];\n var max = range[1];\n var include = ax.autorangeoptions.include;\n if (include !== void 0) {\n var lMin = ax.d2l(min);\n var lMax = ax.d2l(max);\n if (!Lib.isArrayOrTypedArray(include)) include = [include];\n for (var i = 0; i < include.length; i++) {\n var v = ax.d2l(include[i]);\n if (lMin >= v) {\n lMin = v;\n min = v;\n }\n if (lMax <= v) {\n lMax = v;\n max = v;\n }\n }\n }\n min = applyAutorangeMinOptions(min, ax);\n max = applyAutorangeMaxOptions(max, ax);\n return [min, max];\n }\n }\n });\n\n // src/plots/cartesian/axes.js\n var require_axes = __commonJS({\n \"src/plots/cartesian/axes.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Plots = require_plots();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var Titles = require_titles();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var axAttrs = require_layout_attributes4();\n var cleanTicks = require_clean_ticks();\n var constants = require_numerical();\n var ONEMAXYEAR = constants.ONEMAXYEAR;\n var ONEAVGYEAR = constants.ONEAVGYEAR;\n var ONEMINYEAR = constants.ONEMINYEAR;\n var ONEMAXQUARTER = constants.ONEMAXQUARTER;\n var ONEAVGQUARTER = constants.ONEAVGQUARTER;\n var ONEMINQUARTER = constants.ONEMINQUARTER;\n var ONEMAXMONTH = constants.ONEMAXMONTH;\n var ONEAVGMONTH = constants.ONEAVGMONTH;\n var ONEMINMONTH = constants.ONEMINMONTH;\n var ONEWEEK = constants.ONEWEEK;\n var ONEDAY = constants.ONEDAY;\n var HALFDAY = ONEDAY / 2;\n var ONEHOUR = constants.ONEHOUR;\n var ONEMIN = constants.ONEMIN;\n var ONESEC = constants.ONESEC;\n var ONEMILLI = constants.ONEMILLI;\n var ONEMICROSEC = constants.ONEMICROSEC;\n var MINUS_SIGN = constants.MINUS_SIGN;\n var BADNUM = constants.BADNUM;\n var ZERO_PATH = { K: \"zeroline\" };\n var GRID_PATH = { K: \"gridline\", L: \"path\" };\n var MINORGRID_PATH = { K: \"minor-gridline\", L: \"path\" };\n var TICK_PATH = { K: \"tick\", L: \"path\" };\n var TICK_TEXT = { K: \"tick\", L: \"text\" };\n var MARGIN_MAPPING = {\n width: [\"x\", \"r\", \"l\", \"xl\", \"xr\"],\n height: [\"y\", \"t\", \"b\", \"yt\", \"yb\"],\n right: [\"r\", \"xr\"],\n left: [\"l\", \"xl\"],\n top: [\"t\", \"yt\"],\n bottom: [\"b\", \"yb\"]\n };\n var alignmentConstants = require_alignment();\n var MID_SHIFT = alignmentConstants.MID_SHIFT;\n var CAP_SHIFT = alignmentConstants.CAP_SHIFT;\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var OPPOSITE_SIDE = alignmentConstants.OPPOSITE_SIDE;\n var TEXTPAD = 3;\n var axes = module.exports = {};\n axes.setConvert = require_set_convert();\n var autoType = require_axis_autotype();\n var axisIds = require_axis_ids();\n var idSort = axisIds.idSort;\n var isLinked = axisIds.isLinked;\n axes.id2name = axisIds.id2name;\n axes.name2id = axisIds.name2id;\n axes.cleanId = axisIds.cleanId;\n axes.list = axisIds.list;\n axes.listIds = axisIds.listIds;\n axes.getFromId = axisIds.getFromId;\n axes.getFromTrace = axisIds.getFromTrace;\n var autorange = require_autorange();\n axes.getAutoRange = autorange.getAutoRange;\n axes.findExtremes = autorange.findExtremes;\n var epsilon = 1e-4;\n function expandRange(range) {\n var delta = (range[1] - range[0]) * epsilon;\n return [\n range[0] - delta,\n range[1] + delta\n ];\n }\n axes.coerceRef = function(containerIn, containerOut, gd, attr, dflt, extraOption) {\n var axLetter = attr.charAt(attr.length - 1);\n var axlist = gd._fullLayout._subplots[axLetter + \"axis\"];\n var refAttr = attr + \"ref\";\n var attrDef = {};\n if (!dflt) dflt = axlist[0] || (typeof extraOption === \"string\" ? extraOption : extraOption[0]);\n if (!extraOption) extraOption = dflt;\n axlist = axlist.concat(axlist.map(function(x) {\n return x + \" domain\";\n }));\n attrDef[refAttr] = {\n valType: \"enumerated\",\n values: axlist.concat(extraOption ? typeof extraOption === \"string\" ? [extraOption] : extraOption : []),\n dflt\n };\n return Lib.coerce(containerIn, containerOut, attrDef, refAttr);\n };\n axes.getRefType = function(ar) {\n if (ar === void 0) {\n return ar;\n }\n if (ar === \"paper\") {\n return \"paper\";\n }\n if (ar === \"pixel\") {\n return \"pixel\";\n }\n if (/( domain)$/.test(ar)) {\n return \"domain\";\n } else {\n return \"range\";\n }\n };\n axes.coercePosition = function(containerOut, gd, coerce, axRef, attr, dflt) {\n var cleanPos, pos;\n var axRefType = axes.getRefType(axRef);\n if (axRefType !== \"range\") {\n cleanPos = Lib.ensureNumber;\n pos = coerce(attr, dflt);\n } else {\n var ax = axes.getFromId(gd, axRef);\n dflt = ax.fraction2r(dflt);\n pos = coerce(attr, dflt);\n cleanPos = ax.cleanPos;\n }\n containerOut[attr] = cleanPos(pos);\n };\n axes.cleanPosition = function(pos, gd, axRef) {\n var cleanPos = axRef === \"paper\" || axRef === \"pixel\" ? Lib.ensureNumber : axes.getFromId(gd, axRef).cleanPos;\n return cleanPos(pos);\n };\n axes.redrawComponents = function(gd, axIds) {\n axIds = axIds ? axIds : axes.listIds(gd);\n var fullLayout = gd._fullLayout;\n function _redrawOneComp(moduleName, methodName, stashName, shortCircuit) {\n var method = Registry.getComponentMethod(moduleName, methodName);\n var stash = {};\n for (var i = 0; i < axIds.length; i++) {\n var ax = fullLayout[axes.id2name(axIds[i])];\n var indices = ax[stashName];\n for (var j = 0; j < indices.length; j++) {\n var ind = indices[j];\n if (!stash[ind]) {\n method(gd, ind);\n stash[ind] = 1;\n if (shortCircuit) return;\n }\n }\n }\n }\n _redrawOneComp(\"annotations\", \"drawOne\", \"_annIndices\");\n _redrawOneComp(\"shapes\", \"drawOne\", \"_shapeIndices\");\n _redrawOneComp(\"images\", \"draw\", \"_imgIndices\", true);\n _redrawOneComp(\"selections\", \"drawOne\", \"_selectionIndices\");\n };\n var getDataConversions = axes.getDataConversions = function(gd, trace, target, targetArray) {\n var ax;\n var d2cTarget = target === \"x\" || target === \"y\" || target === \"z\" ? target : targetArray;\n if (Lib.isArrayOrTypedArray(d2cTarget)) {\n ax = {\n type: autoType(targetArray, void 0, {\n autotypenumbers: gd._fullLayout.autotypenumbers\n }),\n _categories: []\n };\n axes.setConvert(ax);\n if (ax.type === \"category\") {\n for (var i = 0; i < targetArray.length; i++) {\n ax.d2c(targetArray[i]);\n }\n }\n } else {\n ax = axes.getFromTrace(gd, trace, d2cTarget);\n }\n if (ax) return { d2c: ax.d2c, c2d: ax.c2d };\n if (d2cTarget === \"ids\") return { d2c: toString, c2d: toString };\n return { d2c: toNum, c2d: toNum };\n };\n function toNum(v) {\n return +v;\n }\n function toString(v) {\n return String(v);\n }\n axes.getDataToCoordFunc = function(gd, trace, target, targetArray) {\n return getDataConversions(gd, trace, target, targetArray).d2c;\n };\n axes.counterLetter = function(id) {\n var axLetter = id.charAt(0);\n if (axLetter === \"x\") return \"y\";\n if (axLetter === \"y\") return \"x\";\n };\n axes.minDtick = function(ax, newDiff, newFirst, allow) {\n if ([\"log\", \"category\", \"multicategory\"].indexOf(ax.type) !== -1 || !allow) {\n ax._minDtick = 0;\n } else if (ax._minDtick === void 0) {\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if (ax._minDtick) {\n if ((ax._minDtick / newDiff + 1e-6) % 1 < 2e-6 && // existing minDtick is an integer multiple of newDiff\n // (within rounding err)\n // and forceTick0 can be shifted to newFirst\n ((newFirst - ax._forceTick0) / newDiff % 1 + 1.000001) % 1 < 2e-6) {\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if ((newDiff / ax._minDtick + 1e-6) % 1 > 2e-6 || // if the converse is true (newDiff is a multiple of minDtick and\n // newFirst can be shifted to forceTick0) then do nothing - same\n // forcing stands. Otherwise, cancel forced minimum\n ((newFirst - ax._forceTick0) / ax._minDtick % 1 + 1.000001) % 1 > 2e-6) {\n ax._minDtick = 0;\n }\n }\n };\n axes.saveRangeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, \"\", true);\n var hasOneAxisChanged = false;\n for (var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = ax._rangeInitial0 === void 0 && ax._rangeInitial1 === void 0;\n var hasChanged = isNew || (ax.range[0] !== ax._rangeInitial0 || ax.range[1] !== ax._rangeInitial1);\n var autorange2 = ax.autorange;\n if (isNew && autorange2 !== true || overwrite && hasChanged) {\n ax._rangeInitial0 = autorange2 === \"min\" || autorange2 === \"max reversed\" ? void 0 : ax.range[0];\n ax._rangeInitial1 = autorange2 === \"max\" || autorange2 === \"min reversed\" ? void 0 : ax.range[1];\n ax._autorangeInitial = autorange2;\n hasOneAxisChanged = true;\n }\n }\n return hasOneAxisChanged;\n };\n axes.saveShowSpikeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, \"\", true);\n var hasOneAxisChanged = false;\n var allSpikesEnabled = \"on\";\n for (var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = ax._showSpikeInitial === void 0;\n var hasChanged = isNew || !(ax.showspikes === ax._showspikes);\n if (isNew || overwrite && hasChanged) {\n ax._showSpikeInitial = ax.showspikes;\n hasOneAxisChanged = true;\n }\n if (allSpikesEnabled === \"on\" && !ax.showspikes) {\n allSpikesEnabled = \"off\";\n }\n }\n gd._fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n return hasOneAxisChanged;\n };\n axes.autoBin = function(data, ax, nbins, is2d, calendar, size) {\n var dataMin = Lib.aggNums(Math.min, null, data);\n var dataMax = Lib.aggNums(Math.max, null, data);\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n return {\n start: dataMin - 0.5,\n end: dataMax + 0.5,\n size: Math.max(1, Math.round(size) || 1),\n _dataSpan: dataMax - dataMin\n };\n }\n if (!calendar) calendar = ax.calendar;\n var dummyAx;\n if (ax.type === \"log\") {\n dummyAx = {\n type: \"linear\",\n range: [dataMin, dataMax]\n };\n } else {\n dummyAx = {\n type: ax.type,\n range: Lib.simpleMap([dataMin, dataMax], ax.c2r, 0, calendar),\n calendar\n };\n }\n axes.setConvert(dummyAx);\n size = size && cleanTicks.dtick(size, dummyAx.type);\n if (size) {\n dummyAx.dtick = size;\n dummyAx.tick0 = cleanTicks.tick0(void 0, dummyAx.type, calendar);\n } else {\n var size0;\n if (nbins) size0 = (dataMax - dataMin) / nbins;\n else {\n var distinctData = Lib.distinctVals(data);\n var msexp = Math.pow(10, Math.floor(\n Math.log(distinctData.minDiff) / Math.LN10\n ));\n var minSize = msexp * Lib.roundUp(\n distinctData.minDiff / msexp,\n [0.9, 1.9, 4.9, 9.9],\n true\n );\n size0 = Math.max(minSize, 2 * Lib.stdev(data) / Math.pow(data.length, is2d ? 0.25 : 0.4));\n if (!isNumeric(size0)) size0 = 1;\n }\n axes.autoTicks(dummyAx, size0);\n }\n var finalSize = dummyAx.dtick;\n var binStart = axes.tickIncrement(\n axes.tickFirst(dummyAx),\n finalSize,\n \"reverse\",\n calendar\n );\n var binEnd, bincount;\n if (typeof finalSize === \"number\") {\n binStart = autoShiftNumericBins(binStart, data, dummyAx, dataMin, dataMax);\n bincount = 1 + Math.floor((dataMax - binStart) / finalSize);\n binEnd = binStart + bincount * finalSize;\n } else {\n if (dummyAx.dtick.charAt(0) === \"M\") {\n binStart = autoShiftMonthBins(binStart, data, finalSize, dataMin, calendar);\n }\n binEnd = binStart;\n bincount = 0;\n while (binEnd <= dataMax) {\n binEnd = axes.tickIncrement(binEnd, finalSize, false, calendar);\n bincount++;\n }\n }\n return {\n start: ax.c2r(binStart, 0, calendar),\n end: ax.c2r(binEnd, 0, calendar),\n size: finalSize,\n _dataSpan: dataMax - dataMin\n };\n };\n function autoShiftNumericBins(binStart, data, ax, dataMin, dataMax) {\n var edgecount = 0;\n var midcount = 0;\n var intcount = 0;\n var blankCount = 0;\n function nearEdge(v) {\n return (1 + (v - binStart) * 100 / ax.dtick) % 100 < 2;\n }\n for (var i = 0; i < data.length; i++) {\n if (data[i] % 1 === 0) intcount++;\n else if (!isNumeric(data[i])) blankCount++;\n if (nearEdge(data[i])) edgecount++;\n if (nearEdge(data[i] + ax.dtick / 2)) midcount++;\n }\n var dataCount = data.length - blankCount;\n if (intcount === dataCount && ax.type !== \"date\") {\n if (ax.dtick < 1) {\n binStart = dataMin - 0.5 * ax.dtick;\n } else {\n binStart -= 0.5;\n if (binStart + ax.dtick < dataMin) binStart += ax.dtick;\n }\n } else if (midcount < dataCount * 0.1) {\n if (edgecount > dataCount * 0.3 || nearEdge(dataMin) || nearEdge(dataMax)) {\n var binshift = ax.dtick / 2;\n binStart += binStart + binshift < dataMin ? binshift : -binshift;\n }\n }\n return binStart;\n }\n function autoShiftMonthBins(binStart, data, dtick, dataMin, calendar) {\n var stats = Lib.findExactDates(data, calendar);\n var threshold = 0.8;\n if (stats.exactDays > threshold) {\n var numMonths = Number(dtick.substr(1));\n if (stats.exactYears > threshold && numMonths % 12 === 0) {\n binStart = axes.tickIncrement(binStart, \"M6\", \"reverse\") + ONEDAY * 1.5;\n } else if (stats.exactMonths > threshold) {\n binStart = axes.tickIncrement(binStart, \"M1\", \"reverse\") + ONEDAY * 15.5;\n } else {\n binStart -= HALFDAY;\n }\n var nextBinStart = axes.tickIncrement(binStart, dtick);\n if (nextBinStart <= dataMin) return nextBinStart;\n }\n return binStart;\n }\n axes.prepMinorTicks = function(mockAx, ax, opts) {\n if (!ax.minor.dtick) {\n delete mockAx.dtick;\n var hasMajor = ax.dtick && isNumeric(ax._tmin);\n var mockMinorRange;\n if (hasMajor) {\n var tick2 = axes.tickIncrement(ax._tmin, ax.dtick, true);\n mockMinorRange = [ax._tmin, tick2 * 0.99 + ax._tmin * 0.01];\n } else {\n var rl = Lib.simpleMap(ax.range, ax.r2l);\n mockMinorRange = [rl[0], 0.8 * rl[0] + 0.2 * rl[1]];\n }\n mockAx.range = Lib.simpleMap(mockMinorRange, ax.l2r);\n mockAx._isMinor = true;\n axes.prepTicks(mockAx, opts);\n if (hasMajor) {\n var numericMajor = isNumeric(ax.dtick);\n var numericMinor = isNumeric(mockAx.dtick);\n var majorNum = numericMajor ? ax.dtick : +ax.dtick.substring(1);\n var minorNum = numericMinor ? mockAx.dtick : +mockAx.dtick.substring(1);\n if (numericMajor && numericMinor) {\n if (!isMultiple(majorNum, minorNum)) {\n if (majorNum === 2 * ONEWEEK && minorNum === 3 * ONEDAY) {\n mockAx.dtick = ONEWEEK;\n } else if (majorNum === ONEWEEK && !(ax._input.minor || {}).nticks) {\n mockAx.dtick = ONEDAY;\n } else if (isClose(majorNum / minorNum, 2.5)) {\n mockAx.dtick = majorNum / 2;\n } else {\n mockAx.dtick = majorNum;\n }\n } else if (majorNum === 2 * ONEWEEK && minorNum === 2 * ONEDAY) {\n mockAx.dtick = ONEWEEK;\n }\n } else if (String(ax.dtick).charAt(0) === \"M\") {\n if (numericMinor) {\n mockAx.dtick = \"M1\";\n } else {\n if (!isMultiple(majorNum, minorNum)) {\n mockAx.dtick = ax.dtick;\n } else if (majorNum >= 12 && minorNum === 2) {\n mockAx.dtick = \"M3\";\n }\n }\n } else if (String(mockAx.dtick).charAt(0) === \"L\") {\n if (String(ax.dtick).charAt(0) === \"L\") {\n if (!isMultiple(majorNum, minorNum)) {\n mockAx.dtick = isClose(majorNum / minorNum, 2.5) ? ax.dtick / 2 : ax.dtick;\n }\n } else {\n mockAx.dtick = \"D1\";\n }\n } else if (mockAx.dtick === \"D2\" && +ax.dtick > 1) {\n mockAx.dtick = 1;\n }\n }\n mockAx.range = ax.range;\n }\n if (ax.minor._tick0Init === void 0) {\n mockAx.tick0 = ax.tick0;\n }\n };\n function isMultiple(bigger, smaller) {\n return Math.abs((bigger / smaller + 0.5) % 1 - 0.5) < 1e-3;\n }\n function isClose(a, b) {\n return Math.abs(a / b - 1) < 1e-3;\n }\n axes.prepTicks = function(ax, opts) {\n var rng = Lib.simpleMap(ax.range, ax.r2l, void 0, void 0, opts);\n if (ax.tickmode === \"auto\" || !ax.dtick) {\n var nt = ax.nticks;\n var minPx;\n if (!nt) {\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n minPx = ax.tickfont ? Lib.bigFont(ax.tickfont.size || 12) : 15;\n nt = ax._length / minPx;\n } else {\n minPx = ax._id.charAt(0) === \"y\" ? 40 : 80;\n nt = Lib.constrain(ax._length / minPx, 4, 9) + 1;\n }\n if (ax._name === \"radialaxis\") nt *= 2;\n }\n if (!(ax.minor && ax.minor.tickmode !== \"array\")) {\n if (ax.tickmode === \"array\") nt *= 100;\n }\n ax._roughDTick = Math.abs(rng[1] - rng[0]) / nt;\n axes.autoTicks(ax, ax._roughDTick);\n if (ax._minDtick > 0 && ax.dtick < ax._minDtick * 2) {\n ax.dtick = ax._minDtick;\n ax.tick0 = ax.l2r(ax._forceTick0);\n }\n }\n if (ax.ticklabelmode === \"period\") {\n adjustPeriodDelta(ax);\n }\n if (!ax.tick0) {\n ax.tick0 = ax.type === \"date\" ? \"2000-01-01\" : 0;\n }\n if (ax.type === \"date\" && ax.dtick < 0.1) ax.dtick = 0.1;\n autoTickRound(ax);\n };\n function nMonths(dtick) {\n return +dtick.substring(1);\n }\n function adjustPeriodDelta(ax) {\n var definedDelta;\n function mDate() {\n return !(isNumeric(ax.dtick) || ax.dtick.charAt(0) !== \"M\");\n }\n var isMDate = mDate();\n var tickformat = axes.getTickFormat(ax);\n if (tickformat) {\n var noDtick = ax._dtickInit !== ax.dtick;\n if (!/%[fLQsSMX]/.test(tickformat)) {\n if (/%[HI]/.test(tickformat)) {\n definedDelta = ONEHOUR;\n if (noDtick && !isMDate && ax.dtick < ONEHOUR) ax.dtick = ONEHOUR;\n } else if (/%p/.test(tickformat)) {\n definedDelta = HALFDAY;\n if (noDtick && !isMDate && ax.dtick < HALFDAY) ax.dtick = HALFDAY;\n } else if (/%[Aadejuwx]/.test(tickformat)) {\n definedDelta = ONEDAY;\n if (noDtick && !isMDate && ax.dtick < ONEDAY) ax.dtick = ONEDAY;\n } else if (/%[UVW]/.test(tickformat)) {\n definedDelta = ONEWEEK;\n if (noDtick && !isMDate && ax.dtick < ONEWEEK) ax.dtick = ONEWEEK;\n } else if (/%[Bbm]/.test(tickformat)) {\n definedDelta = ONEAVGMONTH;\n if (noDtick && (isMDate ? nMonths(ax.dtick) < 1 : ax.dtick < ONEMINMONTH)) ax.dtick = \"M1\";\n } else if (/%[q]/.test(tickformat)) {\n definedDelta = ONEAVGQUARTER;\n if (noDtick && (isMDate ? nMonths(ax.dtick) < 3 : ax.dtick < ONEMINQUARTER)) ax.dtick = \"M3\";\n } else if (/%[Yy]/.test(tickformat)) {\n definedDelta = ONEAVGYEAR;\n if (noDtick && (isMDate ? nMonths(ax.dtick) < 12 : ax.dtick < ONEMINYEAR)) ax.dtick = \"M12\";\n }\n }\n }\n isMDate = mDate();\n if (isMDate && ax.tick0 === ax._dowTick0) {\n ax.tick0 = ax._rawTick0;\n }\n ax._definedDelta = definedDelta;\n }\n function positionPeriodTicks(tickVals, ax, definedDelta) {\n for (var i = 0; i < tickVals.length; i++) {\n var v = tickVals[i].value;\n var a = i;\n var b = i + 1;\n if (i < tickVals.length - 1) {\n a = i;\n b = i + 1;\n } else if (i > 0) {\n a = i - 1;\n b = i;\n } else {\n a = i;\n b = i;\n }\n var A2 = tickVals[a].value;\n var B2 = tickVals[b].value;\n var actualDelta = Math.abs(B2 - A2);\n var delta = definedDelta || actualDelta;\n var periodLength = 0;\n if (delta >= ONEMINYEAR) {\n if (actualDelta >= ONEMINYEAR && actualDelta <= ONEMAXYEAR) {\n periodLength = actualDelta;\n } else {\n periodLength = ONEAVGYEAR;\n }\n } else if (definedDelta === ONEAVGQUARTER && delta >= ONEMINQUARTER) {\n if (actualDelta >= ONEMINQUARTER && actualDelta <= ONEMAXQUARTER) {\n periodLength = actualDelta;\n } else {\n periodLength = ONEAVGQUARTER;\n }\n } else if (delta >= ONEMINMONTH) {\n if (actualDelta >= ONEMINMONTH && actualDelta <= ONEMAXMONTH) {\n periodLength = actualDelta;\n } else {\n periodLength = ONEAVGMONTH;\n }\n } else if (definedDelta === ONEWEEK && delta >= ONEWEEK) {\n periodLength = ONEWEEK;\n } else if (delta >= ONEDAY) {\n periodLength = ONEDAY;\n } else if (definedDelta === HALFDAY && delta >= HALFDAY) {\n periodLength = HALFDAY;\n } else if (definedDelta === ONEHOUR && delta >= ONEHOUR) {\n periodLength = ONEHOUR;\n }\n var inBetween;\n if (periodLength >= actualDelta) {\n periodLength = actualDelta;\n inBetween = true;\n }\n var endPeriod = v + periodLength;\n if (ax.rangebreaks && periodLength > 0) {\n var nAll = 84;\n var n = 0;\n for (var c = 0; c < nAll; c++) {\n var r = (c + 0.5) / nAll;\n if (ax.maskBreaks(v * (1 - r) + r * endPeriod) !== BADNUM) n++;\n }\n periodLength *= n / nAll;\n if (!periodLength) {\n tickVals[i].drop = true;\n }\n if (inBetween && actualDelta > ONEWEEK) periodLength = actualDelta;\n }\n if (periodLength > 0 || // not instant\n i === 0) {\n tickVals[i].periodX = v + periodLength / 2;\n }\n }\n }\n axes.calcTicks = function calcTicks(ax, opts) {\n var type = ax.type;\n var calendar = ax.calendar;\n var ticklabelstep = ax.ticklabelstep;\n var isPeriod = ax.ticklabelmode === \"period\";\n var isReversed = ax.range[0] > ax.range[1];\n var ticklabelIndex = !ax.ticklabelindex || Lib.isArrayOrTypedArray(ax.ticklabelindex) ? ax.ticklabelindex : [ax.ticklabelindex];\n var rng = Lib.simpleMap(ax.range, ax.r2l, void 0, void 0, opts);\n var axrev = rng[1] < rng[0];\n var minRange = Math.min(rng[0], rng[1]);\n var maxRange = Math.max(rng[0], rng[1]);\n var maxTicks = Math.max(1e3, ax._length || 0);\n var ticksOut = [];\n var minorTicks = [];\n var tickVals = [];\n var minorTickVals = [];\n var allTicklabelVals = [];\n var hasMinor = ax.minor && (ax.minor.ticks || ax.minor.showgrid);\n for (var major = 1; major >= (hasMinor ? 0 : 1); major--) {\n var isMinor = !major;\n if (major) {\n ax._dtickInit = ax.dtick;\n ax._tick0Init = ax.tick0;\n } else {\n ax.minor._dtickInit = ax.minor.dtick;\n ax.minor._tick0Init = ax.minor.tick0;\n }\n var mockAx = major ? ax : Lib.extendFlat({}, ax, ax.minor);\n if (isMinor) {\n axes.prepMinorTicks(mockAx, ax, opts);\n } else {\n axes.prepTicks(mockAx, opts);\n }\n if (mockAx.tickmode === \"array\") {\n if (major) {\n tickVals = [];\n ticksOut = arrayTicks(ax, !isMinor);\n } else {\n minorTickVals = [];\n minorTicks = arrayTicks(ax, !isMinor);\n }\n continue;\n }\n if (mockAx.tickmode === \"sync\") {\n tickVals = [];\n ticksOut = syncTicks(ax);\n continue;\n }\n var exRng = expandRange(rng);\n var startTick = exRng[0];\n var endTick = exRng[1];\n var numDtick = isNumeric(mockAx.dtick);\n var isDLog = type === \"log\" && !(numDtick || mockAx.dtick.charAt(0) === \"L\");\n var x0 = axes.tickFirst(mockAx, opts);\n if (major) {\n ax._tmin = x0;\n if (x0 < startTick !== axrev) break;\n if (type === \"category\" || type === \"multicategory\") {\n endTick = axrev ? Math.max(-0.5, endTick) : Math.min(ax._categories.length - 0.5, endTick);\n }\n }\n var prevX = null;\n var x = x0;\n var majorId;\n if (major) {\n var _dTick;\n if (numDtick) {\n _dTick = ax.dtick;\n } else {\n if (type === \"date\") {\n if (typeof ax.dtick === \"string\" && ax.dtick.charAt(0) === \"M\") {\n _dTick = ONEAVGMONTH * ax.dtick.substring(1);\n }\n } else {\n _dTick = ax._roughDTick;\n }\n }\n majorId = Math.round((ax.r2l(x) - ax.r2l(ax.tick0)) / _dTick) - 1;\n }\n var dtick = mockAx.dtick;\n if (mockAx.rangebreaks && mockAx._tick0Init !== mockAx.tick0) {\n x = moveOutsideBreak(x, ax);\n if (!axrev) {\n x = axes.tickIncrement(x, dtick, !axrev, calendar);\n }\n }\n if (major && isPeriod) {\n x = axes.tickIncrement(x, dtick, !axrev, calendar);\n majorId--;\n }\n for (; axrev ? x >= endTick : x <= endTick; x = axes.tickIncrement(\n x,\n dtick,\n axrev,\n calendar\n )) {\n if (major) majorId++;\n if (mockAx.rangebreaks) {\n if (!axrev) {\n if (x < startTick) continue;\n if (mockAx.maskBreaks(x) === BADNUM && moveOutsideBreak(x, mockAx) >= maxRange) break;\n }\n }\n if (tickVals.length > maxTicks || x === prevX) break;\n prevX = x;\n var obj = { value: x };\n if (major) {\n if (isDLog && x !== (x | 0)) {\n obj.simpleLabel = true;\n }\n if (ticklabelstep > 1 && majorId % ticklabelstep) {\n obj.skipLabel = true;\n }\n tickVals.push(obj);\n } else {\n obj.minor = true;\n minorTickVals.push(obj);\n }\n }\n }\n if (!minorTickVals || minorTickVals.length < 2) {\n ticklabelIndex = false;\n } else {\n var diff = (minorTickVals[1].value - minorTickVals[0].value) * (isReversed ? -1 : 1);\n if (!periodCompatibleWithTickformat(diff, ax.tickformat)) {\n ticklabelIndex = false;\n }\n }\n if (!ticklabelIndex) {\n allTicklabelVals = tickVals;\n } else {\n var allTickVals = tickVals.concat(minorTickVals);\n if (isPeriod && tickVals.length) {\n allTickVals = allTickVals.slice(1);\n }\n allTickVals = allTickVals.sort(function(a, b) {\n return a.value - b.value;\n }).filter(function(tick, index, self2) {\n return index === 0 || tick.value !== self2[index - 1].value;\n });\n var majorTickIndices = allTickVals.map(function(item, index) {\n return item.minor === void 0 && !item.skipLabel ? index : null;\n }).filter(function(index) {\n return index !== null;\n });\n majorTickIndices.forEach(function(majorIdx) {\n ticklabelIndex.map(function(nextLabelIdx) {\n var minorIdx = majorIdx + nextLabelIdx;\n if (minorIdx >= 0 && minorIdx < allTickVals.length) {\n Lib.pushUnique(allTicklabelVals, allTickVals[minorIdx]);\n }\n });\n });\n }\n if (hasMinor) {\n var canOverlap = ax.minor.ticks === \"inside\" && ax.ticks === \"outside\" || ax.minor.ticks === \"outside\" && ax.ticks === \"inside\";\n if (!canOverlap) {\n var majorValues = tickVals.map(function(d) {\n return d.value;\n });\n var list = [];\n for (var k = 0; k < minorTickVals.length; k++) {\n var T = minorTickVals[k];\n var v = T.value;\n if (majorValues.indexOf(v) !== -1) {\n continue;\n }\n var found = false;\n for (var q = 0; !found && q < tickVals.length; q++) {\n if (\n // add 10e6 to eliminate problematic digits\n 1e7 + tickVals[q].value === 1e7 + v\n ) {\n found = true;\n }\n }\n if (!found) list.push(T);\n }\n minorTickVals = list;\n }\n }\n if (isPeriod) positionPeriodTicks(allTicklabelVals, ax, ax._definedDelta);\n var i;\n if (ax.rangebreaks) {\n var flip = ax._id.charAt(0) === \"y\";\n var fontSize = 1;\n if (ax.tickmode === \"auto\") {\n fontSize = ax.tickfont ? ax.tickfont.size : 12;\n }\n var prevL = NaN;\n for (i = tickVals.length - 1; i > -1; i--) {\n if (tickVals[i].drop) {\n tickVals.splice(i, 1);\n continue;\n }\n tickVals[i].value = moveOutsideBreak(tickVals[i].value, ax);\n var l = ax.c2p(tickVals[i].value);\n if (flip ? prevL > l - fontSize : prevL < l + fontSize) {\n tickVals.splice(axrev ? i + 1 : i, 1);\n } else {\n prevL = l;\n }\n }\n }\n if (isAngular(ax) && Math.abs(rng[1] - rng[0]) === 360) {\n tickVals.pop();\n }\n ax._tmax = (tickVals[tickVals.length - 1] || {}).value;\n ax._prevDateHead = \"\";\n ax._inCalcTicks = true;\n var lastVisibleHead;\n var hideLabel = function(tick) {\n tick.text = \"\";\n ax._prevDateHead = lastVisibleHead;\n };\n tickVals = tickVals.concat(minorTickVals);\n function setTickLabel(ax2, tickVal) {\n var text = axes.tickText(\n ax2,\n tickVal.value,\n false,\n // hover\n tickVal.simpleLabel\n // noSuffixPrefix\n );\n var p = tickVal.periodX;\n if (p !== void 0) {\n text.periodX = p;\n if (p > maxRange || p < minRange) {\n if (p > maxRange) text.periodX = maxRange;\n if (p < minRange) text.periodX = minRange;\n hideLabel(text);\n }\n }\n return text;\n }\n var t;\n for (i = 0; i < tickVals.length; i++) {\n var _minor = tickVals[i].minor;\n var _value = tickVals[i].value;\n if (_minor) {\n if (ticklabelIndex && allTicklabelVals.indexOf(tickVals[i]) !== -1) {\n t = setTickLabel(ax, tickVals[i]);\n } else {\n t = { x: _value };\n }\n t.minor = true;\n minorTicks.push(t);\n } else {\n lastVisibleHead = ax._prevDateHead;\n t = setTickLabel(ax, tickVals[i]);\n if (tickVals[i].skipLabel || ticklabelIndex && allTicklabelVals.indexOf(tickVals[i]) === -1) {\n hideLabel(t);\n }\n ticksOut.push(t);\n }\n }\n ticksOut = ticksOut.concat(minorTicks);\n ax._inCalcTicks = false;\n if (isPeriod && ticksOut.length) {\n ticksOut[0].noTick = true;\n }\n return ticksOut;\n };\n function filterRangeBreaks(ax, ticksOut) {\n if (ax.rangebreaks) {\n ticksOut = ticksOut.filter(function(d) {\n return ax.maskBreaks(d.x) !== BADNUM;\n });\n }\n return ticksOut;\n }\n function syncTicks(ax) {\n var baseAxis = ax._mainAxis;\n var ticksOut = [];\n if (baseAxis._vals) {\n for (var i = 0; i < baseAxis._vals.length; i++) {\n if (baseAxis._vals[i].noTick) {\n continue;\n }\n var pos = baseAxis.l2p(baseAxis._vals[i].x);\n var vali = ax.p2l(pos);\n var obj = axes.tickText(ax, vali);\n if (baseAxis._vals[i].minor) {\n obj.minor = true;\n obj.text = \"\";\n }\n ticksOut.push(obj);\n }\n }\n ticksOut = filterRangeBreaks(ax, ticksOut);\n return ticksOut;\n }\n function arrayTicks(ax, majorOnly) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var exRng = expandRange(rng);\n var tickMin = Math.min(exRng[0], exRng[1]);\n var tickMax = Math.max(exRng[0], exRng[1]);\n var tickVal2l = ax.type === \"category\" ? ax.d2l_noadd : ax.d2l;\n if (ax.type === \"log\" && String(ax.dtick).charAt(0) !== \"L\") {\n ax.dtick = \"L\" + Math.pow(10, Math.floor(Math.min(ax.range[0], ax.range[1])) - 1);\n }\n var ticksOut = [];\n for (var isMinor = 0; isMinor <= 1; isMinor++) {\n if (majorOnly !== void 0 && (majorOnly && isMinor || majorOnly === false && !isMinor)) continue;\n if (isMinor && !ax.minor) continue;\n var vals = !isMinor ? ax.tickvals : ax.minor.tickvals;\n var text = !isMinor ? ax.ticktext : [];\n if (!vals) continue;\n if (!Lib.isArrayOrTypedArray(text)) text = [];\n for (var i = 0; i < vals.length; i++) {\n var vali = tickVal2l(vals[i]);\n if (vali > tickMin && vali < tickMax) {\n var obj = axes.tickText(ax, vali, false, String(text[i]));\n if (isMinor) {\n obj.minor = true;\n obj.text = \"\";\n }\n ticksOut.push(obj);\n }\n }\n }\n ticksOut = filterRangeBreaks(ax, ticksOut);\n return ticksOut;\n }\n var roundBase10 = [2, 5, 10];\n var roundBase24 = [1, 2, 3, 6, 12];\n var roundBase60 = [1, 2, 5, 10, 15, 30];\n var roundDays = [1, 2, 3, 7, 14];\n var roundLog1 = [-0.046, 0, 0.301, 0.477, 0.602, 0.699, 0.778, 0.845, 0.903, 0.954, 1];\n var roundLog2 = [-0.301, 0, 0.301, 0.699, 1];\n var roundAngles = [15, 30, 45, 90, 180];\n function roundDTick(roughDTick, base, roundingSet) {\n return base * Lib.roundUp(roughDTick / base, roundingSet);\n }\n axes.autoTicks = function(ax, roughDTick, isMinor) {\n var base;\n function getBase(v) {\n return Math.pow(v, Math.floor(Math.log(roughDTick) / Math.LN10));\n }\n if (ax.type === \"date\") {\n ax.tick0 = Lib.dateTick0(ax.calendar, 0);\n var roughX2 = 2 * roughDTick;\n if (roughX2 > ONEAVGYEAR) {\n roughDTick /= ONEAVGYEAR;\n base = getBase(10);\n ax.dtick = \"M\" + 12 * roundDTick(roughDTick, base, roundBase10);\n } else if (roughX2 > ONEAVGMONTH) {\n roughDTick /= ONEAVGMONTH;\n ax.dtick = \"M\" + roundDTick(roughDTick, 1, roundBase24);\n } else if (roughX2 > ONEDAY) {\n ax.dtick = roundDTick(roughDTick, ONEDAY, ax._hasDayOfWeekBreaks ? [1, 2, 7, 14] : roundDays);\n if (!isMinor) {\n var tickformat = axes.getTickFormat(ax);\n var isPeriod = ax.ticklabelmode === \"period\";\n if (isPeriod) ax._rawTick0 = ax.tick0;\n if (/%[uVW]/.test(tickformat)) {\n ax.tick0 = Lib.dateTick0(ax.calendar, 2);\n } else {\n ax.tick0 = Lib.dateTick0(ax.calendar, 1);\n }\n if (isPeriod) ax._dowTick0 = ax.tick0;\n }\n } else if (roughX2 > ONEHOUR) {\n ax.dtick = roundDTick(roughDTick, ONEHOUR, roundBase24);\n } else if (roughX2 > ONEMIN) {\n ax.dtick = roundDTick(roughDTick, ONEMIN, roundBase60);\n } else if (roughX2 > ONESEC) {\n ax.dtick = roundDTick(roughDTick, ONESEC, roundBase60);\n } else {\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n } else if (ax.type === \"log\") {\n ax.tick0 = 0;\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n if (ax._isMinor) {\n roughDTick *= 1.5;\n }\n if (roughDTick > 0.7) {\n ax.dtick = Math.ceil(roughDTick);\n } else if (Math.abs(rng[1] - rng[0]) < 1) {\n var nt = 1.5 * Math.abs((rng[1] - rng[0]) / roughDTick);\n roughDTick = Math.abs(Math.pow(10, rng[1]) - Math.pow(10, rng[0])) / nt;\n base = getBase(10);\n ax.dtick = \"L\" + roundDTick(roughDTick, base, roundBase10);\n } else {\n ax.dtick = roughDTick > 0.3 ? \"D2\" : \"D1\";\n }\n } else if (ax.type === \"category\" || ax.type === \"multicategory\") {\n ax.tick0 = 0;\n ax.dtick = Math.ceil(Math.max(roughDTick, 1));\n } else if (isAngular(ax)) {\n ax.tick0 = 0;\n base = 1;\n ax.dtick = roundDTick(roughDTick, base, roundAngles);\n } else {\n ax.tick0 = 0;\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n if (ax.dtick === 0) ax.dtick = 1;\n if (!isNumeric(ax.dtick) && typeof ax.dtick !== \"string\") {\n var olddtick = ax.dtick;\n ax.dtick = 1;\n throw \"ax.dtick error: \" + String(olddtick);\n }\n };\n function autoTickRound(ax) {\n var dtick = ax.dtick;\n ax._tickexponent = 0;\n if (!isNumeric(dtick) && typeof dtick !== \"string\") {\n dtick = 1;\n }\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n ax._tickround = null;\n }\n if (ax.type === \"date\") {\n var tick0ms = ax.r2l(ax.tick0);\n var tick0str = ax.l2r(tick0ms).replace(/(^-|i)/g, \"\");\n var tick0len = tick0str.length;\n if (String(dtick).charAt(0) === \"M\") {\n if (tick0len > 10 || tick0str.substr(5) !== \"01-01\") ax._tickround = \"d\";\n else ax._tickround = +dtick.substr(1) % 12 === 0 ? \"y\" : \"m\";\n } else if (dtick >= ONEDAY && tick0len <= 10 || dtick >= ONEDAY * 15) ax._tickround = \"d\";\n else if (dtick >= ONEMIN && tick0len <= 16 || dtick >= ONEHOUR) ax._tickround = \"M\";\n else if (dtick >= ONESEC && tick0len <= 19 || dtick >= ONEMIN) ax._tickround = \"S\";\n else {\n var tick1len = ax.l2r(tick0ms + dtick).replace(/^-/, \"\").length;\n ax._tickround = Math.max(tick0len, tick1len) - 20;\n if (ax._tickround < 0) ax._tickround = 4;\n }\n } else if (isNumeric(dtick) || dtick.charAt(0) === \"L\") {\n var rng = ax.range.map(ax.r2d || Number);\n if (!isNumeric(dtick)) dtick = Number(dtick.substr(1));\n ax._tickround = 2 - Math.floor(Math.log(dtick) / Math.LN10 + 0.01);\n var maxend = Math.max(Math.abs(rng[0]), Math.abs(rng[1]));\n var rangeexp = Math.floor(Math.log(maxend) / Math.LN10 + 0.01);\n var minexponent = ax.minexponent === void 0 ? 3 : ax.minexponent;\n if (Math.abs(rangeexp) > minexponent) {\n if (isSIFormat(ax.exponentformat) && !beyondSI(rangeexp)) {\n ax._tickexponent = 3 * Math.round((rangeexp - 1) / 3);\n } else ax._tickexponent = rangeexp;\n }\n } else {\n ax._tickround = null;\n }\n }\n axes.tickIncrement = function(x, dtick, axrev, calendar) {\n var axSign = axrev ? -1 : 1;\n if (isNumeric(dtick)) return Lib.increment(x, axSign * dtick);\n var tType = dtick.charAt(0);\n var dtSigned = axSign * Number(dtick.substr(1));\n if (tType === \"M\") return Lib.incrementMonth(x, dtSigned, calendar);\n if (tType === \"L\") return Math.log(Math.pow(10, x) + dtSigned) / Math.LN10;\n if (tType === \"D\") {\n var tickset = dtick === \"D2\" ? roundLog2 : roundLog1;\n var x2 = x + axSign * 0.01;\n var frac = Lib.roundUp(Lib.mod(x2, 1), tickset, axrev);\n return Math.floor(x2) + Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n }\n throw \"unrecognized dtick \" + String(dtick);\n };\n axes.tickFirst = function(ax, opts) {\n var r2l = ax.r2l || Number;\n var rng = Lib.simpleMap(ax.range, r2l, void 0, void 0, opts);\n var axrev = rng[1] < rng[0];\n var sRound = axrev ? Math.floor : Math.ceil;\n var r0 = expandRange(rng)[0];\n var dtick = ax.dtick;\n var tick0 = r2l(ax.tick0);\n if (isNumeric(dtick)) {\n var tmin = sRound((r0 - tick0) / dtick) * dtick + tick0;\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n tmin = Lib.constrain(tmin, 0, ax._categories.length - 1);\n }\n return tmin;\n }\n var tType = dtick.charAt(0);\n var dtNum = Number(dtick.substr(1));\n if (tType === \"M\") {\n var cnt = 0;\n var t02 = tick0;\n var t12, mult, newDTick;\n while (cnt < 10) {\n t12 = axes.tickIncrement(t02, dtick, axrev, ax.calendar);\n if ((t12 - r0) * (t02 - r0) <= 0) {\n if (axrev) return Math.min(t02, t12);\n return Math.max(t02, t12);\n }\n mult = (r0 - (t02 + t12) / 2) / (t12 - t02);\n newDTick = tType + (Math.abs(Math.round(mult)) || 1) * dtNum;\n t02 = axes.tickIncrement(t02, newDTick, mult < 0 ? !axrev : axrev, ax.calendar);\n cnt++;\n }\n Lib.error(\"tickFirst did not converge\", ax);\n return t02;\n } else if (tType === \"L\") {\n return Math.log(sRound(\n (Math.pow(10, r0) - tick0) / dtNum\n ) * dtNum + tick0) / Math.LN10;\n } else if (tType === \"D\") {\n var tickset = dtick === \"D2\" ? roundLog2 : roundLog1;\n var frac = Lib.roundUp(Lib.mod(r0, 1), tickset, axrev);\n return Math.floor(r0) + Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n } else throw \"unrecognized dtick \" + String(dtick);\n };\n axes.tickText = function(ax, x, hover, noSuffixPrefix) {\n var out = tickTextObj(ax, x);\n var arrayMode = ax.tickmode === \"array\";\n var extraPrecision = hover || arrayMode;\n var axType = ax.type;\n var tickVal2l = axType === \"category\" ? ax.d2l_noadd : ax.d2l;\n var i;\n var inbounds = function(v) {\n var p = ax.l2p(v);\n return p >= 0 && p <= ax._length ? v : null;\n };\n if (arrayMode && Lib.isArrayOrTypedArray(ax.ticktext)) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var minDiff = (Math.abs(rng[1] - rng[0]) - (ax._lBreaks || 0)) / 1e4;\n for (i = 0; i < ax.ticktext.length; i++) {\n if (Math.abs(x - tickVal2l(ax.tickvals[i])) < minDiff) break;\n }\n if (i < ax.ticktext.length) {\n out.text = String(ax.ticktext[i]);\n out.xbnd = [\n inbounds(out.x - 0.5),\n inbounds(out.x + ax.dtick - 0.5)\n ];\n return out;\n }\n }\n function isHidden(showAttr) {\n if (showAttr === void 0) return true;\n if (hover) return showAttr === \"none\";\n var firstOrLast = {\n first: ax._tmin,\n last: ax._tmax\n }[showAttr];\n return showAttr !== \"all\" && x !== firstOrLast;\n }\n var hideexp = hover ? \"never\" : ax.exponentformat !== \"none\" && isHidden(ax.showexponent) ? \"hide\" : \"\";\n if (axType === \"date\") formatDate(ax, out, hover, extraPrecision);\n else if (axType === \"log\") formatLog(ax, out, hover, extraPrecision, hideexp);\n else if (axType === \"category\") formatCategory(ax, out);\n else if (axType === \"multicategory\") formatMultiCategory(ax, out, hover);\n else if (isAngular(ax)) formatAngle(ax, out, hover, extraPrecision, hideexp);\n else formatLinear(ax, out, hover, extraPrecision, hideexp);\n if (!noSuffixPrefix) {\n if (ax.tickprefix && !isHidden(ax.showtickprefix)) out.text = ax.tickprefix + out.text;\n if (ax.ticksuffix && !isHidden(ax.showticksuffix)) out.text += ax.ticksuffix;\n }\n if (ax.labelalias && ax.labelalias.hasOwnProperty(out.text)) {\n var t = ax.labelalias[out.text];\n if (typeof t === \"string\") out.text = t;\n }\n if (ax.tickson === \"boundaries\" || ax.showdividers) {\n out.xbnd = [\n inbounds(out.x - 0.5),\n inbounds(out.x + ax.dtick - 0.5)\n ];\n }\n return out;\n };\n axes.hoverLabelText = function(ax, values, hoverformat) {\n if (hoverformat) ax = Lib.extendFlat({}, ax, { hoverformat });\n var val = Lib.isArrayOrTypedArray(values) ? values[0] : values;\n var val2 = Lib.isArrayOrTypedArray(values) ? values[1] : void 0;\n if (val2 !== void 0 && val2 !== val) {\n return axes.hoverLabelText(ax, val, hoverformat) + \" - \" + axes.hoverLabelText(ax, val2, hoverformat);\n }\n var logOffScale = ax.type === \"log\" && val <= 0;\n var tx = axes.tickText(ax, ax.c2l(logOffScale ? -val : val), \"hover\").text;\n if (logOffScale) {\n return val === 0 ? \"0\" : MINUS_SIGN + tx;\n }\n return tx;\n };\n function tickTextObj(ax, x, text) {\n var tf = ax.tickfont || {};\n return {\n x,\n dx: 0,\n dy: 0,\n text: text || \"\",\n fontSize: tf.size,\n font: tf.family,\n fontWeight: tf.weight,\n fontStyle: tf.style,\n fontVariant: tf.variant,\n fontTextcase: tf.textcase,\n fontLineposition: tf.lineposition,\n fontShadow: tf.shadow,\n fontColor: tf.color\n };\n }\n function formatDate(ax, out, hover, extraPrecision) {\n var tr = ax._tickround;\n var fmt = hover && ax.hoverformat || axes.getTickFormat(ax);\n extraPrecision = !fmt && extraPrecision;\n if (extraPrecision) {\n if (isNumeric(tr)) tr = 4;\n else tr = { y: \"m\", m: \"d\", d: \"M\", M: \"S\", S: 4 }[tr];\n }\n var dateStr = Lib.formatDate(out.x, fmt, tr, ax._dateFormat, ax.calendar, ax._extraFormat);\n var headStr;\n var splitIndex = dateStr.indexOf(\"\\n\");\n if (splitIndex !== -1) {\n headStr = dateStr.substr(splitIndex + 1);\n dateStr = dateStr.substr(0, splitIndex);\n }\n if (extraPrecision) {\n if (headStr !== void 0 && (dateStr === \"00:00:00\" || dateStr === \"00:00\")) {\n dateStr = headStr;\n headStr = \"\";\n } else if (dateStr.length === 8) {\n dateStr = dateStr.replace(/:00$/, \"\");\n }\n }\n if (headStr) {\n if (hover) {\n if (tr === \"d\") dateStr += \", \" + headStr;\n else dateStr = headStr + (dateStr ? \", \" + dateStr : \"\");\n } else {\n if (!ax._inCalcTicks || ax._prevDateHead !== headStr) {\n ax._prevDateHead = headStr;\n dateStr += \"
\" + headStr;\n } else {\n var isInside = insideTicklabelposition(ax);\n var side = ax._trueSide || ax.side;\n if (!isInside && side === \"top\" || isInside && side === \"bottom\") {\n dateStr += \"
\";\n }\n }\n }\n }\n out.text = dateStr;\n }\n function formatLog(ax, out, hover, extraPrecision, hideexp) {\n var dtick = ax.dtick;\n var x = out.x;\n var tickformat = ax.tickformat;\n var dtChar0 = typeof dtick === \"string\" && dtick.charAt(0);\n if (hideexp === \"never\") {\n hideexp = \"\";\n }\n if (extraPrecision && dtChar0 !== \"L\") {\n dtick = \"L3\";\n dtChar0 = \"L\";\n }\n if (tickformat || dtChar0 === \"L\") {\n out.text = numFormat(Math.pow(10, x), ax, hideexp, extraPrecision);\n } else if (isNumeric(dtick) || dtChar0 === \"D\" && Lib.mod(x + 0.01, 1) < 0.1) {\n var p = Math.round(x);\n var absP = Math.abs(p);\n var exponentFormat = ax.exponentformat;\n if (exponentFormat === \"power\" || isSIFormat(exponentFormat) && beyondSI(p)) {\n if (p === 0) out.text = 1;\n else if (p === 1) out.text = \"10\";\n else out.text = \"10\" + (p > 1 ? \"\" : MINUS_SIGN) + absP + \"\";\n out.fontSize *= 1.25;\n } else if ((exponentFormat === \"e\" || exponentFormat === \"E\") && absP > 2) {\n out.text = \"1\" + exponentFormat + (p > 0 ? \"+\" : MINUS_SIGN) + absP;\n } else {\n out.text = numFormat(Math.pow(10, x), ax, \"\", \"fakehover\");\n if (dtick === \"D1\" && ax._id.charAt(0) === \"y\") {\n out.dy -= out.fontSize / 6;\n }\n }\n } else if (dtChar0 === \"D\") {\n out.text = String(Math.round(Math.pow(10, Lib.mod(x, 1))));\n out.fontSize *= 0.75;\n } else throw \"unrecognized dtick \" + String(dtick);\n if (ax.dtick === \"D1\") {\n var firstChar = String(out.text).charAt(0);\n if (firstChar === \"0\" || firstChar === \"1\") {\n if (ax._id.charAt(0) === \"y\") {\n out.dx -= out.fontSize / 4;\n } else {\n out.dy += out.fontSize / 2;\n out.dx += (ax.range[1] > ax.range[0] ? 1 : -1) * out.fontSize * (x < 0 ? 0.5 : 0.25);\n }\n }\n }\n }\n function formatCategory(ax, out) {\n var tt = ax._categories[Math.round(out.x)];\n if (tt === void 0) tt = \"\";\n out.text = String(tt);\n }\n function formatMultiCategory(ax, out, hover) {\n var v = Math.round(out.x);\n var cats = ax._categories[v] || [];\n var tt = cats[1] === void 0 ? \"\" : String(cats[1]);\n var tt2 = cats[0] === void 0 ? \"\" : String(cats[0]);\n if (hover) {\n out.text = tt2 + \" - \" + tt;\n } else {\n out.text = tt;\n out.text2 = tt2;\n }\n }\n function formatLinear(ax, out, hover, extraPrecision, hideexp) {\n if (hideexp === \"never\") {\n hideexp = \"\";\n } else if (ax.showexponent === \"all\" && Math.abs(out.x / ax.dtick) < 1e-6) {\n hideexp = \"hide\";\n }\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n }\n function formatAngle(ax, out, hover, extraPrecision, hideexp) {\n if (ax.thetaunit === \"radians\" && !hover) {\n var num = out.x / 180;\n if (num === 0) {\n out.text = \"0\";\n } else {\n var frac = num2frac(num);\n if (frac[1] >= 100) {\n out.text = numFormat(Lib.deg2rad(out.x), ax, hideexp, extraPrecision);\n } else {\n var isNeg = out.x < 0;\n if (frac[1] === 1) {\n if (frac[0] === 1) out.text = \"\\u03C0\";\n else out.text = frac[0] + \"\\u03C0\";\n } else {\n out.text = [\n \"\",\n frac[0],\n \"\",\n \"\\u2044\",\n \"\",\n frac[1],\n \"\",\n \"\\u03C0\"\n ].join(\"\");\n }\n if (isNeg) out.text = MINUS_SIGN + out.text;\n }\n }\n } else {\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n }\n }\n function num2frac(num) {\n function almostEq(a, b) {\n return Math.abs(a - b) <= 1e-6;\n }\n function findGCD(a, b) {\n return almostEq(b, 0) ? a : findGCD(b, a % b);\n }\n function findPrecision(n) {\n var e = 1;\n while (!almostEq(Math.round(n * e) / e, n)) {\n e *= 10;\n }\n return e;\n }\n var precision = findPrecision(num);\n var number = num * precision;\n var gcd = Math.abs(findGCD(number, precision));\n return [\n // numerator\n Math.round(number / gcd),\n // denominator\n Math.round(precision / gcd)\n ];\n }\n var SIPREFIXES = [\"f\", \"p\", \"n\", \"\\u03BC\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\"];\n function isSIFormat(exponentFormat) {\n return exponentFormat === \"SI\" || exponentFormat === \"B\";\n }\n function beyondSI(exponent) {\n return exponent > 14 || exponent < -15;\n }\n function numFormat(v, ax, fmtoverride, hover) {\n var isNeg = v < 0;\n var tickRound = ax._tickround;\n var exponentFormat = fmtoverride || ax.exponentformat || \"B\";\n var exponent = ax._tickexponent;\n var tickformat = axes.getTickFormat(ax);\n var separatethousands = ax.separatethousands;\n if (hover) {\n var ah = {\n exponentformat: exponentFormat,\n minexponent: ax.minexponent,\n dtick: ax.showexponent === \"none\" ? ax.dtick : isNumeric(v) ? Math.abs(v) || 1 : 1,\n // if not showing any exponents, don't change the exponent\n // from what we calculate\n range: ax.showexponent === \"none\" ? ax.range.map(ax.r2d) : [0, v || 1]\n };\n autoTickRound(ah);\n tickRound = (Number(ah._tickround) || 0) + 4;\n exponent = ah._tickexponent;\n if (ax.hoverformat) tickformat = ax.hoverformat;\n }\n if (tickformat) return ax._numFormat(tickformat)(v).replace(/-/g, MINUS_SIGN);\n var e = Math.pow(10, -tickRound) / 2;\n if (exponentFormat === \"none\") exponent = 0;\n v = Math.abs(v);\n if (v < e) {\n v = \"0\";\n isNeg = false;\n } else {\n v += e;\n if (exponent) {\n v *= Math.pow(10, -exponent);\n tickRound += exponent;\n }\n if (tickRound === 0) v = String(Math.floor(v));\n else if (tickRound < 0) {\n v = String(Math.round(v));\n v = v.substr(0, v.length + tickRound);\n for (var i = tickRound; i < 0; i++) v += \"0\";\n } else {\n v = String(v);\n var dp = v.indexOf(\".\") + 1;\n if (dp) v = v.substr(0, dp + tickRound).replace(/\\.?0+$/, \"\");\n }\n v = Lib.numSeparate(v, ax._separators, separatethousands);\n }\n if (exponent && exponentFormat !== \"hide\") {\n if (isSIFormat(exponentFormat) && beyondSI(exponent)) exponentFormat = \"power\";\n var signedExponent;\n if (exponent < 0) signedExponent = MINUS_SIGN + -exponent;\n else if (exponentFormat !== \"power\") signedExponent = \"+\" + exponent;\n else signedExponent = String(exponent);\n if (exponentFormat === \"e\" || exponentFormat === \"E\") {\n v += exponentFormat + signedExponent;\n } else if (exponentFormat === \"power\") {\n v += \"\\xD710\" + signedExponent + \"\";\n } else if (exponentFormat === \"B\" && exponent === 9) {\n v += \"B\";\n } else if (isSIFormat(exponentFormat)) {\n v += SIPREFIXES[exponent / 3 + 5];\n }\n }\n if (isNeg) return MINUS_SIGN + v;\n return v;\n }\n axes.getTickFormat = function(ax) {\n var i;\n function convertToMs(dtick) {\n return typeof dtick !== \"string\" ? dtick : Number(dtick.replace(\"M\", \"\")) * ONEAVGMONTH;\n }\n function compareLogTicks(left, right) {\n var priority = [\"L\", \"D\"];\n if (typeof left === typeof right) {\n if (typeof left === \"number\") {\n return left - right;\n } else {\n var leftPriority = priority.indexOf(left.charAt(0));\n var rightPriority = priority.indexOf(right.charAt(0));\n if (leftPriority === rightPriority) {\n return Number(left.replace(/(L|D)/g, \"\")) - Number(right.replace(/(L|D)/g, \"\"));\n } else {\n return leftPriority - rightPriority;\n }\n }\n } else {\n return typeof left === \"number\" ? 1 : -1;\n }\n }\n function isProperStop(dtick, range, convert) {\n var convertFn = convert || function(x) {\n return x;\n };\n var leftDtick = range[0];\n var rightDtick = range[1];\n return (!leftDtick && typeof leftDtick !== \"number\" || convertFn(leftDtick) <= convertFn(dtick)) && (!rightDtick && typeof rightDtick !== \"number\" || convertFn(rightDtick) >= convertFn(dtick));\n }\n function isProperLogStop(dtick, range) {\n var isLeftDtickNull = range[0] === null;\n var isRightDtickNull = range[1] === null;\n var isDtickInRangeLeft = compareLogTicks(dtick, range[0]) >= 0;\n var isDtickInRangeRight = compareLogTicks(dtick, range[1]) <= 0;\n return (isLeftDtickNull || isDtickInRangeLeft) && (isRightDtickNull || isDtickInRangeRight);\n }\n var tickstop, stopi;\n if (ax.tickformatstops && ax.tickformatstops.length > 0) {\n switch (ax.type) {\n case \"date\":\n case \"linear\": {\n for (i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if (stopi.enabled && isProperStop(ax.dtick, stopi.dtickrange, convertToMs)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n case \"log\": {\n for (i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if (stopi.enabled && isProperLogStop(ax.dtick, stopi.dtickrange)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n default:\n }\n }\n return tickstop ? tickstop.value : ax.tickformat;\n };\n axes.getSubplots = function(gd, ax) {\n var subplotObj = gd._fullLayout._subplots;\n var allSubplots = subplotObj.cartesian.concat(subplotObj.gl2d || []);\n var out = ax ? axes.findSubplotsWithAxis(allSubplots, ax) : allSubplots;\n out.sort(function(a, b) {\n var aParts = a.substr(1).split(\"y\");\n var bParts = b.substr(1).split(\"y\");\n if (aParts[0] === bParts[0]) return +aParts[1] - +bParts[1];\n return +aParts[0] - +bParts[0];\n });\n return out;\n };\n axes.findSubplotsWithAxis = function(subplots, ax) {\n var axMatch = new RegExp(\n ax._id.charAt(0) === \"x\" ? \"^\" + ax._id + \"y\" : ax._id + \"$\"\n );\n var subplotsWithAx = [];\n for (var i = 0; i < subplots.length; i++) {\n var sp = subplots[i];\n if (axMatch.test(sp)) subplotsWithAx.push(sp);\n }\n return subplotsWithAx;\n };\n axes.makeClipPaths = function(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout._hasOnlyLargeSploms) return;\n var fullWidth = { _offset: 0, _length: fullLayout.width, _id: \"\" };\n var fullHeight = { _offset: 0, _length: fullLayout.height, _id: \"\" };\n var xaList = axes.list(gd, \"x\", true);\n var yaList = axes.list(gd, \"y\", true);\n var clipList = [];\n var i, j;\n for (i = 0; i < xaList.length; i++) {\n clipList.push({ x: xaList[i], y: fullHeight });\n for (j = 0; j < yaList.length; j++) {\n if (i === 0) clipList.push({ x: fullWidth, y: yaList[j] });\n clipList.push({ x: xaList[i], y: yaList[j] });\n }\n }\n var axClips = fullLayout._clips.selectAll(\".axesclip\").data(clipList, function(d) {\n return d.x._id + d.y._id;\n });\n axClips.enter().append(\"clipPath\").classed(\"axesclip\", true).attr(\"id\", function(d) {\n return \"clip\" + fullLayout._uid + d.x._id + d.y._id;\n }).append(\"rect\");\n axClips.exit().remove();\n axClips.each(function(d) {\n d3.select(this).select(\"rect\").attr({\n x: d.x._offset || 0,\n y: d.y._offset || 0,\n width: d.x._length || 1,\n height: d.y._length || 1\n });\n });\n };\n axes.draw = function(gd, arg, opts) {\n var fullLayout = gd._fullLayout;\n if (arg === \"redraw\") {\n fullLayout._paper.selectAll(\"g.subplot\").each(function(d) {\n var id = d[0];\n var plotinfo = fullLayout._plots[id];\n if (plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n plotinfo.xaxislayer.selectAll(\".\" + xa._id + \"tick\").remove();\n plotinfo.yaxislayer.selectAll(\".\" + ya._id + \"tick\").remove();\n plotinfo.xaxislayer.selectAll(\".\" + xa._id + \"tick2\").remove();\n plotinfo.yaxislayer.selectAll(\".\" + ya._id + \"tick2\").remove();\n plotinfo.xaxislayer.selectAll(\".\" + xa._id + \"divider\").remove();\n plotinfo.yaxislayer.selectAll(\".\" + ya._id + \"divider\").remove();\n if (plotinfo.minorGridlayer) plotinfo.minorGridlayer.selectAll(\"path\").remove();\n if (plotinfo.gridlayer) plotinfo.gridlayer.selectAll(\"path\").remove();\n if (plotinfo.zerolinelayer) plotinfo.zerolinelayer.selectAll(\"path\").remove();\n fullLayout._infolayer.select(\".g-\" + xa._id + \"title\").remove();\n fullLayout._infolayer.select(\".g-\" + ya._id + \"title\").remove();\n }\n });\n }\n var axList = !arg || arg === \"redraw\" ? axes.listIds(gd) : arg;\n var fullAxList = axes.list(gd);\n var overlayingShiftedAx = fullAxList.filter(function(ax) {\n return ax.autoshift;\n }).map(function(ax) {\n return ax.overlaying;\n });\n axList.map(function(axId) {\n var ax = axes.getFromId(gd, axId);\n if (ax.tickmode === \"sync\" && ax.overlaying) {\n var overlayingIndex = axList.findIndex(function(axis) {\n return axis === ax.overlaying;\n });\n if (overlayingIndex >= 0) {\n axList.unshift(axList.splice(overlayingIndex, 1).shift());\n }\n }\n });\n var axShifts = { false: { left: 0, right: 0 } };\n return Lib.syncOrAsync(axList.map(function(axId) {\n return function() {\n if (!axId) return;\n var ax = axes.getFromId(gd, axId);\n if (!opts) opts = {};\n opts.axShifts = axShifts;\n opts.overlayingShiftedAx = overlayingShiftedAx;\n var axDone = axes.drawOne(gd, ax, opts);\n if (ax._shiftPusher) {\n incrementShift(ax, ax._fullDepth || 0, axShifts, true);\n }\n ax._r = ax.range.slice();\n ax._rl = Lib.simpleMap(ax._r, ax.r2l);\n return axDone;\n };\n }));\n };\n axes.drawOne = function(gd, ax, opts) {\n opts = opts || {};\n var axShifts = opts.axShifts || {};\n var overlayingShiftedAx = opts.overlayingShiftedAx || [];\n var i, sp, plotinfo;\n ax.setScale();\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var counterLetter = axes.counterLetter(axId);\n var mainPlotinfo = fullLayout._plots[ax._mainSubplot];\n if (!mainPlotinfo) return;\n ax._shiftPusher = ax.autoshift || overlayingShiftedAx.indexOf(ax._id) !== -1 || overlayingShiftedAx.indexOf(ax.overlaying) !== -1;\n if (ax._shiftPusher & ax.anchor === \"free\") {\n var selfPush = ax.linewidth / 2 || 0;\n if (ax.ticks === \"inside\") {\n selfPush += ax.ticklen;\n }\n incrementShift(ax, selfPush, axShifts, true);\n incrementShift(ax, ax.shift || 0, axShifts, false);\n }\n if (opts.skipTitle !== true || ax._shift === void 0) ax._shift = setShiftVal(ax, axShifts);\n var mainAxLayer = mainPlotinfo[axLetter + \"axislayer\"];\n var mainLinePosition = ax._mainLinePosition;\n var mainLinePositionShift = mainLinePosition += ax._shift;\n var mainMirrorPosition = ax._mainMirrorPosition;\n var vals = ax._vals = axes.calcTicks(ax);\n var axInfo = [ax.mirror, mainLinePositionShift, mainMirrorPosition].join(\"_\");\n for (i = 0; i < vals.length; i++) {\n vals[i].axInfo = axInfo;\n }\n ax._selections = {};\n if (ax._tickAngles) ax._prevTickAngles = ax._tickAngles;\n ax._tickAngles = {};\n ax._depth = null;\n var llbboxes = {};\n function getLabelLevelBbox(suffix) {\n var cls = axId + (suffix || \"tick\");\n if (!llbboxes[cls]) llbboxes[cls] = calcLabelLevelBbox(ax, cls, mainLinePositionShift);\n return llbboxes[cls];\n }\n if (!ax.visible) return;\n var transTickFn = axes.makeTransTickFn(ax);\n var transTickLabelFn = axes.makeTransTickLabelFn(ax);\n var tickVals;\n var valsClipped;\n var insideTicks = ax.ticks === \"inside\";\n var outsideTicks = ax.ticks === \"outside\";\n if (ax.tickson === \"boundaries\") {\n var boundaryVals = getBoundaryVals(ax, vals);\n valsClipped = axes.clipEnds(ax, boundaryVals);\n tickVals = insideTicks ? valsClipped : boundaryVals;\n } else {\n valsClipped = axes.clipEnds(ax, vals);\n tickVals = insideTicks && ax.ticklabelmode !== \"period\" ? valsClipped : vals;\n }\n var gridVals = ax._gridVals = valsClipped;\n var dividerVals = getDividerVals(ax, vals);\n if (!fullLayout._hasOnlyLargeSploms) {\n var subplotsWithAx = ax._subplotsWith;\n var finishedGrids = {};\n for (i = 0; i < subplotsWithAx.length; i++) {\n sp = subplotsWithAx[i];\n plotinfo = fullLayout._plots[sp];\n var counterAxis = plotinfo[counterLetter + \"axis\"];\n var mainCounterID = counterAxis._mainAxis._id;\n if (finishedGrids[mainCounterID]) continue;\n finishedGrids[mainCounterID] = 1;\n var gridPath = axLetter === \"x\" ? \"M0,\" + counterAxis._offset + \"v\" + counterAxis._length : \"M\" + counterAxis._offset + \",0h\" + counterAxis._length;\n axes.drawGrid(gd, ax, {\n vals: gridVals,\n counterAxis,\n layer: plotinfo.gridlayer.select(\".\" + axId),\n minorLayer: plotinfo.minorGridlayer.select(\".\" + axId),\n path: gridPath,\n transFn: transTickFn\n });\n axes.drawZeroLine(gd, ax, {\n counterAxis,\n layer: plotinfo.zerolinelayer,\n path: gridPath,\n transFn: transTickFn\n });\n }\n }\n var tickPath;\n var majorTickSigns = axes.getTickSigns(ax);\n var minorTickSigns = axes.getTickSigns(ax, \"minor\");\n if (ax.ticks || ax.minor && ax.minor.ticks) {\n var majorTickPath = axes.makeTickPath(ax, mainLinePositionShift, majorTickSigns[2]);\n var minorTickPath = axes.makeTickPath(ax, mainLinePositionShift, minorTickSigns[2], { minor: true });\n var mirrorMajorTickPath;\n var mirrorMinorTickPath;\n var fullMajorTickPath;\n var fullMinorTickPath;\n if (ax._anchorAxis && ax.mirror && ax.mirror !== true) {\n mirrorMajorTickPath = axes.makeTickPath(ax, mainMirrorPosition, majorTickSigns[3]);\n mirrorMinorTickPath = axes.makeTickPath(ax, mainMirrorPosition, minorTickSigns[3], { minor: true });\n fullMajorTickPath = majorTickPath + mirrorMajorTickPath;\n fullMinorTickPath = minorTickPath + mirrorMinorTickPath;\n } else {\n mirrorMajorTickPath = \"\";\n mirrorMinorTickPath = \"\";\n fullMajorTickPath = majorTickPath;\n fullMinorTickPath = minorTickPath;\n }\n if (ax.showdividers && outsideTicks && ax.tickson === \"boundaries\") {\n var dividerLookup = {};\n for (i = 0; i < dividerVals.length; i++) {\n dividerLookup[dividerVals[i].x] = 1;\n }\n tickPath = function(d) {\n return dividerLookup[d.x] ? mirrorMajorTickPath : fullMajorTickPath;\n };\n } else {\n tickPath = function(d) {\n return d.minor ? fullMinorTickPath : fullMajorTickPath;\n };\n }\n }\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: mainAxLayer,\n path: tickPath,\n transFn: transTickFn\n });\n if (ax.mirror === \"allticks\") {\n var tickSubplots = Object.keys(ax._linepositions || {});\n for (i = 0; i < tickSubplots.length; i++) {\n sp = tickSubplots[i];\n plotinfo = fullLayout._plots[sp];\n var linepositions = ax._linepositions[sp] || [];\n var p0 = linepositions[0];\n var p1 = linepositions[1];\n var isMinor = linepositions[2];\n var spTickPath = axes.makeTickPath(\n ax,\n p0,\n isMinor ? majorTickSigns[0] : minorTickSigns[0],\n { minor: isMinor }\n ) + axes.makeTickPath(\n ax,\n p1,\n isMinor ? majorTickSigns[1] : minorTickSigns[1],\n { minor: isMinor }\n );\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: plotinfo[axLetter + \"axislayer\"],\n path: spTickPath,\n transFn: transTickFn\n });\n }\n }\n var seq = [];\n seq.push(function() {\n return axes.drawLabels(gd, ax, {\n vals,\n layer: mainAxLayer,\n plotinfo,\n transFn: transTickLabelFn,\n labelFns: axes.makeLabelFns(ax, mainLinePositionShift)\n });\n });\n if (ax.type === \"multicategory\") {\n var pad = { x: 2, y: 10 }[axLetter];\n seq.push(function() {\n var bboxKey = { x: \"height\", y: \"width\" }[axLetter];\n var standoff = getLabelLevelBbox()[bboxKey] + pad + (ax._tickAngles[axId + \"tick\"] ? ax.tickfont.size * LINE_SPACING : 0);\n return axes.drawLabels(gd, ax, {\n vals: getSecondaryLabelVals(ax, vals),\n layer: mainAxLayer,\n cls: axId + \"tick2\",\n repositionOnUpdate: true,\n secondary: true,\n transFn: transTickFn,\n labelFns: axes.makeLabelFns(ax, mainLinePositionShift + standoff * majorTickSigns[4])\n });\n });\n seq.push(function() {\n ax._depth = majorTickSigns[4] * (getLabelLevelBbox(\"tick2\")[ax.side] - mainLinePositionShift);\n return drawDividers(gd, ax, {\n vals: dividerVals,\n layer: mainAxLayer,\n path: axes.makeTickPath(ax, mainLinePositionShift, majorTickSigns[4], { len: ax._depth }),\n transFn: transTickFn\n });\n });\n } else if (ax.title.hasOwnProperty(\"standoff\")) {\n seq.push(function() {\n ax._depth = majorTickSigns[4] * (getLabelLevelBbox()[ax.side] - mainLinePositionShift);\n });\n }\n var hasRangeSlider = Registry.getComponentMethod(\"rangeslider\", \"isVisible\")(ax);\n if (!opts.skipTitle && !(hasRangeSlider && ax.side === \"bottom\")) {\n seq.push(function() {\n return drawTitle(gd, ax);\n });\n }\n seq.push(function() {\n var s = ax.side.charAt(0);\n var sMirror = OPPOSITE_SIDE[ax.side].charAt(0);\n var pos = axes.getPxPosition(gd, ax);\n var outsideTickLen = outsideTicks ? ax.ticklen : 0;\n var llbbox;\n var push;\n var mirrorPush;\n var rangeSliderPush;\n if (ax.automargin || hasRangeSlider || ax._shiftPusher) {\n if (ax.type === \"multicategory\") {\n llbbox = getLabelLevelBbox(\"tick2\");\n } else {\n llbbox = getLabelLevelBbox();\n if (axLetter === \"x\" && s === \"b\") {\n ax._depth = Math.max(llbbox.width > 0 ? llbbox.bottom - pos : 0, outsideTickLen);\n }\n }\n }\n var axDepth = 0;\n var titleDepth = 0;\n if (ax._shiftPusher) {\n axDepth = Math.max(\n outsideTickLen,\n llbbox.height > 0 ? s === \"l\" ? pos - llbbox.left : llbbox.right - pos : 0\n );\n if (ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n titleDepth = (ax._titleStandoff || 0) + (ax._titleScoot || 0);\n if (s === \"l\") {\n titleDepth += approxTitleDepth(ax);\n }\n }\n ax._fullDepth = Math.max(axDepth, titleDepth);\n }\n if (ax.automargin) {\n push = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 };\n var domainIndices = [0, 1];\n var shift = typeof ax._shift === \"number\" ? ax._shift : 0;\n if (axLetter === \"x\") {\n if (s === \"b\") {\n push[s] = ax._depth;\n } else {\n push[s] = ax._depth = Math.max(llbbox.width > 0 ? pos - llbbox.top : 0, outsideTickLen);\n domainIndices.reverse();\n }\n if (llbbox.width > 0) {\n var rExtra = llbbox.right - (ax._offset + ax._length);\n if (rExtra > 0) {\n push.xr = 1;\n push.r = rExtra;\n }\n var lExtra = ax._offset - llbbox.left;\n if (lExtra > 0) {\n push.xl = 0;\n push.l = lExtra;\n }\n }\n } else {\n if (s === \"l\") {\n ax._depth = Math.max(llbbox.height > 0 ? pos - llbbox.left : 0, outsideTickLen);\n push[s] = ax._depth - shift;\n } else {\n ax._depth = Math.max(llbbox.height > 0 ? llbbox.right - pos : 0, outsideTickLen);\n push[s] = ax._depth + shift;\n domainIndices.reverse();\n }\n if (llbbox.height > 0) {\n var bExtra = llbbox.bottom - (ax._offset + ax._length);\n if (bExtra > 0) {\n push.yb = 0;\n push.b = bExtra;\n }\n var tExtra = ax._offset - llbbox.top;\n if (tExtra > 0) {\n push.yt = 1;\n push.t = tExtra;\n }\n }\n }\n push[counterLetter] = ax.anchor === \"free\" ? ax.position : ax._anchorAxis.domain[domainIndices[0]];\n if (ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n push[s] += approxTitleDepth(ax) + (ax.title.standoff || 0);\n }\n if (ax.mirror && ax.anchor !== \"free\") {\n mirrorPush = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 };\n mirrorPush[sMirror] = ax.linewidth;\n if (ax.mirror && ax.mirror !== true) mirrorPush[sMirror] += outsideTickLen;\n if (ax.mirror === true || ax.mirror === \"ticks\") {\n mirrorPush[counterLetter] = ax._anchorAxis.domain[domainIndices[1]];\n } else if (ax.mirror === \"all\" || ax.mirror === \"allticks\") {\n mirrorPush[counterLetter] = [ax._counterDomainMin, ax._counterDomainMax][domainIndices[1]];\n }\n }\n }\n if (hasRangeSlider) {\n rangeSliderPush = Registry.getComponentMethod(\"rangeslider\", \"autoMarginOpts\")(gd, ax);\n }\n if (typeof ax.automargin === \"string\") {\n filterPush(push, ax.automargin);\n filterPush(mirrorPush, ax.automargin);\n }\n Plots.autoMargin(gd, axAutoMarginID(ax), push);\n Plots.autoMargin(gd, axMirrorAutoMarginID(ax), mirrorPush);\n Plots.autoMargin(gd, rangeSliderAutoMarginID(ax), rangeSliderPush);\n });\n return Lib.syncOrAsync(seq);\n };\n function filterPush(push, automargin) {\n if (!push) return;\n var keepMargin = Object.keys(MARGIN_MAPPING).reduce(function(data, nextKey) {\n if (automargin.indexOf(nextKey) !== -1) {\n MARGIN_MAPPING[nextKey].forEach(function(key) {\n data[key] = 1;\n });\n }\n return data;\n }, {});\n Object.keys(push).forEach(function(key) {\n if (!keepMargin[key]) {\n if (key.length === 1) push[key] = 0;\n else delete push[key];\n }\n });\n }\n function getBoundaryVals(ax, vals) {\n var out = [];\n var i;\n var _push = function(d, bndIndex) {\n var xb = d.xbnd[bndIndex];\n if (xb !== null) {\n out.push(Lib.extendFlat({}, d, { x: xb }));\n }\n };\n if (vals.length) {\n for (i = 0; i < vals.length; i++) {\n _push(vals[i], 0);\n }\n _push(vals[i - 1], 1);\n }\n return out;\n }\n function getSecondaryLabelVals(ax, vals) {\n var out = [];\n var lookup = {};\n for (var i = 0; i < vals.length; i++) {\n var d = vals[i];\n if (lookup[d.text2]) {\n lookup[d.text2].push(d.x);\n } else {\n lookup[d.text2] = [d.x];\n }\n }\n for (var k in lookup) {\n out.push(tickTextObj(ax, Lib.interp(lookup[k], 0.5), k));\n }\n return out;\n }\n function getDividerVals(ax, vals) {\n var out = [];\n var i, current;\n var reversed = vals.length && vals[vals.length - 1].x < vals[0].x;\n var _push = function(d2, bndIndex) {\n var xb = d2.xbnd[bndIndex];\n if (xb !== null) {\n out.push(Lib.extendFlat({}, d2, { x: xb }));\n }\n };\n if (ax.showdividers && vals.length) {\n for (i = 0; i < vals.length; i++) {\n var d = vals[i];\n if (d.text2 !== current) {\n _push(d, reversed ? 1 : 0);\n }\n current = d.text2;\n }\n _push(vals[i - 1], reversed ? 0 : 1);\n }\n return out;\n }\n function calcLabelLevelBbox(ax, cls, mainLinePositionShift) {\n var top, bottom;\n var left, right;\n if (ax._selections[cls].size()) {\n top = Infinity;\n bottom = -Infinity;\n left = Infinity;\n right = -Infinity;\n ax._selections[cls].each(function() {\n var thisLabel = selectTickLabel(this);\n var bb = Drawing.bBox(thisLabel.node().parentNode);\n top = Math.min(top, bb.top);\n bottom = Math.max(bottom, bb.bottom);\n left = Math.min(left, bb.left);\n right = Math.max(right, bb.right);\n });\n } else {\n var dummyCalc = axes.makeLabelFns(ax, mainLinePositionShift);\n top = bottom = dummyCalc.yFn({ dx: 0, dy: 0, fontSize: 0 });\n left = right = dummyCalc.xFn({ dx: 0, dy: 0, fontSize: 0 });\n }\n return {\n top,\n bottom,\n left,\n right,\n height: bottom - top,\n width: right - left\n };\n }\n axes.getTickSigns = function(ax, minor) {\n var axLetter = ax._id.charAt(0);\n var sideOpposite = { x: \"top\", y: \"right\" }[axLetter];\n var main = ax.side === sideOpposite ? 1 : -1;\n var out = [-1, 1, main, -main];\n var ticks = minor ? (ax.minor || {}).ticks : ax.ticks;\n if (ticks !== \"inside\" === (axLetter === \"x\")) {\n out = out.map(function(v) {\n return -v;\n });\n }\n if (ax.side) {\n out.push({ l: -1, t: -1, r: 1, b: 1 }[ax.side.charAt(0)]);\n }\n return out;\n };\n axes.makeTransTickFn = function(ax) {\n return ax._id.charAt(0) === \"x\" ? function(d) {\n return strTranslate(ax._offset + ax.l2p(d.x), 0);\n } : function(d) {\n return strTranslate(0, ax._offset + ax.l2p(d.x));\n };\n };\n axes.makeTransTickLabelFn = function(ax) {\n var uv = getTickLabelUV(ax);\n var shift = ax.ticklabelshift || 0;\n var standoff = ax.ticklabelstandoff || 0;\n var u = uv[0];\n var v = uv[1];\n var isReversed = ax.range[0] > ax.range[1];\n var labelsInside = ax.ticklabelposition && ax.ticklabelposition.indexOf(\"inside\") !== -1;\n var labelsOutside = !labelsInside;\n if (shift) {\n var shiftSign = isReversed ? -1 : 1;\n shift = shift * shiftSign;\n }\n if (standoff) {\n var side = ax.side;\n var standoffSign = labelsInside && (side === \"top\" || side === \"left\") || labelsOutside && (side === \"bottom\" || side === \"right\") ? 1 : -1;\n standoff = standoff * standoffSign;\n }\n return ax._id.charAt(0) === \"x\" ? function(d) {\n return strTranslate(\n u + ax._offset + ax.l2p(getPosX(d)) + shift,\n v + standoff\n );\n } : function(d) {\n return strTranslate(\n v + standoff,\n u + ax._offset + ax.l2p(getPosX(d)) + shift\n );\n };\n };\n function getPosX(d) {\n return d.periodX !== void 0 ? d.periodX : d.x;\n }\n function getTickLabelUV(ax) {\n var ticklabelposition = ax.ticklabelposition || \"\";\n var has = function(str) {\n return ticklabelposition.indexOf(str) !== -1;\n };\n var isTop = has(\"top\");\n var isLeft = has(\"left\");\n var isRight = has(\"right\");\n var isBottom = has(\"bottom\");\n var isInside = has(\"inside\");\n var isAligned = isBottom || isLeft || isTop || isRight;\n if (!isAligned && !isInside) return [0, 0];\n var side = ax.side;\n var u = isAligned ? (ax.tickwidth || 0) / 2 : 0;\n var v = TEXTPAD;\n var fontSize = ax.tickfont ? ax.tickfont.size : 12;\n if (isBottom || isTop) {\n u += fontSize * CAP_SHIFT;\n v += (ax.linewidth || 0) / 2;\n }\n if (isLeft || isRight) {\n u += (ax.linewidth || 0) / 2;\n v += TEXTPAD;\n }\n if (isInside && side === \"top\") {\n v -= fontSize * (1 - CAP_SHIFT);\n }\n if (isLeft || isTop) u = -u;\n if (side === \"bottom\" || side === \"right\") v = -v;\n return [\n isAligned ? u : 0,\n isInside ? v : 0\n ];\n }\n axes.makeTickPath = function(ax, shift, sgn, opts) {\n if (!opts) opts = {};\n var minor = opts.minor;\n if (minor && !ax.minor) return \"\";\n var len = opts.len !== void 0 ? opts.len : minor ? ax.minor.ticklen : ax.ticklen;\n var axLetter = ax._id.charAt(0);\n var pad = (ax.linewidth || 1) / 2;\n return axLetter === \"x\" ? \"M0,\" + (shift + pad * sgn) + \"v\" + len * sgn : \"M\" + (shift + pad * sgn) + \",0h\" + len * sgn;\n };\n axes.makeLabelFns = function(ax, shift, angle) {\n var ticklabelposition = ax.ticklabelposition || \"\";\n var has = function(str) {\n return ticklabelposition.indexOf(str) !== -1;\n };\n var isTop = has(\"top\");\n var isLeft = has(\"left\");\n var isRight = has(\"right\");\n var isBottom = has(\"bottom\");\n var isAligned = isBottom || isLeft || isTop || isRight;\n var insideTickLabels = has(\"inside\");\n var labelsOverTicks = ticklabelposition === \"inside\" && ax.ticks === \"inside\" || !insideTickLabels && ax.ticks === \"outside\" && ax.tickson !== \"boundaries\";\n var labelStandoff = 0;\n var labelShift = 0;\n var tickLen = labelsOverTicks ? ax.ticklen : 0;\n if (insideTickLabels) {\n tickLen *= -1;\n } else if (isAligned) {\n tickLen = 0;\n }\n if (labelsOverTicks) {\n labelStandoff += tickLen;\n if (angle) {\n var rad = Lib.deg2rad(angle);\n labelStandoff = tickLen * Math.cos(rad) + 1;\n labelShift = tickLen * Math.sin(rad);\n }\n }\n if (ax.showticklabels && (labelsOverTicks || ax.showline)) {\n labelStandoff += 0.2 * ax.tickfont.size;\n }\n labelStandoff += (ax.linewidth || 1) / 2 * (insideTickLabels ? -1 : 1);\n var out = {\n labelStandoff,\n labelShift\n };\n var x0, y0, ff, flipIt;\n var xQ = 0;\n var side = ax.side;\n var axLetter = ax._id.charAt(0);\n var tickangle = ax.tickangle;\n var endSide;\n if (axLetter === \"x\") {\n endSide = !insideTickLabels && side === \"bottom\" || insideTickLabels && side === \"top\";\n flipIt = endSide ? 1 : -1;\n if (insideTickLabels) flipIt *= -1;\n x0 = labelShift * flipIt;\n y0 = shift + labelStandoff * flipIt;\n ff = endSide ? 1 : -0.2;\n if (Math.abs(tickangle) === 90) {\n if (insideTickLabels) {\n ff += MID_SHIFT;\n } else {\n if (tickangle === -90 && side === \"bottom\") {\n ff = CAP_SHIFT;\n } else if (tickangle === 90 && side === \"top\") {\n ff = MID_SHIFT;\n } else {\n ff = 0.5;\n }\n }\n xQ = MID_SHIFT / 2 * (tickangle / 90);\n }\n out.xFn = function(d) {\n return d.dx + x0 + xQ * d.fontSize;\n };\n out.yFn = function(d) {\n return d.dy + y0 + d.fontSize * ff;\n };\n out.anchorFn = function(d, a) {\n if (isAligned) {\n if (isLeft) return \"end\";\n if (isRight) return \"start\";\n }\n if (!isNumeric(a) || a === 0 || a === 180) {\n return \"middle\";\n }\n return a * flipIt < 0 !== insideTickLabels ? \"end\" : \"start\";\n };\n out.heightFn = function(d, a, h) {\n return a < -60 || a > 60 ? -0.5 * h : ax.side === \"top\" !== insideTickLabels ? -h : 0;\n };\n } else if (axLetter === \"y\") {\n endSide = !insideTickLabels && side === \"left\" || insideTickLabels && side === \"right\";\n flipIt = endSide ? 1 : -1;\n if (insideTickLabels) flipIt *= -1;\n x0 = labelStandoff;\n y0 = labelShift * flipIt;\n ff = 0;\n if (!insideTickLabels && Math.abs(tickangle) === 90) {\n if (tickangle === -90 && side === \"left\" || tickangle === 90 && side === \"right\") {\n ff = CAP_SHIFT;\n } else {\n ff = 0.5;\n }\n }\n if (insideTickLabels) {\n var ang = isNumeric(tickangle) ? +tickangle : 0;\n if (ang !== 0) {\n var rA = Lib.deg2rad(ang);\n xQ = Math.abs(Math.sin(rA)) * CAP_SHIFT * flipIt;\n ff = 0;\n }\n }\n out.xFn = function(d) {\n return d.dx + shift - (x0 + d.fontSize * ff) * flipIt + xQ * d.fontSize;\n };\n out.yFn = function(d) {\n return d.dy + y0 + d.fontSize * MID_SHIFT;\n };\n out.anchorFn = function(d, a) {\n if (isNumeric(a) && Math.abs(a) === 90) {\n return \"middle\";\n }\n return endSide ? \"end\" : \"start\";\n };\n out.heightFn = function(d, a, h) {\n if (ax.side === \"right\") a *= -1;\n return a < -30 ? -h : a < 30 ? -0.5 * h : 0;\n };\n }\n return out;\n };\n function tickDataFn(d) {\n return [d.text, d.x, d.axInfo, d.font, d.fontSize, d.fontColor].join(\"_\");\n }\n axes.drawTicks = function(gd, ax, opts) {\n opts = opts || {};\n var cls = ax._id + \"tick\";\n var vals = [].concat(\n ax.minor && ax.minor.ticks ? (\n // minor vals\n opts.vals.filter(function(d) {\n return d.minor && !d.noTick;\n })\n ) : []\n ).concat(\n ax.ticks ? (\n // major vals\n opts.vals.filter(function(d) {\n return !d.minor && !d.noTick;\n })\n ) : []\n );\n var ticks = opts.layer.selectAll(\"path.\" + cls).data(vals, tickDataFn);\n ticks.exit().remove();\n ticks.enter().append(\"path\").classed(cls, 1).classed(\"ticks\", 1).classed(\"crisp\", opts.crisp !== false).each(function(d) {\n return Color2.stroke(d3.select(this), d.minor ? ax.minor.tickcolor : ax.tickcolor);\n }).style(\"stroke-width\", function(d) {\n return Drawing.crispRound(\n gd,\n d.minor ? ax.minor.tickwidth : ax.tickwidth,\n 1\n ) + \"px\";\n }).attr(\"d\", opts.path).style(\"display\", null);\n hideCounterAxisInsideTickLabels(ax, [TICK_PATH]);\n ticks.attr(\"transform\", opts.transFn);\n };\n axes.drawGrid = function(gd, ax, opts) {\n opts = opts || {};\n if (ax.tickmode === \"sync\") {\n return;\n }\n var cls = ax._id + \"grid\";\n var hasMinor = ax.minor && ax.minor.showgrid;\n var minorVals = hasMinor ? opts.vals.filter(function(d) {\n return d.minor;\n }) : [];\n var majorVals = ax.showgrid ? opts.vals.filter(function(d) {\n return !d.minor;\n }) : [];\n var counterAx = opts.counterAxis;\n if (counterAx && axes.shouldShowZeroLine(gd, ax, counterAx)) {\n var isArrayMode = ax.tickmode === \"array\";\n for (var i = 0; i < majorVals.length; i++) {\n var xi = majorVals[i].x;\n if (isArrayMode ? !xi : Math.abs(xi) < ax.dtick / 100) {\n majorVals = majorVals.slice(0, i).concat(majorVals.slice(i + 1));\n if (isArrayMode) i--;\n else break;\n }\n }\n }\n ax._gw = Drawing.crispRound(gd, ax.gridwidth, 1);\n var wMinor = !hasMinor ? 0 : Drawing.crispRound(gd, ax.minor.gridwidth, 1);\n var majorLayer = opts.layer;\n var minorLayer = opts.minorLayer;\n for (var major = 1; major >= 0; major--) {\n var layer = major ? majorLayer : minorLayer;\n if (!layer) continue;\n var grid = layer.selectAll(\"path.\" + cls).data(major ? majorVals : minorVals, tickDataFn);\n grid.exit().remove();\n grid.enter().append(\"path\").classed(cls, 1).classed(\"crisp\", opts.crisp !== false);\n grid.attr(\"transform\", opts.transFn).attr(\"d\", opts.path).each(function(d) {\n return Color2.stroke(\n d3.select(this),\n d.minor ? ax.minor.gridcolor : ax.gridcolor || \"#ddd\"\n );\n }).style(\"stroke-dasharray\", function(d) {\n return Drawing.dashStyle(\n d.minor ? ax.minor.griddash : ax.griddash,\n d.minor ? ax.minor.gridwidth : ax.gridwidth\n );\n }).style(\"stroke-width\", function(d) {\n return (d.minor ? wMinor : ax._gw) + \"px\";\n }).style(\"display\", null);\n if (typeof opts.path === \"function\") grid.attr(\"d\", opts.path);\n }\n hideCounterAxisInsideTickLabels(ax, [GRID_PATH, MINORGRID_PATH]);\n };\n axes.drawZeroLine = function(gd, ax, opts) {\n opts = opts || opts;\n var cls = ax._id + \"zl\";\n var show = axes.shouldShowZeroLine(gd, ax, opts.counterAxis);\n var zl = opts.layer.selectAll(\"path.\" + cls).data(show ? [{ x: 0, id: ax._id }] : []);\n zl.exit().remove();\n zl.enter().append(\"path\").classed(cls, 1).classed(\"zl\", 1).classed(\"crisp\", opts.crisp !== false).each(function() {\n opts.layer.selectAll(\"path\").sort(function(da, db) {\n return idSort(da.id, db.id);\n });\n });\n zl.attr(\"transform\", opts.transFn).attr(\"d\", opts.path).call(Color2.stroke, ax.zerolinecolor || Color2.defaultLine).style(\"stroke-width\", Drawing.crispRound(gd, ax.zerolinewidth, ax._gw || 1) + \"px\").style(\"display\", null);\n hideCounterAxisInsideTickLabels(ax, [ZERO_PATH]);\n };\n axes.drawLabels = function(gd, ax, opts) {\n opts = opts || {};\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var cls = opts.cls || axId + \"tick\";\n var vals = opts.vals.filter(function(d) {\n return d.text;\n });\n var labelFns = opts.labelFns;\n var tickAngle = opts.secondary ? 0 : ax.tickangle;\n var prevAngle = (ax._prevTickAngles || {})[cls];\n var tickLabels = opts.layer.selectAll(\"g.\" + cls).data(ax.showticklabels ? vals : [], tickDataFn);\n var labelsReady = [];\n tickLabels.enter().append(\"g\").classed(cls, 1).append(\"text\").attr(\"text-anchor\", \"middle\").each(function(d) {\n var thisLabel = d3.select(this);\n var newPromise = gd._promises.length;\n thisLabel.call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d)).call(Drawing.font, {\n family: d.font,\n size: d.fontSize,\n color: d.fontColor,\n weight: d.fontWeight,\n style: d.fontStyle,\n variant: d.fontVariant,\n textcase: d.fontTextcase,\n lineposition: d.fontLineposition,\n shadow: d.fontShadow\n }).text(d.text).call(svgTextUtils.convertToTspans, gd);\n if (gd._promises[newPromise]) {\n labelsReady.push(gd._promises.pop().then(function() {\n positionLabels(thisLabel, tickAngle);\n }));\n } else {\n positionLabels(thisLabel, tickAngle);\n }\n });\n hideCounterAxisInsideTickLabels(ax, [TICK_TEXT]);\n tickLabels.exit().remove();\n if (opts.repositionOnUpdate) {\n tickLabels.each(function(d) {\n d3.select(this).select(\"text\").call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d));\n });\n }\n function positionLabels(s, angle) {\n s.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select(\".text-math-group\");\n var anchor = labelFns.anchorFn(d, angle);\n var transform = opts.transFn.call(thisLabel.node(), d) + (isNumeric(angle) && +angle !== 0 ? \" rotate(\" + angle + \",\" + labelFns.xFn(d) + \",\" + (labelFns.yFn(d) - d.fontSize / 2) + \")\" : \"\");\n var nLines = svgTextUtils.lineCount(thisLabel);\n var lineHeight = LINE_SPACING * d.fontSize;\n var anchorHeight = labelFns.heightFn(d, isNumeric(angle) ? +angle : 0, (nLines - 1) * lineHeight);\n if (anchorHeight) {\n transform += strTranslate(0, anchorHeight);\n }\n if (mathjaxGroup.empty()) {\n var thisText = thisLabel.select(\"text\");\n thisText.attr({\n transform,\n \"text-anchor\": anchor\n });\n thisText.style(\"opacity\", 1);\n if (ax._adjustTickLabelsOverflow) {\n ax._adjustTickLabelsOverflow();\n }\n } else {\n var mjWidth = Drawing.bBox(mathjaxGroup.node()).width;\n var mjShift = mjWidth * { end: -0.5, start: 0.5 }[anchor];\n mathjaxGroup.attr(\"transform\", transform + strTranslate(mjShift, 0));\n }\n });\n }\n ax._adjustTickLabelsOverflow = function() {\n var ticklabeloverflow = ax.ticklabeloverflow;\n if (!ticklabeloverflow || ticklabeloverflow === \"allow\") return;\n var hideOverflow = ticklabeloverflow.indexOf(\"hide\") !== -1;\n var isX = ax._id.charAt(0) === \"x\";\n var p02 = 0;\n var p12 = isX ? gd._fullLayout.width : gd._fullLayout.height;\n if (ticklabeloverflow.indexOf(\"domain\") !== -1) {\n var rl = Lib.simpleMap(ax.range, ax.r2l);\n p02 = ax.l2p(rl[0]) + ax._offset;\n p12 = ax.l2p(rl[1]) + ax._offset;\n }\n var min = Math.min(p02, p12);\n var max = Math.max(p02, p12);\n var side = ax.side;\n var visibleLabelMin = Infinity;\n var visibleLabelMax = -Infinity;\n tickLabels.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select(\".text-math-group\");\n if (mathjaxGroup.empty()) {\n var bb = Drawing.bBox(thisLabel.node());\n var adjust = 0;\n if (isX) {\n if (bb.right > max) adjust = 1;\n else if (bb.left < min) adjust = 1;\n } else {\n if (bb.bottom > max) adjust = 1;\n else if (bb.top + (ax.tickangle ? 0 : d.fontSize / 4) < min) adjust = 1;\n }\n var t = thisLabel.select(\"text\");\n if (adjust) {\n if (hideOverflow) t.style(\"opacity\", 0);\n } else {\n t.style(\"opacity\", 1);\n if (side === \"bottom\" || side === \"right\") {\n visibleLabelMin = Math.min(visibleLabelMin, isX ? bb.top : bb.left);\n } else {\n visibleLabelMin = -Infinity;\n }\n if (side === \"top\" || side === \"left\") {\n visibleLabelMax = Math.max(visibleLabelMax, isX ? bb.bottom : bb.right);\n } else {\n visibleLabelMax = Infinity;\n }\n }\n }\n });\n for (var subplot in fullLayout._plots) {\n var plotinfo = fullLayout._plots[subplot];\n if (ax._id !== plotinfo.xaxis._id && ax._id !== plotinfo.yaxis._id) continue;\n var anchorAx2 = isX ? plotinfo.yaxis : plotinfo.xaxis;\n if (anchorAx2) {\n anchorAx2[\"_visibleLabelMin_\" + ax._id] = visibleLabelMin;\n anchorAx2[\"_visibleLabelMax_\" + ax._id] = visibleLabelMax;\n }\n }\n };\n ax._hideCounterAxisInsideTickLabels = function(partialOpts) {\n var isX = ax._id.charAt(0) === \"x\";\n var anchoredAxes = [];\n for (var subplot in fullLayout._plots) {\n var plotinfo = fullLayout._plots[subplot];\n if (ax._id !== plotinfo.xaxis._id && ax._id !== plotinfo.yaxis._id) continue;\n anchoredAxes.push(isX ? plotinfo.yaxis : plotinfo.xaxis);\n }\n anchoredAxes.forEach(function(anchorAx2, idx) {\n if (anchorAx2 && insideTicklabelposition(anchorAx2)) {\n (partialOpts || [\n ZERO_PATH,\n MINORGRID_PATH,\n GRID_PATH,\n TICK_PATH,\n TICK_TEXT\n ]).forEach(function(e) {\n var isPeriodLabel = e.K === \"tick\" && e.L === \"text\" && ax.ticklabelmode === \"period\";\n var mainPlotinfo = fullLayout._plots[ax._mainSubplot];\n var sel;\n if (e.K === ZERO_PATH.K) sel = mainPlotinfo.zerolinelayer.selectAll(\".\" + ax._id + \"zl\");\n else if (e.K === MINORGRID_PATH.K) sel = mainPlotinfo.minorGridlayer.selectAll(\".\" + ax._id);\n else if (e.K === GRID_PATH.K) sel = mainPlotinfo.gridlayer.selectAll(\".\" + ax._id);\n else sel = mainPlotinfo[ax._id.charAt(0) + \"axislayer\"];\n sel.each(function() {\n var w = d3.select(this);\n if (e.L) w = w.selectAll(e.L);\n w.each(function(d) {\n var q = ax.l2p(\n isPeriodLabel ? getPosX(d) : d.x\n ) + ax._offset;\n var t = d3.select(this);\n if (q < ax[\"_visibleLabelMax_\" + anchorAx2._id] && q > ax[\"_visibleLabelMin_\" + anchorAx2._id]) {\n t.style(\"display\", \"none\");\n } else if (e.K === \"tick\" && !idx) {\n t.style(\"display\", null);\n }\n });\n });\n });\n }\n });\n };\n positionLabels(tickLabels, prevAngle + 1 ? prevAngle : tickAngle);\n function allLabelsReady() {\n return labelsReady.length && Promise.all(labelsReady);\n }\n var autoangle = null;\n function fixLabelOverlaps() {\n positionLabels(tickLabels, tickAngle);\n if (vals.length && ax.autotickangles && (ax.type !== \"log\" || String(ax.dtick).charAt(0) !== \"D\")) {\n autoangle = ax.autotickangles[0];\n var maxFontSize = 0;\n var lbbArray = [];\n var i;\n var maxLines = 1;\n tickLabels.each(function(d) {\n maxFontSize = Math.max(maxFontSize, d.fontSize);\n var x = ax.l2p(d.x);\n var thisLabel = selectTickLabel(this);\n var bb = Drawing.bBox(thisLabel.node());\n maxLines = Math.max(maxLines, svgTextUtils.lineCount(thisLabel));\n lbbArray.push({\n // ignore about y, just deal with x overlaps\n top: 0,\n bottom: 10,\n height: 10,\n left: x - bb.width / 2,\n // impose a 2px gap\n right: x + bb.width / 2 + 2,\n width: bb.width + 2\n });\n });\n var preventOverlapWithTick = (ax.tickson === \"boundaries\" || ax.showdividers) && !opts.secondary;\n var vLen = vals.length;\n var tickSpacing = Math.abs((vals[vLen - 1].x - vals[0].x) * ax._m) / (vLen - 1);\n var adjacent = preventOverlapWithTick ? tickSpacing / 2 : tickSpacing;\n var opposite = preventOverlapWithTick ? ax.ticklen : maxFontSize * 1.25 * maxLines;\n var hypotenuse = Math.sqrt(Math.pow(adjacent, 2) + Math.pow(opposite, 2));\n var maxCos = adjacent / hypotenuse;\n var autoTickAnglesRadians = ax.autotickangles.map(\n function(degrees3) {\n return degrees3 * Math.PI / 180;\n }\n );\n var angleRadians = autoTickAnglesRadians.find(\n function(angle) {\n return Math.abs(Math.cos(angle)) <= maxCos;\n }\n );\n if (angleRadians === void 0) {\n angleRadians = autoTickAnglesRadians.reduce(\n function(currentMax, nextAngle) {\n return Math.abs(Math.cos(currentMax)) < Math.abs(Math.cos(nextAngle)) ? currentMax : nextAngle;\n },\n autoTickAnglesRadians[0]\n );\n }\n var newAngle = angleRadians * (180 / Math.PI);\n if (preventOverlapWithTick) {\n var gap = 2;\n if (ax.ticks) gap += ax.tickwidth / 2;\n for (i = 0; i < lbbArray.length; i++) {\n var xbnd = vals[i].xbnd;\n var lbb = lbbArray[i];\n if (xbnd[0] !== null && lbb.left - ax.l2p(xbnd[0]) < gap || xbnd[1] !== null && ax.l2p(xbnd[1]) - lbb.right < gap) {\n autoangle = newAngle;\n break;\n }\n }\n } else {\n var ticklabelposition = ax.ticklabelposition || \"\";\n var has = function(str) {\n return ticklabelposition.indexOf(str) !== -1;\n };\n var isTop = has(\"top\");\n var isLeft = has(\"left\");\n var isRight = has(\"right\");\n var isBottom = has(\"bottom\");\n var isAligned = isBottom || isLeft || isTop || isRight;\n var pad = !isAligned ? 0 : (ax.tickwidth || 0) + 2 * TEXTPAD;\n for (i = 0; i < lbbArray.length - 1; i++) {\n if (Lib.bBoxIntersect(lbbArray[i], lbbArray[i + 1], pad)) {\n autoangle = newAngle;\n break;\n }\n }\n }\n if (autoangle) {\n positionLabels(tickLabels, autoangle);\n }\n }\n }\n if (ax._selections) {\n ax._selections[cls] = tickLabels;\n }\n var seq = [allLabelsReady];\n if (ax.automargin && fullLayout._redrawFromAutoMarginCount && prevAngle === 90) {\n autoangle = prevAngle;\n seq.push(function() {\n positionLabels(tickLabels, prevAngle);\n });\n } else {\n seq.push(fixLabelOverlaps);\n }\n if (ax._tickAngles) {\n seq.push(function() {\n ax._tickAngles[cls] = autoangle === null ? isNumeric(tickAngle) ? tickAngle : 0 : autoangle;\n });\n }\n var computeTickLabelBoundingBoxes = function() {\n var labelsMaxW = 0;\n var labelsMaxH = 0;\n tickLabels.each(function(d, i) {\n var thisLabel = selectTickLabel(this);\n var mathjaxGroup = thisLabel.select(\".text-math-group\");\n if (mathjaxGroup.empty()) {\n var bb;\n if (ax._vals[i]) {\n bb = ax._vals[i].bb || Drawing.bBox(thisLabel.node());\n ax._vals[i].bb = bb;\n }\n labelsMaxW = Math.max(labelsMaxW, bb.width);\n labelsMaxH = Math.max(labelsMaxH, bb.height);\n }\n });\n return {\n labelsMaxW,\n labelsMaxH\n };\n };\n var anchorAx = ax._anchorAxis;\n if (anchorAx && (anchorAx.autorange || anchorAx.insiderange) && insideTicklabelposition(ax) && !isLinked(fullLayout, ax._id)) {\n if (!fullLayout._insideTickLabelsUpdaterange) {\n fullLayout._insideTickLabelsUpdaterange = {};\n }\n if (anchorAx.autorange) {\n fullLayout._insideTickLabelsUpdaterange[anchorAx._name + \".autorange\"] = anchorAx.autorange;\n seq.push(computeTickLabelBoundingBoxes);\n }\n if (anchorAx.insiderange) {\n var BBs = computeTickLabelBoundingBoxes();\n var move = ax._id.charAt(0) === \"y\" ? BBs.labelsMaxW : BBs.labelsMaxH;\n move += 2 * TEXTPAD;\n if (ax.ticklabelposition === \"inside\") {\n move += ax.ticklen || 0;\n }\n var sgn = ax.side === \"right\" || ax.side === \"top\" ? 1 : -1;\n var index = sgn === 1 ? 1 : 0;\n var otherIndex = sgn === 1 ? 0 : 1;\n var newRange = [];\n newRange[otherIndex] = anchorAx.range[otherIndex];\n var anchorAxRange = anchorAx.range;\n var p0 = anchorAx.r2p(anchorAxRange[index]);\n var p1 = anchorAx.r2p(anchorAxRange[otherIndex]);\n var _tempNewRange = fullLayout._insideTickLabelsUpdaterange[anchorAx._name + \".range\"];\n if (_tempNewRange) {\n var q0 = anchorAx.r2p(_tempNewRange[index]);\n var q1 = anchorAx.r2p(_tempNewRange[otherIndex]);\n var dir = sgn * (ax._id.charAt(0) === \"y\" ? 1 : -1);\n if (dir * p0 < dir * q0) {\n p0 = q0;\n newRange[index] = anchorAxRange[index] = _tempNewRange[index];\n }\n if (dir * p1 > dir * q1) {\n p1 = q1;\n newRange[otherIndex] = anchorAxRange[otherIndex] = _tempNewRange[otherIndex];\n }\n }\n var dist = Math.abs(p1 - p0);\n if (dist - move > 0) {\n dist -= move;\n move *= 1 + move / dist;\n } else {\n move = 0;\n }\n if (ax._id.charAt(0) !== \"y\") move = -move;\n newRange[index] = anchorAx.p2r(\n anchorAx.r2p(anchorAxRange[index]) + sgn * move\n );\n if (anchorAx.autorange === \"min\" || anchorAx.autorange === \"max reversed\") {\n newRange[0] = null;\n anchorAx._rangeInitial0 = void 0;\n anchorAx._rangeInitial1 = void 0;\n } else if (anchorAx.autorange === \"max\" || anchorAx.autorange === \"min reversed\") {\n newRange[1] = null;\n anchorAx._rangeInitial0 = void 0;\n anchorAx._rangeInitial1 = void 0;\n }\n fullLayout._insideTickLabelsUpdaterange[anchorAx._name + \".range\"] = newRange;\n }\n }\n var done = Lib.syncOrAsync(seq);\n if (done && done.then) gd._promises.push(done);\n return done;\n };\n function drawDividers(gd, ax, opts) {\n var cls = ax._id + \"divider\";\n var vals = opts.vals;\n var dividers = opts.layer.selectAll(\"path.\" + cls).data(vals, tickDataFn);\n dividers.exit().remove();\n dividers.enter().insert(\"path\", \":first-child\").classed(cls, 1).classed(\"crisp\", 1).call(Color2.stroke, ax.dividercolor).style(\"stroke-width\", Drawing.crispRound(gd, ax.dividerwidth, 1) + \"px\");\n dividers.attr(\"transform\", opts.transFn).attr(\"d\", opts.path);\n }\n axes.getPxPosition = function(gd, ax) {\n var gs = gd._fullLayout._size;\n var axLetter = ax._id.charAt(0);\n var side = ax.side;\n var anchorAxis;\n if (ax.anchor !== \"free\") {\n anchorAxis = ax._anchorAxis;\n } else if (axLetter === \"x\") {\n anchorAxis = {\n _offset: gs.t + (1 - (ax.position || 0)) * gs.h,\n _length: 0\n };\n } else if (axLetter === \"y\") {\n anchorAxis = {\n _offset: gs.l + (ax.position || 0) * gs.w + ax._shift,\n _length: 0\n };\n }\n if (side === \"top\" || side === \"left\") {\n return anchorAxis._offset;\n } else if (side === \"bottom\" || side === \"right\") {\n return anchorAxis._offset + anchorAxis._length;\n }\n };\n function approxTitleDepth(ax) {\n var fontSize = ax.title.font.size;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if (ax.title.hasOwnProperty(\"standoff\")) {\n return fontSize * (CAP_SHIFT + extraLines * LINE_SPACING);\n } else {\n return extraLines ? fontSize * (extraLines + 1) * LINE_SPACING : fontSize;\n }\n }\n function drawTitle(gd, ax) {\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var fontSize = ax.title.font.size;\n var titleStandoff;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if (ax.title.hasOwnProperty(\"standoff\")) {\n if (ax.side === \"bottom\" || ax.side === \"right\") {\n titleStandoff = ax._depth + ax.title.standoff + fontSize * CAP_SHIFT;\n } else if (ax.side === \"top\" || ax.side === \"left\") {\n titleStandoff = ax._depth + ax.title.standoff + fontSize * (MID_SHIFT + extraLines * LINE_SPACING);\n }\n } else {\n var isInside = insideTicklabelposition(ax);\n if (ax.type === \"multicategory\") {\n titleStandoff = ax._depth;\n } else {\n var offsetBase = 1.5 * fontSize;\n if (isInside) {\n offsetBase = 0.5 * fontSize;\n if (ax.ticks === \"outside\") {\n offsetBase += ax.ticklen;\n }\n }\n titleStandoff = 10 + offsetBase + (ax.linewidth ? ax.linewidth - 1 : 0);\n }\n if (!isInside) {\n if (axLetter === \"x\") {\n titleStandoff += ax.side === \"top\" ? fontSize * (ax.showticklabels ? 1 : 0) : fontSize * (ax.showticklabels ? 1.5 : 0.5);\n } else {\n titleStandoff += ax.side === \"right\" ? fontSize * (ax.showticklabels ? 1 : 0.5) : fontSize * (ax.showticklabels ? 0.5 : 0);\n }\n }\n }\n var pos = axes.getPxPosition(gd, ax);\n var transform, x, y;\n if (axLetter === \"x\") {\n x = ax._offset + ax._length / 2;\n y = ax.side === \"top\" ? pos - titleStandoff : pos + titleStandoff;\n } else {\n y = ax._offset + ax._length / 2;\n x = ax.side === \"right\" ? pos + titleStandoff : pos - titleStandoff;\n transform = { rotate: \"-90\", offset: 0 };\n }\n var avoid;\n if (ax.type !== \"multicategory\") {\n var tickLabels = ax._selections[ax._id + \"tick\"];\n avoid = {\n selection: tickLabels,\n side: ax.side\n };\n if (tickLabels && tickLabels.node() && tickLabels.node().parentNode) {\n var translation = Drawing.getTranslate(tickLabels.node().parentNode);\n avoid.offsetLeft = translation.x;\n avoid.offsetTop = translation.y;\n }\n if (ax.title.hasOwnProperty(\"standoff\")) {\n avoid.pad = 0;\n }\n }\n ax._titleStandoff = titleStandoff;\n return Titles.draw(gd, axId + \"title\", {\n propContainer: ax,\n propName: ax._name + \".title.text\",\n placeholder: fullLayout._dfltTitle[axLetter],\n avoid,\n transform,\n attributes: { x, y, \"text-anchor\": \"middle\" }\n });\n }\n axes.shouldShowZeroLine = function(gd, ax, counterAxis) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n return rng[0] * rng[1] <= 0 && ax.zeroline && (ax.type === \"linear\" || ax.type === \"-\") && !(ax.rangebreaks && ax.maskBreaks(0) === BADNUM) && (clipEnds(ax, 0) || !anyCounterAxLineAtZero(gd, ax, counterAxis, rng) || hasBarsOrFill(gd, ax));\n };\n axes.clipEnds = function(ax, vals) {\n return vals.filter(function(d) {\n return clipEnds(ax, d.x);\n });\n };\n function clipEnds(ax, l) {\n var p = ax.l2p(l);\n return p > 1 && p < ax._length - 1;\n }\n function anyCounterAxLineAtZero(gd, ax, counterAxis, rng) {\n var mainCounterAxis = counterAxis._mainAxis;\n if (!mainCounterAxis) return;\n var fullLayout = gd._fullLayout;\n var axLetter = ax._id.charAt(0);\n var counterLetter = axes.counterLetter(ax._id);\n var zeroPosition = ax._offset + (Math.abs(rng[0]) < Math.abs(rng[1]) === (axLetter === \"x\") ? 0 : ax._length);\n function lineNearZero(ax2) {\n if (!ax2.showline || !ax2.linewidth) return false;\n var tolerance = Math.max((ax2.linewidth + ax.zerolinewidth) / 2, 1);\n function closeEnough(pos2) {\n return typeof pos2 === \"number\" && Math.abs(pos2 - zeroPosition) < tolerance;\n }\n if (closeEnough(ax2._mainLinePosition) || closeEnough(ax2._mainMirrorPosition)) {\n return true;\n }\n var linePositions = ax2._linepositions || {};\n for (var k in linePositions) {\n if (closeEnough(linePositions[k][0]) || closeEnough(linePositions[k][1])) {\n return true;\n }\n }\n }\n var plotinfo = fullLayout._plots[counterAxis._mainSubplot];\n if (!(plotinfo.mainplotinfo || plotinfo).overlays.length) {\n return lineNearZero(counterAxis, zeroPosition);\n }\n var counterLetterAxes = axes.list(gd, counterLetter);\n for (var i = 0; i < counterLetterAxes.length; i++) {\n var counterAxis2 = counterLetterAxes[i];\n if (counterAxis2._mainAxis === mainCounterAxis && lineNearZero(counterAxis2, zeroPosition)) {\n return true;\n }\n }\n }\n function hasBarsOrFill(gd, ax) {\n var fullData = gd._fullData;\n var subplot = ax._mainSubplot;\n var axLetter = ax._id.charAt(0);\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.visible === true && trace.xaxis + trace.yaxis === subplot) {\n if (Registry.traceIs(trace, \"bar-like\") && trace.orientation === { x: \"h\", y: \"v\" }[axLetter]) return true;\n if (trace.fill && trace.fill.charAt(trace.fill.length - 1) === axLetter) return true;\n }\n }\n return false;\n }\n function selectTickLabel(gTick) {\n var s = d3.select(gTick);\n var mj = s.select(\".text-math-group\");\n return mj.empty() ? s.select(\"text\") : mj;\n }\n axes.allowAutoMargin = function(gd) {\n var axList = axes.list(gd, \"\", true);\n for (var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n if (ax.automargin) {\n Plots.allowAutoMargin(gd, axAutoMarginID(ax));\n if (ax.mirror) {\n Plots.allowAutoMargin(gd, axMirrorAutoMarginID(ax));\n }\n }\n if (Registry.getComponentMethod(\"rangeslider\", \"isVisible\")(ax)) {\n Plots.allowAutoMargin(gd, rangeSliderAutoMarginID(ax));\n }\n }\n };\n function axAutoMarginID(ax) {\n return ax._id + \".automargin\";\n }\n function axMirrorAutoMarginID(ax) {\n return axAutoMarginID(ax) + \".mirror\";\n }\n function rangeSliderAutoMarginID(ax) {\n return ax._id + \".rangeslider\";\n }\n axes.swap = function(gd, traces) {\n var axGroups = makeAxisGroups(gd, traces);\n for (var i = 0; i < axGroups.length; i++) {\n swapAxisGroup(gd, axGroups[i].x, axGroups[i].y);\n }\n };\n function makeAxisGroups(gd, traces) {\n var groups = [];\n var i, j;\n for (i = 0; i < traces.length; i++) {\n var groupsi = [];\n var xi = gd._fullData[traces[i]].xaxis;\n var yi = gd._fullData[traces[i]].yaxis;\n if (!xi || !yi) continue;\n for (j = 0; j < groups.length; j++) {\n if (groups[j].x.indexOf(xi) !== -1 || groups[j].y.indexOf(yi) !== -1) {\n groupsi.push(j);\n }\n }\n if (!groupsi.length) {\n groups.push({ x: [xi], y: [yi] });\n continue;\n }\n var group0 = groups[groupsi[0]];\n var groupj;\n if (groupsi.length > 1) {\n for (j = 1; j < groupsi.length; j++) {\n groupj = groups[groupsi[j]];\n mergeAxisGroups(group0.x, groupj.x);\n mergeAxisGroups(group0.y, groupj.y);\n }\n }\n mergeAxisGroups(group0.x, [xi]);\n mergeAxisGroups(group0.y, [yi]);\n }\n return groups;\n }\n function mergeAxisGroups(intoSet, fromSet) {\n for (var i = 0; i < fromSet.length; i++) {\n if (intoSet.indexOf(fromSet[i]) === -1) intoSet.push(fromSet[i]);\n }\n }\n function swapAxisGroup(gd, xIds, yIds) {\n var xFullAxes = [];\n var yFullAxes = [];\n var layout = gd.layout;\n var i, j;\n for (i = 0; i < xIds.length; i++) xFullAxes.push(axes.getFromId(gd, xIds[i]));\n for (i = 0; i < yIds.length; i++) yFullAxes.push(axes.getFromId(gd, yIds[i]));\n var allAxKeys = Object.keys(axAttrs);\n var noSwapAttrs = [\n \"anchor\",\n \"domain\",\n \"overlaying\",\n \"position\",\n \"side\",\n \"tickangle\",\n \"editType\"\n ];\n var numericTypes = [\"linear\", \"log\"];\n for (i = 0; i < allAxKeys.length; i++) {\n var keyi = allAxKeys[i];\n var xVal = xFullAxes[0][keyi];\n var yVal = yFullAxes[0][keyi];\n var allEqual = true;\n var coerceLinearX = false;\n var coerceLinearY = false;\n if (keyi.charAt(0) === \"_\" || typeof xVal === \"function\" || noSwapAttrs.indexOf(keyi) !== -1) {\n continue;\n }\n for (j = 1; j < xFullAxes.length && allEqual; j++) {\n var xVali = xFullAxes[j][keyi];\n if (keyi === \"type\" && numericTypes.indexOf(xVal) !== -1 && numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) {\n coerceLinearX = true;\n } else if (xVali !== xVal) allEqual = false;\n }\n for (j = 1; j < yFullAxes.length && allEqual; j++) {\n var yVali = yFullAxes[j][keyi];\n if (keyi === \"type\" && numericTypes.indexOf(yVal) !== -1 && numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) {\n coerceLinearY = true;\n } else if (yFullAxes[j][keyi] !== yVal) allEqual = false;\n }\n if (allEqual) {\n if (coerceLinearX) layout[xFullAxes[0]._name].type = \"linear\";\n if (coerceLinearY) layout[yFullAxes[0]._name].type = \"linear\";\n swapAxisAttrs(layout, keyi, xFullAxes, yFullAxes, gd._fullLayout._dfltTitle);\n }\n }\n for (i = 0; i < gd._fullLayout.annotations.length; i++) {\n var ann = gd._fullLayout.annotations[i];\n if (xIds.indexOf(ann.xref) !== -1 && yIds.indexOf(ann.yref) !== -1) {\n Lib.swapAttrs(layout.annotations[i], [\"?\"]);\n }\n }\n }\n function swapAxisAttrs(layout, key, xFullAxes, yFullAxes, dfltTitle) {\n var np = Lib.nestedProperty;\n var xVal = np(layout[xFullAxes[0]._name], key).get();\n var yVal = np(layout[yFullAxes[0]._name], key).get();\n var i;\n if (key === \"title\") {\n if (xVal && xVal.text === dfltTitle.x) {\n xVal.text = dfltTitle.y;\n }\n if (yVal && yVal.text === dfltTitle.y) {\n yVal.text = dfltTitle.x;\n }\n }\n for (i = 0; i < xFullAxes.length; i++) {\n np(layout, xFullAxes[i]._name + \".\" + key).set(yVal);\n }\n for (i = 0; i < yFullAxes.length; i++) {\n np(layout, yFullAxes[i]._name + \".\" + key).set(xVal);\n }\n }\n function isAngular(ax) {\n return ax._id === \"angularaxis\";\n }\n function moveOutsideBreak(v, ax) {\n var len = ax._rangebreaks.length;\n for (var k = 0; k < len; k++) {\n var brk = ax._rangebreaks[k];\n if (v >= brk.min && v < brk.max) {\n return brk.max;\n }\n }\n return v;\n }\n function insideTicklabelposition(ax) {\n return (ax.ticklabelposition || \"\").indexOf(\"inside\") !== -1;\n }\n function hideCounterAxisInsideTickLabels(ax, opts) {\n if (insideTicklabelposition(ax._anchorAxis || {})) {\n if (ax._hideCounterAxisInsideTickLabels) {\n ax._hideCounterAxisInsideTickLabels(opts);\n }\n }\n }\n function incrementShift(ax, shiftVal, axShifts, normalize) {\n var overlay = ax.anchor !== \"free\" && (ax.overlaying === void 0 || ax.overlaying === false) ? ax._id : ax.overlaying;\n var shiftValAdj;\n if (normalize) {\n shiftValAdj = ax.side === \"right\" ? shiftVal : -shiftVal;\n } else {\n shiftValAdj = shiftVal;\n }\n if (!(overlay in axShifts)) {\n axShifts[overlay] = {};\n }\n if (!(ax.side in axShifts[overlay])) {\n axShifts[overlay][ax.side] = 0;\n }\n axShifts[overlay][ax.side] += shiftValAdj;\n }\n function setShiftVal(ax, axShifts) {\n return ax.autoshift ? axShifts[ax.overlaying][ax.side] : ax.shift || 0;\n }\n function periodCompatibleWithTickformat(period, tickformat) {\n return /%f/.test(tickformat) ? period >= ONEMICROSEC : /%L/.test(tickformat) ? period >= ONEMILLI : /%[SX]/.test(tickformat) ? period >= ONESEC : /%M/.test(tickformat) ? period >= ONEMIN : /%[HI]/.test(tickformat) ? period >= ONEHOUR : /%p/.test(tickformat) ? period >= HALFDAY : /%[Aadejuwx]/.test(tickformat) ? period >= ONEDAY : /%[UVW]/.test(tickformat) ? period >= ONEWEEK : /%[Bbm]/.test(tickformat) ? period >= ONEMINMONTH : /%[q]/.test(tickformat) ? period >= ONEMINQUARTER : /%[Yy]/.test(tickformat) ? period >= ONEMINYEAR : true;\n }\n }\n });\n\n // src/plots/cartesian/autorange_options_defaults.js\n var require_autorange_options_defaults = __commonJS({\n \"src/plots/cartesian/autorange_options_defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function handleAutorangeOptionsDefaults(coerce, autorange, range) {\n var minRange, maxRange;\n if (range) {\n var isReversed = autorange === \"reversed\" || autorange === \"min reversed\" || autorange === \"max reversed\";\n minRange = range[isReversed ? 1 : 0];\n maxRange = range[isReversed ? 0 : 1];\n }\n var minallowed = coerce(\"autorangeoptions.minallowed\", maxRange === null ? minRange : void 0);\n var maxallowed = coerce(\"autorangeoptions.maxallowed\", minRange === null ? maxRange : void 0);\n if (minallowed === void 0) coerce(\"autorangeoptions.clipmin\");\n if (maxallowed === void 0) coerce(\"autorangeoptions.clipmax\");\n coerce(\"autorangeoptions.include\");\n };\n }\n });\n\n // src/plots/cartesian/range_defaults.js\n var require_range_defaults = __commonJS({\n \"src/plots/cartesian/range_defaults.js\"(exports, module) {\n \"use strict\";\n var handleAutorangeOptionsDefaults = require_autorange_options_defaults();\n module.exports = function handleRangeDefaults(containerIn, containerOut, coerce, options) {\n var axTemplate = containerOut._template || {};\n var axType = containerOut.type || axTemplate.type || \"-\";\n coerce(\"minallowed\");\n coerce(\"maxallowed\");\n var range = coerce(\"range\");\n if (!range) {\n var insiderange;\n if (!options.noInsiderange && axType !== \"log\") {\n insiderange = coerce(\"insiderange\");\n if (insiderange && (insiderange[0] === null || insiderange[1] === null)) {\n containerOut.insiderange = false;\n insiderange = void 0;\n }\n if (insiderange) range = coerce(\"range\", insiderange);\n }\n }\n var autorangeDflt = containerOut.getAutorangeDflt(range, options);\n var autorange = coerce(\"autorange\", autorangeDflt);\n var shouldAutorange;\n if (range && (range[0] === null && range[1] === null || (range[0] === null || range[1] === null) && (autorange === \"reversed\" || autorange === true) || range[0] !== null && (autorange === \"min\" || autorange === \"max reversed\") || range[1] !== null && (autorange === \"max\" || autorange === \"min reversed\"))) {\n range = void 0;\n delete containerOut.range;\n containerOut.autorange = true;\n shouldAutorange = true;\n }\n if (!shouldAutorange) {\n autorangeDflt = containerOut.getAutorangeDflt(range, options);\n autorange = coerce(\"autorange\", autorangeDflt);\n }\n if (autorange) {\n handleAutorangeOptionsDefaults(coerce, autorange, range);\n if (axType === \"linear\" || axType === \"-\") coerce(\"rangemode\");\n }\n containerOut.cleanRange();\n };\n }\n });\n\n // node_modules/mouse-event-offset/index.js\n var require_mouse_event_offset = __commonJS({\n \"node_modules/mouse-event-offset/index.js\"(exports, module) {\n var rootPosition = { left: 0, top: 0 };\n module.exports = mouseEventOffset;\n function mouseEventOffset(ev, target, out) {\n target = target || ev.currentTarget || ev.srcElement;\n if (!Array.isArray(out)) {\n out = [0, 0];\n }\n var cx = ev.clientX || 0;\n var cy = ev.clientY || 0;\n var rect = getBoundingClientOffset(target);\n out[0] = cx - rect.left;\n out[1] = cy - rect.top;\n return out;\n }\n function getBoundingClientOffset(element) {\n if (element === window || element === document || element === document.body) {\n return rootPosition;\n } else {\n return element.getBoundingClientRect();\n }\n }\n }\n });\n\n // node_modules/has-passive-events/index.js\n var require_has_passive_events = __commonJS({\n \"node_modules/has-passive-events/index.js\"(exports, module) {\n \"use strict\";\n var isBrowser = require_client();\n function detect() {\n var supported = false;\n try {\n var opts = Object.defineProperty({}, \"passive\", {\n get: function() {\n supported = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n window.removeEventListener(\"test\", null, opts);\n } catch (e) {\n supported = false;\n }\n return supported;\n }\n module.exports = isBrowser && detect();\n }\n });\n\n // src/components/dragelement/align.js\n var require_align = __commonJS({\n \"src/components/dragelement/align.js\"(exports, module) {\n \"use strict\";\n module.exports = function align(v, dv, v0, v1, anchor) {\n var vmin = (v - v0) / (v1 - v0);\n var vmax = vmin + dv / (v1 - v0);\n var vc = (vmin + vmax) / 2;\n if (anchor === \"left\" || anchor === \"bottom\") return vmin;\n if (anchor === \"center\" || anchor === \"middle\") return vc;\n if (anchor === \"right\" || anchor === \"top\") return vmax;\n if (vmin < 2 / 3 - vc) return vmin;\n if (vmax > 4 / 3 - vc) return vmax;\n return vc;\n };\n }\n });\n\n // src/components/dragelement/cursor.js\n var require_cursor = __commonJS({\n \"src/components/dragelement/cursor.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var cursorset = [\n [\"sw-resize\", \"s-resize\", \"se-resize\"],\n [\"w-resize\", \"move\", \"e-resize\"],\n [\"nw-resize\", \"n-resize\", \"ne-resize\"]\n ];\n module.exports = function getCursor(x, y, xanchor, yanchor) {\n if (xanchor === \"left\") x = 0;\n else if (xanchor === \"center\") x = 1;\n else if (xanchor === \"right\") x = 2;\n else x = Lib.constrain(Math.floor(x * 3), 0, 2);\n if (yanchor === \"bottom\") y = 0;\n else if (yanchor === \"middle\") y = 1;\n else if (yanchor === \"top\") y = 2;\n else y = Lib.constrain(Math.floor(y * 3), 0, 2);\n return cursorset[y][x];\n };\n }\n });\n\n // src/components/dragelement/unhover.js\n var require_unhover = __commonJS({\n \"src/components/dragelement/unhover.js\"(exports, module) {\n \"use strict\";\n var Events = require_events2();\n var throttle = require_throttle();\n var getGraphDiv = require_dom().getGraphDiv;\n var hoverConstants = require_constants();\n var unhover = module.exports = {};\n unhover.wrapped = function(gd, evt, subplot) {\n gd = getGraphDiv(gd);\n if (gd._fullLayout) {\n throttle.clear(gd._fullLayout._uid + hoverConstants.HOVERID);\n }\n unhover.raw(gd, evt, subplot);\n };\n unhover.raw = function raw(gd, evt) {\n var fullLayout = gd._fullLayout;\n var oldhoverdata = gd._hoverdata;\n if (!evt) evt = {};\n if (evt.target && !gd._dragged && Events.triggerHandler(gd, \"plotly_beforehover\", evt) === false) {\n return;\n }\n fullLayout._hoverlayer.selectAll(\"g\").remove();\n fullLayout._hoverlayer.selectAll(\"line\").remove();\n fullLayout._hoverlayer.selectAll(\"circle\").remove();\n gd._hoverdata = void 0;\n if (evt.target && oldhoverdata) {\n gd.emit(\"plotly_unhover\", {\n event: evt,\n points: oldhoverdata\n });\n }\n };\n }\n });\n\n // src/components/dragelement/index.js\n var require_dragelement = __commonJS({\n \"src/components/dragelement/index.js\"(exports, module) {\n \"use strict\";\n var mouseOffset = require_mouse_event_offset();\n var hasHover = require_has_hover();\n var supportsPassive = require_has_passive_events();\n var removeElement = require_lib().removeElement;\n var constants = require_constants2();\n var dragElement = module.exports = {};\n dragElement.align = require_align();\n dragElement.getCursor = require_cursor();\n var unhover = require_unhover();\n dragElement.unhover = unhover.wrapped;\n dragElement.unhoverRaw = unhover.raw;\n dragElement.init = function init(options) {\n var gd = options.gd;\n var numClicks = 1;\n var doubleClickDelay = gd._context.doubleClickDelay;\n var element = options.element;\n var startX, startY, newMouseDownTime, cursor, dragCover, initialEvent, initialTarget, rightClick;\n if (!gd._mouseDownTime) gd._mouseDownTime = 0;\n element.style.pointerEvents = \"all\";\n element.onmousedown = onStart;\n if (!supportsPassive) {\n element.ontouchstart = onStart;\n } else {\n if (element._ontouchstart) {\n element.removeEventListener(\"touchstart\", element._ontouchstart);\n }\n element._ontouchstart = onStart;\n element.addEventListener(\"touchstart\", onStart, { passive: false });\n }\n function _clampFn(dx, dy, minDrag) {\n if (Math.abs(dx) < minDrag) dx = 0;\n if (Math.abs(dy) < minDrag) dy = 0;\n return [dx, dy];\n }\n var clampFn = options.clampFn || _clampFn;\n function onStart(e) {\n gd._dragged = false;\n gd._dragging = true;\n var offset = pointerOffset(e);\n startX = offset[0];\n startY = offset[1];\n initialTarget = e.target;\n initialEvent = e;\n rightClick = e.buttons === 2 || e.ctrlKey;\n if (typeof e.clientX === \"undefined\" && typeof e.clientY === \"undefined\") {\n e.clientX = startX;\n e.clientY = startY;\n }\n newMouseDownTime = (/* @__PURE__ */ new Date()).getTime();\n if (newMouseDownTime - gd._mouseDownTime < doubleClickDelay) {\n numClicks += 1;\n } else {\n numClicks = 1;\n gd._mouseDownTime = newMouseDownTime;\n }\n if (options.prepFn) options.prepFn(e, startX, startY);\n if (hasHover && !rightClick) {\n dragCover = coverSlip();\n dragCover.style.cursor = window.getComputedStyle(element).cursor;\n } else if (!hasHover) {\n dragCover = document;\n cursor = window.getComputedStyle(document.documentElement).cursor;\n document.documentElement.style.cursor = window.getComputedStyle(element).cursor;\n }\n document.addEventListener(\"mouseup\", onDone);\n document.addEventListener(\"touchend\", onDone);\n if (options.dragmode !== false) {\n e.preventDefault();\n document.addEventListener(\"mousemove\", onMove);\n document.addEventListener(\"touchmove\", onMove, { passive: false });\n }\n return;\n }\n function onMove(e) {\n e.preventDefault();\n var offset = pointerOffset(e);\n var minDrag = options.minDrag || constants.MINDRAG;\n var dxdy = clampFn(offset[0] - startX, offset[1] - startY, minDrag);\n var dx = dxdy[0];\n var dy = dxdy[1];\n if (dx || dy) {\n gd._dragged = true;\n dragElement.unhover(gd, e);\n }\n if (gd._dragged && options.moveFn && !rightClick) {\n gd._dragdata = {\n element,\n dx,\n dy\n };\n options.moveFn(dx, dy);\n }\n return;\n }\n function onDone(e) {\n delete gd._dragdata;\n if (options.dragmode !== false) {\n e.preventDefault();\n document.removeEventListener(\"mousemove\", onMove);\n document.removeEventListener(\"touchmove\", onMove);\n }\n document.removeEventListener(\"mouseup\", onDone);\n document.removeEventListener(\"touchend\", onDone);\n if (hasHover) {\n removeElement(dragCover);\n } else if (cursor) {\n dragCover.documentElement.style.cursor = cursor;\n cursor = null;\n }\n if (!gd._dragging) {\n gd._dragged = false;\n return;\n }\n gd._dragging = false;\n if ((/* @__PURE__ */ new Date()).getTime() - gd._mouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n if (gd._dragged) {\n if (options.doneFn) options.doneFn();\n } else {\n var clickEvent;\n if (initialEvent.target === initialTarget) {\n clickEvent = initialEvent;\n } else {\n clickEvent = {\n target: initialTarget,\n srcElement: initialTarget,\n toElement: initialTarget\n };\n Object.keys(initialEvent).concat(Object.keys(initialEvent.__proto__)).forEach((k) => {\n var v = initialEvent[k];\n if (!clickEvent[k] && typeof v !== \"function\") {\n clickEvent[k] = v;\n }\n });\n }\n if (options.clickFn) options.clickFn(numClicks, clickEvent);\n if (!rightClick) {\n initialTarget.dispatchEvent(new MouseEvent(\"click\", e));\n }\n }\n gd._dragging = false;\n gd._dragged = false;\n return;\n }\n };\n function coverSlip() {\n var cover = document.createElement(\"div\");\n cover.className = \"dragcover\";\n var cStyle = cover.style;\n cStyle.position = \"fixed\";\n cStyle.left = 0;\n cStyle.right = 0;\n cStyle.top = 0;\n cStyle.bottom = 0;\n cStyle.zIndex = 999999999;\n cStyle.background = \"none\";\n document.body.appendChild(cover);\n return cover;\n }\n dragElement.coverSlip = coverSlip;\n function pointerOffset(e) {\n return mouseOffset(\n e.changedTouches ? e.changedTouches[0] : e,\n document.body\n );\n }\n }\n });\n\n // src/lib/setcursor.js\n var require_setcursor = __commonJS({\n \"src/lib/setcursor.js\"(exports, module) {\n \"use strict\";\n module.exports = function setCursor(el3, csr) {\n (el3.attr(\"class\") || \"\").split(\" \").forEach(function(cls) {\n if (cls.indexOf(\"cursor-\") === 0) el3.classed(cls, false);\n });\n if (csr) el3.classed(\"cursor-\" + csr, true);\n };\n }\n });\n\n // src/lib/override_cursor.js\n var require_override_cursor = __commonJS({\n \"src/lib/override_cursor.js\"(exports, module) {\n \"use strict\";\n var setCursor = require_setcursor();\n var STASHATTR = \"data-savedcursor\";\n var NO_CURSOR = \"!!\";\n module.exports = function overrideCursor(el3, csr) {\n var savedCursor = el3.attr(STASHATTR);\n if (csr) {\n if (!savedCursor) {\n var classes = (el3.attr(\"class\") || \"\").split(\" \");\n for (var i = 0; i < classes.length; i++) {\n var cls = classes[i];\n if (cls.indexOf(\"cursor-\") === 0) {\n el3.attr(STASHATTR, cls.substr(7)).classed(cls, false);\n }\n }\n if (!el3.attr(STASHATTR)) {\n el3.attr(STASHATTR, NO_CURSOR);\n }\n }\n setCursor(el3, csr);\n } else if (savedCursor) {\n el3.attr(STASHATTR, null);\n if (savedCursor === NO_CURSOR) setCursor(el3);\n else setCursor(el3, savedCursor);\n }\n };\n }\n });\n\n // src/components/legend/attributes.js\n var require_attributes9 = __commonJS({\n \"src/components/legend/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n module.exports = {\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"legend\"\n },\n bgcolor: {\n valType: \"color\",\n editType: \"legend\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"legend\"\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"legend\"\n },\n font: fontAttrs({\n editType: \"legend\"\n }),\n grouptitlefont: fontAttrs({\n editType: \"legend\"\n }),\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n dflt: \"v\",\n editType: \"legend\"\n },\n traceorder: {\n valType: \"flaglist\",\n flags: [\"reversed\", \"grouped\"],\n extras: [\"normal\"],\n editType: \"legend\"\n },\n tracegroupgap: {\n valType: \"number\",\n min: 0,\n dflt: 10,\n editType: \"legend\"\n },\n entrywidth: {\n valType: \"number\",\n min: 0,\n editType: \"legend\"\n },\n entrywidthmode: {\n valType: \"enumerated\",\n values: [\"fraction\", \"pixels\"],\n dflt: \"pixels\",\n editType: \"legend\"\n },\n indentation: {\n valType: \"number\",\n min: -15,\n dflt: 0,\n editType: \"legend\"\n },\n itemsizing: {\n valType: \"enumerated\",\n values: [\"trace\", \"constant\"],\n dflt: \"trace\",\n editType: \"legend\"\n },\n itemwidth: {\n valType: \"number\",\n min: 30,\n dflt: 30,\n editType: \"legend\"\n },\n itemclick: {\n valType: \"enumerated\",\n values: [\"toggle\", \"toggleothers\", false],\n dflt: \"toggle\",\n editType: \"legend\"\n },\n itemdoubleclick: {\n valType: \"enumerated\",\n values: [\"toggle\", \"toggleothers\", false],\n dflt: \"toggleothers\",\n editType: \"legend\"\n },\n groupclick: {\n valType: \"enumerated\",\n values: [\"toggleitem\", \"togglegroup\"],\n dflt: \"togglegroup\",\n editType: \"legend\"\n },\n x: {\n valType: \"number\",\n editType: \"legend\"\n },\n xref: {\n valType: \"enumerated\",\n dflt: \"paper\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"left\",\n editType: \"legend\"\n },\n y: {\n valType: \"number\",\n editType: \"legend\"\n },\n yref: {\n valType: \"enumerated\",\n dflt: \"paper\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n editType: \"legend\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n valign: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"],\n dflt: \"middle\",\n editType: \"legend\"\n },\n title: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"legend\"\n },\n font: fontAttrs({\n editType: \"legend\"\n }),\n side: {\n valType: \"enumerated\",\n values: [\"top\", \"left\", \"top left\", \"top center\", \"top right\"],\n editType: \"legend\"\n },\n editType: \"legend\"\n },\n editType: \"legend\"\n };\n }\n });\n\n // src/components/legend/helpers.js\n var require_helpers3 = __commonJS({\n \"src/components/legend/helpers.js\"(exports) {\n \"use strict\";\n exports.isGrouped = function isGrouped(legendLayout) {\n return (legendLayout.traceorder || \"\").indexOf(\"grouped\") !== -1;\n };\n exports.isVertical = function isVertical(legendLayout) {\n return legendLayout.orientation !== \"h\";\n };\n exports.isReversed = function isReversed(legendLayout) {\n return (legendLayout.traceorder || \"\").indexOf(\"reversed\") !== -1;\n };\n }\n });\n\n // src/components/legend/defaults.js\n var require_defaults3 = __commonJS({\n \"src/components/legend/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var Template = require_plot_template();\n var plotsAttrs = require_attributes2();\n var attributes = require_attributes9();\n var basePlotLayoutAttributes = require_layout_attributes2();\n var helpers = require_helpers3();\n function groupDefaults(legendId, layoutIn, layoutOut, fullData) {\n var containerIn = layoutIn[legendId] || {};\n var containerOut = Template.newContainer(layoutOut, legendId);\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n var itemFont = Lib.coerceFont(coerce, \"font\", layoutOut.font);\n coerce(\"bgcolor\", layoutOut.paper_bgcolor);\n coerce(\"bordercolor\");\n var visible = coerce(\"visible\");\n if (!visible) return;\n var trace;\n var traceCoerce = function(attr, dflt) {\n var traceIn = trace._input;\n var traceOut = trace;\n return Lib.coerce(traceIn, traceOut, plotsAttrs, attr, dflt);\n };\n var globalFont = layoutOut.font || {};\n var grouptitlefont = Lib.coerceFont(coerce, \"grouptitlefont\", globalFont, { overrideDflt: {\n size: Math.round(globalFont.size * 1.1)\n } });\n var legendTraceCount = 0;\n var legendReallyHasATrace = false;\n var defaultOrder = \"normal\";\n var shapesWithLegend = (layoutOut.shapes || []).filter(function(d) {\n return d.showlegend;\n });\n var allLegendItems = fullData.concat(shapesWithLegend).filter(function(d) {\n return legendId === (d.legend || \"legend\");\n });\n for (var i = 0; i < allLegendItems.length; i++) {\n trace = allLegendItems[i];\n if (!trace.visible) continue;\n var isShape = trace._isShape;\n if (trace.showlegend || trace._dfltShowLegend && !(trace._module && trace._module.attributes && trace._module.attributes.showlegend && trace._module.attributes.showlegend.dflt === false)) {\n legendTraceCount++;\n if (trace.showlegend) {\n legendReallyHasATrace = true;\n if (!isShape && Registry.traceIs(trace, \"pie-like\") || trace._input.showlegend === true) {\n legendTraceCount++;\n }\n }\n Lib.coerceFont(traceCoerce, \"legendgrouptitle.font\", grouptitlefont);\n }\n if (!isShape && Registry.traceIs(trace, \"bar\") && layoutOut.barmode === \"stack\" || [\"tonextx\", \"tonexty\"].indexOf(trace.fill) !== -1) {\n defaultOrder = helpers.isGrouped({ traceorder: defaultOrder }) ? \"grouped+reversed\" : \"reversed\";\n }\n if (trace.legendgroup !== void 0 && trace.legendgroup !== \"\") {\n defaultOrder = helpers.isReversed({ traceorder: defaultOrder }) ? \"reversed+grouped\" : \"grouped\";\n }\n }\n var showLegend = Lib.coerce(\n layoutIn,\n layoutOut,\n basePlotLayoutAttributes,\n \"showlegend\",\n legendReallyHasATrace && legendTraceCount > (legendId === \"legend\" ? 1 : 0)\n );\n if (showLegend === false) layoutOut[legendId] = void 0;\n if (showLegend === false && !containerIn.uirevision) return;\n coerce(\"uirevision\", layoutOut.uirevision);\n if (showLegend === false) return;\n coerce(\"borderwidth\");\n var orientation = coerce(\"orientation\");\n var yref = coerce(\"yref\");\n var xref = coerce(\"xref\");\n var isHorizontal = orientation === \"h\";\n var isPaperY = yref === \"paper\";\n var isPaperX = xref === \"paper\";\n var defaultX, defaultY, defaultYAnchor;\n var defaultXAnchor = \"left\";\n if (isHorizontal) {\n defaultX = 0;\n if (Registry.getComponentMethod(\"rangeslider\", \"isVisible\")(layoutIn.xaxis)) {\n if (isPaperY) {\n defaultY = 1.1;\n defaultYAnchor = \"bottom\";\n } else {\n defaultY = 1;\n defaultYAnchor = \"top\";\n }\n } else {\n if (isPaperY) {\n defaultY = -0.1;\n defaultYAnchor = \"top\";\n } else {\n defaultY = 0;\n defaultYAnchor = \"bottom\";\n }\n }\n } else {\n defaultY = 1;\n defaultYAnchor = \"auto\";\n if (isPaperX) {\n defaultX = 1.02;\n } else {\n defaultX = 1;\n defaultXAnchor = \"right\";\n }\n }\n Lib.coerce(containerIn, containerOut, {\n x: {\n valType: \"number\",\n editType: \"legend\",\n min: isPaperX ? -2 : 0,\n max: isPaperX ? 3 : 1,\n dflt: defaultX\n }\n }, \"x\");\n Lib.coerce(containerIn, containerOut, {\n y: {\n valType: \"number\",\n editType: \"legend\",\n min: isPaperY ? -2 : 0,\n max: isPaperY ? 3 : 1,\n dflt: defaultY\n }\n }, \"y\");\n coerce(\"traceorder\", defaultOrder);\n if (helpers.isGrouped(layoutOut[legendId])) coerce(\"tracegroupgap\");\n coerce(\"entrywidth\");\n coerce(\"entrywidthmode\");\n coerce(\"indentation\");\n coerce(\"itemsizing\");\n coerce(\"itemwidth\");\n coerce(\"itemclick\");\n coerce(\"itemdoubleclick\");\n coerce(\"groupclick\");\n coerce(\"xanchor\", defaultXAnchor);\n coerce(\"yanchor\", defaultYAnchor);\n coerce(\"valign\");\n Lib.noneOrAll(containerIn, containerOut, [\"x\", \"y\"]);\n var titleText = coerce(\"title.text\");\n if (titleText) {\n coerce(\"title.side\", isHorizontal ? \"left\" : \"top\");\n var dfltTitleFont = Lib.extendFlat({}, itemFont, {\n size: Lib.bigFont(itemFont.size)\n });\n Lib.coerceFont(coerce, \"title.font\", dfltTitleFont);\n }\n }\n module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {\n var i;\n var allLegendsData = fullData.slice();\n var shapes = layoutOut.shapes;\n if (shapes) {\n for (i = 0; i < shapes.length; i++) {\n var shape = shapes[i];\n if (!shape.showlegend) continue;\n var mockTrace = {\n _input: shape._input,\n visible: shape.visible,\n showlegend: shape.showlegend,\n legend: shape.legend\n };\n allLegendsData.push(mockTrace);\n }\n }\n var legends = [\"legend\"];\n for (i = 0; i < allLegendsData.length; i++) {\n Lib.pushUnique(legends, allLegendsData[i].legend);\n }\n layoutOut._legends = [];\n for (i = 0; i < legends.length; i++) {\n var legendId = legends[i];\n groupDefaults(legendId, layoutIn, layoutOut, allLegendsData);\n if (layoutOut[legendId] && layoutOut[legendId].visible) {\n layoutOut[legendId]._id = legendId;\n }\n layoutOut._legends.push(legendId);\n }\n };\n }\n });\n\n // src/components/legend/handle_click.js\n var require_handle_click = __commonJS({\n \"src/components/legend/handle_click.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var pushUnique = Lib.pushUnique;\n var SHOWISOLATETIP = true;\n module.exports = function handleClick(g, gd, numClicks) {\n var fullLayout = gd._fullLayout;\n if (gd._dragged || gd._editing) return;\n var itemClick = fullLayout.legend.itemclick;\n var itemDoubleClick = fullLayout.legend.itemdoubleclick;\n var groupClick = fullLayout.legend.groupclick;\n if (numClicks === 1 && itemClick === \"toggle\" && itemDoubleClick === \"toggleothers\" && SHOWISOLATETIP && gd.data && gd._context.showTips) {\n Lib.notifier(Lib._(gd, \"Double-click on legend to isolate one trace\"), \"long\");\n SHOWISOLATETIP = false;\n } else {\n SHOWISOLATETIP = false;\n }\n var mode;\n if (numClicks === 1) mode = itemClick;\n else if (numClicks === 2) mode = itemDoubleClick;\n if (!mode) return;\n var toggleGroup = groupClick === \"togglegroup\";\n var hiddenSlices = fullLayout.hiddenlabels ? fullLayout.hiddenlabels.slice() : [];\n var legendItem = g.data()[0][0];\n if (legendItem.groupTitle && legendItem.noClick) return;\n var fullData = gd._fullData;\n var shapesWithLegend = (fullLayout.shapes || []).filter(function(d2) {\n return d2.showlegend;\n });\n var allLegendItems = fullData.concat(shapesWithLegend);\n var fullTrace = legendItem.trace;\n if (fullTrace._isShape) {\n fullTrace = fullTrace._fullInput;\n }\n var legendgroup = fullTrace.legendgroup;\n var i, j, kcont, key, keys, val;\n var dataUpdate = {};\n var dataIndices = [];\n var carrs = [];\n var carrIdx = [];\n function insertDataUpdate(traceIndex, value) {\n var attrIndex = dataIndices.indexOf(traceIndex);\n var valueArray = dataUpdate.visible;\n if (!valueArray) {\n valueArray = dataUpdate.visible = [];\n }\n if (dataIndices.indexOf(traceIndex) === -1) {\n dataIndices.push(traceIndex);\n attrIndex = dataIndices.length - 1;\n }\n valueArray[attrIndex] = value;\n return attrIndex;\n }\n var updatedShapes = (fullLayout.shapes || []).map(function(d2) {\n return d2._input;\n });\n var shapesUpdated = false;\n function insertShapesUpdate(shapeIndex, value) {\n updatedShapes[shapeIndex].visible = value;\n shapesUpdated = true;\n }\n function setVisibility(fullTrace2, visibility) {\n if (legendItem.groupTitle && !toggleGroup) return;\n var fullInput2 = fullTrace2._fullInput || fullTrace2;\n var isShape2 = fullInput2._isShape;\n var index = fullInput2.index;\n if (index === void 0) index = fullInput2._index;\n var nextVisibility2 = fullInput2.visible === false ? false : visibility;\n if (isShape2) {\n insertShapesUpdate(index, nextVisibility2);\n } else {\n insertDataUpdate(index, nextVisibility2);\n }\n }\n var thisLegend = fullTrace.legend;\n var fullInput = fullTrace._fullInput;\n var isShape = fullInput && fullInput._isShape;\n if (!isShape && Registry.traceIs(fullTrace, \"pie-like\")) {\n var thisLabel = legendItem.label;\n var thisLabelIndex = hiddenSlices.indexOf(thisLabel);\n if (mode === \"toggle\") {\n if (thisLabelIndex === -1) hiddenSlices.push(thisLabel);\n else hiddenSlices.splice(thisLabelIndex, 1);\n } else if (mode === \"toggleothers\") {\n var changed = thisLabelIndex !== -1;\n var unhideList = [];\n for (i = 0; i < gd.calcdata.length; i++) {\n var cdi = gd.calcdata[i];\n for (j = 0; j < cdi.length; j++) {\n var d = cdi[j];\n var dLabel = d.label;\n if (thisLegend === cdi[0].trace.legend) {\n if (thisLabel !== dLabel) {\n if (hiddenSlices.indexOf(dLabel) === -1) changed = true;\n pushUnique(hiddenSlices, dLabel);\n unhideList.push(dLabel);\n }\n }\n }\n }\n if (!changed) {\n for (var q = 0; q < unhideList.length; q++) {\n var pos = hiddenSlices.indexOf(unhideList[q]);\n if (pos !== -1) {\n hiddenSlices.splice(pos, 1);\n }\n }\n }\n }\n Registry.call(\"_guiRelayout\", gd, \"hiddenlabels\", hiddenSlices);\n } else {\n var hasLegendgroup = legendgroup && legendgroup.length;\n var traceIndicesInGroup = [];\n var tracei;\n if (hasLegendgroup) {\n for (i = 0; i < allLegendItems.length; i++) {\n tracei = allLegendItems[i];\n if (!tracei.visible) continue;\n if (tracei.legendgroup === legendgroup) {\n traceIndicesInGroup.push(i);\n }\n }\n }\n if (mode === \"toggle\") {\n var nextVisibility;\n switch (fullTrace.visible) {\n case true:\n nextVisibility = \"legendonly\";\n break;\n case false:\n nextVisibility = false;\n break;\n case \"legendonly\":\n nextVisibility = true;\n break;\n }\n if (hasLegendgroup) {\n if (toggleGroup) {\n for (i = 0; i < allLegendItems.length; i++) {\n var item = allLegendItems[i];\n if (item.visible !== false && item.legendgroup === legendgroup) {\n setVisibility(item, nextVisibility);\n }\n }\n } else {\n setVisibility(fullTrace, nextVisibility);\n }\n } else {\n setVisibility(fullTrace, nextVisibility);\n }\n } else if (mode === \"toggleothers\") {\n var isClicked, isInGroup, notInLegend, otherState, _item;\n var isIsolated = true;\n for (i = 0; i < allLegendItems.length; i++) {\n _item = allLegendItems[i];\n isClicked = _item === fullTrace;\n notInLegend = _item.showlegend !== true;\n if (isClicked || notInLegend) continue;\n isInGroup = hasLegendgroup && _item.legendgroup === legendgroup;\n if (!isInGroup && _item.legend === thisLegend && _item.visible === true && !Registry.traceIs(_item, \"notLegendIsolatable\")) {\n isIsolated = false;\n break;\n }\n }\n for (i = 0; i < allLegendItems.length; i++) {\n _item = allLegendItems[i];\n if (_item.visible === false || _item.legend !== thisLegend) continue;\n if (Registry.traceIs(_item, \"notLegendIsolatable\")) {\n continue;\n }\n switch (fullTrace.visible) {\n case \"legendonly\":\n setVisibility(_item, true);\n break;\n case true:\n otherState = isIsolated ? true : \"legendonly\";\n isClicked = _item === fullTrace;\n notInLegend = _item.showlegend !== true && !_item.legendgroup;\n isInGroup = isClicked || hasLegendgroup && _item.legendgroup === legendgroup;\n setVisibility(_item, isInGroup || notInLegend ? true : otherState);\n break;\n }\n }\n }\n for (i = 0; i < carrs.length; i++) {\n kcont = carrs[i];\n if (!kcont) continue;\n var update = kcont.constructUpdate();\n var updateKeys = Object.keys(update);\n for (j = 0; j < updateKeys.length; j++) {\n key = updateKeys[j];\n val = dataUpdate[key] = dataUpdate[key] || [];\n val[carrIdx[i]] = update[key];\n }\n }\n keys = Object.keys(dataUpdate);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n for (j = 0; j < dataIndices.length; j++) {\n if (!dataUpdate[key].hasOwnProperty(j)) {\n dataUpdate[key][j] = void 0;\n }\n }\n }\n if (shapesUpdated) {\n Registry.call(\"_guiUpdate\", gd, dataUpdate, { shapes: updatedShapes }, dataIndices);\n } else {\n Registry.call(\"_guiRestyle\", gd, dataUpdate, dataIndices);\n }\n }\n };\n }\n });\n\n // src/components/legend/constants.js\n var require_constants3 = __commonJS({\n \"src/components/legend/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n scrollBarWidth: 6,\n scrollBarMinHeight: 20,\n scrollBarColor: \"#808BA4\",\n scrollBarMargin: 4,\n scrollBarEnterAttrs: { rx: 20, ry: 3, width: 0, height: 0 },\n // number of px between legend title and (left) side of legend (always in x direction and from inner border)\n titlePad: 2,\n // number of px between each legend item (x and/or y direction)\n itemGap: 5\n };\n }\n });\n\n // src/components/legend/get_legend_data.js\n var require_get_legend_data = __commonJS({\n \"src/components/legend/get_legend_data.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var helpers = require_helpers3();\n module.exports = function getLegendData(calcdata, opts, hasMultipleLegends) {\n var inHover = opts._inHover;\n var grouped = helpers.isGrouped(opts);\n var reversed = helpers.isReversed(opts);\n var lgroupToTraces = {};\n var lgroups = [];\n var hasOneNonBlankGroup = false;\n var slicesShown = {};\n var lgroupi = 0;\n var maxNameLength = 0;\n var i, j;\n function addOneItem(legendId, legendGroup, legendItem) {\n if (opts.visible === false) return;\n if (hasMultipleLegends && legendId !== opts._id) return;\n if (legendGroup === \"\" || !helpers.isGrouped(opts)) {\n var uniqueGroup = \"~~i\" + lgroupi;\n lgroups.push(uniqueGroup);\n lgroupToTraces[uniqueGroup] = [legendItem];\n lgroupi++;\n } else if (lgroups.indexOf(legendGroup) === -1) {\n lgroups.push(legendGroup);\n hasOneNonBlankGroup = true;\n lgroupToTraces[legendGroup] = [legendItem];\n } else {\n lgroupToTraces[legendGroup].push(legendItem);\n }\n }\n for (i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0];\n var trace = cd0.trace;\n var lid = trace.legend;\n var lgroup = trace.legendgroup;\n if (!inHover && (!trace.visible || !trace.showlegend)) continue;\n if (Registry.traceIs(trace, \"pie-like\")) {\n if (!slicesShown[lgroup]) slicesShown[lgroup] = {};\n for (j = 0; j < cd.length; j++) {\n var labelj = cd[j].label;\n if (!slicesShown[lgroup][labelj]) {\n addOneItem(lid, lgroup, {\n label: labelj,\n color: cd[j].color,\n i: cd[j].i,\n trace,\n pts: cd[j].pts\n });\n slicesShown[lgroup][labelj] = true;\n maxNameLength = Math.max(maxNameLength, (labelj || \"\").length);\n }\n }\n } else {\n addOneItem(lid, lgroup, cd0);\n maxNameLength = Math.max(maxNameLength, (trace.name || \"\").length);\n }\n }\n if (!lgroups.length) return [];\n var shouldCollapse = !hasOneNonBlankGroup || !grouped;\n var legendData = [];\n for (i = 0; i < lgroups.length; i++) {\n var t = lgroupToTraces[lgroups[i]];\n if (shouldCollapse) {\n legendData.push(t[0]);\n } else {\n legendData.push(t);\n }\n }\n if (shouldCollapse) legendData = [legendData];\n for (i = 0; i < legendData.length; i++) {\n var groupMinRank = Infinity;\n for (j = 0; j < legendData[i].length; j++) {\n var rank = legendData[i][j].trace.legendrank;\n if (groupMinRank > rank) groupMinRank = rank;\n }\n legendData[i][0]._groupMinRank = groupMinRank;\n legendData[i][0]._preGroupSort = i;\n }\n var orderFn1 = function(a, b) {\n return a[0]._groupMinRank - b[0]._groupMinRank || a[0]._preGroupSort - b[0]._preGroupSort;\n };\n var orderFn2 = function(a, b) {\n return a.trace.legendrank - b.trace.legendrank || a._preSort - b._preSort;\n };\n legendData.forEach(function(a, k) {\n a[0]._preGroupSort = k;\n });\n legendData.sort(orderFn1);\n for (i = 0; i < legendData.length; i++) {\n legendData[i].forEach(function(a, k) {\n a._preSort = k;\n });\n legendData[i].sort(orderFn2);\n var firstItemTrace = legendData[i][0].trace;\n var groupTitle = null;\n for (j = 0; j < legendData[i].length; j++) {\n var gt = legendData[i][j].trace.legendgrouptitle;\n if (gt && gt.text) {\n groupTitle = gt;\n if (inHover) gt.font = opts._groupTitleFont;\n break;\n }\n }\n if (reversed) legendData[i].reverse();\n if (groupTitle) {\n var hasPieLike = false;\n for (j = 0; j < legendData[i].length; j++) {\n if (Registry.traceIs(legendData[i][j].trace, \"pie-like\")) {\n hasPieLike = true;\n break;\n }\n }\n legendData[i].unshift({\n i: -1,\n groupTitle,\n noClick: hasPieLike,\n trace: {\n showlegend: firstItemTrace.showlegend,\n legendgroup: firstItemTrace.legendgroup,\n visible: opts.groupclick === \"toggleitem\" ? true : firstItemTrace.visible\n }\n });\n }\n for (j = 0; j < legendData[i].length; j++) {\n legendData[i][j] = [\n legendData[i][j]\n ];\n }\n }\n opts._lgroupsLength = legendData.length;\n opts._maxNameLength = maxNameLength;\n return legendData;\n };\n }\n });\n\n // src/traces/pie/helpers.js\n var require_helpers4 = __commonJS({\n \"src/traces/pie/helpers.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n function format(vRounded) {\n return vRounded.indexOf(\"e\") !== -1 ? vRounded.replace(/[.]?0+e/, \"e\") : vRounded.indexOf(\".\") !== -1 ? vRounded.replace(/[.]?0+$/, \"\") : vRounded;\n }\n exports.formatPiePercent = function formatPiePercent(v, separators) {\n var vRounded = format((v * 100).toPrecision(3));\n return Lib.numSeparate(vRounded, separators) + \"%\";\n };\n exports.formatPieValue = function formatPieValue(v, separators) {\n var vRounded = format(v.toPrecision(10));\n return Lib.numSeparate(vRounded, separators);\n };\n exports.getFirstFilled = function getFirstFilled(array, indices) {\n if (!Lib.isArrayOrTypedArray(array)) return;\n for (var i = 0; i < indices.length; i++) {\n var v = array[indices[i]];\n if (v || v === 0 || v === \"\") return v;\n }\n };\n exports.castOption = function castOption(item, indices) {\n if (Lib.isArrayOrTypedArray(item)) return exports.getFirstFilled(item, indices);\n else if (item) return item;\n };\n exports.getRotationAngle = function(rotation) {\n return (rotation === \"auto\" ? 0 : rotation) * Math.PI / 180;\n };\n }\n });\n\n // src/traces/pie/fill_one.js\n var require_fill_one = __commonJS({\n \"src/traces/pie/fill_one.js\"(exports, module) {\n \"use strict\";\n var Drawing = require_drawing();\n var Color2 = require_color();\n module.exports = function fillOne(s, pt, trace, gd) {\n var pattern = trace.marker.pattern;\n if (pattern && pattern.shape) {\n Drawing.pointStyle(s, trace, gd, pt);\n } else {\n Color2.fill(s, pt.color);\n }\n };\n }\n });\n\n // src/traces/pie/style_one.js\n var require_style_one = __commonJS({\n \"src/traces/pie/style_one.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var castOption = require_helpers4().castOption;\n var fillOne = require_fill_one();\n module.exports = function styleOne(s, pt, trace, gd) {\n var line = trace.marker.line;\n var lineColor = castOption(line.color, pt.pts) || Color2.defaultLine;\n var lineWidth = castOption(line.width, pt.pts) || 0;\n s.call(fillOne, pt, trace, gd).style(\"stroke-width\", lineWidth).call(Color2.stroke, lineColor);\n };\n }\n });\n\n // src/components/legend/style.js\n var require_style = __commonJS({\n \"src/components/legend/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Drawing = require_drawing();\n var Color2 = require_color();\n var extractOpts = require_helpers().extractOpts;\n var subTypes = require_subtypes();\n var stylePie = require_style_one();\n var pieCastOption = require_helpers4().castOption;\n var constants = require_constants3();\n var CST_MARKER_SIZE = 12;\n var CST_LINE_WIDTH = 5;\n var CST_MARKER_LINE_WIDTH = 2;\n var MAX_LINE_WIDTH = 10;\n var MAX_MARKER_LINE_WIDTH = 5;\n module.exports = function style(s, gd, legend) {\n var fullLayout = gd._fullLayout;\n if (!legend) legend = fullLayout.legend;\n var constantItemSizing = legend.itemsizing === \"constant\";\n var itemWidth = legend.itemwidth;\n var centerPos = (itemWidth + constants.itemGap * 2) / 2;\n var centerTransform = strTranslate(centerPos, 0);\n var boundLineWidth = function(mlw, cont, max, cst) {\n var v;\n if (mlw + 1) {\n v = mlw;\n } else if (cont && cont.width > 0) {\n v = cont.width;\n } else {\n return 0;\n }\n return constantItemSizing ? cst : Math.min(v, max);\n };\n s.each(function(d) {\n var traceGroup = d3.select(this);\n var layers = Lib.ensureSingle(traceGroup, \"g\", \"layers\");\n layers.style(\"opacity\", d[0].trace.opacity);\n var indentation = legend.indentation;\n var valign = legend.valign;\n var lineHeight = d[0].lineHeight;\n var height = d[0].height;\n if (valign === \"middle\" && indentation === 0 || !lineHeight || !height) {\n layers.attr(\"transform\", null);\n } else {\n var factor = { top: 1, bottom: -1 }[valign];\n var markerOffsetY = factor * (0.5 * (lineHeight - height + 3)) || 0;\n var markerOffsetX = legend.indentation;\n layers.attr(\"transform\", strTranslate(markerOffsetX, markerOffsetY));\n }\n var fill = layers.selectAll(\"g.legendfill\").data([d]);\n fill.enter().append(\"g\").classed(\"legendfill\", true);\n var line = layers.selectAll(\"g.legendlines\").data([d]);\n line.enter().append(\"g\").classed(\"legendlines\", true);\n var symbol = layers.selectAll(\"g.legendsymbols\").data([d]);\n symbol.enter().append(\"g\").classed(\"legendsymbols\", true);\n symbol.selectAll(\"g.legendpoints\").data([d]).enter().append(\"g\").classed(\"legendpoints\", true);\n }).each(styleSpatial).each(styleWaterfalls).each(styleFunnels).each(styleBars).each(styleBoxes).each(styleFunnelareas).each(stylePies).each(styleLines).each(stylePoints).each(styleCandles).each(styleOHLC);\n function styleLines(d) {\n var styleGuide = getStyleGuide(d);\n var showFill = styleGuide.showFill;\n var showLine = styleGuide.showLine;\n var showGradientLine = styleGuide.showGradientLine;\n var showGradientFill = styleGuide.showGradientFill;\n var anyFill = styleGuide.anyFill;\n var anyLine = styleGuide.anyLine;\n var d0 = d[0];\n var trace = d0.trace;\n var dMod, tMod;\n var cOpts = extractOpts(trace);\n var colorscale = cOpts.colorscale;\n var reversescale = cOpts.reversescale;\n var fillStyle = function(s2) {\n if (s2.size()) {\n if (showFill) {\n Drawing.fillGroupStyle(s2, gd, true);\n } else {\n var gradientID = \"legendfill-\" + trace.uid;\n Drawing.gradient(\n s2,\n gd,\n gradientID,\n getGradientDirection(reversescale),\n colorscale,\n \"fill\"\n );\n }\n }\n };\n var lineGradient = function(s2) {\n if (s2.size()) {\n var gradientID = \"legendline-\" + trace.uid;\n Drawing.lineGroupStyle(s2);\n Drawing.gradient(\n s2,\n gd,\n gradientID,\n getGradientDirection(reversescale),\n colorscale,\n \"stroke\"\n );\n }\n };\n var pathStart = subTypes.hasMarkers(trace) || !anyFill ? \"M5,0\" : (\n // with a line leave it slightly below center, to leave room for the\n // line thickness and because the line is usually more prominent\n anyLine ? \"M5,-2\" : \"M5,-3\"\n );\n var this3 = d3.select(this);\n var fill = this3.select(\".legendfill\").selectAll(\"path\").data(showFill || showGradientFill ? [d] : []);\n fill.enter().append(\"path\").classed(\"js-fill\", true);\n fill.exit().remove();\n fill.attr(\"d\", pathStart + \"h\" + itemWidth + \"v6h-\" + itemWidth + \"z\").call(fillStyle);\n if (showLine || showGradientLine) {\n var lw = boundLineWidth(void 0, trace.line, MAX_LINE_WIDTH, CST_LINE_WIDTH);\n tMod = Lib.minExtend(trace, { line: { width: lw } });\n dMod = [Lib.minExtend(d0, { trace: tMod })];\n }\n var line = this3.select(\".legendlines\").selectAll(\"path\").data(showLine || showGradientLine ? [dMod] : []);\n line.enter().append(\"path\").classed(\"js-line\", true);\n line.exit().remove();\n line.attr(\"d\", pathStart + (showGradientLine ? \"l\" + itemWidth + \",0.0001\" : \"h\" + itemWidth)).call(showLine ? Drawing.lineGroupStyle : lineGradient);\n }\n function stylePoints(d) {\n var styleGuide = getStyleGuide(d);\n var anyFill = styleGuide.anyFill;\n var anyLine = styleGuide.anyLine;\n var showLine = styleGuide.showLine;\n var showMarker = styleGuide.showMarker;\n var d0 = d[0];\n var trace = d0.trace;\n var showText = !showMarker && !anyLine && !anyFill && subTypes.hasText(trace);\n var dMod, tMod;\n function boundVal(attrIn, arrayToValFn, bounds, cst) {\n var valIn = Lib.nestedProperty(trace, attrIn).get();\n var valToBound = Lib.isArrayOrTypedArray(valIn) && arrayToValFn ? arrayToValFn(valIn) : valIn;\n if (constantItemSizing && valToBound && cst !== void 0) {\n valToBound = cst;\n }\n if (bounds) {\n if (valToBound < bounds[0]) return bounds[0];\n else if (valToBound > bounds[1]) return bounds[1];\n }\n return valToBound;\n }\n function pickFirst(array) {\n if (d0._distinct && d0.index && array[d0.index]) return array[d0.index];\n return array[0];\n }\n if (showMarker || showText || showLine) {\n var dEdit = {};\n var tEdit = {};\n if (showMarker) {\n dEdit.mc = boundVal(\"marker.color\", pickFirst);\n dEdit.mx = boundVal(\"marker.symbol\", pickFirst);\n dEdit.mo = boundVal(\"marker.opacity\", Lib.mean, [0.2, 1]);\n dEdit.mlc = boundVal(\"marker.line.color\", pickFirst);\n dEdit.mlw = boundVal(\"marker.line.width\", Lib.mean, [0, 5], CST_MARKER_LINE_WIDTH);\n tEdit.marker = {\n sizeref: 1,\n sizemin: 1,\n sizemode: \"diameter\"\n };\n var ms = boundVal(\"marker.size\", Lib.mean, [2, 16], CST_MARKER_SIZE);\n dEdit.ms = ms;\n tEdit.marker.size = ms;\n }\n if (showLine) {\n tEdit.line = {\n width: boundVal(\"line.width\", pickFirst, [0, 10], CST_LINE_WIDTH)\n };\n }\n if (showText) {\n dEdit.tx = \"Aa\";\n dEdit.tp = boundVal(\"textposition\", pickFirst);\n dEdit.ts = 10;\n dEdit.tc = boundVal(\"textfont.color\", pickFirst);\n dEdit.tf = boundVal(\"textfont.family\", pickFirst);\n dEdit.tw = boundVal(\"textfont.weight\", pickFirst);\n dEdit.ty = boundVal(\"textfont.style\", pickFirst);\n dEdit.tv = boundVal(\"textfont.variant\", pickFirst);\n dEdit.tC = boundVal(\"textfont.textcase\", pickFirst);\n dEdit.tE = boundVal(\"textfont.lineposition\", pickFirst);\n dEdit.tS = boundVal(\"textfont.shadow\", pickFirst);\n }\n dMod = [Lib.minExtend(d0, dEdit)];\n tMod = Lib.minExtend(trace, tEdit);\n tMod.selectedpoints = null;\n tMod.texttemplate = null;\n }\n var ptgroup = d3.select(this).select(\"g.legendpoints\");\n var pts = ptgroup.selectAll(\"path.scatterpts\").data(showMarker ? dMod : []);\n pts.enter().insert(\"path\", \":first-child\").classed(\"scatterpts\", true).attr(\"transform\", centerTransform);\n pts.exit().remove();\n pts.call(Drawing.pointStyle, tMod, gd);\n if (showMarker) dMod[0].mrc = 3;\n var txt = ptgroup.selectAll(\"g.pointtext\").data(showText ? dMod : []);\n txt.enter().append(\"g\").classed(\"pointtext\", true).append(\"text\").attr(\"transform\", centerTransform);\n txt.exit().remove();\n txt.selectAll(\"text\").call(Drawing.textPointStyle, tMod, gd);\n }\n function styleWaterfalls(d) {\n var trace = d[0].trace;\n var isWaterfall = trace.type === \"waterfall\";\n if (d[0]._distinct && isWaterfall) {\n var cont = d[0].trace[d[0].dir].marker;\n d[0].mc = cont.color;\n d[0].mlw = cont.line.width;\n d[0].mlc = cont.line.color;\n return styleBarLike(d, this, \"waterfall\");\n }\n var ptsData = [];\n if (trace.visible && isWaterfall) {\n ptsData = d[0].hasTotals ? [[\"increasing\", \"M-6,-6V6H0Z\"], [\"totals\", \"M6,6H0L-6,-6H-0Z\"], [\"decreasing\", \"M6,6V-6H0Z\"]] : [[\"increasing\", \"M-6,-6V6H6Z\"], [\"decreasing\", \"M6,6V-6H-6Z\"]];\n }\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legendwaterfall\").data(ptsData);\n pts.enter().append(\"path\").classed(\"legendwaterfall\", true).attr(\"transform\", centerTransform).style(\"stroke-miterlimit\", 1);\n pts.exit().remove();\n pts.each(function(dd) {\n var pt = d3.select(this);\n var cont2 = trace[dd[0]].marker;\n var lw = boundLineWidth(void 0, cont2.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n pt.attr(\"d\", dd[1]).style(\"stroke-width\", lw + \"px\").call(Color2.fill, cont2.color);\n if (lw) {\n pt.call(Color2.stroke, cont2.line.color);\n }\n });\n }\n function styleBars(d) {\n styleBarLike(d, this);\n }\n function styleFunnels(d) {\n styleBarLike(d, this, \"funnel\");\n }\n function styleBarLike(d, lThis, desiredType) {\n var trace = d[0].trace;\n var marker = trace.marker || {};\n var markerLine = marker.line || {};\n var pathStr = marker.cornerradius ? \"M6,3a3,3,0,0,1-3,3H-3a3,3,0,0,1-3-3V-3a3,3,0,0,1,3-3H3a3,3,0,0,1,3,3Z\" : (\n // Square with rounded corners\n \"M6,6H-6V-6H6Z\"\n );\n var isVisible = !desiredType ? Registry.traceIs(trace, \"bar\") : trace.visible && trace.type === desiredType;\n var barpath = d3.select(lThis).select(\"g.legendpoints\").selectAll(\"path.legend\" + desiredType).data(isVisible ? [d] : []);\n barpath.enter().append(\"path\").classed(\"legend\" + desiredType, true).attr(\"d\", pathStr).attr(\"transform\", centerTransform);\n barpath.exit().remove();\n barpath.each(function(d2) {\n var p = d3.select(this);\n var d0 = d2[0];\n var w = boundLineWidth(d0.mlw, marker.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n p.style(\"stroke-width\", w + \"px\");\n var mcc = d0.mcc;\n if (!legend._inHover && \"mc\" in d0) {\n var cOpts = extractOpts(marker);\n var mid = cOpts.mid;\n if (mid === void 0) mid = (cOpts.max + cOpts.min) / 2;\n mcc = Drawing.tryColorscale(marker, \"\")(mid);\n }\n var fillColor = mcc || d0.mc || marker.color;\n var markerPattern = marker.pattern;\n var patternShape = markerPattern && Drawing.getPatternAttr(markerPattern.shape, 0, \"\");\n if (patternShape) {\n var patternBGColor = Drawing.getPatternAttr(markerPattern.bgcolor, 0, null);\n var patternFGColor = Drawing.getPatternAttr(markerPattern.fgcolor, 0, null);\n var patternFGOpacity = markerPattern.fgopacity;\n var patternSize = dimAttr(markerPattern.size, 8, 10);\n var patternSolidity = dimAttr(markerPattern.solidity, 0.5, 1);\n var patternID = \"legend-\" + trace.uid;\n p.call(\n Drawing.pattern,\n \"legend\",\n gd,\n patternID,\n patternShape,\n patternSize,\n patternSolidity,\n mcc,\n markerPattern.fillmode,\n patternBGColor,\n patternFGColor,\n patternFGOpacity\n );\n } else {\n p.call(Color2.fill, fillColor);\n }\n if (w) Color2.stroke(p, d0.mlc || markerLine.color);\n });\n }\n function styleBoxes(d) {\n var trace = d[0].trace;\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legendbox\").data(trace.visible && Registry.traceIs(trace, \"box-violin\") ? [d] : []);\n pts.enter().append(\"path\").classed(\"legendbox\", true).attr(\"d\", \"M6,6H-6V-6H6Z\").attr(\"transform\", centerTransform);\n pts.exit().remove();\n pts.each(function() {\n var p = d3.select(this);\n if ((trace.boxpoints === \"all\" || trace.points === \"all\") && Color2.opacity(trace.fillcolor) === 0 && Color2.opacity((trace.line || {}).color) === 0) {\n var tMod = Lib.minExtend(trace, {\n marker: {\n size: constantItemSizing ? CST_MARKER_SIZE : Lib.constrain(trace.marker.size, 2, 16),\n sizeref: 1,\n sizemin: 1,\n sizemode: \"diameter\"\n }\n });\n pts.call(Drawing.pointStyle, tMod, gd);\n } else {\n var w = boundLineWidth(void 0, trace.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n p.style(\"stroke-width\", w + \"px\").call(Color2.fill, trace.fillcolor);\n if (w) Color2.stroke(p, trace.line.color);\n }\n });\n }\n function styleCandles(d) {\n var trace = d[0].trace;\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legendcandle\").data(trace.visible && trace.type === \"candlestick\" ? [d, d] : []);\n pts.enter().append(\"path\").classed(\"legendcandle\", true).attr(\"d\", function(_, i) {\n if (i) return \"M-15,0H-8M-8,6V-6H8Z\";\n return \"M15,0H8M8,-6V6H-8Z\";\n }).attr(\"transform\", centerTransform).style(\"stroke-miterlimit\", 1);\n pts.exit().remove();\n pts.each(function(_, i) {\n var p = d3.select(this);\n var cont = trace[i ? \"increasing\" : \"decreasing\"];\n var w = boundLineWidth(void 0, cont.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n p.style(\"stroke-width\", w + \"px\").call(Color2.fill, cont.fillcolor);\n if (w) Color2.stroke(p, cont.line.color);\n });\n }\n function styleOHLC(d) {\n var trace = d[0].trace;\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legendohlc\").data(trace.visible && trace.type === \"ohlc\" ? [d, d] : []);\n pts.enter().append(\"path\").classed(\"legendohlc\", true).attr(\"d\", function(_, i) {\n if (i) return \"M-15,0H0M-8,-6V0\";\n return \"M15,0H0M8,6V0\";\n }).attr(\"transform\", centerTransform).style(\"stroke-miterlimit\", 1);\n pts.exit().remove();\n pts.each(function(_, i) {\n var p = d3.select(this);\n var cont = trace[i ? \"increasing\" : \"decreasing\"];\n var w = boundLineWidth(void 0, cont.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n p.style(\"fill\", \"none\").call(Drawing.dashLine, cont.line.dash, w);\n if (w) Color2.stroke(p, cont.line.color);\n });\n }\n function stylePies(d) {\n stylePieLike(d, this, \"pie\");\n }\n function styleFunnelareas(d) {\n stylePieLike(d, this, \"funnelarea\");\n }\n function stylePieLike(d, lThis, desiredType) {\n var d0 = d[0];\n var trace = d0.trace;\n var isVisible = !desiredType ? Registry.traceIs(trace, desiredType) : trace.visible && trace.type === desiredType;\n var pts = d3.select(lThis).select(\"g.legendpoints\").selectAll(\"path.legend\" + desiredType).data(isVisible ? [d] : []);\n pts.enter().append(\"path\").classed(\"legend\" + desiredType, true).attr(\"d\", \"M6,6H-6V-6H6Z\").attr(\"transform\", centerTransform);\n pts.exit().remove();\n if (pts.size()) {\n var cont = trace.marker || {};\n var lw = boundLineWidth(pieCastOption(cont.line.width, d0.pts), cont.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n var opt = \"pieLike\";\n var tMod = Lib.minExtend(trace, { marker: { line: { width: lw } } }, opt);\n var d0Mod = Lib.minExtend(d0, { trace: tMod }, opt);\n stylePie(pts, d0Mod, tMod, gd);\n }\n }\n function styleSpatial(d) {\n var trace = d[0].trace;\n var useGradient;\n var ptsData = [];\n if (trace.visible) {\n switch (trace.type) {\n case \"histogram2d\":\n case \"heatmap\":\n ptsData = [\n [\"M-15,-2V4H15V-2Z\"]\n // similar to contour\n ];\n useGradient = true;\n break;\n case \"choropleth\":\n case \"choroplethmapbox\":\n case \"choroplethmap\":\n ptsData = [\n [\"M-6,-6V6H6V-6Z\"]\n ];\n useGradient = true;\n break;\n case \"densitymapbox\":\n case \"densitymap\":\n ptsData = [\n [\"M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0\"]\n ];\n useGradient = \"radial\";\n break;\n case \"cone\":\n ptsData = [\n [\"M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z\"],\n [\"M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z\"],\n [\"M-6,-2 A2,2 0 0,0 -6,2 L6,0Z\"]\n ];\n useGradient = false;\n break;\n case \"streamtube\":\n ptsData = [\n [\"M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z\"],\n [\"M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z\"],\n [\"M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z\"]\n ];\n useGradient = false;\n break;\n case \"surface\":\n ptsData = [\n [\"M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z\"],\n [\"M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z\"]\n ];\n useGradient = true;\n break;\n case \"mesh3d\":\n ptsData = [\n [\"M-6,6H0L-6,-6Z\"],\n [\"M6,6H0L6,-6Z\"],\n [\"M-6,-6H6L0,6Z\"]\n ];\n useGradient = false;\n break;\n case \"volume\":\n ptsData = [\n [\"M-6,6H0L-6,-6Z\"],\n [\"M6,6H0L6,-6Z\"],\n [\"M-6,-6H6L0,6Z\"]\n ];\n useGradient = true;\n break;\n case \"isosurface\":\n ptsData = [\n [\"M-6,6H0L-6,-6Z\"],\n [\"M6,6H0L6,-6Z\"],\n [\"M-6,-6 A12,24 0 0,0 6,-6 L0,6Z\"]\n ];\n useGradient = false;\n break;\n }\n }\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legend3dandfriends\").data(ptsData);\n pts.enter().append(\"path\").classed(\"legend3dandfriends\", true).attr(\"transform\", centerTransform).style(\"stroke-miterlimit\", 1);\n pts.exit().remove();\n pts.each(function(dd, i) {\n var pt = d3.select(this);\n var cOpts = extractOpts(trace);\n var colorscale = cOpts.colorscale;\n var reversescale = cOpts.reversescale;\n var fillGradient = function(s2) {\n if (s2.size()) {\n var gradientID = \"legendfill-\" + trace.uid;\n Drawing.gradient(\n s2,\n gd,\n gradientID,\n getGradientDirection(reversescale, useGradient === \"radial\"),\n colorscale,\n \"fill\"\n );\n }\n };\n var fillColor;\n if (!colorscale) {\n var color2 = trace.vertexcolor || trace.facecolor || trace.color;\n fillColor = Lib.isArrayOrTypedArray(color2) ? color2[i] || color2[0] : color2;\n } else {\n if (!useGradient) {\n var len = colorscale.length;\n fillColor = i === 0 ? colorscale[reversescale ? len - 1 : 0][1] : (\n // minimum\n i === 1 ? colorscale[reversescale ? 0 : len - 1][1] : (\n // maximum\n colorscale[Math.floor((len - 1) / 2)][1]\n )\n );\n }\n }\n pt.attr(\"d\", dd[0]);\n if (fillColor) {\n pt.call(Color2.fill, fillColor);\n } else {\n pt.call(fillGradient);\n }\n });\n }\n };\n function getGradientDirection(reversescale, isRadial) {\n var str = isRadial ? \"radial\" : \"horizontal\";\n return str + (reversescale ? \"\" : \"reversed\");\n }\n function getStyleGuide(d) {\n var trace = d[0].trace;\n var contours = trace.contours;\n var showLine = subTypes.hasLines(trace);\n var showMarker = subTypes.hasMarkers(trace);\n var showFill = trace.visible && trace.fill && trace.fill !== \"none\";\n var showGradientLine = false;\n var showGradientFill = false;\n if (contours) {\n var coloring = contours.coloring;\n if (coloring === \"lines\") {\n showGradientLine = true;\n } else {\n showLine = coloring === \"none\" || coloring === \"heatmap\" || contours.showlines;\n }\n if (contours.type === \"constraint\") {\n showFill = contours._operation !== \"=\";\n } else if (coloring === \"fill\" || coloring === \"heatmap\") {\n showGradientFill = true;\n }\n }\n return {\n showMarker,\n showLine,\n showFill,\n showGradientLine,\n showGradientFill,\n anyLine: showLine || showGradientLine,\n anyFill: showFill || showGradientFill\n };\n }\n function dimAttr(v, dflt, max) {\n if (v && Lib.isArrayOrTypedArray(v)) return dflt;\n if (v > max) return max;\n return v;\n }\n }\n });\n\n // src/components/legend/draw.js\n var require_draw = __commonJS({\n \"src/components/legend/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Plots = require_plots();\n var Registry = require_registry();\n var Events = require_events2();\n var dragElement = require_dragelement();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var svgTextUtils = require_svg_text_utils();\n var handleClick = require_handle_click();\n var constants = require_constants3();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var FROM_TL = alignmentConstants.FROM_TL;\n var FROM_BR = alignmentConstants.FROM_BR;\n var getLegendData = require_get_legend_data();\n var style = require_style();\n var helpers = require_helpers3();\n var MAIN_TITLE = 1;\n var LEGEND_PATTERN = /^legend[0-9]*$/;\n module.exports = function draw(gd, opts) {\n if (opts) {\n drawOne(gd, opts);\n } else {\n var fullLayout = gd._fullLayout;\n var newLegends = fullLayout._legends;\n var oldLegends = fullLayout._infolayer.selectAll('[class^=\"legend\"]');\n oldLegends.each(function() {\n var el = d3.select(this);\n var classes = el.attr(\"class\");\n var cls = classes.split(\" \")[0];\n if (cls.match(LEGEND_PATTERN) && newLegends.indexOf(cls) === -1) {\n el.remove();\n }\n });\n for (var i = 0; i < newLegends.length; i++) {\n var legendId = newLegends[i];\n var legendObj = gd._fullLayout[legendId];\n drawOne(gd, legendObj);\n }\n }\n };\n function horizontalAlignTitle(titleEl, legendObj, bw) {\n if (legendObj.title.side !== \"top center\" && legendObj.title.side !== \"top right\") return;\n var font = legendObj.title.font;\n var lineHeight = font.size * LINE_SPACING;\n var titleOffset = 0;\n var textNode = titleEl.node();\n var width = Drawing.bBox(textNode).width;\n if (legendObj.title.side === \"top center\") {\n titleOffset = 0.5 * (legendObj._width - 2 * bw - 2 * constants.titlePad - width);\n } else if (legendObj.title.side === \"top right\") {\n titleOffset = legendObj._width - 2 * bw - 2 * constants.titlePad - width;\n }\n svgTextUtils.positionText(\n titleEl,\n bw + constants.titlePad + titleOffset,\n bw + lineHeight\n );\n }\n function drawOne(gd, opts) {\n var legendObj = opts || {};\n var fullLayout = gd._fullLayout;\n var legendId = getId(legendObj);\n var clipId, layer;\n var inHover = legendObj._inHover;\n if (inHover) {\n layer = legendObj.layer;\n clipId = \"hover\";\n } else {\n layer = fullLayout._infolayer;\n clipId = legendId;\n }\n if (!layer) return;\n clipId += fullLayout._uid;\n if (!gd._legendMouseDownTime) gd._legendMouseDownTime = 0;\n var legendData;\n if (!inHover) {\n var calcdata = (gd.calcdata || []).slice();\n var shapes = fullLayout.shapes;\n for (var i = 0; i < shapes.length; i++) {\n var shape = shapes[i];\n if (!shape.showlegend) continue;\n var shapeLegend = {\n _isShape: true,\n _fullInput: shape,\n index: shape._index,\n name: shape.name || shape.label.text || \"shape \" + shape._index,\n legend: shape.legend,\n legendgroup: shape.legendgroup,\n legendgrouptitle: shape.legendgrouptitle,\n legendrank: shape.legendrank,\n legendwidth: shape.legendwidth,\n showlegend: shape.showlegend,\n visible: shape.visible,\n opacity: shape.opacity,\n mode: shape.type === \"line\" ? \"lines\" : \"markers\",\n line: shape.line,\n marker: {\n line: shape.line,\n color: shape.fillcolor,\n size: 12,\n symbol: shape.type === \"rect\" ? \"square\" : shape.type === \"circle\" ? \"circle\" : (\n // case of path\n \"hexagon2\"\n )\n }\n };\n calcdata.push([{ trace: shapeLegend }]);\n }\n legendData = fullLayout.showlegend && getLegendData(calcdata, legendObj, fullLayout._legends.length > 1);\n } else {\n if (!legendObj.entries) return;\n legendData = getLegendData(legendObj.entries, legendObj);\n }\n var hiddenSlices = fullLayout.hiddenlabels || [];\n if (!inHover && (!fullLayout.showlegend || !legendData.length)) {\n layer.selectAll(\".\" + legendId).remove();\n fullLayout._topdefs.select(\"#\" + clipId).remove();\n return Plots.autoMargin(gd, legendId);\n }\n var legend = Lib.ensureSingle(layer, \"g\", legendId, function(s) {\n if (!inHover) s.attr(\"pointer-events\", \"all\");\n });\n var clipPath = Lib.ensureSingleById(fullLayout._topdefs, \"clipPath\", clipId, function(s) {\n s.append(\"rect\");\n });\n var bg = Lib.ensureSingle(legend, \"rect\", \"bg\", function(s) {\n s.attr(\"shape-rendering\", \"crispEdges\");\n });\n bg.call(Color2.stroke, legendObj.bordercolor).call(Color2.fill, legendObj.bgcolor).style(\"stroke-width\", legendObj.borderwidth + \"px\");\n var scrollBox = Lib.ensureSingle(legend, \"g\", \"scrollbox\");\n var title = legendObj.title;\n legendObj._titleWidth = 0;\n legendObj._titleHeight = 0;\n var titleEl;\n if (title.text) {\n titleEl = Lib.ensureSingle(scrollBox, \"text\", legendId + \"titletext\");\n titleEl.attr(\"text-anchor\", \"start\").call(Drawing.font, title.font).text(title.text);\n textLayout(titleEl, scrollBox, gd, legendObj, MAIN_TITLE);\n } else {\n scrollBox.selectAll(\".\" + legendId + \"titletext\").remove();\n }\n var scrollBar = Lib.ensureSingle(legend, \"rect\", \"scrollbar\", function(s) {\n s.attr(constants.scrollBarEnterAttrs).call(Color2.fill, constants.scrollBarColor);\n });\n var groups = scrollBox.selectAll(\"g.groups\").data(legendData);\n groups.enter().append(\"g\").attr(\"class\", \"groups\");\n groups.exit().remove();\n var traces = groups.selectAll(\"g.traces\").data(Lib.identity);\n traces.enter().append(\"g\").attr(\"class\", \"traces\");\n traces.exit().remove();\n traces.style(\"opacity\", function(d) {\n var trace = d[0].trace;\n if (Registry.traceIs(trace, \"pie-like\")) {\n return hiddenSlices.indexOf(d[0].label) !== -1 ? 0.5 : 1;\n } else {\n return trace.visible === \"legendonly\" ? 0.5 : 1;\n }\n }).each(function() {\n d3.select(this).call(drawTexts, gd, legendObj);\n }).call(style, gd, legendObj).each(function() {\n if (!inHover) d3.select(this).call(setupTraceToggle, gd, legendId);\n });\n Lib.syncOrAsync([\n Plots.previousPromises,\n function() {\n return computeLegendDimensions(gd, groups, traces, legendObj);\n },\n function() {\n var gs = fullLayout._size;\n var bw = legendObj.borderwidth;\n var isPaperX = legendObj.xref === \"paper\";\n var isPaperY = legendObj.yref === \"paper\";\n if (title.text) {\n horizontalAlignTitle(titleEl, legendObj, bw);\n }\n if (!inHover) {\n var lx, ly;\n if (isPaperX) {\n lx = gs.l + gs.w * legendObj.x - FROM_TL[getXanchor(legendObj)] * legendObj._width;\n } else {\n lx = fullLayout.width * legendObj.x - FROM_TL[getXanchor(legendObj)] * legendObj._width;\n }\n if (isPaperY) {\n ly = gs.t + gs.h * (1 - legendObj.y) - FROM_TL[getYanchor(legendObj)] * legendObj._effHeight;\n } else {\n ly = fullLayout.height * (1 - legendObj.y) - FROM_TL[getYanchor(legendObj)] * legendObj._effHeight;\n }\n var expMargin = expandMargin(gd, legendId, lx, ly);\n if (expMargin) return;\n if (fullLayout.margin.autoexpand) {\n var lx0 = lx;\n var ly0 = ly;\n lx = isPaperX ? Lib.constrain(lx, 0, fullLayout.width - legendObj._width) : lx0;\n ly = isPaperY ? Lib.constrain(ly, 0, fullLayout.height - legendObj._effHeight) : ly0;\n if (lx !== lx0) {\n Lib.log(\"Constrain \" + legendId + \".x to make legend fit inside graph\");\n }\n if (ly !== ly0) {\n Lib.log(\"Constrain \" + legendId + \".y to make legend fit inside graph\");\n }\n }\n Drawing.setTranslate(legend, lx, ly);\n }\n scrollBar.on(\".drag\", null);\n legend.on(\"wheel\", null);\n if (inHover || legendObj._height <= legendObj._maxHeight || gd._context.staticPlot) {\n var height = legendObj._effHeight;\n if (inHover) height = legendObj._height;\n bg.attr({\n width: legendObj._width - bw,\n height: height - bw,\n x: bw / 2,\n y: bw / 2\n });\n Drawing.setTranslate(scrollBox, 0, 0);\n clipPath.select(\"rect\").attr({\n width: legendObj._width - 2 * bw,\n height: height - 2 * bw,\n x: bw,\n y: bw\n });\n Drawing.setClipUrl(scrollBox, clipId, gd);\n Drawing.setRect(scrollBar, 0, 0, 0, 0);\n delete legendObj._scrollY;\n } else {\n var scrollBarHeight = Math.max(\n constants.scrollBarMinHeight,\n legendObj._effHeight * legendObj._effHeight / legendObj._height\n );\n var scrollBarYMax = legendObj._effHeight - scrollBarHeight - 2 * constants.scrollBarMargin;\n var scrollBoxYMax = legendObj._height - legendObj._effHeight;\n var scrollRatio = scrollBarYMax / scrollBoxYMax;\n var scrollBoxY = Math.min(legendObj._scrollY || 0, scrollBoxYMax);\n bg.attr({\n width: legendObj._width - 2 * bw + constants.scrollBarWidth + constants.scrollBarMargin,\n height: legendObj._effHeight - bw,\n x: bw / 2,\n y: bw / 2\n });\n clipPath.select(\"rect\").attr({\n width: legendObj._width - 2 * bw + constants.scrollBarWidth + constants.scrollBarMargin,\n height: legendObj._effHeight - 2 * bw,\n x: bw,\n y: bw + scrollBoxY\n });\n Drawing.setClipUrl(scrollBox, clipId, gd);\n scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio);\n legend.on(\"wheel\", function() {\n scrollBoxY = Lib.constrain(\n legendObj._scrollY + d3.event.deltaY / scrollBarYMax * scrollBoxYMax,\n 0,\n scrollBoxYMax\n );\n scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio);\n if (scrollBoxY !== 0 && scrollBoxY !== scrollBoxYMax) {\n d3.event.preventDefault();\n }\n });\n var eventY0, eventY1, scrollBoxY0;\n var getScrollBarDragY = function(scrollBoxY02, eventY02, eventY12) {\n var y = (eventY12 - eventY02) / scrollRatio + scrollBoxY02;\n return Lib.constrain(y, 0, scrollBoxYMax);\n };\n var getNaturalDragY = function(scrollBoxY02, eventY02, eventY12) {\n var y = (eventY02 - eventY12) / scrollRatio + scrollBoxY02;\n return Lib.constrain(y, 0, scrollBoxYMax);\n };\n var scrollBarDrag = d3.behavior.drag().on(\"dragstart\", function() {\n var e = d3.event.sourceEvent;\n if (e.type === \"touchstart\") {\n eventY0 = e.changedTouches[0].clientY;\n } else {\n eventY0 = e.clientY;\n }\n scrollBoxY0 = scrollBoxY;\n }).on(\"drag\", function() {\n var e = d3.event.sourceEvent;\n if (e.buttons === 2 || e.ctrlKey) return;\n if (e.type === \"touchmove\") {\n eventY1 = e.changedTouches[0].clientY;\n } else {\n eventY1 = e.clientY;\n }\n scrollBoxY = getScrollBarDragY(scrollBoxY0, eventY0, eventY1);\n scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio);\n });\n scrollBar.call(scrollBarDrag);\n var scrollBoxTouchDrag = d3.behavior.drag().on(\"dragstart\", function() {\n var e = d3.event.sourceEvent;\n if (e.type === \"touchstart\") {\n eventY0 = e.changedTouches[0].clientY;\n scrollBoxY0 = scrollBoxY;\n }\n }).on(\"drag\", function() {\n var e = d3.event.sourceEvent;\n if (e.type === \"touchmove\") {\n eventY1 = e.changedTouches[0].clientY;\n scrollBoxY = getNaturalDragY(scrollBoxY0, eventY0, eventY1);\n scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio);\n }\n });\n scrollBox.call(scrollBoxTouchDrag);\n }\n function scrollHandler(scrollBoxY2, scrollBarHeight2, scrollRatio2) {\n legendObj._scrollY = gd._fullLayout[legendId]._scrollY = scrollBoxY2;\n Drawing.setTranslate(scrollBox, 0, -scrollBoxY2);\n Drawing.setRect(\n scrollBar,\n legendObj._width,\n constants.scrollBarMargin + scrollBoxY2 * scrollRatio2,\n constants.scrollBarWidth,\n scrollBarHeight2\n );\n clipPath.select(\"rect\").attr(\"y\", bw + scrollBoxY2);\n }\n if (gd._context.edits.legendPosition) {\n var xf, yf, x0, y0;\n legend.classed(\"cursor-move\", true);\n dragElement.init({\n element: legend.node(),\n gd,\n prepFn: function(e) {\n if (e.target === scrollBar.node()) {\n return;\n }\n var transform = Drawing.getTranslate(legend);\n x0 = transform.x;\n y0 = transform.y;\n },\n moveFn: function(dx, dy) {\n if (x0 !== void 0 && y0 !== void 0) {\n var newX = x0 + dx;\n var newY = y0 + dy;\n Drawing.setTranslate(legend, newX, newY);\n xf = dragElement.align(newX, legendObj._width, gs.l, gs.l + gs.w, legendObj.xanchor);\n yf = dragElement.align(newY + legendObj._height, -legendObj._height, gs.t + gs.h, gs.t, legendObj.yanchor);\n }\n },\n doneFn: function() {\n if (xf !== void 0 && yf !== void 0) {\n var obj = {};\n obj[legendId + \".x\"] = xf;\n obj[legendId + \".y\"] = yf;\n Registry.call(\"_guiRelayout\", gd, obj);\n }\n },\n clickFn: function(numClicks, e) {\n var clickedTrace = layer.selectAll(\"g.traces\").filter(function() {\n var bbox = this.getBoundingClientRect();\n return e.clientX >= bbox.left && e.clientX <= bbox.right && e.clientY >= bbox.top && e.clientY <= bbox.bottom;\n });\n if (clickedTrace.size() > 0) {\n clickOrDoubleClick(gd, legend, clickedTrace, numClicks, e);\n }\n }\n });\n }\n }\n ], gd);\n }\n function getTraceWidth(d, legendObj, textGap) {\n var legendItem = d[0];\n var legendWidth = legendItem.width;\n var mode = legendObj.entrywidthmode;\n var traceLegendWidth = legendItem.trace.legendwidth || legendObj.entrywidth;\n if (mode === \"fraction\") return legendObj._maxWidth * traceLegendWidth;\n return textGap + (traceLegendWidth || legendWidth);\n }\n function clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {\n var trace = legendItem.data()[0][0].trace;\n var evtData = {\n event: evt,\n node: legendItem.node(),\n curveNumber: trace.index,\n expandedIndex: trace.index,\n data: gd.data,\n layout: gd.layout,\n frames: gd._transitionData._frames,\n config: gd._context,\n fullData: gd._fullData,\n fullLayout: gd._fullLayout\n };\n if (trace._group) {\n evtData.group = trace._group;\n }\n if (Registry.traceIs(trace, \"pie-like\")) {\n evtData.label = legendItem.datum()[0].label;\n }\n var clickVal = Events.triggerHandler(gd, \"plotly_legendclick\", evtData);\n if (numClicks === 1) {\n if (clickVal === false) return;\n legend._clickTimeout = setTimeout(function() {\n if (!gd._fullLayout) return;\n handleClick(legendItem, gd, numClicks);\n }, gd._context.doubleClickDelay);\n } else if (numClicks === 2) {\n if (legend._clickTimeout) clearTimeout(legend._clickTimeout);\n gd._legendMouseDownTime = 0;\n var dblClickVal = Events.triggerHandler(gd, \"plotly_legenddoubleclick\", evtData);\n if (dblClickVal !== false && clickVal !== false) handleClick(legendItem, gd, numClicks);\n }\n }\n function drawTexts(g, gd, legendObj) {\n var legendId = getId(legendObj);\n var legendItem = g.data()[0][0];\n var trace = legendItem.trace;\n var isPieLike = Registry.traceIs(trace, \"pie-like\");\n var isEditable = !legendObj._inHover && gd._context.edits.legendText && !isPieLike;\n var maxNameLength = legendObj._maxNameLength;\n var name2, font;\n if (legendItem.groupTitle) {\n name2 = legendItem.groupTitle.text;\n font = legendItem.groupTitle.font;\n } else {\n font = legendObj.font;\n if (!legendObj.entries) {\n name2 = isPieLike ? legendItem.label : trace.name;\n if (trace._meta) {\n name2 = Lib.templateString(name2, trace._meta);\n }\n } else {\n name2 = legendItem.text;\n }\n }\n var textEl = Lib.ensureSingle(g, \"text\", legendId + \"text\");\n textEl.attr(\"text-anchor\", \"start\").call(Drawing.font, font).text(isEditable ? ensureLength(name2, maxNameLength) : name2);\n var textGap = legendObj.indentation + legendObj.itemwidth + constants.itemGap * 2;\n svgTextUtils.positionText(textEl, textGap, 0);\n if (isEditable) {\n textEl.call(svgTextUtils.makeEditable, { gd, text: name2 }).call(textLayout, g, gd, legendObj).on(\"edit\", function(newName) {\n this.text(ensureLength(newName, maxNameLength)).call(textLayout, g, gd, legendObj);\n var fullInput = legendItem.trace._fullInput || {};\n var update = {};\n update.name = newName;\n if (fullInput._isShape) {\n return Registry.call(\"_guiRelayout\", gd, \"shapes[\" + trace.index + \"].name\", update.name);\n } else {\n return Registry.call(\"_guiRestyle\", gd, update, trace.index);\n }\n });\n } else {\n textLayout(textEl, g, gd, legendObj);\n }\n }\n function ensureLength(str, maxLength) {\n var targetLength = Math.max(4, maxLength);\n if (str && str.trim().length >= targetLength / 2) return str;\n str = str || \"\";\n for (var i = targetLength - str.length; i > 0; i--) str += \" \";\n return str;\n }\n function setupTraceToggle(g, gd, legendId) {\n var doubleClickDelay = gd._context.doubleClickDelay;\n var newMouseDownTime;\n var numClicks = 1;\n var traceToggle = Lib.ensureSingle(g, \"rect\", legendId + \"toggle\", function(s) {\n if (!gd._context.staticPlot) {\n s.style(\"cursor\", \"pointer\").attr(\"pointer-events\", \"all\");\n }\n s.call(Color2.fill, \"rgba(0,0,0,0)\");\n });\n if (gd._context.staticPlot) return;\n traceToggle.on(\"mousedown\", function() {\n newMouseDownTime = (/* @__PURE__ */ new Date()).getTime();\n if (newMouseDownTime - gd._legendMouseDownTime < doubleClickDelay) {\n numClicks += 1;\n } else {\n numClicks = 1;\n gd._legendMouseDownTime = newMouseDownTime;\n }\n });\n traceToggle.on(\"mouseup\", function() {\n if (gd._dragged || gd._editing) return;\n var legend = gd._fullLayout[legendId];\n if ((/* @__PURE__ */ new Date()).getTime() - gd._legendMouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n clickOrDoubleClick(gd, legend, g, numClicks, d3.event);\n });\n }\n function textLayout(s, g, gd, legendObj, aTitle) {\n if (legendObj._inHover) s.attr(\"data-notex\", true);\n svgTextUtils.convertToTspans(s, gd, function() {\n computeTextDimensions(g, gd, legendObj, aTitle);\n });\n }\n function computeTextDimensions(g, gd, legendObj, aTitle) {\n var legendItem = g.data()[0][0];\n if (!legendObj._inHover && legendItem && !legendItem.trace.showlegend) {\n g.remove();\n return;\n }\n var mathjaxGroup = g.select(\"g[class*=math-group]\");\n var mathjaxNode = mathjaxGroup.node();\n var legendId = getId(legendObj);\n if (!legendObj) {\n legendObj = gd._fullLayout[legendId];\n }\n var bw = legendObj.borderwidth;\n var font;\n if (aTitle === MAIN_TITLE) {\n font = legendObj.title.font;\n } else if (legendItem.groupTitle) {\n font = legendItem.groupTitle.font;\n } else {\n font = legendObj.font;\n }\n var lineHeight = font.size * LINE_SPACING;\n var height, width;\n if (mathjaxNode) {\n var mathjaxBB = Drawing.bBox(mathjaxNode);\n height = mathjaxBB.height;\n width = mathjaxBB.width;\n if (aTitle === MAIN_TITLE) {\n Drawing.setTranslate(mathjaxGroup, bw, bw + height * 0.75);\n } else {\n Drawing.setTranslate(mathjaxGroup, 0, height * 0.25);\n }\n } else {\n var cls = \".\" + legendId + (aTitle === MAIN_TITLE ? \"title\" : \"\") + \"text\";\n var textEl = g.select(cls);\n var textLines = svgTextUtils.lineCount(textEl);\n var textNode = textEl.node();\n height = lineHeight * textLines;\n width = textNode ? Drawing.bBox(textNode).width : 0;\n if (aTitle === MAIN_TITLE) {\n if (legendObj.title.side === \"left\") {\n width += constants.itemGap * 2;\n }\n svgTextUtils.positionText(\n textEl,\n bw + constants.titlePad,\n bw + lineHeight\n );\n } else {\n var x = constants.itemGap * 2 + legendObj.indentation + legendObj.itemwidth;\n if (legendItem.groupTitle) {\n x = constants.itemGap;\n width -= legendObj.indentation + legendObj.itemwidth;\n }\n svgTextUtils.positionText(\n textEl,\n x,\n -lineHeight * ((textLines - 1) / 2 - 0.3)\n );\n }\n }\n if (aTitle === MAIN_TITLE) {\n legendObj._titleWidth = width;\n legendObj._titleHeight = height;\n } else {\n legendItem.lineHeight = lineHeight;\n legendItem.height = Math.max(height, 16) + 3;\n legendItem.width = width;\n }\n }\n function getTitleSize(legendObj) {\n var w = 0;\n var h = 0;\n var side = legendObj.title.side;\n if (side) {\n if (side.indexOf(\"left\") !== -1) {\n w = legendObj._titleWidth;\n }\n if (side.indexOf(\"top\") !== -1) {\n h = legendObj._titleHeight;\n }\n }\n return [w, h];\n }\n function computeLegendDimensions(gd, groups, traces, legendObj) {\n var fullLayout = gd._fullLayout;\n var legendId = getId(legendObj);\n if (!legendObj) {\n legendObj = fullLayout[legendId];\n }\n var gs = fullLayout._size;\n var isVertical = helpers.isVertical(legendObj);\n var isGrouped = helpers.isGrouped(legendObj);\n var isFraction = legendObj.entrywidthmode === \"fraction\";\n var bw = legendObj.borderwidth;\n var bw2 = 2 * bw;\n var itemGap = constants.itemGap;\n var textGap = legendObj.indentation + legendObj.itemwidth + itemGap * 2;\n var endPad = 2 * (bw + itemGap);\n var yanchor = getYanchor(legendObj);\n var isBelowPlotArea = legendObj.y < 0 || legendObj.y === 0 && yanchor === \"top\";\n var isAbovePlotArea = legendObj.y > 1 || legendObj.y === 1 && yanchor === \"bottom\";\n var traceGroupGap = legendObj.tracegroupgap;\n var legendGroupWidths = {};\n legendObj._maxHeight = Math.max(\n isBelowPlotArea || isAbovePlotArea ? fullLayout.height / 2 : gs.h,\n 30\n );\n var toggleRectWidth = 0;\n legendObj._width = 0;\n legendObj._height = 0;\n var titleSize = getTitleSize(legendObj);\n if (isVertical) {\n traces.each(function(d) {\n var h = d[0].height;\n Drawing.setTranslate(\n this,\n bw + titleSize[0],\n bw + titleSize[1] + legendObj._height + h / 2 + itemGap\n );\n legendObj._height += h;\n legendObj._width = Math.max(legendObj._width, d[0].width);\n });\n toggleRectWidth = textGap + legendObj._width;\n legendObj._width += itemGap + textGap + bw2;\n legendObj._height += endPad;\n if (isGrouped) {\n groups.each(function(d, i) {\n Drawing.setTranslate(this, 0, i * legendObj.tracegroupgap);\n });\n legendObj._height += (legendObj._lgroupsLength - 1) * legendObj.tracegroupgap;\n }\n } else {\n var xanchor = getXanchor(legendObj);\n var isLeftOfPlotArea = legendObj.x < 0 || legendObj.x === 0 && xanchor === \"right\";\n var isRightOfPlotArea = legendObj.x > 1 || legendObj.x === 1 && xanchor === \"left\";\n var isBeyondPlotAreaY = isAbovePlotArea || isBelowPlotArea;\n var hw = fullLayout.width / 2;\n legendObj._maxWidth = Math.max(\n isLeftOfPlotArea ? isBeyondPlotAreaY && xanchor === \"left\" ? gs.l + gs.w : hw : isRightOfPlotArea ? isBeyondPlotAreaY && xanchor === \"right\" ? gs.r + gs.w : hw : gs.w,\n 2 * textGap\n );\n var maxItemWidth = 0;\n var combinedItemWidth = 0;\n traces.each(function(d) {\n var w = getTraceWidth(d, legendObj, textGap);\n maxItemWidth = Math.max(maxItemWidth, w);\n combinedItemWidth += w;\n });\n toggleRectWidth = null;\n var maxRowWidth = 0;\n if (isGrouped) {\n var maxGroupHeightInRow = 0;\n var groupOffsetX = 0;\n var groupOffsetY = 0;\n groups.each(function() {\n var maxWidthInGroup = 0;\n var offsetY2 = 0;\n d3.select(this).selectAll(\"g.traces\").each(function(d) {\n var w = getTraceWidth(d, legendObj, textGap);\n var h = d[0].height;\n Drawing.setTranslate(\n this,\n titleSize[0],\n titleSize[1] + bw + itemGap + h / 2 + offsetY2\n );\n offsetY2 += h;\n maxWidthInGroup = Math.max(maxWidthInGroup, w);\n legendGroupWidths[d[0].trace.legendgroup] = maxWidthInGroup;\n });\n var next = maxWidthInGroup + itemGap;\n if (\n // not on the first column already\n groupOffsetX > 0 && // goes beyound limit\n next + bw + groupOffsetX > legendObj._maxWidth\n ) {\n maxRowWidth = Math.max(maxRowWidth, groupOffsetX);\n groupOffsetX = 0;\n groupOffsetY += maxGroupHeightInRow + traceGroupGap;\n maxGroupHeightInRow = offsetY2;\n } else {\n maxGroupHeightInRow = Math.max(maxGroupHeightInRow, offsetY2);\n }\n Drawing.setTranslate(this, groupOffsetX, groupOffsetY);\n groupOffsetX += next;\n });\n legendObj._width = Math.max(maxRowWidth, groupOffsetX) + bw;\n legendObj._height = groupOffsetY + maxGroupHeightInRow + endPad;\n } else {\n var nTraces = traces.size();\n var oneRowLegend = combinedItemWidth + bw2 + (nTraces - 1) * itemGap < legendObj._maxWidth;\n var maxItemHeightInRow = 0;\n var offsetX = 0;\n var offsetY = 0;\n var rowWidth = 0;\n traces.each(function(d) {\n var h = d[0].height;\n var w = getTraceWidth(d, legendObj, textGap, isGrouped);\n var next = oneRowLegend ? w : maxItemWidth;\n if (!isFraction) {\n next += itemGap;\n }\n if (next + bw + offsetX - itemGap >= legendObj._maxWidth) {\n maxRowWidth = Math.max(maxRowWidth, rowWidth);\n offsetX = 0;\n offsetY += maxItemHeightInRow;\n legendObj._height += maxItemHeightInRow;\n maxItemHeightInRow = 0;\n }\n Drawing.setTranslate(\n this,\n titleSize[0] + bw + offsetX,\n titleSize[1] + bw + offsetY + h / 2 + itemGap\n );\n rowWidth = offsetX + w + itemGap;\n offsetX += next;\n maxItemHeightInRow = Math.max(maxItemHeightInRow, h);\n });\n if (oneRowLegend) {\n legendObj._width = offsetX + bw2;\n legendObj._height = maxItemHeightInRow + endPad;\n } else {\n legendObj._width = Math.max(maxRowWidth, rowWidth) + bw2;\n legendObj._height += maxItemHeightInRow + endPad;\n }\n }\n }\n legendObj._width = Math.ceil(\n Math.max(\n legendObj._width + titleSize[0],\n legendObj._titleWidth + 2 * (bw + constants.titlePad)\n )\n );\n legendObj._height = Math.ceil(\n Math.max(\n legendObj._height + titleSize[1],\n legendObj._titleHeight + 2 * (bw + constants.itemGap)\n )\n );\n legendObj._effHeight = Math.min(legendObj._height, legendObj._maxHeight);\n var edits = gd._context.edits;\n var isEditable = edits.legendText || edits.legendPosition;\n traces.each(function(d) {\n var traceToggle = d3.select(this).select(\".\" + legendId + \"toggle\");\n var h = d[0].height;\n var legendgroup = d[0].trace.legendgroup;\n var traceWidth = getTraceWidth(d, legendObj, textGap);\n if (isGrouped && legendgroup !== \"\") {\n traceWidth = legendGroupWidths[legendgroup];\n }\n var w = isEditable ? textGap : toggleRectWidth || traceWidth;\n if (!isVertical && !isFraction) {\n w += itemGap / 2;\n }\n Drawing.setRect(traceToggle, 0, -h / 2, w, h);\n });\n }\n function expandMargin(gd, legendId, lx, ly) {\n var fullLayout = gd._fullLayout;\n var legendObj = fullLayout[legendId];\n var xanchor = getXanchor(legendObj);\n var yanchor = getYanchor(legendObj);\n var isPaperX = legendObj.xref === \"paper\";\n var isPaperY = legendObj.yref === \"paper\";\n gd._fullLayout._reservedMargin[legendId] = {};\n var sideY = legendObj.y < 0.5 ? \"b\" : \"t\";\n var sideX = legendObj.x < 0.5 ? \"l\" : \"r\";\n var possibleReservedMargins = {\n r: fullLayout.width - lx,\n l: lx + legendObj._width,\n b: fullLayout.height - ly,\n t: ly + legendObj._effHeight\n };\n if (isPaperX && isPaperY) {\n return Plots.autoMargin(gd, legendId, {\n x: legendObj.x,\n y: legendObj.y,\n l: legendObj._width * FROM_TL[xanchor],\n r: legendObj._width * FROM_BR[xanchor],\n b: legendObj._effHeight * FROM_BR[yanchor],\n t: legendObj._effHeight * FROM_TL[yanchor]\n });\n } else if (isPaperX) {\n gd._fullLayout._reservedMargin[legendId][sideY] = possibleReservedMargins[sideY];\n } else if (isPaperY) {\n gd._fullLayout._reservedMargin[legendId][sideX] = possibleReservedMargins[sideX];\n } else {\n if (legendObj.orientation === \"v\") {\n gd._fullLayout._reservedMargin[legendId][sideX] = possibleReservedMargins[sideX];\n } else {\n gd._fullLayout._reservedMargin[legendId][sideY] = possibleReservedMargins[sideY];\n }\n }\n }\n function getXanchor(legendObj) {\n return Lib.isRightAnchor(legendObj) ? \"right\" : Lib.isCenterAnchor(legendObj) ? \"center\" : \"left\";\n }\n function getYanchor(legendObj) {\n return Lib.isBottomAnchor(legendObj) ? \"bottom\" : Lib.isMiddleAnchor(legendObj) ? \"middle\" : \"top\";\n }\n function getId(legendObj) {\n return legendObj._id || \"legend\";\n }\n }\n });\n\n // src/components/fx/hover.js\n var require_hover = __commonJS({\n \"src/components/fx/hover.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var Lib = require_lib();\n var pushUnique = Lib.pushUnique;\n var strTranslate = Lib.strTranslate;\n var strRotate = Lib.strRotate;\n var Events = require_events2();\n var svgTextUtils = require_svg_text_utils();\n var overrideCursor = require_override_cursor();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var dragElement = require_dragelement();\n var Axes = require_axes();\n var zindexSeparator = require_constants2().zindexSeparator;\n var Registry = require_registry();\n var helpers = require_helpers2();\n var constants = require_constants();\n var legendSupplyDefaults = require_defaults3();\n var legendDraw = require_draw();\n var YANGLE = constants.YANGLE;\n var YA_RADIANS = Math.PI * YANGLE / 180;\n var YFACTOR = 1 / Math.sin(YA_RADIANS);\n var YSHIFTX = Math.cos(YA_RADIANS);\n var YSHIFTY = Math.sin(YA_RADIANS);\n var HOVERARROWSIZE = constants.HOVERARROWSIZE;\n var HOVERTEXTPAD = constants.HOVERTEXTPAD;\n var multipleHoverPoints = {\n box: true,\n ohlc: true,\n violin: true,\n candlestick: true\n };\n var cartesianScatterPoints = {\n scatter: true,\n scattergl: true,\n splom: true\n };\n function distanceSort(a, b) {\n return a.distance - b.distance;\n }\n exports.hover = function hover(gd, evt, subplot, noHoverEvent) {\n gd = Lib.getGraphDiv(gd);\n var eventTarget = evt.target;\n Lib.throttle(\n gd._fullLayout._uid + constants.HOVERID,\n constants.HOVERMINTIME,\n function() {\n _hover(gd, evt, subplot, noHoverEvent, eventTarget);\n }\n );\n };\n exports.loneHover = function loneHover(hoverItems, opts) {\n var multiHover = true;\n if (!Array.isArray(hoverItems)) {\n multiHover = false;\n hoverItems = [hoverItems];\n }\n var gd = opts.gd;\n var gTop = getTopOffset(gd);\n var gLeft = getLeftOffset(gd);\n var pointsData = hoverItems.map(function(hoverItem) {\n var _x0 = hoverItem._x0 || hoverItem.x0 || hoverItem.x || 0;\n var _x1 = hoverItem._x1 || hoverItem.x1 || hoverItem.x || 0;\n var _y0 = hoverItem._y0 || hoverItem.y0 || hoverItem.y || 0;\n var _y1 = hoverItem._y1 || hoverItem.y1 || hoverItem.y || 0;\n var eventData = hoverItem.eventData;\n if (eventData) {\n var x0 = Math.min(_x0, _x1);\n var x1 = Math.max(_x0, _x1);\n var y0 = Math.min(_y0, _y1);\n var y1 = Math.max(_y0, _y1);\n var trace = hoverItem.trace;\n if (Registry.traceIs(trace, \"gl3d\")) {\n var container = gd._fullLayout[trace.scene]._scene.container;\n var dx = container.offsetLeft;\n var dy = container.offsetTop;\n x0 += dx;\n x1 += dx;\n y0 += dy;\n y1 += dy;\n }\n eventData.bbox = {\n x0: x0 + gLeft,\n x1: x1 + gLeft,\n y0: y0 + gTop,\n y1: y1 + gTop\n };\n if (opts.inOut_bbox) {\n opts.inOut_bbox.push(eventData.bbox);\n }\n } else {\n eventData = false;\n }\n return {\n color: hoverItem.color || Color2.defaultLine,\n x0: hoverItem.x0 || hoverItem.x || 0,\n x1: hoverItem.x1 || hoverItem.x || 0,\n y0: hoverItem.y0 || hoverItem.y || 0,\n y1: hoverItem.y1 || hoverItem.y || 0,\n xLabel: hoverItem.xLabel,\n yLabel: hoverItem.yLabel,\n zLabel: hoverItem.zLabel,\n text: hoverItem.text,\n name: hoverItem.name,\n idealAlign: hoverItem.idealAlign,\n // optional extra bits of styling\n borderColor: hoverItem.borderColor,\n fontFamily: hoverItem.fontFamily,\n fontSize: hoverItem.fontSize,\n fontColor: hoverItem.fontColor,\n fontWeight: hoverItem.fontWeight,\n fontStyle: hoverItem.fontStyle,\n fontVariant: hoverItem.fontVariant,\n nameLength: hoverItem.nameLength,\n textAlign: hoverItem.textAlign,\n // filler to make createHoverText happy\n trace: hoverItem.trace || {\n index: 0,\n hoverinfo: \"\"\n },\n xa: { _offset: 0 },\n ya: { _offset: 0 },\n index: 0,\n hovertemplate: hoverItem.hovertemplate || false,\n hovertemplateLabels: hoverItem.hovertemplateLabels || false,\n eventData\n };\n });\n var rotateLabels = false;\n var hoverText = createHoverText(pointsData, {\n gd,\n hovermode: \"closest\",\n rotateLabels,\n bgColor: opts.bgColor || Color2.background,\n container: d3.select(opts.container),\n outerContainer: opts.outerContainer || opts.container\n });\n var hoverLabel = hoverText.hoverLabels;\n var tooltipSpacing = 5;\n var lastBottomY = 0;\n var anchor = 0;\n hoverLabel.sort(function(a, b) {\n return a.y0 - b.y0;\n }).each(function(d, i) {\n var topY = d.y0 - d.by / 2;\n if (topY - tooltipSpacing < lastBottomY) {\n d.offset = lastBottomY - topY + tooltipSpacing;\n } else {\n d.offset = 0;\n }\n lastBottomY = topY + d.by + d.offset;\n if (i === opts.anchorIndex || 0) anchor = d.offset;\n }).each(function(d) {\n d.offset -= anchor;\n });\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n alignHoverText(hoverLabel, rotateLabels, scaleX, scaleY);\n return multiHover ? hoverLabel : hoverLabel.node();\n };\n function _hover(gd, evt, subplot, noHoverEvent, eventTarget) {\n if (!subplot) subplot = \"xy\";\n if (typeof subplot === \"string\") {\n subplot = subplot.split(zindexSeparator)[0];\n }\n var subplots = Array.isArray(subplot) ? subplot : [subplot];\n var spId;\n var fullLayout = gd._fullLayout;\n var hoversubplots = fullLayout.hoversubplots;\n var plots = fullLayout._plots || [];\n var plotinfo = plots[subplot];\n var hasCartesian = fullLayout._has(\"cartesian\");\n var hovermode = evt.hovermode || fullLayout.hovermode;\n var hovermodeHasX = (hovermode || \"\").charAt(0) === \"x\";\n var hovermodeHasY = (hovermode || \"\").charAt(0) === \"y\";\n var firstXaxis;\n var firstYaxis;\n if (hasCartesian && (hovermodeHasX || hovermodeHasY) && hoversubplots === \"axis\") {\n var subplotsLength = subplots.length;\n for (var p = 0; p < subplotsLength; p++) {\n spId = subplots[p];\n if (plots[spId]) {\n firstXaxis = Axes.getFromId(gd, spId, \"x\");\n firstYaxis = Axes.getFromId(gd, spId, \"y\");\n var subplotsWith = (hovermodeHasX ? firstXaxis : firstYaxis)._subplotsWith;\n if (subplotsWith && subplotsWith.length) {\n for (var q = 0; q < subplotsWith.length; q++) {\n pushUnique(subplots, subplotsWith[q]);\n }\n }\n }\n }\n }\n if (plotinfo && hoversubplots !== \"single\") {\n var overlayedSubplots = plotinfo.overlays.map(function(pi) {\n return pi.id;\n });\n subplots = subplots.concat(overlayedSubplots);\n }\n var len = subplots.length;\n var xaArray = new Array(len);\n var yaArray = new Array(len);\n var supportsCompare = false;\n for (var i = 0; i < len; i++) {\n spId = subplots[i];\n if (plots[spId]) {\n supportsCompare = true;\n xaArray[i] = plots[spId].xaxis;\n yaArray[i] = plots[spId].yaxis;\n } else if (fullLayout[spId] && fullLayout[spId]._subplot) {\n var _subplot = fullLayout[spId]._subplot;\n xaArray[i] = _subplot.xaxis;\n yaArray[i] = _subplot.yaxis;\n } else {\n Lib.warn(\"Unrecognized subplot: \" + spId);\n return;\n }\n }\n if (hovermode && !supportsCompare) hovermode = \"closest\";\n if ([\"x\", \"y\", \"closest\", \"x unified\", \"y unified\"].indexOf(hovermode) === -1 || !gd.calcdata || gd.querySelector(\".zoombox\") || gd._dragging) {\n return dragElement.unhoverRaw(gd, evt);\n }\n var hoverdistance = fullLayout.hoverdistance;\n if (hoverdistance === -1) hoverdistance = Infinity;\n var spikedistance = fullLayout.spikedistance;\n if (spikedistance === -1) spikedistance = Infinity;\n var hoverData = [];\n var searchData = [];\n var xvalArray, yvalArray;\n var itemnum, curvenum, cd, trace, subplotId, subploti, _mode, xval, yval, pointData, closedataPreviousLength;\n var spikePoints = {\n hLinePoint: null,\n vLinePoint: null\n };\n var hasOneHorizontalTrace = false;\n if (Array.isArray(evt)) {\n hovermode = \"array\";\n for (itemnum = 0; itemnum < evt.length; itemnum++) {\n cd = gd.calcdata[evt[itemnum].curveNumber || 0];\n if (cd) {\n trace = cd[0].trace;\n if (cd[0].trace.hoverinfo !== \"skip\") {\n searchData.push(cd);\n if (trace.orientation === \"h\") {\n hasOneHorizontalTrace = true;\n }\n }\n }\n }\n } else {\n var zorderedCalcdata = gd.calcdata.slice();\n zorderedCalcdata.sort(function(a, b) {\n var aZorder = a[0].trace.zorder || 0;\n var bZorder = b[0].trace.zorder || 0;\n return aZorder - bZorder;\n });\n for (curvenum = 0; curvenum < zorderedCalcdata.length; curvenum++) {\n cd = zorderedCalcdata[curvenum];\n trace = cd[0].trace;\n if (trace.hoverinfo !== \"skip\" && helpers.isTraceInSubplots(trace, subplots)) {\n searchData.push(cd);\n if (trace.orientation === \"h\") {\n hasOneHorizontalTrace = true;\n }\n }\n }\n var hasUserCalledHover = !eventTarget;\n var xpx, ypx;\n if (hasUserCalledHover) {\n if (\"xpx\" in evt) xpx = evt.xpx;\n else xpx = xaArray[0]._length / 2;\n if (\"ypx\" in evt) ypx = evt.ypx;\n else ypx = yaArray[0]._length / 2;\n } else {\n if (Events.triggerHandler(gd, \"plotly_beforehover\", evt) === false) {\n return;\n }\n var dbb = eventTarget.getBoundingClientRect();\n xpx = evt.clientX - dbb.left;\n ypx = evt.clientY - dbb.top;\n fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(fullLayout._invTransform)(xpx, ypx);\n xpx = transformedCoords[0];\n ypx = transformedCoords[1];\n if (xpx < 0 || xpx > xaArray[0]._length || ypx < 0 || ypx > yaArray[0]._length) {\n return dragElement.unhoverRaw(gd, evt);\n }\n }\n evt.pointerX = xpx + xaArray[0]._offset;\n evt.pointerY = ypx + yaArray[0]._offset;\n if (\"xval\" in evt) xvalArray = helpers.flat(subplots, evt.xval);\n else xvalArray = helpers.p2c(xaArray, xpx);\n if (\"yval\" in evt) yvalArray = helpers.flat(subplots, evt.yval);\n else yvalArray = helpers.p2c(yaArray, ypx);\n if (!isNumeric(xvalArray[0]) || !isNumeric(yvalArray[0])) {\n Lib.warn(\"Fx.hover failed\", evt, gd);\n return dragElement.unhoverRaw(gd, evt);\n }\n }\n var distance = Infinity;\n function findHoverPoints(customXVal, customYVal) {\n for (curvenum = 0; curvenum < searchData.length; curvenum++) {\n cd = searchData[curvenum];\n if (!cd || !cd[0] || !cd[0].trace) continue;\n trace = cd[0].trace;\n if (trace.visible !== true || trace._length === 0) continue;\n if ([\"carpet\", \"contourcarpet\"].indexOf(trace._module.name) !== -1) continue;\n _mode = hovermode;\n if (helpers.isUnifiedHover(_mode)) {\n _mode = _mode.charAt(0);\n }\n if (trace.type === \"splom\") {\n subploti = 0;\n subplotId = subplots[subploti];\n } else {\n subplotId = helpers.getSubplot(trace);\n subploti = subplots.indexOf(subplotId);\n }\n pointData = {\n // trace properties\n cd,\n trace,\n xa: xaArray[subploti],\n ya: yaArray[subploti],\n // max distances for hover and spikes - for points that want to show but do not\n // want to override other points, set distance/spikeDistance equal to max*Distance\n // and it will not get filtered out but it will be guaranteed to have a greater\n // distance than any point that calculated a real distance.\n maxHoverDistance: hoverdistance,\n maxSpikeDistance: spikedistance,\n // point properties - override all of these\n index: false,\n // point index in trace - only used by plotly.js hoverdata consumers\n distance: Math.min(distance, hoverdistance),\n // pixel distance or pseudo-distance\n // distance/pseudo-distance for spikes. This distance should always be calculated\n // as if in \"closest\" mode, and should only be set if this point should\n // generate a spike.\n spikeDistance: Infinity,\n // in some cases the spikes have different positioning from the hover label\n // they don't need x0/x1, just one position\n xSpike: void 0,\n ySpike: void 0,\n // where and how to display the hover label\n color: Color2.defaultLine,\n // trace color\n name: trace.name,\n x0: void 0,\n x1: void 0,\n y0: void 0,\n y1: void 0,\n xLabelVal: void 0,\n yLabelVal: void 0,\n zLabelVal: void 0,\n text: void 0\n };\n if (fullLayout[subplotId]) {\n pointData.subplot = fullLayout[subplotId]._subplot;\n }\n if (fullLayout._splomScenes && fullLayout._splomScenes[trace.uid]) {\n pointData.scene = fullLayout._splomScenes[trace.uid];\n }\n if (_mode === \"array\") {\n var selection = evt[curvenum];\n if (\"pointNumber\" in selection) {\n pointData.index = selection.pointNumber;\n _mode = \"closest\";\n } else {\n _mode = \"\";\n if (\"xval\" in selection) {\n xval = selection.xval;\n _mode = \"x\";\n }\n if (\"yval\" in selection) {\n yval = selection.yval;\n _mode = _mode ? \"closest\" : \"y\";\n }\n }\n } else if (customXVal !== void 0 && customYVal !== void 0) {\n xval = customXVal;\n yval = customYVal;\n } else {\n xval = xvalArray[subploti];\n yval = yvalArray[subploti];\n }\n closedataPreviousLength = hoverData.length;\n if (hoverdistance !== 0) {\n if (trace._module && trace._module.hoverPoints) {\n var newPoints = trace._module.hoverPoints(pointData, xval, yval, _mode, {\n finiteRange: true,\n hoverLayer: fullLayout._hoverlayer,\n // options for splom when hovering on same axis\n hoversubplots,\n gd\n });\n if (newPoints) {\n var newPoint;\n for (var newPointNum = 0; newPointNum < newPoints.length; newPointNum++) {\n newPoint = newPoints[newPointNum];\n if (isNumeric(newPoint.x0) && isNumeric(newPoint.y0)) {\n hoverData.push(cleanPoint(newPoint, hovermode));\n }\n }\n }\n } else {\n Lib.log(\"Unrecognized trace type in hover:\", trace);\n }\n }\n if (hovermode === \"closest\" && hoverData.length > closedataPreviousLength) {\n hoverData.splice(0, closedataPreviousLength);\n distance = hoverData[0].distance;\n }\n if (hasCartesian && spikedistance !== 0) {\n if (hoverData.length === 0) {\n pointData.distance = spikedistance;\n pointData.index = false;\n var closestPoints = trace._module.hoverPoints(pointData, xval, yval, \"closest\", {\n hoverLayer: fullLayout._hoverlayer\n });\n if (closestPoints) {\n closestPoints = closestPoints.filter(function(point) {\n return point.spikeDistance <= spikedistance;\n });\n }\n if (closestPoints && closestPoints.length) {\n var tmpPoint;\n var closestVPoints = closestPoints.filter(function(point) {\n return point.xa.showspikes && point.xa.spikesnap !== \"hovered data\";\n });\n if (closestVPoints.length) {\n var closestVPt = closestVPoints[0];\n if (isNumeric(closestVPt.x0) && isNumeric(closestVPt.y0)) {\n tmpPoint = fillSpikePoint(closestVPt);\n if (!spikePoints.vLinePoint || spikePoints.vLinePoint.spikeDistance > tmpPoint.spikeDistance) {\n spikePoints.vLinePoint = tmpPoint;\n }\n }\n }\n var closestHPoints = closestPoints.filter(function(point) {\n return point.ya.showspikes && point.ya.spikesnap !== \"hovered data\";\n });\n if (closestHPoints.length) {\n var closestHPt = closestHPoints[0];\n if (isNumeric(closestHPt.x0) && isNumeric(closestHPt.y0)) {\n tmpPoint = fillSpikePoint(closestHPt);\n if (!spikePoints.hLinePoint || spikePoints.hLinePoint.spikeDistance > tmpPoint.spikeDistance) {\n spikePoints.hLinePoint = tmpPoint;\n }\n }\n }\n }\n }\n }\n }\n }\n findHoverPoints();\n function selectClosestPoint(pointsData, spikedistance2, spikeOnWinning2) {\n var resultPoint = null;\n var minDistance = Infinity;\n var thisSpikeDistance;\n for (var i2 = 0; i2 < pointsData.length; i2++) {\n if (firstXaxis && firstXaxis._id !== pointsData[i2].xa._id) continue;\n if (firstYaxis && firstYaxis._id !== pointsData[i2].ya._id) continue;\n thisSpikeDistance = pointsData[i2].spikeDistance;\n if (spikeOnWinning2 && i2 === 0) thisSpikeDistance = -Infinity;\n if (thisSpikeDistance <= minDistance && thisSpikeDistance <= spikedistance2) {\n resultPoint = pointsData[i2];\n minDistance = thisSpikeDistance;\n }\n }\n return resultPoint;\n }\n function fillSpikePoint(point) {\n if (!point) return null;\n return {\n xa: point.xa,\n ya: point.ya,\n x: point.xSpike !== void 0 ? point.xSpike : (point.x0 + point.x1) / 2,\n y: point.ySpike !== void 0 ? point.ySpike : (point.y0 + point.y1) / 2,\n distance: point.distance,\n spikeDistance: point.spikeDistance,\n curveNumber: point.trace.index,\n color: point.color,\n pointNumber: point.index\n };\n }\n var spikelineOpts = {\n fullLayout,\n container: fullLayout._hoverlayer,\n event: evt\n };\n var oldspikepoints = gd._spikepoints;\n var newspikepoints = {\n vLinePoint: spikePoints.vLinePoint,\n hLinePoint: spikePoints.hLinePoint\n };\n gd._spikepoints = newspikepoints;\n var sortHoverData = function() {\n var hoverDataInSubplot = hoverData.filter(function(a) {\n return firstXaxis && firstXaxis._id === a.xa._id && (firstYaxis && firstYaxis._id === a.ya._id);\n });\n var hoverDataOutSubplot = hoverData.filter(function(a) {\n return !(firstXaxis && firstXaxis._id === a.xa._id && (firstYaxis && firstYaxis._id === a.ya._id));\n });\n hoverDataInSubplot.sort(distanceSort);\n hoverDataOutSubplot.sort(distanceSort);\n hoverData = hoverDataInSubplot.concat(hoverDataOutSubplot);\n hoverData = orderRangePoints(hoverData, hovermode);\n };\n sortHoverData();\n var axLetter = hovermode.charAt(0);\n var spikeOnWinning = (axLetter === \"x\" || axLetter === \"y\") && hoverData[0] && cartesianScatterPoints[hoverData[0].trace.type];\n if (hasCartesian && spikedistance !== 0) {\n if (hoverData.length !== 0) {\n var tmpHPointData = hoverData.filter(function(point) {\n return point.ya.showspikes;\n });\n var tmpHPoint = selectClosestPoint(tmpHPointData, spikedistance, spikeOnWinning);\n spikePoints.hLinePoint = fillSpikePoint(tmpHPoint);\n var tmpVPointData = hoverData.filter(function(point) {\n return point.xa.showspikes;\n });\n var tmpVPoint = selectClosestPoint(tmpVPointData, spikedistance, spikeOnWinning);\n spikePoints.vLinePoint = fillSpikePoint(tmpVPoint);\n }\n }\n if (hoverData.length === 0) {\n var result = dragElement.unhoverRaw(gd, evt);\n if (hasCartesian && (spikePoints.hLinePoint !== null || spikePoints.vLinePoint !== null)) {\n if (spikesChanged(oldspikepoints)) {\n createSpikelines(gd, spikePoints, spikelineOpts);\n }\n }\n return result;\n }\n if (hasCartesian) {\n if (spikesChanged(oldspikepoints)) {\n createSpikelines(gd, spikePoints, spikelineOpts);\n }\n }\n if (helpers.isXYhover(_mode) && hoverData[0].length !== 0 && hoverData[0].trace.type !== \"splom\") {\n var winningPoint = hoverData[0];\n if (multipleHoverPoints[winningPoint.trace.type]) {\n hoverData = hoverData.filter(function(d) {\n return d.trace.index === winningPoint.trace.index;\n });\n } else {\n hoverData = [winningPoint];\n }\n var initLen = hoverData.length;\n var winX = getCoord(\"x\", winningPoint, fullLayout);\n var winY = getCoord(\"y\", winningPoint, fullLayout);\n findHoverPoints(winX, winY);\n var finalPoints = [];\n var seen = {};\n var id = 0;\n var insert = function(newHd) {\n var key = multipleHoverPoints[newHd.trace.type] ? hoverDataKey(newHd) : newHd.trace.index;\n if (!seen[key]) {\n id++;\n seen[key] = id;\n finalPoints.push(newHd);\n } else {\n var oldId = seen[key] - 1;\n var oldHd = finalPoints[oldId];\n if (oldId > 0 && Math.abs(newHd.distance) < Math.abs(oldHd.distance)) {\n finalPoints[oldId] = newHd;\n }\n }\n };\n var k;\n for (k = 0; k < initLen; k++) {\n insert(hoverData[k]);\n }\n for (k = hoverData.length - 1; k > initLen - 1; k--) {\n insert(hoverData[k]);\n }\n hoverData = finalPoints;\n sortHoverData();\n }\n var oldhoverdata = gd._hoverdata;\n var newhoverdata = [];\n var gTop = getTopOffset(gd);\n var gLeft = getLeftOffset(gd);\n for (itemnum = 0; itemnum < hoverData.length; itemnum++) {\n var pt = hoverData[itemnum];\n var eventData = helpers.makeEventData(pt, pt.trace, pt.cd);\n if (pt.hovertemplate !== false) {\n var ht = false;\n if (pt.cd[pt.index] && pt.cd[pt.index].ht) {\n ht = pt.cd[pt.index].ht;\n }\n pt.hovertemplate = ht || pt.trace.hovertemplate || false;\n }\n if (pt.xa && pt.ya) {\n var _x0 = pt.x0 + pt.xa._offset;\n var _x1 = pt.x1 + pt.xa._offset;\n var _y0 = pt.y0 + pt.ya._offset;\n var _y1 = pt.y1 + pt.ya._offset;\n var x0 = Math.min(_x0, _x1);\n var x1 = Math.max(_x0, _x1);\n var y0 = Math.min(_y0, _y1);\n var y1 = Math.max(_y0, _y1);\n eventData.bbox = {\n x0: x0 + gLeft,\n x1: x1 + gLeft,\n y0: y0 + gTop,\n y1: y1 + gTop\n };\n }\n pt.eventData = [eventData];\n newhoverdata.push(eventData);\n }\n gd._hoverdata = newhoverdata;\n var rotateLabels = hovermode === \"y\" && (searchData.length > 1 || hoverData.length > 1) || hovermode === \"closest\" && hasOneHorizontalTrace && hoverData.length > 1;\n var bgColor = Color2.combine(\n fullLayout.plot_bgcolor || Color2.background,\n fullLayout.paper_bgcolor\n );\n var hoverText = createHoverText(hoverData, {\n gd,\n hovermode,\n rotateLabels,\n bgColor,\n container: fullLayout._hoverlayer,\n outerContainer: fullLayout._paper.node(),\n commonLabelOpts: fullLayout.hoverlabel,\n hoverdistance: fullLayout.hoverdistance\n });\n var hoverLabels = hoverText.hoverLabels;\n if (!helpers.isUnifiedHover(hovermode)) {\n hoverAvoidOverlaps(hoverLabels, rotateLabels, fullLayout, hoverText.commonLabelBoundingBox);\n alignHoverText(hoverLabels, rotateLabels, fullLayout._invScaleX, fullLayout._invScaleY);\n }\n if (eventTarget && eventTarget.tagName) {\n var hasClickToShow = Registry.getComponentMethod(\"annotations\", \"hasClickToShow\")(gd, newhoverdata);\n overrideCursor(d3.select(eventTarget), hasClickToShow ? \"pointer\" : \"\");\n }\n if (!eventTarget || noHoverEvent || !hoverChanged(gd, evt, oldhoverdata)) return;\n if (oldhoverdata) {\n gd.emit(\"plotly_unhover\", {\n event: evt,\n points: oldhoverdata\n });\n }\n gd.emit(\"plotly_hover\", {\n event: evt,\n points: gd._hoverdata,\n xaxes: xaArray,\n yaxes: yaArray,\n xvals: xvalArray,\n yvals: yvalArray\n });\n }\n function hoverDataKey(d) {\n return [d.trace.index, d.index, d.x0, d.y0, d.name, d.attr, d.xa ? d.xa._id : \"\", d.ya ? d.ya._id : \"\"].join(\",\");\n }\n var EXTRA_STRING_REGEX = /([\\s\\S]*)<\\/extra>/;\n function createHoverText(hoverData, opts) {\n var gd = opts.gd;\n var fullLayout = gd._fullLayout;\n var hovermode = opts.hovermode;\n var rotateLabels = opts.rotateLabels;\n var bgColor = opts.bgColor;\n var container = opts.container;\n var outerContainer = opts.outerContainer;\n var commonLabelOpts = opts.commonLabelOpts || {};\n if (hoverData.length === 0) return [[]];\n var fontFamily = opts.fontFamily || constants.HOVERFONT;\n var fontSize = opts.fontSize || constants.HOVERFONTSIZE;\n var fontWeight = opts.fontWeight || fullLayout.font.weight;\n var fontStyle = opts.fontStyle || fullLayout.font.style;\n var fontVariant = opts.fontVariant || fullLayout.font.variant;\n var fontTextcase = opts.fontTextcase || fullLayout.font.textcase;\n var fontLineposition = opts.fontLineposition || fullLayout.font.lineposition;\n var fontShadow = opts.fontShadow || fullLayout.font.shadow;\n var c0 = hoverData[0];\n var xa = c0.xa;\n var ya = c0.ya;\n var axLetter = hovermode.charAt(0);\n var axLabel = axLetter + \"Label\";\n var t02 = c0[axLabel];\n if (t02 === void 0 && xa.type === \"multicategory\") {\n for (var q = 0; q < hoverData.length; q++) {\n t02 = hoverData[q][axLabel];\n if (t02 !== void 0) break;\n }\n }\n var outerContainerBB = getBoundingClientRect(gd, outerContainer);\n var outerTop = outerContainerBB.top;\n var outerWidth = outerContainerBB.width;\n var outerHeight = outerContainerBB.height;\n var showCommonLabel = t02 !== void 0 && c0.distance <= opts.hoverdistance && (hovermode === \"x\" || hovermode === \"y\");\n if (showCommonLabel) {\n var allHaveZ = true;\n var i, traceHoverinfo;\n for (i = 0; i < hoverData.length; i++) {\n if (allHaveZ && hoverData[i].zLabel === void 0) allHaveZ = false;\n traceHoverinfo = hoverData[i].hoverinfo || hoverData[i].trace.hoverinfo;\n if (traceHoverinfo) {\n var parts = Array.isArray(traceHoverinfo) ? traceHoverinfo : traceHoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") === -1 && parts.indexOf(hovermode) === -1) {\n showCommonLabel = false;\n break;\n }\n }\n }\n if (allHaveZ) showCommonLabel = false;\n }\n var commonLabel = container.selectAll(\"g.axistext\").data(showCommonLabel ? [0] : []);\n commonLabel.enter().append(\"g\").classed(\"axistext\", true);\n commonLabel.exit().remove();\n var commonLabelRect = {\n minX: 0,\n maxX: 0,\n minY: 0,\n maxY: 0\n };\n commonLabel.each(function() {\n var label = d3.select(this);\n var lpath = Lib.ensureSingle(label, \"path\", \"\", function(s) {\n s.style({ \"stroke-width\": \"1px\" });\n });\n var ltext = Lib.ensureSingle(label, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var commonBgColor = commonLabelOpts.bgcolor || Color2.defaultLine;\n var commonStroke = commonLabelOpts.bordercolor || Color2.contrast(commonBgColor);\n var contrastColor = Color2.contrast(commonBgColor);\n var commonLabelOptsFont = commonLabelOpts.font;\n var commonLabelFont = {\n weight: commonLabelOptsFont.weight || fontWeight,\n style: commonLabelOptsFont.style || fontStyle,\n variant: commonLabelOptsFont.variant || fontVariant,\n textcase: commonLabelOptsFont.textcase || fontTextcase,\n lineposition: commonLabelOptsFont.lineposition || fontLineposition,\n shadow: commonLabelOptsFont.shadow || fontShadow,\n family: commonLabelOptsFont.family || fontFamily,\n size: commonLabelOptsFont.size || fontSize,\n color: commonLabelOptsFont.color || contrastColor\n };\n lpath.style({\n fill: commonBgColor,\n stroke: commonStroke\n });\n ltext.text(t02).call(Drawing.font, commonLabelFont).call(svgTextUtils.positionText, 0, 0).call(svgTextUtils.convertToTspans, gd);\n label.attr(\"transform\", \"\");\n var tbb2 = getBoundingClientRect(gd, ltext.node());\n var lx2, ly2;\n if (hovermode === \"x\") {\n var topsign = xa.side === \"top\" ? \"-\" : \"\";\n ltext.attr(\"text-anchor\", \"middle\").call(svgTextUtils.positionText, 0, xa.side === \"top\" ? outerTop - tbb2.bottom - HOVERARROWSIZE - HOVERTEXTPAD : outerTop - tbb2.top + HOVERARROWSIZE + HOVERTEXTPAD);\n lx2 = xa._offset + (c0.x0 + c0.x1) / 2;\n ly2 = ya._offset + (xa.side === \"top\" ? 0 : ya._length);\n var halfWidth = tbb2.width / 2 + HOVERTEXTPAD;\n var tooltipMidX = lx2;\n if (lx2 < halfWidth) {\n tooltipMidX = halfWidth;\n } else if (lx2 > fullLayout.width - halfWidth) {\n tooltipMidX = fullLayout.width - halfWidth;\n }\n lpath.attr(\"d\", \"M\" + (lx2 - tooltipMidX) + \",0L\" + (lx2 - tooltipMidX + HOVERARROWSIZE) + \",\" + topsign + HOVERARROWSIZE + \"H\" + halfWidth + \"v\" + topsign + (HOVERTEXTPAD * 2 + tbb2.height) + \"H\" + -halfWidth + \"V\" + topsign + HOVERARROWSIZE + \"H\" + (lx2 - tooltipMidX - HOVERARROWSIZE) + \"Z\");\n lx2 = tooltipMidX;\n commonLabelRect.minX = lx2 - halfWidth;\n commonLabelRect.maxX = lx2 + halfWidth;\n if (xa.side === \"top\") {\n commonLabelRect.minY = ly2 - (HOVERTEXTPAD * 2 + tbb2.height);\n commonLabelRect.maxY = ly2 - HOVERTEXTPAD;\n } else {\n commonLabelRect.minY = ly2 + HOVERTEXTPAD;\n commonLabelRect.maxY = ly2 + (HOVERTEXTPAD * 2 + tbb2.height);\n }\n } else {\n var anchor;\n var sgn;\n var leftsign;\n if (ya.side === \"right\") {\n anchor = \"start\";\n sgn = 1;\n leftsign = \"\";\n lx2 = xa._offset + xa._length;\n } else {\n anchor = \"end\";\n sgn = -1;\n leftsign = \"-\";\n lx2 = xa._offset;\n }\n ly2 = ya._offset + (c0.y0 + c0.y1) / 2;\n ltext.attr(\"text-anchor\", anchor);\n lpath.attr(\"d\", \"M0,0L\" + leftsign + HOVERARROWSIZE + \",\" + HOVERARROWSIZE + \"V\" + (HOVERTEXTPAD + tbb2.height / 2) + \"h\" + leftsign + (HOVERTEXTPAD * 2 + tbb2.width) + \"V-\" + (HOVERTEXTPAD + tbb2.height / 2) + \"H\" + leftsign + HOVERARROWSIZE + \"V-\" + HOVERARROWSIZE + \"Z\");\n commonLabelRect.minY = ly2 - (HOVERTEXTPAD + tbb2.height / 2);\n commonLabelRect.maxY = ly2 + (HOVERTEXTPAD + tbb2.height / 2);\n if (ya.side === \"right\") {\n commonLabelRect.minX = lx2 + HOVERARROWSIZE;\n commonLabelRect.maxX = lx2 + HOVERARROWSIZE + (HOVERTEXTPAD * 2 + tbb2.width);\n } else {\n commonLabelRect.minX = lx2 - HOVERARROWSIZE - (HOVERTEXTPAD * 2 + tbb2.width);\n commonLabelRect.maxX = lx2 - HOVERARROWSIZE;\n }\n var halfHeight = tbb2.height / 2;\n var lty = outerTop - tbb2.top - halfHeight;\n var clipId = \"clip\" + fullLayout._uid + \"commonlabel\" + ya._id;\n var clipPath;\n if (lx2 < tbb2.width + 2 * HOVERTEXTPAD + HOVERARROWSIZE) {\n clipPath = \"M-\" + (HOVERARROWSIZE + HOVERTEXTPAD) + \"-\" + halfHeight + \"h-\" + (tbb2.width - HOVERTEXTPAD) + \"V\" + halfHeight + \"h\" + (tbb2.width - HOVERTEXTPAD) + \"Z\";\n var ltx = tbb2.width - lx2 + HOVERTEXTPAD;\n svgTextUtils.positionText(ltext, ltx, lty);\n if (anchor === \"end\") {\n ltext.selectAll(\"tspan\").each(function() {\n var s = d3.select(this);\n var dummy = Drawing.tester.append(\"text\").text(s.text()).call(Drawing.font, commonLabelFont);\n var dummyBB = getBoundingClientRect(gd, dummy.node());\n if (Math.round(dummyBB.width) < Math.round(tbb2.width)) {\n s.attr(\"x\", ltx - dummyBB.width);\n }\n dummy.remove();\n });\n }\n } else {\n svgTextUtils.positionText(ltext, sgn * (HOVERTEXTPAD + HOVERARROWSIZE), lty);\n clipPath = null;\n }\n var textClip = fullLayout._topclips.selectAll(\"#\" + clipId).data(clipPath ? [0] : []);\n textClip.enter().append(\"clipPath\").attr(\"id\", clipId).append(\"path\");\n textClip.exit().remove();\n textClip.select(\"path\").attr(\"d\", clipPath);\n Drawing.setClipUrl(ltext, clipPath ? clipId : null, gd);\n }\n label.attr(\"transform\", strTranslate(lx2, ly2));\n });\n if (helpers.isUnifiedHover(hovermode)) {\n container.selectAll(\"g.hovertext\").remove();\n var groupedHoverData = hoverData.filter(function(data) {\n return data.hoverinfo !== \"none\";\n });\n if (groupedHoverData.length === 0) return [];\n var hoverlabel = fullLayout.hoverlabel;\n var font = hoverlabel.font;\n var mockLayoutIn = {\n showlegend: true,\n legend: {\n title: { text: t02, font },\n font,\n bgcolor: hoverlabel.bgcolor,\n bordercolor: hoverlabel.bordercolor,\n borderwidth: 1,\n tracegroupgap: 7,\n traceorder: fullLayout.legend ? fullLayout.legend.traceorder : void 0,\n orientation: \"v\"\n }\n };\n var mockLayoutOut = {\n font\n };\n legendSupplyDefaults(mockLayoutIn, mockLayoutOut, gd._fullData);\n var mockLegend = mockLayoutOut.legend;\n mockLegend.entries = [];\n for (var j = 0; j < groupedHoverData.length; j++) {\n var pt = groupedHoverData[j];\n if (pt.hoverinfo === \"none\") continue;\n var texts = getHoverLabelText(pt, true, hovermode, fullLayout, t02);\n var text = texts[0];\n var name2 = texts[1];\n pt.name = name2;\n if (name2 !== \"\") {\n pt.text = name2 + \" : \" + text;\n } else {\n pt.text = text;\n }\n var cd = pt.cd[pt.index];\n if (cd) {\n if (cd.mc) pt.mc = cd.mc;\n if (cd.mcc) pt.mc = cd.mcc;\n if (cd.mlc) pt.mlc = cd.mlc;\n if (cd.mlcc) pt.mlc = cd.mlcc;\n if (cd.mlw) pt.mlw = cd.mlw;\n if (cd.mrc) pt.mrc = cd.mrc;\n if (cd.dir) pt.dir = cd.dir;\n }\n pt._distinct = true;\n mockLegend.entries.push([pt]);\n }\n mockLegend.entries.sort(function(a, b) {\n return a[0].trace.index - b[0].trace.index;\n });\n mockLegend.layer = container;\n mockLegend._inHover = true;\n mockLegend._groupTitleFont = hoverlabel.grouptitlefont;\n legendDraw(gd, mockLegend);\n var legendContainer = container.select(\"g.legend\");\n var tbb = getBoundingClientRect(gd, legendContainer.node());\n var tWidth = tbb.width + 2 * HOVERTEXTPAD;\n var tHeight = tbb.height + 2 * HOVERTEXTPAD;\n var winningPoint = groupedHoverData[0];\n var avgX = (winningPoint.x0 + winningPoint.x1) / 2;\n var avgY = (winningPoint.y0 + winningPoint.y1) / 2;\n var pointWon = !(Registry.traceIs(winningPoint.trace, \"bar-like\") || Registry.traceIs(winningPoint.trace, \"box-violin\"));\n var lyBottom, lyTop;\n if (axLetter === \"y\") {\n if (pointWon) {\n lyTop = avgY - HOVERTEXTPAD;\n lyBottom = avgY + HOVERTEXTPAD;\n } else {\n lyTop = Math.min.apply(null, groupedHoverData.map(function(c) {\n return Math.min(c.y0, c.y1);\n }));\n lyBottom = Math.max.apply(null, groupedHoverData.map(function(c) {\n return Math.max(c.y0, c.y1);\n }));\n }\n } else {\n lyTop = lyBottom = Lib.mean(groupedHoverData.map(function(c) {\n return (c.y0 + c.y1) / 2;\n })) - tHeight / 2;\n }\n var lxRight, lxLeft;\n if (axLetter === \"x\") {\n if (pointWon) {\n lxRight = avgX + HOVERTEXTPAD;\n lxLeft = avgX - HOVERTEXTPAD;\n } else {\n lxRight = Math.max.apply(null, groupedHoverData.map(function(c) {\n return Math.max(c.x0, c.x1);\n }));\n lxLeft = Math.min.apply(null, groupedHoverData.map(function(c) {\n return Math.min(c.x0, c.x1);\n }));\n }\n } else {\n lxRight = lxLeft = Lib.mean(groupedHoverData.map(function(c) {\n return (c.x0 + c.x1) / 2;\n })) - tWidth / 2;\n }\n var xOffset = xa._offset;\n var yOffset = ya._offset;\n lyBottom += yOffset;\n lxRight += xOffset;\n lxLeft += xOffset - tWidth;\n lyTop += yOffset - tHeight;\n var lx, ly;\n if (lxRight + tWidth < outerWidth && lxRight >= 0) {\n lx = lxRight;\n } else if (lxLeft + tWidth < outerWidth && lxLeft >= 0) {\n lx = lxLeft;\n } else if (xOffset + tWidth < outerWidth) {\n lx = xOffset;\n } else {\n if (lxRight - avgX < avgX - lxLeft + tWidth) {\n lx = outerWidth - tWidth;\n } else {\n lx = 0;\n }\n }\n lx += HOVERTEXTPAD;\n if (lyBottom + tHeight < outerHeight && lyBottom >= 0) {\n ly = lyBottom;\n } else if (lyTop + tHeight < outerHeight && lyTop >= 0) {\n ly = lyTop;\n } else if (yOffset + tHeight < outerHeight) {\n ly = yOffset;\n } else {\n if (lyBottom - avgY < avgY - lyTop + tHeight) {\n ly = outerHeight - tHeight;\n } else {\n ly = 0;\n }\n }\n ly += HOVERTEXTPAD;\n legendContainer.attr(\"transform\", strTranslate(lx - 1, ly - 1));\n return legendContainer;\n }\n var hoverLabels = container.selectAll(\"g.hovertext\").data(hoverData, function(d) {\n return hoverDataKey(d);\n });\n hoverLabels.enter().append(\"g\").classed(\"hovertext\", true).each(function() {\n var g = d3.select(this);\n g.append(\"rect\").call(Color2.fill, Color2.addOpacity(bgColor, 0.8));\n g.append(\"text\").classed(\"name\", true);\n g.append(\"path\").style(\"stroke-width\", \"1px\");\n g.append(\"text\").classed(\"nums\", true).call(Drawing.font, {\n weight: fontWeight,\n style: fontStyle,\n variant: fontVariant,\n textcase: fontTextcase,\n lineposition: fontLineposition,\n shadow: fontShadow,\n family: fontFamily,\n size: fontSize\n });\n });\n hoverLabels.exit().remove();\n hoverLabels.each(function(d) {\n var g = d3.select(this).attr(\"transform\", \"\");\n var dColor = d.color;\n if (Array.isArray(dColor)) {\n dColor = dColor[d.eventData[0].pointNumber];\n }\n var color0 = d.bgcolor || dColor;\n var numsColor = Color2.combine(\n Color2.opacity(color0) ? color0 : Color2.defaultLine,\n bgColor\n );\n var nameColor = Color2.combine(\n Color2.opacity(dColor) ? dColor : Color2.defaultLine,\n bgColor\n );\n var contrastColor = d.borderColor || Color2.contrast(numsColor);\n var texts2 = getHoverLabelText(d, showCommonLabel, hovermode, fullLayout, t02, g);\n var text2 = texts2[0];\n var name3 = texts2[1];\n var tx = g.select(\"text.nums\").call(Drawing.font, {\n family: d.fontFamily || fontFamily,\n size: d.fontSize || fontSize,\n color: d.fontColor || contrastColor,\n weight: d.fontWeight || fontWeight,\n style: d.fontStyle || fontStyle,\n variant: d.fontVariant || fontVariant,\n textcase: d.fontTextcase || fontTextcase,\n lineposition: d.fontLineposition || fontLineposition,\n shadow: d.fontShadow || fontShadow\n }).text(text2).attr(\"data-notex\", 1).call(svgTextUtils.positionText, 0, 0).call(svgTextUtils.convertToTspans, gd);\n var tx2 = g.select(\"text.name\");\n var tx2width = 0;\n var tx2height = 0;\n if (name3 && name3 !== text2) {\n tx2.call(Drawing.font, {\n family: d.fontFamily || fontFamily,\n size: d.fontSize || fontSize,\n color: nameColor,\n weight: d.fontWeight || fontWeight,\n style: d.fontStyle || fontStyle,\n variant: d.fontVariant || fontVariant,\n textcase: d.fontTextcase || fontTextcase,\n lineposition: d.fontLineposition || fontLineposition,\n shadow: d.fontShadow || fontShadow\n }).text(name3).attr(\"data-notex\", 1).call(svgTextUtils.positionText, 0, 0).call(svgTextUtils.convertToTspans, gd);\n var t2bb = getBoundingClientRect(gd, tx2.node());\n tx2width = t2bb.width + 2 * HOVERTEXTPAD;\n tx2height = t2bb.height + 2 * HOVERTEXTPAD;\n } else {\n tx2.remove();\n g.select(\"rect\").remove();\n }\n g.select(\"path\").style({\n fill: numsColor,\n stroke: contrastColor\n });\n var htx = d.xa._offset + (d.x0 + d.x1) / 2;\n var hty = d.ya._offset + (d.y0 + d.y1) / 2;\n var dx = Math.abs(d.x1 - d.x0);\n var dy = Math.abs(d.y1 - d.y0);\n var tbb2 = getBoundingClientRect(gd, tx.node());\n var tbbWidth = tbb2.width / fullLayout._invScaleX;\n var tbbHeight = tbb2.height / fullLayout._invScaleY;\n d.ty0 = (outerTop - tbb2.top) / fullLayout._invScaleY;\n d.bx = tbbWidth + 2 * HOVERTEXTPAD;\n d.by = Math.max(tbbHeight + 2 * HOVERTEXTPAD, tx2height);\n d.anchor = \"start\";\n d.txwidth = tbbWidth;\n d.tx2width = tx2width;\n d.offset = 0;\n var txTotalWidth = (tbbWidth + HOVERARROWSIZE + HOVERTEXTPAD + tx2width) * fullLayout._invScaleX;\n var anchorStartOK, anchorEndOK;\n if (rotateLabels) {\n d.pos = htx;\n anchorStartOK = hty + dy / 2 + txTotalWidth <= outerHeight;\n anchorEndOK = hty - dy / 2 - txTotalWidth >= 0;\n if ((d.idealAlign === \"top\" || !anchorStartOK) && anchorEndOK) {\n hty -= dy / 2;\n d.anchor = \"end\";\n } else if (anchorStartOK) {\n hty += dy / 2;\n d.anchor = \"start\";\n } else {\n d.anchor = \"middle\";\n }\n d.crossPos = hty;\n } else {\n d.pos = hty;\n anchorStartOK = htx + dx / 2 + txTotalWidth <= outerWidth;\n anchorEndOK = htx - dx / 2 - txTotalWidth >= 0;\n if ((d.idealAlign === \"left\" || !anchorStartOK) && anchorEndOK) {\n htx -= dx / 2;\n d.anchor = \"end\";\n } else if (anchorStartOK) {\n htx += dx / 2;\n d.anchor = \"start\";\n } else {\n d.anchor = \"middle\";\n var txHalfWidth = txTotalWidth / 2;\n var overflowR = htx + txHalfWidth - outerWidth;\n var overflowL = htx - txHalfWidth;\n if (overflowR > 0) htx -= overflowR;\n if (overflowL < 0) htx += -overflowL;\n }\n d.crossPos = htx;\n }\n tx.attr(\"text-anchor\", d.anchor);\n if (tx2width) tx2.attr(\"text-anchor\", d.anchor);\n g.attr(\"transform\", strTranslate(htx, hty) + (rotateLabels ? strRotate(YANGLE) : \"\"));\n });\n return {\n hoverLabels,\n commonLabelBoundingBox: commonLabelRect\n };\n }\n function getHoverLabelText(d, showCommonLabel, hovermode, fullLayout, t02, g) {\n var name2 = \"\";\n var text = \"\";\n if (d.nameOverride !== void 0) d.name = d.nameOverride;\n if (d.name) {\n if (d.trace._meta) {\n d.name = Lib.templateString(d.name, d.trace._meta);\n }\n name2 = plainText(d.name, d.nameLength);\n }\n var h0 = hovermode.charAt(0);\n var h1 = h0 === \"x\" ? \"y\" : \"x\";\n if (d.zLabel !== void 0) {\n if (d.xLabel !== void 0) text += \"x: \" + d.xLabel + \"
\";\n if (d.yLabel !== void 0) text += \"y: \" + d.yLabel + \"
\";\n if (d.trace.type !== \"choropleth\" && d.trace.type !== \"choroplethmapbox\" && d.trace.type !== \"choroplethmap\") {\n text += (text ? \"z: \" : \"\") + d.zLabel;\n }\n } else if (showCommonLabel && d[h0 + \"Label\"] === t02) {\n text = d[h1 + \"Label\"] || \"\";\n } else if (d.xLabel === void 0) {\n if (d.yLabel !== void 0 && d.trace.type !== \"scattercarpet\") {\n text = d.yLabel;\n }\n } else if (d.yLabel === void 0) text = d.xLabel;\n else text = \"(\" + d.xLabel + \", \" + d.yLabel + \")\";\n if ((d.text || d.text === 0) && !Array.isArray(d.text)) {\n text += (text ? \"
\" : \"\") + d.text;\n }\n if (d.extraText !== void 0) text += (text ? \"
\" : \"\") + d.extraText;\n if (g && text === \"\" && !d.hovertemplate) {\n if (name2 === \"\") g.remove();\n text = name2;\n }\n var hovertemplate = d.hovertemplate || false;\n if (hovertemplate) {\n var labels = d.hovertemplateLabels || d;\n if (d[h0 + \"Label\"] !== t02) {\n labels[h0 + \"other\"] = labels[h0 + \"Val\"];\n labels[h0 + \"otherLabel\"] = labels[h0 + \"Label\"];\n }\n text = Lib.hovertemplateString(\n hovertemplate,\n labels,\n fullLayout._d3locale,\n d.eventData[0] || {},\n d.trace._meta\n );\n text = text.replace(EXTRA_STRING_REGEX, function(match, extra) {\n name2 = plainText(extra, d.nameLength);\n return \"\";\n });\n }\n return [text, name2];\n }\n function hoverAvoidOverlaps(hoverLabels, rotateLabels, fullLayout, commonLabelBoundingBox) {\n var axKey = rotateLabels ? \"xa\" : \"ya\";\n var crossAxKey = rotateLabels ? \"ya\" : \"xa\";\n var nummoves = 0;\n var axSign = 1;\n var nLabels = hoverLabels.size();\n var pointgroups = new Array(nLabels);\n var k = 0;\n var axisLabelMinX = commonLabelBoundingBox.minX;\n var axisLabelMaxX = commonLabelBoundingBox.maxX;\n var axisLabelMinY = commonLabelBoundingBox.minY;\n var axisLabelMaxY = commonLabelBoundingBox.maxY;\n var pX = function(x) {\n return x * fullLayout._invScaleX;\n };\n var pY = function(y) {\n return y * fullLayout._invScaleY;\n };\n hoverLabels.each(function(d) {\n var ax = d[axKey];\n var crossAx = d[crossAxKey];\n var axIsX = ax._id.charAt(0) === \"x\";\n var rng = ax.range;\n if (k === 0 && rng && rng[0] > rng[1] !== axIsX) {\n axSign = -1;\n }\n var pmin = 0;\n var pmax = axIsX ? fullLayout.width : fullLayout.height;\n if (fullLayout.hovermode === \"x\" || fullLayout.hovermode === \"y\") {\n var offsets = getHoverLabelOffsets(d, rotateLabels);\n var anchor = d.anchor;\n var horzSign = anchor === \"end\" ? -1 : 1;\n var labelMin;\n var labelMax;\n if (anchor === \"middle\") {\n labelMin = d.crossPos + (axIsX ? pY(offsets.y - d.by / 2) : pX(d.bx / 2 + d.tx2width / 2));\n labelMax = labelMin + (axIsX ? pY(d.by) : pX(d.bx));\n } else {\n if (axIsX) {\n labelMin = d.crossPos + pY(HOVERARROWSIZE + offsets.y) - pY(d.by / 2 - HOVERARROWSIZE);\n labelMax = labelMin + pY(d.by);\n } else {\n var startX = pX(horzSign * HOVERARROWSIZE + offsets.x);\n var endX = startX + pX(horzSign * d.bx);\n labelMin = d.crossPos + Math.min(startX, endX);\n labelMax = d.crossPos + Math.max(startX, endX);\n }\n }\n if (axIsX) {\n if (axisLabelMinY !== void 0 && axisLabelMaxY !== void 0 && Math.min(labelMax, axisLabelMaxY) - Math.max(labelMin, axisLabelMinY) > 1) {\n if (crossAx.side === \"left\") {\n pmin = crossAx._mainLinePosition;\n pmax = fullLayout.width;\n } else {\n pmax = crossAx._mainLinePosition;\n }\n }\n } else {\n if (axisLabelMinX !== void 0 && axisLabelMaxX !== void 0 && Math.min(labelMax, axisLabelMaxX) - Math.max(labelMin, axisLabelMinX) > 1) {\n if (crossAx.side === \"top\") {\n pmin = crossAx._mainLinePosition;\n pmax = fullLayout.height;\n } else {\n pmax = crossAx._mainLinePosition;\n }\n }\n }\n }\n pointgroups[k++] = [{\n datum: d,\n traceIndex: d.trace.index,\n dp: 0,\n pos: d.pos,\n posref: d.posref,\n size: d.by * (axIsX ? YFACTOR : 1) / 2,\n pmin,\n pmax\n }];\n });\n pointgroups.sort(function(a, b) {\n return a[0].posref - b[0].posref || // for equal positions, sort trace indices increasing or decreasing\n // depending on whether the axis is reversed or not... so stacked\n // traces will generally keep their order even if one trace adds\n // nothing to the stack.\n axSign * (b[0].traceIndex - a[0].traceIndex);\n });\n var donepositioning, topOverlap, bottomOverlap, i, j, pti, sumdp;\n function constrainGroup(grp2) {\n var minPt = grp2[0];\n var maxPt = grp2[grp2.length - 1];\n topOverlap = minPt.pmin - minPt.pos - minPt.dp + minPt.size;\n bottomOverlap = maxPt.pos + maxPt.dp + maxPt.size - minPt.pmax;\n if (topOverlap > 0.01) {\n for (j = grp2.length - 1; j >= 0; j--) grp2[j].dp += topOverlap;\n donepositioning = false;\n }\n if (bottomOverlap < 0.01) return;\n if (topOverlap < -0.01) {\n for (j = grp2.length - 1; j >= 0; j--) grp2[j].dp -= bottomOverlap;\n donepositioning = false;\n }\n if (!donepositioning) return;\n var deleteCount = 0;\n for (i = 0; i < grp2.length; i++) {\n pti = grp2[i];\n if (pti.pos + pti.dp + pti.size > minPt.pmax) deleteCount++;\n }\n for (i = grp2.length - 1; i >= 0; i--) {\n if (deleteCount <= 0) break;\n pti = grp2[i];\n if (pti.pos > minPt.pmax - 1) {\n pti.del = true;\n deleteCount--;\n }\n }\n for (i = 0; i < grp2.length; i++) {\n if (deleteCount <= 0) break;\n pti = grp2[i];\n if (pti.pos < minPt.pmin + 1) {\n pti.del = true;\n deleteCount--;\n bottomOverlap = pti.size * 2;\n for (j = grp2.length - 1; j >= 0; j--) grp2[j].dp -= bottomOverlap;\n }\n }\n for (i = grp2.length - 1; i >= 0; i--) {\n if (deleteCount <= 0) break;\n pti = grp2[i];\n if (pti.pos + pti.dp + pti.size > minPt.pmax) {\n pti.del = true;\n deleteCount--;\n }\n }\n }\n while (!donepositioning && nummoves <= nLabels) {\n nummoves++;\n donepositioning = true;\n i = 0;\n while (i < pointgroups.length - 1) {\n var g0 = pointgroups[i];\n var g1 = pointgroups[i + 1];\n var p0 = g0[g0.length - 1];\n var p1 = g1[0];\n topOverlap = p0.pos + p0.dp + p0.size - p1.pos - p1.dp + p1.size;\n if (topOverlap > 0.01) {\n for (j = g1.length - 1; j >= 0; j--) g1[j].dp += topOverlap;\n g0.push.apply(g0, g1);\n pointgroups.splice(i + 1, 1);\n sumdp = 0;\n for (j = g0.length - 1; j >= 0; j--) sumdp += g0[j].dp;\n bottomOverlap = sumdp / g0.length;\n for (j = g0.length - 1; j >= 0; j--) g0[j].dp -= bottomOverlap;\n donepositioning = false;\n } else i++;\n }\n pointgroups.forEach(constrainGroup);\n }\n for (i = pointgroups.length - 1; i >= 0; i--) {\n var grp = pointgroups[i];\n for (j = grp.length - 1; j >= 0; j--) {\n var pt = grp[j];\n var hoverPt = pt.datum;\n hoverPt.offset = pt.dp;\n hoverPt.del = pt.del;\n }\n }\n }\n function getHoverLabelOffsets(hoverLabel, rotateLabels) {\n var offsetX = 0;\n var offsetY = hoverLabel.offset;\n if (rotateLabels) {\n offsetY *= -YSHIFTY;\n offsetX = hoverLabel.offset * YSHIFTX;\n }\n return {\n x: offsetX,\n y: offsetY\n };\n }\n function getTextShiftX(hoverLabel) {\n var alignShift = { start: 1, end: -1, middle: 0 }[hoverLabel.anchor];\n var textShiftX = alignShift * (HOVERARROWSIZE + HOVERTEXTPAD);\n var text2ShiftX = textShiftX + alignShift * (hoverLabel.txwidth + HOVERTEXTPAD);\n var isMiddle = hoverLabel.anchor === \"middle\";\n if (isMiddle) {\n textShiftX -= hoverLabel.tx2width / 2;\n text2ShiftX += hoverLabel.txwidth / 2 + HOVERTEXTPAD;\n }\n return {\n alignShift,\n textShiftX,\n text2ShiftX\n };\n }\n function alignHoverText(hoverLabels, rotateLabels, scaleX, scaleY) {\n var pX = function(x) {\n return x * scaleX;\n };\n var pY = function(y) {\n return y * scaleY;\n };\n hoverLabels.each(function(d) {\n var g = d3.select(this);\n if (d.del) return g.remove();\n var tx = g.select(\"text.nums\");\n var anchor = d.anchor;\n var horzSign = anchor === \"end\" ? -1 : 1;\n var shiftX = getTextShiftX(d);\n var offsets = getHoverLabelOffsets(d, rotateLabels);\n var offsetX = offsets.x;\n var offsetY = offsets.y;\n var isMiddle = anchor === \"middle\";\n g.select(\"path\").attr(\"d\", isMiddle ? (\n // middle aligned: rect centered on data\n \"M-\" + pX(d.bx / 2 + d.tx2width / 2) + \",\" + pY(offsetY - d.by / 2) + \"h\" + pX(d.bx) + \"v\" + pY(d.by) + \"h-\" + pX(d.bx) + \"Z\"\n ) : (\n // left or right aligned: side rect with arrow to data\n \"M0,0L\" + pX(horzSign * HOVERARROWSIZE + offsetX) + \",\" + pY(HOVERARROWSIZE + offsetY) + \"v\" + pY(d.by / 2 - HOVERARROWSIZE) + \"h\" + pX(horzSign * d.bx) + \"v-\" + pY(d.by) + \"H\" + pX(horzSign * HOVERARROWSIZE + offsetX) + \"V\" + pY(offsetY - HOVERARROWSIZE) + \"Z\"\n ));\n var posX = offsetX + shiftX.textShiftX;\n var posY = offsetY + d.ty0 - d.by / 2 + HOVERTEXTPAD;\n var textAlign = d.textAlign || \"auto\";\n if (textAlign !== \"auto\") {\n if (textAlign === \"left\" && anchor !== \"start\") {\n tx.attr(\"text-anchor\", \"start\");\n posX = isMiddle ? -d.bx / 2 - d.tx2width / 2 + HOVERTEXTPAD : -d.bx - HOVERTEXTPAD;\n } else if (textAlign === \"right\" && anchor !== \"end\") {\n tx.attr(\"text-anchor\", \"end\");\n posX = isMiddle ? d.bx / 2 - d.tx2width / 2 - HOVERTEXTPAD : d.bx + HOVERTEXTPAD;\n }\n }\n tx.call(svgTextUtils.positionText, pX(posX), pY(posY));\n if (d.tx2width) {\n g.select(\"text.name\").call(\n svgTextUtils.positionText,\n pX(shiftX.text2ShiftX + shiftX.alignShift * HOVERTEXTPAD + offsetX),\n pY(offsetY + d.ty0 - d.by / 2 + HOVERTEXTPAD)\n );\n g.select(\"rect\").call(\n Drawing.setRect,\n pX(shiftX.text2ShiftX + (shiftX.alignShift - 1) * d.tx2width / 2 + offsetX),\n pY(offsetY - d.by / 2 - 1),\n pX(d.tx2width),\n pY(d.by + 2)\n );\n }\n });\n }\n function cleanPoint(d, hovermode) {\n var index = d.index;\n var trace = d.trace || {};\n var cd0 = d.cd[0];\n var cd = d.cd[index] || {};\n function pass(v) {\n return v || isNumeric(v) && v === 0;\n }\n var getVal = Array.isArray(index) ? function(calcKey, traceKey) {\n var v = Lib.castOption(cd0, index, calcKey);\n return pass(v) ? v : Lib.extractOption({}, trace, \"\", traceKey);\n } : function(calcKey, traceKey) {\n return Lib.extractOption(cd, trace, calcKey, traceKey);\n };\n function fill(key, calcKey, traceKey) {\n var val = getVal(calcKey, traceKey);\n if (pass(val)) d[key] = val;\n }\n fill(\"hoverinfo\", \"hi\", \"hoverinfo\");\n fill(\"bgcolor\", \"hbg\", \"hoverlabel.bgcolor\");\n fill(\"borderColor\", \"hbc\", \"hoverlabel.bordercolor\");\n fill(\"fontFamily\", \"htf\", \"hoverlabel.font.family\");\n fill(\"fontSize\", \"hts\", \"hoverlabel.font.size\");\n fill(\"fontColor\", \"htc\", \"hoverlabel.font.color\");\n fill(\"fontWeight\", \"htw\", \"hoverlabel.font.weight\");\n fill(\"fontStyle\", \"hty\", \"hoverlabel.font.style\");\n fill(\"fontVariant\", \"htv\", \"hoverlabel.font.variant\");\n fill(\"nameLength\", \"hnl\", \"hoverlabel.namelength\");\n fill(\"textAlign\", \"hta\", \"hoverlabel.align\");\n d.posref = hovermode === \"y\" || hovermode === \"closest\" && trace.orientation === \"h\" ? d.xa._offset + (d.x0 + d.x1) / 2 : d.ya._offset + (d.y0 + d.y1) / 2;\n d.x0 = Lib.constrain(d.x0, 0, d.xa._length);\n d.x1 = Lib.constrain(d.x1, 0, d.xa._length);\n d.y0 = Lib.constrain(d.y0, 0, d.ya._length);\n d.y1 = Lib.constrain(d.y1, 0, d.ya._length);\n if (d.xLabelVal !== void 0) {\n d.xLabel = \"xLabel\" in d ? d.xLabel : Axes.hoverLabelText(d.xa, d.xLabelVal, trace.xhoverformat);\n d.xVal = d.xa.c2d(d.xLabelVal);\n }\n if (d.yLabelVal !== void 0) {\n d.yLabel = \"yLabel\" in d ? d.yLabel : Axes.hoverLabelText(d.ya, d.yLabelVal, trace.yhoverformat);\n d.yVal = d.ya.c2d(d.yLabelVal);\n }\n if (d.zLabelVal !== void 0 && d.zLabel === void 0) {\n d.zLabel = String(d.zLabelVal);\n }\n if (!isNaN(d.xerr) && !(d.xa.type === \"log\" && d.xerr <= 0)) {\n var xeText = Axes.tickText(d.xa, d.xa.c2l(d.xerr), \"hover\").text;\n if (d.xerrneg !== void 0) {\n d.xLabel += \" +\" + xeText + \" / -\" + Axes.tickText(d.xa, d.xa.c2l(d.xerrneg), \"hover\").text;\n } else d.xLabel += \" \\xB1 \" + xeText;\n if (hovermode === \"x\") d.distance += 1;\n }\n if (!isNaN(d.yerr) && !(d.ya.type === \"log\" && d.yerr <= 0)) {\n var yeText = Axes.tickText(d.ya, d.ya.c2l(d.yerr), \"hover\").text;\n if (d.yerrneg !== void 0) {\n d.yLabel += \" +\" + yeText + \" / -\" + Axes.tickText(d.ya, d.ya.c2l(d.yerrneg), \"hover\").text;\n } else d.yLabel += \" \\xB1 \" + yeText;\n if (hovermode === \"y\") d.distance += 1;\n }\n var infomode = d.hoverinfo || d.trace.hoverinfo;\n if (infomode && infomode !== \"all\") {\n infomode = Array.isArray(infomode) ? infomode : infomode.split(\"+\");\n if (infomode.indexOf(\"x\") === -1) d.xLabel = void 0;\n if (infomode.indexOf(\"y\") === -1) d.yLabel = void 0;\n if (infomode.indexOf(\"z\") === -1) d.zLabel = void 0;\n if (infomode.indexOf(\"text\") === -1) d.text = void 0;\n if (infomode.indexOf(\"name\") === -1) d.name = void 0;\n }\n return d;\n }\n function createSpikelines(gd, closestPoints, opts) {\n var container = opts.container;\n var fullLayout = opts.fullLayout;\n var gs = fullLayout._size;\n var evt = opts.event;\n var showY = !!closestPoints.hLinePoint;\n var showX = !!closestPoints.vLinePoint;\n var xa, ya;\n container.selectAll(\".spikeline\").remove();\n if (!(showX || showY)) return;\n var contrastColor = Color2.combine(fullLayout.plot_bgcolor, fullLayout.paper_bgcolor);\n if (showY) {\n var hLinePoint = closestPoints.hLinePoint;\n var hLinePointX, hLinePointY;\n xa = hLinePoint && hLinePoint.xa;\n ya = hLinePoint && hLinePoint.ya;\n var ySnap = ya.spikesnap;\n if (ySnap === \"cursor\") {\n hLinePointX = evt.pointerX;\n hLinePointY = evt.pointerY;\n } else {\n hLinePointX = xa._offset + hLinePoint.x;\n hLinePointY = ya._offset + hLinePoint.y;\n }\n var dfltHLineColor = tinycolor.readability(hLinePoint.color, contrastColor) < 1.5 ? Color2.contrast(contrastColor) : hLinePoint.color;\n var yMode = ya.spikemode;\n var yThickness = ya.spikethickness;\n var yColor = ya.spikecolor || dfltHLineColor;\n var xEdge = Axes.getPxPosition(gd, ya);\n var xBase, xEndSpike;\n if (yMode.indexOf(\"toaxis\") !== -1 || yMode.indexOf(\"across\") !== -1) {\n if (yMode.indexOf(\"toaxis\") !== -1) {\n xBase = xEdge;\n xEndSpike = hLinePointX;\n }\n if (yMode.indexOf(\"across\") !== -1) {\n var xAcross0 = ya._counterDomainMin;\n var xAcross1 = ya._counterDomainMax;\n if (ya.anchor === \"free\") {\n xAcross0 = Math.min(xAcross0, ya.position);\n xAcross1 = Math.max(xAcross1, ya.position);\n }\n xBase = gs.l + xAcross0 * gs.w;\n xEndSpike = gs.l + xAcross1 * gs.w;\n }\n container.insert(\"line\", \":first-child\").attr({\n x1: xBase,\n x2: xEndSpike,\n y1: hLinePointY,\n y2: hLinePointY,\n \"stroke-width\": yThickness,\n stroke: yColor,\n \"stroke-dasharray\": Drawing.dashStyle(ya.spikedash, yThickness)\n }).classed(\"spikeline\", true).classed(\"crisp\", true);\n container.insert(\"line\", \":first-child\").attr({\n x1: xBase,\n x2: xEndSpike,\n y1: hLinePointY,\n y2: hLinePointY,\n \"stroke-width\": yThickness + 2,\n stroke: contrastColor\n }).classed(\"spikeline\", true).classed(\"crisp\", true);\n }\n if (yMode.indexOf(\"marker\") !== -1) {\n container.insert(\"circle\", \":first-child\").attr({\n cx: xEdge + (ya.side !== \"right\" ? yThickness : -yThickness),\n cy: hLinePointY,\n r: yThickness,\n fill: yColor\n }).classed(\"spikeline\", true);\n }\n }\n if (showX) {\n var vLinePoint = closestPoints.vLinePoint;\n var vLinePointX, vLinePointY;\n xa = vLinePoint && vLinePoint.xa;\n ya = vLinePoint && vLinePoint.ya;\n var xSnap = xa.spikesnap;\n if (xSnap === \"cursor\") {\n vLinePointX = evt.pointerX;\n vLinePointY = evt.pointerY;\n } else {\n vLinePointX = xa._offset + vLinePoint.x;\n vLinePointY = ya._offset + vLinePoint.y;\n }\n var dfltVLineColor = tinycolor.readability(vLinePoint.color, contrastColor) < 1.5 ? Color2.contrast(contrastColor) : vLinePoint.color;\n var xMode = xa.spikemode;\n var xThickness = xa.spikethickness;\n var xColor = xa.spikecolor || dfltVLineColor;\n var yEdge = Axes.getPxPosition(gd, xa);\n var yBase, yEndSpike;\n if (xMode.indexOf(\"toaxis\") !== -1 || xMode.indexOf(\"across\") !== -1) {\n if (xMode.indexOf(\"toaxis\") !== -1) {\n yBase = yEdge;\n yEndSpike = vLinePointY;\n }\n if (xMode.indexOf(\"across\") !== -1) {\n var yAcross0 = xa._counterDomainMin;\n var yAcross1 = xa._counterDomainMax;\n if (xa.anchor === \"free\") {\n yAcross0 = Math.min(yAcross0, xa.position);\n yAcross1 = Math.max(yAcross1, xa.position);\n }\n yBase = gs.t + (1 - yAcross1) * gs.h;\n yEndSpike = gs.t + (1 - yAcross0) * gs.h;\n }\n container.insert(\"line\", \":first-child\").attr({\n x1: vLinePointX,\n x2: vLinePointX,\n y1: yBase,\n y2: yEndSpike,\n \"stroke-width\": xThickness,\n stroke: xColor,\n \"stroke-dasharray\": Drawing.dashStyle(xa.spikedash, xThickness)\n }).classed(\"spikeline\", true).classed(\"crisp\", true);\n container.insert(\"line\", \":first-child\").attr({\n x1: vLinePointX,\n x2: vLinePointX,\n y1: yBase,\n y2: yEndSpike,\n \"stroke-width\": xThickness + 2,\n stroke: contrastColor\n }).classed(\"spikeline\", true).classed(\"crisp\", true);\n }\n if (xMode.indexOf(\"marker\") !== -1) {\n container.insert(\"circle\", \":first-child\").attr({\n cx: vLinePointX,\n cy: yEdge - (xa.side !== \"top\" ? xThickness : -xThickness),\n r: xThickness,\n fill: xColor\n }).classed(\"spikeline\", true);\n }\n }\n }\n function hoverChanged(gd, evt, oldhoverdata) {\n if (!oldhoverdata || oldhoverdata.length !== gd._hoverdata.length) return true;\n for (var i = oldhoverdata.length - 1; i >= 0; i--) {\n var oldPt = oldhoverdata[i];\n var newPt = gd._hoverdata[i];\n if (oldPt.curveNumber !== newPt.curveNumber || String(oldPt.pointNumber) !== String(newPt.pointNumber) || String(oldPt.pointNumbers) !== String(newPt.pointNumbers)) {\n return true;\n }\n }\n return false;\n }\n function spikesChanged(gd, oldspikepoints) {\n if (!oldspikepoints) return true;\n if (oldspikepoints.vLinePoint !== gd._spikepoints.vLinePoint || oldspikepoints.hLinePoint !== gd._spikepoints.hLinePoint) return true;\n return false;\n }\n function plainText(s, len) {\n return svgTextUtils.plainText(s || \"\", {\n len,\n allowedTags: [\"br\", \"sub\", \"sup\", \"b\", \"i\", \"em\", \"s\", \"u\"]\n });\n }\n function orderRangePoints(hoverData, hovermode) {\n var axLetter = hovermode.charAt(0);\n var first = [];\n var second = [];\n var last = [];\n for (var i = 0; i < hoverData.length; i++) {\n var d = hoverData[i];\n if (Registry.traceIs(d.trace, \"bar-like\") || Registry.traceIs(d.trace, \"box-violin\")) {\n last.push(d);\n } else if (d.trace[axLetter + \"period\"]) {\n second.push(d);\n } else {\n first.push(d);\n }\n }\n return first.concat(second).concat(last);\n }\n function getCoord(axLetter, winningPoint, fullLayout) {\n var ax = winningPoint[axLetter + \"a\"];\n var val = winningPoint[axLetter + \"Val\"];\n var cd0 = winningPoint.cd[0];\n if (ax.type === \"category\" || ax.type === \"multicategory\") val = ax._categoriesMap[val];\n else if (ax.type === \"date\") {\n var periodalignment = winningPoint.trace[axLetter + \"periodalignment\"];\n if (periodalignment) {\n var d = winningPoint.cd[winningPoint.index];\n var start = d[axLetter + \"Start\"];\n if (start === void 0) start = d[axLetter];\n var end = d[axLetter + \"End\"];\n if (end === void 0) end = d[axLetter];\n var diff = end - start;\n if (periodalignment === \"end\") {\n val += diff;\n } else if (periodalignment === \"middle\") {\n val += diff / 2;\n }\n }\n val = ax.d2c(val);\n }\n if (cd0 && cd0.t && cd0.t.posLetter === ax._id) {\n if (fullLayout.boxmode === \"group\" || fullLayout.violinmode === \"group\") {\n val += cd0.t.dPos;\n }\n }\n return val;\n }\n function getTopOffset(gd) {\n return gd.offsetTop + gd.clientTop;\n }\n function getLeftOffset(gd) {\n return gd.offsetLeft + gd.clientLeft;\n }\n function getBoundingClientRect(gd, node) {\n var fullLayout = gd._fullLayout;\n var rect = node.getBoundingClientRect();\n var x0 = rect.left;\n var y0 = rect.top;\n var x1 = x0 + rect.width;\n var y1 = y0 + rect.height;\n var A2 = Lib.apply3DTransform(fullLayout._invTransform)(x0, y0);\n var B2 = Lib.apply3DTransform(fullLayout._invTransform)(x1, y1);\n var Ax = A2[0];\n var Ay = A2[1];\n var Bx = B2[0];\n var By = B2[1];\n return {\n x: Ax,\n y: Ay,\n width: Bx - Ax,\n height: By - Ay,\n top: Math.min(Ay, By),\n left: Math.min(Ax, Bx),\n right: Math.max(Ax, Bx),\n bottom: Math.max(Ay, By)\n };\n }\n }\n });\n\n // src/components/fx/hoverlabel_defaults.js\n var require_hoverlabel_defaults = __commonJS({\n \"src/components/fx/hoverlabel_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var isUnifiedHover = require_helpers2().isUnifiedHover;\n module.exports = function handleHoverLabelDefaults(contIn, contOut, coerce, opts) {\n opts = opts || {};\n var hasLegend = contOut.legend;\n function inheritFontAttr(attr) {\n if (!opts.font[attr]) {\n opts.font[attr] = hasLegend ? contOut.legend.font[attr] : contOut.font[attr];\n }\n }\n if (contOut && isUnifiedHover(contOut.hovermode)) {\n if (!opts.font) opts.font = {};\n inheritFontAttr(\"size\");\n inheritFontAttr(\"family\");\n inheritFontAttr(\"color\");\n inheritFontAttr(\"weight\");\n inheritFontAttr(\"style\");\n inheritFontAttr(\"variant\");\n if (hasLegend) {\n if (!opts.bgcolor) opts.bgcolor = Color2.combine(contOut.legend.bgcolor, contOut.paper_bgcolor);\n if (!opts.bordercolor) opts.bordercolor = contOut.legend.bordercolor;\n } else {\n if (!opts.bgcolor) opts.bgcolor = contOut.paper_bgcolor;\n }\n }\n coerce(\"hoverlabel.bgcolor\", opts.bgcolor);\n coerce(\"hoverlabel.bordercolor\", opts.bordercolor);\n coerce(\"hoverlabel.namelength\", opts.namelength);\n Lib.coerceFont(coerce, \"hoverlabel.font\", opts.font);\n coerce(\"hoverlabel.align\", opts.align);\n };\n }\n });\n\n // src/components/fx/layout_global_defaults.js\n var require_layout_global_defaults = __commonJS({\n \"src/components/fx/layout_global_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleHoverLabelDefaults = require_hoverlabel_defaults();\n var layoutAttributes = require_layout_attributes();\n module.exports = function supplyLayoutGlobalDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n handleHoverLabelDefaults(layoutIn, layoutOut, coerce);\n };\n }\n });\n\n // src/components/fx/defaults.js\n var require_defaults4 = __commonJS({\n \"src/components/fx/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes();\n var handleHoverLabelDefaults = require_hoverlabel_defaults();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var opts = Lib.extendFlat({}, layout.hoverlabel);\n if (traceOut.hovertemplate) opts.namelength = -1;\n handleHoverLabelDefaults(traceIn, traceOut, coerce, opts);\n };\n }\n });\n\n // src/components/fx/hovermode_defaults.js\n var require_hovermode_defaults = __commonJS({\n \"src/components/fx/hovermode_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes();\n module.exports = function handleHoverModeDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n if (layoutOut[attr] !== void 0) return layoutOut[attr];\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"clickmode\");\n coerce(\"hoversubplots\");\n return coerce(\"hovermode\");\n };\n }\n });\n\n // src/components/fx/layout_defaults.js\n var require_layout_defaults2 = __commonJS({\n \"src/components/fx/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes();\n var handleHoverModeDefaults = require_hovermode_defaults();\n var handleHoverLabelDefaults = require_hoverlabel_defaults();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n var hoverMode = handleHoverModeDefaults(layoutIn, layoutOut);\n if (hoverMode) {\n coerce(\"hoverdistance\");\n coerce(\"spikedistance\");\n }\n var dragMode = coerce(\"dragmode\");\n if (dragMode === \"select\") coerce(\"selectdirection\");\n var hasMapbox = layoutOut._has(\"mapbox\");\n var hasMap = layoutOut._has(\"map\");\n var hasGeo = layoutOut._has(\"geo\");\n var len = layoutOut._basePlotModules.length;\n if (layoutOut.dragmode === \"zoom\" && ((hasMapbox || hasMap || hasGeo) && len === 1 || (hasMapbox || hasMap) && hasGeo && len === 2)) {\n layoutOut.dragmode = \"pan\";\n }\n handleHoverLabelDefaults(layoutIn, layoutOut, coerce);\n Lib.coerceFont(coerce, \"hoverlabel.grouptitlefont\", layoutOut.hoverlabel.font);\n };\n }\n });\n\n // src/components/fx/calc.js\n var require_calc2 = __commonJS({\n \"src/components/fx/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n module.exports = function calc(gd) {\n var calcdata = gd.calcdata;\n var fullLayout = gd._fullLayout;\n function makeCoerceHoverInfo(trace2) {\n return function(val) {\n return Lib.coerceHoverinfo({ hoverinfo: val }, { _module: trace2._module }, fullLayout);\n };\n }\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var trace = cd[0].trace;\n if (Registry.traceIs(trace, \"pie-like\")) continue;\n var fillFn = Registry.traceIs(trace, \"2dMap\") ? paste : Lib.fillArray;\n fillFn(trace.hoverinfo, cd, \"hi\", makeCoerceHoverInfo(trace));\n if (trace.hovertemplate) fillFn(trace.hovertemplate, cd, \"ht\");\n if (!trace.hoverlabel) continue;\n fillFn(trace.hoverlabel.bgcolor, cd, \"hbg\");\n fillFn(trace.hoverlabel.bordercolor, cd, \"hbc\");\n fillFn(trace.hoverlabel.font.size, cd, \"hts\");\n fillFn(trace.hoverlabel.font.color, cd, \"htc\");\n fillFn(trace.hoverlabel.font.family, cd, \"htf\");\n fillFn(trace.hoverlabel.font.weight, cd, \"htw\");\n fillFn(trace.hoverlabel.font.style, cd, \"hty\");\n fillFn(trace.hoverlabel.font.variant, cd, \"htv\");\n fillFn(trace.hoverlabel.namelength, cd, \"hnl\");\n fillFn(trace.hoverlabel.align, cd, \"hta\");\n }\n };\n function paste(traceAttr, cd, cdAttr, fn) {\n fn = fn || Lib.identity;\n if (Array.isArray(traceAttr)) {\n cd[0][cdAttr] = fn(traceAttr);\n }\n }\n }\n });\n\n // src/components/fx/click.js\n var require_click = __commonJS({\n \"src/components/fx/click.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var hover = require_hover().hover;\n module.exports = function click(gd, evt, subplot) {\n var annotationsDone = Registry.getComponentMethod(\"annotations\", \"onClick\")(gd, gd._hoverdata);\n if (subplot !== void 0) {\n hover(gd, evt, subplot, true);\n }\n function emitClick() {\n gd.emit(\"plotly_click\", { points: gd._hoverdata, event: evt });\n }\n if (gd._hoverdata && evt && evt.target) {\n if (annotationsDone && annotationsDone.then) {\n annotationsDone.then(emitClick);\n } else emitClick();\n if (evt.stopImmediatePropagation) evt.stopImmediatePropagation();\n }\n };\n }\n });\n\n // src/components/fx/index.js\n var require_fx = __commonJS({\n \"src/components/fx/index.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var dragElement = require_dragelement();\n var helpers = require_helpers2();\n var layoutAttributes = require_layout_attributes();\n var hoverModule = require_hover();\n module.exports = {\n moduleType: \"component\",\n name: \"fx\",\n constants: require_constants(),\n schema: {\n layout: layoutAttributes\n },\n attributes: require_attributes(),\n layoutAttributes,\n supplyLayoutGlobalDefaults: require_layout_global_defaults(),\n supplyDefaults: require_defaults4(),\n supplyLayoutDefaults: require_layout_defaults2(),\n calc: require_calc2(),\n getDistanceFunction: helpers.getDistanceFunction,\n getClosest: helpers.getClosest,\n inbox: helpers.inbox,\n quadrature: helpers.quadrature,\n appendArrayPointValue: helpers.appendArrayPointValue,\n castHoverOption,\n castHoverinfo,\n hover: hoverModule.hover,\n unhover: dragElement.unhover,\n loneHover: hoverModule.loneHover,\n loneUnhover,\n click: require_click()\n };\n function loneUnhover(containerOrSelection) {\n var selection = Lib.isD3Selection(containerOrSelection) ? containerOrSelection : d3.select(containerOrSelection);\n selection.selectAll(\"g.hovertext\").remove();\n selection.selectAll(\".spikeline\").remove();\n }\n function castHoverOption(trace, ptNumber, attr) {\n return Lib.castOption(trace, ptNumber, \"hoverlabel.\" + attr);\n }\n function castHoverinfo(trace, fullLayout, ptNumber) {\n function _coerce(val) {\n return Lib.coerceHoverinfo({ hoverinfo: val }, { _module: trace._module }, fullLayout);\n }\n return Lib.castOption(trace, ptNumber, \"hoverinfo\", _coerce);\n }\n }\n });\n\n // src/components/dragelement/helpers.js\n var require_helpers5 = __commonJS({\n \"src/components/dragelement/helpers.js\"(exports) {\n \"use strict\";\n exports.selectMode = function(dragmode) {\n return dragmode === \"lasso\" || dragmode === \"select\";\n };\n exports.drawMode = function(dragmode) {\n return dragmode === \"drawclosedpath\" || dragmode === \"drawopenpath\" || dragmode === \"drawline\" || dragmode === \"drawrect\" || dragmode === \"drawcircle\";\n };\n exports.openMode = function(dragmode) {\n return dragmode === \"drawline\" || dragmode === \"drawopenpath\";\n };\n exports.rectMode = function(dragmode) {\n return dragmode === \"select\" || dragmode === \"drawline\" || dragmode === \"drawrect\" || dragmode === \"drawcircle\";\n };\n exports.freeMode = function(dragmode) {\n return dragmode === \"lasso\" || dragmode === \"drawclosedpath\" || dragmode === \"drawopenpath\";\n };\n exports.selectingOrDrawing = function(dragmode) {\n return exports.freeMode(dragmode) || exports.rectMode(dragmode);\n };\n }\n });\n\n // src/lib/clear_gl_canvases.js\n var require_clear_gl_canvases = __commonJS({\n \"src/lib/clear_gl_canvases.js\"(exports, module) {\n \"use strict\";\n module.exports = function clearGlCanvases(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout._glcanvas && fullLayout._glcanvas.size()) {\n fullLayout._glcanvas.each(function(d) {\n if (d.regl) d.regl.clear({ color: true, depth: true });\n });\n }\n };\n }\n });\n\n // src/fonts/ploticon.js\n var require_ploticon = __commonJS({\n \"src/fonts/ploticon.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n undo: {\n width: 857.1,\n height: 1e3,\n path: \"m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n home: {\n width: 928.6,\n height: 1e3,\n path: \"m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n \"camera-retro\": {\n width: 1e3,\n height: 1e3,\n path: \"m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n zoombox: {\n width: 1e3,\n height: 1e3,\n path: \"m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n pan: {\n width: 1e3,\n height: 1e3,\n path: \"m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n zoom_plus: {\n width: 875,\n height: 1e3,\n path: \"m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n zoom_minus: {\n width: 875,\n height: 1e3,\n path: \"m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n autoscale: {\n width: 1e3,\n height: 1e3,\n path: \"m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n tooltip_basic: {\n width: 1500,\n height: 1e3,\n path: \"m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n tooltip_compare: {\n width: 1125,\n height: 1e3,\n path: \"m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n plotlylogo: {\n width: 1542,\n height: 1e3,\n path: \"m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n \"z-axis\": {\n width: 1e3,\n height: 1e3,\n path: \"m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n \"3d_rotate\": {\n width: 1e3,\n height: 1e3,\n path: \"m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n camera: {\n width: 1e3,\n height: 1e3,\n path: \"m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n movie: {\n width: 1e3,\n height: 1e3,\n path: \"m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n question: {\n width: 857.1,\n height: 1e3,\n path: \"m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n disk: {\n width: 857.1,\n height: 1e3,\n path: \"m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n drawopenpath: {\n width: 70,\n height: 70,\n path: \"M33.21,85.65a7.31,7.31,0,0,1-2.59-.48c-8.16-3.11-9.27-19.8-9.88-41.3-.1-3.58-.19-6.68-.35-9-.15-2.1-.67-3.48-1.43-3.79-2.13-.88-7.91,2.32-12,5.86L3,32.38c1.87-1.64,11.55-9.66,18.27-6.9,2.13.87,4.75,3.14,5.17,9,.17,2.43.26,5.59.36,9.25a224.17,224.17,0,0,0,1.5,23.4c1.54,10.76,4,12.22,4.48,12.4.84.32,2.79-.46,5.76-3.59L43,80.07C41.53,81.57,37.68,85.64,33.21,85.65ZM74.81,69a11.34,11.34,0,0,0,6.09-6.72L87.26,44.5,74.72,32,56.9,38.35c-2.37.86-5.57,3.42-6.61,6L38.65,72.14l8.42,8.43ZM55,46.27a7.91,7.91,0,0,1,3.64-3.17l14.8-5.3,8,8L76.11,60.6l-.06.19a6.37,6.37,0,0,1-3,3.43L48.25,74.59,44.62,71Zm16.57,7.82A6.9,6.9,0,1,0,64.64,61,6.91,6.91,0,0,0,71.54,54.09Zm-4.05,0a2.85,2.85,0,1,1-2.85-2.85A2.86,2.86,0,0,1,67.49,54.09Zm-4.13,5.22L60.5,56.45,44.26,72.7l2.86,2.86ZM97.83,35.67,84.14,22l-8.57,8.57L89.26,44.24Zm-13.69-8,8,8-2.85,2.85-8-8Z\",\n transform: \"matrix(1 0 0 1 -15 -15)\"\n },\n drawclosedpath: {\n width: 90,\n height: 90,\n path: \"M88.41,21.12a26.56,26.56,0,0,0-36.18,0l-2.07,2-2.07-2a26.57,26.57,0,0,0-36.18,0,23.74,23.74,0,0,0,0,34.8L48,90.12a3.22,3.22,0,0,0,4.42,0l36-34.21a23.73,23.73,0,0,0,0-34.79ZM84,51.24,50.16,83.35,16.35,51.25a17.28,17.28,0,0,1,0-25.47,20,20,0,0,1,27.3,0l4.29,4.07a3.23,3.23,0,0,0,4.44,0l4.29-4.07a20,20,0,0,1,27.3,0,17.27,17.27,0,0,1,0,25.46ZM66.76,47.68h-33v6.91h33ZM53.35,35H46.44V68h6.91Z\",\n transform: \"matrix(1 0 0 1 -5 -5)\"\n },\n lasso: {\n width: 1031,\n height: 1e3,\n path: \"m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n selectbox: {\n width: 1e3,\n height: 1e3,\n path: \"m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n drawline: {\n width: 70,\n height: 70,\n path: \"M60.64,62.3a11.29,11.29,0,0,0,6.09-6.72l6.35-17.72L60.54,25.31l-17.82,6.4c-2.36.86-5.57,3.41-6.6,6L24.48,65.5l8.42,8.42ZM40.79,39.63a7.89,7.89,0,0,1,3.65-3.17l14.79-5.31,8,8L61.94,54l-.06.19a6.44,6.44,0,0,1-3,3.43L34.07,68l-3.62-3.63Zm16.57,7.81a6.9,6.9,0,1,0-6.89,6.9A6.9,6.9,0,0,0,57.36,47.44Zm-4,0a2.86,2.86,0,1,1-2.85-2.85A2.86,2.86,0,0,1,53.32,47.44Zm-4.13,5.22L46.33,49.8,30.08,66.05l2.86,2.86ZM83.65,29,70,15.34,61.4,23.9,75.09,37.59ZM70,21.06l8,8-2.84,2.85-8-8ZM87,80.49H10.67V87H87Z\",\n transform: \"matrix(1 0 0 1 -15 -15)\"\n },\n drawrect: {\n width: 80,\n height: 80,\n path: \"M78,22V79H21V22H78m9-9H12V88H87V13ZM68,46.22H31V54H68ZM53,32H45.22V69H53Z\",\n transform: \"matrix(1 0 0 1 -10 -10)\"\n },\n drawcircle: {\n width: 80,\n height: 80,\n path: \"M50,84.72C26.84,84.72,8,69.28,8,50.3S26.84,15.87,50,15.87,92,31.31,92,50.3,73.16,84.72,50,84.72Zm0-60.59c-18.6,0-33.74,11.74-33.74,26.17S31.4,76.46,50,76.46,83.74,64.72,83.74,50.3,68.6,24.13,50,24.13Zm17.15,22h-34v7.11h34Zm-13.8-13H46.24v34h7.11Z\",\n transform: \"matrix(1 0 0 1 -10 -10)\"\n },\n eraseshape: {\n width: 80,\n height: 80,\n path: \"M82.77,78H31.85L6,49.57,31.85,21.14H82.77a8.72,8.72,0,0,1,8.65,8.77V69.24A8.72,8.72,0,0,1,82.77,78ZM35.46,69.84H82.77a.57.57,0,0,0,.49-.6V29.91a.57.57,0,0,0-.49-.61H35.46L17,49.57Zm32.68-34.7-24,24,5,5,24-24Zm-19,.53-5,5,24,24,5-5Z\",\n transform: \"matrix(1 0 0 1 -10 -10)\"\n },\n spikeline: {\n width: 1e3,\n height: 1e3,\n path: \"M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z\",\n transform: \"matrix(1.5 0 0 -1.5 0 850)\"\n },\n pencil: {\n width: 1792,\n height: 1792,\n path: \"M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z\",\n transform: \"matrix(1 0 0 1 0 1)\"\n },\n newplotlylogo: {\n name: \"newplotlylogo\",\n svg: [\n \"\",\n \" plotly-logomark\",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \"\"\n ].join(\"\")\n }\n };\n }\n });\n\n // src/components/shapes/draw_newshape/constants.js\n var require_constants4 = __commonJS({\n \"src/components/shapes/draw_newshape/constants.js\"(exports, module) {\n \"use strict\";\n var CIRCLE_SIDES = 32;\n module.exports = {\n CIRCLE_SIDES,\n i000: 0,\n i090: CIRCLE_SIDES / 4,\n i180: CIRCLE_SIDES / 2,\n i270: CIRCLE_SIDES / 4 * 3,\n cos45: Math.cos(Math.PI / 4),\n sin45: Math.sin(Math.PI / 4),\n SQRT2: Math.sqrt(2)\n };\n }\n });\n\n // src/components/selections/helpers.js\n var require_helpers6 = __commonJS({\n \"src/components/selections/helpers.js\"(exports, module) {\n \"use strict\";\n var strTranslate = require_lib().strTranslate;\n function p2r(ax, v) {\n switch (ax.type) {\n case \"log\":\n return ax.p2d(v);\n case \"date\":\n return ax.p2r(v, 0, ax.calendar);\n default:\n return ax.p2r(v);\n }\n }\n function r2p(ax, v) {\n switch (ax.type) {\n case \"log\":\n return ax.d2p(v);\n case \"date\":\n return ax.r2p(v, 0, ax.calendar);\n default:\n return ax.r2p(v);\n }\n }\n function axValue(ax) {\n var index = ax._id.charAt(0) === \"y\" ? 1 : 0;\n return function(v) {\n return p2r(ax, v[index]);\n };\n }\n function getTransform(plotinfo) {\n return strTranslate(\n plotinfo.xaxis._offset,\n plotinfo.yaxis._offset\n );\n }\n module.exports = {\n p2r,\n r2p,\n axValue,\n getTransform\n };\n }\n });\n\n // src/components/shapes/draw_newshape/helpers.js\n var require_helpers7 = __commonJS({\n \"src/components/shapes/draw_newshape/helpers.js\"(exports) {\n \"use strict\";\n var parseSvgPath = require_parse_svg_path();\n var constants = require_constants4();\n var CIRCLE_SIDES = constants.CIRCLE_SIDES;\n var SQRT2 = constants.SQRT2;\n var cartesianHelpers = require_helpers6();\n var p2r = cartesianHelpers.p2r;\n var r2p = cartesianHelpers.r2p;\n var iC = [0, 3, 4, 5, 6, 1, 2];\n var iQS = [0, 3, 4, 1, 2];\n exports.writePaths = function(polygons) {\n var nI = polygons.length;\n if (!nI) return \"M0,0Z\";\n var str = \"\";\n for (var i = 0; i < nI; i++) {\n var nJ = polygons[i].length;\n for (var j = 0; j < nJ; j++) {\n var w = polygons[i][j][0];\n if (w === \"Z\") {\n str += \"Z\";\n } else {\n var nK = polygons[i][j].length;\n for (var k = 0; k < nK; k++) {\n var realK = k;\n if (w === \"Q\" || w === \"S\") {\n realK = iQS[k];\n } else if (w === \"C\") {\n realK = iC[k];\n }\n str += polygons[i][j][realK];\n if (k > 0 && k < nK - 1) {\n str += \",\";\n }\n }\n }\n }\n }\n return str;\n };\n exports.readPaths = function(str, gd, plotinfo, isActiveShape) {\n var cmd = parseSvgPath(str);\n var polys = [];\n var n = -1;\n var newPoly = function() {\n n++;\n polys[n] = [];\n };\n var k;\n var x = 0;\n var y = 0;\n var initX;\n var initY;\n var recStart = function() {\n initX = x;\n initY = y;\n };\n recStart();\n for (var i = 0; i < cmd.length; i++) {\n var newPos = [];\n var x1, x2, y1, y2;\n var c = cmd[i][0];\n var w = c;\n switch (c) {\n case \"M\":\n newPoly();\n x = +cmd[i][1];\n y = +cmd[i][2];\n newPos.push([w, x, y]);\n recStart();\n break;\n case \"Q\":\n case \"S\":\n x1 = +cmd[i][1];\n y1 = +cmd[i][2];\n x = +cmd[i][3];\n y = +cmd[i][4];\n newPos.push([w, x, y, x1, y1]);\n break;\n case \"C\":\n x1 = +cmd[i][1];\n y1 = +cmd[i][2];\n x2 = +cmd[i][3];\n y2 = +cmd[i][4];\n x = +cmd[i][5];\n y = +cmd[i][6];\n newPos.push([w, x, y, x1, y1, x2, y2]);\n break;\n case \"T\":\n case \"L\":\n x = +cmd[i][1];\n y = +cmd[i][2];\n newPos.push([w, x, y]);\n break;\n case \"H\":\n w = \"L\";\n x = +cmd[i][1];\n newPos.push([w, x, y]);\n break;\n case \"V\":\n w = \"L\";\n y = +cmd[i][1];\n newPos.push([w, x, y]);\n break;\n case \"A\":\n w = \"L\";\n var rx = +cmd[i][1];\n var ry = +cmd[i][2];\n if (!+cmd[i][4]) {\n rx = -rx;\n ry = -ry;\n }\n var cenX = x - rx;\n var cenY = y;\n for (k = 1; k <= CIRCLE_SIDES / 2; k++) {\n var t = 2 * Math.PI * k / CIRCLE_SIDES;\n newPos.push([\n w,\n cenX + rx * Math.cos(t),\n cenY + ry * Math.sin(t)\n ]);\n }\n break;\n case \"Z\":\n if (x !== initX || y !== initY) {\n x = initX;\n y = initY;\n newPos.push([w, x, y]);\n }\n break;\n }\n var domain = (plotinfo || {}).domain;\n var size = gd._fullLayout._size;\n var xPixelSized = plotinfo && plotinfo.xsizemode === \"pixel\";\n var yPixelSized = plotinfo && plotinfo.ysizemode === \"pixel\";\n var noOffset = isActiveShape === false;\n for (var j = 0; j < newPos.length; j++) {\n for (k = 0; k + 2 < 7; k += 2) {\n var _x = newPos[j][k + 1];\n var _y = newPos[j][k + 2];\n if (_x === void 0 || _y === void 0) continue;\n x = _x;\n y = _y;\n if (plotinfo) {\n if (plotinfo.xaxis && plotinfo.xaxis.p2r) {\n if (noOffset) _x -= plotinfo.xaxis._offset;\n if (xPixelSized) {\n _x = r2p(plotinfo.xaxis, plotinfo.xanchor) + _x;\n } else {\n _x = p2r(plotinfo.xaxis, _x);\n }\n } else {\n if (noOffset) _x -= size.l;\n if (domain) _x = domain.x[0] + _x / size.w;\n else _x = _x / size.w;\n }\n if (plotinfo.yaxis && plotinfo.yaxis.p2r) {\n if (noOffset) _y -= plotinfo.yaxis._offset;\n if (yPixelSized) {\n _y = r2p(plotinfo.yaxis, plotinfo.yanchor) - _y;\n } else {\n _y = p2r(plotinfo.yaxis, _y);\n }\n } else {\n if (noOffset) _y -= size.t;\n if (domain) _y = domain.y[1] - _y / size.h;\n else _y = 1 - _y / size.h;\n }\n }\n newPos[j][k + 1] = _x;\n newPos[j][k + 2] = _y;\n }\n polys[n].push(\n newPos[j].slice()\n );\n }\n }\n return polys;\n };\n function almostEq(a, b) {\n return Math.abs(a - b) <= 1e-6;\n }\n function dist(a, b) {\n var dx = b[1] - a[1];\n var dy = b[2] - a[2];\n return Math.sqrt(\n dx * dx + dy * dy\n );\n }\n exports.pointsOnRectangle = function(cell) {\n var len = cell.length;\n if (len !== 5) return false;\n for (var j = 1; j < 3; j++) {\n var e01 = cell[0][j] - cell[1][j];\n var e32 = cell[3][j] - cell[2][j];\n if (!almostEq(e01, e32)) return false;\n var e03 = cell[0][j] - cell[3][j];\n var e12 = cell[1][j] - cell[2][j];\n if (!almostEq(e03, e12)) return false;\n }\n if (!almostEq(cell[0][1], cell[1][1]) && !almostEq(cell[0][1], cell[3][1])) return false;\n return !!(dist(cell[0], cell[1]) * dist(cell[0], cell[3]));\n };\n exports.pointsOnEllipse = function(cell) {\n var len = cell.length;\n if (len !== CIRCLE_SIDES + 1) return false;\n len = CIRCLE_SIDES;\n for (var i = 0; i < len; i++) {\n var k = (len * 2 - i) % len;\n var k2 = (len / 2 + k) % len;\n var i2 = (len / 2 + i) % len;\n if (!almostEq(\n dist(cell[i], cell[i2]),\n dist(cell[k], cell[k2])\n )) return false;\n }\n return true;\n };\n exports.handleEllipse = function(isEllipse, start, end) {\n if (!isEllipse) return [start, end];\n var pos = exports.ellipseOver({\n x0: start[0],\n y0: start[1],\n x1: end[0],\n y1: end[1]\n });\n var cx = (pos.x1 + pos.x0) / 2;\n var cy = (pos.y1 + pos.y0) / 2;\n var rx = (pos.x1 - pos.x0) / 2;\n var ry = (pos.y1 - pos.y0) / 2;\n if (!rx) rx = ry = ry / SQRT2;\n if (!ry) ry = rx = rx / SQRT2;\n var cell = [];\n for (var i = 0; i < CIRCLE_SIDES; i++) {\n var t = i * 2 * Math.PI / CIRCLE_SIDES;\n cell.push([\n cx + rx * Math.cos(t),\n cy + ry * Math.sin(t)\n ]);\n }\n return cell;\n };\n exports.ellipseOver = function(pos) {\n var x0 = pos.x0;\n var y0 = pos.y0;\n var x1 = pos.x1;\n var y1 = pos.y1;\n var dx = x1 - x0;\n var dy = y1 - y0;\n x0 -= dx;\n y0 -= dy;\n var cx = (x0 + x1) / 2;\n var cy = (y0 + y1) / 2;\n var scale = SQRT2;\n dx *= scale;\n dy *= scale;\n return {\n x0: cx - dx,\n y0: cy - dy,\n x1: cx + dx,\n y1: cy + dy\n };\n };\n exports.fixDatesForPaths = function(polygons, xaxis, yaxis) {\n var xIsDate = xaxis.type === \"date\";\n var yIsDate = yaxis.type === \"date\";\n if (!xIsDate && !yIsDate) return polygons;\n for (var i = 0; i < polygons.length; i++) {\n for (var j = 0; j < polygons[i].length; j++) {\n for (var k = 0; k + 2 < polygons[i][j].length; k += 2) {\n if (xIsDate) polygons[i][j][k + 1] = polygons[i][j][k + 1].replace(\" \", \"_\");\n if (yIsDate) polygons[i][j][k + 2] = polygons[i][j][k + 2].replace(\" \", \"_\");\n }\n }\n }\n return polygons;\n };\n }\n });\n\n // src/components/shapes/draw_newshape/newshapes.js\n var require_newshapes = __commonJS({\n \"src/components/shapes/draw_newshape/newshapes.js\"(exports, module) {\n \"use strict\";\n var dragHelpers = require_helpers5();\n var drawMode = dragHelpers.drawMode;\n var openMode = dragHelpers.openMode;\n var constants = require_constants4();\n var i000 = constants.i000;\n var i090 = constants.i090;\n var i180 = constants.i180;\n var i270 = constants.i270;\n var cos45 = constants.cos45;\n var sin45 = constants.sin45;\n var cartesianHelpers = require_helpers6();\n var p2r = cartesianHelpers.p2r;\n var r2p = cartesianHelpers.r2p;\n var handleOutline = require_handle_outline();\n var clearOutline = handleOutline.clearOutline;\n var helpers = require_helpers7();\n var readPaths = helpers.readPaths;\n var writePaths = helpers.writePaths;\n var ellipseOver = helpers.ellipseOver;\n var fixDatesForPaths = helpers.fixDatesForPaths;\n function newShapes(outlines, dragOptions) {\n if (!outlines.length) return;\n var e = outlines[0][0];\n if (!e) return;\n var gd = dragOptions.gd;\n var isActiveShape = dragOptions.isActiveShape;\n var dragmode = dragOptions.dragmode;\n var shapes = (gd.layout || {}).shapes || [];\n if (!drawMode(dragmode) && isActiveShape !== void 0) {\n var id = gd._fullLayout._activeShapeIndex;\n if (id < shapes.length) {\n switch (gd._fullLayout.shapes[id].type) {\n case \"rect\":\n dragmode = \"drawrect\";\n break;\n case \"circle\":\n dragmode = \"drawcircle\";\n break;\n case \"line\":\n dragmode = \"drawline\";\n break;\n case \"path\":\n var path = shapes[id].path || \"\";\n if (path[path.length - 1] === \"Z\") {\n dragmode = \"drawclosedpath\";\n } else {\n dragmode = \"drawopenpath\";\n }\n break;\n }\n }\n }\n var newShape = createShapeObj(outlines, dragOptions, dragmode);\n clearOutline(gd);\n var editHelpers = dragOptions.editHelpers;\n var modifyItem = (editHelpers || {}).modifyItem;\n var allShapes = [];\n for (var q = 0; q < shapes.length; q++) {\n var beforeEdit = gd._fullLayout.shapes[q];\n allShapes[q] = beforeEdit._input;\n if (isActiveShape !== void 0 && q === gd._fullLayout._activeShapeIndex) {\n var afterEdit = newShape;\n switch (beforeEdit.type) {\n case \"line\":\n case \"rect\":\n case \"circle\":\n modifyItem(\"x0\", afterEdit.x0 - (beforeEdit.x0shift || 0));\n modifyItem(\"x1\", afterEdit.x1 - (beforeEdit.x1shift || 0));\n modifyItem(\"y0\", afterEdit.y0 - (beforeEdit.y0shift || 0));\n modifyItem(\"y1\", afterEdit.y1 - (beforeEdit.y1shift || 0));\n break;\n case \"path\":\n modifyItem(\"path\", afterEdit.path);\n break;\n }\n }\n }\n if (isActiveShape === void 0) {\n allShapes.push(newShape);\n return allShapes;\n }\n return editHelpers ? editHelpers.getUpdateObj() : {};\n }\n function createShapeObj(outlines, dragOptions, dragmode) {\n var e = outlines[0][0];\n var gd = dragOptions.gd;\n var d = e.getAttribute(\"d\");\n var newStyle = gd._fullLayout.newshape;\n var plotinfo = dragOptions.plotinfo;\n var isActiveShape = dragOptions.isActiveShape;\n var xaxis = plotinfo.xaxis;\n var yaxis = plotinfo.yaxis;\n var xPaper = !!plotinfo.domain || !plotinfo.xaxis;\n var yPaper = !!plotinfo.domain || !plotinfo.yaxis;\n var isOpenMode = openMode(dragmode);\n var polygons = readPaths(d, gd, plotinfo, isActiveShape);\n var newShape = {\n editable: true,\n visible: newStyle.visible,\n name: newStyle.name,\n showlegend: newStyle.showlegend,\n legend: newStyle.legend,\n legendwidth: newStyle.legendwidth,\n legendgroup: newStyle.legendgroup,\n legendgrouptitle: {\n text: newStyle.legendgrouptitle.text,\n font: newStyle.legendgrouptitle.font\n },\n legendrank: newStyle.legendrank,\n label: newStyle.label,\n xref: xPaper ? \"paper\" : xaxis._id,\n yref: yPaper ? \"paper\" : yaxis._id,\n layer: newStyle.layer,\n opacity: newStyle.opacity,\n line: {\n color: newStyle.line.color,\n width: newStyle.line.width,\n dash: newStyle.line.dash\n }\n };\n if (!isOpenMode) {\n newShape.fillcolor = newStyle.fillcolor;\n newShape.fillrule = newStyle.fillrule;\n }\n var cell;\n if (polygons.length === 1) cell = polygons[0];\n if (cell && cell.length === 5 && // ensure we only have 4 corners for a rect\n dragmode === \"drawrect\") {\n newShape.type = \"rect\";\n newShape.x0 = cell[0][1];\n newShape.y0 = cell[0][2];\n newShape.x1 = cell[2][1];\n newShape.y1 = cell[2][2];\n } else if (cell && dragmode === \"drawline\") {\n newShape.type = \"line\";\n newShape.x0 = cell[0][1];\n newShape.y0 = cell[0][2];\n newShape.x1 = cell[1][1];\n newShape.y1 = cell[1][2];\n } else if (cell && dragmode === \"drawcircle\") {\n newShape.type = \"circle\";\n var xA = cell[i000][1];\n var xB = cell[i090][1];\n var xC = cell[i180][1];\n var xD = cell[i270][1];\n var yA = cell[i000][2];\n var yB = cell[i090][2];\n var yC = cell[i180][2];\n var yD = cell[i270][2];\n var xDateOrLog = plotinfo.xaxis && (plotinfo.xaxis.type === \"date\" || plotinfo.xaxis.type === \"log\");\n var yDateOrLog = plotinfo.yaxis && (plotinfo.yaxis.type === \"date\" || plotinfo.yaxis.type === \"log\");\n if (xDateOrLog) {\n xA = r2p(plotinfo.xaxis, xA);\n xB = r2p(plotinfo.xaxis, xB);\n xC = r2p(plotinfo.xaxis, xC);\n xD = r2p(plotinfo.xaxis, xD);\n }\n if (yDateOrLog) {\n yA = r2p(plotinfo.yaxis, yA);\n yB = r2p(plotinfo.yaxis, yB);\n yC = r2p(plotinfo.yaxis, yC);\n yD = r2p(plotinfo.yaxis, yD);\n }\n var x0 = (xB + xD) / 2;\n var y0 = (yA + yC) / 2;\n var rx = (xD - xB + xC - xA) / 2;\n var ry = (yD - yB + yC - yA) / 2;\n var pos = ellipseOver({\n x0,\n y0,\n x1: x0 + rx * cos45,\n y1: y0 + ry * sin45\n });\n if (xDateOrLog) {\n pos.x0 = p2r(plotinfo.xaxis, pos.x0);\n pos.x1 = p2r(plotinfo.xaxis, pos.x1);\n }\n if (yDateOrLog) {\n pos.y0 = p2r(plotinfo.yaxis, pos.y0);\n pos.y1 = p2r(plotinfo.yaxis, pos.y1);\n }\n newShape.x0 = pos.x0;\n newShape.y0 = pos.y0;\n newShape.x1 = pos.x1;\n newShape.y1 = pos.y1;\n } else {\n newShape.type = \"path\";\n if (xaxis && yaxis) fixDatesForPaths(polygons, xaxis, yaxis);\n newShape.path = writePaths(polygons);\n cell = null;\n }\n return newShape;\n }\n module.exports = {\n newShapes,\n createShapeObj\n };\n }\n });\n\n // src/components/selections/draw_newselection/newselections.js\n var require_newselections = __commonJS({\n \"src/components/selections/draw_newselection/newselections.js\"(exports, module) {\n \"use strict\";\n var dragHelpers = require_helpers5();\n var selectMode = dragHelpers.selectMode;\n var handleOutline = require_handle_outline();\n var clearOutline = handleOutline.clearOutline;\n var helpers = require_helpers7();\n var readPaths = helpers.readPaths;\n var writePaths = helpers.writePaths;\n var fixDatesForPaths = helpers.fixDatesForPaths;\n module.exports = function newSelections(outlines, dragOptions) {\n if (!outlines.length) return;\n var e = outlines[0][0];\n if (!e) return;\n var d = e.getAttribute(\"d\");\n var gd = dragOptions.gd;\n var newStyle = gd._fullLayout.newselection;\n var plotinfo = dragOptions.plotinfo;\n var xaxis = plotinfo.xaxis;\n var yaxis = plotinfo.yaxis;\n var isActiveSelection = dragOptions.isActiveSelection;\n var dragmode = dragOptions.dragmode;\n var selections = (gd.layout || {}).selections || [];\n if (!selectMode(dragmode) && isActiveSelection !== void 0) {\n var id = gd._fullLayout._activeSelectionIndex;\n if (id < selections.length) {\n switch (gd._fullLayout.selections[id].type) {\n case \"rect\":\n dragmode = \"select\";\n break;\n case \"path\":\n dragmode = \"lasso\";\n break;\n }\n }\n }\n var polygons = readPaths(d, gd, plotinfo, isActiveSelection);\n var newSelection = {\n xref: xaxis._id,\n yref: yaxis._id,\n opacity: newStyle.opacity,\n line: {\n color: newStyle.line.color,\n width: newStyle.line.width,\n dash: newStyle.line.dash\n }\n };\n var cell;\n if (polygons.length === 1) cell = polygons[0];\n if (cell && cell.length === 5 && // ensure we only have 4 corners for a rect\n dragmode === \"select\") {\n newSelection.type = \"rect\";\n newSelection.x0 = cell[0][1];\n newSelection.y0 = cell[0][2];\n newSelection.x1 = cell[2][1];\n newSelection.y1 = cell[2][2];\n } else {\n newSelection.type = \"path\";\n if (xaxis && yaxis) fixDatesForPaths(polygons, xaxis, yaxis);\n newSelection.path = writePaths(polygons);\n cell = null;\n }\n clearOutline(gd);\n var editHelpers = dragOptions.editHelpers;\n var modifyItem = (editHelpers || {}).modifyItem;\n var allSelections = [];\n for (var q = 0; q < selections.length; q++) {\n var beforeEdit = gd._fullLayout.selections[q];\n if (!beforeEdit) {\n allSelections[q] = beforeEdit;\n continue;\n }\n allSelections[q] = beforeEdit._input;\n if (isActiveSelection !== void 0 && q === gd._fullLayout._activeSelectionIndex) {\n var afterEdit = newSelection;\n switch (beforeEdit.type) {\n case \"rect\":\n modifyItem(\"x0\", afterEdit.x0);\n modifyItem(\"x1\", afterEdit.x1);\n modifyItem(\"y0\", afterEdit.y0);\n modifyItem(\"y1\", afterEdit.y1);\n break;\n case \"path\":\n modifyItem(\"path\", afterEdit.path);\n break;\n }\n }\n }\n if (isActiveSelection === void 0) {\n allSelections.push(newSelection);\n return allSelections;\n }\n return editHelpers ? editHelpers.getUpdateObj() : {};\n };\n }\n });\n\n // src/components/shapes/constants.js\n var require_constants5 = __commonJS({\n \"src/components/shapes/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n segmentRE: /[MLHVQCTSZ][^MLHVQCTSZ]*/g,\n paramRE: /[^\\s,]+/g,\n // which numbers in each path segment are x (or y) values\n // drawn is which param is a drawn point, as opposed to a\n // control point (which doesn't count toward autorange.\n // TODO: this means curved paths could extend beyond the\n // autorange bounds. This is a bit tricky to get right\n // unless we revert to bounding boxes, but perhaps there's\n // a calculation we could do...)\n paramIsX: {\n M: { 0: true, drawn: 0 },\n L: { 0: true, drawn: 0 },\n H: { 0: true, drawn: 0 },\n V: {},\n Q: { 0: true, 2: true, drawn: 2 },\n C: { 0: true, 2: true, 4: true, drawn: 4 },\n T: { 0: true, drawn: 0 },\n S: { 0: true, 2: true, drawn: 2 },\n // A: {0: true, 5: true},\n Z: {}\n },\n paramIsY: {\n M: { 1: true, drawn: 1 },\n L: { 1: true, drawn: 1 },\n H: {},\n V: { 0: true, drawn: 0 },\n Q: { 1: true, 3: true, drawn: 3 },\n C: { 1: true, 3: true, 5: true, drawn: 5 },\n T: { 1: true, drawn: 1 },\n S: { 1: true, 3: true, drawn: 5 },\n // A: {1: true, 6: true},\n Z: {}\n },\n numParams: {\n M: 2,\n L: 2,\n H: 1,\n V: 1,\n Q: 4,\n C: 6,\n T: 2,\n S: 4,\n // A: 7,\n Z: 0\n }\n };\n }\n });\n\n // src/components/shapes/helpers.js\n var require_helpers8 = __commonJS({\n \"src/components/shapes/helpers.js\"(exports) {\n \"use strict\";\n var constants = require_constants5();\n var Lib = require_lib();\n var Axes = require_axes();\n exports.rangeToShapePosition = function(ax) {\n return ax.type === \"log\" ? ax.r2d : function(v) {\n return v;\n };\n };\n exports.shapePositionToRange = function(ax) {\n return ax.type === \"log\" ? ax.d2r : function(v) {\n return v;\n };\n };\n exports.decodeDate = function(convertToPx) {\n return function(v) {\n if (v.replace) v = v.replace(\"_\", \" \");\n return convertToPx(v);\n };\n };\n exports.encodeDate = function(convertToDate) {\n return function(v) {\n return convertToDate(v).replace(\" \", \"_\");\n };\n };\n exports.extractPathCoords = function(path, paramsToUse, isRaw) {\n var extractedCoordinates = [];\n var segments = path.match(constants.segmentRE);\n segments.forEach(function(segment) {\n var relevantParamIdx = paramsToUse[segment.charAt(0)].drawn;\n if (relevantParamIdx === void 0) return;\n var params = segment.substr(1).match(constants.paramRE);\n if (!params || params.length < relevantParamIdx) return;\n var str = params[relevantParamIdx];\n var pos = isRaw ? str : Lib.cleanNumber(str);\n extractedCoordinates.push(pos);\n });\n return extractedCoordinates;\n };\n exports.getDataToPixel = function(gd, axis, shift, isVertical, refType) {\n var gs = gd._fullLayout._size;\n var dataToPixel;\n if (axis) {\n if (refType === \"domain\") {\n dataToPixel = function(v) {\n return axis._length * (isVertical ? 1 - v : v) + axis._offset;\n };\n } else {\n var d2r = exports.shapePositionToRange(axis);\n dataToPixel = function(v) {\n var shiftPixels = getPixelShift(axis, shift);\n return axis._offset + axis.r2p(d2r(v, true)) + shiftPixels;\n };\n if (axis.type === \"date\") dataToPixel = exports.decodeDate(dataToPixel);\n }\n } else if (isVertical) {\n dataToPixel = function(v) {\n return gs.t + gs.h * (1 - v);\n };\n } else {\n dataToPixel = function(v) {\n return gs.l + gs.w * v;\n };\n }\n return dataToPixel;\n };\n exports.getPixelToData = function(gd, axis, isVertical, opt) {\n var gs = gd._fullLayout._size;\n var pixelToData;\n if (axis) {\n if (opt === \"domain\") {\n pixelToData = function(p) {\n var q = (p - axis._offset) / axis._length;\n return isVertical ? 1 - q : q;\n };\n } else {\n var r2d = exports.rangeToShapePosition(axis);\n pixelToData = function(p) {\n return r2d(axis.p2r(p - axis._offset));\n };\n }\n } else if (isVertical) {\n pixelToData = function(p) {\n return 1 - (p - gs.t) / gs.h;\n };\n } else {\n pixelToData = function(p) {\n return (p - gs.l) / gs.w;\n };\n }\n return pixelToData;\n };\n exports.roundPositionForSharpStrokeRendering = function(pos, strokeWidth) {\n var strokeWidthIsOdd = Math.round(strokeWidth % 2) === 1;\n var posValAsInt = Math.round(pos);\n return strokeWidthIsOdd ? posValAsInt + 0.5 : posValAsInt;\n };\n exports.makeShapesOptionsAndPlotinfo = function(gd, index) {\n var options = gd._fullLayout.shapes[index] || {};\n var plotinfo = gd._fullLayout._plots[options.xref + options.yref];\n var hasPlotinfo = !!plotinfo;\n if (hasPlotinfo) {\n plotinfo._hadPlotinfo = true;\n } else {\n plotinfo = {};\n if (options.xref && options.xref !== \"paper\") plotinfo.xaxis = gd._fullLayout[options.xref + \"axis\"];\n if (options.yref && options.yref !== \"paper\") plotinfo.yaxis = gd._fullLayout[options.yref + \"axis\"];\n }\n plotinfo.xsizemode = options.xsizemode;\n plotinfo.ysizemode = options.ysizemode;\n plotinfo.xanchor = options.xanchor;\n plotinfo.yanchor = options.yanchor;\n return {\n options,\n plotinfo\n };\n };\n exports.makeSelectionsOptionsAndPlotinfo = function(gd, index) {\n var options = gd._fullLayout.selections[index] || {};\n var plotinfo = gd._fullLayout._plots[options.xref + options.yref];\n var hasPlotinfo = !!plotinfo;\n if (hasPlotinfo) {\n plotinfo._hadPlotinfo = true;\n } else {\n plotinfo = {};\n if (options.xref) plotinfo.xaxis = gd._fullLayout[options.xref + \"axis\"];\n if (options.yref) plotinfo.yaxis = gd._fullLayout[options.yref + \"axis\"];\n }\n return {\n options,\n plotinfo\n };\n };\n exports.getPathString = function(gd, options) {\n var type = options.type;\n var xRefType = Axes.getRefType(options.xref);\n var yRefType = Axes.getRefType(options.yref);\n var xa = Axes.getFromId(gd, options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n var gs = gd._fullLayout._size;\n var x2r, x2p, y2r, y2p;\n var xShiftStart = getPixelShift(xa, options.x0shift);\n var xShiftEnd = getPixelShift(xa, options.x1shift);\n var yShiftStart = getPixelShift(ya, options.y0shift);\n var yShiftEnd = getPixelShift(ya, options.y1shift);\n var x0, x1, y0, y1;\n if (xa) {\n if (xRefType === \"domain\") {\n x2p = function(v) {\n return xa._offset + xa._length * v;\n };\n } else {\n x2r = exports.shapePositionToRange(xa);\n x2p = function(v) {\n return xa._offset + xa.r2p(x2r(v, true));\n };\n }\n } else {\n x2p = function(v) {\n return gs.l + gs.w * v;\n };\n }\n if (ya) {\n if (yRefType === \"domain\") {\n y2p = function(v) {\n return ya._offset + ya._length * (1 - v);\n };\n } else {\n y2r = exports.shapePositionToRange(ya);\n y2p = function(v) {\n return ya._offset + ya.r2p(y2r(v, true));\n };\n }\n } else {\n y2p = function(v) {\n return gs.t + gs.h * (1 - v);\n };\n }\n if (type === \"path\") {\n if (xa && xa.type === \"date\") x2p = exports.decodeDate(x2p);\n if (ya && ya.type === \"date\") y2p = exports.decodeDate(y2p);\n return convertPath(options, x2p, y2p);\n }\n if (options.xsizemode === \"pixel\") {\n var xAnchorPos = x2p(options.xanchor);\n x0 = xAnchorPos + options.x0 + xShiftStart;\n x1 = xAnchorPos + options.x1 + xShiftEnd;\n } else {\n x0 = x2p(options.x0) + xShiftStart;\n x1 = x2p(options.x1) + xShiftEnd;\n }\n if (options.ysizemode === \"pixel\") {\n var yAnchorPos = y2p(options.yanchor);\n y0 = yAnchorPos - options.y0 + yShiftStart;\n y1 = yAnchorPos - options.y1 + yShiftEnd;\n } else {\n y0 = y2p(options.y0) + yShiftStart;\n y1 = y2p(options.y1) + yShiftEnd;\n }\n if (type === \"line\") return \"M\" + x0 + \",\" + y0 + \"L\" + x1 + \",\" + y1;\n if (type === \"rect\") return \"M\" + x0 + \",\" + y0 + \"H\" + x1 + \"V\" + y1 + \"H\" + x0 + \"Z\";\n var cx = (x0 + x1) / 2;\n var cy = (y0 + y1) / 2;\n var rx = Math.abs(cx - x0);\n var ry = Math.abs(cy - y0);\n var rArc = \"A\" + rx + \",\" + ry;\n var rightPt = cx + rx + \",\" + cy;\n var topPt = cx + \",\" + (cy - ry);\n return \"M\" + rightPt + rArc + \" 0 1,1 \" + topPt + rArc + \" 0 0,1 \" + rightPt + \"Z\";\n };\n function convertPath(options, x2p, y2p) {\n var pathIn = options.path;\n var xSizemode = options.xsizemode;\n var ySizemode = options.ysizemode;\n var xAnchor = options.xanchor;\n var yAnchor = options.yanchor;\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if (xParams[paramNumber]) {\n if (xSizemode === \"pixel\") param = x2p(xAnchor) + Number(param);\n else param = x2p(param);\n } else if (yParams[paramNumber]) {\n if (ySizemode === \"pixel\") param = y2p(yAnchor) - Number(param);\n else param = y2p(param);\n }\n paramNumber++;\n if (paramNumber > nParams) param = \"X\";\n return param;\n });\n if (paramNumber > nParams) {\n paramString = paramString.replace(/[\\s,]*X.*/, \"\");\n Lib.log(\"Ignoring extra params in segment \" + segment);\n }\n return segmentType + paramString;\n });\n }\n function getPixelShift(axis, shift) {\n shift = shift || 0;\n var shiftPixels = 0;\n if (shift && axis && (axis.type === \"category\" || axis.type === \"multicategory\")) {\n shiftPixels = (axis.r2p(1) - axis.r2p(0)) * shift;\n }\n return shiftPixels;\n }\n }\n });\n\n // src/components/shapes/display_labels.js\n var require_display_labels = __commonJS({\n \"src/components/shapes/display_labels.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var svgTextUtils = require_svg_text_utils();\n var Drawing = require_drawing();\n var readPaths = require_helpers7().readPaths;\n var helpers = require_helpers8();\n var getPathString = helpers.getPathString;\n var shapeLabelTexttemplateVars = require_label_texttemplate();\n var FROM_TL = require_alignment().FROM_TL;\n module.exports = function drawLabel(gd, index, options, shapeGroup) {\n shapeGroup.selectAll(\".shape-label\").remove();\n if (!(options.label.text || options.label.texttemplate)) return;\n var text;\n if (options.label.texttemplate) {\n var templateValues = {};\n if (options.type !== \"path\") {\n var _xa = Axes.getFromId(gd, options.xref);\n var _ya = Axes.getFromId(gd, options.yref);\n for (var key in shapeLabelTexttemplateVars) {\n var val = shapeLabelTexttemplateVars[key](options, _xa, _ya);\n if (val !== void 0) templateValues[key] = val;\n }\n }\n text = Lib.texttemplateStringForShapes(\n options.label.texttemplate,\n {},\n gd._fullLayout._d3locale,\n templateValues\n );\n } else {\n text = options.label.text;\n }\n var labelGroupAttrs = {\n \"data-index\": index\n };\n var font = options.label.font;\n var labelTextAttrs = {\n \"data-notex\": 1\n };\n var labelGroup = shapeGroup.append(\"g\").attr(labelGroupAttrs).classed(\"shape-label\", true);\n var labelText = labelGroup.append(\"text\").attr(labelTextAttrs).classed(\"shape-label-text\", true).text(text);\n var shapex0, shapex1, shapey0, shapey1;\n if (options.path) {\n var d = getPathString(gd, options);\n var polygons = readPaths(d, gd);\n shapex0 = Infinity;\n shapey0 = Infinity;\n shapex1 = -Infinity;\n shapey1 = -Infinity;\n for (var i = 0; i < polygons.length; i++) {\n for (var j = 0; j < polygons[i].length; j++) {\n var p = polygons[i][j];\n for (var k = 1; k < p.length; k += 2) {\n var _x = p[k];\n var _y = p[k + 1];\n shapex0 = Math.min(shapex0, _x);\n shapex1 = Math.max(shapex1, _x);\n shapey0 = Math.min(shapey0, _y);\n shapey1 = Math.max(shapey1, _y);\n }\n }\n }\n } else {\n var xa = Axes.getFromId(gd, options.xref);\n var xShiftStart = options.x0shift;\n var xShiftEnd = options.x1shift;\n var xRefType = Axes.getRefType(options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n var yShiftStart = options.y0shift;\n var yShiftEnd = options.y1shift;\n var yRefType = Axes.getRefType(options.yref);\n var x2p = function(v, shift) {\n var dataToPixel = helpers.getDataToPixel(gd, xa, shift, false, xRefType);\n return dataToPixel(v);\n };\n var y2p = function(v, shift) {\n var dataToPixel = helpers.getDataToPixel(gd, ya, shift, true, yRefType);\n return dataToPixel(v);\n };\n shapex0 = x2p(options.x0, xShiftStart);\n shapex1 = x2p(options.x1, xShiftEnd);\n shapey0 = y2p(options.y0, yShiftStart);\n shapey1 = y2p(options.y1, yShiftEnd);\n }\n var textangle = options.label.textangle;\n if (textangle === \"auto\") {\n if (options.type === \"line\") {\n textangle = calcTextAngle(shapex0, shapey0, shapex1, shapey1);\n } else {\n textangle = 0;\n }\n }\n labelText.call(function(s) {\n s.call(Drawing.font, font).attr({});\n svgTextUtils.convertToTspans(s, gd);\n return s;\n });\n var textBB = Drawing.bBox(labelText.node());\n var textPos = calcTextPosition(shapex0, shapey0, shapex1, shapey1, options, textangle, textBB);\n var textx = textPos.textx;\n var texty = textPos.texty;\n var xanchor = textPos.xanchor;\n labelText.attr({\n \"text-anchor\": {\n left: \"start\",\n center: \"middle\",\n right: \"end\"\n }[xanchor],\n y: texty,\n x: textx,\n transform: \"rotate(\" + textangle + \",\" + textx + \",\" + texty + \")\"\n }).call(svgTextUtils.positionText, textx, texty);\n };\n function calcTextAngle(shapex0, shapey0, shapex1, shapey1) {\n var dy, dx;\n dx = Math.abs(shapex1 - shapex0);\n if (shapex1 >= shapex0) {\n dy = shapey0 - shapey1;\n } else {\n dy = shapey1 - shapey0;\n }\n return -180 / Math.PI * Math.atan2(dy, dx);\n }\n function calcTextPosition(shapex0, shapey0, shapex1, shapey1, shapeOptions, actualTextAngle, textBB) {\n var textPosition = shapeOptions.label.textposition;\n var textAngle = shapeOptions.label.textangle;\n var textPadding = shapeOptions.label.padding;\n var shapeType = shapeOptions.type;\n var textAngleRad = Math.PI / 180 * actualTextAngle;\n var sinA = Math.sin(textAngleRad);\n var cosA = Math.cos(textAngleRad);\n var xanchor = shapeOptions.label.xanchor;\n var yanchor = shapeOptions.label.yanchor;\n var textx, texty, paddingX, paddingY;\n if (shapeType === \"line\") {\n if (textPosition === \"start\") {\n textx = shapex0;\n texty = shapey0;\n } else if (textPosition === \"end\") {\n textx = shapex1;\n texty = shapey1;\n } else {\n textx = (shapex0 + shapex1) / 2;\n texty = (shapey0 + shapey1) / 2;\n }\n if (xanchor === \"auto\") {\n if (textPosition === \"start\") {\n if (textAngle === \"auto\") {\n if (shapex1 > shapex0) xanchor = \"left\";\n else if (shapex1 < shapex0) xanchor = \"right\";\n else xanchor = \"center\";\n } else {\n if (shapex1 > shapex0) xanchor = \"right\";\n else if (shapex1 < shapex0) xanchor = \"left\";\n else xanchor = \"center\";\n }\n } else if (textPosition === \"end\") {\n if (textAngle === \"auto\") {\n if (shapex1 > shapex0) xanchor = \"right\";\n else if (shapex1 < shapex0) xanchor = \"left\";\n else xanchor = \"center\";\n } else {\n if (shapex1 > shapex0) xanchor = \"left\";\n else if (shapex1 < shapex0) xanchor = \"right\";\n else xanchor = \"center\";\n }\n } else {\n xanchor = \"center\";\n }\n }\n var paddingConstantsX = { left: 1, center: 0, right: -1 };\n var paddingConstantsY = { bottom: -1, middle: 0, top: 1 };\n if (textAngle === \"auto\") {\n var paddingDirection = paddingConstantsY[yanchor];\n paddingX = -textPadding * sinA * paddingDirection;\n paddingY = textPadding * cosA * paddingDirection;\n } else {\n var paddingDirectionX = paddingConstantsX[xanchor];\n var paddingDirectionY = paddingConstantsY[yanchor];\n paddingX = textPadding * paddingDirectionX;\n paddingY = textPadding * paddingDirectionY;\n }\n textx = textx + paddingX;\n texty = texty + paddingY;\n } else {\n paddingX = textPadding + 3;\n if (textPosition.indexOf(\"right\") !== -1) {\n textx = Math.max(shapex0, shapex1) - paddingX;\n if (xanchor === \"auto\") xanchor = \"right\";\n } else if (textPosition.indexOf(\"left\") !== -1) {\n textx = Math.min(shapex0, shapex1) + paddingX;\n if (xanchor === \"auto\") xanchor = \"left\";\n } else {\n textx = (shapex0 + shapex1) / 2;\n if (xanchor === \"auto\") xanchor = \"center\";\n }\n if (textPosition.indexOf(\"top\") !== -1) {\n texty = Math.min(shapey0, shapey1);\n } else if (textPosition.indexOf(\"bottom\") !== -1) {\n texty = Math.max(shapey0, shapey1);\n } else {\n texty = (shapey0 + shapey1) / 2;\n }\n paddingY = textPadding;\n if (yanchor === \"bottom\") {\n texty = texty - paddingY;\n } else if (yanchor === \"top\") {\n texty = texty + paddingY;\n }\n }\n var shiftFraction = FROM_TL[yanchor];\n var baselineAdjust = shapeOptions.label.font.size;\n var textHeight = textBB.height;\n var xshift = (textHeight * shiftFraction - baselineAdjust) * sinA;\n var yshift = -(textHeight * shiftFraction - baselineAdjust) * cosA;\n return { textx: textx + xshift, texty: texty + yshift, xanchor };\n }\n }\n });\n\n // src/components/shapes/display_outlines.js\n var require_display_outlines = __commonJS({\n \"src/components/shapes/display_outlines.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var dragElement = require_dragelement();\n var dragHelpers = require_helpers5();\n var drawMode = dragHelpers.drawMode;\n var selectMode = dragHelpers.selectMode;\n var Registry = require_registry();\n var Color2 = require_color();\n var constants = require_constants4();\n var i000 = constants.i000;\n var i090 = constants.i090;\n var i180 = constants.i180;\n var i270 = constants.i270;\n var handleOutline = require_handle_outline();\n var clearOutlineControllers = handleOutline.clearOutlineControllers;\n var helpers = require_helpers7();\n var pointsOnRectangle = helpers.pointsOnRectangle;\n var pointsOnEllipse = helpers.pointsOnEllipse;\n var writePaths = helpers.writePaths;\n var newShapes = require_newshapes().newShapes;\n var createShapeObj = require_newshapes().createShapeObj;\n var newSelections = require_newselections();\n var drawLabel = require_display_labels();\n module.exports = function displayOutlines(polygons, outlines, dragOptions, nCalls) {\n if (!nCalls) nCalls = 0;\n var gd = dragOptions.gd;\n function redraw() {\n displayOutlines(polygons, outlines, dragOptions, nCalls++);\n if (pointsOnEllipse(polygons[0]) || dragOptions.hasText) {\n update({ redrawing: true });\n }\n }\n function update(opts) {\n var updateObject = {};\n if (dragOptions.isActiveShape !== void 0) {\n dragOptions.isActiveShape = false;\n updateObject = newShapes(outlines, dragOptions);\n }\n if (dragOptions.isActiveSelection !== void 0) {\n dragOptions.isActiveSelection = false;\n updateObject = newSelections(outlines, dragOptions);\n gd._fullLayout._reselect = true;\n }\n if (Object.keys(updateObject).length) {\n Registry.call((opts || {}).redrawing ? \"relayout\" : \"_guiRelayout\", gd, updateObject);\n }\n }\n var fullLayout = gd._fullLayout;\n var zoomLayer = fullLayout._zoomlayer;\n var dragmode = dragOptions.dragmode;\n var isDrawMode = drawMode(dragmode);\n var isSelectMode = selectMode(dragmode);\n if (isDrawMode || isSelectMode) {\n gd._fullLayout._outlining = true;\n }\n clearOutlineControllers(gd);\n outlines.attr(\"d\", writePaths(polygons));\n var vertexDragOptions;\n var groupDragOptions;\n var indexI;\n var indexJ;\n var copyPolygons;\n if (!nCalls && (dragOptions.isActiveShape || dragOptions.isActiveSelection)) {\n copyPolygons = recordPositions([], polygons);\n var g = zoomLayer.append(\"g\").attr(\"class\", \"outline-controllers\");\n addVertexControllers(g);\n addGroupControllers();\n }\n if (isDrawMode && dragOptions.hasText) {\n var shapeGroup = zoomLayer.select(\".label-temp\");\n var shapeOptions = createShapeObj(outlines, dragOptions, dragOptions.dragmode);\n drawLabel(gd, \"label-temp\", shapeOptions, shapeGroup);\n }\n function startDragVertex(evt) {\n indexI = +evt.srcElement.getAttribute(\"data-i\");\n indexJ = +evt.srcElement.getAttribute(\"data-j\");\n vertexDragOptions[indexI][indexJ].moveFn = moveVertexController;\n }\n function moveVertexController(dx, dy) {\n if (!polygons.length) return;\n var x0 = copyPolygons[indexI][indexJ][1];\n var y0 = copyPolygons[indexI][indexJ][2];\n var cell = polygons[indexI];\n var len = cell.length;\n if (pointsOnRectangle(cell)) {\n var _dx = dx;\n var _dy = dy;\n if (dragOptions.isActiveSelection) {\n var nextPoint = getNextPoint(cell, indexJ);\n if (nextPoint[1] === cell[indexJ][1]) {\n _dy = 0;\n } else {\n _dx = 0;\n }\n }\n for (var q = 0; q < len; q++) {\n if (q === indexJ) continue;\n var pos = cell[q];\n if (pos[1] === cell[indexJ][1]) {\n pos[1] = x0 + _dx;\n }\n if (pos[2] === cell[indexJ][2]) {\n pos[2] = y0 + _dy;\n }\n }\n cell[indexJ][1] = x0 + _dx;\n cell[indexJ][2] = y0 + _dy;\n if (!pointsOnRectangle(cell)) {\n for (var j = 0; j < len; j++) {\n for (var k = 0; k < cell[j].length; k++) {\n cell[j][k] = copyPolygons[indexI][j][k];\n }\n }\n }\n } else {\n cell[indexJ][1] = x0 + dx;\n cell[indexJ][2] = y0 + dy;\n }\n redraw();\n }\n function endDragVertexController() {\n update();\n }\n function removeVertex() {\n if (!polygons.length) return;\n if (!polygons[indexI]) return;\n if (!polygons[indexI].length) return;\n var newPolygon = [];\n for (var j = 0; j < polygons[indexI].length; j++) {\n if (j !== indexJ) {\n newPolygon.push(\n polygons[indexI][j]\n );\n }\n }\n if (newPolygon.length > 1 && !(newPolygon.length === 2 && newPolygon[1][0] === \"Z\")) {\n if (indexJ === 0) {\n newPolygon[0][0] = \"M\";\n }\n polygons[indexI] = newPolygon;\n redraw();\n update();\n }\n }\n function clickVertexController(numClicks, evt) {\n if (numClicks === 2) {\n indexI = +evt.srcElement.getAttribute(\"data-i\");\n indexJ = +evt.srcElement.getAttribute(\"data-j\");\n var cell = polygons[indexI];\n if (!pointsOnRectangle(cell) && !pointsOnEllipse(cell)) {\n removeVertex();\n }\n }\n }\n function addVertexControllers(g2) {\n vertexDragOptions = [];\n for (var i = 0; i < polygons.length; i++) {\n var cell = polygons[i];\n var onRect = pointsOnRectangle(cell);\n var onEllipse = !onRect && pointsOnEllipse(cell);\n vertexDragOptions[i] = [];\n var len = cell.length;\n for (var j = 0; j < len; j++) {\n if (cell[j][0] === \"Z\") continue;\n if (onEllipse && j !== i000 && j !== i090 && j !== i180 && j !== i270) {\n continue;\n }\n var rectSelection = onRect && dragOptions.isActiveSelection;\n var nextPoint;\n if (rectSelection) nextPoint = getNextPoint(cell, j);\n var x = cell[j][1];\n var y = cell[j][2];\n var vertex = g2.append(rectSelection ? \"rect\" : \"circle\").attr(\"data-i\", i).attr(\"data-j\", j).style({\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": 1,\n \"shape-rendering\": \"crispEdges\"\n });\n if (rectSelection) {\n var dx = nextPoint[1] - x;\n var dy = nextPoint[2] - y;\n var width = dy ? 5 : Math.max(Math.min(25, Math.abs(dx) - 5), 5);\n var height = dx ? 5 : Math.max(Math.min(25, Math.abs(dy) - 5), 5);\n vertex.classed(dy ? \"cursor-ew-resize\" : \"cursor-ns-resize\", true).attr(\"width\", width).attr(\"height\", height).attr(\"x\", x - width / 2).attr(\"y\", y - height / 2).attr(\"transform\", strTranslate(dx / 2, dy / 2));\n } else {\n vertex.classed(\"cursor-grab\", true).attr(\"r\", 5).attr(\"cx\", x).attr(\"cy\", y);\n }\n vertexDragOptions[i][j] = {\n element: vertex.node(),\n gd,\n prepFn: startDragVertex,\n doneFn: endDragVertexController,\n clickFn: clickVertexController\n };\n dragElement.init(vertexDragOptions[i][j]);\n }\n }\n }\n function moveGroup(dx, dy) {\n if (!polygons.length) return;\n for (var i = 0; i < polygons.length; i++) {\n for (var j = 0; j < polygons[i].length; j++) {\n for (var k = 0; k + 2 < polygons[i][j].length; k += 2) {\n polygons[i][j][k + 1] = copyPolygons[i][j][k + 1] + dx;\n polygons[i][j][k + 2] = copyPolygons[i][j][k + 2] + dy;\n }\n }\n }\n }\n function moveGroupController(dx, dy) {\n moveGroup(dx, dy);\n redraw();\n }\n function startDragGroupController(evt) {\n indexI = +evt.srcElement.getAttribute(\"data-i\");\n if (!indexI) indexI = 0;\n groupDragOptions[indexI].moveFn = moveGroupController;\n }\n function endDragGroupController() {\n update();\n }\n function clickGroupController(numClicks) {\n if (numClicks === 2) {\n eraseActiveSelection(gd);\n }\n }\n function addGroupControllers() {\n groupDragOptions = [];\n if (!polygons.length) return;\n var i = 0;\n groupDragOptions[i] = {\n element: outlines[0][0],\n gd,\n prepFn: startDragGroupController,\n doneFn: endDragGroupController,\n clickFn: clickGroupController\n };\n dragElement.init(groupDragOptions[i]);\n }\n };\n function recordPositions(polygonsOut, polygonsIn) {\n for (var i = 0; i < polygonsIn.length; i++) {\n var cell = polygonsIn[i];\n polygonsOut[i] = [];\n for (var j = 0; j < cell.length; j++) {\n polygonsOut[i][j] = [];\n for (var k = 0; k < cell[j].length; k++) {\n polygonsOut[i][j][k] = cell[j][k];\n }\n }\n }\n return polygonsOut;\n }\n function getNextPoint(cell, j) {\n var x = cell[j][1];\n var y = cell[j][2];\n var len = cell.length;\n var nextJ, nextX, nextY;\n nextJ = (j + 1) % len;\n nextX = cell[nextJ][1];\n nextY = cell[nextJ][2];\n if (nextX === x && nextY === y) {\n nextJ = (j + 2) % len;\n nextX = cell[nextJ][1];\n nextY = cell[nextJ][2];\n }\n return [nextJ, nextX, nextY];\n }\n function eraseActiveSelection(gd) {\n if (!selectMode(gd._fullLayout.dragmode)) return;\n clearOutlineControllers(gd);\n var id = gd._fullLayout._activeSelectionIndex;\n var selections = (gd.layout || {}).selections || [];\n if (id < selections.length) {\n var list = [];\n for (var q = 0; q < selections.length; q++) {\n if (q !== id) {\n list.push(selections[q]);\n }\n }\n delete gd._fullLayout._activeSelectionIndex;\n var erasedSelection = gd._fullLayout.selections[id];\n gd._fullLayout._deselect = {\n xref: erasedSelection.xref,\n yref: erasedSelection.yref\n };\n Registry.call(\"_guiRelayout\", gd, {\n selections: list\n });\n }\n }\n }\n });\n\n // src/components/shapes/draw.js\n var require_draw2 = __commonJS({\n \"src/components/shapes/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var Axes = require_axes();\n var readPaths = require_helpers7().readPaths;\n var displayOutlines = require_display_outlines();\n var drawLabel = require_display_labels();\n var clearOutlineControllers = require_handle_outline().clearOutlineControllers;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var arrayEditor = require_plot_template().arrayEditor;\n var dragElement = require_dragelement();\n var setCursor = require_setcursor();\n var constants = require_constants5();\n var helpers = require_helpers8();\n var getPathString = helpers.getPathString;\n module.exports = {\n draw,\n drawOne,\n eraseActiveShape,\n drawLabel\n };\n function draw(gd) {\n var fullLayout = gd._fullLayout;\n fullLayout._shapeUpperLayer.selectAll(\"path\").remove();\n fullLayout._shapeLowerLayer.selectAll(\"path\").remove();\n fullLayout._shapeUpperLayer.selectAll(\"text\").remove();\n fullLayout._shapeLowerLayer.selectAll(\"text\").remove();\n for (var k in fullLayout._plots) {\n var shapelayer = fullLayout._plots[k].shapelayer;\n if (shapelayer) {\n shapelayer.selectAll(\"path\").remove();\n shapelayer.selectAll(\"text\").remove();\n }\n }\n for (var i = 0; i < fullLayout.shapes.length; i++) {\n if (fullLayout.shapes[i].visible === true) {\n drawOne(gd, i);\n }\n }\n }\n function shouldSkipEdits(gd) {\n return !!gd._fullLayout._outlining;\n }\n function couldHaveActiveShape(gd) {\n return !gd._context.edits.shapePosition;\n }\n function drawOne(gd, index) {\n gd._fullLayout._paperdiv.selectAll('.shapelayer [data-index=\"' + index + '\"]').remove();\n var o = helpers.makeShapesOptionsAndPlotinfo(gd, index);\n var options = o.options;\n var plotinfo = o.plotinfo;\n if (!options._input || options.visible !== true) return;\n if (options.layer === \"above\") {\n drawShape(gd._fullLayout._shapeUpperLayer);\n } else if (options.xref === \"paper\" || options.yref === \"paper\") {\n drawShape(gd._fullLayout._shapeLowerLayer);\n } else if (options.layer === \"between\") {\n drawShape(plotinfo.shapelayerBetween);\n } else {\n if (plotinfo._hadPlotinfo) {\n var mainPlot = plotinfo.mainplotinfo || plotinfo;\n drawShape(mainPlot.shapelayer);\n } else {\n drawShape(gd._fullLayout._shapeLowerLayer);\n }\n }\n function drawShape(shapeLayer) {\n var d = getPathString(gd, options);\n var attrs = {\n \"data-index\": index,\n \"fill-rule\": options.fillrule,\n d\n };\n var opacity = options.opacity;\n var fillColor = options.fillcolor;\n var lineColor = options.line.width ? options.line.color : \"rgba(0,0,0,0)\";\n var lineWidth = options.line.width;\n var lineDash = options.line.dash;\n if (!lineWidth && options.editable === true) {\n lineWidth = 5;\n lineDash = \"solid\";\n }\n var isOpen = d[d.length - 1] !== \"Z\";\n var isActiveShape = couldHaveActiveShape(gd) && options.editable && gd._fullLayout._activeShapeIndex === index;\n if (isActiveShape) {\n fillColor = isOpen ? \"rgba(0,0,0,0)\" : gd._fullLayout.activeshape.fillcolor;\n opacity = gd._fullLayout.activeshape.opacity;\n }\n var shapeGroup = shapeLayer.append(\"g\").classed(\"shape-group\", true).attr({ \"data-index\": index });\n var path = shapeGroup.append(\"path\").attr(attrs).style(\"opacity\", opacity).call(Color2.stroke, lineColor).call(Color2.fill, fillColor).call(Drawing.dashLine, lineDash, lineWidth);\n setClipPath(shapeGroup, gd, options);\n drawLabel(gd, index, options, shapeGroup);\n var editHelpers;\n if (isActiveShape || gd._context.edits.shapePosition) editHelpers = arrayEditor(gd.layout, \"shapes\", options);\n if (isActiveShape) {\n path.style({\n cursor: \"move\"\n });\n var dragOptions = {\n element: path.node(),\n plotinfo,\n gd,\n editHelpers,\n hasText: options.label.text || options.label.texttemplate,\n isActiveShape: true\n // i.e. to enable controllers\n };\n var polygons = readPaths(d, gd);\n displayOutlines(polygons, path, dragOptions);\n } else {\n if (gd._context.edits.shapePosition) {\n setupDragElement(gd, path, options, index, shapeLayer, editHelpers);\n } else if (options.editable === true) {\n path.style(\n \"pointer-events\",\n isOpen || Color2.opacity(fillColor) * opacity <= 0.5 ? \"stroke\" : \"all\"\n );\n }\n }\n path.node().addEventListener(\"click\", function() {\n return activateShape(gd, path);\n });\n }\n }\n function setClipPath(shapePath, gd, shapeOptions) {\n var clipAxes = (shapeOptions.xref + shapeOptions.yref).replace(/paper/g, \"\").replace(/[xyz][1-9]* *domain/g, \"\");\n Drawing.setClipUrl(\n shapePath,\n clipAxes ? \"clip\" + gd._fullLayout._uid + clipAxes : null,\n gd\n );\n }\n function setupDragElement(gd, shapePath, shapeOptions, index, shapeLayer, editHelpers) {\n var MINWIDTH = 10;\n var MINHEIGHT = 10;\n var xPixelSized = shapeOptions.xsizemode === \"pixel\";\n var yPixelSized = shapeOptions.ysizemode === \"pixel\";\n var isLine = shapeOptions.type === \"line\";\n var isPath = shapeOptions.type === \"path\";\n var modifyItem = editHelpers.modifyItem;\n var x0, y0, x1, y1, xAnchor, yAnchor;\n var n0, s0, w0, e0, optN, optS, optW, optE;\n var pathIn;\n var shapeGroup = d3.select(shapePath.node().parentNode);\n var xa = Axes.getFromId(gd, shapeOptions.xref);\n var xRefType = Axes.getRefType(shapeOptions.xref);\n var ya = Axes.getFromId(gd, shapeOptions.yref);\n var yRefType = Axes.getRefType(shapeOptions.yref);\n var shiftXStart = shapeOptions.x0shift;\n var shiftXEnd = shapeOptions.x1shift;\n var shiftYStart = shapeOptions.y0shift;\n var shiftYEnd = shapeOptions.y1shift;\n var x2p = function(v, shift) {\n var dataToPixel = helpers.getDataToPixel(gd, xa, shift, false, xRefType);\n return dataToPixel(v);\n };\n var y2p = function(v, shift) {\n var dataToPixel = helpers.getDataToPixel(gd, ya, shift, true, yRefType);\n return dataToPixel(v);\n };\n var p2x = helpers.getPixelToData(gd, xa, false, xRefType);\n var p2y = helpers.getPixelToData(gd, ya, true, yRefType);\n var sensoryElement = obtainSensoryElement();\n var dragOptions = {\n element: sensoryElement.node(),\n gd,\n prepFn: startDrag,\n doneFn: endDrag,\n clickFn: abortDrag\n };\n var dragMode;\n dragElement.init(dragOptions);\n sensoryElement.node().onmousemove = updateDragMode;\n function obtainSensoryElement() {\n return isLine ? createLineDragHandles() : shapePath;\n }\n function createLineDragHandles() {\n var minSensoryWidth = 10;\n var sensoryWidth = Math.max(shapeOptions.line.width, minSensoryWidth);\n var g = shapeLayer.append(\"g\").attr(\"data-index\", index).attr(\"drag-helper\", true);\n g.append(\"path\").attr(\"d\", shapePath.attr(\"d\")).style({\n cursor: \"move\",\n \"stroke-width\": sensoryWidth,\n \"stroke-opacity\": \"0\"\n // ensure not visible\n });\n var circleStyle = {\n \"fill-opacity\": \"0\"\n // ensure not visible\n };\n var circleRadius = Math.max(sensoryWidth / 2, minSensoryWidth);\n g.append(\"circle\").attr({\n \"data-line-point\": \"start-point\",\n cx: xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x0 : x2p(shapeOptions.x0, shiftXStart),\n cy: yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y0 : y2p(shapeOptions.y0, shiftYStart),\n r: circleRadius\n }).style(circleStyle).classed(\"cursor-grab\", true);\n g.append(\"circle\").attr({\n \"data-line-point\": \"end-point\",\n cx: xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x1 : x2p(shapeOptions.x1, shiftXEnd),\n cy: yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y1 : y2p(shapeOptions.y1, shiftYEnd),\n r: circleRadius\n }).style(circleStyle).classed(\"cursor-grab\", true);\n return g;\n }\n function updateDragMode(evt) {\n if (shouldSkipEdits(gd)) {\n dragMode = null;\n return;\n }\n if (isLine) {\n if (evt.target.tagName === \"path\") {\n dragMode = \"move\";\n } else {\n dragMode = evt.target.attributes[\"data-line-point\"].value === \"start-point\" ? \"resize-over-start-point\" : \"resize-over-end-point\";\n }\n } else {\n var dragBBox = dragOptions.element.getBoundingClientRect();\n var w = dragBBox.right - dragBBox.left;\n var h = dragBBox.bottom - dragBBox.top;\n var x = evt.clientX - dragBBox.left;\n var y = evt.clientY - dragBBox.top;\n var cursor = !isPath && w > MINWIDTH && h > MINHEIGHT && !evt.shiftKey ? dragElement.getCursor(x / w, 1 - y / h) : \"move\";\n setCursor(shapePath, cursor);\n dragMode = cursor.split(\"-\")[0];\n }\n }\n function startDrag(evt) {\n if (shouldSkipEdits(gd)) return;\n if (xPixelSized) {\n xAnchor = x2p(shapeOptions.xanchor);\n }\n if (yPixelSized) {\n yAnchor = y2p(shapeOptions.yanchor);\n }\n if (shapeOptions.type === \"path\") {\n pathIn = shapeOptions.path;\n } else {\n x0 = xPixelSized ? shapeOptions.x0 : x2p(shapeOptions.x0);\n y0 = yPixelSized ? shapeOptions.y0 : y2p(shapeOptions.y0);\n x1 = xPixelSized ? shapeOptions.x1 : x2p(shapeOptions.x1);\n y1 = yPixelSized ? shapeOptions.y1 : y2p(shapeOptions.y1);\n }\n if (x0 < x1) {\n w0 = x0;\n optW = \"x0\";\n e0 = x1;\n optE = \"x1\";\n } else {\n w0 = x1;\n optW = \"x1\";\n e0 = x0;\n optE = \"x0\";\n }\n if (!yPixelSized && y0 < y1 || yPixelSized && y0 > y1) {\n n0 = y0;\n optN = \"y0\";\n s0 = y1;\n optS = \"y1\";\n } else {\n n0 = y1;\n optN = \"y1\";\n s0 = y0;\n optS = \"y0\";\n }\n updateDragMode(evt);\n renderVisualCues(shapeLayer, shapeOptions);\n deactivateClipPathTemporarily(shapePath, shapeOptions, gd);\n dragOptions.moveFn = dragMode === \"move\" ? moveShape : resizeShape;\n dragOptions.altKey = evt.altKey;\n }\n function endDrag() {\n if (shouldSkipEdits(gd)) return;\n setCursor(shapePath);\n removeVisualCues(shapeLayer);\n setClipPath(shapePath, gd, shapeOptions);\n Registry.call(\"_guiRelayout\", gd, editHelpers.getUpdateObj());\n }\n function abortDrag() {\n if (shouldSkipEdits(gd)) return;\n removeVisualCues(shapeLayer);\n }\n function moveShape(dx, dy) {\n if (shapeOptions.type === \"path\") {\n var noOp = function(coord) {\n return coord;\n };\n var moveX = noOp;\n var moveY = noOp;\n if (xPixelSized) {\n modifyItem(\"xanchor\", shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX2(x) {\n return p2x(x2p(x) + dx);\n };\n if (xa && xa.type === \"date\") moveX = helpers.encodeDate(moveX);\n }\n if (yPixelSized) {\n modifyItem(\"yanchor\", shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY2(y) {\n return p2y(y2p(y) + dy);\n };\n if (ya && ya.type === \"date\") moveY = helpers.encodeDate(moveY);\n }\n modifyItem(\"path\", shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else {\n if (xPixelSized) {\n modifyItem(\"xanchor\", shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n modifyItem(\"x0\", shapeOptions.x0 = p2x(x0 + dx));\n modifyItem(\"x1\", shapeOptions.x1 = p2x(x1 + dx));\n }\n if (yPixelSized) {\n modifyItem(\"yanchor\", shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n modifyItem(\"y0\", shapeOptions.y0 = p2y(y0 + dy));\n modifyItem(\"y1\", shapeOptions.y1 = p2y(y1 + dy));\n }\n }\n shapePath.attr(\"d\", getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n drawLabel(gd, index, shapeOptions, shapeGroup);\n }\n function resizeShape(dx, dy) {\n if (isPath) {\n var noOp = function(coord) {\n return coord;\n };\n var moveX = noOp;\n var moveY = noOp;\n if (xPixelSized) {\n modifyItem(\"xanchor\", shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX2(x) {\n return p2x(x2p(x) + dx);\n };\n if (xa && xa.type === \"date\") moveX = helpers.encodeDate(moveX);\n }\n if (yPixelSized) {\n modifyItem(\"yanchor\", shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY2(y) {\n return p2y(y2p(y) + dy);\n };\n if (ya && ya.type === \"date\") moveY = helpers.encodeDate(moveY);\n }\n modifyItem(\"path\", shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else if (isLine) {\n if (dragMode === \"resize-over-start-point\") {\n var newX0 = x0 + dx;\n var newY0 = yPixelSized ? y0 - dy : y0 + dy;\n modifyItem(\"x0\", shapeOptions.x0 = xPixelSized ? newX0 : p2x(newX0));\n modifyItem(\"y0\", shapeOptions.y0 = yPixelSized ? newY0 : p2y(newY0));\n } else if (dragMode === \"resize-over-end-point\") {\n var newX1 = x1 + dx;\n var newY1 = yPixelSized ? y1 - dy : y1 + dy;\n modifyItem(\"x1\", shapeOptions.x1 = xPixelSized ? newX1 : p2x(newX1));\n modifyItem(\"y1\", shapeOptions.y1 = yPixelSized ? newY1 : p2y(newY1));\n }\n } else {\n var has = function(str) {\n return dragMode.indexOf(str) !== -1;\n };\n var hasN = has(\"n\");\n var hasS = has(\"s\");\n var hasW = has(\"w\");\n var hasE = has(\"e\");\n var newN = hasN ? n0 + dy : n0;\n var newS = hasS ? s0 + dy : s0;\n var newW = hasW ? w0 + dx : w0;\n var newE = hasE ? e0 + dx : e0;\n if (yPixelSized) {\n if (hasN) newN = n0 - dy;\n if (hasS) newS = s0 - dy;\n }\n if (!yPixelSized && newS - newN > MINHEIGHT || yPixelSized && newN - newS > MINHEIGHT) {\n modifyItem(optN, shapeOptions[optN] = yPixelSized ? newN : p2y(newN));\n modifyItem(optS, shapeOptions[optS] = yPixelSized ? newS : p2y(newS));\n }\n if (newE - newW > MINWIDTH) {\n modifyItem(optW, shapeOptions[optW] = xPixelSized ? newW : p2x(newW));\n modifyItem(optE, shapeOptions[optE] = xPixelSized ? newE : p2x(newE));\n }\n }\n shapePath.attr(\"d\", getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n drawLabel(gd, index, shapeOptions, shapeGroup);\n }\n function renderVisualCues(shapeLayer2, shapeOptions2) {\n if (xPixelSized || yPixelSized) {\n renderAnchor();\n }\n function renderAnchor() {\n var isNotPath = shapeOptions2.type !== \"path\";\n var visualCues = shapeLayer2.selectAll(\".visual-cue\").data([0]);\n var strokeWidth = 1;\n visualCues.enter().append(\"path\").attr({\n fill: \"#fff\",\n \"fill-rule\": \"evenodd\",\n stroke: \"#000\",\n \"stroke-width\": strokeWidth\n }).classed(\"visual-cue\", true);\n var posX = x2p(\n xPixelSized ? shapeOptions2.xanchor : Lib.midRange(\n isNotPath ? [shapeOptions2.x0, shapeOptions2.x1] : helpers.extractPathCoords(shapeOptions2.path, constants.paramIsX)\n )\n );\n var posY = y2p(\n yPixelSized ? shapeOptions2.yanchor : Lib.midRange(\n isNotPath ? [shapeOptions2.y0, shapeOptions2.y1] : helpers.extractPathCoords(shapeOptions2.path, constants.paramIsY)\n )\n );\n posX = helpers.roundPositionForSharpStrokeRendering(posX, strokeWidth);\n posY = helpers.roundPositionForSharpStrokeRendering(posY, strokeWidth);\n if (xPixelSized && yPixelSized) {\n var crossPath = \"M\" + (posX - 1 - strokeWidth) + \",\" + (posY - 1 - strokeWidth) + \"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z\";\n visualCues.attr(\"d\", crossPath);\n } else if (xPixelSized) {\n var vBarPath = \"M\" + (posX - 1 - strokeWidth) + \",\" + (posY - 9 - strokeWidth) + \"v18 h2 v-18 Z\";\n visualCues.attr(\"d\", vBarPath);\n } else {\n var hBarPath = \"M\" + (posX - 9 - strokeWidth) + \",\" + (posY - 1 - strokeWidth) + \"h18 v2 h-18 Z\";\n visualCues.attr(\"d\", hBarPath);\n }\n }\n }\n function removeVisualCues(shapeLayer2) {\n shapeLayer2.selectAll(\".visual-cue\").remove();\n }\n function deactivateClipPathTemporarily(shapePath2, shapeOptions2, gd2) {\n var xref = shapeOptions2.xref;\n var yref = shapeOptions2.yref;\n var xa2 = Axes.getFromId(gd2, xref);\n var ya2 = Axes.getFromId(gd2, yref);\n var clipAxes = \"\";\n if (xref !== \"paper\" && !xa2.autorange) clipAxes += xref;\n if (yref !== \"paper\" && !ya2.autorange) clipAxes += yref;\n Drawing.setClipUrl(\n shapePath2,\n clipAxes ? \"clip\" + gd2._fullLayout._uid + clipAxes : null,\n gd2\n );\n }\n }\n function movePath(pathIn, moveX, moveY) {\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if (paramNumber >= nParams) return param;\n if (xParams[paramNumber]) param = moveX(param);\n else if (yParams[paramNumber]) param = moveY(param);\n paramNumber++;\n return param;\n });\n return segmentType + paramString;\n });\n }\n function activateShape(gd, path) {\n if (!couldHaveActiveShape(gd)) return;\n var element = path.node();\n var id = +element.getAttribute(\"data-index\");\n if (id >= 0) {\n if (id === gd._fullLayout._activeShapeIndex) {\n deactivateShape(gd);\n return;\n }\n gd._fullLayout._activeShapeIndex = id;\n gd._fullLayout._deactivateShape = deactivateShape;\n draw(gd);\n }\n }\n function deactivateShape(gd) {\n if (!couldHaveActiveShape(gd)) return;\n var id = gd._fullLayout._activeShapeIndex;\n if (id >= 0) {\n clearOutlineControllers(gd);\n delete gd._fullLayout._activeShapeIndex;\n draw(gd);\n }\n }\n function eraseActiveShape(gd) {\n if (!couldHaveActiveShape(gd)) return;\n clearOutlineControllers(gd);\n var id = gd._fullLayout._activeShapeIndex;\n var shapes = (gd.layout || {}).shapes || [];\n if (id < shapes.length) {\n var list = [];\n for (var q = 0; q < shapes.length; q++) {\n if (q !== id) {\n list.push(shapes[q]);\n }\n }\n delete gd._fullLayout._activeShapeIndex;\n return Registry.call(\"_guiRelayout\", gd, {\n shapes: list\n });\n }\n }\n }\n });\n\n // src/components/modebar/buttons.js\n var require_buttons = __commonJS({\n \"src/components/modebar/buttons.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Plots = require_plots();\n var axisIds = require_axis_ids();\n var Icons = require_ploticon();\n var eraseActiveShape = require_draw2().eraseActiveShape;\n var Lib = require_lib();\n var _ = Lib._;\n var modeBarButtons = module.exports = {};\n modeBarButtons.toImage = {\n name: \"toImage\",\n title: function(gd) {\n var opts = gd._context.toImageButtonOptions || {};\n var format = opts.format || \"png\";\n return format === \"png\" ? _(gd, \"Download plot as a png\") : (\n // legacy text\n _(gd, \"Download plot\")\n );\n },\n icon: Icons.camera,\n click: function(gd) {\n var toImageButtonOptions = gd._context.toImageButtonOptions;\n var opts = { format: toImageButtonOptions.format || \"png\" };\n Lib.notifier(_(gd, \"Taking snapshot - this may take a few seconds\"), \"long\");\n [\"filename\", \"width\", \"height\", \"scale\"].forEach(function(key) {\n if (key in toImageButtonOptions) {\n opts[key] = toImageButtonOptions[key];\n }\n });\n Registry.call(\"downloadImage\", gd, opts).then(function(filename) {\n Lib.notifier(_(gd, \"Snapshot succeeded\") + \" - \" + filename, \"long\");\n }).catch(function() {\n Lib.notifier(_(gd, \"Sorry, there was a problem downloading your snapshot!\"), \"long\");\n });\n }\n };\n modeBarButtons.sendDataToCloud = {\n name: \"sendDataToCloud\",\n title: function(gd) {\n return _(gd, \"Edit in Chart Studio\");\n },\n icon: Icons.disk,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n };\n modeBarButtons.editInChartStudio = {\n name: \"editInChartStudio\",\n title: function(gd) {\n return _(gd, \"Edit in Chart Studio\");\n },\n icon: Icons.pencil,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n };\n modeBarButtons.zoom2d = {\n name: \"zoom2d\",\n _cat: \"zoom\",\n title: function(gd) {\n return _(gd, \"Zoom\");\n },\n attr: \"dragmode\",\n val: \"zoom\",\n icon: Icons.zoombox,\n click: handleCartesian\n };\n modeBarButtons.pan2d = {\n name: \"pan2d\",\n _cat: \"pan\",\n title: function(gd) {\n return _(gd, \"Pan\");\n },\n attr: \"dragmode\",\n val: \"pan\",\n icon: Icons.pan,\n click: handleCartesian\n };\n modeBarButtons.select2d = {\n name: \"select2d\",\n _cat: \"select\",\n title: function(gd) {\n return _(gd, \"Box Select\");\n },\n attr: \"dragmode\",\n val: \"select\",\n icon: Icons.selectbox,\n click: handleCartesian\n };\n modeBarButtons.lasso2d = {\n name: \"lasso2d\",\n _cat: \"lasso\",\n title: function(gd) {\n return _(gd, \"Lasso Select\");\n },\n attr: \"dragmode\",\n val: \"lasso\",\n icon: Icons.lasso,\n click: handleCartesian\n };\n modeBarButtons.drawclosedpath = {\n name: \"drawclosedpath\",\n title: function(gd) {\n return _(gd, \"Draw closed freeform\");\n },\n attr: \"dragmode\",\n val: \"drawclosedpath\",\n icon: Icons.drawclosedpath,\n click: handleCartesian\n };\n modeBarButtons.drawopenpath = {\n name: \"drawopenpath\",\n title: function(gd) {\n return _(gd, \"Draw open freeform\");\n },\n attr: \"dragmode\",\n val: \"drawopenpath\",\n icon: Icons.drawopenpath,\n click: handleCartesian\n };\n modeBarButtons.drawline = {\n name: \"drawline\",\n title: function(gd) {\n return _(gd, \"Draw line\");\n },\n attr: \"dragmode\",\n val: \"drawline\",\n icon: Icons.drawline,\n click: handleCartesian\n };\n modeBarButtons.drawrect = {\n name: \"drawrect\",\n title: function(gd) {\n return _(gd, \"Draw rectangle\");\n },\n attr: \"dragmode\",\n val: \"drawrect\",\n icon: Icons.drawrect,\n click: handleCartesian\n };\n modeBarButtons.drawcircle = {\n name: \"drawcircle\",\n title: function(gd) {\n return _(gd, \"Draw circle\");\n },\n attr: \"dragmode\",\n val: \"drawcircle\",\n icon: Icons.drawcircle,\n click: handleCartesian\n };\n modeBarButtons.eraseshape = {\n name: \"eraseshape\",\n title: function(gd) {\n return _(gd, \"Erase active shape\");\n },\n icon: Icons.eraseshape,\n click: eraseActiveShape\n };\n modeBarButtons.zoomIn2d = {\n name: \"zoomIn2d\",\n _cat: \"zoomin\",\n title: function(gd) {\n return _(gd, \"Zoom in\");\n },\n attr: \"zoom\",\n val: \"in\",\n icon: Icons.zoom_plus,\n click: handleCartesian\n };\n modeBarButtons.zoomOut2d = {\n name: \"zoomOut2d\",\n _cat: \"zoomout\",\n title: function(gd) {\n return _(gd, \"Zoom out\");\n },\n attr: \"zoom\",\n val: \"out\",\n icon: Icons.zoom_minus,\n click: handleCartesian\n };\n modeBarButtons.autoScale2d = {\n name: \"autoScale2d\",\n _cat: \"autoscale\",\n title: function(gd) {\n return _(gd, \"Autoscale\");\n },\n attr: \"zoom\",\n val: \"auto\",\n icon: Icons.autoscale,\n click: handleCartesian\n };\n modeBarButtons.resetScale2d = {\n name: \"resetScale2d\",\n _cat: \"resetscale\",\n title: function(gd) {\n return _(gd, \"Reset axes\");\n },\n attr: \"zoom\",\n val: \"reset\",\n icon: Icons.home,\n click: handleCartesian\n };\n modeBarButtons.hoverClosestCartesian = {\n name: \"hoverClosestCartesian\",\n _cat: \"hoverclosest\",\n title: function(gd) {\n return _(gd, \"Show closest data on hover\");\n },\n attr: \"hovermode\",\n val: \"closest\",\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: handleCartesian\n };\n modeBarButtons.hoverCompareCartesian = {\n name: \"hoverCompareCartesian\",\n _cat: \"hoverCompare\",\n title: function(gd) {\n return _(gd, \"Compare data on hover\");\n },\n attr: \"hovermode\",\n val: function(gd) {\n return gd._fullLayout._isHoriz ? \"y\" : \"x\";\n },\n icon: Icons.tooltip_compare,\n gravity: \"ne\",\n click: handleCartesian\n };\n function handleCartesian(gd, ev) {\n var button = ev.currentTarget;\n var astr = button.getAttribute(\"data-attr\");\n var val = button.getAttribute(\"data-val\") || true;\n var fullLayout = gd._fullLayout;\n var aobj = {};\n var axList = axisIds.list(gd, null, true);\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n var ax, i;\n if (astr === \"zoom\") {\n var mag = val === \"in\" ? 0.5 : 2;\n var r0 = (1 + mag) / 2;\n var r1 = (1 - mag) / 2;\n var axName;\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n if (!ax.fixedrange) {\n axName = ax._name;\n if (val === \"auto\") {\n aobj[axName + \".autorange\"] = true;\n } else if (val === \"reset\") {\n if (ax._rangeInitial0 === void 0 && ax._rangeInitial1 === void 0) {\n aobj[axName + \".autorange\"] = true;\n } else if (ax._rangeInitial0 === void 0) {\n aobj[axName + \".autorange\"] = ax._autorangeInitial;\n aobj[axName + \".range\"] = [null, ax._rangeInitial1];\n } else if (ax._rangeInitial1 === void 0) {\n aobj[axName + \".range\"] = [ax._rangeInitial0, null];\n aobj[axName + \".autorange\"] = ax._autorangeInitial;\n } else {\n aobj[axName + \".range\"] = [ax._rangeInitial0, ax._rangeInitial1];\n }\n if (ax._showSpikeInitial !== void 0) {\n aobj[axName + \".showspikes\"] = ax._showSpikeInitial;\n if (allSpikesEnabled === \"on\" && !ax._showSpikeInitial) {\n allSpikesEnabled = \"off\";\n }\n }\n } else {\n var rangeNow = [\n ax.r2l(ax.range[0]),\n ax.r2l(ax.range[1])\n ];\n var rangeNew = [\n r0 * rangeNow[0] + r1 * rangeNow[1],\n r0 * rangeNow[1] + r1 * rangeNow[0]\n ];\n aobj[axName + \".range[0]\"] = ax.l2r(rangeNew[0]);\n aobj[axName + \".range[1]\"] = ax.l2r(rangeNew[1]);\n }\n }\n }\n } else {\n if (astr === \"hovermode\" && (val === \"x\" || val === \"y\")) {\n val = fullLayout._isHoriz ? \"y\" : \"x\";\n button.setAttribute(\"data-val\", val);\n }\n aobj[astr] = val;\n }\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n Registry.call(\"_guiRelayout\", gd, aobj);\n }\n modeBarButtons.zoom3d = {\n name: \"zoom3d\",\n _cat: \"zoom\",\n title: function(gd) {\n return _(gd, \"Zoom\");\n },\n attr: \"scene.dragmode\",\n val: \"zoom\",\n icon: Icons.zoombox,\n click: handleDrag3d\n };\n modeBarButtons.pan3d = {\n name: \"pan3d\",\n _cat: \"pan\",\n title: function(gd) {\n return _(gd, \"Pan\");\n },\n attr: \"scene.dragmode\",\n val: \"pan\",\n icon: Icons.pan,\n click: handleDrag3d\n };\n modeBarButtons.orbitRotation = {\n name: \"orbitRotation\",\n title: function(gd) {\n return _(gd, \"Orbital rotation\");\n },\n attr: \"scene.dragmode\",\n val: \"orbit\",\n icon: Icons[\"3d_rotate\"],\n click: handleDrag3d\n };\n modeBarButtons.tableRotation = {\n name: \"tableRotation\",\n title: function(gd) {\n return _(gd, \"Turntable rotation\");\n },\n attr: \"scene.dragmode\",\n val: \"turntable\",\n icon: Icons[\"z-axis\"],\n click: handleDrag3d\n };\n function handleDrag3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute(\"data-attr\");\n var val = button.getAttribute(\"data-val\") || true;\n var sceneIds = gd._fullLayout._subplots.gl3d || [];\n var layoutUpdate = {};\n var parts = attr.split(\".\");\n for (var i = 0; i < sceneIds.length; i++) {\n layoutUpdate[sceneIds[i] + \".\" + parts[1]] = val;\n }\n var val2d = val === \"pan\" ? val : \"zoom\";\n layoutUpdate.dragmode = val2d;\n Registry.call(\"_guiRelayout\", gd, layoutUpdate);\n }\n modeBarButtons.resetCameraDefault3d = {\n name: \"resetCameraDefault3d\",\n _cat: \"resetCameraDefault\",\n title: function(gd) {\n return _(gd, \"Reset camera to default\");\n },\n attr: \"resetDefault\",\n icon: Icons.home,\n click: handleCamera3d\n };\n modeBarButtons.resetCameraLastSave3d = {\n name: \"resetCameraLastSave3d\",\n _cat: \"resetCameraLastSave\",\n title: function(gd) {\n return _(gd, \"Reset camera to last save\");\n },\n attr: \"resetLastSave\",\n icon: Icons.movie,\n click: handleCamera3d\n };\n function handleCamera3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute(\"data-attr\");\n var resetLastSave = attr === \"resetLastSave\";\n var resetDefault = attr === \"resetDefault\";\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n var aobj = {};\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var camera = sceneId + \".camera\";\n var aspectratio = sceneId + \".aspectratio\";\n var aspectmode = sceneId + \".aspectmode\";\n var scene = fullLayout[sceneId]._scene;\n var didUpdate;\n if (resetLastSave) {\n aobj[camera + \".up\"] = scene.viewInitial.up;\n aobj[camera + \".eye\"] = scene.viewInitial.eye;\n aobj[camera + \".center\"] = scene.viewInitial.center;\n didUpdate = true;\n } else if (resetDefault) {\n aobj[camera + \".up\"] = null;\n aobj[camera + \".eye\"] = null;\n aobj[camera + \".center\"] = null;\n didUpdate = true;\n }\n if (didUpdate) {\n aobj[aspectratio + \".x\"] = scene.viewInitial.aspectratio.x;\n aobj[aspectratio + \".y\"] = scene.viewInitial.aspectratio.y;\n aobj[aspectratio + \".z\"] = scene.viewInitial.aspectratio.z;\n aobj[aspectmode] = scene.viewInitial.aspectmode;\n }\n }\n Registry.call(\"_guiRelayout\", gd, aobj);\n }\n modeBarButtons.hoverClosest3d = {\n name: \"hoverClosest3d\",\n _cat: \"hoverclosest\",\n title: function(gd) {\n return _(gd, \"Toggle show closest data on hover\");\n },\n attr: \"hovermode\",\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: handleHover3d\n };\n function getNextHover3d(gd, ev) {\n var button = ev.currentTarget;\n var val = button._previousVal;\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n var axes = [\"xaxis\", \"yaxis\", \"zaxis\"];\n var currentSpikes = {};\n var layoutUpdate = {};\n if (val) {\n layoutUpdate = val;\n button._previousVal = null;\n } else {\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var sceneLayout = fullLayout[sceneId];\n var hovermodeAStr = sceneId + \".hovermode\";\n currentSpikes[hovermodeAStr] = sceneLayout.hovermode;\n layoutUpdate[hovermodeAStr] = false;\n for (var j = 0; j < 3; j++) {\n var axis = axes[j];\n var spikeAStr = sceneId + \".\" + axis + \".showspikes\";\n layoutUpdate[spikeAStr] = false;\n currentSpikes[spikeAStr] = sceneLayout[axis].showspikes;\n }\n }\n button._previousVal = currentSpikes;\n }\n return layoutUpdate;\n }\n function handleHover3d(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n Registry.call(\"_guiRelayout\", gd, layoutUpdate);\n }\n modeBarButtons.zoomInGeo = {\n name: \"zoomInGeo\",\n _cat: \"zoomin\",\n title: function(gd) {\n return _(gd, \"Zoom in\");\n },\n attr: \"zoom\",\n val: \"in\",\n icon: Icons.zoom_plus,\n click: handleGeo\n };\n modeBarButtons.zoomOutGeo = {\n name: \"zoomOutGeo\",\n _cat: \"zoomout\",\n title: function(gd) {\n return _(gd, \"Zoom out\");\n },\n attr: \"zoom\",\n val: \"out\",\n icon: Icons.zoom_minus,\n click: handleGeo\n };\n modeBarButtons.resetGeo = {\n name: \"resetGeo\",\n _cat: \"reset\",\n title: function(gd) {\n return _(gd, \"Reset\");\n },\n attr: \"reset\",\n val: null,\n icon: Icons.autoscale,\n click: handleGeo\n };\n modeBarButtons.hoverClosestGeo = {\n name: \"hoverClosestGeo\",\n _cat: \"hoverclosest\",\n title: function(gd) {\n return _(gd, \"Toggle show closest data on hover\");\n },\n attr: \"hovermode\",\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: toggleHover\n };\n function handleGeo(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute(\"data-attr\");\n var val = button.getAttribute(\"data-val\") || true;\n var fullLayout = gd._fullLayout;\n var geoIds = fullLayout._subplots.geo || [];\n for (var i = 0; i < geoIds.length; i++) {\n var id = geoIds[i];\n var geoLayout = fullLayout[id];\n if (attr === \"zoom\") {\n var scale = geoLayout.projection.scale;\n var newScale = val === \"in\" ? 2 * scale : 0.5 * scale;\n Registry.call(\"_guiRelayout\", gd, id + \".projection.scale\", newScale);\n }\n }\n if (attr === \"reset\") {\n resetView(gd, \"geo\");\n }\n }\n modeBarButtons.hoverClosestPie = {\n name: \"hoverClosestPie\",\n _cat: \"hoverclosest\",\n title: function(gd) {\n return _(gd, \"Toggle show closest data on hover\");\n },\n attr: \"hovermode\",\n val: \"closest\",\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: toggleHover\n };\n function getNextHover(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout.hovermode) return false;\n if (fullLayout._has(\"cartesian\")) {\n return fullLayout._isHoriz ? \"y\" : \"x\";\n }\n return \"closest\";\n }\n function toggleHover(gd) {\n var newHover = getNextHover(gd);\n Registry.call(\"_guiRelayout\", gd, \"hovermode\", newHover);\n }\n modeBarButtons.resetViewSankey = {\n name: \"resetSankeyGroup\",\n title: function(gd) {\n return _(gd, \"Reset view\");\n },\n icon: Icons.home,\n click: function(gd) {\n var aObj = {\n \"node.groups\": [],\n \"node.x\": [],\n \"node.y\": []\n };\n for (var i = 0; i < gd._fullData.length; i++) {\n var viewInitial = gd._fullData[i]._viewInitial;\n aObj[\"node.groups\"].push(viewInitial.node.groups.slice());\n aObj[\"node.x\"].push(viewInitial.node.x.slice());\n aObj[\"node.y\"].push(viewInitial.node.y.slice());\n }\n Registry.call(\"restyle\", gd, aObj);\n }\n };\n modeBarButtons.toggleHover = {\n name: \"toggleHover\",\n title: function(gd) {\n return _(gd, \"Toggle show closest data on hover\");\n },\n attr: \"hovermode\",\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: function(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n layoutUpdate.hovermode = getNextHover(gd);\n Registry.call(\"_guiRelayout\", gd, layoutUpdate);\n }\n };\n modeBarButtons.resetViews = {\n name: \"resetViews\",\n title: function(gd) {\n return _(gd, \"Reset views\");\n },\n icon: Icons.home,\n click: function(gd, ev) {\n var button = ev.currentTarget;\n button.setAttribute(\"data-attr\", \"zoom\");\n button.setAttribute(\"data-val\", \"reset\");\n handleCartesian(gd, ev);\n button.setAttribute(\"data-attr\", \"resetLastSave\");\n handleCamera3d(gd, ev);\n resetView(gd, \"geo\");\n resetView(gd, \"mapbox\");\n resetView(gd, \"map\");\n }\n };\n modeBarButtons.toggleSpikelines = {\n name: \"toggleSpikelines\",\n title: function(gd) {\n return _(gd, \"Toggle Spike Lines\");\n },\n icon: Icons.spikeline,\n attr: \"_cartesianSpikesEnabled\",\n val: \"on\",\n click: function(gd) {\n var fullLayout = gd._fullLayout;\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled === \"on\" ? \"off\" : \"on\";\n Registry.call(\"_guiRelayout\", gd, setSpikelineVisibility(gd));\n }\n };\n function setSpikelineVisibility(gd) {\n var fullLayout = gd._fullLayout;\n var areSpikesOn = fullLayout._cartesianSpikesEnabled === \"on\";\n var axList = axisIds.list(gd, null, true);\n var aobj = {};\n for (var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n aobj[ax._name + \".showspikes\"] = areSpikesOn ? true : ax._showSpikeInitial;\n }\n return aobj;\n }\n modeBarButtons.resetViewMapbox = {\n name: \"resetViewMapbox\",\n _cat: \"resetView\",\n title: function(gd) {\n return _(gd, \"Reset view\");\n },\n attr: \"reset\",\n icon: Icons.home,\n click: function(gd) {\n resetView(gd, \"mapbox\");\n }\n };\n modeBarButtons.resetViewMap = {\n name: \"resetViewMap\",\n _cat: \"resetView\",\n title: function(gd) {\n return _(gd, \"Reset view\");\n },\n attr: \"reset\",\n icon: Icons.home,\n click: function(gd) {\n resetView(gd, \"map\");\n }\n };\n modeBarButtons.zoomInMapbox = {\n name: \"zoomInMapbox\",\n _cat: \"zoomin\",\n title: function(gd) {\n return _(gd, \"Zoom in\");\n },\n attr: \"zoom\",\n val: \"in\",\n icon: Icons.zoom_plus,\n click: handleMapboxZoom\n };\n modeBarButtons.zoomInMap = {\n name: \"zoomInMap\",\n _cat: \"zoomin\",\n title: function(gd) {\n return _(gd, \"Zoom in\");\n },\n attr: \"zoom\",\n val: \"in\",\n icon: Icons.zoom_plus,\n click: handleMapZoom\n };\n modeBarButtons.zoomOutMapbox = {\n name: \"zoomOutMapbox\",\n _cat: \"zoomout\",\n title: function(gd) {\n return _(gd, \"Zoom out\");\n },\n attr: \"zoom\",\n val: \"out\",\n icon: Icons.zoom_minus,\n click: handleMapboxZoom\n };\n modeBarButtons.zoomOutMap = {\n name: \"zoomOutMap\",\n _cat: \"zoomout\",\n title: function(gd) {\n return _(gd, \"Zoom out\");\n },\n attr: \"zoom\",\n val: \"out\",\n icon: Icons.zoom_minus,\n click: handleMapZoom\n };\n function handleMapboxZoom(gd, ev) {\n _handleMapZoom(gd, ev, \"mapbox\");\n }\n function handleMapZoom(gd, ev) {\n _handleMapZoom(gd, ev, \"map\");\n }\n function _handleMapZoom(gd, ev, mapType) {\n var button = ev.currentTarget;\n var val = button.getAttribute(\"data-val\");\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[mapType] || [];\n var scalar = 1.05;\n var aObj = {};\n for (var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var current = fullLayout[id].zoom;\n var next = val === \"in\" ? scalar * current : current / scalar;\n aObj[id + \".zoom\"] = next;\n }\n Registry.call(\"_guiRelayout\", gd, aObj);\n }\n function resetView(gd, subplotType) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[subplotType] || [];\n var aObj = {};\n for (var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotObj = fullLayout[id]._subplot;\n var viewInitial = subplotObj.viewInitial;\n var viewKeys = Object.keys(viewInitial);\n for (var j = 0; j < viewKeys.length; j++) {\n var key = viewKeys[j];\n aObj[id + \".\" + key] = viewInitial[key];\n }\n }\n Registry.call(\"_guiRelayout\", gd, aObj);\n }\n }\n });\n\n // src/components/modebar/constants.js\n var require_constants6 = __commonJS({\n \"src/components/modebar/constants.js\"(exports, module) {\n \"use strict\";\n var modeBarButtons = require_buttons();\n var buttonList = Object.keys(modeBarButtons);\n var DRAW_MODES = [\n \"drawline\",\n \"drawopenpath\",\n \"drawclosedpath\",\n \"drawcircle\",\n \"drawrect\",\n \"eraseshape\"\n ];\n var backButtons = [\n \"v1hovermode\",\n \"hoverclosest\",\n \"hovercompare\",\n \"togglehover\",\n \"togglespikelines\"\n ].concat(DRAW_MODES);\n var foreButtons = [];\n var addToForeButtons = function(b) {\n if (backButtons.indexOf(b._cat || b.name) !== -1) return;\n var name2 = b.name;\n var _cat = (b._cat || b.name).toLowerCase();\n if (foreButtons.indexOf(name2) === -1) foreButtons.push(name2);\n if (foreButtons.indexOf(_cat) === -1) foreButtons.push(_cat);\n };\n buttonList.forEach(function(k) {\n addToForeButtons(modeBarButtons[k]);\n });\n foreButtons.sort();\n module.exports = {\n DRAW_MODES,\n backButtons,\n foreButtons\n };\n }\n });\n\n // src/components/modebar/attributes.js\n var require_attributes10 = __commonJS({\n \"src/components/modebar/attributes.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants6();\n module.exports = {\n editType: \"modebar\",\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n dflt: \"h\",\n editType: \"modebar\"\n },\n bgcolor: {\n valType: \"color\",\n editType: \"modebar\"\n },\n color: {\n valType: \"color\",\n editType: \"modebar\"\n },\n activecolor: {\n valType: \"color\",\n editType: \"modebar\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n add: {\n valType: \"string\",\n arrayOk: true,\n dflt: \"\",\n editType: \"modebar\"\n },\n remove: {\n valType: \"string\",\n arrayOk: true,\n dflt: \"\",\n editType: \"modebar\"\n }\n };\n }\n });\n\n // src/components/modebar/defaults.js\n var require_defaults5 = __commonJS({\n \"src/components/modebar/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Template = require_plot_template();\n var attributes = require_attributes10();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n var containerIn = layoutIn.modebar || {};\n var containerOut = Template.newContainer(layoutOut, \"modebar\");\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n coerce(\"orientation\");\n coerce(\"bgcolor\", Color2.addOpacity(layoutOut.paper_bgcolor, 0.5));\n var defaultColor = Color2.contrast(Color2.rgb(layoutOut.modebar.bgcolor));\n coerce(\"color\", Color2.addOpacity(defaultColor, 0.3));\n coerce(\"activecolor\", Color2.addOpacity(defaultColor, 0.7));\n coerce(\"uirevision\", layoutOut.uirevision);\n coerce(\"add\");\n coerce(\"remove\");\n };\n }\n });\n\n // src/components/modebar/modebar.js\n var require_modebar = __commonJS({\n \"src/components/modebar/modebar.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Icons = require_ploticon();\n var version = require_version().version;\n var Parser = new DOMParser();\n function ModeBar(opts) {\n this.container = opts.container;\n this.element = document.createElement(\"div\");\n this.update(opts.graphInfo, opts.buttons);\n this.container.appendChild(this.element);\n }\n var proto = ModeBar.prototype;\n proto.update = function(graphInfo, buttons) {\n this.graphInfo = graphInfo;\n var context = this.graphInfo._context;\n var fullLayout = this.graphInfo._fullLayout;\n var modeBarId = \"modebar-\" + fullLayout._uid;\n this.element.setAttribute(\"id\", modeBarId);\n this._uid = modeBarId;\n this.element.className = \"modebar\";\n if (context.displayModeBar === \"hover\") this.element.className += \" modebar--hover ease-bg\";\n if (fullLayout.modebar.orientation === \"v\") {\n this.element.className += \" vertical\";\n buttons = buttons.reverse();\n }\n var style = fullLayout.modebar;\n var groupSelector = \"#\" + modeBarId + \" .modebar-group\";\n document.querySelectorAll(groupSelector).forEach(function(group) {\n group.style.backgroundColor = style.bgcolor;\n });\n var needsNewButtons = !this.hasButtons(buttons);\n var needsNewLogo = this.hasLogo !== context.displaylogo;\n var needsNewLocale = this.locale !== context.locale;\n this.locale = context.locale;\n if (needsNewButtons || needsNewLogo || needsNewLocale) {\n this.removeAllButtons();\n this.updateButtons(buttons);\n if (context.watermark || context.displaylogo) {\n var logoGroup = this.getLogo();\n if (context.watermark) {\n logoGroup.className = logoGroup.className + \" watermark\";\n }\n if (fullLayout.modebar.orientation === \"v\") {\n this.element.insertBefore(logoGroup, this.element.childNodes[0]);\n } else {\n this.element.appendChild(logoGroup);\n }\n this.hasLogo = true;\n }\n }\n this.updateActiveButton();\n Lib.setStyleOnHover(\"#\" + modeBarId + \" .modebar-btn\", \".active\", \".icon path\", \"fill: \" + style.activecolor, \"fill: \" + style.color, this.element);\n };\n proto.updateButtons = function(buttons) {\n var _this = this;\n this.buttons = buttons;\n this.buttonElements = [];\n this.buttonsNames = [];\n this.buttons.forEach(function(buttonGroup) {\n var group = _this.createGroup();\n buttonGroup.forEach(function(buttonConfig) {\n var buttonName = buttonConfig.name;\n if (!buttonName) {\n throw new Error(\"must provide button 'name' in button config\");\n }\n if (_this.buttonsNames.indexOf(buttonName) !== -1) {\n throw new Error(\"button name '\" + buttonName + \"' is taken\");\n }\n _this.buttonsNames.push(buttonName);\n var button = _this.createButton(buttonConfig);\n _this.buttonElements.push(button);\n group.appendChild(button);\n });\n _this.element.appendChild(group);\n });\n };\n proto.createGroup = function() {\n var group = document.createElement(\"div\");\n group.className = \"modebar-group\";\n var style = this.graphInfo._fullLayout.modebar;\n group.style.backgroundColor = style.bgcolor;\n return group;\n };\n proto.createButton = function(config) {\n var _this = this;\n var button = document.createElement(\"a\");\n button.setAttribute(\"rel\", \"tooltip\");\n button.className = \"modebar-btn\";\n var title = config.title;\n if (title === void 0) title = config.name;\n else if (typeof title === \"function\") title = title(this.graphInfo);\n if (title || title === 0) button.setAttribute(\"data-title\", title);\n if (config.attr !== void 0) button.setAttribute(\"data-attr\", config.attr);\n var val = config.val;\n if (val !== void 0) {\n if (typeof val === \"function\") val = val(this.graphInfo);\n button.setAttribute(\"data-val\", val);\n }\n var click = config.click;\n if (typeof click !== \"function\") {\n throw new Error(\"must provide button 'click' function in button config\");\n } else {\n button.addEventListener(\"click\", function(ev) {\n config.click(_this.graphInfo, ev);\n _this.updateActiveButton(ev.currentTarget);\n });\n }\n button.setAttribute(\"data-toggle\", config.toggle || false);\n if (config.toggle) d3.select(button).classed(\"active\", true);\n var icon = config.icon;\n if (typeof icon === \"function\") {\n button.appendChild(icon());\n } else {\n button.appendChild(this.createIcon(icon || Icons.question));\n }\n button.setAttribute(\"data-gravity\", config.gravity || \"n\");\n return button;\n };\n proto.createIcon = function(thisIcon) {\n var iconHeight = isNumeric(thisIcon.height) ? Number(thisIcon.height) : thisIcon.ascent - thisIcon.descent;\n var svgNS = \"http://www.w3.org/2000/svg\";\n var icon;\n if (thisIcon.path) {\n icon = document.createElementNS(svgNS, \"svg\");\n icon.setAttribute(\"viewBox\", [0, 0, thisIcon.width, iconHeight].join(\" \"));\n icon.setAttribute(\"class\", \"icon\");\n var path = document.createElementNS(svgNS, \"path\");\n path.setAttribute(\"d\", thisIcon.path);\n if (thisIcon.transform) {\n path.setAttribute(\"transform\", thisIcon.transform);\n } else if (thisIcon.ascent !== void 0) {\n path.setAttribute(\"transform\", \"matrix(1 0 0 -1 0 \" + thisIcon.ascent + \")\");\n }\n icon.appendChild(path);\n }\n if (thisIcon.svg) {\n var svgDoc = Parser.parseFromString(thisIcon.svg, \"application/xml\");\n icon = svgDoc.childNodes[0];\n }\n icon.setAttribute(\"height\", \"1em\");\n icon.setAttribute(\"width\", \"1em\");\n return icon;\n };\n proto.updateActiveButton = function(buttonClicked) {\n var fullLayout = this.graphInfo._fullLayout;\n var dataAttrClicked = buttonClicked !== void 0 ? buttonClicked.getAttribute(\"data-attr\") : null;\n this.buttonElements.forEach(function(button) {\n var thisval = button.getAttribute(\"data-val\") || true;\n var dataAttr = button.getAttribute(\"data-attr\");\n var isToggleButton = button.getAttribute(\"data-toggle\") === \"true\";\n var button3 = d3.select(button);\n var updateButtonStyle = function(button2, isActive2) {\n var style = fullLayout.modebar;\n var childEl = button2.querySelector(\".icon path\");\n if (childEl) {\n if (isActive2 || button2.matches(\":hover\")) {\n childEl.style.fill = style.activecolor;\n } else {\n childEl.style.fill = style.color;\n }\n }\n };\n if (isToggleButton) {\n if (dataAttr === dataAttrClicked) {\n var isActive = !button3.classed(\"active\");\n button3.classed(\"active\", isActive);\n updateButtonStyle(button, isActive);\n }\n } else {\n var val = dataAttr === null ? dataAttr : Lib.nestedProperty(fullLayout, dataAttr).get();\n button3.classed(\"active\", val === thisval);\n updateButtonStyle(button, val === thisval);\n }\n });\n };\n proto.hasButtons = function(buttons) {\n var currentButtons = this.buttons;\n if (!currentButtons) return false;\n if (buttons.length !== currentButtons.length) return false;\n for (var i = 0; i < buttons.length; ++i) {\n if (buttons[i].length !== currentButtons[i].length) return false;\n for (var j = 0; j < buttons[i].length; j++) {\n if (buttons[i][j].name !== currentButtons[i][j].name) return false;\n }\n }\n return true;\n };\n function jsVersion(str) {\n return str + \" (v\" + version + \")\";\n }\n proto.getLogo = function() {\n var group = this.createGroup();\n var a = document.createElement(\"a\");\n a.href = \"https://plotly.com/\";\n a.target = \"_blank\";\n a.setAttribute(\"data-title\", jsVersion(Lib._(this.graphInfo, \"Produced with Plotly.js\")));\n a.className = \"modebar-btn plotlyjsicon modebar-btn--logo\";\n a.appendChild(this.createIcon(Icons.newplotlylogo));\n group.appendChild(a);\n return group;\n };\n proto.removeAllButtons = function() {\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n this.hasLogo = false;\n };\n proto.destroy = function() {\n Lib.removeElement(this.container.querySelector(\".modebar\"));\n };\n function createModeBar(gd, buttons) {\n var fullLayout = gd._fullLayout;\n var modeBar = new ModeBar({\n graphInfo: gd,\n container: fullLayout._modebardiv.node(),\n buttons\n });\n if (fullLayout._privateplot) {\n d3.select(modeBar.element).append(\"span\").classed(\"badge-private float--left\", true).text(\"PRIVATE\");\n }\n return modeBar;\n }\n module.exports = createModeBar;\n }\n });\n\n // src/components/modebar/manage.js\n var require_manage = __commonJS({\n \"src/components/modebar/manage.js\"(exports, module) {\n \"use strict\";\n var axisIds = require_axis_ids();\n var scatterSubTypes = require_subtypes();\n var Registry = require_registry();\n var isUnifiedHover = require_helpers2().isUnifiedHover;\n var createModeBar = require_modebar();\n var modeBarButtons = require_buttons();\n var DRAW_MODES = require_constants6().DRAW_MODES;\n var extendDeep = require_lib().extendDeep;\n module.exports = function manageModeBar(gd) {\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n var modeBar = fullLayout._modeBar;\n if (!context.displayModeBar && !context.watermark) {\n if (modeBar) {\n modeBar.destroy();\n delete fullLayout._modeBar;\n }\n return;\n }\n if (!Array.isArray(context.modeBarButtonsToRemove)) {\n throw new Error([\n \"*modeBarButtonsToRemove* configuration options\",\n \"must be an array.\"\n ].join(\" \"));\n }\n if (!Array.isArray(context.modeBarButtonsToAdd)) {\n throw new Error([\n \"*modeBarButtonsToAdd* configuration options\",\n \"must be an array.\"\n ].join(\" \"));\n }\n var customButtons = context.modeBarButtons;\n var buttonGroups;\n if (Array.isArray(customButtons) && customButtons.length) {\n buttonGroups = fillCustomButton(customButtons);\n } else if (!context.displayModeBar && context.watermark) {\n buttonGroups = [];\n } else {\n buttonGroups = getButtonGroups(gd);\n }\n if (modeBar) modeBar.update(gd, buttonGroups);\n else fullLayout._modeBar = createModeBar(gd, buttonGroups);\n };\n function getButtonGroups(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var context = gd._context;\n function match(name2, B2) {\n if (typeof B2 === \"string\") {\n if (B2.toLowerCase() === name2.toLowerCase()) return true;\n } else {\n var v0 = B2.name;\n var v1 = B2._cat || B2.name;\n if (v0 === name2 || v1 === name2.toLowerCase()) return true;\n }\n return false;\n }\n var layoutAdd = fullLayout.modebar.add;\n if (typeof layoutAdd === \"string\") layoutAdd = [layoutAdd];\n var layoutRemove = fullLayout.modebar.remove;\n if (typeof layoutRemove === \"string\") layoutRemove = [layoutRemove];\n var buttonsToAdd = context.modeBarButtonsToAdd.concat(\n layoutAdd.filter(function(e) {\n for (var i2 = 0; i2 < context.modeBarButtonsToRemove.length; i2++) {\n if (match(e, context.modeBarButtonsToRemove[i2])) return false;\n }\n return true;\n })\n );\n var buttonsToRemove = context.modeBarButtonsToRemove.concat(\n layoutRemove.filter(function(e) {\n for (var i2 = 0; i2 < context.modeBarButtonsToAdd.length; i2++) {\n if (match(e, context.modeBarButtonsToAdd[i2])) return false;\n }\n return true;\n })\n );\n var hasCartesian = fullLayout._has(\"cartesian\");\n var hasGL3D = fullLayout._has(\"gl3d\");\n var hasGeo = fullLayout._has(\"geo\");\n var hasPie = fullLayout._has(\"pie\");\n var hasFunnelarea = fullLayout._has(\"funnelarea\");\n var hasTernary = fullLayout._has(\"ternary\");\n var hasMapbox = fullLayout._has(\"mapbox\");\n var hasMap = fullLayout._has(\"map\");\n var hasPolar = fullLayout._has(\"polar\");\n var hasSmith = fullLayout._has(\"smith\");\n var hasSankey = fullLayout._has(\"sankey\");\n var allAxesFixed = areAllAxesFixed(fullLayout);\n var hasUnifiedHoverLabel = isUnifiedHover(fullLayout.hovermode);\n var groups = [];\n function addGroup(newGroup) {\n if (!newGroup.length) return;\n var out = [];\n for (var i2 = 0; i2 < newGroup.length; i2++) {\n var name2 = newGroup[i2];\n var B2 = modeBarButtons[name2];\n var v0 = B2.name.toLowerCase();\n var v1 = (B2._cat || B2.name).toLowerCase();\n var found = false;\n for (var q = 0; q < buttonsToRemove.length; q++) {\n var t = buttonsToRemove[q].toLowerCase();\n if (t === v0 || t === v1) {\n found = true;\n break;\n }\n }\n if (found) continue;\n out.push(modeBarButtons[name2]);\n }\n groups.push(out);\n }\n var commonGroup = [\"toImage\"];\n if (context.showEditInChartStudio) commonGroup.push(\"editInChartStudio\");\n else if (context.showSendToCloud) commonGroup.push(\"sendDataToCloud\");\n addGroup(commonGroup);\n var zoomGroup = [];\n var hoverGroup = [];\n var resetGroup = [];\n var dragModeGroup = [];\n if ((hasCartesian || hasPie || hasFunnelarea || hasTernary) + hasGeo + hasGL3D + hasMapbox + hasMap + hasPolar + hasSmith > 1) {\n hoverGroup = [\"toggleHover\"];\n resetGroup = [\"resetViews\"];\n } else if (hasGeo) {\n zoomGroup = [\"zoomInGeo\", \"zoomOutGeo\"];\n hoverGroup = [\"hoverClosestGeo\"];\n resetGroup = [\"resetGeo\"];\n } else if (hasGL3D) {\n hoverGroup = [\"hoverClosest3d\"];\n resetGroup = [\"resetCameraDefault3d\", \"resetCameraLastSave3d\"];\n } else if (hasMapbox) {\n zoomGroup = [\"zoomInMapbox\", \"zoomOutMapbox\"];\n hoverGroup = [\"toggleHover\"];\n resetGroup = [\"resetViewMapbox\"];\n } else if (hasMap) {\n zoomGroup = [\"zoomInMap\", \"zoomOutMap\"];\n hoverGroup = [\"toggleHover\"];\n resetGroup = [\"resetViewMap\"];\n } else if (hasPie) {\n hoverGroup = [\"hoverClosestPie\"];\n } else if (hasSankey) {\n hoverGroup = [\"hoverClosestCartesian\", \"hoverCompareCartesian\"];\n resetGroup = [\"resetViewSankey\"];\n } else {\n hoverGroup = [\"toggleHover\"];\n }\n if (hasCartesian) {\n hoverGroup.push(\"toggleSpikelines\", \"hoverClosestCartesian\", \"hoverCompareCartesian\");\n }\n if (hasNoHover(fullData) || hasUnifiedHoverLabel) {\n hoverGroup = [];\n }\n if (hasCartesian && !allAxesFixed) {\n zoomGroup = [\"zoomIn2d\", \"zoomOut2d\", \"autoScale2d\"];\n if (resetGroup[0] !== \"resetViews\") resetGroup = [\"resetScale2d\"];\n }\n if (hasGL3D) {\n dragModeGroup = [\"zoom3d\", \"pan3d\", \"orbitRotation\", \"tableRotation\"];\n } else if (hasCartesian && !allAxesFixed || hasTernary) {\n dragModeGroup = [\"zoom2d\", \"pan2d\"];\n } else if (hasMapbox || hasMap || hasGeo) {\n dragModeGroup = [\"pan2d\"];\n } else if (hasPolar) {\n dragModeGroup = [\"zoom2d\"];\n }\n if (isSelectable(fullData)) {\n dragModeGroup.push(\"select2d\", \"lasso2d\");\n }\n var enabledHoverGroup = [];\n var enableHover = function(a) {\n if (enabledHoverGroup.indexOf(a) !== -1) return;\n if (hoverGroup.indexOf(a) !== -1) {\n enabledHoverGroup.push(a);\n }\n };\n if (Array.isArray(buttonsToAdd)) {\n var newList = [];\n for (var i = 0; i < buttonsToAdd.length; i++) {\n var b = buttonsToAdd[i];\n if (typeof b === \"string\") {\n b = b.toLowerCase();\n if (DRAW_MODES.indexOf(b) !== -1) {\n if (fullLayout._has(\"mapbox\") || fullLayout._has(\"map\") || // draw shapes in paper coordinate (could be improved in future to support data coordinate, when there is no pitch)\n fullLayout._has(\"cartesian\")) {\n dragModeGroup.push(b);\n }\n } else if (b === \"togglespikelines\") {\n enableHover(\"toggleSpikelines\");\n } else if (b === \"togglehover\") {\n enableHover(\"toggleHover\");\n } else if (b === \"hovercompare\") {\n enableHover(\"hoverCompareCartesian\");\n } else if (b === \"hoverclosest\") {\n enableHover(\"hoverClosestCartesian\");\n enableHover(\"hoverClosestGeo\");\n enableHover(\"hoverClosest3d\");\n enableHover(\"hoverClosestPie\");\n } else if (b === \"v1hovermode\") {\n enableHover(\"hoverClosestCartesian\");\n enableHover(\"hoverCompareCartesian\");\n enableHover(\"hoverClosestGeo\");\n enableHover(\"hoverClosest3d\");\n enableHover(\"hoverClosestPie\");\n }\n } else newList.push(b);\n }\n buttonsToAdd = newList;\n }\n addGroup(dragModeGroup);\n addGroup(zoomGroup.concat(resetGroup));\n addGroup(enabledHoverGroup);\n return appendButtonsToGroups(groups, buttonsToAdd);\n }\n function areAllAxesFixed(fullLayout) {\n var axList = axisIds.list({ _fullLayout: fullLayout }, null, true);\n for (var i = 0; i < axList.length; i++) {\n if (!axList[i].fixedrange) {\n return false;\n }\n }\n return true;\n }\n function isSelectable(fullData) {\n var selectable = false;\n for (var i = 0; i < fullData.length; i++) {\n if (selectable) break;\n var trace = fullData[i];\n if (!trace._module || !trace._module.selectPoints) continue;\n if (Registry.traceIs(trace, \"scatter-like\")) {\n if (scatterSubTypes.hasMarkers(trace) || scatterSubTypes.hasText(trace)) {\n selectable = true;\n }\n } else if (Registry.traceIs(trace, \"box-violin\")) {\n if (trace.boxpoints === \"all\" || trace.points === \"all\") {\n selectable = true;\n }\n } else {\n selectable = true;\n }\n }\n return selectable;\n }\n function hasNoHover(fullData) {\n for (var i = 0; i < fullData.length; i++) {\n if (!Registry.traceIs(fullData[i], \"noHover\")) return false;\n }\n return true;\n }\n function appendButtonsToGroups(groups, buttons) {\n if (buttons.length) {\n if (Array.isArray(buttons[0])) {\n for (var i = 0; i < buttons.length; i++) {\n groups.push(buttons[i]);\n }\n } else groups.push(buttons);\n }\n return groups;\n }\n function fillCustomButton(originalModeBarButtons) {\n var customButtons = extendDeep([], originalModeBarButtons);\n for (var i = 0; i < customButtons.length; i++) {\n var buttonGroup = customButtons[i];\n for (var j = 0; j < buttonGroup.length; j++) {\n var button = buttonGroup[j];\n if (typeof button === \"string\") {\n if (modeBarButtons[button] !== void 0) {\n customButtons[i][j] = modeBarButtons[button];\n } else {\n throw new Error([\n \"*modeBarButtons* configuration options\",\n \"invalid button name\"\n ].join(\" \"));\n }\n }\n }\n }\n return customButtons;\n }\n }\n });\n\n // src/components/modebar/index.js\n var require_modebar2 = __commonJS({\n \"src/components/modebar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"modebar\",\n layoutAttributes: require_attributes10(),\n supplyLayoutDefaults: require_defaults5(),\n manage: require_manage()\n };\n }\n });\n\n // src/plots/cartesian/scale_zoom.js\n var require_scale_zoom = __commonJS({\n \"src/plots/cartesian/scale_zoom.js\"(exports, module) {\n \"use strict\";\n var FROM_BL = require_alignment().FROM_BL;\n module.exports = function scaleZoom(ax, factor, centerFraction) {\n if (centerFraction === void 0) {\n centerFraction = FROM_BL[ax.constraintoward || \"center\"];\n }\n var rangeLinear = [ax.r2l(ax.range[0]), ax.r2l(ax.range[1])];\n var center = rangeLinear[0] + (rangeLinear[1] - rangeLinear[0]) * centerFraction;\n ax.range = ax._input.range = [\n ax.l2r(center + (rangeLinear[0] - center) * factor),\n ax.l2r(center + (rangeLinear[1] - center) * factor)\n ];\n ax.setScale();\n };\n }\n });\n\n // src/plots/cartesian/constraints.js\n var require_constraints = __commonJS({\n \"src/plots/cartesian/constraints.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var autorange = require_autorange();\n var id2name = require_axis_ids().id2name;\n var layoutAttributes = require_layout_attributes4();\n var scaleZoom = require_scale_zoom();\n var setConvert = require_set_convert();\n var ALMOST_EQUAL = require_numerical().ALMOST_EQUAL;\n var FROM_BL = require_alignment().FROM_BL;\n exports.handleDefaults = function(layoutIn, layoutOut, opts) {\n var axIds = opts.axIds;\n var axHasImage = opts.axHasImage;\n var constraintGroups = layoutOut._axisConstraintGroups = [];\n var matchGroups = layoutOut._axisMatchGroups = [];\n var i, group, axId, axName, axIn, axOut, attr, val;\n for (i = 0; i < axIds.length; i++) {\n axName = id2name(axIds[i]);\n axIn = layoutIn[axName];\n axOut = layoutOut[axName];\n handleOneAxDefaults(axIn, axOut, {\n axIds,\n layoutOut,\n hasImage: axHasImage[axName]\n });\n }\n function stash(groups, stashAttr) {\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n for (axId in group) {\n layoutOut[id2name(axId)][stashAttr] = group;\n }\n }\n }\n stash(matchGroups, \"_matchGroup\");\n for (i = 0; i < constraintGroups.length; i++) {\n group = constraintGroups[i];\n for (axId in group) {\n axOut = layoutOut[id2name(axId)];\n if (axOut.fixedrange) {\n for (var axId2 in group) {\n var axName2 = id2name(axId2);\n if ((layoutIn[axName2] || {}).fixedrange === false) {\n Lib.warn(\n \"fixedrange was specified as false for axis \" + axName2 + \" but was overridden because another axis in its constraint group has fixedrange true\"\n );\n }\n layoutOut[axName2].fixedrange = true;\n }\n break;\n }\n }\n }\n i = 0;\n while (i < constraintGroups.length) {\n group = constraintGroups[i];\n for (axId in group) {\n axOut = layoutOut[id2name(axId)];\n if (axOut._matchGroup && Object.keys(axOut._matchGroup).length === Object.keys(group).length) {\n constraintGroups.splice(i, 1);\n i--;\n }\n break;\n }\n i++;\n }\n stash(constraintGroups, \"_constraintGroup\");\n var matchAttrs = [\n \"constrain\",\n \"range\",\n \"autorange\",\n \"rangemode\",\n \"rangebreaks\",\n \"categoryorder\",\n \"categoryarray\"\n ];\n var hasRange = false;\n var hasDayOfWeekBreaks = false;\n function setAttrVal() {\n val = axOut[attr];\n if (attr === \"rangebreaks\") {\n hasDayOfWeekBreaks = axOut._hasDayOfWeekBreaks;\n }\n }\n for (i = 0; i < matchGroups.length; i++) {\n group = matchGroups[i];\n for (var j = 0; j < matchAttrs.length; j++) {\n attr = matchAttrs[j];\n val = null;\n var baseAx;\n for (axId in group) {\n axName = id2name(axId);\n axIn = layoutIn[axName];\n axOut = layoutOut[axName];\n if (!(attr in axOut)) {\n continue;\n }\n if (!axOut.matches) {\n baseAx = axOut;\n if (attr in axIn) {\n setAttrVal();\n break;\n }\n }\n if (val === null && attr in axIn) {\n setAttrVal();\n }\n }\n if (attr === \"range\" && val && axIn.range && axIn.range.length === 2 && axIn.range[0] !== null && axIn.range[1] !== null) {\n hasRange = true;\n }\n if (attr === \"autorange\" && val === null && hasRange) {\n val = false;\n }\n if (val === null && attr in baseAx) {\n val = baseAx[attr];\n }\n if (val !== null) {\n for (axId in group) {\n axOut = layoutOut[id2name(axId)];\n axOut[attr] = attr === \"range\" ? val.slice() : val;\n if (attr === \"rangebreaks\") {\n axOut._hasDayOfWeekBreaks = hasDayOfWeekBreaks;\n setConvert(axOut, layoutOut);\n }\n }\n }\n }\n }\n };\n function handleOneAxDefaults(axIn, axOut, opts) {\n var axIds = opts.axIds;\n var layoutOut = opts.layoutOut;\n var hasImage = opts.hasImage;\n var constraintGroups = layoutOut._axisConstraintGroups;\n var matchGroups = layoutOut._axisMatchGroups;\n var axId = axOut._id;\n var axLetter = axId.charAt(0);\n var splomStash = ((layoutOut._splomAxes || {})[axLetter] || {})[axId] || {};\n var thisID = axOut._id;\n var isX = thisID.charAt(0) === \"x\";\n axOut._matchGroup = null;\n axOut._constraintGroup = null;\n function coerce(attr, dflt) {\n return Lib.coerce(axIn, axOut, layoutAttributes, attr, dflt);\n }\n coerce(\"constrain\", hasImage ? \"domain\" : \"range\");\n Lib.coerce(axIn, axOut, {\n constraintoward: {\n valType: \"enumerated\",\n values: isX ? [\"left\", \"center\", \"right\"] : [\"bottom\", \"middle\", \"top\"],\n dflt: isX ? \"center\" : \"middle\"\n }\n }, \"constraintoward\");\n var thisType = axOut.type;\n var i, idi;\n var linkableAxes = [];\n for (i = 0; i < axIds.length; i++) {\n idi = axIds[i];\n if (idi === thisID) continue;\n var axi = layoutOut[id2name(idi)];\n if (axi.type === thisType) {\n linkableAxes.push(idi);\n }\n }\n var thisGroup = getConstraintGroup(constraintGroups, thisID);\n if (thisGroup) {\n var linkableAxesNoLoops = [];\n for (i = 0; i < linkableAxes.length; i++) {\n idi = linkableAxes[i];\n if (!thisGroup[idi]) linkableAxesNoLoops.push(idi);\n }\n linkableAxes = linkableAxesNoLoops;\n }\n var canLink = linkableAxes.length;\n var matches, scaleanchor;\n if (canLink && (axIn.matches || splomStash.matches)) {\n matches = Lib.coerce(axIn, axOut, {\n matches: {\n valType: \"enumerated\",\n values: linkableAxes,\n dflt: linkableAxes.indexOf(splomStash.matches) !== -1 ? splomStash.matches : void 0\n }\n }, \"matches\");\n }\n var scaleanchorDflt = hasImage && !isX ? axOut.anchor : void 0;\n if (canLink && !matches && (axIn.scaleanchor || scaleanchorDflt)) {\n scaleanchor = Lib.coerce(axIn, axOut, {\n scaleanchor: {\n valType: \"enumerated\",\n values: linkableAxes.concat([false])\n }\n }, \"scaleanchor\", scaleanchorDflt);\n }\n if (matches) {\n axOut._matchGroup = updateConstraintGroups(matchGroups, thisID, matches, 1);\n var matchedAx = layoutOut[id2name(matches)];\n var matchRatio = extent(layoutOut, axOut) / extent(layoutOut, matchedAx);\n if (isX !== (matches.charAt(0) === \"x\")) {\n matchRatio = (isX ? \"x\" : \"y\") + matchRatio;\n }\n updateConstraintGroups(constraintGroups, thisID, matches, matchRatio);\n } else if (axIn.matches && axIds.indexOf(axIn.matches) !== -1) {\n Lib.warn(\"ignored \" + axOut._name + '.matches: \"' + axIn.matches + '\" to avoid an infinite loop');\n }\n if (scaleanchor) {\n var scaleratio = coerce(\"scaleratio\");\n if (!scaleratio) scaleratio = axOut.scaleratio = 1;\n updateConstraintGroups(constraintGroups, thisID, scaleanchor, scaleratio);\n } else if (axIn.scaleanchor && axIds.indexOf(axIn.scaleanchor) !== -1) {\n Lib.warn(\"ignored \" + axOut._name + '.scaleanchor: \"' + axIn.scaleanchor + '\" to avoid either an infinite loop and possibly inconsistent scaleratios, or because this axis declares a *matches* constraint.');\n }\n }\n function extent(layoutOut, ax) {\n var domain = ax.domain;\n if (!domain) {\n domain = layoutOut[id2name(ax.overlaying)].domain;\n }\n return domain[1] - domain[0];\n }\n function getConstraintGroup(groups, thisID) {\n for (var i = 0; i < groups.length; i++) {\n if (groups[i][thisID]) {\n return groups[i];\n }\n }\n return null;\n }\n function updateConstraintGroups(constraintGroups, thisID, thatID, scaleratio) {\n var i, j, groupi, keyj, thisGroupIndex;\n var thisGroup = getConstraintGroup(constraintGroups, thisID);\n if (thisGroup === null) {\n thisGroup = {};\n thisGroup[thisID] = 1;\n thisGroupIndex = constraintGroups.length;\n constraintGroups.push(thisGroup);\n } else {\n thisGroupIndex = constraintGroups.indexOf(thisGroup);\n }\n var thisGroupKeys = Object.keys(thisGroup);\n for (i = 0; i < constraintGroups.length; i++) {\n groupi = constraintGroups[i];\n if (i !== thisGroupIndex && groupi[thatID]) {\n var baseScale = groupi[thatID];\n for (j = 0; j < thisGroupKeys.length; j++) {\n keyj = thisGroupKeys[j];\n groupi[keyj] = multiplyScales(baseScale, multiplyScales(scaleratio, thisGroup[keyj]));\n }\n constraintGroups.splice(thisGroupIndex, 1);\n return;\n }\n }\n if (scaleratio !== 1) {\n for (j = 0; j < thisGroupKeys.length; j++) {\n var key = thisGroupKeys[j];\n thisGroup[key] = multiplyScales(scaleratio, thisGroup[key]);\n }\n }\n thisGroup[thatID] = 1;\n }\n function multiplyScales(a, b) {\n var aPrefix = \"\";\n var bPrefix = \"\";\n var aLen, bLen;\n if (typeof a === \"string\") {\n aPrefix = a.match(/^[xy]*/)[0];\n aLen = aPrefix.length;\n a = +a.substr(aLen);\n }\n if (typeof b === \"string\") {\n bPrefix = b.match(/^[xy]*/)[0];\n bLen = bPrefix.length;\n b = +b.substr(bLen);\n }\n var c = a * b;\n if (!aLen && !bLen) {\n return c;\n }\n if (!aLen || !bLen || aPrefix.charAt(0) === bPrefix.charAt(0)) {\n return aPrefix + bPrefix + a * b;\n }\n if (aLen === bLen) {\n return c;\n }\n return (aLen > bLen ? aPrefix.substr(bLen) : bPrefix.substr(aLen)) + c;\n }\n function finalRatios(group, fullLayout) {\n var size = fullLayout._size;\n var yRatio = size.h / size.w;\n var out = {};\n var keys = Object.keys(group);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = group[key];\n if (typeof val === \"string\") {\n var prefix = val.match(/^[xy]*/)[0];\n var pLen = prefix.length;\n val = +val.substr(pLen);\n var mult = prefix.charAt(0) === \"y\" ? yRatio : 1 / yRatio;\n for (var j = 0; j < pLen; j++) {\n val *= mult;\n }\n }\n out[key] = val;\n }\n return out;\n }\n exports.enforce = function enforce(gd) {\n var fullLayout = gd._fullLayout;\n var constraintGroups = fullLayout._axisConstraintGroups || [];\n var i, j, group, axisID, ax, normScale, mode, factor;\n for (i = 0; i < constraintGroups.length; i++) {\n group = finalRatios(constraintGroups[i], fullLayout);\n var axisIDs = Object.keys(group);\n var minScale = Infinity;\n var maxScale = 0;\n var matchScale = Infinity;\n var normScales = {};\n var axes = {};\n var hasAnyDomainConstraint = false;\n for (j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n axes[axisID] = ax = fullLayout[id2name(axisID)];\n if (ax._inputDomain) ax.domain = ax._inputDomain.slice();\n else ax._inputDomain = ax.domain.slice();\n if (!ax._inputRange) ax._inputRange = ax.range.slice();\n ax.setScale();\n normScales[axisID] = normScale = Math.abs(ax._m) / group[axisID];\n minScale = Math.min(minScale, normScale);\n if (ax.constrain === \"domain\" || !ax._constraintShrinkable) {\n matchScale = Math.min(matchScale, normScale);\n }\n delete ax._constraintShrinkable;\n maxScale = Math.max(maxScale, normScale);\n if (ax.constrain === \"domain\") hasAnyDomainConstraint = true;\n }\n if (minScale > ALMOST_EQUAL * maxScale && !hasAnyDomainConstraint) continue;\n for (j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n normScale = normScales[axisID];\n ax = axes[axisID];\n mode = ax.constrain;\n if (normScale !== matchScale || mode === \"domain\") {\n factor = normScale / matchScale;\n if (mode === \"range\") {\n scaleZoom(ax, factor);\n } else {\n var inputDomain = ax._inputDomain;\n var domainShrunk = (ax.domain[1] - ax.domain[0]) / (inputDomain[1] - inputDomain[0]);\n var rangeShrunk = (ax.r2l(ax.range[1]) - ax.r2l(ax.range[0])) / (ax.r2l(ax._inputRange[1]) - ax.r2l(ax._inputRange[0]));\n factor /= domainShrunk;\n if (factor * rangeShrunk < 1) {\n ax.domain = ax._input.domain = inputDomain.slice();\n scaleZoom(ax, factor);\n continue;\n }\n if (rangeShrunk < 1) {\n ax.range = ax._input.range = ax._inputRange.slice();\n factor *= rangeShrunk;\n }\n if (ax.autorange) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n var rangeCenter = (rl0 + rl1) / 2;\n var rangeMin = rangeCenter;\n var rangeMax = rangeCenter;\n var halfRange = Math.abs(rl1 - rangeCenter);\n var outerMin = rangeCenter - halfRange * factor * 1.0001;\n var outerMax = rangeCenter + halfRange * factor * 1.0001;\n var getPadMin = autorange.makePadFn(fullLayout, ax, 0);\n var getPadMax = autorange.makePadFn(fullLayout, ax, 1);\n updateDomain(ax, factor);\n var m = Math.abs(ax._m);\n var extremes = autorange.concatExtremes(gd, ax);\n var minArray = extremes.min;\n var maxArray = extremes.max;\n var newVal;\n var k;\n for (k = 0; k < minArray.length; k++) {\n newVal = minArray[k].val - getPadMin(minArray[k]) / m;\n if (newVal > outerMin && newVal < rangeMin) {\n rangeMin = newVal;\n }\n }\n for (k = 0; k < maxArray.length; k++) {\n newVal = maxArray[k].val + getPadMax(maxArray[k]) / m;\n if (newVal < outerMax && newVal > rangeMax) {\n rangeMax = newVal;\n }\n }\n var domainExpand = (rangeMax - rangeMin) / (2 * halfRange);\n factor /= domainExpand;\n rangeMin = ax.l2r(rangeMin);\n rangeMax = ax.l2r(rangeMax);\n ax.range = ax._input.range = rl0 < rl1 ? [rangeMin, rangeMax] : [rangeMax, rangeMin];\n }\n updateDomain(ax, factor);\n }\n }\n }\n }\n };\n exports.getAxisGroup = function getAxisGroup(fullLayout, axId) {\n var matchGroups = fullLayout._axisMatchGroups;\n for (var i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n if (group[axId]) return \"g\" + i;\n }\n return axId;\n };\n exports.clean = function clean(gd, ax) {\n if (ax._inputDomain) {\n var isConstrained = false;\n var axId = ax._id;\n var constraintGroups = gd._fullLayout._axisConstraintGroups;\n for (var j = 0; j < constraintGroups.length; j++) {\n if (constraintGroups[j][axId]) {\n isConstrained = true;\n break;\n }\n }\n if (!isConstrained || ax.constrain !== \"domain\") {\n ax._input.domain = ax.domain = ax._inputDomain;\n delete ax._inputDomain;\n }\n }\n };\n function updateDomain(ax, factor) {\n var inputDomain = ax._inputDomain;\n var centerFraction = FROM_BL[ax.constraintoward];\n var center = inputDomain[0] + (inputDomain[1] - inputDomain[0]) * centerFraction;\n ax.domain = ax._input.domain = [\n center + (inputDomain[0] - center) / factor,\n center + (inputDomain[1] - center) / factor\n ];\n ax.setScale();\n }\n }\n });\n\n // src/plot_api/subroutines.js\n var require_subroutines = __commonJS({\n \"src/plot_api/subroutines.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Plots = require_plots();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var clearGlCanvases = require_clear_gl_canvases();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Titles = require_titles();\n var ModeBar = require_modebar2();\n var Axes = require_axes();\n var alignmentConstants = require_alignment();\n var axisConstraints = require_constraints();\n var enforceAxisConstraints = axisConstraints.enforce;\n var cleanAxisConstraints = axisConstraints.clean;\n var doAutoRange = require_autorange().doAutoRange;\n var SVG_TEXT_ANCHOR_START = \"start\";\n var SVG_TEXT_ANCHOR_MIDDLE = \"middle\";\n var SVG_TEXT_ANCHOR_END = \"end\";\n var zindexSeparator = require_constants2().zindexSeparator;\n exports.layoutStyles = function(gd) {\n return Lib.syncOrAsync([Plots.doAutoMargin, lsInner], gd);\n };\n function overlappingDomain(xDomain, yDomain, domains) {\n for (var i = 0; i < domains.length; i++) {\n var existingX = domains[i][0];\n var existingY = domains[i][1];\n if (existingX[0] >= xDomain[1] || existingX[1] <= xDomain[0]) {\n continue;\n }\n if (existingY[0] < yDomain[1] && existingY[1] > yDomain[0]) {\n return true;\n }\n }\n return false;\n }\n function lsInner(gd) {\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var pad = gs.p;\n var axList = Axes.list(gd, \"\", true);\n var i, subplot, plotinfo, ax, xa, ya;\n fullLayout._paperdiv.style({\n width: gd._context.responsive && fullLayout.autosize && !gd._context._hasZeroWidth && !gd.layout.width ? \"100%\" : fullLayout.width + \"px\",\n height: gd._context.responsive && fullLayout.autosize && !gd._context._hasZeroHeight && !gd.layout.height ? \"100%\" : fullLayout.height + \"px\"\n }).selectAll(\".main-svg\").call(Drawing.setSize, fullLayout.width, fullLayout.height);\n gd._context.setBackground(gd, fullLayout.paper_bgcolor);\n exports.drawMainTitle(gd);\n ModeBar.manage(gd);\n if (!fullLayout._has(\"cartesian\")) {\n return Plots.previousPromises(gd);\n }\n function getLinePosition(ax2, counterAx2, side) {\n var lwHalf = ax2._lw / 2;\n if (ax2._id.charAt(0) === \"x\") {\n if (!counterAx2) return gs.t + gs.h * (1 - (ax2.position || 0)) + lwHalf % 1;\n else if (side === \"top\") return counterAx2._offset - pad - lwHalf;\n return counterAx2._offset + counterAx2._length + pad + lwHalf;\n }\n if (!counterAx2) return gs.l + gs.w * (ax2.position || 0) + lwHalf % 1;\n else if (side === \"right\") return counterAx2._offset + counterAx2._length + pad + lwHalf;\n return counterAx2._offset - pad - lwHalf;\n }\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n var counterAx = ax._anchorAxis;\n ax._linepositions = {};\n ax._lw = Drawing.crispRound(gd, ax.linewidth, 1);\n ax._mainLinePosition = getLinePosition(ax, counterAx, ax.side);\n ax._mainMirrorPosition = ax.mirror && counterAx ? getLinePosition(\n ax,\n counterAx,\n alignmentConstants.OPPOSITE_SIDE[ax.side]\n ) : null;\n }\n var lowerBackgroundIDs = [];\n var backgroundIds = [];\n var lowerDomains = [];\n var noNeedForBg = Color2.opacity(fullLayout.paper_bgcolor) === 1 && Color2.opacity(fullLayout.plot_bgcolor) === 1 && fullLayout.paper_bgcolor === fullLayout.plot_bgcolor;\n for (subplot in fullLayout._plots) {\n plotinfo = fullLayout._plots[subplot];\n if (plotinfo.mainplot) {\n if (plotinfo.bg) {\n plotinfo.bg.remove();\n }\n plotinfo.bg = void 0;\n } else {\n var xDomain = plotinfo.xaxis.domain;\n var yDomain = plotinfo.yaxis.domain;\n var plotgroup = plotinfo.plotgroup;\n if (overlappingDomain(xDomain, yDomain, lowerDomains) && subplot.indexOf(zindexSeparator) === -1) {\n var pgNode = plotgroup.node();\n var plotgroupBg = plotinfo.bg = Lib.ensureSingle(plotgroup, \"rect\", \"bg\");\n pgNode.insertBefore(plotgroupBg.node(), pgNode.childNodes[0]);\n backgroundIds.push(subplot);\n } else {\n plotgroup.select(\"rect.bg\").remove();\n lowerDomains.push([xDomain, yDomain]);\n if (!noNeedForBg) {\n lowerBackgroundIDs.push(subplot);\n backgroundIds.push(subplot);\n }\n }\n }\n }\n var lowerBackgrounds = fullLayout._bgLayer.selectAll(\".bg\").data(lowerBackgroundIDs);\n lowerBackgrounds.enter().append(\"rect\").classed(\"bg\", true);\n lowerBackgrounds.exit().remove();\n lowerBackgrounds.each(function(subplot2) {\n fullLayout._plots[subplot2].bg = d3.select(this);\n });\n for (i = 0; i < backgroundIds.length; i++) {\n plotinfo = fullLayout._plots[backgroundIds[i]];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n if (plotinfo.bg && xa._offset !== void 0 && ya._offset !== void 0) {\n plotinfo.bg.call(\n Drawing.setRect,\n xa._offset - pad,\n ya._offset - pad,\n xa._length + 2 * pad,\n ya._length + 2 * pad\n ).call(Color2.fill, fullLayout.plot_bgcolor).style(\"stroke-width\", 0);\n }\n }\n if (!fullLayout._hasOnlyLargeSploms) {\n for (subplot in fullLayout._plots) {\n plotinfo = fullLayout._plots[subplot];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n var clipId = plotinfo.clipId = \"clip\" + fullLayout._uid + subplot + \"plot\";\n var plotClip = Lib.ensureSingleById(fullLayout._clips, \"clipPath\", clipId, function(s) {\n s.classed(\"plotclip\", true).append(\"rect\");\n });\n plotinfo.clipRect = plotClip.select(\"rect\").attr({\n width: xa._length,\n height: ya._length\n });\n Drawing.setTranslate(plotinfo.plot, xa._offset, ya._offset);\n var plotClipId;\n var layerClipId;\n if (plotinfo._hasClipOnAxisFalse) {\n plotClipId = null;\n layerClipId = clipId;\n } else {\n plotClipId = clipId;\n layerClipId = null;\n }\n Drawing.setClipUrl(plotinfo.plot, plotClipId, gd);\n plotinfo.layerClipId = layerClipId;\n }\n }\n var xLinesXLeft, xLinesXRight, xLinesYBottom, xLinesYTop, leftYLineWidth, rightYLineWidth;\n var yLinesYBottom, yLinesYTop, yLinesXLeft, yLinesXRight, connectYBottom, connectYTop;\n var extraSubplot;\n function xLinePath(y) {\n return \"M\" + xLinesXLeft + \",\" + y + \"H\" + xLinesXRight;\n }\n function xLinePathFree(y) {\n return \"M\" + xa._offset + \",\" + y + \"h\" + xa._length;\n }\n function yLinePath(x) {\n return \"M\" + x + \",\" + yLinesYTop + \"V\" + yLinesYBottom;\n }\n function yLinePathFree(x) {\n if (ya._shift !== void 0) {\n x += ya._shift;\n }\n return \"M\" + x + \",\" + ya._offset + \"v\" + ya._length;\n }\n function mainPath(ax2, pathFn, pathFnFree) {\n if (!ax2.showline || subplot !== ax2._mainSubplot) return \"\";\n if (!ax2._anchorAxis) return pathFnFree(ax2._mainLinePosition);\n var out = pathFn(ax2._mainLinePosition);\n if (ax2.mirror) out += pathFn(ax2._mainMirrorPosition);\n return out;\n }\n for (subplot in fullLayout._plots) {\n plotinfo = fullLayout._plots[subplot];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n var xPath = \"M0,0\";\n if (shouldShowLinesOrTicks(xa, subplot)) {\n leftYLineWidth = findCounterAxisLineWidth(xa, \"left\", ya, axList);\n xLinesXLeft = xa._offset - (leftYLineWidth ? pad + leftYLineWidth : 0);\n rightYLineWidth = findCounterAxisLineWidth(xa, \"right\", ya, axList);\n xLinesXRight = xa._offset + xa._length + (rightYLineWidth ? pad + rightYLineWidth : 0);\n xLinesYBottom = getLinePosition(xa, ya, \"bottom\");\n xLinesYTop = getLinePosition(xa, ya, \"top\");\n extraSubplot = !xa._anchorAxis || subplot !== xa._mainSubplot;\n if (extraSubplot && (xa.mirror === \"allticks\" || xa.mirror === \"all\")) {\n xa._linepositions[subplot] = [xLinesYBottom, xLinesYTop];\n }\n xPath = mainPath(xa, xLinePath, xLinePathFree);\n if (extraSubplot && xa.showline && (xa.mirror === \"all\" || xa.mirror === \"allticks\")) {\n xPath += xLinePath(xLinesYBottom) + xLinePath(xLinesYTop);\n }\n plotinfo.xlines.style(\"stroke-width\", xa._lw + \"px\").call(Color2.stroke, xa.showline ? xa.linecolor : \"rgba(0,0,0,0)\");\n }\n plotinfo.xlines.attr(\"d\", xPath);\n var yPath = \"M0,0\";\n if (shouldShowLinesOrTicks(ya, subplot)) {\n connectYBottom = findCounterAxisLineWidth(ya, \"bottom\", xa, axList);\n yLinesYBottom = ya._offset + ya._length + (connectYBottom ? pad : 0);\n connectYTop = findCounterAxisLineWidth(ya, \"top\", xa, axList);\n yLinesYTop = ya._offset - (connectYTop ? pad : 0);\n yLinesXLeft = getLinePosition(ya, xa, \"left\");\n yLinesXRight = getLinePosition(ya, xa, \"right\");\n extraSubplot = !ya._anchorAxis || subplot !== ya._mainSubplot;\n if (extraSubplot && (ya.mirror === \"allticks\" || ya.mirror === \"all\")) {\n ya._linepositions[subplot] = [yLinesXLeft, yLinesXRight];\n }\n yPath = mainPath(ya, yLinePath, yLinePathFree);\n if (extraSubplot && ya.showline && (ya.mirror === \"all\" || ya.mirror === \"allticks\")) {\n yPath += yLinePath(yLinesXLeft) + yLinePath(yLinesXRight);\n }\n plotinfo.ylines.style(\"stroke-width\", ya._lw + \"px\").call(Color2.stroke, ya.showline ? ya.linecolor : \"rgba(0,0,0,0)\");\n }\n plotinfo.ylines.attr(\"d\", yPath);\n }\n Axes.makeClipPaths(gd);\n return Plots.previousPromises(gd);\n }\n function shouldShowLinesOrTicks(ax, subplot) {\n return (ax.ticks || ax.showline) && (subplot === ax._mainSubplot || ax.mirror === \"all\" || ax.mirror === \"allticks\");\n }\n function shouldShowLineThisSide(ax, side, counterAx) {\n if (!counterAx.showline || !counterAx._lw) return false;\n if (counterAx.mirror === \"all\" || counterAx.mirror === \"allticks\") return true;\n var anchorAx = counterAx._anchorAxis;\n if (!anchorAx) return false;\n var sideIndex = alignmentConstants.FROM_BL[side];\n if (counterAx.side === side) {\n return anchorAx.domain[sideIndex] === ax.domain[sideIndex];\n }\n return counterAx.mirror && anchorAx.domain[1 - sideIndex] === ax.domain[1 - sideIndex];\n }\n function findCounterAxisLineWidth(ax, side, counterAx, axList) {\n if (shouldShowLineThisSide(ax, side, counterAx)) {\n return counterAx._lw;\n }\n for (var i = 0; i < axList.length; i++) {\n var axi = axList[i];\n if (axi._mainAxis === counterAx._mainAxis && shouldShowLineThisSide(ax, side, axi)) {\n return axi._lw;\n }\n }\n return 0;\n }\n exports.drawMainTitle = function(gd) {\n var title = gd._fullLayout.title;\n var fullLayout = gd._fullLayout;\n var textAnchor = getMainTitleTextAnchor(fullLayout);\n var dy = getMainTitleDy(fullLayout);\n var y = getMainTitleY(fullLayout, dy);\n var x = getMainTitleX(fullLayout, textAnchor);\n Titles.draw(gd, \"gtitle\", {\n propContainer: fullLayout,\n propName: \"title.text\",\n subtitlePropName: \"title.subtitle.text\",\n placeholder: fullLayout._dfltTitle.plot,\n subtitlePlaceholder: fullLayout._dfltTitle.subtitle,\n attributes: {\n x,\n y,\n \"text-anchor\": textAnchor,\n dy\n }\n });\n if (title.text && title.automargin) {\n var titleObj = d3.selectAll(\".gtitle\");\n var titleHeight = Drawing.bBox(d3.selectAll(\".g-gtitle\").node()).height;\n var pushMargin = needsMarginPush(gd, title, titleHeight);\n if (pushMargin > 0) {\n applyTitleAutoMargin(gd, y, pushMargin, titleHeight);\n titleObj.attr({\n x,\n y,\n \"text-anchor\": textAnchor,\n dy: getMainTitleDyAdj(title.yanchor)\n }).call(svgTextUtils.positionText, x, y);\n var extraLines = (title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if (extraLines) {\n var delta = alignmentConstants.LINE_SPACING * extraLines + alignmentConstants.MID_SHIFT;\n if (title.y === 0) {\n delta = -delta;\n }\n titleObj.selectAll(\".line\").each(function() {\n var newDy = +this.getAttribute(\"dy\").slice(0, -2) - delta + \"em\";\n this.setAttribute(\"dy\", newDy);\n });\n }\n var subtitleObj = d3.selectAll(\".gtitle-subtitle\");\n if (subtitleObj.node()) {\n var titleBB = titleObj.node().getBBox();\n var titleBottom = titleBB.y + titleBB.height;\n var subtitleY = titleBottom + Titles.SUBTITLE_PADDING_EM * title.subtitle.font.size;\n subtitleObj.attr({\n x,\n y: subtitleY,\n \"text-anchor\": textAnchor,\n dy: getMainTitleDyAdj(title.yanchor)\n }).call(svgTextUtils.positionText, x, subtitleY);\n }\n }\n }\n };\n function isOutsideContainer(gd, title, position, y, titleHeight) {\n var plotHeight = title.yref === \"paper\" ? gd._fullLayout._size.h : gd._fullLayout.height;\n var yPosTop = Lib.isTopAnchor(title) ? y : y - titleHeight;\n var yPosRel = position === \"b\" ? plotHeight - yPosTop : yPosTop;\n if (Lib.isTopAnchor(title) && position === \"t\" || Lib.isBottomAnchor(title) && position === \"b\") {\n return false;\n } else {\n return yPosRel < titleHeight;\n }\n }\n function containerPushVal(position, titleY, titleYanchor, height, titleDepth) {\n var push = 0;\n if (titleYanchor === \"middle\") {\n push += titleDepth / 2;\n }\n if (position === \"t\") {\n if (titleYanchor === \"top\") {\n push += titleDepth;\n }\n push += height - titleY * height;\n } else {\n if (titleYanchor === \"bottom\") {\n push += titleDepth;\n }\n push += titleY * height;\n }\n return push;\n }\n function needsMarginPush(gd, title, titleHeight) {\n var titleY = title.y;\n var titleYanchor = title.yanchor;\n var position = titleY > 0.5 ? \"t\" : \"b\";\n var curMargin = gd._fullLayout.margin[position];\n var pushMargin = 0;\n if (title.yref === \"paper\") {\n pushMargin = titleHeight + title.pad.t + title.pad.b;\n } else if (title.yref === \"container\") {\n pushMargin = containerPushVal(position, titleY, titleYanchor, gd._fullLayout.height, titleHeight) + title.pad.t + title.pad.b;\n }\n if (pushMargin > curMargin) {\n return pushMargin;\n }\n return 0;\n }\n function applyTitleAutoMargin(gd, y, pushMargin, titleHeight) {\n var titleID = \"title.automargin\";\n var title = gd._fullLayout.title;\n var position = title.y > 0.5 ? \"t\" : \"b\";\n var push = {\n x: title.x,\n y: title.y,\n t: 0,\n b: 0\n };\n var reservedPush = {};\n if (title.yref === \"paper\" && isOutsideContainer(gd, title, position, y, titleHeight)) {\n push[position] = pushMargin;\n } else if (title.yref === \"container\") {\n reservedPush[position] = pushMargin;\n gd._fullLayout._reservedMargin[titleID] = reservedPush;\n }\n Plots.allowAutoMargin(gd, titleID);\n Plots.autoMargin(gd, titleID, push);\n }\n function getMainTitleX(fullLayout, textAnchor) {\n var title = fullLayout.title;\n var gs = fullLayout._size;\n var hPadShift = 0;\n if (textAnchor === SVG_TEXT_ANCHOR_START) {\n hPadShift = title.pad.l;\n } else if (textAnchor === SVG_TEXT_ANCHOR_END) {\n hPadShift = -title.pad.r;\n }\n switch (title.xref) {\n case \"paper\":\n return gs.l + gs.w * title.x + hPadShift;\n case \"container\":\n default:\n return fullLayout.width * title.x + hPadShift;\n }\n }\n function getMainTitleY(fullLayout, dy) {\n var title = fullLayout.title;\n var gs = fullLayout._size;\n var vPadShift = 0;\n if (dy === \"0em\" || !dy) {\n vPadShift = -title.pad.b;\n } else if (dy === alignmentConstants.CAP_SHIFT + \"em\") {\n vPadShift = title.pad.t;\n }\n if (title.y === \"auto\") {\n return gs.t / 2;\n } else {\n switch (title.yref) {\n case \"paper\":\n return gs.t + gs.h - gs.h * title.y + vPadShift;\n case \"container\":\n default:\n return fullLayout.height - fullLayout.height * title.y + vPadShift;\n }\n }\n }\n function getMainTitleDyAdj(yanchor) {\n if (yanchor === \"top\") {\n return alignmentConstants.CAP_SHIFT + 0.3 + \"em\";\n } else if (yanchor === \"bottom\") {\n return \"-0.3em\";\n } else {\n return alignmentConstants.MID_SHIFT + \"em\";\n }\n }\n function getMainTitleTextAnchor(fullLayout) {\n var title = fullLayout.title;\n var textAnchor = SVG_TEXT_ANCHOR_MIDDLE;\n if (Lib.isRightAnchor(title)) {\n textAnchor = SVG_TEXT_ANCHOR_END;\n } else if (Lib.isLeftAnchor(title)) {\n textAnchor = SVG_TEXT_ANCHOR_START;\n }\n return textAnchor;\n }\n function getMainTitleDy(fullLayout) {\n var title = fullLayout.title;\n var dy = \"0em\";\n if (Lib.isTopAnchor(title)) {\n dy = alignmentConstants.CAP_SHIFT + \"em\";\n } else if (Lib.isMiddleAnchor(title)) {\n dy = alignmentConstants.MID_SHIFT + \"em\";\n }\n return dy;\n }\n exports.doTraceStyle = function(gd) {\n var calcdata = gd.calcdata;\n var editStyleCalls = [];\n var i;\n for (i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0] || {};\n var trace = cd0.trace || {};\n var _module = trace._module || {};\n var arraysToCalcdata = _module.arraysToCalcdata;\n if (arraysToCalcdata) arraysToCalcdata(cd, trace);\n var editStyle = _module.editStyle;\n if (editStyle) editStyleCalls.push({ fn: editStyle, cd0 });\n }\n if (editStyleCalls.length) {\n for (i = 0; i < editStyleCalls.length; i++) {\n var edit = editStyleCalls[i];\n edit.fn(gd, edit.cd0);\n }\n clearGlCanvases(gd);\n exports.redrawReglTraces(gd);\n }\n Plots.style(gd);\n Registry.getComponentMethod(\"legend\", \"draw\")(gd);\n return Plots.previousPromises(gd);\n };\n exports.doColorBars = function(gd) {\n Registry.getComponentMethod(\"colorbar\", \"draw\")(gd);\n return Plots.previousPromises(gd);\n };\n exports.layoutReplot = function(gd) {\n var layout = gd.layout;\n gd.layout = void 0;\n return Registry.call(\"_doPlot\", gd, \"\", layout);\n };\n exports.doLegend = function(gd) {\n Registry.getComponentMethod(\"legend\", \"draw\")(gd);\n return Plots.previousPromises(gd);\n };\n exports.doTicksRelayout = function(gd) {\n Axes.draw(gd, \"redraw\");\n if (gd._fullLayout._hasOnlyLargeSploms) {\n Registry.subplotsRegistry.splom.updateGrid(gd);\n clearGlCanvases(gd);\n exports.redrawReglTraces(gd);\n }\n exports.drawMainTitle(gd);\n return Plots.previousPromises(gd);\n };\n exports.doModeBar = function(gd) {\n var fullLayout = gd._fullLayout;\n ModeBar.manage(gd);\n for (var i = 0; i < fullLayout._basePlotModules.length; i++) {\n var updateFx = fullLayout._basePlotModules[i].updateFx;\n if (updateFx) updateFx(gd);\n }\n return Plots.previousPromises(gd);\n };\n exports.doCamera = function(gd) {\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d;\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneLayout = fullLayout[sceneIds[i]];\n var scene = sceneLayout._scene;\n scene.setViewport(sceneLayout);\n }\n };\n exports.drawData = function(gd) {\n var fullLayout = gd._fullLayout;\n clearGlCanvases(gd);\n var basePlotModules = fullLayout._basePlotModules;\n for (var i = 0; i < basePlotModules.length; i++) {\n basePlotModules[i].plot(gd);\n }\n exports.redrawReglTraces(gd);\n Plots.style(gd);\n Registry.getComponentMethod(\"selections\", \"draw\")(gd);\n Registry.getComponentMethod(\"shapes\", \"draw\")(gd);\n Registry.getComponentMethod(\"annotations\", \"draw\")(gd);\n Registry.getComponentMethod(\"images\", \"draw\")(gd);\n fullLayout._replotting = false;\n return Plots.previousPromises(gd);\n };\n exports.redrawReglTraces = function(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout._has(\"regl\")) {\n var fullData = gd._fullData;\n var cartesianIds = [];\n var polarIds = [];\n var i, sp;\n if (fullLayout._hasOnlyLargeSploms) {\n fullLayout._splomGrid.draw();\n }\n for (i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.visible === true && trace._length !== 0) {\n if (trace.type === \"splom\") {\n fullLayout._splomScenes[trace.uid].draw();\n } else if (trace.type === \"scattergl\") {\n Lib.pushUnique(cartesianIds, trace.xaxis + trace.yaxis);\n } else if (trace.type === \"scatterpolargl\") {\n Lib.pushUnique(polarIds, trace.subplot);\n }\n }\n }\n for (i = 0; i < cartesianIds.length; i++) {\n sp = fullLayout._plots[cartesianIds[i]];\n if (sp._scene) sp._scene.draw();\n }\n for (i = 0; i < polarIds.length; i++) {\n sp = fullLayout[polarIds[i]]._subplot;\n if (sp._scene) sp._scene.draw();\n }\n }\n };\n exports.doAutoRangeAndConstraints = function(gd) {\n var axList = Axes.list(gd, \"\", true);\n var ax;\n var autoRangeDone = {};\n for (var i = 0; i < axList.length; i++) {\n ax = axList[i];\n if (!autoRangeDone[ax._id]) {\n autoRangeDone[ax._id] = 1;\n cleanAxisConstraints(gd, ax);\n doAutoRange(gd, ax);\n var matchGroup = ax._matchGroup;\n if (matchGroup) {\n for (var id2 in matchGroup) {\n var ax2 = Axes.getFromId(gd, id2);\n doAutoRange(gd, ax2, ax.range);\n autoRangeDone[id2] = 1;\n }\n }\n }\n }\n enforceAxisConstraints(gd);\n };\n exports.finalDraw = function(gd) {\n Registry.getComponentMethod(\"rangeslider\", \"draw\")(gd);\n Registry.getComponentMethod(\"rangeselector\", \"draw\")(gd);\n };\n exports.drawMarginPushers = function(gd) {\n Registry.getComponentMethod(\"legend\", \"draw\")(gd);\n Registry.getComponentMethod(\"rangeselector\", \"draw\")(gd);\n Registry.getComponentMethod(\"sliders\", \"draw\")(gd);\n Registry.getComponentMethod(\"updatemenus\", \"draw\")(gd);\n Registry.getComponentMethod(\"colorbar\", \"draw\")(gd);\n };\n }\n });\n\n // src/components/selections/draw.js\n var require_draw3 = __commonJS({\n \"src/components/selections/draw.js\"(exports, module) {\n \"use strict\";\n var readPaths = require_helpers7().readPaths;\n var displayOutlines = require_display_outlines();\n var clearOutlineControllers = require_handle_outline().clearOutlineControllers;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var arrayEditor = require_plot_template().arrayEditor;\n var helpers = require_helpers8();\n var getPathString = helpers.getPathString;\n module.exports = {\n draw,\n drawOne,\n activateLastSelection\n };\n function draw(gd) {\n var fullLayout = gd._fullLayout;\n clearOutlineControllers(gd);\n fullLayout._selectionLayer.selectAll(\"path\").remove();\n for (var k in fullLayout._plots) {\n var selectionLayer = fullLayout._plots[k].selectionLayer;\n if (selectionLayer) selectionLayer.selectAll(\"path\").remove();\n }\n for (var i = 0; i < fullLayout.selections.length; i++) {\n drawOne(gd, i);\n }\n }\n function couldHaveActiveSelection(gd) {\n return gd._context.editSelection;\n }\n function drawOne(gd, index) {\n gd._fullLayout._paperdiv.selectAll('.selectionlayer [data-index=\"' + index + '\"]').remove();\n var o = helpers.makeSelectionsOptionsAndPlotinfo(gd, index);\n var options = o.options;\n var plotinfo = o.plotinfo;\n if (!options._input) return;\n drawSelection(gd._fullLayout._selectionLayer);\n function drawSelection(selectionLayer) {\n var d = getPathString(gd, options);\n var attrs = {\n \"data-index\": index,\n \"fill-rule\": \"evenodd\",\n d\n };\n var opacity = options.opacity;\n var fillColor = \"rgba(0,0,0,0)\";\n var lineColor = options.line.color || Color2.contrast(gd._fullLayout.plot_bgcolor);\n var lineWidth = options.line.width;\n var lineDash = options.line.dash;\n if (!lineWidth) {\n lineWidth = 5;\n lineDash = \"solid\";\n }\n var isActiveSelection = couldHaveActiveSelection(gd) && gd._fullLayout._activeSelectionIndex === index;\n if (isActiveSelection) {\n fillColor = gd._fullLayout.activeselection.fillcolor;\n opacity = gd._fullLayout.activeselection.opacity;\n }\n var allPaths = [];\n for (var sensory = 1; sensory >= 0; sensory--) {\n var path = selectionLayer.append(\"path\").attr(attrs).style(\"opacity\", sensory ? 0.1 : opacity).call(Color2.stroke, lineColor).call(Color2.fill, fillColor).call(\n Drawing.dashLine,\n sensory ? \"solid\" : lineDash,\n sensory ? 4 + lineWidth : lineWidth\n );\n setClipPath(path, gd, options);\n if (isActiveSelection) {\n var editHelpers = arrayEditor(gd.layout, \"selections\", options);\n path.style({\n cursor: \"move\"\n });\n var dragOptions = {\n element: path.node(),\n plotinfo,\n gd,\n editHelpers,\n isActiveSelection: true\n // i.e. to enable controllers\n };\n var polygons = readPaths(d, gd);\n displayOutlines(polygons, path, dragOptions);\n } else {\n path.style(\"pointer-events\", sensory ? \"all\" : \"none\");\n }\n allPaths[sensory] = path;\n }\n var forePath = allPaths[0];\n var backPath = allPaths[1];\n backPath.node().addEventListener(\"click\", function() {\n return activateSelection(gd, forePath);\n });\n }\n }\n function setClipPath(selectionPath, gd, selectionOptions) {\n var clipAxes = selectionOptions.xref + selectionOptions.yref;\n Drawing.setClipUrl(\n selectionPath,\n \"clip\" + gd._fullLayout._uid + clipAxes,\n gd\n );\n }\n function activateSelection(gd, path) {\n if (!couldHaveActiveSelection(gd)) return;\n var element = path.node();\n var id = +element.getAttribute(\"data-index\");\n if (id >= 0) {\n if (id === gd._fullLayout._activeSelectionIndex) {\n deactivateSelection(gd);\n return;\n }\n gd._fullLayout._activeSelectionIndex = id;\n gd._fullLayout._deactivateSelection = deactivateSelection;\n draw(gd);\n }\n }\n function activateLastSelection(gd) {\n if (!couldHaveActiveSelection(gd)) return;\n var id = gd._fullLayout.selections.length - 1;\n gd._fullLayout._activeSelectionIndex = id;\n gd._fullLayout._deactivateSelection = deactivateSelection;\n draw(gd);\n }\n function deactivateSelection(gd) {\n if (!couldHaveActiveSelection(gd)) return;\n var id = gd._fullLayout._activeSelectionIndex;\n if (id >= 0) {\n clearOutlineControllers(gd);\n delete gd._fullLayout._activeSelectionIndex;\n draw(gd);\n }\n }\n }\n });\n\n // node_modules/polybooljs/lib/build-log.js\n var require_build_log = __commonJS({\n \"node_modules/polybooljs/lib/build-log.js\"(exports, module) {\n function BuildLog() {\n var my;\n var nextSegmentId = 0;\n var curVert = false;\n function push(type, data) {\n my.list.push({\n type,\n data: data ? JSON.parse(JSON.stringify(data)) : void 0\n });\n return my;\n }\n my = {\n list: [],\n segmentId: function() {\n return nextSegmentId++;\n },\n checkIntersection: function(seg1, seg2) {\n return push(\"check\", { seg1, seg2 });\n },\n segmentChop: function(seg, end) {\n push(\"div_seg\", { seg, pt: end });\n return push(\"chop\", { seg, pt: end });\n },\n statusRemove: function(seg) {\n return push(\"pop_seg\", { seg });\n },\n segmentUpdate: function(seg) {\n return push(\"seg_update\", { seg });\n },\n segmentNew: function(seg, primary) {\n return push(\"new_seg\", { seg, primary });\n },\n segmentRemove: function(seg) {\n return push(\"rem_seg\", { seg });\n },\n tempStatus: function(seg, above, below) {\n return push(\"temp_status\", { seg, above, below });\n },\n rewind: function(seg) {\n return push(\"rewind\", { seg });\n },\n status: function(seg, above, below) {\n return push(\"status\", { seg, above, below });\n },\n vert: function(x) {\n if (x === curVert)\n return my;\n curVert = x;\n return push(\"vert\", { x });\n },\n log: function(data) {\n if (typeof data !== \"string\")\n data = JSON.stringify(data, false, \" \");\n return push(\"log\", { txt: data });\n },\n reset: function() {\n return push(\"reset\");\n },\n selected: function(segs) {\n return push(\"selected\", { segs });\n },\n chainStart: function(seg) {\n return push(\"chain_start\", { seg });\n },\n chainRemoveHead: function(index, pt) {\n return push(\"chain_rem_head\", { index, pt });\n },\n chainRemoveTail: function(index, pt) {\n return push(\"chain_rem_tail\", { index, pt });\n },\n chainNew: function(pt1, pt2) {\n return push(\"chain_new\", { pt1, pt2 });\n },\n chainMatch: function(index) {\n return push(\"chain_match\", { index });\n },\n chainClose: function(index) {\n return push(\"chain_close\", { index });\n },\n chainAddHead: function(index, pt) {\n return push(\"chain_add_head\", { index, pt });\n },\n chainAddTail: function(index, pt) {\n return push(\"chain_add_tail\", { index, pt });\n },\n chainConnect: function(index1, index2) {\n return push(\"chain_con\", { index1, index2 });\n },\n chainReverse: function(index) {\n return push(\"chain_rev\", { index });\n },\n chainJoin: function(index1, index2) {\n return push(\"chain_join\", { index1, index2 });\n },\n done: function() {\n return push(\"done\");\n }\n };\n return my;\n }\n module.exports = BuildLog;\n }\n });\n\n // node_modules/polybooljs/lib/epsilon.js\n var require_epsilon = __commonJS({\n \"node_modules/polybooljs/lib/epsilon.js\"(exports, module) {\n function Epsilon(eps) {\n if (typeof eps !== \"number\")\n eps = 1e-10;\n var my = {\n epsilon: function(v) {\n if (typeof v === \"number\")\n eps = v;\n return eps;\n },\n pointAboveOrOnLine: function(pt, left, right) {\n var Ax = left[0];\n var Ay = left[1];\n var Bx = right[0];\n var By = right[1];\n var Cx = pt[0];\n var Cy = pt[1];\n return (Bx - Ax) * (Cy - Ay) - (By - Ay) * (Cx - Ax) >= -eps;\n },\n pointBetween: function(p, left, right) {\n var d_py_ly = p[1] - left[1];\n var d_rx_lx = right[0] - left[0];\n var d_px_lx = p[0] - left[0];\n var d_ry_ly = right[1] - left[1];\n var dot = d_px_lx * d_rx_lx + d_py_ly * d_ry_ly;\n if (dot < eps)\n return false;\n var sqlen = d_rx_lx * d_rx_lx + d_ry_ly * d_ry_ly;\n if (dot - sqlen > -eps)\n return false;\n return true;\n },\n pointsSameX: function(p1, p2) {\n return Math.abs(p1[0] - p2[0]) < eps;\n },\n pointsSameY: function(p1, p2) {\n return Math.abs(p1[1] - p2[1]) < eps;\n },\n pointsSame: function(p1, p2) {\n return my.pointsSameX(p1, p2) && my.pointsSameY(p1, p2);\n },\n pointsCompare: function(p1, p2) {\n if (my.pointsSameX(p1, p2))\n return my.pointsSameY(p1, p2) ? 0 : p1[1] < p2[1] ? -1 : 1;\n return p1[0] < p2[0] ? -1 : 1;\n },\n pointsCollinear: function(pt1, pt2, pt3) {\n var dx1 = pt1[0] - pt2[0];\n var dy1 = pt1[1] - pt2[1];\n var dx2 = pt2[0] - pt3[0];\n var dy2 = pt2[1] - pt3[1];\n return Math.abs(dx1 * dy2 - dx2 * dy1) < eps;\n },\n linesIntersect: function(a0, a1, b0, b1) {\n var adx = a1[0] - a0[0];\n var ady = a1[1] - a0[1];\n var bdx = b1[0] - b0[0];\n var bdy = b1[1] - b0[1];\n var axb = adx * bdy - ady * bdx;\n if (Math.abs(axb) < eps)\n return false;\n var dx = a0[0] - b0[0];\n var dy = a0[1] - b0[1];\n var A2 = (bdx * dy - bdy * dx) / axb;\n var B2 = (adx * dy - ady * dx) / axb;\n var ret = {\n alongA: 0,\n alongB: 0,\n pt: [\n a0[0] + A2 * adx,\n a0[1] + A2 * ady\n ]\n };\n if (A2 <= -eps)\n ret.alongA = -2;\n else if (A2 < eps)\n ret.alongA = -1;\n else if (A2 - 1 <= -eps)\n ret.alongA = 0;\n else if (A2 - 1 < eps)\n ret.alongA = 1;\n else\n ret.alongA = 2;\n if (B2 <= -eps)\n ret.alongB = -2;\n else if (B2 < eps)\n ret.alongB = -1;\n else if (B2 - 1 <= -eps)\n ret.alongB = 0;\n else if (B2 - 1 < eps)\n ret.alongB = 1;\n else\n ret.alongB = 2;\n return ret;\n },\n pointInsideRegion: function(pt, region) {\n var x = pt[0];\n var y = pt[1];\n var last_x = region[region.length - 1][0];\n var last_y = region[region.length - 1][1];\n var inside = false;\n for (var i = 0; i < region.length; i++) {\n var curr_x = region[i][0];\n var curr_y = region[i][1];\n if (curr_y - y > eps != last_y - y > eps && (last_x - curr_x) * (y - curr_y) / (last_y - curr_y) + curr_x - x > eps)\n inside = !inside;\n last_x = curr_x;\n last_y = curr_y;\n }\n return inside;\n }\n };\n return my;\n }\n module.exports = Epsilon;\n }\n });\n\n // node_modules/polybooljs/lib/linked-list.js\n var require_linked_list = __commonJS({\n \"node_modules/polybooljs/lib/linked-list.js\"(exports, module) {\n var LinkedList = {\n create: function() {\n var my = {\n root: { root: true, next: null },\n exists: function(node) {\n if (node === null || node === my.root)\n return false;\n return true;\n },\n isEmpty: function() {\n return my.root.next === null;\n },\n getHead: function() {\n return my.root.next;\n },\n insertBefore: function(node, check) {\n var last = my.root;\n var here = my.root.next;\n while (here !== null) {\n if (check(here)) {\n node.prev = here.prev;\n node.next = here;\n here.prev.next = node;\n here.prev = node;\n return;\n }\n last = here;\n here = here.next;\n }\n last.next = node;\n node.prev = last;\n node.next = null;\n },\n findTransition: function(check) {\n var prev = my.root;\n var here = my.root.next;\n while (here !== null) {\n if (check(here))\n break;\n prev = here;\n here = here.next;\n }\n return {\n before: prev === my.root ? null : prev,\n after: here,\n insert: function(node) {\n node.prev = prev;\n node.next = here;\n prev.next = node;\n if (here !== null)\n here.prev = node;\n return node;\n }\n };\n }\n };\n return my;\n },\n node: function(data) {\n data.prev = null;\n data.next = null;\n data.remove = function() {\n data.prev.next = data.next;\n if (data.next)\n data.next.prev = data.prev;\n data.prev = null;\n data.next = null;\n };\n return data;\n }\n };\n module.exports = LinkedList;\n }\n });\n\n // node_modules/polybooljs/lib/intersecter.js\n var require_intersecter = __commonJS({\n \"node_modules/polybooljs/lib/intersecter.js\"(exports, module) {\n var LinkedList = require_linked_list();\n function Intersecter(selfIntersection, eps, buildLog) {\n function segmentNew(start, end) {\n return {\n id: buildLog ? buildLog.segmentId() : -1,\n start,\n end,\n myFill: {\n above: null,\n // is there fill above us?\n below: null\n // is there fill below us?\n },\n otherFill: null\n };\n }\n function segmentCopy(start, end, seg) {\n return {\n id: buildLog ? buildLog.segmentId() : -1,\n start,\n end,\n myFill: {\n above: seg.myFill.above,\n below: seg.myFill.below\n },\n otherFill: null\n };\n }\n var event_root = LinkedList.create();\n function eventCompare(p1_isStart, p1_1, p1_2, p2_isStart, p2_1, p2_2) {\n var comp = eps.pointsCompare(p1_1, p2_1);\n if (comp !== 0)\n return comp;\n if (eps.pointsSame(p1_2, p2_2))\n return 0;\n if (p1_isStart !== p2_isStart)\n return p1_isStart ? 1 : -1;\n return eps.pointAboveOrOnLine(\n p1_2,\n p2_isStart ? p2_1 : p2_2,\n // order matters\n p2_isStart ? p2_2 : p2_1\n ) ? 1 : -1;\n }\n function eventAdd(ev, other_pt) {\n event_root.insertBefore(ev, function(here) {\n var comp = eventCompare(\n ev.isStart,\n ev.pt,\n other_pt,\n here.isStart,\n here.pt,\n here.other.pt\n );\n return comp < 0;\n });\n }\n function eventAddSegmentStart(seg, primary) {\n var ev_start = LinkedList.node({\n isStart: true,\n pt: seg.start,\n seg,\n primary,\n other: null,\n status: null\n });\n eventAdd(ev_start, seg.end);\n return ev_start;\n }\n function eventAddSegmentEnd(ev_start, seg, primary) {\n var ev_end = LinkedList.node({\n isStart: false,\n pt: seg.end,\n seg,\n primary,\n other: ev_start,\n status: null\n });\n ev_start.other = ev_end;\n eventAdd(ev_end, ev_start.pt);\n }\n function eventAddSegment(seg, primary) {\n var ev_start = eventAddSegmentStart(seg, primary);\n eventAddSegmentEnd(ev_start, seg, primary);\n return ev_start;\n }\n function eventUpdateEnd(ev, end) {\n if (buildLog)\n buildLog.segmentChop(ev.seg, end);\n ev.other.remove();\n ev.seg.end = end;\n ev.other.pt = end;\n eventAdd(ev.other, ev.pt);\n }\n function eventDivide(ev, pt) {\n var ns = segmentCopy(pt, ev.seg.end, ev.seg);\n eventUpdateEnd(ev, pt);\n return eventAddSegment(ns, ev.primary);\n }\n function calculate(primaryPolyInverted, secondaryPolyInverted) {\n var status_root = LinkedList.create();\n function statusCompare(ev1, ev2) {\n var a1 = ev1.seg.start;\n var a2 = ev1.seg.end;\n var b1 = ev2.seg.start;\n var b2 = ev2.seg.end;\n if (eps.pointsCollinear(a1, b1, b2)) {\n if (eps.pointsCollinear(a2, b1, b2))\n return 1;\n return eps.pointAboveOrOnLine(a2, b1, b2) ? 1 : -1;\n }\n return eps.pointAboveOrOnLine(a1, b1, b2) ? 1 : -1;\n }\n function statusFindSurrounding(ev2) {\n return status_root.findTransition(function(here) {\n var comp = statusCompare(ev2, here.ev);\n return comp > 0;\n });\n }\n function checkIntersection(ev1, ev2) {\n var seg1 = ev1.seg;\n var seg2 = ev2.seg;\n var a1 = seg1.start;\n var a2 = seg1.end;\n var b1 = seg2.start;\n var b2 = seg2.end;\n if (buildLog)\n buildLog.checkIntersection(seg1, seg2);\n var i = eps.linesIntersect(a1, a2, b1, b2);\n if (i === false) {\n if (!eps.pointsCollinear(a1, a2, b1))\n return false;\n if (eps.pointsSame(a1, b2) || eps.pointsSame(a2, b1))\n return false;\n var a1_equ_b1 = eps.pointsSame(a1, b1);\n var a2_equ_b2 = eps.pointsSame(a2, b2);\n if (a1_equ_b1 && a2_equ_b2)\n return ev2;\n var a1_between = !a1_equ_b1 && eps.pointBetween(a1, b1, b2);\n var a2_between = !a2_equ_b2 && eps.pointBetween(a2, b1, b2);\n if (a1_equ_b1) {\n if (a2_between) {\n eventDivide(ev2, a2);\n } else {\n eventDivide(ev1, b2);\n }\n return ev2;\n } else if (a1_between) {\n if (!a2_equ_b2) {\n if (a2_between) {\n eventDivide(ev2, a2);\n } else {\n eventDivide(ev1, b2);\n }\n }\n eventDivide(ev2, a1);\n }\n } else {\n if (i.alongA === 0) {\n if (i.alongB === -1)\n eventDivide(ev1, b1);\n else if (i.alongB === 0)\n eventDivide(ev1, i.pt);\n else if (i.alongB === 1)\n eventDivide(ev1, b2);\n }\n if (i.alongB === 0) {\n if (i.alongA === -1)\n eventDivide(ev2, a1);\n else if (i.alongA === 0)\n eventDivide(ev2, i.pt);\n else if (i.alongA === 1)\n eventDivide(ev2, a2);\n }\n }\n return false;\n }\n var segments = [];\n while (!event_root.isEmpty()) {\n var ev = event_root.getHead();\n if (buildLog)\n buildLog.vert(ev.pt[0]);\n if (ev.isStart) {\n let checkBothIntersections2 = function() {\n if (above) {\n var eve2 = checkIntersection(ev, above);\n if (eve2)\n return eve2;\n }\n if (below)\n return checkIntersection(ev, below);\n return false;\n };\n var checkBothIntersections = checkBothIntersections2;\n if (buildLog)\n buildLog.segmentNew(ev.seg, ev.primary);\n var surrounding = statusFindSurrounding(ev);\n var above = surrounding.before ? surrounding.before.ev : null;\n var below = surrounding.after ? surrounding.after.ev : null;\n if (buildLog) {\n buildLog.tempStatus(\n ev.seg,\n above ? above.seg : false,\n below ? below.seg : false\n );\n }\n var eve = checkBothIntersections2();\n if (eve) {\n if (selfIntersection) {\n var toggle;\n if (ev.seg.myFill.below === null)\n toggle = true;\n else\n toggle = ev.seg.myFill.above !== ev.seg.myFill.below;\n if (toggle)\n eve.seg.myFill.above = !eve.seg.myFill.above;\n } else {\n eve.seg.otherFill = ev.seg.myFill;\n }\n if (buildLog)\n buildLog.segmentUpdate(eve.seg);\n ev.other.remove();\n ev.remove();\n }\n if (event_root.getHead() !== ev) {\n if (buildLog)\n buildLog.rewind(ev.seg);\n continue;\n }\n if (selfIntersection) {\n var toggle;\n if (ev.seg.myFill.below === null)\n toggle = true;\n else\n toggle = ev.seg.myFill.above !== ev.seg.myFill.below;\n if (!below) {\n ev.seg.myFill.below = primaryPolyInverted;\n } else {\n ev.seg.myFill.below = below.seg.myFill.above;\n }\n if (toggle)\n ev.seg.myFill.above = !ev.seg.myFill.below;\n else\n ev.seg.myFill.above = ev.seg.myFill.below;\n } else {\n if (ev.seg.otherFill === null) {\n var inside;\n if (!below) {\n inside = ev.primary ? secondaryPolyInverted : primaryPolyInverted;\n } else {\n if (ev.primary === below.primary)\n inside = below.seg.otherFill.above;\n else\n inside = below.seg.myFill.above;\n }\n ev.seg.otherFill = {\n above: inside,\n below: inside\n };\n }\n }\n if (buildLog) {\n buildLog.status(\n ev.seg,\n above ? above.seg : false,\n below ? below.seg : false\n );\n }\n ev.other.status = surrounding.insert(LinkedList.node({ ev }));\n } else {\n var st = ev.status;\n if (st === null) {\n throw new Error(\"PolyBool: Zero-length segment detected; your epsilon is probably too small or too large\");\n }\n if (status_root.exists(st.prev) && status_root.exists(st.next))\n checkIntersection(st.prev.ev, st.next.ev);\n if (buildLog)\n buildLog.statusRemove(st.ev.seg);\n st.remove();\n if (!ev.primary) {\n var s = ev.seg.myFill;\n ev.seg.myFill = ev.seg.otherFill;\n ev.seg.otherFill = s;\n }\n segments.push(ev.seg);\n }\n event_root.getHead().remove();\n }\n if (buildLog)\n buildLog.done();\n return segments;\n }\n if (!selfIntersection) {\n return {\n calculate: function(segments1, inverted1, segments2, inverted2) {\n segments1.forEach(function(seg) {\n eventAddSegment(segmentCopy(seg.start, seg.end, seg), true);\n });\n segments2.forEach(function(seg) {\n eventAddSegment(segmentCopy(seg.start, seg.end, seg), false);\n });\n return calculate(inverted1, inverted2);\n }\n };\n }\n return {\n addRegion: function(region) {\n var pt1;\n var pt2 = region[region.length - 1];\n for (var i = 0; i < region.length; i++) {\n pt1 = pt2;\n pt2 = region[i];\n var forward = eps.pointsCompare(pt1, pt2);\n if (forward === 0)\n continue;\n eventAddSegment(\n segmentNew(\n forward < 0 ? pt1 : pt2,\n forward < 0 ? pt2 : pt1\n ),\n true\n );\n }\n },\n calculate: function(inverted) {\n return calculate(inverted, false);\n }\n };\n }\n module.exports = Intersecter;\n }\n });\n\n // node_modules/polybooljs/lib/segment-chainer.js\n var require_segment_chainer = __commonJS({\n \"node_modules/polybooljs/lib/segment-chainer.js\"(exports, module) {\n function SegmentChainer(segments, eps, buildLog) {\n var chains = [];\n var regions = [];\n segments.forEach(function(seg) {\n var pt1 = seg.start;\n var pt2 = seg.end;\n if (eps.pointsSame(pt1, pt2)) {\n console.warn(\"PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large\");\n return;\n }\n if (buildLog)\n buildLog.chainStart(seg);\n var first_match = {\n index: 0,\n matches_head: false,\n matches_pt1: false\n };\n var second_match = {\n index: 0,\n matches_head: false,\n matches_pt1: false\n };\n var next_match = first_match;\n function setMatch(index2, matches_head, matches_pt1) {\n next_match.index = index2;\n next_match.matches_head = matches_head;\n next_match.matches_pt1 = matches_pt1;\n if (next_match === first_match) {\n next_match = second_match;\n return false;\n }\n next_match = null;\n return true;\n }\n for (var i = 0; i < chains.length; i++) {\n var chain = chains[i];\n var head = chain[0];\n var head2 = chain[1];\n var tail = chain[chain.length - 1];\n var tail2 = chain[chain.length - 2];\n if (eps.pointsSame(head, pt1)) {\n if (setMatch(i, true, true))\n break;\n } else if (eps.pointsSame(head, pt2)) {\n if (setMatch(i, true, false))\n break;\n } else if (eps.pointsSame(tail, pt1)) {\n if (setMatch(i, false, true))\n break;\n } else if (eps.pointsSame(tail, pt2)) {\n if (setMatch(i, false, false))\n break;\n }\n }\n if (next_match === first_match) {\n chains.push([pt1, pt2]);\n if (buildLog)\n buildLog.chainNew(pt1, pt2);\n return;\n }\n if (next_match === second_match) {\n if (buildLog)\n buildLog.chainMatch(first_match.index);\n var index = first_match.index;\n var pt = first_match.matches_pt1 ? pt2 : pt1;\n var addToHead = first_match.matches_head;\n var chain = chains[index];\n var grow = addToHead ? chain[0] : chain[chain.length - 1];\n var grow2 = addToHead ? chain[1] : chain[chain.length - 2];\n var oppo = addToHead ? chain[chain.length - 1] : chain[0];\n var oppo2 = addToHead ? chain[chain.length - 2] : chain[1];\n if (eps.pointsCollinear(grow2, grow, pt)) {\n if (addToHead) {\n if (buildLog)\n buildLog.chainRemoveHead(first_match.index, pt);\n chain.shift();\n } else {\n if (buildLog)\n buildLog.chainRemoveTail(first_match.index, pt);\n chain.pop();\n }\n grow = grow2;\n }\n if (eps.pointsSame(oppo, pt)) {\n chains.splice(index, 1);\n if (eps.pointsCollinear(oppo2, oppo, grow)) {\n if (addToHead) {\n if (buildLog)\n buildLog.chainRemoveTail(first_match.index, grow);\n chain.pop();\n } else {\n if (buildLog)\n buildLog.chainRemoveHead(first_match.index, grow);\n chain.shift();\n }\n }\n if (buildLog)\n buildLog.chainClose(first_match.index);\n regions.push(chain);\n return;\n }\n if (addToHead) {\n if (buildLog)\n buildLog.chainAddHead(first_match.index, pt);\n chain.unshift(pt);\n } else {\n if (buildLog)\n buildLog.chainAddTail(first_match.index, pt);\n chain.push(pt);\n }\n return;\n }\n function reverseChain(index2) {\n if (buildLog)\n buildLog.chainReverse(index2);\n chains[index2].reverse();\n }\n function appendChain(index1, index2) {\n var chain1 = chains[index1];\n var chain2 = chains[index2];\n var tail3 = chain1[chain1.length - 1];\n var tail22 = chain1[chain1.length - 2];\n var head3 = chain2[0];\n var head22 = chain2[1];\n if (eps.pointsCollinear(tail22, tail3, head3)) {\n if (buildLog)\n buildLog.chainRemoveTail(index1, tail3);\n chain1.pop();\n tail3 = tail22;\n }\n if (eps.pointsCollinear(tail3, head3, head22)) {\n if (buildLog)\n buildLog.chainRemoveHead(index2, head3);\n chain2.shift();\n }\n if (buildLog)\n buildLog.chainJoin(index1, index2);\n chains[index1] = chain1.concat(chain2);\n chains.splice(index2, 1);\n }\n var F = first_match.index;\n var S = second_match.index;\n if (buildLog)\n buildLog.chainConnect(F, S);\n var reverseF = chains[F].length < chains[S].length;\n if (first_match.matches_head) {\n if (second_match.matches_head) {\n if (reverseF) {\n reverseChain(F);\n appendChain(F, S);\n } else {\n reverseChain(S);\n appendChain(S, F);\n }\n } else {\n appendChain(S, F);\n }\n } else {\n if (second_match.matches_head) {\n appendChain(F, S);\n } else {\n if (reverseF) {\n reverseChain(F);\n appendChain(S, F);\n } else {\n reverseChain(S);\n appendChain(F, S);\n }\n }\n }\n });\n return regions;\n }\n module.exports = SegmentChainer;\n }\n });\n\n // node_modules/polybooljs/lib/segment-selector.js\n var require_segment_selector = __commonJS({\n \"node_modules/polybooljs/lib/segment-selector.js\"(exports, module) {\n function select(segments, selection, buildLog) {\n var result = [];\n segments.forEach(function(seg) {\n var index = (seg.myFill.above ? 8 : 0) + (seg.myFill.below ? 4 : 0) + (seg.otherFill && seg.otherFill.above ? 2 : 0) + (seg.otherFill && seg.otherFill.below ? 1 : 0);\n if (selection[index] !== 0) {\n result.push({\n id: buildLog ? buildLog.segmentId() : -1,\n start: seg.start,\n end: seg.end,\n myFill: {\n above: selection[index] === 1,\n // 1 if filled above\n below: selection[index] === 2\n // 2 if filled below\n },\n otherFill: null\n });\n }\n });\n if (buildLog)\n buildLog.selected(result);\n return result;\n }\n var SegmentSelector = {\n union: function(segments, buildLog) {\n return select(segments, [\n 0,\n 2,\n 1,\n 0,\n 2,\n 2,\n 0,\n 0,\n 1,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ], buildLog);\n },\n intersect: function(segments, buildLog) {\n return select(segments, [\n 0,\n 0,\n 0,\n 0,\n 0,\n 2,\n 0,\n 2,\n 0,\n 0,\n 1,\n 1,\n 0,\n 2,\n 1,\n 0\n ], buildLog);\n },\n difference: function(segments, buildLog) {\n return select(segments, [\n 0,\n 0,\n 0,\n 0,\n 2,\n 0,\n 2,\n 0,\n 1,\n 1,\n 0,\n 0,\n 0,\n 1,\n 2,\n 0\n ], buildLog);\n },\n differenceRev: function(segments, buildLog) {\n return select(segments, [\n 0,\n 2,\n 1,\n 0,\n 0,\n 0,\n 1,\n 1,\n 0,\n 2,\n 0,\n 2,\n 0,\n 0,\n 0,\n 0\n ], buildLog);\n },\n xor: function(segments, buildLog) {\n return select(segments, [\n 0,\n 2,\n 1,\n 0,\n 2,\n 0,\n 0,\n 1,\n 1,\n 0,\n 0,\n 2,\n 0,\n 1,\n 2,\n 0\n ], buildLog);\n }\n };\n module.exports = SegmentSelector;\n }\n });\n\n // node_modules/polybooljs/lib/geojson.js\n var require_geojson = __commonJS({\n \"node_modules/polybooljs/lib/geojson.js\"(exports, module) {\n var GeoJSON = {\n // convert a GeoJSON object to a PolyBool polygon\n toPolygon: function(PolyBool, geojson) {\n function GeoPoly(coords) {\n if (coords.length <= 0)\n return PolyBool.segments({ inverted: false, regions: [] });\n function LineString(ls) {\n var reg = ls.slice(0, ls.length - 1);\n return PolyBool.segments({ inverted: false, regions: [reg] });\n }\n var out2 = LineString(coords[0]);\n for (var i2 = 1; i2 < coords.length; i2++)\n out2 = PolyBool.selectDifference(PolyBool.combine(out2, LineString(coords[i2])));\n return out2;\n }\n if (geojson.type === \"Polygon\") {\n return PolyBool.polygon(GeoPoly(geojson.coordinates));\n } else if (geojson.type === \"MultiPolygon\") {\n var out = PolyBool.segments({ inverted: false, regions: [] });\n for (var i = 0; i < geojson.coordinates.length; i++)\n out = PolyBool.selectUnion(PolyBool.combine(out, GeoPoly(geojson.coordinates[i])));\n return PolyBool.polygon(out);\n }\n throw new Error(\"PolyBool: Cannot convert GeoJSON object to PolyBool polygon\");\n },\n // convert a PolyBool polygon to a GeoJSON object\n fromPolygon: function(PolyBool, eps, poly) {\n poly = PolyBool.polygon(PolyBool.segments(poly));\n function regionInsideRegion(r1, r2) {\n return eps.pointInsideRegion([\n (r1[0][0] + r1[1][0]) * 0.5,\n (r1[0][1] + r1[1][1]) * 0.5\n ], r2);\n }\n function newNode(region2) {\n return {\n region: region2,\n children: []\n };\n }\n var roots = newNode(null);\n function addChild(root, region2) {\n for (var i2 = 0; i2 < root.children.length; i2++) {\n var child = root.children[i2];\n if (regionInsideRegion(region2, child.region)) {\n addChild(child, region2);\n return;\n }\n }\n var node = newNode(region2);\n for (var i2 = 0; i2 < root.children.length; i2++) {\n var child = root.children[i2];\n if (regionInsideRegion(child.region, region2)) {\n node.children.push(child);\n root.children.splice(i2, 1);\n i2--;\n }\n }\n root.children.push(node);\n }\n for (var i = 0; i < poly.regions.length; i++) {\n var region = poly.regions[i];\n if (region.length < 3)\n continue;\n addChild(roots, region);\n }\n function forceWinding(region2, clockwise) {\n var winding = 0;\n var last_x = region2[region2.length - 1][0];\n var last_y = region2[region2.length - 1][1];\n var copy = [];\n for (var i2 = 0; i2 < region2.length; i2++) {\n var curr_x = region2[i2][0];\n var curr_y = region2[i2][1];\n copy.push([curr_x, curr_y]);\n winding += curr_y * last_x - curr_x * last_y;\n last_x = curr_x;\n last_y = curr_y;\n }\n var isclockwise = winding < 0;\n if (isclockwise !== clockwise)\n copy.reverse();\n copy.push([copy[0][0], copy[0][1]]);\n return copy;\n }\n var geopolys = [];\n function addExterior(node) {\n var poly2 = [forceWinding(node.region, false)];\n geopolys.push(poly2);\n for (var i2 = 0; i2 < node.children.length; i2++)\n poly2.push(getInterior(node.children[i2]));\n }\n function getInterior(node) {\n for (var i2 = 0; i2 < node.children.length; i2++)\n addExterior(node.children[i2]);\n return forceWinding(node.region, true);\n }\n for (var i = 0; i < roots.children.length; i++)\n addExterior(roots.children[i]);\n if (geopolys.length <= 0)\n return { type: \"Polygon\", coordinates: [] };\n if (geopolys.length == 1)\n return { type: \"Polygon\", coordinates: geopolys[0] };\n return {\n // otherwise, use a GeoJSON MultiPolygon\n type: \"MultiPolygon\",\n coordinates: geopolys\n };\n }\n };\n module.exports = GeoJSON;\n }\n });\n\n // node_modules/polybooljs/index.js\n var require_polybooljs = __commonJS({\n \"node_modules/polybooljs/index.js\"(exports, module) {\n var BuildLog = require_build_log();\n var Epsilon = require_epsilon();\n var Intersecter = require_intersecter();\n var SegmentChainer = require_segment_chainer();\n var SegmentSelector = require_segment_selector();\n var GeoJSON = require_geojson();\n var buildLog = false;\n var epsilon = Epsilon();\n var PolyBool;\n PolyBool = {\n // getter/setter for buildLog\n buildLog: function(bl) {\n if (bl === true)\n buildLog = BuildLog();\n else if (bl === false)\n buildLog = false;\n return buildLog === false ? false : buildLog.list;\n },\n // getter/setter for epsilon\n epsilon: function(v) {\n return epsilon.epsilon(v);\n },\n // core API\n segments: function(poly) {\n var i = Intersecter(true, epsilon, buildLog);\n poly.regions.forEach(i.addRegion);\n return {\n segments: i.calculate(poly.inverted),\n inverted: poly.inverted\n };\n },\n combine: function(segments1, segments2) {\n var i3 = Intersecter(false, epsilon, buildLog);\n return {\n combined: i3.calculate(\n segments1.segments,\n segments1.inverted,\n segments2.segments,\n segments2.inverted\n ),\n inverted1: segments1.inverted,\n inverted2: segments2.inverted\n };\n },\n selectUnion: function(combined) {\n return {\n segments: SegmentSelector.union(combined.combined, buildLog),\n inverted: combined.inverted1 || combined.inverted2\n };\n },\n selectIntersect: function(combined) {\n return {\n segments: SegmentSelector.intersect(combined.combined, buildLog),\n inverted: combined.inverted1 && combined.inverted2\n };\n },\n selectDifference: function(combined) {\n return {\n segments: SegmentSelector.difference(combined.combined, buildLog),\n inverted: combined.inverted1 && !combined.inverted2\n };\n },\n selectDifferenceRev: function(combined) {\n return {\n segments: SegmentSelector.differenceRev(combined.combined, buildLog),\n inverted: !combined.inverted1 && combined.inverted2\n };\n },\n selectXor: function(combined) {\n return {\n segments: SegmentSelector.xor(combined.combined, buildLog),\n inverted: combined.inverted1 !== combined.inverted2\n };\n },\n polygon: function(segments) {\n return {\n regions: SegmentChainer(segments.segments, epsilon, buildLog),\n inverted: segments.inverted\n };\n },\n // GeoJSON converters\n polygonFromGeoJSON: function(geojson) {\n return GeoJSON.toPolygon(PolyBool, geojson);\n },\n polygonToGeoJSON: function(poly) {\n return GeoJSON.fromPolygon(PolyBool, epsilon, poly);\n },\n // helper functions for common operations\n union: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectUnion);\n },\n intersect: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectIntersect);\n },\n difference: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectDifference);\n },\n differenceRev: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectDifferenceRev);\n },\n xor: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectXor);\n }\n };\n function operate(poly1, poly2, selector) {\n var seg1 = PolyBool.segments(poly1);\n var seg2 = PolyBool.segments(poly2);\n var comb = PolyBool.combine(seg1, seg2);\n var seg3 = selector(comb);\n return PolyBool.polygon(seg3);\n }\n if (typeof window === \"object\")\n window.PolyBool = PolyBool;\n module.exports = PolyBool;\n }\n });\n\n // node_modules/point-in-polygon/nested.js\n var require_nested = __commonJS({\n \"node_modules/point-in-polygon/nested.js\"(exports, module) {\n module.exports = function pointInPolygonNested(point, vs, start, end) {\n var x = point[0], y = point[1];\n var inside = false;\n if (start === void 0) start = 0;\n if (end === void 0) end = vs.length;\n var len = end - start;\n for (var i = 0, j = len - 1; i < len; j = i++) {\n var xi = vs[i + start][0], yi = vs[i + start][1];\n var xj = vs[j + start][0], yj = vs[j + start][1];\n var intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n };\n }\n });\n\n // src/lib/polygon.js\n var require_polygon = __commonJS({\n \"src/lib/polygon.js\"(exports, module) {\n \"use strict\";\n var dot = require_matrix().dot;\n var BADNUM = require_numerical().BADNUM;\n var polygon = module.exports = {};\n polygon.tester = function tester(ptsIn) {\n var pts = ptsIn.slice();\n var xmin = pts[0][0];\n var xmax = xmin;\n var ymin = pts[0][1];\n var ymax = ymin;\n var i;\n if (pts[pts.length - 1][0] !== pts[0][0] || pts[pts.length - 1][1] !== pts[0][1]) {\n pts.push(pts[0]);\n }\n for (i = 1; i < pts.length; i++) {\n xmin = Math.min(xmin, pts[i][0]);\n xmax = Math.max(xmax, pts[i][0]);\n ymin = Math.min(ymin, pts[i][1]);\n ymax = Math.max(ymax, pts[i][1]);\n }\n var isRect = false;\n var rectFirstEdgeTest;\n if (pts.length === 5) {\n if (pts[0][0] === pts[1][0]) {\n if (pts[2][0] === pts[3][0] && pts[0][1] === pts[3][1] && pts[1][1] === pts[2][1]) {\n isRect = true;\n rectFirstEdgeTest = function(pt) {\n return pt[0] === pts[0][0];\n };\n }\n } else if (pts[0][1] === pts[1][1]) {\n if (pts[2][1] === pts[3][1] && pts[0][0] === pts[3][0] && pts[1][0] === pts[2][0]) {\n isRect = true;\n rectFirstEdgeTest = function(pt) {\n return pt[1] === pts[0][1];\n };\n }\n }\n }\n function rectContains(pt, omitFirstEdge) {\n var x = pt[0];\n var y = pt[1];\n if (x === BADNUM || x < xmin || x > xmax || y === BADNUM || y < ymin || y > ymax) {\n return false;\n }\n if (omitFirstEdge && rectFirstEdgeTest(pt)) return false;\n return true;\n }\n function contains(pt, omitFirstEdge) {\n var x = pt[0];\n var y = pt[1];\n if (x === BADNUM || x < xmin || x > xmax || y === BADNUM || y < ymin || y > ymax) {\n return false;\n }\n var imax = pts.length;\n var x1 = pts[0][0];\n var y1 = pts[0][1];\n var crossings = 0;\n var i2;\n var x0;\n var y0;\n var xmini;\n var ycross;\n for (i2 = 1; i2 < imax; i2++) {\n x0 = x1;\n y0 = y1;\n x1 = pts[i2][0];\n y1 = pts[i2][1];\n xmini = Math.min(x0, x1);\n if (x < xmini || x > Math.max(x0, x1) || y > Math.max(y0, y1)) {\n continue;\n } else if (y < Math.min(y0, y1)) {\n if (x !== xmini) crossings++;\n } else {\n if (x1 === x0) ycross = y;\n else ycross = y0 + (x - x0) * (y1 - y0) / (x1 - x0);\n if (y === ycross) {\n if (i2 === 1 && omitFirstEdge) return false;\n return true;\n }\n if (y <= ycross && x !== xmini) crossings++;\n }\n }\n return crossings % 2 === 1;\n }\n var degenerate = true;\n var lastPt = pts[0];\n for (i = 1; i < pts.length; i++) {\n if (lastPt[0] !== pts[i][0] || lastPt[1] !== pts[i][1]) {\n degenerate = false;\n break;\n }\n }\n return {\n xmin,\n xmax,\n ymin,\n ymax,\n pts,\n contains: isRect ? rectContains : contains,\n isRect,\n degenerate\n };\n };\n polygon.isSegmentBent = function isSegmentBent(pts, start, end, tolerance) {\n var startPt = pts[start];\n var segment = [pts[end][0] - startPt[0], pts[end][1] - startPt[1]];\n var segmentSquared = dot(segment, segment);\n var segmentLen = Math.sqrt(segmentSquared);\n var unitPerp = [-segment[1] / segmentLen, segment[0] / segmentLen];\n var i;\n var part;\n var partParallel;\n for (i = start + 1; i < end; i++) {\n part = [pts[i][0] - startPt[0], pts[i][1] - startPt[1]];\n partParallel = dot(part, segment);\n if (partParallel < 0 || partParallel > segmentSquared || Math.abs(dot(part, unitPerp)) > tolerance) return true;\n }\n return false;\n };\n polygon.filter = function filter(pts, tolerance) {\n var ptsFiltered = [pts[0]];\n var doneRawIndex = 0;\n var doneFilteredIndex = 0;\n function addPt(pt) {\n pts.push(pt);\n var prevFilterLen = ptsFiltered.length;\n var iLast = doneRawIndex;\n ptsFiltered.splice(doneFilteredIndex + 1);\n for (var i = iLast + 1; i < pts.length; i++) {\n if (i === pts.length - 1 || polygon.isSegmentBent(pts, iLast, i + 1, tolerance)) {\n ptsFiltered.push(pts[i]);\n if (ptsFiltered.length < prevFilterLen - 2) {\n doneRawIndex = i;\n doneFilteredIndex = ptsFiltered.length - 1;\n }\n iLast = i;\n }\n }\n }\n if (pts.length > 1) {\n var lastPt = pts.pop();\n addPt(lastPt);\n }\n return {\n addPt,\n raw: pts,\n filtered: ptsFiltered\n };\n };\n }\n });\n\n // src/components/selections/constants.js\n var require_constants7 = __commonJS({\n \"src/components/selections/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // max pixels off straight before a lasso select line counts as bent\n BENDPX: 1.5,\n // smallest dimension allowed for a select box\n MINSELECT: 12,\n // throttling limit (ms) for selectPoints calls\n SELECTDELAY: 100,\n // cache ID suffix for throttle\n SELECTID: \"-select\"\n };\n }\n });\n\n // src/components/selections/select.js\n var require_select = __commonJS({\n \"src/components/selections/select.js\"(exports, module) {\n \"use strict\";\n var polybool = require_polybooljs();\n var pointInPolygon = require_nested();\n var Registry = require_registry();\n var dashStyle = require_drawing().dashStyle;\n var Color2 = require_color();\n var Fx = require_fx();\n var makeEventData = require_helpers2().makeEventData;\n var dragHelpers = require_helpers5();\n var freeMode = dragHelpers.freeMode;\n var rectMode = dragHelpers.rectMode;\n var drawMode = dragHelpers.drawMode;\n var openMode = dragHelpers.openMode;\n var selectMode = dragHelpers.selectMode;\n var shapeHelpers = require_helpers8();\n var shapeConstants = require_constants5();\n var displayOutlines = require_display_outlines();\n var clearOutline = require_handle_outline().clearOutline;\n var newShapeHelpers = require_helpers7();\n var handleEllipse = newShapeHelpers.handleEllipse;\n var readPaths = newShapeHelpers.readPaths;\n var newShapes = require_newshapes().newShapes;\n var newSelections = require_newselections();\n var activateLastSelection = require_draw3().activateLastSelection;\n var Lib = require_lib();\n var ascending = Lib.sorterAsc;\n var libPolygon = require_polygon();\n var throttle = require_throttle();\n var getFromId = require_axis_ids().getFromId;\n var clearGlCanvases = require_clear_gl_canvases();\n var redrawReglTraces = require_subroutines().redrawReglTraces;\n var constants = require_constants7();\n var MINSELECT = constants.MINSELECT;\n var filteredPolygon = libPolygon.filter;\n var polygonTester = libPolygon.tester;\n var helpers = require_helpers6();\n var p2r = helpers.p2r;\n var axValue = helpers.axValue;\n var getTransform = helpers.getTransform;\n function hasSubplot(dragOptions) {\n return dragOptions.subplot !== void 0;\n }\n function prepSelect(evt, startX, startY, dragOptions, mode) {\n var isCartesian = !hasSubplot(dragOptions);\n var isFreeMode = freeMode(mode);\n var isRectMode = rectMode(mode);\n var isOpenMode = openMode(mode);\n var isDrawMode = drawMode(mode);\n var isSelectMode = selectMode(mode);\n var isLine = mode === \"drawline\";\n var isEllipse = mode === \"drawcircle\";\n var isLineOrEllipse = isLine || isEllipse;\n var gd = dragOptions.gd;\n var fullLayout = gd._fullLayout;\n var immediateSelect = isSelectMode && fullLayout.newselection.mode === \"immediate\" && isCartesian;\n var zoomLayer = fullLayout._zoomlayer;\n var dragBBox = dragOptions.element.getBoundingClientRect();\n var plotinfo = dragOptions.plotinfo;\n var transform = getTransform(plotinfo);\n var x0 = startX - dragBBox.left;\n var y0 = startY - dragBBox.top;\n fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(fullLayout._invTransform)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n var scaleX = fullLayout._invScaleX;\n var scaleY = fullLayout._invScaleY;\n var x1 = x0;\n var y1 = y0;\n var path0 = \"M\" + x0 + \",\" + y0;\n var xAxis = dragOptions.xaxes[0];\n var yAxis = dragOptions.yaxes[0];\n var pw = xAxis._length;\n var ph = yAxis._length;\n var subtract = evt.altKey && !(drawMode(mode) && isOpenMode);\n var filterPoly, selectionTesters, mergedPolygons, currentPolygon;\n var i, searchInfo, eventData;\n coerceSelectionsCache(evt, gd, dragOptions);\n if (isFreeMode) {\n filterPoly = filteredPolygon([[x0, y0]], constants.BENDPX);\n }\n var outlines = zoomLayer.selectAll(\"path.select-outline-\" + plotinfo.id).data([1]);\n var newStyle = isDrawMode ? fullLayout.newshape : fullLayout.newselection;\n if (isDrawMode) {\n dragOptions.hasText = newStyle.label.text || newStyle.label.texttemplate;\n }\n var fillC = isDrawMode && !isOpenMode ? newStyle.fillcolor : \"rgba(0,0,0,0)\";\n var strokeC = newStyle.line.color || (isCartesian ? Color2.contrast(gd._fullLayout.plot_bgcolor) : \"#7f7f7f\");\n outlines.enter().append(\"path\").attr(\"class\", \"select-outline select-outline-\" + plotinfo.id).style({\n opacity: isDrawMode ? newStyle.opacity / 2 : 1,\n \"stroke-dasharray\": dashStyle(newStyle.line.dash, newStyle.line.width),\n \"stroke-width\": newStyle.line.width + \"px\",\n \"shape-rendering\": \"crispEdges\"\n }).call(Color2.stroke, strokeC).call(Color2.fill, fillC).attr(\"fill-rule\", \"evenodd\").classed(\"cursor-move\", isDrawMode ? true : false).attr(\"transform\", transform).attr(\"d\", path0 + \"Z\");\n var corners = zoomLayer.append(\"path\").attr(\"class\", \"zoombox-corners\").style({\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": 1\n }).attr(\"transform\", transform).attr(\"d\", \"M0,0Z\");\n if (isDrawMode && dragOptions.hasText) {\n var shapeGroup = zoomLayer.select(\".label-temp\");\n if (shapeGroup.empty()) {\n shapeGroup = zoomLayer.append(\"g\").classed(\"label-temp\", true).classed(\"select-outline\", true).style({ opacity: 0.8 });\n }\n }\n var throttleID = fullLayout._uid + constants.SELECTID;\n var selection = [];\n var searchTraces = determineSearchTraces(\n gd,\n dragOptions.xaxes,\n dragOptions.yaxes,\n dragOptions.subplot\n );\n if (immediateSelect && !evt.shiftKey) {\n dragOptions._clearSubplotSelections = function() {\n if (!isCartesian) return;\n var xRef = xAxis._id;\n var yRef = yAxis._id;\n deselectSubplot(gd, xRef, yRef, searchTraces);\n var selections = (gd.layout || {}).selections || [];\n var list = [];\n var selectionErased = false;\n for (var q = 0; q < selections.length; q++) {\n var s = fullLayout.selections[q];\n if (!s || s.xref !== xRef || s.yref !== yRef) {\n list.push(selections[q]);\n } else {\n selectionErased = true;\n }\n }\n if (selectionErased) {\n gd._fullLayout._noEmitSelectedAtStart = true;\n Registry.call(\"_guiRelayout\", gd, {\n selections: list\n });\n }\n };\n }\n var fillRangeItems = getFillRangeItems(dragOptions);\n dragOptions.moveFn = function(dx0, dy0) {\n if (dragOptions._clearSubplotSelections) {\n dragOptions._clearSubplotSelections();\n dragOptions._clearSubplotSelections = void 0;\n }\n x1 = Math.max(0, Math.min(pw, scaleX * dx0 + x0));\n y1 = Math.max(0, Math.min(ph, scaleY * dy0 + y0));\n var dx = Math.abs(x1 - x0);\n var dy = Math.abs(y1 - y0);\n if (isRectMode) {\n var direction;\n var start, end;\n if (isSelectMode) {\n var q = fullLayout.selectdirection;\n if (q === \"any\") {\n if (dy < Math.min(dx * 0.6, MINSELECT)) {\n direction = \"h\";\n } else if (dx < Math.min(dy * 0.6, MINSELECT)) {\n direction = \"v\";\n } else {\n direction = \"d\";\n }\n } else {\n direction = q;\n }\n switch (direction) {\n case \"h\":\n start = isEllipse ? ph / 2 : 0;\n end = ph;\n break;\n case \"v\":\n start = isEllipse ? pw / 2 : 0;\n end = pw;\n break;\n }\n }\n if (isDrawMode) {\n switch (fullLayout.newshape.drawdirection) {\n case \"vertical\":\n direction = \"h\";\n start = isEllipse ? ph / 2 : 0;\n end = ph;\n break;\n case \"horizontal\":\n direction = \"v\";\n start = isEllipse ? pw / 2 : 0;\n end = pw;\n break;\n case \"ortho\":\n if (dx < dy) {\n direction = \"h\";\n start = y0;\n end = y1;\n } else {\n direction = \"v\";\n start = x0;\n end = x1;\n }\n break;\n default:\n direction = \"d\";\n }\n }\n if (direction === \"h\") {\n currentPolygon = isLineOrEllipse ? handleEllipse(isEllipse, [x1, start], [x1, end]) : (\n // using x1 instead of x0 allows adjusting the line while drawing\n [[x0, start], [x0, end], [x1, end], [x1, start]]\n );\n currentPolygon.xmin = isLineOrEllipse ? x1 : Math.min(x0, x1);\n currentPolygon.xmax = isLineOrEllipse ? x1 : Math.max(x0, x1);\n currentPolygon.ymin = Math.min(start, end);\n currentPolygon.ymax = Math.max(start, end);\n corners.attr(\"d\", \"M\" + currentPolygon.xmin + \",\" + (y0 - MINSELECT) + \"h-4v\" + 2 * MINSELECT + \"h4ZM\" + (currentPolygon.xmax - 1) + \",\" + (y0 - MINSELECT) + \"h4v\" + 2 * MINSELECT + \"h-4Z\");\n } else if (direction === \"v\") {\n currentPolygon = isLineOrEllipse ? handleEllipse(isEllipse, [start, y1], [end, y1]) : (\n // using y1 instead of y0 allows adjusting the line while drawing\n [[start, y0], [start, y1], [end, y1], [end, y0]]\n );\n currentPolygon.xmin = Math.min(start, end);\n currentPolygon.xmax = Math.max(start, end);\n currentPolygon.ymin = isLineOrEllipse ? y1 : Math.min(y0, y1);\n currentPolygon.ymax = isLineOrEllipse ? y1 : Math.max(y0, y1);\n corners.attr(\"d\", \"M\" + (x0 - MINSELECT) + \",\" + currentPolygon.ymin + \"v-4h\" + 2 * MINSELECT + \"v4ZM\" + (x0 - MINSELECT) + \",\" + (currentPolygon.ymax - 1) + \"v4h\" + 2 * MINSELECT + \"v-4Z\");\n } else if (direction === \"d\") {\n currentPolygon = isLineOrEllipse ? handleEllipse(isEllipse, [x0, y0], [x1, y1]) : [[x0, y0], [x0, y1], [x1, y1], [x1, y0]];\n currentPolygon.xmin = Math.min(x0, x1);\n currentPolygon.xmax = Math.max(x0, x1);\n currentPolygon.ymin = Math.min(y0, y1);\n currentPolygon.ymax = Math.max(y0, y1);\n corners.attr(\"d\", \"M0,0Z\");\n }\n } else if (isFreeMode) {\n filterPoly.addPt([x1, y1]);\n currentPolygon = filterPoly.filtered;\n }\n if (dragOptions.selectionDefs && dragOptions.selectionDefs.length) {\n mergedPolygons = mergePolygons(dragOptions.mergedPolygons, currentPolygon, subtract);\n currentPolygon.subtract = subtract;\n selectionTesters = multiTester(dragOptions.selectionDefs.concat([currentPolygon]));\n } else {\n mergedPolygons = [currentPolygon];\n selectionTesters = polygonTester(currentPolygon);\n }\n displayOutlines(convertPoly(mergedPolygons, isOpenMode), outlines, dragOptions);\n if (isSelectMode) {\n var _res = reselect(gd, false);\n var extraPoints = _res.eventData ? _res.eventData.points.slice() : [];\n _res = reselect(gd, false, selectionTesters, searchTraces, dragOptions);\n selectionTesters = _res.selectionTesters;\n eventData = _res.eventData;\n var poly;\n if (filterPoly) {\n poly = filterPoly.filtered;\n } else {\n poly = castMultiPolygon(mergedPolygons);\n }\n throttle.throttle(\n throttleID,\n constants.SELECTDELAY,\n function() {\n selection = _doSelect(selectionTesters, searchTraces);\n var newPoints = selection.slice();\n for (var w = 0; w < extraPoints.length; w++) {\n var p = extraPoints[w];\n var found = false;\n for (var u = 0; u < newPoints.length; u++) {\n if (newPoints[u].curveNumber === p.curveNumber && newPoints[u].pointNumber === p.pointNumber) {\n found = true;\n break;\n }\n }\n if (!found) newPoints.push(p);\n }\n if (newPoints.length) {\n if (!eventData) eventData = {};\n eventData.points = newPoints;\n }\n fillRangeItems(eventData, poly);\n emitSelecting(gd, eventData);\n }\n );\n }\n };\n dragOptions.clickFn = function(numClicks, evt2) {\n corners.remove();\n if (gd._fullLayout._activeShapeIndex >= 0) {\n gd._fullLayout._deactivateShape(gd);\n return;\n }\n if (isDrawMode) return;\n var clickmode = fullLayout.clickmode;\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n if (numClicks === 2) {\n outlines.remove();\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n updateSelectedState(gd, searchTraces);\n clearSelectionsCache(dragOptions);\n emitDeselect(gd);\n if (searchTraces.length) {\n var clickedXaxis = searchTraces[0].xaxis;\n var clickedYaxis = searchTraces[0].yaxis;\n if (clickedXaxis && clickedYaxis) {\n var subSelections = [];\n var allSelections = gd._fullLayout.selections;\n for (var k = 0; k < allSelections.length; k++) {\n var s = allSelections[k];\n if (!s) continue;\n if (s.xref !== clickedXaxis._id || s.yref !== clickedYaxis._id) {\n subSelections.push(s);\n }\n }\n if (subSelections.length < allSelections.length) {\n gd._fullLayout._noEmitSelectedAtStart = true;\n Registry.call(\"_guiRelayout\", gd, {\n selections: subSelections\n });\n }\n }\n }\n } else {\n if (clickmode.indexOf(\"select\") > -1) {\n selectOnClick(\n evt2,\n gd,\n dragOptions.xaxes,\n dragOptions.yaxes,\n dragOptions.subplot,\n dragOptions,\n outlines\n );\n }\n if (clickmode === \"event\") {\n emitSelected(gd, void 0);\n }\n }\n Fx.click(gd, evt2, plotinfo.id);\n }).catch(Lib.error);\n };\n dragOptions.doneFn = function() {\n corners.remove();\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n if (!immediateSelect && currentPolygon && dragOptions.selectionDefs) {\n currentPolygon.subtract = subtract;\n dragOptions.selectionDefs.push(currentPolygon);\n dragOptions.mergedPolygons.length = 0;\n [].push.apply(dragOptions.mergedPolygons, mergedPolygons);\n }\n if (immediateSelect || isDrawMode) {\n clearSelectionsCache(dragOptions, immediateSelect);\n }\n if (dragOptions.doneFnCompleted) {\n dragOptions.doneFnCompleted(selection);\n }\n if (isSelectMode) {\n emitSelected(gd, eventData);\n }\n }).catch(Lib.error);\n };\n }\n function selectOnClick(evt, gd, xAxes, yAxes, subplot, dragOptions, polygonOutlines) {\n var hoverData = gd._hoverdata;\n var fullLayout = gd._fullLayout;\n var clickmode = fullLayout.clickmode;\n var sendEvents = clickmode.indexOf(\"event\") > -1;\n var selection = [];\n var searchTraces, searchInfo, currentSelectionDef, selectionTesters, traceSelection;\n var thisTracesSelection, pointOrBinSelected, subtract, eventData, i;\n if (isHoverDataSet(hoverData)) {\n coerceSelectionsCache(evt, gd, dragOptions);\n searchTraces = determineSearchTraces(gd, xAxes, yAxes, subplot);\n var clickedPtInfo = extractClickedPtInfo(hoverData, searchTraces);\n var isBinnedTrace = clickedPtInfo.pointNumbers.length > 0;\n if (isBinnedTrace ? isOnlyThisBinSelected(searchTraces, clickedPtInfo) : isOnlyOnePointSelected(searchTraces) && (pointOrBinSelected = isPointOrBinSelected(clickedPtInfo))) {\n if (polygonOutlines) polygonOutlines.remove();\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n updateSelectedState(gd, searchTraces);\n clearSelectionsCache(dragOptions);\n if (sendEvents) {\n emitDeselect(gd);\n }\n } else {\n subtract = evt.shiftKey && (pointOrBinSelected !== void 0 ? pointOrBinSelected : isPointOrBinSelected(clickedPtInfo));\n currentSelectionDef = newPointSelectionDef(clickedPtInfo.pointNumber, clickedPtInfo.searchInfo, subtract);\n var allSelectionDefs = dragOptions.selectionDefs.concat([currentSelectionDef]);\n selectionTesters = multiTester(allSelectionDefs, selectionTesters);\n for (i = 0; i < searchTraces.length; i++) {\n traceSelection = searchTraces[i]._module.selectPoints(searchTraces[i], selectionTesters);\n thisTracesSelection = fillSelectionItem(traceSelection, searchTraces[i]);\n if (selection.length) {\n for (var j = 0; j < thisTracesSelection.length; j++) {\n selection.push(thisTracesSelection[j]);\n }\n } else selection = thisTracesSelection;\n }\n eventData = { points: selection };\n updateSelectedState(gd, searchTraces, eventData);\n if (currentSelectionDef && dragOptions) {\n dragOptions.selectionDefs.push(currentSelectionDef);\n }\n if (polygonOutlines) {\n var polygons = dragOptions.mergedPolygons;\n var isOpenMode = openMode(dragOptions.dragmode);\n displayOutlines(convertPoly(polygons, isOpenMode), polygonOutlines, dragOptions);\n }\n if (sendEvents) {\n emitSelected(gd, eventData);\n }\n }\n }\n }\n function newPointSelectionDef(pointNumber, searchInfo, subtract) {\n return {\n pointNumber,\n searchInfo,\n subtract: !!subtract\n };\n }\n function isPointSelectionDef(o) {\n return \"pointNumber\" in o && \"searchInfo\" in o;\n }\n function newPointNumTester(pointSelectionDef) {\n return {\n xmin: 0,\n xmax: 0,\n ymin: 0,\n ymax: 0,\n pts: [],\n contains: function(pt, omitFirstEdge, pointNumber, searchInfo) {\n var idxWantedTrace = pointSelectionDef.searchInfo.cd[0].trace.index;\n var idxActualTrace = searchInfo.cd[0].trace.index;\n return idxActualTrace === idxWantedTrace && pointNumber === pointSelectionDef.pointNumber;\n },\n isRect: false,\n degenerate: false,\n subtract: !!pointSelectionDef.subtract\n };\n }\n function multiTester(list) {\n if (!list.length) return;\n var testers = [];\n var xmin = isPointSelectionDef(list[0]) ? 0 : list[0][0][0];\n var xmax = xmin;\n var ymin = isPointSelectionDef(list[0]) ? 0 : list[0][0][1];\n var ymax = ymin;\n for (var i = 0; i < list.length; i++) {\n if (isPointSelectionDef(list[i])) {\n testers.push(newPointNumTester(list[i]));\n } else {\n var tester = polygonTester(list[i]);\n tester.subtract = !!list[i].subtract;\n testers.push(tester);\n xmin = Math.min(xmin, tester.xmin);\n xmax = Math.max(xmax, tester.xmax);\n ymin = Math.min(ymin, tester.ymin);\n ymax = Math.max(ymax, tester.ymax);\n }\n }\n function contains(pt, arg, pointNumber, searchInfo) {\n var contained = false;\n for (var i2 = 0; i2 < testers.length; i2++) {\n if (testers[i2].contains(pt, arg, pointNumber, searchInfo)) {\n contained = !testers[i2].subtract;\n }\n }\n return contained;\n }\n return {\n xmin,\n xmax,\n ymin,\n ymax,\n pts: [],\n contains,\n isRect: false,\n degenerate: false\n };\n }\n function coerceSelectionsCache(evt, gd, dragOptions) {\n var fullLayout = gd._fullLayout;\n var plotinfo = dragOptions.plotinfo;\n var dragmode = dragOptions.dragmode;\n var selectingOnSameSubplot = fullLayout._lastSelectedSubplot && fullLayout._lastSelectedSubplot === plotinfo.id;\n var hasModifierKey = (evt.shiftKey || evt.altKey) && !(drawMode(dragmode) && openMode(dragmode));\n if (selectingOnSameSubplot && hasModifierKey && plotinfo.selection && plotinfo.selection.selectionDefs && !dragOptions.selectionDefs) {\n dragOptions.selectionDefs = plotinfo.selection.selectionDefs;\n dragOptions.mergedPolygons = plotinfo.selection.mergedPolygons;\n } else if (!hasModifierKey || !plotinfo.selection) {\n clearSelectionsCache(dragOptions);\n }\n if (!selectingOnSameSubplot) {\n clearOutline(gd);\n fullLayout._lastSelectedSubplot = plotinfo.id;\n }\n }\n function hasActiveShape(gd) {\n return gd._fullLayout._activeShapeIndex >= 0;\n }\n function hasActiveSelection(gd) {\n return gd._fullLayout._activeSelectionIndex >= 0;\n }\n function clearSelectionsCache(dragOptions, immediateSelect) {\n var dragmode = dragOptions.dragmode;\n var plotinfo = dragOptions.plotinfo;\n var gd = dragOptions.gd;\n if (hasActiveShape(gd)) {\n gd._fullLayout._deactivateShape(gd);\n }\n if (hasActiveSelection(gd)) {\n gd._fullLayout._deactivateSelection(gd);\n }\n var fullLayout = gd._fullLayout;\n var zoomLayer = fullLayout._zoomlayer;\n var isDrawMode = drawMode(dragmode);\n var isSelectMode = selectMode(dragmode);\n if (isDrawMode || isSelectMode) {\n var outlines = zoomLayer.selectAll(\".select-outline-\" + plotinfo.id);\n if (outlines && gd._fullLayout._outlining) {\n var shapes;\n if (isDrawMode) {\n shapes = newShapes(outlines, dragOptions);\n }\n if (shapes) {\n Registry.call(\"_guiRelayout\", gd, {\n shapes\n });\n }\n var selections;\n if (isSelectMode && !hasSubplot(dragOptions)) {\n selections = newSelections(outlines, dragOptions);\n }\n if (selections) {\n gd._fullLayout._noEmitSelectedAtStart = true;\n Registry.call(\"_guiRelayout\", gd, {\n selections\n }).then(function() {\n if (immediateSelect) {\n activateLastSelection(gd);\n }\n });\n }\n gd._fullLayout._outlining = false;\n }\n }\n plotinfo.selection = {};\n plotinfo.selection.selectionDefs = dragOptions.selectionDefs = [];\n plotinfo.selection.mergedPolygons = dragOptions.mergedPolygons = [];\n }\n function getAxId(ax) {\n return ax._id;\n }\n function determineSearchTraces(gd, xAxes, yAxes, subplot) {\n if (!gd.calcdata) return [];\n var searchTraces = [];\n var xAxisIds = xAxes.map(getAxId);\n var yAxisIds = yAxes.map(getAxId);\n var cd, trace, i;\n for (i = 0; i < gd.calcdata.length; i++) {\n cd = gd.calcdata[i];\n trace = cd[0].trace;\n if (trace.visible !== true || !trace._module || !trace._module.selectPoints) continue;\n if (hasSubplot({ subplot }) && (trace.subplot === subplot || trace.geo === subplot)) {\n searchTraces.push(createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]));\n } else if (trace.type === \"splom\") {\n if (trace._xaxes[xAxisIds[0]] && trace._yaxes[yAxisIds[0]]) {\n var info = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n info.scene = gd._fullLayout._splomScenes[trace.uid];\n searchTraces.push(info);\n }\n } else if (trace.type === \"sankey\") {\n var sankeyInfo = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n searchTraces.push(sankeyInfo);\n } else {\n if (xAxisIds.indexOf(trace.xaxis) === -1 && (!trace._xA || !trace._xA.overlaying)) continue;\n if (yAxisIds.indexOf(trace.yaxis) === -1 && (!trace._yA || !trace._yA.overlaying)) continue;\n searchTraces.push(createSearchInfo(\n trace._module,\n cd,\n getFromId(gd, trace.xaxis),\n getFromId(gd, trace.yaxis)\n ));\n }\n }\n return searchTraces;\n }\n function createSearchInfo(module2, calcData, xaxis, yaxis) {\n return {\n _module: module2,\n cd: calcData,\n xaxis,\n yaxis\n };\n }\n function isHoverDataSet(hoverData) {\n return hoverData && Array.isArray(hoverData) && hoverData[0].hoverOnBox !== true;\n }\n function extractClickedPtInfo(hoverData, searchTraces) {\n var hoverDatum = hoverData[0];\n var pointNumber = -1;\n var pointNumbers = [];\n var searchInfo, i;\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if (hoverDatum.fullData.index === searchInfo.cd[0].trace.index) {\n if (hoverDatum.hoverOnBox === true) {\n break;\n }\n if (hoverDatum.pointNumber !== void 0) {\n pointNumber = hoverDatum.pointNumber;\n } else if (hoverDatum.binNumber !== void 0) {\n pointNumber = hoverDatum.binNumber;\n pointNumbers = hoverDatum.pointNumbers;\n }\n break;\n }\n }\n return {\n pointNumber,\n pointNumbers,\n searchInfo\n };\n }\n function isPointOrBinSelected(clickedPtInfo) {\n var trace = clickedPtInfo.searchInfo.cd[0].trace;\n var ptNum = clickedPtInfo.pointNumber;\n var ptNums = clickedPtInfo.pointNumbers;\n var ptNumsSet = ptNums.length > 0;\n var ptNumToTest = ptNumsSet ? ptNums[0] : ptNum;\n return trace.selectedpoints ? trace.selectedpoints.indexOf(ptNumToTest) > -1 : false;\n }\n function isOnlyThisBinSelected(searchTraces, clickedPtInfo) {\n var tracesWithSelectedPts = [];\n var searchInfo, trace, isSameTrace, i;\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if (searchInfo.cd[0].trace.selectedpoints && searchInfo.cd[0].trace.selectedpoints.length > 0) {\n tracesWithSelectedPts.push(searchInfo);\n }\n }\n if (tracesWithSelectedPts.length === 1) {\n isSameTrace = tracesWithSelectedPts[0] === clickedPtInfo.searchInfo;\n if (isSameTrace) {\n trace = clickedPtInfo.searchInfo.cd[0].trace;\n if (trace.selectedpoints.length === clickedPtInfo.pointNumbers.length) {\n for (i = 0; i < clickedPtInfo.pointNumbers.length; i++) {\n if (trace.selectedpoints.indexOf(clickedPtInfo.pointNumbers[i]) < 0) {\n return false;\n }\n }\n return true;\n }\n }\n }\n return false;\n }\n function isOnlyOnePointSelected(searchTraces) {\n var len = 0;\n var searchInfo, trace, i;\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n trace = searchInfo.cd[0].trace;\n if (trace.selectedpoints) {\n if (trace.selectedpoints.length > 1) return false;\n len += trace.selectedpoints.length;\n if (len > 1) return false;\n }\n }\n return len === 1;\n }\n function updateSelectedState(gd, searchTraces, eventData) {\n var i;\n for (i = 0; i < searchTraces.length; i++) {\n var fullInputTrace = searchTraces[i].cd[0].trace._fullInput;\n var tracePreGUI = gd._fullLayout._tracePreGUI[fullInputTrace.uid] || {};\n if (tracePreGUI.selectedpoints === void 0) {\n tracePreGUI.selectedpoints = fullInputTrace._input.selectedpoints || null;\n }\n }\n var trace;\n if (eventData) {\n var pts = eventData.points || [];\n for (i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n trace._input.selectedpoints = trace._fullInput.selectedpoints = [];\n if (trace._fullInput !== trace) trace.selectedpoints = [];\n }\n for (var k = 0; k < pts.length; k++) {\n var pt = pts[k];\n var data = pt.data;\n var fullData = pt.fullData;\n var pointIndex = pt.pointIndex;\n var pointIndices = pt.pointIndices;\n if (pointIndices) {\n [].push.apply(data.selectedpoints, pointIndices);\n if (trace._fullInput !== trace) {\n [].push.apply(fullData.selectedpoints, pointIndices);\n }\n } else {\n data.selectedpoints.push(pointIndex);\n if (trace._fullInput !== trace) {\n fullData.selectedpoints.push(pointIndex);\n }\n }\n }\n } else {\n for (i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n delete trace.selectedpoints;\n delete trace._input.selectedpoints;\n if (trace._fullInput !== trace) {\n delete trace._fullInput.selectedpoints;\n }\n }\n }\n updateReglSelectedState(gd, searchTraces);\n }\n function updateReglSelectedState(gd, searchTraces) {\n var hasRegl = false;\n for (var i = 0; i < searchTraces.length; i++) {\n var searchInfo = searchTraces[i];\n var cd = searchInfo.cd;\n if (Registry.traceIs(cd[0].trace, \"regl\")) {\n hasRegl = true;\n }\n var _module = searchInfo._module;\n var fn = _module.styleOnSelect || _module.style;\n if (fn) {\n fn(gd, cd, cd[0].node3);\n if (cd[0].nodeRangePlot3) fn(gd, cd, cd[0].nodeRangePlot3);\n }\n }\n if (hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n }\n function mergePolygons(list, poly, subtract) {\n var fn = subtract ? polybool.difference : polybool.union;\n var res = fn({\n regions: list\n }, {\n regions: [poly]\n });\n var allPolygons = res.regions.reverse();\n for (var i = 0; i < allPolygons.length; i++) {\n var polygon = allPolygons[i];\n polygon.subtract = getSubtract(polygon, allPolygons.slice(0, i));\n }\n return allPolygons;\n }\n function fillSelectionItem(selection, searchInfo) {\n if (Array.isArray(selection)) {\n var cd = searchInfo.cd;\n var trace = searchInfo.cd[0].trace;\n for (var i = 0; i < selection.length; i++) {\n selection[i] = makeEventData(selection[i], trace, cd);\n }\n }\n return selection;\n }\n function convertPoly(polygonsIn, isOpenMode) {\n var polygonsOut = [];\n for (var i = 0; i < polygonsIn.length; i++) {\n polygonsOut[i] = [];\n for (var j = 0; j < polygonsIn[i].length; j++) {\n polygonsOut[i][j] = [];\n polygonsOut[i][j][0] = j ? \"L\" : \"M\";\n for (var k = 0; k < polygonsIn[i][j].length; k++) {\n polygonsOut[i][j].push(\n polygonsIn[i][j][k]\n );\n }\n }\n if (!isOpenMode) {\n polygonsOut[i].push([\n \"Z\",\n polygonsOut[i][0][1],\n // initial x\n polygonsOut[i][0][2]\n // initial y\n ]);\n }\n }\n return polygonsOut;\n }\n function _doSelect(selectionTesters, searchTraces) {\n var allSelections = [];\n var thisSelection;\n var traceSelections = [];\n var traceSelection;\n for (var i = 0; i < searchTraces.length; i++) {\n var searchInfo = searchTraces[i];\n traceSelection = searchInfo._module.selectPoints(searchInfo, selectionTesters);\n traceSelections.push(traceSelection);\n thisSelection = fillSelectionItem(traceSelection, searchInfo);\n allSelections = allSelections.concat(thisSelection);\n }\n return allSelections;\n }\n function reselect(gd, mayEmitSelected, selectionTesters, searchTraces, dragOptions) {\n var hadSearchTraces = !!searchTraces;\n var plotinfo, xRef, yRef;\n if (dragOptions) {\n plotinfo = dragOptions.plotinfo;\n xRef = dragOptions.xaxes[0]._id;\n yRef = dragOptions.yaxes[0]._id;\n }\n var allSelections = [];\n var allSearchTraces = [];\n var layoutPolygons = getLayoutPolygons(gd);\n var fullLayout = gd._fullLayout;\n if (plotinfo) {\n var zoomLayer = fullLayout._zoomlayer;\n var mode = fullLayout.dragmode;\n var isDrawMode = drawMode(mode);\n var isSelectMode = selectMode(mode);\n if (isDrawMode || isSelectMode) {\n var xaxis = getFromId(gd, xRef, \"x\");\n var yaxis = getFromId(gd, yRef, \"y\");\n if (xaxis && yaxis) {\n var outlines = zoomLayer.selectAll(\".select-outline-\" + plotinfo.id);\n if (outlines && gd._fullLayout._outlining) {\n if (outlines.length) {\n var e = outlines[0][0];\n var d = e.getAttribute(\"d\");\n var outlinePolys = readPaths(d, gd, plotinfo);\n var draftPolygons = [];\n for (var u = 0; u < outlinePolys.length; u++) {\n var p = outlinePolys[u];\n var polygon = [];\n for (var t = 0; t < p.length; t++) {\n polygon.push([\n convert(xaxis, p[t][1]),\n convert(yaxis, p[t][2])\n ]);\n }\n polygon.xref = xRef;\n polygon.yref = yRef;\n polygon.subtract = getSubtract(polygon, draftPolygons);\n draftPolygons.push(polygon);\n }\n layoutPolygons = layoutPolygons.concat(draftPolygons);\n }\n }\n }\n }\n }\n var subplots = xRef && yRef ? [xRef + yRef] : fullLayout._subplots.cartesian;\n epmtySplomSelectionBatch(gd);\n var seenSplom = {};\n for (var i = 0; i < subplots.length; i++) {\n var subplot = subplots[i];\n var yAt = subplot.indexOf(\"y\");\n var _xRef = subplot.slice(0, yAt);\n var _yRef = subplot.slice(yAt);\n var _selectionTesters = xRef && yRef ? selectionTesters : void 0;\n _selectionTesters = addTester(layoutPolygons, _xRef, _yRef, _selectionTesters);\n if (_selectionTesters) {\n var _searchTraces = searchTraces;\n if (!hadSearchTraces) {\n var _xA = getFromId(gd, _xRef, \"x\");\n var _yA = getFromId(gd, _yRef, \"y\");\n _searchTraces = determineSearchTraces(\n gd,\n [_xA],\n [_yA],\n subplot\n );\n for (var w = 0; w < _searchTraces.length; w++) {\n var s = _searchTraces[w];\n var cd0 = s.cd[0];\n var trace = cd0.trace;\n if (s._module.name === \"scattergl\" && !cd0.t.xpx) {\n var x = trace.x;\n var y = trace.y;\n var len = trace._length;\n cd0.t.xpx = [];\n cd0.t.ypx = [];\n for (var j = 0; j < len; j++) {\n cd0.t.xpx[j] = _xA.c2p(x[j]);\n cd0.t.ypx[j] = _yA.c2p(y[j]);\n }\n }\n if (s._module.name === \"splom\") {\n if (!seenSplom[trace.uid]) {\n seenSplom[trace.uid] = true;\n }\n }\n }\n }\n var selection = _doSelect(_selectionTesters, _searchTraces);\n allSelections = allSelections.concat(selection);\n allSearchTraces = allSearchTraces.concat(_searchTraces);\n }\n }\n var eventData = { points: allSelections };\n updateSelectedState(gd, allSearchTraces, eventData);\n var clickmode = fullLayout.clickmode;\n var sendEvents = clickmode.indexOf(\"event\") > -1 && mayEmitSelected;\n if (!plotinfo && // get called from plot_api & plots\n mayEmitSelected) {\n var activePolygons = getLayoutPolygons(gd, true);\n if (activePolygons.length) {\n var xref = activePolygons[0].xref;\n var yref = activePolygons[0].yref;\n if (xref && yref) {\n var poly = castMultiPolygon(activePolygons);\n var fillRangeItems = makeFillRangeItems([\n getFromId(gd, xref, \"x\"),\n getFromId(gd, yref, \"y\")\n ]);\n fillRangeItems(eventData, poly);\n }\n }\n if (gd._fullLayout._noEmitSelectedAtStart) {\n gd._fullLayout._noEmitSelectedAtStart = false;\n } else {\n if (sendEvents) emitSelected(gd, eventData);\n }\n fullLayout._reselect = false;\n }\n if (!plotinfo && // get called from plot_api & plots\n fullLayout._deselect) {\n var deselect = fullLayout._deselect;\n xRef = deselect.xref;\n yRef = deselect.yref;\n if (!subplotSelected(xRef, yRef, allSearchTraces)) {\n deselectSubplot(gd, xRef, yRef, searchTraces);\n }\n if (sendEvents) {\n if (eventData.points.length) {\n emitSelected(gd, eventData);\n } else {\n emitDeselect(gd);\n }\n }\n fullLayout._deselect = false;\n }\n return {\n eventData,\n selectionTesters\n };\n }\n function epmtySplomSelectionBatch(gd) {\n var cd = gd.calcdata;\n if (!cd) return;\n for (var i = 0; i < cd.length; i++) {\n var cd0 = cd[i][0];\n var trace = cd0.trace;\n var splomScenes = gd._fullLayout._splomScenes;\n if (splomScenes) {\n var scene = splomScenes[trace.uid];\n if (scene) {\n scene.selectBatch = [];\n }\n }\n }\n }\n function subplotSelected(xRef, yRef, searchTraces) {\n for (var i = 0; i < searchTraces.length; i++) {\n var s = searchTraces[i];\n if (s.xaxis && s.xaxis._id === xRef && (s.yaxis && s.yaxis._id === yRef)) {\n return true;\n }\n }\n return false;\n }\n function deselectSubplot(gd, xRef, yRef, searchTraces) {\n searchTraces = determineSearchTraces(\n gd,\n [getFromId(gd, xRef, \"x\")],\n [getFromId(gd, yRef, \"y\")],\n xRef + yRef\n );\n for (var k = 0; k < searchTraces.length; k++) {\n var searchInfo = searchTraces[k];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n updateSelectedState(gd, searchTraces);\n }\n function addTester(layoutPolygons, xRef, yRef, selectionTesters) {\n var mergedPolygons;\n for (var i = 0; i < layoutPolygons.length; i++) {\n var currentPolygon = layoutPolygons[i];\n if (xRef !== currentPolygon.xref || yRef !== currentPolygon.yref) continue;\n if (mergedPolygons) {\n var subtract = !!currentPolygon.subtract;\n mergedPolygons = mergePolygons(mergedPolygons, currentPolygon, subtract);\n selectionTesters = multiTester(mergedPolygons);\n } else {\n mergedPolygons = [currentPolygon];\n selectionTesters = polygonTester(currentPolygon);\n }\n }\n return selectionTesters;\n }\n function getLayoutPolygons(gd, onlyActiveOnes) {\n var allPolygons = [];\n var fullLayout = gd._fullLayout;\n var allSelections = fullLayout.selections;\n var len = allSelections.length;\n for (var i = 0; i < len; i++) {\n if (onlyActiveOnes && i !== fullLayout._activeSelectionIndex) continue;\n var selection = allSelections[i];\n if (!selection) continue;\n var xref = selection.xref;\n var yref = selection.yref;\n var xaxis = getFromId(gd, xref, \"x\");\n var yaxis = getFromId(gd, yref, \"y\");\n var xmin, xmax, ymin, ymax;\n var polygon;\n if (selection.type === \"rect\") {\n polygon = [];\n var x0 = convert(xaxis, selection.x0);\n var x1 = convert(xaxis, selection.x1);\n var y0 = convert(yaxis, selection.y0);\n var y1 = convert(yaxis, selection.y1);\n polygon = [[x0, y0], [x0, y1], [x1, y1], [x1, y0]];\n xmin = Math.min(x0, x1);\n xmax = Math.max(x0, x1);\n ymin = Math.min(y0, y1);\n ymax = Math.max(y0, y1);\n polygon.xmin = xmin;\n polygon.xmax = xmax;\n polygon.ymin = ymin;\n polygon.ymax = ymax;\n polygon.xref = xref;\n polygon.yref = yref;\n polygon.subtract = false;\n polygon.isRect = true;\n allPolygons.push(polygon);\n } else if (selection.type === \"path\") {\n var segments = selection.path.split(\"Z\");\n var multiPolygons = [];\n for (var j = 0; j < segments.length; j++) {\n var path = segments[j];\n if (!path) continue;\n path += \"Z\";\n var allX = shapeHelpers.extractPathCoords(path, shapeConstants.paramIsX, \"raw\");\n var allY = shapeHelpers.extractPathCoords(path, shapeConstants.paramIsY, \"raw\");\n xmin = Infinity;\n xmax = -Infinity;\n ymin = Infinity;\n ymax = -Infinity;\n polygon = [];\n for (var k = 0; k < allX.length; k++) {\n var x = convert(xaxis, allX[k]);\n var y = convert(yaxis, allY[k]);\n polygon.push([x, y]);\n xmin = Math.min(x, xmin);\n xmax = Math.max(x, xmax);\n ymin = Math.min(y, ymin);\n ymax = Math.max(y, ymax);\n }\n polygon.xmin = xmin;\n polygon.xmax = xmax;\n polygon.ymin = ymin;\n polygon.ymax = ymax;\n polygon.xref = xref;\n polygon.yref = yref;\n polygon.subtract = getSubtract(polygon, multiPolygons);\n multiPolygons.push(polygon);\n allPolygons.push(polygon);\n }\n }\n }\n return allPolygons;\n }\n function getSubtract(polygon, previousPolygons) {\n var subtract = false;\n for (var i = 0; i < previousPolygons.length; i++) {\n var previousPolygon = previousPolygons[i];\n for (var k = 0; k < polygon.length; k++) {\n if (pointInPolygon(polygon[k], previousPolygon)) {\n subtract = !subtract;\n break;\n }\n }\n }\n return subtract;\n }\n function convert(ax, d) {\n if (ax.type === \"date\") d = d.replace(\"_\", \" \");\n return ax.type === \"log\" ? ax.c2p(d) : ax.r2p(d, null, ax.calendar);\n }\n function castMultiPolygon(allPolygons) {\n var len = allPolygons.length;\n var p = [];\n for (var i = 0; i < len; i++) {\n var polygon = allPolygons[i];\n p = p.concat(polygon);\n p = p.concat([polygon[0]]);\n }\n return computeRectAndRanges(p);\n }\n function computeRectAndRanges(poly) {\n poly.isRect = poly.length === 5 && poly[0][0] === poly[4][0] && poly[0][1] === poly[4][1] && (poly[0][0] === poly[1][0] && poly[2][0] === poly[3][0] && poly[0][1] === poly[3][1] && poly[1][1] === poly[2][1]) || poly[0][1] === poly[1][1] && poly[2][1] === poly[3][1] && poly[0][0] === poly[3][0] && poly[1][0] === poly[2][0];\n if (poly.isRect) {\n poly.xmin = Math.min(poly[0][0], poly[2][0]);\n poly.xmax = Math.max(poly[0][0], poly[2][0]);\n poly.ymin = Math.min(poly[0][1], poly[2][1]);\n poly.ymax = Math.max(poly[0][1], poly[2][1]);\n }\n return poly;\n }\n function makeFillRangeItems(allAxes) {\n return function(eventData, poly) {\n var range;\n var lassoPoints;\n for (var i = 0; i < allAxes.length; i++) {\n var ax = allAxes[i];\n var id = ax._id;\n var axLetter = id.charAt(0);\n if (poly.isRect) {\n if (!range) range = {};\n var min = poly[axLetter + \"min\"];\n var max = poly[axLetter + \"max\"];\n if (min !== void 0 && max !== void 0) {\n range[id] = [\n p2r(ax, min),\n p2r(ax, max)\n ].sort(ascending);\n }\n } else {\n if (!lassoPoints) lassoPoints = {};\n lassoPoints[id] = poly.map(axValue(ax));\n }\n }\n if (range) {\n eventData.range = range;\n }\n if (lassoPoints) {\n eventData.lassoPoints = lassoPoints;\n }\n };\n }\n function getFillRangeItems(dragOptions) {\n var plotinfo = dragOptions.plotinfo;\n return plotinfo.fillRangeItems || // allow subplots (i.e. geo, mapbox, map, sankey) to override fillRangeItems routine\n makeFillRangeItems(dragOptions.xaxes.concat(dragOptions.yaxes));\n }\n function emitSelecting(gd, eventData) {\n gd.emit(\"plotly_selecting\", eventData);\n }\n function emitSelected(gd, eventData) {\n if (eventData) {\n eventData.selections = (gd.layout || {}).selections || [];\n }\n gd.emit(\"plotly_selected\", eventData);\n }\n function emitDeselect(gd) {\n gd.emit(\"plotly_deselect\", null);\n }\n module.exports = {\n reselect,\n prepSelect,\n clearOutline,\n clearSelectionsCache,\n selectOnClick\n };\n }\n });\n\n // src/components/annotations/arrow_paths.js\n var require_arrow_paths = __commonJS({\n \"src/components/annotations/arrow_paths.js\"(exports, module) {\n \"use strict\";\n module.exports = [\n // no arrow\n {\n path: \"\",\n backoff: 0\n },\n // wide with flat back\n {\n path: \"M-2.4,-3V3L0.6,0Z\",\n backoff: 0.6\n },\n // narrower with flat back\n {\n path: \"M-3.7,-2.5V2.5L1.3,0Z\",\n backoff: 1.3\n },\n // barbed\n {\n path: \"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z\",\n backoff: 1.55\n },\n // wide line-drawn\n {\n path: \"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z\",\n backoff: 1.6\n },\n // narrower line-drawn\n {\n path: \"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z\",\n backoff: 2\n },\n // circle\n {\n path: \"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z\",\n backoff: 0,\n noRotate: true\n },\n // square\n {\n path: \"M2,2V-2H-2V2Z\",\n backoff: 0,\n noRotate: true\n }\n ];\n }\n });\n\n // src/constants/axis_placeable_objects.js\n var require_axis_placeable_objects = __commonJS({\n \"src/constants/axis_placeable_objects.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n axisRefDescription: function(axisname, lower, upper) {\n return [\n \"If set to a\",\n axisname,\n \"axis id (e.g. *\" + axisname + \"* or\",\n \"*\" + axisname + \"2*), the `\" + axisname + \"` position refers to a\",\n axisname,\n \"coordinate. If set to *paper*, the `\" + axisname + \"`\",\n \"position refers to the distance from the\",\n lower,\n \"of the plotting\",\n \"area in normalized coordinates where *0* (*1*) corresponds to the\",\n lower,\n \"(\" + upper + \"). If set to a\",\n axisname,\n \"axis ID followed by\",\n \"*domain* (separated by a space), the position behaves like for\",\n \"*paper*, but refers to the distance in fractions of the domain\",\n \"length from the\",\n lower,\n \"of the domain of that axis: e.g.,\",\n \"*\" + axisname + \"2 domain* refers to the domain of the second\",\n axisname,\n \" axis and a\",\n axisname,\n \"position of 0.5 refers to the\",\n \"point between the\",\n lower,\n \"and the\",\n upper,\n \"of the domain of the\",\n \"second\",\n axisname,\n \"axis.\"\n ].join(\" \");\n }\n };\n }\n });\n\n // src/components/annotations/attributes.js\n var require_attributes11 = __commonJS({\n \"src/components/annotations/attributes.js\"(exports, module) {\n \"use strict\";\n var ARROWPATHS = require_arrow_paths();\n var fontAttrs = require_font_attributes();\n var cartesianConstants = require_constants2();\n var templatedArray = require_plot_template().templatedArray;\n var axisPlaceableObjs = require_axis_placeable_objects();\n module.exports = templatedArray(\"annotation\", {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc+arraydraw\"\n },\n text: {\n valType: \"string\",\n editType: \"calc+arraydraw\"\n },\n textangle: {\n valType: \"angle\",\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n font: fontAttrs({\n editType: \"calc+arraydraw\",\n colorEditType: \"arraydraw\"\n }),\n width: {\n valType: \"number\",\n min: 1,\n dflt: null,\n editType: \"calc+arraydraw\"\n },\n height: {\n valType: \"number\",\n min: 1,\n dflt: null,\n editType: \"calc+arraydraw\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"arraydraw\"\n },\n align: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n dflt: \"center\",\n editType: \"arraydraw\"\n },\n valign: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"],\n dflt: \"middle\",\n editType: \"arraydraw\"\n },\n bgcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"arraydraw\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"arraydraw\"\n },\n borderpad: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc+arraydraw\"\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc+arraydraw\"\n },\n // arrow\n showarrow: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc+arraydraw\"\n },\n arrowcolor: {\n valType: \"color\",\n editType: \"arraydraw\"\n },\n arrowhead: {\n valType: \"integer\",\n min: 0,\n max: ARROWPATHS.length,\n dflt: 1,\n editType: \"arraydraw\"\n },\n startarrowhead: {\n valType: \"integer\",\n min: 0,\n max: ARROWPATHS.length,\n dflt: 1,\n editType: \"arraydraw\"\n },\n arrowside: {\n valType: \"flaglist\",\n flags: [\"end\", \"start\"],\n extras: [\"none\"],\n dflt: \"end\",\n editType: \"arraydraw\"\n },\n arrowsize: {\n valType: \"number\",\n min: 0.3,\n dflt: 1,\n editType: \"calc+arraydraw\"\n },\n startarrowsize: {\n valType: \"number\",\n min: 0.3,\n dflt: 1,\n editType: \"calc+arraydraw\"\n },\n arrowwidth: {\n valType: \"number\",\n min: 0.1,\n editType: \"calc+arraydraw\"\n },\n standoff: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n startstandoff: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n ax: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n ay: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n axref: {\n valType: \"enumerated\",\n dflt: \"pixel\",\n values: [\n \"pixel\",\n cartesianConstants.idRegex.x.toString()\n ],\n editType: \"calc\"\n },\n ayref: {\n valType: \"enumerated\",\n dflt: \"pixel\",\n values: [\n \"pixel\",\n cartesianConstants.idRegex.y.toString()\n ],\n editType: \"calc\"\n },\n // positioning\n xref: {\n valType: \"enumerated\",\n values: [\n \"paper\",\n cartesianConstants.idRegex.x.toString()\n ],\n editType: \"calc\"\n },\n x: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"auto\",\n editType: \"calc+arraydraw\"\n },\n xshift: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n yref: {\n valType: \"enumerated\",\n values: [\n \"paper\",\n cartesianConstants.idRegex.y.toString()\n ],\n editType: \"calc\"\n },\n y: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n dflt: \"auto\",\n editType: \"calc+arraydraw\"\n },\n yshift: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n clicktoshow: {\n valType: \"enumerated\",\n values: [false, \"onoff\", \"onout\"],\n dflt: false,\n editType: \"arraydraw\"\n },\n xclick: {\n valType: \"any\",\n editType: \"arraydraw\"\n },\n yclick: {\n valType: \"any\",\n editType: \"arraydraw\"\n },\n hovertext: {\n valType: \"string\",\n editType: \"arraydraw\"\n },\n hoverlabel: {\n bgcolor: {\n valType: \"color\",\n editType: \"arraydraw\"\n },\n bordercolor: {\n valType: \"color\",\n editType: \"arraydraw\"\n },\n font: fontAttrs({\n editType: \"arraydraw\"\n }),\n editType: \"arraydraw\"\n },\n captureevents: {\n valType: \"boolean\",\n editType: \"arraydraw\"\n },\n editType: \"calc\"\n });\n }\n });\n\n // src/traces/scatter/constants.js\n var require_constants8 = __commonJS({\n \"src/traces/scatter/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n PTS_LINESONLY: 20,\n // fixed parameters of clustering and clipping algorithms\n // fraction of clustering tolerance \"so close we don't even consider it a new point\"\n minTolerance: 0.2,\n // how fast does clustering tolerance increase as you get away from the visible region\n toleranceGrowth: 10,\n // number of viewport sizes away from the visible region\n // at which we clip all lines to the perimeter\n maxScreensAway: 20,\n eventDataKeys: []\n };\n }\n });\n\n // src/traces/scatter/fillcolor_attribute.js\n var require_fillcolor_attribute = __commonJS({\n \"src/traces/scatter/fillcolor_attribute.js\"(exports, module) {\n \"use strict\";\n module.exports = function makeFillcolorAttr(hasFillgradient) {\n return {\n valType: \"color\",\n editType: \"style\",\n anim: true\n };\n };\n }\n });\n\n // src/traces/scatter/attributes.js\n var require_attributes12 = __commonJS({\n \"src/traces/scatter/attributes.js\"(exports, module) {\n \"use strict\";\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var fontAttrs = require_font_attributes();\n var dash = require_attributes4().dash;\n var pattern = require_attributes4().pattern;\n var Drawing = require_drawing();\n var constants = require_constants8();\n var extendFlat = require_extend().extendFlat;\n var makeFillcolorAttr = require_fillcolor_attribute();\n function axisPeriod(axis) {\n return {\n valType: \"any\",\n dflt: 0,\n editType: \"calc\"\n };\n }\n function axisPeriod0(axis) {\n return {\n valType: \"any\",\n editType: \"calc\"\n };\n }\n function axisPeriodAlignment(axis) {\n return {\n valType: \"enumerated\",\n values: [\n \"start\",\n \"middle\",\n \"end\"\n ],\n dflt: \"middle\",\n editType: \"calc\"\n };\n }\n module.exports = {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\",\n anim: true\n },\n x0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\",\n anim: true\n },\n dx: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\",\n anim: true\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\",\n anim: true\n },\n y0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\",\n anim: true\n },\n dy: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\",\n anim: true\n },\n xperiod: axisPeriod(\"x\"),\n yperiod: axisPeriod(\"y\"),\n xperiod0: axisPeriod0(\"x0\"),\n yperiod0: axisPeriod0(\"y0\"),\n xperiodalignment: axisPeriodAlignment(\"x\"),\n yperiodalignment: axisPeriodAlignment(\"y\"),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n offsetgroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n alignmentgroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n stackgroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n editType: \"calc\"\n },\n groupnorm: {\n valType: \"enumerated\",\n values: [\"\", \"fraction\", \"percent\"],\n dflt: \"\",\n editType: \"calc\"\n },\n stackgaps: {\n valType: \"enumerated\",\n values: [\"infer zero\", \"interpolate\"],\n dflt: \"infer zero\",\n editType: \"calc\"\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n texttemplate: texttemplateAttrs({}, {}),\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"style\"\n },\n mode: {\n valType: \"flaglist\",\n flags: [\"lines\", \"markers\", \"text\"],\n extras: [\"none\"],\n editType: \"calc\"\n },\n hoveron: {\n valType: \"flaglist\",\n flags: [\"points\", \"fills\"],\n editType: \"style\"\n },\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n line: {\n color: {\n valType: \"color\",\n editType: \"style\",\n anim: true\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 2,\n editType: \"style\",\n anim: true\n },\n shape: {\n valType: \"enumerated\",\n values: [\"linear\", \"spline\", \"hv\", \"vh\", \"hvh\", \"vhv\"],\n dflt: \"linear\",\n editType: \"plot\"\n },\n smoothing: {\n valType: \"number\",\n min: 0,\n max: 1.3,\n dflt: 1,\n editType: \"plot\"\n },\n dash: extendFlat({}, dash, { editType: \"style\" }),\n backoff: {\n // we want to have a similar option for the start of the line\n valType: \"number\",\n min: 0,\n dflt: \"auto\",\n arrayOk: true,\n editType: \"plot\"\n },\n simplify: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n connectgaps: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n cliponaxis: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n fill: {\n valType: \"enumerated\",\n values: [\"none\", \"tozeroy\", \"tozerox\", \"tonexty\", \"tonextx\", \"toself\", \"tonext\"],\n editType: \"calc\"\n },\n fillcolor: makeFillcolorAttr(true),\n fillgradient: extendFlat({\n type: {\n valType: \"enumerated\",\n values: [\"radial\", \"horizontal\", \"vertical\", \"none\"],\n dflt: \"none\",\n editType: \"calc\"\n },\n start: {\n valType: \"number\",\n editType: \"calc\"\n },\n stop: {\n valType: \"number\",\n editType: \"calc\"\n },\n colorscale: {\n valType: \"colorscale\",\n editType: \"style\"\n },\n editType: \"calc\"\n }),\n fillpattern: pattern,\n marker: extendFlat(\n {\n symbol: {\n valType: \"enumerated\",\n values: Drawing.symbolList,\n dflt: \"circle\",\n arrayOk: true,\n editType: \"style\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n arrayOk: true,\n editType: \"style\",\n anim: true\n },\n angle: {\n valType: \"angle\",\n dflt: 0,\n arrayOk: true,\n editType: \"plot\",\n anim: false\n // TODO: possibly set to true in future\n },\n angleref: {\n valType: \"enumerated\",\n values: [\"previous\", \"up\"],\n dflt: \"up\",\n editType: \"plot\",\n anim: false\n },\n standoff: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n arrayOk: true,\n editType: \"plot\",\n anim: true\n },\n size: {\n valType: \"number\",\n min: 0,\n dflt: 6,\n arrayOk: true,\n editType: \"calc\",\n anim: true\n },\n maxdisplayed: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n sizeref: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n sizemin: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n sizemode: {\n valType: \"enumerated\",\n values: [\"diameter\", \"area\"],\n dflt: \"diameter\",\n editType: \"calc\"\n },\n line: extendFlat(\n {\n width: {\n valType: \"number\",\n min: 0,\n arrayOk: true,\n editType: \"style\",\n anim: true\n },\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker.line\", { anim: true })\n ),\n gradient: {\n type: {\n valType: \"enumerated\",\n values: [\"radial\", \"horizontal\", \"vertical\", \"none\"],\n arrayOk: true,\n dflt: \"none\",\n editType: \"calc\"\n },\n color: {\n valType: \"color\",\n arrayOk: true,\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\", { anim: true })\n ),\n selected: {\n marker: {\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"style\"\n },\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n size: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n editType: \"style\"\n },\n textfont: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"style\"\n },\n unselected: {\n marker: {\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"style\"\n },\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n size: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n editType: \"style\"\n },\n textfont: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"style\"\n },\n textposition: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle left\",\n \"middle center\",\n \"middle right\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\"\n ],\n dflt: \"middle center\",\n arrayOk: true,\n editType: \"calc\"\n },\n textfont: fontAttrs({\n editType: \"calc\",\n colorEditType: \"style\",\n arrayOk: true\n }),\n zorder: {\n valType: \"integer\",\n dflt: 0,\n editType: \"plot\"\n }\n };\n }\n });\n\n // src/components/selections/attributes.js\n var require_attributes13 = __commonJS({\n \"src/components/selections/attributes.js\"(exports, module) {\n \"use strict\";\n var annAttrs = require_attributes11();\n var scatterLineAttrs = require_attributes12().line;\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var templatedArray = require_plot_template().templatedArray;\n var axisPlaceableObjs = require_axis_placeable_objects();\n module.exports = overrideAll(templatedArray(\"selection\", {\n type: {\n valType: \"enumerated\",\n values: [\"rect\", \"path\"]\n },\n xref: extendFlat({}, annAttrs.xref, {}),\n yref: extendFlat({}, annAttrs.yref, {}),\n x0: {\n valType: \"any\"\n },\n x1: {\n valType: \"any\"\n },\n y0: {\n valType: \"any\"\n },\n y1: {\n valType: \"any\"\n },\n path: {\n valType: \"string\",\n editType: \"arraydraw\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.7,\n editType: \"arraydraw\"\n },\n line: {\n color: scatterLineAttrs.color,\n width: extendFlat({}, scatterLineAttrs.width, {\n min: 1,\n dflt: 1\n }),\n dash: extendFlat({}, dash, {\n dflt: \"dot\"\n })\n }\n }), \"arraydraw\", \"from-root\");\n }\n });\n\n // src/components/selections/defaults.js\n var require_defaults6 = __commonJS({\n \"src/components/selections/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes13();\n var helpers = require_helpers8();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: \"selections\",\n handleItemDefaults: handleSelectionDefaults\n });\n var selections = layoutOut.selections;\n for (var i = 0; i < selections.length; i++) {\n var selection = selections[i];\n if (!selection) continue;\n if (selection.path === void 0) {\n if (selection.x0 === void 0 || selection.x1 === void 0 || selection.y0 === void 0 || selection.y1 === void 0) {\n layoutOut.selections[i] = null;\n }\n }\n }\n };\n function handleSelectionDefaults(selectionIn, selectionOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(selectionIn, selectionOut, attributes, attr, dflt);\n }\n var path = coerce(\"path\");\n var dfltType = path ? \"path\" : \"rect\";\n var selectionType = coerce(\"type\", dfltType);\n var noPath = selectionType !== \"path\";\n if (noPath) delete selectionOut.path;\n coerce(\"opacity\");\n coerce(\"line.color\");\n coerce(\"line.width\");\n coerce(\"line.dash\");\n var axLetters = [\"x\", \"y\"];\n for (var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var gdMock = { _fullLayout: fullLayout };\n var ax;\n var pos2r;\n var r2pos;\n var axRef = Axes.coerceRef(selectionIn, selectionOut, gdMock, axLetter);\n ax = Axes.getFromId(gdMock, axRef);\n ax._selectionIndices.push(selectionOut._index);\n r2pos = helpers.rangeToShapePosition(ax);\n pos2r = helpers.shapePositionToRange(ax);\n if (noPath) {\n var attr0 = axLetter + \"0\";\n var attr1 = axLetter + \"1\";\n var in0 = selectionIn[attr0];\n var in1 = selectionIn[attr1];\n selectionIn[attr0] = pos2r(selectionIn[attr0], true);\n selectionIn[attr1] = pos2r(selectionIn[attr1], true);\n Axes.coercePosition(selectionOut, gdMock, coerce, axRef, attr0);\n Axes.coercePosition(selectionOut, gdMock, coerce, axRef, attr1);\n var p0 = selectionOut[attr0];\n var p1 = selectionOut[attr1];\n if (p0 !== void 0 && p1 !== void 0) {\n selectionOut[attr0] = r2pos(p0);\n selectionOut[attr1] = r2pos(p1);\n selectionIn[attr0] = in0;\n selectionIn[attr1] = in1;\n }\n }\n }\n if (noPath) {\n Lib.noneOrAll(selectionIn, selectionOut, [\"x0\", \"x1\", \"y0\", \"y1\"]);\n }\n }\n }\n });\n\n // src/components/selections/draw_newselection/defaults.js\n var require_defaults7 = __commonJS({\n \"src/components/selections/draw_newselection/defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function supplyDrawNewSelectionDefaults(layoutIn, layoutOut, coerce) {\n coerce(\"newselection.mode\");\n var newselectionLineWidth = coerce(\"newselection.line.width\");\n if (newselectionLineWidth) {\n coerce(\"newselection.line.color\");\n coerce(\"newselection.line.dash\");\n }\n coerce(\"activeselection.fillcolor\");\n coerce(\"activeselection.opacity\");\n };\n }\n });\n\n // src/plots/cartesian/include_components.js\n var require_include_components = __commonJS({\n \"src/plots/cartesian/include_components.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var axisIds = require_axis_ids();\n module.exports = function makeIncludeComponents(containerArrayName) {\n return function includeComponents(layoutIn, layoutOut) {\n var array = layoutIn[containerArrayName];\n if (!Array.isArray(array)) return;\n var Cartesian = Registry.subplotsRegistry.cartesian;\n var idRegex = Cartesian.idRegex;\n var subplots = layoutOut._subplots;\n var xaList = subplots.xaxis;\n var yaList = subplots.yaxis;\n var cartesianList = subplots.cartesian;\n var hasCartesian = layoutOut._has(\"cartesian\");\n for (var i = 0; i < array.length; i++) {\n var itemi = array[i];\n if (!Lib.isPlainObject(itemi)) continue;\n var xref = axisIds.cleanId(itemi.xref, \"x\", false);\n var yref = axisIds.cleanId(itemi.yref, \"y\", false);\n var hasXref = idRegex.x.test(xref);\n var hasYref = idRegex.y.test(yref);\n if (hasXref || hasYref) {\n if (!hasCartesian) Lib.pushUnique(layoutOut._basePlotModules, Cartesian);\n var newAxis = false;\n if (hasXref && xaList.indexOf(xref) === -1) {\n xaList.push(xref);\n newAxis = true;\n }\n if (hasYref && yaList.indexOf(yref) === -1) {\n yaList.push(yref);\n newAxis = true;\n }\n if (newAxis && hasXref && hasYref) {\n cartesianList.push(xref + yref);\n }\n }\n }\n };\n };\n }\n });\n\n // src/components/selections/index.js\n var require_selections = __commonJS({\n \"src/components/selections/index.js\"(exports, module) {\n \"use strict\";\n var drawModule = require_draw3();\n var select = require_select();\n module.exports = {\n moduleType: \"component\",\n name: \"selections\",\n layoutAttributes: require_attributes13(),\n supplyLayoutDefaults: require_defaults6(),\n supplyDrawNewSelectionDefaults: require_defaults7(),\n includeBasePlot: require_include_components()(\"selections\"),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne,\n reselect: select.reselect,\n prepSelect: select.prepSelect,\n clearOutline: select.clearOutline,\n clearSelectionsCache: select.clearSelectionsCache,\n selectOnClick: select.selectOnClick\n };\n }\n });\n\n // src/plots/cartesian/dragbox.js\n var require_dragbox = __commonJS({\n \"src/plots/cartesian/dragbox.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var tinycolor = require_tinycolor();\n var supportsPassive = require_has_passive_events();\n var Registry = require_registry();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Fx = require_fx();\n var Axes = require_axes();\n var setCursor = require_setcursor();\n var dragElement = require_dragelement();\n var helpers = require_helpers5();\n var selectingOrDrawing = helpers.selectingOrDrawing;\n var freeMode = helpers.freeMode;\n var FROM_TL = require_alignment().FROM_TL;\n var clearGlCanvases = require_clear_gl_canvases();\n var redrawReglTraces = require_subroutines().redrawReglTraces;\n var Plots = require_plots();\n var getFromId = require_axis_ids().getFromId;\n var prepSelect = require_selections().prepSelect;\n var clearOutline = require_selections().clearOutline;\n var selectOnClick = require_selections().selectOnClick;\n var scaleZoom = require_scale_zoom();\n var constants = require_constants2();\n var MINDRAG = constants.MINDRAG;\n var MINZOOM = constants.MINZOOM;\n var SHOWZOOMOUTTIP = true;\n function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {\n var zoomlayer = gd._fullLayout._zoomlayer;\n var isMainDrag = ns + ew === \"nsew\";\n var singleEnd = (ns + ew).length === 1;\n var xa0, ya0;\n var xaHash, yaHash;\n var xaxes, yaxes;\n var xs, ys;\n var pw, ph;\n var links;\n var matches;\n var xActive, yActive;\n var allFixedRanges;\n var editX, editY;\n var hasScatterGl, hasSplom, hasSVG;\n var updates;\n var scaleX;\n var scaleY;\n x += plotinfo.yaxis._shift;\n function recomputeAxisLists() {\n xa0 = plotinfo.xaxis;\n ya0 = plotinfo.yaxis;\n pw = xa0._length;\n ph = ya0._length;\n xs = xa0._offset;\n ys = ya0._offset;\n xaHash = {};\n xaHash[xa0._id] = xa0;\n yaHash = {};\n yaHash[ya0._id] = ya0;\n if (ns && ew) {\n var overlays = plotinfo.overlays;\n for (var i = 0; i < overlays.length; i++) {\n var xa = overlays[i].xaxis;\n xaHash[xa._id] = xa;\n var ya = overlays[i].yaxis;\n yaHash[ya._id] = ya;\n }\n }\n xaxes = hashValues(xaHash);\n yaxes = hashValues(yaHash);\n xActive = isDirectionActive(xaxes, ew);\n yActive = isDirectionActive(yaxes, ns);\n allFixedRanges = !yActive && !xActive;\n matches = calcLinks(gd, gd._fullLayout._axisMatchGroups, xaHash, yaHash);\n links = calcLinks(gd, gd._fullLayout._axisConstraintGroups, xaHash, yaHash, matches);\n var spConstrained = links.isSubplotConstrained || matches.isSubplotConstrained;\n editX = ew || spConstrained;\n editY = ns || spConstrained;\n var fullLayout = gd._fullLayout;\n hasScatterGl = fullLayout._has(\"scattergl\");\n hasSplom = fullLayout._has(\"splom\");\n hasSVG = fullLayout._has(\"svg\");\n }\n recomputeAxisLists();\n var cursor = getDragCursor(yActive + xActive, gd._fullLayout.dragmode, isMainDrag);\n var dragger = makeRectDragger(plotinfo, ns + ew + \"drag\", cursor, x, y, w, h);\n if (allFixedRanges && !isMainDrag) {\n dragger.onmousedown = null;\n dragger.style.pointerEvents = \"none\";\n return dragger;\n }\n var dragOptions = {\n element: dragger,\n gd,\n plotinfo\n };\n dragOptions.prepFn = function(e, startX, startY) {\n var dragModePrev = dragOptions.dragmode;\n var dragModeNow = gd._fullLayout.dragmode;\n if (dragModeNow !== dragModePrev) {\n dragOptions.dragmode = dragModeNow;\n }\n recomputeAxisLists();\n scaleX = gd._fullLayout._invScaleX;\n scaleY = gd._fullLayout._invScaleY;\n if (!allFixedRanges) {\n if (isMainDrag) {\n if (e.shiftKey) {\n if (dragModeNow === \"pan\") dragModeNow = \"zoom\";\n else if (!selectingOrDrawing(dragModeNow)) dragModeNow = \"pan\";\n } else if (e.ctrlKey) {\n dragModeNow = \"pan\";\n }\n } else {\n dragModeNow = \"pan\";\n }\n }\n if (freeMode(dragModeNow)) dragOptions.minDrag = 1;\n else dragOptions.minDrag = void 0;\n if (selectingOrDrawing(dragModeNow)) {\n dragOptions.xaxes = xaxes;\n dragOptions.yaxes = yaxes;\n prepSelect(e, startX, startY, dragOptions, dragModeNow);\n } else {\n dragOptions.clickFn = clickFn;\n if (selectingOrDrawing(dragModePrev)) {\n clearAndResetSelect();\n }\n if (!allFixedRanges) {\n if (dragModeNow === \"zoom\") {\n dragOptions.moveFn = zoomMove;\n dragOptions.doneFn = zoomDone;\n dragOptions.minDrag = 1;\n zoomPrep(e, startX, startY);\n } else if (dragModeNow === \"pan\") {\n dragOptions.moveFn = plotDrag;\n dragOptions.doneFn = dragTail;\n }\n }\n }\n gd._fullLayout._redrag = function() {\n var dragDataNow = gd._dragdata;\n if (dragDataNow && dragDataNow.element === dragger) {\n var dragModeNow2 = gd._fullLayout.dragmode;\n if (!selectingOrDrawing(dragModeNow2)) {\n recomputeAxisLists();\n updateSubplots([0, 0, pw, ph]);\n dragOptions.moveFn(dragDataNow.dx, dragDataNow.dy);\n }\n }\n };\n };\n function clearAndResetSelect() {\n dragOptions.plotinfo.selection = false;\n clearOutline(gd);\n }\n function clickFn(numClicks, evt) {\n var gd2 = dragOptions.gd;\n if (gd2._fullLayout._activeShapeIndex >= 0) {\n gd2._fullLayout._deactivateShape(gd2);\n return;\n }\n var clickmode = gd2._fullLayout.clickmode;\n removeZoombox(gd2);\n if (numClicks === 2 && !singleEnd) doubleClick();\n if (isMainDrag) {\n if (clickmode.indexOf(\"select\") > -1) {\n selectOnClick(evt, gd2, xaxes, yaxes, plotinfo.id, dragOptions);\n }\n if (clickmode.indexOf(\"event\") > -1) {\n Fx.click(gd2, evt, plotinfo.id);\n }\n } else if (numClicks === 1 && singleEnd) {\n var ax = ns ? ya0 : xa0;\n var end = ns === \"s\" || ew === \"w\" ? 0 : 1;\n var attrStr = ax._name + \".range[\" + end + \"]\";\n var initialText = getEndText(ax, end);\n var hAlign = \"left\";\n var vAlign = \"middle\";\n if (ax.fixedrange) return;\n if (ns) {\n vAlign = ns === \"n\" ? \"top\" : \"bottom\";\n if (ax.side === \"right\") hAlign = \"right\";\n } else if (ew === \"e\") hAlign = \"right\";\n if (gd2._context.showAxisRangeEntryBoxes) {\n d3.select(dragger).call(svgTextUtils.makeEditable, {\n gd: gd2,\n immediate: true,\n background: gd2._fullLayout.paper_bgcolor,\n text: String(initialText),\n fill: ax.tickfont ? ax.tickfont.color : \"#444\",\n horizontalAlign: hAlign,\n verticalAlign: vAlign\n }).on(\"edit\", function(text) {\n var v = ax.d2r(text);\n if (v !== void 0) {\n Registry.call(\"_guiRelayout\", gd2, attrStr, v);\n }\n });\n }\n }\n }\n dragElement.init(dragOptions);\n var x0, y0;\n var box;\n var lum;\n var path0;\n var dimmed;\n var zoomMode;\n var zb;\n var corners;\n var zoomDragged;\n function zoomPrep(e, startX, startY) {\n var dragBBox = dragger.getBoundingClientRect();\n x0 = startX - dragBBox.left;\n y0 = startY - dragBBox.top;\n gd._fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(gd._fullLayout._invTransform)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n box = { l: x0, r: x0, w: 0, t: y0, b: y0, h: 0 };\n lum = gd._hmpixcount ? gd._hmlumcount / gd._hmpixcount : tinycolor(gd._fullLayout.plot_bgcolor).getLuminance();\n path0 = \"M0,0H\" + pw + \"V\" + ph + \"H0V0\";\n dimmed = false;\n zoomMode = \"xy\";\n zoomDragged = false;\n zb = makeZoombox(zoomlayer, lum, xs, ys, path0);\n corners = makeCorners(zoomlayer, xs, ys);\n }\n function zoomMove(dx0, dy0) {\n if (gd._transitioningWithDuration) {\n return false;\n }\n var x1 = Math.max(0, Math.min(pw, scaleX * dx0 + x0));\n var y1 = Math.max(0, Math.min(ph, scaleY * dy0 + y0));\n var dx = Math.abs(x1 - x0);\n var dy = Math.abs(y1 - y0);\n box.l = Math.min(x0, x1);\n box.r = Math.max(x0, x1);\n box.t = Math.min(y0, y1);\n box.b = Math.max(y0, y1);\n function noZoom() {\n zoomMode = \"\";\n box.r = box.l;\n box.t = box.b;\n corners.attr(\"d\", \"M0,0Z\");\n }\n if (links.isSubplotConstrained) {\n if (dx > MINZOOM || dy > MINZOOM) {\n zoomMode = \"xy\";\n if (dx / pw > dy / ph) {\n dy = dx * ph / pw;\n if (y0 > y1) box.t = y0 - dy;\n else box.b = y0 + dy;\n } else {\n dx = dy * pw / ph;\n if (x0 > x1) box.l = x0 - dx;\n else box.r = x0 + dx;\n }\n corners.attr(\"d\", xyCorners(box));\n } else {\n noZoom();\n }\n } else if (matches.isSubplotConstrained) {\n if (dx > MINZOOM || dy > MINZOOM) {\n zoomMode = \"xy\";\n var r0 = Math.min(box.l / pw, (ph - box.b) / ph);\n var r1 = Math.max(box.r / pw, (ph - box.t) / ph);\n box.l = r0 * pw;\n box.r = r1 * pw;\n box.b = (1 - r0) * ph;\n box.t = (1 - r1) * ph;\n corners.attr(\"d\", xyCorners(box));\n } else {\n noZoom();\n }\n } else if (!yActive || dy < Math.min(Math.max(dx * 0.6, MINDRAG), MINZOOM)) {\n if (dx < MINDRAG || !xActive) {\n noZoom();\n } else {\n box.t = 0;\n box.b = ph;\n zoomMode = \"x\";\n corners.attr(\"d\", xCorners(box, y0));\n }\n } else if (!xActive || dx < Math.min(dy * 0.6, MINZOOM)) {\n box.l = 0;\n box.r = pw;\n zoomMode = \"y\";\n corners.attr(\"d\", yCorners(box, x0));\n } else {\n zoomMode = \"xy\";\n corners.attr(\"d\", xyCorners(box));\n }\n box.w = box.r - box.l;\n box.h = box.b - box.t;\n if (zoomMode) zoomDragged = true;\n gd._dragged = zoomDragged;\n updateZoombox(zb, corners, box, path0, dimmed, lum);\n computeZoomUpdates();\n gd.emit(\"plotly_relayouting\", updates);\n dimmed = true;\n }\n function computeZoomUpdates() {\n updates = {};\n if (zoomMode === \"xy\" || zoomMode === \"x\") {\n zoomAxRanges(xaxes, box.l / pw, box.r / pw, updates, links.xaxes);\n updateMatchedAxRange(\"x\", updates);\n }\n if (zoomMode === \"xy\" || zoomMode === \"y\") {\n zoomAxRanges(yaxes, (ph - box.b) / ph, (ph - box.t) / ph, updates, links.yaxes);\n updateMatchedAxRange(\"y\", updates);\n }\n }\n function zoomDone() {\n computeZoomUpdates();\n removeZoombox(gd);\n dragTail();\n showDoubleClickNotifier(gd);\n }\n var scrollViewBox = [0, 0, pw, ph];\n var redrawTimer = null;\n var REDRAWDELAY = constants.REDRAWDELAY;\n var mainplot = plotinfo.mainplot ? gd._fullLayout._plots[plotinfo.mainplot] : plotinfo;\n function zoomWheel(e) {\n if (!gd._context._scrollZoom.cartesian && !gd._fullLayout._enablescrollzoom) {\n return;\n }\n clearAndResetSelect();\n if (gd._transitioningWithDuration) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n recomputeAxisLists();\n clearTimeout(redrawTimer);\n var wheelDelta = -e.deltaY;\n if (!isFinite(wheelDelta)) wheelDelta = e.wheelDelta / 10;\n if (!isFinite(wheelDelta)) {\n Lib.log(\"Did not find wheel motion attributes: \", e);\n return;\n }\n var zoom = Math.exp(-Math.min(Math.max(wheelDelta, -20), 20) / 200);\n var gbb = mainplot.draglayer.select(\".nsewdrag\").node().getBoundingClientRect();\n var xfrac = (e.clientX - gbb.left) / gbb.width;\n var yfrac = (gbb.bottom - e.clientY) / gbb.height;\n var i;\n function zoomWheelOneAxis(ax, centerFraction, zoom2) {\n if (ax.fixedrange) return;\n var axRange = Lib.simpleMap(ax.range, ax.r2l);\n var v0 = axRange[0] + (axRange[1] - axRange[0]) * centerFraction;\n function doZoom(v) {\n return ax.l2r(v0 + (v - v0) * zoom2);\n }\n ax.range = axRange.map(doZoom);\n }\n if (editX) {\n if (!ew) xfrac = 0.5;\n for (i = 0; i < xaxes.length; i++) {\n zoomWheelOneAxis(xaxes[i], xfrac, zoom);\n }\n updateMatchedAxRange(\"x\");\n scrollViewBox[2] *= zoom;\n scrollViewBox[0] += scrollViewBox[2] * xfrac * (1 / zoom - 1);\n }\n if (editY) {\n if (!ns) yfrac = 0.5;\n for (i = 0; i < yaxes.length; i++) {\n zoomWheelOneAxis(yaxes[i], yfrac, zoom);\n }\n updateMatchedAxRange(\"y\");\n scrollViewBox[3] *= zoom;\n scrollViewBox[1] += scrollViewBox[3] * (1 - yfrac) * (1 / zoom - 1);\n }\n updateSubplots(scrollViewBox);\n ticksAndAnnotations();\n gd.emit(\"plotly_relayouting\", updates);\n redrawTimer = setTimeout(function() {\n if (!gd._fullLayout) return;\n scrollViewBox = [0, 0, pw, ph];\n dragTail();\n }, REDRAWDELAY);\n e.preventDefault();\n return;\n }\n if (ns.length * ew.length !== 1) {\n attachWheelEventHandler(dragger, zoomWheel);\n }\n function plotDrag(dx, dy) {\n dx = dx * scaleX;\n dy = dy * scaleY;\n if (gd._transitioningWithDuration) {\n return;\n }\n gd._fullLayout._replotting = true;\n if (xActive === \"ew\" || yActive === \"ns\") {\n var spDx = xActive ? -dx : 0;\n var spDy = yActive ? -dy : 0;\n if (matches.isSubplotConstrained) {\n if (xActive && yActive) {\n var frac = (dx / pw - dy / ph) / 2;\n dx = frac * pw;\n dy = -frac * ph;\n spDx = -dx;\n spDy = -dy;\n }\n if (yActive) {\n spDx = -spDy * pw / ph;\n } else {\n spDy = -spDx * ph / pw;\n }\n }\n if (xActive) {\n dragAxList(xaxes, dx);\n updateMatchedAxRange(\"x\");\n }\n if (yActive) {\n dragAxList(yaxes, dy);\n updateMatchedAxRange(\"y\");\n }\n updateSubplots([spDx, spDy, pw, ph]);\n ticksAndAnnotations();\n gd.emit(\"plotly_relayouting\", updates);\n return;\n }\n function dz(axArray, end, d) {\n var otherEnd = 1 - end;\n var movedAx;\n var newLinearizedEnd;\n for (var i2 = 0; i2 < axArray.length; i2++) {\n var axi = axArray[i2];\n if (axi.fixedrange) continue;\n movedAx = axi;\n newLinearizedEnd = axi._rl[otherEnd] + (axi._rl[end] - axi._rl[otherEnd]) / dZoom(d / axi._length);\n var newEnd = axi.l2r(newLinearizedEnd);\n if (newEnd !== false && newEnd !== void 0) axi.range[end] = newEnd;\n }\n return movedAx._length * (movedAx._rl[end] - newLinearizedEnd) / (movedAx._rl[end] - movedAx._rl[otherEnd]);\n }\n var dxySign = xActive === \"w\" === (yActive === \"n\") ? 1 : -1;\n if (xActive && yActive && (links.isSubplotConstrained || matches.isSubplotConstrained)) {\n var dxyFraction = (dx / pw + dxySign * dy / ph) / 2;\n dx = dxyFraction * pw;\n dy = dxySign * dxyFraction * ph;\n }\n var xStart, yStart;\n if (xActive === \"w\") dx = dz(xaxes, 0, dx);\n else if (xActive === \"e\") dx = dz(xaxes, 1, -dx);\n else if (!xActive) dx = 0;\n if (yActive === \"n\") dy = dz(yaxes, 1, dy);\n else if (yActive === \"s\") dy = dz(yaxes, 0, -dy);\n else if (!yActive) dy = 0;\n xStart = xActive === \"w\" ? dx : 0;\n yStart = yActive === \"n\" ? dy : 0;\n if (links.isSubplotConstrained && !matches.isSubplotConstrained || // NW or SE on matching axes - create a symmetric zoom\n matches.isSubplotConstrained && xActive && yActive && dxySign > 0) {\n var i;\n if (matches.isSubplotConstrained || !xActive && yActive.length === 1) {\n for (i = 0; i < xaxes.length; i++) {\n xaxes[i].range = xaxes[i]._r.slice();\n scaleZoom(xaxes[i], 1 - dy / ph);\n }\n dx = dy * pw / ph;\n xStart = dx / 2;\n }\n if (matches.isSubplotConstrained || !yActive && xActive.length === 1) {\n for (i = 0; i < yaxes.length; i++) {\n yaxes[i].range = yaxes[i]._r.slice();\n scaleZoom(yaxes[i], 1 - dx / pw);\n }\n dy = dx * ph / pw;\n yStart = dy / 2;\n }\n }\n if (!matches.isSubplotConstrained || !yActive) {\n updateMatchedAxRange(\"x\");\n }\n if (!matches.isSubplotConstrained || !xActive) {\n updateMatchedAxRange(\"y\");\n }\n var xSize = pw - dx;\n var ySize = ph - dy;\n if (matches.isSubplotConstrained && !(xActive && yActive)) {\n if (xActive) {\n yStart = xStart ? 0 : dx * ph / pw;\n ySize = xSize * ph / pw;\n } else {\n xStart = yStart ? 0 : dy * pw / ph;\n xSize = ySize * pw / ph;\n }\n }\n updateSubplots([xStart, yStart, xSize, ySize]);\n ticksAndAnnotations();\n gd.emit(\"plotly_relayouting\", updates);\n }\n function updateMatchedAxRange(axLetter, out) {\n var matchedAxes = matches.isSubplotConstrained ? { x: yaxes, y: xaxes }[axLetter] : matches[axLetter + \"axes\"];\n var constrainedAxes = matches.isSubplotConstrained ? { x: xaxes, y: yaxes }[axLetter] : [];\n for (var i = 0; i < matchedAxes.length; i++) {\n var ax = matchedAxes[i];\n var axId = ax._id;\n var axId2 = matches.xLinks[axId] || matches.yLinks[axId];\n var ax2 = constrainedAxes[0] || xaHash[axId2] || yaHash[axId2];\n if (ax2) {\n if (out) {\n out[ax._name + \".range[0]\"] = out[ax2._name + \".range[0]\"];\n out[ax._name + \".range[1]\"] = out[ax2._name + \".range[1]\"];\n } else {\n ax.range = ax2.range.slice();\n }\n }\n }\n }\n function ticksAndAnnotations() {\n var activeAxIds = [];\n var i;\n function pushActiveAxIds(axList) {\n for (i = 0; i < axList.length; i++) {\n if (!axList[i].fixedrange) activeAxIds.push(axList[i]._id);\n }\n }\n function pushActiveAxIdsSynced(axList, axisType) {\n for (i = 0; i < axList.length; i++) {\n var axListI = axList[i];\n var axListIType = axListI[axisType];\n if (!axListI.fixedrange && axListIType.tickmode === \"sync\") activeAxIds.push(axListIType._id);\n }\n }\n if (editX) {\n pushActiveAxIds(xaxes);\n pushActiveAxIds(links.xaxes);\n pushActiveAxIds(matches.xaxes);\n pushActiveAxIdsSynced(plotinfo.overlays, \"xaxis\");\n }\n if (editY) {\n pushActiveAxIds(yaxes);\n pushActiveAxIds(links.yaxes);\n pushActiveAxIds(matches.yaxes);\n pushActiveAxIdsSynced(plotinfo.overlays, \"yaxis\");\n }\n updates = {};\n for (i = 0; i < activeAxIds.length; i++) {\n var axId = activeAxIds[i];\n var ax = getFromId(gd, axId);\n Axes.drawOne(gd, ax, { skipTitle: true });\n updates[ax._name + \".range[0]\"] = ax.range[0];\n updates[ax._name + \".range[1]\"] = ax.range[1];\n }\n Axes.redrawComponents(gd, activeAxIds);\n }\n function doubleClick() {\n if (gd._transitioningWithDuration) return;\n var doubleClickConfig = gd._context.doubleClick;\n var axList = [];\n if (xActive) axList = axList.concat(xaxes);\n if (yActive) axList = axList.concat(yaxes);\n if (matches.xaxes) axList = axList.concat(matches.xaxes);\n if (matches.yaxes) axList = axList.concat(matches.yaxes);\n var attrs = {};\n var ax, i;\n if (doubleClickConfig === \"reset+autosize\") {\n doubleClickConfig = \"autosize\";\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n var r0 = ax._rangeInitial0;\n var r1 = ax._rangeInitial1;\n var hasRangeInitial = r0 !== void 0 || r1 !== void 0;\n if (hasRangeInitial && (r0 !== void 0 && r0 !== ax.range[0] || r1 !== void 0 && r1 !== ax.range[1]) || !hasRangeInitial && ax.autorange !== true) {\n doubleClickConfig = \"reset\";\n break;\n }\n }\n }\n if (doubleClickConfig === \"autosize\") {\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n if (!ax.fixedrange) attrs[ax._name + \".autorange\"] = true;\n }\n } else if (doubleClickConfig === \"reset\") {\n if (xActive || links.isSubplotConstrained) axList = axList.concat(links.xaxes);\n if (yActive && !links.isSubplotConstrained) axList = axList.concat(links.yaxes);\n if (links.isSubplotConstrained) {\n if (!xActive) axList = axList.concat(xaxes);\n else if (!yActive) axList = axList.concat(yaxes);\n }\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n if (!ax.fixedrange) {\n var axName = ax._name;\n var autorangeInitial = ax._autorangeInitial;\n if (ax._rangeInitial0 === void 0 && ax._rangeInitial1 === void 0) {\n attrs[axName + \".autorange\"] = true;\n } else if (ax._rangeInitial0 === void 0) {\n attrs[axName + \".autorange\"] = autorangeInitial;\n attrs[axName + \".range\"] = [null, ax._rangeInitial1];\n } else if (ax._rangeInitial1 === void 0) {\n attrs[axName + \".range\"] = [ax._rangeInitial0, null];\n attrs[axName + \".autorange\"] = autorangeInitial;\n } else {\n attrs[axName + \".range\"] = [ax._rangeInitial0, ax._rangeInitial1];\n }\n }\n }\n }\n gd.emit(\"plotly_doubleclick\", null);\n Registry.call(\"_guiRelayout\", gd, attrs);\n }\n function dragTail() {\n updateSubplots([0, 0, pw, ph]);\n Lib.syncOrAsync([\n Plots.previousPromises,\n function() {\n gd._fullLayout._replotting = false;\n Registry.call(\"_guiRelayout\", gd, updates);\n }\n ], gd);\n }\n function updateSubplots(viewBox) {\n var fullLayout = gd._fullLayout;\n var plotinfos = fullLayout._plots;\n var subplots = fullLayout._subplots.cartesian;\n var i, sp, xa, ya;\n if (hasSplom) {\n Registry.subplotsRegistry.splom.drag(gd);\n }\n if (hasScatterGl) {\n for (i = 0; i < subplots.length; i++) {\n sp = plotinfos[subplots[i]];\n xa = sp.xaxis;\n ya = sp.yaxis;\n if (sp._scene) {\n if (xa.limitRange) xa.limitRange();\n if (ya.limitRange) ya.limitRange();\n var xrng = Lib.simpleMap(xa.range, xa.r2l);\n var yrng = Lib.simpleMap(ya.range, ya.r2l);\n sp._scene.update({ range: [xrng[0], yrng[0], xrng[1], yrng[1]] });\n }\n }\n }\n if (hasSplom || hasScatterGl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n if (hasSVG) {\n var xScaleFactor = viewBox[2] / xa0._length;\n var yScaleFactor = viewBox[3] / ya0._length;\n for (i = 0; i < subplots.length; i++) {\n sp = plotinfos[subplots[i]];\n xa = sp.xaxis;\n ya = sp.yaxis;\n var editX2 = (editX || matches.isSubplotConstrained) && !xa.fixedrange && xaHash[xa._id];\n var editY2 = (editY || matches.isSubplotConstrained) && !ya.fixedrange && yaHash[ya._id];\n var xScaleFactor2, yScaleFactor2;\n var clipDx, clipDy;\n if (editX2) {\n xScaleFactor2 = xScaleFactor;\n clipDx = ew || matches.isSubplotConstrained ? viewBox[0] : getShift(xa, xScaleFactor2);\n } else if (matches.xaHash[xa._id]) {\n xScaleFactor2 = xScaleFactor;\n clipDx = viewBox[0] * xa._length / xa0._length;\n } else if (matches.yaHash[xa._id]) {\n xScaleFactor2 = yScaleFactor;\n clipDx = yActive === \"ns\" ? -viewBox[1] * xa._length / ya0._length : getShift(xa, xScaleFactor2, { n: \"top\", s: \"bottom\" }[yActive]);\n } else {\n xScaleFactor2 = getLinkedScaleFactor(xa, xScaleFactor, yScaleFactor);\n clipDx = scaleAndGetShift(xa, xScaleFactor2);\n }\n if (xScaleFactor2 > 1 && (xa.maxallowed !== void 0 && editX === (xa.range[0] < xa.range[1] ? \"e\" : \"w\") || xa.minallowed !== void 0 && editX === (xa.range[0] < xa.range[1] ? \"w\" : \"e\"))) {\n xScaleFactor2 = 1;\n clipDx = 0;\n }\n if (editY2) {\n yScaleFactor2 = yScaleFactor;\n clipDy = ns || matches.isSubplotConstrained ? viewBox[1] : getShift(ya, yScaleFactor2);\n } else if (matches.yaHash[ya._id]) {\n yScaleFactor2 = yScaleFactor;\n clipDy = viewBox[1] * ya._length / ya0._length;\n } else if (matches.xaHash[ya._id]) {\n yScaleFactor2 = xScaleFactor;\n clipDy = xActive === \"ew\" ? -viewBox[0] * ya._length / xa0._length : getShift(ya, yScaleFactor2, { e: \"right\", w: \"left\" }[xActive]);\n } else {\n yScaleFactor2 = getLinkedScaleFactor(ya, xScaleFactor, yScaleFactor);\n clipDy = scaleAndGetShift(ya, yScaleFactor2);\n }\n if (yScaleFactor2 > 1 && (ya.maxallowed !== void 0 && editY === (ya.range[0] < ya.range[1] ? \"n\" : \"s\") || ya.minallowed !== void 0 && editY === (ya.range[0] < ya.range[1] ? \"s\" : \"n\"))) {\n yScaleFactor2 = 1;\n clipDy = 0;\n }\n if (!xScaleFactor2 && !yScaleFactor2) {\n continue;\n }\n if (!xScaleFactor2) xScaleFactor2 = 1;\n if (!yScaleFactor2) yScaleFactor2 = 1;\n var plotDx = xa._offset - clipDx / xScaleFactor2;\n var plotDy = ya._offset - clipDy / yScaleFactor2;\n sp.clipRect.call(Drawing.setTranslate, clipDx, clipDy).call(Drawing.setScale, xScaleFactor2, yScaleFactor2);\n sp.plot.call(Drawing.setTranslate, plotDx, plotDy).call(Drawing.setScale, 1 / xScaleFactor2, 1 / yScaleFactor2);\n if (xScaleFactor2 !== sp.xScaleFactor || yScaleFactor2 !== sp.yScaleFactor) {\n Drawing.setPointGroupScale(sp.zoomScalePts, xScaleFactor2, yScaleFactor2);\n Drawing.setTextPointsScale(sp.zoomScaleTxt, xScaleFactor2, yScaleFactor2);\n }\n Drawing.hideOutsideRangePoints(sp.clipOnAxisFalseTraces, sp);\n sp.xScaleFactor = xScaleFactor2;\n sp.yScaleFactor = yScaleFactor2;\n }\n }\n }\n function getLinkedScaleFactor(ax, xScaleFactor, yScaleFactor) {\n if (ax.fixedrange) return 0;\n if (editX && links.xaHash[ax._id]) {\n return xScaleFactor;\n }\n if (editY && (links.isSubplotConstrained ? links.xaHash : links.yaHash)[ax._id]) {\n return yScaleFactor;\n }\n return 0;\n }\n function scaleAndGetShift(ax, scaleFactor) {\n if (scaleFactor) {\n ax.range = ax._r.slice();\n scaleZoom(ax, scaleFactor);\n return getShift(ax, scaleFactor);\n }\n return 0;\n }\n function getShift(ax, scaleFactor, from) {\n return ax._length * (1 - scaleFactor) * FROM_TL[from || ax.constraintoward || \"middle\"];\n }\n return dragger;\n }\n function makeDragger(plotinfo, nodeName, dragClass, cursor) {\n var dragger3 = Lib.ensureSingle(plotinfo.draglayer, nodeName, dragClass, function(s) {\n s.classed(\"drag\", true).style({ fill: \"transparent\", \"stroke-width\": 0 }).attr(\"data-subplot\", plotinfo.id);\n });\n dragger3.call(setCursor, cursor);\n return dragger3.node();\n }\n function makeRectDragger(plotinfo, dragClass, cursor, x, y, w, h) {\n var dragger = makeDragger(plotinfo, \"rect\", dragClass, cursor);\n d3.select(dragger).call(Drawing.setRect, x, y, w, h);\n return dragger;\n }\n function isDirectionActive(axList, activeVal) {\n for (var i = 0; i < axList.length; i++) {\n if (!axList[i].fixedrange) return activeVal;\n }\n return \"\";\n }\n function getEndText(ax, end) {\n var initialVal = ax.range[end];\n var diff = Math.abs(initialVal - ax.range[1 - end]);\n var dig;\n if (ax.type === \"date\") {\n return initialVal;\n } else if (ax.type === \"log\") {\n dig = Math.ceil(Math.max(0, -Math.log(diff) / Math.LN10)) + 3;\n return numberFormat(\".\" + dig + \"g\")(Math.pow(10, initialVal));\n } else {\n dig = Math.floor(Math.log(Math.abs(initialVal)) / Math.LN10) - Math.floor(Math.log(diff) / Math.LN10) + 4;\n return numberFormat(\".\" + String(dig) + \"g\")(initialVal);\n }\n }\n function zoomAxRanges(axList, r0Fraction, r1Fraction, updates, linkedAxes) {\n for (var i = 0; i < axList.length; i++) {\n var axi = axList[i];\n if (axi.fixedrange) continue;\n if (axi.rangebreaks) {\n var isY = axi._id.charAt(0) === \"y\";\n var r0F = isY ? 1 - r0Fraction : r0Fraction;\n var r1F = isY ? 1 - r1Fraction : r1Fraction;\n updates[axi._name + \".range[0]\"] = axi.l2r(axi.p2l(r0F * axi._length));\n updates[axi._name + \".range[1]\"] = axi.l2r(axi.p2l(r1F * axi._length));\n } else {\n var axRangeLinear0 = axi._rl[0];\n var axRangeLinearSpan = axi._rl[1] - axRangeLinear0;\n updates[axi._name + \".range[0]\"] = axi.l2r(axRangeLinear0 + axRangeLinearSpan * r0Fraction);\n updates[axi._name + \".range[1]\"] = axi.l2r(axRangeLinear0 + axRangeLinearSpan * r1Fraction);\n }\n }\n if (linkedAxes && linkedAxes.length) {\n var linkedR0Fraction = (r0Fraction + (1 - r1Fraction)) / 2;\n zoomAxRanges(linkedAxes, linkedR0Fraction, 1 - linkedR0Fraction, updates, []);\n }\n }\n function dragAxList(axList, pix) {\n for (var i = 0; i < axList.length; i++) {\n var axi = axList[i];\n if (!axi.fixedrange) {\n if (axi.rangebreaks) {\n var p0 = 0;\n var p1 = axi._length;\n var d0 = axi.p2l(p0 + pix) - axi.p2l(p0);\n var d1 = axi.p2l(p1 + pix) - axi.p2l(p1);\n var delta = (d0 + d1) / 2;\n axi.range = [\n axi.l2r(axi._rl[0] - delta),\n axi.l2r(axi._rl[1] - delta)\n ];\n } else {\n axi.range = [\n axi.l2r(axi._rl[0] - pix / axi._m),\n axi.l2r(axi._rl[1] - pix / axi._m)\n ];\n }\n if (axi.limitRange) axi.limitRange();\n }\n }\n }\n function dZoom(d) {\n return 1 - (d >= 0 ? Math.min(d, 0.9) : 1 / (1 / Math.max(d, -0.3) + 3.222));\n }\n function getDragCursor(nsew, dragmode, isMainDrag) {\n if (!nsew) return \"pointer\";\n if (nsew === \"nsew\") {\n if (isMainDrag) return \"\";\n if (dragmode === \"pan\") return \"move\";\n return \"crosshair\";\n }\n return nsew.toLowerCase() + \"-resize\";\n }\n function makeZoombox(zoomlayer, lum, xs, ys, path0) {\n return zoomlayer.append(\"path\").attr(\"class\", \"zoombox\").style({\n fill: lum > 0.2 ? \"rgba(0,0,0,0)\" : \"rgba(255,255,255,0)\",\n \"stroke-width\": 0\n }).attr(\"transform\", strTranslate(xs, ys)).attr(\"d\", path0 + \"Z\");\n }\n function makeCorners(zoomlayer, xs, ys) {\n return zoomlayer.append(\"path\").attr(\"class\", \"zoombox-corners\").style({\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": 1,\n opacity: 0\n }).attr(\"transform\", strTranslate(xs, ys)).attr(\"d\", \"M0,0Z\");\n }\n function updateZoombox(zb, corners, box, path0, dimmed, lum) {\n zb.attr(\n \"d\",\n path0 + \"M\" + box.l + \",\" + box.t + \"v\" + box.h + \"h\" + box.w + \"v-\" + box.h + \"h-\" + box.w + \"Z\"\n );\n transitionZoombox(zb, corners, dimmed, lum);\n }\n function transitionZoombox(zb, corners, dimmed, lum) {\n if (!dimmed) {\n zb.transition().style(\"fill\", lum > 0.2 ? \"rgba(0,0,0,0.4)\" : \"rgba(255,255,255,0.3)\").duration(200);\n corners.transition().style(\"opacity\", 1).duration(200);\n }\n }\n function removeZoombox(gd) {\n d3.select(gd).selectAll(\".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners\").remove();\n }\n function showDoubleClickNotifier(gd) {\n if (SHOWZOOMOUTTIP && gd.data && gd._context.showTips) {\n Lib.notifier(Lib._(gd, \"Double-click to zoom back out\"), \"long\");\n SHOWZOOMOUTTIP = false;\n }\n }\n function xCorners(box, y0) {\n return \"M\" + (box.l - 0.5) + \",\" + (y0 - MINZOOM - 0.5) + \"h-3v\" + (2 * MINZOOM + 1) + \"h3ZM\" + (box.r + 0.5) + \",\" + (y0 - MINZOOM - 0.5) + \"h3v\" + (2 * MINZOOM + 1) + \"h-3Z\";\n }\n function yCorners(box, x0) {\n return \"M\" + (x0 - MINZOOM - 0.5) + \",\" + (box.t - 0.5) + \"v-3h\" + (2 * MINZOOM + 1) + \"v3ZM\" + (x0 - MINZOOM - 0.5) + \",\" + (box.b + 0.5) + \"v3h\" + (2 * MINZOOM + 1) + \"v-3Z\";\n }\n function xyCorners(box) {\n var clen = Math.floor(Math.min(box.b - box.t, box.r - box.l, MINZOOM) / 2);\n return \"M\" + (box.l - 3.5) + \",\" + (box.t - 0.5 + clen) + \"h3v\" + -clen + \"h\" + clen + \"v-3h-\" + (clen + 3) + \"ZM\" + (box.r + 3.5) + \",\" + (box.t - 0.5 + clen) + \"h-3v\" + -clen + \"h\" + -clen + \"v-3h\" + (clen + 3) + \"ZM\" + (box.r + 3.5) + \",\" + (box.b + 0.5 - clen) + \"h-3v\" + clen + \"h\" + -clen + \"v3h\" + (clen + 3) + \"ZM\" + (box.l - 3.5) + \",\" + (box.b + 0.5 - clen) + \"h3v\" + clen + \"h\" + clen + \"v3h-\" + (clen + 3) + \"Z\";\n }\n function calcLinks(gd, groups, xaHash, yaHash, exclude) {\n var isSubplotConstrained = false;\n var xLinks = {};\n var yLinks = {};\n var xID, yID, xLinkID, yLinkID;\n var xExclude = (exclude || {}).xaHash;\n var yExclude = (exclude || {}).yaHash;\n for (var i = 0; i < groups.length; i++) {\n var group = groups[i];\n for (xID in xaHash) {\n if (group[xID]) {\n for (xLinkID in group) {\n if (!(exclude && (xExclude[xLinkID] || yExclude[xLinkID])) && !(xLinkID.charAt(0) === \"x\" ? xaHash : yaHash)[xLinkID]) {\n xLinks[xLinkID] = xID;\n }\n }\n for (yID in yaHash) {\n if (!(exclude && (xExclude[yID] || yExclude[yID])) && group[yID]) {\n isSubplotConstrained = true;\n }\n }\n }\n }\n for (yID in yaHash) {\n if (group[yID]) {\n for (yLinkID in group) {\n if (!(exclude && (xExclude[yLinkID] || yExclude[yLinkID])) && !(yLinkID.charAt(0) === \"x\" ? xaHash : yaHash)[yLinkID]) {\n yLinks[yLinkID] = yID;\n }\n }\n }\n }\n }\n if (isSubplotConstrained) {\n Lib.extendFlat(xLinks, yLinks);\n yLinks = {};\n }\n var xaHashLinked = {};\n var xaxesLinked = [];\n for (xLinkID in xLinks) {\n var xa = getFromId(gd, xLinkID);\n xaxesLinked.push(xa);\n xaHashLinked[xa._id] = xa;\n }\n var yaHashLinked = {};\n var yaxesLinked = [];\n for (yLinkID in yLinks) {\n var ya = getFromId(gd, yLinkID);\n yaxesLinked.push(ya);\n yaHashLinked[ya._id] = ya;\n }\n return {\n xaHash: xaHashLinked,\n yaHash: yaHashLinked,\n xaxes: xaxesLinked,\n yaxes: yaxesLinked,\n xLinks,\n yLinks,\n isSubplotConstrained\n };\n }\n function attachWheelEventHandler(element, handler) {\n if (!supportsPassive) {\n if (element.onwheel !== void 0) element.onwheel = handler;\n else if (element.onmousewheel !== void 0) element.onmousewheel = handler;\n else if (!element.isAddedWheelEvent) {\n element.isAddedWheelEvent = true;\n element.addEventListener(\"wheel\", handler, { passive: false });\n }\n } else {\n var wheelEventName = element.onwheel !== void 0 ? \"wheel\" : \"mousewheel\";\n if (element._onwheel) {\n element.removeEventListener(wheelEventName, element._onwheel);\n }\n element._onwheel = handler;\n element.addEventListener(wheelEventName, handler, { passive: false });\n }\n }\n function hashValues(hash) {\n var out = [];\n for (var k in hash) out.push(hash[k]);\n return out;\n }\n module.exports = {\n makeDragBox,\n makeDragger,\n makeRectDragger,\n makeZoombox,\n makeCorners,\n updateZoombox,\n xyCorners,\n transitionZoombox,\n removeZoombox,\n showDoubleClickNotifier,\n attachWheelEventHandler\n };\n }\n });\n\n // src/plots/cartesian/graph_interact.js\n var require_graph_interact = __commonJS({\n \"src/plots/cartesian/graph_interact.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Fx = require_fx();\n var dragElement = require_dragelement();\n var setCursor = require_setcursor();\n var makeDragBox = require_dragbox().makeDragBox;\n var DRAGGERSIZE = require_constants2().DRAGGERSIZE;\n exports.initInteractions = function initInteractions(gd) {\n var fullLayout = gd._fullLayout;\n if (gd._context.staticPlot) {\n d3.select(gd).selectAll(\".drag\").remove();\n return;\n }\n if (!fullLayout._has(\"cartesian\") && !fullLayout._has(\"splom\")) return;\n var subplots = Object.keys(fullLayout._plots || {}).sort(function(a, b) {\n if ((fullLayout._plots[a].mainplot && true) === (fullLayout._plots[b].mainplot && true)) {\n var aParts = a.split(\"y\");\n var bParts = b.split(\"y\");\n return aParts[0] === bParts[0] ? Number(aParts[1] || 1) - Number(bParts[1] || 1) : Number(aParts[0] || 1) - Number(bParts[0] || 1);\n }\n return fullLayout._plots[a].mainplot ? 1 : -1;\n });\n subplots.forEach(function(subplot) {\n var plotinfo = fullLayout._plots[subplot];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n if (!plotinfo.mainplot) {\n var maindrag = makeDragBox(\n gd,\n plotinfo,\n xa._offset,\n ya._offset,\n xa._length,\n ya._length,\n \"ns\",\n \"ew\"\n );\n maindrag.onmousemove = function(evt) {\n gd._fullLayout._rehover = function() {\n if (gd._fullLayout._hoversubplot === subplot && gd._fullLayout._plots[subplot]) {\n Fx.hover(gd, evt, subplot);\n }\n };\n Fx.hover(gd, evt, subplot);\n gd._fullLayout._lasthover = maindrag;\n gd._fullLayout._hoversubplot = subplot;\n };\n maindrag.onmouseout = function(evt) {\n if (gd._dragging) return;\n gd._fullLayout._hoversubplot = null;\n dragElement.unhover(gd, evt);\n };\n if (gd._context.showAxisDragHandles) {\n makeDragBox(\n gd,\n plotinfo,\n xa._offset - DRAGGERSIZE,\n ya._offset - DRAGGERSIZE,\n DRAGGERSIZE,\n DRAGGERSIZE,\n \"n\",\n \"w\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset + xa._length,\n ya._offset - DRAGGERSIZE,\n DRAGGERSIZE,\n DRAGGERSIZE,\n \"n\",\n \"e\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset - DRAGGERSIZE,\n ya._offset + ya._length,\n DRAGGERSIZE,\n DRAGGERSIZE,\n \"s\",\n \"w\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset + xa._length,\n ya._offset + ya._length,\n DRAGGERSIZE,\n DRAGGERSIZE,\n \"s\",\n \"e\"\n );\n }\n }\n if (gd._context.showAxisDragHandles) {\n if (subplot === xa._mainSubplot) {\n var y0 = xa._mainLinePosition;\n if (xa.side === \"top\") y0 -= DRAGGERSIZE;\n makeDragBox(\n gd,\n plotinfo,\n xa._offset + xa._length * 0.1,\n y0,\n xa._length * 0.8,\n DRAGGERSIZE,\n \"\",\n \"ew\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset,\n y0,\n xa._length * 0.1,\n DRAGGERSIZE,\n \"\",\n \"w\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset + xa._length * 0.9,\n y0,\n xa._length * 0.1,\n DRAGGERSIZE,\n \"\",\n \"e\"\n );\n }\n if (subplot === ya._mainSubplot) {\n var x0 = ya._mainLinePosition;\n if (ya.side !== \"right\") x0 -= DRAGGERSIZE;\n makeDragBox(\n gd,\n plotinfo,\n x0,\n ya._offset + ya._length * 0.1,\n DRAGGERSIZE,\n ya._length * 0.8,\n \"ns\",\n \"\"\n );\n makeDragBox(\n gd,\n plotinfo,\n x0,\n ya._offset + ya._length * 0.9,\n DRAGGERSIZE,\n ya._length * 0.1,\n \"s\",\n \"\"\n );\n makeDragBox(\n gd,\n plotinfo,\n x0,\n ya._offset,\n DRAGGERSIZE,\n ya._length * 0.1,\n \"n\",\n \"\"\n );\n }\n }\n });\n var hoverLayer = fullLayout._hoverlayer.node();\n hoverLayer.onmousemove = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.hover(gd, evt, fullLayout._hoversubplot);\n };\n hoverLayer.onclick = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.click(gd, evt);\n };\n hoverLayer.onmousedown = function(evt) {\n gd._fullLayout._lasthover.onmousedown(evt);\n };\n exports.updateFx(gd);\n };\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var cursor = fullLayout.dragmode === \"pan\" ? \"move\" : \"crosshair\";\n setCursor(fullLayout._draggers, cursor);\n };\n }\n });\n\n // src/plot_api/container_array_match.js\n var require_container_array_match = __commonJS({\n \"src/plot_api/container_array_match.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n module.exports = function containerArrayMatch(astr) {\n var rootContainers = Registry.layoutArrayContainers;\n var regexpContainers = Registry.layoutArrayRegexes;\n var rootPart = astr.split(\"[\")[0];\n var arrayStr;\n var match;\n for (var i = 0; i < regexpContainers.length; i++) {\n match = astr.match(regexpContainers[i]);\n if (match && match.index === 0) {\n arrayStr = match[0];\n break;\n }\n }\n if (!arrayStr) arrayStr = rootContainers[rootContainers.indexOf(rootPart)];\n if (!arrayStr) return false;\n var tail = astr.substr(arrayStr.length);\n if (!tail) return { array: arrayStr, index: \"\", property: \"\" };\n match = tail.match(/^\\[(0|[1-9][0-9]*)\\](\\.(.+))?$/);\n if (!match) return false;\n return { array: arrayStr, index: Number(match[1]), property: match[3] || \"\" };\n };\n }\n });\n\n // src/plot_api/manage_arrays.js\n var require_manage_arrays = __commonJS({\n \"src/plot_api/manage_arrays.js\"(exports) {\n \"use strict\";\n var isPlainObject = require_is_plain_object();\n var noop = require_noop();\n var Loggers = require_loggers();\n var sorterAsc = require_search().sorterAsc;\n var Registry = require_registry();\n exports.containerArrayMatch = require_container_array_match();\n var isAddVal = exports.isAddVal = function isAddVal2(val) {\n return val === \"add\" || isPlainObject(val);\n };\n var isRemoveVal = exports.isRemoveVal = function isRemoveVal2(val) {\n return val === null || val === \"remove\";\n };\n exports.applyContainerArrayChanges = function applyContainerArrayChanges(gd, np, edits, flags, _nestedProperty) {\n var componentType = np.astr;\n var supplyComponentDefaults = Registry.getComponentMethod(componentType, \"supplyLayoutDefaults\");\n var draw = Registry.getComponentMethod(componentType, \"draw\");\n var drawOne = Registry.getComponentMethod(componentType, \"drawOne\");\n var replotLater = flags.replot || flags.recalc || supplyComponentDefaults === noop || draw === noop;\n var layout = gd.layout;\n var fullLayout = gd._fullLayout;\n if (edits[\"\"]) {\n if (Object.keys(edits).length > 1) {\n Loggers.warn(\n \"Full array edits are incompatible with other edits\",\n componentType\n );\n }\n var fullVal = edits[\"\"][\"\"];\n if (isRemoveVal(fullVal)) np.set(null);\n else if (Array.isArray(fullVal)) np.set(fullVal);\n else {\n Loggers.warn(\"Unrecognized full array edit value\", componentType, fullVal);\n return true;\n }\n if (replotLater) return false;\n supplyComponentDefaults(layout, fullLayout);\n draw(gd);\n return true;\n }\n var componentNums = Object.keys(edits).map(Number).sort(sorterAsc);\n var componentArrayIn = np.get();\n var componentArray = componentArrayIn || [];\n var componentArrayFull = _nestedProperty(fullLayout, componentType).get();\n var deletes = [];\n var firstIndexChange = -1;\n var maxIndex = componentArray.length;\n var i;\n var j;\n var componentNum;\n var objEdits;\n var objKeys;\n var objVal;\n var adding, prefix;\n for (i = 0; i < componentNums.length; i++) {\n componentNum = componentNums[i];\n objEdits = edits[componentNum];\n objKeys = Object.keys(objEdits);\n objVal = objEdits[\"\"], adding = isAddVal(objVal);\n if (componentNum < 0 || componentNum > componentArray.length - (adding ? 0 : 1)) {\n Loggers.warn(\"index out of range\", componentType, componentNum);\n continue;\n }\n if (objVal !== void 0) {\n if (objKeys.length > 1) {\n Loggers.warn(\n \"Insertion & removal are incompatible with edits to the same index.\",\n componentType,\n componentNum\n );\n }\n if (isRemoveVal(objVal)) {\n deletes.push(componentNum);\n } else if (adding) {\n if (objVal === \"add\") objVal = {};\n componentArray.splice(componentNum, 0, objVal);\n if (componentArrayFull) componentArrayFull.splice(componentNum, 0, {});\n } else {\n Loggers.warn(\n \"Unrecognized full object edit value\",\n componentType,\n componentNum,\n objVal\n );\n }\n if (firstIndexChange === -1) firstIndexChange = componentNum;\n } else {\n for (j = 0; j < objKeys.length; j++) {\n prefix = componentType + \"[\" + componentNum + \"].\";\n _nestedProperty(componentArray[componentNum], objKeys[j], prefix).set(objEdits[objKeys[j]]);\n }\n }\n }\n for (i = deletes.length - 1; i >= 0; i--) {\n componentArray.splice(deletes[i], 1);\n if (componentArrayFull) componentArrayFull.splice(deletes[i], 1);\n }\n if (!componentArray.length) np.set(null);\n else if (!componentArrayIn) np.set(componentArray);\n if (replotLater) return false;\n supplyComponentDefaults(layout, fullLayout);\n if (drawOne !== noop) {\n var indicesToDraw;\n if (firstIndexChange === -1) {\n indicesToDraw = componentNums;\n } else {\n maxIndex = Math.max(componentArray.length, maxIndex);\n indicesToDraw = [];\n for (i = 0; i < componentNums.length; i++) {\n componentNum = componentNums[i];\n if (componentNum >= firstIndexChange) break;\n indicesToDraw.push(componentNum);\n }\n for (i = firstIndexChange; i < maxIndex; i++) {\n indicesToDraw.push(i);\n }\n }\n for (i = 0; i < indicesToDraw.length; i++) {\n drawOne(gd, indicesToDraw[i]);\n }\n } else draw(gd);\n return true;\n };\n }\n });\n\n // src/plot_api/helpers.js\n var require_helpers9 = __commonJS({\n \"src/plot_api/helpers.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var m4FromQuat = require_fromQuat();\n var Registry = require_registry();\n var Lib = require_lib();\n var Plots = require_plots();\n var AxisIds = require_axis_ids();\n var Color2 = require_color();\n var cleanId = AxisIds.cleanId;\n var getFromTrace = AxisIds.getFromTrace;\n var traceIs = Registry.traceIs;\n exports.clearPromiseQueue = function(gd) {\n if (Array.isArray(gd._promises) && gd._promises.length > 0) {\n Lib.log(\"Clearing previous rejected promises from queue.\");\n }\n gd._promises = [];\n };\n exports.cleanLayout = function(layout) {\n var i, j;\n if (!layout) layout = {};\n if (layout.xaxis1) {\n if (!layout.xaxis) layout.xaxis = layout.xaxis1;\n delete layout.xaxis1;\n }\n if (layout.yaxis1) {\n if (!layout.yaxis) layout.yaxis = layout.yaxis1;\n delete layout.yaxis1;\n }\n if (layout.scene1) {\n if (!layout.scene) layout.scene = layout.scene1;\n delete layout.scene1;\n }\n var axisAttrRegex = (Plots.subplotsRegistry.cartesian || {}).attrRegex;\n var polarAttrRegex = (Plots.subplotsRegistry.polar || {}).attrRegex;\n var ternaryAttrRegex = (Plots.subplotsRegistry.ternary || {}).attrRegex;\n var sceneAttrRegex = (Plots.subplotsRegistry.gl3d || {}).attrRegex;\n var keys = Object.keys(layout);\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (axisAttrRegex && axisAttrRegex.test(key)) {\n var ax = layout[key];\n if (ax.anchor && ax.anchor !== \"free\") {\n ax.anchor = cleanId(ax.anchor);\n }\n if (ax.overlaying) ax.overlaying = cleanId(ax.overlaying);\n if (!ax.type) {\n if (ax.isdate) ax.type = \"date\";\n else if (ax.islog) ax.type = \"log\";\n else if (ax.isdate === false && ax.islog === false) ax.type = \"linear\";\n }\n if (ax.autorange === \"withzero\" || ax.autorange === \"tozero\") {\n ax.autorange = true;\n ax.rangemode = \"tozero\";\n }\n if (ax.insiderange) delete ax.range;\n delete ax.islog;\n delete ax.isdate;\n delete ax.categories;\n if (emptyContainer(ax, \"domain\")) delete ax.domain;\n }\n }\n var annotationsLen = Array.isArray(layout.annotations) ? layout.annotations.length : 0;\n for (i = 0; i < annotationsLen; i++) {\n var ann = layout.annotations[i];\n if (!Lib.isPlainObject(ann)) continue;\n cleanAxRef(ann, \"xref\");\n cleanAxRef(ann, \"yref\");\n }\n var shapesLen = Array.isArray(layout.shapes) ? layout.shapes.length : 0;\n for (i = 0; i < shapesLen; i++) {\n var shape = layout.shapes[i];\n if (!Lib.isPlainObject(shape)) continue;\n cleanAxRef(shape, \"xref\");\n cleanAxRef(shape, \"yref\");\n }\n var imagesLen = Array.isArray(layout.images) ? layout.images.length : 0;\n for (i = 0; i < imagesLen; i++) {\n var image = layout.images[i];\n if (!Lib.isPlainObject(image)) continue;\n cleanAxRef(image, \"xref\");\n cleanAxRef(image, \"yref\");\n }\n var legend = layout.legend;\n if (legend) {\n if (legend.x > 3) {\n legend.x = 1.02;\n legend.xanchor = \"left\";\n } else if (legend.x < -2) {\n legend.x = -0.02;\n legend.xanchor = \"right\";\n }\n if (legend.y > 3) {\n legend.y = 1.02;\n legend.yanchor = \"bottom\";\n } else if (legend.y < -2) {\n legend.y = -0.02;\n legend.yanchor = \"top\";\n }\n }\n if (layout.dragmode === \"rotate\") layout.dragmode = \"orbit\";\n Color2.clean(layout);\n if (layout.template && layout.template.layout) {\n exports.cleanLayout(layout.template.layout);\n }\n return layout;\n };\n function cleanAxRef(container, attr) {\n var valIn = container[attr];\n var axLetter = attr.charAt(0);\n if (valIn && valIn !== \"paper\") {\n container[attr] = cleanId(valIn, axLetter, true);\n }\n }\n exports.cleanData = function(data) {\n for (var tracei = 0; tracei < data.length; tracei++) {\n var trace = data[tracei];\n var i;\n if (trace.type === \"histogramy\" && \"xbins\" in trace && !(\"ybins\" in trace)) {\n trace.ybins = trace.xbins;\n delete trace.xbins;\n }\n if (trace.type === \"histogramy\") exports.swapXYData(trace);\n if (trace.type === \"histogramx\" || trace.type === \"histogramy\") {\n trace.type = \"histogram\";\n }\n if (\"scl\" in trace && !(\"colorscale\" in trace)) {\n trace.colorscale = trace.scl;\n delete trace.scl;\n }\n if (\"reversescl\" in trace && !(\"reversescale\" in trace)) {\n trace.reversescale = trace.reversescl;\n delete trace.reversescl;\n }\n if (trace.xaxis) trace.xaxis = cleanId(trace.xaxis, \"x\");\n if (trace.yaxis) trace.yaxis = cleanId(trace.yaxis, \"y\");\n if (traceIs(trace, \"gl3d\") && trace.scene) {\n trace.scene = Plots.subplotsRegistry.gl3d.cleanId(trace.scene);\n }\n if (!traceIs(trace, \"pie-like\") && !traceIs(trace, \"bar-like\")) {\n if (Array.isArray(trace.textposition)) {\n for (i = 0; i < trace.textposition.length; i++) {\n trace.textposition[i] = cleanTextPosition(trace.textposition[i]);\n }\n } else if (trace.textposition) {\n trace.textposition = cleanTextPosition(trace.textposition);\n }\n }\n var _module = Registry.getModule(trace);\n if (_module && _module.colorbar) {\n var containerName = _module.colorbar.container;\n var container = containerName ? trace[containerName] : trace;\n if (container && container.colorscale) {\n if (container.colorscale === \"YIGnBu\") container.colorscale = \"YlGnBu\";\n if (container.colorscale === \"YIOrRd\") container.colorscale = \"YlOrRd\";\n }\n }\n if (trace.type === \"surface\" && Lib.isPlainObject(trace.contours)) {\n var dims = [\"x\", \"y\", \"z\"];\n for (i = 0; i < dims.length; i++) {\n var opts = trace.contours[dims[i]];\n if (!Lib.isPlainObject(opts)) continue;\n if (opts.highlightColor) {\n opts.highlightcolor = opts.highlightColor;\n delete opts.highlightColor;\n }\n if (opts.highlightWidth) {\n opts.highlightwidth = opts.highlightWidth;\n delete opts.highlightWidth;\n }\n }\n }\n if (trace.type === \"candlestick\" || trace.type === \"ohlc\") {\n var increasingShowlegend = (trace.increasing || {}).showlegend !== false;\n var decreasingShowlegend = (trace.decreasing || {}).showlegend !== false;\n var increasingName = cleanFinanceDir(trace.increasing);\n var decreasingName = cleanFinanceDir(trace.decreasing);\n if (increasingName !== false && decreasingName !== false) {\n var newName = commonPrefix(\n increasingName,\n decreasingName,\n increasingShowlegend,\n decreasingShowlegend\n );\n if (newName) trace.name = newName;\n } else if ((increasingName || decreasingName) && !trace.name) {\n trace.name = increasingName || decreasingName;\n }\n }\n if (emptyContainer(trace, \"line\")) delete trace.line;\n if (\"marker\" in trace) {\n if (emptyContainer(trace.marker, \"line\")) delete trace.marker.line;\n if (emptyContainer(trace, \"marker\")) delete trace.marker;\n }\n Color2.clean(trace);\n if (trace.autobinx) {\n delete trace.autobinx;\n delete trace.xbins;\n }\n if (trace.autobiny) {\n delete trace.autobiny;\n delete trace.ybins;\n }\n }\n };\n function cleanFinanceDir(dirContainer) {\n if (!Lib.isPlainObject(dirContainer)) return false;\n var dirName = dirContainer.name;\n delete dirContainer.name;\n delete dirContainer.showlegend;\n return (typeof dirName === \"string\" || typeof dirName === \"number\") && String(dirName);\n }\n function commonPrefix(name1, name2, show1, show2) {\n if (show1 && !show2) return name1;\n if (show2 && !show1) return name2;\n if (!name1.trim()) return name2;\n if (!name2.trim()) return name1;\n var minLen = Math.min(name1.length, name2.length);\n var i;\n for (i = 0; i < minLen; i++) {\n if (name1.charAt(i) !== name2.charAt(i)) break;\n }\n var out = name1.substr(0, i);\n return out.trim();\n }\n function cleanTextPosition(textposition) {\n var posY = \"middle\";\n var posX = \"center\";\n if (typeof textposition === \"string\") {\n if (textposition.indexOf(\"top\") !== -1) posY = \"top\";\n else if (textposition.indexOf(\"bottom\") !== -1) posY = \"bottom\";\n if (textposition.indexOf(\"left\") !== -1) posX = \"left\";\n else if (textposition.indexOf(\"right\") !== -1) posX = \"right\";\n }\n return posY + \" \" + posX;\n }\n function emptyContainer(outer, innerStr) {\n return innerStr in outer && typeof outer[innerStr] === \"object\" && Object.keys(outer[innerStr]).length === 0;\n }\n exports.swapXYData = function(trace) {\n var i;\n Lib.swapAttrs(trace, [\"?\", \"?0\", \"d?\", \"?bins\", \"nbins?\", \"autobin?\", \"?src\", \"error_?\"]);\n if (Array.isArray(trace.z) && Array.isArray(trace.z[0])) {\n if (trace.transpose) delete trace.transpose;\n else trace.transpose = true;\n }\n if (trace.error_x && trace.error_y) {\n var errorY = trace.error_y;\n var copyYstyle = \"copy_ystyle\" in errorY ? errorY.copy_ystyle : !(errorY.color || errorY.thickness || errorY.width);\n Lib.swapAttrs(trace, [\"error_?.copy_ystyle\"]);\n if (copyYstyle) {\n Lib.swapAttrs(trace, [\"error_?.color\", \"error_?.thickness\", \"error_?.width\"]);\n }\n }\n if (typeof trace.hoverinfo === \"string\") {\n var hoverInfoParts = trace.hoverinfo.split(\"+\");\n for (i = 0; i < hoverInfoParts.length; i++) {\n if (hoverInfoParts[i] === \"x\") hoverInfoParts[i] = \"y\";\n else if (hoverInfoParts[i] === \"y\") hoverInfoParts[i] = \"x\";\n }\n trace.hoverinfo = hoverInfoParts.join(\"+\");\n }\n };\n exports.coerceTraceIndices = function(gd, traceIndices) {\n if (isNumeric(traceIndices)) {\n return [traceIndices];\n } else if (!Array.isArray(traceIndices) || !traceIndices.length) {\n return gd.data.map(function(_, i2) {\n return i2;\n });\n } else if (Array.isArray(traceIndices)) {\n var traceIndicesOut = [];\n for (var i = 0; i < traceIndices.length; i++) {\n if (Lib.isIndex(traceIndices[i], gd.data.length)) {\n traceIndicesOut.push(traceIndices[i]);\n } else {\n Lib.warn(\"trace index (\", traceIndices[i], \") is not a number or is out of bounds\");\n }\n }\n return traceIndicesOut;\n }\n return traceIndices;\n };\n exports.manageArrayContainers = function(np, newVal, undoit) {\n var obj = np.obj;\n var parts = np.parts;\n var pLength = parts.length;\n var pLast = parts[pLength - 1];\n var pLastIsNumber = isNumeric(pLast);\n if (pLastIsNumber && newVal === null) {\n var contPath = parts.slice(0, pLength - 1).join(\".\");\n var cont = Lib.nestedProperty(obj, contPath).get();\n cont.splice(pLast, 1);\n } else if (pLastIsNumber && np.get() === void 0) {\n if (np.get() === void 0) undoit[np.astr] = null;\n np.set(newVal);\n } else {\n np.set(newVal);\n }\n };\n var ATTR_TAIL_RE = /(\\.[^\\[\\]\\.]+|\\[[^\\[\\]\\.]+\\])$/;\n function getParent(attr) {\n var tail = attr.search(ATTR_TAIL_RE);\n if (tail > 0) return attr.substr(0, tail);\n }\n exports.hasParent = function(aobj, attr) {\n var attrParent = getParent(attr);\n while (attrParent) {\n if (attrParent in aobj) return true;\n attrParent = getParent(attrParent);\n }\n return false;\n };\n var axLetters = [\"x\", \"y\", \"z\"];\n exports.clearAxisTypes = function(gd, traces, layoutUpdate) {\n for (var i = 0; i < traces.length; i++) {\n var trace = gd._fullData[i];\n for (var j = 0; j < 3; j++) {\n var ax = getFromTrace(gd, trace, axLetters[j]);\n if (ax && ax.type !== \"log\") {\n var axAttr = ax._name;\n var sceneName = ax._id.substr(1);\n if (sceneName.substr(0, 5) === \"scene\") {\n if (layoutUpdate[sceneName] !== void 0) continue;\n axAttr = sceneName + \".\" + axAttr;\n }\n var typeAttr = axAttr + \".type\";\n if (layoutUpdate[axAttr] === void 0 && layoutUpdate[typeAttr] === void 0) {\n Lib.nestedProperty(gd.layout, typeAttr).set(null);\n }\n }\n }\n }\n };\n }\n });\n\n // src/plot_api/plot_api.js\n var require_plot_api = __commonJS({\n \"src/plot_api/plot_api.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var hasHover = require_has_hover();\n var Lib = require_lib();\n var nestedProperty = Lib.nestedProperty;\n var Events = require_events2();\n var Queue = require_queue();\n var Registry = require_registry();\n var PlotSchema = require_plot_schema();\n var Plots = require_plots();\n var Axes = require_axes();\n var handleRangeDefaults = require_range_defaults();\n var cartesianLayoutAttributes = require_layout_attributes4();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var initInteractions = require_graph_interact().initInteractions;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var clearOutline = require_selections().clearOutline;\n var dfltConfig = require_plot_config().dfltConfig;\n var manageArrays = require_manage_arrays();\n var helpers = require_helpers9();\n var subroutines = require_subroutines();\n var editTypes = require_edit_types();\n var AX_NAME_PATTERN = require_constants2().AX_NAME_PATTERN;\n var numericNameWarningCount = 0;\n var numericNameWarningCountLimit = 5;\n function _doPlot(gd, data, layout, config) {\n var frames;\n gd = Lib.getGraphDiv(gd);\n Events.init(gd);\n if (Lib.isPlainObject(data)) {\n var obj = data;\n data = obj.data;\n layout = obj.layout;\n config = obj.config;\n frames = obj.frames;\n }\n var okToPlot = Events.triggerHandler(gd, \"plotly_beforeplot\", [data, layout, config]);\n if (okToPlot === false) return Promise.reject();\n if (!data && !layout && !Lib.isPlotDiv(gd)) {\n Lib.warn(\"Calling _doPlot as if redrawing but this container doesn't yet have a plot.\", gd);\n }\n function addFrames2() {\n if (frames) {\n return exports.addFrames(gd, frames);\n }\n }\n setPlotContext(gd, config);\n if (!layout) layout = {};\n d3.select(gd).classed(\"js-plotly-plot\", true);\n Drawing.makeTester();\n if (!Array.isArray(gd._promises)) gd._promises = [];\n var graphWasEmpty = (gd.data || []).length === 0 && Array.isArray(data);\n if (Array.isArray(data)) {\n helpers.cleanData(data);\n if (graphWasEmpty) gd.data = data;\n else gd.data.push.apply(gd.data, data);\n gd.empty = false;\n }\n if (!gd.layout || graphWasEmpty) {\n gd.layout = helpers.cleanLayout(layout);\n }\n Plots.supplyDefaults(gd);\n var fullLayout = gd._fullLayout;\n var hasCartesian = fullLayout._has(\"cartesian\");\n fullLayout._replotting = true;\n if (graphWasEmpty || fullLayout._shouldCreateBgLayer) {\n makePlotFramework(gd);\n if (fullLayout._shouldCreateBgLayer) {\n delete fullLayout._shouldCreateBgLayer;\n }\n }\n Drawing.initGradients(gd);\n Drawing.initPatterns(gd);\n if (graphWasEmpty) Axes.saveShowSpikeInitial(gd);\n var recalc = !gd.calcdata || gd.calcdata.length !== (gd._fullData || []).length;\n if (recalc) Plots.doCalcdata(gd);\n for (var i = 0; i < gd.calcdata.length; i++) {\n gd.calcdata[i][0].trace = gd._fullData[i];\n }\n if (gd._context.responsive) {\n if (!gd._responsiveChartHandler) {\n gd._responsiveChartHandler = function() {\n if (!Lib.isHidden(gd)) Plots.resize(gd);\n };\n window.addEventListener(\"resize\", gd._responsiveChartHandler);\n }\n } else {\n Lib.clearResponsive(gd);\n }\n var oldMargins = Lib.extendFlat({}, fullLayout._size);\n var drawFrameworkCalls = 0;\n function drawFramework() {\n var basePlotModules = fullLayout._basePlotModules;\n for (var i2 = 0; i2 < basePlotModules.length; i2++) {\n if (basePlotModules[i2].drawFramework) {\n basePlotModules[i2].drawFramework(gd);\n }\n }\n if (!fullLayout._glcanvas && fullLayout._has(\"gl\")) {\n fullLayout._glcanvas = fullLayout._glcontainer.selectAll(\".gl-canvas\").data([{\n key: \"contextLayer\",\n context: true,\n pick: false\n }, {\n key: \"focusLayer\",\n context: false,\n pick: false\n }, {\n key: \"pickLayer\",\n context: false,\n pick: true\n }], function(d) {\n return d.key;\n });\n fullLayout._glcanvas.enter().append(\"canvas\").attr(\"class\", function(d) {\n return \"gl-canvas gl-canvas-\" + d.key.replace(\"Layer\", \"\");\n }).style({\n position: \"absolute\",\n top: 0,\n left: 0,\n overflow: \"visible\",\n \"pointer-events\": \"none\"\n });\n }\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n if (fullLayout._glcanvas) {\n fullLayout._glcanvas.attr(\"width\", fullLayout.width * plotGlPixelRatio).attr(\"height\", fullLayout.height * plotGlPixelRatio).style(\"width\", fullLayout.width + \"px\").style(\"height\", fullLayout.height + \"px\");\n var regl = fullLayout._glcanvas.data()[0].regl;\n if (regl) {\n if (Math.floor(fullLayout.width * plotGlPixelRatio) !== regl._gl.drawingBufferWidth || Math.floor(fullLayout.height * plotGlPixelRatio) !== regl._gl.drawingBufferHeight) {\n var msg = \"WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.\";\n if (drawFrameworkCalls) {\n Lib.error(msg);\n } else {\n Lib.log(msg + \" Clearing graph and plotting again.\");\n Plots.cleanPlot([], {}, gd._fullData, fullLayout);\n Plots.supplyDefaults(gd);\n fullLayout = gd._fullLayout;\n Plots.doCalcdata(gd);\n drawFrameworkCalls++;\n return drawFramework();\n }\n }\n }\n }\n if (fullLayout.modebar.orientation === \"h\") {\n fullLayout._modebardiv.style(\"height\", null).style(\"width\", \"100%\");\n } else {\n fullLayout._modebardiv.style(\"width\", null).style(\"height\", fullLayout.height + \"px\");\n }\n return Plots.previousPromises(gd);\n }\n function marginPushers() {\n Plots.clearAutoMarginIds(gd);\n subroutines.drawMarginPushers(gd);\n Axes.allowAutoMargin(gd);\n if (gd._fullLayout.title.text && gd._fullLayout.title.automargin) Plots.allowAutoMargin(gd, \"title.automargin\");\n if (fullLayout._has(\"pie\")) {\n var fullData = gd._fullData;\n for (var i2 = 0; i2 < fullData.length; i2++) {\n var trace = fullData[i2];\n if (trace.type === \"pie\" && trace.automargin) {\n Plots.allowAutoMargin(gd, \"pie.\" + trace.uid + \".automargin\");\n }\n }\n }\n Plots.doAutoMargin(gd);\n return Plots.previousPromises(gd);\n }\n function marginPushersAgain() {\n if (!Plots.didMarginChange(oldMargins, fullLayout._size)) return;\n return Lib.syncOrAsync([\n marginPushers,\n subroutines.layoutStyles\n ], gd);\n }\n function positionAndAutorange() {\n if (!recalc) {\n doAutoRangeAndConstraints();\n return;\n }\n return Lib.syncOrAsync([\n Registry.getComponentMethod(\"shapes\", \"calcAutorange\"),\n Registry.getComponentMethod(\"annotations\", \"calcAutorange\"),\n doAutoRangeAndConstraints\n ], gd);\n }\n function doAutoRangeAndConstraints() {\n if (gd._transitioning) return;\n subroutines.doAutoRangeAndConstraints(gd);\n if (graphWasEmpty) Axes.saveRangeInitial(gd);\n Registry.getComponentMethod(\"rangeslider\", \"calcAutorange\")(gd);\n }\n function drawAxes() {\n return Axes.draw(gd, graphWasEmpty ? \"\" : \"redraw\");\n }\n var seq = [\n Plots.previousPromises,\n addFrames2,\n drawFramework,\n marginPushers,\n marginPushersAgain\n ];\n if (hasCartesian) seq.push(positionAndAutorange);\n seq.push(subroutines.layoutStyles);\n if (hasCartesian) {\n seq.push(\n drawAxes,\n function insideTickLabelsAutorange(gd2) {\n var insideTickLabelsUpdaterange = gd2._fullLayout._insideTickLabelsUpdaterange;\n if (insideTickLabelsUpdaterange) {\n gd2._fullLayout._insideTickLabelsUpdaterange = void 0;\n return relayout(gd2, insideTickLabelsUpdaterange).then(function() {\n Axes.saveRangeInitial(gd2, true);\n });\n }\n }\n );\n }\n seq.push(\n subroutines.drawData,\n subroutines.finalDraw,\n initInteractions,\n Plots.addLinks,\n Plots.rehover,\n Plots.redrag,\n Plots.reselect,\n // TODO: doAutoMargin is only needed here for axis automargin, which\n // happens outside of marginPushers where all the other automargins are\n // calculated. Would be much better to separate margin calculations from\n // component drawing - see https://github.com/plotly/plotly.js/issues/2704\n Plots.doAutoMargin,\n Plots.previousPromises\n );\n var plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve();\n return plotDone.then(function() {\n emitAfterPlot(gd);\n return gd;\n });\n }\n function emitAfterPlot(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout._redrawFromAutoMarginCount) {\n fullLayout._redrawFromAutoMarginCount--;\n } else {\n gd.emit(\"plotly_afterplot\");\n }\n }\n function setPlotConfig(obj) {\n return Lib.extendFlat(dfltConfig, obj);\n }\n function setBackground(gd, bgColor) {\n try {\n gd._fullLayout._paper.style(\"background\", bgColor);\n } catch (e) {\n Lib.error(e);\n }\n }\n function opaqueSetBackground(gd, bgColor) {\n var blend = Color2.combine(bgColor, \"white\");\n setBackground(gd, blend);\n }\n function setPlotContext(gd, config) {\n if (!gd._context) {\n gd._context = Lib.extendDeep({}, dfltConfig);\n var base = d3.select(\"base\");\n gd._context._baseUrl = base.size() && base.attr(\"href\") ? window.location.href.split(\"#\")[0] : \"\";\n }\n var context = gd._context;\n var i, keys, key;\n if (config) {\n keys = Object.keys(config);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n if (key === \"editable\" || key === \"edits\") continue;\n if (key in context) {\n if (key === \"setBackground\" && config[key] === \"opaque\") {\n context[key] = opaqueSetBackground;\n } else {\n context[key] = config[key];\n }\n }\n }\n var editable = config.editable;\n if (editable !== void 0) {\n context.editable = editable;\n keys = Object.keys(context.edits);\n for (i = 0; i < keys.length; i++) {\n context.edits[keys[i]] = editable;\n }\n }\n if (config.edits) {\n keys = Object.keys(config.edits);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n if (key in context.edits) {\n context.edits[key] = config.edits[key];\n }\n }\n }\n context._exportedPlot = config._exportedPlot;\n }\n if (context.staticPlot) {\n context.editable = false;\n context.edits = {};\n context.autosizable = false;\n context.scrollZoom = false;\n context.doubleClick = false;\n context.showTips = false;\n context.showLink = false;\n context.displayModeBar = false;\n }\n if (context.displayModeBar === \"hover\" && !hasHover) {\n context.displayModeBar = true;\n }\n if (context.setBackground === \"transparent\" || typeof context.setBackground !== \"function\") {\n context.setBackground = setBackground;\n }\n context._hasZeroHeight = context._hasZeroHeight || gd.clientHeight === 0;\n context._hasZeroWidth = context._hasZeroWidth || gd.clientWidth === 0;\n var szIn = context.scrollZoom;\n var szOut = context._scrollZoom = {};\n if (szIn === true) {\n szOut.cartesian = 1;\n szOut.gl3d = 1;\n szOut.geo = 1;\n szOut.mapbox = 1;\n szOut.map = 1;\n } else if (typeof szIn === \"string\") {\n var parts = szIn.split(\"+\");\n for (i = 0; i < parts.length; i++) {\n szOut[parts[i]] = 1;\n }\n } else if (szIn !== false) {\n szOut.gl3d = 1;\n szOut.geo = 1;\n szOut.mapbox = 1;\n szOut.map = 1;\n }\n }\n function redraw(gd) {\n gd = Lib.getGraphDiv(gd);\n if (!Lib.isPlotDiv(gd)) {\n throw new Error(\"This element is not a Plotly plot: \" + gd);\n }\n helpers.cleanData(gd.data);\n helpers.cleanLayout(gd.layout);\n gd.calcdata = void 0;\n return exports._doPlot(gd).then(function() {\n gd.emit(\"plotly_redraw\");\n return gd;\n });\n }\n function newPlot(gd, data, layout, config) {\n gd = Lib.getGraphDiv(gd);\n Plots.cleanPlot([], {}, gd._fullData || [], gd._fullLayout || {});\n Plots.purge(gd);\n return exports._doPlot(gd, data, layout, config);\n }\n function positivifyIndices(indices, maxIndex) {\n var parentLength = maxIndex + 1;\n var positiveIndices = [];\n var i;\n var index;\n for (i = 0; i < indices.length; i++) {\n index = indices[i];\n if (index < 0) {\n positiveIndices.push(parentLength + index);\n } else {\n positiveIndices.push(index);\n }\n }\n return positiveIndices;\n }\n function assertIndexArray(gd, indices, arrayName) {\n var i, index;\n for (i = 0; i < indices.length; i++) {\n index = indices[i];\n if (index !== parseInt(index, 10)) {\n throw new Error(\"all values in \" + arrayName + \" must be integers\");\n }\n if (index >= gd.data.length || index < -gd.data.length) {\n throw new Error(arrayName + \" must be valid indices for gd.data.\");\n }\n if (indices.indexOf(index, i + 1) > -1 || index >= 0 && indices.indexOf(-gd.data.length + index) > -1 || index < 0 && indices.indexOf(gd.data.length + index) > -1) {\n throw new Error(\"each index in \" + arrayName + \" must be unique.\");\n }\n }\n }\n function checkMoveTracesArgs(gd, currentIndices, newIndices) {\n if (!Array.isArray(gd.data)) {\n throw new Error(\"gd.data must be an array.\");\n }\n if (typeof currentIndices === \"undefined\") {\n throw new Error(\"currentIndices is a required argument.\");\n } else if (!Array.isArray(currentIndices)) {\n currentIndices = [currentIndices];\n }\n assertIndexArray(gd, currentIndices, \"currentIndices\");\n if (typeof newIndices !== \"undefined\" && !Array.isArray(newIndices)) {\n newIndices = [newIndices];\n }\n if (typeof newIndices !== \"undefined\") {\n assertIndexArray(gd, newIndices, \"newIndices\");\n }\n if (typeof newIndices !== \"undefined\" && currentIndices.length !== newIndices.length) {\n throw new Error(\"current and new indices must be of equal length.\");\n }\n }\n function checkAddTracesArgs(gd, traces, newIndices) {\n var i, value;\n if (!Array.isArray(gd.data)) {\n throw new Error(\"gd.data must be an array.\");\n }\n if (typeof traces === \"undefined\") {\n throw new Error(\"traces must be defined.\");\n }\n if (!Array.isArray(traces)) {\n traces = [traces];\n }\n for (i = 0; i < traces.length; i++) {\n value = traces[i];\n if (typeof value !== \"object\" || (Array.isArray(value) || value === null)) {\n throw new Error(\"all values in traces array must be non-array objects\");\n }\n }\n if (typeof newIndices !== \"undefined\" && !Array.isArray(newIndices)) {\n newIndices = [newIndices];\n }\n if (typeof newIndices !== \"undefined\" && newIndices.length !== traces.length) {\n throw new Error(\n \"if indices is specified, traces.length must equal indices.length\"\n );\n }\n }\n function assertExtendTracesArgs(gd, update2, indices, maxPoints) {\n var maxPointsIsObject = Lib.isPlainObject(maxPoints);\n if (!Array.isArray(gd.data)) {\n throw new Error(\"gd.data must be an array\");\n }\n if (!Lib.isPlainObject(update2)) {\n throw new Error(\"update must be a key:value object\");\n }\n if (typeof indices === \"undefined\") {\n throw new Error(\"indices must be an integer or array of integers\");\n }\n assertIndexArray(gd, indices, \"indices\");\n for (var key in update2) {\n if (!Array.isArray(update2[key]) || update2[key].length !== indices.length) {\n throw new Error(\"attribute \" + key + \" must be an array of length equal to indices array length\");\n }\n if (maxPointsIsObject && (!(key in maxPoints) || !Array.isArray(maxPoints[key]) || maxPoints[key].length !== update2[key].length)) {\n throw new Error(\"when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object\");\n }\n }\n }\n function getExtendProperties(gd, update2, indices, maxPoints) {\n var maxPointsIsObject = Lib.isPlainObject(maxPoints);\n var updateProps = [];\n var trace, target, prop, insert, maxp;\n if (!Array.isArray(indices)) indices = [indices];\n indices = positivifyIndices(indices, gd.data.length - 1);\n for (var key in update2) {\n for (var j = 0; j < indices.length; j++) {\n trace = gd.data[indices[j]];\n prop = nestedProperty(trace, key);\n target = prop.get();\n insert = update2[key][j];\n if (!Lib.isArrayOrTypedArray(insert)) {\n throw new Error(\"attribute: \" + key + \" index: \" + j + \" must be an array\");\n }\n if (!Lib.isArrayOrTypedArray(target)) {\n throw new Error(\"cannot extend missing or non-array attribute: \" + key);\n }\n if (target.constructor !== insert.constructor) {\n throw new Error(\"cannot extend array with an array of a different type: \" + key);\n }\n maxp = maxPointsIsObject ? maxPoints[key][j] : maxPoints;\n if (!isNumeric(maxp)) maxp = -1;\n updateProps.push({\n prop,\n target,\n insert,\n maxp: Math.floor(maxp)\n });\n }\n }\n return updateProps;\n }\n function spliceTraces(gd, update2, indices, maxPoints, updateArray) {\n assertExtendTracesArgs(gd, update2, indices, maxPoints);\n var updateProps = getExtendProperties(gd, update2, indices, maxPoints);\n var undoUpdate = {};\n var undoPoints = {};\n for (var i = 0; i < updateProps.length; i++) {\n var prop = updateProps[i].prop;\n var maxp = updateProps[i].maxp;\n var out = updateArray(updateProps[i].target, updateProps[i].insert, maxp);\n prop.set(out[0]);\n if (!Array.isArray(undoUpdate[prop.astr])) undoUpdate[prop.astr] = [];\n undoUpdate[prop.astr].push(out[1]);\n if (!Array.isArray(undoPoints[prop.astr])) undoPoints[prop.astr] = [];\n undoPoints[prop.astr].push(updateProps[i].target.length);\n }\n return { update: undoUpdate, maxPoints: undoPoints };\n }\n function concatTypedArray(arr0, arr1) {\n var arr2 = new arr0.constructor(arr0.length + arr1.length);\n arr2.set(arr0);\n arr2.set(arr1, arr0.length);\n return arr2;\n }\n function extendTraces(gd, update2, indices, maxPoints) {\n gd = Lib.getGraphDiv(gd);\n function updateArray(target, insert, maxp) {\n var newArray, remainder;\n if (Lib.isTypedArray(target)) {\n if (maxp < 0) {\n var none = new target.constructor(0);\n var both = concatTypedArray(target, insert);\n if (maxp < 0) {\n newArray = both;\n remainder = none;\n } else {\n newArray = none;\n remainder = both;\n }\n } else {\n newArray = new target.constructor(maxp);\n remainder = new target.constructor(target.length + insert.length - maxp);\n if (maxp === insert.length) {\n newArray.set(insert);\n remainder.set(target);\n } else if (maxp < insert.length) {\n var numberOfItemsFromInsert = insert.length - maxp;\n newArray.set(insert.subarray(numberOfItemsFromInsert));\n remainder.set(target);\n remainder.set(insert.subarray(0, numberOfItemsFromInsert), target.length);\n } else {\n var numberOfItemsFromTarget = maxp - insert.length;\n var targetBegin = target.length - numberOfItemsFromTarget;\n newArray.set(target.subarray(targetBegin));\n newArray.set(insert, numberOfItemsFromTarget);\n remainder.set(target.subarray(0, targetBegin));\n }\n }\n } else {\n newArray = target.concat(insert);\n remainder = maxp >= 0 && maxp < newArray.length ? newArray.splice(0, newArray.length - maxp) : [];\n }\n return [newArray, remainder];\n }\n var undo = spliceTraces(gd, update2, indices, maxPoints, updateArray);\n var promise = exports.redraw(gd);\n var undoArgs = [gd, undo.update, indices, undo.maxPoints];\n Queue.add(gd, exports.prependTraces, undoArgs, extendTraces, arguments);\n return promise;\n }\n function prependTraces(gd, update2, indices, maxPoints) {\n gd = Lib.getGraphDiv(gd);\n function updateArray(target, insert, maxp) {\n var newArray, remainder;\n if (Lib.isTypedArray(target)) {\n if (maxp <= 0) {\n var none = new target.constructor(0);\n var both = concatTypedArray(insert, target);\n if (maxp < 0) {\n newArray = both;\n remainder = none;\n } else {\n newArray = none;\n remainder = both;\n }\n } else {\n newArray = new target.constructor(maxp);\n remainder = new target.constructor(target.length + insert.length - maxp);\n if (maxp === insert.length) {\n newArray.set(insert);\n remainder.set(target);\n } else if (maxp < insert.length) {\n var numberOfItemsFromInsert = insert.length - maxp;\n newArray.set(insert.subarray(0, numberOfItemsFromInsert));\n remainder.set(insert.subarray(numberOfItemsFromInsert));\n remainder.set(target, numberOfItemsFromInsert);\n } else {\n var numberOfItemsFromTarget = maxp - insert.length;\n newArray.set(insert);\n newArray.set(target.subarray(0, numberOfItemsFromTarget), insert.length);\n remainder.set(target.subarray(numberOfItemsFromTarget));\n }\n }\n } else {\n newArray = insert.concat(target);\n remainder = maxp >= 0 && maxp < newArray.length ? newArray.splice(maxp, newArray.length) : [];\n }\n return [newArray, remainder];\n }\n var undo = spliceTraces(gd, update2, indices, maxPoints, updateArray);\n var promise = exports.redraw(gd);\n var undoArgs = [gd, undo.update, indices, undo.maxPoints];\n Queue.add(gd, exports.extendTraces, undoArgs, prependTraces, arguments);\n return promise;\n }\n function addTraces(gd, traces, newIndices) {\n gd = Lib.getGraphDiv(gd);\n var currentIndices = [];\n var undoFunc = exports.deleteTraces;\n var redoFunc = addTraces;\n var undoArgs = [gd, currentIndices];\n var redoArgs = [gd, traces];\n var i;\n var promise;\n checkAddTracesArgs(gd, traces, newIndices);\n if (!Array.isArray(traces)) {\n traces = [traces];\n }\n traces = traces.map(function(trace) {\n return Lib.extendFlat({}, trace);\n });\n helpers.cleanData(traces);\n for (i = 0; i < traces.length; i++) {\n gd.data.push(traces[i]);\n }\n for (i = 0; i < traces.length; i++) {\n currentIndices.push(-traces.length + i);\n }\n if (typeof newIndices === \"undefined\") {\n promise = exports.redraw(gd);\n Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return promise;\n }\n if (!Array.isArray(newIndices)) {\n newIndices = [newIndices];\n }\n try {\n checkMoveTracesArgs(gd, currentIndices, newIndices);\n } catch (error) {\n gd.data.splice(gd.data.length - traces.length, traces.length);\n throw error;\n }\n Queue.startSequence(gd);\n Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n promise = exports.moveTraces(gd, currentIndices, newIndices);\n Queue.stopSequence(gd);\n return promise;\n }\n function deleteTraces(gd, indices) {\n gd = Lib.getGraphDiv(gd);\n var traces = [];\n var undoFunc = exports.addTraces;\n var redoFunc = deleteTraces;\n var undoArgs = [gd, traces, indices];\n var redoArgs = [gd, indices];\n var i;\n var deletedTrace;\n if (typeof indices === \"undefined\") {\n throw new Error(\"indices must be an integer or array of integers.\");\n } else if (!Array.isArray(indices)) {\n indices = [indices];\n }\n assertIndexArray(gd, indices, \"indices\");\n indices = positivifyIndices(indices, gd.data.length - 1);\n indices.sort(Lib.sorterDes);\n for (i = 0; i < indices.length; i += 1) {\n deletedTrace = gd.data.splice(indices[i], 1)[0];\n traces.push(deletedTrace);\n }\n var promise = exports.redraw(gd);\n Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return promise;\n }\n function moveTraces(gd, currentIndices, newIndices) {\n gd = Lib.getGraphDiv(gd);\n var newData = [];\n var movingTraceMap = [];\n var undoFunc = moveTraces;\n var redoFunc = moveTraces;\n var undoArgs = [gd, newIndices, currentIndices];\n var redoArgs = [gd, currentIndices, newIndices];\n var i;\n checkMoveTracesArgs(gd, currentIndices, newIndices);\n currentIndices = Array.isArray(currentIndices) ? currentIndices : [currentIndices];\n if (typeof newIndices === \"undefined\") {\n newIndices = [];\n for (i = 0; i < currentIndices.length; i++) {\n newIndices.push(-currentIndices.length + i);\n }\n }\n newIndices = Array.isArray(newIndices) ? newIndices : [newIndices];\n currentIndices = positivifyIndices(currentIndices, gd.data.length - 1);\n newIndices = positivifyIndices(newIndices, gd.data.length - 1);\n for (i = 0; i < gd.data.length; i++) {\n if (currentIndices.indexOf(i) === -1) {\n newData.push(gd.data[i]);\n }\n }\n for (i = 0; i < currentIndices.length; i++) {\n movingTraceMap.push({ newIndex: newIndices[i], trace: gd.data[currentIndices[i]] });\n }\n movingTraceMap.sort(function(a, b) {\n return a.newIndex - b.newIndex;\n });\n for (i = 0; i < movingTraceMap.length; i += 1) {\n newData.splice(movingTraceMap[i].newIndex, 0, movingTraceMap[i].trace);\n }\n gd.data = newData;\n var promise = exports.redraw(gd);\n Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return promise;\n }\n function restyle(gd, astr, val, _traces) {\n gd = Lib.getGraphDiv(gd);\n helpers.clearPromiseQueue(gd);\n var aobj = {};\n if (typeof astr === \"string\") aobj[astr] = val;\n else if (Lib.isPlainObject(astr)) {\n aobj = Lib.extendFlat({}, astr);\n if (_traces === void 0) _traces = val;\n } else {\n Lib.warn(\"Restyle fail.\", astr, val, _traces);\n return Promise.reject();\n }\n if (Object.keys(aobj).length) gd.changed = true;\n var traces = helpers.coerceTraceIndices(gd, _traces);\n var specs = _restyle(gd, aobj, traces);\n var flags = specs.flags;\n if (flags.calc) gd.calcdata = void 0;\n if (flags.clearAxisTypes) helpers.clearAxisTypes(gd, traces, {});\n var seq = [];\n if (flags.fullReplot) {\n seq.push(exports._doPlot);\n } else {\n seq.push(Plots.previousPromises);\n Plots.supplyDefaults(gd);\n if (flags.markerSize) {\n Plots.doCalcdata(gd);\n addAxRangeSequence(seq);\n }\n if (flags.style) seq.push(subroutines.doTraceStyle);\n if (flags.colorbars) seq.push(subroutines.doColorBars);\n seq.push(emitAfterPlot);\n }\n seq.push(\n Plots.rehover,\n Plots.redrag,\n Plots.reselect\n );\n Queue.add(\n gd,\n restyle,\n [gd, specs.undoit, specs.traces],\n restyle,\n [gd, specs.redoit, specs.traces]\n );\n var plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve();\n return plotDone.then(function() {\n gd.emit(\"plotly_restyle\", specs.eventData);\n return gd;\n });\n }\n function undefinedToNull(val) {\n if (val === void 0) return null;\n return val;\n }\n function makeNP(preGUI, guiEditFlag) {\n if (!guiEditFlag) return nestedProperty;\n return function(container, attr, prefix) {\n var np = nestedProperty(container, attr);\n var npSet = np.set;\n np.set = function(val) {\n var fullAttr = (prefix || \"\") + attr;\n storeCurrent(fullAttr, np.get(), val, preGUI);\n npSet(val);\n };\n return np;\n };\n }\n function storeCurrent(attr, val, newVal, preGUI) {\n if (Array.isArray(val) || Array.isArray(newVal)) {\n var arrayVal = Array.isArray(val) ? val : [];\n var arrayNew = Array.isArray(newVal) ? newVal : [];\n var maxLen = Math.max(arrayVal.length, arrayNew.length);\n for (var i = 0; i < maxLen; i++) {\n storeCurrent(attr + \"[\" + i + \"]\", arrayVal[i], arrayNew[i], preGUI);\n }\n } else if (Lib.isPlainObject(val) || Lib.isPlainObject(newVal)) {\n var objVal = Lib.isPlainObject(val) ? val : {};\n var objNew = Lib.isPlainObject(newVal) ? newVal : {};\n var objBoth = Lib.extendFlat({}, objVal, objNew);\n for (var key in objBoth) {\n storeCurrent(attr + \".\" + key, objVal[key], objNew[key], preGUI);\n }\n } else if (preGUI[attr] === void 0) {\n preGUI[attr] = undefinedToNull(val);\n }\n }\n function _storeDirectGUIEdit(container, preGUI, edits) {\n for (var attr in edits) {\n var np = nestedProperty(container, attr);\n storeCurrent(attr, np.get(), edits[attr], preGUI);\n }\n }\n function _restyle(gd, aobj, traces) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var data = gd.data;\n var guiEditFlag = fullLayout._guiEditing;\n var layoutNP = makeNP(fullLayout._preGUI, guiEditFlag);\n var eventData = Lib.extendDeepAll({}, aobj);\n var i;\n var flags = editTypes.traceFlags();\n var redoit = {};\n var undoit = {};\n var axlist;\n function a0() {\n return traces.map(function() {\n return void 0;\n });\n }\n function addToAxlist(axid) {\n var axName = Axes.id2name(axid);\n if (axlist.indexOf(axName) === -1) axlist.push(axName);\n }\n function autorangeAttr(axName) {\n return \"LAYOUT\" + axName + \".autorange\";\n }\n function rangeAttr(axName) {\n return \"LAYOUT\" + axName + \".range\";\n }\n function getFullTrace(traceIndex) {\n for (var j = traceIndex; j < fullData.length; j++) {\n if (fullData[j]._input === data[traceIndex]) return fullData[j];\n }\n }\n function doextra(attr, val, i2) {\n if (Array.isArray(attr)) {\n attr.forEach(function(a) {\n doextra(a, val, i2);\n });\n return;\n }\n if (attr in aobj || helpers.hasParent(aobj, attr)) return;\n var extraparam;\n if (attr.substr(0, 6) === \"LAYOUT\") {\n extraparam = layoutNP(gd.layout, attr.replace(\"LAYOUT\", \"\"));\n } else {\n var tracei = traces[i2];\n var preGUI2 = fullLayout._tracePreGUI[getFullTrace(tracei)._fullInput.uid];\n extraparam = makeNP(preGUI2, guiEditFlag)(data[tracei], attr);\n }\n if (!(attr in undoit)) {\n undoit[attr] = a0();\n }\n if (undoit[attr][i2] === void 0) {\n undoit[attr][i2] = undefinedToNull(extraparam.get());\n }\n if (val !== void 0) {\n extraparam.set(val);\n }\n }\n function allBins(binAttr) {\n return function(j) {\n return fullData[j][binAttr];\n };\n }\n function arrayBins(binAttr) {\n return function(vij, j) {\n return vij === false ? fullData[traces[j]][binAttr] : null;\n };\n }\n for (var ai in aobj) {\n if (helpers.hasParent(aobj, ai)) {\n throw new Error(\"cannot set \" + ai + \" and a parent attribute simultaneously\");\n }\n var vi = aobj[ai];\n var cont;\n var contFull;\n var param;\n var oldVal;\n var newVal;\n var valObject;\n if (ai === \"autobinx\" || ai === \"autobiny\") {\n ai = ai.charAt(ai.length - 1) + \"bins\";\n if (Array.isArray(vi)) vi = vi.map(arrayBins(ai));\n else if (vi === false) vi = traces.map(allBins(ai));\n else vi = null;\n }\n redoit[ai] = vi;\n if (ai.substr(0, 6) === \"LAYOUT\") {\n param = layoutNP(gd.layout, ai.replace(\"LAYOUT\", \"\"));\n undoit[ai] = [undefinedToNull(param.get())];\n param.set(Array.isArray(vi) ? vi[0] : vi);\n flags.calc = true;\n continue;\n }\n undoit[ai] = a0();\n for (i = 0; i < traces.length; i++) {\n cont = data[traces[i]];\n contFull = getFullTrace(traces[i]);\n var preGUI = fullLayout._tracePreGUI[contFull._fullInput.uid];\n param = makeNP(preGUI, guiEditFlag)(cont, ai);\n oldVal = param.get();\n newVal = Array.isArray(vi) ? vi[i % vi.length] : vi;\n if (newVal === void 0) continue;\n var finalPart = param.parts[param.parts.length - 1];\n var prefix = ai.substr(0, ai.length - finalPart.length - 1);\n var prefixDot = prefix ? prefix + \".\" : \"\";\n var innerContFull = prefix ? nestedProperty(contFull, prefix).get() : contFull;\n valObject = PlotSchema.getTraceValObject(contFull, param.parts);\n if (valObject && valObject.impliedEdits && newVal !== null) {\n for (var impliedKey in valObject.impliedEdits) {\n doextra(Lib.relativeAttr(ai, impliedKey), valObject.impliedEdits[impliedKey], i);\n }\n } else if ((finalPart === \"thicknessmode\" || finalPart === \"lenmode\") && oldVal !== newVal && (newVal === \"fraction\" || newVal === \"pixels\") && innerContFull) {\n var gs = fullLayout._size;\n var orient = innerContFull.orient;\n var topOrBottom = orient === \"top\" || orient === \"bottom\";\n if (finalPart === \"thicknessmode\") {\n var thicknorm = topOrBottom ? gs.h : gs.w;\n doextra(prefixDot + \"thickness\", innerContFull.thickness * (newVal === \"fraction\" ? 1 / thicknorm : thicknorm), i);\n } else {\n var lennorm = topOrBottom ? gs.w : gs.h;\n doextra(prefixDot + \"len\", innerContFull.len * (newVal === \"fraction\" ? 1 / lennorm : lennorm), i);\n }\n } else if (ai === \"type\" && (newVal === \"pie\" !== (oldVal === \"pie\") || newVal === \"funnelarea\" !== (oldVal === \"funnelarea\"))) {\n var labelsTo = \"x\";\n var valuesTo = \"y\";\n if ((newVal === \"bar\" || oldVal === \"bar\") && cont.orientation === \"h\") {\n labelsTo = \"y\";\n valuesTo = \"x\";\n }\n Lib.swapAttrs(cont, [\"?\", \"?src\"], \"labels\", labelsTo);\n Lib.swapAttrs(cont, [\"d?\", \"?0\"], \"label\", labelsTo);\n Lib.swapAttrs(cont, [\"?\", \"?src\"], \"values\", valuesTo);\n if (oldVal === \"pie\" || oldVal === \"funnelarea\") {\n nestedProperty(cont, \"marker.color\").set(nestedProperty(cont, \"marker.colors\").get());\n fullLayout._pielayer.selectAll(\"g.trace\").remove();\n } else if (Registry.traceIs(cont, \"cartesian\")) {\n nestedProperty(cont, \"marker.colors\").set(nestedProperty(cont, \"marker.color\").get());\n }\n }\n undoit[ai][i] = undefinedToNull(oldVal);\n var swapAttrs = [\n \"swapxy\",\n \"swapxyaxes\",\n \"orientation\",\n \"orientationaxes\"\n ];\n if (swapAttrs.indexOf(ai) !== -1) {\n if (ai === \"orientation\") {\n param.set(newVal);\n var defaultOrientation = cont.x && !cont.y ? \"h\" : \"v\";\n if ((param.get() || defaultOrientation) === contFull.orientation) {\n continue;\n }\n } else if (ai === \"orientationaxes\") {\n cont.orientation = { v: \"h\", h: \"v\" }[contFull.orientation];\n }\n helpers.swapXYData(cont);\n flags.calc = flags.clearAxisTypes = true;\n } else if (Plots.dataArrayContainers.indexOf(param.parts[0]) !== -1) {\n helpers.manageArrayContainers(param, newVal, undoit);\n flags.calc = true;\n } else {\n if (valObject) {\n if (valObject.arrayOk && !Registry.traceIs(contFull, \"regl\") && (Lib.isArrayOrTypedArray(newVal) || Lib.isArrayOrTypedArray(oldVal))) {\n flags.calc = true;\n } else editTypes.update(flags, valObject);\n } else {\n flags.calc = true;\n }\n param.set(newVal);\n }\n }\n if ([\"swapxyaxes\", \"orientationaxes\"].indexOf(ai) !== -1) {\n Axes.swap(gd, traces);\n }\n if (ai === \"orientationaxes\") {\n var hovermode = nestedProperty(gd.layout, \"hovermode\");\n var h = hovermode.get();\n if (h === \"x\") {\n hovermode.set(\"y\");\n } else if (h === \"y\") {\n hovermode.set(\"x\");\n } else if (h === \"x unified\") {\n hovermode.set(\"y unified\");\n } else if (h === \"y unified\") {\n hovermode.set(\"x unified\");\n }\n }\n if ([\"orientation\", \"type\"].indexOf(ai) !== -1) {\n axlist = [];\n for (i = 0; i < traces.length; i++) {\n var trace = data[traces[i]];\n if (Registry.traceIs(trace, \"cartesian\")) {\n addToAxlist(trace.xaxis || \"x\");\n addToAxlist(trace.yaxis || \"y\");\n }\n }\n doextra(axlist.map(autorangeAttr), true, 0);\n doextra(axlist.map(rangeAttr), [0, 1], 0);\n }\n }\n if (flags.calc || flags.plot) {\n flags.fullReplot = true;\n }\n return {\n flags,\n undoit,\n redoit,\n traces,\n eventData: Lib.extendDeepNoArrays([], [eventData, traces])\n };\n }\n function relayout(gd, astr, val) {\n gd = Lib.getGraphDiv(gd);\n helpers.clearPromiseQueue(gd);\n var aobj = {};\n if (typeof astr === \"string\") {\n aobj[astr] = val;\n } else if (Lib.isPlainObject(astr)) {\n aobj = Lib.extendFlat({}, astr);\n } else {\n Lib.warn(\"Relayout fail.\", astr, val);\n return Promise.reject();\n }\n if (Object.keys(aobj).length) gd.changed = true;\n var specs = _relayout(gd, aobj);\n var flags = specs.flags;\n if (flags.calc) gd.calcdata = void 0;\n var seq = [Plots.previousPromises];\n if (flags.layoutReplot) {\n seq.push(subroutines.layoutReplot);\n } else if (Object.keys(aobj).length) {\n axRangeSupplyDefaultsByPass(gd, flags, specs) || Plots.supplyDefaults(gd);\n if (flags.legend) seq.push(subroutines.doLegend);\n if (flags.layoutstyle) seq.push(subroutines.layoutStyles);\n if (flags.axrange) addAxRangeSequence(seq, specs.rangesAltered);\n if (flags.ticks) seq.push(subroutines.doTicksRelayout);\n if (flags.modebar) seq.push(subroutines.doModeBar);\n if (flags.camera) seq.push(subroutines.doCamera);\n if (flags.colorbars) seq.push(subroutines.doColorBars);\n seq.push(emitAfterPlot);\n }\n seq.push(\n Plots.rehover,\n Plots.redrag,\n Plots.reselect\n );\n Queue.add(\n gd,\n relayout,\n [gd, specs.undoit],\n relayout,\n [gd, specs.redoit]\n );\n var plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve(gd);\n return plotDone.then(function() {\n gd.emit(\"plotly_relayout\", specs.eventData);\n return gd;\n });\n }\n function axRangeSupplyDefaultsByPass(gd, flags, specs) {\n var fullLayout = gd._fullLayout;\n if (!flags.axrange) return false;\n for (var k in flags) {\n if (k !== \"axrange\" && flags[k]) return false;\n }\n var axIn, axOut;\n var coerce = function(attr, dflt) {\n return Lib.coerce(axIn, axOut, cartesianLayoutAttributes, attr, dflt);\n };\n var options = {};\n for (var axId in specs.rangesAltered) {\n var axName = Axes.id2name(axId);\n axIn = gd.layout[axName];\n axOut = fullLayout[axName];\n handleRangeDefaults(axIn, axOut, coerce, options);\n if (axOut._matchGroup) {\n for (var axId2 in axOut._matchGroup) {\n if (axId2 !== axId) {\n var ax2 = fullLayout[Axes.id2name(axId2)];\n ax2.autorange = axOut.autorange;\n ax2.range = axOut.range.slice();\n ax2._input.range = axOut.range.slice();\n }\n }\n }\n }\n return true;\n }\n function addAxRangeSequence(seq, rangesAltered) {\n var drawAxes = rangesAltered ? function(gd) {\n var axIds = [];\n var skipTitle = true;\n for (var id in rangesAltered) {\n var ax = Axes.getFromId(gd, id);\n axIds.push(id);\n if ((ax.ticklabelposition || \"\").indexOf(\"inside\") !== -1) {\n if (ax._anchorAxis) {\n axIds.push(ax._anchorAxis._id);\n }\n }\n if (ax._matchGroup) {\n for (var id2 in ax._matchGroup) {\n if (!rangesAltered[id2]) {\n axIds.push(id2);\n }\n }\n }\n }\n return Axes.draw(gd, axIds, { skipTitle });\n } : function(gd) {\n return Axes.draw(gd, \"redraw\");\n };\n seq.push(\n clearOutline,\n subroutines.doAutoRangeAndConstraints,\n drawAxes,\n subroutines.drawData,\n subroutines.finalDraw\n );\n }\n var AX_RANGE_RE = /^[xyz]axis[0-9]*\\.range(\\[[0|1]\\])?$/;\n var AX_AUTORANGE_RE = /^[xyz]axis[0-9]*\\.autorange$/;\n var AX_DOMAIN_RE = /^[xyz]axis[0-9]*\\.domain(\\[[0|1]\\])?$/;\n function _relayout(gd, aobj) {\n var layout = gd.layout;\n var fullLayout = gd._fullLayout;\n var guiEditFlag = fullLayout._guiEditing;\n var layoutNP = makeNP(fullLayout._preGUI, guiEditFlag);\n var keys = Object.keys(aobj);\n var axes = Axes.list(gd);\n var eventData = Lib.extendDeepAll({}, aobj);\n var arrayEdits = {};\n var arrayStr, i, j;\n keys = Object.keys(aobj);\n for (i = 0; i < keys.length; i++) {\n if (keys[i].indexOf(\"allaxes\") === 0) {\n for (j = 0; j < axes.length; j++) {\n var scene = axes[j]._id.substr(1);\n var axisAttr = scene.indexOf(\"scene\") !== -1 ? scene + \".\" : \"\";\n var newkey = keys[i].replace(\"allaxes\", axisAttr + axes[j]._name);\n if (!aobj[newkey]) aobj[newkey] = aobj[keys[i]];\n }\n delete aobj[keys[i]];\n }\n }\n var flags = editTypes.layoutFlags();\n var redoit = {};\n var undoit = {};\n function doextra(attr, val) {\n if (Array.isArray(attr)) {\n attr.forEach(function(a) {\n doextra(a, val);\n });\n return;\n }\n if (attr in aobj || helpers.hasParent(aobj, attr)) return;\n var p2 = layoutNP(layout, attr);\n if (!(attr in undoit)) {\n undoit[attr] = undefinedToNull(p2.get());\n }\n if (val !== void 0) p2.set(val);\n }\n var rangesAltered = {};\n var ax;\n function recordAlteredAxis(pleafPlus2) {\n var axId2 = Axes.name2id(pleafPlus2.split(\".\")[0]);\n rangesAltered[axId2] = 1;\n return axId2;\n }\n for (var ai in aobj) {\n if (helpers.hasParent(aobj, ai)) {\n throw new Error(\"cannot set \" + ai + \" and a parent attribute simultaneously\");\n }\n var p = layoutNP(layout, ai);\n var vi = aobj[ai];\n var plen = p.parts.length;\n var pend = plen - 1;\n while (pend > 0 && typeof p.parts[pend] !== \"string\") pend--;\n var pleaf = p.parts[pend];\n var pleafPlus = p.parts[pend - 1] + \".\" + pleaf;\n var ptrunk = p.parts.slice(0, pend).join(\".\");\n var parentIn = nestedProperty(gd.layout, ptrunk).get();\n var parentFull = nestedProperty(fullLayout, ptrunk).get();\n var vOld = p.get();\n if (vi === void 0) continue;\n redoit[ai] = vi;\n undoit[ai] = pleaf === \"reverse\" ? vi : undefinedToNull(vOld);\n var valObject = PlotSchema.getLayoutValObject(fullLayout, p.parts);\n if (valObject && valObject.impliedEdits && vi !== null) {\n for (var impliedKey in valObject.impliedEdits) {\n doextra(Lib.relativeAttr(ai, impliedKey), valObject.impliedEdits[impliedKey]);\n }\n }\n if ([\"width\", \"height\"].indexOf(ai) !== -1) {\n if (vi) {\n doextra(\"autosize\", null);\n var oppositeAttr = ai === \"height\" ? \"width\" : \"height\";\n doextra(oppositeAttr, fullLayout[oppositeAttr]);\n } else {\n fullLayout[ai] = gd._initialAutoSize[ai];\n }\n } else if (ai === \"autosize\") {\n doextra(\"width\", vi ? null : fullLayout.width);\n doextra(\"height\", vi ? null : fullLayout.height);\n } else if (pleafPlus.match(AX_RANGE_RE)) {\n recordAlteredAxis(pleafPlus);\n nestedProperty(fullLayout, ptrunk + \"._inputRange\").set(null);\n } else if (pleafPlus.match(AX_AUTORANGE_RE)) {\n recordAlteredAxis(pleafPlus);\n nestedProperty(fullLayout, ptrunk + \"._inputRange\").set(null);\n var axFull = nestedProperty(fullLayout, ptrunk).get();\n if (axFull._inputDomain) {\n axFull._input.domain = axFull._inputDomain.slice();\n }\n } else if (pleafPlus.match(AX_DOMAIN_RE)) {\n nestedProperty(fullLayout, ptrunk + \"._inputDomain\").set(null);\n }\n if (pleaf === \"type\") {\n ax = parentIn;\n var toLog = parentFull.type === \"linear\" && vi === \"log\";\n var fromLog = parentFull.type === \"log\" && vi === \"linear\";\n if (toLog || fromLog) {\n if (!ax || !ax.range) {\n doextra(ptrunk + \".autorange\", true);\n } else if (!parentFull.autorange) {\n var r0 = ax.range[0];\n var r1 = ax.range[1];\n if (toLog) {\n if (r0 <= 0 && r1 <= 0) {\n doextra(ptrunk + \".autorange\", true);\n }\n if (r0 <= 0) r0 = r1 / 1e6;\n else if (r1 <= 0) r1 = r0 / 1e6;\n doextra(ptrunk + \".range[0]\", Math.log(r0) / Math.LN10);\n doextra(ptrunk + \".range[1]\", Math.log(r1) / Math.LN10);\n } else {\n doextra(ptrunk + \".range[0]\", Math.pow(10, r0));\n doextra(ptrunk + \".range[1]\", Math.pow(10, r1));\n }\n } else if (toLog) {\n ax.range = ax.range[1] > ax.range[0] ? [1, 2] : [2, 1];\n }\n if (Array.isArray(fullLayout._subplots.polar) && fullLayout._subplots.polar.length && fullLayout[p.parts[0]] && p.parts[1] === \"radialaxis\") {\n delete fullLayout[p.parts[0]]._subplot.viewInitial[\"radialaxis.range\"];\n }\n Registry.getComponentMethod(\"annotations\", \"convertCoords\")(gd, parentFull, vi, doextra);\n Registry.getComponentMethod(\"images\", \"convertCoords\")(gd, parentFull, vi, doextra);\n } else {\n doextra(ptrunk + \".autorange\", true);\n doextra(ptrunk + \".range\", null);\n }\n nestedProperty(fullLayout, ptrunk + \"._inputRange\").set(null);\n } else if (pleaf.match(AX_NAME_PATTERN)) {\n var fullProp = nestedProperty(fullLayout, ai).get();\n var newType = (vi || {}).type;\n if (!newType || newType === \"-\") newType = \"linear\";\n Registry.getComponentMethod(\"annotations\", \"convertCoords\")(gd, fullProp, newType, doextra);\n Registry.getComponentMethod(\"images\", \"convertCoords\")(gd, fullProp, newType, doextra);\n }\n var containerArrayMatch = manageArrays.containerArrayMatch(ai);\n if (containerArrayMatch) {\n arrayStr = containerArrayMatch.array;\n i = containerArrayMatch.index;\n var propStr = containerArrayMatch.property;\n var updateValObject = valObject || { editType: \"calc\" };\n if (i !== \"\" && propStr === \"\") {\n if (manageArrays.isAddVal(vi)) {\n undoit[ai] = null;\n } else if (manageArrays.isRemoveVal(vi)) {\n undoit[ai] = (nestedProperty(layout, arrayStr).get() || [])[i];\n } else {\n Lib.warn(\"unrecognized full object value\", aobj);\n }\n }\n editTypes.update(flags, updateValObject);\n if (!arrayEdits[arrayStr]) arrayEdits[arrayStr] = {};\n var objEdits = arrayEdits[arrayStr][i];\n if (!objEdits) objEdits = arrayEdits[arrayStr][i] = {};\n objEdits[propStr] = vi;\n delete aobj[ai];\n } else if (pleaf === \"reverse\") {\n if (parentIn.range) parentIn.range.reverse();\n else {\n doextra(ptrunk + \".autorange\", true);\n parentIn.range = [1, 0];\n }\n if (parentFull.autorange) flags.calc = true;\n else flags.plot = true;\n } else {\n if (ai === \"dragmode\" && (vi === false && vOld !== false || vi !== false && vOld === false)) {\n flags.plot = true;\n } else if (fullLayout._has(\"scatter-like\") && fullLayout._has(\"regl\") && (ai === \"dragmode\" && (vi === \"lasso\" || vi === \"select\") && !(vOld === \"lasso\" || vOld === \"select\"))) {\n flags.plot = true;\n } else if (valObject) editTypes.update(flags, valObject);\n else flags.calc = true;\n p.set(vi);\n }\n }\n for (arrayStr in arrayEdits) {\n var finished = manageArrays.applyContainerArrayChanges(\n gd,\n layoutNP(layout, arrayStr),\n arrayEdits[arrayStr],\n flags,\n layoutNP\n );\n if (!finished) flags.plot = true;\n }\n for (var axId in rangesAltered) {\n ax = Axes.getFromId(gd, axId);\n var group = ax && ax._constraintGroup;\n if (group) {\n flags.calc = true;\n for (var groupAxId in group) {\n if (!rangesAltered[groupAxId]) {\n Axes.getFromId(gd, groupAxId)._constraintShrinkable = true;\n }\n }\n }\n }\n if (updateAutosize(gd) || aobj.height || aobj.width) flags.plot = true;\n var shapes = fullLayout.shapes;\n for (i = 0; i < shapes.length; i++) {\n if (shapes[i].showlegend) {\n flags.calc = true;\n break;\n }\n }\n if (flags.plot || flags.calc) {\n flags.layoutReplot = true;\n }\n return {\n flags,\n rangesAltered,\n undoit,\n redoit,\n eventData\n };\n }\n function updateAutosize(gd) {\n var fullLayout = gd._fullLayout;\n var oldWidth = fullLayout.width;\n var oldHeight = fullLayout.height;\n if (gd.layout.autosize) Plots.plotAutoSize(gd, gd.layout, fullLayout);\n return fullLayout.width !== oldWidth || fullLayout.height !== oldHeight;\n }\n function update(gd, traceUpdate, layoutUpdate, _traces) {\n gd = Lib.getGraphDiv(gd);\n helpers.clearPromiseQueue(gd);\n if (!Lib.isPlainObject(traceUpdate)) traceUpdate = {};\n if (!Lib.isPlainObject(layoutUpdate)) layoutUpdate = {};\n if (Object.keys(traceUpdate).length) gd.changed = true;\n if (Object.keys(layoutUpdate).length) gd.changed = true;\n var traces = helpers.coerceTraceIndices(gd, _traces);\n var restyleSpecs = _restyle(gd, Lib.extendFlat({}, traceUpdate), traces);\n var restyleFlags = restyleSpecs.flags;\n var relayoutSpecs = _relayout(gd, Lib.extendFlat({}, layoutUpdate));\n var relayoutFlags = relayoutSpecs.flags;\n if (restyleFlags.calc || relayoutFlags.calc) gd.calcdata = void 0;\n if (restyleFlags.clearAxisTypes) helpers.clearAxisTypes(gd, traces, layoutUpdate);\n var seq = [];\n if (relayoutFlags.layoutReplot) {\n seq.push(subroutines.layoutReplot);\n } else if (restyleFlags.fullReplot) {\n seq.push(exports._doPlot);\n } else {\n seq.push(Plots.previousPromises);\n axRangeSupplyDefaultsByPass(gd, relayoutFlags, relayoutSpecs) || Plots.supplyDefaults(gd);\n if (restyleFlags.style) seq.push(subroutines.doTraceStyle);\n if (restyleFlags.colorbars || relayoutFlags.colorbars) seq.push(subroutines.doColorBars);\n if (relayoutFlags.legend) seq.push(subroutines.doLegend);\n if (relayoutFlags.layoutstyle) seq.push(subroutines.layoutStyles);\n if (relayoutFlags.axrange) addAxRangeSequence(seq, relayoutSpecs.rangesAltered);\n if (relayoutFlags.ticks) seq.push(subroutines.doTicksRelayout);\n if (relayoutFlags.modebar) seq.push(subroutines.doModeBar);\n if (relayoutFlags.camera) seq.push(subroutines.doCamera);\n seq.push(emitAfterPlot);\n }\n seq.push(\n Plots.rehover,\n Plots.redrag,\n Plots.reselect\n );\n Queue.add(\n gd,\n update,\n [gd, restyleSpecs.undoit, relayoutSpecs.undoit, restyleSpecs.traces],\n update,\n [gd, restyleSpecs.redoit, relayoutSpecs.redoit, restyleSpecs.traces]\n );\n var plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve(gd);\n return plotDone.then(function() {\n gd.emit(\"plotly_update\", {\n data: restyleSpecs.eventData,\n layout: relayoutSpecs.eventData\n });\n return gd;\n });\n }\n function guiEdit(func) {\n return function wrappedEdit(gd) {\n gd._fullLayout._guiEditing = true;\n var p = func.apply(null, arguments);\n gd._fullLayout._guiEditing = false;\n return p;\n };\n }\n var layoutUIControlPatterns = [\n { pattern: /^hiddenlabels/, attr: \"legend.uirevision\" },\n { pattern: /^((x|y)axis\\d*)\\.((auto)?range|title\\.text)/ },\n // showspikes and modes include those nested inside scenes\n { pattern: /axis\\d*\\.showspikes$/, attr: \"modebar.uirevision\" },\n { pattern: /(hover|drag)mode$/, attr: \"modebar.uirevision\" },\n { pattern: /^(scene\\d*)\\.camera/ },\n { pattern: /^(geo\\d*)\\.(projection|center|fitbounds)/ },\n { pattern: /^(ternary\\d*\\.[abc]axis)\\.(min|title\\.text)$/ },\n { pattern: /^(polar\\d*\\.radialaxis)\\.((auto)?range|angle|title\\.text)/ },\n { pattern: /^(polar\\d*\\.angularaxis)\\.rotation/ },\n { pattern: /^(mapbox\\d*)\\.(center|zoom|bearing|pitch)/ },\n { pattern: /^(map\\d*)\\.(center|zoom|bearing|pitch)/ },\n { pattern: /^legend\\.(x|y)$/, attr: \"editrevision\" },\n { pattern: /^(shapes|annotations)/, attr: \"editrevision\" },\n { pattern: /^title\\.text$/, attr: \"editrevision\" }\n ];\n var traceUIControlPatterns = [\n { pattern: /^selectedpoints$/, attr: \"selectionrevision\" },\n // \"visible\" includes trace.transforms[i].styles[j].value.visible\n { pattern: /(^|value\\.)visible$/, attr: \"legend.uirevision\" },\n { pattern: /^dimensions\\[\\d+\\]\\.constraintrange/ },\n { pattern: /^node\\.(x|y|groups)/ },\n // for Sankey nodes\n { pattern: /^level$/ },\n // for Sunburst, Treemap and Icicle traces\n // below this you must be in editable: true mode\n // TODO: I still put name and title with `trace.uirevision`\n // reasonable or should these be `editrevision`?\n // Also applies to axis titles up in the layout section\n // \"name\" also includes transform.styles\n { pattern: /(^|value\\.)name$/ },\n // including nested colorbar attributes (ie marker.colorbar)\n { pattern: /colorbar\\.title\\.text$/ },\n { pattern: /colorbar\\.(x|y)$/, attr: \"editrevision\" }\n ];\n function findUIPattern(key, patternSpecs) {\n for (var i = 0; i < patternSpecs.length; i++) {\n var spec = patternSpecs[i];\n var match = key.match(spec.pattern);\n if (match) {\n var head = match[1] || \"\";\n return { head, tail: key.substr(head.length + 1), attr: spec.attr };\n }\n }\n }\n function getNewRev(revAttr, container) {\n var newRev = nestedProperty(container, revAttr).get();\n if (newRev !== void 0) return newRev;\n var parts = revAttr.split(\".\");\n parts.pop();\n while (parts.length > 1) {\n parts.pop();\n newRev = nestedProperty(container, parts.join(\".\") + \".uirevision\").get();\n if (newRev !== void 0) return newRev;\n }\n return container.uirevision;\n }\n function getFullTraceIndexFromUid(uid, fullData) {\n for (var i = 0; i < fullData.length; i++) {\n if (fullData[i]._fullInput.uid === uid) return i;\n }\n return -1;\n }\n function getTraceIndexFromUid(uid, data, tracei) {\n for (var i = 0; i < data.length; i++) {\n if (data[i].uid === uid) return i;\n }\n return !data[tracei] || data[tracei].uid ? -1 : tracei;\n }\n function valsMatch(v1, v2) {\n var v1IsObj = Lib.isPlainObject(v1);\n var v1IsArray = Array.isArray(v1);\n if (v1IsObj || v1IsArray) {\n return (v1IsObj && Lib.isPlainObject(v2) || v1IsArray && Array.isArray(v2)) && JSON.stringify(v1) === JSON.stringify(v2);\n }\n return v1 === v2;\n }\n function applyUIRevisions(data, layout, oldFullData, oldFullLayout) {\n var layoutPreGUI = oldFullLayout._preGUI;\n var key, revAttr, oldRev, newRev, match, preGUIVal, newNP, newVal, head, tail;\n var bothInheritAutorange = [];\n var newAutorangeIn = {};\n var newRangeAccepted = {};\n for (key in layoutPreGUI) {\n match = findUIPattern(key, layoutUIControlPatterns);\n if (match) {\n head = match.head;\n tail = match.tail;\n revAttr = match.attr || head + \".uirevision\";\n oldRev = nestedProperty(oldFullLayout, revAttr).get();\n newRev = oldRev && getNewRev(revAttr, layout);\n if (newRev && newRev === oldRev) {\n preGUIVal = layoutPreGUI[key];\n if (preGUIVal === null) preGUIVal = void 0;\n newNP = nestedProperty(layout, key);\n newVal = newNP.get();\n if (valsMatch(newVal, preGUIVal)) {\n if (newVal === void 0 && tail === \"autorange\") {\n bothInheritAutorange.push(head);\n }\n newNP.set(undefinedToNull(nestedProperty(oldFullLayout, key).get()));\n continue;\n } else if (tail === \"autorange\" || tail.substr(0, 6) === \"range[\") {\n var pre0 = layoutPreGUI[head + \".range[0]\"];\n var pre1 = layoutPreGUI[head + \".range[1]\"];\n var preAuto = layoutPreGUI[head + \".autorange\"];\n if (preAuto || preAuto === null && pre0 === null && pre1 === null) {\n if (!(head in newAutorangeIn)) {\n var newContainer = nestedProperty(layout, head).get();\n newAutorangeIn[head] = newContainer && (newContainer.autorange || newContainer.autorange !== false && (!newContainer.range || newContainer.range.length !== 2));\n }\n if (newAutorangeIn[head]) {\n newNP.set(undefinedToNull(nestedProperty(oldFullLayout, key).get()));\n continue;\n }\n }\n }\n }\n } else {\n Lib.warn(\"unrecognized GUI edit: \" + key);\n }\n delete layoutPreGUI[key];\n if (match && match.tail.substr(0, 6) === \"range[\") {\n newRangeAccepted[match.head] = 1;\n }\n }\n for (var i = 0; i < bothInheritAutorange.length; i++) {\n var axAttr = bothInheritAutorange[i];\n if (newRangeAccepted[axAttr]) {\n var newAx = nestedProperty(layout, axAttr).get();\n if (newAx) delete newAx.autorange;\n }\n }\n var allTracePreGUI = oldFullLayout._tracePreGUI;\n for (var uid in allTracePreGUI) {\n var tracePreGUI = allTracePreGUI[uid];\n var newTrace = null;\n var fullInput;\n for (key in tracePreGUI) {\n if (!newTrace) {\n var fulli = getFullTraceIndexFromUid(uid, oldFullData);\n if (fulli < 0) {\n delete allTracePreGUI[uid];\n break;\n }\n var fullTrace = oldFullData[fulli];\n fullInput = fullTrace._fullInput;\n var newTracei = getTraceIndexFromUid(uid, data, fullInput.index);\n if (newTracei < 0) {\n delete allTracePreGUI[uid];\n break;\n }\n newTrace = data[newTracei];\n }\n match = findUIPattern(key, traceUIControlPatterns);\n if (match) {\n if (match.attr) {\n oldRev = nestedProperty(oldFullLayout, match.attr).get();\n newRev = oldRev && getNewRev(match.attr, layout);\n } else {\n oldRev = fullInput.uirevision;\n newRev = newTrace.uirevision;\n if (newRev === void 0) newRev = layout.uirevision;\n }\n if (newRev && newRev === oldRev) {\n preGUIVal = tracePreGUI[key];\n if (preGUIVal === null) preGUIVal = void 0;\n newNP = nestedProperty(newTrace, key);\n newVal = newNP.get();\n if (valsMatch(newVal, preGUIVal)) {\n newNP.set(undefinedToNull(nestedProperty(fullInput, key).get()));\n continue;\n }\n }\n } else {\n Lib.warn(\"unrecognized GUI edit: \" + key + \" in trace uid \" + uid);\n }\n delete tracePreGUI[key];\n }\n }\n }\n function react(gd, data, layout, config) {\n var frames, plotDone;\n function addFrames2() {\n return exports.addFrames(gd, frames);\n }\n gd = Lib.getGraphDiv(gd);\n helpers.clearPromiseQueue(gd);\n var oldFullData = gd._fullData;\n var oldFullLayout = gd._fullLayout;\n if (!Lib.isPlotDiv(gd) || !oldFullData || !oldFullLayout) {\n plotDone = exports.newPlot(gd, data, layout, config);\n } else {\n if (Lib.isPlainObject(data)) {\n var obj = data;\n data = obj.data;\n layout = obj.layout;\n config = obj.config;\n frames = obj.frames;\n }\n var configChanged = false;\n if (config) {\n var oldConfig = Lib.extendDeep({}, gd._context);\n gd._context = void 0;\n setPlotContext(gd, config);\n configChanged = diffConfig(oldConfig, gd._context);\n }\n gd.data = data || [];\n helpers.cleanData(gd.data);\n gd.layout = layout || {};\n helpers.cleanLayout(gd.layout);\n applyUIRevisions(gd.data, gd.layout, oldFullData, oldFullLayout);\n Plots.supplyDefaults(gd, { skipUpdateCalc: true });\n var newFullData = gd._fullData;\n var newFullLayout = gd._fullLayout;\n var immutable = newFullLayout.datarevision === void 0;\n var transition = newFullLayout.transition;\n var relayoutFlags = diffLayout(gd, oldFullLayout, newFullLayout, immutable, transition);\n var newDataRevision = relayoutFlags.newDataRevision;\n var restyleFlags = diffData(gd, oldFullData, newFullData, immutable, transition, newDataRevision);\n if (updateAutosize(gd)) relayoutFlags.layoutReplot = true;\n if (restyleFlags.calc || relayoutFlags.calc) {\n gd.calcdata = void 0;\n var allNames = Object.getOwnPropertyNames(newFullLayout);\n for (var q = 0; q < allNames.length; q++) {\n var name2 = allNames[q];\n var start = name2.substring(0, 5);\n if (start === \"xaxis\" || start === \"yaxis\") {\n var emptyCategories = newFullLayout[name2]._emptyCategories;\n if (emptyCategories) emptyCategories();\n }\n }\n } else {\n Plots.supplyDefaultsUpdateCalc(gd.calcdata, newFullData);\n }\n var seq = [];\n if (frames) {\n gd._transitionData = {};\n Plots.createTransitionData(gd);\n seq.push(addFrames2);\n }\n if (newFullLayout.transition && !configChanged && (restyleFlags.anim || relayoutFlags.anim)) {\n if (relayoutFlags.ticks) seq.push(subroutines.doTicksRelayout);\n Plots.doCalcdata(gd);\n subroutines.doAutoRangeAndConstraints(gd);\n seq.push(function() {\n return Plots.transitionFromReact(gd, restyleFlags, relayoutFlags, oldFullLayout);\n });\n } else if (restyleFlags.fullReplot || relayoutFlags.layoutReplot || configChanged) {\n gd._fullLayout._skipDefaults = true;\n seq.push(exports._doPlot);\n } else {\n for (var componentType in relayoutFlags.arrays) {\n var indices = relayoutFlags.arrays[componentType];\n if (indices.length) {\n var drawOne = Registry.getComponentMethod(componentType, \"drawOne\");\n if (drawOne !== Lib.noop) {\n for (var i = 0; i < indices.length; i++) {\n drawOne(gd, indices[i]);\n }\n } else {\n var draw = Registry.getComponentMethod(componentType, \"draw\");\n if (draw === Lib.noop) {\n throw new Error(\"cannot draw components: \" + componentType);\n }\n draw(gd);\n }\n }\n }\n seq.push(Plots.previousPromises);\n if (restyleFlags.style) seq.push(subroutines.doTraceStyle);\n if (restyleFlags.colorbars || relayoutFlags.colorbars) seq.push(subroutines.doColorBars);\n if (relayoutFlags.legend) seq.push(subroutines.doLegend);\n if (relayoutFlags.layoutstyle) seq.push(subroutines.layoutStyles);\n if (relayoutFlags.axrange) addAxRangeSequence(seq);\n if (relayoutFlags.ticks) seq.push(subroutines.doTicksRelayout);\n if (relayoutFlags.modebar) seq.push(subroutines.doModeBar);\n if (relayoutFlags.camera) seq.push(subroutines.doCamera);\n seq.push(emitAfterPlot);\n }\n seq.push(\n Plots.rehover,\n Plots.redrag,\n Plots.reselect\n );\n plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve(gd);\n }\n return plotDone.then(function() {\n gd.emit(\"plotly_react\", {\n data,\n layout\n });\n return gd;\n });\n }\n function diffData(gd, oldFullData, newFullData, immutable, transition, newDataRevision) {\n var sameTraceLength = oldFullData.length === newFullData.length;\n if (!transition && !sameTraceLength) {\n return {\n fullReplot: true,\n calc: true\n };\n }\n var flags = editTypes.traceFlags();\n flags.arrays = {};\n flags.nChanges = 0;\n flags.nChangesAnim = 0;\n var i, trace;\n function getTraceValObject(parts) {\n var out = PlotSchema.getTraceValObject(trace, parts);\n if (!trace._module.animatable && out.anim) {\n out.anim = false;\n }\n return out;\n }\n var diffOpts = {\n getValObject: getTraceValObject,\n flags,\n immutable,\n transition,\n newDataRevision,\n gd\n };\n var seenUIDs = {};\n for (i = 0; i < oldFullData.length; i++) {\n if (newFullData[i]) {\n trace = newFullData[i]._fullInput;\n if (seenUIDs[trace.uid]) continue;\n seenUIDs[trace.uid] = 1;\n getDiffFlags(oldFullData[i]._fullInput, trace, [], diffOpts);\n }\n }\n if (flags.calc || flags.plot) {\n flags.fullReplot = true;\n }\n if (transition && flags.nChanges && flags.nChangesAnim) {\n flags.anim = flags.nChanges === flags.nChangesAnim && sameTraceLength ? \"all\" : \"some\";\n }\n return flags;\n }\n function diffLayout(gd, oldFullLayout, newFullLayout, immutable, transition) {\n var flags = editTypes.layoutFlags();\n flags.arrays = {};\n flags.rangesAltered = {};\n flags.nChanges = 0;\n flags.nChangesAnim = 0;\n function getLayoutValObject(parts) {\n return PlotSchema.getLayoutValObject(newFullLayout, parts);\n }\n for (var key in newFullLayout) {\n if (!key.startsWith(\"xaxis\") && !key.startsWith(\"yaxis\")) {\n continue;\n }\n if (!oldFullLayout[key]) {\n continue;\n }\n var newDomain = newFullLayout[key].domain;\n var oldDomain = oldFullLayout[key].domain;\n var oldInputDomain = oldFullLayout[key]._inputDomain;\n if (oldFullLayout[key]._inputDomain) {\n if (newDomain[0] === oldInputDomain[0] && newDomain[1] === oldInputDomain[1]) {\n newFullLayout[key].domain = oldFullLayout[key].domain;\n } else if (newDomain[0] !== oldDomain[0] || newDomain[1] !== oldDomain[1]) {\n newFullLayout[key]._inputDomain = null;\n }\n }\n }\n var diffOpts = {\n getValObject: getLayoutValObject,\n flags,\n immutable,\n transition,\n gd\n };\n getDiffFlags(oldFullLayout, newFullLayout, [], diffOpts);\n if (flags.plot || flags.calc) {\n flags.layoutReplot = true;\n }\n if (transition && flags.nChanges && flags.nChangesAnim) {\n flags.anim = flags.nChanges === flags.nChangesAnim ? \"all\" : \"some\";\n }\n return flags;\n }\n function getDiffFlags(oldContainer, newContainer, outerparts, opts) {\n var valObject, key, astr;\n var getValObject = opts.getValObject;\n var flags = opts.flags;\n var immutable = opts.immutable;\n var inArray = opts.inArray;\n var arrayIndex = opts.arrayIndex;\n function changed() {\n var editType = valObject.editType;\n if (inArray && editType.indexOf(\"arraydraw\") !== -1) {\n Lib.pushUnique(flags.arrays[inArray], arrayIndex);\n return;\n }\n editTypes.update(flags, valObject);\n if (editType !== \"none\") {\n flags.nChanges++;\n }\n if (opts.transition && valObject.anim) {\n flags.nChangesAnim++;\n }\n if (AX_RANGE_RE.test(astr) || AX_AUTORANGE_RE.test(astr)) {\n flags.rangesAltered[outerparts[0]] = 1;\n }\n if (key === \"datarevision\") {\n flags.newDataRevision = 1;\n }\n }\n function valObjectCanBeDataArray(valObject2) {\n return valObject2.valType === \"data_array\" || valObject2.arrayOk;\n }\n for (key in oldContainer) {\n if (flags.calc && !opts.transition) return;\n var oldVal = oldContainer[key];\n var newVal = newContainer[key];\n var parts = outerparts.concat(key);\n astr = parts.join(\".\");\n if (key.charAt(0) === \"_\" || typeof oldVal === \"function\" || oldVal === newVal) continue;\n if ((key === \"tick0\" || key === \"dtick\") && outerparts[0] !== \"geo\") {\n var tickMode = newContainer.tickmode;\n if (tickMode === \"auto\" || tickMode === \"array\" || !tickMode) continue;\n }\n if (key === \"range\" && newContainer.autorange) continue;\n if ((key === \"zmin\" || key === \"zmax\") && newContainer.type === \"contourcarpet\") continue;\n valObject = getValObject(parts);\n if (!valObject) continue;\n if (valObject._compareAsJSON && JSON.stringify(oldVal) === JSON.stringify(newVal)) continue;\n var valType = valObject.valType;\n var i;\n var canBeDataArray = valObjectCanBeDataArray(valObject);\n var wasArray = Array.isArray(oldVal);\n var nowArray = Array.isArray(newVal);\n if (wasArray && nowArray) {\n var inputKey = \"_input_\" + key;\n var oldValIn = oldContainer[inputKey];\n var newValIn = newContainer[inputKey];\n if (Array.isArray(oldValIn) && oldValIn === newValIn) continue;\n }\n if (newVal === void 0) {\n if (canBeDataArray && wasArray) flags.calc = true;\n else changed();\n } else if (valObject._isLinkedToArray) {\n var arrayEditIndices = [];\n var extraIndices = false;\n if (!inArray) flags.arrays[key] = arrayEditIndices;\n var minLen = Math.min(oldVal.length, newVal.length);\n var maxLen = Math.max(oldVal.length, newVal.length);\n if (minLen !== maxLen) {\n if (valObject.editType === \"arraydraw\") {\n extraIndices = true;\n } else {\n changed();\n continue;\n }\n }\n for (i = 0; i < minLen; i++) {\n getDiffFlags(\n oldVal[i],\n newVal[i],\n parts.concat(i),\n // add array indices, but not if we're already in an array\n Lib.extendFlat({ inArray: key, arrayIndex: i }, opts)\n );\n }\n if (extraIndices) {\n for (i = minLen; i < maxLen; i++) {\n arrayEditIndices.push(i);\n }\n }\n } else if (!valType && Lib.isPlainObject(oldVal)) {\n getDiffFlags(oldVal, newVal, parts, opts);\n } else if (canBeDataArray) {\n if (wasArray && nowArray) {\n if (immutable) {\n flags.calc = true;\n }\n if (immutable || opts.newDataRevision) {\n changed();\n }\n } else if (wasArray !== nowArray) {\n flags.calc = true;\n } else changed();\n } else if (wasArray && nowArray) {\n if (oldVal.length !== newVal.length || String(oldVal) !== String(newVal)) {\n changed();\n }\n } else {\n changed();\n }\n }\n for (key in newContainer) {\n if (!(key in oldContainer || key.charAt(0) === \"_\" || typeof newContainer[key] === \"function\")) {\n valObject = getValObject(outerparts.concat(key));\n if (valObjectCanBeDataArray(valObject) && Array.isArray(newContainer[key])) {\n flags.calc = true;\n return;\n } else changed();\n }\n }\n }\n function diffConfig(oldConfig, newConfig) {\n var key;\n for (key in oldConfig) {\n if (key.charAt(0) === \"_\") continue;\n var oldVal = oldConfig[key];\n var newVal = newConfig[key];\n if (oldVal !== newVal) {\n if (Lib.isPlainObject(oldVal) && Lib.isPlainObject(newVal)) {\n if (diffConfig(oldVal, newVal)) {\n return true;\n }\n } else if (Array.isArray(oldVal) && Array.isArray(newVal)) {\n if (oldVal.length !== newVal.length) {\n return true;\n }\n for (var i = 0; i < oldVal.length; i++) {\n if (oldVal[i] !== newVal[i]) {\n if (Lib.isPlainObject(oldVal[i]) && Lib.isPlainObject(newVal[i])) {\n if (diffConfig(oldVal[i], newVal[i])) {\n return true;\n }\n } else {\n return true;\n }\n }\n }\n } else {\n return true;\n }\n }\n }\n }\n function animate(gd, frameOrGroupNameOrFrameList, animationOpts) {\n gd = Lib.getGraphDiv(gd);\n if (!Lib.isPlotDiv(gd)) {\n throw new Error(\n \"This element is not a Plotly plot: \" + gd + \". It's likely that you've failed to create a plot before animating it. For more details, see https://plotly.com/javascript/animations/\"\n );\n }\n var trans = gd._transitionData;\n if (!trans._frameQueue) {\n trans._frameQueue = [];\n }\n animationOpts = Plots.supplyAnimationDefaults(animationOpts);\n var transitionOpts = animationOpts.transition;\n var frameOpts = animationOpts.frame;\n if (trans._frameWaitingCnt === void 0) {\n trans._frameWaitingCnt = 0;\n }\n function getTransitionOpts(i) {\n if (Array.isArray(transitionOpts)) {\n if (i >= transitionOpts.length) {\n return transitionOpts[0];\n } else {\n return transitionOpts[i];\n }\n } else {\n return transitionOpts;\n }\n }\n function getFrameOpts(i) {\n if (Array.isArray(frameOpts)) {\n if (i >= frameOpts.length) {\n return frameOpts[0];\n } else {\n return frameOpts[i];\n }\n } else {\n return frameOpts;\n }\n }\n function callbackOnNthTime(cb, n) {\n var cnt = 0;\n return function() {\n if (cb && ++cnt === n) {\n return cb();\n }\n };\n }\n return new Promise(function(resolve, reject) {\n function discardExistingFrames() {\n if (trans._frameQueue.length === 0) {\n return;\n }\n while (trans._frameQueue.length) {\n var next = trans._frameQueue.pop();\n if (next.onInterrupt) {\n next.onInterrupt();\n }\n }\n gd.emit(\"plotly_animationinterrupted\", []);\n }\n function queueFrames(frameList2) {\n if (frameList2.length === 0) return;\n for (var i2 = 0; i2 < frameList2.length; i2++) {\n var computedFrame;\n if (frameList2[i2].type === \"byname\") {\n computedFrame = Plots.computeFrame(gd, frameList2[i2].name);\n } else {\n computedFrame = frameList2[i2].data;\n }\n var frameOpts2 = getFrameOpts(i2);\n var transitionOpts2 = getTransitionOpts(i2);\n transitionOpts2.duration = Math.min(transitionOpts2.duration, frameOpts2.duration);\n var nextFrame2 = {\n frame: computedFrame,\n name: frameList2[i2].name,\n frameOpts: frameOpts2,\n transitionOpts: transitionOpts2\n };\n if (i2 === frameList2.length - 1) {\n nextFrame2.onComplete = callbackOnNthTime(resolve, 2);\n nextFrame2.onInterrupt = reject;\n }\n trans._frameQueue.push(nextFrame2);\n }\n if (animationOpts.mode === \"immediate\") {\n trans._lastFrameAt = -Infinity;\n }\n if (!trans._animationRaf) {\n beginAnimationLoop();\n }\n }\n function stopAnimationLoop() {\n gd.emit(\"plotly_animated\");\n window.cancelAnimationFrame(trans._animationRaf);\n trans._animationRaf = null;\n }\n function nextFrame() {\n if (trans._currentFrame && trans._currentFrame.onComplete) {\n trans._currentFrame.onComplete();\n }\n var newFrame = trans._currentFrame = trans._frameQueue.shift();\n if (newFrame) {\n var stringName = newFrame.name ? newFrame.name.toString() : null;\n gd._fullLayout._currentFrame = stringName;\n trans._lastFrameAt = Date.now();\n trans._timeToNext = newFrame.frameOpts.duration;\n Plots.transition(\n gd,\n newFrame.frame.data,\n newFrame.frame.layout,\n helpers.coerceTraceIndices(gd, newFrame.frame.traces),\n newFrame.frameOpts,\n newFrame.transitionOpts\n ).then(function() {\n if (newFrame.onComplete) {\n newFrame.onComplete();\n }\n });\n gd.emit(\"plotly_animatingframe\", {\n name: stringName,\n frame: newFrame.frame,\n animation: {\n frame: newFrame.frameOpts,\n transition: newFrame.transitionOpts\n }\n });\n } else {\n stopAnimationLoop();\n }\n }\n function beginAnimationLoop() {\n gd.emit(\"plotly_animating\");\n trans._lastFrameAt = -Infinity;\n trans._timeToNext = 0;\n trans._runningTransitions = 0;\n trans._currentFrame = null;\n var doFrame = function() {\n trans._animationRaf = window.requestAnimationFrame(doFrame);\n if (Date.now() - trans._lastFrameAt > trans._timeToNext) {\n nextFrame();\n }\n };\n doFrame();\n }\n var configCounter = 0;\n function setTransitionConfig(frame2) {\n if (Array.isArray(transitionOpts)) {\n if (configCounter >= transitionOpts.length) {\n frame2.transitionOpts = transitionOpts[configCounter];\n } else {\n frame2.transitionOpts = transitionOpts[0];\n }\n } else {\n frame2.transitionOpts = transitionOpts;\n }\n configCounter++;\n return frame2;\n }\n var i, frame;\n var frameList = [];\n var allFrames = frameOrGroupNameOrFrameList === void 0 || frameOrGroupNameOrFrameList === null;\n var isFrameArray = Array.isArray(frameOrGroupNameOrFrameList);\n var isSingleFrame = !allFrames && !isFrameArray && Lib.isPlainObject(frameOrGroupNameOrFrameList);\n if (isSingleFrame) {\n frameList.push({\n type: \"object\",\n data: setTransitionConfig(Lib.extendFlat({}, frameOrGroupNameOrFrameList))\n });\n } else if (allFrames || [\"string\", \"number\"].indexOf(typeof frameOrGroupNameOrFrameList) !== -1) {\n for (i = 0; i < trans._frames.length; i++) {\n frame = trans._frames[i];\n if (!frame) continue;\n if (allFrames || String(frame.group) === String(frameOrGroupNameOrFrameList)) {\n frameList.push({\n type: \"byname\",\n name: String(frame.name),\n data: setTransitionConfig({ name: frame.name })\n });\n }\n }\n } else if (isFrameArray) {\n for (i = 0; i < frameOrGroupNameOrFrameList.length; i++) {\n var frameOrName = frameOrGroupNameOrFrameList[i];\n if ([\"number\", \"string\"].indexOf(typeof frameOrName) !== -1) {\n frameOrName = String(frameOrName);\n frameList.push({\n type: \"byname\",\n name: frameOrName,\n data: setTransitionConfig({ name: frameOrName })\n });\n } else if (Lib.isPlainObject(frameOrName)) {\n frameList.push({\n type: \"object\",\n data: setTransitionConfig(Lib.extendFlat({}, frameOrName))\n });\n }\n }\n }\n for (i = 0; i < frameList.length; i++) {\n frame = frameList[i];\n if (frame.type === \"byname\" && !trans._frameHash[frame.data.name]) {\n Lib.warn('animate failure: frame not found: \"' + frame.data.name + '\"');\n reject();\n return;\n }\n }\n if ([\"next\", \"immediate\"].indexOf(animationOpts.mode) !== -1) {\n discardExistingFrames();\n }\n if (animationOpts.direction === \"reverse\") {\n frameList.reverse();\n }\n var currentFrame = gd._fullLayout._currentFrame;\n if (currentFrame && animationOpts.fromcurrent) {\n var idx = -1;\n for (i = 0; i < frameList.length; i++) {\n frame = frameList[i];\n if (frame.type === \"byname\" && frame.name === currentFrame) {\n idx = i;\n break;\n }\n }\n if (idx > 0 && idx < frameList.length - 1) {\n var filteredFrameList = [];\n for (i = 0; i < frameList.length; i++) {\n frame = frameList[i];\n if (frameList[i].type !== \"byname\" || i > idx) {\n filteredFrameList.push(frame);\n }\n }\n frameList = filteredFrameList;\n }\n }\n if (frameList.length > 0) {\n queueFrames(frameList);\n } else {\n gd.emit(\"plotly_animated\");\n resolve();\n }\n });\n }\n function addFrames(gd, frameList, indices) {\n gd = Lib.getGraphDiv(gd);\n if (frameList === null || frameList === void 0) {\n return Promise.resolve();\n }\n if (!Lib.isPlotDiv(gd)) {\n throw new Error(\n \"This element is not a Plotly plot: \" + gd + \". It's likely that you've failed to create a plot before adding frames. For more details, see https://plotly.com/javascript/animations/\"\n );\n }\n var i, frame, j, idx;\n var _frames = gd._transitionData._frames;\n var _frameHash = gd._transitionData._frameHash;\n if (!Array.isArray(frameList)) {\n throw new Error(\"addFrames failure: frameList must be an Array of frame definitions\" + frameList);\n }\n var bigIndex = _frames.length + frameList.length * 2;\n var insertions = [];\n var _frameHashLocal = {};\n for (i = frameList.length - 1; i >= 0; i--) {\n if (!Lib.isPlainObject(frameList[i])) continue;\n var lookupName = frameList[i].name;\n var name2 = (_frameHash[lookupName] || _frameHashLocal[lookupName] || {}).name;\n var newName = frameList[i].name;\n var collisionPresent = _frameHash[name2] || _frameHashLocal[name2];\n if (name2 && newName && typeof newName === \"number\" && collisionPresent && numericNameWarningCount < numericNameWarningCountLimit) {\n numericNameWarningCount++;\n Lib.warn('addFrames: overwriting frame \"' + (_frameHash[name2] || _frameHashLocal[name2]).name + '\" with a frame whose name of type \"number\" also equates to \"' + name2 + '\". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.');\n if (numericNameWarningCount === numericNameWarningCountLimit) {\n Lib.warn(\"addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.\");\n }\n }\n _frameHashLocal[lookupName] = { name: lookupName };\n insertions.push({\n frame: Plots.supplyFrameDefaults(frameList[i]),\n index: indices && indices[i] !== void 0 && indices[i] !== null ? indices[i] : bigIndex + i\n });\n }\n insertions.sort(function(a, b) {\n if (a.index > b.index) return -1;\n if (a.index < b.index) return 1;\n return 0;\n });\n var ops = [];\n var revops = [];\n var frameCount = _frames.length;\n for (i = insertions.length - 1; i >= 0; i--) {\n frame = insertions[i].frame;\n if (typeof frame.name === \"number\") {\n Lib.warn(\"Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings\");\n }\n if (!frame.name) {\n while (_frameHash[frame.name = \"frame \" + gd._transitionData._counter++]) ;\n }\n if (_frameHash[frame.name]) {\n for (j = 0; j < _frames.length; j++) {\n if ((_frames[j] || {}).name === frame.name) break;\n }\n ops.push({ type: \"replace\", index: j, value: frame });\n revops.unshift({ type: \"replace\", index: j, value: _frames[j] });\n } else {\n idx = Math.max(0, Math.min(insertions[i].index, frameCount));\n ops.push({ type: \"insert\", index: idx, value: frame });\n revops.unshift({ type: \"delete\", index: idx });\n frameCount++;\n }\n }\n var undoFunc = Plots.modifyFrames;\n var redoFunc = Plots.modifyFrames;\n var undoArgs = [gd, revops];\n var redoArgs = [gd, ops];\n if (Queue) Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return Plots.modifyFrames(gd, ops);\n }\n function deleteFrames(gd, frameList) {\n gd = Lib.getGraphDiv(gd);\n if (!Lib.isPlotDiv(gd)) {\n throw new Error(\"This element is not a Plotly plot: \" + gd);\n }\n var i, idx;\n var _frames = gd._transitionData._frames;\n var ops = [];\n var revops = [];\n if (!frameList) {\n frameList = [];\n for (i = 0; i < _frames.length; i++) {\n frameList.push(i);\n }\n }\n frameList = frameList.slice();\n frameList.sort();\n for (i = frameList.length - 1; i >= 0; i--) {\n idx = frameList[i];\n ops.push({ type: \"delete\", index: idx });\n revops.unshift({ type: \"insert\", index: idx, value: _frames[idx] });\n }\n var undoFunc = Plots.modifyFrames;\n var redoFunc = Plots.modifyFrames;\n var undoArgs = [gd, revops];\n var redoArgs = [gd, ops];\n if (Queue) Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return Plots.modifyFrames(gd, ops);\n }\n function purge(gd) {\n gd = Lib.getGraphDiv(gd);\n var fullLayout = gd._fullLayout || {};\n var fullData = gd._fullData || [];\n Plots.cleanPlot([], {}, fullData, fullLayout);\n Plots.purge(gd);\n Events.purge(gd);\n if (fullLayout._container) fullLayout._container.remove();\n delete gd._context;\n return gd;\n }\n function calcInverseTransform(gd) {\n var fullLayout = gd._fullLayout;\n var newBBox = gd.getBoundingClientRect();\n if (Lib.equalDomRects(newBBox, fullLayout._lastBBox)) return;\n var m = fullLayout._invTransform = Lib.inverseTransformMatrix(Lib.getFullTransformMatrix(gd));\n fullLayout._invScaleX = Math.sqrt(m[0][0] * m[0][0] + m[0][1] * m[0][1] + m[0][2] * m[0][2]);\n fullLayout._invScaleY = Math.sqrt(m[1][0] * m[1][0] + m[1][1] * m[1][1] + m[1][2] * m[1][2]);\n fullLayout._lastBBox = newBBox;\n }\n function makePlotFramework(gd) {\n var gd3 = d3.select(gd);\n var fullLayout = gd._fullLayout;\n fullLayout._calcInverseTransform = calcInverseTransform;\n fullLayout._calcInverseTransform(gd);\n fullLayout._container = gd3.selectAll(\".plot-container\").data([0]);\n fullLayout._container.enter().insert(\"div\", \":first-child\").classed(\"plot-container\", true).classed(\"plotly\", true).style({\n width: \"100%\",\n height: \"100%\"\n });\n fullLayout._paperdiv = fullLayout._container.selectAll(\".svg-container\").data([0]);\n fullLayout._paperdiv.enter().append(\"div\").classed(\"user-select-none\", true).classed(\"svg-container\", true).style(\"position\", \"relative\");\n fullLayout._glcontainer = fullLayout._paperdiv.selectAll(\".gl-container\").data([{}]);\n fullLayout._glcontainer.enter().append(\"div\").classed(\"gl-container\", true);\n fullLayout._paperdiv.selectAll(\".main-svg\").remove();\n fullLayout._paperdiv.select(\".modebar-container\").remove();\n fullLayout._paper = fullLayout._paperdiv.insert(\"svg\", \":first-child\").classed(\"main-svg\", true);\n fullLayout._toppaper = fullLayout._paperdiv.append(\"svg\").classed(\"main-svg\", true);\n fullLayout._modebardiv = fullLayout._paperdiv.append(\"div\");\n delete fullLayout._modeBar;\n fullLayout._hoverpaper = fullLayout._paperdiv.append(\"svg\").classed(\"main-svg\", true);\n if (!fullLayout._uid) {\n var otherUids = {};\n d3.selectAll(\"defs\").each(function() {\n if (this.id) otherUids[this.id.split(\"-\")[1]] = 1;\n });\n fullLayout._uid = Lib.randstr(otherUids);\n }\n fullLayout._paperdiv.selectAll(\".main-svg\").attr(xmlnsNamespaces.svgAttrs);\n fullLayout._defs = fullLayout._paper.append(\"defs\").attr(\"id\", \"defs-\" + fullLayout._uid);\n fullLayout._clips = fullLayout._defs.append(\"g\").classed(\"clips\", true);\n fullLayout._topdefs = fullLayout._toppaper.append(\"defs\").attr(\"id\", \"topdefs-\" + fullLayout._uid);\n fullLayout._topclips = fullLayout._topdefs.append(\"g\").classed(\"clips\", true);\n fullLayout._bgLayer = fullLayout._paper.append(\"g\").classed(\"bglayer\", true);\n fullLayout._draggers = fullLayout._paper.append(\"g\").classed(\"draglayer\", true);\n var layerBelow = fullLayout._paper.append(\"g\").classed(\"layer-below\", true);\n fullLayout._imageLowerLayer = layerBelow.append(\"g\").classed(\"imagelayer\", true);\n fullLayout._shapeLowerLayer = layerBelow.append(\"g\").classed(\"shapelayer\", true);\n fullLayout._cartesianlayer = fullLayout._paper.append(\"g\").classed(\"cartesianlayer\", true);\n fullLayout._polarlayer = fullLayout._paper.append(\"g\").classed(\"polarlayer\", true);\n fullLayout._smithlayer = fullLayout._paper.append(\"g\").classed(\"smithlayer\", true);\n fullLayout._ternarylayer = fullLayout._paper.append(\"g\").classed(\"ternarylayer\", true);\n fullLayout._geolayer = fullLayout._paper.append(\"g\").classed(\"geolayer\", true);\n fullLayout._funnelarealayer = fullLayout._paper.append(\"g\").classed(\"funnelarealayer\", true);\n fullLayout._pielayer = fullLayout._paper.append(\"g\").classed(\"pielayer\", true);\n fullLayout._iciclelayer = fullLayout._paper.append(\"g\").classed(\"iciclelayer\", true);\n fullLayout._treemaplayer = fullLayout._paper.append(\"g\").classed(\"treemaplayer\", true);\n fullLayout._sunburstlayer = fullLayout._paper.append(\"g\").classed(\"sunburstlayer\", true);\n fullLayout._indicatorlayer = fullLayout._toppaper.append(\"g\").classed(\"indicatorlayer\", true);\n fullLayout._glimages = fullLayout._paper.append(\"g\").classed(\"glimages\", true);\n var layerAbove = fullLayout._toppaper.append(\"g\").classed(\"layer-above\", true);\n fullLayout._imageUpperLayer = layerAbove.append(\"g\").classed(\"imagelayer\", true);\n fullLayout._shapeUpperLayer = layerAbove.append(\"g\").classed(\"shapelayer\", true);\n fullLayout._selectionLayer = fullLayout._toppaper.append(\"g\").classed(\"selectionlayer\", true);\n fullLayout._infolayer = fullLayout._toppaper.append(\"g\").classed(\"infolayer\", true);\n fullLayout._menulayer = fullLayout._toppaper.append(\"g\").classed(\"menulayer\", true);\n fullLayout._zoomlayer = fullLayout._toppaper.append(\"g\").classed(\"zoomlayer\", true);\n fullLayout._hoverlayer = fullLayout._hoverpaper.append(\"g\").classed(\"hoverlayer\", true);\n fullLayout._modebardiv.classed(\"modebar-container\", true).style(\"position\", \"absolute\").style(\"top\", \"0px\").style(\"right\", \"0px\");\n gd.emit(\"plotly_framework\");\n }\n exports.animate = animate;\n exports.addFrames = addFrames;\n exports.deleteFrames = deleteFrames;\n exports.addTraces = addTraces;\n exports.deleteTraces = deleteTraces;\n exports.extendTraces = extendTraces;\n exports.moveTraces = moveTraces;\n exports.prependTraces = prependTraces;\n exports.newPlot = newPlot;\n exports._doPlot = _doPlot;\n exports.purge = purge;\n exports.react = react;\n exports.redraw = redraw;\n exports.relayout = relayout;\n exports.restyle = restyle;\n exports.setPlotConfig = setPlotConfig;\n exports.update = update;\n exports._guiRelayout = guiEdit(relayout);\n exports._guiRestyle = guiEdit(restyle);\n exports._guiUpdate = guiEdit(update);\n exports._storeDirectGUIEdit = _storeDirectGUIEdit;\n }\n });\n\n // src/snapshot/helpers.js\n var require_helpers10 = __commonJS({\n \"src/snapshot/helpers.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n exports.getDelay = function(fullLayout) {\n if (!fullLayout._has) return 0;\n return fullLayout._has(\"gl3d\") || fullLayout._has(\"mapbox\") || fullLayout._has(\"map\") ? 500 : 0;\n };\n exports.getRedrawFunc = function(gd) {\n return function() {\n Registry.getComponentMethod(\"colorbar\", \"draw\")(gd);\n };\n };\n exports.encodeSVG = function(svg) {\n return \"data:image/svg+xml,\" + encodeURIComponent(svg);\n };\n exports.encodeJSON = function(json) {\n return \"data:application/json,\" + encodeURIComponent(json);\n };\n var DOM_URL = window.URL || window.webkitURL;\n exports.createObjectURL = function(blob) {\n return DOM_URL.createObjectURL(blob);\n };\n exports.revokeObjectURL = function(url) {\n return DOM_URL.revokeObjectURL(url);\n };\n exports.createBlob = function(url, format) {\n if (format === \"svg\") {\n return new window.Blob([url], { type: \"image/svg+xml;charset=utf-8\" });\n } else if (format === \"full-json\") {\n return new window.Blob([url], { type: \"application/json;charset=utf-8\" });\n } else {\n var binary = fixBinary(window.atob(url));\n return new window.Blob([binary], { type: \"image/\" + format });\n }\n };\n exports.octetStream = function(s) {\n document.location.href = \"data:application/octet-stream\" + s;\n };\n function fixBinary(b) {\n var len = b.length;\n var buf = new ArrayBuffer(len);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < len; i++) {\n arr[i] = b.charCodeAt(i);\n }\n return buf;\n }\n exports.IMAGE_URL_PREFIX = /^data:image\\/\\w+;base64,/;\n }\n });\n\n // src/snapshot/tosvg.js\n var require_tosvg = __commonJS({\n \"src/snapshot/tosvg.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var xmlnsNamespaces = require_xmlns_namespaces();\n var DOUBLEQUOTE_REGEX = /\"/g;\n var DUMMY_SUB = \"TOBESTRIPPED\";\n var DUMMY_REGEX = new RegExp('(\"' + DUMMY_SUB + \")|(\" + DUMMY_SUB + '\")', \"g\");\n function htmlEntityDecode(s) {\n var hiddenDiv = d3.select(\"body\").append(\"div\").style({ display: \"none\" }).html(\"\");\n var replaced = s.replace(/(&[^;]*;)/gi, function(d) {\n if (d === \"<\") {\n return \"<\";\n }\n if (d === \"&rt;\") {\n return \">\";\n }\n if (d.indexOf(\"<\") !== -1 || d.indexOf(\">\") !== -1) {\n return \"\";\n }\n return hiddenDiv.html(d).text();\n });\n hiddenDiv.remove();\n return replaced;\n }\n function xmlEntityEncode(str) {\n return str.replace(/&(?!\\w+;|\\#[0-9]+;| \\#x[0-9A-F]+;)/g, \"&\");\n }\n module.exports = function toSVG(gd, format, scale) {\n var fullLayout = gd._fullLayout;\n var svg = fullLayout._paper;\n var toppaper = fullLayout._toppaper;\n var width = fullLayout.width;\n var height = fullLayout.height;\n var i;\n svg.insert(\"rect\", \":first-child\").call(Drawing.setRect, 0, 0, width, height).call(Color2.fill, fullLayout.paper_bgcolor);\n var basePlotModules = fullLayout._basePlotModules || [];\n for (i = 0; i < basePlotModules.length; i++) {\n var _module = basePlotModules[i];\n if (_module.toSVG) _module.toSVG(gd);\n }\n if (toppaper) {\n var nodes = toppaper.node().childNodes;\n var topGroups = Array.prototype.slice.call(nodes);\n for (i = 0; i < topGroups.length; i++) {\n var topGroup = topGroups[i];\n if (topGroup.childNodes.length) svg.node().appendChild(topGroup);\n }\n }\n if (fullLayout._draggers) {\n fullLayout._draggers.remove();\n }\n svg.node().style.background = \"\";\n svg.selectAll(\"text\").attr({ \"data-unformatted\": null, \"data-math\": null }).each(function() {\n var txt = d3.select(this);\n if (this.style.visibility === \"hidden\" || this.style.display === \"none\") {\n txt.remove();\n return;\n } else {\n txt.style({ visibility: null, display: null });\n }\n var ff = this.style.fontFamily;\n if (ff && ff.indexOf('\"') !== -1) {\n txt.style(\"font-family\", ff.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));\n }\n var fw = this.style.fontWeight;\n if (fw && (fw === \"normal\" || fw === \"400\")) {\n txt.style(\"font-weight\", void 0);\n }\n var fs = this.style.fontStyle;\n if (fs && fs === \"normal\") {\n txt.style(\"font-style\", void 0);\n }\n var fv = this.style.fontVariant;\n if (fv && fv === \"normal\") {\n txt.style(\"font-variant\", void 0);\n }\n });\n svg.selectAll(\".gradient_filled,.pattern_filled\").each(function() {\n var pt = d3.select(this);\n var fill = this.style.fill;\n if (fill && fill.indexOf(\"url(\") !== -1) {\n pt.style(\"fill\", fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));\n }\n var stroke = this.style.stroke;\n if (stroke && stroke.indexOf(\"url(\") !== -1) {\n pt.style(\"stroke\", stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));\n }\n });\n if (format === \"pdf\" || format === \"eps\") {\n svg.selectAll(\"#MathJax_SVG_glyphs path\").attr(\"stroke-width\", 0);\n }\n if (format === \"svg\" && scale) {\n svg.attr(\"width\", scale * width);\n svg.attr(\"height\", scale * height);\n svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n }\n var s = new window.XMLSerializer().serializeToString(svg.node());\n s = htmlEntityDecode(s);\n s = xmlEntityEncode(s);\n s = s.replace(DUMMY_REGEX, \"'\");\n return s;\n };\n }\n });\n\n // src/snapshot/svgtoimg.js\n var require_svgtoimg = __commonJS({\n \"src/snapshot/svgtoimg.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var EventEmitter = require_events().EventEmitter;\n var helpers = require_helpers10();\n function svgToImg(opts) {\n var ev = opts.emitter || new EventEmitter();\n var promise = new Promise(function(resolve, reject) {\n var Image2 = window.Image;\n var svg = opts.svg;\n var format = opts.format || \"png\";\n var canvas = opts.canvas;\n var scale = opts.scale || 1;\n var w0 = opts.width || 300;\n var h0 = opts.height || 150;\n var w1 = scale * w0;\n var h1 = scale * h0;\n var ctx = canvas.getContext(\"2d\", { willReadFrequently: true });\n var img = new Image2();\n var svgBlob, url;\n if (format === \"svg\" || Lib.isSafari()) {\n url = helpers.encodeSVG(svg);\n } else {\n svgBlob = helpers.createBlob(svg, \"svg\");\n url = helpers.createObjectURL(svgBlob);\n }\n canvas.width = w1;\n canvas.height = h1;\n img.onload = function() {\n var imgData;\n svgBlob = null;\n helpers.revokeObjectURL(url);\n if (format !== \"svg\") {\n ctx.drawImage(img, 0, 0, w1, h1);\n }\n switch (format) {\n case \"jpeg\":\n imgData = canvas.toDataURL(\"image/jpeg\");\n break;\n case \"png\":\n imgData = canvas.toDataURL(\"image/png\");\n break;\n case \"webp\":\n imgData = canvas.toDataURL(\"image/webp\");\n break;\n case \"svg\":\n imgData = url;\n break;\n default:\n var errorMsg = \"Image format is not jpeg, png, svg or webp.\";\n reject(new Error(errorMsg));\n if (!opts.promise) {\n return ev.emit(\"error\", errorMsg);\n }\n }\n resolve(imgData);\n if (!opts.promise) {\n ev.emit(\"success\", imgData);\n }\n };\n img.onerror = function(err) {\n svgBlob = null;\n helpers.revokeObjectURL(url);\n reject(err);\n if (!opts.promise) {\n return ev.emit(\"error\", err);\n }\n };\n img.src = url;\n });\n if (opts.promise) {\n return promise;\n }\n return ev;\n }\n module.exports = svgToImg;\n }\n });\n\n // src/plot_api/to_image.js\n var require_to_image = __commonJS({\n \"src/plot_api/to_image.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var plotApi = require_plot_api();\n var plots = require_plots();\n var Lib = require_lib();\n var helpers = require_helpers10();\n var toSVG = require_tosvg();\n var svgToImg = require_svgtoimg();\n var version = require_version().version;\n var attrs = {\n format: {\n valType: \"enumerated\",\n values: [\"png\", \"jpeg\", \"webp\", \"svg\", \"full-json\"],\n dflt: \"png\"\n },\n width: {\n valType: \"number\",\n min: 1\n },\n height: {\n valType: \"number\",\n min: 1\n },\n scale: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n setBackground: {\n valType: \"any\",\n dflt: false\n },\n imageDataOnly: {\n valType: \"boolean\",\n dflt: false\n }\n };\n function toImage(gd, opts) {\n opts = opts || {};\n var data;\n var layout;\n var config;\n var fullLayout;\n if (Lib.isPlainObject(gd)) {\n data = gd.data || [];\n layout = gd.layout || {};\n config = gd.config || {};\n fullLayout = {};\n } else {\n gd = Lib.getGraphDiv(gd);\n data = Lib.extendDeep([], gd.data);\n layout = Lib.extendDeep({}, gd.layout);\n config = gd._context;\n fullLayout = gd._fullLayout || {};\n }\n function isImpliedOrValid(attr) {\n return !(attr in opts) || Lib.validate(opts[attr], attrs[attr]);\n }\n if (!isImpliedOrValid(\"width\") && opts.width !== null || !isImpliedOrValid(\"height\") && opts.height !== null) {\n throw new Error(\"Height and width should be pixel values.\");\n }\n if (!isImpliedOrValid(\"format\")) {\n throw new Error(\"Export format is not \" + Lib.join2(attrs.format.values, \", \", \" or \") + \".\");\n }\n var fullOpts = {};\n function coerce(attr, dflt) {\n return Lib.coerce(opts, fullOpts, attrs, attr, dflt);\n }\n var format = coerce(\"format\");\n var width = coerce(\"width\");\n var height = coerce(\"height\");\n var scale = coerce(\"scale\");\n var setBackground = coerce(\"setBackground\");\n var imageDataOnly = coerce(\"imageDataOnly\");\n var clonedGd = document.createElement(\"div\");\n clonedGd.style.position = \"absolute\";\n clonedGd.style.left = \"-5000px\";\n document.body.appendChild(clonedGd);\n var layoutImage = Lib.extendFlat({}, layout);\n if (width) {\n layoutImage.width = width;\n } else if (opts.width === null && isNumeric(fullLayout.width)) {\n layoutImage.width = fullLayout.width;\n }\n if (height) {\n layoutImage.height = height;\n } else if (opts.height === null && isNumeric(fullLayout.height)) {\n layoutImage.height = fullLayout.height;\n }\n var configImage = Lib.extendFlat({}, config, {\n _exportedPlot: true,\n staticPlot: true,\n setBackground\n });\n var redrawFunc = helpers.getRedrawFunc(clonedGd);\n function wait() {\n return new Promise(function(resolve) {\n setTimeout(resolve, helpers.getDelay(clonedGd._fullLayout));\n });\n }\n function convert() {\n return new Promise(function(resolve, reject) {\n var svg = toSVG(clonedGd, format, scale);\n var width2 = clonedGd._fullLayout.width;\n var height2 = clonedGd._fullLayout.height;\n function cleanup() {\n plotApi.purge(clonedGd);\n document.body.removeChild(clonedGd);\n }\n if (format === \"full-json\") {\n var json = plots.graphJson(clonedGd, false, \"keepdata\", \"object\", true, true);\n json.version = version;\n json = JSON.stringify(json);\n cleanup();\n if (imageDataOnly) {\n return resolve(json);\n } else {\n return resolve(helpers.encodeJSON(json));\n }\n }\n cleanup();\n if (format === \"svg\") {\n if (imageDataOnly) {\n return resolve(svg);\n } else {\n return resolve(helpers.encodeSVG(svg));\n }\n }\n var canvas = document.createElement(\"canvas\");\n canvas.id = Lib.randstr();\n svgToImg({\n format,\n width: width2,\n height: height2,\n scale,\n canvas,\n svg,\n // ask svgToImg to return a Promise\n // rather than EventEmitter\n // leave EventEmitter for backward\n // compatibility\n promise: true\n }).then(resolve).catch(reject);\n });\n }\n function urlToImageData(url) {\n if (imageDataOnly) {\n return url.replace(helpers.IMAGE_URL_PREFIX, \"\");\n } else {\n return url;\n }\n }\n return new Promise(function(resolve, reject) {\n plotApi.newPlot(clonedGd, data, layoutImage, configImage).then(redrawFunc).then(wait).then(convert).then(function(url) {\n resolve(urlToImageData(url));\n }).catch(function(err) {\n reject(err);\n });\n });\n }\n module.exports = toImage;\n }\n });\n\n // src/plot_api/validate.js\n var require_validate = __commonJS({\n \"src/plot_api/validate.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Plots = require_plots();\n var PlotSchema = require_plot_schema();\n var dfltConfig = require_plot_config().dfltConfig;\n var isPlainObject = Lib.isPlainObject;\n var isArray = Array.isArray;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n module.exports = function validate(data, layout) {\n if (data === void 0) data = [];\n if (layout === void 0) layout = {};\n var schema = PlotSchema.get();\n var errorList = [];\n var gd = { _context: Lib.extendFlat({}, dfltConfig) };\n var dataIn, layoutIn;\n if (isArray(data)) {\n gd.data = Lib.extendDeep([], data);\n dataIn = data;\n } else {\n gd.data = [];\n dataIn = [];\n errorList.push(format(\"array\", \"data\"));\n }\n if (isPlainObject(layout)) {\n gd.layout = Lib.extendDeep({}, layout);\n layoutIn = layout;\n } else {\n gd.layout = {};\n layoutIn = {};\n if (arguments.length > 1) {\n errorList.push(format(\"object\", \"layout\"));\n }\n }\n Plots.supplyDefaults(gd);\n var dataOut = gd._fullData;\n var len = dataIn.length;\n for (var i = 0; i < len; i++) {\n var traceIn = dataIn[i];\n var base = [\"data\", i];\n if (!isPlainObject(traceIn)) {\n errorList.push(format(\"object\", base));\n continue;\n }\n var traceOut = dataOut[i];\n var traceType = traceOut.type;\n var traceSchema = schema.traces[traceType].attributes;\n traceSchema.type = {\n valType: \"enumerated\",\n values: [traceType]\n };\n if (traceOut.visible === false && traceIn.visible !== false) {\n errorList.push(format(\"invisible\", base));\n }\n crawl(traceIn, traceOut, traceSchema, errorList, base);\n }\n var layoutOut = gd._fullLayout;\n var layoutSchema = fillLayoutSchema(schema, dataOut);\n crawl(layoutIn, layoutOut, layoutSchema, errorList, \"layout\");\n return errorList.length === 0 ? void 0 : errorList;\n };\n function crawl(objIn, objOut, schema, list, base, path) {\n path = path || [];\n var keys = Object.keys(objIn);\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n var p = path.slice();\n p.push(k);\n var valIn = objIn[k];\n var valOut = objOut[k];\n var nestedSchema = getNestedSchema(schema, k);\n var nestedValType = (nestedSchema || {}).valType;\n var isInfoArray = nestedValType === \"info_array\";\n var isColorscale = nestedValType === \"colorscale\";\n var items = (nestedSchema || {}).items;\n if (!isInSchema(schema, k)) {\n list.push(format(\"schema\", base, p));\n } else if (isPlainObject(valIn) && isPlainObject(valOut) && nestedValType !== \"any\") {\n crawl(valIn, valOut, nestedSchema, list, base, p);\n } else if (isInfoArray && isArray(valIn)) {\n if (valIn.length > valOut.length) {\n list.push(format(\"unused\", base, p.concat(valOut.length)));\n }\n var len = valOut.length;\n var arrayItems = Array.isArray(items);\n if (arrayItems) len = Math.min(len, items.length);\n var m, n, item, valInPart, valOutPart;\n if (nestedSchema.dimensions === 2) {\n for (n = 0; n < len; n++) {\n if (isArray(valIn[n])) {\n if (valIn[n].length > valOut[n].length) {\n list.push(format(\"unused\", base, p.concat(n, valOut[n].length)));\n }\n var len2 = valOut[n].length;\n for (m = 0; m < (arrayItems ? Math.min(len2, items[n].length) : len2); m++) {\n item = arrayItems ? items[n][m] : items;\n valInPart = valIn[n][m];\n valOutPart = valOut[n][m];\n if (!Lib.validate(valInPart, item)) {\n list.push(format(\"value\", base, p.concat(n, m), valInPart));\n } else if (valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format(\"dynamic\", base, p.concat(n, m), valInPart, valOutPart));\n }\n }\n } else {\n list.push(format(\"array\", base, p.concat(n), valIn[n]));\n }\n }\n } else {\n for (n = 0; n < len; n++) {\n item = arrayItems ? items[n] : items;\n valInPart = valIn[n];\n valOutPart = valOut[n];\n if (!Lib.validate(valInPart, item)) {\n list.push(format(\"value\", base, p.concat(n), valInPart));\n } else if (valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format(\"dynamic\", base, p.concat(n), valInPart, valOutPart));\n }\n }\n }\n } else if (nestedSchema.items && !isInfoArray && isArray(valIn)) {\n var _nestedSchema = items[Object.keys(items)[0]];\n var indexList = [];\n var j, _p;\n for (j = 0; j < valOut.length; j++) {\n var _index = valOut[j]._index || j;\n _p = p.slice();\n _p.push(_index);\n if (isPlainObject(valIn[_index]) && isPlainObject(valOut[j])) {\n indexList.push(_index);\n var valInj = valIn[_index];\n var valOutj = valOut[j];\n if (isPlainObject(valInj) && valInj.visible !== false && valOutj.visible === false) {\n list.push(format(\"invisible\", base, _p));\n } else crawl(valInj, valOutj, _nestedSchema, list, base, _p);\n }\n }\n for (j = 0; j < valIn.length; j++) {\n _p = p.slice();\n _p.push(j);\n if (!isPlainObject(valIn[j])) {\n list.push(format(\"object\", base, _p, valIn[j]));\n } else if (indexList.indexOf(j) === -1) {\n list.push(format(\"unused\", base, _p));\n }\n }\n } else if (!isPlainObject(valIn) && isPlainObject(valOut)) {\n list.push(format(\"object\", base, p, valIn));\n } else if (!isArrayOrTypedArray(valIn) && isArrayOrTypedArray(valOut) && !isInfoArray && !isColorscale) {\n list.push(format(\"array\", base, p, valIn));\n } else if (!(k in objOut)) {\n list.push(format(\"unused\", base, p, valIn));\n } else if (!Lib.validate(valIn, nestedSchema)) {\n list.push(format(\"value\", base, p, valIn));\n } else if (nestedSchema.valType === \"enumerated\" && (nestedSchema.coerceNumber && valIn !== +valOut || valIn !== valOut)) {\n list.push(format(\"dynamic\", base, p, valIn, valOut));\n }\n }\n return list;\n }\n function fillLayoutSchema(schema, dataOut) {\n var layoutSchema = schema.layout.layoutAttributes;\n for (var i = 0; i < dataOut.length; i++) {\n var traceOut = dataOut[i];\n var traceSchema = schema.traces[traceOut.type];\n var traceLayoutAttr = traceSchema.layoutAttributes;\n if (traceLayoutAttr) {\n if (traceOut.subplot) {\n Lib.extendFlat(layoutSchema[traceSchema.attributes.subplot.dflt], traceLayoutAttr);\n } else {\n Lib.extendFlat(layoutSchema, traceLayoutAttr);\n }\n }\n }\n return layoutSchema;\n }\n var code2msgFunc = {\n object: function(base, astr) {\n var prefix;\n if (base === \"layout\" && astr === \"\") prefix = \"The layout argument\";\n else if (base[0] === \"data\" && astr === \"\") {\n prefix = \"Trace \" + base[1] + \" in the data argument\";\n } else prefix = inBase(base) + \"key \" + astr;\n return prefix + \" must be linked to an object container\";\n },\n array: function(base, astr) {\n var prefix;\n if (base === \"data\") prefix = \"The data argument\";\n else prefix = inBase(base) + \"key \" + astr;\n return prefix + \" must be linked to an array container\";\n },\n schema: function(base, astr) {\n return inBase(base) + \"key \" + astr + \" is not part of the schema\";\n },\n unused: function(base, astr, valIn) {\n var target = isPlainObject(valIn) ? \"container\" : \"key\";\n return inBase(base) + target + \" \" + astr + \" did not get coerced\";\n },\n dynamic: function(base, astr, valIn, valOut) {\n return [\n inBase(base) + \"key\",\n astr,\n \"(set to '\" + valIn + \"')\",\n \"got reset to\",\n \"'\" + valOut + \"'\",\n \"during defaults.\"\n ].join(\" \");\n },\n invisible: function(base, astr) {\n return (astr ? inBase(base) + \"item \" + astr : \"Trace \" + base[1]) + \" got defaulted to be not visible\";\n },\n value: function(base, astr, valIn) {\n return [\n inBase(base) + \"key \" + astr,\n \"is set to an invalid value (\" + valIn + \")\"\n ].join(\" \");\n }\n };\n function inBase(base) {\n if (isArray(base)) return \"In data trace \" + base[1] + \", \";\n return \"In \" + base + \", \";\n }\n function format(code, base, path, valIn, valOut) {\n path = path || \"\";\n var container, trace;\n if (isArray(base)) {\n container = base[0];\n trace = base[1];\n } else {\n container = base;\n trace = null;\n }\n var astr = convertPathToAttributeString(path);\n var msg = code2msgFunc[code](base, astr, valIn, valOut);\n Lib.log(msg);\n return {\n code,\n container,\n trace,\n path,\n astr,\n msg\n };\n }\n function isInSchema(schema, key) {\n var parts = splitKey(key);\n var keyMinusId = parts.keyMinusId;\n var id = parts.id;\n if (keyMinusId in schema && schema[keyMinusId]._isSubplotObj && id) {\n return true;\n }\n return key in schema;\n }\n function getNestedSchema(schema, key) {\n if (key in schema) return schema[key];\n var parts = splitKey(key);\n return schema[parts.keyMinusId];\n }\n var idRegex = Lib.counterRegex(\"([a-z]+)\");\n function splitKey(key) {\n var idMatch = key.match(idRegex);\n return {\n keyMinusId: idMatch && idMatch[1],\n id: idMatch && idMatch[2]\n };\n }\n function convertPathToAttributeString(path) {\n if (!isArray(path)) return String(path);\n var astr = \"\";\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n if (typeof p === \"number\") {\n astr = astr.substr(0, astr.length - 1) + \"[\" + p + \"]\";\n } else {\n astr += p;\n }\n if (i < path.length - 1) astr += \".\";\n }\n return astr;\n }\n }\n });\n\n // src/snapshot/filesaver.js\n var require_filesaver = __commonJS({\n \"src/snapshot/filesaver.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var helpers = require_helpers10();\n function fileSaver(url, name2, format) {\n var saveLink = document.createElement(\"a\");\n var canUseSaveLink = \"download\" in saveLink;\n var promise = new Promise(function(resolve, reject) {\n var blob;\n var objectUrl;\n if (canUseSaveLink) {\n blob = helpers.createBlob(url, format);\n objectUrl = helpers.createObjectURL(blob);\n saveLink.href = objectUrl;\n saveLink.download = name2;\n document.body.appendChild(saveLink);\n saveLink.click();\n document.body.removeChild(saveLink);\n helpers.revokeObjectURL(objectUrl);\n blob = null;\n return resolve(name2);\n }\n if (Lib.isSafari()) {\n var prefix = format === \"svg\" ? \",\" : \";base64,\";\n helpers.octetStream(prefix + encodeURIComponent(url));\n return resolve(name2);\n }\n reject(new Error(\"download error\"));\n });\n return promise;\n }\n module.exports = fileSaver;\n }\n });\n\n // src/snapshot/download.js\n var require_download = __commonJS({\n \"src/snapshot/download.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var toImage = require_to_image();\n var fileSaver = require_filesaver();\n var helpers = require_helpers10();\n function downloadImage(gd, opts) {\n var _gd;\n if (!Lib.isPlainObject(gd)) _gd = Lib.getGraphDiv(gd);\n opts = opts || {};\n opts.format = opts.format || \"png\";\n opts.width = opts.width || null;\n opts.height = opts.height || null;\n opts.imageDataOnly = true;\n return new Promise(function(resolve, reject) {\n if (_gd && _gd._snapshotInProgress) {\n reject(new Error(\"Snapshotting already in progress.\"));\n }\n if (_gd) _gd._snapshotInProgress = true;\n var promise = toImage(gd, opts);\n var filename = opts.filename || gd.fn || \"newplot\";\n filename += \".\" + opts.format.replace(\"-\", \".\");\n promise.then(function(result) {\n if (_gd) _gd._snapshotInProgress = false;\n return fileSaver(result, filename, opts.format);\n }).then(function(name2) {\n resolve(name2);\n }).catch(function(err) {\n if (_gd) _gd._snapshotInProgress = false;\n reject(err);\n });\n });\n }\n module.exports = downloadImage;\n }\n });\n\n // src/plot_api/template_api.js\n var require_template_api = __commonJS({\n \"src/plot_api/template_api.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var isPlainObject = Lib.isPlainObject;\n var PlotSchema = require_plot_schema();\n var Plots = require_plots();\n var plotAttributes = require_attributes2();\n var Template = require_plot_template();\n var dfltConfig = require_plot_config().dfltConfig;\n exports.makeTemplate = function(figure) {\n figure = Lib.isPlainObject(figure) ? figure : Lib.getGraphDiv(figure);\n figure = Lib.extendDeep({ _context: dfltConfig }, { data: figure.data, layout: figure.layout });\n Plots.supplyDefaults(figure);\n var data = figure.data || [];\n var layout = figure.layout || {};\n layout._basePlotModules = figure._fullLayout._basePlotModules;\n layout._modules = figure._fullLayout._modules;\n var template = {\n data: {},\n layout: {}\n };\n data.forEach(function(trace) {\n var traceTemplate = {};\n walkStyleKeys(trace, traceTemplate, getTraceInfo.bind(null, trace));\n var traceType2 = Lib.coerce(trace, {}, plotAttributes, \"type\");\n var typeTemplates2 = template.data[traceType2];\n if (!typeTemplates2) typeTemplates2 = template.data[traceType2] = [];\n typeTemplates2.push(traceTemplate);\n });\n walkStyleKeys(layout, template.layout, getLayoutInfo.bind(null, layout));\n delete template.layout.template;\n var oldTemplate = layout.template;\n if (isPlainObject(oldTemplate)) {\n var oldLayoutTemplate = oldTemplate.layout;\n var i, traceType, oldTypeTemplates, oldTypeLen, typeTemplates, typeLen;\n if (isPlainObject(oldLayoutTemplate)) {\n mergeTemplates(oldLayoutTemplate, template.layout);\n }\n var oldDataTemplate = oldTemplate.data;\n if (isPlainObject(oldDataTemplate)) {\n for (traceType in template.data) {\n oldTypeTemplates = oldDataTemplate[traceType];\n if (Array.isArray(oldTypeTemplates)) {\n typeTemplates = template.data[traceType];\n typeLen = typeTemplates.length;\n oldTypeLen = oldTypeTemplates.length;\n for (i = 0; i < typeLen; i++) {\n mergeTemplates(oldTypeTemplates[i % oldTypeLen], typeTemplates[i]);\n }\n for (i = typeLen; i < oldTypeLen; i++) {\n typeTemplates.push(Lib.extendDeep({}, oldTypeTemplates[i]));\n }\n }\n }\n for (traceType in oldDataTemplate) {\n if (!(traceType in template.data)) {\n template.data[traceType] = Lib.extendDeep([], oldDataTemplate[traceType]);\n }\n }\n }\n }\n return template;\n };\n function mergeTemplates(oldTemplate, newTemplate) {\n oldTemplate = Lib.extendDeep({}, oldTemplate);\n var oldKeys = Object.keys(oldTemplate).sort();\n var i, j;\n function mergeOne(oldVal2, newVal, key3) {\n if (isPlainObject(newVal) && isPlainObject(oldVal2)) {\n mergeTemplates(oldVal2, newVal);\n } else if (Array.isArray(newVal) && Array.isArray(oldVal2)) {\n var templater = Template.arrayTemplater({ _template: oldTemplate }, key3);\n for (j = 0; j < newVal.length; j++) {\n var item = newVal[j];\n var oldItem = templater.newItem(item)._template;\n if (oldItem) mergeTemplates(oldItem, item);\n }\n var defaultItems = templater.defaultItems();\n for (j = 0; j < defaultItems.length; j++) newVal.push(defaultItems[j]._template);\n for (j = 0; j < newVal.length; j++) delete newVal[j].templateitemname;\n }\n }\n for (i = 0; i < oldKeys.length; i++) {\n var key = oldKeys[i];\n var oldVal = oldTemplate[key];\n if (key in newTemplate) {\n mergeOne(oldVal, newTemplate[key], key);\n } else newTemplate[key] = oldVal;\n if (getBaseKey(key) === key) {\n for (var key2 in newTemplate) {\n var baseKey2 = getBaseKey(key2);\n if (key2 !== baseKey2 && baseKey2 === key && !(key2 in oldTemplate)) {\n mergeOne(oldVal, newTemplate[key2], key);\n }\n }\n }\n }\n }\n function getBaseKey(key) {\n return key.replace(/[0-9]+$/, \"\");\n }\n function walkStyleKeys(parent, templateOut, getAttributeInfo, path, basePath) {\n var pathAttr = basePath && getAttributeInfo(basePath);\n for (var key in parent) {\n var child = parent[key];\n var nextPath = getNextPath(parent, key, path);\n var nextBasePath = getNextPath(parent, key, basePath);\n var attr = getAttributeInfo(nextBasePath);\n if (!attr) {\n var baseKey = getBaseKey(key);\n if (baseKey !== key) {\n nextBasePath = getNextPath(parent, baseKey, basePath);\n attr = getAttributeInfo(nextBasePath);\n }\n }\n if (pathAttr && pathAttr === attr) continue;\n if (!attr || attr._noTemplating || attr.valType === \"data_array\" || attr.arrayOk && Array.isArray(child)) {\n continue;\n }\n if (!attr.valType && isPlainObject(child)) {\n walkStyleKeys(child, templateOut, getAttributeInfo, nextPath, nextBasePath);\n } else if (attr._isLinkedToArray && Array.isArray(child)) {\n var dfltDone = false;\n var namedIndex = 0;\n var usedNames = {};\n for (var i = 0; i < child.length; i++) {\n var item = child[i];\n if (isPlainObject(item)) {\n var name2 = item.name;\n if (name2) {\n if (!usedNames[name2]) {\n walkStyleKeys(\n item,\n templateOut,\n getAttributeInfo,\n getNextPath(child, namedIndex, nextPath),\n getNextPath(child, namedIndex, nextBasePath)\n );\n namedIndex++;\n usedNames[name2] = 1;\n }\n } else if (!dfltDone) {\n var dfltKey = Template.arrayDefaultKey(key);\n var dfltPath = getNextPath(parent, dfltKey, path);\n var pathInArray = getNextPath(child, namedIndex, nextPath);\n walkStyleKeys(\n item,\n templateOut,\n getAttributeInfo,\n pathInArray,\n getNextPath(child, namedIndex, nextBasePath)\n );\n var itemPropInArray = Lib.nestedProperty(templateOut, pathInArray);\n var dfltProp = Lib.nestedProperty(templateOut, dfltPath);\n dfltProp.set(itemPropInArray.get());\n itemPropInArray.set(null);\n dfltDone = true;\n }\n }\n }\n } else {\n var templateProp = Lib.nestedProperty(templateOut, nextPath);\n templateProp.set(child);\n }\n }\n }\n function getLayoutInfo(layout, path) {\n return PlotSchema.getLayoutValObject(\n layout,\n Lib.nestedProperty({}, path).parts\n );\n }\n function getTraceInfo(trace, path) {\n return PlotSchema.getTraceValObject(\n trace,\n Lib.nestedProperty({}, path).parts\n );\n }\n function getNextPath(parent, key, path) {\n var nextPath;\n if (!path) nextPath = key;\n else if (Array.isArray(parent)) nextPath = path + \"[\" + key + \"]\";\n else nextPath = path + \".\" + key;\n return nextPath;\n }\n exports.validateTemplate = function(figureIn, template) {\n var figure = Lib.extendDeep({}, {\n _context: dfltConfig,\n data: figureIn.data,\n layout: figureIn.layout\n });\n var layout = figure.layout || {};\n if (!isPlainObject(template)) template = layout.template || {};\n var layoutTemplate = template.layout;\n var dataTemplate = template.data;\n var errorList = [];\n figure.layout = layout;\n figure.layout.template = template;\n Plots.supplyDefaults(figure);\n var fullLayout = figure._fullLayout;\n var fullData = figure._fullData;\n var layoutPaths = {};\n function crawlLayoutForContainers(obj, paths) {\n for (var key in obj) {\n if (key.charAt(0) !== \"_\" && isPlainObject(obj[key])) {\n var baseKey = getBaseKey(key);\n var nextPaths = [];\n var i2;\n for (i2 = 0; i2 < paths.length; i2++) {\n nextPaths.push(getNextPath(obj, key, paths[i2]));\n if (baseKey !== key) nextPaths.push(getNextPath(obj, baseKey, paths[i2]));\n }\n for (i2 = 0; i2 < nextPaths.length; i2++) {\n layoutPaths[nextPaths[i2]] = 1;\n }\n crawlLayoutForContainers(obj[key], nextPaths);\n }\n }\n }\n function crawlLayoutTemplateForContainers(obj, path) {\n for (var key in obj) {\n if (key.indexOf(\"defaults\") === -1 && isPlainObject(obj[key])) {\n var nextPath = getNextPath(obj, key, path);\n if (layoutPaths[nextPath]) {\n crawlLayoutTemplateForContainers(obj[key], nextPath);\n } else {\n errorList.push({ code: \"unused\", path: nextPath });\n }\n }\n }\n }\n if (!isPlainObject(layoutTemplate)) {\n errorList.push({ code: \"layout\" });\n } else {\n crawlLayoutForContainers(fullLayout, [\"layout\"]);\n crawlLayoutTemplateForContainers(layoutTemplate, \"layout\");\n }\n if (!isPlainObject(dataTemplate)) {\n errorList.push({ code: \"data\" });\n } else {\n var typeCount = {};\n var traceType;\n for (var i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n traceType = fullTrace.type;\n typeCount[traceType] = (typeCount[traceType] || 0) + 1;\n if (!fullTrace._fullInput._template) {\n errorList.push({\n code: \"missing\",\n index: fullTrace.index,\n traceType\n });\n }\n }\n for (traceType in dataTemplate) {\n var templateCount = dataTemplate[traceType].length;\n var dataCount = typeCount[traceType] || 0;\n if (templateCount > dataCount) {\n errorList.push({\n code: \"unused\",\n traceType,\n templateCount,\n dataCount\n });\n } else if (dataCount > templateCount) {\n errorList.push({\n code: \"reused\",\n traceType,\n templateCount,\n dataCount\n });\n }\n }\n }\n function crawlForMissingTemplates(obj, path) {\n for (var key in obj) {\n if (key.charAt(0) === \"_\") continue;\n var val = obj[key];\n var nextPath = getNextPath(obj, key, path);\n if (isPlainObject(val)) {\n if (Array.isArray(obj) && val._template === false && val.templateitemname) {\n errorList.push({\n code: \"missing\",\n path: nextPath,\n templateitemname: val.templateitemname\n });\n }\n crawlForMissingTemplates(val, nextPath);\n } else if (Array.isArray(val) && hasPlainObject(val)) {\n crawlForMissingTemplates(val, nextPath);\n }\n }\n }\n crawlForMissingTemplates({ data: fullData, layout: fullLayout }, \"\");\n if (errorList.length) return errorList.map(format);\n };\n function hasPlainObject(arr) {\n for (var i = 0; i < arr.length; i++) {\n if (isPlainObject(arr[i])) return true;\n }\n }\n function format(opts) {\n var msg;\n switch (opts.code) {\n case \"data\":\n msg = \"The template has no key data.\";\n break;\n case \"layout\":\n msg = \"The template has no key layout.\";\n break;\n case \"missing\":\n if (opts.path) {\n msg = \"There are no templates for item \" + opts.path + \" with name \" + opts.templateitemname;\n } else {\n msg = \"There are no templates for trace \" + opts.index + \", of type \" + opts.traceType + \".\";\n }\n break;\n case \"unused\":\n if (opts.path) {\n msg = \"The template item at \" + opts.path + \" was not used in constructing the plot.\";\n } else if (opts.dataCount) {\n msg = \"Some of the templates of type \" + opts.traceType + \" were not used. The template has \" + opts.templateCount + \" traces, the data only has \" + opts.dataCount + \" of this type.\";\n } else {\n msg = \"The template has \" + opts.templateCount + \" traces of type \" + opts.traceType + \" but there are none in the data.\";\n }\n break;\n case \"reused\":\n msg = \"Some of the templates of type \" + opts.traceType + \" were used more than once. The template has \" + opts.templateCount + \" traces, the data has \" + opts.dataCount + \" of this type.\";\n break;\n }\n opts.msg = msg;\n return opts;\n }\n }\n });\n\n // src/plot_api/index.js\n var require_plot_api2 = __commonJS({\n \"src/plot_api/index.js\"(exports) {\n \"use strict\";\n var main = require_plot_api();\n exports._doPlot = main._doPlot;\n exports.newPlot = main.newPlot;\n exports.restyle = main.restyle;\n exports.relayout = main.relayout;\n exports.redraw = main.redraw;\n exports.update = main.update;\n exports._guiRestyle = main._guiRestyle;\n exports._guiRelayout = main._guiRelayout;\n exports._guiUpdate = main._guiUpdate;\n exports._storeDirectGUIEdit = main._storeDirectGUIEdit;\n exports.react = main.react;\n exports.extendTraces = main.extendTraces;\n exports.prependTraces = main.prependTraces;\n exports.addTraces = main.addTraces;\n exports.deleteTraces = main.deleteTraces;\n exports.moveTraces = main.moveTraces;\n exports.purge = main.purge;\n exports.addFrames = main.addFrames;\n exports.deleteFrames = main.deleteFrames;\n exports.animate = main.animate;\n exports.setPlotConfig = main.setPlotConfig;\n var getGraphDiv = require_dom().getGraphDiv;\n var eraseActiveShape = require_draw2().eraseActiveShape;\n exports.deleteActiveShape = function(gd) {\n return eraseActiveShape(getGraphDiv(gd));\n };\n exports.toImage = require_to_image();\n exports.validate = require_validate();\n exports.downloadImage = require_download();\n var templateApi = require_template_api();\n exports.makeTemplate = templateApi.makeTemplate;\n exports.validateTemplate = templateApi.validateTemplate;\n }\n });\n\n // src/traces/scatter/xy_defaults.js\n var require_xy_defaults = __commonJS({\n \"src/traces/scatter/xy_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n module.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var len;\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\"], layout);\n if (x) {\n var xlen = Lib.minRowLength(x);\n if (y) {\n len = Math.min(xlen, Lib.minRowLength(y));\n } else {\n len = xlen;\n coerce(\"y0\");\n coerce(\"dy\");\n }\n } else {\n if (!y) return 0;\n len = Lib.minRowLength(y);\n coerce(\"x0\");\n coerce(\"dx\");\n }\n traceOut._length = len;\n return len;\n };\n }\n });\n\n // src/traces/scatter/period_defaults.js\n var require_period_defaults = __commonJS({\n \"src/traces/scatter/period_defaults.js\"(exports, module) {\n \"use strict\";\n var dateTick0 = require_lib().dateTick0;\n var numConstants = require_numerical();\n var ONEWEEK = numConstants.ONEWEEK;\n function getPeriod0Dflt(period, calendar) {\n if (period % ONEWEEK === 0) {\n return dateTick0(calendar, 1);\n }\n return dateTick0(calendar, 0);\n }\n module.exports = function handlePeriodDefaults(traceIn, traceOut, layout, coerce, opts) {\n if (!opts) {\n opts = {\n x: true,\n y: true\n };\n }\n if (opts.x) {\n var xperiod = coerce(\"xperiod\");\n if (xperiod) {\n coerce(\"xperiod0\", getPeriod0Dflt(xperiod, traceOut.xcalendar));\n coerce(\"xperiodalignment\");\n }\n }\n if (opts.y) {\n var yperiod = coerce(\"yperiod\");\n if (yperiod) {\n coerce(\"yperiod0\", getPeriod0Dflt(yperiod, traceOut.ycalendar));\n coerce(\"yperiodalignment\");\n }\n }\n };\n }\n });\n\n // src/traces/scatter/stack_defaults.js\n var require_stack_defaults = __commonJS({\n \"src/traces/scatter/stack_defaults.js\"(exports, module) {\n \"use strict\";\n var perStackAttrs = [\"orientation\", \"groupnorm\", \"stackgaps\"];\n module.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce) {\n var stackOpts = layout._scatterStackOpts;\n var stackGroup = coerce(\"stackgroup\");\n if (stackGroup) {\n var subplot = traceOut.xaxis + traceOut.yaxis;\n var subplotStackOpts = stackOpts[subplot];\n if (!subplotStackOpts) subplotStackOpts = stackOpts[subplot] = {};\n var groupOpts = subplotStackOpts[stackGroup];\n var firstTrace = false;\n if (groupOpts) {\n groupOpts.traces.push(traceOut);\n } else {\n groupOpts = subplotStackOpts[stackGroup] = {\n // keep track of trace indices for use during stacking calculations\n // this will be filled in during `calc` and used during `crossTraceCalc`\n // so it's OK if we don't recreate it during a non-calc edit\n traceIndices: [],\n // Hold on to the whole set of prior traces\n // First one is most important, so we can clear defaults\n // there if we find explicit values only in later traces.\n // We're only going to *use* the values stored in groupOpts,\n // but for the editor and validate we want things self-consistent\n // The full set of traces is used only to fix `fill` default if\n // we find `orientation: 'h'` beyond the first trace\n traces: [traceOut]\n };\n firstTrace = true;\n }\n var dflts = {\n orientation: traceOut.x && !traceOut.y ? \"h\" : \"v\"\n };\n for (var i = 0; i < perStackAttrs.length; i++) {\n var attr = perStackAttrs[i];\n var attrFound = attr + \"Found\";\n if (!groupOpts[attrFound]) {\n var traceHasAttr = traceIn[attr] !== void 0;\n var isOrientation = attr === \"orientation\";\n if (traceHasAttr || firstTrace) {\n groupOpts[attr] = coerce(attr, dflts[attr]);\n if (isOrientation) {\n groupOpts.fillDflt = groupOpts[attr] === \"h\" ? \"tonextx\" : \"tonexty\";\n }\n if (traceHasAttr) {\n groupOpts[attrFound] = true;\n if (!firstTrace) {\n delete groupOpts.traces[0][attr];\n if (isOrientation) {\n for (var j = 0; j < groupOpts.traces.length - 1; j++) {\n var trace2 = groupOpts.traces[j];\n if (trace2._input.fill !== trace2.fill) {\n trace2.fill = groupOpts.fillDflt;\n }\n }\n }\n }\n }\n }\n }\n }\n return groupOpts;\n }\n };\n }\n });\n\n // src/traces/scatter/marker_defaults.js\n var require_marker_defaults = __commonJS({\n \"src/traces/scatter/marker_defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n var subTypes = require_subtypes();\n module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n var isBubble = subTypes.isBubble(traceIn);\n var lineColor = (traceIn.line || {}).color;\n var defaultMLC;\n opts = opts || {};\n if (lineColor) defaultColor = lineColor;\n coerce(\"marker.symbol\");\n coerce(\"marker.opacity\", isBubble ? 0.7 : 1);\n coerce(\"marker.size\");\n if (!opts.noAngle) {\n coerce(\"marker.angle\");\n if (!opts.noAngleRef) {\n coerce(\"marker.angleref\");\n }\n if (!opts.noStandOff) {\n coerce(\"marker.standoff\");\n }\n }\n coerce(\"marker.color\", defaultColor);\n if (hasColorscale(traceIn, \"marker\")) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.\", cLetter: \"c\" });\n }\n if (!opts.noSelect) {\n coerce(\"selected.marker.color\");\n coerce(\"unselected.marker.color\");\n coerce(\"selected.marker.size\");\n coerce(\"unselected.marker.size\");\n }\n if (!opts.noLine) {\n if (lineColor && !Array.isArray(lineColor) && traceOut.marker.color !== lineColor) {\n defaultMLC = lineColor;\n } else if (isBubble) defaultMLC = Color2.background;\n else defaultMLC = Color2.defaultLine;\n coerce(\"marker.line.color\", defaultMLC);\n if (hasColorscale(traceIn, \"marker.line\")) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.line.\", cLetter: \"c\" });\n }\n coerce(\"marker.line.width\", isBubble ? 1 : 0);\n }\n if (isBubble) {\n coerce(\"marker.sizeref\");\n coerce(\"marker.sizemin\");\n coerce(\"marker.sizemode\");\n }\n if (opts.gradient) {\n var gradientType = coerce(\"marker.gradient.type\");\n if (gradientType !== \"none\") {\n coerce(\"marker.gradient.color\");\n }\n }\n };\n }\n });\n\n // src/traces/scatter/line_defaults.js\n var require_line_defaults = __commonJS({\n \"src/traces/scatter/line_defaults.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n module.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n if (!opts) opts = {};\n var markerColor = (traceIn.marker || {}).color;\n if (markerColor && markerColor._inputArray) markerColor = markerColor._inputArray;\n coerce(\"line.color\", defaultColor);\n if (hasColorscale(traceIn, \"line\")) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"line.\", cLetter: \"c\" });\n } else {\n var lineColorDflt = (isArrayOrTypedArray(markerColor) ? false : markerColor) || defaultColor;\n coerce(\"line.color\", lineColorDflt);\n }\n coerce(\"line.width\");\n if (!opts.noDash) coerce(\"line.dash\");\n if (opts.backoff) coerce(\"line.backoff\");\n };\n }\n });\n\n // src/traces/scatter/line_shape_defaults.js\n var require_line_shape_defaults = __commonJS({\n \"src/traces/scatter/line_shape_defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function handleLineShapeDefaults(traceIn, traceOut, coerce) {\n var shape = coerce(\"line.shape\");\n if (shape === \"spline\") coerce(\"line.smoothing\");\n };\n }\n });\n\n // src/traces/scatter/text_defaults.js\n var require_text_defaults = __commonJS({\n \"src/traces/scatter/text_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function(traceIn, traceOut, layout, coerce, opts) {\n opts = opts || {};\n coerce(\"textposition\");\n Lib.coerceFont(coerce, \"textfont\", opts.font || layout.font, opts);\n if (!opts.noSelect) {\n coerce(\"selected.textfont.color\");\n coerce(\"unselected.textfont.color\");\n }\n };\n }\n });\n\n // src/traces/scatter/fillcolor_defaults.js\n var require_fillcolor_defaults = __commonJS({\n \"src/traces/scatter/fillcolor_defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n function averageColors(colorscale) {\n var color2 = Color2.interpolate(colorscale[0][1], colorscale[1][1], 0.5);\n for (var i = 2; i < colorscale.length; i++) {\n var averageColorI = Color2.interpolate(colorscale[i - 1][1], colorscale[i][1], 0.5);\n color2 = Color2.interpolate(color2, averageColorI, colorscale[i - 1][0] / colorscale[i][0]);\n }\n return color2;\n }\n module.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coerce, opts) {\n if (!opts) opts = {};\n var inheritColorFromMarker = false;\n if (traceOut.marker) {\n var markerColor = traceOut.marker.color;\n var markerLineColor = (traceOut.marker.line || {}).color;\n if (markerColor && !isArrayOrTypedArray(markerColor)) {\n inheritColorFromMarker = markerColor;\n } else if (markerLineColor && !isArrayOrTypedArray(markerLineColor)) {\n inheritColorFromMarker = markerLineColor;\n }\n }\n var averageGradientColor;\n if (opts.moduleHasFillgradient) {\n var gradientOrientation = coerce(\"fillgradient.type\");\n if (gradientOrientation !== \"none\") {\n coerce(\"fillgradient.start\");\n coerce(\"fillgradient.stop\");\n var gradientColorscale = coerce(\"fillgradient.colorscale\");\n if (gradientColorscale) {\n averageGradientColor = averageColors(gradientColorscale);\n }\n }\n }\n coerce(\"fillcolor\", Color2.addOpacity(\n (traceOut.line || {}).color || inheritColorFromMarker || averageGradientColor || defaultColor,\n 0.5\n ));\n };\n }\n });\n\n // src/traces/scatter/defaults.js\n var require_defaults8 = __commonJS({\n \"src/traces/scatter/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var attributes = require_attributes12();\n var constants = require_constants8();\n var subTypes = require_subtypes();\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleStackDefaults = require_stack_defaults();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var coercePattern = require_lib().coercePattern;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) traceOut.visible = false;\n if (!traceOut.visible) return;\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zorder\");\n var stackGroupOpts = handleStackDefaults(traceIn, traceOut, layout, coerce);\n if (layout.scattermode === \"group\" && traceOut.orientation === void 0) {\n coerce(\"orientation\", \"v\");\n }\n var defaultMode = !stackGroupOpts && len < constants.PTS_LINESONLY ? \"lines+markers\" : \"lines\";\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"mode\", defaultMode);\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n coerce(\"line.simplify\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"cliponaxis\");\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\", stackGroupOpts ? stackGroupOpts.fillDflt : \"none\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce, {\n moduleHasFillgradient: true\n });\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n coercePattern(coerce, \"fillpattern\", traceOut.fillcolor, false);\n }\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"y\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"x\", inherit: \"y\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scatter/grouping_defaults.js\n var require_grouping_defaults = __commonJS({\n \"src/traces/scatter/grouping_defaults.js\"(exports, module) {\n \"use strict\";\n var getAxisGroup = require_constraints().getAxisGroup;\n module.exports = function handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, barmode) {\n var orientation = traceOut.orientation;\n var posAxId = traceOut[{ v: \"x\", h: \"y\" }[orientation] + \"axis\"];\n var groupId = getAxisGroup(fullLayout, posAxId) + orientation;\n var alignmentOpts = fullLayout._alignmentOpts || {};\n var alignmentgroup = coerce(\"alignmentgroup\");\n var alignmentGroups = alignmentOpts[groupId];\n if (!alignmentGroups) alignmentGroups = alignmentOpts[groupId] = {};\n var alignmentGroupOpts = alignmentGroups[alignmentgroup];\n if (alignmentGroupOpts) {\n alignmentGroupOpts.traces.push(traceOut);\n } else {\n alignmentGroupOpts = alignmentGroups[alignmentgroup] = {\n traces: [traceOut],\n alignmentIndex: Object.keys(alignmentGroups).length,\n offsetGroups: {}\n };\n }\n var offsetgroup = coerce(\"offsetgroup\") || \"\";\n var offsetGroups = alignmentGroupOpts.offsetGroups;\n var offsetGroupOpts = offsetGroups[offsetgroup];\n traceOut._offsetIndex = 0;\n if (barmode !== \"group\" || offsetgroup) {\n if (!offsetGroupOpts) {\n offsetGroupOpts = offsetGroups[offsetgroup] = {\n offsetIndex: Object.keys(offsetGroups).length\n };\n }\n traceOut._offsetIndex = offsetGroupOpts.offsetIndex;\n }\n };\n }\n });\n\n // src/traces/scatter/cross_trace_defaults.js\n var require_cross_trace_defaults2 = __commonJS({\n \"src/traces/scatter/cross_trace_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleGroupingDefaults = require_grouping_defaults();\n var attributes = require_attributes12();\n module.exports = function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut, i;\n var scattermode = fullLayout.scattermode;\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n if (fullLayout.scattermode === \"group\") {\n for (i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n if (traceOut.type === \"scatter\") {\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, scattermode);\n }\n }\n }\n for (i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if (tracei.type !== \"scatter\") continue;\n var filli = tracei.fill;\n if (filli === \"none\" || filli === \"toself\") continue;\n tracei.opacity = void 0;\n if (filli === \"tonexty\" || filli === \"tonextx\") {\n for (var j = i - 1; j >= 0; j--) {\n var tracej = fullData[j];\n if (tracej.type === \"scatter\" && tracej.xaxis === tracei.xaxis && tracej.yaxis === tracei.yaxis) {\n tracej.opacity = void 0;\n break;\n }\n }\n }\n }\n };\n }\n });\n\n // src/traces/scatter/layout_defaults.js\n var require_layout_defaults3 = __commonJS({\n \"src/traces/scatter/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes3();\n module.exports = function(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n var groupBarmode = layoutOut.barmode === \"group\";\n if (layoutOut.scattermode === \"group\") {\n coerce(\"scattergap\", groupBarmode ? layoutOut.bargap : 0.2);\n }\n };\n }\n });\n\n // src/plots/cartesian/align_period.js\n var require_align_period = __commonJS({\n \"src/plots/cartesian/align_period.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var dateTime2ms = Lib.dateTime2ms;\n var incrementMonth = Lib.incrementMonth;\n var constants = require_numerical();\n var ONEAVGMONTH = constants.ONEAVGMONTH;\n module.exports = function alignPeriod(trace, ax, axLetter, vals) {\n if (ax.type !== \"date\") return { vals };\n var alignment = trace[axLetter + \"periodalignment\"];\n if (!alignment) return { vals };\n var period = trace[axLetter + \"period\"];\n var mPeriod;\n if (isNumeric(period)) {\n period = +period;\n if (period <= 0) return { vals };\n } else if (typeof period === \"string\" && period.charAt(0) === \"M\") {\n var n = +period.substring(1);\n if (n > 0 && Math.round(n) === n) {\n mPeriod = n;\n } else return { vals };\n }\n var calendar = ax.calendar;\n var isStart = \"start\" === alignment;\n var isEnd = \"end\" === alignment;\n var period0 = trace[axLetter + \"period0\"];\n var base = dateTime2ms(period0, calendar) || 0;\n var newVals = [];\n var starts = [];\n var ends = [];\n var len = vals.length;\n for (var i = 0; i < len; i++) {\n var v = vals[i];\n var nEstimated, startTime, endTime;\n if (mPeriod) {\n nEstimated = Math.round((v - base) / (mPeriod * ONEAVGMONTH));\n endTime = incrementMonth(base, mPeriod * nEstimated, calendar);\n while (endTime > v) {\n endTime = incrementMonth(endTime, -mPeriod, calendar);\n }\n while (endTime <= v) {\n endTime = incrementMonth(endTime, mPeriod, calendar);\n }\n startTime = incrementMonth(endTime, -mPeriod, calendar);\n } else {\n nEstimated = Math.round((v - base) / period);\n endTime = base + nEstimated * period;\n while (endTime > v) {\n endTime -= period;\n }\n while (endTime <= v) {\n endTime += period;\n }\n startTime = endTime - period;\n }\n newVals[i] = isStart ? startTime : isEnd ? endTime : (startTime + endTime) / 2;\n starts[i] = startTime;\n ends[i] = endTime;\n }\n return {\n vals: newVals,\n starts,\n ends\n };\n };\n }\n });\n\n // src/traces/scatter/colorscale_calc.js\n var require_colorscale_calc = __commonJS({\n \"src/traces/scatter/colorscale_calc.js\"(exports, module) {\n \"use strict\";\n var hasColorscale = require_helpers().hasColorscale;\n var calcColorscale = require_calc();\n var subTypes = require_subtypes();\n module.exports = function calcMarkerColorscale(gd, trace) {\n if (subTypes.hasLines(trace) && hasColorscale(trace, \"line\")) {\n calcColorscale(gd, trace, {\n vals: trace.line.color,\n containerStr: \"line\",\n cLetter: \"c\"\n });\n }\n if (subTypes.hasMarkers(trace)) {\n if (hasColorscale(trace, \"marker\")) {\n calcColorscale(gd, trace, {\n vals: trace.marker.color,\n containerStr: \"marker\",\n cLetter: \"c\"\n });\n }\n if (hasColorscale(trace, \"marker.line\")) {\n calcColorscale(gd, trace, {\n vals: trace.marker.line.color,\n containerStr: \"marker.line\",\n cLetter: \"c\"\n });\n }\n }\n };\n }\n });\n\n // src/traces/scatter/arrays_to_calcdata.js\n var require_arrays_to_calcdata = __commonJS({\n \"src/traces/scatter/arrays_to_calcdata.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function arraysToCalcdata(cd, trace) {\n for (var i = 0; i < cd.length; i++) cd[i].i = i;\n Lib.mergeArray(trace.text, cd, \"tx\");\n Lib.mergeArray(trace.texttemplate, cd, \"txt\");\n Lib.mergeArray(trace.hovertext, cd, \"htx\");\n Lib.mergeArray(trace.customdata, cd, \"data\");\n Lib.mergeArray(trace.textposition, cd, \"tp\");\n if (trace.textfont) {\n Lib.mergeArrayCastPositive(trace.textfont.size, cd, \"ts\");\n Lib.mergeArray(trace.textfont.color, cd, \"tc\");\n Lib.mergeArray(trace.textfont.family, cd, \"tf\");\n Lib.mergeArray(trace.textfont.weight, cd, \"tw\");\n Lib.mergeArray(trace.textfont.style, cd, \"ty\");\n Lib.mergeArray(trace.textfont.variant, cd, \"tv\");\n Lib.mergeArray(trace.textfont.textcase, cd, \"tC\");\n Lib.mergeArray(trace.textfont.lineposition, cd, \"tE\");\n Lib.mergeArray(trace.textfont.shadow, cd, \"tS\");\n }\n var marker = trace.marker;\n if (marker) {\n Lib.mergeArrayCastPositive(marker.size, cd, \"ms\");\n Lib.mergeArrayCastPositive(marker.opacity, cd, \"mo\");\n Lib.mergeArray(marker.symbol, cd, \"mx\");\n Lib.mergeArray(marker.angle, cd, \"ma\");\n Lib.mergeArray(marker.standoff, cd, \"mf\");\n Lib.mergeArray(marker.color, cd, \"mc\");\n var markerLine = marker.line;\n if (marker.line) {\n Lib.mergeArray(markerLine.color, cd, \"mlc\");\n Lib.mergeArrayCastPositive(markerLine.width, cd, \"mlw\");\n }\n var markerGradient = marker.gradient;\n if (markerGradient && markerGradient.type !== \"none\") {\n Lib.mergeArray(markerGradient.type, cd, \"mgt\");\n Lib.mergeArray(markerGradient.color, cd, \"mgc\");\n }\n }\n };\n }\n });\n\n // src/traces/scatter/calc_selection.js\n var require_calc_selection = __commonJS({\n \"src/traces/scatter/calc_selection.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function calcSelection(cd, trace) {\n if (Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace);\n }\n };\n }\n });\n\n // src/traces/scatter/calc.js\n var require_calc3 = __commonJS({\n \"src/traces/scatter/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var BADNUM = require_numerical().BADNUM;\n var subTypes = require_subtypes();\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = trace._xA = Axes.getFromId(gd, trace.xaxis || \"x\", \"x\");\n var ya = trace._yA = Axes.getFromId(gd, trace.yaxis || \"y\", \"y\");\n var origX = xa.makeCalcdata(trace, \"x\");\n var origY = ya.makeCalcdata(trace, \"y\");\n var xObj = alignPeriod(trace, xa, \"x\", origX);\n var yObj = alignPeriod(trace, ya, \"y\", origY);\n var x = xObj.vals;\n var y = yObj.vals;\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var ids = trace.ids;\n var stackGroupOpts = getStackOpts(trace, fullLayout, xa, ya);\n var interpolateGaps = false;\n var isV, i, j, k, interpolate, vali;\n setFirstScatter(fullLayout, trace);\n var xAttr = \"x\";\n var yAttr = \"y\";\n var posAttr;\n if (stackGroupOpts) {\n Lib.pushUnique(stackGroupOpts.traceIndices, trace.index);\n isV = stackGroupOpts.orientation === \"v\";\n if (isV) {\n yAttr = \"s\";\n posAttr = \"x\";\n } else {\n xAttr = \"s\";\n posAttr = \"y\";\n }\n interpolate = stackGroupOpts.stackgaps === \"interpolate\";\n } else {\n var ppad = calcMarkerSize(trace, serieslen);\n calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n }\n var hasPeriodX = !!trace.xperiodalignment;\n var hasPeriodY = !!trace.yperiodalignment;\n for (i = 0; i < serieslen; i++) {\n var cdi = cd[i] = {};\n var xValid = isNumeric(x[i]);\n var yValid = isNumeric(y[i]);\n if (xValid && yValid) {\n cdi[xAttr] = x[i];\n cdi[yAttr] = y[i];\n if (hasPeriodX) {\n cdi.orig_x = origX[i];\n cdi.xEnd = xObj.ends[i];\n cdi.xStart = xObj.starts[i];\n }\n if (hasPeriodY) {\n cdi.orig_y = origY[i];\n cdi.yEnd = yObj.ends[i];\n cdi.yStart = yObj.starts[i];\n }\n } else if (stackGroupOpts && (isV ? xValid : yValid)) {\n cdi[posAttr] = isV ? x[i] : y[i];\n cdi.gap = true;\n if (interpolate) {\n cdi.s = BADNUM;\n interpolateGaps = true;\n } else {\n cdi.s = 0;\n }\n } else {\n cdi[xAttr] = cdi[yAttr] = BADNUM;\n }\n if (ids) {\n cdi.id = String(ids[i]);\n }\n }\n arraysToCalcdata(cd, trace);\n calcColorscale(gd, trace);\n calcSelection(cd, trace);\n if (stackGroupOpts) {\n i = 0;\n while (i < cd.length) {\n if (cd[i][posAttr] === BADNUM) {\n cd.splice(i, 1);\n } else i++;\n }\n Lib.sort(cd, function(a, b) {\n return a[posAttr] - b[posAttr] || a.i - b.i;\n });\n if (interpolateGaps) {\n i = 0;\n while (i < cd.length - 1 && cd[i].gap) {\n i++;\n }\n vali = cd[i].s;\n if (!vali) vali = cd[i].s = 0;\n for (j = 0; j < i; j++) {\n cd[j].s = vali;\n }\n k = cd.length - 1;\n while (k > i && cd[k].gap) {\n k--;\n }\n vali = cd[k].s;\n for (j = cd.length - 1; j > k; j--) {\n cd[j].s = vali;\n }\n while (i < k) {\n i++;\n if (cd[i].gap) {\n j = i + 1;\n while (cd[j].gap) {\n j++;\n }\n var pos0 = cd[i - 1][posAttr];\n var size0 = cd[i - 1].s;\n var m = (cd[j].s - size0) / (cd[j][posAttr] - pos0);\n while (i < j) {\n cd[i].s = size0 + (cd[i][posAttr] - pos0) * m;\n i++;\n }\n }\n }\n }\n }\n return cd;\n }\n function calcAxisExpansion(gd, trace, xa, ya, x, y, ppad) {\n var serieslen = trace._length;\n var fullLayout = gd._fullLayout;\n var xId = xa._id;\n var yId = ya._id;\n var firstScatter = fullLayout._firstScatter[firstScatterGroup(trace)] === trace.uid;\n var stackOrientation = (getStackOpts(trace, fullLayout, xa, ya) || {}).orientation;\n var fill = trace.fill;\n xa._minDtick = 0;\n ya._minDtick = 0;\n var xOptions = { padded: true };\n var yOptions = { padded: true };\n if (ppad) {\n xOptions.ppad = yOptions.ppad = ppad;\n }\n var openEnded = serieslen < 2 || x[0] !== x[serieslen - 1] || y[0] !== y[serieslen - 1];\n if (openEnded && (fill === \"tozerox\" || fill === \"tonextx\" && (firstScatter || stackOrientation === \"h\"))) {\n xOptions.tozero = true;\n } else if (!(trace.error_y || {}).visible && // if no error bars, markers or text, or fill to y=0 remove x padding\n (fill === \"tonexty\" || fill === \"tozeroy\" || !subTypes.hasMarkers(trace) && !subTypes.hasText(trace))) {\n xOptions.padded = false;\n xOptions.ppad = 0;\n }\n if (openEnded && (fill === \"tozeroy\" || fill === \"tonexty\" && (firstScatter || stackOrientation === \"v\"))) {\n yOptions.tozero = true;\n } else if (fill === \"tonextx\" || fill === \"tozerox\") {\n yOptions.padded = false;\n }\n if (xId) trace._extremes[xId] = Axes.findExtremes(xa, x, xOptions);\n if (yId) trace._extremes[yId] = Axes.findExtremes(ya, y, yOptions);\n }\n function calcMarkerSize(trace, serieslen) {\n if (!subTypes.hasMarkers(trace)) return;\n var marker = trace.marker;\n var sizeref = 1.6 * (trace.marker.sizeref || 1);\n var markerTrans;\n if (trace.marker.sizemode === \"area\") {\n markerTrans = function(v) {\n return Math.max(Math.sqrt((v || 0) / sizeref), 3);\n };\n } else {\n markerTrans = function(v) {\n return Math.max((v || 0) / sizeref, 3);\n };\n }\n if (Lib.isArrayOrTypedArray(marker.size)) {\n var ax = { type: \"linear\" };\n Axes.setConvert(ax);\n var s = ax.makeCalcdata(trace.marker, \"size\");\n var sizeOut = new Array(serieslen);\n for (var i = 0; i < serieslen; i++) {\n sizeOut[i] = markerTrans(s[i]);\n }\n return sizeOut;\n } else {\n return markerTrans(marker.size);\n }\n }\n function setFirstScatter(fullLayout, trace) {\n var group = firstScatterGroup(trace);\n var firstScatter = fullLayout._firstScatter;\n if (!firstScatter[group]) firstScatter[group] = trace.uid;\n }\n function firstScatterGroup(trace) {\n var stackGroup = trace.stackgroup;\n return trace.xaxis + trace.yaxis + trace.type + (stackGroup ? \"-\" + stackGroup : \"\");\n }\n function getStackOpts(trace, fullLayout, xa, ya) {\n var stackGroup = trace.stackgroup;\n if (!stackGroup) return;\n var stackOpts = fullLayout._scatterStackOpts[xa._id + ya._id][stackGroup];\n var stackAx = stackOpts.orientation === \"v\" ? ya : xa;\n if (stackAx.type === \"linear\" || stackAx.type === \"log\") return stackOpts;\n }\n module.exports = {\n calc,\n calcMarkerSize,\n calcAxisExpansion,\n setFirstScatter,\n getStackOpts\n };\n }\n });\n\n // src/traces/bar/sieve.js\n var require_sieve = __commonJS({\n \"src/traces/bar/sieve.js\"(exports, module) {\n \"use strict\";\n module.exports = Sieve;\n var distinctVals = require_lib().distinctVals;\n function Sieve(traces, opts) {\n this.traces = traces;\n this.sepNegVal = opts.sepNegVal;\n this.overlapNoMerge = opts.overlapNoMerge;\n var width1 = Infinity;\n var axLetter = opts.posAxis._id.charAt(0);\n var positions = [];\n for (var i = 0; i < traces.length; i++) {\n var trace = traces[i];\n for (var j = 0; j < trace.length; j++) {\n var bar = trace[j];\n var pos = bar.p;\n if (pos === void 0) {\n pos = bar[axLetter];\n }\n if (pos !== void 0) positions.push(pos);\n }\n if (trace[0] && trace[0].width1) {\n width1 = Math.min(trace[0].width1, width1);\n }\n }\n this.positions = positions;\n var dv = distinctVals(positions);\n this.distinctPositions = dv.vals;\n if (dv.vals.length === 1 && width1 !== Infinity) this.minDiff = width1;\n else this.minDiff = Math.min(dv.minDiff, width1);\n var type = (opts.posAxis || {}).type;\n if (type === \"category\" || type === \"multicategory\") {\n this.minDiff = 1;\n }\n this.binWidth = this.minDiff;\n this.bins = {};\n }\n Sieve.prototype.put = function put(position, group, value) {\n var label = this.getLabel(position, group, value);\n var oldValue = this.bins[label] || 0;\n this.bins[label] = oldValue + value;\n return oldValue;\n };\n Sieve.prototype.get = function get(position, group, value) {\n var label = this.getLabel(position, group, value);\n return this.bins[label] || 0;\n };\n Sieve.prototype.getLabel = function getLabel(position, group, value) {\n var prefix = value < 0 && this.sepNegVal ? \"v\" : \"^\";\n var label = this.overlapNoMerge ? position : Math.round(position / this.binWidth);\n return prefix + label + \"g\" + group;\n };\n }\n });\n\n // src/traces/bar/cross_trace_calc.js\n var require_cross_trace_calc = __commonJS({\n \"src/traces/bar/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var BADNUM = require_numerical().BADNUM;\n var Registry = require_registry();\n var Axes = require_axes();\n var getAxisGroup = require_constraints().getAxisGroup;\n var Sieve = require_sieve();\n function crossTraceCalc(gd, plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var fullTraces = gd._fullData;\n var calcTraces = gd.calcdata;\n var calcTracesHorz = [];\n var calcTracesVert = [];\n for (var i = 0; i < fullTraces.length; i++) {\n var fullTrace = fullTraces[i];\n if (fullTrace.visible === true && Registry.traceIs(fullTrace, \"bar\") && fullTrace.xaxis === xa._id && fullTrace.yaxis === ya._id) {\n if (fullTrace.orientation === \"h\") {\n calcTracesHorz.push(calcTraces[i]);\n } else {\n calcTracesVert.push(calcTraces[i]);\n }\n if (fullTrace._computePh) {\n var cd = gd.calcdata[i];\n for (var j = 0; j < cd.length; j++) {\n if (typeof cd[j].ph0 === \"function\") cd[j].ph0 = cd[j].ph0();\n if (typeof cd[j].ph1 === \"function\") cd[j].ph1 = cd[j].ph1();\n }\n }\n }\n }\n var opts = {\n xCat: xa.type === \"category\" || xa.type === \"multicategory\",\n yCat: ya.type === \"category\" || ya.type === \"multicategory\",\n mode: fullLayout.barmode,\n norm: fullLayout.barnorm,\n gap: fullLayout.bargap,\n groupgap: fullLayout.bargroupgap\n };\n setGroupPositions(gd, xa, ya, calcTracesVert, opts);\n setGroupPositions(gd, ya, xa, calcTracesHorz, opts);\n }\n function setGroupPositions(gd, pa, sa, calcTraces, opts) {\n if (!calcTraces.length) return;\n var excluded;\n var included;\n var i, calcTrace, fullTrace;\n initBase(sa, calcTraces);\n switch (opts.mode) {\n case \"overlay\":\n setGroupPositionsInOverlayMode(gd, pa, sa, calcTraces, opts);\n break;\n case \"group\":\n excluded = [];\n included = [];\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n if (fullTrace.offset === void 0) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n if (included.length) {\n setGroupPositionsInGroupMode(gd, pa, sa, included, opts);\n }\n if (excluded.length) {\n setGroupPositionsInOverlayMode(gd, pa, sa, excluded, opts);\n }\n break;\n case \"stack\":\n case \"relative\":\n excluded = [];\n included = [];\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n if (fullTrace.base === void 0) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n standardizeCornerradius(included);\n if (included.length) {\n setGroupPositionsInStackOrRelativeMode(gd, pa, sa, included, opts);\n }\n if (excluded.length) {\n setGroupPositionsInOverlayMode(gd, pa, sa, excluded, opts);\n }\n break;\n }\n setCornerradius(calcTraces);\n collectExtents(calcTraces, pa);\n }\n function setCornerradius(calcTraces) {\n var i, calcTrace, fullTrace, t, cr, crValue, crForm;\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n t = calcTrace[0].t;\n if (t.cornerradiusvalue === void 0) {\n cr = fullTrace.marker ? fullTrace.marker.cornerradius : void 0;\n if (cr !== void 0) {\n crValue = isNumeric(cr) ? +cr : +cr.slice(0, -1);\n crForm = isNumeric(cr) ? \"px\" : \"%\";\n t.cornerradiusvalue = crValue;\n t.cornerradiusform = crForm;\n }\n }\n }\n }\n function standardizeCornerradius(calcTraces) {\n if (calcTraces.length < 2) return;\n var i, calcTrace, fullTrace, t;\n var cr, crValue, crForm;\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n cr = fullTrace.marker ? fullTrace.marker.cornerradius : void 0;\n if (cr !== void 0) break;\n }\n if (cr !== void 0) {\n crValue = isNumeric(cr) ? +cr : +cr.slice(0, -1);\n crForm = isNumeric(cr) ? \"px\" : \"%\";\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n t = calcTrace[0].t;\n t.cornerradiusvalue = crValue;\n t.cornerradiusform = crForm;\n }\n }\n }\n function initBase(sa, calcTraces) {\n var i, j;\n for (i = 0; i < calcTraces.length; i++) {\n var cd = calcTraces[i];\n var trace = cd[0].trace;\n var base = trace.type === \"funnel\" ? trace._base : trace.base;\n var b;\n var scalendar = trace.orientation === \"h\" ? trace.xcalendar : trace.ycalendar;\n var d2c = sa.type === \"category\" || sa.type === \"multicategory\" ? function() {\n return null;\n } : sa.d2c;\n if (isArrayOrTypedArray(base)) {\n for (j = 0; j < Math.min(base.length, cd.length); j++) {\n b = d2c(base[j], 0, scalendar);\n if (isNumeric(b)) {\n cd[j].b = +b;\n cd[j].hasB = 1;\n } else cd[j].b = 0;\n }\n for (; j < cd.length; j++) {\n cd[j].b = 0;\n }\n } else {\n b = d2c(base, 0, scalendar);\n var hasBase = isNumeric(b);\n b = hasBase ? b : 0;\n for (j = 0; j < cd.length; j++) {\n cd[j].b = b;\n if (hasBase) cd[j].hasB = 1;\n }\n }\n }\n }\n function setGroupPositionsInOverlayMode(gd, pa, sa, calcTraces, opts) {\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var sieve = new Sieve([calcTrace], {\n posAxis: pa,\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n setOffsetAndWidth(gd, pa, sieve, opts);\n if (opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n }\n }\n function setGroupPositionsInGroupMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n posAxis: pa,\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n setOffsetAndWidth(gd, pa, sieve, opts);\n unhideBarsWithinTrace(sieve, pa);\n if (opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n }\n function setGroupPositionsInStackOrRelativeMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n posAxis: pa,\n sepNegVal: opts.mode === \"relative\",\n overlapNoMerge: !(opts.norm || opts.mode === \"stack\" || opts.mode === \"relative\")\n });\n setOffsetAndWidth(gd, pa, sieve, opts);\n stackBars(sa, sieve, opts);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var offsetIndex = calcTrace[0].t.offsetindex;\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n var isOutmostBar = bar.b + bar.s === sieve.get(bar.p, offsetIndex, bar.s);\n if (isOutmostBar) bar._outmost = true;\n }\n }\n }\n if (opts.norm) normalizeBars(sa, sieve, opts);\n }\n function setOffsetAndWidth(gd, pa, sieve, opts) {\n var fullLayout = gd._fullLayout;\n var positions = sieve.positions;\n var distinctPositions = sieve.distinctPositions;\n var minDiff = sieve.minDiff;\n var calcTraces = sieve.traces;\n var nTraces = calcTraces.length;\n var overlap = positions.length !== distinctPositions.length;\n var barGroupWidth = minDiff * (1 - opts.gap);\n var barWidthPlusGap;\n var barWidth;\n var offsetFromCenter;\n var alignmentGroups;\n if (pa._id === \"angularaxis\") {\n barWidthPlusGap = barGroupWidth;\n barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n offsetFromCenter = -barWidth / 2;\n } else {\n var groupId = getAxisGroup(fullLayout, pa._id) + calcTraces[0][0].trace.orientation;\n alignmentGroups = fullLayout._alignmentOpts[groupId] || {};\n }\n for (var i = 0; i < nTraces; i++) {\n var calcTrace = calcTraces[i];\n var trace = calcTrace[0].trace;\n if (pa._id !== \"angularaxis\") {\n var alignmentGroupOpts = alignmentGroups[trace.alignmentgroup] || {};\n var nOffsetGroups = Object.keys(alignmentGroupOpts.offsetGroups || {}).length;\n if (nOffsetGroups) {\n barWidthPlusGap = barGroupWidth / nOffsetGroups;\n } else {\n barWidthPlusGap = overlap ? barGroupWidth / nTraces : barGroupWidth;\n }\n barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n if (nOffsetGroups) {\n offsetFromCenter = ((2 * trace._offsetIndex + 1 - nOffsetGroups) * barWidthPlusGap - barWidth) / 2;\n } else {\n offsetFromCenter = overlap ? ((2 * i + 1 - nTraces) * barWidthPlusGap - barWidth) / 2 : -barWidth / 2;\n }\n }\n var t = calcTrace[0].t;\n t.barwidth = barWidth;\n t.offsetindex = trace._offsetIndex || 0;\n t.poffset = offsetFromCenter;\n t.bargroupwidth = barGroupWidth;\n t.bardelta = minDiff;\n }\n sieve.binWidth = calcTraces[0][0].t.barwidth / 100;\n applyAttributes(sieve);\n setBarCenterAndWidth(pa, sieve);\n if (pa._id === \"angularaxis\") {\n updatePositionAxis(pa, sieve);\n } else {\n updatePositionAxis(pa, sieve, overlap);\n }\n }\n function applyAttributes(sieve) {\n var calcTraces = sieve.traces;\n var i, j;\n for (i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var t = calcTrace0.t;\n var offset = fullTrace._offset || fullTrace.offset;\n var initialPoffset = t.poffset;\n var newPoffset;\n if (isArrayOrTypedArray(offset)) {\n newPoffset = Array.prototype.slice.call(offset, 0, calcTrace.length);\n for (j = 0; j < newPoffset.length; j++) {\n if (!isNumeric(newPoffset[j])) {\n newPoffset[j] = initialPoffset;\n }\n }\n for (j = newPoffset.length; j < calcTrace.length; j++) {\n newPoffset.push(initialPoffset);\n }\n t.poffset = newPoffset;\n } else if (offset !== void 0) {\n t.poffset = offset;\n }\n var width = fullTrace._width || fullTrace.width;\n var initialBarwidth = t.barwidth;\n if (isArrayOrTypedArray(width)) {\n var newBarwidth = Array.prototype.slice.call(width, 0, calcTrace.length);\n for (j = 0; j < newBarwidth.length; j++) {\n if (!isNumeric(newBarwidth[j])) newBarwidth[j] = initialBarwidth;\n }\n for (j = newBarwidth.length; j < calcTrace.length; j++) {\n newBarwidth.push(initialBarwidth);\n }\n t.barwidth = newBarwidth;\n if (offset === void 0) {\n newPoffset = [];\n for (j = 0; j < calcTrace.length; j++) {\n newPoffset.push(\n initialPoffset + (initialBarwidth - newBarwidth[j]) / 2\n );\n }\n t.poffset = newPoffset;\n }\n } else if (width !== void 0) {\n t.barwidth = width;\n if (offset === void 0) {\n t.poffset = initialPoffset + (initialBarwidth - width) / 2;\n }\n }\n }\n }\n function setBarCenterAndWidth(pa, sieve) {\n var calcTraces = sieve.traces;\n var pLetter = getAxisLetter(pa);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var t = calcTrace[0].t;\n var poffset = t.poffset;\n var poffsetIsArray = isArrayOrTypedArray(poffset);\n var barwidth = t.barwidth;\n var barwidthIsArray = isArrayOrTypedArray(barwidth);\n for (var j = 0; j < calcTrace.length; j++) {\n var calcBar = calcTrace[j];\n var width = calcBar.w = barwidthIsArray ? barwidth[j] : barwidth;\n if (calcBar.p === void 0) {\n calcBar.p = calcBar[pLetter];\n calcBar[\"orig_\" + pLetter] = calcBar[pLetter];\n }\n var delta = (poffsetIsArray ? poffset[j] : poffset) + width / 2;\n calcBar[pLetter] = calcBar.p + delta;\n }\n }\n }\n function updatePositionAxis(pa, sieve, allowMinDtick) {\n var calcTraces = sieve.traces;\n var minDiff = sieve.minDiff;\n var vpad = minDiff / 2;\n Axes.minDtick(pa, sieve.minDiff, sieve.distinctPositions[0], allowMinDtick);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var pts = [];\n var bar, l, r, j;\n for (j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n l = bar.p - vpad;\n r = bar.p + vpad;\n pts.push(l, r);\n }\n if (fullTrace.width || fullTrace.offset) {\n var t = calcTrace0.t;\n var poffset = t.poffset;\n var barwidth = t.barwidth;\n var poffsetIsArray = isArrayOrTypedArray(poffset);\n var barwidthIsArray = isArrayOrTypedArray(barwidth);\n for (j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n var calcBarOffset = poffsetIsArray ? poffset[j] : poffset;\n var calcBarWidth = barwidthIsArray ? barwidth[j] : barwidth;\n l = bar.p + calcBarOffset;\n r = l + calcBarWidth;\n pts.push(l, r);\n }\n }\n fullTrace._extremes[pa._id] = Axes.findExtremes(pa, pts, { padded: false });\n }\n }\n function setBaseAndTop(sa, sieve) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var isScatter = fullTrace.type === \"scatter\";\n var isVertical = fullTrace.orientation === \"v\";\n var pts = [];\n var tozero = false;\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n var base = isScatter ? 0 : bar.b;\n var top = isScatter ? isVertical ? bar.y : bar.x : base + bar.s;\n bar[sLetter] = top;\n pts.push(top);\n if (bar.hasB) pts.push(base);\n if (!bar.hasB || !bar.b) {\n tozero = true;\n }\n }\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero,\n padded: true\n });\n }\n }\n function stackBars(sa, sieve, opts) {\n var sLetter = getAxisLetter(sa);\n var calcTraces = sieve.traces;\n var calcTrace;\n var fullTrace;\n var isFunnel;\n var i, j;\n var bar;\n var offsetIndex;\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n if (fullTrace.type === \"funnel\") {\n offsetIndex = calcTrace[0].t.offsetindex;\n for (j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n sieve.put(bar.p, offsetIndex, -0.5 * bar.s);\n }\n }\n }\n }\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n isFunnel = fullTrace.type === \"funnel\";\n offsetIndex = fullTrace.type === \"barpolar\" ? 0 : calcTrace[0].t.offsetindex;\n var pts = [];\n for (j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n var value;\n if (isFunnel) {\n value = bar.s;\n } else {\n value = bar.s + bar.b;\n }\n var base = sieve.put(bar.p, offsetIndex, value);\n var top = base + value;\n bar.b = base;\n bar[sLetter] = top;\n if (!opts.norm) {\n pts.push(top);\n if (bar.hasB) {\n pts.push(base);\n }\n }\n }\n }\n if (!opts.norm) {\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n // N.B. we don't stack base with 'base',\n // so set tozero:true always!\n tozero: true,\n padded: true\n });\n }\n }\n }\n function sieveBars(sieve) {\n var calcTraces = sieve.traces;\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var offsetIndex = calcTrace[0].t.offsetindex;\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n sieve.put(bar.p, offsetIndex, bar.b + bar.s);\n }\n }\n }\n }\n function unhideBarsWithinTrace(sieve, pa) {\n var calcTraces = sieve.traces;\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var offsetIndex = calcTrace[0].t.offsetindex;\n if (fullTrace.base === void 0) {\n var inTraceSieve = new Sieve([calcTrace], {\n posAxis: pa,\n sepNegVal: true,\n overlapNoMerge: true\n });\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n if (bar.p !== BADNUM) {\n var base = inTraceSieve.put(bar.p, offsetIndex, bar.b + bar.s);\n if (base) bar.b = base;\n }\n }\n }\n }\n }\n function normalizeBars(sa, sieve, opts) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n var sTop = opts.norm === \"fraction\" ? 1 : 100;\n var sTiny = sTop / 1e9;\n var sMin = sa.l2c(sa.c2l(0));\n var sMax = opts.mode === \"stack\" ? sTop : sMin;\n function needsPadding(v) {\n return isNumeric(sa.c2l(v)) && (v < sMin - sTiny || v > sMax + sTiny || !isNumeric(sMin));\n }\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var offsetIndex = calcTrace[0].t.offsetindex;\n var fullTrace = calcTrace[0].trace;\n var pts = [];\n var tozero = false;\n var padded = false;\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n var scale = Math.abs(sTop / sieve.get(bar.p, offsetIndex, bar.s));\n bar.b *= scale;\n bar.s *= scale;\n var base = bar.b;\n var top = base + bar.s;\n bar[sLetter] = top;\n pts.push(top);\n padded = padded || needsPadding(top);\n if (bar.hasB) {\n pts.push(base);\n padded = padded || needsPadding(base);\n }\n if (!bar.hasB || !bar.b) {\n tozero = true;\n }\n }\n }\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero,\n padded\n });\n }\n }\n function setHelperValuesForRoundedCorners(calcTraces, sMinByPos, sMaxByPos, pa) {\n var pLetter = getAxisLetter(pa);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n var pos = bar[pLetter];\n bar._sMin = sMinByPos[pos];\n bar._sMax = sMaxByPos[pos];\n }\n }\n }\n function collectExtents(calcTraces, pa) {\n var pLetter = getAxisLetter(pa);\n var extents = {};\n var i, j, cd;\n var pMin = Infinity;\n var pMax = -Infinity;\n for (i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n for (j = 0; j < cd.length; j++) {\n var p = cd[j].p;\n if (isNumeric(p)) {\n pMin = Math.min(pMin, p);\n pMax = Math.max(pMax, p);\n }\n }\n }\n var roundFactor = 1e4 / (pMax - pMin);\n var round = extents.round = function(p2) {\n return String(Math.round(roundFactor * (p2 - pMin)));\n };\n var sMinByPos = {};\n var sMaxByPos = {};\n var anyTraceHasCornerradius = calcTraces.some(function(x) {\n var trace = x[0].trace;\n return \"marker\" in trace && trace.marker.cornerradius;\n });\n for (i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n cd[0].t.extents = extents;\n var poffset = cd[0].t.poffset;\n var poffsetIsArray = isArrayOrTypedArray(poffset);\n for (j = 0; j < cd.length; j++) {\n var di = cd[j];\n var p0 = di[pLetter] - di.w / 2;\n if (isNumeric(p0)) {\n var p1 = di[pLetter] + di.w / 2;\n var pVal = round(di.p);\n if (extents[pVal]) {\n extents[pVal] = [Math.min(p0, extents[pVal][0]), Math.max(p1, extents[pVal][1])];\n } else {\n extents[pVal] = [p0, p1];\n }\n }\n di.p0 = di.p + (poffsetIsArray ? poffset[j] : poffset);\n di.p1 = di.p0 + di.w;\n di.s0 = di.b;\n di.s1 = di.s0 + di.s;\n if (anyTraceHasCornerradius) {\n var sMin = Math.min(di.s0, di.s1) || 0;\n var sMax = Math.max(di.s0, di.s1) || 0;\n var pos = di[pLetter];\n sMinByPos[pos] = pos in sMinByPos ? Math.min(sMinByPos[pos], sMin) : sMin;\n sMaxByPos[pos] = pos in sMaxByPos ? Math.max(sMaxByPos[pos], sMax) : sMax;\n }\n }\n }\n if (anyTraceHasCornerradius) {\n setHelperValuesForRoundedCorners(calcTraces, sMinByPos, sMaxByPos, pa);\n }\n }\n function getAxisLetter(ax) {\n return ax._id.charAt(0);\n }\n module.exports = {\n crossTraceCalc,\n setGroupPositions\n };\n }\n });\n\n // src/traces/scatter/cross_trace_calc.js\n var require_cross_trace_calc2 = __commonJS({\n \"src/traces/scatter/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var calc = require_calc3();\n var setGroupPositions = require_cross_trace_calc().setGroupPositions;\n function groupCrossTraceCalc(gd, plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var fullTraces = gd._fullData;\n var calcTraces = gd.calcdata;\n var calcTracesHorz = [];\n var calcTracesVert = [];\n for (var i = 0; i < fullTraces.length; i++) {\n var fullTrace = fullTraces[i];\n if (fullTrace.visible === true && fullTrace.type === \"scatter\" && fullTrace.xaxis === xa._id && fullTrace.yaxis === ya._id) {\n if (fullTrace.orientation === \"h\") {\n calcTracesHorz.push(calcTraces[i]);\n } else if (fullTrace.orientation === \"v\") {\n calcTracesVert.push(calcTraces[i]);\n }\n }\n }\n var opts = {\n mode: fullLayout.scattermode,\n gap: fullLayout.scattergap\n };\n setGroupPositions(gd, xa, ya, calcTracesVert, opts);\n setGroupPositions(gd, ya, xa, calcTracesHorz, opts);\n }\n module.exports = function crossTraceCalc(gd, plotinfo) {\n if (gd._fullLayout.scattermode === \"group\") {\n groupCrossTraceCalc(gd, plotinfo);\n }\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var subplot = xa._id + ya._id;\n var subplotStackOpts = gd._fullLayout._scatterStackOpts[subplot];\n if (!subplotStackOpts) return;\n var calcTraces = gd.calcdata;\n var i, j, k, i2, cd, cd0, posj, sumj, norm;\n var groupOpts, interpolate, groupnorm, posAttr, valAttr;\n var hasAnyBlanks;\n for (var stackGroup in subplotStackOpts) {\n groupOpts = subplotStackOpts[stackGroup];\n var indices = groupOpts.traceIndices;\n if (!indices.length) continue;\n interpolate = groupOpts.stackgaps === \"interpolate\";\n groupnorm = groupOpts.groupnorm;\n if (groupOpts.orientation === \"v\") {\n posAttr = \"x\";\n valAttr = \"y\";\n } else {\n posAttr = \"y\";\n valAttr = \"x\";\n }\n hasAnyBlanks = new Array(indices.length);\n for (i = 0; i < hasAnyBlanks.length; i++) {\n hasAnyBlanks[i] = false;\n }\n cd0 = calcTraces[indices[0]];\n var allPositions = new Array(cd0.length);\n for (i = 0; i < cd0.length; i++) {\n allPositions[i] = cd0[i][posAttr];\n }\n for (i = 1; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n for (j = k = 0; j < cd.length; j++) {\n posj = cd[j][posAttr];\n for (; posj > allPositions[k] && k < allPositions.length; k++) {\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n if (posj !== allPositions[k]) {\n for (i2 = 0; i2 < i; i2++) {\n insertBlank(calcTraces[indices[i2]], k, posj, i2, hasAnyBlanks, interpolate, posAttr);\n }\n allPositions.splice(k, 0, posj);\n }\n k++;\n }\n for (; k < allPositions.length; k++) {\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n }\n var serieslen = allPositions.length;\n for (j = 0; j < cd0.length; j++) {\n sumj = cd0[j][valAttr] = cd0[j].s;\n for (i = 1; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n cd[0].trace._rawLength = cd[0].trace._length;\n cd[0].trace._length = serieslen;\n sumj += cd[j].s;\n cd[j][valAttr] = sumj;\n }\n if (groupnorm) {\n norm = (groupnorm === \"fraction\" ? sumj : sumj / 100) || 1;\n for (i = 0; i < indices.length; i++) {\n var cdj = calcTraces[indices[i]][j];\n cdj[valAttr] /= norm;\n cdj.sNorm = cdj.s / norm;\n }\n }\n }\n for (i = 0; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n var trace = cd[0].trace;\n var ppad = calc.calcMarkerSize(trace, trace._rawLength);\n var arrayPad = Array.isArray(ppad);\n if (ppad && hasAnyBlanks[i] || arrayPad) {\n var ppadRaw = ppad;\n ppad = new Array(serieslen);\n for (j = 0; j < serieslen; j++) {\n ppad[j] = cd[j].gap ? 0 : arrayPad ? ppadRaw[cd[j].i] : ppadRaw;\n }\n }\n var x = new Array(serieslen);\n var y = new Array(serieslen);\n for (j = 0; j < serieslen; j++) {\n x[j] = cd[j].x;\n y[j] = cd[j].y;\n }\n calc.calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n cd[0].t.orientation = groupOpts.orientation;\n }\n }\n };\n function insertBlank(calcTrace, index, position, traceIndex, hasAnyBlanks, interpolate, posAttr) {\n hasAnyBlanks[traceIndex] = true;\n var newEntry = {\n i: null,\n gap: true,\n s: 0\n };\n newEntry[posAttr] = position;\n calcTrace.splice(index, 0, newEntry);\n if (index && position === calcTrace[index - 1][posAttr]) {\n var prevEntry = calcTrace[index - 1];\n newEntry.s = prevEntry.s;\n newEntry.i = prevEntry.i;\n newEntry.gap = prevEntry.gap;\n } else if (interpolate) {\n newEntry.s = getInterp(calcTrace, index, position, posAttr);\n }\n if (!index) {\n calcTrace[0].t = calcTrace[1].t;\n calcTrace[0].trace = calcTrace[1].trace;\n delete calcTrace[1].t;\n delete calcTrace[1].trace;\n }\n }\n function getInterp(calcTrace, index, position, posAttr) {\n var pt0 = calcTrace[index - 1];\n var pt1 = calcTrace[index + 1];\n if (!pt1) return pt0.s;\n if (!pt0) return pt1.s;\n return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]);\n }\n }\n });\n\n // src/traces/scatter/line_points.js\n var require_line_points = __commonJS({\n \"src/traces/scatter/line_points.js\"(exports, module) {\n \"use strict\";\n var Drawing = require_drawing();\n var numConstants = require_numerical();\n var BADNUM = numConstants.BADNUM;\n var LOG_CLIP = numConstants.LOG_CLIP;\n var LOG_CLIP_PLUS = LOG_CLIP + 0.5;\n var LOG_CLIP_MINUS = LOG_CLIP - 0.5;\n var Lib = require_lib();\n var segmentsIntersect = Lib.segmentsIntersect;\n var constrain = Lib.constrain;\n var constants = require_constants8();\n module.exports = function linePoints(d, opts) {\n var trace = opts.trace || {};\n var xa = opts.xaxis;\n var ya = opts.yaxis;\n var xLog = xa.type === \"log\";\n var yLog = ya.type === \"log\";\n var xLen = xa._length;\n var yLen = ya._length;\n var backoff = opts.backoff;\n var marker = trace.marker;\n var connectGaps = opts.connectGaps;\n var baseTolerance = opts.baseTolerance;\n var shape = opts.shape;\n var linear2 = shape === \"linear\";\n var fill = trace.fill && trace.fill !== \"none\";\n var segments = [];\n var minTolerance = constants.minTolerance;\n var len = d.length;\n var pts = new Array(len);\n var pti = 0;\n var i;\n var clusterStartPt, clusterEndPt, clusterHighPt, clusterLowPt;\n var thisPt;\n var clusterHighFirst;\n var clusterUnitVector;\n var thisVector;\n var clusterRefDist, clusterHighVal, clusterLowVal, thisVal;\n var clusterMinDeviation, clusterMaxDeviation, thisDeviation;\n function getPt(index) {\n var di = d[index];\n if (!di) return false;\n var x = opts.linearized ? xa.l2p(di.x) : xa.c2p(di.x);\n var y = opts.linearized ? ya.l2p(di.y) : ya.c2p(di.y);\n if (x === BADNUM) {\n if (xLog) x = xa.c2p(di.x, true);\n if (x === BADNUM) return false;\n if (yLog && y === BADNUM) {\n x *= Math.abs(xa._m * yLen * (xa._m > 0 ? LOG_CLIP_PLUS : LOG_CLIP_MINUS) / (ya._m * xLen * (ya._m > 0 ? LOG_CLIP_PLUS : LOG_CLIP_MINUS)));\n }\n x *= 1e3;\n }\n if (y === BADNUM) {\n if (yLog) y = ya.c2p(di.y, true);\n if (y === BADNUM) return false;\n y *= 1e3;\n }\n return [x, y];\n }\n function crossesViewport(xFrac0, yFrac0, xFrac1, yFrac1) {\n var dx = xFrac1 - xFrac0;\n var dy = yFrac1 - yFrac0;\n var dx0 = 0.5 - xFrac0;\n var dy0 = 0.5 - yFrac0;\n var norm2 = dx * dx + dy * dy;\n var dot = dx * dx0 + dy * dy0;\n if (dot > 0 && dot < norm2) {\n var cross = dx0 * dy - dy0 * dx;\n if (cross * cross < norm2) return true;\n }\n }\n var latestXFrac, latestYFrac;\n function getTolerance(pt, nextPt2) {\n var xFrac = pt[0] / xLen;\n var yFrac = pt[1] / yLen;\n var offScreenFraction = Math.max(0, -xFrac, xFrac - 1, -yFrac, yFrac - 1);\n if (offScreenFraction && latestXFrac !== void 0 && crossesViewport(xFrac, yFrac, latestXFrac, latestYFrac)) {\n offScreenFraction = 0;\n }\n if (offScreenFraction && nextPt2 && crossesViewport(xFrac, yFrac, nextPt2[0] / xLen, nextPt2[1] / yLen)) {\n offScreenFraction = 0;\n }\n return (1 + constants.toleranceGrowth * offScreenFraction) * baseTolerance;\n }\n function ptDist(pt1, pt2) {\n var dx = pt1[0] - pt2[0];\n var dy = pt1[1] - pt2[1];\n return Math.sqrt(dx * dx + dy * dy);\n }\n var maxScreensAway = constants.maxScreensAway;\n var xEdge0 = -xLen * maxScreensAway;\n var xEdge1 = xLen * (1 + maxScreensAway);\n var yEdge0 = -yLen * maxScreensAway;\n var yEdge1 = yLen * (1 + maxScreensAway);\n var edges = [\n [xEdge0, yEdge0, xEdge1, yEdge0],\n [xEdge1, yEdge0, xEdge1, yEdge1],\n [xEdge1, yEdge1, xEdge0, yEdge1],\n [xEdge0, yEdge1, xEdge0, yEdge0]\n ];\n var xEdge, yEdge, lastXEdge, lastYEdge, lastFarPt, edgePt;\n function getLinearEdgeIntersections(pt1, pt2) {\n var out = [];\n var ptCount = 0;\n for (var i2 = 0; i2 < 4; i2++) {\n var edge = edges[i2];\n var ptInt = segmentsIntersect(\n pt1[0],\n pt1[1],\n pt2[0],\n pt2[1],\n edge[0],\n edge[1],\n edge[2],\n edge[3]\n );\n if (ptInt && (!ptCount || Math.abs(ptInt.x - out[0][0]) > 1 || Math.abs(ptInt.y - out[0][1]) > 1)) {\n ptInt = [ptInt.x, ptInt.y];\n if (ptCount && ptDist(ptInt, pt1) < ptDist(out[0], pt1)) out.unshift(ptInt);\n else out.push(ptInt);\n ptCount++;\n }\n }\n return out;\n }\n function onlyConstrainedPoint(pt) {\n if (pt[0] < xEdge0 || pt[0] > xEdge1 || pt[1] < yEdge0 || pt[1] > yEdge1) {\n return [constrain(pt[0], xEdge0, xEdge1), constrain(pt[1], yEdge0, yEdge1)];\n }\n }\n function sameEdge(pt1, pt2) {\n if (pt1[0] === pt2[0] && (pt1[0] === xEdge0 || pt1[0] === xEdge1)) return true;\n if (pt1[1] === pt2[1] && (pt1[1] === yEdge0 || pt1[1] === yEdge1)) return true;\n }\n function getHVEdgeIntersections(pt1, pt2) {\n var out = [];\n var ptInt1 = onlyConstrainedPoint(pt1);\n var ptInt2 = onlyConstrainedPoint(pt2);\n if (ptInt1 && ptInt2 && sameEdge(ptInt1, ptInt2)) return out;\n if (ptInt1) out.push(ptInt1);\n if (ptInt2) out.push(ptInt2);\n return out;\n }\n function getABAEdgeIntersections(dim, limit0, limit1) {\n return function(pt1, pt2) {\n var ptInt1 = onlyConstrainedPoint(pt1);\n var ptInt2 = onlyConstrainedPoint(pt2);\n var out = [];\n if (ptInt1 && ptInt2 && sameEdge(ptInt1, ptInt2)) return out;\n if (ptInt1) out.push(ptInt1);\n if (ptInt2) out.push(ptInt2);\n var midShift = 2 * Lib.constrain((pt1[dim] + pt2[dim]) / 2, limit0, limit1) - ((ptInt1 || pt1)[dim] + (ptInt2 || pt2)[dim]);\n if (midShift) {\n var ptToAlter;\n if (ptInt1 && ptInt2) {\n ptToAlter = midShift > 0 === ptInt1[dim] > ptInt2[dim] ? ptInt1 : ptInt2;\n } else ptToAlter = ptInt1 || ptInt2;\n ptToAlter[dim] += midShift;\n }\n return out;\n };\n }\n var getEdgeIntersections;\n if (shape === \"linear\" || shape === \"spline\") {\n getEdgeIntersections = getLinearEdgeIntersections;\n } else if (shape === \"hv\" || shape === \"vh\") {\n getEdgeIntersections = getHVEdgeIntersections;\n } else if (shape === \"hvh\") getEdgeIntersections = getABAEdgeIntersections(0, xEdge0, xEdge1);\n else if (shape === \"vhv\") getEdgeIntersections = getABAEdgeIntersections(1, yEdge0, yEdge1);\n function getClosestCorner(pt1, pt2) {\n var dx = pt2[0] - pt1[0];\n var m = (pt2[1] - pt1[1]) / dx;\n var b = (pt1[1] * pt2[0] - pt2[1] * pt1[0]) / dx;\n if (b > 0) return [m > 0 ? xEdge0 : xEdge1, yEdge1];\n else return [m > 0 ? xEdge1 : xEdge0, yEdge0];\n }\n function updateEdge(pt) {\n var x = pt[0];\n var y = pt[1];\n var xSame = x === pts[pti - 1][0];\n var ySame = y === pts[pti - 1][1];\n if (xSame && ySame) return;\n if (pti > 1) {\n var xSame2 = x === pts[pti - 2][0];\n var ySame2 = y === pts[pti - 2][1];\n if (xSame && (x === xEdge0 || x === xEdge1) && xSame2) {\n if (ySame2) pti--;\n else pts[pti - 1] = pt;\n } else if (ySame && (y === yEdge0 || y === yEdge1) && ySame2) {\n if (xSame2) pti--;\n else pts[pti - 1] = pt;\n } else pts[pti++] = pt;\n } else pts[pti++] = pt;\n }\n function updateEdgesForReentry(pt) {\n if (pts[pti - 1][0] !== pt[0] && pts[pti - 1][1] !== pt[1]) {\n updateEdge([lastXEdge, lastYEdge]);\n }\n updateEdge(pt);\n lastFarPt = null;\n lastXEdge = lastYEdge = 0;\n }\n var arrayMarker = Lib.isArrayOrTypedArray(marker);\n function addPt(pt) {\n if (pt && backoff) {\n pt.i = i;\n pt.d = d;\n pt.trace = trace;\n pt.marker = arrayMarker ? marker[pt.i] : marker;\n pt.backoff = backoff;\n }\n latestXFrac = pt[0] / xLen;\n latestYFrac = pt[1] / yLen;\n xEdge = pt[0] < xEdge0 ? xEdge0 : pt[0] > xEdge1 ? xEdge1 : 0;\n yEdge = pt[1] < yEdge0 ? yEdge0 : pt[1] > yEdge1 ? yEdge1 : 0;\n if (xEdge || yEdge) {\n if (!pti) {\n pts[pti++] = [xEdge || pt[0], yEdge || pt[1]];\n } else if (lastFarPt) {\n var intersections = getEdgeIntersections(lastFarPt, pt);\n if (intersections.length > 1) {\n updateEdgesForReentry(intersections[0]);\n pts[pti++] = intersections[1];\n }\n } else {\n edgePt = getEdgeIntersections(pts[pti - 1], pt)[0];\n pts[pti++] = edgePt;\n }\n var lastPt = pts[pti - 1];\n if (xEdge && yEdge && (lastPt[0] !== xEdge || lastPt[1] !== yEdge)) {\n if (lastFarPt) {\n if (lastXEdge !== xEdge && lastYEdge !== yEdge) {\n if (lastXEdge && lastYEdge) {\n updateEdge(getClosestCorner(lastFarPt, pt));\n } else {\n updateEdge([lastXEdge || xEdge, lastYEdge || yEdge]);\n }\n } else if (lastXEdge && lastYEdge) {\n updateEdge([lastXEdge, lastYEdge]);\n }\n }\n updateEdge([xEdge, yEdge]);\n } else if (lastXEdge - xEdge && lastYEdge - yEdge) {\n updateEdge([xEdge || lastXEdge, yEdge || lastYEdge]);\n }\n lastFarPt = pt;\n lastXEdge = xEdge;\n lastYEdge = yEdge;\n } else {\n if (lastFarPt) {\n updateEdgesForReentry(getEdgeIntersections(lastFarPt, pt)[0]);\n }\n pts[pti++] = pt;\n }\n }\n for (i = 0; i < len; i++) {\n clusterStartPt = getPt(i);\n if (!clusterStartPt) continue;\n pti = 0;\n lastFarPt = null;\n addPt(clusterStartPt);\n for (i++; i < len; i++) {\n clusterHighPt = getPt(i);\n if (!clusterHighPt) {\n if (connectGaps) continue;\n else break;\n }\n if (!linear2 || !opts.simplify) {\n addPt(clusterHighPt);\n continue;\n }\n var nextPt = getPt(i + 1);\n clusterRefDist = ptDist(clusterHighPt, clusterStartPt);\n if (!(fill && (pti === 0 || pti === len - 1)) && clusterRefDist < getTolerance(clusterHighPt, nextPt) * minTolerance) continue;\n clusterUnitVector = [\n (clusterHighPt[0] - clusterStartPt[0]) / clusterRefDist,\n (clusterHighPt[1] - clusterStartPt[1]) / clusterRefDist\n ];\n clusterLowPt = clusterStartPt;\n clusterHighVal = clusterRefDist;\n clusterLowVal = clusterMinDeviation = clusterMaxDeviation = 0;\n clusterHighFirst = false;\n clusterEndPt = clusterHighPt;\n for (i++; i < d.length; i++) {\n thisPt = nextPt;\n nextPt = getPt(i + 1);\n if (!thisPt) {\n if (connectGaps) continue;\n else break;\n }\n thisVector = [\n thisPt[0] - clusterStartPt[0],\n thisPt[1] - clusterStartPt[1]\n ];\n thisDeviation = thisVector[0] * clusterUnitVector[1] - thisVector[1] * clusterUnitVector[0];\n clusterMinDeviation = Math.min(clusterMinDeviation, thisDeviation);\n clusterMaxDeviation = Math.max(clusterMaxDeviation, thisDeviation);\n if (clusterMaxDeviation - clusterMinDeviation > getTolerance(thisPt, nextPt)) break;\n clusterEndPt = thisPt;\n thisVal = thisVector[0] * clusterUnitVector[0] + thisVector[1] * clusterUnitVector[1];\n if (thisVal > clusterHighVal) {\n clusterHighVal = thisVal;\n clusterHighPt = thisPt;\n clusterHighFirst = false;\n } else if (thisVal < clusterLowVal) {\n clusterLowVal = thisVal;\n clusterLowPt = thisPt;\n clusterHighFirst = true;\n }\n }\n if (clusterHighFirst) {\n addPt(clusterHighPt);\n if (clusterEndPt !== clusterLowPt) addPt(clusterLowPt);\n } else {\n if (clusterLowPt !== clusterStartPt) addPt(clusterLowPt);\n if (clusterEndPt !== clusterHighPt) addPt(clusterHighPt);\n }\n addPt(clusterEndPt);\n if (i >= d.length || !thisPt) break;\n addPt(thisPt);\n clusterStartPt = thisPt;\n }\n if (lastFarPt) updateEdge([lastXEdge || lastFarPt[0], lastYEdge || lastFarPt[1]]);\n segments.push(pts.slice(0, pti));\n }\n var lastShapeChar = shape.slice(shape.length - 1);\n if (backoff && lastShapeChar !== \"h\" && lastShapeChar !== \"v\") {\n var trimmed = false;\n var n = -1;\n var newSegments = [];\n for (var j = 0; j < segments.length; j++) {\n for (var k = 0; k < segments[j].length - 1; k++) {\n var start = segments[j][k];\n var end = segments[j][k + 1];\n var xy = Drawing.applyBackoff(end, start);\n if (xy[0] !== end[0] || xy[1] !== end[1]) {\n trimmed = true;\n }\n if (!newSegments[n + 1]) {\n n++;\n newSegments[n] = [\n start,\n [xy[0], xy[1]]\n ];\n }\n }\n }\n return trimmed ? newSegments : segments;\n }\n return segments;\n };\n }\n });\n\n // src/traces/scatter/link_traces.js\n var require_link_traces = __commonJS({\n \"src/traces/scatter/link_traces.js\"(exports, module) {\n \"use strict\";\n var LINKEDFILLS = { tonextx: 1, tonexty: 1, tonext: 1 };\n module.exports = function linkTraces(gd, plotinfo, cdscatter) {\n var trace, i, group, prevtrace, groupIndex;\n var groupIndices = {};\n var needsSort = false;\n var prevGroupIndex = -1;\n var nextGroupIndex = 0;\n var prevUnstackedGroupIndex = -1;\n for (i = 0; i < cdscatter.length; i++) {\n trace = cdscatter[i][0].trace;\n group = trace.stackgroup || \"\";\n if (group) {\n if (group in groupIndices) {\n groupIndex = groupIndices[group];\n } else {\n groupIndex = groupIndices[group] = nextGroupIndex;\n nextGroupIndex++;\n }\n } else if (trace.fill in LINKEDFILLS && prevUnstackedGroupIndex >= 0) {\n groupIndex = prevUnstackedGroupIndex;\n } else {\n groupIndex = prevUnstackedGroupIndex = nextGroupIndex;\n nextGroupIndex++;\n }\n if (groupIndex < prevGroupIndex) needsSort = true;\n trace._groupIndex = prevGroupIndex = groupIndex;\n }\n var cdscatterSorted = cdscatter.slice();\n if (needsSort) {\n cdscatterSorted.sort(function(a, b) {\n var traceA = a[0].trace;\n var traceB = b[0].trace;\n return traceA._groupIndex - traceB._groupIndex || traceA.index - traceB.index;\n });\n }\n var prevtraces = {};\n for (i = 0; i < cdscatterSorted.length; i++) {\n trace = cdscatterSorted[i][0].trace;\n group = trace.stackgroup || \"\";\n if (trace.visible === true) {\n trace._nexttrace = null;\n if (trace.fill in LINKEDFILLS) {\n prevtrace = prevtraces[group];\n trace._prevtrace = prevtrace || null;\n if (prevtrace) {\n prevtrace._nexttrace = trace;\n }\n }\n trace._ownfill = trace.fill && (trace.fill.substr(0, 6) === \"tozero\" || trace.fill === \"toself\" || trace.fill.substr(0, 2) === \"to\" && !trace._prevtrace);\n prevtraces[group] = trace;\n } else {\n trace._prevtrace = trace._nexttrace = trace._ownfill = null;\n }\n }\n return cdscatterSorted;\n };\n }\n });\n\n // src/traces/scatter/plot.js\n var require_plot = __commonJS({\n \"src/traces/scatter/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var ensureSingle = Lib.ensureSingle;\n var identity2 = Lib.identity;\n var Drawing = require_drawing();\n var subTypes = require_subtypes();\n var linePoints = require_line_points();\n var linkTraces = require_link_traces();\n var polygonTester = require_polygon().tester;\n module.exports = function plot(gd, plotinfo, cdscatter, scatterLayer, transitionOpts, makeOnCompleteCallback) {\n var join, onComplete;\n var isFullReplot = !transitionOpts;\n var hasTransition = !!transitionOpts && transitionOpts.duration > 0;\n var cdscatterSorted = linkTraces(gd, plotinfo, cdscatter);\n join = scatterLayer.selectAll(\"g.trace\").data(cdscatterSorted, function(d) {\n return d[0].trace.uid;\n });\n join.enter().append(\"g\").attr(\"class\", function(d) {\n return \"trace scatter trace\" + d[0].trace.uid;\n }).style(\"stroke-miterlimit\", 2);\n join.order();\n createFills(gd, join, plotinfo);\n if (hasTransition) {\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n var transition = d3.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n });\n transition.each(function() {\n scatterLayer.selectAll(\"g.trace\").each(function(d, i) {\n plotOne(gd, i, plotinfo, d, cdscatterSorted, this, transitionOpts);\n });\n });\n } else {\n join.each(function(d, i) {\n plotOne(gd, i, plotinfo, d, cdscatterSorted, this, transitionOpts);\n });\n }\n if (isFullReplot) {\n join.exit().remove();\n }\n scatterLayer.selectAll(\"path:not([d])\").remove();\n };\n function createFills(gd, traceJoin, plotinfo) {\n traceJoin.each(function(d) {\n var fills = ensureSingle(d3.select(this), \"g\", \"fills\");\n Drawing.setClipUrl(fills, plotinfo.layerClipId, gd);\n var trace = d[0].trace;\n var fillData = [];\n if (trace._ownfill) fillData.push(\"_ownFill\");\n if (trace._nexttrace) fillData.push(\"_nextFill\");\n var fillJoin = fills.selectAll(\"g\").data(fillData, identity2);\n fillJoin.enter().append(\"g\");\n fillJoin.exit().each(function(d2) {\n trace[d2] = null;\n }).remove();\n fillJoin.order().each(function(d2) {\n trace[d2] = ensureSingle(d3.select(this), \"path\", \"js-fill\");\n });\n });\n }\n function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transitionOpts) {\n var isStatic = gd._context.staticPlot;\n var i;\n selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll);\n var hasTransition = !!transitionOpts && transitionOpts.duration > 0;\n function transition(selection) {\n return hasTransition ? selection.transition() : selection;\n }\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var trace = cdscatter[0].trace;\n var line = trace.line;\n var tr = d3.select(element);\n var errorBarGroup = ensureSingle(tr, \"g\", \"errorbars\");\n var lines = ensureSingle(tr, \"g\", \"lines\");\n var points = ensureSingle(tr, \"g\", \"points\");\n var text = ensureSingle(tr, \"g\", \"text\");\n Registry.getComponentMethod(\"errorbars\", \"plot\")(gd, errorBarGroup, plotinfo, transitionOpts);\n if (trace.visible !== true) return;\n transition(tr).style(\"opacity\", trace.opacity);\n var ownFillEl3, tonext;\n var ownFillDir = trace.fill.charAt(trace.fill.length - 1);\n if (ownFillDir !== \"x\" && ownFillDir !== \"y\") ownFillDir = \"\";\n var fillAxisIndex, fillAxisZero;\n if (ownFillDir === \"y\") {\n fillAxisIndex = 1;\n fillAxisZero = ya.c2p(0, true);\n } else if (ownFillDir === \"x\") {\n fillAxisIndex = 0;\n fillAxisZero = xa.c2p(0, true);\n }\n cdscatter[0][plotinfo.isRangePlot ? \"nodeRangePlot3\" : \"node3\"] = tr;\n var prevRevpath = \"\";\n var prevPolygons = [];\n var prevtrace = trace._prevtrace;\n var prevFillsegments = null;\n var prevFillElement = null;\n if (prevtrace) {\n prevRevpath = prevtrace._prevRevpath || \"\";\n tonext = prevtrace._nextFill;\n prevPolygons = prevtrace._ownPolygons;\n prevFillsegments = prevtrace._fillsegments;\n prevFillElement = prevtrace._fillElement;\n }\n var thispath;\n var thisrevpath;\n var fullpath = \"\";\n var revpath = \"\";\n var pathfn, revpathbase, revpathfn;\n var pt0, lastSegment, pt1;\n var thisPolygons = [];\n trace._polygons = [];\n var fillsegments = [];\n var segments = [];\n var makeUpdate = Lib.noop;\n ownFillEl3 = trace._ownFill;\n if (subTypes.hasLines(trace) || trace.fill !== \"none\") {\n if (tonext) {\n tonext.datum(cdscatter);\n }\n if ([\"hv\", \"vh\", \"hvh\", \"vhv\"].indexOf(line.shape) !== -1) {\n pathfn = Drawing.steps(line.shape);\n revpathbase = Drawing.steps(\n line.shape.split(\"\").reverse().join(\"\")\n );\n } else if (line.shape === \"spline\") {\n pathfn = revpathbase = function(pts2) {\n var pLast = pts2[pts2.length - 1];\n if (pts2.length > 1 && pts2[0][0] === pLast[0] && pts2[0][1] === pLast[1]) {\n return Drawing.smoothclosed(pts2.slice(1), line.smoothing);\n } else {\n return Drawing.smoothopen(pts2, line.smoothing);\n }\n };\n } else {\n pathfn = revpathbase = function(pts2) {\n return \"M\" + pts2.join(\"L\");\n };\n }\n revpathfn = function(pts2) {\n return revpathbase(pts2.reverse());\n };\n segments = linePoints(cdscatter, {\n xaxis: xa,\n yaxis: ya,\n trace,\n connectGaps: trace.connectgaps,\n baseTolerance: Math.max(line.width || 1, 3) / 4,\n shape: line.shape,\n backoff: line.backoff,\n simplify: line.simplify,\n fill: trace.fill\n });\n fillsegments = new Array(segments.length);\n var fillsegmentCount = 0;\n for (i = 0; i < segments.length; i++) {\n var curpoints;\n var pts = segments[i];\n if (!curpoints || !ownFillDir) {\n curpoints = pts.slice();\n fillsegments[fillsegmentCount] = curpoints;\n fillsegmentCount++;\n } else {\n curpoints.push.apply(curpoints, pts);\n }\n }\n trace._fillElement = null;\n trace._fillExclusionElement = prevFillElement;\n trace._fillsegments = fillsegments.slice(0, fillsegmentCount);\n fillsegments = trace._fillsegments;\n if (segments.length) {\n pt0 = segments[0][0].slice();\n lastSegment = segments[segments.length - 1];\n pt1 = lastSegment[lastSegment.length - 1].slice();\n }\n makeUpdate = function(isEnter) {\n return function(pts2) {\n thispath = pathfn(pts2);\n thisrevpath = revpathfn(pts2);\n if (!fullpath) {\n fullpath = thispath;\n revpath = thisrevpath;\n } else if (ownFillDir) {\n fullpath += \"L\" + thispath.substr(1);\n revpath = thisrevpath + (\"L\" + revpath.substr(1));\n } else {\n fullpath += \"Z\" + thispath;\n revpath = thisrevpath + \"Z\" + revpath;\n }\n if (subTypes.hasLines(trace)) {\n var el = d3.select(this);\n el.datum(cdscatter);\n if (isEnter) {\n transition(el.style(\"opacity\", 0).attr(\"d\", thispath).call(Drawing.lineGroupStyle)).style(\"opacity\", 1);\n } else {\n var sel = transition(el);\n sel.attr(\"d\", thispath);\n Drawing.singleLineStyle(cdscatter, sel);\n }\n }\n };\n };\n }\n var lineJoin = lines.selectAll(\".js-line\").data(segments);\n transition(lineJoin.exit()).style(\"opacity\", 0).remove();\n lineJoin.each(makeUpdate(false));\n lineJoin.enter().append(\"path\").classed(\"js-line\", true).style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").call(Drawing.lineGroupStyle).each(makeUpdate(true));\n Drawing.setClipUrl(lineJoin, plotinfo.layerClipId, gd);\n function clearFill(selection) {\n transition(selection).attr(\"d\", \"M0,0Z\");\n }\n var makeSelfPolygons = function() {\n var polygons = new Array(fillsegments.length);\n for (i = 0; i < fillsegments.length; i++) {\n polygons[i] = polygonTester(fillsegments[i]);\n }\n return polygons;\n };\n var makePolygonsToPrevious = function(prevFillsegments2) {\n var polygons, i2;\n if (!prevFillsegments2 || prevFillsegments2.length === 0) {\n polygons = new Array(fillsegments.length);\n for (i2 = 0; i2 < fillsegments.length; i2++) {\n var pt02 = fillsegments[i2][0].slice();\n var pt12 = fillsegments[i2][fillsegments[i2].length - 1].slice();\n pt02[fillAxisIndex] = pt12[fillAxisIndex] = fillAxisZero;\n var zeropoints = [pt12, pt02];\n var polypoints = zeropoints.concat(fillsegments[i2]);\n polygons[i2] = polygonTester(polypoints);\n }\n } else {\n polygons = new Array(prevFillsegments2.length - 1 + fillsegments.length);\n for (i2 = 0; i2 < prevFillsegments2.length - 1; i2++) {\n polygons[i2] = polygonTester(prevFillsegments2[i2]);\n }\n var reversedPrevFillsegment = prevFillsegments2[prevFillsegments2.length - 1].slice();\n reversedPrevFillsegment.reverse();\n for (i2 = 0; i2 < fillsegments.length; i2++) {\n polygons[prevFillsegments2.length - 1 + i2] = polygonTester(fillsegments[i2].concat(reversedPrevFillsegment));\n }\n }\n return polygons;\n };\n if (segments.length) {\n if (ownFillEl3) {\n ownFillEl3.datum(cdscatter);\n if (pt0 && pt1) {\n if (ownFillDir) {\n pt0[fillAxisIndex] = pt1[fillAxisIndex] = fillAxisZero;\n transition(ownFillEl3).attr(\"d\", \"M\" + pt1 + \"L\" + pt0 + \"L\" + fullpath.substr(1)).call(Drawing.singleFillStyle, gd);\n thisPolygons = makePolygonsToPrevious(null);\n } else {\n transition(ownFillEl3).attr(\"d\", fullpath + \"Z\").call(Drawing.singleFillStyle, gd);\n thisPolygons = makeSelfPolygons();\n }\n }\n trace._polygons = thisPolygons;\n trace._fillElement = ownFillEl3;\n } else if (tonext) {\n if (trace.fill.substr(0, 6) === \"tonext\" && fullpath && prevRevpath) {\n if (trace.fill === \"tonext\") {\n transition(tonext).attr(\"d\", fullpath + \"Z\" + prevRevpath + \"Z\").call(Drawing.singleFillStyle, gd);\n thisPolygons = makeSelfPolygons();\n trace._polygons = thisPolygons.concat(prevPolygons);\n } else {\n transition(tonext).attr(\"d\", fullpath + \"L\" + prevRevpath.substr(1) + \"Z\").call(Drawing.singleFillStyle, gd);\n thisPolygons = makePolygonsToPrevious(prevFillsegments);\n trace._polygons = thisPolygons;\n }\n trace._fillElement = tonext;\n } else {\n clearFill(tonext);\n }\n }\n trace._prevRevpath = revpath;\n } else {\n if (ownFillEl3) clearFill(ownFillEl3);\n else if (tonext) clearFill(tonext);\n trace._prevRevpath = null;\n }\n trace._ownPolygons = thisPolygons;\n function visFilter(d) {\n return d.filter(function(v) {\n return !v.gap && v.vis;\n });\n }\n function visFilterWithGaps(d) {\n return d.filter(function(v) {\n return v.vis;\n });\n }\n function gapFilter(d) {\n return d.filter(function(v) {\n return !v.gap;\n });\n }\n function keyFunc(d) {\n return d.id;\n }\n function getKeyFunc(trace2) {\n if (trace2.ids) {\n return keyFunc;\n }\n }\n function hideFilter() {\n return false;\n }\n function makePoints(points2, text2, cdscatter2) {\n var join, selection, hasNode;\n var trace2 = cdscatter2[0].trace;\n var showMarkers = subTypes.hasMarkers(trace2);\n var showText = subTypes.hasText(trace2);\n var keyFunc2 = getKeyFunc(trace2);\n var markerFilter = hideFilter;\n var textFilter = hideFilter;\n if (showMarkers || showText) {\n var showFilter = identity2;\n var stackGroup = trace2.stackgroup;\n var isInferZero = stackGroup && gd._fullLayout._scatterStackOpts[xa._id + ya._id][stackGroup].stackgaps === \"infer zero\";\n if (trace2.marker.maxdisplayed || trace2._needsCull) {\n showFilter = isInferZero ? visFilterWithGaps : visFilter;\n } else if (stackGroup && !isInferZero) {\n showFilter = gapFilter;\n }\n if (showMarkers) markerFilter = showFilter;\n if (showText) textFilter = showFilter;\n }\n selection = points2.selectAll(\"path.point\");\n join = selection.data(markerFilter, keyFunc2);\n var enter = join.enter().append(\"path\").classed(\"point\", true);\n if (hasTransition) {\n enter.call(Drawing.pointStyle, trace2, gd).call(Drawing.translatePoints, xa, ya).style(\"opacity\", 0).transition().style(\"opacity\", 1);\n }\n join.order();\n var styleFns;\n if (showMarkers) {\n styleFns = Drawing.makePointStyleFns(trace2);\n }\n join.each(function(d) {\n var el = d3.select(this);\n var sel = transition(el);\n hasNode = Drawing.translatePoint(d, sel, xa, ya);\n if (hasNode) {\n Drawing.singlePointStyle(d, sel, trace2, styleFns, gd);\n if (plotinfo.layerClipId) {\n Drawing.hideOutsideRangePoint(d, sel, xa, ya, trace2.xcalendar, trace2.ycalendar);\n }\n if (trace2.customdata) {\n el.classed(\"plotly-customdata\", d.data !== null && d.data !== void 0);\n }\n } else {\n sel.remove();\n }\n });\n if (hasTransition) {\n join.exit().transition().style(\"opacity\", 0).remove();\n } else {\n join.exit().remove();\n }\n selection = text2.selectAll(\"g\");\n join = selection.data(textFilter, keyFunc2);\n join.enter().append(\"g\").classed(\"textpoint\", true).append(\"text\");\n join.order();\n join.each(function(d) {\n var g = d3.select(this);\n var sel = transition(g.select(\"text\"));\n hasNode = Drawing.translatePoint(d, sel, xa, ya);\n if (hasNode) {\n if (plotinfo.layerClipId) {\n Drawing.hideOutsideRangePoint(d, g, xa, ya, trace2.xcalendar, trace2.ycalendar);\n }\n } else {\n g.remove();\n }\n });\n join.selectAll(\"text\").call(Drawing.textPointStyle, trace2, gd).each(function(d) {\n var x = xa.c2p(d.x);\n var y = ya.c2p(d.y);\n d3.select(this).selectAll(\"tspan.line\").each(function() {\n transition(d3.select(this)).attr({ x, y });\n });\n });\n join.exit().remove();\n }\n points.datum(cdscatter);\n text.datum(cdscatter);\n makePoints(points, text, cdscatter);\n var hasClipOnAxisFalse = trace.cliponaxis === false;\n var clipUrl = hasClipOnAxisFalse ? null : plotinfo.layerClipId;\n Drawing.setClipUrl(points, clipUrl, gd);\n Drawing.setClipUrl(text, clipUrl, gd);\n }\n function selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xr = d3.extent(Lib.simpleMap(xa.range, xa.r2c));\n var yr = d3.extent(Lib.simpleMap(ya.range, ya.r2c));\n var trace = cdscatter[0].trace;\n if (!subTypes.hasMarkers(trace)) return;\n var mnum = trace.marker.maxdisplayed;\n if (mnum === 0) return;\n var cd = cdscatter.filter(function(v) {\n return v.x >= xr[0] && v.x <= xr[1] && v.y >= yr[0] && v.y <= yr[1];\n });\n var inc = Math.ceil(cd.length / mnum);\n var tnum = 0;\n cdscatterAll.forEach(function(cdj, j) {\n var tracei = cdj[0].trace;\n if (subTypes.hasMarkers(tracei) && tracei.marker.maxdisplayed > 0 && j < idx) {\n tnum++;\n }\n });\n var i0 = Math.round(tnum * inc / 3 + Math.floor(tnum / 3) * inc / 7.1);\n cdscatter.forEach(function(v) {\n delete v.vis;\n });\n cd.forEach(function(v, i) {\n if (Math.round((i + i0) % inc) === 0) v.vis = true;\n });\n }\n }\n });\n\n // src/traces/scatter/marker_colorbar.js\n var require_marker_colorbar = __commonJS({\n \"src/traces/scatter/marker_colorbar.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n container: \"marker\",\n min: \"cmin\",\n max: \"cmax\"\n };\n }\n });\n\n // src/traces/scatter/format_labels.js\n var require_format_labels = __commonJS({\n \"src/traces/scatter/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var mockGd = { _fullLayout: fullLayout };\n var xa = Axes.getFromTrace(mockGd, trace, \"x\");\n var ya = Axes.getFromTrace(mockGd, trace, \"y\");\n var x = cdi.orig_x;\n if (x === void 0) x = cdi.x;\n var y = cdi.orig_y;\n if (y === void 0) y = cdi.y;\n labels.xLabel = Axes.tickText(xa, xa.c2l(x), true).text;\n labels.yLabel = Axes.tickText(ya, ya.c2l(y), true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scatter/style.js\n var require_style2 = __commonJS({\n \"src/traces/scatter/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Registry = require_registry();\n function style(gd) {\n var s = d3.select(gd).selectAll(\"g.trace.scatter\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.selectAll(\"g.points\").each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n stylePoints(sel, trace, gd);\n });\n s.selectAll(\"g.text\").each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n styleText(sel, trace, gd);\n });\n s.selectAll(\"g.trace path.js-line\").call(Drawing.lineGroupStyle);\n s.selectAll(\"g.trace path.js-fill\").call(Drawing.fillGroupStyle, gd, false);\n Registry.getComponentMethod(\"errorbars\", \"style\")(s);\n }\n function stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll(\"path.point\"), trace, gd);\n }\n function styleText(sel, trace, gd) {\n Drawing.textPointStyle(sel.selectAll(\"text\"), trace, gd);\n }\n function styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n if (trace.selectedpoints) {\n Drawing.selectedPointStyle(sel.selectAll(\"path.point\"), trace);\n Drawing.selectedTextStyle(sel.selectAll(\"text\"), trace);\n } else {\n stylePoints(sel, trace, gd);\n styleText(sel, trace, gd);\n }\n }\n module.exports = {\n style,\n stylePoints,\n styleText,\n styleOnSelect\n };\n }\n });\n\n // src/traces/scatter/get_trace_color.js\n var require_get_trace_color = __commonJS({\n \"src/traces/scatter/get_trace_color.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var subtypes = require_subtypes();\n module.exports = function getTraceColor(trace, di) {\n var lc, tc;\n if (trace.mode === \"lines\") {\n lc = trace.line.color;\n return lc && Color2.opacity(lc) ? lc : trace.fillcolor;\n } else if (trace.mode === \"none\") {\n return trace.fill ? trace.fillcolor : \"\";\n } else {\n var mc = di.mcc || (trace.marker || {}).color;\n var mlc = di.mlcc || ((trace.marker || {}).line || {}).color;\n tc = mc && Color2.opacity(mc) ? mc : mlc && Color2.opacity(mlc) && (di.mlw || ((trace.marker || {}).line || {}).width) ? mlc : \"\";\n if (tc) {\n if (Color2.opacity(tc) < 0.3) {\n return Color2.addOpacity(tc, 0.3);\n } else return tc;\n } else {\n lc = (trace.line || {}).color;\n return lc && Color2.opacity(lc) && subtypes.hasLines(trace) && trace.line.width ? lc : trace.fillcolor;\n }\n }\n };\n }\n });\n\n // src/traces/scatter/hover.js\n var require_hover2 = __commonJS({\n \"src/traces/scatter/hover.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Fx = require_fx();\n var Registry = require_registry();\n var getTraceColor = require_get_trace_color();\n var Color2 = require_color();\n var fillText = Lib.fillText;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var pt = [xpx, ypx];\n var hoveron = trace.hoveron || \"\";\n var minRad = trace.mode.indexOf(\"markers\") !== -1 ? 3 : 0.5;\n var xPeriod = !!trace.xperiodalignment;\n var yPeriod = !!trace.yperiodalignment;\n if (hoveron.indexOf(\"points\") !== -1) {\n var dx = function(di2) {\n if (xPeriod) {\n var x0 = xa.c2p(di2.xStart);\n var x1 = xa.c2p(di2.xEnd);\n return xpx >= Math.min(x0, x1) && xpx <= Math.max(x0, x1) ? 0 : Infinity;\n }\n var rad2 = Math.max(3, di2.mrc || 0);\n var kink = 1 - 1 / rad2;\n var dxRaw = Math.abs(xa.c2p(di2.x) - xpx);\n return dxRaw < rad2 ? kink * dxRaw / rad2 : dxRaw - rad2 + kink;\n };\n var dy = function(di2) {\n if (yPeriod) {\n var y0 = ya.c2p(di2.yStart);\n var y1 = ya.c2p(di2.yEnd);\n return ypx >= Math.min(y0, y1) && ypx <= Math.max(y0, y1) ? 0 : Infinity;\n }\n var rad2 = Math.max(3, di2.mrc || 0);\n var kink = 1 - 1 / rad2;\n var dyRaw = Math.abs(ya.c2p(di2.y) - ypx);\n return dyRaw < rad2 ? kink * dyRaw / rad2 : dyRaw - rad2 + kink;\n };\n var dxy = function(di2) {\n var rad2 = Math.max(minRad, di2.mrc || 0);\n var dx2 = xa.c2p(di2.x) - xpx;\n var dy2 = ya.c2p(di2.y) - ypx;\n return Math.max(Math.sqrt(dx2 * dx2 + dy2 * dy2) - rad2, 1 - minRad / rad2);\n };\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n Fx.getClosest(cd, distfn, pointData);\n if (pointData.index !== false) {\n var di = cd[pointData.index];\n var xc = xa.c2p(di.x, true);\n var yc = ya.c2p(di.y, true);\n var rad = di.mrc || 1;\n pointData.index = di.i;\n var orientation = cd[0].t.orientation;\n var sizeVal = orientation && (di.sNorm || di.s);\n var xLabelVal = orientation === \"h\" ? sizeVal : di.orig_x !== void 0 ? di.orig_x : di.x;\n var yLabelVal = orientation === \"v\" ? sizeVal : di.orig_y !== void 0 ? di.orig_y : di.y;\n Lib.extendFlat(pointData, {\n color: getTraceColor(trace, di),\n x0: xc - rad,\n x1: xc + rad,\n xLabelVal,\n y0: yc - rad,\n y1: yc + rad,\n yLabelVal,\n spikeDistance: dxy(di),\n hovertemplate: trace.hovertemplate\n });\n fillText(di, trace, pointData);\n Registry.getComponentMethod(\"errorbars\", \"hoverInfo\")(di, trace, pointData);\n return [pointData];\n }\n }\n function isHoverPointInFillElement(el) {\n if (!el) {\n return false;\n }\n var svgElement = el.node();\n try {\n var domPoint = new DOMPoint(pt[0], pt[1]);\n return svgElement.isPointInFill(domPoint);\n } catch (TypeError2) {\n var svgPoint = svgElement.ownerSVGElement.createSVGPoint();\n svgPoint.x = pt[0];\n svgPoint.y = pt[1];\n return svgElement.isPointInFill(svgPoint);\n }\n }\n function getHoverLabelPosition(polygons) {\n var i;\n var polygonsIn = [];\n var xmin = Infinity;\n var xmax = -Infinity;\n var ymin = Infinity;\n var ymax = -Infinity;\n var yPos;\n for (i = 0; i < polygons.length; i++) {\n var polygon = polygons[i];\n if (polygon.contains(pt)) {\n polygonsIn.push(polygon);\n ymin = Math.min(ymin, polygon.ymin);\n ymax = Math.max(ymax, polygon.ymax);\n }\n }\n if (polygonsIn.length === 0) {\n return null;\n }\n ymin = Math.max(ymin, 0);\n ymax = Math.min(ymax, ya._length);\n yPos = (ymin + ymax) / 2;\n var j, pts, xAtYPos, x0, x1, y0, y1;\n for (i = 0; i < polygonsIn.length; i++) {\n pts = polygonsIn[i].pts;\n for (j = 1; j < pts.length; j++) {\n y0 = pts[j - 1][1];\n y1 = pts[j][1];\n if (y0 > yPos !== y1 >= yPos) {\n x0 = pts[j - 1][0];\n x1 = pts[j][0];\n if (y1 - y0) {\n xAtYPos = x0 + (x1 - x0) * (yPos - y0) / (y1 - y0);\n xmin = Math.min(xmin, xAtYPos);\n xmax = Math.max(xmax, xAtYPos);\n }\n }\n }\n }\n xmin = Math.max(xmin, 0);\n xmax = Math.min(xmax, xa._length);\n return {\n x0: xmin,\n x1: xmax,\n y0: yPos,\n y1: yPos\n };\n }\n if (hoveron.indexOf(\"fills\") !== -1 && trace._fillElement) {\n var inside = isHoverPointInFillElement(trace._fillElement) && !isHoverPointInFillElement(trace._fillExclusionElement);\n if (inside) {\n var hoverLabelCoords = getHoverLabelPosition(trace._polygons);\n if (hoverLabelCoords === null) {\n hoverLabelCoords = {\n x0: pt[0],\n x1: pt[0],\n y0: pt[1],\n y1: pt[1]\n };\n }\n var color2 = Color2.defaultLine;\n if (Color2.opacity(trace.fillcolor)) color2 = trace.fillcolor;\n else if (Color2.opacity((trace.line || {}).color)) {\n color2 = trace.line.color;\n }\n Lib.extendFlat(pointData, {\n // never let a 2D override 1D type as closest point\n // also: no spikeDistance, it's not allowed for fills\n distance: pointData.maxHoverDistance,\n x0: hoverLabelCoords.x0,\n x1: hoverLabelCoords.x1,\n y0: hoverLabelCoords.y0,\n y1: hoverLabelCoords.y1,\n color: color2,\n hovertemplate: false\n });\n delete pointData.index;\n if (trace.text && !Lib.isArrayOrTypedArray(trace.text)) {\n pointData.text = String(trace.text);\n } else pointData.text = trace.name;\n return [pointData];\n }\n }\n };\n }\n });\n\n // src/traces/scatter/select.js\n var require_select2 = __commonJS({\n \"src/traces/scatter/select.js\"(exports, module) {\n \"use strict\";\n var subtypes = require_subtypes();\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n var di;\n var x;\n var y;\n var hasOnlyLines = !subtypes.hasMarkers(trace) && !subtypes.hasText(trace);\n if (hasOnlyLines) return [];\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n di = cd[i];\n x = xa.c2p(di.x);\n y = ya.c2p(di.y);\n if (di.i !== null && selectionTester.contains([x, y], false, i, searchInfo)) {\n selection.push({\n pointNumber: di.i,\n x: xa.c2d(di.x),\n y: ya.c2d(di.y)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n }\n });\n\n // src/plots/cartesian/attributes.js\n var require_attributes14 = __commonJS({\n \"src/plots/cartesian/attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n xaxis: {\n valType: \"subplotid\",\n dflt: \"x\",\n editType: \"calc+clearAxisTypes\"\n },\n yaxis: {\n valType: \"subplotid\",\n dflt: \"y\",\n editType: \"calc+clearAxisTypes\"\n }\n };\n }\n });\n\n // src/plots/cartesian/type_defaults.js\n var require_type_defaults = __commonJS({\n \"src/plots/cartesian/type_defaults.js\"(exports, module) {\n \"use strict\";\n var traceIs = require_registry().traceIs;\n var autoType = require_axis_autotype();\n module.exports = function handleTypeDefaults(containerIn, containerOut, coerce, options) {\n coerce(\"autotypenumbers\", options.autotypenumbersDflt);\n var axType = coerce(\"type\", (options.splomStash || {}).type);\n if (axType === \"-\") {\n setAutoType(containerOut, options.data);\n if (containerOut.type === \"-\") {\n containerOut.type = \"linear\";\n } else {\n containerIn.type = containerOut.type;\n }\n }\n };\n function setAutoType(ax, data) {\n if (ax.type !== \"-\") return;\n var id = ax._id;\n var axLetter = id.charAt(0);\n var i;\n if (id.indexOf(\"scene\") !== -1) id = axLetter;\n var d0 = getFirstNonEmptyTrace(data, id, axLetter);\n if (!d0) return;\n if (d0.type === \"histogram\" && axLetter === { v: \"y\", h: \"x\" }[d0.orientation || \"v\"]) {\n ax.type = \"linear\";\n return;\n }\n var calAttr = axLetter + \"calendar\";\n var calendar = d0[calAttr];\n var opts = { noMultiCategory: !traceIs(d0, \"cartesian\") || traceIs(d0, \"noMultiCategory\") };\n if (d0.type === \"box\" && d0._hasPreCompStats && axLetter === { h: \"x\", v: \"y\" }[d0.orientation || \"v\"]) {\n opts.noMultiCategory = true;\n }\n opts.autotypenumbers = ax.autotypenumbers;\n if (isBoxWithoutPositionCoords(d0, axLetter)) {\n var posLetter = getBoxPosLetter(d0);\n var boxPositions = [];\n for (i = 0; i < data.length; i++) {\n var trace = data[i];\n if (!traceIs(trace, \"box-violin\") || (trace[axLetter + \"axis\"] || axLetter) !== id) continue;\n if (trace[posLetter] !== void 0) boxPositions.push(trace[posLetter][0]);\n else if (trace.name !== void 0) boxPositions.push(trace.name);\n else boxPositions.push(\"text\");\n if (trace[calAttr] !== calendar) calendar = void 0;\n }\n ax.type = autoType(boxPositions, calendar, opts);\n } else if (d0.type === \"splom\") {\n var dimensions = d0.dimensions;\n var dim = dimensions[d0._axesDim[id]];\n if (dim.visible) ax.type = autoType(dim.values, calendar, opts);\n } else {\n ax.type = autoType(d0[axLetter] || [d0[axLetter + \"0\"]], calendar, opts);\n }\n }\n function getFirstNonEmptyTrace(data, id, axLetter) {\n for (var i = 0; i < data.length; i++) {\n var trace = data[i];\n if (trace.type === \"splom\" && trace._length > 0 && (trace[\"_\" + axLetter + \"axes\"] || {})[id]) {\n return trace;\n }\n if ((trace[axLetter + \"axis\"] || axLetter) === id) {\n if (isBoxWithoutPositionCoords(trace, axLetter)) {\n return trace;\n } else if ((trace[axLetter] || []).length || trace[axLetter + \"0\"]) {\n return trace;\n }\n }\n }\n }\n function getBoxPosLetter(trace) {\n return { v: \"x\", h: \"y\" }[trace.orientation || \"v\"];\n }\n function isBoxWithoutPositionCoords(trace, axLetter) {\n var posLetter = getBoxPosLetter(trace);\n var isBox = traceIs(trace, \"box-violin\");\n var isCandlestick = traceIs(trace._fullInput || {}, \"candlestick\");\n return isBox && !isCandlestick && axLetter === posLetter && trace[posLetter] === void 0 && trace[posLetter + \"0\"] === void 0;\n }\n }\n });\n\n // src/plots/cartesian/category_order_defaults.js\n var require_category_order_defaults = __commonJS({\n \"src/plots/cartesian/category_order_defaults.js\"(exports, module) {\n \"use strict\";\n var isTypedArraySpec = require_array().isTypedArraySpec;\n function findCategories(ax, opts) {\n var dataAttr = opts.dataAttr || ax._id.charAt(0);\n var lookup = {};\n var axData;\n var i, j;\n if (opts.axData) {\n axData = opts.axData;\n } else {\n axData = [];\n for (i = 0; i < opts.data.length; i++) {\n var trace = opts.data[i];\n if (trace[dataAttr + \"axis\"] === ax._id) {\n axData.push(trace);\n }\n }\n }\n for (i = 0; i < axData.length; i++) {\n var vals = axData[i][dataAttr];\n for (j = 0; j < vals.length; j++) {\n var v = vals[j];\n if (v !== null && v !== void 0) {\n lookup[v] = 1;\n }\n }\n }\n return Object.keys(lookup);\n }\n module.exports = function handleCategoryOrderDefaults(containerIn, containerOut, coerce, opts) {\n if (containerOut.type !== \"category\") return;\n var arrayIn = containerIn.categoryarray;\n var isValidArray = Array.isArray(arrayIn) && arrayIn.length > 0 || isTypedArraySpec(arrayIn);\n var orderDefault;\n if (isValidArray) orderDefault = \"array\";\n var order = coerce(\"categoryorder\", orderDefault);\n var array;\n if (order === \"array\") {\n array = coerce(\"categoryarray\");\n }\n if (!isValidArray && order === \"array\") {\n order = containerOut.categoryorder = \"trace\";\n }\n if (order === \"trace\") {\n containerOut._initialCategories = [];\n } else if (order === \"array\") {\n containerOut._initialCategories = array.slice();\n } else {\n array = findCategories(containerOut, opts).sort();\n if (order === \"category ascending\") {\n containerOut._initialCategories = array;\n } else if (order === \"category descending\") {\n containerOut._initialCategories = array.reverse();\n }\n }\n };\n }\n });\n\n // src/plots/cartesian/line_grid_defaults.js\n var require_line_grid_defaults = __commonJS({\n \"src/plots/cartesian/line_grid_defaults.js\"(exports, module) {\n \"use strict\";\n var colorMix = require_tinycolor().mix;\n var colorAttrs = require_attributes3();\n var Lib = require_lib();\n module.exports = function handleLineGridDefaults(containerIn, containerOut, coerce, opts) {\n opts = opts || {};\n var dfltColor = opts.dfltColor;\n function coerce2(attr, dflt) {\n return Lib.coerce2(containerIn, containerOut, opts.attributes, attr, dflt);\n }\n var lineColor = coerce2(\"linecolor\", dfltColor);\n var lineWidth = coerce2(\"linewidth\");\n var showLine = coerce(\"showline\", opts.showLine || !!lineColor || !!lineWidth);\n if (!showLine) {\n delete containerOut.linecolor;\n delete containerOut.linewidth;\n }\n var gridColorDflt = colorMix(dfltColor, opts.bgColor, opts.blend || colorAttrs.lightFraction).toRgbString();\n var gridColor = coerce2(\"gridcolor\", gridColorDflt);\n var gridWidth = coerce2(\"gridwidth\");\n var gridDash = coerce2(\"griddash\");\n var showGridLines = coerce(\n \"showgrid\",\n opts.showGrid || !!gridColor || !!gridWidth || !!gridDash\n );\n if (!showGridLines) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n delete containerOut.griddash;\n }\n if (opts.hasMinor) {\n var minorGridColorDflt = colorMix(containerOut.gridcolor, opts.bgColor, 67).toRgbString();\n var minorGridColor = coerce2(\"minor.gridcolor\", minorGridColorDflt);\n var minorGridWidth = coerce2(\"minor.gridwidth\", containerOut.gridwidth || 1);\n var minorGridDash = coerce2(\"minor.griddash\", containerOut.griddash || \"solid\");\n var minorShowGridLines = coerce(\n \"minor.showgrid\",\n !!minorGridColor || !!minorGridWidth || !!minorGridDash\n );\n if (!minorShowGridLines) {\n delete containerOut.minor.gridcolor;\n delete containerOut.minor.gridwidth;\n delete containerOut.minor.griddash;\n }\n }\n if (!opts.noZeroLine) {\n var zeroLineColor = coerce2(\"zerolinecolor\", dfltColor);\n var zeroLineWidth = coerce2(\"zerolinewidth\");\n var showZeroLine = coerce(\"zeroline\", opts.showGrid || !!zeroLineColor || !!zeroLineWidth);\n if (!showZeroLine) {\n delete containerOut.zerolinecolor;\n delete containerOut.zerolinewidth;\n }\n }\n };\n }\n });\n\n // src/plots/cartesian/axis_defaults.js\n var require_axis_defaults = __commonJS({\n \"src/plots/cartesian/axis_defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Registry = require_registry();\n var Lib = require_lib();\n var Template = require_plot_template();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var layoutAttributes = require_layout_attributes4();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleCategoryOrderDefaults = require_category_order_defaults();\n var handleLineGridDefaults = require_line_grid_defaults();\n var handleRangeDefaults = require_range_defaults();\n var setConvert = require_set_convert();\n var DAY_OF_WEEK = require_constants2().WEEKDAY_PATTERN;\n var HOUR = require_constants2().HOUR_PATTERN;\n module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, options, layoutOut) {\n var letter = options.letter;\n var font = options.font || {};\n var splomStash = options.splomStash || {};\n var visible = coerce(\"visible\", !options.visibleDflt);\n var axTemplate = containerOut._template || {};\n var axType = containerOut.type || axTemplate.type || \"-\";\n var ticklabelmode;\n if (axType === \"date\") {\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleDefaults\");\n handleCalendarDefaults(containerIn, containerOut, \"calendar\", options.calendar);\n if (!options.noTicklabelmode) {\n ticklabelmode = coerce(\"ticklabelmode\");\n }\n }\n if (!options.noTicklabelindex && (axType === \"date\" || axType === \"linear\")) {\n coerce(\"ticklabelindex\");\n }\n var ticklabelposition = \"\";\n if (!options.noTicklabelposition || axType === \"multicategory\") {\n ticklabelposition = Lib.coerce(containerIn, containerOut, {\n ticklabelposition: {\n valType: \"enumerated\",\n dflt: \"outside\",\n values: ticklabelmode === \"period\" ? [\"outside\", \"inside\"] : letter === \"x\" ? [\n \"outside\",\n \"inside\",\n \"outside left\",\n \"inside left\",\n \"outside right\",\n \"inside right\"\n ] : [\n \"outside\",\n \"inside\",\n \"outside top\",\n \"inside top\",\n \"outside bottom\",\n \"inside bottom\"\n ]\n }\n }, \"ticklabelposition\");\n }\n if (!options.noTicklabeloverflow) {\n coerce(\n \"ticklabeloverflow\",\n ticklabelposition.indexOf(\"inside\") !== -1 ? \"hide past domain\" : axType === \"category\" || axType === \"multicategory\" ? \"allow\" : \"hide past div\"\n );\n }\n setConvert(containerOut, layoutOut);\n handleRangeDefaults(containerIn, containerOut, coerce, options);\n handleCategoryOrderDefaults(containerIn, containerOut, coerce, options);\n if (axType !== \"category\" && !options.noHover) coerce(\"hoverformat\");\n var dfltColor = coerce(\"color\");\n var dfltFontColor = dfltColor !== layoutAttributes.color.dflt ? dfltColor : font.color;\n var dfltTitle = splomStash.label || layoutOut._dfltTitle[letter];\n handlePrefixSuffixDefaults(containerIn, containerOut, coerce, axType, options);\n if (!visible) return containerOut;\n coerce(\"title.text\", dfltTitle);\n Lib.coerceFont(coerce, \"title.font\", font, { overrideDflt: {\n size: Lib.bigFont(font.size),\n color: dfltFontColor\n } });\n handleTickValueDefaults(containerIn, containerOut, coerce, axType);\n var hasMinor = options.hasMinor;\n if (hasMinor) {\n Template.newContainer(containerOut, \"minor\");\n handleTickValueDefaults(containerIn, containerOut, coerce, axType, { isMinor: true });\n }\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options);\n handleTickMarkDefaults(containerIn, containerOut, coerce, options);\n if (hasMinor) {\n var keepIsMinor = options.isMinor;\n options.isMinor = true;\n handleTickMarkDefaults(containerIn, containerOut, coerce, options);\n options.isMinor = keepIsMinor;\n }\n handleLineGridDefaults(containerIn, containerOut, coerce, {\n dfltColor,\n bgColor: options.bgColor,\n showGrid: options.showGrid,\n hasMinor,\n attributes: layoutAttributes\n });\n if (hasMinor && !containerOut.minor.ticks && !containerOut.minor.showgrid) {\n delete containerOut.minor;\n }\n if (containerOut.showline || containerOut.ticks) coerce(\"mirror\");\n var isMultiCategory = axType === \"multicategory\";\n if (!options.noTickson && (axType === \"category\" || isMultiCategory) && (containerOut.ticks || containerOut.showgrid)) {\n var ticksonDflt;\n if (isMultiCategory) ticksonDflt = \"boundaries\";\n var tickson = coerce(\"tickson\", ticksonDflt);\n if (tickson === \"boundaries\") {\n delete containerOut.ticklabelposition;\n }\n }\n if (isMultiCategory) {\n var showDividers = coerce(\"showdividers\");\n if (showDividers) {\n coerce(\"dividercolor\");\n coerce(\"dividerwidth\");\n }\n }\n if (axType === \"date\") {\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: \"rangebreaks\",\n inclusionAttr: \"enabled\",\n handleItemDefaults: rangebreaksDefaults\n });\n if (!containerOut.rangebreaks.length) {\n delete containerOut.rangebreaks;\n } else {\n for (var k = 0; k < containerOut.rangebreaks.length; k++) {\n if (containerOut.rangebreaks[k].pattern === DAY_OF_WEEK) {\n containerOut._hasDayOfWeekBreaks = true;\n break;\n }\n }\n setConvert(containerOut, layoutOut);\n if (layoutOut._has(\"scattergl\") || layoutOut._has(\"splom\")) {\n for (var i = 0; i < options.data.length; i++) {\n var trace = options.data[i];\n if (trace.type === \"scattergl\" || trace.type === \"splom\") {\n trace.visible = false;\n Lib.warn(trace.type + \" traces do not work on axes with rangebreaks. Setting trace \" + trace.index + \" to `visible: false`.\");\n }\n }\n }\n }\n }\n return containerOut;\n };\n function rangebreaksDefaults(itemIn, itemOut, containerOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(itemIn, itemOut, layoutAttributes.rangebreaks, attr, dflt);\n }\n var enabled = coerce(\"enabled\");\n if (enabled) {\n var bnds = coerce(\"bounds\");\n if (bnds && bnds.length >= 2) {\n var dfltPattern = \"\";\n var i, q;\n if (bnds.length === 2) {\n for (i = 0; i < 2; i++) {\n q = indexOfDay(bnds[i]);\n if (q) {\n dfltPattern = DAY_OF_WEEK;\n break;\n }\n }\n }\n var pattern = coerce(\"pattern\", dfltPattern);\n if (pattern === DAY_OF_WEEK) {\n for (i = 0; i < 2; i++) {\n q = indexOfDay(bnds[i]);\n if (q) {\n itemOut.bounds[i] = bnds[i] = q - 1;\n }\n }\n }\n if (pattern) {\n for (i = 0; i < 2; i++) {\n q = bnds[i];\n switch (pattern) {\n case DAY_OF_WEEK:\n if (!isNumeric(q)) {\n itemOut.enabled = false;\n return;\n }\n q = +q;\n if (q !== Math.floor(q) || // don't accept fractional days for mow\n q < 0 || q >= 7) {\n itemOut.enabled = false;\n return;\n }\n itemOut.bounds[i] = bnds[i] = q;\n break;\n case HOUR:\n if (!isNumeric(q)) {\n itemOut.enabled = false;\n return;\n }\n q = +q;\n if (q < 0 || q > 24) {\n itemOut.enabled = false;\n return;\n }\n itemOut.bounds[i] = bnds[i] = q;\n break;\n }\n }\n }\n if (containerOut.autorange === false) {\n var rng = containerOut.range;\n if (rng[0] < rng[1]) {\n if (bnds[0] < rng[0] && bnds[1] > rng[1]) {\n itemOut.enabled = false;\n return;\n }\n } else if (bnds[0] > rng[0] && bnds[1] < rng[1]) {\n itemOut.enabled = false;\n return;\n }\n }\n } else {\n var values = coerce(\"values\");\n if (values && values.length) {\n coerce(\"dvalue\");\n } else {\n itemOut.enabled = false;\n return;\n }\n }\n }\n }\n var dayStrToNum = {\n sun: 1,\n mon: 2,\n tue: 3,\n wed: 4,\n thu: 5,\n fri: 6,\n sat: 7\n };\n function indexOfDay(v) {\n if (typeof v !== \"string\") return;\n return dayStrToNum[v.substr(0, 3).toLowerCase()];\n }\n }\n });\n\n // src/plots/cartesian/position_defaults.js\n var require_position_defaults = __commonJS({\n \"src/plots/cartesian/position_defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n module.exports = function handlePositionDefaults(containerIn, containerOut, coerce, options) {\n var counterAxes = options.counterAxes || [];\n var overlayableAxes = options.overlayableAxes || [];\n var letter = options.letter;\n var grid = options.grid;\n var overlayingDomain = options.overlayingDomain;\n var dfltAnchor, dfltDomain, dfltSide, dfltPosition, dfltShift, dfltAutomargin;\n if (grid) {\n dfltDomain = grid._domains[letter][grid._axisMap[containerOut._id]];\n dfltAnchor = grid._anchors[containerOut._id];\n if (dfltDomain) {\n dfltSide = grid[letter + \"side\"].split(\" \")[0];\n dfltPosition = grid.domain[letter][dfltSide === \"right\" || dfltSide === \"top\" ? 1 : 0];\n }\n }\n dfltDomain = dfltDomain || [0, 1];\n dfltAnchor = dfltAnchor || (isNumeric(containerIn.position) ? \"free\" : counterAxes[0] || \"free\");\n dfltSide = dfltSide || (letter === \"x\" ? \"bottom\" : \"left\");\n dfltPosition = dfltPosition || 0;\n dfltShift = 0;\n dfltAutomargin = false;\n var anchor = Lib.coerce(containerIn, containerOut, {\n anchor: {\n valType: \"enumerated\",\n values: [\"free\"].concat(counterAxes),\n dflt: dfltAnchor\n }\n }, \"anchor\");\n var side = Lib.coerce(containerIn, containerOut, {\n side: {\n valType: \"enumerated\",\n values: letter === \"x\" ? [\"bottom\", \"top\"] : [\"left\", \"right\"],\n dflt: dfltSide\n }\n }, \"side\");\n if (anchor === \"free\") {\n if (letter === \"y\") {\n var autoshift = coerce(\"autoshift\");\n if (autoshift) {\n dfltPosition = side === \"left\" ? overlayingDomain[0] : overlayingDomain[1];\n dfltAutomargin = containerOut.automargin ? containerOut.automargin : true;\n dfltShift = side === \"left\" ? -3 : 3;\n }\n coerce(\"shift\", dfltShift);\n }\n coerce(\"position\", dfltPosition);\n }\n coerce(\"automargin\", dfltAutomargin);\n var overlaying = false;\n if (overlayableAxes.length) {\n overlaying = Lib.coerce(containerIn, containerOut, {\n overlaying: {\n valType: \"enumerated\",\n values: [false].concat(overlayableAxes),\n dflt: false\n }\n }, \"overlaying\");\n }\n if (!overlaying) {\n var domain = coerce(\"domain\", dfltDomain);\n if (domain[0] > domain[1] - 1 / 4096) containerOut.domain = dfltDomain;\n Lib.noneOrAll(containerIn.domain, containerOut.domain, dfltDomain);\n if (containerOut.tickmode === \"sync\") {\n containerOut.tickmode = \"auto\";\n }\n }\n coerce(\"layer\");\n return containerOut;\n };\n }\n });\n\n // src/plots/cartesian/layout_defaults.js\n var require_layout_defaults4 = __commonJS({\n \"src/plots/cartesian/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var isUnifiedHover = require_helpers2().isUnifiedHover;\n var handleHoverModeDefaults = require_hovermode_defaults();\n var Template = require_plot_template();\n var basePlotLayoutAttributes = require_layout_attributes2();\n var layoutAttributes = require_layout_attributes4();\n var handleTypeDefaults = require_type_defaults();\n var handleAxisDefaults = require_axis_defaults();\n var constraints = require_constraints();\n var handlePositionDefaults = require_position_defaults();\n var axisIds = require_axis_ids();\n var id2name = axisIds.id2name;\n var name2id = axisIds.name2id;\n var AX_ID_PATTERN = require_constants2().AX_ID_PATTERN;\n var Registry = require_registry();\n var traceIs = Registry.traceIs;\n var getComponentMethod = Registry.getComponentMethod;\n function appendList(cont, k, item) {\n if (Array.isArray(cont[k])) cont[k].push(item);\n else cont[k] = [item];\n }\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n var autotypenumbersDflt = layoutOut.autotypenumbers;\n var ax2traces = {};\n var xaMayHide = {};\n var yaMayHide = {};\n var xaMustDisplay = {};\n var yaMustDisplay = {};\n var yaMustNotReverse = {};\n var yaMayReverse = {};\n var axHasImage = {};\n var outerTicks = {};\n var noGrids = {};\n var i, j;\n for (i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (!traceIs(trace, \"cartesian\")) continue;\n var xaName;\n if (trace.xaxis) {\n xaName = id2name(trace.xaxis);\n appendList(ax2traces, xaName, trace);\n } else if (trace.xaxes) {\n for (j = 0; j < trace.xaxes.length; j++) {\n appendList(ax2traces, id2name(trace.xaxes[j]), trace);\n }\n }\n var yaName;\n if (trace.yaxis) {\n yaName = id2name(trace.yaxis);\n appendList(ax2traces, yaName, trace);\n } else if (trace.yaxes) {\n for (j = 0; j < trace.yaxes.length; j++) {\n appendList(ax2traces, id2name(trace.yaxes[j]), trace);\n }\n }\n if (trace.type === \"funnel\") {\n if (trace.orientation === \"h\") {\n if (xaName) xaMayHide[xaName] = true;\n if (yaName) yaMayReverse[yaName] = true;\n } else {\n if (yaName) yaMayHide[yaName] = true;\n }\n } else if (trace.type === \"image\") {\n if (yaName) axHasImage[yaName] = true;\n if (xaName) axHasImage[xaName] = true;\n } else {\n if (yaName) {\n yaMustDisplay[yaName] = true;\n yaMustNotReverse[yaName] = true;\n }\n if (!traceIs(trace, \"carpet\") || trace.type === \"carpet\" && !trace._cheater) {\n if (xaName) xaMustDisplay[xaName] = true;\n }\n }\n if (trace.type === \"carpet\" && trace._cheater) {\n if (xaName) xaMayHide[xaName] = true;\n }\n if (traceIs(trace, \"2dMap\")) {\n outerTicks[xaName] = true;\n outerTicks[yaName] = true;\n }\n if (traceIs(trace, \"oriented\")) {\n var positionAxis = trace.orientation === \"h\" ? yaName : xaName;\n noGrids[positionAxis] = true;\n }\n }\n var subplots = layoutOut._subplots;\n var xIds = subplots.xaxis;\n var yIds = subplots.yaxis;\n var xNames = Lib.simpleMap(xIds, id2name);\n var yNames = Lib.simpleMap(yIds, id2name);\n var axNames = xNames.concat(yNames);\n var plotBgColor = Color2.background;\n if (xIds.length && yIds.length) {\n plotBgColor = Lib.coerce(layoutIn, layoutOut, basePlotLayoutAttributes, \"plot_bgcolor\");\n }\n var bgColor = Color2.combine(plotBgColor, layoutOut.paper_bgcolor);\n var axName;\n var axId;\n var axLetter;\n var axLayoutIn;\n var axLayoutOut;\n function newAxLayoutOut() {\n var traces = ax2traces[axName] || [];\n axLayoutOut._traceIndices = traces.map(function(t) {\n return t.index;\n });\n axLayoutOut._annIndices = [];\n axLayoutOut._shapeIndices = [];\n axLayoutOut._selectionIndices = [];\n axLayoutOut._imgIndices = [];\n axLayoutOut._subplotsWith = [];\n axLayoutOut._counterAxes = [];\n axLayoutOut._name = axLayoutOut._attr = axName;\n axLayoutOut._id = axId;\n }\n function coerce(attr, dflt) {\n return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n function getCounterAxes(axLetter2) {\n return axLetter2 === \"x\" ? yIds : xIds;\n }\n function getOverlayableAxes(axLetter2, axName2) {\n var list = axLetter2 === \"x\" ? xNames : yNames;\n var out = [];\n for (var j2 = 0; j2 < list.length; j2++) {\n var axName22 = list[j2];\n if (axName22 !== axName2 && !(layoutIn[axName22] || {}).overlaying) {\n out.push(name2id(axName22));\n }\n }\n return out;\n }\n var counterAxes = { x: getCounterAxes(\"x\"), y: getCounterAxes(\"y\") };\n var allAxisIds = counterAxes.x.concat(counterAxes.y);\n var missingMatchedAxisIdsLookup = {};\n var missingMatchedAxisIds = [];\n function addMissingMatchedAxis() {\n var matchesIn = axLayoutIn.matches;\n if (AX_ID_PATTERN.test(matchesIn) && allAxisIds.indexOf(matchesIn) === -1) {\n missingMatchedAxisIdsLookup[matchesIn] = axLayoutIn.type;\n missingMatchedAxisIds = Object.keys(missingMatchedAxisIdsLookup);\n }\n }\n var hovermode = handleHoverModeDefaults(layoutIn, layoutOut);\n var unifiedHover = isUnifiedHover(hovermode);\n for (i = 0; i < axNames.length; i++) {\n axName = axNames[i];\n axId = name2id(axName);\n axLetter = axName.charAt(0);\n if (!Lib.isPlainObject(layoutIn[axName])) {\n layoutIn[axName] = {};\n }\n axLayoutIn = layoutIn[axName];\n axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + \"axis\");\n newAxLayoutOut();\n var visibleDflt = axLetter === \"x\" && !xaMustDisplay[axName] && xaMayHide[axName] || axLetter === \"y\" && !yaMustDisplay[axName] && yaMayHide[axName];\n var reverseDflt = axLetter === \"y\" && (!yaMustNotReverse[axName] && yaMayReverse[axName] || axHasImage[axName]);\n var defaultOptions = {\n hasMinor: true,\n letter: axLetter,\n font: layoutOut.font,\n outerTicks: outerTicks[axName],\n showGrid: !noGrids[axName],\n data: ax2traces[axName] || [],\n bgColor,\n calendar: layoutOut.calendar,\n automargin: true,\n visibleDflt,\n reverseDflt,\n autotypenumbersDflt,\n splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId],\n noAutotickangles: axLetter === \"y\"\n };\n coerce(\"uirevision\", layoutOut.uirevision);\n handleTypeDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions);\n handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions, layoutOut);\n var unifiedSpike = unifiedHover && axLetter === hovermode.charAt(0);\n var spikecolor = coerce2(\"spikecolor\", unifiedHover ? axLayoutOut.color : void 0);\n var spikethickness = coerce2(\"spikethickness\", unifiedHover ? 1.5 : void 0);\n var spikedash = coerce2(\"spikedash\", unifiedHover ? \"dot\" : void 0);\n var spikemode = coerce2(\"spikemode\", unifiedHover ? \"across\" : void 0);\n var spikesnap = coerce2(\"spikesnap\");\n var showSpikes = coerce(\"showspikes\", !!unifiedSpike || !!spikecolor || !!spikethickness || !!spikedash || !!spikemode || !!spikesnap);\n if (!showSpikes) {\n delete axLayoutOut.spikecolor;\n delete axLayoutOut.spikethickness;\n delete axLayoutOut.spikedash;\n delete axLayoutOut.spikemode;\n delete axLayoutOut.spikesnap;\n }\n var overlayingAxis = id2name(axLayoutIn.overlaying);\n var overlayingAnchorDomain = [0, 1];\n if (layoutOut[overlayingAxis] !== void 0) {\n var overlayingAnchor = id2name(layoutOut[overlayingAxis].anchor);\n if (layoutOut[overlayingAnchor] !== void 0) {\n overlayingAnchorDomain = layoutOut[overlayingAnchor].domain;\n }\n }\n handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {\n letter: axLetter,\n counterAxes: counterAxes[axLetter],\n overlayableAxes: getOverlayableAxes(axLetter, axName),\n grid: layoutOut.grid,\n overlayingDomain: overlayingAnchorDomain\n });\n coerce(\"title.standoff\");\n addMissingMatchedAxis();\n axLayoutOut._input = axLayoutIn;\n }\n i = 0;\n while (i < missingMatchedAxisIds.length) {\n axId = missingMatchedAxisIds[i++];\n axName = id2name(axId);\n axLetter = axName.charAt(0);\n if (!Lib.isPlainObject(layoutIn[axName])) {\n layoutIn[axName] = {};\n }\n axLayoutIn = layoutIn[axName];\n axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + \"axis\");\n newAxLayoutOut();\n var defaultOptions2 = {\n letter: axLetter,\n font: layoutOut.font,\n outerTicks: outerTicks[axName],\n showGrid: !noGrids[axName],\n data: [],\n bgColor,\n calendar: layoutOut.calendar,\n automargin: true,\n visibleDflt: false,\n reverseDflt: false,\n autotypenumbersDflt,\n splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]\n };\n coerce(\"uirevision\", layoutOut.uirevision);\n axLayoutOut.type = missingMatchedAxisIdsLookup[axId] || \"linear\";\n handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions2, layoutOut);\n handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {\n letter: axLetter,\n counterAxes: counterAxes[axLetter],\n overlayableAxes: getOverlayableAxes(axLetter, axName),\n grid: layoutOut.grid\n });\n coerce(\"fixedrange\");\n addMissingMatchedAxis();\n axLayoutOut._input = axLayoutIn;\n }\n var rangeSliderDefaults = getComponentMethod(\"rangeslider\", \"handleDefaults\");\n var rangeSelectorDefaults = getComponentMethod(\"rangeselector\", \"handleDefaults\");\n for (i = 0; i < xNames.length; i++) {\n axName = xNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n rangeSliderDefaults(layoutIn, layoutOut, axName);\n if (axLayoutOut.type === \"date\") {\n rangeSelectorDefaults(\n axLayoutIn,\n axLayoutOut,\n layoutOut,\n yNames,\n axLayoutOut.calendar\n );\n }\n coerce(\"fixedrange\");\n }\n for (i = 0; i < yNames.length; i++) {\n axName = yNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n var anchoredAxis = layoutOut[id2name(axLayoutOut.anchor)];\n var fixedRangeDflt = getComponentMethod(\"rangeslider\", \"isVisible\")(anchoredAxis);\n coerce(\"fixedrange\", fixedRangeDflt);\n }\n constraints.handleDefaults(layoutIn, layoutOut, {\n axIds: allAxisIds.concat(missingMatchedAxisIds).sort(axisIds.idSort),\n axHasImage\n });\n };\n }\n });\n\n // src/plots/cartesian/transition_axes.js\n var require_transition_axes = __commonJS({\n \"src/plots/cartesian/transition_axes.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var Axes = require_axes();\n module.exports = function transitionAxes(gd, edits, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n if (edits.length === 0) {\n Axes.redrawComponents(gd);\n return;\n }\n function unsetSubplotTransform(subplot) {\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n fullLayout._defs.select(\"#\" + subplot.clipId + \"> rect\").call(Drawing.setTranslate, 0, 0).call(Drawing.setScale, 1, 1);\n subplot.plot.call(Drawing.setTranslate, xa._offset, ya._offset).call(Drawing.setScale, 1, 1);\n var traceGroups = subplot.plot.selectAll(\".scatterlayer .trace\");\n traceGroups.selectAll(\".point\").call(Drawing.setPointGroupScale, 1, 1);\n traceGroups.selectAll(\".textpoint\").call(Drawing.setTextPointsScale, 1, 1);\n traceGroups.call(Drawing.hideOutsideRangePoints, subplot);\n }\n function updateSubplot(edit, progress) {\n var plotinfo = edit.plotinfo;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xlen = xa._length;\n var ylen = ya._length;\n var editX = !!edit.xr1;\n var editY = !!edit.yr1;\n var viewBox = [];\n if (editX) {\n var xr0 = Lib.simpleMap(edit.xr0, xa.r2l);\n var xr1 = Lib.simpleMap(edit.xr1, xa.r2l);\n var dx0 = xr0[1] - xr0[0];\n var dx1 = xr1[1] - xr1[0];\n viewBox[0] = (xr0[0] * (1 - progress) + progress * xr1[0] - xr0[0]) / (xr0[1] - xr0[0]) * xlen;\n viewBox[2] = xlen * (1 - progress + progress * dx1 / dx0);\n xa.range[0] = xa.l2r(xr0[0] * (1 - progress) + progress * xr1[0]);\n xa.range[1] = xa.l2r(xr0[1] * (1 - progress) + progress * xr1[1]);\n } else {\n viewBox[0] = 0;\n viewBox[2] = xlen;\n }\n if (editY) {\n var yr0 = Lib.simpleMap(edit.yr0, ya.r2l);\n var yr1 = Lib.simpleMap(edit.yr1, ya.r2l);\n var dy0 = yr0[1] - yr0[0];\n var dy1 = yr1[1] - yr1[0];\n viewBox[1] = (yr0[1] * (1 - progress) + progress * yr1[1] - yr0[1]) / (yr0[0] - yr0[1]) * ylen;\n viewBox[3] = ylen * (1 - progress + progress * dy1 / dy0);\n ya.range[0] = xa.l2r(yr0[0] * (1 - progress) + progress * yr1[0]);\n ya.range[1] = ya.l2r(yr0[1] * (1 - progress) + progress * yr1[1]);\n } else {\n viewBox[1] = 0;\n viewBox[3] = ylen;\n }\n Axes.drawOne(gd, xa, { skipTitle: true });\n Axes.drawOne(gd, ya, { skipTitle: true });\n Axes.redrawComponents(gd, [xa._id, ya._id]);\n var xScaleFactor = editX ? xlen / viewBox[2] : 1;\n var yScaleFactor = editY ? ylen / viewBox[3] : 1;\n var clipDx = editX ? viewBox[0] : 0;\n var clipDy = editY ? viewBox[1] : 0;\n var fracDx = editX ? viewBox[0] / viewBox[2] * xlen : 0;\n var fracDy = editY ? viewBox[1] / viewBox[3] * ylen : 0;\n var plotDx = xa._offset - fracDx;\n var plotDy = ya._offset - fracDy;\n plotinfo.clipRect.call(Drawing.setTranslate, clipDx, clipDy).call(Drawing.setScale, 1 / xScaleFactor, 1 / yScaleFactor);\n plotinfo.plot.call(Drawing.setTranslate, plotDx, plotDy).call(Drawing.setScale, xScaleFactor, yScaleFactor);\n Drawing.setPointGroupScale(plotinfo.zoomScalePts, 1 / xScaleFactor, 1 / yScaleFactor);\n Drawing.setTextPointsScale(plotinfo.zoomScaleTxt, 1 / xScaleFactor, 1 / yScaleFactor);\n }\n var onComplete;\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n function transitionComplete() {\n var aobj = {};\n for (var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if (edit.xr1) aobj[xa._name + \".range\"] = edit.xr1.slice();\n if (edit.yr1) aobj[ya._name + \".range\"] = edit.yr1.slice();\n }\n onComplete && onComplete();\n return Registry.call(\"relayout\", gd, aobj).then(function() {\n for (var i2 = 0; i2 < edits.length; i2++) {\n unsetSubplotTransform(edits[i2].plotinfo);\n }\n });\n }\n function transitionInterrupt() {\n var aobj = {};\n for (var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if (edit.xr0) aobj[xa._name + \".range\"] = edit.xr0.slice();\n if (edit.yr0) aobj[ya._name + \".range\"] = edit.yr0.slice();\n }\n return Registry.call(\"relayout\", gd, aobj).then(function() {\n for (var i2 = 0; i2 < edits.length; i2++) {\n unsetSubplotTransform(edits[i2].plotinfo);\n }\n });\n }\n var t12, t22, raf;\n var easeFn = d3.ease(transitionOpts.easing);\n gd._transitionData._interruptCallbacks.push(function() {\n window.cancelAnimationFrame(raf);\n raf = null;\n return transitionInterrupt();\n });\n function doFrame() {\n t22 = Date.now();\n var tInterp = Math.min(1, (t22 - t12) / transitionOpts.duration);\n var progress = easeFn(tInterp);\n for (var i = 0; i < edits.length; i++) {\n updateSubplot(edits[i], progress);\n }\n if (t22 - t12 > transitionOpts.duration) {\n transitionComplete();\n raf = window.cancelAnimationFrame(doFrame);\n } else {\n raf = window.requestAnimationFrame(doFrame);\n }\n }\n t12 = Date.now();\n raf = window.requestAnimationFrame(doFrame);\n return Promise.resolve();\n };\n }\n });\n\n // src/plots/cartesian/index.js\n var require_cartesian = __commonJS({\n \"src/plots/cartesian/index.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var Plots = require_plots();\n var Drawing = require_drawing();\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var axisIds = require_axis_ids();\n var constants = require_constants2();\n var xmlnsNamespaces = require_xmlns_namespaces();\n var ensureSingle = Lib.ensureSingle;\n function ensureSingleAndAddDatum(parent, nodeType, className) {\n return Lib.ensureSingle(parent, nodeType, className, function(s) {\n s.datum(className);\n });\n }\n var zindexSeparator = constants.zindexSeparator;\n exports.name = \"cartesian\";\n exports.attr = [\"xaxis\", \"yaxis\"];\n exports.idRoot = [\"x\", \"y\"];\n exports.idRegex = constants.idRegex;\n exports.attrRegex = constants.attrRegex;\n exports.attributes = require_attributes14();\n exports.layoutAttributes = require_layout_attributes4();\n exports.supplyLayoutDefaults = require_layout_defaults4();\n exports.transitionAxes = require_transition_axes();\n exports.finalizeSubplots = function(layoutIn, layoutOut) {\n var subplots = layoutOut._subplots;\n var xList = subplots.xaxis;\n var yList = subplots.yaxis;\n var spSVG = subplots.cartesian;\n var spAll = spSVG;\n var allX = {};\n var allY = {};\n var i, xi, yi;\n for (i = 0; i < spAll.length; i++) {\n var parts = spAll[i].split(\"y\");\n allX[parts[0]] = 1;\n allY[\"y\" + parts[1]] = 1;\n }\n for (i = 0; i < xList.length; i++) {\n xi = xList[i];\n if (!allX[xi]) {\n yi = (layoutIn[axisIds.id2name(xi)] || {}).anchor;\n if (!constants.idRegex.y.test(yi)) yi = \"y\";\n spSVG.push(xi + yi);\n spAll.push(xi + yi);\n if (!allY[yi]) {\n allY[yi] = 1;\n Lib.pushUnique(yList, yi);\n }\n }\n }\n for (i = 0; i < yList.length; i++) {\n yi = yList[i];\n if (!allY[yi]) {\n xi = (layoutIn[axisIds.id2name(yi)] || {}).anchor;\n if (!constants.idRegex.x.test(xi)) xi = \"x\";\n spSVG.push(xi + yi);\n spAll.push(xi + yi);\n if (!allX[xi]) {\n allX[xi] = 1;\n Lib.pushUnique(xList, xi);\n }\n }\n }\n if (!spAll.length) {\n xi = \"\";\n yi = \"\";\n for (var ki in layoutIn) {\n if (constants.attrRegex.test(ki)) {\n var axLetter = ki.charAt(0);\n if (axLetter === \"x\") {\n if (!xi || +ki.substr(5) < +xi.substr(5)) {\n xi = ki;\n }\n } else if (!yi || +ki.substr(5) < +yi.substr(5)) {\n yi = ki;\n }\n }\n }\n xi = xi ? axisIds.name2id(xi) : \"x\";\n yi = yi ? axisIds.name2id(yi) : \"y\";\n xList.push(xi);\n yList.push(yi);\n spSVG.push(xi + yi);\n }\n };\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var subplots = fullLayout._subplots.cartesian;\n var calcdata = gd.calcdata;\n var i;\n if (!Array.isArray(traces)) {\n traces = [];\n for (i = 0; i < calcdata.length; i++) traces.push(i);\n }\n var zindices = fullLayout._zindices;\n for (var z = 0; z < zindices.length; z++) {\n var zorder = zindices[z];\n for (i = 0; i < subplots.length; i++) {\n var subplot = subplots[i];\n var subplotInfo = fullLayout._plots[subplot];\n if (z > 0) {\n var idWithZ = subplotInfo.id;\n if (idWithZ.indexOf(zindexSeparator) !== -1) continue;\n idWithZ += zindexSeparator + (z + 1);\n subplotInfo = Lib.extendFlat({}, subplotInfo, {\n id: idWithZ,\n plot: fullLayout._cartesianlayer.selectAll(\".subplot\").select(\".\" + idWithZ)\n });\n }\n var cdSubplot = [];\n var pcd;\n for (var j = 0; j < calcdata.length; j++) {\n var cd = calcdata[j];\n var trace = cd[0].trace;\n if (zorder !== (trace.zorder || 0)) continue;\n if (trace.xaxis + trace.yaxis === subplot) {\n if (traces.indexOf(trace.index) !== -1 || trace.carpet) {\n if (pcd && pcd[0].trace.xaxis + pcd[0].trace.yaxis === subplot && [\"tonextx\", \"tonexty\", \"tonext\"].indexOf(trace.fill) !== -1 && cdSubplot.indexOf(pcd) === -1) {\n cdSubplot.push(pcd);\n }\n cdSubplot.push(cd);\n }\n pcd = cd;\n }\n }\n plotOne(gd, subplotInfo, cdSubplot, transitionOpts, makeOnCompleteCallback);\n }\n }\n };\n function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback) {\n var traceLayerClasses = constants.traceLayerClasses;\n var fullLayout = gd._fullLayout;\n var zindices = fullLayout._zindices;\n var modules = fullLayout._modules;\n var _module, cdModuleAndOthers, cdModule;\n var layerData = [];\n var zoomScaleQueryParts = [];\n for (var z = 0; z < zindices.length; z++) {\n var zorder = zindices[z];\n for (var i = 0; i < modules.length; i++) {\n _module = modules[i];\n var name2 = _module.name;\n var categories = Registry.modules[name2].categories;\n if (categories.svg) {\n var classBaseName = _module.layerName || name2 + \"layer\";\n var className = classBaseName + (z ? Number(z) + 1 : \"\");\n var plotMethod = _module.plot;\n cdModuleAndOthers = getModuleCalcData(cdSubplot, plotMethod, zorder);\n cdModule = cdModuleAndOthers[0];\n cdSubplot = cdModuleAndOthers[1];\n if (cdModule.length) {\n layerData.push({\n i: traceLayerClasses.indexOf(classBaseName),\n zindex: z,\n className,\n plotMethod,\n cdModule\n });\n }\n if (categories.zoomScale) {\n zoomScaleQueryParts.push(\".\" + className);\n }\n }\n }\n }\n layerData.sort(function(a, b) {\n return (a.zindex || 0) - (b.zindex || 0) || a.i - b.i;\n });\n var layers = plotinfo.plot.selectAll(\"g.mlayer\").data(layerData, function(d) {\n return d.className;\n });\n layers.enter().append(\"g\").attr(\"class\", function(d) {\n return d.className;\n }).classed(\"mlayer\", true).classed(\"rangeplot\", plotinfo.isRangePlot);\n layers.exit().remove();\n layers.order();\n layers.each(function(d) {\n var sel = d3.select(this);\n var className2 = d.className;\n d.plotMethod(\n gd,\n plotinfo,\n d.cdModule,\n sel,\n transitionOpts,\n makeOnCompleteCallback\n );\n if (constants.clipOnAxisFalseQuery.indexOf(\".\" + className2) === -1) {\n Drawing.setClipUrl(sel, plotinfo.layerClipId, gd);\n }\n });\n if (fullLayout._has(\"scattergl\")) {\n _module = Registry.getModule(\"scattergl\");\n cdModule = getModuleCalcData(cdSubplot, _module)[0];\n _module.plot(gd, plotinfo, cdModule);\n }\n if (!gd._context.staticPlot) {\n if (plotinfo._hasClipOnAxisFalse) {\n plotinfo.clipOnAxisFalseTraces = plotinfo.plot.selectAll(constants.clipOnAxisFalseQuery.join(\",\")).selectAll(\".trace\");\n }\n if (zoomScaleQueryParts.length) {\n var traces = plotinfo.plot.selectAll(zoomScaleQueryParts.join(\",\")).selectAll(\".trace\");\n plotinfo.zoomScalePts = traces.selectAll(\"path.point\");\n plotinfo.zoomScaleTxt = traces.selectAll(\".textpoint\");\n }\n }\n }\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldPlots = oldFullLayout._plots || {};\n var newPlots = newFullLayout._plots || {};\n var oldSubplotList = oldFullLayout._subplots || {};\n var plotinfo;\n var i, k;\n if (oldFullLayout._hasOnlyLargeSploms && !newFullLayout._hasOnlyLargeSploms) {\n for (k in oldPlots) {\n plotinfo = oldPlots[k];\n if (plotinfo.plotgroup) plotinfo.plotgroup.remove();\n }\n }\n var hadGl = oldFullLayout._has && oldFullLayout._has(\"gl\");\n var hasGl = newFullLayout._has && newFullLayout._has(\"gl\");\n if (hadGl && !hasGl) {\n for (k in oldPlots) {\n plotinfo = oldPlots[k];\n if (plotinfo._scene) plotinfo._scene.destroy();\n }\n }\n if (oldSubplotList.xaxis && oldSubplotList.yaxis) {\n var oldAxIDs = axisIds.listIds({ _fullLayout: oldFullLayout });\n for (i = 0; i < oldAxIDs.length; i++) {\n var oldAxId = oldAxIDs[i];\n if (!newFullLayout[axisIds.id2name(oldAxId)]) {\n oldFullLayout._infolayer.selectAll(\".g-\" + oldAxId + \"title\").remove();\n }\n }\n }\n var hadCartesian = oldFullLayout._has && oldFullLayout._has(\"cartesian\");\n var hasCartesian = newFullLayout._has && newFullLayout._has(\"cartesian\");\n if (hadCartesian && !hasCartesian) {\n purgeSubplotLayers(oldFullLayout._cartesianlayer.selectAll(\".subplot\"), oldFullLayout);\n oldFullLayout._defs.selectAll(\".axesclip\").remove();\n delete oldFullLayout._axisConstraintGroups;\n delete oldFullLayout._axisMatchGroups;\n } else if (oldSubplotList.cartesian) {\n for (i = 0; i < oldSubplotList.cartesian.length; i++) {\n var oldSubplotId = oldSubplotList.cartesian[i];\n if (oldSubplotId.indexOf(zindexSeparator) !== -1) continue;\n if (!newPlots[oldSubplotId]) {\n var selector = \".\" + oldSubplotId + \",.\" + oldSubplotId + \"-x,.\" + oldSubplotId + \"-y\";\n oldFullLayout._cartesianlayer.selectAll(selector).remove();\n removeSubplotExtras(oldSubplotId, oldFullLayout);\n }\n }\n }\n };\n exports.drawFramework = function(gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var i;\n var traceZorderGroups = {};\n for (i = 0; i < calcdata.length; i++) {\n var cdi = calcdata[i][0];\n var trace = cdi.trace;\n var zi = trace.zorder || 0;\n if (!traceZorderGroups[zi]) traceZorderGroups[zi] = [];\n traceZorderGroups[zi].push(cdi);\n }\n var zindices = Object.keys(traceZorderGroups).map(Number).sort(Lib.sorterAsc);\n if (!zindices.length) zindices = [0];\n fullLayout._zindices = zindices;\n var initialSubplotData = makeSubplotData(gd);\n var len = initialSubplotData.length;\n var subplotData = [];\n for (i = 0; i < len; i++) {\n subplotData[i] = initialSubplotData[i].slice();\n }\n for (var z = 1; z < zindices.length; z++) {\n var newSubplotData = [];\n for (i = 0; i < len; i++) {\n newSubplotData[i] = initialSubplotData[i].slice();\n newSubplotData[i][0] += zindexSeparator + (z + 1);\n }\n subplotData = subplotData.concat(newSubplotData);\n }\n var subplotLayers = fullLayout._cartesianlayer.selectAll(\".subplot\").data(subplotData, String);\n subplotLayers.enter().append(\"g\").attr(\"class\", function(d) {\n return \"subplot \" + d[0];\n });\n subplotLayers.order();\n subplotLayers.exit().call(purgeSubplotLayers, fullLayout);\n subplotLayers.each(function(d) {\n var id = d[0];\n var posZ = id.indexOf(zindexSeparator);\n var hasZ = posZ !== -1;\n var idWithoutZ = hasZ ? id.slice(0, posZ) : id;\n var plotinfo = fullLayout._plots[id];\n if (!plotinfo) {\n plotinfo = Lib.extendFlat({}, fullLayout._plots[idWithoutZ]);\n if (plotinfo) {\n plotinfo.id = id;\n fullLayout._plots[id] = plotinfo;\n fullLayout._subplots.cartesian.push(id);\n }\n }\n if (plotinfo) {\n plotinfo.plotgroup = d3.select(this);\n makeSubplotLayer(gd, plotinfo);\n if (!hasZ) {\n plotinfo.draglayer = ensureSingle(fullLayout._draggers, \"g\", id);\n }\n }\n });\n };\n exports.rangePlot = function(gd, plotinfo, cdSubplot) {\n makeSubplotLayer(gd, plotinfo);\n plotOne(gd, plotinfo, cdSubplot);\n Plots.style(gd);\n };\n function makeSubplotData(gd) {\n var fullLayout = gd._fullLayout;\n var numZ = fullLayout._zindices.length;\n var ids = fullLayout._subplots.cartesian;\n var len = ids.length;\n var i, j, id, plotinfo, xa, ya;\n var regulars = [];\n var overlays = [];\n for (i = 0; i < len; i++) {\n id = ids[i];\n plotinfo = fullLayout._plots[id];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n var xa2 = xa._mainAxis;\n var ya2 = ya._mainAxis;\n var mainplot = xa2._id + ya2._id;\n var mainplotinfo = fullLayout._plots[mainplot];\n plotinfo.overlays = [];\n if (mainplot !== id && mainplotinfo) {\n plotinfo.mainplot = mainplot;\n plotinfo.mainplotinfo = mainplotinfo;\n overlays.push(id);\n } else {\n plotinfo.mainplot = void 0;\n plotinfo.mainplotinfo = void 0;\n regulars.push(id);\n }\n }\n for (i = 0; i < overlays.length; i++) {\n id = overlays[i];\n plotinfo = fullLayout._plots[id];\n plotinfo.mainplotinfo.overlays.push(plotinfo);\n }\n var subplotIds = regulars.concat(overlays);\n var subplotData = [];\n for (i = 0; i < len; i++) {\n id = subplotIds[i];\n plotinfo = fullLayout._plots[id];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n var d = [];\n for (var z = 1; z <= numZ; z++) {\n var zStr = \"\";\n if (z > 1) zStr += zindexSeparator + z;\n d.push(id + zStr);\n for (j = 0; j < plotinfo.overlays.length; j++) {\n d.push(plotinfo.overlays[j].id + zStr);\n }\n }\n d = d.concat([\n xa.layer,\n ya.layer,\n xa.overlaying || \"\",\n ya.overlaying || \"\"\n ]);\n subplotData.push(d);\n }\n return subplotData;\n }\n function makeSubplotLayer(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var plotgroup = plotinfo.plotgroup;\n var id = plotinfo.id;\n var posZ = id.indexOf(zindexSeparator);\n var hasZ = posZ !== -1;\n var xLayer = constants.layerValue2layerClass[plotinfo.xaxis.layer];\n var yLayer = constants.layerValue2layerClass[plotinfo.yaxis.layer];\n var hasOnlyLargeSploms = fullLayout._hasOnlyLargeSploms;\n var hasMultipleZ = fullLayout._zindices.length > 1;\n var mainplotinfo = plotinfo.mainplotinfo;\n if (!plotinfo.mainplot || hasMultipleZ) {\n if (hasOnlyLargeSploms) {\n plotinfo.xlines = ensureSingle(plotgroup, \"path\", \"xlines-above\");\n plotinfo.ylines = ensureSingle(plotgroup, \"path\", \"ylines-above\");\n plotinfo.xaxislayer = ensureSingle(plotgroup, \"g\", \"xaxislayer-above\");\n plotinfo.yaxislayer = ensureSingle(plotgroup, \"g\", \"yaxislayer-above\");\n } else {\n if (!hasZ) {\n var backLayer = ensureSingle(plotgroup, \"g\", \"layer-subplot\");\n plotinfo.shapelayer = ensureSingle(backLayer, \"g\", \"shapelayer\");\n plotinfo.imagelayer = ensureSingle(backLayer, \"g\", \"imagelayer\");\n if (mainplotinfo && hasMultipleZ) {\n plotinfo.minorGridlayer = mainplotinfo.minorGridlayer;\n plotinfo.gridlayer = mainplotinfo.gridlayer;\n plotinfo.zerolinelayer = mainplotinfo.zerolinelayer;\n } else {\n plotinfo.minorGridlayer = ensureSingle(plotgroup, \"g\", \"minor-gridlayer\");\n plotinfo.gridlayer = ensureSingle(plotgroup, \"g\", \"gridlayer\");\n plotinfo.zerolinelayer = ensureSingle(plotgroup, \"g\", \"zerolinelayer\");\n }\n var betweenLayer = ensureSingle(plotgroup, \"g\", \"layer-between\");\n plotinfo.shapelayerBetween = ensureSingle(betweenLayer, \"g\", \"shapelayer\");\n plotinfo.imagelayerBetween = ensureSingle(betweenLayer, \"g\", \"imagelayer\");\n ensureSingle(plotgroup, \"path\", \"xlines-below\");\n ensureSingle(plotgroup, \"path\", \"ylines-below\");\n plotinfo.overlinesBelow = ensureSingle(plotgroup, \"g\", \"overlines-below\");\n ensureSingle(plotgroup, \"g\", \"xaxislayer-below\");\n ensureSingle(plotgroup, \"g\", \"yaxislayer-below\");\n plotinfo.overaxesBelow = ensureSingle(plotgroup, \"g\", \"overaxes-below\");\n }\n plotinfo.overplot = ensureSingle(plotgroup, \"g\", \"overplot\");\n plotinfo.plot = ensureSingle(plotinfo.overplot, \"g\", id);\n if (!hasZ) {\n plotinfo.xlines = ensureSingle(plotgroup, \"path\", \"xlines-above\");\n plotinfo.ylines = ensureSingle(plotgroup, \"path\", \"ylines-above\");\n plotinfo.overlinesAbove = ensureSingle(plotgroup, \"g\", \"overlines-above\");\n ensureSingle(plotgroup, \"g\", \"xaxislayer-above\");\n ensureSingle(plotgroup, \"g\", \"yaxislayer-above\");\n plotinfo.overaxesAbove = ensureSingle(plotgroup, \"g\", \"overaxes-above\");\n plotinfo.xlines = plotgroup.select(\".xlines-\" + xLayer);\n plotinfo.ylines = plotgroup.select(\".ylines-\" + yLayer);\n plotinfo.xaxislayer = plotgroup.select(\".xaxislayer-\" + xLayer);\n plotinfo.yaxislayer = plotgroup.select(\".yaxislayer-\" + yLayer);\n }\n }\n } else {\n var mainplotgroup = mainplotinfo.plotgroup;\n var xId = id + \"-x\";\n var yId = id + \"-y\";\n plotinfo.minorGridlayer = mainplotinfo.minorGridlayer;\n plotinfo.gridlayer = mainplotinfo.gridlayer;\n plotinfo.zerolinelayer = mainplotinfo.zerolinelayer;\n ensureSingle(mainplotinfo.overlinesBelow, \"path\", xId);\n ensureSingle(mainplotinfo.overlinesBelow, \"path\", yId);\n ensureSingle(mainplotinfo.overaxesBelow, \"g\", xId);\n ensureSingle(mainplotinfo.overaxesBelow, \"g\", yId);\n plotinfo.plot = ensureSingle(mainplotinfo.overplot, \"g\", id);\n ensureSingle(mainplotinfo.overlinesAbove, \"path\", xId);\n ensureSingle(mainplotinfo.overlinesAbove, \"path\", yId);\n ensureSingle(mainplotinfo.overaxesAbove, \"g\", xId);\n ensureSingle(mainplotinfo.overaxesAbove, \"g\", yId);\n plotinfo.xlines = mainplotgroup.select(\".overlines-\" + xLayer).select(\".\" + xId);\n plotinfo.ylines = mainplotgroup.select(\".overlines-\" + yLayer).select(\".\" + yId);\n plotinfo.xaxislayer = mainplotgroup.select(\".overaxes-\" + xLayer).select(\".\" + xId);\n plotinfo.yaxislayer = mainplotgroup.select(\".overaxes-\" + yLayer).select(\".\" + yId);\n }\n if (!hasZ) {\n if (!hasOnlyLargeSploms) {\n ensureSingleAndAddDatum(plotinfo.minorGridlayer, \"g\", plotinfo.xaxis._id);\n ensureSingleAndAddDatum(plotinfo.minorGridlayer, \"g\", plotinfo.yaxis._id);\n plotinfo.minorGridlayer.selectAll(\"g\").map(function(d) {\n return d[0];\n }).sort(axisIds.idSort);\n ensureSingleAndAddDatum(plotinfo.gridlayer, \"g\", plotinfo.xaxis._id);\n ensureSingleAndAddDatum(plotinfo.gridlayer, \"g\", plotinfo.yaxis._id);\n plotinfo.gridlayer.selectAll(\"g\").map(function(d) {\n return d[0];\n }).sort(axisIds.idSort);\n }\n plotinfo.xlines.style(\"fill\", \"none\").classed(\"crisp\", true);\n plotinfo.ylines.style(\"fill\", \"none\").classed(\"crisp\", true);\n }\n }\n function purgeSubplotLayers(layers, fullLayout) {\n if (!layers) return;\n var overlayIdsToRemove = {};\n layers.each(function(d) {\n var id = d[0];\n var plotgroup = d3.select(this);\n plotgroup.remove();\n removeSubplotExtras(id, fullLayout);\n overlayIdsToRemove[id] = true;\n });\n for (var k in fullLayout._plots) {\n var subplotInfo = fullLayout._plots[k];\n var overlays = subplotInfo.overlays || [];\n for (var j = 0; j < overlays.length; j++) {\n var overlayInfo = overlays[j];\n if (overlayIdsToRemove[overlayInfo.id]) {\n overlayInfo.plot.selectAll(\".trace\").remove();\n }\n }\n }\n }\n function removeSubplotExtras(subplotId, fullLayout) {\n fullLayout._draggers.selectAll(\"g.\" + subplotId).remove();\n fullLayout._defs.select(\"#clip\" + fullLayout._uid + subplotId + \"plot\").remove();\n }\n exports.toSVG = function(gd) {\n var imageRoot = gd._fullLayout._glimages;\n var root = d3.select(gd).selectAll(\".svg-container\");\n var canvases = root.filter(function(d, i) {\n return i === root.size() - 1;\n }).selectAll(\".gl-canvas-context, .gl-canvas-focus\");\n function canvasToImage() {\n var canvas = this;\n var imageData = canvas.toDataURL(\"image/png\");\n var image = imageRoot.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n preserveAspectRatio: \"none\",\n x: 0,\n y: 0,\n width: canvas.style.width,\n height: canvas.style.height\n });\n }\n canvases.each(canvasToImage);\n };\n exports.updateFx = require_graph_interact().updateFx;\n }\n });\n\n // src/traces/scatter/index.js\n var require_scatter = __commonJS({\n \"src/traces/scatter/index.js\"(exports, module) {\n \"use strict\";\n var subtypes = require_subtypes();\n module.exports = {\n hasLines: subtypes.hasLines,\n hasMarkers: subtypes.hasMarkers,\n hasText: subtypes.hasText,\n isBubble: subtypes.isBubble,\n attributes: require_attributes12(),\n layoutAttributes: require_layout_attributes3(),\n supplyDefaults: require_defaults8(),\n crossTraceDefaults: require_cross_trace_defaults2(),\n supplyLayoutDefaults: require_layout_defaults3(),\n calc: require_calc3().calc,\n crossTraceCalc: require_cross_trace_calc2(),\n arraysToCalcdata: require_arrays_to_calcdata(),\n plot: require_plot(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover2(),\n selectPoints: require_select2(),\n animatable: true,\n moduleType: \"trace\",\n name: \"scatter\",\n basePlotModule: require_cartesian(),\n categories: [\n \"cartesian\",\n \"svg\",\n \"symbols\",\n \"errorBarsOK\",\n \"showLegend\",\n \"scatter-like\",\n \"zoomScale\"\n ],\n meta: {}\n };\n }\n });\n\n // src/components/annotations/draw_arrow_head.js\n var require_draw_arrow_head = __commonJS({\n \"src/components/annotations/draw_arrow_head.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var ARROWPATHS = require_arrow_paths();\n var Lib = require_lib();\n var strScale = Lib.strScale;\n var strRotate = Lib.strRotate;\n var strTranslate = Lib.strTranslate;\n module.exports = function drawArrowHead(el3, ends, options) {\n var el = el3.node();\n var headStyle = ARROWPATHS[options.arrowhead || 0];\n var startHeadStyle = ARROWPATHS[options.startarrowhead || 0];\n var scale = (options.arrowwidth || 1) * (options.arrowsize || 1);\n var startScale = (options.arrowwidth || 1) * (options.startarrowsize || 1);\n var doStart = ends.indexOf(\"start\") >= 0;\n var doEnd = ends.indexOf(\"end\") >= 0;\n var backOff = headStyle.backoff * scale + options.standoff;\n var startBackOff = startHeadStyle.backoff * startScale + options.startstandoff;\n var start, end, startRot, endRot;\n if (el.nodeName === \"line\") {\n start = { x: +el3.attr(\"x1\"), y: +el3.attr(\"y1\") };\n end = { x: +el3.attr(\"x2\"), y: +el3.attr(\"y2\") };\n var dx = start.x - end.x;\n var dy = start.y - end.y;\n startRot = Math.atan2(dy, dx);\n endRot = startRot + Math.PI;\n if (backOff && startBackOff) {\n if (backOff + startBackOff > Math.sqrt(dx * dx + dy * dy)) {\n hideLine();\n return;\n }\n }\n if (backOff) {\n if (backOff * backOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var backOffX = backOff * Math.cos(startRot);\n var backOffY = backOff * Math.sin(startRot);\n end.x += backOffX;\n end.y += backOffY;\n el3.attr({ x2: end.x, y2: end.y });\n }\n if (startBackOff) {\n if (startBackOff * startBackOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var startBackOffX = startBackOff * Math.cos(startRot);\n var startbackOffY = startBackOff * Math.sin(startRot);\n start.x -= startBackOffX;\n start.y -= startbackOffY;\n el3.attr({ x1: start.x, y1: start.y });\n }\n } else if (el.nodeName === \"path\") {\n var pathlen = el.getTotalLength();\n var dashArray = \"\";\n if (pathlen < backOff + startBackOff) {\n hideLine();\n return;\n }\n var start0 = el.getPointAtLength(0);\n var dstart = el.getPointAtLength(0.1);\n startRot = Math.atan2(start0.y - dstart.y, start0.x - dstart.x);\n start = el.getPointAtLength(Math.min(startBackOff, pathlen));\n dashArray = \"0px,\" + startBackOff + \"px,\";\n var end0 = el.getPointAtLength(pathlen);\n var dend = el.getPointAtLength(pathlen - 0.1);\n endRot = Math.atan2(end0.y - dend.y, end0.x - dend.x);\n end = el.getPointAtLength(Math.max(0, pathlen - backOff));\n var shortening = dashArray ? startBackOff + backOff : backOff;\n dashArray += pathlen - shortening + \"px,\" + pathlen + \"px\";\n el3.style(\"stroke-dasharray\", dashArray);\n }\n function hideLine() {\n el3.style(\"stroke-dasharray\", \"0px,100px\");\n }\n function drawhead(arrowHeadStyle, p, rot, arrowScale) {\n if (!arrowHeadStyle.path) return;\n if (arrowHeadStyle.noRotate) rot = 0;\n d3.select(el.parentNode).append(\"path\").attr({\n class: el3.attr(\"class\"),\n d: arrowHeadStyle.path,\n transform: strTranslate(p.x, p.y) + strRotate(rot * 180 / Math.PI) + strScale(arrowScale)\n }).style({\n fill: Color2.rgb(options.arrowcolor),\n \"stroke-width\": 0\n });\n }\n if (doStart) drawhead(startHeadStyle, start, startRot, startScale);\n if (doEnd) drawhead(headStyle, end, endRot, scale);\n };\n }\n });\n\n // src/components/annotations/draw.js\n var require_draw4 = __commonJS({\n \"src/components/annotations/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Plots = require_plots();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Axes = require_axes();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Fx = require_fx();\n var svgTextUtils = require_svg_text_utils();\n var setCursor = require_setcursor();\n var dragElement = require_dragelement();\n var arrayEditor = require_plot_template().arrayEditor;\n var drawArrowHead = require_draw_arrow_head();\n module.exports = {\n draw,\n drawOne,\n drawRaw\n };\n function draw(gd) {\n var fullLayout = gd._fullLayout;\n fullLayout._infolayer.selectAll(\".annotation\").remove();\n for (var i = 0; i < fullLayout.annotations.length; i++) {\n if (fullLayout.annotations[i].visible) {\n drawOne(gd, i);\n }\n }\n return Plots.previousPromises(gd);\n }\n function drawOne(gd, index) {\n var fullLayout = gd._fullLayout;\n var options = fullLayout.annotations[index] || {};\n var xa = Axes.getFromId(gd, options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n if (xa) xa.setScale();\n if (ya) ya.setScale();\n drawRaw(gd, options, index, false, xa, ya);\n }\n function shiftPosition(axa, dAx, axLetter, gs, options) {\n var optAx = options[axLetter];\n var axRef = options[axLetter + \"ref\"];\n var vertical = axLetter.indexOf(\"y\") !== -1;\n var axDomainRef = Axes.getRefType(axRef) === \"domain\";\n var gsDim = vertical ? gs.h : gs.w;\n if (axa) {\n if (axDomainRef) {\n return optAx + (vertical ? -dAx : dAx) / axa._length;\n } else {\n return axa.p2r(axa.r2p(optAx) + dAx);\n }\n } else {\n return optAx + (vertical ? -dAx : dAx) / gsDim;\n }\n }\n function drawRaw(gd, options, index, subplotId, xa, ya) {\n var fullLayout = gd._fullLayout;\n var gs = gd._fullLayout._size;\n var edits = gd._context.edits;\n var className, containerStr;\n if (subplotId) {\n className = \"annotation-\" + subplotId;\n containerStr = subplotId + \".annotations\";\n } else {\n className = \"annotation\";\n containerStr = \"annotations\";\n }\n var editHelpers = arrayEditor(gd.layout, containerStr, options);\n var modifyBase = editHelpers.modifyBase;\n var modifyItem = editHelpers.modifyItem;\n var getUpdateObj = editHelpers.getUpdateObj;\n fullLayout._infolayer.selectAll(\".\" + className + '[data-index=\"' + index + '\"]').remove();\n var annClipID = \"clip\" + fullLayout._uid + \"_ann\" + index;\n if (!options._input || options.visible === false) {\n d3.selectAll(\"#\" + annClipID).remove();\n return;\n }\n var annPosPx = { x: {}, y: {} };\n var textangle = +options.textangle || 0;\n var annGroup = fullLayout._infolayer.append(\"g\").classed(className, true).attr(\"data-index\", String(index)).style(\"opacity\", options.opacity);\n var annTextGroup = annGroup.append(\"g\").classed(\"annotation-text-g\", true);\n var editTextPosition = edits[options.showarrow ? \"annotationTail\" : \"annotationPosition\"];\n var textEvents = options.captureevents || edits.annotationText || editTextPosition;\n function makeEventData(initialEvent) {\n var eventData = {\n index,\n annotation: options._input,\n fullAnnotation: options,\n event: initialEvent\n };\n if (subplotId) {\n eventData.subplotId = subplotId;\n }\n return eventData;\n }\n var annTextGroupInner = annTextGroup.append(\"g\").style(\"pointer-events\", textEvents ? \"all\" : null).call(setCursor, \"pointer\").on(\"click\", function() {\n gd._dragging = false;\n gd.emit(\"plotly_clickannotation\", makeEventData(d3.event));\n });\n if (options.hovertext) {\n annTextGroupInner.on(\"mouseover\", function() {\n var hoverOptions = options.hoverlabel;\n var hoverFont = hoverOptions.font;\n var bBox = this.getBoundingClientRect();\n var bBoxRef = gd.getBoundingClientRect();\n Fx.loneHover({\n x0: bBox.left - bBoxRef.left,\n x1: bBox.right - bBoxRef.left,\n y: (bBox.top + bBox.bottom) / 2 - bBoxRef.top,\n text: options.hovertext,\n color: hoverOptions.bgcolor,\n borderColor: hoverOptions.bordercolor,\n fontFamily: hoverFont.family,\n fontSize: hoverFont.size,\n fontColor: hoverFont.color,\n fontWeight: hoverFont.weight,\n fontStyle: hoverFont.style,\n fontVariant: hoverFont.variant,\n fontShadow: hoverFont.fontShadow,\n fontLineposition: hoverFont.fontLineposition,\n fontTextcase: hoverFont.fontTextcase\n }, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd\n });\n }).on(\"mouseout\", function() {\n Fx.loneUnhover(fullLayout._hoverlayer.node());\n });\n }\n var borderwidth = options.borderwidth;\n var borderpad = options.borderpad;\n var borderfull = borderwidth + borderpad;\n var annTextBG = annTextGroupInner.append(\"rect\").attr(\"class\", \"bg\").style(\"stroke-width\", borderwidth + \"px\").call(Color2.stroke, options.bordercolor).call(Color2.fill, options.bgcolor);\n var isSizeConstrained = options.width || options.height;\n var annTextClip = fullLayout._topclips.selectAll(\"#\" + annClipID).data(isSizeConstrained ? [0] : []);\n annTextClip.enter().append(\"clipPath\").classed(\"annclip\", true).attr(\"id\", annClipID).append(\"rect\");\n annTextClip.exit().remove();\n var font = options.font;\n var text = fullLayout._meta ? Lib.templateString(options.text, fullLayout._meta) : options.text;\n var annText = annTextGroupInner.append(\"text\").classed(\"annotation-text\", true).text(text);\n function textLayout(s) {\n s.call(Drawing.font, font).attr({\n \"text-anchor\": {\n left: \"start\",\n right: \"end\"\n }[options.align] || \"middle\"\n });\n svgTextUtils.convertToTspans(s, gd, drawGraphicalElements);\n return s;\n }\n function drawGraphicalElements() {\n var anchor3 = annText.selectAll(\"a\");\n if (anchor3.size() === 1 && anchor3.text() === annText.text()) {\n var wholeLink = annTextGroupInner.insert(\"a\", \":first-child\").attr({\n \"xlink:xlink:href\": anchor3.attr(\"xlink:href\"),\n \"xlink:xlink:show\": anchor3.attr(\"xlink:show\")\n }).style({ cursor: \"pointer\" });\n wholeLink.node().appendChild(annTextBG.node());\n }\n var mathjaxGroup = annTextGroupInner.select(\".annotation-text-math-group\");\n var hasMathjax = !mathjaxGroup.empty();\n var anntextBB = Drawing.bBox(\n (hasMathjax ? mathjaxGroup : annText).node()\n );\n var textWidth = anntextBB.width;\n var textHeight = anntextBB.height;\n var annWidth = options.width || textWidth;\n var annHeight = options.height || textHeight;\n var outerWidth = Math.round(annWidth + 2 * borderfull);\n var outerHeight = Math.round(annHeight + 2 * borderfull);\n function shiftFraction(v, anchor2) {\n if (anchor2 === \"auto\") {\n if (v < 1 / 3) anchor2 = \"left\";\n else if (v > 2 / 3) anchor2 = \"right\";\n else anchor2 = \"center\";\n }\n return {\n center: 0,\n middle: 0,\n left: 0.5,\n bottom: -0.5,\n right: -0.5,\n top: 0.5\n }[anchor2];\n }\n var annotationIsOffscreen = false;\n var letters = [\"x\", \"y\"];\n for (var i = 0; i < letters.length; i++) {\n var axLetter = letters[i];\n var axRef = options[axLetter + \"ref\"] || axLetter;\n var tailRef = options[\"a\" + axLetter + \"ref\"];\n var ax = { x: xa, y: ya }[axLetter];\n var dimAngle = (textangle + (axLetter === \"x\" ? 0 : -90)) * Math.PI / 180;\n var annSizeFromWidth = outerWidth * Math.cos(dimAngle);\n var annSizeFromHeight = outerHeight * Math.sin(dimAngle);\n var annSize = Math.abs(annSizeFromWidth) + Math.abs(annSizeFromHeight);\n var anchor = options[axLetter + \"anchor\"];\n var overallShift = options[axLetter + \"shift\"] * (axLetter === \"x\" ? 1 : -1);\n var posPx = annPosPx[axLetter];\n var basePx;\n var textPadShift;\n var alignPosition;\n var autoAlignFraction;\n var textShift;\n var axRefType = Axes.getRefType(axRef);\n if (ax && axRefType !== \"domain\") {\n var posFraction = ax.r2fraction(options[axLetter]);\n if (posFraction < 0 || posFraction > 1) {\n if (tailRef === axRef) {\n posFraction = ax.r2fraction(options[\"a\" + axLetter]);\n if (posFraction < 0 || posFraction > 1) {\n annotationIsOffscreen = true;\n }\n } else {\n annotationIsOffscreen = true;\n }\n }\n basePx = ax._offset + ax.r2p(options[axLetter]);\n autoAlignFraction = 0.5;\n } else {\n var axRefTypeEqDomain = axRefType === \"domain\";\n if (axLetter === \"x\") {\n alignPosition = options[axLetter];\n basePx = axRefTypeEqDomain ? ax._offset + ax._length * alignPosition : basePx = gs.l + gs.w * alignPosition;\n } else {\n alignPosition = 1 - options[axLetter];\n basePx = axRefTypeEqDomain ? ax._offset + ax._length * alignPosition : basePx = gs.t + gs.h * alignPosition;\n }\n autoAlignFraction = options.showarrow ? 0.5 : alignPosition;\n }\n if (options.showarrow) {\n posPx.head = basePx;\n var arrowLength = options[\"a\" + axLetter];\n textShift = annSizeFromWidth * shiftFraction(0.5, options.xanchor) - annSizeFromHeight * shiftFraction(0.5, options.yanchor);\n if (tailRef === axRef) {\n var tailRefType = Axes.getRefType(tailRef);\n if (tailRefType === \"domain\") {\n if (axLetter === \"y\") {\n arrowLength = 1 - arrowLength;\n }\n posPx.tail = ax._offset + ax._length * arrowLength;\n } else if (tailRefType === \"paper\") {\n if (axLetter === \"y\") {\n arrowLength = 1 - arrowLength;\n posPx.tail = gs.t + gs.h * arrowLength;\n } else {\n posPx.tail = gs.l + gs.w * arrowLength;\n }\n } else {\n posPx.tail = ax._offset + ax.r2p(arrowLength);\n }\n textPadShift = textShift;\n } else {\n posPx.tail = basePx + arrowLength;\n textPadShift = textShift + arrowLength;\n }\n posPx.text = posPx.tail + textShift;\n var maxPx = fullLayout[axLetter === \"x\" ? \"width\" : \"height\"];\n if (axRef === \"paper\") {\n posPx.head = Lib.constrain(posPx.head, 1, maxPx - 1);\n }\n if (tailRef === \"pixel\") {\n var shiftPlus = -Math.max(posPx.tail - 3, posPx.text);\n var shiftMinus = Math.min(posPx.tail + 3, posPx.text) - maxPx;\n if (shiftPlus > 0) {\n posPx.tail += shiftPlus;\n posPx.text += shiftPlus;\n } else if (shiftMinus > 0) {\n posPx.tail -= shiftMinus;\n posPx.text -= shiftMinus;\n }\n }\n posPx.tail += overallShift;\n posPx.head += overallShift;\n } else {\n textShift = annSize * shiftFraction(autoAlignFraction, anchor);\n textPadShift = textShift;\n posPx.text = basePx + textShift;\n }\n posPx.text += overallShift;\n textShift += overallShift;\n textPadShift += overallShift;\n options[\"_\" + axLetter + \"padplus\"] = annSize / 2 + textPadShift;\n options[\"_\" + axLetter + \"padminus\"] = annSize / 2 - textPadShift;\n options[\"_\" + axLetter + \"size\"] = annSize;\n options[\"_\" + axLetter + \"shift\"] = textShift;\n }\n if (annotationIsOffscreen) {\n annTextGroupInner.remove();\n return;\n }\n var xShift = 0;\n var yShift = 0;\n if (options.align !== \"left\") {\n xShift = (annWidth - textWidth) * (options.align === \"center\" ? 0.5 : 1);\n }\n if (options.valign !== \"top\") {\n yShift = (annHeight - textHeight) * (options.valign === \"middle\" ? 0.5 : 1);\n }\n if (hasMathjax) {\n mathjaxGroup.select(\"svg\").attr({\n x: borderfull + xShift - 1,\n y: borderfull + yShift\n }).call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n } else {\n var texty = borderfull + yShift - anntextBB.top;\n var textx = borderfull + xShift - anntextBB.left;\n annText.call(svgTextUtils.positionText, textx, texty).call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n }\n annTextClip.select(\"rect\").call(\n Drawing.setRect,\n borderfull,\n borderfull,\n annWidth,\n annHeight\n );\n annTextBG.call(\n Drawing.setRect,\n borderwidth / 2,\n borderwidth / 2,\n outerWidth - borderwidth,\n outerHeight - borderwidth\n );\n annTextGroupInner.call(\n Drawing.setTranslate,\n Math.round(annPosPx.x.text - outerWidth / 2),\n Math.round(annPosPx.y.text - outerHeight / 2)\n );\n annTextGroup.attr({ transform: \"rotate(\" + textangle + \",\" + annPosPx.x.text + \",\" + annPosPx.y.text + \")\" });\n var drawArrow = function(dx, dy) {\n annGroup.selectAll(\".annotation-arrow-g\").remove();\n var headX = annPosPx.x.head;\n var headY = annPosPx.y.head;\n var tailX = annPosPx.x.tail + dx;\n var tailY = annPosPx.y.tail + dy;\n var textX = annPosPx.x.text + dx;\n var textY = annPosPx.y.text + dy;\n var transform = Lib.rotationXYMatrix(textangle, textX, textY);\n var applyTransform = Lib.apply2DTransform(transform);\n var applyTransform2 = Lib.apply2DTransform2(transform);\n var width = +annTextBG.attr(\"width\");\n var height = +annTextBG.attr(\"height\");\n var xLeft = textX - 0.5 * width;\n var xRight = xLeft + width;\n var yTop = textY - 0.5 * height;\n var yBottom = yTop + height;\n var edges = [\n [xLeft, yTop, xLeft, yBottom],\n [xLeft, yBottom, xRight, yBottom],\n [xRight, yBottom, xRight, yTop],\n [xRight, yTop, xLeft, yTop]\n ].map(applyTransform2);\n if (edges.reduce(function(a, x) {\n return a ^ !!Lib.segmentsIntersect(\n headX,\n headY,\n headX + 1e6,\n headY + 1e6,\n x[0],\n x[1],\n x[2],\n x[3]\n );\n }, false)) {\n return;\n }\n edges.forEach(function(x) {\n var p = Lib.segmentsIntersect(\n tailX,\n tailY,\n headX,\n headY,\n x[0],\n x[1],\n x[2],\n x[3]\n );\n if (p) {\n tailX = p.x;\n tailY = p.y;\n }\n });\n var strokewidth = options.arrowwidth;\n var arrowColor = options.arrowcolor;\n var arrowSide = options.arrowside;\n var arrowGroup = annGroup.append(\"g\").style({ opacity: Color2.opacity(arrowColor) }).classed(\"annotation-arrow-g\", true);\n var arrow = arrowGroup.append(\"path\").attr(\"d\", \"M\" + tailX + \",\" + tailY + \"L\" + headX + \",\" + headY).style(\"stroke-width\", strokewidth + \"px\").call(Color2.stroke, Color2.rgb(arrowColor));\n drawArrowHead(arrow, arrowSide, options);\n if (edits.annotationPosition && arrow.node().parentNode && !subplotId) {\n var arrowDragHeadX = headX;\n var arrowDragHeadY = headY;\n if (options.standoff) {\n var arrowLength2 = Math.sqrt(Math.pow(headX - tailX, 2) + Math.pow(headY - tailY, 2));\n arrowDragHeadX += options.standoff * (tailX - headX) / arrowLength2;\n arrowDragHeadY += options.standoff * (tailY - headY) / arrowLength2;\n }\n var arrowDrag = arrowGroup.append(\"path\").classed(\"annotation-arrow\", true).classed(\"anndrag\", true).classed(\"cursor-move\", true).attr({\n d: \"M3,3H-3V-3H3ZM0,0L\" + (tailX - arrowDragHeadX) + \",\" + (tailY - arrowDragHeadY),\n transform: strTranslate(arrowDragHeadX, arrowDragHeadY)\n }).style(\"stroke-width\", strokewidth + 6 + \"px\").call(Color2.stroke, \"rgba(0,0,0,0)\").call(Color2.fill, \"rgba(0,0,0,0)\");\n var annx0, anny0;\n dragElement.init({\n element: arrowDrag.node(),\n gd,\n prepFn: function() {\n var pos = Drawing.getTranslate(annTextGroupInner);\n annx0 = pos.x;\n anny0 = pos.y;\n if (xa && xa.autorange) {\n modifyBase(xa._name + \".autorange\", true);\n }\n if (ya && ya.autorange) {\n modifyBase(ya._name + \".autorange\", true);\n }\n },\n moveFn: function(dx2, dy2) {\n var annxy0 = applyTransform(annx0, anny0);\n var xcenter = annxy0[0] + dx2;\n var ycenter = annxy0[1] + dy2;\n annTextGroupInner.call(Drawing.setTranslate, xcenter, ycenter);\n modifyItem(\n \"x\",\n shiftPosition(xa, dx2, \"x\", gs, options)\n );\n modifyItem(\n \"y\",\n shiftPosition(ya, dy2, \"y\", gs, options)\n );\n if (options.axref === options.xref) {\n modifyItem(\"ax\", shiftPosition(xa, dx2, \"ax\", gs, options));\n }\n if (options.ayref === options.yref) {\n modifyItem(\"ay\", shiftPosition(ya, dy2, \"ay\", gs, options));\n }\n arrowGroup.attr(\"transform\", strTranslate(dx2, dy2));\n annTextGroup.attr({\n transform: \"rotate(\" + textangle + \",\" + xcenter + \",\" + ycenter + \")\"\n });\n },\n doneFn: function() {\n Registry.call(\"_guiRelayout\", gd, getUpdateObj());\n var notesBox = document.querySelector(\".js-notes-box-panel\");\n if (notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n };\n if (options.showarrow) drawArrow(0, 0);\n if (editTextPosition) {\n var baseTextTransform;\n dragElement.init({\n element: annTextGroupInner.node(),\n gd,\n prepFn: function() {\n baseTextTransform = annTextGroup.attr(\"transform\");\n },\n moveFn: function(dx, dy) {\n var csr = \"pointer\";\n if (options.showarrow) {\n if (options.axref === options.xref) {\n modifyItem(\"ax\", shiftPosition(xa, dx, \"ax\", gs, options));\n } else {\n modifyItem(\"ax\", options.ax + dx);\n }\n if (options.ayref === options.yref) {\n modifyItem(\"ay\", shiftPosition(ya, dy, \"ay\", gs.w, options));\n } else {\n modifyItem(\"ay\", options.ay + dy);\n }\n drawArrow(dx, dy);\n } else if (!subplotId) {\n var xUpdate, yUpdate;\n if (xa) {\n xUpdate = shiftPosition(xa, dx, \"x\", gs, options);\n } else {\n var widthFraction = options._xsize / gs.w;\n var xLeft = options.x + (options._xshift - options.xshift) / gs.w - widthFraction / 2;\n xUpdate = dragElement.align(\n xLeft + dx / gs.w,\n widthFraction,\n 0,\n 1,\n options.xanchor\n );\n }\n if (ya) {\n yUpdate = shiftPosition(ya, dy, \"y\", gs, options);\n } else {\n var heightFraction = options._ysize / gs.h;\n var yBottom = options.y - (options._yshift + options.yshift) / gs.h - heightFraction / 2;\n yUpdate = dragElement.align(\n yBottom - dy / gs.h,\n heightFraction,\n 0,\n 1,\n options.yanchor\n );\n }\n modifyItem(\"x\", xUpdate);\n modifyItem(\"y\", yUpdate);\n if (!xa || !ya) {\n csr = dragElement.getCursor(\n xa ? 0.5 : xUpdate,\n ya ? 0.5 : yUpdate,\n options.xanchor,\n options.yanchor\n );\n }\n } else return;\n annTextGroup.attr({\n transform: strTranslate(dx, dy) + baseTextTransform\n });\n setCursor(annTextGroupInner, csr);\n },\n clickFn: function(_, initialEvent) {\n if (options.captureevents) {\n gd.emit(\"plotly_clickannotation\", makeEventData(initialEvent));\n }\n },\n doneFn: function() {\n setCursor(annTextGroupInner);\n Registry.call(\"_guiRelayout\", gd, getUpdateObj());\n var notesBox = document.querySelector(\".js-notes-box-panel\");\n if (notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n }\n if (edits.annotationText) {\n annText.call(svgTextUtils.makeEditable, { delegate: annTextGroupInner, gd }).call(textLayout).on(\"edit\", function(_text) {\n options.text = _text;\n this.call(textLayout);\n modifyItem(\"text\", _text);\n if (xa && xa.autorange) {\n modifyBase(xa._name + \".autorange\", true);\n }\n if (ya && ya.autorange) {\n modifyBase(ya._name + \".autorange\", true);\n }\n Registry.call(\"_guiRelayout\", gd, getUpdateObj());\n });\n } else annText.call(textLayout);\n }\n }\n });\n\n // src/components/annotations/click.js\n var require_click2 = __commonJS({\n \"src/components/annotations/click.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var arrayEditor = require_plot_template().arrayEditor;\n module.exports = {\n hasClickToShow,\n onClick\n };\n function hasClickToShow(gd, hoverData) {\n var sets = getToggleSets(gd, hoverData);\n return sets.on.length > 0 || sets.explicitOff.length > 0;\n }\n function onClick(gd, hoverData) {\n var toggleSets = getToggleSets(gd, hoverData);\n var onSet = toggleSets.on;\n var offSet = toggleSets.off.concat(toggleSets.explicitOff);\n var update = {};\n var annotationsOut = gd._fullLayout.annotations;\n var i, editHelpers;\n if (!(onSet.length || offSet.length)) return;\n for (i = 0; i < onSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, \"annotations\", annotationsOut[onSet[i]]);\n editHelpers.modifyItem(\"visible\", true);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n for (i = 0; i < offSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, \"annotations\", annotationsOut[offSet[i]]);\n editHelpers.modifyItem(\"visible\", false);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n return Registry.call(\"update\", gd, {}, update);\n }\n function getToggleSets(gd, hoverData) {\n var annotations = gd._fullLayout.annotations;\n var onSet = [];\n var offSet = [];\n var explicitOffSet = [];\n var hoverLen = (hoverData || []).length;\n var i, j, anni, showMode, pointj, xa, ya, toggleType;\n for (i = 0; i < annotations.length; i++) {\n anni = annotations[i];\n showMode = anni.clicktoshow;\n if (showMode) {\n for (j = 0; j < hoverLen; j++) {\n pointj = hoverData[j];\n xa = pointj.xaxis;\n ya = pointj.yaxis;\n if (xa._id === anni.xref && ya._id === anni.yref && xa.d2r(pointj.x) === clickData2r(anni._xclick, xa) && ya.d2r(pointj.y) === clickData2r(anni._yclick, ya)) {\n if (anni.visible) {\n if (showMode === \"onout\") toggleType = offSet;\n else toggleType = explicitOffSet;\n } else {\n toggleType = onSet;\n }\n toggleType.push(i);\n break;\n }\n }\n if (j === hoverLen) {\n if (anni.visible && showMode === \"onout\") offSet.push(i);\n }\n }\n }\n return { on: onSet, off: offSet, explicitOff: explicitOffSet };\n }\n function clickData2r(d, ax) {\n return ax.type === \"log\" ? ax.l2r(d) : ax.d2r(d);\n }\n }\n });\n\n // src/components/annotations/common_defaults.js\n var require_common_defaults = __commonJS({\n \"src/components/annotations/common_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n module.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce) {\n coerce(\"opacity\");\n var bgColor = coerce(\"bgcolor\");\n var borderColor = coerce(\"bordercolor\");\n var borderOpacity = Color2.opacity(borderColor);\n coerce(\"borderpad\");\n var borderWidth = coerce(\"borderwidth\");\n var showArrow = coerce(\"showarrow\");\n coerce(\"text\", showArrow ? \" \" : fullLayout._dfltTitle.annotation);\n coerce(\"textangle\");\n Lib.coerceFont(coerce, \"font\", fullLayout.font);\n coerce(\"width\");\n coerce(\"align\");\n var h = coerce(\"height\");\n if (h) coerce(\"valign\");\n if (showArrow) {\n var arrowside = coerce(\"arrowside\");\n var arrowhead;\n var arrowsize;\n if (arrowside.indexOf(\"end\") !== -1) {\n arrowhead = coerce(\"arrowhead\");\n arrowsize = coerce(\"arrowsize\");\n }\n if (arrowside.indexOf(\"start\") !== -1) {\n coerce(\"startarrowhead\", arrowhead);\n coerce(\"startarrowsize\", arrowsize);\n }\n coerce(\"arrowcolor\", borderOpacity ? annOut.bordercolor : Color2.defaultLine);\n coerce(\"arrowwidth\", (borderOpacity && borderWidth || 1) * 2);\n coerce(\"standoff\");\n coerce(\"startstandoff\");\n }\n var hoverText = coerce(\"hovertext\");\n var globalHoverLabel = fullLayout.hoverlabel || {};\n if (hoverText) {\n var hoverBG = coerce(\n \"hoverlabel.bgcolor\",\n globalHoverLabel.bgcolor || (Color2.opacity(bgColor) ? Color2.rgb(bgColor) : Color2.defaultLine)\n );\n var hoverBorder = coerce(\n \"hoverlabel.bordercolor\",\n globalHoverLabel.bordercolor || Color2.contrast(hoverBG)\n );\n var fontDflt = Lib.extendFlat({}, globalHoverLabel.font);\n if (!fontDflt.color) {\n fontDflt.color = hoverBorder;\n }\n Lib.coerceFont(coerce, \"hoverlabel.font\", fontDflt);\n }\n coerce(\"captureevents\", !!hoverText);\n };\n }\n });\n\n // src/components/annotations/defaults.js\n var require_defaults9 = __commonJS({\n \"src/components/annotations/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var handleAnnotationCommonDefaults = require_common_defaults();\n var attributes = require_attributes11();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: \"annotations\",\n handleItemDefaults: handleAnnotationDefaults\n });\n };\n function handleAnnotationDefaults(annIn, annOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(annIn, annOut, attributes, attr, dflt);\n }\n var visible = coerce(\"visible\");\n var clickToShow = coerce(\"clicktoshow\");\n if (!(visible || clickToShow)) return;\n handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce);\n var showArrow = annOut.showarrow;\n var axLetters = [\"x\", \"y\"];\n var arrowPosDflt = [-10, -30];\n var gdMock = { _fullLayout: fullLayout };\n for (var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var axRef = Axes.coerceRef(annIn, annOut, gdMock, axLetter, \"\", \"paper\");\n if (axRef !== \"paper\") {\n var ax = Axes.getFromId(gdMock, axRef);\n ax._annIndices.push(annOut._index);\n }\n Axes.coercePosition(annOut, gdMock, coerce, axRef, axLetter, 0.5);\n if (showArrow) {\n var arrowPosAttr = \"a\" + axLetter;\n var aaxRef = Axes.coerceRef(\n annIn,\n annOut,\n gdMock,\n arrowPosAttr,\n \"pixel\",\n [\"pixel\", \"paper\"]\n );\n if (aaxRef !== \"pixel\" && aaxRef !== axRef) {\n aaxRef = annOut[arrowPosAttr] = \"pixel\";\n }\n var aDflt = aaxRef === \"pixel\" ? arrowPosDflt[i] : 0.4;\n Axes.coercePosition(annOut, gdMock, coerce, aaxRef, arrowPosAttr, aDflt);\n }\n coerce(axLetter + \"anchor\");\n coerce(axLetter + \"shift\");\n }\n Lib.noneOrAll(annIn, annOut, [\"x\", \"y\"]);\n if (showArrow) {\n Lib.noneOrAll(annIn, annOut, [\"ax\", \"ay\"]);\n }\n if (clickToShow) {\n var xClick = coerce(\"xclick\");\n var yClick = coerce(\"yclick\");\n annOut._xclick = xClick === void 0 ? annOut.x : Axes.cleanPosition(xClick, gdMock, annOut.xref);\n annOut._yclick = yClick === void 0 ? annOut.y : Axes.cleanPosition(yClick, gdMock, annOut.yref);\n }\n }\n }\n });\n\n // src/components/annotations/calc_autorange.js\n var require_calc_autorange = __commonJS({\n \"src/components/annotations/calc_autorange.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var draw = require_draw4().draw;\n module.exports = function calcAutorange(gd) {\n var fullLayout = gd._fullLayout;\n var annotationList = Lib.filterVisible(fullLayout.annotations);\n if (annotationList.length && gd._fullData.length) {\n return Lib.syncOrAsync([draw, annAutorange], gd);\n }\n };\n function annAutorange(gd) {\n var fullLayout = gd._fullLayout;\n Lib.filterVisible(fullLayout.annotations).forEach(function(ann) {\n var xa = Axes.getFromId(gd, ann.xref);\n var ya = Axes.getFromId(gd, ann.yref);\n var xRefType = Axes.getRefType(ann.xref);\n var yRefType = Axes.getRefType(ann.yref);\n ann._extremes = {};\n if (xRefType === \"range\") calcAxisExpansion(ann, xa);\n if (yRefType === \"range\") calcAxisExpansion(ann, ya);\n });\n }\n function calcAxisExpansion(ann, ax) {\n var axId = ax._id;\n var letter = axId.charAt(0);\n var pos = ann[letter];\n var apos = ann[\"a\" + letter];\n var ref = ann[letter + \"ref\"];\n var aref = ann[\"a\" + letter + \"ref\"];\n var padplus = ann[\"_\" + letter + \"padplus\"];\n var padminus = ann[\"_\" + letter + \"padminus\"];\n var shift = { x: 1, y: -1 }[letter] * ann[letter + \"shift\"];\n var headSize = 3 * ann.arrowsize * ann.arrowwidth || 0;\n var headPlus = headSize + shift;\n var headMinus = headSize - shift;\n var startHeadSize = 3 * ann.startarrowsize * ann.arrowwidth || 0;\n var startHeadPlus = startHeadSize + shift;\n var startHeadMinus = startHeadSize - shift;\n var extremes;\n if (aref === ref) {\n var extremeArrowHead = Axes.findExtremes(ax, [ax.r2c(pos)], {\n ppadplus: headPlus,\n ppadminus: headMinus\n });\n var extremeText = Axes.findExtremes(ax, [ax.r2c(apos)], {\n ppadplus: Math.max(padplus, startHeadPlus),\n ppadminus: Math.max(padminus, startHeadMinus)\n });\n extremes = {\n min: [extremeArrowHead.min[0], extremeText.min[0]],\n max: [extremeArrowHead.max[0], extremeText.max[0]]\n };\n } else {\n startHeadPlus = apos ? startHeadPlus + apos : startHeadPlus;\n startHeadMinus = apos ? startHeadMinus - apos : startHeadMinus;\n extremes = Axes.findExtremes(ax, [ax.r2c(pos)], {\n ppadplus: Math.max(padplus, headPlus, startHeadPlus),\n ppadminus: Math.max(padminus, headMinus, startHeadMinus)\n });\n }\n ann._extremes[axId] = extremes;\n }\n }\n });\n\n // src/components/annotations/convert_coords.js\n var require_convert_coords = __commonJS({\n \"src/components/annotations/convert_coords.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var toLogRange = require_to_log_range();\n module.exports = function convertCoords(gd, ax, newType, doExtra) {\n ax = ax || {};\n var toLog = newType === \"log\" && ax.type === \"linear\";\n var fromLog = newType === \"linear\" && ax.type === \"log\";\n if (!(toLog || fromLog)) return;\n var annotations = gd._fullLayout.annotations;\n var axLetter = ax._id.charAt(0);\n var ann;\n var attrPrefix;\n function convert(attr) {\n var currentVal = ann[attr];\n var newVal = null;\n if (toLog) newVal = toLogRange(currentVal, ax.range);\n else newVal = Math.pow(10, currentVal);\n if (!isNumeric(newVal)) newVal = null;\n doExtra(attrPrefix + attr, newVal);\n }\n for (var i = 0; i < annotations.length; i++) {\n ann = annotations[i];\n attrPrefix = \"annotations[\" + i + \"].\";\n if (ann[axLetter + \"ref\"] === ax._id) convert(axLetter);\n if (ann[\"a\" + axLetter + \"ref\"] === ax._id) convert(\"a\" + axLetter);\n }\n };\n }\n });\n\n // src/components/annotations/index.js\n var require_annotations = __commonJS({\n \"src/components/annotations/index.js\"(exports, module) {\n \"use strict\";\n var drawModule = require_draw4();\n var clickModule = require_click2();\n module.exports = {\n moduleType: \"component\",\n name: \"annotations\",\n layoutAttributes: require_attributes11(),\n supplyLayoutDefaults: require_defaults9(),\n includeBasePlot: require_include_components()(\"annotations\"),\n calcAutorange: require_calc_autorange(),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne,\n drawRaw: drawModule.drawRaw,\n hasClickToShow: clickModule.hasClickToShow,\n onClick: clickModule.onClick,\n convertCoords: require_convert_coords()\n };\n }\n });\n\n // src/components/annotations3d/attributes.js\n var require_attributes15 = __commonJS({\n \"src/components/annotations3d/attributes.js\"(exports, module) {\n \"use strict\";\n var annAttrs = require_attributes11();\n var overrideAll = require_edit_types().overrideAll;\n var templatedArray = require_plot_template().templatedArray;\n module.exports = overrideAll(templatedArray(\"annotation\", {\n visible: annAttrs.visible,\n x: {\n valType: \"any\"\n },\n y: {\n valType: \"any\"\n },\n z: {\n valType: \"any\"\n },\n ax: {\n valType: \"number\"\n },\n ay: {\n valType: \"number\"\n },\n xanchor: annAttrs.xanchor,\n xshift: annAttrs.xshift,\n yanchor: annAttrs.yanchor,\n yshift: annAttrs.yshift,\n text: annAttrs.text,\n textangle: annAttrs.textangle,\n font: annAttrs.font,\n width: annAttrs.width,\n height: annAttrs.height,\n opacity: annAttrs.opacity,\n align: annAttrs.align,\n valign: annAttrs.valign,\n bgcolor: annAttrs.bgcolor,\n bordercolor: annAttrs.bordercolor,\n borderpad: annAttrs.borderpad,\n borderwidth: annAttrs.borderwidth,\n showarrow: annAttrs.showarrow,\n arrowcolor: annAttrs.arrowcolor,\n arrowhead: annAttrs.arrowhead,\n startarrowhead: annAttrs.startarrowhead,\n arrowside: annAttrs.arrowside,\n arrowsize: annAttrs.arrowsize,\n startarrowsize: annAttrs.startarrowsize,\n arrowwidth: annAttrs.arrowwidth,\n standoff: annAttrs.standoff,\n startstandoff: annAttrs.startstandoff,\n hovertext: annAttrs.hovertext,\n hoverlabel: annAttrs.hoverlabel,\n captureevents: annAttrs.captureevents\n // maybes later?\n // clicktoshow: annAttrs.clicktoshow,\n // xclick: annAttrs.xclick,\n // yclick: annAttrs.yclick,\n // not needed!\n // axref: 'pixel'\n // ayref: 'pixel'\n // xref: 'x'\n // yref: 'y\n // zref: 'z'\n }), \"calc\", \"from-root\");\n }\n });\n\n // src/components/annotations3d/defaults.js\n var require_defaults10 = __commonJS({\n \"src/components/annotations3d/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var handleAnnotationCommonDefaults = require_common_defaults();\n var attributes = require_attributes15();\n module.exports = function handleDefaults(sceneLayoutIn, sceneLayoutOut, opts) {\n handleArrayContainerDefaults(sceneLayoutIn, sceneLayoutOut, {\n name: \"annotations\",\n handleItemDefaults: handleAnnotationDefaults,\n fullLayout: opts.fullLayout\n });\n };\n function handleAnnotationDefaults(annIn, annOut, sceneLayout, opts) {\n function coerce(attr, dflt) {\n return Lib.coerce(annIn, annOut, attributes, attr, dflt);\n }\n function coercePosition(axLetter) {\n var axName = axLetter + \"axis\";\n var gdMock = { _fullLayout: {} };\n gdMock._fullLayout[axName] = sceneLayout[axName];\n return Axes.coercePosition(annOut, gdMock, coerce, axLetter, axLetter, 0.5);\n }\n var visible = coerce(\"visible\");\n if (!visible) return;\n handleAnnotationCommonDefaults(annIn, annOut, opts.fullLayout, coerce);\n coercePosition(\"x\");\n coercePosition(\"y\");\n coercePosition(\"z\");\n Lib.noneOrAll(annIn, annOut, [\"x\", \"y\", \"z\"]);\n annOut.xref = \"x\";\n annOut.yref = \"y\";\n annOut.zref = \"z\";\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n coerce(\"xshift\");\n coerce(\"yshift\");\n if (annOut.showarrow) {\n annOut.axref = \"pixel\";\n annOut.ayref = \"pixel\";\n coerce(\"ax\", -10);\n coerce(\"ay\", -30);\n Lib.noneOrAll(annIn, annOut, [\"ax\", \"ay\"]);\n }\n }\n }\n });\n\n // src/components/annotations3d/convert.js\n var require_convert = __commonJS({\n \"src/components/annotations3d/convert.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n module.exports = function convert(scene) {\n var fullSceneLayout = scene.fullSceneLayout;\n var anns = fullSceneLayout.annotations;\n for (var i = 0; i < anns.length; i++) {\n mockAnnAxes(anns[i], scene);\n }\n scene.fullLayout._infolayer.selectAll(\".annotation-\" + scene.id).remove();\n };\n function mockAnnAxes(ann, scene) {\n var fullSceneLayout = scene.fullSceneLayout;\n var domain = fullSceneLayout.domain;\n var size = scene.fullLayout._size;\n var base = {\n // this gets fill in on render\n pdata: null,\n // to get setConvert to not execute cleanly\n type: \"linear\",\n // don't try to update them on `editable: true`\n autorange: false,\n // set infinite range so that annotation draw routine\n // does not try to remove 'outside-range' annotations,\n // this case is handled in the render loop\n range: [-Infinity, Infinity]\n };\n ann._xa = {};\n Lib.extendFlat(ann._xa, base);\n Axes.setConvert(ann._xa);\n ann._xa._offset = size.l + domain.x[0] * size.w;\n ann._xa.l2p = function() {\n return 0.5 * (1 + ann._pdata[0] / ann._pdata[3]) * size.w * (domain.x[1] - domain.x[0]);\n };\n ann._ya = {};\n Lib.extendFlat(ann._ya, base);\n Axes.setConvert(ann._ya);\n ann._ya._offset = size.t + (1 - domain.y[1]) * size.h;\n ann._ya.l2p = function() {\n return 0.5 * (1 - ann._pdata[1] / ann._pdata[3]) * size.h * (domain.y[1] - domain.y[0]);\n };\n }\n }\n });\n\n // src/plots/gl3d/project.js\n var require_project = __commonJS({\n \"src/plots/gl3d/project.js\"(exports, module) {\n \"use strict\";\n function xformMatrix(m, v) {\n var out = [0, 0, 0, 0];\n var i, j;\n for (i = 0; i < 4; ++i) {\n for (j = 0; j < 4; ++j) {\n out[j] += m[4 * i + j] * v[i];\n }\n }\n return out;\n }\n function project(camera, v) {\n var p = xformMatrix(\n camera.projection,\n xformMatrix(\n camera.view,\n xformMatrix(camera.model, [v[0], v[1], v[2], 1])\n )\n );\n return p;\n }\n module.exports = project;\n }\n });\n\n // src/components/annotations3d/draw.js\n var require_draw5 = __commonJS({\n \"src/components/annotations3d/draw.js\"(exports, module) {\n \"use strict\";\n var drawRaw = require_draw4().drawRaw;\n var project = require_project();\n var axLetters = [\"x\", \"y\", \"z\"];\n module.exports = function draw(scene) {\n var fullSceneLayout = scene.fullSceneLayout;\n var dataScale = scene.dataScale;\n var anns = fullSceneLayout.annotations;\n for (var i = 0; i < anns.length; i++) {\n var ann = anns[i];\n var annotationIsOffscreen = false;\n for (var j = 0; j < 3; j++) {\n var axLetter = axLetters[j];\n var pos = ann[axLetter];\n var ax = fullSceneLayout[axLetter + \"axis\"];\n var posFraction = ax.r2fraction(pos);\n if (posFraction < 0 || posFraction > 1) {\n annotationIsOffscreen = true;\n break;\n }\n }\n if (annotationIsOffscreen) {\n scene.fullLayout._infolayer.select(\".annotation-\" + scene.id + '[data-index=\"' + i + '\"]').remove();\n } else {\n ann._pdata = project(scene.glplot.cameraParams, [\n fullSceneLayout.xaxis.r2l(ann.x) * dataScale[0],\n fullSceneLayout.yaxis.r2l(ann.y) * dataScale[1],\n fullSceneLayout.zaxis.r2l(ann.z) * dataScale[2]\n ]);\n drawRaw(scene.graphDiv, ann, i, scene.id, ann._xa, ann._ya);\n }\n }\n };\n }\n });\n\n // src/components/annotations3d/index.js\n var require_annotations3d = __commonJS({\n \"src/components/annotations3d/index.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n module.exports = {\n moduleType: \"component\",\n name: \"annotations3d\",\n schema: {\n subplots: {\n scene: { annotations: require_attributes15() }\n }\n },\n layoutAttributes: require_attributes15(),\n handleDefaults: require_defaults10(),\n includeBasePlot: includeGL3D,\n convert: require_convert(),\n draw: require_draw5()\n };\n function includeGL3D(layoutIn, layoutOut) {\n var GL3D = Registry.subplotsRegistry.gl3d;\n if (!GL3D) return;\n var attrRegex = GL3D.attrRegex;\n var keys = Object.keys(layoutIn);\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n if (attrRegex.test(k) && (layoutIn[k].annotations || []).length) {\n Lib.pushUnique(layoutOut._basePlotModules, GL3D);\n Lib.pushUnique(layoutOut._subplots.gl3d, k);\n }\n }\n }\n }\n });\n\n // src/components/shapes/attributes.js\n var require_attributes16 = __commonJS({\n \"src/components/shapes/attributes.js\"(exports, module) {\n \"use strict\";\n var annAttrs = require_attributes11();\n var fontAttrs = require_font_attributes();\n var scatterLineAttrs = require_attributes12().line;\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var templatedArray = require_plot_template().templatedArray;\n var axisPlaceableObjs = require_axis_placeable_objects();\n var basePlotAttributes = require_attributes2();\n var shapeTexttemplateAttrs = require_template_attributes().shapeTexttemplateAttrs;\n var shapeLabelTexttemplateVars = require_label_texttemplate();\n module.exports = templatedArray(\"shape\", {\n visible: extendFlat({}, basePlotAttributes.visible, {\n editType: \"calc+arraydraw\"\n }),\n showlegend: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc+arraydraw\"\n },\n legend: extendFlat({}, basePlotAttributes.legend, {\n editType: \"calc+arraydraw\"\n }),\n legendgroup: extendFlat({}, basePlotAttributes.legendgroup, {\n editType: \"calc+arraydraw\"\n }),\n legendgrouptitle: {\n text: extendFlat({}, basePlotAttributes.legendgrouptitle.text, {\n editType: \"calc+arraydraw\"\n }),\n font: fontAttrs({\n editType: \"calc+arraydraw\"\n }),\n editType: \"calc+arraydraw\"\n },\n legendrank: extendFlat({}, basePlotAttributes.legendrank, {\n editType: \"calc+arraydraw\"\n }),\n legendwidth: extendFlat({}, basePlotAttributes.legendwidth, {\n editType: \"calc+arraydraw\"\n }),\n type: {\n valType: \"enumerated\",\n values: [\"circle\", \"rect\", \"path\", \"line\"],\n editType: \"calc+arraydraw\"\n },\n layer: {\n valType: \"enumerated\",\n values: [\"below\", \"above\", \"between\"],\n dflt: \"above\",\n editType: \"arraydraw\"\n },\n xref: extendFlat({}, annAttrs.xref, {}),\n xsizemode: {\n valType: \"enumerated\",\n values: [\"scaled\", \"pixel\"],\n dflt: \"scaled\",\n editType: \"calc+arraydraw\"\n },\n xanchor: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n x0: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n x1: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n x0shift: {\n valType: \"number\",\n dflt: 0,\n min: -1,\n max: 1,\n editType: \"calc\"\n },\n x1shift: {\n valType: \"number\",\n dflt: 0,\n min: -1,\n max: 1,\n editType: \"calc\"\n },\n yref: extendFlat({}, annAttrs.yref, {}),\n ysizemode: {\n valType: \"enumerated\",\n values: [\"scaled\", \"pixel\"],\n dflt: \"scaled\",\n editType: \"calc+arraydraw\"\n },\n yanchor: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n y0: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n y1: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n y0shift: {\n valType: \"number\",\n dflt: 0,\n min: -1,\n max: 1,\n editType: \"calc\"\n },\n y1shift: {\n valType: \"number\",\n dflt: 0,\n min: -1,\n max: 1,\n editType: \"calc\"\n },\n path: {\n valType: \"string\",\n editType: \"calc+arraydraw\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"arraydraw\"\n },\n line: {\n color: extendFlat({}, scatterLineAttrs.color, { editType: \"arraydraw\" }),\n width: extendFlat({}, scatterLineAttrs.width, { editType: \"calc+arraydraw\" }),\n dash: extendFlat({}, dash, { editType: \"arraydraw\" }),\n editType: \"calc+arraydraw\"\n },\n fillcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"arraydraw\"\n },\n fillrule: {\n valType: \"enumerated\",\n values: [\"evenodd\", \"nonzero\"],\n dflt: \"evenodd\",\n editType: \"arraydraw\"\n },\n editable: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc+arraydraw\"\n },\n label: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"arraydraw\"\n },\n texttemplate: shapeTexttemplateAttrs({}, { keys: Object.keys(shapeLabelTexttemplateVars) }),\n font: fontAttrs({\n editType: \"calc+arraydraw\",\n colorEditType: \"arraydraw\"\n }),\n textposition: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle left\",\n \"middle center\",\n \"middle right\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\",\n \"start\",\n \"middle\",\n \"end\"\n ],\n editType: \"arraydraw\"\n },\n textangle: {\n valType: \"angle\",\n dflt: \"auto\",\n editType: \"calc+arraydraw\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"auto\",\n editType: \"calc+arraydraw\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"],\n editType: \"calc+arraydraw\"\n },\n padding: {\n valType: \"number\",\n dflt: 3,\n min: 0,\n editType: \"arraydraw\"\n },\n editType: \"arraydraw\"\n },\n editType: \"arraydraw\"\n });\n }\n });\n\n // src/components/shapes/defaults.js\n var require_defaults11 = __commonJS({\n \"src/components/shapes/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes16();\n var helpers = require_helpers8();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: \"shapes\",\n handleItemDefaults: handleShapeDefaults\n });\n };\n function dfltLabelYanchor(isLine, labelTextPosition) {\n return isLine ? \"bottom\" : labelTextPosition.indexOf(\"top\") !== -1 ? \"top\" : labelTextPosition.indexOf(\"bottom\") !== -1 ? \"bottom\" : \"middle\";\n }\n function handleShapeDefaults(shapeIn, shapeOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(shapeIn, shapeOut, attributes, attr, dflt);\n }\n shapeOut._isShape = true;\n var visible = coerce(\"visible\");\n if (!visible) return;\n var showlegend = coerce(\"showlegend\");\n if (showlegend) {\n coerce(\"legend\");\n coerce(\"legendwidth\");\n coerce(\"legendgroup\");\n coerce(\"legendgrouptitle.text\");\n Lib.coerceFont(coerce, \"legendgrouptitle.font\");\n coerce(\"legendrank\");\n }\n var path = coerce(\"path\");\n var dfltType = path ? \"path\" : \"rect\";\n var shapeType = coerce(\"type\", dfltType);\n var noPath = shapeType !== \"path\";\n if (noPath) delete shapeOut.path;\n coerce(\"editable\");\n coerce(\"layer\");\n coerce(\"opacity\");\n coerce(\"fillcolor\");\n coerce(\"fillrule\");\n var lineWidth = coerce(\"line.width\");\n if (lineWidth) {\n coerce(\"line.color\");\n coerce(\"line.dash\");\n }\n var xSizeMode = coerce(\"xsizemode\");\n var ySizeMode = coerce(\"ysizemode\");\n var axLetters = [\"x\", \"y\"];\n for (var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var attrAnchor = axLetter + \"anchor\";\n var sizeMode = axLetter === \"x\" ? xSizeMode : ySizeMode;\n var gdMock = { _fullLayout: fullLayout };\n var ax;\n var pos2r;\n var r2pos;\n var axRef = Axes.coerceRef(\n shapeIn,\n shapeOut,\n gdMock,\n axLetter,\n void 0,\n \"paper\"\n );\n var axRefType = Axes.getRefType(axRef);\n if (axRefType === \"range\") {\n ax = Axes.getFromId(gdMock, axRef);\n ax._shapeIndices.push(shapeOut._index);\n r2pos = helpers.rangeToShapePosition(ax);\n pos2r = helpers.shapePositionToRange(ax);\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n coerce(axLetter + \"0shift\");\n coerce(axLetter + \"1shift\");\n }\n } else {\n pos2r = r2pos = Lib.identity;\n }\n if (noPath) {\n var dflt0 = 0.25;\n var dflt1 = 0.75;\n var attr0 = axLetter + \"0\";\n var attr1 = axLetter + \"1\";\n var in0 = shapeIn[attr0];\n var in1 = shapeIn[attr1];\n shapeIn[attr0] = pos2r(shapeIn[attr0], true);\n shapeIn[attr1] = pos2r(shapeIn[attr1], true);\n if (sizeMode === \"pixel\") {\n coerce(attr0, 0);\n coerce(attr1, 10);\n } else {\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr0, dflt0);\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr1, dflt1);\n }\n shapeOut[attr0] = r2pos(shapeOut[attr0]);\n shapeOut[attr1] = r2pos(shapeOut[attr1]);\n shapeIn[attr0] = in0;\n shapeIn[attr1] = in1;\n }\n if (sizeMode === \"pixel\") {\n var inAnchor = shapeIn[attrAnchor];\n shapeIn[attrAnchor] = pos2r(shapeIn[attrAnchor], true);\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attrAnchor, 0.25);\n shapeOut[attrAnchor] = r2pos(shapeOut[attrAnchor]);\n shapeIn[attrAnchor] = inAnchor;\n }\n }\n if (noPath) {\n Lib.noneOrAll(shapeIn, shapeOut, [\"x0\", \"x1\", \"y0\", \"y1\"]);\n }\n var isLine = shapeType === \"line\";\n var labelTextTemplate, labelText;\n if (noPath) {\n labelTextTemplate = coerce(\"label.texttemplate\");\n }\n if (!labelTextTemplate) {\n labelText = coerce(\"label.text\");\n }\n if (labelText || labelTextTemplate) {\n coerce(\"label.textangle\");\n var labelTextPosition = coerce(\"label.textposition\", isLine ? \"middle\" : \"middle center\");\n coerce(\"label.xanchor\");\n coerce(\"label.yanchor\", dfltLabelYanchor(isLine, labelTextPosition));\n coerce(\"label.padding\");\n Lib.coerceFont(coerce, \"label.font\", fullLayout.font);\n }\n }\n }\n });\n\n // src/components/shapes/draw_newshape/defaults.js\n var require_defaults12 = __commonJS({\n \"src/components/shapes/draw_newshape/defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var Lib = require_lib();\n function dfltLabelYanchor(isLine, labelTextPosition) {\n return isLine ? \"bottom\" : labelTextPosition.indexOf(\"top\") !== -1 ? \"top\" : labelTextPosition.indexOf(\"bottom\") !== -1 ? \"bottom\" : \"middle\";\n }\n module.exports = function supplyDrawNewShapeDefaults(layoutIn, layoutOut, coerce) {\n coerce(\"newshape.visible\");\n coerce(\"newshape.name\");\n coerce(\"newshape.showlegend\");\n coerce(\"newshape.legend\");\n coerce(\"newshape.legendwidth\");\n coerce(\"newshape.legendgroup\");\n coerce(\"newshape.legendgrouptitle.text\");\n Lib.coerceFont(coerce, \"newshape.legendgrouptitle.font\");\n coerce(\"newshape.legendrank\");\n coerce(\"newshape.drawdirection\");\n coerce(\"newshape.layer\");\n coerce(\"newshape.fillcolor\");\n coerce(\"newshape.fillrule\");\n coerce(\"newshape.opacity\");\n var newshapeLineWidth = coerce(\"newshape.line.width\");\n if (newshapeLineWidth) {\n var bgcolor = (layoutIn || {}).plot_bgcolor || \"#FFF\";\n coerce(\"newshape.line.color\", Color2.contrast(bgcolor));\n coerce(\"newshape.line.dash\");\n }\n var isLine = layoutIn.dragmode === \"drawline\";\n var labelText = coerce(\"newshape.label.text\");\n var labelTextTemplate = coerce(\"newshape.label.texttemplate\");\n if (labelText || labelTextTemplate) {\n coerce(\"newshape.label.textangle\");\n var labelTextPosition = coerce(\"newshape.label.textposition\", isLine ? \"middle\" : \"middle center\");\n coerce(\"newshape.label.xanchor\");\n coerce(\"newshape.label.yanchor\", dfltLabelYanchor(isLine, labelTextPosition));\n coerce(\"newshape.label.padding\");\n Lib.coerceFont(coerce, \"newshape.label.font\", layoutOut.font);\n }\n coerce(\"activeshape.fillcolor\");\n coerce(\"activeshape.opacity\");\n };\n }\n });\n\n // src/components/shapes/calc_autorange.js\n var require_calc_autorange2 = __commonJS({\n \"src/components/shapes/calc_autorange.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var constants = require_constants5();\n var helpers = require_helpers8();\n module.exports = function calcAutorange(gd) {\n var fullLayout = gd._fullLayout;\n var shapeList = Lib.filterVisible(fullLayout.shapes);\n if (!shapeList.length || !gd._fullData.length) return;\n for (var i = 0; i < shapeList.length; i++) {\n var shape = shapeList[i];\n shape._extremes = {};\n var ax;\n var bounds;\n var xRefType = Axes.getRefType(shape.xref);\n var yRefType = Axes.getRefType(shape.yref);\n if (shape.xref !== \"paper\" && xRefType !== \"domain\") {\n ax = Axes.getFromId(gd, shape.xref);\n bounds = shapeBounds(ax, shape, constants.paramIsX);\n if (bounds) {\n shape._extremes[ax._id] = Axes.findExtremes(ax, bounds, calcXPaddingOptions(shape));\n }\n }\n if (shape.yref !== \"paper\" && yRefType !== \"domain\") {\n ax = Axes.getFromId(gd, shape.yref);\n bounds = shapeBounds(ax, shape, constants.paramIsY);\n if (bounds) {\n shape._extremes[ax._id] = Axes.findExtremes(ax, bounds, calcYPaddingOptions(shape));\n }\n }\n }\n };\n function calcXPaddingOptions(shape) {\n return calcPaddingOptions(shape.line.width, shape.xsizemode, shape.x0, shape.x1, shape.path, false);\n }\n function calcYPaddingOptions(shape) {\n return calcPaddingOptions(shape.line.width, shape.ysizemode, shape.y0, shape.y1, shape.path, true);\n }\n function calcPaddingOptions(lineWidth, sizeMode, v0, v1, path, isYAxis) {\n var ppad = lineWidth / 2;\n var axisDirectionReverted = isYAxis;\n if (sizeMode === \"pixel\") {\n var coords = path ? helpers.extractPathCoords(path, isYAxis ? constants.paramIsY : constants.paramIsX) : [v0, v1];\n var maxValue = Lib.aggNums(Math.max, null, coords);\n var minValue = Lib.aggNums(Math.min, null, coords);\n var beforePad = minValue < 0 ? Math.abs(minValue) + ppad : ppad;\n var afterPad = maxValue > 0 ? maxValue + ppad : ppad;\n return {\n ppad,\n ppadplus: axisDirectionReverted ? beforePad : afterPad,\n ppadminus: axisDirectionReverted ? afterPad : beforePad\n };\n } else {\n return { ppad };\n }\n }\n function shapeBounds(ax, shape, paramsToUse) {\n var dim = ax._id.charAt(0) === \"x\" ? \"x\" : \"y\";\n var isCategory = ax.type === \"category\" || ax.type === \"multicategory\";\n var v0;\n var v1;\n var shiftStart = 0;\n var shiftEnd = 0;\n var convertVal = isCategory ? ax.r2c : ax.d2c;\n var isSizeModeScale = shape[dim + \"sizemode\"] === \"scaled\";\n if (isSizeModeScale) {\n v0 = shape[dim + \"0\"];\n v1 = shape[dim + \"1\"];\n if (isCategory) {\n shiftStart = shape[dim + \"0shift\"];\n shiftEnd = shape[dim + \"1shift\"];\n }\n } else {\n v0 = shape[dim + \"anchor\"];\n v1 = shape[dim + \"anchor\"];\n }\n if (v0 !== void 0) return [convertVal(v0) + shiftStart, convertVal(v1) + shiftEnd];\n if (!shape.path) return;\n var min = Infinity;\n var max = -Infinity;\n var segments = shape.path.match(constants.segmentRE);\n var i;\n var segment;\n var drawnParam;\n var params;\n var val;\n if (ax.type === \"date\") convertVal = helpers.decodeDate(convertVal);\n for (i = 0; i < segments.length; i++) {\n segment = segments[i];\n drawnParam = paramsToUse[segment.charAt(0)].drawn;\n if (drawnParam === void 0) continue;\n params = segments[i].substr(1).match(constants.paramRE);\n if (!params || params.length < drawnParam) continue;\n val = convertVal(params[drawnParam]);\n if (val < min) min = val;\n if (val > max) max = val;\n }\n if (max >= min) return [min, max];\n }\n }\n });\n\n // src/components/shapes/index.js\n var require_shapes = __commonJS({\n \"src/components/shapes/index.js\"(exports, module) {\n \"use strict\";\n var drawModule = require_draw2();\n module.exports = {\n moduleType: \"component\",\n name: \"shapes\",\n layoutAttributes: require_attributes16(),\n supplyLayoutDefaults: require_defaults11(),\n supplyDrawNewShapeDefaults: require_defaults12(),\n includeBasePlot: require_include_components()(\"shapes\"),\n calcAutorange: require_calc_autorange2(),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne\n };\n }\n });\n\n // src/components/images/attributes.js\n var require_attributes17 = __commonJS({\n \"src/components/images/attributes.js\"(exports, module) {\n \"use strict\";\n var cartesianConstants = require_constants2();\n var templatedArray = require_plot_template().templatedArray;\n var axisPlaceableObjs = require_axis_placeable_objects();\n module.exports = templatedArray(\"image\", {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"arraydraw\"\n },\n source: {\n valType: \"string\",\n editType: \"arraydraw\"\n },\n layer: {\n valType: \"enumerated\",\n values: [\"below\", \"above\"],\n dflt: \"above\",\n editType: \"arraydraw\"\n },\n sizex: {\n valType: \"number\",\n dflt: 0,\n editType: \"arraydraw\"\n },\n sizey: {\n valType: \"number\",\n dflt: 0,\n editType: \"arraydraw\"\n },\n sizing: {\n valType: \"enumerated\",\n values: [\"fill\", \"contain\", \"stretch\"],\n dflt: \"contain\",\n editType: \"arraydraw\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"arraydraw\"\n },\n x: {\n valType: \"any\",\n dflt: 0,\n editType: \"arraydraw\"\n },\n y: {\n valType: \"any\",\n dflt: 0,\n editType: \"arraydraw\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n dflt: \"left\",\n editType: \"arraydraw\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"],\n dflt: \"top\",\n editType: \"arraydraw\"\n },\n xref: {\n valType: \"enumerated\",\n values: [\n \"paper\",\n cartesianConstants.idRegex.x.toString()\n ],\n dflt: \"paper\",\n editType: \"arraydraw\"\n },\n yref: {\n valType: \"enumerated\",\n values: [\n \"paper\",\n cartesianConstants.idRegex.y.toString()\n ],\n dflt: \"paper\",\n editType: \"arraydraw\"\n },\n editType: \"arraydraw\"\n });\n }\n });\n\n // src/components/images/defaults.js\n var require_defaults13 = __commonJS({\n \"src/components/images/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes17();\n var name2 = \"images\";\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n var opts = {\n name: name2,\n handleItemDefaults: imageDefaults\n };\n handleArrayContainerDefaults(layoutIn, layoutOut, opts);\n };\n function imageDefaults(imageIn, imageOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(imageIn, imageOut, attributes, attr, dflt);\n }\n var source = coerce(\"source\");\n var visible = coerce(\"visible\", !!source);\n if (!visible) return imageOut;\n coerce(\"layer\");\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n coerce(\"sizex\");\n coerce(\"sizey\");\n coerce(\"sizing\");\n coerce(\"opacity\");\n var gdMock = { _fullLayout: fullLayout };\n var axLetters = [\"x\", \"y\"];\n for (var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var axRef = Axes.coerceRef(imageIn, imageOut, gdMock, axLetter, \"paper\", void 0);\n if (axRef !== \"paper\") {\n var ax = Axes.getFromId(gdMock, axRef);\n ax._imgIndices.push(imageOut._index);\n }\n Axes.coercePosition(imageOut, gdMock, coerce, axRef, axLetter, 0);\n }\n return imageOut;\n }\n }\n });\n\n // src/components/images/draw.js\n var require_draw6 = __commonJS({\n \"src/components/images/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Axes = require_axes();\n var axisIds = require_axis_ids();\n var xmlnsNamespaces = require_xmlns_namespaces();\n module.exports = function draw(gd) {\n var fullLayout = gd._fullLayout;\n var imageDataAbove = [];\n var imageDataSubplot = {};\n var imageDataBelow = [];\n var subplot;\n var i;\n for (i = 0; i < fullLayout.images.length; i++) {\n var img = fullLayout.images[i];\n if (img.visible) {\n if (img.layer === \"below\" && img.xref !== \"paper\" && img.yref !== \"paper\") {\n subplot = axisIds.ref2id(img.xref) + axisIds.ref2id(img.yref);\n var plotinfo = fullLayout._plots[subplot];\n if (!plotinfo) {\n imageDataBelow.push(img);\n continue;\n }\n if (plotinfo.mainplot) {\n subplot = plotinfo.mainplot.id;\n }\n if (!imageDataSubplot[subplot]) {\n imageDataSubplot[subplot] = [];\n }\n imageDataSubplot[subplot].push(img);\n } else if (img.layer === \"above\") {\n imageDataAbove.push(img);\n } else {\n imageDataBelow.push(img);\n }\n }\n }\n var anchors = {\n x: {\n left: { sizing: \"xMin\", offset: 0 },\n center: { sizing: \"xMid\", offset: -1 / 2 },\n right: { sizing: \"xMax\", offset: -1 }\n },\n y: {\n top: { sizing: \"YMin\", offset: 0 },\n middle: { sizing: \"YMid\", offset: -1 / 2 },\n bottom: { sizing: \"YMax\", offset: -1 }\n }\n };\n function setImage(d) {\n var thisImage = d3.select(this);\n if (this._imgSrc === d.source) {\n return;\n }\n thisImage.attr(\"xmlns\", xmlnsNamespaces.svg);\n if (!gd._context.staticPlot || d.source && d.source.slice(0, 5) === \"data:\") {\n thisImage.attr(\"xlink:href\", d.source);\n this._imgSrc = d.source;\n } else {\n var imagePromise = new Promise(function(resolve) {\n var img2 = new Image();\n this.img = img2;\n img2.setAttribute(\"crossOrigin\", \"anonymous\");\n img2.onerror = errorHandler;\n img2.onload = function() {\n var canvas = document.createElement(\"canvas\");\n canvas.width = this.width;\n canvas.height = this.height;\n var ctx = canvas.getContext(\"2d\", { willReadFrequently: true });\n ctx.drawImage(this, 0, 0);\n var dataURL = canvas.toDataURL(\"image/png\");\n thisImage.attr(\"xlink:href\", dataURL);\n resolve();\n };\n thisImage.on(\"error\", errorHandler);\n img2.src = d.source;\n this._imgSrc = d.source;\n function errorHandler() {\n thisImage.remove();\n resolve();\n }\n }.bind(this));\n gd._promises.push(imagePromise);\n }\n }\n function applyAttributes(d) {\n var thisImage = d3.select(this);\n var xa = Axes.getFromId(gd, d.xref);\n var ya = Axes.getFromId(gd, d.yref);\n var xIsDomain = Axes.getRefType(d.xref) === \"domain\";\n var yIsDomain = Axes.getRefType(d.yref) === \"domain\";\n var size = fullLayout._size;\n var width, height;\n if (xa !== void 0) {\n width = typeof d.xref === \"string\" && xIsDomain ? xa._length * d.sizex : Math.abs(xa.l2p(d.sizex) - xa.l2p(0));\n } else {\n width = d.sizex * size.w;\n }\n if (ya !== void 0) {\n height = typeof d.yref === \"string\" && yIsDomain ? ya._length * d.sizey : Math.abs(ya.l2p(d.sizey) - ya.l2p(0));\n } else {\n height = d.sizey * size.h;\n }\n var xOffset = width * anchors.x[d.xanchor].offset;\n var yOffset = height * anchors.y[d.yanchor].offset;\n var sizing = anchors.x[d.xanchor].sizing + anchors.y[d.yanchor].sizing;\n var xPos, yPos;\n if (xa !== void 0) {\n xPos = typeof d.xref === \"string\" && xIsDomain ? xa._length * d.x + xa._offset : xa.r2p(d.x) + xa._offset;\n } else {\n xPos = d.x * size.w + size.l;\n }\n xPos += xOffset;\n if (ya !== void 0) {\n yPos = typeof d.yref === \"string\" && yIsDomain ? (\n // consistent with \"paper\" yref value, where positive values\n // move up the page\n ya._length * (1 - d.y) + ya._offset\n ) : ya.r2p(d.y) + ya._offset;\n } else {\n yPos = size.h - d.y * size.h + size.t;\n }\n yPos += yOffset;\n switch (d.sizing) {\n case \"fill\":\n sizing += \" slice\";\n break;\n case \"stretch\":\n sizing = \"none\";\n break;\n }\n thisImage.attr({\n x: xPos,\n y: yPos,\n width,\n height,\n preserveAspectRatio: sizing,\n opacity: d.opacity\n });\n var xId = xa && Axes.getRefType(d.xref) !== \"domain\" ? xa._id : \"\";\n var yId = ya && Axes.getRefType(d.yref) !== \"domain\" ? ya._id : \"\";\n var clipAxes = xId + yId;\n Drawing.setClipUrl(\n thisImage,\n clipAxes ? \"clip\" + fullLayout._uid + clipAxes : null,\n gd\n );\n }\n function imgDataFunc(d) {\n return [d.xref, d.x, d.sizex, d.yref, d.y, d.sizey].join(\"_\");\n }\n function imgSort(a, b) {\n return a._index - b._index;\n }\n var imagesBelow = fullLayout._imageLowerLayer.selectAll(\"image\").data(imageDataBelow, imgDataFunc);\n var imagesAbove = fullLayout._imageUpperLayer.selectAll(\"image\").data(imageDataAbove, imgDataFunc);\n imagesBelow.enter().append(\"image\");\n imagesAbove.enter().append(\"image\");\n imagesBelow.exit().remove();\n imagesAbove.exit().remove();\n imagesBelow.each(function(d) {\n setImage.bind(this)(d);\n applyAttributes.bind(this)(d);\n });\n imagesAbove.each(function(d) {\n setImage.bind(this)(d);\n applyAttributes.bind(this)(d);\n });\n imagesBelow.sort(imgSort);\n imagesAbove.sort(imgSort);\n var allSubplots = Object.keys(fullLayout._plots);\n for (i = 0; i < allSubplots.length; i++) {\n subplot = allSubplots[i];\n var subplotObj = fullLayout._plots[subplot];\n if (!subplotObj.imagelayer) continue;\n var imagesOnSubplot = subplotObj.imagelayer.selectAll(\"image\").data(imageDataSubplot[subplot] || [], imgDataFunc);\n imagesOnSubplot.enter().append(\"image\");\n imagesOnSubplot.exit().remove();\n imagesOnSubplot.each(function(d) {\n setImage.bind(this)(d);\n applyAttributes.bind(this)(d);\n });\n imagesOnSubplot.sort(imgSort);\n }\n };\n }\n });\n\n // src/components/images/convert_coords.js\n var require_convert_coords2 = __commonJS({\n \"src/components/images/convert_coords.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var toLogRange = require_to_log_range();\n module.exports = function convertCoords(gd, ax, newType, doExtra) {\n ax = ax || {};\n var toLog = newType === \"log\" && ax.type === \"linear\";\n var fromLog = newType === \"linear\" && ax.type === \"log\";\n if (!(toLog || fromLog)) return;\n var images = gd._fullLayout.images;\n var axLetter = ax._id.charAt(0);\n var image;\n var attrPrefix;\n for (var i = 0; i < images.length; i++) {\n image = images[i];\n attrPrefix = \"images[\" + i + \"].\";\n if (image[axLetter + \"ref\"] === ax._id) {\n var currentPos = image[axLetter];\n var currentSize = image[\"size\" + axLetter];\n var newPos = null;\n var newSize = null;\n if (toLog) {\n newPos = toLogRange(currentPos, ax.range);\n var dx = currentSize / Math.pow(10, newPos) / 2;\n newSize = 2 * Math.log(dx + Math.sqrt(1 + dx * dx)) / Math.LN10;\n } else {\n newPos = Math.pow(10, currentPos);\n newSize = newPos * (Math.pow(10, currentSize / 2) - Math.pow(10, -currentSize / 2));\n }\n if (!isNumeric(newPos)) {\n newPos = null;\n newSize = null;\n } else if (!isNumeric(newSize)) newSize = null;\n doExtra(attrPrefix + axLetter, newPos);\n doExtra(attrPrefix + \"size\" + axLetter, newSize);\n }\n }\n };\n }\n });\n\n // src/components/images/index.js\n var require_images = __commonJS({\n \"src/components/images/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"images\",\n layoutAttributes: require_attributes17(),\n supplyLayoutDefaults: require_defaults13(),\n includeBasePlot: require_include_components()(\"images\"),\n draw: require_draw6(),\n convertCoords: require_convert_coords2()\n };\n }\n });\n\n // src/components/updatemenus/constants.js\n var require_constants9 = __commonJS({\n \"src/components/updatemenus/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // layout attribute name\n name: \"updatemenus\",\n // class names\n containerClassName: \"updatemenu-container\",\n headerGroupClassName: \"updatemenu-header-group\",\n headerClassName: \"updatemenu-header\",\n headerArrowClassName: \"updatemenu-header-arrow\",\n dropdownButtonGroupClassName: \"updatemenu-dropdown-button-group\",\n dropdownButtonClassName: \"updatemenu-dropdown-button\",\n buttonClassName: \"updatemenu-button\",\n itemRectClassName: \"updatemenu-item-rect\",\n itemTextClassName: \"updatemenu-item-text\",\n // DOM attribute name in button group keeping track\n // of active update menu\n menuIndexAttrName: \"updatemenu-active-index\",\n // id root pass to Plots.autoMargin\n autoMarginIdRoot: \"updatemenu-\",\n // options when 'active: -1'\n blankHeaderOpts: { label: \" \" },\n // min item width / height\n minWidth: 30,\n minHeight: 30,\n // padding around item text\n textPadX: 24,\n arrowPadX: 16,\n // item rect radii\n rx: 2,\n ry: 2,\n // item text x offset off left edge\n textOffsetX: 12,\n // item text y offset (w.r.t. middle)\n textOffsetY: 3,\n // arrow offset off right edge\n arrowOffsetX: 4,\n // gap between header and buttons\n gapButtonHeader: 5,\n // gap between between buttons\n gapButton: 2,\n // color given to active buttons\n activeColor: \"#F4FAFF\",\n // color given to hovered buttons\n hoverColor: \"#F4FAFF\",\n // symbol for menu open arrow\n arrowSymbol: {\n left: \"\\u25C4\",\n right: \"\\u25BA\",\n up: \"\\u25B2\",\n down: \"\\u25BC\"\n }\n };\n }\n });\n\n // src/components/updatemenus/attributes.js\n var require_attributes18 = __commonJS({\n \"src/components/updatemenus/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var padAttrs = require_pad_attributes();\n var templatedArray = require_plot_template().templatedArray;\n var buttonsAttrs = templatedArray(\"button\", {\n visible: {\n valType: \"boolean\"\n },\n method: {\n valType: \"enumerated\",\n values: [\"restyle\", \"relayout\", \"animate\", \"update\", \"skip\"],\n dflt: \"restyle\"\n },\n args: {\n valType: \"info_array\",\n freeLength: true,\n items: [\n { valType: \"any\" },\n { valType: \"any\" },\n { valType: \"any\" }\n ]\n },\n args2: {\n valType: \"info_array\",\n freeLength: true,\n items: [\n { valType: \"any\" },\n { valType: \"any\" },\n { valType: \"any\" }\n ]\n },\n label: {\n valType: \"string\",\n dflt: \"\"\n },\n execute: {\n valType: \"boolean\",\n dflt: true\n }\n });\n module.exports = overrideAll(templatedArray(\"updatemenu\", {\n _arrayAttrRegexps: [/^updatemenus\\[(0|[1-9][0-9]+)\\]\\.buttons/],\n visible: {\n valType: \"boolean\"\n },\n type: {\n valType: \"enumerated\",\n values: [\"dropdown\", \"buttons\"],\n dflt: \"dropdown\"\n },\n direction: {\n valType: \"enumerated\",\n values: [\"left\", \"right\", \"up\", \"down\"],\n dflt: \"down\"\n },\n active: {\n valType: \"integer\",\n min: -1,\n dflt: 0\n },\n showactive: {\n valType: \"boolean\",\n dflt: true\n },\n buttons: buttonsAttrs,\n x: {\n valType: \"number\",\n min: -2,\n max: 3,\n dflt: -0.05\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"right\"\n },\n y: {\n valType: \"number\",\n min: -2,\n max: 3,\n dflt: 1\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n dflt: \"top\"\n },\n pad: extendFlat(padAttrs({ editType: \"arraydraw\" }), {}),\n font: fontAttrs({}),\n bgcolor: {\n valType: \"color\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttrs.borderLine\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"arraydraw\"\n }\n }), \"arraydraw\", \"from-root\");\n }\n });\n\n // src/components/updatemenus/defaults.js\n var require_defaults14 = __commonJS({\n \"src/components/updatemenus/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes18();\n var constants = require_constants9();\n var name2 = constants.name;\n var buttonAttrs = attributes.buttons;\n module.exports = function updateMenusDefaults(layoutIn, layoutOut) {\n var opts = {\n name: name2,\n handleItemDefaults: menuDefaults\n };\n handleArrayContainerDefaults(layoutIn, layoutOut, opts);\n };\n function menuDefaults(menuIn, menuOut, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(menuIn, menuOut, attributes, attr, dflt);\n }\n var buttons = handleArrayContainerDefaults(menuIn, menuOut, {\n name: \"buttons\",\n handleItemDefaults: buttonDefaults\n });\n var visible = coerce(\"visible\", buttons.length > 0);\n if (!visible) return;\n coerce(\"active\");\n coerce(\"direction\");\n coerce(\"type\");\n coerce(\"showactive\");\n coerce(\"x\");\n coerce(\"y\");\n Lib.noneOrAll(menuIn, menuOut, [\"x\", \"y\"]);\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n coerce(\"pad.t\");\n coerce(\"pad.r\");\n coerce(\"pad.b\");\n coerce(\"pad.l\");\n Lib.coerceFont(coerce, \"font\", layoutOut.font);\n coerce(\"bgcolor\", layoutOut.paper_bgcolor);\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n }\n function buttonDefaults(buttonIn, buttonOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(buttonIn, buttonOut, buttonAttrs, attr, dflt);\n }\n var visible = coerce(\n \"visible\",\n buttonIn.method === \"skip\" || Array.isArray(buttonIn.args)\n );\n if (visible) {\n coerce(\"method\");\n coerce(\"args\");\n coerce(\"args2\");\n coerce(\"label\");\n coerce(\"execute\");\n }\n }\n }\n });\n\n // src/components/updatemenus/scrollbox.js\n var require_scrollbox = __commonJS({\n \"src/components/updatemenus/scrollbox.js\"(exports, module) {\n \"use strict\";\n module.exports = ScrollBox;\n var d3 = require_d3();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n function ScrollBox(gd, container, id) {\n this.gd = gd;\n this.container = container;\n this.id = id;\n this.position = null;\n this.translateX = null;\n this.translateY = null;\n this.hbar = null;\n this.vbar = null;\n this.bg = this.container.selectAll(\"rect.scrollbox-bg\").data([0]);\n this.bg.exit().on(\".drag\", null).on(\"wheel\", null).remove();\n this.bg.enter().append(\"rect\").classed(\"scrollbox-bg\", true).style(\"pointer-events\", \"all\").attr({\n opacity: 0,\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n }\n ScrollBox.barWidth = 2;\n ScrollBox.barLength = 20;\n ScrollBox.barRadius = 2;\n ScrollBox.barPad = 1;\n ScrollBox.barColor = \"#808BA4\";\n ScrollBox.prototype.enable = function enable(position, translateX, translateY) {\n var fullLayout = this.gd._fullLayout;\n var fullWidth = fullLayout.width;\n var fullHeight = fullLayout.height;\n this.position = position;\n var l = this.position.l;\n var w = this.position.w;\n var t = this.position.t;\n var h = this.position.h;\n var direction = this.position.direction;\n var isDown = direction === \"down\";\n var isLeft = direction === \"left\";\n var isRight = direction === \"right\";\n var isUp = direction === \"up\";\n var boxW = w;\n var boxH = h;\n var boxL, boxR;\n var boxT, boxB;\n if (!isDown && !isLeft && !isRight && !isUp) {\n this.position.direction = \"down\";\n isDown = true;\n }\n var isVertical = isDown || isUp;\n if (isVertical) {\n boxL = l;\n boxR = boxL + boxW;\n if (isDown) {\n boxT = t;\n boxB = Math.min(boxT + boxH, fullHeight);\n boxH = boxB - boxT;\n } else {\n boxB = t + boxH;\n boxT = Math.max(boxB - boxH, 0);\n boxH = boxB - boxT;\n }\n } else {\n boxT = t;\n boxB = boxT + boxH;\n if (isLeft) {\n boxR = l + boxW;\n boxL = Math.max(boxR - boxW, 0);\n boxW = boxR - boxL;\n } else {\n boxL = l;\n boxR = Math.min(boxL + boxW, fullWidth);\n boxW = boxR - boxL;\n }\n }\n this._box = {\n l: boxL,\n t: boxT,\n w: boxW,\n h: boxH\n };\n var needsHorizontalScrollBar = w > boxW;\n var hbarW = ScrollBox.barLength + 2 * ScrollBox.barPad;\n var hbarH = ScrollBox.barWidth + 2 * ScrollBox.barPad;\n var hbarL = l;\n var hbarT = t + h;\n if (hbarT + hbarH > fullHeight) hbarT = fullHeight - hbarH;\n var hbar = this.container.selectAll(\"rect.scrollbar-horizontal\").data(\n needsHorizontalScrollBar ? [0] : []\n );\n hbar.exit().on(\".drag\", null).remove();\n hbar.enter().append(\"rect\").classed(\"scrollbar-horizontal\", true).call(Color2.fill, ScrollBox.barColor);\n if (needsHorizontalScrollBar) {\n this.hbar = hbar.attr({\n rx: ScrollBox.barRadius,\n ry: ScrollBox.barRadius,\n x: hbarL,\n y: hbarT,\n width: hbarW,\n height: hbarH\n });\n this._hbarXMin = hbarL + hbarW / 2;\n this._hbarTranslateMax = boxW - hbarW;\n } else {\n delete this.hbar;\n delete this._hbarXMin;\n delete this._hbarTranslateMax;\n }\n var needsVerticalScrollBar = h > boxH;\n var vbarW = ScrollBox.barWidth + 2 * ScrollBox.barPad;\n var vbarH = ScrollBox.barLength + 2 * ScrollBox.barPad;\n var vbarL = l + w;\n var vbarT = t;\n if (vbarL + vbarW > fullWidth) vbarL = fullWidth - vbarW;\n var vbar = this.container.selectAll(\"rect.scrollbar-vertical\").data(\n needsVerticalScrollBar ? [0] : []\n );\n vbar.exit().on(\".drag\", null).remove();\n vbar.enter().append(\"rect\").classed(\"scrollbar-vertical\", true).call(Color2.fill, ScrollBox.barColor);\n if (needsVerticalScrollBar) {\n this.vbar = vbar.attr({\n rx: ScrollBox.barRadius,\n ry: ScrollBox.barRadius,\n x: vbarL,\n y: vbarT,\n width: vbarW,\n height: vbarH\n });\n this._vbarYMin = vbarT + vbarH / 2;\n this._vbarTranslateMax = boxH - vbarH;\n } else {\n delete this.vbar;\n delete this._vbarYMin;\n delete this._vbarTranslateMax;\n }\n var clipId = this.id;\n var clipL = boxL - 0.5;\n var clipR = needsVerticalScrollBar ? boxR + vbarW + 0.5 : boxR + 0.5;\n var clipT = boxT - 0.5;\n var clipB = needsHorizontalScrollBar ? boxB + hbarH + 0.5 : boxB + 0.5;\n var clipPath = fullLayout._topdefs.selectAll(\"#\" + clipId).data(needsHorizontalScrollBar || needsVerticalScrollBar ? [0] : []);\n clipPath.exit().remove();\n clipPath.enter().append(\"clipPath\").attr(\"id\", clipId).append(\"rect\");\n if (needsHorizontalScrollBar || needsVerticalScrollBar) {\n this._clipRect = clipPath.select(\"rect\").attr({\n x: Math.floor(clipL),\n y: Math.floor(clipT),\n width: Math.ceil(clipR) - Math.floor(clipL),\n height: Math.ceil(clipB) - Math.floor(clipT)\n });\n this.container.call(Drawing.setClipUrl, clipId, this.gd);\n this.bg.attr({\n x: l,\n y: t,\n width: w,\n height: h\n });\n } else {\n this.bg.attr({\n width: 0,\n height: 0\n });\n this.container.on(\"wheel\", null).on(\".drag\", null).call(Drawing.setClipUrl, null);\n delete this._clipRect;\n }\n if (needsHorizontalScrollBar || needsVerticalScrollBar) {\n var onBoxDrag = d3.behavior.drag().on(\"dragstart\", function() {\n d3.event.sourceEvent.preventDefault();\n }).on(\"drag\", this._onBoxDrag.bind(this));\n this.container.on(\"wheel\", null).on(\"wheel\", this._onBoxWheel.bind(this)).on(\".drag\", null).call(onBoxDrag);\n var onBarDrag = d3.behavior.drag().on(\"dragstart\", function() {\n d3.event.sourceEvent.preventDefault();\n d3.event.sourceEvent.stopPropagation();\n }).on(\"drag\", this._onBarDrag.bind(this));\n if (needsHorizontalScrollBar) {\n this.hbar.on(\".drag\", null).call(onBarDrag);\n }\n if (needsVerticalScrollBar) {\n this.vbar.on(\".drag\", null).call(onBarDrag);\n }\n }\n this.setTranslate(translateX, translateY);\n };\n ScrollBox.prototype.disable = function disable() {\n if (this.hbar || this.vbar) {\n this.bg.attr({\n width: 0,\n height: 0\n });\n this.container.on(\"wheel\", null).on(\".drag\", null).call(Drawing.setClipUrl, null);\n delete this._clipRect;\n }\n if (this.hbar) {\n this.hbar.on(\".drag\", null);\n this.hbar.remove();\n delete this.hbar;\n delete this._hbarXMin;\n delete this._hbarTranslateMax;\n }\n if (this.vbar) {\n this.vbar.on(\".drag\", null);\n this.vbar.remove();\n delete this.vbar;\n delete this._vbarYMin;\n delete this._vbarTranslateMax;\n }\n };\n ScrollBox.prototype._onBoxDrag = function _onBoxDrag() {\n var translateX = this.translateX;\n var translateY = this.translateY;\n if (this.hbar) {\n translateX -= d3.event.dx;\n }\n if (this.vbar) {\n translateY -= d3.event.dy;\n }\n this.setTranslate(translateX, translateY);\n };\n ScrollBox.prototype._onBoxWheel = function _onBoxWheel() {\n var translateX = this.translateX;\n var translateY = this.translateY;\n if (this.hbar) {\n translateX += d3.event.deltaY;\n }\n if (this.vbar) {\n translateY += d3.event.deltaY;\n }\n this.setTranslate(translateX, translateY);\n };\n ScrollBox.prototype._onBarDrag = function _onBarDrag() {\n var translateX = this.translateX;\n var translateY = this.translateY;\n if (this.hbar) {\n var xMin = translateX + this._hbarXMin;\n var xMax = xMin + this._hbarTranslateMax;\n var x = Lib.constrain(d3.event.x, xMin, xMax);\n var xf = (x - xMin) / (xMax - xMin);\n var translateXMax = this.position.w - this._box.w;\n translateX = xf * translateXMax;\n }\n if (this.vbar) {\n var yMin = translateY + this._vbarYMin;\n var yMax = yMin + this._vbarTranslateMax;\n var y = Lib.constrain(d3.event.y, yMin, yMax);\n var yf = (y - yMin) / (yMax - yMin);\n var translateYMax = this.position.h - this._box.h;\n translateY = yf * translateYMax;\n }\n this.setTranslate(translateX, translateY);\n };\n ScrollBox.prototype.setTranslate = function setTranslate(translateX, translateY) {\n var translateXMax = this.position.w - this._box.w;\n var translateYMax = this.position.h - this._box.h;\n translateX = Lib.constrain(translateX || 0, 0, translateXMax);\n translateY = Lib.constrain(translateY || 0, 0, translateYMax);\n this.translateX = translateX;\n this.translateY = translateY;\n this.container.call(\n Drawing.setTranslate,\n this._box.l - this.position.l - translateX,\n this._box.t - this.position.t - translateY\n );\n if (this._clipRect) {\n this._clipRect.attr({\n x: Math.floor(this.position.l + translateX - 0.5),\n y: Math.floor(this.position.t + translateY - 0.5)\n });\n }\n if (this.hbar) {\n var xf = translateX / translateXMax;\n this.hbar.call(\n Drawing.setTranslate,\n translateX + xf * this._hbarTranslateMax,\n translateY\n );\n }\n if (this.vbar) {\n var yf = translateY / translateYMax;\n this.vbar.call(\n Drawing.setTranslate,\n translateX,\n translateY + yf * this._vbarTranslateMax\n );\n }\n };\n }\n });\n\n // src/components/updatemenus/draw.js\n var require_draw7 = __commonJS({\n \"src/components/updatemenus/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Plots = require_plots();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var arrayEditor = require_plot_template().arrayEditor;\n var LINE_SPACING = require_alignment().LINE_SPACING;\n var constants = require_constants9();\n var ScrollBox = require_scrollbox();\n module.exports = function draw(gd) {\n var fullLayout = gd._fullLayout;\n var menuData = Lib.filterVisible(fullLayout[constants.name]);\n function clearAutoMargin(menuOpts2) {\n Plots.autoMargin(gd, autoMarginId(menuOpts2));\n }\n var menus = fullLayout._menulayer.selectAll(\"g.\" + constants.containerClassName).data(menuData.length > 0 ? [0] : []);\n menus.enter().append(\"g\").classed(constants.containerClassName, true).style(\"cursor\", \"pointer\");\n menus.exit().each(function() {\n d3.select(this).selectAll(\"g.\" + constants.headerGroupClassName).each(clearAutoMargin);\n }).remove();\n if (menuData.length === 0) return;\n var headerGroups = menus.selectAll(\"g.\" + constants.headerGroupClassName).data(menuData, keyFunction);\n headerGroups.enter().append(\"g\").classed(constants.headerGroupClassName, true);\n var gButton = Lib.ensureSingle(menus, \"g\", constants.dropdownButtonGroupClassName, function(s) {\n s.style(\"pointer-events\", \"all\");\n });\n for (var i = 0; i < menuData.length; i++) {\n var menuOpts = menuData[i];\n findDimensions(gd, menuOpts);\n }\n var scrollBoxId = \"updatemenus\" + fullLayout._uid;\n var scrollBox = new ScrollBox(gd, gButton, scrollBoxId);\n if (headerGroups.enter().size()) {\n gButton.node().parentNode.appendChild(gButton.node());\n gButton.call(removeAllButtons);\n }\n headerGroups.exit().each(function(menuOpts2) {\n gButton.call(removeAllButtons);\n clearAutoMargin(menuOpts2);\n }).remove();\n headerGroups.each(function(menuOpts2) {\n var gHeader = d3.select(this);\n var _gButton = menuOpts2.type === \"dropdown\" ? gButton : null;\n Plots.manageCommandObserver(gd, menuOpts2, menuOpts2.buttons, function(data) {\n setActive(gd, menuOpts2, menuOpts2.buttons[data.index], gHeader, _gButton, scrollBox, data.index, true);\n });\n if (menuOpts2.type === \"dropdown\") {\n drawHeader(gd, gHeader, gButton, scrollBox, menuOpts2);\n if (isActive(gButton, menuOpts2)) {\n drawButtons(gd, gHeader, gButton, scrollBox, menuOpts2);\n }\n } else {\n drawButtons(gd, gHeader, null, null, menuOpts2);\n }\n });\n };\n function keyFunction(menuOpts) {\n return menuOpts._index;\n }\n function isFolded(gButton) {\n return +gButton.attr(constants.menuIndexAttrName) === -1;\n }\n function isActive(gButton, menuOpts) {\n return +gButton.attr(constants.menuIndexAttrName) === menuOpts._index;\n }\n function setActive(gd, menuOpts, buttonOpts, gHeader, gButton, scrollBox, buttonIndex, isSilentUpdate) {\n menuOpts.active = buttonIndex;\n arrayEditor(gd.layout, constants.name, menuOpts).applyUpdate(\"active\", buttonIndex);\n if (menuOpts.type === \"buttons\") {\n drawButtons(gd, gHeader, null, null, menuOpts);\n } else if (menuOpts.type === \"dropdown\") {\n gButton.attr(constants.menuIndexAttrName, \"-1\");\n drawHeader(gd, gHeader, gButton, scrollBox, menuOpts);\n if (!isSilentUpdate) {\n drawButtons(gd, gHeader, gButton, scrollBox, menuOpts);\n }\n }\n }\n function drawHeader(gd, gHeader, gButton, scrollBox, menuOpts) {\n var header = Lib.ensureSingle(gHeader, \"g\", constants.headerClassName, function(s) {\n s.style(\"pointer-events\", \"all\");\n });\n var dims = menuOpts._dims;\n var active = menuOpts.active;\n var headerOpts = menuOpts.buttons[active] || constants.blankHeaderOpts;\n var posOpts = { y: menuOpts.pad.t, yPad: 0, x: menuOpts.pad.l, xPad: 0, index: 0 };\n var positionOverrides = {\n width: dims.headerWidth,\n height: dims.headerHeight\n };\n header.call(drawItem, menuOpts, headerOpts, gd).call(setItemPosition, menuOpts, posOpts, positionOverrides);\n var arrow = Lib.ensureSingle(gHeader, \"text\", constants.headerArrowClassName, function(s) {\n s.attr(\"text-anchor\", \"end\").call(Drawing.font, menuOpts.font).text(constants.arrowSymbol[menuOpts.direction]);\n });\n arrow.attr({\n x: dims.headerWidth - constants.arrowOffsetX + menuOpts.pad.l,\n y: dims.headerHeight / 2 + constants.textOffsetY + menuOpts.pad.t\n });\n header.on(\"click\", function() {\n gButton.call(\n removeAllButtons,\n String(isActive(gButton, menuOpts) ? -1 : menuOpts._index)\n );\n drawButtons(gd, gHeader, gButton, scrollBox, menuOpts);\n });\n header.on(\"mouseover\", function() {\n header.call(styleOnMouseOver);\n });\n header.on(\"mouseout\", function() {\n header.call(styleOnMouseOut, menuOpts);\n });\n Drawing.setTranslate(gHeader, dims.lx, dims.ly);\n }\n function drawButtons(gd, gHeader, gButton, scrollBox, menuOpts) {\n if (!gButton) {\n gButton = gHeader;\n gButton.attr(\"pointer-events\", \"all\");\n }\n var buttonData = !isFolded(gButton) || menuOpts.type === \"buttons\" ? menuOpts.buttons : [];\n var klass = menuOpts.type === \"dropdown\" ? constants.dropdownButtonClassName : constants.buttonClassName;\n var buttons = gButton.selectAll(\"g.\" + klass).data(Lib.filterVisible(buttonData));\n var enter = buttons.enter().append(\"g\").classed(klass, true);\n var exit = buttons.exit();\n if (menuOpts.type === \"dropdown\") {\n enter.attr(\"opacity\", \"0\").transition().attr(\"opacity\", \"1\");\n exit.transition().attr(\"opacity\", \"0\").remove();\n } else {\n exit.remove();\n }\n var x0 = 0;\n var y0 = 0;\n var dims = menuOpts._dims;\n var isVertical = [\"up\", \"down\"].indexOf(menuOpts.direction) !== -1;\n if (menuOpts.type === \"dropdown\") {\n if (isVertical) {\n y0 = dims.headerHeight + constants.gapButtonHeader;\n } else {\n x0 = dims.headerWidth + constants.gapButtonHeader;\n }\n }\n if (menuOpts.type === \"dropdown\" && menuOpts.direction === \"up\") {\n y0 = -constants.gapButtonHeader + constants.gapButton - dims.openHeight;\n }\n if (menuOpts.type === \"dropdown\" && menuOpts.direction === \"left\") {\n x0 = -constants.gapButtonHeader + constants.gapButton - dims.openWidth;\n }\n var posOpts = {\n x: dims.lx + x0 + menuOpts.pad.l,\n y: dims.ly + y0 + menuOpts.pad.t,\n yPad: constants.gapButton,\n xPad: constants.gapButton,\n index: 0\n };\n var scrollBoxPosition = {\n l: posOpts.x + menuOpts.borderwidth,\n t: posOpts.y + menuOpts.borderwidth\n };\n buttons.each(function(buttonOpts, buttonIndex) {\n var button = d3.select(this);\n button.call(drawItem, menuOpts, buttonOpts, gd).call(setItemPosition, menuOpts, posOpts);\n button.on(\"click\", function() {\n if (d3.event.defaultPrevented) return;\n if (buttonOpts.execute) {\n if (buttonOpts.args2 && menuOpts.active === buttonIndex) {\n setActive(gd, menuOpts, buttonOpts, gHeader, gButton, scrollBox, -1);\n Plots.executeAPICommand(gd, buttonOpts.method, buttonOpts.args2);\n } else {\n setActive(gd, menuOpts, buttonOpts, gHeader, gButton, scrollBox, buttonIndex);\n Plots.executeAPICommand(gd, buttonOpts.method, buttonOpts.args);\n }\n }\n gd.emit(\"plotly_buttonclicked\", { menu: menuOpts, button: buttonOpts, active: menuOpts.active });\n });\n button.on(\"mouseover\", function() {\n button.call(styleOnMouseOver);\n });\n button.on(\"mouseout\", function() {\n button.call(styleOnMouseOut, menuOpts);\n buttons.call(styleButtons, menuOpts);\n });\n });\n buttons.call(styleButtons, menuOpts);\n if (isVertical) {\n scrollBoxPosition.w = Math.max(dims.openWidth, dims.headerWidth);\n scrollBoxPosition.h = posOpts.y - scrollBoxPosition.t;\n } else {\n scrollBoxPosition.w = posOpts.x - scrollBoxPosition.l;\n scrollBoxPosition.h = Math.max(dims.openHeight, dims.headerHeight);\n }\n scrollBoxPosition.direction = menuOpts.direction;\n if (scrollBox) {\n if (buttons.size()) {\n drawScrollBox(gd, gHeader, gButton, scrollBox, menuOpts, scrollBoxPosition);\n } else {\n hideScrollBox(scrollBox);\n }\n }\n }\n function drawScrollBox(gd, gHeader, gButton, scrollBox, menuOpts, position) {\n var direction = menuOpts.direction;\n var isVertical = direction === \"up\" || direction === \"down\";\n var dims = menuOpts._dims;\n var active = menuOpts.active;\n var translateX, translateY;\n var i;\n if (isVertical) {\n translateY = 0;\n for (i = 0; i < active; i++) {\n translateY += dims.heights[i] + constants.gapButton;\n }\n } else {\n translateX = 0;\n for (i = 0; i < active; i++) {\n translateX += dims.widths[i] + constants.gapButton;\n }\n }\n scrollBox.enable(position, translateX, translateY);\n if (scrollBox.hbar) {\n scrollBox.hbar.attr(\"opacity\", \"0\").transition().attr(\"opacity\", \"1\");\n }\n if (scrollBox.vbar) {\n scrollBox.vbar.attr(\"opacity\", \"0\").transition().attr(\"opacity\", \"1\");\n }\n }\n function hideScrollBox(scrollBox) {\n var hasHBar = !!scrollBox.hbar;\n var hasVBar = !!scrollBox.vbar;\n if (hasHBar) {\n scrollBox.hbar.transition().attr(\"opacity\", \"0\").each(\"end\", function() {\n hasHBar = false;\n if (!hasVBar) scrollBox.disable();\n });\n }\n if (hasVBar) {\n scrollBox.vbar.transition().attr(\"opacity\", \"0\").each(\"end\", function() {\n hasVBar = false;\n if (!hasHBar) scrollBox.disable();\n });\n }\n }\n function drawItem(item, menuOpts, itemOpts, gd) {\n item.call(drawItemRect, menuOpts).call(drawItemText, menuOpts, itemOpts, gd);\n }\n function drawItemRect(item, menuOpts) {\n var rect = Lib.ensureSingle(item, \"rect\", constants.itemRectClassName, function(s) {\n s.attr({\n rx: constants.rx,\n ry: constants.ry,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n rect.call(Color2.stroke, menuOpts.bordercolor).call(Color2.fill, menuOpts.bgcolor).style(\"stroke-width\", menuOpts.borderwidth + \"px\");\n }\n function drawItemText(item, menuOpts, itemOpts, gd) {\n var text = Lib.ensureSingle(item, \"text\", constants.itemTextClassName, function(s) {\n s.attr({\n \"text-anchor\": \"start\",\n \"data-notex\": 1\n });\n });\n var tx = itemOpts.label;\n var _meta = gd._fullLayout._meta;\n if (_meta) tx = Lib.templateString(tx, _meta);\n text.call(Drawing.font, menuOpts.font).text(tx).call(svgTextUtils.convertToTspans, gd);\n }\n function styleButtons(buttons, menuOpts) {\n var active = menuOpts.active;\n buttons.each(function(buttonOpts, i) {\n var button = d3.select(this);\n if (i === active && menuOpts.showactive) {\n button.select(\"rect.\" + constants.itemRectClassName).call(Color2.fill, constants.activeColor);\n }\n });\n }\n function styleOnMouseOver(item) {\n item.select(\"rect.\" + constants.itemRectClassName).call(Color2.fill, constants.hoverColor);\n }\n function styleOnMouseOut(item, menuOpts) {\n item.select(\"rect.\" + constants.itemRectClassName).call(Color2.fill, menuOpts.bgcolor);\n }\n function findDimensions(gd, menuOpts) {\n var dims = menuOpts._dims = {\n width1: 0,\n height1: 0,\n heights: [],\n widths: [],\n totalWidth: 0,\n totalHeight: 0,\n openWidth: 0,\n openHeight: 0,\n lx: 0,\n ly: 0\n };\n var fakeButtons = Drawing.tester.selectAll(\"g.\" + constants.dropdownButtonClassName).data(Lib.filterVisible(menuOpts.buttons));\n fakeButtons.enter().append(\"g\").classed(constants.dropdownButtonClassName, true);\n var isVertical = [\"up\", \"down\"].indexOf(menuOpts.direction) !== -1;\n fakeButtons.each(function(buttonOpts, i) {\n var button = d3.select(this);\n button.call(drawItem, menuOpts, buttonOpts, gd);\n var text = button.select(\".\" + constants.itemTextClassName);\n var tWidth = text.node() && Drawing.bBox(text.node()).width;\n var wEff = Math.max(tWidth + constants.textPadX, constants.minWidth);\n var tHeight = menuOpts.font.size * LINE_SPACING;\n var tLines = svgTextUtils.lineCount(text);\n var hEff = Math.max(tHeight * tLines, constants.minHeight) + constants.textOffsetY;\n hEff = Math.ceil(hEff);\n wEff = Math.ceil(wEff);\n dims.widths[i] = wEff;\n dims.heights[i] = hEff;\n dims.height1 = Math.max(dims.height1, hEff);\n dims.width1 = Math.max(dims.width1, wEff);\n if (isVertical) {\n dims.totalWidth = Math.max(dims.totalWidth, wEff);\n dims.openWidth = dims.totalWidth;\n dims.totalHeight += hEff + constants.gapButton;\n dims.openHeight += hEff + constants.gapButton;\n } else {\n dims.totalWidth += wEff + constants.gapButton;\n dims.openWidth += wEff + constants.gapButton;\n dims.totalHeight = Math.max(dims.totalHeight, hEff);\n dims.openHeight = dims.totalHeight;\n }\n });\n if (isVertical) {\n dims.totalHeight -= constants.gapButton;\n } else {\n dims.totalWidth -= constants.gapButton;\n }\n dims.headerWidth = dims.width1 + constants.arrowPadX;\n dims.headerHeight = dims.height1;\n if (menuOpts.type === \"dropdown\") {\n if (isVertical) {\n dims.width1 += constants.arrowPadX;\n dims.totalHeight = dims.height1;\n } else {\n dims.totalWidth = dims.width1;\n }\n dims.totalWidth += constants.arrowPadX;\n }\n fakeButtons.remove();\n var paddedWidth = dims.totalWidth + menuOpts.pad.l + menuOpts.pad.r;\n var paddedHeight = dims.totalHeight + menuOpts.pad.t + menuOpts.pad.b;\n var graphSize = gd._fullLayout._size;\n dims.lx = graphSize.l + graphSize.w * menuOpts.x;\n dims.ly = graphSize.t + graphSize.h * (1 - menuOpts.y);\n var xanchor = \"left\";\n if (Lib.isRightAnchor(menuOpts)) {\n dims.lx -= paddedWidth;\n xanchor = \"right\";\n }\n if (Lib.isCenterAnchor(menuOpts)) {\n dims.lx -= paddedWidth / 2;\n xanchor = \"center\";\n }\n var yanchor = \"top\";\n if (Lib.isBottomAnchor(menuOpts)) {\n dims.ly -= paddedHeight;\n yanchor = \"bottom\";\n }\n if (Lib.isMiddleAnchor(menuOpts)) {\n dims.ly -= paddedHeight / 2;\n yanchor = \"middle\";\n }\n dims.totalWidth = Math.ceil(dims.totalWidth);\n dims.totalHeight = Math.ceil(dims.totalHeight);\n dims.lx = Math.round(dims.lx);\n dims.ly = Math.round(dims.ly);\n Plots.autoMargin(gd, autoMarginId(menuOpts), {\n x: menuOpts.x,\n y: menuOpts.y,\n l: paddedWidth * ({ right: 1, center: 0.5 }[xanchor] || 0),\n r: paddedWidth * ({ left: 1, center: 0.5 }[xanchor] || 0),\n b: paddedHeight * ({ top: 1, middle: 0.5 }[yanchor] || 0),\n t: paddedHeight * ({ bottom: 1, middle: 0.5 }[yanchor] || 0)\n });\n }\n function autoMarginId(menuOpts) {\n return constants.autoMarginIdRoot + menuOpts._index;\n }\n function setItemPosition(item, menuOpts, posOpts, overrideOpts) {\n overrideOpts = overrideOpts || {};\n var rect = item.select(\".\" + constants.itemRectClassName);\n var text = item.select(\".\" + constants.itemTextClassName);\n var borderWidth = menuOpts.borderwidth;\n var index = posOpts.index;\n var dims = menuOpts._dims;\n Drawing.setTranslate(item, borderWidth + posOpts.x, borderWidth + posOpts.y);\n var isVertical = [\"up\", \"down\"].indexOf(menuOpts.direction) !== -1;\n var finalHeight = overrideOpts.height || (isVertical ? dims.heights[index] : dims.height1);\n rect.attr({\n x: 0,\n y: 0,\n width: overrideOpts.width || (isVertical ? dims.width1 : dims.widths[index]),\n height: finalHeight\n });\n var tHeight = menuOpts.font.size * LINE_SPACING;\n var tLines = svgTextUtils.lineCount(text);\n var spanOffset = (tLines - 1) * tHeight / 2;\n svgTextUtils.positionText(\n text,\n constants.textOffsetX,\n finalHeight / 2 - spanOffset + constants.textOffsetY\n );\n if (isVertical) {\n posOpts.y += dims.heights[index] + posOpts.yPad;\n } else {\n posOpts.x += dims.widths[index] + posOpts.xPad;\n }\n posOpts.index++;\n }\n function removeAllButtons(gButton, newMenuIndexAttr) {\n gButton.attr(constants.menuIndexAttrName, newMenuIndexAttr || \"-1\").selectAll(\"g.\" + constants.dropdownButtonClassName).remove();\n }\n }\n });\n\n // src/components/updatemenus/index.js\n var require_updatemenus = __commonJS({\n \"src/components/updatemenus/index.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants9();\n module.exports = {\n moduleType: \"component\",\n name: constants.name,\n layoutAttributes: require_attributes18(),\n supplyLayoutDefaults: require_defaults14(),\n draw: require_draw7()\n };\n }\n });\n\n // src/components/sliders/constants.js\n var require_constants10 = __commonJS({\n \"src/components/sliders/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // layout attribute name\n name: \"sliders\",\n // class names\n containerClassName: \"slider-container\",\n groupClassName: \"slider-group\",\n inputAreaClass: \"slider-input-area\",\n railRectClass: \"slider-rail-rect\",\n railTouchRectClass: \"slider-rail-touch-rect\",\n gripRectClass: \"slider-grip-rect\",\n tickRectClass: \"slider-tick-rect\",\n inputProxyClass: \"slider-input-proxy\",\n labelsClass: \"slider-labels\",\n labelGroupClass: \"slider-label-group\",\n labelClass: \"slider-label\",\n currentValueClass: \"slider-current-value\",\n railHeight: 5,\n // DOM attribute name in button group keeping track\n // of active update menu\n menuIndexAttrName: \"slider-active-index\",\n // id root pass to Plots.autoMargin\n autoMarginIdRoot: \"slider-\",\n // min item width / height\n minWidth: 30,\n minHeight: 30,\n // padding around item text\n textPadX: 40,\n // arrow offset off right edge\n arrowOffsetX: 4,\n railRadius: 2,\n railWidth: 5,\n railBorder: 4,\n railBorderWidth: 1,\n railBorderColor: \"#bec8d9\",\n railBgColor: \"#f8fafc\",\n // The distance of the rail from the edge of the touchable area\n // Slightly less than the step inset because of the curved edges\n // of the rail\n railInset: 8,\n // The distance from the extremal tick marks to the edge of the\n // touchable area. This is basically the same as the grip radius,\n // but for other styles it wouldn't really need to be.\n stepInset: 10,\n gripRadius: 10,\n gripWidth: 20,\n gripHeight: 20,\n gripBorder: 20,\n gripBorderWidth: 1,\n gripBorderColor: \"#bec8d9\",\n gripBgColor: \"#f6f8fa\",\n gripBgActiveColor: \"#dbdde0\",\n labelPadding: 8,\n labelOffset: 0,\n tickWidth: 1,\n tickColor: \"#333\",\n tickOffset: 25,\n tickLength: 7,\n minorTickOffset: 25,\n minorTickColor: \"#333\",\n minorTickLength: 4,\n // Extra space below the current value label:\n currentValuePadding: 8,\n currentValueInset: 0\n };\n }\n });\n\n // src/components/sliders/attributes.js\n var require_attributes19 = __commonJS({\n \"src/components/sliders/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var padAttrs = require_pad_attributes();\n var extendDeepAll = require_extend().extendDeepAll;\n var overrideAll = require_edit_types().overrideAll;\n var animationAttrs = require_animation_attributes();\n var templatedArray = require_plot_template().templatedArray;\n var constants = require_constants10();\n var stepsAttrs = templatedArray(\"step\", {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n method: {\n valType: \"enumerated\",\n values: [\"restyle\", \"relayout\", \"animate\", \"update\", \"skip\"],\n dflt: \"restyle\"\n },\n args: {\n valType: \"info_array\",\n freeLength: true,\n items: [\n { valType: \"any\" },\n { valType: \"any\" },\n { valType: \"any\" }\n ]\n },\n label: {\n valType: \"string\"\n },\n value: {\n valType: \"string\"\n },\n execute: {\n valType: \"boolean\",\n dflt: true\n }\n });\n module.exports = overrideAll(templatedArray(\"slider\", {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n active: {\n valType: \"number\",\n min: 0,\n dflt: 0\n },\n steps: stepsAttrs,\n lenmode: {\n valType: \"enumerated\",\n values: [\"fraction\", \"pixels\"],\n dflt: \"fraction\"\n },\n len: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n x: {\n valType: \"number\",\n min: -2,\n max: 3,\n dflt: 0\n },\n pad: extendDeepAll(padAttrs({ editType: \"arraydraw\" }), {}, { t: { dflt: 20 } }),\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"left\"\n },\n y: {\n valType: \"number\",\n min: -2,\n max: 3,\n dflt: 0\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n dflt: \"top\"\n },\n transition: {\n duration: {\n valType: \"number\",\n min: 0,\n dflt: 150\n },\n easing: {\n valType: \"enumerated\",\n values: animationAttrs.transition.easing.values,\n dflt: \"cubic-in-out\"\n }\n },\n currentvalue: {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n dflt: \"left\"\n },\n offset: {\n valType: \"number\",\n dflt: 10\n },\n prefix: {\n valType: \"string\"\n },\n suffix: {\n valType: \"string\"\n },\n font: fontAttrs({})\n },\n font: fontAttrs({}),\n activebgcolor: {\n valType: \"color\",\n dflt: constants.gripBgActiveColor\n },\n bgcolor: {\n valType: \"color\",\n dflt: constants.railBgColor\n },\n bordercolor: {\n valType: \"color\",\n dflt: constants.railBorderColor\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: constants.railBorderWidth\n },\n ticklen: {\n valType: \"number\",\n min: 0,\n dflt: constants.tickLength\n },\n tickcolor: {\n valType: \"color\",\n dflt: constants.tickColor\n },\n tickwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n minorticklen: {\n valType: \"number\",\n min: 0,\n dflt: constants.minorTickLength\n }\n }), \"arraydraw\", \"from-root\");\n }\n });\n\n // src/components/sliders/defaults.js\n var require_defaults15 = __commonJS({\n \"src/components/sliders/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes19();\n var constants = require_constants10();\n var name2 = constants.name;\n var stepAttrs = attributes.steps;\n module.exports = function slidersDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: name2,\n handleItemDefaults: sliderDefaults\n });\n };\n function sliderDefaults(sliderIn, sliderOut, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(sliderIn, sliderOut, attributes, attr, dflt);\n }\n var steps = handleArrayContainerDefaults(sliderIn, sliderOut, {\n name: \"steps\",\n handleItemDefaults: stepDefaults\n });\n var stepCount = 0;\n for (var i = 0; i < steps.length; i++) {\n if (steps[i].visible) stepCount++;\n }\n var visible;\n if (stepCount < 2) visible = sliderOut.visible = false;\n else visible = coerce(\"visible\");\n if (!visible) return;\n sliderOut._stepCount = stepCount;\n var visSteps = sliderOut._visibleSteps = Lib.filterVisible(steps);\n var active = coerce(\"active\");\n if (!(steps[active] || {}).visible) sliderOut.active = visSteps[0]._index;\n coerce(\"x\");\n coerce(\"y\");\n Lib.noneOrAll(sliderIn, sliderOut, [\"x\", \"y\"]);\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n coerce(\"len\");\n coerce(\"lenmode\");\n coerce(\"pad.t\");\n coerce(\"pad.r\");\n coerce(\"pad.b\");\n coerce(\"pad.l\");\n Lib.coerceFont(coerce, \"font\", layoutOut.font);\n var currentValueIsVisible = coerce(\"currentvalue.visible\");\n if (currentValueIsVisible) {\n coerce(\"currentvalue.xanchor\");\n coerce(\"currentvalue.prefix\");\n coerce(\"currentvalue.suffix\");\n coerce(\"currentvalue.offset\");\n Lib.coerceFont(coerce, \"currentvalue.font\", sliderOut.font);\n }\n coerce(\"transition.duration\");\n coerce(\"transition.easing\");\n coerce(\"bgcolor\");\n coerce(\"activebgcolor\");\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n coerce(\"ticklen\");\n coerce(\"tickwidth\");\n coerce(\"tickcolor\");\n coerce(\"minorticklen\");\n }\n function stepDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, stepAttrs, attr, dflt);\n }\n var visible;\n if (valueIn.method !== \"skip\" && !Array.isArray(valueIn.args)) {\n visible = valueOut.visible = false;\n } else visible = coerce(\"visible\");\n if (visible) {\n coerce(\"method\");\n coerce(\"args\");\n var label = coerce(\"label\", \"step-\" + valueOut._index);\n coerce(\"value\", label);\n coerce(\"execute\");\n }\n }\n }\n });\n\n // src/components/sliders/draw.js\n var require_draw8 = __commonJS({\n \"src/components/sliders/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Plots = require_plots();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var arrayEditor = require_plot_template().arrayEditor;\n var constants = require_constants10();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var FROM_TL = alignmentConstants.FROM_TL;\n var FROM_BR = alignmentConstants.FROM_BR;\n module.exports = function draw(gd) {\n var staticPlot = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var sliderData = makeSliderData(fullLayout, gd);\n var sliders = fullLayout._infolayer.selectAll(\"g.\" + constants.containerClassName).data(sliderData.length > 0 ? [0] : []);\n sliders.enter().append(\"g\").classed(constants.containerClassName, true).style(\"cursor\", staticPlot ? null : \"ew-resize\");\n function clearSlider(sliderOpts2) {\n if (sliderOpts2._commandObserver) {\n sliderOpts2._commandObserver.remove();\n delete sliderOpts2._commandObserver;\n }\n Plots.autoMargin(gd, autoMarginId(sliderOpts2));\n }\n sliders.exit().each(function() {\n d3.select(this).selectAll(\"g.\" + constants.groupClassName).each(clearSlider);\n }).remove();\n if (sliderData.length === 0) return;\n var sliderGroups = sliders.selectAll(\"g.\" + constants.groupClassName).data(sliderData, keyFunction);\n sliderGroups.enter().append(\"g\").classed(constants.groupClassName, true);\n sliderGroups.exit().each(clearSlider).remove();\n for (var i = 0; i < sliderData.length; i++) {\n var sliderOpts = sliderData[i];\n findDimensions(gd, sliderOpts);\n }\n sliderGroups.each(function(sliderOpts2) {\n var gSlider = d3.select(this);\n computeLabelSteps(sliderOpts2);\n Plots.manageCommandObserver(gd, sliderOpts2, sliderOpts2._visibleSteps, function(data) {\n var opts = gSlider.data()[0];\n if (opts.active === data.index) return;\n if (opts._dragging) return;\n setActive(gd, gSlider, opts, data.index, false, true);\n });\n drawSlider(gd, d3.select(this), sliderOpts2);\n });\n };\n function autoMarginId(sliderOpts) {\n return constants.autoMarginIdRoot + sliderOpts._index;\n }\n function makeSliderData(fullLayout, gd) {\n var contOpts = fullLayout[constants.name];\n var sliderData = [];\n for (var i = 0; i < contOpts.length; i++) {\n var item = contOpts[i];\n if (!item.visible) continue;\n item._gd = gd;\n sliderData.push(item);\n }\n return sliderData;\n }\n function keyFunction(opts) {\n return opts._index;\n }\n function findDimensions(gd, sliderOpts) {\n var sliderLabels = Drawing.tester.selectAll(\"g.\" + constants.labelGroupClass).data(sliderOpts._visibleSteps);\n sliderLabels.enter().append(\"g\").classed(constants.labelGroupClass, true);\n var maxLabelWidth = 0;\n var labelHeight = 0;\n sliderLabels.each(function(stepOpts) {\n var labelGroup = d3.select(this);\n var text = drawLabel(labelGroup, { step: stepOpts }, sliderOpts);\n var textNode = text.node();\n if (textNode) {\n var bBox = Drawing.bBox(textNode);\n labelHeight = Math.max(labelHeight, bBox.height);\n maxLabelWidth = Math.max(maxLabelWidth, bBox.width);\n }\n });\n sliderLabels.remove();\n var dims = sliderOpts._dims = {};\n dims.inputAreaWidth = Math.max(\n constants.railWidth,\n constants.gripHeight\n );\n var graphSize = gd._fullLayout._size;\n dims.lx = graphSize.l + graphSize.w * sliderOpts.x;\n dims.ly = graphSize.t + graphSize.h * (1 - sliderOpts.y);\n if (sliderOpts.lenmode === \"fraction\") {\n dims.outerLength = Math.round(graphSize.w * sliderOpts.len);\n } else {\n dims.outerLength = sliderOpts.len;\n }\n dims.inputAreaStart = 0;\n dims.inputAreaLength = Math.round(dims.outerLength - sliderOpts.pad.l - sliderOpts.pad.r);\n var textableInputLength = dims.inputAreaLength - 2 * constants.stepInset;\n var availableSpacePerLabel = textableInputLength / (sliderOpts._stepCount - 1);\n var computedSpacePerLabel = maxLabelWidth + constants.labelPadding;\n dims.labelStride = Math.max(1, Math.ceil(computedSpacePerLabel / availableSpacePerLabel));\n dims.labelHeight = labelHeight;\n dims.currentValueMaxWidth = 0;\n dims.currentValueHeight = 0;\n dims.currentValueTotalHeight = 0;\n dims.currentValueMaxLines = 1;\n if (sliderOpts.currentvalue.visible) {\n var dummyGroup = Drawing.tester.append(\"g\");\n sliderLabels.each(function(stepOpts) {\n var curValPrefix = drawCurrentValue(dummyGroup, sliderOpts, stepOpts.label);\n var curValSize = curValPrefix.node() && Drawing.bBox(curValPrefix.node()) || { width: 0, height: 0 };\n var lines = svgTextUtils.lineCount(curValPrefix);\n dims.currentValueMaxWidth = Math.max(dims.currentValueMaxWidth, Math.ceil(curValSize.width));\n dims.currentValueHeight = Math.max(dims.currentValueHeight, Math.ceil(curValSize.height));\n dims.currentValueMaxLines = Math.max(dims.currentValueMaxLines, lines);\n });\n dims.currentValueTotalHeight = dims.currentValueHeight + sliderOpts.currentvalue.offset;\n dummyGroup.remove();\n }\n dims.height = dims.currentValueTotalHeight + constants.tickOffset + sliderOpts.ticklen + constants.labelOffset + dims.labelHeight + sliderOpts.pad.t + sliderOpts.pad.b;\n var xanchor = \"left\";\n if (Lib.isRightAnchor(sliderOpts)) {\n dims.lx -= dims.outerLength;\n xanchor = \"right\";\n }\n if (Lib.isCenterAnchor(sliderOpts)) {\n dims.lx -= dims.outerLength / 2;\n xanchor = \"center\";\n }\n var yanchor = \"top\";\n if (Lib.isBottomAnchor(sliderOpts)) {\n dims.ly -= dims.height;\n yanchor = \"bottom\";\n }\n if (Lib.isMiddleAnchor(sliderOpts)) {\n dims.ly -= dims.height / 2;\n yanchor = \"middle\";\n }\n dims.outerLength = Math.ceil(dims.outerLength);\n dims.height = Math.ceil(dims.height);\n dims.lx = Math.round(dims.lx);\n dims.ly = Math.round(dims.ly);\n var marginOpts = {\n y: sliderOpts.y,\n b: dims.height * FROM_BR[yanchor],\n t: dims.height * FROM_TL[yanchor]\n };\n if (sliderOpts.lenmode === \"fraction\") {\n marginOpts.l = 0;\n marginOpts.xl = sliderOpts.x - sliderOpts.len * FROM_TL[xanchor];\n marginOpts.r = 0;\n marginOpts.xr = sliderOpts.x + sliderOpts.len * FROM_BR[xanchor];\n } else {\n marginOpts.x = sliderOpts.x;\n marginOpts.l = dims.outerLength * FROM_TL[xanchor];\n marginOpts.r = dims.outerLength * FROM_BR[xanchor];\n }\n Plots.autoMargin(gd, autoMarginId(sliderOpts), marginOpts);\n }\n function drawSlider(gd, sliderGroup, sliderOpts) {\n if (!(sliderOpts.steps[sliderOpts.active] || {}).visible) {\n sliderOpts.active = sliderOpts._visibleSteps[0]._index;\n }\n sliderGroup.call(drawCurrentValue, sliderOpts).call(drawRail, sliderOpts).call(drawLabelGroup, sliderOpts).call(drawTicks, sliderOpts).call(drawTouchRect, gd, sliderOpts).call(drawGrip, gd, sliderOpts);\n var dims = sliderOpts._dims;\n Drawing.setTranslate(sliderGroup, dims.lx + sliderOpts.pad.l, dims.ly + sliderOpts.pad.t);\n sliderGroup.call(setGripPosition, sliderOpts, false);\n sliderGroup.call(drawCurrentValue, sliderOpts);\n }\n function drawCurrentValue(sliderGroup, sliderOpts, valueOverride) {\n if (!sliderOpts.currentvalue.visible) return;\n var dims = sliderOpts._dims;\n var x0, textAnchor;\n switch (sliderOpts.currentvalue.xanchor) {\n case \"right\":\n x0 = dims.inputAreaLength - constants.currentValueInset - dims.currentValueMaxWidth;\n textAnchor = \"left\";\n break;\n case \"center\":\n x0 = dims.inputAreaLength * 0.5;\n textAnchor = \"middle\";\n break;\n default:\n x0 = constants.currentValueInset;\n textAnchor = \"left\";\n }\n var text = Lib.ensureSingle(sliderGroup, \"text\", constants.labelClass, function(s) {\n s.attr({\n \"text-anchor\": textAnchor,\n \"data-notex\": 1\n });\n });\n var str = sliderOpts.currentvalue.prefix ? sliderOpts.currentvalue.prefix : \"\";\n if (typeof valueOverride === \"string\") {\n str += valueOverride;\n } else {\n var curVal = sliderOpts.steps[sliderOpts.active].label;\n var _meta = sliderOpts._gd._fullLayout._meta;\n if (_meta) curVal = Lib.templateString(curVal, _meta);\n str += curVal;\n }\n if (sliderOpts.currentvalue.suffix) {\n str += sliderOpts.currentvalue.suffix;\n }\n text.call(Drawing.font, sliderOpts.currentvalue.font).text(str).call(svgTextUtils.convertToTspans, sliderOpts._gd);\n var lines = svgTextUtils.lineCount(text);\n var y0 = (dims.currentValueMaxLines + 1 - lines) * sliderOpts.currentvalue.font.size * LINE_SPACING;\n svgTextUtils.positionText(text, x0, y0);\n return text;\n }\n function drawGrip(sliderGroup, gd, sliderOpts) {\n var grip = Lib.ensureSingle(sliderGroup, \"rect\", constants.gripRectClass, function(s) {\n s.call(attachGripEvents, gd, sliderGroup, sliderOpts).style(\"pointer-events\", \"all\");\n });\n grip.attr({\n width: constants.gripWidth,\n height: constants.gripHeight,\n rx: constants.gripRadius,\n ry: constants.gripRadius\n }).call(Color2.stroke, sliderOpts.bordercolor).call(Color2.fill, sliderOpts.bgcolor).style(\"stroke-width\", sliderOpts.borderwidth + \"px\");\n }\n function drawLabel(item, data, sliderOpts) {\n var text = Lib.ensureSingle(item, \"text\", constants.labelClass, function(s) {\n s.attr({\n \"text-anchor\": \"middle\",\n \"data-notex\": 1\n });\n });\n var tx = data.step.label;\n var _meta = sliderOpts._gd._fullLayout._meta;\n if (_meta) tx = Lib.templateString(tx, _meta);\n text.call(Drawing.font, sliderOpts.font).text(tx).call(svgTextUtils.convertToTspans, sliderOpts._gd);\n return text;\n }\n function drawLabelGroup(sliderGroup, sliderOpts) {\n var labels = Lib.ensureSingle(sliderGroup, \"g\", constants.labelsClass);\n var dims = sliderOpts._dims;\n var labelItems = labels.selectAll(\"g.\" + constants.labelGroupClass).data(dims.labelSteps);\n labelItems.enter().append(\"g\").classed(constants.labelGroupClass, true);\n labelItems.exit().remove();\n labelItems.each(function(d) {\n var item = d3.select(this);\n item.call(drawLabel, d, sliderOpts);\n Drawing.setTranslate(\n item,\n normalizedValueToPosition(sliderOpts, d.fraction),\n constants.tickOffset + sliderOpts.ticklen + // position is the baseline of the top line of text only, even\n // if the label spans multiple lines\n sliderOpts.font.size * LINE_SPACING + constants.labelOffset + dims.currentValueTotalHeight\n );\n });\n }\n function handleInput(gd, sliderGroup, sliderOpts, normalizedPosition, doTransition) {\n var quantizedPosition = Math.round(normalizedPosition * (sliderOpts._stepCount - 1));\n var quantizedIndex = sliderOpts._visibleSteps[quantizedPosition]._index;\n if (quantizedIndex !== sliderOpts.active) {\n setActive(gd, sliderGroup, sliderOpts, quantizedIndex, true, doTransition);\n }\n }\n function setActive(gd, sliderGroup, sliderOpts, index, doCallback, doTransition) {\n var previousActive = sliderOpts.active;\n sliderOpts.active = index;\n arrayEditor(gd.layout, constants.name, sliderOpts).applyUpdate(\"active\", index);\n var step = sliderOpts.steps[sliderOpts.active];\n sliderGroup.call(setGripPosition, sliderOpts, doTransition);\n sliderGroup.call(drawCurrentValue, sliderOpts);\n gd.emit(\"plotly_sliderchange\", {\n slider: sliderOpts,\n step: sliderOpts.steps[sliderOpts.active],\n interaction: doCallback,\n previousActive\n });\n if (step && step.method && doCallback) {\n if (sliderGroup._nextMethod) {\n sliderGroup._nextMethod.step = step;\n sliderGroup._nextMethod.doCallback = doCallback;\n sliderGroup._nextMethod.doTransition = doTransition;\n } else {\n sliderGroup._nextMethod = { step, doCallback, doTransition };\n sliderGroup._nextMethodRaf = window.requestAnimationFrame(function() {\n var _step = sliderGroup._nextMethod.step;\n if (!_step.method) return;\n if (_step.execute) {\n Plots.executeAPICommand(gd, _step.method, _step.args);\n }\n sliderGroup._nextMethod = null;\n sliderGroup._nextMethodRaf = null;\n });\n }\n }\n }\n function attachGripEvents(item, gd, sliderGroup) {\n if (gd._context.staticPlot) return;\n var node = sliderGroup.node();\n var $gd = d3.select(gd);\n function getSliderOpts() {\n return sliderGroup.data()[0];\n }\n function mouseDownHandler() {\n var sliderOpts = getSliderOpts();\n gd.emit(\"plotly_sliderstart\", { slider: sliderOpts });\n var grip = sliderGroup.select(\".\" + constants.gripRectClass);\n d3.event.stopPropagation();\n d3.event.preventDefault();\n grip.call(Color2.fill, sliderOpts.activebgcolor);\n var normalizedPosition = positionToNormalizedValue(sliderOpts, d3.mouse(node)[0]);\n handleInput(gd, sliderGroup, sliderOpts, normalizedPosition, true);\n sliderOpts._dragging = true;\n function mouseMoveHandler() {\n var sliderOpts2 = getSliderOpts();\n var normalizedPosition2 = positionToNormalizedValue(sliderOpts2, d3.mouse(node)[0]);\n handleInput(gd, sliderGroup, sliderOpts2, normalizedPosition2, false);\n }\n $gd.on(\"mousemove\", mouseMoveHandler);\n $gd.on(\"touchmove\", mouseMoveHandler);\n function mouseUpHandler() {\n var sliderOpts2 = getSliderOpts();\n sliderOpts2._dragging = false;\n grip.call(Color2.fill, sliderOpts2.bgcolor);\n $gd.on(\"mouseup\", null);\n $gd.on(\"mousemove\", null);\n $gd.on(\"touchend\", null);\n $gd.on(\"touchmove\", null);\n gd.emit(\"plotly_sliderend\", {\n slider: sliderOpts2,\n step: sliderOpts2.steps[sliderOpts2.active]\n });\n }\n $gd.on(\"mouseup\", mouseUpHandler);\n $gd.on(\"touchend\", mouseUpHandler);\n }\n item.on(\"mousedown\", mouseDownHandler);\n item.on(\"touchstart\", mouseDownHandler);\n }\n function drawTicks(sliderGroup, sliderOpts) {\n var tick = sliderGroup.selectAll(\"rect.\" + constants.tickRectClass).data(sliderOpts._visibleSteps);\n var dims = sliderOpts._dims;\n tick.enter().append(\"rect\").classed(constants.tickRectClass, true);\n tick.exit().remove();\n tick.attr({\n width: sliderOpts.tickwidth + \"px\",\n \"shape-rendering\": \"crispEdges\"\n });\n tick.each(function(d, i) {\n var isMajor = i % dims.labelStride === 0;\n var item = d3.select(this);\n item.attr({ height: isMajor ? sliderOpts.ticklen : sliderOpts.minorticklen }).call(Color2.fill, isMajor ? sliderOpts.tickcolor : sliderOpts.tickcolor);\n Drawing.setTranslate(\n item,\n normalizedValueToPosition(sliderOpts, i / (sliderOpts._stepCount - 1)) - 0.5 * sliderOpts.tickwidth,\n (isMajor ? constants.tickOffset : constants.minorTickOffset) + dims.currentValueTotalHeight\n );\n });\n }\n function computeLabelSteps(sliderOpts) {\n var dims = sliderOpts._dims;\n dims.labelSteps = [];\n var nsteps = sliderOpts._stepCount;\n for (var i = 0; i < nsteps; i += dims.labelStride) {\n dims.labelSteps.push({\n fraction: i / (nsteps - 1),\n step: sliderOpts._visibleSteps[i]\n });\n }\n }\n function setGripPosition(sliderGroup, sliderOpts, doTransition) {\n var grip = sliderGroup.select(\"rect.\" + constants.gripRectClass);\n var quantizedIndex = 0;\n for (var i = 0; i < sliderOpts._stepCount; i++) {\n if (sliderOpts._visibleSteps[i]._index === sliderOpts.active) {\n quantizedIndex = i;\n break;\n }\n }\n var x = normalizedValueToPosition(sliderOpts, quantizedIndex / (sliderOpts._stepCount - 1));\n if (sliderOpts._invokingCommand) return;\n var el = grip;\n if (doTransition && sliderOpts.transition.duration > 0) {\n el = el.transition().duration(sliderOpts.transition.duration).ease(sliderOpts.transition.easing);\n }\n el.attr(\"transform\", strTranslate(x - constants.gripWidth * 0.5, sliderOpts._dims.currentValueTotalHeight));\n }\n function normalizedValueToPosition(sliderOpts, normalizedPosition) {\n var dims = sliderOpts._dims;\n return dims.inputAreaStart + constants.stepInset + (dims.inputAreaLength - 2 * constants.stepInset) * Math.min(1, Math.max(0, normalizedPosition));\n }\n function positionToNormalizedValue(sliderOpts, position) {\n var dims = sliderOpts._dims;\n return Math.min(1, Math.max(0, (position - constants.stepInset - dims.inputAreaStart) / (dims.inputAreaLength - 2 * constants.stepInset - 2 * dims.inputAreaStart)));\n }\n function drawTouchRect(sliderGroup, gd, sliderOpts) {\n var dims = sliderOpts._dims;\n var rect = Lib.ensureSingle(sliderGroup, \"rect\", constants.railTouchRectClass, function(s) {\n s.call(attachGripEvents, gd, sliderGroup, sliderOpts).style(\"pointer-events\", \"all\");\n });\n rect.attr({\n width: dims.inputAreaLength,\n height: Math.max(dims.inputAreaWidth, constants.tickOffset + sliderOpts.ticklen + dims.labelHeight)\n }).call(Color2.fill, sliderOpts.bgcolor).attr(\"opacity\", 0);\n Drawing.setTranslate(rect, 0, dims.currentValueTotalHeight);\n }\n function drawRail(sliderGroup, sliderOpts) {\n var dims = sliderOpts._dims;\n var computedLength = dims.inputAreaLength - constants.railInset * 2;\n var rect = Lib.ensureSingle(sliderGroup, \"rect\", constants.railRectClass);\n rect.attr({\n width: computedLength,\n height: constants.railWidth,\n rx: constants.railRadius,\n ry: constants.railRadius,\n \"shape-rendering\": \"crispEdges\"\n }).call(Color2.stroke, sliderOpts.bordercolor).call(Color2.fill, sliderOpts.bgcolor).style(\"stroke-width\", sliderOpts.borderwidth + \"px\");\n Drawing.setTranslate(\n rect,\n constants.railInset,\n (dims.inputAreaWidth - constants.railWidth) * 0.5 + dims.currentValueTotalHeight\n );\n }\n }\n });\n\n // src/components/sliders/index.js\n var require_sliders = __commonJS({\n \"src/components/sliders/index.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants10();\n module.exports = {\n moduleType: \"component\",\n name: constants.name,\n layoutAttributes: require_attributes19(),\n supplyLayoutDefaults: require_defaults15(),\n draw: require_draw8()\n };\n }\n });\n\n // src/components/rangeslider/attributes.js\n var require_attributes20 = __commonJS({\n \"src/components/rangeslider/attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttributes = require_attributes3();\n module.exports = {\n bgcolor: {\n valType: \"color\",\n dflt: colorAttributes.background,\n editType: \"plot\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttributes.defaultLine,\n editType: \"plot\"\n },\n borderwidth: {\n valType: \"integer\",\n dflt: 0,\n min: 0,\n editType: \"plot\"\n },\n autorange: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"calc\", impliedEdits: { \"^autorange\": false } },\n { valType: \"any\", editType: \"calc\", impliedEdits: { \"^autorange\": false } }\n ],\n editType: \"calc\",\n impliedEdits: { autorange: false }\n },\n thickness: {\n valType: \"number\",\n dflt: 0.15,\n min: 0,\n max: 1,\n editType: \"plot\"\n },\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/components/rangeslider/oppaxis_attributes.js\n var require_oppaxis_attributes = __commonJS({\n \"src/components/rangeslider/oppaxis_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n rangemode: {\n valType: \"enumerated\",\n values: [\"auto\", \"fixed\", \"match\"],\n dflt: \"match\",\n editType: \"calc\"\n },\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"plot\" },\n { valType: \"any\", editType: \"plot\" }\n ],\n editType: \"plot\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/components/rangeslider/constants.js\n var require_constants11 = __commonJS({\n \"src/components/rangeslider/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // attribute container name\n name: \"rangeslider\",\n // class names\n containerClassName: \"rangeslider-container\",\n bgClassName: \"rangeslider-bg\",\n rangePlotClassName: \"rangeslider-rangeplot\",\n maskMinClassName: \"rangeslider-mask-min\",\n maskMaxClassName: \"rangeslider-mask-max\",\n slideBoxClassName: \"rangeslider-slidebox\",\n grabberMinClassName: \"rangeslider-grabber-min\",\n grabAreaMinClassName: \"rangeslider-grabarea-min\",\n handleMinClassName: \"rangeslider-handle-min\",\n grabberMaxClassName: \"rangeslider-grabber-max\",\n grabAreaMaxClassName: \"rangeslider-grabarea-max\",\n handleMaxClassName: \"rangeslider-handle-max\",\n maskMinOppAxisClassName: \"rangeslider-mask-min-opp-axis\",\n maskMaxOppAxisClassName: \"rangeslider-mask-max-opp-axis\",\n // style constants\n maskColor: \"rgba(0,0,0,0.4)\",\n maskOppAxisColor: \"rgba(0,0,0,0.2)\",\n slideBoxFill: \"transparent\",\n slideBoxCursor: \"ew-resize\",\n grabAreaFill: \"transparent\",\n grabAreaCursor: \"col-resize\",\n grabAreaWidth: 10,\n handleWidth: 4,\n handleRadius: 1,\n handleStrokeWidth: 1,\n extraPad: 15\n };\n }\n });\n\n // src/components/rangeslider/helpers.js\n var require_helpers11 = __commonJS({\n \"src/components/rangeslider/helpers.js\"(exports) {\n \"use strict\";\n var axisIDs = require_axis_ids();\n var svgTextUtils = require_svg_text_utils();\n var constants = require_constants11();\n var LINE_SPACING = require_alignment().LINE_SPACING;\n var name2 = constants.name;\n function isVisible(ax) {\n var rangeSlider = ax && ax[name2];\n return rangeSlider && rangeSlider.visible;\n }\n exports.isVisible = isVisible;\n exports.makeData = function(fullLayout) {\n var axes = axisIDs.list({ _fullLayout: fullLayout }, \"x\", true);\n var margin = fullLayout.margin;\n var rangeSliderData = [];\n for (var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n if (isVisible(ax)) {\n rangeSliderData.push(ax);\n var opts = ax[name2];\n opts._id = name2 + ax._id;\n opts._height = (fullLayout.height - margin.b - margin.t) * opts.thickness;\n opts._offsetShift = Math.floor(opts.borderwidth / 2);\n }\n }\n fullLayout._rangeSliderData = rangeSliderData;\n };\n exports.autoMarginOpts = function(gd, ax) {\n var fullLayout = gd._fullLayout;\n var opts = ax[name2];\n var axLetter = ax._id.charAt(0);\n var bottomDepth = 0;\n var titleHeight = 0;\n if (ax.side === \"bottom\") {\n bottomDepth = ax._depth;\n if (ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n titleHeight = 1.5 * ax.title.font.size + 10 + opts._offsetShift;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n titleHeight += extraLines * ax.title.font.size * LINE_SPACING;\n }\n }\n return {\n x: 0,\n y: ax._counterDomainMin,\n l: 0,\n r: 0,\n t: 0,\n b: opts._height + bottomDepth + Math.max(fullLayout.margin.b, titleHeight),\n pad: constants.extraPad + opts._offsetShift * 2\n };\n };\n }\n });\n\n // src/components/rangeslider/defaults.js\n var require_defaults16 = __commonJS({\n \"src/components/rangeslider/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n var axisIds = require_axis_ids();\n var attributes = require_attributes20();\n var oppAxisAttrs = require_oppaxis_attributes();\n module.exports = function handleDefaults(layoutIn, layoutOut, axName) {\n var axIn = layoutIn[axName];\n var axOut = layoutOut[axName];\n if (!(axIn.rangeslider || layoutOut._requestRangeslider[axOut._id])) return;\n if (!Lib.isPlainObject(axIn.rangeslider)) {\n axIn.rangeslider = {};\n }\n var containerIn = axIn.rangeslider;\n var containerOut = Template.newContainer(axOut, \"rangeslider\");\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n var rangeContainerIn, rangeContainerOut;\n function coerceRange(attr, dflt) {\n return Lib.coerce(rangeContainerIn, rangeContainerOut, oppAxisAttrs, attr, dflt);\n }\n var visible = coerce(\"visible\");\n if (!visible) return;\n coerce(\"bgcolor\", layoutOut.plot_bgcolor);\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n coerce(\"thickness\");\n coerce(\"autorange\", !axOut.isValidRange(containerIn.range));\n coerce(\"range\");\n var subplots = layoutOut._subplots;\n if (subplots) {\n var yIds = subplots.cartesian.filter(function(subplotId) {\n return subplotId.substr(0, subplotId.indexOf(\"y\")) === axisIds.name2id(axName);\n }).map(function(subplotId) {\n return subplotId.substr(subplotId.indexOf(\"y\"), subplotId.length);\n });\n var yNames = Lib.simpleMap(yIds, axisIds.id2name);\n for (var i = 0; i < yNames.length; i++) {\n var yName = yNames[i];\n rangeContainerIn = containerIn[yName] || {};\n rangeContainerOut = Template.newContainer(containerOut, yName, \"yaxis\");\n var yAxOut = layoutOut[yName];\n var rangemodeDflt;\n if (rangeContainerIn.range && yAxOut.isValidRange(rangeContainerIn.range)) {\n rangemodeDflt = \"fixed\";\n }\n var rangeMode = coerceRange(\"rangemode\", rangemodeDflt);\n if (rangeMode !== \"match\") {\n coerceRange(\"range\", yAxOut.range.slice());\n }\n }\n }\n containerOut._input = containerIn;\n };\n }\n });\n\n // src/components/rangeslider/calc_autorange.js\n var require_calc_autorange3 = __commonJS({\n \"src/components/rangeslider/calc_autorange.js\"(exports, module) {\n \"use strict\";\n var listAxes = require_axis_ids().list;\n var getAutoRange = require_autorange().getAutoRange;\n var constants = require_constants11();\n module.exports = function calcAutorange(gd) {\n var axes = listAxes(gd, \"x\", true);\n for (var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n var opts = ax[constants.name];\n if (opts && opts.visible && opts.autorange) {\n opts._input.autorange = true;\n opts._input.range = opts.range = getAutoRange(gd, ax);\n }\n }\n };\n }\n });\n\n // src/components/rangeslider/draw.js\n var require_draw9 = __commonJS({\n \"src/components/rangeslider/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Plots = require_plots();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Drawing = require_drawing();\n var Color2 = require_color();\n var Titles = require_titles();\n var Cartesian = require_cartesian();\n var axisIDs = require_axis_ids();\n var dragElement = require_dragelement();\n var setCursor = require_setcursor();\n var constants = require_constants11();\n module.exports = function(gd) {\n var fullLayout = gd._fullLayout;\n var rangeSliderData = fullLayout._rangeSliderData;\n for (var i = 0; i < rangeSliderData.length; i++) {\n var opts = rangeSliderData[i][constants.name];\n opts._clipId = opts._id + \"-\" + fullLayout._uid;\n }\n function keyFunction(axisOpts) {\n return axisOpts._name;\n }\n var rangeSliders = fullLayout._infolayer.selectAll(\"g.\" + constants.containerClassName).data(rangeSliderData, keyFunction);\n rangeSliders.exit().each(function(axisOpts) {\n var opts2 = axisOpts[constants.name];\n fullLayout._topdefs.select(\"#\" + opts2._clipId).remove();\n }).remove();\n if (rangeSliderData.length === 0) return;\n rangeSliders.enter().append(\"g\").classed(constants.containerClassName, true).attr(\"pointer-events\", \"all\");\n rangeSliders.each(function(axisOpts) {\n var rangeSlider = d3.select(this);\n var opts2 = axisOpts[constants.name];\n var oppAxisOpts = fullLayout[axisIDs.id2name(axisOpts.anchor)];\n var oppAxisRangeOpts = opts2[axisIDs.id2name(axisOpts.anchor)];\n if (opts2.range) {\n var rng = Lib.simpleMap(opts2.range, axisOpts.r2l);\n var axRng = Lib.simpleMap(axisOpts.range, axisOpts.r2l);\n var newRng;\n if (axRng[0] < axRng[1]) {\n newRng = [\n Math.min(rng[0], axRng[0]),\n Math.max(rng[1], axRng[1])\n ];\n } else {\n newRng = [\n Math.max(rng[0], axRng[0]),\n Math.min(rng[1], axRng[1])\n ];\n }\n opts2.range = opts2._input.range = Lib.simpleMap(newRng, axisOpts.l2r);\n }\n axisOpts.cleanRange(\"rangeslider.range\");\n var gs = fullLayout._size;\n var domain = axisOpts.domain;\n opts2._width = gs.w * (domain[1] - domain[0]);\n var x = Math.round(gs.l + gs.w * domain[0]);\n var y = Math.round(\n gs.t + gs.h * (1 - axisOpts._counterDomainMin) + (axisOpts.side === \"bottom\" ? axisOpts._depth : 0) + opts2._offsetShift + constants.extraPad\n );\n rangeSlider.attr(\"transform\", strTranslate(x, y));\n opts2._rl = Lib.simpleMap(opts2.range, axisOpts.r2l);\n var rl0 = opts2._rl[0];\n var rl1 = opts2._rl[1];\n var drl = rl1 - rl0;\n opts2.p2d = function(v) {\n return v / opts2._width * drl + rl0;\n };\n opts2.d2p = function(v) {\n return (v - rl0) / drl * opts2._width;\n };\n if (axisOpts.rangebreaks) {\n var rsBreaks = axisOpts.locateBreaks(rl0, rl1);\n if (rsBreaks.length) {\n var j, brk;\n var lBreaks = 0;\n for (j = 0; j < rsBreaks.length; j++) {\n brk = rsBreaks[j];\n lBreaks += brk.max - brk.min;\n }\n var m2 = opts2._width / (rl1 - rl0 - lBreaks);\n var _B = [-m2 * rl0];\n for (j = 0; j < rsBreaks.length; j++) {\n brk = rsBreaks[j];\n _B.push(_B[_B.length - 1] - m2 * (brk.max - brk.min));\n }\n opts2.d2p = function(v) {\n var b = _B[0];\n for (var j2 = 0; j2 < rsBreaks.length; j2++) {\n var brk2 = rsBreaks[j2];\n if (v >= brk2.max) b = _B[j2 + 1];\n else if (v < brk2.min) break;\n }\n return b + m2 * v;\n };\n for (j = 0; j < rsBreaks.length; j++) {\n brk = rsBreaks[j];\n brk.pmin = opts2.d2p(brk.min);\n brk.pmax = opts2.d2p(brk.max);\n }\n opts2.p2d = function(v) {\n var b = _B[0];\n for (var j2 = 0; j2 < rsBreaks.length; j2++) {\n var brk2 = rsBreaks[j2];\n if (v >= brk2.pmax) b = _B[j2 + 1];\n else if (v < brk2.pmin) break;\n }\n return (v - b) / m2;\n };\n }\n }\n if (oppAxisRangeOpts.rangemode !== \"match\") {\n var range0OppAxis = oppAxisOpts.r2l(oppAxisRangeOpts.range[0]);\n var range1OppAxis = oppAxisOpts.r2l(oppAxisRangeOpts.range[1]);\n var distOppAxis = range1OppAxis - range0OppAxis;\n opts2.d2pOppAxis = function(v) {\n return (v - range0OppAxis) / distOppAxis * opts2._height;\n };\n }\n rangeSlider.call(drawBg, gd, axisOpts, opts2).call(addClipPath, gd, axisOpts, opts2).call(drawRangePlot, gd, axisOpts, opts2).call(drawMasks, gd, axisOpts, opts2, oppAxisRangeOpts).call(drawSlideBox, gd, axisOpts, opts2).call(drawGrabbers, gd, axisOpts, opts2);\n setupDragElement(rangeSlider, gd, axisOpts, opts2);\n setPixelRange(rangeSlider, gd, axisOpts, opts2, oppAxisOpts, oppAxisRangeOpts);\n if (axisOpts.side === \"bottom\") {\n Titles.draw(gd, axisOpts._id + \"title\", {\n propContainer: axisOpts,\n propName: axisOpts._name + \".title\",\n placeholder: fullLayout._dfltTitle.x,\n attributes: {\n x: axisOpts._offset + axisOpts._length / 2,\n y: y + opts2._height + opts2._offsetShift + 10 + 1.5 * axisOpts.title.font.size,\n \"text-anchor\": \"middle\"\n }\n });\n }\n });\n };\n function eventX(event) {\n if (typeof event.clientX === \"number\") {\n return event.clientX;\n }\n if (event.touches && event.touches.length > 0) {\n return event.touches[0].clientX;\n }\n return 0;\n }\n function setupDragElement(rangeSlider, gd, axisOpts, opts) {\n if (gd._context.staticPlot) return;\n var slideBox = rangeSlider.select(\"rect.\" + constants.slideBoxClassName).node();\n var grabAreaMin = rangeSlider.select(\"rect.\" + constants.grabAreaMinClassName).node();\n var grabAreaMax = rangeSlider.select(\"rect.\" + constants.grabAreaMaxClassName).node();\n function mouseDownHandler() {\n var event = d3.event;\n var target = event.target;\n var startX = eventX(event);\n var offsetX = startX - rangeSlider.node().getBoundingClientRect().left;\n var minVal = opts.d2p(axisOpts._rl[0]);\n var maxVal = opts.d2p(axisOpts._rl[1]);\n var dragCover = dragElement.coverSlip();\n this.addEventListener(\"touchmove\", mouseMove);\n this.addEventListener(\"touchend\", mouseUp);\n dragCover.addEventListener(\"mousemove\", mouseMove);\n dragCover.addEventListener(\"mouseup\", mouseUp);\n function mouseMove(e) {\n var clientX = eventX(e);\n var delta = +clientX - startX;\n var pixelMin, pixelMax, cursor;\n switch (target) {\n case slideBox:\n cursor = \"ew-resize\";\n if (minVal + delta > axisOpts._length || maxVal + delta < 0) {\n return;\n }\n pixelMin = minVal + delta;\n pixelMax = maxVal + delta;\n break;\n case grabAreaMin:\n cursor = \"col-resize\";\n if (minVal + delta > axisOpts._length) {\n return;\n }\n pixelMin = minVal + delta;\n pixelMax = maxVal;\n break;\n case grabAreaMax:\n cursor = \"col-resize\";\n if (maxVal + delta < 0) {\n return;\n }\n pixelMin = minVal;\n pixelMax = maxVal + delta;\n break;\n default:\n cursor = \"ew-resize\";\n pixelMin = offsetX;\n pixelMax = offsetX + delta;\n break;\n }\n if (pixelMax < pixelMin) {\n var tmp = pixelMax;\n pixelMax = pixelMin;\n pixelMin = tmp;\n }\n opts._pixelMin = pixelMin;\n opts._pixelMax = pixelMax;\n setCursor(d3.select(dragCover), cursor);\n setDataRange(rangeSlider, gd, axisOpts, opts);\n }\n function mouseUp() {\n dragCover.removeEventListener(\"mousemove\", mouseMove);\n dragCover.removeEventListener(\"mouseup\", mouseUp);\n this.removeEventListener(\"touchmove\", mouseMove);\n this.removeEventListener(\"touchend\", mouseUp);\n Lib.removeElement(dragCover);\n }\n }\n rangeSlider.on(\"mousedown\", mouseDownHandler);\n rangeSlider.on(\"touchstart\", mouseDownHandler);\n }\n function setDataRange(rangeSlider, gd, axisOpts, opts) {\n function clamp(v) {\n return axisOpts.l2r(Lib.constrain(v, opts._rl[0], opts._rl[1]));\n }\n var dataMin = clamp(opts.p2d(opts._pixelMin));\n var dataMax = clamp(opts.p2d(opts._pixelMax));\n window.requestAnimationFrame(function() {\n Registry.call(\"_guiRelayout\", gd, axisOpts._name + \".range\", [dataMin, dataMax]);\n });\n }\n function setPixelRange(rangeSlider, gd, axisOpts, opts, oppAxisOpts, oppAxisRangeOpts) {\n var hw2 = constants.handleWidth / 2;\n function clamp(v) {\n return Lib.constrain(v, 0, opts._width);\n }\n function clampOppAxis(v) {\n return Lib.constrain(v, 0, opts._height);\n }\n function clampHandle(v) {\n return Lib.constrain(v, -hw2, opts._width + hw2);\n }\n var pixelMin = clamp(opts.d2p(axisOpts._rl[0]));\n var pixelMax = clamp(opts.d2p(axisOpts._rl[1]));\n rangeSlider.select(\"rect.\" + constants.slideBoxClassName).attr(\"x\", pixelMin).attr(\"width\", pixelMax - pixelMin);\n rangeSlider.select(\"rect.\" + constants.maskMinClassName).attr(\"width\", pixelMin);\n rangeSlider.select(\"rect.\" + constants.maskMaxClassName).attr(\"x\", pixelMax).attr(\"width\", opts._width - pixelMax);\n if (oppAxisRangeOpts.rangemode !== \"match\") {\n var pixelMinOppAxis = opts._height - clampOppAxis(opts.d2pOppAxis(oppAxisOpts._rl[1]));\n var pixelMaxOppAxis = opts._height - clampOppAxis(opts.d2pOppAxis(oppAxisOpts._rl[0]));\n rangeSlider.select(\"rect.\" + constants.maskMinOppAxisClassName).attr(\"x\", pixelMin).attr(\"height\", pixelMinOppAxis).attr(\"width\", pixelMax - pixelMin);\n rangeSlider.select(\"rect.\" + constants.maskMaxOppAxisClassName).attr(\"x\", pixelMin).attr(\"y\", pixelMaxOppAxis).attr(\"height\", opts._height - pixelMaxOppAxis).attr(\"width\", pixelMax - pixelMin);\n rangeSlider.select(\"rect.\" + constants.slideBoxClassName).attr(\"y\", pixelMinOppAxis).attr(\"height\", pixelMaxOppAxis - pixelMinOppAxis);\n }\n var offset = 0.5;\n var xMin = Math.round(clampHandle(pixelMin - hw2)) - offset;\n var xMax = Math.round(clampHandle(pixelMax - hw2)) + offset;\n rangeSlider.select(\"g.\" + constants.grabberMinClassName).attr(\"transform\", strTranslate(xMin, offset));\n rangeSlider.select(\"g.\" + constants.grabberMaxClassName).attr(\"transform\", strTranslate(xMax, offset));\n }\n function drawBg(rangeSlider, gd, axisOpts, opts) {\n var bg = Lib.ensureSingle(rangeSlider, \"rect\", constants.bgClassName, function(s) {\n s.attr({\n x: 0,\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n var borderCorrect = opts.borderwidth % 2 === 0 ? opts.borderwidth : opts.borderwidth - 1;\n var offsetShift = -opts._offsetShift;\n var lw = Drawing.crispRound(gd, opts.borderwidth);\n bg.attr({\n width: opts._width + borderCorrect,\n height: opts._height + borderCorrect,\n transform: strTranslate(offsetShift, offsetShift),\n \"stroke-width\": lw\n }).call(Color2.stroke, opts.bordercolor).call(Color2.fill, opts.bgcolor);\n }\n function addClipPath(rangeSlider, gd, axisOpts, opts) {\n var fullLayout = gd._fullLayout;\n var clipPath = Lib.ensureSingleById(fullLayout._topdefs, \"clipPath\", opts._clipId, function(s) {\n s.append(\"rect\").attr({ x: 0, y: 0 });\n });\n clipPath.select(\"rect\").attr({\n width: opts._width,\n height: opts._height\n });\n }\n function drawRangePlot(rangeSlider, gd, axisOpts, opts) {\n var calcData = gd.calcdata;\n var rangePlots = rangeSlider.selectAll(\"g.\" + constants.rangePlotClassName).data(axisOpts._subplotsWith, Lib.identity);\n rangePlots.enter().append(\"g\").attr(\"class\", function(id) {\n return constants.rangePlotClassName + \" \" + id;\n }).call(Drawing.setClipUrl, opts._clipId, gd);\n rangePlots.order();\n rangePlots.exit().remove();\n var mainplotinfo;\n rangePlots.each(function(id, i) {\n var plotgroup = d3.select(this);\n var isMainPlot = i === 0;\n var oppAxisOpts = axisIDs.getFromId(gd, id, \"y\");\n var oppAxisName = oppAxisOpts._name;\n var oppAxisRangeOpts = opts[oppAxisName];\n var mockFigure = {\n data: [],\n layout: {\n xaxis: {\n type: axisOpts.type,\n domain: [0, 1],\n range: opts.range.slice(),\n calendar: axisOpts.calendar\n },\n width: opts._width,\n height: opts._height,\n margin: { t: 0, b: 0, l: 0, r: 0 }\n },\n _context: gd._context\n };\n if (axisOpts.rangebreaks) {\n mockFigure.layout.xaxis.rangebreaks = axisOpts.rangebreaks;\n }\n mockFigure.layout[oppAxisName] = {\n type: oppAxisOpts.type,\n domain: [0, 1],\n range: oppAxisRangeOpts.rangemode !== \"match\" ? oppAxisRangeOpts.range.slice() : oppAxisOpts.range.slice(),\n calendar: oppAxisOpts.calendar\n };\n if (oppAxisOpts.rangebreaks) {\n mockFigure.layout[oppAxisName].rangebreaks = oppAxisOpts.rangebreaks;\n }\n Plots.supplyDefaults(mockFigure);\n var xa = mockFigure._fullLayout.xaxis;\n var ya = mockFigure._fullLayout[oppAxisName];\n xa.clearCalc();\n xa.setScale();\n ya.clearCalc();\n ya.setScale();\n var plotinfo = {\n id,\n plotgroup,\n xaxis: xa,\n yaxis: ya,\n isRangePlot: true\n };\n if (isMainPlot) mainplotinfo = plotinfo;\n else {\n plotinfo.mainplot = \"xy\";\n plotinfo.mainplotinfo = mainplotinfo;\n }\n Cartesian.rangePlot(gd, plotinfo, filterRangePlotCalcData(calcData, id));\n });\n }\n function filterRangePlotCalcData(calcData, subplotId) {\n var out = [];\n for (var i = 0; i < calcData.length; i++) {\n var calcTrace = calcData[i];\n var trace = calcTrace[0].trace;\n if (trace.xaxis + trace.yaxis === subplotId) {\n out.push(calcTrace);\n }\n }\n return out;\n }\n function drawMasks(rangeSlider, gd, axisOpts, opts, oppAxisRangeOpts) {\n var maskMin = Lib.ensureSingle(rangeSlider, \"rect\", constants.maskMinClassName, function(s) {\n s.attr({\n x: 0,\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n maskMin.attr(\"height\", opts._height).call(Color2.fill, constants.maskColor);\n var maskMax = Lib.ensureSingle(rangeSlider, \"rect\", constants.maskMaxClassName, function(s) {\n s.attr({\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n maskMax.attr(\"height\", opts._height).call(Color2.fill, constants.maskColor);\n if (oppAxisRangeOpts.rangemode !== \"match\") {\n var maskMinOppAxis = Lib.ensureSingle(rangeSlider, \"rect\", constants.maskMinOppAxisClassName, function(s) {\n s.attr({\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n maskMinOppAxis.attr(\"width\", opts._width).call(Color2.fill, constants.maskOppAxisColor);\n var maskMaxOppAxis = Lib.ensureSingle(rangeSlider, \"rect\", constants.maskMaxOppAxisClassName, function(s) {\n s.attr({\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n maskMaxOppAxis.attr(\"width\", opts._width).style(\"border-top\", constants.maskOppBorder).call(Color2.fill, constants.maskOppAxisColor);\n }\n }\n function drawSlideBox(rangeSlider, gd, axisOpts, opts) {\n if (gd._context.staticPlot) return;\n var slideBox = Lib.ensureSingle(rangeSlider, \"rect\", constants.slideBoxClassName, function(s) {\n s.attr({\n y: 0,\n cursor: constants.slideBoxCursor,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n slideBox.attr({\n height: opts._height,\n fill: constants.slideBoxFill\n });\n }\n function drawGrabbers(rangeSlider, gd, axisOpts, opts) {\n var grabberMin = Lib.ensureSingle(rangeSlider, \"g\", constants.grabberMinClassName);\n var grabberMax = Lib.ensureSingle(rangeSlider, \"g\", constants.grabberMaxClassName);\n var handleFixAttrs = {\n x: 0,\n width: constants.handleWidth,\n rx: constants.handleRadius,\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": constants.handleStrokeWidth,\n \"shape-rendering\": \"crispEdges\"\n };\n var handleDynamicAttrs = {\n y: Math.round(opts._height / 4),\n height: Math.round(opts._height / 2)\n };\n var handleMin = Lib.ensureSingle(grabberMin, \"rect\", constants.handleMinClassName, function(s) {\n s.attr(handleFixAttrs);\n });\n handleMin.attr(handleDynamicAttrs);\n var handleMax = Lib.ensureSingle(grabberMax, \"rect\", constants.handleMaxClassName, function(s) {\n s.attr(handleFixAttrs);\n });\n handleMax.attr(handleDynamicAttrs);\n var grabAreaFixAttrs = {\n width: constants.grabAreaWidth,\n x: 0,\n y: 0,\n fill: constants.grabAreaFill,\n cursor: !gd._context.staticPlot ? constants.grabAreaCursor : void 0\n };\n var grabAreaMin = Lib.ensureSingle(grabberMin, \"rect\", constants.grabAreaMinClassName, function(s) {\n s.attr(grabAreaFixAttrs);\n });\n grabAreaMin.attr(\"height\", opts._height);\n var grabAreaMax = Lib.ensureSingle(grabberMax, \"rect\", constants.grabAreaMaxClassName, function(s) {\n s.attr(grabAreaFixAttrs);\n });\n grabAreaMax.attr(\"height\", opts._height);\n }\n }\n });\n\n // src/components/rangeslider/index.js\n var require_rangeslider = __commonJS({\n \"src/components/rangeslider/index.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attrs = require_attributes20();\n var oppAxisAttrs = require_oppaxis_attributes();\n var helpers = require_helpers11();\n module.exports = {\n moduleType: \"component\",\n name: \"rangeslider\",\n schema: {\n subplots: {\n xaxis: {\n rangeslider: Lib.extendFlat({}, attrs, {\n yaxis: oppAxisAttrs\n })\n }\n }\n },\n layoutAttributes: require_attributes20(),\n handleDefaults: require_defaults16(),\n calcAutorange: require_calc_autorange3(),\n draw: require_draw9(),\n isVisible: helpers.isVisible,\n makeData: helpers.makeData,\n autoMarginOpts: helpers.autoMarginOpts\n };\n }\n });\n\n // src/components/rangeselector/attributes.js\n var require_attributes21 = __commonJS({\n \"src/components/rangeselector/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var templatedArray = require_plot_template().templatedArray;\n var buttonAttrs = templatedArray(\"button\", {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n step: {\n valType: \"enumerated\",\n values: [\"month\", \"year\", \"day\", \"hour\", \"minute\", \"second\", \"all\"],\n dflt: \"month\",\n editType: \"plot\"\n },\n stepmode: {\n valType: \"enumerated\",\n values: [\"backward\", \"todate\"],\n dflt: \"backward\",\n editType: \"plot\"\n },\n count: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"plot\"\n },\n label: {\n valType: \"string\",\n editType: \"plot\"\n },\n editType: \"plot\"\n });\n module.exports = {\n visible: {\n valType: \"boolean\",\n editType: \"plot\"\n },\n buttons: buttonAttrs,\n x: {\n valType: \"number\",\n min: -2,\n max: 3,\n editType: \"plot\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"left\",\n editType: \"plot\"\n },\n y: {\n valType: \"number\",\n min: -2,\n max: 3,\n editType: \"plot\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n dflt: \"bottom\",\n editType: \"plot\"\n },\n font: fontAttrs({\n editType: \"plot\"\n }),\n bgcolor: {\n valType: \"color\",\n dflt: colorAttrs.lightLine,\n editType: \"plot\"\n },\n activecolor: {\n valType: \"color\",\n editType: \"plot\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"plot\"\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"plot\"\n };\n }\n });\n\n // src/components/rangeselector/constants.js\n var require_constants12 = __commonJS({\n \"src/components/rangeselector/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // 'y' position pad above counter axis domain\n yPad: 0.02,\n // minimum button width (regardless of text size)\n minButtonWidth: 30,\n // buttons rect radii\n rx: 3,\n ry: 3,\n // light fraction used to compute the 'activecolor' default\n lightAmount: 25,\n darkAmount: 10\n };\n }\n });\n\n // src/components/rangeselector/defaults.js\n var require_defaults17 = __commonJS({\n \"src/components/rangeselector/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Template = require_plot_template();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes21();\n var constants = require_constants12();\n module.exports = function handleDefaults(containerIn, containerOut, layout, counterAxes, calendar) {\n var selectorIn = containerIn.rangeselector || {};\n var selectorOut = Template.newContainer(containerOut, \"rangeselector\");\n function coerce(attr, dflt) {\n return Lib.coerce(selectorIn, selectorOut, attributes, attr, dflt);\n }\n var buttons = handleArrayContainerDefaults(selectorIn, selectorOut, {\n name: \"buttons\",\n handleItemDefaults: buttonDefaults,\n calendar\n });\n var visible = coerce(\"visible\", buttons.length > 0);\n if (visible) {\n var posDflt = getPosDflt(containerOut, layout, counterAxes);\n coerce(\"x\", posDflt[0]);\n coerce(\"y\", posDflt[1]);\n Lib.noneOrAll(containerIn, containerOut, [\"x\", \"y\"]);\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n Lib.coerceFont(coerce, \"font\", layout.font);\n var bgColor = coerce(\"bgcolor\");\n coerce(\"activecolor\", Color2.contrast(bgColor, constants.lightAmount, constants.darkAmount));\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n }\n };\n function buttonDefaults(buttonIn, buttonOut, selectorOut, opts) {\n var calendar = opts.calendar;\n function coerce(attr, dflt) {\n return Lib.coerce(buttonIn, buttonOut, attributes.buttons, attr, dflt);\n }\n var visible = coerce(\"visible\");\n if (visible) {\n var step = coerce(\"step\");\n if (step !== \"all\") {\n if (calendar && calendar !== \"gregorian\" && (step === \"month\" || step === \"year\")) {\n buttonOut.stepmode = \"backward\";\n } else {\n coerce(\"stepmode\");\n }\n coerce(\"count\");\n }\n coerce(\"label\");\n }\n }\n function getPosDflt(containerOut, layout, counterAxes) {\n var anchoredList = counterAxes.filter(function(ax) {\n return layout[ax].anchor === containerOut._id;\n });\n var posY = 0;\n for (var i = 0; i < anchoredList.length; i++) {\n var domain = layout[anchoredList[i]].domain;\n if (domain) posY = Math.max(domain[1], posY);\n }\n return [containerOut.domain[0], posY + constants.yPad];\n }\n }\n });\n\n // src/components/rangeselector/get_update_object.js\n var require_get_update_object = __commonJS({\n \"src/components/rangeselector/get_update_object.js\"(exports, module) {\n \"use strict\";\n var d3Time = require_d3_time();\n var titleCase = require_lib().titleCase;\n module.exports = function getUpdateObject(axisLayout, buttonLayout) {\n var axName = axisLayout._name;\n var update = {};\n if (buttonLayout.step === \"all\") {\n update[axName + \".autorange\"] = true;\n } else {\n var xrange = getXRange(axisLayout, buttonLayout);\n update[axName + \".range[0]\"] = xrange[0];\n update[axName + \".range[1]\"] = xrange[1];\n }\n return update;\n };\n function getXRange(axisLayout, buttonLayout) {\n var currentRange = axisLayout.range;\n var base = new Date(axisLayout.r2l(currentRange[1]));\n var step = buttonLayout.step;\n var utcStep = d3Time[\"utc\" + titleCase(step)];\n var count = buttonLayout.count;\n var range0;\n switch (buttonLayout.stepmode) {\n case \"backward\":\n range0 = axisLayout.l2r(+utcStep.offset(base, -count));\n break;\n case \"todate\":\n var base2 = utcStep.offset(base, -count);\n range0 = axisLayout.l2r(+utcStep.ceil(base2));\n break;\n }\n var range1 = currentRange[1];\n return [range0, range1];\n }\n }\n });\n\n // src/components/rangeselector/draw.js\n var require_draw10 = __commonJS({\n \"src/components/rangeselector/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Plots = require_plots();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var axisIds = require_axis_ids();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var FROM_TL = alignmentConstants.FROM_TL;\n var FROM_BR = alignmentConstants.FROM_BR;\n var constants = require_constants12();\n var getUpdateObject = require_get_update_object();\n module.exports = function draw(gd) {\n var fullLayout = gd._fullLayout;\n var selectors = fullLayout._infolayer.selectAll(\".rangeselector\").data(makeSelectorData(gd), selectorKeyFunc);\n selectors.enter().append(\"g\").classed(\"rangeselector\", true);\n selectors.exit().remove();\n selectors.style({\n cursor: \"pointer\",\n \"pointer-events\": \"all\"\n });\n selectors.each(function(d) {\n var selector = d3.select(this);\n var axisLayout = d;\n var selectorLayout = axisLayout.rangeselector;\n var buttons = selector.selectAll(\"g.button\").data(Lib.filterVisible(selectorLayout.buttons));\n buttons.enter().append(\"g\").classed(\"button\", true);\n buttons.exit().remove();\n buttons.each(function(d2) {\n var button = d3.select(this);\n var update = getUpdateObject(axisLayout, d2);\n d2._isActive = isActive(axisLayout, d2, update);\n button.call(drawButtonRect, selectorLayout, d2);\n button.call(drawButtonText, selectorLayout, d2, gd);\n button.on(\"click\", function() {\n if (gd._dragged) return;\n Registry.call(\"_guiRelayout\", gd, update);\n });\n button.on(\"mouseover\", function() {\n d2._isHovered = true;\n button.call(drawButtonRect, selectorLayout, d2);\n });\n button.on(\"mouseout\", function() {\n d2._isHovered = false;\n button.call(drawButtonRect, selectorLayout, d2);\n });\n });\n reposition(gd, buttons, selectorLayout, axisLayout._name, selector);\n });\n };\n function makeSelectorData(gd) {\n var axes = axisIds.list(gd, \"x\", true);\n var data = [];\n for (var i = 0; i < axes.length; i++) {\n var axis = axes[i];\n if (axis.rangeselector && axis.rangeselector.visible) {\n data.push(axis);\n }\n }\n return data;\n }\n function selectorKeyFunc(d) {\n return d._id;\n }\n function isActive(axisLayout, opts, update) {\n if (opts.step === \"all\") {\n return axisLayout.autorange === true;\n } else {\n var keys = Object.keys(update);\n return axisLayout.range[0] === update[keys[0]] && axisLayout.range[1] === update[keys[1]];\n }\n }\n function drawButtonRect(button, selectorLayout, d) {\n var rect = Lib.ensureSingle(button, \"rect\", \"selector-rect\", function(s) {\n s.attr(\"shape-rendering\", \"crispEdges\");\n });\n rect.attr({\n rx: constants.rx,\n ry: constants.ry\n });\n rect.call(Color2.stroke, selectorLayout.bordercolor).call(Color2.fill, getFillColor(selectorLayout, d)).style(\"stroke-width\", selectorLayout.borderwidth + \"px\");\n }\n function getFillColor(selectorLayout, d) {\n return d._isActive || d._isHovered ? selectorLayout.activecolor : selectorLayout.bgcolor;\n }\n function drawButtonText(button, selectorLayout, d, gd) {\n function textLayout(s) {\n svgTextUtils.convertToTspans(s, gd);\n }\n var text = Lib.ensureSingle(button, \"text\", \"selector-text\", function(s) {\n s.attr(\"text-anchor\", \"middle\");\n });\n text.call(Drawing.font, selectorLayout.font).text(getLabel(d, gd._fullLayout._meta)).call(textLayout);\n }\n function getLabel(opts, _meta) {\n if (opts.label) {\n return _meta ? Lib.templateString(opts.label, _meta) : opts.label;\n }\n if (opts.step === \"all\") return \"all\";\n return opts.count + opts.step.charAt(0);\n }\n function reposition(gd, buttons, opts, axName, selector) {\n var width = 0;\n var height = 0;\n var borderWidth = opts.borderwidth;\n buttons.each(function() {\n var button = d3.select(this);\n var text = button.select(\".selector-text\");\n var tHeight = opts.font.size * LINE_SPACING;\n var hEff = Math.max(tHeight * svgTextUtils.lineCount(text), 16) + 3;\n height = Math.max(height, hEff);\n });\n buttons.each(function() {\n var button = d3.select(this);\n var rect = button.select(\".selector-rect\");\n var text = button.select(\".selector-text\");\n var tWidth = text.node() && Drawing.bBox(text.node()).width;\n var tHeight = opts.font.size * LINE_SPACING;\n var tLines = svgTextUtils.lineCount(text);\n var wEff = Math.max(tWidth + 10, constants.minButtonWidth);\n button.attr(\"transform\", strTranslate(borderWidth + width, borderWidth));\n rect.attr({\n x: 0,\n y: 0,\n width: wEff,\n height\n });\n svgTextUtils.positionText(\n text,\n wEff / 2,\n height / 2 - (tLines - 1) * tHeight / 2 + 3\n );\n width += wEff + 5;\n });\n var graphSize = gd._fullLayout._size;\n var lx = graphSize.l + graphSize.w * opts.x;\n var ly = graphSize.t + graphSize.h * (1 - opts.y);\n var xanchor = \"left\";\n if (Lib.isRightAnchor(opts)) {\n lx -= width;\n xanchor = \"right\";\n }\n if (Lib.isCenterAnchor(opts)) {\n lx -= width / 2;\n xanchor = \"center\";\n }\n var yanchor = \"top\";\n if (Lib.isBottomAnchor(opts)) {\n ly -= height;\n yanchor = \"bottom\";\n }\n if (Lib.isMiddleAnchor(opts)) {\n ly -= height / 2;\n yanchor = \"middle\";\n }\n width = Math.ceil(width);\n height = Math.ceil(height);\n lx = Math.round(lx);\n ly = Math.round(ly);\n Plots.autoMargin(gd, axName + \"-range-selector\", {\n x: opts.x,\n y: opts.y,\n l: width * FROM_TL[xanchor],\n r: width * FROM_BR[xanchor],\n b: height * FROM_BR[yanchor],\n t: height * FROM_TL[yanchor]\n });\n selector.attr(\"transform\", strTranslate(lx, ly));\n }\n }\n });\n\n // src/components/rangeselector/index.js\n var require_rangeselector = __commonJS({\n \"src/components/rangeselector/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"rangeselector\",\n schema: {\n subplots: {\n xaxis: { rangeselector: require_attributes21() }\n }\n },\n layoutAttributes: require_attributes21(),\n handleDefaults: require_defaults17(),\n draw: require_draw10()\n };\n }\n });\n\n // src/plots/domain.js\n var require_domain = __commonJS({\n \"src/plots/domain.js\"(exports) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n exports.attributes = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n var base = {\n valType: \"info_array\",\n editType: opts.editType,\n items: [\n { valType: \"number\", min: 0, max: 1, editType: opts.editType },\n { valType: \"number\", min: 0, max: 1, editType: opts.editType }\n ],\n dflt: [0, 1]\n };\n var namePart = opts.name ? opts.name + \" \" : \"\";\n var contPart = opts.trace ? \"trace \" : \"subplot \";\n var descPart = extra.description ? \" \" + extra.description : \"\";\n var out = {\n x: extendFlat({}, base, {}),\n y: extendFlat({}, base, {}),\n editType: opts.editType\n };\n if (!opts.noGridCell) {\n out.row = {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: opts.editType\n };\n out.column = {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: opts.editType\n };\n }\n return out;\n };\n exports.defaults = function(containerOut, layout, coerce, dfltDomains) {\n var dfltX = dfltDomains && dfltDomains.x || [0, 1];\n var dfltY = dfltDomains && dfltDomains.y || [0, 1];\n var grid = layout.grid;\n if (grid) {\n var column = coerce(\"domain.column\");\n if (column !== void 0) {\n if (column < grid.columns) dfltX = grid._domains.x[column];\n else delete containerOut.domain.column;\n }\n var row = coerce(\"domain.row\");\n if (row !== void 0) {\n if (row < grid.rows) dfltY = grid._domains.y[row];\n else delete containerOut.domain.row;\n }\n }\n var x = coerce(\"domain.x\", dfltX);\n var y = coerce(\"domain.y\", dfltY);\n if (!(x[0] < x[1])) containerOut.domain.x = dfltX.slice();\n if (!(y[0] < y[1])) containerOut.domain.y = dfltY.slice();\n };\n }\n });\n\n // src/components/grid/index.js\n var require_grid = __commonJS({\n \"src/components/grid/index.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var counterRegex = require_regex().counter;\n var domainAttrs = require_domain().attributes;\n var cartesianIdRegex = require_constants2().idRegex;\n var Template = require_plot_template();\n var gridAttrs = {\n rows: {\n valType: \"integer\",\n min: 1,\n editType: \"plot\"\n },\n roworder: {\n valType: \"enumerated\",\n values: [\"top to bottom\", \"bottom to top\"],\n dflt: \"top to bottom\",\n editType: \"plot\"\n },\n columns: {\n valType: \"integer\",\n min: 1,\n editType: \"plot\"\n },\n subplots: {\n valType: \"info_array\",\n freeLength: true,\n dimensions: 2,\n items: { valType: \"enumerated\", values: [counterRegex(\"xy\").toString(), \"\"], editType: \"plot\" },\n editType: \"plot\"\n },\n xaxes: {\n valType: \"info_array\",\n freeLength: true,\n items: { valType: \"enumerated\", values: [cartesianIdRegex.x.toString(), \"\"], editType: \"plot\" },\n editType: \"plot\"\n },\n yaxes: {\n valType: \"info_array\",\n freeLength: true,\n items: { valType: \"enumerated\", values: [cartesianIdRegex.y.toString(), \"\"], editType: \"plot\" },\n editType: \"plot\"\n },\n pattern: {\n valType: \"enumerated\",\n values: [\"independent\", \"coupled\"],\n dflt: \"coupled\",\n editType: \"plot\"\n },\n xgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"plot\"\n },\n ygap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"plot\"\n },\n domain: domainAttrs({ name: \"grid\", editType: \"plot\", noGridCell: true }, {}),\n xside: {\n valType: \"enumerated\",\n values: [\"bottom\", \"bottom plot\", \"top plot\", \"top\"],\n dflt: \"bottom plot\",\n editType: \"plot\"\n },\n yside: {\n valType: \"enumerated\",\n values: [\"left\", \"left plot\", \"right plot\", \"right\"],\n dflt: \"left plot\",\n editType: \"plot\"\n },\n editType: \"plot\"\n };\n function getAxes(layout, grid, axLetter) {\n var gridVal = grid[axLetter + \"axes\"];\n var splomVal = Object.keys((layout._splomAxes || {})[axLetter] || {});\n if (Array.isArray(gridVal)) return gridVal;\n if (splomVal.length) return splomVal;\n }\n function sizeDefaults(layoutIn, layoutOut) {\n var gridIn = layoutIn.grid || {};\n var xAxes = getAxes(layoutOut, gridIn, \"x\");\n var yAxes = getAxes(layoutOut, gridIn, \"y\");\n if (!layoutIn.grid && !xAxes && !yAxes) return;\n var hasSubplotGrid = Array.isArray(gridIn.subplots) && Array.isArray(gridIn.subplots[0]);\n var hasXaxes = Array.isArray(xAxes);\n var hasYaxes = Array.isArray(yAxes);\n var isSplomGenerated = hasXaxes && xAxes !== gridIn.xaxes && hasYaxes && yAxes !== gridIn.yaxes;\n var dfltRows, dfltColumns;\n if (hasSubplotGrid) {\n dfltRows = gridIn.subplots.length;\n dfltColumns = gridIn.subplots[0].length;\n } else {\n if (hasYaxes) dfltRows = yAxes.length;\n if (hasXaxes) dfltColumns = xAxes.length;\n }\n var gridOut = Template.newContainer(layoutOut, \"grid\");\n function coerce(attr, dflt) {\n return Lib.coerce(gridIn, gridOut, gridAttrs, attr, dflt);\n }\n var rows = coerce(\"rows\", dfltRows);\n var columns = coerce(\"columns\", dfltColumns);\n if (!(rows * columns > 1)) {\n delete layoutOut.grid;\n return;\n }\n if (!hasSubplotGrid && !hasXaxes && !hasYaxes) {\n var useDefaultSubplots = coerce(\"pattern\") === \"independent\";\n if (useDefaultSubplots) hasSubplotGrid = true;\n }\n gridOut._hasSubplotGrid = hasSubplotGrid;\n var rowOrder = coerce(\"roworder\");\n var reversed = rowOrder === \"top to bottom\";\n var dfltGapX = hasSubplotGrid ? 0.2 : 0.1;\n var dfltGapY = hasSubplotGrid ? 0.3 : 0.1;\n var dfltSideX, dfltSideY;\n if (isSplomGenerated && layoutOut._splomGridDflt) {\n dfltSideX = layoutOut._splomGridDflt.xside;\n dfltSideY = layoutOut._splomGridDflt.yside;\n }\n gridOut._domains = {\n x: fillGridPositions(\"x\", coerce, dfltGapX, dfltSideX, columns),\n y: fillGridPositions(\"y\", coerce, dfltGapY, dfltSideY, rows, reversed)\n };\n }\n function fillGridPositions(axLetter, coerce, dfltGap, dfltSide, len, reversed) {\n var dirGap = coerce(axLetter + \"gap\", dfltGap);\n var domain = coerce(\"domain.\" + axLetter);\n coerce(axLetter + \"side\", dfltSide);\n var out = new Array(len);\n var start = domain[0];\n var step = (domain[1] - start) / (len - dirGap);\n var cellDomain = step * (1 - dirGap);\n for (var i = 0; i < len; i++) {\n var cellStart = start + step * i;\n out[reversed ? len - 1 - i : i] = [cellStart, cellStart + cellDomain];\n }\n return out;\n }\n function contentDefaults(layoutIn, layoutOut) {\n var gridOut = layoutOut.grid;\n if (!gridOut || !gridOut._domains) return;\n var gridIn = layoutIn.grid || {};\n var subplots = layoutOut._subplots;\n var hasSubplotGrid = gridOut._hasSubplotGrid;\n var rows = gridOut.rows;\n var columns = gridOut.columns;\n var useDefaultSubplots = gridOut.pattern === \"independent\";\n var i, j, xId, yId, subplotId, subplotsOut, yPos;\n var axisMap = gridOut._axisMap = {};\n if (hasSubplotGrid) {\n var subplotsIn = gridIn.subplots || [];\n subplotsOut = gridOut.subplots = new Array(rows);\n var index = 1;\n for (i = 0; i < rows; i++) {\n var rowOut = subplotsOut[i] = new Array(columns);\n var rowIn = subplotsIn[i] || [];\n for (j = 0; j < columns; j++) {\n if (useDefaultSubplots) {\n subplotId = index === 1 ? \"xy\" : \"x\" + index + \"y\" + index;\n index++;\n } else subplotId = rowIn[j];\n rowOut[j] = \"\";\n if (subplots.cartesian.indexOf(subplotId) !== -1) {\n yPos = subplotId.indexOf(\"y\");\n xId = subplotId.slice(0, yPos);\n yId = subplotId.slice(yPos);\n if (axisMap[xId] !== void 0 && axisMap[xId] !== j || axisMap[yId] !== void 0 && axisMap[yId] !== i) {\n continue;\n }\n rowOut[j] = subplotId;\n axisMap[xId] = j;\n axisMap[yId] = i;\n }\n }\n }\n } else {\n var xAxes = getAxes(layoutOut, gridIn, \"x\");\n var yAxes = getAxes(layoutOut, gridIn, \"y\");\n gridOut.xaxes = fillGridAxes(xAxes, subplots.xaxis, columns, axisMap, \"x\");\n gridOut.yaxes = fillGridAxes(yAxes, subplots.yaxis, rows, axisMap, \"y\");\n }\n var anchors = gridOut._anchors = {};\n var reversed = gridOut.roworder === \"top to bottom\";\n for (var axisId in axisMap) {\n var axLetter = axisId.charAt(0);\n var side = gridOut[axLetter + \"side\"];\n var i0, inc, iFinal;\n if (side.length < 8) {\n anchors[axisId] = \"free\";\n } else if (axLetter === \"x\") {\n if (side.charAt(0) === \"t\" === reversed) {\n i0 = 0;\n inc = 1;\n iFinal = rows;\n } else {\n i0 = rows - 1;\n inc = -1;\n iFinal = -1;\n }\n if (hasSubplotGrid) {\n var column = axisMap[axisId];\n for (i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[i][column];\n if (!subplotId) continue;\n yPos = subplotId.indexOf(\"y\");\n if (subplotId.slice(0, yPos) === axisId) {\n anchors[axisId] = subplotId.slice(yPos);\n break;\n }\n }\n } else {\n for (i = i0; i !== iFinal; i += inc) {\n yId = gridOut.yaxes[i];\n if (subplots.cartesian.indexOf(axisId + yId) !== -1) {\n anchors[axisId] = yId;\n break;\n }\n }\n }\n } else {\n if (side.charAt(0) === \"l\") {\n i0 = 0;\n inc = 1;\n iFinal = columns;\n } else {\n i0 = columns - 1;\n inc = -1;\n iFinal = -1;\n }\n if (hasSubplotGrid) {\n var row = axisMap[axisId];\n for (i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[row][i];\n if (!subplotId) continue;\n yPos = subplotId.indexOf(\"y\");\n if (subplotId.slice(yPos) === axisId) {\n anchors[axisId] = subplotId.slice(0, yPos);\n break;\n }\n }\n } else {\n for (i = i0; i !== iFinal; i += inc) {\n xId = gridOut.xaxes[i];\n if (subplots.cartesian.indexOf(xId + axisId) !== -1) {\n anchors[axisId] = xId;\n break;\n }\n }\n }\n }\n }\n }\n function fillGridAxes(axesIn, axesAllowed, len, axisMap, axLetter) {\n var out = new Array(len);\n var i;\n function fillOneAxis(i2, axisId) {\n if (axesAllowed.indexOf(axisId) !== -1 && axisMap[axisId] === void 0) {\n out[i2] = axisId;\n axisMap[axisId] = i2;\n } else out[i2] = \"\";\n }\n if (Array.isArray(axesIn)) {\n for (i = 0; i < len; i++) {\n fillOneAxis(i, axesIn[i]);\n }\n } else {\n fillOneAxis(0, axLetter);\n for (i = 1; i < len; i++) {\n fillOneAxis(i, axLetter + (i + 1));\n }\n }\n return out;\n }\n module.exports = {\n moduleType: \"component\",\n name: \"grid\",\n schema: {\n layout: { grid: gridAttrs }\n },\n layoutAttributes: gridAttrs,\n sizeDefaults,\n contentDefaults\n };\n }\n });\n\n // src/components/errorbars/attributes.js\n var require_attributes22 = __commonJS({\n \"src/components/errorbars/attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n visible: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n type: {\n valType: \"enumerated\",\n values: [\"percent\", \"constant\", \"sqrt\", \"data\"],\n editType: \"calc\"\n },\n symmetric: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n array: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n arrayminus: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n value: {\n valType: \"number\",\n min: 0,\n dflt: 10,\n editType: \"calc\"\n },\n valueminus: {\n valType: \"number\",\n min: 0,\n dflt: 10,\n editType: \"calc\"\n },\n traceref: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"style\"\n },\n tracerefminus: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"style\"\n },\n copy_ystyle: {\n valType: \"boolean\",\n editType: \"plot\"\n },\n copy_zstyle: {\n valType: \"boolean\",\n editType: \"style\"\n },\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n thickness: {\n valType: \"number\",\n min: 0,\n dflt: 2,\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/components/errorbars/defaults.js\n var require_defaults18 = __commonJS({\n \"src/components/errorbars/defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Registry = require_registry();\n var Lib = require_lib();\n var Template = require_plot_template();\n var attributes = require_attributes22();\n module.exports = function(traceIn, traceOut, defaultColor, opts) {\n var objName = \"error_\" + opts.axis;\n var containerOut = Template.newContainer(traceOut, objName);\n var containerIn = traceIn[objName] || {};\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n var hasErrorBars = containerIn.array !== void 0 || containerIn.value !== void 0 || containerIn.type === \"sqrt\";\n var visible = coerce(\"visible\", hasErrorBars);\n if (visible === false) return;\n var type = coerce(\"type\", \"array\" in containerIn ? \"data\" : \"percent\");\n var symmetric = true;\n if (type !== \"sqrt\") {\n symmetric = coerce(\n \"symmetric\",\n !((type === \"data\" ? \"arrayminus\" : \"valueminus\") in containerIn)\n );\n }\n if (type === \"data\") {\n coerce(\"array\");\n coerce(\"traceref\");\n if (!symmetric) {\n coerce(\"arrayminus\");\n coerce(\"tracerefminus\");\n }\n } else if (type === \"percent\" || type === \"constant\") {\n coerce(\"value\");\n if (!symmetric) coerce(\"valueminus\");\n }\n var copyAttr = \"copy_\" + opts.inherit + \"style\";\n if (opts.inherit) {\n var inheritObj = traceOut[\"error_\" + opts.inherit];\n if ((inheritObj || {}).visible) {\n coerce(copyAttr, !(containerIn.color || isNumeric(containerIn.thickness) || isNumeric(containerIn.width)));\n }\n }\n if (!opts.inherit || !containerOut[copyAttr]) {\n coerce(\"color\", defaultColor);\n coerce(\"thickness\");\n coerce(\"width\", Registry.traceIs(traceOut, \"gl3d\") ? 0 : 4);\n }\n };\n }\n });\n\n // src/components/errorbars/compute_error.js\n var require_compute_error = __commonJS({\n \"src/components/errorbars/compute_error.js\"(exports, module) {\n \"use strict\";\n module.exports = function makeComputeError(opts) {\n var type = opts.type;\n var symmetric = opts.symmetric;\n if (type === \"data\") {\n var array = opts.array || [];\n if (symmetric) {\n return function computeError(dataPt, index) {\n var val = +array[index];\n return [val, val];\n };\n } else {\n var arrayminus = opts.arrayminus || [];\n return function computeError(dataPt, index) {\n var val = +array[index];\n var valMinus = +arrayminus[index];\n if (!isNaN(val) || !isNaN(valMinus)) {\n return [valMinus || 0, val || 0];\n }\n return [NaN, NaN];\n };\n }\n } else {\n var computeErrorValue = makeComputeErrorValue(type, opts.value);\n var computeErrorValueMinus = makeComputeErrorValue(type, opts.valueminus);\n if (symmetric || opts.valueminus === void 0) {\n return function computeError(dataPt) {\n var val = computeErrorValue(dataPt);\n return [val, val];\n };\n } else {\n return function computeError(dataPt) {\n return [\n computeErrorValueMinus(dataPt),\n computeErrorValue(dataPt)\n ];\n };\n }\n }\n };\n function makeComputeErrorValue(type, value) {\n if (type === \"percent\") {\n return function(dataPt) {\n return Math.abs(dataPt * value / 100);\n };\n }\n if (type === \"constant\") {\n return function() {\n return Math.abs(value);\n };\n }\n if (type === \"sqrt\") {\n return function(dataPt) {\n return Math.sqrt(Math.abs(dataPt));\n };\n }\n }\n }\n });\n\n // src/components/errorbars/calc.js\n var require_calc4 = __commonJS({\n \"src/components/errorbars/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Registry = require_registry();\n var Axes = require_axes();\n var Lib = require_lib();\n var makeComputeError = require_compute_error();\n module.exports = function calc(gd) {\n var calcdata = gd.calcdata;\n for (var i = 0; i < calcdata.length; i++) {\n var calcTrace = calcdata[i];\n var trace = calcTrace[0].trace;\n if (trace.visible === true && Registry.traceIs(trace, \"errorBarsOK\")) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n calcOneAxis(calcTrace, trace, xa, \"x\");\n calcOneAxis(calcTrace, trace, ya, \"y\");\n }\n }\n };\n function calcOneAxis(calcTrace, trace, axis, coord) {\n var opts = trace[\"error_\" + coord] || {};\n var isVisible = opts.visible && [\"linear\", \"log\"].indexOf(axis.type) !== -1;\n var vals = [];\n if (!isVisible) return;\n var computeError = makeComputeError(opts);\n for (var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var iIn = calcPt.i;\n if (iIn === void 0) iIn = i;\n else if (iIn === null) continue;\n var calcCoord = calcPt[coord];\n if (!isNumeric(axis.c2l(calcCoord))) continue;\n var errors = computeError(calcCoord, iIn);\n if (isNumeric(errors[0]) && isNumeric(errors[1])) {\n var shoe = calcPt[coord + \"s\"] = calcCoord - errors[0];\n var hat = calcPt[coord + \"h\"] = calcCoord + errors[1];\n vals.push(shoe, hat);\n }\n }\n var axId = axis._id;\n var baseExtremes = trace._extremes[axId];\n var extremes = Axes.findExtremes(\n axis,\n vals,\n Lib.extendFlat({ tozero: baseExtremes.opts.tozero }, { padded: true })\n );\n baseExtremes.min = baseExtremes.min.concat(extremes.min);\n baseExtremes.max = baseExtremes.max.concat(extremes.max);\n }\n }\n });\n\n // src/components/errorbars/plot.js\n var require_plot2 = __commonJS({\n \"src/components/errorbars/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Drawing = require_drawing();\n var subTypes = require_subtypes();\n module.exports = function plot(gd, traces, plotinfo, transitionOpts) {\n var isNew;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var hasAnimation = transitionOpts && transitionOpts.duration > 0;\n var isStatic = gd._context.staticPlot;\n traces.each(function(d) {\n var trace = d[0].trace;\n var xObj = trace.error_x || {};\n var yObj = trace.error_y || {};\n var keyFunc;\n if (trace.ids) {\n keyFunc = function(d2) {\n return d2.id;\n };\n }\n var sparse = subTypes.hasMarkers(trace) && trace.marker.maxdisplayed > 0;\n if (!yObj.visible && !xObj.visible) d = [];\n var errorbars = d3.select(this).selectAll(\"g.errorbar\").data(d, keyFunc);\n errorbars.exit().remove();\n if (!d.length) return;\n if (!xObj.visible) errorbars.selectAll(\"path.xerror\").remove();\n if (!yObj.visible) errorbars.selectAll(\"path.yerror\").remove();\n errorbars.style(\"opacity\", 1);\n var enter = errorbars.enter().append(\"g\").classed(\"errorbar\", true);\n if (hasAnimation) {\n enter.style(\"opacity\", 0).transition().duration(transitionOpts.duration).style(\"opacity\", 1);\n }\n Drawing.setClipUrl(errorbars, plotinfo.layerClipId, gd);\n errorbars.each(function(d2) {\n var errorbar = d3.select(this);\n var coords = errorCoords(d2, xa, ya);\n if (sparse && !d2.vis) return;\n var path;\n var yerror = errorbar.select(\"path.yerror\");\n if (yObj.visible && isNumeric(coords.x) && isNumeric(coords.yh) && isNumeric(coords.ys)) {\n var yw = yObj.width;\n path = \"M\" + (coords.x - yw) + \",\" + coords.yh + \"h\" + 2 * yw + // hat\n \"m-\" + yw + \",0V\" + coords.ys;\n if (!coords.noYS) path += \"m-\" + yw + \",0h\" + 2 * yw;\n isNew = !yerror.size();\n if (isNew) {\n yerror = errorbar.append(\"path\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").classed(\"yerror\", true);\n } else if (hasAnimation) {\n yerror = yerror.transition().duration(transitionOpts.duration).ease(transitionOpts.easing);\n }\n yerror.attr(\"d\", path);\n } else yerror.remove();\n var xerror = errorbar.select(\"path.xerror\");\n if (xObj.visible && isNumeric(coords.y) && isNumeric(coords.xh) && isNumeric(coords.xs)) {\n var xw = (xObj.copy_ystyle ? yObj : xObj).width;\n path = \"M\" + coords.xh + \",\" + (coords.y - xw) + \"v\" + 2 * xw + // hat\n \"m0,-\" + xw + \"H\" + coords.xs;\n if (!coords.noXS) path += \"m0,-\" + xw + \"v\" + 2 * xw;\n isNew = !xerror.size();\n if (isNew) {\n xerror = errorbar.append(\"path\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").classed(\"xerror\", true);\n } else if (hasAnimation) {\n xerror = xerror.transition().duration(transitionOpts.duration).ease(transitionOpts.easing);\n }\n xerror.attr(\"d\", path);\n } else xerror.remove();\n });\n });\n };\n function errorCoords(d, xa, ya) {\n var out = {\n x: xa.c2p(d.x),\n y: ya.c2p(d.y)\n };\n if (d.yh !== void 0) {\n out.yh = ya.c2p(d.yh);\n out.ys = ya.c2p(d.ys);\n if (!isNumeric(out.ys)) {\n out.noYS = true;\n out.ys = ya.c2p(d.ys, true);\n }\n }\n if (d.xh !== void 0) {\n out.xh = xa.c2p(d.xh);\n out.xs = xa.c2p(d.xs);\n if (!isNumeric(out.xs)) {\n out.noXS = true;\n out.xs = xa.c2p(d.xs, true);\n }\n }\n return out;\n }\n }\n });\n\n // src/components/errorbars/style.js\n var require_style3 = __commonJS({\n \"src/components/errorbars/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n module.exports = function style(traces) {\n traces.each(function(d) {\n var trace = d[0].trace;\n var yObj = trace.error_y || {};\n var xObj = trace.error_x || {};\n var s = d3.select(this);\n s.selectAll(\"path.yerror\").style(\"stroke-width\", yObj.thickness + \"px\").call(Color2.stroke, yObj.color);\n if (xObj.copy_ystyle) xObj = yObj;\n s.selectAll(\"path.xerror\").style(\"stroke-width\", xObj.thickness + \"px\").call(Color2.stroke, xObj.color);\n });\n };\n }\n });\n\n // src/components/errorbars/index.js\n var require_errorbars = __commonJS({\n \"src/components/errorbars/index.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var overrideAll = require_edit_types().overrideAll;\n var attributes = require_attributes22();\n var xyAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes)\n };\n delete xyAttrs.error_x.copy_zstyle;\n delete xyAttrs.error_y.copy_zstyle;\n delete xyAttrs.error_y.copy_ystyle;\n var xyzAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes),\n error_z: Lib.extendFlat({}, attributes)\n };\n delete xyzAttrs.error_x.copy_ystyle;\n delete xyzAttrs.error_y.copy_ystyle;\n delete xyzAttrs.error_z.copy_ystyle;\n delete xyzAttrs.error_z.copy_zstyle;\n module.exports = {\n moduleType: \"component\",\n name: \"errorbars\",\n schema: {\n traces: {\n scatter: xyAttrs,\n bar: xyAttrs,\n histogram: xyAttrs,\n scatter3d: overrideAll(xyzAttrs, \"calc\", \"nested\"),\n scattergl: overrideAll(xyAttrs, \"calc\", \"nested\")\n }\n },\n supplyDefaults: require_defaults18(),\n calc: require_calc4(),\n makeComputeError: require_compute_error(),\n plot: require_plot2(),\n style: require_style3(),\n hoverInfo\n };\n function hoverInfo(calcPoint, trace, hoverPoint) {\n if ((trace.error_y || {}).visible) {\n hoverPoint.yerr = calcPoint.yh - calcPoint.y;\n if (!trace.error_y.symmetric) hoverPoint.yerrneg = calcPoint.y - calcPoint.ys;\n }\n if ((trace.error_x || {}).visible) {\n hoverPoint.xerr = calcPoint.xh - calcPoint.x;\n if (!trace.error_x.symmetric) hoverPoint.xerrneg = calcPoint.x - calcPoint.xs;\n }\n }\n }\n });\n\n // src/components/colorbar/constants.js\n var require_constants13 = __commonJS({\n \"src/components/colorbar/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n cn: {\n colorbar: \"colorbar\",\n cbbg: \"cbbg\",\n cbfill: \"cbfill\",\n cbfills: \"cbfills\",\n cbline: \"cbline\",\n cblines: \"cblines\",\n cbaxis: \"cbaxis\",\n cbtitleunshift: \"cbtitleunshift\",\n cbtitle: \"cbtitle\",\n cboutline: \"cboutline\",\n crisp: \"crisp\",\n jsPlaceholder: \"js-placeholder\"\n }\n };\n }\n });\n\n // src/components/colorbar/draw.js\n var require_draw11 = __commonJS({\n \"src/components/colorbar/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var Plots = require_plots();\n var Registry = require_registry();\n var Axes = require_axes();\n var dragElement = require_dragelement();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var extendFlat = require_extend().extendFlat;\n var setCursor = require_setcursor();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var Titles = require_titles();\n var svgTextUtils = require_svg_text_utils();\n var flipScale = require_helpers().flipScale;\n var handleAxisDefaults = require_axis_defaults();\n var handleAxisPositionDefaults = require_position_defaults();\n var axisLayoutAttrs = require_layout_attributes4();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var FROM_TL = alignmentConstants.FROM_TL;\n var FROM_BR = alignmentConstants.FROM_BR;\n var cn = require_constants13().cn;\n function draw(gd) {\n var fullLayout = gd._fullLayout;\n var colorBars = fullLayout._infolayer.selectAll(\"g.\" + cn.colorbar).data(makeColorBarData(gd), function(opts) {\n return opts._id;\n });\n colorBars.enter().append(\"g\").attr(\"class\", function(opts) {\n return opts._id;\n }).classed(cn.colorbar, true);\n colorBars.each(function(opts) {\n var g = d3.select(this);\n Lib.ensureSingle(g, \"rect\", cn.cbbg);\n Lib.ensureSingle(g, \"g\", cn.cbfills);\n Lib.ensureSingle(g, \"g\", cn.cblines);\n Lib.ensureSingle(g, \"g\", cn.cbaxis, function(s) {\n s.classed(cn.crisp, true);\n });\n Lib.ensureSingle(g, \"g\", cn.cbtitleunshift, function(s) {\n s.append(\"g\").classed(cn.cbtitle, true);\n });\n Lib.ensureSingle(g, \"rect\", cn.cboutline);\n var done = drawColorBar(g, opts, gd);\n if (done && done.then) (gd._promises || []).push(done);\n if (gd._context.edits.colorbarPosition) {\n makeEditable(g, opts, gd);\n }\n });\n colorBars.exit().each(function(opts) {\n Plots.autoMargin(gd, opts._id);\n }).remove();\n colorBars.order();\n }\n function makeColorBarData(gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var out = [];\n var opts;\n var cont;\n var trace;\n var cbOpt;\n function initOpts(opts2) {\n return extendFlat(opts2, {\n // fillcolor can be a d3 scale, domain is z values, range is colors\n // or leave it out for no fill,\n // or set to a string constant for single-color fill\n _fillcolor: null,\n // line.color has the same options as fillcolor\n _line: { color: null, width: null, dash: null },\n // levels of lines to draw.\n // note that this DOES NOT determine the extent of the bar\n // that's given by the domain of fillcolor\n // (or line.color if no fillcolor domain)\n _levels: { start: null, end: null, size: null },\n // separate fill levels (for example, heatmap coloring of a\n // contour map) if this is omitted, fillcolors will be\n // evaluated halfway between levels\n _filllevels: null,\n // for continuous colorscales: fill with a gradient instead of explicit levels\n // value should be the colorscale [[0, c0], [v1, c1], ..., [1, cEnd]]\n _fillgradient: null,\n // when using a gradient, we need the data range specified separately\n _zrange: null\n });\n }\n function calcOpts() {\n if (typeof cbOpt.calc === \"function\") {\n cbOpt.calc(gd, trace, opts);\n } else {\n opts._fillgradient = cont.reversescale ? flipScale(cont.colorscale) : cont.colorscale;\n opts._zrange = [cont[cbOpt.min], cont[cbOpt.max]];\n }\n }\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n trace = cd[0].trace;\n if (!trace._module) continue;\n var moduleOpts = trace._module.colorbar;\n if (trace.visible === true && moduleOpts) {\n var allowsMultiplotCbs = Array.isArray(moduleOpts);\n var cbOpts = allowsMultiplotCbs ? moduleOpts : [moduleOpts];\n for (var j = 0; j < cbOpts.length; j++) {\n cbOpt = cbOpts[j];\n var contName = cbOpt.container;\n cont = contName ? trace[contName] : trace;\n if (cont && cont.showscale) {\n opts = initOpts(cont.colorbar);\n opts._id = \"cb\" + trace.uid + (allowsMultiplotCbs && contName ? \"-\" + contName : \"\");\n opts._traceIndex = trace.index;\n opts._propPrefix = (contName ? contName + \".\" : \"\") + \"colorbar.\";\n opts._meta = trace._meta;\n calcOpts();\n out.push(opts);\n }\n }\n }\n }\n for (var k in fullLayout._colorAxes) {\n cont = fullLayout[k];\n if (cont.showscale) {\n var colorAxOpts = fullLayout._colorAxes[k];\n opts = initOpts(cont.colorbar);\n opts._id = \"cb\" + k;\n opts._propPrefix = k + \".colorbar.\";\n opts._meta = fullLayout._meta;\n cbOpt = { min: \"cmin\", max: \"cmax\" };\n if (colorAxOpts[0] !== \"heatmap\") {\n trace = colorAxOpts[1];\n cbOpt.calc = trace._module.colorbar.calc;\n }\n calcOpts();\n out.push(opts);\n }\n }\n return out;\n }\n function drawColorBar(g, opts, gd) {\n var isVertical = opts.orientation === \"v\";\n var len = opts.len;\n var lenmode = opts.lenmode;\n var thickness = opts.thickness;\n var thicknessmode = opts.thicknessmode;\n var outlinewidth = opts.outlinewidth;\n var borderwidth = opts.borderwidth;\n var bgcolor = opts.bgcolor;\n var xanchor = opts.xanchor;\n var yanchor = opts.yanchor;\n var xpad = opts.xpad;\n var ypad = opts.ypad;\n var optsX = opts.x;\n var optsY = isVertical ? opts.y : 1 - opts.y;\n var isPaperY = opts.yref === \"paper\";\n var isPaperX = opts.xref === \"paper\";\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var fillColor = opts._fillcolor;\n var line = opts._line;\n var title = opts.title;\n var titleSide = title.side;\n var zrange = opts._zrange || d3.extent((typeof fillColor === \"function\" ? fillColor : line.color).domain());\n var lineColormap = typeof line.color === \"function\" ? line.color : function() {\n return line.color;\n };\n var fillColormap = typeof fillColor === \"function\" ? fillColor : function() {\n return fillColor;\n };\n var levelsIn = opts._levels;\n var levelsOut = calcLevels(gd, opts, zrange);\n var fillLevels = levelsOut.fill;\n var lineLevels = levelsOut.line;\n var thickPx = Math.round(thickness * (thicknessmode === \"fraction\" ? isVertical ? gs.w : gs.h : 1));\n var thickFrac = thickPx / (isVertical ? gs.w : gs.h);\n var lenPx = Math.round(len * (lenmode === \"fraction\" ? isVertical ? gs.h : gs.w : 1));\n var lenFrac = lenPx / (isVertical ? gs.h : gs.w);\n var posW = isPaperX ? gs.w : gd._fullLayout.width;\n var posH = isPaperY ? gs.h : gd._fullLayout.height;\n var uPx = Math.round(\n isVertical ? optsX * posW + xpad : optsY * posH + ypad\n );\n var xRatio = { center: 0.5, right: 1 }[xanchor] || 0;\n var yRatio = { top: 1, middle: 0.5 }[yanchor] || 0;\n var uFrac = isVertical ? optsX - xRatio * thickFrac : optsY - yRatio * thickFrac;\n var vFrac = isVertical ? optsY - yRatio * lenFrac : optsX - xRatio * lenFrac;\n var vPx = Math.round(\n isVertical ? posH * (1 - vFrac) : posW * vFrac\n );\n opts._lenFrac = lenFrac;\n opts._thickFrac = thickFrac;\n opts._uFrac = uFrac;\n opts._vFrac = vFrac;\n var ax = opts._axis = mockColorBarAxis(gd, opts, zrange);\n ax.position = thickFrac + (isVertical ? optsX + xpad / gs.w : optsY + ypad / gs.h);\n var topOrBottom = [\"top\", \"bottom\"].indexOf(titleSide) !== -1;\n if (isVertical && topOrBottom) {\n ax.title.side = titleSide;\n ax.titlex = optsX + xpad / gs.w;\n ax.titley = vFrac + (title.side === \"top\" ? lenFrac - ypad / gs.h : ypad / gs.h);\n }\n if (!isVertical && !topOrBottom) {\n ax.title.side = titleSide;\n ax.titley = optsY + ypad / gs.h;\n ax.titlex = vFrac + xpad / gs.w;\n }\n if (line.color && opts.tickmode === \"auto\") {\n ax.tickmode = \"linear\";\n ax.tick0 = levelsIn.start;\n var dtick = levelsIn.size;\n var autoNtick = Lib.constrain(lenPx / 50, 4, 15) + 1;\n var dtFactor = (zrange[1] - zrange[0]) / ((opts.nticks || autoNtick) * dtick);\n if (dtFactor > 1) {\n var dtexp = Math.pow(10, Math.floor(Math.log(dtFactor) / Math.LN10));\n dtick *= dtexp * Lib.roundUp(dtFactor / dtexp, [2, 5, 10]);\n if ((Math.abs(levelsIn.start) / levelsIn.size + 1e-6) % 1 < 2e-6) {\n ax.tick0 = 0;\n }\n }\n ax.dtick = dtick;\n }\n ax.domain = isVertical ? [\n vFrac + ypad / gs.h,\n vFrac + lenFrac - ypad / gs.h\n ] : [\n vFrac + xpad / gs.w,\n vFrac + lenFrac - xpad / gs.w\n ];\n ax.setScale();\n g.attr(\"transform\", strTranslate(Math.round(gs.l), Math.round(gs.t)));\n var titleCont = g.select(\".\" + cn.cbtitleunshift).attr(\"transform\", strTranslate(-Math.round(gs.l), -Math.round(gs.t)));\n var ticklabelposition = ax.ticklabelposition;\n var titleFontSize = ax.title.font.size;\n var axLayer = g.select(\".\" + cn.cbaxis);\n var titleEl;\n var titleHeight = 0;\n var titleWidth = 0;\n function drawTitle(titleClass, titleOpts) {\n var dfltTitleOpts = {\n propContainer: ax,\n propName: opts._propPrefix + \"title\",\n traceIndex: opts._traceIndex,\n _meta: opts._meta,\n placeholder: fullLayout._dfltTitle.colorbar,\n containerGroup: g.select(\".\" + cn.cbtitle)\n };\n var otherClass = titleClass.charAt(0) === \"h\" ? titleClass.substr(1) : \"h\" + titleClass;\n g.selectAll(\".\" + otherClass + \",.\" + otherClass + \"-math-group\").remove();\n Titles.draw(gd, titleClass, extendFlat(dfltTitleOpts, titleOpts || {}));\n }\n function drawDummyTitle() {\n if (isVertical && topOrBottom || !isVertical && !topOrBottom) {\n var x, y;\n if (titleSide === \"top\") {\n x = xpad + gs.l + posW * optsX;\n y = ypad + gs.t + posH * (1 - vFrac - lenFrac) + 3 + titleFontSize * 0.75;\n }\n if (titleSide === \"bottom\") {\n x = xpad + gs.l + posW * optsX;\n y = ypad + gs.t + posH * (1 - vFrac) - 3 - titleFontSize * 0.25;\n }\n if (titleSide === \"right\") {\n y = ypad + gs.t + posH * optsY + 3 + titleFontSize * 0.75;\n x = xpad + gs.l + posW * vFrac;\n }\n drawTitle(ax._id + \"title\", {\n attributes: { x, y, \"text-anchor\": isVertical ? \"start\" : \"middle\" }\n });\n }\n }\n function drawCbTitle() {\n if (isVertical && !topOrBottom || !isVertical && topOrBottom) {\n var pos = ax.position || 0;\n var mid = ax._offset + ax._length / 2;\n var x, y;\n if (titleSide === \"right\") {\n y = mid;\n x = gs.l + posW * pos + 10 + titleFontSize * (ax.showticklabels ? 1 : 0.5);\n } else {\n x = mid;\n if (titleSide === \"bottom\") {\n y = gs.t + posH * pos + 10 + (ticklabelposition.indexOf(\"inside\") === -1 ? ax.tickfont.size : 0) + (ax.ticks !== \"intside\" ? opts.ticklen || 0 : 0);\n }\n if (titleSide === \"top\") {\n var nlines = title.text.split(\"
\").length;\n y = gs.t + posH * pos + 10 - thickPx - LINE_SPACING * titleFontSize * nlines;\n }\n }\n drawTitle((isVertical ? (\n // the 'h' + is a hack to get around the fact that\n // convertToTspans rotates any 'y...' class by 90 degrees.\n // TODO: find a better way to control this.\n \"h\"\n ) : \"v\") + ax._id + \"title\", {\n avoid: {\n selection: d3.select(gd).selectAll(\"g.\" + ax._id + \"tick\"),\n side: titleSide,\n offsetTop: isVertical ? 0 : gs.t,\n offsetLeft: isVertical ? gs.l : 0,\n maxShift: isVertical ? fullLayout.width : fullLayout.height\n },\n attributes: { x, y, \"text-anchor\": \"middle\" },\n transform: { rotate: isVertical ? -90 : 0, offset: 0 }\n });\n }\n }\n function drawAxis() {\n if (!isVertical && !topOrBottom || isVertical && topOrBottom) {\n var titleGroup = g.select(\".\" + cn.cbtitle);\n var titleText = titleGroup.select(\"text\");\n var titleTrans = [-outlinewidth / 2, outlinewidth / 2];\n var mathJaxNode = titleGroup.select(\".h\" + ax._id + \"title-math-group\").node();\n var lineSize = 15.6;\n if (titleText.node()) {\n lineSize = parseInt(titleText.node().style.fontSize, 10) * LINE_SPACING;\n }\n var bb;\n if (mathJaxNode) {\n bb = Drawing.bBox(mathJaxNode);\n titleWidth = bb.width;\n titleHeight = bb.height;\n if (titleHeight > lineSize) {\n titleTrans[1] -= (titleHeight - lineSize) / 2;\n }\n } else if (titleText.node() && !titleText.classed(cn.jsPlaceholder)) {\n bb = Drawing.bBox(titleText.node());\n titleWidth = bb.width;\n titleHeight = bb.height;\n }\n if (isVertical) {\n if (titleHeight) {\n titleHeight += 5;\n if (titleSide === \"top\") {\n ax.domain[1] -= titleHeight / gs.h;\n titleTrans[1] *= -1;\n } else {\n ax.domain[0] += titleHeight / gs.h;\n var nlines = svgTextUtils.lineCount(titleText);\n titleTrans[1] += (1 - nlines) * lineSize;\n }\n titleGroup.attr(\"transform\", strTranslate(titleTrans[0], titleTrans[1]));\n ax.setScale();\n }\n } else {\n if (titleWidth) {\n if (titleSide === \"right\") {\n ax.domain[0] += (titleWidth + titleFontSize / 2) / gs.w;\n }\n titleGroup.attr(\"transform\", strTranslate(titleTrans[0], titleTrans[1]));\n ax.setScale();\n }\n }\n }\n g.selectAll(\".\" + cn.cbfills + \",.\" + cn.cblines).attr(\n \"transform\",\n isVertical ? strTranslate(0, Math.round(gs.h * (1 - ax.domain[1]))) : strTranslate(Math.round(gs.w * ax.domain[0]), 0)\n );\n axLayer.attr(\n \"transform\",\n isVertical ? strTranslate(0, Math.round(-gs.t)) : strTranslate(Math.round(-gs.l), 0)\n );\n var fills = g.select(\".\" + cn.cbfills).selectAll(\"rect.\" + cn.cbfill).attr(\"style\", \"\").data(fillLevels);\n fills.enter().append(\"rect\").classed(cn.cbfill, true).attr(\"style\", \"\");\n fills.exit().remove();\n var zBounds = zrange.map(ax.c2p).map(Math.round).sort(function(a, b) {\n return a - b;\n });\n fills.each(function(d, i) {\n var z = [\n i === 0 ? zrange[0] : (fillLevels[i] + fillLevels[i - 1]) / 2,\n i === fillLevels.length - 1 ? zrange[1] : (fillLevels[i] + fillLevels[i + 1]) / 2\n ].map(ax.c2p).map(Math.round);\n if (isVertical) {\n z[1] = Lib.constrain(z[1] + (z[1] > z[0]) ? 1 : -1, zBounds[0], zBounds[1]);\n }\n var fillEl = d3.select(this).attr(isVertical ? \"x\" : \"y\", uPx).attr(isVertical ? \"y\" : \"x\", d3.min(z)).attr(isVertical ? \"width\" : \"height\", Math.max(thickPx, 2)).attr(isVertical ? \"height\" : \"width\", Math.max(d3.max(z) - d3.min(z), 2));\n if (opts._fillgradient) {\n Drawing.gradient(fillEl, gd, opts._id, isVertical ? \"vertical\" : \"horizontalreversed\", opts._fillgradient, \"fill\");\n } else {\n var colorString = fillColormap(d).replace(\"e-\", \"\");\n fillEl.attr(\"fill\", tinycolor(colorString).toHexString());\n }\n });\n var lines = g.select(\".\" + cn.cblines).selectAll(\"path.\" + cn.cbline).data(line.color && line.width ? lineLevels : []);\n lines.enter().append(\"path\").classed(cn.cbline, true);\n lines.exit().remove();\n lines.each(function(d) {\n var a = uPx;\n var b = Math.round(ax.c2p(d)) + line.width / 2 % 1;\n d3.select(this).attr(\n \"d\",\n \"M\" + (isVertical ? a + \",\" + b : b + \",\" + a) + (isVertical ? \"h\" : \"v\") + thickPx\n ).call(Drawing.lineGroupStyle, line.width, lineColormap(d), line.dash);\n });\n axLayer.selectAll(\"g.\" + ax._id + \"tick,path\").remove();\n var shift = uPx + thickPx + (outlinewidth || 0) / 2 - (opts.ticks === \"outside\" ? 1 : 0);\n var vals = Axes.calcTicks(ax);\n var tickSign = Axes.getTickSigns(ax)[2];\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === \"inside\" ? Axes.clipEnds(ax, vals) : vals,\n layer: axLayer,\n path: Axes.makeTickPath(ax, shift, tickSign),\n transFn: Axes.makeTransTickFn(ax)\n });\n return Axes.drawLabels(gd, ax, {\n vals,\n layer: axLayer,\n transFn: Axes.makeTransTickLabelFn(ax),\n labelFns: Axes.makeLabelFns(ax, shift)\n });\n }\n function positionCB() {\n var bb;\n var innerThickness = thickPx + outlinewidth / 2;\n if (ticklabelposition.indexOf(\"inside\") === -1) {\n bb = Drawing.bBox(axLayer.node());\n innerThickness += isVertical ? bb.width : bb.height;\n }\n titleEl = titleCont.select(\"text\");\n var titleWidth2 = 0;\n var topSideVertical = isVertical && titleSide === \"top\";\n var rightSideHorizontal = !isVertical && titleSide === \"right\";\n var moveY = 0;\n if (titleEl.node() && !titleEl.classed(cn.jsPlaceholder)) {\n var _titleHeight;\n var mathJaxNode = titleCont.select(\".h\" + ax._id + \"title-math-group\").node();\n if (mathJaxNode && (isVertical && topOrBottom || !isVertical && !topOrBottom)) {\n bb = Drawing.bBox(mathJaxNode);\n titleWidth2 = bb.width;\n _titleHeight = bb.height;\n } else {\n bb = Drawing.bBox(titleCont.node());\n titleWidth2 = bb.right - gs.l - (isVertical ? uPx : vPx);\n _titleHeight = bb.bottom - gs.t - (isVertical ? vPx : uPx);\n if (!isVertical && titleSide === \"top\") {\n innerThickness += bb.height;\n moveY = bb.height;\n }\n }\n if (rightSideHorizontal) {\n titleEl.attr(\"transform\", strTranslate(titleWidth2 / 2 + titleFontSize / 2, 0));\n titleWidth2 *= 2;\n }\n innerThickness = Math.max(\n innerThickness,\n isVertical ? titleWidth2 : _titleHeight\n );\n }\n var outerThickness = (isVertical ? xpad : ypad) * 2 + innerThickness + borderwidth + outlinewidth / 2;\n var hColorbarMoveTitle = 0;\n if (!isVertical && title.text && yanchor === \"bottom\" && optsY <= 0) {\n hColorbarMoveTitle = outerThickness / 2;\n outerThickness += hColorbarMoveTitle;\n moveY += hColorbarMoveTitle;\n }\n fullLayout._hColorbarMoveTitle = hColorbarMoveTitle;\n fullLayout._hColorbarMoveCBTitle = moveY;\n var extraW = borderwidth + outlinewidth;\n var lx = (isVertical ? uPx : vPx) - extraW / 2 - (isVertical ? xpad : 0);\n var ly = (isVertical ? vPx : uPx) - (isVertical ? lenPx : ypad + moveY - hColorbarMoveTitle);\n g.select(\".\" + cn.cbbg).attr(\"x\", lx).attr(\"y\", ly).attr(isVertical ? \"width\" : \"height\", Math.max(outerThickness - hColorbarMoveTitle, 2)).attr(isVertical ? \"height\" : \"width\", Math.max(lenPx + extraW, 2)).call(Color2.fill, bgcolor).call(Color2.stroke, opts.bordercolor).style(\"stroke-width\", borderwidth);\n var moveX = rightSideHorizontal ? Math.max(titleWidth2 - 10, 0) : 0;\n g.selectAll(\".\" + cn.cboutline).attr(\"x\", (isVertical ? uPx : vPx + xpad) + moveX).attr(\"y\", (isVertical ? vPx + ypad - lenPx : uPx) + (topSideVertical ? titleHeight : 0)).attr(isVertical ? \"width\" : \"height\", Math.max(thickPx, 2)).attr(isVertical ? \"height\" : \"width\", Math.max(lenPx - (isVertical ? 2 * ypad + titleHeight : 2 * xpad + moveX), 2)).call(Color2.stroke, opts.outlinecolor).style({\n fill: \"none\",\n \"stroke-width\": outlinewidth\n });\n var xShift = isVertical ? xRatio * outerThickness : 0;\n var yShift = isVertical ? 0 : (1 - yRatio) * outerThickness - moveY;\n xShift = isPaperX ? gs.l - xShift : -xShift;\n yShift = isPaperY ? gs.t - yShift : -yShift;\n g.attr(\"transform\", strTranslate(\n xShift,\n yShift\n ));\n if (!isVertical && (borderwidth || tinycolor(bgcolor).getAlpha() && !tinycolor.equals(fullLayout.paper_bgcolor, bgcolor))) {\n var tickLabels = axLayer.selectAll(\"text\");\n var numTicks = tickLabels[0].length;\n var border = g.select(\".\" + cn.cbbg).node();\n var oBb = Drawing.bBox(border);\n var oTr = Drawing.getTranslate(g);\n var TEXTPAD = 2;\n tickLabels.each(function(d, i) {\n var first = 0;\n var last = numTicks - 1;\n if (i === first || i === last) {\n var iBb = Drawing.bBox(this);\n var iTr = Drawing.getTranslate(this);\n var deltaX;\n if (i === last) {\n var iRight = iBb.right + iTr.x;\n var oRight = oBb.right + oTr.x + vPx - borderwidth - TEXTPAD + optsX;\n deltaX = oRight - iRight;\n if (deltaX > 0) deltaX = 0;\n } else if (i === first) {\n var iLeft = iBb.left + iTr.x;\n var oLeft = oBb.left + oTr.x + vPx + borderwidth + TEXTPAD;\n deltaX = oLeft - iLeft;\n if (deltaX < 0) deltaX = 0;\n }\n if (deltaX) {\n if (numTicks < 3) {\n this.setAttribute(\n \"transform\",\n \"translate(\" + deltaX + \",0) \" + this.getAttribute(\"transform\")\n );\n } else {\n this.setAttribute(\"visibility\", \"hidden\");\n }\n }\n }\n });\n }\n var marginOpts = {};\n var lFrac = FROM_TL[xanchor];\n var rFrac = FROM_BR[xanchor];\n var tFrac = FROM_TL[yanchor];\n var bFrac = FROM_BR[yanchor];\n var extraThickness = outerThickness - thickPx;\n if (isVertical) {\n if (lenmode === \"pixels\") {\n marginOpts.y = optsY;\n marginOpts.t = lenPx * tFrac;\n marginOpts.b = lenPx * bFrac;\n } else {\n marginOpts.t = marginOpts.b = 0;\n marginOpts.yt = optsY + len * tFrac;\n marginOpts.yb = optsY - len * bFrac;\n }\n if (thicknessmode === \"pixels\") {\n marginOpts.x = optsX;\n marginOpts.l = outerThickness * lFrac;\n marginOpts.r = outerThickness * rFrac;\n } else {\n marginOpts.l = extraThickness * lFrac;\n marginOpts.r = extraThickness * rFrac;\n marginOpts.xl = optsX - thickness * lFrac;\n marginOpts.xr = optsX + thickness * rFrac;\n }\n } else {\n if (lenmode === \"pixels\") {\n marginOpts.x = optsX;\n marginOpts.l = lenPx * lFrac;\n marginOpts.r = lenPx * rFrac;\n } else {\n marginOpts.l = marginOpts.r = 0;\n marginOpts.xl = optsX + len * lFrac;\n marginOpts.xr = optsX - len * rFrac;\n }\n if (thicknessmode === \"pixels\") {\n marginOpts.y = 1 - optsY;\n marginOpts.t = outerThickness * tFrac;\n marginOpts.b = outerThickness * bFrac;\n } else {\n marginOpts.t = extraThickness * tFrac;\n marginOpts.b = extraThickness * bFrac;\n marginOpts.yt = optsY - thickness * tFrac;\n marginOpts.yb = optsY + thickness * bFrac;\n }\n }\n var sideY = opts.y < 0.5 ? \"b\" : \"t\";\n var sideX = opts.x < 0.5 ? \"l\" : \"r\";\n gd._fullLayout._reservedMargin[opts._id] = {};\n var possibleReservedMargins = {\n r: fullLayout.width - lx - xShift,\n l: lx + marginOpts.r,\n b: fullLayout.height - ly - yShift,\n t: ly + marginOpts.b\n };\n if (isPaperX && isPaperY) {\n Plots.autoMargin(gd, opts._id, marginOpts);\n } else if (isPaperX) {\n gd._fullLayout._reservedMargin[opts._id][sideY] = possibleReservedMargins[sideY];\n } else if (isPaperY) {\n gd._fullLayout._reservedMargin[opts._id][sideX] = possibleReservedMargins[sideX];\n } else {\n if (isVertical) {\n gd._fullLayout._reservedMargin[opts._id][sideX] = possibleReservedMargins[sideX];\n } else {\n gd._fullLayout._reservedMargin[opts._id][sideY] = possibleReservedMargins[sideY];\n }\n }\n }\n return Lib.syncOrAsync([\n Plots.previousPromises,\n drawDummyTitle,\n drawAxis,\n drawCbTitle,\n Plots.previousPromises,\n positionCB\n ], gd);\n }\n function makeEditable(g, opts, gd) {\n var isVertical = opts.orientation === \"v\";\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var t02, xf, yf;\n dragElement.init({\n element: g.node(),\n gd,\n prepFn: function() {\n t02 = g.attr(\"transform\");\n setCursor(g);\n },\n moveFn: function(dx, dy) {\n g.attr(\"transform\", t02 + strTranslate(dx, dy));\n xf = dragElement.align(\n (isVertical ? opts._uFrac : opts._vFrac) + dx / gs.w,\n isVertical ? opts._thickFrac : opts._lenFrac,\n 0,\n 1,\n opts.xanchor\n );\n yf = dragElement.align(\n (isVertical ? opts._vFrac : 1 - opts._uFrac) - dy / gs.h,\n isVertical ? opts._lenFrac : opts._thickFrac,\n 0,\n 1,\n opts.yanchor\n );\n var csr = dragElement.getCursor(xf, yf, opts.xanchor, opts.yanchor);\n setCursor(g, csr);\n },\n doneFn: function() {\n setCursor(g);\n if (xf !== void 0 && yf !== void 0) {\n var update = {};\n update[opts._propPrefix + \"x\"] = xf;\n update[opts._propPrefix + \"y\"] = yf;\n if (opts._traceIndex !== void 0) {\n Registry.call(\"_guiRestyle\", gd, update, opts._traceIndex);\n } else {\n Registry.call(\"_guiRelayout\", gd, update);\n }\n }\n }\n });\n }\n function calcLevels(gd, opts, zrange) {\n var levelsIn = opts._levels;\n var lineLevels = [];\n var fillLevels = [];\n var l;\n var i;\n var l0 = levelsIn.end + levelsIn.size / 100;\n var ls = levelsIn.size;\n var zr0 = 1.001 * zrange[0] - 1e-3 * zrange[1];\n var zr1 = 1.001 * zrange[1] - 1e-3 * zrange[0];\n for (i = 0; i < 1e5; i++) {\n l = levelsIn.start + i * ls;\n if (ls > 0 ? l >= l0 : l <= l0) break;\n if (l > zr0 && l < zr1) lineLevels.push(l);\n }\n if (opts._fillgradient) {\n fillLevels = [0];\n } else if (typeof opts._fillcolor === \"function\") {\n var fillLevelsIn = opts._filllevels;\n if (fillLevelsIn) {\n l0 = fillLevelsIn.end + fillLevelsIn.size / 100;\n ls = fillLevelsIn.size;\n for (i = 0; i < 1e5; i++) {\n l = fillLevelsIn.start + i * ls;\n if (ls > 0 ? l >= l0 : l <= l0) break;\n if (l > zrange[0] && l < zrange[1]) fillLevels.push(l);\n }\n } else {\n fillLevels = lineLevels.map(function(v) {\n return v - levelsIn.size / 2;\n });\n fillLevels.push(fillLevels[fillLevels.length - 1] + levelsIn.size);\n }\n } else if (opts._fillcolor && typeof opts._fillcolor === \"string\") {\n fillLevels = [0];\n }\n if (levelsIn.size < 0) {\n lineLevels.reverse();\n fillLevels.reverse();\n }\n return { line: lineLevels, fill: fillLevels };\n }\n function mockColorBarAxis(gd, opts, zrange) {\n var fullLayout = gd._fullLayout;\n var isVertical = opts.orientation === \"v\";\n var cbAxisIn = {\n type: \"linear\",\n range: zrange,\n tickmode: opts.tickmode,\n nticks: opts.nticks,\n tick0: opts.tick0,\n dtick: opts.dtick,\n tickvals: opts.tickvals,\n ticktext: opts.ticktext,\n ticks: opts.ticks,\n ticklen: opts.ticklen,\n tickwidth: opts.tickwidth,\n tickcolor: opts.tickcolor,\n showticklabels: opts.showticklabels,\n labelalias: opts.labelalias,\n ticklabelposition: opts.ticklabelposition,\n ticklabeloverflow: opts.ticklabeloverflow,\n ticklabelstep: opts.ticklabelstep,\n tickfont: opts.tickfont,\n tickangle: opts.tickangle,\n tickformat: opts.tickformat,\n exponentformat: opts.exponentformat,\n minexponent: opts.minexponent,\n separatethousands: opts.separatethousands,\n showexponent: opts.showexponent,\n showtickprefix: opts.showtickprefix,\n tickprefix: opts.tickprefix,\n showticksuffix: opts.showticksuffix,\n ticksuffix: opts.ticksuffix,\n title: opts.title,\n showline: true,\n anchor: \"free\",\n side: isVertical ? \"right\" : \"bottom\",\n position: 1\n };\n var letter = isVertical ? \"y\" : \"x\";\n var cbAxisOut = {\n type: \"linear\",\n _id: letter + opts._id\n };\n var axisOptions = {\n letter,\n font: fullLayout.font,\n noAutotickangles: letter === \"y\",\n noHover: true,\n noTickson: true,\n noTicklabelmode: true,\n noInsideRange: true,\n calendar: fullLayout.calendar\n // not really necessary (yet?)\n };\n function coerce(attr, dflt) {\n return Lib.coerce(cbAxisIn, cbAxisOut, axisLayoutAttrs, attr, dflt);\n }\n handleAxisDefaults(cbAxisIn, cbAxisOut, coerce, axisOptions, fullLayout);\n handleAxisPositionDefaults(cbAxisIn, cbAxisOut, coerce, axisOptions);\n return cbAxisOut;\n }\n module.exports = {\n draw\n };\n }\n });\n\n // src/components/colorbar/index.js\n var require_colorbar = __commonJS({\n \"src/components/colorbar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"colorbar\",\n attributes: require_attributes7(),\n supplyDefaults: require_defaults(),\n draw: require_draw11().draw,\n hasColorbar: require_has_colorbar()\n };\n }\n });\n\n // src/components/legend/index.js\n var require_legend = __commonJS({\n \"src/components/legend/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"legend\",\n layoutAttributes: require_attributes9(),\n supplyLayoutDefaults: require_defaults3(),\n draw: require_draw(),\n style: require_style()\n };\n }\n });\n\n // src/locale-en.js\n var require_locale_en = __commonJS({\n \"src/locale-en.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"locale\",\n name: \"en\",\n dictionary: {\n \"Click to enter Colorscale title\": \"Click to enter Colourscale title\"\n },\n format: {\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n shortMonths: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n periods: [\"AM\", \"PM\"],\n dateTime: \"%a %b %e %X %Y\",\n date: \"%d/%m/%Y\",\n time: \"%H:%M:%S\",\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n year: \"%Y\",\n month: \"%b %Y\",\n dayMonth: \"%b %-d\",\n dayMonthYear: \"%b %-d, %Y\"\n }\n };\n }\n });\n\n // src/locale-en-us.js\n var require_locale_en_us = __commonJS({\n \"src/locale-en-us.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"locale\",\n name: \"en-US\",\n dictionary: {\n \"Click to enter Colorscale title\": \"Click to enter Colorscale title\"\n },\n format: {\n date: \"%m/%d/%Y\"\n }\n };\n }\n });\n\n // src/snapshot/cloneplot.js\n var require_cloneplot = __commonJS({\n \"src/snapshot/cloneplot.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var extendFlat = Lib.extendFlat;\n var extendDeep = Lib.extendDeep;\n function cloneLayoutOverride(tileClass) {\n var override;\n switch (tileClass) {\n case \"themes__thumb\":\n override = {\n autosize: true,\n width: 150,\n height: 150,\n title: { text: \"\" },\n showlegend: false,\n margin: { l: 5, r: 5, t: 5, b: 5, pad: 0 },\n annotations: []\n };\n break;\n case \"thumbnail\":\n override = {\n title: { text: \"\" },\n hidesources: true,\n showlegend: false,\n borderwidth: 0,\n bordercolor: \"\",\n margin: { l: 1, r: 1, t: 1, b: 1, pad: 0 },\n annotations: []\n };\n break;\n default:\n override = {};\n }\n return override;\n }\n function keyIsAxis(keyName) {\n var types = [\"xaxis\", \"yaxis\", \"zaxis\"];\n return types.indexOf(keyName.slice(0, 5)) > -1;\n }\n module.exports = function clonePlot(graphObj, options) {\n var i;\n var oldData = graphObj.data;\n var oldLayout = graphObj.layout;\n var newData = extendDeep([], oldData);\n var newLayout = extendDeep({}, oldLayout, cloneLayoutOverride(options.tileClass));\n var context = graphObj._context || {};\n if (options.width) newLayout.width = options.width;\n if (options.height) newLayout.height = options.height;\n if (options.tileClass === \"thumbnail\" || options.tileClass === \"themes__thumb\") {\n newLayout.annotations = [];\n var keys = Object.keys(newLayout);\n for (i = 0; i < keys.length; i++) {\n if (keyIsAxis(keys[i])) {\n newLayout[keys[i]].title = { text: \"\" };\n }\n }\n for (i = 0; i < newData.length; i++) {\n var trace = newData[i];\n trace.showscale = false;\n if (trace.marker) trace.marker.showscale = false;\n if (Registry.traceIs(trace, \"pie-like\")) trace.textposition = \"none\";\n }\n }\n if (Array.isArray(options.annotations)) {\n for (i = 0; i < options.annotations.length; i++) {\n newLayout.annotations.push(options.annotations[i]);\n }\n }\n var sceneIds = Object.keys(newLayout).filter(function(key) {\n return key.match(/^scene\\d*$/);\n });\n if (sceneIds.length) {\n var axesImageOverride = {};\n if (options.tileClass === \"thumbnail\") {\n axesImageOverride = {\n title: { text: \"\" },\n showaxeslabels: false,\n showticklabels: false,\n linetickenable: false\n };\n }\n for (i = 0; i < sceneIds.length; i++) {\n var scene = newLayout[sceneIds[i]];\n if (!scene.xaxis) {\n scene.xaxis = {};\n }\n if (!scene.yaxis) {\n scene.yaxis = {};\n }\n if (!scene.zaxis) {\n scene.zaxis = {};\n }\n extendFlat(scene.xaxis, axesImageOverride);\n extendFlat(scene.yaxis, axesImageOverride);\n extendFlat(scene.zaxis, axesImageOverride);\n scene._scene = null;\n }\n }\n var gd = document.createElement(\"div\");\n if (options.tileClass) gd.className = options.tileClass;\n var plotTile = {\n gd,\n td: gd,\n // for external (image server) compatibility\n layout: newLayout,\n data: newData,\n config: {\n staticPlot: options.staticPlot === void 0 ? true : options.staticPlot,\n plotGlPixelRatio: options.plotGlPixelRatio === void 0 ? 2 : options.plotGlPixelRatio,\n displaylogo: options.displaylogo || false,\n showLink: options.showLink || false,\n showTips: options.showTips || false,\n mapboxAccessToken: context.mapboxAccessToken\n }\n };\n if (options.setBackground !== \"transparent\") {\n plotTile.config.setBackground = options.setBackground || \"opaque\";\n }\n plotTile.gd.defaultLayout = cloneLayoutOverride(options.tileClass);\n return plotTile;\n };\n }\n });\n\n // src/snapshot/toimage.js\n var require_toimage = __commonJS({\n \"src/snapshot/toimage.js\"(exports, module) {\n \"use strict\";\n var EventEmitter = require_events().EventEmitter;\n var Registry = require_registry();\n var Lib = require_lib();\n var helpers = require_helpers10();\n var clonePlot = require_cloneplot();\n var toSVG = require_tosvg();\n var svgToImg = require_svgtoimg();\n function toImage(gd, opts) {\n var ev = new EventEmitter();\n var clone = clonePlot(gd, { format: \"png\" });\n var clonedGd = clone.gd;\n clonedGd.style.position = \"absolute\";\n clonedGd.style.left = \"-5000px\";\n document.body.appendChild(clonedGd);\n function wait() {\n var delay = helpers.getDelay(clonedGd._fullLayout);\n setTimeout(function() {\n var svg = toSVG(clonedGd);\n var canvas = document.createElement(\"canvas\");\n canvas.id = Lib.randstr();\n ev = svgToImg({\n format: opts.format,\n width: clonedGd._fullLayout.width,\n height: clonedGd._fullLayout.height,\n canvas,\n emitter: ev,\n svg\n });\n ev.clean = function() {\n if (clonedGd) document.body.removeChild(clonedGd);\n };\n }, delay);\n }\n var redrawFunc = helpers.getRedrawFunc(clonedGd);\n Registry.call(\"_doPlot\", clonedGd, clone.data, clone.layout, clone.config).then(redrawFunc).then(wait).catch(function(err) {\n ev.emit(\"error\", err);\n });\n return ev;\n }\n module.exports = toImage;\n }\n });\n\n // src/snapshot/index.js\n var require_snapshot = __commonJS({\n \"src/snapshot/index.js\"(exports, module) {\n \"use strict\";\n var helpers = require_helpers10();\n var Snapshot = {\n getDelay: helpers.getDelay,\n getRedrawFunc: helpers.getRedrawFunc,\n clone: require_cloneplot(),\n toSVG: require_tosvg(),\n svgToImg: require_svgtoimg(),\n toImage: require_toimage(),\n downloadImage: require_download()\n };\n module.exports = Snapshot;\n }\n });\n\n // src/core.js\n var require_core = __commonJS({\n \"src/core.js\"(exports) {\n \"use strict\";\n exports.version = require_version().version;\n require_npo_src();\n require_plotcss();\n var Registry = require_registry();\n var register = exports.register = Registry.register;\n var plotApi = require_plot_api2();\n var methodNames = Object.keys(plotApi);\n for (i = 0; i < methodNames.length; i++) {\n name2 = methodNames[i];\n if (name2.charAt(0) !== \"_\") exports[name2] = plotApi[name2];\n register({\n moduleType: \"apiMethod\",\n name: name2,\n fn: plotApi[name2]\n });\n }\n var name2;\n var i;\n register(require_scatter());\n register([\n require_annotations(),\n require_annotations3d(),\n require_selections(),\n require_shapes(),\n require_images(),\n require_updatemenus(),\n require_sliders(),\n require_rangeslider(),\n require_rangeselector(),\n require_grid(),\n require_errorbars(),\n require_colorscale(),\n require_colorbar(),\n require_legend(),\n // legend needs to come after shape | legend defaults depends on shapes\n require_fx(),\n // fx needs to come after legend | unified hover defaults depends on legends\n require_modebar2()\n ]);\n register([\n require_locale_en(),\n require_locale_en_us()\n ]);\n if (window.PlotlyLocales && Array.isArray(window.PlotlyLocales)) {\n register(window.PlotlyLocales);\n delete window.PlotlyLocales;\n }\n exports.Icons = require_ploticon();\n var Fx = require_fx();\n var Plots = require_plots();\n exports.Plots = {\n resize: Plots.resize,\n graphJson: Plots.graphJson,\n sendDataToCloud: Plots.sendDataToCloud\n };\n exports.Fx = {\n hover: Fx.hover,\n unhover: Fx.unhover,\n loneHover: Fx.loneHover,\n loneUnhover: Fx.loneUnhover\n };\n exports.Snapshot = require_snapshot();\n exports.PlotSchema = require_plot_schema();\n }\n });\n\n // lib/core.js\n var require_core2 = __commonJS({\n \"lib/core.js\"(exports, module) {\n \"use strict\";\n module.exports = require_core();\n }\n });\n\n // src/traces/bar/constants.js\n var require_constants14 = __commonJS({\n \"src/traces/bar/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // padding in pixels around text\n TEXTPAD: 3,\n // 'value' and 'label' are not really necessary for bar traces,\n // but they were made available to `texttemplate` (maybe by accident)\n // via tokens `%{value}` and `%{label}` starting in 1.50.0,\n // so let's include them in the event data also.\n eventDataKeys: [\"value\", \"label\"]\n };\n }\n });\n\n // src/traces/bar/attributes.js\n var require_attributes23 = __commonJS({\n \"src/traces/bar/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterAttrs = require_attributes12();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var fontAttrs = require_font_attributes();\n var constants = require_constants14();\n var pattern = require_attributes4().pattern;\n var extendFlat = require_extend().extendFlat;\n var textFontAttrs = fontAttrs({\n editType: \"calc\",\n arrayOk: true,\n colorEditType: \"style\"\n });\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n var markerLineWidth = extendFlat(\n {},\n scatterMarkerLineAttrs.width,\n { dflt: 0 }\n );\n var markerLine = extendFlat({\n width: markerLineWidth,\n editType: \"calc\"\n }, colorScaleAttrs(\"marker.line\"));\n var marker = extendFlat({\n line: markerLine,\n editType: \"calc\"\n }, colorScaleAttrs(\"marker\"), {\n opacity: {\n valType: \"number\",\n arrayOk: true,\n dflt: 1,\n min: 0,\n max: 1,\n editType: \"style\"\n },\n pattern,\n cornerradius: {\n valType: \"any\",\n editType: \"calc\"\n }\n });\n module.exports = {\n x: scatterAttrs.x,\n x0: scatterAttrs.x0,\n dx: scatterAttrs.dx,\n y: scatterAttrs.y,\n y0: scatterAttrs.y0,\n dy: scatterAttrs.dy,\n xperiod: scatterAttrs.xperiod,\n yperiod: scatterAttrs.yperiod,\n xperiod0: scatterAttrs.xperiod0,\n yperiod0: scatterAttrs.yperiod0,\n xperiodalignment: scatterAttrs.xperiodalignment,\n yperiodalignment: scatterAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n text: scatterAttrs.text,\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys\n }),\n hovertext: scatterAttrs.hovertext,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n textposition: {\n valType: \"enumerated\",\n values: [\"inside\", \"outside\", \"auto\", \"none\"],\n dflt: \"auto\",\n arrayOk: true,\n editType: \"calc\"\n },\n insidetextanchor: {\n valType: \"enumerated\",\n values: [\"end\", \"middle\", \"start\"],\n dflt: \"end\",\n editType: \"plot\"\n },\n textangle: {\n valType: \"angle\",\n dflt: \"auto\",\n editType: \"plot\"\n },\n textfont: extendFlat({}, textFontAttrs, {}),\n insidetextfont: extendFlat({}, textFontAttrs, {}),\n outsidetextfont: extendFlat({}, textFontAttrs, {}),\n constraintext: {\n valType: \"enumerated\",\n values: [\"inside\", \"outside\", \"both\", \"none\"],\n dflt: \"both\",\n editType: \"calc\"\n },\n cliponaxis: extendFlat({}, scatterAttrs.cliponaxis, {}),\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n editType: \"calc+clearAxisTypes\"\n },\n base: {\n valType: \"any\",\n dflt: null,\n arrayOk: true,\n editType: \"calc\"\n },\n offset: {\n valType: \"number\",\n dflt: null,\n arrayOk: true,\n editType: \"calc\"\n },\n width: {\n valType: \"number\",\n dflt: null,\n min: 0,\n arrayOk: true,\n editType: \"calc\"\n },\n marker,\n offsetgroup: scatterAttrs.offsetgroup,\n alignmentgroup: scatterAttrs.alignmentgroup,\n selected: {\n marker: {\n opacity: scatterAttrs.selected.marker.opacity,\n color: scatterAttrs.selected.marker.color,\n editType: \"style\"\n },\n textfont: scatterAttrs.selected.textfont,\n editType: \"style\"\n },\n unselected: {\n marker: {\n opacity: scatterAttrs.unselected.marker.opacity,\n color: scatterAttrs.unselected.marker.color,\n editType: \"style\"\n },\n textfont: scatterAttrs.unselected.textfont,\n editType: \"style\"\n },\n zorder: scatterAttrs.zorder\n };\n }\n });\n\n // src/traces/bar/layout_attributes.js\n var require_layout_attributes6 = __commonJS({\n \"src/traces/bar/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n barmode: {\n valType: \"enumerated\",\n values: [\"stack\", \"group\", \"overlay\", \"relative\"],\n dflt: \"group\",\n editType: \"calc\"\n },\n barnorm: {\n valType: \"enumerated\",\n values: [\"\", \"fraction\", \"percent\"],\n dflt: \"\",\n editType: \"calc\"\n },\n bargap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n },\n bargroupgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"calc\"\n },\n barcornerradius: {\n valType: \"any\",\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/bar/style_defaults.js\n var require_style_defaults = __commonJS({\n \"src/traces/bar/style_defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n var coercePattern = require_lib().coercePattern;\n module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout) {\n var markerColor = coerce(\"marker.color\", defaultColor);\n var hasMarkerColorscale = hasColorscale(traceIn, \"marker\");\n if (hasMarkerColorscale) {\n colorscaleDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n { prefix: \"marker.\", cLetter: \"c\" }\n );\n }\n coerce(\"marker.line.color\", Color2.defaultLine);\n if (hasColorscale(traceIn, \"marker.line\")) {\n colorscaleDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n { prefix: \"marker.line.\", cLetter: \"c\" }\n );\n }\n coerce(\"marker.line.width\");\n coerce(\"marker.opacity\");\n coercePattern(coerce, \"marker.pattern\", markerColor, hasMarkerColorscale);\n coerce(\"selected.marker.color\");\n coerce(\"unselected.marker.color\");\n };\n }\n });\n\n // src/traces/bar/defaults.js\n var require_defaults19 = __commonJS({\n \"src/traces/bar/defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Color2 = require_color();\n var Registry = require_registry();\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleStyleDefaults = require_style_defaults();\n var handleGroupingDefaults = require_grouping_defaults();\n var attributes = require_attributes23();\n var coerceFont = Lib.coerceFont;\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zorder\");\n coerce(\"orientation\", traceOut.x && !traceOut.y ? \"h\" : \"v\");\n coerce(\"base\");\n coerce(\"offset\");\n coerce(\"width\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: true,\n moduleHasUnselected: true,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n var lineColor = (traceOut.marker.line || {}).color;\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color2.defaultLine, { axis: \"y\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color2.defaultLine, { axis: \"x\", inherit: \"y\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n }\n function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n function coerce(attr, dflt) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr, dflt);\n }\n for (var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n if (traceOut.type === \"bar\") {\n traceIn = traceOut._input;\n var r = coerce(\"marker.cornerradius\", fullLayout.barcornerradius);\n if (traceOut.marker) {\n traceOut.marker.cornerradius = validateCornerradius(r);\n }\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, fullLayout.barmode);\n }\n }\n }\n function validateCornerradius(r) {\n if (isNumeric(r)) {\n r = +r;\n if (r >= 0) return r;\n } else if (typeof r === \"string\") {\n r = r.trim();\n if (r.slice(-1) === \"%\" && isNumeric(r.slice(0, -1))) {\n r = +r.slice(0, -1);\n if (r >= 0) return r + \"%\";\n }\n }\n return void 0;\n }\n function handleText(traceIn, traceOut, layout, coerce, textposition, opts) {\n opts = opts || {};\n var moduleHasSelected = !(opts.moduleHasSelected === false);\n var moduleHasUnselected = !(opts.moduleHasUnselected === false);\n var moduleHasConstrain = !(opts.moduleHasConstrain === false);\n var moduleHasCliponaxis = !(opts.moduleHasCliponaxis === false);\n var moduleHasTextangle = !(opts.moduleHasTextangle === false);\n var moduleHasInsideanchor = !(opts.moduleHasInsideanchor === false);\n var hasPathbar = !!opts.hasPathbar;\n var hasBoth = Array.isArray(textposition) || textposition === \"auto\";\n var hasInside = hasBoth || textposition === \"inside\";\n var hasOutside = hasBoth || textposition === \"outside\";\n if (hasInside || hasOutside) {\n var dfltFont = coerceFont(coerce, \"textfont\", layout.font);\n var insideTextFontDefault = Lib.extendFlat({}, dfltFont);\n var isTraceTextfontColorSet = traceIn.textfont && traceIn.textfont.color;\n var isColorInheritedFromLayoutFont = !isTraceTextfontColorSet;\n if (isColorInheritedFromLayoutFont) {\n delete insideTextFontDefault.color;\n }\n coerceFont(coerce, \"insidetextfont\", insideTextFontDefault);\n if (hasPathbar) {\n var pathbarTextFontDefault = Lib.extendFlat({}, dfltFont);\n if (isColorInheritedFromLayoutFont) {\n delete pathbarTextFontDefault.color;\n }\n coerceFont(coerce, \"pathbar.textfont\", pathbarTextFontDefault);\n }\n if (hasOutside) coerceFont(coerce, \"outsidetextfont\", dfltFont);\n if (moduleHasSelected) coerce(\"selected.textfont.color\");\n if (moduleHasUnselected) coerce(\"unselected.textfont.color\");\n if (moduleHasConstrain) coerce(\"constraintext\");\n if (moduleHasCliponaxis) coerce(\"cliponaxis\");\n if (moduleHasTextangle) coerce(\"textangle\");\n coerce(\"texttemplate\");\n }\n if (hasInside) {\n if (moduleHasInsideanchor) coerce(\"insidetextanchor\");\n }\n }\n module.exports = {\n supplyDefaults,\n crossTraceDefaults,\n handleText,\n validateCornerradius\n };\n }\n });\n\n // src/traces/bar/layout_defaults.js\n var require_layout_defaults5 = __commonJS({\n \"src/traces/bar/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Axes = require_axes();\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes6();\n var validateCornerradius = require_defaults19().validateCornerradius;\n module.exports = function(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n var hasBars = false;\n var shouldBeGapless = false;\n var gappedAnyway = false;\n var usedSubplots = {};\n var mode = coerce(\"barmode\");\n var isGroup = mode === \"group\";\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (Registry.traceIs(trace, \"bar\") && trace.visible) hasBars = true;\n else continue;\n var subploti = trace.xaxis + trace.yaxis;\n if (isGroup) {\n if (usedSubplots[subploti]) gappedAnyway = true;\n usedSubplots[subploti] = true;\n } else {\n subploti += trace._input.offsetgroup;\n if (usedSubplots.length > 0 && !usedSubplots[subploti]) gappedAnyway = true;\n usedSubplots[subploti] = true;\n }\n if (trace.visible && trace.type === \"histogram\") {\n var pa = Axes.getFromId(\n { _fullLayout: layoutOut },\n trace[trace.orientation === \"v\" ? \"xaxis\" : \"yaxis\"]\n );\n if (pa.type !== \"category\") shouldBeGapless = true;\n }\n }\n if (!hasBars) {\n delete layoutOut.barmode;\n return;\n }\n if (mode !== \"overlay\") coerce(\"barnorm\");\n coerce(\"bargap\", shouldBeGapless && !gappedAnyway ? 0 : 0.2);\n coerce(\"bargroupgap\");\n var r = coerce(\"barcornerradius\");\n layoutOut.barcornerradius = validateCornerradius(r);\n };\n }\n });\n\n // src/traces/bar/arrays_to_calcdata.js\n var require_arrays_to_calcdata2 = __commonJS({\n \"src/traces/bar/arrays_to_calcdata.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function arraysToCalcdata(cd, trace) {\n for (var i = 0; i < cd.length; i++) cd[i].i = i;\n Lib.mergeArray(trace.text, cd, \"tx\");\n Lib.mergeArray(trace.hovertext, cd, \"htx\");\n var marker = trace.marker;\n if (marker) {\n Lib.mergeArray(marker.opacity, cd, \"mo\", true);\n Lib.mergeArray(marker.color, cd, \"mc\");\n var markerLine = marker.line;\n if (markerLine) {\n Lib.mergeArray(markerLine.color, cd, \"mlc\");\n Lib.mergeArrayCastPositive(markerLine.width, cd, \"mlw\");\n }\n }\n };\n }\n });\n\n // src/traces/bar/calc.js\n var require_calc5 = __commonJS({\n \"src/traces/bar/calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleCalc = require_calc();\n var arraysToCalcdata = require_arrays_to_calcdata2();\n var calcSelection = require_calc_selection();\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var size, pos, origPos, pObj, hasPeriod, pLetter;\n var sizeOpts = {\n msUTC: !!(trace.base || trace.base === 0)\n };\n if (trace.orientation === \"h\") {\n size = xa.makeCalcdata(trace, \"x\", sizeOpts);\n origPos = ya.makeCalcdata(trace, \"y\");\n pObj = alignPeriod(trace, ya, \"y\", origPos);\n hasPeriod = !!trace.yperiodalignment;\n pLetter = \"y\";\n } else {\n size = ya.makeCalcdata(trace, \"y\", sizeOpts);\n origPos = xa.makeCalcdata(trace, \"x\");\n pObj = alignPeriod(trace, xa, \"x\", origPos);\n hasPeriod = !!trace.xperiodalignment;\n pLetter = \"x\";\n }\n pos = pObj.vals;\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n for (var i = 0; i < serieslen; i++) {\n cd[i] = { p: pos[i], s: size[i] };\n if (hasPeriod) {\n cd[i].orig_p = origPos[i];\n cd[i][pLetter + \"End\"] = pObj.ends[i];\n cd[i][pLetter + \"Start\"] = pObj.starts[i];\n }\n if (trace.ids) {\n cd[i].id = String(trace.ids[i]);\n }\n }\n if (hasColorscale(trace, \"marker\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.marker.color,\n containerStr: \"marker\",\n cLetter: \"c\"\n });\n }\n if (hasColorscale(trace, \"marker.line\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.marker.line.color,\n containerStr: \"marker.line\",\n cLetter: \"c\"\n });\n }\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/bar/uniform_text.js\n var require_uniform_text = __commonJS({\n \"src/traces/bar/uniform_text.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n function resizeText(gd, gTrace, traceType) {\n var fullLayout = gd._fullLayout;\n var minSize = fullLayout[\"_\" + traceType + \"Text_minsize\"];\n if (minSize) {\n var shouldHide = fullLayout.uniformtext.mode === \"hide\";\n var selector;\n switch (traceType) {\n case \"funnelarea\":\n case \"pie\":\n case \"sunburst\":\n selector = \"g.slice\";\n break;\n case \"treemap\":\n case \"icicle\":\n selector = \"g.slice, g.pathbar\";\n break;\n default:\n selector = \"g.points > g.point\";\n }\n gTrace.selectAll(selector).each(function(d) {\n var transform = d.transform;\n if (transform) {\n transform.scale = shouldHide && transform.hide ? 0 : minSize / transform.fontSize;\n var el = d3.select(this).select(\"text\");\n Lib.setTransormAndDisplay(el, transform);\n }\n });\n }\n }\n function recordMinTextSize(traceType, transform, fullLayout) {\n if (fullLayout.uniformtext.mode) {\n var minKey = getMinKey(traceType);\n var minSize = fullLayout.uniformtext.minsize;\n var size = transform.scale * transform.fontSize;\n transform.hide = size < minSize;\n fullLayout[minKey] = fullLayout[minKey] || Infinity;\n if (!transform.hide) {\n fullLayout[minKey] = Math.min(\n fullLayout[minKey],\n Math.max(size, minSize)\n );\n }\n }\n }\n function clearMinTextSize(traceType, fullLayout) {\n var minKey = getMinKey(traceType);\n fullLayout[minKey] = void 0;\n }\n function getMinKey(traceType) {\n return \"_\" + traceType + \"Text_minsize\";\n }\n module.exports = {\n recordMinTextSize,\n clearMinTextSize,\n resizeText\n };\n }\n });\n\n // src/traces/bar/helpers.js\n var require_helpers12 = __commonJS({\n \"src/traces/bar/helpers.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n exports.coerceString = function(attributeDefinition, value, defaultValue) {\n if (typeof value === \"string\") {\n if (value || !attributeDefinition.noBlank) return value;\n } else if (typeof value === \"number\" || value === true) {\n if (!attributeDefinition.strict) return String(value);\n }\n return defaultValue !== void 0 ? defaultValue : attributeDefinition.dflt;\n };\n exports.coerceNumber = function(attributeDefinition, value, defaultValue) {\n if (isNumeric(value)) {\n value = +value;\n var min = attributeDefinition.min;\n var max = attributeDefinition.max;\n var isOutOfBounds = min !== void 0 && value < min || max !== void 0 && value > max;\n if (!isOutOfBounds) return value;\n }\n return defaultValue !== void 0 ? defaultValue : attributeDefinition.dflt;\n };\n exports.coerceColor = function(attributeDefinition, value, defaultValue) {\n if (tinycolor(value).isValid()) return value;\n return defaultValue !== void 0 ? defaultValue : attributeDefinition.dflt;\n };\n exports.coerceEnumerated = function(attributeDefinition, value, defaultValue) {\n if (attributeDefinition.coerceNumber) value = +value;\n if (attributeDefinition.values.indexOf(value) !== -1) return value;\n return defaultValue !== void 0 ? defaultValue : attributeDefinition.dflt;\n };\n exports.getValue = function(arrayOrScalar, index) {\n var value;\n if (!isArrayOrTypedArray(arrayOrScalar)) value = arrayOrScalar;\n else if (index < arrayOrScalar.length) value = arrayOrScalar[index];\n return value;\n };\n exports.getLineWidth = function(trace, di) {\n var w = 0 < di.mlw ? di.mlw : !isArrayOrTypedArray(trace.marker.line.width) ? trace.marker.line.width : 0;\n return w;\n };\n }\n });\n\n // src/traces/bar/style.js\n var require_style4 = __commonJS({\n \"src/traces/bar/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var Registry = require_registry();\n var resizeText = require_uniform_text().resizeText;\n var attributes = require_attributes23();\n var attributeTextFont = attributes.textfont;\n var attributeInsideTextFont = attributes.insidetextfont;\n var attributeOutsideTextFont = attributes.outsidetextfont;\n var helpers = require_helpers12();\n function style(gd) {\n var s = d3.select(gd).selectAll('g[class^=\"barlayer\"]').selectAll(\"g.trace\");\n resizeText(gd, s, \"bar\");\n var barcount = s.size();\n var fullLayout = gd._fullLayout;\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n }).each(function(d) {\n if (fullLayout.barmode === \"stack\" && barcount > 1 || fullLayout.bargap === 0 && fullLayout.bargroupgap === 0 && !d[0].trace.marker.line.width) {\n d3.select(this).attr(\"shape-rendering\", \"crispEdges\");\n }\n });\n s.selectAll(\"g.points\").each(function(d) {\n var sel = d3.select(this);\n var trace = d[0].trace;\n stylePoints(sel, trace, gd);\n });\n Registry.getComponentMethod(\"errorbars\", \"style\")(s);\n }\n function stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll(\"path\"), trace, gd);\n styleTextPoints(sel, trace, gd);\n }\n function styleTextPoints(sel, trace, gd) {\n sel.selectAll(\"text\").each(function(d) {\n var tx = d3.select(this);\n var font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n Drawing.font(tx, font);\n });\n }\n function styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n if (trace.selectedpoints) {\n stylePointsInSelectionMode(sel, trace, gd);\n } else {\n stylePoints(sel, trace, gd);\n Registry.getComponentMethod(\"errorbars\", \"style\")(sel);\n }\n }\n function stylePointsInSelectionMode(s, trace, gd) {\n Drawing.selectedPointStyle(s.selectAll(\"path\"), trace);\n styleTextInSelectionMode(s.selectAll(\"text\"), trace, gd);\n }\n function styleTextInSelectionMode(txs, trace, gd) {\n txs.each(function(d) {\n var tx = d3.select(this);\n var font;\n if (d.selected) {\n font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n var selectedFontColor = trace.selected.textfont && trace.selected.textfont.color;\n if (selectedFontColor) {\n font.color = selectedFontColor;\n }\n Drawing.font(tx, font);\n } else {\n Drawing.selectedTextStyle(tx, trace);\n }\n });\n }\n function determineFont(tx, d, trace, gd) {\n var layoutFont = gd._fullLayout.font;\n var textFont = trace.textfont;\n if (tx.classed(\"bartext-inside\")) {\n var barColor = getBarColor(d, trace);\n textFont = getInsideTextFont(trace, d.i, layoutFont, barColor);\n } else if (tx.classed(\"bartext-outside\")) {\n textFont = getOutsideTextFont(trace, d.i, layoutFont);\n }\n return textFont;\n }\n function getTextFont(trace, index, defaultValue) {\n return getFontValue(\n attributeTextFont,\n trace.textfont,\n index,\n defaultValue\n );\n }\n function getInsideTextFont(trace, index, layoutFont, barColor) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n var wouldFallBackToLayoutFont = trace._input.textfont === void 0 || trace._input.textfont.color === void 0 || Array.isArray(trace.textfont.color) && trace.textfont.color[index] === void 0;\n if (wouldFallBackToLayoutFont) {\n defaultFont = {\n color: Color2.contrast(barColor),\n family: defaultFont.family,\n size: defaultFont.size,\n weight: defaultFont.weight,\n style: defaultFont.style,\n variant: defaultFont.variant,\n textcase: defaultFont.textcase,\n lineposition: defaultFont.lineposition,\n shadow: defaultFont.shadow\n };\n }\n return getFontValue(\n attributeInsideTextFont,\n trace.insidetextfont,\n index,\n defaultFont\n );\n }\n function getOutsideTextFont(trace, index, layoutFont) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n return getFontValue(\n attributeOutsideTextFont,\n trace.outsidetextfont,\n index,\n defaultFont\n );\n }\n function getFontValue(attributeDefinition, attributeValue, index, defaultValue) {\n attributeValue = attributeValue || {};\n var familyValue = helpers.getValue(attributeValue.family, index);\n var sizeValue = helpers.getValue(attributeValue.size, index);\n var colorValue = helpers.getValue(attributeValue.color, index);\n var weightValue = helpers.getValue(attributeValue.weight, index);\n var styleValue = helpers.getValue(attributeValue.style, index);\n var variantValue = helpers.getValue(attributeValue.variant, index);\n var textcaseValue = helpers.getValue(attributeValue.textcase, index);\n var linepositionValue = helpers.getValue(attributeValue.lineposition, index);\n var shadowValue = helpers.getValue(attributeValue.shadow, index);\n return {\n family: helpers.coerceString(\n attributeDefinition.family,\n familyValue,\n defaultValue.family\n ),\n size: helpers.coerceNumber(\n attributeDefinition.size,\n sizeValue,\n defaultValue.size\n ),\n color: helpers.coerceColor(\n attributeDefinition.color,\n colorValue,\n defaultValue.color\n ),\n weight: helpers.coerceString(\n attributeDefinition.weight,\n weightValue,\n defaultValue.weight\n ),\n style: helpers.coerceString(\n attributeDefinition.style,\n styleValue,\n defaultValue.style\n ),\n variant: helpers.coerceString(\n attributeDefinition.variant,\n variantValue,\n defaultValue.variant\n ),\n textcase: helpers.coerceString(\n attributeDefinition.variant,\n textcaseValue,\n defaultValue.textcase\n ),\n lineposition: helpers.coerceString(\n attributeDefinition.variant,\n linepositionValue,\n defaultValue.lineposition\n ),\n shadow: helpers.coerceString(\n attributeDefinition.variant,\n shadowValue,\n defaultValue.shadow\n )\n };\n }\n function getBarColor(cd, trace) {\n if (trace.type === \"waterfall\") {\n return trace[cd.dir].marker.color;\n }\n return cd.mcc || cd.mc || trace.marker.color;\n }\n module.exports = {\n style,\n styleTextPoints,\n styleOnSelect,\n getInsideTextFont,\n getOutsideTextFont,\n getBarColor,\n resizeText\n };\n }\n });\n\n // src/traces/bar/plot.js\n var require_plot3 = __commonJS({\n \"src/traces/bar/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Registry = require_registry();\n var tickText = require_axes().tickText;\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var clearMinTextSize = uniformText.clearMinTextSize;\n var style = require_style4();\n var helpers = require_helpers12();\n var constants = require_constants14();\n var attributes = require_attributes23();\n var attributeText = attributes.text;\n var attributeTextPosition = attributes.textposition;\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var TEXTPAD = constants.TEXTPAD;\n function keyFunc(d) {\n return d.id;\n }\n function getKeyFunc(trace) {\n if (trace.ids) {\n return keyFunc;\n }\n }\n function sign(v) {\n return (v > 0) - (v < 0);\n }\n function dirSign(a, b) {\n return a < b ? 1 : -1;\n }\n function getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n return isHorizontal ? [s, p] : [p, s];\n }\n function transition(selection, fullLayout, opts, makeOnCompleteCallback) {\n if (!fullLayout.uniformtext.mode && hasTransition(opts)) {\n var onComplete;\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n return selection.transition().duration(opts.duration).ease(opts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n });\n } else {\n return selection;\n }\n }\n function hasTransition(transitionOpts) {\n return transitionOpts && transitionOpts.duration > 0;\n }\n function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var isStatic = gd._context.staticPlot;\n if (!opts) {\n opts = {\n mode: fullLayout.barmode,\n norm: fullLayout.barmode,\n gap: fullLayout.bargap,\n groupgap: fullLayout.bargroupgap\n };\n clearMinTextSize(\"bar\", fullLayout);\n }\n var bartraces = Lib.makeTraceGroups(traceLayer, cdModule, \"trace bars\").each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n var t = cd[0].t;\n var isWaterfall = trace.type === \"waterfall\";\n var isFunnel = trace.type === \"funnel\";\n var isHistogram = trace.type === \"histogram\";\n var isBar = trace.type === \"bar\";\n var shouldDisplayZeros = isBar || isFunnel;\n var adjustPixel = 0;\n if (isWaterfall && trace.connector.visible && trace.connector.mode === \"between\") {\n adjustPixel = trace.connector.line.width / 2;\n }\n var isHorizontal = trace.orientation === \"h\";\n var withTransition = hasTransition(opts);\n var pointGroup = Lib.ensureSingle(plotGroup, \"g\", \"points\");\n var keyFunc2 = getKeyFunc(trace);\n var bars = pointGroup.selectAll(\"g.point\").data(Lib.identity, keyFunc2);\n bars.enter().append(\"g\").classed(\"point\", true);\n bars.exit().remove();\n bars.each(function(di, i) {\n var bar = d3.select(this);\n var xy = getXY(di, xa, ya, isHorizontal);\n var x0 = xy[0][0];\n var x1 = xy[0][1];\n var y0 = xy[1][0];\n var y1 = xy[1][1];\n var isBlank = (isHorizontal ? x1 - x0 : y1 - y0) === 0;\n if (isBlank && shouldDisplayZeros && helpers.getLineWidth(trace, di)) {\n isBlank = false;\n }\n if (!isBlank) {\n isBlank = !isNumeric(x0) || !isNumeric(x1) || !isNumeric(y0) || !isNumeric(y1);\n }\n di.isBlank = isBlank;\n if (isBlank) {\n if (isHorizontal) {\n x1 = x0;\n } else {\n y1 = y0;\n }\n }\n if (adjustPixel && !isBlank) {\n if (isHorizontal) {\n x0 -= dirSign(x0, x1) * adjustPixel;\n x1 += dirSign(x0, x1) * adjustPixel;\n } else {\n y0 -= dirSign(y0, y1) * adjustPixel;\n y1 += dirSign(y0, y1) * adjustPixel;\n }\n }\n var lw;\n var mc;\n if (trace.type === \"waterfall\") {\n if (!isBlank) {\n var cont = trace[di.dir].marker;\n lw = cont.line.width;\n mc = cont.color;\n }\n } else {\n lw = helpers.getLineWidth(trace, di);\n mc = di.mc || trace.marker.color;\n }\n function roundWithLine(v) {\n var offset = d3.round(lw / 2 % 1, 2);\n return opts.gap === 0 && opts.groupgap === 0 ? d3.round(Math.round(v) - offset, 2) : v;\n }\n function expandToVisible(v, vc, hideZeroSpan) {\n if (hideZeroSpan && v === vc) {\n return v;\n }\n return Math.abs(v - vc) >= 2 ? roundWithLine(v) : (\n // but if it's very thin, expand it so it's\n // necessarily visible, even if it might overlap\n // its neighbor\n v > vc ? Math.ceil(v) : Math.floor(v)\n );\n }\n var op = Color2.opacity(mc);\n var fixpx = op < 1 || lw > 0.01 ? roundWithLine : expandToVisible;\n if (!gd._context.staticPlot) {\n x0 = fixpx(x0, x1, isHorizontal);\n x1 = fixpx(x1, x0, isHorizontal);\n y0 = fixpx(y0, y1, !isHorizontal);\n y1 = fixpx(y1, y0, !isHorizontal);\n }\n var c2p = isHorizontal ? xa.c2p : ya.c2p;\n var outerBound;\n if (di.s0 > 0) {\n outerBound = di._sMax;\n } else if (di.s0 < 0) {\n outerBound = di._sMin;\n } else {\n outerBound = di.s1 > 0 ? di._sMax : di._sMin;\n }\n function calcCornerRadius(crValue, crForm) {\n if (!crValue) return 0;\n var barWidth = isHorizontal ? Math.abs(y1 - y0) : Math.abs(x1 - x0);\n var barLength = isHorizontal ? Math.abs(x1 - x0) : Math.abs(y1 - y0);\n var stackedBarTotalLength = fixpx(Math.abs(c2p(outerBound, true) - c2p(0, true)));\n var maxRadius = di.hasB ? Math.min(barWidth / 2, barLength / 2) : Math.min(barWidth / 2, stackedBarTotalLength);\n var crPx;\n if (crForm === \"%\") {\n var crPercent = Math.min(50, crValue);\n crPx = barWidth * (crPercent / 100);\n } else {\n crPx = crValue;\n }\n return fixpx(Math.max(Math.min(crPx, maxRadius), 0));\n }\n var r = isBar || isHistogram ? calcCornerRadius(t.cornerradiusvalue, t.cornerradiusform) : 0;\n var path, h;\n var rectanglePath = \"M\" + x0 + \",\" + y0 + \"V\" + y1 + \"H\" + x1 + \"V\" + y0 + \"Z\";\n var overhead = 0;\n if (r && di.s) {\n var refPoint = sign(di.s0) === 0 || sign(di.s) === sign(di.s0) ? di.s1 : di.s0;\n overhead = fixpx(!di.hasB ? Math.abs(c2p(outerBound, true) - c2p(refPoint, true)) : 0);\n if (overhead < r) {\n var xdir = dirSign(x0, x1);\n var ydir = dirSign(y0, y1);\n var cornersweep = xdir === -ydir ? 1 : 0;\n if (isHorizontal) {\n if (di.hasB) {\n path = \"M\" + (x0 + r * xdir) + \",\" + y0 + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x0 + \",\" + (y0 + r * ydir) + \"V\" + (y1 - r * ydir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x0 + r * xdir) + \",\" + y1 + \"H\" + (x1 - r * xdir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x1 + \",\" + (y1 - r * ydir) + \"V\" + (y0 + r * ydir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x1 - r * xdir) + \",\" + y0 + \"Z\";\n } else {\n h = Math.abs(x1 - x0) + overhead;\n var dy1 = h < r ? r - Math.sqrt(h * (2 * r - h)) : 0;\n var dy2 = overhead > 0 ? Math.sqrt(overhead * (2 * r - overhead)) : 0;\n var xminfunc = xdir > 0 ? Math.max : Math.min;\n path = \"M\" + x0 + \",\" + y0 + \"V\" + (y1 - dy1 * ydir) + \"H\" + xminfunc(x1 - (r - overhead) * xdir, x0) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x1 + \",\" + (y1 - r * ydir - dy2) + \"V\" + (y0 + r * ydir + dy2) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + xminfunc(x1 - (r - overhead) * xdir, x0) + \",\" + (y0 + dy1 * ydir) + \"Z\";\n }\n } else {\n if (di.hasB) {\n path = \"M\" + (x0 + r * xdir) + \",\" + y0 + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x0 + \",\" + (y0 + r * ydir) + \"V\" + (y1 - r * ydir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x0 + r * xdir) + \",\" + y1 + \"H\" + (x1 - r * xdir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x1 + \",\" + (y1 - r * ydir) + \"V\" + (y0 + r * ydir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x1 - r * xdir) + \",\" + y0 + \"Z\";\n } else {\n h = Math.abs(y1 - y0) + overhead;\n var dx1 = h < r ? r - Math.sqrt(h * (2 * r - h)) : 0;\n var dx2 = overhead > 0 ? Math.sqrt(overhead * (2 * r - overhead)) : 0;\n var yminfunc = ydir > 0 ? Math.max : Math.min;\n path = \"M\" + (x0 + dx1 * xdir) + \",\" + y0 + \"V\" + yminfunc(y1 - (r - overhead) * ydir, y0) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x0 + r * xdir - dx2) + \",\" + y1 + \"H\" + (x1 - r * xdir + dx2) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x1 - dx1 * xdir) + \",\" + yminfunc(y1 - (r - overhead) * ydir, y0) + \"V\" + y0 + \"Z\";\n }\n }\n } else {\n path = rectanglePath;\n }\n } else {\n path = rectanglePath;\n }\n var sel = transition(Lib.ensureSingle(bar, \"path\"), fullLayout, opts, makeOnCompleteCallback);\n sel.style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").attr(\"d\", isNaN((x1 - x0) * (y1 - y0)) || isBlank && gd._context.staticPlot ? \"M0,0Z\" : path).call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n if (!fullLayout.uniformtext.mode && withTransition) {\n var styleFns = Drawing.makePointStyleFns(trace);\n Drawing.singlePointStyle(di, sel, trace, styleFns, gd);\n }\n appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, r, overhead, opts, makeOnCompleteCallback);\n if (plotinfo.layerClipId) {\n Drawing.hideOutsideRangePoint(di, bar.select(\"text\"), xa, ya, trace.xcalendar, trace.ycalendar);\n }\n });\n var hasClipOnAxisFalse = trace.cliponaxis === false;\n Drawing.setClipUrl(plotGroup, hasClipOnAxisFalse ? null : plotinfo.layerClipId, gd);\n });\n Registry.getComponentMethod(\"errorbars\", \"plot\")(gd, bartraces, plotinfo, opts);\n }\n function appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, r, overhead, opts, makeOnCompleteCallback) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var textPosition;\n function appendTextNode(bar2, text2, font2) {\n var textSelection2 = Lib.ensureSingle(bar2, \"text\").text(text2).attr({\n class: \"bartext bartext-\" + textPosition,\n \"text-anchor\": \"middle\",\n // prohibit tex interpretation until we can handle\n // tex and regular text together\n \"data-notex\": 1\n }).call(Drawing.font, font2).call(svgTextUtils.convertToTspans, gd);\n return textSelection2;\n }\n var trace = cd[0].trace;\n var isHorizontal = trace.orientation === \"h\";\n var text = getText(fullLayout, cd, i, xa, ya);\n textPosition = getTextPosition(trace, i);\n var inStackOrRelativeMode = opts.mode === \"stack\" || opts.mode === \"relative\";\n var calcBar = cd[i];\n var isOutmostBar = !inStackOrRelativeMode || calcBar._outmost;\n var hasB = calcBar.hasB;\n var barIsRounded = r && r - overhead > TEXTPAD;\n if (!text || textPosition === \"none\" || (calcBar.isBlank || x0 === x1 || y0 === y1) && (textPosition === \"auto\" || textPosition === \"inside\")) {\n bar.select(\"text\").remove();\n return;\n }\n var layoutFont = fullLayout.font;\n var barColor = style.getBarColor(cd[i], trace);\n var insideTextFont = style.getInsideTextFont(trace, i, layoutFont, barColor);\n var outsideTextFont = style.getOutsideTextFont(trace, i, layoutFont);\n var insidetextanchor = trace.insidetextanchor || \"end\";\n var di = bar.datum();\n if (isHorizontal) {\n if (xa.type === \"log\" && di.s0 <= 0) {\n if (xa.range[0] < xa.range[1]) {\n x0 = 0;\n } else {\n x0 = xa._length;\n }\n }\n } else {\n if (ya.type === \"log\" && di.s0 <= 0) {\n if (ya.range[0] < ya.range[1]) {\n y0 = ya._length;\n } else {\n y0 = 0;\n }\n }\n }\n var lx = Math.abs(x1 - x0);\n var ly = Math.abs(y1 - y0);\n var barWidth = lx - 2 * TEXTPAD;\n var barHeight = ly - 2 * TEXTPAD;\n var textSelection;\n var textBB;\n var textWidth;\n var textHeight;\n var font;\n if (textPosition === \"outside\") {\n if (!isOutmostBar && !calcBar.hasB) textPosition = \"inside\";\n }\n if (textPosition === \"auto\") {\n if (isOutmostBar) {\n textPosition = \"inside\";\n font = Lib.ensureUniformFontSize(gd, insideTextFont);\n textSelection = appendTextNode(bar, text, font);\n textBB = Drawing.bBox(textSelection.node());\n textWidth = textBB.width;\n textHeight = textBB.height;\n var textHasSize = textWidth > 0 && textHeight > 0;\n var fitsInside;\n if (barIsRounded) {\n if (hasB) {\n fitsInside = textfitsInsideBar(barWidth - 2 * r, barHeight, textWidth, textHeight, isHorizontal) || textfitsInsideBar(barWidth, barHeight - 2 * r, textWidth, textHeight, isHorizontal);\n } else if (isHorizontal) {\n fitsInside = textfitsInsideBar(barWidth - (r - overhead), barHeight, textWidth, textHeight, isHorizontal) || textfitsInsideBar(barWidth, barHeight - 2 * (r - overhead), textWidth, textHeight, isHorizontal);\n } else {\n fitsInside = textfitsInsideBar(barWidth, barHeight - (r - overhead), textWidth, textHeight, isHorizontal) || textfitsInsideBar(barWidth - 2 * (r - overhead), barHeight, textWidth, textHeight, isHorizontal);\n }\n } else {\n fitsInside = textfitsInsideBar(barWidth, barHeight, textWidth, textHeight, isHorizontal);\n }\n if (textHasSize && fitsInside) {\n textPosition = \"inside\";\n } else {\n textPosition = \"outside\";\n textSelection.remove();\n textSelection = null;\n }\n } else {\n textPosition = \"inside\";\n }\n }\n if (!textSelection) {\n font = Lib.ensureUniformFontSize(gd, textPosition === \"outside\" ? outsideTextFont : insideTextFont);\n textSelection = appendTextNode(bar, text, font);\n var currentTransform = textSelection.attr(\"transform\");\n textSelection.attr(\"transform\", \"\");\n textBB = Drawing.bBox(textSelection.node()), textWidth = textBB.width, textHeight = textBB.height;\n textSelection.attr(\"transform\", currentTransform);\n if (textWidth <= 0 || textHeight <= 0) {\n textSelection.remove();\n return;\n }\n }\n var angle = trace.textangle;\n var transform, constrained;\n if (textPosition === \"outside\") {\n constrained = trace.constraintext === \"both\" || trace.constraintext === \"outside\";\n transform = toMoveOutsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal,\n constrained,\n angle\n });\n } else {\n constrained = trace.constraintext === \"both\" || trace.constraintext === \"inside\";\n transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal,\n constrained,\n angle,\n anchor: insidetextanchor,\n hasB,\n r,\n overhead\n });\n }\n transform.fontSize = font.size;\n recordMinTextSize(trace.type === \"histogram\" ? \"bar\" : trace.type, transform, fullLayout);\n calcBar.transform = transform;\n var s = transition(textSelection, fullLayout, opts, makeOnCompleteCallback);\n Lib.setTransormAndDisplay(s, transform);\n }\n function textfitsInsideBar(barWidth, barHeight, textWidth, textHeight, isHorizontal) {\n if (barWidth < 0 || barHeight < 0) return false;\n var fitsInside = textWidth <= barWidth && textHeight <= barHeight;\n var fitsInsideIfRotated = textWidth <= barHeight && textHeight <= barWidth;\n var fitsInsideIfShrunk = isHorizontal ? barWidth >= textWidth * (barHeight / textHeight) : barHeight >= textHeight * (barWidth / textWidth);\n return fitsInside || fitsInsideIfRotated || fitsInsideIfShrunk;\n }\n function getRotateFromAngle(angle) {\n return angle === \"auto\" ? 0 : angle;\n }\n function getRotatedTextSize(textBB, rotate) {\n var a = Math.PI / 180 * rotate;\n var absSin = Math.abs(Math.sin(a));\n var absCos = Math.abs(Math.cos(a));\n return {\n x: textBB.width * absCos + textBB.height * absSin,\n y: textBB.width * absSin + textBB.height * absCos\n };\n }\n function toMoveInsideBar(x0, x1, y0, y1, textBB, opts) {\n var isHorizontal = !!opts.isHorizontal;\n var constrained = !!opts.constrained;\n var angle = opts.angle || 0;\n var anchor = opts.anchor;\n var isEnd = anchor === \"end\";\n var isStart = anchor === \"start\";\n var leftToRight = opts.leftToRight || 0;\n var toRight = (leftToRight + 1) / 2;\n var toLeft = 1 - toRight;\n var hasB = opts.hasB;\n var r = opts.r;\n var overhead = opts.overhead;\n var textWidth = textBB.width;\n var textHeight = textBB.height;\n var lx = Math.abs(x1 - x0);\n var ly = Math.abs(y1 - y0);\n var textpad = lx > 2 * TEXTPAD && ly > 2 * TEXTPAD ? TEXTPAD : 0;\n lx -= 2 * textpad;\n ly -= 2 * textpad;\n var rotate = getRotateFromAngle(angle);\n if (angle === \"auto\" && !(textWidth <= lx && textHeight <= ly) && (textWidth > lx || textHeight > ly) && (!(textWidth > ly || textHeight > lx) || textWidth < textHeight !== lx < ly)) {\n rotate += 90;\n }\n var t = getRotatedTextSize(textBB, rotate);\n var scale, padForRounding;\n if (r && r - overhead > TEXTPAD) {\n var scaleAndPad = scaleTextForRoundedBar(x0, x1, y0, y1, t, r, overhead, isHorizontal, hasB);\n scale = scaleAndPad.scale;\n padForRounding = scaleAndPad.pad;\n } else {\n scale = 1;\n if (constrained) {\n scale = Math.min(\n 1,\n lx / t.x,\n ly / t.y\n );\n }\n padForRounding = 0;\n }\n var textX = textBB.left * toLeft + textBB.right * toRight;\n var textY = (textBB.top + textBB.bottom) / 2;\n var targetX = (x0 + TEXTPAD) * toLeft + (x1 - TEXTPAD) * toRight;\n var targetY = (y0 + y1) / 2;\n var anchorX = 0;\n var anchorY = 0;\n if (isStart || isEnd) {\n var extrapad = (isHorizontal ? t.x : t.y) / 2;\n if (r && (isEnd || hasB)) {\n textpad += padForRounding;\n }\n var dir = isHorizontal ? dirSign(x0, x1) : dirSign(y0, y1);\n if (isHorizontal) {\n if (isStart) {\n targetX = x0 + dir * textpad;\n anchorX = -dir * extrapad;\n } else {\n targetX = x1 - dir * textpad;\n anchorX = dir * extrapad;\n }\n } else {\n if (isStart) {\n targetY = y0 + dir * textpad;\n anchorY = -dir * extrapad;\n } else {\n targetY = y1 - dir * textpad;\n anchorY = dir * extrapad;\n }\n }\n }\n return {\n textX,\n textY,\n targetX,\n targetY,\n anchorX,\n anchorY,\n scale,\n rotate\n };\n }\n function scaleTextForRoundedBar(x0, x1, y0, y1, t, r, overhead, isHorizontal, hasB) {\n var barWidth = Math.max(0, Math.abs(x1 - x0) - 2 * TEXTPAD);\n var barHeight = Math.max(0, Math.abs(y1 - y0) - 2 * TEXTPAD);\n var R = r - TEXTPAD;\n var clippedR = overhead ? R - Math.sqrt(R * R - (R - overhead) * (R - overhead)) : R;\n var rX = hasB ? R * 2 : isHorizontal ? R - overhead : 2 * clippedR;\n var rY = hasB ? R * 2 : isHorizontal ? 2 * clippedR : R - overhead;\n var a, b, c;\n var scale, pad;\n if (t.y / t.x >= barHeight / (barWidth - rX)) {\n scale = barHeight / t.y;\n } else if (t.y / t.x <= (barHeight - rY) / barWidth) {\n scale = barWidth / t.x;\n } else if (!hasB && isHorizontal) {\n a = t.x * t.x + t.y * t.y / 4;\n b = -2 * t.x * (barWidth - R) - t.y * (barHeight / 2 - R);\n c = (barWidth - R) * (barWidth - R) + (barHeight / 2 - R) * (barHeight / 2 - R) - R * R;\n scale = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n } else if (!hasB) {\n a = t.x * t.x / 4 + t.y * t.y;\n b = -t.x * (barWidth / 2 - R) - 2 * t.y * (barHeight - R);\n c = (barWidth / 2 - R) * (barWidth / 2 - R) + (barHeight - R) * (barHeight - R) - R * R;\n scale = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n } else {\n a = (t.x * t.x + t.y * t.y) / 4;\n b = -t.x * (barWidth / 2 - R) - t.y * (barHeight / 2 - R);\n c = (barWidth / 2 - R) * (barWidth / 2 - R) + (barHeight / 2 - R) * (barHeight / 2 - R) - R * R;\n scale = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n }\n scale = Math.min(1, scale);\n if (isHorizontal) {\n pad = Math.max(0, R - Math.sqrt(Math.max(0, R * R - (R - (barHeight - t.y * scale) / 2) * (R - (barHeight - t.y * scale) / 2))) - overhead);\n } else {\n pad = Math.max(0, R - Math.sqrt(Math.max(0, R * R - (R - (barWidth - t.x * scale) / 2) * (R - (barWidth - t.x * scale) / 2))) - overhead);\n }\n return { scale, pad };\n }\n function toMoveOutsideBar(x0, x1, y0, y1, textBB, opts) {\n var isHorizontal = !!opts.isHorizontal;\n var constrained = !!opts.constrained;\n var angle = opts.angle || 0;\n var textWidth = textBB.width;\n var textHeight = textBB.height;\n var lx = Math.abs(x1 - x0);\n var ly = Math.abs(y1 - y0);\n var textpad;\n if (isHorizontal) {\n textpad = ly > 2 * TEXTPAD ? TEXTPAD : 0;\n } else {\n textpad = lx > 2 * TEXTPAD ? TEXTPAD : 0;\n }\n var scale = 1;\n if (constrained) {\n scale = isHorizontal ? Math.min(1, ly / textHeight) : Math.min(1, lx / textWidth);\n }\n var rotate = getRotateFromAngle(angle);\n var t = getRotatedTextSize(textBB, rotate);\n var extrapad = (isHorizontal ? t.x : t.y) / 2;\n var textX = (textBB.left + textBB.right) / 2;\n var textY = (textBB.top + textBB.bottom) / 2;\n var targetX = (x0 + x1) / 2;\n var targetY = (y0 + y1) / 2;\n var anchorX = 0;\n var anchorY = 0;\n var dir = isHorizontal ? dirSign(x1, x0) : dirSign(y0, y1);\n if (isHorizontal) {\n targetX = x1 - dir * textpad;\n anchorX = dir * extrapad;\n } else {\n targetY = y1 + dir * textpad;\n anchorY = -dir * extrapad;\n }\n return {\n textX,\n textY,\n targetX,\n targetY,\n anchorX,\n anchorY,\n scale,\n rotate\n };\n }\n function getText(fullLayout, cd, index, xa, ya) {\n var trace = cd[0].trace;\n var texttemplate = trace.texttemplate;\n var value;\n if (texttemplate) {\n value = calcTexttemplate(fullLayout, cd, index, xa, ya);\n } else if (trace.textinfo) {\n value = calcTextinfo(cd, index, xa, ya);\n } else {\n value = helpers.getValue(trace.text, index);\n }\n return helpers.coerceString(attributeText, value);\n }\n function getTextPosition(trace, index) {\n var value = helpers.getValue(trace.textposition, index);\n return helpers.coerceEnumerated(attributeTextPosition, value);\n }\n function calcTexttemplate(fullLayout, cd, index, xa, ya) {\n var trace = cd[0].trace;\n var texttemplate = Lib.castOption(trace, index, \"texttemplate\");\n if (!texttemplate) return \"\";\n var isHistogram = trace.type === \"histogram\";\n var isWaterfall = trace.type === \"waterfall\";\n var isFunnel = trace.type === \"funnel\";\n var isHorizontal = trace.orientation === \"h\";\n var pLetter, pAxis;\n var vLetter, vAxis;\n if (isHorizontal) {\n pLetter = \"y\";\n pAxis = ya;\n vLetter = \"x\";\n vAxis = xa;\n } else {\n pLetter = \"x\";\n pAxis = xa;\n vLetter = \"y\";\n vAxis = ya;\n }\n function formatLabel(u) {\n return tickText(pAxis, pAxis.c2l(u), true).text;\n }\n function formatNumber(v) {\n return tickText(vAxis, vAxis.c2l(v), true).text;\n }\n var cdi = cd[index];\n var obj = {};\n obj.label = cdi.p;\n obj.labelLabel = obj[pLetter + \"Label\"] = formatLabel(cdi.p);\n var tx = Lib.castOption(trace, cdi.i, \"text\");\n if (tx === 0 || tx) obj.text = tx;\n obj.value = cdi.s;\n obj.valueLabel = obj[vLetter + \"Label\"] = formatNumber(cdi.s);\n var pt = {};\n appendArrayPointValue(pt, trace, cdi.i);\n if (isHistogram || pt.x === void 0) pt.x = isHorizontal ? obj.value : obj.label;\n if (isHistogram || pt.y === void 0) pt.y = isHorizontal ? obj.label : obj.value;\n if (isHistogram || pt.xLabel === void 0) pt.xLabel = isHorizontal ? obj.valueLabel : obj.labelLabel;\n if (isHistogram || pt.yLabel === void 0) pt.yLabel = isHorizontal ? obj.labelLabel : obj.valueLabel;\n if (isWaterfall) {\n obj.delta = +cdi.rawS || cdi.s;\n obj.deltaLabel = formatNumber(obj.delta);\n obj.final = cdi.v;\n obj.finalLabel = formatNumber(obj.final);\n obj.initial = obj.final - obj.delta;\n obj.initialLabel = formatNumber(obj.initial);\n }\n if (isFunnel) {\n obj.value = cdi.s;\n obj.valueLabel = formatNumber(obj.value);\n obj.percentInitial = cdi.begR;\n obj.percentInitialLabel = Lib.formatPercent(cdi.begR);\n obj.percentPrevious = cdi.difR;\n obj.percentPreviousLabel = Lib.formatPercent(cdi.difR);\n obj.percentTotal = cdi.sumR;\n obj.percenTotalLabel = Lib.formatPercent(cdi.sumR);\n }\n var customdata = Lib.castOption(trace, cdi.i, \"customdata\");\n if (customdata) obj.customdata = customdata;\n return Lib.texttemplateString(texttemplate, obj, fullLayout._d3locale, pt, obj, trace._meta || {});\n }\n function calcTextinfo(cd, index, xa, ya) {\n var trace = cd[0].trace;\n var isHorizontal = trace.orientation === \"h\";\n var isWaterfall = trace.type === \"waterfall\";\n var isFunnel = trace.type === \"funnel\";\n function formatLabel(u) {\n var pAxis = isHorizontal ? ya : xa;\n return tickText(pAxis, u, true).text;\n }\n function formatNumber(v) {\n var sAxis = isHorizontal ? xa : ya;\n return tickText(sAxis, +v, true).text;\n }\n var textinfo = trace.textinfo;\n var cdi = cd[index];\n var parts = textinfo.split(\"+\");\n var text = [];\n var tx;\n var hasFlag = function(flag) {\n return parts.indexOf(flag) !== -1;\n };\n if (hasFlag(\"label\")) {\n text.push(formatLabel(cd[index].p));\n }\n if (hasFlag(\"text\")) {\n tx = Lib.castOption(trace, cdi.i, \"text\");\n if (tx === 0 || tx) text.push(tx);\n }\n if (isWaterfall) {\n var delta = +cdi.rawS || cdi.s;\n var final = cdi.v;\n var initial = final - delta;\n if (hasFlag(\"initial\")) text.push(formatNumber(initial));\n if (hasFlag(\"delta\")) text.push(formatNumber(delta));\n if (hasFlag(\"final\")) text.push(formatNumber(final));\n }\n if (isFunnel) {\n if (hasFlag(\"value\")) text.push(formatNumber(cdi.s));\n var nPercent = 0;\n if (hasFlag(\"percent initial\")) nPercent++;\n if (hasFlag(\"percent previous\")) nPercent++;\n if (hasFlag(\"percent total\")) nPercent++;\n var hasMultiplePercents = nPercent > 1;\n if (hasFlag(\"percent initial\")) {\n tx = Lib.formatPercent(cdi.begR);\n if (hasMultiplePercents) tx += \" of initial\";\n text.push(tx);\n }\n if (hasFlag(\"percent previous\")) {\n tx = Lib.formatPercent(cdi.difR);\n if (hasMultiplePercents) tx += \" of previous\";\n text.push(tx);\n }\n if (hasFlag(\"percent total\")) {\n tx = Lib.formatPercent(cdi.sumR);\n if (hasMultiplePercents) tx += \" of total\";\n text.push(tx);\n }\n }\n return text.join(\"
\");\n }\n module.exports = {\n plot,\n toMoveInsideBar\n };\n }\n });\n\n // src/traces/bar/hover.js\n var require_hover3 = __commonJS({\n \"src/traces/bar/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Registry = require_registry();\n var Color2 = require_color();\n var fillText = require_lib().fillText;\n var getLineWidth = require_helpers12().getLineWidth;\n var hoverLabelText = require_axes().hoverLabelText;\n var BADNUM = require_numerical().BADNUM;\n function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var barPointData = hoverOnBars(pointData, xval, yval, hovermode, opts);\n if (barPointData) {\n var cd = barPointData.cd;\n var trace = cd[0].trace;\n var di = cd[barPointData.index];\n barPointData.color = getTraceColor(trace, di);\n Registry.getComponentMethod(\"errorbars\", \"hoverInfo\")(di, trace, barPointData);\n return [barPointData];\n }\n }\n function hoverOnBars(pointData, xval, yval, hovermode, opts) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var isClosest = hovermode === \"closest\";\n var isWaterfall = trace.type === \"waterfall\";\n var maxHoverDistance = pointData.maxHoverDistance;\n var maxSpikeDistance = pointData.maxSpikeDistance;\n var posVal, sizeVal, posLetter, sizeLetter, dx, dy, pRangeCalc;\n if (trace.orientation === \"h\") {\n posVal = yval;\n sizeVal = xval;\n posLetter = \"y\";\n sizeLetter = \"x\";\n dx = sizeFn;\n dy = positionFn;\n } else {\n posVal = xval;\n sizeVal = yval;\n posLetter = \"x\";\n sizeLetter = \"y\";\n dy = sizeFn;\n dx = positionFn;\n }\n var period = trace[posLetter + \"period\"];\n var isClosestOrPeriod = isClosest || period;\n function thisBarMinPos(di2) {\n return thisBarExtPos(di2, -1);\n }\n function thisBarMaxPos(di2) {\n return thisBarExtPos(di2, 1);\n }\n function thisBarExtPos(di2, sgn) {\n var w = di2.w;\n return di2[posLetter] + sgn * w / 2;\n }\n function periodLength(di2) {\n return di2[posLetter + \"End\"] - di2[posLetter + \"Start\"];\n }\n var minPos = isClosest ? thisBarMinPos : period ? function(di2) {\n return di2.p - periodLength(di2) / 2;\n } : function(di2) {\n return Math.min(thisBarMinPos(di2), di2.p - t.bardelta / 2);\n };\n var maxPos = isClosest ? thisBarMaxPos : period ? function(di2) {\n return di2.p + periodLength(di2) / 2;\n } : function(di2) {\n return Math.max(thisBarMaxPos(di2), di2.p + t.bardelta / 2);\n };\n function inbox(_minPos, _maxPos, maxDistance) {\n if (opts.finiteRange) maxDistance = 0;\n return Fx.inbox(\n _minPos - posVal,\n _maxPos - posVal,\n maxDistance + Math.min(1, Math.abs(_maxPos - _minPos) / pRangeCalc) - 1\n );\n }\n function positionFn(di2) {\n return inbox(minPos(di2), maxPos(di2), maxHoverDistance);\n }\n function thisBarPositionFn(di2) {\n return inbox(thisBarMinPos(di2), thisBarMaxPos(di2), maxSpikeDistance);\n }\n function getSize(di2) {\n var s = di2[sizeLetter];\n if (isWaterfall) {\n var rawS = Math.abs(di2.rawS) || 0;\n if (sizeVal > 0) {\n s += rawS;\n } else if (sizeVal < 0) {\n s -= rawS;\n }\n }\n return s;\n }\n function sizeFn(di2) {\n var v = sizeVal;\n var b = di2.b;\n var s = getSize(di2);\n return Fx.inbox(b - v, s - v, maxHoverDistance + (s - v) / (s - b) - 1);\n }\n function thisBarSizeFn(di2) {\n var v = sizeVal;\n var b = di2.b;\n var s = getSize(di2);\n return Fx.inbox(b - v, s - v, maxSpikeDistance + (s - v) / (s - b) - 1);\n }\n var pa = pointData[posLetter + \"a\"];\n var sa = pointData[sizeLetter + \"a\"];\n pRangeCalc = Math.abs(pa.r2c(pa.range[1]) - pa.r2c(pa.range[0]));\n function dxy(di2) {\n return (dx(di2) + dy(di2)) / 2;\n }\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n Fx.getClosest(cd, distfn, pointData);\n if (pointData.index === false) return;\n if (cd[pointData.index].p === BADNUM) return;\n if (!isClosestOrPeriod) {\n minPos = function(di2) {\n return Math.min(thisBarMinPos(di2), di2.p - t.bargroupwidth / 2);\n };\n maxPos = function(di2) {\n return Math.max(thisBarMaxPos(di2), di2.p + t.bargroupwidth / 2);\n };\n }\n var index = pointData.index;\n var di = cd[index];\n var size = trace.base ? di.b + di.s : di.s;\n pointData[sizeLetter + \"0\"] = pointData[sizeLetter + \"1\"] = sa.c2p(di[sizeLetter], true);\n pointData[sizeLetter + \"LabelVal\"] = size;\n var extent = t.extents[t.extents.round(di.p)];\n pointData[posLetter + \"0\"] = pa.c2p(isClosest ? minPos(di) : extent[0], true);\n pointData[posLetter + \"1\"] = pa.c2p(isClosest ? maxPos(di) : extent[1], true);\n var hasPeriod = di.orig_p !== void 0;\n pointData[posLetter + \"LabelVal\"] = hasPeriod ? di.orig_p : di.p;\n pointData.labelLabel = hoverLabelText(pa, pointData[posLetter + \"LabelVal\"], trace[posLetter + \"hoverformat\"]);\n pointData.valueLabel = hoverLabelText(sa, pointData[sizeLetter + \"LabelVal\"], trace[sizeLetter + \"hoverformat\"]);\n pointData.baseLabel = hoverLabelText(sa, di.b, trace[sizeLetter + \"hoverformat\"]);\n pointData.spikeDistance = (thisBarSizeFn(di) + thisBarPositionFn(di)) / 2;\n pointData[posLetter + \"Spike\"] = pa.c2p(di.p, true);\n fillText(di, trace, pointData);\n pointData.hovertemplate = trace.hovertemplate;\n return pointData;\n }\n function getTraceColor(trace, di) {\n var mc = di.mcc || trace.marker.color;\n var mlc = di.mlcc || trace.marker.line.color;\n var mlw = getLineWidth(trace, di);\n if (Color2.opacity(mc)) return mc;\n else if (Color2.opacity(mlc) && mlw) return mlc;\n }\n module.exports = {\n hoverPoints,\n hoverOnBars,\n getTraceColor\n };\n }\n });\n\n // src/traces/bar/event_data.js\n var require_event_data = __commonJS({\n \"src/traces/bar/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace) {\n out.x = \"xVal\" in pt ? pt.xVal : pt.x;\n out.y = \"yVal\" in pt ? pt.yVal : pt.y;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n if (trace.orientation === \"h\") {\n out.label = out.y;\n out.value = out.x;\n } else {\n out.label = out.x;\n out.value = out.y;\n }\n return out;\n };\n }\n });\n\n // src/traces/bar/select.js\n var require_select3 = __commonJS({\n \"src/traces/bar/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var trace = cd[0].trace;\n var isFunnel = trace.type === \"funnel\";\n var isHorizontal = trace.orientation === \"h\";\n var selection = [];\n var i;\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n var di = cd[i];\n var ct = \"ct\" in di ? di.ct : getCentroid(di, xa, ya, isHorizontal, isFunnel);\n if (selectionTester.contains(ct, false, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n x: xa.c2d(di.x),\n y: ya.c2d(di.y)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n function getCentroid(d, xa, ya, isHorizontal, isFunnel) {\n var x0 = xa.c2p(isHorizontal ? d.s0 : d.p0, true);\n var x1 = xa.c2p(isHorizontal ? d.s1 : d.p1, true);\n var y0 = ya.c2p(isHorizontal ? d.p0 : d.s0, true);\n var y1 = ya.c2p(isHorizontal ? d.p1 : d.s1, true);\n if (isFunnel) {\n return [(x0 + x1) / 2, (y0 + y1) / 2];\n } else {\n if (isHorizontal) {\n return [x1, (y0 + y1) / 2];\n } else {\n return [(x0 + x1) / 2, y1];\n }\n }\n }\n }\n });\n\n // src/traces/bar/index.js\n var require_bar = __commonJS({\n \"src/traces/bar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes23(),\n layoutAttributes: require_layout_attributes6(),\n supplyDefaults: require_defaults19().supplyDefaults,\n crossTraceDefaults: require_defaults19().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults5(),\n calc: require_calc5(),\n crossTraceCalc: require_cross_trace_calc().crossTraceCalc,\n colorbar: require_marker_colorbar(),\n arraysToCalcdata: require_arrays_to_calcdata2(),\n plot: require_plot3().plot,\n style: require_style4().style,\n styleOnSelect: require_style4().styleOnSelect,\n hoverPoints: require_hover3().hoverPoints,\n eventData: require_event_data(),\n selectPoints: require_select3(),\n moduleType: \"trace\",\n name: \"bar\",\n basePlotModule: require_cartesian(),\n categories: [\"bar-like\", \"cartesian\", \"svg\", \"bar\", \"oriented\", \"errorBarsOK\", \"showLegend\", \"zoomScale\"],\n animatable: true,\n meta: {}\n };\n }\n });\n\n // lib/bar.js\n var require_bar2 = __commonJS({\n \"lib/bar.js\"(exports, module) {\n \"use strict\";\n module.exports = require_bar();\n }\n });\n\n // src/traces/box/attributes.js\n var require_attributes24 = __commonJS({\n \"src/traces/box/attributes.js\"(exports, module) {\n \"use strict\";\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var barAttrs = require_attributes23();\n var colorAttrs = require_attributes3();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n module.exports = {\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n x0: {\n valType: \"any\",\n editType: \"calc+clearAxisTypes\"\n },\n y0: {\n valType: \"any\",\n editType: \"calc+clearAxisTypes\"\n },\n dx: {\n valType: \"number\",\n editType: \"calc\"\n },\n dy: {\n valType: \"number\",\n editType: \"calc\"\n },\n xperiod: scatterAttrs.xperiod,\n yperiod: scatterAttrs.yperiod,\n xperiod0: scatterAttrs.xperiod0,\n yperiod0: scatterAttrs.yperiod0,\n xperiodalignment: scatterAttrs.xperiodalignment,\n yperiodalignment: scatterAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n name: {\n valType: \"string\",\n editType: \"calc+clearAxisTypes\"\n },\n q1: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n median: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n q3: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n lowerfence: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n upperfence: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n notched: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n notchwidth: {\n valType: \"number\",\n min: 0,\n max: 0.5,\n dflt: 0.25,\n editType: \"calc\"\n },\n notchspan: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO\n // maybe add\n // - loweroutlierbound / upperoutlierbound\n // - lowersuspectedoutlierbound / uppersuspectedoutlierbound\n boxpoints: {\n valType: \"enumerated\",\n values: [\"all\", \"outliers\", \"suspectedoutliers\", false],\n editType: \"calc\"\n },\n jitter: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n },\n pointpos: {\n valType: \"number\",\n min: -2,\n max: 2,\n editType: \"calc\"\n },\n sdmultiple: {\n valType: \"number\",\n min: 0,\n editType: \"calc\",\n dflt: 1\n },\n sizemode: {\n valType: \"enumerated\",\n values: [\"quartiles\", \"sd\"],\n editType: \"calc\",\n dflt: \"quartiles\"\n },\n boxmean: {\n valType: \"enumerated\",\n values: [true, \"sd\", false],\n editType: \"calc\"\n },\n mean: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n sd: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n editType: \"calc+clearAxisTypes\"\n },\n quartilemethod: {\n valType: \"enumerated\",\n values: [\"linear\", \"exclusive\", \"inclusive\"],\n dflt: \"linear\",\n editType: \"calc\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n marker: {\n outliercolor: {\n valType: \"color\",\n dflt: \"rgba(0, 0, 0, 0)\",\n editType: \"style\"\n },\n symbol: extendFlat(\n {},\n scatterMarkerAttrs.symbol,\n { arrayOk: false, editType: \"plot\" }\n ),\n opacity: extendFlat(\n {},\n scatterMarkerAttrs.opacity,\n { arrayOk: false, dflt: 1, editType: \"style\" }\n ),\n angle: extendFlat(\n {},\n scatterMarkerAttrs.angle,\n { arrayOk: false, editType: \"calc\" }\n ),\n size: extendFlat(\n {},\n scatterMarkerAttrs.size,\n { arrayOk: false, editType: \"calc\" }\n ),\n color: extendFlat(\n {},\n scatterMarkerAttrs.color,\n { arrayOk: false, editType: \"style\" }\n ),\n line: {\n color: extendFlat(\n {},\n scatterMarkerLineAttrs.color,\n { arrayOk: false, dflt: colorAttrs.defaultLine, editType: \"style\" }\n ),\n width: extendFlat(\n {},\n scatterMarkerLineAttrs.width,\n { arrayOk: false, dflt: 0, editType: \"style\" }\n ),\n outliercolor: {\n valType: \"color\",\n editType: \"style\"\n },\n outlierwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"plot\"\n },\n line: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 2,\n editType: \"style\"\n },\n editType: \"plot\"\n },\n fillcolor: makeFillcolorAttr(),\n whiskerwidth: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5,\n editType: \"calc\"\n },\n showwhiskers: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n selected: {\n marker: scatterAttrs.selected.marker,\n editType: \"style\"\n },\n unselected: {\n marker: scatterAttrs.unselected.marker,\n editType: \"style\"\n },\n text: extendFlat({}, scatterAttrs.text, {}),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n hovertemplate: hovertemplateAttrs({}),\n hoveron: {\n valType: \"flaglist\",\n flags: [\"boxes\", \"points\"],\n dflt: \"boxes+points\",\n editType: \"style\"\n },\n zorder: scatterAttrs.zorder\n };\n }\n });\n\n // src/traces/box/layout_attributes.js\n var require_layout_attributes7 = __commonJS({\n \"src/traces/box/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n boxmode: {\n valType: \"enumerated\",\n values: [\"group\", \"overlay\"],\n dflt: \"overlay\",\n editType: \"calc\"\n },\n boxgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.3,\n editType: \"calc\"\n },\n boxgroupgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.3,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/box/defaults.js\n var require_defaults20 = __commonJS({\n \"src/traces/box/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var Color2 = require_color();\n var handlePeriodDefaults = require_period_defaults();\n var handleGroupingDefaults = require_grouping_defaults();\n var autoType = require_axis_autotype();\n var attributes = require_attributes24();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if (traceOut.visible === false) return;\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n var hasPreCompStats = traceOut._hasPreCompStats;\n if (hasPreCompStats) {\n coerce(\"lowerfence\");\n coerce(\"upperfence\");\n }\n coerce(\"line.color\", (traceIn.marker || {}).color || defaultColor);\n coerce(\"line.width\");\n coerce(\"fillcolor\", Color2.addOpacity(traceOut.line.color, 0.5));\n var boxmeanDflt = false;\n if (hasPreCompStats) {\n var mean = coerce(\"mean\");\n var sd = coerce(\"sd\");\n if (mean && mean.length) {\n boxmeanDflt = true;\n if (sd && sd.length) boxmeanDflt = \"sd\";\n }\n }\n coerce(\"whiskerwidth\");\n var sizemode = coerce(\"sizemode\");\n var boxmean;\n if (sizemode === \"quartiles\") {\n boxmean = coerce(\"boxmean\", boxmeanDflt);\n }\n coerce(\"showwhiskers\", sizemode === \"quartiles\");\n if (sizemode === \"sd\" || boxmean === \"sd\") {\n coerce(\"sdmultiple\");\n }\n coerce(\"width\");\n coerce(\"quartilemethod\");\n var notchedDflt = false;\n if (hasPreCompStats) {\n var notchspan = coerce(\"notchspan\");\n if (notchspan && notchspan.length) {\n notchedDflt = true;\n }\n } else if (Lib.validate(traceIn.notchwidth, attributes.notchwidth)) {\n notchedDflt = true;\n }\n var notched = coerce(\"notched\", notchedDflt);\n if (notched) coerce(\"notchwidth\");\n handlePointsDefaults(traceIn, traceOut, coerce, { prefix: \"box\" });\n coerce(\"zorder\");\n }\n function handleSampleDefaults(traceIn, traceOut, coerce, layout) {\n function getDims(arr) {\n var dims = 0;\n if (arr && arr.length) {\n dims += 1;\n if (Lib.isArrayOrTypedArray(arr[0]) && arr[0].length) {\n dims += 1;\n }\n }\n return dims;\n }\n function valid(astr) {\n return Lib.validate(traceIn[astr], attributes[astr]);\n }\n var y = coerce(\"y\");\n var x = coerce(\"x\");\n var sLen;\n if (traceOut.type === \"box\") {\n var q1 = coerce(\"q1\");\n var median = coerce(\"median\");\n var q3 = coerce(\"q3\");\n traceOut._hasPreCompStats = q1 && q1.length && median && median.length && q3 && q3.length;\n sLen = Math.min(\n Lib.minRowLength(q1),\n Lib.minRowLength(median),\n Lib.minRowLength(q3)\n );\n }\n var yDims = getDims(y);\n var xDims = getDims(x);\n var yLen = yDims && Lib.minRowLength(y);\n var xLen = xDims && Lib.minRowLength(x);\n var calendar = layout.calendar;\n var opts = {\n autotypenumbers: layout.autotypenumbers\n };\n var defaultOrientation, len;\n if (traceOut._hasPreCompStats) {\n switch (String(xDims) + String(yDims)) {\n // no x / no y\n case \"00\":\n var setInX = valid(\"x0\") || valid(\"dx\");\n var setInY = valid(\"y0\") || valid(\"dy\");\n if (setInY && !setInX) {\n defaultOrientation = \"h\";\n } else {\n defaultOrientation = \"v\";\n }\n len = sLen;\n break;\n // just x\n case \"10\":\n defaultOrientation = \"v\";\n len = Math.min(sLen, xLen);\n break;\n case \"20\":\n defaultOrientation = \"h\";\n len = Math.min(sLen, x.length);\n break;\n // just y\n case \"01\":\n defaultOrientation = \"h\";\n len = Math.min(sLen, yLen);\n break;\n case \"02\":\n defaultOrientation = \"v\";\n len = Math.min(sLen, y.length);\n break;\n // both\n case \"12\":\n defaultOrientation = \"v\";\n len = Math.min(sLen, xLen, y.length);\n break;\n case \"21\":\n defaultOrientation = \"h\";\n len = Math.min(sLen, x.length, yLen);\n break;\n case \"11\":\n len = 0;\n break;\n case \"22\":\n var hasCategories = false;\n var i;\n for (i = 0; i < x.length; i++) {\n if (autoType(x[i], calendar, opts) === \"category\") {\n hasCategories = true;\n break;\n }\n }\n if (hasCategories) {\n defaultOrientation = \"v\";\n len = Math.min(sLen, xLen, y.length);\n } else {\n for (i = 0; i < y.length; i++) {\n if (autoType(y[i], calendar, opts) === \"category\") {\n hasCategories = true;\n break;\n }\n }\n if (hasCategories) {\n defaultOrientation = \"h\";\n len = Math.min(sLen, x.length, yLen);\n } else {\n defaultOrientation = \"v\";\n len = Math.min(sLen, xLen, y.length);\n }\n }\n break;\n }\n } else if (yDims > 0) {\n defaultOrientation = \"v\";\n if (xDims > 0) {\n len = Math.min(xLen, yLen);\n } else {\n len = Math.min(yLen);\n }\n } else if (xDims > 0) {\n defaultOrientation = \"h\";\n len = Math.min(xLen);\n } else {\n len = 0;\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n var orientation = coerce(\"orientation\", defaultOrientation);\n if (traceOut._hasPreCompStats) {\n if (orientation === \"v\" && xDims === 0) {\n coerce(\"x0\", 0);\n coerce(\"dx\", 1);\n } else if (orientation === \"h\" && yDims === 0) {\n coerce(\"y0\", 0);\n coerce(\"dy\", 1);\n }\n } else {\n if (orientation === \"v\" && xDims === 0) {\n coerce(\"x0\");\n } else if (orientation === \"h\" && yDims === 0) {\n coerce(\"y0\");\n }\n }\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\"], layout);\n }\n function handlePointsDefaults(traceIn, traceOut, coerce, opts) {\n var prefix = opts.prefix;\n var outlierColorDflt = Lib.coerce2(traceIn, traceOut, attributes, \"marker.outliercolor\");\n var lineoutliercolor = coerce(\"marker.line.outliercolor\");\n var modeDflt = \"outliers\";\n if (traceOut._hasPreCompStats) {\n modeDflt = \"all\";\n } else if (outlierColorDflt || lineoutliercolor) {\n modeDflt = \"suspectedoutliers\";\n }\n var mode = coerce(prefix + \"points\", modeDflt);\n if (mode) {\n coerce(\"jitter\", mode === \"all\" ? 0.3 : 0);\n coerce(\"pointpos\", mode === \"all\" ? -1.5 : 0);\n coerce(\"marker.symbol\");\n coerce(\"marker.opacity\");\n coerce(\"marker.size\");\n coerce(\"marker.angle\");\n coerce(\"marker.color\", traceOut.line.color);\n coerce(\"marker.line.color\");\n coerce(\"marker.line.width\");\n if (mode === \"suspectedoutliers\") {\n coerce(\"marker.line.outliercolor\", traceOut.marker.color);\n coerce(\"marker.line.outlierwidth\");\n }\n coerce(\"selected.marker.color\");\n coerce(\"unselected.marker.color\");\n coerce(\"selected.marker.size\");\n coerce(\"unselected.marker.size\");\n coerce(\"text\");\n coerce(\"hovertext\");\n } else {\n delete traceOut.marker;\n }\n var hoveron = coerce(\"hoveron\");\n if (hoveron === \"all\" || hoveron.indexOf(\"points\") !== -1) {\n coerce(\"hovertemplate\");\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n }\n function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n for (var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n var traceType = traceOut.type;\n if (traceType === \"box\" || traceType === \"violin\") {\n traceIn = traceOut._input;\n var mode = fullLayout[traceType + \"mode\"];\n if (mode === \"group\") {\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, mode);\n }\n }\n }\n }\n module.exports = {\n supplyDefaults,\n crossTraceDefaults,\n handleSampleDefaults,\n handlePointsDefaults\n };\n }\n });\n\n // src/traces/box/layout_defaults.js\n var require_layout_defaults6 = __commonJS({\n \"src/traces/box/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes7();\n function _supply(layoutIn, layoutOut, fullData, coerce, traceType) {\n var category = traceType + \"Layout\";\n var hasTraceType = false;\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (Registry.traceIs(trace, category)) {\n hasTraceType = true;\n break;\n }\n }\n if (!hasTraceType) return;\n coerce(traceType + \"mode\");\n coerce(traceType + \"gap\");\n coerce(traceType + \"groupgap\");\n }\n function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n _supply(layoutIn, layoutOut, fullData, coerce, \"box\");\n }\n module.exports = {\n supplyLayoutDefaults,\n _supply\n };\n }\n });\n\n // src/traces/box/calc.js\n var require_calc6 = __commonJS({\n \"src/traces/box/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var _ = Lib._;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var cd = [];\n var numKey = trace.type === \"violin\" ? \"_numViolins\" : \"_numBoxes\";\n var i, j;\n var valAxis, valLetter;\n var posAxis, posLetter;\n var hasPeriod;\n if (trace.orientation === \"h\") {\n valAxis = xa;\n valLetter = \"x\";\n posAxis = ya;\n posLetter = \"y\";\n hasPeriod = !!trace.yperiodalignment;\n } else {\n valAxis = ya;\n valLetter = \"y\";\n posAxis = xa;\n posLetter = \"x\";\n hasPeriod = !!trace.xperiodalignment;\n }\n var allPosArrays = getPosArrays(trace, posLetter, posAxis, fullLayout[numKey]);\n var posArray = allPosArrays[0];\n var origPos = allPosArrays[1];\n var dv = Lib.distinctVals(posArray, posAxis);\n var posDistinct = dv.vals;\n var dPos = dv.minDiff / 2;\n var cdi;\n var pts;\n var boxVals;\n var N;\n var pt;\n var v;\n var ptFilterFn = (trace.boxpoints || trace.points) === \"all\" ? Lib.identity : function(pt2) {\n return pt2.v < cdi.lf || pt2.v > cdi.uf;\n };\n if (trace._hasPreCompStats) {\n var valArrayRaw = trace[valLetter];\n var d2c = function(k) {\n return valAxis.d2c((trace[k] || [])[i]);\n };\n var minVal = Infinity;\n var maxVal = -Infinity;\n for (i = 0; i < trace._length; i++) {\n var posi = posArray[i];\n if (!isNumeric(posi)) continue;\n cdi = {};\n cdi.pos = cdi[posLetter] = posi;\n if (hasPeriod && origPos) {\n cdi.orig_p = origPos[i];\n }\n cdi.q1 = d2c(\"q1\");\n cdi.med = d2c(\"median\");\n cdi.q3 = d2c(\"q3\");\n pts = [];\n if (valArrayRaw && Lib.isArrayOrTypedArray(valArrayRaw[i])) {\n for (j = 0; j < valArrayRaw[i].length; j++) {\n v = valAxis.d2c(valArrayRaw[i][j]);\n if (v !== BADNUM) {\n pt = { v, i: [i, j] };\n arraysToCalcdata(pt, trace, [i, j]);\n pts.push(pt);\n }\n }\n }\n cdi.pts = pts.sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n if (cdi.med !== BADNUM && cdi.q1 !== BADNUM && cdi.q3 !== BADNUM && cdi.med >= cdi.q1 && cdi.q3 >= cdi.med) {\n var lf = d2c(\"lowerfence\");\n cdi.lf = lf !== BADNUM && lf <= cdi.q1 ? lf : computeLowerFence(cdi, boxVals, N);\n var uf = d2c(\"upperfence\");\n cdi.uf = uf !== BADNUM && uf >= cdi.q3 ? uf : computeUpperFence(cdi, boxVals, N);\n var mean = d2c(\"mean\");\n cdi.mean = mean !== BADNUM ? mean : N ? Lib.mean(boxVals, N) : (cdi.q1 + cdi.q3) / 2;\n var sd = d2c(\"sd\");\n cdi.sd = mean !== BADNUM && sd >= 0 ? sd : N ? Lib.stdev(boxVals, N, cdi.mean) : cdi.q3 - cdi.q1;\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n var ns = d2c(\"notchspan\");\n ns = ns !== BADNUM && ns > 0 ? ns : computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - ns;\n cdi.un = cdi.med + ns;\n var imin = cdi.lf;\n var imax = cdi.uf;\n if (trace.boxpoints && boxVals.length) {\n imin = Math.min(imin, boxVals[0]);\n imax = Math.max(imax, boxVals[N - 1]);\n }\n if (trace.notched) {\n imin = Math.min(imin, cdi.ln);\n imax = Math.max(imax, cdi.un);\n }\n cdi.min = imin;\n cdi.max = imax;\n } else {\n Lib.warn([\n \"Invalid input - make sure that q1 <= median <= q3\",\n \"q1 = \" + cdi.q1,\n \"median = \" + cdi.med,\n \"q3 = \" + cdi.q3\n ].join(\"\\n\"));\n var v0;\n if (cdi.med !== BADNUM) {\n v0 = cdi.med;\n } else if (cdi.q1 !== BADNUM) {\n if (cdi.q3 !== BADNUM) v0 = (cdi.q1 + cdi.q3) / 2;\n else v0 = cdi.q1;\n } else if (cdi.q3 !== BADNUM) {\n v0 = cdi.q3;\n } else {\n v0 = 0;\n }\n cdi.med = v0;\n cdi.q1 = cdi.q3 = v0;\n cdi.lf = cdi.uf = v0;\n cdi.mean = cdi.sd = v0;\n cdi.ln = cdi.un = v0;\n cdi.min = cdi.max = v0;\n }\n minVal = Math.min(minVal, cdi.min);\n maxVal = Math.max(maxVal, cdi.max);\n cdi.pts2 = pts.filter(ptFilterFn);\n cd.push(cdi);\n }\n trace._extremes[valAxis._id] = Axes.findExtremes(\n valAxis,\n [minVal, maxVal],\n { padded: true }\n );\n } else {\n var valArray = valAxis.makeCalcdata(trace, valLetter);\n var posBins = makeBins(posDistinct, dPos);\n var pLen = posDistinct.length;\n var ptsPerBin = initNestedArray(pLen);\n for (i = 0; i < trace._length; i++) {\n v = valArray[i];\n if (!isNumeric(v)) continue;\n var n = Lib.findBin(posArray[i], posBins);\n if (n >= 0 && n < pLen) {\n pt = { v, i };\n arraysToCalcdata(pt, trace, i);\n ptsPerBin[n].push(pt);\n }\n }\n var minLowerNotch = Infinity;\n var maxUpperNotch = -Infinity;\n var quartilemethod = trace.quartilemethod;\n var usesExclusive = quartilemethod === \"exclusive\";\n var usesInclusive = quartilemethod === \"inclusive\";\n for (i = 0; i < pLen; i++) {\n if (ptsPerBin[i].length > 0) {\n cdi = {};\n cdi.pos = cdi[posLetter] = posDistinct[i];\n pts = cdi.pts = ptsPerBin[i].sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n cdi.min = boxVals[0];\n cdi.max = boxVals[N - 1];\n cdi.mean = Lib.mean(boxVals, N);\n cdi.sd = Lib.stdev(boxVals, N, cdi.mean) * trace.sdmultiple;\n cdi.med = Lib.interp(boxVals, 0.5);\n if (N % 2 && (usesExclusive || usesInclusive)) {\n var lower;\n var upper;\n if (usesExclusive) {\n lower = boxVals.slice(0, N / 2);\n upper = boxVals.slice(N / 2 + 1);\n } else if (usesInclusive) {\n lower = boxVals.slice(0, N / 2 + 1);\n upper = boxVals.slice(N / 2);\n }\n cdi.q1 = Lib.interp(lower, 0.5);\n cdi.q3 = Lib.interp(upper, 0.5);\n } else {\n cdi.q1 = Lib.interp(boxVals, 0.25);\n cdi.q3 = Lib.interp(boxVals, 0.75);\n }\n cdi.lf = computeLowerFence(cdi, boxVals, N);\n cdi.uf = computeUpperFence(cdi, boxVals, N);\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n var mci = computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - mci;\n cdi.un = cdi.med + mci;\n minLowerNotch = Math.min(minLowerNotch, cdi.ln);\n maxUpperNotch = Math.max(maxUpperNotch, cdi.un);\n cdi.pts2 = pts.filter(ptFilterFn);\n cd.push(cdi);\n }\n }\n if (trace.notched && Lib.isTypedArray(valArray)) valArray = Array.from(valArray);\n trace._extremes[valAxis._id] = Axes.findExtremes(\n valAxis,\n trace.notched ? valArray.concat([minLowerNotch, maxUpperNotch]) : valArray,\n { padded: true }\n );\n }\n calcSelection(cd, trace);\n if (cd.length > 0) {\n cd[0].t = {\n num: fullLayout[numKey],\n dPos,\n posLetter,\n valLetter,\n labels: {\n med: _(gd, \"median:\"),\n min: _(gd, \"min:\"),\n q1: _(gd, \"q1:\"),\n q3: _(gd, \"q3:\"),\n max: _(gd, \"max:\"),\n mean: trace.boxmean === \"sd\" || trace.sizemode === \"sd\" ? _(gd, \"mean \\xB1 \\u03C3:\").replace(\"\\u03C3\", trace.sdmultiple === 1 ? \"\\u03C3\" : trace.sdmultiple + \"\\u03C3\") : (\n // displaying mean +- Nσ whilst supporting translations\n _(gd, \"mean:\")\n ),\n lf: _(gd, \"lower fence:\"),\n uf: _(gd, \"upper fence:\")\n }\n };\n fullLayout[numKey]++;\n return cd;\n } else {\n return [{ t: { empty: true } }];\n }\n };\n function getPosArrays(trace, posLetter, posAxis, num) {\n var hasPosArray = posLetter in trace;\n var hasPos0 = posLetter + \"0\" in trace;\n var hasPosStep = \"d\" + posLetter in trace;\n if (hasPosArray || hasPos0 && hasPosStep) {\n var origPos = posAxis.makeCalcdata(trace, posLetter);\n var pos = alignPeriod(trace, posAxis, posLetter, origPos).vals;\n return [pos, origPos];\n }\n var pos0;\n if (hasPos0) {\n pos0 = trace[posLetter + \"0\"];\n } else if (\"name\" in trace && (posAxis.type === \"category\" || isNumeric(trace.name) && [\"linear\", \"log\"].indexOf(posAxis.type) !== -1 || Lib.isDateTime(trace.name) && posAxis.type === \"date\")) {\n pos0 = trace.name;\n } else {\n pos0 = num;\n }\n var pos0c = posAxis.type === \"multicategory\" ? posAxis.r2c_just_indices(pos0) : posAxis.d2c(pos0, 0, trace[posLetter + \"calendar\"]);\n var len = trace._length;\n var out = new Array(len);\n for (var i = 0; i < len; i++) out[i] = pos0c;\n return [out];\n }\n function makeBins(x, dx) {\n var len = x.length;\n var bins = new Array(len + 1);\n for (var i = 0; i < len; i++) {\n bins[i] = x[i] - dx;\n }\n bins[len] = x[len - 1] + dx;\n return bins;\n }\n function initNestedArray(len) {\n var arr = new Array(len);\n for (var i = 0; i < len; i++) {\n arr[i] = [];\n }\n return arr;\n }\n var TRACE_TO_CALC = {\n text: \"tx\",\n hovertext: \"htx\"\n };\n function arraysToCalcdata(pt, trace, ptNumber) {\n for (var k in TRACE_TO_CALC) {\n if (Lib.isArrayOrTypedArray(trace[k])) {\n if (Array.isArray(ptNumber)) {\n if (Lib.isArrayOrTypedArray(trace[k][ptNumber[0]])) {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber[0]][ptNumber[1]];\n }\n } else {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber];\n }\n }\n }\n }\n function calcSelection(cd, trace) {\n if (Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n for (var i = 0; i < cd.length; i++) {\n var pts = cd[i].pts || [];\n var ptNumber2cdIndex = {};\n for (var j = 0; j < pts.length; j++) {\n ptNumber2cdIndex[pts[j].i] = j;\n }\n Lib.tagSelected(pts, trace, ptNumber2cdIndex);\n }\n }\n }\n function sortByVal(a, b) {\n return a.v - b.v;\n }\n function extractVal(o) {\n return o.v;\n }\n function computeLowerFence(cdi, boxVals, N) {\n if (N === 0) return cdi.q1;\n return Math.min(\n cdi.q1,\n boxVals[Math.min(\n Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,\n N - 1\n )]\n );\n }\n function computeUpperFence(cdi, boxVals, N) {\n if (N === 0) return cdi.q3;\n return Math.max(\n cdi.q3,\n boxVals[Math.max(\n Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),\n 0\n )]\n );\n }\n function computeLowerOutlierBound(cdi) {\n return 4 * cdi.q1 - 3 * cdi.q3;\n }\n function computeUpperOutlierBound(cdi) {\n return 4 * cdi.q3 - 3 * cdi.q1;\n }\n function computeNotchSpan(cdi, N) {\n if (N === 0) return 0;\n return 1.57 * (cdi.q3 - cdi.q1) / Math.sqrt(N);\n }\n }\n });\n\n // src/traces/box/cross_trace_calc.js\n var require_cross_trace_calc3 = __commonJS({\n \"src/traces/box/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var Lib = require_lib();\n var getAxisGroup = require_constraints().getAxisGroup;\n var orientations = [\"v\", \"h\"];\n function crossTraceCalc(gd, plotinfo) {\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n for (var i = 0; i < orientations.length; i++) {\n var orientation = orientations[i];\n var posAxis = orientation === \"h\" ? ya : xa;\n var boxList = [];\n for (var j = 0; j < calcdata.length; j++) {\n var cd = calcdata[j];\n var t = cd[0].t;\n var trace = cd[0].trace;\n if (trace.visible === true && (trace.type === \"box\" || trace.type === \"candlestick\") && !t.empty && (trace.orientation || \"v\") === orientation && trace.xaxis === xa._id && trace.yaxis === ya._id) {\n boxList.push(j);\n }\n }\n setPositionOffset(\"box\", gd, boxList, posAxis);\n }\n }\n function setPositionOffset(traceType, gd, boxList, posAxis) {\n var calcdata = gd.calcdata;\n var fullLayout = gd._fullLayout;\n var axId = posAxis._id;\n var axLetter = axId.charAt(0);\n var i, j, calcTrace;\n var pointList = [];\n var shownPts = 0;\n for (i = 0; i < boxList.length; i++) {\n calcTrace = calcdata[boxList[i]];\n for (j = 0; j < calcTrace.length; j++) {\n pointList.push(posAxis.c2l(calcTrace[j].pos, true));\n shownPts += (calcTrace[j].pts2 || []).length;\n }\n }\n if (!pointList.length) return;\n var boxdv = Lib.distinctVals(pointList);\n if (posAxis.type === \"category\" || posAxis.type === \"multicategory\") {\n boxdv.minDiff = 1;\n }\n var dPos0 = boxdv.minDiff / 2;\n Axes.minDtick(posAxis, boxdv.minDiff, boxdv.vals[0], true);\n var numKey = traceType === \"violin\" ? \"_numViolins\" : \"_numBoxes\";\n var numTotal = fullLayout[numKey];\n var group = fullLayout[traceType + \"mode\"] === \"group\" && numTotal > 1;\n var groupFraction = 1 - fullLayout[traceType + \"gap\"];\n var groupGapFraction = 1 - fullLayout[traceType + \"groupgap\"];\n for (i = 0; i < boxList.length; i++) {\n calcTrace = calcdata[boxList[i]];\n var trace = calcTrace[0].trace;\n var t = calcTrace[0].t;\n var width = trace.width;\n var side = trace.side;\n var dPos;\n var bdPos;\n var bPos;\n var wHover;\n if (width) {\n dPos = bdPos = wHover = width / 2;\n bPos = 0;\n } else {\n dPos = dPos0;\n if (group) {\n var groupId = getAxisGroup(fullLayout, posAxis._id) + trace.orientation;\n var alignmentGroups = fullLayout._alignmentOpts[groupId] || {};\n var alignmentGroupOpts = alignmentGroups[trace.alignmentgroup] || {};\n var nOffsetGroups = Object.keys(alignmentGroupOpts.offsetGroups || {}).length;\n var num = nOffsetGroups || numTotal;\n var shift = nOffsetGroups ? trace._offsetIndex : t.num;\n bdPos = dPos * groupFraction * groupGapFraction / num;\n bPos = 2 * dPos * (-0.5 + (shift + 0.5) / num) * groupFraction;\n wHover = dPos * groupFraction / num;\n } else {\n bdPos = dPos * groupFraction * groupGapFraction;\n bPos = 0;\n wHover = dPos;\n }\n }\n t.dPos = dPos;\n t.bPos = bPos;\n t.bdPos = bdPos;\n t.wHover = wHover;\n var pushplus;\n var pushminus;\n var edge = bPos + bdPos;\n var edgeplus;\n var edgeminus;\n var vpadplus;\n var vpadminus;\n var ppadplus;\n var ppadminus;\n var padded = Boolean(width);\n var hasPts = (trace.boxpoints || trace.points) && shownPts > 0;\n if (side === \"positive\") {\n pushplus = dPos * (width ? 1 : 0.5);\n edgeplus = edge;\n pushminus = edgeplus = bPos;\n } else if (side === \"negative\") {\n pushplus = edgeplus = bPos;\n pushminus = dPos * (width ? 1 : 0.5);\n edgeminus = edge;\n } else {\n pushplus = pushminus = dPos;\n edgeplus = edgeminus = edge;\n }\n if (hasPts) {\n var pointpos = trace.pointpos;\n var jitter = trace.jitter;\n var ms = trace.marker.size / 2;\n var pp = 0;\n if (pointpos + jitter >= 0) {\n pp = edge * (pointpos + jitter);\n if (pp > pushplus) {\n padded = true;\n ppadplus = ms;\n vpadplus = pp;\n } else if (pp > edgeplus) {\n ppadplus = ms;\n vpadplus = pushplus;\n }\n }\n if (pp <= pushplus) {\n vpadplus = pushplus;\n }\n var pm = 0;\n if (pointpos - jitter <= 0) {\n pm = -edge * (pointpos - jitter);\n if (pm > pushminus) {\n padded = true;\n ppadminus = ms;\n vpadminus = pm;\n } else if (pm > edgeminus) {\n ppadminus = ms;\n vpadminus = pushminus;\n }\n }\n if (pm <= pushminus) {\n vpadminus = pushminus;\n }\n } else {\n vpadplus = pushplus;\n vpadminus = pushminus;\n }\n var pos = new Array(calcTrace.length);\n for (j = 0; j < calcTrace.length; j++) {\n pos[j] = calcTrace[j].pos;\n }\n trace._extremes[axId] = Axes.findExtremes(posAxis, pos, {\n padded,\n vpadminus,\n vpadplus,\n vpadLinearized: true,\n // N.B. SVG px-space positive/negative\n ppadminus: { x: ppadminus, y: ppadplus }[axLetter],\n ppadplus: { x: ppadplus, y: ppadminus }[axLetter]\n });\n }\n }\n module.exports = {\n crossTraceCalc,\n setPositionOffset\n };\n }\n });\n\n // src/traces/box/plot.js\n var require_plot4 = __commonJS({\n \"src/traces/box/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var JITTERCOUNT = 5;\n var JITTERSPREAD = 0.01;\n function plot(gd, plotinfo, cdbox, boxLayer) {\n var isStatic = gd._context.staticPlot;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(boxLayer, cdbox, \"trace boxes\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n t.wdPos = t.bdPos * trace.whiskerwidth;\n if (trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n var posAxis, valAxis;\n if (trace.orientation === \"h\") {\n posAxis = ya;\n valAxis = xa;\n } else {\n posAxis = xa;\n valAxis = ya;\n }\n plotBoxAndWhiskers(plotGroup, { pos: posAxis, val: valAxis }, trace, t, isStatic);\n plotPoints(plotGroup, { x: xa, y: ya }, trace, t);\n plotBoxMean(plotGroup, { pos: posAxis, val: valAxis }, trace, t);\n });\n }\n function plotBoxAndWhiskers(sel, axes, trace, t, isStatic) {\n var isHorizontal = trace.orientation === \"h\";\n var valAxis = axes.val;\n var posAxis = axes.pos;\n var posHasRangeBreaks = !!posAxis.rangebreaks;\n var bPos = t.bPos;\n var wdPos = t.wdPos || 0;\n var bPosPxOffset = t.bPosPxOffset || 0;\n var whiskerWidth = trace.whiskerwidth || 0;\n var showWhiskers = trace.showwhiskers !== false;\n var notched = trace.notched || false;\n var nw = notched ? 1 - 2 * trace.notchwidth : 1;\n var bdPos0;\n var bdPos1;\n if (Array.isArray(t.bdPos)) {\n bdPos0 = t.bdPos[0];\n bdPos1 = t.bdPos[1];\n } else {\n bdPos0 = t.bdPos;\n bdPos1 = t.bdPos;\n }\n var paths = sel.selectAll(\"path.box\").data(trace.type !== \"violin\" || trace.box.visible ? Lib.identity : []);\n paths.enter().append(\"path\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").attr(\"class\", \"box\");\n paths.exit().remove();\n paths.each(function(d) {\n if (d.empty) return d3.select(this).attr(\"d\", \"M0,0Z\");\n var lcenter = posAxis.c2l(d.pos + bPos, true);\n var pos0 = posAxis.l2p(lcenter - bdPos0) + bPosPxOffset;\n var pos1 = posAxis.l2p(lcenter + bdPos1) + bPosPxOffset;\n var posc = posHasRangeBreaks ? (pos0 + pos1) / 2 : posAxis.l2p(lcenter) + bPosPxOffset;\n var r = trace.whiskerwidth;\n var posw0 = posHasRangeBreaks ? pos0 * r + (1 - r) * posc : posAxis.l2p(lcenter - wdPos) + bPosPxOffset;\n var posw1 = posHasRangeBreaks ? pos1 * r + (1 - r) * posc : posAxis.l2p(lcenter + wdPos) + bPosPxOffset;\n var posm0 = posAxis.l2p(lcenter - bdPos0 * nw) + bPosPxOffset;\n var posm1 = posAxis.l2p(lcenter + bdPos1 * nw) + bPosPxOffset;\n var sdmode = trace.sizemode === \"sd\";\n var q1 = valAxis.c2p(sdmode ? d.mean - d.sd : d.q1, true);\n var q3 = sdmode ? valAxis.c2p(d.mean + d.sd, true) : valAxis.c2p(d.q3, true);\n var m = Lib.constrain(\n sdmode ? valAxis.c2p(d.mean, true) : valAxis.c2p(d.med, true),\n Math.min(q1, q3) + 1,\n Math.max(q1, q3) - 1\n );\n var useExtremes = d.lf === void 0 || trace.boxpoints === false || sdmode;\n var lf = valAxis.c2p(useExtremes ? d.min : d.lf, true);\n var uf = valAxis.c2p(useExtremes ? d.max : d.uf, true);\n var ln = valAxis.c2p(d.ln, true);\n var un = valAxis.c2p(d.un, true);\n if (isHorizontal) {\n d3.select(this).attr(\n \"d\",\n \"M\" + m + \",\" + posm0 + \"V\" + posm1 + // median line\n \"M\" + q1 + \",\" + pos0 + \"V\" + pos1 + // left edge\n (notched ? \"H\" + ln + \"L\" + m + \",\" + posm1 + \"L\" + un + \",\" + pos1 : \"\") + // top notched edge\n \"H\" + q3 + // end of the top edge\n \"V\" + pos0 + // right edge\n (notched ? \"H\" + un + \"L\" + m + \",\" + posm0 + \"L\" + ln + \",\" + pos0 : \"\") + // bottom notched edge\n \"Z\" + // end of the box\n (showWhiskers ? \"M\" + q1 + \",\" + posc + \"H\" + lf + \"M\" + q3 + \",\" + posc + \"H\" + uf + // whiskers\n (whiskerWidth === 0 ? \"\" : (\n // whisker caps\n \"M\" + lf + \",\" + posw0 + \"V\" + posw1 + \"M\" + uf + \",\" + posw0 + \"V\" + posw1\n )) : \"\")\n );\n } else {\n d3.select(this).attr(\n \"d\",\n \"M\" + posm0 + \",\" + m + \"H\" + posm1 + // median line\n \"M\" + pos0 + \",\" + q1 + \"H\" + pos1 + // top of the box\n (notched ? \"V\" + ln + \"L\" + posm1 + \",\" + m + \"L\" + pos1 + \",\" + un : \"\") + // notched right edge\n \"V\" + q3 + // end of the right edge\n \"H\" + pos0 + // bottom of the box\n (notched ? \"V\" + un + \"L\" + posm0 + \",\" + m + \"L\" + pos0 + \",\" + ln : \"\") + // notched left edge\n \"Z\" + // end of the box\n (showWhiskers ? \"M\" + posc + \",\" + q1 + \"V\" + lf + \"M\" + posc + \",\" + q3 + \"V\" + uf + // whiskers\n (whiskerWidth === 0 ? \"\" : (\n // whisker caps\n \"M\" + posw0 + \",\" + lf + \"H\" + posw1 + \"M\" + posw0 + \",\" + uf + \"H\" + posw1\n )) : \"\")\n );\n }\n });\n }\n function plotPoints(sel, axes, trace, t) {\n var xa = axes.x;\n var ya = axes.y;\n var bdPos = t.bdPos;\n var bPos = t.bPos;\n var mode = trace.boxpoints || trace.points;\n Lib.seedPseudoRandom();\n var fn = function(d) {\n d.forEach(function(v) {\n v.t = t;\n v.trace = trace;\n });\n return d;\n };\n var gPoints = sel.selectAll(\"g.points\").data(mode ? fn : []);\n gPoints.enter().append(\"g\").attr(\"class\", \"points\");\n gPoints.exit().remove();\n var paths = gPoints.selectAll(\"path\").data(function(d) {\n var i;\n var pts = d.pts2;\n var typicalSpread = Math.max((d.max - d.min) / 10, d.q3 - d.q1);\n var minSpread = typicalSpread * 1e-9;\n var spreadLimit = typicalSpread * JITTERSPREAD;\n var jitterFactors = [];\n var maxJitterFactor = 0;\n var newJitter;\n if (trace.jitter) {\n if (typicalSpread === 0) {\n maxJitterFactor = 1;\n jitterFactors = new Array(pts.length);\n for (i = 0; i < pts.length; i++) {\n jitterFactors[i] = 1;\n }\n } else {\n for (i = 0; i < pts.length; i++) {\n var i0 = Math.max(0, i - JITTERCOUNT);\n var pmin = pts[i0].v;\n var i1 = Math.min(pts.length - 1, i + JITTERCOUNT);\n var pmax = pts[i1].v;\n if (mode !== \"all\") {\n if (pts[i].v < d.lf) pmax = Math.min(pmax, d.lf);\n else pmin = Math.max(pmin, d.uf);\n }\n var jitterFactor = Math.sqrt(spreadLimit * (i1 - i0) / (pmax - pmin + minSpread)) || 0;\n jitterFactor = Lib.constrain(Math.abs(jitterFactor), 0, 1);\n jitterFactors.push(jitterFactor);\n maxJitterFactor = Math.max(jitterFactor, maxJitterFactor);\n }\n }\n newJitter = trace.jitter * 2 / (maxJitterFactor || 1);\n }\n for (i = 0; i < pts.length; i++) {\n var pt = pts[i];\n var v = pt.v;\n var jitterOffset = trace.jitter ? newJitter * jitterFactors[i] * (Lib.pseudoRandom() - 0.5) : 0;\n var posPx = d.pos + bPos + bdPos * (trace.pointpos + jitterOffset);\n if (trace.orientation === \"h\") {\n pt.y = posPx;\n pt.x = v;\n } else {\n pt.x = posPx;\n pt.y = v;\n }\n if (mode === \"suspectedoutliers\" && v < d.uo && v > d.lo) {\n pt.so = true;\n }\n }\n return pts;\n });\n paths.enter().append(\"path\").classed(\"point\", true);\n paths.exit().remove();\n paths.call(Drawing.translatePoints, xa, ya);\n }\n function plotBoxMean(sel, axes, trace, t) {\n var valAxis = axes.val;\n var posAxis = axes.pos;\n var posHasRangeBreaks = !!posAxis.rangebreaks;\n var bPos = t.bPos;\n var bPosPxOffset = t.bPosPxOffset || 0;\n var mode = trace.boxmean || (trace.meanline || {}).visible;\n var bdPos0;\n var bdPos1;\n if (Array.isArray(t.bdPos)) {\n bdPos0 = t.bdPos[0];\n bdPos1 = t.bdPos[1];\n } else {\n bdPos0 = t.bdPos;\n bdPos1 = t.bdPos;\n }\n var paths = sel.selectAll(\"path.mean\").data(trace.type === \"box\" && trace.boxmean || trace.type === \"violin\" && trace.box.visible && trace.meanline.visible ? Lib.identity : []);\n paths.enter().append(\"path\").attr(\"class\", \"mean\").style({\n fill: \"none\",\n \"vector-effect\": \"non-scaling-stroke\"\n });\n paths.exit().remove();\n paths.each(function(d) {\n var lcenter = posAxis.c2l(d.pos + bPos, true);\n var pos0 = posAxis.l2p(lcenter - bdPos0) + bPosPxOffset;\n var pos1 = posAxis.l2p(lcenter + bdPos1) + bPosPxOffset;\n var posc = posHasRangeBreaks ? (pos0 + pos1) / 2 : posAxis.l2p(lcenter) + bPosPxOffset;\n var m = valAxis.c2p(d.mean, true);\n var sl = valAxis.c2p(d.mean - d.sd, true);\n var sh = valAxis.c2p(d.mean + d.sd, true);\n if (trace.orientation === \"h\") {\n d3.select(this).attr(\n \"d\",\n \"M\" + m + \",\" + pos0 + \"V\" + pos1 + (mode === \"sd\" ? \"m0,0L\" + sl + \",\" + posc + \"L\" + m + \",\" + pos0 + \"L\" + sh + \",\" + posc + \"Z\" : \"\")\n );\n } else {\n d3.select(this).attr(\n \"d\",\n \"M\" + pos0 + \",\" + m + \"H\" + pos1 + (mode === \"sd\" ? \"m0,0L\" + posc + \",\" + sl + \"L\" + pos0 + \",\" + m + \"L\" + posc + \",\" + sh + \"Z\" : \"\")\n );\n }\n });\n }\n module.exports = {\n plot,\n plotBoxAndWhiskers,\n plotPoints,\n plotBoxMean\n };\n }\n });\n\n // src/traces/box/style.js\n var require_style5 = __commonJS({\n \"src/traces/box/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Drawing = require_drawing();\n function style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll(\"g.trace.boxes\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var el = d3.select(this);\n var trace = d[0].trace;\n var lineWidth = trace.line.width;\n function styleBox(boxSel, lineWidth2, lineColor, fillColor) {\n boxSel.style(\"stroke-width\", lineWidth2 + \"px\").call(Color2.stroke, lineColor).call(Color2.fill, fillColor);\n }\n var allBoxes = el.selectAll(\"path.box\");\n if (trace.type === \"candlestick\") {\n allBoxes.each(function(boxData) {\n if (boxData.empty) return;\n var thisBox = d3.select(this);\n var container = trace[boxData.dir];\n styleBox(thisBox, container.line.width, container.line.color, container.fillcolor);\n thisBox.style(\"opacity\", trace.selectedpoints && !boxData.selected ? 0.3 : 1);\n });\n } else {\n styleBox(allBoxes, lineWidth, trace.line.color, trace.fillcolor);\n el.selectAll(\"path.mean\").style({\n \"stroke-width\": lineWidth,\n \"stroke-dasharray\": 2 * lineWidth + \"px,\" + lineWidth + \"px\"\n }).call(Color2.stroke, trace.line.color);\n var pts = el.selectAll(\"path.point\");\n Drawing.pointStyle(pts, trace, gd);\n }\n });\n }\n function styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n var pts = sel.selectAll(\"path.point\");\n if (trace.selectedpoints) {\n Drawing.selectedPointStyle(pts, trace);\n } else {\n Drawing.pointStyle(pts, trace, gd);\n }\n }\n module.exports = {\n style,\n styleOnSelect\n };\n }\n });\n\n // src/traces/box/hover.js\n var require_hover4 = __commonJS({\n \"src/traces/box/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var Lib = require_lib();\n var Fx = require_fx();\n var Color2 = require_color();\n var fillText = Lib.fillText;\n function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var hoveron = trace.hoveron;\n var closeBoxData = [];\n var closePtData;\n if (hoveron.indexOf(\"boxes\") !== -1) {\n closeBoxData = closeBoxData.concat(hoverOnBoxes(pointData, xval, yval, hovermode));\n }\n if (hoveron.indexOf(\"points\") !== -1) {\n closePtData = hoverOnPoints(pointData, xval, yval);\n }\n if (hovermode === \"closest\") {\n if (closePtData) return [closePtData];\n return closeBoxData;\n }\n if (closePtData) {\n closeBoxData.push(closePtData);\n return closeBoxData;\n }\n return closeBoxData;\n }\n function hoverOnBoxes(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var isViolin = trace.type === \"violin\";\n var pLetter, vLetter, pAxis, vAxis, vVal, pVal, dx, dy, dPos, hoverPseudoDistance, spikePseudoDistance;\n var boxDelta = t.bdPos;\n var boxDeltaPos, boxDeltaNeg;\n var posAcceptance = t.wHover;\n var shiftPos = function(di2) {\n return pAxis.c2l(di2.pos) + t.bPos - pAxis.c2l(pVal);\n };\n if (isViolin && trace.side !== \"both\") {\n if (trace.side === \"positive\") {\n dPos = function(di2) {\n var pos = shiftPos(di2);\n return Fx.inbox(pos, pos + posAcceptance, hoverPseudoDistance);\n };\n boxDeltaPos = boxDelta;\n boxDeltaNeg = 0;\n }\n if (trace.side === \"negative\") {\n dPos = function(di2) {\n var pos = shiftPos(di2);\n return Fx.inbox(pos - posAcceptance, pos, hoverPseudoDistance);\n };\n boxDeltaPos = 0;\n boxDeltaNeg = boxDelta;\n }\n } else {\n dPos = function(di2) {\n var pos = shiftPos(di2);\n return Fx.inbox(pos - posAcceptance, pos + posAcceptance, hoverPseudoDistance);\n };\n boxDeltaPos = boxDeltaNeg = boxDelta;\n }\n var dVal;\n if (isViolin) {\n dVal = function(di2) {\n return Fx.inbox(di2.span[0] - vVal, di2.span[1] - vVal, hoverPseudoDistance);\n };\n } else {\n dVal = function(di2) {\n return Fx.inbox(di2.min - vVal, di2.max - vVal, hoverPseudoDistance);\n };\n }\n if (trace.orientation === \"h\") {\n vVal = xval;\n pVal = yval;\n dx = dVal;\n dy = dPos;\n pLetter = \"y\";\n pAxis = ya;\n vLetter = \"x\";\n vAxis = xa;\n } else {\n vVal = yval;\n pVal = xval;\n dx = dPos;\n dy = dVal;\n pLetter = \"x\";\n pAxis = xa;\n vLetter = \"y\";\n vAxis = ya;\n }\n var pseudoDistance = Math.min(1, boxDelta / Math.abs(pAxis.r2c(pAxis.range[1]) - pAxis.r2c(pAxis.range[0])));\n hoverPseudoDistance = pointData.maxHoverDistance - pseudoDistance;\n spikePseudoDistance = pointData.maxSpikeDistance - pseudoDistance;\n function dxy(di2) {\n return (dx(di2) + dy(di2)) / 2;\n }\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n Fx.getClosest(cd, distfn, pointData);\n if (pointData.index === false) return [];\n var di = cd[pointData.index];\n var lc = trace.line.color;\n var mc = (trace.marker || {}).color;\n if (Color2.opacity(lc) && trace.line.width) pointData.color = lc;\n else if (Color2.opacity(mc) && trace.boxpoints) pointData.color = mc;\n else pointData.color = trace.fillcolor;\n pointData[pLetter + \"0\"] = pAxis.c2p(di.pos + t.bPos - boxDeltaNeg, true);\n pointData[pLetter + \"1\"] = pAxis.c2p(di.pos + t.bPos + boxDeltaPos, true);\n pointData[pLetter + \"LabelVal\"] = di.orig_p !== void 0 ? di.orig_p : di.pos;\n var spikePosAttr = pLetter + \"Spike\";\n pointData.spikeDistance = dxy(di) * spikePseudoDistance / hoverPseudoDistance;\n pointData[spikePosAttr] = pAxis.c2p(di.pos, true);\n var hasMean = trace.boxmean || trace.sizemode === \"sd\" || (trace.meanline || {}).visible;\n var hasFences = trace.boxpoints || trace.points;\n var attrs = hasFences && hasMean ? [\"max\", \"uf\", \"q3\", \"med\", \"mean\", \"q1\", \"lf\", \"min\"] : hasFences && !hasMean ? [\"max\", \"uf\", \"q3\", \"med\", \"q1\", \"lf\", \"min\"] : !hasFences && hasMean ? [\"max\", \"q3\", \"med\", \"mean\", \"q1\", \"min\"] : [\"max\", \"q3\", \"med\", \"q1\", \"min\"];\n var rev = vAxis.range[1] < vAxis.range[0];\n if (trace.orientation === (rev ? \"v\" : \"h\")) {\n attrs.reverse();\n }\n var spikeDistance = pointData.spikeDistance;\n var spikePosition = pointData[spikePosAttr];\n var closeBoxData = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!(attr in di)) continue;\n var val = di[attr];\n var valPx = vAxis.c2p(val, true);\n var pointData2 = Lib.extendFlat({}, pointData);\n pointData2.attr = attr;\n pointData2[vLetter + \"0\"] = pointData2[vLetter + \"1\"] = valPx;\n pointData2[vLetter + \"LabelVal\"] = val;\n pointData2[vLetter + \"Label\"] = (t.labels ? t.labels[attr] + \" \" : \"\") + Axes.hoverLabelText(vAxis, val, trace[vLetter + \"hoverformat\"]);\n pointData2.hoverOnBox = true;\n if (attr === \"mean\" && \"sd\" in di && (trace.boxmean === \"sd\" || trace.sizemode === \"sd\")) {\n pointData2[vLetter + \"err\"] = di.sd;\n }\n pointData2.hovertemplate = false;\n closeBoxData.push(pointData2);\n }\n pointData.name = \"\";\n pointData.spikeDistance = void 0;\n pointData[spikePosAttr] = void 0;\n for (var k = 0; k < closeBoxData.length; k++) {\n if (closeBoxData[k].attr !== \"med\") {\n closeBoxData[k].name = \"\";\n closeBoxData[k].spikeDistance = void 0;\n closeBoxData[k][spikePosAttr] = void 0;\n } else {\n closeBoxData[k].spikeDistance = spikeDistance;\n closeBoxData[k][spikePosAttr] = spikePosition;\n }\n }\n return closeBoxData;\n }\n function hoverOnPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var trace = cd[0].trace;\n var xPx = xa.c2p(xval);\n var yPx = ya.c2p(yval);\n var closePtData;\n var dx = function(di2) {\n var rad2 = Math.max(3, di2.mrc || 0);\n return Math.max(Math.abs(xa.c2p(di2.x) - xPx) - rad2, 1 - 3 / rad2);\n };\n var dy = function(di2) {\n var rad2 = Math.max(3, di2.mrc || 0);\n return Math.max(Math.abs(ya.c2p(di2.y) - yPx) - rad2, 1 - 3 / rad2);\n };\n var distfn = Fx.quadrature(dx, dy);\n var ijClosest = false;\n var di, pt;\n for (var i = 0; i < cd.length; i++) {\n di = cd[i];\n for (var j = 0; j < (di.pts || []).length; j++) {\n pt = di.pts[j];\n var newDistance = distfn(pt);\n if (newDistance <= pointData.distance) {\n pointData.distance = newDistance;\n ijClosest = [i, j];\n }\n }\n }\n if (!ijClosest) return false;\n di = cd[ijClosest[0]];\n pt = di.pts[ijClosest[1]];\n var xc = xa.c2p(pt.x, true);\n var yc = ya.c2p(pt.y, true);\n var rad = pt.mrc || 1;\n closePtData = Lib.extendFlat({}, pointData, {\n // corresponds to index in x/y input data array\n index: pt.i,\n color: (trace.marker || {}).color,\n name: trace.name,\n x0: xc - rad,\n x1: xc + rad,\n y0: yc - rad,\n y1: yc + rad,\n spikeDistance: pointData.distance,\n hovertemplate: trace.hovertemplate\n });\n var origPos = di.orig_p;\n var pos = origPos !== void 0 ? origPos : di.pos;\n var pa;\n if (trace.orientation === \"h\") {\n pa = ya;\n closePtData.xLabelVal = pt.x;\n closePtData.yLabelVal = pos;\n } else {\n pa = xa;\n closePtData.xLabelVal = pos;\n closePtData.yLabelVal = pt.y;\n }\n var pLetter = pa._id.charAt(0);\n closePtData[pLetter + \"Spike\"] = pa.c2p(di.pos, true);\n fillText(pt, trace, closePtData);\n return closePtData;\n }\n module.exports = {\n hoverPoints,\n hoverOnBoxes,\n hoverOnPoints\n };\n }\n });\n\n // src/traces/box/event_data.js\n var require_event_data2 = __commonJS({\n \"src/traces/box/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n if (pt.hoverOnBox) out.hoverOnBox = pt.hoverOnBox;\n if (\"xVal\" in pt) out.x = pt.xVal;\n if (\"yVal\" in pt) out.y = pt.yVal;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n return out;\n };\n }\n });\n\n // src/traces/box/select.js\n var require_select4 = __commonJS({\n \"src/traces/box/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i, j;\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n for (j = 0; j < (cd[i].pts || []).length; j++) {\n cd[i].pts[j].selected = 0;\n }\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n for (j = 0; j < (cd[i].pts || []).length; j++) {\n var pt = cd[i].pts[j];\n var x = xa.c2p(pt.x);\n var y = ya.c2p(pt.y);\n if (selectionTester.contains([x, y], null, pt.i, searchInfo)) {\n selection.push({\n pointNumber: pt.i,\n x: xa.c2d(pt.x),\n y: ya.c2d(pt.y)\n });\n pt.selected = 1;\n } else {\n pt.selected = 0;\n }\n }\n }\n }\n return selection;\n };\n }\n });\n\n // src/traces/box/index.js\n var require_box = __commonJS({\n \"src/traces/box/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes24(),\n layoutAttributes: require_layout_attributes7(),\n supplyDefaults: require_defaults20().supplyDefaults,\n crossTraceDefaults: require_defaults20().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults6().supplyLayoutDefaults,\n calc: require_calc6(),\n crossTraceCalc: require_cross_trace_calc3().crossTraceCalc,\n plot: require_plot4().plot,\n style: require_style5().style,\n styleOnSelect: require_style5().styleOnSelect,\n hoverPoints: require_hover4().hoverPoints,\n eventData: require_event_data2(),\n selectPoints: require_select4(),\n moduleType: \"trace\",\n name: \"box\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"symbols\", \"oriented\", \"box-violin\", \"showLegend\", \"boxLayout\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/box.js\n var require_box2 = __commonJS({\n \"lib/box.js\"(exports, module) {\n \"use strict\";\n module.exports = require_box();\n }\n });\n\n // src/traces/heatmap/attributes.js\n var require_attributes25 = __commonJS({\n \"src/traces/heatmap/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var fontAttrs = require_font_attributes();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n x: extendFlat({}, scatterAttrs.x, { impliedEdits: { xtype: \"array\" } }),\n x0: extendFlat({}, scatterAttrs.x0, { impliedEdits: { xtype: \"scaled\" } }),\n dx: extendFlat({}, scatterAttrs.dx, { impliedEdits: { xtype: \"scaled\" } }),\n y: extendFlat({}, scatterAttrs.y, { impliedEdits: { ytype: \"array\" } }),\n y0: extendFlat({}, scatterAttrs.y0, { impliedEdits: { ytype: \"scaled\" } }),\n dy: extendFlat({}, scatterAttrs.dy, { impliedEdits: { ytype: \"scaled\" } }),\n xperiod: extendFlat({}, scatterAttrs.xperiod, { impliedEdits: { xtype: \"scaled\" } }),\n yperiod: extendFlat({}, scatterAttrs.yperiod, { impliedEdits: { ytype: \"scaled\" } }),\n xperiod0: extendFlat({}, scatterAttrs.xperiod0, { impliedEdits: { xtype: \"scaled\" } }),\n yperiod0: extendFlat({}, scatterAttrs.yperiod0, { impliedEdits: { ytype: \"scaled\" } }),\n xperiodalignment: extendFlat({}, scatterAttrs.xperiodalignment, { impliedEdits: { xtype: \"scaled\" } }),\n yperiodalignment: extendFlat({}, scatterAttrs.yperiodalignment, { impliedEdits: { ytype: \"scaled\" } }),\n text: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n hovertext: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n transpose: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n xtype: {\n valType: \"enumerated\",\n values: [\"array\", \"scaled\"],\n editType: \"calc+clearAxisTypes\"\n },\n ytype: {\n valType: \"enumerated\",\n values: [\"array\", \"scaled\"],\n editType: \"calc+clearAxisTypes\"\n },\n zsmooth: {\n valType: \"enumerated\",\n values: [\"fast\", \"best\", false],\n dflt: false,\n editType: \"calc\"\n },\n hoverongaps: {\n valType: \"boolean\",\n dflt: true,\n editType: \"none\"\n },\n connectgaps: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n xgap: {\n valType: \"number\",\n dflt: 0,\n min: 0,\n editType: \"plot\"\n },\n ygap: {\n valType: \"number\",\n dflt: 0,\n min: 0,\n editType: \"plot\"\n },\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\", 1),\n hovertemplate: hovertemplateAttrs(),\n texttemplate: texttemplateAttrs({\n arrayOk: false,\n editType: \"plot\"\n }, {\n keys: [\"x\", \"y\", \"z\", \"text\"]\n }),\n textfont: fontAttrs({\n editType: \"plot\",\n autoSize: true,\n autoColor: true,\n colorEditType: \"style\"\n }),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false }),\n zorder: scatterAttrs.zorder\n },\n colorScaleAttrs(\"\", { cLetter: \"z\", autoColorDflt: false })\n );\n }\n });\n\n // src/traces/heatmap/xyz_defaults.js\n var require_xyz_defaults = __commonJS({\n \"src/traces/heatmap/xyz_defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Registry = require_registry();\n module.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, xName, yName) {\n var z = coerce(\"z\");\n xName = xName || \"x\";\n yName = yName || \"y\";\n var x, y;\n if (z === void 0 || !z.length) return 0;\n if (Lib.isArray1D(z)) {\n x = coerce(xName);\n y = coerce(yName);\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n if (xlen === 0 || ylen === 0) return 0;\n traceOut._length = Math.min(xlen, ylen, z.length);\n } else {\n x = coordDefaults(xName, coerce);\n y = coordDefaults(yName, coerce);\n if (!isValidZ(z)) return 0;\n coerce(\"transpose\");\n traceOut._length = null;\n }\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [xName, yName], layout);\n return true;\n };\n function coordDefaults(coordStr, coerce) {\n var coord = coerce(coordStr);\n var coordType = coord ? coerce(coordStr + \"type\", \"array\") : \"scaled\";\n if (coordType === \"scaled\") {\n coerce(coordStr + \"0\");\n coerce(\"d\" + coordStr);\n }\n return coord;\n }\n function isValidZ(z) {\n var allRowsAreArrays = true;\n var oneRowIsFilled = false;\n var hasOneNumber = false;\n var zi;\n for (var i = 0; i < z.length; i++) {\n zi = z[i];\n if (!Lib.isArrayOrTypedArray(zi)) {\n allRowsAreArrays = false;\n break;\n }\n if (zi.length > 0) oneRowIsFilled = true;\n for (var j = 0; j < zi.length; j++) {\n if (isNumeric(zi[j])) {\n hasOneNumber = true;\n break;\n }\n }\n }\n return allRowsAreArrays && oneRowIsFilled && hasOneNumber;\n }\n }\n });\n\n // src/traces/heatmap/label_defaults.js\n var require_label_defaults = __commonJS({\n \"src/traces/heatmap/label_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function handleHeatmapLabelDefaults(coerce, layout) {\n coerce(\"texttemplate\");\n var fontDflt = Lib.extendFlat({}, layout.font, {\n color: \"auto\",\n size: \"auto\"\n });\n Lib.coerceFont(coerce, \"textfont\", fontDflt);\n };\n }\n });\n\n // src/traces/heatmap/style_defaults.js\n var require_style_defaults2 = __commonJS({\n \"src/traces/heatmap/style_defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function handleStyleDefaults(traceIn, traceOut, coerce) {\n var zsmooth = coerce(\"zsmooth\");\n if (zsmooth === false) {\n coerce(\"xgap\");\n coerce(\"ygap\");\n }\n coerce(\"zhoverformat\");\n };\n }\n });\n\n // src/traces/heatmap/defaults.js\n var require_defaults21 = __commonJS({\n \"src/traces/heatmap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleXYZDefaults = require_xyz_defaults();\n var handleHeatmapLabelDefaults = require_label_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleStyleDefaults = require_style_defaults2();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes25();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var validData = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if (!validData) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n handleHeatmapLabelDefaults(coerce, layout);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n coerce(\"hoverongaps\");\n coerce(\"connectgaps\", Lib.isArray1D(traceOut.z) && traceOut.zsmooth !== false);\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/histogram/bin_functions.js\n var require_bin_functions = __commonJS({\n \"src/traces/histogram/bin_functions.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n module.exports = {\n count: function(n, i, size) {\n size[n]++;\n return 1;\n },\n sum: function(n, i, size, counterData) {\n var v = counterData[i];\n if (isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n return v;\n }\n return 0;\n },\n avg: function(n, i, size, counterData, counts) {\n var v = counterData[i];\n if (isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n counts[n]++;\n }\n return 0;\n },\n min: function(n, i, size, counterData) {\n var v = counterData[i];\n if (isNumeric(v)) {\n v = Number(v);\n if (!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if (size[n] > v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n },\n max: function(n, i, size, counterData) {\n var v = counterData[i];\n if (isNumeric(v)) {\n v = Number(v);\n if (!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if (size[n] < v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n }\n };\n }\n });\n\n // src/traces/histogram/norm_functions.js\n var require_norm_functions = __commonJS({\n \"src/traces/histogram/norm_functions.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n percent: function(size, total) {\n var nMax = size.length;\n var norm = 100 / total;\n for (var n = 0; n < nMax; n++) size[n] *= norm;\n },\n probability: function(size, total) {\n var nMax = size.length;\n for (var n = 0; n < nMax; n++) size[n] /= total;\n },\n density: function(size, total, inc, yinc) {\n var nMax = size.length;\n yinc = yinc || 1;\n for (var n = 0; n < nMax; n++) size[n] *= inc[n] * yinc;\n },\n \"probability density\": function(size, total, inc, yinc) {\n var nMax = size.length;\n if (yinc) total /= yinc;\n for (var n = 0; n < nMax; n++) size[n] *= inc[n] / total;\n }\n };\n }\n });\n\n // src/traces/histogram/average.js\n var require_average = __commonJS({\n \"src/traces/histogram/average.js\"(exports, module) {\n \"use strict\";\n module.exports = function doAvg(size, counts) {\n var nMax = size.length;\n var total = 0;\n for (var i = 0; i < nMax; i++) {\n if (counts[i]) {\n size[i] /= counts[i];\n total += size[i];\n } else size[i] = null;\n }\n return total;\n };\n }\n });\n\n // src/traces/histogram/bin_label_vals.js\n var require_bin_label_vals = __commonJS({\n \"src/traces/histogram/bin_label_vals.js\"(exports, module) {\n \"use strict\";\n var numConstants = require_numerical();\n var oneYear = numConstants.ONEAVGYEAR;\n var oneMonth = numConstants.ONEAVGMONTH;\n var oneDay = numConstants.ONEDAY;\n var oneHour = numConstants.ONEHOUR;\n var oneMin = numConstants.ONEMIN;\n var oneSec = numConstants.ONESEC;\n var tickIncrement = require_axes().tickIncrement;\n module.exports = function getBinSpanLabelRound(leftGap, rightGap, binEdges, pa, calendar) {\n var dv0 = -1.1 * rightGap;\n var dv1 = -0.1 * rightGap;\n var dv2 = leftGap - dv1;\n var edge0 = binEdges[0];\n var edge1 = binEdges[1];\n var leftDigit = Math.min(\n biggestDigitChanged(edge0 + dv1, edge0 + dv2, pa, calendar),\n biggestDigitChanged(edge1 + dv1, edge1 + dv2, pa, calendar)\n );\n var rightDigit = Math.min(\n biggestDigitChanged(edge0 + dv0, edge0 + dv1, pa, calendar),\n biggestDigitChanged(edge1 + dv0, edge1 + dv1, pa, calendar)\n );\n var digit, disambiguateEdges;\n if (leftDigit > rightDigit && rightDigit < Math.abs(edge1 - edge0) / 4e3) {\n digit = leftDigit;\n disambiguateEdges = false;\n } else {\n digit = Math.min(leftDigit, rightDigit);\n disambiguateEdges = true;\n }\n if (pa.type === \"date\" && digit > oneDay) {\n var dashExclude = digit === oneYear ? 1 : 6;\n var increment = digit === oneYear ? \"M12\" : \"M1\";\n return function(v, isRightEdge) {\n var dateStr = pa.c2d(v, oneYear, calendar);\n var dashPos = dateStr.indexOf(\"-\", dashExclude);\n if (dashPos > 0) dateStr = dateStr.substr(0, dashPos);\n var roundedV = pa.d2c(dateStr, 0, calendar);\n if (roundedV < v) {\n var nextV = tickIncrement(roundedV, increment, false, calendar);\n if ((roundedV + nextV) / 2 < v + leftGap) roundedV = nextV;\n }\n if (isRightEdge && disambiguateEdges) {\n return tickIncrement(roundedV, increment, true, calendar);\n }\n return roundedV;\n };\n }\n return function(v, isRightEdge) {\n var roundedV = digit * Math.round(v / digit);\n if (roundedV + digit / 10 < v && roundedV + digit * 0.9 < v + leftGap) {\n roundedV += digit;\n }\n if (isRightEdge && disambiguateEdges) {\n roundedV -= digit;\n }\n return roundedV;\n };\n };\n function biggestDigitChanged(v1, v2, pa, calendar) {\n if (v1 * v2 <= 0) return Infinity;\n var dv = Math.abs(v2 - v1);\n var isDate = pa.type === \"date\";\n var digit = biggestGuaranteedDigitChanged(dv, isDate);\n for (var i = 0; i < 10; i++) {\n var nextDigit = biggestGuaranteedDigitChanged(digit * 80, isDate);\n if (digit === nextDigit) break;\n if (didDigitChange(nextDigit, v1, v2, isDate, pa, calendar)) digit = nextDigit;\n else break;\n }\n return digit;\n }\n function biggestGuaranteedDigitChanged(dv, isDate) {\n if (isDate && dv > oneSec) {\n if (dv > oneDay) {\n if (dv > oneYear * 1.1) return oneYear;\n if (dv > oneMonth * 1.1) return oneMonth;\n return oneDay;\n }\n if (dv > oneHour) return oneHour;\n if (dv > oneMin) return oneMin;\n return oneSec;\n }\n return Math.pow(10, Math.floor(Math.log(dv) / Math.LN10));\n }\n function didDigitChange(digit, v1, v2, isDate, pa, calendar) {\n if (isDate && digit > oneDay) {\n var dateParts1 = dateParts(v1, pa, calendar);\n var dateParts2 = dateParts(v2, pa, calendar);\n var parti = digit === oneYear ? 0 : 1;\n return dateParts1[parti] !== dateParts2[parti];\n }\n return Math.floor(v2 / digit) - Math.floor(v1 / digit) > 0.1;\n }\n function dateParts(v, pa, calendar) {\n var parts = pa.c2d(v, oneYear, calendar).split(\"-\");\n if (parts[0] === \"\") {\n parts.unshift();\n parts[0] = \"-\" + parts[0];\n }\n return parts;\n }\n }\n });\n\n // src/traces/histogram/calc.js\n var require_calc7 = __commonJS({\n \"src/traces/histogram/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Registry = require_registry();\n var Axes = require_axes();\n var arraysToCalcdata = require_arrays_to_calcdata2();\n var binFunctions = require_bin_functions();\n var normFunctions = require_norm_functions();\n var doAvg = require_average();\n var getBinSpanLabelRound = require_bin_label_vals();\n function calc(gd, trace) {\n var pos = [];\n var size = [];\n var isHorizontal = trace.orientation === \"h\";\n var pa = Axes.getFromId(gd, isHorizontal ? trace.yaxis : trace.xaxis);\n var mainData = isHorizontal ? \"y\" : \"x\";\n var counterData = { x: \"y\", y: \"x\" }[mainData];\n var calendar = trace[mainData + \"calendar\"];\n var cumulativeSpec = trace.cumulative;\n var i;\n var binsAndPos = calcAllAutoBins(gd, trace, pa, mainData);\n var binSpec = binsAndPos[0];\n var pos0 = binsAndPos[1];\n var nonuniformBins = typeof binSpec.size === \"string\";\n var binEdges = [];\n var bins = nonuniformBins ? binEdges : binSpec;\n var inc = [];\n var counts = [];\n var inputPoints = [];\n var total = 0;\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densityNorm = norm.indexOf(\"density\") !== -1;\n var i2, binEnd, n;\n if (cumulativeSpec.enabled && densityNorm) {\n norm = norm.replace(/ ?density$/, \"\");\n densityNorm = false;\n }\n var extremeFunc = func === \"max\" || func === \"min\";\n var sizeInit = extremeFunc ? null : 0;\n var binFunc = binFunctions.count;\n var normFunc = normFunctions[norm];\n var isAvg = false;\n var pr2c = function(v) {\n return pa.r2c(v, 0, calendar);\n };\n var rawCounterData;\n if (Lib.isArrayOrTypedArray(trace[counterData]) && func !== \"count\") {\n rawCounterData = trace[counterData];\n isAvg = func === \"avg\";\n binFunc = binFunctions[func];\n }\n i = pr2c(binSpec.start);\n binEnd = pr2c(binSpec.end) + (i - Axes.tickIncrement(i, binSpec.size, false, calendar)) / 1e6;\n while (i < binEnd && pos.length < 1e6) {\n i2 = Axes.tickIncrement(i, binSpec.size, false, calendar);\n pos.push((i + i2) / 2);\n size.push(sizeInit);\n inputPoints.push([]);\n binEdges.push(i);\n if (densityNorm) inc.push(1 / (i2 - i));\n if (isAvg) counts.push(0);\n if (i2 <= i) break;\n i = i2;\n }\n binEdges.push(i);\n if (!nonuniformBins && pa.type === \"date\") {\n bins = {\n start: pr2c(bins.start),\n end: pr2c(bins.end),\n size: bins.size\n };\n }\n if (!gd._fullLayout._roundFnOpts) gd._fullLayout._roundFnOpts = {};\n var groupName = trace[\"_\" + mainData + \"bingroup\"];\n var roundFnOpts = { leftGap: Infinity, rightGap: Infinity };\n if (groupName) {\n if (!gd._fullLayout._roundFnOpts[groupName]) gd._fullLayout._roundFnOpts[groupName] = roundFnOpts;\n roundFnOpts = gd._fullLayout._roundFnOpts[groupName];\n }\n var nMax = size.length;\n var uniqueValsPerBin = true;\n var leftGap = roundFnOpts.leftGap;\n var rightGap = roundFnOpts.rightGap;\n var ptNumber2cdIndex = {};\n for (i = 0; i < pos0.length; i++) {\n var posi = pos0[i];\n n = Lib.findBin(posi, bins);\n if (n >= 0 && n < nMax) {\n total += binFunc(n, i, size, rawCounterData, counts);\n if (uniqueValsPerBin && inputPoints[n].length && posi !== pos0[inputPoints[n][0]]) {\n uniqueValsPerBin = false;\n }\n inputPoints[n].push(i);\n ptNumber2cdIndex[i] = n;\n leftGap = Math.min(leftGap, posi - binEdges[n]);\n rightGap = Math.min(rightGap, binEdges[n + 1] - posi);\n }\n }\n roundFnOpts.leftGap = leftGap;\n roundFnOpts.rightGap = rightGap;\n var roundFn;\n if (!uniqueValsPerBin) {\n roundFn = function(v, isRightEdge) {\n return function() {\n var roundFnOpts2 = gd._fullLayout._roundFnOpts[groupName];\n return getBinSpanLabelRound(\n roundFnOpts2.leftGap,\n roundFnOpts2.rightGap,\n binEdges,\n pa,\n calendar\n )(v, isRightEdge);\n };\n };\n }\n if (isAvg) total = doAvg(size, counts);\n if (normFunc) normFunc(size, total, inc);\n if (cumulativeSpec.enabled) cdf(size, cumulativeSpec.direction, cumulativeSpec.currentbin);\n var seriesLen = Math.min(pos.length, size.length);\n var cd = [];\n var firstNonzero = 0;\n var lastNonzero = seriesLen - 1;\n for (i = 0; i < seriesLen; i++) {\n if (size[i]) {\n firstNonzero = i;\n break;\n }\n }\n for (i = seriesLen - 1; i >= firstNonzero; i--) {\n if (size[i]) {\n lastNonzero = i;\n break;\n }\n }\n for (i = firstNonzero; i <= lastNonzero; i++) {\n if (isNumeric(pos[i]) && isNumeric(size[i])) {\n var cdi = {\n p: pos[i],\n s: size[i],\n b: 0\n };\n if (!cumulativeSpec.enabled) {\n cdi.pts = inputPoints[i];\n if (uniqueValsPerBin) {\n cdi.ph0 = cdi.ph1 = inputPoints[i].length ? pos0[inputPoints[i][0]] : pos[i];\n } else {\n trace._computePh = true;\n cdi.ph0 = roundFn(binEdges[i]);\n cdi.ph1 = roundFn(binEdges[i + 1], true);\n }\n }\n cd.push(cdi);\n }\n }\n if (cd.length === 1) {\n cd[0].width1 = Axes.tickIncrement(cd[0].p, binSpec.size, false, calendar) - cd[0].p;\n }\n arraysToCalcdata(cd, trace);\n if (Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace, ptNumber2cdIndex);\n }\n return cd;\n }\n function calcAllAutoBins(gd, trace, pa, mainData, _overlayEdgeCase) {\n var binAttr = mainData + \"bins\";\n var fullLayout = gd._fullLayout;\n var groupName = trace[\"_\" + mainData + \"bingroup\"];\n var binOpts = fullLayout._histogramBinOpts[groupName];\n var isOverlay = fullLayout.barmode === \"overlay\";\n var i, traces, tracei, calendar, pos0, autoVals, cumulativeSpec;\n var r2c = function(v) {\n return pa.r2c(v, 0, calendar);\n };\n var c2r = function(v) {\n return pa.c2r(v, 0, calendar);\n };\n var cleanBound = pa.type === \"date\" ? function(v) {\n return v || v === 0 ? Lib.cleanDate(v, null, calendar) : null;\n } : function(v) {\n return isNumeric(v) ? Number(v) : null;\n };\n function setBound(attr, bins, newBins) {\n if (bins[attr + \"Found\"]) {\n bins[attr] = cleanBound(bins[attr]);\n if (bins[attr] === null) bins[attr] = newBins[attr];\n } else {\n autoVals[attr] = bins[attr] = newBins[attr];\n Lib.nestedProperty(traces[0], binAttr + \".\" + attr).set(newBins[attr]);\n }\n }\n if (trace[\"_\" + mainData + \"autoBinFinished\"]) {\n delete trace[\"_\" + mainData + \"autoBinFinished\"];\n } else {\n traces = binOpts.traces;\n var allPos = [];\n var isFirstVisible = true;\n var has2dMap = false;\n var hasHist2dContour = false;\n for (i = 0; i < traces.length; i++) {\n tracei = traces[i];\n if (tracei.visible) {\n var mainDatai = binOpts.dirs[i];\n pos0 = tracei[\"_\" + mainDatai + \"pos0\"] = pa.makeCalcdata(tracei, mainDatai);\n allPos = Lib.concat(allPos, pos0);\n delete tracei[\"_\" + mainData + \"autoBinFinished\"];\n if (trace.visible === true) {\n if (isFirstVisible) {\n isFirstVisible = false;\n } else {\n delete tracei._autoBin;\n tracei[\"_\" + mainData + \"autoBinFinished\"] = 1;\n }\n if (Registry.traceIs(tracei, \"2dMap\")) {\n has2dMap = true;\n }\n if (tracei.type === \"histogram2dcontour\") {\n hasHist2dContour = true;\n }\n }\n }\n }\n calendar = traces[0][mainData + \"calendar\"];\n var newBinSpec = Axes.autoBin(allPos, pa, binOpts.nbins, has2dMap, calendar, binOpts.sizeFound && binOpts.size);\n var autoBin = traces[0]._autoBin = {};\n autoVals = autoBin[binOpts.dirs[0]] = {};\n if (hasHist2dContour) {\n if (!binOpts.size) {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start),\n newBinSpec.size,\n true,\n calendar\n ));\n }\n if (binOpts.end === void 0) {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end),\n newBinSpec.size,\n false,\n calendar\n ));\n }\n }\n if (isOverlay && !Registry.traceIs(trace, \"2dMap\") && newBinSpec._dataSpan === 0 && pa.type !== \"category\" && pa.type !== \"multicategory\" && trace.bingroup === \"\" && typeof trace.xbins === \"undefined\") {\n if (_overlayEdgeCase) return [newBinSpec, pos0, true];\n newBinSpec = handleSingleValueOverlays(gd, trace, pa, mainData, binAttr);\n }\n cumulativeSpec = tracei.cumulative || {};\n if (cumulativeSpec.enabled && cumulativeSpec.currentbin !== \"include\") {\n if (cumulativeSpec.direction === \"decreasing\") {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start),\n newBinSpec.size,\n true,\n calendar\n ));\n } else {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end),\n newBinSpec.size,\n false,\n calendar\n ));\n }\n }\n binOpts.size = newBinSpec.size;\n if (!binOpts.sizeFound) {\n autoVals.size = newBinSpec.size;\n Lib.nestedProperty(traces[0], binAttr + \".size\").set(newBinSpec.size);\n }\n setBound(\"start\", binOpts, newBinSpec);\n setBound(\"end\", binOpts, newBinSpec);\n }\n pos0 = trace[\"_\" + mainData + \"pos0\"];\n delete trace[\"_\" + mainData + \"pos0\"];\n var traceInputBins = trace._input[binAttr] || {};\n var traceBinOptsCalc = Lib.extendFlat({}, binOpts);\n var mainStart = binOpts.start;\n var startIn = pa.r2l(traceInputBins.start);\n var hasStart = startIn !== void 0;\n if ((binOpts.startFound || hasStart) && startIn !== pa.r2l(mainStart)) {\n var traceStart = hasStart ? startIn : Lib.aggNums(Math.min, null, pos0);\n var dummyAx = {\n type: pa.type === \"category\" || pa.type === \"multicategory\" ? \"linear\" : pa.type,\n r2l: pa.r2l,\n dtick: binOpts.size,\n tick0: mainStart,\n calendar,\n range: [traceStart, Axes.tickIncrement(traceStart, binOpts.size, false, calendar)].map(pa.l2r)\n };\n var newStart = Axes.tickFirst(dummyAx);\n if (newStart > pa.r2l(traceStart)) {\n newStart = Axes.tickIncrement(newStart, binOpts.size, true, calendar);\n }\n traceBinOptsCalc.start = pa.l2r(newStart);\n if (!hasStart) Lib.nestedProperty(trace, binAttr + \".start\").set(traceBinOptsCalc.start);\n }\n var mainEnd = binOpts.end;\n var endIn = pa.r2l(traceInputBins.end);\n var hasEnd = endIn !== void 0;\n if ((binOpts.endFound || hasEnd) && endIn !== pa.r2l(mainEnd)) {\n var traceEnd = hasEnd ? endIn : Lib.aggNums(Math.max, null, pos0);\n traceBinOptsCalc.end = pa.l2r(traceEnd);\n if (!hasEnd) Lib.nestedProperty(trace, binAttr + \".start\").set(traceBinOptsCalc.end);\n }\n var autoBinAttr = \"autobin\" + mainData;\n if (trace._input[autoBinAttr] === false) {\n trace._input[binAttr] = Lib.extendFlat({}, trace[binAttr] || {});\n delete trace._input[autoBinAttr];\n delete trace[autoBinAttr];\n }\n return [traceBinOptsCalc, pos0];\n }\n function handleSingleValueOverlays(gd, trace, pa, mainData, binAttr) {\n var fullLayout = gd._fullLayout;\n var overlaidTraceGroup = getConnectedHistograms(gd, trace);\n var pastThisTrace = false;\n var minSize = Infinity;\n var singleValuedTraces = [trace];\n var i, tracei, binOpts;\n for (i = 0; i < overlaidTraceGroup.length; i++) {\n tracei = overlaidTraceGroup[i];\n if (tracei === trace) {\n pastThisTrace = true;\n } else if (!pastThisTrace) {\n binOpts = fullLayout._histogramBinOpts[tracei[\"_\" + mainData + \"bingroup\"]];\n minSize = Math.min(minSize, binOpts.size || tracei[binAttr].size);\n } else {\n var resulti = calcAllAutoBins(gd, tracei, pa, mainData, true);\n var binSpeci = resulti[0];\n var isSingleValued = resulti[2];\n tracei[\"_\" + mainData + \"autoBinFinished\"] = 1;\n tracei[\"_\" + mainData + \"pos0\"] = resulti[1];\n if (isSingleValued) {\n singleValuedTraces.push(tracei);\n } else {\n minSize = Math.min(minSize, binSpeci.size);\n }\n }\n }\n var dataVals = new Array(singleValuedTraces.length);\n for (i = 0; i < singleValuedTraces.length; i++) {\n var pos0 = singleValuedTraces[i][\"_\" + mainData + \"pos0\"];\n for (var j = 0; j < pos0.length; j++) {\n if (pos0[j] !== void 0) {\n dataVals[i] = pos0[j];\n break;\n }\n }\n }\n if (!isFinite(minSize)) {\n minSize = Lib.distinctVals(dataVals).minDiff;\n }\n for (i = 0; i < singleValuedTraces.length; i++) {\n tracei = singleValuedTraces[i];\n var calendar = tracei[mainData + \"calendar\"];\n var newBins = {\n start: pa.c2r(dataVals[i] - minSize / 2, 0, calendar),\n end: pa.c2r(dataVals[i] + minSize / 2, 0, calendar),\n size: minSize\n };\n tracei._input[binAttr] = tracei[binAttr] = newBins;\n binOpts = fullLayout._histogramBinOpts[tracei[\"_\" + mainData + \"bingroup\"]];\n if (binOpts) Lib.extendFlat(binOpts, newBins);\n }\n return trace[binAttr];\n }\n function getConnectedHistograms(gd, trace) {\n var xid = trace.xaxis;\n var yid = trace.yaxis;\n var orientation = trace.orientation;\n var out = [];\n var fullData = gd._fullData;\n for (var i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if (tracei.type === \"histogram\" && tracei.visible === true && tracei.orientation === orientation && tracei.xaxis === xid && tracei.yaxis === yid) {\n out.push(tracei);\n }\n }\n return out;\n }\n function cdf(size, direction, currentBin) {\n var i, vi, prevSum;\n function firstHalfPoint(i2) {\n prevSum = size[i2];\n size[i2] /= 2;\n }\n function nextHalfPoint(i2) {\n vi = size[i2];\n size[i2] = prevSum + vi / 2;\n prevSum += vi;\n }\n if (currentBin === \"half\") {\n if (direction === \"increasing\") {\n firstHalfPoint(0);\n for (i = 1; i < size.length; i++) {\n nextHalfPoint(i);\n }\n } else {\n firstHalfPoint(size.length - 1);\n for (i = size.length - 2; i >= 0; i--) {\n nextHalfPoint(i);\n }\n }\n } else if (direction === \"increasing\") {\n for (i = 1; i < size.length; i++) {\n size[i] += size[i - 1];\n }\n if (currentBin === \"exclude\") {\n size.unshift(0);\n size.pop();\n }\n } else {\n for (i = size.length - 2; i >= 0; i--) {\n size[i] += size[i + 1];\n }\n if (currentBin === \"exclude\") {\n size.push(0);\n size.shift();\n }\n }\n }\n module.exports = {\n calc,\n calcAllAutoBins\n };\n }\n });\n\n // src/traces/histogram2d/calc.js\n var require_calc8 = __commonJS({\n \"src/traces/histogram2d/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var binFunctions = require_bin_functions();\n var normFunctions = require_norm_functions();\n var doAvg = require_average();\n var getBinSpanLabelRound = require_bin_label_vals();\n var calcAllAutoBins = require_calc7().calcAllAutoBins;\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var xr2c = function(v) {\n return xa.r2c(v, 0, xcalendar);\n };\n var yr2c = function(v) {\n return ya.r2c(v, 0, ycalendar);\n };\n var xc2r = function(v) {\n return xa.c2r(v, 0, xcalendar);\n };\n var yc2r = function(v) {\n return ya.c2r(v, 0, ycalendar);\n };\n var i, j, n, m;\n var xBinsAndPos = calcAllAutoBins(gd, trace, xa, \"x\");\n var xBinSpec = xBinsAndPos[0];\n var xPos0 = xBinsAndPos[1];\n var yBinsAndPos = calcAllAutoBins(gd, trace, ya, \"y\");\n var yBinSpec = yBinsAndPos[0];\n var yPos0 = yBinsAndPos[1];\n var serieslen = trace._length;\n if (xPos0.length > serieslen) xPos0.splice(serieslen, xPos0.length - serieslen);\n if (yPos0.length > serieslen) yPos0.splice(serieslen, yPos0.length - serieslen);\n var z = [];\n var onecol = [];\n var zerocol = [];\n var nonuniformBinsX = typeof xBinSpec.size === \"string\";\n var nonuniformBinsY = typeof yBinSpec.size === \"string\";\n var xEdges = [];\n var yEdges = [];\n var xbins = nonuniformBinsX ? xEdges : xBinSpec;\n var ybins = nonuniformBinsY ? yEdges : yBinSpec;\n var total = 0;\n var counts = [];\n var inputPoints = [];\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densitynorm = norm.indexOf(\"density\") !== -1;\n var extremefunc = func === \"max\" || func === \"min\";\n var sizeinit = extremefunc ? null : 0;\n var binfunc = binFunctions.count;\n var normfunc = normFunctions[norm];\n var doavg = false;\n var xinc = [];\n var yinc = [];\n var rawCounterData = \"z\" in trace ? trace.z : \"marker\" in trace && Array.isArray(trace.marker.color) ? trace.marker.color : \"\";\n if (rawCounterData && func !== \"count\") {\n doavg = func === \"avg\";\n binfunc = binFunctions[func];\n }\n var xBinSize = xBinSpec.size;\n var xBinStart = xr2c(xBinSpec.start);\n var xBinEnd = xr2c(xBinSpec.end) + (xBinStart - Axes.tickIncrement(xBinStart, xBinSize, false, xcalendar)) / 1e6;\n for (i = xBinStart; i < xBinEnd; i = Axes.tickIncrement(i, xBinSize, false, xcalendar)) {\n onecol.push(sizeinit);\n xEdges.push(i);\n if (doavg) zerocol.push(0);\n }\n xEdges.push(i);\n var nx = onecol.length;\n var dx = (i - xBinStart) / nx;\n var x0 = xc2r(xBinStart + dx / 2);\n var yBinSize = yBinSpec.size;\n var yBinStart = yr2c(yBinSpec.start);\n var yBinEnd = yr2c(yBinSpec.end) + (yBinStart - Axes.tickIncrement(yBinStart, yBinSize, false, ycalendar)) / 1e6;\n for (i = yBinStart; i < yBinEnd; i = Axes.tickIncrement(i, yBinSize, false, ycalendar)) {\n z.push(onecol.slice());\n yEdges.push(i);\n var ipCol = new Array(nx);\n for (j = 0; j < nx; j++) ipCol[j] = [];\n inputPoints.push(ipCol);\n if (doavg) counts.push(zerocol.slice());\n }\n yEdges.push(i);\n var ny = z.length;\n var dy = (i - yBinStart) / ny;\n var y0 = yc2r(yBinStart + dy / 2);\n if (densitynorm) {\n xinc = makeIncrements(onecol.length, xbins, dx, nonuniformBinsX);\n yinc = makeIncrements(z.length, ybins, dy, nonuniformBinsY);\n }\n if (!nonuniformBinsX && xa.type === \"date\") xbins = binsToCalc(xr2c, xbins);\n if (!nonuniformBinsY && ya.type === \"date\") ybins = binsToCalc(yr2c, ybins);\n var uniqueValsPerX = true;\n var uniqueValsPerY = true;\n var xVals = new Array(nx);\n var yVals = new Array(ny);\n var xGapLow = Infinity;\n var xGapHigh = Infinity;\n var yGapLow = Infinity;\n var yGapHigh = Infinity;\n for (i = 0; i < serieslen; i++) {\n var xi = xPos0[i];\n var yi = yPos0[i];\n n = Lib.findBin(xi, xbins);\n m = Lib.findBin(yi, ybins);\n if (n >= 0 && n < nx && m >= 0 && m < ny) {\n total += binfunc(n, i, z[m], rawCounterData, counts[m]);\n inputPoints[m][n].push(i);\n if (uniqueValsPerX) {\n if (xVals[n] === void 0) xVals[n] = xi;\n else if (xVals[n] !== xi) uniqueValsPerX = false;\n }\n if (uniqueValsPerY) {\n if (yVals[m] === void 0) yVals[m] = yi;\n else if (yVals[m] !== yi) uniqueValsPerY = false;\n }\n xGapLow = Math.min(xGapLow, xi - xEdges[n]);\n xGapHigh = Math.min(xGapHigh, xEdges[n + 1] - xi);\n yGapLow = Math.min(yGapLow, yi - yEdges[m]);\n yGapHigh = Math.min(yGapHigh, yEdges[m + 1] - yi);\n }\n }\n if (doavg) {\n for (m = 0; m < ny; m++) total += doAvg(z[m], counts[m]);\n }\n if (normfunc) {\n for (m = 0; m < ny; m++) normfunc(z[m], total, xinc, yinc[m]);\n }\n return {\n x: xPos0,\n xRanges: getRanges(xEdges, uniqueValsPerX && xVals, xGapLow, xGapHigh, xa, xcalendar),\n x0,\n dx,\n y: yPos0,\n yRanges: getRanges(yEdges, uniqueValsPerY && yVals, yGapLow, yGapHigh, ya, ycalendar),\n y0,\n dy,\n z,\n pts: inputPoints\n };\n };\n function makeIncrements(len, bins, dv, nonuniform) {\n var out = new Array(len);\n var i;\n if (nonuniform) {\n for (i = 0; i < len; i++) out[i] = 1 / (bins[i + 1] - bins[i]);\n } else {\n var inc = 1 / dv;\n for (i = 0; i < len; i++) out[i] = inc;\n }\n return out;\n }\n function binsToCalc(r2c, bins) {\n return {\n start: r2c(bins.start),\n end: r2c(bins.end),\n size: bins.size\n };\n }\n function getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) {\n var i;\n var len = edges.length - 1;\n var out = new Array(len);\n var roundFn = getBinSpanLabelRound(gapLow, gapHigh, edges, ax, calendar);\n for (i = 0; i < len; i++) {\n var v = (uniqueVals || [])[i];\n out[i] = v === void 0 ? [roundFn(edges[i]), roundFn(edges[i + 1], true)] : [v, v];\n }\n return out;\n }\n }\n });\n\n // src/traces/heatmap/convert_column_xyz.js\n var require_convert_column_xyz = __commonJS({\n \"src/traces/heatmap/convert_column_xyz.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var alignPeriod = require_align_period();\n module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name, arrayVarNames) {\n var colLen = trace._length;\n var col1 = ax1.makeCalcdata(trace, var1Name);\n var col2 = ax2.makeCalcdata(trace, var2Name);\n col1 = alignPeriod(trace, ax1, var1Name, col1).vals;\n col2 = alignPeriod(trace, ax2, var2Name, col2).vals;\n var textCol = trace.text;\n var hasColumnText = textCol !== void 0 && Lib.isArray1D(textCol);\n var hoverTextCol = trace.hovertext;\n var hasColumnHoverText = hoverTextCol !== void 0 && Lib.isArray1D(hoverTextCol);\n var i, j;\n var col1dv = Lib.distinctVals(col1);\n var col1vals = col1dv.vals;\n var col2dv = Lib.distinctVals(col2);\n var col2vals = col2dv.vals;\n var newArrays = [];\n var text;\n var hovertext;\n var nI = col2vals.length;\n var nJ = col1vals.length;\n for (i = 0; i < arrayVarNames.length; i++) {\n newArrays[i] = Lib.init2dArray(nI, nJ);\n }\n if (hasColumnText) {\n text = Lib.init2dArray(nI, nJ);\n }\n if (hasColumnHoverText) {\n hovertext = Lib.init2dArray(nI, nJ);\n }\n var after2before = Lib.init2dArray(nI, nJ);\n for (i = 0; i < colLen; i++) {\n if (col1[i] !== BADNUM && col2[i] !== BADNUM) {\n var i1 = Lib.findBin(col1[i] + col1dv.minDiff / 2, col1vals);\n var i2 = Lib.findBin(col2[i] + col2dv.minDiff / 2, col2vals);\n for (j = 0; j < arrayVarNames.length; j++) {\n var arrayVarName = arrayVarNames[j];\n var arrayVar = trace[arrayVarName];\n var newArray = newArrays[j];\n newArray[i2][i1] = arrayVar[i];\n after2before[i2][i1] = i;\n }\n if (hasColumnText) text[i2][i1] = textCol[i];\n if (hasColumnHoverText) hovertext[i2][i1] = hoverTextCol[i];\n }\n }\n trace[\"_\" + var1Name] = col1vals;\n trace[\"_\" + var2Name] = col2vals;\n for (j = 0; j < arrayVarNames.length; j++) {\n trace[\"_\" + arrayVarNames[j]] = newArrays[j];\n }\n if (hasColumnText) trace._text = text;\n if (hasColumnHoverText) trace._hovertext = hovertext;\n if (ax1 && ax1.type === \"category\") {\n trace[\"_\" + var1Name + \"CategoryMap\"] = col1vals.map(function(v) {\n return ax1._categories[v];\n });\n }\n if (ax2 && ax2.type === \"category\") {\n trace[\"_\" + var2Name + \"CategoryMap\"] = col2vals.map(function(v) {\n return ax2._categories[v];\n });\n }\n trace._after2before = after2before;\n };\n }\n });\n\n // src/traces/heatmap/clean_2d_array.js\n var require_clean_2d_array = __commonJS({\n \"src/traces/heatmap/clean_2d_array.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function clean2dArray(zOld, trace, xa, ya) {\n var rowlen, collen, getCollen, old2new, i, j;\n function cleanZvalue(v) {\n if (!isNumeric(v)) return void 0;\n return +v;\n }\n if (trace && trace.transpose) {\n rowlen = 0;\n for (i = 0; i < zOld.length; i++) rowlen = Math.max(rowlen, zOld[i].length);\n if (rowlen === 0) return false;\n getCollen = function(zOld2) {\n return zOld2.length;\n };\n old2new = function(zOld2, i2, j2) {\n return (zOld2[j2] || [])[i2];\n };\n } else {\n rowlen = zOld.length;\n getCollen = function(zOld2, i2) {\n return zOld2[i2].length;\n };\n old2new = function(zOld2, i2, j2) {\n return (zOld2[i2] || [])[j2];\n };\n }\n var padOld2new = function(zOld2, i2, j2) {\n if (i2 === BADNUM || j2 === BADNUM) return BADNUM;\n return old2new(zOld2, i2, j2);\n };\n function axisMapping(ax) {\n if (trace && trace.type !== \"carpet\" && trace.type !== \"contourcarpet\" && ax && ax.type === \"category\" && trace[\"_\" + ax._id.charAt(0)].length) {\n var axLetter = ax._id.charAt(0);\n var axMapping = {};\n var traceCategories = trace[\"_\" + axLetter + \"CategoryMap\"] || trace[axLetter];\n for (i = 0; i < traceCategories.length; i++) {\n axMapping[traceCategories[i]] = i;\n }\n return function(i2) {\n var ind = axMapping[ax._categories[i2]];\n return ind + 1 ? ind : BADNUM;\n };\n } else {\n return Lib.identity;\n }\n }\n var xMap = axisMapping(xa);\n var yMap = axisMapping(ya);\n if (ya && ya.type === \"category\") rowlen = ya._categories.length;\n var zNew = new Array(rowlen);\n for (i = 0; i < rowlen; i++) {\n if (xa && xa.type === \"category\") {\n collen = xa._categories.length;\n } else {\n collen = getCollen(zOld, i);\n }\n zNew[i] = new Array(collen);\n for (j = 0; j < collen; j++) zNew[i][j] = cleanZvalue(padOld2new(zOld, yMap(i), xMap(j)));\n }\n return zNew;\n };\n }\n });\n\n // src/traces/heatmap/interp2d.js\n var require_interp2d = __commonJS({\n \"src/traces/heatmap/interp2d.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var INTERPTHRESHOLD = 0.01;\n var NEIGHBORSHIFTS = [[-1, 0], [1, 0], [0, -1], [0, 1]];\n function correctionOvershoot(maxFractionalChange) {\n return 0.5 - 0.25 * Math.min(1, maxFractionalChange * 0.5);\n }\n module.exports = function interp2d(z, emptyPoints) {\n var maxFractionalChange = 1;\n var i;\n iterateInterp2d(z, emptyPoints);\n for (i = 0; i < emptyPoints.length; i++) {\n if (emptyPoints[i][2] < 4) break;\n }\n emptyPoints = emptyPoints.slice(i);\n for (i = 0; i < 100 && maxFractionalChange > INTERPTHRESHOLD; i++) {\n maxFractionalChange = iterateInterp2d(\n z,\n emptyPoints,\n correctionOvershoot(maxFractionalChange)\n );\n }\n if (maxFractionalChange > INTERPTHRESHOLD) {\n Lib.log(\"interp2d didn't converge quickly\", maxFractionalChange);\n }\n return z;\n };\n function iterateInterp2d(z, emptyPoints, overshoot) {\n var maxFractionalChange = 0;\n var thisPt;\n var i;\n var j;\n var p;\n var q;\n var neighborShift;\n var neighborRow;\n var neighborVal;\n var neighborCount;\n var neighborSum;\n var initialVal;\n var minNeighbor;\n var maxNeighbor;\n for (p = 0; p < emptyPoints.length; p++) {\n thisPt = emptyPoints[p];\n i = thisPt[0];\n j = thisPt[1];\n initialVal = z[i][j];\n neighborSum = 0;\n neighborCount = 0;\n for (q = 0; q < 4; q++) {\n neighborShift = NEIGHBORSHIFTS[q];\n neighborRow = z[i + neighborShift[0]];\n if (!neighborRow) continue;\n neighborVal = neighborRow[j + neighborShift[1]];\n if (neighborVal !== void 0) {\n if (neighborSum === 0) {\n minNeighbor = maxNeighbor = neighborVal;\n } else {\n minNeighbor = Math.min(minNeighbor, neighborVal);\n maxNeighbor = Math.max(maxNeighbor, neighborVal);\n }\n neighborCount++;\n neighborSum += neighborVal;\n }\n }\n if (neighborCount === 0) {\n throw \"iterateInterp2d order is wrong: no defined neighbors\";\n }\n z[i][j] = neighborSum / neighborCount;\n if (initialVal === void 0) {\n if (neighborCount < 4) maxFractionalChange = 1;\n } else {\n z[i][j] = (1 + overshoot) * z[i][j] - overshoot * initialVal;\n if (maxNeighbor > minNeighbor) {\n maxFractionalChange = Math.max(\n maxFractionalChange,\n Math.abs(z[i][j] - initialVal) / (maxNeighbor - minNeighbor)\n );\n }\n }\n }\n return maxFractionalChange;\n }\n }\n });\n\n // src/traces/heatmap/find_empties.js\n var require_find_empties = __commonJS({\n \"src/traces/heatmap/find_empties.js\"(exports, module) {\n \"use strict\";\n var maxRowLength = require_lib().maxRowLength;\n module.exports = function findEmpties(z) {\n var empties = [];\n var neighborHash = {};\n var noNeighborList = [];\n var nextRow = z[0];\n var row = [];\n var blank = [0, 0, 0];\n var rowLength = maxRowLength(z);\n var prevRow;\n var i;\n var j;\n var thisPt;\n var p;\n var neighborCount;\n var newNeighborHash;\n var foundNewNeighbors;\n for (i = 0; i < z.length; i++) {\n prevRow = row;\n row = nextRow;\n nextRow = z[i + 1] || [];\n for (j = 0; j < rowLength; j++) {\n if (row[j] === void 0) {\n neighborCount = (row[j - 1] !== void 0 ? 1 : 0) + (row[j + 1] !== void 0 ? 1 : 0) + (prevRow[j] !== void 0 ? 1 : 0) + (nextRow[j] !== void 0 ? 1 : 0);\n if (neighborCount) {\n if (i === 0) neighborCount++;\n if (j === 0) neighborCount++;\n if (i === z.length - 1) neighborCount++;\n if (j === row.length - 1) neighborCount++;\n if (neighborCount < 4) {\n neighborHash[[i, j]] = [i, j, neighborCount];\n }\n empties.push([i, j, neighborCount]);\n } else noNeighborList.push([i, j]);\n }\n }\n }\n while (noNeighborList.length) {\n newNeighborHash = {};\n foundNewNeighbors = false;\n for (p = noNeighborList.length - 1; p >= 0; p--) {\n thisPt = noNeighborList[p];\n i = thisPt[0];\n j = thisPt[1];\n neighborCount = ((neighborHash[[i - 1, j]] || blank)[2] + (neighborHash[[i + 1, j]] || blank)[2] + (neighborHash[[i, j - 1]] || blank)[2] + (neighborHash[[i, j + 1]] || blank)[2]) / 20;\n if (neighborCount) {\n newNeighborHash[thisPt] = [i, j, neighborCount];\n noNeighborList.splice(p, 1);\n foundNewNeighbors = true;\n }\n }\n if (!foundNewNeighbors) {\n throw \"findEmpties iterated with no new neighbors\";\n }\n for (thisPt in newNeighborHash) {\n neighborHash[thisPt] = newNeighborHash[thisPt];\n empties.push(newNeighborHash[thisPt]);\n }\n }\n return empties.sort(function(a, b) {\n return b[2] - a[2];\n });\n };\n }\n });\n\n // src/traces/heatmap/make_bound_array.js\n var require_make_bound_array = __commonJS({\n \"src/traces/heatmap/make_bound_array.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function makeBoundArray(trace, arrayIn, v0In, dvIn, numbricks, ax) {\n var arrayOut = [];\n var isContour = Registry.traceIs(trace, \"contour\");\n var isHist = Registry.traceIs(trace, \"histogram\");\n var v0;\n var dv;\n var i;\n var isArrayOfTwoItemsOrMore = isArrayOrTypedArray(arrayIn) && arrayIn.length > 1;\n if (isArrayOfTwoItemsOrMore && !isHist && ax.type !== \"category\") {\n var len = arrayIn.length;\n if (len <= numbricks) {\n if (isContour) arrayOut = Array.from(arrayIn).slice(0, numbricks);\n else if (numbricks === 1) {\n if (ax.type === \"log\") {\n arrayOut = [0.5 * arrayIn[0], 2 * arrayIn[0]];\n } else {\n arrayOut = [arrayIn[0] - 0.5, arrayIn[0] + 0.5];\n }\n } else if (ax.type === \"log\") {\n arrayOut = [Math.pow(arrayIn[0], 1.5) / Math.pow(arrayIn[1], 0.5)];\n for (i = 1; i < len; i++) {\n arrayOut.push(Math.sqrt(arrayIn[i - 1] * arrayIn[i]));\n }\n arrayOut.push(Math.pow(arrayIn[len - 1], 1.5) / Math.pow(arrayIn[len - 2], 0.5));\n } else {\n arrayOut = [1.5 * arrayIn[0] - 0.5 * arrayIn[1]];\n for (i = 1; i < len; i++) {\n arrayOut.push((arrayIn[i - 1] + arrayIn[i]) * 0.5);\n }\n arrayOut.push(1.5 * arrayIn[len - 1] - 0.5 * arrayIn[len - 2]);\n }\n if (len < numbricks) {\n var lastPt = arrayOut[arrayOut.length - 1];\n var delta;\n if (ax.type === \"log\") {\n delta = lastPt / arrayOut[arrayOut.length - 2];\n for (i = len; i < numbricks; i++) {\n lastPt *= delta;\n arrayOut.push(lastPt);\n }\n } else {\n delta = lastPt - arrayOut[arrayOut.length - 2];\n for (i = len; i < numbricks; i++) {\n lastPt += delta;\n arrayOut.push(lastPt);\n }\n }\n }\n } else {\n return isContour ? arrayIn.slice(0, numbricks) : (\n // we must be strict for contours\n arrayIn.slice(0, numbricks + 1)\n );\n }\n } else {\n var calendar = trace[ax._id.charAt(0) + \"calendar\"];\n if (isHist) {\n v0 = ax.r2c(v0In, 0, calendar);\n } else {\n if (isArrayOrTypedArray(arrayIn) && arrayIn.length === 1) {\n v0 = arrayIn[0];\n } else if (v0In === void 0) {\n v0 = 0;\n } else {\n var fn = ax.type === \"log\" ? ax.d2c : ax.r2c;\n v0 = fn(v0In, 0, calendar);\n }\n }\n dv = dvIn || 1;\n for (i = isContour ? 0 : -0.5; i < numbricks; i++) {\n arrayOut.push(v0 + dv * i);\n }\n }\n return arrayOut;\n };\n }\n });\n\n // src/traces/heatmap/calc.js\n var require_calc9 = __commonJS({\n \"src/traces/heatmap/calc.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var histogram2dCalc = require_calc8();\n var colorscaleCalc = require_calc();\n var convertColumnData = require_convert_column_xyz();\n var clean2dArray = require_clean_2d_array();\n var interp2d = require_interp2d();\n var findEmpties = require_find_empties();\n var makeBoundArray = require_make_bound_array();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var isContour = Registry.traceIs(trace, \"contour\");\n var isHist = Registry.traceIs(trace, \"histogram\");\n var zsmooth = isContour ? \"best\" : trace.zsmooth;\n var x, x0, dx, origX;\n var y, y0, dy, origY;\n var z, i, binned;\n xa._minDtick = 0;\n ya._minDtick = 0;\n if (isHist) {\n binned = histogram2dCalc(gd, trace);\n origX = binned.orig_x;\n x = binned.x;\n x0 = binned.x0;\n dx = binned.dx;\n origY = binned.orig_y;\n y = binned.y;\n y0 = binned.y0;\n dy = binned.dy;\n z = binned.z;\n } else {\n var zIn = trace.z;\n if (Lib.isArray1D(zIn)) {\n convertColumnData(trace, xa, ya, \"x\", \"y\", [\"z\"]);\n x = trace._x;\n y = trace._y;\n zIn = trace._z;\n } else {\n origX = trace.x ? xa.makeCalcdata(trace, \"x\") : [];\n origY = trace.y ? ya.makeCalcdata(trace, \"y\") : [];\n x = alignPeriod(trace, xa, \"x\", origX).vals;\n y = alignPeriod(trace, ya, \"y\", origY).vals;\n trace._x = x;\n trace._y = y;\n }\n x0 = trace.x0;\n dx = trace.dx;\n y0 = trace.y0;\n dy = trace.dy;\n z = clean2dArray(zIn, trace, xa, ya);\n }\n if (xa.rangebreaks || ya.rangebreaks) {\n z = dropZonBreaks(x, y, z);\n if (!isHist) {\n x = skipBreaks(x);\n y = skipBreaks(y);\n trace._x = x;\n trace._y = y;\n }\n }\n if (!isHist && (isContour || trace.connectgaps)) {\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n }\n function noZsmooth(msg) {\n zsmooth = trace._input.zsmooth = trace.zsmooth = false;\n Lib.warn('cannot use zsmooth: \"fast\": ' + msg);\n }\n function scaleIsLinear(s) {\n if (s.length > 1) {\n var avgdx = (s[s.length - 1] - s[0]) / (s.length - 1);\n var maxErrX = Math.abs(avgdx / 100);\n for (i = 0; i < s.length - 1; i++) {\n if (Math.abs(s[i + 1] - s[i] - avgdx) > maxErrX) {\n return false;\n }\n }\n }\n return true;\n }\n trace._islinear = false;\n if (xa.type === \"log\" || ya.type === \"log\") {\n if (zsmooth === \"fast\") {\n noZsmooth(\"log axis found\");\n }\n } else if (!scaleIsLinear(x)) {\n if (zsmooth === \"fast\") noZsmooth(\"x scale is not linear\");\n } else if (!scaleIsLinear(y)) {\n if (zsmooth === \"fast\") noZsmooth(\"y scale is not linear\");\n } else {\n trace._islinear = true;\n }\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === \"scaled\" ? \"\" : x;\n var xArray = makeBoundArray(trace, xIn, x0, dx, xlen, xa);\n var yIn = trace.ytype === \"scaled\" ? \"\" : y;\n var yArray = makeBoundArray(trace, yIn, y0, dy, z.length, ya);\n trace._extremes[xa._id] = Axes.findExtremes(xa, xArray);\n trace._extremes[ya._id] = Axes.findExtremes(ya, yArray);\n var cd0 = {\n x: xArray,\n y: yArray,\n z,\n text: trace._text || trace.text,\n hovertext: trace._hovertext || trace.hovertext\n };\n if (trace.xperiodalignment && origX) {\n cd0.orig_x = origX;\n }\n if (trace.yperiodalignment && origY) {\n cd0.orig_y = origY;\n }\n if (xIn && xIn.length === xArray.length - 1) cd0.xCenter = xIn;\n if (yIn && yIn.length === yArray.length - 1) cd0.yCenter = yIn;\n if (isHist) {\n cd0.xRanges = binned.xRanges;\n cd0.yRanges = binned.yRanges;\n cd0.pts = binned.pts;\n }\n if (!isContour) {\n colorscaleCalc(gd, trace, { vals: z, cLetter: \"z\" });\n }\n if (isContour && trace.contours && trace.contours.coloring === \"heatmap\") {\n var dummyTrace = {\n type: trace.type === \"contour\" ? \"heatmap\" : \"histogram2d\",\n xcalendar: trace.xcalendar,\n ycalendar: trace.ycalendar\n };\n cd0.xfill = makeBoundArray(dummyTrace, xIn, x0, dx, xlen, xa);\n cd0.yfill = makeBoundArray(dummyTrace, yIn, y0, dy, z.length, ya);\n }\n return [cd0];\n };\n function skipBreaks(a) {\n var b = [];\n var len = a.length;\n for (var i = 0; i < len; i++) {\n var v = a[i];\n if (v !== BADNUM) b.push(v);\n }\n return b;\n }\n function dropZonBreaks(x, y, z) {\n var newZ = [];\n var k = -1;\n for (var i = 0; i < z.length; i++) {\n if (y[i] === BADNUM) continue;\n k++;\n newZ[k] = [];\n for (var j = 0; j < z[i].length; j++) {\n if (x[j] === BADNUM) continue;\n newZ[k].push(z[i][j]);\n }\n }\n return newZ;\n }\n }\n });\n\n // src/constants/pixelated_image.js\n var require_pixelated_image = __commonJS({\n \"src/constants/pixelated_image.js\"(exports) {\n \"use strict\";\n exports.CSS_DECLARATIONS = [\n [\"image-rendering\", \"optimizeSpeed\"],\n [\"image-rendering\", \"-moz-crisp-edges\"],\n [\"image-rendering\", \"-o-crisp-edges\"],\n [\"image-rendering\", \"-webkit-optimize-contrast\"],\n [\"image-rendering\", \"optimize-contrast\"],\n [\"image-rendering\", \"crisp-edges\"],\n [\"image-rendering\", \"pixelated\"]\n ];\n exports.STYLE = exports.CSS_DECLARATIONS.map(function(d) {\n return d.join(\": \") + \"; \";\n }).join(\"\");\n }\n });\n\n // src/lib/supports_pixelated_image.js\n var require_supports_pixelated_image = __commonJS({\n \"src/lib/supports_pixelated_image.js\"(exports, module) {\n \"use strict\";\n var constants = require_pixelated_image();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var _supportsPixelated = null;\n function supportsPixelatedImage() {\n if (_supportsPixelated !== null) {\n return _supportsPixelated;\n }\n _supportsPixelated = false;\n var unsupportedBrowser = Lib.isSafari() || Lib.isIOS();\n if (window.navigator.userAgent && !unsupportedBrowser) {\n var declarations = Array.from(constants.CSS_DECLARATIONS).reverse();\n var supports = window.CSS && window.CSS.supports || window.supportsCSS;\n if (typeof supports === \"function\") {\n _supportsPixelated = declarations.some(function(d) {\n return supports.apply(null, d);\n });\n } else {\n var image3 = Drawing.tester.append(\"image\").attr(\"style\", constants.STYLE);\n var cStyles = window.getComputedStyle(image3.node());\n var imageRendering = cStyles.imageRendering;\n _supportsPixelated = declarations.some(function(d) {\n var value = d[1];\n return imageRendering === value || imageRendering === value.toLowerCase();\n });\n image3.remove();\n }\n }\n return _supportsPixelated;\n }\n module.exports = supportsPixelatedImage;\n }\n });\n\n // src/traces/heatmap/plot.js\n var require_plot5 = __commonJS({\n \"src/traces/heatmap/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var Registry = require_registry();\n var Drawing = require_drawing();\n var Axes = require_axes();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var formatLabels = require_format_labels();\n var Color2 = require_color();\n var extractOpts = require_colorscale().extractOpts;\n var makeColorScaleFuncFromTrace = require_colorscale().makeColorScaleFuncFromTrace;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var supportsPixelatedImage = require_supports_pixelated_image();\n var PIXELATED_IMAGE_STYLE = require_pixelated_image().STYLE;\n var labelClass = \"heatmap-label\";\n function selectLabels(plotGroup) {\n return plotGroup.selectAll(\"g.\" + labelClass);\n }\n function removeLabels(plotGroup) {\n selectLabels(plotGroup).remove();\n }\n module.exports = function(gd, plotinfo, cdheatmaps, heatmapLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(heatmapLayer, cdheatmaps, \"hm\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var xGap = trace.xgap || 0;\n var yGap = trace.ygap || 0;\n var z = cd0.z;\n var x = cd0.x;\n var y = cd0.y;\n var xc = cd0.xCenter;\n var yc = cd0.yCenter;\n var isContour = Registry.traceIs(trace, \"contour\");\n var zsmooth = isContour ? \"best\" : trace.zsmooth;\n var m = z.length;\n var n = Lib.maxRowLength(z);\n var xrev = false;\n var yrev = false;\n var left, right, temp, top, bottom, i, j, k;\n i = 0;\n while (left === void 0 && i < x.length - 1) {\n left = xa.c2p(x[i]);\n i++;\n }\n i = x.length - 1;\n while (right === void 0 && i > 0) {\n right = xa.c2p(x[i]);\n i--;\n }\n if (right < left) {\n temp = right;\n right = left;\n left = temp;\n xrev = true;\n }\n i = 0;\n while (top === void 0 && i < y.length - 1) {\n top = ya.c2p(y[i]);\n i++;\n }\n i = y.length - 1;\n while (bottom === void 0 && i > 0) {\n bottom = ya.c2p(y[i]);\n i--;\n }\n if (bottom < top) {\n temp = top;\n top = bottom;\n bottom = temp;\n yrev = true;\n }\n if (isContour) {\n xc = x;\n yc = y;\n x = cd0.xfill;\n y = cd0.yfill;\n }\n var drawingMethod = \"default\";\n if (zsmooth) {\n drawingMethod = zsmooth === \"best\" ? \"smooth\" : \"fast\";\n } else if (trace._islinear && xGap === 0 && yGap === 0 && supportsPixelatedImage()) {\n drawingMethod = \"fast\";\n }\n if (drawingMethod !== \"fast\") {\n var extra = zsmooth === \"best\" ? 0 : 0.5;\n left = Math.max(-extra * xa._length, left);\n right = Math.min((1 + extra) * xa._length, right);\n top = Math.max(-extra * ya._length, top);\n bottom = Math.min((1 + extra) * ya._length, bottom);\n }\n var imageWidth = Math.round(right - left);\n var imageHeight = Math.round(bottom - top);\n var isOffScreen = left >= xa._length || right <= 0 || top >= ya._length || bottom <= 0;\n if (isOffScreen) {\n var noImage = plotGroup.selectAll(\"image\").data([]);\n noImage.exit().remove();\n removeLabels(plotGroup);\n return;\n }\n var canvasW, canvasH;\n if (drawingMethod === \"fast\") {\n canvasW = n;\n canvasH = m;\n } else {\n canvasW = imageWidth;\n canvasH = imageHeight;\n }\n var canvas = document.createElement(\"canvas\");\n canvas.width = canvasW;\n canvas.height = canvasH;\n var context = canvas.getContext(\"2d\", { willReadFrequently: true });\n var sclFunc = makeColorScaleFuncFromTrace(trace, { noNumericCheck: true, returnArray: true });\n var xpx, ypx;\n if (drawingMethod === \"fast\") {\n xpx = xrev ? function(index) {\n return n - 1 - index;\n } : Lib.identity;\n ypx = yrev ? function(index) {\n return m - 1 - index;\n } : Lib.identity;\n } else {\n xpx = function(index) {\n return Lib.constrain(\n Math.round(xa.c2p(x[index]) - left),\n 0,\n imageWidth\n );\n };\n ypx = function(index) {\n return Lib.constrain(\n Math.round(ya.c2p(y[index]) - top),\n 0,\n imageHeight\n );\n };\n }\n var yi = ypx(0);\n var yb = [yi, yi];\n var xbi = xrev ? 0 : 1;\n var ybi = yrev ? 0 : 1;\n var pixcount = 0;\n var rcount = 0;\n var gcount = 0;\n var bcount = 0;\n var xb, xi, v, row, c;\n function setColor(v2, pixsize) {\n if (v2 !== void 0) {\n var c2 = sclFunc(v2);\n c2[0] = Math.round(c2[0]);\n c2[1] = Math.round(c2[1]);\n c2[2] = Math.round(c2[2]);\n pixcount += pixsize;\n rcount += c2[0] * pixsize;\n gcount += c2[1] * pixsize;\n bcount += c2[2] * pixsize;\n return c2;\n }\n return [0, 0, 0, 0];\n }\n function interpColor(r02, r12, xinterp, yinterp2) {\n var z00 = r02[xinterp.bin0];\n if (z00 === void 0) return setColor(void 0, 1);\n var z01 = r02[xinterp.bin1];\n var z10 = r12[xinterp.bin0];\n var z11 = r12[xinterp.bin1];\n var dx2 = z01 - z00 || 0;\n var dy2 = z10 - z00 || 0;\n var dxy;\n if (z01 === void 0) {\n if (z11 === void 0) dxy = 0;\n else if (z10 === void 0) dxy = 2 * (z11 - z00);\n else dxy = (2 * z11 - z10 - z00) * 2 / 3;\n } else if (z11 === void 0) {\n if (z10 === void 0) dxy = 0;\n else dxy = (2 * z00 - z01 - z10) * 2 / 3;\n } else if (z10 === void 0) dxy = (2 * z11 - z01 - z00) * 2 / 3;\n else dxy = z11 + z00 - z01 - z10;\n return setColor(z00 + xinterp.frac * dx2 + yinterp2.frac * (dy2 + xinterp.frac * dxy));\n }\n if (drawingMethod !== \"default\") {\n var pxIndex = 0;\n var pixels;\n try {\n pixels = new Uint8Array(canvasW * canvasH * 4);\n } catch (e) {\n pixels = new Array(canvasW * canvasH * 4);\n }\n if (drawingMethod === \"smooth\") {\n var xForPx = xc || x;\n var yForPx = yc || y;\n var xPixArray = new Array(xForPx.length);\n var yPixArray = new Array(yForPx.length);\n var xinterpArray = new Array(imageWidth);\n var findInterpX = xc ? findInterpFromCenters : findInterp;\n var findInterpY = yc ? findInterpFromCenters : findInterp;\n var yinterp, r0, r1;\n for (i = 0; i < xForPx.length; i++) xPixArray[i] = Math.round(xa.c2p(xForPx[i]) - left);\n for (i = 0; i < yForPx.length; i++) yPixArray[i] = Math.round(ya.c2p(yForPx[i]) - top);\n for (i = 0; i < imageWidth; i++) xinterpArray[i] = findInterpX(i, xPixArray);\n for (j = 0; j < imageHeight; j++) {\n yinterp = findInterpY(j, yPixArray);\n r0 = z[yinterp.bin0];\n r1 = z[yinterp.bin1];\n for (i = 0; i < imageWidth; i++, pxIndex += 4) {\n c = interpColor(r0, r1, xinterpArray[i], yinterp);\n putColor(pixels, pxIndex, c);\n }\n }\n } else {\n for (j = 0; j < m; j++) {\n row = z[j];\n yb = ypx(j);\n for (i = 0; i < n; i++) {\n c = setColor(row[i], 1);\n pxIndex = (yb * n + xpx(i)) * 4;\n putColor(pixels, pxIndex, c);\n }\n }\n }\n var imageData = context.createImageData(canvasW, canvasH);\n try {\n imageData.data.set(pixels);\n } catch (e) {\n var pxArray = imageData.data;\n var dlen = pxArray.length;\n for (j = 0; j < dlen; j++) {\n pxArray[j] = pixels[j];\n }\n }\n context.putImageData(imageData, 0, 0);\n } else {\n var xGapLeft = Math.floor(xGap / 2);\n var yGapTop = Math.floor(yGap / 2);\n for (j = 0; j < m; j++) {\n row = z[j];\n yb.reverse();\n yb[ybi] = ypx(j + 1);\n if (yb[0] === yb[1] || yb[0] === void 0 || yb[1] === void 0) {\n continue;\n }\n xi = xpx(0);\n xb = [xi, xi];\n for (i = 0; i < n; i++) {\n xb.reverse();\n xb[xbi] = xpx(i + 1);\n if (xb[0] === xb[1] || xb[0] === void 0 || xb[1] === void 0) {\n continue;\n }\n v = row[i];\n c = setColor(v, (xb[1] - xb[0]) * (yb[1] - yb[0]));\n context.fillStyle = \"rgba(\" + c.join(\",\") + \")\";\n context.fillRect(\n xb[0] + xGapLeft,\n yb[0] + yGapTop,\n xb[1] - xb[0] - xGap,\n yb[1] - yb[0] - yGap\n );\n }\n }\n }\n rcount = Math.round(rcount / pixcount);\n gcount = Math.round(gcount / pixcount);\n bcount = Math.round(bcount / pixcount);\n var avgColor = tinycolor(\"rgb(\" + rcount + \",\" + gcount + \",\" + bcount + \")\");\n gd._hmpixcount = (gd._hmpixcount || 0) + pixcount;\n gd._hmlumcount = (gd._hmlumcount || 0) + pixcount * avgColor.getLuminance();\n var image3 = plotGroup.selectAll(\"image\").data(cd);\n image3.enter().append(\"svg:image\").attr({\n xmlns: xmlnsNamespaces.svg,\n preserveAspectRatio: \"none\"\n });\n image3.attr({\n height: imageHeight,\n width: imageWidth,\n x: left,\n y: top,\n \"xlink:href\": canvas.toDataURL(\"image/png\")\n });\n if (drawingMethod === \"fast\" && !zsmooth) {\n image3.attr(\"style\", PIXELATED_IMAGE_STYLE);\n }\n removeLabels(plotGroup);\n var texttemplate = trace.texttemplate;\n if (texttemplate) {\n var cOpts = extractOpts(trace);\n var dummyAx = {\n type: \"linear\",\n range: [cOpts.min, cOpts.max],\n _separators: xa._separators,\n _numFormat: xa._numFormat\n };\n var aHistogram2dContour = trace.type === \"histogram2dcontour\";\n var aContour = trace.type === \"contour\";\n var iStart = aContour ? 1 : 0;\n var iStop = aContour ? m - 1 : m;\n var jStart = aContour ? 1 : 0;\n var jStop = aContour ? n - 1 : n;\n var textData = [];\n for (i = iStart; i < iStop; i++) {\n var yVal;\n if (aContour) {\n yVal = cd0.y[i];\n } else if (aHistogram2dContour) {\n if (i === 0 || i === m - 1) continue;\n yVal = cd0.y[i];\n } else if (cd0.yCenter) {\n yVal = cd0.yCenter[i];\n } else {\n if (i + 1 === m && cd0.y[i + 1] === void 0) continue;\n yVal = (cd0.y[i] + cd0.y[i + 1]) / 2;\n }\n var _y = Math.round(ya.c2p(yVal));\n if (0 > _y || _y > ya._length) continue;\n for (j = jStart; j < jStop; j++) {\n var xVal;\n if (aContour) {\n xVal = cd0.x[j];\n } else if (aHistogram2dContour) {\n if (j === 0 || j === n - 1) continue;\n xVal = cd0.x[j];\n } else if (cd0.xCenter) {\n xVal = cd0.xCenter[j];\n } else {\n if (j + 1 === n && cd0.x[j + 1] === void 0) continue;\n xVal = (cd0.x[j] + cd0.x[j + 1]) / 2;\n }\n var _x = Math.round(xa.c2p(xVal));\n if (0 > _x || _x > xa._length) continue;\n var obj = formatLabels({\n x: xVal,\n y: yVal\n }, trace, gd._fullLayout);\n obj.x = xVal;\n obj.y = yVal;\n var zVal = cd0.z[i][j];\n if (zVal === void 0) {\n obj.z = \"\";\n obj.zLabel = \"\";\n } else {\n obj.z = zVal;\n obj.zLabel = Axes.tickText(dummyAx, zVal, \"hover\").text;\n }\n var theText = cd0.text && cd0.text[i] && cd0.text[i][j];\n if (theText === void 0 || theText === false) theText = \"\";\n obj.text = theText;\n var _t = Lib.texttemplateString(texttemplate, obj, gd._fullLayout._d3locale, obj, trace._meta || {});\n if (!_t) continue;\n var lines = _t.split(\"
\");\n var nL = lines.length;\n var nC = 0;\n for (k = 0; k < nL; k++) {\n nC = Math.max(nC, lines[k].length);\n }\n textData.push({\n l: nL,\n // number of lines\n c: nC,\n // maximum number of chars in a line\n t: _t,\n // text\n x: _x,\n y: _y,\n z: zVal\n });\n }\n }\n var font = trace.textfont;\n var fontSize = font.size;\n var globalFontSize = gd._fullLayout.font.size;\n if (!fontSize || fontSize === \"auto\") {\n var minW = Infinity;\n var minH = Infinity;\n var maxL = 0;\n var maxC = 0;\n for (k = 0; k < textData.length; k++) {\n var d = textData[k];\n maxL = Math.max(maxL, d.l);\n maxC = Math.max(maxC, d.c);\n if (k < textData.length - 1) {\n var nextD = textData[k + 1];\n var dx = Math.abs(nextD.x - d.x);\n var dy = Math.abs(nextD.y - d.y);\n if (dx) minW = Math.min(minW, dx);\n if (dy) minH = Math.min(minH, dy);\n }\n }\n if (!isFinite(minW) || !isFinite(minH)) {\n fontSize = globalFontSize;\n } else {\n minW -= xGap;\n minH -= yGap;\n minW /= maxC;\n minH /= maxL;\n minW /= LINE_SPACING / 2;\n minH /= LINE_SPACING;\n fontSize = Math.min(\n Math.floor(minW),\n Math.floor(minH),\n globalFontSize\n );\n }\n }\n if (fontSize <= 0 || !isFinite(fontSize)) return;\n var xFn = function(d2) {\n return d2.x;\n };\n var yFn = function(d2) {\n return d2.y - fontSize * (d2.l * LINE_SPACING / 2 - 1);\n };\n var labels = selectLabels(plotGroup).data(textData);\n labels.enter().append(\"g\").classed(labelClass, 1).append(\"text\").attr(\"text-anchor\", \"middle\").each(function(d2) {\n var thisLabel = d3.select(this);\n var fontColor = font.color;\n if (!fontColor || fontColor === \"auto\") {\n fontColor = Color2.contrast(\n d2.z === void 0 ? gd._fullLayout.plot_bgcolor : \"rgba(\" + sclFunc(d2.z).join() + \")\"\n );\n }\n thisLabel.attr(\"data-notex\", 1).call(svgTextUtils.positionText, xFn(d2), yFn(d2)).call(Drawing.font, {\n family: font.family,\n size: fontSize,\n color: fontColor,\n weight: font.weight,\n style: font.style,\n variant: font.variant,\n textcase: font.textcase,\n lineposition: font.lineposition,\n shadow: font.shadow\n }).text(d2.t).call(svgTextUtils.convertToTspans, gd);\n });\n }\n });\n };\n function findInterp(pixel, pixArray) {\n var maxBin = pixArray.length - 2;\n var bin = Lib.constrain(Lib.findBin(pixel, pixArray), 0, maxBin);\n var pix0 = pixArray[bin];\n var pix1 = pixArray[bin + 1];\n var interp = Lib.constrain(bin + (pixel - pix0) / (pix1 - pix0) - 0.5, 0, maxBin);\n var bin0 = Math.round(interp);\n var frac = Math.abs(interp - bin0);\n if (!interp || interp === maxBin || !frac) {\n return {\n bin0,\n bin1: bin0,\n frac: 0\n };\n }\n return {\n bin0,\n frac,\n bin1: Math.round(bin0 + frac / (interp - bin0))\n };\n }\n function findInterpFromCenters(pixel, centerPixArray) {\n var maxBin = centerPixArray.length - 1;\n var bin = Lib.constrain(Lib.findBin(pixel, centerPixArray), 0, maxBin);\n var pix0 = centerPixArray[bin];\n var pix1 = centerPixArray[bin + 1];\n var frac = (pixel - pix0) / (pix1 - pix0) || 0;\n if (frac <= 0) {\n return {\n bin0: bin,\n bin1: bin,\n frac: 0\n };\n }\n if (frac < 0.5) {\n return {\n bin0: bin,\n bin1: bin + 1,\n frac\n };\n }\n return {\n bin0: bin + 1,\n bin1: bin,\n frac: 1 - frac\n };\n }\n function putColor(pixels, pxIndex, c) {\n pixels[pxIndex] = c[0];\n pixels[pxIndex + 1] = c[1];\n pixels[pxIndex + 2] = c[2];\n pixels[pxIndex + 3] = Math.round(c[3] * 255);\n }\n }\n });\n\n // src/traces/heatmap/colorbar.js\n var require_colorbar2 = __commonJS({\n \"src/traces/heatmap/colorbar.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n min: \"zmin\",\n max: \"zmax\"\n };\n }\n });\n\n // src/traces/heatmap/style.js\n var require_style6 = __commonJS({\n \"src/traces/heatmap/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n module.exports = function style(gd) {\n d3.select(gd).selectAll(\".hm image\").style(\"opacity\", function(d) {\n return d.trace.opacity;\n });\n };\n }\n });\n\n // src/traces/heatmap/hover.js\n var require_hover5 = __commonJS({\n \"src/traces/heatmap/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var Axes = require_axes();\n var extractOpts = require_colorscale().extractOpts;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n if (!opts) opts = {};\n var isContour = opts.isContour;\n var cd0 = pointData.cd[0];\n var trace = cd0.trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var x = cd0.x;\n var y = cd0.y;\n var z = cd0.z;\n var xc = cd0.xCenter;\n var yc = cd0.yCenter;\n var zmask = cd0.zmask;\n var zhoverformat = trace.zhoverformat;\n var x2 = x;\n var y2 = y;\n var xl, yl, nx, ny;\n if (pointData.index !== false) {\n try {\n nx = Math.round(pointData.index[1]);\n ny = Math.round(pointData.index[0]);\n } catch (e) {\n Lib.error(\"Error hovering on heatmap, pointNumber must be [row,col], found:\", pointData.index);\n return;\n }\n if (nx < 0 || nx >= z[0].length || ny < 0 || ny > z.length) {\n return;\n }\n } else if (Fx.inbox(xval - x[0], xval - x[x.length - 1], 0) > 0 || Fx.inbox(yval - y[0], yval - y[y.length - 1], 0) > 0) {\n return;\n } else {\n if (isContour) {\n var i2;\n x2 = [2 * x[0] - x[1]];\n for (i2 = 1; i2 < x.length; i2++) {\n x2.push((x[i2] + x[i2 - 1]) / 2);\n }\n x2.push([2 * x[x.length - 1] - x[x.length - 2]]);\n y2 = [2 * y[0] - y[1]];\n for (i2 = 1; i2 < y.length; i2++) {\n y2.push((y[i2] + y[i2 - 1]) / 2);\n }\n y2.push([2 * y[y.length - 1] - y[y.length - 2]]);\n }\n nx = Math.max(0, Math.min(x2.length - 2, Lib.findBin(xval, x2)));\n ny = Math.max(0, Math.min(y2.length - 2, Lib.findBin(yval, y2)));\n }\n var x0 = xa.c2p(x[nx]);\n var x1 = xa.c2p(x[nx + 1]);\n var y0 = ya.c2p(y[ny]);\n var y1 = ya.c2p(y[ny + 1]);\n var _x, _y;\n if (isContour) {\n _x = cd0.orig_x || x;\n _y = cd0.orig_y || y;\n x1 = x0;\n xl = _x[nx];\n y1 = y0;\n yl = _y[ny];\n } else {\n _x = cd0.orig_x || xc || x;\n _y = cd0.orig_y || yc || y;\n xl = xc ? _x[nx] : (_x[nx] + _x[nx + 1]) / 2;\n yl = yc ? _y[ny] : (_y[ny] + _y[ny + 1]) / 2;\n if (xa && xa.type === \"category\") xl = x[nx];\n if (ya && ya.type === \"category\") yl = y[ny];\n if (trace.zsmooth) {\n x0 = x1 = xa.c2p(xl);\n y0 = y1 = ya.c2p(yl);\n }\n }\n var zVal = z[ny][nx];\n if (zmask && !zmask[ny][nx]) zVal = void 0;\n if (zVal === void 0 && !trace.hoverongaps) return;\n var text;\n if (isArrayOrTypedArray(cd0.hovertext) && isArrayOrTypedArray(cd0.hovertext[ny])) {\n text = cd0.hovertext[ny][nx];\n } else if (isArrayOrTypedArray(cd0.text) && isArrayOrTypedArray(cd0.text[ny])) {\n text = cd0.text[ny][nx];\n }\n var cOpts = extractOpts(trace);\n var dummyAx = {\n type: \"linear\",\n range: [cOpts.min, cOpts.max],\n hoverformat: zhoverformat,\n _separators: xa._separators,\n _numFormat: xa._numFormat\n };\n var zLabel = Axes.tickText(dummyAx, zVal, \"hover\").text;\n return [Lib.extendFlat(pointData, {\n index: trace._after2before ? trace._after2before[ny][nx] : [ny, nx],\n // never let a 2D override 1D type as closest point\n distance: pointData.maxHoverDistance,\n spikeDistance: pointData.maxSpikeDistance,\n x0,\n x1,\n y0,\n y1,\n xLabelVal: xl,\n yLabelVal: yl,\n zLabelVal: zVal,\n zLabel,\n text\n })];\n };\n }\n });\n\n // src/traces/heatmap/index.js\n var require_heatmap = __commonJS({\n \"src/traces/heatmap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes25(),\n supplyDefaults: require_defaults21(),\n calc: require_calc9(),\n plot: require_plot5(),\n colorbar: require_colorbar2(),\n style: require_style6(),\n hoverPoints: require_hover5(),\n moduleType: \"trace\",\n name: \"heatmap\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/heatmap.js\n var require_heatmap2 = __commonJS({\n \"lib/heatmap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_heatmap();\n }\n });\n\n // src/traces/histogram/bin_attributes.js\n var require_bin_attributes = __commonJS({\n \"src/traces/histogram/bin_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = function makeBinAttrs(axLetter, match) {\n return {\n start: {\n valType: \"any\",\n // for date axes\n editType: \"calc\"\n },\n end: {\n valType: \"any\",\n // for date axes\n editType: \"calc\"\n },\n size: {\n valType: \"any\",\n // for date axes\n editType: \"calc\"\n },\n editType: \"calc\"\n };\n };\n }\n });\n\n // src/traces/histogram/constants.js\n var require_constants15 = __commonJS({\n \"src/traces/histogram/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n eventDataKeys: [\"binNumber\"]\n };\n }\n });\n\n // src/traces/histogram/attributes.js\n var require_attributes26 = __commonJS({\n \"src/traces/histogram/attributes.js\"(exports, module) {\n \"use strict\";\n var barAttrs = require_attributes23();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var fontAttrs = require_font_attributes();\n var makeBinAttrs = require_bin_attributes();\n var constants = require_constants15();\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n text: extendFlat({}, barAttrs.text, {}),\n hovertext: extendFlat({}, barAttrs.hovertext, {}),\n orientation: barAttrs.orientation,\n histfunc: {\n valType: \"enumerated\",\n values: [\"count\", \"sum\", \"avg\", \"min\", \"max\"],\n dflt: \"count\",\n editType: \"calc\"\n },\n histnorm: {\n valType: \"enumerated\",\n values: [\"\", \"percent\", \"probability\", \"density\", \"probability density\"],\n dflt: \"\",\n editType: \"calc\"\n },\n cumulative: {\n enabled: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n direction: {\n valType: \"enumerated\",\n values: [\"increasing\", \"decreasing\"],\n dflt: \"increasing\",\n editType: \"calc\"\n },\n currentbin: {\n valType: \"enumerated\",\n values: [\"include\", \"exclude\", \"half\"],\n dflt: \"include\",\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n nbinsx: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n xbins: makeBinAttrs(\"x\", true),\n nbinsy: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n ybins: makeBinAttrs(\"y\", true),\n autobinx: {\n valType: \"boolean\",\n dflt: null,\n editType: \"calc\"\n },\n autobiny: {\n valType: \"boolean\",\n dflt: null,\n editType: \"calc\"\n },\n bingroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n texttemplate: texttemplateAttrs({\n arrayOk: false,\n editType: \"plot\"\n }, {\n keys: [\"label\", \"value\"]\n }),\n textposition: extendFlat({}, barAttrs.textposition, {\n arrayOk: false\n }),\n textfont: fontAttrs({\n arrayOk: false,\n editType: \"plot\",\n colorEditType: \"style\"\n }),\n outsidetextfont: fontAttrs({\n arrayOk: false,\n editType: \"plot\",\n colorEditType: \"style\"\n }),\n insidetextfont: fontAttrs({\n arrayOk: false,\n editType: \"plot\",\n colorEditType: \"style\"\n }),\n insidetextanchor: barAttrs.insidetextanchor,\n textangle: barAttrs.textangle,\n cliponaxis: barAttrs.cliponaxis,\n constraintext: barAttrs.constraintext,\n marker: barAttrs.marker,\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n selected: barAttrs.selected,\n unselected: barAttrs.unselected,\n zorder: barAttrs.zorder\n };\n }\n });\n\n // src/traces/histogram/defaults.js\n var require_defaults22 = __commonJS({\n \"src/traces/histogram/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var Color2 = require_color();\n var handleText = require_defaults19().handleText;\n var handleStyleDefaults = require_style_defaults();\n var attributes = require_attributes26();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var cumulative = coerce(\"cumulative.enabled\");\n if (cumulative) {\n coerce(\"cumulative.direction\");\n coerce(\"cumulative.currentbin\");\n }\n coerce(\"text\");\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: true,\n moduleHasUnselected: true,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n var orientation = coerce(\"orientation\", y && !x ? \"h\" : \"v\");\n var sampleLetter = orientation === \"v\" ? \"x\" : \"y\";\n var aggLetter = orientation === \"v\" ? \"y\" : \"x\";\n var len = x && y ? Math.min(Lib.minRowLength(x) && Lib.minRowLength(y)) : Lib.minRowLength(traceOut[sampleLetter] || []);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\"], layout);\n var hasAggregationData = traceOut[aggLetter];\n if (hasAggregationData) coerce(\"histfunc\");\n coerce(\"histnorm\");\n coerce(\"autobin\" + sampleLetter);\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n var lineColor = (traceOut.marker.line || {}).color;\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color2.defaultLine, { axis: \"y\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color2.defaultLine, { axis: \"x\", inherit: \"y\" });\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/histogram/cross_trace_defaults.js\n var require_cross_trace_defaults3 = __commonJS({\n \"src/traces/histogram/cross_trace_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var axisIds = require_axis_ids();\n var traceIs = require_registry().traceIs;\n var handleGroupingDefaults = require_grouping_defaults();\n var validateCornerradius = require_defaults19().validateCornerradius;\n var nestedProperty = Lib.nestedProperty;\n var getAxisGroup = require_constraints().getAxisGroup;\n var BINATTRS = [\n { aStr: { x: \"xbins.start\", y: \"ybins.start\" }, name: \"start\" },\n { aStr: { x: \"xbins.end\", y: \"ybins.end\" }, name: \"end\" },\n { aStr: { x: \"xbins.size\", y: \"ybins.size\" }, name: \"size\" },\n { aStr: { x: \"nbinsx\", y: \"nbinsy\" }, name: \"nbins\" }\n ];\n var BINDIRECTIONS = [\"x\", \"y\"];\n module.exports = function crossTraceDefaults(fullData, fullLayout) {\n var allBinOpts = fullLayout._histogramBinOpts = {};\n var histTraces = [];\n var mustMatchTracesLookup = {};\n var otherTracesList = [];\n var traceOut, traces, groupName, binDir;\n var i, j, k;\n function coerce(attr2, dflt) {\n return Lib.coerce(traceOut._input, traceOut, traceOut._module.attributes, attr2, dflt);\n }\n function orientation2binDir(traceOut2) {\n return traceOut2.orientation === \"v\" ? \"x\" : \"y\";\n }\n function getAxisType(traceOut2, binDir2) {\n var ax = axisIds.getFromTrace({ _fullLayout: fullLayout }, traceOut2, binDir2);\n return ax.type;\n }\n function fillBinOpts(traceOut2, groupName2, binDir2) {\n var fallbackGroupName = traceOut2.uid + \"__\" + binDir2;\n if (!groupName2) groupName2 = fallbackGroupName;\n var axType = getAxisType(traceOut2, binDir2);\n var calendar = traceOut2[binDir2 + \"calendar\"] || \"\";\n var binOpts2 = allBinOpts[groupName2];\n var needsNewItem = true;\n if (binOpts2) {\n if (axType === binOpts2.axType && calendar === binOpts2.calendar) {\n needsNewItem = false;\n binOpts2.traces.push(traceOut2);\n binOpts2.dirs.push(binDir2);\n } else {\n groupName2 = fallbackGroupName;\n if (axType !== binOpts2.axType) {\n Lib.warn([\n \"Attempted to group the bins of trace\",\n traceOut2.index,\n \"set on a\",\n \"type:\" + axType,\n \"axis\",\n \"with bins on\",\n \"type:\" + binOpts2.axType,\n \"axis.\"\n ].join(\" \"));\n }\n if (calendar !== binOpts2.calendar) {\n Lib.warn([\n \"Attempted to group the bins of trace\",\n traceOut2.index,\n \"set with a\",\n calendar,\n \"calendar\",\n \"with bins\",\n binOpts2.calendar ? \"on a \" + binOpts2.calendar + \" calendar\" : \"w/o a set calendar\"\n ].join(\" \"));\n }\n }\n }\n if (needsNewItem) {\n allBinOpts[groupName2] = {\n traces: [traceOut2],\n dirs: [binDir2],\n axType,\n calendar: traceOut2[binDir2 + \"calendar\"] || \"\"\n };\n }\n traceOut2[\"_\" + binDir2 + \"bingroup\"] = groupName2;\n }\n for (i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n if (traceIs(traceOut, \"histogram\")) {\n histTraces.push(traceOut);\n delete traceOut._xautoBinFinished;\n delete traceOut._yautoBinFinished;\n if (traceOut.type === \"histogram\") {\n var r = coerce(\"marker.cornerradius\", fullLayout.barcornerradius);\n if (traceOut.marker) {\n traceOut.marker.cornerradius = validateCornerradius(r);\n }\n }\n if (!traceIs(traceOut, \"2dMap\")) {\n handleGroupingDefaults(traceOut._input, traceOut, fullLayout, coerce, fullLayout.barmode);\n }\n }\n }\n var alignmentOpts = fullLayout._alignmentOpts || {};\n for (i = 0; i < histTraces.length; i++) {\n traceOut = histTraces[i];\n groupName = \"\";\n if (!traceIs(traceOut, \"2dMap\")) {\n binDir = orientation2binDir(traceOut);\n if (fullLayout.barmode === \"group\" && traceOut.alignmentgroup) {\n var pa = traceOut[binDir + \"axis\"];\n var aGroupId = getAxisGroup(fullLayout, pa) + traceOut.orientation;\n if ((alignmentOpts[aGroupId] || {})[traceOut.alignmentgroup]) {\n groupName = aGroupId;\n }\n }\n if (!groupName && fullLayout.barmode !== \"overlay\") {\n groupName = getAxisGroup(fullLayout, traceOut.xaxis) + getAxisGroup(fullLayout, traceOut.yaxis) + orientation2binDir(traceOut);\n }\n }\n if (groupName) {\n if (!mustMatchTracesLookup[groupName]) {\n mustMatchTracesLookup[groupName] = [];\n }\n mustMatchTracesLookup[groupName].push(traceOut);\n } else {\n otherTracesList.push(traceOut);\n }\n }\n for (groupName in mustMatchTracesLookup) {\n traces = mustMatchTracesLookup[groupName];\n if (traces.length === 1) {\n otherTracesList.push(traces[0]);\n continue;\n }\n var binGroupFound = false;\n if (traces.length) {\n traceOut = traces[0];\n binGroupFound = coerce(\"bingroup\");\n }\n groupName = binGroupFound || groupName;\n for (i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n var bingroupIn = traceOut._input.bingroup;\n if (bingroupIn && bingroupIn !== groupName) {\n Lib.warn([\n \"Trace\",\n traceOut.index,\n \"must match\",\n \"within bingroup\",\n groupName + \".\",\n \"Ignoring its bingroup:\",\n bingroupIn,\n \"setting.\"\n ].join(\" \"));\n }\n traceOut.bingroup = groupName;\n fillBinOpts(traceOut, groupName, orientation2binDir(traceOut));\n }\n }\n for (i = 0; i < otherTracesList.length; i++) {\n traceOut = otherTracesList[i];\n var binGroup = coerce(\"bingroup\");\n if (traceIs(traceOut, \"2dMap\")) {\n for (k = 0; k < 2; k++) {\n binDir = BINDIRECTIONS[k];\n var binGroupInDir = coerce(\n binDir + \"bingroup\",\n binGroup ? binGroup + \"__\" + binDir : null\n );\n fillBinOpts(traceOut, binGroupInDir, binDir);\n }\n } else {\n fillBinOpts(traceOut, binGroup, orientation2binDir(traceOut));\n }\n }\n for (groupName in allBinOpts) {\n var binOpts = allBinOpts[groupName];\n traces = binOpts.traces;\n for (j = 0; j < BINATTRS.length; j++) {\n var attrSpec = BINATTRS[j];\n var attr = attrSpec.name;\n var aStr;\n var autoVals;\n if (attr === \"nbins\" && binOpts.sizeFound) continue;\n for (i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n binDir = binOpts.dirs[i];\n aStr = attrSpec.aStr[binDir];\n if (nestedProperty(traceOut._input, aStr).get() !== void 0) {\n binOpts[attr] = coerce(aStr);\n binOpts[attr + \"Found\"] = true;\n break;\n }\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n if (autoVals[attr]) {\n nestedProperty(traceOut, aStr).set(autoVals[attr]);\n }\n }\n if (attr === \"start\" || attr === \"end\") {\n for (; i < traces.length; i++) {\n traceOut = traces[i];\n if (traceOut[\"_\" + binDir + \"bingroup\"]) {\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n coerce(aStr, autoVals[attr]);\n }\n }\n }\n if (attr === \"nbins\" && !binOpts.sizeFound && !binOpts.nbinsFound) {\n traceOut = traces[0];\n binOpts[attr] = coerce(aStr);\n }\n }\n }\n };\n }\n });\n\n // src/traces/histogram/hover.js\n var require_hover6 = __commonJS({\n \"src/traces/histogram/hover.js\"(exports, module) {\n \"use strict\";\n var barHover = require_hover3().hoverPoints;\n var hoverLabelText = require_axes().hoverLabelText;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var pts = barHover(pointData, xval, yval, hovermode, opts);\n if (!pts) return;\n pointData = pts[0];\n var di = pointData.cd[pointData.index];\n var trace = pointData.cd[0].trace;\n if (!trace.cumulative.enabled) {\n var posLetter = trace.orientation === \"h\" ? \"y\" : \"x\";\n pointData[posLetter + \"Label\"] = hoverLabelText(pointData[posLetter + \"a\"], [di.ph0, di.ph1], trace[posLetter + \"hoverformat\"]);\n }\n return pts;\n };\n }\n });\n\n // src/traces/histogram/event_data.js\n var require_event_data3 = __commonJS({\n \"src/traces/histogram/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n out.x = \"xVal\" in pt ? pt.xVal : pt.x;\n out.y = \"yVal\" in pt ? pt.yVal : pt.y;\n if (\"zLabelVal\" in pt) out.z = pt.zLabelVal;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n if (!(trace.cumulative || {}).enabled) {\n var pts = Array.isArray(pointNumber) ? cd[0].pts[pointNumber[0]][pointNumber[1]] : cd[pointNumber].pts;\n out.pointNumbers = pts;\n out.binNumber = out.pointNumber;\n delete out.pointNumber;\n delete out.pointIndex;\n var pointIndices;\n if (trace._indexToPoints) {\n pointIndices = [];\n for (var i = 0; i < pts.length; i++) {\n pointIndices = pointIndices.concat(trace._indexToPoints[pts[i]]);\n }\n } else {\n pointIndices = pts;\n }\n out.pointIndices = pointIndices;\n }\n return out;\n };\n }\n });\n\n // src/traces/histogram/index.js\n var require_histogram = __commonJS({\n \"src/traces/histogram/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes26(),\n layoutAttributes: require_layout_attributes6(),\n supplyDefaults: require_defaults22(),\n crossTraceDefaults: require_cross_trace_defaults3(),\n supplyLayoutDefaults: require_layout_defaults5(),\n calc: require_calc7().calc,\n crossTraceCalc: require_cross_trace_calc().crossTraceCalc,\n plot: require_plot3().plot,\n layerName: \"barlayer\",\n style: require_style4().style,\n styleOnSelect: require_style4().styleOnSelect,\n colorbar: require_marker_colorbar(),\n hoverPoints: require_hover6(),\n selectPoints: require_select3(),\n eventData: require_event_data3(),\n moduleType: \"trace\",\n name: \"histogram\",\n basePlotModule: require_cartesian(),\n categories: [\"bar-like\", \"cartesian\", \"svg\", \"bar\", \"histogram\", \"oriented\", \"errorBarsOK\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/histogram.js\n var require_histogram2 = __commonJS({\n \"lib/histogram.js\"(exports, module) {\n \"use strict\";\n module.exports = require_histogram();\n }\n });\n\n // src/traces/histogram2d/attributes.js\n var require_attributes27 = __commonJS({\n \"src/traces/histogram2d/attributes.js\"(exports, module) {\n \"use strict\";\n var histogramAttrs = require_attributes26();\n var makeBinAttrs = require_bin_attributes();\n var heatmapAttrs = require_attributes25();\n var baseAttrs = require_attributes2();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n x: histogramAttrs.x,\n y: histogramAttrs.y,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n marker: {\n color: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n histnorm: histogramAttrs.histnorm,\n histfunc: histogramAttrs.histfunc,\n nbinsx: histogramAttrs.nbinsx,\n xbins: makeBinAttrs(\"x\"),\n nbinsy: histogramAttrs.nbinsy,\n ybins: makeBinAttrs(\"y\"),\n autobinx: histogramAttrs.autobinx,\n autobiny: histogramAttrs.autobiny,\n bingroup: extendFlat({}, histogramAttrs.bingroup, {}),\n xbingroup: extendFlat({}, histogramAttrs.bingroup, {}),\n ybingroup: extendFlat({}, histogramAttrs.bingroup, {}),\n xgap: heatmapAttrs.xgap,\n ygap: heatmapAttrs.ygap,\n zsmooth: heatmapAttrs.zsmooth,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\", 1),\n hovertemplate: hovertemplateAttrs({}, { keys: \"z\" }),\n texttemplate: texttemplateAttrs({\n arrayOk: false,\n editType: \"plot\"\n }, {\n keys: \"z\"\n }),\n textfont: heatmapAttrs.textfont,\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", { cLetter: \"z\", autoColorDflt: false })\n );\n }\n });\n\n // src/traces/histogram2d/sample_defaults.js\n var require_sample_defaults = __commonJS({\n \"src/traces/histogram2d/sample_defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n module.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout) {\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n if (!xlen || !ylen) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = Math.min(xlen, ylen);\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\"], layout);\n var hasAggregationData = coerce(\"z\") || coerce(\"marker.color\");\n if (hasAggregationData) coerce(\"histfunc\");\n coerce(\"histnorm\");\n coerce(\"autobinx\");\n coerce(\"autobiny\");\n };\n }\n });\n\n // src/traces/histogram2d/defaults.js\n var require_defaults23 = __commonJS({\n \"src/traces/histogram2d/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSampleDefaults = require_sample_defaults();\n var handleStyleDefaults = require_style_defaults2();\n var colorscaleDefaults = require_defaults2();\n var handleHeatmapLabelDefaults = require_label_defaults();\n var attributes = require_attributes27();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if (traceOut.visible === false) return;\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n coerce(\"hovertemplate\");\n handleHeatmapLabelDefaults(coerce, layout);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n };\n }\n });\n\n // src/traces/histogram2d/hover.js\n var require_hover7 = __commonJS({\n \"src/traces/histogram2d/hover.js\"(exports, module) {\n \"use strict\";\n var heatmapHover = require_hover5();\n var hoverLabelText = require_axes().hoverLabelText;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var pts = heatmapHover(pointData, xval, yval, hovermode, opts);\n if (!pts) return;\n pointData = pts[0];\n var indices = pointData.index;\n var ny = indices[0];\n var nx = indices[1];\n var cd0 = pointData.cd[0];\n var trace = cd0.trace;\n var xRange = cd0.xRanges[nx];\n var yRange = cd0.yRanges[ny];\n pointData.xLabel = hoverLabelText(pointData.xa, [xRange[0], xRange[1]], trace.xhoverformat);\n pointData.yLabel = hoverLabelText(pointData.ya, [yRange[0], yRange[1]], trace.yhoverformat);\n return pts;\n };\n }\n });\n\n // src/traces/histogram2d/index.js\n var require_histogram2d = __commonJS({\n \"src/traces/histogram2d/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes27(),\n supplyDefaults: require_defaults23(),\n crossTraceDefaults: require_cross_trace_defaults3(),\n calc: require_calc9(),\n plot: require_plot5(),\n layerName: \"heatmaplayer\",\n colorbar: require_colorbar2(),\n style: require_style6(),\n hoverPoints: require_hover7(),\n eventData: require_event_data3(),\n moduleType: \"trace\",\n name: \"histogram2d\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"histogram\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/histogram2d.js\n var require_histogram2d2 = __commonJS({\n \"lib/histogram2d.js\"(exports, module) {\n \"use strict\";\n module.exports = require_histogram2d();\n }\n });\n\n // src/constants/filter_ops.js\n var require_filter_ops = __commonJS({\n \"src/constants/filter_ops.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n COMPARISON_OPS: [\"=\", \"!=\", \"<\", \">=\", \">\", \"<=\"],\n COMPARISON_OPS2: [\"=\", \"<\", \">=\", \">\", \"<=\"],\n INTERVAL_OPS: [\"[]\", \"()\", \"[)\", \"(]\", \"][\", \")(\", \"](\", \")[\"],\n SET_OPS: [\"{}\", \"}{\"],\n CONSTRAINT_REDUCTION: {\n // for contour constraints, open/closed endpoints are equivalent\n \"=\": \"=\",\n \"<\": \"<\",\n \"<=\": \"<\",\n \">\": \">\",\n \">=\": \">\",\n \"[]\": \"[]\",\n \"()\": \"[]\",\n \"[)\": \"[]\",\n \"(]\": \"[]\",\n \"][\": \"][\",\n \")(\": \"][\",\n \"](\": \"][\",\n \")[\": \"][\"\n }\n };\n }\n });\n\n // src/traces/contour/attributes.js\n var require_attributes28 = __commonJS({\n \"src/traces/contour/attributes.js\"(exports, module) {\n \"use strict\";\n var heatmapAttrs = require_attributes25();\n var scatterAttrs = require_attributes12();\n var axisFormat = require_axis_format_attributes();\n var axisHoverFormat = axisFormat.axisHoverFormat;\n var descriptionOnlyNumbers = axisFormat.descriptionOnlyNumbers;\n var colorScaleAttrs = require_attributes8();\n var dash = require_attributes4().dash;\n var fontAttrs = require_font_attributes();\n var extendFlat = require_extend().extendFlat;\n var filterOps = require_filter_ops();\n var COMPARISON_OPS2 = filterOps.COMPARISON_OPS2;\n var INTERVAL_OPS = filterOps.INTERVAL_OPS;\n var scatterLineAttrs = scatterAttrs.line;\n module.exports = extendFlat(\n {\n z: heatmapAttrs.z,\n x: heatmapAttrs.x,\n x0: heatmapAttrs.x0,\n dx: heatmapAttrs.dx,\n y: heatmapAttrs.y,\n y0: heatmapAttrs.y0,\n dy: heatmapAttrs.dy,\n xperiod: heatmapAttrs.xperiod,\n yperiod: heatmapAttrs.yperiod,\n xperiod0: scatterAttrs.xperiod0,\n yperiod0: scatterAttrs.yperiod0,\n xperiodalignment: heatmapAttrs.xperiodalignment,\n yperiodalignment: heatmapAttrs.yperiodalignment,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n xtype: heatmapAttrs.xtype,\n ytype: heatmapAttrs.ytype,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\", 1),\n hovertemplate: heatmapAttrs.hovertemplate,\n texttemplate: extendFlat({}, heatmapAttrs.texttemplate, {}),\n textfont: extendFlat({}, heatmapAttrs.textfont, {}),\n hoverongaps: heatmapAttrs.hoverongaps,\n connectgaps: extendFlat({}, heatmapAttrs.connectgaps, {}),\n fillcolor: {\n valType: \"color\",\n editType: \"calc\"\n },\n autocontour: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\",\n impliedEdits: {\n \"contours.start\": void 0,\n \"contours.end\": void 0,\n \"contours.size\": void 0\n }\n },\n ncontours: {\n valType: \"integer\",\n dflt: 15,\n min: 1,\n editType: \"calc\"\n },\n contours: {\n type: {\n valType: \"enumerated\",\n values: [\"levels\", \"constraint\"],\n dflt: \"levels\",\n editType: \"calc\"\n },\n start: {\n valType: \"number\",\n dflt: null,\n editType: \"plot\",\n impliedEdits: { \"^autocontour\": false }\n },\n end: {\n valType: \"number\",\n dflt: null,\n editType: \"plot\",\n impliedEdits: { \"^autocontour\": false }\n },\n size: {\n valType: \"number\",\n dflt: null,\n min: 0,\n editType: \"plot\",\n impliedEdits: { \"^autocontour\": false }\n },\n coloring: {\n valType: \"enumerated\",\n values: [\"fill\", \"heatmap\", \"lines\", \"none\"],\n dflt: \"fill\",\n editType: \"calc\"\n },\n showlines: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n showlabels: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n labelfont: fontAttrs({\n editType: \"plot\",\n colorEditType: \"style\"\n }),\n labelformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\",\n description: descriptionOnlyNumbers(\"contour label\")\n },\n operation: {\n valType: \"enumerated\",\n values: [].concat(COMPARISON_OPS2).concat(INTERVAL_OPS),\n dflt: \"=\",\n editType: \"calc\"\n },\n value: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc\"\n },\n editType: \"calc\",\n impliedEdits: { autocontour: false }\n },\n line: {\n color: extendFlat({}, scatterLineAttrs.color, {\n editType: \"style+colorbars\"\n }),\n width: {\n valType: \"number\",\n min: 0,\n editType: \"style+colorbars\"\n },\n dash,\n smoothing: extendFlat({}, scatterLineAttrs.smoothing, {}),\n editType: \"plot\"\n },\n zorder: scatterAttrs.zorder\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n autoColorDflt: false,\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/histogram2dcontour/attributes.js\n var require_attributes29 = __commonJS({\n \"src/traces/histogram2dcontour/attributes.js\"(exports, module) {\n \"use strict\";\n var histogram2dAttrs = require_attributes27();\n var contourAttrs = require_attributes28();\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n x: histogram2dAttrs.x,\n y: histogram2dAttrs.y,\n z: histogram2dAttrs.z,\n marker: histogram2dAttrs.marker,\n histnorm: histogram2dAttrs.histnorm,\n histfunc: histogram2dAttrs.histfunc,\n nbinsx: histogram2dAttrs.nbinsx,\n xbins: histogram2dAttrs.xbins,\n nbinsy: histogram2dAttrs.nbinsy,\n ybins: histogram2dAttrs.ybins,\n autobinx: histogram2dAttrs.autobinx,\n autobiny: histogram2dAttrs.autobiny,\n bingroup: histogram2dAttrs.bingroup,\n xbingroup: histogram2dAttrs.xbingroup,\n ybingroup: histogram2dAttrs.ybingroup,\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n contours: contourAttrs.contours,\n line: {\n color: contourAttrs.line.color,\n width: extendFlat({}, contourAttrs.line.width, {\n dflt: 0.5\n }),\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: \"plot\"\n },\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\", 1),\n hovertemplate: histogram2dAttrs.hovertemplate,\n texttemplate: contourAttrs.texttemplate,\n textfont: contourAttrs.textfont\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/contour/contours_defaults.js\n var require_contours_defaults = __commonJS({\n \"src/traces/contour/contours_defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function handleContourDefaults(traceIn, traceOut, coerce, coerce2) {\n var contourStart = coerce2(\"contours.start\");\n var contourEnd = coerce2(\"contours.end\");\n var missingEnd = contourStart === false || contourEnd === false;\n var contourSize = coerce(\"contours.size\");\n var autoContour;\n if (missingEnd) autoContour = traceOut.autocontour = true;\n else autoContour = coerce(\"autocontour\", false);\n if (autoContour || !contourSize) coerce(\"ncontours\");\n };\n }\n });\n\n // src/traces/contour/label_defaults.js\n var require_label_defaults2 = __commonJS({\n \"src/traces/contour/label_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {\n if (!opts) opts = {};\n var showLabels = coerce(\"contours.showlabels\");\n if (showLabels) {\n var globalFont = layout.font;\n Lib.coerceFont(coerce, \"contours.labelfont\", globalFont, { overrideDflt: {\n color: lineColor\n } });\n coerce(\"contours.labelformat\");\n }\n if (opts.hasHover !== false) coerce(\"zhoverformat\");\n };\n }\n });\n\n // src/traces/contour/style_defaults.js\n var require_style_defaults3 = __commonJS({\n \"src/traces/contour/style_defaults.js\"(exports, module) {\n \"use strict\";\n var colorscaleDefaults = require_defaults2();\n var handleLabelDefaults = require_label_defaults2();\n module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout, opts) {\n var coloring = coerce(\"contours.coloring\");\n var showLines;\n var lineColor = \"\";\n if (coloring === \"fill\") showLines = coerce(\"contours.showlines\");\n if (showLines !== false) {\n if (coloring !== \"lines\") lineColor = coerce(\"line.color\", \"#000\");\n coerce(\"line.width\", 0.5);\n coerce(\"line.dash\");\n }\n if (coloring !== \"none\") {\n if (traceIn.showlegend !== true) traceOut.showlegend = false;\n traceOut._dfltShowLegend = false;\n colorscaleDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n { prefix: \"\", cLetter: \"z\" }\n );\n }\n coerce(\"line.smoothing\");\n handleLabelDefaults(coerce, layout, lineColor, opts);\n };\n }\n });\n\n // src/traces/histogram2dcontour/defaults.js\n var require_defaults24 = __commonJS({\n \"src/traces/histogram2dcontour/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSampleDefaults = require_sample_defaults();\n var handleContoursDefaults = require_contours_defaults();\n var handleStyleDefaults = require_style_defaults3();\n var handleHeatmapLabelDefaults = require_label_defaults();\n var attributes = require_attributes29();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if (traceOut.visible === false) return;\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"hovertemplate\");\n if (traceOut.contours && traceOut.contours.coloring === \"heatmap\") {\n handleHeatmapLabelDefaults(coerce, layout);\n }\n };\n }\n });\n\n // src/traces/contour/set_contours.js\n var require_set_contours = __commonJS({\n \"src/traces/contour/set_contours.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var Lib = require_lib();\n module.exports = function setContours(trace, vals) {\n var contours = trace.contours;\n if (trace.autocontour) {\n var zmin = trace.zmin;\n var zmax = trace.zmax;\n if (trace.zauto || zmin === void 0) {\n zmin = Lib.aggNums(Math.min, null, vals);\n }\n if (trace.zauto || zmax === void 0) {\n zmax = Lib.aggNums(Math.max, null, vals);\n }\n var dummyAx = autoContours(zmin, zmax, trace.ncontours);\n contours.size = dummyAx.dtick;\n contours.start = Axes.tickFirst(dummyAx);\n dummyAx.range.reverse();\n contours.end = Axes.tickFirst(dummyAx);\n if (contours.start === zmin) contours.start += contours.size;\n if (contours.end === zmax) contours.end -= contours.size;\n if (contours.start > contours.end) {\n contours.start = contours.end = (contours.start + contours.end) / 2;\n }\n if (!trace._input.contours) trace._input.contours = {};\n Lib.extendFlat(trace._input.contours, {\n start: contours.start,\n end: contours.end,\n size: contours.size\n });\n trace._input.autocontour = true;\n } else if (contours.type !== \"constraint\") {\n var start = contours.start;\n var end = contours.end;\n var inputContours = trace._input.contours;\n if (start > end) {\n contours.start = inputContours.start = end;\n end = contours.end = inputContours.end = start;\n start = contours.start;\n }\n if (!(contours.size > 0)) {\n var sizeOut;\n if (start === end) sizeOut = 1;\n else sizeOut = autoContours(start, end, trace.ncontours).dtick;\n inputContours.size = contours.size = sizeOut;\n }\n }\n };\n function autoContours(start, end, ncontours) {\n var dummyAx = {\n type: \"linear\",\n range: [start, end]\n };\n Axes.autoTicks(\n dummyAx,\n (end - start) / (ncontours || 15)\n );\n return dummyAx;\n }\n }\n });\n\n // src/traces/contour/end_plus.js\n var require_end_plus = __commonJS({\n \"src/traces/contour/end_plus.js\"(exports, module) {\n \"use strict\";\n module.exports = function endPlus(contours) {\n return contours.end + contours.size / 1e6;\n };\n }\n });\n\n // src/traces/contour/calc.js\n var require_calc10 = __commonJS({\n \"src/traces/contour/calc.js\"(exports, module) {\n \"use strict\";\n var Colorscale = require_colorscale();\n var heatmapCalc = require_calc9();\n var setContours = require_set_contours();\n var endPlus = require_end_plus();\n module.exports = function calc(gd, trace) {\n var cd = heatmapCalc(gd, trace);\n var zOut = cd[0].z;\n setContours(trace, zOut);\n var contours = trace.contours;\n var cOpts = Colorscale.extractOpts(trace);\n var cVals;\n if (contours.coloring === \"heatmap\" && cOpts.auto && trace.autocontour === false) {\n var start = contours.start;\n var end = endPlus(contours);\n var cs = contours.size || 1;\n var nc = Math.floor((end - start) / cs) + 1;\n if (!isFinite(cs)) {\n cs = 1;\n nc = 1;\n }\n var min0 = start - cs / 2;\n var max0 = min0 + nc * cs;\n cVals = [min0, max0];\n } else {\n cVals = zOut;\n }\n Colorscale.calc(gd, trace, { vals: cVals, cLetter: \"z\" });\n return cd;\n };\n }\n });\n\n // src/traces/contour/constants.js\n var require_constants16 = __commonJS({\n \"src/traces/contour/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // some constants to help with marching squares algorithm\n // where does the path start for each index?\n BOTTOMSTART: [1, 9, 13, 104, 713],\n TOPSTART: [4, 6, 7, 104, 713],\n LEFTSTART: [8, 12, 14, 208, 1114],\n RIGHTSTART: [2, 3, 11, 208, 1114],\n // which way [dx,dy] do we leave a given index?\n // saddles are already disambiguated\n NEWDELTA: [\n null,\n [-1, 0],\n [0, -1],\n [-1, 0],\n [1, 0],\n null,\n [0, -1],\n [-1, 0],\n [0, 1],\n [0, 1],\n null,\n [0, 1],\n [1, 0],\n [1, 0],\n [0, -1]\n ],\n // for each saddle, the first index here is used\n // for dx||dy<0, the second for dx||dy>0\n CHOOSESADDLE: {\n 104: [4, 1],\n 208: [2, 8],\n 713: [7, 13],\n 1114: [11, 14]\n },\n // after one index has been used for a saddle, which do we\n // substitute to be used up later?\n SADDLEREMAINDER: { 1: 4, 2: 8, 4: 1, 7: 13, 8: 2, 11: 14, 13: 7, 14: 11 },\n // length of a contour, as a multiple of the plot area diagonal, per label\n LABELDISTANCE: 2,\n // number of contour levels after which we start increasing the number of\n // labels we draw. Many contours means they will generally be close\n // together, so it will be harder to follow a long way to find a label\n LABELINCREASE: 10,\n // minimum length of a contour line, as a multiple of the label length,\n // at which we draw *any* labels\n LABELMIN: 3,\n // max number of labels to draw on a single contour path, no matter how long\n LABELMAX: 10,\n // constants for the label position cost function\n LABELOPTIMIZER: {\n // weight given to edge proximity\n EDGECOST: 1,\n // weight given to the angle off horizontal\n ANGLECOST: 1,\n // weight given to distance from already-placed labels\n NEIGHBORCOST: 5,\n // cost multiplier for labels on the same level\n SAMELEVELFACTOR: 10,\n // minimum distance (as a multiple of the label length)\n // for labels on the same level\n SAMELEVELDISTANCE: 5,\n // maximum cost before we won't even place the label\n MAXCOST: 100,\n // number of evenly spaced points to look at in the first\n // iteration of the search\n INITIALSEARCHPOINTS: 10,\n // number of binary search iterations after the initial wide search\n ITERATIONS: 5\n }\n };\n }\n });\n\n // src/traces/contour/make_crossings.js\n var require_make_crossings = __commonJS({\n \"src/traces/contour/make_crossings.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants16();\n module.exports = function makeCrossings(pathinfo) {\n var z = pathinfo[0].z;\n var m = z.length;\n var n = z[0].length;\n var twoWide = m === 2 || n === 2;\n var xi;\n var yi;\n var startIndices;\n var ystartIndices;\n var label;\n var corners;\n var mi;\n var pi;\n var i;\n for (yi = 0; yi < m - 1; yi++) {\n ystartIndices = [];\n if (yi === 0) ystartIndices = ystartIndices.concat(constants.BOTTOMSTART);\n if (yi === m - 2) ystartIndices = ystartIndices.concat(constants.TOPSTART);\n for (xi = 0; xi < n - 1; xi++) {\n startIndices = ystartIndices.slice();\n if (xi === 0) startIndices = startIndices.concat(constants.LEFTSTART);\n if (xi === n - 2) startIndices = startIndices.concat(constants.RIGHTSTART);\n label = xi + \",\" + yi;\n corners = [\n [z[yi][xi], z[yi][xi + 1]],\n [z[yi + 1][xi], z[yi + 1][xi + 1]]\n ];\n for (i = 0; i < pathinfo.length; i++) {\n pi = pathinfo[i];\n mi = getMarchingIndex(pi.level, corners);\n if (!mi) continue;\n pi.crossings[label] = mi;\n if (startIndices.indexOf(mi) !== -1) {\n pi.starts.push([xi, yi]);\n if (twoWide && startIndices.indexOf(\n mi,\n startIndices.indexOf(mi) + 1\n ) !== -1) {\n pi.starts.push([xi, yi]);\n }\n }\n }\n }\n }\n };\n function getMarchingIndex(val, corners) {\n var mi = (corners[0][0] > val ? 0 : 1) + (corners[0][1] > val ? 0 : 2) + (corners[1][1] > val ? 0 : 4) + (corners[1][0] > val ? 0 : 8);\n if (mi === 5 || mi === 10) {\n var avg = (corners[0][0] + corners[0][1] + corners[1][0] + corners[1][1]) / 4;\n if (val > avg) return mi === 5 ? 713 : 1114;\n return mi === 5 ? 104 : 208;\n }\n return mi === 15 ? 0 : mi;\n }\n }\n });\n\n // src/traces/contour/find_all_paths.js\n var require_find_all_paths = __commonJS({\n \"src/traces/contour/find_all_paths.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constants = require_constants16();\n module.exports = function findAllPaths(pathinfo, xtol, ytol) {\n var cnt, startLoc, i, pi, j;\n xtol = xtol || 0.01;\n ytol = ytol || 0.01;\n for (i = 0; i < pathinfo.length; i++) {\n pi = pathinfo[i];\n for (j = 0; j < pi.starts.length; j++) {\n startLoc = pi.starts[j];\n makePath(pi, startLoc, \"edge\", xtol, ytol);\n }\n cnt = 0;\n while (Object.keys(pi.crossings).length && cnt < 1e4) {\n cnt++;\n startLoc = Object.keys(pi.crossings)[0].split(\",\").map(Number);\n makePath(pi, startLoc, void 0, xtol, ytol);\n }\n if (cnt === 1e4) Lib.log(\"Infinite loop in contour?\");\n }\n };\n function equalPts(pt1, pt2, xtol, ytol) {\n return Math.abs(pt1[0] - pt2[0]) < xtol && Math.abs(pt1[1] - pt2[1]) < ytol;\n }\n function ptDist(pt1, pt2) {\n var dx = pt1[2] - pt2[2];\n var dy = pt1[3] - pt2[3];\n return Math.sqrt(dx * dx + dy * dy);\n }\n function makePath(pi, loc, edgeflag, xtol, ytol) {\n var locStr = loc.join(\",\");\n var mi = pi.crossings[locStr];\n var marchStep = getStartStep(mi, edgeflag, loc);\n var pts = [getInterpPx(pi, loc, [-marchStep[0], -marchStep[1]])];\n var m = pi.z.length;\n var n = pi.z[0].length;\n var startLoc = loc.slice();\n var startStep = marchStep.slice();\n var cnt;\n for (cnt = 0; cnt < 1e4; cnt++) {\n if (mi > 20) {\n mi = constants.CHOOSESADDLE[mi][(marchStep[0] || marchStep[1]) < 0 ? 0 : 1];\n pi.crossings[locStr] = constants.SADDLEREMAINDER[mi];\n } else {\n delete pi.crossings[locStr];\n }\n marchStep = constants.NEWDELTA[mi];\n if (!marchStep) {\n Lib.log(\"Found bad marching index:\", mi, loc, pi.level);\n break;\n }\n pts.push(getInterpPx(pi, loc, marchStep));\n loc[0] += marchStep[0];\n loc[1] += marchStep[1];\n locStr = loc.join(\",\");\n if (equalPts(pts[pts.length - 1], pts[pts.length - 2], xtol, ytol)) pts.pop();\n var atEdge = marchStep[0] && (loc[0] < 0 || loc[0] > n - 2) || marchStep[1] && (loc[1] < 0 || loc[1] > m - 2);\n var closedLoop = loc[0] === startLoc[0] && loc[1] === startLoc[1] && marchStep[0] === startStep[0] && marchStep[1] === startStep[1];\n if (closedLoop || edgeflag && atEdge) break;\n mi = pi.crossings[locStr];\n }\n if (cnt === 1e4) {\n Lib.log(\"Infinite loop in contour?\");\n }\n var closedpath = equalPts(pts[0], pts[pts.length - 1], xtol, ytol);\n var totaldist = 0;\n var distThresholdFactor = 0.2 * pi.smoothing;\n var alldists = [];\n var cropstart = 0;\n var distgroup, cnt2, cnt3, newpt, ptcnt, ptavg, thisdist, i, j, edgepathi, edgepathj;\n for (cnt = 1; cnt < pts.length; cnt++) {\n thisdist = ptDist(pts[cnt], pts[cnt - 1]);\n totaldist += thisdist;\n alldists.push(thisdist);\n }\n var distThreshold = totaldist / alldists.length * distThresholdFactor;\n function getpt(i2) {\n return pts[i2 % pts.length];\n }\n for (cnt = pts.length - 2; cnt >= cropstart; cnt--) {\n distgroup = alldists[cnt];\n if (distgroup < distThreshold) {\n cnt3 = 0;\n for (cnt2 = cnt - 1; cnt2 >= cropstart; cnt2--) {\n if (distgroup + alldists[cnt2] < distThreshold) {\n distgroup += alldists[cnt2];\n } else break;\n }\n if (closedpath && cnt === pts.length - 2) {\n for (cnt3 = 0; cnt3 < cnt2; cnt3++) {\n if (distgroup + alldists[cnt3] < distThreshold) {\n distgroup += alldists[cnt3];\n } else break;\n }\n }\n ptcnt = cnt - cnt2 + cnt3 + 1;\n ptavg = Math.floor((cnt + cnt2 + cnt3 + 2) / 2);\n if (!closedpath && cnt === pts.length - 2) newpt = pts[pts.length - 1];\n else if (!closedpath && cnt2 === -1) newpt = pts[0];\n else if (ptcnt % 2) newpt = getpt(ptavg);\n else {\n newpt = [\n (getpt(ptavg)[0] + getpt(ptavg + 1)[0]) / 2,\n (getpt(ptavg)[1] + getpt(ptavg + 1)[1]) / 2\n ];\n }\n pts.splice(cnt2 + 1, cnt - cnt2 + 1, newpt);\n cnt = cnt2 + 1;\n if (cnt3) cropstart = cnt3;\n if (closedpath) {\n if (cnt === pts.length - 2) pts[cnt3] = pts[pts.length - 1];\n else if (cnt === 0) pts[pts.length - 1] = pts[0];\n }\n }\n }\n pts.splice(0, cropstart);\n for (cnt = 0; cnt < pts.length; cnt++) pts[cnt].length = 2;\n if (pts.length < 2) return;\n else if (closedpath) {\n pts.pop();\n pi.paths.push(pts);\n } else {\n if (!edgeflag) {\n Lib.log(\n \"Unclosed interior contour?\",\n pi.level,\n startLoc.join(\",\"),\n pts.join(\"L\")\n );\n }\n var merged = false;\n for (i = 0; i < pi.edgepaths.length; i++) {\n edgepathi = pi.edgepaths[i];\n if (!merged && equalPts(edgepathi[0], pts[pts.length - 1], xtol, ytol)) {\n pts.pop();\n merged = true;\n var doublemerged = false;\n for (j = 0; j < pi.edgepaths.length; j++) {\n edgepathj = pi.edgepaths[j];\n if (equalPts(edgepathj[edgepathj.length - 1], pts[0], xtol, ytol)) {\n doublemerged = true;\n pts.shift();\n pi.edgepaths.splice(i, 1);\n if (j === i) {\n pi.paths.push(pts.concat(edgepathj));\n } else {\n if (j > i) j--;\n pi.edgepaths[j] = edgepathj.concat(pts, edgepathi);\n }\n break;\n }\n }\n if (!doublemerged) {\n pi.edgepaths[i] = pts.concat(edgepathi);\n }\n }\n }\n for (i = 0; i < pi.edgepaths.length; i++) {\n if (merged) break;\n edgepathi = pi.edgepaths[i];\n if (equalPts(edgepathi[edgepathi.length - 1], pts[0], xtol, ytol)) {\n pts.shift();\n pi.edgepaths[i] = edgepathi.concat(pts);\n merged = true;\n }\n }\n if (!merged) pi.edgepaths.push(pts);\n }\n }\n function getStartStep(mi, edgeflag, loc) {\n var dx = 0;\n var dy = 0;\n if (mi > 20 && edgeflag) {\n if (mi === 208 || mi === 1114) {\n dx = loc[0] === 0 ? 1 : -1;\n } else {\n dy = loc[1] === 0 ? 1 : -1;\n }\n } else if (constants.BOTTOMSTART.indexOf(mi) !== -1) dy = 1;\n else if (constants.LEFTSTART.indexOf(mi) !== -1) dx = 1;\n else if (constants.TOPSTART.indexOf(mi) !== -1) dy = -1;\n else dx = -1;\n return [dx, dy];\n }\n function getInterpPx(pi, loc, step) {\n var locx = loc[0] + Math.max(step[0], 0);\n var locy = loc[1] + Math.max(step[1], 0);\n var zxy = pi.z[locy][locx];\n var xa = pi.xaxis;\n var ya = pi.yaxis;\n if (step[1]) {\n var dx = (pi.level - zxy) / (pi.z[locy][locx + 1] - zxy);\n var dxl = (dx !== 1 ? (1 - dx) * xa.c2l(pi.x[locx]) : 0) + (dx !== 0 ? dx * xa.c2l(pi.x[locx + 1]) : 0);\n return [\n xa.c2p(xa.l2c(dxl), true),\n ya.c2p(pi.y[locy], true),\n locx + dx,\n locy\n ];\n } else {\n var dy = (pi.level - zxy) / (pi.z[locy + 1][locx] - zxy);\n var dyl = (dy !== 1 ? (1 - dy) * ya.c2l(pi.y[locy]) : 0) + (dy !== 0 ? dy * ya.c2l(pi.y[locy + 1]) : 0);\n return [\n xa.c2p(pi.x[locx], true),\n ya.c2p(ya.l2c(dyl), true),\n locx,\n locy + dy\n ];\n }\n }\n }\n });\n\n // src/traces/contour/constraint_mapping.js\n var require_constraint_mapping = __commonJS({\n \"src/traces/contour/constraint_mapping.js\"(exports, module) {\n \"use strict\";\n var filterOps = require_filter_ops();\n var isNumeric = require_fast_isnumeric();\n module.exports = {\n \"[]\": makeRangeSettings(\"[]\"),\n \"][\": makeRangeSettings(\"][\"),\n \">\": makeInequalitySettings(\">\"),\n \"<\": makeInequalitySettings(\"<\"),\n \"=\": makeInequalitySettings(\"=\")\n };\n function coerceValue(operation, value) {\n var hasArrayValue = Array.isArray(value);\n var coercedValue;\n function coerce(value2) {\n return isNumeric(value2) ? +value2 : null;\n }\n if (filterOps.COMPARISON_OPS2.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? coerce(value[0]) : coerce(value);\n } else if (filterOps.INTERVAL_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? [coerce(value[0]), coerce(value[1])] : [coerce(value), coerce(value)];\n } else if (filterOps.SET_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? value.map(coerce) : [coerce(value)];\n }\n return coercedValue;\n }\n function makeRangeSettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n var min = Math.min(value[0], value[1]);\n var max = Math.max(value[0], value[1]);\n return {\n start: min,\n end: max,\n size: max - min\n };\n };\n }\n function makeInequalitySettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n return {\n start: value,\n end: Infinity,\n size: Infinity\n };\n };\n }\n }\n });\n\n // src/traces/contour/empty_pathinfo.js\n var require_empty_pathinfo = __commonJS({\n \"src/traces/contour/empty_pathinfo.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constraintMapping = require_constraint_mapping();\n var endPlus = require_end_plus();\n module.exports = function emptyPathinfo(contours, plotinfo, cd0) {\n var contoursFinal = contours.type === \"constraint\" ? constraintMapping[contours._operation](contours.value) : contours;\n var cs = contoursFinal.size;\n var pathinfo = [];\n var end = endPlus(contoursFinal);\n var carpet = cd0.trace._carpetTrace;\n var basePathinfo = carpet ? {\n // store axes so we can convert to px\n xaxis: carpet.aaxis,\n yaxis: carpet.baxis,\n // full data arrays to use for interpolation\n x: cd0.a,\n y: cd0.b\n } : {\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y\n };\n for (var ci = contoursFinal.start; ci < end; ci += cs) {\n pathinfo.push(Lib.extendFlat({\n level: ci,\n // all the cells with nontrivial marching index\n crossings: {},\n // starting points on the edges of the lattice for each contour\n starts: [],\n // all unclosed paths (may have less items than starts,\n // if a path is closed by rounding)\n edgepaths: [],\n // all closed paths\n paths: [],\n z: cd0.z,\n smoothing: cd0.trace.line.smoothing\n }, basePathinfo));\n if (pathinfo.length > 1e3) {\n Lib.warn(\"Too many contours, clipping at 1000\", contours);\n break;\n }\n }\n return pathinfo;\n };\n }\n });\n\n // src/traces/contour/convert_to_constraints.js\n var require_convert_to_constraints = __commonJS({\n \"src/traces/contour/convert_to_constraints.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function(pathinfo, operation) {\n var i, pi0, pi1;\n var op0 = function(arr) {\n return arr.reverse();\n };\n var op1 = function(arr) {\n return arr;\n };\n switch (operation) {\n case \"=\":\n case \"<\":\n return pathinfo;\n case \">\":\n if (pathinfo.length !== 1) {\n Lib.warn(\"Contour data invalid for the specified inequality operation.\");\n }\n pi0 = pathinfo[0];\n for (i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for (i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for (i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n return pathinfo;\n case \"][\":\n var tmp = op0;\n op0 = op1;\n op1 = tmp;\n // It's a nice rule, except this definitely *is* what's intended here.\n /* eslint-disable: no-fallthrough */\n case \"[]\":\n if (pathinfo.length !== 2) {\n Lib.warn(\"Contour data invalid for the specified inequality range operation.\");\n }\n pi0 = copyPathinfo(pathinfo[0]);\n pi1 = copyPathinfo(pathinfo[1]);\n for (i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for (i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for (i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n while (pi1.edgepaths.length) {\n pi0.edgepaths.push(op1(pi1.edgepaths.shift()));\n }\n while (pi1.paths.length) {\n pi0.paths.push(op1(pi1.paths.shift()));\n }\n while (pi1.starts.length) {\n pi0.starts.push(op1(pi1.starts.shift()));\n }\n return [pi0];\n }\n };\n function copyPathinfo(pi) {\n return Lib.extendFlat({}, pi, {\n edgepaths: Lib.extendDeep([], pi.edgepaths),\n paths: Lib.extendDeep([], pi.paths),\n starts: Lib.extendDeep([], pi.starts)\n });\n }\n }\n });\n\n // src/traces/contour/close_boundaries.js\n var require_close_boundaries = __commonJS({\n \"src/traces/contour/close_boundaries.js\"(exports, module) {\n \"use strict\";\n module.exports = function(pathinfo, contours) {\n var pi0 = pathinfo[0];\n var z = pi0.z;\n var i;\n switch (contours.type) {\n case \"levels\":\n var edgeVal2 = Math.min(z[0][0], z[0][1]);\n for (i = 0; i < pathinfo.length; i++) {\n var pi = pathinfo[i];\n pi.prefixBoundary = !pi.edgepaths.length && (edgeVal2 > pi.level || pi.starts.length && edgeVal2 === pi.level);\n }\n break;\n case \"constraint\":\n pi0.prefixBoundary = false;\n if (pi0.edgepaths.length) return;\n var na = pi0.x.length;\n var nb = pi0.y.length;\n var boundaryMax = -Infinity;\n var boundaryMin = Infinity;\n for (i = 0; i < nb; i++) {\n boundaryMin = Math.min(boundaryMin, z[i][0]);\n boundaryMin = Math.min(boundaryMin, z[i][na - 1]);\n boundaryMax = Math.max(boundaryMax, z[i][0]);\n boundaryMax = Math.max(boundaryMax, z[i][na - 1]);\n }\n for (i = 1; i < na - 1; i++) {\n boundaryMin = Math.min(boundaryMin, z[0][i]);\n boundaryMin = Math.min(boundaryMin, z[nb - 1][i]);\n boundaryMax = Math.max(boundaryMax, z[0][i]);\n boundaryMax = Math.max(boundaryMax, z[nb - 1][i]);\n }\n var contoursValue = contours.value;\n var v1, v2;\n switch (contours._operation) {\n case \">\":\n if (contoursValue > boundaryMax) {\n pi0.prefixBoundary = true;\n }\n break;\n case \"<\":\n if (contoursValue < boundaryMin || pi0.starts.length && contoursValue === boundaryMin) {\n pi0.prefixBoundary = true;\n }\n break;\n case \"[]\":\n v1 = Math.min(contoursValue[0], contoursValue[1]);\n v2 = Math.max(contoursValue[0], contoursValue[1]);\n if (v2 < boundaryMin || v1 > boundaryMax || pi0.starts.length && v2 === boundaryMin) {\n pi0.prefixBoundary = true;\n }\n break;\n case \"][\":\n v1 = Math.min(contoursValue[0], contoursValue[1]);\n v2 = Math.max(contoursValue[0], contoursValue[1]);\n if (v1 < boundaryMin && v2 > boundaryMax) {\n pi0.prefixBoundary = true;\n }\n break;\n }\n break;\n }\n };\n }\n });\n\n // src/traces/contour/plot.js\n var require_plot6 = __commonJS({\n \"src/traces/contour/plot.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var Colorscale = require_colorscale();\n var svgTextUtils = require_svg_text_utils();\n var Axes = require_axes();\n var setConvert = require_set_convert();\n var heatmapPlot = require_plot5();\n var makeCrossings = require_make_crossings();\n var findAllPaths = require_find_all_paths();\n var emptyPathinfo = require_empty_pathinfo();\n var convertToConstraints = require_convert_to_constraints();\n var closeBoundaries = require_close_boundaries();\n var constants = require_constants16();\n var costConstants = constants.LABELOPTIMIZER;\n exports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(contourLayer, cdcontours, \"contour\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var x = cd0.x;\n var y = cd0.y;\n var contours = trace.contours;\n var pathinfo = emptyPathinfo(contours, plotinfo, cd0);\n var heatmapColoringLayer = Lib.ensureSingle(plotGroup, \"g\", \"heatmapcoloring\");\n var cdheatmaps = [];\n if (contours.coloring === \"heatmap\") {\n cdheatmaps = [cd];\n }\n heatmapPlot(gd, plotinfo, cdheatmaps, heatmapColoringLayer);\n makeCrossings(pathinfo);\n findAllPaths(pathinfo);\n var leftedge = xa.c2p(x[0], true);\n var rightedge = xa.c2p(x[x.length - 1], true);\n var bottomedge = ya.c2p(y[0], true);\n var topedge = ya.c2p(y[y.length - 1], true);\n var perimeter = [\n [leftedge, topedge],\n [rightedge, topedge],\n [rightedge, bottomedge],\n [leftedge, bottomedge]\n ];\n var fillPathinfo = pathinfo;\n if (contours.type === \"constraint\") {\n fillPathinfo = convertToConstraints(pathinfo, contours._operation);\n }\n makeBackground(plotGroup, perimeter, contours);\n makeFills(plotGroup, fillPathinfo, perimeter, contours);\n makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours);\n clipGaps(plotGroup, plotinfo, gd, cd0, perimeter);\n });\n };\n function makeBackground(plotgroup, perimeter, contours) {\n var bggroup = Lib.ensureSingle(plotgroup, \"g\", \"contourbg\");\n var bgfill = bggroup.selectAll(\"path\").data(contours.coloring === \"fill\" ? [0] : []);\n bgfill.enter().append(\"path\");\n bgfill.exit().remove();\n bgfill.attr(\"d\", \"M\" + perimeter.join(\"L\") + \"Z\").style(\"stroke\", \"none\");\n }\n function makeFills(plotgroup, pathinfo, perimeter, contours) {\n var hasFills = contours.coloring === \"fill\" || contours.type === \"constraint\" && contours._operation !== \"=\";\n var boundaryPath = \"M\" + perimeter.join(\"L\") + \"Z\";\n if (hasFills) {\n closeBoundaries(pathinfo, contours);\n }\n var fillgroup = Lib.ensureSingle(plotgroup, \"g\", \"contourfill\");\n var fillitems = fillgroup.selectAll(\"path\").data(hasFills ? pathinfo : []);\n fillitems.enter().append(\"path\");\n fillitems.exit().remove();\n fillitems.each(function(pi) {\n var fullpath = (pi.prefixBoundary ? boundaryPath : \"\") + joinAllPaths(pi, perimeter);\n if (!fullpath) {\n d3.select(this).remove();\n } else {\n d3.select(this).attr(\"d\", fullpath).style(\"stroke\", \"none\");\n }\n });\n }\n function joinAllPaths(pi, perimeter) {\n var fullpath = \"\";\n var i = 0;\n var startsleft = pi.edgepaths.map(function(v, i2) {\n return i2;\n });\n var newloop = true;\n var endpt;\n var newendpt;\n var cnt;\n var nexti;\n var possiblei;\n var addpath;\n function istop(pt) {\n return Math.abs(pt[1] - perimeter[0][1]) < 0.01;\n }\n function isbottom(pt) {\n return Math.abs(pt[1] - perimeter[2][1]) < 0.01;\n }\n function isleft(pt) {\n return Math.abs(pt[0] - perimeter[0][0]) < 0.01;\n }\n function isright(pt) {\n return Math.abs(pt[0] - perimeter[2][0]) < 0.01;\n }\n while (startsleft.length) {\n addpath = Drawing.smoothopen(pi.edgepaths[i], pi.smoothing);\n fullpath += newloop ? addpath : addpath.replace(/^M/, \"L\");\n startsleft.splice(startsleft.indexOf(i), 1);\n endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1];\n nexti = -1;\n for (cnt = 0; cnt < 4; cnt++) {\n if (!endpt) {\n Lib.log(\"Missing end?\", i, pi);\n break;\n }\n if (istop(endpt) && !isright(endpt)) newendpt = perimeter[1];\n else if (isleft(endpt)) newendpt = perimeter[0];\n else if (isbottom(endpt)) newendpt = perimeter[3];\n else if (isright(endpt)) newendpt = perimeter[2];\n for (possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) {\n var ptNew = pi.edgepaths[possiblei][0];\n if (Math.abs(endpt[0] - newendpt[0]) < 0.01) {\n if (Math.abs(endpt[0] - ptNew[0]) < 0.01 && (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else if (Math.abs(endpt[1] - newendpt[1]) < 0.01) {\n if (Math.abs(endpt[1] - ptNew[1]) < 0.01 && (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else {\n Lib.log(\n \"endpt to newendpt is not vert. or horz.\",\n endpt,\n newendpt,\n ptNew\n );\n }\n }\n endpt = newendpt;\n if (nexti >= 0) break;\n fullpath += \"L\" + newendpt;\n }\n if (nexti === pi.edgepaths.length) {\n Lib.log(\"unclosed perimeter path\");\n break;\n }\n i = nexti;\n newloop = startsleft.indexOf(i) === -1;\n if (newloop) {\n i = startsleft[0];\n fullpath += \"Z\";\n }\n }\n for (i = 0; i < pi.paths.length; i++) {\n fullpath += Drawing.smoothclosed(pi.paths[i], pi.smoothing);\n }\n return fullpath;\n }\n function makeLinesAndLabels(plotgroup, pathinfo, gd, cd0, contours) {\n var isStatic = gd._context.staticPlot;\n var lineContainer = Lib.ensureSingle(plotgroup, \"g\", \"contourlines\");\n var showLines = contours.showlines !== false;\n var showLabels = contours.showlabels;\n var clipLinesForLabels = showLines && showLabels;\n var linegroup = exports.createLines(lineContainer, showLines || showLabels, pathinfo, isStatic);\n var lineClip = exports.createLineClip(lineContainer, clipLinesForLabels, gd, cd0.trace.uid);\n var labelGroup = plotgroup.selectAll(\"g.contourlabels\").data(showLabels ? [0] : []);\n labelGroup.exit().remove();\n labelGroup.enter().append(\"g\").classed(\"contourlabels\", true);\n if (showLabels) {\n var labelClipPathData = [];\n var labelData = [];\n Lib.clearLocationCache();\n var contourFormat = exports.labelFormatter(gd, cd0);\n var dummyText = Drawing.tester.append(\"text\").attr(\"data-notex\", 1).call(Drawing.font, contours.labelfont);\n var xa = pathinfo[0].xaxis;\n var ya = pathinfo[0].yaxis;\n var xLen = xa._length;\n var yLen = ya._length;\n var xRng = xa.range;\n var yRng = ya.range;\n var xMin = Lib.aggNums(Math.min, null, cd0.x);\n var xMax = Lib.aggNums(Math.max, null, cd0.x);\n var yMin = Lib.aggNums(Math.min, null, cd0.y);\n var yMax = Lib.aggNums(Math.max, null, cd0.y);\n var x0 = Math.max(xa.c2p(xMin, true), 0);\n var x1 = Math.min(xa.c2p(xMax, true), xLen);\n var y0 = Math.max(ya.c2p(yMax, true), 0);\n var y1 = Math.min(ya.c2p(yMin, true), yLen);\n var bounds = {};\n if (xRng[0] < xRng[1]) {\n bounds.left = x0;\n bounds.right = x1;\n } else {\n bounds.left = x1;\n bounds.right = x0;\n }\n if (yRng[0] < yRng[1]) {\n bounds.top = y0;\n bounds.bottom = y1;\n } else {\n bounds.top = y1;\n bounds.bottom = y0;\n }\n bounds.middle = (bounds.top + bounds.bottom) / 2;\n bounds.center = (bounds.left + bounds.right) / 2;\n labelClipPathData.push([\n [bounds.left, bounds.top],\n [bounds.right, bounds.top],\n [bounds.right, bounds.bottom],\n [bounds.left, bounds.bottom]\n ]);\n var plotDiagonal = Math.sqrt(xLen * xLen + yLen * yLen);\n var normLength = constants.LABELDISTANCE * plotDiagonal / Math.max(1, pathinfo.length / constants.LABELINCREASE);\n linegroup.each(function(d) {\n var textOpts = exports.calcTextOpts(d.level, contourFormat, dummyText, gd);\n d3.select(this).selectAll(\"path\").each(function() {\n var path = this;\n var pathBounds = Lib.getVisibleSegment(path, bounds, textOpts.height / 2);\n if (!pathBounds) return;\n if (pathBounds.len < (textOpts.width + textOpts.height) * constants.LABELMIN) return;\n var maxLabels = Math.min(\n Math.ceil(pathBounds.len / normLength),\n constants.LABELMAX\n );\n for (var i = 0; i < maxLabels; i++) {\n var loc = exports.findBestTextLocation(\n path,\n pathBounds,\n textOpts,\n labelData,\n bounds\n );\n if (!loc) break;\n exports.addLabelData(loc, textOpts, labelData, labelClipPathData);\n }\n });\n });\n dummyText.remove();\n exports.drawLabels(\n labelGroup,\n labelData,\n gd,\n lineClip,\n clipLinesForLabels ? labelClipPathData : null\n );\n }\n if (showLabels && !showLines) linegroup.remove();\n }\n exports.createLines = function(lineContainer, makeLines, pathinfo, isStatic) {\n var smoothing = pathinfo[0].smoothing;\n var linegroup = lineContainer.selectAll(\"g.contourlevel\").data(makeLines ? pathinfo : []);\n linegroup.exit().remove();\n linegroup.enter().append(\"g\").classed(\"contourlevel\", true);\n if (makeLines) {\n var opencontourlines = linegroup.selectAll(\"path.openline\").data(function(d) {\n return d.pedgepaths || d.edgepaths;\n });\n opencontourlines.exit().remove();\n opencontourlines.enter().append(\"path\").classed(\"openline\", true);\n opencontourlines.attr(\"d\", function(d) {\n return Drawing.smoothopen(d, smoothing);\n }).style(\"stroke-miterlimit\", 1).style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\");\n var closedcontourlines = linegroup.selectAll(\"path.closedline\").data(function(d) {\n return d.ppaths || d.paths;\n });\n closedcontourlines.exit().remove();\n closedcontourlines.enter().append(\"path\").classed(\"closedline\", true);\n closedcontourlines.attr(\"d\", function(d) {\n return Drawing.smoothclosed(d, smoothing);\n }).style(\"stroke-miterlimit\", 1).style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\");\n }\n return linegroup;\n };\n exports.createLineClip = function(lineContainer, clipLinesForLabels, gd, uid) {\n var clips = gd._fullLayout._clips;\n var clipId = clipLinesForLabels ? \"clipline\" + uid : null;\n var lineClip = clips.selectAll(\"#\" + clipId).data(clipLinesForLabels ? [0] : []);\n lineClip.exit().remove();\n lineClip.enter().append(\"clipPath\").classed(\"contourlineclip\", true).attr(\"id\", clipId);\n Drawing.setClipUrl(lineContainer, clipId, gd);\n return lineClip;\n };\n exports.labelFormatter = function(gd, cd0) {\n var fullLayout = gd._fullLayout;\n var trace = cd0.trace;\n var contours = trace.contours;\n var formatAxis = {\n type: \"linear\",\n _id: \"ycontour\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n if (contours.labelformat) {\n formatAxis.tickformat = contours.labelformat;\n setConvert(formatAxis, fullLayout);\n } else {\n var cOpts = Colorscale.extractOpts(trace);\n if (cOpts && cOpts.colorbar && cOpts.colorbar._axis) {\n formatAxis = cOpts.colorbar._axis;\n } else {\n if (contours.type === \"constraint\") {\n var value = contours.value;\n if (Lib.isArrayOrTypedArray(value)) {\n formatAxis.range = [value[0], value[value.length - 1]];\n } else formatAxis.range = [value, value];\n } else {\n formatAxis.range = [contours.start, contours.end];\n formatAxis.nticks = (contours.end - contours.start) / contours.size;\n }\n if (formatAxis.range[0] === formatAxis.range[1]) {\n formatAxis.range[1] += formatAxis.range[0] || 1;\n }\n if (!formatAxis.nticks) formatAxis.nticks = 1e3;\n setConvert(formatAxis, fullLayout);\n Axes.prepTicks(formatAxis);\n formatAxis._tmin = null;\n formatAxis._tmax = null;\n }\n }\n return function(v) {\n return Axes.tickText(formatAxis, v).text;\n };\n };\n exports.calcTextOpts = function(level, contourFormat, dummyText, gd) {\n var text = contourFormat(level);\n dummyText.text(text).call(svgTextUtils.convertToTspans, gd);\n var el = dummyText.node();\n var bBox = Drawing.bBox(el, true);\n return {\n text,\n width: bBox.width,\n height: bBox.height,\n fontSize: +el.style[\"font-size\"].replace(\"px\", \"\"),\n level,\n dy: (bBox.top + bBox.bottom) / 2\n };\n };\n exports.findBestTextLocation = function(path, pathBounds, textOpts, labelData, plotBounds) {\n var textWidth = textOpts.width;\n var p0, dp, pMax, pMin, loc;\n if (pathBounds.isClosed) {\n dp = pathBounds.len / costConstants.INITIALSEARCHPOINTS;\n p0 = pathBounds.min + dp / 2;\n pMax = pathBounds.max;\n } else {\n dp = (pathBounds.len - textWidth) / (costConstants.INITIALSEARCHPOINTS + 1);\n p0 = pathBounds.min + dp + textWidth / 2;\n pMax = pathBounds.max - (dp + textWidth) / 2;\n }\n var cost = Infinity;\n for (var j = 0; j < costConstants.ITERATIONS; j++) {\n for (var p = p0; p < pMax; p += dp) {\n var newLocation = Lib.getTextLocation(path, pathBounds.total, p, textWidth);\n var newCost = locationCost(newLocation, textOpts, labelData, plotBounds);\n if (newCost < cost) {\n cost = newCost;\n loc = newLocation;\n pMin = p;\n }\n }\n if (cost > costConstants.MAXCOST * 2) break;\n if (j) dp /= 2;\n p0 = pMin - dp / 2;\n pMax = p0 + dp * 1.5;\n }\n if (cost <= costConstants.MAXCOST) return loc;\n };\n function locationCost(loc, textOpts, labelData, bounds) {\n var halfWidth = textOpts.width / 2;\n var halfHeight = textOpts.height / 2;\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n var dx = Math.cos(theta) * halfWidth;\n var dy = Math.sin(theta) * halfWidth;\n var normX = (x > bounds.center ? bounds.right - x : x - bounds.left) / (dx + Math.abs(Math.sin(theta) * halfHeight));\n var normY = (y > bounds.middle ? bounds.bottom - y : y - bounds.top) / (Math.abs(dy) + Math.cos(theta) * halfHeight);\n if (normX < 1 || normY < 1) return Infinity;\n var cost = costConstants.EDGECOST * (1 / (normX - 1) + 1 / (normY - 1));\n cost += costConstants.ANGLECOST * theta * theta;\n var x1 = x - dx;\n var y1 = y - dy;\n var x2 = x + dx;\n var y2 = y + dy;\n for (var i = 0; i < labelData.length; i++) {\n var labeli = labelData[i];\n var dxd = Math.cos(labeli.theta) * labeli.width / 2;\n var dyd = Math.sin(labeli.theta) * labeli.width / 2;\n var dist = Lib.segmentDistance(\n x1,\n y1,\n x2,\n y2,\n labeli.x - dxd,\n labeli.y - dyd,\n labeli.x + dxd,\n labeli.y + dyd\n ) * 2 / (textOpts.height + labeli.height);\n var sameLevel = labeli.level === textOpts.level;\n var distOffset = sameLevel ? costConstants.SAMELEVELDISTANCE : 1;\n if (dist <= distOffset) return Infinity;\n var distFactor = costConstants.NEIGHBORCOST * (sameLevel ? costConstants.SAMELEVELFACTOR : 1);\n cost += distFactor / (dist - distOffset);\n }\n return cost;\n }\n exports.addLabelData = function(loc, textOpts, labelData, labelClipPathData) {\n var fontSize = textOpts.fontSize;\n var w = textOpts.width + fontSize / 3;\n var h = Math.max(0, textOpts.height - fontSize / 3);\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n var sin = Math.sin(theta);\n var cos = Math.cos(theta);\n var rotateXY = function(dx, dy) {\n return [\n x + dx * cos - dy * sin,\n y + dx * sin + dy * cos\n ];\n };\n var bBoxPts = [\n rotateXY(-w / 2, -h / 2),\n rotateXY(-w / 2, h / 2),\n rotateXY(w / 2, h / 2),\n rotateXY(w / 2, -h / 2)\n ];\n labelData.push({\n text: textOpts.text,\n x,\n y,\n dy: textOpts.dy,\n theta,\n level: textOpts.level,\n width: w,\n height: h\n });\n labelClipPathData.push(bBoxPts);\n };\n exports.drawLabels = function(labelGroup, labelData, gd, lineClip, labelClipPathData) {\n var labels = labelGroup.selectAll(\"text\").data(labelData, function(d) {\n return d.text + \",\" + d.x + \",\" + d.y + \",\" + d.theta;\n });\n labels.exit().remove();\n labels.enter().append(\"text\").attr({\n \"data-notex\": 1,\n \"text-anchor\": \"middle\"\n }).each(function(d) {\n var x = d.x + Math.sin(d.theta) * d.dy;\n var y = d.y - Math.cos(d.theta) * d.dy;\n d3.select(this).text(d.text).attr({\n x,\n y,\n transform: \"rotate(\" + 180 * d.theta / Math.PI + \" \" + x + \" \" + y + \")\"\n }).call(svgTextUtils.convertToTspans, gd);\n });\n if (labelClipPathData) {\n var clipPath = \"\";\n for (var i = 0; i < labelClipPathData.length; i++) {\n clipPath += \"M\" + labelClipPathData[i].join(\"L\") + \"Z\";\n }\n var lineClipPath = Lib.ensureSingle(lineClip, \"path\", \"\");\n lineClipPath.attr(\"d\", clipPath);\n }\n };\n function clipGaps(plotGroup, plotinfo, gd, cd0, perimeter) {\n var trace = cd0.trace;\n var clips = gd._fullLayout._clips;\n var clipId = \"clip\" + trace.uid;\n var clipPath = clips.selectAll(\"#\" + clipId).data(trace.connectgaps ? [] : [0]);\n clipPath.enter().append(\"clipPath\").classed(\"contourclip\", true).attr(\"id\", clipId);\n clipPath.exit().remove();\n if (trace.connectgaps === false) {\n var clipPathInfo = {\n // fraction of the way from missing to present point\n // to draw the boundary.\n // if you make this 1 (or 1-epsilon) then a point in\n // a sea of missing data will disappear entirely.\n level: 0.9,\n crossings: {},\n starts: [],\n edgepaths: [],\n paths: [],\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y,\n // 0 = no data, 1 = data\n z: makeClipMask(cd0),\n smoothing: 0\n };\n makeCrossings([clipPathInfo]);\n findAllPaths([clipPathInfo]);\n closeBoundaries([clipPathInfo], { type: \"levels\" });\n var path = Lib.ensureSingle(clipPath, \"path\", \"\");\n path.attr(\n \"d\",\n (clipPathInfo.prefixBoundary ? \"M\" + perimeter.join(\"L\") + \"Z\" : \"\") + joinAllPaths(clipPathInfo, perimeter)\n );\n } else clipId = null;\n Drawing.setClipUrl(plotGroup, clipId, gd);\n }\n function makeClipMask(cd0) {\n var empties = cd0.trace._emptypoints;\n var z = [];\n var m = cd0.z.length;\n var n = cd0.z[0].length;\n var i;\n var row = [];\n var emptyPoint;\n for (i = 0; i < n; i++) row.push(1);\n for (i = 0; i < m; i++) z.push(row.slice());\n for (i = 0; i < empties.length; i++) {\n emptyPoint = empties[i];\n z[emptyPoint[0]][emptyPoint[1]] = 0;\n }\n cd0.zmask = z;\n return z;\n }\n }\n });\n\n // src/traces/contour/make_color_map.js\n var require_make_color_map = __commonJS({\n \"src/traces/contour/make_color_map.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Colorscale = require_colorscale();\n var endPlus = require_end_plus();\n module.exports = function makeColorMap(trace) {\n var contours = trace.contours;\n var start = contours.start;\n var end = endPlus(contours);\n var cs = contours.size || 1;\n var nc = Math.floor((end - start) / cs) + 1;\n var extra = contours.coloring === \"lines\" ? 0 : 1;\n var cOpts = Colorscale.extractOpts(trace);\n if (!isFinite(cs)) {\n cs = 1;\n nc = 1;\n }\n var scl = cOpts.reversescale ? Colorscale.flipScale(cOpts.colorscale) : cOpts.colorscale;\n var len = scl.length;\n var domain = new Array(len);\n var range = new Array(len);\n var si, i;\n var zmin0 = cOpts.min;\n var zmax0 = cOpts.max;\n if (contours.coloring === \"heatmap\") {\n for (i = 0; i < len; i++) {\n si = scl[i];\n domain[i] = si[0] * (zmax0 - zmin0) + zmin0;\n range[i] = si[1];\n }\n var zRange = d3.extent([\n zmin0,\n zmax0,\n contours.start,\n contours.start + cs * (nc - 1)\n ]);\n var zmin = zRange[zmin0 < zmax0 ? 0 : 1];\n var zmax = zRange[zmin0 < zmax0 ? 1 : 0];\n if (zmin !== zmin0) {\n domain.splice(0, 0, zmin);\n range.splice(0, 0, range[0]);\n }\n if (zmax !== zmax0) {\n domain.push(zmax);\n range.push(range[range.length - 1]);\n }\n } else {\n var zRangeInput = trace._input && (typeof trace._input.zmin === \"number\" && typeof trace._input.zmax === \"number\");\n if (zRangeInput && (start <= zmin0 || end >= zmax0)) {\n if (start <= zmin0) start = zmin0;\n if (end >= zmax0) end = zmax0;\n nc = Math.floor((end - start) / cs) + 1;\n extra = 0;\n }\n for (i = 0; i < len; i++) {\n si = scl[i];\n domain[i] = (si[0] * (nc + extra - 1) - extra / 2) * cs + start;\n range[i] = si[1];\n }\n if (zRangeInput || trace.autocontour) {\n if (domain[0] > zmin0) {\n domain.unshift(zmin0);\n range.unshift(range[0]);\n }\n if (domain[domain.length - 1] < zmax0) {\n domain.push(zmax0);\n range.push(range[range.length - 1]);\n }\n }\n }\n return Colorscale.makeColorScaleFunc(\n { domain, range },\n { noNumericCheck: true }\n );\n };\n }\n });\n\n // src/traces/contour/style.js\n var require_style7 = __commonJS({\n \"src/traces/contour/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var heatmapStyle = require_style6();\n var makeColorMap = require_make_color_map();\n module.exports = function style(gd) {\n var contours = d3.select(gd).selectAll(\"g.contour\");\n contours.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n contours.each(function(d) {\n var c = d3.select(this);\n var trace = d[0].trace;\n var contours2 = trace.contours;\n var line = trace.line;\n var cs = contours2.size || 1;\n var start = contours2.start;\n var isConstraintType = contours2.type === \"constraint\";\n var colorLines = !isConstraintType && contours2.coloring === \"lines\";\n var colorFills = !isConstraintType && contours2.coloring === \"fill\";\n var colorMap = colorLines || colorFills ? makeColorMap(trace) : null;\n c.selectAll(\"g.contourlevel\").each(function(d2) {\n d3.select(this).selectAll(\"path\").call(\n Drawing.lineGroupStyle,\n line.width,\n colorLines ? colorMap(d2.level) : line.color,\n line.dash\n );\n });\n var labelFont = contours2.labelfont;\n c.selectAll(\"g.contourlabels text\").each(function(d2) {\n Drawing.font(d3.select(this), {\n weight: labelFont.weight,\n style: labelFont.style,\n variant: labelFont.variant,\n textcase: labelFont.textcase,\n lineposition: labelFont.lineposition,\n shadow: labelFont.shadow,\n family: labelFont.family,\n size: labelFont.size,\n color: labelFont.color || (colorLines ? colorMap(d2.level) : line.color)\n });\n });\n if (isConstraintType) {\n c.selectAll(\"g.contourfill path\").style(\"fill\", trace.fillcolor);\n } else if (colorFills) {\n var firstFill;\n c.selectAll(\"g.contourfill path\").style(\"fill\", function(d2) {\n if (firstFill === void 0) firstFill = d2.level;\n return colorMap(d2.level + 0.5 * cs);\n });\n if (firstFill === void 0) firstFill = start;\n c.selectAll(\"g.contourbg path\").style(\"fill\", colorMap(firstFill - 0.5 * cs));\n }\n });\n heatmapStyle(gd);\n };\n }\n });\n\n // src/traces/contour/colorbar.js\n var require_colorbar3 = __commonJS({\n \"src/traces/contour/colorbar.js\"(exports, module) {\n \"use strict\";\n var Colorscale = require_colorscale();\n var makeColorMap = require_make_color_map();\n var endPlus = require_end_plus();\n function calc(gd, trace, opts) {\n var contours = trace.contours;\n var line = trace.line;\n var cs = contours.size || 1;\n var coloring = contours.coloring;\n var colorMap = makeColorMap(trace, { isColorbar: true });\n if (coloring === \"heatmap\") {\n var cOpts = Colorscale.extractOpts(trace);\n opts._fillgradient = cOpts.reversescale ? Colorscale.flipScale(cOpts.colorscale) : cOpts.colorscale;\n opts._zrange = [cOpts.min, cOpts.max];\n } else if (coloring === \"fill\") {\n opts._fillcolor = colorMap;\n }\n opts._line = {\n color: coloring === \"lines\" ? colorMap : line.color,\n width: contours.showlines !== false ? line.width : 0,\n dash: line.dash\n };\n opts._levels = {\n start: contours.start,\n end: endPlus(contours),\n size: cs\n };\n }\n module.exports = {\n min: \"zmin\",\n max: \"zmax\",\n calc\n };\n }\n });\n\n // src/traces/contour/hover.js\n var require_hover8 = __commonJS({\n \"src/traces/contour/hover.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var heatmapHoverPoints = require_hover5();\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n if (!opts) opts = {};\n opts.isContour = true;\n var hoverData = heatmapHoverPoints(pointData, xval, yval, hovermode, opts);\n if (hoverData) {\n hoverData.forEach(function(hoverPt) {\n var trace = hoverPt.trace;\n if (trace.contours.type === \"constraint\") {\n if (trace.fillcolor && Color2.opacity(trace.fillcolor)) {\n hoverPt.color = Color2.addOpacity(trace.fillcolor, 1);\n } else if (trace.contours.showlines && Color2.opacity(trace.line.color)) {\n hoverPt.color = Color2.addOpacity(trace.line.color, 1);\n }\n }\n });\n }\n return hoverData;\n };\n }\n });\n\n // src/traces/histogram2dcontour/index.js\n var require_histogram2dcontour = __commonJS({\n \"src/traces/histogram2dcontour/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes29(),\n supplyDefaults: require_defaults24(),\n crossTraceDefaults: require_cross_trace_defaults3(),\n calc: require_calc10(),\n plot: require_plot6().plot,\n layerName: \"contourlayer\",\n style: require_style7(),\n colorbar: require_colorbar3(),\n hoverPoints: require_hover8(),\n moduleType: \"trace\",\n name: \"histogram2dcontour\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"contour\", \"histogram\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/histogram2dcontour.js\n var require_histogram2dcontour2 = __commonJS({\n \"lib/histogram2dcontour.js\"(exports, module) {\n \"use strict\";\n module.exports = require_histogram2dcontour();\n }\n });\n\n // src/traces/contour/constraint_defaults.js\n var require_constraint_defaults = __commonJS({\n \"src/traces/contour/constraint_defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var handleLabelDefaults = require_label_defaults2();\n var Color2 = require_color();\n var addOpacity = Color2.addOpacity;\n var opacity = Color2.opacity;\n var filterOps = require_filter_ops();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var CONSTRAINT_REDUCTION = filterOps.CONSTRAINT_REDUCTION;\n var COMPARISON_OPS2 = filterOps.COMPARISON_OPS2;\n module.exports = function handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor, opts) {\n var contours = traceOut.contours;\n var showLines, lineColor, fillColor;\n var operation = coerce(\"contours.operation\");\n contours._operation = CONSTRAINT_REDUCTION[operation];\n handleConstraintValueDefaults(coerce, contours);\n if (operation === \"=\") {\n showLines = contours.showlines = true;\n } else {\n showLines = coerce(\"contours.showlines\");\n fillColor = coerce(\"fillcolor\", addOpacity(\n (traceIn.line || {}).color || defaultColor,\n 0.5\n ));\n }\n if (showLines) {\n var lineDfltColor = fillColor && opacity(fillColor) ? addOpacity(traceOut.fillcolor, 1) : defaultColor;\n lineColor = coerce(\"line.color\", lineDfltColor);\n coerce(\"line.width\", 2);\n coerce(\"line.dash\");\n }\n coerce(\"line.smoothing\");\n handleLabelDefaults(coerce, layout, lineColor, opts);\n };\n function handleConstraintValueDefaults(coerce, contours) {\n var zvalue;\n if (COMPARISON_OPS2.indexOf(contours.operation) === -1) {\n coerce(\"contours.value\", [0, 1]);\n if (!isArrayOrTypedArray(contours.value)) {\n if (isNumeric(contours.value)) {\n zvalue = parseFloat(contours.value);\n contours.value = [zvalue, zvalue + 1];\n }\n } else if (contours.value.length > 2) {\n contours.value = contours.value.slice(2);\n } else if (contours.length === 0) {\n contours.value = [0, 1];\n } else if (contours.length < 2) {\n zvalue = parseFloat(contours.value[0]);\n contours.value = [zvalue, zvalue + 1];\n } else {\n contours.value = [\n parseFloat(contours.value[0]),\n parseFloat(contours.value[1])\n ];\n }\n } else {\n coerce(\"contours.value\", 0);\n if (!isNumeric(contours.value)) {\n if (isArrayOrTypedArray(contours.value)) {\n contours.value = parseFloat(contours.value[0]);\n } else {\n contours.value = 0;\n }\n }\n }\n }\n }\n });\n\n // src/traces/contour/defaults.js\n var require_defaults25 = __commonJS({\n \"src/traces/contour/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleXYZDefaults = require_xyz_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleConstraintDefaults = require_constraint_defaults();\n var handleContoursDefaults = require_contours_defaults();\n var handleStyleDefaults = require_style_defaults3();\n var handleHeatmapLabelDefaults = require_label_defaults();\n var attributes = require_attributes28();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hoverongaps\");\n coerce(\"hovertemplate\");\n var isConstraint = coerce(\"contours.type\") === \"constraint\";\n coerce(\"connectgaps\", Lib.isArray1D(traceOut.z));\n if (isConstraint) {\n handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor);\n } else {\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n }\n if (traceOut.contours && traceOut.contours.coloring === \"heatmap\") {\n handleHeatmapLabelDefaults(coerce, layout);\n }\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/contour/index.js\n var require_contour = __commonJS({\n \"src/traces/contour/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes28(),\n supplyDefaults: require_defaults25(),\n calc: require_calc10(),\n plot: require_plot6().plot,\n style: require_style7(),\n colorbar: require_colorbar3(),\n hoverPoints: require_hover8(),\n moduleType: \"trace\",\n name: \"contour\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"contour\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/contour.js\n var require_contour2 = __commonJS({\n \"lib/contour.js\"(exports, module) {\n \"use strict\";\n module.exports = require_contour();\n }\n });\n\n // src/traces/scatterternary/attributes.js\n var require_attributes30 = __commonJS({\n \"src/traces/scatterternary/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var colorScaleAttrs = require_attributes8();\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n module.exports = {\n a: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n b: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n c: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n sum: {\n valType: \"number\",\n dflt: 0,\n min: 0,\n editType: \"calc\"\n },\n mode: extendFlat({}, scatterAttrs.mode, { dflt: \"markers\" }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"a\", \"b\", \"c\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash,\n backoff: scatterLineAttrs.backoff,\n shape: extendFlat(\n {},\n scatterLineAttrs.shape,\n { values: [\"linear\", \"spline\"] }\n ),\n smoothing: scatterLineAttrs.smoothing,\n editType: \"calc\"\n },\n connectgaps: scatterAttrs.connectgaps,\n cliponaxis: scatterAttrs.cliponaxis,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: [\"none\", \"toself\", \"tonext\"],\n dflt: \"none\"\n }),\n fillcolor: makeFillcolorAttr(),\n marker: extendFlat(\n {\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n angle: scatterMarkerAttrs.angle,\n angleref: scatterMarkerAttrs.angleref,\n standoff: scatterMarkerAttrs.standoff,\n maxdisplayed: scatterMarkerAttrs.maxdisplayed,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n line: extendFlat(\n {\n width: scatterMarkerLineAttrs.width,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker.line\")\n ),\n gradient: scatterMarkerAttrs.gradient,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\")\n ),\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"a\", \"b\", \"c\", \"text\", \"name\"]\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs()\n };\n }\n });\n\n // src/traces/scatterternary/defaults.js\n var require_defaults26 = __commonJS({\n \"src/traces/scatterternary/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constants = require_constants8();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes30();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var a = coerce(\"a\");\n var b = coerce(\"b\");\n var c = coerce(\"c\");\n var len;\n if (a) {\n len = a.length;\n if (b) {\n len = Math.min(len, b.length);\n if (c) len = Math.min(len, c.length);\n } else if (c) len = Math.min(len, c.length);\n else len = 0;\n } else if (b && c) {\n len = Math.min(b.length, c.length);\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"sum\");\n coerce(\"text\");\n coerce(\"hovertext\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n var defaultMode = len < constants.PTS_LINESONLY ? \"lines+markers\" : \"lines\";\n coerce(\"mode\", defaultMode);\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"cliponaxis\");\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scatterternary/format_labels.js\n var require_format_labels2 = __commonJS({\n \"src/traces/scatterternary/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n labels.aLabel = Axes.tickText(subplot.aaxis, cdi.a, true).text;\n labels.bLabel = Axes.tickText(subplot.baxis, cdi.b, true).text;\n labels.cLabel = Axes.tickText(subplot.caxis, cdi.c, true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scatterternary/calc.js\n var require_calc11 = __commonJS({\n \"src/traces/scatterternary/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var dataArrays = [\"a\", \"b\", \"c\"];\n var arraysToFill = { a: [\"b\", \"c\"], b: [\"a\", \"c\"], c: [\"a\", \"b\"] };\n module.exports = function calc(gd, trace) {\n var ternary = gd._fullLayout[trace.subplot];\n var displaySum = ternary.sum;\n var normSum = trace.sum || displaySum;\n var arrays = { a: trace.a, b: trace.b, c: trace.c };\n var ids = trace.ids;\n var i, j, dataArray, newArray, fillArray1, fillArray2;\n for (i = 0; i < dataArrays.length; i++) {\n dataArray = dataArrays[i];\n if (arrays[dataArray]) continue;\n fillArray1 = arrays[arraysToFill[dataArray][0]];\n fillArray2 = arrays[arraysToFill[dataArray][1]];\n newArray = new Array(fillArray1.length);\n for (j = 0; j < fillArray1.length; j++) {\n newArray[j] = normSum - fillArray1[j] - fillArray2[j];\n }\n arrays[dataArray] = newArray;\n }\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var a, b, c, norm, x, y;\n for (i = 0; i < serieslen; i++) {\n a = arrays.a[i];\n b = arrays.b[i];\n c = arrays.c[i];\n if (isNumeric(a) && isNumeric(b) && isNumeric(c)) {\n a = +a;\n b = +b;\n c = +c;\n norm = displaySum / (a + b + c);\n if (norm !== 1) {\n a *= norm;\n b *= norm;\n c *= norm;\n }\n y = a;\n x = c - b;\n cd[i] = { x, y, a, b, c };\n if (ids) {\n cd[i].id = ids[i];\n }\n } else cd[i] = { x: false, y: false };\n }\n calcMarkerSize(trace, serieslen);\n calcColorscale(gd, trace);\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/scatterternary/plot.js\n var require_plot7 = __commonJS({\n \"src/traces/scatterternary/plot.js\"(exports, module) {\n \"use strict\";\n var scatterPlot = require_plot();\n module.exports = function plot(gd, ternary, moduleCalcData) {\n var plotContainer = ternary.plotContainer;\n plotContainer.select(\".scatterlayer\").selectAll(\"*\").remove();\n var xa = ternary.xaxis;\n var ya = ternary.yaxis;\n var plotinfo = {\n xaxis: xa,\n yaxis: ya,\n plot: plotContainer,\n layerClipId: ternary._hasClipOnAxisFalse ? ternary.clipIdRelative : null\n };\n var scatterLayer = ternary.layers.frontplot.select(\"g.scatterlayer\");\n for (var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n if (cdi.length) {\n cdi[0].trace._xA = xa;\n cdi[0].trace._yA = ya;\n }\n }\n scatterPlot(gd, plotinfo, moduleCalcData, scatterLayer);\n };\n }\n });\n\n // src/traces/scatterternary/hover.js\n var require_hover9 = __commonJS({\n \"src/traces/scatterternary/hover.js\"(exports, module) {\n \"use strict\";\n var scatterHover = require_hover2();\n module.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var scatterPointData = scatterHover(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n var yFracUp = 1 - newPointData.y0 / pointData.ya._length;\n var xLen = pointData.xa._length;\n var xMin = xLen * yFracUp / 2;\n var xMax = xLen - xMin;\n newPointData.x0 = Math.max(Math.min(newPointData.x0, xMax), xMin);\n newPointData.x1 = Math.max(Math.min(newPointData.x1, xMax), xMin);\n return scatterPointData;\n }\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n var subplot = newPointData.subplot;\n newPointData.a = cdi.a;\n newPointData.b = cdi.b;\n newPointData.c = cdi.c;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(cdi, trace, fullLayout);\n newPointData.aLabel = labels.aLabel;\n newPointData.bLabel = labels.bLabel;\n newPointData.cLabel = labels.cLabel;\n var hoverinfo = cdi.hi || trace.hoverinfo;\n var text = [];\n function textPart(ax, val) {\n text.push(ax._hovertitle + \": \" + val);\n }\n if (!trace.hovertemplate) {\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"a\", \"b\", \"c\"];\n if (parts.indexOf(\"a\") !== -1) textPart(subplot.aaxis, newPointData.aLabel);\n if (parts.indexOf(\"b\") !== -1) textPart(subplot.baxis, newPointData.bLabel);\n if (parts.indexOf(\"c\") !== -1) textPart(subplot.caxis, newPointData.cLabel);\n }\n newPointData.extraText = text.join(\"
\");\n newPointData.hovertemplate = trace.hovertemplate;\n return scatterPointData;\n };\n }\n });\n\n // src/traces/scatterternary/event_data.js\n var require_event_data4 = __commonJS({\n \"src/traces/scatterternary/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n if (cd[pointNumber]) {\n var cdi = cd[pointNumber];\n out.a = cdi.a;\n out.b = cdi.b;\n out.c = cdi.c;\n } else {\n out.a = pt.a;\n out.b = pt.b;\n out.c = pt.c;\n }\n return out;\n };\n }\n });\n\n // src/plots/ternary/ternary.js\n var require_ternary = __commonJS({\n \"src/plots/ternary/ternary.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var _ = Lib._;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var setConvert = require_set_convert();\n var extendFlat = require_extend().extendFlat;\n var Plots = require_plots();\n var Axes = require_axes();\n var dragElement = require_dragelement();\n var Fx = require_fx();\n var dragHelpers = require_helpers5();\n var freeMode = dragHelpers.freeMode;\n var rectMode = dragHelpers.rectMode;\n var Titles = require_titles();\n var prepSelect = require_selections().prepSelect;\n var selectOnClick = require_selections().selectOnClick;\n var clearOutline = require_selections().clearOutline;\n var clearSelectionsCache = require_selections().clearSelectionsCache;\n var constants = require_constants2();\n function Ternary(options, fullLayout) {\n this.id = options.id;\n this.graphDiv = options.graphDiv;\n this.init(fullLayout);\n this.makeFramework(fullLayout);\n this.updateFx(fullLayout);\n this.aTickLayout = null;\n this.bTickLayout = null;\n this.cTickLayout = null;\n }\n module.exports = Ternary;\n var proto = Ternary.prototype;\n proto.init = function(fullLayout) {\n this.container = fullLayout._ternarylayer;\n this.defs = fullLayout._defs;\n this.layoutId = fullLayout._uid;\n this.traceHash = {};\n this.layers = {};\n };\n proto.plot = function(ternaryCalcData, fullLayout) {\n var _this = this;\n var ternaryLayout = fullLayout[_this.id];\n var graphSize = fullLayout._size;\n _this._hasClipOnAxisFalse = false;\n for (var i = 0; i < ternaryCalcData.length; i++) {\n var trace = ternaryCalcData[i][0].trace;\n if (trace.cliponaxis === false) {\n _this._hasClipOnAxisFalse = true;\n break;\n }\n }\n _this.updateLayers(ternaryLayout);\n _this.adjustLayout(ternaryLayout, graphSize);\n Plots.generalUpdatePerTraceModule(_this.graphDiv, _this, ternaryCalcData, ternaryLayout);\n _this.layers.plotbg.select(\"path\").call(Color2.fill, ternaryLayout.bgcolor);\n };\n proto.makeFramework = function(fullLayout) {\n var _this = this;\n var gd = _this.graphDiv;\n var ternaryLayout = fullLayout[_this.id];\n var clipId = _this.clipId = \"clip\" + _this.layoutId + _this.id;\n var clipIdRelative = _this.clipIdRelative = \"clip-relative\" + _this.layoutId + _this.id;\n _this.clipDef = Lib.ensureSingleById(fullLayout._clips, \"clipPath\", clipId, function(s) {\n s.append(\"path\").attr(\"d\", \"M0,0Z\");\n });\n _this.clipDefRelative = Lib.ensureSingleById(fullLayout._clips, \"clipPath\", clipIdRelative, function(s) {\n s.append(\"path\").attr(\"d\", \"M0,0Z\");\n });\n _this.plotContainer = Lib.ensureSingle(_this.container, \"g\", _this.id);\n _this.updateLayers(ternaryLayout);\n Drawing.setClipUrl(_this.layers.backplot, clipId, gd);\n Drawing.setClipUrl(_this.layers.grids, clipId, gd);\n };\n proto.updateFx = function(fullLayout) {\n fullLayout._ternarylayer.selectAll(\"g.toplevel\").style(\"cursor\", fullLayout.dragmode === \"pan\" ? \"move\" : \"crosshair\");\n };\n proto.updateLayers = function(ternaryLayout) {\n var _this = this;\n var layers = _this.layers;\n var plotLayers = [\"draglayer\", \"plotbg\", \"backplot\", \"grids\"];\n if (ternaryLayout.aaxis.layer === \"below traces\") {\n plotLayers.push(\"aaxis\", \"aline\");\n }\n if (ternaryLayout.baxis.layer === \"below traces\") {\n plotLayers.push(\"baxis\", \"bline\");\n }\n if (ternaryLayout.caxis.layer === \"below traces\") {\n plotLayers.push(\"caxis\", \"cline\");\n }\n plotLayers.push(\"frontplot\");\n if (ternaryLayout.aaxis.layer === \"above traces\") {\n plotLayers.push(\"aaxis\", \"aline\");\n }\n if (ternaryLayout.baxis.layer === \"above traces\") {\n plotLayers.push(\"baxis\", \"bline\");\n }\n if (ternaryLayout.caxis.layer === \"above traces\") {\n plotLayers.push(\"caxis\", \"cline\");\n }\n var toplevel = _this.plotContainer.selectAll(\"g.toplevel\").data(plotLayers, String);\n var grids = [\"agrid\", \"bgrid\", \"cgrid\"];\n toplevel.enter().append(\"g\").attr(\"class\", function(d) {\n return \"toplevel \" + d;\n }).each(function(d) {\n var s = d3.select(this);\n layers[d] = s;\n if (d === \"frontplot\") {\n s.append(\"g\").classed(\"scatterlayer\", true);\n } else if (d === \"backplot\") {\n s.append(\"g\").classed(\"maplayer\", true);\n } else if (d === \"plotbg\") {\n s.append(\"path\").attr(\"d\", \"M0,0Z\");\n } else if (d === \"aline\" || d === \"bline\" || d === \"cline\") {\n s.append(\"path\");\n } else if (d === \"grids\") {\n grids.forEach(function(d2) {\n layers[d2] = s.append(\"g\").classed(\"grid \" + d2, true);\n });\n }\n });\n toplevel.order();\n };\n var whRatio = Math.sqrt(4 / 3);\n proto.adjustLayout = function(ternaryLayout, graphSize) {\n var _this = this;\n var domain = ternaryLayout.domain;\n var xDomainCenter = (domain.x[0] + domain.x[1]) / 2;\n var yDomainCenter = (domain.y[0] + domain.y[1]) / 2;\n var xDomain = domain.x[1] - domain.x[0];\n var yDomain = domain.y[1] - domain.y[0];\n var wmax = xDomain * graphSize.w;\n var hmax = yDomain * graphSize.h;\n var sum = ternaryLayout.sum;\n var amin = ternaryLayout.aaxis.min;\n var bmin = ternaryLayout.baxis.min;\n var cmin = ternaryLayout.caxis.min;\n var x0, y0, w, h, xDomainFinal, yDomainFinal;\n if (wmax > whRatio * hmax) {\n h = hmax;\n w = h * whRatio;\n } else {\n w = wmax;\n h = w / whRatio;\n }\n xDomainFinal = xDomain * w / wmax;\n yDomainFinal = yDomain * h / hmax;\n x0 = graphSize.l + graphSize.w * xDomainCenter - w / 2;\n y0 = graphSize.t + graphSize.h * (1 - yDomainCenter) - h / 2;\n _this.x0 = x0;\n _this.y0 = y0;\n _this.w = w;\n _this.h = h;\n _this.sum = sum;\n _this.xaxis = {\n type: \"linear\",\n range: [amin + 2 * cmin - sum, sum - amin - 2 * bmin],\n domain: [\n xDomainCenter - xDomainFinal / 2,\n xDomainCenter + xDomainFinal / 2\n ],\n _id: \"x\"\n };\n setConvert(_this.xaxis, _this.graphDiv._fullLayout);\n _this.xaxis.setScale();\n _this.xaxis.isPtWithinRange = function(d) {\n return d.a >= _this.aaxis.range[0] && d.a <= _this.aaxis.range[1] && d.b >= _this.baxis.range[1] && d.b <= _this.baxis.range[0] && d.c >= _this.caxis.range[1] && d.c <= _this.caxis.range[0];\n };\n _this.yaxis = {\n type: \"linear\",\n range: [amin, sum - bmin - cmin],\n domain: [\n yDomainCenter - yDomainFinal / 2,\n yDomainCenter + yDomainFinal / 2\n ],\n _id: \"y\"\n };\n setConvert(_this.yaxis, _this.graphDiv._fullLayout);\n _this.yaxis.setScale();\n _this.yaxis.isPtWithinRange = function() {\n return true;\n };\n var yDomain0 = _this.yaxis.domain[0];\n var aaxis = _this.aaxis = extendFlat({}, ternaryLayout.aaxis, {\n range: [amin, sum - bmin - cmin],\n side: \"left\",\n // tickangle = 'auto' means 0 anyway for a y axis, need to coerce to 0 here\n // so we can shift by 30.\n tickangle: (+ternaryLayout.aaxis.tickangle || 0) - 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: \"free\",\n position: 0,\n _id: \"y\",\n _length: w\n });\n setConvert(aaxis, _this.graphDiv._fullLayout);\n aaxis.setScale();\n var baxis = _this.baxis = extendFlat({}, ternaryLayout.baxis, {\n range: [sum - amin - cmin, bmin],\n side: \"bottom\",\n domain: _this.xaxis.domain,\n anchor: \"free\",\n position: 0,\n _id: \"x\",\n _length: w\n });\n setConvert(baxis, _this.graphDiv._fullLayout);\n baxis.setScale();\n var caxis = _this.caxis = extendFlat({}, ternaryLayout.caxis, {\n range: [sum - amin - bmin, cmin],\n side: \"right\",\n tickangle: (+ternaryLayout.caxis.tickangle || 0) + 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: \"free\",\n position: 0,\n _id: \"y\",\n _length: w\n });\n setConvert(caxis, _this.graphDiv._fullLayout);\n caxis.setScale();\n var triangleClip = \"M\" + x0 + \",\" + (y0 + h) + \"h\" + w + \"l-\" + w / 2 + \",-\" + h + \"Z\";\n _this.clipDef.select(\"path\").attr(\"d\", triangleClip);\n _this.layers.plotbg.select(\"path\").attr(\"d\", triangleClip);\n var triangleClipRelative = \"M0,\" + h + \"h\" + w + \"l-\" + w / 2 + \",-\" + h + \"Z\";\n _this.clipDefRelative.select(\"path\").attr(\"d\", triangleClipRelative);\n var plotTransform = strTranslate(x0, y0);\n _this.plotContainer.selectAll(\".scatterlayer,.maplayer\").attr(\"transform\", plotTransform);\n _this.clipDefRelative.select(\"path\").attr(\"transform\", null);\n var bTransform = strTranslate(x0 - baxis._offset, y0 + h);\n _this.layers.baxis.attr(\"transform\", bTransform);\n _this.layers.bgrid.attr(\"transform\", bTransform);\n var aTransform = strTranslate(x0 + w / 2, y0) + \"rotate(30)\" + strTranslate(0, -aaxis._offset);\n _this.layers.aaxis.attr(\"transform\", aTransform);\n _this.layers.agrid.attr(\"transform\", aTransform);\n var cTransform = strTranslate(x0 + w / 2, y0) + \"rotate(-30)\" + strTranslate(0, -caxis._offset);\n _this.layers.caxis.attr(\"transform\", cTransform);\n _this.layers.cgrid.attr(\"transform\", cTransform);\n _this.drawAxes(true);\n _this.layers.aline.select(\"path\").attr(\"d\", aaxis.showline ? \"M\" + x0 + \",\" + (y0 + h) + \"l\" + w / 2 + \",-\" + h : \"M0,0\").call(Color2.stroke, aaxis.linecolor || \"#000\").style(\"stroke-width\", (aaxis.linewidth || 0) + \"px\");\n _this.layers.bline.select(\"path\").attr(\"d\", baxis.showline ? \"M\" + x0 + \",\" + (y0 + h) + \"h\" + w : \"M0,0\").call(Color2.stroke, baxis.linecolor || \"#000\").style(\"stroke-width\", (baxis.linewidth || 0) + \"px\");\n _this.layers.cline.select(\"path\").attr(\"d\", caxis.showline ? \"M\" + (x0 + w / 2) + \",\" + y0 + \"l\" + w / 2 + \",\" + h : \"M0,0\").call(Color2.stroke, caxis.linecolor || \"#000\").style(\"stroke-width\", (caxis.linewidth || 0) + \"px\");\n if (!_this.graphDiv._context.staticPlot) {\n _this.initInteractions();\n }\n Drawing.setClipUrl(\n _this.layers.frontplot,\n _this._hasClipOnAxisFalse ? null : _this.clipId,\n _this.graphDiv\n );\n };\n proto.drawAxes = function(doTitles) {\n var _this = this;\n var gd = _this.graphDiv;\n var titlesuffix = _this.id.substr(7) + \"title\";\n var layers = _this.layers;\n var aaxis = _this.aaxis;\n var baxis = _this.baxis;\n var caxis = _this.caxis;\n _this.drawAx(aaxis);\n _this.drawAx(baxis);\n _this.drawAx(caxis);\n if (doTitles) {\n var apad = Math.max(\n aaxis.showticklabels ? aaxis.tickfont.size / 2 : 0,\n (caxis.showticklabels ? caxis.tickfont.size * 0.75 : 0) + (caxis.ticks === \"outside\" ? caxis.ticklen * 0.87 : 0)\n );\n var bpad = (baxis.showticklabels ? baxis.tickfont.size : 0) + (baxis.ticks === \"outside\" ? baxis.ticklen : 0) + 3;\n layers[\"a-title\"] = Titles.draw(gd, \"a\" + titlesuffix, {\n propContainer: aaxis,\n propName: _this.id + \".aaxis.title\",\n placeholder: _(gd, \"Click to enter Component A title\"),\n attributes: {\n x: _this.x0 + _this.w / 2,\n y: _this.y0 - aaxis.title.font.size / 3 - apad,\n \"text-anchor\": \"middle\"\n }\n });\n layers[\"b-title\"] = Titles.draw(gd, \"b\" + titlesuffix, {\n propContainer: baxis,\n propName: _this.id + \".baxis.title\",\n placeholder: _(gd, \"Click to enter Component B title\"),\n attributes: {\n x: _this.x0 - bpad,\n y: _this.y0 + _this.h + baxis.title.font.size * 0.83 + bpad,\n \"text-anchor\": \"middle\"\n }\n });\n layers[\"c-title\"] = Titles.draw(gd, \"c\" + titlesuffix, {\n propContainer: caxis,\n propName: _this.id + \".caxis.title\",\n placeholder: _(gd, \"Click to enter Component C title\"),\n attributes: {\n x: _this.x0 + _this.w + bpad,\n y: _this.y0 + _this.h + caxis.title.font.size * 0.83 + bpad,\n \"text-anchor\": \"middle\"\n }\n });\n }\n };\n proto.drawAx = function(ax) {\n var _this = this;\n var gd = _this.graphDiv;\n var axName = ax._name;\n var axLetter = axName.charAt(0);\n var axId = ax._id;\n var axLayer = _this.layers[axName];\n var counterAngle = 30;\n var stashKey = axLetter + \"tickLayout\";\n var newTickLayout = strTickLayout(ax);\n if (_this[stashKey] !== newTickLayout) {\n axLayer.selectAll(\".\" + axId + \"tick\").remove();\n _this[stashKey] = newTickLayout;\n }\n ax.setScale();\n var vals = Axes.calcTicks(ax);\n var valsClipped = Axes.clipEnds(ax, vals);\n var transFn = Axes.makeTransTickFn(ax);\n var tickSign = Axes.getTickSigns(ax)[2];\n var caRad = Lib.deg2rad(counterAngle);\n var pad = tickSign * (ax.linewidth || 1) / 2;\n var len = tickSign * ax.ticklen;\n var w = _this.w;\n var h = _this.h;\n var tickPath = axLetter === \"b\" ? \"M0,\" + pad + \"l\" + Math.sin(caRad) * len + \",\" + Math.cos(caRad) * len : \"M\" + pad + \",0l\" + Math.cos(caRad) * len + \",\" + -Math.sin(caRad) * len;\n var gridPath = {\n a: \"M0,0l\" + h + \",-\" + w / 2,\n b: \"M0,0l-\" + w / 2 + \",-\" + h,\n c: \"M0,0l-\" + h + \",\" + w / 2\n }[axLetter];\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === \"inside\" ? valsClipped : vals,\n layer: axLayer,\n path: tickPath,\n transFn,\n crisp: false\n });\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: _this.layers[axLetter + \"grid\"],\n path: gridPath,\n transFn,\n crisp: false\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: axLayer,\n transFn,\n labelFns: Axes.makeLabelFns(ax, 0, counterAngle)\n });\n };\n function strTickLayout(axLayout) {\n return axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n }\n var CLEN = constants.MINZOOM / 2 + 0.87;\n var BLPATH = \"m-0.87,.5h\" + CLEN + \"v3h-\" + (CLEN + 5.2) + \"l\" + (CLEN / 2 + 2.6) + \",-\" + (CLEN * 0.87 + 4.5) + \"l2.6,1.5l-\" + CLEN / 2 + \",\" + CLEN * 0.87 + \"Z\";\n var BRPATH = \"m0.87,.5h-\" + CLEN + \"v3h\" + (CLEN + 5.2) + \"l-\" + (CLEN / 2 + 2.6) + \",-\" + (CLEN * 0.87 + 4.5) + \"l-2.6,1.5l\" + CLEN / 2 + \",\" + CLEN * 0.87 + \"Z\";\n var TOPPATH = \"m0,1l\" + CLEN / 2 + \",\" + CLEN * 0.87 + \"l2.6,-1.5l-\" + (CLEN / 2 + 2.6) + \",-\" + (CLEN * 0.87 + 4.5) + \"l-\" + (CLEN / 2 + 2.6) + \",\" + (CLEN * 0.87 + 4.5) + \"l2.6,1.5l\" + CLEN / 2 + \",-\" + CLEN * 0.87 + \"Z\";\n var STARTMARKER = \"m0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z\";\n var SHOWZOOMOUTTIP = true;\n proto.clearOutline = function() {\n clearSelectionsCache(this.dragOptions);\n clearOutline(this.dragOptions.gd);\n };\n proto.initInteractions = function() {\n var _this = this;\n var dragger = _this.layers.plotbg.select(\"path\").node();\n var gd = _this.graphDiv;\n var zoomLayer = gd._fullLayout._zoomlayer;\n var scaleX;\n var scaleY;\n this.dragOptions = {\n element: dragger,\n gd,\n plotinfo: {\n id: _this.id,\n domain: gd._fullLayout[_this.id].domain,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n subplot: _this.id,\n prepFn: function(e, startX, startY) {\n _this.dragOptions.xaxes = [_this.xaxis];\n _this.dragOptions.yaxes = [_this.yaxis];\n scaleX = gd._fullLayout._invScaleX;\n scaleY = gd._fullLayout._invScaleY;\n var dragModeNow = _this.dragOptions.dragmode = gd._fullLayout.dragmode;\n if (freeMode(dragModeNow)) _this.dragOptions.minDrag = 1;\n else _this.dragOptions.minDrag = void 0;\n if (dragModeNow === \"zoom\") {\n _this.dragOptions.moveFn = zoomMove;\n _this.dragOptions.clickFn = clickZoomPan;\n _this.dragOptions.doneFn = zoomDone;\n zoomPrep(e, startX, startY);\n } else if (dragModeNow === \"pan\") {\n _this.dragOptions.moveFn = plotDrag;\n _this.dragOptions.clickFn = clickZoomPan;\n _this.dragOptions.doneFn = dragDone;\n panPrep();\n _this.clearOutline(gd);\n } else if (rectMode(dragModeNow) || freeMode(dragModeNow)) {\n prepSelect(e, startX, startY, _this.dragOptions, dragModeNow);\n }\n }\n };\n var x0, y0, mins0, span0, mins, lum, path0, dimmed, zb, corners;\n function makeUpdate(_mins) {\n var attrs = {};\n attrs[_this.id + \".aaxis.min\"] = _mins.a;\n attrs[_this.id + \".baxis.min\"] = _mins.b;\n attrs[_this.id + \".caxis.min\"] = _mins.c;\n return attrs;\n }\n function clickZoomPan(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n removeZoombox(gd);\n if (numClicks === 2) {\n gd.emit(\"plotly_doubleclick\", null);\n Registry.call(\"_guiRelayout\", gd, makeUpdate({ a: 0, b: 0, c: 0 }));\n }\n if (clickMode.indexOf(\"select\") > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, _this.dragOptions);\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n function zoomPrep(e, startX, startY) {\n var dragBBox = dragger.getBoundingClientRect();\n x0 = startX - dragBBox.left;\n y0 = startY - dragBBox.top;\n gd._fullLayout._calcInverseTransform(gd);\n var inverse = gd._fullLayout._invTransform;\n var transformedCoords = Lib.apply3DTransform(inverse)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n span0 = _this.aaxis.range[1] - mins0.a;\n lum = tinycolor(_this.graphDiv._fullLayout[_this.id].bgcolor).getLuminance();\n path0 = \"M0,\" + _this.h + \"L\" + _this.w / 2 + \", 0L\" + _this.w + \",\" + _this.h + \"Z\";\n dimmed = false;\n zb = zoomLayer.append(\"path\").attr(\"class\", \"zoombox\").attr(\"transform\", strTranslate(_this.x0, _this.y0)).style({\n fill: lum > 0.2 ? \"rgba(0,0,0,0)\" : \"rgba(255,255,255,0)\",\n \"stroke-width\": 0\n }).attr(\"d\", path0);\n corners = zoomLayer.append(\"path\").attr(\"class\", \"zoombox-corners\").attr(\"transform\", strTranslate(_this.x0, _this.y0)).style({\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": 1,\n opacity: 0\n }).attr(\"d\", \"M0,0Z\");\n _this.clearOutline(gd);\n }\n function getAFrac(x, y) {\n return 1 - y / _this.h;\n }\n function getBFrac(x, y) {\n return 1 - (x + (_this.h - y) / Math.sqrt(3)) / _this.w;\n }\n function getCFrac(x, y) {\n return (x - (_this.h - y) / Math.sqrt(3)) / _this.w;\n }\n function zoomMove(dx0, dy0) {\n var x1 = x0 + dx0 * scaleX;\n var y1 = y0 + dy0 * scaleY;\n var afrac = Math.max(0, Math.min(1, getAFrac(x0, y0), getAFrac(x1, y1)));\n var bfrac = Math.max(0, Math.min(1, getBFrac(x0, y0), getBFrac(x1, y1)));\n var cfrac = Math.max(0, Math.min(1, getCFrac(x0, y0), getCFrac(x1, y1)));\n var xLeft = (afrac / 2 + cfrac) * _this.w;\n var xRight = (1 - afrac / 2 - bfrac) * _this.w;\n var xCenter = (xLeft + xRight) / 2;\n var xSpan = xRight - xLeft;\n var yBottom = (1 - afrac) * _this.h;\n var yTop = yBottom - xSpan / whRatio;\n if (xSpan < constants.MINZOOM) {\n mins = mins0;\n zb.attr(\"d\", path0);\n corners.attr(\"d\", \"M0,0Z\");\n } else {\n mins = {\n a: mins0.a + afrac * span0,\n b: mins0.b + bfrac * span0,\n c: mins0.c + cfrac * span0\n };\n zb.attr(\"d\", path0 + \"M\" + xLeft + \",\" + yBottom + \"H\" + xRight + \"L\" + xCenter + \",\" + yTop + \"L\" + xLeft + \",\" + yBottom + \"Z\");\n corners.attr(\"d\", \"M\" + x0 + \",\" + y0 + STARTMARKER + \"M\" + xLeft + \",\" + yBottom + BLPATH + \"M\" + xRight + \",\" + yBottom + BRPATH + \"M\" + xCenter + \",\" + yTop + TOPPATH);\n }\n if (!dimmed) {\n zb.transition().style(\"fill\", lum > 0.2 ? \"rgba(0,0,0,0.4)\" : \"rgba(255,255,255,0.3)\").duration(200);\n corners.transition().style(\"opacity\", 1).duration(200);\n dimmed = true;\n }\n gd.emit(\"plotly_relayouting\", makeUpdate(mins));\n }\n function zoomDone() {\n removeZoombox(gd);\n if (mins === mins0) return;\n Registry.call(\"_guiRelayout\", gd, makeUpdate(mins));\n if (SHOWZOOMOUTTIP && gd.data && gd._context.showTips) {\n Lib.notifier(_(gd, \"Double-click to zoom back out\"), \"long\");\n SHOWZOOMOUTTIP = false;\n }\n }\n function panPrep() {\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n }\n function plotDrag(dx, dy) {\n var dxScaled = dx / _this.xaxis._m;\n var dyScaled = dy / _this.yaxis._m;\n mins = {\n a: mins0.a - dyScaled,\n b: mins0.b + (dxScaled + dyScaled) / 2,\n c: mins0.c - (dxScaled - dyScaled) / 2\n };\n var minsorted = [mins.a, mins.b, mins.c].sort(Lib.sorterAsc);\n var minindices = {\n a: minsorted.indexOf(mins.a),\n b: minsorted.indexOf(mins.b),\n c: minsorted.indexOf(mins.c)\n };\n if (minsorted[0] < 0) {\n if (minsorted[1] + minsorted[0] / 2 < 0) {\n minsorted[2] += minsorted[0] + minsorted[1];\n minsorted[0] = minsorted[1] = 0;\n } else {\n minsorted[2] += minsorted[0] / 2;\n minsorted[1] += minsorted[0] / 2;\n minsorted[0] = 0;\n }\n mins = {\n a: minsorted[minindices.a],\n b: minsorted[minindices.b],\n c: minsorted[minindices.c]\n };\n dy = (mins0.a - mins.a) * _this.yaxis._m;\n dx = (mins0.c - mins.c - mins0.b + mins.b) * _this.xaxis._m;\n }\n var plotTransform = strTranslate(_this.x0 + dx, _this.y0 + dy);\n _this.plotContainer.selectAll(\".scatterlayer,.maplayer\").attr(\"transform\", plotTransform);\n var plotTransform2 = strTranslate(-dx, -dy);\n _this.clipDefRelative.select(\"path\").attr(\"transform\", plotTransform2);\n _this.aaxis.range = [mins.a, _this.sum - mins.b - mins.c];\n _this.baxis.range = [_this.sum - mins.a - mins.c, mins.b];\n _this.caxis.range = [_this.sum - mins.a - mins.b, mins.c];\n _this.drawAxes(false);\n if (_this._hasClipOnAxisFalse) {\n _this.plotContainer.select(\".scatterlayer\").selectAll(\".trace\").call(Drawing.hideOutsideRangePoints, _this);\n }\n gd.emit(\"plotly_relayouting\", makeUpdate(mins));\n }\n function dragDone() {\n Registry.call(\"_guiRelayout\", gd, makeUpdate(mins));\n }\n dragger.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = dragger;\n gd._fullLayout._hoversubplot = _this.id;\n };\n dragger.onmouseout = function(evt) {\n if (gd._dragging) return;\n dragElement.unhover(gd, evt);\n };\n dragElement.init(this.dragOptions);\n };\n function removeZoombox(gd) {\n d3.select(gd).selectAll(\".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners\").remove();\n }\n }\n });\n\n // src/plots/ternary/layout_attributes.js\n var require_layout_attributes8 = __commonJS({\n \"src/plots/ternary/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttrs = require_attributes3();\n var domainAttrs = require_domain().attributes;\n var axesAttrs = require_layout_attributes4();\n var overrideAll = require_edit_types().overrideAll;\n var extendFlat = require_extend().extendFlat;\n var ternaryAxesAttrs = {\n title: {\n text: axesAttrs.title.text,\n font: axesAttrs.title.font\n // TODO does standoff here make sense?\n },\n color: axesAttrs.color,\n // ticks\n tickmode: axesAttrs.minor.tickmode,\n nticks: extendFlat({}, axesAttrs.nticks, { dflt: 6, min: 1 }),\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n ticklabelstep: axesAttrs.ticklabelstep,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n separatethousands: axesAttrs.separatethousands,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n hoverformat: axesAttrs.hoverformat,\n // lines and grids\n showline: extendFlat({}, axesAttrs.showline, { dflt: true }),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, { dflt: true }),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n griddash: axesAttrs.griddash,\n layer: axesAttrs.layer,\n // range\n min: {\n valType: \"number\",\n dflt: 0,\n min: 0\n }\n };\n var attrs = module.exports = overrideAll({\n domain: domainAttrs({ name: \"ternary\" }),\n bgcolor: {\n valType: \"color\",\n dflt: colorAttrs.background\n },\n sum: {\n valType: \"number\",\n dflt: 1,\n min: 0\n },\n aaxis: ternaryAxesAttrs,\n baxis: ternaryAxesAttrs,\n caxis: ternaryAxesAttrs\n }, \"plot\", \"from-root\");\n attrs.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n attrs.aaxis.uirevision = attrs.baxis.uirevision = attrs.caxis.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n }\n });\n\n // src/plots/subplot_defaults.js\n var require_subplot_defaults = __commonJS({\n \"src/plots/subplot_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n var handleDomainDefaults = require_domain().defaults;\n module.exports = function handleSubplotDefaults(layoutIn, layoutOut, fullData, opts) {\n var subplotType = opts.type;\n var subplotAttributes = opts.attributes;\n var handleDefaults = opts.handleDefaults;\n var partition = opts.partition || \"x\";\n var ids = layoutOut._subplots[subplotType];\n var idsLength = ids.length;\n var baseId = idsLength && ids[0].replace(/\\d+$/, \"\");\n var subplotLayoutIn, subplotLayoutOut;\n function coerce(attr, dflt) {\n return Lib.coerce(subplotLayoutIn, subplotLayoutOut, subplotAttributes, attr, dflt);\n }\n for (var i = 0; i < idsLength; i++) {\n var id = ids[i];\n if (layoutIn[id]) subplotLayoutIn = layoutIn[id];\n else subplotLayoutIn = layoutIn[id] = {};\n subplotLayoutOut = Template.newContainer(layoutOut, id, baseId);\n if (!opts.noUirevision) coerce(\"uirevision\", layoutOut.uirevision);\n var dfltDomains = {};\n dfltDomains[partition] = [i / idsLength, (i + 1) / idsLength];\n handleDomainDefaults(subplotLayoutOut, layoutOut, coerce, dfltDomains);\n opts.id = id;\n handleDefaults(subplotLayoutIn, subplotLayoutOut, coerce, opts);\n }\n };\n }\n });\n\n // src/plots/ternary/layout_defaults.js\n var require_layout_defaults7 = __commonJS({\n \"src/plots/ternary/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var Template = require_plot_template();\n var Lib = require_lib();\n var handleSubplotDefaults = require_subplot_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleLineGridDefaults = require_line_grid_defaults();\n var layoutAttributes = require_layout_attributes8();\n var axesNames = [\"aaxis\", \"baxis\", \"caxis\"];\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: \"ternary\",\n attributes: layoutAttributes,\n handleDefaults: handleTernaryDefaults,\n font: layoutOut.font,\n paper_bgcolor: layoutOut.paper_bgcolor\n });\n };\n function handleTernaryDefaults(ternaryLayoutIn, ternaryLayoutOut, coerce, options) {\n var bgColor = coerce(\"bgcolor\");\n var sum = coerce(\"sum\");\n options.bgColor = Color2.combine(bgColor, options.paper_bgcolor);\n var axName, containerIn, containerOut;\n for (var j = 0; j < axesNames.length; j++) {\n axName = axesNames[j];\n containerIn = ternaryLayoutIn[axName] || {};\n containerOut = Template.newContainer(ternaryLayoutOut, axName);\n containerOut._name = axName;\n handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut);\n }\n var aaxis = ternaryLayoutOut.aaxis;\n var baxis = ternaryLayoutOut.baxis;\n var caxis = ternaryLayoutOut.caxis;\n if (aaxis.min + baxis.min + caxis.min >= sum) {\n aaxis.min = 0;\n baxis.min = 0;\n caxis.min = 0;\n if (ternaryLayoutIn.aaxis) delete ternaryLayoutIn.aaxis.min;\n if (ternaryLayoutIn.baxis) delete ternaryLayoutIn.baxis.min;\n if (ternaryLayoutIn.caxis) delete ternaryLayoutIn.caxis.min;\n }\n }\n function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut) {\n var axAttrs = layoutAttributes[containerOut._name];\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, axAttrs, attr, dflt);\n }\n coerce(\"uirevision\", ternaryLayoutOut.uirevision);\n containerOut.type = \"linear\";\n var dfltColor = coerce(\"color\");\n var dfltFontColor = dfltColor !== axAttrs.color.dflt ? dfltColor : options.font.color;\n var axName = containerOut._name;\n var letterUpper = axName.charAt(0).toUpperCase();\n var dfltTitle = \"Component \" + letterUpper;\n var title = coerce(\"title.text\", dfltTitle);\n containerOut._hovertitle = title === dfltTitle ? title : letterUpper;\n Lib.coerceFont(coerce, \"title.font\", options.font, { overrideDflt: {\n size: Lib.bigFont(options.font.size),\n color: dfltFontColor\n } });\n coerce(\"min\");\n handleTickValueDefaults(containerIn, containerOut, coerce, \"linear\");\n handlePrefixSuffixDefaults(containerIn, containerOut, coerce, \"linear\");\n handleTickLabelDefaults(containerIn, containerOut, coerce, \"linear\", {\n noAutotickangles: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true\n });\n handleTickMarkDefaults(\n containerIn,\n containerOut,\n coerce,\n { outerTicks: true }\n );\n var showTickLabels = coerce(\"showticklabels\");\n if (showTickLabels) {\n Lib.coerceFont(coerce, \"tickfont\", options.font, { overrideDflt: {\n color: dfltFontColor\n } });\n coerce(\"tickangle\");\n coerce(\"tickformat\");\n }\n handleLineGridDefaults(containerIn, containerOut, coerce, {\n dfltColor,\n bgColor: options.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: axAttrs\n });\n coerce(\"hoverformat\");\n coerce(\"layer\");\n }\n }\n });\n\n // src/plots/ternary/index.js\n var require_ternary2 = __commonJS({\n \"src/plots/ternary/index.js\"(exports) {\n \"use strict\";\n var Ternary = require_ternary();\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var counterRegex = require_lib().counterRegex;\n var TERNARY = \"ternary\";\n exports.name = TERNARY;\n var attr = exports.attr = \"subplot\";\n exports.idRoot = TERNARY;\n exports.idRegex = exports.attrRegex = counterRegex(TERNARY);\n var attributes = exports.attributes = {};\n attributes[attr] = {\n valType: \"subplotid\",\n dflt: \"ternary\",\n editType: \"calc\"\n };\n exports.layoutAttributes = require_layout_attributes8();\n exports.supplyLayoutDefaults = require_layout_defaults7();\n exports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var ternaryIds = fullLayout._subplots[TERNARY];\n for (var i = 0; i < ternaryIds.length; i++) {\n var ternaryId = ternaryIds[i];\n var ternaryCalcData = getSubplotCalcData(calcData, TERNARY, ternaryId);\n var ternary = fullLayout[ternaryId]._subplot;\n if (!ternary) {\n ternary = new Ternary(\n {\n id: ternaryId,\n graphDiv: gd,\n container: fullLayout._ternarylayer.node()\n },\n fullLayout\n );\n fullLayout[ternaryId]._subplot = ternary;\n }\n ternary.plot(ternaryCalcData, fullLayout, gd._promises);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldTernaryKeys = oldFullLayout._subplots[TERNARY] || [];\n for (var i = 0; i < oldTernaryKeys.length; i++) {\n var oldTernaryKey = oldTernaryKeys[i];\n var oldTernary = oldFullLayout[oldTernaryKey]._subplot;\n if (!newFullLayout[oldTernaryKey] && !!oldTernary) {\n oldTernary.plotContainer.remove();\n oldTernary.clipDef.remove();\n oldTernary.clipDefRelative.remove();\n oldTernary.layers[\"a-title\"].remove();\n oldTernary.layers[\"b-title\"].remove();\n oldTernary.layers[\"c-title\"].remove();\n }\n }\n };\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n fullLayout._ternarylayer.selectAll(\"g.toplevel\").style(\"cursor\", fullLayout.dragmode === \"pan\" ? \"move\" : \"crosshair\");\n };\n }\n });\n\n // src/traces/scatterternary/index.js\n var require_scatterternary = __commonJS({\n \"src/traces/scatterternary/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes30(),\n supplyDefaults: require_defaults26(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels2(),\n calc: require_calc11(),\n plot: require_plot7(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover9(),\n selectPoints: require_select2(),\n eventData: require_event_data4(),\n moduleType: \"trace\",\n name: \"scatterternary\",\n basePlotModule: require_ternary2(),\n categories: [\"ternary\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scatterternary.js\n var require_scatterternary2 = __commonJS({\n \"lib/scatterternary.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scatterternary();\n }\n });\n\n // src/traces/violin/attributes.js\n var require_attributes31 = __commonJS({\n \"src/traces/violin/attributes.js\"(exports, module) {\n \"use strict\";\n var boxAttrs = require_attributes24();\n var extendFlat = require_extend().extendFlat;\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n module.exports = {\n y: boxAttrs.y,\n x: boxAttrs.x,\n x0: boxAttrs.x0,\n y0: boxAttrs.y0,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n name: extendFlat({}, boxAttrs.name, {}),\n orientation: extendFlat({}, boxAttrs.orientation, {}),\n bandwidth: {\n valType: \"number\",\n min: 0,\n editType: \"calc\"\n },\n scalegroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n scalemode: {\n valType: \"enumerated\",\n values: [\"width\", \"count\"],\n dflt: \"width\",\n editType: \"calc\"\n },\n spanmode: {\n valType: \"enumerated\",\n values: [\"soft\", \"hard\", \"manual\"],\n dflt: \"soft\",\n editType: \"calc\"\n },\n span: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"calc\" },\n { valType: \"any\", editType: \"calc\" }\n ],\n editType: \"calc\"\n },\n line: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 2,\n editType: \"style\"\n },\n editType: \"plot\"\n },\n fillcolor: boxAttrs.fillcolor,\n points: extendFlat({}, boxAttrs.boxpoints, {}),\n jitter: extendFlat({}, boxAttrs.jitter, {}),\n pointpos: extendFlat({}, boxAttrs.pointpos, {}),\n width: extendFlat({}, boxAttrs.width, {}),\n marker: boxAttrs.marker,\n text: boxAttrs.text,\n hovertext: boxAttrs.hovertext,\n hovertemplate: boxAttrs.hovertemplate,\n quartilemethod: boxAttrs.quartilemethod,\n box: {\n visible: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n width: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.25,\n editType: \"plot\"\n },\n fillcolor: {\n valType: \"color\",\n editType: \"style\"\n },\n line: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"plot\"\n },\n meanline: {\n visible: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n editType: \"plot\"\n },\n side: {\n valType: \"enumerated\",\n values: [\"both\", \"positive\", \"negative\"],\n dflt: \"both\",\n editType: \"calc\"\n },\n offsetgroup: boxAttrs.offsetgroup,\n alignmentgroup: boxAttrs.alignmentgroup,\n selected: boxAttrs.selected,\n unselected: boxAttrs.unselected,\n hoveron: {\n valType: \"flaglist\",\n flags: [\"violins\", \"points\", \"kde\"],\n dflt: \"violins+points+kde\",\n extras: [\"all\"],\n editType: \"style\"\n },\n zorder: boxAttrs.zorder\n };\n }\n });\n\n // src/traces/violin/layout_attributes.js\n var require_layout_attributes9 = __commonJS({\n \"src/traces/violin/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var boxLayoutAttrs = require_layout_attributes7();\n var extendFlat = require_lib().extendFlat;\n module.exports = {\n violinmode: extendFlat({}, boxLayoutAttrs.boxmode, {}),\n violingap: extendFlat({}, boxLayoutAttrs.boxgap, {}),\n violingroupgap: extendFlat({}, boxLayoutAttrs.boxgroupgap, {})\n };\n }\n });\n\n // src/traces/violin/defaults.js\n var require_defaults27 = __commonJS({\n \"src/traces/violin/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var boxDefaults = require_defaults20();\n var attributes = require_attributes31();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt);\n }\n boxDefaults.handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if (traceOut.visible === false) return;\n coerce(\"bandwidth\");\n coerce(\"side\");\n var width = coerce(\"width\");\n if (!width) {\n coerce(\"scalegroup\", traceOut.name);\n coerce(\"scalemode\");\n }\n var span = coerce(\"span\");\n var spanmodeDflt;\n if (Array.isArray(span)) spanmodeDflt = \"manual\";\n coerce(\"spanmode\", spanmodeDflt);\n var lineColor = coerce(\"line.color\", (traceIn.marker || {}).color || defaultColor);\n var lineWidth = coerce(\"line.width\");\n var fillColor = coerce(\"fillcolor\", Color2.addOpacity(traceOut.line.color, 0.5));\n boxDefaults.handlePointsDefaults(traceIn, traceOut, coerce, { prefix: \"\" });\n var boxWidth = coerce2(\"box.width\");\n var boxFillColor = coerce2(\"box.fillcolor\", fillColor);\n var boxLineColor = coerce2(\"box.line.color\", lineColor);\n var boxLineWidth = coerce2(\"box.line.width\", lineWidth);\n var boxVisible = coerce(\"box.visible\", Boolean(boxWidth || boxFillColor || boxLineColor || boxLineWidth));\n if (!boxVisible) traceOut.box = { visible: false };\n var meanLineColor = coerce2(\"meanline.color\", lineColor);\n var meanLineWidth = coerce2(\"meanline.width\", lineWidth);\n var meanLineVisible = coerce(\"meanline.visible\", Boolean(meanLineColor || meanLineWidth));\n if (!meanLineVisible) traceOut.meanline = { visible: false };\n coerce(\"quartilemethod\");\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/violin/layout_defaults.js\n var require_layout_defaults8 = __commonJS({\n \"src/traces/violin/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes9();\n var boxLayoutDefaults = require_layout_defaults6();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n boxLayoutDefaults._supply(layoutIn, layoutOut, fullData, coerce, \"violin\");\n };\n }\n });\n\n // src/traces/violin/helpers.js\n var require_helpers13 = __commonJS({\n \"src/traces/violin/helpers.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var kernels = {\n gaussian: function(v) {\n return 1 / Math.sqrt(2 * Math.PI) * Math.exp(-0.5 * v * v);\n }\n };\n exports.makeKDE = function(calcItem, trace, vals) {\n var len = vals.length;\n var kernel = kernels.gaussian;\n var bandwidth = calcItem.bandwidth;\n var factor = 1 / (len * bandwidth);\n return function(x) {\n var sum = 0;\n for (var i = 0; i < len; i++) {\n sum += kernel((x - vals[i]) / bandwidth);\n }\n return factor * sum;\n };\n };\n exports.getPositionOnKdePath = function(calcItem, trace, valuePx) {\n var posLetter, valLetter;\n if (trace.orientation === \"h\") {\n posLetter = \"y\";\n valLetter = \"x\";\n } else {\n posLetter = \"x\";\n valLetter = \"y\";\n }\n var pointOnPath = Lib.findPointOnPath(\n calcItem.path,\n valuePx,\n valLetter,\n { pathLength: calcItem.pathLength }\n );\n var posCenterPx = calcItem.posCenterPx;\n var posOnPath0 = pointOnPath[posLetter];\n var posOnPath1 = trace.side === \"both\" ? 2 * posCenterPx - posOnPath0 : posCenterPx;\n return [posOnPath0, posOnPath1];\n };\n exports.getKdeValue = function(calcItem, trace, valueDist) {\n var vals = calcItem.pts.map(exports.extractVal);\n var kde = exports.makeKDE(calcItem, trace, vals);\n return kde(valueDist) / calcItem.posDensityScale;\n };\n exports.extractVal = function(o) {\n return o.v;\n };\n }\n });\n\n // src/traces/violin/calc.js\n var require_calc12 = __commonJS({\n \"src/traces/violin/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var boxCalc = require_calc6();\n var helpers = require_helpers13();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function calc(gd, trace) {\n var cd = boxCalc(gd, trace);\n if (cd[0].t.empty) return cd;\n var fullLayout = gd._fullLayout;\n var valAxis = Axes.getFromId(\n gd,\n trace[trace.orientation === \"h\" ? \"xaxis\" : \"yaxis\"]\n );\n var spanMin = Infinity;\n var spanMax = -Infinity;\n var maxKDE = 0;\n var maxCount = 0;\n for (var i = 0; i < cd.length; i++) {\n var cdi = cd[i];\n var vals = cdi.pts.map(helpers.extractVal);\n var bandwidth = cdi.bandwidth = calcBandwidth(trace, cdi, vals);\n var span = cdi.span = calcSpan(trace, cdi, valAxis, bandwidth);\n if (cdi.min === cdi.max && bandwidth === 0) {\n span = cdi.span = [cdi.min, cdi.max];\n cdi.density = [{ v: 1, t: span[0] }];\n cdi.bandwidth = bandwidth;\n maxKDE = Math.max(maxKDE, 1);\n } else {\n var dist = span[1] - span[0];\n var n = Math.ceil(dist / (bandwidth / 3));\n var step = dist / n;\n if (!isFinite(step) || !isFinite(n)) {\n Lib.error(\"Something went wrong with computing the violin span\");\n cd[0].t.empty = true;\n return cd;\n }\n var kde = helpers.makeKDE(cdi, trace, vals);\n cdi.density = new Array(n);\n for (var k = 0, t = span[0]; t < span[1] + step / 2; k++, t += step) {\n var v = kde(t);\n cdi.density[k] = { v, t };\n maxKDE = Math.max(maxKDE, v);\n }\n }\n maxCount = Math.max(maxCount, vals.length);\n spanMin = Math.min(spanMin, span[0]);\n spanMax = Math.max(spanMax, span[1]);\n }\n var extremes = Axes.findExtremes(valAxis, [spanMin, spanMax], { padded: true });\n trace._extremes[valAxis._id] = extremes;\n if (trace.width) {\n cd[0].t.maxKDE = maxKDE;\n } else {\n var violinScaleGroupStats = fullLayout._violinScaleGroupStats;\n var scaleGroup = trace.scalegroup;\n var groupStats = violinScaleGroupStats[scaleGroup];\n if (groupStats) {\n groupStats.maxKDE = Math.max(groupStats.maxKDE, maxKDE);\n groupStats.maxCount = Math.max(groupStats.maxCount, maxCount);\n } else {\n violinScaleGroupStats[scaleGroup] = {\n maxKDE,\n maxCount\n };\n }\n }\n cd[0].t.labels.kde = Lib._(gd, \"kde:\");\n return cd;\n };\n function silvermanRule(len, ssd, iqr) {\n var a = Math.min(ssd, iqr / 1.349);\n return 1.059 * a * Math.pow(len, -0.2);\n }\n function calcBandwidth(trace, cdi, vals) {\n var span = cdi.max - cdi.min;\n if (!span) {\n if (trace.bandwidth) {\n return trace.bandwidth;\n } else {\n return 0;\n }\n }\n if (trace.bandwidth) {\n return Math.max(trace.bandwidth, span / 1e4);\n } else {\n var len = vals.length;\n var ssd = Lib.stdev(vals, len - 1, cdi.mean);\n return Math.max(\n silvermanRule(len, ssd, cdi.q3 - cdi.q1),\n span / 100\n );\n }\n }\n function calcSpan(trace, cdi, valAxis, bandwidth) {\n var spanmode = trace.spanmode;\n var spanIn = trace.span || [];\n var spanTight = [cdi.min, cdi.max];\n var spanLoose = [cdi.min - 2 * bandwidth, cdi.max + 2 * bandwidth];\n var spanOut;\n function calcSpanItem(index) {\n var s = spanIn[index];\n var sc = valAxis.type === \"multicategory\" ? valAxis.r2c(s) : valAxis.d2c(s, 0, trace[cdi.valLetter + \"calendar\"]);\n return sc === BADNUM ? spanLoose[index] : sc;\n }\n if (spanmode === \"soft\") {\n spanOut = spanLoose;\n } else if (spanmode === \"hard\") {\n spanOut = spanTight;\n } else {\n spanOut = [calcSpanItem(0), calcSpanItem(1)];\n }\n var dummyAx = {\n type: \"linear\",\n range: spanOut\n };\n Axes.setConvert(dummyAx);\n dummyAx.cleanRange();\n return spanOut;\n }\n }\n });\n\n // src/traces/violin/cross_trace_calc.js\n var require_cross_trace_calc4 = __commonJS({\n \"src/traces/violin/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var setPositionOffset = require_cross_trace_calc3().setPositionOffset;\n var orientations = [\"v\", \"h\"];\n module.exports = function crossTraceCalc(gd, plotinfo) {\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n for (var i = 0; i < orientations.length; i++) {\n var orientation = orientations[i];\n var posAxis = orientation === \"h\" ? ya : xa;\n var violinList = [];\n for (var j = 0; j < calcdata.length; j++) {\n var cd = calcdata[j];\n var t = cd[0].t;\n var trace = cd[0].trace;\n if (trace.visible === true && trace.type === \"violin\" && !t.empty && trace.orientation === orientation && trace.xaxis === xa._id && trace.yaxis === ya._id) {\n violinList.push(j);\n }\n }\n setPositionOffset(\"violin\", gd, violinList, posAxis);\n }\n };\n }\n });\n\n // src/traces/violin/plot.js\n var require_plot8 = __commonJS({\n \"src/traces/violin/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var boxPlot = require_plot4();\n var linePoints = require_line_points();\n var helpers = require_helpers13();\n module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n function makePath(pts, trace) {\n var segments = linePoints(pts, {\n xaxis: xa,\n yaxis: ya,\n trace,\n connectGaps: true,\n baseTolerance: 0.75,\n shape: \"spline\",\n simplify: true,\n linearized: true\n });\n return Drawing.smoothopen(segments[0], 1);\n }\n Lib.makeTraceGroups(violinLayer, cdViolins, \"trace violins\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n if (trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n var bPos = t.bPos;\n var bdPos = t.bdPos;\n var valAxis = plotinfo[t.valLetter + \"axis\"];\n var posAxis = plotinfo[t.posLetter + \"axis\"];\n var hasBothSides = trace.side === \"both\";\n var hasPositiveSide = hasBothSides || trace.side === \"positive\";\n var hasNegativeSide = hasBothSides || trace.side === \"negative\";\n var violins = plotGroup.selectAll(\"path.violin\").data(Lib.identity);\n violins.enter().append(\"path\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").attr(\"class\", \"violin\");\n violins.exit().remove();\n violins.each(function(d) {\n var pathSel = d3.select(this);\n var density = d.density;\n var len = density.length;\n var posCenter = posAxis.c2l(d.pos + bPos, true);\n var posCenterPx = posAxis.l2p(posCenter);\n var scale;\n if (trace.width) {\n scale = t.maxKDE / bdPos;\n } else {\n var groupStats = fullLayout._violinScaleGroupStats[trace.scalegroup];\n scale = trace.scalemode === \"count\" ? groupStats.maxKDE / bdPos * (groupStats.maxCount / d.pts.length) : groupStats.maxKDE / bdPos;\n }\n var pathPos, pathNeg, path;\n var i, k, pts, pt;\n if (hasPositiveSide) {\n pts = new Array(len);\n for (i = 0; i < len; i++) {\n pt = pts[i] = {};\n pt[t.posLetter] = posCenter + density[i].v / scale;\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathPos = makePath(pts, trace);\n }\n if (hasNegativeSide) {\n pts = new Array(len);\n for (k = 0, i = len - 1; k < len; k++, i--) {\n pt = pts[k] = {};\n pt[t.posLetter] = posCenter - density[i].v / scale;\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathNeg = makePath(pts, trace);\n }\n if (hasBothSides) {\n path = pathPos + \"L\" + pathNeg.substr(1) + \"Z\";\n } else {\n var startPt = [posCenterPx, valAxis.c2p(density[0].t)];\n var endPt = [posCenterPx, valAxis.c2p(density[len - 1].t)];\n if (trace.orientation === \"h\") {\n startPt.reverse();\n endPt.reverse();\n }\n if (hasPositiveSide) {\n path = \"M\" + startPt + \"L\" + pathPos.substr(1) + \"L\" + endPt;\n } else {\n path = \"M\" + endPt + \"L\" + pathNeg.substr(1) + \"L\" + startPt;\n }\n }\n pathSel.attr(\"d\", path);\n d.posCenterPx = posCenterPx;\n d.posDensityScale = scale * bdPos;\n d.path = pathSel.node();\n d.pathLength = d.path.getTotalLength() / (hasBothSides ? 2 : 1);\n });\n var boxAttrs = trace.box;\n var boxWidth = boxAttrs.width;\n var boxLineWidth = (boxAttrs.line || {}).width;\n var bdPosScaled;\n var bPosPxOffset;\n if (hasBothSides) {\n bdPosScaled = bdPos * boxWidth;\n bPosPxOffset = 0;\n } else if (hasPositiveSide) {\n bdPosScaled = [0, bdPos * boxWidth / 2];\n bPosPxOffset = boxLineWidth * { x: 1, y: -1 }[t.posLetter];\n } else {\n bdPosScaled = [bdPos * boxWidth / 2, 0];\n bPosPxOffset = boxLineWidth * { x: -1, y: 1 }[t.posLetter];\n }\n boxPlot.plotBoxAndWhiskers(plotGroup, { pos: posAxis, val: valAxis }, trace, {\n bPos,\n bdPos: bdPosScaled,\n bPosPxOffset\n });\n boxPlot.plotBoxMean(plotGroup, { pos: posAxis, val: valAxis }, trace, {\n bPos,\n bdPos: bdPosScaled,\n bPosPxOffset\n });\n var fn;\n if (!trace.box.visible && trace.meanline.visible) {\n fn = Lib.identity;\n }\n var meanPaths = plotGroup.selectAll(\"path.meanline\").data(fn || []);\n meanPaths.enter().append(\"path\").attr(\"class\", \"meanline\").style(\"fill\", \"none\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\");\n meanPaths.exit().remove();\n meanPaths.each(function(d) {\n var v = valAxis.c2p(d.mean, true);\n var p = helpers.getPositionOnKdePath(d, trace, v);\n d3.select(this).attr(\n \"d\",\n trace.orientation === \"h\" ? \"M\" + v + \",\" + p[0] + \"V\" + p[1] : \"M\" + p[0] + \",\" + v + \"H\" + p[1]\n );\n });\n boxPlot.plotPoints(plotGroup, { x: xa, y: ya }, trace, t);\n });\n };\n }\n });\n\n // src/traces/violin/style.js\n var require_style8 = __commonJS({\n \"src/traces/violin/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var stylePoints = require_style2().stylePoints;\n module.exports = function style(gd) {\n var s = d3.select(gd).selectAll(\"g.trace.violins\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var trace = d[0].trace;\n var sel = d3.select(this);\n var box = trace.box || {};\n var boxLine = box.line || {};\n var meanline = trace.meanline || {};\n var meanLineWidth = meanline.width;\n sel.selectAll(\"path.violin\").style(\"stroke-width\", trace.line.width + \"px\").call(Color2.stroke, trace.line.color).call(Color2.fill, trace.fillcolor);\n sel.selectAll(\"path.box\").style(\"stroke-width\", boxLine.width + \"px\").call(Color2.stroke, boxLine.color).call(Color2.fill, box.fillcolor);\n var meanLineStyle = {\n \"stroke-width\": meanLineWidth + \"px\",\n \"stroke-dasharray\": 2 * meanLineWidth + \"px,\" + meanLineWidth + \"px\"\n };\n sel.selectAll(\"path.mean\").style(meanLineStyle).call(Color2.stroke, meanline.color);\n sel.selectAll(\"path.meanline\").style(meanLineStyle).call(Color2.stroke, meanline.color);\n stylePoints(sel, trace, gd);\n });\n };\n }\n });\n\n // src/traces/violin/hover.js\n var require_hover10 = __commonJS({\n \"src/traces/violin/hover.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var Lib = require_lib();\n var Axes = require_axes();\n var boxHoverPoints = require_hover4();\n var helpers = require_helpers13();\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n if (!opts) opts = {};\n var hoverLayer = opts.hoverLayer;\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var hoveron = trace.hoveron;\n var hasHoveronViolins = hoveron.indexOf(\"violins\") !== -1;\n var hasHoveronKDE = hoveron.indexOf(\"kde\") !== -1;\n var closeData = [];\n var closePtData;\n var violinLineAttrs;\n if (hasHoveronViolins || hasHoveronKDE) {\n var closeBoxData = boxHoverPoints.hoverOnBoxes(pointData, xval, yval, hovermode);\n if (hasHoveronKDE && closeBoxData.length > 0) {\n var xa = pointData.xa;\n var ya = pointData.ya;\n var pLetter, vLetter, pAxis, vAxis, vVal;\n if (trace.orientation === \"h\") {\n vVal = xval;\n pLetter = \"y\";\n pAxis = ya;\n vLetter = \"x\";\n vAxis = xa;\n } else {\n vVal = yval;\n pLetter = \"x\";\n pAxis = xa;\n vLetter = \"y\";\n vAxis = ya;\n }\n var di = cd[pointData.index];\n if (vVal >= di.span[0] && vVal <= di.span[1]) {\n var kdePointData = Lib.extendFlat({}, pointData);\n var vValPx = vAxis.c2p(vVal, true);\n var kdeVal = helpers.getKdeValue(di, trace, vVal);\n var pOnPath = helpers.getPositionOnKdePath(di, trace, vValPx);\n var paOffset = pAxis._offset;\n var paLength = pAxis._length;\n kdePointData[pLetter + \"0\"] = pOnPath[0];\n kdePointData[pLetter + \"1\"] = pOnPath[1];\n kdePointData[vLetter + \"0\"] = kdePointData[vLetter + \"1\"] = vValPx;\n kdePointData[vLetter + \"Label\"] = vLetter + \": \" + Axes.hoverLabelText(vAxis, vVal, trace[vLetter + \"hoverformat\"]) + \", \" + cd[0].t.labels.kde + \" \" + kdeVal.toFixed(3);\n var medId = 0;\n for (var k = 0; k < closeBoxData.length; k++) {\n if (closeBoxData[k].attr === \"med\") {\n medId = k;\n break;\n }\n }\n kdePointData.spikeDistance = closeBoxData[medId].spikeDistance;\n var spikePosAttr = pLetter + \"Spike\";\n kdePointData[spikePosAttr] = closeBoxData[medId][spikePosAttr];\n closeBoxData[medId].spikeDistance = void 0;\n closeBoxData[medId][spikePosAttr] = void 0;\n kdePointData.hovertemplate = false;\n closeData.push(kdePointData);\n violinLineAttrs = {};\n violinLineAttrs[pLetter + \"1\"] = Lib.constrain(paOffset + pOnPath[0], paOffset, paOffset + paLength);\n violinLineAttrs[pLetter + \"2\"] = Lib.constrain(paOffset + pOnPath[1], paOffset, paOffset + paLength);\n violinLineAttrs[vLetter + \"1\"] = violinLineAttrs[vLetter + \"2\"] = vAxis._offset + vValPx;\n }\n }\n if (hasHoveronViolins) {\n closeData = closeData.concat(closeBoxData);\n }\n }\n if (hoveron.indexOf(\"points\") !== -1) {\n closePtData = boxHoverPoints.hoverOnPoints(pointData, xval, yval);\n }\n var violinLine = hoverLayer.selectAll(\".violinline-\" + trace.uid).data(violinLineAttrs ? [0] : []);\n violinLine.enter().append(\"line\").classed(\"violinline-\" + trace.uid, true).attr(\"stroke-width\", 1.5);\n violinLine.exit().remove();\n violinLine.attr(violinLineAttrs).call(Color2.stroke, pointData.color);\n if (hovermode === \"closest\") {\n if (closePtData) return [closePtData];\n return closeData;\n }\n if (closePtData) {\n closeData.push(closePtData);\n return closeData;\n }\n return closeData;\n };\n }\n });\n\n // src/traces/violin/index.js\n var require_violin = __commonJS({\n \"src/traces/violin/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes31(),\n layoutAttributes: require_layout_attributes9(),\n supplyDefaults: require_defaults27(),\n crossTraceDefaults: require_defaults20().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults8(),\n calc: require_calc12(),\n crossTraceCalc: require_cross_trace_calc4(),\n plot: require_plot8(),\n style: require_style8(),\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover10(),\n selectPoints: require_select4(),\n moduleType: \"trace\",\n name: \"violin\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"symbols\", \"oriented\", \"box-violin\", \"showLegend\", \"violinLayout\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/violin.js\n var require_violin2 = __commonJS({\n \"lib/violin.js\"(exports, module) {\n \"use strict\";\n module.exports = require_violin();\n }\n });\n\n // src/traces/funnel/constants.js\n var require_constants17 = __commonJS({\n \"src/traces/funnel/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n eventDataKeys: [\n \"percentInitial\",\n \"percentPrevious\",\n \"percentTotal\"\n ]\n };\n }\n });\n\n // src/traces/funnel/attributes.js\n var require_attributes32 = __commonJS({\n \"src/traces/funnel/attributes.js\"(exports, module) {\n \"use strict\";\n var barAttrs = require_attributes23();\n var lineAttrs = require_attributes12().line;\n var baseAttrs = require_attributes2();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var constants = require_constants17();\n var extendFlat = require_extend().extendFlat;\n var Color2 = require_color();\n module.exports = {\n x: barAttrs.x,\n x0: barAttrs.x0,\n dx: barAttrs.dx,\n y: barAttrs.y,\n y0: barAttrs.y0,\n dy: barAttrs.dy,\n xperiod: barAttrs.xperiod,\n yperiod: barAttrs.yperiod,\n xperiod0: barAttrs.xperiod0,\n yperiod0: barAttrs.yperiod0,\n xperiodalignment: barAttrs.xperiodalignment,\n yperiodalignment: barAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n hovertext: barAttrs.hovertext,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"name\", \"x\", \"y\", \"text\", \"percent initial\", \"percent previous\", \"percent total\"]\n }),\n textinfo: {\n valType: \"flaglist\",\n flags: [\"label\", \"text\", \"percent initial\", \"percent previous\", \"percent total\", \"value\"],\n extras: [\"none\"],\n editType: \"plot\",\n arrayOk: false\n },\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\", \"value\"])\n }),\n text: barAttrs.text,\n textposition: barAttrs.textposition,\n insidetextanchor: extendFlat({}, barAttrs.insidetextanchor, { dflt: \"middle\" }),\n textangle: extendFlat({}, barAttrs.textangle, { dflt: 0 }),\n textfont: barAttrs.textfont,\n insidetextfont: barAttrs.insidetextfont,\n outsidetextfont: barAttrs.outsidetextfont,\n constraintext: barAttrs.constraintext,\n cliponaxis: barAttrs.cliponaxis,\n orientation: extendFlat({}, barAttrs.orientation, {}),\n offset: extendFlat({}, barAttrs.offset, { arrayOk: false }),\n width: extendFlat({}, barAttrs.width, { arrayOk: false }),\n marker: funnelMarker(),\n connector: {\n fillcolor: {\n valType: \"color\",\n editType: \"style\"\n },\n line: {\n color: extendFlat({}, lineAttrs.color, { dflt: Color2.defaultLine }),\n width: extendFlat({}, lineAttrs.width, {\n dflt: 0,\n editType: \"plot\"\n }),\n dash: lineAttrs.dash,\n editType: \"style\"\n },\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n zorder: barAttrs.zorder\n };\n function funnelMarker() {\n var marker = extendFlat({}, barAttrs.marker);\n delete marker.pattern;\n delete marker.cornerradius;\n return marker;\n }\n }\n });\n\n // src/traces/funnel/layout_attributes.js\n var require_layout_attributes10 = __commonJS({\n \"src/traces/funnel/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n funnelmode: {\n valType: \"enumerated\",\n values: [\"stack\", \"group\", \"overlay\"],\n dflt: \"stack\",\n editType: \"calc\"\n },\n funnelgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n },\n funnelgroupgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/funnel/defaults.js\n var require_defaults28 = __commonJS({\n \"src/traces/funnel/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleGroupingDefaults = require_grouping_defaults();\n var handleText = require_defaults19().handleText;\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var attributes = require_attributes32();\n var Color2 = require_color();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"orientation\", traceOut.y && !traceOut.x ? \"v\" : \"h\");\n coerce(\"offset\");\n coerce(\"width\");\n var text = coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n if (traceOut.textposition !== \"none\" && !traceOut.texttemplate) {\n coerce(\"textinfo\", Lib.isArrayOrTypedArray(text) ? \"text+value\" : \"value\");\n }\n var markerColor = coerce(\"marker.color\", defaultColor);\n coerce(\"marker.line.color\", Color2.defaultLine);\n coerce(\"marker.line.width\");\n var connectorVisible = coerce(\"connector.visible\");\n if (connectorVisible) {\n coerce(\"connector.fillcolor\", defaultFillColor(markerColor));\n var connectorLineWidth = coerce(\"connector.line.width\");\n if (connectorLineWidth) {\n coerce(\"connector.line.color\");\n coerce(\"connector.line.dash\");\n }\n }\n coerce(\"zorder\");\n }\n function defaultFillColor(markerColor) {\n var cBase = Lib.isArrayOrTypedArray(markerColor) ? \"#000\" : markerColor;\n return Color2.addOpacity(cBase, 0.5 * Color2.opacity(cBase));\n }\n function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n for (var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n if (traceOut.type === \"funnel\") {\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, fullLayout.funnelmode);\n }\n }\n }\n module.exports = {\n supplyDefaults,\n crossTraceDefaults\n };\n }\n });\n\n // src/traces/funnel/layout_defaults.js\n var require_layout_defaults9 = __commonJS({\n \"src/traces/funnel/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes10();\n module.exports = function(layoutIn, layoutOut, fullData) {\n var hasTraceType = false;\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.visible && trace.type === \"funnel\") {\n hasTraceType = true;\n break;\n }\n }\n if (hasTraceType) {\n coerce(\"funnelmode\");\n coerce(\"funnelgap\", 0.2);\n coerce(\"funnelgroupgap\");\n }\n };\n }\n });\n\n // src/traces/funnel/arrays_to_calcdata.js\n var require_arrays_to_calcdata3 = __commonJS({\n \"src/traces/funnel/arrays_to_calcdata.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function arraysToCalcdata(cd, trace) {\n for (var i = 0; i < cd.length; i++) cd[i].i = i;\n Lib.mergeArray(trace.text, cd, \"tx\");\n Lib.mergeArray(trace.hovertext, cd, \"htx\");\n var marker = trace.marker;\n if (marker) {\n Lib.mergeArray(marker.opacity, cd, \"mo\");\n Lib.mergeArray(marker.color, cd, \"mc\");\n var markerLine = marker.line;\n if (markerLine) {\n Lib.mergeArray(markerLine.color, cd, \"mlc\");\n Lib.mergeArrayCastPositive(markerLine.width, cd, \"mlw\");\n }\n }\n };\n }\n });\n\n // src/traces/funnel/calc.js\n var require_calc13 = __commonJS({\n \"src/traces/funnel/calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var arraysToCalcdata = require_arrays_to_calcdata3();\n var calcSelection = require_calc_selection();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var size, pos, origPos, pObj, hasPeriod, pLetter, i, cdi;\n if (trace.orientation === \"h\") {\n size = xa.makeCalcdata(trace, \"x\");\n origPos = ya.makeCalcdata(trace, \"y\");\n pObj = alignPeriod(trace, ya, \"y\", origPos);\n hasPeriod = !!trace.yperiodalignment;\n pLetter = \"y\";\n } else {\n size = ya.makeCalcdata(trace, \"y\");\n origPos = xa.makeCalcdata(trace, \"x\");\n pObj = alignPeriod(trace, xa, \"x\", origPos);\n hasPeriod = !!trace.xperiodalignment;\n pLetter = \"x\";\n }\n pos = pObj.vals;\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n trace._base = [];\n for (i = 0; i < serieslen; i++) {\n if (size[i] < 0) size[i] = BADNUM;\n var connectToNext = false;\n if (size[i] !== BADNUM) {\n if (i + 1 < serieslen && size[i + 1] !== BADNUM) {\n connectToNext = true;\n }\n }\n cdi = cd[i] = {\n p: pos[i],\n s: size[i],\n cNext: connectToNext\n };\n trace._base[i] = -0.5 * cdi.s;\n if (hasPeriod) {\n cd[i].orig_p = origPos[i];\n cd[i][pLetter + \"End\"] = pObj.ends[i];\n cd[i][pLetter + \"Start\"] = pObj.starts[i];\n }\n if (trace.ids) {\n cdi.id = String(trace.ids[i]);\n }\n if (i === 0) cd[0].vTotal = 0;\n cd[0].vTotal += fixNum(cdi.s);\n cdi.begR = fixNum(cdi.s) / fixNum(cd[0].s);\n }\n var prevGoodNum;\n for (i = 0; i < serieslen; i++) {\n cdi = cd[i];\n if (cdi.s === BADNUM) continue;\n cdi.sumR = cdi.s / cd[0].vTotal;\n cdi.difR = prevGoodNum !== void 0 ? cdi.s / prevGoodNum : 1;\n prevGoodNum = cdi.s;\n }\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n function fixNum(a) {\n return a === BADNUM ? 0 : a;\n }\n }\n });\n\n // src/traces/funnel/cross_trace_calc.js\n var require_cross_trace_calc5 = __commonJS({\n \"src/traces/funnel/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var setGroupPositions = require_cross_trace_calc().setGroupPositions;\n module.exports = function crossTraceCalc(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var funnels = [];\n var funnelsVert = [];\n var funnelsHorz = [];\n var cd, i;\n for (i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n var isHorizontal = fullTrace.orientation === \"h\";\n if (fullTrace.visible === true && fullTrace.xaxis === xa._id && fullTrace.yaxis === ya._id && fullTrace.type === \"funnel\") {\n cd = calcdata[i];\n if (isHorizontal) {\n funnelsHorz.push(cd);\n } else {\n funnelsVert.push(cd);\n }\n funnels.push(cd);\n }\n }\n var opts = {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelnorm,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n };\n setGroupPositions(gd, xa, ya, funnelsVert, opts);\n setGroupPositions(gd, ya, xa, funnelsHorz, opts);\n for (i = 0; i < funnels.length; i++) {\n cd = funnels[i];\n for (var j = 0; j < cd.length; j++) {\n if (j + 1 < cd.length) {\n cd[j].nextP0 = cd[j + 1].p0;\n cd[j].nextS0 = cd[j + 1].s0;\n cd[j].nextP1 = cd[j + 1].p1;\n cd[j].nextS1 = cd[j + 1].s1;\n }\n }\n }\n };\n }\n });\n\n // src/traces/funnel/plot.js\n var require_plot9 = __commonJS({\n \"src/traces/funnel/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var BADNUM = require_numerical().BADNUM;\n var barPlot = require_plot3();\n var clearMinTextSize = require_uniform_text().clearMinTextSize;\n module.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n clearMinTextSize(\"funnel\", fullLayout);\n plotConnectorRegions(gd, plotinfo, cdModule, traceLayer);\n plotConnectorLines(gd, plotinfo, cdModule, traceLayer);\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelmode,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n });\n };\n function plotConnectorRegions(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(traceLayer, cdModule, \"trace bars\").each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n var group = Lib.ensureSingle(plotGroup, \"g\", \"regions\");\n if (!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n var isHorizontal = trace.orientation === \"h\";\n var connectors = group.selectAll(\"g.region\").data(Lib.identity);\n connectors.enter().append(\"g\").classed(\"region\", true);\n connectors.exit().remove();\n var len = connectors.size();\n connectors.each(function(di, i) {\n if (i !== len - 1 && !di.cNext) return;\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n var shape = \"\";\n if (x[0] !== BADNUM && y[0] !== BADNUM && x[1] !== BADNUM && y[1] !== BADNUM && x[2] !== BADNUM && y[2] !== BADNUM && x[3] !== BADNUM && y[3] !== BADNUM) {\n if (isHorizontal) {\n shape += \"M\" + x[0] + \",\" + y[1] + \"L\" + x[2] + \",\" + y[2] + \"H\" + x[3] + \"L\" + x[1] + \",\" + y[1] + \"Z\";\n } else {\n shape += \"M\" + x[1] + \",\" + y[1] + \"L\" + x[2] + \",\" + y[3] + \"V\" + y[2] + \"L\" + x[1] + \",\" + y[0] + \"Z\";\n }\n }\n if (shape === \"\") shape = \"M0,0Z\";\n Lib.ensureSingle(d3.select(this), \"path\").attr(\"d\", shape).call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n }\n function plotConnectorLines(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(traceLayer, cdModule, \"trace bars\").each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n var group = Lib.ensureSingle(plotGroup, \"g\", \"lines\");\n if (!trace.connector || !trace.connector.visible || !trace.connector.line.width) {\n group.remove();\n return;\n }\n var isHorizontal = trace.orientation === \"h\";\n var connectors = group.selectAll(\"g.line\").data(Lib.identity);\n connectors.enter().append(\"g\").classed(\"line\", true);\n connectors.exit().remove();\n var len = connectors.size();\n connectors.each(function(di, i) {\n if (i !== len - 1 && !di.cNext) return;\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n var shape = \"\";\n if (x[3] !== void 0 && y[3] !== void 0) {\n if (isHorizontal) {\n shape += \"M\" + x[0] + \",\" + y[1] + \"L\" + x[2] + \",\" + y[2];\n shape += \"M\" + x[1] + \",\" + y[1] + \"L\" + x[3] + \",\" + y[2];\n } else {\n shape += \"M\" + x[1] + \",\" + y[1] + \"L\" + x[2] + \",\" + y[3];\n shape += \"M\" + x[1] + \",\" + y[0] + \"L\" + x[2] + \",\" + y[2];\n }\n }\n if (shape === \"\") shape = \"M0,0Z\";\n Lib.ensureSingle(d3.select(this), \"path\").attr(\"d\", shape).call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n }\n function getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n s[3] = sAxis.c2p(di.nextS1, true);\n p[3] = pAxis.c2p(di.nextP1, true);\n return isHorizontal ? [s, p] : [p, s];\n }\n }\n });\n\n // src/traces/funnel/style.js\n var require_style9 = __commonJS({\n \"src/traces/funnel/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var barStyle = require_style4();\n var resizeText = require_uniform_text().resizeText;\n var styleTextPoints = barStyle.styleTextPoints;\n function style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g[class^=\"funnellayer\"]').selectAll(\"g.trace\");\n resizeText(gd, s, \"funnel\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n gTrace.selectAll(\".point > path\").each(function(di) {\n if (!di.isBlank) {\n var cont = trace.marker;\n d3.select(this).call(Color2.fill, di.mc || cont.color).call(Color2.stroke, di.mlc || cont.line.color).call(Drawing.dashLine, cont.line.dash, di.mlw || cont.line.width).style(\"opacity\", trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n styleTextPoints(gTrace, trace, gd);\n gTrace.selectAll(\".regions\").each(function() {\n d3.select(this).selectAll(\"path\").style(\"stroke-width\", 0).call(Color2.fill, trace.connector.fillcolor);\n });\n gTrace.selectAll(\".lines\").each(function() {\n var cont = trace.connector.line;\n Drawing.lineGroupStyle(\n d3.select(this).selectAll(\"path\"),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n }\n module.exports = {\n style\n };\n }\n });\n\n // src/traces/funnel/hover.js\n var require_hover11 = __commonJS({\n \"src/traces/funnel/hover.js\"(exports, module) {\n \"use strict\";\n var opacity = require_color().opacity;\n var hoverOnBars = require_hover3().hoverOnBars;\n var formatPercent = require_lib().formatPercent;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var point = hoverOnBars(pointData, xval, yval, hovermode, opts);\n if (!point) return;\n var cd = point.cd;\n var trace = cd[0].trace;\n var isHorizontal = trace.orientation === \"h\";\n var index = point.index;\n var di = cd[index];\n var sizeLetter = isHorizontal ? \"x\" : \"y\";\n point[sizeLetter + \"LabelVal\"] = di.s;\n point.percentInitial = di.begR;\n point.percentInitialLabel = formatPercent(di.begR, 1);\n point.percentPrevious = di.difR;\n point.percentPreviousLabel = formatPercent(di.difR, 1);\n point.percentTotal = di.sumR;\n point.percentTotalLabel = formatPercent(di.sumR, 1);\n var hoverinfo = di.hi || trace.hoverinfo;\n var text = [];\n if (hoverinfo && hoverinfo !== \"none\" && hoverinfo !== \"skip\") {\n var isAll = hoverinfo === \"all\";\n var parts = hoverinfo.split(\"+\");\n var hasFlag = function(flag) {\n return isAll || parts.indexOf(flag) !== -1;\n };\n if (hasFlag(\"percent initial\")) {\n text.push(point.percentInitialLabel + \" of initial\");\n }\n if (hasFlag(\"percent previous\")) {\n text.push(point.percentPreviousLabel + \" of previous\");\n }\n if (hasFlag(\"percent total\")) {\n text.push(point.percentTotalLabel + \" of total\");\n }\n }\n point.extraText = text.join(\"
\");\n point.color = getTraceColor(trace, di);\n return [point];\n };\n function getTraceColor(trace, di) {\n var cont = trace.marker;\n var mc = di.mc || cont.color;\n var mlc = di.mlc || cont.line.color;\n var mlw = di.mlw || cont.line.width;\n if (opacity(mc)) return mc;\n else if (opacity(mlc) && mlw) return mlc;\n }\n }\n });\n\n // src/traces/funnel/event_data.js\n var require_event_data5 = __commonJS({\n \"src/traces/funnel/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.x = \"xVal\" in pt ? pt.xVal : pt.x;\n out.y = \"yVal\" in pt ? pt.yVal : pt.y;\n if (\"percentInitial\" in pt) out.percentInitial = pt.percentInitial;\n if (\"percentPrevious\" in pt) out.percentPrevious = pt.percentPrevious;\n if (\"percentTotal\" in pt) out.percentTotal = pt.percentTotal;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n return out;\n };\n }\n });\n\n // src/traces/funnel/index.js\n var require_funnel = __commonJS({\n \"src/traces/funnel/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes32(),\n layoutAttributes: require_layout_attributes10(),\n supplyDefaults: require_defaults28().supplyDefaults,\n crossTraceDefaults: require_defaults28().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults9(),\n calc: require_calc13(),\n crossTraceCalc: require_cross_trace_calc5(),\n plot: require_plot9(),\n style: require_style9().style,\n hoverPoints: require_hover11(),\n eventData: require_event_data5(),\n selectPoints: require_select3(),\n moduleType: \"trace\",\n name: \"funnel\",\n basePlotModule: require_cartesian(),\n categories: [\"bar-like\", \"cartesian\", \"svg\", \"oriented\", \"showLegend\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/funnel.js\n var require_funnel2 = __commonJS({\n \"lib/funnel.js\"(exports, module) {\n \"use strict\";\n module.exports = require_funnel();\n }\n });\n\n // src/traces/waterfall/constants.js\n var require_constants18 = __commonJS({\n \"src/traces/waterfall/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n eventDataKeys: [\n \"initial\",\n \"delta\",\n \"final\"\n ]\n };\n }\n });\n\n // src/traces/waterfall/attributes.js\n var require_attributes33 = __commonJS({\n \"src/traces/waterfall/attributes.js\"(exports, module) {\n \"use strict\";\n var barAttrs = require_attributes23();\n var lineAttrs = require_attributes12().line;\n var baseAttrs = require_attributes2();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var constants = require_constants18();\n var extendFlat = require_extend().extendFlat;\n var Color2 = require_color();\n function directionAttrs(dirTxt) {\n return {\n marker: {\n color: extendFlat({}, barAttrs.marker.color, {\n arrayOk: false,\n editType: \"style\"\n }),\n line: {\n color: extendFlat({}, barAttrs.marker.line.color, {\n arrayOk: false,\n editType: \"style\"\n }),\n width: extendFlat({}, barAttrs.marker.line.width, {\n arrayOk: false,\n editType: \"style\"\n }),\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"style\"\n };\n }\n module.exports = {\n measure: {\n valType: \"data_array\",\n dflt: [],\n editType: \"calc\"\n },\n base: {\n valType: \"number\",\n dflt: null,\n arrayOk: false,\n editType: \"calc\"\n },\n x: barAttrs.x,\n x0: barAttrs.x0,\n dx: barAttrs.dx,\n y: barAttrs.y,\n y0: barAttrs.y0,\n dy: barAttrs.dy,\n xperiod: barAttrs.xperiod,\n yperiod: barAttrs.yperiod,\n xperiod0: barAttrs.xperiod0,\n yperiod0: barAttrs.yperiod0,\n xperiodalignment: barAttrs.xperiodalignment,\n yperiodalignment: barAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n hovertext: barAttrs.hovertext,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"name\", \"x\", \"y\", \"text\", \"initial\", \"delta\", \"final\"]\n }),\n textinfo: {\n valType: \"flaglist\",\n flags: [\"label\", \"text\", \"initial\", \"delta\", \"final\"],\n extras: [\"none\"],\n editType: \"plot\",\n arrayOk: false\n },\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\"])\n }),\n text: barAttrs.text,\n textposition: barAttrs.textposition,\n insidetextanchor: barAttrs.insidetextanchor,\n textangle: barAttrs.textangle,\n textfont: barAttrs.textfont,\n insidetextfont: barAttrs.insidetextfont,\n outsidetextfont: barAttrs.outsidetextfont,\n constraintext: barAttrs.constraintext,\n cliponaxis: barAttrs.cliponaxis,\n orientation: barAttrs.orientation,\n offset: barAttrs.offset,\n width: barAttrs.width,\n increasing: directionAttrs(\"increasing\"),\n decreasing: directionAttrs(\"decreasing\"),\n totals: directionAttrs(\"intermediate sums and total\"),\n connector: {\n line: {\n color: extendFlat({}, lineAttrs.color, { dflt: Color2.defaultLine }),\n width: extendFlat({}, lineAttrs.width, {\n editType: \"plot\"\n // i.e. to adjust bars is mode: 'between'. See https://github.com/plotly/plotly.js/issues/3787\n }),\n dash: lineAttrs.dash,\n editType: \"plot\"\n },\n mode: {\n valType: \"enumerated\",\n values: [\"spanning\", \"between\"],\n dflt: \"between\",\n editType: \"plot\"\n },\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n zorder: barAttrs.zorder\n };\n }\n });\n\n // src/traces/waterfall/layout_attributes.js\n var require_layout_attributes11 = __commonJS({\n \"src/traces/waterfall/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n waterfallmode: {\n valType: \"enumerated\",\n values: [\"group\", \"overlay\"],\n dflt: \"group\",\n editType: \"calc\"\n },\n waterfallgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n },\n waterfallgroupgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/constants/delta.js\n var require_delta = __commonJS({\n \"src/constants/delta.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n INCREASING: {\n COLOR: \"#3D9970\",\n SYMBOL: \"\\u25B2\"\n },\n DECREASING: {\n COLOR: \"#FF4136\",\n SYMBOL: \"\\u25BC\"\n }\n };\n }\n });\n\n // src/traces/waterfall/defaults.js\n var require_defaults29 = __commonJS({\n \"src/traces/waterfall/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleGroupingDefaults = require_grouping_defaults();\n var handleText = require_defaults19().handleText;\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var attributes = require_attributes33();\n var Color2 = require_color();\n var delta = require_delta();\n var INCREASING_COLOR = delta.INCREASING.COLOR;\n var DECREASING_COLOR = delta.DECREASING.COLOR;\n var TOTALS_COLOR = \"#4499FF\";\n function handleDirection(coerce, direction, defaultColor) {\n coerce(direction + \".marker.color\", defaultColor);\n coerce(direction + \".marker.line.color\", Color2.defaultLine);\n coerce(direction + \".marker.line.width\");\n }\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"measure\");\n coerce(\"orientation\", traceOut.x && !traceOut.y ? \"h\" : \"v\");\n coerce(\"base\");\n coerce(\"offset\");\n coerce(\"width\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n if (traceOut.textposition !== \"none\") {\n coerce(\"texttemplate\");\n if (!traceOut.texttemplate) coerce(\"textinfo\");\n }\n handleDirection(coerce, \"increasing\", INCREASING_COLOR);\n handleDirection(coerce, \"decreasing\", DECREASING_COLOR);\n handleDirection(coerce, \"totals\", TOTALS_COLOR);\n var connectorVisible = coerce(\"connector.visible\");\n if (connectorVisible) {\n coerce(\"connector.mode\");\n var connectorLineWidth = coerce(\"connector.line.width\");\n if (connectorLineWidth) {\n coerce(\"connector.line.color\");\n coerce(\"connector.line.dash\");\n }\n }\n coerce(\"zorder\");\n }\n function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n if (fullLayout.waterfallmode === \"group\") {\n for (var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, fullLayout.waterfallmode);\n }\n }\n }\n module.exports = {\n supplyDefaults,\n crossTraceDefaults\n };\n }\n });\n\n // src/traces/waterfall/layout_defaults.js\n var require_layout_defaults10 = __commonJS({\n \"src/traces/waterfall/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes11();\n module.exports = function(layoutIn, layoutOut, fullData) {\n var hasTraceType = false;\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.visible && trace.type === \"waterfall\") {\n hasTraceType = true;\n break;\n }\n }\n if (hasTraceType) {\n coerce(\"waterfallmode\");\n coerce(\"waterfallgap\", 0.2);\n coerce(\"waterfallgroupgap\");\n }\n };\n }\n });\n\n // src/traces/waterfall/calc.js\n var require_calc14 = __commonJS({\n \"src/traces/waterfall/calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var mergeArray = require_lib().mergeArray;\n var calcSelection = require_calc_selection();\n var BADNUM = require_numerical().BADNUM;\n function isAbsolute(a) {\n return a === \"a\" || a === \"absolute\";\n }\n function isTotal(a) {\n return a === \"t\" || a === \"total\";\n }\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var size, pos, origPos, pObj, hasPeriod, pLetter;\n if (trace.orientation === \"h\") {\n size = xa.makeCalcdata(trace, \"x\");\n origPos = ya.makeCalcdata(trace, \"y\");\n pObj = alignPeriod(trace, ya, \"y\", origPos);\n hasPeriod = !!trace.yperiodalignment;\n pLetter = \"y\";\n } else {\n size = ya.makeCalcdata(trace, \"y\");\n origPos = xa.makeCalcdata(trace, \"x\");\n pObj = alignPeriod(trace, xa, \"x\", origPos);\n hasPeriod = !!trace.xperiodalignment;\n pLetter = \"x\";\n }\n pos = pObj.vals;\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n var previousSum = 0;\n var newSize;\n var hasTotals = false;\n for (var i = 0; i < serieslen; i++) {\n var amount = size[i] || 0;\n var connectToNext = false;\n if (size[i] !== BADNUM || isTotal(trace.measure[i]) || isAbsolute(trace.measure[i])) {\n if (i + 1 < serieslen && (size[i + 1] !== BADNUM || isTotal(trace.measure[i + 1]) || isAbsolute(trace.measure[i + 1]))) {\n connectToNext = true;\n }\n }\n var cdi = cd[i] = {\n i,\n p: pos[i],\n s: amount,\n rawS: amount,\n cNext: connectToNext\n };\n if (isAbsolute(trace.measure[i])) {\n previousSum = cdi.s;\n cdi.isSum = true;\n cdi.dir = \"totals\";\n cdi.s = previousSum;\n } else if (isTotal(trace.measure[i])) {\n cdi.isSum = true;\n cdi.dir = \"totals\";\n cdi.s = previousSum;\n } else {\n cdi.isSum = false;\n cdi.dir = cdi.rawS < 0 ? \"decreasing\" : \"increasing\";\n newSize = cdi.s;\n cdi.s = previousSum + newSize;\n previousSum += newSize;\n }\n if (cdi.dir === \"totals\") {\n hasTotals = true;\n }\n if (hasPeriod) {\n cd[i].orig_p = origPos[i];\n cd[i][pLetter + \"End\"] = pObj.ends[i];\n cd[i][pLetter + \"Start\"] = pObj.starts[i];\n }\n if (trace.ids) {\n cdi.id = String(trace.ids[i]);\n }\n cdi.v = (trace.base || 0) + previousSum;\n }\n if (cd.length) cd[0].hasTotals = hasTotals;\n mergeArray(trace.text, cd, \"tx\");\n mergeArray(trace.hovertext, cd, \"htx\");\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/waterfall/cross_trace_calc.js\n var require_cross_trace_calc6 = __commonJS({\n \"src/traces/waterfall/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var setGroupPositions = require_cross_trace_calc().setGroupPositions;\n module.exports = function crossTraceCalc(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var waterfalls = [];\n var waterfallsVert = [];\n var waterfallsHorz = [];\n var cd, i;\n for (i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n if (fullTrace.visible === true && fullTrace.xaxis === xa._id && fullTrace.yaxis === ya._id && fullTrace.type === \"waterfall\") {\n cd = calcdata[i];\n if (fullTrace.orientation === \"h\") {\n waterfallsHorz.push(cd);\n } else {\n waterfallsVert.push(cd);\n }\n waterfalls.push(cd);\n }\n }\n var opts = {\n mode: fullLayout.waterfallmode,\n norm: fullLayout.waterfallnorm,\n gap: fullLayout.waterfallgap,\n groupgap: fullLayout.waterfallgroupgap\n };\n setGroupPositions(gd, xa, ya, waterfallsVert, opts);\n setGroupPositions(gd, ya, xa, waterfallsHorz, opts);\n for (i = 0; i < waterfalls.length; i++) {\n cd = waterfalls[i];\n for (var j = 0; j < cd.length; j++) {\n var di = cd[j];\n if (di.isSum === false) {\n di.s0 += j === 0 ? 0 : cd[j - 1].s;\n }\n if (j + 1 < cd.length) {\n cd[j].nextP0 = cd[j + 1].p0;\n cd[j].nextS0 = cd[j + 1].s0;\n }\n }\n }\n };\n }\n });\n\n // src/traces/waterfall/plot.js\n var require_plot10 = __commonJS({\n \"src/traces/waterfall/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var BADNUM = require_numerical().BADNUM;\n var barPlot = require_plot3();\n var clearMinTextSize = require_uniform_text().clearMinTextSize;\n module.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n clearMinTextSize(\"waterfall\", fullLayout);\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.waterfallmode,\n norm: fullLayout.waterfallmode,\n gap: fullLayout.waterfallgap,\n groupgap: fullLayout.waterfallgroupgap\n });\n plotConnectors(gd, plotinfo, cdModule, traceLayer);\n };\n function plotConnectors(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(traceLayer, cdModule, \"trace bars\").each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n var group = Lib.ensureSingle(plotGroup, \"g\", \"lines\");\n if (!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n var isHorizontal = trace.orientation === \"h\";\n var mode = trace.connector.mode;\n var connectors = group.selectAll(\"g.line\").data(Lib.identity);\n connectors.enter().append(\"g\").classed(\"line\", true);\n connectors.exit().remove();\n var len = connectors.size();\n connectors.each(function(di, i) {\n if (i !== len - 1 && !di.cNext) return;\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n var shape = \"\";\n if (x[0] !== BADNUM && y[0] !== BADNUM && x[1] !== BADNUM && y[1] !== BADNUM) {\n if (mode === \"spanning\") {\n if (!di.isSum && i > 0) {\n if (isHorizontal) {\n shape += \"M\" + x[0] + \",\" + y[1] + \"V\" + y[0];\n } else {\n shape += \"M\" + x[1] + \",\" + y[0] + \"H\" + x[0];\n }\n }\n }\n if (mode !== \"between\") {\n if (di.isSum || i < len - 1) {\n if (isHorizontal) {\n shape += \"M\" + x[1] + \",\" + y[0] + \"V\" + y[1];\n } else {\n shape += \"M\" + x[0] + \",\" + y[1] + \"H\" + x[1];\n }\n }\n }\n if (x[2] !== BADNUM && y[2] !== BADNUM) {\n if (isHorizontal) {\n shape += \"M\" + x[1] + \",\" + y[1] + \"V\" + y[2];\n } else {\n shape += \"M\" + x[1] + \",\" + y[1] + \"H\" + x[2];\n }\n }\n }\n if (shape === \"\") shape = \"M0,0Z\";\n Lib.ensureSingle(d3.select(this), \"path\").attr(\"d\", shape).call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n }\n function getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n return isHorizontal ? [s, p] : [p, s];\n }\n }\n });\n\n // src/traces/waterfall/style.js\n var require_style10 = __commonJS({\n \"src/traces/waterfall/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var barStyle = require_style4();\n var resizeText = require_uniform_text().resizeText;\n var styleTextPoints = barStyle.styleTextPoints;\n function style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g[class^=\"waterfalllayer\"]').selectAll(\"g.trace\");\n resizeText(gd, s, \"waterfall\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n gTrace.selectAll(\".point > path\").each(function(di) {\n if (!di.isBlank) {\n var cont = trace[di.dir].marker;\n d3.select(this).call(Color2.fill, cont.color).call(Color2.stroke, cont.line.color).call(Drawing.dashLine, cont.line.dash, cont.line.width).style(\"opacity\", trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n styleTextPoints(gTrace, trace, gd);\n gTrace.selectAll(\".lines\").each(function() {\n var cont = trace.connector.line;\n Drawing.lineGroupStyle(\n d3.select(this).selectAll(\"path\"),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n }\n module.exports = {\n style\n };\n }\n });\n\n // src/traces/waterfall/hover.js\n var require_hover12 = __commonJS({\n \"src/traces/waterfall/hover.js\"(exports, module) {\n \"use strict\";\n var hoverLabelText = require_axes().hoverLabelText;\n var opacity = require_color().opacity;\n var hoverOnBars = require_hover3().hoverOnBars;\n var delta = require_delta();\n var DIRSYMBOL = {\n increasing: delta.INCREASING.SYMBOL,\n decreasing: delta.DECREASING.SYMBOL\n };\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var point = hoverOnBars(pointData, xval, yval, hovermode, opts);\n if (!point) return;\n var cd = point.cd;\n var trace = cd[0].trace;\n var isHorizontal = trace.orientation === \"h\";\n var vLetter = isHorizontal ? \"x\" : \"y\";\n var vAxis = isHorizontal ? pointData.xa : pointData.ya;\n function formatNumber(a) {\n return hoverLabelText(vAxis, a, trace[vLetter + \"hoverformat\"]);\n }\n var index = point.index;\n var di = cd[index];\n var size = di.isSum ? di.b + di.s : di.rawS;\n point.initial = di.b + di.s - size;\n point.delta = size;\n point.final = point.initial + point.delta;\n var v = formatNumber(Math.abs(point.delta));\n point.deltaLabel = size < 0 ? \"(\" + v + \")\" : v;\n point.finalLabel = formatNumber(point.final);\n point.initialLabel = formatNumber(point.initial);\n var hoverinfo = di.hi || trace.hoverinfo;\n var text = [];\n if (hoverinfo && hoverinfo !== \"none\" && hoverinfo !== \"skip\") {\n var isAll = hoverinfo === \"all\";\n var parts = hoverinfo.split(\"+\");\n var hasFlag = function(flag) {\n return isAll || parts.indexOf(flag) !== -1;\n };\n if (!di.isSum) {\n if (hasFlag(\"final\") && (isHorizontal ? !hasFlag(\"x\") : !hasFlag(\"y\"))) {\n text.push(point.finalLabel);\n }\n if (hasFlag(\"delta\")) {\n if (size < 0) {\n text.push(point.deltaLabel + \" \" + DIRSYMBOL.decreasing);\n } else {\n text.push(point.deltaLabel + \" \" + DIRSYMBOL.increasing);\n }\n }\n if (hasFlag(\"initial\")) {\n text.push(\"Initial: \" + point.initialLabel);\n }\n }\n }\n if (text.length) point.extraText = text.join(\"
\");\n point.color = getTraceColor(trace, di);\n return [point];\n };\n function getTraceColor(trace, di) {\n var cont = trace[di.dir].marker;\n var mc = cont.color;\n var mlc = cont.line.color;\n var mlw = cont.line.width;\n if (opacity(mc)) return mc;\n else if (opacity(mlc) && mlw) return mlc;\n }\n }\n });\n\n // src/traces/waterfall/event_data.js\n var require_event_data6 = __commonJS({\n \"src/traces/waterfall/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.x = \"xVal\" in pt ? pt.xVal : pt.x;\n out.y = \"yVal\" in pt ? pt.yVal : pt.y;\n if (\"initial\" in pt) out.initial = pt.initial;\n if (\"delta\" in pt) out.delta = pt.delta;\n if (\"final\" in pt) out.final = pt.final;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n return out;\n };\n }\n });\n\n // src/traces/waterfall/index.js\n var require_waterfall = __commonJS({\n \"src/traces/waterfall/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes33(),\n layoutAttributes: require_layout_attributes11(),\n supplyDefaults: require_defaults29().supplyDefaults,\n crossTraceDefaults: require_defaults29().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults10(),\n calc: require_calc14(),\n crossTraceCalc: require_cross_trace_calc6(),\n plot: require_plot10(),\n style: require_style10().style,\n hoverPoints: require_hover12(),\n eventData: require_event_data6(),\n selectPoints: require_select3(),\n moduleType: \"trace\",\n name: \"waterfall\",\n basePlotModule: require_cartesian(),\n categories: [\"bar-like\", \"cartesian\", \"svg\", \"oriented\", \"showLegend\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/waterfall.js\n var require_waterfall2 = __commonJS({\n \"lib/waterfall.js\"(exports, module) {\n \"use strict\";\n module.exports = require_waterfall();\n }\n });\n\n // src/traces/image/constants.js\n var require_constants19 = __commonJS({\n \"src/traces/image/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n colormodel: {\n // min and max define the numerical range accepted in CSS\n // If z(min|max)Dflt are not defined, z(min|max) will default to min/max\n rgb: {\n min: [0, 0, 0],\n max: [255, 255, 255],\n fmt: function(c) {\n return c.slice(0, 3);\n },\n suffix: [\"\", \"\", \"\"]\n },\n rgba: {\n min: [0, 0, 0, 0],\n max: [255, 255, 255, 1],\n fmt: function(c) {\n return c.slice(0, 4);\n },\n suffix: [\"\", \"\", \"\", \"\"]\n },\n rgba256: {\n colormodel: \"rgba\",\n // because rgba256 is not an accept colormodel in CSS\n zminDflt: [0, 0, 0, 0],\n zmaxDflt: [255, 255, 255, 255],\n min: [0, 0, 0, 0],\n max: [255, 255, 255, 1],\n fmt: function(c) {\n return c.slice(0, 4);\n },\n suffix: [\"\", \"\", \"\", \"\"]\n },\n hsl: {\n min: [0, 0, 0],\n max: [360, 100, 100],\n fmt: function(c) {\n var p = c.slice(0, 3);\n p[1] = p[1] + \"%\";\n p[2] = p[2] + \"%\";\n return p;\n },\n suffix: [\"\\xB0\", \"%\", \"%\"]\n },\n hsla: {\n min: [0, 0, 0, 0],\n max: [360, 100, 100, 1],\n fmt: function(c) {\n var p = c.slice(0, 4);\n p[1] = p[1] + \"%\";\n p[2] = p[2] + \"%\";\n return p;\n },\n suffix: [\"\\xB0\", \"%\", \"%\", \"\"]\n }\n }\n };\n }\n });\n\n // src/traces/image/attributes.js\n var require_attributes34 = __commonJS({\n \"src/traces/image/attributes.js\"(exports, module) {\n \"use strict\";\n var baseAttrs = require_attributes2();\n var zorder = require_attributes12().zorder;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var colormodel = require_constants19().colormodel;\n var cm = [\"rgb\", \"rgba\", \"rgba256\", \"hsl\", \"hsla\"];\n var zminDesc = [];\n var zmaxDesc = [];\n for (i = 0; i < cm.length; i++) {\n cr = colormodel[cm[i]];\n zminDesc.push(\"For the `\" + cm[i] + \"` colormodel, it is [\" + (cr.zminDflt || cr.min).join(\", \") + \"].\");\n zmaxDesc.push(\"For the `\" + cm[i] + \"` colormodel, it is [\" + (cr.zmaxDflt || cr.max).join(\", \") + \"].\");\n }\n var cr;\n var i;\n module.exports = extendFlat({\n source: {\n valType: \"string\",\n editType: \"calc\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n colormodel: {\n valType: \"enumerated\",\n values: cm,\n editType: \"calc\"\n },\n zsmooth: {\n valType: \"enumerated\",\n values: [\"fast\", false],\n dflt: false,\n editType: \"plot\"\n },\n zmin: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" }\n ],\n editType: \"calc\"\n },\n zmax: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" }\n ],\n editType: \"calc\"\n },\n x0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\"\n },\n y0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\"\n },\n dx: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n dy: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n text: {\n valType: \"data_array\",\n editType: \"plot\"\n },\n hovertext: {\n valType: \"data_array\",\n editType: \"plot\"\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"x\", \"y\", \"z\", \"color\", \"name\", \"text\"],\n dflt: \"x+y+z+text+name\"\n }),\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"z\", \"color\", \"colormodel\"]\n }),\n zorder\n });\n }\n });\n\n // src/traces/image/defaults.js\n var require_defaults30 = __commonJS({\n \"src/traces/image/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes34();\n var constants = require_constants19();\n var dataUri = require_helpers10().IMAGE_URL_PREFIX;\n module.exports = function supplyDefaults(traceIn, traceOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n coerce(\"source\");\n if (traceOut.source && !traceOut.source.match(dataUri)) delete traceOut.source;\n traceOut._hasSource = !!traceOut.source;\n var z = coerce(\"z\");\n traceOut._hasZ = !(z === void 0 || !z.length || !z[0] || !z[0].length);\n if (!traceOut._hasZ && !traceOut._hasSource) {\n traceOut.visible = false;\n return;\n }\n coerce(\"x0\");\n coerce(\"y0\");\n coerce(\"dx\");\n coerce(\"dy\");\n var cm;\n if (traceOut._hasZ) {\n coerce(\"colormodel\", \"rgb\");\n cm = constants.colormodel[traceOut.colormodel];\n coerce(\"zmin\", cm.zminDflt || cm.min);\n coerce(\"zmax\", cm.zmaxDflt || cm.max);\n } else if (traceOut._hasSource) {\n traceOut.colormodel = \"rgba256\";\n cm = constants.colormodel[traceOut.colormodel];\n traceOut.zmin = cm.zminDflt;\n traceOut.zmax = cm.zmaxDflt;\n }\n coerce(\"zsmooth\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n traceOut._length = null;\n coerce(\"zorder\");\n };\n }\n });\n\n // node_modules/inherits/inherits_browser.js\n var require_inherits_browser = __commonJS({\n \"node_modules/inherits/inherits_browser.js\"(exports, module) {\n if (typeof Object.create === \"function\") {\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 module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js\n var require_stream_browser = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js\"(exports, module) {\n module.exports = require_events().EventEmitter;\n }\n });\n\n // node_modules/base64-js/index.js\n var require_base64_js = __commonJS({\n \"node_modules/base64-js/index.js\"(exports) {\n \"use strict\";\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n }\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function 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 function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join(\"\");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(\n uint8,\n i2,\n i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength\n ));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(\n lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\"\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(\n lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\"\n );\n }\n return parts.join(\"\");\n }\n }\n });\n\n // node_modules/ieee754/index.js\n var require_ieee754 = __commonJS({\n \"node_modules/ieee754/index.js\"(exports) {\n exports.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 i += d;\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 exports.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 value = Math.abs(value);\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 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 for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n });\n\n // node_modules/buffer/index.js\n var require_buffer = __commonJS({\n \"node_modules/buffer/index.js\"(exports) {\n \"use strict\";\n var base64 = require_base64_js();\n var ieee754 = require_ieee754();\n var customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") : null;\n exports.Buffer = Buffer2;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer2.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer2.TYPED_ARRAY_SUPPORT && typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(\n \"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"\n );\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\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 Object.defineProperty(Buffer2.prototype, \"parent\", {\n enumerable: true,\n get: function() {\n if (!Buffer2.isBuffer(this)) return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer2.prototype, \"offset\", {\n enumerable: true,\n get: function() {\n if (!Buffer2.isBuffer(this)) return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n }\n const buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer2.prototype);\n return buf;\n }\n function Buffer2(arg, encodingOrOffset, length) {\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 Buffer2.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError(\n \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof value\n );\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\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 const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer2.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b) return b;\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer2.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\n throw new TypeError(\n \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof value\n );\n }\n Buffer2.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer2.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer2, Uint8Array);\n function 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 function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer2.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer2.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer2.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n if (!Buffer2.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf = createBuffer(length);\n const actual = buf.write(string, encoding);\n if (actual !== length) {\n buf = buf.slice(0, actual);\n }\n return buf;\n }\n function 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 function 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 function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds');\n }\n let buf;\n if (byteOffset === void 0 && length === void 0) {\n buf = new Uint8Array(array);\n } else if (length === void 0) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf, Buffer2.prototype);\n return buf;\n }\n function fromObject(obj) {\n if (Buffer2.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf = createBuffer(len);\n if (buf.length === 0) {\n return buf;\n }\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer2.alloc(+length);\n }\n Buffer2.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer2.prototype;\n };\n Buffer2.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer2.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer2.from(b, b.offset, b.byteLength);\n if (!Buffer2.isBuffer(a) || !Buffer2.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n );\n }\n if (a === b) return 0;\n let x = a.length;\n let y = b.length;\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 if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n Buffer2.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 Buffer2.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n if (list.length === 0) {\n return Buffer2.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer2.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 (!Buffer2.isBuffer(buf)) buf = Buffer2.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 (!Buffer2.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 function byteLength(string, encoding) {\n if (Buffer2.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. Received type ' + typeof string\n );\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0;\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;\n }\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer2.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return \"\";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return \"\";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return \"\";\n }\n if (!encoding) encoding = \"utf8\";\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n case \"ascii\":\n return asciiSlice(this, start, end);\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n case \"base64\":\n return base64Slice(this, start, end);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer2.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer2.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 Buffer2.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 Buffer2.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 Buffer2.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 Buffer2.prototype.toLocaleString = Buffer2.prototype.toString;\n Buffer2.prototype.equals = function equals(b) {\n if (!Buffer2.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer2.compare(this, b) === 0;\n };\n Buffer2.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 \"\";\n };\n if (customInspectSymbol) {\n Buffer2.prototype[customInspectSymbol] = Buffer2.prototype.inspect;\n }\n Buffer2.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer2.from(target, target.offset, target.byteLength);\n }\n if (!Buffer2.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target\n );\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\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 start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\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 if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0) return -1;\n if (typeof byteOffset === \"string\") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\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 if (typeof val === \"string\") {\n val = Buffer2.from(val, encoding);\n }\n if (Buffer2.isBuffer(val)) {\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 & 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 throw new TypeError(\"val must be string, number or Buffer\");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === \"ucs2\" || encoding === \"ucs-2\" || 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 function read(buf, i2) {\n if (indexSize === 1) {\n return buf[i2];\n } else {\n return buf.readUInt16BE(i2 * indexSize);\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 return -1;\n }\n Buffer2.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer2.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer2.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function 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 const strLen = string.length;\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 function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n Buffer2.prototype.write = function write(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0) encoding = \"utf8\";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error(\n \"Buffer.write(string, encoding, offset[, length]) is no longer supported\"\n );\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n if (!encoding) encoding = \"utf8\";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n case \"base64\":\n return base64Write(this, string, offset, length);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer2.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function 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 function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\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 & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\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 function asciiSlice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n }\n function hexSlice(buf, start, end) {\n const len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n let out = \"\";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n return out;\n }\n function utf16leSlice(buf, start, end) {\n const bytes = buf.slice(start, end);\n let res = \"\";\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 Buffer2.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer2.prototype);\n return newBuf;\n };\n function 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 Buffer2.prototype.readUintLE = Buffer2.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer2.prototype.readUintBE = Buffer2.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer2.prototype.readUint8 = Buffer2.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer2.prototype.readUint16LE = Buffer2.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 Buffer2.prototype.readUint16BE = Buffer2.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 Buffer2.prototype.readUint32LE = Buffer2.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer2.prototype.readUint32BE = Buffer2.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer2.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 === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer2.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 === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer2.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer2.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer2.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer2.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 & 32768 ? val | 4294901760 : val;\n };\n Buffer2.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 & 32768 ? val | 4294901760 : val;\n };\n Buffer2.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer2.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer2.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 === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer2.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 === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer2.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 Buffer2.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 Buffer2.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 Buffer2.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 function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer2.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 Buffer2.prototype.writeUintLE = Buffer2.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeUintBE = Buffer2.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeUint8 = Buffer2.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer2.prototype.writeUint16LE = Buffer2.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer2.prototype.writeUint16BE = Buffer2.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer2.prototype.writeUint32LE = Buffer2.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer2.prototype.writeUint32BE = Buffer2.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\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(4294967295));\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 function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\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(4294967295));\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 Buffer2.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer2.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer2.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer2.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer2.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer2.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer2.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer2.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer2.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n function 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 function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer2.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer2.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer2.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer2.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer2.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer2.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 if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\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 if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\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 return len;\n };\n Buffer2.prototype.fill = function fill(val, start, end, encoding) {\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 !== void 0 && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n if (typeof encoding === \"string\" && !Buffer2.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 || encoding === \"latin1\") {\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 if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val) val = 0;\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 = Buffer2.isBuffer(val) ? val : Buffer2.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E2(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, \"message\", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E2(\n \"ERR_BUFFER_OUT_OF_BOUNDS\",\n function(name2) {\n if (name2) {\n return `${name2} is outside of buffer bounds`;\n }\n return \"Attempt to access memory outside buffer bounds\";\n },\n RangeError\n );\n E2(\n \"ERR_INVALID_ARG_TYPE\",\n function(name2, actual) {\n return `The \"${name2}\" argument must be of type number. Received type ${typeof actual}`;\n },\n TypeError\n );\n E2(\n \"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 },\n RangeError\n );\n function 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 function checkBounds(buf, offset, byteLength2) {\n validateNumber(offset, \"offset\");\n if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) {\n boundsError(offset, buf.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === \"bigint\" ? \"n\" : \"\";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 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, byteLength2);\n }\n function validateNumber(value, name2) {\n if (typeof value !== \"number\") {\n throw new errors.ERR_INVALID_ARG_TYPE(name2, \"number\", value);\n }\n }\n function 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 if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(\n type || \"offset\",\n `>= ${type ? 1 : 0} and <= ${length}`,\n value\n );\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split(\"=\")[0];\n str = str.trim().replace(INVALID_BASE64_RE, \"\");\n if (str.length < 2) return \"\";\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(\n codePoint >> 6 | 192,\n codePoint & 63 | 128\n );\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(\n codePoint >> 12 | 224,\n codePoint >> 6 & 63 | 128,\n codePoint & 63 | 128\n );\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) break;\n bytes.push(\n codePoint >> 18 | 240,\n codePoint >> 12 & 63 | 128,\n codePoint >> 6 & 63 | 128,\n codePoint & 63 | 128\n );\n } else {\n throw new Error(\"Invalid code point\");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function 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 c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function 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 function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var 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 function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n }\n });\n\n // node_modules/has-symbols/shams.js\n var require_shams = __commonJS({\n \"node_modules/has-symbols/shams.js\"(exports, module) {\n \"use strict\";\n module.exports = function hasSymbols() {\n if (typeof Symbol !== \"function\" || typeof Object.getOwnPropertySymbols !== \"function\") {\n return false;\n }\n if (typeof Symbol.iterator === \"symbol\") {\n return true;\n }\n var obj = {};\n var sym = Symbol(\"test\");\n var symObj = Object(sym);\n if (typeof sym === \"string\") {\n return false;\n }\n if (Object.prototype.toString.call(sym) !== \"[object Symbol]\") {\n return false;\n }\n if (Object.prototype.toString.call(symObj) !== \"[object Symbol]\") {\n return false;\n }\n var symVal = 42;\n obj[sym] = symVal;\n for (sym in obj) {\n return false;\n }\n if (typeof Object.keys === \"function\" && Object.keys(obj).length !== 0) {\n return false;\n }\n if (typeof Object.getOwnPropertyNames === \"function\" && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n var syms = Object.getOwnPropertySymbols(obj);\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n if (typeof Object.getOwnPropertyDescriptor === \"function\") {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n return true;\n };\n }\n });\n\n // node_modules/has-tostringtag/shams.js\n var require_shams2 = __commonJS({\n \"node_modules/has-tostringtag/shams.js\"(exports, module) {\n \"use strict\";\n var hasSymbols = require_shams();\n module.exports = function hasToStringTagShams() {\n return hasSymbols() && !!Symbol.toStringTag;\n };\n }\n });\n\n // node_modules/es-errors/index.js\n var require_es_errors = __commonJS({\n \"node_modules/es-errors/index.js\"(exports, module) {\n \"use strict\";\n module.exports = Error;\n }\n });\n\n // node_modules/es-errors/eval.js\n var require_eval = __commonJS({\n \"node_modules/es-errors/eval.js\"(exports, module) {\n \"use strict\";\n module.exports = EvalError;\n }\n });\n\n // node_modules/es-errors/range.js\n var require_range = __commonJS({\n \"node_modules/es-errors/range.js\"(exports, module) {\n \"use strict\";\n module.exports = RangeError;\n }\n });\n\n // node_modules/es-errors/ref.js\n var require_ref = __commonJS({\n \"node_modules/es-errors/ref.js\"(exports, module) {\n \"use strict\";\n module.exports = ReferenceError;\n }\n });\n\n // node_modules/es-errors/syntax.js\n var require_syntax = __commonJS({\n \"node_modules/es-errors/syntax.js\"(exports, module) {\n \"use strict\";\n module.exports = SyntaxError;\n }\n });\n\n // node_modules/es-errors/type.js\n var require_type = __commonJS({\n \"node_modules/es-errors/type.js\"(exports, module) {\n \"use strict\";\n module.exports = TypeError;\n }\n });\n\n // node_modules/es-errors/uri.js\n var require_uri = __commonJS({\n \"node_modules/es-errors/uri.js\"(exports, module) {\n \"use strict\";\n module.exports = URIError;\n }\n });\n\n // node_modules/has-symbols/index.js\n var require_has_symbols = __commonJS({\n \"node_modules/has-symbols/index.js\"(exports, module) {\n \"use strict\";\n var origSymbol = typeof Symbol !== \"undefined\" && Symbol;\n var hasSymbolSham = require_shams();\n module.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== \"function\") {\n return false;\n }\n if (typeof Symbol !== \"function\") {\n return false;\n }\n if (typeof origSymbol(\"foo\") !== \"symbol\") {\n return false;\n }\n if (typeof Symbol(\"bar\") !== \"symbol\") {\n return false;\n }\n return hasSymbolSham();\n };\n }\n });\n\n // node_modules/has-proto/index.js\n var require_has_proto = __commonJS({\n \"node_modules/has-proto/index.js\"(exports, module) {\n \"use strict\";\n var test = {\n foo: {}\n };\n var $Object = Object;\n module.exports = function hasProto() {\n return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n };\n }\n });\n\n // node_modules/function-bind/implementation.js\n var require_implementation = __commonJS({\n \"node_modules/function-bind/implementation.js\"(exports, module) {\n \"use strict\";\n var ERROR_MESSAGE = \"Function.prototype.bind called on incompatible \";\n var toStr = Object.prototype.toString;\n var max = Math.max;\n var funcType = \"[object Function]\";\n var concatty = function concatty2(a, b) {\n var arr = [];\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 return arr;\n };\n var slicy = function slicy2(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 var 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 module.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 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 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 bound = Function(\"binder\", \"return function (\" + joiny(boundArgs, \",\") + \"){ return binder.apply(this,arguments); }\")(binder);\n if (target.prototype) {\n var Empty = function Empty2() {\n };\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n }\n });\n\n // node_modules/function-bind/index.js\n var require_function_bind = __commonJS({\n \"node_modules/function-bind/index.js\"(exports, module) {\n \"use strict\";\n var implementation = require_implementation();\n module.exports = Function.prototype.bind || implementation;\n }\n });\n\n // node_modules/hasown/index.js\n var require_hasown = __commonJS({\n \"node_modules/hasown/index.js\"(exports, module) {\n \"use strict\";\n var call = Function.prototype.call;\n var $hasOwn = Object.prototype.hasOwnProperty;\n var bind = require_function_bind();\n module.exports = bind.call(call, $hasOwn);\n }\n });\n\n // node_modules/get-intrinsic/index.js\n var require_get_intrinsic = __commonJS({\n \"node_modules/get-intrinsic/index.js\"(exports, module) {\n \"use strict\";\n var undefined2;\n var $Error = require_es_errors();\n var $EvalError = require_eval();\n var $RangeError = require_range();\n var $ReferenceError = require_ref();\n var $SyntaxError = require_syntax();\n var $TypeError = require_type();\n var $URIError = require_uri();\n var $Function = Function;\n var getEvalledConstructor = function(expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + \").constructor;\")();\n } catch (e) {\n }\n };\n var $gOPD = Object.getOwnPropertyDescriptor;\n if ($gOPD) {\n try {\n $gOPD({}, \"\");\n } catch (e) {\n $gOPD = null;\n }\n }\n var throwTypeError = function() {\n throw new $TypeError();\n };\n var ThrowTypeError = $gOPD ? function() {\n try {\n arguments.callee;\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n return $gOPD(arguments, \"callee\").get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n }() : throwTypeError;\n var hasSymbols = require_has_symbols()();\n var hasProto = require_has_proto()();\n var getProto = Object.getPrototypeOf || (hasProto ? function(x) {\n return x.__proto__;\n } : null);\n var needsEval = {};\n var TypedArray = typeof Uint8Array === \"undefined\" || !getProto ? undefined2 : getProto(Uint8Array);\n var INTRINSICS = {\n __proto__: null,\n \"%AggregateError%\": typeof AggregateError === \"undefined\" ? undefined2 : AggregateError,\n \"%Array%\": Array,\n \"%ArrayBuffer%\": typeof ArrayBuffer === \"undefined\" ? undefined2 : ArrayBuffer,\n \"%ArrayIteratorPrototype%\": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,\n \"%AsyncFromSyncIteratorPrototype%\": undefined2,\n \"%AsyncFunction%\": needsEval,\n \"%AsyncGenerator%\": needsEval,\n \"%AsyncGeneratorFunction%\": needsEval,\n \"%AsyncIteratorPrototype%\": needsEval,\n \"%Atomics%\": typeof Atomics === \"undefined\" ? undefined2 : Atomics,\n \"%BigInt%\": typeof BigInt === \"undefined\" ? undefined2 : BigInt,\n \"%BigInt64Array%\": typeof BigInt64Array === \"undefined\" ? undefined2 : BigInt64Array,\n \"%BigUint64Array%\": typeof BigUint64Array === \"undefined\" ? undefined2 : BigUint64Array,\n \"%Boolean%\": Boolean,\n \"%DataView%\": typeof DataView === \"undefined\" ? undefined2 : DataView,\n \"%Date%\": Date,\n \"%decodeURI%\": decodeURI,\n \"%decodeURIComponent%\": decodeURIComponent,\n \"%encodeURI%\": encodeURI,\n \"%encodeURIComponent%\": encodeURIComponent,\n \"%Error%\": $Error,\n \"%eval%\": eval,\n // eslint-disable-line no-eval\n \"%EvalError%\": $EvalError,\n \"%Float32Array%\": typeof Float32Array === \"undefined\" ? undefined2 : Float32Array,\n \"%Float64Array%\": typeof Float64Array === \"undefined\" ? undefined2 : Float64Array,\n \"%FinalizationRegistry%\": typeof FinalizationRegistry === \"undefined\" ? undefined2 : FinalizationRegistry,\n \"%Function%\": $Function,\n \"%GeneratorFunction%\": needsEval,\n \"%Int8Array%\": typeof Int8Array === \"undefined\" ? undefined2 : Int8Array,\n \"%Int16Array%\": typeof Int16Array === \"undefined\" ? undefined2 : Int16Array,\n \"%Int32Array%\": typeof Int32Array === \"undefined\" ? undefined2 : Int32Array,\n \"%isFinite%\": isFinite,\n \"%isNaN%\": isNaN,\n \"%IteratorPrototype%\": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,\n \"%JSON%\": typeof JSON === \"object\" ? JSON : undefined2,\n \"%Map%\": typeof Map === \"undefined\" ? undefined2 : Map,\n \"%MapIteratorPrototype%\": typeof Map === \"undefined\" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),\n \"%Math%\": Math,\n \"%Number%\": Number,\n \"%Object%\": Object,\n \"%parseFloat%\": parseFloat,\n \"%parseInt%\": parseInt,\n \"%Promise%\": typeof Promise === \"undefined\" ? undefined2 : Promise,\n \"%Proxy%\": typeof Proxy === \"undefined\" ? undefined2 : Proxy,\n \"%RangeError%\": $RangeError,\n \"%ReferenceError%\": $ReferenceError,\n \"%Reflect%\": typeof Reflect === \"undefined\" ? undefined2 : Reflect,\n \"%RegExp%\": RegExp,\n \"%Set%\": typeof Set === \"undefined\" ? undefined2 : Set,\n \"%SetIteratorPrototype%\": typeof Set === \"undefined\" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),\n \"%SharedArrayBuffer%\": typeof SharedArrayBuffer === \"undefined\" ? undefined2 : SharedArrayBuffer,\n \"%String%\": String,\n \"%StringIteratorPrototype%\": hasSymbols && getProto ? getProto(\"\"[Symbol.iterator]()) : undefined2,\n \"%Symbol%\": hasSymbols ? Symbol : undefined2,\n \"%SyntaxError%\": $SyntaxError,\n \"%ThrowTypeError%\": ThrowTypeError,\n \"%TypedArray%\": TypedArray,\n \"%TypeError%\": $TypeError,\n \"%Uint8Array%\": typeof Uint8Array === \"undefined\" ? undefined2 : Uint8Array,\n \"%Uint8ClampedArray%\": typeof Uint8ClampedArray === \"undefined\" ? undefined2 : Uint8ClampedArray,\n \"%Uint16Array%\": typeof Uint16Array === \"undefined\" ? undefined2 : Uint16Array,\n \"%Uint32Array%\": typeof Uint32Array === \"undefined\" ? undefined2 : Uint32Array,\n \"%URIError%\": $URIError,\n \"%WeakMap%\": typeof WeakMap === \"undefined\" ? undefined2 : WeakMap,\n \"%WeakRef%\": typeof WeakRef === \"undefined\" ? undefined2 : WeakRef,\n \"%WeakSet%\": typeof WeakSet === \"undefined\" ? undefined2 : WeakSet\n };\n if (getProto) {\n try {\n null.error;\n } catch (e) {\n errorProto = getProto(getProto(e));\n INTRINSICS[\"%Error.prototype%\"] = errorProto;\n }\n }\n var errorProto;\n var doEval = function doEval2(name2) {\n var value;\n if (name2 === \"%AsyncFunction%\") {\n value = getEvalledConstructor(\"async function () {}\");\n } else if (name2 === \"%GeneratorFunction%\") {\n value = getEvalledConstructor(\"function* () {}\");\n } else if (name2 === \"%AsyncGeneratorFunction%\") {\n value = getEvalledConstructor(\"async function* () {}\");\n } else if (name2 === \"%AsyncGenerator%\") {\n var fn = doEval2(\"%AsyncGeneratorFunction%\");\n if (fn) {\n value = fn.prototype;\n }\n } else if (name2 === \"%AsyncIteratorPrototype%\") {\n var gen = doEval2(\"%AsyncGenerator%\");\n if (gen && getProto) {\n value = getProto(gen.prototype);\n }\n }\n INTRINSICS[name2] = value;\n return value;\n };\n var LEGACY_ALIASES = {\n __proto__: null,\n \"%ArrayBufferPrototype%\": [\"ArrayBuffer\", \"prototype\"],\n \"%ArrayPrototype%\": [\"Array\", \"prototype\"],\n \"%ArrayProto_entries%\": [\"Array\", \"prototype\", \"entries\"],\n \"%ArrayProto_forEach%\": [\"Array\", \"prototype\", \"forEach\"],\n \"%ArrayProto_keys%\": [\"Array\", \"prototype\", \"keys\"],\n \"%ArrayProto_values%\": [\"Array\", \"prototype\", \"values\"],\n \"%AsyncFunctionPrototype%\": [\"AsyncFunction\", \"prototype\"],\n \"%AsyncGenerator%\": [\"AsyncGeneratorFunction\", \"prototype\"],\n \"%AsyncGeneratorPrototype%\": [\"AsyncGeneratorFunction\", \"prototype\", \"prototype\"],\n \"%BooleanPrototype%\": [\"Boolean\", \"prototype\"],\n \"%DataViewPrototype%\": [\"DataView\", \"prototype\"],\n \"%DatePrototype%\": [\"Date\", \"prototype\"],\n \"%ErrorPrototype%\": [\"Error\", \"prototype\"],\n \"%EvalErrorPrototype%\": [\"EvalError\", \"prototype\"],\n \"%Float32ArrayPrototype%\": [\"Float32Array\", \"prototype\"],\n \"%Float64ArrayPrototype%\": [\"Float64Array\", \"prototype\"],\n \"%FunctionPrototype%\": [\"Function\", \"prototype\"],\n \"%Generator%\": [\"GeneratorFunction\", \"prototype\"],\n \"%GeneratorPrototype%\": [\"GeneratorFunction\", \"prototype\", \"prototype\"],\n \"%Int8ArrayPrototype%\": [\"Int8Array\", \"prototype\"],\n \"%Int16ArrayPrototype%\": [\"Int16Array\", \"prototype\"],\n \"%Int32ArrayPrototype%\": [\"Int32Array\", \"prototype\"],\n \"%JSONParse%\": [\"JSON\", \"parse\"],\n \"%JSONStringify%\": [\"JSON\", \"stringify\"],\n \"%MapPrototype%\": [\"Map\", \"prototype\"],\n \"%NumberPrototype%\": [\"Number\", \"prototype\"],\n \"%ObjectPrototype%\": [\"Object\", \"prototype\"],\n \"%ObjProto_toString%\": [\"Object\", \"prototype\", \"toString\"],\n \"%ObjProto_valueOf%\": [\"Object\", \"prototype\", \"valueOf\"],\n \"%PromisePrototype%\": [\"Promise\", \"prototype\"],\n \"%PromiseProto_then%\": [\"Promise\", \"prototype\", \"then\"],\n \"%Promise_all%\": [\"Promise\", \"all\"],\n \"%Promise_reject%\": [\"Promise\", \"reject\"],\n \"%Promise_resolve%\": [\"Promise\", \"resolve\"],\n \"%RangeErrorPrototype%\": [\"RangeError\", \"prototype\"],\n \"%ReferenceErrorPrototype%\": [\"ReferenceError\", \"prototype\"],\n \"%RegExpPrototype%\": [\"RegExp\", \"prototype\"],\n \"%SetPrototype%\": [\"Set\", \"prototype\"],\n \"%SharedArrayBufferPrototype%\": [\"SharedArrayBuffer\", \"prototype\"],\n \"%StringPrototype%\": [\"String\", \"prototype\"],\n \"%SymbolPrototype%\": [\"Symbol\", \"prototype\"],\n \"%SyntaxErrorPrototype%\": [\"SyntaxError\", \"prototype\"],\n \"%TypedArrayPrototype%\": [\"TypedArray\", \"prototype\"],\n \"%TypeErrorPrototype%\": [\"TypeError\", \"prototype\"],\n \"%Uint8ArrayPrototype%\": [\"Uint8Array\", \"prototype\"],\n \"%Uint8ClampedArrayPrototype%\": [\"Uint8ClampedArray\", \"prototype\"],\n \"%Uint16ArrayPrototype%\": [\"Uint16Array\", \"prototype\"],\n \"%Uint32ArrayPrototype%\": [\"Uint32Array\", \"prototype\"],\n \"%URIErrorPrototype%\": [\"URIError\", \"prototype\"],\n \"%WeakMapPrototype%\": [\"WeakMap\", \"prototype\"],\n \"%WeakSetPrototype%\": [\"WeakSet\", \"prototype\"]\n };\n var bind = require_function_bind();\n var hasOwn = require_hasown();\n var $concat = bind.call(Function.call, Array.prototype.concat);\n var $spliceApply = bind.call(Function.apply, Array.prototype.splice);\n var $replace = bind.call(Function.call, String.prototype.replace);\n var $strSlice = bind.call(Function.call, String.prototype.slice);\n var $exec = bind.call(Function.call, RegExp.prototype.exec);\n var rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\n var reEscapeChar = /\\\\(\\\\)?/g;\n var stringToPath = function stringToPath2(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n if (first === \"%\" && last !== \"%\") {\n throw new $SyntaxError(\"invalid intrinsic syntax, expected closing `%`\");\n } else if (last === \"%\" && first !== \"%\") {\n throw new $SyntaxError(\"invalid intrinsic syntax, expected opening `%`\");\n }\n var result = [];\n $replace(string, rePropName, function(match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, \"$1\") : number || match;\n });\n return result;\n };\n var getBaseIntrinsic = function getBaseIntrinsic2(name2, allowMissing) {\n var intrinsicName = name2;\n var alias;\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = \"%\" + alias[0] + \"%\";\n }\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n if (typeof value === \"undefined\" && !allowMissing) {\n throw new $TypeError(\"intrinsic \" + name2 + \" exists, but is not available. Please file an issue!\");\n }\n return {\n alias,\n name: intrinsicName,\n value\n };\n }\n throw new $SyntaxError(\"intrinsic \" + name2 + \" does not exist!\");\n };\n module.exports = function GetIntrinsic(name2, allowMissing) {\n if (typeof name2 !== \"string\" || name2.length === 0) {\n throw new $TypeError(\"intrinsic name must be a non-empty string\");\n }\n if (arguments.length > 1 && typeof allowMissing !== \"boolean\") {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n if ($exec(/^%?[^%]*%?$/, name2) === null) {\n throw new $SyntaxError(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");\n }\n var parts = stringToPath(name2);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : \"\";\n var intrinsic = getBaseIntrinsic(\"%\" + intrinsicBaseName + \"%\", allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n if ((first === '\"' || first === \"'\" || first === \"`\" || (last === '\"' || last === \"'\" || last === \"`\")) && first !== last) {\n throw new $SyntaxError(\"property names with quotes must have matching quotes\");\n }\n if (part === \"constructor\" || !isOwn) {\n skipFurtherCaching = true;\n }\n intrinsicBaseName += \".\" + part;\n intrinsicRealName = \"%\" + intrinsicBaseName + \"%\";\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError(\"base intrinsic for \" + name2 + \" exists, but the property is not available.\");\n }\n return void 0;\n }\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc;\n if (isOwn && \"get\" in desc && !(\"originalValue\" in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n return value;\n };\n }\n });\n\n // node_modules/es-define-property/index.js\n var require_es_define_property = __commonJS({\n \"node_modules/es-define-property/index.js\"(exports, module) {\n \"use strict\";\n var GetIntrinsic = require_get_intrinsic();\n var $defineProperty = GetIntrinsic(\"%Object.defineProperty%\", true) || false;\n if ($defineProperty) {\n try {\n $defineProperty({}, \"a\", { value: 1 });\n } catch (e) {\n $defineProperty = false;\n }\n }\n module.exports = $defineProperty;\n }\n });\n\n // node_modules/gopd/index.js\n var require_gopd = __commonJS({\n \"node_modules/gopd/index.js\"(exports, module) {\n \"use strict\";\n var GetIntrinsic = require_get_intrinsic();\n var $gOPD = GetIntrinsic(\"%Object.getOwnPropertyDescriptor%\", true);\n if ($gOPD) {\n try {\n $gOPD([], \"length\");\n } catch (e) {\n $gOPD = null;\n }\n }\n module.exports = $gOPD;\n }\n });\n\n // node_modules/define-data-property/index.js\n var require_define_data_property = __commonJS({\n \"node_modules/define-data-property/index.js\"(exports, module) {\n \"use strict\";\n var $defineProperty = require_es_define_property();\n var $SyntaxError = require_syntax();\n var $TypeError = require_type();\n var gopd = require_gopd();\n module.exports = function defineDataProperty(obj, property, value) {\n if (!obj || typeof obj !== \"object\" && typeof obj !== \"function\") {\n throw new $TypeError(\"`obj` must be an object or a function`\");\n }\n if (typeof property !== \"string\" && typeof property !== \"symbol\") {\n throw new $TypeError(\"`property` must be a string or a symbol`\");\n }\n if (arguments.length > 3 && typeof arguments[3] !== \"boolean\" && arguments[3] !== null) {\n throw new $TypeError(\"`nonEnumerable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 4 && typeof arguments[4] !== \"boolean\" && arguments[4] !== null) {\n throw new $TypeError(\"`nonWritable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 5 && typeof arguments[5] !== \"boolean\" && arguments[5] !== null) {\n throw new $TypeError(\"`nonConfigurable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 6 && typeof arguments[6] !== \"boolean\") {\n throw new $TypeError(\"`loose`, if provided, must be a boolean\");\n }\n var nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n var nonWritable = arguments.length > 4 ? arguments[4] : null;\n var nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n var loose = arguments.length > 6 ? arguments[6] : false;\n var desc = !!gopd && gopd(obj, property);\n if ($defineProperty) {\n $defineProperty(obj, property, {\n configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n value,\n writable: nonWritable === null && desc ? desc.writable : !nonWritable\n });\n } else if (loose || !nonEnumerable && !nonWritable && !nonConfigurable) {\n obj[property] = value;\n } else {\n throw new $SyntaxError(\"This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.\");\n }\n };\n }\n });\n\n // node_modules/has-property-descriptors/index.js\n var require_has_property_descriptors = __commonJS({\n \"node_modules/has-property-descriptors/index.js\"(exports, module) {\n \"use strict\";\n var $defineProperty = require_es_define_property();\n var hasPropertyDescriptors = function hasPropertyDescriptors2() {\n return !!$defineProperty;\n };\n hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n if (!$defineProperty) {\n return null;\n }\n try {\n return $defineProperty([], \"length\", { value: 1 }).length !== 1;\n } catch (e) {\n return true;\n }\n };\n module.exports = hasPropertyDescriptors;\n }\n });\n\n // node_modules/set-function-length/index.js\n var require_set_function_length = __commonJS({\n \"node_modules/set-function-length/index.js\"(exports, module) {\n \"use strict\";\n var GetIntrinsic = require_get_intrinsic();\n var define2 = require_define_data_property();\n var hasDescriptors = require_has_property_descriptors()();\n var gOPD = require_gopd();\n var $TypeError = require_type();\n var $floor = GetIntrinsic(\"%Math.floor%\");\n module.exports = function setFunctionLength(fn, length) {\n if (typeof fn !== \"function\") {\n throw new $TypeError(\"`fn` is not a function\");\n }\n if (typeof length !== \"number\" || length < 0 || length > 4294967295 || $floor(length) !== length) {\n throw new $TypeError(\"`length` must be a positive 32-bit integer\");\n }\n var loose = arguments.length > 2 && !!arguments[2];\n var functionLengthIsConfigurable = true;\n var functionLengthIsWritable = true;\n if (\"length\" in fn && gOPD) {\n var desc = gOPD(fn, \"length\");\n if (desc && !desc.configurable) {\n functionLengthIsConfigurable = false;\n }\n if (desc && !desc.writable) {\n functionLengthIsWritable = false;\n }\n }\n if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n if (hasDescriptors) {\n define2(\n /** @type {Parameters[0]} */\n fn,\n \"length\",\n length,\n true,\n true\n );\n } else {\n define2(\n /** @type {Parameters[0]} */\n fn,\n \"length\",\n length\n );\n }\n }\n return fn;\n };\n }\n });\n\n // node_modules/call-bind/index.js\n var require_call_bind = __commonJS({\n \"node_modules/call-bind/index.js\"(exports, module) {\n \"use strict\";\n var bind = require_function_bind();\n var GetIntrinsic = require_get_intrinsic();\n var setFunctionLength = require_set_function_length();\n var $TypeError = require_type();\n var $apply = GetIntrinsic(\"%Function.prototype.apply%\");\n var $call = GetIntrinsic(\"%Function.prototype.call%\");\n var $reflectApply = GetIntrinsic(\"%Reflect.apply%\", true) || bind.call($call, $apply);\n var $defineProperty = require_es_define_property();\n var $max = GetIntrinsic(\"%Math.max%\");\n module.exports = function callBind(originalFunction) {\n if (typeof originalFunction !== \"function\") {\n throw new $TypeError(\"a function is required\");\n }\n var func = $reflectApply(bind, $call, arguments);\n return setFunctionLength(\n func,\n 1 + $max(0, originalFunction.length - (arguments.length - 1)),\n true\n );\n };\n var applyBind = function applyBind2() {\n return $reflectApply(bind, $apply, arguments);\n };\n if ($defineProperty) {\n $defineProperty(module.exports, \"apply\", { value: applyBind });\n } else {\n module.exports.apply = applyBind;\n }\n }\n });\n\n // node_modules/call-bind/callBound.js\n var require_callBound = __commonJS({\n \"node_modules/call-bind/callBound.js\"(exports, module) {\n \"use strict\";\n var GetIntrinsic = require_get_intrinsic();\n var callBind = require_call_bind();\n var $indexOf = callBind(GetIntrinsic(\"String.prototype.indexOf\"));\n module.exports = function callBoundIntrinsic(name2, allowMissing) {\n var intrinsic = GetIntrinsic(name2, !!allowMissing);\n if (typeof intrinsic === \"function\" && $indexOf(name2, \".prototype.\") > -1) {\n return callBind(intrinsic);\n }\n return intrinsic;\n };\n }\n });\n\n // node_modules/is-arguments/index.js\n var require_is_arguments = __commonJS({\n \"node_modules/is-arguments/index.js\"(exports, module) {\n \"use strict\";\n var hasToStringTag = require_shams2()();\n var callBound = require_callBound();\n var $toString = callBound(\"Object.prototype.toString\");\n var isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === \"object\" && Symbol.toStringTag in value) {\n return false;\n }\n return $toString(value) === \"[object Arguments]\";\n };\n var isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n return value !== null && typeof value === \"object\" && typeof value.length === \"number\" && value.length >= 0 && $toString(value) !== \"[object Array]\" && $toString(value.callee) === \"[object Function]\";\n };\n var supportsStandardArguments = function() {\n return isStandardArguments(arguments);\n }();\n isStandardArguments.isLegacyArguments = isLegacyArguments;\n module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n }\n });\n\n // node_modules/is-generator-function/index.js\n var require_is_generator_function = __commonJS({\n \"node_modules/is-generator-function/index.js\"(exports, module) {\n \"use strict\";\n var toStr = Object.prototype.toString;\n var fnToStr = Function.prototype.toString;\n var isFnRegex = /^\\s*(?:function)?\\*/;\n var hasToStringTag = require_shams2()();\n var getProto = Object.getPrototypeOf;\n var getGeneratorFunc = function() {\n if (!hasToStringTag) {\n return false;\n }\n try {\n return Function(\"return function*() {}\")();\n } catch (e) {\n }\n };\n var GeneratorFunction;\n module.exports = function isGeneratorFunction(fn) {\n if (typeof fn !== \"function\") {\n return false;\n }\n if (isFnRegex.test(fnToStr.call(fn))) {\n return true;\n }\n if (!hasToStringTag) {\n var str = toStr.call(fn);\n return str === \"[object GeneratorFunction]\";\n }\n if (!getProto) {\n return false;\n }\n if (typeof GeneratorFunction === \"undefined\") {\n var generatorFunc = getGeneratorFunc();\n GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n }\n return getProto(fn) === GeneratorFunction;\n };\n }\n });\n\n // node_modules/is-callable/index.js\n var require_is_callable = __commonJS({\n \"node_modules/is-callable/index.js\"(exports, module) {\n \"use strict\";\n var fnToStr = Function.prototype.toString;\n var reflectApply = typeof Reflect === \"object\" && Reflect !== null && Reflect.apply;\n var badArrayLike;\n var isCallableMarker;\n if (typeof reflectApply === \"function\" && typeof Object.defineProperty === \"function\") {\n try {\n badArrayLike = Object.defineProperty({}, \"length\", {\n get: function() {\n throw isCallableMarker;\n }\n });\n isCallableMarker = {};\n reflectApply(function() {\n throw 42;\n }, null, badArrayLike);\n } catch (_) {\n if (_ !== isCallableMarker) {\n reflectApply = null;\n }\n }\n } else {\n reflectApply = null;\n }\n var constructorRegex = /^\\s*class\\b/;\n var isES6ClassFn = function isES6ClassFunction(value) {\n try {\n var fnStr = fnToStr.call(value);\n return constructorRegex.test(fnStr);\n } catch (e) {\n return false;\n }\n };\n var tryFunctionObject = function tryFunctionToStr(value) {\n try {\n if (isES6ClassFn(value)) {\n return false;\n }\n fnToStr.call(value);\n return true;\n } catch (e) {\n return false;\n }\n };\n var toStr = Object.prototype.toString;\n var objectClass = \"[object Object]\";\n var fnClass = \"[object Function]\";\n var genClass = \"[object GeneratorFunction]\";\n var ddaClass = \"[object HTMLAllCollection]\";\n var ddaClass2 = \"[object HTML document.all class]\";\n var ddaClass3 = \"[object HTMLCollection]\";\n var hasToStringTag = typeof Symbol === \"function\" && !!Symbol.toStringTag;\n var isIE68 = !(0 in [,]);\n var isDDA = function isDocumentDotAll() {\n return false;\n };\n if (typeof document === \"object\") {\n all = document.all;\n if (toStr.call(all) === toStr.call(document.all)) {\n isDDA = function isDocumentDotAll(value) {\n if ((isIE68 || !value) && (typeof value === \"undefined\" || typeof value === \"object\")) {\n try {\n var str = toStr.call(value);\n return (str === ddaClass || str === ddaClass2 || str === ddaClass3 || str === objectClass) && value(\"\") == null;\n } catch (e) {\n }\n }\n return false;\n };\n }\n }\n var all;\n module.exports = reflectApply ? function isCallable(value) {\n if (isDDA(value)) {\n return true;\n }\n if (!value) {\n return false;\n }\n if (typeof value !== \"function\" && typeof value !== \"object\") {\n return false;\n }\n try {\n reflectApply(value, null, badArrayLike);\n } catch (e) {\n if (e !== isCallableMarker) {\n return false;\n }\n }\n return !isES6ClassFn(value) && tryFunctionObject(value);\n } : function isCallable(value) {\n if (isDDA(value)) {\n return true;\n }\n if (!value) {\n return false;\n }\n if (typeof value !== \"function\" && typeof value !== \"object\") {\n return false;\n }\n if (hasToStringTag) {\n return tryFunctionObject(value);\n }\n if (isES6ClassFn(value)) {\n return false;\n }\n var strClass = toStr.call(value);\n if (strClass !== fnClass && strClass !== genClass && !/^\\[object HTML/.test(strClass)) {\n return false;\n }\n return tryFunctionObject(value);\n };\n }\n });\n\n // node_modules/for-each/index.js\n var require_for_each = __commonJS({\n \"node_modules/for-each/index.js\"(exports, module) {\n \"use strict\";\n var isCallable = require_is_callable();\n var toStr = Object.prototype.toString;\n var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n var forEachArray = function forEachArray2(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty2.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 var forEachString = function forEachString2(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\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 var forEachObject = function forEachObject2(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty2.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 var forEach = function forEach2(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError(\"iterator must be a function\");\n }\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n if (toStr.call(list) === \"[object Array]\") {\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 module.exports = forEach;\n }\n });\n\n // node_modules/available-typed-arrays/index.js\n var require_available_typed_arrays = __commonJS({\n \"node_modules/available-typed-arrays/index.js\"(exports, module) {\n \"use strict\";\n var possibleNames = [\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\"\n ];\n var g = typeof globalThis === \"undefined\" ? window : globalThis;\n module.exports = function availableTypedArrays() {\n var out = [];\n for (var i = 0; i < possibleNames.length; i++) {\n if (typeof g[possibleNames[i]] === \"function\") {\n out[out.length] = possibleNames[i];\n }\n }\n return out;\n };\n }\n });\n\n // node_modules/which-typed-array/index.js\n var require_which_typed_array = __commonJS({\n \"node_modules/which-typed-array/index.js\"(exports, module) {\n \"use strict\";\n var forEach = require_for_each();\n var availableTypedArrays = require_available_typed_arrays();\n var callBind = require_call_bind();\n var callBound = require_callBound();\n var gOPD = require_gopd();\n var $toString = callBound(\"Object.prototype.toString\");\n var hasToStringTag = require_shams2()();\n var g = typeof globalThis === \"undefined\" ? window : globalThis;\n var typedArrays = availableTypedArrays();\n var $slice = callBound(\"String.prototype.slice\");\n var getPrototypeOf = Object.getPrototypeOf;\n var $indexOf = callBound(\"Array.prototype.indexOf\", true) || /** @type {(array: readonly unknown[], value: unknown) => keyof array} */\n function indexOf(array, value) {\n for (var i = 0; i < array.length; i += 1) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n };\n var cache = { __proto__: null };\n if (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function(typedArray) {\n var arr = new g[typedArray]();\n if (Symbol.toStringTag in arr) {\n var proto = getPrototypeOf(arr);\n var descriptor = gOPD(proto, Symbol.toStringTag);\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n cache[\"$\" + typedArray] = callBind(descriptor.get);\n }\n });\n } else {\n forEach(typedArrays, function(typedArray) {\n var arr = new g[typedArray]();\n var fn = arr.slice || arr.set;\n if (fn) {\n cache[\"$\" + typedArray] = callBind(fn);\n }\n });\n }\n var tryTypedArrays = function tryAllTypedArrays(value) {\n var found = false;\n forEach(\n // eslint-disable-next-line no-extra-parens\n /** @type {Record<`\\$${TypedArrayName}`, typeof cache>} */\n /** @type {any} */\n cache,\n /** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */\n function(getter, typedArray) {\n if (!found) {\n try {\n if (\"$\" + getter(value) === typedArray) {\n found = $slice(typedArray, 1);\n }\n } catch (e) {\n }\n }\n }\n );\n return found;\n };\n var trySlices = function tryAllSlices(value) {\n var found = false;\n forEach(\n // eslint-disable-next-line no-extra-parens\n /** @type {any} */\n cache,\n /** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */\n function(getter, name2) {\n if (!found) {\n try {\n getter(value);\n found = $slice(name2, 1);\n } catch (e) {\n }\n }\n }\n );\n return found;\n };\n module.exports = function whichTypedArray(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (!hasToStringTag) {\n var tag = $slice($toString(value), 8, -1);\n if ($indexOf(typedArrays, tag) > -1) {\n return tag;\n }\n if (tag !== \"Object\") {\n return false;\n }\n return trySlices(value);\n }\n if (!gOPD) {\n return null;\n }\n return tryTypedArrays(value);\n };\n }\n });\n\n // node_modules/is-typed-array/index.js\n var require_is_typed_array = __commonJS({\n \"node_modules/is-typed-array/index.js\"(exports, module) {\n \"use strict\";\n var forEach = require_for_each();\n var availableTypedArrays = require_available_typed_arrays();\n var callBound = require_callBound();\n var $toString = callBound(\"Object.prototype.toString\");\n var hasToStringTag = require_shams2()();\n var gOPD = require_gopd();\n var g = typeof globalThis === \"undefined\" ? window : globalThis;\n var typedArrays = availableTypedArrays();\n var $indexOf = callBound(\"Array.prototype.indexOf\", true) || function indexOf(array, value) {\n for (var i = 0; i < array.length; i += 1) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n };\n var $slice = callBound(\"String.prototype.slice\");\n var toStrTags = {};\n var getPrototypeOf = Object.getPrototypeOf;\n if (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function(typedArray) {\n var arr = new g[typedArray]();\n if (Symbol.toStringTag in arr) {\n var proto = getPrototypeOf(arr);\n var descriptor = gOPD(proto, Symbol.toStringTag);\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n toStrTags[typedArray] = descriptor.get;\n }\n });\n }\n var tryTypedArrays = function tryAllTypedArrays(value) {\n var anyTrue = false;\n forEach(toStrTags, function(getter, typedArray) {\n if (!anyTrue) {\n try {\n anyTrue = getter.call(value) === typedArray;\n } catch (e) {\n }\n }\n });\n return anyTrue;\n };\n module.exports = function isTypedArray(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (!hasToStringTag || !(Symbol.toStringTag in value)) {\n var tag = $slice($toString(value), 8, -1);\n return $indexOf(typedArrays, tag) > -1;\n }\n if (!gOPD) {\n return false;\n }\n return tryTypedArrays(value);\n };\n }\n });\n\n // node_modules/util/support/types.js\n var require_types = __commonJS({\n \"node_modules/util/support/types.js\"(exports) {\n \"use strict\";\n var isArgumentsObject = require_is_arguments();\n var isGeneratorFunction = require_is_generator_function();\n var whichTypedArray = require_which_typed_array();\n var isTypedArray = require_is_typed_array();\n function uncurryThis(f) {\n return f.call.bind(f);\n }\n var BigIntSupported = typeof BigInt !== \"undefined\";\n var SymbolSupported = typeof Symbol !== \"undefined\";\n var ObjectToString = uncurryThis(Object.prototype.toString);\n var numberValue = uncurryThis(Number.prototype.valueOf);\n var stringValue = uncurryThis(String.prototype.valueOf);\n var booleanValue = uncurryThis(Boolean.prototype.valueOf);\n if (BigIntSupported) {\n bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n }\n var bigIntValue;\n if (SymbolSupported) {\n symbolValue = uncurryThis(Symbol.prototype.valueOf);\n }\n var symbolValue;\n function checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== \"object\") {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch (e) {\n return false;\n }\n }\n exports.isArgumentsObject = isArgumentsObject;\n exports.isGeneratorFunction = isGeneratorFunction;\n exports.isTypedArray = isTypedArray;\n function isPromise(input) {\n return typeof Promise !== \"undefined\" && input instanceof Promise || input !== null && typeof input === \"object\" && typeof input.then === \"function\" && typeof input.catch === \"function\";\n }\n exports.isPromise = isPromise;\n function isArrayBufferView(value) {\n if (typeof ArrayBuffer !== \"undefined\" && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n return isTypedArray(value) || isDataView(value);\n }\n exports.isArrayBufferView = isArrayBufferView;\n function isUint8Array(value) {\n return whichTypedArray(value) === \"Uint8Array\";\n }\n exports.isUint8Array = isUint8Array;\n function isUint8ClampedArray(value) {\n return whichTypedArray(value) === \"Uint8ClampedArray\";\n }\n exports.isUint8ClampedArray = isUint8ClampedArray;\n function isUint16Array(value) {\n return whichTypedArray(value) === \"Uint16Array\";\n }\n exports.isUint16Array = isUint16Array;\n function isUint32Array(value) {\n return whichTypedArray(value) === \"Uint32Array\";\n }\n exports.isUint32Array = isUint32Array;\n function isInt8Array(value) {\n return whichTypedArray(value) === \"Int8Array\";\n }\n exports.isInt8Array = isInt8Array;\n function isInt16Array(value) {\n return whichTypedArray(value) === \"Int16Array\";\n }\n exports.isInt16Array = isInt16Array;\n function isInt32Array(value) {\n return whichTypedArray(value) === \"Int32Array\";\n }\n exports.isInt32Array = isInt32Array;\n function isFloat32Array(value) {\n return whichTypedArray(value) === \"Float32Array\";\n }\n exports.isFloat32Array = isFloat32Array;\n function isFloat64Array(value) {\n return whichTypedArray(value) === \"Float64Array\";\n }\n exports.isFloat64Array = isFloat64Array;\n function isBigInt64Array(value) {\n return whichTypedArray(value) === \"BigInt64Array\";\n }\n exports.isBigInt64Array = isBigInt64Array;\n function isBigUint64Array(value) {\n return whichTypedArray(value) === \"BigUint64Array\";\n }\n exports.isBigUint64Array = isBigUint64Array;\n function isMapToString(value) {\n return ObjectToString(value) === \"[object Map]\";\n }\n isMapToString.working = typeof Map !== \"undefined\" && isMapToString(/* @__PURE__ */ new Map());\n function isMap(value) {\n if (typeof Map === \"undefined\") {\n return false;\n }\n return isMapToString.working ? isMapToString(value) : value instanceof Map;\n }\n exports.isMap = isMap;\n function isSetToString(value) {\n return ObjectToString(value) === \"[object Set]\";\n }\n isSetToString.working = typeof Set !== \"undefined\" && isSetToString(/* @__PURE__ */ new Set());\n function isSet(value) {\n if (typeof Set === \"undefined\") {\n return false;\n }\n return isSetToString.working ? isSetToString(value) : value instanceof Set;\n }\n exports.isSet = isSet;\n function isWeakMapToString(value) {\n return ObjectToString(value) === \"[object WeakMap]\";\n }\n isWeakMapToString.working = typeof WeakMap !== \"undefined\" && isWeakMapToString(/* @__PURE__ */ new WeakMap());\n function isWeakMap(value) {\n if (typeof WeakMap === \"undefined\") {\n return false;\n }\n return isWeakMapToString.working ? isWeakMapToString(value) : value instanceof WeakMap;\n }\n exports.isWeakMap = isWeakMap;\n function isWeakSetToString(value) {\n return ObjectToString(value) === \"[object WeakSet]\";\n }\n isWeakSetToString.working = typeof WeakSet !== \"undefined\" && isWeakSetToString(/* @__PURE__ */ new WeakSet());\n function isWeakSet(value) {\n return isWeakSetToString(value);\n }\n exports.isWeakSet = isWeakSet;\n function isArrayBufferToString(value) {\n return ObjectToString(value) === \"[object ArrayBuffer]\";\n }\n isArrayBufferToString.working = typeof ArrayBuffer !== \"undefined\" && isArrayBufferToString(new ArrayBuffer());\n function isArrayBuffer(value) {\n if (typeof ArrayBuffer === \"undefined\") {\n return false;\n }\n return isArrayBufferToString.working ? isArrayBufferToString(value) : value instanceof ArrayBuffer;\n }\n exports.isArrayBuffer = isArrayBuffer;\n function isDataViewToString(value) {\n return ObjectToString(value) === \"[object DataView]\";\n }\n isDataViewToString.working = typeof ArrayBuffer !== \"undefined\" && typeof DataView !== \"undefined\" && isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1));\n function isDataView(value) {\n if (typeof DataView === \"undefined\") {\n return false;\n }\n return isDataViewToString.working ? isDataViewToString(value) : value instanceof DataView;\n }\n exports.isDataView = isDataView;\n var SharedArrayBufferCopy = typeof SharedArrayBuffer !== \"undefined\" ? SharedArrayBuffer : void 0;\n function isSharedArrayBufferToString(value) {\n return ObjectToString(value) === \"[object SharedArrayBuffer]\";\n }\n function isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === \"undefined\") {\n return false;\n }\n if (typeof isSharedArrayBufferToString.working === \"undefined\") {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n return isSharedArrayBufferToString.working ? isSharedArrayBufferToString(value) : value instanceof SharedArrayBufferCopy;\n }\n exports.isSharedArrayBuffer = isSharedArrayBuffer;\n function isAsyncFunction(value) {\n return ObjectToString(value) === \"[object AsyncFunction]\";\n }\n exports.isAsyncFunction = isAsyncFunction;\n function isMapIterator(value) {\n return ObjectToString(value) === \"[object Map Iterator]\";\n }\n exports.isMapIterator = isMapIterator;\n function isSetIterator(value) {\n return ObjectToString(value) === \"[object Set Iterator]\";\n }\n exports.isSetIterator = isSetIterator;\n function isGeneratorObject(value) {\n return ObjectToString(value) === \"[object Generator]\";\n }\n exports.isGeneratorObject = isGeneratorObject;\n function isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === \"[object WebAssembly.Module]\";\n }\n exports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n function isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n }\n exports.isNumberObject = isNumberObject;\n function isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n }\n exports.isStringObject = isStringObject;\n function isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n }\n exports.isBooleanObject = isBooleanObject;\n function isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n }\n exports.isBigIntObject = isBigIntObject;\n function isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n }\n exports.isSymbolObject = isSymbolObject;\n function isBoxedPrimitive(value) {\n return isNumberObject(value) || isStringObject(value) || isBooleanObject(value) || isBigIntObject(value) || isSymbolObject(value);\n }\n exports.isBoxedPrimitive = isBoxedPrimitive;\n function isAnyArrayBuffer(value) {\n return typeof Uint8Array !== \"undefined\" && (isArrayBuffer(value) || isSharedArrayBuffer(value));\n }\n exports.isAnyArrayBuffer = isAnyArrayBuffer;\n [\"isProxy\", \"isExternal\", \"isModuleNamespaceObject\"].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + \" is not supported in userland\");\n }\n });\n });\n }\n });\n\n // node_modules/util/support/isBufferBrowser.js\n var require_isBufferBrowser = __commonJS({\n \"node_modules/util/support/isBufferBrowser.js\"(exports, module) {\n module.exports = function isBuffer(arg) {\n return arg && typeof arg === \"object\" && typeof arg.copy === \"function\" && typeof arg.fill === \"function\" && typeof arg.readUInt8 === \"function\";\n };\n }\n });\n\n // (disabled):node_modules/util/util.js\n var require_util = __commonJS({\n \"(disabled):node_modules/util/util.js\"(exports) {\n var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors2(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n var formatRegExp = /%[sdj%]/g;\n exports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(\" \");\n }\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x2) {\n if (x2 === \"%%\") return \"%\";\n if (i >= len) return x2;\n switch (x2) {\n case \"%s\":\n return String(args[i++]);\n case \"%d\":\n return Number(args[i++]);\n case \"%j\":\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return \"[Circular]\";\n }\n default:\n return x2;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += \" \" + x;\n } else {\n str += \" \" + inspect(x);\n }\n }\n return str;\n };\n exports.deprecate = function(fn, msg) {\n if (typeof process !== \"undefined\" && process.noDeprecation === true) {\n return fn;\n }\n if (typeof process === \"undefined\") {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n };\n var debugs = {};\n var debugEnvRegex = /^$/;\n if (\"false\") {\n debugEnv = \"false\";\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, \"\\\\$&\").replace(/\\*/g, \".*\").replace(/,/g, \"$|^\").toUpperCase();\n debugEnvRegex = new RegExp(\"^\" + debugEnv + \"$\", \"i\");\n }\n var debugEnv;\n exports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error(\"%s %d: %s\", set, pid, msg);\n };\n } else {\n debugs[set] = function() {\n };\n }\n }\n return debugs[set];\n };\n function inspect(obj, opts) {\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n ctx.showHidden = opts;\n } else if (opts) {\n exports._extend(ctx, opts);\n }\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n exports.inspect = inspect;\n inspect.colors = {\n \"bold\": [1, 22],\n \"italic\": [3, 23],\n \"underline\": [4, 24],\n \"inverse\": [7, 27],\n \"white\": [37, 39],\n \"grey\": [90, 39],\n \"black\": [30, 39],\n \"blue\": [34, 39],\n \"cyan\": [36, 39],\n \"green\": [32, 39],\n \"magenta\": [35, 39],\n \"red\": [31, 39],\n \"yellow\": [33, 39]\n };\n inspect.styles = {\n \"special\": \"cyan\",\n \"number\": \"yellow\",\n \"boolean\": \"yellow\",\n \"undefined\": \"grey\",\n \"null\": \"bold\",\n \"string\": \"green\",\n \"date\": \"magenta\",\n // \"name\": intentionally not styling\n \"regexp\": \"red\"\n };\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + \"m\" + str + \"\\x1B[\" + inspect.colors[style][1] + \"m\";\n } else {\n return str;\n }\n }\n function stylizeNoColor(str, styleType) {\n return str;\n }\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n function formatValue(ctx, value, recurseTimes) {\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n if (isError(value) && (keys.indexOf(\"message\") >= 0 || keys.indexOf(\"description\") >= 0)) {\n return formatError(value);\n }\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name2 = value.name ? \": \" + value.name : \"\";\n return ctx.stylize(\"[Function\" + name2 + \"]\", \"special\");\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), \"date\");\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n var base = \"\", array = false, braces = [\"{\", \"}\"];\n if (isArray(value)) {\n array = true;\n braces = [\"[\", \"]\"];\n }\n if (isFunction(value)) {\n var n = value.name ? \": \" + value.name : \"\";\n base = \" [Function\" + n + \"]\";\n }\n if (isRegExp(value)) {\n base = \" \" + RegExp.prototype.toString.call(value);\n }\n if (isDate(value)) {\n base = \" \" + Date.prototype.toUTCString.call(value);\n }\n if (isError(value)) {\n base = \" \" + formatError(value);\n }\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n } else {\n return ctx.stylize(\"[Object]\", \"special\");\n }\n }\n ctx.seen.push(value);\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n }\n function formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize(\"undefined\", \"undefined\");\n if (isString(value)) {\n var simple = \"'\" + JSON.stringify(value).replace(/^\"|\"$/g, \"\").replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + \"'\";\n return ctx.stylize(simple, \"string\");\n }\n if (isNumber(value))\n return ctx.stylize(\"\" + value, \"number\");\n if (isBoolean(value))\n return ctx.stylize(\"\" + value, \"boolean\");\n if (isNull(value))\n return ctx.stylize(\"null\", \"null\");\n }\n function formatError(value) {\n return \"[\" + Error.prototype.toString.call(value) + \"]\";\n }\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty2(value, String(i))) {\n output.push(formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n String(i),\n true\n ));\n } else {\n output.push(\"\");\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n key,\n true\n ));\n }\n });\n return output;\n }\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name2, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize(\"[Getter/Setter]\", \"special\");\n } else {\n str = ctx.stylize(\"[Getter]\", \"special\");\n }\n } else {\n if (desc.set) {\n str = ctx.stylize(\"[Setter]\", \"special\");\n }\n }\n if (!hasOwnProperty2(visibleKeys, key)) {\n name2 = \"[\" + key + \"]\";\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf(\"\\n\") > -1) {\n if (array) {\n str = str.split(\"\\n\").map(function(line) {\n return \" \" + line;\n }).join(\"\\n\").slice(2);\n } else {\n str = \"\\n\" + str.split(\"\\n\").map(function(line) {\n return \" \" + line;\n }).join(\"\\n\");\n }\n }\n } else {\n str = ctx.stylize(\"[Circular]\", \"special\");\n }\n }\n if (isUndefined(name2)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name2 = JSON.stringify(\"\" + key);\n if (name2.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name2 = name2.slice(1, -1);\n name2 = ctx.stylize(name2, \"name\");\n } else {\n name2 = name2.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name2 = ctx.stylize(name2, \"string\");\n }\n }\n return name2 + \": \" + str;\n }\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf(\"\\n\") >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, \"\").length + 1;\n }, 0);\n if (length > 60) {\n return braces[0] + (base === \"\" ? \"\" : base + \"\\n \") + \" \" + output.join(\",\\n \") + \" \" + braces[1];\n }\n return braces[0] + base + \" \" + output.join(\", \") + \" \" + braces[1];\n }\n exports.types = require_types();\n function isArray(ar) {\n return Array.isArray(ar);\n }\n exports.isArray = isArray;\n function isBoolean(arg) {\n return typeof arg === \"boolean\";\n }\n exports.isBoolean = isBoolean;\n function isNull(arg) {\n return arg === null;\n }\n exports.isNull = isNull;\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n exports.isNullOrUndefined = isNullOrUndefined;\n function isNumber(arg) {\n return typeof arg === \"number\";\n }\n exports.isNumber = isNumber;\n function isString(arg) {\n return typeof arg === \"string\";\n }\n exports.isString = isString;\n function isSymbol(arg) {\n return typeof arg === \"symbol\";\n }\n exports.isSymbol = isSymbol;\n function isUndefined(arg) {\n return arg === void 0;\n }\n exports.isUndefined = isUndefined;\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === \"[object RegExp]\";\n }\n exports.isRegExp = isRegExp;\n exports.types.isRegExp = isRegExp;\n function isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n }\n exports.isObject = isObject;\n function isDate(d) {\n return isObject(d) && objectToString(d) === \"[object Date]\";\n }\n exports.isDate = isDate;\n exports.types.isDate = isDate;\n function isError(e) {\n return isObject(e) && (objectToString(e) === \"[object Error]\" || e instanceof Error);\n }\n exports.isError = isError;\n exports.types.isNativeError = isError;\n function isFunction(arg) {\n return typeof arg === \"function\";\n }\n exports.isFunction = isFunction;\n function isPrimitive(arg) {\n return arg === null || typeof arg === \"boolean\" || typeof arg === \"number\" || typeof arg === \"string\" || typeof arg === \"symbol\" || // ES6 symbol\n typeof arg === \"undefined\";\n }\n exports.isPrimitive = isPrimitive;\n exports.isBuffer = require_isBufferBrowser();\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n function pad(n) {\n return n < 10 ? \"0\" + n.toString(10) : n.toString(10);\n }\n var months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ];\n function timestamp() {\n var d = /* @__PURE__ */ new Date();\n var time = [\n pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())\n ].join(\":\");\n return [d.getDate(), months[d.getMonth()], time].join(\" \");\n }\n exports.log = function() {\n console.log(\"%s - %s\", timestamp(), exports.format.apply(exports, arguments));\n };\n exports.inherits = require_inherits_browser();\n exports._extend = function(origin, add) {\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n };\n function hasOwnProperty2(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n var kCustomPromisifiedSymbol = typeof Symbol !== \"undefined\" ? Symbol(\"util.promisify.custom\") : void 0;\n exports.promisify = function promisify(original) {\n if (typeof original !== \"function\")\n throw new TypeError('The \"original\" argument must be of type Function');\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== \"function\") {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function(resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function(err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n return promise;\n }\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n };\n exports.promisify.custom = kCustomPromisifiedSymbol;\n function callbackifyOnRejected(reason, cb) {\n if (!reason) {\n var newReason = new Error(\"Promise was rejected with a falsy value\");\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n }\n function callbackify(original) {\n if (typeof original !== \"function\") {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n var maybeCb = args.pop();\n if (typeof maybeCb !== \"function\") {\n throw new TypeError(\"The last argument must be of type Function\");\n }\n var self2 = this;\n var cb = function() {\n return maybeCb.apply(self2, arguments);\n };\n original.apply(this, args).then(\n function(ret) {\n process.nextTick(cb.bind(null, null, ret));\n },\n function(rej) {\n process.nextTick(callbackifyOnRejected.bind(null, rej, cb));\n }\n );\n }\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(\n callbackified,\n getOwnPropertyDescriptors(original)\n );\n return callbackified;\n }\n exports.callbackify = callbackify;\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js\n var require_buffer_list = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js\"(exports, module) {\n \"use strict\";\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer2 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || \"inspect\";\n function copyBuffer(src, target, offset) {\n Buffer2.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;\n else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return \"\";\n var p = this.head;\n var ret = \"\" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer2.alloc(0);\n var ret = Buffer2.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;\n else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;\n else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer2.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;\n else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js\n var require_destroy = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js\"(exports, module) {\n \"use strict\";\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose) return;\n if (self2._readableState && !self2._readableState.emitClose) return;\n self2.emit(\"close\");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit(\"error\", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);\n else stream.emit(\"error\", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\n var require_errors_browser = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\"(exports, module) {\n \"use strict\";\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === \"string\") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(\", \"), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== \"number\") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType(\"ERR_INVALID_OPT_VALUE\", function(name2, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name2 + '\"';\n }, TypeError);\n createErrorType(\"ERR_INVALID_ARG_TYPE\", function(name2, expected, actual) {\n var determiner;\n if (typeof expected === \"string\" && startsWith(expected, \"not \")) {\n determiner = \"must not be\";\n expected = expected.replace(/^not /, \"\");\n } else {\n determiner = \"must be\";\n }\n var msg;\n if (endsWith(name2, \" argument\")) {\n msg = \"The \".concat(name2, \" \").concat(determiner, \" \").concat(oneOf(expected, \"type\"));\n } else {\n var type = includes(name2, \".\") ? \"property\" : \"argument\";\n msg = 'The \"'.concat(name2, '\" ').concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, \"type\"));\n }\n msg += \". Received type \".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType(\"ERR_STREAM_PUSH_AFTER_EOF\", \"stream.push() after EOF\");\n createErrorType(\"ERR_METHOD_NOT_IMPLEMENTED\", function(name2) {\n return \"The \" + name2 + \" method is not implemented\";\n });\n createErrorType(\"ERR_STREAM_PREMATURE_CLOSE\", \"Premature close\");\n createErrorType(\"ERR_STREAM_DESTROYED\", function(name2) {\n return \"Cannot call \" + name2 + \" after a stream was destroyed\";\n });\n createErrorType(\"ERR_MULTIPLE_CALLBACK\", \"Callback called multiple times\");\n createErrorType(\"ERR_STREAM_CANNOT_PIPE\", \"Cannot pipe, not readable\");\n createErrorType(\"ERR_STREAM_WRITE_AFTER_END\", \"write after end\");\n createErrorType(\"ERR_STREAM_NULL_VALUES\", \"May not write null values to stream\", TypeError);\n createErrorType(\"ERR_UNKNOWN_ENCODING\", function(arg) {\n return \"Unknown encoding: \" + arg;\n }, TypeError);\n createErrorType(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\", \"stream.unshift() after end event\");\n module.exports.codes = codes;\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js\n var require_state = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js\"(exports, module) {\n \"use strict\";\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name2 = isDuplex ? duplexKey : \"highWaterMark\";\n throw new ERR_INVALID_OPT_VALUE(name2, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n });\n\n // node_modules/util-deprecate/browser.js\n var require_browser = __commonJS({\n \"node_modules/util-deprecate/browser.js\"(exports, module) {\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config(\"noDeprecation\")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config(\"throwDeprecation\")) {\n throw new Error(msg);\n } else if (config(\"traceDeprecation\")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name2) {\n try {\n if (!window.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = window.localStorage[name2];\n if (null == val) return false;\n return String(val).toLowerCase() === \"true\";\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js\n var require_stream_writable = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js\"(exports, module) {\n \"use strict\";\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer2 = require_buffer().Buffer;\n var OurUint8Array = window.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer2.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== \"boolean\") isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, \"writableHighWaterMark\", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || \"utf8\";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, \"buffer\", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, \"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\", \"DEP0003\")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === \"function\" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === \"function\") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === \"function\") this._write = options.write;\n if (typeof options.writev === \"function\") this._writev = options.writev;\n if (typeof options.destroy === \"function\") this._destroy = options.destroy;\n if (typeof options.final === \"function\") this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== \"string\" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE(\"chunk\", [\"string\", \"Buffer\"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer2.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === \"function\") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = \"buffer\";\n else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== \"function\") cb = nop;\n if (state.ending) writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === \"string\") encoding = encoding.toLowerCase();\n if (!([\"hex\", \"utf8\", \"utf-8\", \"ascii\", \"binary\", \"base64\", \"ucs2\", \"ucs-2\", \"utf16le\", \"utf-16le\", \"raw\"].indexOf((encoding + \"\").toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, \"writableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === \"string\") {\n chunk = Buffer2.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, \"writableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = \"buffer\";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED(\"write\"));\n else if (writev) stream._writev(chunk, state.onwrite);\n else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== \"function\") throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit(\"drain\");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, \"\", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED(\"_write()\"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === \"function\") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === \"function\") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0) this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending) endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, \"writableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit(\"prefinish\");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === \"function\" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit(\"prefinish\");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit(\"finish\");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);\n else stream.once(\"finish\", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\n var require_stream_duplex = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\"(exports, module) {\n \"use strict\";\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key in obj) {\n keys2.push(key);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once(\"end\", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, \"writableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, \"writableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, \"writableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended) return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n });\n\n // node_modules/safe-buffer/index.js\n var require_safe_buffer = __commonJS({\n \"node_modules/safe-buffer/index.js\"(exports, module) {\n var buffer = require_buffer();\n var Buffer2 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n }\n if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer2(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer2.prototype);\n copyProps(Buffer2, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === \"number\") {\n throw new TypeError(\"Argument must not be a number\");\n }\n return Buffer2(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"Argument must be a number\");\n }\n var buf = Buffer2(size);\n if (fill !== void 0) {\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 SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"Argument must be a number\");\n }\n return Buffer2(size);\n };\n SafeBuffer.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 }\n });\n\n // node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js\n var require_string_decoder = __commonJS({\n \"node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js\"(exports) {\n \"use strict\";\n var Buffer2 = require_safe_buffer().Buffer;\n var isEncoding = Buffer2.isEncoding || function(encoding) {\n encoding = \"\" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n case \"raw\":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc) return \"utf8\";\n var retried;\n while (true) {\n switch (enc) {\n case \"utf8\":\n case \"utf-8\":\n return \"utf8\";\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return \"utf16le\";\n case \"latin1\":\n case \"binary\":\n return \"latin1\";\n case \"base64\":\n case \"ascii\":\n case \"hex\":\n return enc;\n default:\n if (retried) return;\n enc = (\"\" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== \"string\" && (Buffer2.isEncoding === isEncoding || !isEncoding(enc))) throw new Error(\"Unknown encoding: \" + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case \"utf16le\":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case \"utf8\":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case \"base64\":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer2.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf) {\n if (buf.length === 0) return \"\";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === void 0) return \"\";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || \"\";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127) return 0;\n else if (byte >> 5 === 6) return 2;\n else if (byte >> 4 === 14) return 3;\n else if (byte >> 3 === 30) return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;\n else self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf, p) {\n if ((buf[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return \"\\uFFFD\";\n }\n if (self2.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return \"\\uFFFD\";\n }\n if (self2.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return \"\\uFFFD\";\n }\n }\n }\n }\n function utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== void 0) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n }\n function utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString(\"utf8\", i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString(\"utf8\", i, end);\n }\n function utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) return r + \"\\uFFFD\";\n return r;\n }\n function utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString(\"utf16le\", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString(\"utf16le\", i, buf.length - 1);\n }\n function utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString(\"utf16le\", 0, end);\n }\n return r;\n }\n function base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString(\"base64\", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString(\"base64\", i, buf.length - n);\n }\n function base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) return r + this.lastChar.toString(\"base64\", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf) {\n return buf.toString(this.encoding);\n }\n function simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : \"\";\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\n var require_end_of_stream = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\"(exports, module) {\n \"use strict\";\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === \"function\";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === \"function\") return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on(\"finish\", onfinish);\n };\n if (isRequest(stream)) {\n stream.on(\"complete\", onfinish);\n stream.on(\"abort\", onclose);\n if (stream.req) onrequest();\n else stream.on(\"request\", onrequest);\n } else if (writable && !stream._writableState) {\n stream.on(\"end\", onlegacyfinish);\n stream.on(\"close\", onlegacyfinish);\n }\n stream.on(\"end\", onend);\n stream.on(\"finish\", onfinish);\n if (opts.error !== false) stream.on(\"error\", onerror);\n stream.on(\"close\", onclose);\n return function() {\n stream.removeListener(\"complete\", onfinish);\n stream.removeListener(\"abort\", onclose);\n stream.removeListener(\"request\", onrequest);\n if (stream.req) stream.req.removeListener(\"finish\", onfinish);\n stream.removeListener(\"end\", onlegacyfinish);\n stream.removeListener(\"close\", onlegacyfinish);\n stream.removeListener(\"finish\", onfinish);\n stream.removeListener(\"end\", onend);\n stream.removeListener(\"error\", onerror);\n stream.removeListener(\"close\", onclose);\n };\n }\n module.exports = eos;\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js\n var require_async_iterator = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js\"(exports, module) {\n \"use strict\";\n var _Object$setPrototypeO;\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol(\"lastResolve\");\n var kLastReject = Symbol(\"lastReject\");\n var kError = Symbol(\"error\");\n var kEnded = Symbol(\"ended\");\n var kLastPromise = Symbol(\"lastPromise\");\n var kHandlePromise = Symbol(\"handlePromise\");\n var kStream = Symbol(\"stream\");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== \"ERR_STREAM_PREMATURE_CLOSE\") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on(\"readable\", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js\n var require_from_browser = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js\"(exports, module) {\n module.exports = function() {\n throw new Error(\"Readable.from is not available in the browser\");\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js\n var require_stream_readable = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js\"(exports, module) {\n \"use strict\";\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer2 = require_buffer().Buffer;\n var OurUint8Array = window.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer2.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog(\"stream\");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = [\"error\", \"close\", \"destroy\", \"pause\", \"resume\"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === \"function\") return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);\n else emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== \"boolean\") isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, \"readableHighWaterMark\", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || \"utf8\";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable)) return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === \"function\") this._read = options.read;\n if (typeof options.destroy === \"function\") this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === \"string\") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer2.from(chunk, encoding);\n encoding = \"\";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug(\"readableAddChunk\", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== \"string\" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer2.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);\n else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit(\"data\", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);\n else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== \"string\" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE(\"chunk\", [\"string\", \"Buffer\", \"Uint8Array\"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = \"\";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== \"\") this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n if (state.flowing && state.length) return state.buffer.head.data.length;\n else return state.length;\n }\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug(\"read\", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug(\"read: emitReadable\", state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);\n else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug(\"need readable\", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug(\"length less than watermark\", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug(\"reading or ended\", doRead);\n } else if (doRead) {\n debug(\"do read\");\n state.reading = true;\n state.sync = true;\n if (state.length === 0) state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);\n else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended) state.needReadable = true;\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit(\"data\", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug(\"onEofChunk\");\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug(\"emitReadable\", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug(\"emitReadable\", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug(\"emitReadable_\", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit(\"readable\");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug(\"maybeReadMore read 0\");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED(\"_read()\"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug(\"pipe count=%d opts=%j\", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);\n else src.once(\"end\", endFn);\n dest.on(\"unpipe\", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug(\"onunpipe\");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug(\"onend\");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on(\"drain\", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug(\"cleanup\");\n dest.removeListener(\"close\", onclose);\n dest.removeListener(\"finish\", onfinish);\n dest.removeListener(\"drain\", ondrain);\n dest.removeListener(\"error\", onerror);\n dest.removeListener(\"unpipe\", onunpipe);\n src.removeListener(\"end\", onend);\n src.removeListener(\"end\", unpipe);\n src.removeListener(\"data\", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on(\"data\", ondata);\n function ondata(chunk) {\n debug(\"ondata\");\n var ret = dest.write(chunk);\n debug(\"dest.write\", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug(\"false write response, pause\", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug(\"onerror\", er);\n unpipe();\n dest.removeListener(\"error\", onerror);\n if (EElistenerCount(dest, \"error\") === 0) errorOrDestroy(dest, er);\n }\n prependListener(dest, \"error\", onerror);\n function onclose() {\n dest.removeListener(\"finish\", onfinish);\n unpipe();\n }\n dest.once(\"close\", onclose);\n function onfinish() {\n debug(\"onfinish\");\n dest.removeListener(\"close\", onclose);\n unpipe();\n }\n dest.once(\"finish\", onfinish);\n function unpipe() {\n debug(\"unpipe\");\n src.unpipe(dest);\n }\n dest.emit(\"pipe\", src);\n if (!state.flowing) {\n debug(\"pipe resume\");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug(\"pipeOnDrain\", state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, \"data\")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0) return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit(\"unpipe\", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit(\"unpipe\", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit(\"unpipe\", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === \"data\") {\n state.readableListening = this.listenerCount(\"readable\") > 0;\n if (state.flowing !== false) this.resume();\n } else if (ev === \"readable\") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug(\"on readable\", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === \"readable\") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === \"readable\" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount(\"readable\") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount(\"data\") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug(\"readable nexttick read 0\");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug(\"resume\");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug(\"resume\", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit(\"resume\");\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug(\"call pause flowing=%j\", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug(\"pause\");\n this._readableState.flowing = false;\n this.emit(\"pause\");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug(\"flow\", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on(\"end\", function() {\n debug(\"wrapped end\");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on(\"data\", function(chunk) {\n debug(\"wrapped data\");\n if (state.decoder) chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0)) return;\n else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === \"function\") {\n this[i] = /* @__PURE__ */ function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug(\"wrapped _read\", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === \"function\") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, \"readableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, \"readableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, \"readableFlowing\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, \"readableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder) ret = state.buffer.join(\"\");\n else if (state.buffer.length === 1) ret = state.buffer.first();\n else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug(\"endReadable\", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug(\"endReadableNT\", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit(\"end\");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === \"function\") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js\n var require_stream_transform = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js\"(exports, module) {\n \"use strict\";\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit(\"error\", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === \"function\") this._transform = options.transform;\n if (typeof options.flush === \"function\") this._flush = options.flush;\n }\n this.on(\"prefinish\", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === \"function\" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED(\"_transform()\"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er) return stream.emit(\"error\", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js\n var require_stream_passthrough = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js\"(exports, module) {\n \"use strict\";\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js\n var require_pipeline = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js\"(exports, module) {\n \"use strict\";\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop(err) {\n if (err) throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === \"function\";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on(\"close\", function() {\n closed = true;\n });\n if (eos === void 0) eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === \"function\") return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED(\"pipe\"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== \"function\") return noop;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS(\"streams\");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n });\n\n // node_modules/stream-browserify/index.js\n var require_stream_browserify = __commonJS({\n \"node_modules/stream-browserify/index.js\"(exports, module) {\n module.exports = Stream;\n var EE = require_events().EventEmitter;\n var inherits = require_inherits_browser();\n inherits(Stream, EE);\n Stream.Readable = require_stream_readable();\n Stream.Writable = require_stream_writable();\n Stream.Duplex = require_stream_duplex();\n Stream.Transform = require_stream_transform();\n Stream.PassThrough = require_stream_passthrough();\n Stream.finished = require_end_of_stream();\n Stream.pipeline = require_pipeline();\n Stream.Stream = Stream;\n function Stream() {\n EE.call(this);\n }\n Stream.prototype.pipe = function(dest, options) {\n var source = this;\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n source.on(\"data\", ondata);\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n dest.on(\"drain\", ondrain);\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on(\"end\", onend);\n source.on(\"close\", onclose);\n }\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n dest.end();\n }\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n if (typeof dest.destroy === \"function\") dest.destroy();\n }\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, \"error\") === 0) {\n throw er;\n }\n }\n source.on(\"error\", onerror);\n dest.on(\"error\", onerror);\n function cleanup() {\n source.removeListener(\"data\", ondata);\n dest.removeListener(\"drain\", ondrain);\n source.removeListener(\"end\", onend);\n source.removeListener(\"close\", onclose);\n source.removeListener(\"error\", onerror);\n dest.removeListener(\"error\", onerror);\n source.removeListener(\"end\", cleanup);\n source.removeListener(\"close\", cleanup);\n dest.removeListener(\"close\", cleanup);\n }\n source.on(\"end\", cleanup);\n source.on(\"close\", cleanup);\n dest.on(\"close\", cleanup);\n dest.emit(\"pipe\", source);\n return dest;\n };\n }\n });\n\n // node_modules/util/util.js\n var require_util2 = __commonJS({\n \"node_modules/util/util.js\"(exports) {\n var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors2(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n var formatRegExp = /%[sdj%]/g;\n exports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(\" \");\n }\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x2) {\n if (x2 === \"%%\") return \"%\";\n if (i >= len) return x2;\n switch (x2) {\n case \"%s\":\n return String(args[i++]);\n case \"%d\":\n return Number(args[i++]);\n case \"%j\":\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return \"[Circular]\";\n }\n default:\n return x2;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += \" \" + x;\n } else {\n str += \" \" + inspect(x);\n }\n }\n return str;\n };\n exports.deprecate = function(fn, msg) {\n if (typeof process !== \"undefined\" && process.noDeprecation === true) {\n return fn;\n }\n if (typeof process === \"undefined\") {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n };\n var debugs = {};\n var debugEnvRegex = /^$/;\n if (\"false\") {\n debugEnv = \"false\";\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, \"\\\\$&\").replace(/\\*/g, \".*\").replace(/,/g, \"$|^\").toUpperCase();\n debugEnvRegex = new RegExp(\"^\" + debugEnv + \"$\", \"i\");\n }\n var debugEnv;\n exports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error(\"%s %d: %s\", set, pid, msg);\n };\n } else {\n debugs[set] = function() {\n };\n }\n }\n return debugs[set];\n };\n function inspect(obj, opts) {\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n ctx.showHidden = opts;\n } else if (opts) {\n exports._extend(ctx, opts);\n }\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n exports.inspect = inspect;\n inspect.colors = {\n \"bold\": [1, 22],\n \"italic\": [3, 23],\n \"underline\": [4, 24],\n \"inverse\": [7, 27],\n \"white\": [37, 39],\n \"grey\": [90, 39],\n \"black\": [30, 39],\n \"blue\": [34, 39],\n \"cyan\": [36, 39],\n \"green\": [32, 39],\n \"magenta\": [35, 39],\n \"red\": [31, 39],\n \"yellow\": [33, 39]\n };\n inspect.styles = {\n \"special\": \"cyan\",\n \"number\": \"yellow\",\n \"boolean\": \"yellow\",\n \"undefined\": \"grey\",\n \"null\": \"bold\",\n \"string\": \"green\",\n \"date\": \"magenta\",\n // \"name\": intentionally not styling\n \"regexp\": \"red\"\n };\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + \"m\" + str + \"\\x1B[\" + inspect.colors[style][1] + \"m\";\n } else {\n return str;\n }\n }\n function stylizeNoColor(str, styleType) {\n return str;\n }\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n function formatValue(ctx, value, recurseTimes) {\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n if (isError(value) && (keys.indexOf(\"message\") >= 0 || keys.indexOf(\"description\") >= 0)) {\n return formatError(value);\n }\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name2 = value.name ? \": \" + value.name : \"\";\n return ctx.stylize(\"[Function\" + name2 + \"]\", \"special\");\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), \"date\");\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n var base = \"\", array = false, braces = [\"{\", \"}\"];\n if (isArray(value)) {\n array = true;\n braces = [\"[\", \"]\"];\n }\n if (isFunction(value)) {\n var n = value.name ? \": \" + value.name : \"\";\n base = \" [Function\" + n + \"]\";\n }\n if (isRegExp(value)) {\n base = \" \" + RegExp.prototype.toString.call(value);\n }\n if (isDate(value)) {\n base = \" \" + Date.prototype.toUTCString.call(value);\n }\n if (isError(value)) {\n base = \" \" + formatError(value);\n }\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n } else {\n return ctx.stylize(\"[Object]\", \"special\");\n }\n }\n ctx.seen.push(value);\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n }\n function formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize(\"undefined\", \"undefined\");\n if (isString(value)) {\n var simple = \"'\" + JSON.stringify(value).replace(/^\"|\"$/g, \"\").replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + \"'\";\n return ctx.stylize(simple, \"string\");\n }\n if (isNumber(value))\n return ctx.stylize(\"\" + value, \"number\");\n if (isBoolean(value))\n return ctx.stylize(\"\" + value, \"boolean\");\n if (isNull(value))\n return ctx.stylize(\"null\", \"null\");\n }\n function formatError(value) {\n return \"[\" + Error.prototype.toString.call(value) + \"]\";\n }\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty2(value, String(i))) {\n output.push(formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n String(i),\n true\n ));\n } else {\n output.push(\"\");\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n key,\n true\n ));\n }\n });\n return output;\n }\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name2, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize(\"[Getter/Setter]\", \"special\");\n } else {\n str = ctx.stylize(\"[Getter]\", \"special\");\n }\n } else {\n if (desc.set) {\n str = ctx.stylize(\"[Setter]\", \"special\");\n }\n }\n if (!hasOwnProperty2(visibleKeys, key)) {\n name2 = \"[\" + key + \"]\";\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf(\"\\n\") > -1) {\n if (array) {\n str = str.split(\"\\n\").map(function(line) {\n return \" \" + line;\n }).join(\"\\n\").slice(2);\n } else {\n str = \"\\n\" + str.split(\"\\n\").map(function(line) {\n return \" \" + line;\n }).join(\"\\n\");\n }\n }\n } else {\n str = ctx.stylize(\"[Circular]\", \"special\");\n }\n }\n if (isUndefined(name2)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name2 = JSON.stringify(\"\" + key);\n if (name2.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name2 = name2.slice(1, -1);\n name2 = ctx.stylize(name2, \"name\");\n } else {\n name2 = name2.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name2 = ctx.stylize(name2, \"string\");\n }\n }\n return name2 + \": \" + str;\n }\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf(\"\\n\") >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, \"\").length + 1;\n }, 0);\n if (length > 60) {\n return braces[0] + (base === \"\" ? \"\" : base + \"\\n \") + \" \" + output.join(\",\\n \") + \" \" + braces[1];\n }\n return braces[0] + base + \" \" + output.join(\", \") + \" \" + braces[1];\n }\n exports.types = require_types();\n function isArray(ar) {\n return Array.isArray(ar);\n }\n exports.isArray = isArray;\n function isBoolean(arg) {\n return typeof arg === \"boolean\";\n }\n exports.isBoolean = isBoolean;\n function isNull(arg) {\n return arg === null;\n }\n exports.isNull = isNull;\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n exports.isNullOrUndefined = isNullOrUndefined;\n function isNumber(arg) {\n return typeof arg === \"number\";\n }\n exports.isNumber = isNumber;\n function isString(arg) {\n return typeof arg === \"string\";\n }\n exports.isString = isString;\n function isSymbol(arg) {\n return typeof arg === \"symbol\";\n }\n exports.isSymbol = isSymbol;\n function isUndefined(arg) {\n return arg === void 0;\n }\n exports.isUndefined = isUndefined;\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === \"[object RegExp]\";\n }\n exports.isRegExp = isRegExp;\n exports.types.isRegExp = isRegExp;\n function isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n }\n exports.isObject = isObject;\n function isDate(d) {\n return isObject(d) && objectToString(d) === \"[object Date]\";\n }\n exports.isDate = isDate;\n exports.types.isDate = isDate;\n function isError(e) {\n return isObject(e) && (objectToString(e) === \"[object Error]\" || e instanceof Error);\n }\n exports.isError = isError;\n exports.types.isNativeError = isError;\n function isFunction(arg) {\n return typeof arg === \"function\";\n }\n exports.isFunction = isFunction;\n function isPrimitive(arg) {\n return arg === null || typeof arg === \"boolean\" || typeof arg === \"number\" || typeof arg === \"string\" || typeof arg === \"symbol\" || // ES6 symbol\n typeof arg === \"undefined\";\n }\n exports.isPrimitive = isPrimitive;\n exports.isBuffer = require_isBufferBrowser();\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n function pad(n) {\n return n < 10 ? \"0\" + n.toString(10) : n.toString(10);\n }\n var months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ];\n function timestamp() {\n var d = /* @__PURE__ */ new Date();\n var time = [\n pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())\n ].join(\":\");\n return [d.getDate(), months[d.getMonth()], time].join(\" \");\n }\n exports.log = function() {\n console.log(\"%s - %s\", timestamp(), exports.format.apply(exports, arguments));\n };\n exports.inherits = require_inherits_browser();\n exports._extend = function(origin, add) {\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n };\n function hasOwnProperty2(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n var kCustomPromisifiedSymbol = typeof Symbol !== \"undefined\" ? Symbol(\"util.promisify.custom\") : void 0;\n exports.promisify = function promisify(original) {\n if (typeof original !== \"function\")\n throw new TypeError('The \"original\" argument must be of type Function');\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== \"function\") {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function(resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function(err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n return promise;\n }\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n };\n exports.promisify.custom = kCustomPromisifiedSymbol;\n function callbackifyOnRejected(reason, cb) {\n if (!reason) {\n var newReason = new Error(\"Promise was rejected with a falsy value\");\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n }\n function callbackify(original) {\n if (typeof original !== \"function\") {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n var maybeCb = args.pop();\n if (typeof maybeCb !== \"function\") {\n throw new TypeError(\"The last argument must be of type Function\");\n }\n var self2 = this;\n var cb = function() {\n return maybeCb.apply(self2, arguments);\n };\n original.apply(this, args).then(\n function(ret) {\n process.nextTick(cb.bind(null, null, ret));\n },\n function(rej) {\n process.nextTick(callbackifyOnRejected.bind(null, rej, cb));\n }\n );\n }\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(\n callbackified,\n getOwnPropertyDescriptors(original)\n );\n return callbackified;\n }\n exports.callbackify = callbackify;\n }\n });\n\n // node_modules/assert/build/internal/errors.js\n var require_errors = __commonJS({\n \"node_modules/assert/build/internal/errors.js\"(exports, module) {\n \"use strict\";\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== void 0) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n Object.defineProperty(subClass, \"prototype\", { writable: false });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _setPrototypeOf(o, p);\n }\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n }\n function _possibleConstructorReturn(self2, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self2);\n }\n function _assertThisInitialized(self2) {\n if (self2 === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self2;\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _getPrototypeOf(o);\n }\n var codes = {};\n var assert;\n var util;\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === \"string\") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inherits(NodeError2, _Base);\n var _super = _createSuper(NodeError2);\n function NodeError2(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError2);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError2);\n }(Base);\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(\", \"), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== \"number\") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType(\"ERR_AMBIGUOUS_ARGUMENT\", 'The \"%s\" argument is ambiguous. %s', TypeError);\n createErrorType(\"ERR_INVALID_ARG_TYPE\", function(name2, expected, actual) {\n if (assert === void 0) assert = require_assert();\n assert(typeof name2 === \"string\", \"'name' must be a string\");\n var determiner;\n if (typeof expected === \"string\" && startsWith(expected, \"not \")) {\n determiner = \"must not be\";\n expected = expected.replace(/^not /, \"\");\n } else {\n determiner = \"must be\";\n }\n var msg;\n if (endsWith(name2, \" argument\")) {\n msg = \"The \".concat(name2, \" \").concat(determiner, \" \").concat(oneOf(expected, \"type\"));\n } else {\n var type = includes(name2, \".\") ? \"property\" : \"argument\";\n msg = 'The \"'.concat(name2, '\" ').concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, \"type\"));\n }\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n }, TypeError);\n createErrorType(\"ERR_INVALID_ARG_VALUE\", function(name2, value) {\n var reason = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"is invalid\";\n if (util === void 0) util = require_util2();\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name2, \"' \").concat(reason, \". Received \").concat(inspected);\n }, TypeError, RangeError);\n createErrorType(\"ERR_INVALID_RETURN_VALUE\", function(input, name2, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, ' to be returned from the \"').concat(name2, '\"') + \" function but got \".concat(type, \".\");\n }, TypeError);\n createErrorType(\"ERR_MISSING_ARGS\", function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === void 0) assert = require_assert();\n assert(args.length > 0, \"At least one arg needs to be specified\");\n var msg = \"The \";\n var len = args.length;\n args = args.map(function(a) {\n return '\"'.concat(a, '\"');\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(\", \");\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n }, TypeError);\n module.exports.codes = codes;\n }\n });\n\n // node_modules/assert/build/internal/assert/assertion_error.js\n var require_assertion_error = __commonJS({\n \"node_modules/assert/build/internal/assert/assertion_error.js\"(exports, module) {\n \"use strict\";\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function(r2) {\n return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {\n _defineProperty(e, r2, t[r2]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {\n Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n });\n }\n return e;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== void 0) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n Object.defineProperty(subClass, \"prototype\", { writable: false });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n }\n function _possibleConstructorReturn(self2, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self2);\n }\n function _assertThisInitialized(self2) {\n if (self2 === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self2;\n }\n function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? /* @__PURE__ */ new Map() : void 0;\n _wrapNativeSuper = function _wrapNativeSuper2(Class2) {\n if (Class2 === null || !_isNativeFunction(Class2)) return Class2;\n if (typeof Class2 !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class2)) return _cache.get(Class2);\n _cache.set(Class2, Wrapper);\n }\n function Wrapper() {\n return _construct(Class2, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class2.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n return _setPrototypeOf(Wrapper, Class2);\n };\n return _wrapNativeSuper(Class);\n }\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct2(Parent2, args2, Class2) {\n var a = [null];\n a.push.apply(a, args2);\n var Constructor = Function.bind.apply(Parent2, a);\n var instance = new Constructor();\n if (Class2) _setPrototypeOf(instance, Class2.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _setPrototypeOf(o, p);\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _getPrototypeOf(o);\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n var _require = require_util2();\n var inspect = _require.inspect;\n var _require2 = require_errors();\n var ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return \"\";\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n }\n var blue = \"\";\n var green = \"\";\n var red = \"\";\n var white = \"\";\n var kReadableOperator = {\n deepStrictEqual: \"Expected values to be strictly deep-equal:\",\n strictEqual: \"Expected values to be strictly equal:\",\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: \"Expected values to be loosely deep-equal:\",\n equal: \"Expected values to be loosely equal:\",\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: \"Values identical but not reference-equal:\"\n };\n var kMaxShortLength = 10;\n function copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function(key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, \"message\", {\n value: source.message\n });\n return target;\n }\n function inspectValue(val) {\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1e3,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n }\n function createErrDiff(actual, expected, operator) {\n var other = \"\";\n var res = \"\";\n var lastPos = 0;\n var end = \"\";\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split(\"\\n\");\n var expectedLines = inspectValue(expected).split(\"\\n\");\n var i = 0;\n var indicator = \"\";\n if (operator === \"strictEqual\" && _typeof(actual) === \"object\" && _typeof(expected) === \"object\" && actual !== null && expected !== null) {\n operator = \"strictEqualObject\";\n }\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== \"object\" || actual === null) && (_typeof(expected) !== \"object\" || expected === null) && (actual !== 0 || expected !== 0)) {\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== \"strictEqualObject\") {\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n if (i > 2) {\n indicator = \"\\n \".concat(repeat(\" \", i), \"^\");\n i = 0;\n }\n }\n }\n }\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n if (maxLines === 0) {\n var _actualLines = actualInspected.split(\"\\n\");\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join(\"\\n\"), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== \"\") {\n end = \"\\n \".concat(other).concat(end);\n other = \"\";\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n lastPos = i;\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n } else if (expectedLines.length < i + 1) {\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n lastPos = i;\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, \",\") || actualLine.slice(0, -1) !== expectedLine);\n if (divergingLines && endsWith(expectedLine, \",\") && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += \",\";\n }\n if (divergingLines) {\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n lastPos = i;\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n } else {\n res += other;\n other = \"\";\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : \"\", \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n }\n var AssertionError = /* @__PURE__ */ function(_Error, _inspect$custom) {\n _inherits(AssertionError2, _Error);\n var _super = _createSuper(AssertionError2);\n function AssertionError2(options) {\n var _this;\n _classCallCheck(this, AssertionError2);\n if (_typeof(options) !== \"object\" || options === null) {\n throw new ERR_INVALID_ARG_TYPE(\"options\", \"Object\", options);\n }\n var message = options.message, operator = options.operator, stackStartFn = options.stackStartFn;\n var actual = options.actual, expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = \"\";\n green = \"\";\n white = \"\";\n red = \"\";\n }\n }\n if (_typeof(actual) === \"object\" && actual !== null && _typeof(expected) === \"object\" && expected !== null && \"stack\" in actual && actual instanceof Error && \"stack\" in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === \"deepStrictEqual\" || operator === \"strictEqual\") {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === \"notDeepStrictEqual\" || operator === \"notStrictEqual\") {\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split(\"\\n\");\n if (operator === \"notStrictEqual\" && _typeof(actual) === \"object\" && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join(\"\\n\"), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = \"\";\n var knownOperators = kReadableOperator[operator];\n if (operator === \"notDeepEqual\" || operator === \"notEqual\") {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === \"deepEqual\" || operator === \"equal\") {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), \"name\", {\n value: \"AssertionError [ERR_ASSERTION]\",\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = \"ERR_ASSERTION\";\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n _this.stack;\n _this.name = \"AssertionError\";\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError2, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError2;\n }(/* @__PURE__ */ _wrapNativeSuper(Error), inspect.custom);\n module.exports = AssertionError;\n }\n });\n\n // node_modules/object-keys/isArguments.js\n var require_isArguments = __commonJS({\n \"node_modules/object-keys/isArguments.js\"(exports, module) {\n \"use strict\";\n var toStr = Object.prototype.toString;\n module.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === \"[object Arguments]\";\n if (!isArgs) {\n isArgs = str !== \"[object Array]\" && value !== null && typeof value === \"object\" && typeof value.length === \"number\" && value.length >= 0 && toStr.call(value.callee) === \"[object Function]\";\n }\n return isArgs;\n };\n }\n });\n\n // node_modules/object-keys/implementation.js\n var require_implementation2 = __commonJS({\n \"node_modules/object-keys/implementation.js\"(exports, module) {\n \"use strict\";\n var keysShim;\n if (!Object.keys) {\n has = Object.prototype.hasOwnProperty;\n toStr = Object.prototype.toString;\n isArgs = require_isArguments();\n isEnumerable = Object.prototype.propertyIsEnumerable;\n hasDontEnumBug = !isEnumerable.call({ toString: null }, \"toString\");\n hasProtoEnumBug = isEnumerable.call(function() {\n }, \"prototype\");\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ];\n equalsConstructorPrototype = function(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true\n };\n hasAutomationEqualityBug = function() {\n if (typeof window === \"undefined\") {\n return false;\n }\n for (var k in window) {\n try {\n if (!excludedKeys[\"$\" + k] && has.call(window, k) && window[k] !== null && typeof window[k] === \"object\") {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n } catch (e) {\n return true;\n }\n }\n return false;\n }();\n equalsConstructorPrototypeIfNotBuggy = function(o) {\n if (typeof window === \"undefined\" || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(o);\n }\n try {\n return equalsConstructorPrototype(o);\n } catch (e) {\n return false;\n }\n };\n keysShim = function keys(object) {\n var isObject = object !== null && typeof object === \"object\";\n var isFunction = toStr.call(object) === \"[object Function]\";\n var isArguments = isArgs(object);\n var isString = isObject && toStr.call(object) === \"[object String]\";\n var theKeys = [];\n if (!isObject && !isFunction && !isArguments) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n var skipProto = hasProtoEnumBug && isFunction;\n if (isString && object.length > 0 && !has.call(object, 0)) {\n for (var i = 0; i < object.length; ++i) {\n theKeys.push(String(i));\n }\n }\n if (isArguments && object.length > 0) {\n for (var j = 0; j < object.length; ++j) {\n theKeys.push(String(j));\n }\n } else {\n for (var name2 in object) {\n if (!(skipProto && name2 === \"prototype\") && has.call(object, name2)) {\n theKeys.push(String(name2));\n }\n }\n }\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n for (var k = 0; k < dontEnums.length; ++k) {\n if (!(skipConstructor && dontEnums[k] === \"constructor\") && has.call(object, dontEnums[k])) {\n theKeys.push(dontEnums[k]);\n }\n }\n }\n return theKeys;\n };\n }\n var has;\n var toStr;\n var isArgs;\n var isEnumerable;\n var hasDontEnumBug;\n var hasProtoEnumBug;\n var dontEnums;\n var equalsConstructorPrototype;\n var excludedKeys;\n var hasAutomationEqualityBug;\n var equalsConstructorPrototypeIfNotBuggy;\n module.exports = keysShim;\n }\n });\n\n // node_modules/object-keys/index.js\n var require_object_keys = __commonJS({\n \"node_modules/object-keys/index.js\"(exports, module) {\n \"use strict\";\n var slice = Array.prototype.slice;\n var isArgs = require_isArguments();\n var origKeys = Object.keys;\n var keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n } : require_implementation2();\n var originalKeys = Object.keys;\n keysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function() {\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n return Object.keys || keysShim;\n };\n module.exports = keysShim;\n }\n });\n\n // node_modules/object.assign/implementation.js\n var require_implementation3 = __commonJS({\n \"node_modules/object.assign/implementation.js\"(exports, module) {\n \"use strict\";\n var objectKeys = require_object_keys();\n var hasSymbols = require_shams()();\n var callBound = require_callBound();\n var toObject = Object;\n var $push = callBound(\"Array.prototype.push\");\n var $propIsEnumerable = callBound(\"Object.prototype.propertyIsEnumerable\");\n var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n module.exports = function assign(target, source1) {\n if (target == null) {\n throw new TypeError(\"target must be an object\");\n }\n var to = toObject(target);\n if (arguments.length === 1) {\n return to;\n }\n for (var s = 1; s < arguments.length; ++s) {\n var from = toObject(arguments[s]);\n var keys = objectKeys(from);\n var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n if (getSymbols) {\n var syms = getSymbols(from);\n for (var j = 0; j < syms.length; ++j) {\n var key = syms[j];\n if ($propIsEnumerable(from, key)) {\n $push(keys, key);\n }\n }\n }\n for (var i = 0; i < keys.length; ++i) {\n var nextKey = keys[i];\n if ($propIsEnumerable(from, nextKey)) {\n var propValue = from[nextKey];\n to[nextKey] = propValue;\n }\n }\n }\n return to;\n };\n }\n });\n\n // node_modules/object.assign/polyfill.js\n var require_polyfill = __commonJS({\n \"node_modules/object.assign/polyfill.js\"(exports, module) {\n \"use strict\";\n var implementation = require_implementation3();\n var lacksProperEnumerationOrder = function() {\n if (!Object.assign) {\n return false;\n }\n var str = \"abcdefghijklmnopqrst\";\n var letters = str.split(\"\");\n var map = {};\n for (var i = 0; i < letters.length; ++i) {\n map[letters[i]] = letters[i];\n }\n var obj = Object.assign({}, map);\n var actual = \"\";\n for (var k in obj) {\n actual += k;\n }\n return str !== actual;\n };\n var assignHasPendingExceptions = function() {\n if (!Object.assign || !Object.preventExtensions) {\n return false;\n }\n var thrower = Object.preventExtensions({ 1: 2 });\n try {\n Object.assign(thrower, \"xy\");\n } catch (e) {\n return thrower[1] === \"y\";\n }\n return false;\n };\n module.exports = function getPolyfill() {\n if (!Object.assign) {\n return implementation;\n }\n if (lacksProperEnumerationOrder()) {\n return implementation;\n }\n if (assignHasPendingExceptions()) {\n return implementation;\n }\n return Object.assign;\n };\n }\n });\n\n // node_modules/object-is/implementation.js\n var require_implementation4 = __commonJS({\n \"node_modules/object-is/implementation.js\"(exports, module) {\n \"use strict\";\n var numberIsNaN = function(value) {\n return value !== value;\n };\n module.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n if (a === b) {\n return true;\n }\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n return false;\n };\n }\n });\n\n // node_modules/object-is/polyfill.js\n var require_polyfill2 = __commonJS({\n \"node_modules/object-is/polyfill.js\"(exports, module) {\n \"use strict\";\n var implementation = require_implementation4();\n module.exports = function getPolyfill() {\n return typeof Object.is === \"function\" ? Object.is : implementation;\n };\n }\n });\n\n // node_modules/define-properties/index.js\n var require_define_properties = __commonJS({\n \"node_modules/define-properties/index.js\"(exports, module) {\n \"use strict\";\n var keys = require_object_keys();\n var hasSymbols = typeof Symbol === \"function\" && typeof Symbol(\"foo\") === \"symbol\";\n var toStr = Object.prototype.toString;\n var concat = Array.prototype.concat;\n var origDefineProperty = Object.defineProperty;\n var isFunction = function(fn) {\n return typeof fn === \"function\" && toStr.call(fn) === \"[object Function]\";\n };\n var hasPropertyDescriptors = require_has_property_descriptors()();\n var supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n var defineProperty = function(object, name2, value, predicate) {\n if (name2 in object) {\n if (predicate === true) {\n if (object[name2] === value) {\n return;\n }\n } else if (!isFunction(predicate) || !predicate()) {\n return;\n }\n }\n if (supportsDescriptors) {\n origDefineProperty(object, name2, {\n configurable: true,\n enumerable: false,\n value,\n writable: true\n });\n } else {\n object[name2] = value;\n }\n };\n var defineProperties = function(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n };\n defineProperties.supportsDescriptors = !!supportsDescriptors;\n module.exports = defineProperties;\n }\n });\n\n // node_modules/object-is/shim.js\n var require_shim = __commonJS({\n \"node_modules/object-is/shim.js\"(exports, module) {\n \"use strict\";\n var getPolyfill = require_polyfill2();\n var define2 = require_define_properties();\n module.exports = function shimObjectIs() {\n var polyfill = getPolyfill();\n define2(Object, { is: polyfill }, {\n is: function testObjectIs() {\n return Object.is !== polyfill;\n }\n });\n return polyfill;\n };\n }\n });\n\n // node_modules/object-is/index.js\n var require_object_is = __commonJS({\n \"node_modules/object-is/index.js\"(exports, module) {\n \"use strict\";\n var define2 = require_define_properties();\n var callBind = require_call_bind();\n var implementation = require_implementation4();\n var getPolyfill = require_polyfill2();\n var shim = require_shim();\n var polyfill = callBind(getPolyfill(), Object);\n define2(polyfill, {\n getPolyfill,\n implementation,\n shim\n });\n module.exports = polyfill;\n }\n });\n\n // node_modules/is-nan/implementation.js\n var require_implementation5 = __commonJS({\n \"node_modules/is-nan/implementation.js\"(exports, module) {\n \"use strict\";\n module.exports = function isNaN2(value) {\n return value !== value;\n };\n }\n });\n\n // node_modules/is-nan/polyfill.js\n var require_polyfill3 = __commonJS({\n \"node_modules/is-nan/polyfill.js\"(exports, module) {\n \"use strict\";\n var implementation = require_implementation5();\n module.exports = function getPolyfill() {\n if (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN(\"a\")) {\n return Number.isNaN;\n }\n return implementation;\n };\n }\n });\n\n // node_modules/is-nan/shim.js\n var require_shim2 = __commonJS({\n \"node_modules/is-nan/shim.js\"(exports, module) {\n \"use strict\";\n var define2 = require_define_properties();\n var getPolyfill = require_polyfill3();\n module.exports = function shimNumberIsNaN() {\n var polyfill = getPolyfill();\n define2(Number, { isNaN: polyfill }, {\n isNaN: function testIsNaN() {\n return Number.isNaN !== polyfill;\n }\n });\n return polyfill;\n };\n }\n });\n\n // node_modules/is-nan/index.js\n var require_is_nan = __commonJS({\n \"node_modules/is-nan/index.js\"(exports, module) {\n \"use strict\";\n var callBind = require_call_bind();\n var define2 = require_define_properties();\n var implementation = require_implementation5();\n var getPolyfill = require_polyfill3();\n var shim = require_shim2();\n var polyfill = callBind(getPolyfill(), Number);\n define2(polyfill, {\n getPolyfill,\n implementation,\n shim\n });\n module.exports = polyfill;\n }\n });\n\n // node_modules/assert/build/internal/util/comparisons.js\n var require_comparisons = __commonJS({\n \"node_modules/assert/build/internal/util/comparisons.js\"(exports, module) {\n \"use strict\";\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e, n, i, u, a = [], f = true, o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = false;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ;\n } catch (r2) {\n o = true, n = r2;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n var regexFlagsSupported = /a/g.flags !== void 0;\n var arrayFromSet = function arrayFromSet2(set) {\n var array = [];\n set.forEach(function(value) {\n return array.push(value);\n });\n return array;\n };\n var arrayFromMap = function arrayFromMap2(map) {\n var array = [];\n map.forEach(function(value, key) {\n return array.push([key, value]);\n });\n return array;\n };\n var objectIs = Object.is ? Object.is : require_object_is();\n var objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function() {\n return [];\n };\n var numberIsNaN = Number.isNaN ? Number.isNaN : require_is_nan();\n function uncurryThis(f) {\n return f.call.bind(f);\n }\n var hasOwnProperty2 = uncurryThis(Object.prototype.hasOwnProperty);\n var propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\n var objectToString = uncurryThis(Object.prototype.toString);\n var _require$types = require_util2().types;\n var isAnyArrayBuffer = _require$types.isAnyArrayBuffer;\n var isArrayBufferView = _require$types.isArrayBufferView;\n var isDate = _require$types.isDate;\n var isMap = _require$types.isMap;\n var isRegExp = _require$types.isRegExp;\n var isSet = _require$types.isSet;\n var isNativeError = _require$types.isNativeError;\n var isBoxedPrimitive = _require$types.isBoxedPrimitive;\n var isNumberObject = _require$types.isNumberObject;\n var isStringObject = _require$types.isStringObject;\n var isBooleanObject = _require$types.isBooleanObject;\n var isBigIntObject = _require$types.isBigIntObject;\n var isSymbolObject = _require$types.isSymbolObject;\n var isFloat32Array = _require$types.isFloat32Array;\n var isFloat64Array = _require$types.isFloat64Array;\n function isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n return key.length === 10 && key >= Math.pow(2, 32);\n }\n function getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n }\n function compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var 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 if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n }\n var ONLY_ENUMERABLE = void 0;\n var kStrict = true;\n var kLoose = false;\n var kNoIterator = 0;\n var kIsArray = 1;\n var kIsSet = 2;\n var kIsMap = 3;\n function areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n }\n function areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n }\n function areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n }\n function areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n }\n function isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n }\n function innerDeepEqual(val1, val2, strict, memos) {\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n if (strict) {\n if (_typeof(val1) !== \"object\") {\n return typeof val1 === \"number\" && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== \"object\" || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== \"object\") {\n if (val2 === null || _typeof(val2) !== \"object\") {\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== \"object\") {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n if (val1Tag === \"[object Object]\") {\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n }\n function getEnumerables(val, keys) {\n return keys.filter(function(k) {\n return propertyIsEnumerable(val, k);\n });\n }\n function keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty2(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n if (memos === void 0) {\n memos = {\n val1: /* @__PURE__ */ new Map(),\n val2: /* @__PURE__ */ new Map(),\n position: 0\n };\n } else {\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== void 0) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== void 0) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n }\n function setHasEqualElement(set, val1, strict, memo) {\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n set.delete(val2);\n return true;\n }\n }\n return false;\n }\n function findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case \"undefined\":\n return null;\n case \"object\":\n return void 0;\n case \"symbol\":\n return false;\n case \"string\":\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case \"number\":\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n }\n function setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n }\n function mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === void 0 && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n }\n function setEquiv(a, b, strict, memo) {\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n if (_typeof(val) === \"object\" && val !== null) {\n if (set === null) {\n set = /* @__PURE__ */ new Set();\n }\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = /* @__PURE__ */ new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n if (_typeof(_val) === \"object\" && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n }\n function mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n }\n function mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2), key = _aEntries$i[0], item1 = _aEntries$i[1];\n if (_typeof(key) === \"object\" && key !== null) {\n if (set === null) {\n set = /* @__PURE__ */ new Set();\n }\n set.add(key);\n } else {\n var item2 = b.get(key);\n if (item2 === void 0 && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = /* @__PURE__ */ new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2), _key = _bEntries$_i[0], item = _bEntries$_i[1];\n if (_typeof(_key) === \"object\" && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n }\n function objEquiv(a, b, strict, keys, memos, iterationType) {\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty2(a, i)) {\n if (!hasOwnProperty2(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty2(b, i)) {\n return false;\n } else {\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty2(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n }\n function isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n }\n function isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n }\n module.exports = {\n isDeepEqual,\n isDeepStrictEqual\n };\n }\n });\n\n // node_modules/assert/build/assert.js\n var require_assert = __commonJS({\n \"node_modules/assert/build/assert.js\"(exports, module) {\n \"use strict\";\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== void 0) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = require_errors();\n var _require$codes = _require.codes;\n var ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE;\n var ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var AssertionError = require_assertion_error();\n var _require2 = require_util2();\n var inspect = _require2.inspect;\n var _require$types = require_util2().types;\n var isPromise = _require$types.isPromise;\n var isRegExp = _require$types.isRegExp;\n var objectAssign = require_polyfill()();\n var objectIs = require_polyfill2()();\n var RegExpPrototypeTest = require_callBound()(\"RegExp.prototype.test\");\n var isDeepEqual;\n var isDeepStrictEqual;\n function lazyLoadComparison() {\n var comparison = require_comparisons();\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n }\n var warned = false;\n var assert = module.exports = ok;\n var NO_EXCEPTION_SENTINEL = {};\n function innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n }\n function fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = \"Failed\";\n } else if (argsLen === 1) {\n message = actual;\n actual = void 0;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn(\"assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.\", \"DeprecationWarning\", \"DEP0094\");\n }\n if (argsLen === 2) operator = \"!=\";\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual,\n expected,\n operator: operator === void 0 ? \"fail\" : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== void 0) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n }\n assert.fail = fail;\n assert.AssertionError = AssertionError;\n function innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = \"No value argument passed to `assert.ok()`\";\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message,\n operator: \"==\",\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n }\n function ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n }\n assert.ok = ok;\n assert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (actual != expected) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"==\",\n stackStartFn: equal\n });\n }\n };\n assert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (actual == expected) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"!=\",\n stackStartFn: notEqual\n });\n }\n };\n assert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"deepEqual\",\n stackStartFn: deepEqual\n });\n }\n };\n assert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"notDeepEqual\",\n stackStartFn: notDeepEqual\n });\n }\n };\n assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"deepStrictEqual\",\n stackStartFn: deepStrictEqual\n });\n }\n };\n assert.notDeepStrictEqual = notDeepStrictEqual;\n function notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"notDeepStrictEqual\",\n stackStartFn: notDeepStrictEqual\n });\n }\n }\n assert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"strictEqual\",\n stackStartFn: strictEqual\n });\n }\n };\n assert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"notStrictEqual\",\n stackStartFn: notStrictEqual\n });\n }\n };\n var Comparison = /* @__PURE__ */ _createClass(function Comparison2(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison2);\n keys.forEach(function(key) {\n if (key in obj) {\n if (actual !== void 0 && typeof actual[key] === \"string\" && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n });\n function compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: \"deepStrictEqual\",\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual,\n expected,\n message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n }\n function expectedException(actual, expected, msg, fn) {\n if (typeof expected !== \"function\") {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE(\"expected\", [\"Function\", \"RegExp\"], expected);\n }\n if (_typeof(actual) !== \"object\" || actual === null) {\n var err = new AssertionError({\n actual,\n expected,\n message: msg,\n operator: \"deepStrictEqual\",\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n if (expected instanceof Error) {\n keys.push(\"name\", \"message\");\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE(\"error\", expected, \"may not be an empty object\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n keys.forEach(function(key) {\n if (typeof actual[key] === \"string\" && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n if (expected.prototype !== void 0 && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n }\n function getActual(fn) {\n if (typeof fn !== \"function\") {\n throw new ERR_INVALID_ARG_TYPE(\"fn\", \"Function\", fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n }\n function checkIsPromise(obj) {\n return isPromise(obj) || obj !== null && _typeof(obj) === \"object\" && typeof obj.then === \"function\" && typeof obj.catch === \"function\";\n }\n function waitForActual(promiseFn) {\n return Promise.resolve().then(function() {\n var resultPromise;\n if (typeof promiseFn === \"function\") {\n resultPromise = promiseFn();\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE(\"instance of Promise\", \"promiseFn\", resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE(\"promiseFn\", [\"Function\", \"Promise\"], promiseFn);\n }\n return Promise.resolve().then(function() {\n return resultPromise;\n }).then(function() {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function(e) {\n return e;\n });\n });\n }\n function expectsError(stackStartFn, actual, error, message) {\n if (typeof error === \"string\") {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE(\"error\", [\"Object\", \"Error\", \"Function\", \"RegExp\"], error);\n }\n if (_typeof(actual) === \"object\" && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT(\"error/message\", 'The error message \"'.concat(actual.message, '\" is identical to the message.'));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT(\"error/message\", 'The error \"'.concat(actual, '\" is identical to the message.'));\n }\n message = error;\n error = void 0;\n } else if (error != null && _typeof(error) !== \"object\" && typeof error !== \"function\") {\n throw new ERR_INVALID_ARG_TYPE(\"error\", [\"Object\", \"Error\", \"Function\", \"RegExp\"], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = \"\";\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : \".\";\n var fnType = stackStartFn.name === \"rejects\" ? \"rejection\" : \"exception\";\n innerFail({\n actual: void 0,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n }\n function expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === \"string\") {\n message = error;\n error = void 0;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : \".\";\n var fnType = stackStartFn.name === \"doesNotReject\" ? \"rejection\" : \"exception\";\n innerFail({\n actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + 'Actual message: \"'.concat(actual && actual.message, '\"'),\n stackStartFn\n });\n }\n throw actual;\n }\n assert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n };\n assert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function(result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n };\n assert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n };\n assert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function(result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n };\n assert.ifError = function ifError(err) {\n if (err !== null && err !== void 0) {\n var message = \"ifError got unwanted exception: \";\n if (_typeof(err) === \"object\" && typeof err.message === \"string\") {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: \"ifError\",\n message,\n stackStartFn: ifError\n });\n var origStack = err.stack;\n if (typeof origStack === \"string\") {\n var tmp2 = origStack.split(\"\\n\");\n tmp2.shift();\n var tmp1 = newErr.stack.split(\"\\n\");\n for (var i = 0; i < tmp2.length; i++) {\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join(\"\\n\"), \"\\n\").concat(tmp2.join(\"\\n\"));\n }\n throw newErr;\n }\n };\n function internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE(\"regexp\", \"RegExp\", regexp);\n }\n var match = fnName === \"match\";\n if (typeof string !== \"string\" || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n message = message || (typeof string !== \"string\" ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? \"The input did not match the regular expression \" : \"The input was expected to not match the regular expression \") + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n }\n assert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, \"match\");\n };\n assert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, \"doesNotMatch\");\n };\n function strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n }\n assert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n });\n assert.strict.strict = assert.strict;\n }\n });\n\n // node_modules/stream-parser/node_modules/ms/index.js\n var require_ms = __commonJS({\n \"node_modules/stream-parser/node_modules/ms/index.js\"(exports, module) {\n var s = 1e3;\n var m = s * 60;\n var h = m * 60;\n var d = h * 24;\n var y = d * 365.25;\n module.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === \"string\" && val.length > 0) {\n return parse2(val);\n } else if (type === \"number\" && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n \"val is not a non-empty string or a valid number. val=\" + JSON.stringify(val)\n );\n };\n function parse2(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || \"ms\").toLowerCase();\n switch (type) {\n case \"years\":\n case \"year\":\n case \"yrs\":\n case \"yr\":\n case \"y\":\n return n * y;\n case \"days\":\n case \"day\":\n case \"d\":\n return n * d;\n case \"hours\":\n case \"hour\":\n case \"hrs\":\n case \"hr\":\n case \"h\":\n return n * h;\n case \"minutes\":\n case \"minute\":\n case \"mins\":\n case \"min\":\n case \"m\":\n return n * m;\n case \"seconds\":\n case \"second\":\n case \"secs\":\n case \"sec\":\n case \"s\":\n return n * s;\n case \"milliseconds\":\n case \"millisecond\":\n case \"msecs\":\n case \"msec\":\n case \"ms\":\n return n;\n default:\n return void 0;\n }\n }\n function fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + \"d\";\n }\n if (ms >= h) {\n return Math.round(ms / h) + \"h\";\n }\n if (ms >= m) {\n return Math.round(ms / m) + \"m\";\n }\n if (ms >= s) {\n return Math.round(ms / s) + \"s\";\n }\n return ms + \"ms\";\n }\n function fmtLong(ms) {\n return plural(ms, d, \"day\") || plural(ms, h, \"hour\") || plural(ms, m, \"minute\") || plural(ms, s, \"second\") || ms + \" ms\";\n }\n function plural(ms, n, name2) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + \" \" + name2;\n }\n return Math.ceil(ms / n) + \" \" + name2 + \"s\";\n }\n }\n });\n\n // node_modules/stream-parser/node_modules/debug/src/debug.js\n var require_debug = __commonJS({\n \"node_modules/stream-parser/node_modules/debug/src/debug.js\"(exports, module) {\n exports = module.exports = createDebug.debug = createDebug[\"default\"] = createDebug;\n exports.coerce = coerce;\n exports.disable = disable;\n exports.enable = enable;\n exports.enabled = enabled;\n exports.humanize = require_ms();\n exports.names = [];\n exports.skips = [];\n exports.formatters = {};\n var prevTime;\n function selectColor(namespace) {\n var hash = 0, i;\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0;\n }\n return exports.colors[Math.abs(hash) % exports.colors.length];\n }\n function createDebug(namespace) {\n function debug() {\n if (!debug.enabled) return;\n var self2 = debug;\n var curr = +/* @__PURE__ */ new Date();\n var ms = curr - (prevTime || curr);\n self2.diff = ms;\n self2.prev = prevTime;\n self2.curr = curr;\n prevTime = curr;\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n args[0] = exports.coerce(args[0]);\n if (\"string\" !== typeof args[0]) {\n args.unshift(\"%O\");\n }\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n if (match === \"%%\") return match;\n index++;\n var formatter = exports.formatters[format];\n if (\"function\" === typeof formatter) {\n var val = args[index];\n match = formatter.call(self2, val);\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n exports.formatArgs.call(self2, args);\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self2, args);\n }\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n if (\"function\" === typeof exports.init) {\n exports.init(debug);\n }\n return debug;\n }\n function enable(namespaces) {\n exports.save(namespaces);\n exports.names = [];\n exports.skips = [];\n var split = (typeof namespaces === \"string\" ? namespaces : \"\").split(/[\\s,]+/);\n var len = split.length;\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue;\n namespaces = split[i].replace(/\\*/g, \".*?\");\n if (namespaces[0] === \"-\") {\n exports.skips.push(new RegExp(\"^\" + namespaces.substr(1) + \"$\"));\n } else {\n exports.names.push(new RegExp(\"^\" + namespaces + \"$\"));\n }\n }\n }\n function disable() {\n exports.enable(\"\");\n }\n function enabled(name2) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name2)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name2)) {\n return true;\n }\n }\n return false;\n }\n function coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n }\n }\n });\n\n // node_modules/stream-parser/node_modules/debug/src/browser.js\n var require_browser2 = __commonJS({\n \"node_modules/stream-parser/node_modules/debug/src/browser.js\"(exports, module) {\n exports = module.exports = require_debug();\n exports.log = log;\n exports.formatArgs = formatArgs;\n exports.save = save;\n exports.load = load;\n exports.useColors = useColors;\n exports.storage = \"undefined\" != typeof chrome && \"undefined\" != typeof chrome.storage ? chrome.storage.local : localstorage();\n exports.colors = [\n \"lightseagreen\",\n \"forestgreen\",\n \"goldenrod\",\n \"dodgerblue\",\n \"darkorchid\",\n \"crimson\"\n ];\n function useColors() {\n if (typeof window !== \"undefined\" && window.process && window.process.type === \"renderer\") {\n return true;\n }\n return typeof document !== \"undefined\" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== \"undefined\" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== \"undefined\" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== \"undefined\" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n }\n exports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return \"[UnexpectedJSONParseError]: \" + err.message;\n }\n };\n function formatArgs(args) {\n var useColors2 = this.useColors;\n args[0] = (useColors2 ? \"%c\" : \"\") + this.namespace + (useColors2 ? \" %c\" : \" \") + args[0] + (useColors2 ? \"%c \" : \" \") + \"+\" + exports.humanize(this.diff);\n if (!useColors2) return;\n var c = \"color: \" + this.color;\n args.splice(1, 0, c, \"color: inherit\");\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if (\"%%\" === match) return;\n index++;\n if (\"%c\" === match) {\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n }\n function log() {\n return \"object\" === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n }\n function save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem(\"debug\");\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {\n }\n }\n function load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch (e) {\n }\n if (!r && typeof process !== \"undefined\" && \"env\" in process) {\n r = process.env.DEBUG;\n }\n return r;\n }\n exports.enable(load());\n function localstorage() {\n try {\n return window.localStorage;\n } catch (e) {\n }\n }\n }\n });\n\n // node_modules/stream-parser/index.js\n var require_stream_parser = __commonJS({\n \"node_modules/stream-parser/index.js\"(exports, module) {\n var assert = require_assert();\n var debug = require_browser2()(\"stream-parser\");\n module.exports = Parser;\n var INIT = -1;\n var BUFFERING = 0;\n var SKIPPING = 1;\n var PASSTHROUGH = 2;\n function Parser(stream) {\n var isTransform = stream && \"function\" == typeof stream._transform;\n var isWritable = stream && \"function\" == typeof stream._write;\n if (!isTransform && !isWritable) throw new Error(\"must pass a Writable or Transform stream in\");\n debug(\"extending Parser into stream\");\n stream._bytes = _bytes;\n stream._skipBytes = _skipBytes;\n if (isTransform) stream._passthrough = _passthrough;\n if (isTransform) {\n stream._transform = transform;\n } else {\n stream._write = write;\n }\n }\n function init(stream) {\n debug(\"initializing parser stream\");\n stream._parserBytesLeft = 0;\n stream._parserBuffers = [];\n stream._parserBuffered = 0;\n stream._parserState = INIT;\n stream._parserCallback = null;\n if (\"function\" == typeof stream.push) {\n stream._parserOutput = stream.push.bind(stream);\n }\n stream._parserInit = true;\n }\n function _bytes(n, fn) {\n assert(!this._parserCallback, 'there is already a \"callback\" set!');\n assert(isFinite(n) && n > 0, 'can only buffer a finite number of bytes > 0, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug(\"buffering %o bytes\", n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = BUFFERING;\n }\n function _skipBytes(n, fn) {\n assert(!this._parserCallback, 'there is already a \"callback\" set!');\n assert(n > 0, 'can only skip > 0 bytes, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug(\"skipping %o bytes\", n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = SKIPPING;\n }\n function _passthrough(n, fn) {\n assert(!this._parserCallback, 'There is already a \"callback\" set!');\n assert(n > 0, 'can only pass through > 0 bytes, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug(\"passing through %o bytes\", n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = PASSTHROUGH;\n }\n function write(chunk, encoding, fn) {\n if (!this._parserInit) init(this);\n debug(\"write(%o bytes)\", chunk.length);\n if (\"function\" == typeof encoding) fn = encoding;\n data(this, chunk, null, fn);\n }\n function transform(chunk, output, fn) {\n if (!this._parserInit) init(this);\n debug(\"transform(%o bytes)\", chunk.length);\n if (\"function\" != typeof output) {\n output = this._parserOutput;\n }\n data(this, chunk, output, fn);\n }\n function _data(stream, chunk, output, fn) {\n if (stream._parserBytesLeft <= 0) {\n return fn(new Error(\"got data but not currently parsing anything\"));\n }\n if (chunk.length <= stream._parserBytesLeft) {\n return function() {\n return process2(stream, chunk, output, fn);\n };\n } else {\n return function() {\n var b = chunk.slice(0, stream._parserBytesLeft);\n return process2(stream, b, output, function(err) {\n if (err) return fn(err);\n if (chunk.length > b.length) {\n return function() {\n return _data(stream, chunk.slice(b.length), output, fn);\n };\n }\n });\n };\n }\n }\n function process2(stream, chunk, output, fn) {\n stream._parserBytesLeft -= chunk.length;\n debug(\"%o bytes left for stream piece\", stream._parserBytesLeft);\n if (stream._parserState === BUFFERING) {\n stream._parserBuffers.push(chunk);\n stream._parserBuffered += chunk.length;\n } else if (stream._parserState === PASSTHROUGH) {\n output(chunk);\n }\n if (0 === stream._parserBytesLeft) {\n var cb = stream._parserCallback;\n if (cb && stream._parserState === BUFFERING && stream._parserBuffers.length > 1) {\n chunk = Buffer.concat(stream._parserBuffers, stream._parserBuffered);\n }\n if (stream._parserState !== BUFFERING) {\n chunk = null;\n }\n stream._parserCallback = null;\n stream._parserBuffered = 0;\n stream._parserState = INIT;\n stream._parserBuffers.splice(0);\n if (cb) {\n var args = [];\n if (chunk) {\n args.push(chunk);\n } else {\n }\n if (output) {\n args.push(output);\n }\n var async = cb.length > args.length;\n if (async) {\n args.push(trampoline(fn));\n }\n var rtn = cb.apply(stream, args);\n if (!async || fn === rtn) return fn;\n }\n } else {\n return fn;\n }\n }\n var data = trampoline(_data);\n function trampoline(fn) {\n return function() {\n var result = fn.apply(this, arguments);\n while (\"function\" == typeof result) {\n result = result();\n }\n return result;\n };\n }\n }\n });\n\n // node_modules/probe-image-size/lib/common.js\n var require_common = __commonJS({\n \"node_modules/probe-image-size/lib/common.js\"(exports) {\n \"use strict\";\n var Transform = require_stream_browserify().Transform;\n var streamParser = require_stream_parser();\n function ParserStream() {\n Transform.call(this, { readableObjectMode: true });\n }\n ParserStream.prototype = Object.create(Transform.prototype);\n ParserStream.prototype.constructor = ParserStream;\n streamParser(ParserStream.prototype);\n exports.ParserStream = ParserStream;\n exports.sliceEq = function(src, start, dest) {\n for (var i = start, j = 0; j < dest.length; ) {\n if (src[i++] !== dest[j++]) return false;\n }\n return true;\n };\n exports.str2arr = function(str, format) {\n var arr = [], i = 0;\n if (format && format === \"hex\") {\n while (i < str.length) {\n arr.push(parseInt(str.slice(i, i + 2), 16));\n i += 2;\n }\n } else {\n for (; i < str.length; i++) {\n arr.push(str.charCodeAt(i) & 255);\n }\n }\n return arr;\n };\n exports.readUInt16LE = function(data, offset) {\n return data[offset] | data[offset + 1] << 8;\n };\n exports.readUInt16BE = function(data, offset) {\n return data[offset + 1] | data[offset] << 8;\n };\n exports.readUInt32LE = function(data, offset) {\n return data[offset] | data[offset + 1] << 8 | data[offset + 2] << 16 | data[offset + 3] * 16777216;\n };\n exports.readUInt32BE = function(data, offset) {\n return data[offset + 3] | data[offset + 2] << 8 | data[offset + 1] << 16 | data[offset] * 16777216;\n };\n function ProbeError(message, code, statusCode) {\n Error.call(this);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || \"\";\n }\n this.name = this.constructor.name;\n this.message = message;\n if (code) this.code = code;\n if (statusCode) this.statusCode = statusCode;\n }\n ProbeError.prototype = Object.create(Error.prototype);\n ProbeError.prototype.constructor = ProbeError;\n exports.ProbeError = ProbeError;\n }\n });\n\n // node_modules/probe-image-size/lib/miaf_utils.js\n var require_miaf_utils = __commonJS({\n \"node_modules/probe-image-size/lib/miaf_utils.js\"(exports, module) {\n \"use strict\";\n var readUInt16BE = require_common().readUInt16BE;\n var readUInt32BE = require_common().readUInt32BE;\n function unbox(data, offset) {\n if (data.length < 4 + offset) return null;\n var size = readUInt32BE(data, offset);\n if (data.length < size + offset || size < 8) return null;\n return {\n boxtype: String.fromCharCode.apply(null, data.slice(offset + 4, offset + 8)),\n data: data.slice(offset + 8, offset + size),\n end: offset + size\n };\n }\n module.exports.unbox = unbox;\n function scan_ipco(data, sandbox) {\n var offset = 0;\n for (; ; ) {\n var box = unbox(data, offset);\n if (!box) break;\n switch (box.boxtype) {\n case \"ispe\":\n sandbox.sizes.push({\n width: readUInt32BE(box.data, 4),\n height: readUInt32BE(box.data, 8)\n });\n break;\n case \"irot\":\n sandbox.transforms.push({\n type: \"irot\",\n value: box.data[0] & 3\n });\n break;\n case \"imir\":\n sandbox.transforms.push({\n type: \"imir\",\n value: box.data[0] & 1\n });\n break;\n }\n offset = box.end;\n }\n }\n function readUIntBE(data, offset, size) {\n var result = 0;\n for (var i = 0; i < size; i++) {\n result = result * 256 + (data[offset + i] || 0);\n }\n return result;\n }\n function scan_iloc(data, sandbox) {\n var offset_size = data[4] >> 4 & 15;\n var length_size = data[4] & 15;\n var base_offset_size = data[5] >> 4 & 15;\n var item_count = readUInt16BE(data, 6);\n var offset = 8;\n for (var i = 0; i < item_count; i++) {\n var item_ID = readUInt16BE(data, offset);\n offset += 2;\n var data_reference_index = readUInt16BE(data, offset);\n offset += 2;\n var base_offset = readUIntBE(data, offset, base_offset_size);\n offset += base_offset_size;\n var extent_count = readUInt16BE(data, offset);\n offset += 2;\n if (data_reference_index === 0 && extent_count === 1) {\n var first_extent_offset = readUIntBE(data, offset, offset_size);\n var first_extent_length = readUIntBE(data, offset + offset_size, length_size);\n sandbox.item_loc[item_ID] = { length: first_extent_length, offset: first_extent_offset + base_offset };\n }\n offset += extent_count * (offset_size + length_size);\n }\n }\n function scan_iinf(data, sandbox) {\n var item_count = readUInt16BE(data, 4);\n var offset = 6;\n for (var i = 0; i < item_count; i++) {\n var box = unbox(data, offset);\n if (!box) break;\n if (box.boxtype === \"infe\") {\n var item_id = readUInt16BE(box.data, 4);\n var item_name = \"\";\n for (var pos = 8; pos < box.data.length && box.data[pos]; pos++) {\n item_name += String.fromCharCode(box.data[pos]);\n }\n sandbox.item_inf[item_name] = item_id;\n }\n offset = box.end;\n }\n }\n function scan_iprp(data, sandbox) {\n var offset = 0;\n for (; ; ) {\n var box = unbox(data, offset);\n if (!box) break;\n if (box.boxtype === \"ipco\") scan_ipco(box.data, sandbox);\n offset = box.end;\n }\n }\n function scan_meta(data, sandbox) {\n var offset = 4;\n for (; ; ) {\n var box = unbox(data, offset);\n if (!box) break;\n if (box.boxtype === \"iprp\") scan_iprp(box.data, sandbox);\n if (box.boxtype === \"iloc\") scan_iloc(box.data, sandbox);\n if (box.boxtype === \"iinf\") scan_iinf(box.data, sandbox);\n offset = box.end;\n }\n }\n function getMaxSize(sizes) {\n var maxWidthSize = sizes.reduce(function(a, b) {\n return a.width > b.width || a.width === b.width && a.height > b.height ? a : b;\n });\n var maxHeightSize = sizes.reduce(function(a, b) {\n return a.height > b.height || a.height === b.height && a.width > b.width ? a : b;\n });\n var maxSize;\n if (maxWidthSize.width > maxHeightSize.height || maxWidthSize.width === maxHeightSize.height && maxWidthSize.height > maxHeightSize.width) {\n maxSize = maxWidthSize;\n } else {\n maxSize = maxHeightSize;\n }\n return maxSize;\n }\n module.exports.readSizeFromMeta = function(data) {\n var sandbox = {\n sizes: [],\n transforms: [],\n item_inf: {},\n item_loc: {}\n };\n scan_meta(data, sandbox);\n if (!sandbox.sizes.length) return;\n var maxSize = getMaxSize(sandbox.sizes);\n var orientation = 1;\n sandbox.transforms.forEach(function(transform) {\n var rotate_ccw = { 1: 6, 2: 5, 3: 8, 4: 7, 5: 4, 6: 3, 7: 2, 8: 1 };\n var mirror_vert = { 1: 4, 2: 3, 3: 2, 4: 1, 5: 6, 6: 5, 7: 8, 8: 7 };\n if (transform.type === \"imir\") {\n if (transform.value === 0) {\n orientation = mirror_vert[orientation];\n } else {\n orientation = mirror_vert[orientation];\n orientation = rotate_ccw[orientation];\n orientation = rotate_ccw[orientation];\n }\n }\n if (transform.type === \"irot\") {\n for (var i = 0; i < transform.value; i++) {\n orientation = rotate_ccw[orientation];\n }\n }\n });\n var exif_location = null;\n if (sandbox.item_inf.Exif) {\n exif_location = sandbox.item_loc[sandbox.item_inf.Exif];\n }\n return {\n width: maxSize.width,\n height: maxSize.height,\n orientation: sandbox.transforms.length ? orientation : null,\n variants: sandbox.sizes,\n exif_location\n };\n };\n module.exports.getMimeType = function(data) {\n var brand = String.fromCharCode.apply(null, data.slice(0, 4));\n var compat = {};\n compat[brand] = true;\n for (var i = 8; i < data.length; i += 4) {\n compat[String.fromCharCode.apply(null, data.slice(i, i + 4))] = true;\n }\n if (!compat.mif1 && !compat.msf1 && !compat.miaf) return;\n if (brand === \"avif\" || brand === \"avis\" || brand === \"avio\") {\n return { type: \"avif\", mime: \"image/avif\" };\n }\n if (brand === \"heic\" || brand === \"heix\") {\n return { type: \"heic\", mime: \"image/heic\" };\n }\n if (brand === \"hevc\" || brand === \"hevx\") {\n return { type: \"heic\", mime: \"image/heic-sequence\" };\n }\n if (compat.avif || compat.avis) {\n return { type: \"avif\", mime: \"image/avif\" };\n }\n if (compat.heic || compat.heix || compat.hevc || compat.hevx || compat.heis) {\n if (compat.msf1) {\n return { type: \"heif\", mime: \"image/heif-sequence\" };\n }\n return { type: \"heif\", mime: \"image/heif\" };\n }\n return { type: \"avif\", mime: \"image/avif\" };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/exif_utils.js\n var require_exif_utils = __commonJS({\n \"node_modules/probe-image-size/lib/exif_utils.js\"(exports, module) {\n \"use strict\";\n function error(message, code) {\n var err = new Error(message);\n err.code = code;\n return err;\n }\n function utf8_decode(str) {\n try {\n return decodeURIComponent(escape(str));\n } catch (_) {\n return str;\n }\n }\n function ExifParser(jpeg_bin, exif_start, exif_end) {\n this.input = jpeg_bin.subarray(exif_start, exif_end);\n this.start = exif_start;\n var sig = String.fromCharCode.apply(null, this.input.subarray(0, 4));\n if (sig !== \"II*\\0\" && sig !== \"MM\\0*\") {\n throw error(\"invalid TIFF signature\", \"EBADDATA\");\n }\n this.big_endian = sig[0] === \"M\";\n }\n ExifParser.prototype.each = function(on_entry) {\n this.aborted = false;\n var offset = this.read_uint32(4);\n this.ifds_to_read = [{\n id: 0,\n offset\n }];\n while (this.ifds_to_read.length > 0 && !this.aborted) {\n var i = this.ifds_to_read.shift();\n if (!i.offset) continue;\n this.scan_ifd(i.id, i.offset, on_entry);\n }\n };\n ExifParser.prototype.read_uint16 = function(offset) {\n var d = this.input;\n if (offset + 2 > d.length) throw error(\"unexpected EOF\", \"EBADDATA\");\n return this.big_endian ? d[offset] * 256 + d[offset + 1] : d[offset] + d[offset + 1] * 256;\n };\n ExifParser.prototype.read_uint32 = function(offset) {\n var d = this.input;\n if (offset + 4 > d.length) throw error(\"unexpected EOF\", \"EBADDATA\");\n return this.big_endian ? d[offset] * 16777216 + d[offset + 1] * 65536 + d[offset + 2] * 256 + d[offset + 3] : d[offset] + d[offset + 1] * 256 + d[offset + 2] * 65536 + d[offset + 3] * 16777216;\n };\n ExifParser.prototype.is_subifd_link = function(ifd, tag) {\n return ifd === 0 && tag === 34665 || // SubIFD\n ifd === 0 && tag === 34853 || // GPS Info\n ifd === 34665 && tag === 40965;\n };\n ExifParser.prototype.exif_format_length = function(format) {\n switch (format) {\n case 1:\n // byte\n case 2:\n // ascii\n case 6:\n // sbyte\n case 7:\n return 1;\n case 3:\n // short\n case 8:\n return 2;\n case 4:\n // long\n case 9:\n // slong\n case 11:\n return 4;\n case 5:\n // rational\n case 10:\n // srational\n case 12:\n return 8;\n default:\n return 0;\n }\n };\n ExifParser.prototype.exif_format_read = function(format, offset) {\n var v;\n switch (format) {\n case 1:\n // byte\n case 2:\n v = this.input[offset];\n return v;\n case 6:\n v = this.input[offset];\n return v | (v & 128) * 33554430;\n case 3:\n v = this.read_uint16(offset);\n return v;\n case 8:\n v = this.read_uint16(offset);\n return v | (v & 32768) * 131070;\n case 4:\n v = this.read_uint32(offset);\n return v;\n case 9:\n v = this.read_uint32(offset);\n return v | 0;\n case 5:\n // rational\n case 10:\n // srational\n case 11:\n // float\n case 12:\n return null;\n // not implemented\n case 7:\n return null;\n // blob\n default:\n return null;\n }\n };\n ExifParser.prototype.scan_ifd = function(ifd_no, offset, on_entry) {\n var entry_count = this.read_uint16(offset);\n offset += 2;\n for (var i = 0; i < entry_count; i++) {\n var tag = this.read_uint16(offset);\n var format = this.read_uint16(offset + 2);\n var count = this.read_uint32(offset + 4);\n var comp_length = this.exif_format_length(format);\n var data_length = count * comp_length;\n var data_offset = data_length <= 4 ? offset + 8 : this.read_uint32(offset + 8);\n var is_subifd_link = false;\n if (data_offset + data_length > this.input.length) {\n throw error(\"unexpected EOF\", \"EBADDATA\");\n }\n var value = [];\n var comp_offset = data_offset;\n for (var j = 0; j < count; j++, comp_offset += comp_length) {\n var item = this.exif_format_read(format, comp_offset);\n if (item === null) {\n value = null;\n break;\n }\n value.push(item);\n }\n if (Array.isArray(value) && format === 2) {\n value = utf8_decode(String.fromCharCode.apply(null, value));\n if (value && value[value.length - 1] === \"\\0\") value = value.slice(0, -1);\n }\n if (this.is_subifd_link(ifd_no, tag)) {\n if (Array.isArray(value) && Number.isInteger(value[0]) && value[0] > 0) {\n this.ifds_to_read.push({\n id: tag,\n offset: value[0]\n });\n is_subifd_link = true;\n }\n }\n var entry = {\n is_big_endian: this.big_endian,\n ifd: ifd_no,\n tag,\n format,\n count,\n entry_offset: offset + this.start,\n data_length,\n data_offset: data_offset + this.start,\n value,\n is_subifd_link\n };\n if (on_entry(entry) === false) {\n this.aborted = true;\n return;\n }\n offset += 12;\n }\n if (ifd_no === 0) {\n this.ifds_to_read.push({\n id: 1,\n offset: this.read_uint32(offset)\n });\n }\n };\n module.exports.ExifParser = ExifParser;\n module.exports.get_orientation = function(data) {\n var orientation = 0;\n try {\n new ExifParser(data, 0, data.length).each(function(entry) {\n if (entry.ifd === 0 && entry.tag === 274 && Array.isArray(entry.value)) {\n orientation = entry.value[0];\n return false;\n }\n });\n return orientation;\n } catch (err) {\n return -1;\n }\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/avif.js\n var require_avif = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/avif.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt32BE = require_common().readUInt32BE;\n var miaf = require_miaf_utils();\n var exif = require_exif_utils();\n var SIG_FTYP = str2arr(\"ftyp\");\n module.exports = function(data) {\n if (!sliceEq(data, 4, SIG_FTYP)) return;\n var firstBox = miaf.unbox(data, 0);\n if (!firstBox) return;\n var fileType = miaf.getMimeType(firstBox.data);\n if (!fileType) return;\n var meta, offset = firstBox.end;\n for (; ; ) {\n var box = miaf.unbox(data, offset);\n if (!box) break;\n offset = box.end;\n if (box.boxtype === \"mdat\") return;\n if (box.boxtype === \"meta\") {\n meta = box.data;\n break;\n }\n }\n if (!meta) return;\n var imgSize = miaf.readSizeFromMeta(meta);\n if (!imgSize) return;\n var result = {\n width: imgSize.width,\n height: imgSize.height,\n type: fileType.type,\n mime: fileType.mime,\n wUnits: \"px\",\n hUnits: \"px\"\n };\n if (imgSize.variants.length > 1) {\n result.variants = imgSize.variants;\n }\n if (imgSize.orientation) {\n result.orientation = imgSize.orientation;\n }\n if (imgSize.exif_location && imgSize.exif_location.offset + imgSize.exif_location.length <= data.length) {\n var sig_offset = readUInt32BE(data, imgSize.exif_location.offset);\n var exif_data = data.slice(\n imgSize.exif_location.offset + sig_offset + 4,\n imgSize.exif_location.offset + imgSize.exif_location.length\n );\n var orientation = exif.get_orientation(exif_data);\n if (orientation > 0) result.orientation = orientation;\n }\n return result;\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/bmp.js\n var require_bmp = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/bmp.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt16LE = require_common().readUInt16LE;\n var SIG_BM = str2arr(\"BM\");\n module.exports = function(data) {\n if (data.length < 26) return;\n if (!sliceEq(data, 0, SIG_BM)) return;\n return {\n width: readUInt16LE(data, 18),\n height: readUInt16LE(data, 22),\n type: \"bmp\",\n mime: \"image/bmp\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/gif.js\n var require_gif = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/gif.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt16LE = require_common().readUInt16LE;\n var SIG_GIF87a = str2arr(\"GIF87a\");\n var SIG_GIF89a = str2arr(\"GIF89a\");\n module.exports = function(data) {\n if (data.length < 10) return;\n if (!sliceEq(data, 0, SIG_GIF87a) && !sliceEq(data, 0, SIG_GIF89a)) return;\n return {\n width: readUInt16LE(data, 6),\n height: readUInt16LE(data, 8),\n type: \"gif\",\n mime: \"image/gif\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/ico.js\n var require_ico = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/ico.js\"(exports, module) {\n \"use strict\";\n var readUInt16LE = require_common().readUInt16LE;\n var HEADER = 0;\n var TYPE_ICO = 1;\n var INDEX_SIZE = 16;\n module.exports = function(data) {\n var header = readUInt16LE(data, 0);\n var type = readUInt16LE(data, 2);\n var numImages = readUInt16LE(data, 4);\n if (header !== HEADER || type !== TYPE_ICO || !numImages) {\n return;\n }\n var variants = [];\n var maxSize = { width: 0, height: 0 };\n for (var i = 0; i < numImages; i++) {\n var width = data[6 + INDEX_SIZE * i] || 256;\n var height = data[6 + INDEX_SIZE * i + 1] || 256;\n var size = { width, height };\n variants.push(size);\n if (width > maxSize.width || height > maxSize.height) {\n maxSize = size;\n }\n }\n return {\n width: maxSize.width,\n height: maxSize.height,\n variants,\n type: \"ico\",\n mime: \"image/x-icon\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/jpeg.js\n var require_jpeg = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/jpeg.js\"(exports, module) {\n \"use strict\";\n var readUInt16BE = require_common().readUInt16BE;\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var exif = require_exif_utils();\n var SIG_EXIF = str2arr(\"Exif\\0\\0\");\n module.exports = function(data) {\n if (data.length < 2) return;\n if (data[0] !== 255 || data[1] !== 216 || data[2] !== 255) return;\n var offset = 2;\n for (; ; ) {\n for (; ; ) {\n if (data.length - offset < 2) return;\n if (data[offset++] === 255) break;\n }\n var code = data[offset++];\n var length;\n while (code === 255) code = data[offset++];\n if (208 <= code && code <= 217 || code === 1) {\n length = 0;\n } else if (192 <= code && code <= 254) {\n if (data.length - offset < 2) return;\n length = readUInt16BE(data, offset) - 2;\n offset += 2;\n } else {\n return;\n }\n if (code === 217 || code === 218) {\n return;\n }\n var orientation;\n if (code === 225 && length >= 10 && sliceEq(data, offset, SIG_EXIF)) {\n orientation = exif.get_orientation(data.slice(offset + 6, offset + length));\n }\n if (length >= 5 && (192 <= code && code <= 207) && code !== 196 && code !== 200 && code !== 204) {\n if (data.length - offset < length) return;\n var result = {\n width: readUInt16BE(data, offset + 3),\n height: readUInt16BE(data, offset + 1),\n type: \"jpg\",\n mime: \"image/jpeg\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n if (orientation > 0) {\n result.orientation = orientation;\n }\n return result;\n }\n offset += length;\n }\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/png.js\n var require_png = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/png.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt32BE = require_common().readUInt32BE;\n var SIG_PNG = str2arr(\"\\x89PNG\\r\\n\u001a\\n\");\n var SIG_IHDR = str2arr(\"IHDR\");\n module.exports = function(data) {\n if (data.length < 24) return;\n if (!sliceEq(data, 0, SIG_PNG)) return;\n if (!sliceEq(data, 12, SIG_IHDR)) return;\n return {\n width: readUInt32BE(data, 16),\n height: readUInt32BE(data, 20),\n type: \"png\",\n mime: \"image/png\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/psd.js\n var require_psd = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/psd.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt32BE = require_common().readUInt32BE;\n var SIG_8BPS = str2arr(\"8BPS\\0\u0001\");\n module.exports = function(data) {\n if (data.length < 6 + 16) return;\n if (!sliceEq(data, 0, SIG_8BPS)) return;\n return {\n width: readUInt32BE(data, 6 + 12),\n height: readUInt32BE(data, 6 + 8),\n type: \"psd\",\n mime: \"image/vnd.adobe.photoshop\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/svg.js\n var require_svg = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/svg.js\"(exports, module) {\n \"use strict\";\n function isWhiteSpace(chr) {\n return chr === 32 || chr === 9 || chr === 13 || chr === 10;\n }\n function isFinitePositive(val) {\n return typeof val === \"number\" && isFinite(val) && val > 0;\n }\n function canBeSvg(buf) {\n var i = 0, max = buf.length;\n if (buf[0] === 239 && buf[1] === 187 && buf[2] === 191) i = 3;\n while (i < max && isWhiteSpace(buf[i])) i++;\n if (i === max) return false;\n return buf[i] === 60;\n }\n var SVG_HEADER_RE = /<[-_.:a-zA-Z0-9][^>]*>/;\n var SVG_TAG_RE = /^<([-_.:a-zA-Z0-9]+:)?svg\\s/;\n var SVG_WIDTH_RE = /[^-]\\bwidth=\"([^%]+?)\"|[^-]\\bwidth='([^%]+?)'/;\n var SVG_HEIGHT_RE = /\\bheight=\"([^%]+?)\"|\\bheight='([^%]+?)'/;\n var SVG_VIEWBOX_RE = /\\bview[bB]ox=\"(.+?)\"|\\bview[bB]ox='(.+?)'/;\n var SVG_UNITS_RE = /in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;\n function svgAttrs(str) {\n var width = str.match(SVG_WIDTH_RE);\n var height = str.match(SVG_HEIGHT_RE);\n var viewbox = str.match(SVG_VIEWBOX_RE);\n return {\n width: width && (width[1] || width[2]),\n height: height && (height[1] || height[2]),\n viewbox: viewbox && (viewbox[1] || viewbox[2])\n };\n }\n function units(str) {\n if (!SVG_UNITS_RE.test(str)) return \"px\";\n return str.match(SVG_UNITS_RE)[0];\n }\n module.exports = function(data) {\n if (!canBeSvg(data)) return;\n var str = \"\";\n for (var i = 0; i < data.length; i++) {\n str += String.fromCharCode(data[i]);\n }\n var svgTag = (str.match(SVG_HEADER_RE) || [\"\"])[0];\n if (!SVG_TAG_RE.test(svgTag)) return;\n var attrs = svgAttrs(svgTag);\n var width = parseFloat(attrs.width);\n var height = parseFloat(attrs.height);\n if (attrs.width && attrs.height) {\n if (!isFinitePositive(width) || !isFinitePositive(height)) return;\n return {\n width,\n height,\n type: \"svg\",\n mime: \"image/svg+xml\",\n wUnits: units(attrs.width),\n hUnits: units(attrs.height)\n };\n }\n var parts = (attrs.viewbox || \"\").split(\" \");\n var viewbox = {\n width: parts[2],\n height: parts[3]\n };\n var vbWidth = parseFloat(viewbox.width);\n var vbHeight = parseFloat(viewbox.height);\n if (!isFinitePositive(vbWidth) || !isFinitePositive(vbHeight)) return;\n if (units(viewbox.width) !== units(viewbox.height)) return;\n var ratio = vbWidth / vbHeight;\n if (attrs.width) {\n if (!isFinitePositive(width)) return;\n return {\n width,\n height: width / ratio,\n type: \"svg\",\n mime: \"image/svg+xml\",\n wUnits: units(attrs.width),\n hUnits: units(attrs.width)\n };\n }\n if (attrs.height) {\n if (!isFinitePositive(height)) return;\n return {\n width: height * ratio,\n height,\n type: \"svg\",\n mime: \"image/svg+xml\",\n wUnits: units(attrs.height),\n hUnits: units(attrs.height)\n };\n }\n return {\n width: vbWidth,\n height: vbHeight,\n type: \"svg\",\n mime: \"image/svg+xml\",\n wUnits: units(viewbox.width),\n hUnits: units(viewbox.height)\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/tiff.js\n var require_tiff = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/tiff.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt16LE = require_common().readUInt16LE;\n var readUInt16BE = require_common().readUInt16BE;\n var readUInt32LE = require_common().readUInt32LE;\n var readUInt32BE = require_common().readUInt32BE;\n var SIG_1 = str2arr(\"II*\\0\");\n var SIG_2 = str2arr(\"MM\\0*\");\n function readUInt16(buffer, offset, is_big_endian) {\n return is_big_endian ? readUInt16BE(buffer, offset) : readUInt16LE(buffer, offset);\n }\n function readUInt32(buffer, offset, is_big_endian) {\n return is_big_endian ? readUInt32BE(buffer, offset) : readUInt32LE(buffer, offset);\n }\n function readIFDValue(data, data_offset, is_big_endian) {\n var type = readUInt16(data, data_offset + 2, is_big_endian);\n var values = readUInt32(data, data_offset + 4, is_big_endian);\n if (values !== 1 || type !== 3 && type !== 4) return null;\n if (type === 3) {\n return readUInt16(data, data_offset + 8, is_big_endian);\n }\n return readUInt32(data, data_offset + 8, is_big_endian);\n }\n module.exports = function(data) {\n if (data.length < 8) return;\n if (!sliceEq(data, 0, SIG_1) && !sliceEq(data, 0, SIG_2)) return;\n var is_big_endian = data[0] === 77;\n var count = readUInt32(data, 4, is_big_endian) - 8;\n if (count < 0) return;\n var offset = count + 8;\n if (data.length - offset < 2) return;\n var ifd_size = readUInt16(data, offset + 0, is_big_endian) * 12;\n if (ifd_size <= 0) return;\n offset += 2;\n if (data.length - offset < ifd_size) return;\n var i, width, height, tag;\n for (i = 0; i < ifd_size; i += 12) {\n tag = readUInt16(data, offset + i, is_big_endian);\n if (tag === 256) {\n width = readIFDValue(data, offset + i, is_big_endian);\n } else if (tag === 257) {\n height = readIFDValue(data, offset + i, is_big_endian);\n }\n }\n if (width && height) {\n return {\n width,\n height,\n type: \"tiff\",\n mime: \"image/tiff\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n }\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/webp.js\n var require_webp = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/webp.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt16LE = require_common().readUInt16LE;\n var readUInt32LE = require_common().readUInt32LE;\n var exif = require_exif_utils();\n var SIG_RIFF = str2arr(\"RIFF\");\n var SIG_WEBP = str2arr(\"WEBP\");\n function parseVP8(data, offset) {\n if (data[offset + 3] !== 157 || data[offset + 4] !== 1 || data[offset + 5] !== 42) {\n return;\n }\n return {\n width: readUInt16LE(data, offset + 6) & 16383,\n height: readUInt16LE(data, offset + 8) & 16383,\n type: \"webp\",\n mime: \"image/webp\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n }\n function parseVP8L(data, offset) {\n if (data[offset] !== 47) return;\n var bits = readUInt32LE(data, offset + 1);\n return {\n width: (bits & 16383) + 1,\n height: (bits >> 14 & 16383) + 1,\n type: \"webp\",\n mime: \"image/webp\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n }\n function parseVP8X(data, offset) {\n return {\n // TODO: replace with `data.readUIntLE(8, 3) + 1`\n // when 0.10 support is dropped\n width: (data[offset + 6] << 16 | data[offset + 5] << 8 | data[offset + 4]) + 1,\n height: (data[offset + 9] << offset | data[offset + 8] << 8 | data[offset + 7]) + 1,\n type: \"webp\",\n mime: \"image/webp\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n }\n module.exports = function(data) {\n if (data.length < 16) return;\n if (!sliceEq(data, 0, SIG_RIFF) && !sliceEq(data, 8, SIG_WEBP)) return;\n var offset = 12;\n var result = null;\n var exif_orientation = 0;\n var fileLength = readUInt32LE(data, 4) + 8;\n if (fileLength > data.length) return;\n while (offset + 8 < fileLength) {\n if (data[offset] === 0) {\n offset++;\n continue;\n }\n var header = String.fromCharCode.apply(null, data.slice(offset, offset + 4));\n var length = readUInt32LE(data, offset + 4);\n if (header === \"VP8 \" && length >= 10) {\n result = result || parseVP8(data, offset + 8);\n } else if (header === \"VP8L\" && length >= 9) {\n result = result || parseVP8L(data, offset + 8);\n } else if (header === \"VP8X\" && length >= 10) {\n result = result || parseVP8X(data, offset + 8);\n } else if (header === \"EXIF\") {\n exif_orientation = exif.get_orientation(data.slice(offset + 8, offset + 8 + length));\n offset = Infinity;\n }\n offset += 8 + length;\n }\n if (!result) return;\n if (exif_orientation > 0) {\n result.orientation = exif_orientation;\n }\n return result;\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parsers_sync.js\n var require_parsers_sync = __commonJS({\n \"node_modules/probe-image-size/lib/parsers_sync.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n avif: require_avif(),\n bmp: require_bmp(),\n gif: require_gif(),\n ico: require_ico(),\n jpeg: require_jpeg(),\n png: require_png(),\n psd: require_psd(),\n svg: require_svg(),\n tiff: require_tiff(),\n webp: require_webp()\n };\n }\n });\n\n // node_modules/probe-image-size/sync.js\n var require_sync = __commonJS({\n \"node_modules/probe-image-size/sync.js\"(exports, module) {\n \"use strict\";\n var parsers = require_parsers_sync();\n function probeBuffer(buffer) {\n var parser_names = Object.keys(parsers);\n for (var i = 0; i < parser_names.length; i++) {\n var result = parsers[parser_names[i]](buffer);\n if (result) return result;\n }\n return null;\n }\n module.exports = function get_image_size(src) {\n return probeBuffer(src);\n };\n module.exports.parsers = parsers;\n }\n });\n\n // src/traces/image/helpers.js\n var require_helpers14 = __commonJS({\n \"src/traces/image/helpers.js\"(exports) {\n \"use strict\";\n var probeSync = require_sync();\n var dataUri = require_helpers10().IMAGE_URL_PREFIX;\n var Buffer2 = require_buffer().Buffer;\n exports.getImageSize = function(src) {\n var data = src.replace(dataUri, \"\");\n var buff = new Buffer2(data, \"base64\");\n return probeSync(buff);\n };\n }\n });\n\n // src/traces/image/calc.js\n var require_calc15 = __commonJS({\n \"src/traces/image/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constants = require_constants19();\n var isNumeric = require_fast_isnumeric();\n var Axes = require_axes();\n var maxRowLength = require_lib().maxRowLength;\n var getImageSize = require_helpers14().getImageSize;\n module.exports = function calc(gd, trace) {\n var h;\n var w;\n if (trace._hasZ) {\n h = trace.z.length;\n w = maxRowLength(trace.z);\n } else if (trace._hasSource) {\n var size = getImageSize(trace.source);\n h = size.height;\n w = size.width;\n }\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var x0 = xa.d2c(trace.x0) - trace.dx / 2;\n var y0 = ya.d2c(trace.y0) - trace.dy / 2;\n var i;\n var xrange = [x0, x0 + w * trace.dx];\n var yrange = [y0, y0 + h * trace.dy];\n if (xa && xa.type === \"log\") for (i = 0; i < w; i++) xrange.push(x0 + i * trace.dx);\n if (ya && ya.type === \"log\") for (i = 0; i < h; i++) yrange.push(y0 + i * trace.dy);\n trace._extremes[xa._id] = Axes.findExtremes(xa, xrange);\n trace._extremes[ya._id] = Axes.findExtremes(ya, yrange);\n trace._scaler = makeScaler(trace);\n var cd0 = {\n x0,\n y0,\n z: trace.z,\n w,\n h\n };\n return [cd0];\n };\n function scale(zero2, ratio, min, max) {\n return function(c) {\n return Lib.constrain((c - zero2) * ratio, min, max);\n };\n }\n function constrain(min, max) {\n return function(c) {\n return Lib.constrain(c, min, max);\n };\n }\n function makeScaler(trace) {\n var cr = constants.colormodel[trace.colormodel];\n var colormodel = cr.colormodel || trace.colormodel;\n var n = colormodel.length;\n trace._sArray = [];\n for (var k = 0; k < n; k++) {\n if (cr.min[k] !== trace.zmin[k] || cr.max[k] !== trace.zmax[k]) {\n trace._sArray.push(scale(\n trace.zmin[k],\n (cr.max[k] - cr.min[k]) / (trace.zmax[k] - trace.zmin[k]),\n cr.min[k],\n cr.max[k]\n ));\n } else {\n trace._sArray.push(constrain(cr.min[k], cr.max[k]));\n }\n }\n return function(pixel) {\n var c = pixel.slice(0, n);\n for (var k2 = 0; k2 < n; k2++) {\n var ck = c[k2];\n if (!isNumeric(ck)) return false;\n c[k2] = trace._sArray[k2](ck);\n }\n return c;\n };\n }\n }\n });\n\n // src/traces/image/plot.js\n var require_plot11 = __commonJS({\n \"src/traces/image/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var constants = require_constants19();\n var supportsPixelatedImage = require_supports_pixelated_image();\n var PIXELATED_IMAGE_STYLE = require_pixelated_image().STYLE;\n module.exports = function plot(gd, plotinfo, cdimage, imageLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var supportsPixelated = !gd._context._exportedPlot && supportsPixelatedImage();\n Lib.makeTraceGroups(imageLayer, cdimage, \"im\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var realImage = (trace.zsmooth === \"fast\" || trace.zsmooth === false && supportsPixelated) && !trace._hasZ && trace._hasSource && xa.type === \"linear\" && ya.type === \"linear\";\n trace._realImage = realImage;\n var z = cd0.z;\n var x0 = cd0.x0;\n var y0 = cd0.y0;\n var w = cd0.w;\n var h = cd0.h;\n var dx = trace.dx;\n var dy = trace.dy;\n var left, right, temp, top, bottom, i;\n i = 0;\n while (left === void 0 && i < w) {\n left = xa.c2p(x0 + i * dx);\n i++;\n }\n i = w;\n while (right === void 0 && i > 0) {\n right = xa.c2p(x0 + i * dx);\n i--;\n }\n i = 0;\n while (top === void 0 && i < h) {\n top = ya.c2p(y0 + i * dy);\n i++;\n }\n i = h;\n while (bottom === void 0 && i > 0) {\n bottom = ya.c2p(y0 + i * dy);\n i--;\n }\n if (right < left) {\n temp = right;\n right = left;\n left = temp;\n }\n if (bottom < top) {\n temp = top;\n top = bottom;\n bottom = temp;\n }\n if (!realImage) {\n var extra = 0.5;\n left = Math.max(-extra * xa._length, left);\n right = Math.min((1 + extra) * xa._length, right);\n top = Math.max(-extra * ya._length, top);\n bottom = Math.min((1 + extra) * ya._length, bottom);\n }\n var imageWidth = Math.round(right - left);\n var imageHeight = Math.round(bottom - top);\n var isOffScreen = imageWidth <= 0 || imageHeight <= 0;\n if (isOffScreen) {\n var noImage = plotGroup.selectAll(\"image\").data([]);\n noImage.exit().remove();\n return;\n }\n function drawMagnifiedPixelsOnCanvas(readPixel) {\n var canvas = document.createElement(\"canvas\");\n canvas.width = imageWidth;\n canvas.height = imageHeight;\n var context = canvas.getContext(\"2d\", { willReadFrequently: true });\n var ipx = function(i2) {\n return Lib.constrain(Math.round(xa.c2p(x0 + i2 * dx) - left), 0, imageWidth);\n };\n var jpx = function(j2) {\n return Lib.constrain(Math.round(ya.c2p(y0 + j2 * dy) - top), 0, imageHeight);\n };\n var cr = constants.colormodel[trace.colormodel];\n var colormodel = cr.colormodel || trace.colormodel;\n var fmt = cr.fmt;\n var c;\n for (i = 0; i < cd0.w; i++) {\n var ipx0 = ipx(i);\n var ipx1 = ipx(i + 1);\n if (ipx1 === ipx0 || isNaN(ipx1) || isNaN(ipx0)) continue;\n for (var j = 0; j < cd0.h; j++) {\n var jpx0 = jpx(j);\n var jpx1 = jpx(j + 1);\n if (jpx1 === jpx0 || isNaN(jpx1) || isNaN(jpx0) || !readPixel(i, j)) continue;\n c = trace._scaler(readPixel(i, j));\n if (c) {\n context.fillStyle = colormodel + \"(\" + fmt(c).join(\",\") + \")\";\n } else {\n context.fillStyle = \"rgba(0,0,0,0)\";\n }\n context.fillRect(ipx0, jpx0, ipx1 - ipx0, jpx1 - jpx0);\n }\n }\n return canvas;\n }\n var image3 = plotGroup.selectAll(\"image\").data([cd]);\n image3.enter().append(\"svg:image\").attr({\n xmlns: xmlnsNamespaces.svg,\n preserveAspectRatio: \"none\"\n });\n image3.exit().remove();\n var style = trace.zsmooth === false ? PIXELATED_IMAGE_STYLE : \"\";\n if (realImage) {\n var xRange = Lib.simpleMap(xa.range, xa.r2l);\n var yRange = Lib.simpleMap(ya.range, ya.r2l);\n var flipX = xRange[1] < xRange[0];\n var flipY = yRange[1] > yRange[0];\n if (flipX || flipY) {\n var tx = left + imageWidth / 2;\n var ty = top + imageHeight / 2;\n style += \"transform:\" + strTranslate(tx + \"px\", ty + \"px\") + \"scale(\" + (flipX ? -1 : 1) + \",\" + (flipY ? -1 : 1) + \")\" + strTranslate(-tx + \"px\", -ty + \"px\") + \";\";\n }\n }\n image3.attr(\"style\", style);\n var p = new Promise(function(resolve) {\n if (trace._hasZ) {\n resolve();\n } else if (trace._hasSource) {\n if (trace._canvas && trace._canvas.el.width === w && trace._canvas.el.height === h && trace._canvas.source === trace.source) {\n resolve();\n } else {\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext(\"2d\", { willReadFrequently: true });\n trace._image = trace._image || new Image();\n var image = trace._image;\n image.onload = function() {\n context.drawImage(image, 0, 0);\n trace._canvas = {\n el: canvas,\n source: trace.source\n };\n resolve();\n };\n image.setAttribute(\"src\", trace.source);\n }\n }\n }).then(function() {\n var href, canvas;\n if (trace._hasZ) {\n canvas = drawMagnifiedPixelsOnCanvas(function(i2, j) {\n var _z = z[j][i2];\n if (Lib.isTypedArray(_z)) _z = Array.from(_z);\n return _z;\n });\n href = canvas.toDataURL(\"image/png\");\n } else if (trace._hasSource) {\n if (realImage) {\n href = trace.source;\n } else {\n var context = trace._canvas.el.getContext(\"2d\", { willReadFrequently: true });\n var data = context.getImageData(0, 0, w, h).data;\n canvas = drawMagnifiedPixelsOnCanvas(function(i2, j) {\n var index = 4 * (j * w + i2);\n return [\n data[index],\n data[index + 1],\n data[index + 2],\n data[index + 3]\n ];\n });\n href = canvas.toDataURL(\"image/png\");\n }\n }\n image3.attr({\n \"xlink:href\": href,\n height: imageHeight,\n width: imageWidth,\n x: left,\n y: top\n });\n });\n gd._promises.push(p);\n });\n };\n }\n });\n\n // src/traces/image/style.js\n var require_style11 = __commonJS({\n \"src/traces/image/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n module.exports = function style(gd) {\n d3.select(gd).selectAll(\".im image\").style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n };\n }\n });\n\n // src/traces/image/hover.js\n var require_hover13 = __commonJS({\n \"src/traces/image/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var constants = require_constants19();\n module.exports = function hoverPoints(pointData, xval, yval) {\n var cd0 = pointData.cd[0];\n var trace = cd0.trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n if (Fx.inbox(xval - cd0.x0, xval - (cd0.x0 + cd0.w * trace.dx), 0) > 0 || Fx.inbox(yval - cd0.y0, yval - (cd0.y0 + cd0.h * trace.dy), 0) > 0) {\n return;\n }\n var nx = Math.floor((xval - cd0.x0) / trace.dx);\n var ny = Math.floor(Math.abs(yval - cd0.y0) / trace.dy);\n var pixel;\n if (trace._hasZ) {\n pixel = cd0.z[ny][nx];\n } else if (trace._hasSource) {\n pixel = trace._canvas.el.getContext(\"2d\", { willReadFrequently: true }).getImageData(nx, ny, 1, 1).data;\n }\n if (!pixel) return;\n var hoverinfo = cd0.hi || trace.hoverinfo;\n var fmtColor;\n if (hoverinfo) {\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"color\"];\n if (parts.indexOf(\"color\") !== -1) fmtColor = true;\n }\n var cr = constants.colormodel[trace.colormodel];\n var colormodel = cr.colormodel || trace.colormodel;\n var dims = colormodel.length;\n var c = trace._scaler(pixel);\n var s = cr.suffix;\n var colorstring = [];\n if (trace.hovertemplate || fmtColor) {\n colorstring.push(\"[\" + [c[0] + s[0], c[1] + s[1], c[2] + s[2]].join(\", \"));\n if (dims === 4) colorstring.push(\", \" + c[3] + s[3]);\n colorstring.push(\"]\");\n colorstring = colorstring.join(\"\");\n pointData.extraText = colormodel.toUpperCase() + \": \" + colorstring;\n }\n var text;\n if (isArrayOrTypedArray(trace.hovertext) && isArrayOrTypedArray(trace.hovertext[ny])) {\n text = trace.hovertext[ny][nx];\n } else if (isArrayOrTypedArray(trace.text) && isArrayOrTypedArray(trace.text[ny])) {\n text = trace.text[ny][nx];\n }\n var py = ya.c2p(cd0.y0 + (ny + 0.5) * trace.dy);\n var xVal = cd0.x0 + (nx + 0.5) * trace.dx;\n var yVal = cd0.y0 + (ny + 0.5) * trace.dy;\n var zLabel = \"[\" + pixel.slice(0, trace.colormodel.length).join(\", \") + \"]\";\n return [Lib.extendFlat(pointData, {\n index: [ny, nx],\n x0: xa.c2p(cd0.x0 + nx * trace.dx),\n x1: xa.c2p(cd0.x0 + (nx + 1) * trace.dx),\n y0: py,\n y1: py,\n color: c,\n xVal,\n xLabelVal: xVal,\n yVal,\n yLabelVal: yVal,\n zLabelVal: zLabel,\n text,\n hovertemplateLabels: {\n zLabel,\n colorLabel: colorstring,\n \"color[0]Label\": c[0] + s[0],\n \"color[1]Label\": c[1] + s[1],\n \"color[2]Label\": c[2] + s[2],\n \"color[3]Label\": c[3] + s[3]\n }\n })];\n };\n }\n });\n\n // src/traces/image/event_data.js\n var require_event_data7 = __commonJS({\n \"src/traces/image/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n if (\"xVal\" in pt) out.x = pt.xVal;\n if (\"yVal\" in pt) out.y = pt.yVal;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n out.color = pt.color;\n out.colormodel = pt.trace.colormodel;\n if (!out.z) out.z = pt.color;\n return out;\n };\n }\n });\n\n // src/traces/image/index.js\n var require_image = __commonJS({\n \"src/traces/image/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes34(),\n supplyDefaults: require_defaults30(),\n calc: require_calc15(),\n plot: require_plot11(),\n style: require_style11(),\n hoverPoints: require_hover13(),\n eventData: require_event_data7(),\n moduleType: \"trace\",\n name: \"image\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"noSortingByValue\"],\n animatable: false,\n meta: {}\n };\n }\n });\n\n // lib/image.js\n var require_image2 = __commonJS({\n \"lib/image.js\"(exports, module) {\n \"use strict\";\n module.exports = require_image();\n }\n });\n\n // src/traces/pie/attributes.js\n var require_attributes35 = __commonJS({\n \"src/traces/pie/attributes.js\"(exports, module) {\n \"use strict\";\n var baseAttrs = require_attributes2();\n var domainAttrs = require_domain().attributes;\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var pattern = require_attributes4().pattern;\n var textFontAttrs = fontAttrs({\n editType: \"plot\",\n arrayOk: true,\n colorEditType: \"plot\"\n });\n module.exports = {\n labels: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // equivalent of x0 and dx, if label is missing\n label0: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc\"\n },\n dlabel: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n values: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n marker: {\n colors: {\n valType: \"data_array\",\n // TODO 'color_array' ?\n editType: \"calc\"\n },\n line: {\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n arrayOk: true,\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n arrayOk: true,\n editType: \"style\"\n },\n editType: \"calc\"\n },\n pattern,\n editType: \"calc\"\n },\n text: {\n valType: \"data_array\",\n editType: \"plot\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"style\"\n },\n // 'see eg:'\n // 'https://www.e-education.psu.edu/natureofgeoinfo/sites/www.e-education.psu.edu.natureofgeoinfo/files/image/hisp_pies.gif',\n // '(this example involves a map too - may someday be a whole trace type',\n // 'of its own. but the point is the size of the whole pie is important.)'\n scalegroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n // labels (legend is handled by plots.attributes.showlegend and layout.hiddenlabels)\n textinfo: {\n valType: \"flaglist\",\n flags: [\"label\", \"text\", \"value\", \"percent\"],\n extras: [\"none\"],\n editType: \"calc\"\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"label\", \"text\", \"value\", \"percent\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"label\", \"color\", \"value\", \"percent\", \"text\"]\n }),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"label\", \"color\", \"value\", \"percent\", \"text\"]\n }),\n textposition: {\n valType: \"enumerated\",\n values: [\"inside\", \"outside\", \"auto\", \"none\"],\n dflt: \"auto\",\n arrayOk: true,\n editType: \"plot\"\n },\n textfont: extendFlat({}, textFontAttrs, {}),\n insidetextorientation: {\n valType: \"enumerated\",\n values: [\"horizontal\", \"radial\", \"tangential\", \"auto\"],\n dflt: \"auto\",\n editType: \"plot\"\n },\n insidetextfont: extendFlat({}, textFontAttrs, {}),\n outsidetextfont: extendFlat({}, textFontAttrs, {}),\n automargin: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n title: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n font: extendFlat({}, textFontAttrs, {}),\n position: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle center\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\"\n ],\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n // position and shape\n domain: domainAttrs({ name: \"pie\", trace: true, editType: \"calc\" }),\n hole: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"calc\"\n },\n // ordering and direction\n sort: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n direction: {\n /**\n * there are two common conventions, both of which place the first\n * (largest, if sorted) slice with its left edge at 12 o'clock but\n * succeeding slices follow either cw or ccw from there.\n *\n * see http://visage.co/data-visualization-101-pie-charts/\n */\n valType: \"enumerated\",\n values: [\"clockwise\", \"counterclockwise\"],\n dflt: \"counterclockwise\",\n editType: \"calc\"\n },\n rotation: {\n valType: \"angle\",\n dflt: 0,\n editType: \"calc\"\n },\n pull: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n arrayOk: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/pie/defaults.js\n var require_defaults31 = __commonJS({\n \"src/traces/pie/defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var attributes = require_attributes35();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var coercePattern = require_lib().coercePattern;\n function handleLabelsAndValues(labels, values) {\n var hasLabels = Lib.isArrayOrTypedArray(labels);\n var hasValues = Lib.isArrayOrTypedArray(values);\n var len = Math.min(\n hasLabels ? labels.length : Infinity,\n hasValues ? values.length : Infinity\n );\n if (!isFinite(len)) len = 0;\n if (len && hasValues) {\n var hasPositive;\n for (var i = 0; i < len; i++) {\n var v = values[i];\n if (isNumeric(v) && v > 0) {\n hasPositive = true;\n break;\n }\n }\n if (!hasPositive) len = 0;\n }\n return {\n hasLabels,\n hasValues,\n len\n };\n }\n function handleMarkerDefaults(traceIn, traceOut, layout, coerce, isPie) {\n var lineWidth = coerce(\"marker.line.width\");\n if (lineWidth) {\n coerce(\n \"marker.line.color\",\n isPie ? void 0 : layout.paper_bgcolor\n // case of funnelarea, sunburst, icicle, treemap\n );\n }\n var markerColors = coerce(\"marker.colors\");\n coercePattern(coerce, \"marker.pattern\", markerColors);\n if (traceIn.marker && !traceOut.marker.pattern.fgcolor) traceOut.marker.pattern.fgcolor = traceIn.marker.colors;\n if (!traceOut.marker.pattern.bgcolor) traceOut.marker.pattern.bgcolor = layout.paper_bgcolor;\n }\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var values = coerce(\"values\");\n var res = handleLabelsAndValues(labels, values);\n var len = res.len;\n traceOut._hasLabels = res.hasLabels;\n traceOut._hasValues = res.hasValues;\n if (!traceOut._hasLabels && traceOut._hasValues) {\n coerce(\"label0\");\n coerce(\"dlabel\");\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n handleMarkerDefaults(traceIn, traceOut, layout, coerce, true);\n coerce(\"scalegroup\");\n var textData = coerce(\"text\");\n var textTemplate = coerce(\"texttemplate\");\n var textInfo;\n if (!textTemplate) textInfo = coerce(\"textinfo\", Lib.isArrayOrTypedArray(textData) ? \"text+percent\" : \"percent\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n if (textTemplate || textInfo && textInfo !== \"none\") {\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n var hasBoth = Array.isArray(textposition) || textposition === \"auto\";\n var hasOutside = hasBoth || textposition === \"outside\";\n if (hasOutside) {\n coerce(\"automargin\");\n }\n if (textposition === \"inside\" || textposition === \"auto\" || Array.isArray(textposition)) {\n coerce(\"insidetextorientation\");\n }\n } else if (textInfo === \"none\") {\n coerce(\"textposition\", \"none\");\n }\n handleDomainDefaults(traceOut, layout, coerce);\n var hole = coerce(\"hole\");\n var title = coerce(\"title.text\");\n if (title) {\n var titlePosition = coerce(\"title.position\", hole ? \"middle center\" : \"top center\");\n if (!hole && titlePosition === \"middle center\") traceOut.title.position = \"top center\";\n Lib.coerceFont(coerce, \"title.font\", layout.font);\n }\n coerce(\"sort\");\n coerce(\"direction\");\n coerce(\"rotation\");\n coerce(\"pull\");\n }\n module.exports = {\n handleLabelsAndValues,\n handleMarkerDefaults,\n supplyDefaults\n };\n }\n });\n\n // src/traces/pie/layout_attributes.js\n var require_layout_attributes12 = __commonJS({\n \"src/traces/pie/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n hiddenlabels: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n piecolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendpiecolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/pie/layout_defaults.js\n var require_layout_defaults11 = __commonJS({\n \"src/traces/pie/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes12();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"hiddenlabels\");\n coerce(\"piecolorway\", layoutOut.colorway);\n coerce(\"extendpiecolors\");\n };\n }\n });\n\n // src/traces/pie/calc.js\n var require_calc16 = __commonJS({\n \"src/traces/pie/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var Color2 = require_color();\n var extendedColorWayList = {};\n function calc(gd, trace) {\n var cd = [];\n var fullLayout = gd._fullLayout;\n var hiddenLabels = fullLayout.hiddenlabels || [];\n var labels = trace.labels;\n var colors = trace.marker.colors || [];\n var vals = trace.values;\n var len = trace._length;\n var hasValues = trace._hasValues && len;\n var i, pt;\n if (trace.dlabel) {\n labels = new Array(len);\n for (i = 0; i < len; i++) {\n labels[i] = String(trace.label0 + i * trace.dlabel);\n }\n }\n var allThisTraceLabels = {};\n var pullColor = makePullColorFn(fullLayout[\"_\" + trace.type + \"colormap\"]);\n var vTotal = 0;\n var isAggregated = false;\n for (i = 0; i < len; i++) {\n var v, label, hidden;\n if (hasValues) {\n v = vals[i];\n if (!isNumeric(v)) continue;\n v = +v;\n } else v = 1;\n label = labels[i];\n if (label === void 0 || label === \"\") label = i;\n label = String(label);\n var thisLabelIndex = allThisTraceLabels[label];\n if (thisLabelIndex === void 0) {\n allThisTraceLabels[label] = cd.length;\n hidden = hiddenLabels.indexOf(label) !== -1;\n if (!hidden) vTotal += v;\n cd.push({\n v,\n label,\n color: pullColor(colors[i], label),\n i,\n pts: [i],\n hidden\n });\n } else {\n isAggregated = true;\n pt = cd[thisLabelIndex];\n pt.v += v;\n pt.pts.push(i);\n if (!pt.hidden) vTotal += v;\n if (pt.color === false && colors[i]) {\n pt.color = pullColor(colors[i], label);\n }\n }\n }\n cd = cd.filter(function(elem) {\n return elem.v >= 0;\n });\n var shouldSort = trace.type === \"funnelarea\" ? isAggregated : trace.sort;\n if (shouldSort) cd.sort(function(a, b) {\n return b.v - a.v;\n });\n if (cd[0]) cd[0].vTotal = vTotal;\n return cd;\n }\n function makePullColorFn(colorMap) {\n return function pullColor(color2, id) {\n if (!color2) return false;\n color2 = tinycolor(color2);\n if (!color2.isValid()) return false;\n color2 = Color2.addOpacity(color2, color2.getAlpha());\n if (!colorMap[id]) colorMap[id] = color2;\n return color2;\n };\n }\n function crossTraceCalc(gd, plotinfo) {\n var desiredType = (plotinfo || {}).type;\n if (!desiredType) desiredType = \"pie\";\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var colorWay = fullLayout[desiredType + \"colorway\"];\n var colorMap = fullLayout[\"_\" + desiredType + \"colormap\"];\n if (fullLayout[\"extend\" + desiredType + \"colors\"]) {\n colorWay = generateExtendedColors(colorWay, extendedColorWayList);\n }\n var dfltColorCount = 0;\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var traceType = cd[0].trace.type;\n if (traceType !== desiredType) continue;\n for (var j = 0; j < cd.length; j++) {\n var pt = cd[j];\n if (pt.color === false) {\n if (colorMap[pt.label]) {\n pt.color = colorMap[pt.label];\n } else {\n colorMap[pt.label] = pt.color = colorWay[dfltColorCount % colorWay.length];\n dfltColorCount++;\n }\n }\n }\n }\n }\n function generateExtendedColors(colorList, extendedColorWays) {\n var i;\n var colorString = JSON.stringify(colorList);\n var colors = extendedColorWays[colorString];\n if (!colors) {\n colors = colorList.slice();\n for (i = 0; i < colorList.length; i++) {\n colors.push(tinycolor(colorList[i]).lighten(20).toHexString());\n }\n for (i = 0; i < colorList.length; i++) {\n colors.push(tinycolor(colorList[i]).darken(20).toHexString());\n }\n extendedColorWays[colorString] = colors;\n }\n return colors;\n }\n module.exports = {\n calc,\n crossTraceCalc,\n makePullColorFn,\n generateExtendedColors\n };\n }\n });\n\n // src/traces/pie/event_data.js\n var require_event_data8 = __commonJS({\n \"src/traces/pie/event_data.js\"(exports, module) {\n \"use strict\";\n var appendArrayMultiPointValues = require_helpers2().appendArrayMultiPointValues;\n module.exports = function eventData(pt, trace) {\n var out = {\n curveNumber: trace.index,\n pointNumbers: pt.pts,\n data: trace._input,\n fullData: trace,\n label: pt.label,\n color: pt.color,\n value: pt.v,\n percent: pt.percent,\n text: pt.text,\n bbox: pt.bbox,\n // pt.v (and pt.i below) for backward compatibility\n v: pt.v\n };\n if (pt.pts.length === 1) out.pointNumber = out.i = pt.pts[0];\n appendArrayMultiPointValues(out, trace, pt.pts);\n if (trace.type === \"funnelarea\") {\n delete out.v;\n delete out.i;\n }\n return out;\n };\n }\n });\n\n // src/traces/pie/plot.js\n var require_plot12 = __commonJS({\n \"src/traces/pie/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Plots = require_plots();\n var Fx = require_fx();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strScale = Lib.strScale;\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var clearMinTextSize = uniformText.clearMinTextSize;\n var TEXTPAD = require_constants14().TEXTPAD;\n var helpers = require_helpers4();\n var eventData = require_event_data8();\n var isValidTextValue = require_lib().isValidTextValue;\n function plot(gd, cdModule) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n clearMinTextSize(\"pie\", fullLayout);\n prerenderTitles(cdModule, gd);\n layoutAreas(cdModule, gs);\n var plotGroups = Lib.makeTraceGroups(fullLayout._pielayer, cdModule, \"trace\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n setCoords(cd);\n plotGroup.attr(\"stroke-linejoin\", \"round\");\n plotGroup.each(function() {\n var slices = d3.select(this).selectAll(\"g.slice\").data(cd);\n slices.enter().append(\"g\").classed(\"slice\", true);\n slices.exit().remove();\n var quadrants = [\n [[], []],\n // y<0: x<0, x>=0\n [[], []]\n // y>=0: x<0, x>=0\n ];\n var hasOutsideText = false;\n slices.each(function(pt, i) {\n if (pt.hidden) {\n d3.select(this).selectAll(\"path,g\").remove();\n return;\n }\n pt.pointNumber = pt.i;\n pt.curveNumber = trace.index;\n quadrants[pt.pxmid[1] < 0 ? 0 : 1][pt.pxmid[0] < 0 ? 0 : 1].push(pt);\n var cx = cd0.cx;\n var cy = cd0.cy;\n var sliceTop = d3.select(this);\n var slicePath = sliceTop.selectAll(\"path.surface\").data([pt]);\n slicePath.enter().append(\"path\").classed(\"surface\", true).style({ \"pointer-events\": isStatic ? \"none\" : \"all\" });\n sliceTop.call(attachFxHandlers, gd, cd);\n if (trace.pull) {\n var pull = +helpers.castOption(trace.pull, pt.pts) || 0;\n if (pull > 0) {\n cx += pull * pt.pxmid[0];\n cy += pull * pt.pxmid[1];\n }\n }\n pt.cxFinal = cx;\n pt.cyFinal = cy;\n function arc(start, finish, cw, scale) {\n var dx = scale * (finish[0] - start[0]);\n var dy = scale * (finish[1] - start[1]);\n return \"a\" + scale * cd0.r + \",\" + scale * cd0.r + \" 0 \" + pt.largeArc + (cw ? \" 1 \" : \" 0 \") + dx + \",\" + dy;\n }\n var hole = trace.hole;\n if (pt.v === cd0.vTotal) {\n var outerCircle = \"M\" + (cx + pt.px0[0]) + \",\" + (cy + pt.px0[1]) + arc(pt.px0, pt.pxmid, true, 1) + arc(pt.pxmid, pt.px0, true, 1) + \"Z\";\n if (hole) {\n slicePath.attr(\n \"d\",\n \"M\" + (cx + hole * pt.px0[0]) + \",\" + (cy + hole * pt.px0[1]) + arc(pt.px0, pt.pxmid, false, hole) + arc(pt.pxmid, pt.px0, false, hole) + \"Z\" + outerCircle\n );\n } else slicePath.attr(\"d\", outerCircle);\n } else {\n var outerArc = arc(pt.px0, pt.px1, true, 1);\n if (hole) {\n var rim = 1 - hole;\n slicePath.attr(\n \"d\",\n \"M\" + (cx + hole * pt.px1[0]) + \",\" + (cy + hole * pt.px1[1]) + arc(pt.px1, pt.px0, false, hole) + \"l\" + rim * pt.px0[0] + \",\" + rim * pt.px0[1] + outerArc + \"Z\"\n );\n } else {\n slicePath.attr(\n \"d\",\n \"M\" + cx + \",\" + cy + \"l\" + pt.px0[0] + \",\" + pt.px0[1] + outerArc + \"Z\"\n );\n }\n }\n formatSliceLabel(gd, pt, cd0);\n var textPosition = helpers.castOption(trace.textposition, pt.pts);\n var sliceTextGroup = sliceTop.selectAll(\"g.slicetext\").data(pt.text && textPosition !== \"none\" ? [0] : []);\n sliceTextGroup.enter().append(\"g\").classed(\"slicetext\", true);\n sliceTextGroup.exit().remove();\n sliceTextGroup.each(function() {\n var sliceText = Lib.ensureSingle(d3.select(this), \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(\n gd,\n textPosition === \"outside\" ? determineOutsideTextFont(trace, pt, fullLayout.font) : determineInsideTextFont(trace, pt, fullLayout.font)\n );\n sliceText.text(pt.text).attr({\n class: \"slicetext\",\n transform: \"\",\n \"text-anchor\": \"middle\"\n }).call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n var textBB = Drawing.bBox(sliceText.node());\n var transform;\n if (textPosition === \"outside\") {\n transform = transformOutsideText(textBB, pt);\n } else {\n transform = transformInsideText(textBB, pt, cd0);\n if (textPosition === \"auto\" && transform.scale < 1) {\n var newFont = Lib.ensureUniformFontSize(gd, trace.outsidetextfont);\n sliceText.call(Drawing.font, newFont);\n textBB = Drawing.bBox(sliceText.node());\n transform = transformOutsideText(textBB, pt);\n }\n }\n var textPosAngle = transform.textPosAngle;\n var textXY = textPosAngle === void 0 ? pt.pxmid : getCoords(cd0.r, textPosAngle);\n transform.targetX = cx + textXY[0] * transform.rCenter + (transform.x || 0);\n transform.targetY = cy + textXY[1] * transform.rCenter + (transform.y || 0);\n computeTransform(transform, textBB);\n if (transform.outside) {\n var targetY = transform.targetY;\n pt.yLabelMin = targetY - textBB.height / 2;\n pt.yLabelMid = targetY;\n pt.yLabelMax = targetY + textBB.height / 2;\n pt.labelExtraX = 0;\n pt.labelExtraY = 0;\n hasOutsideText = true;\n }\n transform.fontSize = font.size;\n recordMinTextSize(trace.type, transform, fullLayout);\n cd[i].transform = transform;\n Lib.setTransormAndDisplay(sliceText, transform);\n });\n });\n var titleTextGroup = d3.select(this).selectAll(\"g.titletext\").data(trace.title.text ? [0] : []);\n titleTextGroup.enter().append(\"g\").classed(\"titletext\", true);\n titleTextGroup.exit().remove();\n titleTextGroup.each(function() {\n var titleText = Lib.ensureSingle(d3.select(this), \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var txt = trace.title.text;\n if (trace._meta) {\n txt = Lib.templateString(txt, trace._meta);\n }\n titleText.text(txt).attr({\n class: \"titletext\",\n transform: \"\",\n \"text-anchor\": \"middle\"\n }).call(Drawing.font, trace.title.font).call(svgTextUtils.convertToTspans, gd);\n var transform;\n if (trace.title.position === \"middle center\") {\n transform = positionTitleInside(cd0);\n } else {\n transform = positionTitleOutside(cd0, gs);\n }\n titleText.attr(\n \"transform\",\n strTranslate(transform.x, transform.y) + strScale(Math.min(1, transform.scale)) + strTranslate(transform.tx, transform.ty)\n );\n });\n if (hasOutsideText) scootLabels(quadrants, trace);\n plotTextLines(slices, trace);\n if (hasOutsideText && trace.automargin) {\n var traceBbox = Drawing.bBox(plotGroup.node());\n var domain = trace.domain;\n var vpw = gs.w * (domain.x[1] - domain.x[0]);\n var vph = gs.h * (domain.y[1] - domain.y[0]);\n var xgap = (0.5 * vpw - cd0.r) / gs.w;\n var ygap = (0.5 * vph - cd0.r) / gs.h;\n Plots.autoMargin(gd, \"pie.\" + trace.uid + \".automargin\", {\n xl: domain.x[0] - xgap,\n xr: domain.x[1] + xgap,\n yb: domain.y[0] - ygap,\n yt: domain.y[1] + ygap,\n l: Math.max(cd0.cx - cd0.r - traceBbox.left, 0),\n r: Math.max(traceBbox.right - (cd0.cx + cd0.r), 0),\n b: Math.max(traceBbox.bottom - (cd0.cy + cd0.r), 0),\n t: Math.max(cd0.cy - cd0.r - traceBbox.top, 0),\n pad: 5\n });\n }\n });\n });\n setTimeout(function() {\n plotGroups.selectAll(\"tspan\").each(function() {\n var s = d3.select(this);\n if (s.attr(\"dy\")) s.attr(\"dy\", s.attr(\"dy\"));\n });\n }, 0);\n }\n function plotTextLines(slices, trace) {\n slices.each(function(pt) {\n var sliceTop = d3.select(this);\n if (!pt.labelExtraX && !pt.labelExtraY) {\n sliceTop.select(\"path.textline\").remove();\n return;\n }\n var sliceText = sliceTop.select(\"g.slicetext text\");\n pt.transform.targetX += pt.labelExtraX;\n pt.transform.targetY += pt.labelExtraY;\n Lib.setTransormAndDisplay(sliceText, pt.transform);\n var lineStartX = pt.cxFinal + pt.pxmid[0];\n var lineStartY = pt.cyFinal + pt.pxmid[1];\n var textLinePath = \"M\" + lineStartX + \",\" + lineStartY;\n var finalX = (pt.yLabelMax - pt.yLabelMin) * (pt.pxmid[0] < 0 ? -1 : 1) / 4;\n if (pt.labelExtraX) {\n var yFromX = pt.labelExtraX * pt.pxmid[1] / pt.pxmid[0];\n var yNet = pt.yLabelMid + pt.labelExtraY - (pt.cyFinal + pt.pxmid[1]);\n if (Math.abs(yFromX) > Math.abs(yNet)) {\n textLinePath += \"l\" + yNet * pt.pxmid[0] / pt.pxmid[1] + \",\" + yNet + \"H\" + (lineStartX + pt.labelExtraX + finalX);\n } else {\n textLinePath += \"l\" + pt.labelExtraX + \",\" + yFromX + \"v\" + (yNet - yFromX) + \"h\" + finalX;\n }\n } else {\n textLinePath += \"V\" + (pt.yLabelMid + pt.labelExtraY) + \"h\" + finalX;\n }\n Lib.ensureSingle(sliceTop, \"path\", \"textline\").call(Color2.stroke, trace.outsidetextfont.color).attr({\n \"stroke-width\": Math.min(2, trace.outsidetextfont.size / 8),\n d: textLinePath,\n fill: \"none\"\n });\n });\n }\n function attachFxHandlers(sliceTop, gd, cd) {\n var cd0 = cd[0];\n var cx = cd0.cx;\n var cy = cd0.cy;\n var trace = cd0.trace;\n var isFunnelArea = trace.type === \"funnelarea\";\n if (!(\"_hasHoverLabel\" in trace)) trace._hasHoverLabel = false;\n if (!(\"_hasHoverEvent\" in trace)) trace._hasHoverEvent = false;\n sliceTop.on(\"mouseover\", function(pt) {\n var fullLayout2 = gd._fullLayout;\n var trace2 = gd._fullData[trace.index];\n if (gd._dragging || fullLayout2.hovermode === false) return;\n var hoverinfo = trace2.hoverinfo;\n if (Array.isArray(hoverinfo)) {\n hoverinfo = Fx.castHoverinfo({\n hoverinfo: [helpers.castOption(hoverinfo, pt.pts)],\n _module: trace._module\n }, fullLayout2, 0);\n }\n if (hoverinfo === \"all\") hoverinfo = \"label+text+value+percent+name\";\n if (trace2.hovertemplate || hoverinfo !== \"none\" && hoverinfo !== \"skip\" && hoverinfo) {\n var rInscribed = pt.rInscribed || 0;\n var hoverCenterX = cx + pt.pxmid[0] * (1 - rInscribed);\n var hoverCenterY = cy + pt.pxmid[1] * (1 - rInscribed);\n var separators = fullLayout2.separators;\n var text = [];\n if (hoverinfo && hoverinfo.indexOf(\"label\") !== -1) text.push(pt.label);\n pt.text = helpers.castOption(trace2.hovertext || trace2.text, pt.pts);\n if (hoverinfo && hoverinfo.indexOf(\"text\") !== -1) {\n var tx = pt.text;\n if (Lib.isValidTextValue(tx)) text.push(tx);\n }\n pt.value = pt.v;\n pt.valueLabel = helpers.formatPieValue(pt.v, separators);\n if (hoverinfo && hoverinfo.indexOf(\"value\") !== -1) text.push(pt.valueLabel);\n pt.percent = pt.v / cd0.vTotal;\n pt.percentLabel = helpers.formatPiePercent(pt.percent, separators);\n if (hoverinfo && hoverinfo.indexOf(\"percent\") !== -1) text.push(pt.percentLabel);\n var hoverLabel = trace2.hoverlabel;\n var hoverFont = hoverLabel.font;\n var bbox = [];\n Fx.loneHover({\n trace,\n x0: hoverCenterX - rInscribed * cd0.r,\n x1: hoverCenterX + rInscribed * cd0.r,\n y: hoverCenterY,\n _x0: isFunnelArea ? cx + pt.TL[0] : hoverCenterX - rInscribed * cd0.r,\n _x1: isFunnelArea ? cx + pt.TR[0] : hoverCenterX + rInscribed * cd0.r,\n _y0: isFunnelArea ? cy + pt.TL[1] : hoverCenterY - rInscribed * cd0.r,\n _y1: isFunnelArea ? cy + pt.BL[1] : hoverCenterY + rInscribed * cd0.r,\n text: text.join(\"
\"),\n name: trace2.hovertemplate || hoverinfo.indexOf(\"name\") !== -1 ? trace2.name : void 0,\n idealAlign: pt.pxmid[0] < 0 ? \"left\" : \"right\",\n color: helpers.castOption(hoverLabel.bgcolor, pt.pts) || pt.color,\n borderColor: helpers.castOption(hoverLabel.bordercolor, pt.pts),\n fontFamily: helpers.castOption(hoverFont.family, pt.pts),\n fontSize: helpers.castOption(hoverFont.size, pt.pts),\n fontColor: helpers.castOption(hoverFont.color, pt.pts),\n nameLength: helpers.castOption(hoverLabel.namelength, pt.pts),\n textAlign: helpers.castOption(hoverLabel.align, pt.pts),\n hovertemplate: helpers.castOption(trace2.hovertemplate, pt.pts),\n hovertemplateLabels: pt,\n eventData: [eventData(pt, trace2)]\n }, {\n container: fullLayout2._hoverlayer.node(),\n outerContainer: fullLayout2._paper.node(),\n gd,\n inOut_bbox: bbox\n });\n pt.bbox = bbox[0];\n trace._hasHoverLabel = true;\n }\n trace._hasHoverEvent = true;\n gd.emit(\"plotly_hover\", {\n points: [eventData(pt, trace2)],\n event: d3.event\n });\n });\n sliceTop.on(\"mouseout\", function(evt) {\n var fullLayout2 = gd._fullLayout;\n var trace2 = gd._fullData[trace.index];\n var pt = d3.select(this).datum();\n if (trace._hasHoverEvent) {\n evt.originalEvent = d3.event;\n gd.emit(\"plotly_unhover\", {\n points: [eventData(pt, trace2)],\n event: d3.event\n });\n trace._hasHoverEvent = false;\n }\n if (trace._hasHoverLabel) {\n Fx.loneUnhover(fullLayout2._hoverlayer.node());\n trace._hasHoverLabel = false;\n }\n });\n sliceTop.on(\"click\", function(pt) {\n var fullLayout2 = gd._fullLayout;\n var trace2 = gd._fullData[trace.index];\n if (gd._dragging || fullLayout2.hovermode === false) return;\n gd._hoverdata = [eventData(pt, trace2)];\n Fx.click(gd, d3.event);\n });\n }\n function determineOutsideTextFont(trace, pt, layoutFont) {\n var color2 = helpers.castOption(trace.outsidetextfont.color, pt.pts) || helpers.castOption(trace.textfont.color, pt.pts) || layoutFont.color;\n var family = helpers.castOption(trace.outsidetextfont.family, pt.pts) || helpers.castOption(trace.textfont.family, pt.pts) || layoutFont.family;\n var size = helpers.castOption(trace.outsidetextfont.size, pt.pts) || helpers.castOption(trace.textfont.size, pt.pts) || layoutFont.size;\n var weight = helpers.castOption(trace.outsidetextfont.weight, pt.pts) || helpers.castOption(trace.textfont.weight, pt.pts) || layoutFont.weight;\n var style = helpers.castOption(trace.outsidetextfont.style, pt.pts) || helpers.castOption(trace.textfont.style, pt.pts) || layoutFont.style;\n var variant = helpers.castOption(trace.outsidetextfont.variant, pt.pts) || helpers.castOption(trace.textfont.variant, pt.pts) || layoutFont.variant;\n var textcase = helpers.castOption(trace.outsidetextfont.textcase, pt.pts) || helpers.castOption(trace.textfont.textcase, pt.pts) || layoutFont.textcase;\n var lineposition = helpers.castOption(trace.outsidetextfont.lineposition, pt.pts) || helpers.castOption(trace.textfont.lineposition, pt.pts) || layoutFont.lineposition;\n var shadow = helpers.castOption(trace.outsidetextfont.shadow, pt.pts) || helpers.castOption(trace.textfont.shadow, pt.pts) || layoutFont.shadow;\n return {\n color: color2,\n family,\n size,\n weight,\n style,\n variant,\n textcase,\n lineposition,\n shadow\n };\n }\n function determineInsideTextFont(trace, pt, layoutFont) {\n var customColor = helpers.castOption(trace.insidetextfont.color, pt.pts);\n if (!customColor && trace._input.textfont) {\n customColor = helpers.castOption(trace._input.textfont.color, pt.pts);\n }\n var family = helpers.castOption(trace.insidetextfont.family, pt.pts) || helpers.castOption(trace.textfont.family, pt.pts) || layoutFont.family;\n var size = helpers.castOption(trace.insidetextfont.size, pt.pts) || helpers.castOption(trace.textfont.size, pt.pts) || layoutFont.size;\n var weight = helpers.castOption(trace.insidetextfont.weight, pt.pts) || helpers.castOption(trace.textfont.weight, pt.pts) || layoutFont.weight;\n var style = helpers.castOption(trace.insidetextfont.style, pt.pts) || helpers.castOption(trace.textfont.style, pt.pts) || layoutFont.style;\n var variant = helpers.castOption(trace.insidetextfont.variant, pt.pts) || helpers.castOption(trace.textfont.variant, pt.pts) || layoutFont.variant;\n var textcase = helpers.castOption(trace.insidetextfont.textcase, pt.pts) || helpers.castOption(trace.textfont.textcase, pt.pts) || layoutFont.textcase;\n var lineposition = helpers.castOption(trace.insidetextfont.lineposition, pt.pts) || helpers.castOption(trace.textfont.lineposition, pt.pts) || layoutFont.lineposition;\n var shadow = helpers.castOption(trace.insidetextfont.shadow, pt.pts) || helpers.castOption(trace.textfont.shadow, pt.pts) || layoutFont.shadow;\n return {\n color: customColor || Color2.contrast(pt.color),\n family,\n size,\n weight,\n style,\n variant,\n textcase,\n lineposition,\n shadow\n };\n }\n function prerenderTitles(cdModule, gd) {\n var cd0, trace;\n for (var i = 0; i < cdModule.length; i++) {\n cd0 = cdModule[i][0];\n trace = cd0.trace;\n if (trace.title.text) {\n var txt = trace.title.text;\n if (trace._meta) {\n txt = Lib.templateString(txt, trace._meta);\n }\n var dummyTitle = Drawing.tester.append(\"text\").attr(\"data-notex\", 1).text(txt).call(Drawing.font, trace.title.font).call(svgTextUtils.convertToTspans, gd);\n var bBox = Drawing.bBox(dummyTitle.node(), true);\n cd0.titleBox = {\n width: bBox.width,\n height: bBox.height\n };\n dummyTitle.remove();\n }\n }\n }\n function transformInsideText(textBB, pt, cd0) {\n var r = cd0.r || pt.rpx1;\n var rInscribed = pt.rInscribed;\n var isEmpty = pt.startangle === pt.stopangle;\n if (isEmpty) {\n return {\n rCenter: 1 - rInscribed,\n scale: 0,\n rotate: 0,\n textPosAngle: 0\n };\n }\n var ring = pt.ring;\n var isCircle = ring === 1 && Math.abs(pt.startangle - pt.stopangle) === Math.PI * 2;\n var halfAngle = pt.halfangle;\n var midAngle = pt.midangle;\n var orientation = cd0.trace.insidetextorientation;\n var isHorizontal = orientation === \"horizontal\";\n var isTangential = orientation === \"tangential\";\n var isRadial = orientation === \"radial\";\n var isAuto = orientation === \"auto\";\n var allTransforms = [];\n var newT;\n if (!isAuto) {\n var considerCrossing = function(angle, key) {\n if (isCrossing(pt, angle)) {\n var dStart = Math.abs(angle - pt.startangle);\n var dStop = Math.abs(angle - pt.stopangle);\n var closestEdge = dStart < dStop ? dStart : dStop;\n if (key === \"tan\") {\n newT = calcTanTransform(textBB, r, ring, closestEdge, 0);\n } else {\n newT = calcRadTransform(textBB, r, ring, closestEdge, Math.PI / 2);\n }\n newT.textPosAngle = angle;\n allTransforms.push(newT);\n }\n };\n var i;\n if (isHorizontal || isTangential) {\n for (i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * i, \"tan\");\n for (i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1), \"tan\");\n }\n if (isHorizontal || isRadial) {\n for (i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1.5), \"rad\");\n for (i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 0.5), \"rad\");\n }\n }\n if (isCircle || isAuto || isHorizontal) {\n var textDiameter = Math.sqrt(textBB.width * textBB.width + textBB.height * textBB.height);\n newT = {\n scale: rInscribed * r * 2 / textDiameter,\n // and the center position and rotation in this case\n rCenter: 1 - rInscribed,\n rotate: 0\n };\n newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;\n if (newT.scale >= 1) return newT;\n allTransforms.push(newT);\n }\n if (isAuto || isRadial) {\n newT = calcRadTransform(textBB, r, ring, halfAngle, midAngle);\n newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;\n allTransforms.push(newT);\n }\n if (isAuto || isTangential) {\n newT = calcTanTransform(textBB, r, ring, halfAngle, midAngle);\n newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;\n allTransforms.push(newT);\n }\n var id = 0;\n var maxScale = 0;\n for (var k = 0; k < allTransforms.length; k++) {\n var s = allTransforms[k].scale;\n if (maxScale < s) {\n maxScale = s;\n id = k;\n }\n if (!isAuto && maxScale >= 1) {\n break;\n }\n }\n return allTransforms[id];\n }\n function isCrossing(pt, angle) {\n var start = pt.startangle;\n var stop = pt.stopangle;\n return start > angle && angle > stop || start < angle && angle < stop;\n }\n function calcRadTransform(textBB, r, ring, halfAngle, midAngle) {\n r = Math.max(0, r - 2 * TEXTPAD);\n var a = textBB.width / textBB.height;\n var s = calcMaxHalfSize(a, halfAngle, r, ring);\n return {\n scale: s * 2 / textBB.height,\n rCenter: calcRCenter(a, s / r),\n rotate: calcRotate(midAngle)\n };\n }\n function calcTanTransform(textBB, r, ring, halfAngle, midAngle) {\n r = Math.max(0, r - 2 * TEXTPAD);\n var a = textBB.height / textBB.width;\n var s = calcMaxHalfSize(a, halfAngle, r, ring);\n return {\n scale: s * 2 / textBB.width,\n rCenter: calcRCenter(a, s / r),\n rotate: calcRotate(midAngle + Math.PI / 2)\n };\n }\n function calcRCenter(a, b) {\n return Math.cos(b) - a * b;\n }\n function calcRotate(t) {\n return (180 / Math.PI * t + 720) % 180 - 90;\n }\n function calcMaxHalfSize(a, halfAngle, r, ring) {\n var q = a + 1 / (2 * Math.tan(halfAngle));\n return r * Math.min(\n 1 / (Math.sqrt(q * q + 0.5) + q),\n ring / (Math.sqrt(a * a + ring / 2) + a)\n );\n }\n function getInscribedRadiusFraction(pt, cd0) {\n if (pt.v === cd0.vTotal && !cd0.trace.hole) return 1;\n return Math.min(1 / (1 + 1 / Math.sin(pt.halfangle)), pt.ring / 2);\n }\n function transformOutsideText(textBB, pt) {\n var x = pt.pxmid[0];\n var y = pt.pxmid[1];\n var dx = textBB.width / 2;\n var dy = textBB.height / 2;\n if (x < 0) dx *= -1;\n if (y < 0) dy *= -1;\n return {\n scale: 1,\n rCenter: 1,\n rotate: 0,\n x: dx + Math.abs(dy) * (dx > 0 ? 1 : -1) / 2,\n y: dy / (1 + x * x / (y * y)),\n outside: true\n };\n }\n function positionTitleInside(cd0) {\n var textDiameter = Math.sqrt(cd0.titleBox.width * cd0.titleBox.width + cd0.titleBox.height * cd0.titleBox.height);\n return {\n x: cd0.cx,\n y: cd0.cy,\n scale: cd0.trace.hole * cd0.r * 2 / textDiameter,\n tx: 0,\n ty: -cd0.titleBox.height / 2 + cd0.trace.title.font.size\n };\n }\n function positionTitleOutside(cd0, plotSize) {\n var scaleX = 1;\n var scaleY = 1;\n var maxPull;\n var trace = cd0.trace;\n var topMiddle = {\n x: cd0.cx,\n y: cd0.cy\n };\n var translate = {\n tx: 0,\n ty: 0\n };\n translate.ty += trace.title.font.size;\n maxPull = getMaxPull(trace);\n if (trace.title.position.indexOf(\"top\") !== -1) {\n topMiddle.y -= (1 + maxPull) * cd0.r;\n translate.ty -= cd0.titleBox.height;\n } else if (trace.title.position.indexOf(\"bottom\") !== -1) {\n topMiddle.y += (1 + maxPull) * cd0.r;\n }\n var rx = applyAspectRatio(cd0.r, cd0.trace.aspectratio);\n var maxWidth = plotSize.w * (trace.domain.x[1] - trace.domain.x[0]) / 2;\n if (trace.title.position.indexOf(\"left\") !== -1) {\n maxWidth = maxWidth + rx;\n topMiddle.x -= (1 + maxPull) * rx;\n translate.tx += cd0.titleBox.width / 2;\n } else if (trace.title.position.indexOf(\"center\") !== -1) {\n maxWidth *= 2;\n } else if (trace.title.position.indexOf(\"right\") !== -1) {\n maxWidth = maxWidth + rx;\n topMiddle.x += (1 + maxPull) * rx;\n translate.tx -= cd0.titleBox.width / 2;\n }\n scaleX = maxWidth / cd0.titleBox.width;\n scaleY = getTitleSpace(cd0, plotSize) / cd0.titleBox.height;\n return {\n x: topMiddle.x,\n y: topMiddle.y,\n scale: Math.min(scaleX, scaleY),\n tx: translate.tx,\n ty: translate.ty\n };\n }\n function applyAspectRatio(x, aspectratio) {\n return x / (aspectratio === void 0 ? 1 : aspectratio);\n }\n function getTitleSpace(cd0, plotSize) {\n var trace = cd0.trace;\n var pieBoxHeight = plotSize.h * (trace.domain.y[1] - trace.domain.y[0]);\n return Math.min(cd0.titleBox.height, pieBoxHeight / 2);\n }\n function getMaxPull(trace) {\n var maxPull = trace.pull;\n if (!maxPull) return 0;\n var j;\n if (Lib.isArrayOrTypedArray(maxPull)) {\n maxPull = 0;\n for (j = 0; j < trace.pull.length; j++) {\n if (trace.pull[j] > maxPull) maxPull = trace.pull[j];\n }\n }\n return maxPull;\n }\n function scootLabels(quadrants, trace) {\n var xHalf, yHalf, equatorFirst, farthestX, farthestY, xDiffSign, yDiffSign, thisQuad, oppositeQuad, wholeSide, i, thisQuadOutside, firstOppositeOutsidePt;\n function topFirst(a, b) {\n return a.pxmid[1] - b.pxmid[1];\n }\n function bottomFirst(a, b) {\n return b.pxmid[1] - a.pxmid[1];\n }\n function scootOneLabel(thisPt, prevPt2) {\n if (!prevPt2) prevPt2 = {};\n var prevOuterY = prevPt2.labelExtraY + (yHalf ? prevPt2.yLabelMax : prevPt2.yLabelMin);\n var thisInnerY = yHalf ? thisPt.yLabelMin : thisPt.yLabelMax;\n var thisOuterY = yHalf ? thisPt.yLabelMax : thisPt.yLabelMin;\n var thisSliceOuterY = thisPt.cyFinal + farthestY(thisPt.px0[1], thisPt.px1[1]);\n var newExtraY = prevOuterY - thisInnerY;\n var xBuffer, i2, otherPt, otherOuterY, otherOuterX, newExtraX;\n if (newExtraY * yDiffSign > 0) thisPt.labelExtraY = newExtraY;\n if (!Lib.isArrayOrTypedArray(trace.pull)) return;\n for (i2 = 0; i2 < wholeSide.length; i2++) {\n otherPt = wholeSide[i2];\n if (otherPt === thisPt || (helpers.castOption(trace.pull, thisPt.pts) || 0) >= (helpers.castOption(trace.pull, otherPt.pts) || 0)) {\n continue;\n }\n if ((thisPt.pxmid[1] - otherPt.pxmid[1]) * yDiffSign > 0) {\n otherOuterY = otherPt.cyFinal + farthestY(otherPt.px0[1], otherPt.px1[1]);\n newExtraY = otherOuterY - thisInnerY - thisPt.labelExtraY;\n if (newExtraY * yDiffSign > 0) thisPt.labelExtraY += newExtraY;\n } else if ((thisOuterY + thisPt.labelExtraY - thisSliceOuterY) * yDiffSign > 0) {\n xBuffer = 3 * xDiffSign * Math.abs(i2 - wholeSide.indexOf(thisPt));\n otherOuterX = otherPt.cxFinal + farthestX(otherPt.px0[0], otherPt.px1[0]);\n newExtraX = otherOuterX + xBuffer - (thisPt.cxFinal + thisPt.pxmid[0]) - thisPt.labelExtraX;\n if (newExtraX * xDiffSign > 0) thisPt.labelExtraX += newExtraX;\n }\n }\n }\n for (yHalf = 0; yHalf < 2; yHalf++) {\n equatorFirst = yHalf ? topFirst : bottomFirst;\n farthestY = yHalf ? Math.max : Math.min;\n yDiffSign = yHalf ? 1 : -1;\n for (xHalf = 0; xHalf < 2; xHalf++) {\n farthestX = xHalf ? Math.max : Math.min;\n xDiffSign = xHalf ? 1 : -1;\n thisQuad = quadrants[yHalf][xHalf];\n thisQuad.sort(equatorFirst);\n oppositeQuad = quadrants[1 - yHalf][xHalf];\n wholeSide = oppositeQuad.concat(thisQuad);\n thisQuadOutside = [];\n for (i = 0; i < thisQuad.length; i++) {\n if (thisQuad[i].yLabelMid !== void 0) thisQuadOutside.push(thisQuad[i]);\n }\n firstOppositeOutsidePt = false;\n for (i = 0; yHalf && i < oppositeQuad.length; i++) {\n if (oppositeQuad[i].yLabelMid !== void 0) {\n firstOppositeOutsidePt = oppositeQuad[i];\n break;\n }\n }\n for (i = 0; i < thisQuadOutside.length; i++) {\n var prevPt = i && thisQuadOutside[i - 1];\n if (firstOppositeOutsidePt && !i) prevPt = firstOppositeOutsidePt;\n scootOneLabel(thisQuadOutside[i], prevPt);\n }\n }\n }\n }\n function layoutAreas(cdModule, plotSize) {\n var scaleGroups = [];\n for (var i = 0; i < cdModule.length; i++) {\n var cd0 = cdModule[i][0];\n var trace = cd0.trace;\n var domain = trace.domain;\n var width = plotSize.w * (domain.x[1] - domain.x[0]);\n var height = plotSize.h * (domain.y[1] - domain.y[0]);\n if (trace.title.text && trace.title.position !== \"middle center\") {\n height -= getTitleSpace(cd0, plotSize);\n }\n var rx = width / 2;\n var ry = height / 2;\n if (trace.type === \"funnelarea\" && !trace.scalegroup) {\n ry /= trace.aspectratio;\n }\n cd0.r = Math.min(rx, ry) / (1 + getMaxPull(trace));\n cd0.cx = plotSize.l + plotSize.w * (trace.domain.x[1] + trace.domain.x[0]) / 2;\n cd0.cy = plotSize.t + plotSize.h * (1 - trace.domain.y[0]) - height / 2;\n if (trace.title.text && trace.title.position.indexOf(\"bottom\") !== -1) {\n cd0.cy -= getTitleSpace(cd0, plotSize);\n }\n if (trace.scalegroup && scaleGroups.indexOf(trace.scalegroup) === -1) {\n scaleGroups.push(trace.scalegroup);\n }\n }\n groupScale(cdModule, scaleGroups);\n }\n function groupScale(cdModule, scaleGroups) {\n var cd0, i, trace;\n for (var k = 0; k < scaleGroups.length; k++) {\n var min = Infinity;\n var g = scaleGroups[k];\n for (i = 0; i < cdModule.length; i++) {\n cd0 = cdModule[i][0];\n trace = cd0.trace;\n if (trace.scalegroup === g) {\n var area;\n if (trace.type === \"pie\") {\n area = cd0.r * cd0.r;\n } else if (trace.type === \"funnelarea\") {\n var rx, ry;\n if (trace.aspectratio > 1) {\n rx = cd0.r;\n ry = rx / trace.aspectratio;\n } else {\n ry = cd0.r;\n rx = ry * trace.aspectratio;\n }\n rx *= (1 + trace.baseratio) / 2;\n area = rx * ry;\n }\n min = Math.min(min, area / cd0.vTotal);\n }\n }\n for (i = 0; i < cdModule.length; i++) {\n cd0 = cdModule[i][0];\n trace = cd0.trace;\n if (trace.scalegroup === g) {\n var v = min * cd0.vTotal;\n if (trace.type === \"funnelarea\") {\n v /= (1 + trace.baseratio) / 2;\n v /= trace.aspectratio;\n }\n cd0.r = Math.sqrt(v);\n }\n }\n }\n }\n function setCoords(cd) {\n var cd0 = cd[0];\n var r = cd0.r;\n var trace = cd0.trace;\n var currentAngle = helpers.getRotationAngle(trace.rotation);\n var angleFactor = 2 * Math.PI / cd0.vTotal;\n var firstPt = \"px0\";\n var lastPt = \"px1\";\n var i, cdi, currentCoords;\n if (trace.direction === \"counterclockwise\") {\n for (i = 0; i < cd.length; i++) {\n if (!cd[i].hidden) break;\n }\n if (i === cd.length) return;\n currentAngle += angleFactor * cd[i].v;\n angleFactor *= -1;\n firstPt = \"px1\";\n lastPt = \"px0\";\n }\n currentCoords = getCoords(r, currentAngle);\n for (i = 0; i < cd.length; i++) {\n cdi = cd[i];\n if (cdi.hidden) continue;\n cdi[firstPt] = currentCoords;\n cdi.startangle = currentAngle;\n currentAngle += angleFactor * cdi.v / 2;\n cdi.pxmid = getCoords(r, currentAngle);\n cdi.midangle = currentAngle;\n currentAngle += angleFactor * cdi.v / 2;\n currentCoords = getCoords(r, currentAngle);\n cdi.stopangle = currentAngle;\n cdi[lastPt] = currentCoords;\n cdi.largeArc = cdi.v > cd0.vTotal / 2 ? 1 : 0;\n cdi.halfangle = Math.PI * Math.min(cdi.v / cd0.vTotal, 0.5);\n cdi.ring = 1 - trace.hole;\n cdi.rInscribed = getInscribedRadiusFraction(cdi, cd0);\n }\n }\n function getCoords(r, angle) {\n return [r * Math.sin(angle), -r * Math.cos(angle)];\n }\n function formatSliceLabel(gd, pt, cd0) {\n var fullLayout = gd._fullLayout;\n var trace = cd0.trace;\n var texttemplate = trace.texttemplate;\n var textinfo = trace.textinfo;\n if (!texttemplate && textinfo && textinfo !== \"none\") {\n var parts = textinfo.split(\"+\");\n var hasFlag = function(flag) {\n return parts.indexOf(flag) !== -1;\n };\n var hasLabel = hasFlag(\"label\");\n var hasText = hasFlag(\"text\");\n var hasValue = hasFlag(\"value\");\n var hasPercent = hasFlag(\"percent\");\n var separators = fullLayout.separators;\n var text;\n text = hasLabel ? [pt.label] : [];\n if (hasText) {\n var tx = helpers.getFirstFilled(trace.text, pt.pts);\n if (isValidTextValue(tx)) text.push(tx);\n }\n if (hasValue) text.push(helpers.formatPieValue(pt.v, separators));\n if (hasPercent) text.push(helpers.formatPiePercent(pt.v / cd0.vTotal, separators));\n pt.text = text.join(\"
\");\n }\n function makeTemplateVariables(pt2) {\n return {\n label: pt2.label,\n value: pt2.v,\n valueLabel: helpers.formatPieValue(pt2.v, fullLayout.separators),\n percent: pt2.v / cd0.vTotal,\n percentLabel: helpers.formatPiePercent(pt2.v / cd0.vTotal, fullLayout.separators),\n color: pt2.color,\n text: pt2.text,\n customdata: Lib.castOption(trace, pt2.i, \"customdata\")\n };\n }\n if (texttemplate) {\n var txt = Lib.castOption(trace, pt.i, \"texttemplate\");\n if (!txt) {\n pt.text = \"\";\n } else {\n var obj = makeTemplateVariables(pt);\n var ptTx = helpers.getFirstFilled(trace.text, pt.pts);\n if (isValidTextValue(ptTx) || ptTx === \"\") obj.text = ptTx;\n pt.text = Lib.texttemplateString(txt, obj, gd._fullLayout._d3locale, obj, trace._meta || {});\n }\n }\n }\n function computeTransform(transform, textBB) {\n var a = transform.rotate * Math.PI / 180;\n var cosA = Math.cos(a);\n var sinA = Math.sin(a);\n var midX = (textBB.left + textBB.right) / 2;\n var midY = (textBB.top + textBB.bottom) / 2;\n transform.textX = midX * cosA - midY * sinA;\n transform.textY = midX * sinA + midY * cosA;\n transform.noCenter = true;\n }\n module.exports = {\n plot,\n formatSliceLabel,\n transformInsideText,\n determineInsideTextFont,\n positionTitleOutside,\n prerenderTitles,\n layoutAreas,\n attachFxHandlers,\n computeTransform\n };\n }\n });\n\n // src/traces/pie/style.js\n var require_style12 = __commonJS({\n \"src/traces/pie/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var styleOne = require_style_one();\n var resizeText = require_uniform_text().resizeText;\n module.exports = function style(gd) {\n var s = gd._fullLayout._pielayer.selectAll(\".trace\");\n resizeText(gd, s, \"pie\");\n s.each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var traceSelection = d3.select(this);\n traceSelection.style({ opacity: trace.opacity });\n traceSelection.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd);\n });\n });\n };\n }\n });\n\n // src/traces/pie/base_plot.js\n var require_base_plot = __commonJS({\n \"src/traces/pie/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"pie\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/pie/index.js\n var require_pie = __commonJS({\n \"src/traces/pie/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes35(),\n supplyDefaults: require_defaults31().supplyDefaults,\n supplyLayoutDefaults: require_layout_defaults11(),\n layoutAttributes: require_layout_attributes12(),\n calc: require_calc16().calc,\n crossTraceCalc: require_calc16().crossTraceCalc,\n plot: require_plot12().plot,\n style: require_style12(),\n styleOne: require_style_one(),\n moduleType: \"trace\",\n name: \"pie\",\n basePlotModule: require_base_plot(),\n categories: [\"pie-like\", \"pie\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/pie.js\n var require_pie2 = __commonJS({\n \"lib/pie.js\"(exports, module) {\n \"use strict\";\n module.exports = require_pie();\n }\n });\n\n // src/traces/sunburst/base_plot.js\n var require_base_plot2 = __commonJS({\n \"src/traces/sunburst/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"sunburst\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/sunburst/constants.js\n var require_constants20 = __commonJS({\n \"src/traces/sunburst/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n CLICK_TRANSITION_TIME: 750,\n CLICK_TRANSITION_EASING: \"linear\",\n eventDataKeys: [\n // string\n \"currentPath\",\n \"root\",\n \"entry\",\n // no need to add 'parent' here\n // percentages i.e. ratios\n \"percentRoot\",\n \"percentEntry\",\n \"percentParent\"\n ]\n };\n }\n });\n\n // src/traces/sunburst/attributes.js\n var require_attributes36 = __commonJS({\n \"src/traces/sunburst/attributes.js\"(exports, module) {\n \"use strict\";\n var baseAttrs = require_attributes2();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var domainAttrs = require_domain().attributes;\n var pieAttrs = require_attributes35();\n var constants = require_constants20();\n var extendFlat = require_extend().extendFlat;\n var pattern = require_attributes4().pattern;\n module.exports = {\n labels: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n parents: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n values: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n branchvalues: {\n valType: \"enumerated\",\n values: [\"remainder\", \"total\"],\n dflt: \"remainder\",\n editType: \"calc\"\n },\n count: {\n valType: \"flaglist\",\n flags: [\n \"branches\",\n \"leaves\"\n ],\n dflt: \"leaves\",\n editType: \"calc\"\n },\n level: {\n valType: \"any\",\n editType: \"plot\",\n anim: true\n },\n maxdepth: {\n valType: \"integer\",\n editType: \"plot\",\n dflt: -1\n },\n marker: extendFlat(\n {\n colors: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // colorinheritance: {\n // valType: 'enumerated',\n // values: ['per-branch', 'per-label', false]\n // },\n line: {\n color: extendFlat({}, pieAttrs.marker.line.color, {\n dflt: null\n }),\n width: extendFlat({}, pieAttrs.marker.line.width, { dflt: 1 }),\n editType: \"calc\"\n },\n pattern,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\", {\n colorAttr: \"colors\",\n anim: false\n // TODO: set to anim: true?\n })\n ),\n leaf: {\n opacity: {\n valType: \"number\",\n editType: \"style\",\n min: 0,\n max: 1\n },\n editType: \"plot\"\n },\n text: pieAttrs.text,\n textinfo: {\n valType: \"flaglist\",\n flags: [\n \"label\",\n \"text\",\n \"value\",\n \"current path\",\n \"percent root\",\n \"percent entry\",\n \"percent parent\"\n ],\n extras: [\"none\"],\n editType: \"plot\"\n },\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\", \"value\"])\n }),\n hovertext: pieAttrs.hovertext,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\n \"label\",\n \"text\",\n \"value\",\n \"name\",\n \"current path\",\n \"percent root\",\n \"percent entry\",\n \"percent parent\"\n ],\n dflt: \"label+text+value+name\"\n }),\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n textfont: pieAttrs.textfont,\n insidetextorientation: pieAttrs.insidetextorientation,\n insidetextfont: pieAttrs.insidetextfont,\n outsidetextfont: extendFlat({}, pieAttrs.outsidetextfont, {}),\n rotation: {\n valType: \"angle\",\n dflt: 0,\n editType: \"plot\"\n },\n sort: pieAttrs.sort,\n root: {\n color: {\n valType: \"color\",\n editType: \"calc\",\n dflt: \"rgba(0,0,0,0)\"\n },\n editType: \"calc\"\n },\n domain: domainAttrs({ name: \"sunburst\", trace: true, editType: \"calc\" })\n };\n }\n });\n\n // src/traces/sunburst/layout_attributes.js\n var require_layout_attributes13 = __commonJS({\n \"src/traces/sunburst/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n sunburstcolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendsunburstcolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/sunburst/defaults.js\n var require_defaults32 = __commonJS({\n \"src/traces/sunburst/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes36();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var handleMarkerDefaults = require_defaults31().handleMarkerDefaults;\n var Colorscale = require_colorscale();\n var hasColorscale = Colorscale.hasColorscale;\n var colorscaleDefaults = Colorscale.handleDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var parents = coerce(\"parents\");\n if (!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n var vals = coerce(\"values\");\n if (vals && vals.length) {\n coerce(\"branchvalues\");\n } else {\n coerce(\"count\");\n }\n coerce(\"level\");\n coerce(\"maxdepth\");\n handleMarkerDefaults(traceIn, traceOut, layout, coerce);\n var withColorscale = traceOut._hasColorscale = hasColorscale(traceIn, \"marker\", \"colors\") || (traceIn.marker || {}).coloraxis;\n if (withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.\", cLetter: \"c\" });\n }\n coerce(\"leaf.opacity\", withColorscale ? 1 : 0.7);\n var text = coerce(\"text\");\n coerce(\"texttemplate\");\n if (!traceOut.texttemplate) coerce(\"textinfo\", Lib.isArrayOrTypedArray(text) ? \"text+label\" : \"label\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var textposition = \"auto\";\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce(\"insidetextorientation\");\n coerce(\"sort\");\n coerce(\"rotation\");\n coerce(\"root.color\");\n handleDomainDefaults(traceOut, layout, coerce);\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/sunburst/layout_defaults.js\n var require_layout_defaults12 = __commonJS({\n \"src/traces/sunburst/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes13();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"sunburstcolorway\", layoutOut.colorway);\n coerce(\"extendsunburstcolors\");\n };\n }\n });\n\n // node_modules/d3-hierarchy/dist/d3-hierarchy.js\n var require_d3_hierarchy = __commonJS({\n \"node_modules/d3-hierarchy/dist/d3-hierarchy.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n }\n function meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n }\n function meanXReduce(x, c) {\n return x + c.x;\n }\n function maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n }\n function maxYReduce(y, c) {\n return Math.max(y, c.y);\n }\n function leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n }\n function leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n }\n function cluster() {\n var separation = defaultSeparation, dx = 1, dy = 1, nodeSize = false;\n function cluster2(root) {\n var previousNode, x = 0;\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = leafLeft(root), right = leafRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n cluster2.separation = function(x) {\n return arguments.length ? (separation = x, cluster2) : separation;\n };\n cluster2.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster2) : nodeSize ? null : [dx, dy];\n };\n cluster2.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster2) : nodeSize ? [dx, dy] : null;\n };\n return cluster2;\n }\n function count(node) {\n var sum = 0, children = node.children, i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n }\n function node_count() {\n return this.eachAfter(count);\n }\n function node_each(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n }\n function node_eachBefore(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n }\n function node_eachAfter(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n }\n function node_sum(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0, children = node.children, i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n }\n function node_sort(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n }\n function node_path(end) {\n var start = this, ancestor = leastCommonAncestor(start, end), nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n }\n function leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(), bNodes = b.ancestors(), c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n }\n function node_ancestors() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n }\n function node_descendants() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n }\n function node_leaves() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n }\n function node_links() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) {\n links.push({ source: node.parent, target: node });\n }\n });\n return links;\n }\n function hierarchy(data, children) {\n var root = new Node(data), valued = +data.value && (root.value = data.value), node, nodes = [root], child, childs, i, n;\n if (children == null) children = defaultChildren;\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n return root.eachBefore(computeHeight);\n }\n function node_copy() {\n return hierarchy(this).eachBefore(copyData);\n }\n function defaultChildren(d) {\n return d.children;\n }\n function copyData(node) {\n node.data = node.data.data;\n }\n function computeHeight(node) {\n var height = 0;\n do\n node.height = height;\n while ((node = node.parent) && node.height < ++height);\n }\n function Node(data) {\n this.data = data;\n this.depth = this.height = 0;\n this.parent = null;\n }\n Node.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n };\n var slice = Array.prototype.slice;\n function shuffle(array) {\n var m = array.length, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n return array;\n }\n function enclose(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B2 = [], p, e;\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B2 = extendBasis(B2, p)), i = 0;\n }\n return e;\n }\n function extendBasis(B2, p) {\n var i, j;\n if (enclosesWeakAll(p, B2)) return [p];\n for (i = 0; i < B2.length; ++i) {\n if (enclosesNot(p, B2[i]) && enclosesWeakAll(encloseBasis2(B2[i], p), B2)) {\n return [B2[i], p];\n }\n }\n for (i = 0; i < B2.length - 1; ++i) {\n for (j = i + 1; j < B2.length; ++j) {\n if (enclosesNot(encloseBasis2(B2[i], B2[j]), p) && enclosesNot(encloseBasis2(B2[i], p), B2[j]) && enclosesNot(encloseBasis2(B2[j], p), B2[i]) && enclosesWeakAll(encloseBasis3(B2[i], B2[j], p), B2)) {\n return [B2[i], B2[j], p];\n }\n }\n }\n throw new Error();\n }\n function enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n }\n function enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n }\n function enclosesWeakAll(a, B2) {\n for (var i = 0; i < B2.length; ++i) {\n if (!enclosesWeak(a, B2[i])) {\n return false;\n }\n }\n return true;\n }\n function encloseBasis(B2) {\n switch (B2.length) {\n case 1:\n return encloseBasis1(B2[0]);\n case 2:\n return encloseBasis2(B2[0], B2[1]);\n case 3:\n return encloseBasis3(B2[0], B2[1], B2[2]);\n }\n }\n function encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n }\n function encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n }\n function encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x3 = c.x, y3 = c.y, r3 = c.r, a2 = x1 - x2, a3 = x1 - x3, b2 = y1 - y2, b3 = y1 - y3, c2 = r2 - r1, c3 = r3 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, ab = a3 * b2 - a2 * b3, xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, xb = (b3 * c2 - b2 * c3) / ab, ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, yb = (a2 * c3 - a3 * c2) / ab, A2 = xb * xb + yb * yb - 1, B2 = 2 * (r1 + xa * xb + ya * yb), C2 = xa * xa + ya * ya - r1 * r1, r = -(A2 ? (B2 + Math.sqrt(B2 * B2 - 4 * A2 * C2)) / (2 * A2) : C2 / B2);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r\n };\n }\n function place(b, a, c) {\n var dx = b.x - a.x, x, a2, dy = b.y - a.y, y, b2, d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n }\n function intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n }\n function score(node) {\n var a = node._, b = node.next._, ab = a.r + b.r, dx = (a.x * b.r + b.x * a.r) / ab, dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n }\n function Node$1(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n }\n function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n place(b, a, c = circles[2]);\n a = new Node$1(a), b = new Node$1(b), c = new Node$1(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node$1(c);\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n a = [b._], c = b;\n while ((c = c.next) !== b) a.push(c._);\n c = enclose(a);\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n return c.r;\n }\n function siblings(circles) {\n packEnclose(circles);\n return circles;\n }\n function optional(f) {\n return f == null ? null : required(f);\n }\n function required(f) {\n if (typeof f !== \"function\") throw new Error();\n return f;\n }\n function constantZero() {\n return 0;\n }\n function constant(x) {\n return function() {\n return x;\n };\n }\n function defaultRadius(d) {\n return Math.sqrt(d.value);\n }\n function index() {\n var radius = null, dx = 1, dy = 1, padding = constantZero;\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius)).eachAfter(packChildren(padding, 0.5)).eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildren(constantZero, 1)).eachAfter(packChildren(padding, root.r / Math.min(dx, dy))).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n return pack;\n }\n function radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n }\n function packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children, i, n = children.length, r = padding(node) * k || 0, e;\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n }\n function translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n }\n function roundNode(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n }\n function treemapDice(parent, x0, y0, x1, y1) {\n var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (x1 - x0) / parent.value;\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n }\n function partition() {\n var dx = 1, dy = 1, padding = 0, round = false;\n function partition2(root) {\n var n = root.height + 1;\n root.x0 = root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n function positionNode(dy2, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy2 * (node.depth + 1) / n, node.x1, dy2 * (node.depth + 2) / n);\n }\n var x0 = node.x0, y0 = node.y0, x1 = node.x1 - padding, y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n partition2.round = function(x) {\n return arguments.length ? (round = !!x, partition2) : round;\n };\n partition2.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition2) : [dx, dy];\n };\n partition2.padding = function(x) {\n return arguments.length ? (padding = +x, partition2) : padding;\n };\n return partition2;\n }\n var keyPrefix = \"$\", preroot = { depth: -1 }, ambiguous = {};\n function defaultId(d) {\n return d.id;\n }\n function defaultParentId(d) {\n return d.parentId;\n }\n function stratify() {\n var id = defaultId, parentId = defaultParentId;\n function stratify2(data) {\n var d, i, n = data.length, root, parent, node, nodes = new Array(n), nodeId, nodeKey, nodeByKey = {};\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node2) {\n node2.depth = node2.parent.depth + 1;\n --n;\n }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n return root;\n }\n stratify2.id = function(x) {\n return arguments.length ? (id = required(x), stratify2) : id;\n };\n stratify2.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify2) : parentId;\n };\n return stratify2;\n }\n function defaultSeparation$1(a, b) {\n return a.parent === b.parent ? 1 : 2;\n }\n function nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n }\n function nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n }\n function moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function executeShifts(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n function TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null;\n this.a = this;\n this.z = 0;\n this.m = 0;\n this.c = 0;\n this.s = 0;\n this.t = null;\n this.i = i;\n }\n TreeNode.prototype = Object.create(Node.prototype);\n function treeRoot(root) {\n var tree2 = new TreeNode(root, 0), node, nodes = [tree2], child, children, i, n;\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n (tree2.parent = new TreeNode(null, 0)).children = [tree2];\n return tree2;\n }\n function tree() {\n var separation = defaultSeparation$1, dx = 1, dy = 1, nodeSize = null;\n function tree2(root) {\n var t = treeRoot(root);\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n if (nodeSize) root.eachBefore(sizeNode);\n else {\n var left = root, right = root, bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2, tx = s - left.x, kx = dx / (right.x + s + tx), ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return root;\n }\n function firstWalk(v) {\n var children = v.children, siblings2 = v.parent.children, w = v.i ? siblings2[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings2[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n tree2.separation = function(x) {\n return arguments.length ? (separation = x, tree2) : separation;\n };\n tree2.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree2) : nodeSize ? null : [dx, dy];\n };\n tree2.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree2) : nodeSize ? [dx, dy] : null;\n };\n return tree2;\n }\n function treemapSlice(parent, x0, y0, x1, y1) {\n var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (y1 - y0) / parent.value;\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n }\n var phi = (1 + Math.sqrt(5)) / 2;\n function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [], nodes = parent.children, row, nodeValue, i0 = 0, i1 = 0, n = nodes.length, dx, dy, value = parent.value, sumValue, minValue, maxValue, newRatio, minRatio, alpha, beta;\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n do\n sumValue = nodes[i1++].value;\n while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n minRatio = newRatio;\n }\n rows.push(row = { value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1) });\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n return rows;\n }\n var squarify = function custom(ratio) {\n function squarify2(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n squarify2.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n return squarify2;\n }(phi);\n function index$1() {\n var tile = squarify, round = false, dx = 1, dy = 1, paddingStack = [0], paddingInner = constantZero, paddingTop = constantZero, paddingRight = constantZero, paddingBottom = constantZero, paddingLeft = constantZero;\n function treemap(root) {\n root.x0 = root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n function positionNode(node) {\n var p = paddingStack[node.depth], x0 = node.x0 + p, y0 = node.y0 + p, x1 = node.x1 - p, y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n return treemap;\n }\n function binary(parent, x0, y0, x1, y1) {\n var nodes = parent.children, i, n = nodes.length, sum, sums = new Array(n + 1);\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n partition2(0, n, parent.value, x0, y0, x1, y1);\n function partition2(i2, j, value, x02, y02, x12, y12) {\n if (i2 >= j - 1) {\n var node = nodes[i2];\n node.x0 = x02, node.y0 = y02;\n node.x1 = x12, node.y1 = y12;\n return;\n }\n var valueOffset = sums[i2], valueTarget = value / 2 + valueOffset, k = i2 + 1, hi = j - 1;\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n if (valueTarget - sums[k - 1] < sums[k] - valueTarget && i2 + 1 < k) --k;\n var valueLeft = sums[k] - valueOffset, valueRight = value - valueLeft;\n if (x12 - x02 > y12 - y02) {\n var xk = (x02 * valueRight + x12 * valueLeft) / value;\n partition2(i2, k, valueLeft, x02, y02, xk, y12);\n partition2(k, j, valueRight, xk, y02, x12, y12);\n } else {\n var yk = (y02 * valueRight + y12 * valueLeft) / value;\n partition2(i2, k, valueLeft, x02, y02, x12, yk);\n partition2(k, j, valueRight, x02, yk, x12, y12);\n }\n }\n }\n function sliceDice(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1);\n }\n var resquarify = function custom(ratio) {\n function resquarify2(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && rows.ratio === ratio) {\n var rows, row, nodes, i, j = -1, n, m = rows.length, value = parent.value;\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n resquarify2.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n return resquarify2;\n }(phi);\n exports2.cluster = cluster;\n exports2.hierarchy = hierarchy;\n exports2.pack = index;\n exports2.packEnclose = enclose;\n exports2.packSiblings = siblings;\n exports2.partition = partition;\n exports2.stratify = stratify;\n exports2.tree = tree;\n exports2.treemap = index$1;\n exports2.treemapBinary = binary;\n exports2.treemapDice = treemapDice;\n exports2.treemapResquarify = resquarify;\n exports2.treemapSlice = treemapSlice;\n exports2.treemapSliceDice = sliceDice;\n exports2.treemapSquarify = squarify;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/traces/sunburst/calc.js\n var require_calc17 = __commonJS({\n \"src/traces/sunburst/calc.js\"(exports) {\n \"use strict\";\n var d3Hierarchy = require_d3_hierarchy();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var makeColorScaleFn = require_colorscale().makeColorScaleFuncFromTrace;\n var makePullColorFn = require_calc16().makePullColorFn;\n var generateExtendedColors = require_calc16().generateExtendedColors;\n var colorscaleCalc = require_colorscale().calc;\n var ALMOST_EQUAL = require_numerical().ALMOST_EQUAL;\n var sunburstExtendedColorWays = {};\n var treemapExtendedColorWays = {};\n var icicleExtendedColorWays = {};\n exports.calc = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var ids = trace.ids;\n var hasIds = Lib.isArrayOrTypedArray(ids);\n var labels = trace.labels;\n var parents = trace.parents;\n var values = trace.values;\n var hasValues = Lib.isArrayOrTypedArray(values);\n var cd = [];\n var parent2children = {};\n var refs = {};\n var addToLookup = function(parent, v) {\n if (parent2children[parent]) parent2children[parent].push(v);\n else parent2children[parent] = [v];\n refs[v] = 1;\n };\n var isValidKey = function(k2) {\n return k2 || typeof k2 === \"number\";\n };\n var isValidVal = function(i2) {\n return !hasValues || isNumeric(values[i2]) && values[i2] >= 0;\n };\n var len;\n var isValid;\n var getId;\n if (hasIds) {\n len = Math.min(ids.length, parents.length);\n isValid = function(i2) {\n return isValidKey(ids[i2]) && isValidVal(i2);\n };\n getId = function(i2) {\n return String(ids[i2]);\n };\n } else {\n len = Math.min(labels.length, parents.length);\n isValid = function(i2) {\n return isValidKey(labels[i2]) && isValidVal(i2);\n };\n getId = function(i2) {\n return String(labels[i2]);\n };\n }\n if (hasValues) len = Math.min(len, values.length);\n for (var i = 0; i < len; i++) {\n if (isValid(i)) {\n var id = getId(i);\n var pid = isValidKey(parents[i]) ? String(parents[i]) : \"\";\n var cdi = {\n i,\n id,\n pid,\n label: isValidKey(labels[i]) ? String(labels[i]) : \"\"\n };\n if (hasValues) cdi.v = +values[i];\n cd.push(cdi);\n addToLookup(pid, id);\n }\n }\n if (!parent2children[\"\"]) {\n var impliedRoots = [];\n var k;\n for (k in parent2children) {\n if (!refs[k]) {\n impliedRoots.push(k);\n }\n }\n if (impliedRoots.length === 1) {\n k = impliedRoots[0];\n cd.unshift({\n hasImpliedRoot: true,\n id: k,\n pid: \"\",\n label: k\n });\n } else {\n return Lib.warn([\n \"Multiple implied roots, cannot build\",\n trace.type,\n \"hierarchy of\",\n trace.name + \".\",\n \"These roots include:\",\n impliedRoots.join(\", \")\n ].join(\" \"));\n }\n } else if (parent2children[\"\"].length > 1) {\n var dummyId = Lib.randstr();\n for (var j = 0; j < cd.length; j++) {\n if (cd[j].pid === \"\") {\n cd[j].pid = dummyId;\n }\n }\n cd.unshift({\n hasMultipleRoots: true,\n id: dummyId,\n pid: \"\",\n label: \"\"\n });\n }\n var root;\n try {\n root = d3Hierarchy.stratify().id(function(d) {\n return d.id;\n }).parentId(function(d) {\n return d.pid;\n })(cd);\n } catch (e) {\n return Lib.warn([\n \"Failed to build\",\n trace.type,\n \"hierarchy of\",\n trace.name + \".\",\n \"Error:\",\n e.message\n ].join(\" \"));\n }\n var hierarchy = d3Hierarchy.hierarchy(root);\n var failed = false;\n if (hasValues) {\n switch (trace.branchvalues) {\n case \"remainder\":\n hierarchy.sum(function(d) {\n return d.data.v;\n });\n break;\n case \"total\":\n hierarchy.each(function(d) {\n var cdi2 = d.data.data;\n var v = cdi2.v;\n if (d.children) {\n var partialSum = d.children.reduce(function(a, c) {\n return a + c.data.data.v;\n }, 0);\n if (cdi2.hasImpliedRoot || cdi2.hasMultipleRoots) {\n v = partialSum;\n }\n if (v < partialSum * ALMOST_EQUAL) {\n failed = true;\n return Lib.warn([\n \"Total value for node\",\n d.data.data.id,\n \"of\",\n trace.name,\n \"is smaller than the sum of its children.\",\n \"\\nparent value =\",\n v,\n \"\\nchildren sum =\",\n partialSum\n ].join(\" \"));\n }\n }\n d.value = v;\n });\n break;\n }\n } else {\n countDescendants(hierarchy, trace, {\n branches: trace.count.indexOf(\"branches\") !== -1,\n leaves: trace.count.indexOf(\"leaves\") !== -1\n });\n }\n if (failed) return;\n if (trace.sort) {\n hierarchy.sort(function(a, b) {\n return b.value - a.value;\n });\n }\n var pullColor;\n var scaleColor;\n var colors = trace.marker.colors || [];\n var hasColors = !!colors.length;\n if (trace._hasColorscale) {\n if (!hasColors) {\n colors = hasValues ? trace.values : trace._values;\n }\n colorscaleCalc(gd, trace, {\n vals: colors,\n containerStr: \"marker\",\n cLetter: \"c\"\n });\n scaleColor = makeColorScaleFn(trace.marker);\n } else {\n pullColor = makePullColorFn(fullLayout[\"_\" + trace.type + \"colormap\"]);\n }\n hierarchy.each(function(d) {\n var cdi2 = d.data.data;\n cdi2.color = trace._hasColorscale ? scaleColor(colors[cdi2.i]) : pullColor(colors[cdi2.i], cdi2.id);\n });\n cd[0].hierarchy = hierarchy;\n return cd;\n };\n exports._runCrossTraceCalc = function(desiredType, gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var colorWay = fullLayout[desiredType + \"colorway\"];\n var colorMap = fullLayout[\"_\" + desiredType + \"colormap\"];\n if (fullLayout[\"extend\" + desiredType + \"colors\"]) {\n colorWay = generateExtendedColors(\n colorWay,\n desiredType === \"icicle\" ? icicleExtendedColorWays : desiredType === \"treemap\" ? treemapExtendedColorWays : sunburstExtendedColorWays\n );\n }\n var dfltColorCount = 0;\n var rootColor;\n function pickColor(d) {\n var cdi = d.data.data;\n var id = cdi.id;\n if (cdi.color === false) {\n if (colorMap[id]) {\n cdi.color = colorMap[id];\n } else if (d.parent) {\n if (d.parent.parent) {\n cdi.color = d.parent.data.data.color;\n } else {\n colorMap[id] = cdi.color = colorWay[dfltColorCount % colorWay.length];\n dfltColorCount++;\n }\n } else {\n cdi.color = rootColor;\n }\n }\n }\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0];\n if (cd0.trace.type === desiredType && cd0.hierarchy) {\n rootColor = cd0.trace.root.color;\n cd0.hierarchy.each(pickColor);\n }\n }\n };\n exports.crossTraceCalc = function(gd) {\n return exports._runCrossTraceCalc(\"sunburst\", gd);\n };\n function countDescendants(node, trace, opts) {\n var nChild = 0;\n var children = node.children;\n if (children) {\n var len = children.length;\n for (var i = 0; i < len; i++) {\n nChild += countDescendants(children[i], trace, opts);\n }\n if (opts.branches) nChild++;\n } else {\n if (opts.leaves) nChild++;\n }\n node.value = node.data.data.value = nChild;\n if (!trace._values) trace._values = [];\n trace._values[node.data.data.i] = nChild;\n return nChild;\n }\n }\n });\n\n // node_modules/d3-color/src/define.js\n function define_default(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n }\n function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n }\n var init_define = __esm({\n \"node_modules/d3-color/src/define.js\"() {\n }\n });\n\n // node_modules/d3-color/src/color.js\n function Color() {\n }\n function color_formatHex() {\n return this.rgb().formatHex();\n }\n function color_formatHex8() {\n return this.rgb().formatHex8();\n }\n function color_formatHsl() {\n return hslConvert(this).formatHsl();\n }\n function color_formatRgb() {\n return this.rgb().formatRgb();\n }\n function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n }\n function rgbn(n) {\n return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);\n }\n function rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n }\n function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n }\n function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n }\n function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n }\n function rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n }\n function rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n }\n function rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n }\n function clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n }\n function clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n }\n function hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n }\n function hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n }\n function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n }\n function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n }\n function Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n }\n function clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n }\n function clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n }\n function hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n }\n var darker, brighter, reI, reN, reP, reHex, reRgbInteger, reRgbPercent, reRgbaInteger, reRgbaPercent, reHslPercent, reHslaPercent, named;\n var init_color = __esm({\n \"node_modules/d3-color/src/color.js\"() {\n init_define();\n darker = 0.7;\n brighter = 1 / darker;\n reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\";\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\";\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\";\n reHex = /^#([0-9a-f]{3,8})$/;\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`);\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`);\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`);\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`);\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`);\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n named = {\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n };\n define_default(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n });\n define_default(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n }));\n define_default(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n }));\n }\n });\n\n // node_modules/d3-color/src/math.js\n var radians, degrees;\n var init_math = __esm({\n \"node_modules/d3-color/src/math.js\"() {\n radians = Math.PI / 180;\n degrees = 180 / Math.PI;\n }\n });\n\n // node_modules/d3-color/src/lab.js\n function labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r), g = rgb2lrgb(o.g), b = rgb2lrgb(o.b), y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y;\n else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n }\n function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n }\n function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n }\n function xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n }\n function lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n }\n function lrgb2rgb(x) {\n return 255 * (x <= 31308e-7 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n }\n function rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n }\n function hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n }\n function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n }\n function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n }\n function hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n var K, Xn, Yn, Zn, t0, t1, t2, t3;\n var init_lab = __esm({\n \"node_modules/d3-color/src/lab.js\"() {\n init_define();\n init_color();\n init_math();\n K = 18;\n Xn = 0.96422;\n Yn = 1;\n Zn = 0.82521;\n t0 = 4 / 29;\n t1 = 6 / 29;\n t2 = 3 * t1 * t1;\n t3 = t1 * t1 * t1;\n define_default(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116, x = isNaN(this.a) ? y : y + this.a / 500, z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb(3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.033454 * z),\n lrgb2rgb(0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n }));\n define_default(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n }));\n }\n });\n\n // node_modules/d3-color/src/cubehelix.js\n function cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255, g = o.g / 255, b = o.b / 255, l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), bl = b - l, k = (E * (g - l) - C * bl) / D, s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n }\n function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n }\n function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n }\n var A, B, C, D, E, ED, EB, BC_DA;\n var init_cubehelix = __esm({\n \"node_modules/d3-color/src/cubehelix.js\"() {\n init_define();\n init_color();\n init_math();\n A = -0.14861;\n B = 1.78277;\n C = -0.29227;\n D = -0.90649;\n E = 1.97294;\n ED = E * D;\n EB = E * B;\n BC_DA = B * C - D * A;\n define_default(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians, l = +this.l, a = isNaN(this.s) ? 0 : this.s * l * (1 - l), cosh2 = Math.cos(h), sinh2 = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh2 + B * sinh2)),\n 255 * (l + a * (C * cosh2 + D * sinh2)),\n 255 * (l + a * (E * cosh2)),\n this.opacity\n );\n }\n }));\n }\n });\n\n // node_modules/d3-color/src/index.js\n var init_src = __esm({\n \"node_modules/d3-color/src/index.js\"() {\n init_color();\n init_lab();\n init_cubehelix();\n }\n });\n\n // node_modules/d3-interpolate/src/basis.js\n function basis(t12, v0, v1, v2, v3) {\n var t22 = t12 * t12, t32 = t22 * t12;\n return ((1 - 3 * t12 + 3 * t22 - t32) * v0 + (4 - 6 * t22 + 3 * t32) * v1 + (1 + 3 * t12 + 3 * t22 - 3 * t32) * v2 + t32 * v3) / 6;\n }\n function basis_default(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n }\n var init_basis = __esm({\n \"node_modules/d3-interpolate/src/basis.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/basisClosed.js\n function basisClosed_default(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n }\n var init_basisClosed = __esm({\n \"node_modules/d3-interpolate/src/basisClosed.js\"() {\n init_basis();\n }\n });\n\n // node_modules/d3-interpolate/src/constant.js\n var constant_default;\n var init_constant = __esm({\n \"node_modules/d3-interpolate/src/constant.js\"() {\n constant_default = (x) => () => x;\n }\n });\n\n // node_modules/d3-interpolate/src/color.js\n function linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n }\n function exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n }\n function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant_default(isNaN(a) ? b : a);\n }\n function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant_default(isNaN(a) ? b : a);\n };\n }\n function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant_default(isNaN(a) ? b : a);\n }\n var init_color2 = __esm({\n \"node_modules/d3-interpolate/src/color.js\"() {\n init_constant();\n }\n });\n\n // node_modules/d3-interpolate/src/rgb.js\n function rgbSpline(spline) {\n return function(colors) {\n var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color2;\n for (i = 0; i < n; ++i) {\n color2 = rgb(colors[i]);\n r[i] = color2.r || 0;\n g[i] = color2.g || 0;\n b[i] = color2.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color2.opacity = 1;\n return function(t) {\n color2.r = r(t);\n color2.g = g(t);\n color2.b = b(t);\n return color2 + \"\";\n };\n };\n }\n var rgb_default, rgbBasis, rgbBasisClosed;\n var init_rgb = __esm({\n \"node_modules/d3-interpolate/src/rgb.js\"() {\n init_src();\n init_basis();\n init_basisClosed();\n init_color2();\n rgb_default = function rgbGamma(y) {\n var color2 = gamma(y);\n function rgb2(start, end) {\n var r = color2((start = rgb(start)).r, (end = rgb(end)).r), g = color2(start.g, end.g), b = color2(start.b, end.b), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n rgb2.gamma = rgbGamma;\n return rgb2;\n }(1);\n rgbBasis = rgbSpline(basis_default);\n rgbBasisClosed = rgbSpline(basisClosed_default);\n }\n });\n\n // node_modules/d3-interpolate/src/numberArray.js\n function numberArray_default(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n }\n function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n }\n var init_numberArray = __esm({\n \"node_modules/d3-interpolate/src/numberArray.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/array.js\n function array_default(a, b) {\n return (isNumberArray(b) ? numberArray_default : genericArray)(a, b);\n }\n function genericArray(a, b) {\n var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i;\n for (i = 0; i < na; ++i) x[i] = value_default(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var init_array = __esm({\n \"node_modules/d3-interpolate/src/array.js\"() {\n init_value();\n init_numberArray();\n }\n });\n\n // node_modules/d3-interpolate/src/date.js\n function date_default(a, b) {\n var d = /* @__PURE__ */ new Date();\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n }\n var init_date = __esm({\n \"node_modules/d3-interpolate/src/date.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/number.js\n function number_default(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n }\n var init_number = __esm({\n \"node_modules/d3-interpolate/src/number.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/object.js\n function object_default(a, b) {\n var i = {}, c = {}, k;\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n for (k in b) {\n if (k in a) {\n i[k] = value_default(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n var init_object = __esm({\n \"node_modules/d3-interpolate/src/object.js\"() {\n init_value();\n }\n });\n\n // node_modules/d3-interpolate/src/string.js\n function zero(b) {\n return function() {\n return b;\n };\n }\n function one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n }\n function string_default(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs;\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm;\n else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({ i, x: number_default(am, bm) });\n }\n bi = reB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs;\n else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {\n for (var i2 = 0, o; i2 < b; ++i2) s[(o = q[i2]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var reA, reB;\n var init_string = __esm({\n \"node_modules/d3-interpolate/src/string.js\"() {\n init_number();\n reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\n reB = new RegExp(reA.source, \"g\");\n }\n });\n\n // node_modules/d3-interpolate/src/value.js\n function value_default(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant_default(b) : (t === \"number\" ? number_default : t === \"string\" ? (c = color(b)) ? (b = c, rgb_default) : string_default : b instanceof color ? rgb_default : b instanceof Date ? date_default : isNumberArray(b) ? numberArray_default : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object_default : number_default)(a, b);\n }\n var init_value = __esm({\n \"node_modules/d3-interpolate/src/value.js\"() {\n init_src();\n init_rgb();\n init_array();\n init_date();\n init_number();\n init_object();\n init_string();\n init_constant();\n init_numberArray();\n }\n });\n\n // node_modules/d3-interpolate/src/discrete.js\n function discrete_default(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n }\n var init_discrete = __esm({\n \"node_modules/d3-interpolate/src/discrete.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/hue.js\n function hue_default(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n }\n var init_hue = __esm({\n \"node_modules/d3-interpolate/src/hue.js\"() {\n init_color2();\n }\n });\n\n // node_modules/d3-interpolate/src/round.js\n function round_default(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n }\n var init_round = __esm({\n \"node_modules/d3-interpolate/src/round.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/transform/decompose.js\n function decompose_default(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees2,\n skewX: Math.atan(skewX) * degrees2,\n scaleX,\n scaleY\n };\n }\n var degrees2, identity;\n var init_decompose = __esm({\n \"node_modules/d3-interpolate/src/transform/decompose.js\"() {\n degrees2 = 180 / Math.PI;\n identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n };\n }\n });\n\n // node_modules/d3-interpolate/src/transform/parse.js\n function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose_default(m.a, m.b, m.c, m.d, m.e, m.f);\n }\n function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose_default(value.a, value.b, value.c, value.d, value.e, value.f);\n }\n var svgNode;\n var init_parse = __esm({\n \"node_modules/d3-interpolate/src/transform/parse.js\"() {\n init_decompose();\n }\n });\n\n // node_modules/d3-interpolate/src/transform/index.js\n function interpolateTransform(parse2, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({ i: i - 4, x: number_default(xa, xb) }, { i: i - 2, x: number_default(ya, yb) });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;\n else if (b - a > 180) a += 360;\n q.push({ i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number_default(a, b) });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({ i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number_default(a, b) });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({ i: i - 4, x: number_default(xa, xb) }, { i: i - 2, x: number_default(ya, yb) });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n return function(a, b) {\n var s = [], q = [];\n a = parse2(a), b = parse2(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n }\n var interpolateTransformCss, interpolateTransformSvg;\n var init_transform = __esm({\n \"node_modules/d3-interpolate/src/transform/index.js\"() {\n init_number();\n init_parse();\n interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\n interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n }\n });\n\n // node_modules/d3-interpolate/src/zoom.js\n function cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n var epsilon2, zoom_default;\n var init_zoom = __esm({\n \"node_modules/d3-interpolate/src/zoom.js\"() {\n epsilon2 = 1e-12;\n zoom_default = function zoomRho(rho, rho2, rho4) {\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n };\n }\n i.duration = S * 1e3 * rho / Math.SQRT2;\n return i;\n }\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n return zoom;\n }(Math.SQRT2, 2, 4);\n }\n });\n\n // node_modules/d3-interpolate/src/hsl.js\n function hsl2(hue2) {\n return function(start, end) {\n var h = hue2((start = hsl(start)).h, (end = hsl(end)).h), s = nogamma(start.s, end.s), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n };\n }\n var hsl_default, hslLong;\n var init_hsl = __esm({\n \"node_modules/d3-interpolate/src/hsl.js\"() {\n init_src();\n init_color2();\n hsl_default = hsl2(hue);\n hslLong = hsl2(nogamma);\n }\n });\n\n // node_modules/d3-interpolate/src/lab.js\n function lab2(start, end) {\n var l = nogamma((start = lab(start)).l, (end = lab(end)).l), a = nogamma(start.a, end.a), b = nogamma(start.b, end.b), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n var init_lab2 = __esm({\n \"node_modules/d3-interpolate/src/lab.js\"() {\n init_src();\n init_color2();\n }\n });\n\n // node_modules/d3-interpolate/src/hcl.js\n function hcl2(hue2) {\n return function(start, end) {\n var h = hue2((start = hcl(start)).h, (end = hcl(end)).h), c = nogamma(start.c, end.c), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n };\n }\n var hcl_default, hclLong;\n var init_hcl = __esm({\n \"node_modules/d3-interpolate/src/hcl.js\"() {\n init_src();\n init_color2();\n hcl_default = hcl2(hue);\n hclLong = hcl2(nogamma);\n }\n });\n\n // node_modules/d3-interpolate/src/cubehelix.js\n function cubehelix2(hue2) {\n return function cubehelixGamma(y) {\n y = +y;\n function cubehelix3(start, end) {\n var h = hue2((start = cubehelix(start)).h, (end = cubehelix(end)).h), s = nogamma(start.s, end.s), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n cubehelix3.gamma = cubehelixGamma;\n return cubehelix3;\n }(1);\n }\n var cubehelix_default, cubehelixLong;\n var init_cubehelix2 = __esm({\n \"node_modules/d3-interpolate/src/cubehelix.js\"() {\n init_src();\n init_color2();\n cubehelix_default = cubehelix2(hue);\n cubehelixLong = cubehelix2(nogamma);\n }\n });\n\n // node_modules/d3-interpolate/src/piecewise.js\n function piecewise(interpolate, values) {\n if (values === void 0) values = interpolate, interpolate = value_default;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i2 = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i2](t - i2);\n };\n }\n var init_piecewise = __esm({\n \"node_modules/d3-interpolate/src/piecewise.js\"() {\n init_value();\n }\n });\n\n // node_modules/d3-interpolate/src/quantize.js\n function quantize_default(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n }\n var init_quantize = __esm({\n \"node_modules/d3-interpolate/src/quantize.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/index.js\n var src_exports = {};\n __export(src_exports, {\n interpolate: () => value_default,\n interpolateArray: () => array_default,\n interpolateBasis: () => basis_default,\n interpolateBasisClosed: () => basisClosed_default,\n interpolateCubehelix: () => cubehelix_default,\n interpolateCubehelixLong: () => cubehelixLong,\n interpolateDate: () => date_default,\n interpolateDiscrete: () => discrete_default,\n interpolateHcl: () => hcl_default,\n interpolateHclLong: () => hclLong,\n interpolateHsl: () => hsl_default,\n interpolateHslLong: () => hslLong,\n interpolateHue: () => hue_default,\n interpolateLab: () => lab2,\n interpolateNumber: () => number_default,\n interpolateNumberArray: () => numberArray_default,\n interpolateObject: () => object_default,\n interpolateRgb: () => rgb_default,\n interpolateRgbBasis: () => rgbBasis,\n interpolateRgbBasisClosed: () => rgbBasisClosed,\n interpolateRound: () => round_default,\n interpolateString: () => string_default,\n interpolateTransformCss: () => interpolateTransformCss,\n interpolateTransformSvg: () => interpolateTransformSvg,\n interpolateZoom: () => zoom_default,\n piecewise: () => piecewise,\n quantize: () => quantize_default\n });\n var init_src2 = __esm({\n \"node_modules/d3-interpolate/src/index.js\"() {\n init_value();\n init_array();\n init_basis();\n init_basisClosed();\n init_date();\n init_discrete();\n init_hue();\n init_number();\n init_numberArray();\n init_object();\n init_round();\n init_string();\n init_transform();\n init_zoom();\n init_rgb();\n init_hsl();\n init_lab2();\n init_hcl();\n init_cubehelix2();\n init_piecewise();\n init_quantize();\n }\n });\n\n // src/traces/sunburst/fill_one.js\n var require_fill_one2 = __commonJS({\n \"src/traces/sunburst/fill_one.js\"(exports, module) {\n \"use strict\";\n var Drawing = require_drawing();\n var Color2 = require_color();\n module.exports = function fillOne(s, pt, trace, gd, fadedColor) {\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var color2 = fadedColor || cdi.color;\n if (ptNumber >= 0) {\n pt.i = cdi.i;\n var marker = trace.marker;\n if (marker.pattern) {\n if (!marker.colors || !marker.pattern.shape) {\n marker.color = color2;\n pt.color = color2;\n }\n } else {\n marker.color = color2;\n pt.color = color2;\n }\n Drawing.pointStyle(s, trace, gd, pt);\n } else {\n Color2.fill(s, color2);\n }\n };\n }\n });\n\n // src/traces/sunburst/style.js\n var require_style13 = __commonJS({\n \"src/traces/sunburst/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Lib = require_lib();\n var resizeText = require_uniform_text().resizeText;\n var fillOne = require_fill_one2();\n function style(gd) {\n var s = gd._fullLayout._sunburstlayer.selectAll(\".trace\");\n resizeText(gd, s, \"sunburst\");\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n gTrace.style(\"opacity\", trace.opacity);\n gTrace.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd);\n });\n });\n }\n function styleOne(s, pt, trace, gd) {\n var cdi = pt.data.data;\n var isLeaf = !pt.children;\n var ptNumber = cdi.i;\n var lineColor = Lib.castOption(trace, ptNumber, \"marker.line.color\") || Color2.defaultLine;\n var lineWidth = Lib.castOption(trace, ptNumber, \"marker.line.width\") || 0;\n s.call(fillOne, pt, trace, gd).style(\"stroke-width\", lineWidth).call(Color2.stroke, lineColor).style(\"opacity\", isLeaf ? trace.leaf.opacity : null);\n }\n module.exports = {\n style,\n styleOne\n };\n }\n });\n\n // src/traces/sunburst/helpers.js\n var require_helpers15 = __commonJS({\n \"src/traces/sunburst/helpers.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var setCursor = require_setcursor();\n var pieHelpers = require_helpers4();\n exports.findEntryWithLevel = function(hierarchy, level) {\n var out;\n if (level) {\n hierarchy.eachAfter(function(pt) {\n if (exports.getPtId(pt) === level) {\n return out = pt.copy();\n }\n });\n }\n return out || hierarchy;\n };\n exports.findEntryWithChild = function(hierarchy, childId) {\n var out;\n hierarchy.eachAfter(function(pt) {\n var children = pt.children || [];\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (exports.getPtId(child) === childId) {\n return out = pt.copy();\n }\n }\n });\n return out || hierarchy;\n };\n exports.isEntry = function(pt) {\n return !pt.parent;\n };\n exports.isLeaf = function(pt) {\n return !pt.children;\n };\n exports.getPtId = function(pt) {\n return pt.data.data.id;\n };\n exports.getPtLabel = function(pt) {\n return pt.data.data.label;\n };\n exports.getValue = function(d) {\n return d.value;\n };\n exports.isHierarchyRoot = function(pt) {\n return getParentId(pt) === \"\";\n };\n exports.setSliceCursor = function(sliceTop, gd, opts) {\n var hide = opts.isTransitioning;\n if (!hide) {\n var pt = sliceTop.datum();\n hide = opts.hideOnRoot && exports.isHierarchyRoot(pt) || opts.hideOnLeaves && exports.isLeaf(pt);\n }\n setCursor(sliceTop, hide ? null : \"pointer\");\n };\n function determineOutsideTextFont(trace, pt, layoutFont) {\n return {\n color: exports.getOutsideTextFontKey(\"color\", trace, pt, layoutFont),\n family: exports.getOutsideTextFontKey(\"family\", trace, pt, layoutFont),\n size: exports.getOutsideTextFontKey(\"size\", trace, pt, layoutFont),\n weight: exports.getOutsideTextFontKey(\"weight\", trace, pt, layoutFont),\n style: exports.getOutsideTextFontKey(\"style\", trace, pt, layoutFont),\n variant: exports.getOutsideTextFontKey(\"variant\", trace, pt, layoutFont),\n textcase: exports.getOutsideTextFontKey(\"textcase\", trace, pt, layoutFont),\n lineposition: exports.getOutsideTextFontKey(\"lineposition\", trace, pt, layoutFont),\n shadow: exports.getOutsideTextFontKey(\"shadow\", trace, pt, layoutFont)\n };\n }\n function determineInsideTextFont(trace, pt, layoutFont, opts) {\n var onPathbar = (opts || {}).onPathbar;\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var customColor = Lib.castOption(\n trace,\n ptNumber,\n (onPathbar ? \"pathbar.textfont\" : \"insidetextfont\") + \".color\"\n );\n if (!customColor && trace._input.textfont) {\n customColor = Lib.castOption(trace._input, ptNumber, \"textfont.color\");\n }\n return {\n color: customColor || Color2.contrast(cdi.color),\n family: exports.getInsideTextFontKey(\"family\", trace, pt, layoutFont, opts),\n size: exports.getInsideTextFontKey(\"size\", trace, pt, layoutFont, opts),\n weight: exports.getInsideTextFontKey(\"weight\", trace, pt, layoutFont, opts),\n style: exports.getInsideTextFontKey(\"style\", trace, pt, layoutFont, opts),\n variant: exports.getInsideTextFontKey(\"variant\", trace, pt, layoutFont, opts),\n textcase: exports.getInsideTextFontKey(\"textcase\", trace, pt, layoutFont, opts),\n lineposition: exports.getInsideTextFontKey(\"lineposition\", trace, pt, layoutFont, opts),\n shadow: exports.getInsideTextFontKey(\"shadow\", trace, pt, layoutFont, opts)\n };\n }\n exports.getInsideTextFontKey = function(keyStr, trace, pt, layoutFont, opts) {\n var onPathbar = (opts || {}).onPathbar;\n var cont = onPathbar ? \"pathbar.textfont\" : \"insidetextfont\";\n var ptNumber = pt.data.data.i;\n return Lib.castOption(trace, ptNumber, cont + \".\" + keyStr) || Lib.castOption(trace, ptNumber, \"textfont.\" + keyStr) || layoutFont.size;\n };\n exports.getOutsideTextFontKey = function(keyStr, trace, pt, layoutFont) {\n var ptNumber = pt.data.data.i;\n return Lib.castOption(trace, ptNumber, \"outsidetextfont.\" + keyStr) || Lib.castOption(trace, ptNumber, \"textfont.\" + keyStr) || layoutFont.size;\n };\n exports.isOutsideText = function(trace, pt) {\n return !trace._hasColorscale && exports.isHierarchyRoot(pt);\n };\n exports.determineTextFont = function(trace, pt, layoutFont, opts) {\n return exports.isOutsideText(trace, pt) ? determineOutsideTextFont(trace, pt, layoutFont) : determineInsideTextFont(trace, pt, layoutFont, opts);\n };\n exports.hasTransition = function(transitionOpts) {\n return !!(transitionOpts && transitionOpts.duration > 0);\n };\n exports.getMaxDepth = function(trace) {\n return trace.maxdepth >= 0 ? trace.maxdepth : Infinity;\n };\n exports.isHeader = function(pt, trace) {\n return !(exports.isLeaf(pt) || pt.depth === trace._maxDepth - 1);\n };\n function getParentId(pt) {\n return pt.data.data.pid;\n }\n exports.getParent = function(hierarchy, pt) {\n return exports.findEntryWithLevel(hierarchy, getParentId(pt));\n };\n exports.listPath = function(d, keyStr) {\n var parent = d.parent;\n if (!parent) return [];\n var list = keyStr ? [parent.data[keyStr]] : [parent];\n return exports.listPath(parent, keyStr).concat(list);\n };\n exports.getPath = function(d) {\n return exports.listPath(d, \"label\").join(\"/\") + \"/\";\n };\n exports.formatValue = pieHelpers.formatPieValue;\n exports.formatPercent = function(v, separators) {\n var tx = Lib.formatPercent(v, 0);\n if (tx === \"0%\") tx = pieHelpers.formatPiePercent(v, separators);\n return tx;\n };\n }\n });\n\n // src/traces/sunburst/fx.js\n var require_fx2 = __commonJS({\n \"src/traces/sunburst/fx.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var Fx = require_fx();\n var Lib = require_lib();\n var Events = require_events2();\n var helpers = require_helpers15();\n var pieHelpers = require_helpers4();\n var formatValue = pieHelpers.formatPieValue;\n module.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n var isSunburst = trace.type === \"sunburst\";\n var isTreemapOrIcicle = trace.type === \"treemap\" || trace.type === \"icicle\";\n if (!(\"_hasHoverLabel\" in trace)) trace._hasHoverLabel = false;\n if (!(\"_hasHoverEvent\" in trace)) trace._hasHoverEvent = false;\n var onMouseOver = function(pt) {\n var fullLayoutNow = gd._fullLayout;\n if (gd._dragging || fullLayoutNow.hovermode === false) return;\n var traceNow = gd._fullData[trace.index];\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var isRoot = helpers.isHierarchyRoot(pt);\n var parent = helpers.getParent(hierarchy, pt);\n var val = helpers.getValue(pt);\n var _cast = function(astr) {\n return Lib.castOption(traceNow, ptNumber, astr);\n };\n var hovertemplate = _cast(\"hovertemplate\");\n var hoverinfo = Fx.castHoverinfo(traceNow, fullLayoutNow, ptNumber);\n var separators = fullLayoutNow.separators;\n var eventData;\n if (hovertemplate || hoverinfo && hoverinfo !== \"none\" && hoverinfo !== \"skip\") {\n var hoverCenterX;\n var hoverCenterY;\n if (isSunburst) {\n hoverCenterX = cd0.cx + pt.pxmid[0] * (1 - pt.rInscribed);\n hoverCenterY = cd0.cy + pt.pxmid[1] * (1 - pt.rInscribed);\n }\n if (isTreemapOrIcicle) {\n hoverCenterX = pt._hoverX;\n hoverCenterY = pt._hoverY;\n }\n var hoverPt = {};\n var parts = [];\n var thisText = [];\n var hasFlag = function(flag) {\n return parts.indexOf(flag) !== -1;\n };\n if (hoverinfo) {\n parts = hoverinfo === \"all\" ? traceNow._module.attributes.hoverinfo.flags : hoverinfo.split(\"+\");\n }\n hoverPt.label = cdi.label;\n if (hasFlag(\"label\") && hoverPt.label) thisText.push(hoverPt.label);\n if (cdi.hasOwnProperty(\"v\")) {\n hoverPt.value = cdi.v;\n hoverPt.valueLabel = formatValue(hoverPt.value, separators);\n if (hasFlag(\"value\")) thisText.push(hoverPt.valueLabel);\n }\n hoverPt.currentPath = pt.currentPath = helpers.getPath(pt.data);\n if (hasFlag(\"current path\") && !isRoot) {\n thisText.push(hoverPt.currentPath);\n }\n var tx;\n var allPercents = [];\n var insertPercent = function() {\n if (allPercents.indexOf(tx) === -1) {\n thisText.push(tx);\n allPercents.push(tx);\n }\n };\n hoverPt.percentParent = pt.percentParent = val / helpers.getValue(parent);\n hoverPt.parent = pt.parentString = helpers.getPtLabel(parent);\n if (hasFlag(\"percent parent\")) {\n tx = helpers.formatPercent(hoverPt.percentParent, separators) + \" of \" + hoverPt.parent;\n insertPercent();\n }\n hoverPt.percentEntry = pt.percentEntry = val / helpers.getValue(entry);\n hoverPt.entry = pt.entry = helpers.getPtLabel(entry);\n if (hasFlag(\"percent entry\") && !isRoot && !pt.onPathbar) {\n tx = helpers.formatPercent(hoverPt.percentEntry, separators) + \" of \" + hoverPt.entry;\n insertPercent();\n }\n hoverPt.percentRoot = pt.percentRoot = val / helpers.getValue(hierarchy);\n hoverPt.root = pt.root = helpers.getPtLabel(hierarchy);\n if (hasFlag(\"percent root\") && !isRoot) {\n tx = helpers.formatPercent(hoverPt.percentRoot, separators) + \" of \" + hoverPt.root;\n insertPercent();\n }\n hoverPt.text = _cast(\"hovertext\") || _cast(\"text\");\n if (hasFlag(\"text\")) {\n tx = hoverPt.text;\n if (Lib.isValidTextValue(tx)) thisText.push(tx);\n }\n eventData = [makeEventData(pt, traceNow, opts.eventDataKeys)];\n var hoverItems = {\n trace: traceNow,\n y: hoverCenterY,\n _x0: pt._x0,\n _x1: pt._x1,\n _y0: pt._y0,\n _y1: pt._y1,\n text: thisText.join(\"
\"),\n name: hovertemplate || hasFlag(\"name\") ? traceNow.name : void 0,\n color: _cast(\"hoverlabel.bgcolor\") || cdi.color,\n borderColor: _cast(\"hoverlabel.bordercolor\"),\n fontFamily: _cast(\"hoverlabel.font.family\"),\n fontSize: _cast(\"hoverlabel.font.size\"),\n fontColor: _cast(\"hoverlabel.font.color\"),\n fontWeight: _cast(\"hoverlabel.font.weight\"),\n fontStyle: _cast(\"hoverlabel.font.style\"),\n fontVariant: _cast(\"hoverlabel.font.variant\"),\n nameLength: _cast(\"hoverlabel.namelength\"),\n textAlign: _cast(\"hoverlabel.align\"),\n hovertemplate,\n hovertemplateLabels: hoverPt,\n eventData\n };\n if (isSunburst) {\n hoverItems.x0 = hoverCenterX - pt.rInscribed * pt.rpx1;\n hoverItems.x1 = hoverCenterX + pt.rInscribed * pt.rpx1;\n hoverItems.idealAlign = pt.pxmid[0] < 0 ? \"left\" : \"right\";\n }\n if (isTreemapOrIcicle) {\n hoverItems.x = hoverCenterX;\n hoverItems.idealAlign = hoverCenterX < 0 ? \"left\" : \"right\";\n }\n var bbox = [];\n Fx.loneHover(hoverItems, {\n container: fullLayoutNow._hoverlayer.node(),\n outerContainer: fullLayoutNow._paper.node(),\n gd,\n inOut_bbox: bbox\n });\n eventData[0].bbox = bbox[0];\n trace._hasHoverLabel = true;\n }\n if (isTreemapOrIcicle) {\n var slice = sliceTop.select(\"path.surface\");\n opts.styleOne(slice, pt, traceNow, gd, {\n hovered: true\n });\n }\n trace._hasHoverEvent = true;\n gd.emit(\"plotly_hover\", {\n points: eventData || [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n };\n var onMouseOut = function(evt) {\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n var pt = d3.select(this).datum();\n if (trace._hasHoverEvent) {\n evt.originalEvent = d3.event;\n gd.emit(\"plotly_unhover\", {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n trace._hasHoverEvent = false;\n }\n if (trace._hasHoverLabel) {\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n trace._hasHoverLabel = false;\n }\n if (isTreemapOrIcicle) {\n var slice = sliceTop.select(\"path.surface\");\n opts.styleOne(slice, pt, traceNow, gd, {\n hovered: false\n });\n }\n };\n var onClick = function(pt) {\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n var noTransition = isSunburst && (helpers.isHierarchyRoot(pt) || helpers.isLeaf(pt));\n var id = helpers.getPtId(pt);\n var nextEntry = helpers.isEntry(pt) ? helpers.findEntryWithChild(hierarchy, id) : helpers.findEntryWithLevel(hierarchy, id);\n var nextLevel = helpers.getPtId(nextEntry);\n var typeClickEvtData = {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n };\n if (!noTransition) typeClickEvtData.nextLevel = nextLevel;\n var clickVal = Events.triggerHandler(gd, \"plotly_\" + trace.type + \"click\", typeClickEvtData);\n if (clickVal !== false && fullLayoutNow.hovermode) {\n gd._hoverdata = [makeEventData(pt, traceNow, opts.eventDataKeys)];\n Fx.click(gd, d3.event);\n }\n if (noTransition) return;\n if (clickVal === false) return;\n if (gd._dragging) return;\n if (gd._transitioning) return;\n Registry.call(\"_storeDirectGUIEdit\", traceNow, fullLayoutNow._tracePreGUI[traceNow.uid], {\n level: traceNow.level\n });\n var frame = {\n data: [{ level: nextLevel }],\n traces: [trace.index]\n };\n var animOpts = {\n frame: {\n redraw: false,\n duration: opts.transitionTime\n },\n transition: {\n duration: opts.transitionTime,\n easing: opts.transitionEasing\n },\n mode: \"immediate\",\n fromcurrent: true\n };\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n Registry.call(\"animate\", gd, frame, animOpts);\n };\n sliceTop.on(\"mouseover\", onMouseOver);\n sliceTop.on(\"mouseout\", onMouseOut);\n sliceTop.on(\"click\", onClick);\n };\n function makeEventData(pt, trace, keys) {\n var cdi = pt.data.data;\n var out = {\n curveNumber: trace.index,\n pointNumber: cdi.i,\n data: trace._input,\n fullData: trace\n // TODO more things like 'children', 'siblings', 'hierarchy?\n };\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (key in pt) out[key] = pt[key];\n }\n if (\"parentString\" in pt && !helpers.isHierarchyRoot(pt)) out.parent = pt.parentString;\n appendArrayPointValue(out, trace, cdi.i);\n return out;\n }\n }\n });\n\n // src/traces/sunburst/plot.js\n var require_plot13 = __commonJS({\n \"src/traces/sunburst/plot.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var d3Hierarchy = require_d3_hierarchy();\n var interpolate = (init_src2(), __toCommonJS(src_exports)).interpolate;\n var Drawing = require_drawing();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var clearMinTextSize = uniformText.clearMinTextSize;\n var piePlot = require_plot12();\n var getRotationAngle = require_helpers4().getRotationAngle;\n var computeTransform = piePlot.computeTransform;\n var transformInsideText = piePlot.transformInsideText;\n var styleOne = require_style13().styleOne;\n var resizeText = require_style4().resizeText;\n var attachFxHandlers = require_fx2();\n var constants = require_constants20();\n var helpers = require_helpers15();\n exports.plot = function(gd, cdmodule, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var layer = fullLayout._sunburstlayer;\n var join, onComplete;\n var isFullReplot = !transitionOpts;\n var hasTransition = !fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts);\n clearMinTextSize(\"sunburst\", fullLayout);\n join = layer.selectAll(\"g.trace.sunburst\").data(cdmodule, function(cd) {\n return cd[0].trace.uid;\n });\n join.enter().append(\"g\").classed(\"trace\", true).classed(\"sunburst\", true).attr(\"stroke-linejoin\", \"round\");\n join.order();\n if (hasTransition) {\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n var transition = d3.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n });\n transition.each(function() {\n layer.selectAll(\"g.trace\").each(function(cd) {\n plotOne(gd, cd, this, transitionOpts);\n });\n });\n } else {\n join.each(function(cd) {\n plotOne(gd, cd, this, transitionOpts);\n });\n if (fullLayout.uniformtext.mode) {\n resizeText(gd, fullLayout._sunburstlayer.selectAll(\".trace\"), \"sunburst\");\n }\n }\n if (isFullReplot) {\n join.exit().remove();\n }\n };\n function plotOne(gd, cd, element, transitionOpts) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var hasTransition = !fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts);\n var gTrace = d3.select(element);\n var slices = gTrace.selectAll(\"g.slice\");\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n var entry = helpers.findEntryWithLevel(hierarchy, trace.level);\n var maxDepth = helpers.getMaxDepth(trace);\n var gs = fullLayout._size;\n var domain = trace.domain;\n var vpw = gs.w * (domain.x[1] - domain.x[0]);\n var vph = gs.h * (domain.y[1] - domain.y[0]);\n var rMax = 0.5 * Math.min(vpw, vph);\n var cx = cd0.cx = gs.l + gs.w * (domain.x[1] + domain.x[0]) / 2;\n var cy = cd0.cy = gs.t + gs.h * (1 - domain.y[0]) - vph / 2;\n if (!entry) {\n return slices.remove();\n }\n var prevEntry = null;\n var prevLookup = {};\n if (hasTransition) {\n slices.each(function(pt) {\n prevLookup[helpers.getPtId(pt)] = {\n rpx0: pt.rpx0,\n rpx1: pt.rpx1,\n x0: pt.x0,\n x1: pt.x1,\n transform: pt.transform\n };\n if (!prevEntry && helpers.isEntry(pt)) {\n prevEntry = pt;\n }\n });\n }\n var sliceData = partition(entry).descendants();\n var maxHeight = entry.height + 1;\n var yOffset = 0;\n var cutoff = maxDepth;\n if (cd0.hasMultipleRoots && helpers.isHierarchyRoot(entry)) {\n sliceData = sliceData.slice(1);\n maxHeight -= 1;\n yOffset = 1;\n cutoff += 1;\n }\n sliceData = sliceData.filter(function(pt) {\n return pt.y1 <= cutoff;\n });\n var baseX = getRotationAngle(trace.rotation);\n if (baseX) {\n sliceData.forEach(function(pt) {\n pt.x0 += baseX;\n pt.x1 += baseX;\n });\n }\n var maxY = Math.min(maxHeight, maxDepth);\n var y2rpx = function(y) {\n return (y - yOffset) / maxY * rMax;\n };\n var rx2px = function(r, x) {\n return [r * Math.cos(x), -r * Math.sin(x)];\n };\n var pathSlice = function(d) {\n return Lib.pathAnnulus(d.rpx0, d.rpx1, d.x0, d.x1, cx, cy);\n };\n var getTargetX = function(d) {\n return cx + getTextXY(d)[0] * (d.transform.rCenter || 0) + (d.transform.x || 0);\n };\n var getTargetY = function(d) {\n return cy + getTextXY(d)[1] * (d.transform.rCenter || 0) + (d.transform.y || 0);\n };\n slices = slices.data(sliceData, helpers.getPtId);\n slices.enter().append(\"g\").classed(\"slice\", true);\n if (hasTransition) {\n slices.exit().transition().each(function() {\n var sliceTop = d3.select(this);\n var slicePath = sliceTop.select(\"path.surface\");\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeExitSliceInterpolator(pt2);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n var sliceTextGroup = sliceTop.select(\"g.slicetext\");\n sliceTextGroup.attr(\"opacity\", 0);\n }).remove();\n } else {\n slices.exit().remove();\n }\n slices.order();\n var nextX1ofPrevEntry = null;\n if (hasTransition && prevEntry) {\n var prevEntryId = helpers.getPtId(prevEntry);\n slices.each(function(pt) {\n if (nextX1ofPrevEntry === null && helpers.getPtId(pt) === prevEntryId) {\n nextX1ofPrevEntry = pt.x1;\n }\n });\n }\n var updateSlices = slices;\n if (hasTransition) {\n updateSlices = updateSlices.transition().each(\"end\", function() {\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: true,\n hideOnLeaves: true,\n isTransitioning: false\n });\n });\n }\n updateSlices.each(function(pt) {\n var sliceTop = d3.select(this);\n var slicePath = Lib.ensureSingle(sliceTop, \"path\", \"surface\", function(s) {\n s.style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n });\n pt.rpx0 = y2rpx(pt.y0);\n pt.rpx1 = y2rpx(pt.y1);\n pt.xmid = (pt.x0 + pt.x1) / 2;\n pt.pxmid = rx2px(pt.rpx1, pt.xmid);\n pt.midangle = -(pt.xmid - Math.PI / 2);\n pt.startangle = -(pt.x0 - Math.PI / 2);\n pt.stopangle = -(pt.x1 - Math.PI / 2);\n pt.halfangle = 0.5 * Math.min(Lib.angleDelta(pt.x0, pt.x1) || Math.PI, Math.PI);\n pt.ring = 1 - pt.rpx0 / pt.rpx1;\n pt.rInscribed = getInscribedRadiusFraction(pt, trace);\n if (hasTransition) {\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n } else {\n slicePath.attr(\"d\", pathSlice);\n }\n sliceTop.call(attachFxHandlers, entry, gd, cd, {\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n }).call(helpers.setSliceCursor, gd, {\n hideOnRoot: true,\n hideOnLeaves: true,\n isTransitioning: gd._transitioning\n });\n slicePath.call(styleOne, pt, trace, gd);\n var sliceTextGroup = Lib.ensureSingle(sliceTop, \"g\", \"slicetext\");\n var sliceText = Lib.ensureSingle(sliceTextGroup, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font));\n sliceText.text(exports.formatSliceLabel(pt, entry, trace, cd, fullLayout)).classed(\"slicetext\", true).attr(\"text-anchor\", \"middle\").call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n var textBB = Drawing.bBox(sliceText.node());\n pt.transform = transformInsideText(textBB, pt, cd0);\n pt.transform.targetX = getTargetX(pt);\n pt.transform.targetY = getTargetY(pt);\n var strTransform = function(d, textBB2) {\n var transform = d.transform;\n computeTransform(transform, textBB2);\n transform.fontSize = font.size;\n recordMinTextSize(trace.type, transform, fullLayout);\n return Lib.getTextTransform(transform);\n };\n if (hasTransition) {\n sliceText.transition().attrTween(\"transform\", function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2);\n return function(t) {\n return strTransform(interp(t), textBB);\n };\n });\n } else {\n sliceText.attr(\"transform\", strTransform(pt, textBB));\n }\n });\n function makeExitSliceInterpolator(pt) {\n var id = helpers.getPtId(pt);\n var prev = prevLookup[id];\n var entryPrev = prevLookup[helpers.getPtId(entry)];\n var next;\n if (entryPrev) {\n var a = (pt.x1 > entryPrev.x1 ? 2 * Math.PI : 0) + baseX;\n next = pt.rpx1 < entryPrev.rpx1 ? { x0: pt.x0, x1: pt.x1, rpx0: 0, rpx1: 0 } : { x0: a, x1: a, rpx0: pt.rpx0, rpx1: pt.rpx1 };\n } else {\n var parent;\n var parentId = helpers.getPtId(pt.parent);\n slices.each(function(pt2) {\n if (helpers.getPtId(pt2) === parentId) {\n return parent = pt2;\n }\n });\n var parentChildren = parent.children;\n var ci;\n parentChildren.forEach(function(pt2, i) {\n if (helpers.getPtId(pt2) === id) {\n return ci = i;\n }\n });\n var n = parentChildren.length;\n var interp = interpolate(parent.x0, parent.x1);\n next = {\n rpx0: rMax,\n rpx1: rMax,\n x0: interp(ci / n),\n x1: interp((ci + 1) / n)\n };\n }\n return interpolate(prev, next);\n }\n function makeUpdateSliceInterpolator(pt) {\n var prev0 = prevLookup[helpers.getPtId(pt)];\n var prev;\n var next = { x0: pt.x0, x1: pt.x1, rpx0: pt.rpx0, rpx1: pt.rpx1 };\n if (prev0) {\n prev = prev0;\n } else {\n if (prevEntry) {\n if (pt.parent) {\n if (nextX1ofPrevEntry) {\n var a = (pt.x1 > nextX1ofPrevEntry ? 2 * Math.PI : 0) + baseX;\n prev = { x0: a, x1: a };\n } else {\n prev = { rpx0: rMax, rpx1: rMax };\n Lib.extendFlat(prev, interpX0X1FromParent(pt));\n }\n } else {\n prev = { rpx0: 0, rpx1: 0 };\n }\n } else {\n prev = { x0: baseX, x1: baseX };\n }\n }\n return interpolate(prev, next);\n }\n function makeUpdateTextInterpolator(pt) {\n var prev0 = prevLookup[helpers.getPtId(pt)];\n var prev;\n var transform = pt.transform;\n if (prev0) {\n prev = prev0;\n } else {\n prev = {\n rpx1: pt.rpx1,\n transform: {\n textPosAngle: transform.textPosAngle,\n scale: 0,\n rotate: transform.rotate,\n rCenter: transform.rCenter,\n x: transform.x,\n y: transform.y\n }\n };\n if (prevEntry) {\n if (pt.parent) {\n if (nextX1ofPrevEntry) {\n var a = pt.x1 > nextX1ofPrevEntry ? 2 * Math.PI : 0;\n prev.x0 = prev.x1 = a;\n } else {\n Lib.extendFlat(prev, interpX0X1FromParent(pt));\n }\n } else {\n prev.x0 = prev.x1 = baseX;\n }\n } else {\n prev.x0 = prev.x1 = baseX;\n }\n }\n var textPosAngleFn = interpolate(prev.transform.textPosAngle, pt.transform.textPosAngle);\n var rpx1Fn = interpolate(prev.rpx1, pt.rpx1);\n var x0Fn = interpolate(prev.x0, pt.x0);\n var x1Fn = interpolate(prev.x1, pt.x1);\n var scaleFn = interpolate(prev.transform.scale, transform.scale);\n var rotateFn = interpolate(prev.transform.rotate, transform.rotate);\n var pow = transform.rCenter === 0 ? 3 : prev.transform.rCenter === 0 ? 1 / 3 : 1;\n var _rCenterFn = interpolate(prev.transform.rCenter, transform.rCenter);\n var rCenterFn = function(t) {\n return _rCenterFn(Math.pow(t, pow));\n };\n return function(t) {\n var rpx1 = rpx1Fn(t);\n var x0 = x0Fn(t);\n var x1 = x1Fn(t);\n var rCenter = rCenterFn(t);\n var pxmid = rx2px(rpx1, (x0 + x1) / 2);\n var textPosAngle = textPosAngleFn(t);\n var d = {\n pxmid,\n rpx1,\n transform: {\n textPosAngle,\n rCenter,\n x: transform.x,\n y: transform.y\n }\n };\n recordMinTextSize(trace.type, transform, fullLayout);\n return {\n transform: {\n targetX: getTargetX(d),\n targetY: getTargetY(d),\n scale: scaleFn(t),\n rotate: rotateFn(t),\n rCenter\n }\n };\n };\n }\n function interpX0X1FromParent(pt) {\n var parent = pt.parent;\n var parentPrev = prevLookup[helpers.getPtId(parent)];\n var out = {};\n if (parentPrev) {\n var parentChildren = parent.children;\n var ci = parentChildren.indexOf(pt);\n var n = parentChildren.length;\n var interp = interpolate(parentPrev.x0, parentPrev.x1);\n out.x0 = interp(ci / n);\n out.x1 = interp(ci / n);\n } else {\n out.x0 = out.x1 = 0;\n }\n return out;\n }\n }\n function partition(entry) {\n return d3Hierarchy.partition().size([2 * Math.PI, entry.height + 1])(entry);\n }\n exports.formatSliceLabel = function(pt, entry, trace, cd, fullLayout) {\n var texttemplate = trace.texttemplate;\n var textinfo = trace.textinfo;\n if (!texttemplate && (!textinfo || textinfo === \"none\")) {\n return \"\";\n }\n var separators = fullLayout.separators;\n var cd0 = cd[0];\n var cdi = pt.data.data;\n var hierarchy = cd0.hierarchy;\n var isRoot = helpers.isHierarchyRoot(pt);\n var parent = helpers.getParent(hierarchy, pt);\n var val = helpers.getValue(pt);\n if (!texttemplate) {\n var parts = textinfo.split(\"+\");\n var hasFlag = function(flag) {\n return parts.indexOf(flag) !== -1;\n };\n var thisText = [];\n var tx;\n if (hasFlag(\"label\") && cdi.label) {\n thisText.push(cdi.label);\n }\n if (cdi.hasOwnProperty(\"v\") && hasFlag(\"value\")) {\n thisText.push(helpers.formatValue(cdi.v, separators));\n }\n if (!isRoot) {\n if (hasFlag(\"current path\")) {\n thisText.push(helpers.getPath(pt.data));\n }\n var nPercent = 0;\n if (hasFlag(\"percent parent\")) nPercent++;\n if (hasFlag(\"percent entry\")) nPercent++;\n if (hasFlag(\"percent root\")) nPercent++;\n var hasMultiplePercents = nPercent > 1;\n if (nPercent) {\n var percent;\n var addPercent = function(key) {\n tx = helpers.formatPercent(percent, separators);\n if (hasMultiplePercents) tx += \" of \" + key;\n thisText.push(tx);\n };\n if (hasFlag(\"percent parent\") && !isRoot) {\n percent = val / helpers.getValue(parent);\n addPercent(\"parent\");\n }\n if (hasFlag(\"percent entry\")) {\n percent = val / helpers.getValue(entry);\n addPercent(\"entry\");\n }\n if (hasFlag(\"percent root\")) {\n percent = val / helpers.getValue(hierarchy);\n addPercent(\"root\");\n }\n }\n }\n if (hasFlag(\"text\")) {\n tx = Lib.castOption(trace, cdi.i, \"text\");\n if (Lib.isValidTextValue(tx)) thisText.push(tx);\n }\n return thisText.join(\"
\");\n }\n var txt = Lib.castOption(trace, cdi.i, \"texttemplate\");\n if (!txt) return \"\";\n var obj = {};\n if (cdi.label) obj.label = cdi.label;\n if (cdi.hasOwnProperty(\"v\")) {\n obj.value = cdi.v;\n obj.valueLabel = helpers.formatValue(cdi.v, separators);\n }\n obj.currentPath = helpers.getPath(pt.data);\n if (!isRoot) {\n obj.percentParent = val / helpers.getValue(parent);\n obj.percentParentLabel = helpers.formatPercent(\n obj.percentParent,\n separators\n );\n obj.parent = helpers.getPtLabel(parent);\n }\n obj.percentEntry = val / helpers.getValue(entry);\n obj.percentEntryLabel = helpers.formatPercent(\n obj.percentEntry,\n separators\n );\n obj.entry = helpers.getPtLabel(entry);\n obj.percentRoot = val / helpers.getValue(hierarchy);\n obj.percentRootLabel = helpers.formatPercent(\n obj.percentRoot,\n separators\n );\n obj.root = helpers.getPtLabel(hierarchy);\n if (cdi.hasOwnProperty(\"color\")) {\n obj.color = cdi.color;\n }\n var ptTx = Lib.castOption(trace, cdi.i, \"text\");\n if (Lib.isValidTextValue(ptTx) || ptTx === \"\") obj.text = ptTx;\n obj.customdata = Lib.castOption(trace, cdi.i, \"customdata\");\n return Lib.texttemplateString(txt, obj, fullLayout._d3locale, obj, trace._meta || {});\n };\n function getInscribedRadiusFraction(pt) {\n if (pt.rpx0 === 0 && Lib.isFullCircle([pt.x0, pt.x1])) {\n return 1;\n } else {\n return Math.max(0, Math.min(\n 1 / (1 + 1 / Math.sin(pt.halfangle)),\n pt.ring / 2\n ));\n }\n }\n function getTextXY(d) {\n return getCoords(d.rpx1, d.transform.textPosAngle);\n }\n function getCoords(r, angle) {\n return [r * Math.sin(angle), -r * Math.cos(angle)];\n }\n }\n });\n\n // src/traces/sunburst/index.js\n var require_sunburst = __commonJS({\n \"src/traces/sunburst/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"sunburst\",\n basePlotModule: require_base_plot2(),\n categories: [],\n animatable: true,\n attributes: require_attributes36(),\n layoutAttributes: require_layout_attributes13(),\n supplyDefaults: require_defaults32(),\n supplyLayoutDefaults: require_layout_defaults12(),\n calc: require_calc17().calc,\n crossTraceCalc: require_calc17().crossTraceCalc,\n plot: require_plot13().plot,\n style: require_style13().style,\n colorbar: require_marker_colorbar(),\n meta: {}\n };\n }\n });\n\n // lib/sunburst.js\n var require_sunburst2 = __commonJS({\n \"lib/sunburst.js\"(exports, module) {\n \"use strict\";\n module.exports = require_sunburst();\n }\n });\n\n // src/traces/treemap/base_plot.js\n var require_base_plot3 = __commonJS({\n \"src/traces/treemap/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"treemap\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/treemap/constants.js\n var require_constants21 = __commonJS({\n \"src/traces/treemap/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n CLICK_TRANSITION_TIME: 750,\n CLICK_TRANSITION_EASING: \"poly\",\n eventDataKeys: [\n // string\n \"currentPath\",\n \"root\",\n \"entry\",\n // no need to add 'parent' here\n // percentages i.e. ratios\n \"percentRoot\",\n \"percentEntry\",\n \"percentParent\"\n ],\n gapWithPathbar: 1\n // i.e. one pixel\n };\n }\n });\n\n // src/traces/treemap/attributes.js\n var require_attributes37 = __commonJS({\n \"src/traces/treemap/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var domainAttrs = require_domain().attributes;\n var pieAttrs = require_attributes35();\n var sunburstAttrs = require_attributes36();\n var constants = require_constants21();\n var extendFlat = require_extend().extendFlat;\n var pattern = require_attributes4().pattern;\n module.exports = {\n labels: sunburstAttrs.labels,\n parents: sunburstAttrs.parents,\n values: sunburstAttrs.values,\n branchvalues: sunburstAttrs.branchvalues,\n count: sunburstAttrs.count,\n level: sunburstAttrs.level,\n maxdepth: sunburstAttrs.maxdepth,\n tiling: {\n packing: {\n valType: \"enumerated\",\n values: [\n \"squarify\",\n \"binary\",\n \"dice\",\n \"slice\",\n \"slice-dice\",\n \"dice-slice\"\n ],\n dflt: \"squarify\",\n editType: \"plot\"\n },\n squarifyratio: {\n valType: \"number\",\n min: 1,\n dflt: 1,\n editType: \"plot\"\n },\n flip: {\n valType: \"flaglist\",\n flags: [\n \"x\",\n \"y\"\n ],\n dflt: \"\",\n editType: \"plot\"\n },\n pad: {\n valType: \"number\",\n min: 0,\n dflt: 3,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n marker: extendFlat(\n {\n pad: {\n t: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n l: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n r: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n b: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n colors: sunburstAttrs.marker.colors,\n pattern,\n depthfade: {\n valType: \"enumerated\",\n values: [true, false, \"reversed\"],\n editType: \"style\"\n },\n line: sunburstAttrs.marker.line,\n cornerradius: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\", {\n colorAttr: \"colors\",\n anim: false\n // TODO: set to anim: true?\n })\n ),\n pathbar: {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n side: {\n valType: \"enumerated\",\n values: [\n \"top\",\n \"bottom\"\n ],\n dflt: \"top\",\n editType: \"plot\"\n },\n edgeshape: {\n valType: \"enumerated\",\n values: [\n \">\",\n \"<\",\n \"|\",\n \"/\",\n \"\\\\\"\n ],\n dflt: \">\",\n editType: \"plot\"\n },\n thickness: {\n valType: \"number\",\n min: 12,\n editType: \"plot\"\n },\n textfont: extendFlat({}, pieAttrs.textfont, {}),\n editType: \"calc\"\n },\n text: pieAttrs.text,\n textinfo: sunburstAttrs.textinfo,\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\", \"value\"])\n }),\n hovertext: pieAttrs.hovertext,\n hoverinfo: sunburstAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n textfont: pieAttrs.textfont,\n insidetextfont: pieAttrs.insidetextfont,\n outsidetextfont: extendFlat({}, pieAttrs.outsidetextfont, {}),\n textposition: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle left\",\n \"middle center\",\n \"middle right\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\"\n ],\n dflt: \"top left\",\n editType: \"plot\"\n },\n sort: pieAttrs.sort,\n root: sunburstAttrs.root,\n domain: domainAttrs({ name: \"treemap\", trace: true, editType: \"calc\" })\n };\n }\n });\n\n // src/traces/treemap/layout_attributes.js\n var require_layout_attributes14 = __commonJS({\n \"src/traces/treemap/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n treemapcolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendtreemapcolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/treemap/defaults.js\n var require_defaults33 = __commonJS({\n \"src/traces/treemap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes37();\n var Color2 = require_color();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var TEXTPAD = require_constants14().TEXTPAD;\n var handleMarkerDefaults = require_defaults31().handleMarkerDefaults;\n var Colorscale = require_colorscale();\n var hasColorscale = Colorscale.hasColorscale;\n var colorscaleDefaults = Colorscale.handleDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var parents = coerce(\"parents\");\n if (!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n var vals = coerce(\"values\");\n if (vals && vals.length) {\n coerce(\"branchvalues\");\n } else {\n coerce(\"count\");\n }\n coerce(\"level\");\n coerce(\"maxdepth\");\n var packing = coerce(\"tiling.packing\");\n if (packing === \"squarify\") {\n coerce(\"tiling.squarifyratio\");\n }\n coerce(\"tiling.flip\");\n coerce(\"tiling.pad\");\n var text = coerce(\"text\");\n coerce(\"texttemplate\");\n if (!traceOut.texttemplate) coerce(\"textinfo\", Lib.isArrayOrTypedArray(text) ? \"text+label\" : \"label\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var hasPathbar = coerce(\"pathbar.visible\");\n var textposition = \"auto\";\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n hasPathbar,\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce(\"textposition\");\n var bottomText = traceOut.textposition.indexOf(\"bottom\") !== -1;\n handleMarkerDefaults(traceIn, traceOut, layout, coerce);\n var withColorscale = traceOut._hasColorscale = hasColorscale(traceIn, \"marker\", \"colors\") || (traceIn.marker || {}).coloraxis;\n if (withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.\", cLetter: \"c\" });\n } else {\n coerce(\"marker.depthfade\", !(traceOut.marker.colors || []).length);\n }\n var headerSize = traceOut.textfont.size * 2;\n coerce(\"marker.pad.t\", bottomText ? headerSize / 4 : headerSize);\n coerce(\"marker.pad.l\", headerSize / 4);\n coerce(\"marker.pad.r\", headerSize / 4);\n coerce(\"marker.pad.b\", bottomText ? headerSize : headerSize / 4);\n coerce(\"marker.cornerradius\");\n traceOut._hovered = {\n marker: {\n line: {\n width: 2,\n color: Color2.contrast(layout.paper_bgcolor)\n }\n }\n };\n if (hasPathbar) {\n coerce(\"pathbar.thickness\", traceOut.pathbar.textfont.size + 2 * TEXTPAD);\n coerce(\"pathbar.side\");\n coerce(\"pathbar.edgeshape\");\n }\n coerce(\"sort\");\n coerce(\"root.color\");\n handleDomainDefaults(traceOut, layout, coerce);\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/treemap/layout_defaults.js\n var require_layout_defaults13 = __commonJS({\n \"src/traces/treemap/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes14();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"treemapcolorway\", layoutOut.colorway);\n coerce(\"extendtreemapcolors\");\n };\n }\n });\n\n // src/traces/treemap/calc.js\n var require_calc18 = __commonJS({\n \"src/traces/treemap/calc.js\"(exports) {\n \"use strict\";\n var calc = require_calc17();\n exports.calc = function(gd, trace) {\n return calc.calc(gd, trace);\n };\n exports.crossTraceCalc = function(gd) {\n return calc._runCrossTraceCalc(\"treemap\", gd);\n };\n }\n });\n\n // src/traces/treemap/flip_tree.js\n var require_flip_tree = __commonJS({\n \"src/traces/treemap/flip_tree.js\"(exports, module) {\n \"use strict\";\n module.exports = function flipTree(node, size, opts) {\n var tmp;\n if (opts.swapXY) {\n tmp = node.x0;\n node.x0 = node.y0;\n node.y0 = tmp;\n tmp = node.x1;\n node.x1 = node.y1;\n node.y1 = tmp;\n }\n if (opts.flipX) {\n tmp = node.x0;\n node.x0 = size[0] - node.x1;\n node.x1 = size[0] - tmp;\n }\n if (opts.flipY) {\n tmp = node.y0;\n node.y0 = size[1] - node.y1;\n node.y1 = size[1] - tmp;\n }\n var children = node.children;\n if (children) {\n for (var i = 0; i < children.length; i++) {\n flipTree(children[i], size, opts);\n }\n }\n };\n }\n });\n\n // src/traces/treemap/partition.js\n var require_partition = __commonJS({\n \"src/traces/treemap/partition.js\"(exports, module) {\n \"use strict\";\n var d3Hierarchy = require_d3_hierarchy();\n var flipTree = require_flip_tree();\n module.exports = function partition(entry, size, opts) {\n var flipX = opts.flipX;\n var flipY = opts.flipY;\n var swapXY = opts.packing === \"dice-slice\";\n var top = opts.pad[flipY ? \"bottom\" : \"top\"];\n var left = opts.pad[flipX ? \"right\" : \"left\"];\n var right = opts.pad[flipX ? \"left\" : \"right\"];\n var bottom = opts.pad[flipY ? \"top\" : \"bottom\"];\n var tmp;\n if (swapXY) {\n tmp = left;\n left = top;\n top = tmp;\n tmp = right;\n right = bottom;\n bottom = tmp;\n }\n var result = d3Hierarchy.treemap().tile(getTilingMethod(opts.packing, opts.squarifyratio)).paddingInner(opts.pad.inner).paddingLeft(left).paddingRight(right).paddingTop(top).paddingBottom(bottom).size(\n swapXY ? [size[1], size[0]] : size\n )(entry);\n if (swapXY || flipX || flipY) {\n flipTree(result, size, {\n swapXY,\n flipX,\n flipY\n });\n }\n return result;\n };\n function getTilingMethod(key, squarifyratio) {\n switch (key) {\n case \"squarify\":\n return d3Hierarchy.treemapSquarify.ratio(squarifyratio);\n case \"binary\":\n return d3Hierarchy.treemapBinary;\n case \"dice\":\n return d3Hierarchy.treemapDice;\n case \"slice\":\n return d3Hierarchy.treemapSlice;\n default:\n return d3Hierarchy.treemapSliceDice;\n }\n }\n }\n });\n\n // src/traces/treemap/style.js\n var require_style14 = __commonJS({\n \"src/traces/treemap/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Lib = require_lib();\n var helpers = require_helpers15();\n var resizeText = require_uniform_text().resizeText;\n var fillOne = require_fill_one2();\n function style(gd) {\n var s = gd._fullLayout._treemaplayer.selectAll(\".trace\");\n resizeText(gd, s, \"treemap\");\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n gTrace.style(\"opacity\", trace.opacity);\n gTrace.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd, {\n hovered: false\n });\n });\n });\n }\n function styleOne(s, pt, trace, gd, opts) {\n var hovered = (opts || {}).hovered;\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var lineColor;\n var lineWidth;\n var fillColor = cdi.color;\n var isRoot = helpers.isHierarchyRoot(pt);\n var opacity = 1;\n if (hovered) {\n lineColor = trace._hovered.marker.line.color;\n lineWidth = trace._hovered.marker.line.width;\n } else {\n if (isRoot && fillColor === trace.root.color) {\n opacity = 100;\n lineColor = \"rgba(0,0,0,0)\";\n lineWidth = 0;\n } else {\n lineColor = Lib.castOption(trace, ptNumber, \"marker.line.color\") || Color2.defaultLine;\n lineWidth = Lib.castOption(trace, ptNumber, \"marker.line.width\") || 0;\n if (!trace._hasColorscale && !pt.onPathbar) {\n var depthfade = trace.marker.depthfade;\n if (depthfade) {\n var fadedColor = Color2.combine(Color2.addOpacity(trace._backgroundColor, 0.75), fillColor);\n var n;\n if (depthfade === true) {\n var maxDepth = helpers.getMaxDepth(trace);\n if (isFinite(maxDepth)) {\n if (helpers.isLeaf(pt)) {\n n = 0;\n } else {\n n = trace._maxVisibleLayers - (pt.data.depth - trace._entryDepth);\n }\n } else {\n n = pt.data.height + 1;\n }\n } else {\n n = pt.data.depth - trace._entryDepth;\n if (!trace._atRootLevel) n++;\n }\n if (n > 0) {\n for (var i = 0; i < n; i++) {\n var ratio = 0.5 * i / n;\n fillColor = Color2.combine(Color2.addOpacity(fadedColor, ratio), fillColor);\n }\n }\n }\n }\n }\n }\n s.call(fillOne, pt, trace, gd, fillColor).style(\"stroke-width\", lineWidth).call(Color2.stroke, lineColor).style(\"opacity\", opacity);\n }\n module.exports = {\n style,\n styleOne\n };\n }\n });\n\n // src/traces/treemap/draw_ancestors.js\n var require_draw_ancestors = __commonJS({\n \"src/traces/treemap/draw_ancestors.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var partition = require_partition();\n var styleOne = require_style14().styleOne;\n var constants = require_constants21();\n var helpers = require_helpers15();\n var attachFxHandlers = require_fx2();\n var onPathbar = true;\n module.exports = function drawAncestors(gd, cd, entry, slices, opts) {\n var barDifY = opts.barDifY;\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var refRect = {};\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n var eachWidth = width / trace._entryDepth;\n var pathIds = helpers.listPath(entry.data, \"id\");\n var sliceData = partition(hierarchy.copy(), [width, height], {\n packing: \"dice\",\n pad: {\n inner: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n }).descendants();\n sliceData = sliceData.filter(function(pt) {\n var level = pathIds.indexOf(pt.data.id);\n if (level === -1) return false;\n pt.x0 = eachWidth * level;\n pt.x1 = eachWidth * (level + 1);\n pt.y0 = barDifY;\n pt.y1 = barDifY + height;\n pt.onPathbar = true;\n return true;\n });\n sliceData.reverse();\n slices = slices.data(sliceData, helpers.getPtId);\n slices.enter().append(\"g\").classed(\"pathbar\", true);\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n slices.order();\n var updateSlices = slices;\n if (hasTransition) {\n updateSlices = updateSlices.transition().each(\"end\", function() {\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n updateSlices.each(function(pt) {\n pt._x0 = viewX(pt.x0);\n pt._x1 = viewX(pt.x1);\n pt._y0 = viewY(pt.y0);\n pt._y1 = viewY(pt.y1);\n pt._hoverX = viewX(pt.x1 - Math.min(width, height) / 2);\n pt._hoverY = viewY(pt.y1 - height / 2);\n var sliceTop = d3.select(this);\n var slicePath = Lib.ensureSingle(sliceTop, \"path\", \"surface\", function(s) {\n s.style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n });\n if (hasTransition) {\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n } else {\n slicePath.attr(\"d\", pathSlice);\n }\n sliceTop.call(attachFxHandlers, entry, gd, cd, {\n styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n }).call(helpers.setSliceCursor, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: gd._transitioning\n });\n slicePath.call(styleOne, pt, trace, gd, {\n hovered: false\n });\n pt._text = (helpers.getPtLabel(pt) || \"\").split(\"
\").join(\" \") || \"\";\n var sliceTextGroup = Lib.ensureSingle(sliceTop, \"g\", \"slicetext\");\n var sliceText = Lib.ensureSingle(sliceTextGroup, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font, {\n onPathbar: true\n }));\n sliceText.text(pt._text || \" \").classed(\"slicetext\", true).attr(\"text-anchor\", \"start\").call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size,\n onPathbar: true\n });\n pt.transform.fontSize = font.size;\n if (hasTransition) {\n sliceText.transition().attrTween(\"transform\", function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) {\n return strTransform(interp(t));\n };\n });\n } else {\n sliceText.attr(\"transform\", strTransform(pt));\n }\n });\n };\n }\n });\n\n // src/traces/treemap/plot_one.js\n var require_plot_one = __commonJS({\n \"src/traces/treemap/plot_one.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var interpolate = (init_src2(), __toCommonJS(src_exports)).interpolate;\n var helpers = require_helpers15();\n var Lib = require_lib();\n var TEXTPAD = require_constants14().TEXTPAD;\n var barPlot = require_plot3();\n var toMoveInsideBar = barPlot.toMoveInsideBar;\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var constants = require_constants21();\n var drawAncestors = require_draw_ancestors();\n function getKey(pt) {\n return helpers.isHierarchyRoot(pt) ? \"\" : (\n // don't use the dummyId\n helpers.getPtId(pt)\n );\n }\n module.exports = function plotOne(gd, cd, element, transitionOpts, drawDescendants) {\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var type = trace.type;\n var isIcicle = type === \"icicle\";\n var hierarchy = cd0.hierarchy;\n var entry = helpers.findEntryWithLevel(hierarchy, trace.level);\n var gTrace = d3.select(element);\n var selAncestors = gTrace.selectAll(\"g.pathbar\");\n var selDescendants = gTrace.selectAll(\"g.slice\");\n if (!entry) {\n selAncestors.remove();\n selDescendants.remove();\n return;\n }\n var isRoot = helpers.isHierarchyRoot(entry);\n var hasTransition = !fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts);\n var maxDepth = helpers.getMaxDepth(trace);\n var hasVisibleDepth = function(pt) {\n return pt.data.depth - entry.data.depth < maxDepth;\n };\n var gs = fullLayout._size;\n var domain = trace.domain;\n var vpw = gs.w * (domain.x[1] - domain.x[0]);\n var vph = gs.h * (domain.y[1] - domain.y[0]);\n var barW = vpw;\n var barH = trace.pathbar.thickness;\n var barPad = trace.marker.line.width + constants.gapWithPathbar;\n var barDifY = !trace.pathbar.visible ? 0 : trace.pathbar.side.indexOf(\"bottom\") > -1 ? vph + barPad : -(barH + barPad);\n var pathbarOrigin = {\n x0: barW,\n // slide to the right\n x1: barW,\n y0: barDifY,\n y1: barDifY + barH\n };\n var findClosestEdge = function(pt, ref, size) {\n var e = trace.tiling.pad;\n var isLeftOfRect = function(x) {\n return x - e <= ref.x0;\n };\n var isRightOfRect = function(x) {\n return x + e >= ref.x1;\n };\n var isBottomOfRect = function(y) {\n return y - e <= ref.y0;\n };\n var isTopOfRect = function(y) {\n return y + e >= ref.y1;\n };\n if (pt.x0 === ref.x0 && pt.x1 === ref.x1 && pt.y0 === ref.y0 && pt.y1 === ref.y1) {\n return {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n }\n return {\n x0: isLeftOfRect(pt.x0 - e) ? 0 : isRightOfRect(pt.x0 - e) ? size[0] : pt.x0,\n x1: isLeftOfRect(pt.x1 + e) ? 0 : isRightOfRect(pt.x1 + e) ? size[0] : pt.x1,\n y0: isBottomOfRect(pt.y0 - e) ? 0 : isTopOfRect(pt.y0 - e) ? size[1] : pt.y0,\n y1: isBottomOfRect(pt.y1 + e) ? 0 : isTopOfRect(pt.y1 + e) ? size[1] : pt.y1\n };\n };\n var prevEntry = null;\n var prevLookupPathbar = {};\n var prevLookupSlices = {};\n var nextOfPrevEntry = null;\n var getPrev = function(pt, onPathbar) {\n return onPathbar ? prevLookupPathbar[getKey(pt)] : prevLookupSlices[getKey(pt)];\n };\n var getOrigin = function(pt, onPathbar, refRect, size) {\n if (onPathbar) {\n return prevLookupPathbar[getKey(hierarchy)] || pathbarOrigin;\n } else {\n var ref = prevLookupSlices[trace.level] || refRect;\n if (hasVisibleDepth(pt)) {\n return findClosestEdge(pt, ref, size);\n }\n }\n return {};\n };\n if (cd0.hasMultipleRoots && isRoot) {\n maxDepth++;\n }\n trace._maxDepth = maxDepth;\n trace._backgroundColor = fullLayout.paper_bgcolor;\n trace._entryDepth = entry.data.depth;\n trace._atRootLevel = isRoot;\n var cenX = -vpw / 2 + gs.l + gs.w * (domain.x[1] + domain.x[0]) / 2;\n var cenY = -vph / 2 + gs.t + gs.h * (1 - (domain.y[1] + domain.y[0]) / 2);\n var viewMapX = function(x) {\n return cenX + x;\n };\n var viewMapY = function(y) {\n return cenY + y;\n };\n var barY0 = viewMapY(0);\n var barX0 = viewMapX(0);\n var viewBarX = function(x) {\n return barX0 + x;\n };\n var viewBarY = function(y) {\n return barY0 + y;\n };\n function pos(x, y) {\n return x + \",\" + y;\n }\n var xStart = viewBarX(0);\n var limitX0 = function(p) {\n p.x = Math.max(xStart, p.x);\n };\n var edgeshape = trace.pathbar.edgeshape;\n var pathAncestor = function(d) {\n var _x0 = viewBarX(Math.max(Math.min(d.x0, d.x0), 0));\n var _x1 = viewBarX(Math.min(Math.max(d.x1, d.x1), barW));\n var _y0 = viewBarY(d.y0);\n var _y1 = viewBarY(d.y1);\n var halfH = barH / 2;\n var pL = {};\n var pR = {};\n pL.x = _x0;\n pR.x = _x1;\n pL.y = pR.y = (_y0 + _y1) / 2;\n var pA = { x: _x0, y: _y0 };\n var pB = { x: _x1, y: _y0 };\n var pC = { x: _x1, y: _y1 };\n var pD = { x: _x0, y: _y1 };\n if (edgeshape === \">\") {\n pA.x -= halfH;\n pB.x -= halfH;\n pC.x -= halfH;\n pD.x -= halfH;\n } else if (edgeshape === \"/\") {\n pC.x -= halfH;\n pD.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if (edgeshape === \"\\\\\") {\n pA.x -= halfH;\n pB.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if (edgeshape === \"<\") {\n pL.x -= halfH;\n pR.x -= halfH;\n }\n limitX0(pA);\n limitX0(pD);\n limitX0(pL);\n limitX0(pB);\n limitX0(pC);\n limitX0(pR);\n return \"M\" + pos(pA.x, pA.y) + \"L\" + pos(pB.x, pB.y) + \"L\" + pos(pR.x, pR.y) + \"L\" + pos(pC.x, pC.y) + \"L\" + pos(pD.x, pD.y) + \"L\" + pos(pL.x, pL.y) + \"Z\";\n };\n var pad = trace[isIcicle ? \"tiling\" : \"marker\"].pad;\n var hasFlag = function(f) {\n return trace.textposition.indexOf(f) !== -1;\n };\n var hasTop = hasFlag(\"top\");\n var hasLeft = hasFlag(\"left\");\n var hasRight = hasFlag(\"right\");\n var hasBottom = hasFlag(\"bottom\");\n var pathDescendant = function(d) {\n var _x0 = viewMapX(d.x0);\n var _x1 = viewMapX(d.x1);\n var _y0 = viewMapY(d.y0);\n var _y1 = viewMapY(d.y1);\n var dx = _x1 - _x0;\n var dy = _y1 - _y0;\n if (!dx || !dy) return \"\";\n var cornerradius = trace.marker.cornerradius || 0;\n var r = Math.min(cornerradius, dx / 2, dy / 2);\n if (r && d.data && d.data.data && d.data.data.label) {\n if (hasTop) r = Math.min(r, pad.t);\n if (hasLeft) r = Math.min(r, pad.l);\n if (hasRight) r = Math.min(r, pad.r);\n if (hasBottom) r = Math.min(r, pad.b);\n }\n var arc = function(rx, ry) {\n return r ? \"a\" + pos(r, r) + \" 0 0 1 \" + pos(rx, ry) : \"\";\n };\n return \"M\" + pos(_x0, _y0 + r) + arc(r, -r) + \"L\" + pos(_x1 - r, _y0) + arc(r, r) + \"L\" + pos(_x1, _y1 - r) + arc(-r, r) + \"L\" + pos(_x0 + r, _y1) + arc(-r, -r) + \"Z\";\n };\n var toMoveInsideSlice = function(pt, opts) {\n var x0 = pt.x0;\n var x1 = pt.x1;\n var y0 = pt.y0;\n var y1 = pt.y1;\n var textBB = pt.textBB;\n var _hasTop = hasTop || opts.isHeader && !hasBottom;\n var anchor = _hasTop ? \"start\" : hasBottom ? \"end\" : \"middle\";\n var _hasRight = hasFlag(\"right\");\n var _hasLeft = hasFlag(\"left\") || opts.onPathbar;\n var leftToRight = _hasLeft ? -1 : _hasRight ? 1 : 0;\n if (opts.isHeader) {\n x0 += (isIcicle ? pad : pad.l) - TEXTPAD;\n x1 -= (isIcicle ? pad : pad.r) - TEXTPAD;\n if (x0 >= x1) {\n var mid = (x0 + x1) / 2;\n x0 = mid;\n x1 = mid;\n }\n var limY;\n if (hasBottom) {\n limY = y1 - (isIcicle ? pad : pad.b);\n if (y0 < limY && limY < y1) y0 = limY;\n } else {\n limY = y0 + (isIcicle ? pad : pad.t);\n if (y0 < limY && limY < y1) y1 = limY;\n }\n }\n var transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal: false,\n constrained: true,\n angle: 0,\n anchor,\n leftToRight\n });\n transform.fontSize = opts.fontSize;\n transform.targetX = viewMapX(transform.targetX);\n transform.targetY = viewMapY(transform.targetY);\n if (isNaN(transform.targetX) || isNaN(transform.targetY)) {\n return {};\n }\n if (x0 !== x1 && y0 !== y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n return {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n };\n };\n var interpFromParent = function(pt, onPathbar) {\n var parentPrev;\n var i = 0;\n var Q = pt;\n while (!parentPrev && i < maxDepth) {\n i++;\n Q = Q.parent;\n if (Q) {\n parentPrev = getPrev(Q, onPathbar);\n } else i = maxDepth;\n }\n return parentPrev || {};\n };\n var makeExitSliceInterpolator = function(pt, onPathbar, refRect, size) {\n var prev = getPrev(pt, onPathbar);\n var next;\n if (onPathbar) {\n next = pathbarOrigin;\n } else {\n var entryPrev = getPrev(entry, onPathbar);\n if (entryPrev) {\n next = findClosestEdge(pt, entryPrev, size);\n } else {\n next = {};\n }\n }\n return interpolate(prev, next);\n };\n var makeUpdateSliceInterpolator = function(pt, onPathbar, refRect, size, opts) {\n var prev0 = getPrev(pt, onPathbar);\n var prev;\n if (prev0) {\n prev = prev0;\n } else {\n if (onPathbar) {\n prev = pathbarOrigin;\n } else {\n if (prevEntry) {\n if (pt.parent) {\n var ref = nextOfPrevEntry || refRect;\n if (ref && !onPathbar) {\n prev = findClosestEdge(pt, ref, size);\n } else {\n prev = {};\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n } else {\n prev = Lib.extendFlat({}, pt);\n if (isIcicle) {\n if (opts.orientation === \"h\") {\n if (opts.flipX) prev.x0 = pt.x1;\n else prev.x1 = 0;\n } else {\n if (opts.flipY) prev.y0 = pt.y1;\n else prev.y1 = 0;\n }\n }\n }\n } else {\n prev = {};\n }\n }\n }\n return interpolate(prev, {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n });\n };\n var makeUpdateTextInterpolator = function(pt, onPathbar, refRect, size) {\n var prev0 = getPrev(pt, onPathbar);\n var prev = {};\n var origin = getOrigin(pt, onPathbar, refRect, size);\n Lib.extendFlat(prev, {\n transform: toMoveInsideSlice({\n x0: origin.x0,\n x1: origin.x1,\n y0: origin.y0,\n y1: origin.y1,\n textBB: pt.textBB,\n _text: pt._text\n }, {\n isHeader: helpers.isHeader(pt, trace)\n })\n });\n if (prev0) {\n prev = prev0;\n } else {\n if (pt.parent) {\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n }\n var transform = pt.transform;\n if (pt.x0 !== pt.x1 && pt.y0 !== pt.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n return interpolate(prev, {\n transform: {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n }\n });\n };\n var handleSlicesExit = function(slices, onPathbar, refRect, size, pathSlice) {\n var width = size[0];\n var height = size[1];\n if (hasTransition) {\n slices.exit().transition().each(function() {\n var sliceTop = d3.select(this);\n var slicePath = sliceTop.select(\"path.surface\");\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeExitSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n var sliceTextGroup = sliceTop.select(\"g.slicetext\");\n sliceTextGroup.attr(\"opacity\", 0);\n }).remove();\n } else {\n slices.exit().remove();\n }\n };\n var strTransform = function(d) {\n var transform = d.transform;\n if (d.x0 !== d.x1 && d.y0 !== d.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n return Lib.getTextTransform({\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY,\n scale: transform.scale,\n rotate: transform.rotate\n });\n };\n if (hasTransition) {\n selAncestors.each(function(pt) {\n prevLookupPathbar[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n if (pt.transform) {\n prevLookupPathbar[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n });\n selDescendants.each(function(pt) {\n prevLookupSlices[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n if (pt.transform) {\n prevLookupSlices[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n if (!prevEntry && helpers.isEntry(pt)) {\n prevEntry = pt;\n }\n });\n }\n nextOfPrevEntry = drawDescendants(gd, cd, entry, selDescendants, {\n width: vpw,\n height: vph,\n viewX: viewMapX,\n viewY: viewMapY,\n pathSlice: pathDescendant,\n toMoveInsideSlice,\n prevEntry,\n makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator,\n handleSlicesExit,\n hasTransition,\n strTransform\n });\n if (trace.pathbar.visible) {\n drawAncestors(gd, cd, entry, selAncestors, {\n barDifY,\n width: barW,\n height: barH,\n viewX: viewBarX,\n viewY: viewBarY,\n pathSlice: pathAncestor,\n toMoveInsideSlice,\n makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator,\n handleSlicesExit,\n hasTransition,\n strTransform\n });\n } else {\n selAncestors.remove();\n }\n };\n }\n });\n\n // src/traces/treemap/draw.js\n var require_draw12 = __commonJS({\n \"src/traces/treemap/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var helpers = require_helpers15();\n var uniformText = require_uniform_text();\n var clearMinTextSize = uniformText.clearMinTextSize;\n var resizeText = require_style4().resizeText;\n var plotOne = require_plot_one();\n module.exports = function _plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback, opts) {\n var type = opts.type;\n var drawDescendants = opts.drawDescendants;\n var fullLayout = gd._fullLayout;\n var layer = fullLayout[\"_\" + type + \"layer\"];\n var join, onComplete;\n var isFullReplot = !transitionOpts;\n clearMinTextSize(type, fullLayout);\n join = layer.selectAll(\"g.trace.\" + type).data(cdmodule, function(cd) {\n return cd[0].trace.uid;\n });\n join.enter().append(\"g\").classed(\"trace\", true).classed(type, true);\n join.order();\n if (!fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts)) {\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n var transition = d3.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n });\n transition.each(function() {\n layer.selectAll(\"g.trace\").each(function(cd) {\n plotOne(gd, cd, this, transitionOpts, drawDescendants);\n });\n });\n } else {\n join.each(function(cd) {\n plotOne(gd, cd, this, transitionOpts, drawDescendants);\n });\n if (fullLayout.uniformtext.mode) {\n resizeText(gd, layer.selectAll(\".trace\"), type);\n }\n }\n if (isFullReplot) {\n join.exit().remove();\n }\n };\n }\n });\n\n // src/traces/treemap/draw_descendants.js\n var require_draw_descendants = __commonJS({\n \"src/traces/treemap/draw_descendants.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var partition = require_partition();\n var styleOne = require_style14().styleOne;\n var constants = require_constants21();\n var helpers = require_helpers15();\n var attachFxHandlers = require_fx2();\n var formatSliceLabel = require_plot13().formatSliceLabel;\n var onPathbar = false;\n module.exports = function drawDescendants(gd, cd, entry, slices, opts) {\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var prevEntry = opts.prevEntry;\n var refRect = {};\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hasLeft = trace.textposition.indexOf(\"left\") !== -1;\n var hasRight = trace.textposition.indexOf(\"right\") !== -1;\n var hasBottom = trace.textposition.indexOf(\"bottom\") !== -1;\n var noRoomForHeader = !hasBottom && !trace.marker.pad.t || hasBottom && !trace.marker.pad.b;\n var allData = partition(entry, [width, height], {\n packing: trace.tiling.packing,\n squarifyratio: trace.tiling.squarifyratio,\n flipX: trace.tiling.flip.indexOf(\"x\") > -1,\n flipY: trace.tiling.flip.indexOf(\"y\") > -1,\n pad: {\n inner: trace.tiling.pad,\n top: trace.marker.pad.t,\n left: trace.marker.pad.l,\n right: trace.marker.pad.r,\n bottom: trace.marker.pad.b\n }\n });\n var sliceData = allData.descendants();\n var minVisibleDepth = Infinity;\n var maxVisibleDepth = -Infinity;\n sliceData.forEach(function(pt) {\n var depth = pt.depth;\n if (depth >= trace._maxDepth) {\n pt.x0 = pt.x1 = (pt.x0 + pt.x1) / 2;\n pt.y0 = pt.y1 = (pt.y0 + pt.y1) / 2;\n } else {\n minVisibleDepth = Math.min(minVisibleDepth, depth);\n maxVisibleDepth = Math.max(maxVisibleDepth, depth);\n }\n });\n slices = slices.data(sliceData, helpers.getPtId);\n trace._maxVisibleLayers = isFinite(maxVisibleDepth) ? maxVisibleDepth - minVisibleDepth + 1 : 0;\n slices.enter().append(\"g\").classed(\"slice\", true);\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n slices.order();\n var nextOfPrevEntry = null;\n if (hasTransition && prevEntry) {\n var prevEntryId = helpers.getPtId(prevEntry);\n slices.each(function(pt) {\n if (nextOfPrevEntry === null && helpers.getPtId(pt) === prevEntryId) {\n nextOfPrevEntry = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n }\n });\n }\n var getRefRect = function() {\n return nextOfPrevEntry || {\n x0: 0,\n x1: width,\n y0: 0,\n y1: height\n };\n };\n var updateSlices = slices;\n if (hasTransition) {\n updateSlices = updateSlices.transition().each(\"end\", function() {\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: true,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n updateSlices.each(function(pt) {\n var isHeader = helpers.isHeader(pt, trace);\n pt._x0 = viewX(pt.x0);\n pt._x1 = viewX(pt.x1);\n pt._y0 = viewY(pt.y0);\n pt._y1 = viewY(pt.y1);\n pt._hoverX = viewX(pt.x1 - trace.marker.pad.r), pt._hoverY = hasBottom ? viewY(pt.y1 - trace.marker.pad.b / 2) : viewY(pt.y0 + trace.marker.pad.t / 2);\n var sliceTop = d3.select(this);\n var slicePath = Lib.ensureSingle(sliceTop, \"path\", \"surface\", function(s) {\n s.style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n });\n if (hasTransition) {\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2, onPathbar, getRefRect(), [width, height]);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n } else {\n slicePath.attr(\"d\", pathSlice);\n }\n sliceTop.call(attachFxHandlers, entry, gd, cd, {\n styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n }).call(helpers.setSliceCursor, gd, { isTransitioning: gd._transitioning });\n slicePath.call(styleOne, pt, trace, gd, {\n hovered: false\n });\n if (pt.x0 === pt.x1 || pt.y0 === pt.y1) {\n pt._text = \"\";\n } else {\n if (isHeader) {\n pt._text = noRoomForHeader ? \"\" : helpers.getPtLabel(pt) || \"\";\n } else {\n pt._text = formatSliceLabel(pt, entry, trace, cd, fullLayout) || \"\";\n }\n }\n var sliceTextGroup = Lib.ensureSingle(sliceTop, \"g\", \"slicetext\");\n var sliceText = Lib.ensureSingle(sliceTextGroup, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font));\n var text = pt._text || \" \";\n var singleLineHeader = isHeader && text.indexOf(\"
\") === -1;\n sliceText.text(text).classed(\"slicetext\", true).attr(\"text-anchor\", hasRight ? \"end\" : hasLeft || singleLineHeader ? \"start\" : \"middle\").call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size,\n isHeader\n });\n pt.transform.fontSize = font.size;\n if (hasTransition) {\n sliceText.transition().attrTween(\"transform\", function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, getRefRect(), [width, height]);\n return function(t) {\n return strTransform(interp(t));\n };\n });\n } else {\n sliceText.attr(\"transform\", strTransform(pt));\n }\n });\n return nextOfPrevEntry;\n };\n }\n });\n\n // src/traces/treemap/plot.js\n var require_plot14 = __commonJS({\n \"src/traces/treemap/plot.js\"(exports, module) {\n \"use strict\";\n var draw = require_draw12();\n var drawDescendants = require_draw_descendants();\n module.exports = function _plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback) {\n return draw(gd, cdmodule, transitionOpts, makeOnCompleteCallback, {\n type: \"treemap\",\n drawDescendants\n });\n };\n }\n });\n\n // src/traces/treemap/index.js\n var require_treemap = __commonJS({\n \"src/traces/treemap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"treemap\",\n basePlotModule: require_base_plot3(),\n categories: [],\n animatable: true,\n attributes: require_attributes37(),\n layoutAttributes: require_layout_attributes14(),\n supplyDefaults: require_defaults33(),\n supplyLayoutDefaults: require_layout_defaults13(),\n calc: require_calc18().calc,\n crossTraceCalc: require_calc18().crossTraceCalc,\n plot: require_plot14(),\n style: require_style14().style,\n colorbar: require_marker_colorbar(),\n meta: {}\n };\n }\n });\n\n // lib/treemap.js\n var require_treemap2 = __commonJS({\n \"lib/treemap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_treemap();\n }\n });\n\n // src/traces/icicle/base_plot.js\n var require_base_plot4 = __commonJS({\n \"src/traces/icicle/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"icicle\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/icicle/attributes.js\n var require_attributes38 = __commonJS({\n \"src/traces/icicle/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var domainAttrs = require_domain().attributes;\n var pieAttrs = require_attributes35();\n var sunburstAttrs = require_attributes36();\n var treemapAttrs = require_attributes37();\n var constants = require_constants21();\n var extendFlat = require_extend().extendFlat;\n var pattern = require_attributes4().pattern;\n module.exports = {\n labels: sunburstAttrs.labels,\n parents: sunburstAttrs.parents,\n values: sunburstAttrs.values,\n branchvalues: sunburstAttrs.branchvalues,\n count: sunburstAttrs.count,\n level: sunburstAttrs.level,\n maxdepth: sunburstAttrs.maxdepth,\n tiling: {\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n dflt: \"h\",\n editType: \"plot\"\n },\n flip: treemapAttrs.tiling.flip,\n pad: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n marker: extendFlat(\n {\n colors: sunburstAttrs.marker.colors,\n line: sunburstAttrs.marker.line,\n pattern,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\", {\n colorAttr: \"colors\",\n anim: false\n // TODO: set to anim: true?\n })\n ),\n leaf: sunburstAttrs.leaf,\n pathbar: treemapAttrs.pathbar,\n text: pieAttrs.text,\n textinfo: sunburstAttrs.textinfo,\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\", \"value\"])\n }),\n hovertext: pieAttrs.hovertext,\n hoverinfo: sunburstAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n textfont: pieAttrs.textfont,\n insidetextfont: pieAttrs.insidetextfont,\n outsidetextfont: treemapAttrs.outsidetextfont,\n textposition: treemapAttrs.textposition,\n sort: pieAttrs.sort,\n root: sunburstAttrs.root,\n domain: domainAttrs({ name: \"icicle\", trace: true, editType: \"calc\" })\n };\n }\n });\n\n // src/traces/icicle/layout_attributes.js\n var require_layout_attributes15 = __commonJS({\n \"src/traces/icicle/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n iciclecolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendiciclecolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/icicle/defaults.js\n var require_defaults34 = __commonJS({\n \"src/traces/icicle/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes38();\n var Color2 = require_color();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var TEXTPAD = require_constants14().TEXTPAD;\n var handleMarkerDefaults = require_defaults31().handleMarkerDefaults;\n var Colorscale = require_colorscale();\n var hasColorscale = Colorscale.hasColorscale;\n var colorscaleDefaults = Colorscale.handleDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var parents = coerce(\"parents\");\n if (!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n var vals = coerce(\"values\");\n if (vals && vals.length) {\n coerce(\"branchvalues\");\n } else {\n coerce(\"count\");\n }\n coerce(\"level\");\n coerce(\"maxdepth\");\n coerce(\"tiling.orientation\");\n coerce(\"tiling.flip\");\n coerce(\"tiling.pad\");\n var text = coerce(\"text\");\n coerce(\"texttemplate\");\n if (!traceOut.texttemplate) coerce(\"textinfo\", Lib.isArrayOrTypedArray(text) ? \"text+label\" : \"label\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var hasPathbar = coerce(\"pathbar.visible\");\n var textposition = \"auto\";\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n hasPathbar,\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce(\"textposition\");\n handleMarkerDefaults(traceIn, traceOut, layout, coerce);\n var withColorscale = traceOut._hasColorscale = hasColorscale(traceIn, \"marker\", \"colors\") || (traceIn.marker || {}).coloraxis;\n if (withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.\", cLetter: \"c\" });\n }\n coerce(\"leaf.opacity\", withColorscale ? 1 : 0.7);\n traceOut._hovered = {\n marker: {\n line: {\n width: 2,\n color: Color2.contrast(layout.paper_bgcolor)\n }\n }\n };\n if (hasPathbar) {\n coerce(\"pathbar.thickness\", traceOut.pathbar.textfont.size + 2 * TEXTPAD);\n coerce(\"pathbar.side\");\n coerce(\"pathbar.edgeshape\");\n }\n coerce(\"sort\");\n coerce(\"root.color\");\n handleDomainDefaults(traceOut, layout, coerce);\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/icicle/layout_defaults.js\n var require_layout_defaults14 = __commonJS({\n \"src/traces/icicle/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes15();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"iciclecolorway\", layoutOut.colorway);\n coerce(\"extendiciclecolors\");\n };\n }\n });\n\n // src/traces/icicle/calc.js\n var require_calc19 = __commonJS({\n \"src/traces/icicle/calc.js\"(exports) {\n \"use strict\";\n var calc = require_calc17();\n exports.calc = function(gd, trace) {\n return calc.calc(gd, trace);\n };\n exports.crossTraceCalc = function(gd) {\n return calc._runCrossTraceCalc(\"icicle\", gd);\n };\n }\n });\n\n // src/traces/icicle/partition.js\n var require_partition2 = __commonJS({\n \"src/traces/icicle/partition.js\"(exports, module) {\n \"use strict\";\n var d3Hierarchy = require_d3_hierarchy();\n var flipTree = require_flip_tree();\n module.exports = function partition(entry, size, opts) {\n var flipX = opts.flipX;\n var flipY = opts.flipY;\n var swapXY = opts.orientation === \"h\";\n var maxDepth = opts.maxDepth;\n var newWidth = size[0];\n var newHeight = size[1];\n if (maxDepth) {\n newWidth = (entry.height + 1) * size[0] / Math.min(entry.height + 1, maxDepth);\n newHeight = (entry.height + 1) * size[1] / Math.min(entry.height + 1, maxDepth);\n }\n var result = d3Hierarchy.partition().padding(opts.pad.inner).size(\n swapXY ? [size[1], newWidth] : [size[0], newHeight]\n )(entry);\n if (swapXY || flipX || flipY) {\n flipTree(result, size, {\n swapXY,\n flipX,\n flipY\n });\n }\n return result;\n };\n }\n });\n\n // src/traces/icicle/style.js\n var require_style15 = __commonJS({\n \"src/traces/icicle/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Lib = require_lib();\n var resizeText = require_uniform_text().resizeText;\n var fillOne = require_fill_one2();\n function style(gd) {\n var s = gd._fullLayout._iciclelayer.selectAll(\".trace\");\n resizeText(gd, s, \"icicle\");\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n gTrace.style(\"opacity\", trace.opacity);\n gTrace.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd);\n });\n });\n }\n function styleOne(s, pt, trace, gd) {\n var cdi = pt.data.data;\n var isLeaf = !pt.children;\n var ptNumber = cdi.i;\n var lineColor = Lib.castOption(trace, ptNumber, \"marker.line.color\") || Color2.defaultLine;\n var lineWidth = Lib.castOption(trace, ptNumber, \"marker.line.width\") || 0;\n s.call(fillOne, pt, trace, gd).style(\"stroke-width\", lineWidth).call(Color2.stroke, lineColor).style(\"opacity\", isLeaf ? trace.leaf.opacity : null);\n }\n module.exports = {\n style,\n styleOne\n };\n }\n });\n\n // src/traces/icicle/draw_descendants.js\n var require_draw_descendants2 = __commonJS({\n \"src/traces/icicle/draw_descendants.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var partition = require_partition2();\n var styleOne = require_style15().styleOne;\n var constants = require_constants21();\n var helpers = require_helpers15();\n var attachFxHandlers = require_fx2();\n var formatSliceLabel = require_plot13().formatSliceLabel;\n var onPathbar = false;\n module.exports = function drawDescendants(gd, cd, entry, slices, opts) {\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var prevEntry = opts.prevEntry;\n var refRect = {};\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hasLeft = trace.textposition.indexOf(\"left\") !== -1;\n var hasRight = trace.textposition.indexOf(\"right\") !== -1;\n var hasBottom = trace.textposition.indexOf(\"bottom\") !== -1;\n var allData = partition(entry, [width, height], {\n flipX: trace.tiling.flip.indexOf(\"x\") > -1,\n flipY: trace.tiling.flip.indexOf(\"y\") > -1,\n orientation: trace.tiling.orientation,\n pad: {\n inner: trace.tiling.pad\n },\n maxDepth: trace._maxDepth\n });\n var sliceData = allData.descendants();\n var minVisibleDepth = Infinity;\n var maxVisibleDepth = -Infinity;\n sliceData.forEach(function(pt) {\n var depth = pt.depth;\n if (depth >= trace._maxDepth) {\n pt.x0 = pt.x1 = (pt.x0 + pt.x1) / 2;\n pt.y0 = pt.y1 = (pt.y0 + pt.y1) / 2;\n } else {\n minVisibleDepth = Math.min(minVisibleDepth, depth);\n maxVisibleDepth = Math.max(maxVisibleDepth, depth);\n }\n });\n slices = slices.data(sliceData, helpers.getPtId);\n trace._maxVisibleLayers = isFinite(maxVisibleDepth) ? maxVisibleDepth - minVisibleDepth + 1 : 0;\n slices.enter().append(\"g\").classed(\"slice\", true);\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n slices.order();\n var nextOfPrevEntry = null;\n if (hasTransition && prevEntry) {\n var prevEntryId = helpers.getPtId(prevEntry);\n slices.each(function(pt) {\n if (nextOfPrevEntry === null && helpers.getPtId(pt) === prevEntryId) {\n nextOfPrevEntry = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n }\n });\n }\n var getRefRect = function() {\n return nextOfPrevEntry || {\n x0: 0,\n x1: width,\n y0: 0,\n y1: height\n };\n };\n var updateSlices = slices;\n if (hasTransition) {\n updateSlices = updateSlices.transition().each(\"end\", function() {\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: true,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n updateSlices.each(function(pt) {\n pt._x0 = viewX(pt.x0);\n pt._x1 = viewX(pt.x1);\n pt._y0 = viewY(pt.y0);\n pt._y1 = viewY(pt.y1);\n pt._hoverX = viewX(pt.x1 - trace.tiling.pad), pt._hoverY = hasBottom ? viewY(pt.y1 - trace.tiling.pad / 2) : viewY(pt.y0 + trace.tiling.pad / 2);\n var sliceTop = d3.select(this);\n var slicePath = Lib.ensureSingle(sliceTop, \"path\", \"surface\", function(s) {\n s.style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n });\n if (hasTransition) {\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeUpdateSliceInterpolator(\n pt2,\n onPathbar,\n getRefRect(),\n [width, height],\n {\n orientation: trace.tiling.orientation,\n flipX: trace.tiling.flip.indexOf(\"x\") > -1,\n flipY: trace.tiling.flip.indexOf(\"y\") > -1\n }\n );\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n } else {\n slicePath.attr(\"d\", pathSlice);\n }\n sliceTop.call(attachFxHandlers, entry, gd, cd, {\n styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n }).call(helpers.setSliceCursor, gd, { isTransitioning: gd._transitioning });\n slicePath.call(styleOne, pt, trace, gd, {\n hovered: false\n });\n if (pt.x0 === pt.x1 || pt.y0 === pt.y1) {\n pt._text = \"\";\n } else {\n pt._text = formatSliceLabel(pt, entry, trace, cd, fullLayout) || \"\";\n }\n var sliceTextGroup = Lib.ensureSingle(sliceTop, \"g\", \"slicetext\");\n var sliceText = Lib.ensureSingle(sliceTextGroup, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font));\n sliceText.text(pt._text || \" \").classed(\"slicetext\", true).attr(\"text-anchor\", hasRight ? \"end\" : hasLeft ? \"start\" : \"middle\").call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size\n });\n pt.transform.fontSize = font.size;\n if (hasTransition) {\n sliceText.transition().attrTween(\"transform\", function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, getRefRect(), [width, height]);\n return function(t) {\n return strTransform(interp(t));\n };\n });\n } else {\n sliceText.attr(\"transform\", strTransform(pt));\n }\n });\n return nextOfPrevEntry;\n };\n }\n });\n\n // src/traces/icicle/plot.js\n var require_plot15 = __commonJS({\n \"src/traces/icicle/plot.js\"(exports, module) {\n \"use strict\";\n var draw = require_draw12();\n var drawDescendants = require_draw_descendants2();\n module.exports = function _plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback) {\n return draw(gd, cdmodule, transitionOpts, makeOnCompleteCallback, {\n type: \"icicle\",\n drawDescendants\n });\n };\n }\n });\n\n // src/traces/icicle/index.js\n var require_icicle = __commonJS({\n \"src/traces/icicle/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"icicle\",\n basePlotModule: require_base_plot4(),\n categories: [],\n animatable: true,\n attributes: require_attributes38(),\n layoutAttributes: require_layout_attributes15(),\n supplyDefaults: require_defaults34(),\n supplyLayoutDefaults: require_layout_defaults14(),\n calc: require_calc19().calc,\n crossTraceCalc: require_calc19().crossTraceCalc,\n plot: require_plot15(),\n style: require_style15().style,\n colorbar: require_marker_colorbar(),\n meta: {}\n };\n }\n });\n\n // lib/icicle.js\n var require_icicle2 = __commonJS({\n \"lib/icicle.js\"(exports, module) {\n \"use strict\";\n module.exports = require_icicle();\n }\n });\n\n // src/traces/funnelarea/base_plot.js\n var require_base_plot5 = __commonJS({\n \"src/traces/funnelarea/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"funnelarea\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/funnelarea/attributes.js\n var require_attributes39 = __commonJS({\n \"src/traces/funnelarea/attributes.js\"(exports, module) {\n \"use strict\";\n var pieAttrs = require_attributes35();\n var baseAttrs = require_attributes2();\n var domainAttrs = require_domain().attributes;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n labels: pieAttrs.labels,\n // equivalent of x0 and dx, if label is missing\n label0: pieAttrs.label0,\n dlabel: pieAttrs.dlabel,\n values: pieAttrs.values,\n marker: {\n colors: pieAttrs.marker.colors,\n line: {\n color: extendFlat({}, pieAttrs.marker.line.color, {\n dflt: null\n }),\n width: extendFlat({}, pieAttrs.marker.line.width, { dflt: 1 }),\n editType: \"calc\"\n },\n pattern: pieAttrs.marker.pattern,\n editType: \"calc\"\n },\n text: pieAttrs.text,\n hovertext: pieAttrs.hovertext,\n scalegroup: extendFlat({}, pieAttrs.scalegroup, {}),\n textinfo: extendFlat({}, pieAttrs.textinfo, {\n flags: [\"label\", \"text\", \"value\", \"percent\"]\n }),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"label\", \"color\", \"value\", \"text\", \"percent\"]\n }),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"label\", \"text\", \"value\", \"percent\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"label\", \"color\", \"value\", \"text\", \"percent\"]\n }),\n textposition: extendFlat({}, pieAttrs.textposition, {\n values: [\"inside\", \"none\"],\n dflt: \"inside\"\n }),\n textfont: pieAttrs.textfont,\n insidetextfont: pieAttrs.insidetextfont,\n title: {\n text: pieAttrs.title.text,\n font: pieAttrs.title.font,\n position: extendFlat({}, pieAttrs.title.position, {\n values: [\"top left\", \"top center\", \"top right\"],\n dflt: \"top center\"\n }),\n editType: \"plot\"\n },\n domain: domainAttrs({ name: \"funnelarea\", trace: true, editType: \"calc\" }),\n aspectratio: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"plot\"\n },\n baseratio: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.333,\n editType: \"plot\"\n }\n };\n }\n });\n\n // src/traces/funnelarea/layout_attributes.js\n var require_layout_attributes16 = __commonJS({\n \"src/traces/funnelarea/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var hiddenlabels = require_layout_attributes12().hiddenlabels;\n module.exports = {\n hiddenlabels,\n funnelareacolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendfunnelareacolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/funnelarea/defaults.js\n var require_defaults35 = __commonJS({\n \"src/traces/funnelarea/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes39();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var handleLabelsAndValues = require_defaults31().handleLabelsAndValues;\n var handleMarkerDefaults = require_defaults31().handleMarkerDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var values = coerce(\"values\");\n var res = handleLabelsAndValues(labels, values);\n var len = res.len;\n traceOut._hasLabels = res.hasLabels;\n traceOut._hasValues = res.hasValues;\n if (!traceOut._hasLabels && traceOut._hasValues) {\n coerce(\"label0\");\n coerce(\"dlabel\");\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n handleMarkerDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"scalegroup\");\n var textData = coerce(\"text\");\n var textTemplate = coerce(\"texttemplate\");\n var textInfo;\n if (!textTemplate) textInfo = coerce(\"textinfo\", Array.isArray(textData) ? \"text+percent\" : \"percent\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n if (textTemplate || textInfo && textInfo !== \"none\") {\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n } else if (textInfo === \"none\") {\n coerce(\"textposition\", \"none\");\n }\n handleDomainDefaults(traceOut, layout, coerce);\n var title = coerce(\"title.text\");\n if (title) {\n coerce(\"title.position\");\n Lib.coerceFont(coerce, \"title.font\", layout.font);\n }\n coerce(\"aspectratio\");\n coerce(\"baseratio\");\n };\n }\n });\n\n // src/traces/funnelarea/layout_defaults.js\n var require_layout_defaults15 = __commonJS({\n \"src/traces/funnelarea/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes16();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"hiddenlabels\");\n coerce(\"funnelareacolorway\", layoutOut.colorway);\n coerce(\"extendfunnelareacolors\");\n };\n }\n });\n\n // src/traces/funnelarea/calc.js\n var require_calc20 = __commonJS({\n \"src/traces/funnelarea/calc.js\"(exports, module) {\n \"use strict\";\n var pieCalc = require_calc16();\n function calc(gd, trace) {\n return pieCalc.calc(gd, trace);\n }\n function crossTraceCalc(gd) {\n pieCalc.crossTraceCalc(gd, { type: \"funnelarea\" });\n }\n module.exports = {\n calc,\n crossTraceCalc\n };\n }\n });\n\n // src/traces/funnelarea/plot.js\n var require_plot16 = __commonJS({\n \"src/traces/funnelarea/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strScale = Lib.strScale;\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var barPlot = require_plot3();\n var toMoveInsideBar = barPlot.toMoveInsideBar;\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var clearMinTextSize = uniformText.clearMinTextSize;\n var pieHelpers = require_helpers4();\n var piePlot = require_plot12();\n var attachFxHandlers = piePlot.attachFxHandlers;\n var determineInsideTextFont = piePlot.determineInsideTextFont;\n var layoutAreas = piePlot.layoutAreas;\n var prerenderTitles = piePlot.prerenderTitles;\n var positionTitleOutside = piePlot.positionTitleOutside;\n var formatSliceLabel = piePlot.formatSliceLabel;\n module.exports = function plot(gd, cdModule) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n clearMinTextSize(\"funnelarea\", fullLayout);\n prerenderTitles(cdModule, gd);\n layoutAreas(cdModule, fullLayout._size);\n Lib.makeTraceGroups(fullLayout._funnelarealayer, cdModule, \"trace\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n setCoords(cd);\n plotGroup.each(function() {\n var slices = d3.select(this).selectAll(\"g.slice\").data(cd);\n slices.enter().append(\"g\").classed(\"slice\", true);\n slices.exit().remove();\n slices.each(function(pt, i) {\n if (pt.hidden) {\n d3.select(this).selectAll(\"path,g\").remove();\n return;\n }\n pt.pointNumber = pt.i;\n pt.curveNumber = trace.index;\n var cx = cd0.cx;\n var cy = cd0.cy;\n var sliceTop = d3.select(this);\n var slicePath = sliceTop.selectAll(\"path.surface\").data([pt]);\n slicePath.enter().append(\"path\").classed(\"surface\", true).style({ \"pointer-events\": isStatic ? \"none\" : \"all\" });\n sliceTop.call(attachFxHandlers, gd, cd);\n var shape = \"M\" + (cx + pt.TR[0]) + \",\" + (cy + pt.TR[1]) + line(pt.TR, pt.BR) + line(pt.BR, pt.BL) + line(pt.BL, pt.TL) + \"Z\";\n slicePath.attr(\"d\", shape);\n formatSliceLabel(gd, pt, cd0);\n var textPosition = pieHelpers.castOption(trace.textposition, pt.pts);\n var sliceTextGroup = sliceTop.selectAll(\"g.slicetext\").data(pt.text && textPosition !== \"none\" ? [0] : []);\n sliceTextGroup.enter().append(\"g\").classed(\"slicetext\", true);\n sliceTextGroup.exit().remove();\n sliceTextGroup.each(function() {\n var sliceText = Lib.ensureSingle(d3.select(this), \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, determineInsideTextFont(trace, pt, fullLayout.font));\n sliceText.text(pt.text).attr({\n class: \"slicetext\",\n transform: \"\",\n \"text-anchor\": \"middle\"\n }).call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n var textBB = Drawing.bBox(sliceText.node());\n var transform;\n var x0, x1;\n var y0 = Math.min(pt.BL[1], pt.BR[1]) + cy;\n var y1 = Math.max(pt.TL[1], pt.TR[1]) + cy;\n x0 = Math.max(pt.TL[0], pt.BL[0]) + cx;\n x1 = Math.min(pt.TR[0], pt.BR[0]) + cx;\n transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal: true,\n constrained: true,\n angle: 0,\n anchor: \"middle\"\n });\n transform.fontSize = font.size;\n recordMinTextSize(trace.type, transform, fullLayout);\n cd[i].transform = transform;\n Lib.setTransormAndDisplay(sliceText, transform);\n });\n });\n var titleTextGroup = d3.select(this).selectAll(\"g.titletext\").data(trace.title.text ? [0] : []);\n titleTextGroup.enter().append(\"g\").classed(\"titletext\", true);\n titleTextGroup.exit().remove();\n titleTextGroup.each(function() {\n var titleText = Lib.ensureSingle(d3.select(this), \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var txt = trace.title.text;\n if (trace._meta) {\n txt = Lib.templateString(txt, trace._meta);\n }\n titleText.text(txt).attr({\n class: \"titletext\",\n transform: \"\",\n \"text-anchor\": \"middle\"\n }).call(Drawing.font, trace.title.font).call(svgTextUtils.convertToTspans, gd);\n var transform = positionTitleOutside(cd0, fullLayout._size);\n titleText.attr(\n \"transform\",\n strTranslate(transform.x, transform.y) + strScale(Math.min(1, transform.scale)) + strTranslate(transform.tx, transform.ty)\n );\n });\n });\n });\n };\n function line(a, b) {\n var dx = b[0] - a[0];\n var dy = b[1] - a[1];\n return \"l\" + dx + \",\" + dy;\n }\n function getBetween(a, b) {\n return [\n 0.5 * (a[0] + b[0]),\n 0.5 * (a[1] + b[1])\n ];\n }\n function setCoords(cd) {\n if (!cd.length) return;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var aspectratio = trace.aspectratio;\n var h = trace.baseratio;\n if (h > 0.999) h = 0.999;\n var h2 = Math.pow(h, 2);\n var v1 = cd0.vTotal;\n var v0 = v1 * h2 / (1 - h2);\n var totalValues = v1;\n var sumSteps = v0 / v1;\n function calcPos() {\n var q = Math.sqrt(sumSteps);\n return {\n x: q,\n y: -q\n };\n }\n function getPoint() {\n var pos = calcPos();\n return [pos.x, pos.y];\n }\n var p;\n var allPoints = [];\n allPoints.push(getPoint());\n var i, cdi;\n for (i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if (cdi.hidden) continue;\n var step = cdi.v / totalValues;\n sumSteps += step;\n allPoints.push(getPoint());\n }\n var minY = Infinity;\n var maxY = -Infinity;\n for (i = 0; i < allPoints.length; i++) {\n p = allPoints[i];\n minY = Math.min(minY, p[1]);\n maxY = Math.max(maxY, p[1]);\n }\n for (i = 0; i < allPoints.length; i++) {\n allPoints[i][1] -= (maxY + minY) / 2;\n }\n var lastX = allPoints[allPoints.length - 1][0];\n var r = cd0.r;\n var rY = (maxY - minY) / 2;\n var scaleX = r / lastX;\n var scaleY = r / rY * aspectratio;\n cd0.r = scaleY * rY;\n for (i = 0; i < allPoints.length; i++) {\n allPoints[i][0] *= scaleX;\n allPoints[i][1] *= scaleY;\n }\n p = allPoints[0];\n var prevLeft = [-p[0], p[1]];\n var prevRight = [p[0], p[1]];\n var n = 0;\n for (i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if (cdi.hidden) continue;\n n += 1;\n var x = allPoints[n][0];\n var y = allPoints[n][1];\n cdi.TL = [-x, y];\n cdi.TR = [x, y];\n cdi.BL = prevLeft;\n cdi.BR = prevRight;\n cdi.pxmid = getBetween(cdi.TR, cdi.BR);\n prevLeft = cdi.TL;\n prevRight = cdi.TR;\n }\n }\n }\n });\n\n // src/traces/funnelarea/style.js\n var require_style16 = __commonJS({\n \"src/traces/funnelarea/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var styleOne = require_style_one();\n var resizeText = require_uniform_text().resizeText;\n module.exports = function style(gd) {\n var s = gd._fullLayout._funnelarealayer.selectAll(\".trace\");\n resizeText(gd, s, \"funnelarea\");\n s.each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var traceSelection = d3.select(this);\n traceSelection.style({ opacity: trace.opacity });\n traceSelection.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd);\n });\n });\n };\n }\n });\n\n // src/traces/funnelarea/index.js\n var require_funnelarea = __commonJS({\n \"src/traces/funnelarea/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"funnelarea\",\n basePlotModule: require_base_plot5(),\n categories: [\"pie-like\", \"funnelarea\", \"showLegend\"],\n attributes: require_attributes39(),\n layoutAttributes: require_layout_attributes16(),\n supplyDefaults: require_defaults35(),\n supplyLayoutDefaults: require_layout_defaults15(),\n calc: require_calc20().calc,\n crossTraceCalc: require_calc20().crossTraceCalc,\n plot: require_plot16(),\n style: require_style16(),\n styleOne: require_style_one(),\n meta: {}\n };\n }\n });\n\n // lib/funnelarea.js\n var require_funnelarea2 = __commonJS({\n \"lib/funnelarea.js\"(exports, module) {\n \"use strict\";\n module.exports = require_funnelarea();\n }\n });\n\n // stackgl_modules/index.js\n var require_stackgl_modules = __commonJS({\n \"stackgl_modules/index.js\"(exports, module) {\n (function() {\n var __webpack_modules__ = {\n /***/\n 1964: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = {\n alpha_shape: __webpack_require__2(3502),\n convex_hull: __webpack_require__2(7352),\n delaunay_triangulate: __webpack_require__2(7642),\n gl_cone3d: __webpack_require__2(6405),\n gl_error3d: __webpack_require__2(9165),\n gl_line3d: __webpack_require__2(5714),\n gl_mesh3d: __webpack_require__2(7201),\n gl_plot3d: __webpack_require__2(4100),\n gl_scatter3d: __webpack_require__2(8418),\n gl_streamtube3d: __webpack_require__2(7815),\n gl_surface3d: __webpack_require__2(9499),\n ndarray: __webpack_require__2(9618),\n ndarray_linear_interpolate: __webpack_require__2(4317)\n };\n }\n ),\n /***/\n 4793: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n var __webpack_unused_export__;\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || false, o.configurable = true, \"value\" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: false }), e;\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n }\n function _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 }\n function _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n }\n function _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return _assertThisInitialized(t);\n }\n function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }\n function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n } catch (t4) {\n }\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct2() {\n return !!t;\n })();\n }\n function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t4) {\n return t4.__proto__ || Object.getPrototypeOf(t4);\n }, _getPrototypeOf(t);\n }\n function _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: true, configurable: true } }), Object.defineProperty(t, \"prototype\", { writable: false }), e && _setPrototypeOf(t, e);\n }\n function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t4, e2) {\n return t4.__proto__ = e2, t4;\n }, _setPrototypeOf(t, e);\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n var base64 = __webpack_require__2(7507);\n var ieee754 = __webpack_require__2(3778);\n var customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") : null;\n exports2.hp = Buffer2;\n __webpack_unused_export__ = SlowBuffer;\n exports2.IS = 50;\n var K_MAX_LENGTH = 2147483647;\n __webpack_unused_export__ = K_MAX_LENGTH;\n Buffer2.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer2.TYPED_ARRAY_SUPPORT && typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\");\n }\n function typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n var proto = {\n foo: function foo() {\n return 42;\n }\n };\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 Object.defineProperty(Buffer2.prototype, \"parent\", {\n enumerable: true,\n get: function get() {\n if (!Buffer2.isBuffer(this)) return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer2.prototype, \"offset\", {\n enumerable: true,\n get: function get() {\n if (!Buffer2.isBuffer(this)) return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n }\n var buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer2.prototype);\n return buf;\n }\n function Buffer2(arg, encodingOrOffset, length) {\n if (typeof arg === \"number\") {\n if (typeof encodingOrOffset === \"string\") {\n throw new TypeError('The \"string\" argument must be of type string. Received type number');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer2.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + _typeof(value));\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === \"number\") {\n throw new TypeError('The \"value\" argument must not be of type number. Received type number');\n }\n var valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer2.from(valueOf, encodingOrOffset, length);\n }\n var b = fromObject(value);\n if (b) return b;\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer2.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + _typeof(value));\n }\n Buffer2.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer2.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer2, Uint8Array);\n function 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 function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer2.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer2.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer2.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n if (!Buffer2.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n var length = byteLength(string, encoding) | 0;\n var buf = createBuffer(length);\n var actual = buf.write(string, encoding);\n if (actual !== length) {\n buf = buf.slice(0, actual);\n }\n return buf;\n }\n function fromArrayLike(array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n var buf = createBuffer(length);\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n return buf;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds');\n }\n var buf;\n if (byteOffset === void 0 && length === void 0) {\n buf = new Uint8Array(array);\n } else if (length === void 0) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf, Buffer2.prototype);\n return buf;\n }\n function fromObject(obj) {\n if (Buffer2.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n var buf = createBuffer(len);\n if (buf.length === 0) {\n return buf;\n }\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer2.alloc(+length);\n }\n Buffer2.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer2.prototype;\n };\n Buffer2.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer2.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer2.from(b, b.offset, b.byteLength);\n if (!Buffer2.isBuffer(a) || !Buffer2.isBuffer(b)) {\n throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');\n }\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n for (var 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 if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n Buffer2.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 Buffer2.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n if (list.length === 0) {\n return Buffer2.alloc(0);\n }\n var i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n var buffer = Buffer2.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer2.isBuffer(buf)) buf = Buffer2.from(buf);\n buf.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer2.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 function byteLength(string, encoding) {\n if (Buffer2.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('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + _typeof(string));\n }\n var len = string.length;\n var mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0;\n var 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;\n }\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer2.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n var loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return \"\";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return \"\";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return \"\";\n }\n if (!encoding) encoding = \"utf8\";\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n case \"ascii\":\n return asciiSlice(this, start, end);\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n case \"base64\":\n return base64Slice(this, start, end);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer2.prototype._isBuffer = true;\n function swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer2.prototype.swap16 = function swap16() {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer2.prototype.swap32 = function swap32() {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n }\n for (var 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 Buffer2.prototype.swap64 = function swap64() {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n }\n for (var 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 Buffer2.prototype.toString = function toString() {\n var 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 Buffer2.prototype.toLocaleString = Buffer2.prototype.toString;\n Buffer2.prototype.equals = function equals(b) {\n if (!Buffer2.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer2.compare(this, b) === 0;\n };\n Buffer2.prototype.inspect = function inspect() {\n var str = \"\";\n var max = exports2.IS;\n str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n if (this.length > max) str += \" ... \";\n return \"\";\n };\n if (customInspectSymbol) {\n Buffer2.prototype[customInspectSymbol] = Buffer2.prototype.inspect;\n }\n Buffer2.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer2.from(target, target.offset, target.byteLength);\n }\n if (!Buffer2.isBuffer(target)) {\n throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type ' + _typeof(target));\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\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 start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0) return -1;\n if (typeof byteOffset === \"string\") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\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 if (typeof val === \"string\") {\n val = Buffer2.from(val, encoding);\n }\n if (Buffer2.isBuffer(val)) {\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 & 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 throw new TypeError(\"val must be string, number or Buffer\");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === \"ucs2\" || encoding === \"ucs-2\" || 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 function read(buf, i2) {\n if (indexSize === 1) {\n return buf[i2];\n } else {\n return buf.readUInt16BE(i2 * indexSize);\n }\n }\n var i;\n if (dir) {\n var 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 var found = true;\n for (var 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 return -1;\n }\n Buffer2.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer2.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer2.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var 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 var strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n var i;\n for (i = 0; i < length; ++i) {\n var 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 function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n Buffer2.prototype.write = function write(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0) encoding = \"utf8\";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n }\n var remaining = this.length - offset;\n if (length === void 0 || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n if (!encoding) encoding = \"utf8\";\n var loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n case \"base64\":\n return base64Write(this, string, offset, length);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer2.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function 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 function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n var secondByte = void 0, thirdByte = void 0, fourthByte = void 0, tempCodePoint = void 0;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\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 & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n var res = \"\";\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf, start, end) {\n var ret = \"\";\n end = Math.min(buf.length, end);\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf, start, end) {\n var ret = \"\";\n end = Math.min(buf.length, end);\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n }\n function hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = \"\";\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n return out;\n }\n function utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = \"\";\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer2.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n var newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer2.prototype);\n return newBuf;\n };\n function 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 Buffer2.prototype.readUintLE = Buffer2.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer2.prototype.readUintBE = Buffer2.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n var val = this[offset + --byteLength2];\n var mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer2.prototype.readUint8 = Buffer2.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer2.prototype.readUint16LE = Buffer2.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 Buffer2.prototype.readUint16BE = Buffer2.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 Buffer2.prototype.readUint32LE = Buffer2.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer2.prototype.readUint32BE = Buffer2.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer2.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n var first = this[offset];\n var last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n var lo = first + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 24);\n var hi = this[++offset] + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + last * Math.pow(2, 24);\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer2.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n var first = this[offset];\n var last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n var hi = first * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + this[++offset];\n var lo = this[++offset] * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer2.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer2.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n var i = byteLength2;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer2.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer2.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer2.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer2.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer2.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer2.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n var first = this[offset];\n var last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n var val = this[offset + 4] + this[offset + 5] * Math.pow(2, 8) + this[offset + 6] * Math.pow(2, 16) + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 24));\n });\n Buffer2.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n var first = this[offset];\n var last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n var val = (first << 24) + // Overflow\n this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + last);\n });\n Buffer2.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 Buffer2.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 Buffer2.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 Buffer2.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 function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer2.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 Buffer2.prototype.writeUintLE = Buffer2.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n var mul = 1;\n var i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeUintBE = Buffer2.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n var i = byteLength2 - 1;\n var mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeUint8 = Buffer2.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer2.prototype.writeUint16LE = Buffer2.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer2.prototype.writeUint16BE = Buffer2.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer2.prototype.writeUint32LE = Buffer2.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer2.prototype.writeUint32BE = Buffer2.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n var lo = Number(value & BigInt(4294967295));\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 var hi = Number(value >> BigInt(32) & BigInt(4294967295));\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 function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n var lo = Number(value & BigInt(4294967295));\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 var hi = Number(value >> BigInt(32) & BigInt(4294967295));\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 Buffer2.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value) {\n var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer2.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value) {\n var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer2.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n var i = byteLength2 - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer2.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer2.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer2.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer2.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer2.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value) {\n var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer2.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value) {\n var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n function 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 function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer2.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer2.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer2.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer2.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer2.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer2.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 if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\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 if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n var len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer2.prototype.fill = function fill(val, start, end, encoding) {\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 !== void 0 && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n if (typeof encoding === \"string\" && !Buffer2.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\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 if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n if (typeof val === \"number\") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer2.isBuffer(val) ? val : Buffer2.from(val, encoding);\n var len = bytes.length;\n if (len === 0) {\n throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E2(sym, getMessage, Base) {\n errors[sym] = /* @__PURE__ */ function(_Base) {\n function NodeError() {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _callSuper(this, NodeError);\n Object.defineProperty(_this, \"message\", {\n value: getMessage.apply(_this, arguments),\n writable: true,\n configurable: true\n });\n _this.name = \"\".concat(_this.name, \" [\").concat(sym, \"]\");\n _this.stack;\n delete _this.name;\n return _this;\n }\n _inherits(NodeError, _Base);\n return _createClass(NodeError, [{\n key: \"code\",\n get: function get() {\n return sym;\n },\n set: function set(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(sym, \"]: \").concat(this.message);\n }\n }]);\n }(Base);\n }\n E2(\"ERR_BUFFER_OUT_OF_BOUNDS\", function(name2) {\n if (name2) {\n return \"\".concat(name2, \" is outside of buffer bounds\");\n }\n return \"Attempt to access memory outside buffer bounds\";\n }, RangeError);\n E2(\"ERR_INVALID_ARG_TYPE\", function(name2, actual) {\n return 'The \"'.concat(name2, '\" argument must be of type number. Received type ').concat(_typeof(actual));\n }, TypeError);\n E2(\"ERR_OUT_OF_RANGE\", function(str, range, input) {\n var msg = 'The value of \"'.concat(str, '\" is out of range.');\n var received = input;\n if (Number.isInteger(input) && Math.abs(input) > Math.pow(2, 32)) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === \"bigint\") {\n received = String(input);\n if (input > Math.pow(BigInt(2), BigInt(32)) || input < -Math.pow(BigInt(2), BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += \"n\";\n }\n msg += \" It must be \".concat(range, \". Received \").concat(received);\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n var res = \"\";\n var i = val.length;\n var start = val[0] === \"-\" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = \"_\".concat(val.slice(i - 3, i)).concat(res);\n }\n return \"\".concat(val.slice(0, i)).concat(res);\n }\n function checkBounds(buf, offset, byteLength2) {\n validateNumber(offset, \"offset\");\n if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) {\n boundsError(offset, buf.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf, offset, byteLength2) {\n if (value > max || value < min) {\n var n = typeof min === \"bigint\" ? \"n\" : \"\";\n var range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = \">= 0\".concat(n, \" and < 2\").concat(n, \" ** \").concat((byteLength2 + 1) * 8).concat(n);\n } else {\n range = \">= -(2\".concat(n, \" ** \").concat((byteLength2 + 1) * 8 - 1).concat(n, \") and < 2 ** \") + \"\".concat((byteLength2 + 1) * 8 - 1).concat(n);\n }\n } else {\n range = \">= \".concat(min).concat(n, \" and <= \").concat(max).concat(n);\n }\n throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n }\n checkBounds(buf, offset, byteLength2);\n }\n function validateNumber(value, name2) {\n if (typeof value !== \"number\") {\n throw new errors.ERR_INVALID_ARG_TYPE(name2, \"number\", value);\n }\n }\n function 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 if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", \">= \".concat(type ? 1 : 0, \" and <= \").concat(length), value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split(\"=\")[0];\n str = str.trim().replace(INVALID_BASE64_RE, \"\");\n if (str.length < 2) return \"\";\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error(\"Invalid code point\");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n var 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 function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n var alphabet = \"0123456789abcdef\";\n var table = new Array(256);\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16;\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n }\n ),\n /***/\n 9216: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = isMobile;\n module2.exports.isMobile = isMobile;\n module2.exports[\"default\"] = isMobile;\n var mobileRE = /(android|bb\\d+|meego).+mobile|armv7l|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i;\n var notMobileRE = /CrOS/;\n var tabletRE = /android|ipad|playbook|silk/i;\n function isMobile(opts) {\n if (!opts) opts = {};\n var ua = opts.ua;\n if (!ua && typeof navigator !== \"undefined\") ua = navigator.userAgent;\n if (ua && ua.headers && typeof ua.headers[\"user-agent\"] === \"string\") {\n ua = ua.headers[\"user-agent\"];\n }\n if (typeof ua !== \"string\") return false;\n var result = mobileRE.test(ua) && !notMobileRE.test(ua) || !!opts.tablet && tabletRE.test(ua);\n if (!result && opts.tablet && opts.featureDetect && navigator && navigator.maxTouchPoints > 1 && ua.indexOf(\"Macintosh\") !== -1 && ua.indexOf(\"Safari\") !== -1) {\n result = true;\n }\n return result;\n }\n }\n ),\n /***/\n 6296: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createViewController;\n var createTurntable = __webpack_require__2(7261);\n var createOrbit = __webpack_require__2(9977);\n var createMatrix = __webpack_require__2(1811);\n function ViewController(controllers, mode) {\n this._controllerNames = Object.keys(controllers);\n this._controllerList = this._controllerNames.map(function(n) {\n return controllers[n];\n });\n this._mode = mode;\n this._active = controllers[mode];\n if (!this._active) {\n this._mode = \"turntable\";\n this._active = controllers.turntable;\n }\n this.modes = this._controllerNames;\n this.computedMatrix = this._active.computedMatrix;\n this.computedEye = this._active.computedEye;\n this.computedUp = this._active.computedUp;\n this.computedCenter = this._active.computedCenter;\n this.computedRadius = this._active.computedRadius;\n }\n var proto = ViewController.prototype;\n proto.flush = function(a0) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].flush(a0);\n }\n };\n proto.idle = function(a0) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].idle(a0);\n }\n };\n proto.lookAt = function(a0, a1, a2, a3) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].lookAt(a0, a1, a2, a3);\n }\n };\n proto.rotate = function(a0, a1, a2, a3) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].rotate(a0, a1, a2, a3);\n }\n };\n proto.pan = function(a0, a1, a2, a3) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].pan(a0, a1, a2, a3);\n }\n };\n proto.translate = function(a0, a1, a2, a3) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].translate(a0, a1, a2, a3);\n }\n };\n proto.setMatrix = function(a0, a1) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].setMatrix(a0, a1);\n }\n };\n proto.setDistanceLimits = function(a0, a1) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].setDistanceLimits(a0, a1);\n }\n };\n proto.setDistance = function(a0, a1) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].setDistance(a0, a1);\n }\n };\n proto.recalcMatrix = function(t) {\n this._active.recalcMatrix(t);\n };\n proto.getDistance = function(t) {\n return this._active.getDistance(t);\n };\n proto.getDistanceLimits = function(out) {\n return this._active.getDistanceLimits(out);\n };\n proto.lastT = function() {\n return this._active.lastT();\n };\n proto.setMode = function(mode) {\n if (mode === this._mode) {\n return;\n }\n var idx = this._controllerNames.indexOf(mode);\n if (idx < 0) {\n return;\n }\n var prev = this._active;\n var next = this._controllerList[idx];\n var lastT = Math.max(prev.lastT(), next.lastT());\n prev.recalcMatrix(lastT);\n next.setMatrix(lastT, prev.computedMatrix);\n this._active = next;\n this._mode = mode;\n this.computedMatrix = this._active.computedMatrix;\n this.computedEye = this._active.computedEye;\n this.computedUp = this._active.computedUp;\n this.computedCenter = this._active.computedCenter;\n this.computedRadius = this._active.computedRadius;\n };\n proto.getMode = function() {\n return this._mode;\n };\n function createViewController(options) {\n options = options || {};\n var eye = options.eye || [0, 0, 1];\n var center = options.center || [0, 0, 0];\n var up = options.up || [0, 1, 0];\n var limits = options.distanceLimits || [0, Infinity];\n var mode = options.mode || \"turntable\";\n var turntable = createTurntable();\n var orbit = createOrbit();\n var matrix = createMatrix();\n turntable.setDistanceLimits(limits[0], limits[1]);\n turntable.lookAt(0, eye, center, up);\n orbit.setDistanceLimits(limits[0], limits[1]);\n orbit.lookAt(0, eye, center, up);\n matrix.setDistanceLimits(limits[0], limits[1]);\n matrix.lookAt(0, eye, center, up);\n return new ViewController({\n turntable,\n orbit,\n matrix\n }, mode);\n }\n }\n ),\n /***/\n 7169: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var weakMap = typeof WeakMap === \"undefined\" ? __webpack_require__2(1538) : WeakMap;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var TriangleCache = new weakMap();\n function createABigTriangle(gl2) {\n var triangleVAO = TriangleCache.get(gl2);\n var handle = triangleVAO && (triangleVAO._triangleBuffer.handle || triangleVAO._triangleBuffer.buffer);\n if (!handle || !gl2.isBuffer(handle)) {\n var buf = createBuffer(gl2, new Float32Array([-1, -1, -1, 4, 4, -1]));\n triangleVAO = createVAO(gl2, [\n {\n buffer: buf,\n type: gl2.FLOAT,\n size: 2\n }\n ]);\n triangleVAO._triangleBuffer = buf;\n TriangleCache.set(gl2, triangleVAO);\n }\n triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, 3);\n triangleVAO.unbind();\n }\n module2.exports = createABigTriangle;\n }\n ),\n /***/\n 1085: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var padLeft = __webpack_require__2(1371);\n module2.exports = addLineNumbers;\n function addLineNumbers(string, start, delim) {\n start = typeof start === \"number\" ? start : 1;\n delim = delim || \": \";\n var lines = string.split(/\\r?\\n/);\n var totalDigits = String(lines.length + start - 1).length;\n return lines.map(function(line, i) {\n var c = i + start;\n var digits = String(c).length;\n var prefix = padLeft(c, totalDigits - digits);\n return prefix + delim + line;\n }).join(\"\\n\");\n }\n }\n ),\n /***/\n 3952: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = affineHull;\n var orient = __webpack_require__2(3250);\n function linearlyIndependent(points, d) {\n var nhull = new Array(d + 1);\n for (var i = 0; i < points.length; ++i) {\n nhull[i] = points[i];\n }\n for (var i = 0; i <= points.length; ++i) {\n for (var j = points.length; j <= d; ++j) {\n var x = new Array(d);\n for (var k = 0; k < d; ++k) {\n x[k] = Math.pow(j + 1 - i, k);\n }\n nhull[j] = x;\n }\n var o = orient.apply(void 0, nhull);\n if (o) {\n return true;\n }\n }\n return false;\n }\n function affineHull(points) {\n var n = points.length;\n if (n === 0) {\n return [];\n }\n if (n === 1) {\n return [0];\n }\n var d = points[0].length;\n var frame = [points[0]];\n var index = [0];\n for (var i = 1; i < n; ++i) {\n frame.push(points[i]);\n if (!linearlyIndependent(frame, d)) {\n frame.pop();\n continue;\n }\n index.push(i);\n if (index.length === d + 1) {\n return index;\n }\n }\n return index;\n }\n }\n ),\n /***/\n 5995: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = alphaComplex;\n var delaunay = __webpack_require__2(7642);\n var circumradius = __webpack_require__2(6037);\n function alphaComplex(alpha, points) {\n return delaunay(points).filter(function(cell) {\n var simplex = new Array(cell.length);\n for (var i = 0; i < cell.length; ++i) {\n simplex[i] = points[cell[i]];\n }\n return circumradius(simplex) * alpha < 1;\n });\n }\n }\n ),\n /***/\n 3502: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = alphaShape;\n var ac = __webpack_require__2(5995);\n var bnd = __webpack_require__2(9127);\n function alphaShape(alpha, points) {\n return bnd(ac(alpha, points));\n }\n }\n ),\n /***/\n 6468: (\n /***/\n function(module2) {\n module2.exports = function _atob(str) {\n return atob(str);\n };\n }\n ),\n /***/\n 2642: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = barycentric;\n var solve = __webpack_require__2(727);\n function reduce(x) {\n var r = 0;\n for (var i = 0; i < x.length; ++i) {\n r += x[i];\n }\n return r;\n }\n function barycentric(simplex, point) {\n var d = point.length;\n var A2 = new Array(d + 1);\n for (var i = 0; i < d; ++i) {\n var row = new Array(d + 1);\n for (var j = 0; j <= d; ++j) {\n row[j] = simplex[j][i];\n }\n A2[i] = row;\n }\n A2[d] = new Array(d + 1);\n for (var i = 0; i <= d; ++i) {\n A2[d][i] = 1;\n }\n var b = new Array(d + 1);\n for (var i = 0; i < d; ++i) {\n b[i] = point[i];\n }\n b[d] = 1;\n var x = solve(A2, b);\n var w = reduce(x[d + 1]);\n if (w === 0) {\n w = 1;\n }\n var y = new Array(d + 1);\n for (var i = 0; i <= d; ++i) {\n y[i] = reduce(x[i]) / w;\n }\n return y;\n }\n }\n ),\n /***/\n 7507: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n exports2.byteLength = byteLength;\n exports2.toByteArray = toByteArray;\n exports2.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n }\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function 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 function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join(\"\");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(\n lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\"\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(\n lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\"\n );\n }\n return parts.join(\"\");\n }\n }\n ),\n /***/\n 3865: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rationalize = __webpack_require__2(869);\n module2.exports = add;\n function add(a, b) {\n return rationalize(\n a[0].mul(b[1]).add(b[0].mul(a[1])),\n a[1].mul(b[1])\n );\n }\n }\n ),\n /***/\n 1318: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = cmp;\n function cmp(a, b) {\n return a[0].mul(b[1]).cmp(b[0].mul(a[1]));\n }\n }\n ),\n /***/\n 8697: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rationalize = __webpack_require__2(869);\n module2.exports = div;\n function div(a, b) {\n return rationalize(a[0].mul(b[1]), a[1].mul(b[0]));\n }\n }\n ),\n /***/\n 7842: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var isRat = __webpack_require__2(6330);\n var isBN = __webpack_require__2(1533);\n var num2bn = __webpack_require__2(2651);\n var str2bn = __webpack_require__2(6768);\n var rationalize = __webpack_require__2(869);\n var div = __webpack_require__2(8697);\n module2.exports = makeRational;\n function makeRational(numer, denom) {\n if (isRat(numer)) {\n if (denom) {\n return div(numer, makeRational(denom));\n }\n return [numer[0].clone(), numer[1].clone()];\n }\n var shift = 0;\n var a, b;\n if (isBN(numer)) {\n a = numer.clone();\n } else if (typeof numer === \"string\") {\n a = str2bn(numer);\n } else if (numer === 0) {\n return [num2bn(0), num2bn(1)];\n } else if (numer === Math.floor(numer)) {\n a = num2bn(numer);\n } else {\n while (numer !== Math.floor(numer)) {\n numer = numer * Math.pow(2, 256);\n shift -= 256;\n }\n a = num2bn(numer);\n }\n if (isRat(denom)) {\n a.mul(denom[1]);\n b = denom[0].clone();\n } else if (isBN(denom)) {\n b = denom.clone();\n } else if (typeof denom === \"string\") {\n b = str2bn(denom);\n } else if (!denom) {\n b = num2bn(1);\n } else if (denom === Math.floor(denom)) {\n b = num2bn(denom);\n } else {\n while (denom !== Math.floor(denom)) {\n denom = denom * Math.pow(2, 256);\n shift += 256;\n }\n b = num2bn(denom);\n }\n if (shift > 0) {\n a = a.ushln(shift);\n } else if (shift < 0) {\n b = b.ushln(-shift);\n }\n return rationalize(a, b);\n }\n }\n ),\n /***/\n 6330: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var isBN = __webpack_require__2(1533);\n module2.exports = isRat;\n function isRat(x) {\n return Array.isArray(x) && x.length === 2 && isBN(x[0]) && isBN(x[1]);\n }\n }\n ),\n /***/\n 5716: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var BN = __webpack_require__2(6859);\n module2.exports = sign;\n function sign(x) {\n return x.cmp(new BN(0));\n }\n }\n ),\n /***/\n 1369: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var sign = __webpack_require__2(5716);\n module2.exports = bn2num;\n function bn2num(b) {\n var l = b.length;\n var words = b.words;\n var out = 0;\n if (l === 1) {\n out = words[0];\n } else if (l === 2) {\n out = words[0] + words[1] * 67108864;\n } else {\n for (var i = 0; i < l; i++) {\n var w = words[i];\n out += w * Math.pow(67108864, i);\n }\n }\n return sign(b) * out;\n }\n }\n ),\n /***/\n 4025: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var db = __webpack_require__2(2361);\n var ctz = __webpack_require__2(8828).countTrailingZeros;\n module2.exports = ctzNumber;\n function ctzNumber(x) {\n var l = ctz(db.lo(x));\n if (l < 32) {\n return l;\n }\n var h = ctz(db.hi(x));\n if (h > 20) {\n return 52;\n }\n return h + 32;\n }\n }\n ),\n /***/\n 1533: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var BN = __webpack_require__2(6859);\n module2.exports = isBN;\n function isBN(x) {\n return x && typeof x === \"object\" && Boolean(x.words);\n }\n }\n ),\n /***/\n 2651: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var BN = __webpack_require__2(6859);\n var db = __webpack_require__2(2361);\n module2.exports = num2bn;\n function num2bn(x) {\n var e = db.exponent(x);\n if (e < 52) {\n return new BN(x);\n } else {\n return new BN(x * Math.pow(2, 52 - e)).ushln(e - 52);\n }\n }\n }\n ),\n /***/\n 869: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var num2bn = __webpack_require__2(2651);\n var sign = __webpack_require__2(5716);\n module2.exports = rationalize;\n function rationalize(numer, denom) {\n var snumer = sign(numer);\n var sdenom = sign(denom);\n if (snumer === 0) {\n return [num2bn(0), num2bn(1)];\n }\n if (sdenom === 0) {\n return [num2bn(0), num2bn(0)];\n }\n if (sdenom < 0) {\n numer = numer.neg();\n denom = denom.neg();\n }\n var d = numer.gcd(denom);\n if (d.cmpn(1)) {\n return [numer.div(d), denom.div(d)];\n }\n return [numer, denom];\n }\n }\n ),\n /***/\n 6768: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var BN = __webpack_require__2(6859);\n module2.exports = str2BN;\n function str2BN(x) {\n return new BN(x);\n }\n }\n ),\n /***/\n 6504: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rationalize = __webpack_require__2(869);\n module2.exports = mul;\n function mul(a, b) {\n return rationalize(a[0].mul(b[0]), a[1].mul(b[1]));\n }\n }\n ),\n /***/\n 7721: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bnsign = __webpack_require__2(5716);\n module2.exports = sign;\n function sign(x) {\n return bnsign(x[0]) * bnsign(x[1]);\n }\n }\n ),\n /***/\n 5572: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rationalize = __webpack_require__2(869);\n module2.exports = sub;\n function sub(a, b) {\n return rationalize(a[0].mul(b[1]).sub(a[1].mul(b[0])), a[1].mul(b[1]));\n }\n }\n ),\n /***/\n 946: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bn2num = __webpack_require__2(1369);\n var ctz = __webpack_require__2(4025);\n module2.exports = roundRat;\n function roundRat(f) {\n var a = f[0];\n var b = f[1];\n if (a.cmpn(0) === 0) {\n return 0;\n }\n var h = a.abs().divmod(b.abs());\n var iv = h.div;\n var x = bn2num(iv);\n var ir = h.mod;\n var sgn = a.negative !== b.negative ? -1 : 1;\n if (ir.cmpn(0) === 0) {\n return sgn * x;\n }\n if (x) {\n var s = ctz(x) + 4;\n var y = bn2num(ir.ushln(s).divRound(b));\n return sgn * (x + y * Math.pow(2, -s));\n } else {\n var ybits = b.bitLength() - ir.bitLength() + 53;\n var y = bn2num(ir.ushln(ybits).divRound(b));\n if (ybits < 1023) {\n return sgn * y * Math.pow(2, -ybits);\n }\n y *= Math.pow(2, -1023);\n return sgn * y * Math.pow(2, 1023 - ybits);\n }\n }\n }\n ),\n /***/\n 2478: (\n /***/\n function(module2) {\n \"use strict\";\n function ge(a, y, c, l, h) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p >= 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n }\n ;\n function gt(a, y, c, l, h) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p > 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n }\n ;\n function lt(a, y, c, l, h) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p < 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n }\n ;\n function le(a, y, c, l, h) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p <= 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n }\n ;\n function eq(a, y, c, l, h) {\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p === 0) {\n return m;\n }\n if (p <= 0) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return -1;\n }\n ;\n function norm(a, y, c, l, h, f) {\n if (typeof c === \"function\") {\n return f(a, y, c, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0);\n }\n return f(a, y, void 0, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0);\n }\n module2.exports = {\n ge: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, ge);\n },\n gt: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, gt);\n },\n lt: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, lt);\n },\n le: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, le);\n },\n eq: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, eq);\n }\n };\n }\n ),\n /***/\n 8828: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n \"use restrict\";\n var INT_BITS = 32;\n exports2.INT_BITS = INT_BITS;\n exports2.INT_MAX = 2147483647;\n exports2.INT_MIN = -1 << INT_BITS - 1;\n exports2.sign = function(v) {\n return (v > 0) - (v < 0);\n };\n exports2.abs = function(v) {\n var mask = v >> INT_BITS - 1;\n return (v ^ mask) - mask;\n };\n exports2.min = function(x, y) {\n return y ^ (x ^ y) & -(x < y);\n };\n exports2.max = function(x, y) {\n return x ^ (x ^ y) & -(x < y);\n };\n exports2.isPow2 = function(v) {\n return !(v & v - 1) && !!v;\n };\n exports2.log2 = function(v) {\n var r, shift;\n r = (v > 65535) << 4;\n v >>>= r;\n shift = (v > 255) << 3;\n v >>>= shift;\n r |= shift;\n shift = (v > 15) << 2;\n v >>>= shift;\n r |= shift;\n shift = (v > 3) << 1;\n v >>>= shift;\n r |= shift;\n return r | v >> 1;\n };\n exports2.log10 = function(v) {\n return v >= 1e9 ? 9 : v >= 1e8 ? 8 : v >= 1e7 ? 7 : v >= 1e6 ? 6 : v >= 1e5 ? 5 : v >= 1e4 ? 4 : v >= 1e3 ? 3 : v >= 100 ? 2 : v >= 10 ? 1 : 0;\n };\n exports2.popCount = function(v) {\n v = v - (v >>> 1 & 1431655765);\n v = (v & 858993459) + (v >>> 2 & 858993459);\n return (v + (v >>> 4) & 252645135) * 16843009 >>> 24;\n };\n function countTrailingZeros(v) {\n var c = 32;\n v &= -v;\n if (v) c--;\n if (v & 65535) c -= 16;\n if (v & 16711935) c -= 8;\n if (v & 252645135) c -= 4;\n if (v & 858993459) c -= 2;\n if (v & 1431655765) c -= 1;\n return c;\n }\n exports2.countTrailingZeros = countTrailingZeros;\n exports2.nextPow2 = function(v) {\n v += v === 0;\n --v;\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v + 1;\n };\n exports2.prevPow2 = function(v) {\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v - (v >>> 1);\n };\n exports2.parity = function(v) {\n v ^= v >>> 16;\n v ^= v >>> 8;\n v ^= v >>> 4;\n v &= 15;\n return 27030 >>> v & 1;\n };\n var REVERSE_TABLE = new Array(256);\n (function(tab) {\n for (var i = 0; i < 256; ++i) {\n var v = i, r = i, s = 7;\n for (v >>>= 1; v; v >>>= 1) {\n r <<= 1;\n r |= v & 1;\n --s;\n }\n tab[i] = r << s & 255;\n }\n })(REVERSE_TABLE);\n exports2.reverse = function(v) {\n return REVERSE_TABLE[v & 255] << 24 | REVERSE_TABLE[v >>> 8 & 255] << 16 | REVERSE_TABLE[v >>> 16 & 255] << 8 | REVERSE_TABLE[v >>> 24 & 255];\n };\n exports2.interleave2 = function(x, y) {\n x &= 65535;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y &= 65535;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n };\n exports2.deinterleave2 = function(v, n) {\n v = v >>> n & 1431655765;\n v = (v | v >>> 1) & 858993459;\n v = (v | v >>> 2) & 252645135;\n v = (v | v >>> 4) & 16711935;\n v = (v | v >>> 16) & 65535;\n return v << 16 >> 16;\n };\n exports2.interleave3 = function(x, y, z) {\n x &= 1023;\n x = (x | x << 16) & 4278190335;\n x = (x | x << 8) & 251719695;\n x = (x | x << 4) & 3272356035;\n x = (x | x << 2) & 1227133513;\n y &= 1023;\n y = (y | y << 16) & 4278190335;\n y = (y | y << 8) & 251719695;\n y = (y | y << 4) & 3272356035;\n y = (y | y << 2) & 1227133513;\n x |= y << 1;\n z &= 1023;\n z = (z | z << 16) & 4278190335;\n z = (z | z << 8) & 251719695;\n z = (z | z << 4) & 3272356035;\n z = (z | z << 2) & 1227133513;\n return x | z << 2;\n };\n exports2.deinterleave3 = function(v, n) {\n v = v >>> n & 1227133513;\n v = (v | v >>> 2) & 3272356035;\n v = (v | v >>> 4) & 251719695;\n v = (v | v >>> 8) & 4278190335;\n v = (v | v >>> 16) & 1023;\n return v << 22 >> 22;\n };\n exports2.nextCombination = function(v) {\n var t = v | v - 1;\n return t + 1 | (~t & -~t) - 1 >>> countTrailingZeros(v) + 1;\n };\n }\n ),\n /***/\n 6859: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2 = __webpack_require__2.nmd(module2);\n (function(module3, exports2) {\n \"use strict\";\n function assert(val, msg) {\n if (!val) throw new Error(msg || \"Assertion failed\");\n }\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n this.negative = 0;\n this.words = null;\n this.length = 0;\n this.red = null;\n if (number !== null) {\n if (base === \"le\" || base === \"be\") {\n endian = base;\n base = 10;\n }\n this._init(number || 0, base || 10, endian || \"be\");\n }\n }\n if (typeof module3 === \"object\") {\n module3.exports = BN;\n } else {\n exports2.BN = BN;\n }\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer2;\n try {\n if (typeof window !== \"undefined\" && typeof window.Buffer !== \"undefined\") {\n Buffer2 = window.Buffer;\n } else {\n Buffer2 = __webpack_require__2(7790).Buffer;\n }\n } catch (e) {\n }\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n return num !== null && typeof num === \"object\" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === \"number\") {\n return this._initNumber(number, base, endian);\n }\n if (typeof number === \"object\") {\n return this._initArray(number, base, endian);\n }\n if (base === \"hex\") {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, \"\");\n var start = 0;\n if (number[0] === \"-\") {\n start++;\n this.negative = 1;\n }\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === \"le\") {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 67108864) {\n this.words = [number & 67108863];\n this.length = 1;\n } else if (number < 4503599627370496) {\n this.words = [\n number & 67108863,\n number / 67108864 & 67108863\n ];\n this.length = 2;\n } else {\n assert(number < 9007199254740992);\n this.words = [\n number & 67108863,\n number / 67108864 & 67108863,\n 1\n ];\n this.length = 3;\n }\n if (endian !== \"le\") return;\n this._initArray(this.toArray(), base, endian);\n };\n BN.prototype._initArray = function _initArray(number, base, endian) {\n assert(typeof number.length === \"number\");\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n var j, w;\n var off = 0;\n if (endian === \"be\") {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 67108863;\n this.words[j + 1] = w >>> 26 - off & 67108863;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === \"le\") {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 67108863;\n this.words[j + 1] = w >>> 26 - off & 67108863;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index);\n if (c >= 65 && c <= 70) {\n return c - 55;\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n return c - 48 & 15;\n }\n }\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n var off = 0;\n var j = 0;\n var w;\n if (endian === \"be\") {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 67108863;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 67108863;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n this.strip();\n };\n function parseBase(str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul;\n if (c >= 49) {\n r += c - 49 + 10;\n } else if (c >= 17) {\n r += c - 17 + 10;\n } else {\n r += c;\n }\n }\n return r;\n }\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n this.words = [0];\n this.length = 1;\n for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n if (this.words[0] + word < 67108864) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n this.imuln(pow);\n if (this.words[0] + word < 67108864) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n this.strip();\n };\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n BN.prototype._normSign = function _normSign() {\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n BN.prototype.inspect = function inspect() {\n return (this.red ? \"\";\n };\n var zeros = [\n \"\",\n \"0\",\n \"00\",\n \"000\",\n \"0000\",\n \"00000\",\n \"000000\",\n \"0000000\",\n \"00000000\",\n \"000000000\",\n \"0000000000\",\n \"00000000000\",\n \"000000000000\",\n \"0000000000000\",\n \"00000000000000\",\n \"000000000000000\",\n \"0000000000000000\",\n \"00000000000000000\",\n \"000000000000000000\",\n \"0000000000000000000\",\n \"00000000000000000000\",\n \"000000000000000000000\",\n \"0000000000000000000000\",\n \"00000000000000000000000\",\n \"000000000000000000000000\",\n \"0000000000000000000000000\"\n ];\n var groupSizes = [\n 0,\n 0,\n 25,\n 16,\n 12,\n 11,\n 10,\n 9,\n 8,\n 8,\n 7,\n 7,\n 7,\n 7,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5\n ];\n var groupBases = [\n 0,\n 0,\n 33554432,\n 43046721,\n 16777216,\n 48828125,\n 60466176,\n 40353607,\n 16777216,\n 43046721,\n 1e7,\n 19487171,\n 35831808,\n 62748517,\n 7529536,\n 11390625,\n 16777216,\n 24137569,\n 34012224,\n 47045881,\n 64e6,\n 4084101,\n 5153632,\n 6436343,\n 7962624,\n 9765625,\n 11881376,\n 14348907,\n 17210368,\n 20511149,\n 243e5,\n 28629151,\n 33554432,\n 39135393,\n 45435424,\n 52521875,\n 60466176\n ];\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n if (base === 16 || base === \"hex\") {\n out = \"\";\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 16777215).toString(16);\n carry = w >>> 24 - off & 16777215;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = \"0\" + out;\n }\n if (this.negative !== 0) {\n out = \"-\" + out;\n }\n return out;\n }\n if (base === (base | 0) && base >= 2 && base <= 36) {\n var groupSize = groupSizes[base];\n var groupBase = groupBases[base];\n out = \"\";\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = \"0\" + out;\n }\n while (out.length % padding !== 0) {\n out = \"0\" + out;\n }\n if (this.negative !== 0) {\n out = \"-\" + out;\n }\n return out;\n }\n assert(false, \"Base should be between 2 and 36\");\n };\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 67108864;\n } else if (this.length === 3 && this.words[2] === 1) {\n ret += 4503599627370496 + this.words[1] * 67108864;\n } else if (this.length > 2) {\n assert(false, \"Number can only safely store up to 53 bits\");\n }\n return this.negative !== 0 ? -ret : ret;\n };\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16);\n };\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n assert(typeof Buffer2 !== \"undefined\");\n return this.toArrayLike(Buffer2, endian, length);\n };\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, \"byte array longer than desired length\");\n assert(reqLength > 0, \"Requested array length <= 0\");\n this.strip();\n var littleEndian = endian === \"le\";\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(255);\n q.iushrn(8);\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(255);\n q.iushrn(8);\n res[i] = b;\n }\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n return res;\n };\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n if (t >= 4096) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 64) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 2) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n BN.prototype._zeroBits = function _zeroBits(w) {\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n if ((t & 8191) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 127) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 15) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 1) === 0) {\n r++;\n }\n return r;\n };\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n return w;\n }\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n };\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n return this;\n };\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n return this.strip();\n };\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n BN.prototype.iuand = function iuand(num) {\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n this.length = b.length;\n return this.strip();\n };\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n BN.prototype.iuxor = function iuxor(num) {\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n this.length = a.length;\n return this.strip();\n };\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === \"number\" && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n this._expand(bytesNeeded);\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 67108863;\n }\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;\n }\n return this.strip();\n };\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n };\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === \"number\" && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n this._expand(off + 1);\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n return this.strip();\n };\n BN.prototype.iadd = function iadd(num) {\n var r;\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 67108863;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 67108863;\n carry = r >>> 26;\n }\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n return this;\n };\n BN.prototype.add = function add(num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n };\n BN.prototype.isub = function isub(num) {\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n var cmp = this.cmp(num);\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 67108863;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 67108863;\n }\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n this.length = Math.max(this.length, i);\n if (a !== this) {\n this.negative = 1;\n }\n return this.strip();\n };\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n function smallMulTo(self2, num, out) {\n out.negative = num.negative ^ self2.negative;\n var len = self2.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0;\n var a = self2.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 67108863;\n var carry = r / 67108864 | 0;\n out.words[0] = lo;\n for (var k = 1; k < len; k++) {\n var ncarry = carry >>> 26;\n var rword = carry & 67108863;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self2.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 67108864 | 0;\n rword = r & 67108863;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n return out.strip();\n }\n var comb10MulTo = function comb10MulTo2(self2, num, out) {\n var a = self2.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 8191;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 8191;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 8191;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 8191;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 8191;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 8191;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 8191;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 8191;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 8191;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 8191;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 8191;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 8191;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 8191;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 8191;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 8191;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 8191;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 8191;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 8191;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 8191;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 8191;\n var bh9 = b9 >>> 13;\n out.negative = self2.negative ^ num.negative;\n out.length = 19;\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 67108863;\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 67108863;\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 67108863;\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 67108863;\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 67108863;\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 67108863;\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 67108863;\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 67108863;\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 67108863;\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 67108863;\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 67108863;\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 67108863;\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 67108863;\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 67108863;\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 67108863;\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 67108863;\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 67108863;\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 67108863;\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 67108863;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n function bigMulTo(self2, num, out) {\n out.negative = num.negative ^ self2.negative;\n out.length = self2.length + num.length;\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 67108863;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self2.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 67108863;\n ncarry = ncarry + (r / 67108864 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 67108863;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 67108863;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n return out.strip();\n }\n function jumboMulTo(self2, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self2, num, out);\n }\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n return res;\n };\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n return t;\n };\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n return rb;\n };\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n return 1 << i + 1 + odd;\n };\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 67108863;\n if (w < 67108864) {\n carry = 0;\n } else {\n carry = w / 67108864 | 0;\n }\n }\n return ws;\n };\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 8191;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 8191;\n carry = carry >>> 13;\n }\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n assert(carry === 0);\n assert((carry & ~8191) === 0);\n };\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n return ph;\n };\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n var _ = this.stub(N);\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n BN.prototype.imuln = function imuln(num) {\n assert(typeof num === \"number\");\n assert(num < 67108864);\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 67108863) + (carry & 67108863);\n carry >>= 26;\n carry += w / 67108864 | 0;\n carry += lo >>> 26;\n this.words[i] = lo & 67108863;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n };\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n };\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n };\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n return res;\n };\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === \"number\" && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 67108863 >>> 26 - r << 26 - r;\n var i;\n if (r !== 0) {\n var carry = 0;\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n this.length += s;\n }\n return this.strip();\n };\n BN.prototype.ishln = function ishln(bits) {\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === \"number\" && bits >= 0);\n var h;\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 67108863 ^ 67108863 >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h);\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n if (s === 0) {\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n }\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n return this.strip();\n };\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n };\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n };\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === \"number\" && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n if (this.length <= s) return false;\n var w = this.words[s];\n return !!(w & q);\n };\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === \"number\" && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, \"imaskn works only with positive numbers\");\n if (this.length <= s) {\n return this;\n }\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n if (r !== 0) {\n var mask = 67108863 ^ 67108863 >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n return this.strip();\n };\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n };\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === \"number\");\n assert(num < 67108864);\n if (num < 0) return this.isubn(-num);\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n return this._iaddn(num);\n };\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num;\n for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) {\n this.words[i] -= 67108864;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n return this;\n };\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === \"number\");\n assert(num < 67108864);\n if (num < 0) return this.iaddn(-num);\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n this.words[0] -= num;\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 67108864;\n this.words[i + 1] -= 1;\n }\n }\n return this.strip();\n };\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n this._expand(len);\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 67108863;\n carry = (w >> 26) - (right / 67108864 | 0);\n this.words[i + shift] = w & 67108863;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 67108863;\n }\n if (carry === 0) return this.strip();\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 67108863;\n }\n this.negative = 1;\n return this.strip();\n };\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num;\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n var m = a.length - b.length;\n var q;\n if (mode !== \"mod\") {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);\n qj = Math.min(qj / bhi | 0, 67108863);\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n if (mode !== \"div\" && shift !== 0) {\n a.iushrn(shift);\n }\n return {\n div: q || null,\n mod: a\n };\n };\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n if (mode !== \"mod\") {\n div = res.div.neg();\n }\n if (mode !== \"div\") {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n return {\n div,\n mod\n };\n }\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n if (mode !== \"mod\") {\n div = res.div.neg();\n }\n return {\n div,\n mod: res.mod\n };\n }\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n if (mode !== \"div\") {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n return {\n div: res.div,\n mod\n };\n }\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n if (num.length === 1) {\n if (mode === \"div\") {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n if (mode === \"mod\") {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n return this._wordDiv(num, mode);\n };\n BN.prototype.div = function div(num) {\n return this.divmod(num, \"div\", false).div;\n };\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, \"mod\", false).mod;\n };\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, \"mod\", true).mod;\n };\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num);\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n BN.prototype.modn = function modn(num) {\n assert(num <= 67108863);\n var p = (1 << 26) % num;\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n return acc;\n };\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 67108863);\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 67108864;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n return this.strip();\n };\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n var A2 = new BN(1);\n var B2 = new BN(0);\n var C2 = new BN(0);\n var D2 = new BN(1);\n var g = 0;\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n var yp = y.clone();\n var xp = x.clone();\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) ;\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A2.isOdd() || B2.isOdd()) {\n A2.iadd(yp);\n B2.isub(xp);\n }\n A2.iushrn(1);\n B2.iushrn(1);\n }\n }\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) ;\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C2.isOdd() || D2.isOdd()) {\n C2.iadd(yp);\n D2.isub(xp);\n }\n C2.iushrn(1);\n D2.iushrn(1);\n }\n }\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A2.isub(C2);\n B2.isub(D2);\n } else {\n y.isub(x);\n C2.isub(A2);\n D2.isub(B2);\n }\n }\n return {\n a: C2,\n b: D2,\n gcd: y.iushln(g)\n };\n };\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) ;\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n x1.iushrn(1);\n }\n }\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) ;\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n x2.iushrn(1);\n }\n }\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n return res;\n };\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n var r = a.cmp(b);\n if (r < 0) {\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n a.isub(b);\n } while (true);\n return b.iushln(shift);\n };\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n };\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n };\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === \"number\");\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 67108863;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n assert(num <= 67108863, \"Number is too big\");\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n BN.prototype.ucmp = function ucmp(num) {\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n };\n BN.red = function red(num) {\n return new Red(num);\n };\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, \"Already a number in reduction context\");\n assert(this.negative === 0, \"red works only with positives\");\n return ctx.convertTo(this)._forceRed(ctx);\n };\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, \"fromRed works only with numbers in reduction context\");\n return this.red.convertFrom(this);\n };\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, \"Already a number in reduction context\");\n return this._forceRed(ctx);\n };\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, \"redAdd works only with red numbers\");\n return this.red.add(this, num);\n };\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, \"redIAdd works only with red numbers\");\n return this.red.iadd(this, num);\n };\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, \"redSub works only with red numbers\");\n return this.red.sub(this, num);\n };\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, \"redISub works only with red numbers\");\n return this.red.isub(this, num);\n };\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, \"redShl works only with red numbers\");\n return this.red.shl(this, num);\n };\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, \"redMul works only with red numbers\");\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, \"redMul works only with red numbers\");\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, \"redSqr works only with red numbers\");\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, \"redISqr works only with red numbers\");\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, \"redSqrt works only with red numbers\");\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, \"redInvm works only with red numbers\");\n this.red._verify1(this);\n return this.red.invm(this);\n };\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, \"redNeg works only with red numbers\");\n this.red._verify1(this);\n return this.red.neg(this);\n };\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, \"redPow(normalNum)\");\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n function MPrime(name2, p) {\n this.name = name2;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n MPrime.prototype.ireduce = function ireduce(num) {\n var r = num;\n var rlen;\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== void 0) {\n r.strip();\n } else {\n r._strip();\n }\n }\n return r;\n };\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n function K256() {\n MPrime.call(\n this,\n \"k256\",\n \"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\"\n );\n }\n inherits(K256, MPrime);\n K256.prototype.split = function split(input, output) {\n var mask = 4194303;\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n K256.prototype.imulK = function imulK(num) {\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 977;\n num.words[i] = lo & 67108863;\n lo = w * 64 + (lo / 67108864 | 0);\n }\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n function P224() {\n MPrime.call(\n this,\n \"p224\",\n \"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\"\n );\n }\n inherits(P224, MPrime);\n function P192() {\n MPrime.call(\n this,\n \"p192\",\n \"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\"\n );\n }\n inherits(P192, MPrime);\n function P25519() {\n MPrime.call(\n this,\n \"25519\",\n \"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\"\n );\n }\n inherits(P25519, MPrime);\n P25519.prototype.imulK = function imulK(num) {\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 19 + carry;\n var lo = hi & 67108863;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n BN._prime = function prime(name2) {\n if (primes[name2]) return primes[name2];\n var prime2;\n if (name2 === \"k256\") {\n prime2 = new K256();\n } else if (name2 === \"p224\") {\n prime2 = new P224();\n } else if (name2 === \"p192\") {\n prime2 = new P192();\n } else if (name2 === \"p25519\") {\n prime2 = new P25519();\n } else {\n throw new Error(\"Unknown prime \" + name2);\n }\n primes[name2] = prime2;\n return prime2;\n };\n function Red(m) {\n if (typeof m === \"string\") {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), \"modulus must be greater than 1\");\n this.m = m;\n this.prime = null;\n }\n }\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, \"red works only with positives\");\n assert(a.red, \"red works only with red numbers\");\n };\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, \"red works only with positives\");\n assert(\n a.red && a.red === b.red,\n \"red works only with red numbers\"\n );\n };\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n return this.m.sub(a)._forceRed(this);\n };\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n var one2 = new BN(1).toRed(this);\n var nOne = one2.redNeg();\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one2) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one2) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n return r;\n };\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n return res;\n };\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n return res._forceRed(this);\n };\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n return res._forceRed(this);\n };\n Mont.prototype.invm = function invm(a) {\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n })(module2, this);\n }\n ),\n /***/\n 6204: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = boundary;\n function boundary(cells) {\n var i, j, k;\n var n = cells.length;\n var sz = 0;\n for (i = 0; i < n; ++i) {\n sz += cells[i].length;\n }\n var result = new Array(sz);\n var ptr = 0;\n for (i = 0; i < n; ++i) {\n var c = cells[i];\n var d = c.length;\n for (j = 0; j < d; ++j) {\n var b = result[ptr++] = new Array(d - 1);\n var p = 0;\n for (k = 0; k < d; ++k) {\n if (k === j) {\n continue;\n }\n b[p++] = c[k];\n }\n if (j & 1) {\n var tmp = b[1];\n b[1] = b[0];\n b[0] = tmp;\n }\n }\n }\n return result;\n }\n }\n ),\n /***/\n 6867: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = boxIntersectWrapper;\n var pool = __webpack_require__2(1888);\n var sweep = __webpack_require__2(855);\n var boxIntersectIter = __webpack_require__2(7150);\n function boxEmpty(d, box) {\n for (var j = 0; j < d; ++j) {\n if (!(box[j] <= box[j + d])) {\n return true;\n }\n }\n return false;\n }\n function convertBoxes(boxes, d, data, ids) {\n var ptr = 0;\n var count = 0;\n for (var i = 0, n = boxes.length; i < n; ++i) {\n var b = boxes[i];\n if (boxEmpty(d, b)) {\n continue;\n }\n for (var j = 0; j < 2 * d; ++j) {\n data[ptr++] = b[j];\n }\n ids[count++] = i;\n }\n return count;\n }\n function boxIntersect(red, blue, visit, full) {\n var n = red.length;\n var m = blue.length;\n if (n <= 0 || m <= 0) {\n return;\n }\n var d = red[0].length >>> 1;\n if (d <= 0) {\n return;\n }\n var retval;\n var redList = pool.mallocDouble(2 * d * n);\n var redIds = pool.mallocInt32(n);\n n = convertBoxes(red, d, redList, redIds);\n if (n > 0) {\n if (d === 1 && full) {\n sweep.init(n);\n retval = sweep.sweepComplete(\n d,\n visit,\n 0,\n n,\n redList,\n redIds,\n 0,\n n,\n redList,\n redIds\n );\n } else {\n var blueList = pool.mallocDouble(2 * d * m);\n var blueIds = pool.mallocInt32(m);\n m = convertBoxes(blue, d, blueList, blueIds);\n if (m > 0) {\n sweep.init(n + m);\n if (d === 1) {\n retval = sweep.sweepBipartite(\n d,\n visit,\n 0,\n n,\n redList,\n redIds,\n 0,\n m,\n blueList,\n blueIds\n );\n } else {\n retval = boxIntersectIter(\n d,\n visit,\n full,\n n,\n redList,\n redIds,\n m,\n blueList,\n blueIds\n );\n }\n pool.free(blueList);\n pool.free(blueIds);\n }\n }\n pool.free(redList);\n pool.free(redIds);\n }\n return retval;\n }\n var RESULT;\n function appendItem(i, j) {\n RESULT.push([i, j]);\n }\n function intersectFullArray(x) {\n RESULT = [];\n boxIntersect(x, x, appendItem, true);\n return RESULT;\n }\n function intersectBipartiteArray(x, y) {\n RESULT = [];\n boxIntersect(x, y, appendItem, false);\n return RESULT;\n }\n function boxIntersectWrapper(arg0, arg1, arg2) {\n switch (arguments.length) {\n case 1:\n return intersectFullArray(arg0);\n case 2:\n if (typeof arg1 === \"function\") {\n return boxIntersect(arg0, arg0, arg1, true);\n } else {\n return intersectBipartiteArray(arg0, arg1);\n }\n case 3:\n return boxIntersect(arg0, arg1, arg2, false);\n default:\n throw new Error(\"box-intersect: Invalid arguments\");\n }\n }\n }\n ),\n /***/\n 2455: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n function full() {\n function bruteForceRedFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n Q: for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], y1 = bb[ax + bp + d], yi = bi[j];\n if (y1 < x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(xi, yi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceBlueFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], y1 = bb[ax + bp + d], yi = bi[j];\n Q: for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n if (y1 < x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(xi, yi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n if (re - rs > be - bs) {\n return bruteForceRedFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n } else {\n return bruteForceBlueFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n }\n }\n return bruteForceFull;\n }\n function partial() {\n function bruteForceRedFlip(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n Q: for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], yi = bi[j];\n if (y0 <= x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(yi, xi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceRed(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n Q: for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], yi = bi[j];\n if (y0 < x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(xi, yi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceBlueFlip(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], yi = bi[j];\n Q: for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n if (y0 <= x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(yi, xi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceBlue(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], yi = bi[j];\n Q: for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n if (y0 < x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(xi, yi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForcePartial(d, ax, vv, fp, rs, re, rb, ri, bs, be, bb, bi) {\n if (re - rs > be - bs) {\n if (fp) {\n return bruteForceRedFlip(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n } else {\n return bruteForceRed(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n }\n } else {\n if (fp) {\n return bruteForceBlueFlip(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n } else {\n return bruteForceBlue(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n }\n }\n }\n return bruteForcePartial;\n }\n function bruteForcePlanner(isFull) {\n return isFull ? full() : partial();\n }\n exports2.partial = bruteForcePlanner(false);\n exports2.full = bruteForcePlanner(true);\n }\n ),\n /***/\n 7150: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = boxIntersectIter;\n var pool = __webpack_require__2(1888);\n var bits = __webpack_require__2(8828);\n var bruteForce = __webpack_require__2(2455);\n var bruteForcePartial = bruteForce.partial;\n var bruteForceFull = bruteForce.full;\n var sweep = __webpack_require__2(855);\n var findMedian = __webpack_require__2(3545);\n var genPartition = __webpack_require__2(8105);\n var BRUTE_FORCE_CUTOFF = 128;\n var SCAN_CUTOFF = 1 << 22;\n var SCAN_COMPLETE_CUTOFF = 1 << 22;\n var partitionInteriorContainsInterval = genPartition(\n \"!(lo>=p0)&&!(p1>=hi)\"\n );\n var partitionStartEqual = genPartition(\n \"lo===p0\"\n );\n var partitionStartLessThan = genPartition(\n \"lo 0) {\n top -= 1;\n var iptr = top * IFRAME_SIZE;\n var axis = BOX_ISTACK[iptr];\n var redStart = BOX_ISTACK[iptr + 1];\n var redEnd = BOX_ISTACK[iptr + 2];\n var blueStart = BOX_ISTACK[iptr + 3];\n var blueEnd = BOX_ISTACK[iptr + 4];\n var state = BOX_ISTACK[iptr + 5];\n var dptr = top * DFRAME_SIZE;\n var lo = BOX_DSTACK[dptr];\n var hi = BOX_DSTACK[dptr + 1];\n var flip = state & 1;\n var full = !!(state & 16);\n var red = xBoxes;\n var redIndex = xIndex;\n var blue = yBoxes;\n var blueIndex = yIndex;\n if (flip) {\n red = yBoxes;\n redIndex = yIndex;\n blue = xBoxes;\n blueIndex = xIndex;\n }\n if (state & 2) {\n redEnd = partitionStartLessThan(\n d,\n axis,\n redStart,\n redEnd,\n red,\n redIndex,\n hi\n );\n if (redStart >= redEnd) {\n continue;\n }\n }\n if (state & 4) {\n redStart = partitionEndLessThanEqual(\n d,\n axis,\n redStart,\n redEnd,\n red,\n redIndex,\n lo\n );\n if (redStart >= redEnd) {\n continue;\n }\n }\n var redCount = redEnd - redStart;\n var blueCount = blueEnd - blueStart;\n if (full) {\n if (d * redCount * (redCount + blueCount) < SCAN_COMPLETE_CUTOFF) {\n retval = sweep.scanComplete(\n d,\n axis,\n visit,\n redStart,\n redEnd,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n continue;\n }\n } else {\n if (d * Math.min(redCount, blueCount) < BRUTE_FORCE_CUTOFF) {\n retval = bruteForcePartial(\n d,\n axis,\n visit,\n flip,\n redStart,\n redEnd,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n continue;\n } else if (d * redCount * blueCount < SCAN_CUTOFF) {\n retval = sweep.scanBipartite(\n d,\n axis,\n visit,\n flip,\n redStart,\n redEnd,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n continue;\n }\n }\n var red0 = partitionInteriorContainsInterval(\n d,\n axis,\n redStart,\n redEnd,\n red,\n redIndex,\n lo,\n hi\n );\n if (redStart < red0) {\n if (d * (red0 - redStart) < BRUTE_FORCE_CUTOFF) {\n retval = bruteForceFull(\n d,\n axis + 1,\n visit,\n redStart,\n red0,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n } else if (axis === d - 2) {\n if (flip) {\n retval = sweep.sweepBipartite(\n d,\n visit,\n blueStart,\n blueEnd,\n blue,\n blueIndex,\n redStart,\n red0,\n red,\n redIndex\n );\n } else {\n retval = sweep.sweepBipartite(\n d,\n visit,\n redStart,\n red0,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n }\n if (retval !== void 0) {\n return retval;\n }\n } else {\n iterPush(\n top++,\n axis + 1,\n redStart,\n red0,\n blueStart,\n blueEnd,\n flip,\n -Infinity,\n Infinity\n );\n iterPush(\n top++,\n axis + 1,\n blueStart,\n blueEnd,\n redStart,\n red0,\n flip ^ 1,\n -Infinity,\n Infinity\n );\n }\n }\n if (red0 < redEnd) {\n var blue0 = findMedian(\n d,\n axis,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n var mid = blue[elemSize * blue0 + axis];\n var blue1 = partitionStartEqual(\n d,\n axis,\n blue0,\n blueEnd,\n blue,\n blueIndex,\n mid\n );\n if (blue1 < blueEnd) {\n iterPush(\n top++,\n axis,\n red0,\n redEnd,\n blue1,\n blueEnd,\n (flip | 4) + (full ? 16 : 0),\n mid,\n hi\n );\n }\n if (blueStart < blue0) {\n iterPush(\n top++,\n axis,\n red0,\n redEnd,\n blueStart,\n blue0,\n (flip | 2) + (full ? 16 : 0),\n lo,\n mid\n );\n }\n if (blue0 + 1 === blue1) {\n if (full) {\n retval = onePointFull(\n d,\n axis,\n visit,\n red0,\n redEnd,\n red,\n redIndex,\n blue0,\n blue,\n blueIndex[blue0]\n );\n } else {\n retval = onePointPartial(\n d,\n axis,\n visit,\n flip,\n red0,\n redEnd,\n red,\n redIndex,\n blue0,\n blue,\n blueIndex[blue0]\n );\n }\n if (retval !== void 0) {\n return retval;\n }\n } else if (blue0 < blue1) {\n var red1;\n if (full) {\n red1 = partitionContainsPoint(\n d,\n axis,\n red0,\n redEnd,\n red,\n redIndex,\n mid\n );\n if (red0 < red1) {\n var redX = partitionStartEqual(\n d,\n axis,\n red0,\n red1,\n red,\n redIndex,\n mid\n );\n if (axis === d - 2) {\n if (red0 < redX) {\n retval = sweep.sweepComplete(\n d,\n visit,\n red0,\n redX,\n red,\n redIndex,\n blue0,\n blue1,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n }\n if (redX < red1) {\n retval = sweep.sweepBipartite(\n d,\n visit,\n redX,\n red1,\n red,\n redIndex,\n blue0,\n blue1,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n }\n } else {\n if (red0 < redX) {\n iterPush(\n top++,\n axis + 1,\n red0,\n redX,\n blue0,\n blue1,\n 16,\n -Infinity,\n Infinity\n );\n }\n if (redX < red1) {\n iterPush(\n top++,\n axis + 1,\n redX,\n red1,\n blue0,\n blue1,\n 0,\n -Infinity,\n Infinity\n );\n iterPush(\n top++,\n axis + 1,\n blue0,\n blue1,\n redX,\n red1,\n 1,\n -Infinity,\n Infinity\n );\n }\n }\n }\n } else {\n if (flip) {\n red1 = partitionContainsPointProper(\n d,\n axis,\n red0,\n redEnd,\n red,\n redIndex,\n mid\n );\n } else {\n red1 = partitionContainsPoint(\n d,\n axis,\n red0,\n redEnd,\n red,\n redIndex,\n mid\n );\n }\n if (red0 < red1) {\n if (axis === d - 2) {\n if (flip) {\n retval = sweep.sweepBipartite(\n d,\n visit,\n blue0,\n blue1,\n blue,\n blueIndex,\n red0,\n red1,\n red,\n redIndex\n );\n } else {\n retval = sweep.sweepBipartite(\n d,\n visit,\n red0,\n red1,\n red,\n redIndex,\n blue0,\n blue1,\n blue,\n blueIndex\n );\n }\n } else {\n iterPush(\n top++,\n axis + 1,\n red0,\n red1,\n blue0,\n blue1,\n flip,\n -Infinity,\n Infinity\n );\n iterPush(\n top++,\n axis + 1,\n blue0,\n blue1,\n red0,\n red1,\n flip ^ 1,\n -Infinity,\n Infinity\n );\n }\n }\n }\n }\n }\n }\n }\n }\n ),\n /***/\n 3545: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = findMedian;\n var genPartition = __webpack_require__2(8105);\n var partitionStartLessThan = genPartition(\"lo start && boxes[ptr + axis] > x; --j, ptr -= elemSize) {\n var aPtr = ptr;\n var bPtr = ptr + elemSize;\n for (var k = 0; k < elemSize; ++k, ++aPtr, ++bPtr) {\n var y = boxes[aPtr];\n boxes[aPtr] = boxes[bPtr];\n boxes[bPtr] = y;\n }\n var tmp = ids[j];\n ids[j] = ids[j - 1];\n ids[j - 1] = tmp;\n }\n }\n }\n function findMedian(d, axis, start, end, boxes, ids) {\n if (end <= start + 1) {\n return start;\n }\n var lo = start;\n var hi = end;\n var mid = end + start >>> 1;\n var elemSize = 2 * d;\n var pivot = mid;\n var value = boxes[elemSize * mid + axis];\n while (lo < hi) {\n if (hi - lo < PARTITION_THRESHOLD) {\n insertionSort(d, axis, lo, hi, boxes, ids);\n value = boxes[elemSize * mid + axis];\n break;\n }\n var count = hi - lo;\n var pivot0 = Math.random() * count + lo | 0;\n var value0 = boxes[elemSize * pivot0 + axis];\n var pivot1 = Math.random() * count + lo | 0;\n var value1 = boxes[elemSize * pivot1 + axis];\n var pivot2 = Math.random() * count + lo | 0;\n var value2 = boxes[elemSize * pivot2 + axis];\n if (value0 <= value1) {\n if (value2 >= value1) {\n pivot = pivot1;\n value = value1;\n } else if (value0 >= value2) {\n pivot = pivot0;\n value = value0;\n } else {\n pivot = pivot2;\n value = value2;\n }\n } else {\n if (value1 >= value2) {\n pivot = pivot1;\n value = value1;\n } else if (value2 >= value0) {\n pivot = pivot0;\n value = value0;\n } else {\n pivot = pivot2;\n value = value2;\n }\n }\n var aPtr = elemSize * (hi - 1);\n var bPtr = elemSize * pivot;\n for (var i = 0; i < elemSize; ++i, ++aPtr, ++bPtr) {\n var x = boxes[aPtr];\n boxes[aPtr] = boxes[bPtr];\n boxes[bPtr] = x;\n }\n var y = ids[hi - 1];\n ids[hi - 1] = ids[pivot];\n ids[pivot] = y;\n pivot = partitionStartLessThan(\n d,\n axis,\n lo,\n hi - 1,\n boxes,\n ids,\n value\n );\n var aPtr = elemSize * (hi - 1);\n var bPtr = elemSize * pivot;\n for (var i = 0; i < elemSize; ++i, ++aPtr, ++bPtr) {\n var x = boxes[aPtr];\n boxes[aPtr] = boxes[bPtr];\n boxes[bPtr] = x;\n }\n var y = ids[hi - 1];\n ids[hi - 1] = ids[pivot];\n ids[pivot] = y;\n if (mid < pivot) {\n hi = pivot - 1;\n while (lo < hi && boxes[elemSize * (hi - 1) + axis] === value) {\n hi -= 1;\n }\n hi += 1;\n } else if (pivot < mid) {\n lo = pivot + 1;\n while (lo < hi && boxes[elemSize * lo + axis] === value) {\n lo += 1;\n }\n } else {\n break;\n }\n }\n return partitionStartLessThan(\n d,\n axis,\n start,\n mid,\n boxes,\n ids,\n boxes[elemSize * mid + axis]\n );\n }\n }\n ),\n /***/\n 8105: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = genPartition;\n var P2F = {\n \"lo===p0\": lo_equal_p0,\n \"lo=p0)&&!(p1>=hi)\": lo_lessThan_p0_and_p1_lessThan_hi\n };\n function genPartition(predicate) {\n return P2F[predicate];\n }\n function lo_equal_p0(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n];\n if (lo === p0) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lessThan_p0(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n];\n if (lo < p0) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lessOrEqual_p0(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var hi = e[k + o];\n if (hi <= p0) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function hi_lessOrEqual_p0(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var hi = e[k + o];\n if (hi <= p0) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lassOrEqual_p0_and_p0_lessOrEqual_hi(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n], hi = e[k + o];\n if (lo <= p0 && p0 <= hi) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lessThan_p0_and_p0_lessOrEqual_hi(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n], hi = e[k + o];\n if (lo < p0 && p0 <= hi) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lessThan_p0_and_p1_lessThan_hi(a, b, c, d, e, f, p0, p1) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n], hi = e[k + o];\n if (!(lo >= p0) && !(p1 >= hi)) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n }\n ),\n /***/\n 4192: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = wrapper;\n var INSERT_SORT_CUTOFF = 32;\n function wrapper(data, n0) {\n if (n0 <= 4 * INSERT_SORT_CUTOFF) {\n insertionSort(0, n0 - 1, data);\n } else {\n quickSort(0, n0 - 1, data);\n }\n }\n function insertionSort(left, right, data) {\n var ptr = 2 * (left + 1);\n for (var i = left + 1; i <= right; ++i) {\n var a = data[ptr++];\n var b = data[ptr++];\n var j = i;\n var jptr = ptr - 2;\n while (j-- > left) {\n var x = data[jptr - 2];\n var y = data[jptr - 1];\n if (x < a) {\n break;\n } else if (x === a && y < b) {\n break;\n }\n data[jptr] = x;\n data[jptr + 1] = y;\n jptr -= 2;\n }\n data[jptr] = a;\n data[jptr + 1] = b;\n }\n }\n function swap(i, j, data) {\n i *= 2;\n j *= 2;\n var x = data[i];\n var y = data[i + 1];\n data[i] = data[j];\n data[i + 1] = data[j + 1];\n data[j] = x;\n data[j + 1] = y;\n }\n function move(i, j, data) {\n i *= 2;\n j *= 2;\n data[i] = data[j];\n data[i + 1] = data[j + 1];\n }\n function rotate(i, j, k, data) {\n i *= 2;\n j *= 2;\n k *= 2;\n var x = data[i];\n var y = data[i + 1];\n data[i] = data[j];\n data[i + 1] = data[j + 1];\n data[j] = data[k];\n data[j + 1] = data[k + 1];\n data[k] = x;\n data[k + 1] = y;\n }\n function shufflePivot(i, j, px, py, data) {\n i *= 2;\n j *= 2;\n data[i] = data[j];\n data[j] = px;\n data[i + 1] = data[j + 1];\n data[j + 1] = py;\n }\n function compare(i, j, data) {\n i *= 2;\n j *= 2;\n var x = data[i], y = data[j];\n if (x < y) {\n return false;\n } else if (x === y) {\n return data[i + 1] > data[j + 1];\n }\n return true;\n }\n function comparePivot(i, y, b, data) {\n i *= 2;\n var x = data[i];\n if (x < y) {\n return true;\n } else if (x === y) {\n return data[i + 1] < b;\n }\n return false;\n }\n function quickSort(left, right, data) {\n var sixth = (right - left + 1) / 6 | 0, index1 = left + sixth, index5 = right - sixth, index3 = left + right >> 1, index2 = index3 - sixth, index4 = index3 + sixth, el1 = index1, el2 = index2, el3 = index3, el4 = index4, el5 = index5, less = left + 1, great = right - 1, tmp = 0;\n if (compare(el1, el2, data)) {\n tmp = el1;\n el1 = el2;\n el2 = tmp;\n }\n if (compare(el4, el5, data)) {\n tmp = el4;\n el4 = el5;\n el5 = tmp;\n }\n if (compare(el1, el3, data)) {\n tmp = el1;\n el1 = el3;\n el3 = tmp;\n }\n if (compare(el2, el3, data)) {\n tmp = el2;\n el2 = el3;\n el3 = tmp;\n }\n if (compare(el1, el4, data)) {\n tmp = el1;\n el1 = el4;\n el4 = tmp;\n }\n if (compare(el3, el4, data)) {\n tmp = el3;\n el3 = el4;\n el4 = tmp;\n }\n if (compare(el2, el5, data)) {\n tmp = el2;\n el2 = el5;\n el5 = tmp;\n }\n if (compare(el2, el3, data)) {\n tmp = el2;\n el2 = el3;\n el3 = tmp;\n }\n if (compare(el4, el5, data)) {\n tmp = el4;\n el4 = el5;\n el5 = tmp;\n }\n var pivot1X = data[2 * el2];\n var pivot1Y = data[2 * el2 + 1];\n var pivot2X = data[2 * el4];\n var pivot2Y = data[2 * el4 + 1];\n var ptr0 = 2 * el1;\n var ptr2 = 2 * el3;\n var ptr4 = 2 * el5;\n var ptr5 = 2 * index1;\n var ptr6 = 2 * index3;\n var ptr7 = 2 * index5;\n for (var i1 = 0; i1 < 2; ++i1) {\n var x = data[ptr0 + i1];\n var y = data[ptr2 + i1];\n var z = data[ptr4 + i1];\n data[ptr5 + i1] = x;\n data[ptr6 + i1] = y;\n data[ptr7 + i1] = z;\n }\n move(index2, left, data);\n move(index4, right, data);\n for (var k = less; k <= great; ++k) {\n if (comparePivot(k, pivot1X, pivot1Y, data)) {\n if (k !== less) {\n swap(k, less, data);\n }\n ++less;\n } else {\n if (!comparePivot(k, pivot2X, pivot2Y, data)) {\n while (true) {\n if (!comparePivot(great, pivot2X, pivot2Y, data)) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n if (comparePivot(great, pivot1X, pivot1Y, data)) {\n rotate(k, less, great, data);\n ++less;\n --great;\n } else {\n swap(k, great, data);\n --great;\n }\n break;\n }\n }\n }\n }\n }\n shufflePivot(left, less - 1, pivot1X, pivot1Y, data);\n shufflePivot(right, great + 1, pivot2X, pivot2Y, data);\n if (less - 2 - left <= INSERT_SORT_CUTOFF) {\n insertionSort(left, less - 2, data);\n } else {\n quickSort(left, less - 2, data);\n }\n if (right - (great + 2) <= INSERT_SORT_CUTOFF) {\n insertionSort(great + 2, right, data);\n } else {\n quickSort(great + 2, right, data);\n }\n if (great - less <= INSERT_SORT_CUTOFF) {\n insertionSort(less, great, data);\n } else {\n quickSort(less, great, data);\n }\n }\n }\n ),\n /***/\n 855: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = {\n init: sqInit,\n sweepBipartite,\n sweepComplete,\n scanBipartite,\n scanComplete\n };\n var pool = __webpack_require__2(1888);\n var bits = __webpack_require__2(8828);\n var isort = __webpack_require__2(4192);\n var BLUE_FLAG = 1 << 28;\n var INIT_CAPACITY = 1024;\n var RED_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY);\n var RED_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY);\n var BLUE_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY);\n var BLUE_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY);\n var COMMON_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY);\n var COMMON_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY);\n var SWEEP_EVENTS = pool.mallocDouble(INIT_CAPACITY * 8);\n function sqInit(count) {\n var rcount = bits.nextPow2(count);\n if (RED_SWEEP_QUEUE.length < rcount) {\n pool.free(RED_SWEEP_QUEUE);\n RED_SWEEP_QUEUE = pool.mallocInt32(rcount);\n }\n if (RED_SWEEP_INDEX.length < rcount) {\n pool.free(RED_SWEEP_INDEX);\n RED_SWEEP_INDEX = pool.mallocInt32(rcount);\n }\n if (BLUE_SWEEP_QUEUE.length < rcount) {\n pool.free(BLUE_SWEEP_QUEUE);\n BLUE_SWEEP_QUEUE = pool.mallocInt32(rcount);\n }\n if (BLUE_SWEEP_INDEX.length < rcount) {\n pool.free(BLUE_SWEEP_INDEX);\n BLUE_SWEEP_INDEX = pool.mallocInt32(rcount);\n }\n if (COMMON_SWEEP_QUEUE.length < rcount) {\n pool.free(COMMON_SWEEP_QUEUE);\n COMMON_SWEEP_QUEUE = pool.mallocInt32(rcount);\n }\n if (COMMON_SWEEP_INDEX.length < rcount) {\n pool.free(COMMON_SWEEP_INDEX);\n COMMON_SWEEP_INDEX = pool.mallocInt32(rcount);\n }\n var eventLength = 8 * rcount;\n if (SWEEP_EVENTS.length < eventLength) {\n pool.free(SWEEP_EVENTS);\n SWEEP_EVENTS = pool.mallocDouble(eventLength);\n }\n }\n function sqPop(queue, index, count, item) {\n var idx = index[item];\n var top = queue[count - 1];\n queue[idx] = top;\n index[top] = idx;\n }\n function sqPush(queue, index, count, item) {\n queue[count] = item;\n index[item] = count;\n }\n function sweepBipartite(d, visit, redStart, redEnd, red, redIndex, blueStart, blueEnd, blue, blueIndex) {\n var ptr = 0;\n var elemSize = 2 * d;\n var istart = d - 1;\n var iend = elemSize - 1;\n for (var i = redStart; i < redEnd; ++i) {\n var idx = redIndex[i];\n var redOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = red[redOffset + istart];\n SWEEP_EVENTS[ptr++] = -(idx + 1);\n SWEEP_EVENTS[ptr++] = red[redOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n for (var i = blueStart; i < blueEnd; ++i) {\n var idx = blueIndex[i] + BLUE_FLAG;\n var blueOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n var n = ptr >>> 1;\n isort(SWEEP_EVENTS, n);\n var redActive = 0;\n var blueActive = 0;\n for (var i = 0; i < n; ++i) {\n var e = SWEEP_EVENTS[2 * i + 1] | 0;\n if (e >= BLUE_FLAG) {\n e = e - BLUE_FLAG | 0;\n sqPop(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive--, e);\n } else if (e >= 0) {\n sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, e);\n } else if (e <= -BLUE_FLAG) {\n e = -e - BLUE_FLAG | 0;\n for (var j = 0; j < redActive; ++j) {\n var retval = visit(RED_SWEEP_QUEUE[j], e);\n if (retval !== void 0) {\n return retval;\n }\n }\n sqPush(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive++, e);\n } else {\n e = -e - 1 | 0;\n for (var j = 0; j < blueActive; ++j) {\n var retval = visit(e, BLUE_SWEEP_QUEUE[j]);\n if (retval !== void 0) {\n return retval;\n }\n }\n sqPush(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive++, e);\n }\n }\n }\n function sweepComplete(d, visit, redStart, redEnd, red, redIndex, blueStart, blueEnd, blue, blueIndex) {\n var ptr = 0;\n var elemSize = 2 * d;\n var istart = d - 1;\n var iend = elemSize - 1;\n for (var i = redStart; i < redEnd; ++i) {\n var idx = redIndex[i] + 1 << 1;\n var redOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = red[redOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n SWEEP_EVENTS[ptr++] = red[redOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n for (var i = blueStart; i < blueEnd; ++i) {\n var idx = blueIndex[i] + 1 << 1;\n var blueOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx | 1;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + iend];\n SWEEP_EVENTS[ptr++] = idx | 1;\n }\n var n = ptr >>> 1;\n isort(SWEEP_EVENTS, n);\n var redActive = 0;\n var blueActive = 0;\n var commonActive = 0;\n for (var i = 0; i < n; ++i) {\n var e = SWEEP_EVENTS[2 * i + 1] | 0;\n var color2 = e & 1;\n if (i < n - 1 && e >> 1 === SWEEP_EVENTS[2 * i + 3] >> 1) {\n color2 = 2;\n i += 1;\n }\n if (e < 0) {\n var id = -(e >> 1) - 1;\n for (var j = 0; j < commonActive; ++j) {\n var retval = visit(COMMON_SWEEP_QUEUE[j], id);\n if (retval !== void 0) {\n return retval;\n }\n }\n if (color2 !== 0) {\n for (var j = 0; j < redActive; ++j) {\n var retval = visit(RED_SWEEP_QUEUE[j], id);\n if (retval !== void 0) {\n return retval;\n }\n }\n }\n if (color2 !== 1) {\n for (var j = 0; j < blueActive; ++j) {\n var retval = visit(BLUE_SWEEP_QUEUE[j], id);\n if (retval !== void 0) {\n return retval;\n }\n }\n }\n if (color2 === 0) {\n sqPush(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive++, id);\n } else if (color2 === 1) {\n sqPush(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive++, id);\n } else if (color2 === 2) {\n sqPush(COMMON_SWEEP_QUEUE, COMMON_SWEEP_INDEX, commonActive++, id);\n }\n } else {\n var id = (e >> 1) - 1;\n if (color2 === 0) {\n sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, id);\n } else if (color2 === 1) {\n sqPop(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive--, id);\n } else if (color2 === 2) {\n sqPop(COMMON_SWEEP_QUEUE, COMMON_SWEEP_INDEX, commonActive--, id);\n }\n }\n }\n }\n function scanBipartite(d, axis, visit, flip, redStart, redEnd, red, redIndex, blueStart, blueEnd, blue, blueIndex) {\n var ptr = 0;\n var elemSize = 2 * d;\n var istart = axis;\n var iend = axis + d;\n var redShift = 1;\n var blueShift = 1;\n if (flip) {\n blueShift = BLUE_FLAG;\n } else {\n redShift = BLUE_FLAG;\n }\n for (var i = redStart; i < redEnd; ++i) {\n var idx = i + redShift;\n var redOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = red[redOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n SWEEP_EVENTS[ptr++] = red[redOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n for (var i = blueStart; i < blueEnd; ++i) {\n var idx = i + blueShift;\n var blueOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n }\n var n = ptr >>> 1;\n isort(SWEEP_EVENTS, n);\n var redActive = 0;\n for (var i = 0; i < n; ++i) {\n var e = SWEEP_EVENTS[2 * i + 1] | 0;\n if (e < 0) {\n var idx = -e;\n var isRed = false;\n if (idx >= BLUE_FLAG) {\n isRed = !flip;\n idx -= BLUE_FLAG;\n } else {\n isRed = !!flip;\n idx -= 1;\n }\n if (isRed) {\n sqPush(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive++, idx);\n } else {\n var blueId = blueIndex[idx];\n var bluePtr = elemSize * idx;\n var b0 = blue[bluePtr + axis + 1];\n var b1 = blue[bluePtr + axis + 1 + d];\n red_loop:\n for (var j = 0; j < redActive; ++j) {\n var oidx = RED_SWEEP_QUEUE[j];\n var redPtr = elemSize * oidx;\n if (b1 < red[redPtr + axis + 1] || red[redPtr + axis + 1 + d] < b0) {\n continue;\n }\n for (var k = axis + 2; k < d; ++k) {\n if (blue[bluePtr + k + d] < red[redPtr + k] || red[redPtr + k + d] < blue[bluePtr + k]) {\n continue red_loop;\n }\n }\n var redId = redIndex[oidx];\n var retval;\n if (flip) {\n retval = visit(blueId, redId);\n } else {\n retval = visit(redId, blueId);\n }\n if (retval !== void 0) {\n return retval;\n }\n }\n }\n } else {\n sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, e - redShift);\n }\n }\n }\n function scanComplete(d, axis, visit, redStart, redEnd, red, redIndex, blueStart, blueEnd, blue, blueIndex) {\n var ptr = 0;\n var elemSize = 2 * d;\n var istart = axis;\n var iend = axis + d;\n for (var i = redStart; i < redEnd; ++i) {\n var idx = i + BLUE_FLAG;\n var redOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = red[redOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n SWEEP_EVENTS[ptr++] = red[redOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n for (var i = blueStart; i < blueEnd; ++i) {\n var idx = i + 1;\n var blueOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n }\n var n = ptr >>> 1;\n isort(SWEEP_EVENTS, n);\n var redActive = 0;\n for (var i = 0; i < n; ++i) {\n var e = SWEEP_EVENTS[2 * i + 1] | 0;\n if (e < 0) {\n var idx = -e;\n if (idx >= BLUE_FLAG) {\n RED_SWEEP_QUEUE[redActive++] = idx - BLUE_FLAG;\n } else {\n idx -= 1;\n var blueId = blueIndex[idx];\n var bluePtr = elemSize * idx;\n var b0 = blue[bluePtr + axis + 1];\n var b1 = blue[bluePtr + axis + 1 + d];\n red_loop:\n for (var j = 0; j < redActive; ++j) {\n var oidx = RED_SWEEP_QUEUE[j];\n var redId = redIndex[oidx];\n if (redId === blueId) {\n break;\n }\n var redPtr = elemSize * oidx;\n if (b1 < red[redPtr + axis + 1] || red[redPtr + axis + 1 + d] < b0) {\n continue;\n }\n for (var k = axis + 2; k < d; ++k) {\n if (blue[bluePtr + k + d] < red[redPtr + k] || red[redPtr + k + d] < blue[bluePtr + k]) {\n continue red_loop;\n }\n }\n var retval = visit(redId, blueId);\n if (retval !== void 0) {\n return retval;\n }\n }\n }\n } else {\n var idx = e - BLUE_FLAG;\n for (var j = redActive - 1; j >= 0; --j) {\n if (RED_SWEEP_QUEUE[j] === idx) {\n for (var k = j + 1; k < redActive; ++k) {\n RED_SWEEP_QUEUE[k - 1] = RED_SWEEP_QUEUE[k];\n }\n break;\n }\n }\n --redActive;\n }\n }\n }\n }\n ),\n /***/\n 2538: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var monotoneTriangulate = __webpack_require__2(8902);\n var makeIndex = __webpack_require__2(5542);\n var delaunayFlip = __webpack_require__2(2272);\n var filterTriangulation = __webpack_require__2(5023);\n module2.exports = cdt2d;\n function canonicalizeEdge(e) {\n return [Math.min(e[0], e[1]), Math.max(e[0], e[1])];\n }\n function compareEdge(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n function canonicalizeEdges(edges) {\n return edges.map(canonicalizeEdge).sort(compareEdge);\n }\n function getDefault(options, property, dflt) {\n if (property in options) {\n return options[property];\n }\n return dflt;\n }\n function cdt2d(points, edges, options) {\n if (!Array.isArray(edges)) {\n options = edges || {};\n edges = [];\n } else {\n options = options || {};\n edges = edges || [];\n }\n var delaunay = !!getDefault(options, \"delaunay\", true);\n var interior = !!getDefault(options, \"interior\", true);\n var exterior = !!getDefault(options, \"exterior\", true);\n var infinity = !!getDefault(options, \"infinity\", false);\n if (!interior && !exterior || points.length === 0) {\n return [];\n }\n var cells = monotoneTriangulate(points, edges);\n if (delaunay || interior !== exterior || infinity) {\n var triangulation = makeIndex(points.length, canonicalizeEdges(edges));\n for (var i = 0; i < cells.length; ++i) {\n var f = cells[i];\n triangulation.addTriangle(f[0], f[1], f[2]);\n }\n if (delaunay) {\n delaunayFlip(points, triangulation);\n }\n if (!exterior) {\n return filterTriangulation(triangulation, -1);\n } else if (!interior) {\n return filterTriangulation(triangulation, 1, infinity);\n } else if (infinity) {\n return filterTriangulation(triangulation, 0, infinity);\n } else {\n return triangulation.cells();\n }\n } else {\n return cells;\n }\n }\n }\n ),\n /***/\n 2272: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var inCircle = __webpack_require__2(2646)[4];\n var bsearch = __webpack_require__2(2478);\n module2.exports = delaunayRefine;\n function testFlip(points, triangulation, stack, a, b, x) {\n var y = triangulation.opposite(a, b);\n if (y < 0) {\n return;\n }\n if (b < a) {\n var tmp = a;\n a = b;\n b = tmp;\n tmp = x;\n x = y;\n y = tmp;\n }\n if (triangulation.isConstraint(a, b)) {\n return;\n }\n if (inCircle(points[a], points[b], points[x], points[y]) < 0) {\n stack.push(a, b);\n }\n }\n function delaunayRefine(points, triangulation) {\n var stack = [];\n var numPoints = points.length;\n var stars = triangulation.stars;\n for (var a = 0; a < numPoints; ++a) {\n var star = stars[a];\n for (var j = 1; j < star.length; j += 2) {\n var b = star[j];\n if (b < a) {\n continue;\n }\n if (triangulation.isConstraint(a, b)) {\n continue;\n }\n var x = star[j - 1], y = -1;\n for (var k = 1; k < star.length; k += 2) {\n if (star[k - 1] === b) {\n y = star[k];\n break;\n }\n }\n if (y < 0) {\n continue;\n }\n if (inCircle(points[a], points[b], points[x], points[y]) < 0) {\n stack.push(a, b);\n }\n }\n }\n while (stack.length > 0) {\n var b = stack.pop();\n var a = stack.pop();\n var x = -1, y = -1;\n var star = stars[a];\n for (var i = 1; i < star.length; i += 2) {\n var s = star[i - 1];\n var t = star[i];\n if (s === b) {\n y = t;\n } else if (t === b) {\n x = s;\n }\n }\n if (x < 0 || y < 0) {\n continue;\n }\n if (inCircle(points[a], points[b], points[x], points[y]) >= 0) {\n continue;\n }\n triangulation.flip(a, b);\n testFlip(points, triangulation, stack, x, a, y);\n testFlip(points, triangulation, stack, a, y, x);\n testFlip(points, triangulation, stack, y, b, x);\n testFlip(points, triangulation, stack, b, x, y);\n }\n }\n }\n ),\n /***/\n 5023: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bsearch = __webpack_require__2(2478);\n module2.exports = classifyFaces;\n function FaceIndex(cells, neighbor, constraint, flags, active, next, boundary) {\n this.cells = cells;\n this.neighbor = neighbor;\n this.flags = flags;\n this.constraint = constraint;\n this.active = active;\n this.next = next;\n this.boundary = boundary;\n }\n var proto = FaceIndex.prototype;\n function compareCell(a, b) {\n return a[0] - b[0] || a[1] - b[1] || a[2] - b[2];\n }\n proto.locate = /* @__PURE__ */ function() {\n var key = [0, 0, 0];\n return function(a, b, c) {\n var x = a, y = b, z = c;\n if (b < c) {\n if (b < a) {\n x = b;\n y = c;\n z = a;\n }\n } else if (c < a) {\n x = c;\n y = a;\n z = b;\n }\n if (x < 0) {\n return -1;\n }\n key[0] = x;\n key[1] = y;\n key[2] = z;\n return bsearch.eq(this.cells, key, compareCell);\n };\n }();\n function indexCells(triangulation, infinity) {\n var cells = triangulation.cells();\n var nc = cells.length;\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n var x = c[0], y = c[1], z = c[2];\n if (y < z) {\n if (y < x) {\n c[0] = y;\n c[1] = z;\n c[2] = x;\n }\n } else if (z < x) {\n c[0] = z;\n c[1] = x;\n c[2] = y;\n }\n }\n cells.sort(compareCell);\n var flags = new Array(nc);\n for (var i = 0; i < flags.length; ++i) {\n flags[i] = 0;\n }\n var active = [];\n var next = [];\n var neighbor = new Array(3 * nc);\n var constraint = new Array(3 * nc);\n var boundary = null;\n if (infinity) {\n boundary = [];\n }\n var index = new FaceIndex(\n cells,\n neighbor,\n constraint,\n flags,\n active,\n next,\n boundary\n );\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n for (var j = 0; j < 3; ++j) {\n var x = c[j], y = c[(j + 1) % 3];\n var a = neighbor[3 * i + j] = index.locate(y, x, triangulation.opposite(y, x));\n var b = constraint[3 * i + j] = triangulation.isConstraint(x, y);\n if (a < 0) {\n if (b) {\n next.push(i);\n } else {\n active.push(i);\n flags[i] = 1;\n }\n if (infinity) {\n boundary.push([y, x, -1]);\n }\n }\n }\n }\n return index;\n }\n function filterCells(cells, flags, target) {\n var ptr = 0;\n for (var i = 0; i < cells.length; ++i) {\n if (flags[i] === target) {\n cells[ptr++] = cells[i];\n }\n }\n cells.length = ptr;\n return cells;\n }\n function classifyFaces(triangulation, target, infinity) {\n var index = indexCells(triangulation, infinity);\n if (target === 0) {\n if (infinity) {\n return index.cells.concat(index.boundary);\n } else {\n return index.cells;\n }\n }\n var side = 1;\n var active = index.active;\n var next = index.next;\n var flags = index.flags;\n var cells = index.cells;\n var constraint = index.constraint;\n var neighbor = index.neighbor;\n while (active.length > 0 || next.length > 0) {\n while (active.length > 0) {\n var t = active.pop();\n if (flags[t] === -side) {\n continue;\n }\n flags[t] = side;\n var c = cells[t];\n for (var j = 0; j < 3; ++j) {\n var f = neighbor[3 * t + j];\n if (f >= 0 && flags[f] === 0) {\n if (constraint[3 * t + j]) {\n next.push(f);\n } else {\n active.push(f);\n flags[f] = side;\n }\n }\n }\n }\n var tmp = next;\n next = active;\n active = tmp;\n next.length = 0;\n side = -side;\n }\n var result = filterCells(cells, flags, target);\n if (infinity) {\n return result.concat(index.boundary);\n }\n return result;\n }\n }\n ),\n /***/\n 8902: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bsearch = __webpack_require__2(2478);\n var orient = __webpack_require__2(3250)[3];\n var EVENT_POINT = 0;\n var EVENT_END = 1;\n var EVENT_START = 2;\n module2.exports = monotoneTriangulate;\n function PartialHull(a, b, idx, lowerIds, upperIds) {\n this.a = a;\n this.b = b;\n this.idx = idx;\n this.lowerIds = lowerIds;\n this.upperIds = upperIds;\n }\n function Event(a, b, type, idx) {\n this.a = a;\n this.b = b;\n this.type = type;\n this.idx = idx;\n }\n function compareEvent(a, b) {\n var d = a.a[0] - b.a[0] || a.a[1] - b.a[1] || a.type - b.type;\n if (d) {\n return d;\n }\n if (a.type !== EVENT_POINT) {\n d = orient(a.a, a.b, b.b);\n if (d) {\n return d;\n }\n }\n return a.idx - b.idx;\n }\n function testPoint(hull, p) {\n return orient(hull.a, hull.b, p);\n }\n function addPoint(cells, hulls, points, p, idx) {\n var lo = bsearch.lt(hulls, p, testPoint);\n var hi = bsearch.gt(hulls, p, testPoint);\n for (var i = lo; i < hi; ++i) {\n var hull = hulls[i];\n var lowerIds = hull.lowerIds;\n var m = lowerIds.length;\n while (m > 1 && orient(\n points[lowerIds[m - 2]],\n points[lowerIds[m - 1]],\n p\n ) > 0) {\n cells.push(\n [\n lowerIds[m - 1],\n lowerIds[m - 2],\n idx\n ]\n );\n m -= 1;\n }\n lowerIds.length = m;\n lowerIds.push(idx);\n var upperIds = hull.upperIds;\n var m = upperIds.length;\n while (m > 1 && orient(\n points[upperIds[m - 2]],\n points[upperIds[m - 1]],\n p\n ) < 0) {\n cells.push(\n [\n upperIds[m - 2],\n upperIds[m - 1],\n idx\n ]\n );\n m -= 1;\n }\n upperIds.length = m;\n upperIds.push(idx);\n }\n }\n function findSplit(hull, edge) {\n var d;\n if (hull.a[0] < edge.a[0]) {\n d = orient(hull.a, hull.b, edge.a);\n } else {\n d = orient(edge.b, edge.a, hull.a);\n }\n if (d) {\n return d;\n }\n if (edge.b[0] < hull.b[0]) {\n d = orient(hull.a, hull.b, edge.b);\n } else {\n d = orient(edge.b, edge.a, hull.b);\n }\n return d || hull.idx - edge.idx;\n }\n function splitHulls(hulls, points, event) {\n var splitIdx = bsearch.le(hulls, event, findSplit);\n var hull = hulls[splitIdx];\n var upperIds = hull.upperIds;\n var x = upperIds[upperIds.length - 1];\n hull.upperIds = [x];\n hulls.splice(\n splitIdx + 1,\n 0,\n new PartialHull(event.a, event.b, event.idx, [x], upperIds)\n );\n }\n function mergeHulls(hulls, points, event) {\n var tmp = event.a;\n event.a = event.b;\n event.b = tmp;\n var mergeIdx = bsearch.eq(hulls, event, findSplit);\n var upper = hulls[mergeIdx];\n var lower = hulls[mergeIdx - 1];\n lower.upperIds = upper.upperIds;\n hulls.splice(mergeIdx, 1);\n }\n function monotoneTriangulate(points, edges) {\n var numPoints = points.length;\n var numEdges = edges.length;\n var events = [];\n for (var i = 0; i < numPoints; ++i) {\n events.push(new Event(\n points[i],\n null,\n EVENT_POINT,\n i\n ));\n }\n for (var i = 0; i < numEdges; ++i) {\n var e = edges[i];\n var a = points[e[0]];\n var b = points[e[1]];\n if (a[0] < b[0]) {\n events.push(\n new Event(a, b, EVENT_START, i),\n new Event(b, a, EVENT_END, i)\n );\n } else if (a[0] > b[0]) {\n events.push(\n new Event(b, a, EVENT_START, i),\n new Event(a, b, EVENT_END, i)\n );\n }\n }\n events.sort(compareEvent);\n var minX = events[0].a[0] - (1 + Math.abs(events[0].a[0])) * Math.pow(2, -52);\n var hull = [new PartialHull([minX, 1], [minX, 0], -1, [], [], [], [])];\n var cells = [];\n for (var i = 0, numEvents = events.length; i < numEvents; ++i) {\n var event = events[i];\n var type = event.type;\n if (type === EVENT_POINT) {\n addPoint(cells, hull, points, event.a, event.idx);\n } else if (type === EVENT_START) {\n splitHulls(hull, points, event);\n } else {\n mergeHulls(hull, points, event);\n }\n }\n return cells;\n }\n }\n ),\n /***/\n 5542: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bsearch = __webpack_require__2(2478);\n module2.exports = createTriangulation;\n function Triangulation(stars, edges) {\n this.stars = stars;\n this.edges = edges;\n }\n var proto = Triangulation.prototype;\n function removePair(list, j, k) {\n for (var i = 1, n = list.length; i < n; i += 2) {\n if (list[i - 1] === j && list[i] === k) {\n list[i - 1] = list[n - 2];\n list[i] = list[n - 1];\n list.length = n - 2;\n return;\n }\n }\n }\n proto.isConstraint = /* @__PURE__ */ function() {\n var e = [0, 0];\n function compareLex(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n return function(i, j) {\n e[0] = Math.min(i, j);\n e[1] = Math.max(i, j);\n return bsearch.eq(this.edges, e, compareLex) >= 0;\n };\n }();\n proto.removeTriangle = function(i, j, k) {\n var stars = this.stars;\n removePair(stars[i], j, k);\n removePair(stars[j], k, i);\n removePair(stars[k], i, j);\n };\n proto.addTriangle = function(i, j, k) {\n var stars = this.stars;\n stars[i].push(j, k);\n stars[j].push(k, i);\n stars[k].push(i, j);\n };\n proto.opposite = function(j, i) {\n var list = this.stars[i];\n for (var k = 1, n = list.length; k < n; k += 2) {\n if (list[k] === j) {\n return list[k - 1];\n }\n }\n return -1;\n };\n proto.flip = function(i, j) {\n var a = this.opposite(i, j);\n var b = this.opposite(j, i);\n this.removeTriangle(i, j, a);\n this.removeTriangle(j, i, b);\n this.addTriangle(i, b, a);\n this.addTriangle(j, a, b);\n };\n proto.edges = function() {\n var stars = this.stars;\n var result = [];\n for (var i = 0, n = stars.length; i < n; ++i) {\n var list = stars[i];\n for (var j = 0, m = list.length; j < m; j += 2) {\n result.push([list[j], list[j + 1]]);\n }\n }\n return result;\n };\n proto.cells = function() {\n var stars = this.stars;\n var result = [];\n for (var i = 0, n = stars.length; i < n; ++i) {\n var list = stars[i];\n for (var j = 0, m = list.length; j < m; j += 2) {\n var s = list[j];\n var t = list[j + 1];\n if (i < Math.min(s, t)) {\n result.push([i, s, t]);\n }\n }\n }\n return result;\n };\n function createTriangulation(numVerts, edges) {\n var stars = new Array(numVerts);\n for (var i = 0; i < numVerts; ++i) {\n stars[i] = [];\n }\n return new Triangulation(stars, edges);\n }\n }\n ),\n /***/\n 2419: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = orientation;\n function orientation(s) {\n var p = 1;\n for (var i = 1; i < s.length; ++i) {\n for (var j = 0; j < i; ++j) {\n if (s[i] < s[j]) {\n p = -p;\n } else if (s[j] === s[i]) {\n return 0;\n }\n }\n }\n return p;\n }\n }\n ),\n /***/\n 3628: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var dup = __webpack_require__2(1338);\n var solve = __webpack_require__2(727);\n function dot(a, b) {\n var s = 0;\n var d = a.length;\n for (var i = 0; i < d; ++i) {\n s += a[i] * b[i];\n }\n return s;\n }\n function barycentricCircumcenter(points) {\n var N = points.length;\n if (N === 0) {\n return [];\n }\n var D2 = points[0].length;\n var A2 = dup([points.length + 1, points.length + 1], 1);\n var b = dup([points.length + 1], 1);\n A2[N][N] = 0;\n for (var i = 0; i < N; ++i) {\n for (var j = 0; j <= i; ++j) {\n A2[j][i] = A2[i][j] = 2 * dot(points[i], points[j]);\n }\n b[i] = dot(points[i], points[i]);\n }\n var x = solve(A2, b);\n var denom = 0;\n var h = x[N + 1];\n for (var i = 0; i < h.length; ++i) {\n denom += h[i];\n }\n var y = new Array(N);\n for (var i = 0; i < N; ++i) {\n var h = x[i];\n var numer = 0;\n for (var j = 0; j < h.length; ++j) {\n numer += h[j];\n }\n y[i] = numer / denom;\n }\n return y;\n }\n function circumcenter(points) {\n if (points.length === 0) {\n return [];\n }\n var D2 = points[0].length;\n var result = dup([D2]);\n var weights = barycentricCircumcenter(points);\n for (var i = 0; i < points.length; ++i) {\n for (var j = 0; j < D2; ++j) {\n result[j] += points[i][j] * weights[i];\n }\n }\n return result;\n }\n circumcenter.barycenetric = barycentricCircumcenter;\n module2.exports = circumcenter;\n }\n ),\n /***/\n 6037: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = circumradius;\n var circumcenter = __webpack_require__2(3628);\n function circumradius(points) {\n var center = circumcenter(points);\n var avgDist = 0;\n for (var i = 0; i < points.length; ++i) {\n var p = points[i];\n for (var j = 0; j < center.length; ++j) {\n avgDist += Math.pow(p[j] - center[j], 2);\n }\n }\n return Math.sqrt(avgDist / points.length);\n }\n }\n ),\n /***/\n 332: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = cleanPSLG;\n var UnionFind = __webpack_require__2(1755);\n var boxIntersect = __webpack_require__2(6867);\n var segseg = __webpack_require__2(1125);\n var rat = __webpack_require__2(7842);\n var ratCmp = __webpack_require__2(1318);\n var ratToFloat = __webpack_require__2(946);\n var ratVec = __webpack_require__2(5838);\n var nextafter = __webpack_require__2(1278);\n var solveIntersection = __webpack_require__2(3637);\n function boundRat(r) {\n var f = ratToFloat(r);\n return [\n nextafter(f, -Infinity),\n nextafter(f, Infinity)\n ];\n }\n function boundEdges(points, edges) {\n var bounds = new Array(edges.length);\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n var a = points[e[0]];\n var b = points[e[1]];\n bounds[i] = [\n nextafter(Math.min(a[0], b[0]), -Infinity),\n nextafter(Math.min(a[1], b[1]), -Infinity),\n nextafter(Math.max(a[0], b[0]), Infinity),\n nextafter(Math.max(a[1], b[1]), Infinity)\n ];\n }\n return bounds;\n }\n function boundPoints(points) {\n var bounds = new Array(points.length);\n for (var i = 0; i < points.length; ++i) {\n var p = points[i];\n bounds[i] = [\n nextafter(p[0], -Infinity),\n nextafter(p[1], -Infinity),\n nextafter(p[0], Infinity),\n nextafter(p[1], Infinity)\n ];\n }\n return bounds;\n }\n function getCrossings(points, edges, edgeBounds) {\n var result = [];\n boxIntersect(edgeBounds, function(i, j) {\n var e = edges[i];\n var f = edges[j];\n if (e[0] === f[0] || e[0] === f[1] || e[1] === f[0] || e[1] === f[1]) {\n return;\n }\n var a = points[e[0]];\n var b = points[e[1]];\n var c = points[f[0]];\n var d = points[f[1]];\n if (segseg(a, b, c, d)) {\n result.push([i, j]);\n }\n });\n return result;\n }\n function getTJunctions(points, edges, edgeBounds, vertBounds) {\n var result = [];\n boxIntersect(edgeBounds, vertBounds, function(i, v) {\n var e = edges[i];\n if (e[0] === v || e[1] === v) {\n return;\n }\n var p = points[v];\n var a = points[e[0]];\n var b = points[e[1]];\n if (segseg(a, b, p, p)) {\n result.push([i, v]);\n }\n });\n return result;\n }\n function cutEdges(floatPoints, edges, crossings, junctions, useColor) {\n var i, e;\n var ratPoints = floatPoints.map(function(p) {\n return [\n rat(p[0]),\n rat(p[1])\n ];\n });\n for (i = 0; i < crossings.length; ++i) {\n var crossing = crossings[i];\n e = crossing[0];\n var f = crossing[1];\n var ee = edges[e];\n var ef = edges[f];\n var x = solveIntersection(\n ratVec(floatPoints[ee[0]]),\n ratVec(floatPoints[ee[1]]),\n ratVec(floatPoints[ef[0]]),\n ratVec(floatPoints[ef[1]])\n );\n if (!x) {\n continue;\n }\n var idx = floatPoints.length;\n floatPoints.push([ratToFloat(x[0]), ratToFloat(x[1])]);\n ratPoints.push(x);\n junctions.push([e, idx], [f, idx]);\n }\n junctions.sort(function(a2, b2) {\n if (a2[0] !== b2[0]) {\n return a2[0] - b2[0];\n }\n var u = ratPoints[a2[1]];\n var v = ratPoints[b2[1]];\n return ratCmp(u[0], v[0]) || ratCmp(u[1], v[1]);\n });\n for (i = junctions.length - 1; i >= 0; --i) {\n var junction = junctions[i];\n e = junction[0];\n var edge = edges[e];\n var s = edge[0];\n var t = edge[1];\n var a = floatPoints[s];\n var b = floatPoints[t];\n if ((a[0] - b[0] || a[1] - b[1]) < 0) {\n var tmp = s;\n s = t;\n t = tmp;\n }\n edge[0] = s;\n var last = edge[1] = junction[1];\n var color2;\n if (useColor) {\n color2 = edge[2];\n }\n while (i > 0 && junctions[i - 1][0] === e) {\n var junction = junctions[--i];\n var next = junction[1];\n if (useColor) {\n edges.push([last, next, color2]);\n } else {\n edges.push([last, next]);\n }\n last = next;\n }\n if (useColor) {\n edges.push([last, t, color2]);\n } else {\n edges.push([last, t]);\n }\n }\n return ratPoints;\n }\n function dedupPoints(floatPoints, ratPoints, floatBounds) {\n var numPoints = ratPoints.length;\n var uf = new UnionFind(numPoints);\n var bounds = [];\n for (var i = 0; i < ratPoints.length; ++i) {\n var p = ratPoints[i];\n var xb = boundRat(p[0]);\n var yb = boundRat(p[1]);\n bounds.push([\n nextafter(xb[0], -Infinity),\n nextafter(yb[0], -Infinity),\n nextafter(xb[1], Infinity),\n nextafter(yb[1], Infinity)\n ]);\n }\n boxIntersect(bounds, function(i2, j2) {\n uf.link(i2, j2);\n });\n var noDupes = true;\n var labels = new Array(numPoints);\n for (var i = 0; i < numPoints; ++i) {\n var j = uf.find(i);\n if (j !== i) {\n noDupes = false;\n floatPoints[j] = [\n Math.min(floatPoints[i][0], floatPoints[j][0]),\n Math.min(floatPoints[i][1], floatPoints[j][1])\n ];\n }\n }\n if (noDupes) {\n return null;\n }\n var ptr = 0;\n for (var i = 0; i < numPoints; ++i) {\n var j = uf.find(i);\n if (j === i) {\n labels[i] = ptr;\n floatPoints[ptr++] = floatPoints[i];\n } else {\n labels[i] = -1;\n }\n }\n floatPoints.length = ptr;\n for (var i = 0; i < numPoints; ++i) {\n if (labels[i] < 0) {\n labels[i] = labels[uf.find(i)];\n }\n }\n return labels;\n }\n function compareLex2(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n function compareLex3(a, b) {\n var d = a[0] - b[0] || a[1] - b[1];\n if (d) {\n return d;\n }\n if (a[2] < b[2]) {\n return -1;\n } else if (a[2] > b[2]) {\n return 1;\n }\n return 0;\n }\n function dedupEdges(edges, labels, useColor) {\n if (edges.length === 0) {\n return;\n }\n if (labels) {\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n var a = labels[e[0]];\n var b = labels[e[1]];\n e[0] = Math.min(a, b);\n e[1] = Math.max(a, b);\n }\n } else {\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n var a = e[0];\n var b = e[1];\n e[0] = Math.min(a, b);\n e[1] = Math.max(a, b);\n }\n }\n if (useColor) {\n edges.sort(compareLex3);\n } else {\n edges.sort(compareLex2);\n }\n var ptr = 1;\n for (var i = 1; i < edges.length; ++i) {\n var prev = edges[i - 1];\n var next = edges[i];\n if (next[0] === prev[0] && next[1] === prev[1] && (!useColor || next[2] === prev[2])) {\n continue;\n }\n edges[ptr++] = next;\n }\n edges.length = ptr;\n }\n function preRound(points, edges, useColor) {\n var labels = dedupPoints(points, [], boundPoints(points));\n dedupEdges(edges, labels, useColor);\n return !!labels;\n }\n function snapRound(points, edges, useColor) {\n var edgeBounds = boundEdges(points, edges);\n var crossings = getCrossings(points, edges, edgeBounds);\n var vertBounds = boundPoints(points);\n var tjunctions = getTJunctions(points, edges, edgeBounds, vertBounds);\n var ratPoints = cutEdges(points, edges, crossings, tjunctions, useColor);\n var labels = dedupPoints(points, ratPoints, vertBounds);\n dedupEdges(edges, labels, useColor);\n if (!labels) {\n return crossings.length > 0 || tjunctions.length > 0;\n }\n return true;\n }\n function cleanPSLG(points, edges, colors) {\n var prevEdges;\n if (colors) {\n prevEdges = edges;\n var augEdges = new Array(edges.length);\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n augEdges[i] = [e[0], e[1], colors[i]];\n }\n edges = augEdges;\n }\n var modified = preRound(points, edges, !!colors);\n while (snapRound(points, edges, !!colors)) {\n modified = true;\n }\n if (!!colors && modified) {\n prevEdges.length = 0;\n colors.length = 0;\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n prevEdges.push([e[0], e[1]]);\n colors.push(e[2]);\n }\n }\n return modified;\n }\n }\n ),\n /***/\n 3637: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = solveIntersection;\n var ratMul = __webpack_require__2(6504);\n var ratDiv = __webpack_require__2(8697);\n var ratSub = __webpack_require__2(5572);\n var ratSign = __webpack_require__2(7721);\n var rvSub = __webpack_require__2(544);\n var rvAdd = __webpack_require__2(2653);\n var rvMuls = __webpack_require__2(8987);\n function ratPerp(a, b) {\n return ratSub(ratMul(a[0], b[1]), ratMul(a[1], b[0]));\n }\n function solveIntersection(a, b, c, d) {\n var ba = rvSub(b, a);\n var dc = rvSub(d, c);\n var baXdc = ratPerp(ba, dc);\n if (ratSign(baXdc) === 0) {\n return null;\n }\n var ac = rvSub(a, c);\n var dcXac = ratPerp(dc, ac);\n var t = ratDiv(dcXac, baXdc);\n var s = rvMuls(ba, t);\n var r = rvAdd(a, s);\n return r;\n }\n }\n ),\n /***/\n 3642: (\n /***/\n function(module2) {\n module2.exports = {\n \"jet\": [{ \"index\": 0, \"rgb\": [0, 0, 131] }, { \"index\": 0.125, \"rgb\": [0, 60, 170] }, { \"index\": 0.375, \"rgb\": [5, 255, 255] }, { \"index\": 0.625, \"rgb\": [255, 255, 0] }, { \"index\": 0.875, \"rgb\": [250, 0, 0] }, { \"index\": 1, \"rgb\": [128, 0, 0] }],\n \"hsv\": [{ \"index\": 0, \"rgb\": [255, 0, 0] }, { \"index\": 0.169, \"rgb\": [253, 255, 2] }, { \"index\": 0.173, \"rgb\": [247, 255, 2] }, { \"index\": 0.337, \"rgb\": [0, 252, 4] }, { \"index\": 0.341, \"rgb\": [0, 252, 10] }, { \"index\": 0.506, \"rgb\": [1, 249, 255] }, { \"index\": 0.671, \"rgb\": [2, 0, 253] }, { \"index\": 0.675, \"rgb\": [8, 0, 253] }, { \"index\": 0.839, \"rgb\": [255, 0, 251] }, { \"index\": 0.843, \"rgb\": [255, 0, 245] }, { \"index\": 1, \"rgb\": [255, 0, 6] }],\n \"hot\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.3, \"rgb\": [230, 0, 0] }, { \"index\": 0.6, \"rgb\": [255, 210, 0] }, { \"index\": 1, \"rgb\": [255, 255, 255] }],\n \"spring\": [{ \"index\": 0, \"rgb\": [255, 0, 255] }, { \"index\": 1, \"rgb\": [255, 255, 0] }],\n \"summer\": [{ \"index\": 0, \"rgb\": [0, 128, 102] }, { \"index\": 1, \"rgb\": [255, 255, 102] }],\n \"autumn\": [{ \"index\": 0, \"rgb\": [255, 0, 0] }, { \"index\": 1, \"rgb\": [255, 255, 0] }],\n \"winter\": [{ \"index\": 0, \"rgb\": [0, 0, 255] }, { \"index\": 1, \"rgb\": [0, 255, 128] }],\n \"bone\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.376, \"rgb\": [84, 84, 116] }, { \"index\": 0.753, \"rgb\": [169, 200, 200] }, { \"index\": 1, \"rgb\": [255, 255, 255] }],\n \"copper\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.804, \"rgb\": [255, 160, 102] }, { \"index\": 1, \"rgb\": [255, 199, 127] }],\n \"greys\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 1, \"rgb\": [255, 255, 255] }],\n \"yignbu\": [{ \"index\": 0, \"rgb\": [8, 29, 88] }, { \"index\": 0.125, \"rgb\": [37, 52, 148] }, { \"index\": 0.25, \"rgb\": [34, 94, 168] }, { \"index\": 0.375, \"rgb\": [29, 145, 192] }, { \"index\": 0.5, \"rgb\": [65, 182, 196] }, { \"index\": 0.625, \"rgb\": [127, 205, 187] }, { \"index\": 0.75, \"rgb\": [199, 233, 180] }, { \"index\": 0.875, \"rgb\": [237, 248, 217] }, { \"index\": 1, \"rgb\": [255, 255, 217] }],\n \"greens\": [{ \"index\": 0, \"rgb\": [0, 68, 27] }, { \"index\": 0.125, \"rgb\": [0, 109, 44] }, { \"index\": 0.25, \"rgb\": [35, 139, 69] }, { \"index\": 0.375, \"rgb\": [65, 171, 93] }, { \"index\": 0.5, \"rgb\": [116, 196, 118] }, { \"index\": 0.625, \"rgb\": [161, 217, 155] }, { \"index\": 0.75, \"rgb\": [199, 233, 192] }, { \"index\": 0.875, \"rgb\": [229, 245, 224] }, { \"index\": 1, \"rgb\": [247, 252, 245] }],\n \"yiorrd\": [{ \"index\": 0, \"rgb\": [128, 0, 38] }, { \"index\": 0.125, \"rgb\": [189, 0, 38] }, { \"index\": 0.25, \"rgb\": [227, 26, 28] }, { \"index\": 0.375, \"rgb\": [252, 78, 42] }, { \"index\": 0.5, \"rgb\": [253, 141, 60] }, { \"index\": 0.625, \"rgb\": [254, 178, 76] }, { \"index\": 0.75, \"rgb\": [254, 217, 118] }, { \"index\": 0.875, \"rgb\": [255, 237, 160] }, { \"index\": 1, \"rgb\": [255, 255, 204] }],\n \"bluered\": [{ \"index\": 0, \"rgb\": [0, 0, 255] }, { \"index\": 1, \"rgb\": [255, 0, 0] }],\n \"rdbu\": [{ \"index\": 0, \"rgb\": [5, 10, 172] }, { \"index\": 0.35, \"rgb\": [106, 137, 247] }, { \"index\": 0.5, \"rgb\": [190, 190, 190] }, { \"index\": 0.6, \"rgb\": [220, 170, 132] }, { \"index\": 0.7, \"rgb\": [230, 145, 90] }, { \"index\": 1, \"rgb\": [178, 10, 28] }],\n \"picnic\": [{ \"index\": 0, \"rgb\": [0, 0, 255] }, { \"index\": 0.1, \"rgb\": [51, 153, 255] }, { \"index\": 0.2, \"rgb\": [102, 204, 255] }, { \"index\": 0.3, \"rgb\": [153, 204, 255] }, { \"index\": 0.4, \"rgb\": [204, 204, 255] }, { \"index\": 0.5, \"rgb\": [255, 255, 255] }, { \"index\": 0.6, \"rgb\": [255, 204, 255] }, { \"index\": 0.7, \"rgb\": [255, 153, 255] }, { \"index\": 0.8, \"rgb\": [255, 102, 204] }, { \"index\": 0.9, \"rgb\": [255, 102, 102] }, { \"index\": 1, \"rgb\": [255, 0, 0] }],\n \"rainbow\": [{ \"index\": 0, \"rgb\": [150, 0, 90] }, { \"index\": 0.125, \"rgb\": [0, 0, 200] }, { \"index\": 0.25, \"rgb\": [0, 25, 255] }, { \"index\": 0.375, \"rgb\": [0, 152, 255] }, { \"index\": 0.5, \"rgb\": [44, 255, 150] }, { \"index\": 0.625, \"rgb\": [151, 255, 0] }, { \"index\": 0.75, \"rgb\": [255, 234, 0] }, { \"index\": 0.875, \"rgb\": [255, 111, 0] }, { \"index\": 1, \"rgb\": [255, 0, 0] }],\n \"portland\": [{ \"index\": 0, \"rgb\": [12, 51, 131] }, { \"index\": 0.25, \"rgb\": [10, 136, 186] }, { \"index\": 0.5, \"rgb\": [242, 211, 56] }, { \"index\": 0.75, \"rgb\": [242, 143, 56] }, { \"index\": 1, \"rgb\": [217, 30, 30] }],\n \"blackbody\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.2, \"rgb\": [230, 0, 0] }, { \"index\": 0.4, \"rgb\": [230, 210, 0] }, { \"index\": 0.7, \"rgb\": [255, 255, 255] }, { \"index\": 1, \"rgb\": [160, 200, 255] }],\n \"earth\": [{ \"index\": 0, \"rgb\": [0, 0, 130] }, { \"index\": 0.1, \"rgb\": [0, 180, 180] }, { \"index\": 0.2, \"rgb\": [40, 210, 40] }, { \"index\": 0.4, \"rgb\": [230, 230, 50] }, { \"index\": 0.6, \"rgb\": [120, 70, 20] }, { \"index\": 1, \"rgb\": [255, 255, 255] }],\n \"electric\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.15, \"rgb\": [30, 0, 100] }, { \"index\": 0.4, \"rgb\": [120, 0, 100] }, { \"index\": 0.6, \"rgb\": [160, 90, 0] }, { \"index\": 0.8, \"rgb\": [230, 200, 0] }, { \"index\": 1, \"rgb\": [255, 250, 220] }],\n \"alpha\": [{ \"index\": 0, \"rgb\": [255, 255, 255, 0] }, { \"index\": 1, \"rgb\": [255, 255, 255, 1] }],\n \"viridis\": [{ \"index\": 0, \"rgb\": [68, 1, 84] }, { \"index\": 0.13, \"rgb\": [71, 44, 122] }, { \"index\": 0.25, \"rgb\": [59, 81, 139] }, { \"index\": 0.38, \"rgb\": [44, 113, 142] }, { \"index\": 0.5, \"rgb\": [33, 144, 141] }, { \"index\": 0.63, \"rgb\": [39, 173, 129] }, { \"index\": 0.75, \"rgb\": [92, 200, 99] }, { \"index\": 0.88, \"rgb\": [170, 220, 50] }, { \"index\": 1, \"rgb\": [253, 231, 37] }],\n \"inferno\": [{ \"index\": 0, \"rgb\": [0, 0, 4] }, { \"index\": 0.13, \"rgb\": [31, 12, 72] }, { \"index\": 0.25, \"rgb\": [85, 15, 109] }, { \"index\": 0.38, \"rgb\": [136, 34, 106] }, { \"index\": 0.5, \"rgb\": [186, 54, 85] }, { \"index\": 0.63, \"rgb\": [227, 89, 51] }, { \"index\": 0.75, \"rgb\": [249, 140, 10] }, { \"index\": 0.88, \"rgb\": [249, 201, 50] }, { \"index\": 1, \"rgb\": [252, 255, 164] }],\n \"magma\": [{ \"index\": 0, \"rgb\": [0, 0, 4] }, { \"index\": 0.13, \"rgb\": [28, 16, 68] }, { \"index\": 0.25, \"rgb\": [79, 18, 123] }, { \"index\": 0.38, \"rgb\": [129, 37, 129] }, { \"index\": 0.5, \"rgb\": [181, 54, 122] }, { \"index\": 0.63, \"rgb\": [229, 80, 100] }, { \"index\": 0.75, \"rgb\": [251, 135, 97] }, { \"index\": 0.88, \"rgb\": [254, 194, 135] }, { \"index\": 1, \"rgb\": [252, 253, 191] }],\n \"plasma\": [{ \"index\": 0, \"rgb\": [13, 8, 135] }, { \"index\": 0.13, \"rgb\": [75, 3, 161] }, { \"index\": 0.25, \"rgb\": [125, 3, 168] }, { \"index\": 0.38, \"rgb\": [168, 34, 150] }, { \"index\": 0.5, \"rgb\": [203, 70, 121] }, { \"index\": 0.63, \"rgb\": [229, 107, 93] }, { \"index\": 0.75, \"rgb\": [248, 148, 65] }, { \"index\": 0.88, \"rgb\": [253, 195, 40] }, { \"index\": 1, \"rgb\": [240, 249, 33] }],\n \"warm\": [{ \"index\": 0, \"rgb\": [125, 0, 179] }, { \"index\": 0.13, \"rgb\": [172, 0, 187] }, { \"index\": 0.25, \"rgb\": [219, 0, 170] }, { \"index\": 0.38, \"rgb\": [255, 0, 130] }, { \"index\": 0.5, \"rgb\": [255, 63, 74] }, { \"index\": 0.63, \"rgb\": [255, 123, 0] }, { \"index\": 0.75, \"rgb\": [234, 176, 0] }, { \"index\": 0.88, \"rgb\": [190, 228, 0] }, { \"index\": 1, \"rgb\": [147, 255, 0] }],\n \"cool\": [{ \"index\": 0, \"rgb\": [125, 0, 179] }, { \"index\": 0.13, \"rgb\": [116, 0, 218] }, { \"index\": 0.25, \"rgb\": [98, 74, 237] }, { \"index\": 0.38, \"rgb\": [68, 146, 231] }, { \"index\": 0.5, \"rgb\": [0, 204, 197] }, { \"index\": 0.63, \"rgb\": [0, 247, 146] }, { \"index\": 0.75, \"rgb\": [0, 255, 88] }, { \"index\": 0.88, \"rgb\": [40, 255, 8] }, { \"index\": 1, \"rgb\": [147, 255, 0] }],\n \"rainbow-soft\": [{ \"index\": 0, \"rgb\": [125, 0, 179] }, { \"index\": 0.1, \"rgb\": [199, 0, 180] }, { \"index\": 0.2, \"rgb\": [255, 0, 121] }, { \"index\": 0.3, \"rgb\": [255, 108, 0] }, { \"index\": 0.4, \"rgb\": [222, 194, 0] }, { \"index\": 0.5, \"rgb\": [150, 255, 0] }, { \"index\": 0.6, \"rgb\": [0, 255, 55] }, { \"index\": 0.7, \"rgb\": [0, 246, 150] }, { \"index\": 0.8, \"rgb\": [50, 167, 222] }, { \"index\": 0.9, \"rgb\": [103, 51, 235] }, { \"index\": 1, \"rgb\": [124, 0, 186] }],\n \"bathymetry\": [{ \"index\": 0, \"rgb\": [40, 26, 44] }, { \"index\": 0.13, \"rgb\": [59, 49, 90] }, { \"index\": 0.25, \"rgb\": [64, 76, 139] }, { \"index\": 0.38, \"rgb\": [63, 110, 151] }, { \"index\": 0.5, \"rgb\": [72, 142, 158] }, { \"index\": 0.63, \"rgb\": [85, 174, 163] }, { \"index\": 0.75, \"rgb\": [120, 206, 163] }, { \"index\": 0.88, \"rgb\": [187, 230, 172] }, { \"index\": 1, \"rgb\": [253, 254, 204] }],\n \"cdom\": [{ \"index\": 0, \"rgb\": [47, 15, 62] }, { \"index\": 0.13, \"rgb\": [87, 23, 86] }, { \"index\": 0.25, \"rgb\": [130, 28, 99] }, { \"index\": 0.38, \"rgb\": [171, 41, 96] }, { \"index\": 0.5, \"rgb\": [206, 67, 86] }, { \"index\": 0.63, \"rgb\": [230, 106, 84] }, { \"index\": 0.75, \"rgb\": [242, 149, 103] }, { \"index\": 0.88, \"rgb\": [249, 193, 135] }, { \"index\": 1, \"rgb\": [254, 237, 176] }],\n \"chlorophyll\": [{ \"index\": 0, \"rgb\": [18, 36, 20] }, { \"index\": 0.13, \"rgb\": [25, 63, 41] }, { \"index\": 0.25, \"rgb\": [24, 91, 59] }, { \"index\": 0.38, \"rgb\": [13, 119, 72] }, { \"index\": 0.5, \"rgb\": [18, 148, 80] }, { \"index\": 0.63, \"rgb\": [80, 173, 89] }, { \"index\": 0.75, \"rgb\": [132, 196, 122] }, { \"index\": 0.88, \"rgb\": [175, 221, 162] }, { \"index\": 1, \"rgb\": [215, 249, 208] }],\n \"density\": [{ \"index\": 0, \"rgb\": [54, 14, 36] }, { \"index\": 0.13, \"rgb\": [89, 23, 80] }, { \"index\": 0.25, \"rgb\": [110, 45, 132] }, { \"index\": 0.38, \"rgb\": [120, 77, 178] }, { \"index\": 0.5, \"rgb\": [120, 113, 213] }, { \"index\": 0.63, \"rgb\": [115, 151, 228] }, { \"index\": 0.75, \"rgb\": [134, 185, 227] }, { \"index\": 0.88, \"rgb\": [177, 214, 227] }, { \"index\": 1, \"rgb\": [230, 241, 241] }],\n \"freesurface-blue\": [{ \"index\": 0, \"rgb\": [30, 4, 110] }, { \"index\": 0.13, \"rgb\": [47, 14, 176] }, { \"index\": 0.25, \"rgb\": [41, 45, 236] }, { \"index\": 0.38, \"rgb\": [25, 99, 212] }, { \"index\": 0.5, \"rgb\": [68, 131, 200] }, { \"index\": 0.63, \"rgb\": [114, 156, 197] }, { \"index\": 0.75, \"rgb\": [157, 181, 203] }, { \"index\": 0.88, \"rgb\": [200, 208, 216] }, { \"index\": 1, \"rgb\": [241, 237, 236] }],\n \"freesurface-red\": [{ \"index\": 0, \"rgb\": [60, 9, 18] }, { \"index\": 0.13, \"rgb\": [100, 17, 27] }, { \"index\": 0.25, \"rgb\": [142, 20, 29] }, { \"index\": 0.38, \"rgb\": [177, 43, 27] }, { \"index\": 0.5, \"rgb\": [192, 87, 63] }, { \"index\": 0.63, \"rgb\": [205, 125, 105] }, { \"index\": 0.75, \"rgb\": [216, 162, 148] }, { \"index\": 0.88, \"rgb\": [227, 199, 193] }, { \"index\": 1, \"rgb\": [241, 237, 236] }],\n \"oxygen\": [{ \"index\": 0, \"rgb\": [64, 5, 5] }, { \"index\": 0.13, \"rgb\": [106, 6, 15] }, { \"index\": 0.25, \"rgb\": [144, 26, 7] }, { \"index\": 0.38, \"rgb\": [168, 64, 3] }, { \"index\": 0.5, \"rgb\": [188, 100, 4] }, { \"index\": 0.63, \"rgb\": [206, 136, 11] }, { \"index\": 0.75, \"rgb\": [220, 174, 25] }, { \"index\": 0.88, \"rgb\": [231, 215, 44] }, { \"index\": 1, \"rgb\": [248, 254, 105] }],\n \"par\": [{ \"index\": 0, \"rgb\": [51, 20, 24] }, { \"index\": 0.13, \"rgb\": [90, 32, 35] }, { \"index\": 0.25, \"rgb\": [129, 44, 34] }, { \"index\": 0.38, \"rgb\": [159, 68, 25] }, { \"index\": 0.5, \"rgb\": [182, 99, 19] }, { \"index\": 0.63, \"rgb\": [199, 134, 22] }, { \"index\": 0.75, \"rgb\": [212, 171, 35] }, { \"index\": 0.88, \"rgb\": [221, 210, 54] }, { \"index\": 1, \"rgb\": [225, 253, 75] }],\n \"phase\": [{ \"index\": 0, \"rgb\": [145, 105, 18] }, { \"index\": 0.13, \"rgb\": [184, 71, 38] }, { \"index\": 0.25, \"rgb\": [186, 58, 115] }, { \"index\": 0.38, \"rgb\": [160, 71, 185] }, { \"index\": 0.5, \"rgb\": [110, 97, 218] }, { \"index\": 0.63, \"rgb\": [50, 123, 164] }, { \"index\": 0.75, \"rgb\": [31, 131, 110] }, { \"index\": 0.88, \"rgb\": [77, 129, 34] }, { \"index\": 1, \"rgb\": [145, 105, 18] }],\n \"salinity\": [{ \"index\": 0, \"rgb\": [42, 24, 108] }, { \"index\": 0.13, \"rgb\": [33, 50, 162] }, { \"index\": 0.25, \"rgb\": [15, 90, 145] }, { \"index\": 0.38, \"rgb\": [40, 118, 137] }, { \"index\": 0.5, \"rgb\": [59, 146, 135] }, { \"index\": 0.63, \"rgb\": [79, 175, 126] }, { \"index\": 0.75, \"rgb\": [120, 203, 104] }, { \"index\": 0.88, \"rgb\": [193, 221, 100] }, { \"index\": 1, \"rgb\": [253, 239, 154] }],\n \"temperature\": [{ \"index\": 0, \"rgb\": [4, 35, 51] }, { \"index\": 0.13, \"rgb\": [23, 51, 122] }, { \"index\": 0.25, \"rgb\": [85, 59, 157] }, { \"index\": 0.38, \"rgb\": [129, 79, 143] }, { \"index\": 0.5, \"rgb\": [175, 95, 130] }, { \"index\": 0.63, \"rgb\": [222, 112, 101] }, { \"index\": 0.75, \"rgb\": [249, 146, 66] }, { \"index\": 0.88, \"rgb\": [249, 196, 65] }, { \"index\": 1, \"rgb\": [232, 250, 91] }],\n \"turbidity\": [{ \"index\": 0, \"rgb\": [34, 31, 27] }, { \"index\": 0.13, \"rgb\": [65, 50, 41] }, { \"index\": 0.25, \"rgb\": [98, 69, 52] }, { \"index\": 0.38, \"rgb\": [131, 89, 57] }, { \"index\": 0.5, \"rgb\": [161, 112, 59] }, { \"index\": 0.63, \"rgb\": [185, 140, 66] }, { \"index\": 0.75, \"rgb\": [202, 174, 88] }, { \"index\": 0.88, \"rgb\": [216, 209, 126] }, { \"index\": 1, \"rgb\": [233, 246, 171] }],\n \"velocity-blue\": [{ \"index\": 0, \"rgb\": [17, 32, 64] }, { \"index\": 0.13, \"rgb\": [35, 52, 116] }, { \"index\": 0.25, \"rgb\": [29, 81, 156] }, { \"index\": 0.38, \"rgb\": [31, 113, 162] }, { \"index\": 0.5, \"rgb\": [50, 144, 169] }, { \"index\": 0.63, \"rgb\": [87, 173, 176] }, { \"index\": 0.75, \"rgb\": [149, 196, 189] }, { \"index\": 0.88, \"rgb\": [203, 221, 211] }, { \"index\": 1, \"rgb\": [254, 251, 230] }],\n \"velocity-green\": [{ \"index\": 0, \"rgb\": [23, 35, 19] }, { \"index\": 0.13, \"rgb\": [24, 64, 38] }, { \"index\": 0.25, \"rgb\": [11, 95, 45] }, { \"index\": 0.38, \"rgb\": [39, 123, 35] }, { \"index\": 0.5, \"rgb\": [95, 146, 12] }, { \"index\": 0.63, \"rgb\": [152, 165, 18] }, { \"index\": 0.75, \"rgb\": [201, 186, 69] }, { \"index\": 0.88, \"rgb\": [233, 216, 137] }, { \"index\": 1, \"rgb\": [255, 253, 205] }],\n \"cubehelix\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.07, \"rgb\": [22, 5, 59] }, { \"index\": 0.13, \"rgb\": [60, 4, 105] }, { \"index\": 0.2, \"rgb\": [109, 1, 135] }, { \"index\": 0.27, \"rgb\": [161, 0, 147] }, { \"index\": 0.33, \"rgb\": [210, 2, 142] }, { \"index\": 0.4, \"rgb\": [251, 11, 123] }, { \"index\": 0.47, \"rgb\": [255, 29, 97] }, { \"index\": 0.53, \"rgb\": [255, 54, 69] }, { \"index\": 0.6, \"rgb\": [255, 85, 46] }, { \"index\": 0.67, \"rgb\": [255, 120, 34] }, { \"index\": 0.73, \"rgb\": [255, 157, 37] }, { \"index\": 0.8, \"rgb\": [241, 191, 57] }, { \"index\": 0.87, \"rgb\": [224, 220, 93] }, { \"index\": 0.93, \"rgb\": [218, 241, 142] }, { \"index\": 1, \"rgb\": [227, 253, 198] }]\n };\n }\n ),\n /***/\n 6729: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var colorScale = __webpack_require__2(3642);\n var lerp = __webpack_require__2(395);\n module2.exports = createColormap;\n function createColormap(spec) {\n var indicies, fromrgba, torgba, nsteps, cmap, colormap, format, nshades, colors, alpha, i;\n if (!spec) spec = {};\n nshades = (spec.nshades || 72) - 1;\n format = spec.format || \"hex\";\n colormap = spec.colormap;\n if (!colormap) colormap = \"jet\";\n if (typeof colormap === \"string\") {\n colormap = colormap.toLowerCase();\n if (!colorScale[colormap]) {\n throw Error(colormap + \" not a supported colorscale\");\n }\n cmap = colorScale[colormap];\n } else if (Array.isArray(colormap)) {\n cmap = colormap.slice();\n } else {\n throw Error(\"unsupported colormap option\", colormap);\n }\n if (cmap.length > nshades + 1) {\n throw new Error(\n colormap + \" map requires nshades to be at least size \" + cmap.length\n );\n }\n if (!Array.isArray(spec.alpha)) {\n if (typeof spec.alpha === \"number\") {\n alpha = [spec.alpha, spec.alpha];\n } else {\n alpha = [1, 1];\n }\n } else if (spec.alpha.length !== 2) {\n alpha = [1, 1];\n } else {\n alpha = spec.alpha.slice();\n }\n indicies = cmap.map(function(c) {\n return Math.round(c.index * nshades);\n });\n alpha[0] = Math.min(Math.max(alpha[0], 0), 1);\n alpha[1] = Math.min(Math.max(alpha[1], 0), 1);\n var steps = cmap.map(function(c, i2) {\n var index = cmap[i2].index;\n var rgba3 = cmap[i2].rgb.slice();\n if (rgba3.length === 4 && rgba3[3] >= 0 && rgba3[3] <= 1) {\n return rgba3;\n }\n rgba3[3] = alpha[0] + (alpha[1] - alpha[0]) * index;\n return rgba3;\n });\n var colors = [];\n for (i = 0; i < indicies.length - 1; ++i) {\n nsteps = indicies[i + 1] - indicies[i];\n fromrgba = steps[i];\n torgba = steps[i + 1];\n for (var j = 0; j < nsteps; j++) {\n var amt = j / nsteps;\n colors.push([\n Math.round(lerp(fromrgba[0], torgba[0], amt)),\n Math.round(lerp(fromrgba[1], torgba[1], amt)),\n Math.round(lerp(fromrgba[2], torgba[2], amt)),\n lerp(fromrgba[3], torgba[3], amt)\n ]);\n }\n }\n colors.push(cmap[cmap.length - 1].rgb.concat(alpha[1]));\n if (format === \"hex\") colors = colors.map(rgb2hex);\n else if (format === \"rgbaString\") colors = colors.map(rgbaStr);\n else if (format === \"float\") colors = colors.map(rgb2float);\n return colors;\n }\n ;\n function rgb2float(rgba3) {\n return [\n rgba3[0] / 255,\n rgba3[1] / 255,\n rgba3[2] / 255,\n rgba3[3]\n ];\n }\n function rgb2hex(rgba3) {\n var dig, hex2 = \"#\";\n for (var i = 0; i < 3; ++i) {\n dig = rgba3[i];\n dig = dig.toString(16);\n hex2 += (\"00\" + dig).substr(dig.length);\n }\n return hex2;\n }\n function rgbaStr(rgba3) {\n return \"rgba(\" + rgba3.join(\",\") + \")\";\n }\n }\n ),\n /***/\n 3140: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = compareAngle;\n var orient = __webpack_require__2(3250);\n var sgn = __webpack_require__2(8572);\n var twoSum = __webpack_require__2(9362);\n var robustProduct = __webpack_require__2(5382);\n var robustSum = __webpack_require__2(8210);\n function testInterior(a, b, c) {\n var x0 = twoSum(a[0], -b[0]);\n var y0 = twoSum(a[1], -b[1]);\n var x1 = twoSum(c[0], -b[0]);\n var y1 = twoSum(c[1], -b[1]);\n var d = robustSum(\n robustProduct(x0, x1),\n robustProduct(y0, y1)\n );\n return d[d.length - 1] >= 0;\n }\n function compareAngle(a, b, c, d) {\n var bcd = orient(b, c, d);\n if (bcd === 0) {\n var sabc = sgn(orient(a, b, c));\n var sabd = sgn(orient(a, b, d));\n if (sabc === sabd) {\n if (sabc === 0) {\n var ic = testInterior(a, b, c);\n var id = testInterior(a, b, d);\n if (ic === id) {\n return 0;\n } else if (ic) {\n return 1;\n } else {\n return -1;\n }\n }\n return 0;\n } else if (sabd === 0) {\n if (sabc > 0) {\n return -1;\n } else if (testInterior(a, b, d)) {\n return -1;\n } else {\n return 1;\n }\n } else if (sabc === 0) {\n if (sabd > 0) {\n return 1;\n } else if (testInterior(a, b, c)) {\n return 1;\n } else {\n return -1;\n }\n }\n return sgn(sabd - sabc);\n }\n var abc = orient(a, b, c);\n if (abc > 0) {\n if (bcd > 0 && orient(a, b, d) > 0) {\n return 1;\n }\n return -1;\n } else if (abc < 0) {\n if (bcd > 0 || orient(a, b, d) > 0) {\n return 1;\n }\n return -1;\n } else {\n var abd = orient(a, b, d);\n if (abd > 0) {\n return 1;\n } else {\n if (testInterior(a, b, c)) {\n return 1;\n } else {\n return -1;\n }\n }\n }\n }\n }\n ),\n /***/\n 8572: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = function signum(x) {\n if (x < 0) {\n return -1;\n }\n if (x > 0) {\n return 1;\n }\n return 0;\n };\n }\n ),\n /***/\n 8507: (\n /***/\n function(module2) {\n module2.exports = compareCells;\n var min = Math.min;\n function compareInt(a, b) {\n return a - b;\n }\n function compareCells(a, b) {\n var n = a.length, t = a.length - b.length;\n if (t) {\n return t;\n }\n switch (n) {\n case 0:\n return 0;\n case 1:\n return a[0] - b[0];\n case 2:\n return a[0] + a[1] - b[0] - b[1] || min(a[0], a[1]) - min(b[0], b[1]);\n case 3:\n var l1 = a[0] + a[1], m1 = b[0] + b[1];\n t = l1 + a[2] - (m1 + b[2]);\n if (t) {\n return t;\n }\n var l0 = min(a[0], a[1]), m0 = min(b[0], b[1]);\n return min(l0, a[2]) - min(m0, b[2]) || min(l0 + a[2], l1) - min(m0 + b[2], m1);\n case 4:\n var aw = a[0], ax = a[1], ay = a[2], az = a[3], bw = b[0], bx = b[1], by = b[2], bz = b[3];\n return aw + ax + ay + az - (bw + bx + by + bz) || min(aw, ax, ay, az) - min(bw, bx, by, bz, bw) || min(aw + ax, aw + ay, aw + az, ax + ay, ax + az, ay + az) - min(bw + bx, bw + by, bw + bz, bx + by, bx + bz, by + bz) || min(aw + ax + ay, aw + ax + az, aw + ay + az, ax + ay + az) - min(bw + bx + by, bw + bx + bz, bw + by + bz, bx + by + bz);\n default:\n var as = a.slice().sort(compareInt);\n var bs = b.slice().sort(compareInt);\n for (var i = 0; i < n; ++i) {\n t = as[i] - bs[i];\n if (t) {\n return t;\n }\n }\n return 0;\n }\n }\n }\n ),\n /***/\n 3788: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var compareCells = __webpack_require__2(8507);\n var parity = __webpack_require__2(2419);\n module2.exports = compareOrientedCells;\n function compareOrientedCells(a, b) {\n return compareCells(a, b) || parity(a) - parity(b);\n }\n }\n ),\n /***/\n 7352: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var convexHull1d = __webpack_require__2(5721);\n var convexHull2d = __webpack_require__2(4750);\n var convexHullnd = __webpack_require__2(2690);\n module2.exports = convexHull;\n function convexHull(points) {\n var n = points.length;\n if (n === 0) {\n return [];\n } else if (n === 1) {\n return [[0]];\n }\n var d = points[0].length;\n if (d === 0) {\n return [];\n } else if (d === 1) {\n return convexHull1d(points);\n } else if (d === 2) {\n return convexHull2d(points);\n }\n return convexHullnd(points, d);\n }\n }\n ),\n /***/\n 5721: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = convexHull1d;\n function convexHull1d(points) {\n var lo = 0;\n var hi = 0;\n for (var i = 1; i < points.length; ++i) {\n if (points[i][0] < points[lo][0]) {\n lo = i;\n }\n if (points[i][0] > points[hi][0]) {\n hi = i;\n }\n }\n if (lo < hi) {\n return [[lo], [hi]];\n } else if (lo > hi) {\n return [[hi], [lo]];\n } else {\n return [[lo]];\n }\n }\n }\n ),\n /***/\n 4750: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = convexHull2D;\n var monotoneHull = __webpack_require__2(3090);\n function convexHull2D(points) {\n var hull = monotoneHull(points);\n var h = hull.length;\n if (h <= 2) {\n return [];\n }\n var edges = new Array(h);\n var a = hull[h - 1];\n for (var i = 0; i < h; ++i) {\n var b = hull[i];\n edges[i] = [a, b];\n a = b;\n }\n return edges;\n }\n }\n ),\n /***/\n 2690: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = convexHullnD;\n var ich = __webpack_require__2(8954);\n var aff = __webpack_require__2(3952);\n function permute(points, front) {\n var n = points.length;\n var npoints = new Array(n);\n for (var i = 0; i < front.length; ++i) {\n npoints[i] = points[front[i]];\n }\n var ptr = front.length;\n for (var i = 0; i < n; ++i) {\n if (front.indexOf(i) < 0) {\n npoints[ptr++] = points[i];\n }\n }\n return npoints;\n }\n function invPermute(cells, front) {\n var nc = cells.length;\n var nf = front.length;\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n var x = c[j];\n if (x < nf) {\n c[j] = front[x];\n } else {\n x = x - nf;\n for (var k = 0; k < nf; ++k) {\n if (x >= front[k]) {\n x += 1;\n }\n }\n c[j] = x;\n }\n }\n }\n return cells;\n }\n function convexHullnD(points, d) {\n try {\n return ich(points, true);\n } catch (e) {\n var ah = aff(points);\n if (ah.length <= d) {\n return [];\n }\n var npoints = permute(points, ah);\n var nhull = ich(npoints, true);\n return invPermute(nhull, ah);\n }\n }\n }\n ),\n /***/\n 4769: (\n /***/\n function(module2) {\n \"use strict\";\n function dcubicHermite(p0, v0, p1, v1, t, f) {\n var dh00 = 6 * t * t - 6 * t, dh10 = 3 * t * t - 4 * t + 1, dh01 = -6 * t * t + 6 * t, dh11 = 3 * t * t - 2 * t;\n if (p0.length) {\n if (!f) {\n f = new Array(p0.length);\n }\n for (var i = p0.length - 1; i >= 0; --i) {\n f[i] = dh00 * p0[i] + dh10 * v0[i] + dh01 * p1[i] + dh11 * v1[i];\n }\n return f;\n }\n return dh00 * p0 + dh10 * v0 + dh01 * p1[i] + dh11 * v1;\n }\n function cubicHermite(p0, v0, p1, v1, t, f) {\n var ti = t - 1, t22 = t * t, ti2 = ti * ti, h00 = (1 + 2 * t) * ti2, h10 = t * ti2, h01 = t22 * (3 - 2 * t), h11 = t22 * ti;\n if (p0.length) {\n if (!f) {\n f = new Array(p0.length);\n }\n for (var i = p0.length - 1; i >= 0; --i) {\n f[i] = h00 * p0[i] + h10 * v0[i] + h01 * p1[i] + h11 * v1[i];\n }\n return f;\n }\n return h00 * p0 + h10 * v0 + h01 * p1 + h11 * v1;\n }\n module2.exports = cubicHermite;\n module2.exports.derivative = dcubicHermite;\n }\n ),\n /***/\n 7642: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var ch = __webpack_require__2(8954);\n var uniq = __webpack_require__2(1682);\n module2.exports = triangulate;\n function LiftedPoint(p, i) {\n this.point = p;\n this.index = i;\n }\n function compareLifted(a, b) {\n var ap = a.point;\n var bp = b.point;\n var d = ap.length;\n for (var i = 0; i < d; ++i) {\n var s = bp[i] - ap[i];\n if (s) {\n return s;\n }\n }\n return 0;\n }\n function triangulate1D(n, points, includePointAtInfinity) {\n if (n === 1) {\n if (includePointAtInfinity) {\n return [[-1, 0]];\n } else {\n return [];\n }\n }\n var lifted = points.map(function(p, i2) {\n return [p[0], i2];\n });\n lifted.sort(function(a2, b2) {\n return a2[0] - b2[0];\n });\n var cells = new Array(n - 1);\n for (var i = 1; i < n; ++i) {\n var a = lifted[i - 1];\n var b = lifted[i];\n cells[i - 1] = [a[1], b[1]];\n }\n if (includePointAtInfinity) {\n cells.push(\n [-1, cells[0][1]],\n [cells[n - 1][1], -1]\n );\n }\n return cells;\n }\n function triangulate(points, includePointAtInfinity) {\n var n = points.length;\n if (n === 0) {\n return [];\n }\n var d = points[0].length;\n if (d < 1) {\n return [];\n }\n if (d === 1) {\n return triangulate1D(n, points, includePointAtInfinity);\n }\n var lifted = new Array(n);\n var upper = 1;\n for (var i = 0; i < n; ++i) {\n var p = points[i];\n var x = new Array(d + 1);\n var l = 0;\n for (var j = 0; j < d; ++j) {\n var v = p[j];\n x[j] = v;\n l += v * v;\n }\n x[d] = l;\n lifted[i] = new LiftedPoint(x, i);\n upper = Math.max(l, upper);\n }\n uniq(lifted, compareLifted);\n n = lifted.length;\n var dpoints = new Array(n + d + 1);\n var dindex = new Array(n + d + 1);\n var u = (d + 1) * (d + 1) * upper;\n var y = new Array(d + 1);\n for (var i = 0; i <= d; ++i) {\n y[i] = 0;\n }\n y[d] = u;\n dpoints[0] = y.slice();\n dindex[0] = -1;\n for (var i = 0; i <= d; ++i) {\n var x = y.slice();\n x[i] = 1;\n dpoints[i + 1] = x;\n dindex[i + 1] = -1;\n }\n for (var i = 0; i < n; ++i) {\n var h = lifted[i];\n dpoints[i + d + 1] = h.point;\n dindex[i + d + 1] = h.index;\n }\n var hull = ch(dpoints, false);\n if (includePointAtInfinity) {\n hull = hull.filter(function(cell) {\n var count = 0;\n for (var j2 = 0; j2 <= d; ++j2) {\n var v2 = dindex[cell[j2]];\n if (v2 < 0) {\n if (++count >= 2) {\n return false;\n }\n }\n cell[j2] = v2;\n }\n return true;\n });\n } else {\n hull = hull.filter(function(cell) {\n for (var i2 = 0; i2 <= d; ++i2) {\n var v2 = dindex[cell[i2]];\n if (v2 < 0) {\n return false;\n }\n cell[i2] = v2;\n }\n return true;\n });\n }\n if (d & 1) {\n for (var i = 0; i < hull.length; ++i) {\n var h = hull[i];\n var x = h[0];\n h[0] = h[1];\n h[1] = x;\n }\n }\n return hull;\n }\n }\n ),\n /***/\n 2361: (\n /***/\n function(module2) {\n var hasTypedArrays = false;\n if (typeof Float64Array !== \"undefined\") {\n var DOUBLE_VIEW = new Float64Array(1), UINT_VIEW = new Uint32Array(DOUBLE_VIEW.buffer);\n DOUBLE_VIEW[0] = 1;\n hasTypedArrays = true;\n if (UINT_VIEW[1] === 1072693248) {\n let toDoubleLE2 = function(lo, hi) {\n UINT_VIEW[0] = lo;\n UINT_VIEW[1] = hi;\n return DOUBLE_VIEW[0];\n }, lowUintLE2 = function(n) {\n DOUBLE_VIEW[0] = n;\n return UINT_VIEW[0];\n }, highUintLE2 = function(n) {\n DOUBLE_VIEW[0] = n;\n return UINT_VIEW[1];\n };\n var toDoubleLE = toDoubleLE2, lowUintLE = lowUintLE2, highUintLE = highUintLE2;\n module2.exports = function doubleBitsLE(n) {\n DOUBLE_VIEW[0] = n;\n return [UINT_VIEW[0], UINT_VIEW[1]];\n };\n module2.exports.pack = toDoubleLE2;\n module2.exports.lo = lowUintLE2;\n module2.exports.hi = highUintLE2;\n } else if (UINT_VIEW[0] === 1072693248) {\n let toDoubleBE2 = function(lo, hi) {\n UINT_VIEW[1] = lo;\n UINT_VIEW[0] = hi;\n return DOUBLE_VIEW[0];\n }, lowUintBE2 = function(n) {\n DOUBLE_VIEW[0] = n;\n return UINT_VIEW[1];\n }, highUintBE2 = function(n) {\n DOUBLE_VIEW[0] = n;\n return UINT_VIEW[0];\n };\n var toDoubleBE = toDoubleBE2, lowUintBE = lowUintBE2, highUintBE = highUintBE2;\n module2.exports = function doubleBitsBE(n) {\n DOUBLE_VIEW[0] = n;\n return [UINT_VIEW[1], UINT_VIEW[0]];\n };\n module2.exports.pack = toDoubleBE2;\n module2.exports.lo = lowUintBE2;\n module2.exports.hi = highUintBE2;\n } else {\n hasTypedArrays = false;\n }\n }\n if (!hasTypedArrays) {\n let toDouble2 = function(lo, hi) {\n buffer.writeUInt32LE(lo, 0, true);\n buffer.writeUInt32LE(hi, 4, true);\n return buffer.readDoubleLE(0, true);\n }, lowUint2 = function(n) {\n buffer.writeDoubleLE(n, 0, true);\n return buffer.readUInt32LE(0, true);\n }, highUint2 = function(n) {\n buffer.writeDoubleLE(n, 0, true);\n return buffer.readUInt32LE(4, true);\n };\n var toDouble = toDouble2, lowUint = lowUint2, highUint = highUint2;\n var buffer = new Buffer(8);\n module2.exports = function doubleBits(n) {\n buffer.writeDoubleLE(n, 0, true);\n return [buffer.readUInt32LE(0, true), buffer.readUInt32LE(4, true)];\n };\n module2.exports.pack = toDouble2;\n module2.exports.lo = lowUint2;\n module2.exports.hi = highUint2;\n }\n module2.exports.sign = function(n) {\n return module2.exports.hi(n) >>> 31;\n };\n module2.exports.exponent = function(n) {\n var b = module2.exports.hi(n);\n return (b << 1 >>> 21) - 1023;\n };\n module2.exports.fraction = function(n) {\n var lo = module2.exports.lo(n);\n var hi = module2.exports.hi(n);\n var b = hi & (1 << 20) - 1;\n if (hi & 2146435072) {\n b += 1 << 20;\n }\n return [lo, b];\n };\n module2.exports.denormalized = function(n) {\n var hi = module2.exports.hi(n);\n return !(hi & 2146435072);\n };\n }\n ),\n /***/\n 1338: (\n /***/\n function(module2) {\n \"use strict\";\n function dupe_array(count, value, i) {\n var c = count[i] | 0;\n if (c <= 0) {\n return [];\n }\n var result = new Array(c), j;\n if (i === count.length - 1) {\n for (j = 0; j < c; ++j) {\n result[j] = value;\n }\n } else {\n for (j = 0; j < c; ++j) {\n result[j] = dupe_array(count, value, i + 1);\n }\n }\n return result;\n }\n function dupe_number(count, value) {\n var result, i;\n result = new Array(count);\n for (i = 0; i < count; ++i) {\n result[i] = value;\n }\n return result;\n }\n function dupe(count, value) {\n if (typeof value === \"undefined\") {\n value = 0;\n }\n switch (typeof count) {\n case \"number\":\n if (count > 0) {\n return dupe_number(count | 0, value);\n }\n break;\n case \"object\":\n if (typeof count.length === \"number\") {\n return dupe_array(count, value, 0);\n }\n break;\n }\n return [];\n }\n module2.exports = dupe;\n }\n ),\n /***/\n 3134: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = edgeToAdjacency;\n var uniq = __webpack_require__2(1682);\n function edgeToAdjacency(edges, numVertices) {\n var numEdges = edges.length;\n if (typeof numVertices !== \"number\") {\n numVertices = 0;\n for (var i = 0; i < numEdges; ++i) {\n var e = edges[i];\n numVertices = Math.max(numVertices, e[0], e[1]);\n }\n numVertices = (numVertices | 0) + 1;\n }\n numVertices = numVertices | 0;\n var adj = new Array(numVertices);\n for (var i = 0; i < numVertices; ++i) {\n adj[i] = [];\n }\n for (var i = 0; i < numEdges; ++i) {\n var e = edges[i];\n adj[e[0]].push(e[1]);\n adj[e[1]].push(e[0]);\n }\n for (var j = 0; j < numVertices; ++j) {\n uniq(adj[j], function(a, b) {\n return a - b;\n });\n }\n return adj;\n }\n }\n ),\n /***/\n 5033: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = extractPlanes;\n function extractPlanes(M, zNear, zFar) {\n var z = zNear || 0;\n var zf = zFar || 1;\n return [\n [M[12] + M[0], M[13] + M[1], M[14] + M[2], M[15] + M[3]],\n [M[12] - M[0], M[13] - M[1], M[14] - M[2], M[15] - M[3]],\n [M[12] + M[4], M[13] + M[5], M[14] + M[6], M[15] + M[7]],\n [M[12] - M[4], M[13] - M[5], M[14] - M[6], M[15] - M[7]],\n [z * M[12] + M[8], z * M[13] + M[9], z * M[14] + M[10], z * M[15] + M[11]],\n [zf * M[12] - M[8], zf * M[13] - M[9], zf * M[14] - M[10], zf * M[15] - M[11]]\n ];\n }\n }\n ),\n /***/\n 9215: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createFilteredVector;\n var cubicHermite = __webpack_require__2(4769);\n var bsearch = __webpack_require__2(2478);\n function clamp(lo, hi, x) {\n return Math.min(hi, Math.max(lo, x));\n }\n function FilteredVector(state0, velocity0, t02) {\n this.dimension = state0.length;\n this.bounds = [new Array(this.dimension), new Array(this.dimension)];\n for (var i = 0; i < this.dimension; ++i) {\n this.bounds[0][i] = -Infinity;\n this.bounds[1][i] = Infinity;\n }\n this._state = state0.slice().reverse();\n this._velocity = velocity0.slice().reverse();\n this._time = [t02];\n this._scratch = [state0.slice(), state0.slice(), state0.slice(), state0.slice(), state0.slice()];\n }\n var proto = FilteredVector.prototype;\n proto.flush = function(t) {\n var idx = bsearch.gt(this._time, t) - 1;\n if (idx <= 0) {\n return;\n }\n this._time.splice(0, idx);\n this._state.splice(0, idx * this.dimension);\n this._velocity.splice(0, idx * this.dimension);\n };\n proto.curve = function(t) {\n var time = this._time;\n var n = time.length;\n var idx = bsearch.le(time, t);\n var result = this._scratch[0];\n var state = this._state;\n var velocity = this._velocity;\n var d = this.dimension;\n var bounds = this.bounds;\n if (idx < 0) {\n var ptr = d - 1;\n for (var i = 0; i < d; ++i, --ptr) {\n result[i] = state[ptr];\n }\n } else if (idx >= n - 1) {\n var ptr = state.length - 1;\n var tf = t - time[n - 1];\n for (var i = 0; i < d; ++i, --ptr) {\n result[i] = state[ptr] + tf * velocity[ptr];\n }\n } else {\n var ptr = d * (idx + 1) - 1;\n var t02 = time[idx];\n var t12 = time[idx + 1];\n var dt = t12 - t02 || 1;\n var x0 = this._scratch[1];\n var x1 = this._scratch[2];\n var v0 = this._scratch[3];\n var v1 = this._scratch[4];\n var steady = true;\n for (var i = 0; i < d; ++i, --ptr) {\n x0[i] = state[ptr];\n v0[i] = velocity[ptr] * dt;\n x1[i] = state[ptr + d];\n v1[i] = velocity[ptr + d] * dt;\n steady = steady && (x0[i] === x1[i] && v0[i] === v1[i] && v0[i] === 0);\n }\n if (steady) {\n for (var i = 0; i < d; ++i) {\n result[i] = x0[i];\n }\n } else {\n cubicHermite(x0, v0, x1, v1, (t - t02) / dt, result);\n }\n }\n var lo = bounds[0];\n var hi = bounds[1];\n for (var i = 0; i < d; ++i) {\n result[i] = clamp(lo[i], hi[i], result[i]);\n }\n return result;\n };\n proto.dcurve = function(t) {\n var time = this._time;\n var n = time.length;\n var idx = bsearch.le(time, t);\n var result = this._scratch[0];\n var state = this._state;\n var velocity = this._velocity;\n var d = this.dimension;\n if (idx >= n - 1) {\n var ptr = state.length - 1;\n var tf = t - time[n - 1];\n for (var i = 0; i < d; ++i, --ptr) {\n result[i] = velocity[ptr];\n }\n } else {\n var ptr = d * (idx + 1) - 1;\n var t02 = time[idx];\n var t12 = time[idx + 1];\n var dt = t12 - t02 || 1;\n var x0 = this._scratch[1];\n var x1 = this._scratch[2];\n var v0 = this._scratch[3];\n var v1 = this._scratch[4];\n var steady = true;\n for (var i = 0; i < d; ++i, --ptr) {\n x0[i] = state[ptr];\n v0[i] = velocity[ptr] * dt;\n x1[i] = state[ptr + d];\n v1[i] = velocity[ptr + d] * dt;\n steady = steady && (x0[i] === x1[i] && v0[i] === v1[i] && v0[i] === 0);\n }\n if (steady) {\n for (var i = 0; i < d; ++i) {\n result[i] = 0;\n }\n } else {\n cubicHermite.derivative(x0, v0, x1, v1, (t - t02) / dt, result);\n for (var i = 0; i < d; ++i) {\n result[i] /= dt;\n }\n }\n }\n return result;\n };\n proto.lastT = function() {\n var time = this._time;\n return time[time.length - 1];\n };\n proto.stable = function() {\n var velocity = this._velocity;\n var ptr = velocity.length;\n for (var i = this.dimension - 1; i >= 0; --i) {\n if (velocity[--ptr]) {\n return false;\n }\n }\n return true;\n };\n proto.jump = function(t) {\n var t02 = this.lastT();\n var d = this.dimension;\n if (t < t02 || arguments.length !== d + 1) {\n return;\n }\n var state = this._state;\n var velocity = this._velocity;\n var ptr = state.length - this.dimension;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n this._time.push(t02, t);\n for (var j = 0; j < 2; ++j) {\n for (var i = 0; i < d; ++i) {\n state.push(state[ptr++]);\n velocity.push(0);\n }\n }\n this._time.push(t);\n for (var i = d; i > 0; --i) {\n state.push(clamp(lo[i - 1], hi[i - 1], arguments[i]));\n velocity.push(0);\n }\n };\n proto.push = function(t) {\n var t02 = this.lastT();\n var d = this.dimension;\n if (t < t02 || arguments.length !== d + 1) {\n return;\n }\n var state = this._state;\n var velocity = this._velocity;\n var ptr = state.length - this.dimension;\n var dt = t - t02;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n var sf = dt > 1e-6 ? 1 / dt : 0;\n this._time.push(t);\n for (var i = d; i > 0; --i) {\n var xc = clamp(lo[i - 1], hi[i - 1], arguments[i]);\n state.push(xc);\n velocity.push((xc - state[ptr++]) * sf);\n }\n };\n proto.set = function(t) {\n var d = this.dimension;\n if (t < this.lastT() || arguments.length !== d + 1) {\n return;\n }\n var state = this._state;\n var velocity = this._velocity;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n this._time.push(t);\n for (var i = d; i > 0; --i) {\n state.push(clamp(lo[i - 1], hi[i - 1], arguments[i]));\n velocity.push(0);\n }\n };\n proto.move = function(t) {\n var t02 = this.lastT();\n var d = this.dimension;\n if (t <= t02 || arguments.length !== d + 1) {\n return;\n }\n var state = this._state;\n var velocity = this._velocity;\n var statePtr = state.length - this.dimension;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n var dt = t - t02;\n var sf = dt > 1e-6 ? 1 / dt : 0;\n this._time.push(t);\n for (var i = d; i > 0; --i) {\n var dx = arguments[i];\n state.push(clamp(lo[i - 1], hi[i - 1], state[statePtr++] + dx));\n velocity.push(dx * sf);\n }\n };\n proto.idle = function(t) {\n var t02 = this.lastT();\n if (t < t02) {\n return;\n }\n var d = this.dimension;\n var state = this._state;\n var velocity = this._velocity;\n var statePtr = state.length - d;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n var dt = t - t02;\n this._time.push(t);\n for (var i = d - 1; i >= 0; --i) {\n state.push(clamp(lo[i], hi[i], state[statePtr] + dt * velocity[statePtr]));\n velocity.push(0);\n statePtr += 1;\n }\n };\n function getZero(d) {\n var result = new Array(d);\n for (var i = 0; i < d; ++i) {\n result[i] = 0;\n }\n return result;\n }\n function createFilteredVector(initState, initVelocity, initTime) {\n switch (arguments.length) {\n case 0:\n return new FilteredVector([0], [0], 0);\n case 1:\n if (typeof initState === \"number\") {\n var zero2 = getZero(initState);\n return new FilteredVector(zero2, zero2, 0);\n } else {\n return new FilteredVector(initState, getZero(initState.length), 0);\n }\n case 2:\n if (typeof initVelocity === \"number\") {\n var zero2 = getZero(initState.length);\n return new FilteredVector(initState, zero2, +initVelocity);\n } else {\n initTime = 0;\n }\n case 3:\n if (initState.length !== initVelocity.length) {\n throw new Error(\"state and velocity lengths must match\");\n }\n return new FilteredVector(initState, initVelocity, initTime);\n }\n }\n }\n ),\n /***/\n 3840: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = createRBTree;\n var RED = 0;\n var BLACK = 1;\n function RBNode(color2, key, value, left, right, count) {\n this._color = color2;\n this.key = key;\n this.value = value;\n this.left = left;\n this.right = right;\n this._count = count;\n }\n function cloneNode(node) {\n return new RBNode(node._color, node.key, node.value, node.left, node.right, node._count);\n }\n function repaint(color2, node) {\n return new RBNode(color2, node.key, node.value, node.left, node.right, node._count);\n }\n function recount(node) {\n node._count = 1 + (node.left ? node.left._count : 0) + (node.right ? node.right._count : 0);\n }\n function RedBlackTree(compare, root) {\n this._compare = compare;\n this.root = root;\n }\n var proto = RedBlackTree.prototype;\n Object.defineProperty(proto, \"keys\", {\n get: function() {\n var result = [];\n this.forEach(function(k, v) {\n result.push(k);\n });\n return result;\n }\n });\n Object.defineProperty(proto, \"values\", {\n get: function() {\n var result = [];\n this.forEach(function(k, v) {\n result.push(v);\n });\n return result;\n }\n });\n Object.defineProperty(proto, \"length\", {\n get: function() {\n if (this.root) {\n return this.root._count;\n }\n return 0;\n }\n });\n proto.insert = function(key, value) {\n var cmp = this._compare;\n var n = this.root;\n var n_stack = [];\n var d_stack = [];\n while (n) {\n var d = cmp(key, n.key);\n n_stack.push(n);\n d_stack.push(d);\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n n_stack.push(new RBNode(RED, key, value, null, null, 1));\n for (var s = n_stack.length - 2; s >= 0; --s) {\n var n = n_stack[s];\n if (d_stack[s] <= 0) {\n n_stack[s] = new RBNode(n._color, n.key, n.value, n_stack[s + 1], n.right, n._count + 1);\n } else {\n n_stack[s] = new RBNode(n._color, n.key, n.value, n.left, n_stack[s + 1], n._count + 1);\n }\n }\n for (var s = n_stack.length - 1; s > 1; --s) {\n var p = n_stack[s - 1];\n var n = n_stack[s];\n if (p._color === BLACK || n._color === BLACK) {\n break;\n }\n var pp = n_stack[s - 2];\n if (pp.left === p) {\n if (p.left === n) {\n var y = pp.right;\n if (y && y._color === RED) {\n p._color = BLACK;\n pp.right = repaint(BLACK, y);\n pp._color = RED;\n s -= 1;\n } else {\n pp._color = RED;\n pp.left = p.right;\n p._color = BLACK;\n p.right = pp;\n n_stack[s - 2] = p;\n n_stack[s - 1] = n;\n recount(pp);\n recount(p);\n if (s >= 3) {\n var ppp = n_stack[s - 3];\n if (ppp.left === pp) {\n ppp.left = p;\n } else {\n ppp.right = p;\n }\n }\n break;\n }\n } else {\n var y = pp.right;\n if (y && y._color === RED) {\n p._color = BLACK;\n pp.right = repaint(BLACK, y);\n pp._color = RED;\n s -= 1;\n } else {\n p.right = n.left;\n pp._color = RED;\n pp.left = n.right;\n n._color = BLACK;\n n.left = p;\n n.right = pp;\n n_stack[s - 2] = n;\n n_stack[s - 1] = p;\n recount(pp);\n recount(p);\n recount(n);\n if (s >= 3) {\n var ppp = n_stack[s - 3];\n if (ppp.left === pp) {\n ppp.left = n;\n } else {\n ppp.right = n;\n }\n }\n break;\n }\n }\n } else {\n if (p.right === n) {\n var y = pp.left;\n if (y && y._color === RED) {\n p._color = BLACK;\n pp.left = repaint(BLACK, y);\n pp._color = RED;\n s -= 1;\n } else {\n pp._color = RED;\n pp.right = p.left;\n p._color = BLACK;\n p.left = pp;\n n_stack[s - 2] = p;\n n_stack[s - 1] = n;\n recount(pp);\n recount(p);\n if (s >= 3) {\n var ppp = n_stack[s - 3];\n if (ppp.right === pp) {\n ppp.right = p;\n } else {\n ppp.left = p;\n }\n }\n break;\n }\n } else {\n var y = pp.left;\n if (y && y._color === RED) {\n p._color = BLACK;\n pp.left = repaint(BLACK, y);\n pp._color = RED;\n s -= 1;\n } else {\n p.left = n.right;\n pp._color = RED;\n pp.right = n.left;\n n._color = BLACK;\n n.right = p;\n n.left = pp;\n n_stack[s - 2] = n;\n n_stack[s - 1] = p;\n recount(pp);\n recount(p);\n recount(n);\n if (s >= 3) {\n var ppp = n_stack[s - 3];\n if (ppp.right === pp) {\n ppp.right = n;\n } else {\n ppp.left = n;\n }\n }\n break;\n }\n }\n }\n }\n n_stack[0]._color = BLACK;\n return new RedBlackTree(cmp, n_stack[0]);\n };\n function doVisitFull(visit, node) {\n if (node.left) {\n var v = doVisitFull(visit, node.left);\n if (v) {\n return v;\n }\n }\n var v = visit(node.key, node.value);\n if (v) {\n return v;\n }\n if (node.right) {\n return doVisitFull(visit, node.right);\n }\n }\n function doVisitHalf(lo, compare, visit, node) {\n var l = compare(lo, node.key);\n if (l <= 0) {\n if (node.left) {\n var v = doVisitHalf(lo, compare, visit, node.left);\n if (v) {\n return v;\n }\n }\n var v = visit(node.key, node.value);\n if (v) {\n return v;\n }\n }\n if (node.right) {\n return doVisitHalf(lo, compare, visit, node.right);\n }\n }\n function doVisit(lo, hi, compare, visit, node) {\n var l = compare(lo, node.key);\n var h = compare(hi, node.key);\n var v;\n if (l <= 0) {\n if (node.left) {\n v = doVisit(lo, hi, compare, visit, node.left);\n if (v) {\n return v;\n }\n }\n if (h > 0) {\n v = visit(node.key, node.value);\n if (v) {\n return v;\n }\n }\n }\n if (h > 0 && node.right) {\n return doVisit(lo, hi, compare, visit, node.right);\n }\n }\n proto.forEach = function rbTreeForEach(visit, lo, hi) {\n if (!this.root) {\n return;\n }\n switch (arguments.length) {\n case 1:\n return doVisitFull(visit, this.root);\n break;\n case 2:\n return doVisitHalf(lo, this._compare, visit, this.root);\n break;\n case 3:\n if (this._compare(lo, hi) >= 0) {\n return;\n }\n return doVisit(lo, hi, this._compare, visit, this.root);\n break;\n }\n };\n Object.defineProperty(proto, \"begin\", {\n get: function() {\n var stack = [];\n var n = this.root;\n while (n) {\n stack.push(n);\n n = n.left;\n }\n return new RedBlackTreeIterator(this, stack);\n }\n });\n Object.defineProperty(proto, \"end\", {\n get: function() {\n var stack = [];\n var n = this.root;\n while (n) {\n stack.push(n);\n n = n.right;\n }\n return new RedBlackTreeIterator(this, stack);\n }\n });\n proto.at = function(idx) {\n if (idx < 0) {\n return new RedBlackTreeIterator(this, []);\n }\n var n = this.root;\n var stack = [];\n while (true) {\n stack.push(n);\n if (n.left) {\n if (idx < n.left._count) {\n n = n.left;\n continue;\n }\n idx -= n.left._count;\n }\n if (!idx) {\n return new RedBlackTreeIterator(this, stack);\n }\n idx -= 1;\n if (n.right) {\n if (idx >= n.right._count) {\n break;\n }\n n = n.right;\n } else {\n break;\n }\n }\n return new RedBlackTreeIterator(this, []);\n };\n proto.ge = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n var last_ptr = 0;\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d <= 0) {\n last_ptr = stack.length;\n }\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n stack.length = last_ptr;\n return new RedBlackTreeIterator(this, stack);\n };\n proto.gt = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n var last_ptr = 0;\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d < 0) {\n last_ptr = stack.length;\n }\n if (d < 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n stack.length = last_ptr;\n return new RedBlackTreeIterator(this, stack);\n };\n proto.lt = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n var last_ptr = 0;\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d > 0) {\n last_ptr = stack.length;\n }\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n stack.length = last_ptr;\n return new RedBlackTreeIterator(this, stack);\n };\n proto.le = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n var last_ptr = 0;\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d >= 0) {\n last_ptr = stack.length;\n }\n if (d < 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n stack.length = last_ptr;\n return new RedBlackTreeIterator(this, stack);\n };\n proto.find = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d === 0) {\n return new RedBlackTreeIterator(this, stack);\n }\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n return new RedBlackTreeIterator(this, []);\n };\n proto.remove = function(key) {\n var iter = this.find(key);\n if (iter) {\n return iter.remove();\n }\n return this;\n };\n proto.get = function(key) {\n var cmp = this._compare;\n var n = this.root;\n while (n) {\n var d = cmp(key, n.key);\n if (d === 0) {\n return n.value;\n }\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n return;\n };\n function RedBlackTreeIterator(tree, stack) {\n this.tree = tree;\n this._stack = stack;\n }\n var iproto = RedBlackTreeIterator.prototype;\n Object.defineProperty(iproto, \"valid\", {\n get: function() {\n return this._stack.length > 0;\n }\n });\n Object.defineProperty(iproto, \"node\", {\n get: function() {\n if (this._stack.length > 0) {\n return this._stack[this._stack.length - 1];\n }\n return null;\n },\n enumerable: true\n });\n iproto.clone = function() {\n return new RedBlackTreeIterator(this.tree, this._stack.slice());\n };\n function swapNode(n, v) {\n n.key = v.key;\n n.value = v.value;\n n.left = v.left;\n n.right = v.right;\n n._color = v._color;\n n._count = v._count;\n }\n function fixDoubleBlack(stack) {\n var n, p, s, z;\n for (var i = stack.length - 1; i >= 0; --i) {\n n = stack[i];\n if (i === 0) {\n n._color = BLACK;\n return;\n }\n p = stack[i - 1];\n if (p.left === n) {\n s = p.right;\n if (s.right && s.right._color === RED) {\n s = p.right = cloneNode(s);\n z = s.right = cloneNode(s.right);\n p.right = s.left;\n s.left = p;\n s.right = z;\n s._color = p._color;\n n._color = BLACK;\n p._color = BLACK;\n z._color = BLACK;\n recount(p);\n recount(s);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.left === p) {\n pp.left = s;\n } else {\n pp.right = s;\n }\n }\n stack[i - 1] = s;\n return;\n } else if (s.left && s.left._color === RED) {\n s = p.right = cloneNode(s);\n z = s.left = cloneNode(s.left);\n p.right = z.left;\n s.left = z.right;\n z.left = p;\n z.right = s;\n z._color = p._color;\n p._color = BLACK;\n s._color = BLACK;\n n._color = BLACK;\n recount(p);\n recount(s);\n recount(z);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.left === p) {\n pp.left = z;\n } else {\n pp.right = z;\n }\n }\n stack[i - 1] = z;\n return;\n }\n if (s._color === BLACK) {\n if (p._color === RED) {\n p._color = BLACK;\n p.right = repaint(RED, s);\n return;\n } else {\n p.right = repaint(RED, s);\n continue;\n }\n } else {\n s = cloneNode(s);\n p.right = s.left;\n s.left = p;\n s._color = p._color;\n p._color = RED;\n recount(p);\n recount(s);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.left === p) {\n pp.left = s;\n } else {\n pp.right = s;\n }\n }\n stack[i - 1] = s;\n stack[i] = p;\n if (i + 1 < stack.length) {\n stack[i + 1] = n;\n } else {\n stack.push(n);\n }\n i = i + 2;\n }\n } else {\n s = p.left;\n if (s.left && s.left._color === RED) {\n s = p.left = cloneNode(s);\n z = s.left = cloneNode(s.left);\n p.left = s.right;\n s.right = p;\n s.left = z;\n s._color = p._color;\n n._color = BLACK;\n p._color = BLACK;\n z._color = BLACK;\n recount(p);\n recount(s);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.right === p) {\n pp.right = s;\n } else {\n pp.left = s;\n }\n }\n stack[i - 1] = s;\n return;\n } else if (s.right && s.right._color === RED) {\n s = p.left = cloneNode(s);\n z = s.right = cloneNode(s.right);\n p.left = z.right;\n s.right = z.left;\n z.right = p;\n z.left = s;\n z._color = p._color;\n p._color = BLACK;\n s._color = BLACK;\n n._color = BLACK;\n recount(p);\n recount(s);\n recount(z);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.right === p) {\n pp.right = z;\n } else {\n pp.left = z;\n }\n }\n stack[i - 1] = z;\n return;\n }\n if (s._color === BLACK) {\n if (p._color === RED) {\n p._color = BLACK;\n p.left = repaint(RED, s);\n return;\n } else {\n p.left = repaint(RED, s);\n continue;\n }\n } else {\n s = cloneNode(s);\n p.left = s.right;\n s.right = p;\n s._color = p._color;\n p._color = RED;\n recount(p);\n recount(s);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.right === p) {\n pp.right = s;\n } else {\n pp.left = s;\n }\n }\n stack[i - 1] = s;\n stack[i] = p;\n if (i + 1 < stack.length) {\n stack[i + 1] = n;\n } else {\n stack.push(n);\n }\n i = i + 2;\n }\n }\n }\n }\n iproto.remove = function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return this.tree;\n }\n var cstack = new Array(stack.length);\n var n = stack[stack.length - 1];\n cstack[cstack.length - 1] = new RBNode(n._color, n.key, n.value, n.left, n.right, n._count);\n for (var i = stack.length - 2; i >= 0; --i) {\n var n = stack[i];\n if (n.left === stack[i + 1]) {\n cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i + 1], n.right, n._count);\n } else {\n cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);\n }\n }\n n = cstack[cstack.length - 1];\n if (n.left && n.right) {\n var split = cstack.length;\n n = n.left;\n while (n.right) {\n cstack.push(n);\n n = n.right;\n }\n var v = cstack[split - 1];\n cstack.push(new RBNode(n._color, v.key, v.value, n.left, n.right, n._count));\n cstack[split - 1].key = n.key;\n cstack[split - 1].value = n.value;\n for (var i = cstack.length - 2; i >= split; --i) {\n n = cstack[i];\n cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);\n }\n cstack[split - 1].left = cstack[split];\n }\n n = cstack[cstack.length - 1];\n if (n._color === RED) {\n var p = cstack[cstack.length - 2];\n if (p.left === n) {\n p.left = null;\n } else if (p.right === n) {\n p.right = null;\n }\n cstack.pop();\n for (var i = 0; i < cstack.length; ++i) {\n cstack[i]._count--;\n }\n return new RedBlackTree(this.tree._compare, cstack[0]);\n } else {\n if (n.left || n.right) {\n if (n.left) {\n swapNode(n, n.left);\n } else if (n.right) {\n swapNode(n, n.right);\n }\n n._color = BLACK;\n for (var i = 0; i < cstack.length - 1; ++i) {\n cstack[i]._count--;\n }\n return new RedBlackTree(this.tree._compare, cstack[0]);\n } else if (cstack.length === 1) {\n return new RedBlackTree(this.tree._compare, null);\n } else {\n for (var i = 0; i < cstack.length; ++i) {\n cstack[i]._count--;\n }\n var parent = cstack[cstack.length - 2];\n fixDoubleBlack(cstack);\n if (parent.left === n) {\n parent.left = null;\n } else {\n parent.right = null;\n }\n }\n }\n return new RedBlackTree(this.tree._compare, cstack[0]);\n };\n Object.defineProperty(iproto, \"key\", {\n get: function() {\n if (this._stack.length > 0) {\n return this._stack[this._stack.length - 1].key;\n }\n return;\n },\n enumerable: true\n });\n Object.defineProperty(iproto, \"value\", {\n get: function() {\n if (this._stack.length > 0) {\n return this._stack[this._stack.length - 1].value;\n }\n return;\n },\n enumerable: true\n });\n Object.defineProperty(iproto, \"index\", {\n get: function() {\n var idx = 0;\n var stack = this._stack;\n if (stack.length === 0) {\n var r = this.tree.root;\n if (r) {\n return r._count;\n }\n return 0;\n } else if (stack[stack.length - 1].left) {\n idx = stack[stack.length - 1].left._count;\n }\n for (var s = stack.length - 2; s >= 0; --s) {\n if (stack[s + 1] === stack[s].right) {\n ++idx;\n if (stack[s].left) {\n idx += stack[s].left._count;\n }\n }\n }\n return idx;\n },\n enumerable: true\n });\n iproto.next = function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return;\n }\n var n = stack[stack.length - 1];\n if (n.right) {\n n = n.right;\n while (n) {\n stack.push(n);\n n = n.left;\n }\n } else {\n stack.pop();\n while (stack.length > 0 && stack[stack.length - 1].right === n) {\n n = stack[stack.length - 1];\n stack.pop();\n }\n }\n };\n Object.defineProperty(iproto, \"hasNext\", {\n get: function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return false;\n }\n if (stack[stack.length - 1].right) {\n return true;\n }\n for (var s = stack.length - 1; s > 0; --s) {\n if (stack[s - 1].left === stack[s]) {\n return true;\n }\n }\n return false;\n }\n });\n iproto.update = function(value) {\n var stack = this._stack;\n if (stack.length === 0) {\n throw new Error(\"Can't update empty node!\");\n }\n var cstack = new Array(stack.length);\n var n = stack[stack.length - 1];\n cstack[cstack.length - 1] = new RBNode(n._color, n.key, value, n.left, n.right, n._count);\n for (var i = stack.length - 2; i >= 0; --i) {\n n = stack[i];\n if (n.left === stack[i + 1]) {\n cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i + 1], n.right, n._count);\n } else {\n cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);\n }\n }\n return new RedBlackTree(this.tree._compare, cstack[0]);\n };\n iproto.prev = function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return;\n }\n var n = stack[stack.length - 1];\n if (n.left) {\n n = n.left;\n while (n) {\n stack.push(n);\n n = n.right;\n }\n } else {\n stack.pop();\n while (stack.length > 0 && stack[stack.length - 1].left === n) {\n n = stack[stack.length - 1];\n stack.pop();\n }\n }\n };\n Object.defineProperty(iproto, \"hasPrev\", {\n get: function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return false;\n }\n if (stack[stack.length - 1].left) {\n return true;\n }\n for (var s = stack.length - 1; s > 0; --s) {\n if (stack[s - 1].right === stack[s]) {\n return true;\n }\n }\n return false;\n }\n });\n function defaultCompare(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n }\n function createRBTree(compare) {\n return new RedBlackTree(compare || defaultCompare, null);\n }\n }\n ),\n /***/\n 3837: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createAxes;\n var createText = __webpack_require__2(4935);\n var createLines = __webpack_require__2(501);\n var createBackground = __webpack_require__2(5304);\n var getCubeProperties = __webpack_require__2(6429);\n var Ticks = __webpack_require__2(6444);\n var identity2 = new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n var ab = ArrayBuffer;\n var dv = DataView;\n function isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n }\n function isArrayOrTypedArray(a) {\n return Array.isArray(a) || isTypedArray(a);\n }\n function copyVec3(a, b) {\n a[0] = b[0];\n a[1] = b[1];\n a[2] = b[2];\n return a;\n }\n function Axes(gl2) {\n this.gl = gl2;\n this.pixelRatio = 1;\n this.bounds = [\n [-10, -10, -10],\n [10, 10, 10]\n ];\n this.ticks = [[], [], []];\n this.autoTicks = true;\n this.tickSpacing = [1, 1, 1];\n this.tickEnable = [true, true, true];\n this.tickFont = [\"sans-serif\", \"sans-serif\", \"sans-serif\"];\n this.tickFontStyle = [\"normal\", \"normal\", \"normal\"];\n this.tickFontWeight = [\"normal\", \"normal\", \"normal\"];\n this.tickFontVariant = [\"normal\", \"normal\", \"normal\"];\n this.tickSize = [12, 12, 12];\n this.tickAngle = [0, 0, 0];\n this.tickAlign = [\"auto\", \"auto\", \"auto\"];\n this.tickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.tickPad = [10, 10, 10];\n this.lastCubeProps = {\n cubeEdges: [0, 0, 0],\n axis: [0, 0, 0]\n };\n this.labels = [\"x\", \"y\", \"z\"];\n this.labelEnable = [true, true, true];\n this.labelFont = [\"sans-serif\", \"sans-serif\", \"sans-serif\"];\n this.labelFontStyle = [\"normal\", \"normal\", \"normal\"];\n this.labelFontWeight = [\"normal\", \"normal\", \"normal\"];\n this.labelFontVariant = [\"normal\", \"normal\", \"normal\"];\n this.labelSize = [20, 20, 20];\n this.labelAngle = [0, 0, 0];\n this.labelAlign = [\"auto\", \"auto\", \"auto\"];\n this.labelColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.labelPad = [10, 10, 10];\n this.lineEnable = [true, true, true];\n this.lineMirror = [false, false, false];\n this.lineWidth = [1, 1, 1];\n this.lineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.lineTickEnable = [true, true, true];\n this.lineTickMirror = [false, false, false];\n this.lineTickLength = [0, 0, 0];\n this.lineTickWidth = [1, 1, 1];\n this.lineTickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.gridEnable = [true, true, true];\n this.gridWidth = [1, 1, 1];\n this.gridColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.zeroEnable = [true, true, true];\n this.zeroLineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.zeroLineWidth = [2, 2, 2];\n this.backgroundEnable = [false, false, false];\n this.backgroundColor = [\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5]\n ];\n this._firstInit = true;\n this._text = null;\n this._lines = null;\n this._background = createBackground(gl2);\n }\n var proto = Axes.prototype;\n proto.update = function(options) {\n options = options || {};\n function parseOption(nest, cons, name2) {\n if (name2 in options) {\n var opt = options[name2];\n var prev = this[name2];\n var next;\n if (nest ? isArrayOrTypedArray(opt) && isArrayOrTypedArray(opt[0]) : isArrayOrTypedArray(opt)) {\n this[name2] = next = [cons(opt[0]), cons(opt[1]), cons(opt[2])];\n } else {\n this[name2] = next = [cons(opt), cons(opt), cons(opt)];\n }\n for (var i2 = 0; i2 < 3; ++i2) {\n if (next[i2] !== prev[i2]) {\n return true;\n }\n }\n }\n return false;\n }\n var NUMBER = parseOption.bind(this, false, Number);\n var BOOLEAN = parseOption.bind(this, false, Boolean);\n var STRING = parseOption.bind(this, false, String);\n var COLOR = parseOption.bind(this, true, function(v) {\n if (isArrayOrTypedArray(v)) {\n if (v.length === 3) {\n return [+v[0], +v[1], +v[2], 1];\n } else if (v.length === 4) {\n return [+v[0], +v[1], +v[2], +v[3]];\n }\n }\n return [0, 0, 0, 1];\n });\n var nextTicks;\n var ticksUpdate = false;\n var boundsChanged = false;\n if (\"bounds\" in options) {\n var bounds = options.bounds;\n i_loop:\n for (var i = 0; i < 2; ++i) {\n for (var j = 0; j < 3; ++j) {\n if (bounds[i][j] !== this.bounds[i][j]) {\n boundsChanged = true;\n }\n this.bounds[i][j] = bounds[i][j];\n }\n }\n }\n if (\"ticks\" in options) {\n nextTicks = options.ticks;\n ticksUpdate = true;\n this.autoTicks = false;\n for (var i = 0; i < 3; ++i) {\n this.tickSpacing[i] = 0;\n }\n } else if (NUMBER(\"tickSpacing\")) {\n this.autoTicks = true;\n boundsChanged = true;\n }\n if (this._firstInit) {\n if (!(\"ticks\" in options || \"tickSpacing\" in options)) {\n this.autoTicks = true;\n }\n boundsChanged = true;\n ticksUpdate = true;\n this._firstInit = false;\n }\n if (boundsChanged && this.autoTicks) {\n nextTicks = Ticks.create(this.bounds, this.tickSpacing);\n ticksUpdate = true;\n }\n if (ticksUpdate) {\n for (var i = 0; i < 3; ++i) {\n nextTicks[i].sort(function(a, b) {\n return a.x - b.x;\n });\n }\n if (Ticks.equal(nextTicks, this.ticks)) {\n ticksUpdate = false;\n } else {\n this.ticks = nextTicks;\n }\n }\n BOOLEAN(\"tickEnable\");\n if (STRING(\"tickFont\")) ticksUpdate = true;\n if (STRING(\"tickFontStyle\")) ticksUpdate = true;\n if (STRING(\"tickFontWeight\")) ticksUpdate = true;\n if (STRING(\"tickFontVariant\")) ticksUpdate = true;\n NUMBER(\"tickSize\");\n NUMBER(\"tickAngle\");\n NUMBER(\"tickPad\");\n COLOR(\"tickColor\");\n var labelUpdate = STRING(\"labels\");\n if (STRING(\"labelFont\")) labelUpdate = true;\n if (STRING(\"labelFontStyle\")) labelUpdate = true;\n if (STRING(\"labelFontWeight\")) labelUpdate = true;\n if (STRING(\"labelFontVariant\")) labelUpdate = true;\n BOOLEAN(\"labelEnable\");\n NUMBER(\"labelSize\");\n NUMBER(\"labelPad\");\n COLOR(\"labelColor\");\n BOOLEAN(\"lineEnable\");\n BOOLEAN(\"lineMirror\");\n NUMBER(\"lineWidth\");\n COLOR(\"lineColor\");\n BOOLEAN(\"lineTickEnable\");\n BOOLEAN(\"lineTickMirror\");\n NUMBER(\"lineTickLength\");\n NUMBER(\"lineTickWidth\");\n COLOR(\"lineTickColor\");\n BOOLEAN(\"gridEnable\");\n NUMBER(\"gridWidth\");\n COLOR(\"gridColor\");\n BOOLEAN(\"zeroEnable\");\n COLOR(\"zeroLineColor\");\n NUMBER(\"zeroLineWidth\");\n BOOLEAN(\"backgroundEnable\");\n COLOR(\"backgroundColor\");\n var labelFontOpts = [\n {\n family: this.labelFont[0],\n style: this.labelFontStyle[0],\n weight: this.labelFontWeight[0],\n variant: this.labelFontVariant[0]\n },\n {\n family: this.labelFont[1],\n style: this.labelFontStyle[1],\n weight: this.labelFontWeight[1],\n variant: this.labelFontVariant[1]\n },\n {\n family: this.labelFont[2],\n style: this.labelFontStyle[2],\n weight: this.labelFontWeight[2],\n variant: this.labelFontVariant[2]\n }\n ];\n var tickFontOpts = [\n {\n family: this.tickFont[0],\n style: this.tickFontStyle[0],\n weight: this.tickFontWeight[0],\n variant: this.tickFontVariant[0]\n },\n {\n family: this.tickFont[1],\n style: this.tickFontStyle[1],\n weight: this.tickFontWeight[1],\n variant: this.tickFontVariant[1]\n },\n {\n family: this.tickFont[2],\n style: this.tickFontStyle[2],\n weight: this.tickFontWeight[2],\n variant: this.tickFontVariant[2]\n }\n ];\n if (!this._text) {\n this._text = createText(\n this.gl,\n this.bounds,\n this.labels,\n labelFontOpts,\n this.ticks,\n tickFontOpts\n );\n } else if (this._text && (labelUpdate || ticksUpdate)) {\n this._text.update(\n this.bounds,\n this.labels,\n labelFontOpts,\n this.ticks,\n tickFontOpts\n );\n }\n if (this._lines && ticksUpdate) {\n this._lines.dispose();\n this._lines = null;\n }\n if (!this._lines) {\n this._lines = createLines(this.gl, this.bounds, this.ticks);\n }\n };\n function OffsetInfo() {\n this.primalOffset = [0, 0, 0];\n this.primalMinor = [0, 0, 0];\n this.mirrorOffset = [0, 0, 0];\n this.mirrorMinor = [0, 0, 0];\n }\n var LINE_OFFSET = [new OffsetInfo(), new OffsetInfo(), new OffsetInfo()];\n function computeLineOffset(result, i, bounds, cubeEdges, cubeAxis) {\n var primalOffset = result.primalOffset;\n var primalMinor = result.primalMinor;\n var dualOffset = result.mirrorOffset;\n var dualMinor = result.mirrorMinor;\n var e = cubeEdges[i];\n for (var j = 0; j < 3; ++j) {\n if (i === j) {\n continue;\n }\n var a = primalOffset, b = dualOffset, c = primalMinor, d = dualMinor;\n if (e & 1 << j) {\n a = dualOffset;\n b = primalOffset;\n c = dualMinor;\n d = primalMinor;\n }\n a[j] = bounds[0][j];\n b[j] = bounds[1][j];\n if (cubeAxis[j] > 0) {\n c[j] = -1;\n d[j] = 0;\n } else {\n c[j] = 0;\n d[j] = 1;\n }\n }\n }\n var CUBE_ENABLE = [0, 0, 0];\n var DEFAULT_PARAMS = {\n model: identity2,\n view: identity2,\n projection: identity2,\n _ortho: false\n };\n proto.isOpaque = function() {\n return true;\n };\n proto.isTransparent = function() {\n return false;\n };\n proto.drawTransparent = function(params) {\n };\n var ALIGN_OPTION_AUTO = 0;\n var PRIMAL_MINOR = [0, 0, 0];\n var MIRROR_MINOR = [0, 0, 0];\n var PRIMAL_OFFSET = [0, 0, 0];\n proto.draw = function(params) {\n params = params || DEFAULT_PARAMS;\n var gl2 = this.gl;\n var model = params.model || identity2;\n var view = params.view || identity2;\n var projection = params.projection || identity2;\n var bounds = this.bounds;\n var isOrtho = params._ortho || false;\n var cubeParams = getCubeProperties(model, view, projection, bounds, isOrtho);\n var cubeEdges = cubeParams.cubeEdges;\n var cubeAxis = cubeParams.axis;\n var cx = view[12];\n var cy = view[13];\n var cz = view[14];\n var cw = view[15];\n var orthoFix = isOrtho ? 2 : 1;\n var pixelScaleF = orthoFix * this.pixelRatio * (projection[3] * cx + projection[7] * cy + projection[11] * cz + projection[15] * cw) / gl2.drawingBufferHeight;\n for (var i = 0; i < 3; ++i) {\n this.lastCubeProps.cubeEdges[i] = cubeEdges[i];\n this.lastCubeProps.axis[i] = cubeAxis[i];\n }\n var lineOffset = LINE_OFFSET;\n for (var i = 0; i < 3; ++i) {\n computeLineOffset(\n LINE_OFFSET[i],\n i,\n this.bounds,\n cubeEdges,\n cubeAxis\n );\n }\n var gl2 = this.gl;\n var cubeEnable = CUBE_ENABLE;\n for (var i = 0; i < 3; ++i) {\n if (this.backgroundEnable[i]) {\n cubeEnable[i] = cubeAxis[i];\n } else {\n cubeEnable[i] = 0;\n }\n }\n this._background.draw(\n model,\n view,\n projection,\n bounds,\n cubeEnable,\n this.backgroundColor\n );\n this._lines.bind(\n model,\n view,\n projection,\n this\n );\n for (var i = 0; i < 3; ++i) {\n var x = [0, 0, 0];\n if (cubeAxis[i] > 0) {\n x[i] = bounds[1][i];\n } else {\n x[i] = bounds[0][i];\n }\n for (var j = 0; j < 2; ++j) {\n var u = (i + 1 + j) % 3;\n var v = (i + 1 + (j ^ 1)) % 3;\n if (this.gridEnable[u]) {\n this._lines.drawGrid(u, v, this.bounds, x, this.gridColor[u], this.gridWidth[u] * this.pixelRatio);\n }\n }\n for (var j = 0; j < 2; ++j) {\n var u = (i + 1 + j) % 3;\n var v = (i + 1 + (j ^ 1)) % 3;\n if (this.zeroEnable[v]) {\n if (Math.min(bounds[0][v], bounds[1][v]) <= 0 && Math.max(bounds[0][v], bounds[1][v]) >= 0) {\n this._lines.drawZero(u, v, this.bounds, x, this.zeroLineColor[v], this.zeroLineWidth[v] * this.pixelRatio);\n }\n }\n }\n }\n for (var i = 0; i < 3; ++i) {\n if (this.lineEnable[i]) {\n this._lines.drawAxisLine(i, this.bounds, lineOffset[i].primalOffset, this.lineColor[i], this.lineWidth[i] * this.pixelRatio);\n }\n if (this.lineMirror[i]) {\n this._lines.drawAxisLine(i, this.bounds, lineOffset[i].mirrorOffset, this.lineColor[i], this.lineWidth[i] * this.pixelRatio);\n }\n var primalMinor = copyVec3(PRIMAL_MINOR, lineOffset[i].primalMinor);\n var mirrorMinor = copyVec3(MIRROR_MINOR, lineOffset[i].mirrorMinor);\n var tickLength = this.lineTickLength;\n for (var j = 0; j < 3; ++j) {\n var scaleFactor = pixelScaleF / model[5 * j];\n primalMinor[j] *= tickLength[j] * scaleFactor;\n mirrorMinor[j] *= tickLength[j] * scaleFactor;\n }\n if (this.lineTickEnable[i]) {\n this._lines.drawAxisTicks(i, lineOffset[i].primalOffset, primalMinor, this.lineTickColor[i], this.lineTickWidth[i] * this.pixelRatio);\n }\n if (this.lineTickMirror[i]) {\n this._lines.drawAxisTicks(i, lineOffset[i].mirrorOffset, mirrorMinor, this.lineTickColor[i], this.lineTickWidth[i] * this.pixelRatio);\n }\n }\n this._lines.unbind();\n this._text.bind(\n model,\n view,\n projection,\n this.pixelRatio\n );\n var alignOpt;\n var hv_ratio = 0.5;\n var enableAlign;\n var alignDir;\n function alignTo(i2) {\n alignDir = [0, 0, 0];\n alignDir[i2] = 1;\n }\n function solveTickAlignments(i2, minor2, major2) {\n var i1 = (i2 + 1) % 3;\n var i22 = (i2 + 2) % 3;\n var A2 = minor2[i1];\n var B2 = minor2[i22];\n var C2 = major2[i1];\n var D2 = major2[i22];\n if (A2 > 0 && D2 > 0) {\n alignTo(i1);\n return;\n } else if (A2 > 0 && D2 < 0) {\n alignTo(i1);\n return;\n } else if (A2 < 0 && D2 > 0) {\n alignTo(i1);\n return;\n } else if (A2 < 0 && D2 < 0) {\n alignTo(i1);\n return;\n } else if (B2 > 0 && C2 > 0) {\n alignTo(i22);\n return;\n } else if (B2 > 0 && C2 < 0) {\n alignTo(i22);\n return;\n } else if (B2 < 0 && C2 > 0) {\n alignTo(i22);\n return;\n } else if (B2 < 0 && C2 < 0) {\n alignTo(i22);\n return;\n }\n }\n for (var i = 0; i < 3; ++i) {\n var minor = lineOffset[i].primalMinor;\n var major = lineOffset[i].mirrorMinor;\n var offset = copyVec3(PRIMAL_OFFSET, lineOffset[i].primalOffset);\n for (var j = 0; j < 3; ++j) {\n if (this.lineTickEnable[i]) {\n offset[j] += pixelScaleF * minor[j] * Math.max(this.lineTickLength[j], 0) / model[5 * j];\n }\n }\n var axis = [0, 0, 0];\n axis[i] = 1;\n if (this.tickEnable[i]) {\n if (this.tickAngle[i] === -3600) {\n this.tickAngle[i] = 0;\n this.tickAlign[i] = \"auto\";\n } else {\n this.tickAlign[i] = -1;\n }\n enableAlign = 1;\n alignOpt = [this.tickAlign[i], hv_ratio, enableAlign];\n if (alignOpt[0] === \"auto\") alignOpt[0] = ALIGN_OPTION_AUTO;\n else alignOpt[0] = parseInt(\"\" + alignOpt[0]);\n alignDir = [0, 0, 0];\n solveTickAlignments(i, minor, major);\n for (var j = 0; j < 3; ++j) {\n offset[j] += pixelScaleF * minor[j] * this.tickPad[j] / model[5 * j];\n }\n this._text.drawTicks(\n i,\n this.tickSize[i],\n this.tickAngle[i],\n offset,\n this.tickColor[i],\n axis,\n alignDir,\n alignOpt\n );\n }\n if (this.labelEnable[i]) {\n enableAlign = 0;\n alignDir = [0, 0, 0];\n if (this.labels[i].length > 4) {\n alignTo(i);\n enableAlign = 1;\n }\n alignOpt = [this.labelAlign[i], hv_ratio, enableAlign];\n if (alignOpt[0] === \"auto\") alignOpt[0] = ALIGN_OPTION_AUTO;\n else alignOpt[0] = parseInt(\"\" + alignOpt[0]);\n for (var j = 0; j < 3; ++j) {\n offset[j] += pixelScaleF * minor[j] * this.labelPad[j] / model[5 * j];\n }\n offset[i] += 0.5 * (bounds[0][i] + bounds[1][i]);\n this._text.drawLabel(\n i,\n this.labelSize[i],\n this.labelAngle[i],\n offset,\n this.labelColor[i],\n [0, 0, 0],\n alignDir,\n alignOpt\n );\n }\n }\n this._text.unbind();\n };\n proto.dispose = function() {\n this._text.dispose();\n this._lines.dispose();\n this._background.dispose();\n this._lines = null;\n this._text = null;\n this._background = null;\n this.gl = null;\n };\n function createAxes(gl2, options) {\n var axes = new Axes(gl2);\n axes.update(options);\n return axes;\n }\n }\n ),\n /***/\n 5304: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createBackgroundCube;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createShader = __webpack_require__2(1879).bg;\n function BackgroundCube(gl2, buffer, vao, shader) {\n this.gl = gl2;\n this.buffer = buffer;\n this.vao = vao;\n this.shader = shader;\n }\n var proto = BackgroundCube.prototype;\n proto.draw = function(model, view, projection, bounds, enable, colors) {\n var needsBG = false;\n for (var i = 0; i < 3; ++i) {\n needsBG = needsBG || enable[i];\n }\n if (!needsBG) {\n return;\n }\n var gl2 = this.gl;\n gl2.enable(gl2.POLYGON_OFFSET_FILL);\n gl2.polygonOffset(1, 2);\n this.shader.bind();\n this.shader.uniforms = {\n model,\n view,\n projection,\n bounds,\n enable,\n colors\n };\n this.vao.bind();\n this.vao.draw(this.gl.TRIANGLES, 36);\n this.vao.unbind();\n gl2.disable(gl2.POLYGON_OFFSET_FILL);\n };\n proto.dispose = function() {\n this.vao.dispose();\n this.buffer.dispose();\n this.shader.dispose();\n };\n function createBackgroundCube(gl2) {\n var vertices = [];\n var indices = [];\n var ptr = 0;\n for (var d = 0; d < 3; ++d) {\n var u = (d + 1) % 3;\n var v = (d + 2) % 3;\n var x = [0, 0, 0];\n var c = [0, 0, 0];\n for (var s = -1; s <= 1; s += 2) {\n indices.push(\n ptr,\n ptr + 2,\n ptr + 1,\n ptr + 1,\n ptr + 2,\n ptr + 3\n );\n x[d] = s;\n c[d] = s;\n for (var i = -1; i <= 1; i += 2) {\n x[u] = i;\n for (var j = -1; j <= 1; j += 2) {\n x[v] = j;\n vertices.push(\n x[0],\n x[1],\n x[2],\n c[0],\n c[1],\n c[2]\n );\n ptr += 1;\n }\n }\n var tt = u;\n u = v;\n v = tt;\n }\n }\n var buffer = createBuffer(gl2, new Float32Array(vertices));\n var elements = createBuffer(gl2, new Uint16Array(indices), gl2.ELEMENT_ARRAY_BUFFER);\n var vao = createVAO(gl2, [\n {\n buffer,\n type: gl2.FLOAT,\n size: 3,\n offset: 0,\n stride: 24\n },\n {\n buffer,\n type: gl2.FLOAT,\n size: 3,\n offset: 12,\n stride: 24\n }\n ], elements);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n shader.attributes.normal.location = 1;\n return new BackgroundCube(gl2, buffer, vao, shader);\n }\n }\n ),\n /***/\n 6429: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = getCubeEdges;\n var bits = __webpack_require__2(8828);\n var multiply = __webpack_require__2(6760);\n var splitPoly = __webpack_require__2(5202);\n var orient = __webpack_require__2(3250);\n var mvp = new Array(16);\n var pCubeVerts = new Array(8);\n var cubeVerts = new Array(8);\n var x = new Array(3);\n var zero3 = [0, 0, 0];\n (function() {\n for (var i = 0; i < 8; ++i) {\n pCubeVerts[i] = [1, 1, 1, 1];\n cubeVerts[i] = [1, 1, 1];\n }\n })();\n function transformHg(result, x2, mat) {\n for (var i = 0; i < 4; ++i) {\n result[i] = mat[12 + i];\n for (var j = 0; j < 3; ++j) {\n result[i] += x2[j] * mat[4 * j + i];\n }\n }\n }\n var FRUSTUM_PLANES = [\n [0, 0, 1, 0, 0],\n [0, 0, -1, 1, 0],\n [0, -1, 0, 1, 0],\n [0, 1, 0, 1, 0],\n [-1, 0, 0, 1, 0],\n [1, 0, 0, 1, 0]\n ];\n function polygonArea(p) {\n for (var i = 0; i < FRUSTUM_PLANES.length; ++i) {\n p = splitPoly.positive(p, FRUSTUM_PLANES[i]);\n if (p.length < 3) {\n return 0;\n }\n }\n var base = p[0];\n var ax = base[0] / base[3];\n var ay = base[1] / base[3];\n var area = 0;\n for (var i = 1; i + 1 < p.length; ++i) {\n var b = p[i];\n var c = p[i + 1];\n var bx = b[0] / b[3];\n var by = b[1] / b[3];\n var cx = c[0] / c[3];\n var cy = c[1] / c[3];\n var ux = bx - ax;\n var uy = by - ay;\n var vx = cx - ax;\n var vy = cy - ay;\n area += Math.abs(ux * vy - uy * vx);\n }\n return area;\n }\n var CUBE_EDGES = [1, 1, 1];\n var CUBE_AXIS = [0, 0, 0];\n var CUBE_RESULT = {\n cubeEdges: CUBE_EDGES,\n axis: CUBE_AXIS\n };\n function getCubeEdges(model, view, projection, bounds, ortho) {\n multiply(mvp, view, model);\n multiply(mvp, projection, mvp);\n var ptr = 0;\n for (var i = 0; i < 2; ++i) {\n x[2] = bounds[i][2];\n for (var j = 0; j < 2; ++j) {\n x[1] = bounds[j][1];\n for (var k = 0; k < 2; ++k) {\n x[0] = bounds[k][0];\n transformHg(pCubeVerts[ptr], x, mvp);\n ptr += 1;\n }\n }\n }\n var closest = -1;\n for (var i = 0; i < 8; ++i) {\n var w = pCubeVerts[i][3];\n for (var l = 0; l < 3; ++l) {\n cubeVerts[i][l] = pCubeVerts[i][l] / w;\n }\n if (ortho) cubeVerts[i][2] *= -1;\n if (w < 0) {\n if (closest < 0) {\n closest = i;\n } else if (cubeVerts[i][2] < cubeVerts[closest][2]) {\n closest = i;\n }\n }\n }\n if (closest < 0) {\n closest = 0;\n for (var d = 0; d < 3; ++d) {\n var u = (d + 2) % 3;\n var v = (d + 1) % 3;\n var o0 = -1;\n var o1 = -1;\n for (var s = 0; s < 2; ++s) {\n var f0 = s << d;\n var f1 = f0 + (s << u) + (1 - s << v);\n var f2 = f0 + (1 - s << u) + (s << v);\n if (orient(cubeVerts[f0], cubeVerts[f1], cubeVerts[f2], zero3) < 0) {\n continue;\n }\n if (s) {\n o0 = 1;\n } else {\n o1 = 1;\n }\n }\n if (o0 < 0 || o1 < 0) {\n if (o1 > o0) {\n closest |= 1 << d;\n }\n continue;\n }\n for (var s = 0; s < 2; ++s) {\n var f0 = s << d;\n var f1 = f0 + (s << u) + (1 - s << v);\n var f2 = f0 + (1 - s << u) + (s << v);\n var o = polygonArea([\n pCubeVerts[f0],\n pCubeVerts[f1],\n pCubeVerts[f2],\n pCubeVerts[f0 + (1 << u) + (1 << v)]\n ]);\n if (s) {\n o0 = o;\n } else {\n o1 = o;\n }\n }\n if (o1 > o0) {\n closest |= 1 << d;\n continue;\n }\n }\n }\n var farthest = 7 ^ closest;\n var bottom = -1;\n for (var i = 0; i < 8; ++i) {\n if (i === closest || i === farthest) {\n continue;\n }\n if (bottom < 0) {\n bottom = i;\n } else if (cubeVerts[bottom][1] > cubeVerts[i][1]) {\n bottom = i;\n }\n }\n var left = -1;\n for (var i = 0; i < 3; ++i) {\n var idx = bottom ^ 1 << i;\n if (idx === closest || idx === farthest) {\n continue;\n }\n if (left < 0) {\n left = idx;\n }\n var v = cubeVerts[idx];\n if (v[0] < cubeVerts[left][0]) {\n left = idx;\n }\n }\n var right = -1;\n for (var i = 0; i < 3; ++i) {\n var idx = bottom ^ 1 << i;\n if (idx === closest || idx === farthest || idx === left) {\n continue;\n }\n if (right < 0) {\n right = idx;\n }\n var v = cubeVerts[idx];\n if (v[0] > cubeVerts[right][0]) {\n right = idx;\n }\n }\n var cubeEdges = CUBE_EDGES;\n cubeEdges[0] = cubeEdges[1] = cubeEdges[2] = 0;\n cubeEdges[bits.log2(left ^ bottom)] = bottom & left;\n cubeEdges[bits.log2(bottom ^ right)] = bottom & right;\n var top = right ^ 7;\n if (top === closest || top === farthest) {\n top = left ^ 7;\n cubeEdges[bits.log2(right ^ top)] = top & right;\n } else {\n cubeEdges[bits.log2(left ^ top)] = top & left;\n }\n var axis = CUBE_AXIS;\n var cutCorner = closest;\n for (var d = 0; d < 3; ++d) {\n if (cutCorner & 1 << d) {\n axis[d] = -1;\n } else {\n axis[d] = 1;\n }\n }\n return CUBE_RESULT;\n }\n }\n ),\n /***/\n 501: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createLines;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createShader = __webpack_require__2(1879).n;\n var MAJOR_AXIS = [0, 0, 0];\n var MINOR_AXIS = [0, 0, 0];\n var SCREEN_AXIS = [0, 0, 0];\n var OFFSET_VEC = [0, 0, 0];\n var SHAPE = [1, 1];\n function zeroVec(a) {\n a[0] = a[1] = a[2] = 0;\n return a;\n }\n function copyVec(a, b) {\n a[0] = b[0];\n a[1] = b[1];\n a[2] = b[2];\n return a;\n }\n function Lines(gl2, vertBuffer, vao, shader, tickCount, tickOffset, gridCount, gridOffset) {\n this.gl = gl2;\n this.vertBuffer = vertBuffer;\n this.vao = vao;\n this.shader = shader;\n this.tickCount = tickCount;\n this.tickOffset = tickOffset;\n this.gridCount = gridCount;\n this.gridOffset = gridOffset;\n }\n var proto = Lines.prototype;\n proto.bind = function(model, view, projection) {\n this.shader.bind();\n this.shader.uniforms.model = model;\n this.shader.uniforms.view = view;\n this.shader.uniforms.projection = projection;\n SHAPE[0] = this.gl.drawingBufferWidth;\n SHAPE[1] = this.gl.drawingBufferHeight;\n this.shader.uniforms.screenShape = SHAPE;\n this.vao.bind();\n };\n proto.unbind = function() {\n this.vao.unbind();\n };\n proto.drawAxisLine = function(j, bounds, offset, color2, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS);\n this.shader.uniforms.majorAxis = MINOR_AXIS;\n minorAxis[j] = bounds[1][j] - bounds[0][j];\n this.shader.uniforms.minorAxis = minorAxis;\n var noffset = copyVec(OFFSET_VEC, offset);\n noffset[j] += bounds[0][j];\n this.shader.uniforms.offset = noffset;\n this.shader.uniforms.lineWidth = lineWidth;\n this.shader.uniforms.color = color2;\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[(j + 2) % 3] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.vao.draw(this.gl.TRIANGLES, 6);\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[(j + 1) % 3] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.vao.draw(this.gl.TRIANGLES, 6);\n };\n proto.drawAxisTicks = function(j, offset, minorAxis, color2, lineWidth) {\n if (!this.tickCount[j]) {\n return;\n }\n var majorAxis = zeroVec(MAJOR_AXIS);\n majorAxis[j] = 1;\n this.shader.uniforms.majorAxis = majorAxis;\n this.shader.uniforms.offset = offset;\n this.shader.uniforms.minorAxis = minorAxis;\n this.shader.uniforms.color = color2;\n this.shader.uniforms.lineWidth = lineWidth;\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[j] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.vao.draw(this.gl.TRIANGLES, this.tickCount[j], this.tickOffset[j]);\n };\n proto.drawGrid = function(i, j, bounds, offset, color2, lineWidth) {\n if (!this.gridCount[i]) {\n return;\n }\n var minorAxis = zeroVec(MINOR_AXIS);\n minorAxis[j] = bounds[1][j] - bounds[0][j];\n this.shader.uniforms.minorAxis = minorAxis;\n var noffset = copyVec(OFFSET_VEC, offset);\n noffset[j] += bounds[0][j];\n this.shader.uniforms.offset = noffset;\n var majorAxis = zeroVec(MAJOR_AXIS);\n majorAxis[i] = 1;\n this.shader.uniforms.majorAxis = majorAxis;\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[i] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.shader.uniforms.lineWidth = lineWidth;\n this.shader.uniforms.color = color2;\n this.vao.draw(this.gl.TRIANGLES, this.gridCount[i], this.gridOffset[i]);\n };\n proto.drawZero = function(j, i, bounds, offset, color2, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS);\n this.shader.uniforms.majorAxis = minorAxis;\n minorAxis[j] = bounds[1][j] - bounds[0][j];\n this.shader.uniforms.minorAxis = minorAxis;\n var noffset = copyVec(OFFSET_VEC, offset);\n noffset[j] += bounds[0][j];\n this.shader.uniforms.offset = noffset;\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[i] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.shader.uniforms.lineWidth = lineWidth;\n this.shader.uniforms.color = color2;\n this.vao.draw(this.gl.TRIANGLES, 6);\n };\n proto.dispose = function() {\n this.vao.dispose();\n this.vertBuffer.dispose();\n this.shader.dispose();\n };\n function createLines(gl2, bounds, ticks) {\n var vertices = [];\n var tickOffset = [0, 0, 0];\n var tickCount = [0, 0, 0];\n var gridOffset = [0, 0, 0];\n var gridCount = [0, 0, 0];\n vertices.push(\n 0,\n 0,\n 1,\n 0,\n 1,\n 1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 1,\n 1,\n 0,\n 1,\n -1\n );\n for (var i = 0; i < 3; ++i) {\n var start = vertices.length / 3 | 0;\n for (var j = 0; j < ticks[i].length; ++j) {\n var x = +ticks[i][j].x;\n vertices.push(\n x,\n 0,\n 1,\n x,\n 1,\n 1,\n x,\n 0,\n -1,\n x,\n 0,\n -1,\n x,\n 1,\n 1,\n x,\n 1,\n -1\n );\n }\n var end = vertices.length / 3 | 0;\n tickOffset[i] = start;\n tickCount[i] = end - start;\n var start = vertices.length / 3 | 0;\n for (var k = 0; k < ticks[i].length; ++k) {\n var x = +ticks[i][k].x;\n vertices.push(\n x,\n 0,\n 1,\n x,\n 1,\n 1,\n x,\n 0,\n -1,\n x,\n 0,\n -1,\n x,\n 1,\n 1,\n x,\n 1,\n -1\n );\n }\n var end = vertices.length / 3 | 0;\n gridOffset[i] = start;\n gridCount[i] = end - start;\n }\n var vertBuf = createBuffer(gl2, new Float32Array(vertices));\n var vao = createVAO(gl2, [\n {\n \"buffer\": vertBuf,\n \"type\": gl2.FLOAT,\n \"size\": 3,\n \"stride\": 0,\n \"offset\": 0\n }\n ]);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n return new Lines(gl2, vertBuf, vao, shader, tickCount, tickOffset, gridCount, gridOffset);\n }\n }\n ),\n /***/\n 1879: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var lineVert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 offset, majorAxis, minorAxis, screenAxis;\\nuniform float lineWidth;\\nuniform vec2 screenShape;\\n\\nvec3 project(vec3 p) {\\n vec4 pp = projection * (view * (model * vec4(p, 1.0)));\\n return pp.xyz / max(pp.w, 0.0001);\\n}\\n\\nvoid main() {\\n vec3 major = position.x * majorAxis;\\n vec3 minor = position.y * minorAxis;\\n\\n vec3 vPosition = major + minor + offset;\\n vec3 pPosition = project(vPosition);\\n vec3 offset = project(vPosition + screenAxis * position.z);\\n\\n vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;\\n\\n gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);\\n}\\n\"]);\n var lineFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 color;\\nvoid main() {\\n gl_FragColor = color;\\n}\"]);\n exports2.n = function(gl2) {\n return createShader(gl2, lineVert, lineFrag, null, [\n { name: \"position\", type: \"vec3\" }\n ]);\n };\n var textVert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 offset, axis, alignDir, alignOpt;\\nuniform float scale, angle, pixelScale;\\nuniform vec2 resolution;\\n\\nvec3 project(vec3 p) {\\n vec4 pp = projection * (view * (model * vec4(p, 1.0)));\\n return pp.xyz / max(pp.w, 0.0001);\\n}\\n\\nfloat computeViewAngle(vec3 a, vec3 b) {\\n vec3 A = project(a);\\n vec3 B = project(b);\\n\\n return atan(\\n (B.y - A.y) * resolution.y,\\n (B.x - A.x) * resolution.x\\n );\\n}\\n\\nconst float PI = 3.141592;\\nconst float TWO_PI = 2.0 * PI;\\nconst float HALF_PI = 0.5 * PI;\\nconst float ONE_AND_HALF_PI = 1.5 * PI;\\n\\nint option = int(floor(alignOpt.x + 0.001));\\nfloat hv_ratio = alignOpt.y;\\nbool enableAlign = (alignOpt.z != 0.0);\\n\\nfloat mod_angle(float a) {\\n return mod(a, PI);\\n}\\n\\nfloat positive_angle(float a) {\\n return mod_angle((a < 0.0) ?\\n a + TWO_PI :\\n a\\n );\\n}\\n\\nfloat look_upwards(float a) {\\n float b = positive_angle(a);\\n return ((b > HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\\n b - PI :\\n b;\\n}\\n\\nfloat look_horizontal_or_vertical(float a, float ratio) {\\n // ratio controls the ratio between being horizontal to (vertical + horizontal)\\n // if ratio is set to 0.5 then it is 50%, 50%.\\n // when using a higher ratio e.g. 0.75 the result would\\n // likely be more horizontal than vertical.\\n\\n float b = positive_angle(a);\\n\\n return\\n (b < ( ratio) * HALF_PI) ? 0.0 :\\n (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\\n (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\\n (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\\n 0.0;\\n}\\n\\nfloat roundTo(float a, float b) {\\n return float(b * floor((a + 0.5 * b) / b));\\n}\\n\\nfloat look_round_n_directions(float a, int n) {\\n float b = positive_angle(a);\\n float div = TWO_PI / float(n);\\n float c = roundTo(b, div);\\n return look_upwards(c);\\n}\\n\\nfloat applyAlignOption(float rawAngle, float delta) {\\n return\\n (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions\\n (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\\n (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis\\n (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\\n (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal\\n rawAngle; // otherwise return back raw input angle\\n}\\n\\nbool isAxisTitle = (axis.x == 0.0) &&\\n (axis.y == 0.0) &&\\n (axis.z == 0.0);\\n\\nvoid main() {\\n //Compute world offset\\n float axisDistance = position.z;\\n vec3 dataPosition = axisDistance * axis + offset;\\n\\n float beta = angle; // i.e. user defined attributes for each tick\\n\\n float axisAngle;\\n float clipAngle;\\n float flip;\\n\\n if (enableAlign) {\\n axisAngle = (isAxisTitle) ? HALF_PI :\\n computeViewAngle(dataPosition, dataPosition + axis);\\n clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\\n\\n axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\\n clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\\n\\n flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\\n vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\\n\\n beta += applyAlignOption(clipAngle, flip * PI);\\n }\\n\\n //Compute plane offset\\n vec2 planeCoord = position.xy * pixelScale;\\n\\n mat2 planeXform = scale * mat2(\\n cos(beta), sin(beta),\\n -sin(beta), cos(beta)\\n );\\n\\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\\n\\n //Compute clip position\\n vec3 clipPosition = project(dataPosition);\\n\\n //Apply text offset in clip coordinates\\n clipPosition += vec3(viewOffset, 0.0);\\n\\n //Done\\n gl_Position = vec4(clipPosition, 1.0);\\n}\\n\"]);\n var textFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 color;\\nvoid main() {\\n gl_FragColor = color;\\n}\"]);\n exports2.Q = function(gl2) {\n return createShader(gl2, textVert, textFrag, null, [\n { name: \"position\", type: \"vec3\" }\n ]);\n };\n var bgVert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec3 normal;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 enable;\\nuniform vec3 bounds[2];\\n\\nvarying vec3 colorChannel;\\n\\nvoid main() {\\n\\n vec3 signAxis = sign(bounds[1] - bounds[0]);\\n\\n vec3 realNormal = signAxis * normal;\\n\\n if(dot(realNormal, enable) > 0.0) {\\n vec3 minRange = min(bounds[0], bounds[1]);\\n vec3 maxRange = max(bounds[0], bounds[1]);\\n vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\\n gl_Position = projection * (view * (model * vec4(nPosition, 1.0)));\\n } else {\\n gl_Position = vec4(0,0,0,0);\\n }\\n\\n colorChannel = abs(realNormal);\\n}\\n\"]);\n var bgFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 colors[3];\\n\\nvarying vec3 colorChannel;\\n\\nvoid main() {\\n gl_FragColor = colorChannel.x * colors[0] +\\n colorChannel.y * colors[1] +\\n colorChannel.z * colors[2];\\n}\"]);\n exports2.bg = function(gl2) {\n return createShader(gl2, bgVert, bgFrag, null, [\n { name: \"position\", type: \"vec3\" },\n { name: \"normal\", type: \"vec3\" }\n ]);\n };\n }\n ),\n /***/\n 4935: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createTextSprites;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var vectorizeText = __webpack_require__2(4359);\n var createShader = __webpack_require__2(1879).Q;\n var globals = window || process.global || {};\n var __TEXT_CACHE = globals.__TEXT_CACHE || {};\n globals.__TEXT_CACHE = {};\n var VERTEX_SIZE = 3;\n function TextSprites(gl2, shader, buffer, vao) {\n this.gl = gl2;\n this.shader = shader;\n this.buffer = buffer;\n this.vao = vao;\n this.tickOffset = this.tickCount = this.labelOffset = this.labelCount = null;\n }\n var proto = TextSprites.prototype;\n var SHAPE = [0, 0];\n proto.bind = function(model, view, projection, pixelScale) {\n this.vao.bind();\n this.shader.bind();\n var uniforms = this.shader.uniforms;\n uniforms.model = model;\n uniforms.view = view;\n uniforms.projection = projection;\n uniforms.pixelScale = pixelScale;\n SHAPE[0] = this.gl.drawingBufferWidth;\n SHAPE[1] = this.gl.drawingBufferHeight;\n this.shader.uniforms.resolution = SHAPE;\n };\n proto.unbind = function() {\n this.vao.unbind();\n };\n proto.update = function(bounds, labels, labelFont, ticks, tickFont) {\n var data = [];\n function addItem(t, text, font2, size, lineSpacing2, styletags2) {\n var fontKey = [\n font2.style,\n font2.weight,\n font2.variant,\n font2.family\n ].join(\"_\");\n var fontcache = __TEXT_CACHE[fontKey];\n if (!fontcache) {\n fontcache = __TEXT_CACHE[fontKey] = {};\n }\n var mesh = fontcache[text];\n if (!mesh) {\n mesh = fontcache[text] = tryVectorizeText(text, {\n triangles: true,\n font: font2.family,\n fontStyle: font2.style,\n fontWeight: font2.weight,\n fontVariant: font2.variant,\n textAlign: \"center\",\n textBaseline: \"middle\",\n lineSpacing: lineSpacing2,\n styletags: styletags2\n });\n }\n var scale = (size || 12) / 12;\n var positions = mesh.positions;\n var cells = mesh.cells;\n for (var i2 = 0, nc = cells.length; i2 < nc; ++i2) {\n var c = cells[i2];\n for (var j = 2; j >= 0; --j) {\n var p = positions[c[j]];\n data.push(scale * p[0], -scale * p[1], t);\n }\n }\n }\n var tickOffset = [0, 0, 0];\n var tickCount = [0, 0, 0];\n var labelOffset = [0, 0, 0];\n var labelCount = [0, 0, 0];\n var lineSpacing = 1.25;\n var styletags = {\n breaklines: true,\n bolds: true,\n italics: true,\n subscripts: true,\n superscripts: true\n };\n for (var d = 0; d < 3; ++d) {\n labelOffset[d] = data.length / VERTEX_SIZE | 0;\n addItem(\n 0.5 * (bounds[0][d] + bounds[1][d]),\n labels[d],\n labelFont[d],\n 12,\n // labelFontSize\n lineSpacing,\n styletags\n );\n labelCount[d] = (data.length / VERTEX_SIZE | 0) - labelOffset[d];\n tickOffset[d] = data.length / VERTEX_SIZE | 0;\n for (var i = 0; i < ticks[d].length; ++i) {\n if (!ticks[d][i].text) {\n continue;\n }\n var font = {\n family: ticks[d][i].font || tickFont[d].family,\n style: tickFont[d].fontStyle || tickFont[d].style,\n weight: tickFont[d].fontWeight || tickFont[d].weight,\n variant: tickFont[d].fontVariant || tickFont[d].variant\n };\n addItem(\n ticks[d][i].x,\n ticks[d][i].text,\n font,\n ticks[d][i].fontSize || 12,\n lineSpacing,\n styletags\n );\n }\n tickCount[d] = (data.length / VERTEX_SIZE | 0) - tickOffset[d];\n }\n this.buffer.update(data);\n this.tickOffset = tickOffset;\n this.tickCount = tickCount;\n this.labelOffset = labelOffset;\n this.labelCount = labelCount;\n };\n proto.drawTicks = function(d, scale, angle, offset, color2, axis, alignDir, alignOpt) {\n if (!this.tickCount[d]) {\n return;\n }\n this.shader.uniforms.axis = axis;\n this.shader.uniforms.color = color2;\n this.shader.uniforms.angle = angle;\n this.shader.uniforms.scale = scale;\n this.shader.uniforms.offset = offset;\n this.shader.uniforms.alignDir = alignDir;\n this.shader.uniforms.alignOpt = alignOpt;\n this.vao.draw(this.gl.TRIANGLES, this.tickCount[d], this.tickOffset[d]);\n };\n proto.drawLabel = function(d, scale, angle, offset, color2, axis, alignDir, alignOpt) {\n if (!this.labelCount[d]) {\n return;\n }\n this.shader.uniforms.axis = axis;\n this.shader.uniforms.color = color2;\n this.shader.uniforms.angle = angle;\n this.shader.uniforms.scale = scale;\n this.shader.uniforms.offset = offset;\n this.shader.uniforms.alignDir = alignDir;\n this.shader.uniforms.alignOpt = alignOpt;\n this.vao.draw(this.gl.TRIANGLES, this.labelCount[d], this.labelOffset[d]);\n };\n proto.dispose = function() {\n this.shader.dispose();\n this.vao.dispose();\n this.buffer.dispose();\n };\n function tryVectorizeText(text, options) {\n try {\n return vectorizeText(text, options);\n } catch (e) {\n console.warn('error vectorizing text:\"' + text + '\" error:', e);\n return {\n cells: [],\n positions: []\n };\n }\n }\n function createTextSprites(gl2, bounds, labels, labelFont, ticks, tickFont) {\n var buffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n \"buffer\": buffer,\n \"size\": 3\n }\n ]);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n var result = new TextSprites(\n gl2,\n shader,\n buffer,\n vao\n );\n result.update(bounds, labels, labelFont, ticks, tickFont);\n return result;\n }\n }\n ),\n /***/\n 6444: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n exports2.create = defaultTicks;\n exports2.equal = ticksEqual;\n function prettyPrint(spacing, i) {\n var stepStr = spacing + \"\";\n var u = stepStr.indexOf(\".\");\n var sigFigs = 0;\n if (u >= 0) {\n sigFigs = stepStr.length - u - 1;\n }\n var shift = Math.pow(10, sigFigs);\n var x = Math.round(spacing * i * shift);\n var xstr = x + \"\";\n if (xstr.indexOf(\"e\") >= 0) {\n return xstr;\n }\n var xi = x / shift, xf = x % shift;\n if (x < 0) {\n xi = -Math.ceil(xi) | 0;\n xf = -xf | 0;\n } else {\n xi = Math.floor(xi) | 0;\n xf = xf | 0;\n }\n var xis = \"\" + xi;\n if (x < 0) {\n xis = \"-\" + xis;\n }\n if (sigFigs) {\n var xs = \"\" + xf;\n while (xs.length < sigFigs) {\n xs = \"0\" + xs;\n }\n return xis + \".\" + xs;\n } else {\n return xis;\n }\n }\n function defaultTicks(bounds, tickSpacing) {\n var array = [];\n for (var d = 0; d < 3; ++d) {\n var ticks = [];\n var m = 0.5 * (bounds[0][d] + bounds[1][d]);\n for (var t = 0; t * tickSpacing[d] <= bounds[1][d]; ++t) {\n ticks.push({ x: t * tickSpacing[d], text: prettyPrint(tickSpacing[d], t) });\n }\n for (var t = -1; t * tickSpacing[d] >= bounds[0][d]; --t) {\n ticks.push({ x: t * tickSpacing[d], text: prettyPrint(tickSpacing[d], t) });\n }\n array.push(ticks);\n }\n return array;\n }\n function ticksEqual(ticksA, ticksB) {\n for (var i = 0; i < 3; ++i) {\n if (ticksA[i].length !== ticksB[i].length) {\n return false;\n }\n for (var j = 0; j < ticksA[i].length; ++j) {\n var a = ticksA[i][j];\n var b = ticksB[i][j];\n if (a.x !== b.x || a.text !== b.text || a.font !== b.font || a.fontColor !== b.fontColor || a.fontSize !== b.fontSize || a.dx !== b.dx || a.dy !== b.dy) {\n return false;\n }\n }\n }\n return true;\n }\n }\n ),\n /***/\n 5445: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = axesProperties;\n var getPlanes = __webpack_require__2(5033);\n var splitPoly = __webpack_require__2(5202);\n var cubeParams = __webpack_require__2(6429);\n var m4mul = __webpack_require__2(6760);\n var m4transpose = __webpack_require__2(5665);\n var v4transformMat4 = __webpack_require__2(5352);\n var identity2 = new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n var mvp = new Float32Array(16);\n function AxesRange3D(lo, hi, pixelsPerDataUnit) {\n this.lo = lo;\n this.hi = hi;\n this.pixelsPerDataUnit = pixelsPerDataUnit;\n }\n var SCRATCH_P = [0, 0, 0, 1];\n var SCRATCH_Q = [0, 0, 0, 1];\n function gradient(result, M, v, width, height) {\n for (var i = 0; i < 3; ++i) {\n var p = SCRATCH_P;\n var q = SCRATCH_Q;\n for (var j = 0; j < 3; ++j) {\n q[j] = p[j] = v[j];\n }\n q[3] = p[3] = 1;\n q[i] += 1;\n v4transformMat4(q, q, M);\n if (q[3] < 0) {\n result[i] = Infinity;\n }\n p[i] -= 1;\n v4transformMat4(p, p, M);\n if (p[3] < 0) {\n result[i] = Infinity;\n }\n var dx = (p[0] / p[3] - q[0] / q[3]) * width;\n var dy = (p[1] / p[3] - q[1] / q[3]) * height;\n result[i] = 0.25 * Math.sqrt(dx * dx + dy * dy);\n }\n return result;\n }\n var RANGES = [\n new AxesRange3D(Infinity, -Infinity, Infinity),\n new AxesRange3D(Infinity, -Infinity, Infinity),\n new AxesRange3D(Infinity, -Infinity, Infinity)\n ];\n var SCRATCH_X = [0, 0, 0];\n function axesProperties(axes, camera, width, height, params) {\n var model = camera.model || identity2;\n var view = camera.view || identity2;\n var projection = camera.projection || identity2;\n var isOrtho = camera._ortho || false;\n var bounds = axes.bounds;\n var params = params || cubeParams(model, view, projection, bounds, isOrtho);\n var axis = params.axis;\n m4mul(mvp, view, model);\n m4mul(mvp, projection, mvp);\n var ranges = RANGES;\n for (var i = 0; i < 3; ++i) {\n ranges[i].lo = Infinity;\n ranges[i].hi = -Infinity;\n ranges[i].pixelsPerDataUnit = Infinity;\n }\n var frustum = getPlanes(m4transpose(mvp, mvp));\n m4transpose(mvp, mvp);\n for (var d = 0; d < 3; ++d) {\n var u = (d + 1) % 3;\n var v = (d + 2) % 3;\n var x = SCRATCH_X;\n i_loop:\n for (var i = 0; i < 2; ++i) {\n var poly = [];\n if (axis[d] < 0 === !!i) {\n continue;\n }\n x[d] = bounds[i][d];\n for (var j = 0; j < 2; ++j) {\n x[u] = bounds[j ^ i][u];\n for (var k = 0; k < 2; ++k) {\n x[v] = bounds[k ^ j ^ i][v];\n poly.push(x.slice());\n }\n }\n var Q = isOrtho ? 5 : 4;\n for (var j = Q; j === Q; ++j) {\n if (poly.length === 0) {\n continue i_loop;\n }\n poly = splitPoly.positive(poly, frustum[j]);\n }\n for (var j = 0; j < poly.length; ++j) {\n var v = poly[j];\n var grad = gradient(SCRATCH_X, mvp, v, width, height);\n for (var k = 0; k < 3; ++k) {\n ranges[k].lo = Math.min(ranges[k].lo, v[k]);\n ranges[k].hi = Math.max(ranges[k].hi, v[k]);\n if (k !== d) {\n ranges[k].pixelsPerDataUnit = Math.min(ranges[k].pixelsPerDataUnit, Math.abs(grad[k]));\n }\n }\n }\n }\n }\n return ranges;\n }\n }\n ),\n /***/\n 2762: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var pool = __webpack_require__2(1888);\n var ops = __webpack_require__2(5298);\n var ndarray = __webpack_require__2(9618);\n var SUPPORTED_TYPES = [\n \"uint8\",\n \"uint8_clamped\",\n \"uint16\",\n \"uint32\",\n \"int8\",\n \"int16\",\n \"int32\",\n \"float32\"\n ];\n function GLBuffer(gl2, type, handle, length, usage) {\n this.gl = gl2;\n this.type = type;\n this.handle = handle;\n this.length = length;\n this.usage = usage;\n }\n var proto = GLBuffer.prototype;\n proto.bind = function() {\n this.gl.bindBuffer(this.type, this.handle);\n };\n proto.unbind = function() {\n this.gl.bindBuffer(this.type, null);\n };\n proto.dispose = function() {\n this.gl.deleteBuffer(this.handle);\n };\n function updateTypeArray(gl2, type, len, usage, data, offset) {\n var dataLen = data.length * data.BYTES_PER_ELEMENT;\n if (offset < 0) {\n gl2.bufferData(type, data, usage);\n return dataLen;\n }\n if (dataLen + offset > len) {\n throw new Error(\"gl-buffer: If resizing buffer, must not specify offset\");\n }\n gl2.bufferSubData(type, offset, data);\n return len;\n }\n function makeScratchTypeArray(array, dtype) {\n var res = pool.malloc(array.length, dtype);\n var n = array.length;\n for (var i = 0; i < n; ++i) {\n res[i] = array[i];\n }\n return res;\n }\n function isPacked(shape, stride) {\n var n = 1;\n for (var i = stride.length - 1; i >= 0; --i) {\n if (stride[i] !== n) {\n return false;\n }\n n *= shape[i];\n }\n return true;\n }\n proto.update = function(array, offset) {\n if (typeof offset !== \"number\") {\n offset = -1;\n }\n this.bind();\n if (typeof array === \"object\" && typeof array.shape !== \"undefined\") {\n var dtype = array.dtype;\n if (SUPPORTED_TYPES.indexOf(dtype) < 0) {\n dtype = \"float32\";\n }\n if (this.type === this.gl.ELEMENT_ARRAY_BUFFER) {\n var ext = gl.getExtension(\"OES_element_index_uint\");\n if (ext && dtype !== \"uint16\") {\n dtype = \"uint32\";\n } else {\n dtype = \"uint16\";\n }\n }\n if (dtype === array.dtype && isPacked(array.shape, array.stride)) {\n if (array.offset === 0 && array.data.length === array.shape[0]) {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array.data, offset);\n } else {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array.data.subarray(array.offset, array.shape[0]), offset);\n }\n } else {\n var tmp = pool.malloc(array.size, dtype);\n var ndt = ndarray(tmp, array.shape);\n ops.assign(ndt, array);\n if (offset < 0) {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, tmp, offset);\n } else {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, tmp.subarray(0, array.size), offset);\n }\n pool.free(tmp);\n }\n } else if (Array.isArray(array)) {\n var t;\n if (this.type === this.gl.ELEMENT_ARRAY_BUFFER) {\n t = makeScratchTypeArray(array, \"uint16\");\n } else {\n t = makeScratchTypeArray(array, \"float32\");\n }\n if (offset < 0) {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, t, offset);\n } else {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, t.subarray(0, array.length), offset);\n }\n pool.free(t);\n } else if (typeof array === \"object\" && typeof array.length === \"number\") {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array, offset);\n } else if (typeof array === \"number\" || array === void 0) {\n if (offset >= 0) {\n throw new Error(\"gl-buffer: Cannot specify offset when resizing buffer\");\n }\n array = array | 0;\n if (array <= 0) {\n array = 1;\n }\n this.gl.bufferData(this.type, array | 0, this.usage);\n this.length = array;\n } else {\n throw new Error(\"gl-buffer: Invalid data type\");\n }\n };\n function createBuffer(gl2, data, type, usage) {\n type = type || gl2.ARRAY_BUFFER;\n usage = usage || gl2.DYNAMIC_DRAW;\n if (type !== gl2.ARRAY_BUFFER && type !== gl2.ELEMENT_ARRAY_BUFFER) {\n throw new Error(\"gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER\");\n }\n if (usage !== gl2.DYNAMIC_DRAW && usage !== gl2.STATIC_DRAW && usage !== gl2.STREAM_DRAW) {\n throw new Error(\"gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW\");\n }\n var handle = gl2.createBuffer();\n var result = new GLBuffer(gl2, type, handle, 0, usage);\n result.update(data);\n return result;\n }\n module2.exports = createBuffer;\n }\n ),\n /***/\n 6405: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var vec3 = __webpack_require__2(2931);\n module2.exports = function(vectorfield, bounds) {\n var positions = vectorfield.positions;\n var vectors = vectorfield.vectors;\n var geo = {\n positions: [],\n vertexIntensity: [],\n vertexIntensityBounds: vectorfield.vertexIntensityBounds,\n vectors: [],\n cells: [],\n coneOffset: vectorfield.coneOffset,\n colormap: vectorfield.colormap\n };\n if (vectorfield.positions.length === 0) {\n if (bounds) {\n bounds[0] = [0, 0, 0];\n bounds[1] = [0, 0, 0];\n }\n return geo;\n }\n var maxNorm = 0;\n var minX = Infinity, maxX = -Infinity;\n var minY = Infinity, maxY = -Infinity;\n var minZ = Infinity, maxZ = -Infinity;\n var p2 = null;\n var u2 = null;\n var positionVectors = [];\n var vectorScale = Infinity;\n var skipIt = false;\n var rawSizemodemode = vectorfield.coneSizemode === \"raw\";\n for (var i = 0; i < positions.length; i++) {\n var p = positions[i];\n minX = Math.min(p[0], minX);\n maxX = Math.max(p[0], maxX);\n minY = Math.min(p[1], minY);\n maxY = Math.max(p[1], maxY);\n minZ = Math.min(p[2], minZ);\n maxZ = Math.max(p[2], maxZ);\n var u = vectors[i];\n if (vec3.length(u) > maxNorm) {\n maxNorm = vec3.length(u);\n }\n if (i && !rawSizemodemode) {\n var q = 2 * vec3.distance(p2, p) / (vec3.length(u2) + vec3.length(u));\n if (q) {\n vectorScale = Math.min(vectorScale, q);\n skipIt = false;\n } else {\n skipIt = true;\n }\n }\n if (!skipIt) {\n p2 = p;\n u2 = u;\n }\n positionVectors.push(u);\n }\n var minV = [minX, minY, minZ];\n var maxV = [maxX, maxY, maxZ];\n if (bounds) {\n bounds[0] = minV;\n bounds[1] = maxV;\n }\n if (maxNorm === 0) {\n maxNorm = 1;\n }\n var invertedMaxNorm = 1 / maxNorm;\n if (!isFinite(vectorScale)) {\n vectorScale = 1;\n }\n geo.vectorScale = vectorScale;\n var coneScale = vectorfield.coneSize || (rawSizemodemode ? 1 : 0.5);\n if (vectorfield.absoluteConeSize) {\n coneScale = vectorfield.absoluteConeSize * invertedMaxNorm;\n }\n geo.coneScale = coneScale;\n for (var i = 0, j = 0; i < positions.length; i++) {\n var p = positions[i];\n var x = p[0], y = p[1], z = p[2];\n var d = positionVectors[i];\n var intensity = vec3.length(d) * invertedMaxNorm;\n for (var k = 0, l = 8; k < l; k++) {\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vertexIntensity.push(intensity, intensity, intensity);\n geo.vertexIntensity.push(intensity, intensity, intensity);\n var m = geo.positions.length;\n geo.cells.push([m - 6, m - 5, m - 4], [m - 3, m - 2, m - 1]);\n }\n }\n return geo;\n };\n var shaders = __webpack_require__2(614);\n module2.exports.createMesh = __webpack_require__2(9060);\n module2.exports.createConeMesh = function(gl2, params) {\n return module2.exports.createMesh(gl2, params, {\n shaders,\n traceType: \"cone\"\n });\n };\n }\n ),\n /***/\n 9060: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createShader = __webpack_require__2(9405);\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createTexture = __webpack_require__2(7766);\n var multiply = __webpack_require__2(6760);\n var invert = __webpack_require__2(7608);\n var ndarray = __webpack_require__2(9618);\n var colormap = __webpack_require__2(6729);\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function VectorMesh(gl2, texture, triShader, pickShader, trianglePositions, triangleVectors, triangleIds, triangleColors, triangleUVs, triangleVAO, traceType) {\n this.gl = gl2;\n this.pixelRatio = 1;\n this.cells = [];\n this.positions = [];\n this.intensity = [];\n this.texture = texture;\n this.dirty = true;\n this.triShader = triShader;\n this.pickShader = pickShader;\n this.trianglePositions = trianglePositions;\n this.triangleVectors = triangleVectors;\n this.triangleColors = triangleColors;\n this.triangleUVs = triangleUVs;\n this.triangleIds = triangleIds;\n this.triangleVAO = triangleVAO;\n this.triangleCount = 0;\n this.pickId = 1;\n this.bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n this.clipBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.lightPosition = [1e5, 1e5, 0];\n this.ambientLight = 0.8;\n this.diffuseLight = 0.8;\n this.specularLight = 2;\n this.roughness = 0.5;\n this.fresnel = 1.5;\n this.opacity = 1;\n this.traceType = traceType;\n this.tubeScale = 1;\n this.coneScale = 2;\n this.vectorScale = 1;\n this.coneOffset = 0.25;\n this._model = IDENTITY;\n this._view = IDENTITY;\n this._projection = IDENTITY;\n this._resolution = [1, 1];\n }\n var proto = VectorMesh.prototype;\n proto.isOpaque = function() {\n return this.opacity >= 1;\n };\n proto.isTransparent = function() {\n return this.opacity < 1;\n };\n proto.pickSlots = 1;\n proto.setPickBase = function(id) {\n this.pickId = id;\n };\n function genColormap(param) {\n var colors = colormap({\n colormap: param,\n nshades: 256,\n format: \"rgba\"\n });\n var result = new Uint8Array(256 * 4);\n for (var i = 0; i < 256; ++i) {\n var c = colors[i];\n for (var j = 0; j < 3; ++j) {\n result[4 * i + j] = c[j];\n }\n result[4 * i + 3] = c[3] * 255;\n }\n return ndarray(result, [256, 256, 4], [4, 0, 1]);\n }\n function takeZComponent(array) {\n var n = array.length;\n var result = new Array(n);\n for (var i = 0; i < n; ++i) {\n result[i] = array[i][2];\n }\n return result;\n }\n proto.update = function(params) {\n params = params || {};\n var gl2 = this.gl;\n this.dirty = true;\n if (\"lightPosition\" in params) {\n this.lightPosition = params.lightPosition;\n }\n if (\"opacity\" in params) {\n this.opacity = params.opacity;\n }\n if (\"ambient\" in params) {\n this.ambientLight = params.ambient;\n }\n if (\"diffuse\" in params) {\n this.diffuseLight = params.diffuse;\n }\n if (\"specular\" in params) {\n this.specularLight = params.specular;\n }\n if (\"roughness\" in params) {\n this.roughness = params.roughness;\n }\n if (\"fresnel\" in params) {\n this.fresnel = params.fresnel;\n }\n if (params.tubeScale !== void 0) {\n this.tubeScale = params.tubeScale;\n }\n if (params.vectorScale !== void 0) {\n this.vectorScale = params.vectorScale;\n }\n if (params.coneScale !== void 0) {\n this.coneScale = params.coneScale;\n }\n if (params.coneOffset !== void 0) {\n this.coneOffset = params.coneOffset;\n }\n if (params.colormap) {\n this.texture.shape = [256, 256];\n this.texture.minFilter = gl2.LINEAR_MIPMAP_LINEAR;\n this.texture.magFilter = gl2.LINEAR;\n this.texture.setPixels(genColormap(params.colormap));\n this.texture.generateMipmap();\n }\n var cells = params.cells;\n var positions = params.positions;\n var vectors = params.vectors;\n if (!positions || !cells || !vectors) {\n return;\n }\n var tPos = [];\n var tVec = [];\n var tCol = [];\n var tUVs = [];\n var tIds = [];\n this.cells = cells;\n this.positions = positions;\n this.vectors = vectors;\n var meshColor = params.meshColor || [1, 1, 1, 1];\n var vertexIntensity = params.vertexIntensity;\n var intensityLo = Infinity;\n var intensityHi = -Infinity;\n if (vertexIntensity) {\n if (params.vertexIntensityBounds) {\n intensityLo = +params.vertexIntensityBounds[0];\n intensityHi = +params.vertexIntensityBounds[1];\n } else {\n for (var i = 0; i < vertexIntensity.length; ++i) {\n var f = vertexIntensity[i];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n } else {\n for (var i = 0; i < positions.length; ++i) {\n var f = positions[i][2];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n if (vertexIntensity) {\n this.intensity = vertexIntensity;\n } else {\n this.intensity = takeZComponent(positions);\n }\n this.bounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];\n for (var i = 0; i < positions.length; ++i) {\n var p = positions[i];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(p[j]) || !isFinite(p[j])) {\n continue;\n }\n this.bounds[0][j] = Math.min(this.bounds[0][j], p[j]);\n this.bounds[1][j] = Math.max(this.bounds[1][j], p[j]);\n }\n }\n var triangleCount = 0;\n fill_loop:\n for (var i = 0; i < cells.length; ++i) {\n var cell = cells[i];\n switch (cell.length) {\n case 3:\n for (var j = 0; j < 3; ++j) {\n var v = cell[j];\n var p = positions[v];\n for (var k = 0; k < 3; ++k) {\n if (isNaN(p[k]) || !isFinite(p[k])) {\n continue fill_loop;\n }\n }\n }\n for (var j = 0; j < 3; ++j) {\n var v = cell[2 - j];\n var p = positions[v];\n tPos.push(p[0], p[1], p[2], p[3]);\n var w = vectors[v];\n tVec.push(w[0], w[1], w[2], w[3] || 0);\n var c = meshColor;\n if (c.length === 3) {\n tCol.push(c[0], c[1], c[2], 1);\n } else {\n tCol.push(c[0], c[1], c[2], c[3]);\n }\n var uv;\n if (vertexIntensity) {\n uv = [\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else {\n uv = [\n (p[2] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n }\n tUVs.push(uv[0], uv[1]);\n tIds.push(i);\n }\n triangleCount += 1;\n break;\n default:\n break;\n }\n }\n this.triangleCount = triangleCount;\n this.trianglePositions.update(tPos);\n this.triangleVectors.update(tVec);\n this.triangleColors.update(tCol);\n this.triangleUVs.update(tUVs);\n this.triangleIds.update(new Uint32Array(tIds));\n };\n proto.drawTransparent = proto.draw = function(params) {\n params = params || {};\n var gl2 = this.gl;\n var model = params.model || IDENTITY;\n var view = params.view || IDENTITY;\n var projection = params.projection || IDENTITY;\n var clipBounds = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]);\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]);\n }\n var uniforms = {\n model,\n view,\n projection,\n inverseModel: IDENTITY.slice(),\n clipBounds,\n kambient: this.ambientLight,\n kdiffuse: this.diffuseLight,\n kspecular: this.specularLight,\n roughness: this.roughness,\n fresnel: this.fresnel,\n eyePosition: [0, 0, 0],\n lightPosition: [0, 0, 0],\n opacity: this.opacity,\n tubeScale: this.tubeScale,\n vectorScale: this.vectorScale,\n coneScale: this.coneScale,\n coneOffset: this.coneOffset,\n texture: 0\n };\n uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model);\n gl2.disable(gl2.CULL_FACE);\n this.texture.bind(0);\n var invCameraMatrix = new Array(16);\n multiply(invCameraMatrix, uniforms.view, uniforms.model);\n multiply(invCameraMatrix, uniforms.projection, invCameraMatrix);\n invert(invCameraMatrix, invCameraMatrix);\n for (var i = 0; i < 3; ++i) {\n uniforms.eyePosition[i] = invCameraMatrix[12 + i] / invCameraMatrix[15];\n }\n var w = invCameraMatrix[15];\n for (var i = 0; i < 3; ++i) {\n w += this.lightPosition[i] * invCameraMatrix[4 * i + 3];\n }\n for (var i = 0; i < 3; ++i) {\n var s = invCameraMatrix[12 + i];\n for (var j = 0; j < 3; ++j) {\n s += invCameraMatrix[4 * j + i] * this.lightPosition[j];\n }\n uniforms.lightPosition[i] = s / w;\n }\n if (this.triangleCount > 0) {\n var shader = this.triShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, this.triangleCount * 3);\n this.triangleVAO.unbind();\n }\n };\n proto.drawPick = function(params) {\n params = params || {};\n var gl2 = this.gl;\n var model = params.model || IDENTITY;\n var view = params.view || IDENTITY;\n var projection = params.projection || IDENTITY;\n var clipBounds = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]);\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]);\n }\n this._model = [].slice.call(model);\n this._view = [].slice.call(view);\n this._projection = [].slice.call(projection);\n this._resolution = [gl2.drawingBufferWidth, gl2.drawingBufferHeight];\n var uniforms = {\n model,\n view,\n projection,\n clipBounds,\n tubeScale: this.tubeScale,\n vectorScale: this.vectorScale,\n coneScale: this.coneScale,\n coneOffset: this.coneOffset,\n pickId: this.pickId / 255\n };\n var shader = this.pickShader;\n shader.bind();\n shader.uniforms = uniforms;\n if (this.triangleCount > 0) {\n this.triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, this.triangleCount * 3);\n this.triangleVAO.unbind();\n }\n };\n proto.pick = function(pickData) {\n if (!pickData) {\n return null;\n }\n if (pickData.id !== this.pickId) {\n return null;\n }\n var cellId = pickData.value[0] + 256 * pickData.value[1] + 65536 * pickData.value[2];\n var cell = this.cells[cellId];\n var pos = this.positions[cell[1]].slice(0, 3);\n var result = {\n position: pos,\n dataCoordinate: pos,\n index: Math.floor(cell[1] / 48)\n };\n if (this.traceType === \"cone\") {\n result.index = Math.floor(cell[1] / 48);\n } else if (this.traceType === \"streamtube\") {\n result.intensity = this.intensity[cell[1]];\n result.velocity = this.vectors[cell[1]].slice(0, 3);\n result.divergence = this.vectors[cell[1]][3];\n result.index = cellId;\n }\n return result;\n };\n proto.dispose = function() {\n this.texture.dispose();\n this.triShader.dispose();\n this.pickShader.dispose();\n this.triangleVAO.dispose();\n this.trianglePositions.dispose();\n this.triangleVectors.dispose();\n this.triangleColors.dispose();\n this.triangleUVs.dispose();\n this.triangleIds.dispose();\n };\n function createMeshShader(gl2, shaders) {\n var shader = createShader(\n gl2,\n shaders.meshShader.vertex,\n shaders.meshShader.fragment,\n null,\n shaders.meshShader.attributes\n );\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 2;\n shader.attributes.uv.location = 3;\n shader.attributes.vector.location = 4;\n return shader;\n }\n function createPickShader(gl2, shaders) {\n var shader = createShader(\n gl2,\n shaders.pickShader.vertex,\n shaders.pickShader.fragment,\n null,\n shaders.pickShader.attributes\n );\n shader.attributes.position.location = 0;\n shader.attributes.id.location = 1;\n shader.attributes.vector.location = 4;\n return shader;\n }\n function createVectorMesh(gl2, params, opts) {\n var shaders = opts.shaders;\n if (arguments.length === 1) {\n params = gl2;\n gl2 = params.gl;\n }\n var triShader = createMeshShader(gl2, shaders);\n var pickShader = createPickShader(gl2, shaders);\n var meshTexture = createTexture(\n gl2,\n ndarray(new Uint8Array([255, 255, 255, 255]), [1, 1, 4])\n );\n meshTexture.generateMipmap();\n meshTexture.minFilter = gl2.LINEAR_MIPMAP_LINEAR;\n meshTexture.magFilter = gl2.LINEAR;\n var trianglePositions = createBuffer(gl2);\n var triangleVectors = createBuffer(gl2);\n var triangleColors = createBuffer(gl2);\n var triangleUVs = createBuffer(gl2);\n var triangleIds = createBuffer(gl2);\n var triangleVAO = createVAO(gl2, [\n {\n buffer: trianglePositions,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: triangleIds,\n type: gl2.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n {\n buffer: triangleColors,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: triangleUVs,\n type: gl2.FLOAT,\n size: 2\n },\n {\n buffer: triangleVectors,\n type: gl2.FLOAT,\n size: 4\n }\n ]);\n var mesh = new VectorMesh(\n gl2,\n meshTexture,\n triShader,\n pickShader,\n trianglePositions,\n triangleVectors,\n triangleIds,\n triangleColors,\n triangleUVs,\n triangleVAO,\n opts.traceType || \"cone\"\n );\n mesh.update(params);\n return mesh;\n }\n module2.exports = createVectorMesh;\n }\n ),\n /***/\n 614: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var triVertSrc = glslify([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the cone vertex and normal at the given index.\\n//\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\n// pointing in the direction of the vector attribute.\\n//\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\n// These vertices are used to make up the triangles of the cone by the following:\\n// segment + 0 top vertex\\n// segment + 1 perimeter vertex a+1\\n// segment + 2 perimeter vertex a\\n// segment + 3 center base vertex\\n// segment + 4 perimeter vertex a\\n// segment + 5 perimeter vertex a+1\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\n// To go from index to segment, floor(index / 6)\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\n// To go from index to segment index, index - (segment*6)\\n//\\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\\n\\n const float segmentCount = 8.0;\\n\\n float index = rawIndex - floor(rawIndex /\\n (segmentCount * 6.0)) *\\n (segmentCount * 6.0);\\n\\n float segment = floor(0.001 + index/6.0);\\n float segmentIndex = index - (segment*6.0);\\n\\n normal = -normalize(d);\\n\\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\\n return mix(vec3(0.0), -d, coneOffset);\\n }\\n\\n float nextAngle = (\\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\\n (segmentIndex > 4.99 && segmentIndex < 5.01)\\n ) ? 1.0 : 0.0;\\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\n\\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\\n vec3 v2 = v1 - d;\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d)*0.25;\\n vec3 y = v * sin(angle) * length(d)*0.25;\\n vec3 v3 = v2 + x + y;\\n if (segmentIndex < 3.0) {\\n vec3 tx = u * sin(angle);\\n vec3 ty = v * -cos(angle);\\n vec3 tangent = tx + ty;\\n normal = normalize(cross(v3 - v1, tangent));\\n }\\n\\n if (segmentIndex == 0.0) {\\n return mix(d, vec3(0.0), coneOffset);\\n }\\n return v3;\\n}\\n\\nattribute vec3 vector;\\nattribute vec4 color, position;\\nattribute vec2 uv;\\n\\nuniform float vectorScale, coneScale, coneOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 eyePosition, lightPosition;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n // Scale the vector magnitude to stay constant with\\n // model & view changes.\\n vec3 normal;\\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * conePosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n // vec4 m_position = model * vec4(conePosition, 1.0);\\n vec4 t_position = view * conePosition;\\n gl_Position = projection * t_position;\\n\\n f_color = color;\\n f_data = conePosition.xyz;\\n f_position = position.xyz;\\n f_uv = uv;\\n}\\n\"]);\n var triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * opacity;\\n}\\n\"]);\n var pickVertSrc = glslify([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the cone vertex and normal at the given index.\\n//\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\n// pointing in the direction of the vector attribute.\\n//\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\n// These vertices are used to make up the triangles of the cone by the following:\\n// segment + 0 top vertex\\n// segment + 1 perimeter vertex a+1\\n// segment + 2 perimeter vertex a\\n// segment + 3 center base vertex\\n// segment + 4 perimeter vertex a\\n// segment + 5 perimeter vertex a+1\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\n// To go from index to segment, floor(index / 6)\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\n// To go from index to segment index, index - (segment*6)\\n//\\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\\n\\n const float segmentCount = 8.0;\\n\\n float index = rawIndex - floor(rawIndex /\\n (segmentCount * 6.0)) *\\n (segmentCount * 6.0);\\n\\n float segment = floor(0.001 + index/6.0);\\n float segmentIndex = index - (segment*6.0);\\n\\n normal = -normalize(d);\\n\\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\\n return mix(vec3(0.0), -d, coneOffset);\\n }\\n\\n float nextAngle = (\\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\\n (segmentIndex > 4.99 && segmentIndex < 5.01)\\n ) ? 1.0 : 0.0;\\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\n\\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\\n vec3 v2 = v1 - d;\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d)*0.25;\\n vec3 y = v * sin(angle) * length(d)*0.25;\\n vec3 v3 = v2 + x + y;\\n if (segmentIndex < 3.0) {\\n vec3 tx = u * sin(angle);\\n vec3 ty = v * -cos(angle);\\n vec3 tangent = tx + ty;\\n normal = normalize(cross(v3 - v1, tangent));\\n }\\n\\n if (segmentIndex == 0.0) {\\n return mix(d, vec3(0.0), coneOffset);\\n }\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform float vectorScale, coneScale, coneOffset;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n vec3 normal;\\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n gl_Position = projection * (view * conePosition);\\n f_id = id;\\n f_position = position.xyz;\\n}\\n\"]);\n var pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]);\n exports2.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n { name: \"position\", type: \"vec4\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" },\n { name: \"vector\", type: \"vec3\" }\n ]\n };\n exports2.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n { name: \"position\", type: \"vec4\" },\n { name: \"id\", type: \"vec4\" },\n { name: \"vector\", type: \"vec3\" }\n ]\n };\n }\n ),\n /***/\n 737: (\n /***/\n function(module2) {\n module2.exports = {\n 0: \"NONE\",\n 1: \"ONE\",\n 2: \"LINE_LOOP\",\n 3: \"LINE_STRIP\",\n 4: \"TRIANGLES\",\n 5: \"TRIANGLE_STRIP\",\n 6: \"TRIANGLE_FAN\",\n 256: \"DEPTH_BUFFER_BIT\",\n 512: \"NEVER\",\n 513: \"LESS\",\n 514: \"EQUAL\",\n 515: \"LEQUAL\",\n 516: \"GREATER\",\n 517: \"NOTEQUAL\",\n 518: \"GEQUAL\",\n 519: \"ALWAYS\",\n 768: \"SRC_COLOR\",\n 769: \"ONE_MINUS_SRC_COLOR\",\n 770: \"SRC_ALPHA\",\n 771: \"ONE_MINUS_SRC_ALPHA\",\n 772: \"DST_ALPHA\",\n 773: \"ONE_MINUS_DST_ALPHA\",\n 774: \"DST_COLOR\",\n 775: \"ONE_MINUS_DST_COLOR\",\n 776: \"SRC_ALPHA_SATURATE\",\n 1024: \"STENCIL_BUFFER_BIT\",\n 1028: \"FRONT\",\n 1029: \"BACK\",\n 1032: \"FRONT_AND_BACK\",\n 1280: \"INVALID_ENUM\",\n 1281: \"INVALID_VALUE\",\n 1282: \"INVALID_OPERATION\",\n 1285: \"OUT_OF_MEMORY\",\n 1286: \"INVALID_FRAMEBUFFER_OPERATION\",\n 2304: \"CW\",\n 2305: \"CCW\",\n 2849: \"LINE_WIDTH\",\n 2884: \"CULL_FACE\",\n 2885: \"CULL_FACE_MODE\",\n 2886: \"FRONT_FACE\",\n 2928: \"DEPTH_RANGE\",\n 2929: \"DEPTH_TEST\",\n 2930: \"DEPTH_WRITEMASK\",\n 2931: \"DEPTH_CLEAR_VALUE\",\n 2932: \"DEPTH_FUNC\",\n 2960: \"STENCIL_TEST\",\n 2961: \"STENCIL_CLEAR_VALUE\",\n 2962: \"STENCIL_FUNC\",\n 2963: \"STENCIL_VALUE_MASK\",\n 2964: \"STENCIL_FAIL\",\n 2965: \"STENCIL_PASS_DEPTH_FAIL\",\n 2966: \"STENCIL_PASS_DEPTH_PASS\",\n 2967: \"STENCIL_REF\",\n 2968: \"STENCIL_WRITEMASK\",\n 2978: \"VIEWPORT\",\n 3024: \"DITHER\",\n 3042: \"BLEND\",\n 3088: \"SCISSOR_BOX\",\n 3089: \"SCISSOR_TEST\",\n 3106: \"COLOR_CLEAR_VALUE\",\n 3107: \"COLOR_WRITEMASK\",\n 3317: \"UNPACK_ALIGNMENT\",\n 3333: \"PACK_ALIGNMENT\",\n 3379: \"MAX_TEXTURE_SIZE\",\n 3386: \"MAX_VIEWPORT_DIMS\",\n 3408: \"SUBPIXEL_BITS\",\n 3410: \"RED_BITS\",\n 3411: \"GREEN_BITS\",\n 3412: \"BLUE_BITS\",\n 3413: \"ALPHA_BITS\",\n 3414: \"DEPTH_BITS\",\n 3415: \"STENCIL_BITS\",\n 3553: \"TEXTURE_2D\",\n 4352: \"DONT_CARE\",\n 4353: \"FASTEST\",\n 4354: \"NICEST\",\n 5120: \"BYTE\",\n 5121: \"UNSIGNED_BYTE\",\n 5122: \"SHORT\",\n 5123: \"UNSIGNED_SHORT\",\n 5124: \"INT\",\n 5125: \"UNSIGNED_INT\",\n 5126: \"FLOAT\",\n 5386: \"INVERT\",\n 5890: \"TEXTURE\",\n 6401: \"STENCIL_INDEX\",\n 6402: \"DEPTH_COMPONENT\",\n 6406: \"ALPHA\",\n 6407: \"RGB\",\n 6408: \"RGBA\",\n 6409: \"LUMINANCE\",\n 6410: \"LUMINANCE_ALPHA\",\n 7680: \"KEEP\",\n 7681: \"REPLACE\",\n 7682: \"INCR\",\n 7683: \"DECR\",\n 7936: \"VENDOR\",\n 7937: \"RENDERER\",\n 7938: \"VERSION\",\n 9728: \"NEAREST\",\n 9729: \"LINEAR\",\n 9984: \"NEAREST_MIPMAP_NEAREST\",\n 9985: \"LINEAR_MIPMAP_NEAREST\",\n 9986: \"NEAREST_MIPMAP_LINEAR\",\n 9987: \"LINEAR_MIPMAP_LINEAR\",\n 10240: \"TEXTURE_MAG_FILTER\",\n 10241: \"TEXTURE_MIN_FILTER\",\n 10242: \"TEXTURE_WRAP_S\",\n 10243: \"TEXTURE_WRAP_T\",\n 10497: \"REPEAT\",\n 10752: \"POLYGON_OFFSET_UNITS\",\n 16384: \"COLOR_BUFFER_BIT\",\n 32769: \"CONSTANT_COLOR\",\n 32770: \"ONE_MINUS_CONSTANT_COLOR\",\n 32771: \"CONSTANT_ALPHA\",\n 32772: \"ONE_MINUS_CONSTANT_ALPHA\",\n 32773: \"BLEND_COLOR\",\n 32774: \"FUNC_ADD\",\n 32777: \"BLEND_EQUATION_RGB\",\n 32778: \"FUNC_SUBTRACT\",\n 32779: \"FUNC_REVERSE_SUBTRACT\",\n 32819: \"UNSIGNED_SHORT_4_4_4_4\",\n 32820: \"UNSIGNED_SHORT_5_5_5_1\",\n 32823: \"POLYGON_OFFSET_FILL\",\n 32824: \"POLYGON_OFFSET_FACTOR\",\n 32854: \"RGBA4\",\n 32855: \"RGB5_A1\",\n 32873: \"TEXTURE_BINDING_2D\",\n 32926: \"SAMPLE_ALPHA_TO_COVERAGE\",\n 32928: \"SAMPLE_COVERAGE\",\n 32936: \"SAMPLE_BUFFERS\",\n 32937: \"SAMPLES\",\n 32938: \"SAMPLE_COVERAGE_VALUE\",\n 32939: \"SAMPLE_COVERAGE_INVERT\",\n 32968: \"BLEND_DST_RGB\",\n 32969: \"BLEND_SRC_RGB\",\n 32970: \"BLEND_DST_ALPHA\",\n 32971: \"BLEND_SRC_ALPHA\",\n 33071: \"CLAMP_TO_EDGE\",\n 33170: \"GENERATE_MIPMAP_HINT\",\n 33189: \"DEPTH_COMPONENT16\",\n 33306: \"DEPTH_STENCIL_ATTACHMENT\",\n 33635: \"UNSIGNED_SHORT_5_6_5\",\n 33648: \"MIRRORED_REPEAT\",\n 33901: \"ALIASED_POINT_SIZE_RANGE\",\n 33902: \"ALIASED_LINE_WIDTH_RANGE\",\n 33984: \"TEXTURE0\",\n 33985: \"TEXTURE1\",\n 33986: \"TEXTURE2\",\n 33987: \"TEXTURE3\",\n 33988: \"TEXTURE4\",\n 33989: \"TEXTURE5\",\n 33990: \"TEXTURE6\",\n 33991: \"TEXTURE7\",\n 33992: \"TEXTURE8\",\n 33993: \"TEXTURE9\",\n 33994: \"TEXTURE10\",\n 33995: \"TEXTURE11\",\n 33996: \"TEXTURE12\",\n 33997: \"TEXTURE13\",\n 33998: \"TEXTURE14\",\n 33999: \"TEXTURE15\",\n 34e3: \"TEXTURE16\",\n 34001: \"TEXTURE17\",\n 34002: \"TEXTURE18\",\n 34003: \"TEXTURE19\",\n 34004: \"TEXTURE20\",\n 34005: \"TEXTURE21\",\n 34006: \"TEXTURE22\",\n 34007: \"TEXTURE23\",\n 34008: \"TEXTURE24\",\n 34009: \"TEXTURE25\",\n 34010: \"TEXTURE26\",\n 34011: \"TEXTURE27\",\n 34012: \"TEXTURE28\",\n 34013: \"TEXTURE29\",\n 34014: \"TEXTURE30\",\n 34015: \"TEXTURE31\",\n 34016: \"ACTIVE_TEXTURE\",\n 34024: \"MAX_RENDERBUFFER_SIZE\",\n 34041: \"DEPTH_STENCIL\",\n 34055: \"INCR_WRAP\",\n 34056: \"DECR_WRAP\",\n 34067: \"TEXTURE_CUBE_MAP\",\n 34068: \"TEXTURE_BINDING_CUBE_MAP\",\n 34069: \"TEXTURE_CUBE_MAP_POSITIVE_X\",\n 34070: \"TEXTURE_CUBE_MAP_NEGATIVE_X\",\n 34071: \"TEXTURE_CUBE_MAP_POSITIVE_Y\",\n 34072: \"TEXTURE_CUBE_MAP_NEGATIVE_Y\",\n 34073: \"TEXTURE_CUBE_MAP_POSITIVE_Z\",\n 34074: \"TEXTURE_CUBE_MAP_NEGATIVE_Z\",\n 34076: \"MAX_CUBE_MAP_TEXTURE_SIZE\",\n 34338: \"VERTEX_ATTRIB_ARRAY_ENABLED\",\n 34339: \"VERTEX_ATTRIB_ARRAY_SIZE\",\n 34340: \"VERTEX_ATTRIB_ARRAY_STRIDE\",\n 34341: \"VERTEX_ATTRIB_ARRAY_TYPE\",\n 34342: \"CURRENT_VERTEX_ATTRIB\",\n 34373: \"VERTEX_ATTRIB_ARRAY_POINTER\",\n 34466: \"NUM_COMPRESSED_TEXTURE_FORMATS\",\n 34467: \"COMPRESSED_TEXTURE_FORMATS\",\n 34660: \"BUFFER_SIZE\",\n 34661: \"BUFFER_USAGE\",\n 34816: \"STENCIL_BACK_FUNC\",\n 34817: \"STENCIL_BACK_FAIL\",\n 34818: \"STENCIL_BACK_PASS_DEPTH_FAIL\",\n 34819: \"STENCIL_BACK_PASS_DEPTH_PASS\",\n 34877: \"BLEND_EQUATION_ALPHA\",\n 34921: \"MAX_VERTEX_ATTRIBS\",\n 34922: \"VERTEX_ATTRIB_ARRAY_NORMALIZED\",\n 34930: \"MAX_TEXTURE_IMAGE_UNITS\",\n 34962: \"ARRAY_BUFFER\",\n 34963: \"ELEMENT_ARRAY_BUFFER\",\n 34964: \"ARRAY_BUFFER_BINDING\",\n 34965: \"ELEMENT_ARRAY_BUFFER_BINDING\",\n 34975: \"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING\",\n 35040: \"STREAM_DRAW\",\n 35044: \"STATIC_DRAW\",\n 35048: \"DYNAMIC_DRAW\",\n 35632: \"FRAGMENT_SHADER\",\n 35633: \"VERTEX_SHADER\",\n 35660: \"MAX_VERTEX_TEXTURE_IMAGE_UNITS\",\n 35661: \"MAX_COMBINED_TEXTURE_IMAGE_UNITS\",\n 35663: \"SHADER_TYPE\",\n 35664: \"FLOAT_VEC2\",\n 35665: \"FLOAT_VEC3\",\n 35666: \"FLOAT_VEC4\",\n 35667: \"INT_VEC2\",\n 35668: \"INT_VEC3\",\n 35669: \"INT_VEC4\",\n 35670: \"BOOL\",\n 35671: \"BOOL_VEC2\",\n 35672: \"BOOL_VEC3\",\n 35673: \"BOOL_VEC4\",\n 35674: \"FLOAT_MAT2\",\n 35675: \"FLOAT_MAT3\",\n 35676: \"FLOAT_MAT4\",\n 35678: \"SAMPLER_2D\",\n 35680: \"SAMPLER_CUBE\",\n 35712: \"DELETE_STATUS\",\n 35713: \"COMPILE_STATUS\",\n 35714: \"LINK_STATUS\",\n 35715: \"VALIDATE_STATUS\",\n 35716: \"INFO_LOG_LENGTH\",\n 35717: \"ATTACHED_SHADERS\",\n 35718: \"ACTIVE_UNIFORMS\",\n 35719: \"ACTIVE_UNIFORM_MAX_LENGTH\",\n 35720: \"SHADER_SOURCE_LENGTH\",\n 35721: \"ACTIVE_ATTRIBUTES\",\n 35722: \"ACTIVE_ATTRIBUTE_MAX_LENGTH\",\n 35724: \"SHADING_LANGUAGE_VERSION\",\n 35725: \"CURRENT_PROGRAM\",\n 36003: \"STENCIL_BACK_REF\",\n 36004: \"STENCIL_BACK_VALUE_MASK\",\n 36005: \"STENCIL_BACK_WRITEMASK\",\n 36006: \"FRAMEBUFFER_BINDING\",\n 36007: \"RENDERBUFFER_BINDING\",\n 36048: \"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\",\n 36049: \"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\",\n 36050: \"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\",\n 36051: \"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\",\n 36053: \"FRAMEBUFFER_COMPLETE\",\n 36054: \"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\",\n 36055: \"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\",\n 36057: \"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\",\n 36061: \"FRAMEBUFFER_UNSUPPORTED\",\n 36064: \"COLOR_ATTACHMENT0\",\n 36096: \"DEPTH_ATTACHMENT\",\n 36128: \"STENCIL_ATTACHMENT\",\n 36160: \"FRAMEBUFFER\",\n 36161: \"RENDERBUFFER\",\n 36162: \"RENDERBUFFER_WIDTH\",\n 36163: \"RENDERBUFFER_HEIGHT\",\n 36164: \"RENDERBUFFER_INTERNAL_FORMAT\",\n 36168: \"STENCIL_INDEX8\",\n 36176: \"RENDERBUFFER_RED_SIZE\",\n 36177: \"RENDERBUFFER_GREEN_SIZE\",\n 36178: \"RENDERBUFFER_BLUE_SIZE\",\n 36179: \"RENDERBUFFER_ALPHA_SIZE\",\n 36180: \"RENDERBUFFER_DEPTH_SIZE\",\n 36181: \"RENDERBUFFER_STENCIL_SIZE\",\n 36194: \"RGB565\",\n 36336: \"LOW_FLOAT\",\n 36337: \"MEDIUM_FLOAT\",\n 36338: \"HIGH_FLOAT\",\n 36339: \"LOW_INT\",\n 36340: \"MEDIUM_INT\",\n 36341: \"HIGH_INT\",\n 36346: \"SHADER_COMPILER\",\n 36347: \"MAX_VERTEX_UNIFORM_VECTORS\",\n 36348: \"MAX_VARYING_VECTORS\",\n 36349: \"MAX_FRAGMENT_UNIFORM_VECTORS\",\n 37440: \"UNPACK_FLIP_Y_WEBGL\",\n 37441: \"UNPACK_PREMULTIPLY_ALPHA_WEBGL\",\n 37442: \"CONTEXT_LOST_WEBGL\",\n 37443: \"UNPACK_COLORSPACE_CONVERSION_WEBGL\",\n 37444: \"BROWSER_DEFAULT_WEBGL\"\n };\n }\n ),\n /***/\n 5171: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var gl10 = __webpack_require__2(737);\n module2.exports = function lookupConstant(number) {\n return gl10[number];\n };\n }\n ),\n /***/\n 9165: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createErrorBars;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createShader = __webpack_require__2(3436);\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function ErrorBars(gl2, buffer, vao, shader) {\n this.gl = gl2;\n this.shader = shader;\n this.buffer = buffer;\n this.vao = vao;\n this.pixelRatio = 1;\n this.bounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];\n this.clipBounds = [[-Infinity, -Infinity, -Infinity], [Infinity, Infinity, Infinity]];\n this.lineWidth = [1, 1, 1];\n this.capSize = [10, 10, 10];\n this.lineCount = [0, 0, 0];\n this.lineOffset = [0, 0, 0];\n this.opacity = 1;\n this.hasAlpha = false;\n }\n var proto = ErrorBars.prototype;\n proto.isOpaque = function() {\n return !this.hasAlpha;\n };\n proto.isTransparent = function() {\n return this.hasAlpha;\n };\n proto.drawTransparent = proto.draw = function(cameraParams) {\n var gl2 = this.gl;\n var uniforms = this.shader.uniforms;\n this.shader.bind();\n var view = uniforms.view = cameraParams.view || IDENTITY;\n var projection = uniforms.projection = cameraParams.projection || IDENTITY;\n uniforms.model = cameraParams.model || IDENTITY;\n uniforms.clipBounds = this.clipBounds;\n uniforms.opacity = this.opacity;\n var cx = view[12];\n var cy = view[13];\n var cz = view[14];\n var cw = view[15];\n var isOrtho = cameraParams._ortho || false;\n var orthoFix = isOrtho ? 2 : 1;\n var pixelScaleF = orthoFix * this.pixelRatio * (projection[3] * cx + projection[7] * cy + projection[11] * cz + projection[15] * cw) / gl2.drawingBufferHeight;\n this.vao.bind();\n for (var i = 0; i < 3; ++i) {\n gl2.lineWidth(this.lineWidth[i] * this.pixelRatio);\n uniforms.capSize = this.capSize[i] * pixelScaleF;\n if (this.lineCount[i]) {\n gl2.drawArrays(gl2.LINES, this.lineOffset[i], this.lineCount[i]);\n }\n }\n this.vao.unbind();\n };\n function updateBounds(bounds, point) {\n for (var i = 0; i < 3; ++i) {\n bounds[0][i] = Math.min(bounds[0][i], point[i]);\n bounds[1][i] = Math.max(bounds[1][i], point[i]);\n }\n }\n var FACE_TABLE = function() {\n var table = new Array(3);\n for (var d = 0; d < 3; ++d) {\n var row = [];\n for (var j = 1; j <= 2; ++j) {\n for (var s = -1; s <= 1; s += 2) {\n var u = (j + d) % 3;\n var y = [0, 0, 0];\n y[u] = s;\n row.push(y);\n }\n }\n table[d] = row;\n }\n return table;\n }();\n function emitFace(verts, x, c, d) {\n var offsets = FACE_TABLE[d];\n for (var i = 0; i < offsets.length; ++i) {\n var o = offsets[i];\n verts.push(\n x[0],\n x[1],\n x[2],\n c[0],\n c[1],\n c[2],\n c[3],\n o[0],\n o[1],\n o[2]\n );\n }\n return offsets.length;\n }\n proto.update = function(options) {\n options = options || {};\n if (\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth;\n if (!Array.isArray(this.lineWidth)) {\n this.lineWidth = [this.lineWidth, this.lineWidth, this.lineWidth];\n }\n }\n if (\"capSize\" in options) {\n this.capSize = options.capSize;\n if (!Array.isArray(this.capSize)) {\n this.capSize = [this.capSize, this.capSize, this.capSize];\n }\n }\n this.hasAlpha = false;\n if (\"opacity\" in options) {\n this.opacity = +options.opacity;\n if (this.opacity < 1) {\n this.hasAlpha = true;\n }\n }\n var color2 = options.color || [[0, 0, 0], [0, 0, 0], [0, 0, 0]];\n var position = options.position;\n var error = options.error;\n if (!Array.isArray(color2[0])) {\n color2 = [color2, color2, color2];\n }\n if (position && error) {\n var verts = [];\n var n = position.length;\n var vertexCount = 0;\n this.bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n this.lineCount = [0, 0, 0];\n for (var j = 0; j < 3; ++j) {\n this.lineOffset[j] = vertexCount;\n i_loop:\n for (var i = 0; i < n; ++i) {\n var p = position[i];\n for (var k = 0; k < 3; ++k) {\n if (isNaN(p[k]) || !isFinite(p[k])) {\n continue i_loop;\n }\n }\n var e = error[i];\n var c = color2[j];\n if (Array.isArray(c[0])) {\n c = color2[i];\n }\n if (c.length === 3) {\n c = [c[0], c[1], c[2], 1];\n } else if (c.length === 4) {\n c = [c[0], c[1], c[2], c[3]];\n if (!this.hasAlpha && c[3] < 1) this.hasAlpha = true;\n }\n if (isNaN(e[0][j]) || isNaN(e[1][j])) {\n continue;\n }\n if (e[0][j] < 0) {\n var x = p.slice();\n x[j] += e[0][j];\n verts.push(\n p[0],\n p[1],\n p[2],\n c[0],\n c[1],\n c[2],\n c[3],\n 0,\n 0,\n 0,\n x[0],\n x[1],\n x[2],\n c[0],\n c[1],\n c[2],\n c[3],\n 0,\n 0,\n 0\n );\n updateBounds(this.bounds, x);\n vertexCount += 2 + emitFace(verts, x, c, j);\n }\n if (e[1][j] > 0) {\n var x = p.slice();\n x[j] += e[1][j];\n verts.push(\n p[0],\n p[1],\n p[2],\n c[0],\n c[1],\n c[2],\n c[3],\n 0,\n 0,\n 0,\n x[0],\n x[1],\n x[2],\n c[0],\n c[1],\n c[2],\n c[3],\n 0,\n 0,\n 0\n );\n updateBounds(this.bounds, x);\n vertexCount += 2 + emitFace(verts, x, c, j);\n }\n }\n this.lineCount[j] = vertexCount - this.lineOffset[j];\n }\n this.buffer.update(verts);\n }\n };\n proto.dispose = function() {\n this.shader.dispose();\n this.buffer.dispose();\n this.vao.dispose();\n };\n function createErrorBars(options) {\n var gl2 = options.gl;\n var buffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n buffer,\n type: gl2.FLOAT,\n size: 3,\n offset: 0,\n stride: 40\n },\n {\n buffer,\n type: gl2.FLOAT,\n size: 4,\n offset: 12,\n stride: 40\n },\n {\n buffer,\n type: gl2.FLOAT,\n size: 3,\n offset: 28,\n stride: 40\n }\n ]);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 1;\n shader.attributes.offset.location = 2;\n var result = new ErrorBars(gl2, buffer, vao, shader);\n result.update(options);\n return result;\n }\n }\n ),\n /***/\n 3436: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, offset;\\nattribute vec4 color;\\nuniform mat4 model, view, projection;\\nuniform float capSize;\\nvarying vec4 fragColor;\\nvarying vec3 fragPosition;\\n\\nvoid main() {\\n vec4 worldPosition = model * vec4(position, 1.0);\\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\\n gl_Position = projection * (view * worldPosition);\\n fragColor = color;\\n fragPosition = position;\\n}\"]);\n var fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float opacity;\\nvarying vec3 fragPosition;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n gl_FragColor = opacity * fragColor;\\n}\"]);\n module2.exports = function(gl2) {\n return createShader(gl2, vertSrc, fragSrc, null, [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"offset\", type: \"vec3\" }\n ]);\n };\n }\n ),\n /***/\n 2260: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createTexture = __webpack_require__2(7766);\n module2.exports = createFBO;\n var colorAttachmentArrays = null;\n var FRAMEBUFFER_UNSUPPORTED;\n var FRAMEBUFFER_INCOMPLETE_ATTACHMENT;\n var FRAMEBUFFER_INCOMPLETE_DIMENSIONS;\n var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;\n function saveFBOState(gl2) {\n var fbo = gl2.getParameter(gl2.FRAMEBUFFER_BINDING);\n var rbo = gl2.getParameter(gl2.RENDERBUFFER_BINDING);\n var tex = gl2.getParameter(gl2.TEXTURE_BINDING_2D);\n return [fbo, rbo, tex];\n }\n function restoreFBOState(gl2, data) {\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, data[0]);\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, data[1]);\n gl2.bindTexture(gl2.TEXTURE_2D, data[2]);\n }\n function lazyInitColorAttachments(gl2, ext) {\n var maxColorAttachments = gl2.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL);\n colorAttachmentArrays = new Array(maxColorAttachments + 1);\n for (var i = 0; i <= maxColorAttachments; ++i) {\n var x = new Array(maxColorAttachments);\n for (var j = 0; j < i; ++j) {\n x[j] = gl2.COLOR_ATTACHMENT0 + j;\n }\n for (var j = i; j < maxColorAttachments; ++j) {\n x[j] = gl2.NONE;\n }\n colorAttachmentArrays[i] = x;\n }\n }\n function throwFBOError(status) {\n switch (status) {\n case FRAMEBUFFER_UNSUPPORTED:\n throw new Error(\"gl-fbo: Framebuffer unsupported\");\n case FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n throw new Error(\"gl-fbo: Framebuffer incomplete attachment\");\n case FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n throw new Error(\"gl-fbo: Framebuffer incomplete dimensions\");\n case FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n throw new Error(\"gl-fbo: Framebuffer incomplete missing attachment\");\n default:\n throw new Error(\"gl-fbo: Framebuffer failed for unspecified reason\");\n }\n }\n function initTexture(gl2, width, height, type, format, attachment) {\n if (!type) {\n return null;\n }\n var result = createTexture(gl2, width, height, format, type);\n result.magFilter = gl2.NEAREST;\n result.minFilter = gl2.NEAREST;\n result.mipSamples = 1;\n result.bind();\n gl2.framebufferTexture2D(gl2.FRAMEBUFFER, attachment, gl2.TEXTURE_2D, result.handle, 0);\n return result;\n }\n function initRenderBuffer(gl2, width, height, component, attachment) {\n var result = gl2.createRenderbuffer();\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, result);\n gl2.renderbufferStorage(gl2.RENDERBUFFER, component, width, height);\n gl2.framebufferRenderbuffer(gl2.FRAMEBUFFER, attachment, gl2.RENDERBUFFER, result);\n return result;\n }\n function rebuildFBO(fbo) {\n var state = saveFBOState(fbo.gl);\n var gl2 = fbo.gl;\n var handle = fbo.handle = gl2.createFramebuffer();\n var width = fbo._shape[0];\n var height = fbo._shape[1];\n var numColors = fbo.color.length;\n var ext = fbo._ext;\n var useStencil = fbo._useStencil;\n var useDepth = fbo._useDepth;\n var colorType = fbo._colorType;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, handle);\n for (var i = 0; i < numColors; ++i) {\n fbo.color[i] = initTexture(gl2, width, height, colorType, gl2.RGBA, gl2.COLOR_ATTACHMENT0 + i);\n }\n if (numColors === 0) {\n fbo._color_rb = initRenderBuffer(gl2, width, height, gl2.RGBA4, gl2.COLOR_ATTACHMENT0);\n if (ext) {\n ext.drawBuffersWEBGL(colorAttachmentArrays[0]);\n }\n } else if (numColors > 1) {\n ext.drawBuffersWEBGL(colorAttachmentArrays[numColors]);\n }\n var WEBGL_depth_texture = gl2.getExtension(\"WEBGL_depth_texture\");\n if (WEBGL_depth_texture) {\n if (useStencil) {\n fbo.depth = initTexture(\n gl2,\n width,\n height,\n WEBGL_depth_texture.UNSIGNED_INT_24_8_WEBGL,\n gl2.DEPTH_STENCIL,\n gl2.DEPTH_STENCIL_ATTACHMENT\n );\n } else if (useDepth) {\n fbo.depth = initTexture(\n gl2,\n width,\n height,\n gl2.UNSIGNED_SHORT,\n gl2.DEPTH_COMPONENT,\n gl2.DEPTH_ATTACHMENT\n );\n }\n } else {\n if (useDepth && useStencil) {\n fbo._depth_rb = initRenderBuffer(gl2, width, height, gl2.DEPTH_STENCIL, gl2.DEPTH_STENCIL_ATTACHMENT);\n } else if (useDepth) {\n fbo._depth_rb = initRenderBuffer(gl2, width, height, gl2.DEPTH_COMPONENT16, gl2.DEPTH_ATTACHMENT);\n } else if (useStencil) {\n fbo._depth_rb = initRenderBuffer(gl2, width, height, gl2.STENCIL_INDEX, gl2.STENCIL_ATTACHMENT);\n }\n }\n var status = gl2.checkFramebufferStatus(gl2.FRAMEBUFFER);\n if (status !== gl2.FRAMEBUFFER_COMPLETE) {\n fbo._destroyed = true;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n gl2.deleteFramebuffer(fbo.handle);\n fbo.handle = null;\n if (fbo.depth) {\n fbo.depth.dispose();\n fbo.depth = null;\n }\n if (fbo._depth_rb) {\n gl2.deleteRenderbuffer(fbo._depth_rb);\n fbo._depth_rb = null;\n }\n for (var i = 0; i < fbo.color.length; ++i) {\n fbo.color[i].dispose();\n fbo.color[i] = null;\n }\n if (fbo._color_rb) {\n gl2.deleteRenderbuffer(fbo._color_rb);\n fbo._color_rb = null;\n }\n restoreFBOState(gl2, state);\n throwFBOError(status);\n }\n restoreFBOState(gl2, state);\n }\n function Framebuffer(gl2, width, height, colorType, numColors, useDepth, useStencil, ext) {\n this.gl = gl2;\n this._shape = [width | 0, height | 0];\n this._destroyed = false;\n this._ext = ext;\n this.color = new Array(numColors);\n for (var i = 0; i < numColors; ++i) {\n this.color[i] = null;\n }\n this._color_rb = null;\n this.depth = null;\n this._depth_rb = null;\n this._colorType = colorType;\n this._useDepth = useDepth;\n this._useStencil = useStencil;\n var parent = this;\n var shapeVector = [width | 0, height | 0];\n Object.defineProperties(shapeVector, {\n 0: {\n get: function() {\n return parent._shape[0];\n },\n set: function(w) {\n return parent.width = w;\n }\n },\n 1: {\n get: function() {\n return parent._shape[1];\n },\n set: function(h) {\n return parent.height = h;\n }\n }\n });\n this._shapeVector = shapeVector;\n rebuildFBO(this);\n }\n var proto = Framebuffer.prototype;\n function reshapeFBO(fbo, w, h) {\n if (fbo._destroyed) {\n throw new Error(\"gl-fbo: Can't resize destroyed FBO\");\n }\n if (fbo._shape[0] === w && fbo._shape[1] === h) {\n return;\n }\n var gl2 = fbo.gl;\n var maxFBOSize = gl2.getParameter(gl2.MAX_RENDERBUFFER_SIZE);\n if (w < 0 || w > maxFBOSize || h < 0 || h > maxFBOSize) {\n throw new Error(\"gl-fbo: Can't resize FBO, invalid dimensions\");\n }\n fbo._shape[0] = w;\n fbo._shape[1] = h;\n var state = saveFBOState(gl2);\n for (var i = 0; i < fbo.color.length; ++i) {\n fbo.color[i].shape = fbo._shape;\n }\n if (fbo._color_rb) {\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, fbo._color_rb);\n gl2.renderbufferStorage(gl2.RENDERBUFFER, gl2.RGBA4, fbo._shape[0], fbo._shape[1]);\n }\n if (fbo.depth) {\n fbo.depth.shape = fbo._shape;\n }\n if (fbo._depth_rb) {\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, fbo._depth_rb);\n if (fbo._useDepth && fbo._useStencil) {\n gl2.renderbufferStorage(gl2.RENDERBUFFER, gl2.DEPTH_STENCIL, fbo._shape[0], fbo._shape[1]);\n } else if (fbo._useDepth) {\n gl2.renderbufferStorage(gl2.RENDERBUFFER, gl2.DEPTH_COMPONENT16, fbo._shape[0], fbo._shape[1]);\n } else if (fbo._useStencil) {\n gl2.renderbufferStorage(gl2.RENDERBUFFER, gl2.STENCIL_INDEX, fbo._shape[0], fbo._shape[1]);\n }\n }\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, fbo.handle);\n var status = gl2.checkFramebufferStatus(gl2.FRAMEBUFFER);\n if (status !== gl2.FRAMEBUFFER_COMPLETE) {\n fbo.dispose();\n restoreFBOState(gl2, state);\n throwFBOError(status);\n }\n restoreFBOState(gl2, state);\n }\n Object.defineProperties(proto, {\n \"shape\": {\n get: function() {\n if (this._destroyed) {\n return [0, 0];\n }\n return this._shapeVector;\n },\n set: function(x) {\n if (!Array.isArray(x)) {\n x = [x | 0, x | 0];\n }\n if (x.length !== 2) {\n throw new Error(\"gl-fbo: Shape vector must be length 2\");\n }\n var w = x[0] | 0;\n var h = x[1] | 0;\n reshapeFBO(this, w, h);\n return [w, h];\n },\n enumerable: false\n },\n \"width\": {\n get: function() {\n if (this._destroyed) {\n return 0;\n }\n return this._shape[0];\n },\n set: function(w) {\n w = w | 0;\n reshapeFBO(this, w, this._shape[1]);\n return w;\n },\n enumerable: false\n },\n \"height\": {\n get: function() {\n if (this._destroyed) {\n return 0;\n }\n return this._shape[1];\n },\n set: function(h) {\n h = h | 0;\n reshapeFBO(this, this._shape[0], h);\n return h;\n },\n enumerable: false\n }\n });\n proto.bind = function() {\n if (this._destroyed) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, this.handle);\n gl2.viewport(0, 0, this._shape[0], this._shape[1]);\n };\n proto.dispose = function() {\n if (this._destroyed) {\n return;\n }\n this._destroyed = true;\n var gl2 = this.gl;\n gl2.deleteFramebuffer(this.handle);\n this.handle = null;\n if (this.depth) {\n this.depth.dispose();\n this.depth = null;\n }\n if (this._depth_rb) {\n gl2.deleteRenderbuffer(this._depth_rb);\n this._depth_rb = null;\n }\n for (var i = 0; i < this.color.length; ++i) {\n this.color[i].dispose();\n this.color[i] = null;\n }\n if (this._color_rb) {\n gl2.deleteRenderbuffer(this._color_rb);\n this._color_rb = null;\n }\n };\n function createFBO(gl2, width, height, options) {\n if (!FRAMEBUFFER_UNSUPPORTED) {\n FRAMEBUFFER_UNSUPPORTED = gl2.FRAMEBUFFER_UNSUPPORTED;\n FRAMEBUFFER_INCOMPLETE_ATTACHMENT = gl2.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;\n FRAMEBUFFER_INCOMPLETE_DIMENSIONS = gl2.FRAMEBUFFER_INCOMPLETE_DIMENSIONS;\n FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = gl2.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;\n }\n var WEBGL_draw_buffers = gl2.getExtension(\"WEBGL_draw_buffers\");\n if (!colorAttachmentArrays && WEBGL_draw_buffers) {\n lazyInitColorAttachments(gl2, WEBGL_draw_buffers);\n }\n if (Array.isArray(width)) {\n options = height;\n height = width[1] | 0;\n width = width[0] | 0;\n }\n if (typeof width !== \"number\") {\n throw new Error(\"gl-fbo: Missing shape parameter\");\n }\n var maxFBOSize = gl2.getParameter(gl2.MAX_RENDERBUFFER_SIZE);\n if (width < 0 || width > maxFBOSize || height < 0 || height > maxFBOSize) {\n throw new Error(\"gl-fbo: Parameters are too large for FBO\");\n }\n options = options || {};\n var numColors = 1;\n if (\"color\" in options) {\n numColors = Math.max(options.color | 0, 0);\n if (numColors < 0) {\n throw new Error(\"gl-fbo: Must specify a nonnegative number of colors\");\n }\n if (numColors > 1) {\n if (!WEBGL_draw_buffers) {\n throw new Error(\"gl-fbo: Multiple draw buffer extension not supported\");\n } else if (numColors > gl2.getParameter(WEBGL_draw_buffers.MAX_COLOR_ATTACHMENTS_WEBGL)) {\n throw new Error(\"gl-fbo: Context does not support \" + numColors + \" draw buffers\");\n }\n }\n }\n var colorType = gl2.UNSIGNED_BYTE;\n var OES_texture_float = gl2.getExtension(\"OES_texture_float\");\n if (options.float && numColors > 0) {\n if (!OES_texture_float) {\n throw new Error(\"gl-fbo: Context does not support floating point textures\");\n }\n colorType = gl2.FLOAT;\n } else if (options.preferFloat && numColors > 0) {\n if (OES_texture_float) {\n colorType = gl2.FLOAT;\n }\n }\n var useDepth = true;\n if (\"depth\" in options) {\n useDepth = !!options.depth;\n }\n var useStencil = false;\n if (\"stencil\" in options) {\n useStencil = !!options.stencil;\n }\n return new Framebuffer(\n gl2,\n width,\n height,\n colorType,\n numColors,\n useDepth,\n useStencil,\n WEBGL_draw_buffers\n );\n }\n }\n ),\n /***/\n 2992: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var sprintf = __webpack_require__2(3387).sprintf;\n var glConstants = __webpack_require__2(5171);\n var shaderName = __webpack_require__2(1848);\n var addLineNumbers = __webpack_require__2(1085);\n module2.exports = formatCompilerError;\n function formatCompilerError(errLog, src, type) {\n \"use strict\";\n var name2 = shaderName(src) || \"of unknown name (see npm glsl-shader-name)\";\n var typeName = \"unknown type\";\n if (type !== void 0) {\n typeName = type === glConstants.FRAGMENT_SHADER ? \"fragment\" : \"vertex\";\n }\n var longForm = sprintf(\"Error compiling %s shader %s:\\n\", typeName, name2);\n var shortForm = sprintf(\"%s%s\", longForm, errLog);\n var errorStrings = errLog.split(\"\\n\");\n var errors = {};\n for (var i = 0; i < errorStrings.length; i++) {\n var errorString = errorStrings[i];\n if (errorString === \"\" || errorString === \"\\0\") continue;\n var lineNo = parseInt(errorString.split(\":\")[2]);\n if (isNaN(lineNo)) {\n throw new Error(sprintf(\"Could not parse error: %s\", errorString));\n }\n errors[lineNo] = errorString;\n }\n var lines = addLineNumbers(src).split(\"\\n\");\n for (var i = 0; i < lines.length; i++) {\n if (!errors[i + 3] && !errors[i + 2] && !errors[i + 1]) continue;\n var line = lines[i];\n longForm += line + \"\\n\";\n if (errors[i + 1]) {\n var e = errors[i + 1];\n e = e.substr(e.split(\":\", 3).join(\":\").length + 1).trim();\n longForm += sprintf(\"^^^ %s\\n\\n\", e);\n }\n }\n return {\n long: longForm.trim(),\n short: shortForm.trim()\n };\n }\n }\n ),\n /***/\n 7319: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, nextPosition;\\nattribute float arcLength, lineWidth;\\nattribute vec4 color;\\n\\nuniform vec2 screenShape;\\nuniform float pixelRatio;\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 fragColor;\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\n\\nvec4 project(vec3 p) {\\n return projection * (view * (model * vec4(p, 1.0)));\\n}\\n\\nvoid main() {\\n vec4 startPoint = project(position);\\n vec4 endPoint = project(nextPosition);\\n\\n vec2 A = startPoint.xy / startPoint.w;\\n vec2 B = endPoint.xy / endPoint.w;\\n\\n float clipAngle = atan(\\n (B.y - A.y) * screenShape.y,\\n (B.x - A.x) * screenShape.x\\n );\\n\\n vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(\\n sin(clipAngle),\\n -cos(clipAngle)\\n ) / screenShape;\\n\\n gl_Position = vec4(startPoint.xy + startPoint.w * offset, startPoint.zw);\\n\\n worldPosition = position;\\n pixelArcLength = arcLength;\\n fragColor = color;\\n}\\n\"]);\n var forwardFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D dashTexture;\\nuniform float dashScale;\\nuniform float opacity;\\n\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\\n if(dashWeight < 0.5) {\\n discard;\\n }\\n gl_FragColor = fragColor * opacity;\\n}\\n\"]);\n var pickFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\n#define FLOAT_MAX 1.70141184e38\\n#define FLOAT_MIN 1.17549435e-38\\n\\n// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl\\nvec4 packFloat(float v) {\\n float av = abs(v);\\n\\n //Handle special cases\\n if(av < FLOAT_MIN) {\\n return vec4(0.0, 0.0, 0.0, 0.0);\\n } else if(v > FLOAT_MAX) {\\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\\n } else if(v < -FLOAT_MAX) {\\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\\n }\\n\\n vec4 c = vec4(0,0,0,0);\\n\\n //Compute exponent and mantissa\\n float e = floor(log2(av));\\n float m = av * pow(2.0, -e) - 1.0;\\n\\n //Unpack mantissa\\n c[1] = floor(128.0 * m);\\n m -= c[1] / 128.0;\\n c[2] = floor(32768.0 * m);\\n m -= c[2] / 32768.0;\\n c[3] = floor(8388608.0 * m);\\n\\n //Unpack exponent\\n float ebias = e + 127.0;\\n c[0] = floor(ebias / 2.0);\\n ebias -= c[0] * 2.0;\\n c[1] += floor(ebias) * 128.0;\\n\\n //Unpack sign bit\\n c[0] += 128.0 * step(0.0, -v);\\n\\n //Scale back to range\\n return c / 255.0;\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform float pickId;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\\n\\n gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);\\n}\"]);\n var ATTRIBUTES = [\n { name: \"position\", type: \"vec3\" },\n { name: \"nextPosition\", type: \"vec3\" },\n { name: \"arcLength\", type: \"float\" },\n { name: \"lineWidth\", type: \"float\" },\n { name: \"color\", type: \"vec4\" }\n ];\n exports2.createShader = function(gl2) {\n return createShader(gl2, vertSrc, forwardFrag, null, ATTRIBUTES);\n };\n exports2.createPickShader = function(gl2) {\n return createShader(gl2, vertSrc, pickFrag, null, ATTRIBUTES);\n };\n }\n ),\n /***/\n 5714: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createLinePlot;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createTexture = __webpack_require__2(7766);\n var UINT8_VIEW = new Uint8Array(4);\n var FLOAT_VIEW = new Float32Array(UINT8_VIEW.buffer);\n function unpackFloat(x, y, z, w) {\n UINT8_VIEW[0] = w;\n UINT8_VIEW[1] = z;\n UINT8_VIEW[2] = y;\n UINT8_VIEW[3] = x;\n return FLOAT_VIEW[0];\n }\n var bsearch = __webpack_require__2(2478);\n var ndarray = __webpack_require__2(9618);\n var shaders = __webpack_require__2(7319);\n var createShader = shaders.createShader;\n var createPickShader = shaders.createPickShader;\n var identity2 = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function distance(a, b) {\n var s = 0;\n for (var i = 0; i < 3; ++i) {\n var d = a[i] - b[i];\n s += d * d;\n }\n return Math.sqrt(s);\n }\n function filterClipBounds(bounds) {\n var result = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n result[0][i] = Math.max(bounds[0][i], result[0][i]);\n result[1][i] = Math.min(bounds[1][i], result[1][i]);\n }\n return result;\n }\n function PickResult(tau, position, index, dataCoordinate) {\n this.arcLength = tau;\n this.position = position;\n this.index = index;\n this.dataCoordinate = dataCoordinate;\n }\n function LinePlot(gl2, shader, pickShader, buffer, vao, texture) {\n this.gl = gl2;\n this.shader = shader;\n this.pickShader = pickShader;\n this.buffer = buffer;\n this.vao = vao;\n this.clipBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.points = [];\n this.arcLength = [];\n this.vertexCount = 0;\n this.bounds = [[0, 0, 0], [0, 0, 0]];\n this.pickId = 0;\n this.lineWidth = 1;\n this.texture = texture;\n this.dashScale = 1;\n this.opacity = 1;\n this.hasAlpha = false;\n this.dirty = true;\n this.pixelRatio = 1;\n }\n var proto = LinePlot.prototype;\n proto.isTransparent = function() {\n return this.hasAlpha;\n };\n proto.isOpaque = function() {\n return !this.hasAlpha;\n };\n proto.pickSlots = 1;\n proto.setPickBase = function(id) {\n this.pickId = id;\n };\n proto.drawTransparent = proto.draw = function(camera) {\n if (!this.vertexCount) return;\n var gl2 = this.gl;\n var shader = this.shader;\n var vao = this.vao;\n shader.bind();\n shader.uniforms = {\n model: camera.model || identity2,\n view: camera.view || identity2,\n projection: camera.projection || identity2,\n clipBounds: filterClipBounds(this.clipBounds),\n dashTexture: this.texture.bind(),\n dashScale: this.dashScale / this.arcLength[this.arcLength.length - 1],\n opacity: this.opacity,\n screenShape: [gl2.drawingBufferWidth, gl2.drawingBufferHeight],\n pixelRatio: this.pixelRatio\n };\n vao.bind();\n vao.draw(gl2.TRIANGLE_STRIP, this.vertexCount);\n vao.unbind();\n };\n proto.drawPick = function(camera) {\n if (!this.vertexCount) return;\n var gl2 = this.gl;\n var shader = this.pickShader;\n var vao = this.vao;\n shader.bind();\n shader.uniforms = {\n model: camera.model || identity2,\n view: camera.view || identity2,\n projection: camera.projection || identity2,\n pickId: this.pickId,\n clipBounds: filterClipBounds(this.clipBounds),\n screenShape: [gl2.drawingBufferWidth, gl2.drawingBufferHeight],\n pixelRatio: this.pixelRatio\n };\n vao.bind();\n vao.draw(gl2.TRIANGLE_STRIP, this.vertexCount);\n vao.unbind();\n };\n proto.update = function(options) {\n var i, j;\n this.dirty = true;\n var connectGaps = !!options.connectGaps;\n if (\"dashScale\" in options) {\n this.dashScale = options.dashScale;\n }\n this.hasAlpha = false;\n if (\"opacity\" in options) {\n this.opacity = +options.opacity;\n if (this.opacity < 1) {\n this.hasAlpha = true;\n }\n }\n var buffer = [];\n var arcLengthArray = [];\n var pointArray = [];\n var arcLength = 0;\n var vertexCount = 0;\n var bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n var positions = options.position || options.positions;\n if (positions) {\n var colors = options.color || options.colors || [0, 0, 0, 1];\n var lineWidth = options.lineWidth || 1;\n var hadGap = false;\n fill_loop:\n for (i = 1; i < positions.length; ++i) {\n var a = positions[i - 1];\n var b = positions[i];\n arcLengthArray.push(arcLength);\n pointArray.push(a.slice());\n for (j = 0; j < 3; ++j) {\n if (isNaN(a[j]) || isNaN(b[j]) || !isFinite(a[j]) || !isFinite(b[j])) {\n if (!connectGaps && buffer.length > 0) {\n for (var k = 0; k < 24; ++k) {\n buffer.push(buffer[buffer.length - 12]);\n }\n vertexCount += 2;\n hadGap = true;\n }\n continue fill_loop;\n }\n bounds[0][j] = Math.min(bounds[0][j], a[j], b[j]);\n bounds[1][j] = Math.max(bounds[1][j], a[j], b[j]);\n }\n var acolor, bcolor;\n if (Array.isArray(colors[0])) {\n acolor = colors.length > i - 1 ? colors[i - 1] : (\n // using index value\n colors.length > 0 ? colors[colors.length - 1] : (\n // using last item\n [0, 0, 0, 1]\n )\n );\n bcolor = colors.length > i ? colors[i] : (\n // using index value\n colors.length > 0 ? colors[colors.length - 1] : (\n // using last item\n [0, 0, 0, 1]\n )\n );\n } else {\n acolor = bcolor = colors;\n }\n if (acolor.length === 3) {\n acolor = [acolor[0], acolor[1], acolor[2], 1];\n }\n if (bcolor.length === 3) {\n bcolor = [bcolor[0], bcolor[1], bcolor[2], 1];\n }\n if (!this.hasAlpha && acolor[3] < 1) this.hasAlpha = true;\n var w0;\n if (Array.isArray(lineWidth)) {\n w0 = lineWidth.length > i - 1 ? lineWidth[i - 1] : (\n // using index value\n lineWidth.length > 0 ? lineWidth[lineWidth.length - 1] : (\n // using last item\n [0, 0, 0, 1]\n )\n );\n } else {\n w0 = lineWidth;\n }\n var t02 = arcLength;\n arcLength += distance(a, b);\n if (hadGap) {\n for (j = 0; j < 2; ++j) {\n buffer.push(\n a[0],\n a[1],\n a[2],\n b[0],\n b[1],\n b[2],\n t02,\n w0,\n acolor[0],\n acolor[1],\n acolor[2],\n acolor[3]\n );\n }\n vertexCount += 2;\n hadGap = false;\n }\n buffer.push(\n a[0],\n a[1],\n a[2],\n b[0],\n b[1],\n b[2],\n t02,\n w0,\n acolor[0],\n acolor[1],\n acolor[2],\n acolor[3],\n a[0],\n a[1],\n a[2],\n b[0],\n b[1],\n b[2],\n t02,\n -w0,\n acolor[0],\n acolor[1],\n acolor[2],\n acolor[3],\n b[0],\n b[1],\n b[2],\n a[0],\n a[1],\n a[2],\n arcLength,\n -w0,\n bcolor[0],\n bcolor[1],\n bcolor[2],\n bcolor[3],\n b[0],\n b[1],\n b[2],\n a[0],\n a[1],\n a[2],\n arcLength,\n w0,\n bcolor[0],\n bcolor[1],\n bcolor[2],\n bcolor[3]\n );\n vertexCount += 4;\n }\n }\n this.buffer.update(buffer);\n arcLengthArray.push(arcLength);\n pointArray.push(positions[positions.length - 1].slice());\n this.bounds = bounds;\n this.vertexCount = vertexCount;\n this.points = pointArray;\n this.arcLength = arcLengthArray;\n if (\"dashes\" in options) {\n var dashArray = options.dashes;\n var prefixSum = dashArray.slice();\n prefixSum.unshift(0);\n for (i = 1; i < prefixSum.length; ++i) {\n prefixSum[i] = prefixSum[i - 1] + prefixSum[i];\n }\n var dashTexture = ndarray(new Array(256 * 4), [256, 1, 4]);\n for (i = 0; i < 256; ++i) {\n for (j = 0; j < 4; ++j) {\n dashTexture.set(i, 0, j, 0);\n }\n if (bsearch.le(prefixSum, prefixSum[prefixSum.length - 1] * i / 255) & 1) {\n dashTexture.set(i, 0, 0, 0);\n } else {\n dashTexture.set(i, 0, 0, 255);\n }\n }\n this.texture.setPixels(dashTexture);\n }\n };\n proto.dispose = function() {\n this.shader.dispose();\n this.vao.dispose();\n this.buffer.dispose();\n };\n proto.pick = function(selection) {\n if (!selection) {\n return null;\n }\n if (selection.id !== this.pickId) {\n return null;\n }\n var tau = unpackFloat(\n selection.value[0],\n selection.value[1],\n selection.value[2],\n 0\n );\n var index = bsearch.le(this.arcLength, tau);\n if (index < 0) {\n return null;\n }\n if (index === this.arcLength.length - 1) {\n return new PickResult(\n this.arcLength[this.arcLength.length - 1],\n this.points[this.points.length - 1].slice(),\n index\n );\n }\n var a = this.points[index];\n var b = this.points[Math.min(index + 1, this.points.length - 1)];\n var t = (tau - this.arcLength[index]) / (this.arcLength[index + 1] - this.arcLength[index]);\n var ti = 1 - t;\n var x = [0, 0, 0];\n for (var i = 0; i < 3; ++i) {\n x[i] = ti * a[i] + t * b[i];\n }\n var dataIndex = Math.min(t < 0.5 ? index : index + 1, this.points.length - 1);\n return new PickResult(\n tau,\n x,\n dataIndex,\n this.points[dataIndex]\n );\n };\n function createLinePlot(options) {\n var gl2 = options.gl || options.scene && options.scene.gl;\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n shader.attributes.nextPosition.location = 1;\n shader.attributes.arcLength.location = 2;\n shader.attributes.lineWidth.location = 3;\n shader.attributes.color.location = 4;\n var pickShader = createPickShader(gl2);\n pickShader.attributes.position.location = 0;\n pickShader.attributes.nextPosition.location = 1;\n pickShader.attributes.arcLength.location = 2;\n pickShader.attributes.lineWidth.location = 3;\n pickShader.attributes.color.location = 4;\n var buffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n \"buffer\": buffer,\n \"size\": 3,\n \"offset\": 0,\n \"stride\": 48\n },\n {\n \"buffer\": buffer,\n \"size\": 3,\n \"offset\": 12,\n \"stride\": 48\n },\n {\n \"buffer\": buffer,\n \"size\": 1,\n \"offset\": 24,\n \"stride\": 48\n },\n {\n \"buffer\": buffer,\n \"size\": 1,\n \"offset\": 28,\n \"stride\": 48\n },\n {\n \"buffer\": buffer,\n \"size\": 4,\n \"offset\": 32,\n \"stride\": 48\n }\n ]);\n var defaultTexture = ndarray(new Array(256 * 4), [256, 1, 4]);\n for (var i = 0; i < 256 * 4; ++i) {\n defaultTexture.data[i] = 255;\n }\n var texture = createTexture(gl2, defaultTexture);\n texture.wrap = gl2.REPEAT;\n var linePlot = new LinePlot(gl2, shader, pickShader, buffer, vao, texture);\n linePlot.update(options);\n return linePlot;\n }\n }\n ),\n /***/\n 1903: (\n /***/\n function(module2) {\n module2.exports = clone;\n function clone(a) {\n var out = new Float32Array(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n ;\n }\n ),\n /***/\n 6864: (\n /***/\n function(module2) {\n module2.exports = create;\n function create() {\n var out = new Float32Array(16);\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 9921: (\n /***/\n function(module2) {\n module2.exports = determinant;\n function determinant(a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], b00 = a00 * a11 - a01 * a10, b01 = a00 * a12 - a02 * a10, b02 = a00 * a13 - a03 * a10, b03 = a01 * a12 - a02 * a11, b04 = a01 * a13 - a03 * a11, b05 = a02 * a13 - a03 * a12, b06 = a20 * a31 - a21 * a30, b07 = a20 * a32 - a22 * a30, b08 = a20 * a33 - a23 * a30, b09 = a21 * a32 - a22 * a31, b10 = a21 * a33 - a23 * a31, b11 = a22 * a33 - a23 * a32;\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n }\n ;\n }\n ),\n /***/\n 7399: (\n /***/\n function(module2) {\n module2.exports = fromQuat;\n function fromQuat(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3], x2 = x + x, y2 = y + y, z2 = z + z, xx = x * x2, yx = y * x2, yy = y * y2, zx = z * x2, zy = z * y2, zz = z * z2, wx = w * x2, wy = w * y2, wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 6743: (\n /***/\n function(module2) {\n module2.exports = fromRotationTranslation;\n function fromRotationTranslation(out, q, v) {\n var x = q[0], y = q[1], z = q[2], w = q[3], x2 = x + x, y2 = y + y, z2 = z + z, xx = x * x2, xy = x * y2, xz = x * z2, yy = y * y2, yz = y * z2, zz = z * z2, wx = w * x2, wy = w * y2, wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 7894: (\n /***/\n function(module2) {\n module2.exports = identity2;\n function identity2(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 7608: (\n /***/\n function(module2) {\n module2.exports = invert;\n function invert(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], b00 = a00 * a11 - a01 * a10, b01 = a00 * a12 - a02 * a10, b02 = a00 * a13 - a03 * a10, b03 = a01 * a12 - a02 * a11, b04 = a01 * a13 - a03 * a11, b05 = a02 * a13 - a03 * a12, b06 = a20 * a31 - a21 * a30, b07 = a20 * a32 - a22 * a30, b08 = a20 * a33 - a23 * a30, b09 = a21 * a32 - a22 * a31, b10 = a21 * a33 - a23 * a31, b11 = a22 * a33 - a23 * a32, det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n }\n ;\n }\n ),\n /***/\n 6582: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var identity2 = __webpack_require__2(7894);\n module2.exports = lookAt;\n function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len, eyex = eye[0], eyey = eye[1], eyez = eye[2], upx = up[0], upy = up[1], upz = up[2], centerx = center[0], centery = center[1], centerz = center[2];\n if (Math.abs(eyex - centerx) < 1e-6 && Math.abs(eyey - centery) < 1e-6 && Math.abs(eyez - centerz) < 1e-6) {\n return identity2(out);\n }\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 6760: (\n /***/\n function(module2) {\n module2.exports = multiply;\n function multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n }\n ;\n }\n ),\n /***/\n 4040: (\n /***/\n function(module2) {\n module2.exports = ortho;\n function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right), bt = 1 / (bottom - top), nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 4772: (\n /***/\n function(module2) {\n module2.exports = perspective;\n function perspective(out, fovy, aspect, near, far) {\n var f = 1 / Math.tan(fovy / 2), nf = 1 / (near - far);\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = 2 * far * near * nf;\n out[15] = 0;\n return out;\n }\n ;\n }\n ),\n /***/\n 6079: (\n /***/\n function(module2) {\n module2.exports = rotate;\n function rotate(out, a, rad, axis) {\n var x = axis[0], y = axis[1], z = axis[2], len = Math.sqrt(x * x + y * y + z * z), s, c, t, a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23, b00, b01, b02, b10, b11, b12, b20, b21, b22;\n if (Math.abs(len) < 1e-6) {\n return null;\n }\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c;\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n if (a !== out) {\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n return out;\n }\n ;\n }\n ),\n /***/\n 5567: (\n /***/\n function(module2) {\n module2.exports = rotateX;\n function rotateX(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n if (a !== out) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n }\n ;\n }\n ),\n /***/\n 2408: (\n /***/\n function(module2) {\n module2.exports = rotateY;\n function rotateY(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n if (a !== out) {\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n }\n ;\n }\n ),\n /***/\n 7089: (\n /***/\n function(module2) {\n module2.exports = rotateZ;\n function rotateZ(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n if (a !== out) {\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n }\n ;\n }\n ),\n /***/\n 2504: (\n /***/\n function(module2) {\n module2.exports = scale;\n function scale(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n ;\n }\n ),\n /***/\n 7656: (\n /***/\n function(module2) {\n module2.exports = translate;\n function translate(out, a, v) {\n var x = v[0], y = v[1], z = v[2], a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n }\n ;\n }\n ),\n /***/\n 5665: (\n /***/\n function(module2) {\n module2.exports = transpose;\n function transpose(out, a) {\n if (out === a) {\n var a01 = a[1], a02 = a[2], a03 = a[3], a12 = a[6], a13 = a[7], a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n return out;\n }\n ;\n }\n ),\n /***/\n 7626: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var barycentric = __webpack_require__2(2642);\n var closestPointToTriangle = __webpack_require__2(9346);\n module2.exports = closestPointToPickLocation;\n function xformMatrix(m, v) {\n var out = [0, 0, 0, 0];\n for (var i = 0; i < 4; ++i) {\n for (var j = 0; j < 4; ++j) {\n out[j] += m[4 * i + j] * v[i];\n }\n }\n return out;\n }\n function projectVertex(v, model, view, projection, resolution) {\n var p = xformMatrix(\n projection,\n xformMatrix(\n view,\n xformMatrix(model, [v[0], v[1], v[2], 1])\n )\n );\n for (var i = 0; i < 3; ++i) {\n p[i] /= p[3];\n }\n return [0.5 * resolution[0] * (1 + p[0]), 0.5 * resolution[1] * (1 - p[1])];\n }\n function barycentricCoord(simplex, point) {\n if (simplex.length === 2) {\n var d0 = 0;\n var d1 = 0;\n for (var i = 0; i < 2; ++i) {\n d0 += Math.pow(point[i] - simplex[0][i], 2);\n d1 += Math.pow(point[i] - simplex[1][i], 2);\n }\n d0 = Math.sqrt(d0);\n d1 = Math.sqrt(d1);\n if (d0 + d1 < 1e-6) {\n return [1, 0];\n }\n return [d1 / (d0 + d1), d0 / (d1 + d0)];\n } else if (simplex.length === 3) {\n var closestPoint = [0, 0];\n closestPointToTriangle(simplex[0], simplex[1], simplex[2], point, closestPoint);\n return barycentric(simplex, closestPoint);\n }\n return [];\n }\n function interpolate(simplex, weights) {\n var result = [0, 0, 0];\n for (var i = 0; i < simplex.length; ++i) {\n var p = simplex[i];\n var w = weights[i];\n for (var j = 0; j < 3; ++j) {\n result[j] += w * p[j];\n }\n }\n return result;\n }\n function closestPointToPickLocation(simplex, pixelCoord, model, view, projection, resolution) {\n if (simplex.length === 1) {\n return [0, simplex[0].slice()];\n }\n var simplex2D = new Array(simplex.length);\n for (var i = 0; i < simplex.length; ++i) {\n simplex2D[i] = projectVertex(simplex[i], model, view, projection, resolution);\n }\n var closestIndex = 0;\n var closestDist = Infinity;\n for (var i = 0; i < simplex2D.length; ++i) {\n var d2 = 0;\n for (var j = 0; j < 2; ++j) {\n d2 += Math.pow(simplex2D[i][j] - pixelCoord[j], 2);\n }\n if (d2 < closestDist) {\n closestDist = d2;\n closestIndex = i;\n }\n }\n var weights = barycentricCoord(simplex2D, pixelCoord);\n var s = 0;\n for (var i = 0; i < 3; ++i) {\n if (weights[i] < -1e-3 || weights[i] > 1.0001) {\n return null;\n }\n s += weights[i];\n }\n if (Math.abs(s - 1) > 1e-3) {\n return null;\n }\n return [closestIndex, interpolate(simplex, weights), weights];\n }\n }\n ),\n /***/\n 840: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var triVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, normal;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model\\n , view\\n , projection\\n , inverseModel;\\nuniform vec3 eyePosition\\n , lightPosition;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvec4 project(vec3 p) {\\n return projection * (view * (model * vec4(p, 1.0)));\\n}\\n\\nvoid main() {\\n gl_Position = project(position);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * vec4(position , 1.0);\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\\n\"]);\n var triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness\\n , fresnel\\n , kambient\\n , kdiffuse\\n , kspecular;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (f_color.a == 0.0 ||\\n outOfRange(clipBounds[0], clipBounds[1], f_data)\\n ) discard;\\n\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\\n\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * f_color.a;\\n}\\n\"]);\n var edgeVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\"]);\n var edgeFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\n\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"]);\n var pointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\nattribute float pointSize;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\\n } else {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n }\\n gl_PointSize = pointSize;\\n f_color = color;\\n f_uv = uv;\\n}\"]);\n var pointFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\\n if(dot(pointR, pointR) > 0.25) {\\n discard;\\n }\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"]);\n var pickVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n f_id = id;\\n f_position = position;\\n}\"]);\n var pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]);\n var pickPointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute float pointSize;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\\n } else {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n gl_PointSize = pointSize;\\n }\\n f_id = id;\\n f_position = position;\\n}\"]);\n var contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\n\\nvoid main() {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n}\"]);\n var contourFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec3 contourColor;\\n\\nvoid main() {\\n gl_FragColor = vec4(contourColor, 1.0);\\n}\\n\"]);\n exports2.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"normal\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" }\n ]\n };\n exports2.wireShader = {\n vertex: edgeVertSrc,\n fragment: edgeFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" }\n ]\n };\n exports2.pointShader = {\n vertex: pointVertSrc,\n fragment: pointFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" },\n { name: \"pointSize\", type: \"float\" }\n ]\n };\n exports2.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"id\", type: \"vec4\" }\n ]\n };\n exports2.pointPickShader = {\n vertex: pickPointVertSrc,\n fragment: pickFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"pointSize\", type: \"float\" },\n { name: \"id\", type: \"vec4\" }\n ]\n };\n exports2.contourShader = {\n vertex: contourVertSrc,\n fragment: contourFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" }\n ]\n };\n }\n ),\n /***/\n 7201: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var DEFAULT_VERTEX_NORMALS_EPSILON = 1e-6;\n var DEFAULT_FACE_NORMALS_EPSILON = 1e-6;\n var createShader = __webpack_require__2(9405);\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createTexture = __webpack_require__2(7766);\n var normals = __webpack_require__2(8406);\n var multiply = __webpack_require__2(6760);\n var invert = __webpack_require__2(7608);\n var ndarray = __webpack_require__2(9618);\n var colormap = __webpack_require__2(6729);\n var getContour = __webpack_require__2(7765);\n var pool = __webpack_require__2(1888);\n var shaders = __webpack_require__2(840);\n var closestPoint = __webpack_require__2(7626);\n var meshShader = shaders.meshShader;\n var wireShader = shaders.wireShader;\n var pointShader = shaders.pointShader;\n var pickShader = shaders.pickShader;\n var pointPickShader = shaders.pointPickShader;\n var contourShader = shaders.contourShader;\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function SimplicialMesh(gl2, texture, triShader, lineShader, pointShader2, pickShader2, pointPickShader2, contourShader2, trianglePositions, triangleIds, triangleColors, triangleUVs, triangleNormals, triangleVAO, edgePositions, edgeIds, edgeColors, edgeUVs, edgeVAO, pointPositions, pointIds, pointColors, pointUVs, pointSizes, pointVAO, contourPositions, contourVAO) {\n this.gl = gl2;\n this.pixelRatio = 1;\n this.cells = [];\n this.positions = [];\n this.intensity = [];\n this.texture = texture;\n this.dirty = true;\n this.triShader = triShader;\n this.lineShader = lineShader;\n this.pointShader = pointShader2;\n this.pickShader = pickShader2;\n this.pointPickShader = pointPickShader2;\n this.contourShader = contourShader2;\n this.trianglePositions = trianglePositions;\n this.triangleColors = triangleColors;\n this.triangleNormals = triangleNormals;\n this.triangleUVs = triangleUVs;\n this.triangleIds = triangleIds;\n this.triangleVAO = triangleVAO;\n this.triangleCount = 0;\n this.lineWidth = 1;\n this.edgePositions = edgePositions;\n this.edgeColors = edgeColors;\n this.edgeUVs = edgeUVs;\n this.edgeIds = edgeIds;\n this.edgeVAO = edgeVAO;\n this.edgeCount = 0;\n this.pointPositions = pointPositions;\n this.pointColors = pointColors;\n this.pointUVs = pointUVs;\n this.pointSizes = pointSizes;\n this.pointIds = pointIds;\n this.pointVAO = pointVAO;\n this.pointCount = 0;\n this.contourLineWidth = 1;\n this.contourPositions = contourPositions;\n this.contourVAO = contourVAO;\n this.contourCount = 0;\n this.contourColor = [0, 0, 0];\n this.contourEnable = true;\n this.pickVertex = true;\n this.pickId = 1;\n this.bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n this.clipBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.lightPosition = [1e5, 1e5, 0];\n this.ambientLight = 0.8;\n this.diffuseLight = 0.8;\n this.specularLight = 2;\n this.roughness = 0.5;\n this.fresnel = 1.5;\n this.opacity = 1;\n this.hasAlpha = false;\n this.opacityscale = false;\n this._model = IDENTITY;\n this._view = IDENTITY;\n this._projection = IDENTITY;\n this._resolution = [1, 1];\n }\n var proto = SimplicialMesh.prototype;\n proto.isOpaque = function() {\n return !this.hasAlpha;\n };\n proto.isTransparent = function() {\n return this.hasAlpha;\n };\n proto.pickSlots = 1;\n proto.setPickBase = function(id) {\n this.pickId = id;\n };\n function getOpacityFromScale(ratio, opacityscale) {\n if (!opacityscale) return 1;\n if (!opacityscale.length) return 1;\n for (var i = 0; i < opacityscale.length; ++i) {\n if (opacityscale.length < 2) return 1;\n if (opacityscale[i][0] === ratio) return opacityscale[i][1];\n if (opacityscale[i][0] > ratio && i > 0) {\n var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0]);\n return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1];\n }\n }\n return 1;\n }\n function genColormap(param, opacityscale) {\n var colors = colormap({\n colormap: param,\n nshades: 256,\n format: \"rgba\"\n });\n var result = new Uint8Array(256 * 4);\n for (var i = 0; i < 256; ++i) {\n var c = colors[i];\n for (var j = 0; j < 3; ++j) {\n result[4 * i + j] = c[j];\n }\n if (!opacityscale) {\n result[4 * i + 3] = 255 * c[3];\n } else {\n result[4 * i + 3] = 255 * getOpacityFromScale(i / 255, opacityscale);\n }\n }\n return ndarray(result, [256, 256, 4], [4, 0, 1]);\n }\n function takeZComponent(array) {\n var n = array.length;\n var result = new Array(n);\n for (var i = 0; i < n; ++i) {\n result[i] = array[i][2];\n }\n return result;\n }\n proto.highlight = function(selection) {\n if (!selection || !this.contourEnable) {\n this.contourCount = 0;\n return;\n }\n var level = getContour(this.cells, this.intensity, selection.intensity);\n var cells = level.cells;\n var vertexIds = level.vertexIds;\n var vertexWeights = level.vertexWeights;\n var numCells = cells.length;\n var result = pool.mallocFloat32(2 * 3 * numCells);\n var ptr = 0;\n for (var i = 0; i < numCells; ++i) {\n var c = cells[i];\n for (var j = 0; j < 2; ++j) {\n var v = c[0];\n if (c.length === 2) {\n v = c[j];\n }\n var a = vertexIds[v][0];\n var b = vertexIds[v][1];\n var w = vertexWeights[v];\n var wi = 1 - w;\n var pa = this.positions[a];\n var pb = this.positions[b];\n for (var k = 0; k < 3; ++k) {\n result[ptr++] = w * pa[k] + wi * pb[k];\n }\n }\n }\n this.contourCount = ptr / 3 | 0;\n this.contourPositions.update(result.subarray(0, ptr));\n pool.free(result);\n };\n proto.update = function(params) {\n params = params || {};\n var gl2 = this.gl;\n this.dirty = true;\n if (\"contourEnable\" in params) {\n this.contourEnable = params.contourEnable;\n }\n if (\"contourColor\" in params) {\n this.contourColor = params.contourColor;\n }\n if (\"lineWidth\" in params) {\n this.lineWidth = params.lineWidth;\n }\n if (\"lightPosition\" in params) {\n this.lightPosition = params.lightPosition;\n }\n this.hasAlpha = false;\n if (\"opacity\" in params) {\n this.opacity = params.opacity;\n if (this.opacity < 1) {\n this.hasAlpha = true;\n }\n }\n if (\"opacityscale\" in params) {\n this.opacityscale = params.opacityscale;\n this.hasAlpha = true;\n }\n if (\"ambient\" in params) {\n this.ambientLight = params.ambient;\n }\n if (\"diffuse\" in params) {\n this.diffuseLight = params.diffuse;\n }\n if (\"specular\" in params) {\n this.specularLight = params.specular;\n }\n if (\"roughness\" in params) {\n this.roughness = params.roughness;\n }\n if (\"fresnel\" in params) {\n this.fresnel = params.fresnel;\n }\n if (params.texture) {\n this.texture.dispose();\n this.texture = createTexture(gl2, params.texture);\n } else if (params.colormap) {\n this.texture.shape = [256, 256];\n this.texture.minFilter = gl2.LINEAR_MIPMAP_LINEAR;\n this.texture.magFilter = gl2.LINEAR;\n this.texture.setPixels(genColormap(params.colormap, this.opacityscale));\n this.texture.generateMipmap();\n }\n var cells = params.cells;\n var positions = params.positions;\n if (!positions || !cells) {\n return;\n }\n var tPos = [];\n var tCol = [];\n var tNor = [];\n var tUVs = [];\n var tIds = [];\n var ePos = [];\n var eCol = [];\n var eUVs = [];\n var eIds = [];\n var pPos = [];\n var pCol = [];\n var pUVs = [];\n var pSiz = [];\n var pIds = [];\n this.cells = cells;\n this.positions = positions;\n var vertexNormals = params.vertexNormals;\n var cellNormals = params.cellNormals;\n var vertexNormalsEpsilon = params.vertexNormalsEpsilon === void 0 ? DEFAULT_VERTEX_NORMALS_EPSILON : params.vertexNormalsEpsilon;\n var faceNormalsEpsilon = params.faceNormalsEpsilon === void 0 ? DEFAULT_FACE_NORMALS_EPSILON : params.faceNormalsEpsilon;\n if (params.useFacetNormals && !cellNormals) {\n cellNormals = normals.faceNormals(cells, positions, faceNormalsEpsilon);\n }\n if (!cellNormals && !vertexNormals) {\n vertexNormals = normals.vertexNormals(cells, positions, vertexNormalsEpsilon);\n }\n var vertexColors = params.vertexColors;\n var cellColors = params.cellColors;\n var meshColor = params.meshColor || [1, 1, 1, 1];\n var vertexUVs = params.vertexUVs;\n var vertexIntensity = params.vertexIntensity;\n var cellUVs = params.cellUVs;\n var cellIntensity = params.cellIntensity;\n var intensityLo = Infinity;\n var intensityHi = -Infinity;\n if (!vertexUVs && !cellUVs) {\n if (vertexIntensity) {\n if (params.vertexIntensityBounds) {\n intensityLo = +params.vertexIntensityBounds[0];\n intensityHi = +params.vertexIntensityBounds[1];\n } else {\n for (var i = 0; i < vertexIntensity.length; ++i) {\n var f = vertexIntensity[i];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n } else if (cellIntensity) {\n if (params.cellIntensityBounds) {\n intensityLo = +params.cellIntensityBounds[0];\n intensityHi = +params.cellIntensityBounds[1];\n } else {\n for (var i = 0; i < cellIntensity.length; ++i) {\n var f = cellIntensity[i];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n } else {\n for (var i = 0; i < positions.length; ++i) {\n var f = positions[i][2];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n }\n if (vertexIntensity) {\n this.intensity = vertexIntensity;\n } else if (cellIntensity) {\n this.intensity = cellIntensity;\n } else {\n this.intensity = takeZComponent(positions);\n }\n this.pickVertex = !(cellIntensity || cellColors);\n var pointSizes = params.pointSizes;\n var meshPointSize = params.pointSize || 1;\n this.bounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];\n for (var i = 0; i < positions.length; ++i) {\n var p = positions[i];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(p[j]) || !isFinite(p[j])) {\n continue;\n }\n this.bounds[0][j] = Math.min(this.bounds[0][j], p[j]);\n this.bounds[1][j] = Math.max(this.bounds[1][j], p[j]);\n }\n }\n var triangleCount = 0;\n var edgeCount = 0;\n var pointCount = 0;\n fill_loop:\n for (var i = 0; i < cells.length; ++i) {\n var cell = cells[i];\n switch (cell.length) {\n case 1:\n var v = cell[0];\n var p = positions[v];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(p[j]) || !isFinite(p[j])) {\n continue fill_loop;\n }\n }\n pPos.push(p[0], p[1], p[2]);\n var c;\n if (vertexColors) {\n c = vertexColors[v];\n } else if (cellColors) {\n c = cellColors[i];\n } else {\n c = meshColor;\n }\n if (this.opacityscale && vertexIntensity) {\n tCol.push(\n c[0],\n c[1],\n c[2],\n this.opacity * getOpacityFromScale(\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n this.opacityscale\n )\n );\n } else if (c.length === 3) {\n pCol.push(c[0], c[1], c[2], this.opacity);\n } else {\n pCol.push(c[0], c[1], c[2], c[3] * this.opacity);\n if (c[3] < 1) this.hasAlpha = true;\n }\n var uv;\n if (vertexUVs) {\n uv = vertexUVs[v];\n } else if (vertexIntensity) {\n uv = [\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else if (cellUVs) {\n uv = cellUVs[i];\n } else if (cellIntensity) {\n uv = [\n (cellIntensity[i] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else {\n uv = [\n (p[2] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n }\n pUVs.push(uv[0], uv[1]);\n if (pointSizes) {\n pSiz.push(pointSizes[v]);\n } else {\n pSiz.push(meshPointSize);\n }\n pIds.push(i);\n pointCount += 1;\n break;\n case 2:\n for (var j = 0; j < 2; ++j) {\n var v = cell[j];\n var p = positions[v];\n for (var k = 0; k < 3; ++k) {\n if (isNaN(p[k]) || !isFinite(p[k])) {\n continue fill_loop;\n }\n }\n }\n for (var j = 0; j < 2; ++j) {\n var v = cell[j];\n var p = positions[v];\n ePos.push(p[0], p[1], p[2]);\n var c;\n if (vertexColors) {\n c = vertexColors[v];\n } else if (cellColors) {\n c = cellColors[i];\n } else {\n c = meshColor;\n }\n if (this.opacityscale && vertexIntensity) {\n tCol.push(\n c[0],\n c[1],\n c[2],\n this.opacity * getOpacityFromScale(\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n this.opacityscale\n )\n );\n } else if (c.length === 3) {\n eCol.push(c[0], c[1], c[2], this.opacity);\n } else {\n eCol.push(c[0], c[1], c[2], c[3] * this.opacity);\n if (c[3] < 1) this.hasAlpha = true;\n }\n var uv;\n if (vertexUVs) {\n uv = vertexUVs[v];\n } else if (vertexIntensity) {\n uv = [\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else if (cellUVs) {\n uv = cellUVs[i];\n } else if (cellIntensity) {\n uv = [\n (cellIntensity[i] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else {\n uv = [\n (p[2] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n }\n eUVs.push(uv[0], uv[1]);\n eIds.push(i);\n }\n edgeCount += 1;\n break;\n case 3:\n for (var j = 0; j < 3; ++j) {\n var v = cell[j];\n var p = positions[v];\n for (var k = 0; k < 3; ++k) {\n if (isNaN(p[k]) || !isFinite(p[k])) {\n continue fill_loop;\n }\n }\n }\n for (var j = 0; j < 3; ++j) {\n var v = cell[2 - j];\n var p = positions[v];\n tPos.push(p[0], p[1], p[2]);\n var c;\n if (vertexColors) {\n c = vertexColors[v];\n } else if (cellColors) {\n c = cellColors[i];\n } else {\n c = meshColor;\n }\n if (!c) {\n tCol.push(0.5, 0.5, 0.5, 1);\n } else if (this.opacityscale && vertexIntensity) {\n tCol.push(\n c[0],\n c[1],\n c[2],\n this.opacity * getOpacityFromScale(\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n this.opacityscale\n )\n );\n } else if (c.length === 3) {\n tCol.push(c[0], c[1], c[2], this.opacity);\n } else {\n tCol.push(c[0], c[1], c[2], c[3] * this.opacity);\n if (c[3] < 1) this.hasAlpha = true;\n }\n var uv;\n if (vertexUVs) {\n uv = vertexUVs[v];\n } else if (vertexIntensity) {\n uv = [\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else if (cellUVs) {\n uv = cellUVs[i];\n } else if (cellIntensity) {\n uv = [\n (cellIntensity[i] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else {\n uv = [\n (p[2] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n }\n tUVs.push(uv[0], uv[1]);\n var q;\n if (vertexNormals) {\n q = vertexNormals[v];\n } else {\n q = cellNormals[i];\n }\n tNor.push(q[0], q[1], q[2]);\n tIds.push(i);\n }\n triangleCount += 1;\n break;\n default:\n break;\n }\n }\n this.pointCount = pointCount;\n this.edgeCount = edgeCount;\n this.triangleCount = triangleCount;\n this.pointPositions.update(pPos);\n this.pointColors.update(pCol);\n this.pointUVs.update(pUVs);\n this.pointSizes.update(pSiz);\n this.pointIds.update(new Uint32Array(pIds));\n this.edgePositions.update(ePos);\n this.edgeColors.update(eCol);\n this.edgeUVs.update(eUVs);\n this.edgeIds.update(new Uint32Array(eIds));\n this.trianglePositions.update(tPos);\n this.triangleColors.update(tCol);\n this.triangleUVs.update(tUVs);\n this.triangleNormals.update(tNor);\n this.triangleIds.update(new Uint32Array(tIds));\n };\n proto.drawTransparent = proto.draw = function(params) {\n params = params || {};\n var gl2 = this.gl;\n var model = params.model || IDENTITY;\n var view = params.view || IDENTITY;\n var projection = params.projection || IDENTITY;\n var clipBounds = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]);\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]);\n }\n var uniforms = {\n model,\n view,\n projection,\n inverseModel: IDENTITY.slice(),\n clipBounds,\n kambient: this.ambientLight,\n kdiffuse: this.diffuseLight,\n kspecular: this.specularLight,\n roughness: this.roughness,\n fresnel: this.fresnel,\n eyePosition: [0, 0, 0],\n lightPosition: [0, 0, 0],\n contourColor: this.contourColor,\n texture: 0\n };\n uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model);\n gl2.disable(gl2.CULL_FACE);\n this.texture.bind(0);\n var invCameraMatrix = new Array(16);\n multiply(invCameraMatrix, uniforms.view, uniforms.model);\n multiply(invCameraMatrix, uniforms.projection, invCameraMatrix);\n invert(invCameraMatrix, invCameraMatrix);\n for (var i = 0; i < 3; ++i) {\n uniforms.eyePosition[i] = invCameraMatrix[12 + i] / invCameraMatrix[15];\n }\n var w = invCameraMatrix[15];\n for (var i = 0; i < 3; ++i) {\n w += this.lightPosition[i] * invCameraMatrix[4 * i + 3];\n }\n for (var i = 0; i < 3; ++i) {\n var s = invCameraMatrix[12 + i];\n for (var j = 0; j < 3; ++j) {\n s += invCameraMatrix[4 * j + i] * this.lightPosition[j];\n }\n uniforms.lightPosition[i] = s / w;\n }\n if (this.triangleCount > 0) {\n var shader = this.triShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, this.triangleCount * 3);\n this.triangleVAO.unbind();\n }\n if (this.edgeCount > 0 && this.lineWidth > 0) {\n var shader = this.lineShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.edgeVAO.bind();\n gl2.lineWidth(this.lineWidth * this.pixelRatio);\n gl2.drawArrays(gl2.LINES, 0, this.edgeCount * 2);\n this.edgeVAO.unbind();\n }\n if (this.pointCount > 0) {\n var shader = this.pointShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.pointVAO.bind();\n gl2.drawArrays(gl2.POINTS, 0, this.pointCount);\n this.pointVAO.unbind();\n }\n if (this.contourEnable && this.contourCount > 0 && this.contourLineWidth > 0) {\n var shader = this.contourShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.contourVAO.bind();\n gl2.drawArrays(gl2.LINES, 0, this.contourCount);\n this.contourVAO.unbind();\n }\n };\n proto.drawPick = function(params) {\n params = params || {};\n var gl2 = this.gl;\n var model = params.model || IDENTITY;\n var view = params.view || IDENTITY;\n var projection = params.projection || IDENTITY;\n var clipBounds = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]);\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]);\n }\n this._model = [].slice.call(model);\n this._view = [].slice.call(view);\n this._projection = [].slice.call(projection);\n this._resolution = [gl2.drawingBufferWidth, gl2.drawingBufferHeight];\n var uniforms = {\n model,\n view,\n projection,\n clipBounds,\n pickId: this.pickId / 255\n };\n var shader = this.pickShader;\n shader.bind();\n shader.uniforms = uniforms;\n if (this.triangleCount > 0) {\n this.triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, this.triangleCount * 3);\n this.triangleVAO.unbind();\n }\n if (this.edgeCount > 0) {\n this.edgeVAO.bind();\n gl2.lineWidth(this.lineWidth * this.pixelRatio);\n gl2.drawArrays(gl2.LINES, 0, this.edgeCount * 2);\n this.edgeVAO.unbind();\n }\n if (this.pointCount > 0) {\n var shader = this.pointPickShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.pointVAO.bind();\n gl2.drawArrays(gl2.POINTS, 0, this.pointCount);\n this.pointVAO.unbind();\n }\n };\n proto.pick = function(pickData) {\n if (!pickData) {\n return null;\n }\n if (pickData.id !== this.pickId) {\n return null;\n }\n var cellId = pickData.value[0] + 256 * pickData.value[1] + 65536 * pickData.value[2];\n var cell = this.cells[cellId];\n var positions = this.positions;\n var simplex = new Array(cell.length);\n for (var i = 0; i < cell.length; ++i) {\n simplex[i] = positions[cell[i]];\n }\n var x = pickData.coord[0];\n var y = pickData.coord[1];\n if (!this.pickVertex) {\n var A2 = this.positions[cell[0]];\n var B2 = this.positions[cell[1]];\n var C2 = this.positions[cell[2]];\n var dataCoordinate = [\n (A2[0] + B2[0] + C2[0]) / 3,\n (A2[1] + B2[1] + C2[1]) / 3,\n (A2[2] + B2[2] + C2[2]) / 3\n ];\n return {\n _cellCenter: true,\n position: [x, y],\n index: cellId,\n cell,\n cellId,\n intensity: this.intensity[cellId],\n dataCoordinate\n };\n }\n var data = closestPoint(\n simplex,\n [x * this.pixelRatio, this._resolution[1] - y * this.pixelRatio],\n this._model,\n this._view,\n this._projection,\n this._resolution\n );\n if (!data) {\n return null;\n }\n var weights = data[2];\n var interpIntensity = 0;\n for (var i = 0; i < cell.length; ++i) {\n interpIntensity += weights[i] * this.intensity[cell[i]];\n }\n return {\n position: data[1],\n index: cell[data[0]],\n cell,\n cellId,\n intensity: interpIntensity,\n dataCoordinate: this.positions[cell[data[0]]]\n };\n };\n proto.dispose = function() {\n this.texture.dispose();\n this.triShader.dispose();\n this.lineShader.dispose();\n this.pointShader.dispose();\n this.pickShader.dispose();\n this.pointPickShader.dispose();\n this.triangleVAO.dispose();\n this.trianglePositions.dispose();\n this.triangleColors.dispose();\n this.triangleUVs.dispose();\n this.triangleNormals.dispose();\n this.triangleIds.dispose();\n this.edgeVAO.dispose();\n this.edgePositions.dispose();\n this.edgeColors.dispose();\n this.edgeUVs.dispose();\n this.edgeIds.dispose();\n this.pointVAO.dispose();\n this.pointPositions.dispose();\n this.pointColors.dispose();\n this.pointUVs.dispose();\n this.pointSizes.dispose();\n this.pointIds.dispose();\n this.contourVAO.dispose();\n this.contourPositions.dispose();\n this.contourShader.dispose();\n };\n function createMeshShader(gl2) {\n var shader = createShader(gl2, meshShader.vertex, meshShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 2;\n shader.attributes.uv.location = 3;\n shader.attributes.normal.location = 4;\n return shader;\n }\n function createWireShader(gl2) {\n var shader = createShader(gl2, wireShader.vertex, wireShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 2;\n shader.attributes.uv.location = 3;\n return shader;\n }\n function createPointShader(gl2) {\n var shader = createShader(gl2, pointShader.vertex, pointShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 2;\n shader.attributes.uv.location = 3;\n shader.attributes.pointSize.location = 4;\n return shader;\n }\n function createPickShader(gl2) {\n var shader = createShader(gl2, pickShader.vertex, pickShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.id.location = 1;\n return shader;\n }\n function createPointPickShader(gl2) {\n var shader = createShader(gl2, pointPickShader.vertex, pointPickShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.id.location = 1;\n shader.attributes.pointSize.location = 4;\n return shader;\n }\n function createContourShader(gl2) {\n var shader = createShader(gl2, contourShader.vertex, contourShader.fragment);\n shader.attributes.position.location = 0;\n return shader;\n }\n function createSimplicialMesh(gl2, params) {\n if (arguments.length === 1) {\n params = gl2;\n gl2 = params.gl;\n }\n var ext = gl2.getExtension(\"OES_standard_derivatives\") || gl2.getExtension(\"MOZ_OES_standard_derivatives\") || gl2.getExtension(\"WEBKIT_OES_standard_derivatives\");\n if (!ext)\n throw new Error(\"derivatives not supported\");\n var triShader = createMeshShader(gl2);\n var lineShader = createWireShader(gl2);\n var pointShader2 = createPointShader(gl2);\n var pickShader2 = createPickShader(gl2);\n var pointPickShader2 = createPointPickShader(gl2);\n var contourShader2 = createContourShader(gl2);\n var meshTexture = createTexture(\n gl2,\n ndarray(new Uint8Array([255, 255, 255, 255]), [1, 1, 4])\n );\n meshTexture.generateMipmap();\n meshTexture.minFilter = gl2.LINEAR_MIPMAP_LINEAR;\n meshTexture.magFilter = gl2.LINEAR;\n var trianglePositions = createBuffer(gl2);\n var triangleColors = createBuffer(gl2);\n var triangleUVs = createBuffer(gl2);\n var triangleNormals = createBuffer(gl2);\n var triangleIds = createBuffer(gl2);\n var triangleVAO = createVAO(gl2, [\n {\n buffer: trianglePositions,\n type: gl2.FLOAT,\n size: 3\n },\n {\n buffer: triangleIds,\n type: gl2.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n {\n buffer: triangleColors,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: triangleUVs,\n type: gl2.FLOAT,\n size: 2\n },\n {\n buffer: triangleNormals,\n type: gl2.FLOAT,\n size: 3\n }\n ]);\n var edgePositions = createBuffer(gl2);\n var edgeColors = createBuffer(gl2);\n var edgeUVs = createBuffer(gl2);\n var edgeIds = createBuffer(gl2);\n var edgeVAO = createVAO(gl2, [\n {\n buffer: edgePositions,\n type: gl2.FLOAT,\n size: 3\n },\n {\n buffer: edgeIds,\n type: gl2.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n {\n buffer: edgeColors,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: edgeUVs,\n type: gl2.FLOAT,\n size: 2\n }\n ]);\n var pointPositions = createBuffer(gl2);\n var pointColors = createBuffer(gl2);\n var pointUVs = createBuffer(gl2);\n var pointSizes = createBuffer(gl2);\n var pointIds = createBuffer(gl2);\n var pointVAO = createVAO(gl2, [\n {\n buffer: pointPositions,\n type: gl2.FLOAT,\n size: 3\n },\n {\n buffer: pointIds,\n type: gl2.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n {\n buffer: pointColors,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: pointUVs,\n type: gl2.FLOAT,\n size: 2\n },\n {\n buffer: pointSizes,\n type: gl2.FLOAT,\n size: 1\n }\n ]);\n var contourPositions = createBuffer(gl2);\n var contourVAO = createVAO(gl2, [\n {\n buffer: contourPositions,\n type: gl2.FLOAT,\n size: 3\n }\n ]);\n var mesh = new SimplicialMesh(\n gl2,\n meshTexture,\n triShader,\n lineShader,\n pointShader2,\n pickShader2,\n pointPickShader2,\n contourShader2,\n trianglePositions,\n triangleIds,\n triangleColors,\n triangleUVs,\n triangleNormals,\n triangleVAO,\n edgePositions,\n edgeIds,\n edgeColors,\n edgeUVs,\n edgeVAO,\n pointPositions,\n pointIds,\n pointColors,\n pointUVs,\n pointSizes,\n pointVAO,\n contourPositions,\n contourVAO\n );\n mesh.update(params);\n return mesh;\n }\n module2.exports = createSimplicialMesh;\n }\n ),\n /***/\n 4437: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createCamera;\n var now = __webpack_require__2(3025);\n var createView = __webpack_require__2(6296);\n var mouseChange = __webpack_require__2(351);\n var mouseWheel = __webpack_require__2(8512);\n var mouseOffset = __webpack_require__2(24);\n var hasPassive = __webpack_require__2(7520);\n function createCamera(element, options) {\n element = element || document.body;\n options = options || {};\n var limits = [0.01, Infinity];\n if (\"distanceLimits\" in options) {\n limits[0] = options.distanceLimits[0];\n limits[1] = options.distanceLimits[1];\n }\n if (\"zoomMin\" in options) {\n limits[0] = options.zoomMin;\n }\n if (\"zoomMax\" in options) {\n limits[1] = options.zoomMax;\n }\n var view = createView({\n center: options.center || [0, 0, 0],\n up: options.up || [0, 1, 0],\n eye: options.eye || [0, 0, 10],\n mode: options.mode || \"orbit\",\n distanceLimits: limits\n });\n var pmatrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n var distance = 0;\n var width = element.clientWidth;\n var height = element.clientHeight;\n var camera = {\n keyBindingMode: \"rotate\",\n enableWheel: true,\n view,\n element,\n delay: options.delay || 16,\n rotateSpeed: options.rotateSpeed || 1,\n zoomSpeed: options.zoomSpeed || 1,\n translateSpeed: options.translateSpeed || 1,\n flipX: !!options.flipX,\n flipY: !!options.flipY,\n modes: view.modes,\n _ortho: options._ortho || options.projection && options.projection.type === \"orthographic\" || false,\n tick: function() {\n var t = now();\n var delay = this.delay;\n var ctime = t - 2 * delay;\n view.idle(t - delay);\n view.recalcMatrix(ctime);\n view.flush(t - (100 + delay * 2));\n var allEqual = true;\n var matrix = view.computedMatrix;\n for (var i = 0; i < 16; ++i) {\n allEqual = allEqual && pmatrix[i] === matrix[i];\n pmatrix[i] = matrix[i];\n }\n var sizeChanged = element.clientWidth === width && element.clientHeight === height;\n width = element.clientWidth;\n height = element.clientHeight;\n if (allEqual) {\n return !sizeChanged;\n }\n distance = Math.exp(view.computedRadius[0]);\n return true;\n },\n lookAt: function(eye, center, up) {\n view.lookAt(view.lastT(), eye, center, up);\n },\n rotate: function(pitch, yaw, roll) {\n view.rotate(view.lastT(), pitch, yaw, roll);\n },\n pan: function(dx, dy, dz) {\n view.pan(view.lastT(), dx, dy, dz);\n },\n translate: function(dx, dy, dz) {\n view.translate(view.lastT(), dx, dy, dz);\n }\n };\n Object.defineProperties(camera, {\n matrix: {\n get: function() {\n return view.computedMatrix;\n },\n set: function(mat) {\n view.setMatrix(view.lastT(), mat);\n return view.computedMatrix;\n },\n enumerable: true\n },\n mode: {\n get: function() {\n return view.getMode();\n },\n set: function(mode) {\n var curUp = view.computedUp.slice();\n var curEye = view.computedEye.slice();\n var curCenter = view.computedCenter.slice();\n view.setMode(mode);\n if (mode === \"turntable\") {\n var t02 = now();\n view._active.lookAt(t02, curEye, curCenter, curUp);\n view._active.lookAt(t02 + 500, curEye, curCenter, [0, 0, 1]);\n view._active.flush(t02);\n }\n return view.getMode();\n },\n enumerable: true\n },\n center: {\n get: function() {\n return view.computedCenter;\n },\n set: function(ncenter) {\n view.lookAt(view.lastT(), null, ncenter);\n return view.computedCenter;\n },\n enumerable: true\n },\n eye: {\n get: function() {\n return view.computedEye;\n },\n set: function(neye) {\n view.lookAt(view.lastT(), neye);\n return view.computedEye;\n },\n enumerable: true\n },\n up: {\n get: function() {\n return view.computedUp;\n },\n set: function(nup) {\n view.lookAt(view.lastT(), null, null, nup);\n return view.computedUp;\n },\n enumerable: true\n },\n distance: {\n get: function() {\n return distance;\n },\n set: function(d) {\n view.setDistance(view.lastT(), d);\n return d;\n },\n enumerable: true\n },\n distanceLimits: {\n get: function() {\n return view.getDistanceLimits(limits);\n },\n set: function(v) {\n view.setDistanceLimits(v);\n return v;\n },\n enumerable: true\n }\n });\n element.addEventListener(\"contextmenu\", function(ev) {\n ev.preventDefault();\n return false;\n });\n camera._lastX = -1;\n camera._lastY = -1;\n camera._lastMods = { shift: false, control: false, alt: false, meta: false };\n camera.enableMouseListeners = function() {\n camera.mouseListener = mouseChange(element, handleInteraction);\n element.addEventListener(\"touchstart\", function(ev) {\n var xy = mouseOffset(ev.changedTouches[0], element);\n handleInteraction(0, xy[0], xy[1], camera._lastMods);\n handleInteraction(1, xy[0], xy[1], camera._lastMods);\n }, hasPassive ? { passive: true } : false);\n element.addEventListener(\"touchmove\", function(ev) {\n var xy = mouseOffset(ev.changedTouches[0], element);\n handleInteraction(1, xy[0], xy[1], camera._lastMods);\n ev.preventDefault();\n }, hasPassive ? { passive: false } : false);\n element.addEventListener(\"touchend\", function(ev) {\n handleInteraction(0, camera._lastX, camera._lastY, camera._lastMods);\n }, hasPassive ? { passive: true } : false);\n function handleInteraction(buttons, x, y, mods) {\n var keyBindingMode = camera.keyBindingMode;\n if (keyBindingMode === false) return;\n var rotate = keyBindingMode === \"rotate\";\n var pan = keyBindingMode === \"pan\";\n var zoom = keyBindingMode === \"zoom\";\n var ctrl = !!mods.control;\n var alt = !!mods.alt;\n var shift = !!mods.shift;\n var left = !!(buttons & 1);\n var right = !!(buttons & 2);\n var middle = !!(buttons & 4);\n var scale = 1 / element.clientHeight;\n var dx = scale * (x - camera._lastX);\n var dy = scale * (y - camera._lastY);\n var flipX = camera.flipX ? 1 : -1;\n var flipY = camera.flipY ? 1 : -1;\n var drot = Math.PI * camera.rotateSpeed;\n var t = now();\n if (camera._lastX !== -1 && camera._lastY !== -1) {\n if (rotate && left && !ctrl && !alt && !shift || left && !ctrl && !alt && shift) {\n view.rotate(t, flipX * drot * dx, -flipY * drot * dy, 0);\n }\n if (pan && left && !ctrl && !alt && !shift || right || left && ctrl && !alt && !shift) {\n view.pan(t, -camera.translateSpeed * dx * distance, camera.translateSpeed * dy * distance, 0);\n }\n if (zoom && left && !ctrl && !alt && !shift || middle || left && !ctrl && alt && !shift) {\n var kzoom = -camera.zoomSpeed * dy / window.innerHeight * (t - view.lastT()) * 100;\n view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1));\n }\n }\n camera._lastX = x;\n camera._lastY = y;\n camera._lastMods = mods;\n return true;\n }\n camera.wheelListener = mouseWheel(element, function(dx, dy) {\n if (camera.keyBindingMode === false) return;\n if (!camera.enableWheel) return;\n var flipX = camera.flipX ? 1 : -1;\n var flipY = camera.flipY ? 1 : -1;\n var t = now();\n if (Math.abs(dx) > Math.abs(dy)) {\n view.rotate(t, 0, 0, -dx * flipX * Math.PI * camera.rotateSpeed / window.innerWidth);\n } else {\n if (!camera._ortho) {\n var kzoom = -camera.zoomSpeed * flipY * dy / window.innerHeight * (t - view.lastT()) / 20;\n view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1));\n }\n }\n }, true);\n };\n camera.enableMouseListeners();\n return camera;\n }\n }\n ),\n /***/\n 799: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var vertSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\nattribute vec2 position;\\nvarying vec2 uv;\\nvoid main() {\\n uv = position;\\n gl_Position = vec4(position, 0, 1);\\n}\"]);\n var fragSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D accumBuffer;\\nvarying vec2 uv;\\n\\nvoid main() {\\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\\n gl_FragColor = min(vec4(1,1,1,1), accum);\\n}\"]);\n module2.exports = function(gl2) {\n return createShader(gl2, vertSrc, fragSrc, null, [{ name: \"position\", type: \"vec2\" }]);\n };\n }\n ),\n /***/\n 4100: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createCamera = __webpack_require__2(4437);\n var createAxes = __webpack_require__2(3837);\n var axesRanges = __webpack_require__2(5445);\n var createSpikes = __webpack_require__2(4449);\n var createSelect = __webpack_require__2(3589);\n var createFBO = __webpack_require__2(2260);\n var drawTriangle = __webpack_require__2(7169);\n var mouseChange = __webpack_require__2(351);\n var perspective = __webpack_require__2(4772);\n var ortho = __webpack_require__2(4040);\n var createShader = __webpack_require__2(799);\n var isMobile = __webpack_require__2(9216)({ tablet: true, featureDetect: true });\n module2.exports = {\n createScene,\n createCamera\n };\n function MouseSelect() {\n this.mouse = [-1, -1];\n this.screen = null;\n this.distance = Infinity;\n this.index = null;\n this.dataCoordinate = null;\n this.dataPosition = null;\n this.object = null;\n this.data = null;\n }\n function getContext(canvas, options) {\n var gl2 = null;\n try {\n gl2 = canvas.getContext(\"webgl\", options);\n if (!gl2) {\n gl2 = canvas.getContext(\"experimental-webgl\", options);\n }\n } catch (e) {\n return null;\n }\n return gl2;\n }\n function roundUpPow10(x) {\n var y = Math.round(Math.log(Math.abs(x)) / Math.log(10));\n if (y < 0) {\n var base = Math.round(Math.pow(10, -y));\n return Math.ceil(x * base) / base;\n } else if (y > 0) {\n var base = Math.round(Math.pow(10, y));\n return Math.ceil(x / base) * base;\n }\n return Math.ceil(x);\n }\n function defaultBool(x) {\n if (typeof x === \"boolean\") {\n return x;\n }\n return true;\n }\n function createScene(options) {\n options = options || {};\n options.camera = options.camera || {};\n var canvas = options.canvas;\n if (!canvas) {\n canvas = document.createElement(\"canvas\");\n if (options.container) {\n var container = options.container;\n container.appendChild(canvas);\n } else {\n document.body.appendChild(canvas);\n }\n }\n var gl2 = options.gl;\n if (!gl2) {\n if (options.glOptions) {\n isMobile = !!options.glOptions.preserveDrawingBuffer;\n }\n gl2 = getContext(\n canvas,\n options.glOptions || {\n premultipliedAlpha: true,\n antialias: true,\n preserveDrawingBuffer: isMobile\n }\n );\n }\n if (!gl2) {\n throw new Error(\"webgl not supported\");\n }\n var bounds = options.bounds || [[-10, -10, -10], [10, 10, 10]];\n var selection = new MouseSelect();\n var accumBuffer = createFBO(\n gl2,\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight,\n {\n preferFloat: !isMobile\n }\n );\n var accumShader = createShader(gl2);\n var isOrtho = options.cameraObject && options.cameraObject._ortho === true || options.camera.projection && options.camera.projection.type === \"orthographic\" || false;\n var cameraOptions = {\n eye: options.camera.eye || [2, 0, 0],\n center: options.camera.center || [0, 0, 0],\n up: options.camera.up || [0, 1, 0],\n zoomMin: options.camera.zoomMax || 0.1,\n zoomMax: options.camera.zoomMin || 100,\n mode: options.camera.mode || \"turntable\",\n _ortho: isOrtho\n };\n var axesOptions = options.axes || {};\n var axes = createAxes(gl2, axesOptions);\n axes.enable = !axesOptions.disable;\n var spikeOptions = options.spikes || {};\n var spikes = createSpikes(gl2, spikeOptions);\n var objects = [];\n var pickBufferIds = [];\n var pickBufferCount = [];\n var pickBuffers = [];\n var dirty = true;\n var pickDirty = true;\n var projection = new Array(16);\n var model = new Array(16);\n var cameraParams = {\n view: null,\n projection,\n model,\n _ortho: false\n };\n var pickDirty = true;\n var viewShape = [gl2.drawingBufferWidth, gl2.drawingBufferHeight];\n var camera = options.cameraObject || createCamera(canvas, cameraOptions);\n var scene = {\n gl: gl2,\n contextLost: false,\n pixelRatio: options.pixelRatio || 1,\n canvas,\n selection,\n camera,\n axes,\n axesPixels: null,\n spikes,\n bounds,\n objects,\n shape: viewShape,\n aspect: options.aspectRatio || [1, 1, 1],\n pickRadius: options.pickRadius || 10,\n zNear: options.zNear || 0.01,\n zFar: options.zFar || 1e3,\n fovy: options.fovy || Math.PI / 4,\n clearColor: options.clearColor || [0, 0, 0, 0],\n autoResize: defaultBool(options.autoResize),\n autoBounds: defaultBool(options.autoBounds),\n autoScale: !!options.autoScale,\n autoCenter: defaultBool(options.autoCenter),\n clipToBounds: defaultBool(options.clipToBounds),\n snapToData: !!options.snapToData,\n onselect: options.onselect || null,\n onrender: options.onrender || null,\n onclick: options.onclick || null,\n cameraParams,\n oncontextloss: null,\n mouseListener: null,\n _stopped: false,\n getAspectratio: function() {\n return {\n x: this.aspect[0],\n y: this.aspect[1],\n z: this.aspect[2]\n };\n },\n setAspectratio: function(aspectratio) {\n this.aspect[0] = aspectratio.x;\n this.aspect[1] = aspectratio.y;\n this.aspect[2] = aspectratio.z;\n pickDirty = true;\n },\n setBounds: function(axisIndex, range) {\n this.bounds[0][axisIndex] = range.min;\n this.bounds[1][axisIndex] = range.max;\n },\n setClearColor: function(clearColor) {\n this.clearColor = clearColor;\n },\n clearRGBA: function() {\n this.gl.clearColor(\n this.clearColor[0],\n this.clearColor[1],\n this.clearColor[2],\n this.clearColor[3]\n );\n this.gl.clear(\n this.gl.COLOR_BUFFER_BIT | this.gl.DEPTH_BUFFER_BIT\n );\n }\n };\n var pickShape = [gl2.drawingBufferWidth / scene.pixelRatio | 0, gl2.drawingBufferHeight / scene.pixelRatio | 0];\n function resizeListener() {\n if (scene._stopped) {\n return;\n }\n if (!scene.autoResize) {\n return;\n }\n var parent = canvas.parentNode;\n var width = 1;\n var height = 1;\n if (parent && parent !== document.body) {\n width = parent.clientWidth;\n height = parent.clientHeight;\n } else {\n width = window.innerWidth;\n height = window.innerHeight;\n }\n var nextWidth = Math.ceil(width * scene.pixelRatio) | 0;\n var nextHeight = Math.ceil(height * scene.pixelRatio) | 0;\n if (nextWidth !== canvas.width || nextHeight !== canvas.height) {\n canvas.width = nextWidth;\n canvas.height = nextHeight;\n var style = canvas.style;\n style.position = style.position || \"absolute\";\n style.left = \"0px\";\n style.top = \"0px\";\n style.width = width + \"px\";\n style.height = height + \"px\";\n dirty = true;\n }\n }\n if (scene.autoResize) {\n resizeListener();\n }\n window.addEventListener(\"resize\", resizeListener);\n function reallocPickIds() {\n var numObjs = objects.length;\n var numPick = pickBuffers.length;\n for (var i = 0; i < numPick; ++i) {\n pickBufferCount[i] = 0;\n }\n obj_loop:\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n var pickCount = obj.pickSlots;\n if (!pickCount) {\n pickBufferIds[i] = -1;\n continue;\n }\n for (var j = 0; j < numPick; ++j) {\n if (pickBufferCount[j] + pickCount < 255) {\n pickBufferIds[i] = j;\n obj.setPickBase(pickBufferCount[j] + 1);\n pickBufferCount[j] += pickCount;\n continue obj_loop;\n }\n }\n var nbuffer = createSelect(gl2, viewShape);\n pickBufferIds[i] = numPick;\n pickBuffers.push(nbuffer);\n pickBufferCount.push(pickCount);\n obj.setPickBase(1);\n numPick += 1;\n }\n while (numPick > 0 && pickBufferCount[numPick - 1] === 0) {\n pickBufferCount.pop();\n pickBuffers.pop().dispose();\n }\n }\n scene.update = function(options2) {\n if (scene._stopped) {\n return;\n }\n options2 = options2 || {};\n dirty = true;\n pickDirty = true;\n };\n scene.add = function(obj) {\n if (scene._stopped) {\n return;\n }\n obj.axes = axes;\n objects.push(obj);\n pickBufferIds.push(-1);\n dirty = true;\n pickDirty = true;\n reallocPickIds();\n };\n scene.remove = function(obj) {\n if (scene._stopped) {\n return;\n }\n var idx = objects.indexOf(obj);\n if (idx < 0) {\n return;\n }\n objects.splice(idx, 1);\n pickBufferIds.pop();\n dirty = true;\n pickDirty = true;\n reallocPickIds();\n };\n scene.dispose = function() {\n if (scene._stopped) {\n return;\n }\n scene._stopped = true;\n window.removeEventListener(\"resize\", resizeListener);\n canvas.removeEventListener(\"webglcontextlost\", checkContextLoss);\n scene.mouseListener.enabled = false;\n if (scene.contextLost) {\n return;\n }\n axes.dispose();\n spikes.dispose();\n for (var i = 0; i < objects.length; ++i) {\n objects[i].dispose();\n }\n accumBuffer.dispose();\n for (var i = 0; i < pickBuffers.length; ++i) {\n pickBuffers[i].dispose();\n }\n accumShader.dispose();\n gl2 = null;\n axes = null;\n spikes = null;\n objects = [];\n };\n scene._mouseRotating = false;\n scene._prevButtons = 0;\n scene.enableMouseListeners = function() {\n scene.mouseListener = mouseChange(canvas, function(buttons, x, y) {\n if (scene._stopped) {\n return;\n }\n var numPick = pickBuffers.length;\n var numObjs = objects.length;\n var prevObj = selection.object;\n selection.distance = Infinity;\n selection.mouse[0] = x;\n selection.mouse[1] = y;\n selection.object = null;\n selection.screen = null;\n selection.dataCoordinate = selection.dataPosition = null;\n var change = false;\n if (buttons && scene._prevButtons) {\n scene._mouseRotating = true;\n } else {\n if (scene._mouseRotating) {\n pickDirty = true;\n }\n scene._mouseRotating = false;\n for (var i = 0; i < numPick; ++i) {\n var result = pickBuffers[i].query(x, pickShape[1] - y - 1, scene.pickRadius);\n if (result) {\n if (result.distance > selection.distance) {\n continue;\n }\n for (var j = 0; j < numObjs; ++j) {\n var obj = objects[j];\n if (pickBufferIds[j] !== i) {\n continue;\n }\n var objPick = obj.pick(result);\n if (objPick) {\n selection.buttons = buttons;\n selection.screen = result.coord;\n selection.distance = result.distance;\n selection.object = obj;\n selection.index = objPick.distance;\n selection.dataPosition = objPick.position;\n selection.dataCoordinate = objPick.dataCoordinate;\n selection.data = objPick;\n change = true;\n }\n }\n }\n }\n }\n if (prevObj && prevObj !== selection.object) {\n if (prevObj.highlight) {\n prevObj.highlight(null);\n }\n dirty = true;\n }\n if (selection.object) {\n if (selection.object.highlight) {\n selection.object.highlight(selection.data);\n }\n dirty = true;\n }\n change = change || selection.object !== prevObj;\n if (change && scene.onselect) {\n scene.onselect(selection);\n }\n if (buttons & 1 && !(scene._prevButtons & 1) && scene.onclick) {\n scene.onclick(selection);\n }\n scene._prevButtons = buttons;\n });\n };\n function checkContextLoss() {\n if (scene.contextLost) {\n return true;\n }\n if (gl2.isContextLost()) {\n scene.contextLost = true;\n scene.mouseListener.enabled = false;\n scene.selection.object = null;\n if (scene.oncontextloss) {\n scene.oncontextloss();\n }\n }\n }\n canvas.addEventListener(\"webglcontextlost\", checkContextLoss);\n function renderPick() {\n if (checkContextLoss()) {\n return;\n }\n gl2.colorMask(true, true, true, true);\n gl2.depthMask(true);\n gl2.disable(gl2.BLEND);\n gl2.enable(gl2.DEPTH_TEST);\n gl2.depthFunc(gl2.LEQUAL);\n var numObjs = objects.length;\n var numPick = pickBuffers.length;\n for (var j = 0; j < numPick; ++j) {\n var buf = pickBuffers[j];\n buf.shape = pickShape;\n buf.begin();\n for (var i = 0; i < numObjs; ++i) {\n if (pickBufferIds[i] !== j) {\n continue;\n }\n var obj = objects[i];\n if (obj.drawPick) {\n obj.pixelRatio = 1;\n obj.drawPick(cameraParams);\n }\n }\n buf.end();\n }\n }\n var nBounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n var prevBounds = [nBounds[0].slice(), nBounds[1].slice()];\n function redraw() {\n if (checkContextLoss()) {\n return;\n }\n resizeListener();\n var cameraMoved = scene.camera.tick();\n cameraParams.view = scene.camera.matrix;\n dirty = dirty || cameraMoved;\n pickDirty = pickDirty || cameraMoved;\n axes.pixelRatio = scene.pixelRatio;\n spikes.pixelRatio = scene.pixelRatio;\n var numObjs = objects.length;\n var lo = nBounds[0];\n var hi = nBounds[1];\n lo[0] = lo[1] = lo[2] = Infinity;\n hi[0] = hi[1] = hi[2] = -Infinity;\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n obj.pixelRatio = scene.pixelRatio;\n obj.axes = scene.axes;\n dirty = dirty || !!obj.dirty;\n pickDirty = pickDirty || !!obj.dirty;\n var obb = obj.bounds;\n if (obb) {\n var olo = obb[0];\n var ohi = obb[1];\n for (var j = 0; j < 3; ++j) {\n lo[j] = Math.min(lo[j], olo[j]);\n hi[j] = Math.max(hi[j], ohi[j]);\n }\n }\n }\n var bounds2 = scene.bounds;\n if (scene.autoBounds) {\n for (var j = 0; j < 3; ++j) {\n if (hi[j] < lo[j]) {\n lo[j] = -1;\n hi[j] = 1;\n } else {\n if (lo[j] === hi[j]) {\n lo[j] -= 1;\n hi[j] += 1;\n }\n var padding = 0.05 * (hi[j] - lo[j]);\n lo[j] = lo[j] - padding;\n hi[j] = hi[j] + padding;\n }\n bounds2[0][j] = lo[j];\n bounds2[1][j] = hi[j];\n }\n }\n var boundsChanged = false;\n for (var j = 0; j < 3; ++j) {\n boundsChanged = boundsChanged || prevBounds[0][j] !== bounds2[0][j] || prevBounds[1][j] !== bounds2[1][j];\n prevBounds[0][j] = bounds2[0][j];\n prevBounds[1][j] = bounds2[1][j];\n }\n pickDirty = pickDirty || boundsChanged;\n dirty = dirty || boundsChanged;\n if (!dirty) {\n return;\n }\n if (boundsChanged) {\n var tickSpacing = [0, 0, 0];\n for (var i = 0; i < 3; ++i) {\n tickSpacing[i] = roundUpPow10((bounds2[1][i] - bounds2[0][i]) / 10);\n }\n if (axes.autoTicks) {\n axes.update({\n bounds: bounds2,\n tickSpacing\n });\n } else {\n axes.update({\n bounds: bounds2\n });\n }\n }\n var width = gl2.drawingBufferWidth;\n var height = gl2.drawingBufferHeight;\n viewShape[0] = width;\n viewShape[1] = height;\n pickShape[0] = Math.max(width / scene.pixelRatio, 1) | 0;\n pickShape[1] = Math.max(height / scene.pixelRatio, 1) | 0;\n calcCameraParams(scene, isOrtho);\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n obj.axesBounds = bounds2;\n if (scene.clipToBounds) {\n obj.clipBounds = bounds2;\n }\n }\n if (selection.object) {\n if (scene.snapToData) {\n spikes.position = selection.dataCoordinate;\n } else {\n spikes.position = selection.dataPosition;\n }\n spikes.bounds = bounds2;\n }\n if (pickDirty) {\n pickDirty = false;\n renderPick();\n }\n scene.axesPixels = axesRanges(scene.axes, cameraParams, width, height);\n if (scene.onrender) {\n scene.onrender();\n }\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n gl2.viewport(0, 0, width, height);\n scene.clearRGBA();\n gl2.depthMask(true);\n gl2.colorMask(true, true, true, true);\n gl2.enable(gl2.DEPTH_TEST);\n gl2.depthFunc(gl2.LEQUAL);\n gl2.disable(gl2.BLEND);\n gl2.disable(gl2.CULL_FACE);\n var hasTransparent = false;\n if (axes.enable) {\n hasTransparent = hasTransparent || axes.isTransparent();\n axes.draw(cameraParams);\n }\n spikes.axes = axes;\n if (selection.object) {\n spikes.draw(cameraParams);\n }\n gl2.disable(gl2.CULL_FACE);\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n obj.axes = axes;\n obj.pixelRatio = scene.pixelRatio;\n if (obj.isOpaque && obj.isOpaque()) {\n obj.draw(cameraParams);\n }\n if (obj.isTransparent && obj.isTransparent()) {\n hasTransparent = true;\n }\n }\n if (hasTransparent) {\n accumBuffer.shape = viewShape;\n accumBuffer.bind();\n gl2.clear(gl2.DEPTH_BUFFER_BIT);\n gl2.colorMask(false, false, false, false);\n gl2.depthMask(true);\n gl2.depthFunc(gl2.LESS);\n if (axes.enable && axes.isTransparent()) {\n axes.drawTransparent(cameraParams);\n }\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n if (obj.isOpaque && obj.isOpaque()) {\n obj.draw(cameraParams);\n }\n }\n gl2.enable(gl2.BLEND);\n gl2.blendEquation(gl2.FUNC_ADD);\n gl2.blendFunc(gl2.ONE, gl2.ONE_MINUS_SRC_ALPHA);\n gl2.colorMask(true, true, true, true);\n gl2.depthMask(false);\n gl2.clearColor(0, 0, 0, 0);\n gl2.clear(gl2.COLOR_BUFFER_BIT);\n if (axes.isTransparent()) {\n axes.drawTransparent(cameraParams);\n }\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n if (obj.isTransparent && obj.isTransparent()) {\n obj.drawTransparent(cameraParams);\n }\n }\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n gl2.blendFunc(gl2.ONE, gl2.ONE_MINUS_SRC_ALPHA);\n gl2.disable(gl2.DEPTH_TEST);\n accumShader.bind();\n accumBuffer.color[0].bind(0);\n accumShader.uniforms.accumBuffer = 0;\n drawTriangle(gl2);\n gl2.disable(gl2.BLEND);\n }\n dirty = false;\n for (var i = 0; i < numObjs; ++i) {\n objects[i].dirty = false;\n }\n }\n function render() {\n if (scene._stopped || scene.contextLost) {\n return;\n }\n redraw();\n requestAnimationFrame(render);\n }\n scene.enableMouseListeners();\n render();\n scene.redraw = function() {\n if (scene._stopped) {\n return;\n }\n dirty = true;\n redraw();\n };\n return scene;\n }\n function calcCameraParams(scene, isOrtho) {\n var bounds = scene.bounds;\n var cameraParams = scene.cameraParams;\n var projection = cameraParams.projection;\n var model = cameraParams.model;\n var width = scene.gl.drawingBufferWidth;\n var height = scene.gl.drawingBufferHeight;\n var zNear = scene.zNear;\n var zFar = scene.zFar;\n var fovy = scene.fovy;\n var r = width / height;\n if (isOrtho) {\n ortho(\n projection,\n -r,\n r,\n -1,\n 1,\n zNear,\n zFar\n );\n cameraParams._ortho = true;\n } else {\n perspective(\n projection,\n fovy,\n r,\n zNear,\n zFar\n );\n cameraParams._ortho = false;\n }\n for (var i = 0; i < 16; ++i) {\n model[i] = 0;\n }\n model[15] = 1;\n var maxS = 0;\n for (var i = 0; i < 3; ++i) {\n maxS = Math.max(maxS, bounds[1][i] - bounds[0][i]);\n }\n for (var i = 0; i < 3; ++i) {\n if (scene.autoScale) {\n model[5 * i] = scene.aspect[i] / (bounds[1][i] - bounds[0][i]);\n } else {\n model[5 * i] = 1 / maxS;\n }\n if (scene.autoCenter) {\n model[12 + i] = -model[5 * i] * 0.5 * (bounds[0][i] + bounds[1][i]);\n }\n }\n }\n }\n ),\n /***/\n 783: (\n /***/\n function(module2) {\n module2.exports = slerp;\n function slerp(out, a, b, t) {\n var ax = a[0], ay = a[1], az = a[2], aw = a[3], bx = b[0], by = b[1], bz = b[2], bw = b[3];\n var omega, cosom, sinom, scale0, scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n if (cosom < 0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n if (1 - cosom > 1e-6) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1 - t;\n scale1 = t;\n }\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n }\n ),\n /***/\n 5964: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = function(a) {\n return !a && a !== 0 ? \"\" : a.toString();\n };\n }\n ),\n /***/\n 9366: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var vectorizeText = __webpack_require__2(4359);\n module2.exports = getGlyph;\n var GLYPH_CACHE = {};\n function getGlyph(symbol, font, pixelRatio) {\n var fontKey = [\n font.style,\n font.weight,\n font.variant,\n font.family\n ].join(\"_\");\n var fontCache = GLYPH_CACHE[fontKey];\n if (!fontCache) {\n fontCache = GLYPH_CACHE[fontKey] = {};\n }\n if (symbol in fontCache) {\n return fontCache[symbol];\n }\n var config = {\n textAlign: \"center\",\n textBaseline: \"middle\",\n lineHeight: 1,\n font: font.family,\n fontStyle: font.style,\n fontWeight: font.weight,\n fontVariant: font.variant,\n lineSpacing: 1.25,\n styletags: {\n breaklines: true,\n bolds: true,\n italics: true,\n subscripts: true,\n superscripts: true\n }\n };\n config.triangles = true;\n var triSymbol = vectorizeText(symbol, config);\n config.triangles = false;\n var lineSymbol = vectorizeText(symbol, config);\n var i, j;\n if (pixelRatio && pixelRatio !== 1) {\n for (i = 0; i < triSymbol.positions.length; ++i) {\n for (j = 0; j < triSymbol.positions[i].length; ++j) {\n triSymbol.positions[i][j] /= pixelRatio;\n }\n }\n for (i = 0; i < lineSymbol.positions.length; ++i) {\n for (j = 0; j < lineSymbol.positions[i].length; ++j) {\n lineSymbol.positions[i][j] /= pixelRatio;\n }\n }\n }\n var bounds = [[Infinity, Infinity], [-Infinity, -Infinity]];\n var n = lineSymbol.positions.length;\n for (i = 0; i < n; ++i) {\n var p = lineSymbol.positions[i];\n for (j = 0; j < 2; ++j) {\n bounds[0][j] = Math.min(bounds[0][j], p[j]);\n bounds[1][j] = Math.max(bounds[1][j], p[j]);\n }\n }\n return fontCache[symbol] = [triSymbol, lineSymbol, bounds];\n }\n }\n ),\n /***/\n 1283: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var createShaderWrapper = __webpack_require__2(9405);\n var glslify = __webpack_require__2(3236);\n var perspectiveVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform vec4 highlightId;\\nuniform float highlightScale;\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = 1.0;\\n if(distance(highlightId, id) < 0.0001) {\\n scale = highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1);\\n vec4 viewPosition = view * worldPosition;\\n viewPosition = viewPosition / viewPosition.w;\\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"]);\n var orthographicVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float highlightScale, pixelRatio;\\nuniform vec4 highlightId;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = pixelRatio;\\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\\n scale *= highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1.0);\\n vec4 viewPosition = view * worldPosition;\\n vec4 clipPosition = projection * viewPosition;\\n clipPosition /= clipPosition.w;\\n\\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"]);\n var projectionVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform float highlightScale;\\nuniform vec4 highlightId;\\nuniform vec3 axes[2];\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float scale, pixelRatio;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float lscale = pixelRatio * scale;\\n if(distance(highlightId, id) < 0.0001) {\\n lscale *= highlightScale;\\n }\\n\\n vec4 clipCenter = projection * (view * (model * vec4(position, 1)));\\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\\n vec4 clipPosition = projection * (view * (model * vec4(dataPosition, 1)));\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = dataPosition;\\n }\\n}\\n\"]);\n var drawFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float opacity;\\n\\nvarying vec4 interpColor;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (\\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\\n interpColor.a * opacity == 0.\\n ) discard;\\n gl_FragColor = interpColor * opacity;\\n}\\n\"]);\n var pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float pickGroup;\\n\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\n\\n gl_FragColor = vec4(pickGroup, pickId.bgr);\\n}\"]);\n var ATTRIBUTES = [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"glyph\", type: \"vec2\" },\n { name: \"id\", type: \"vec4\" }\n ];\n var perspective = {\n vertex: perspectiveVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n }, ortho = {\n vertex: orthographicVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n }, project = {\n vertex: projectionVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n }, pickPerspective = {\n vertex: perspectiveVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n }, pickOrtho = {\n vertex: orthographicVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n }, pickProject = {\n vertex: projectionVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n };\n function createShader(gl2, src) {\n var shader = createShaderWrapper(gl2, src);\n var attr = shader.attributes;\n attr.position.location = 0;\n attr.color.location = 1;\n attr.glyph.location = 2;\n attr.id.location = 3;\n return shader;\n }\n exports2.createPerspective = function(gl2) {\n return createShader(gl2, perspective);\n };\n exports2.createOrtho = function(gl2) {\n return createShader(gl2, ortho);\n };\n exports2.createProject = function(gl2) {\n return createShader(gl2, project);\n };\n exports2.createPickPerspective = function(gl2) {\n return createShader(gl2, pickPerspective);\n };\n exports2.createPickOrtho = function(gl2) {\n return createShader(gl2, pickOrtho);\n };\n exports2.createPickProject = function(gl2) {\n return createShader(gl2, pickProject);\n };\n }\n ),\n /***/\n 8418: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var isAllBlank = __webpack_require__2(5219);\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var pool = __webpack_require__2(1888);\n var mat4mult = __webpack_require__2(6760);\n var shaders = __webpack_require__2(1283);\n var getGlyph = __webpack_require__2(9366);\n var getSimpleString = __webpack_require__2(5964);\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n var ab = ArrayBuffer;\n var dv = DataView;\n function isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n }\n function isArrayOrTypedArray(a) {\n return Array.isArray(a) || isTypedArray(a);\n }\n module2.exports = createPointCloud;\n function transformMat4(x, m) {\n var x0 = x[0];\n var x1 = x[1];\n var x2 = x[2];\n var x3 = x[3];\n x[0] = m[0] * x0 + m[4] * x1 + m[8] * x2 + m[12] * x3;\n x[1] = m[1] * x0 + m[5] * x1 + m[9] * x2 + m[13] * x3;\n x[2] = m[2] * x0 + m[6] * x1 + m[10] * x2 + m[14] * x3;\n x[3] = m[3] * x0 + m[7] * x1 + m[11] * x2 + m[15] * x3;\n return x;\n }\n function project(p, v, m, x) {\n transformMat4(x, x, m);\n transformMat4(x, x, v);\n return transformMat4(x, x, p);\n }\n function ScatterPlotPickResult(index, position) {\n this.index = index;\n this.dataCoordinate = this.position = position;\n }\n function fixOpacity(a) {\n if (a === true) return 1;\n if (a > 1) return 1;\n return a;\n }\n function PointCloud(gl2, shader, orthoShader, projectShader, pointBuffer, colorBuffer, glyphBuffer, idBuffer, vao, pickPerspectiveShader, pickOrthoShader, pickProjectShader) {\n this.gl = gl2;\n this.pixelRatio = 1;\n this.shader = shader;\n this.orthoShader = orthoShader;\n this.projectShader = projectShader;\n this.pointBuffer = pointBuffer;\n this.colorBuffer = colorBuffer;\n this.glyphBuffer = glyphBuffer;\n this.idBuffer = idBuffer;\n this.vao = vao;\n this.vertexCount = 0;\n this.lineVertexCount = 0;\n this.opacity = 1;\n this.hasAlpha = false;\n this.lineWidth = 0;\n this.projectScale = [2 / 3, 2 / 3, 2 / 3];\n this.projectOpacity = [1, 1, 1];\n this.projectHasAlpha = false;\n this.pickId = 0;\n this.pickPerspectiveShader = pickPerspectiveShader;\n this.pickOrthoShader = pickOrthoShader;\n this.pickProjectShader = pickProjectShader;\n this.points = [];\n this._selectResult = new ScatterPlotPickResult(0, [0, 0, 0]);\n this.useOrtho = true;\n this.bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n this.axesProject = [true, true, true];\n this.axesBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.highlightId = [1, 1, 1, 1];\n this.highlightScale = 2;\n this.clipBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.dirty = true;\n }\n var proto = PointCloud.prototype;\n proto.pickSlots = 1;\n proto.setPickBase = function(pickBase) {\n this.pickId = pickBase;\n };\n proto.isTransparent = function() {\n if (this.hasAlpha) {\n return true;\n }\n for (var i = 0; i < 3; ++i) {\n if (this.axesProject[i] && this.projectHasAlpha) {\n return true;\n }\n }\n return false;\n };\n proto.isOpaque = function() {\n if (!this.hasAlpha) {\n return true;\n }\n for (var i = 0; i < 3; ++i) {\n if (this.axesProject[i] && !this.projectHasAlpha) {\n return true;\n }\n }\n return false;\n };\n var VIEW_SHAPE = [0, 0];\n var U_VEC = [0, 0, 0];\n var V_VEC = [0, 0, 0];\n var MU_VEC = [0, 0, 0, 1];\n var MV_VEC = [0, 0, 0, 1];\n var SCRATCH_MATRIX = IDENTITY.slice();\n var SCRATCH_VEC = [0, 0, 0];\n var CLIP_BOUNDS = [[0, 0, 0], [0, 0, 0]];\n function zeroVec(a) {\n a[0] = a[1] = a[2] = 0;\n return a;\n }\n function augment(hg, af) {\n hg[0] = af[0];\n hg[1] = af[1];\n hg[2] = af[2];\n hg[3] = 1;\n return hg;\n }\n function setComponent(out, v, i, x) {\n out[0] = v[0];\n out[1] = v[1];\n out[2] = v[2];\n out[i] = x;\n return out;\n }\n function getClipBounds(bounds) {\n var result = CLIP_BOUNDS;\n for (var i = 0; i < 2; ++i) {\n for (var j = 0; j < 3; ++j) {\n result[i][j] = Math.max(Math.min(bounds[i][j], 1e8), -1e8);\n }\n }\n return result;\n }\n function drawProject(shader, points, camera, pixelRatio) {\n var axesProject = points.axesProject;\n var gl2 = points.gl;\n var uniforms = shader.uniforms;\n var model = camera.model || IDENTITY;\n var view = camera.view || IDENTITY;\n var projection = camera.projection || IDENTITY;\n var bounds = points.axesBounds;\n var clipBounds = getClipBounds(points.clipBounds);\n var cubeAxis;\n if (points.axes && points.axes.lastCubeProps) {\n cubeAxis = points.axes.lastCubeProps.axis;\n } else {\n cubeAxis = [1, 1, 1];\n }\n VIEW_SHAPE[0] = 2 / gl2.drawingBufferWidth;\n VIEW_SHAPE[1] = 2 / gl2.drawingBufferHeight;\n shader.bind();\n uniforms.view = view;\n uniforms.projection = projection;\n uniforms.screenSize = VIEW_SHAPE;\n uniforms.highlightId = points.highlightId;\n uniforms.highlightScale = points.highlightScale;\n uniforms.clipBounds = clipBounds;\n uniforms.pickGroup = points.pickId / 255;\n uniforms.pixelRatio = pixelRatio;\n for (var i = 0; i < 3; ++i) {\n if (!axesProject[i]) {\n continue;\n }\n uniforms.scale = points.projectScale[i];\n uniforms.opacity = points.projectOpacity[i];\n var pmodel = SCRATCH_MATRIX;\n for (var j = 0; j < 16; ++j) {\n pmodel[j] = 0;\n }\n for (var j = 0; j < 4; ++j) {\n pmodel[5 * j] = 1;\n }\n pmodel[5 * i] = 0;\n if (cubeAxis[i] < 0) {\n pmodel[12 + i] = bounds[0][i];\n } else {\n pmodel[12 + i] = bounds[1][i];\n }\n mat4mult(pmodel, model, pmodel);\n uniforms.model = pmodel;\n var u = (i + 1) % 3;\n var v = (i + 2) % 3;\n var du = zeroVec(U_VEC);\n var dv2 = zeroVec(V_VEC);\n du[u] = 1;\n dv2[v] = 1;\n var mdu = project(projection, view, model, augment(MU_VEC, du));\n var mdv = project(projection, view, model, augment(MV_VEC, dv2));\n if (Math.abs(mdu[1]) > Math.abs(mdv[1])) {\n var tmp = mdu;\n mdu = mdv;\n mdv = tmp;\n tmp = du;\n du = dv2;\n dv2 = tmp;\n var t = u;\n u = v;\n v = t;\n }\n if (mdu[0] < 0) {\n du[u] = -1;\n }\n if (mdv[1] > 0) {\n dv2[v] = -1;\n }\n var su = 0;\n var sv = 0;\n for (var j = 0; j < 4; ++j) {\n su += Math.pow(model[4 * u + j], 2);\n sv += Math.pow(model[4 * v + j], 2);\n }\n du[u] /= Math.sqrt(su);\n dv2[v] /= Math.sqrt(sv);\n uniforms.axes[0] = du;\n uniforms.axes[1] = dv2;\n uniforms.fragClipBounds[0] = setComponent(SCRATCH_VEC, clipBounds[0], i, -1e8);\n uniforms.fragClipBounds[1] = setComponent(SCRATCH_VEC, clipBounds[1], i, 1e8);\n points.vao.bind();\n points.vao.draw(gl2.TRIANGLES, points.vertexCount);\n if (points.lineWidth > 0) {\n gl2.lineWidth(points.lineWidth * pixelRatio);\n points.vao.draw(gl2.LINES, points.lineVertexCount, points.vertexCount);\n }\n points.vao.unbind();\n }\n }\n var NEG_INFINITY3 = [-1e8, -1e8, -1e8];\n var POS_INFINITY3 = [1e8, 1e8, 1e8];\n var CLIP_GROUP = [NEG_INFINITY3, POS_INFINITY3];\n function drawFull(shader, pshader, points, camera, pixelRatio, transparent, forceDraw) {\n var gl2 = points.gl;\n if (transparent === points.projectHasAlpha || forceDraw) {\n drawProject(pshader, points, camera, pixelRatio);\n }\n if (transparent === points.hasAlpha || forceDraw) {\n shader.bind();\n var uniforms = shader.uniforms;\n uniforms.model = camera.model || IDENTITY;\n uniforms.view = camera.view || IDENTITY;\n uniforms.projection = camera.projection || IDENTITY;\n VIEW_SHAPE[0] = 2 / gl2.drawingBufferWidth;\n VIEW_SHAPE[1] = 2 / gl2.drawingBufferHeight;\n uniforms.screenSize = VIEW_SHAPE;\n uniforms.highlightId = points.highlightId;\n uniforms.highlightScale = points.highlightScale;\n uniforms.fragClipBounds = CLIP_GROUP;\n uniforms.clipBounds = points.axes.bounds;\n uniforms.opacity = points.opacity;\n uniforms.pickGroup = points.pickId / 255;\n uniforms.pixelRatio = pixelRatio;\n points.vao.bind();\n points.vao.draw(gl2.TRIANGLES, points.vertexCount);\n if (points.lineWidth > 0) {\n gl2.lineWidth(points.lineWidth * pixelRatio);\n points.vao.draw(gl2.LINES, points.lineVertexCount, points.vertexCount);\n }\n points.vao.unbind();\n }\n }\n proto.draw = function(camera) {\n var shader = this.useOrtho ? this.orthoShader : this.shader;\n drawFull(shader, this.projectShader, this, camera, this.pixelRatio, false, false);\n };\n proto.drawTransparent = function(camera) {\n var shader = this.useOrtho ? this.orthoShader : this.shader;\n drawFull(shader, this.projectShader, this, camera, this.pixelRatio, true, false);\n };\n proto.drawPick = function(camera) {\n var shader = this.useOrtho ? this.pickOrthoShader : this.pickPerspectiveShader;\n drawFull(shader, this.pickProjectShader, this, camera, 1, true, true);\n };\n proto.pick = function(selected) {\n if (!selected) {\n return null;\n }\n if (selected.id !== this.pickId) {\n return null;\n }\n var x = selected.value[2] + (selected.value[1] << 8) + (selected.value[0] << 16);\n if (x >= this.pointCount || x < 0) {\n return null;\n }\n var coord = this.points[x];\n var result = this._selectResult;\n result.index = x;\n for (var i = 0; i < 3; ++i) {\n result.position[i] = result.dataCoordinate[i] = coord[i];\n }\n return result;\n };\n proto.highlight = function(selection) {\n if (!selection) {\n this.highlightId = [1, 1, 1, 1];\n } else {\n var pointId = selection.index;\n var a0 = pointId & 255;\n var a1 = pointId >> 8 & 255;\n var a2 = pointId >> 16 & 255;\n this.highlightId = [a0 / 255, a1 / 255, a2 / 255, 0];\n }\n };\n function get_glyphData(glyphs, index, font, pixelRatio) {\n var str;\n if (isArrayOrTypedArray(glyphs)) {\n if (index < glyphs.length) {\n str = glyphs[index];\n } else {\n str = void 0;\n }\n } else {\n str = glyphs;\n }\n str = getSimpleString(str);\n var visible = true;\n if (isAllBlank(str)) {\n str = \"\\u25BC\";\n visible = false;\n }\n if (!font) font = {};\n var family = font.family;\n if (isArrayOrTypedArray(family)) family = family[index];\n if (!family) family = \"normal\";\n var weight = font.weight;\n if (isArrayOrTypedArray(weight)) weight = weight[index];\n if (!weight) weight = \"normal\";\n var style = font.style;\n if (isArrayOrTypedArray(style)) style = style[index];\n if (!style) style = \"normal\";\n var variant = font.variant;\n if (isArrayOrTypedArray(variant)) variant = variant[index];\n if (!variant) variant = \"normal\";\n var glyph = getGlyph(str, {\n family,\n weight,\n style,\n variant\n }, pixelRatio);\n var glyph = getGlyph(str, font, pixelRatio);\n return {\n mesh: glyph[0],\n lines: glyph[1],\n bounds: glyph[2],\n visible\n };\n }\n proto.update = function(options) {\n options = options || {};\n if (\"perspective\" in options) {\n this.useOrtho = !options.perspective;\n }\n if (\"orthographic\" in options) {\n this.useOrtho = !!options.orthographic;\n }\n if (\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth;\n }\n if (\"project\" in options) {\n if (isArrayOrTypedArray(options.project)) {\n this.axesProject = options.project;\n } else {\n var v = !!options.project;\n this.axesProject = [v, v, v];\n }\n }\n if (\"projectScale\" in options) {\n if (isArrayOrTypedArray(options.projectScale)) {\n this.projectScale = options.projectScale.slice();\n } else {\n var s = +options.projectScale;\n this.projectScale = [s, s, s];\n }\n }\n this.projectHasAlpha = false;\n if (\"projectOpacity\" in options) {\n if (isArrayOrTypedArray(options.projectOpacity)) {\n this.projectOpacity = options.projectOpacity.slice();\n } else {\n var s = +options.projectOpacity;\n this.projectOpacity = [s, s, s];\n }\n for (var i = 0; i < 3; ++i) {\n this.projectOpacity[i] = fixOpacity(this.projectOpacity[i]);\n if (this.projectOpacity[i] < 1) {\n this.projectHasAlpha = true;\n }\n }\n }\n this.hasAlpha = false;\n if (\"opacity\" in options) {\n this.opacity = fixOpacity(options.opacity);\n if (this.opacity < 1) {\n this.hasAlpha = true;\n }\n }\n this.dirty = true;\n var points = options.position;\n var font = {\n family: options.font || \"normal\",\n style: options.fontStyle || \"normal\",\n weight: options.fontWeight || \"normal\",\n variant: options.fontVariant || \"normal\"\n };\n var alignment = options.alignment || [0, 0];\n var alignmentX;\n var alignmentY;\n if (alignment.length === 2) {\n alignmentX = alignment[0];\n alignmentY = alignment[1];\n } else {\n alignmentX = [];\n alignmentY = [];\n for (var i = 0; i < alignment.length; ++i) {\n alignmentX[i] = alignment[i][0];\n alignmentY[i] = alignment[i][1];\n }\n }\n var lowerBound = [Infinity, Infinity, Infinity];\n var upperBound = [-Infinity, -Infinity, -Infinity];\n var glyphs = options.glyph;\n var colors = options.color;\n var sizes = options.size;\n var angles = options.angle;\n var lineColors = options.lineColor;\n var pickCounter = -1;\n var triVertexCount = 0;\n var lineVertexCount = 0;\n var numPoints = 0;\n if (points.length) {\n numPoints = points.length;\n count_loop:\n for (var i = 0; i < numPoints; ++i) {\n var x = points[i];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(x[j]) || !isFinite(x[j])) {\n continue count_loop;\n }\n }\n var glyphData = get_glyphData(glyphs, i, font, this.pixelRatio);\n var glyphMesh = glyphData.mesh;\n var glyphLines = glyphData.lines;\n var glyphBounds = glyphData.bounds;\n triVertexCount += glyphMesh.cells.length * 3;\n lineVertexCount += glyphLines.edges.length * 2;\n }\n }\n var vertexCount = triVertexCount + lineVertexCount;\n var positionArray = pool.mallocFloat(3 * vertexCount);\n var colorArray = pool.mallocFloat(4 * vertexCount);\n var glyphArray = pool.mallocFloat(2 * vertexCount);\n var idArray = pool.mallocUint32(vertexCount);\n if (vertexCount > 0) {\n var triOffset = 0;\n var lineOffset = triVertexCount;\n var color2 = [0, 0, 0, 1];\n var lineColor = [0, 0, 0, 1];\n var isColorArray = isArrayOrTypedArray(colors) && isArrayOrTypedArray(colors[0]);\n var isLineColorArray = isArrayOrTypedArray(lineColors) && isArrayOrTypedArray(lineColors[0]);\n fill_loop:\n for (var i = 0; i < numPoints; ++i) {\n pickCounter += 1;\n var x = points[i];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(x[j]) || !isFinite(x[j])) {\n continue fill_loop;\n }\n upperBound[j] = Math.max(upperBound[j], x[j]);\n lowerBound[j] = Math.min(lowerBound[j], x[j]);\n }\n var glyphData = get_glyphData(glyphs, i, font, this.pixelRatio);\n var glyphMesh = glyphData.mesh;\n var glyphLines = glyphData.lines;\n var glyphBounds = glyphData.bounds;\n var glyphVisible = glyphData.visible;\n if (!glyphVisible) color2 = [1, 1, 1, 0];\n else if (isArrayOrTypedArray(colors)) {\n var c;\n if (isColorArray) {\n if (i < colors.length) {\n c = colors[i];\n } else {\n c = [0, 0, 0, 0];\n }\n } else {\n c = colors;\n }\n if (c.length === 3) {\n for (var j = 0; j < 3; ++j) {\n color2[j] = c[j];\n }\n color2[3] = 1;\n } else if (c.length === 4) {\n for (var j = 0; j < 4; ++j) {\n color2[j] = c[j];\n }\n if (!this.hasAlpha && c[3] < 1) this.hasAlpha = true;\n }\n } else {\n color2[0] = color2[1] = color2[2] = 0;\n color2[3] = 1;\n }\n if (!glyphVisible) lineColor = [1, 1, 1, 0];\n else if (isArrayOrTypedArray(lineColors)) {\n var c;\n if (isLineColorArray) {\n if (i < lineColors.length) {\n c = lineColors[i];\n } else {\n c = [0, 0, 0, 0];\n }\n } else {\n c = lineColors;\n }\n if (c.length === 3) {\n for (var j = 0; j < 3; ++j) {\n lineColor[j] = c[j];\n }\n lineColor[j] = 1;\n } else if (c.length === 4) {\n for (var j = 0; j < 4; ++j) {\n lineColor[j] = c[j];\n }\n if (!this.hasAlpha && c[3] < 1) this.hasAlpha = true;\n }\n } else {\n lineColor[0] = lineColor[1] = lineColor[2] = 0;\n lineColor[3] = 1;\n }\n var size = 0.5;\n if (!glyphVisible) size = 0;\n else if (isArrayOrTypedArray(sizes)) {\n if (i < sizes.length) {\n size = +sizes[i];\n } else {\n size = 12;\n }\n } else if (sizes) {\n size = +sizes;\n } else if (this.useOrtho) {\n size = 12;\n }\n var angle = 0;\n if (isArrayOrTypedArray(angles)) {\n if (i < angles.length) {\n angle = +angles[i];\n } else {\n angle = 0;\n }\n } else if (angles) {\n angle = +angles;\n }\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n var x = points[i];\n for (var j = 0; j < 3; ++j) {\n upperBound[j] = Math.max(upperBound[j], x[j]);\n lowerBound[j] = Math.min(lowerBound[j], x[j]);\n }\n var textOffsetX = alignmentX;\n var textOffsetY = alignmentY;\n var textOffsetX = 0;\n if (isArrayOrTypedArray(alignmentX)) {\n if (i < alignmentX.length) {\n textOffsetX = alignmentX[i];\n } else {\n textOffsetX = 0;\n }\n } else if (alignmentX) {\n textOffsetX = alignmentX;\n }\n var textOffsetY = 0;\n if (isArrayOrTypedArray(alignmentY)) {\n if (i < alignmentY.length) {\n textOffsetY = alignmentY[i];\n } else {\n textOffsetY = 0;\n }\n } else if (alignmentY) {\n textOffsetY = alignmentY;\n }\n textOffsetX *= textOffsetX > 0 ? 1 - glyphBounds[0][0] : textOffsetX < 0 ? 1 + glyphBounds[1][0] : 1;\n textOffsetY *= textOffsetY > 0 ? 1 - glyphBounds[0][1] : textOffsetY < 0 ? 1 + glyphBounds[1][1] : 1;\n var textOffset = [textOffsetX, textOffsetY];\n var cells = glyphMesh.cells || [];\n var verts = glyphMesh.positions || [];\n for (var j = 0; j < cells.length; ++j) {\n var cell = cells[j];\n for (var k = 0; k < 3; ++k) {\n for (var l = 0; l < 3; ++l) {\n positionArray[3 * triOffset + l] = x[l];\n }\n for (var l = 0; l < 4; ++l) {\n colorArray[4 * triOffset + l] = color2[l];\n }\n idArray[triOffset] = pickCounter;\n var p = verts[cell[k]];\n glyphArray[2 * triOffset] = size * (cos * p[0] - sin * p[1] + textOffset[0]);\n glyphArray[2 * triOffset + 1] = size * (sin * p[0] + cos * p[1] + textOffset[1]);\n triOffset += 1;\n }\n }\n var cells = glyphLines.edges;\n var verts = glyphLines.positions;\n for (var j = 0; j < cells.length; ++j) {\n var cell = cells[j];\n for (var k = 0; k < 2; ++k) {\n for (var l = 0; l < 3; ++l) {\n positionArray[3 * lineOffset + l] = x[l];\n }\n for (var l = 0; l < 4; ++l) {\n colorArray[4 * lineOffset + l] = lineColor[l];\n }\n idArray[lineOffset] = pickCounter;\n var p = verts[cell[k]];\n glyphArray[2 * lineOffset] = size * (cos * p[0] - sin * p[1] + textOffset[0]);\n glyphArray[2 * lineOffset + 1] = size * (sin * p[0] + cos * p[1] + textOffset[1]);\n lineOffset += 1;\n }\n }\n }\n }\n this.bounds = [lowerBound, upperBound];\n this.points = points;\n this.pointCount = points.length;\n this.vertexCount = triVertexCount;\n this.lineVertexCount = lineVertexCount;\n this.pointBuffer.update(positionArray);\n this.colorBuffer.update(colorArray);\n this.glyphBuffer.update(glyphArray);\n this.idBuffer.update(idArray);\n pool.free(positionArray);\n pool.free(colorArray);\n pool.free(glyphArray);\n pool.free(idArray);\n };\n proto.dispose = function() {\n this.shader.dispose();\n this.orthoShader.dispose();\n this.pickPerspectiveShader.dispose();\n this.pickOrthoShader.dispose();\n this.vao.dispose();\n this.pointBuffer.dispose();\n this.colorBuffer.dispose();\n this.glyphBuffer.dispose();\n this.idBuffer.dispose();\n };\n function createPointCloud(options) {\n var gl2 = options.gl;\n var shader = shaders.createPerspective(gl2);\n var orthoShader = shaders.createOrtho(gl2);\n var projectShader = shaders.createProject(gl2);\n var pickPerspectiveShader = shaders.createPickPerspective(gl2);\n var pickOrthoShader = shaders.createPickOrtho(gl2);\n var pickProjectShader = shaders.createPickProject(gl2);\n var pointBuffer = createBuffer(gl2);\n var colorBuffer = createBuffer(gl2);\n var glyphBuffer = createBuffer(gl2);\n var idBuffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n buffer: pointBuffer,\n size: 3,\n type: gl2.FLOAT\n },\n {\n buffer: colorBuffer,\n size: 4,\n type: gl2.FLOAT\n },\n {\n buffer: glyphBuffer,\n size: 2,\n type: gl2.FLOAT\n },\n {\n buffer: idBuffer,\n size: 4,\n type: gl2.UNSIGNED_BYTE,\n normalized: true\n }\n ]);\n var pointCloud = new PointCloud(\n gl2,\n shader,\n orthoShader,\n projectShader,\n pointBuffer,\n colorBuffer,\n glyphBuffer,\n idBuffer,\n vao,\n pickPerspectiveShader,\n pickOrthoShader,\n pickProjectShader\n );\n pointCloud.update(options);\n return pointCloud;\n }\n }\n ),\n /***/\n 3589: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createSelectBuffer;\n var createFBO = __webpack_require__2(2260);\n var pool = __webpack_require__2(1888);\n var ndarray = __webpack_require__2(9618);\n var nextPow2 = __webpack_require__2(8828).nextPow2;\n var selectRange = function(arr, x, y) {\n var closestD2 = 1e8;\n var closestX = -1;\n var closestY = -1;\n var ni = arr.shape[0];\n var nj = arr.shape[1];\n for (var i = 0; i < ni; i++) {\n for (var j = 0; j < nj; j++) {\n var r = arr.get(i, j, 0);\n var g = arr.get(i, j, 1);\n var b = arr.get(i, j, 2);\n var a = arr.get(i, j, 3);\n if (r < 255 || g < 255 || b < 255 || a < 255) {\n var dx = x - i;\n var dy = y - j;\n var d2 = dx * dx + dy * dy;\n if (d2 < closestD2) {\n closestD2 = d2;\n closestX = i;\n closestY = j;\n }\n }\n }\n }\n return [closestX, closestY, closestD2];\n };\n function SelectResult(x, y, id, value, distance) {\n this.coord = [x, y];\n this.id = id;\n this.value = value;\n this.distance = distance;\n }\n function SelectBuffer(gl2, fbo, buffer) {\n this.gl = gl2;\n this.fbo = fbo;\n this.buffer = buffer;\n this._readTimeout = null;\n var self2 = this;\n this._readCallback = function() {\n if (!self2.gl) {\n return;\n }\n fbo.bind();\n gl2.readPixels(0, 0, fbo.shape[0], fbo.shape[1], gl2.RGBA, gl2.UNSIGNED_BYTE, self2.buffer);\n self2._readTimeout = null;\n };\n }\n var proto = SelectBuffer.prototype;\n Object.defineProperty(proto, \"shape\", {\n get: function() {\n if (!this.gl) {\n return [0, 0];\n }\n return this.fbo.shape.slice();\n },\n set: function(v) {\n if (!this.gl) {\n return;\n }\n this.fbo.shape = v;\n var c = this.fbo.shape[0];\n var r = this.fbo.shape[1];\n if (r * c * 4 > this.buffer.length) {\n pool.free(this.buffer);\n var buffer = this.buffer = pool.mallocUint8(nextPow2(r * c * 4));\n for (var i = 0; i < r * c * 4; ++i) {\n buffer[i] = 255;\n }\n }\n return v;\n }\n });\n proto.begin = function() {\n var gl2 = this.gl;\n var shape = this.shape;\n if (!gl2) {\n return;\n }\n this.fbo.bind();\n gl2.clearColor(1, 1, 1, 1);\n gl2.clear(gl2.COLOR_BUFFER_BIT | gl2.DEPTH_BUFFER_BIT);\n };\n proto.end = function() {\n var gl2 = this.gl;\n if (!gl2) {\n return;\n }\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n if (!this._readTimeout) {\n clearTimeout(this._readTimeout);\n }\n this._readTimeout = setTimeout(this._readCallback, 1);\n };\n proto.query = function(x, y, radius) {\n if (!this.gl) {\n return null;\n }\n var shape = this.fbo.shape.slice();\n x = x | 0;\n y = y | 0;\n if (typeof radius !== \"number\") {\n radius = 1;\n }\n var x0 = Math.min(Math.max(x - radius, 0), shape[0]) | 0;\n var x1 = Math.min(Math.max(x + radius, 0), shape[0]) | 0;\n var y0 = Math.min(Math.max(y - radius, 0), shape[1]) | 0;\n var y1 = Math.min(Math.max(y + radius, 0), shape[1]) | 0;\n if (x1 <= x0 || y1 <= y0) {\n return null;\n }\n var dims = [x1 - x0, y1 - y0];\n var region = ndarray(\n this.buffer,\n [dims[0], dims[1], 4],\n [4, shape[0] * 4, 1],\n 4 * (x0 + shape[0] * y0)\n );\n var closest = selectRange(region.hi(dims[0], dims[1], 1), radius, radius);\n var dx = closest[0];\n var dy = closest[1];\n if (dx < 0 || Math.pow(this.radius, 2) < closest[2]) {\n return null;\n }\n var c0 = region.get(dx, dy, 0);\n var c1 = region.get(dx, dy, 1);\n var c2 = region.get(dx, dy, 2);\n var c3 = region.get(dx, dy, 3);\n return new SelectResult(\n dx + x0 | 0,\n dy + y0 | 0,\n c0,\n [c1, c2, c3],\n Math.sqrt(closest[2])\n );\n };\n proto.dispose = function() {\n if (!this.gl) {\n return;\n }\n this.fbo.dispose();\n pool.free(this.buffer);\n this.gl = null;\n if (this._readTimeout) {\n clearTimeout(this._readTimeout);\n }\n };\n function createSelectBuffer(gl2, shape) {\n var width = shape[0];\n var height = shape[1];\n var options = {};\n var fbo = createFBO(gl2, width, height, options);\n var buffer = pool.mallocUint8(width * height * 4);\n return new SelectBuffer(gl2, fbo, buffer);\n }\n }\n ),\n /***/\n 9405: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createUniformWrapper = __webpack_require__2(3327);\n var createAttributeWrapper = __webpack_require__2(8731);\n var makeReflect = __webpack_require__2(216);\n var shaderCache = __webpack_require__2(5091);\n var runtime = __webpack_require__2(2145);\n var GLError = __webpack_require__2(8866);\n function Shader(gl2) {\n this.gl = gl2;\n this.gl.lastAttribCount = 0;\n this._vref = this._fref = this._relink = this.vertShader = this.fragShader = this.program = this.attributes = this.uniforms = this.types = null;\n }\n var proto = Shader.prototype;\n proto.bind = function() {\n if (!this.program) {\n this._relink();\n }\n var i;\n var newAttribCount = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES);\n var oldAttribCount = this.gl.lastAttribCount;\n if (newAttribCount > oldAttribCount) {\n for (i = oldAttribCount; i < newAttribCount; i++) {\n this.gl.enableVertexAttribArray(i);\n }\n } else if (oldAttribCount > newAttribCount) {\n for (i = newAttribCount; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i);\n }\n }\n this.gl.lastAttribCount = newAttribCount;\n this.gl.useProgram(this.program);\n };\n proto.dispose = function() {\n var oldAttribCount = this.gl.lastAttribCount;\n for (var i = 0; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i);\n }\n this.gl.lastAttribCount = 0;\n if (this._fref) {\n this._fref.dispose();\n }\n if (this._vref) {\n this._vref.dispose();\n }\n this.attributes = this.types = this.vertShader = this.fragShader = this.program = this._relink = this._fref = this._vref = null;\n };\n function compareAttributes(a, b) {\n if (a.name < b.name) {\n return -1;\n }\n return 1;\n }\n proto.update = function(vertSource, fragSource, uniforms, attributes) {\n if (!fragSource || arguments.length === 1) {\n var obj = vertSource;\n vertSource = obj.vertex;\n fragSource = obj.fragment;\n uniforms = obj.uniforms;\n attributes = obj.attributes;\n }\n var wrapper = this;\n var gl2 = wrapper.gl;\n var pvref = wrapper._vref;\n wrapper._vref = shaderCache.shader(gl2, gl2.VERTEX_SHADER, vertSource);\n if (pvref) {\n pvref.dispose();\n }\n wrapper.vertShader = wrapper._vref.shader;\n var pfref = this._fref;\n wrapper._fref = shaderCache.shader(gl2, gl2.FRAGMENT_SHADER, fragSource);\n if (pfref) {\n pfref.dispose();\n }\n wrapper.fragShader = wrapper._fref.shader;\n if (!uniforms || !attributes) {\n var testProgram = gl2.createProgram();\n gl2.attachShader(testProgram, wrapper.fragShader);\n gl2.attachShader(testProgram, wrapper.vertShader);\n gl2.linkProgram(testProgram);\n if (!gl2.getProgramParameter(testProgram, gl2.LINK_STATUS)) {\n var errLog = gl2.getProgramInfoLog(testProgram);\n throw new GLError(errLog, \"Error linking program:\" + errLog);\n }\n uniforms = uniforms || runtime.uniforms(gl2, testProgram);\n attributes = attributes || runtime.attributes(gl2, testProgram);\n gl2.deleteProgram(testProgram);\n }\n attributes = attributes.slice();\n attributes.sort(compareAttributes);\n var attributeUnpacked = [];\n var attributeNames = [];\n var attributeLocations = [];\n var i;\n for (i = 0; i < attributes.length; ++i) {\n var attr = attributes[i];\n if (attr.type.indexOf(\"mat\") >= 0) {\n var size = attr.type.charAt(attr.type.length - 1) | 0;\n var locVector = new Array(size);\n for (var j = 0; j < size; ++j) {\n locVector[j] = attributeLocations.length;\n attributeNames.push(attr.name + \"[\" + j + \"]\");\n if (typeof attr.location === \"number\") {\n attributeLocations.push(attr.location + j);\n } else if (Array.isArray(attr.location) && attr.location.length === size && typeof attr.location[j] === \"number\") {\n attributeLocations.push(attr.location[j] | 0);\n } else {\n attributeLocations.push(-1);\n }\n }\n attributeUnpacked.push({\n name: attr.name,\n type: attr.type,\n locations: locVector\n });\n } else {\n attributeUnpacked.push({\n name: attr.name,\n type: attr.type,\n locations: [attributeLocations.length]\n });\n attributeNames.push(attr.name);\n if (typeof attr.location === \"number\") {\n attributeLocations.push(attr.location | 0);\n } else {\n attributeLocations.push(-1);\n }\n }\n }\n var curLocation = 0;\n for (i = 0; i < attributeLocations.length; ++i) {\n if (attributeLocations[i] < 0) {\n while (attributeLocations.indexOf(curLocation) >= 0) {\n curLocation += 1;\n }\n attributeLocations[i] = curLocation;\n }\n }\n var uniformLocations = new Array(uniforms.length);\n function relink() {\n wrapper.program = shaderCache.program(\n gl2,\n wrapper._vref,\n wrapper._fref,\n attributeNames,\n attributeLocations\n );\n for (var i2 = 0; i2 < uniforms.length; ++i2) {\n uniformLocations[i2] = gl2.getUniformLocation(\n wrapper.program,\n uniforms[i2].name\n );\n }\n }\n relink();\n wrapper._relink = relink;\n wrapper.types = {\n uniforms: makeReflect(uniforms),\n attributes: makeReflect(attributes)\n };\n wrapper.attributes = createAttributeWrapper(\n gl2,\n wrapper,\n attributeUnpacked,\n attributeLocations\n );\n Object.defineProperty(wrapper, \"uniforms\", createUniformWrapper(\n gl2,\n wrapper,\n uniforms,\n uniformLocations\n ));\n };\n function createShader(gl2, vertSource, fragSource, uniforms, attributes) {\n var shader = new Shader(gl2);\n shader.update(\n vertSource,\n fragSource,\n uniforms,\n attributes\n );\n return shader;\n }\n module2.exports = createShader;\n }\n ),\n /***/\n 8866: (\n /***/\n function(module2) {\n function GLError(rawError, shortMessage, longMessage) {\n this.shortMessage = shortMessage || \"\";\n this.longMessage = longMessage || \"\";\n this.rawError = rawError || \"\";\n this.message = \"gl-shader: \" + (shortMessage || rawError || \"\") + (longMessage ? \"\\n\" + longMessage : \"\");\n this.stack = new Error().stack;\n }\n GLError.prototype = new Error();\n GLError.prototype.name = \"GLError\";\n GLError.prototype.constructor = GLError;\n module2.exports = GLError;\n }\n ),\n /***/\n 8731: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createAttributeWrapper;\n var GLError = __webpack_require__2(8866);\n function ShaderAttribute(gl2, wrapper, index, locations, dimension, constFunc) {\n this._gl = gl2;\n this._wrapper = wrapper;\n this._index = index;\n this._locations = locations;\n this._dimension = dimension;\n this._constFunc = constFunc;\n }\n var proto = ShaderAttribute.prototype;\n proto.pointer = function setAttribPointer(type, normalized, stride, offset) {\n var self2 = this;\n var gl2 = self2._gl;\n var location2 = self2._locations[self2._index];\n gl2.vertexAttribPointer(\n location2,\n self2._dimension,\n type || gl2.FLOAT,\n !!normalized,\n stride || 0,\n offset || 0\n );\n gl2.enableVertexAttribArray(location2);\n };\n proto.set = function(x0, x1, x2, x3) {\n return this._constFunc(this._locations[this._index], x0, x1, x2, x3);\n };\n Object.defineProperty(proto, \"location\", {\n get: function() {\n return this._locations[this._index];\n },\n set: function(v) {\n if (v !== this._locations[this._index]) {\n this._locations[this._index] = v | 0;\n this._wrapper.program = null;\n }\n return v | 0;\n }\n });\n var allFns = [\n function(gl2, v, x0) {\n if (x0.length === void 0) {\n return gl2.vertexAttrib1f(v, x0);\n } else {\n return gl2.vertexAttrib1fv(v, x0);\n }\n },\n function(gl2, v, x0, x1) {\n if (x0.length === void 0) {\n return gl2.vertexAttrib2f(v, x0, x1);\n } else {\n return gl2.vertexAttrib2fv(v, x0);\n }\n },\n function(gl2, v, x0, x1, x2) {\n if (x0.length === void 0) {\n return gl2.vertexAttrib3f(v, x0, x1, x2);\n } else {\n return gl2.vertexAttrib3fv(v, x0);\n }\n },\n function(gl2, v, x0, x1, x2, x3) {\n if (x0.length === void 0) {\n return gl2.vertexAttrib4f(v, x0, x1, x2, x3);\n } else {\n return gl2.vertexAttrib4fv(v, x0);\n }\n }\n ];\n function addVectorAttribute(gl2, wrapper, index, locations, dimension, obj, name2) {\n var constFunc = allFns[dimension];\n var attr = new ShaderAttribute(\n gl2,\n wrapper,\n index,\n locations,\n dimension,\n constFunc\n );\n Object.defineProperty(obj, name2, {\n set: function(x) {\n gl2.disableVertexAttribArray(locations[index]);\n constFunc(gl2, locations[index], x);\n return x;\n },\n get: function() {\n return attr;\n },\n enumerable: true\n });\n }\n function addMatrixAttribute(gl2, wrapper, index, locations, dimension, obj, name2) {\n var parts = new Array(dimension);\n var attrs = new Array(dimension);\n for (var i = 0; i < dimension; ++i) {\n addVectorAttribute(\n gl2,\n wrapper,\n index[i],\n locations,\n dimension,\n parts,\n i\n );\n attrs[i] = parts[i];\n }\n Object.defineProperty(parts, \"location\", {\n set: function(v) {\n if (Array.isArray(v)) {\n for (var i2 = 0; i2 < dimension; ++i2) {\n attrs[i2].location = v[i2];\n }\n } else {\n for (var i2 = 0; i2 < dimension; ++i2) {\n attrs[i2].location = v + i2;\n }\n }\n return v;\n },\n get: function() {\n var result = new Array(dimension);\n for (var i2 = 0; i2 < dimension; ++i2) {\n result[i2] = locations[index[i2]];\n }\n return result;\n },\n enumerable: true\n });\n parts.pointer = function(type, normalized, stride, offset) {\n type = type || gl2.FLOAT;\n normalized = !!normalized;\n stride = stride || dimension * dimension;\n offset = offset || 0;\n for (var i2 = 0; i2 < dimension; ++i2) {\n var location2 = locations[index[i2]];\n gl2.vertexAttribPointer(\n location2,\n dimension,\n type,\n normalized,\n stride,\n offset + i2 * dimension\n );\n gl2.enableVertexAttribArray(location2);\n }\n };\n var scratch = new Array(dimension);\n var vertexAttrib = gl2[\"vertexAttrib\" + dimension + \"fv\"];\n Object.defineProperty(obj, name2, {\n set: function(x) {\n for (var i2 = 0; i2 < dimension; ++i2) {\n var loc = locations[index[i2]];\n gl2.disableVertexAttribArray(loc);\n if (Array.isArray(x[0])) {\n vertexAttrib.call(gl2, loc, x[i2]);\n } else {\n for (var j = 0; j < dimension; ++j) {\n scratch[j] = x[dimension * i2 + j];\n }\n vertexAttrib.call(gl2, loc, scratch);\n }\n }\n return x;\n },\n get: function() {\n return parts;\n },\n enumerable: true\n });\n }\n function createAttributeWrapper(gl2, wrapper, attributes, locations) {\n var obj = {};\n for (var i = 0, n = attributes.length; i < n; ++i) {\n var a = attributes[i];\n var name2 = a.name;\n var type = a.type;\n var locs = a.locations;\n switch (type) {\n case \"bool\":\n case \"int\":\n case \"float\":\n addVectorAttribute(\n gl2,\n wrapper,\n locs[0],\n locations,\n 1,\n obj,\n name2\n );\n break;\n default:\n if (type.indexOf(\"vec\") >= 0) {\n var d = type.charCodeAt(type.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid data type for attribute \" + name2 + \": \" + type);\n }\n addVectorAttribute(\n gl2,\n wrapper,\n locs[0],\n locations,\n d,\n obj,\n name2\n );\n } else if (type.indexOf(\"mat\") >= 0) {\n var d = type.charCodeAt(type.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid data type for attribute \" + name2 + \": \" + type);\n }\n addMatrixAttribute(\n gl2,\n wrapper,\n locs,\n locations,\n d,\n obj,\n name2\n );\n } else {\n throw new GLError(\"\", \"Unknown data type for attribute \" + name2 + \": \" + type);\n }\n break;\n }\n }\n return obj;\n }\n }\n ),\n /***/\n 3327: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var coallesceUniforms = __webpack_require__2(216);\n var GLError = __webpack_require__2(8866);\n module2.exports = createUniformWrapper;\n function identity2(x) {\n return function() {\n return x;\n };\n }\n function makeVector(length, fill) {\n var result = new Array(length);\n for (var i = 0; i < length; ++i) {\n result[i] = fill;\n }\n return result;\n }\n function createUniformWrapper(gl2, wrapper, uniforms, locations) {\n function makeGetter(idx) {\n return function(gl3, wrapper2, locations2) {\n return gl3.getUniform(wrapper2.program, locations2[idx]);\n };\n }\n function makeSetter(type) {\n return function updateProperty(obj) {\n var indices = enumerateIndices(\"\", type);\n for (var i = 0; i < indices.length; ++i) {\n var item = indices[i];\n var path = item[0];\n var idx = item[1];\n if (locations[idx]) {\n var objPath = obj;\n if (typeof path === \"string\" && (path.indexOf(\".\") === 0 || path.indexOf(\"[\") === 0)) {\n var key = path;\n if (path.indexOf(\".\") === 0) {\n key = path.slice(1);\n }\n if (key.indexOf(\"]\") === key.length - 1) {\n var j = key.indexOf(\"[\");\n var k1 = key.slice(0, j);\n var k2 = key.slice(j + 1, key.length - 1);\n objPath = k1 ? obj[k1][k2] : obj[k2];\n } else {\n objPath = obj[key];\n }\n }\n var t = uniforms[idx].type;\n var d;\n switch (t) {\n case \"bool\":\n case \"int\":\n case \"sampler2D\":\n case \"samplerCube\":\n gl2.uniform1i(locations[idx], objPath);\n break;\n case \"float\":\n gl2.uniform1f(locations[idx], objPath);\n break;\n default:\n var vidx = t.indexOf(\"vec\");\n if (0 <= vidx && vidx <= 1 && t.length === 4 + vidx) {\n d = t.charCodeAt(t.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid data type\");\n }\n switch (t.charAt(0)) {\n case \"b\":\n case \"i\":\n gl2[\"uniform\" + d + \"iv\"](locations[idx], objPath);\n break;\n case \"v\":\n gl2[\"uniform\" + d + \"fv\"](locations[idx], objPath);\n break;\n default:\n throw new GLError(\"\", \"Unrecognized data type for vector \" + name + \": \" + t);\n }\n } else if (t.indexOf(\"mat\") === 0 && t.length === 4) {\n d = t.charCodeAt(t.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid uniform dimension type for matrix \" + name + \": \" + t);\n }\n gl2[\"uniformMatrix\" + d + \"fv\"](locations[idx], false, objPath);\n break;\n } else {\n throw new GLError(\"\", \"Unknown uniform data type for \" + name + \": \" + t);\n }\n }\n }\n }\n };\n }\n function enumerateIndices(prefix, type) {\n if (typeof type !== \"object\") {\n return [[prefix, type]];\n }\n var indices = [];\n for (var id in type) {\n var prop = type[id];\n var tprefix = prefix;\n if (parseInt(id) + \"\" === id) {\n tprefix += \"[\" + id + \"]\";\n } else {\n tprefix += \".\" + id;\n }\n if (typeof prop === \"object\") {\n indices.push.apply(indices, enumerateIndices(tprefix, prop));\n } else {\n indices.push([tprefix, prop]);\n }\n }\n return indices;\n }\n function defaultValue(type) {\n switch (type) {\n case \"bool\":\n return false;\n case \"int\":\n case \"sampler2D\":\n case \"samplerCube\":\n return 0;\n case \"float\":\n return 0;\n default:\n var vidx = type.indexOf(\"vec\");\n if (0 <= vidx && vidx <= 1 && type.length === 4 + vidx) {\n var d = type.charCodeAt(type.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid data type\");\n }\n if (type.charAt(0) === \"b\") {\n return makeVector(d, false);\n }\n return makeVector(d, 0);\n } else if (type.indexOf(\"mat\") === 0 && type.length === 4) {\n var d = type.charCodeAt(type.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid uniform dimension type for matrix \" + name + \": \" + type);\n }\n return makeVector(d * d, 0);\n } else {\n throw new GLError(\"\", \"Unknown uniform data type for \" + name + \": \" + type);\n }\n }\n }\n function storeProperty(obj, prop, type) {\n if (typeof type === \"object\") {\n var child = processObject(type);\n Object.defineProperty(obj, prop, {\n get: identity2(child),\n set: makeSetter(type),\n enumerable: true,\n configurable: false\n });\n } else {\n if (locations[type]) {\n Object.defineProperty(obj, prop, {\n get: makeGetter(type),\n set: makeSetter(type),\n enumerable: true,\n configurable: false\n });\n } else {\n obj[prop] = defaultValue(uniforms[type].type);\n }\n }\n }\n function processObject(obj) {\n var result;\n if (Array.isArray(obj)) {\n result = new Array(obj.length);\n for (var i = 0; i < obj.length; ++i) {\n storeProperty(result, i, obj[i]);\n }\n } else {\n result = {};\n for (var id in obj) {\n storeProperty(result, id, obj[id]);\n }\n }\n return result;\n }\n var coallesced = coallesceUniforms(uniforms, true);\n return {\n get: identity2(processObject(coallesced)),\n set: makeSetter(coallesced),\n enumerable: true,\n configurable: true\n };\n }\n }\n ),\n /***/\n 216: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = makeReflectTypes;\n function makeReflectTypes(uniforms, useIndex) {\n var obj = {};\n for (var i = 0; i < uniforms.length; ++i) {\n var n = uniforms[i].name;\n var parts = n.split(\".\");\n var o = obj;\n for (var j = 0; j < parts.length; ++j) {\n var x = parts[j].split(\"[\");\n if (x.length > 1) {\n if (!(x[0] in o)) {\n o[x[0]] = [];\n }\n o = o[x[0]];\n for (var k = 1; k < x.length; ++k) {\n var y = parseInt(x[k]);\n if (k < x.length - 1 || j < parts.length - 1) {\n if (!(y in o)) {\n if (k < x.length - 1) {\n o[y] = [];\n } else {\n o[y] = {};\n }\n }\n o = o[y];\n } else {\n if (useIndex) {\n o[y] = i;\n } else {\n o[y] = uniforms[i].type;\n }\n }\n }\n } else if (j < parts.length - 1) {\n if (!(x[0] in o)) {\n o[x[0]] = {};\n }\n o = o[x[0]];\n } else {\n if (useIndex) {\n o[x[0]] = i;\n } else {\n o[x[0]] = uniforms[i].type;\n }\n }\n }\n }\n return obj;\n }\n }\n ),\n /***/\n 2145: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n exports2.uniforms = runtimeUniforms;\n exports2.attributes = runtimeAttributes;\n var GL_TO_GLSL_TYPES = {\n \"FLOAT\": \"float\",\n \"FLOAT_VEC2\": \"vec2\",\n \"FLOAT_VEC3\": \"vec3\",\n \"FLOAT_VEC4\": \"vec4\",\n \"INT\": \"int\",\n \"INT_VEC2\": \"ivec2\",\n \"INT_VEC3\": \"ivec3\",\n \"INT_VEC4\": \"ivec4\",\n \"BOOL\": \"bool\",\n \"BOOL_VEC2\": \"bvec2\",\n \"BOOL_VEC3\": \"bvec3\",\n \"BOOL_VEC4\": \"bvec4\",\n \"FLOAT_MAT2\": \"mat2\",\n \"FLOAT_MAT3\": \"mat3\",\n \"FLOAT_MAT4\": \"mat4\",\n \"SAMPLER_2D\": \"sampler2D\",\n \"SAMPLER_CUBE\": \"samplerCube\"\n };\n var GL_TABLE = null;\n function getType(gl2, type) {\n if (!GL_TABLE) {\n var typeNames = Object.keys(GL_TO_GLSL_TYPES);\n GL_TABLE = {};\n for (var i = 0; i < typeNames.length; ++i) {\n var tn = typeNames[i];\n GL_TABLE[gl2[tn]] = GL_TO_GLSL_TYPES[tn];\n }\n }\n return GL_TABLE[type];\n }\n function runtimeUniforms(gl2, program) {\n var numUniforms = gl2.getProgramParameter(program, gl2.ACTIVE_UNIFORMS);\n var result = [];\n for (var i = 0; i < numUniforms; ++i) {\n var info = gl2.getActiveUniform(program, i);\n if (info) {\n var type = getType(gl2, info.type);\n if (info.size > 1) {\n for (var j = 0; j < info.size; ++j) {\n result.push({\n name: info.name.replace(\"[0]\", \"[\" + j + \"]\"),\n type\n });\n }\n } else {\n result.push({\n name: info.name,\n type\n });\n }\n }\n }\n return result;\n }\n function runtimeAttributes(gl2, program) {\n var numAttributes = gl2.getProgramParameter(program, gl2.ACTIVE_ATTRIBUTES);\n var result = [];\n for (var i = 0; i < numAttributes; ++i) {\n var info = gl2.getActiveAttrib(program, i);\n if (info) {\n result.push({\n name: info.name,\n type: getType(gl2, info.type)\n });\n }\n }\n return result;\n }\n }\n ),\n /***/\n 5091: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n exports2.shader = getShaderReference;\n exports2.program = createProgram;\n var GLError = __webpack_require__2(8866);\n var formatCompilerError = __webpack_require__2(2992);\n var weakMap = typeof WeakMap === \"undefined\" ? __webpack_require__2(606) : WeakMap;\n var CACHE = new weakMap();\n var SHADER_COUNTER = 0;\n function ShaderReference(id, src, type, shader, programs, count, cache) {\n this.id = id;\n this.src = src;\n this.type = type;\n this.shader = shader;\n this.count = count;\n this.programs = [];\n this.cache = cache;\n }\n ShaderReference.prototype.dispose = function() {\n if (--this.count === 0) {\n var cache = this.cache;\n var gl2 = cache.gl;\n var programs = this.programs;\n for (var i = 0, n = programs.length; i < n; ++i) {\n var p = cache.programs[programs[i]];\n if (p) {\n delete cache.programs[i];\n gl2.deleteProgram(p);\n }\n }\n gl2.deleteShader(this.shader);\n delete cache.shaders[this.type === gl2.FRAGMENT_SHADER | 0][this.src];\n }\n };\n function ContextCache(gl2) {\n this.gl = gl2;\n this.shaders = [{}, {}];\n this.programs = {};\n }\n var proto = ContextCache.prototype;\n function compileShader(gl2, type, src) {\n var shader = gl2.createShader(type);\n gl2.shaderSource(shader, src);\n gl2.compileShader(shader);\n if (!gl2.getShaderParameter(shader, gl2.COMPILE_STATUS)) {\n var errLog = gl2.getShaderInfoLog(shader);\n try {\n var fmt = formatCompilerError(errLog, src, type);\n } catch (e) {\n console.warn(\"Failed to format compiler error: \" + e);\n throw new GLError(errLog, \"Error compiling shader:\\n\" + errLog);\n }\n throw new GLError(errLog, fmt.short, fmt.long);\n }\n return shader;\n }\n proto.getShaderReference = function(type, src) {\n var gl2 = this.gl;\n var shaders = this.shaders[type === gl2.FRAGMENT_SHADER | 0];\n var shader = shaders[src];\n if (!shader || !gl2.isShader(shader.shader)) {\n var shaderObj = compileShader(gl2, type, src);\n shader = shaders[src] = new ShaderReference(\n SHADER_COUNTER++,\n src,\n type,\n shaderObj,\n [],\n 1,\n this\n );\n } else {\n shader.count += 1;\n }\n return shader;\n };\n function linkProgram(gl2, vshader, fshader, attribs, locations) {\n var program = gl2.createProgram();\n gl2.attachShader(program, vshader);\n gl2.attachShader(program, fshader);\n for (var i = 0; i < attribs.length; ++i) {\n gl2.bindAttribLocation(program, locations[i], attribs[i]);\n }\n gl2.linkProgram(program);\n if (!gl2.getProgramParameter(program, gl2.LINK_STATUS)) {\n var errLog = gl2.getProgramInfoLog(program);\n throw new GLError(errLog, \"Error linking program: \" + errLog);\n }\n return program;\n }\n proto.getProgram = function(vref, fref, attribs, locations) {\n var token = [vref.id, fref.id, attribs.join(\":\"), locations.join(\":\")].join(\"@\");\n var prog = this.programs[token];\n if (!prog || !this.gl.isProgram(prog)) {\n this.programs[token] = prog = linkProgram(\n this.gl,\n vref.shader,\n fref.shader,\n attribs,\n locations\n );\n vref.programs.push(token);\n fref.programs.push(token);\n }\n return prog;\n };\n function getCache(gl2) {\n var ctxCache = CACHE.get(gl2);\n if (!ctxCache) {\n ctxCache = new ContextCache(gl2);\n CACHE.set(gl2, ctxCache);\n }\n return ctxCache;\n }\n function getShaderReference(gl2, type, src) {\n return getCache(gl2).getShaderReference(type, src);\n }\n function createProgram(gl2, vref, fref, attribs, locations) {\n return getCache(gl2).getProgram(vref, fref, attribs, locations);\n }\n }\n ),\n /***/\n 1493: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var vertSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, color;\\nattribute float weight;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 coordinates[3];\\nuniform vec4 colors[3];\\nuniform vec2 screenShape;\\nuniform float lineWidth;\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n vec3 vertexPosition = mix(coordinates[0],\\n mix(coordinates[2], coordinates[1], 0.5 * (position + 1.0)), abs(position));\\n\\n vec4 clipPos = projection * (view * (model * vec4(vertexPosition, 1.0)));\\n vec2 clipOffset = (projection * (view * (model * vec4(color, 0.0)))).xy;\\n vec2 delta = weight * clipOffset * screenShape;\\n vec2 lineOffset = normalize(vec2(delta.y, -delta.x)) / screenShape;\\n\\n gl_Position = vec4(clipPos.xy + clipPos.w * 0.5 * lineWidth * lineOffset, clipPos.z, clipPos.w);\\n fragColor = color.x * colors[0] + color.y * colors[1] + color.z * colors[2];\\n}\\n\"]);\n var fragSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n gl_FragColor = fragColor;\\n}\"]);\n module2.exports = function(gl2) {\n return createShader(gl2, vertSrc, fragSrc, null, [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec3\" },\n { name: \"weight\", type: \"float\" }\n ]);\n };\n }\n ),\n /***/\n 4449: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createShader = __webpack_require__2(1493);\n module2.exports = createSpikes;\n var identity2 = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function AxisSpikes(gl2, buffer, vao, shader) {\n this.gl = gl2;\n this.buffer = buffer;\n this.vao = vao;\n this.shader = shader;\n this.pixelRatio = 1;\n this.bounds = [[-1e3, -1e3, -1e3], [1e3, 1e3, 1e3]];\n this.position = [0, 0, 0];\n this.lineWidth = [2, 2, 2];\n this.colors = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.enabled = [true, true, true];\n this.drawSides = [true, true, true];\n this.axes = null;\n }\n var proto = AxisSpikes.prototype;\n var OUTER_FACE = [0, 0, 0];\n var INNER_FACE = [0, 0, 0];\n var SHAPE = [0, 0];\n proto.isTransparent = function() {\n return false;\n };\n proto.drawTransparent = function(camera) {\n };\n proto.draw = function(camera) {\n var gl2 = this.gl;\n var vao = this.vao;\n var shader = this.shader;\n vao.bind();\n shader.bind();\n var model = camera.model || identity2;\n var view = camera.view || identity2;\n var projection = camera.projection || identity2;\n var axis;\n if (this.axes) {\n axis = this.axes.lastCubeProps.axis;\n }\n var outerFace = OUTER_FACE;\n var innerFace = INNER_FACE;\n for (var i = 0; i < 3; ++i) {\n if (axis && axis[i] < 0) {\n outerFace[i] = this.bounds[0][i];\n innerFace[i] = this.bounds[1][i];\n } else {\n outerFace[i] = this.bounds[1][i];\n innerFace[i] = this.bounds[0][i];\n }\n }\n SHAPE[0] = gl2.drawingBufferWidth;\n SHAPE[1] = gl2.drawingBufferHeight;\n shader.uniforms.model = model;\n shader.uniforms.view = view;\n shader.uniforms.projection = projection;\n shader.uniforms.coordinates = [this.position, outerFace, innerFace];\n shader.uniforms.colors = this.colors;\n shader.uniforms.screenShape = SHAPE;\n for (var i = 0; i < 3; ++i) {\n shader.uniforms.lineWidth = this.lineWidth[i] * this.pixelRatio;\n if (this.enabled[i]) {\n vao.draw(gl2.TRIANGLES, 6, 6 * i);\n if (this.drawSides[i]) {\n vao.draw(gl2.TRIANGLES, 12, 18 + 12 * i);\n }\n }\n }\n vao.unbind();\n };\n proto.update = function(options) {\n if (!options) {\n return;\n }\n if (\"bounds\" in options) {\n this.bounds = options.bounds;\n }\n if (\"position\" in options) {\n this.position = options.position;\n }\n if (\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth;\n }\n if (\"colors\" in options) {\n this.colors = options.colors;\n }\n if (\"enabled\" in options) {\n this.enabled = options.enabled;\n }\n if (\"drawSides\" in options) {\n this.drawSides = options.drawSides;\n }\n };\n proto.dispose = function() {\n this.vao.dispose();\n this.buffer.dispose();\n this.shader.dispose();\n };\n function createSpikes(gl2, options) {\n var data = [];\n function line(x, y, z, i, l, h) {\n var row = [x, y, z, 0, 0, 0, 1];\n row[i + 3] = 1;\n row[i] = l;\n data.push.apply(data, row);\n row[6] = -1;\n data.push.apply(data, row);\n row[i] = h;\n data.push.apply(data, row);\n data.push.apply(data, row);\n row[6] = 1;\n data.push.apply(data, row);\n row[i] = l;\n data.push.apply(data, row);\n }\n line(0, 0, 0, 0, 0, 1);\n line(0, 0, 0, 1, 0, 1);\n line(0, 0, 0, 2, 0, 1);\n line(1, 0, 0, 1, -1, 1);\n line(1, 0, 0, 2, -1, 1);\n line(0, 1, 0, 0, -1, 1);\n line(0, 1, 0, 2, -1, 1);\n line(0, 0, 1, 0, -1, 1);\n line(0, 0, 1, 1, -1, 1);\n var buffer = createBuffer(gl2, data);\n var vao = createVAO(gl2, [{\n type: gl2.FLOAT,\n buffer,\n size: 3,\n offset: 0,\n stride: 28\n }, {\n type: gl2.FLOAT,\n buffer,\n size: 3,\n offset: 12,\n stride: 28\n }, {\n type: gl2.FLOAT,\n buffer,\n size: 1,\n offset: 24,\n stride: 28\n }]);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 1;\n shader.attributes.weight.location = 2;\n var spikes = new AxisSpikes(gl2, buffer, vao, shader);\n spikes.update(options);\n return spikes;\n }\n }\n ),\n /***/\n 6740: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var triVertSrc = glslify([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the tube vertex and normal at the given index.\\n//\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\n//\\n// Each tube segment is made up of a ring of vertices.\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\n// The indexes of tube segments run from 0 to 8.\\n//\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\n float segmentCount = 8.0;\\n\\n float angle = 2.0 * 3.14159 * (index / segmentCount);\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d);\\n vec3 y = v * sin(angle) * length(d);\\n vec3 v3 = x + y;\\n\\n normal = normalize(v3);\\n\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 color, position;\\nattribute vec2 uv;\\n\\nuniform float vectorScale, tubeScale;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 eyePosition, lightPosition;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n // Scale the vector magnitude to stay constant with\\n // model & view changes.\\n vec3 normal;\\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * tubePosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n // vec4 m_position = model * vec4(tubePosition, 1.0);\\n vec4 t_position = view * tubePosition;\\n gl_Position = projection * t_position;\\n\\n f_color = color;\\n f_data = tubePosition.xyz;\\n f_position = position.xyz;\\n f_uv = uv;\\n}\\n\"]);\n var triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * opacity;\\n}\\n\"]);\n var pickVertSrc = glslify([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the tube vertex and normal at the given index.\\n//\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\n//\\n// Each tube segment is made up of a ring of vertices.\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\n// The indexes of tube segments run from 0 to 8.\\n//\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\n float segmentCount = 8.0;\\n\\n float angle = 2.0 * 3.14159 * (index / segmentCount);\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d);\\n vec3 y = v * sin(angle) * length(d);\\n vec3 v3 = x + y;\\n\\n normal = normalize(v3);\\n\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform float tubeScale;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n vec3 normal;\\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n gl_Position = projection * (view * tubePosition);\\n f_id = id;\\n f_position = position.xyz;\\n}\\n\"]);\n var pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]);\n exports2.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n { name: \"position\", type: \"vec4\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" },\n { name: \"vector\", type: \"vec4\" }\n ]\n };\n exports2.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n { name: \"position\", type: \"vec4\" },\n { name: \"id\", type: \"vec4\" },\n { name: \"vector\", type: \"vec4\" }\n ]\n };\n }\n ),\n /***/\n 7815: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var vec3 = __webpack_require__2(2931);\n var vec4 = __webpack_require__2(9970);\n var GRID_TYPES = [\"xyz\", \"xzy\", \"yxz\", \"yzx\", \"zxy\", \"zyx\"];\n var streamToTube = function(stream, maxDivergence, minDistance, maxNorm) {\n var points = stream.points;\n var velocities = stream.velocities;\n var divergences = stream.divergences;\n var verts = [];\n var faces = [];\n var vectors = [];\n var previousVerts = [];\n var currentVerts = [];\n var intensities = [];\n var previousIntensity = 0;\n var currentIntensity = 0;\n var currentVector = vec4.create();\n var previousVector = vec4.create();\n var facets = 8;\n for (var i = 0; i < points.length; i++) {\n var p = points[i];\n var fwd = velocities[i];\n var r = divergences[i];\n if (maxDivergence === 0) {\n r = minDistance * 0.05;\n }\n currentIntensity = vec3.length(fwd) / maxNorm;\n currentVector = vec4.create();\n vec3.copy(currentVector, fwd);\n currentVector[3] = r;\n for (var a = 0; a < facets; a++) {\n currentVerts[a] = [p[0], p[1], p[2], a];\n }\n if (previousVerts.length > 0) {\n for (var a = 0; a < facets; a++) {\n var a1 = (a + 1) % facets;\n verts.push(\n previousVerts[a],\n currentVerts[a],\n currentVerts[a1],\n currentVerts[a1],\n previousVerts[a1],\n previousVerts[a]\n );\n vectors.push(\n previousVector,\n currentVector,\n currentVector,\n currentVector,\n previousVector,\n previousVector\n );\n intensities.push(\n previousIntensity,\n currentIntensity,\n currentIntensity,\n currentIntensity,\n previousIntensity,\n previousIntensity\n );\n var len = verts.length;\n faces.push(\n [len - 6, len - 5, len - 4],\n [len - 3, len - 2, len - 1]\n );\n }\n }\n var tmp1 = previousVerts;\n previousVerts = currentVerts;\n currentVerts = tmp1;\n var tmp2 = previousVector;\n previousVector = currentVector;\n currentVector = tmp2;\n var tmp3 = previousIntensity;\n previousIntensity = currentIntensity;\n currentIntensity = tmp3;\n }\n return {\n positions: verts,\n cells: faces,\n vectors,\n vertexIntensity: intensities\n };\n };\n var createTubes = function(streams, colormap, maxDivergence, minDistance) {\n var maxNorm = 0;\n for (var i = 0; i < streams.length; i++) {\n var velocities = streams[i].velocities;\n for (var j = 0; j < velocities.length; j++) {\n maxNorm = Math.max(\n maxNorm,\n vec3.length(velocities[j])\n );\n }\n }\n var tubes = streams.map(function(s) {\n return streamToTube(s, maxDivergence, minDistance, maxNorm);\n });\n var positions = [];\n var cells = [];\n var vectors = [];\n var vertexIntensity = [];\n for (var i = 0; i < tubes.length; i++) {\n var tube = tubes[i];\n var offset = positions.length;\n positions = positions.concat(tube.positions);\n vectors = vectors.concat(tube.vectors);\n vertexIntensity = vertexIntensity.concat(tube.vertexIntensity);\n for (var j = 0; j < tube.cells.length; j++) {\n var cell = tube.cells[j];\n var newCell = [];\n cells.push(newCell);\n for (var k = 0; k < cell.length; k++) {\n newCell.push(cell[k] + offset);\n }\n }\n }\n return {\n positions,\n cells,\n vectors,\n vertexIntensity,\n colormap\n };\n };\n var findLastSmallerIndex = function(points, v) {\n var len = points.length;\n var i;\n for (i = 0; i < len; i++) {\n var p = points[i];\n if (p === v) return i;\n else if (p > v) return i - 1;\n }\n return i;\n };\n var clamp = function(v, min, max) {\n return v < min ? min : v > max ? max : v;\n };\n var sampleMeshgrid = function(point, vectorField, gridInfo) {\n var vectors = vectorField.vectors;\n var meshgrid = vectorField.meshgrid;\n var x = point[0];\n var y = point[1];\n var z = point[2];\n var w = meshgrid[0].length;\n var h = meshgrid[1].length;\n var d = meshgrid[2].length;\n var x0 = findLastSmallerIndex(meshgrid[0], x);\n var y0 = findLastSmallerIndex(meshgrid[1], y);\n var z0 = findLastSmallerIndex(meshgrid[2], z);\n var x1 = x0 + 1;\n var y1 = y0 + 1;\n var z1 = z0 + 1;\n x0 = clamp(x0, 0, w - 1);\n x1 = clamp(x1, 0, w - 1);\n y0 = clamp(y0, 0, h - 1);\n y1 = clamp(y1, 0, h - 1);\n z0 = clamp(z0, 0, d - 1);\n z1 = clamp(z1, 0, d - 1);\n if (x0 < 0 || y0 < 0 || z0 < 0 || x1 > w - 1 || y1 > h - 1 || z1 > d - 1) {\n return vec3.create();\n }\n var mX0 = meshgrid[0][x0];\n var mX1 = meshgrid[0][x1];\n var mY0 = meshgrid[1][y0];\n var mY1 = meshgrid[1][y1];\n var mZ0 = meshgrid[2][z0];\n var mZ1 = meshgrid[2][z1];\n var xf = (x - mX0) / (mX1 - mX0);\n var yf = (y - mY0) / (mY1 - mY0);\n var zf = (z - mZ0) / (mZ1 - mZ0);\n if (!isFinite(xf)) xf = 0.5;\n if (!isFinite(yf)) yf = 0.5;\n if (!isFinite(zf)) zf = 0.5;\n var x0off;\n var x1off;\n var y0off;\n var y1off;\n var z0off;\n var z1off;\n if (gridInfo.reversedX) {\n x0 = w - 1 - x0;\n x1 = w - 1 - x1;\n }\n if (gridInfo.reversedY) {\n y0 = h - 1 - y0;\n y1 = h - 1 - y1;\n }\n if (gridInfo.reversedZ) {\n z0 = d - 1 - z0;\n z1 = d - 1 - z1;\n }\n switch (gridInfo.filled) {\n case 5:\n z0off = z0;\n z1off = z1;\n y0off = y0 * d;\n y1off = y1 * d;\n x0off = x0 * d * h;\n x1off = x1 * d * h;\n break;\n case 4:\n z0off = z0;\n z1off = z1;\n x0off = x0 * d;\n x1off = x1 * d;\n y0off = y0 * d * w;\n y1off = y1 * d * w;\n break;\n case 3:\n y0off = y0;\n y1off = y1;\n z0off = z0 * h;\n z1off = z1 * h;\n x0off = x0 * h * d;\n x1off = x1 * h * d;\n break;\n case 2:\n y0off = y0;\n y1off = y1;\n x0off = x0 * h;\n x1off = x1 * h;\n z0off = z0 * h * w;\n z1off = z1 * h * w;\n break;\n case 1:\n x0off = x0;\n x1off = x1;\n z0off = z0 * w;\n z1off = z1 * w;\n y0off = y0 * w * d;\n y1off = y1 * w * d;\n break;\n default:\n x0off = x0;\n x1off = x1;\n y0off = y0 * w;\n y1off = y1 * w;\n z0off = z0 * w * h;\n z1off = z1 * w * h;\n break;\n }\n var v000 = vectors[x0off + y0off + z0off];\n var v001 = vectors[x0off + y0off + z1off];\n var v010 = vectors[x0off + y1off + z0off];\n var v011 = vectors[x0off + y1off + z1off];\n var v100 = vectors[x1off + y0off + z0off];\n var v101 = vectors[x1off + y0off + z1off];\n var v110 = vectors[x1off + y1off + z0off];\n var v111 = vectors[x1off + y1off + z1off];\n var c00 = vec3.create();\n var c01 = vec3.create();\n var c10 = vec3.create();\n var c11 = vec3.create();\n vec3.lerp(c00, v000, v100, xf);\n vec3.lerp(c01, v001, v101, xf);\n vec3.lerp(c10, v010, v110, xf);\n vec3.lerp(c11, v011, v111, xf);\n var c0 = vec3.create();\n var c1 = vec3.create();\n vec3.lerp(c0, c00, c10, yf);\n vec3.lerp(c1, c01, c11, yf);\n var c = vec3.create();\n vec3.lerp(c, c0, c1, zf);\n return c;\n };\n var vabs = function(dst, v) {\n var x = v[0];\n var y = v[1];\n var z = v[2];\n dst[0] = x < 0 ? -x : x;\n dst[1] = y < 0 ? -y : y;\n dst[2] = z < 0 ? -z : z;\n return dst;\n };\n var findMinSeparation = function(xs) {\n var minSeparation = Infinity;\n xs.sort(function(a, b) {\n return a - b;\n });\n var len = xs.length;\n for (var i = 1; i < len; i++) {\n var d = Math.abs(xs[i] - xs[i - 1]);\n if (d < minSeparation) {\n minSeparation = d;\n }\n }\n return minSeparation;\n };\n var calculateMinPositionDistance = function(positions) {\n var xs = [], ys = [], zs = [];\n var xi = {}, yi = {}, zi = {};\n var len = positions.length;\n for (var i = 0; i < len; i++) {\n var p = positions[i];\n var x = p[0], y = p[1], z = p[2];\n if (!xi[x]) {\n xs.push(x);\n xi[x] = true;\n }\n if (!yi[y]) {\n ys.push(y);\n yi[y] = true;\n }\n if (!zi[z]) {\n zs.push(z);\n zi[z] = true;\n }\n }\n var xSep = findMinSeparation(xs);\n var ySep = findMinSeparation(ys);\n var zSep = findMinSeparation(zs);\n var minSeparation = Math.min(xSep, ySep, zSep);\n return isFinite(minSeparation) ? minSeparation : 1;\n };\n module2.exports = function(vectorField, bounds) {\n var positions = vectorField.startingPositions;\n var maxLength = vectorField.maxLength || 1e3;\n var tubeSize = vectorField.tubeSize || 1;\n var absoluteTubeSize = vectorField.absoluteTubeSize;\n var gridFill = vectorField.gridFill || \"+x+y+z\";\n var gridInfo = {};\n if (gridFill.indexOf(\"-x\") !== -1) {\n gridInfo.reversedX = true;\n }\n if (gridFill.indexOf(\"-y\") !== -1) {\n gridInfo.reversedY = true;\n }\n if (gridFill.indexOf(\"-z\") !== -1) {\n gridInfo.reversedZ = true;\n }\n gridInfo.filled = GRID_TYPES.indexOf(gridFill.replace(/-/g, \"\").replace(/\\+/g, \"\"));\n var getVelocity = vectorField.getVelocity || function(p2) {\n return sampleMeshgrid(p2, vectorField, gridInfo);\n };\n var getDivergence = vectorField.getDivergence || function(p2, v0) {\n var dp = vec3.create();\n var e = 1e-4;\n vec3.add(dp, p2, [e, 0, 0]);\n var vx = getVelocity(dp);\n vec3.subtract(vx, vx, v0);\n vec3.scale(vx, vx, 1 / e);\n vec3.add(dp, p2, [0, e, 0]);\n var vy = getVelocity(dp);\n vec3.subtract(vy, vy, v0);\n vec3.scale(vy, vy, 1 / e);\n vec3.add(dp, p2, [0, 0, e]);\n var vz = getVelocity(dp);\n vec3.subtract(vz, vz, v0);\n vec3.scale(vz, vz, 1 / e);\n vec3.add(dp, vx, vy);\n vec3.add(dp, dp, vz);\n return dp;\n };\n var streams = [];\n var minX = bounds[0][0], minY = bounds[0][1], minZ = bounds[0][2];\n var maxX = bounds[1][0], maxY = bounds[1][1], maxZ = bounds[1][2];\n var inBounds = function(p2) {\n var x = p2[0];\n var y = p2[1];\n var z = p2[2];\n return !(x < minX || x > maxX || y < minY || y > maxY || z < minZ || z > maxZ);\n };\n var boundsSize = vec3.distance(bounds[0], bounds[1]);\n var maxStepSize = 10 * boundsSize / maxLength;\n var maxStepSizeSq = maxStepSize * maxStepSize;\n var minDistance = 1;\n var maxDivergence = 0;\n var len = positions.length;\n if (len > 1) {\n minDistance = calculateMinPositionDistance(positions);\n }\n for (var i = 0; i < len; i++) {\n var p = vec3.create();\n vec3.copy(p, positions[i]);\n var stream = [p];\n var velocities = [];\n var v = getVelocity(p);\n var op = p;\n velocities.push(v);\n var divergences = [];\n var dv = getDivergence(p, v);\n var dvLength = vec3.length(dv);\n if (isFinite(dvLength) && dvLength > maxDivergence) {\n maxDivergence = dvLength;\n }\n divergences.push(dvLength);\n streams.push({ points: stream, velocities, divergences });\n var j = 0;\n while (j < maxLength * 100 && stream.length < maxLength && inBounds(p)) {\n j++;\n var np = vec3.clone(v);\n var sqLen = vec3.squaredLength(np);\n if (sqLen === 0) {\n break;\n } else if (sqLen > maxStepSizeSq) {\n vec3.scale(np, np, maxStepSize / Math.sqrt(sqLen));\n }\n vec3.add(np, np, p);\n v = getVelocity(np);\n if (vec3.squaredDistance(op, np) - maxStepSizeSq > -1e-4 * maxStepSizeSq) {\n stream.push(np);\n op = np;\n velocities.push(v);\n var dv = getDivergence(np, v);\n var dvLength = vec3.length(dv);\n if (isFinite(dvLength) && dvLength > maxDivergence) {\n maxDivergence = dvLength;\n }\n divergences.push(dvLength);\n }\n p = np;\n }\n }\n var tubes = createTubes(streams, vectorField.colormap, maxDivergence, minDistance);\n if (absoluteTubeSize) {\n tubes.tubeScale = absoluteTubeSize;\n } else {\n if (maxDivergence === 0) {\n maxDivergence = 1;\n }\n tubes.tubeScale = tubeSize * 0.5 * minDistance / maxDivergence;\n }\n return tubes;\n };\n var shaders = __webpack_require__2(6740);\n var createMesh = __webpack_require__2(6405).createMesh;\n module2.exports.createTubeMesh = function(gl2, params) {\n return createMesh(gl2, params, {\n shaders,\n traceType: \"streamtube\"\n });\n };\n }\n ),\n /***/\n 990: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var createShader = __webpack_require__2(9405);\n var glslify = __webpack_require__2(3236);\n var vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute vec3 f;\\nattribute vec3 normal;\\n\\nuniform vec3 objectOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 lightPosition, eyePosition;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 localCoordinate = vec3(uv.zw, f.x);\\n worldCoordinate = objectOffset + localCoordinate;\\n mat4 objectOffsetTranslation = mat4(1.0) + mat4(vec4(0), vec4(0), vec4(0), vec4(objectOffset, 0));\\n vec4 worldPosition = (model * objectOffsetTranslation) * vec4(localCoordinate, 1.0);\\n vec4 clipPosition = projection * (view * worldPosition);\\n gl_Position = clipPosition;\\n kill = f.y;\\n value = f.z;\\n planeCoordinate = uv.xy;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * worldPosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n lightDirection = lightPosition - cameraCoordinate.xyz;\\n eyeDirection = eyePosition - cameraCoordinate.xyz;\\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\\n}\\n\"]);\n var fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat beckmannSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness) {\\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 lowerBound, upperBound;\\nuniform float contourTint;\\nuniform vec4 contourColor;\\nuniform sampler2D colormap;\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform float vertexColor;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n if (\\n kill > 0.0 ||\\n vColor.a == 0.0 ||\\n outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)\\n ) discard;\\n\\n vec3 N = normalize(surfaceNormal);\\n vec3 V = normalize(eyeDirection);\\n vec3 L = normalize(lightDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n //decide how to interpolate color \\u2014 in vertex or in fragment\\n vec4 surfaceColor =\\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\\n step(.5, vertexColor) * vColor;\\n\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\\n}\\n\"]);\n var contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute float f;\\n\\nuniform vec3 objectOffset;\\nuniform mat3 permutation;\\nuniform mat4 model, view, projection;\\nuniform float height, zOffset;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\\n worldCoordinate = objectOffset + dataCoordinate;\\n mat4 objectOffsetTranslation = mat4(1.0) + mat4(vec4(0), vec4(0), vec4(0), vec4(objectOffset, 0));\\n vec4 worldPosition = (model * objectOffsetTranslation) * vec4(dataCoordinate, 1.0);\\n\\n vec4 clipPosition = projection * (view * worldPosition);\\n clipPosition.z += zOffset;\\n\\n gl_Position = clipPosition;\\n value = f + objectOffset.z;\\n kill = -1.0;\\n planeCoordinate = uv.zw;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Don't do lighting for contours\\n surfaceNormal = vec3(1,0,0);\\n eyeDirection = vec3(0,1,0);\\n lightDirection = vec3(0,0,1);\\n}\\n\"]);\n var pickSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec2 shape;\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 surfaceNormal;\\n\\nvec2 splitFloat(float v) {\\n float vh = 255.0 * v;\\n float upper = floor(vh);\\n float lower = fract(vh);\\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\\n}\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\\n}\\n\"]);\n exports2.createShader = function(gl2) {\n var shader = createShader(gl2, vertSrc, fragSrc, null, [\n { name: \"uv\", type: \"vec4\" },\n { name: \"f\", type: \"vec3\" },\n { name: \"normal\", type: \"vec3\" }\n ]);\n shader.attributes.uv.location = 0;\n shader.attributes.f.location = 1;\n shader.attributes.normal.location = 2;\n return shader;\n };\n exports2.createPickShader = function(gl2) {\n var shader = createShader(gl2, vertSrc, pickSrc, null, [\n { name: \"uv\", type: \"vec4\" },\n { name: \"f\", type: \"vec3\" },\n { name: \"normal\", type: \"vec3\" }\n ]);\n shader.attributes.uv.location = 0;\n shader.attributes.f.location = 1;\n shader.attributes.normal.location = 2;\n return shader;\n };\n exports2.createContourShader = function(gl2) {\n var shader = createShader(gl2, contourVertSrc, fragSrc, null, [\n { name: \"uv\", type: \"vec4\" },\n { name: \"f\", type: \"float\" }\n ]);\n shader.attributes.uv.location = 0;\n shader.attributes.f.location = 1;\n return shader;\n };\n exports2.createPickContourShader = function(gl2) {\n var shader = createShader(gl2, contourVertSrc, pickSrc, null, [\n { name: \"uv\", type: \"vec4\" },\n { name: \"f\", type: \"float\" }\n ]);\n shader.attributes.uv.location = 0;\n shader.attributes.f.location = 1;\n return shader;\n };\n }\n ),\n /***/\n 9499: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createSurfacePlot;\n var bits = __webpack_require__2(8828);\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createTexture = __webpack_require__2(7766);\n var pool = __webpack_require__2(1888);\n var colormap = __webpack_require__2(6729);\n var ops = __webpack_require__2(5298);\n var pack = __webpack_require__2(9994);\n var ndarray = __webpack_require__2(9618);\n var surfaceNets = __webpack_require__2(3711);\n var multiply = __webpack_require__2(6760);\n var invert = __webpack_require__2(7608);\n var bsearch = __webpack_require__2(2478);\n var gradient = __webpack_require__2(6199);\n var shaders = __webpack_require__2(990);\n var createShader = shaders.createShader;\n var createContourShader = shaders.createContourShader;\n var createPickShader = shaders.createPickShader;\n var createPickContourShader = shaders.createPickContourShader;\n var SURFACE_VERTEX_SIZE = 4 * (4 + 3 + 3);\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n var QUAD = [\n [0, 0],\n [0, 1],\n [1, 0],\n [1, 1],\n [1, 0],\n [0, 1]\n ];\n var PERMUTATIONS = [\n [0, 0, 0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0, 0, 0]\n ];\n (function() {\n for (var i = 0; i < 3; ++i) {\n var p = PERMUTATIONS[i];\n var u = (i + 1) % 3;\n var v = (i + 2) % 3;\n p[u + 0] = 1;\n p[v + 3] = 1;\n p[i + 6] = 1;\n }\n })();\n function SurfacePickResult(position, index, uv, level, dataCoordinate) {\n this.position = position;\n this.index = index;\n this.uv = uv;\n this.level = level;\n this.dataCoordinate = dataCoordinate;\n }\n var N_COLORS = 256;\n function SurfacePlot(gl2, shape, bounds, shader, pickShader, coordinates, vao, colorMap, contourShader, contourPickShader, contourBuffer, contourVAO, dynamicBuffer, dynamicVAO, objectOffset) {\n this.gl = gl2;\n this.shape = shape;\n this.bounds = bounds;\n this.objectOffset = objectOffset;\n this.intensityBounds = [];\n this._shader = shader;\n this._pickShader = pickShader;\n this._coordinateBuffer = coordinates;\n this._vao = vao;\n this._colorMap = colorMap;\n this._contourShader = contourShader;\n this._contourPickShader = contourPickShader;\n this._contourBuffer = contourBuffer;\n this._contourVAO = contourVAO;\n this._contourOffsets = [[], [], []];\n this._contourCounts = [[], [], []];\n this._vertexCount = 0;\n this._pickResult = new SurfacePickResult([0, 0, 0], [0, 0], [0, 0], [0, 0, 0], [0, 0, 0]);\n this._dynamicBuffer = dynamicBuffer;\n this._dynamicVAO = dynamicVAO;\n this._dynamicOffsets = [0, 0, 0];\n this._dynamicCounts = [0, 0, 0];\n this.contourWidth = [1, 1, 1];\n this.contourLevels = [[1], [1], [1]];\n this.contourTint = [0, 0, 0];\n this.contourColor = [[0.5, 0.5, 0.5, 1], [0.5, 0.5, 0.5, 1], [0.5, 0.5, 0.5, 1]];\n this.showContour = true;\n this.showSurface = true;\n this.enableHighlight = [true, true, true];\n this.highlightColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.highlightTint = [1, 1, 1];\n this.highlightLevel = [-1, -1, -1];\n this.enableDynamic = [true, true, true];\n this.dynamicLevel = [NaN, NaN, NaN];\n this.dynamicColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.dynamicTint = [1, 1, 1];\n this.dynamicWidth = [1, 1, 1];\n this.axesBounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];\n this.surfaceProject = [false, false, false];\n this.contourProject = [\n [false, false, false],\n [false, false, false],\n [false, false, false]\n ];\n this.colorBounds = [false, false];\n this._field = [\n ndarray(pool.mallocFloat(1024), [0, 0]),\n ndarray(pool.mallocFloat(1024), [0, 0]),\n ndarray(pool.mallocFloat(1024), [0, 0])\n ];\n this.pickId = 1;\n this.clipBounds = [[-Infinity, -Infinity, -Infinity], [Infinity, Infinity, Infinity]];\n this.snapToData = false;\n this.pixelRatio = 1;\n this.opacity = 1;\n this.lightPosition = [10, 1e4, 0];\n this.ambientLight = 0.8;\n this.diffuseLight = 0.8;\n this.specularLight = 2;\n this.roughness = 0.5;\n this.fresnel = 1.5;\n this.vertexColor = 0;\n this.dirty = true;\n }\n var proto = SurfacePlot.prototype;\n proto.genColormap = function(name2, opacityscale) {\n var hasAlpha = false;\n var x = pack([colormap({\n colormap: name2,\n nshades: N_COLORS,\n format: \"rgba\"\n }).map(function(c, i) {\n var a = opacityscale ? getOpacityFromScale(i / 255, opacityscale) : c[3];\n if (a < 1) hasAlpha = true;\n return [c[0], c[1], c[2], 255 * a];\n })]);\n ops.divseq(x, 255);\n this.hasAlphaScale = hasAlpha;\n return x;\n };\n proto.isTransparent = function() {\n return this.opacity < 1 || this.hasAlphaScale;\n };\n proto.isOpaque = function() {\n return !this.isTransparent();\n };\n proto.pickSlots = 1;\n proto.setPickBase = function(id) {\n this.pickId = id;\n };\n function getOpacityFromScale(ratio, opacityscale) {\n if (!opacityscale) return 1;\n if (!opacityscale.length) return 1;\n for (var i = 0; i < opacityscale.length; ++i) {\n if (opacityscale.length < 2) return 1;\n if (opacityscale[i][0] === ratio) return opacityscale[i][1];\n if (opacityscale[i][0] > ratio && i > 0) {\n var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0]);\n return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1];\n }\n }\n return 1;\n }\n var ZERO_VEC = [0, 0, 0];\n var PROJECT_DATA = {\n showSurface: false,\n showContour: false,\n projections: [IDENTITY.slice(), IDENTITY.slice(), IDENTITY.slice()],\n clipBounds: [\n [[0, 0, 0], [0, 0, 0]],\n [[0, 0, 0], [0, 0, 0]],\n [[0, 0, 0], [0, 0, 0]]\n ]\n };\n function computeProjectionData(camera, obj) {\n var i, j, k;\n var cubeAxis = obj.axes && obj.axes.lastCubeProps.axis || ZERO_VEC;\n var showSurface = obj.showSurface;\n var showContour = obj.showContour;\n for (i = 0; i < 3; ++i) {\n showSurface = showSurface || obj.surfaceProject[i];\n for (j = 0; j < 3; ++j) {\n showContour = showContour || obj.contourProject[i][j];\n }\n }\n for (i = 0; i < 3; ++i) {\n var axisSquish = PROJECT_DATA.projections[i];\n for (j = 0; j < 16; ++j) {\n axisSquish[j] = 0;\n }\n for (j = 0; j < 4; ++j) {\n axisSquish[5 * j] = 1;\n }\n axisSquish[5 * i] = 0;\n axisSquish[12 + i] = obj.axesBounds[+(cubeAxis[i] > 0)][i];\n multiply(axisSquish, camera.model, axisSquish);\n var nclipBounds = PROJECT_DATA.clipBounds[i];\n for (k = 0; k < 2; ++k) {\n for (j = 0; j < 3; ++j) {\n nclipBounds[k][j] = camera.clipBounds[k][j];\n }\n }\n nclipBounds[0][i] = -1e8;\n nclipBounds[1][i] = 1e8;\n }\n PROJECT_DATA.showSurface = showSurface;\n PROJECT_DATA.showContour = showContour;\n return PROJECT_DATA;\n }\n var UNIFORMS = {\n model: IDENTITY,\n view: IDENTITY,\n projection: IDENTITY,\n inverseModel: IDENTITY.slice(),\n lowerBound: [0, 0, 0],\n upperBound: [0, 0, 0],\n colorMap: 0,\n clipBounds: [[0, 0, 0], [0, 0, 0]],\n height: 0,\n contourTint: 0,\n contourColor: [0, 0, 0, 1],\n permutation: [1, 0, 0, 0, 1, 0, 0, 0, 1],\n zOffset: -1e-4,\n objectOffset: [0, 0, 0],\n kambient: 1,\n kdiffuse: 1,\n kspecular: 1,\n lightPosition: [1e3, 1e3, 1e3],\n eyePosition: [0, 0, 0],\n roughness: 1,\n fresnel: 1,\n opacity: 1,\n vertexColor: 0\n };\n var MATRIX_INVERSE = IDENTITY.slice();\n var DEFAULT_PERM = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n function drawCore(params, transparent) {\n params = params || {};\n var gl2 = this.gl;\n gl2.disable(gl2.CULL_FACE);\n this._colorMap.bind(0);\n var uniforms = UNIFORMS;\n uniforms.model = params.model || IDENTITY;\n uniforms.view = params.view || IDENTITY;\n uniforms.projection = params.projection || IDENTITY;\n uniforms.lowerBound = [this.bounds[0][0], this.bounds[0][1], this.colorBounds[0] || this.bounds[0][2]];\n uniforms.upperBound = [this.bounds[1][0], this.bounds[1][1], this.colorBounds[1] || this.bounds[1][2]];\n uniforms.objectOffset = this.objectOffset;\n uniforms.contourColor = this.contourColor[0];\n uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model);\n for (var i = 0; i < 2; ++i) {\n var clipClamped = uniforms.clipBounds[i];\n for (var j = 0; j < 3; ++j) {\n clipClamped[j] = Math.min(Math.max(this.clipBounds[i][j], -1e8), 1e8);\n }\n }\n uniforms.kambient = this.ambientLight;\n uniforms.kdiffuse = this.diffuseLight;\n uniforms.kspecular = this.specularLight;\n uniforms.roughness = this.roughness;\n uniforms.fresnel = this.fresnel;\n uniforms.opacity = this.opacity;\n uniforms.height = 0;\n uniforms.permutation = DEFAULT_PERM;\n uniforms.vertexColor = this.vertexColor;\n var invCameraMatrix = MATRIX_INVERSE;\n multiply(invCameraMatrix, uniforms.view, uniforms.model);\n multiply(invCameraMatrix, uniforms.projection, invCameraMatrix);\n invert(invCameraMatrix, invCameraMatrix);\n for (i = 0; i < 3; ++i) {\n uniforms.eyePosition[i] = invCameraMatrix[12 + i] / invCameraMatrix[15];\n }\n var w = invCameraMatrix[15];\n for (i = 0; i < 3; ++i) {\n w += this.lightPosition[i] * invCameraMatrix[4 * i + 3];\n }\n for (i = 0; i < 3; ++i) {\n var s = invCameraMatrix[12 + i];\n for (j = 0; j < 3; ++j) {\n s += invCameraMatrix[4 * j + i] * this.lightPosition[j];\n }\n uniforms.lightPosition[i] = s / w;\n }\n var projectData = computeProjectionData(uniforms, this);\n if (projectData.showSurface) {\n this._shader.bind();\n this._shader.uniforms = uniforms;\n this._vao.bind();\n if (this.showSurface && this._vertexCount) {\n this._vao.draw(gl2.TRIANGLES, this._vertexCount);\n }\n for (i = 0; i < 3; ++i) {\n if (!this.surfaceProject[i] || !this.vertexCount) {\n continue;\n }\n this._shader.uniforms.model = projectData.projections[i];\n this._shader.uniforms.clipBounds = projectData.clipBounds[i];\n this._vao.draw(gl2.TRIANGLES, this._vertexCount);\n }\n this._vao.unbind();\n }\n if (projectData.showContour) {\n var shader = this._contourShader;\n uniforms.kambient = 1;\n uniforms.kdiffuse = 0;\n uniforms.kspecular = 0;\n uniforms.opacity = 1;\n shader.bind();\n shader.uniforms = uniforms;\n var vao = this._contourVAO;\n vao.bind();\n for (i = 0; i < 3; ++i) {\n shader.uniforms.permutation = PERMUTATIONS[i];\n gl2.lineWidth(this.contourWidth[i] * this.pixelRatio);\n for (j = 0; j < this.contourLevels[i].length; ++j) {\n if (j === this.highlightLevel[i]) {\n shader.uniforms.contourColor = this.highlightColor[i];\n shader.uniforms.contourTint = this.highlightTint[i];\n } else if (j === 0 || j - 1 === this.highlightLevel[i]) {\n shader.uniforms.contourColor = this.contourColor[i];\n shader.uniforms.contourTint = this.contourTint[i];\n }\n if (!this._contourCounts[i][j]) {\n continue;\n }\n shader.uniforms.height = this.contourLevels[i][j];\n vao.draw(gl2.LINES, this._contourCounts[i][j], this._contourOffsets[i][j]);\n }\n }\n for (i = 0; i < 3; ++i) {\n shader.uniforms.model = projectData.projections[i];\n shader.uniforms.clipBounds = projectData.clipBounds[i];\n for (j = 0; j < 3; ++j) {\n if (!this.contourProject[i][j]) {\n continue;\n }\n shader.uniforms.permutation = PERMUTATIONS[j];\n gl2.lineWidth(this.contourWidth[j] * this.pixelRatio);\n for (var k = 0; k < this.contourLevels[j].length; ++k) {\n if (k === this.highlightLevel[j]) {\n shader.uniforms.contourColor = this.highlightColor[j];\n shader.uniforms.contourTint = this.highlightTint[j];\n } else if (k === 0 || k - 1 === this.highlightLevel[j]) {\n shader.uniforms.contourColor = this.contourColor[j];\n shader.uniforms.contourTint = this.contourTint[j];\n }\n if (!this._contourCounts[j][k]) {\n continue;\n }\n shader.uniforms.height = this.contourLevels[j][k];\n vao.draw(gl2.LINES, this._contourCounts[j][k], this._contourOffsets[j][k]);\n }\n }\n }\n vao.unbind();\n vao = this._dynamicVAO;\n vao.bind();\n for (i = 0; i < 3; ++i) {\n if (this._dynamicCounts[i] === 0) {\n continue;\n }\n shader.uniforms.model = uniforms.model;\n shader.uniforms.clipBounds = uniforms.clipBounds;\n shader.uniforms.permutation = PERMUTATIONS[i];\n gl2.lineWidth(this.dynamicWidth[i] * this.pixelRatio);\n shader.uniforms.contourColor = this.dynamicColor[i];\n shader.uniforms.contourTint = this.dynamicTint[i];\n shader.uniforms.height = this.dynamicLevel[i];\n vao.draw(gl2.LINES, this._dynamicCounts[i], this._dynamicOffsets[i]);\n for (j = 0; j < 3; ++j) {\n if (!this.contourProject[j][i]) {\n continue;\n }\n shader.uniforms.model = projectData.projections[j];\n shader.uniforms.clipBounds = projectData.clipBounds[j];\n vao.draw(gl2.LINES, this._dynamicCounts[i], this._dynamicOffsets[i]);\n }\n }\n vao.unbind();\n }\n }\n proto.draw = function(params) {\n return drawCore.call(this, params, false);\n };\n proto.drawTransparent = function(params) {\n return drawCore.call(this, params, true);\n };\n var PICK_UNIFORMS = {\n model: IDENTITY,\n view: IDENTITY,\n projection: IDENTITY,\n inverseModel: IDENTITY,\n clipBounds: [[0, 0, 0], [0, 0, 0]],\n height: 0,\n shape: [0, 0],\n pickId: 0,\n lowerBound: [0, 0, 0],\n upperBound: [0, 0, 0],\n zOffset: 0,\n objectOffset: [0, 0, 0],\n permutation: [1, 0, 0, 0, 1, 0, 0, 0, 1],\n lightPosition: [0, 0, 0],\n eyePosition: [0, 0, 0]\n };\n proto.drawPick = function(params) {\n params = params || {};\n var gl2 = this.gl;\n gl2.disable(gl2.CULL_FACE);\n var uniforms = PICK_UNIFORMS;\n uniforms.model = params.model || IDENTITY;\n uniforms.view = params.view || IDENTITY;\n uniforms.projection = params.projection || IDENTITY;\n uniforms.shape = this._field[2].shape;\n uniforms.pickId = this.pickId / 255;\n uniforms.lowerBound = this.bounds[0];\n uniforms.upperBound = this.bounds[1];\n uniforms.objectOffset = this.objectOffset;\n uniforms.permutation = DEFAULT_PERM;\n for (var i = 0; i < 2; ++i) {\n var clipClamped = uniforms.clipBounds[i];\n for (var j = 0; j < 3; ++j) {\n clipClamped[j] = Math.min(Math.max(this.clipBounds[i][j], -1e8), 1e8);\n }\n }\n var projectData = computeProjectionData(uniforms, this);\n if (projectData.showSurface) {\n this._pickShader.bind();\n this._pickShader.uniforms = uniforms;\n this._vao.bind();\n this._vao.draw(gl2.TRIANGLES, this._vertexCount);\n for (i = 0; i < 3; ++i) {\n if (!this.surfaceProject[i]) {\n continue;\n }\n this._pickShader.uniforms.model = projectData.projections[i];\n this._pickShader.uniforms.clipBounds = projectData.clipBounds[i];\n this._vao.draw(gl2.TRIANGLES, this._vertexCount);\n }\n this._vao.unbind();\n }\n if (projectData.showContour) {\n var shader = this._contourPickShader;\n shader.bind();\n shader.uniforms = uniforms;\n var vao = this._contourVAO;\n vao.bind();\n for (j = 0; j < 3; ++j) {\n gl2.lineWidth(this.contourWidth[j] * this.pixelRatio);\n shader.uniforms.permutation = PERMUTATIONS[j];\n for (i = 0; i < this.contourLevels[j].length; ++i) {\n if (this._contourCounts[j][i]) {\n shader.uniforms.height = this.contourLevels[j][i];\n vao.draw(gl2.LINES, this._contourCounts[j][i], this._contourOffsets[j][i]);\n }\n }\n }\n for (i = 0; i < 3; ++i) {\n shader.uniforms.model = projectData.projections[i];\n shader.uniforms.clipBounds = projectData.clipBounds[i];\n for (j = 0; j < 3; ++j) {\n if (!this.contourProject[i][j]) {\n continue;\n }\n shader.uniforms.permutation = PERMUTATIONS[j];\n gl2.lineWidth(this.contourWidth[j] * this.pixelRatio);\n for (var k = 0; k < this.contourLevels[j].length; ++k) {\n if (this._contourCounts[j][k]) {\n shader.uniforms.height = this.contourLevels[j][k];\n vao.draw(gl2.LINES, this._contourCounts[j][k], this._contourOffsets[j][k]);\n }\n }\n }\n }\n vao.unbind();\n }\n };\n proto.pick = function(selection) {\n if (!selection) {\n return null;\n }\n if (selection.id !== this.pickId) {\n return null;\n }\n var shape = this._field[2].shape;\n var result = this._pickResult;\n var x = shape[0] * (selection.value[0] + (selection.value[2] >> 4) / 16) / 255;\n var ix = Math.floor(x);\n var fx = x - ix;\n var y = shape[1] * (selection.value[1] + (selection.value[2] & 15) / 16) / 255;\n var iy = Math.floor(y);\n var fy = y - iy;\n ix += 1;\n iy += 1;\n var pos = result.position;\n pos[0] = pos[1] = pos[2] = 0;\n for (var dx = 0; dx < 2; ++dx) {\n var s = dx ? fx : 1 - fx;\n for (var dy = 0; dy < 2; ++dy) {\n var t = dy ? fy : 1 - fy;\n var r = ix + dx;\n var c = iy + dy;\n var w = s * t;\n for (var i = 0; i < 3; ++i) {\n pos[i] += this._field[i].get(r, c) * w;\n }\n }\n }\n var levelIndex = this._pickResult.level;\n for (var j = 0; j < 3; ++j) {\n levelIndex[j] = bsearch.le(this.contourLevels[j], pos[j]);\n if (levelIndex[j] < 0) {\n if (this.contourLevels[j].length > 0) {\n levelIndex[j] = 0;\n }\n } else if (levelIndex[j] < this.contourLevels[j].length - 1) {\n var a = this.contourLevels[j][levelIndex[j]];\n var b = this.contourLevels[j][levelIndex[j] + 1];\n if (Math.abs(a - pos[j]) > Math.abs(b - pos[j])) {\n levelIndex[j] += 1;\n }\n }\n }\n result.index[0] = fx < 0.5 ? ix : ix + 1;\n result.index[1] = fy < 0.5 ? iy : iy + 1;\n result.uv[0] = x / shape[0];\n result.uv[1] = y / shape[1];\n for (i = 0; i < 3; ++i) {\n result.dataCoordinate[i] = this._field[i].get(result.index[0], result.index[1]);\n }\n return result;\n };\n proto.padField = function(dstField, srcField) {\n var srcShape = srcField.shape.slice();\n var dstShape = dstField.shape.slice();\n ops.assign(dstField.lo(1, 1).hi(srcShape[0], srcShape[1]), srcField);\n ops.assign(\n dstField.lo(1).hi(srcShape[0], 1),\n srcField.hi(srcShape[0], 1)\n );\n ops.assign(\n dstField.lo(1, dstShape[1] - 1).hi(srcShape[0], 1),\n srcField.lo(0, srcShape[1] - 1).hi(srcShape[0], 1)\n );\n ops.assign(\n dstField.lo(0, 1).hi(1, srcShape[1]),\n srcField.hi(1)\n );\n ops.assign(\n dstField.lo(dstShape[0] - 1, 1).hi(1, srcShape[1]),\n srcField.lo(srcShape[0] - 1)\n );\n dstField.set(0, 0, srcField.get(0, 0));\n dstField.set(0, dstShape[1] - 1, srcField.get(0, srcShape[1] - 1));\n dstField.set(dstShape[0] - 1, 0, srcField.get(srcShape[0] - 1, 0));\n dstField.set(dstShape[0] - 1, dstShape[1] - 1, srcField.get(srcShape[0] - 1, srcShape[1] - 1));\n };\n function handleArray(param, ctor) {\n if (Array.isArray(param)) {\n return [ctor(param[0]), ctor(param[1]), ctor(param[2])];\n }\n return [ctor(param), ctor(param), ctor(param)];\n }\n function toColor(x) {\n if (Array.isArray(x)) {\n if (x.length === 3) {\n return [x[0], x[1], x[2], 1];\n }\n return [x[0], x[1], x[2], x[3]];\n }\n return [0, 0, 0, 1];\n }\n function handleColor(param) {\n if (Array.isArray(param)) {\n if (Array.isArray(param)) {\n return [\n toColor(param[0]),\n toColor(param[1]),\n toColor(param[2])\n ];\n } else {\n var c = toColor(param);\n return [\n c.slice(),\n c.slice(),\n c.slice()\n ];\n }\n }\n }\n proto.update = function(params) {\n params = params || {};\n this.objectOffset = params.objectOffset || this.objectOffset;\n this.dirty = true;\n if (\"contourWidth\" in params) {\n this.contourWidth = handleArray(params.contourWidth, Number);\n }\n if (\"showContour\" in params) {\n this.showContour = handleArray(params.showContour, Boolean);\n }\n if (\"showSurface\" in params) {\n this.showSurface = !!params.showSurface;\n }\n if (\"contourTint\" in params) {\n this.contourTint = handleArray(params.contourTint, Boolean);\n }\n if (\"contourColor\" in params) {\n this.contourColor = handleColor(params.contourColor);\n }\n if (\"contourProject\" in params) {\n this.contourProject = handleArray(params.contourProject, function(x2) {\n return handleArray(x2, Boolean);\n });\n }\n if (\"surfaceProject\" in params) {\n this.surfaceProject = params.surfaceProject;\n }\n if (\"dynamicColor\" in params) {\n this.dynamicColor = handleColor(params.dynamicColor);\n }\n if (\"dynamicTint\" in params) {\n this.dynamicTint = handleArray(params.dynamicTint, Number);\n }\n if (\"dynamicWidth\" in params) {\n this.dynamicWidth = handleArray(params.dynamicWidth, Number);\n }\n if (\"opacity\" in params) {\n this.opacity = params.opacity;\n }\n if (\"opacityscale\" in params) {\n this.opacityscale = params.opacityscale;\n }\n if (\"colorBounds\" in params) {\n this.colorBounds = params.colorBounds;\n }\n if (\"vertexColor\" in params) {\n this.vertexColor = params.vertexColor ? 1 : 0;\n }\n if (\"colormap\" in params) {\n this._colorMap.setPixels(this.genColormap(params.colormap, this.opacityscale));\n }\n var field = params.field || params.coords && params.coords[2] || null;\n var levelsChanged = false;\n if (!field) {\n if (this._field[2].shape[0] || this._field[2].shape[2]) {\n field = this._field[2].lo(1, 1).hi(this._field[2].shape[0] - 2, this._field[2].shape[1] - 2);\n } else {\n field = this._field[2].hi(0, 0);\n }\n }\n if (\"field\" in params || \"coords\" in params) {\n var fsize = (field.shape[0] + 2) * (field.shape[1] + 2);\n if (fsize > this._field[2].data.length) {\n pool.freeFloat(this._field[2].data);\n this._field[2].data = pool.mallocFloat(bits.nextPow2(fsize));\n }\n this._field[2] = ndarray(this._field[2].data, [field.shape[0] + 2, field.shape[1] + 2]);\n this.padField(this._field[2], field);\n this.shape = field.shape.slice();\n var shape = this.shape;\n for (var i = 0; i < 2; ++i) {\n if (this._field[2].size > this._field[i].data.length) {\n pool.freeFloat(this._field[i].data);\n this._field[i].data = pool.mallocFloat(this._field[2].size);\n }\n this._field[i] = ndarray(this._field[i].data, [shape[0] + 2, shape[1] + 2]);\n }\n if (params.coords) {\n var coords = params.coords;\n if (!Array.isArray(coords) || coords.length !== 3) {\n throw new Error(\"gl-surface: invalid coordinates for x/y\");\n }\n for (i = 0; i < 2; ++i) {\n var coord = coords[i];\n for (j = 0; j < 2; ++j) {\n if (coord.shape[j] !== shape[j]) {\n throw new Error(\"gl-surface: coords have incorrect shape\");\n }\n }\n this.padField(this._field[i], coord);\n }\n } else if (params.ticks) {\n var ticks = params.ticks;\n if (!Array.isArray(ticks) || ticks.length !== 2) {\n throw new Error(\"gl-surface: invalid ticks\");\n }\n for (i = 0; i < 2; ++i) {\n var tick = ticks[i];\n if (Array.isArray(tick) || tick.length) {\n tick = ndarray(tick);\n }\n if (tick.shape[0] !== shape[i]) {\n throw new Error(\"gl-surface: invalid tick length\");\n }\n var tick2 = ndarray(tick.data, shape);\n tick2.stride[i] = tick.stride[0];\n tick2.stride[i ^ 1] = 0;\n this.padField(this._field[i], tick2);\n }\n } else {\n for (i = 0; i < 2; ++i) {\n var offset = [0, 0];\n offset[i] = 1;\n this._field[i] = ndarray(this._field[i].data, [shape[0] + 2, shape[1] + 2], offset, 0);\n }\n this._field[0].set(0, 0, 0);\n for (var j = 0; j < shape[0]; ++j) {\n this._field[0].set(j + 1, 0, j);\n }\n this._field[0].set(shape[0] + 1, 0, shape[0] - 1);\n this._field[1].set(0, 0, 0);\n for (j = 0; j < shape[1]; ++j) {\n this._field[1].set(0, j + 1, j);\n }\n this._field[1].set(0, shape[1] + 1, shape[1] - 1);\n }\n var fields = this._field;\n var dfields = ndarray(pool.mallocFloat(fields[2].size * 3 * 2), [3, shape[0] + 2, shape[1] + 2, 2]);\n for (i = 0; i < 3; ++i) {\n gradient(dfields.pick(i), fields[i], \"mirror\");\n }\n var normals = ndarray(pool.mallocFloat(fields[2].size * 3), [shape[0] + 2, shape[1] + 2, 3]);\n for (i = 0; i < shape[0] + 2; ++i) {\n for (j = 0; j < shape[1] + 2; ++j) {\n var dxdu = dfields.get(0, i, j, 0);\n var dxdv = dfields.get(0, i, j, 1);\n var dydu = dfields.get(1, i, j, 0);\n var dydv = dfields.get(1, i, j, 1);\n var dzdu = dfields.get(2, i, j, 0);\n var dzdv = dfields.get(2, i, j, 1);\n var nx = dydu * dzdv - dydv * dzdu;\n var ny = dzdu * dxdv - dzdv * dxdu;\n var nz = dxdu * dydv - dxdv * dydu;\n var nl = Math.sqrt(nx * nx + ny * ny + nz * nz);\n if (nl < 1e-8) {\n nl = Math.max(Math.abs(nx), Math.abs(ny), Math.abs(nz));\n if (nl < 1e-8) {\n nz = 1;\n ny = nx = 0;\n nl = 1;\n } else {\n nl = 1 / nl;\n }\n } else {\n nl = 1 / Math.sqrt(nl);\n }\n normals.set(i, j, 0, nx * nl);\n normals.set(i, j, 1, ny * nl);\n normals.set(i, j, 2, nz * nl);\n }\n }\n pool.free(dfields.data);\n var lo = [Infinity, Infinity, Infinity];\n var hi = [-Infinity, -Infinity, -Infinity];\n var lo_intensity = Infinity;\n var hi_intensity = -Infinity;\n var count = (shape[0] - 1) * (shape[1] - 1) * 6;\n var tverts = pool.mallocFloat(bits.nextPow2(10 * count));\n var tptr = 0;\n var vertexCount = 0;\n for (i = 0; i < shape[0] - 1; ++i) {\n j_loop:\n for (j = 0; j < shape[1] - 1; ++j) {\n for (var dx = 0; dx < 2; ++dx) {\n for (var dy = 0; dy < 2; ++dy) {\n for (var k = 0; k < 3; ++k) {\n var f = this._field[k].get(1 + i + dx, 1 + j + dy);\n if (isNaN(f) || !isFinite(f)) {\n continue j_loop;\n }\n }\n }\n }\n for (k = 0; k < 6; ++k) {\n var r = i + QUAD[k][0];\n var c = j + QUAD[k][1];\n var tx = this._field[0].get(r + 1, c + 1);\n var ty = this._field[1].get(r + 1, c + 1);\n f = this._field[2].get(r + 1, c + 1);\n nx = normals.get(r + 1, c + 1, 0);\n ny = normals.get(r + 1, c + 1, 1);\n nz = normals.get(r + 1, c + 1, 2);\n if (params.intensity) {\n vf = params.intensity.get(r, c);\n }\n var vf = params.intensity ? params.intensity.get(r, c) : f + this.objectOffset[2];\n tverts[tptr++] = r;\n tverts[tptr++] = c;\n tverts[tptr++] = tx;\n tverts[tptr++] = ty;\n tverts[tptr++] = f;\n tverts[tptr++] = 0;\n tverts[tptr++] = vf;\n tverts[tptr++] = nx;\n tverts[tptr++] = ny;\n tverts[tptr++] = nz;\n lo[0] = Math.min(lo[0], tx + this.objectOffset[0]);\n lo[1] = Math.min(lo[1], ty + this.objectOffset[1]);\n lo[2] = Math.min(lo[2], f + this.objectOffset[2]);\n lo_intensity = Math.min(lo_intensity, vf);\n hi[0] = Math.max(hi[0], tx + this.objectOffset[0]);\n hi[1] = Math.max(hi[1], ty + this.objectOffset[1]);\n hi[2] = Math.max(hi[2], f + this.objectOffset[2]);\n hi_intensity = Math.max(hi_intensity, vf);\n vertexCount += 1;\n }\n }\n }\n if (params.intensityBounds) {\n lo_intensity = +params.intensityBounds[0];\n hi_intensity = +params.intensityBounds[1];\n }\n for (i = 6; i < tptr; i += 10) {\n tverts[i] = (tverts[i] - lo_intensity) / (hi_intensity - lo_intensity);\n }\n this._vertexCount = vertexCount;\n this._coordinateBuffer.update(tverts.subarray(0, tptr));\n pool.freeFloat(tverts);\n pool.free(normals.data);\n this.bounds = [lo, hi];\n this.intensity = params.intensity || this._field[2];\n if (this.intensityBounds[0] !== lo_intensity || this.intensityBounds[1] !== hi_intensity) {\n levelsChanged = true;\n }\n this.intensityBounds = [lo_intensity, hi_intensity];\n }\n if (\"levels\" in params) {\n var levels = params.levels;\n if (!Array.isArray(levels[0])) {\n levels = [[], [], levels];\n } else {\n levels = levels.slice();\n }\n for (i = 0; i < 3; ++i) {\n levels[i] = levels[i].slice();\n levels[i].sort(function(a, b) {\n return a - b;\n });\n }\n for (i = 0; i < 3; ++i) {\n for (j = 0; j < levels[i].length; ++j) {\n levels[i][j] -= this.objectOffset[i];\n }\n }\n change_test:\n for (i = 0; i < 3; ++i) {\n if (levels[i].length !== this.contourLevels[i].length) {\n levelsChanged = true;\n break;\n }\n for (j = 0; j < levels[i].length; ++j) {\n if (levels[i][j] !== this.contourLevels[i][j]) {\n levelsChanged = true;\n break change_test;\n }\n }\n }\n this.contourLevels = levels;\n }\n if (levelsChanged) {\n fields = this._field;\n shape = this.shape;\n var contourVerts = [];\n for (var dim = 0; dim < 3; ++dim) {\n var contourLevel = this.contourLevels[dim];\n var levelOffsets = [];\n var levelCounts = [];\n var parts = [0, 0, 0];\n for (i = 0; i < contourLevel.length; ++i) {\n var graph = surfaceNets(this._field[dim], contourLevel[i]);\n levelOffsets.push(contourVerts.length / 5 | 0);\n vertexCount = 0;\n edge_loop:\n for (j = 0; j < graph.cells.length; ++j) {\n var e = graph.cells[j];\n for (k = 0; k < 2; ++k) {\n var p = graph.positions[e[k]];\n var x = p[0];\n var ix = Math.floor(x) | 0;\n var fx = x - ix;\n var y = p[1];\n var iy = Math.floor(y) | 0;\n var fy = y - iy;\n var hole = false;\n axis_loop:\n for (var axis = 0; axis < 3; ++axis) {\n parts[axis] = 0;\n var iu = (dim + axis + 1) % 3;\n for (dx = 0; dx < 2; ++dx) {\n var s = dx ? fx : 1 - fx;\n r = Math.min(Math.max(ix + dx, 0), shape[0]) | 0;\n for (dy = 0; dy < 2; ++dy) {\n var t = dy ? fy : 1 - fy;\n c = Math.min(Math.max(iy + dy, 0), shape[1]) | 0;\n if (axis < 2) {\n f = this._field[iu].get(r, c);\n } else {\n f = (this.intensity.get(r, c) - this.intensityBounds[0]) / (this.intensityBounds[1] - this.intensityBounds[0]);\n }\n if (!isFinite(f) || isNaN(f)) {\n hole = true;\n break axis_loop;\n }\n var w = s * t;\n parts[axis] += w * f;\n }\n }\n }\n if (!hole) {\n contourVerts.push(\n parts[0],\n parts[1],\n p[0],\n p[1],\n parts[2]\n );\n vertexCount += 1;\n } else {\n if (k > 0) {\n for (var l = 0; l < 5; ++l) {\n contourVerts.pop();\n }\n vertexCount -= 1;\n }\n continue edge_loop;\n }\n }\n }\n levelCounts.push(vertexCount);\n }\n this._contourOffsets[dim] = levelOffsets;\n this._contourCounts[dim] = levelCounts;\n }\n var floatBuffer = pool.mallocFloat(contourVerts.length);\n for (i = 0; i < contourVerts.length; ++i) {\n floatBuffer[i] = contourVerts[i];\n }\n this._contourBuffer.update(floatBuffer);\n pool.freeFloat(floatBuffer);\n }\n };\n proto.dispose = function() {\n this._shader.dispose();\n this._vao.dispose();\n this._coordinateBuffer.dispose();\n this._colorMap.dispose();\n this._contourBuffer.dispose();\n this._contourVAO.dispose();\n this._contourShader.dispose();\n this._contourPickShader.dispose();\n this._dynamicBuffer.dispose();\n this._dynamicVAO.dispose();\n for (var i = 0; i < 3; ++i) {\n pool.freeFloat(this._field[i].data);\n }\n };\n proto.highlight = function(selection) {\n var i;\n if (!selection) {\n this._dynamicCounts = [0, 0, 0];\n this.dyanamicLevel = [NaN, NaN, NaN];\n this.highlightLevel = [-1, -1, -1];\n return;\n }\n for (i = 0; i < 3; ++i) {\n if (this.enableHighlight[i]) {\n this.highlightLevel[i] = selection.level[i];\n } else {\n this.highlightLevel[i] = -1;\n }\n }\n var levels;\n if (this.snapToData) {\n levels = selection.dataCoordinate;\n } else {\n levels = selection.position;\n }\n for (i = 0; i < 3; ++i) {\n levels[i] -= this.objectOffset[i];\n }\n if ((!this.enableDynamic[0] || levels[0] === this.dynamicLevel[0]) && (!this.enableDynamic[1] || levels[1] === this.dynamicLevel[1]) && (!this.enableDynamic[2] || levels[2] === this.dynamicLevel[2])) {\n return;\n }\n var vertexCount = 0;\n var shape = this.shape;\n var scratchBuffer = pool.mallocFloat(12 * shape[0] * shape[1]);\n for (var d = 0; d < 3; ++d) {\n if (!this.enableDynamic[d]) {\n this.dynamicLevel[d] = NaN;\n this._dynamicCounts[d] = 0;\n continue;\n }\n this.dynamicLevel[d] = levels[d];\n var u = (d + 1) % 3;\n var v = (d + 2) % 3;\n var f = this._field[d];\n var g = this._field[u];\n var h = this._field[v];\n var graph = surfaceNets(f, levels[d]);\n var edges = graph.cells;\n var positions = graph.positions;\n this._dynamicOffsets[d] = vertexCount;\n for (i = 0; i < edges.length; ++i) {\n var e = edges[i];\n for (var j = 0; j < 2; ++j) {\n var p = positions[e[j]];\n var x = +p[0];\n var ix = x | 0;\n var jx = Math.min(ix + 1, shape[0]) | 0;\n var fx = x - ix;\n var hx = 1 - fx;\n var y = +p[1];\n var iy = y | 0;\n var jy = Math.min(iy + 1, shape[1]) | 0;\n var fy = y - iy;\n var hy = 1 - fy;\n var w00 = hx * hy;\n var w01 = hx * fy;\n var w10 = fx * hy;\n var w11 = fx * fy;\n var cu = w00 * g.get(ix, iy) + w01 * g.get(ix, jy) + w10 * g.get(jx, iy) + w11 * g.get(jx, jy);\n var cv = w00 * h.get(ix, iy) + w01 * h.get(ix, jy) + w10 * h.get(jx, iy) + w11 * h.get(jx, jy);\n if (isNaN(cu) || isNaN(cv)) {\n if (j) {\n vertexCount -= 1;\n }\n break;\n }\n scratchBuffer[2 * vertexCount + 0] = cu;\n scratchBuffer[2 * vertexCount + 1] = cv;\n vertexCount += 1;\n }\n }\n this._dynamicCounts[d] = vertexCount - this._dynamicOffsets[d];\n }\n this._dynamicBuffer.update(scratchBuffer.subarray(0, 2 * vertexCount));\n pool.freeFloat(scratchBuffer);\n };\n function createSurfacePlot(params) {\n var gl2 = params.gl;\n var shader = createShader(gl2);\n var pickShader = createPickShader(gl2);\n var contourShader = createContourShader(gl2);\n var contourPickShader = createPickContourShader(gl2);\n var coordinateBuffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n buffer: coordinateBuffer,\n size: 4,\n stride: SURFACE_VERTEX_SIZE,\n offset: 0\n },\n {\n buffer: coordinateBuffer,\n size: 3,\n stride: SURFACE_VERTEX_SIZE,\n offset: 16\n },\n {\n buffer: coordinateBuffer,\n size: 3,\n stride: SURFACE_VERTEX_SIZE,\n offset: 28\n }\n ]);\n var contourBuffer = createBuffer(gl2);\n var contourVAO = createVAO(gl2, [\n {\n buffer: contourBuffer,\n size: 4,\n stride: 20,\n offset: 0\n },\n {\n buffer: contourBuffer,\n size: 1,\n stride: 20,\n offset: 16\n }\n ]);\n var dynamicBuffer = createBuffer(gl2);\n var dynamicVAO = createVAO(gl2, [\n {\n buffer: dynamicBuffer,\n size: 2,\n type: gl2.FLOAT\n }\n ]);\n var cmap = createTexture(gl2, 1, N_COLORS, gl2.RGBA, gl2.UNSIGNED_BYTE);\n cmap.minFilter = gl2.LINEAR;\n cmap.magFilter = gl2.LINEAR;\n var surface = new SurfacePlot(\n gl2,\n [0, 0],\n // shape\n [[0, 0, 0], [0, 0, 0]],\n // bounds\n shader,\n pickShader,\n coordinateBuffer,\n vao,\n cmap,\n contourShader,\n contourPickShader,\n contourBuffer,\n contourVAO,\n dynamicBuffer,\n dynamicVAO,\n [0, 0, 0]\n // objectOffset\n );\n var nparams = {\n levels: [[], [], []]\n };\n for (var id in params) {\n nparams[id] = params[id];\n }\n nparams.colormap = nparams.colormap || \"jet\";\n surface.update(nparams);\n return surface;\n }\n }\n ),\n /***/\n 7766: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var ndarray = __webpack_require__2(9618);\n var ops = __webpack_require__2(5298);\n var pool = __webpack_require__2(1888);\n module2.exports = createTexture2D;\n var linearTypes = null;\n var filterTypes = null;\n var wrapTypes = null;\n function lazyInitLinearTypes(gl2) {\n linearTypes = [\n gl2.LINEAR,\n gl2.NEAREST_MIPMAP_LINEAR,\n gl2.LINEAR_MIPMAP_NEAREST,\n gl2.LINEAR_MIPMAP_NEAREST\n ];\n filterTypes = [\n gl2.NEAREST,\n gl2.LINEAR,\n gl2.NEAREST_MIPMAP_NEAREST,\n gl2.NEAREST_MIPMAP_LINEAR,\n gl2.LINEAR_MIPMAP_NEAREST,\n gl2.LINEAR_MIPMAP_LINEAR\n ];\n wrapTypes = [\n gl2.REPEAT,\n gl2.CLAMP_TO_EDGE,\n gl2.MIRRORED_REPEAT\n ];\n }\n function acceptTextureDOM(obj) {\n return \"undefined\" != typeof HTMLCanvasElement && obj instanceof HTMLCanvasElement || \"undefined\" != typeof HTMLImageElement && obj instanceof HTMLImageElement || \"undefined\" != typeof HTMLVideoElement && obj instanceof HTMLVideoElement || \"undefined\" != typeof ImageData && obj instanceof ImageData;\n }\n var convertFloatToUint8 = function(out, inp) {\n ops.muls(out, inp, 255);\n };\n function reshapeTexture(tex, w, h) {\n var gl2 = tex.gl;\n var maxSize = gl2.getParameter(gl2.MAX_TEXTURE_SIZE);\n if (w < 0 || w > maxSize || h < 0 || h > maxSize) {\n throw new Error(\"gl-texture2d: Invalid texture size\");\n }\n tex._shape = [w, h];\n tex.bind();\n gl2.texImage2D(gl2.TEXTURE_2D, 0, tex.format, w, h, 0, tex.format, tex.type, null);\n tex._mipLevels = [0];\n return tex;\n }\n function Texture2D(gl2, handle, width, height, format, type) {\n this.gl = gl2;\n this.handle = handle;\n this.format = format;\n this.type = type;\n this._shape = [width, height];\n this._mipLevels = [0];\n this._magFilter = gl2.NEAREST;\n this._minFilter = gl2.NEAREST;\n this._wrapS = gl2.CLAMP_TO_EDGE;\n this._wrapT = gl2.CLAMP_TO_EDGE;\n this._anisoSamples = 1;\n var parent = this;\n var wrapVector = [this._wrapS, this._wrapT];\n Object.defineProperties(wrapVector, [\n {\n get: function() {\n return parent._wrapS;\n },\n set: function(v) {\n return parent.wrapS = v;\n }\n },\n {\n get: function() {\n return parent._wrapT;\n },\n set: function(v) {\n return parent.wrapT = v;\n }\n }\n ]);\n this._wrapVector = wrapVector;\n var shapeVector = [this._shape[0], this._shape[1]];\n Object.defineProperties(shapeVector, [\n {\n get: function() {\n return parent._shape[0];\n },\n set: function(v) {\n return parent.width = v;\n }\n },\n {\n get: function() {\n return parent._shape[1];\n },\n set: function(v) {\n return parent.height = v;\n }\n }\n ]);\n this._shapeVector = shapeVector;\n }\n var proto = Texture2D.prototype;\n Object.defineProperties(proto, {\n minFilter: {\n get: function() {\n return this._minFilter;\n },\n set: function(v) {\n this.bind();\n var gl2 = this.gl;\n if (this.type === gl2.FLOAT && linearTypes.indexOf(v) >= 0) {\n if (!gl2.getExtension(\"OES_texture_float_linear\")) {\n v = gl2.NEAREST;\n }\n }\n if (filterTypes.indexOf(v) < 0) {\n throw new Error(\"gl-texture2d: Unknown filter mode \" + v);\n }\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, v);\n return this._minFilter = v;\n }\n },\n magFilter: {\n get: function() {\n return this._magFilter;\n },\n set: function(v) {\n this.bind();\n var gl2 = this.gl;\n if (this.type === gl2.FLOAT && linearTypes.indexOf(v) >= 0) {\n if (!gl2.getExtension(\"OES_texture_float_linear\")) {\n v = gl2.NEAREST;\n }\n }\n if (filterTypes.indexOf(v) < 0) {\n throw new Error(\"gl-texture2d: Unknown filter mode \" + v);\n }\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, v);\n return this._magFilter = v;\n }\n },\n mipSamples: {\n get: function() {\n return this._anisoSamples;\n },\n set: function(i) {\n var psamples = this._anisoSamples;\n this._anisoSamples = Math.max(i, 1) | 0;\n if (psamples !== this._anisoSamples) {\n var ext = this.gl.getExtension(\"EXT_texture_filter_anisotropic\");\n if (ext) {\n this.gl.texParameterf(this.gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, this._anisoSamples);\n }\n }\n return this._anisoSamples;\n }\n },\n wrapS: {\n get: function() {\n return this._wrapS;\n },\n set: function(v) {\n this.bind();\n if (wrapTypes.indexOf(v) < 0) {\n throw new Error(\"gl-texture2d: Unknown wrap mode \" + v);\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, v);\n return this._wrapS = v;\n }\n },\n wrapT: {\n get: function() {\n return this._wrapT;\n },\n set: function(v) {\n this.bind();\n if (wrapTypes.indexOf(v) < 0) {\n throw new Error(\"gl-texture2d: Unknown wrap mode \" + v);\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, v);\n return this._wrapT = v;\n }\n },\n wrap: {\n get: function() {\n return this._wrapVector;\n },\n set: function(v) {\n if (!Array.isArray(v)) {\n v = [v, v];\n }\n if (v.length !== 2) {\n throw new Error(\"gl-texture2d: Must specify wrap mode for rows and columns\");\n }\n for (var i = 0; i < 2; ++i) {\n if (wrapTypes.indexOf(v[i]) < 0) {\n throw new Error(\"gl-texture2d: Unknown wrap mode \" + v);\n }\n }\n this._wrapS = v[0];\n this._wrapT = v[1];\n var gl2 = this.gl;\n this.bind();\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, this._wrapS);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, this._wrapT);\n return v;\n }\n },\n shape: {\n get: function() {\n return this._shapeVector;\n },\n set: function(x) {\n if (!Array.isArray(x)) {\n x = [x | 0, x | 0];\n } else {\n if (x.length !== 2) {\n throw new Error(\"gl-texture2d: Invalid texture shape\");\n }\n }\n reshapeTexture(this, x[0] | 0, x[1] | 0);\n return [x[0] | 0, x[1] | 0];\n }\n },\n width: {\n get: function() {\n return this._shape[0];\n },\n set: function(w) {\n w = w | 0;\n reshapeTexture(this, w, this._shape[1]);\n return w;\n }\n },\n height: {\n get: function() {\n return this._shape[1];\n },\n set: function(h) {\n h = h | 0;\n reshapeTexture(this, this._shape[0], h);\n return h;\n }\n }\n });\n proto.bind = function(unit) {\n var gl2 = this.gl;\n if (unit !== void 0) {\n gl2.activeTexture(gl2.TEXTURE0 + (unit | 0));\n }\n gl2.bindTexture(gl2.TEXTURE_2D, this.handle);\n if (unit !== void 0) {\n return unit | 0;\n }\n return gl2.getParameter(gl2.ACTIVE_TEXTURE) - gl2.TEXTURE0;\n };\n proto.dispose = function() {\n this.gl.deleteTexture(this.handle);\n };\n proto.generateMipmap = function() {\n this.bind();\n this.gl.generateMipmap(this.gl.TEXTURE_2D);\n var l = Math.min(this._shape[0], this._shape[1]);\n for (var i = 0; l > 0; ++i, l >>>= 1) {\n if (this._mipLevels.indexOf(i) < 0) {\n this._mipLevels.push(i);\n }\n }\n };\n proto.setPixels = function(data, x_off, y_off, mip_level) {\n var gl2 = this.gl;\n this.bind();\n if (Array.isArray(x_off)) {\n mip_level = y_off;\n y_off = x_off[1] | 0;\n x_off = x_off[0] | 0;\n } else {\n x_off = x_off || 0;\n y_off = y_off || 0;\n }\n mip_level = mip_level || 0;\n var directData = acceptTextureDOM(data) ? data : data.raw;\n if (directData) {\n var needsMip = this._mipLevels.indexOf(mip_level) < 0;\n if (needsMip) {\n gl2.texImage2D(gl2.TEXTURE_2D, 0, this.format, this.format, this.type, directData);\n this._mipLevels.push(mip_level);\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, mip_level, x_off, y_off, this.format, this.type, directData);\n }\n } else if (data.shape && data.stride && data.data) {\n if (data.shape.length < 2 || x_off + data.shape[1] > this._shape[1] >>> mip_level || y_off + data.shape[0] > this._shape[0] >>> mip_level || x_off < 0 || y_off < 0) {\n throw new Error(\"gl-texture2d: Texture dimensions are out of bounds\");\n }\n texSubImageArray(gl2, x_off, y_off, mip_level, this.format, this.type, this._mipLevels, data);\n } else {\n throw new Error(\"gl-texture2d: Unsupported data type\");\n }\n };\n function isPacked(shape, stride) {\n if (shape.length === 3) {\n return stride[2] === 1 && stride[1] === shape[0] * shape[2] && stride[0] === shape[2];\n }\n return stride[0] === 1 && stride[1] === shape[0];\n }\n function texSubImageArray(gl2, x_off, y_off, mip_level, cformat, ctype, mipLevels, array) {\n var dtype = array.dtype;\n var shape = array.shape.slice();\n if (shape.length < 2 || shape.length > 3) {\n throw new Error(\"gl-texture2d: Invalid ndarray, must be 2d or 3d\");\n }\n var type = 0, format = 0;\n var packed = isPacked(shape, array.stride.slice());\n if (dtype === \"float32\") {\n type = gl2.FLOAT;\n } else if (dtype === \"float64\") {\n type = gl2.FLOAT;\n packed = false;\n dtype = \"float32\";\n } else if (dtype === \"uint8\") {\n type = gl2.UNSIGNED_BYTE;\n } else {\n type = gl2.UNSIGNED_BYTE;\n packed = false;\n dtype = \"uint8\";\n }\n var channels = 1;\n if (shape.length === 2) {\n format = gl2.LUMINANCE;\n shape = [shape[0], shape[1], 1];\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset);\n } else if (shape.length === 3) {\n if (shape[2] === 1) {\n format = gl2.ALPHA;\n } else if (shape[2] === 2) {\n format = gl2.LUMINANCE_ALPHA;\n } else if (shape[2] === 3) {\n format = gl2.RGB;\n } else if (shape[2] === 4) {\n format = gl2.RGBA;\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for pixel coords\");\n }\n channels = shape[2];\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for texture\");\n }\n if ((format === gl2.LUMINANCE || format === gl2.ALPHA) && (cformat === gl2.LUMINANCE || cformat === gl2.ALPHA)) {\n format = cformat;\n }\n if (format !== cformat) {\n throw new Error(\"gl-texture2d: Incompatible texture format for setPixels\");\n }\n var size = array.size;\n var needsMip = mipLevels.indexOf(mip_level) < 0;\n if (needsMip) {\n mipLevels.push(mip_level);\n }\n if (type === ctype && packed) {\n if (array.offset === 0 && array.data.length === size) {\n if (needsMip) {\n gl2.texImage2D(gl2.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data);\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data);\n }\n } else {\n if (needsMip) {\n gl2.texImage2D(gl2.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data.subarray(array.offset, array.offset + size));\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data.subarray(array.offset, array.offset + size));\n }\n }\n } else {\n var pack_buffer;\n if (ctype === gl2.FLOAT) {\n pack_buffer = pool.mallocFloat32(size);\n } else {\n pack_buffer = pool.mallocUint8(size);\n }\n var pack_view = ndarray(pack_buffer, shape, [shape[2], shape[2] * shape[0], 1]);\n if (type === gl2.FLOAT && ctype === gl2.UNSIGNED_BYTE) {\n convertFloatToUint8(pack_view, array);\n } else {\n ops.assign(pack_view, array);\n }\n if (needsMip) {\n gl2.texImage2D(gl2.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, pack_buffer.subarray(0, size));\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, pack_buffer.subarray(0, size));\n }\n if (ctype === gl2.FLOAT) {\n pool.freeFloat32(pack_buffer);\n } else {\n pool.freeUint8(pack_buffer);\n }\n }\n }\n function initTexture(gl2) {\n var tex = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, tex);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, gl2.NEAREST);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, gl2.NEAREST);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, gl2.CLAMP_TO_EDGE);\n return tex;\n }\n function createTextureShape(gl2, width, height, format, type) {\n var maxTextureSize = gl2.getParameter(gl2.MAX_TEXTURE_SIZE);\n if (width < 0 || width > maxTextureSize || height < 0 || height > maxTextureSize) {\n throw new Error(\"gl-texture2d: Invalid texture shape\");\n }\n if (type === gl2.FLOAT && !gl2.getExtension(\"OES_texture_float\")) {\n throw new Error(\"gl-texture2d: Floating point textures not supported on this platform\");\n }\n var tex = initTexture(gl2);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, format, width, height, 0, format, type, null);\n return new Texture2D(gl2, tex, width, height, format, type);\n }\n function createTextureDOM(gl2, directData, width, height, format, type) {\n var tex = initTexture(gl2);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, format, format, type, directData);\n return new Texture2D(gl2, tex, width, height, format, type);\n }\n function createTextureArray(gl2, array) {\n var dtype = array.dtype;\n var shape = array.shape.slice();\n var maxSize = gl2.getParameter(gl2.MAX_TEXTURE_SIZE);\n if (shape[0] < 0 || shape[0] > maxSize || shape[1] < 0 || shape[1] > maxSize) {\n throw new Error(\"gl-texture2d: Invalid texture size\");\n }\n var packed = isPacked(shape, array.stride.slice());\n var type = 0;\n if (dtype === \"float32\") {\n type = gl2.FLOAT;\n } else if (dtype === \"float64\") {\n type = gl2.FLOAT;\n packed = false;\n dtype = \"float32\";\n } else if (dtype === \"uint8\") {\n type = gl2.UNSIGNED_BYTE;\n } else {\n type = gl2.UNSIGNED_BYTE;\n packed = false;\n dtype = \"uint8\";\n }\n var format = 0;\n if (shape.length === 2) {\n format = gl2.LUMINANCE;\n shape = [shape[0], shape[1], 1];\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset);\n } else if (shape.length === 3) {\n if (shape[2] === 1) {\n format = gl2.ALPHA;\n } else if (shape[2] === 2) {\n format = gl2.LUMINANCE_ALPHA;\n } else if (shape[2] === 3) {\n format = gl2.RGB;\n } else if (shape[2] === 4) {\n format = gl2.RGBA;\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for pixel coords\");\n }\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for texture\");\n }\n if (type === gl2.FLOAT && !gl2.getExtension(\"OES_texture_float\")) {\n type = gl2.UNSIGNED_BYTE;\n packed = false;\n }\n var buffer, buf_store;\n var size = array.size;\n if (!packed) {\n var stride = [shape[2], shape[2] * shape[0], 1];\n buf_store = pool.malloc(size, dtype);\n var buf_array = ndarray(buf_store, shape, stride, 0);\n if ((dtype === \"float32\" || dtype === \"float64\") && type === gl2.UNSIGNED_BYTE) {\n convertFloatToUint8(buf_array, array);\n } else {\n ops.assign(buf_array, array);\n }\n buffer = buf_store.subarray(0, size);\n } else if (array.offset === 0 && array.data.length === size) {\n buffer = array.data;\n } else {\n buffer = array.data.subarray(array.offset, array.offset + size);\n }\n var tex = initTexture(gl2);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, format, shape[0], shape[1], 0, format, type, buffer);\n if (!packed) {\n pool.free(buf_store);\n }\n return new Texture2D(gl2, tex, shape[0], shape[1], format, type);\n }\n function createTexture2D(gl2) {\n if (arguments.length <= 1) {\n throw new Error(\"gl-texture2d: Missing arguments for texture2d constructor\");\n }\n if (!linearTypes) {\n lazyInitLinearTypes(gl2);\n }\n if (typeof arguments[1] === \"number\") {\n return createTextureShape(gl2, arguments[1], arguments[2], arguments[3] || gl2.RGBA, arguments[4] || gl2.UNSIGNED_BYTE);\n }\n if (Array.isArray(arguments[1])) {\n return createTextureShape(gl2, arguments[1][0] | 0, arguments[1][1] | 0, arguments[2] || gl2.RGBA, arguments[3] || gl2.UNSIGNED_BYTE);\n }\n if (typeof arguments[1] === \"object\") {\n var obj = arguments[1];\n var directData = acceptTextureDOM(obj) ? obj : obj.raw;\n if (directData) {\n return createTextureDOM(gl2, directData, obj.width | 0, obj.height | 0, arguments[2] || gl2.RGBA, arguments[3] || gl2.UNSIGNED_BYTE);\n } else if (obj.shape && obj.data && obj.stride) {\n return createTextureArray(gl2, obj);\n }\n }\n throw new Error(\"gl-texture2d: Invalid arguments for texture2d constructor\");\n }\n }\n ),\n /***/\n 1433: (\n /***/\n function(module2) {\n \"use strict\";\n function doBind(gl2, elements, attributes) {\n if (elements) {\n elements.bind();\n } else {\n gl2.bindBuffer(gl2.ELEMENT_ARRAY_BUFFER, null);\n }\n var nattribs = gl2.getParameter(gl2.MAX_VERTEX_ATTRIBS) | 0;\n if (attributes) {\n if (attributes.length > nattribs) {\n throw new Error(\"gl-vao: Too many vertex attributes\");\n }\n for (var i = 0; i < attributes.length; ++i) {\n var attrib = attributes[i];\n if (attrib.buffer) {\n var buffer = attrib.buffer;\n var size = attrib.size || 4;\n var type = attrib.type || gl2.FLOAT;\n var normalized = !!attrib.normalized;\n var stride = attrib.stride || 0;\n var offset = attrib.offset || 0;\n buffer.bind();\n gl2.enableVertexAttribArray(i);\n gl2.vertexAttribPointer(i, size, type, normalized, stride, offset);\n } else {\n if (typeof attrib === \"number\") {\n gl2.vertexAttrib1f(i, attrib);\n } else if (attrib.length === 1) {\n gl2.vertexAttrib1f(i, attrib[0]);\n } else if (attrib.length === 2) {\n gl2.vertexAttrib2f(i, attrib[0], attrib[1]);\n } else if (attrib.length === 3) {\n gl2.vertexAttrib3f(i, attrib[0], attrib[1], attrib[2]);\n } else if (attrib.length === 4) {\n gl2.vertexAttrib4f(i, attrib[0], attrib[1], attrib[2], attrib[3]);\n } else {\n throw new Error(\"gl-vao: Invalid vertex attribute\");\n }\n gl2.disableVertexAttribArray(i);\n }\n }\n for (; i < nattribs; ++i) {\n gl2.disableVertexAttribArray(i);\n }\n } else {\n gl2.bindBuffer(gl2.ARRAY_BUFFER, null);\n for (var i = 0; i < nattribs; ++i) {\n gl2.disableVertexAttribArray(i);\n }\n }\n }\n module2.exports = doBind;\n }\n ),\n /***/\n 870: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bindAttribs = __webpack_require__2(1433);\n function VAOEmulated(gl2) {\n this.gl = gl2;\n this._elements = null;\n this._attributes = null;\n this._elementsType = gl2.UNSIGNED_SHORT;\n }\n VAOEmulated.prototype.bind = function() {\n bindAttribs(this.gl, this._elements, this._attributes);\n };\n VAOEmulated.prototype.update = function(attributes, elements, elementsType) {\n this._elements = elements;\n this._attributes = attributes;\n this._elementsType = elementsType || this.gl.UNSIGNED_SHORT;\n };\n VAOEmulated.prototype.dispose = function() {\n };\n VAOEmulated.prototype.unbind = function() {\n };\n VAOEmulated.prototype.draw = function(mode, count, offset) {\n offset = offset || 0;\n var gl2 = this.gl;\n if (this._elements) {\n gl2.drawElements(mode, count, this._elementsType, offset);\n } else {\n gl2.drawArrays(mode, offset, count);\n }\n };\n function createVAOEmulated(gl2) {\n return new VAOEmulated(gl2);\n }\n module2.exports = createVAOEmulated;\n }\n ),\n /***/\n 7518: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bindAttribs = __webpack_require__2(1433);\n function VertexAttribute(location2, dimension, a, b, c, d) {\n this.location = location2;\n this.dimension = dimension;\n this.a = a;\n this.b = b;\n this.c = c;\n this.d = d;\n }\n VertexAttribute.prototype.bind = function(gl2) {\n switch (this.dimension) {\n case 1:\n gl2.vertexAttrib1f(this.location, this.a);\n break;\n case 2:\n gl2.vertexAttrib2f(this.location, this.a, this.b);\n break;\n case 3:\n gl2.vertexAttrib3f(this.location, this.a, this.b, this.c);\n break;\n case 4:\n gl2.vertexAttrib4f(this.location, this.a, this.b, this.c, this.d);\n break;\n }\n };\n function VAONative(gl2, ext, handle) {\n this.gl = gl2;\n this._ext = ext;\n this.handle = handle;\n this._attribs = [];\n this._useElements = false;\n this._elementsType = gl2.UNSIGNED_SHORT;\n }\n VAONative.prototype.bind = function() {\n this._ext.bindVertexArrayOES(this.handle);\n for (var i = 0; i < this._attribs.length; ++i) {\n this._attribs[i].bind(this.gl);\n }\n };\n VAONative.prototype.unbind = function() {\n this._ext.bindVertexArrayOES(null);\n };\n VAONative.prototype.dispose = function() {\n this._ext.deleteVertexArrayOES(this.handle);\n };\n VAONative.prototype.update = function(attributes, elements, elementsType) {\n this.bind();\n bindAttribs(this.gl, elements, attributes);\n this.unbind();\n this._attribs.length = 0;\n if (attributes)\n for (var i = 0; i < attributes.length; ++i) {\n var a = attributes[i];\n if (typeof a === \"number\") {\n this._attribs.push(new VertexAttribute(i, 1, a));\n } else if (Array.isArray(a)) {\n this._attribs.push(new VertexAttribute(i, a.length, a[0], a[1], a[2], a[3]));\n }\n }\n this._useElements = !!elements;\n this._elementsType = elementsType || this.gl.UNSIGNED_SHORT;\n };\n VAONative.prototype.draw = function(mode, count, offset) {\n offset = offset || 0;\n var gl2 = this.gl;\n if (this._useElements) {\n gl2.drawElements(mode, count, this._elementsType, offset);\n } else {\n gl2.drawArrays(mode, offset, count);\n }\n };\n function createVAONative(gl2, ext) {\n return new VAONative(gl2, ext, ext.createVertexArrayOES());\n }\n module2.exports = createVAONative;\n }\n ),\n /***/\n 8116: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createVAONative = __webpack_require__2(7518);\n var createVAOEmulated = __webpack_require__2(870);\n function ExtensionShim(gl2) {\n this.bindVertexArrayOES = gl2.bindVertexArray.bind(gl2);\n this.createVertexArrayOES = gl2.createVertexArray.bind(gl2);\n this.deleteVertexArrayOES = gl2.deleteVertexArray.bind(gl2);\n }\n function createVAO(gl2, attributes, elements, elementsType) {\n var ext = gl2.createVertexArray ? new ExtensionShim(gl2) : gl2.getExtension(\"OES_vertex_array_object\");\n var vao;\n if (ext) {\n vao = createVAONative(gl2, ext);\n } else {\n vao = createVAOEmulated(gl2);\n }\n vao.update(attributes, elements, elementsType);\n return vao;\n }\n module2.exports = createVAO;\n }\n ),\n /***/\n 5632: (\n /***/\n function(module2) {\n module2.exports = add;\n function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n }\n }\n ),\n /***/\n 8192: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = angle;\n var fromValues = __webpack_require__2(2825);\n var normalize = __webpack_require__2(3536);\n var dot = __webpack_require__2(244);\n function angle(a, b) {\n var tempA = fromValues(a[0], a[1], a[2]);\n var tempB = fromValues(b[0], b[1], b[2]);\n normalize(tempA, tempA);\n normalize(tempB, tempB);\n var cosine = dot(tempA, tempB);\n if (cosine > 1) {\n return 0;\n } else {\n return Math.acos(cosine);\n }\n }\n }\n ),\n /***/\n 9226: (\n /***/\n function(module2) {\n module2.exports = ceil;\n function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n }\n }\n ),\n /***/\n 3126: (\n /***/\n function(module2) {\n module2.exports = clone;\n function clone(a) {\n var out = new Float32Array(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n }\n }\n ),\n /***/\n 3990: (\n /***/\n function(module2) {\n module2.exports = copy;\n function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n }\n }\n ),\n /***/\n 1091: (\n /***/\n function(module2) {\n module2.exports = create;\n function create() {\n var out = new Float32Array(3);\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n return out;\n }\n }\n ),\n /***/\n 5911: (\n /***/\n function(module2) {\n module2.exports = cross;\n function cross(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2], bx = b[0], by = b[1], bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n }\n }\n ),\n /***/\n 5455: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(7056);\n }\n ),\n /***/\n 7056: (\n /***/\n function(module2) {\n module2.exports = distance;\n function distance(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1], z = b[2] - a[2];\n return Math.sqrt(x * x + y * y + z * z);\n }\n }\n ),\n /***/\n 4008: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(6690);\n }\n ),\n /***/\n 6690: (\n /***/\n function(module2) {\n module2.exports = divide;\n function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n }\n }\n ),\n /***/\n 244: (\n /***/\n function(module2) {\n module2.exports = dot;\n function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n }\n ),\n /***/\n 2613: (\n /***/\n function(module2) {\n module2.exports = 1e-6;\n }\n ),\n /***/\n 9922: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = equals;\n var EPSILON = __webpack_require__2(2613);\n function equals(a, b) {\n var a0 = a[0];\n var a1 = a[1];\n var a2 = a[2];\n var b0 = b[0];\n var b1 = b[1];\n var b2 = b[2];\n return Math.abs(a0 - b0) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= EPSILON * Math.max(1, Math.abs(a2), Math.abs(b2));\n }\n }\n ),\n /***/\n 9265: (\n /***/\n function(module2) {\n module2.exports = exactEquals;\n function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n }\n }\n ),\n /***/\n 2681: (\n /***/\n function(module2) {\n module2.exports = floor;\n function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n }\n }\n ),\n /***/\n 5137: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = forEach;\n var vec = __webpack_require__2(1091)();\n function forEach(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 3;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n return a;\n }\n }\n ),\n /***/\n 2825: (\n /***/\n function(module2) {\n module2.exports = fromValues;\n function fromValues(x, y, z) {\n var out = new Float32Array(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n }\n }\n ),\n /***/\n 2931: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = {\n EPSILON: __webpack_require__2(2613),\n create: __webpack_require__2(1091),\n clone: __webpack_require__2(3126),\n angle: __webpack_require__2(8192),\n fromValues: __webpack_require__2(2825),\n copy: __webpack_require__2(3990),\n set: __webpack_require__2(1463),\n equals: __webpack_require__2(9922),\n exactEquals: __webpack_require__2(9265),\n add: __webpack_require__2(5632),\n subtract: __webpack_require__2(6843),\n sub: __webpack_require__2(2229),\n multiply: __webpack_require__2(5847),\n mul: __webpack_require__2(4505),\n divide: __webpack_require__2(6690),\n div: __webpack_require__2(4008),\n min: __webpack_require__2(8107),\n max: __webpack_require__2(7417),\n floor: __webpack_require__2(2681),\n ceil: __webpack_require__2(9226),\n round: __webpack_require__2(2447),\n scale: __webpack_require__2(6621),\n scaleAndAdd: __webpack_require__2(8489),\n distance: __webpack_require__2(7056),\n dist: __webpack_require__2(5455),\n squaredDistance: __webpack_require__2(2953),\n sqrDist: __webpack_require__2(6141),\n length: __webpack_require__2(1387),\n len: __webpack_require__2(868),\n squaredLength: __webpack_require__2(3066),\n sqrLen: __webpack_require__2(5486),\n negate: __webpack_require__2(5093),\n inverse: __webpack_require__2(811),\n normalize: __webpack_require__2(3536),\n dot: __webpack_require__2(244),\n cross: __webpack_require__2(5911),\n lerp: __webpack_require__2(6658),\n random: __webpack_require__2(7636),\n transformMat4: __webpack_require__2(5673),\n transformMat3: __webpack_require__2(492),\n transformQuat: __webpack_require__2(264),\n rotateX: __webpack_require__2(6894),\n rotateY: __webpack_require__2(109),\n rotateZ: __webpack_require__2(8692),\n forEach: __webpack_require__2(5137)\n };\n }\n ),\n /***/\n 811: (\n /***/\n function(module2) {\n module2.exports = inverse;\n function inverse(out, a) {\n out[0] = 1 / a[0];\n out[1] = 1 / a[1];\n out[2] = 1 / a[2];\n return out;\n }\n }\n ),\n /***/\n 868: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(1387);\n }\n ),\n /***/\n 1387: (\n /***/\n function(module2) {\n module2.exports = length;\n function length(a) {\n var x = a[0], y = a[1], z = a[2];\n return Math.sqrt(x * x + y * y + z * z);\n }\n }\n ),\n /***/\n 6658: (\n /***/\n function(module2) {\n module2.exports = lerp;\n function lerp(out, a, b, t) {\n var ax = a[0], ay = a[1], az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n }\n }\n ),\n /***/\n 7417: (\n /***/\n function(module2) {\n module2.exports = max;\n function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n }\n }\n ),\n /***/\n 8107: (\n /***/\n function(module2) {\n module2.exports = min;\n function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n }\n }\n ),\n /***/\n 4505: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(5847);\n }\n ),\n /***/\n 5847: (\n /***/\n function(module2) {\n module2.exports = multiply;\n function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n }\n }\n ),\n /***/\n 5093: (\n /***/\n function(module2) {\n module2.exports = negate;\n function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n }\n }\n ),\n /***/\n 3536: (\n /***/\n function(module2) {\n module2.exports = normalize;\n function normalize(out, a) {\n var x = a[0], y = a[1], z = a[2];\n var len = x * x + y * y + z * z;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n }\n return out;\n }\n }\n ),\n /***/\n 7636: (\n /***/\n function(module2) {\n module2.exports = random;\n function random(out, scale) {\n scale = scale || 1;\n var r = Math.random() * 2 * Math.PI;\n var z = Math.random() * 2 - 1;\n var zScale = Math.sqrt(1 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n }\n }\n ),\n /***/\n 6894: (\n /***/\n function(module2) {\n module2.exports = rotateX;\n function rotateX(out, a, b, c) {\n var by = b[1];\n var bz = b[2];\n var py = a[1] - by;\n var pz = a[2] - bz;\n var sc = Math.sin(c);\n var cc = Math.cos(c);\n out[0] = a[0];\n out[1] = by + py * cc - pz * sc;\n out[2] = bz + py * sc + pz * cc;\n return out;\n }\n }\n ),\n /***/\n 109: (\n /***/\n function(module2) {\n module2.exports = rotateY;\n function rotateY(out, a, b, c) {\n var bx = b[0];\n var bz = b[2];\n var px = a[0] - bx;\n var pz = a[2] - bz;\n var sc = Math.sin(c);\n var cc = Math.cos(c);\n out[0] = bx + pz * sc + px * cc;\n out[1] = a[1];\n out[2] = bz + pz * cc - px * sc;\n return out;\n }\n }\n ),\n /***/\n 8692: (\n /***/\n function(module2) {\n module2.exports = rotateZ;\n function rotateZ(out, a, b, c) {\n var bx = b[0];\n var by = b[1];\n var px = a[0] - bx;\n var py = a[1] - by;\n var sc = Math.sin(c);\n var cc = Math.cos(c);\n out[0] = bx + px * cc - py * sc;\n out[1] = by + px * sc + py * cc;\n out[2] = a[2];\n return out;\n }\n }\n ),\n /***/\n 2447: (\n /***/\n function(module2) {\n module2.exports = round;\n function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n }\n }\n ),\n /***/\n 6621: (\n /***/\n function(module2) {\n module2.exports = scale;\n function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n }\n }\n ),\n /***/\n 8489: (\n /***/\n function(module2) {\n module2.exports = scaleAndAdd;\n function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n }\n }\n ),\n /***/\n 1463: (\n /***/\n function(module2) {\n module2.exports = set;\n function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n }\n }\n ),\n /***/\n 6141: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(2953);\n }\n ),\n /***/\n 5486: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(3066);\n }\n ),\n /***/\n 2953: (\n /***/\n function(module2) {\n module2.exports = squaredDistance;\n function squaredDistance(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1], z = b[2] - a[2];\n return x * x + y * y + z * z;\n }\n }\n ),\n /***/\n 3066: (\n /***/\n function(module2) {\n module2.exports = squaredLength;\n function squaredLength(a) {\n var x = a[0], y = a[1], z = a[2];\n return x * x + y * y + z * z;\n }\n }\n ),\n /***/\n 2229: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(6843);\n }\n ),\n /***/\n 6843: (\n /***/\n function(module2) {\n module2.exports = subtract;\n function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n }\n }\n ),\n /***/\n 492: (\n /***/\n function(module2) {\n module2.exports = transformMat3;\n function transformMat3(out, a, m) {\n var x = a[0], y = a[1], z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n }\n }\n ),\n /***/\n 5673: (\n /***/\n function(module2) {\n module2.exports = transformMat4;\n function transformMat4(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n }\n }\n ),\n /***/\n 264: (\n /***/\n function(module2) {\n module2.exports = transformQuat;\n function transformQuat(out, a, q) {\n var x = a[0], y = a[1], z = a[2], qx = q[0], qy = q[1], qz = q[2], qw = q[3], ix = qw * x + qy * z - qz * y, iy = qw * y + qz * x - qx * z, iz = qw * z + qx * y - qy * x, iw = -qx * x - qy * y - qz * z;\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n return out;\n }\n }\n ),\n /***/\n 4361: (\n /***/\n function(module2) {\n module2.exports = add;\n function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n }\n }\n ),\n /***/\n 2335: (\n /***/\n function(module2) {\n module2.exports = clone;\n function clone(a) {\n var out = new Float32Array(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n }\n }\n ),\n /***/\n 2933: (\n /***/\n function(module2) {\n module2.exports = copy;\n function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n }\n }\n ),\n /***/\n 7536: (\n /***/\n function(module2) {\n module2.exports = create;\n function create() {\n var out = new Float32Array(4);\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n return out;\n }\n }\n ),\n /***/\n 4691: (\n /***/\n function(module2) {\n module2.exports = distance;\n function distance(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1], z = b[2] - a[2], w = b[3] - a[3];\n return Math.sqrt(x * x + y * y + z * z + w * w);\n }\n }\n ),\n /***/\n 1373: (\n /***/\n function(module2) {\n module2.exports = divide;\n function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n }\n }\n ),\n /***/\n 3750: (\n /***/\n function(module2) {\n module2.exports = dot;\n function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n }\n ),\n /***/\n 3390: (\n /***/\n function(module2) {\n module2.exports = fromValues;\n function fromValues(x, y, z, w) {\n var out = new Float32Array(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n }\n }\n ),\n /***/\n 9970: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = {\n create: __webpack_require__2(7536),\n clone: __webpack_require__2(2335),\n fromValues: __webpack_require__2(3390),\n copy: __webpack_require__2(2933),\n set: __webpack_require__2(4578),\n add: __webpack_require__2(4361),\n subtract: __webpack_require__2(6860),\n multiply: __webpack_require__2(3576),\n divide: __webpack_require__2(1373),\n min: __webpack_require__2(2334),\n max: __webpack_require__2(160),\n scale: __webpack_require__2(9288),\n scaleAndAdd: __webpack_require__2(4844),\n distance: __webpack_require__2(4691),\n squaredDistance: __webpack_require__2(7960),\n length: __webpack_require__2(6808),\n squaredLength: __webpack_require__2(483),\n negate: __webpack_require__2(1498),\n inverse: __webpack_require__2(4494),\n normalize: __webpack_require__2(5177),\n dot: __webpack_require__2(3750),\n lerp: __webpack_require__2(2573),\n random: __webpack_require__2(9131),\n transformMat4: __webpack_require__2(5352),\n transformQuat: __webpack_require__2(4041)\n };\n }\n ),\n /***/\n 4494: (\n /***/\n function(module2) {\n module2.exports = inverse;\n function inverse(out, a) {\n out[0] = 1 / a[0];\n out[1] = 1 / a[1];\n out[2] = 1 / a[2];\n out[3] = 1 / a[3];\n return out;\n }\n }\n ),\n /***/\n 6808: (\n /***/\n function(module2) {\n module2.exports = length;\n function length(a) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n return Math.sqrt(x * x + y * y + z * z + w * w);\n }\n }\n ),\n /***/\n 2573: (\n /***/\n function(module2) {\n module2.exports = lerp;\n function lerp(out, a, b, t) {\n var ax = a[0], ay = a[1], az = a[2], aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n }\n }\n ),\n /***/\n 160: (\n /***/\n function(module2) {\n module2.exports = max;\n function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n }\n }\n ),\n /***/\n 2334: (\n /***/\n function(module2) {\n module2.exports = min;\n function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n }\n }\n ),\n /***/\n 3576: (\n /***/\n function(module2) {\n module2.exports = multiply;\n function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n }\n }\n ),\n /***/\n 1498: (\n /***/\n function(module2) {\n module2.exports = negate;\n function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n }\n }\n ),\n /***/\n 5177: (\n /***/\n function(module2) {\n module2.exports = normalize;\n function normalize(out, a) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n var len = x * x + y * y + z * z + w * w;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n }\n return out;\n }\n }\n ),\n /***/\n 9131: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var vecNormalize = __webpack_require__2(5177);\n var vecScale = __webpack_require__2(9288);\n module2.exports = random;\n function random(out, scale) {\n scale = scale || 1;\n out[0] = Math.random();\n out[1] = Math.random();\n out[2] = Math.random();\n out[3] = Math.random();\n vecNormalize(out, out);\n vecScale(out, out, scale);\n return out;\n }\n }\n ),\n /***/\n 9288: (\n /***/\n function(module2) {\n module2.exports = scale;\n function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n }\n }\n ),\n /***/\n 4844: (\n /***/\n function(module2) {\n module2.exports = scaleAndAdd;\n function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n }\n }\n ),\n /***/\n 4578: (\n /***/\n function(module2) {\n module2.exports = set;\n function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n }\n }\n ),\n /***/\n 7960: (\n /***/\n function(module2) {\n module2.exports = squaredDistance;\n function squaredDistance(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1], z = b[2] - a[2], w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n }\n }\n ),\n /***/\n 483: (\n /***/\n function(module2) {\n module2.exports = squaredLength;\n function squaredLength(a) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n return x * x + y * y + z * z + w * w;\n }\n }\n ),\n /***/\n 6860: (\n /***/\n function(module2) {\n module2.exports = subtract;\n function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n }\n }\n ),\n /***/\n 5352: (\n /***/\n function(module2) {\n module2.exports = transformMat4;\n function transformMat4(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n }\n }\n ),\n /***/\n 4041: (\n /***/\n function(module2) {\n module2.exports = transformQuat;\n function transformQuat(out, a, q) {\n var x = a[0], y = a[1], z = a[2], qx = q[0], qy = q[1], qz = q[2], qw = q[3], ix = qw * x + qy * z - qz * y, iy = qw * y + qz * x - qx * z, iz = qw * z + qx * y - qy * x, iw = -qx * x - qy * y - qz * z;\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n }\n }\n ),\n /***/\n 1848: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var tokenize = __webpack_require__2(4905);\n var atob2 = __webpack_require__2(6468);\n module2.exports = getName;\n function getName(src) {\n var tokens = Array.isArray(src) ? src : tokenize(src);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type !== \"preprocessor\") continue;\n var match = token.data.match(/\\#define\\s+SHADER_NAME(_B64)?\\s+(.+)$/);\n if (!match) continue;\n if (!match[2]) continue;\n var b64 = match[1];\n var name2 = match[2];\n return (b64 ? atob2(name2) : name2).trim();\n }\n }\n }\n ),\n /***/\n 5874: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = tokenize;\n var literals100 = __webpack_require__2(620), operators = __webpack_require__2(7827), builtins100 = __webpack_require__2(6852), literals300es = __webpack_require__2(7932), builtins300es = __webpack_require__2(3508);\n var NORMAL = 999, TOKEN = 9999, BLOCK_COMMENT = 0, LINE_COMMENT = 1, PREPROCESSOR = 2, OPERATOR = 3, INTEGER = 4, FLOAT = 5, IDENT = 6, BUILTIN = 7, KEYWORD = 8, WHITESPACE = 9, EOF = 10, HEX = 11;\n var map = [\n \"block-comment\",\n \"line-comment\",\n \"preprocessor\",\n \"operator\",\n \"integer\",\n \"float\",\n \"ident\",\n \"builtin\",\n \"keyword\",\n \"whitespace\",\n \"eof\",\n \"integer\"\n ];\n function tokenize(opt) {\n var i = 0, total = 0, mode = NORMAL, c, last, content = [], tokens = [], token_idx = 0, token_offs = 0, line = 1, col = 0, start = 0, isnum = false, isoperator = false, input = \"\", len;\n opt = opt || {};\n var allBuiltins = builtins100;\n var allLiterals = literals100;\n if (opt.version === \"300 es\") {\n allBuiltins = builtins300es;\n allLiterals = literals300es;\n }\n var builtinsDict = {}, literalsDict = {};\n for (var i = 0; i < allBuiltins.length; i++) {\n builtinsDict[allBuiltins[i]] = true;\n }\n for (var i = 0; i < allLiterals.length; i++) {\n literalsDict[allLiterals[i]] = true;\n }\n return function(data) {\n tokens = [];\n if (data !== null) return write(data);\n return end();\n };\n function token(data) {\n if (data.length) {\n tokens.push({\n type: map[mode],\n data,\n position: start,\n line,\n column: col\n });\n }\n }\n function write(chunk) {\n i = 0;\n if (chunk.toString) chunk = chunk.toString();\n input += chunk.replace(/\\r\\n/g, \"\\n\");\n len = input.length;\n var last2;\n while (c = input[i], i < len) {\n last2 = i;\n switch (mode) {\n case BLOCK_COMMENT:\n i = block_comment();\n break;\n case LINE_COMMENT:\n i = line_comment();\n break;\n case PREPROCESSOR:\n i = preprocessor();\n break;\n case OPERATOR:\n i = operator();\n break;\n case INTEGER:\n i = integer();\n break;\n case HEX:\n i = hex2();\n break;\n case FLOAT:\n i = decimal();\n break;\n case TOKEN:\n i = readtoken();\n break;\n case WHITESPACE:\n i = whitespace();\n break;\n case NORMAL:\n i = normal();\n break;\n }\n if (last2 !== i) {\n switch (input[last2]) {\n case \"\\n\":\n col = 0;\n ++line;\n break;\n default:\n ++col;\n break;\n }\n }\n }\n total += i;\n input = input.slice(i);\n return tokens;\n }\n function end(chunk) {\n if (content.length) {\n token(content.join(\"\"));\n }\n mode = EOF;\n token(\"(eof)\");\n return tokens;\n }\n function normal() {\n content = content.length ? [] : content;\n if (last === \"/\" && c === \"*\") {\n start = total + i - 1;\n mode = BLOCK_COMMENT;\n last = c;\n return i + 1;\n }\n if (last === \"/\" && c === \"/\") {\n start = total + i - 1;\n mode = LINE_COMMENT;\n last = c;\n return i + 1;\n }\n if (c === \"#\") {\n mode = PREPROCESSOR;\n start = total + i;\n return i;\n }\n if (/\\s/.test(c)) {\n mode = WHITESPACE;\n start = total + i;\n return i;\n }\n isnum = /\\d/.test(c);\n isoperator = /[^\\w_]/.test(c);\n start = total + i;\n mode = isnum ? INTEGER : isoperator ? OPERATOR : TOKEN;\n return i;\n }\n function whitespace() {\n if (/[^\\s]/g.test(c)) {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function preprocessor() {\n if ((c === \"\\r\" || c === \"\\n\") && last !== \"\\\\\") {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function line_comment() {\n return preprocessor();\n }\n function block_comment() {\n if (c === \"/\" && last === \"*\") {\n content.push(c);\n token(content.join(\"\"));\n mode = NORMAL;\n return i + 1;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function operator() {\n if (last === \".\" && /\\d/.test(c)) {\n mode = FLOAT;\n return i;\n }\n if (last === \"/\" && c === \"*\") {\n mode = BLOCK_COMMENT;\n return i;\n }\n if (last === \"/\" && c === \"/\") {\n mode = LINE_COMMENT;\n return i;\n }\n if (c === \".\" && content.length) {\n while (determine_operator(content)) ;\n mode = FLOAT;\n return i;\n }\n if (c === \";\" || c === \")\" || c === \"(\") {\n if (content.length) while (determine_operator(content)) ;\n token(c);\n mode = NORMAL;\n return i + 1;\n }\n var is_composite_operator = content.length === 2 && c !== \"=\";\n if (/[\\w_\\d\\s]/.test(c) || is_composite_operator) {\n while (determine_operator(content)) ;\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function determine_operator(buf) {\n var j = 0, idx, res;\n do {\n idx = operators.indexOf(buf.slice(0, buf.length + j).join(\"\"));\n res = operators[idx];\n if (idx === -1) {\n if (j-- + buf.length > 0) continue;\n res = buf.slice(0, 1).join(\"\");\n }\n token(res);\n start += res.length;\n content = content.slice(res.length);\n return content.length;\n } while (1);\n }\n function hex2() {\n if (/[^a-fA-F0-9]/.test(c)) {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function integer() {\n if (c === \".\") {\n content.push(c);\n mode = FLOAT;\n last = c;\n return i + 1;\n }\n if (/[eE]/.test(c)) {\n content.push(c);\n mode = FLOAT;\n last = c;\n return i + 1;\n }\n if (c === \"x\" && content.length === 1 && content[0] === \"0\") {\n mode = HEX;\n content.push(c);\n last = c;\n return i + 1;\n }\n if (/[^\\d]/.test(c)) {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function decimal() {\n if (c === \"f\") {\n content.push(c);\n last = c;\n i += 1;\n }\n if (/[eE]/.test(c)) {\n content.push(c);\n last = c;\n return i + 1;\n }\n if ((c === \"-\" || c === \"+\") && /[eE]/.test(last)) {\n content.push(c);\n last = c;\n return i + 1;\n }\n if (/[^\\d]/.test(c)) {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function readtoken() {\n if (/[^\\d\\w_]/.test(c)) {\n var contentstr = content.join(\"\");\n if (literalsDict[contentstr]) {\n mode = KEYWORD;\n } else if (builtinsDict[contentstr]) {\n mode = BUILTIN;\n } else {\n mode = IDENT;\n }\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n }\n }\n ),\n /***/\n 3508: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var v100 = __webpack_require__2(6852);\n v100 = v100.slice().filter(function(b) {\n return !/^(gl\\_|texture)/.test(b);\n });\n module2.exports = v100.concat([\n // the updated gl_ constants\n \"gl_VertexID\",\n \"gl_InstanceID\",\n \"gl_Position\",\n \"gl_PointSize\",\n \"gl_FragCoord\",\n \"gl_FrontFacing\",\n \"gl_FragDepth\",\n \"gl_PointCoord\",\n \"gl_MaxVertexAttribs\",\n \"gl_MaxVertexUniformVectors\",\n \"gl_MaxVertexOutputVectors\",\n \"gl_MaxFragmentInputVectors\",\n \"gl_MaxVertexTextureImageUnits\",\n \"gl_MaxCombinedTextureImageUnits\",\n \"gl_MaxTextureImageUnits\",\n \"gl_MaxFragmentUniformVectors\",\n \"gl_MaxDrawBuffers\",\n \"gl_MinProgramTexelOffset\",\n \"gl_MaxProgramTexelOffset\",\n \"gl_DepthRangeParameters\",\n \"gl_DepthRange\",\n \"trunc\",\n \"round\",\n \"roundEven\",\n \"isnan\",\n \"isinf\",\n \"floatBitsToInt\",\n \"floatBitsToUint\",\n \"intBitsToFloat\",\n \"uintBitsToFloat\",\n \"packSnorm2x16\",\n \"unpackSnorm2x16\",\n \"packUnorm2x16\",\n \"unpackUnorm2x16\",\n \"packHalf2x16\",\n \"unpackHalf2x16\",\n \"outerProduct\",\n \"transpose\",\n \"determinant\",\n \"inverse\",\n \"texture\",\n \"textureSize\",\n \"textureProj\",\n \"textureLod\",\n \"textureOffset\",\n \"texelFetch\",\n \"texelFetchOffset\",\n \"textureProjOffset\",\n \"textureLodOffset\",\n \"textureProjLod\",\n \"textureProjLodOffset\",\n \"textureGrad\",\n \"textureGradOffset\",\n \"textureProjGrad\",\n \"textureProjGradOffset\"\n ]);\n }\n ),\n /***/\n 6852: (\n /***/\n function(module2) {\n module2.exports = [\n // Keep this list sorted\n \"abs\",\n \"acos\",\n \"all\",\n \"any\",\n \"asin\",\n \"atan\",\n \"ceil\",\n \"clamp\",\n \"cos\",\n \"cross\",\n \"dFdx\",\n \"dFdy\",\n \"degrees\",\n \"distance\",\n \"dot\",\n \"equal\",\n \"exp\",\n \"exp2\",\n \"faceforward\",\n \"floor\",\n \"fract\",\n \"gl_BackColor\",\n \"gl_BackLightModelProduct\",\n \"gl_BackLightProduct\",\n \"gl_BackMaterial\",\n \"gl_BackSecondaryColor\",\n \"gl_ClipPlane\",\n \"gl_ClipVertex\",\n \"gl_Color\",\n \"gl_DepthRange\",\n \"gl_DepthRangeParameters\",\n \"gl_EyePlaneQ\",\n \"gl_EyePlaneR\",\n \"gl_EyePlaneS\",\n \"gl_EyePlaneT\",\n \"gl_Fog\",\n \"gl_FogCoord\",\n \"gl_FogFragCoord\",\n \"gl_FogParameters\",\n \"gl_FragColor\",\n \"gl_FragCoord\",\n \"gl_FragData\",\n \"gl_FragDepth\",\n \"gl_FragDepthEXT\",\n \"gl_FrontColor\",\n \"gl_FrontFacing\",\n \"gl_FrontLightModelProduct\",\n \"gl_FrontLightProduct\",\n \"gl_FrontMaterial\",\n \"gl_FrontSecondaryColor\",\n \"gl_LightModel\",\n \"gl_LightModelParameters\",\n \"gl_LightModelProducts\",\n \"gl_LightProducts\",\n \"gl_LightSource\",\n \"gl_LightSourceParameters\",\n \"gl_MaterialParameters\",\n \"gl_MaxClipPlanes\",\n \"gl_MaxCombinedTextureImageUnits\",\n \"gl_MaxDrawBuffers\",\n \"gl_MaxFragmentUniformComponents\",\n \"gl_MaxLights\",\n \"gl_MaxTextureCoords\",\n \"gl_MaxTextureImageUnits\",\n \"gl_MaxTextureUnits\",\n \"gl_MaxVaryingFloats\",\n \"gl_MaxVertexAttribs\",\n \"gl_MaxVertexTextureImageUnits\",\n \"gl_MaxVertexUniformComponents\",\n \"gl_ModelViewMatrix\",\n \"gl_ModelViewMatrixInverse\",\n \"gl_ModelViewMatrixInverseTranspose\",\n \"gl_ModelViewMatrixTranspose\",\n \"gl_ModelViewProjectionMatrix\",\n \"gl_ModelViewProjectionMatrixInverse\",\n \"gl_ModelViewProjectionMatrixInverseTranspose\",\n \"gl_ModelViewProjectionMatrixTranspose\",\n \"gl_MultiTexCoord0\",\n \"gl_MultiTexCoord1\",\n \"gl_MultiTexCoord2\",\n \"gl_MultiTexCoord3\",\n \"gl_MultiTexCoord4\",\n \"gl_MultiTexCoord5\",\n \"gl_MultiTexCoord6\",\n \"gl_MultiTexCoord7\",\n \"gl_Normal\",\n \"gl_NormalMatrix\",\n \"gl_NormalScale\",\n \"gl_ObjectPlaneQ\",\n \"gl_ObjectPlaneR\",\n \"gl_ObjectPlaneS\",\n \"gl_ObjectPlaneT\",\n \"gl_Point\",\n \"gl_PointCoord\",\n \"gl_PointParameters\",\n \"gl_PointSize\",\n \"gl_Position\",\n \"gl_ProjectionMatrix\",\n \"gl_ProjectionMatrixInverse\",\n \"gl_ProjectionMatrixInverseTranspose\",\n \"gl_ProjectionMatrixTranspose\",\n \"gl_SecondaryColor\",\n \"gl_TexCoord\",\n \"gl_TextureEnvColor\",\n \"gl_TextureMatrix\",\n \"gl_TextureMatrixInverse\",\n \"gl_TextureMatrixInverseTranspose\",\n \"gl_TextureMatrixTranspose\",\n \"gl_Vertex\",\n \"greaterThan\",\n \"greaterThanEqual\",\n \"inversesqrt\",\n \"length\",\n \"lessThan\",\n \"lessThanEqual\",\n \"log\",\n \"log2\",\n \"matrixCompMult\",\n \"max\",\n \"min\",\n \"mix\",\n \"mod\",\n \"normalize\",\n \"not\",\n \"notEqual\",\n \"pow\",\n \"radians\",\n \"reflect\",\n \"refract\",\n \"sign\",\n \"sin\",\n \"smoothstep\",\n \"sqrt\",\n \"step\",\n \"tan\",\n \"texture2D\",\n \"texture2DLod\",\n \"texture2DProj\",\n \"texture2DProjLod\",\n \"textureCube\",\n \"textureCubeLod\",\n \"texture2DLodEXT\",\n \"texture2DProjLodEXT\",\n \"textureCubeLodEXT\",\n \"texture2DGradEXT\",\n \"texture2DProjGradEXT\",\n \"textureCubeGradEXT\"\n ];\n }\n ),\n /***/\n 7932: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var v100 = __webpack_require__2(620);\n module2.exports = v100.slice().concat([\n \"layout\",\n \"centroid\",\n \"smooth\",\n \"case\",\n \"mat2x2\",\n \"mat2x3\",\n \"mat2x4\",\n \"mat3x2\",\n \"mat3x3\",\n \"mat3x4\",\n \"mat4x2\",\n \"mat4x3\",\n \"mat4x4\",\n \"uvec2\",\n \"uvec3\",\n \"uvec4\",\n \"samplerCubeShadow\",\n \"sampler2DArray\",\n \"sampler2DArrayShadow\",\n \"isampler2D\",\n \"isampler3D\",\n \"isamplerCube\",\n \"isampler2DArray\",\n \"usampler2D\",\n \"usampler3D\",\n \"usamplerCube\",\n \"usampler2DArray\",\n \"coherent\",\n \"restrict\",\n \"readonly\",\n \"writeonly\",\n \"resource\",\n \"atomic_uint\",\n \"noperspective\",\n \"patch\",\n \"sample\",\n \"subroutine\",\n \"common\",\n \"partition\",\n \"active\",\n \"filter\",\n \"image1D\",\n \"image2D\",\n \"image3D\",\n \"imageCube\",\n \"iimage1D\",\n \"iimage2D\",\n \"iimage3D\",\n \"iimageCube\",\n \"uimage1D\",\n \"uimage2D\",\n \"uimage3D\",\n \"uimageCube\",\n \"image1DArray\",\n \"image2DArray\",\n \"iimage1DArray\",\n \"iimage2DArray\",\n \"uimage1DArray\",\n \"uimage2DArray\",\n \"image1DShadow\",\n \"image2DShadow\",\n \"image1DArrayShadow\",\n \"image2DArrayShadow\",\n \"imageBuffer\",\n \"iimageBuffer\",\n \"uimageBuffer\",\n \"sampler1DArray\",\n \"sampler1DArrayShadow\",\n \"isampler1D\",\n \"isampler1DArray\",\n \"usampler1D\",\n \"usampler1DArray\",\n \"isampler2DRect\",\n \"usampler2DRect\",\n \"samplerBuffer\",\n \"isamplerBuffer\",\n \"usamplerBuffer\",\n \"sampler2DMS\",\n \"isampler2DMS\",\n \"usampler2DMS\",\n \"sampler2DMSArray\",\n \"isampler2DMSArray\",\n \"usampler2DMSArray\"\n ]);\n }\n ),\n /***/\n 620: (\n /***/\n function(module2) {\n module2.exports = [\n // current\n \"precision\",\n \"highp\",\n \"mediump\",\n \"lowp\",\n \"attribute\",\n \"const\",\n \"uniform\",\n \"varying\",\n \"break\",\n \"continue\",\n \"do\",\n \"for\",\n \"while\",\n \"if\",\n \"else\",\n \"in\",\n \"out\",\n \"inout\",\n \"float\",\n \"int\",\n \"uint\",\n \"void\",\n \"bool\",\n \"true\",\n \"false\",\n \"discard\",\n \"return\",\n \"mat2\",\n \"mat3\",\n \"mat4\",\n \"vec2\",\n \"vec3\",\n \"vec4\",\n \"ivec2\",\n \"ivec3\",\n \"ivec4\",\n \"bvec2\",\n \"bvec3\",\n \"bvec4\",\n \"sampler1D\",\n \"sampler2D\",\n \"sampler3D\",\n \"samplerCube\",\n \"sampler1DShadow\",\n \"sampler2DShadow\",\n \"struct\",\n \"asm\",\n \"class\",\n \"union\",\n \"enum\",\n \"typedef\",\n \"template\",\n \"this\",\n \"packed\",\n \"goto\",\n \"switch\",\n \"default\",\n \"inline\",\n \"noinline\",\n \"volatile\",\n \"public\",\n \"static\",\n \"extern\",\n \"external\",\n \"interface\",\n \"long\",\n \"short\",\n \"double\",\n \"half\",\n \"fixed\",\n \"unsigned\",\n \"input\",\n \"output\",\n \"hvec2\",\n \"hvec3\",\n \"hvec4\",\n \"dvec2\",\n \"dvec3\",\n \"dvec4\",\n \"fvec2\",\n \"fvec3\",\n \"fvec4\",\n \"sampler2DRect\",\n \"sampler3DRect\",\n \"sampler2DRectShadow\",\n \"sizeof\",\n \"cast\",\n \"namespace\",\n \"using\"\n ];\n }\n ),\n /***/\n 7827: (\n /***/\n function(module2) {\n module2.exports = [\n \"<<=\",\n \">>=\",\n \"++\",\n \"--\",\n \"<<\",\n \">>\",\n \"<=\",\n \">=\",\n \"==\",\n \"!=\",\n \"&&\",\n \"||\",\n \"+=\",\n \"-=\",\n \"*=\",\n \"/=\",\n \"%=\",\n \"&=\",\n \"^^\",\n \"^=\",\n \"|=\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \".\",\n \"!\",\n \"~\",\n \"*\",\n \"/\",\n \"%\",\n \"+\",\n \"-\",\n \"<\",\n \">\",\n \"&\",\n \"^\",\n \"|\",\n \"?\",\n \":\",\n \"=\",\n \",\",\n \";\",\n \"{\",\n \"}\"\n ];\n }\n ),\n /***/\n 4905: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var tokenize = __webpack_require__2(5874);\n module2.exports = tokenizeString;\n function tokenizeString(str, opt) {\n var generator = tokenize(opt);\n var tokens = [];\n tokens = tokens.concat(generator(str));\n tokens = tokens.concat(generator(null));\n return tokens;\n }\n }\n ),\n /***/\n 3236: (\n /***/\n function(module2) {\n module2.exports = function(strings) {\n if (typeof strings === \"string\") strings = [strings];\n var exprs = [].slice.call(arguments, 1);\n var parts = [];\n for (var i = 0; i < strings.length - 1; i++) {\n parts.push(strings[i], exprs[i] || \"\");\n }\n parts.push(strings[i]);\n return parts.join(\"\");\n };\n }\n ),\n /***/\n 7520: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var isBrowser = __webpack_require__2(9507);\n function detect() {\n var supported = false;\n try {\n var opts = Object.defineProperty({}, \"passive\", {\n get: function() {\n supported = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n window.removeEventListener(\"test\", null, opts);\n } catch (e) {\n supported = false;\n }\n return supported;\n }\n module2.exports = isBrowser && detect();\n }\n ),\n /***/\n 3778: (\n /***/\n function(__unused_webpack_module, exports2) {\n exports2.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 i += d;\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 exports2.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 value = Math.abs(value);\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 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 for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n ),\n /***/\n 8954: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = incrementalConvexHull;\n var orient = __webpack_require__2(3250);\n var compareCell = __webpack_require__2(6803).Fw;\n function Simplex(vertices, adjacent, boundary) {\n this.vertices = vertices;\n this.adjacent = adjacent;\n this.boundary = boundary;\n this.lastVisited = -1;\n }\n Simplex.prototype.flip = function() {\n var t = this.vertices[0];\n this.vertices[0] = this.vertices[1];\n this.vertices[1] = t;\n var u = this.adjacent[0];\n this.adjacent[0] = this.adjacent[1];\n this.adjacent[1] = u;\n };\n function GlueFacet(vertices, cell, index) {\n this.vertices = vertices;\n this.cell = cell;\n this.index = index;\n }\n function compareGlue(a, b) {\n return compareCell(a.vertices, b.vertices);\n }\n function wrapper(test) {\n return function() {\n var tuple = this.tuple;\n return test.apply(this, tuple);\n };\n }\n function bakeOrient(d) {\n var test = orient[d + 1];\n if (!test) {\n test = orient;\n }\n return wrapper(test);\n }\n var BAKED = [];\n function Triangulation(dimension, vertices, simplices) {\n this.dimension = dimension;\n this.vertices = vertices;\n this.simplices = simplices;\n this.interior = simplices.filter(function(c) {\n return !c.boundary;\n });\n this.tuple = new Array(dimension + 1);\n for (var i = 0; i <= dimension; ++i) {\n this.tuple[i] = this.vertices[i];\n }\n var o = BAKED[dimension];\n if (!o) {\n o = BAKED[dimension] = bakeOrient(dimension);\n }\n this.orient = o;\n }\n var proto = Triangulation.prototype;\n proto.handleBoundaryDegeneracy = function(cell, point) {\n var d = this.dimension;\n var n = this.vertices.length - 1;\n var tuple = this.tuple;\n var verts = this.vertices;\n var toVisit = [cell];\n cell.lastVisited = -n;\n while (toVisit.length > 0) {\n cell = toVisit.pop();\n var cellAdj = cell.adjacent;\n for (var i = 0; i <= d; ++i) {\n var neighbor = cellAdj[i];\n if (!neighbor.boundary || neighbor.lastVisited <= -n) {\n continue;\n }\n var nv = neighbor.vertices;\n for (var j = 0; j <= d; ++j) {\n var vv = nv[j];\n if (vv < 0) {\n tuple[j] = point;\n } else {\n tuple[j] = verts[vv];\n }\n }\n var o = this.orient();\n if (o > 0) {\n return neighbor;\n }\n neighbor.lastVisited = -n;\n if (o === 0) {\n toVisit.push(neighbor);\n }\n }\n }\n return null;\n };\n proto.walk = function(point, random) {\n var n = this.vertices.length - 1;\n var d = this.dimension;\n var verts = this.vertices;\n var tuple = this.tuple;\n var initIndex = random ? this.interior.length * Math.random() | 0 : this.interior.length - 1;\n var cell = this.interior[initIndex];\n outerLoop:\n while (!cell.boundary) {\n var cellVerts = cell.vertices;\n var cellAdj = cell.adjacent;\n for (var i = 0; i <= d; ++i) {\n tuple[i] = verts[cellVerts[i]];\n }\n cell.lastVisited = n;\n for (var i = 0; i <= d; ++i) {\n var neighbor = cellAdj[i];\n if (neighbor.lastVisited >= n) {\n continue;\n }\n var prev = tuple[i];\n tuple[i] = point;\n var o = this.orient();\n tuple[i] = prev;\n if (o < 0) {\n cell = neighbor;\n continue outerLoop;\n } else {\n if (!neighbor.boundary) {\n neighbor.lastVisited = n;\n } else {\n neighbor.lastVisited = -n;\n }\n }\n }\n return;\n }\n return cell;\n };\n proto.addPeaks = function(point, cell) {\n var n = this.vertices.length - 1;\n var d = this.dimension;\n var verts = this.vertices;\n var tuple = this.tuple;\n var interior = this.interior;\n var simplices = this.simplices;\n var tovisit = [cell];\n cell.lastVisited = n;\n cell.vertices[cell.vertices.indexOf(-1)] = n;\n cell.boundary = false;\n interior.push(cell);\n var glueFacets = [];\n while (tovisit.length > 0) {\n var cell = tovisit.pop();\n var cellVerts = cell.vertices;\n var cellAdj = cell.adjacent;\n var indexOfN = cellVerts.indexOf(n);\n if (indexOfN < 0) {\n continue;\n }\n for (var i = 0; i <= d; ++i) {\n if (i === indexOfN) {\n continue;\n }\n var neighbor = cellAdj[i];\n if (!neighbor.boundary || neighbor.lastVisited >= n) {\n continue;\n }\n var nv = neighbor.vertices;\n if (neighbor.lastVisited !== -n) {\n var indexOfNeg1 = 0;\n for (var j = 0; j <= d; ++j) {\n if (nv[j] < 0) {\n indexOfNeg1 = j;\n tuple[j] = point;\n } else {\n tuple[j] = verts[nv[j]];\n }\n }\n var o = this.orient();\n if (o > 0) {\n nv[indexOfNeg1] = n;\n neighbor.boundary = false;\n interior.push(neighbor);\n tovisit.push(neighbor);\n neighbor.lastVisited = n;\n continue;\n } else {\n neighbor.lastVisited = -n;\n }\n }\n var na = neighbor.adjacent;\n var vverts = cellVerts.slice();\n var vadj = cellAdj.slice();\n var ncell = new Simplex(vverts, vadj, true);\n simplices.push(ncell);\n var opposite = na.indexOf(cell);\n if (opposite < 0) {\n continue;\n }\n na[opposite] = ncell;\n vadj[indexOfN] = neighbor;\n vverts[i] = -1;\n vadj[i] = cell;\n cellAdj[i] = ncell;\n ncell.flip();\n for (var j = 0; j <= d; ++j) {\n var uu = vverts[j];\n if (uu < 0 || uu === n) {\n continue;\n }\n var nface = new Array(d - 1);\n var nptr = 0;\n for (var k = 0; k <= d; ++k) {\n var vv = vverts[k];\n if (vv < 0 || k === j) {\n continue;\n }\n nface[nptr++] = vv;\n }\n glueFacets.push(new GlueFacet(nface, ncell, j));\n }\n }\n }\n glueFacets.sort(compareGlue);\n for (var i = 0; i + 1 < glueFacets.length; i += 2) {\n var a = glueFacets[i];\n var b = glueFacets[i + 1];\n var ai = a.index;\n var bi = b.index;\n if (ai < 0 || bi < 0) {\n continue;\n }\n a.cell.adjacent[a.index] = b.cell;\n b.cell.adjacent[b.index] = a.cell;\n }\n };\n proto.insert = function(point, random) {\n var verts = this.vertices;\n verts.push(point);\n var cell = this.walk(point, random);\n if (!cell) {\n return;\n }\n var d = this.dimension;\n var tuple = this.tuple;\n for (var i = 0; i <= d; ++i) {\n var vv = cell.vertices[i];\n if (vv < 0) {\n tuple[i] = point;\n } else {\n tuple[i] = verts[vv];\n }\n }\n var o = this.orient(tuple);\n if (o < 0) {\n return;\n } else if (o === 0) {\n cell = this.handleBoundaryDegeneracy(cell, point);\n if (!cell) {\n return;\n }\n }\n this.addPeaks(point, cell);\n };\n proto.boundary = function() {\n var d = this.dimension;\n var boundary = [];\n var cells = this.simplices;\n var nc = cells.length;\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n if (c.boundary) {\n var bcell = new Array(d);\n var cv = c.vertices;\n var ptr = 0;\n var parity = 0;\n for (var j = 0; j <= d; ++j) {\n if (cv[j] >= 0) {\n bcell[ptr++] = cv[j];\n } else {\n parity = j & 1;\n }\n }\n if (parity === (d & 1)) {\n var t = bcell[0];\n bcell[0] = bcell[1];\n bcell[1] = t;\n }\n boundary.push(bcell);\n }\n }\n return boundary;\n };\n function incrementalConvexHull(points, randomSearch) {\n var n = points.length;\n if (n === 0) {\n throw new Error(\"Must have at least d+1 points\");\n }\n var d = points[0].length;\n if (n <= d) {\n throw new Error(\"Must input at least d+1 points\");\n }\n var initialSimplex = points.slice(0, d + 1);\n var o = orient.apply(void 0, initialSimplex);\n if (o === 0) {\n throw new Error(\"Input not in general position\");\n }\n var initialCoords = new Array(d + 1);\n for (var i = 0; i <= d; ++i) {\n initialCoords[i] = i;\n }\n if (o < 0) {\n initialCoords[0] = 1;\n initialCoords[1] = 0;\n }\n var initialCell = new Simplex(initialCoords, new Array(d + 1), false);\n var boundary = initialCell.adjacent;\n var list = new Array(d + 2);\n for (var i = 0; i <= d; ++i) {\n var verts = initialCoords.slice();\n for (var j = 0; j <= d; ++j) {\n if (j === i) {\n verts[j] = -1;\n }\n }\n var t = verts[0];\n verts[0] = verts[1];\n verts[1] = t;\n var cell = new Simplex(verts, new Array(d + 1), true);\n boundary[i] = cell;\n list[i] = cell;\n }\n list[d + 1] = initialCell;\n for (var i = 0; i <= d; ++i) {\n var verts = boundary[i].vertices;\n var adj = boundary[i].adjacent;\n for (var j = 0; j <= d; ++j) {\n var v = verts[j];\n if (v < 0) {\n adj[j] = initialCell;\n continue;\n }\n for (var k = 0; k <= d; ++k) {\n if (boundary[k].vertices.indexOf(v) < 0) {\n adj[j] = boundary[k];\n }\n }\n }\n }\n var triangles = new Triangulation(d, initialSimplex, list);\n var useRandom = !!randomSearch;\n for (var i = d + 1; i < n; ++i) {\n triangles.insert(points[i], useRandom);\n }\n return triangles.boundary();\n }\n }\n ),\n /***/\n 3352: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bounds = __webpack_require__2(2478);\n var NOT_FOUND = 0;\n var SUCCESS = 1;\n var EMPTY = 2;\n module2.exports = createWrapper;\n function IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n this.mid = mid;\n this.left = left;\n this.right = right;\n this.leftPoints = leftPoints;\n this.rightPoints = rightPoints;\n this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;\n }\n var proto = IntervalTreeNode.prototype;\n function copy(a, b) {\n a.mid = b.mid;\n a.left = b.left;\n a.right = b.right;\n a.leftPoints = b.leftPoints;\n a.rightPoints = b.rightPoints;\n a.count = b.count;\n }\n function rebuild(node, intervals) {\n var ntree = createIntervalTree(intervals);\n node.mid = ntree.mid;\n node.left = ntree.left;\n node.right = ntree.right;\n node.leftPoints = ntree.leftPoints;\n node.rightPoints = ntree.rightPoints;\n node.count = ntree.count;\n }\n function rebuildWithInterval(node, interval) {\n var intervals = node.intervals([]);\n intervals.push(interval);\n rebuild(node, intervals);\n }\n function rebuildWithoutInterval(node, interval) {\n var intervals = node.intervals([]);\n var idx = intervals.indexOf(interval);\n if (idx < 0) {\n return NOT_FOUND;\n }\n intervals.splice(idx, 1);\n rebuild(node, intervals);\n return SUCCESS;\n }\n proto.intervals = function(result) {\n result.push.apply(result, this.leftPoints);\n if (this.left) {\n this.left.intervals(result);\n }\n if (this.right) {\n this.right.intervals(result);\n }\n return result;\n };\n proto.insert = function(interval) {\n var weight = this.count - this.leftPoints.length;\n this.count += 1;\n if (interval[1] < this.mid) {\n if (this.left) {\n if (4 * (this.left.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.left.insert(interval);\n }\n } else {\n this.left = createIntervalTree([interval]);\n }\n } else if (interval[0] > this.mid) {\n if (this.right) {\n if (4 * (this.right.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.right.insert(interval);\n }\n } else {\n this.right = createIntervalTree([interval]);\n }\n } else {\n var l = bounds.ge(this.leftPoints, interval, compareBegin);\n var r = bounds.ge(this.rightPoints, interval, compareEnd);\n this.leftPoints.splice(l, 0, interval);\n this.rightPoints.splice(r, 0, interval);\n }\n };\n proto.remove = function(interval) {\n var weight = this.count - this.leftPoints;\n if (interval[1] < this.mid) {\n if (!this.left) {\n return NOT_FOUND;\n }\n var rw = this.right ? this.right.count : 0;\n if (4 * rw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n var r = this.left.remove(interval);\n if (r === EMPTY) {\n this.left = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n return r;\n } else if (interval[0] > this.mid) {\n if (!this.right) {\n return NOT_FOUND;\n }\n var lw = this.left ? this.left.count : 0;\n if (4 * lw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n var r = this.right.remove(interval);\n if (r === EMPTY) {\n this.right = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n return r;\n } else {\n if (this.count === 1) {\n if (this.leftPoints[0] === interval) {\n return EMPTY;\n } else {\n return NOT_FOUND;\n }\n }\n if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n if (this.left && this.right) {\n var p = this;\n var n = this.left;\n while (n.right) {\n p = n;\n n = n.right;\n }\n if (p === this) {\n n.right = this.right;\n } else {\n var l = this.left;\n var r = this.right;\n p.count -= n.count;\n p.right = n.left;\n n.left = l;\n n.right = r;\n }\n copy(this, n);\n this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;\n } else if (this.left) {\n copy(this, this.left);\n } else {\n copy(this, this.right);\n }\n return SUCCESS;\n }\n for (var l = bounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {\n if (this.leftPoints[l][0] !== interval[0]) {\n break;\n }\n if (this.leftPoints[l] === interval) {\n this.count -= 1;\n this.leftPoints.splice(l, 1);\n for (var r = bounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {\n if (this.rightPoints[r][1] !== interval[1]) {\n break;\n } else if (this.rightPoints[r] === interval) {\n this.rightPoints.splice(r, 1);\n return SUCCESS;\n }\n }\n }\n }\n return NOT_FOUND;\n }\n };\n function reportLeftRange(arr, hi, cb) {\n for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n }\n function reportRightRange(arr, lo, cb) {\n for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n }\n function reportRange(arr, cb) {\n for (var i = 0; i < arr.length; ++i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n }\n proto.queryPoint = function(x, cb) {\n if (x < this.mid) {\n if (this.left) {\n var r = this.left.queryPoint(x, cb);\n if (r) {\n return r;\n }\n }\n return reportLeftRange(this.leftPoints, x, cb);\n } else if (x > this.mid) {\n if (this.right) {\n var r = this.right.queryPoint(x, cb);\n if (r) {\n return r;\n }\n }\n return reportRightRange(this.rightPoints, x, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n };\n proto.queryInterval = function(lo, hi, cb) {\n if (lo < this.mid && this.left) {\n var r = this.left.queryInterval(lo, hi, cb);\n if (r) {\n return r;\n }\n }\n if (hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb);\n if (r) {\n return r;\n }\n }\n if (hi < this.mid) {\n return reportLeftRange(this.leftPoints, hi, cb);\n } else if (lo > this.mid) {\n return reportRightRange(this.rightPoints, lo, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n };\n function compareNumbers(a, b) {\n return a - b;\n }\n function compareBegin(a, b) {\n var d = a[0] - b[0];\n if (d) {\n return d;\n }\n return a[1] - b[1];\n }\n function compareEnd(a, b) {\n var d = a[1] - b[1];\n if (d) {\n return d;\n }\n return a[0] - b[0];\n }\n function createIntervalTree(intervals) {\n if (intervals.length === 0) {\n return null;\n }\n var pts = [];\n for (var i = 0; i < intervals.length; ++i) {\n pts.push(intervals[i][0], intervals[i][1]);\n }\n pts.sort(compareNumbers);\n var mid = pts[pts.length >> 1];\n var leftIntervals = [];\n var rightIntervals = [];\n var centerIntervals = [];\n for (var i = 0; i < intervals.length; ++i) {\n var s = intervals[i];\n if (s[1] < mid) {\n leftIntervals.push(s);\n } else if (mid < s[0]) {\n rightIntervals.push(s);\n } else {\n centerIntervals.push(s);\n }\n }\n var leftPoints = centerIntervals;\n var rightPoints = centerIntervals.slice();\n leftPoints.sort(compareBegin);\n rightPoints.sort(compareEnd);\n return new IntervalTreeNode(\n mid,\n createIntervalTree(leftIntervals),\n createIntervalTree(rightIntervals),\n leftPoints,\n rightPoints\n );\n }\n function IntervalTree(root) {\n this.root = root;\n }\n var tproto = IntervalTree.prototype;\n tproto.insert = function(interval) {\n if (this.root) {\n this.root.insert(interval);\n } else {\n this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);\n }\n };\n tproto.remove = function(interval) {\n if (this.root) {\n var r = this.root.remove(interval);\n if (r === EMPTY) {\n this.root = null;\n }\n return r !== NOT_FOUND;\n }\n return false;\n };\n tproto.queryPoint = function(p, cb) {\n if (this.root) {\n return this.root.queryPoint(p, cb);\n }\n };\n tproto.queryInterval = function(lo, hi, cb) {\n if (lo <= hi && this.root) {\n return this.root.queryInterval(lo, hi, cb);\n }\n };\n Object.defineProperty(tproto, \"count\", {\n get: function() {\n if (this.root) {\n return this.root.count;\n }\n return 0;\n }\n });\n Object.defineProperty(tproto, \"intervals\", {\n get: function() {\n if (this.root) {\n return this.root.intervals([]);\n }\n return [];\n }\n });\n function createWrapper(intervals) {\n if (!intervals || intervals.length === 0) {\n return new IntervalTree(null);\n }\n return new IntervalTree(createIntervalTree(intervals));\n }\n }\n ),\n /***/\n 9507: (\n /***/\n function(module2) {\n module2.exports = true;\n }\n ),\n /***/\n 7163: (\n /***/\n function(module2) {\n module2.exports = function(obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer);\n };\n function isBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === \"function\" && obj.constructor.isBuffer(obj);\n }\n function isSlowBuffer(obj) {\n return typeof obj.readFloatLE === \"function\" && typeof obj.slice === \"function\" && isBuffer(obj.slice(0, 0));\n }\n }\n ),\n /***/\n 5219: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = function(str) {\n var l = str.length, a;\n for (var i = 0; i < l; i++) {\n a = str.charCodeAt(i);\n if ((a < 9 || a > 13) && a !== 32 && a !== 133 && a !== 160 && a !== 5760 && a !== 6158 && (a < 8192 || a > 8205) && a !== 8232 && a !== 8233 && a !== 8239 && a !== 8287 && a !== 8288 && a !== 12288 && a !== 65279) {\n return false;\n }\n }\n return true;\n };\n }\n ),\n /***/\n 395: (\n /***/\n function(module2) {\n function lerp(v0, v1, t) {\n return v0 * (1 - t) + v1 * t;\n }\n module2.exports = lerp;\n }\n ),\n /***/\n 2652: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var normalize = __webpack_require__2(4335);\n var create = __webpack_require__2(6864);\n var clone = __webpack_require__2(1903);\n var determinant = __webpack_require__2(9921);\n var invert = __webpack_require__2(7608);\n var transpose = __webpack_require__2(5665);\n var vec3 = {\n length: __webpack_require__2(1387),\n normalize: __webpack_require__2(3536),\n dot: __webpack_require__2(244),\n cross: __webpack_require__2(5911)\n };\n var tmp = create();\n var perspectiveMatrix = create();\n var tmpVec4 = [0, 0, 0, 0];\n var row = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];\n var pdum3 = [0, 0, 0];\n module2.exports = function decomposeMat4(matrix, translation, scale, skew, perspective, quaternion) {\n if (!translation) translation = [0, 0, 0];\n if (!scale) scale = [0, 0, 0];\n if (!skew) skew = [0, 0, 0];\n if (!perspective) perspective = [0, 0, 0, 1];\n if (!quaternion) quaternion = [0, 0, 0, 1];\n if (!normalize(tmp, matrix))\n return false;\n clone(perspectiveMatrix, tmp);\n perspectiveMatrix[3] = 0;\n perspectiveMatrix[7] = 0;\n perspectiveMatrix[11] = 0;\n perspectiveMatrix[15] = 1;\n if (Math.abs(determinant(perspectiveMatrix) < 1e-8))\n return false;\n var a03 = tmp[3], a13 = tmp[7], a23 = tmp[11], a30 = tmp[12], a31 = tmp[13], a32 = tmp[14], a33 = tmp[15];\n if (a03 !== 0 || a13 !== 0 || a23 !== 0) {\n tmpVec4[0] = a03;\n tmpVec4[1] = a13;\n tmpVec4[2] = a23;\n tmpVec4[3] = a33;\n var ret = invert(perspectiveMatrix, perspectiveMatrix);\n if (!ret) return false;\n transpose(perspectiveMatrix, perspectiveMatrix);\n vec4multMat4(perspective, tmpVec4, perspectiveMatrix);\n } else {\n perspective[0] = perspective[1] = perspective[2] = 0;\n perspective[3] = 1;\n }\n translation[0] = a30;\n translation[1] = a31;\n translation[2] = a32;\n mat3from4(row, tmp);\n scale[0] = vec3.length(row[0]);\n vec3.normalize(row[0], row[0]);\n skew[0] = vec3.dot(row[0], row[1]);\n combine(row[1], row[1], row[0], 1, -skew[0]);\n scale[1] = vec3.length(row[1]);\n vec3.normalize(row[1], row[1]);\n skew[0] /= scale[1];\n skew[1] = vec3.dot(row[0], row[2]);\n combine(row[2], row[2], row[0], 1, -skew[1]);\n skew[2] = vec3.dot(row[1], row[2]);\n combine(row[2], row[2], row[1], 1, -skew[2]);\n scale[2] = vec3.length(row[2]);\n vec3.normalize(row[2], row[2]);\n skew[1] /= scale[2];\n skew[2] /= scale[2];\n vec3.cross(pdum3, row[1], row[2]);\n if (vec3.dot(row[0], pdum3) < 0) {\n for (var i = 0; i < 3; i++) {\n scale[i] *= -1;\n row[i][0] *= -1;\n row[i][1] *= -1;\n row[i][2] *= -1;\n }\n }\n quaternion[0] = 0.5 * Math.sqrt(Math.max(1 + row[0][0] - row[1][1] - row[2][2], 0));\n quaternion[1] = 0.5 * Math.sqrt(Math.max(1 - row[0][0] + row[1][1] - row[2][2], 0));\n quaternion[2] = 0.5 * Math.sqrt(Math.max(1 - row[0][0] - row[1][1] + row[2][2], 0));\n quaternion[3] = 0.5 * Math.sqrt(Math.max(1 + row[0][0] + row[1][1] + row[2][2], 0));\n if (row[2][1] > row[1][2])\n quaternion[0] = -quaternion[0];\n if (row[0][2] > row[2][0])\n quaternion[1] = -quaternion[1];\n if (row[1][0] > row[0][1])\n quaternion[2] = -quaternion[2];\n return true;\n };\n function vec4multMat4(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n }\n function mat3from4(out, mat4x4) {\n out[0][0] = mat4x4[0];\n out[0][1] = mat4x4[1];\n out[0][2] = mat4x4[2];\n out[1][0] = mat4x4[4];\n out[1][1] = mat4x4[5];\n out[1][2] = mat4x4[6];\n out[2][0] = mat4x4[8];\n out[2][1] = mat4x4[9];\n out[2][2] = mat4x4[10];\n }\n function combine(out, a, b, scale1, scale2) {\n out[0] = a[0] * scale1 + b[0] * scale2;\n out[1] = a[1] * scale1 + b[1] * scale2;\n out[2] = a[2] * scale1 + b[2] * scale2;\n }\n }\n ),\n /***/\n 4335: (\n /***/\n function(module2) {\n module2.exports = function normalize(out, mat) {\n var m44 = mat[15];\n if (m44 === 0)\n return false;\n var scale = 1 / m44;\n for (var i = 0; i < 16; i++)\n out[i] = mat[i] * scale;\n return true;\n };\n }\n ),\n /***/\n 7442: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var lerp = __webpack_require__2(6658);\n var recompose = __webpack_require__2(7182);\n var decompose = __webpack_require__2(2652);\n var determinant = __webpack_require__2(9921);\n var slerp = __webpack_require__2(8648);\n var state0 = state();\n var state1 = state();\n var tmp = state();\n module2.exports = interpolate;\n function interpolate(out, start, end, alpha) {\n if (determinant(start) === 0 || determinant(end) === 0)\n return false;\n var r0 = decompose(start, state0.translate, state0.scale, state0.skew, state0.perspective, state0.quaternion);\n var r1 = decompose(end, state1.translate, state1.scale, state1.skew, state1.perspective, state1.quaternion);\n if (!r0 || !r1)\n return false;\n lerp(tmp.translate, state0.translate, state1.translate, alpha);\n lerp(tmp.skew, state0.skew, state1.skew, alpha);\n lerp(tmp.scale, state0.scale, state1.scale, alpha);\n lerp(tmp.perspective, state0.perspective, state1.perspective, alpha);\n slerp(tmp.quaternion, state0.quaternion, state1.quaternion, alpha);\n recompose(out, tmp.translate, tmp.scale, tmp.skew, tmp.perspective, tmp.quaternion);\n return true;\n }\n function state() {\n return {\n translate: vec3(),\n scale: vec3(1),\n skew: vec3(),\n perspective: vec4(),\n quaternion: vec4()\n };\n }\n function vec3(n) {\n return [n || 0, n || 0, n || 0];\n }\n function vec4() {\n return [0, 0, 0, 1];\n }\n }\n ),\n /***/\n 7182: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var mat4 = {\n identity: __webpack_require__2(7894),\n translate: __webpack_require__2(7656),\n multiply: __webpack_require__2(6760),\n create: __webpack_require__2(6864),\n scale: __webpack_require__2(2504),\n fromRotationTranslation: __webpack_require__2(6743)\n };\n var rotationMatrix = mat4.create();\n var temp = mat4.create();\n module2.exports = function recomposeMat4(matrix, translation, scale, skew, perspective, quaternion) {\n mat4.identity(matrix);\n mat4.fromRotationTranslation(matrix, quaternion, translation);\n matrix[3] = perspective[0];\n matrix[7] = perspective[1];\n matrix[11] = perspective[2];\n matrix[15] = perspective[3];\n mat4.identity(temp);\n if (skew[2] !== 0) {\n temp[9] = skew[2];\n mat4.multiply(matrix, matrix, temp);\n }\n if (skew[1] !== 0) {\n temp[9] = 0;\n temp[8] = skew[1];\n mat4.multiply(matrix, matrix, temp);\n }\n if (skew[0] !== 0) {\n temp[8] = 0;\n temp[4] = skew[0];\n mat4.multiply(matrix, matrix, temp);\n }\n mat4.scale(matrix, matrix, scale);\n return matrix;\n };\n }\n ),\n /***/\n 1811: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bsearch = __webpack_require__2(2478);\n var m4interp = __webpack_require__2(7442);\n var invert44 = __webpack_require__2(7608);\n var rotateX = __webpack_require__2(5567);\n var rotateY = __webpack_require__2(2408);\n var rotateZ = __webpack_require__2(7089);\n var lookAt = __webpack_require__2(6582);\n var translate = __webpack_require__2(7656);\n var scale = __webpack_require__2(2504);\n var normalize = __webpack_require__2(3536);\n var DEFAULT_CENTER = [0, 0, 0];\n module2.exports = createMatrixCameraController;\n function MatrixCameraController(initialMatrix) {\n this._components = initialMatrix.slice();\n this._time = [0];\n this.prevMatrix = initialMatrix.slice();\n this.nextMatrix = initialMatrix.slice();\n this.computedMatrix = initialMatrix.slice();\n this.computedInverse = initialMatrix.slice();\n this.computedEye = [0, 0, 0];\n this.computedUp = [0, 0, 0];\n this.computedCenter = [0, 0, 0];\n this.computedRadius = [0];\n this._limits = [-Infinity, Infinity];\n }\n var proto = MatrixCameraController.prototype;\n proto.recalcMatrix = function(t) {\n var time = this._time;\n var tidx = bsearch.le(time, t);\n var mat = this.computedMatrix;\n if (tidx < 0) {\n return;\n }\n var comps = this._components;\n if (tidx === time.length - 1) {\n var ptr = 16 * tidx;\n for (var i = 0; i < 16; ++i) {\n mat[i] = comps[ptr++];\n }\n } else {\n var dt = time[tidx + 1] - time[tidx];\n var ptr = 16 * tidx;\n var prev = this.prevMatrix;\n var allEqual = true;\n for (var i = 0; i < 16; ++i) {\n prev[i] = comps[ptr++];\n }\n var next = this.nextMatrix;\n for (var i = 0; i < 16; ++i) {\n next[i] = comps[ptr++];\n allEqual = allEqual && prev[i] === next[i];\n }\n if (dt < 1e-6 || allEqual) {\n for (var i = 0; i < 16; ++i) {\n mat[i] = prev[i];\n }\n } else {\n m4interp(mat, prev, next, (t - time[tidx]) / dt);\n }\n }\n var up = this.computedUp;\n up[0] = mat[1];\n up[1] = mat[5];\n up[2] = mat[9];\n normalize(up, up);\n var imat = this.computedInverse;\n invert44(imat, mat);\n var eye = this.computedEye;\n var w = imat[15];\n eye[0] = imat[12] / w;\n eye[1] = imat[13] / w;\n eye[2] = imat[14] / w;\n var center = this.computedCenter;\n var radius = Math.exp(this.computedRadius[0]);\n for (var i = 0; i < 3; ++i) {\n center[i] = eye[i] - mat[2 + 4 * i] * radius;\n }\n };\n proto.idle = function(t) {\n if (t < this.lastT()) {\n return;\n }\n var mc = this._components;\n var ptr = mc.length - 16;\n for (var i = 0; i < 16; ++i) {\n mc.push(mc[ptr++]);\n }\n this._time.push(t);\n };\n proto.flush = function(t) {\n var idx = bsearch.gt(this._time, t) - 2;\n if (idx < 0) {\n return;\n }\n this._time.splice(0, idx);\n this._components.splice(0, 16 * idx);\n };\n proto.lastT = function() {\n return this._time[this._time.length - 1];\n };\n proto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t);\n eye = eye || this.computedEye;\n center = center || DEFAULT_CENTER;\n up = up || this.computedUp;\n this.setMatrix(t, lookAt(this.computedMatrix, eye, center, up));\n var d2 = 0;\n for (var i = 0; i < 3; ++i) {\n d2 += Math.pow(center[i] - eye[i], 2);\n }\n d2 = Math.log(Math.sqrt(d2));\n this.computedRadius[0] = d2;\n };\n proto.rotate = function(t, yaw, pitch, roll) {\n this.recalcMatrix(t);\n var mat = this.computedInverse;\n if (yaw) rotateY(mat, mat, yaw);\n if (pitch) rotateX(mat, mat, pitch);\n if (roll) rotateZ(mat, mat, roll);\n this.setMatrix(t, invert44(this.computedMatrix, mat));\n };\n var tvec = [0, 0, 0];\n proto.pan = function(t, dx, dy, dz) {\n tvec[0] = -(dx || 0);\n tvec[1] = -(dy || 0);\n tvec[2] = -(dz || 0);\n this.recalcMatrix(t);\n var mat = this.computedInverse;\n translate(mat, mat, tvec);\n this.setMatrix(t, invert44(mat, mat));\n };\n proto.translate = function(t, dx, dy, dz) {\n tvec[0] = dx || 0;\n tvec[1] = dy || 0;\n tvec[2] = dz || 0;\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n translate(mat, mat, tvec);\n this.setMatrix(t, mat);\n };\n proto.setMatrix = function(t, mat) {\n if (t < this.lastT()) {\n return;\n }\n this._time.push(t);\n for (var i = 0; i < 16; ++i) {\n this._components.push(mat[i]);\n }\n };\n proto.setDistance = function(t, d) {\n this.computedRadius[0] = d;\n };\n proto.setDistanceLimits = function(a, b) {\n var lim = this._limits;\n lim[0] = a;\n lim[1] = b;\n };\n proto.getDistanceLimits = function(out) {\n var lim = this._limits;\n if (out) {\n out[0] = lim[0];\n out[1] = lim[1];\n return out;\n }\n return lim;\n };\n function createMatrixCameraController(options) {\n options = options || {};\n var matrix = options.matrix || [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n return new MatrixCameraController(matrix);\n }\n }\n ),\n /***/\n 3090: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = monotoneConvexHull2D;\n var orient = __webpack_require__2(3250)[3];\n function monotoneConvexHull2D(points) {\n var n = points.length;\n if (n < 3) {\n var result = new Array(n);\n for (var i = 0; i < n; ++i) {\n result[i] = i;\n }\n if (n === 2 && points[0][0] === points[1][0] && points[0][1] === points[1][1]) {\n return [0];\n }\n return result;\n }\n var sorted = new Array(n);\n for (var i = 0; i < n; ++i) {\n sorted[i] = i;\n }\n sorted.sort(function(a, b) {\n var d = points[a][0] - points[b][0];\n if (d) {\n return d;\n }\n return points[a][1] - points[b][1];\n });\n var lower = [sorted[0], sorted[1]];\n var upper = [sorted[0], sorted[1]];\n for (var i = 2; i < n; ++i) {\n var idx = sorted[i];\n var p = points[idx];\n var m = lower.length;\n while (m > 1 && orient(\n points[lower[m - 2]],\n points[lower[m - 1]],\n p\n ) <= 0) {\n m -= 1;\n lower.pop();\n }\n lower.push(idx);\n m = upper.length;\n while (m > 1 && orient(\n points[upper[m - 2]],\n points[upper[m - 1]],\n p\n ) >= 0) {\n m -= 1;\n upper.pop();\n }\n upper.push(idx);\n }\n var result = new Array(upper.length + lower.length - 2);\n var ptr = 0;\n for (var i = 0, nl = lower.length; i < nl; ++i) {\n result[ptr++] = lower[i];\n }\n for (var j = upper.length - 2; j > 0; --j) {\n result[ptr++] = upper[j];\n }\n return result;\n }\n }\n ),\n /***/\n 351: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = mouseListen;\n var mouse = __webpack_require__2(4687);\n function mouseListen(element, callback) {\n if (!callback) {\n callback = element;\n element = window;\n }\n var buttonState = 0;\n var x = 0;\n var y = 0;\n var mods = {\n shift: false,\n alt: false,\n control: false,\n meta: false\n };\n var attached = false;\n function updateMods(ev) {\n var changed = false;\n if (\"altKey\" in ev) {\n changed = changed || ev.altKey !== mods.alt;\n mods.alt = !!ev.altKey;\n }\n if (\"shiftKey\" in ev) {\n changed = changed || ev.shiftKey !== mods.shift;\n mods.shift = !!ev.shiftKey;\n }\n if (\"ctrlKey\" in ev) {\n changed = changed || ev.ctrlKey !== mods.control;\n mods.control = !!ev.ctrlKey;\n }\n if (\"metaKey\" in ev) {\n changed = changed || ev.metaKey !== mods.meta;\n mods.meta = !!ev.metaKey;\n }\n return changed;\n }\n function handleEvent(nextButtons, ev) {\n var nextX = mouse.x(ev);\n var nextY = mouse.y(ev);\n if (\"buttons\" in ev) {\n nextButtons = ev.buttons | 0;\n }\n if (nextButtons !== buttonState || nextX !== x || nextY !== y || updateMods(ev)) {\n buttonState = nextButtons | 0;\n x = nextX || 0;\n y = nextY || 0;\n callback && callback(buttonState, x, y, mods);\n }\n }\n function clearState(ev) {\n handleEvent(0, ev);\n }\n function handleBlur() {\n if (buttonState || x || y || mods.shift || mods.alt || mods.meta || mods.control) {\n x = y = 0;\n buttonState = 0;\n mods.shift = mods.alt = mods.control = mods.meta = false;\n callback && callback(0, 0, 0, mods);\n }\n }\n function handleMods(ev) {\n if (updateMods(ev)) {\n callback && callback(buttonState, x, y, mods);\n }\n }\n function handleMouseMove(ev) {\n if (mouse.buttons(ev) === 0) {\n handleEvent(0, ev);\n } else {\n handleEvent(buttonState, ev);\n }\n }\n function handleMouseDown(ev) {\n handleEvent(buttonState | mouse.buttons(ev), ev);\n }\n function handleMouseUp(ev) {\n handleEvent(buttonState & ~mouse.buttons(ev), ev);\n }\n function attachListeners() {\n if (attached) {\n return;\n }\n attached = true;\n element.addEventListener(\"mousemove\", handleMouseMove);\n element.addEventListener(\"mousedown\", handleMouseDown);\n element.addEventListener(\"mouseup\", handleMouseUp);\n element.addEventListener(\"mouseleave\", clearState);\n element.addEventListener(\"mouseenter\", clearState);\n element.addEventListener(\"mouseout\", clearState);\n element.addEventListener(\"mouseover\", clearState);\n element.addEventListener(\"blur\", handleBlur);\n element.addEventListener(\"keyup\", handleMods);\n element.addEventListener(\"keydown\", handleMods);\n element.addEventListener(\"keypress\", handleMods);\n if (element !== window) {\n window.addEventListener(\"blur\", handleBlur);\n window.addEventListener(\"keyup\", handleMods);\n window.addEventListener(\"keydown\", handleMods);\n window.addEventListener(\"keypress\", handleMods);\n }\n }\n function detachListeners() {\n if (!attached) {\n return;\n }\n attached = false;\n element.removeEventListener(\"mousemove\", handleMouseMove);\n element.removeEventListener(\"mousedown\", handleMouseDown);\n element.removeEventListener(\"mouseup\", handleMouseUp);\n element.removeEventListener(\"mouseleave\", clearState);\n element.removeEventListener(\"mouseenter\", clearState);\n element.removeEventListener(\"mouseout\", clearState);\n element.removeEventListener(\"mouseover\", clearState);\n element.removeEventListener(\"blur\", handleBlur);\n element.removeEventListener(\"keyup\", handleMods);\n element.removeEventListener(\"keydown\", handleMods);\n element.removeEventListener(\"keypress\", handleMods);\n if (element !== window) {\n window.removeEventListener(\"blur\", handleBlur);\n window.removeEventListener(\"keyup\", handleMods);\n window.removeEventListener(\"keydown\", handleMods);\n window.removeEventListener(\"keypress\", handleMods);\n }\n }\n attachListeners();\n var result = {\n element\n };\n Object.defineProperties(result, {\n enabled: {\n get: function() {\n return attached;\n },\n set: function(f) {\n if (f) {\n attachListeners();\n } else {\n detachListeners();\n }\n },\n enumerable: true\n },\n buttons: {\n get: function() {\n return buttonState;\n },\n enumerable: true\n },\n x: {\n get: function() {\n return x;\n },\n enumerable: true\n },\n y: {\n get: function() {\n return y;\n },\n enumerable: true\n },\n mods: {\n get: function() {\n return mods;\n },\n enumerable: true\n }\n });\n return result;\n }\n }\n ),\n /***/\n 24: (\n /***/\n function(module2) {\n var rootPosition = { left: 0, top: 0 };\n module2.exports = mouseEventOffset;\n function mouseEventOffset(ev, target, out) {\n target = target || ev.currentTarget || ev.srcElement;\n if (!Array.isArray(out)) {\n out = [0, 0];\n }\n var cx = ev.clientX || 0;\n var cy = ev.clientY || 0;\n var rect = getBoundingClientOffset(target);\n out[0] = cx - rect.left;\n out[1] = cy - rect.top;\n return out;\n }\n function getBoundingClientOffset(element) {\n if (element === window || element === document || element === document.body) {\n return rootPosition;\n } else {\n return element.getBoundingClientRect();\n }\n }\n }\n ),\n /***/\n 4687: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n function mouseButtons(ev) {\n if (typeof ev === \"object\") {\n if (\"buttons\" in ev) {\n return ev.buttons;\n } else if (\"which\" in ev) {\n var b = ev.which;\n if (b === 2) {\n return 4;\n } else if (b === 3) {\n return 2;\n } else if (b > 0) {\n return 1 << b - 1;\n }\n } else if (\"button\" in ev) {\n var b = ev.button;\n if (b === 1) {\n return 4;\n } else if (b === 2) {\n return 2;\n } else if (b >= 0) {\n return 1 << b;\n }\n }\n }\n return 0;\n }\n exports2.buttons = mouseButtons;\n function mouseElement(ev) {\n return ev.target || ev.srcElement || window;\n }\n exports2.element = mouseElement;\n function mouseRelativeX(ev) {\n if (typeof ev === \"object\") {\n if (\"offsetX\" in ev) {\n return ev.offsetX;\n }\n var target = mouseElement(ev);\n var bounds = target.getBoundingClientRect();\n return ev.clientX - bounds.left;\n }\n return 0;\n }\n exports2.x = mouseRelativeX;\n function mouseRelativeY(ev) {\n if (typeof ev === \"object\") {\n if (\"offsetY\" in ev) {\n return ev.offsetY;\n }\n var target = mouseElement(ev);\n var bounds = target.getBoundingClientRect();\n return ev.clientY - bounds.top;\n }\n return 0;\n }\n exports2.y = mouseRelativeY;\n }\n ),\n /***/\n 8512: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var toPX = __webpack_require__2(665);\n module2.exports = mouseWheelListen;\n function mouseWheelListen(element, callback, noScroll) {\n if (typeof element === \"function\") {\n noScroll = !!callback;\n callback = element;\n element = window;\n }\n var lineHeight = toPX(\"ex\", element);\n var listener = function(ev) {\n if (noScroll) {\n ev.preventDefault();\n }\n var dx = ev.deltaX || 0;\n var dy = ev.deltaY || 0;\n var dz = ev.deltaZ || 0;\n var mode = ev.deltaMode;\n var scale = 1;\n switch (mode) {\n case 1:\n scale = lineHeight;\n break;\n case 2:\n scale = window.innerHeight;\n break;\n }\n dx *= scale;\n dy *= scale;\n dz *= scale;\n if (dx || dy || dz) {\n return callback(dx, dy, dz, ev);\n }\n };\n element.addEventListener(\"wheel\", listener);\n return listener;\n }\n }\n ),\n /***/\n 2640: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var pool = __webpack_require__2(1888);\n module2.exports = createSurfaceExtractor;\n var allFns = {\n \"false,0,1\": function surfaceProcedure(vertex, face, phase, mallocUint32, freeUint32) {\n return function extractContour0_1(a0, x0, x1, x2) {\n var s0 = a0.shape[0] | 0, s1 = a0.shape[1] | 0, d0 = a0.data, o0 = a0.offset | 0, t0_0 = a0.stride[0] | 0, t0_1 = a0.stride[1] | 0, p0 = o0, c0_0, d0_1 = -t0_0 | 0, c0_1 = 0, d0_2 = -t0_1 | 0, c0_2 = 0, d0_3 = -t0_0 - t0_1 | 0, c0_3 = 0, u0_0 = t0_0 | 0, u0_1 = t0_1 - t0_0 * s0 | 0, i0 = 0, i1 = 0, N = 0, Q = 2 * s0 | 0, P = mallocUint32(Q), V = mallocUint32(Q), X = 0, b0 = 0, e1 = -1 | 0, y1 = -1 | 0, b1 = 0, e2 = -s0 | 0, y2 = s0 | 0, b2 = 0, e3 = -s0 - 1 | 0, y3 = s0 - 1 | 0, b3 = 0, v0 = 0, T = 0;\n for (i0 = 0; i0 < s0; ++i0) {\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_0;\n }\n p0 += u0_1;\n if (s1 > 0) {\n i1 = 1;\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_0;\n if (s0 > 0) {\n i0 = 1;\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n }\n X += 1;\n p0 += u0_0;\n for (i0 = 2; i0 < s0; ++i0) {\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b1) {\n face(V[X + e1], v0, c0_3, c0_1, b3, b1, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_0;\n }\n }\n p0 += u0_1;\n X = 0;\n T = e1;\n e1 = y1;\n y1 = T;\n T = e2;\n e2 = y2;\n y2 = T;\n T = e3;\n e3 = y3;\n y3 = T;\n for (i1 = 2; i1 < s1; ++i1) {\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_0;\n if (s0 > 0) {\n i0 = 1;\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b2) {\n face(V[X + e2], v0, c0_2, c0_3, b2, b3, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_0;\n for (i0 = 2; i0 < s0; ++i0) {\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b2) {\n face(V[X + e2], v0, c0_2, c0_3, b2, b3, x0, x1, x2);\n }\n if (b3 !== b1) {\n face(V[X + e1], v0, c0_3, c0_1, b3, b1, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_0;\n }\n }\n if (i1 & 1) {\n X = 0;\n }\n T = e1;\n e1 = y1;\n y1 = T;\n T = e2;\n e2 = y2;\n y2 = T;\n T = e3;\n e3 = y3;\n y3 = T;\n p0 += u0_1;\n }\n }\n freeUint32(V);\n freeUint32(P);\n };\n },\n \"false,1,0\": function anonymous(vertex, face, phase, mallocUint32, freeUint32) {\n return function extractContour1_0(a0, x0, x1, x2) {\n var s0 = a0.shape[0] | 0, s1 = a0.shape[1] | 0, d0 = a0.data, o0 = a0.offset | 0, t0_0 = a0.stride[0] | 0, t0_1 = a0.stride[1] | 0, p0 = o0, c0_0, d0_1 = -t0_0 | 0, c0_1 = 0, d0_2 = -t0_1 | 0, c0_2 = 0, d0_3 = -t0_0 - t0_1 | 0, c0_3 = 0, u0_1 = t0_1 | 0, u0_0 = t0_0 - t0_1 * s1 | 0, i0 = 0, i1 = 0, N = 0, Q = 2 * s1 | 0, P = mallocUint32(Q), V = mallocUint32(Q), X = 0, b0 = 0, e2 = -1 | 0, y2 = -1 | 0, b2 = 0, e1 = -s1 | 0, y1 = s1 | 0, b1 = 0, e3 = -s1 - 1 | 0, y3 = s1 - 1 | 0, b3 = 0, v0 = 0, T = 0;\n for (i1 = 0; i1 < s1; ++i1) {\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_1;\n }\n p0 += u0_0;\n if (s0 > 0) {\n i0 = 1;\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_1;\n if (s1 > 0) {\n i1 = 1;\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n }\n X += 1;\n p0 += u0_1;\n for (i1 = 2; i1 < s1; ++i1) {\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b2) {\n face(V[X + e2], v0, c0_2, c0_3, b2, b3, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_1;\n }\n }\n p0 += u0_0;\n X = 0;\n T = e1;\n e1 = y1;\n y1 = T;\n T = e2;\n e2 = y2;\n y2 = T;\n T = e3;\n e3 = y3;\n y3 = T;\n for (i0 = 2; i0 < s0; ++i0) {\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_1;\n if (s1 > 0) {\n i1 = 1;\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b1) {\n face(V[X + e1], v0, c0_3, c0_1, b3, b1, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_1;\n for (i1 = 2; i1 < s1; ++i1) {\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b2) {\n face(V[X + e2], v0, c0_2, c0_3, b2, b3, x0, x1, x2);\n }\n if (b3 !== b1) {\n face(V[X + e1], v0, c0_3, c0_1, b3, b1, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_1;\n }\n }\n if (i0 & 1) {\n X = 0;\n }\n T = e1;\n e1 = y1;\n y1 = T;\n T = e2;\n e2 = y2;\n y2 = T;\n T = e3;\n e3 = y3;\n y3 = T;\n p0 += u0_0;\n }\n }\n freeUint32(V);\n freeUint32(P);\n };\n }\n };\n function compileSurfaceProcedure(vertexFunc, faceFunc, phaseFunc, scalarArgs, order, typesig) {\n var key = [typesig, order].join(\",\");\n var proc = allFns[key];\n return proc(\n vertexFunc,\n faceFunc,\n phaseFunc,\n pool.mallocUint32,\n pool.freeUint32\n );\n }\n function createSurfaceExtractor(args) {\n function error(msg) {\n throw new Error(\"ndarray-extract-contour: \" + msg);\n }\n if (typeof args !== \"object\") {\n error(\"Must specify arguments\");\n }\n var order = args.order;\n if (!Array.isArray(order)) {\n error(\"Must specify order\");\n }\n var arrays = args.arrayArguments || 1;\n if (arrays < 1) {\n error(\"Must have at least one array argument\");\n }\n var scalars = args.scalarArguments || 0;\n if (scalars < 0) {\n error(\"Scalar arg count must be > 0\");\n }\n if (typeof args.vertex !== \"function\") {\n error(\"Must specify vertex creation function\");\n }\n if (typeof args.cell !== \"function\") {\n error(\"Must specify cell creation function\");\n }\n if (typeof args.phase !== \"function\") {\n error(\"Must specify phase function\");\n }\n var getters = args.getters || [];\n var typesig = new Array(arrays);\n for (var i = 0; i < arrays; ++i) {\n if (getters.indexOf(i) >= 0) {\n typesig[i] = true;\n } else {\n typesig[i] = false;\n }\n }\n return compileSurfaceProcedure(\n args.vertex,\n args.cell,\n args.phase,\n scalars,\n order,\n typesig\n );\n }\n }\n ),\n /***/\n 6199: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var dup = __webpack_require__2(1338);\n var CACHED_CWiseOp = {\n zero: function(SS, a0, t02, p0) {\n var s0 = SS[0], t0p0 = t02[0];\n p0 |= 0;\n var i0 = 0, d0s0 = t0p0;\n for (i0 = 0; i0 < s0; ++i0) {\n a0[p0] = 0;\n p0 += d0s0;\n }\n },\n fdTemplate1: function(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], t0p0 = t02[0], t1p0 = t12[0], q0 = -1 * t0p0, q1 = t0p0;\n p0 |= 0;\n p1 |= 0;\n var i0 = 0, d0s0 = t0p0, d1s0 = t1p0;\n for (i0 = 0; i0 < s0; ++i0) {\n a1[p1] = 0.5 * (a0[p0 + q0] - a0[p0 + q1]);\n p0 += d0s0;\n p1 += d1s0;\n }\n },\n fdTemplate2: function(SS, a0, t02, p0, a1, t12, p1, a2, t22, p2) {\n var s0 = SS[0], s1 = SS[1], t0p0 = t02[0], t0p1 = t02[1], t1p0 = t12[0], t1p1 = t12[1], t2p0 = t22[0], t2p1 = t22[1], q0 = -1 * t0p0, q1 = t0p0, q2 = -1 * t0p1, q3 = t0p1;\n p0 |= 0;\n p1 |= 0;\n p2 |= 0;\n var i0 = 0, i1 = 0, d0s0 = t0p1, d0s1 = t0p0 - s1 * t0p1, d1s0 = t1p1, d1s1 = t1p0 - s1 * t1p1, d2s0 = t2p1, d2s1 = t2p0 - s1 * t2p1;\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s1; ++i0) {\n a1[p1] = 0.5 * (a0[p0 + q0] - a0[p0 + q1]);\n a2[p2] = 0.5 * (a0[p0 + q2] - a0[p0 + q3]);\n p0 += d0s0;\n p1 += d1s0;\n p2 += d2s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n p2 += d2s1;\n }\n }\n };\n var CACHED_thunk = {\n cdiff: function(compile2) {\n var CACHED = {};\n return function cdiff_cwise_thunk(array0, array1, array2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, t22 = array2.dtype, r2 = array2.order, type = [t02, r0.join(), t12, r1.join(), t22, r2.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1, t22, r2]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, array1.data, array1.stride, array1.offset | 0, array2.data, array2.stride, array2.offset | 0);\n };\n },\n zero: function(compile2) {\n var CACHED = {};\n return function zero_cwise_thunk(array0) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0);\n };\n },\n fdTemplate1: function(compile2) {\n var CACHED = {};\n return function fdTemplate1_cwise_thunk(array0, array1) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, type = [t02, r0.join(), t12, r1.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, array1.data, array1.stride, array1.offset | 0);\n };\n },\n fdTemplate2: function(compile2) {\n var CACHED = {};\n return function fdTemplate2_cwise_thunk(array0, array1, array4) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, t4 = array4.dtype, r4 = array4.order, type = [t02, r0.join(), t12, r1.join(), t4, r4.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1, t4, r4]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, array1.data, array1.stride, array1.offset | 0, array4.data, array4.stride, array4.offset | 0);\n };\n }\n };\n function createThunk(proc) {\n var thunk = CACHED_thunk[proc.funcName];\n return thunk(compile.bind(void 0, proc));\n }\n function compile(proc) {\n return CACHED_CWiseOp[proc.funcName];\n }\n function cwiseCompiler(user_args) {\n return createThunk({\n funcName: user_args.funcName\n });\n }\n var TEMPLATE_CACHE = {};\n var GRADIENT_CACHE = {};\n var EmptyProc = {\n body: \"\",\n args: [],\n thisVars: [],\n localVars: []\n };\n var centralDiff = cwiseCompiler({\n funcName: \"cdiff\"\n });\n var zeroOut = cwiseCompiler({\n funcName: \"zero\"\n });\n function generateTemplate(d) {\n if (d in TEMPLATE_CACHE) {\n return TEMPLATE_CACHE[d];\n }\n return TEMPLATE_CACHE[d] = cwiseCompiler({\n funcName: \"fdTemplate\" + d\n });\n }\n function CACHED_link(diff, zero2, grad1, grad2) {\n return function(dst, src) {\n var s = src.shape.slice();\n if (s[0] > 2 && s[1] > 2) {\n grad2(\n src.pick(-1, -1).lo(1, 1).hi(s[0] - 2, s[1] - 2),\n dst.pick(-1, -1, 0).lo(1, 1).hi(s[0] - 2, s[1] - 2),\n dst.pick(-1, -1, 1).lo(1, 1).hi(s[0] - 2, s[1] - 2)\n );\n }\n if (s[1] > 2) {\n grad1(\n src.pick(0, -1).lo(1).hi(s[1] - 2),\n dst.pick(0, -1, 1).lo(1).hi(s[1] - 2)\n );\n zero2(\n dst.pick(0, -1, 0).lo(1).hi(s[1] - 2)\n );\n }\n if (s[1] > 2) {\n grad1(\n src.pick(s[0] - 1, -1).lo(1).hi(s[1] - 2),\n dst.pick(s[0] - 1, -1, 1).lo(1).hi(s[1] - 2)\n );\n zero2(\n dst.pick(s[0] - 1, -1, 0).lo(1).hi(s[1] - 2)\n );\n }\n if (s[0] > 2) {\n grad1(\n src.pick(-1, 0).lo(1).hi(s[0] - 2),\n dst.pick(-1, 0, 0).lo(1).hi(s[0] - 2)\n );\n zero2(\n dst.pick(-1, 0, 1).lo(1).hi(s[0] - 2)\n );\n }\n if (s[0] > 2) {\n grad1(\n src.pick(-1, s[1] - 1).lo(1).hi(s[0] - 2),\n dst.pick(-1, s[1] - 1, 0).lo(1).hi(s[0] - 2)\n );\n zero2(\n dst.pick(-1, s[1] - 1, 1).lo(1).hi(s[0] - 2)\n );\n }\n dst.set(0, 0, 0, 0);\n dst.set(0, 0, 1, 0);\n dst.set(s[0] - 1, 0, 0, 0);\n dst.set(s[0] - 1, 0, 1, 0);\n dst.set(0, s[1] - 1, 0, 0);\n dst.set(0, s[1] - 1, 1, 0);\n dst.set(s[0] - 1, s[1] - 1, 0, 0);\n dst.set(s[0] - 1, s[1] - 1, 1, 0);\n return dst;\n };\n }\n function generateGradient(boundaryConditions) {\n var token = boundaryConditions.join();\n var proc = GRADIENT_CACHE[token];\n if (proc) {\n return proc;\n }\n var d = boundaryConditions.length;\n var linkArgs = [centralDiff, zeroOut];\n for (var i = 1; i <= d; ++i) {\n linkArgs.push(generateTemplate(i));\n }\n var link = CACHED_link;\n var proc = link.apply(void 0, linkArgs);\n GRADIENT_CACHE[token] = proc;\n return proc;\n }\n module2.exports = function gradient(out, inp, bc) {\n if (!Array.isArray(bc)) {\n if (typeof bc === \"string\") {\n bc = dup(inp.dimension, bc);\n } else {\n bc = dup(inp.dimension, \"clamp\");\n }\n }\n if (inp.size === 0) {\n return out;\n }\n if (inp.dimension === 0) {\n out.set(0);\n return out;\n }\n var cached = generateGradient(bc);\n return cached(out, inp);\n };\n }\n ),\n /***/\n 4317: (\n /***/\n function(module2) {\n \"use strict\";\n function interp1d(arr, x) {\n var ix = Math.floor(x), fx = x - ix, s0 = 0 <= ix && ix < arr.shape[0], s1 = 0 <= ix + 1 && ix + 1 < arr.shape[0], w0 = s0 ? +arr.get(ix) : 0, w1 = s1 ? +arr.get(ix + 1) : 0;\n return (1 - fx) * w0 + fx * w1;\n }\n function interp2d(arr, x, y) {\n var ix = Math.floor(x), fx = x - ix, s0 = 0 <= ix && ix < arr.shape[0], s1 = 0 <= ix + 1 && ix + 1 < arr.shape[0], iy = Math.floor(y), fy = y - iy, t02 = 0 <= iy && iy < arr.shape[1], t12 = 0 <= iy + 1 && iy + 1 < arr.shape[1], w00 = s0 && t02 ? arr.get(ix, iy) : 0, w01 = s0 && t12 ? arr.get(ix, iy + 1) : 0, w10 = s1 && t02 ? arr.get(ix + 1, iy) : 0, w11 = s1 && t12 ? arr.get(ix + 1, iy + 1) : 0;\n return (1 - fy) * ((1 - fx) * w00 + fx * w10) + fy * ((1 - fx) * w01 + fx * w11);\n }\n function interp3d(arr, x, y, z) {\n var ix = Math.floor(x), fx = x - ix, s0 = 0 <= ix && ix < arr.shape[0], s1 = 0 <= ix + 1 && ix + 1 < arr.shape[0], iy = Math.floor(y), fy = y - iy, t02 = 0 <= iy && iy < arr.shape[1], t12 = 0 <= iy + 1 && iy + 1 < arr.shape[1], iz = Math.floor(z), fz = z - iz, u0 = 0 <= iz && iz < arr.shape[2], u1 = 0 <= iz + 1 && iz + 1 < arr.shape[2], w000 = s0 && t02 && u0 ? arr.get(ix, iy, iz) : 0, w010 = s0 && t12 && u0 ? arr.get(ix, iy + 1, iz) : 0, w100 = s1 && t02 && u0 ? arr.get(ix + 1, iy, iz) : 0, w110 = s1 && t12 && u0 ? arr.get(ix + 1, iy + 1, iz) : 0, w001 = s0 && t02 && u1 ? arr.get(ix, iy, iz + 1) : 0, w011 = s0 && t12 && u1 ? arr.get(ix, iy + 1, iz + 1) : 0, w101 = s1 && t02 && u1 ? arr.get(ix + 1, iy, iz + 1) : 0, w111 = s1 && t12 && u1 ? arr.get(ix + 1, iy + 1, iz + 1) : 0;\n return (1 - fz) * ((1 - fy) * ((1 - fx) * w000 + fx * w100) + fy * ((1 - fx) * w010 + fx * w110)) + fz * ((1 - fy) * ((1 - fx) * w001 + fx * w101) + fy * ((1 - fx) * w011 + fx * w111));\n }\n function interpNd(arr) {\n var d = arr.shape.length | 0, ix = new Array(d), fx = new Array(d), s0 = new Array(d), s1 = new Array(d), i, t;\n for (i = 0; i < d; ++i) {\n t = +arguments[i + 1];\n ix[i] = Math.floor(t);\n fx[i] = t - ix[i];\n s0[i] = 0 <= ix[i] && ix[i] < arr.shape[i];\n s1[i] = 0 <= ix[i] + 1 && ix[i] + 1 < arr.shape[i];\n }\n var r = 0, j, w, idx;\n i_loop:\n for (i = 0; i < 1 << d; ++i) {\n w = 1;\n idx = arr.offset;\n for (j = 0; j < d; ++j) {\n if (i & 1 << j) {\n if (!s1[j]) {\n continue i_loop;\n }\n w *= fx[j];\n idx += arr.stride[j] * (ix[j] + 1);\n } else {\n if (!s0[j]) {\n continue i_loop;\n }\n w *= 1 - fx[j];\n idx += arr.stride[j] * ix[j];\n }\n }\n r += w * arr.data[idx];\n }\n return r;\n }\n function interpolate(arr, x, y, z) {\n switch (arr.shape.length) {\n case 0:\n return 0;\n case 1:\n return interp1d(arr, x);\n case 2:\n return interp2d(arr, x, y);\n case 3:\n return interp3d(arr, x, y, z);\n default:\n return interpNd.apply(void 0, arguments);\n }\n }\n module2.exports = interpolate;\n module2.exports.d1 = interp1d;\n module2.exports.d2 = interp2d;\n module2.exports.d3 = interp3d;\n }\n ),\n /***/\n 5298: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n var CACHED_CWiseOp = {\n \"float64,2,1,0\": function() {\n return function divseq_cwise_loop_2s1s0m3f64(SS, a0, t02, p0, Y0) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2];\n p0 |= 0;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p1 - s2 * t0p2, d0s2 = t0p0 - s1 * t0p1;\n for (i2 = 0; i2 < s0; ++i2) {\n for (i1 = 0; i1 < s1; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n a0[p0] /= Y0;\n p0 += d0s0;\n }\n p0 += d0s1;\n }\n p0 += d0s2;\n }\n };\n },\n \"uint8,2,0,1,float64,2,1,0\": function() {\n return function muls_cwise_loop_2s0s1m1u8f64(SS, a0, t02, p0, a1, t12, p1, Y0) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2], t1p0 = t12[0], t1p1 = t12[1], t1p2 = t12[2];\n p0 |= 0;\n p1 |= 0;\n var offset0 = p0;\n var offset1 = p1;\n for (var j1 = SS[0] | 0; j1 > 0; ) {\n if (j1 < 64) {\n s0 = j1;\n j1 = 0;\n } else {\n s0 = 64;\n j1 -= 64;\n }\n for (var j2 = SS[1] | 0; j2 > 0; ) {\n if (j2 < 64) {\n s1 = j2;\n j2 = 0;\n } else {\n s1 = 64;\n j2 -= 64;\n }\n p0 = offset0 + j1 * t0p0 + j2 * t0p1;\n p1 = offset1 + j1 * t1p0 + j2 * t1p1;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p0 - s2 * t0p2, d0s2 = t0p1 - s0 * t0p0, d1s0 = t1p2, d1s1 = t1p0 - s2 * t1p2, d1s2 = t1p1 - s0 * t1p0;\n for (i2 = 0; i2 < s1; ++i2) {\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n a0[p0] = a1[p1] * Y0;\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n p0 += d0s2;\n p1 += d1s2;\n }\n }\n }\n };\n },\n \"float32,1,0,float32,1,0\": function() {\n return function assign_cwise_loop_1s0m2f32(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], s1 = SS[1], t0p0 = t02[0], t0p1 = t02[1], t1p0 = t12[0], t1p1 = t12[1];\n p0 |= 0;\n p1 |= 0;\n var i0 = 0, i1 = 0, d0s0 = t0p1, d0s1 = t0p0 - s1 * t0p1, d1s0 = t1p1, d1s1 = t1p0 - s1 * t1p1;\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s1; ++i0) {\n a0[p0] = a1[p1];\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n };\n },\n \"float32,1,0,float32,0,1\": function() {\n return function assign_cwise_loop_1s0m0f32(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], s1 = SS[1], t0p0 = t02[0], t0p1 = t02[1], t1p0 = t12[0], t1p1 = t12[1];\n p0 |= 0;\n p1 |= 0;\n var offset0 = p0;\n var offset1 = p1;\n for (var j0 = SS[1] | 0; j0 > 0; ) {\n if (j0 < 64) {\n s1 = j0;\n j0 = 0;\n } else {\n s1 = 64;\n j0 -= 64;\n }\n for (var j1 = SS[0] | 0; j1 > 0; ) {\n if (j1 < 64) {\n s0 = j1;\n j1 = 0;\n } else {\n s0 = 64;\n j1 -= 64;\n }\n p0 = offset0 + j0 * t0p1 + j1 * t0p0;\n p1 = offset1 + j0 * t1p1 + j1 * t1p0;\n var i0 = 0, i1 = 0, d0s0 = t0p1, d0s1 = t0p0 - s1 * t0p1, d1s0 = t1p1, d1s1 = t1p0 - s1 * t1p1;\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s1; ++i0) {\n a0[p0] = a1[p1];\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n }\n }\n };\n },\n \"uint8,2,0,1,uint8,1,2,0\": function() {\n return function assign_cwise_loop_2s0s1m0u8(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2], t1p0 = t12[0], t1p1 = t12[1], t1p2 = t12[2];\n p0 |= 0;\n p1 |= 0;\n var offset0 = p0;\n var offset1 = p1;\n for (var j0 = SS[2] | 0; j0 > 0; ) {\n if (j0 < 64) {\n s2 = j0;\n j0 = 0;\n } else {\n s2 = 64;\n j0 -= 64;\n }\n for (var j1 = SS[0] | 0; j1 > 0; ) {\n if (j1 < 64) {\n s0 = j1;\n j1 = 0;\n } else {\n s0 = 64;\n j1 -= 64;\n }\n for (var j2 = SS[1] | 0; j2 > 0; ) {\n if (j2 < 64) {\n s1 = j2;\n j2 = 0;\n } else {\n s1 = 64;\n j2 -= 64;\n }\n p0 = offset0 + j0 * t0p2 + j1 * t0p0 + j2 * t0p1;\n p1 = offset1 + j0 * t1p2 + j1 * t1p0 + j2 * t1p1;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p0 - s2 * t0p2, d0s2 = t0p1 - s0 * t0p0, d1s0 = t1p2, d1s1 = t1p0 - s2 * t1p2, d1s2 = t1p1 - s0 * t1p0;\n for (i2 = 0; i2 < s1; ++i2) {\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n a0[p0] = a1[p1];\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n p0 += d0s2;\n p1 += d1s2;\n }\n }\n }\n }\n };\n },\n \"uint8,2,0,1,array,2,0,1\": function() {\n return function assign_cwise_loop_2s0s1m3u8a(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2], t1p0 = t12[0], t1p1 = t12[1], t1p2 = t12[2];\n p0 |= 0;\n p1 |= 0;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p0 - s2 * t0p2, d0s2 = t0p1 - s0 * t0p0, d1s0 = t1p2, d1s1 = t1p0 - s2 * t1p2, d1s2 = t1p1 - s0 * t1p0;\n for (i2 = 0; i2 < s1; ++i2) {\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n a0[p0] = a1[p1];\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n p0 += d0s2;\n p1 += d1s2;\n }\n };\n }\n };\n function generateCWiseOp(proc, typesig) {\n var key = typesig.join(\",\");\n var f = CACHED_CWiseOp[key];\n return f();\n }\n var compile = generateCWiseOp;\n var CACHED_thunk = {\n mul: function(compile2) {\n var CACHED = {};\n return function mul_cwise_thunk(array0, array1, array2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, t22 = array2.dtype, r2 = array2.order, type = [t02, r0.join(), t12, r1.join(), t22, r2.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1, t22, r2]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0,\n array2.data,\n array2.stride,\n array2.offset | 0\n );\n };\n },\n muls: function(compile2) {\n var CACHED = {};\n return function muls_cwise_thunk(array0, array1, scalar2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, type = [t02, r0.join(), t12, r1.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0,\n scalar2\n );\n };\n },\n mulseq: function(compile2) {\n var CACHED = {};\n return function mulseq_cwise_thunk(array0, scalar1) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, scalar1);\n };\n },\n div: function(compile2) {\n var CACHED = {};\n return function div_cwise_thunk(array0, array1, array2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, t22 = array2.dtype, r2 = array2.order, type = [t02, r0.join(), t12, r1.join(), t22, r2.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1, t22, r2]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0,\n array2.data,\n array2.stride,\n array2.offset | 0\n );\n };\n },\n divs: function(compile2) {\n var CACHED = {};\n return function divs_cwise_thunk(array0, array1, scalar2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, type = [t02, r0.join(), t12, r1.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0,\n scalar2\n );\n };\n },\n divseq: function(compile2) {\n var CACHED = {};\n return function divseq_cwise_thunk(array0, scalar1) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, scalar1);\n };\n },\n assign: function(compile2) {\n var CACHED = {};\n return function assign_cwise_thunk(array0, array1) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, type = [t02, r0.join(), t12, r1.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0\n );\n };\n }\n };\n function createThunk(proc) {\n var thunk = CACHED_thunk[proc.funcName];\n return thunk(compile.bind(void 0, proc));\n }\n function makeOp(user_args) {\n return createThunk({\n funcName: user_args.funcName\n });\n }\n var assign_ops = {\n mul: \"*\",\n div: \"/\"\n };\n (function() {\n for (var id in assign_ops) {\n exports2[id] = makeOp({\n funcName: id\n });\n exports2[id + \"s\"] = makeOp({\n funcName: id + \"s\"\n });\n exports2[id + \"seq\"] = makeOp({\n funcName: id + \"seq\"\n });\n }\n })();\n exports2.assign = makeOp({\n funcName: \"assign\"\n });\n }\n ),\n /***/\n 9994: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var ndarray = __webpack_require__2(9618);\n var do_convert = __webpack_require__2(8277);\n module2.exports = function convert(arr, result) {\n var shape = [], c = arr, sz = 1;\n while (Array.isArray(c)) {\n shape.push(c.length);\n sz *= c.length;\n c = c[0];\n }\n if (shape.length === 0) {\n return ndarray();\n }\n if (!result) {\n result = ndarray(new Float64Array(sz), shape);\n }\n do_convert(result, arr);\n return result;\n };\n }\n ),\n /***/\n 8277: (\n /***/\n function(module2) {\n \"use strict\";\n function CwiseOp() {\n return function(SS, a0, t02, p0, Y0) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2], index = [0, 0, 0];\n p0 |= 0;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p1 - s2 * t0p2, d0s2 = t0p0 - s1 * t0p1;\n for (i2 = 0; i2 < s0; ++i2) {\n for (i1 = 0; i1 < s1; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n {\n var _inline_1_v = Y0, _inline_1_i;\n for (_inline_1_i = 0; _inline_1_i < index.length - 1; ++_inline_1_i) {\n _inline_1_v = _inline_1_v[index[_inline_1_i]];\n }\n a0[p0] = _inline_1_v[index[index.length - 1]];\n }\n p0 += d0s0;\n ++index[2];\n }\n p0 += d0s1;\n index[2] -= s2;\n ++index[1];\n }\n p0 += d0s2;\n index[1] -= s1;\n ++index[0];\n }\n };\n }\n function generateCWiseOp() {\n return CwiseOp();\n }\n var compile = generateCWiseOp;\n function thunk(compile2) {\n var CACHED = {};\n return function convert_cwise_thunk(array0, scalar1) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n scalar1\n );\n };\n }\n function createThunk(proc) {\n return thunk(compile.bind(void 0, proc));\n }\n function compileCwise(user_args) {\n return createThunk({\n funcName: user_args.funcName\n });\n }\n module2.exports = compileCwise({\n funcName: \"convert\"\n });\n }\n ),\n /***/\n 7640: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var pool = __webpack_require__2(1888);\n function getMallocFree(dtype) {\n switch (dtype) {\n case \"uint32\":\n return [pool.mallocUint32, pool.freeUint32];\n default:\n return null;\n }\n }\n var CACHED_insertionSort = {\n \"uint32,1,0\": function(malloc, free) {\n return function ndarrayInsertionSort1d0uint32(left, right, data, offset, s0, s1, n0, n1, d1, e1, f1) {\n var i, j, cptr, ptr = left * s0 + offset, i1, scratch = malloc(n1), dptr, sptr, a, b;\n for (i = left + 1; i <= right; ++i) {\n j = i;\n ptr += s0;\n cptr = ptr;\n dptr = 0;\n sptr = ptr;\n for (i1 = 0; i1 < n1; ++i1) {\n scratch[dptr++] = data[sptr];\n sptr += d1;\n }\n __g: while (j-- > left) {\n dptr = 0;\n sptr = cptr - s0;\n __l: for (i1 = 0; i1 < n1; ++i1) {\n a = data[sptr];\n b = scratch[dptr];\n if (a < b) {\n break __g;\n }\n if (a > b) {\n break __l;\n }\n sptr += e1;\n dptr += f1;\n }\n dptr = cptr;\n sptr = cptr - s0;\n for (i1 = 0; i1 < n1; ++i1) {\n data[dptr] = data[sptr];\n dptr += d1;\n sptr += d1;\n }\n cptr -= s0;\n }\n dptr = cptr;\n sptr = 0;\n for (i1 = 0; i1 < n1; ++i1) {\n data[dptr] = scratch[sptr++];\n dptr += d1;\n }\n }\n free(scratch);\n };\n }\n };\n function createInsertionSort(order, dtype) {\n var allocator = getMallocFree(dtype);\n var key = [dtype, order].join(\",\");\n var result = CACHED_insertionSort[key];\n if (allocator) {\n return result(allocator[0], allocator[1]);\n } else {\n return result();\n }\n }\n var CACHED_quickSort = {\n \"uint32,1,0\": function(insertionSort, malloc, free) {\n return function ndarrayQuickSort1d0uint32(left, right, data, offset, s0, s1, n0, n1, d1, e1, f1) {\n var sixth = (right - left + 1) / 6 | 0, index1 = left + sixth, index5 = right - sixth, index3 = left + right >> 1, index2 = index3 - sixth, index4 = index3 + sixth, el1 = index1, el2 = index2, el3 = index3, el4 = index4, el5 = index5, less = left + 1, great = right - 1, pivots_are_equal = true, tmp, tmp0, x, y, z, k, ptr0, ptr1, ptr2, comp_pivot1 = 0, comp_pivot2 = 0, comp = 0, i1, b_ptr0, b_ptr1, b_ptr2, b_ptr3, b_ptr4, b_ptr5, b_ptr6, b_ptr7, ptr3, ptr4, ptr5, ptr6, ptr7, pivot_ptr, ptr_shift, elementSize = n1, pivot1 = malloc(elementSize), pivot2 = malloc(elementSize);\n b_ptr0 = s0 * el1;\n b_ptr1 = s0 * el2;\n ptr_shift = offset;\n __l1: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el1;\n el1 = el2;\n el2 = tmp0;\n break __l1;\n }\n if (comp < 0) {\n break __l1;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el4;\n b_ptr1 = s0 * el5;\n ptr_shift = offset;\n __l2: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el4;\n el4 = el5;\n el5 = tmp0;\n break __l2;\n }\n if (comp < 0) {\n break __l2;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el1;\n b_ptr1 = s0 * el3;\n ptr_shift = offset;\n __l3: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el1;\n el1 = el3;\n el3 = tmp0;\n break __l3;\n }\n if (comp < 0) {\n break __l3;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el2;\n b_ptr1 = s0 * el3;\n ptr_shift = offset;\n __l4: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el2;\n el2 = el3;\n el3 = tmp0;\n break __l4;\n }\n if (comp < 0) {\n break __l4;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el1;\n b_ptr1 = s0 * el4;\n ptr_shift = offset;\n __l5: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el1;\n el1 = el4;\n el4 = tmp0;\n break __l5;\n }\n if (comp < 0) {\n break __l5;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el3;\n b_ptr1 = s0 * el4;\n ptr_shift = offset;\n __l6: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el3;\n el3 = el4;\n el4 = tmp0;\n break __l6;\n }\n if (comp < 0) {\n break __l6;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el2;\n b_ptr1 = s0 * el5;\n ptr_shift = offset;\n __l7: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el2;\n el2 = el5;\n el5 = tmp0;\n break __l7;\n }\n if (comp < 0) {\n break __l7;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el2;\n b_ptr1 = s0 * el3;\n ptr_shift = offset;\n __l8: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el2;\n el2 = el3;\n el3 = tmp0;\n break __l8;\n }\n if (comp < 0) {\n break __l8;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el4;\n b_ptr1 = s0 * el5;\n ptr_shift = offset;\n __l9: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el4;\n el4 = el5;\n el5 = tmp0;\n break __l9;\n }\n if (comp < 0) {\n break __l9;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el1;\n b_ptr1 = s0 * el2;\n b_ptr2 = s0 * el3;\n b_ptr3 = s0 * el4;\n b_ptr4 = s0 * el5;\n b_ptr5 = s0 * index1;\n b_ptr6 = s0 * index3;\n b_ptr7 = s0 * index5;\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n ptr2 = b_ptr2 + ptr_shift;\n ptr3 = b_ptr3 + ptr_shift;\n ptr4 = b_ptr4 + ptr_shift;\n ptr5 = b_ptr5 + ptr_shift;\n ptr6 = b_ptr6 + ptr_shift;\n ptr7 = b_ptr7 + ptr_shift;\n pivot1[pivot_ptr] = data[ptr1];\n pivot2[pivot_ptr] = data[ptr3];\n pivots_are_equal = pivots_are_equal && pivot1[pivot_ptr] === pivot2[pivot_ptr];\n x = data[ptr0];\n y = data[ptr2];\n z = data[ptr4];\n data[ptr5] = x;\n data[ptr6] = y;\n data[ptr7] = z;\n ++pivot_ptr;\n ptr_shift += d1;\n }\n b_ptr0 = s0 * index2;\n b_ptr1 = s0 * left;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n data[ptr0] = data[ptr1];\n ptr_shift += d1;\n }\n b_ptr0 = s0 * index4;\n b_ptr1 = s0 * right;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n data[ptr0] = data[ptr1];\n ptr_shift += d1;\n }\n if (pivots_are_equal) {\n for (k = less; k <= great; ++k) {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l10: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot1[pivot_ptr];\n if (comp !== 0) {\n break __l10;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp === 0) {\n continue;\n }\n if (comp < 0) {\n if (k !== less) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n }\n ++less;\n } else {\n while (true) {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l11: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot1[pivot_ptr];\n if (comp !== 0) {\n break __l11;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp > 0) {\n great--;\n } else if (comp < 0) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n b_ptr2 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n ptr2 = b_ptr2 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = data[ptr2];\n data[ptr2] = tmp;\n ptr_shift += d1;\n }\n ++less;\n --great;\n break;\n } else {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n --great;\n break;\n }\n }\n }\n }\n } else {\n for (k = less; k <= great; ++k) {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l12: for (i1 = 0; i1 < n1; ++i1) {\n comp_pivot1 = data[ptr0] - pivot1[pivot_ptr];\n if (comp_pivot1 !== 0) {\n break __l12;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp_pivot1 < 0) {\n if (k !== less) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n }\n ++less;\n } else {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l13: for (i1 = 0; i1 < n1; ++i1) {\n comp_pivot2 = data[ptr0] - pivot2[pivot_ptr];\n if (comp_pivot2 !== 0) {\n break __l13;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp_pivot2 > 0) {\n while (true) {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l14: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot2[pivot_ptr];\n if (comp !== 0) {\n break __l14;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp > 0) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l15: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot1[pivot_ptr];\n if (comp !== 0) {\n break __l15;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp < 0) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n b_ptr2 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n ptr2 = b_ptr2 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = data[ptr2];\n data[ptr2] = tmp;\n ptr_shift += d1;\n }\n ++less;\n --great;\n } else {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n --great;\n }\n break;\n }\n }\n }\n }\n }\n }\n b_ptr0 = s0 * left;\n b_ptr1 = s0 * (less - 1);\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n data[ptr0] = data[ptr1];\n data[ptr1] = pivot1[pivot_ptr];\n ++pivot_ptr;\n ptr_shift += d1;\n }\n b_ptr0 = s0 * right;\n b_ptr1 = s0 * (great + 1);\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n data[ptr0] = data[ptr1];\n data[ptr1] = pivot2[pivot_ptr];\n ++pivot_ptr;\n ptr_shift += d1;\n }\n if (less - 2 - left <= 32) {\n insertionSort(left, less - 2, data, offset, s0, s1, n0, n1, d1, e1, f1);\n } else {\n ndarrayQuickSort1d0uint32(left, less - 2, data, offset, s0, s1, n0, n1, d1, e1, f1);\n }\n if (right - (great + 2) <= 32) {\n insertionSort(great + 2, right, data, offset, s0, s1, n0, n1, d1, e1, f1);\n } else {\n ndarrayQuickSort1d0uint32(great + 2, right, data, offset, s0, s1, n0, n1, d1, e1, f1);\n }\n if (pivots_are_equal) {\n free(pivot1);\n free(pivot2);\n return;\n }\n if (less < index1 && great > index5) {\n __l16: while (true) {\n ptr0 = offset + less * s0;\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n if (data[ptr0] !== pivot1[pivot_ptr]) {\n break __l16;\n }\n ++pivot_ptr;\n ptr0 += d1;\n }\n ++less;\n }\n __l17: while (true) {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n if (data[ptr0] !== pivot2[pivot_ptr]) {\n break __l17;\n }\n ++pivot_ptr;\n ptr0 += d1;\n }\n --great;\n }\n for (k = less; k <= great; ++k) {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l18: for (i1 = 0; i1 < n1; ++i1) {\n comp_pivot1 = data[ptr0] - pivot1[pivot_ptr];\n if (comp_pivot1 !== 0) {\n break __l18;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp_pivot1 === 0) {\n if (k !== less) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n }\n ++less;\n } else {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l19: for (i1 = 0; i1 < n1; ++i1) {\n comp_pivot2 = data[ptr0] - pivot2[pivot_ptr];\n if (comp_pivot2 !== 0) {\n break __l19;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp_pivot2 === 0) {\n while (true) {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l20: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot2[pivot_ptr];\n if (comp !== 0) {\n break __l20;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp === 0) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l21: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot1[pivot_ptr];\n if (comp !== 0) {\n break __l21;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp < 0) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n b_ptr2 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n ptr2 = b_ptr2 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = data[ptr2];\n data[ptr2] = tmp;\n ptr_shift += d1;\n }\n ++less;\n --great;\n } else {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n --great;\n }\n break;\n }\n }\n }\n }\n }\n }\n free(pivot1);\n free(pivot2);\n if (great - less <= 32) {\n insertionSort(less, great, data, offset, s0, s1, n0, n1, d1, e1, f1);\n } else {\n ndarrayQuickSort1d0uint32(less, great, data, offset, s0, s1, n0, n1, d1, e1, f1);\n }\n };\n }\n };\n function createQuickSort(order, dtype, insertionSort) {\n var allocator = getMallocFree(dtype);\n var key = [dtype, order].join(\",\");\n var result = CACHED_quickSort[key];\n if (order.length > 1 && allocator) {\n return result(insertionSort, allocator[0], allocator[1]);\n } else {\n return result(insertionSort);\n }\n }\n var CACHED_sort = {\n \"uint32,1,0\": function(insertionSort, quickSort) {\n return function(array) {\n var data = array.data, offset = array.offset | 0, shape = array.shape, stride = array.stride, s0 = stride[0] | 0, n0 = shape[0] | 0, s1 = stride[1] | 0, n1 = shape[1] | 0, d1 = s1, e1 = s1, f1 = 1;\n if (n0 <= 32) {\n insertionSort(0, n0 - 1, data, offset, s0, s1, n0, n1, d1, e1, f1);\n } else {\n quickSort(0, n0 - 1, data, offset, s0, s1, n0, n1, d1, e1, f1);\n }\n };\n }\n };\n function compileSort(order, dtype) {\n var key = [dtype, order].join(\",\");\n var result = CACHED_sort[key];\n var insertionSort = createInsertionSort(order, dtype);\n var quickSort = createQuickSort(order, dtype, insertionSort);\n return result(insertionSort, quickSort);\n }\n module2.exports = compileSort;\n }\n ),\n /***/\n 446: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var compile = __webpack_require__2(7640);\n var CACHE = {};\n function sort(array) {\n var order = array.order;\n var dtype = array.dtype;\n var typeSig = [order, dtype];\n var typeName = typeSig.join(\":\");\n var compiled = CACHE[typeName];\n if (!compiled) {\n CACHE[typeName] = compiled = compile(order, dtype);\n }\n compiled(array);\n return array;\n }\n module2.exports = sort;\n }\n ),\n /***/\n 9618: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var isBuffer = __webpack_require__2(7163);\n var hasTypedArrays = typeof Float64Array !== \"undefined\";\n function compare1st(a, b) {\n return a[0] - b[0];\n }\n function order() {\n var stride = this.stride;\n var terms = new Array(stride.length);\n var i;\n for (i = 0; i < terms.length; ++i) {\n terms[i] = [Math.abs(stride[i]), i];\n }\n terms.sort(compare1st);\n var result = new Array(terms.length);\n for (i = 0; i < result.length; ++i) {\n result[i] = terms[i][1];\n }\n return result;\n }\n var allFns = {\n // Special case for trivial arrays\n T: function(dtype) {\n function View(a) {\n this.data = a;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.index = function() {\n return -1;\n };\n proto.size = 0;\n proto.dimension = -1;\n proto.shape = proto.stride = proto.order = [];\n proto.lo = proto.hi = proto.transpose = proto.step = function() {\n return new View(this.data);\n };\n proto.get = proto.set = function() {\n };\n proto.pick = function() {\n return null;\n };\n return function construct(a) {\n return new View(a);\n };\n },\n // Special case for 0d arrays\n 0: function(dtype, TrivialArray) {\n function View(a, d) {\n this.data = a;\n this.offset = d;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.index = function() {\n return this.offset;\n };\n proto.dimension = 0;\n proto.size = 1;\n proto.shape = proto.stride = proto.order = [];\n proto.lo = proto.hi = proto.transpose = proto.step = function copy() {\n return new View(this.data, this.offset);\n };\n proto.pick = function pick() {\n return TrivialArray(this.data);\n };\n proto.valueOf = proto.get = function get() {\n return dtype === \"generic\" ? this.data.get(this.offset) : this.data[this.offset];\n };\n proto.set = function set(v) {\n return dtype === \"generic\" ? this.data.set(this.offset, v) : this.data[this.offset] = v;\n };\n return function construct(a, b, c, d) {\n return new View(a, d);\n };\n },\n 1: function(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, c0, d) {\n this.data = a;\n this.shape = [b0];\n this.stride = [c0];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 1;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0];\n }\n });\n proto.order = [0];\n proto.set = function set(i0, v) {\n return dtype === \"generic\" ? this.data.set(this.offset + this.stride[0] * i0, v) : this.data[this.offset + this.stride[0] * i0] = v;\n };\n proto.get = function get(i0) {\n return dtype === \"generic\" ? this.data.get(this.offset + this.stride[0] * i0) : this.data[this.offset + this.stride[0] * i0];\n };\n proto.index = function index(i0) {\n return this.offset + this.stride[0] * i0;\n };\n proto.hi = function hi(i0) {\n return new View(this.data, typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0, this.stride[0], this.offset);\n };\n proto.lo = function lo(i0) {\n var b = this.offset, d = 0, a0 = this.shape[0], c0 = this.stride[0];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n return new View(this.data, a0, c0, b);\n };\n proto.step = function step(i0) {\n var a0 = this.shape[0], b0 = this.stride[0], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n return new View(this.data, a0, b0, c);\n };\n proto.transpose = function transpose(i0) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], b[i0], this.offset);\n };\n proto.pick = function pick(i0) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(data, shape[0], stride[0], offset);\n };\n },\n 2: function(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, b1, c0, c1, d) {\n this.data = a;\n this.shape = [b0, b1];\n this.stride = [c0, c1];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 2;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0] * this.shape[1];\n }\n });\n Object.defineProperty(proto, \"order\", {\n get: function order2() {\n return Math.abs(this.stride[0]) > Math.abs(this.stride[1]) ? [1, 0] : [0, 1];\n }\n });\n proto.set = function set(i0, i1, v) {\n return dtype === \"generic\" ? this.data.set(this.offset + this.stride[0] * i0 + this.stride[1] * i1, v) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1] = v;\n };\n proto.get = function get(i0, i1) {\n return dtype === \"generic\" ? this.data.get(this.offset + this.stride[0] * i0 + this.stride[1] * i1) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1];\n };\n proto.index = function index(i0, i1) {\n return this.offset + this.stride[0] * i0 + this.stride[1] * i1;\n };\n proto.hi = function hi(i0, i1) {\n return new View(\n this.data,\n typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0,\n typeof i1 !== \"number\" || i1 < 0 ? this.shape[1] : i1 | 0,\n this.stride[0],\n this.stride[1],\n this.offset\n );\n };\n proto.lo = function lo(i0, i1) {\n var b = this.offset, d = 0, a0 = this.shape[0], a1 = this.shape[1], c0 = this.stride[0], c1 = this.stride[1];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n d = i1 | 0;\n b += c1 * d;\n a1 -= d;\n }\n return new View(this.data, a0, a1, c0, c1, b);\n };\n proto.step = function step(i0, i1) {\n var a0 = this.shape[0], a1 = this.shape[1], b0 = this.stride[0], b1 = this.stride[1], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n if (typeof i1 === \"number\") {\n d = i1 | 0;\n if (d < 0) {\n c += b1 * (a1 - 1);\n a1 = ceil(-a1 / d);\n } else {\n a1 = ceil(a1 / d);\n }\n b1 *= d;\n }\n return new View(this.data, a0, a1, b0, b1, c);\n };\n proto.transpose = function transpose(i0, i1) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n i1 = i1 === void 0 ? 1 : i1 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], a[i1], b[i0], b[i1], this.offset);\n };\n proto.pick = function pick(i0, i1) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n c = c + this.stride[1] * i1 | 0;\n } else {\n a.push(this.shape[1]);\n b.push(this.stride[1]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(data, shape[0], shape[1], stride[0], stride[1], offset);\n };\n },\n 3: function(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, b1, b2, c0, c1, c2, d) {\n this.data = a;\n this.shape = [b0, b1, b2];\n this.stride = [c0, c1, c2];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 3;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0] * this.shape[1] * this.shape[2];\n }\n });\n Object.defineProperty(proto, \"order\", {\n get: function order2() {\n var s0 = Math.abs(this.stride[0]), s1 = Math.abs(this.stride[1]), s2 = Math.abs(this.stride[2]);\n if (s0 > s1) {\n if (s1 > s2) {\n return [2, 1, 0];\n } else if (s0 > s2) {\n return [1, 2, 0];\n } else {\n return [1, 0, 2];\n }\n } else if (s0 > s2) {\n return [2, 0, 1];\n } else if (s2 > s1) {\n return [0, 1, 2];\n } else {\n return [0, 2, 1];\n }\n }\n });\n proto.set = function set(i0, i1, i2, v) {\n return dtype === \"generic\" ? this.data.set(this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2, v) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2] = v;\n };\n proto.get = function get(i0, i1, i2) {\n return dtype === \"generic\" ? this.data.get(this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2];\n };\n proto.index = function index(i0, i1, i2) {\n return this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2;\n };\n proto.hi = function hi(i0, i1, i2) {\n return new View(\n this.data,\n typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0,\n typeof i1 !== \"number\" || i1 < 0 ? this.shape[1] : i1 | 0,\n typeof i2 !== \"number\" || i2 < 0 ? this.shape[2] : i2 | 0,\n this.stride[0],\n this.stride[1],\n this.stride[2],\n this.offset\n );\n };\n proto.lo = function lo(i0, i1, i2) {\n var b = this.offset, d = 0, a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], c0 = this.stride[0], c1 = this.stride[1], c2 = this.stride[2];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n d = i1 | 0;\n b += c1 * d;\n a1 -= d;\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n d = i2 | 0;\n b += c2 * d;\n a2 -= d;\n }\n return new View(this.data, a0, a1, a2, c0, c1, c2, b);\n };\n proto.step = function step(i0, i1, i2) {\n var a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], b0 = this.stride[0], b1 = this.stride[1], b2 = this.stride[2], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n if (typeof i1 === \"number\") {\n d = i1 | 0;\n if (d < 0) {\n c += b1 * (a1 - 1);\n a1 = ceil(-a1 / d);\n } else {\n a1 = ceil(a1 / d);\n }\n b1 *= d;\n }\n if (typeof i2 === \"number\") {\n d = i2 | 0;\n if (d < 0) {\n c += b2 * (a2 - 1);\n a2 = ceil(-a2 / d);\n } else {\n a2 = ceil(a2 / d);\n }\n b2 *= d;\n }\n return new View(this.data, a0, a1, a2, b0, b1, b2, c);\n };\n proto.transpose = function transpose(i0, i1, i2) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n i1 = i1 === void 0 ? 1 : i1 | 0;\n i2 = i2 === void 0 ? 2 : i2 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], a[i1], a[i2], b[i0], b[i1], b[i2], this.offset);\n };\n proto.pick = function pick(i0, i1, i2) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n c = c + this.stride[1] * i1 | 0;\n } else {\n a.push(this.shape[1]);\n b.push(this.stride[1]);\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n c = c + this.stride[2] * i2 | 0;\n } else {\n a.push(this.shape[2]);\n b.push(this.stride[2]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(data, shape[0], shape[1], shape[2], stride[0], stride[1], stride[2], offset);\n };\n },\n 4: function(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, b1, b2, b3, c0, c1, c2, c3, d) {\n this.data = a;\n this.shape = [b0, b1, b2, b3];\n this.stride = [c0, c1, c2, c3];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 4;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0] * this.shape[1] * this.shape[2] * this.shape[3];\n }\n });\n Object.defineProperty(proto, \"order\", { get: ORDER });\n proto.set = function set(i0, i1, i2, i3, v) {\n return dtype === \"generic\" ? this.data.set(this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3, v) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3] = v;\n };\n proto.get = function get(i0, i1, i2, i3) {\n return dtype === \"generic\" ? this.data.get(this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3];\n };\n proto.index = function index(i0, i1, i2, i3) {\n return this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3;\n };\n proto.hi = function hi(i0, i1, i2, i3) {\n return new View(\n this.data,\n typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0,\n typeof i1 !== \"number\" || i1 < 0 ? this.shape[1] : i1 | 0,\n typeof i2 !== \"number\" || i2 < 0 ? this.shape[2] : i2 | 0,\n typeof i3 !== \"number\" || i3 < 0 ? this.shape[3] : i3 | 0,\n this.stride[0],\n this.stride[1],\n this.stride[2],\n this.stride[3],\n this.offset\n );\n };\n proto.lo = function lo(i0, i1, i2, i3) {\n var b = this.offset, d = 0, a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], a3 = this.shape[3], c0 = this.stride[0], c1 = this.stride[1], c2 = this.stride[2], c3 = this.stride[3];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n d = i1 | 0;\n b += c1 * d;\n a1 -= d;\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n d = i2 | 0;\n b += c2 * d;\n a2 -= d;\n }\n if (typeof i3 === \"number\" && i3 >= 0) {\n d = i3 | 0;\n b += c3 * d;\n a3 -= d;\n }\n return new View(this.data, a0, a1, a2, a3, c0, c1, c2, c3, b);\n };\n proto.step = function step(i0, i1, i2, i3) {\n var a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], a3 = this.shape[3], b0 = this.stride[0], b1 = this.stride[1], b2 = this.stride[2], b3 = this.stride[3], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n if (typeof i1 === \"number\") {\n d = i1 | 0;\n if (d < 0) {\n c += b1 * (a1 - 1);\n a1 = ceil(-a1 / d);\n } else {\n a1 = ceil(a1 / d);\n }\n b1 *= d;\n }\n if (typeof i2 === \"number\") {\n d = i2 | 0;\n if (d < 0) {\n c += b2 * (a2 - 1);\n a2 = ceil(-a2 / d);\n } else {\n a2 = ceil(a2 / d);\n }\n b2 *= d;\n }\n if (typeof i3 === \"number\") {\n d = i3 | 0;\n if (d < 0) {\n c += b3 * (a3 - 1);\n a3 = ceil(-a3 / d);\n } else {\n a3 = ceil(a3 / d);\n }\n b3 *= d;\n }\n return new View(this.data, a0, a1, a2, a3, b0, b1, b2, b3, c);\n };\n proto.transpose = function transpose(i0, i1, i2, i3) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n i1 = i1 === void 0 ? 1 : i1 | 0;\n i2 = i2 === void 0 ? 2 : i2 | 0;\n i3 = i3 === void 0 ? 3 : i3 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], a[i1], a[i2], a[i3], b[i0], b[i1], b[i2], b[i3], this.offset);\n };\n proto.pick = function pick(i0, i1, i2, i3) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n c = c + this.stride[1] * i1 | 0;\n } else {\n a.push(this.shape[1]);\n b.push(this.stride[1]);\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n c = c + this.stride[2] * i2 | 0;\n } else {\n a.push(this.shape[2]);\n b.push(this.stride[2]);\n }\n if (typeof i3 === \"number\" && i3 >= 0) {\n c = c + this.stride[3] * i3 | 0;\n } else {\n a.push(this.shape[3]);\n b.push(this.stride[3]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(data, shape[0], shape[1], shape[2], shape[3], stride[0], stride[1], stride[2], stride[3], offset);\n };\n },\n 5: function anonymous(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, b1, b2, b3, b4, c0, c1, c2, c3, c4, d) {\n this.data = a;\n this.shape = [b0, b1, b2, b3, b4];\n this.stride = [c0, c1, c2, c3, c4];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 5;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0] * this.shape[1] * this.shape[2] * this.shape[3] * this.shape[4];\n }\n });\n Object.defineProperty(proto, \"order\", { get: ORDER });\n proto.set = function set(i0, i1, i2, i3, i4, v) {\n return dtype === \"generic\" ? this.data.set(\n this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4,\n v\n ) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4] = v;\n };\n proto.get = function get(i0, i1, i2, i3, i4) {\n return dtype === \"generic\" ? this.data.get(\n this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4\n ) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4];\n };\n proto.index = function index(i0, i1, i2, i3, i4) {\n return this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4;\n };\n proto.hi = function hi(i0, i1, i2, i3, i4) {\n return new View(\n this.data,\n typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0,\n typeof i1 !== \"number\" || i1 < 0 ? this.shape[1] : i1 | 0,\n typeof i2 !== \"number\" || i2 < 0 ? this.shape[2] : i2 | 0,\n typeof i3 !== \"number\" || i3 < 0 ? this.shape[3] : i3 | 0,\n typeof i4 !== \"number\" || i4 < 0 ? this.shape[4] : i4 | 0,\n this.stride[0],\n this.stride[1],\n this.stride[2],\n this.stride[3],\n this.stride[4],\n this.offset\n );\n };\n proto.lo = function lo(i0, i1, i2, i3, i4) {\n var b = this.offset, d = 0, a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], a3 = this.shape[3], a4 = this.shape[4], c0 = this.stride[0], c1 = this.stride[1], c2 = this.stride[2], c3 = this.stride[3], c4 = this.stride[4];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n d = i1 | 0;\n b += c1 * d;\n a1 -= d;\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n d = i2 | 0;\n b += c2 * d;\n a2 -= d;\n }\n if (typeof i3 === \"number\" && i3 >= 0) {\n d = i3 | 0;\n b += c3 * d;\n a3 -= d;\n }\n if (typeof i4 === \"number\" && i4 >= 0) {\n d = i4 | 0;\n b += c4 * d;\n a4 -= d;\n }\n return new View(this.data, a0, a1, a2, a3, a4, c0, c1, c2, c3, c4, b);\n };\n proto.step = function step(i0, i1, i2, i3, i4) {\n var a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], a3 = this.shape[3], a4 = this.shape[4], b0 = this.stride[0], b1 = this.stride[1], b2 = this.stride[2], b3 = this.stride[3], b4 = this.stride[4], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n if (typeof i1 === \"number\") {\n d = i1 | 0;\n if (d < 0) {\n c += b1 * (a1 - 1);\n a1 = ceil(-a1 / d);\n } else {\n a1 = ceil(a1 / d);\n }\n b1 *= d;\n }\n if (typeof i2 === \"number\") {\n d = i2 | 0;\n if (d < 0) {\n c += b2 * (a2 - 1);\n a2 = ceil(-a2 / d);\n } else {\n a2 = ceil(a2 / d);\n }\n b2 *= d;\n }\n if (typeof i3 === \"number\") {\n d = i3 | 0;\n if (d < 0) {\n c += b3 * (a3 - 1);\n a3 = ceil(-a3 / d);\n } else {\n a3 = ceil(a3 / d);\n }\n b3 *= d;\n }\n if (typeof i4 === \"number\") {\n d = i4 | 0;\n if (d < 0) {\n c += b4 * (a4 - 1);\n a4 = ceil(-a4 / d);\n } else {\n a4 = ceil(a4 / d);\n }\n b4 *= d;\n }\n return new View(this.data, a0, a1, a2, a3, a4, b0, b1, b2, b3, b4, c);\n };\n proto.transpose = function transpose(i0, i1, i2, i3, i4) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n i1 = i1 === void 0 ? 1 : i1 | 0;\n i2 = i2 === void 0 ? 2 : i2 | 0;\n i3 = i3 === void 0 ? 3 : i3 | 0;\n i4 = i4 === void 0 ? 4 : i4 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], a[i1], a[i2], a[i3], a[i4], b[i0], b[i1], b[i2], b[i3], b[i4], this.offset);\n };\n proto.pick = function pick(i0, i1, i2, i3, i4) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n c = c + this.stride[1] * i1 | 0;\n } else {\n a.push(this.shape[1]);\n b.push(this.stride[1]);\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n c = c + this.stride[2] * i2 | 0;\n } else {\n a.push(this.shape[2]);\n b.push(this.stride[2]);\n }\n if (typeof i3 === \"number\" && i3 >= 0) {\n c = c + this.stride[3] * i3 | 0;\n } else {\n a.push(this.shape[3]);\n b.push(this.stride[3]);\n }\n if (typeof i4 === \"number\" && i4 >= 0) {\n c = c + this.stride[4] * i4 | 0;\n } else {\n a.push(this.shape[4]);\n b.push(this.stride[4]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(\n data,\n shape[0],\n shape[1],\n shape[2],\n shape[3],\n shape[4],\n stride[0],\n stride[1],\n stride[2],\n stride[3],\n stride[4],\n offset\n );\n };\n }\n };\n function compileConstructor(inType, inDimension) {\n var dKey = inDimension === -1 ? \"T\" : String(inDimension);\n var procedure = allFns[dKey];\n if (inDimension === -1) {\n return procedure(inType);\n } else if (inDimension === 0) {\n return procedure(inType, CACHED_CONSTRUCTORS[inType][0]);\n }\n return procedure(inType, CACHED_CONSTRUCTORS[inType], order);\n }\n function arrayDType(data) {\n if (isBuffer(data)) {\n return \"buffer\";\n }\n if (hasTypedArrays) {\n switch (Object.prototype.toString.call(data)) {\n case \"[object Float64Array]\":\n return \"float64\";\n case \"[object Float32Array]\":\n return \"float32\";\n case \"[object Int8Array]\":\n return \"int8\";\n case \"[object Int16Array]\":\n return \"int16\";\n case \"[object Int32Array]\":\n return \"int32\";\n case \"[object Uint8ClampedArray]\":\n return \"uint8_clamped\";\n case \"[object Uint8Array]\":\n return \"uint8\";\n case \"[object Uint16Array]\":\n return \"uint16\";\n case \"[object Uint32Array]\":\n return \"uint32\";\n case \"[object BigInt64Array]\":\n return \"bigint64\";\n case \"[object BigUint64Array]\":\n return \"biguint64\";\n }\n }\n if (Array.isArray(data)) {\n return \"array\";\n }\n return \"generic\";\n }\n var CACHED_CONSTRUCTORS = {\n \"generic\": [],\n \"buffer\": [],\n \"array\": [],\n // typed arrays\n \"float32\": [],\n \"float64\": [],\n \"int8\": [],\n \"int16\": [],\n \"int32\": [],\n \"uint8_clamped\": [],\n \"uint8\": [],\n \"uint16\": [],\n \"uint32\": [],\n \"bigint64\": [],\n \"biguint64\": []\n };\n (function() {\n for (var id in CACHED_CONSTRUCTORS) {\n CACHED_CONSTRUCTORS[id].push(compileConstructor(id, -1));\n }\n });\n function wrappedNDArrayCtor(data, shape, stride, offset) {\n if (data === void 0) {\n var ctor = CACHED_CONSTRUCTORS.array[0];\n return ctor([]);\n } else if (typeof data === \"number\") {\n data = [data];\n }\n if (shape === void 0) {\n shape = [data.length];\n }\n var d = shape.length;\n if (stride === void 0) {\n stride = new Array(d);\n for (var i = d - 1, sz = 1; i >= 0; --i) {\n stride[i] = sz;\n sz *= shape[i];\n }\n }\n if (offset === void 0) {\n offset = 0;\n for (var i = 0; i < d; ++i) {\n if (stride[i] < 0) {\n offset -= (shape[i] - 1) * stride[i];\n }\n }\n }\n var inType = arrayDType(data);\n var ctor_list = CACHED_CONSTRUCTORS[inType];\n while (ctor_list.length <= d + 1) {\n ctor_list.push(compileConstructor(inType, ctor_list.length - 1));\n }\n var ctor = ctor_list[d + 1];\n return ctor(data, shape, stride, offset);\n }\n module2.exports = wrappedNDArrayCtor;\n }\n ),\n /***/\n 1278: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var doubleBits = __webpack_require__2(2361);\n var SMALLEST_DENORM = Math.pow(2, -1074);\n var UINT_MAX = -1 >>> 0;\n module2.exports = nextafter;\n function nextafter(x, y) {\n if (isNaN(x) || isNaN(y)) {\n return NaN;\n }\n if (x === y) {\n return x;\n }\n if (x === 0) {\n if (y < 0) {\n return -SMALLEST_DENORM;\n } else {\n return SMALLEST_DENORM;\n }\n }\n var hi = doubleBits.hi(x);\n var lo = doubleBits.lo(x);\n if (y > x === x > 0) {\n if (lo === UINT_MAX) {\n hi += 1;\n lo = 0;\n } else {\n lo += 1;\n }\n } else {\n if (lo === 0) {\n lo = UINT_MAX;\n hi -= 1;\n } else {\n lo -= 1;\n }\n }\n return doubleBits.pack(lo, hi);\n }\n }\n ),\n /***/\n 8406: (\n /***/\n function(__unused_webpack_module, exports2) {\n var DEFAULT_NORMALS_EPSILON = 1e-6;\n var DEFAULT_FACE_EPSILON = 1e-6;\n exports2.vertexNormals = function(faces, positions, specifiedEpsilon) {\n var N = positions.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void 0 ? DEFAULT_NORMALS_EPSILON : specifiedEpsilon;\n for (var i = 0; i < N; ++i) {\n normals[i] = [0, 0, 0];\n }\n for (var i = 0; i < faces.length; ++i) {\n var f = faces[i];\n var p = 0;\n var c = f[f.length - 1];\n var n = f[0];\n for (var j = 0; j < f.length; ++j) {\n p = c;\n c = n;\n n = f[(j + 1) % f.length];\n var v0 = positions[p];\n var v1 = positions[c];\n var v2 = positions[n];\n var d01 = new Array(3);\n var m01 = 0;\n var d21 = new Array(3);\n var m21 = 0;\n for (var k = 0; k < 3; ++k) {\n d01[k] = v0[k] - v1[k];\n m01 += d01[k] * d01[k];\n d21[k] = v2[k] - v1[k];\n m21 += d21[k] * d21[k];\n }\n if (m01 * m21 > epsilon) {\n var norm = normals[c];\n var w = 1 / Math.sqrt(m01 * m21);\n for (var k = 0; k < 3; ++k) {\n var u = (k + 1) % 3;\n var v = (k + 2) % 3;\n norm[k] += w * (d21[u] * d01[v] - d21[v] * d01[u]);\n }\n }\n }\n }\n for (var i = 0; i < N; ++i) {\n var norm = normals[i];\n var m = 0;\n for (var k = 0; k < 3; ++k) {\n m += norm[k] * norm[k];\n }\n if (m > epsilon) {\n var w = 1 / Math.sqrt(m);\n for (var k = 0; k < 3; ++k) {\n norm[k] *= w;\n }\n } else {\n for (var k = 0; k < 3; ++k) {\n norm[k] = 0;\n }\n }\n }\n return normals;\n };\n exports2.faceNormals = function(faces, positions, specifiedEpsilon) {\n var N = faces.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void 0 ? DEFAULT_FACE_EPSILON : specifiedEpsilon;\n for (var i = 0; i < N; ++i) {\n var f = faces[i];\n var pos = new Array(3);\n for (var j = 0; j < 3; ++j) {\n pos[j] = positions[f[j]];\n }\n var d01 = new Array(3);\n var d21 = new Array(3);\n for (var j = 0; j < 3; ++j) {\n d01[j] = pos[1][j] - pos[0][j];\n d21[j] = pos[2][j] - pos[0][j];\n }\n var n = new Array(3);\n var l = 0;\n for (var j = 0; j < 3; ++j) {\n var u = (j + 1) % 3;\n var v = (j + 2) % 3;\n n[j] = d01[u] * d21[v] - d01[v] * d21[u];\n l += n[j] * n[j];\n }\n if (l > epsilon) {\n l = 1 / Math.sqrt(l);\n } else {\n l = 0;\n }\n for (var j = 0; j < 3; ++j) {\n n[j] *= l;\n }\n normals[i] = n;\n }\n return normals;\n };\n }\n ),\n /***/\n 4081: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = quatFromFrame;\n function quatFromFrame(out, rx, ry, rz, ux, uy, uz, fx, fy, fz) {\n var tr = rx + uy + fz;\n if (l > 0) {\n var l = Math.sqrt(tr + 1);\n out[0] = 0.5 * (uz - fy) / l;\n out[1] = 0.5 * (fx - rz) / l;\n out[2] = 0.5 * (ry - uy) / l;\n out[3] = 0.5 * l;\n } else {\n var tf = Math.max(rx, uy, fz);\n var l = Math.sqrt(2 * tf - tr + 1);\n if (rx >= tf) {\n out[0] = 0.5 * l;\n out[1] = 0.5 * (ux + ry) / l;\n out[2] = 0.5 * (fx + rz) / l;\n out[3] = 0.5 * (uz - fy) / l;\n } else if (uy >= tf) {\n out[0] = 0.5 * (ry + ux) / l;\n out[1] = 0.5 * l;\n out[2] = 0.5 * (fy + uz) / l;\n out[3] = 0.5 * (fx - rz) / l;\n } else {\n out[0] = 0.5 * (rz + fx) / l;\n out[1] = 0.5 * (uz + fy) / l;\n out[2] = 0.5 * l;\n out[3] = 0.5 * (ry - ux) / l;\n }\n }\n return out;\n }\n }\n ),\n /***/\n 9977: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createOrbitController;\n var filterVector = __webpack_require__2(9215);\n var lookAt = __webpack_require__2(6582);\n var mat4FromQuat = __webpack_require__2(7399);\n var invert44 = __webpack_require__2(7608);\n var quatFromFrame = __webpack_require__2(4081);\n function len3(x, y, z) {\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));\n }\n function len4(w, x, y, z) {\n return Math.sqrt(Math.pow(w, 2) + Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));\n }\n function normalize4(out, a) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var al = len4(ax, ay, az, aw);\n if (al > 1e-6) {\n out[0] = ax / al;\n out[1] = ay / al;\n out[2] = az / al;\n out[3] = aw / al;\n } else {\n out[0] = out[1] = out[2] = 0;\n out[3] = 1;\n }\n }\n function OrbitCameraController(initQuat, initCenter, initRadius) {\n this.radius = filterVector([initRadius]);\n this.center = filterVector(initCenter);\n this.rotation = filterVector(initQuat);\n this.computedRadius = this.radius.curve(0);\n this.computedCenter = this.center.curve(0);\n this.computedRotation = this.rotation.curve(0);\n this.computedUp = [0.1, 0, 0];\n this.computedEye = [0.1, 0, 0];\n this.computedMatrix = [0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n this.recalcMatrix(0);\n }\n var proto = OrbitCameraController.prototype;\n proto.lastT = function() {\n return Math.max(\n this.radius.lastT(),\n this.center.lastT(),\n this.rotation.lastT()\n );\n };\n proto.recalcMatrix = function(t) {\n this.radius.curve(t);\n this.center.curve(t);\n this.rotation.curve(t);\n var quat = this.computedRotation;\n normalize4(quat, quat);\n var mat = this.computedMatrix;\n mat4FromQuat(mat, quat);\n var center = this.computedCenter;\n var eye = this.computedEye;\n var up = this.computedUp;\n var radius = Math.exp(this.computedRadius[0]);\n eye[0] = center[0] + radius * mat[2];\n eye[1] = center[1] + radius * mat[6];\n eye[2] = center[2] + radius * mat[10];\n up[0] = mat[1];\n up[1] = mat[5];\n up[2] = mat[9];\n for (var i = 0; i < 3; ++i) {\n var rr = 0;\n for (var j = 0; j < 3; ++j) {\n rr += mat[i + 4 * j] * eye[j];\n }\n mat[12 + i] = -rr;\n }\n };\n proto.getMatrix = function(t, result) {\n this.recalcMatrix(t);\n var m = this.computedMatrix;\n if (result) {\n for (var i = 0; i < 16; ++i) {\n result[i] = m[i];\n }\n return result;\n }\n return m;\n };\n proto.idle = function(t) {\n this.center.idle(t);\n this.radius.idle(t);\n this.rotation.idle(t);\n };\n proto.flush = function(t) {\n this.center.flush(t);\n this.radius.flush(t);\n this.rotation.flush(t);\n };\n proto.pan = function(t, dx, dy, dz) {\n dx = dx || 0;\n dy = dy || 0;\n dz = dz || 0;\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n var ux = mat[1];\n var uy = mat[5];\n var uz = mat[9];\n var ul = len3(ux, uy, uz);\n ux /= ul;\n uy /= ul;\n uz /= ul;\n var rx = mat[0];\n var ry = mat[4];\n var rz = mat[8];\n var ru = rx * ux + ry * uy + rz * uz;\n rx -= ux * ru;\n ry -= uy * ru;\n rz -= uz * ru;\n var rl = len3(rx, ry, rz);\n rx /= rl;\n ry /= rl;\n rz /= rl;\n var fx = mat[2];\n var fy = mat[6];\n var fz = mat[10];\n var fu = fx * ux + fy * uy + fz * uz;\n var fr = fx * rx + fy * ry + fz * rz;\n fx -= fu * ux + fr * rx;\n fy -= fu * uy + fr * ry;\n fz -= fu * uz + fr * rz;\n var fl = len3(fx, fy, fz);\n fx /= fl;\n fy /= fl;\n fz /= fl;\n var vx = rx * dx + ux * dy;\n var vy = ry * dx + uy * dy;\n var vz = rz * dx + uz * dy;\n this.center.move(t, vx, vy, vz);\n var radius = Math.exp(this.computedRadius[0]);\n radius = Math.max(1e-4, radius + dz);\n this.radius.set(t, Math.log(radius));\n };\n proto.rotate = function(t, dx, dy, dz) {\n this.recalcMatrix(t);\n dx = dx || 0;\n dy = dy || 0;\n var mat = this.computedMatrix;\n var rx = mat[0];\n var ry = mat[4];\n var rz = mat[8];\n var ux = mat[1];\n var uy = mat[5];\n var uz = mat[9];\n var fx = mat[2];\n var fy = mat[6];\n var fz = mat[10];\n var qx = dx * rx + dy * ux;\n var qy = dx * ry + dy * uy;\n var qz = dx * rz + dy * uz;\n var bx = -(fy * qz - fz * qy);\n var by = -(fz * qx - fx * qz);\n var bz = -(fx * qy - fy * qx);\n var bw = Math.sqrt(Math.max(0, 1 - Math.pow(bx, 2) - Math.pow(by, 2) - Math.pow(bz, 2)));\n var bl = len4(bx, by, bz, bw);\n if (bl > 1e-6) {\n bx /= bl;\n by /= bl;\n bz /= bl;\n bw /= bl;\n } else {\n bx = by = bz = 0;\n bw = 1;\n }\n var rotation = this.computedRotation;\n var ax = rotation[0];\n var ay = rotation[1];\n var az = rotation[2];\n var aw = rotation[3];\n var cx = ax * bw + aw * bx + ay * bz - az * by;\n var cy = ay * bw + aw * by + az * bx - ax * bz;\n var cz = az * bw + aw * bz + ax * by - ay * bx;\n var cw = aw * bw - ax * bx - ay * by - az * bz;\n if (dz) {\n bx = fx;\n by = fy;\n bz = fz;\n var s = Math.sin(dz) / len3(bx, by, bz);\n bx *= s;\n by *= s;\n bz *= s;\n bw = Math.cos(dx);\n cx = cx * bw + cw * bx + cy * bz - cz * by;\n cy = cy * bw + cw * by + cz * bx - cx * bz;\n cz = cz * bw + cw * bz + cx * by - cy * bx;\n cw = cw * bw - cx * bx - cy * by - cz * bz;\n }\n var cl = len4(cx, cy, cz, cw);\n if (cl > 1e-6) {\n cx /= cl;\n cy /= cl;\n cz /= cl;\n cw /= cl;\n } else {\n cx = cy = cz = 0;\n cw = 1;\n }\n this.rotation.set(t, cx, cy, cz, cw);\n };\n proto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t);\n center = center || this.computedCenter;\n eye = eye || this.computedEye;\n up = up || this.computedUp;\n var mat = this.computedMatrix;\n lookAt(mat, eye, center, up);\n var rotation = this.computedRotation;\n quatFromFrame(\n rotation,\n mat[0],\n mat[1],\n mat[2],\n mat[4],\n mat[5],\n mat[6],\n mat[8],\n mat[9],\n mat[10]\n );\n normalize4(rotation, rotation);\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3]);\n var fl = 0;\n for (var i = 0; i < 3; ++i) {\n fl += Math.pow(center[i] - eye[i], 2);\n }\n this.radius.set(t, 0.5 * Math.log(Math.max(fl, 1e-6)));\n this.center.set(t, center[0], center[1], center[2]);\n };\n proto.translate = function(t, dx, dy, dz) {\n this.center.move(\n t,\n dx || 0,\n dy || 0,\n dz || 0\n );\n };\n proto.setMatrix = function(t, matrix) {\n var rotation = this.computedRotation;\n quatFromFrame(\n rotation,\n matrix[0],\n matrix[1],\n matrix[2],\n matrix[4],\n matrix[5],\n matrix[6],\n matrix[8],\n matrix[9],\n matrix[10]\n );\n normalize4(rotation, rotation);\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3]);\n var mat = this.computedMatrix;\n invert44(mat, matrix);\n var w = mat[15];\n if (Math.abs(w) > 1e-6) {\n var cx = mat[12] / w;\n var cy = mat[13] / w;\n var cz = mat[14] / w;\n this.recalcMatrix(t);\n var r = Math.exp(this.computedRadius[0]);\n this.center.set(t, cx - mat[2] * r, cy - mat[6] * r, cz - mat[10] * r);\n this.radius.idle(t);\n } else {\n this.center.idle(t);\n this.radius.idle(t);\n }\n };\n proto.setDistance = function(t, d) {\n if (d > 0) {\n this.radius.set(t, Math.log(d));\n }\n };\n proto.setDistanceLimits = function(lo, hi) {\n if (lo > 0) {\n lo = Math.log(lo);\n } else {\n lo = -Infinity;\n }\n if (hi > 0) {\n hi = Math.log(hi);\n } else {\n hi = Infinity;\n }\n hi = Math.max(hi, lo);\n this.radius.bounds[0][0] = lo;\n this.radius.bounds[1][0] = hi;\n };\n proto.getDistanceLimits = function(out) {\n var bounds = this.radius.bounds;\n if (out) {\n out[0] = Math.exp(bounds[0][0]);\n out[1] = Math.exp(bounds[1][0]);\n return out;\n }\n return [Math.exp(bounds[0][0]), Math.exp(bounds[1][0])];\n };\n proto.toJSON = function() {\n this.recalcMatrix(this.lastT());\n return {\n center: this.computedCenter.slice(),\n rotation: this.computedRotation.slice(),\n distance: Math.log(this.computedRadius[0]),\n zoomMin: this.radius.bounds[0][0],\n zoomMax: this.radius.bounds[1][0]\n };\n };\n proto.fromJSON = function(options) {\n var t = this.lastT();\n var c = options.center;\n if (c) {\n this.center.set(t, c[0], c[1], c[2]);\n }\n var r = options.rotation;\n if (r) {\n this.rotation.set(t, r[0], r[1], r[2], r[3]);\n }\n var d = options.distance;\n if (d && d > 0) {\n this.radius.set(t, Math.log(d));\n }\n this.setDistanceLimits(options.zoomMin, options.zoomMax);\n };\n function createOrbitController(options) {\n options = options || {};\n var center = options.center || [0, 0, 0];\n var rotation = options.rotation || [0, 0, 0, 1];\n var radius = options.radius || 1;\n center = [].slice.call(center, 0, 3);\n rotation = [].slice.call(rotation, 0, 4);\n normalize4(rotation, rotation);\n var result = new OrbitCameraController(\n rotation,\n center,\n Math.log(radius)\n );\n result.setDistanceLimits(options.zoomMin, options.zoomMax);\n if (\"eye\" in options || \"up\" in options) {\n result.lookAt(0, options.eye, options.center, options.up);\n }\n return result;\n }\n }\n ),\n /***/\n 1371: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var repeat = __webpack_require__2(3233);\n module2.exports = function padLeft(str, num, ch) {\n ch = typeof ch !== \"undefined\" ? ch + \"\" : \" \";\n return repeat(ch, num) + str;\n };\n }\n ),\n /***/\n 3202: (\n /***/\n function(module2) {\n module2.exports = function parseUnit(str, out) {\n if (!out)\n out = [0, \"\"];\n str = String(str);\n var num = parseFloat(str, 10);\n out[0] = num;\n out[1] = str.match(/[\\d.\\-\\+]*\\s*(.*)/)[1] || \"\";\n return out;\n };\n }\n ),\n /***/\n 3088: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = planarDual;\n var compareAngle = __webpack_require__2(3140);\n function planarDual(cells, positions) {\n var numVertices = positions.length | 0;\n var numEdges = cells.length;\n var adj = [new Array(numVertices), new Array(numVertices)];\n for (var i = 0; i < numVertices; ++i) {\n adj[0][i] = [];\n adj[1][i] = [];\n }\n for (var i = 0; i < numEdges; ++i) {\n var c = cells[i];\n adj[0][c[0]].push(c);\n adj[1][c[1]].push(c);\n }\n var cycles = [];\n for (var i = 0; i < numVertices; ++i) {\n if (adj[0][i].length + adj[1][i].length === 0) {\n cycles.push([i]);\n }\n }\n function cut(c2, i2) {\n var a = adj[i2][c2[i2]];\n a.splice(a.indexOf(c2), 1);\n }\n function next(a, b, noCut) {\n var nextCell, nextVertex, nextDir;\n for (var i2 = 0; i2 < 2; ++i2) {\n if (adj[i2][b].length > 0) {\n nextCell = adj[i2][b][0];\n nextDir = i2;\n break;\n }\n }\n nextVertex = nextCell[nextDir ^ 1];\n for (var dir = 0; dir < 2; ++dir) {\n var nbhd = adj[dir][b];\n for (var k = 0; k < nbhd.length; ++k) {\n var e = nbhd[k];\n var p = e[dir ^ 1];\n var cmp = compareAngle(\n positions[a],\n positions[b],\n positions[nextVertex],\n positions[p]\n );\n if (cmp > 0) {\n nextCell = e;\n nextVertex = p;\n nextDir = dir;\n }\n }\n }\n if (noCut) {\n return nextVertex;\n }\n if (nextCell) {\n cut(nextCell, nextDir);\n }\n return nextVertex;\n }\n function extractCycle(v, dir) {\n var e0 = adj[dir][v][0];\n var cycle = [v];\n cut(e0, dir);\n var u = e0[dir ^ 1];\n var d0 = dir;\n while (true) {\n while (u !== v) {\n cycle.push(u);\n u = next(cycle[cycle.length - 2], u, false);\n }\n if (adj[0][v].length + adj[1][v].length === 0) {\n break;\n }\n var a = cycle[cycle.length - 1];\n var b = v;\n var c2 = cycle[1];\n var d = next(a, b, true);\n if (compareAngle(positions[a], positions[b], positions[c2], positions[d]) < 0) {\n break;\n }\n cycle.push(v);\n u = next(a, b);\n }\n return cycle;\n }\n function shouldGlue(pcycle2, ncycle2) {\n return ncycle2[1] === ncycle2[ncycle2.length - 1];\n }\n for (var i = 0; i < numVertices; ++i) {\n for (var j = 0; j < 2; ++j) {\n var pcycle = [];\n while (adj[j][i].length > 0) {\n var ni = adj[0][i].length;\n var ncycle = extractCycle(i, j);\n if (shouldGlue(pcycle, ncycle)) {\n pcycle.push.apply(pcycle, ncycle);\n } else {\n if (pcycle.length > 0) {\n cycles.push(pcycle);\n }\n pcycle = ncycle;\n }\n }\n if (pcycle.length > 0) {\n cycles.push(pcycle);\n }\n }\n }\n return cycles;\n }\n }\n ),\n /***/\n 5609: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = trimLeaves;\n var e2a = __webpack_require__2(3134);\n function trimLeaves(edges, positions) {\n var adj = e2a(edges, positions.length);\n var live = new Array(positions.length);\n var nbhd = new Array(positions.length);\n var dead = [];\n for (var i = 0; i < positions.length; ++i) {\n var count = adj[i].length;\n nbhd[i] = count;\n live[i] = true;\n if (count <= 1) {\n dead.push(i);\n }\n }\n while (dead.length > 0) {\n var v = dead.pop();\n live[v] = false;\n var n = adj[v];\n for (var i = 0; i < n.length; ++i) {\n var u = n[i];\n if (--nbhd[u] === 0) {\n dead.push(u);\n }\n }\n }\n var newIndex = new Array(positions.length);\n var npositions = [];\n for (var i = 0; i < positions.length; ++i) {\n if (live[i]) {\n var v = npositions.length;\n newIndex[i] = v;\n npositions.push(positions[i]);\n } else {\n newIndex[i] = -1;\n }\n }\n var nedges = [];\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n if (live[e[0]] && live[e[1]]) {\n nedges.push([newIndex[e[0]], newIndex[e[1]]]);\n }\n }\n return [nedges, npositions];\n }\n }\n ),\n /***/\n 2095: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = planarGraphToPolyline;\n var e2a = __webpack_require__2(3134);\n var planarDual = __webpack_require__2(3088);\n var preprocessPolygon = __webpack_require__2(5085);\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n var uniq = __webpack_require__2(1682);\n var trimLeaves = __webpack_require__2(5609);\n function makeArray(length, fill) {\n var result = new Array(length);\n for (var i = 0; i < length; ++i) {\n result[i] = fill;\n }\n return result;\n }\n function makeArrayOfArrays(length) {\n var result = new Array(length);\n for (var i = 0; i < length; ++i) {\n result[i] = [];\n }\n return result;\n }\n function planarGraphToPolyline(edges, positions) {\n var result = trimLeaves(edges, positions);\n edges = result[0];\n positions = result[1];\n var numVertices = positions.length;\n var numEdges = edges.length;\n var adj = e2a(edges, positions.length);\n for (var i = 0; i < numVertices; ++i) {\n if (adj[i].length % 2 === 1) {\n throw new Error(\"planar-graph-to-polyline: graph must be manifold\");\n }\n }\n var faces = planarDual(edges, positions);\n function ccw(c2) {\n var n2 = c2.length;\n var area = [0];\n for (var j2 = 0; j2 < n2; ++j2) {\n var a2 = positions[c2[j2]];\n var b2 = positions[c2[(j2 + 1) % n2]];\n var t00 = twoProduct(-a2[0], a2[1]);\n var t01 = twoProduct(-a2[0], b2[1]);\n var t10 = twoProduct(b2[0], a2[1]);\n var t11 = twoProduct(b2[0], b2[1]);\n area = robustSum(area, robustSum(robustSum(t00, t01), robustSum(t10, t11)));\n }\n return area[area.length - 1] > 0;\n }\n faces = faces.filter(ccw);\n var numFaces = faces.length;\n var parent = new Array(numFaces);\n var containment = new Array(numFaces);\n for (var i = 0; i < numFaces; ++i) {\n parent[i] = i;\n var row = new Array(numFaces);\n var loopVertices = faces[i].map(function(v) {\n return positions[v];\n });\n var pmc = preprocessPolygon([loopVertices]);\n var count = 0;\n outer:\n for (var j = 0; j < numFaces; ++j) {\n row[j] = 0;\n if (i === j) {\n continue;\n }\n var c = faces[j];\n var n = c.length;\n for (var k = 0; k < n; ++k) {\n var d = pmc(positions[c[k]]);\n if (d !== 0) {\n if (d < 0) {\n row[j] = 1;\n count += 1;\n }\n continue outer;\n }\n }\n row[j] = 1;\n count += 1;\n }\n containment[i] = [count, i, row];\n }\n containment.sort(function(a2, b2) {\n return b2[0] - a2[0];\n });\n for (var i = 0; i < numFaces; ++i) {\n var row = containment[i];\n var idx = row[1];\n var children = row[2];\n for (var j = 0; j < numFaces; ++j) {\n if (children[j]) {\n parent[j] = idx;\n }\n }\n }\n var fadj = makeArrayOfArrays(numFaces);\n for (var i = 0; i < numFaces; ++i) {\n fadj[i].push(parent[i]);\n fadj[parent[i]].push(i);\n }\n var edgeAdjacency = {};\n var internalVertices = makeArray(numVertices, false);\n for (var i = 0; i < numFaces; ++i) {\n var c = faces[i];\n var n = c.length;\n for (var j = 0; j < n; ++j) {\n var a = c[j];\n var b = c[(j + 1) % n];\n var key = Math.min(a, b) + \":\" + Math.max(a, b);\n if (key in edgeAdjacency) {\n var neighbor = edgeAdjacency[key];\n fadj[neighbor].push(i);\n fadj[i].push(neighbor);\n internalVertices[a] = internalVertices[b] = true;\n } else {\n edgeAdjacency[key] = i;\n }\n }\n }\n function sharedBoundary(c2) {\n var n2 = c2.length;\n for (var i2 = 0; i2 < n2; ++i2) {\n if (!internalVertices[c2[i2]]) {\n return false;\n }\n }\n return true;\n }\n var toVisit = [];\n var parity = makeArray(numFaces, -1);\n for (var i = 0; i < numFaces; ++i) {\n if (parent[i] === i && !sharedBoundary(faces[i])) {\n toVisit.push(i);\n parity[i] = 0;\n } else {\n parity[i] = -1;\n }\n }\n var result = [];\n while (toVisit.length > 0) {\n var top = toVisit.pop();\n var nbhd = fadj[top];\n uniq(nbhd, function(a2, b2) {\n return a2 - b2;\n });\n var nnbhr = nbhd.length;\n var p = parity[top];\n var polyline;\n if (p === 0) {\n var c = faces[top];\n polyline = [c];\n }\n for (var i = 0; i < nnbhr; ++i) {\n var f = nbhd[i];\n if (parity[f] >= 0) {\n continue;\n }\n parity[f] = p ^ 1;\n toVisit.push(f);\n if (p === 0) {\n var c = faces[f];\n if (!sharedBoundary(c)) {\n c.reverse();\n polyline.push(c);\n }\n }\n }\n if (p === 0) {\n result.push(polyline);\n }\n }\n return result;\n }\n }\n ),\n /***/\n 5085: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = preprocessPolygon;\n var orient = __webpack_require__2(3250)[3];\n var makeSlabs = __webpack_require__2(4209);\n var makeIntervalTree = __webpack_require__2(3352);\n var bsearch = __webpack_require__2(2478);\n function visitInterval() {\n return true;\n }\n function intervalSearch(table) {\n return function(x, y) {\n var tree = table[x];\n if (tree) {\n return !!tree.queryPoint(y, visitInterval);\n }\n return false;\n };\n }\n function buildVerticalIndex(segments) {\n var table = {};\n for (var i = 0; i < segments.length; ++i) {\n var s = segments[i];\n var x = s[0][0];\n var y0 = s[0][1];\n var y1 = s[1][1];\n var p = [Math.min(y0, y1), Math.max(y0, y1)];\n if (x in table) {\n table[x].push(p);\n } else {\n table[x] = [p];\n }\n }\n var intervalTable = {};\n var keys = Object.keys(table);\n for (var i = 0; i < keys.length; ++i) {\n var segs = table[keys[i]];\n intervalTable[keys[i]] = makeIntervalTree(segs);\n }\n return intervalSearch(intervalTable);\n }\n function buildSlabSearch(slabs, coordinates) {\n return function(p) {\n var bucket = bsearch.le(coordinates, p[0]);\n if (bucket < 0) {\n return 1;\n }\n var root = slabs[bucket];\n if (!root) {\n if (bucket > 0 && coordinates[bucket] === p[0]) {\n root = slabs[bucket - 1];\n } else {\n return 1;\n }\n }\n var lastOrientation = 1;\n while (root) {\n var s = root.key;\n var o = orient(p, s[0], s[1]);\n if (s[0][0] < s[1][0]) {\n if (o < 0) {\n root = root.left;\n } else if (o > 0) {\n lastOrientation = -1;\n root = root.right;\n } else {\n return 0;\n }\n } else {\n if (o > 0) {\n root = root.left;\n } else if (o < 0) {\n lastOrientation = 1;\n root = root.right;\n } else {\n return 0;\n }\n }\n }\n return lastOrientation;\n };\n }\n function classifyEmpty(p) {\n return 1;\n }\n function createClassifyVertical(testVertical) {\n return function classify(p) {\n if (testVertical(p[0], p[1])) {\n return 0;\n }\n return 1;\n };\n }\n function createClassifyPointDegen(testVertical, testNormal) {\n return function classify(p) {\n if (testVertical(p[0], p[1])) {\n return 0;\n }\n return testNormal(p);\n };\n }\n function preprocessPolygon(loops) {\n var numLoops = loops.length;\n var segments = [];\n var vsegments = [];\n var ptr = 0;\n for (var i = 0; i < numLoops; ++i) {\n var loop = loops[i];\n var numVertices = loop.length;\n for (var s = numVertices - 1, t = 0; t < numVertices; s = t++) {\n var a = loop[s];\n var b = loop[t];\n if (a[0] === b[0]) {\n vsegments.push([a, b]);\n } else {\n segments.push([a, b]);\n }\n }\n }\n if (segments.length === 0) {\n if (vsegments.length === 0) {\n return classifyEmpty;\n } else {\n return createClassifyVertical(buildVerticalIndex(vsegments));\n }\n }\n var slabs = makeSlabs(segments);\n var testSlab = buildSlabSearch(slabs.slabs, slabs.coordinates);\n if (vsegments.length === 0) {\n return testSlab;\n } else {\n return createClassifyPointDegen(\n buildVerticalIndex(vsegments),\n testSlab\n );\n }\n }\n }\n ),\n /***/\n 9346: (\n /***/\n function(module2) {\n \"use strict\";\n var diff = new Float64Array(4);\n var edge0 = new Float64Array(4);\n var edge1 = new Float64Array(4);\n function closestPoint2d(V0, V1, V2, point, result) {\n if (diff.length < point.length) {\n diff = new Float64Array(point.length);\n edge0 = new Float64Array(point.length);\n edge1 = new Float64Array(point.length);\n }\n for (var i = 0; i < point.length; ++i) {\n diff[i] = V0[i] - point[i];\n edge0[i] = V1[i] - V0[i];\n edge1[i] = V2[i] - V0[i];\n }\n var a00 = 0, a01 = 0, a11 = 0, b0 = 0, b1 = 0, c = 0;\n for (var i = 0; i < point.length; ++i) {\n var e0 = edge0[i], e1 = edge1[i], d = diff[i];\n a00 += e0 * e0;\n a01 += e0 * e1;\n a11 += e1 * e1;\n b0 += d * e0;\n b1 += d * e1;\n c += d * d;\n }\n var det = Math.abs(a00 * a11 - a01 * a01);\n var s = a01 * b1 - a11 * b0;\n var t = a01 * b0 - a00 * b1;\n var sqrDistance;\n if (s + t <= det) {\n if (s < 0) {\n if (t < 0) {\n if (b0 < 0) {\n t = 0;\n if (-b0 >= a00) {\n s = 1;\n sqrDistance = a00 + 2 * b0 + c;\n } else {\n s = -b0 / a00;\n sqrDistance = b0 * s + c;\n }\n } else {\n s = 0;\n if (b1 >= 0) {\n t = 0;\n sqrDistance = c;\n } else if (-b1 >= a11) {\n t = 1;\n sqrDistance = a11 + 2 * b1 + c;\n } else {\n t = -b1 / a11;\n sqrDistance = b1 * t + c;\n }\n }\n } else {\n s = 0;\n if (b1 >= 0) {\n t = 0;\n sqrDistance = c;\n } else if (-b1 >= a11) {\n t = 1;\n sqrDistance = a11 + 2 * b1 + c;\n } else {\n t = -b1 / a11;\n sqrDistance = b1 * t + c;\n }\n }\n } else if (t < 0) {\n t = 0;\n if (b0 >= 0) {\n s = 0;\n sqrDistance = c;\n } else if (-b0 >= a00) {\n s = 1;\n sqrDistance = a00 + 2 * b0 + c;\n } else {\n s = -b0 / a00;\n sqrDistance = b0 * s + c;\n }\n } else {\n var invDet = 1 / det;\n s *= invDet;\n t *= invDet;\n sqrDistance = s * (a00 * s + a01 * t + 2 * b0) + t * (a01 * s + a11 * t + 2 * b1) + c;\n }\n } else {\n var tmp0, tmp1, numer, denom;\n if (s < 0) {\n tmp0 = a01 + b0;\n tmp1 = a11 + b1;\n if (tmp1 > tmp0) {\n numer = tmp1 - tmp0;\n denom = a00 - 2 * a01 + a11;\n if (numer >= denom) {\n s = 1;\n t = 0;\n sqrDistance = a00 + 2 * b0 + c;\n } else {\n s = numer / denom;\n t = 1 - s;\n sqrDistance = s * (a00 * s + a01 * t + 2 * b0) + t * (a01 * s + a11 * t + 2 * b1) + c;\n }\n } else {\n s = 0;\n if (tmp1 <= 0) {\n t = 1;\n sqrDistance = a11 + 2 * b1 + c;\n } else if (b1 >= 0) {\n t = 0;\n sqrDistance = c;\n } else {\n t = -b1 / a11;\n sqrDistance = b1 * t + c;\n }\n }\n } else if (t < 0) {\n tmp0 = a01 + b1;\n tmp1 = a00 + b0;\n if (tmp1 > tmp0) {\n numer = tmp1 - tmp0;\n denom = a00 - 2 * a01 + a11;\n if (numer >= denom) {\n t = 1;\n s = 0;\n sqrDistance = a11 + 2 * b1 + c;\n } else {\n t = numer / denom;\n s = 1 - t;\n sqrDistance = s * (a00 * s + a01 * t + 2 * b0) + t * (a01 * s + a11 * t + 2 * b1) + c;\n }\n } else {\n t = 0;\n if (tmp1 <= 0) {\n s = 1;\n sqrDistance = a00 + 2 * b0 + c;\n } else if (b0 >= 0) {\n s = 0;\n sqrDistance = c;\n } else {\n s = -b0 / a00;\n sqrDistance = b0 * s + c;\n }\n }\n } else {\n numer = a11 + b1 - a01 - b0;\n if (numer <= 0) {\n s = 0;\n t = 1;\n sqrDistance = a11 + 2 * b1 + c;\n } else {\n denom = a00 - 2 * a01 + a11;\n if (numer >= denom) {\n s = 1;\n t = 0;\n sqrDistance = a00 + 2 * b0 + c;\n } else {\n s = numer / denom;\n t = 1 - s;\n sqrDistance = s * (a00 * s + a01 * t + 2 * b0) + t * (a01 * s + a11 * t + 2 * b1) + c;\n }\n }\n }\n }\n var u = 1 - s - t;\n for (var i = 0; i < point.length; ++i) {\n result[i] = u * V0[i] + s * V1[i] + t * V2[i];\n }\n if (sqrDistance < 0) {\n return 0;\n }\n return sqrDistance;\n }\n module2.exports = closestPoint2d;\n }\n ),\n /***/\n 8648: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(783);\n }\n ),\n /***/\n 2653: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bnadd = __webpack_require__2(3865);\n module2.exports = add;\n function add(a, b) {\n var n = a.length;\n var r = new Array(n);\n for (var i = 0; i < n; ++i) {\n r[i] = bnadd(a[i], b[i]);\n }\n return r;\n }\n }\n ),\n /***/\n 5838: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = float2rat;\n var rat = __webpack_require__2(7842);\n function float2rat(v) {\n var result = new Array(v.length);\n for (var i = 0; i < v.length; ++i) {\n result[i] = rat(v[i]);\n }\n return result;\n }\n }\n ),\n /***/\n 8987: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rat = __webpack_require__2(7842);\n var mul = __webpack_require__2(6504);\n module2.exports = muls;\n function muls(a, x) {\n var s = rat(x);\n var n = a.length;\n var r = new Array(n);\n for (var i = 0; i < n; ++i) {\n r[i] = mul(a[i], s);\n }\n return r;\n }\n }\n ),\n /***/\n 544: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bnsub = __webpack_require__2(5572);\n module2.exports = sub;\n function sub(a, b) {\n var n = a.length;\n var r = new Array(n);\n for (var i = 0; i < n; ++i) {\n r[i] = bnsub(a[i], b[i]);\n }\n return r;\n }\n }\n ),\n /***/\n 5771: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var compareCell = __webpack_require__2(8507);\n var compareOrientedCell = __webpack_require__2(3788);\n var orientation = __webpack_require__2(2419);\n module2.exports = reduceCellComplex;\n function reduceCellComplex(cells) {\n cells.sort(compareOrientedCell);\n var n = cells.length;\n var ptr = 0;\n for (var i = 0; i < n; ++i) {\n var c = cells[i];\n var o = orientation(c);\n if (o === 0) {\n continue;\n }\n if (ptr > 0) {\n var f = cells[ptr - 1];\n if (compareCell(c, f) === 0 && orientation(f) !== o) {\n ptr -= 1;\n continue;\n }\n }\n cells[ptr++] = c;\n }\n cells.length = ptr;\n return cells;\n }\n }\n ),\n /***/\n 3233: (\n /***/\n function(module2) {\n \"use strict\";\n var res = \"\";\n var cache;\n module2.exports = repeat;\n function repeat(str, num) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"expected a string\");\n }\n if (num === 1) return str;\n if (num === 2) return str + str;\n var max = str.length * num;\n if (cache !== str || typeof cache === \"undefined\") {\n cache = str;\n res = \"\";\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n num >>= 1;\n str += str;\n }\n res += str;\n res = res.substr(0, max);\n return res;\n }\n }\n ),\n /***/\n 3025: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2.g.performance && __webpack_require__2.g.performance.now ? function now() {\n return performance.now();\n } : Date.now || function now() {\n return +/* @__PURE__ */ new Date();\n };\n }\n ),\n /***/\n 7004: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = compressExpansion;\n function compressExpansion(e) {\n var m = e.length;\n var Q = e[e.length - 1];\n var bottom = m;\n for (var i = m - 2; i >= 0; --i) {\n var a = Q;\n var b = e[i];\n Q = a + b;\n var bv = Q - a;\n var q = b - bv;\n if (q) {\n e[--bottom] = Q;\n Q = q;\n }\n }\n var top = 0;\n for (var i = bottom; i < m; ++i) {\n var a = e[i];\n var b = Q;\n Q = a + b;\n var bv = Q - a;\n var q = b - bv;\n if (q) {\n e[top++] = q;\n }\n }\n e[top++] = Q;\n e.length = top;\n return e;\n }\n }\n ),\n /***/\n 2962: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n var robustScale = __webpack_require__2(3012);\n var compress = __webpack_require__2(7004);\n var NUM_EXPANDED = 6;\n function determinant_2(sum, scale, prod, compress2) {\n return function robustDeterminant2(m) {\n return compress2(sum(prod(m[0][0], m[1][1]), prod(-m[0][1], m[1][0])));\n };\n }\n function determinant_3(sum, scale, prod, compress2) {\n return function robustDeterminant3(m) {\n return compress2(sum(scale(sum(prod(m[1][1], m[2][2]), prod(-m[1][2], m[2][1])), m[0][0]), sum(scale(sum(prod(m[1][0], m[2][2]), prod(-m[1][2], m[2][0])), -m[0][1]), scale(sum(prod(m[1][0], m[2][1]), prod(-m[1][1], m[2][0])), m[0][2]))));\n };\n }\n function determinant_4(sum, scale, prod, compress2) {\n return function robustDeterminant4(m) {\n return compress2(sum(sum(scale(sum(scale(sum(prod(m[2][2], m[3][3]), prod(-m[2][3], m[3][2])), m[1][1]), sum(scale(sum(prod(m[2][1], m[3][3]), prod(-m[2][3], m[3][1])), -m[1][2]), scale(sum(prod(m[2][1], m[3][2]), prod(-m[2][2], m[3][1])), m[1][3]))), m[0][0]), scale(sum(scale(sum(prod(m[2][2], m[3][3]), prod(-m[2][3], m[3][2])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][3]), prod(-m[2][3], m[3][0])), -m[1][2]), scale(sum(prod(m[2][0], m[3][2]), prod(-m[2][2], m[3][0])), m[1][3]))), -m[0][1])), sum(scale(sum(scale(sum(prod(m[2][1], m[3][3]), prod(-m[2][3], m[3][1])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][3]), prod(-m[2][3], m[3][0])), -m[1][1]), scale(sum(prod(m[2][0], m[3][1]), prod(-m[2][1], m[3][0])), m[1][3]))), m[0][2]), scale(sum(scale(sum(prod(m[2][1], m[3][2]), prod(-m[2][2], m[3][1])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][2]), prod(-m[2][2], m[3][0])), -m[1][1]), scale(sum(prod(m[2][0], m[3][1]), prod(-m[2][1], m[3][0])), m[1][2]))), -m[0][3]))));\n };\n }\n function determinant_5(sum, scale, prod, compress2) {\n return function robustDeterminant5(m) {\n return compress2(sum(sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][2]), sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), -m[2][3]), scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][4]))), m[1][1]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][3]), scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][4]))), -m[1][2])), sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][3]))), -m[1][4]))), m[0][0]), scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][2]), sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), -m[2][3]), scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][3]), scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), m[2][4]))), -m[1][2])), sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][3]))), -m[1][4]))), -m[0][1])), sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][3]), scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][3]), scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), m[2][4]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][3]))), -m[1][4]))), m[0][2]), sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][4]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][4]))), m[1][2]), scale(sum(scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][2]))), -m[1][4]))), -m[0][3]), scale(sum(sum(scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][3]))), m[1][0]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][3]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][3]))), m[1][2]), scale(sum(scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][2]))), -m[1][3]))), m[0][4])))));\n };\n }\n function compileDeterminant(n) {\n var fn = n === 2 ? determinant_2 : n === 3 ? determinant_3 : n === 4 ? determinant_4 : n === 5 ? determinant_5 : void 0;\n return fn(robustSum, robustScale, twoProduct, compress);\n }\n var CACHE = [\n function robustDeterminant0() {\n return [0];\n },\n function robustDeterminant1(m) {\n return [m[0][0]];\n }\n ];\n function proc(det0, det1, det2, det3, det4, det5, CACHE2, gen) {\n return function robustDeterminant(m) {\n switch (m.length) {\n case 0:\n return det0(m);\n case 1:\n return det1(m);\n case 2:\n return det2(m);\n case 3:\n return det3(m);\n case 4:\n return det4(m);\n case 5:\n return det5(m);\n }\n var det = CACHE2[m.length];\n if (!det) det = CACHE2[m.length] = gen(m.length);\n return det(m);\n };\n }\n function generateDispatch() {\n while (CACHE.length < NUM_EXPANDED) {\n CACHE.push(compileDeterminant(CACHE.length));\n }\n module2.exports = proc.apply(void 0, CACHE.concat([CACHE, compileDeterminant]));\n for (var i = 0; i < CACHE.length; ++i) {\n module2.exports[i] = CACHE[i];\n }\n }\n generateDispatch();\n }\n ),\n /***/\n 1944: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n module2.exports = robustDotProduct;\n function robustDotProduct(a, b) {\n var r = twoProduct(a[0], b[0]);\n for (var i = 1; i < a.length; ++i) {\n r = robustSum(r, twoProduct(a[i], b[i]));\n }\n return r;\n }\n }\n ),\n /***/\n 2646: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n var robustDiff = __webpack_require__2(8545);\n var robustScale = __webpack_require__2(3012);\n var NUM_EXPAND = 6;\n function orientation(n) {\n var fn = n === 3 ? inSphere3 : n === 4 ? inSphere4 : n === 5 ? inSphere5 : inSphere6;\n return fn(robustSum, robustDiff, twoProduct, robustScale);\n }\n function inSphere0() {\n return 0;\n }\n function inSphere1() {\n return 0;\n }\n function inSphere2() {\n return 0;\n }\n function inSphere3(sum, diff, prod, scale) {\n function exactInSphere3(m0, m1, m2) {\n var w0 = prod(m0[0], m0[0]);\n var w0m1 = scale(w0, m1[0]);\n var w0m2 = scale(w0, m2[0]);\n var w1 = prod(m1[0], m1[0]);\n var w1m0 = scale(w1, m0[0]);\n var w1m2 = scale(w1, m2[0]);\n var w2 = prod(m2[0], m2[0]);\n var w2m0 = scale(w2, m0[0]);\n var w2m1 = scale(w2, m1[0]);\n var p = sum(diff(w2m1, w1m2), diff(w1m0, w0m1));\n var n = diff(w2m0, w0m2);\n var d = diff(p, n);\n return d[d.length - 1];\n }\n return exactInSphere3;\n }\n function inSphere4(sum, diff, prod, scale) {\n function exactInSphere4(m0, m1, m2, m3) {\n var w0 = sum(prod(m0[0], m0[0]), prod(m0[1], m0[1]));\n var w0m1 = scale(w0, m1[0]);\n var w0m2 = scale(w0, m2[0]);\n var w0m3 = scale(w0, m3[0]);\n var w1 = sum(prod(m1[0], m1[0]), prod(m1[1], m1[1]));\n var w1m0 = scale(w1, m0[0]);\n var w1m2 = scale(w1, m2[0]);\n var w1m3 = scale(w1, m3[0]);\n var w2 = sum(prod(m2[0], m2[0]), prod(m2[1], m2[1]));\n var w2m0 = scale(w2, m0[0]);\n var w2m1 = scale(w2, m1[0]);\n var w2m3 = scale(w2, m3[0]);\n var w3 = sum(prod(m3[0], m3[0]), prod(m3[1], m3[1]));\n var w3m0 = scale(w3, m0[0]);\n var w3m1 = scale(w3, m1[0]);\n var w3m2 = scale(w3, m2[0]);\n var p = sum(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))));\n var n = sum(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))));\n var d = diff(p, n);\n return d[d.length - 1];\n }\n return exactInSphere4;\n }\n function inSphere5(sum, diff, prod, scale) {\n function exactInSphere5(m0, m1, m2, m3, m4) {\n var w0 = sum(prod(m0[0], m0[0]), sum(prod(m0[1], m0[1]), prod(m0[2], m0[2])));\n var w0m1 = scale(w0, m1[0]);\n var w0m2 = scale(w0, m2[0]);\n var w0m3 = scale(w0, m3[0]);\n var w0m4 = scale(w0, m4[0]);\n var w1 = sum(prod(m1[0], m1[0]), sum(prod(m1[1], m1[1]), prod(m1[2], m1[2])));\n var w1m0 = scale(w1, m0[0]);\n var w1m2 = scale(w1, m2[0]);\n var w1m3 = scale(w1, m3[0]);\n var w1m4 = scale(w1, m4[0]);\n var w2 = sum(prod(m2[0], m2[0]), sum(prod(m2[1], m2[1]), prod(m2[2], m2[2])));\n var w2m0 = scale(w2, m0[0]);\n var w2m1 = scale(w2, m1[0]);\n var w2m3 = scale(w2, m3[0]);\n var w2m4 = scale(w2, m4[0]);\n var w3 = sum(prod(m3[0], m3[0]), sum(prod(m3[1], m3[1]), prod(m3[2], m3[2])));\n var w3m0 = scale(w3, m0[0]);\n var w3m1 = scale(w3, m1[0]);\n var w3m2 = scale(w3, m2[0]);\n var w3m4 = scale(w3, m4[0]);\n var w4 = sum(prod(m4[0], m4[0]), sum(prod(m4[1], m4[1]), prod(m4[2], m4[2])));\n var w4m0 = scale(w4, m0[0]);\n var w4m1 = scale(w4, m1[0]);\n var w4m2 = scale(w4, m2[0]);\n var w4m3 = scale(w4, m3[0]);\n var p = sum(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m1[2]), sum(scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m2[2]), scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m3[2]))), sum(scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m4[2]), sum(scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m1[2])))), sum(sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m3[2]), sum(scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m4[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), m0[2]))), sum(scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m1[2]), sum(scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m3[2])))));\n var n = sum(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m4[2]))), sum(sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m0[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m4[2]))));\n var d = diff(p, n);\n return d[d.length - 1];\n }\n return exactInSphere5;\n }\n function inSphere6(sum, diff, prod, scale) {\n function exactInSphere6(m0, m1, m2, m3, m4, m5) {\n var w0 = sum(sum(prod(m0[0], m0[0]), prod(m0[1], m0[1])), sum(prod(m0[2], m0[2]), prod(m0[3], m0[3])));\n var w0m1 = scale(w0, m1[0]);\n var w0m2 = scale(w0, m2[0]);\n var w0m3 = scale(w0, m3[0]);\n var w0m4 = scale(w0, m4[0]);\n var w0m5 = scale(w0, m5[0]);\n var w1 = sum(sum(prod(m1[0], m1[0]), prod(m1[1], m1[1])), sum(prod(m1[2], m1[2]), prod(m1[3], m1[3])));\n var w1m0 = scale(w1, m0[0]);\n var w1m2 = scale(w1, m2[0]);\n var w1m3 = scale(w1, m3[0]);\n var w1m4 = scale(w1, m4[0]);\n var w1m5 = scale(w1, m5[0]);\n var w2 = sum(sum(prod(m2[0], m2[0]), prod(m2[1], m2[1])), sum(prod(m2[2], m2[2]), prod(m2[3], m2[3])));\n var w2m0 = scale(w2, m0[0]);\n var w2m1 = scale(w2, m1[0]);\n var w2m3 = scale(w2, m3[0]);\n var w2m4 = scale(w2, m4[0]);\n var w2m5 = scale(w2, m5[0]);\n var w3 = sum(sum(prod(m3[0], m3[0]), prod(m3[1], m3[1])), sum(prod(m3[2], m3[2]), prod(m3[3], m3[3])));\n var w3m0 = scale(w3, m0[0]);\n var w3m1 = scale(w3, m1[0]);\n var w3m2 = scale(w3, m2[0]);\n var w3m4 = scale(w3, m4[0]);\n var w3m5 = scale(w3, m5[0]);\n var w4 = sum(sum(prod(m4[0], m4[0]), prod(m4[1], m4[1])), sum(prod(m4[2], m4[2]), prod(m4[3], m4[3])));\n var w4m0 = scale(w4, m0[0]);\n var w4m1 = scale(w4, m1[0]);\n var w4m2 = scale(w4, m2[0]);\n var w4m3 = scale(w4, m3[0]);\n var w4m5 = scale(w4, m5[0]);\n var w5 = sum(sum(prod(m5[0], m5[0]), prod(m5[1], m5[1])), sum(prod(m5[2], m5[2]), prod(m5[3], m5[3])));\n var w5m0 = scale(w5, m0[0]);\n var w5m1 = scale(w5, m1[0]);\n var w5m2 = scale(w5, m2[0]);\n var w5m3 = scale(w5, m3[0]);\n var w5m4 = scale(w5, m4[0]);\n var p = sum(sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m2[2]), scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), -m5[2]))), m1[3]), sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m1[2]), scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m5[2]))), -m2[3]), scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), m1[2]), scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m4[2]), scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), -m5[2]))), m3[3]))), sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m1[2]), scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m5[2]))), -m4[3]), scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m1[2]), scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m4[2]))), m5[3])), sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m1[2]), scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m5[2]))), m0[3]), scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m5[2]))), -m1[3])))), sum(sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m4[2]), scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), -m5[2]))), m3[3]), scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), m0[2]), scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m3[2]), scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m5[2]))), -m4[3])), sum(scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m3[2]), scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m4[2]))), m5[3]), scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m1[2]), scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m5[2]))), m0[3]))), sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m0[2]), scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m5[2]))), -m1[3]), scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), m0[2]), scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m3[2]), scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m5[2]))), m2[3])), sum(scale(sum(sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m0[2]), scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m5[2]))), -m3[3]), scale(sum(sum(scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), m0[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m1[2])), sum(scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m3[2]))), m5[3])))));\n var n = sum(sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m2[2]), scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), -m5[2]))), m0[3]), sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m5[2]))), -m2[3]), scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), m4[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m5[2]))), m3[3]))), sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m0[2]), scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m5[2]))), -m4[3]), scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m4[2]))), m5[3])), sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), m1[2]), scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m4[2]), scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), -m5[2]))), m0[3]), scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), m4[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m5[2]))), -m1[3])))), sum(sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m4[2]), scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), -m5[2]))), m2[3]), scale(sum(sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m0[2]), scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m5[2]))), -m4[3])), sum(scale(sum(sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m0[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m4[2]))), m5[3]), scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m1[2]), scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m4[2]))), m0[3]))), sum(sum(scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m4[2]))), -m1[3]), scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m3[2]), scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m4[2]))), m2[3])), sum(scale(sum(sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m0[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m4[2]))), -m3[3]), scale(sum(sum(scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), m0[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m1[2])), sum(scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m3[2]))), m4[3])))));\n var d = diff(p, n);\n return d[d.length - 1];\n }\n return exactInSphere6;\n }\n var CACHED = [\n inSphere0,\n inSphere1,\n inSphere2\n ];\n function slowInSphere(args) {\n var proc2 = CACHED[args.length];\n if (!proc2) {\n proc2 = CACHED[args.length] = orientation(args.length);\n }\n return proc2.apply(void 0, args);\n }\n function proc(slow, o0, o1, o2, o3, o4, o5, o6) {\n function testInSphere(a0, a1, a2, a3, a4, a5) {\n switch (arguments.length) {\n case 0:\n case 1:\n return 0;\n case 2:\n return o2(a0, a1);\n case 3:\n return o3(a0, a1, a2);\n case 4:\n return o4(a0, a1, a2, a3);\n case 5:\n return o5(a0, a1, a2, a3, a4);\n case 6:\n return o6(a0, a1, a2, a3, a4, a5);\n }\n var s = new Array(arguments.length);\n for (var i = 0; i < arguments.length; ++i) {\n s[i] = arguments[i];\n }\n return slow(s);\n }\n return testInSphere;\n }\n function generateInSphereTest() {\n while (CACHED.length <= NUM_EXPAND) {\n CACHED.push(orientation(CACHED.length));\n }\n module2.exports = proc.apply(void 0, [slowInSphere].concat(CACHED));\n for (var i = 0; i <= NUM_EXPAND; ++i) {\n module2.exports[i] = CACHED[i];\n }\n }\n generateInSphereTest();\n }\n ),\n /***/\n 727: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var determinant = __webpack_require__2(2962);\n var NUM_EXPAND = 6;\n function generateSolver(n) {\n var fn = n === 2 ? solve2d : n === 3 ? solve3d : n === 4 ? solve4d : n === 5 ? solve5d : solve6d;\n if (n < 6) {\n return fn(determinant[n]);\n }\n return fn(determinant);\n }\n function robustLinearSolve0d() {\n return [[0]];\n }\n function robustLinearSolve1d(A2, b) {\n return [[b[0]], [A2[0][0]]];\n }\n function solve2d(det) {\n return function robustLinearSolve2d(A2, b) {\n return [det([[+b[0], +A2[0][1]], [+b[1], +A2[1][1]]]), det([[+A2[0][0], +b[0]], [+A2[1][0], +b[1]]]), det(A2)];\n };\n }\n function solve3d(det) {\n return function robustLinearSolve3d(A2, b) {\n return [det([[+b[0], +A2[0][1], +A2[0][2]], [+b[1], +A2[1][1], +A2[1][2]], [+b[2], +A2[2][1], +A2[2][2]]]), det([[+A2[0][0], +b[0], +A2[0][2]], [+A2[1][0], +b[1], +A2[1][2]], [+A2[2][0], +b[2], +A2[2][2]]]), det([[+A2[0][0], +A2[0][1], +b[0]], [+A2[1][0], +A2[1][1], +b[1]], [+A2[2][0], +A2[2][1], +b[2]]]), det(A2)];\n };\n }\n function solve4d(det) {\n return function robustLinearSolve4d(A2, b) {\n return [det([[+b[0], +A2[0][1], +A2[0][2], +A2[0][3]], [+b[1], +A2[1][1], +A2[1][2], +A2[1][3]], [+b[2], +A2[2][1], +A2[2][2], +A2[2][3]], [+b[3], +A2[3][1], +A2[3][2], +A2[3][3]]]), det([[+A2[0][0], +b[0], +A2[0][2], +A2[0][3]], [+A2[1][0], +b[1], +A2[1][2], +A2[1][3]], [+A2[2][0], +b[2], +A2[2][2], +A2[2][3]], [+A2[3][0], +b[3], +A2[3][2], +A2[3][3]]]), det([[+A2[0][0], +A2[0][1], +b[0], +A2[0][3]], [+A2[1][0], +A2[1][1], +b[1], +A2[1][3]], [+A2[2][0], +A2[2][1], +b[2], +A2[2][3]], [+A2[3][0], +A2[3][1], +b[3], +A2[3][3]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +b[0]], [+A2[1][0], +A2[1][1], +A2[1][2], +b[1]], [+A2[2][0], +A2[2][1], +A2[2][2], +b[2]], [+A2[3][0], +A2[3][1], +A2[3][2], +b[3]]]), det(A2)];\n };\n }\n function solve5d(det) {\n return function robustLinearSolve5d(A2, b) {\n return [det([[+b[0], +A2[0][1], +A2[0][2], +A2[0][3], +A2[0][4]], [+b[1], +A2[1][1], +A2[1][2], +A2[1][3], +A2[1][4]], [+b[2], +A2[2][1], +A2[2][2], +A2[2][3], +A2[2][4]], [+b[3], +A2[3][1], +A2[3][2], +A2[3][3], +A2[3][4]], [+b[4], +A2[4][1], +A2[4][2], +A2[4][3], +A2[4][4]]]), det([[+A2[0][0], +b[0], +A2[0][2], +A2[0][3], +A2[0][4]], [+A2[1][0], +b[1], +A2[1][2], +A2[1][3], +A2[1][4]], [+A2[2][0], +b[2], +A2[2][2], +A2[2][3], +A2[2][4]], [+A2[3][0], +b[3], +A2[3][2], +A2[3][3], +A2[3][4]], [+A2[4][0], +b[4], +A2[4][2], +A2[4][3], +A2[4][4]]]), det([[+A2[0][0], +A2[0][1], +b[0], +A2[0][3], +A2[0][4]], [+A2[1][0], +A2[1][1], +b[1], +A2[1][3], +A2[1][4]], [+A2[2][0], +A2[2][1], +b[2], +A2[2][3], +A2[2][4]], [+A2[3][0], +A2[3][1], +b[3], +A2[3][3], +A2[3][4]], [+A2[4][0], +A2[4][1], +b[4], +A2[4][3], +A2[4][4]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +b[0], +A2[0][4]], [+A2[1][0], +A2[1][1], +A2[1][2], +b[1], +A2[1][4]], [+A2[2][0], +A2[2][1], +A2[2][2], +b[2], +A2[2][4]], [+A2[3][0], +A2[3][1], +A2[3][2], +b[3], +A2[3][4]], [+A2[4][0], +A2[4][1], +A2[4][2], +b[4], +A2[4][4]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +A2[0][3], +b[0]], [+A2[1][0], +A2[1][1], +A2[1][2], +A2[1][3], +b[1]], [+A2[2][0], +A2[2][1], +A2[2][2], +A2[2][3], +b[2]], [+A2[3][0], +A2[3][1], +A2[3][2], +A2[3][3], +b[3]], [+A2[4][0], +A2[4][1], +A2[4][2], +A2[4][3], +b[4]]]), det(A2)];\n };\n }\n function solve6d(det) {\n return function robustLinearSolve6d(A2, b) {\n return [det([[+b[0], +A2[0][1], +A2[0][2], +A2[0][3], +A2[0][4], +A2[0][5]], [+b[1], +A2[1][1], +A2[1][2], +A2[1][3], +A2[1][4], +A2[1][5]], [+b[2], +A2[2][1], +A2[2][2], +A2[2][3], +A2[2][4], +A2[2][5]], [+b[3], +A2[3][1], +A2[3][2], +A2[3][3], +A2[3][4], +A2[3][5]], [+b[4], +A2[4][1], +A2[4][2], +A2[4][3], +A2[4][4], +A2[4][5]], [+b[5], +A2[5][1], +A2[5][2], +A2[5][3], +A2[5][4], +A2[5][5]]]), det([[+A2[0][0], +b[0], +A2[0][2], +A2[0][3], +A2[0][4], +A2[0][5]], [+A2[1][0], +b[1], +A2[1][2], +A2[1][3], +A2[1][4], +A2[1][5]], [+A2[2][0], +b[2], +A2[2][2], +A2[2][3], +A2[2][4], +A2[2][5]], [+A2[3][0], +b[3], +A2[3][2], +A2[3][3], +A2[3][4], +A2[3][5]], [+A2[4][0], +b[4], +A2[4][2], +A2[4][3], +A2[4][4], +A2[4][5]], [+A2[5][0], +b[5], +A2[5][2], +A2[5][3], +A2[5][4], +A2[5][5]]]), det([[+A2[0][0], +A2[0][1], +b[0], +A2[0][3], +A2[0][4], +A2[0][5]], [+A2[1][0], +A2[1][1], +b[1], +A2[1][3], +A2[1][4], +A2[1][5]], [+A2[2][0], +A2[2][1], +b[2], +A2[2][3], +A2[2][4], +A2[2][5]], [+A2[3][0], +A2[3][1], +b[3], +A2[3][3], +A2[3][4], +A2[3][5]], [+A2[4][0], +A2[4][1], +b[4], +A2[4][3], +A2[4][4], +A2[4][5]], [+A2[5][0], +A2[5][1], +b[5], +A2[5][3], +A2[5][4], +A2[5][5]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +b[0], +A2[0][4], +A2[0][5]], [+A2[1][0], +A2[1][1], +A2[1][2], +b[1], +A2[1][4], +A2[1][5]], [+A2[2][0], +A2[2][1], +A2[2][2], +b[2], +A2[2][4], +A2[2][5]], [+A2[3][0], +A2[3][1], +A2[3][2], +b[3], +A2[3][4], +A2[3][5]], [+A2[4][0], +A2[4][1], +A2[4][2], +b[4], +A2[4][4], +A2[4][5]], [+A2[5][0], +A2[5][1], +A2[5][2], +b[5], +A2[5][4], +A2[5][5]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +A2[0][3], +b[0], +A2[0][5]], [+A2[1][0], +A2[1][1], +A2[1][2], +A2[1][3], +b[1], +A2[1][5]], [+A2[2][0], +A2[2][1], +A2[2][2], +A2[2][3], +b[2], +A2[2][5]], [+A2[3][0], +A2[3][1], +A2[3][2], +A2[3][3], +b[3], +A2[3][5]], [+A2[4][0], +A2[4][1], +A2[4][2], +A2[4][3], +b[4], +A2[4][5]], [+A2[5][0], +A2[5][1], +A2[5][2], +A2[5][3], +b[5], +A2[5][5]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +A2[0][3], +A2[0][4], +b[0]], [+A2[1][0], +A2[1][1], +A2[1][2], +A2[1][3], +A2[1][4], +b[1]], [+A2[2][0], +A2[2][1], +A2[2][2], +A2[2][3], +A2[2][4], +b[2]], [+A2[3][0], +A2[3][1], +A2[3][2], +A2[3][3], +A2[3][4], +b[3]], [+A2[4][0], +A2[4][1], +A2[4][2], +A2[4][3], +A2[4][4], +b[4]], [+A2[5][0], +A2[5][1], +A2[5][2], +A2[5][3], +A2[5][4], +b[5]]]), det(A2)];\n };\n }\n var CACHE = [\n robustLinearSolve0d,\n robustLinearSolve1d\n ];\n function proc(s0, s1, s2, s3, s4, s5, CACHE2, g) {\n return function dispatchLinearSolve(A2, b) {\n switch (A2.length) {\n case 0:\n return s0(A2, b);\n case 1:\n return s1(A2, b);\n case 2:\n return s2(A2, b);\n case 3:\n return s3(A2, b);\n case 4:\n return s4(A2, b);\n case 5:\n return s5(A2, b);\n }\n var s = CACHE2[A2.length];\n if (!s) s = CACHE2[A2.length] = g(A2.length);\n return s(A2, b);\n };\n }\n function generateDispatch() {\n while (CACHE.length < NUM_EXPAND) {\n CACHE.push(generateSolver(CACHE.length));\n }\n module2.exports = proc.apply(void 0, CACHE.concat([CACHE, generateSolver]));\n for (var i = 0; i < NUM_EXPAND; ++i) {\n module2.exports[i] = CACHE[i];\n }\n }\n generateDispatch();\n }\n ),\n /***/\n 3250: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n var robustScale = __webpack_require__2(3012);\n var robustSubtract = __webpack_require__2(8545);\n var NUM_EXPAND = 5;\n var EPSILON = 11102230246251565e-32;\n var ERRBOUND3 = (3 + 16 * EPSILON) * EPSILON;\n var ERRBOUND4 = (7 + 56 * EPSILON) * EPSILON;\n function orientation_3(sum, prod, scale, sub) {\n return function orientation3Exact2(m0, m1, m2) {\n var p = sum(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])));\n var n = sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0]));\n var d = sub(p, n);\n return d[d.length - 1];\n };\n }\n function orientation_4(sum, prod, scale, sub) {\n return function orientation4Exact2(m0, m1, m2, m3) {\n var p = sum(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m3[2]))), sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m3[2]))));\n var n = sum(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m3[2]))), sum(scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m2[2]))));\n var d = sub(p, n);\n return d[d.length - 1];\n };\n }\n function orientation_5(sum, prod, scale, sub) {\n return function orientation5Exact(m0, m1, m2, m3, m4) {\n var p = sum(sum(sum(scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m2[2]), sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), -m3[2]), scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m4[2]))), m1[3]), sum(scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m1[2]), sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), -m3[2]), scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m4[2]))), -m2[3]), scale(sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m4[2]))), m3[3]))), sum(scale(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m3[2]))), -m4[3]), sum(scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m1[2]), sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), -m3[2]), scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m4[2]))), m0[3]), scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m3[2]), scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), m4[2]))), -m1[3])))), sum(sum(scale(sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m4[2]))), m3[3]), sum(scale(sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m3[2]))), -m4[3]), scale(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m3[2]))), m0[3]))), sum(scale(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m3[2]))), -m1[3]), sum(scale(sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m3[2]))), m2[3]), scale(sum(scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m2[2]))), -m3[3])))));\n var n = sum(sum(sum(scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m2[2]), sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), -m3[2]), scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m4[2]))), m0[3]), scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m3[2]), scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), m4[2]))), -m2[3])), sum(scale(sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m4[2]))), m3[3]), scale(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m3[2]))), -m4[3]))), sum(sum(scale(sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m4[2]))), m0[3]), scale(sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m4[2]))), -m1[3])), sum(scale(sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m4[2]))), m2[3]), scale(sum(scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m2[2]))), -m4[3]))));\n var d = sub(p, n);\n return d[d.length - 1];\n };\n }\n function orientation(n) {\n var fn = n === 3 ? orientation_3 : n === 4 ? orientation_4 : orientation_5;\n return fn(robustSum, twoProduct, robustScale, robustSubtract);\n }\n var orientation3Exact = orientation(3);\n var orientation4Exact = orientation(4);\n var CACHED = [\n function orientation0() {\n return 0;\n },\n function orientation1() {\n return 0;\n },\n function orientation2(a, b) {\n return b[0] - a[0];\n },\n function orientation3(a, b, c) {\n var l = (a[1] - c[1]) * (b[0] - c[0]);\n var r = (a[0] - c[0]) * (b[1] - c[1]);\n var det = l - r;\n var s;\n if (l > 0) {\n if (r <= 0) {\n return det;\n } else {\n s = l + r;\n }\n } else if (l < 0) {\n if (r >= 0) {\n return det;\n } else {\n s = -(l + r);\n }\n } else {\n return det;\n }\n var tol = ERRBOUND3 * s;\n if (det >= tol || det <= -tol) {\n return det;\n }\n return orientation3Exact(a, b, c);\n },\n function orientation4(a, b, c, d) {\n var adx = a[0] - d[0];\n var bdx = b[0] - d[0];\n var cdx = c[0] - d[0];\n var ady = a[1] - d[1];\n var bdy = b[1] - d[1];\n var cdy = c[1] - d[1];\n var adz = a[2] - d[2];\n var bdz = b[2] - d[2];\n var cdz = c[2] - d[2];\n var bdxcdy = bdx * cdy;\n var cdxbdy = cdx * bdy;\n var cdxady = cdx * ady;\n var adxcdy = adx * cdy;\n var adxbdy = adx * bdy;\n var bdxady = bdx * ady;\n var det = adz * (bdxcdy - cdxbdy) + bdz * (cdxady - adxcdy) + cdz * (adxbdy - bdxady);\n var permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz);\n var tol = ERRBOUND4 * permanent;\n if (det > tol || -det > tol) {\n return det;\n }\n return orientation4Exact(a, b, c, d);\n }\n ];\n function slowOrient(args) {\n var proc2 = CACHED[args.length];\n if (!proc2) {\n proc2 = CACHED[args.length] = orientation(args.length);\n }\n return proc2.apply(void 0, args);\n }\n function proc(slow, o0, o1, o2, o3, o4, o5) {\n return function getOrientation(a0, a1, a2, a3, a4) {\n switch (arguments.length) {\n case 0:\n case 1:\n return 0;\n case 2:\n return o2(a0, a1);\n case 3:\n return o3(a0, a1, a2);\n case 4:\n return o4(a0, a1, a2, a3);\n case 5:\n return o5(a0, a1, a2, a3, a4);\n }\n var s = new Array(arguments.length);\n for (var i = 0; i < arguments.length; ++i) {\n s[i] = arguments[i];\n }\n return slow(s);\n };\n }\n function generateOrientationProc() {\n while (CACHED.length <= NUM_EXPAND) {\n CACHED.push(orientation(CACHED.length));\n }\n module2.exports = proc.apply(void 0, [slowOrient].concat(CACHED));\n for (var i = 0; i <= NUM_EXPAND; ++i) {\n module2.exports[i] = CACHED[i];\n }\n }\n generateOrientationProc();\n }\n ),\n /***/\n 5382: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var robustSum = __webpack_require__2(8210);\n var robustScale = __webpack_require__2(3012);\n module2.exports = robustProduct;\n function robustProduct(a, b) {\n if (a.length === 1) {\n return robustScale(b, a[0]);\n }\n if (b.length === 1) {\n return robustScale(a, b[0]);\n }\n if (a.length === 0 || b.length === 0) {\n return [0];\n }\n var r = [0];\n if (a.length < b.length) {\n for (var i = 0; i < a.length; ++i) {\n r = robustSum(r, robustScale(b, a[i]));\n }\n } else {\n for (var i = 0; i < b.length; ++i) {\n r = robustSum(r, robustScale(a, b[i]));\n }\n }\n return r;\n }\n }\n ),\n /***/\n 3012: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var twoSum = __webpack_require__2(9362);\n module2.exports = scaleLinearExpansion;\n function scaleLinearExpansion(e, scale) {\n var n = e.length;\n if (n === 1) {\n var ts = twoProduct(e[0], scale);\n if (ts[0]) {\n return ts;\n }\n return [ts[1]];\n }\n var g = new Array(2 * n);\n var q = [0.1, 0.1];\n var t = [0.1, 0.1];\n var count = 0;\n twoProduct(e[0], scale, q);\n if (q[0]) {\n g[count++] = q[0];\n }\n for (var i = 1; i < n; ++i) {\n twoProduct(e[i], scale, t);\n var pq = q[1];\n twoSum(pq, t[0], q);\n if (q[0]) {\n g[count++] = q[0];\n }\n var a = t[1];\n var b = q[1];\n var x = a + b;\n var bv = x - a;\n var y = b - bv;\n q[1] = x;\n if (y) {\n g[count++] = y;\n }\n }\n if (q[1]) {\n g[count++] = q[1];\n }\n if (count === 0) {\n g[count++] = 0;\n }\n g.length = count;\n return g;\n }\n }\n ),\n /***/\n 1125: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = segmentsIntersect;\n var orient = __webpack_require__2(3250)[3];\n function checkCollinear(a0, a1, b0, b1) {\n for (var d = 0; d < 2; ++d) {\n var x0 = a0[d];\n var y0 = a1[d];\n var l0 = Math.min(x0, y0);\n var h0 = Math.max(x0, y0);\n var x1 = b0[d];\n var y1 = b1[d];\n var l1 = Math.min(x1, y1);\n var h1 = Math.max(x1, y1);\n if (h1 < l0 || h0 < l1) {\n return false;\n }\n }\n return true;\n }\n function segmentsIntersect(a0, a1, b0, b1) {\n var x0 = orient(a0, b0, b1);\n var y0 = orient(a1, b0, b1);\n if (x0 > 0 && y0 > 0 || x0 < 0 && y0 < 0) {\n return false;\n }\n var x1 = orient(b0, a0, a1);\n var y1 = orient(b1, a0, a1);\n if (x1 > 0 && y1 > 0 || x1 < 0 && y1 < 0) {\n return false;\n }\n if (x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n return checkCollinear(a0, a1, b0, b1);\n }\n return true;\n }\n }\n ),\n /***/\n 8545: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = robustSubtract;\n function scalarScalar(a, b) {\n var x = a + b;\n var bv = x - a;\n var av = x - bv;\n var br = b - bv;\n var ar = a - av;\n var y = ar + br;\n if (y) {\n return [y, x];\n }\n return [x];\n }\n function robustSubtract(e, f) {\n var ne = e.length | 0;\n var nf = f.length | 0;\n if (ne === 1 && nf === 1) {\n return scalarScalar(e[0], -f[0]);\n }\n var n = ne + nf;\n var g = new Array(n);\n var count = 0;\n var eptr = 0;\n var fptr = 0;\n var abs = Math.abs;\n var ei = e[eptr];\n var ea = abs(ei);\n var fi = -f[fptr];\n var fa = abs(fi);\n var a, b;\n if (ea < fa) {\n b = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n b = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = -f[fptr];\n fa = abs(fi);\n }\n }\n if (eptr < ne && ea < fa || fptr >= nf) {\n a = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n a = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = -f[fptr];\n fa = abs(fi);\n }\n }\n var x = a + b;\n var bv = x - a;\n var y = b - bv;\n var q0 = y;\n var q1 = x;\n var _x, _bv, _av, _br, _ar;\n while (eptr < ne && fptr < nf) {\n if (ea < fa) {\n a = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n a = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = -f[fptr];\n fa = abs(fi);\n }\n }\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n }\n while (eptr < ne) {\n a = ei;\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n }\n }\n while (fptr < nf) {\n a = fi;\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n fptr += 1;\n if (fptr < nf) {\n fi = -f[fptr];\n }\n }\n if (q0) {\n g[count++] = q0;\n }\n if (q1) {\n g[count++] = q1;\n }\n if (!count) {\n g[count++] = 0;\n }\n g.length = count;\n return g;\n }\n }\n ),\n /***/\n 8210: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = linearExpansionSum;\n function scalarScalar(a, b) {\n var x = a + b;\n var bv = x - a;\n var av = x - bv;\n var br = b - bv;\n var ar = a - av;\n var y = ar + br;\n if (y) {\n return [y, x];\n }\n return [x];\n }\n function linearExpansionSum(e, f) {\n var ne = e.length | 0;\n var nf = f.length | 0;\n if (ne === 1 && nf === 1) {\n return scalarScalar(e[0], f[0]);\n }\n var n = ne + nf;\n var g = new Array(n);\n var count = 0;\n var eptr = 0;\n var fptr = 0;\n var abs = Math.abs;\n var ei = e[eptr];\n var ea = abs(ei);\n var fi = f[fptr];\n var fa = abs(fi);\n var a, b;\n if (ea < fa) {\n b = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n b = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = f[fptr];\n fa = abs(fi);\n }\n }\n if (eptr < ne && ea < fa || fptr >= nf) {\n a = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n a = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = f[fptr];\n fa = abs(fi);\n }\n }\n var x = a + b;\n var bv = x - a;\n var y = b - bv;\n var q0 = y;\n var q1 = x;\n var _x, _bv, _av, _br, _ar;\n while (eptr < ne && fptr < nf) {\n if (ea < fa) {\n a = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n a = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = f[fptr];\n fa = abs(fi);\n }\n }\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n }\n while (eptr < ne) {\n a = ei;\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n }\n }\n while (fptr < nf) {\n a = fi;\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n fptr += 1;\n if (fptr < nf) {\n fi = f[fptr];\n }\n }\n if (q0) {\n g[count++] = q0;\n }\n if (q1) {\n g[count++] = q1;\n }\n if (!count) {\n g[count++] = 0;\n }\n g.length = count;\n return g;\n }\n }\n ),\n /***/\n 9127: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = boundary;\n var bnd = __webpack_require__2(6204);\n var reduce = __webpack_require__2(5771);\n function boundary(cells) {\n return reduce(bnd(cells));\n }\n }\n ),\n /***/\n 7765: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = extractContour;\n var ndarray = __webpack_require__2(9618);\n var pool = __webpack_require__2(1888);\n var ndsort = __webpack_require__2(446);\n var contourAlgorithm = __webpack_require__2(1570);\n function getDimension(cells) {\n var numCells = cells.length;\n var d = 0;\n for (var i = 0; i < numCells; ++i) {\n d = Math.max(d, cells[i].length) | 0;\n }\n return d - 1;\n }\n function getSigns(values, level) {\n var numVerts = values.length;\n var vertexSigns = pool.mallocUint8(numVerts);\n for (var i = 0; i < numVerts; ++i) {\n vertexSigns[i] = values[i] < level | 0;\n }\n return vertexSigns;\n }\n function getEdges(cells, d) {\n var numCells = cells.length;\n var maxEdges = d * (d + 1) / 2 * numCells | 0;\n var edges = pool.mallocUint32(maxEdges * 2);\n var ePtr = 0;\n for (var i = 0; i < numCells; ++i) {\n var c = cells[i];\n var d = c.length;\n for (var j = 0; j < d; ++j) {\n for (var k = 0; k < j; ++k) {\n var a = c[k];\n var b = c[j];\n edges[ePtr++] = Math.min(a, b) | 0;\n edges[ePtr++] = Math.max(a, b) | 0;\n }\n }\n }\n var nedges = ePtr / 2 | 0;\n ndsort(ndarray(edges, [nedges, 2]));\n var ptr = 2;\n for (var i = 2; i < ePtr; i += 2) {\n if (edges[i - 2] === edges[i] && edges[i - 1] === edges[i + 1]) {\n continue;\n }\n edges[ptr++] = edges[i];\n edges[ptr++] = edges[i + 1];\n }\n return ndarray(edges, [ptr / 2 | 0, 2]);\n }\n function getCrossingWeights(edges, values, signs, level) {\n var edata = edges.data;\n var numEdges = edges.shape[0];\n var weights = pool.mallocDouble(numEdges);\n var ptr = 0;\n for (var i = 0; i < numEdges; ++i) {\n var a = edata[2 * i];\n var b = edata[2 * i + 1];\n if (signs[a] === signs[b]) {\n continue;\n }\n var va = values[a];\n var vb = values[b];\n edata[2 * ptr] = a;\n edata[2 * ptr + 1] = b;\n weights[ptr++] = (vb - level) / (vb - va);\n }\n edges.shape[0] = ptr;\n return ndarray(weights, [ptr]);\n }\n function getCascade(edges, numVerts) {\n var result = pool.mallocInt32(numVerts * 2);\n var numEdges = edges.shape[0];\n var edata = edges.data;\n result[0] = 0;\n var lastV = 0;\n for (var i = 0; i < numEdges; ++i) {\n var a = edata[2 * i];\n if (a !== lastV) {\n result[2 * lastV + 1] = i;\n while (++lastV < a) {\n result[2 * lastV] = i;\n result[2 * lastV + 1] = i;\n }\n result[2 * lastV] = i;\n }\n }\n result[2 * lastV + 1] = numEdges;\n while (++lastV < numVerts) {\n result[2 * lastV] = result[2 * lastV + 1] = numEdges;\n }\n return result;\n }\n function unpackEdges(edges) {\n var ne = edges.shape[0] | 0;\n var edata = edges.data;\n var result = new Array(ne);\n for (var i = 0; i < ne; ++i) {\n result[i] = [edata[2 * i], edata[2 * i + 1]];\n }\n return result;\n }\n function extractContour(cells, values, level, d) {\n level = level || 0;\n if (typeof d === \"undefined\") {\n d = getDimension(cells);\n }\n var numCells = cells.length;\n if (numCells === 0 || d < 1) {\n return {\n cells: [],\n vertexIds: [],\n vertexWeights: []\n };\n }\n var vertexSigns = getSigns(values, +level);\n var edges = getEdges(cells, d);\n var weights = getCrossingWeights(edges, values, vertexSigns, +level);\n var vcascade = getCascade(edges, values.length | 0);\n var faces = contourAlgorithm(d)(cells, edges.data, vcascade, vertexSigns);\n var uedges = unpackEdges(edges);\n var uweights = [].slice.call(weights.data, 0, weights.shape[0]);\n pool.free(vertexSigns);\n pool.free(edges.data);\n pool.free(weights.data);\n pool.free(vcascade);\n return {\n cells: faces,\n vertexIds: uedges,\n vertexWeights: uweights\n };\n }\n }\n ),\n /***/\n 1570: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = getPolygonizer;\n var allFns = [\n function cellPolygonizer_0() {\n function B2(C2, E2, i, j) {\n var a = Math.min(i, j) | 0, b = Math.max(i, j) | 0, l = C2[2 * a], h = C2[2 * a + 1];\n while (l < h) {\n var m = l + h >> 1, v = E2[2 * m + 1];\n if (v === b) {\n return m;\n }\n if (b < v) {\n h = m;\n } else {\n l = m + 1;\n }\n }\n return l;\n }\n function getContour0d(F, E2, C2, S) {\n var n = F.length, R = [];\n for (var i = 0; i < n; ++i) {\n var c = F[i], l = c.length;\n }\n return R;\n }\n return getContour0d;\n },\n function cellPolygonizer_1() {\n function B2(C2, E2, i, j) {\n var a = Math.min(i, j) | 0, b = Math.max(i, j) | 0, l = C2[2 * a], h = C2[2 * a + 1];\n while (l < h) {\n var m = l + h >> 1, v = E2[2 * m + 1];\n if (v === b) {\n return m;\n }\n if (b < v) {\n h = m;\n } else {\n l = m + 1;\n }\n }\n return l;\n }\n function getContour1d(F, E2, C2, S) {\n var n = F.length, R = [];\n for (var i = 0; i < n; ++i) {\n var c = F[i], l = c.length;\n if (l === 2) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1);\n if (M === 0 || M === 3) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0])]);\n break;\n case 3:\n break;\n }\n }\n }\n return R;\n }\n return getContour1d;\n },\n function cellPolygonizer_2() {\n function B2(C2, E2, i, j) {\n var a = Math.min(i, j) | 0, b = Math.max(i, j) | 0, l = C2[2 * a], h = C2[2 * a + 1];\n while (l < h) {\n var m = l + h >> 1, v = E2[2 * m + 1];\n if (v === b) {\n return m;\n }\n if (b < v) {\n h = m;\n } else {\n l = m + 1;\n }\n }\n return l;\n }\n function getContour2d(F, E2, C2, S) {\n var n = F.length, R = [];\n for (var i = 0; i < n; ++i) {\n var c = F[i], l = c.length;\n if (l === 3) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1) + (S[c[2]] << 2);\n if (M === 0 || M === 7) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[2]), B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[1], c[2])]);\n break;\n case 3:\n R.push([B2(C2, E2, c[0], c[2]), B2(C2, E2, c[1], c[2])]);\n break;\n case 4:\n R.push([B2(C2, E2, c[2], c[1]), B2(C2, E2, c[2], c[0])]);\n break;\n case 5:\n R.push([B2(C2, E2, c[2], c[1]), B2(C2, E2, c[0], c[1])]);\n break;\n case 6:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[2], c[0])]);\n break;\n case 7:\n break;\n }\n } else if (l === 2) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1);\n if (M === 0 || M === 3) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0])]);\n break;\n case 3:\n break;\n }\n }\n }\n return R;\n }\n return getContour2d;\n },\n function cellPolygonizer_3() {\n function B2(C2, E2, i, j) {\n var a = Math.min(i, j) | 0, b = Math.max(i, j) | 0, l = C2[2 * a], h = C2[2 * a + 1];\n while (l < h) {\n var m = l + h >> 1, v = E2[2 * m + 1];\n if (v === b) {\n return m;\n }\n if (b < v) {\n h = m;\n } else {\n l = m + 1;\n }\n }\n return l;\n }\n function getContour3d(F, E2, C2, S) {\n var n = F.length, R = [];\n for (var i = 0; i < n; ++i) {\n var c = F[i], l = c.length;\n if (l === 4) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1) + (S[c[2]] << 2) + (S[c[3]] << 3);\n if (M === 0 || M === 15) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[1]), B2(C2, E2, c[0], c[2]), B2(C2, E2, c[0], c[3])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[2]), B2(C2, E2, c[1], c[0]), B2(C2, E2, c[1], c[3])]);\n break;\n case 3:\n R.push([B2(C2, E2, c[1], c[2]), B2(C2, E2, c[0], c[2]), B2(C2, E2, c[0], c[3])], [B2(C2, E2, c[1], c[3]), B2(C2, E2, c[1], c[2]), B2(C2, E2, c[0], c[3])]);\n break;\n case 4:\n R.push([B2(C2, E2, c[2], c[0]), B2(C2, E2, c[2], c[1]), B2(C2, E2, c[2], c[3])]);\n break;\n case 5:\n R.push([B2(C2, E2, c[0], c[1]), B2(C2, E2, c[2], c[1]), B2(C2, E2, c[0], c[3])], [B2(C2, E2, c[2], c[1]), B2(C2, E2, c[2], c[3]), B2(C2, E2, c[0], c[3])]);\n break;\n case 6:\n R.push([B2(C2, E2, c[2], c[0]), B2(C2, E2, c[1], c[0]), B2(C2, E2, c[1], c[3])], [B2(C2, E2, c[2], c[3]), B2(C2, E2, c[2], c[0]), B2(C2, E2, c[1], c[3])]);\n break;\n case 7:\n R.push([B2(C2, E2, c[0], c[3]), B2(C2, E2, c[1], c[3]), B2(C2, E2, c[2], c[3])]);\n break;\n case 8:\n R.push([B2(C2, E2, c[3], c[1]), B2(C2, E2, c[3], c[0]), B2(C2, E2, c[3], c[2])]);\n break;\n case 9:\n R.push([B2(C2, E2, c[3], c[1]), B2(C2, E2, c[0], c[1]), B2(C2, E2, c[0], c[2])], [B2(C2, E2, c[3], c[2]), B2(C2, E2, c[3], c[1]), B2(C2, E2, c[0], c[2])]);\n break;\n case 10:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[3], c[0]), B2(C2, E2, c[1], c[2])], [B2(C2, E2, c[3], c[0]), B2(C2, E2, c[3], c[2]), B2(C2, E2, c[1], c[2])]);\n break;\n case 11:\n R.push([B2(C2, E2, c[1], c[2]), B2(C2, E2, c[0], c[2]), B2(C2, E2, c[3], c[2])]);\n break;\n case 12:\n R.push([B2(C2, E2, c[3], c[0]), B2(C2, E2, c[2], c[0]), B2(C2, E2, c[2], c[1])], [B2(C2, E2, c[3], c[1]), B2(C2, E2, c[3], c[0]), B2(C2, E2, c[2], c[1])]);\n break;\n case 13:\n R.push([B2(C2, E2, c[0], c[1]), B2(C2, E2, c[2], c[1]), B2(C2, E2, c[3], c[1])]);\n break;\n case 14:\n R.push([B2(C2, E2, c[2], c[0]), B2(C2, E2, c[1], c[0]), B2(C2, E2, c[3], c[0])]);\n break;\n case 15:\n break;\n }\n } else if (l === 3) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1) + (S[c[2]] << 2);\n if (M === 0 || M === 7) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[2]), B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[1], c[2])]);\n break;\n case 3:\n R.push([B2(C2, E2, c[0], c[2]), B2(C2, E2, c[1], c[2])]);\n break;\n case 4:\n R.push([B2(C2, E2, c[2], c[1]), B2(C2, E2, c[2], c[0])]);\n break;\n case 5:\n R.push([B2(C2, E2, c[2], c[1]), B2(C2, E2, c[0], c[1])]);\n break;\n case 6:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[2], c[0])]);\n break;\n case 7:\n break;\n }\n } else if (l === 2) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1);\n if (M === 0 || M === 3) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0])]);\n break;\n case 3:\n break;\n }\n }\n }\n return R;\n }\n return getContour3d;\n }\n ];\n function getPolygonizer(d) {\n return allFns[d]();\n }\n }\n ),\n /***/\n 6803: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n var __webpack_unused_export__;\n \"use restrict\";\n var bits = __webpack_require__2(8828), UnionFind = __webpack_require__2(1755);\n function dimension(cells) {\n var d = 0, max = Math.max;\n for (var i = 0, il = cells.length; i < il; ++i) {\n d = max(d, cells[i].length);\n }\n return d - 1;\n }\n __webpack_unused_export__ = dimension;\n function countVertices(cells) {\n var vc = -1, max = Math.max;\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i];\n for (var j = 0, jl = c.length; j < jl; ++j) {\n vc = max(vc, c[j]);\n }\n }\n return vc + 1;\n }\n __webpack_unused_export__ = countVertices;\n function cloneCells(cells) {\n var ncells = new Array(cells.length);\n for (var i = 0, il = cells.length; i < il; ++i) {\n ncells[i] = cells[i].slice(0);\n }\n return ncells;\n }\n __webpack_unused_export__ = cloneCells;\n function compareCells(a, b) {\n var n = a.length, t = a.length - b.length, min = Math.min;\n if (t) {\n return t;\n }\n switch (n) {\n case 0:\n return 0;\n case 1:\n return a[0] - b[0];\n case 2:\n var d = a[0] + a[1] - b[0] - b[1];\n if (d) {\n return d;\n }\n return min(a[0], a[1]) - min(b[0], b[1]);\n case 3:\n var l1 = a[0] + a[1], m1 = b[0] + b[1];\n d = l1 + a[2] - (m1 + b[2]);\n if (d) {\n return d;\n }\n var l0 = min(a[0], a[1]), m0 = min(b[0], b[1]), d = min(l0, a[2]) - min(m0, b[2]);\n if (d) {\n return d;\n }\n return min(l0 + a[2], l1) - min(m0 + b[2], m1);\n //TODO: Maybe optimize n=4 as well?\n default:\n var as = a.slice(0);\n as.sort();\n var bs = b.slice(0);\n bs.sort();\n for (var i = 0; i < n; ++i) {\n t = as[i] - bs[i];\n if (t) {\n return t;\n }\n }\n return 0;\n }\n }\n exports2.Fw = compareCells;\n function compareZipped(a, b) {\n return compareCells(a[0], b[0]);\n }\n function normalize(cells, attr) {\n if (attr) {\n var len = cells.length;\n var zipped = new Array(len);\n for (var i = 0; i < len; ++i) {\n zipped[i] = [cells[i], attr[i]];\n }\n zipped.sort(compareZipped);\n for (var i = 0; i < len; ++i) {\n cells[i] = zipped[i][0];\n attr[i] = zipped[i][1];\n }\n return cells;\n } else {\n cells.sort(compareCells);\n return cells;\n }\n }\n __webpack_unused_export__ = normalize;\n function unique(cells) {\n if (cells.length === 0) {\n return [];\n }\n var ptr = 1, len = cells.length;\n for (var i = 1; i < len; ++i) {\n var a = cells[i];\n if (compareCells(a, cells[i - 1])) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n cells[ptr++] = a;\n }\n }\n cells.length = ptr;\n return cells;\n }\n __webpack_unused_export__ = unique;\n function findCell(cells, c) {\n var lo = 0, hi = cells.length - 1, r = -1;\n while (lo <= hi) {\n var mid = lo + hi >> 1, s = compareCells(cells[mid], c);\n if (s <= 0) {\n if (s === 0) {\n r = mid;\n }\n lo = mid + 1;\n } else if (s > 0) {\n hi = mid - 1;\n }\n }\n return r;\n }\n __webpack_unused_export__ = findCell;\n function incidence(from_cells, to_cells) {\n var index = new Array(from_cells.length);\n for (var i = 0, il = index.length; i < il; ++i) {\n index[i] = [];\n }\n var b = [];\n for (var i = 0, n = to_cells.length; i < n; ++i) {\n var c = to_cells[i];\n var cl = c.length;\n for (var k = 1, kn = 1 << cl; k < kn; ++k) {\n b.length = bits.popCount(k);\n var l = 0;\n for (var j = 0; j < cl; ++j) {\n if (k & 1 << j) {\n b[l++] = c[j];\n }\n }\n var idx = findCell(from_cells, b);\n if (idx < 0) {\n continue;\n }\n while (true) {\n index[idx++].push(i);\n if (idx >= from_cells.length || compareCells(from_cells[idx], b) !== 0) {\n break;\n }\n }\n }\n }\n return index;\n }\n __webpack_unused_export__ = incidence;\n function dual(cells, vertex_count) {\n if (!vertex_count) {\n return incidence(unique(skeleton(cells, 0)), cells, 0);\n }\n var res = new Array(vertex_count);\n for (var i = 0; i < vertex_count; ++i) {\n res[i] = [];\n }\n for (var i = 0, len = cells.length; i < len; ++i) {\n var c = cells[i];\n for (var j = 0, cl = c.length; j < cl; ++j) {\n res[c[j]].push(i);\n }\n }\n return res;\n }\n __webpack_unused_export__ = dual;\n function explode(cells) {\n var result = [];\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i], cl = c.length | 0;\n for (var j = 1, jl = 1 << cl; j < jl; ++j) {\n var b = [];\n for (var k = 0; k < cl; ++k) {\n if (j >>> k & 1) {\n b.push(c[k]);\n }\n }\n result.push(b);\n }\n }\n return normalize(result);\n }\n __webpack_unused_export__ = explode;\n function skeleton(cells, n) {\n if (n < 0) {\n return [];\n }\n var result = [], k0 = (1 << n + 1) - 1;\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var k = k0; k < 1 << c.length; k = bits.nextCombination(k)) {\n var b = new Array(n + 1), l = 0;\n for (var j = 0; j < c.length; ++j) {\n if (k & 1 << j) {\n b[l++] = c[j];\n }\n }\n result.push(b);\n }\n }\n return normalize(result);\n }\n __webpack_unused_export__ = skeleton;\n function boundary(cells) {\n var res = [];\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i];\n for (var j = 0, cl = c.length; j < cl; ++j) {\n var b = new Array(c.length - 1);\n for (var k = 0, l = 0; k < cl; ++k) {\n if (k !== j) {\n b[l++] = c[k];\n }\n }\n res.push(b);\n }\n }\n return normalize(res);\n }\n __webpack_unused_export__ = boundary;\n function connectedComponents_dense(cells, vertex_count) {\n var labels = new UnionFind(vertex_count);\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n for (var k = j + 1; k < c.length; ++k) {\n labels.link(c[j], c[k]);\n }\n }\n }\n var components = [], component_labels = labels.ranks;\n for (var i = 0; i < component_labels.length; ++i) {\n component_labels[i] = -1;\n }\n for (var i = 0; i < cells.length; ++i) {\n var l = labels.find(cells[i][0]);\n if (component_labels[l] < 0) {\n component_labels[l] = components.length;\n components.push([cells[i].slice(0)]);\n } else {\n components[component_labels[l]].push(cells[i].slice(0));\n }\n }\n return components;\n }\n function connectedComponents_sparse(cells) {\n var vertices = unique(normalize(skeleton(cells, 0))), labels = new UnionFind(vertices.length);\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n var vj = findCell(vertices, [c[j]]);\n for (var k = j + 1; k < c.length; ++k) {\n labels.link(vj, findCell(vertices, [c[k]]));\n }\n }\n }\n var components = [], component_labels = labels.ranks;\n for (var i = 0; i < component_labels.length; ++i) {\n component_labels[i] = -1;\n }\n for (var i = 0; i < cells.length; ++i) {\n var l = labels.find(findCell(vertices, [cells[i][0]]));\n if (component_labels[l] < 0) {\n component_labels[l] = components.length;\n components.push([cells[i].slice(0)]);\n } else {\n components[component_labels[l]].push(cells[i].slice(0));\n }\n }\n return components;\n }\n function connectedComponents(cells, vertex_count) {\n if (vertex_count) {\n return connectedComponents_dense(cells, vertex_count);\n }\n return connectedComponents_sparse(cells);\n }\n __webpack_unused_export__ = connectedComponents;\n }\n ),\n /***/\n 3105: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n \"use restrict\";\n var INT_BITS = 32;\n exports2.INT_BITS = INT_BITS;\n exports2.INT_MAX = 2147483647;\n exports2.INT_MIN = -1 << INT_BITS - 1;\n exports2.sign = function(v) {\n return (v > 0) - (v < 0);\n };\n exports2.abs = function(v) {\n var mask = v >> INT_BITS - 1;\n return (v ^ mask) - mask;\n };\n exports2.min = function(x, y) {\n return y ^ (x ^ y) & -(x < y);\n };\n exports2.max = function(x, y) {\n return x ^ (x ^ y) & -(x < y);\n };\n exports2.isPow2 = function(v) {\n return !(v & v - 1) && !!v;\n };\n exports2.log2 = function(v) {\n var r, shift;\n r = (v > 65535) << 4;\n v >>>= r;\n shift = (v > 255) << 3;\n v >>>= shift;\n r |= shift;\n shift = (v > 15) << 2;\n v >>>= shift;\n r |= shift;\n shift = (v > 3) << 1;\n v >>>= shift;\n r |= shift;\n return r | v >> 1;\n };\n exports2.log10 = function(v) {\n return v >= 1e9 ? 9 : v >= 1e8 ? 8 : v >= 1e7 ? 7 : v >= 1e6 ? 6 : v >= 1e5 ? 5 : v >= 1e4 ? 4 : v >= 1e3 ? 3 : v >= 100 ? 2 : v >= 10 ? 1 : 0;\n };\n exports2.popCount = function(v) {\n v = v - (v >>> 1 & 1431655765);\n v = (v & 858993459) + (v >>> 2 & 858993459);\n return (v + (v >>> 4) & 252645135) * 16843009 >>> 24;\n };\n function countTrailingZeros(v) {\n var c = 32;\n v &= -v;\n if (v) c--;\n if (v & 65535) c -= 16;\n if (v & 16711935) c -= 8;\n if (v & 252645135) c -= 4;\n if (v & 858993459) c -= 2;\n if (v & 1431655765) c -= 1;\n return c;\n }\n exports2.countTrailingZeros = countTrailingZeros;\n exports2.nextPow2 = function(v) {\n v += v === 0;\n --v;\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v + 1;\n };\n exports2.prevPow2 = function(v) {\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v - (v >>> 1);\n };\n exports2.parity = function(v) {\n v ^= v >>> 16;\n v ^= v >>> 8;\n v ^= v >>> 4;\n v &= 15;\n return 27030 >>> v & 1;\n };\n var REVERSE_TABLE = new Array(256);\n (function(tab) {\n for (var i = 0; i < 256; ++i) {\n var v = i, r = i, s = 7;\n for (v >>>= 1; v; v >>>= 1) {\n r <<= 1;\n r |= v & 1;\n --s;\n }\n tab[i] = r << s & 255;\n }\n })(REVERSE_TABLE);\n exports2.reverse = function(v) {\n return REVERSE_TABLE[v & 255] << 24 | REVERSE_TABLE[v >>> 8 & 255] << 16 | REVERSE_TABLE[v >>> 16 & 255] << 8 | REVERSE_TABLE[v >>> 24 & 255];\n };\n exports2.interleave2 = function(x, y) {\n x &= 65535;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y &= 65535;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n };\n exports2.deinterleave2 = function(v, n) {\n v = v >>> n & 1431655765;\n v = (v | v >>> 1) & 858993459;\n v = (v | v >>> 2) & 252645135;\n v = (v | v >>> 4) & 16711935;\n v = (v | v >>> 16) & 65535;\n return v << 16 >> 16;\n };\n exports2.interleave3 = function(x, y, z) {\n x &= 1023;\n x = (x | x << 16) & 4278190335;\n x = (x | x << 8) & 251719695;\n x = (x | x << 4) & 3272356035;\n x = (x | x << 2) & 1227133513;\n y &= 1023;\n y = (y | y << 16) & 4278190335;\n y = (y | y << 8) & 251719695;\n y = (y | y << 4) & 3272356035;\n y = (y | y << 2) & 1227133513;\n x |= y << 1;\n z &= 1023;\n z = (z | z << 16) & 4278190335;\n z = (z | z << 8) & 251719695;\n z = (z | z << 4) & 3272356035;\n z = (z | z << 2) & 1227133513;\n return x | z << 2;\n };\n exports2.deinterleave3 = function(v, n) {\n v = v >>> n & 1227133513;\n v = (v | v >>> 2) & 3272356035;\n v = (v | v >>> 4) & 251719695;\n v = (v | v >>> 8) & 4278190335;\n v = (v | v >>> 16) & 1023;\n return v << 22 >> 22;\n };\n exports2.nextCombination = function(v) {\n var t = v | v - 1;\n return t + 1 | (~t & -~t) - 1 >>> countTrailingZeros(v) + 1;\n };\n }\n ),\n /***/\n 2014: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n \"use restrict\";\n var bits = __webpack_require__2(3105), UnionFind = __webpack_require__2(4623);\n function dimension(cells) {\n var d = 0, max = Math.max;\n for (var i = 0, il = cells.length; i < il; ++i) {\n d = max(d, cells[i].length);\n }\n return d - 1;\n }\n exports2.dimension = dimension;\n function countVertices(cells) {\n var vc = -1, max = Math.max;\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i];\n for (var j = 0, jl = c.length; j < jl; ++j) {\n vc = max(vc, c[j]);\n }\n }\n return vc + 1;\n }\n exports2.countVertices = countVertices;\n function cloneCells(cells) {\n var ncells = new Array(cells.length);\n for (var i = 0, il = cells.length; i < il; ++i) {\n ncells[i] = cells[i].slice(0);\n }\n return ncells;\n }\n exports2.cloneCells = cloneCells;\n function compareCells(a, b) {\n var n = a.length, t = a.length - b.length, min = Math.min;\n if (t) {\n return t;\n }\n switch (n) {\n case 0:\n return 0;\n case 1:\n return a[0] - b[0];\n case 2:\n var d = a[0] + a[1] - b[0] - b[1];\n if (d) {\n return d;\n }\n return min(a[0], a[1]) - min(b[0], b[1]);\n case 3:\n var l1 = a[0] + a[1], m1 = b[0] + b[1];\n d = l1 + a[2] - (m1 + b[2]);\n if (d) {\n return d;\n }\n var l0 = min(a[0], a[1]), m0 = min(b[0], b[1]), d = min(l0, a[2]) - min(m0, b[2]);\n if (d) {\n return d;\n }\n return min(l0 + a[2], l1) - min(m0 + b[2], m1);\n //TODO: Maybe optimize n=4 as well?\n default:\n var as = a.slice(0);\n as.sort();\n var bs = b.slice(0);\n bs.sort();\n for (var i = 0; i < n; ++i) {\n t = as[i] - bs[i];\n if (t) {\n return t;\n }\n }\n return 0;\n }\n }\n exports2.compareCells = compareCells;\n function compareZipped(a, b) {\n return compareCells(a[0], b[0]);\n }\n function normalize(cells, attr) {\n if (attr) {\n var len = cells.length;\n var zipped = new Array(len);\n for (var i = 0; i < len; ++i) {\n zipped[i] = [cells[i], attr[i]];\n }\n zipped.sort(compareZipped);\n for (var i = 0; i < len; ++i) {\n cells[i] = zipped[i][0];\n attr[i] = zipped[i][1];\n }\n return cells;\n } else {\n cells.sort(compareCells);\n return cells;\n }\n }\n exports2.normalize = normalize;\n function unique(cells) {\n if (cells.length === 0) {\n return [];\n }\n var ptr = 1, len = cells.length;\n for (var i = 1; i < len; ++i) {\n var a = cells[i];\n if (compareCells(a, cells[i - 1])) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n cells[ptr++] = a;\n }\n }\n cells.length = ptr;\n return cells;\n }\n exports2.unique = unique;\n function findCell(cells, c) {\n var lo = 0, hi = cells.length - 1, r = -1;\n while (lo <= hi) {\n var mid = lo + hi >> 1, s = compareCells(cells[mid], c);\n if (s <= 0) {\n if (s === 0) {\n r = mid;\n }\n lo = mid + 1;\n } else if (s > 0) {\n hi = mid - 1;\n }\n }\n return r;\n }\n exports2.findCell = findCell;\n function incidence(from_cells, to_cells) {\n var index = new Array(from_cells.length);\n for (var i = 0, il = index.length; i < il; ++i) {\n index[i] = [];\n }\n var b = [];\n for (var i = 0, n = to_cells.length; i < n; ++i) {\n var c = to_cells[i];\n var cl = c.length;\n for (var k = 1, kn = 1 << cl; k < kn; ++k) {\n b.length = bits.popCount(k);\n var l = 0;\n for (var j = 0; j < cl; ++j) {\n if (k & 1 << j) {\n b[l++] = c[j];\n }\n }\n var idx = findCell(from_cells, b);\n if (idx < 0) {\n continue;\n }\n while (true) {\n index[idx++].push(i);\n if (idx >= from_cells.length || compareCells(from_cells[idx], b) !== 0) {\n break;\n }\n }\n }\n }\n return index;\n }\n exports2.incidence = incidence;\n function dual(cells, vertex_count) {\n if (!vertex_count) {\n return incidence(unique(skeleton(cells, 0)), cells, 0);\n }\n var res = new Array(vertex_count);\n for (var i = 0; i < vertex_count; ++i) {\n res[i] = [];\n }\n for (var i = 0, len = cells.length; i < len; ++i) {\n var c = cells[i];\n for (var j = 0, cl = c.length; j < cl; ++j) {\n res[c[j]].push(i);\n }\n }\n return res;\n }\n exports2.dual = dual;\n function explode(cells) {\n var result = [];\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i], cl = c.length | 0;\n for (var j = 1, jl = 1 << cl; j < jl; ++j) {\n var b = [];\n for (var k = 0; k < cl; ++k) {\n if (j >>> k & 1) {\n b.push(c[k]);\n }\n }\n result.push(b);\n }\n }\n return normalize(result);\n }\n exports2.explode = explode;\n function skeleton(cells, n) {\n if (n < 0) {\n return [];\n }\n var result = [], k0 = (1 << n + 1) - 1;\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var k = k0; k < 1 << c.length; k = bits.nextCombination(k)) {\n var b = new Array(n + 1), l = 0;\n for (var j = 0; j < c.length; ++j) {\n if (k & 1 << j) {\n b[l++] = c[j];\n }\n }\n result.push(b);\n }\n }\n return normalize(result);\n }\n exports2.skeleton = skeleton;\n function boundary(cells) {\n var res = [];\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i];\n for (var j = 0, cl = c.length; j < cl; ++j) {\n var b = new Array(c.length - 1);\n for (var k = 0, l = 0; k < cl; ++k) {\n if (k !== j) {\n b[l++] = c[k];\n }\n }\n res.push(b);\n }\n }\n return normalize(res);\n }\n exports2.boundary = boundary;\n function connectedComponents_dense(cells, vertex_count) {\n var labels = new UnionFind(vertex_count);\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n for (var k = j + 1; k < c.length; ++k) {\n labels.link(c[j], c[k]);\n }\n }\n }\n var components = [], component_labels = labels.ranks;\n for (var i = 0; i < component_labels.length; ++i) {\n component_labels[i] = -1;\n }\n for (var i = 0; i < cells.length; ++i) {\n var l = labels.find(cells[i][0]);\n if (component_labels[l] < 0) {\n component_labels[l] = components.length;\n components.push([cells[i].slice(0)]);\n } else {\n components[component_labels[l]].push(cells[i].slice(0));\n }\n }\n return components;\n }\n function connectedComponents_sparse(cells) {\n var vertices = unique(normalize(skeleton(cells, 0))), labels = new UnionFind(vertices.length);\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n var vj = findCell(vertices, [c[j]]);\n for (var k = j + 1; k < c.length; ++k) {\n labels.link(vj, findCell(vertices, [c[k]]));\n }\n }\n }\n var components = [], component_labels = labels.ranks;\n for (var i = 0; i < component_labels.length; ++i) {\n component_labels[i] = -1;\n }\n for (var i = 0; i < cells.length; ++i) {\n var l = labels.find(findCell(vertices, [cells[i][0]]));\n if (component_labels[l] < 0) {\n component_labels[l] = components.length;\n components.push([cells[i].slice(0)]);\n } else {\n components[component_labels[l]].push(cells[i].slice(0));\n }\n }\n return components;\n }\n function connectedComponents(cells, vertex_count) {\n if (vertex_count) {\n return connectedComponents_dense(cells, vertex_count);\n }\n return connectedComponents_sparse(cells);\n }\n exports2.connectedComponents = connectedComponents;\n }\n ),\n /***/\n 4623: (\n /***/\n function(module2) {\n \"use strict\";\n \"use restrict\";\n module2.exports = UnionFind;\n function UnionFind(count) {\n this.roots = new Array(count);\n this.ranks = new Array(count);\n for (var i = 0; i < count; ++i) {\n this.roots[i] = i;\n this.ranks[i] = 0;\n }\n }\n UnionFind.prototype.length = function() {\n return this.roots.length;\n };\n UnionFind.prototype.makeSet = function() {\n var n = this.roots.length;\n this.roots.push(n);\n this.ranks.push(0);\n return n;\n };\n UnionFind.prototype.find = function(x) {\n var roots = this.roots;\n while (roots[x] !== x) {\n var y = roots[x];\n roots[x] = roots[y];\n x = y;\n }\n return x;\n };\n UnionFind.prototype.link = function(x, y) {\n var xr = this.find(x), yr = this.find(y);\n if (xr === yr) {\n return;\n }\n var ranks = this.ranks, roots = this.roots, xd = ranks[xr], yd = ranks[yr];\n if (xd < yd) {\n roots[xr] = yr;\n } else if (yd < xd) {\n roots[yr] = xr;\n } else {\n roots[yr] = xr;\n ++ranks[xr];\n }\n };\n }\n ),\n /***/\n 5878: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = simplifyPolygon;\n var orient = __webpack_require__2(3250);\n var sc = __webpack_require__2(2014);\n function errorWeight(base, a, b) {\n var area = Math.abs(orient(base, a, b));\n var perim = Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2));\n return area / perim;\n }\n function simplifyPolygon(cells, positions, minArea) {\n var n = positions.length;\n var nc = cells.length;\n var inv = new Array(n);\n var outv = new Array(n);\n var weights = new Array(n);\n var dead = new Array(n);\n for (var i = 0; i < n; ++i) {\n inv[i] = outv[i] = -1;\n weights[i] = Infinity;\n dead[i] = false;\n }\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n if (c.length !== 2) {\n throw new Error(\"Input must be a graph\");\n }\n var s = c[1];\n var t = c[0];\n if (outv[t] !== -1) {\n outv[t] = -2;\n } else {\n outv[t] = s;\n }\n if (inv[s] !== -1) {\n inv[s] = -2;\n } else {\n inv[s] = t;\n }\n }\n function computeWeight(i2) {\n if (dead[i2]) {\n return Infinity;\n }\n var s2 = inv[i2];\n var t4 = outv[i2];\n if (s2 < 0 || t4 < 0) {\n return Infinity;\n } else {\n return errorWeight(positions[i2], positions[s2], positions[t4]);\n }\n }\n function heapSwap(i2, j) {\n var a = heap[i2];\n var b = heap[j];\n heap[i2] = b;\n heap[j] = a;\n index[a] = j;\n index[b] = i2;\n }\n function heapWeight(i2) {\n return weights[heap[i2]];\n }\n function heapParent(i2) {\n if (i2 & 1) {\n return i2 - 1 >> 1;\n }\n return (i2 >> 1) - 1;\n }\n function heapDown(i2) {\n var w2 = heapWeight(i2);\n while (true) {\n var tw = w2;\n var left = 2 * i2 + 1;\n var right = 2 * (i2 + 1);\n var next = i2;\n if (left < heapCount) {\n var lw = heapWeight(left);\n if (lw < tw) {\n next = left;\n tw = lw;\n }\n }\n if (right < heapCount) {\n var rw = heapWeight(right);\n if (rw < tw) {\n next = right;\n }\n }\n if (next === i2) {\n return i2;\n }\n heapSwap(i2, next);\n i2 = next;\n }\n }\n function heapUp(i2) {\n var w2 = heapWeight(i2);\n while (i2 > 0) {\n var parent = heapParent(i2);\n if (parent >= 0) {\n var pw = heapWeight(parent);\n if (w2 < pw) {\n heapSwap(i2, parent);\n i2 = parent;\n continue;\n }\n }\n return i2;\n }\n }\n function heapPop() {\n if (heapCount > 0) {\n var head = heap[0];\n heapSwap(0, heapCount - 1);\n heapCount -= 1;\n heapDown(0);\n return head;\n }\n return -1;\n }\n function heapUpdate(i2, w2) {\n var a = heap[i2];\n if (weights[a] === w2) {\n return i2;\n }\n weights[a] = -Infinity;\n heapUp(i2);\n heapPop();\n weights[a] = w2;\n heapCount += 1;\n return heapUp(heapCount - 1);\n }\n function kill(i2) {\n if (dead[i2]) {\n return;\n }\n dead[i2] = true;\n var s2 = inv[i2];\n var t4 = outv[i2];\n if (inv[t4] >= 0) {\n inv[t4] = s2;\n }\n if (outv[s2] >= 0) {\n outv[s2] = t4;\n }\n if (index[s2] >= 0) {\n heapUpdate(index[s2], computeWeight(s2));\n }\n if (index[t4] >= 0) {\n heapUpdate(index[t4], computeWeight(t4));\n }\n }\n var heap = [];\n var index = new Array(n);\n for (var i = 0; i < n; ++i) {\n var w = weights[i] = computeWeight(i);\n if (w < Infinity) {\n index[i] = heap.length;\n heap.push(i);\n } else {\n index[i] = -1;\n }\n }\n var heapCount = heap.length;\n for (var i = heapCount >> 1; i >= 0; --i) {\n heapDown(i);\n }\n while (true) {\n var hmin = heapPop();\n if (hmin < 0 || weights[hmin] > minArea) {\n break;\n }\n kill(hmin);\n }\n var npositions = [];\n for (var i = 0; i < n; ++i) {\n if (!dead[i]) {\n index[i] = npositions.length;\n npositions.push(positions[i].slice());\n }\n }\n var nv = npositions.length;\n function tortoiseHare(seq, start) {\n if (seq[start] < 0) {\n return start;\n }\n var t4 = start;\n var h = start;\n do {\n var nh = seq[h];\n if (!dead[h] || nh < 0 || nh === h) {\n break;\n }\n h = nh;\n nh = seq[h];\n if (!dead[h] || nh < 0 || nh === h) {\n break;\n }\n h = nh;\n t4 = seq[t4];\n } while (t4 !== h);\n for (var v = start; v !== h; v = seq[v]) {\n seq[v] = h;\n }\n return h;\n }\n var ncells = [];\n cells.forEach(function(c2) {\n var tin = tortoiseHare(inv, c2[0]);\n var tout = tortoiseHare(outv, c2[1]);\n if (tin >= 0 && tout >= 0 && tin !== tout) {\n var cin = index[tin];\n var cout = index[tout];\n if (cin !== cout) {\n ncells.push([cin, cout]);\n }\n }\n });\n sc.unique(sc.normalize(ncells));\n return {\n positions: npositions,\n edges: ncells\n };\n }\n }\n ),\n /***/\n 1303: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = orderSegments;\n var orient = __webpack_require__2(3250);\n function horizontalOrder(a, b) {\n var bl, br;\n if (b[0][0] < b[1][0]) {\n bl = b[0];\n br = b[1];\n } else if (b[0][0] > b[1][0]) {\n bl = b[1];\n br = b[0];\n } else {\n var alo = Math.min(a[0][1], a[1][1]);\n var ahi = Math.max(a[0][1], a[1][1]);\n var blo = Math.min(b[0][1], b[1][1]);\n var bhi = Math.max(b[0][1], b[1][1]);\n if (ahi < blo) {\n return ahi - blo;\n }\n if (alo > bhi) {\n return alo - bhi;\n }\n return ahi - bhi;\n }\n var al, ar;\n if (a[0][1] < a[1][1]) {\n al = a[0];\n ar = a[1];\n } else {\n al = a[1];\n ar = a[0];\n }\n var d = orient(br, bl, al);\n if (d) {\n return d;\n }\n d = orient(br, bl, ar);\n if (d) {\n return d;\n }\n return ar - br;\n }\n function orderSegments(b, a) {\n var al, ar;\n if (a[0][0] < a[1][0]) {\n al = a[0];\n ar = a[1];\n } else if (a[0][0] > a[1][0]) {\n al = a[1];\n ar = a[0];\n } else {\n return horizontalOrder(a, b);\n }\n var bl, br;\n if (b[0][0] < b[1][0]) {\n bl = b[0];\n br = b[1];\n } else if (b[0][0] > b[1][0]) {\n bl = b[1];\n br = b[0];\n } else {\n return -horizontalOrder(b, a);\n }\n var d1 = orient(al, ar, br);\n var d2 = orient(al, ar, bl);\n if (d1 < 0) {\n if (d2 <= 0) {\n return d1;\n }\n } else if (d1 > 0) {\n if (d2 >= 0) {\n return d1;\n }\n } else if (d2) {\n return d2;\n }\n d1 = orient(br, bl, ar);\n d2 = orient(br, bl, al);\n if (d1 < 0) {\n if (d2 <= 0) {\n return d1;\n }\n } else if (d1 > 0) {\n if (d2 >= 0) {\n return d1;\n }\n } else if (d2) {\n return d2;\n }\n return ar[0] - br[0];\n }\n }\n ),\n /***/\n 4209: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createSlabDecomposition;\n var bounds = __webpack_require__2(2478);\n var createRBTree = __webpack_require__2(3840);\n var orient = __webpack_require__2(3250);\n var orderSegments = __webpack_require__2(1303);\n function SlabDecomposition(slabs, coordinates, horizontal) {\n this.slabs = slabs;\n this.coordinates = coordinates;\n this.horizontal = horizontal;\n }\n var proto = SlabDecomposition.prototype;\n function compareHorizontal(e, y) {\n return e.y - y;\n }\n function searchBucket(root, p) {\n var lastNode = null;\n while (root) {\n var seg = root.key;\n var l, r;\n if (seg[0][0] < seg[1][0]) {\n l = seg[0];\n r = seg[1];\n } else {\n l = seg[1];\n r = seg[0];\n }\n var o = orient(l, r, p);\n if (o < 0) {\n root = root.left;\n } else if (o > 0) {\n if (p[0] !== seg[1][0]) {\n lastNode = root;\n root = root.right;\n } else {\n var val = searchBucket(root.right, p);\n if (val) {\n return val;\n }\n root = root.left;\n }\n } else {\n if (p[0] !== seg[1][0]) {\n return root;\n } else {\n var val = searchBucket(root.right, p);\n if (val) {\n return val;\n }\n root = root.left;\n }\n }\n }\n return lastNode;\n }\n proto.castUp = function(p) {\n var bucket = bounds.le(this.coordinates, p[0]);\n if (bucket < 0) {\n return -1;\n }\n var root = this.slabs[bucket];\n var hitNode = searchBucket(this.slabs[bucket], p);\n var lastHit = -1;\n if (hitNode) {\n lastHit = hitNode.value;\n }\n if (this.coordinates[bucket] === p[0]) {\n var lastSegment = null;\n if (hitNode) {\n lastSegment = hitNode.key;\n }\n if (bucket > 0) {\n var otherHitNode = searchBucket(this.slabs[bucket - 1], p);\n if (otherHitNode) {\n if (lastSegment) {\n if (orderSegments(otherHitNode.key, lastSegment) > 0) {\n lastSegment = otherHitNode.key;\n lastHit = otherHitNode.value;\n }\n } else {\n lastHit = otherHitNode.value;\n lastSegment = otherHitNode.key;\n }\n }\n }\n var horiz = this.horizontal[bucket];\n if (horiz.length > 0) {\n var hbucket = bounds.ge(horiz, p[1], compareHorizontal);\n if (hbucket < horiz.length) {\n var e = horiz[hbucket];\n if (p[1] === e.y) {\n if (e.closed) {\n return e.index;\n } else {\n while (hbucket < horiz.length - 1 && horiz[hbucket + 1].y === p[1]) {\n hbucket = hbucket + 1;\n e = horiz[hbucket];\n if (e.closed) {\n return e.index;\n }\n }\n if (e.y === p[1] && !e.start) {\n hbucket = hbucket + 1;\n if (hbucket >= horiz.length) {\n return lastHit;\n }\n e = horiz[hbucket];\n }\n }\n }\n if (e.start) {\n if (lastSegment) {\n var o = orient(lastSegment[0], lastSegment[1], [p[0], e.y]);\n if (lastSegment[0][0] > lastSegment[1][0]) {\n o = -o;\n }\n if (o > 0) {\n lastHit = e.index;\n }\n } else {\n lastHit = e.index;\n }\n } else if (e.y !== p[1]) {\n lastHit = e.index;\n }\n }\n }\n }\n return lastHit;\n };\n function IntervalSegment(y, index, start, closed) {\n this.y = y;\n this.index = index;\n this.start = start;\n this.closed = closed;\n }\n function Event(x, segment, create, index) {\n this.x = x;\n this.segment = segment;\n this.create = create;\n this.index = index;\n }\n function createSlabDecomposition(segments) {\n var numSegments = segments.length;\n var numEvents = 2 * numSegments;\n var events = new Array(numEvents);\n for (var i = 0; i < numSegments; ++i) {\n var s = segments[i];\n var f = s[0][0] < s[1][0];\n events[2 * i] = new Event(s[0][0], s, f, i);\n events[2 * i + 1] = new Event(s[1][0], s, !f, i);\n }\n events.sort(function(a, b) {\n var d = a.x - b.x;\n if (d) {\n return d;\n }\n d = a.create - b.create;\n if (d) {\n return d;\n }\n return Math.min(a.segment[0][1], a.segment[1][1]) - Math.min(b.segment[0][1], b.segment[1][1]);\n });\n var tree = createRBTree(orderSegments);\n var slabs = [];\n var lines = [];\n var horizontal = [];\n var lastX = -Infinity;\n for (var i = 0; i < numEvents; ) {\n var x = events[i].x;\n var horiz = [];\n while (i < numEvents) {\n var e = events[i];\n if (e.x !== x) {\n break;\n }\n i += 1;\n if (e.segment[0][0] === e.x && e.segment[1][0] === e.x) {\n if (e.create) {\n if (e.segment[0][1] < e.segment[1][1]) {\n horiz.push(new IntervalSegment(\n e.segment[0][1],\n e.index,\n true,\n true\n ));\n horiz.push(new IntervalSegment(\n e.segment[1][1],\n e.index,\n false,\n false\n ));\n } else {\n horiz.push(new IntervalSegment(\n e.segment[1][1],\n e.index,\n true,\n false\n ));\n horiz.push(new IntervalSegment(\n e.segment[0][1],\n e.index,\n false,\n true\n ));\n }\n }\n } else {\n if (e.create) {\n tree = tree.insert(e.segment, e.index);\n } else {\n tree = tree.remove(e.segment);\n }\n }\n }\n slabs.push(tree.root);\n lines.push(x);\n horizontal.push(horiz);\n }\n return new SlabDecomposition(slabs, lines, horizontal);\n }\n }\n ),\n /***/\n 5202: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var robustDot = __webpack_require__2(1944);\n var robustSum = __webpack_require__2(8210);\n module2.exports = splitPolygon;\n module2.exports.positive = positive;\n module2.exports.negative = negative;\n function planeT(p, plane) {\n var r = robustSum(robustDot(p, plane), [plane[plane.length - 1]]);\n return r[r.length - 1];\n }\n function lerpW(a, wa, b, wb) {\n var d = wb - wa;\n var t = -wa / d;\n if (t < 0) {\n t = 0;\n } else if (t > 1) {\n t = 1;\n }\n var ti = 1 - t;\n var n = a.length;\n var r = new Array(n);\n for (var i = 0; i < n; ++i) {\n r[i] = t * a[i] + ti * b[i];\n }\n return r;\n }\n function splitPolygon(points, plane) {\n var pos = [];\n var neg = [];\n var a = planeT(points[points.length - 1], plane);\n for (var s = points[points.length - 1], t = points[0], i = 0; i < points.length; ++i, s = t) {\n t = points[i];\n var b = planeT(t, plane);\n if (a < 0 && b > 0 || a > 0 && b < 0) {\n var p = lerpW(s, b, t, a);\n pos.push(p);\n neg.push(p.slice());\n }\n if (b < 0) {\n neg.push(t.slice());\n } else if (b > 0) {\n pos.push(t.slice());\n } else {\n pos.push(t.slice());\n neg.push(t.slice());\n }\n a = b;\n }\n return { positive: pos, negative: neg };\n }\n function positive(points, plane) {\n var pos = [];\n var a = planeT(points[points.length - 1], plane);\n for (var s = points[points.length - 1], t = points[0], i = 0; i < points.length; ++i, s = t) {\n t = points[i];\n var b = planeT(t, plane);\n if (a < 0 && b > 0 || a > 0 && b < 0) {\n pos.push(lerpW(s, b, t, a));\n }\n if (b >= 0) {\n pos.push(t.slice());\n }\n a = b;\n }\n return pos;\n }\n function negative(points, plane) {\n var neg = [];\n var a = planeT(points[points.length - 1], plane);\n for (var s = points[points.length - 1], t = points[0], i = 0; i < points.length; ++i, s = t) {\n t = points[i];\n var b = planeT(t, plane);\n if (a < 0 && b > 0 || a > 0 && b < 0) {\n neg.push(lerpW(s, b, t, a));\n }\n if (b <= 0) {\n neg.push(t.slice());\n }\n a = b;\n }\n return neg;\n }\n }\n ),\n /***/\n 3387: (\n /***/\n function(module2, exports2, __webpack_require__2) {\n var __WEBPACK_AMD_DEFINE_RESULT__;\n !function() {\n \"use strict\";\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n };\n function sprintf(key) {\n return sprintf_format(sprintf_parse(key), arguments);\n }\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []));\n }\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = \"\", i, k, ph, pad, pad_character, pad_length, is_positive, sign;\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === \"string\") {\n output += parse_tree[i];\n } else if (typeof parse_tree[i] === \"object\") {\n ph = parse_tree[i];\n if (ph.keys) {\n arg = argv[cursor];\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == void 0) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k - 1]));\n }\n arg = arg[ph.keys[k]];\n }\n } else if (ph.param_no) {\n arg = argv[ph.param_no];\n } else {\n arg = argv[cursor++];\n }\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg();\n }\n if (re.numeric_arg.test(ph.type) && (typeof arg !== \"number\" && isNaN(arg))) {\n throw new TypeError(sprintf(\"[sprintf] expecting number but found %T\", arg));\n }\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0;\n }\n switch (ph.type) {\n case \"b\":\n arg = parseInt(arg, 10).toString(2);\n break;\n case \"c\":\n arg = String.fromCharCode(parseInt(arg, 10));\n break;\n case \"d\":\n case \"i\":\n arg = parseInt(arg, 10);\n break;\n case \"j\":\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0);\n break;\n case \"e\":\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential();\n break;\n case \"f\":\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg);\n break;\n case \"g\":\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg);\n break;\n case \"o\":\n arg = (parseInt(arg, 10) >>> 0).toString(8);\n break;\n case \"s\":\n arg = String(arg);\n arg = ph.precision ? arg.substring(0, ph.precision) : arg;\n break;\n case \"t\":\n arg = String(!!arg);\n arg = ph.precision ? arg.substring(0, ph.precision) : arg;\n break;\n case \"T\":\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase();\n arg = ph.precision ? arg.substring(0, ph.precision) : arg;\n break;\n case \"u\":\n arg = parseInt(arg, 10) >>> 0;\n break;\n case \"v\":\n arg = arg.valueOf();\n arg = ph.precision ? arg.substring(0, ph.precision) : arg;\n break;\n case \"x\":\n arg = (parseInt(arg, 10) >>> 0).toString(16);\n break;\n case \"X\":\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();\n break;\n }\n if (re.json.test(ph.type)) {\n output += arg;\n } else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? \"+\" : \"-\";\n arg = arg.toString().replace(re.sign, \"\");\n } else {\n sign = \"\";\n }\n pad_character = ph.pad_char ? ph.pad_char === \"0\" ? \"0\" : ph.pad_char.charAt(1) : \" \";\n pad_length = ph.width - (sign + arg).length;\n pad = ph.width ? pad_length > 0 ? pad_character.repeat(pad_length) : \"\" : \"\";\n output += ph.align ? sign + arg + pad : pad_character === \"0\" ? sign + pad + arg : pad + sign + arg;\n }\n }\n }\n return output;\n }\n var sprintf_cache = /* @__PURE__ */ Object.create(null);\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt];\n }\n var _fmt = fmt, match, parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n } else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push(\"%\");\n } else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== \"\") {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n } else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n } else {\n throw new SyntaxError(\"[sprintf] failed to parse named argument key\");\n }\n }\n } else {\n throw new SyntaxError(\"[sprintf] failed to parse named argument key\");\n }\n match[2] = field_list;\n } else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\");\n }\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n );\n } else {\n throw new SyntaxError(\"[sprintf] unexpected placeholder\");\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return sprintf_cache[fmt] = parse_tree;\n }\n if (true) {\n exports2.sprintf = sprintf;\n exports2.vsprintf = vsprintf;\n }\n if (typeof window !== \"undefined\") {\n window[\"sprintf\"] = sprintf;\n window[\"vsprintf\"] = vsprintf;\n if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n return {\n \"sprintf\": sprintf,\n \"vsprintf\": vsprintf\n };\n }.call(exports2, __webpack_require__2, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n }\n }();\n }\n ),\n /***/\n 3711: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = surfaceNets;\n var generateContourExtractor = __webpack_require__2(2640);\n var zeroCrossings = __webpack_require__2(781);\n var allFns = {\n \"2d\": function(genContour, order, dtype) {\n var contour = genContour({\n order,\n scalarArguments: 3,\n getters: dtype === \"generic\" ? [0] : void 0,\n phase: function phaseFunc(p, a, b, c) {\n return p > c | 0;\n },\n vertex: function vertexFunc(d0, d1, v0, v1, v2, v3, p0, p1, p2, p3, a, b, c) {\n var m = (p0 << 0) + (p1 << 1) + (p2 << 2) + (p3 << 3) | 0;\n if (m === 0 || m === 15) {\n return;\n }\n switch (m) {\n case 0:\n a.push([d0 - 0.5, d1 - 0.5]);\n break;\n case 1:\n a.push([d0 - 0.25 - 0.25 * (v1 + v0 - 2 * c) / (v0 - v1), d1 - 0.25 - 0.25 * (v2 + v0 - 2 * c) / (v0 - v2)]);\n break;\n case 2:\n a.push([d0 - 0.75 - 0.25 * (-v1 - v0 + 2 * c) / (v1 - v0), d1 - 0.25 - 0.25 * (v3 + v1 - 2 * c) / (v1 - v3)]);\n break;\n case 3:\n a.push([d0 - 0.5, d1 - 0.5 - 0.5 * (v2 + v0 + v3 + v1 - 4 * c) / (v0 - v2 + v1 - v3)]);\n break;\n case 4:\n a.push([d0 - 0.25 - 0.25 * (v3 + v2 - 2 * c) / (v2 - v3), d1 - 0.75 - 0.25 * (-v2 - v0 + 2 * c) / (v2 - v0)]);\n break;\n case 5:\n a.push([d0 - 0.5 - 0.5 * (v1 + v0 + v3 + v2 - 4 * c) / (v0 - v1 + v2 - v3), d1 - 0.5]);\n break;\n case 6:\n a.push([d0 - 0.5 - 0.25 * (-v1 - v0 + v3 + v2) / (v1 - v0 + v2 - v3), d1 - 0.5 - 0.25 * (-v2 - v0 + v3 + v1) / (v2 - v0 + v1 - v3)]);\n break;\n case 7:\n a.push([d0 - 0.75 - 0.25 * (v3 + v2 - 2 * c) / (v2 - v3), d1 - 0.75 - 0.25 * (v3 + v1 - 2 * c) / (v1 - v3)]);\n break;\n case 8:\n a.push([d0 - 0.75 - 0.25 * (-v3 - v2 + 2 * c) / (v3 - v2), d1 - 0.75 - 0.25 * (-v3 - v1 + 2 * c) / (v3 - v1)]);\n break;\n case 9:\n a.push([d0 - 0.5 - 0.25 * (v1 + v0 + -v3 - v2) / (v0 - v1 + v3 - v2), d1 - 0.5 - 0.25 * (v2 + v0 + -v3 - v1) / (v0 - v2 + v3 - v1)]);\n break;\n case 10:\n a.push([d0 - 0.5 - 0.5 * (-v1 - v0 + -v3 - v2 + 4 * c) / (v1 - v0 + v3 - v2), d1 - 0.5]);\n break;\n case 11:\n a.push([d0 - 0.25 - 0.25 * (-v3 - v2 + 2 * c) / (v3 - v2), d1 - 0.75 - 0.25 * (v2 + v0 - 2 * c) / (v0 - v2)]);\n break;\n case 12:\n a.push([d0 - 0.5, d1 - 0.5 - 0.5 * (-v2 - v0 + -v3 - v1 + 4 * c) / (v2 - v0 + v3 - v1)]);\n break;\n case 13:\n a.push([d0 - 0.75 - 0.25 * (v1 + v0 - 2 * c) / (v0 - v1), d1 - 0.25 - 0.25 * (-v3 - v1 + 2 * c) / (v3 - v1)]);\n break;\n case 14:\n a.push([d0 - 0.25 - 0.25 * (-v1 - v0 + 2 * c) / (v1 - v0), d1 - 0.25 - 0.25 * (-v2 - v0 + 2 * c) / (v2 - v0)]);\n break;\n case 15:\n a.push([d0 - 0.5, d1 - 0.5]);\n break;\n }\n },\n cell: function cellFunc(v0, v1, c0, c1, p0, p1, a, b, c) {\n if (p0) {\n b.push([v0, v1]);\n } else {\n b.push([v1, v0]);\n }\n }\n });\n return function(array, level) {\n var verts = [], cells = [];\n contour(array, verts, cells, level);\n return { positions: verts, cells };\n };\n }\n };\n function buildSurfaceNets(order, dtype) {\n var inKey = order.length + \"d\";\n var fn = allFns[inKey];\n if (fn) return fn(generateContourExtractor, order, dtype);\n }\n function mesh1D(array, level) {\n var zc = zeroCrossings(array, level);\n var n = zc.length;\n var npos = new Array(n);\n var ncel = new Array(n);\n for (var i = 0; i < n; ++i) {\n npos[i] = [zc[i]];\n ncel[i] = [i];\n }\n return {\n positions: npos,\n cells: ncel\n };\n }\n var CACHE = {};\n function surfaceNets(array, level) {\n if (array.dimension <= 0) {\n return { positions: [], cells: [] };\n } else if (array.dimension === 1) {\n return mesh1D(array, level);\n }\n var typesig = array.order.join() + \"-\" + array.dtype;\n var proc = CACHE[typesig];\n var level = +level || 0;\n if (!proc) {\n proc = CACHE[typesig] = buildSurfaceNets(array.order, array.dtype);\n }\n return proc(array, level);\n }\n }\n ),\n /***/\n 665: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var parseUnit = __webpack_require__2(3202);\n module2.exports = toPX;\n var PIXELS_PER_INCH = 96;\n function getPropertyInPX(element, prop) {\n var parts = parseUnit(getComputedStyle(element).getPropertyValue(prop));\n return parts[0] * toPX(parts[1], element);\n }\n function getSizeBrutal(unit, element) {\n var testDIV = document.createElement(\"div\");\n testDIV.style[\"font-size\"] = \"128\" + unit;\n element.appendChild(testDIV);\n var size = getPropertyInPX(testDIV, \"font-size\") / 128;\n element.removeChild(testDIV);\n return size;\n }\n function toPX(str, element) {\n element = element || document.body;\n str = (str || \"px\").trim().toLowerCase();\n if (element === window || element === document) {\n element = document.body;\n }\n switch (str) {\n case \"%\":\n return element.clientHeight / 100;\n case \"ch\":\n case \"ex\":\n return getSizeBrutal(str, element);\n case \"em\":\n return getPropertyInPX(element, \"font-size\");\n case \"rem\":\n return getPropertyInPX(document.body, \"font-size\");\n case \"vw\":\n return window.innerWidth / 100;\n case \"vh\":\n return window.innerHeight / 100;\n case \"vmin\":\n return Math.min(window.innerWidth, window.innerHeight) / 100;\n case \"vmax\":\n return Math.max(window.innerWidth, window.innerHeight) / 100;\n case \"in\":\n return PIXELS_PER_INCH;\n case \"cm\":\n return PIXELS_PER_INCH / 2.54;\n case \"mm\":\n return PIXELS_PER_INCH / 25.4;\n case \"pt\":\n return PIXELS_PER_INCH / 72;\n case \"pc\":\n return PIXELS_PER_INCH / 6;\n }\n return 1;\n }\n }\n ),\n /***/\n 7261: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createTurntableController;\n var filterVector = __webpack_require__2(9215);\n var invert44 = __webpack_require__2(7608);\n var rotateM = __webpack_require__2(6079);\n var cross = __webpack_require__2(5911);\n var normalize3 = __webpack_require__2(3536);\n var dot3 = __webpack_require__2(244);\n function len3(x, y, z) {\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));\n }\n function clamp1(x) {\n return Math.min(1, Math.max(-1, x));\n }\n function findOrthoPair(v) {\n var vx = Math.abs(v[0]);\n var vy = Math.abs(v[1]);\n var vz = Math.abs(v[2]);\n var u = [0, 0, 0];\n if (vx > Math.max(vy, vz)) {\n u[2] = 1;\n } else if (vy > Math.max(vx, vz)) {\n u[0] = 1;\n } else {\n u[1] = 1;\n }\n var vv = 0;\n var uv = 0;\n for (var i = 0; i < 3; ++i) {\n vv += v[i] * v[i];\n uv += u[i] * v[i];\n }\n for (var i = 0; i < 3; ++i) {\n u[i] -= uv / vv * v[i];\n }\n normalize3(u, u);\n return u;\n }\n function TurntableController(zoomMin, zoomMax, center, up, right, radius, theta, phi) {\n this.center = filterVector(center);\n this.up = filterVector(up);\n this.right = filterVector(right);\n this.radius = filterVector([radius]);\n this.angle = filterVector([theta, phi]);\n this.angle.bounds = [[-Infinity, -Math.PI / 2], [Infinity, Math.PI / 2]];\n this.setDistanceLimits(zoomMin, zoomMax);\n this.computedCenter = this.center.curve(0);\n this.computedUp = this.up.curve(0);\n this.computedRight = this.right.curve(0);\n this.computedRadius = this.radius.curve(0);\n this.computedAngle = this.angle.curve(0);\n this.computedToward = [0, 0, 0];\n this.computedEye = [0, 0, 0];\n this.computedMatrix = new Array(16);\n for (var i = 0; i < 16; ++i) {\n this.computedMatrix[i] = 0.5;\n }\n this.recalcMatrix(0);\n }\n var proto = TurntableController.prototype;\n proto.setDistanceLimits = function(minDist, maxDist) {\n if (minDist > 0) {\n minDist = Math.log(minDist);\n } else {\n minDist = -Infinity;\n }\n if (maxDist > 0) {\n maxDist = Math.log(maxDist);\n } else {\n maxDist = Infinity;\n }\n maxDist = Math.max(maxDist, minDist);\n this.radius.bounds[0][0] = minDist;\n this.radius.bounds[1][0] = maxDist;\n };\n proto.getDistanceLimits = function(out) {\n var bounds = this.radius.bounds[0];\n if (out) {\n out[0] = Math.exp(bounds[0][0]);\n out[1] = Math.exp(bounds[1][0]);\n return out;\n }\n return [Math.exp(bounds[0][0]), Math.exp(bounds[1][0])];\n };\n proto.recalcMatrix = function(t) {\n this.center.curve(t);\n this.up.curve(t);\n this.right.curve(t);\n this.radius.curve(t);\n this.angle.curve(t);\n var up = this.computedUp;\n var right = this.computedRight;\n var uu = 0;\n var ur = 0;\n for (var i = 0; i < 3; ++i) {\n ur += up[i] * right[i];\n uu += up[i] * up[i];\n }\n var ul = Math.sqrt(uu);\n var rr = 0;\n for (var i = 0; i < 3; ++i) {\n right[i] -= up[i] * ur / uu;\n rr += right[i] * right[i];\n up[i] /= ul;\n }\n var rl = Math.sqrt(rr);\n for (var i = 0; i < 3; ++i) {\n right[i] /= rl;\n }\n var toward = this.computedToward;\n cross(toward, up, right);\n normalize3(toward, toward);\n var radius = Math.exp(this.computedRadius[0]);\n var theta = this.computedAngle[0];\n var phi = this.computedAngle[1];\n var ctheta = Math.cos(theta);\n var stheta = Math.sin(theta);\n var cphi = Math.cos(phi);\n var sphi = Math.sin(phi);\n var center = this.computedCenter;\n var wx = ctheta * cphi;\n var wy = stheta * cphi;\n var wz = sphi;\n var sx = -ctheta * sphi;\n var sy = -stheta * sphi;\n var sz = cphi;\n var eye = this.computedEye;\n var mat = this.computedMatrix;\n for (var i = 0; i < 3; ++i) {\n var x = wx * right[i] + wy * toward[i] + wz * up[i];\n mat[4 * i + 1] = sx * right[i] + sy * toward[i] + sz * up[i];\n mat[4 * i + 2] = x;\n mat[4 * i + 3] = 0;\n }\n var ax = mat[1];\n var ay = mat[5];\n var az = mat[9];\n var bx = mat[2];\n var by = mat[6];\n var bz = mat[10];\n var cx = ay * bz - az * by;\n var cy = az * bx - ax * bz;\n var cz = ax * by - ay * bx;\n var cl = len3(cx, cy, cz);\n cx /= cl;\n cy /= cl;\n cz /= cl;\n mat[0] = cx;\n mat[4] = cy;\n mat[8] = cz;\n for (var i = 0; i < 3; ++i) {\n eye[i] = center[i] + mat[2 + 4 * i] * radius;\n }\n for (var i = 0; i < 3; ++i) {\n var rr = 0;\n for (var j = 0; j < 3; ++j) {\n rr += mat[i + 4 * j] * eye[j];\n }\n mat[12 + i] = -rr;\n }\n mat[15] = 1;\n };\n proto.getMatrix = function(t, result) {\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n if (result) {\n for (var i = 0; i < 16; ++i) {\n result[i] = mat[i];\n }\n return result;\n }\n return mat;\n };\n var zAxis = [0, 0, 0];\n proto.rotate = function(t, dtheta, dphi, droll) {\n this.angle.move(t, dtheta, dphi);\n if (droll) {\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n zAxis[0] = mat[2];\n zAxis[1] = mat[6];\n zAxis[2] = mat[10];\n var up = this.computedUp;\n var right = this.computedRight;\n var toward = this.computedToward;\n for (var i = 0; i < 3; ++i) {\n mat[4 * i] = up[i];\n mat[4 * i + 1] = right[i];\n mat[4 * i + 2] = toward[i];\n }\n rotateM(mat, mat, droll, zAxis);\n for (var i = 0; i < 3; ++i) {\n up[i] = mat[4 * i];\n right[i] = mat[4 * i + 1];\n }\n this.up.set(t, up[0], up[1], up[2]);\n this.right.set(t, right[0], right[1], right[2]);\n }\n };\n proto.pan = function(t, dx, dy, dz) {\n dx = dx || 0;\n dy = dy || 0;\n dz = dz || 0;\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n var dist = Math.exp(this.computedRadius[0]);\n var ux = mat[1];\n var uy = mat[5];\n var uz = mat[9];\n var ul = len3(ux, uy, uz);\n ux /= ul;\n uy /= ul;\n uz /= ul;\n var rx = mat[0];\n var ry = mat[4];\n var rz = mat[8];\n var ru = rx * ux + ry * uy + rz * uz;\n rx -= ux * ru;\n ry -= uy * ru;\n rz -= uz * ru;\n var rl = len3(rx, ry, rz);\n rx /= rl;\n ry /= rl;\n rz /= rl;\n var vx = rx * dx + ux * dy;\n var vy = ry * dx + uy * dy;\n var vz = rz * dx + uz * dy;\n this.center.move(t, vx, vy, vz);\n var radius = Math.exp(this.computedRadius[0]);\n radius = Math.max(1e-4, radius + dz);\n this.radius.set(t, Math.log(radius));\n };\n proto.translate = function(t, dx, dy, dz) {\n this.center.move(\n t,\n dx || 0,\n dy || 0,\n dz || 0\n );\n };\n proto.setMatrix = function(t, mat, axes, noSnap) {\n var ushift = 1;\n if (typeof axes === \"number\") {\n ushift = axes | 0;\n }\n if (ushift < 0 || ushift > 3) {\n ushift = 1;\n }\n var vshift = (ushift + 2) % 3;\n var fshift = (ushift + 1) % 3;\n if (!mat) {\n this.recalcMatrix(t);\n mat = this.computedMatrix;\n }\n var ux = mat[ushift];\n var uy = mat[ushift + 4];\n var uz = mat[ushift + 8];\n if (!noSnap) {\n var ul = len3(ux, uy, uz);\n ux /= ul;\n uy /= ul;\n uz /= ul;\n } else {\n var ax = Math.abs(ux);\n var ay = Math.abs(uy);\n var az = Math.abs(uz);\n var am = Math.max(ax, ay, az);\n if (ax === am) {\n ux = ux < 0 ? -1 : 1;\n uy = uz = 0;\n } else if (az === am) {\n uz = uz < 0 ? -1 : 1;\n ux = uy = 0;\n } else {\n uy = uy < 0 ? -1 : 1;\n ux = uz = 0;\n }\n }\n var rx = mat[vshift];\n var ry = mat[vshift + 4];\n var rz = mat[vshift + 8];\n var ru = rx * ux + ry * uy + rz * uz;\n rx -= ux * ru;\n ry -= uy * ru;\n rz -= uz * ru;\n var rl = len3(rx, ry, rz);\n rx /= rl;\n ry /= rl;\n rz /= rl;\n var fx = uy * rz - uz * ry;\n var fy = uz * rx - ux * rz;\n var fz = ux * ry - uy * rx;\n var fl = len3(fx, fy, fz);\n fx /= fl;\n fy /= fl;\n fz /= fl;\n this.center.jump(t, ex, ey, ez);\n this.radius.idle(t);\n this.up.jump(t, ux, uy, uz);\n this.right.jump(t, rx, ry, rz);\n var phi, theta;\n if (ushift === 2) {\n var cx = mat[1];\n var cy = mat[5];\n var cz = mat[9];\n var cr = cx * rx + cy * ry + cz * rz;\n var cf = cx * fx + cy * fy + cz * fz;\n if (tu < 0) {\n phi = -Math.PI / 2;\n } else {\n phi = Math.PI / 2;\n }\n theta = Math.atan2(cf, cr);\n } else {\n var tx = mat[2];\n var ty = mat[6];\n var tz = mat[10];\n var tu = tx * ux + ty * uy + tz * uz;\n var tr = tx * rx + ty * ry + tz * rz;\n var tf = tx * fx + ty * fy + tz * fz;\n phi = Math.asin(clamp1(tu));\n theta = Math.atan2(tf, tr);\n }\n this.angle.jump(t, theta, phi);\n this.recalcMatrix(t);\n var dx = mat[2];\n var dy = mat[6];\n var dz = mat[10];\n var imat = this.computedMatrix;\n invert44(imat, mat);\n var w = imat[15];\n var ex = imat[12] / w;\n var ey = imat[13] / w;\n var ez = imat[14] / w;\n var gs = Math.exp(this.computedRadius[0]);\n this.center.jump(t, ex - dx * gs, ey - dy * gs, ez - dz * gs);\n };\n proto.lastT = function() {\n return Math.max(\n this.center.lastT(),\n this.up.lastT(),\n this.right.lastT(),\n this.radius.lastT(),\n this.angle.lastT()\n );\n };\n proto.idle = function(t) {\n this.center.idle(t);\n this.up.idle(t);\n this.right.idle(t);\n this.radius.idle(t);\n this.angle.idle(t);\n };\n proto.flush = function(t) {\n this.center.flush(t);\n this.up.flush(t);\n this.right.flush(t);\n this.radius.flush(t);\n this.angle.flush(t);\n };\n proto.setDistance = function(t, d) {\n if (d > 0) {\n this.radius.set(t, Math.log(d));\n }\n };\n proto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t);\n eye = eye || this.computedEye;\n center = center || this.computedCenter;\n up = up || this.computedUp;\n var ux = up[0];\n var uy = up[1];\n var uz = up[2];\n var ul = len3(ux, uy, uz);\n if (ul < 1e-6) {\n return;\n }\n ux /= ul;\n uy /= ul;\n uz /= ul;\n var tx = eye[0] - center[0];\n var ty = eye[1] - center[1];\n var tz = eye[2] - center[2];\n var tl = len3(tx, ty, tz);\n if (tl < 1e-6) {\n return;\n }\n tx /= tl;\n ty /= tl;\n tz /= tl;\n var right = this.computedRight;\n var rx = right[0];\n var ry = right[1];\n var rz = right[2];\n var ru = ux * rx + uy * ry + uz * rz;\n rx -= ru * ux;\n ry -= ru * uy;\n rz -= ru * uz;\n var rl = len3(rx, ry, rz);\n if (rl < 0.01) {\n rx = uy * tz - uz * ty;\n ry = uz * tx - ux * tz;\n rz = ux * ty - uy * tx;\n rl = len3(rx, ry, rz);\n if (rl < 1e-6) {\n return;\n }\n }\n rx /= rl;\n ry /= rl;\n rz /= rl;\n this.up.set(t, ux, uy, uz);\n this.right.set(t, rx, ry, rz);\n this.center.set(t, center[0], center[1], center[2]);\n this.radius.set(t, Math.log(tl));\n var fx = uy * rz - uz * ry;\n var fy = uz * rx - ux * rz;\n var fz = ux * ry - uy * rx;\n var fl = len3(fx, fy, fz);\n fx /= fl;\n fy /= fl;\n fz /= fl;\n var tu = ux * tx + uy * ty + uz * tz;\n var tr = rx * tx + ry * ty + rz * tz;\n var tf = fx * tx + fy * ty + fz * tz;\n var phi = Math.asin(clamp1(tu));\n var theta = Math.atan2(tf, tr);\n var angleState = this.angle._state;\n var lastTheta = angleState[angleState.length - 1];\n var lastPhi = angleState[angleState.length - 2];\n lastTheta = lastTheta % (2 * Math.PI);\n var dp = Math.abs(lastTheta + 2 * Math.PI - theta);\n var d0 = Math.abs(lastTheta - theta);\n var dn = Math.abs(lastTheta - 2 * Math.PI - theta);\n if (dp < d0) {\n lastTheta += 2 * Math.PI;\n }\n if (dn < d0) {\n lastTheta -= 2 * Math.PI;\n }\n this.angle.jump(this.angle.lastT(), lastTheta, lastPhi);\n this.angle.set(t, theta, phi);\n };\n function createTurntableController(options) {\n options = options || {};\n var center = options.center || [0, 0, 0];\n var up = options.up || [0, 1, 0];\n var right = options.right || findOrthoPair(up);\n var radius = options.radius || 1;\n var theta = options.theta || 0;\n var phi = options.phi || 0;\n center = [].slice.call(center, 0, 3);\n up = [].slice.call(up, 0, 3);\n normalize3(up, up);\n right = [].slice.call(right, 0, 3);\n normalize3(right, right);\n if (\"eye\" in options) {\n var eye = options.eye;\n var toward = [\n eye[0] - center[0],\n eye[1] - center[1],\n eye[2] - center[2]\n ];\n cross(right, toward, up);\n if (len3(right[0], right[1], right[2]) < 1e-6) {\n right = findOrthoPair(up);\n } else {\n normalize3(right, right);\n }\n radius = len3(toward[0], toward[1], toward[2]);\n var ut = dot3(up, toward) / radius;\n var rt = dot3(right, toward) / radius;\n phi = Math.acos(ut);\n theta = Math.acos(rt);\n }\n radius = Math.log(radius);\n return new TurntableController(\n options.zoomMin,\n options.zoomMax,\n center,\n up,\n right,\n radius,\n theta,\n phi\n );\n }\n }\n ),\n /***/\n 5250: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = twoProduct;\n var SPLITTER = +(Math.pow(2, 27) + 1);\n function twoProduct(a, b, result) {\n var x = a * b;\n var c = SPLITTER * a;\n var abig = c - a;\n var ahi = c - abig;\n var alo = a - ahi;\n var d = SPLITTER * b;\n var bbig = d - b;\n var bhi = d - bbig;\n var blo = b - bhi;\n var err1 = x - ahi * bhi;\n var err2 = err1 - alo * bhi;\n var err3 = err2 - ahi * blo;\n var y = alo * blo - err3;\n if (result) {\n result[0] = y;\n result[1] = x;\n return result;\n }\n return [y, x];\n }\n }\n ),\n /***/\n 9362: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = fastTwoSum;\n function fastTwoSum(a, b, result) {\n var x = a + b;\n var bv = x - a;\n var av = x - bv;\n var br = b - bv;\n var ar = a - av;\n if (result) {\n result[0] = ar + br;\n result[1] = x;\n return result;\n }\n return [ar + br, x];\n }\n }\n ),\n /***/\n 1888: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n var bits = __webpack_require__2(8828);\n var dup = __webpack_require__2(1338);\n var Buffer2 = __webpack_require__2(4793).hp;\n if (!__webpack_require__2.g.__TYPEDARRAY_POOL) {\n __webpack_require__2.g.__TYPEDARRAY_POOL = {\n UINT8: dup([32, 0]),\n UINT16: dup([32, 0]),\n UINT32: dup([32, 0]),\n BIGUINT64: dup([32, 0]),\n INT8: dup([32, 0]),\n INT16: dup([32, 0]),\n INT32: dup([32, 0]),\n BIGINT64: dup([32, 0]),\n FLOAT: dup([32, 0]),\n DOUBLE: dup([32, 0]),\n DATA: dup([32, 0]),\n UINT8C: dup([32, 0]),\n BUFFER: dup([32, 0])\n };\n }\n var hasUint8C = typeof Uint8ClampedArray !== \"undefined\";\n var hasBigUint64 = typeof BigUint64Array !== \"undefined\";\n var hasBigInt64 = typeof BigInt64Array !== \"undefined\";\n var POOL = __webpack_require__2.g.__TYPEDARRAY_POOL;\n if (!POOL.UINT8C) {\n POOL.UINT8C = dup([32, 0]);\n }\n if (!POOL.BIGUINT64) {\n POOL.BIGUINT64 = dup([32, 0]);\n }\n if (!POOL.BIGINT64) {\n POOL.BIGINT64 = dup([32, 0]);\n }\n if (!POOL.BUFFER) {\n POOL.BUFFER = dup([32, 0]);\n }\n var DATA = POOL.DATA, BUFFER = POOL.BUFFER;\n exports2.free = function free(array) {\n if (Buffer2.isBuffer(array)) {\n BUFFER[bits.log2(array.length)].push(array);\n } else {\n if (Object.prototype.toString.call(array) !== \"[object ArrayBuffer]\") {\n array = array.buffer;\n }\n if (!array) {\n return;\n }\n var n = array.length || array.byteLength;\n var log_n = bits.log2(n) | 0;\n DATA[log_n].push(array);\n }\n };\n function freeArrayBuffer(buffer) {\n if (!buffer) {\n return;\n }\n var n = buffer.length || buffer.byteLength;\n var log_n = bits.log2(n);\n DATA[log_n].push(buffer);\n }\n function freeTypedArray(array) {\n freeArrayBuffer(array.buffer);\n }\n exports2.freeUint8 = exports2.freeUint16 = exports2.freeUint32 = exports2.freeBigUint64 = exports2.freeInt8 = exports2.freeInt16 = exports2.freeInt32 = exports2.freeBigInt64 = exports2.freeFloat32 = exports2.freeFloat = exports2.freeFloat64 = exports2.freeDouble = exports2.freeUint8Clamped = exports2.freeDataView = freeTypedArray;\n exports2.freeArrayBuffer = freeArrayBuffer;\n exports2.freeBuffer = function freeBuffer(array) {\n BUFFER[bits.log2(array.length)].push(array);\n };\n exports2.malloc = function malloc(n, dtype) {\n if (dtype === void 0 || dtype === \"arraybuffer\") {\n return mallocArrayBuffer(n);\n } else {\n switch (dtype) {\n case \"uint8\":\n return mallocUint8(n);\n case \"uint16\":\n return mallocUint16(n);\n case \"uint32\":\n return mallocUint32(n);\n case \"int8\":\n return mallocInt8(n);\n case \"int16\":\n return mallocInt16(n);\n case \"int32\":\n return mallocInt32(n);\n case \"float\":\n case \"float32\":\n return mallocFloat(n);\n case \"double\":\n case \"float64\":\n return mallocDouble(n);\n case \"uint8_clamped\":\n return mallocUint8Clamped(n);\n case \"bigint64\":\n return mallocBigInt64(n);\n case \"biguint64\":\n return mallocBigUint64(n);\n case \"buffer\":\n return mallocBuffer(n);\n case \"data\":\n case \"dataview\":\n return mallocDataView(n);\n default:\n return null;\n }\n }\n return null;\n };\n function mallocArrayBuffer(n) {\n var n = bits.nextPow2(n);\n var log_n = bits.log2(n);\n var d = DATA[log_n];\n if (d.length > 0) {\n return d.pop();\n }\n return new ArrayBuffer(n);\n }\n exports2.mallocArrayBuffer = mallocArrayBuffer;\n function mallocUint8(n) {\n return new Uint8Array(mallocArrayBuffer(n), 0, n);\n }\n exports2.mallocUint8 = mallocUint8;\n function mallocUint16(n) {\n return new Uint16Array(mallocArrayBuffer(2 * n), 0, n);\n }\n exports2.mallocUint16 = mallocUint16;\n function mallocUint32(n) {\n return new Uint32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports2.mallocUint32 = mallocUint32;\n function mallocInt8(n) {\n return new Int8Array(mallocArrayBuffer(n), 0, n);\n }\n exports2.mallocInt8 = mallocInt8;\n function mallocInt16(n) {\n return new Int16Array(mallocArrayBuffer(2 * n), 0, n);\n }\n exports2.mallocInt16 = mallocInt16;\n function mallocInt32(n) {\n return new Int32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports2.mallocInt32 = mallocInt32;\n function mallocFloat(n) {\n return new Float32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports2.mallocFloat32 = exports2.mallocFloat = mallocFloat;\n function mallocDouble(n) {\n return new Float64Array(mallocArrayBuffer(8 * n), 0, n);\n }\n exports2.mallocFloat64 = exports2.mallocDouble = mallocDouble;\n function mallocUint8Clamped(n) {\n if (hasUint8C) {\n return new Uint8ClampedArray(mallocArrayBuffer(n), 0, n);\n } else {\n return mallocUint8(n);\n }\n }\n exports2.mallocUint8Clamped = mallocUint8Clamped;\n function mallocBigUint64(n) {\n if (hasBigUint64) {\n return new BigUint64Array(mallocArrayBuffer(8 * n), 0, n);\n } else {\n return null;\n }\n }\n exports2.mallocBigUint64 = mallocBigUint64;\n function mallocBigInt64(n) {\n if (hasBigInt64) {\n return new BigInt64Array(mallocArrayBuffer(8 * n), 0, n);\n } else {\n return null;\n }\n }\n exports2.mallocBigInt64 = mallocBigInt64;\n function mallocDataView(n) {\n return new DataView(mallocArrayBuffer(n), 0, n);\n }\n exports2.mallocDataView = mallocDataView;\n function mallocBuffer(n) {\n n = bits.nextPow2(n);\n var log_n = bits.log2(n);\n var cache = BUFFER[log_n];\n if (cache.length > 0) {\n return cache.pop();\n }\n return new Buffer2(n);\n }\n exports2.mallocBuffer = mallocBuffer;\n exports2.clearCache = function clearCache() {\n for (var i = 0; i < 32; ++i) {\n POOL.UINT8[i].length = 0;\n POOL.UINT16[i].length = 0;\n POOL.UINT32[i].length = 0;\n POOL.INT8[i].length = 0;\n POOL.INT16[i].length = 0;\n POOL.INT32[i].length = 0;\n POOL.FLOAT[i].length = 0;\n POOL.DOUBLE[i].length = 0;\n POOL.BIGUINT64[i].length = 0;\n POOL.BIGINT64[i].length = 0;\n POOL.UINT8C[i].length = 0;\n DATA[i].length = 0;\n BUFFER[i].length = 0;\n }\n };\n }\n ),\n /***/\n 1755: (\n /***/\n function(module2) {\n \"use strict\";\n \"use restrict\";\n module2.exports = UnionFind;\n function UnionFind(count) {\n this.roots = new Array(count);\n this.ranks = new Array(count);\n for (var i = 0; i < count; ++i) {\n this.roots[i] = i;\n this.ranks[i] = 0;\n }\n }\n var proto = UnionFind.prototype;\n Object.defineProperty(proto, \"length\", {\n \"get\": function() {\n return this.roots.length;\n }\n });\n proto.makeSet = function() {\n var n = this.roots.length;\n this.roots.push(n);\n this.ranks.push(0);\n return n;\n };\n proto.find = function(x) {\n var x0 = x;\n var roots = this.roots;\n while (roots[x] !== x) {\n x = roots[x];\n }\n while (roots[x0] !== x) {\n var y = roots[x0];\n roots[x0] = x;\n x0 = y;\n }\n return x;\n };\n proto.link = function(x, y) {\n var xr = this.find(x), yr = this.find(y);\n if (xr === yr) {\n return;\n }\n var ranks = this.ranks, roots = this.roots, xd = ranks[xr], yd = ranks[yr];\n if (xd < yd) {\n roots[xr] = yr;\n } else if (yd < xd) {\n roots[yr] = xr;\n } else {\n roots[yr] = xr;\n ++ranks[xr];\n }\n };\n }\n ),\n /***/\n 1682: (\n /***/\n function(module2) {\n \"use strict\";\n function unique_pred(list, compare) {\n var ptr = 1, len = list.length, a = list[0], b = list[0];\n for (var i = 1; i < len; ++i) {\n b = a;\n a = list[i];\n if (compare(a, b)) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n list[ptr++] = a;\n }\n }\n list.length = ptr;\n return list;\n }\n function unique_eq(list) {\n var ptr = 1, len = list.length, a = list[0], b = list[0];\n for (var i = 1; i < len; ++i, b = a) {\n b = a;\n a = list[i];\n if (a !== b) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n list[ptr++] = a;\n }\n }\n list.length = ptr;\n return list;\n }\n function unique(list, compare, sorted) {\n if (list.length === 0) {\n return list;\n }\n if (compare) {\n if (!sorted) {\n list.sort(compare);\n }\n return unique_pred(list, compare);\n }\n if (!sorted) {\n list.sort();\n }\n return unique_eq(list);\n }\n module2.exports = unique;\n }\n ),\n /***/\n 4359: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createText;\n var vectorizeText = __webpack_require__2(7718);\n var defaultCanvas = null;\n var defaultContext = null;\n if (typeof document !== \"undefined\") {\n defaultCanvas = document.createElement(\"canvas\");\n defaultCanvas.width = 8192;\n defaultCanvas.height = 1024;\n defaultContext = defaultCanvas.getContext(\"2d\");\n }\n function createText(str, options) {\n if (typeof options !== \"object\" || options === null) {\n options = {};\n }\n return vectorizeText(\n str,\n options.canvas || defaultCanvas,\n options.context || defaultContext,\n options\n );\n }\n }\n ),\n /***/\n 7718: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = vectorizeText;\n module2.exports.processPixels = processPixels;\n var surfaceNets = __webpack_require__2(3711);\n var ndarray = __webpack_require__2(9618);\n var simplify = __webpack_require__2(5878);\n var cleanPSLG = __webpack_require__2(332);\n var cdt2d = __webpack_require__2(2538);\n var toPolygonCrappy = __webpack_require__2(2095);\n var TAG_bold = \"b\";\n var CHR_bold = \"b|\";\n var TAG_italic = \"i\";\n var CHR_italic = \"i|\";\n var TAG_super = \"sup\";\n var CHR_super0 = \"+\";\n var CHR_super = \"+1\";\n var TAG_sub = \"sub\";\n var CHR_sub0 = \"-\";\n var CHR_sub = \"-1\";\n function parseTag(tag, TAG_CHR, str, map) {\n var opnTag = \"<\" + tag + \">\";\n var clsTag = \"\";\n var nOPN = opnTag.length;\n var nCLS = clsTag.length;\n var isRecursive = TAG_CHR[0] === CHR_super0 || TAG_CHR[0] === CHR_sub0;\n var a = 0;\n var b = -nCLS;\n while (a > -1) {\n a = str.indexOf(opnTag, a);\n if (a === -1) break;\n b = str.indexOf(clsTag, a + nOPN);\n if (b === -1) break;\n if (b <= a) break;\n for (var i = a; i < b + nCLS; ++i) {\n if (i < a + nOPN || i >= b) {\n map[i] = null;\n str = str.substr(0, i) + \" \" + str.substr(i + 1);\n } else {\n if (map[i] !== null) {\n var pos = map[i].indexOf(TAG_CHR[0]);\n if (pos === -1) {\n map[i] += TAG_CHR;\n } else {\n if (isRecursive) {\n map[i] = map[i].substr(0, pos + 1) + (1 + parseInt(map[i][pos + 1])) + map[i].substr(pos + 2);\n }\n }\n }\n }\n }\n var start = a + nOPN;\n var remainingStr = str.substr(start, b - start);\n var c = remainingStr.indexOf(opnTag);\n if (c !== -1) a = c;\n else a = b + nCLS;\n }\n return map;\n }\n function transformPositions(positions, options, size) {\n var align = options.textAlign || \"start\";\n var baseline = options.textBaseline || \"alphabetic\";\n var lo = [1 << 30, 1 << 30];\n var hi = [0, 0];\n var n = positions.length;\n for (var i = 0; i < n; ++i) {\n var p = positions[i];\n for (var j = 0; j < 2; ++j) {\n lo[j] = Math.min(lo[j], p[j]) | 0;\n hi[j] = Math.max(hi[j], p[j]) | 0;\n }\n }\n var xShift = 0;\n switch (align) {\n case \"center\":\n xShift = -0.5 * (lo[0] + hi[0]);\n break;\n case \"right\":\n case \"end\":\n xShift = -hi[0];\n break;\n case \"left\":\n case \"start\":\n xShift = -lo[0];\n break;\n default:\n throw new Error(\"vectorize-text: Unrecognized textAlign: '\" + align + \"'\");\n }\n var yShift = 0;\n switch (baseline) {\n case \"hanging\":\n case \"top\":\n yShift = -lo[1];\n break;\n case \"middle\":\n yShift = -0.5 * (lo[1] + hi[1]);\n break;\n case \"alphabetic\":\n case \"ideographic\":\n yShift = -3 * size;\n break;\n case \"bottom\":\n yShift = -hi[1];\n break;\n default:\n throw new Error(\"vectorize-text: Unrecoginized textBaseline: '\" + baseline + \"'\");\n }\n var scale = 1 / size;\n if (\"lineHeight\" in options) {\n scale *= +options.lineHeight;\n } else if (\"width\" in options) {\n scale = options.width / (hi[0] - lo[0]);\n } else if (\"height\" in options) {\n scale = options.height / (hi[1] - lo[1]);\n }\n return positions.map(function(p2) {\n return [scale * (p2[0] + xShift), scale * (p2[1] + yShift)];\n });\n }\n function getPixels(canvas, context, rawString, fontSize, lineSpacing, styletags) {\n rawString = rawString.replace(/\\n/g, \"\");\n if (styletags.breaklines === true) {\n rawString = rawString.replace(/\\/g, \"\\n\");\n } else {\n rawString = rawString.replace(/\\/g, \" \");\n }\n var activeStyle = \"\";\n var map = [];\n for (j = 0; j < rawString.length; ++j) {\n map[j] = activeStyle;\n }\n if (styletags.bolds === true) map = parseTag(TAG_bold, CHR_bold, rawString, map);\n if (styletags.italics === true) map = parseTag(TAG_italic, CHR_italic, rawString, map);\n if (styletags.superscripts === true) map = parseTag(TAG_super, CHR_super, rawString, map);\n if (styletags.subscripts === true) map = parseTag(TAG_sub, CHR_sub, rawString, map);\n var allStyles = [];\n var plainText = \"\";\n for (j = 0; j < rawString.length; ++j) {\n if (map[j] !== null) {\n plainText += rawString[j];\n allStyles.push(map[j]);\n }\n }\n var allTexts = plainText.split(\"\\n\");\n var numberOfLines = allTexts.length;\n var lineHeight = Math.round(lineSpacing * fontSize);\n var offsetX = fontSize;\n var offsetY = fontSize * 2;\n var maxWidth = 0;\n var minHeight = numberOfLines * lineHeight + offsetY;\n if (canvas.height < minHeight) {\n canvas.height = minHeight;\n }\n context.fillStyle = \"#000\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.fillStyle = \"#fff\";\n var i, j, xPos, yPos, zPos;\n var nDone = 0;\n var buffer = \"\";\n function writeBuffer() {\n if (buffer !== \"\") {\n var delta = context.measureText(buffer).width;\n context.fillText(buffer, offsetX + xPos, offsetY + yPos);\n xPos += delta;\n }\n }\n function getTextFontSize() {\n return \"\" + Math.round(zPos) + \"px \";\n }\n function changeStyle(oldStyle, newStyle) {\n var ctxFont = \"\" + context.font;\n if (styletags.subscripts === true) {\n var oldIndex_Sub = oldStyle.indexOf(CHR_sub0);\n var newIndex_Sub = newStyle.indexOf(CHR_sub0);\n var oldSub = oldIndex_Sub > -1 ? parseInt(oldStyle[1 + oldIndex_Sub]) : 0;\n var newSub = newIndex_Sub > -1 ? parseInt(newStyle[1 + newIndex_Sub]) : 0;\n if (oldSub !== newSub) {\n ctxFont = ctxFont.replace(getTextFontSize(), \"?px \");\n zPos *= Math.pow(0.75, newSub - oldSub);\n ctxFont = ctxFont.replace(\"?px \", getTextFontSize());\n }\n yPos += 0.25 * lineHeight * (newSub - oldSub);\n }\n if (styletags.superscripts === true) {\n var oldIndex_Super = oldStyle.indexOf(CHR_super0);\n var newIndex_Super = newStyle.indexOf(CHR_super0);\n var oldSuper = oldIndex_Super > -1 ? parseInt(oldStyle[1 + oldIndex_Super]) : 0;\n var newSuper = newIndex_Super > -1 ? parseInt(newStyle[1 + newIndex_Super]) : 0;\n if (oldSuper !== newSuper) {\n ctxFont = ctxFont.replace(getTextFontSize(), \"?px \");\n zPos *= Math.pow(0.75, newSuper - oldSuper);\n ctxFont = ctxFont.replace(\"?px \", getTextFontSize());\n }\n yPos -= 0.25 * lineHeight * (newSuper - oldSuper);\n }\n if (styletags.bolds === true) {\n var wasBold = oldStyle.indexOf(CHR_bold) > -1;\n var is_Bold = newStyle.indexOf(CHR_bold) > -1;\n if (!wasBold && is_Bold) {\n if (wasItalic) {\n ctxFont = ctxFont.replace(\"italic \", \"italic bold \");\n } else {\n ctxFont = \"bold \" + ctxFont;\n }\n }\n if (wasBold && !is_Bold) {\n ctxFont = ctxFont.replace(\"bold \", \"\");\n }\n }\n if (styletags.italics === true) {\n var wasItalic = oldStyle.indexOf(CHR_italic) > -1;\n var is_Italic = newStyle.indexOf(CHR_italic) > -1;\n if (!wasItalic && is_Italic) {\n ctxFont = \"italic \" + ctxFont;\n }\n if (wasItalic && !is_Italic) {\n ctxFont = ctxFont.replace(\"italic \", \"\");\n }\n }\n context.font = ctxFont;\n }\n for (i = 0; i < numberOfLines; ++i) {\n var txt = allTexts[i] + \"\\n\";\n xPos = 0;\n yPos = i * lineHeight;\n zPos = fontSize;\n buffer = \"\";\n for (j = 0; j < txt.length; ++j) {\n var style = j + nDone < allStyles.length ? allStyles[j + nDone] : allStyles[allStyles.length - 1];\n if (activeStyle === style) {\n buffer += txt[j];\n } else {\n writeBuffer();\n buffer = txt[j];\n if (style !== void 0) {\n changeStyle(activeStyle, style);\n activeStyle = style;\n }\n }\n }\n writeBuffer();\n nDone += txt.length;\n var width = Math.round(xPos + 2 * offsetX) | 0;\n if (maxWidth < width) maxWidth = width;\n }\n var xCut = maxWidth;\n var yCut = offsetY + lineHeight * numberOfLines;\n var pixels = ndarray(context.getImageData(0, 0, xCut, yCut).data, [yCut, xCut, 4]);\n return pixels.pick(-1, -1, 0).transpose(1, 0);\n }\n function getContour(pixels, doSimplify) {\n var contour = surfaceNets(pixels, 128);\n if (doSimplify) {\n return simplify(contour.cells, contour.positions, 0.25);\n }\n return {\n edges: contour.cells,\n positions: contour.positions\n };\n }\n function processPixelsImpl(pixels, options, size, simplify2) {\n var contour = getContour(pixels, simplify2);\n var positions = transformPositions(contour.positions, options, size);\n var edges = contour.edges;\n var flip = \"ccw\" === options.orientation;\n cleanPSLG(positions, edges);\n if (options.polygons || options.polygon || options.polyline) {\n var result = toPolygonCrappy(edges, positions);\n var nresult = new Array(result.length);\n for (var i = 0; i < result.length; ++i) {\n var loops = result[i];\n var nloops = new Array(loops.length);\n for (var j = 0; j < loops.length; ++j) {\n var loop = loops[j];\n var nloop = new Array(loop.length);\n for (var k = 0; k < loop.length; ++k) {\n nloop[k] = positions[loop[k]].slice();\n }\n if (flip) {\n nloop.reverse();\n }\n nloops[j] = nloop;\n }\n nresult[i] = nloops;\n }\n return nresult;\n } else if (options.triangles || options.triangulate || options.triangle) {\n return {\n cells: cdt2d(positions, edges, {\n delaunay: false,\n exterior: false,\n interior: true\n }),\n positions\n };\n } else {\n return {\n edges,\n positions\n };\n }\n }\n function processPixels(pixels, options, size) {\n try {\n return processPixelsImpl(pixels, options, size, true);\n } catch (e) {\n }\n try {\n return processPixelsImpl(pixels, options, size, false);\n } catch (e) {\n }\n if (options.polygons || options.polyline || options.polygon) {\n return [];\n }\n if (options.triangles || options.triangulate || options.triangle) {\n return {\n cells: [],\n positions: []\n };\n }\n return {\n edges: [],\n positions: []\n };\n }\n function vectorizeText(str, canvas, context, options) {\n var size = 64;\n var lineSpacing = 1.25;\n var styletags = {\n breaklines: false,\n bolds: false,\n italics: false,\n subscripts: false,\n superscripts: false\n };\n if (options) {\n if (options.size && options.size > 0) size = options.size;\n if (options.lineSpacing && options.lineSpacing > 0) lineSpacing = options.lineSpacing;\n if (options.styletags && options.styletags.breaklines) styletags.breaklines = options.styletags.breaklines ? true : false;\n if (options.styletags && options.styletags.bolds) styletags.bolds = options.styletags.bolds ? true : false;\n if (options.styletags && options.styletags.italics) styletags.italics = options.styletags.italics ? true : false;\n if (options.styletags && options.styletags.subscripts) styletags.subscripts = options.styletags.subscripts ? true : false;\n if (options.styletags && options.styletags.superscripts) styletags.superscripts = options.styletags.superscripts ? true : false;\n }\n context.font = [\n options.fontStyle,\n options.fontVariant,\n options.fontWeight,\n size + \"px\",\n options.font\n ].filter(function(d) {\n return d;\n }).join(\" \");\n context.textAlign = \"start\";\n context.textBaseline = \"alphabetic\";\n context.direction = \"ltr\";\n var pixels = getPixels(canvas, context, str, size, lineSpacing, styletags);\n return processPixels(pixels, options, size);\n }\n }\n ),\n /***/\n 1538: (\n /***/\n function(module2) {\n (function WeakMapModule() {\n \"use strict\";\n if (typeof ses !== \"undefined\" && ses.ok && !ses.ok()) {\n return;\n }\n function weakMapPermitHostObjects(map) {\n if (map.permitHostObjects___) {\n map.permitHostObjects___(weakMapPermitHostObjects);\n }\n }\n if (typeof ses !== \"undefined\") {\n ses.weakMapPermitHostObjects = weakMapPermitHostObjects;\n }\n var doubleWeakMapCheckSilentFailure = false;\n if (typeof WeakMap === \"function\") {\n var HostWeakMap = WeakMap;\n if (typeof navigator !== \"undefined\" && /Firefox/.test(navigator.userAgent)) {\n } else {\n var testMap = new HostWeakMap();\n var testObject = Object.freeze({});\n testMap.set(testObject, 1);\n if (testMap.get(testObject) !== 1) {\n doubleWeakMapCheckSilentFailure = true;\n } else {\n module2.exports = WeakMap;\n return;\n }\n }\n }\n var hop = Object.prototype.hasOwnProperty;\n var gopn = Object.getOwnPropertyNames;\n var defProp = Object.defineProperty;\n var isExtensible = Object.isExtensible;\n var HIDDEN_NAME_PREFIX = \"weakmap:\";\n var HIDDEN_NAME = HIDDEN_NAME_PREFIX + \"ident:\" + Math.random() + \"___\";\n if (typeof crypto !== \"undefined\" && typeof crypto.getRandomValues === \"function\" && typeof ArrayBuffer === \"function\" && typeof Uint8Array === \"function\") {\n var ab = new ArrayBuffer(25);\n var u8s = new Uint8Array(ab);\n crypto.getRandomValues(u8s);\n HIDDEN_NAME = HIDDEN_NAME_PREFIX + \"rand:\" + Array.prototype.map.call(u8s, function(u8) {\n return (u8 % 36).toString(36);\n }).join(\"\") + \"___\";\n }\n function isNotHiddenName(name2) {\n return !(name2.substr(0, HIDDEN_NAME_PREFIX.length) == HIDDEN_NAME_PREFIX && name2.substr(name2.length - 3) === \"___\");\n }\n defProp(Object, \"getOwnPropertyNames\", {\n value: function fakeGetOwnPropertyNames(obj) {\n return gopn(obj).filter(isNotHiddenName);\n }\n });\n if (\"getPropertyNames\" in Object) {\n var originalGetPropertyNames = Object.getPropertyNames;\n defProp(Object, \"getPropertyNames\", {\n value: function fakeGetPropertyNames(obj) {\n return originalGetPropertyNames(obj).filter(isNotHiddenName);\n }\n });\n }\n function getHiddenRecord(key) {\n if (key !== Object(key)) {\n throw new TypeError(\"Not an object: \" + key);\n }\n var hiddenRecord = key[HIDDEN_NAME];\n if (hiddenRecord && hiddenRecord.key === key) {\n return hiddenRecord;\n }\n if (!isExtensible(key)) {\n return void 0;\n }\n hiddenRecord = { key };\n try {\n defProp(key, HIDDEN_NAME, {\n value: hiddenRecord,\n writable: false,\n enumerable: false,\n configurable: false\n });\n return hiddenRecord;\n } catch (error) {\n return void 0;\n }\n }\n (function() {\n var oldFreeze = Object.freeze;\n defProp(Object, \"freeze\", {\n value: function identifyingFreeze(obj) {\n getHiddenRecord(obj);\n return oldFreeze(obj);\n }\n });\n var oldSeal = Object.seal;\n defProp(Object, \"seal\", {\n value: function identifyingSeal(obj) {\n getHiddenRecord(obj);\n return oldSeal(obj);\n }\n });\n var oldPreventExtensions = Object.preventExtensions;\n defProp(Object, \"preventExtensions\", {\n value: function identifyingPreventExtensions(obj) {\n getHiddenRecord(obj);\n return oldPreventExtensions(obj);\n }\n });\n })();\n function constFunc(func) {\n func.prototype = null;\n return Object.freeze(func);\n }\n var calledAsFunctionWarningDone = false;\n function calledAsFunctionWarning() {\n if (!calledAsFunctionWarningDone && typeof console !== \"undefined\") {\n calledAsFunctionWarningDone = true;\n console.warn(\"WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future.\");\n }\n }\n var nextId = 0;\n var OurWeakMap = function() {\n if (!(this instanceof OurWeakMap)) {\n calledAsFunctionWarning();\n }\n var keys = [];\n var values = [];\n var id = nextId++;\n function get___(key, opt_default) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord ? hiddenRecord[id] : opt_default;\n } else {\n index = keys.indexOf(key);\n return index >= 0 ? values[index] : opt_default;\n }\n }\n function has___(key) {\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord;\n } else {\n return keys.indexOf(key) >= 0;\n }\n }\n function set___(key, value) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n hiddenRecord[id] = value;\n } else {\n index = keys.indexOf(key);\n if (index >= 0) {\n values[index] = value;\n } else {\n index = keys.length;\n values[index] = value;\n keys[index] = key;\n }\n }\n return this;\n }\n function delete___(key) {\n var hiddenRecord = getHiddenRecord(key);\n var index, lastIndex;\n if (hiddenRecord) {\n return id in hiddenRecord && delete hiddenRecord[id];\n } else {\n index = keys.indexOf(key);\n if (index < 0) {\n return false;\n }\n lastIndex = keys.length - 1;\n keys[index] = void 0;\n values[index] = values[lastIndex];\n keys[index] = keys[lastIndex];\n keys.length = lastIndex;\n values.length = lastIndex;\n return true;\n }\n }\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(get___) },\n has___: { value: constFunc(has___) },\n set___: { value: constFunc(set___) },\n delete___: { value: constFunc(delete___) }\n });\n };\n OurWeakMap.prototype = Object.create(Object.prototype, {\n get: {\n /**\n * Return the value most recently associated with key, or\n * opt_default if none.\n */\n value: function get(key, opt_default) {\n return this.get___(key, opt_default);\n },\n writable: true,\n configurable: true\n },\n has: {\n /**\n * Is there a value associated with key in this WeakMap?\n */\n value: function has(key) {\n return this.has___(key);\n },\n writable: true,\n configurable: true\n },\n set: {\n /**\n * Associate value with key in this WeakMap, overwriting any\n * previous association if present.\n */\n value: function set(key, value) {\n return this.set___(key, value);\n },\n writable: true,\n configurable: true\n },\n \"delete\": {\n /**\n * Remove any association for key in this WeakMap, returning\n * whether there was one.\n *\n *

Note that the boolean return here does not work like the\n * {@code delete} operator. The {@code delete} operator returns\n * whether the deletion succeeds at bringing about a state in\n * which the deleted property is absent. The {@code delete}\n * operator therefore returns true if the property was already\n * absent, whereas this {@code delete} method returns false if\n * the association was already absent.\n */\n value: function remove(key) {\n return this.delete___(key);\n },\n writable: true,\n configurable: true\n }\n });\n if (typeof HostWeakMap === \"function\") {\n (function() {\n if (doubleWeakMapCheckSilentFailure && typeof Proxy !== \"undefined\") {\n Proxy = void 0;\n }\n function DoubleWeakMap() {\n if (!(this instanceof OurWeakMap)) {\n calledAsFunctionWarning();\n }\n var hmap = new HostWeakMap();\n var omap = void 0;\n var enableSwitching = false;\n function dget(key, opt_default) {\n if (omap) {\n return hmap.has(key) ? hmap.get(key) : omap.get___(key, opt_default);\n } else {\n return hmap.get(key, opt_default);\n }\n }\n function dhas(key) {\n return hmap.has(key) || (omap ? omap.has___(key) : false);\n }\n var dset;\n if (doubleWeakMapCheckSilentFailure) {\n dset = function(key, value) {\n hmap.set(key, value);\n if (!hmap.has(key)) {\n if (!omap) {\n omap = new OurWeakMap();\n }\n omap.set(key, value);\n }\n return this;\n };\n } else {\n dset = function(key, value) {\n if (enableSwitching) {\n try {\n hmap.set(key, value);\n } catch (e) {\n if (!omap) {\n omap = new OurWeakMap();\n }\n omap.set___(key, value);\n }\n } else {\n hmap.set(key, value);\n }\n return this;\n };\n }\n function ddelete(key) {\n var result = !!hmap[\"delete\"](key);\n if (omap) {\n return omap.delete___(key) || result;\n }\n return result;\n }\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(dget) },\n has___: { value: constFunc(dhas) },\n set___: { value: constFunc(dset) },\n delete___: { value: constFunc(ddelete) },\n permitHostObjects___: { value: constFunc(function(token) {\n if (token === weakMapPermitHostObjects) {\n enableSwitching = true;\n } else {\n throw new Error(\"bogus call to permitHostObjects___\");\n }\n }) }\n });\n }\n DoubleWeakMap.prototype = OurWeakMap.prototype;\n module2.exports = DoubleWeakMap;\n Object.defineProperty(WeakMap.prototype, \"constructor\", {\n value: WeakMap,\n enumerable: false,\n // as default .constructor is\n configurable: true,\n writable: true\n });\n })();\n } else {\n if (typeof Proxy !== \"undefined\") {\n Proxy = void 0;\n }\n module2.exports = OurWeakMap;\n }\n })();\n }\n ),\n /***/\n 236: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var hiddenStore = __webpack_require__2(8284);\n module2.exports = createStore;\n function createStore() {\n var key = {};\n return function(obj) {\n if ((typeof obj !== \"object\" || obj === null) && typeof obj !== \"function\") {\n throw new Error(\"Weakmap-shim: Key must be object\");\n }\n var store = obj.valueOf(key);\n return store && store.identity === key ? store : hiddenStore(obj, key);\n };\n }\n }\n ),\n /***/\n 8284: (\n /***/\n function(module2) {\n module2.exports = hiddenStore;\n function hiddenStore(obj, key) {\n var store = { identity: key };\n var valueOf = obj.valueOf;\n Object.defineProperty(obj, \"valueOf\", {\n value: function(value) {\n return value !== key ? valueOf.apply(this, arguments) : store;\n },\n writable: true\n });\n return store;\n }\n }\n ),\n /***/\n 606: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var createStore = __webpack_require__2(236);\n module2.exports = weakMap;\n function weakMap() {\n var privates = createStore();\n return {\n \"get\": function(key, fallback) {\n var store = privates(key);\n return store.hasOwnProperty(\"value\") ? store.value : fallback;\n },\n \"set\": function(key, value) {\n privates(key).value = value;\n return this;\n },\n \"has\": function(key) {\n return \"value\" in privates(key);\n },\n \"delete\": function(key) {\n return delete privates(key).value;\n }\n };\n }\n }\n ),\n /***/\n 3349: (\n /***/\n function(module2) {\n \"use strict\";\n function CWiseOp() {\n return function(SS, a0, t02, p0, Y0, Y1) {\n var s0 = SS[0], t0p0 = t02[0], index = [0], q0 = t0p0;\n p0 |= 0;\n var i0 = 0, d0s0 = t0p0;\n for (i0 = 0; i0 < s0; ++i0) {\n {\n var da = a0[p0] - Y1;\n var db = a0[p0 + q0] - Y1;\n if (da >= 0 !== db >= 0) {\n Y0.push(index[0] + 0.5 + 0.5 * (da + db) / (da - db));\n }\n }\n p0 += d0s0;\n ++index[0];\n }\n };\n }\n function generateCWiseOp() {\n return CWiseOp();\n }\n var compile = generateCWiseOp;\n function thunk(compile2) {\n var CACHED = {};\n return function zeroCrossings_cwise_thunk(array0, scalar2, scalar3) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, scalar2, scalar3);\n };\n }\n function createThunk(proc) {\n return thunk(compile.bind(void 0, proc));\n }\n function compileCwise(user_args) {\n return createThunk({\n funcName: user_args.funcName\n });\n }\n module2.exports = compileCwise({\n funcName: \"zeroCrossings\"\n });\n }\n ),\n /***/\n 781: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = findZeroCrossings;\n var core = __webpack_require__2(3349);\n function findZeroCrossings(array, level) {\n var cross = [];\n level = +level || 0;\n core(array.hi(array.shape[0] - 1), cross, level);\n return cross;\n }\n }\n ),\n /***/\n 7790: (\n /***/\n function() {\n }\n )\n /******/\n };\n var __webpack_module_cache__ = {};\n function __webpack_require__(moduleId) {\n var cachedModule = __webpack_module_cache__[moduleId];\n if (cachedModule !== void 0) {\n return cachedModule.exports;\n }\n var module2 = __webpack_module_cache__[moduleId] = {\n /******/\n id: moduleId,\n /******/\n loaded: false,\n /******/\n exports: {}\n /******/\n };\n __webpack_modules__[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);\n module2.loaded = true;\n return module2.exports;\n }\n !function() {\n __webpack_require__.g = function() {\n if (typeof globalThis === \"object\") return globalThis;\n try {\n return this || new Function(\"return this\")();\n } catch (e) {\n if (typeof window === \"object\") return window;\n }\n }();\n }();\n !function() {\n __webpack_require__.nmd = function(module2) {\n module2.paths = [];\n if (!module2.children) module2.children = [];\n return module2;\n };\n }();\n var __webpack_exports__ = __webpack_require__(1964);\n module.exports = __webpack_exports__;\n })();\n }\n });\n\n // node_modules/color-name/index.js\n var require_color_name = __commonJS({\n \"node_modules/color-name/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50]\n };\n }\n });\n\n // node_modules/color-normalize/node_modules/color-parse/index.js\n var require_color_parse = __commonJS({\n \"node_modules/color-normalize/node_modules/color-parse/index.js\"(exports, module) {\n \"use strict\";\n var names2 = require_color_name();\n module.exports = parse2;\n var baseHues2 = {\n red: 0,\n orange: 60,\n yellow: 120,\n green: 180,\n blue: 240,\n purple: 300\n };\n function parse2(cstr) {\n var m, parts = [], alpha = 1, space;\n if (typeof cstr === \"string\") {\n cstr = cstr.toLowerCase();\n if (names2[cstr]) {\n parts = names2[cstr].slice();\n space = \"rgb\";\n } else if (cstr === \"transparent\") {\n alpha = 0;\n space = \"rgb\";\n parts = [0, 0, 0];\n } else if (/^#[A-Fa-f0-9]+$/.test(cstr)) {\n var base = cstr.slice(1);\n var size = base.length;\n var isShort = size <= 4;\n alpha = 1;\n if (isShort) {\n parts = [\n parseInt(base[0] + base[0], 16),\n parseInt(base[1] + base[1], 16),\n parseInt(base[2] + base[2], 16)\n ];\n if (size === 4) {\n alpha = parseInt(base[3] + base[3], 16) / 255;\n }\n } else {\n parts = [\n parseInt(base[0] + base[1], 16),\n parseInt(base[2] + base[3], 16),\n parseInt(base[4] + base[5], 16)\n ];\n if (size === 8) {\n alpha = parseInt(base[6] + base[7], 16) / 255;\n }\n }\n if (!parts[0]) parts[0] = 0;\n if (!parts[1]) parts[1] = 0;\n if (!parts[2]) parts[2] = 0;\n space = \"rgb\";\n } else if (m = /^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\\s*\\(([^\\)]*)\\)/.exec(cstr)) {\n var name2 = m[1];\n var isRGB = name2 === \"rgb\";\n var base = name2.replace(/a$/, \"\");\n space = base;\n var size = base === \"cmyk\" ? 4 : base === \"gray\" ? 1 : 3;\n parts = m[2].trim().split(/\\s*[,\\/]\\s*|\\s+/).map(function(x, i) {\n if (/%$/.test(x)) {\n if (i === size) return parseFloat(x) / 100;\n if (base === \"rgb\") return parseFloat(x) * 255 / 100;\n return parseFloat(x);\n } else if (base[i] === \"h\") {\n if (/deg$/.test(x)) {\n return parseFloat(x);\n } else if (baseHues2[x] !== void 0) {\n return baseHues2[x];\n }\n }\n return parseFloat(x);\n });\n if (name2 === base) parts.push(1);\n alpha = isRGB ? 1 : parts[size] === void 0 ? 1 : parts[size];\n parts = parts.slice(0, size);\n } else if (cstr.length > 10 && /[0-9](?:\\s|\\/)/.test(cstr)) {\n parts = cstr.match(/([0-9]+)/g).map(function(value) {\n return parseFloat(value);\n });\n space = cstr.match(/([a-z])/ig).join(\"\").toLowerCase();\n }\n } else if (!isNaN(cstr)) {\n space = \"rgb\";\n parts = [cstr >>> 16, (cstr & 65280) >>> 8, cstr & 255];\n } else if (Array.isArray(cstr) || cstr.length) {\n parts = [cstr[0], cstr[1], cstr[2]];\n space = \"rgb\";\n alpha = cstr.length === 4 ? cstr[3] : 1;\n } else if (cstr instanceof Object) {\n if (cstr.r != null || cstr.red != null || cstr.R != null) {\n space = \"rgb\";\n parts = [\n cstr.r || cstr.red || cstr.R || 0,\n cstr.g || cstr.green || cstr.G || 0,\n cstr.b || cstr.blue || cstr.B || 0\n ];\n } else {\n space = \"hsl\";\n parts = [\n cstr.h || cstr.hue || cstr.H || 0,\n cstr.s || cstr.saturation || cstr.S || 0,\n cstr.l || cstr.lightness || cstr.L || cstr.b || cstr.brightness\n ];\n }\n alpha = cstr.a || cstr.alpha || cstr.opacity || 1;\n if (cstr.opacity != null) alpha /= 100;\n }\n return {\n space,\n values: parts,\n alpha\n };\n }\n }\n });\n\n // node_modules/color-normalize/node_modules/color-rgba/index.js\n var require_color_rgba = __commonJS({\n \"node_modules/color-normalize/node_modules/color-rgba/index.js\"(exports, module) {\n \"use strict\";\n var parse2 = require_color_parse();\n module.exports = function rgba3(color2) {\n if (Array.isArray(color2) && color2.raw) color2 = String.raw.apply(null, arguments);\n var values, i, l;\n var parsed = parse2(color2);\n if (!parsed.space) return [];\n var min = [0, 0, 0], max = parsed.space[0] === \"h\" ? [360, 100, 100] : [255, 255, 255];\n values = Array(3);\n values[0] = Math.min(Math.max(parsed.values[0], min[0]), max[0]);\n values[1] = Math.min(Math.max(parsed.values[1], min[1]), max[1]);\n values[2] = Math.min(Math.max(parsed.values[2], min[2]), max[2]);\n if (parsed.space[0] === \"h\") values = hsl2rgb2(values);\n values.push(Math.min(Math.max(parsed.alpha, 0), 1));\n return values;\n };\n function hsl2rgb2(hsl3) {\n var h = hsl3[0] / 360, s = hsl3[1] / 100, l = hsl3[2] / 100, t12, t22, t32, rgb2, val, i = 0;\n if (s === 0) return val = l * 255, [val, val, val];\n t22 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n t12 = 2 * l - t22;\n rgb2 = [0, 0, 0];\n for (; i < 3; ) {\n t32 = h + 1 / 3 * -(i - 1);\n t32 < 0 ? t32++ : t32 > 1 && t32--;\n val = 6 * t32 < 1 ? t12 + (t22 - t12) * 6 * t32 : 2 * t32 < 1 ? t22 : 3 * t32 < 2 ? t12 + (t22 - t12) * (2 / 3 - t32) * 6 : t12;\n rgb2[i++] = val * 255;\n }\n return rgb2;\n }\n }\n });\n\n // node_modules/clamp/index.js\n var require_clamp = __commonJS({\n \"node_modules/clamp/index.js\"(exports, module) {\n module.exports = clamp;\n function clamp(value, min, max) {\n return min < max ? value < min ? min : value > max ? max : value : value < max ? max : value > min ? min : value;\n }\n }\n });\n\n // node_modules/dtype/index.js\n var require_dtype = __commonJS({\n \"node_modules/dtype/index.js\"(exports, module) {\n module.exports = function(dtype) {\n switch (dtype) {\n case \"int8\":\n return Int8Array;\n case \"int16\":\n return Int16Array;\n case \"int32\":\n return Int32Array;\n case \"uint8\":\n return Uint8Array;\n case \"uint16\":\n return Uint16Array;\n case \"uint32\":\n return Uint32Array;\n case \"float32\":\n return Float32Array;\n case \"float64\":\n return Float64Array;\n case \"array\":\n return Array;\n case \"uint8_clamped\":\n return Uint8ClampedArray;\n }\n };\n }\n });\n\n // node_modules/color-normalize/index.js\n var require_color_normalize = __commonJS({\n \"node_modules/color-normalize/index.js\"(exports, module) {\n \"use strict\";\n var rgba3 = require_color_rgba();\n var clamp = require_clamp();\n var dtype = require_dtype();\n module.exports = function normalize(color2, type) {\n if (type === \"float\" || !type) type = \"array\";\n if (type === \"uint\") type = \"uint8\";\n if (type === \"uint_clamped\") type = \"uint8_clamped\";\n var Ctor = dtype(type);\n var output = new Ctor(4);\n var normalize2 = type !== \"uint8\" && type !== \"uint8_clamped\";\n if (!color2.length || typeof color2 === \"string\") {\n color2 = rgba3(color2);\n color2[0] /= 255;\n color2[1] /= 255;\n color2[2] /= 255;\n }\n if (isInt(color2)) {\n output[0] = color2[0];\n output[1] = color2[1];\n output[2] = color2[2];\n output[3] = color2[3] != null ? color2[3] : 255;\n if (normalize2) {\n output[0] /= 255;\n output[1] /= 255;\n output[2] /= 255;\n output[3] /= 255;\n }\n return output;\n }\n if (!normalize2) {\n output[0] = clamp(Math.floor(color2[0] * 255), 0, 255);\n output[1] = clamp(Math.floor(color2[1] * 255), 0, 255);\n output[2] = clamp(Math.floor(color2[2] * 255), 0, 255);\n output[3] = color2[3] == null ? 255 : clamp(Math.floor(color2[3] * 255), 0, 255);\n } else {\n output[0] = color2[0];\n output[1] = color2[1];\n output[2] = color2[2];\n output[3] = color2[3] != null ? color2[3] : 1;\n }\n return output;\n };\n function isInt(color2) {\n if (color2 instanceof Uint8Array || color2 instanceof Uint8ClampedArray) return true;\n if (Array.isArray(color2) && (color2[0] > 1 || color2[0] === 0) && (color2[1] > 1 || color2[1] === 0) && (color2[2] > 1 || color2[2] === 0) && (!color2[3] || color2[3] > 1)) return true;\n return false;\n }\n }\n });\n\n // src/lib/str2rgbarray.js\n var require_str2rgbarray = __commonJS({\n \"src/lib/str2rgbarray.js\"(exports, module) {\n \"use strict\";\n var rgba3 = require_color_normalize();\n function str2RgbaArray(color2) {\n if (!color2) return [0, 0, 0, 1];\n return rgba3(color2);\n }\n module.exports = str2RgbaArray;\n }\n });\n\n // src/lib/gl_format_color.js\n var require_gl_format_color = __commonJS({\n \"src/lib/gl_format_color.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var rgba3 = require_color_normalize();\n var Colorscale = require_colorscale();\n var colorDflt = require_attributes3().defaultLine;\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n var colorDfltRgba = rgba3(colorDflt);\n var opacityDflt = 1;\n function calculateColor(colorIn, opacityIn) {\n var colorOut = colorIn;\n colorOut[3] *= opacityIn;\n return colorOut;\n }\n function validateColor(colorIn) {\n if (isNumeric(colorIn)) return colorDfltRgba;\n var colorOut = rgba3(colorIn);\n return colorOut.length ? colorOut : colorDfltRgba;\n }\n function validateOpacity(opacityIn) {\n return isNumeric(opacityIn) ? opacityIn : opacityDflt;\n }\n function formatColor(containerIn, opacityIn, len) {\n var colorIn = containerIn.color;\n if (colorIn && colorIn._inputArray) colorIn = colorIn._inputArray;\n var isArrayColorIn = isArrayOrTypedArray(colorIn);\n var isArrayOpacityIn = isArrayOrTypedArray(opacityIn);\n var cOpts = Colorscale.extractOpts(containerIn);\n var colorOut = [];\n var sclFunc, getColor, getOpacity, colori, opacityi;\n if (cOpts.colorscale !== void 0) {\n sclFunc = Colorscale.makeColorScaleFuncFromTrace(containerIn);\n } else {\n sclFunc = validateColor;\n }\n if (isArrayColorIn) {\n getColor = function(c, i2) {\n return c[i2] === void 0 ? colorDfltRgba : rgba3(sclFunc(c[i2]));\n };\n } else getColor = validateColor;\n if (isArrayOpacityIn) {\n getOpacity = function(o, i2) {\n return o[i2] === void 0 ? opacityDflt : validateOpacity(o[i2]);\n };\n } else getOpacity = validateOpacity;\n if (isArrayColorIn || isArrayOpacityIn) {\n for (var i = 0; i < len; i++) {\n colori = getColor(colorIn, i);\n opacityi = getOpacity(opacityIn, i);\n colorOut[i] = calculateColor(colori, opacityi);\n }\n } else colorOut = calculateColor(rgba3(colorIn), opacityIn);\n return colorOut;\n }\n function parseColorScale(cont) {\n var cOpts = Colorscale.extractOpts(cont);\n var colorscale = cOpts.colorscale;\n if (cOpts.reversescale) colorscale = Colorscale.flipScale(cOpts.colorscale);\n return colorscale.map(function(elem) {\n var index = elem[0];\n var color2 = tinycolor(elem[1]);\n var rgb2 = color2.toRgb();\n return {\n index,\n rgb: [rgb2.r, rgb2.g, rgb2.b, rgb2.a]\n };\n });\n }\n module.exports = {\n formatColor,\n parseColorScale\n };\n }\n });\n\n // src/constants/gl3d_dashes.js\n var require_gl3d_dashes = __commonJS({\n \"src/constants/gl3d_dashes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n solid: [[], 0],\n dot: [[0.5, 1], 200],\n dash: [[0.5, 1], 50],\n longdash: [[0.5, 1], 10],\n dashdot: [[0.5, 0.625, 0.875, 1], 50],\n longdashdot: [[0.5, 0.7, 0.8, 1], 10]\n };\n }\n });\n\n // src/constants/gl3d_markers.js\n var require_gl3d_markers = __commonJS({\n \"src/constants/gl3d_markers.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n circle: \"\\u25CF\",\n \"circle-open\": \"\\u25CB\",\n square: \"\\u25A0\",\n \"square-open\": \"\\u25A1\",\n diamond: \"\\u25C6\",\n \"diamond-open\": \"\\u25C7\",\n cross: \"+\",\n x: \"\\u274C\"\n };\n }\n });\n\n // src/traces/scatter3d/calc_errors.js\n var require_calc_errors = __commonJS({\n \"src/traces/scatter3d/calc_errors.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n function calculateAxisErrors(data, params, scaleFactor, axis) {\n if (!params || !params.visible) return null;\n var computeError = Registry.getComponentMethod(\"errorbars\", \"makeComputeError\")(params);\n var result = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n var errors = computeError(+data[i], i);\n if (axis.type === \"log\") {\n var point = axis.c2l(data[i]);\n var min = data[i] - errors[0];\n var max = data[i] + errors[1];\n result[i] = [\n (axis.c2l(min, true) - point) * scaleFactor,\n (axis.c2l(max, true) - point) * scaleFactor\n ];\n if (min > 0) {\n var lower = axis.c2l(min);\n if (!axis._lowerLogErrorBound) axis._lowerLogErrorBound = lower;\n axis._lowerErrorBound = Math.min(axis._lowerLogErrorBound, lower);\n }\n } else {\n result[i] = [\n -errors[0] * scaleFactor,\n errors[1] * scaleFactor\n ];\n }\n }\n return result;\n }\n function dataLength(array) {\n for (var i = 0; i < array.length; i++) {\n if (array[i]) return array[i].length;\n }\n return 0;\n }\n function calculateErrors(data, scaleFactor, sceneLayout) {\n var errors = [\n calculateAxisErrors(data.x, data.error_x, scaleFactor[0], sceneLayout.xaxis),\n calculateAxisErrors(data.y, data.error_y, scaleFactor[1], sceneLayout.yaxis),\n calculateAxisErrors(data.z, data.error_z, scaleFactor[2], sceneLayout.zaxis)\n ];\n var n = dataLength(errors);\n if (n === 0) return null;\n var errorBounds = new Array(n);\n for (var i = 0; i < n; i++) {\n var bound = [[0, 0, 0], [0, 0, 0]];\n for (var j = 0; j < 3; j++) {\n if (errors[j]) {\n for (var k = 0; k < 2; k++) {\n bound[k][j] = errors[j][i][k];\n }\n }\n }\n errorBounds[i] = bound;\n }\n return errorBounds;\n }\n module.exports = calculateErrors;\n }\n });\n\n // src/traces/scatter3d/convert.js\n var require_convert2 = __commonJS({\n \"src/traces/scatter3d/convert.js\"(exports, module) {\n \"use strict\";\n var createLinePlot = require_stackgl_modules().gl_line3d;\n var createScatterPlot = require_stackgl_modules().gl_scatter3d;\n var createErrorBars = require_stackgl_modules().gl_error3d;\n var createMesh = require_stackgl_modules().gl_mesh3d;\n var triangulate = require_stackgl_modules().delaunay_triangulate;\n var Lib = require_lib();\n var str2RgbaArray = require_str2rgbarray();\n var formatColor = require_gl_format_color().formatColor;\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var DASH_PATTERNS = require_gl3d_dashes();\n var MARKER_SYMBOLS = require_gl3d_markers();\n var Axes = require_axes();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var calculateError = require_calc_errors();\n function LineWithMarkers(scene, uid) {\n this.scene = scene;\n this.uid = uid;\n this.linePlot = null;\n this.scatterPlot = null;\n this.errorBars = null;\n this.textMarkers = null;\n this.delaunayMesh = null;\n this.color = null;\n this.mode = \"\";\n this.dataPoints = [];\n this.axesBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.textLabels = null;\n this.data = null;\n }\n var proto = LineWithMarkers.prototype;\n proto.handlePick = function(selection) {\n if (selection.object && (selection.object === this.linePlot || selection.object === this.delaunayMesh || selection.object === this.textMarkers || selection.object === this.scatterPlot)) {\n var ind = selection.index = selection.data.index;\n if (selection.object.highlight) {\n selection.object.highlight(null);\n }\n if (this.scatterPlot) {\n selection.object = this.scatterPlot;\n this.scatterPlot.highlight(selection.data);\n }\n selection.textLabel = \"\";\n if (this.textLabels) {\n if (Lib.isArrayOrTypedArray(this.textLabels)) {\n if (this.textLabels[ind] || this.textLabels[ind] === 0) {\n selection.textLabel = this.textLabels[ind];\n }\n } else {\n selection.textLabel = this.textLabels;\n }\n }\n selection.traceCoordinate = [\n this.data.x[ind],\n this.data.y[ind],\n this.data.z[ind]\n ];\n return true;\n }\n };\n function constructDelaunay(points, color2, axis) {\n var u = (axis + 1) % 3;\n var v = (axis + 2) % 3;\n var filteredPoints = [];\n var filteredIds = [];\n var i;\n for (i = 0; i < points.length; ++i) {\n var p = points[i];\n if (isNaN(p[u]) || !isFinite(p[u]) || isNaN(p[v]) || !isFinite(p[v])) {\n continue;\n }\n filteredPoints.push([p[u], p[v]]);\n filteredIds.push(i);\n }\n var cells = triangulate(filteredPoints);\n for (i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n c[j] = filteredIds[c[j]];\n }\n }\n return {\n positions: points,\n cells,\n meshColor: color2\n };\n }\n function calculateErrorParams(errors) {\n var capSize = [0, 0, 0];\n var color2 = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];\n var lineWidth = [1, 1, 1];\n for (var i = 0; i < 3; i++) {\n var e = errors[i];\n if (e && e.copy_zstyle !== false && errors[2].visible !== false) e = errors[2];\n if (!e || !e.visible) continue;\n capSize[i] = e.width / 2;\n color2[i] = str2RgbaArray(e.color);\n lineWidth[i] = e.thickness;\n }\n return { capSize, color: color2, lineWidth };\n }\n function parseAlignmentX(a) {\n if (a === null || a === void 0) return 0;\n return a.indexOf(\"left\") > -1 ? -1 : a.indexOf(\"right\") > -1 ? 1 : 0;\n }\n function parseAlignmentY(a) {\n if (a === null || a === void 0) return 0;\n return a.indexOf(\"top\") > -1 ? -1 : a.indexOf(\"bottom\") > -1 ? 1 : 0;\n }\n function calculateTextOffset(tp) {\n var defaultAlignmentX = 0;\n var defaultAlignmentY = 0;\n var textOffset = [\n defaultAlignmentX,\n defaultAlignmentY\n ];\n if (Array.isArray(tp)) {\n for (var i = 0; i < tp.length; i++) {\n textOffset[i] = [\n defaultAlignmentX,\n defaultAlignmentY\n ];\n if (tp[i]) {\n textOffset[i][0] = parseAlignmentX(tp[i]);\n textOffset[i][1] = parseAlignmentY(tp[i]);\n }\n }\n } else {\n textOffset[0] = parseAlignmentX(tp);\n textOffset[1] = parseAlignmentY(tp);\n }\n return textOffset;\n }\n function calculateSize(sizeIn, sizeFn) {\n return sizeFn(sizeIn * 4);\n }\n function calculateSymbol(symbolIn) {\n return MARKER_SYMBOLS[symbolIn];\n }\n function formatParam(paramIn, len, calculate, dflt, extraFn) {\n var paramOut = null;\n if (Lib.isArrayOrTypedArray(paramIn)) {\n paramOut = [];\n for (var i = 0; i < len; i++) {\n if (paramIn[i] === void 0) paramOut[i] = dflt;\n else paramOut[i] = calculate(paramIn[i], extraFn);\n }\n } else paramOut = calculate(paramIn, Lib.identity);\n return paramOut;\n }\n function convertPlotlyOptions(scene, data) {\n var points = [];\n var sceneLayout = scene.fullSceneLayout;\n var scaleFactor = scene.dataScale;\n var xaxis = sceneLayout.xaxis;\n var yaxis = sceneLayout.yaxis;\n var zaxis = sceneLayout.zaxis;\n var marker = data.marker;\n var line = data.line;\n var x = data.x || [];\n var y = data.y || [];\n var z = data.z || [];\n var len = x.length;\n var xcalendar = data.xcalendar;\n var ycalendar = data.ycalendar;\n var zcalendar = data.zcalendar;\n var xc, yc, zc;\n var params, i;\n var text;\n for (i = 0; i < len; i++) {\n xc = xaxis.d2l(x[i], 0, xcalendar) * scaleFactor[0];\n yc = yaxis.d2l(y[i], 0, ycalendar) * scaleFactor[1];\n zc = zaxis.d2l(z[i], 0, zcalendar) * scaleFactor[2];\n points[i] = [xc, yc, zc];\n }\n if (Array.isArray(data.text)) {\n text = data.text;\n } else if (Lib.isTypedArray(data.text)) {\n text = Array.from(data.text);\n } else if (data.text !== void 0) {\n text = new Array(len);\n for (i = 0; i < len; i++) text[i] = data.text;\n }\n function formatter(axName, val) {\n var ax = sceneLayout[axName];\n return Axes.tickText(ax, ax.d2l(val), true).text;\n }\n var texttemplate = data.texttemplate;\n if (texttemplate) {\n var fullLayout = scene.fullLayout;\n var d3locale = fullLayout._d3locale;\n var isArray = Array.isArray(texttemplate);\n var N = isArray ? Math.min(texttemplate.length, len) : len;\n var txt = isArray ? function(i2) {\n return texttemplate[i2];\n } : function() {\n return texttemplate;\n };\n text = new Array(N);\n for (i = 0; i < N; i++) {\n var d = { x: x[i], y: y[i], z: z[i] };\n var labels = {\n xLabel: formatter(\"xaxis\", x[i]),\n yLabel: formatter(\"yaxis\", y[i]),\n zLabel: formatter(\"zaxis\", z[i])\n };\n var pointValues = {};\n appendArrayPointValue(pointValues, data, i);\n var meta = data._meta || {};\n text[i] = Lib.texttemplateString(txt(i), labels, d3locale, pointValues, d, meta);\n }\n }\n params = {\n position: points,\n mode: data.mode,\n text\n };\n if (\"line\" in data) {\n params.lineColor = formatColor(line, 1, len);\n params.lineWidth = line.width;\n params.lineDashes = line.dash;\n }\n if (\"marker\" in data) {\n var sizeFn = makeBubbleSizeFn(data);\n params.scatterColor = formatColor(marker, 1, len);\n params.scatterSize = formatParam(marker.size, len, calculateSize, 20, sizeFn);\n params.scatterMarker = formatParam(marker.symbol, len, calculateSymbol, \"\\u25CF\");\n params.scatterLineWidth = marker.line.width;\n params.scatterLineColor = formatColor(marker.line, 1, len);\n params.scatterAngle = 0;\n }\n if (\"textposition\" in data) {\n params.textOffset = calculateTextOffset(data.textposition);\n params.textColor = formatColor(data.textfont, 1, len);\n params.textSize = formatParam(data.textfont.size, len, Lib.identity, 12);\n params.textFontFamily = data.textfont.family;\n params.textFontWeight = data.textfont.weight;\n params.textFontStyle = data.textfont.style;\n params.textFontVariant = data.textfont.variant;\n params.textAngle = 0;\n }\n var dims = [\"x\", \"y\", \"z\"];\n params.project = [false, false, false];\n params.projectScale = [1, 1, 1];\n params.projectOpacity = [1, 1, 1];\n for (i = 0; i < 3; ++i) {\n var projection = data.projection[dims[i]];\n if (params.project[i] = projection.show) {\n params.projectOpacity[i] = projection.opacity;\n params.projectScale[i] = projection.scale;\n }\n }\n params.errorBounds = calculateError(data, scaleFactor, sceneLayout);\n var errorParams = calculateErrorParams([data.error_x, data.error_y, data.error_z]);\n params.errorColor = errorParams.color;\n params.errorLineWidth = errorParams.lineWidth;\n params.errorCapSize = errorParams.capSize;\n params.delaunayAxis = data.surfaceaxis;\n params.delaunayColor = str2RgbaArray(data.surfacecolor);\n return params;\n }\n function _arrayToColor(color2) {\n if (Lib.isArrayOrTypedArray(color2)) {\n var c = color2[0];\n if (Lib.isArrayOrTypedArray(c)) color2 = c;\n return \"rgb(\" + color2.slice(0, 3).map(function(x) {\n return Math.round(x * 255);\n }) + \")\";\n }\n return null;\n }\n function arrayToColor(colors) {\n if (!Lib.isArrayOrTypedArray(colors)) {\n return null;\n }\n if (colors.length === 4 && typeof colors[0] === \"number\") {\n return _arrayToColor(colors);\n }\n return colors.map(_arrayToColor);\n }\n proto.update = function(data) {\n var gl2 = this.scene.glplot.gl;\n var lineOptions;\n var scatterOptions;\n var errorOptions;\n var textOptions;\n var dashPattern = DASH_PATTERNS.solid;\n this.data = data;\n var options = convertPlotlyOptions(this.scene, data);\n if (\"mode\" in options) {\n this.mode = options.mode;\n }\n if (\"lineDashes\" in options) {\n if (options.lineDashes in DASH_PATTERNS) {\n dashPattern = DASH_PATTERNS[options.lineDashes];\n }\n }\n this.color = arrayToColor(options.scatterColor) || arrayToColor(options.lineColor);\n this.dataPoints = options.position;\n lineOptions = {\n gl: this.scene.glplot.gl,\n position: options.position,\n color: options.lineColor,\n lineWidth: options.lineWidth || 1,\n dashes: dashPattern[0],\n dashScale: dashPattern[1],\n opacity: data.opacity,\n connectGaps: data.connectgaps\n };\n if (this.mode.indexOf(\"lines\") !== -1) {\n if (this.linePlot) this.linePlot.update(lineOptions);\n else {\n this.linePlot = createLinePlot(lineOptions);\n this.linePlot._trace = this;\n this.scene.glplot.add(this.linePlot);\n }\n } else if (this.linePlot) {\n this.scene.glplot.remove(this.linePlot);\n this.linePlot.dispose();\n this.linePlot = null;\n }\n var scatterOpacity = data.opacity;\n if (data.marker && data.marker.opacity !== void 0) scatterOpacity *= data.marker.opacity;\n scatterOptions = {\n gl: this.scene.glplot.gl,\n position: options.position,\n color: options.scatterColor,\n size: options.scatterSize,\n glyph: options.scatterMarker,\n opacity: scatterOpacity,\n orthographic: true,\n lineWidth: options.scatterLineWidth,\n lineColor: options.scatterLineColor,\n project: options.project,\n projectScale: options.projectScale,\n projectOpacity: options.projectOpacity\n };\n if (this.mode.indexOf(\"markers\") !== -1) {\n if (this.scatterPlot) this.scatterPlot.update(scatterOptions);\n else {\n this.scatterPlot = createScatterPlot(scatterOptions);\n this.scatterPlot._trace = this;\n this.scatterPlot.highlightScale = 1;\n this.scene.glplot.add(this.scatterPlot);\n }\n } else if (this.scatterPlot) {\n this.scene.glplot.remove(this.scatterPlot);\n this.scatterPlot.dispose();\n this.scatterPlot = null;\n }\n textOptions = {\n gl: this.scene.glplot.gl,\n position: options.position,\n glyph: options.text,\n color: options.textColor,\n size: options.textSize,\n angle: options.textAngle,\n alignment: options.textOffset,\n font: options.textFontFamily,\n fontWeight: options.textFontWeight,\n fontStyle: options.textFontStyle,\n fontVariant: options.textFontVariant,\n orthographic: true,\n lineWidth: 0,\n project: false,\n opacity: data.opacity\n };\n this.textLabels = data.hovertext || data.text;\n if (this.mode.indexOf(\"text\") !== -1) {\n if (this.textMarkers) this.textMarkers.update(textOptions);\n else {\n this.textMarkers = createScatterPlot(textOptions);\n this.textMarkers._trace = this;\n this.textMarkers.highlightScale = 1;\n this.scene.glplot.add(this.textMarkers);\n }\n } else if (this.textMarkers) {\n this.scene.glplot.remove(this.textMarkers);\n this.textMarkers.dispose();\n this.textMarkers = null;\n }\n errorOptions = {\n gl: this.scene.glplot.gl,\n position: options.position,\n color: options.errorColor,\n error: options.errorBounds,\n lineWidth: options.errorLineWidth,\n capSize: options.errorCapSize,\n opacity: data.opacity\n };\n if (this.errorBars) {\n if (options.errorBounds) {\n this.errorBars.update(errorOptions);\n } else {\n this.scene.glplot.remove(this.errorBars);\n this.errorBars.dispose();\n this.errorBars = null;\n }\n } else if (options.errorBounds) {\n this.errorBars = createErrorBars(errorOptions);\n this.errorBars._trace = this;\n this.scene.glplot.add(this.errorBars);\n }\n if (options.delaunayAxis >= 0) {\n var delaunayOptions = constructDelaunay(\n options.position,\n options.delaunayColor,\n options.delaunayAxis\n );\n delaunayOptions.opacity = data.opacity;\n if (this.delaunayMesh) {\n this.delaunayMesh.update(delaunayOptions);\n } else {\n delaunayOptions.gl = gl2;\n this.delaunayMesh = createMesh(delaunayOptions);\n this.delaunayMesh._trace = this;\n this.scene.glplot.add(this.delaunayMesh);\n }\n } else if (this.delaunayMesh) {\n this.scene.glplot.remove(this.delaunayMesh);\n this.delaunayMesh.dispose();\n this.delaunayMesh = null;\n }\n };\n proto.dispose = function() {\n if (this.linePlot) {\n this.scene.glplot.remove(this.linePlot);\n this.linePlot.dispose();\n }\n if (this.scatterPlot) {\n this.scene.glplot.remove(this.scatterPlot);\n this.scatterPlot.dispose();\n }\n if (this.errorBars) {\n this.scene.glplot.remove(this.errorBars);\n this.errorBars.dispose();\n }\n if (this.textMarkers) {\n this.scene.glplot.remove(this.textMarkers);\n this.textMarkers.dispose();\n }\n if (this.delaunayMesh) {\n this.scene.glplot.remove(this.delaunayMesh);\n this.delaunayMesh.dispose();\n }\n };\n function createLineWithMarkers(scene, data) {\n var plot = new LineWithMarkers(scene, data.uid);\n plot.update(data);\n return plot;\n }\n module.exports = createLineWithMarkers;\n }\n });\n\n // src/traces/scatter3d/attributes.js\n var require_attributes40 = __commonJS({\n \"src/traces/scatter3d/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterAttrs = require_attributes12();\n var fontAttrs = require_font_attributes();\n var colorAttributes = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var baseAttrs = require_attributes2();\n var DASHES = require_gl3d_dashes();\n var MARKER_SYMBOLS = require_gl3d_markers();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var sortObjectKeys = require_sort_object_keys();\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n var lineAttrs = extendFlat({\n width: scatterLineAttrs.width,\n dash: {\n valType: \"enumerated\",\n values: sortObjectKeys(DASHES),\n dflt: \"solid\"\n }\n }, colorAttributes(\"line\"));\n function makeProjectionAttr(axLetter) {\n return {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n scale: {\n valType: \"number\",\n min: 0,\n max: 10,\n dflt: 2 / 3\n }\n };\n }\n var attrs = module.exports = overrideAll({\n x: scatterAttrs.x,\n y: scatterAttrs.y,\n z: {\n valType: \"data_array\"\n },\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({}, {}),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n hovertemplate: hovertemplateAttrs(),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n mode: extendFlat(\n {},\n scatterAttrs.mode,\n // shouldn't this be on-par with 2D?\n { dflt: \"lines+markers\" }\n ),\n surfaceaxis: {\n valType: \"enumerated\",\n values: [-1, 0, 1, 2],\n dflt: -1\n },\n surfacecolor: {\n valType: \"color\"\n },\n projection: {\n x: makeProjectionAttr(\"x\"),\n y: makeProjectionAttr(\"y\"),\n z: makeProjectionAttr(\"z\")\n },\n connectgaps: scatterAttrs.connectgaps,\n line: lineAttrs,\n marker: extendFlat(\n {\n // Parity with scatter.js?\n symbol: {\n valType: \"enumerated\",\n values: sortObjectKeys(MARKER_SYMBOLS),\n dflt: \"circle\",\n arrayOk: true\n },\n size: extendFlat({}, scatterMarkerAttrs.size, { dflt: 8 }),\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: extendFlat({}, scatterMarkerAttrs.opacity, {\n arrayOk: false\n }),\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat(\n {\n width: extendFlat({}, scatterMarkerLineAttrs.width, { arrayOk: false })\n },\n colorAttributes(\"marker.line\")\n )\n },\n colorAttributes(\"marker\")\n ),\n textposition: extendFlat({}, scatterAttrs.textposition, { dflt: \"top center\" }),\n textfont: fontAttrs({\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true,\n editType: \"calc\",\n colorEditType: \"style\",\n arrayOk: true,\n variantValues: [\"normal\", \"small-caps\"]\n }),\n opacity: baseAttrs.opacity,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo)\n }, \"calc\", \"nested\");\n attrs.x.editType = attrs.y.editType = attrs.z.editType = \"calc+clearAxisTypes\";\n }\n });\n\n // src/traces/scatter3d/defaults.js\n var require_defaults36 = __commonJS({\n \"src/traces/scatter3d/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var attributes = require_attributes40();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n coerce(\"mode\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noSelect: true, noAngle: true });\n }\n if (subTypes.hasLines(traceOut)) {\n coerce(\"connectgaps\");\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce, {\n noSelect: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n }\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n if (coerce(\"surfaceaxis\") >= 0) coerce(\"surfacecolor\", lineColor || markerColor);\n var dims = [\"x\", \"y\", \"z\"];\n for (var i = 0; i < 3; ++i) {\n var projection = \"projection.\" + dims[i];\n if (coerce(projection + \".show\")) {\n coerce(projection + \".opacity\");\n coerce(projection + \".scale\");\n }\n }\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"z\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"y\", inherit: \"z\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"x\", inherit: \"z\" });\n };\n function handleXYZDefaults(traceIn, traceOut, coerce, layout) {\n var len = 0;\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\", \"z\"], layout);\n if (x && y && z) {\n len = Math.min(x.length, y.length, z.length);\n traceOut._length = traceOut._xlength = traceOut._ylength = traceOut._zlength = len;\n }\n return len;\n }\n }\n });\n\n // src/traces/scatter3d/calc.js\n var require_calc21 = __commonJS({\n \"src/traces/scatter3d/calc.js\"(exports, module) {\n \"use strict\";\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcColorscale = require_colorscale_calc();\n module.exports = function calc(gd, trace) {\n var cd = [{ x: false, y: false, trace, t: {} }];\n arraysToCalcdata(cd, trace);\n calcColorscale(gd, trace);\n return cd;\n };\n }\n });\n\n // node_modules/get-canvas-context/index.js\n var require_get_canvas_context = __commonJS({\n \"node_modules/get-canvas-context/index.js\"(exports, module) {\n module.exports = getCanvasContext;\n function getCanvasContext(type, opts) {\n if (typeof type !== \"string\") {\n throw new TypeError(\"must specify type string\");\n }\n opts = opts || {};\n if (typeof document === \"undefined\" && !opts.canvas) {\n return null;\n }\n var canvas = opts.canvas || document.createElement(\"canvas\");\n if (typeof opts.width === \"number\") {\n canvas.width = opts.width;\n }\n if (typeof opts.height === \"number\") {\n canvas.height = opts.height;\n }\n var attribs = opts;\n var gl2;\n try {\n var names2 = [type];\n if (type.indexOf(\"webgl\") === 0) {\n names2.push(\"experimental-\" + type);\n }\n for (var i = 0; i < names2.length; i++) {\n gl2 = canvas.getContext(names2[i], attribs);\n if (gl2) return gl2;\n }\n } catch (e) {\n gl2 = null;\n }\n return gl2 || null;\n }\n }\n });\n\n // node_modules/webgl-context/index.js\n var require_webgl_context = __commonJS({\n \"node_modules/webgl-context/index.js\"(exports, module) {\n var getContext = require_get_canvas_context();\n module.exports = function getWebGLContext(opt) {\n return getContext(\"webgl\", opt);\n };\n }\n });\n\n // src/lib/show_no_webgl_msg.js\n var require_show_no_webgl_msg = __commonJS({\n \"src/lib/show_no_webgl_msg.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var noop = function() {\n };\n module.exports = function showNoWebGlMsg(scene) {\n for (var prop in scene) {\n if (typeof scene[prop] === \"function\") scene[prop] = noop;\n }\n scene.destroy = function() {\n scene.container.parentNode.removeChild(scene.container);\n };\n var div = document.createElement(\"div\");\n div.className = \"no-webgl\";\n div.style.cursor = \"pointer\";\n div.style.fontSize = \"24px\";\n div.style.color = Color2.defaults[0];\n div.style.position = \"absolute\";\n div.style.left = div.style.top = \"0px\";\n div.style.width = div.style.height = \"100%\";\n div.style[\"background-color\"] = Color2.lightLine;\n div.style[\"z-index\"] = 30;\n var p = document.createElement(\"p\");\n p.textContent = \"WebGL is not supported by your browser - visit https://get.webgl.org for more info\";\n p.style.position = \"relative\";\n p.style.top = \"50%\";\n p.style.left = \"50%\";\n p.style.height = \"30%\";\n p.style.width = \"50%\";\n p.style.margin = \"-15% 0 0 -25%\";\n div.appendChild(p);\n scene.container.appendChild(div);\n scene.container.style.background = \"#FFFFFF\";\n scene.container.onclick = function() {\n window.open(\"https://get.webgl.org\");\n };\n return false;\n };\n }\n });\n\n // src/plots/gl3d/layout/convert.js\n var require_convert3 = __commonJS({\n \"src/plots/gl3d/layout/convert.js\"(exports, module) {\n \"use strict\";\n var str2RgbaArray = require_str2rgbarray();\n var Lib = require_lib();\n var AXES_NAMES = [\"xaxis\", \"yaxis\", \"zaxis\"];\n function AxesOptions() {\n this.bounds = [\n [-10, -10, -10],\n [10, 10, 10]\n ];\n this.ticks = [[], [], []];\n this.tickEnable = [true, true, true];\n this.tickFont = [\"sans-serif\", \"sans-serif\", \"sans-serif\"];\n this.tickSize = [12, 12, 12];\n this.tickFontWeight = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.tickFontStyle = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.tickFontVariant = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.tickAngle = [0, 0, 0];\n this.tickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.tickPad = [18, 18, 18];\n this.labels = [\"x\", \"y\", \"z\"];\n this.labelEnable = [true, true, true];\n this.labelFont = [\"Open Sans\", \"Open Sans\", \"Open Sans\"];\n this.labelSize = [20, 20, 20];\n this.labelFontWeight = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.labelFontStyle = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.labelFontVariant = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.labelColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.labelPad = [30, 30, 30];\n this.lineEnable = [true, true, true];\n this.lineMirror = [false, false, false];\n this.lineWidth = [1, 1, 1];\n this.lineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.lineTickEnable = [true, true, true];\n this.lineTickMirror = [false, false, false];\n this.lineTickLength = [10, 10, 10];\n this.lineTickWidth = [1, 1, 1];\n this.lineTickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.gridEnable = [true, true, true];\n this.gridWidth = [1, 1, 1];\n this.gridColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.zeroEnable = [true, true, true];\n this.zeroLineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.zeroLineWidth = [2, 2, 2];\n this.backgroundEnable = [true, true, true];\n this.backgroundColor = [\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5]\n ];\n this._defaultTickPad = this.tickPad.slice();\n this._defaultLabelPad = this.labelPad.slice();\n this._defaultLineTickLength = this.lineTickLength.slice();\n }\n var proto = AxesOptions.prototype;\n proto.merge = function(fullLayout, sceneLayout) {\n var opts = this;\n for (var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n if (!axes.visible) {\n opts.tickEnable[i] = false;\n opts.labelEnable[i] = false;\n opts.lineEnable[i] = false;\n opts.lineTickEnable[i] = false;\n opts.gridEnable[i] = false;\n opts.zeroEnable[i] = false;\n opts.backgroundEnable[i] = false;\n continue;\n }\n opts.labels[i] = fullLayout._meta ? Lib.templateString(axes.title.text, fullLayout._meta) : axes.title.text;\n if (\"font\" in axes.title) {\n if (axes.title.font.color) opts.labelColor[i] = str2RgbaArray(axes.title.font.color);\n if (axes.title.font.family) opts.labelFont[i] = axes.title.font.family;\n if (axes.title.font.size) opts.labelSize[i] = axes.title.font.size;\n if (axes.title.font.weight) opts.labelFontWeight[i] = axes.title.font.weight;\n if (axes.title.font.style) opts.labelFontStyle[i] = axes.title.font.style;\n if (axes.title.font.variant) opts.labelFontVariant[i] = axes.title.font.variant;\n }\n if (\"showline\" in axes) opts.lineEnable[i] = axes.showline;\n if (\"linecolor\" in axes) opts.lineColor[i] = str2RgbaArray(axes.linecolor);\n if (\"linewidth\" in axes) opts.lineWidth[i] = axes.linewidth;\n if (\"showgrid\" in axes) opts.gridEnable[i] = axes.showgrid;\n if (\"gridcolor\" in axes) opts.gridColor[i] = str2RgbaArray(axes.gridcolor);\n if (\"gridwidth\" in axes) opts.gridWidth[i] = axes.gridwidth;\n if (axes.type === \"log\") opts.zeroEnable[i] = false;\n else if (\"zeroline\" in axes) opts.zeroEnable[i] = axes.zeroline;\n if (\"zerolinecolor\" in axes) opts.zeroLineColor[i] = str2RgbaArray(axes.zerolinecolor);\n if (\"zerolinewidth\" in axes) opts.zeroLineWidth[i] = axes.zerolinewidth;\n if (\"ticks\" in axes && !!axes.ticks) opts.lineTickEnable[i] = true;\n else opts.lineTickEnable[i] = false;\n if (\"ticklen\" in axes) {\n opts.lineTickLength[i] = opts._defaultLineTickLength[i] = axes.ticklen;\n }\n if (\"tickcolor\" in axes) opts.lineTickColor[i] = str2RgbaArray(axes.tickcolor);\n if (\"tickwidth\" in axes) opts.lineTickWidth[i] = axes.tickwidth;\n if (\"tickangle\" in axes) {\n opts.tickAngle[i] = axes.tickangle === \"auto\" ? -3600 : (\n // i.e. special number to set auto option\n Math.PI * -axes.tickangle / 180\n );\n }\n if (\"showticklabels\" in axes) opts.tickEnable[i] = axes.showticklabels;\n if (\"tickfont\" in axes) {\n if (axes.tickfont.color) opts.tickColor[i] = str2RgbaArray(axes.tickfont.color);\n if (axes.tickfont.family) opts.tickFont[i] = axes.tickfont.family;\n if (axes.tickfont.size) opts.tickSize[i] = axes.tickfont.size;\n if (axes.tickfont.weight) opts.tickFontWeight[i] = axes.tickfont.weight;\n if (axes.tickfont.style) opts.tickFontStyle[i] = axes.tickfont.style;\n if (axes.tickfont.variant) opts.tickFontVariant[i] = axes.tickfont.variant;\n }\n if (\"mirror\" in axes) {\n if ([\"ticks\", \"all\", \"allticks\"].indexOf(axes.mirror) !== -1) {\n opts.lineTickMirror[i] = true;\n opts.lineMirror[i] = true;\n } else if (axes.mirror === true) {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = true;\n } else {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = false;\n }\n } else opts.lineMirror[i] = false;\n if (\"showbackground\" in axes && axes.showbackground !== false) {\n opts.backgroundEnable[i] = true;\n opts.backgroundColor[i] = str2RgbaArray(axes.backgroundcolor);\n } else opts.backgroundEnable[i] = false;\n }\n };\n function createAxesOptions(fullLayout, sceneLayout) {\n var result = new AxesOptions();\n result.merge(fullLayout, sceneLayout);\n return result;\n }\n module.exports = createAxesOptions;\n }\n });\n\n // src/plots/gl3d/layout/spikes.js\n var require_spikes = __commonJS({\n \"src/plots/gl3d/layout/spikes.js\"(exports, module) {\n \"use strict\";\n var str2RGBArray = require_str2rgbarray();\n var AXES_NAMES = [\"xaxis\", \"yaxis\", \"zaxis\"];\n function SpikeOptions() {\n this.enabled = [true, true, true];\n this.colors = [\n [0, 0, 0, 1],\n [0, 0, 0, 1],\n [0, 0, 0, 1]\n ];\n this.drawSides = [true, true, true];\n this.lineWidth = [1, 1, 1];\n }\n var proto = SpikeOptions.prototype;\n proto.merge = function(sceneLayout) {\n for (var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n if (!axes.visible) {\n this.enabled[i] = false;\n this.drawSides[i] = false;\n continue;\n }\n this.enabled[i] = axes.showspikes;\n this.colors[i] = str2RGBArray(axes.spikecolor);\n this.drawSides[i] = axes.spikesides;\n this.lineWidth[i] = axes.spikethickness;\n }\n };\n function createSpikeOptions(layout) {\n var result = new SpikeOptions();\n result.merge(layout);\n return result;\n }\n module.exports = createSpikeOptions;\n }\n });\n\n // src/plots/gl3d/layout/tick_marks.js\n var require_tick_marks = __commonJS({\n \"src/plots/gl3d/layout/tick_marks.js\"(exports, module) {\n \"use strict\";\n module.exports = computeTickMarks;\n var Axes = require_axes();\n var Lib = require_lib();\n var AXES_NAMES = [\"xaxis\", \"yaxis\", \"zaxis\"];\n var centerPoint = [0, 0, 0];\n function contourLevelsFromTicks(ticks) {\n var result = new Array(3);\n for (var i = 0; i < 3; ++i) {\n var tlevel = ticks[i];\n var clevel = new Array(tlevel.length);\n for (var j = 0; j < tlevel.length; ++j) {\n clevel[j] = tlevel[j].x;\n }\n result[i] = clevel;\n }\n return result;\n }\n function computeTickMarks(scene) {\n var axesOptions = scene.axesOptions;\n var glRange = scene.glplot.axesPixels;\n var sceneLayout = scene.fullSceneLayout;\n var ticks = [[], [], []];\n for (var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n axes._length = (glRange[i].hi - glRange[i].lo) * glRange[i].pixelsPerDataUnit / scene.dataScale[i];\n if (Math.abs(axes._length) === Infinity || isNaN(axes._length)) {\n ticks[i] = [];\n } else {\n axes._input_range = axes.range.slice();\n axes.range[0] = glRange[i].lo / scene.dataScale[i];\n axes.range[1] = glRange[i].hi / scene.dataScale[i];\n axes._m = 1 / (scene.dataScale[i] * glRange[i].pixelsPerDataUnit);\n if (axes.range[0] === axes.range[1]) {\n axes.range[0] -= 1;\n axes.range[1] += 1;\n }\n var tickModeCached = axes.tickmode;\n if (axes.tickmode === \"auto\") {\n axes.tickmode = \"linear\";\n var nticks = axes.nticks || Lib.constrain(axes._length / 40, 4, 9);\n Axes.autoTicks(axes, Math.abs(axes.range[1] - axes.range[0]) / nticks);\n }\n var dataTicks = Axes.calcTicks(axes, { msUTC: true });\n for (var j = 0; j < dataTicks.length; ++j) {\n dataTicks[j].x = dataTicks[j].x * scene.dataScale[i];\n if (axes.type === \"date\") {\n dataTicks[j].text = dataTicks[j].text.replace(/\\/g, \" \");\n }\n }\n ticks[i] = dataTicks;\n axes.tickmode = tickModeCached;\n }\n }\n axesOptions.ticks = ticks;\n for (var i = 0; i < 3; ++i) {\n centerPoint[i] = 0.5 * (scene.glplot.bounds[0][i] + scene.glplot.bounds[1][i]);\n for (var j = 0; j < 2; ++j) {\n axesOptions.bounds[j][i] = scene.glplot.bounds[j][i];\n }\n }\n scene.contourLevels = contourLevelsFromTicks(ticks);\n }\n }\n });\n\n // src/plots/gl3d/scene.js\n var require_scene = __commonJS({\n \"src/plots/gl3d/scene.js\"(exports, module) {\n \"use strict\";\n var glPlot3d = require_stackgl_modules().gl_plot3d;\n var createCamera = glPlot3d.createCamera;\n var createPlot = glPlot3d.createScene;\n var getContext = require_webgl_context();\n var passiveSupported = require_has_passive_events();\n var Registry = require_registry();\n var Lib = require_lib();\n var preserveDrawingBuffer = Lib.preserveDrawingBuffer();\n var Axes = require_axes();\n var Fx = require_fx();\n var str2RGBAarray = require_str2rgbarray();\n var showNoWebGlMsg = require_show_no_webgl_msg();\n var project = require_project();\n var createAxesOptions = require_convert3();\n var createSpikeOptions = require_spikes();\n var computeTickMarks = require_tick_marks();\n var applyAutorangeOptions = require_autorange().applyAutorangeOptions;\n var STATIC_CANVAS;\n var STATIC_CONTEXT;\n var tabletmode = false;\n function Scene(options, fullLayout) {\n var sceneContainer = document.createElement(\"div\");\n var plotContainer = options.container;\n this.graphDiv = options.graphDiv;\n var svgContainer = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"svg\"\n );\n svgContainer.style.position = \"absolute\";\n svgContainer.style.top = svgContainer.style.left = \"0px\";\n svgContainer.style.width = svgContainer.style.height = \"100%\";\n svgContainer.style[\"z-index\"] = 20;\n svgContainer.style[\"pointer-events\"] = \"none\";\n sceneContainer.appendChild(svgContainer);\n this.svgContainer = svgContainer;\n sceneContainer.id = options.id;\n sceneContainer.style.position = \"absolute\";\n sceneContainer.style.top = sceneContainer.style.left = \"0px\";\n sceneContainer.style.width = sceneContainer.style.height = \"100%\";\n plotContainer.appendChild(sceneContainer);\n this.fullLayout = fullLayout;\n this.id = options.id || \"scene\";\n this.fullSceneLayout = fullLayout[this.id];\n this.plotArgs = [[], {}, {}];\n this.axesOptions = createAxesOptions(fullLayout, fullLayout[this.id]);\n this.spikeOptions = createSpikeOptions(fullLayout[this.id]);\n this.container = sceneContainer;\n this.staticMode = !!options.staticPlot;\n this.pixelRatio = this.pixelRatio || options.plotGlPixelRatio || 2;\n this.dataScale = [1, 1, 1];\n this.contourLevels = [[], [], []];\n this.convertAnnotations = Registry.getComponentMethod(\"annotations3d\", \"convert\");\n this.drawAnnotations = Registry.getComponentMethod(\"annotations3d\", \"draw\");\n this.initializeGLPlot();\n }\n var proto = Scene.prototype;\n proto.prepareOptions = function() {\n var scene = this;\n var opts = {\n canvas: scene.canvas,\n gl: scene.gl,\n glOptions: {\n preserveDrawingBuffer,\n premultipliedAlpha: true,\n antialias: true\n },\n container: scene.container,\n axes: scene.axesOptions,\n spikes: scene.spikeOptions,\n pickRadius: 10,\n snapToData: true,\n autoScale: true,\n autoBounds: false,\n cameraObject: scene.camera,\n pixelRatio: scene.pixelRatio\n };\n if (scene.staticMode) {\n if (!STATIC_CONTEXT) {\n STATIC_CANVAS = document.createElement(\"canvas\");\n STATIC_CONTEXT = getContext({\n canvas: STATIC_CANVAS,\n preserveDrawingBuffer: true,\n premultipliedAlpha: true,\n antialias: true\n });\n if (!STATIC_CONTEXT) {\n throw new Error(\"error creating static canvas/context for image server\");\n }\n }\n opts.gl = STATIC_CONTEXT;\n opts.canvas = STATIC_CANVAS;\n }\n return opts;\n };\n var firstInit = true;\n proto.tryCreatePlot = function() {\n var scene = this;\n var opts = scene.prepareOptions();\n var success = true;\n try {\n scene.glplot = createPlot(opts);\n } catch (e) {\n if (scene.staticMode || !firstInit || preserveDrawingBuffer) {\n success = false;\n } else {\n Lib.warn([\n \"webgl setup failed possibly due to\",\n \"false preserveDrawingBuffer config.\",\n \"The mobile/tablet device may not be detected by is-mobile module.\",\n \"Enabling preserveDrawingBuffer in second attempt to create webgl scene...\"\n ].join(\" \"));\n try {\n preserveDrawingBuffer = opts.glOptions.preserveDrawingBuffer = true;\n scene.glplot = createPlot(opts);\n } catch (e2) {\n preserveDrawingBuffer = opts.glOptions.preserveDrawingBuffer = false;\n success = false;\n }\n }\n }\n firstInit = false;\n return success;\n };\n proto.initializeGLCamera = function() {\n var scene = this;\n var cameraData = scene.fullSceneLayout.camera;\n var isOrtho = cameraData.projection.type === \"orthographic\";\n scene.camera = createCamera(scene.container, {\n center: [cameraData.center.x, cameraData.center.y, cameraData.center.z],\n eye: [cameraData.eye.x, cameraData.eye.y, cameraData.eye.z],\n up: [cameraData.up.x, cameraData.up.y, cameraData.up.z],\n _ortho: isOrtho,\n zoomMin: 0.01,\n zoomMax: 100,\n mode: \"orbit\"\n });\n };\n proto.initializeGLPlot = function() {\n var scene = this;\n scene.initializeGLCamera();\n var success = scene.tryCreatePlot();\n if (!success) return showNoWebGlMsg(scene);\n scene.traces = {};\n scene.make4thDimension();\n var gd = scene.graphDiv;\n var layout = gd.layout;\n var makeUpdate = function() {\n var update = {};\n if (scene.isCameraChanged(layout)) {\n update[scene.id + \".camera\"] = scene.getCamera();\n }\n if (scene.isAspectChanged(layout)) {\n update[scene.id + \".aspectratio\"] = scene.glplot.getAspectratio();\n if (layout[scene.id].aspectmode !== \"manual\") {\n scene.fullSceneLayout.aspectmode = layout[scene.id].aspectmode = update[scene.id + \".aspectmode\"] = \"manual\";\n }\n }\n return update;\n };\n var relayoutCallback = function(scene2) {\n if (scene2.fullSceneLayout.dragmode === false) return;\n var update = makeUpdate();\n scene2.saveLayout(layout);\n scene2.graphDiv.emit(\"plotly_relayout\", update);\n };\n if (scene.glplot.canvas) {\n scene.glplot.canvas.addEventListener(\"mouseup\", function() {\n relayoutCallback(scene);\n });\n scene.glplot.canvas.addEventListener(\"touchstart\", function() {\n tabletmode = true;\n });\n scene.glplot.canvas.addEventListener(\"wheel\", function(e) {\n if (gd._context._scrollZoom.gl3d) {\n if (scene.camera._ortho) {\n var s = e.deltaX > e.deltaY ? 1.1 : 1 / 1.1;\n var o = scene.glplot.getAspectratio();\n scene.glplot.setAspectratio({\n x: s * o.x,\n y: s * o.y,\n z: s * o.z\n });\n }\n relayoutCallback(scene);\n }\n }, passiveSupported ? { passive: false } : false);\n scene.glplot.canvas.addEventListener(\"mousemove\", function() {\n if (scene.fullSceneLayout.dragmode === false) return;\n if (scene.camera.mouseListener.buttons === 0) return;\n var update = makeUpdate();\n scene.graphDiv.emit(\"plotly_relayouting\", update);\n });\n if (!scene.staticMode) {\n scene.glplot.canvas.addEventListener(\"webglcontextlost\", function(event) {\n if (gd && gd.emit) {\n gd.emit(\"plotly_webglcontextlost\", {\n event,\n layer: scene.id\n });\n }\n }, false);\n }\n }\n scene.glplot.oncontextloss = function() {\n scene.recoverContext();\n };\n scene.glplot.onrender = function() {\n scene.render();\n };\n return true;\n };\n proto.render = function() {\n var scene = this;\n var gd = scene.graphDiv;\n var trace;\n var svgContainer = scene.svgContainer;\n var clientRect = scene.container.getBoundingClientRect();\n gd._fullLayout._calcInverseTransform(gd);\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n var width = clientRect.width * scaleX;\n var height = clientRect.height * scaleY;\n svgContainer.setAttributeNS(null, \"viewBox\", \"0 0 \" + width + \" \" + height);\n svgContainer.setAttributeNS(null, \"width\", width);\n svgContainer.setAttributeNS(null, \"height\", height);\n computeTickMarks(scene);\n scene.glplot.axes.update(scene.axesOptions);\n var keys = Object.keys(scene.traces);\n var lastPicked = null;\n var selection = scene.glplot.selection;\n for (var i = 0; i < keys.length; ++i) {\n trace = scene.traces[keys[i]];\n if (trace.data.hoverinfo !== \"skip\" && trace.handlePick(selection)) {\n lastPicked = trace;\n }\n if (trace.setContourLevels) trace.setContourLevels();\n }\n function formatter(axLetter, val, hoverformat) {\n var ax = scene.fullSceneLayout[axLetter + \"axis\"];\n if (ax.type !== \"log\") {\n val = ax.d2l(val);\n }\n return Axes.hoverLabelText(ax, val, hoverformat);\n }\n if (lastPicked !== null) {\n var pdata = project(scene.glplot.cameraParams, selection.dataCoordinate);\n trace = lastPicked.data;\n var traceNow = gd._fullData[trace.index];\n var ptNumber = selection.index;\n var labels = {\n xLabel: formatter(\"x\", selection.traceCoordinate[0], trace.xhoverformat),\n yLabel: formatter(\"y\", selection.traceCoordinate[1], trace.yhoverformat),\n zLabel: formatter(\"z\", selection.traceCoordinate[2], trace.zhoverformat)\n };\n var hoverinfo = Fx.castHoverinfo(traceNow, scene.fullLayout, ptNumber);\n var hoverinfoParts = (hoverinfo || \"\").split(\"+\");\n var isHoverinfoAll = hoverinfo && hoverinfo === \"all\";\n if (!traceNow.hovertemplate && !isHoverinfoAll) {\n if (hoverinfoParts.indexOf(\"x\") === -1) labels.xLabel = void 0;\n if (hoverinfoParts.indexOf(\"y\") === -1) labels.yLabel = void 0;\n if (hoverinfoParts.indexOf(\"z\") === -1) labels.zLabel = void 0;\n if (hoverinfoParts.indexOf(\"text\") === -1) selection.textLabel = void 0;\n if (hoverinfoParts.indexOf(\"name\") === -1) lastPicked.name = void 0;\n }\n var tx;\n var vectorTx = [];\n if (trace.type === \"cone\" || trace.type === \"streamtube\") {\n labels.uLabel = formatter(\"x\", selection.traceCoordinate[3], trace.uhoverformat);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"u\") !== -1) {\n vectorTx.push(\"u: \" + labels.uLabel);\n }\n labels.vLabel = formatter(\"y\", selection.traceCoordinate[4], trace.vhoverformat);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"v\") !== -1) {\n vectorTx.push(\"v: \" + labels.vLabel);\n }\n labels.wLabel = formatter(\"z\", selection.traceCoordinate[5], trace.whoverformat);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"w\") !== -1) {\n vectorTx.push(\"w: \" + labels.wLabel);\n }\n labels.normLabel = selection.traceCoordinate[6].toPrecision(3);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"norm\") !== -1) {\n vectorTx.push(\"norm: \" + labels.normLabel);\n }\n if (trace.type === \"streamtube\") {\n labels.divergenceLabel = selection.traceCoordinate[7].toPrecision(3);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"divergence\") !== -1) {\n vectorTx.push(\"divergence: \" + labels.divergenceLabel);\n }\n }\n if (selection.textLabel) {\n vectorTx.push(selection.textLabel);\n }\n tx = vectorTx.join(\"
\");\n } else if (trace.type === \"isosurface\" || trace.type === \"volume\") {\n labels.valueLabel = Axes.hoverLabelText(scene._mockAxis, scene._mockAxis.d2l(selection.traceCoordinate[3]), trace.valuehoverformat);\n vectorTx.push(\"value: \" + labels.valueLabel);\n if (selection.textLabel) {\n vectorTx.push(selection.textLabel);\n }\n tx = vectorTx.join(\"
\");\n } else {\n tx = selection.textLabel;\n }\n var pointData = {\n x: selection.traceCoordinate[0],\n y: selection.traceCoordinate[1],\n z: selection.traceCoordinate[2],\n data: traceNow._input,\n fullData: traceNow,\n curveNumber: traceNow.index,\n pointNumber: ptNumber\n };\n Fx.appendArrayPointValue(pointData, traceNow, ptNumber);\n if (trace._module.eventData) {\n pointData = traceNow._module.eventData(pointData, selection, traceNow, {}, ptNumber);\n }\n var eventData = { points: [pointData] };\n if (scene.fullSceneLayout.hovermode) {\n var bbox = [];\n Fx.loneHover({\n trace: traceNow,\n x: (0.5 + 0.5 * pdata[0] / pdata[3]) * width,\n y: (0.5 - 0.5 * pdata[1] / pdata[3]) * height,\n xLabel: labels.xLabel,\n yLabel: labels.yLabel,\n zLabel: labels.zLabel,\n text: tx,\n name: lastPicked.name,\n color: Fx.castHoverOption(traceNow, ptNumber, \"bgcolor\") || lastPicked.color,\n borderColor: Fx.castHoverOption(traceNow, ptNumber, \"bordercolor\"),\n fontFamily: Fx.castHoverOption(traceNow, ptNumber, \"font.family\"),\n fontSize: Fx.castHoverOption(traceNow, ptNumber, \"font.size\"),\n fontColor: Fx.castHoverOption(traceNow, ptNumber, \"font.color\"),\n nameLength: Fx.castHoverOption(traceNow, ptNumber, \"namelength\"),\n textAlign: Fx.castHoverOption(traceNow, ptNumber, \"align\"),\n hovertemplate: Lib.castOption(traceNow, ptNumber, \"hovertemplate\"),\n hovertemplateLabels: Lib.extendFlat({}, pointData, labels),\n eventData: [pointData]\n }, {\n container: svgContainer,\n gd,\n inOut_bbox: bbox\n });\n pointData.bbox = bbox[0];\n }\n if (selection.distance < 5 && (selection.buttons || tabletmode)) {\n gd.emit(\"plotly_click\", eventData);\n } else {\n gd.emit(\"plotly_hover\", eventData);\n }\n this.oldEventData = eventData;\n } else {\n Fx.loneUnhover(svgContainer);\n if (this.oldEventData) gd.emit(\"plotly_unhover\", this.oldEventData);\n this.oldEventData = void 0;\n }\n scene.drawAnnotations(scene);\n };\n proto.recoverContext = function() {\n var scene = this;\n scene.glplot.dispose();\n var tryRecover = function() {\n if (scene.glplot.gl.isContextLost()) {\n requestAnimationFrame(tryRecover);\n return;\n }\n if (!scene.initializeGLPlot()) {\n Lib.error(\"Catastrophic and unrecoverable WebGL error. Context lost.\");\n return;\n }\n scene.plot.apply(scene, scene.plotArgs);\n };\n requestAnimationFrame(tryRecover);\n };\n var axisProperties = [\"xaxis\", \"yaxis\", \"zaxis\"];\n function computeTraceBounds(scene, trace, bounds) {\n var fullSceneLayout = scene.fullSceneLayout;\n for (var d = 0; d < 3; d++) {\n var axisName = axisProperties[d];\n var axLetter = axisName.charAt(0);\n var ax = fullSceneLayout[axisName];\n var coords = trace[axLetter];\n var calendar = trace[axLetter + \"calendar\"];\n var len = trace[\"_\" + axLetter + \"length\"];\n if (!Lib.isArrayOrTypedArray(coords)) {\n bounds[0][d] = Math.min(bounds[0][d], 0);\n bounds[1][d] = Math.max(bounds[1][d], len - 1);\n } else {\n var v;\n for (var i = 0; i < (len || coords.length); i++) {\n if (Lib.isArrayOrTypedArray(coords[i])) {\n for (var j = 0; j < coords[i].length; ++j) {\n v = ax.d2l(coords[i][j], 0, calendar);\n if (!isNaN(v) && isFinite(v)) {\n bounds[0][d] = Math.min(bounds[0][d], v);\n bounds[1][d] = Math.max(bounds[1][d], v);\n }\n }\n } else {\n v = ax.d2l(coords[i], 0, calendar);\n if (!isNaN(v) && isFinite(v)) {\n bounds[0][d] = Math.min(bounds[0][d], v);\n bounds[1][d] = Math.max(bounds[1][d], v);\n }\n }\n }\n }\n }\n }\n function computeAnnotationBounds(scene, bounds) {\n var fullSceneLayout = scene.fullSceneLayout;\n var annotations = fullSceneLayout.annotations || [];\n for (var d = 0; d < 3; d++) {\n var axisName = axisProperties[d];\n var axLetter = axisName.charAt(0);\n var ax = fullSceneLayout[axisName];\n for (var j = 0; j < annotations.length; j++) {\n var ann = annotations[j];\n if (ann.visible) {\n var pos = ax.r2l(ann[axLetter]);\n if (!isNaN(pos) && isFinite(pos)) {\n bounds[0][d] = Math.min(bounds[0][d], pos);\n bounds[1][d] = Math.max(bounds[1][d], pos);\n }\n }\n }\n }\n }\n proto.plot = function(sceneData, fullLayout, layout) {\n var scene = this;\n scene.plotArgs = [sceneData, fullLayout, layout];\n if (scene.glplot.contextLost) return;\n var data, trace;\n var i, j, axis, axisType;\n var fullSceneLayout = fullLayout[scene.id];\n var sceneLayout = layout[scene.id];\n scene.fullLayout = fullLayout;\n scene.fullSceneLayout = fullSceneLayout;\n scene.axesOptions.merge(fullLayout, fullSceneLayout);\n scene.spikeOptions.merge(fullSceneLayout);\n scene.setViewport(fullSceneLayout);\n scene.updateFx(fullSceneLayout.dragmode, fullSceneLayout.hovermode);\n scene.camera.enableWheel = scene.graphDiv._context._scrollZoom.gl3d;\n scene.glplot.setClearColor(str2RGBAarray(fullSceneLayout.bgcolor));\n scene.setConvert(axis);\n if (!sceneData) sceneData = [];\n else if (!Array.isArray(sceneData)) sceneData = [sceneData];\n var dataBounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n for (i = 0; i < sceneData.length; ++i) {\n data = sceneData[i];\n if (data.visible !== true || data._length === 0) continue;\n computeTraceBounds(this, data, dataBounds);\n }\n computeAnnotationBounds(this, dataBounds);\n var dataScale = [1, 1, 1];\n for (j = 0; j < 3; ++j) {\n if (dataBounds[1][j] === dataBounds[0][j]) {\n dataScale[j] = 1;\n } else {\n dataScale[j] = 1 / (dataBounds[1][j] - dataBounds[0][j]);\n }\n }\n scene.dataScale = dataScale;\n scene.convertAnnotations(this);\n for (i = 0; i < sceneData.length; ++i) {\n data = sceneData[i];\n if (data.visible !== true || data._length === 0) {\n continue;\n }\n trace = scene.traces[data.uid];\n if (trace) {\n if (trace.data.type === data.type) {\n trace.update(data);\n } else {\n trace.dispose();\n trace = data._module.plot(this, data);\n scene.traces[data.uid] = trace;\n }\n } else {\n trace = data._module.plot(this, data);\n scene.traces[data.uid] = trace;\n }\n trace.name = data.name;\n }\n var traceIds = Object.keys(scene.traces);\n traceIdLoop:\n for (i = 0; i < traceIds.length; ++i) {\n for (j = 0; j < sceneData.length; ++j) {\n if (sceneData[j].uid === traceIds[i] && (sceneData[j].visible === true && sceneData[j]._length !== 0)) {\n continue traceIdLoop;\n }\n }\n trace = scene.traces[traceIds[i]];\n trace.dispose();\n delete scene.traces[traceIds[i]];\n }\n scene.glplot.objects.sort(function(a, b) {\n return a._trace.data.index - b._trace.data.index;\n });\n var sceneBounds = [[0, 0, 0], [0, 0, 0]];\n var axisDataRange = [];\n var axisTypeRatios = {};\n for (i = 0; i < 3; ++i) {\n axis = fullSceneLayout[axisProperties[i]];\n axisType = axis.type;\n if (axisType in axisTypeRatios) {\n axisTypeRatios[axisType].acc *= dataScale[i];\n axisTypeRatios[axisType].count += 1;\n } else {\n axisTypeRatios[axisType] = {\n acc: dataScale[i],\n count: 1\n };\n }\n var range;\n if (axis.autorange) {\n sceneBounds[0][i] = Infinity;\n sceneBounds[1][i] = -Infinity;\n var objects = scene.glplot.objects;\n var annotations = scene.fullSceneLayout.annotations || [];\n var axLetter = axis._name.charAt(0);\n for (j = 0; j < objects.length; j++) {\n var obj = objects[j];\n var objBounds = obj.bounds;\n var pad = obj._trace.data._pad || 0;\n if (obj.constructor.name === \"ErrorBars\" && axis._lowerLogErrorBound) {\n sceneBounds[0][i] = Math.min(sceneBounds[0][i], axis._lowerLogErrorBound);\n } else {\n sceneBounds[0][i] = Math.min(sceneBounds[0][i], objBounds[0][i] / dataScale[i] - pad);\n }\n sceneBounds[1][i] = Math.max(sceneBounds[1][i], objBounds[1][i] / dataScale[i] + pad);\n }\n for (j = 0; j < annotations.length; j++) {\n var ann = annotations[j];\n if (ann.visible) {\n var pos = axis.r2l(ann[axLetter]);\n sceneBounds[0][i] = Math.min(sceneBounds[0][i], pos);\n sceneBounds[1][i] = Math.max(sceneBounds[1][i], pos);\n }\n }\n if (\"rangemode\" in axis && axis.rangemode === \"tozero\") {\n sceneBounds[0][i] = Math.min(sceneBounds[0][i], 0);\n sceneBounds[1][i] = Math.max(sceneBounds[1][i], 0);\n }\n if (sceneBounds[0][i] > sceneBounds[1][i]) {\n sceneBounds[0][i] = -1;\n sceneBounds[1][i] = 1;\n } else {\n var d = sceneBounds[1][i] - sceneBounds[0][i];\n sceneBounds[0][i] -= d / 32;\n sceneBounds[1][i] += d / 32;\n }\n range = [\n sceneBounds[0][i],\n sceneBounds[1][i]\n ];\n range = applyAutorangeOptions(range, axis);\n sceneBounds[0][i] = range[0];\n sceneBounds[1][i] = range[1];\n if (axis.isReversed()) {\n var tmp = sceneBounds[0][i];\n sceneBounds[0][i] = sceneBounds[1][i];\n sceneBounds[1][i] = tmp;\n }\n } else {\n range = axis.range;\n sceneBounds[0][i] = axis.r2l(range[0]);\n sceneBounds[1][i] = axis.r2l(range[1]);\n }\n if (sceneBounds[0][i] === sceneBounds[1][i]) {\n sceneBounds[0][i] -= 1;\n sceneBounds[1][i] += 1;\n }\n axisDataRange[i] = sceneBounds[1][i] - sceneBounds[0][i];\n axis.range = [\n sceneBounds[0][i],\n sceneBounds[1][i]\n ];\n axis.limitRange();\n scene.glplot.setBounds(i, {\n min: axis.range[0] * dataScale[i],\n max: axis.range[1] * dataScale[i]\n });\n }\n var aspectRatio;\n var aspectmode = fullSceneLayout.aspectmode;\n if (aspectmode === \"cube\") {\n aspectRatio = [1, 1, 1];\n } else if (aspectmode === \"manual\") {\n var userRatio = fullSceneLayout.aspectratio;\n aspectRatio = [userRatio.x, userRatio.y, userRatio.z];\n } else if (aspectmode === \"auto\" || aspectmode === \"data\") {\n var axesScaleRatio = [1, 1, 1];\n for (i = 0; i < 3; ++i) {\n axis = fullSceneLayout[axisProperties[i]];\n axisType = axis.type;\n var axisRatio = axisTypeRatios[axisType];\n axesScaleRatio[i] = Math.pow(axisRatio.acc, 1 / axisRatio.count) / dataScale[i];\n }\n if (aspectmode === \"data\") {\n aspectRatio = axesScaleRatio;\n } else {\n if (Math.max.apply(null, axesScaleRatio) / Math.min.apply(null, axesScaleRatio) <= 4) {\n aspectRatio = axesScaleRatio;\n } else {\n aspectRatio = [1, 1, 1];\n }\n }\n } else {\n throw new Error(\"scene.js aspectRatio was not one of the enumerated types\");\n }\n fullSceneLayout.aspectratio.x = sceneLayout.aspectratio.x = aspectRatio[0];\n fullSceneLayout.aspectratio.y = sceneLayout.aspectratio.y = aspectRatio[1];\n fullSceneLayout.aspectratio.z = sceneLayout.aspectratio.z = aspectRatio[2];\n scene.glplot.setAspectratio(fullSceneLayout.aspectratio);\n if (!scene.viewInitial.aspectratio) {\n scene.viewInitial.aspectratio = {\n x: fullSceneLayout.aspectratio.x,\n y: fullSceneLayout.aspectratio.y,\n z: fullSceneLayout.aspectratio.z\n };\n }\n if (!scene.viewInitial.aspectmode) {\n scene.viewInitial.aspectmode = fullSceneLayout.aspectmode;\n }\n var domain = fullSceneLayout.domain || null;\n var size = fullLayout._size || null;\n if (domain && size) {\n var containerStyle = scene.container.style;\n containerStyle.position = \"absolute\";\n containerStyle.left = size.l + domain.x[0] * size.w + \"px\";\n containerStyle.top = size.t + (1 - domain.y[1]) * size.h + \"px\";\n containerStyle.width = size.w * (domain.x[1] - domain.x[0]) + \"px\";\n containerStyle.height = size.h * (domain.y[1] - domain.y[0]) + \"px\";\n }\n scene.glplot.redraw();\n };\n proto.destroy = function() {\n var scene = this;\n if (!scene.glplot) return;\n scene.camera.mouseListener.enabled = false;\n scene.container.removeEventListener(\"wheel\", scene.camera.wheelListener);\n scene.camera = null;\n scene.glplot.dispose();\n scene.container.parentNode.removeChild(scene.container);\n scene.glplot = null;\n };\n function getCameraArrays(camera) {\n return [\n [camera.eye.x, camera.eye.y, camera.eye.z],\n [camera.center.x, camera.center.y, camera.center.z],\n [camera.up.x, camera.up.y, camera.up.z]\n ];\n }\n function getLayoutCamera(camera) {\n return {\n up: { x: camera.up[0], y: camera.up[1], z: camera.up[2] },\n center: { x: camera.center[0], y: camera.center[1], z: camera.center[2] },\n eye: { x: camera.eye[0], y: camera.eye[1], z: camera.eye[2] },\n projection: { type: camera._ortho === true ? \"orthographic\" : \"perspective\" }\n };\n }\n proto.getCamera = function() {\n var scene = this;\n scene.camera.view.recalcMatrix(scene.camera.view.lastT());\n return getLayoutCamera(scene.camera);\n };\n proto.setViewport = function(sceneLayout) {\n var scene = this;\n var cameraData = sceneLayout.camera;\n scene.camera.lookAt.apply(this, getCameraArrays(cameraData));\n scene.glplot.setAspectratio(sceneLayout.aspectratio);\n var newOrtho = cameraData.projection.type === \"orthographic\";\n var oldOrtho = scene.camera._ortho;\n if (newOrtho !== oldOrtho) {\n scene.glplot.redraw();\n scene.glplot.clearRGBA();\n scene.glplot.dispose();\n scene.initializeGLPlot();\n }\n };\n proto.isCameraChanged = function(layout) {\n var scene = this;\n var cameraData = scene.getCamera();\n var cameraNestedProp = Lib.nestedProperty(layout, scene.id + \".camera\");\n var cameraDataLastSave = cameraNestedProp.get();\n function same(x, y, i2, j2) {\n var vectors = [\"up\", \"center\", \"eye\"];\n var components = [\"x\", \"y\", \"z\"];\n return y[vectors[i2]] && x[vectors[i2]][components[j2]] === y[vectors[i2]][components[j2]];\n }\n var changed = false;\n if (cameraDataLastSave === void 0) {\n changed = true;\n } else {\n for (var i = 0; i < 3; i++) {\n for (var j = 0; j < 3; j++) {\n if (!same(cameraData, cameraDataLastSave, i, j)) {\n changed = true;\n break;\n }\n }\n }\n if (!cameraDataLastSave.projection || cameraData.projection && cameraData.projection.type !== cameraDataLastSave.projection.type) {\n changed = true;\n }\n }\n return changed;\n };\n proto.isAspectChanged = function(layout) {\n var scene = this;\n var aspectData = scene.glplot.getAspectratio();\n var aspectNestedProp = Lib.nestedProperty(layout, scene.id + \".aspectratio\");\n var aspectDataLastSave = aspectNestedProp.get();\n return aspectDataLastSave === void 0 || (aspectDataLastSave.x !== aspectData.x || aspectDataLastSave.y !== aspectData.y || aspectDataLastSave.z !== aspectData.z);\n };\n proto.saveLayout = function(layout) {\n var scene = this;\n var fullLayout = scene.fullLayout;\n var cameraData;\n var cameraNestedProp;\n var cameraDataLastSave;\n var aspectData;\n var aspectNestedProp;\n var aspectDataLastSave;\n var cameraChanged = scene.isCameraChanged(layout);\n var aspectChanged = scene.isAspectChanged(layout);\n var hasChanged = cameraChanged || aspectChanged;\n if (hasChanged) {\n var preGUI = {};\n if (cameraChanged) {\n cameraData = scene.getCamera();\n cameraNestedProp = Lib.nestedProperty(layout, scene.id + \".camera\");\n cameraDataLastSave = cameraNestedProp.get();\n preGUI[scene.id + \".camera\"] = cameraDataLastSave;\n }\n if (aspectChanged) {\n aspectData = scene.glplot.getAspectratio();\n aspectNestedProp = Lib.nestedProperty(layout, scene.id + \".aspectratio\");\n aspectDataLastSave = aspectNestedProp.get();\n preGUI[scene.id + \".aspectratio\"] = aspectDataLastSave;\n }\n Registry.call(\"_storeDirectGUIEdit\", layout, fullLayout._preGUI, preGUI);\n if (cameraChanged) {\n cameraNestedProp.set(cameraData);\n var cameraFullNP = Lib.nestedProperty(fullLayout, scene.id + \".camera\");\n cameraFullNP.set(cameraData);\n }\n if (aspectChanged) {\n aspectNestedProp.set(aspectData);\n var aspectFullNP = Lib.nestedProperty(fullLayout, scene.id + \".aspectratio\");\n aspectFullNP.set(aspectData);\n scene.glplot.redraw();\n }\n }\n return hasChanged;\n };\n proto.updateFx = function(dragmode, hovermode) {\n var scene = this;\n var camera = scene.camera;\n if (camera) {\n if (dragmode === \"orbit\") {\n camera.mode = \"orbit\";\n camera.keyBindingMode = \"rotate\";\n } else if (dragmode === \"turntable\") {\n camera.up = [0, 0, 1];\n camera.mode = \"turntable\";\n camera.keyBindingMode = \"rotate\";\n var gd = scene.graphDiv;\n var fullLayout = gd._fullLayout;\n var fullCamera = scene.fullSceneLayout.camera;\n var x = fullCamera.up.x;\n var y = fullCamera.up.y;\n var z = fullCamera.up.z;\n if (z / Math.sqrt(x * x + y * y + z * z) < 0.999) {\n var attr = scene.id + \".camera.up\";\n var zUp = { x: 0, y: 0, z: 1 };\n var edits = {};\n edits[attr] = zUp;\n var layout = gd.layout;\n Registry.call(\"_storeDirectGUIEdit\", layout, fullLayout._preGUI, edits);\n fullCamera.up = zUp;\n Lib.nestedProperty(layout, attr).set(zUp);\n }\n } else {\n camera.keyBindingMode = dragmode;\n }\n }\n scene.fullSceneLayout.hovermode = hovermode;\n };\n function flipPixels(pixels, w, h) {\n for (var i = 0, q = h - 1; i < q; ++i, --q) {\n for (var j = 0; j < w; ++j) {\n for (var k = 0; k < 4; ++k) {\n var a = 4 * (w * i + j) + k;\n var b = 4 * (w * q + j) + k;\n var tmp = pixels[a];\n pixels[a] = pixels[b];\n pixels[b] = tmp;\n }\n }\n }\n }\n function correctRGB(pixels, w, h) {\n for (var i = 0; i < h; ++i) {\n for (var j = 0; j < w; ++j) {\n var k = 4 * (w * i + j);\n var a = pixels[k + 3];\n if (a > 0) {\n var q = 255 / a;\n for (var l = 0; l < 3; ++l) {\n pixels[k + l] = Math.min(q * pixels[k + l], 255);\n }\n }\n }\n }\n }\n proto.toImage = function(format) {\n var scene = this;\n if (!format) format = \"png\";\n if (scene.staticMode) scene.container.appendChild(STATIC_CANVAS);\n scene.glplot.redraw();\n var gl2 = scene.glplot.gl;\n var w = gl2.drawingBufferWidth;\n var h = gl2.drawingBufferHeight;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n var pixels = new Uint8Array(w * h * 4);\n gl2.readPixels(0, 0, w, h, gl2.RGBA, gl2.UNSIGNED_BYTE, pixels);\n flipPixels(pixels, w, h);\n correctRGB(pixels, w, h);\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext(\"2d\", { willReadFrequently: true });\n var imageData = context.createImageData(w, h);\n imageData.data.set(pixels);\n context.putImageData(imageData, 0, 0);\n var dataURL;\n switch (format) {\n case \"jpeg\":\n dataURL = canvas.toDataURL(\"image/jpeg\");\n break;\n case \"webp\":\n dataURL = canvas.toDataURL(\"image/webp\");\n break;\n default:\n dataURL = canvas.toDataURL(\"image/png\");\n }\n if (scene.staticMode) scene.container.removeChild(STATIC_CANVAS);\n return dataURL;\n };\n proto.setConvert = function() {\n var scene = this;\n for (var i = 0; i < 3; i++) {\n var ax = scene.fullSceneLayout[axisProperties[i]];\n Axes.setConvert(ax, scene.fullLayout);\n ax.setScale = Lib.noop;\n }\n };\n proto.make4thDimension = function() {\n var scene = this;\n var gd = scene.graphDiv;\n var fullLayout = gd._fullLayout;\n scene._mockAxis = {\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n Axes.setConvert(scene._mockAxis, fullLayout);\n };\n module.exports = Scene;\n }\n });\n\n // src/plots/gl3d/layout/attributes.js\n var require_attributes41 = __commonJS({\n \"src/plots/gl3d/layout/attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n scene: {\n valType: \"subplotid\",\n dflt: \"scene\",\n editType: \"calc+clearAxisTypes\"\n }\n };\n }\n });\n\n // src/plots/gl3d/layout/axis_attributes.js\n var require_axis_attributes = __commonJS({\n \"src/plots/gl3d/layout/axis_attributes.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var axesAttrs = require_layout_attributes4();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n module.exports = overrideAll({\n visible: axesAttrs.visible,\n showspikes: {\n valType: \"boolean\",\n dflt: true\n },\n spikesides: {\n valType: \"boolean\",\n dflt: true\n },\n spikethickness: {\n valType: \"number\",\n min: 0,\n dflt: 2\n },\n spikecolor: {\n valType: \"color\",\n dflt: Color2.defaultLine\n },\n showbackground: {\n valType: \"boolean\",\n dflt: false\n },\n backgroundcolor: {\n valType: \"color\",\n dflt: \"rgba(204, 204, 204, 0.5)\"\n },\n showaxeslabels: {\n valType: \"boolean\",\n dflt: true\n },\n color: axesAttrs.color,\n categoryorder: axesAttrs.categoryorder,\n categoryarray: axesAttrs.categoryarray,\n title: {\n text: axesAttrs.title.text,\n font: axesAttrs.title.font\n },\n type: extendFlat({}, axesAttrs.type, {\n values: [\"-\", \"linear\", \"log\", \"date\", \"category\"]\n }),\n autotypenumbers: axesAttrs.autotypenumbers,\n autorange: axesAttrs.autorange,\n autorangeoptions: {\n minallowed: axesAttrs.autorangeoptions.minallowed,\n maxallowed: axesAttrs.autorangeoptions.maxallowed,\n clipmin: axesAttrs.autorangeoptions.clipmin,\n clipmax: axesAttrs.autorangeoptions.clipmax,\n include: axesAttrs.autorangeoptions.include,\n editType: \"plot\"\n },\n rangemode: axesAttrs.rangemode,\n minallowed: axesAttrs.minallowed,\n maxallowed: axesAttrs.maxallowed,\n range: extendFlat({}, axesAttrs.range, {\n items: [\n { valType: \"any\", editType: \"plot\", impliedEdits: { \"^autorange\": false } },\n { valType: \"any\", editType: \"plot\", impliedEdits: { \"^autorange\": false } }\n ],\n anim: false\n }),\n // ticks\n tickmode: axesAttrs.minor.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n mirror: axesAttrs.mirror,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n separatethousands: axesAttrs.separatethousands,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n hoverformat: axesAttrs.hoverformat,\n // lines and grids\n showline: axesAttrs.showline,\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: axesAttrs.showgrid,\n gridcolor: extendFlat(\n {},\n axesAttrs.gridcolor,\n // shouldn't this be on-par with 2D?\n { dflt: \"rgb(204, 204, 204)\" }\n ),\n gridwidth: axesAttrs.gridwidth,\n zeroline: axesAttrs.zeroline,\n zerolinecolor: axesAttrs.zerolinecolor,\n zerolinewidth: axesAttrs.zerolinewidth\n }, \"plot\", \"from-root\");\n }\n });\n\n // src/plots/gl3d/layout/layout_attributes.js\n var require_layout_attributes17 = __commonJS({\n \"src/plots/gl3d/layout/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var gl3dAxisAttrs = require_axis_attributes();\n var domainAttrs = require_domain().attributes;\n var extendFlat = require_extend().extendFlat;\n var counterRegex = require_lib().counterRegex;\n function makeCameraVector(x, y, z) {\n return {\n x: {\n valType: \"number\",\n dflt: x,\n editType: \"camera\"\n },\n y: {\n valType: \"number\",\n dflt: y,\n editType: \"camera\"\n },\n z: {\n valType: \"number\",\n dflt: z,\n editType: \"camera\"\n },\n editType: \"camera\"\n };\n }\n module.exports = {\n _arrayAttrRegexps: [counterRegex(\"scene\", \".annotations\", true)],\n bgcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"plot\"\n },\n camera: {\n up: extendFlat(makeCameraVector(0, 0, 1), {}),\n center: extendFlat(makeCameraVector(0, 0, 0), {}),\n eye: extendFlat(makeCameraVector(1.25, 1.25, 1.25), {}),\n projection: {\n type: {\n valType: \"enumerated\",\n values: [\"perspective\", \"orthographic\"],\n dflt: \"perspective\",\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n editType: \"camera\"\n },\n domain: domainAttrs({ name: \"scene\", editType: \"plot\" }),\n aspectmode: {\n valType: \"enumerated\",\n values: [\"auto\", \"cube\", \"data\", \"manual\"],\n dflt: \"auto\",\n editType: \"plot\",\n impliedEdits: {\n \"aspectratio.x\": void 0,\n \"aspectratio.y\": void 0,\n \"aspectratio.z\": void 0\n }\n },\n aspectratio: {\n // must be positive (0's are coerced to 1)\n x: {\n valType: \"number\",\n min: 0,\n editType: \"plot\",\n impliedEdits: { \"^aspectmode\": \"manual\" }\n },\n y: {\n valType: \"number\",\n min: 0,\n editType: \"plot\",\n impliedEdits: { \"^aspectmode\": \"manual\" }\n },\n z: {\n valType: \"number\",\n min: 0,\n editType: \"plot\",\n impliedEdits: { \"^aspectmode\": \"manual\" }\n },\n editType: \"plot\",\n impliedEdits: { aspectmode: \"manual\" }\n },\n xaxis: gl3dAxisAttrs,\n yaxis: gl3dAxisAttrs,\n zaxis: gl3dAxisAttrs,\n dragmode: {\n valType: \"enumerated\",\n values: [\"orbit\", \"turntable\", \"zoom\", \"pan\", false],\n editType: \"plot\"\n },\n hovermode: {\n valType: \"enumerated\",\n values: [\"closest\", false],\n dflt: \"closest\",\n editType: \"modebar\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"plot\"\n };\n }\n });\n\n // src/plots/gl3d/layout/axis_defaults.js\n var require_axis_defaults2 = __commonJS({\n \"src/plots/gl3d/layout/axis_defaults.js\"(exports, module) {\n \"use strict\";\n var colorMix = require_tinycolor().mix;\n var Lib = require_lib();\n var Template = require_plot_template();\n var layoutAttributes = require_axis_attributes();\n var handleTypeDefaults = require_type_defaults();\n var handleAxisDefaults = require_axis_defaults();\n var axesNames = [\"xaxis\", \"yaxis\", \"zaxis\"];\n var gridLightness = 100 * (204 - 68) / (255 - 68);\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, options) {\n var containerIn, containerOut;\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, layoutAttributes, attr, dflt);\n }\n for (var j = 0; j < axesNames.length; j++) {\n var axName = axesNames[j];\n containerIn = layoutIn[axName] || {};\n containerOut = Template.newContainer(layoutOut, axName);\n containerOut._id = axName[0] + options.scene;\n containerOut._name = axName;\n handleTypeDefaults(containerIn, containerOut, coerce, options);\n handleAxisDefaults(\n containerIn,\n containerOut,\n coerce,\n {\n font: options.font,\n letter: axName[0],\n data: options.data,\n showGrid: true,\n noAutotickangles: true,\n noTicklabelindex: true,\n noTickson: true,\n noTicklabelmode: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true,\n noTicklabelstep: true,\n noTicklabelposition: true,\n noTicklabeloverflow: true,\n noInsiderange: true,\n bgColor: options.bgColor,\n calendar: options.calendar\n },\n options.fullLayout\n );\n coerce(\"gridcolor\", colorMix(containerOut.color, options.bgColor, gridLightness).toRgbString());\n coerce(\"title.text\", axName[0]);\n containerOut.setScale = Lib.noop;\n if (coerce(\"showspikes\")) {\n coerce(\"spikesides\");\n coerce(\"spikethickness\");\n coerce(\"spikecolor\", containerOut.color);\n }\n coerce(\"showaxeslabels\");\n if (coerce(\"showbackground\")) coerce(\"backgroundcolor\");\n }\n };\n }\n });\n\n // src/plots/gl3d/layout/defaults.js\n var require_defaults37 = __commonJS({\n \"src/plots/gl3d/layout/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Registry = require_registry();\n var handleSubplotDefaults = require_subplot_defaults();\n var supplyGl3dAxisLayoutDefaults = require_axis_defaults2();\n var layoutAttributes = require_layout_attributes17();\n var getSubplotData = require_get_data().getSubplotData;\n var GL3D = \"gl3d\";\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n var hasNon3D = layoutOut._basePlotModules.length > 1;\n function getDfltFromLayout(attr) {\n if (hasNon3D) return;\n var isValid = Lib.validate(layoutIn[attr], layoutAttributes[attr]);\n if (isValid) return layoutIn[attr];\n }\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: GL3D,\n attributes: layoutAttributes,\n handleDefaults: handleGl3dDefaults,\n fullLayout: layoutOut,\n font: layoutOut.font,\n fullData,\n getDfltFromLayout,\n autotypenumbersDflt: layoutOut.autotypenumbers,\n paper_bgcolor: layoutOut.paper_bgcolor,\n calendar: layoutOut.calendar\n });\n };\n function handleGl3dDefaults(sceneLayoutIn, sceneLayoutOut, coerce, opts) {\n var bgcolor = coerce(\"bgcolor\");\n var bgColorCombined = Color2.combine(bgcolor, opts.paper_bgcolor);\n var cameraKeys = [\"up\", \"center\", \"eye\"];\n for (var j = 0; j < cameraKeys.length; j++) {\n coerce(\"camera.\" + cameraKeys[j] + \".x\");\n coerce(\"camera.\" + cameraKeys[j] + \".y\");\n coerce(\"camera.\" + cameraKeys[j] + \".z\");\n }\n coerce(\"camera.projection.type\");\n var hasAspect = !!coerce(\"aspectratio.x\") && !!coerce(\"aspectratio.y\") && !!coerce(\"aspectratio.z\");\n var defaultAspectMode = hasAspect ? \"manual\" : \"auto\";\n var aspectMode = coerce(\"aspectmode\", defaultAspectMode);\n if (!hasAspect) {\n sceneLayoutIn.aspectratio = sceneLayoutOut.aspectratio = { x: 1, y: 1, z: 1 };\n if (aspectMode === \"manual\") sceneLayoutOut.aspectmode = \"auto\";\n sceneLayoutIn.aspectmode = sceneLayoutOut.aspectmode;\n }\n var fullGl3dData = getSubplotData(opts.fullData, GL3D, opts.id);\n supplyGl3dAxisLayoutDefaults(sceneLayoutIn, sceneLayoutOut, {\n font: opts.font,\n scene: opts.id,\n data: fullGl3dData,\n bgColor: bgColorCombined,\n calendar: opts.calendar,\n autotypenumbersDflt: opts.autotypenumbersDflt,\n fullLayout: opts.fullLayout\n });\n Registry.getComponentMethod(\"annotations3d\", \"handleDefaults\")(\n sceneLayoutIn,\n sceneLayoutOut,\n opts\n );\n var dragmode = opts.getDfltFromLayout(\"dragmode\");\n if (dragmode !== false) {\n if (!dragmode) {\n dragmode = \"orbit\";\n if (sceneLayoutIn.camera && sceneLayoutIn.camera.up) {\n var x = sceneLayoutIn.camera.up.x;\n var y = sceneLayoutIn.camera.up.y;\n var z = sceneLayoutIn.camera.up.z;\n if (z !== 0) {\n if (!x || !y || !z) {\n dragmode = \"turntable\";\n } else if (z / Math.sqrt(x * x + y * y + z * z) > 0.999) {\n dragmode = \"turntable\";\n }\n }\n } else {\n dragmode = \"turntable\";\n }\n }\n }\n coerce(\"dragmode\", dragmode);\n coerce(\"hovermode\", opts.getDfltFromLayout(\"hovermode\"));\n }\n }\n });\n\n // src/plots/gl3d/index.js\n var require_gl3d = __commonJS({\n \"src/plots/gl3d/index.js\"(exports) {\n \"use strict\";\n var overrideAll = require_edit_types().overrideAll;\n var fxAttrs = require_layout_attributes();\n var Scene = require_scene();\n var getSubplotData = require_get_data().getSubplotData;\n var Lib = require_lib();\n var xmlnsNamespaces = require_xmlns_namespaces();\n var GL3D = \"gl3d\";\n var SCENE = \"scene\";\n exports.name = GL3D;\n exports.attr = SCENE;\n exports.idRoot = SCENE;\n exports.idRegex = exports.attrRegex = Lib.counterRegex(\"scene\");\n exports.attributes = require_attributes41();\n exports.layoutAttributes = require_layout_attributes17();\n exports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n }, \"plot\", \"nested\");\n exports.supplyLayoutDefaults = require_defaults37();\n exports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var sceneIds = fullLayout._subplots[GL3D];\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var fullSceneData = getSubplotData(fullData, GL3D, sceneId);\n var sceneLayout = fullLayout[sceneId];\n var camera = sceneLayout.camera;\n var scene = sceneLayout._scene;\n if (!scene) {\n scene = new Scene(\n {\n id: sceneId,\n graphDiv: gd,\n container: gd.querySelector(\".gl-container\"),\n staticPlot: gd._context.staticPlot,\n plotGlPixelRatio: gd._context.plotGlPixelRatio,\n camera\n },\n fullLayout\n );\n sceneLayout._scene = scene;\n }\n if (!scene.viewInitial) {\n scene.viewInitial = {\n up: {\n x: camera.up.x,\n y: camera.up.y,\n z: camera.up.z\n },\n eye: {\n x: camera.eye.x,\n y: camera.eye.y,\n z: camera.eye.z\n },\n center: {\n x: camera.center.x,\n y: camera.center.y,\n z: camera.center.z\n }\n };\n }\n scene.plot(fullSceneData, fullLayout, gd.layout);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldSceneKeys = oldFullLayout._subplots[GL3D] || [];\n for (var i = 0; i < oldSceneKeys.length; i++) {\n var oldSceneKey = oldSceneKeys[i];\n if (!newFullLayout[oldSceneKey] && !!oldFullLayout[oldSceneKey]._scene) {\n oldFullLayout[oldSceneKey]._scene.destroy();\n if (oldFullLayout._infolayer) {\n oldFullLayout._infolayer.selectAll(\".annotation-\" + oldSceneKey).remove();\n }\n }\n }\n };\n exports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots[GL3D];\n var size = fullLayout._size;\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneLayout = fullLayout[sceneIds[i]];\n var domain = sceneLayout.domain;\n var scene = sceneLayout._scene;\n var imageData = scene.toImage(\"png\");\n var image = fullLayout._glimages.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: \"none\"\n });\n scene.destroy();\n }\n };\n exports.cleanId = function cleanId(id) {\n if (!id.match(/^scene[0-9]*$/)) return;\n var sceneNum = id.substr(5);\n if (sceneNum === \"1\") sceneNum = \"\";\n return SCENE + sceneNum;\n };\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[GL3D];\n for (var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._scene;\n subplotObj.updateFx(fullLayout.dragmode, fullLayout.hovermode);\n }\n };\n }\n });\n\n // src/traces/scatter3d/index.js\n var require_scatter3d = __commonJS({\n \"src/traces/scatter3d/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n plot: require_convert2(),\n attributes: require_attributes40(),\n markerSymbols: require_gl3d_markers(),\n supplyDefaults: require_defaults36(),\n colorbar: [\n {\n container: \"marker\",\n min: \"cmin\",\n max: \"cmax\"\n },\n {\n container: \"line\",\n min: \"cmin\",\n max: \"cmax\"\n }\n ],\n calc: require_calc21(),\n moduleType: \"trace\",\n name: \"scatter3d\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scatter3d.js\n var require_scatter3d2 = __commonJS({\n \"lib/scatter3d.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scatter3d();\n }\n });\n\n // src/traces/surface/attributes.js\n var require_attributes42 = __commonJS({\n \"src/traces/surface/attributes.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n function makeContourProjAttr(axLetter) {\n return {\n valType: \"boolean\",\n dflt: false\n };\n }\n function makeContourAttr(axLetter) {\n return {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n start: {\n valType: \"number\",\n dflt: null,\n editType: \"plot\"\n // impliedEdits: {'^autocontour': false},\n },\n end: {\n valType: \"number\",\n dflt: null,\n editType: \"plot\"\n // impliedEdits: {'^autocontour': false},\n },\n size: {\n valType: \"number\",\n dflt: null,\n min: 0,\n editType: \"plot\"\n // impliedEdits: {'^autocontour': false},\n },\n project: {\n x: makeContourProjAttr(\"x\"),\n y: makeContourProjAttr(\"y\"),\n z: makeContourProjAttr(\"z\")\n },\n color: {\n valType: \"color\",\n dflt: Color2.defaultLine\n },\n usecolormap: {\n valType: \"boolean\",\n dflt: false\n },\n width: {\n valType: \"number\",\n min: 1,\n max: 16,\n dflt: 2\n },\n highlight: {\n valType: \"boolean\",\n dflt: true\n },\n highlightcolor: {\n valType: \"color\",\n dflt: Color2.defaultLine\n },\n highlightwidth: {\n valType: \"number\",\n min: 1,\n max: 16,\n dflt: 2\n }\n };\n }\n var attrs = module.exports = overrideAll(extendFlat(\n {\n z: {\n valType: \"data_array\"\n },\n x: {\n valType: \"data_array\"\n },\n y: {\n valType: \"data_array\"\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true\n },\n hovertemplate: hovertemplateAttrs(),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n connectgaps: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n surfacecolor: {\n valType: \"data_array\"\n }\n },\n colorScaleAttrs(\"\", {\n colorAttr: \"z or surfacecolor\",\n showScaleDflt: true,\n autoColorDflt: false,\n editTypeOverride: \"calc\"\n }),\n {\n contours: {\n x: makeContourAttr(\"x\"),\n y: makeContourAttr(\"y\"),\n z: makeContourAttr(\"z\")\n },\n hidesurface: {\n valType: \"boolean\",\n dflt: false\n },\n lightposition: {\n x: {\n valType: \"number\",\n min: -1e5,\n max: 1e5,\n dflt: 10\n },\n y: {\n valType: \"number\",\n min: -1e5,\n max: 1e5,\n dflt: 1e4\n },\n z: {\n valType: \"number\",\n min: -1e5,\n max: 1e5,\n dflt: 0\n }\n },\n lighting: {\n ambient: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.8\n },\n diffuse: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.8\n },\n specular: {\n valType: \"number\",\n min: 0,\n max: 2,\n dflt: 0.05\n },\n roughness: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5\n },\n fresnel: {\n valType: \"number\",\n min: 0,\n max: 5,\n dflt: 0.2\n }\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n opacityscale: {\n valType: \"any\",\n editType: \"calc\"\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n }\n ), \"calc\", \"nested\");\n attrs.x.editType = attrs.y.editType = attrs.z.editType = \"calc+clearAxisTypes\";\n }\n });\n\n // src/traces/surface/defaults.js\n var require_defaults38 = __commonJS({\n \"src/traces/surface/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes42();\n var MIN = 0.1;\n function createWave(n, minOpacity) {\n var arr = [];\n var steps = 32;\n for (var i = 0; i < steps; i++) {\n var u = i / (steps - 1);\n var v = minOpacity + (1 - minOpacity) * (1 - Math.pow(Math.sin(n * u * Math.PI), 2));\n arr.push([\n u,\n Math.max(0, Math.min(1, v))\n ]);\n }\n return arr;\n }\n function isValidScaleArray(scl) {\n var highestVal = 0;\n if (!Array.isArray(scl) || scl.length < 2) return false;\n if (!scl[0] || !scl[scl.length - 1]) return false;\n if (+scl[0][0] !== 0 || +scl[scl.length - 1][0] !== 1) return false;\n for (var i = 0; i < scl.length; i++) {\n var si = scl[i];\n if (si.length !== 2 || +si[0] < highestVal) {\n return false;\n }\n highestVal = +si[0];\n }\n return true;\n }\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n var i, j;\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n if (!z || !z.length || (x ? x.length < 1 : false) || (y ? y.length < 1 : false)) {\n traceOut.visible = false;\n return;\n }\n traceOut._xlength = Array.isArray(x) && Lib.isArrayOrTypedArray(x[0]) ? z.length : z[0].length;\n traceOut._ylength = z.length;\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\", \"z\"], layout);\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n [\n \"lighting.ambient\",\n \"lighting.diffuse\",\n \"lighting.specular\",\n \"lighting.roughness\",\n \"lighting.fresnel\",\n \"lightposition.x\",\n \"lightposition.y\",\n \"lightposition.z\",\n \"hidesurface\",\n \"connectgaps\",\n \"opacity\"\n ].forEach(function(x2) {\n coerce(x2);\n });\n var surfaceColor = coerce(\"surfacecolor\");\n var dims = [\"x\", \"y\", \"z\"];\n for (i = 0; i < 3; ++i) {\n var contourDim = \"contours.\" + dims[i];\n var show = coerce(contourDim + \".show\");\n var highlight = coerce(contourDim + \".highlight\");\n if (show || highlight) {\n for (j = 0; j < 3; ++j) {\n coerce(contourDim + \".project.\" + dims[j]);\n }\n }\n if (show) {\n coerce(contourDim + \".color\");\n coerce(contourDim + \".width\");\n coerce(contourDim + \".usecolormap\");\n }\n if (highlight) {\n coerce(contourDim + \".highlightcolor\");\n coerce(contourDim + \".highlightwidth\");\n }\n coerce(contourDim + \".start\");\n coerce(contourDim + \".end\");\n coerce(contourDim + \".size\");\n }\n colorscaleDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n { prefix: \"\", cLetter: \"c\" }\n );\n opacityscaleDefaults(traceIn, traceOut, layout, coerce);\n traceOut._length = null;\n }\n function opacityscaleDefaults(traceIn, traceOut, layout, coerce) {\n var opacityscale = coerce(\"opacityscale\");\n if (opacityscale === \"max\") {\n traceOut.opacityscale = [[0, MIN], [1, 1]];\n } else if (opacityscale === \"min\") {\n traceOut.opacityscale = [[0, 1], [1, MIN]];\n } else if (opacityscale === \"extremes\") {\n traceOut.opacityscale = createWave(1, MIN);\n } else if (!isValidScaleArray(opacityscale)) {\n traceOut.opacityscale = void 0;\n }\n }\n module.exports = {\n supplyDefaults,\n opacityscaleDefaults\n };\n }\n });\n\n // src/traces/surface/calc.js\n var require_calc22 = __commonJS({\n \"src/traces/surface/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n module.exports = function calc(gd, trace) {\n if (trace.surfacecolor) {\n colorscaleCalc(gd, trace, {\n vals: trace.surfacecolor,\n containerStr: \"\",\n cLetter: \"c\"\n });\n } else {\n colorscaleCalc(gd, trace, {\n vals: trace.z,\n containerStr: \"\",\n cLetter: \"c\"\n });\n }\n };\n }\n });\n\n // src/traces/surface/convert.js\n var require_convert4 = __commonJS({\n \"src/traces/surface/convert.js\"(exports, module) {\n \"use strict\";\n var createSurface = require_stackgl_modules().gl_surface3d;\n var ndarray = require_stackgl_modules().ndarray;\n var ndarrayInterp2d = require_stackgl_modules().ndarray_linear_interpolate.d2;\n var interp2d = require_interp2d();\n var findEmpties = require_find_empties();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var str2RgbaArray = require_str2rgbarray();\n var extractOpts = require_colorscale().extractOpts;\n function SurfaceTrace(scene, surface, uid) {\n this.scene = scene;\n this.uid = uid;\n this.surface = surface;\n this.data = null;\n this.showContour = [false, false, false];\n this.contourStart = [null, null, null];\n this.contourEnd = [null, null, null];\n this.contourSize = [0, 0, 0];\n this.minValues = [Infinity, Infinity, Infinity];\n this.maxValues = [-Infinity, -Infinity, -Infinity];\n this.dataScaleX = 1;\n this.dataScaleY = 1;\n this.refineData = true;\n this.objectOffset = [0, 0, 0];\n }\n var proto = SurfaceTrace.prototype;\n proto.getXat = function(a, b, calendar, axis) {\n var v = !isArrayOrTypedArray(this.data.x) ? a : isArrayOrTypedArray(this.data.x[0]) ? this.data.x[b][a] : this.data.x[a];\n return calendar === void 0 ? v : axis.d2l(v, 0, calendar);\n };\n proto.getYat = function(a, b, calendar, axis) {\n var v = !isArrayOrTypedArray(this.data.y) ? b : isArrayOrTypedArray(this.data.y[0]) ? this.data.y[b][a] : this.data.y[b];\n return calendar === void 0 ? v : axis.d2l(v, 0, calendar);\n };\n proto.getZat = function(a, b, calendar, axis) {\n var v = this.data.z[b][a];\n if (v === null && this.data.connectgaps && this.data._interpolatedZ) {\n v = this.data._interpolatedZ[b][a];\n }\n return calendar === void 0 ? v : axis.d2l(v, 0, calendar);\n };\n proto.handlePick = function(selection) {\n if (selection.object === this.surface) {\n var xRatio = (selection.data.index[0] - 1) / this.dataScaleX - 1;\n var yRatio = (selection.data.index[1] - 1) / this.dataScaleY - 1;\n var j = Math.max(Math.min(Math.round(xRatio), this.data.z[0].length - 1), 0);\n var k = Math.max(Math.min(Math.round(yRatio), this.data._ylength - 1), 0);\n selection.index = [j, k];\n selection.traceCoordinate = [\n this.getXat(j, k),\n this.getYat(j, k),\n this.getZat(j, k)\n ];\n selection.dataCoordinate = [\n this.getXat(j, k, this.data.xcalendar, this.scene.fullSceneLayout.xaxis),\n this.getYat(j, k, this.data.ycalendar, this.scene.fullSceneLayout.yaxis),\n this.getZat(j, k, this.data.zcalendar, this.scene.fullSceneLayout.zaxis)\n ];\n for (var i = 0; i < 3; i++) {\n var v = selection.dataCoordinate[i];\n if (v !== null && v !== void 0) {\n selection.dataCoordinate[i] *= this.scene.dataScale[i];\n }\n }\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[k] && text[k][j] !== void 0) {\n selection.textLabel = text[k][j];\n } else if (text) {\n selection.textLabel = text;\n } else {\n selection.textLabel = \"\";\n }\n selection.data.dataCoordinate = selection.dataCoordinate.slice();\n this.surface.highlight(selection.data);\n this.scene.glplot.spikes.position = selection.dataCoordinate;\n return true;\n }\n };\n function isColormapCircular(colormap) {\n var first = colormap[0].rgb;\n var last = colormap[colormap.length - 1].rgb;\n return first[0] === last[0] && first[1] === last[1] && first[2] === last[2] && first[3] === last[3];\n }\n var shortPrimes = [\n 2,\n 3,\n 5,\n 7,\n 11,\n 13,\n 17,\n 19,\n 23,\n 29,\n 31,\n 37,\n 41,\n 43,\n 47,\n 53,\n 59,\n 61,\n 67,\n 71,\n 73,\n 79,\n 83,\n 89,\n 97,\n 101,\n 103,\n 107,\n 109,\n 113,\n 127,\n 131,\n 137,\n 139,\n 149,\n 151,\n 157,\n 163,\n 167,\n 173,\n 179,\n 181,\n 191,\n 193,\n 197,\n 199,\n 211,\n 223,\n 227,\n 229,\n 233,\n 239,\n 241,\n 251,\n 257,\n 263,\n 269,\n 271,\n 277,\n 281,\n 283,\n 293,\n 307,\n 311,\n 313,\n 317,\n 331,\n 337,\n 347,\n 349,\n 353,\n 359,\n 367,\n 373,\n 379,\n 383,\n 389,\n 397,\n 401,\n 409,\n 419,\n 421,\n 431,\n 433,\n 439,\n 443,\n 449,\n 457,\n 461,\n 463,\n 467,\n 479,\n 487,\n 491,\n 499,\n 503,\n 509,\n 521,\n 523,\n 541,\n 547,\n 557,\n 563,\n 569,\n 571,\n 577,\n 587,\n 593,\n 599,\n 601,\n 607,\n 613,\n 617,\n 619,\n 631,\n 641,\n 643,\n 647,\n 653,\n 659,\n 661,\n 673,\n 677,\n 683,\n 691,\n 701,\n 709,\n 719,\n 727,\n 733,\n 739,\n 743,\n 751,\n 757,\n 761,\n 769,\n 773,\n 787,\n 797,\n 809,\n 811,\n 821,\n 823,\n 827,\n 829,\n 839,\n 853,\n 857,\n 859,\n 863,\n 877,\n 881,\n 883,\n 887,\n 907,\n 911,\n 919,\n 929,\n 937,\n 941,\n 947,\n 953,\n 967,\n 971,\n 977,\n 983,\n 991,\n 997,\n 1009,\n 1013,\n 1019,\n 1021,\n 1031,\n 1033,\n 1039,\n 1049,\n 1051,\n 1061,\n 1063,\n 1069,\n 1087,\n 1091,\n 1093,\n 1097,\n 1103,\n 1109,\n 1117,\n 1123,\n 1129,\n 1151,\n 1153,\n 1163,\n 1171,\n 1181,\n 1187,\n 1193,\n 1201,\n 1213,\n 1217,\n 1223,\n 1229,\n 1231,\n 1237,\n 1249,\n 1259,\n 1277,\n 1279,\n 1283,\n 1289,\n 1291,\n 1297,\n 1301,\n 1303,\n 1307,\n 1319,\n 1321,\n 1327,\n 1361,\n 1367,\n 1373,\n 1381,\n 1399,\n 1409,\n 1423,\n 1427,\n 1429,\n 1433,\n 1439,\n 1447,\n 1451,\n 1453,\n 1459,\n 1471,\n 1481,\n 1483,\n 1487,\n 1489,\n 1493,\n 1499,\n 1511,\n 1523,\n 1531,\n 1543,\n 1549,\n 1553,\n 1559,\n 1567,\n 1571,\n 1579,\n 1583,\n 1597,\n 1601,\n 1607,\n 1609,\n 1613,\n 1619,\n 1621,\n 1627,\n 1637,\n 1657,\n 1663,\n 1667,\n 1669,\n 1693,\n 1697,\n 1699,\n 1709,\n 1721,\n 1723,\n 1733,\n 1741,\n 1747,\n 1753,\n 1759,\n 1777,\n 1783,\n 1787,\n 1789,\n 1801,\n 1811,\n 1823,\n 1831,\n 1847,\n 1861,\n 1867,\n 1871,\n 1873,\n 1877,\n 1879,\n 1889,\n 1901,\n 1907,\n 1913,\n 1931,\n 1933,\n 1949,\n 1951,\n 1973,\n 1979,\n 1987,\n 1993,\n 1997,\n 1999,\n 2003,\n 2011,\n 2017,\n 2027,\n 2029,\n 2039,\n 2053,\n 2063,\n 2069,\n 2081,\n 2083,\n 2087,\n 2089,\n 2099,\n 2111,\n 2113,\n 2129,\n 2131,\n 2137,\n 2141,\n 2143,\n 2153,\n 2161,\n 2179,\n 2203,\n 2207,\n 2213,\n 2221,\n 2237,\n 2239,\n 2243,\n 2251,\n 2267,\n 2269,\n 2273,\n 2281,\n 2287,\n 2293,\n 2297,\n 2309,\n 2311,\n 2333,\n 2339,\n 2341,\n 2347,\n 2351,\n 2357,\n 2371,\n 2377,\n 2381,\n 2383,\n 2389,\n 2393,\n 2399,\n 2411,\n 2417,\n 2423,\n 2437,\n 2441,\n 2447,\n 2459,\n 2467,\n 2473,\n 2477,\n 2503,\n 2521,\n 2531,\n 2539,\n 2543,\n 2549,\n 2551,\n 2557,\n 2579,\n 2591,\n 2593,\n 2609,\n 2617,\n 2621,\n 2633,\n 2647,\n 2657,\n 2659,\n 2663,\n 2671,\n 2677,\n 2683,\n 2687,\n 2689,\n 2693,\n 2699,\n 2707,\n 2711,\n 2713,\n 2719,\n 2729,\n 2731,\n 2741,\n 2749,\n 2753,\n 2767,\n 2777,\n 2789,\n 2791,\n 2797,\n 2801,\n 2803,\n 2819,\n 2833,\n 2837,\n 2843,\n 2851,\n 2857,\n 2861,\n 2879,\n 2887,\n 2897,\n 2903,\n 2909,\n 2917,\n 2927,\n 2939,\n 2953,\n 2957,\n 2963,\n 2969,\n 2971,\n 2999\n ];\n function getPow(a, b) {\n if (a < b) return 0;\n var n = 0;\n while (Math.floor(a % b) === 0) {\n a /= b;\n n++;\n }\n return n;\n }\n function getFactors(a) {\n var powers = [];\n for (var i = 0; i < shortPrimes.length; i++) {\n var b = shortPrimes[i];\n powers.push(\n getPow(a, b)\n );\n }\n return powers;\n }\n function smallestDivisor(a) {\n var A2 = getFactors(a);\n var result = a;\n for (var i = 0; i < shortPrimes.length; i++) {\n if (A2[i] > 0) {\n result = shortPrimes[i];\n break;\n }\n }\n return result;\n }\n function leastCommonMultiple(a, b) {\n if (a < 1 || b < 1) return void 0;\n var A2 = getFactors(a);\n var B2 = getFactors(b);\n var n = 1;\n for (var i = 0; i < shortPrimes.length; i++) {\n n *= Math.pow(\n shortPrimes[i],\n Math.max(A2[i], B2[i])\n );\n }\n return n;\n }\n function arrayLCM(A2) {\n if (A2.length === 0) return void 0;\n var n = 1;\n for (var i = 0; i < A2.length; i++) {\n n = leastCommonMultiple(n, A2[i]);\n }\n return n;\n }\n proto.calcXnums = function(xlen) {\n var i;\n var nums = [];\n for (i = 1; i < xlen; i++) {\n var a = this.getXat(i - 1, 0);\n var b = this.getXat(i, 0);\n if (b !== a && a !== void 0 && a !== null && b !== void 0 && b !== null) {\n nums[i - 1] = Math.abs(b - a);\n } else {\n nums[i - 1] = 0;\n }\n }\n var totalDist = 0;\n for (i = 1; i < xlen; i++) {\n totalDist += nums[i - 1];\n }\n for (i = 1; i < xlen; i++) {\n if (nums[i - 1] === 0) {\n nums[i - 1] = 1;\n } else {\n nums[i - 1] = Math.round(totalDist / nums[i - 1]);\n }\n }\n return nums;\n };\n proto.calcYnums = function(ylen) {\n var i;\n var nums = [];\n for (i = 1; i < ylen; i++) {\n var a = this.getYat(0, i - 1);\n var b = this.getYat(0, i);\n if (b !== a && a !== void 0 && a !== null && b !== void 0 && b !== null) {\n nums[i - 1] = Math.abs(b - a);\n } else {\n nums[i - 1] = 0;\n }\n }\n var totalDist = 0;\n for (i = 1; i < ylen; i++) {\n totalDist += nums[i - 1];\n }\n for (i = 1; i < ylen; i++) {\n if (nums[i - 1] === 0) {\n nums[i - 1] = 1;\n } else {\n nums[i - 1] = Math.round(totalDist / nums[i - 1]);\n }\n }\n return nums;\n };\n var highlyComposites = [1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260];\n var MIN_RESOLUTION = highlyComposites[9];\n var MAX_RESOLUTION = highlyComposites[13];\n proto.estimateScale = function(resSrc, axis) {\n var nums = axis === 0 ? this.calcXnums(resSrc) : this.calcYnums(resSrc);\n var resDst = 1 + arrayLCM(nums);\n while (resDst < MIN_RESOLUTION) {\n resDst *= 2;\n }\n while (resDst > MAX_RESOLUTION) {\n resDst--;\n resDst /= smallestDivisor(resDst);\n resDst++;\n if (resDst < MIN_RESOLUTION) {\n resDst = MAX_RESOLUTION;\n }\n }\n var scale = Math.round(resDst / resSrc);\n return scale > 1 ? scale : 1;\n };\n function fnHomography(out, inp, X) {\n var w = X[8] + X[2] * inp[0] + X[5] * inp[1];\n out[0] = (X[6] + X[0] * inp[0] + X[3] * inp[1]) / w;\n out[1] = (X[7] + X[1] * inp[0] + X[4] * inp[1]) / w;\n return out;\n }\n function homography(dest, src, X) {\n warp(dest, src, fnHomography, X);\n return dest;\n }\n function warp(dest, src, func, X) {\n var warped = [0, 0];\n var ni = dest.shape[0];\n var nj = dest.shape[1];\n for (var i = 0; i < ni; i++) {\n for (var j = 0; j < nj; j++) {\n func(warped, [i, j], X);\n dest.set(i, j, ndarrayInterp2d(src, warped[0], warped[1]));\n }\n }\n return dest;\n }\n proto.refineCoords = function(coords) {\n var scaleW = this.dataScaleX;\n var scaleH = this.dataScaleY;\n var width = coords[0].shape[0];\n var height = coords[0].shape[1];\n var newWidth = Math.floor(coords[0].shape[0] * scaleW + 1) | 0;\n var newHeight = Math.floor(coords[0].shape[1] * scaleH + 1) | 0;\n var padWidth = 1 + width + 1;\n var padHeight = 1 + height + 1;\n var padImg = ndarray(new Float32Array(padWidth * padHeight), [padWidth, padHeight]);\n var X = [\n 1 / scaleW,\n 0,\n 0,\n 0,\n 1 / scaleH,\n 0,\n 0,\n 0,\n 1\n ];\n for (var i = 0; i < coords.length; ++i) {\n this.surface.padField(padImg, coords[i]);\n var scaledImg = ndarray(new Float32Array(newWidth * newHeight), [newWidth, newHeight]);\n homography(scaledImg, padImg, X);\n coords[i] = scaledImg;\n }\n };\n function insertIfNewLevel(arr, newValue) {\n var found = false;\n for (var k = 0; k < arr.length; k++) {\n if (newValue === arr[k]) {\n found = true;\n break;\n }\n }\n if (found === false) arr.push(newValue);\n }\n proto.setContourLevels = function() {\n var newLevels = [[], [], []];\n var useNewLevels = [false, false, false];\n var needsUpdate = false;\n var i, j, value;\n for (i = 0; i < 3; ++i) {\n if (this.showContour[i]) {\n needsUpdate = true;\n if (this.contourSize[i] > 0 && this.contourStart[i] !== null && this.contourEnd[i] !== null && this.contourEnd[i] > this.contourStart[i]) {\n useNewLevels[i] = true;\n for (j = this.contourStart[i]; j < this.contourEnd[i]; j += this.contourSize[i]) {\n value = j * this.scene.dataScale[i];\n insertIfNewLevel(newLevels[i], value);\n }\n }\n }\n }\n if (needsUpdate) {\n var allLevels = [[], [], []];\n for (i = 0; i < 3; ++i) {\n if (this.showContour[i]) {\n allLevels[i] = useNewLevels[i] ? newLevels[i] : this.scene.contourLevels[i];\n }\n }\n this.surface.update({ levels: allLevels });\n }\n };\n proto.update = function(data) {\n var scene = this.scene;\n var sceneLayout = scene.fullSceneLayout;\n var surface = this.surface;\n var colormap = parseColorScale(data);\n var scaleFactor = scene.dataScale;\n var xlen = data.z[0].length;\n var ylen = data._ylength;\n var contourLevels = scene.contourLevels;\n this.data = data;\n var i, j, k, v;\n var rawCoords = [];\n for (i = 0; i < 3; i++) {\n rawCoords[i] = [];\n for (j = 0; j < xlen; j++) {\n rawCoords[i][j] = [];\n }\n }\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n rawCoords[0][j][k] = this.getXat(j, k, data.xcalendar, sceneLayout.xaxis);\n rawCoords[1][j][k] = this.getYat(j, k, data.ycalendar, sceneLayout.yaxis);\n rawCoords[2][j][k] = this.getZat(j, k, data.zcalendar, sceneLayout.zaxis);\n }\n }\n if (data.connectgaps) {\n data._emptypoints = findEmpties(rawCoords[2]);\n interp2d(rawCoords[2], data._emptypoints);\n data._interpolatedZ = [];\n for (j = 0; j < xlen; j++) {\n data._interpolatedZ[j] = [];\n for (k = 0; k < ylen; k++) {\n data._interpolatedZ[j][k] = rawCoords[2][j][k];\n }\n }\n }\n for (i = 0; i < 3; i++) {\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n v = rawCoords[i][j][k];\n if (v === null || v === void 0) {\n rawCoords[i][j][k] = NaN;\n } else {\n v = rawCoords[i][j][k] *= scaleFactor[i];\n }\n }\n }\n }\n for (i = 0; i < 3; i++) {\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n v = rawCoords[i][j][k];\n if (v !== null && v !== void 0) {\n if (this.minValues[i] > v) {\n this.minValues[i] = v;\n }\n if (this.maxValues[i] < v) {\n this.maxValues[i] = v;\n }\n }\n }\n }\n }\n for (i = 0; i < 3; i++) {\n this.objectOffset[i] = 0.5 * (this.minValues[i] + this.maxValues[i]);\n }\n for (i = 0; i < 3; i++) {\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n v = rawCoords[i][j][k];\n if (v !== null && v !== void 0) {\n rawCoords[i][j][k] -= this.objectOffset[i];\n }\n }\n }\n }\n var coords = [\n ndarray(new Float32Array(xlen * ylen), [xlen, ylen]),\n ndarray(new Float32Array(xlen * ylen), [xlen, ylen]),\n ndarray(new Float32Array(xlen * ylen), [xlen, ylen])\n ];\n for (i = 0; i < 3; i++) {\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n coords[i].set(j, k, rawCoords[i][j][k]);\n }\n }\n }\n rawCoords = [];\n var params = {\n colormap,\n levels: [[], [], []],\n showContour: [true, true, true],\n showSurface: !data.hidesurface,\n contourProject: [\n [false, false, false],\n [false, false, false],\n [false, false, false]\n ],\n contourWidth: [1, 1, 1],\n contourColor: [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]],\n contourTint: [1, 1, 1],\n dynamicColor: [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]],\n dynamicWidth: [1, 1, 1],\n dynamicTint: [1, 1, 1],\n opacityscale: data.opacityscale,\n opacity: data.opacity\n };\n var cOpts = extractOpts(data);\n params.intensityBounds = [cOpts.min, cOpts.max];\n if (data.surfacecolor) {\n var intensity = ndarray(new Float32Array(xlen * ylen), [xlen, ylen]);\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n intensity.set(j, k, data.surfacecolor[k][j]);\n }\n }\n coords.push(intensity);\n } else {\n params.intensityBounds[0] *= scaleFactor[2];\n params.intensityBounds[1] *= scaleFactor[2];\n }\n if (MAX_RESOLUTION < coords[0].shape[0] || MAX_RESOLUTION < coords[0].shape[1]) {\n this.refineData = false;\n }\n if (this.refineData === true) {\n this.dataScaleX = this.estimateScale(coords[0].shape[0], 0);\n this.dataScaleY = this.estimateScale(coords[0].shape[1], 1);\n if (this.dataScaleX !== 1 || this.dataScaleY !== 1) {\n this.refineCoords(coords);\n }\n }\n if (data.surfacecolor) {\n params.intensity = coords.pop();\n }\n var highlightEnable = [true, true, true];\n var axis = [\"x\", \"y\", \"z\"];\n for (i = 0; i < 3; ++i) {\n var contourParams = data.contours[axis[i]];\n highlightEnable[i] = contourParams.highlight;\n params.showContour[i] = contourParams.show || contourParams.highlight;\n if (!params.showContour[i]) continue;\n params.contourProject[i] = [\n contourParams.project.x,\n contourParams.project.y,\n contourParams.project.z\n ];\n if (contourParams.show) {\n this.showContour[i] = true;\n params.levels[i] = contourLevels[i];\n surface.highlightColor[i] = params.contourColor[i] = str2RgbaArray(contourParams.color);\n if (contourParams.usecolormap) {\n surface.highlightTint[i] = params.contourTint[i] = 0;\n } else {\n surface.highlightTint[i] = params.contourTint[i] = 1;\n }\n params.contourWidth[i] = contourParams.width;\n this.contourStart[i] = contourParams.start;\n this.contourEnd[i] = contourParams.end;\n this.contourSize[i] = contourParams.size;\n } else {\n this.showContour[i] = false;\n this.contourStart[i] = null;\n this.contourEnd[i] = null;\n this.contourSize[i] = 0;\n }\n if (contourParams.highlight) {\n params.dynamicColor[i] = str2RgbaArray(contourParams.highlightcolor);\n params.dynamicWidth[i] = contourParams.highlightwidth;\n }\n }\n if (isColormapCircular(colormap)) {\n params.vertexColor = true;\n }\n params.objectOffset = this.objectOffset;\n params.coords = coords;\n surface.update(params);\n surface.visible = data.visible;\n surface.enableDynamic = highlightEnable;\n surface.enableHighlight = highlightEnable;\n surface.snapToData = true;\n if (\"lighting\" in data) {\n surface.ambientLight = data.lighting.ambient;\n surface.diffuseLight = data.lighting.diffuse;\n surface.specularLight = data.lighting.specular;\n surface.roughness = data.lighting.roughness;\n surface.fresnel = data.lighting.fresnel;\n }\n if (\"lightposition\" in data) {\n surface.lightPosition = [data.lightposition.x, data.lightposition.y, data.lightposition.z];\n }\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.surface);\n this.surface.dispose();\n };\n function createSurfaceTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var surface = createSurface({ gl: gl2 });\n var result = new SurfaceTrace(scene, surface, data.uid);\n surface._trace = result;\n result.update(data);\n scene.glplot.add(surface);\n return result;\n }\n module.exports = createSurfaceTrace;\n }\n });\n\n // src/traces/surface/index.js\n var require_surface = __commonJS({\n \"src/traces/surface/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes42(),\n supplyDefaults: require_defaults38().supplyDefaults,\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n calc: require_calc22(),\n plot: require_convert4(),\n moduleType: \"trace\",\n name: \"surface\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"2dMap\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/surface.js\n var require_surface2 = __commonJS({\n \"lib/surface.js\"(exports, module) {\n \"use strict\";\n module.exports = require_surface();\n }\n });\n\n // src/traces/mesh3d/attributes.js\n var require_attributes43 = __commonJS({\n \"src/traces/mesh3d/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var surfaceAttrs = require_attributes42();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n i: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n j: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n k: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertemplate: hovertemplateAttrs({ editType: \"calc\" }),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n delaunayaxis: {\n valType: \"enumerated\",\n values: [\"x\", \"y\", \"z\"],\n dflt: \"z\",\n editType: \"calc\"\n },\n alphahull: {\n valType: \"number\",\n dflt: -1,\n editType: \"calc\"\n },\n intensity: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n intensitymode: {\n valType: \"enumerated\",\n values: [\"vertex\", \"cell\"],\n dflt: \"vertex\",\n editType: \"calc\"\n },\n // Color field\n color: {\n valType: \"color\",\n editType: \"calc\"\n },\n vertexcolor: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n facecolor: {\n valType: \"data_array\",\n editType: \"calc\"\n }\n },\n colorScaleAttrs(\"\", {\n colorAttr: \"`intensity`\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }),\n {\n opacity: surfaceAttrs.opacity,\n // Flat shaded mode\n flatshading: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n contour: {\n show: extendFlat({}, surfaceAttrs.contours.x.show, {}),\n color: surfaceAttrs.contours.x.color,\n width: surfaceAttrs.contours.x.width,\n editType: \"calc\"\n },\n lightposition: {\n x: extendFlat({}, surfaceAttrs.lightposition.x, { dflt: 1e5 }),\n y: extendFlat({}, surfaceAttrs.lightposition.y, { dflt: 1e5 }),\n z: extendFlat({}, surfaceAttrs.lightposition.z, { dflt: 0 }),\n editType: \"calc\"\n },\n lighting: extendFlat({\n vertexnormalsepsilon: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1e-12,\n // otherwise finely tessellated things eg. the brain will have no specular light reflection\n editType: \"calc\"\n },\n facenormalsepsilon: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1e-6,\n // even the brain model doesn't appear to need finer than this\n editType: \"calc\"\n },\n editType: \"calc\"\n }, surfaceAttrs.lighting),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, { editType: \"calc\" }),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n }\n );\n }\n });\n\n // src/traces/isosurface/attributes.js\n var require_attributes44 = __commonJS({\n \"src/traces/isosurface/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var meshAttrs = require_attributes43();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n function makeSliceAttr(axLetter) {\n return {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n locations: {\n valType: \"data_array\",\n dflt: []\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n }\n };\n }\n function makeCapAttr(axLetter) {\n return {\n show: {\n valType: \"boolean\",\n dflt: true\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n }\n };\n }\n var attrs = module.exports = overrideAll(extendFlat(\n {\n x: {\n valType: \"data_array\"\n },\n y: {\n valType: \"data_array\"\n },\n z: {\n valType: \"data_array\"\n },\n value: {\n valType: \"data_array\"\n },\n isomin: {\n valType: \"number\"\n },\n isomax: {\n valType: \"number\"\n },\n surface: {\n show: {\n valType: \"boolean\",\n dflt: true\n },\n count: {\n valType: \"integer\",\n dflt: 2,\n min: 1\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n pattern: {\n valType: \"flaglist\",\n flags: [\"A\", \"B\", \"C\", \"D\", \"E\"],\n extras: [\"all\", \"odd\", \"even\"],\n dflt: \"all\"\n }\n },\n spaceframe: {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.15\n }\n },\n slices: {\n x: makeSliceAttr(\"x\"),\n y: makeSliceAttr(\"y\"),\n z: makeSliceAttr(\"z\")\n },\n caps: {\n x: makeCapAttr(\"x\"),\n y: makeCapAttr(\"y\"),\n z: makeCapAttr(\"z\")\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true\n },\n hovertemplate: hovertemplateAttrs(),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n valuehoverformat: axisHoverFormat(\"value\", 1),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n colorAttr: \"`value`\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }),\n {\n opacity: meshAttrs.opacity,\n lightposition: meshAttrs.lightposition,\n lighting: meshAttrs.lighting,\n flatshading: meshAttrs.flatshading,\n contour: meshAttrs.contour,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo)\n }\n ), \"calc\", \"nested\");\n attrs.flatshading.dflt = true;\n attrs.lighting.facenormalsepsilon.dflt = 0;\n attrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = \"calc+clearAxisTypes\";\n }\n });\n\n // src/traces/isosurface/defaults.js\n var require_defaults39 = __commonJS({\n \"src/traces/isosurface/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var attributes = require_attributes44();\n var colorscaleDefaults = require_defaults2();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n }\n function supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n var isomin = coerce(\"isomin\");\n var isomax = coerce(\"isomax\");\n if (isomax !== void 0 && isomax !== null && isomin !== void 0 && isomin !== null && isomin > isomax) {\n traceOut.isomin = null;\n traceOut.isomax = null;\n }\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n var value = coerce(\"value\");\n if (!x || !x.length || !y || !y.length || !z || !z.length || !value || !value.length) {\n traceOut.visible = false;\n return;\n }\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\", \"z\"], layout);\n coerce(\"valuehoverformat\");\n [\"x\", \"y\", \"z\"].forEach(function(dim) {\n coerce(dim + \"hoverformat\");\n var capDim = \"caps.\" + dim;\n var showCap = coerce(capDim + \".show\");\n if (showCap) {\n coerce(capDim + \".fill\");\n }\n var sliceDim = \"slices.\" + dim;\n var showSlice = coerce(sliceDim + \".show\");\n if (showSlice) {\n coerce(sliceDim + \".fill\");\n coerce(sliceDim + \".locations\");\n }\n });\n var showSpaceframe = coerce(\"spaceframe.show\");\n if (showSpaceframe) {\n coerce(\"spaceframe.fill\");\n }\n var showSurface = coerce(\"surface.show\");\n if (showSurface) {\n coerce(\"surface.count\");\n coerce(\"surface.fill\");\n coerce(\"surface.pattern\");\n }\n var showContour = coerce(\"contour.show\");\n if (showContour) {\n coerce(\"contour.color\");\n coerce(\"contour.width\");\n }\n [\n \"text\",\n \"hovertext\",\n \"hovertemplate\",\n \"lighting.ambient\",\n \"lighting.diffuse\",\n \"lighting.specular\",\n \"lighting.roughness\",\n \"lighting.fresnel\",\n \"lighting.vertexnormalsepsilon\",\n \"lighting.facenormalsepsilon\",\n \"lightposition.x\",\n \"lightposition.y\",\n \"lightposition.z\",\n \"flatshading\",\n \"opacity\"\n ].forEach(function(x2) {\n coerce(x2);\n });\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"c\" });\n traceOut._length = null;\n }\n module.exports = {\n supplyDefaults,\n supplyIsoDefaults\n };\n }\n });\n\n // src/traces/streamtube/calc.js\n var require_calc23 = __commonJS({\n \"src/traces/streamtube/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleCalc = require_calc();\n function calc(gd, trace) {\n trace._len = Math.min(\n trace.u.length,\n trace.v.length,\n trace.w.length,\n trace.x.length,\n trace.y.length,\n trace.z.length\n );\n trace._u = filter(trace.u, trace._len);\n trace._v = filter(trace.v, trace._len);\n trace._w = filter(trace.w, trace._len);\n trace._x = filter(trace.x, trace._len);\n trace._y = filter(trace.y, trace._len);\n trace._z = filter(trace.z, trace._len);\n var grid = processGrid(trace);\n trace._gridFill = grid.fill;\n trace._Xs = grid.Xs;\n trace._Ys = grid.Ys;\n trace._Zs = grid.Zs;\n trace._len = grid.len;\n var slen = 0;\n var startx, starty, startz;\n if (trace.starts) {\n startx = filter(trace.starts.x || []);\n starty = filter(trace.starts.y || []);\n startz = filter(trace.starts.z || []);\n slen = Math.min(startx.length, starty.length, startz.length);\n }\n trace._startsX = startx || [];\n trace._startsY = starty || [];\n trace._startsZ = startz || [];\n var normMax = 0;\n var normMin = Infinity;\n var i;\n for (i = 0; i < trace._len; i++) {\n var u = trace._u[i];\n var v = trace._v[i];\n var w = trace._w[i];\n var norm = Math.sqrt(u * u + v * v + w * w);\n normMax = Math.max(normMax, norm);\n normMin = Math.min(normMin, norm);\n }\n colorscaleCalc(gd, trace, {\n vals: [normMin, normMax],\n containerStr: \"\",\n cLetter: \"c\"\n });\n for (i = 0; i < slen; i++) {\n var sx = startx[i];\n grid.xMax = Math.max(grid.xMax, sx);\n grid.xMin = Math.min(grid.xMin, sx);\n var sy = starty[i];\n grid.yMax = Math.max(grid.yMax, sy);\n grid.yMin = Math.min(grid.yMin, sy);\n var sz = startz[i];\n grid.zMax = Math.max(grid.zMax, sz);\n grid.zMin = Math.min(grid.zMin, sz);\n }\n trace._slen = slen;\n trace._normMax = normMax;\n trace._xbnds = [grid.xMin, grid.xMax];\n trace._ybnds = [grid.yMin, grid.yMax];\n trace._zbnds = [grid.zMin, grid.zMax];\n }\n function processGrid(trace) {\n var x = trace._x;\n var y = trace._y;\n var z = trace._z;\n var len = trace._len;\n var i, j, k;\n var xMax = -Infinity;\n var xMin = Infinity;\n var yMax = -Infinity;\n var yMin = Infinity;\n var zMax = -Infinity;\n var zMin = Infinity;\n var gridFill = \"\";\n var filledX;\n var filledY;\n var filledZ;\n var firstX, lastX;\n var firstY, lastY;\n var firstZ, lastZ;\n if (len) {\n firstX = x[0];\n firstY = y[0];\n firstZ = z[0];\n }\n if (len > 1) {\n lastX = x[len - 1];\n lastY = y[len - 1];\n lastZ = z[len - 1];\n }\n for (i = 0; i < len; i++) {\n xMax = Math.max(xMax, x[i]);\n xMin = Math.min(xMin, x[i]);\n yMax = Math.max(yMax, y[i]);\n yMin = Math.min(yMin, y[i]);\n zMax = Math.max(zMax, z[i]);\n zMin = Math.min(zMin, z[i]);\n if (!filledX && x[i] !== firstX) {\n filledX = true;\n gridFill += \"x\";\n }\n if (!filledY && y[i] !== firstY) {\n filledY = true;\n gridFill += \"y\";\n }\n if (!filledZ && z[i] !== firstZ) {\n filledZ = true;\n gridFill += \"z\";\n }\n }\n if (!filledX) gridFill += \"x\";\n if (!filledY) gridFill += \"y\";\n if (!filledZ) gridFill += \"z\";\n var Xs = distinctVals(trace._x);\n var Ys = distinctVals(trace._y);\n var Zs = distinctVals(trace._z);\n gridFill = gridFill.replace(\"x\", (firstX > lastX ? \"-\" : \"+\") + \"x\");\n gridFill = gridFill.replace(\"y\", (firstY > lastY ? \"-\" : \"+\") + \"y\");\n gridFill = gridFill.replace(\"z\", (firstZ > lastZ ? \"-\" : \"+\") + \"z\");\n var empty = function() {\n len = 0;\n Xs = [];\n Ys = [];\n Zs = [];\n };\n if (!len || len < Xs.length * Ys.length * Zs.length) empty();\n var getArray = function(c) {\n return c === \"x\" ? x : c === \"y\" ? y : z;\n };\n var getVals = function(c) {\n return c === \"x\" ? Xs : c === \"y\" ? Ys : Zs;\n };\n var getDir = function(c) {\n return c[len - 1] < c[0] ? -1 : 1;\n };\n var arrK = getArray(gridFill[1]);\n var arrJ = getArray(gridFill[3]);\n var arrI = getArray(gridFill[5]);\n var nk = getVals(gridFill[1]).length;\n var nj = getVals(gridFill[3]).length;\n var ni = getVals(gridFill[5]).length;\n var arbitrary = false;\n var getIndex = function(_i, _j, _k) {\n return nk * (nj * _i + _j) + _k;\n };\n var dirK = getDir(getArray(gridFill[1]));\n var dirJ = getDir(getArray(gridFill[3]));\n var dirI = getDir(getArray(gridFill[5]));\n for (i = 0; i < ni - 1; i++) {\n for (j = 0; j < nj - 1; j++) {\n for (k = 0; k < nk - 1; k++) {\n var q000 = getIndex(i, j, k);\n var q001 = getIndex(i, j, k + 1);\n var q010 = getIndex(i, j + 1, k);\n var q100 = getIndex(i + 1, j, k);\n if (!(arrK[q000] * dirK < arrK[q001] * dirK) || !(arrJ[q000] * dirJ < arrJ[q010] * dirJ) || !(arrI[q000] * dirI < arrI[q100] * dirI)) {\n arbitrary = true;\n }\n if (arbitrary) break;\n }\n if (arbitrary) break;\n }\n if (arbitrary) break;\n }\n if (arbitrary) {\n Lib.warn(\"Encountered arbitrary coordinates! Unable to input data grid.\");\n empty();\n }\n return {\n xMin,\n yMin,\n zMin,\n xMax,\n yMax,\n zMax,\n Xs,\n Ys,\n Zs,\n len,\n fill: gridFill\n };\n }\n function distinctVals(col) {\n return Lib.distinctVals(col).vals;\n }\n function filter(arr, len) {\n if (len === void 0) len = arr.length;\n if (Lib.isTypedArray(arr)) return arr.subarray(0, len);\n var values = [];\n for (var i = 0; i < len; i++) {\n values[i] = +arr[i];\n }\n return values;\n }\n module.exports = {\n calc,\n filter,\n processGrid\n };\n }\n });\n\n // src/traces/isosurface/calc.js\n var require_calc24 = __commonJS({\n \"src/traces/isosurface/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n var processGrid = require_calc23().processGrid;\n var filter = require_calc23().filter;\n module.exports = function calc(gd, trace) {\n trace._len = Math.min(\n trace.x.length,\n trace.y.length,\n trace.z.length,\n trace.value.length\n );\n trace._x = filter(trace.x, trace._len);\n trace._y = filter(trace.y, trace._len);\n trace._z = filter(trace.z, trace._len);\n trace._value = filter(trace.value, trace._len);\n var grid = processGrid(trace);\n trace._gridFill = grid.fill;\n trace._Xs = grid.Xs;\n trace._Ys = grid.Ys;\n trace._Zs = grid.Zs;\n trace._len = grid.len;\n var min = Infinity;\n var max = -Infinity;\n for (var i = 0; i < trace._len; i++) {\n var v = trace._value[i];\n min = Math.min(min, v);\n max = Math.max(max, v);\n }\n trace._minValues = min;\n trace._maxValues = max;\n trace._vMin = trace.isomin === void 0 || trace.isomin === null ? min : trace.isomin;\n trace._vMax = trace.isomax === void 0 || trace.isomax === null ? max : trace.isomax;\n colorscaleCalc(gd, trace, {\n vals: [trace._vMin, trace._vMax],\n containerStr: \"\",\n cLetter: \"c\"\n });\n };\n }\n });\n\n // src/plots/gl3d/zip3.js\n var require_zip3 = __commonJS({\n \"src/plots/gl3d/zip3.js\"(exports, module) {\n \"use strict\";\n module.exports = function zip3(x, y, z, len) {\n len = len || x.length;\n var result = new Array(len);\n for (var i = 0; i < len; i++) {\n result[i] = [x[i], y[i], z[i]];\n }\n return result;\n };\n }\n });\n\n // src/traces/isosurface/convert.js\n var require_convert5 = __commonJS({\n \"src/traces/isosurface/convert.js\"(exports, module) {\n \"use strict\";\n var createMesh = require_stackgl_modules().gl_mesh3d;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var str2RgbaArray = require_str2rgbarray();\n var extractOpts = require_colorscale().extractOpts;\n var zip3 = require_zip3();\n var findNearestOnAxis = function(w, arr) {\n for (var q = arr.length - 1; q > 0; q--) {\n var min = Math.min(arr[q], arr[q - 1]);\n var max = Math.max(arr[q], arr[q - 1]);\n if (max > min && min < w && w <= max) {\n return {\n id: q,\n distRatio: (max - w) / (max - min)\n };\n }\n }\n return {\n id: 0,\n distRatio: 0\n };\n };\n function IsosurfaceTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = \"\";\n this.data = null;\n this.showContour = false;\n }\n var proto = IsosurfaceTrace.prototype;\n proto.handlePick = function(selection) {\n if (selection.object === this.mesh) {\n var rawId = selection.data.index;\n var x = this.data._meshX[rawId];\n var y = this.data._meshY[rawId];\n var z = this.data._meshZ[rawId];\n var height = this.data._Ys.length;\n var depth = this.data._Zs.length;\n var i = findNearestOnAxis(x, this.data._Xs).id;\n var j = findNearestOnAxis(y, this.data._Ys).id;\n var k = findNearestOnAxis(z, this.data._Zs).id;\n var selectIndex = selection.index = k + depth * j + depth * height * i;\n selection.traceCoordinate = [\n this.data._meshX[selectIndex],\n this.data._meshY[selectIndex],\n this.data._meshZ[selectIndex],\n this.data._value[selectIndex]\n ];\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[selectIndex] !== void 0) {\n selection.textLabel = text[selectIndex];\n } else if (text) {\n selection.textLabel = text;\n }\n return true;\n }\n };\n proto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n this.data = generateIsoMeshes(data);\n function toDataCoords(axis, coord, scale, calendar) {\n return coord.map(function(x) {\n return axis.d2l(x, 0, calendar) * scale;\n });\n }\n var positions = zip3(\n toDataCoords(layout.xaxis, data._meshX, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data._meshY, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data._meshZ, scene.dataScale[2], data.zcalendar)\n );\n var cells = zip3(data._meshI, data._meshJ, data._meshK);\n var config = {\n positions,\n cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n var cOpts = extractOpts(data);\n config.vertexIntensity = data._meshIntensity;\n config.vertexIntensityBounds = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n this.mesh.update(config);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n var GRID_TYPES = [\"xyz\", \"xzy\", \"yxz\", \"yzx\", \"zxy\", \"zyx\"];\n function generateIsoMeshes(data) {\n data._meshI = [];\n data._meshJ = [];\n data._meshK = [];\n var showSurface = data.surface.show;\n var showSpaceframe = data.spaceframe.show;\n var surfaceFill = data.surface.fill;\n var spaceframeFill = data.spaceframe.fill;\n var drawingSurface = false;\n var drawingSpaceframe = false;\n var numFaces = 0;\n var numVertices;\n var beginVertextLength;\n var Xs = data._Xs;\n var Ys = data._Ys;\n var Zs = data._Zs;\n var width = Xs.length;\n var height = Ys.length;\n var depth = Zs.length;\n var filled = GRID_TYPES.indexOf(data._gridFill.replace(/-/g, \"\").replace(/\\+/g, \"\"));\n var getIndex = function(i, j, k) {\n switch (filled) {\n case 5:\n return k + depth * j + depth * height * i;\n case 4:\n return k + depth * i + depth * width * j;\n case 3:\n return j + height * k + height * depth * i;\n case 2:\n return j + height * i + height * width * k;\n case 1:\n return i + width * k + width * depth * j;\n default:\n return i + width * j + width * height * k;\n }\n };\n var minValues = data._minValues;\n var maxValues = data._maxValues;\n var vMin = data._vMin;\n var vMax = data._vMax;\n var allXs;\n var allYs;\n var allZs;\n var allVs;\n function findVertexId(x, y, z) {\n var len = allVs.length;\n for (var f = beginVertextLength; f < len; f++) {\n if (x === allXs[f] && y === allYs[f] && z === allZs[f]) {\n return f;\n }\n }\n return -1;\n }\n function beginGroup() {\n beginVertextLength = numVertices;\n }\n function emptyVertices() {\n allXs = [];\n allYs = [];\n allZs = [];\n allVs = [];\n numVertices = 0;\n beginGroup();\n }\n function addVertex(x, y, z, v) {\n allXs.push(x);\n allYs.push(y);\n allZs.push(z);\n allVs.push(v);\n numVertices++;\n return numVertices - 1;\n }\n function addFace(a, b, c) {\n data._meshI.push(a);\n data._meshJ.push(b);\n data._meshK.push(c);\n numFaces++;\n return numFaces - 1;\n }\n function getCenter(A2, B2, C2) {\n var M = [];\n for (var i = 0; i < A2.length; i++) {\n M[i] = (A2[i] + B2[i] + C2[i]) / 3;\n }\n return M;\n }\n function getBetween(A2, B2, r) {\n var M = [];\n for (var i = 0; i < A2.length; i++) {\n M[i] = A2[i] * (1 - r) + r * B2[i];\n }\n return M;\n }\n var activeFill;\n function setFill(fill) {\n activeFill = fill;\n }\n function createOpenTri(xyzv, abc) {\n var A2 = xyzv[0];\n var B2 = xyzv[1];\n var C2 = xyzv[2];\n var G = getCenter(A2, B2, C2);\n var r = Math.sqrt(1 - activeFill);\n var p1 = getBetween(G, A2, r);\n var p2 = getBetween(G, B2, r);\n var p3 = getBetween(G, C2, r);\n var a = abc[0];\n var b = abc[1];\n var c = abc[2];\n return {\n xyzv: [\n [A2, B2, p2],\n [p2, p1, A2],\n [B2, C2, p3],\n [p3, p2, B2],\n [C2, A2, p1],\n [p1, p3, C2]\n ],\n abc: [\n [a, b, -1],\n [-1, -1, a],\n [b, c, -1],\n [-1, -1, b],\n [c, a, -1],\n [-1, -1, c]\n ]\n };\n }\n function styleIncludes(style, char) {\n if (style === \"all\" || style === null) return true;\n return style.indexOf(char) > -1;\n }\n function mapValue(style, value) {\n if (style === null) return value;\n return style;\n }\n function drawTri(style, xyzv, abc) {\n beginGroup();\n var allXYZVs = [xyzv];\n var allABCs = [abc];\n if (activeFill >= 1) {\n allXYZVs = [xyzv];\n allABCs = [abc];\n } else if (activeFill > 0) {\n var openTri = createOpenTri(xyzv, abc);\n allXYZVs = openTri.xyzv;\n allABCs = openTri.abc;\n }\n for (var f = 0; f < allXYZVs.length; f++) {\n xyzv = allXYZVs[f];\n abc = allABCs[f];\n var pnts = [];\n for (var i = 0; i < 3; i++) {\n var x = xyzv[i][0];\n var y = xyzv[i][1];\n var z = xyzv[i][2];\n var v = xyzv[i][3];\n var id = abc[i] > -1 ? abc[i] : findVertexId(x, y, z);\n if (id > -1) {\n pnts[i] = id;\n } else {\n pnts[i] = addVertex(x, y, z, mapValue(style, v));\n }\n }\n addFace(pnts[0], pnts[1], pnts[2]);\n }\n }\n function drawQuad(style, xyzv, abcd) {\n var makeTri = function(i, j, k) {\n drawTri(style, [xyzv[i], xyzv[j], xyzv[k]], [abcd[i], abcd[j], abcd[k]]);\n };\n makeTri(0, 1, 2);\n makeTri(2, 3, 0);\n }\n function drawTetra(style, xyzv, abcd) {\n var makeTri = function(i, j, k) {\n drawTri(style, [xyzv[i], xyzv[j], xyzv[k]], [abcd[i], abcd[j], abcd[k]]);\n };\n makeTri(0, 1, 2);\n makeTri(3, 0, 1);\n makeTri(2, 3, 0);\n makeTri(1, 2, 3);\n }\n function calcIntersection(pointOut, pointIn, min, max) {\n var value = pointOut[3];\n if (value < min) value = min;\n if (value > max) value = max;\n var ratio = (pointOut[3] - value) / (pointOut[3] - pointIn[3] + 1e-9);\n var result = [];\n for (var s = 0; s < 4; s++) {\n result[s] = (1 - ratio) * pointOut[s] + ratio * pointIn[s];\n }\n return result;\n }\n function inRange(value, min, max) {\n return value >= min && value <= max;\n }\n function almostInFinalRange(value) {\n var vErr = 1e-3 * (vMax - vMin);\n return value >= vMin - vErr && value <= vMax + vErr;\n }\n function getXYZV(indecies) {\n var xyzv = [];\n for (var q = 0; q < 4; q++) {\n var index = indecies[q];\n xyzv.push(\n [\n data._x[index],\n data._y[index],\n data._z[index],\n data._value[index]\n ]\n );\n }\n return xyzv;\n }\n var MAX_PASS = 3;\n function tryCreateTri(style, xyzv, abc, min, max, nPass) {\n if (!nPass) nPass = 1;\n abc = [-1, -1, -1];\n var result = false;\n var ok = [\n inRange(xyzv[0][3], min, max),\n inRange(xyzv[1][3], min, max),\n inRange(xyzv[2][3], min, max)\n ];\n if (!ok[0] && !ok[1] && !ok[2]) {\n return false;\n }\n var tryDrawTri = function(style2, xyzv2, abc2) {\n if (\n // we check here if the points are in `real` iso-min/max range\n almostInFinalRange(xyzv2[0][3]) && almostInFinalRange(xyzv2[1][3]) && almostInFinalRange(xyzv2[2][3])\n ) {\n drawTri(style2, xyzv2, abc2);\n return true;\n } else if (nPass < MAX_PASS) {\n return tryCreateTri(style2, xyzv2, abc2, vMin, vMax, ++nPass);\n }\n return false;\n };\n if (ok[0] && ok[1] && ok[2]) {\n return tryDrawTri(style, xyzv, abc) || result;\n }\n var interpolated = false;\n [\n [0, 1, 2],\n [2, 0, 1],\n [1, 2, 0]\n ].forEach(function(e) {\n if (ok[e[0]] && ok[e[1]] && !ok[e[2]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var p1 = calcIntersection(C2, A2, min, max);\n var p2 = calcIntersection(C2, B2, min, max);\n result = tryDrawTri(style, [p2, p1, A2], [-1, -1, abc[e[0]]]) || result;\n result = tryDrawTri(style, [A2, B2, p2], [abc[e[0]], abc[e[1]], -1]) || result;\n interpolated = true;\n }\n });\n if (interpolated) return result;\n [\n [0, 1, 2],\n [1, 2, 0],\n [2, 0, 1]\n ].forEach(function(e) {\n if (ok[e[0]] && !ok[e[1]] && !ok[e[2]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var p1 = calcIntersection(B2, A2, min, max);\n var p2 = calcIntersection(C2, A2, min, max);\n result = tryDrawTri(style, [p2, p1, A2], [-1, -1, abc[e[0]]]) || result;\n interpolated = true;\n }\n });\n return result;\n }\n function tryCreateTetra(style, abcd, min, max) {\n var result = false;\n var xyzv = getXYZV(abcd);\n var ok = [\n inRange(xyzv[0][3], min, max),\n inRange(xyzv[1][3], min, max),\n inRange(xyzv[2][3], min, max),\n inRange(xyzv[3][3], min, max)\n ];\n if (!ok[0] && !ok[1] && !ok[2] && !ok[3]) {\n return result;\n }\n if (ok[0] && ok[1] && ok[2] && ok[3]) {\n if (drawingSpaceframe) {\n result = drawTetra(style, xyzv, abcd) || result;\n }\n return result;\n }\n var interpolated = false;\n [\n [0, 1, 2, 3],\n [3, 0, 1, 2],\n [2, 3, 0, 1],\n [1, 2, 3, 0]\n ].forEach(function(e) {\n if (ok[e[0]] && ok[e[1]] && ok[e[2]] && !ok[e[3]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var D2 = xyzv[e[3]];\n if (drawingSpaceframe) {\n result = drawTri(style, [A2, B2, C2], [abcd[e[0]], abcd[e[1]], abcd[e[2]]]) || result;\n } else {\n var p1 = calcIntersection(D2, A2, min, max);\n var p2 = calcIntersection(D2, B2, min, max);\n var p3 = calcIntersection(D2, C2, min, max);\n result = drawTri(null, [p1, p2, p3], [-1, -1, -1]) || result;\n }\n interpolated = true;\n }\n });\n if (interpolated) return result;\n [\n [0, 1, 2, 3],\n [1, 2, 3, 0],\n [2, 3, 0, 1],\n [3, 0, 1, 2],\n [0, 2, 3, 1],\n [1, 3, 2, 0]\n ].forEach(function(e) {\n if (ok[e[0]] && ok[e[1]] && !ok[e[2]] && !ok[e[3]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var D2 = xyzv[e[3]];\n var p1 = calcIntersection(C2, A2, min, max);\n var p2 = calcIntersection(C2, B2, min, max);\n var p3 = calcIntersection(D2, B2, min, max);\n var p4 = calcIntersection(D2, A2, min, max);\n if (drawingSpaceframe) {\n result = drawTri(style, [A2, p4, p1], [abcd[e[0]], -1, -1]) || result;\n result = drawTri(style, [B2, p2, p3], [abcd[e[1]], -1, -1]) || result;\n } else {\n result = drawQuad(null, [p1, p2, p3, p4], [-1, -1, -1, -1]) || result;\n }\n interpolated = true;\n }\n });\n if (interpolated) return result;\n [\n [0, 1, 2, 3],\n [1, 2, 3, 0],\n [2, 3, 0, 1],\n [3, 0, 1, 2]\n ].forEach(function(e) {\n if (ok[e[0]] && !ok[e[1]] && !ok[e[2]] && !ok[e[3]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var D2 = xyzv[e[3]];\n var p1 = calcIntersection(B2, A2, min, max);\n var p2 = calcIntersection(C2, A2, min, max);\n var p3 = calcIntersection(D2, A2, min, max);\n if (drawingSpaceframe) {\n result = drawTri(style, [A2, p1, p2], [abcd[e[0]], -1, -1]) || result;\n result = drawTri(style, [A2, p2, p3], [abcd[e[0]], -1, -1]) || result;\n result = drawTri(style, [A2, p3, p1], [abcd[e[0]], -1, -1]) || result;\n } else {\n result = drawTri(null, [p1, p2, p3], [-1, -1, -1]) || result;\n }\n interpolated = true;\n }\n });\n return result;\n }\n function addCube(style, p000, p001, p010, p011, p100, p101, p110, p111, min, max) {\n var result = false;\n if (drawingSurface) {\n if (styleIncludes(style, \"A\")) {\n result = tryCreateTetra(null, [p000, p001, p010, p100], min, max) || result;\n }\n if (styleIncludes(style, \"B\")) {\n result = tryCreateTetra(null, [p001, p010, p011, p111], min, max) || result;\n }\n if (styleIncludes(style, \"C\")) {\n result = tryCreateTetra(null, [p001, p100, p101, p111], min, max) || result;\n }\n if (styleIncludes(style, \"D\")) {\n result = tryCreateTetra(null, [p010, p100, p110, p111], min, max) || result;\n }\n if (styleIncludes(style, \"E\")) {\n result = tryCreateTetra(null, [p001, p010, p100, p111], min, max) || result;\n }\n }\n if (drawingSpaceframe) {\n result = tryCreateTetra(style, [p001, p010, p100, p111], min, max) || result;\n }\n return result;\n }\n function addRect(style, a, b, c, d, min, max, previousResult) {\n return [\n previousResult[0] === true ? true : tryCreateTri(style, getXYZV([a, b, c]), [a, b, c], min, max),\n previousResult[1] === true ? true : tryCreateTri(style, getXYZV([c, d, a]), [c, d, a], min, max)\n ];\n }\n function begin2dCell(style, p00, p01, p10, p11, min, max, isEven, previousResult) {\n if (isEven) {\n return addRect(style, p00, p01, p11, p10, min, max, previousResult);\n } else {\n return addRect(style, p01, p11, p10, p00, min, max, previousResult);\n }\n }\n function beginSection(style, i, j, k, min, max, distRatios) {\n var result = false;\n var A2, B2, C2, D2;\n var makeSection = function() {\n result = tryCreateTri(style, [A2, B2, C2], [-1, -1, -1], min, max) || result;\n result = tryCreateTri(style, [C2, D2, A2], [-1, -1, -1], min, max) || result;\n };\n var rX = distRatios[0];\n var rY = distRatios[1];\n var rZ = distRatios[2];\n if (rX) {\n A2 = getBetween(getXYZV([getIndex(i, j - 0, k - 0)])[0], getXYZV([getIndex(i - 1, j - 0, k - 0)])[0], rX);\n B2 = getBetween(getXYZV([getIndex(i, j - 0, k - 1)])[0], getXYZV([getIndex(i - 1, j - 0, k - 1)])[0], rX);\n C2 = getBetween(getXYZV([getIndex(i, j - 1, k - 1)])[0], getXYZV([getIndex(i - 1, j - 1, k - 1)])[0], rX);\n D2 = getBetween(getXYZV([getIndex(i, j - 1, k - 0)])[0], getXYZV([getIndex(i - 1, j - 1, k - 0)])[0], rX);\n makeSection();\n }\n if (rY) {\n A2 = getBetween(getXYZV([getIndex(i - 0, j, k - 0)])[0], getXYZV([getIndex(i - 0, j - 1, k - 0)])[0], rY);\n B2 = getBetween(getXYZV([getIndex(i - 0, j, k - 1)])[0], getXYZV([getIndex(i - 0, j - 1, k - 1)])[0], rY);\n C2 = getBetween(getXYZV([getIndex(i - 1, j, k - 1)])[0], getXYZV([getIndex(i - 1, j - 1, k - 1)])[0], rY);\n D2 = getBetween(getXYZV([getIndex(i - 1, j, k - 0)])[0], getXYZV([getIndex(i - 1, j - 1, k - 0)])[0], rY);\n makeSection();\n }\n if (rZ) {\n A2 = getBetween(getXYZV([getIndex(i - 0, j - 0, k)])[0], getXYZV([getIndex(i - 0, j - 0, k - 1)])[0], rZ);\n B2 = getBetween(getXYZV([getIndex(i - 0, j - 1, k)])[0], getXYZV([getIndex(i - 0, j - 1, k - 1)])[0], rZ);\n C2 = getBetween(getXYZV([getIndex(i - 1, j - 1, k)])[0], getXYZV([getIndex(i - 1, j - 1, k - 1)])[0], rZ);\n D2 = getBetween(getXYZV([getIndex(i - 1, j - 0, k)])[0], getXYZV([getIndex(i - 1, j - 0, k - 1)])[0], rZ);\n makeSection();\n }\n return result;\n }\n function begin3dCell(style, p000, p001, p010, p011, p100, p101, p110, p111, min, max, isEven) {\n var cellStyle = style;\n if (isEven) {\n if (drawingSurface && style === \"even\") cellStyle = null;\n return addCube(cellStyle, p000, p001, p010, p011, p100, p101, p110, p111, min, max);\n } else {\n if (drawingSurface && style === \"odd\") cellStyle = null;\n return addCube(cellStyle, p111, p110, p101, p100, p011, p010, p001, p000, min, max);\n }\n }\n function draw2dX(style, items, min, max, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var i = items[q];\n for (var k = 1; k < depth; k++) {\n for (var j = 1; j < height; j++) {\n result.push(\n begin2dCell(\n style,\n getIndex(i, j - 1, k - 1),\n getIndex(i, j - 1, k),\n getIndex(i, j, k - 1),\n getIndex(i, j, k),\n min,\n max,\n (i + j + k) % 2,\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function draw2dY(style, items, min, max, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var j = items[q];\n for (var i = 1; i < width; i++) {\n for (var k = 1; k < depth; k++) {\n result.push(\n begin2dCell(\n style,\n getIndex(i - 1, j, k - 1),\n getIndex(i, j, k - 1),\n getIndex(i - 1, j, k),\n getIndex(i, j, k),\n min,\n max,\n (i + j + k) % 2,\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function draw2dZ(style, items, min, max, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var k = items[q];\n for (var j = 1; j < height; j++) {\n for (var i = 1; i < width; i++) {\n result.push(\n begin2dCell(\n style,\n getIndex(i - 1, j - 1, k),\n getIndex(i - 1, j, k),\n getIndex(i, j - 1, k),\n getIndex(i, j, k),\n min,\n max,\n (i + j + k) % 2,\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function draw3d(style, min, max) {\n for (var k = 1; k < depth; k++) {\n for (var j = 1; j < height; j++) {\n for (var i = 1; i < width; i++) {\n begin3dCell(\n style,\n getIndex(i - 1, j - 1, k - 1),\n getIndex(i - 1, j - 1, k),\n getIndex(i - 1, j, k - 1),\n getIndex(i - 1, j, k),\n getIndex(i, j - 1, k - 1),\n getIndex(i, j - 1, k),\n getIndex(i, j, k - 1),\n getIndex(i, j, k),\n min,\n max,\n (i + j + k) % 2\n );\n }\n }\n }\n }\n function drawSpaceframe(style, min, max) {\n drawingSpaceframe = true;\n draw3d(style, min, max);\n drawingSpaceframe = false;\n }\n function drawSurface(style, min, max) {\n drawingSurface = true;\n draw3d(style, min, max);\n drawingSurface = false;\n }\n function drawSectionX(style, items, min, max, distRatios, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var i = items[q];\n for (var k = 1; k < depth; k++) {\n for (var j = 1; j < height; j++) {\n result.push(\n beginSection(\n style,\n i,\n j,\n k,\n min,\n max,\n distRatios[q],\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function drawSectionY(style, items, min, max, distRatios, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var j = items[q];\n for (var i = 1; i < width; i++) {\n for (var k = 1; k < depth; k++) {\n result.push(\n beginSection(\n style,\n i,\n j,\n k,\n min,\n max,\n distRatios[q],\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function drawSectionZ(style, items, min, max, distRatios, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var k = items[q];\n for (var j = 1; j < height; j++) {\n for (var i = 1; i < width; i++) {\n result.push(\n beginSection(\n style,\n i,\n j,\n k,\n min,\n max,\n distRatios[q],\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function createRange(a, b) {\n var range = [];\n for (var q = a; q < b; q++) {\n range.push(q);\n }\n return range;\n }\n function insertGridPoints() {\n for (var i = 0; i < width; i++) {\n for (var j = 0; j < height; j++) {\n for (var k = 0; k < depth; k++) {\n var index = getIndex(i, j, k);\n addVertex(\n data._x[index],\n data._y[index],\n data._z[index],\n data._value[index]\n );\n }\n }\n }\n }\n function drawAll() {\n emptyVertices();\n insertGridPoints();\n var activeStyle = null;\n if (showSpaceframe && spaceframeFill) {\n setFill(spaceframeFill);\n drawSpaceframe(activeStyle, vMin, vMax);\n }\n if (showSurface && surfaceFill) {\n setFill(surfaceFill);\n var surfacePattern = data.surface.pattern;\n var surfaceCount = data.surface.count;\n for (var q = 0; q < surfaceCount; q++) {\n var ratio = surfaceCount === 1 ? 0.5 : q / (surfaceCount - 1);\n var level = (1 - ratio) * vMin + ratio * vMax;\n var d1 = Math.abs(level - minValues);\n var d2 = Math.abs(level - maxValues);\n var ranges = d1 > d2 ? [minValues, level] : [level, maxValues];\n drawSurface(surfacePattern, ranges[0], ranges[1]);\n }\n }\n var setupMinMax = [\n [Math.min(vMin, maxValues), Math.max(vMin, maxValues)],\n [Math.min(minValues, vMax), Math.max(minValues, vMax)]\n ];\n [\"x\", \"y\", \"z\"].forEach(function(e) {\n var preRes = [];\n for (var s = 0; s < setupMinMax.length; s++) {\n var count = 0;\n var activeMin = setupMinMax[s][0];\n var activeMax = setupMinMax[s][1];\n var slice = data.slices[e];\n if (slice.show && slice.fill) {\n setFill(slice.fill);\n var exactIndices = [];\n var ceilIndices = [];\n var distRatios = [];\n if (slice.locations.length) {\n for (var q2 = 0; q2 < slice.locations.length; q2++) {\n var near = findNearestOnAxis(\n slice.locations[q2],\n e === \"x\" ? Xs : e === \"y\" ? Ys : Zs\n );\n if (near.distRatio === 0) {\n exactIndices.push(near.id);\n } else if (near.id > 0) {\n ceilIndices.push(near.id);\n if (e === \"x\") {\n distRatios.push([near.distRatio, 0, 0]);\n } else if (e === \"y\") {\n distRatios.push([0, near.distRatio, 0]);\n } else {\n distRatios.push([0, 0, near.distRatio]);\n }\n }\n }\n } else {\n if (e === \"x\") {\n exactIndices = createRange(1, width - 1);\n } else if (e === \"y\") {\n exactIndices = createRange(1, height - 1);\n } else {\n exactIndices = createRange(1, depth - 1);\n }\n }\n if (ceilIndices.length > 0) {\n if (e === \"x\") {\n preRes[count] = drawSectionX(activeStyle, ceilIndices, activeMin, activeMax, distRatios, preRes[count]);\n } else if (e === \"y\") {\n preRes[count] = drawSectionY(activeStyle, ceilIndices, activeMin, activeMax, distRatios, preRes[count]);\n } else {\n preRes[count] = drawSectionZ(activeStyle, ceilIndices, activeMin, activeMax, distRatios, preRes[count]);\n }\n count++;\n }\n if (exactIndices.length > 0) {\n if (e === \"x\") {\n preRes[count] = draw2dX(activeStyle, exactIndices, activeMin, activeMax, preRes[count]);\n } else if (e === \"y\") {\n preRes[count] = draw2dY(activeStyle, exactIndices, activeMin, activeMax, preRes[count]);\n } else {\n preRes[count] = draw2dZ(activeStyle, exactIndices, activeMin, activeMax, preRes[count]);\n }\n count++;\n }\n }\n var cap = data.caps[e];\n if (cap.show && cap.fill) {\n setFill(cap.fill);\n if (e === \"x\") {\n preRes[count] = draw2dX(activeStyle, [0, width - 1], activeMin, activeMax, preRes[count]);\n } else if (e === \"y\") {\n preRes[count] = draw2dY(activeStyle, [0, height - 1], activeMin, activeMax, preRes[count]);\n } else {\n preRes[count] = draw2dZ(activeStyle, [0, depth - 1], activeMin, activeMax, preRes[count]);\n }\n count++;\n }\n }\n });\n if (numFaces === 0) {\n emptyVertices();\n }\n data._meshX = allXs;\n data._meshY = allYs;\n data._meshZ = allZs;\n data._meshIntensity = allVs;\n data._Xs = Xs;\n data._Ys = Ys;\n data._Zs = Zs;\n }\n drawAll();\n return data;\n }\n function createIsosurfaceTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var mesh = createMesh({ gl: gl2 });\n var result = new IsosurfaceTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n }\n module.exports = {\n findNearestOnAxis,\n generateIsoMeshes,\n createIsosurfaceTrace\n };\n }\n });\n\n // src/traces/isosurface/index.js\n var require_isosurface = __commonJS({\n \"src/traces/isosurface/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes44(),\n supplyDefaults: require_defaults39().supplyDefaults,\n calc: require_calc24(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n plot: require_convert5().createIsosurfaceTrace,\n moduleType: \"trace\",\n name: \"isosurface\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/isosurface.js\n var require_isosurface2 = __commonJS({\n \"lib/isosurface.js\"(exports, module) {\n \"use strict\";\n module.exports = require_isosurface();\n }\n });\n\n // src/traces/volume/attributes.js\n var require_attributes45 = __commonJS({\n \"src/traces/volume/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var isosurfaceAttrs = require_attributes44();\n var surfaceAttrs = require_attributes42();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var attrs = module.exports = overrideAll(extendFlat(\n {\n x: isosurfaceAttrs.x,\n y: isosurfaceAttrs.y,\n z: isosurfaceAttrs.z,\n value: isosurfaceAttrs.value,\n isomin: isosurfaceAttrs.isomin,\n isomax: isosurfaceAttrs.isomax,\n surface: isosurfaceAttrs.surface,\n spaceframe: {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n }\n },\n slices: isosurfaceAttrs.slices,\n caps: isosurfaceAttrs.caps,\n text: isosurfaceAttrs.text,\n hovertext: isosurfaceAttrs.hovertext,\n xhoverformat: isosurfaceAttrs.xhoverformat,\n yhoverformat: isosurfaceAttrs.yhoverformat,\n zhoverformat: isosurfaceAttrs.zhoverformat,\n valuehoverformat: isosurfaceAttrs.valuehoverformat,\n hovertemplate: isosurfaceAttrs.hovertemplate\n },\n colorScaleAttrs(\"\", {\n colorAttr: \"`value`\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }),\n {\n colorbar: isosurfaceAttrs.colorbar,\n opacity: isosurfaceAttrs.opacity,\n opacityscale: surfaceAttrs.opacityscale,\n lightposition: isosurfaceAttrs.lightposition,\n lighting: isosurfaceAttrs.lighting,\n flatshading: isosurfaceAttrs.flatshading,\n contour: isosurfaceAttrs.contour,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n }\n ), \"calc\", \"nested\");\n attrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = \"calc+clearAxisTypes\";\n }\n });\n\n // src/traces/volume/defaults.js\n var require_defaults40 = __commonJS({\n \"src/traces/volume/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes45();\n var supplyIsoDefaults = require_defaults39().supplyIsoDefaults;\n var opacityscaleDefaults = require_defaults38().opacityscaleDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n opacityscaleDefaults(traceIn, traceOut, layout, coerce);\n };\n }\n });\n\n // src/traces/volume/convert.js\n var require_convert6 = __commonJS({\n \"src/traces/volume/convert.js\"(exports, module) {\n \"use strict\";\n var createMesh = require_stackgl_modules().gl_mesh3d;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var str2RgbaArray = require_str2rgbarray();\n var extractOpts = require_colorscale().extractOpts;\n var zip3 = require_zip3();\n var findNearestOnAxis = require_convert5().findNearestOnAxis;\n var generateIsoMeshes = require_convert5().generateIsoMeshes;\n function VolumeTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = \"\";\n this.data = null;\n this.showContour = false;\n }\n var proto = VolumeTrace.prototype;\n proto.handlePick = function(selection) {\n if (selection.object === this.mesh) {\n var rawId = selection.data.index;\n var x = this.data._meshX[rawId];\n var y = this.data._meshY[rawId];\n var z = this.data._meshZ[rawId];\n var height = this.data._Ys.length;\n var depth = this.data._Zs.length;\n var i = findNearestOnAxis(x, this.data._Xs).id;\n var j = findNearestOnAxis(y, this.data._Ys).id;\n var k = findNearestOnAxis(z, this.data._Zs).id;\n var selectIndex = selection.index = k + depth * j + depth * height * i;\n selection.traceCoordinate = [\n this.data._meshX[selectIndex],\n this.data._meshY[selectIndex],\n this.data._meshZ[selectIndex],\n this.data._value[selectIndex]\n ];\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[selectIndex] !== void 0) {\n selection.textLabel = text[selectIndex];\n } else if (text) {\n selection.textLabel = text;\n }\n return true;\n }\n };\n proto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n this.data = generateIsoMeshes(data);\n function toDataCoords(axis, coord, scale, calendar) {\n return coord.map(function(x) {\n return axis.d2l(x, 0, calendar) * scale;\n });\n }\n var positions = zip3(\n toDataCoords(layout.xaxis, data._meshX, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data._meshY, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data._meshZ, scene.dataScale[2], data.zcalendar)\n );\n var cells = zip3(data._meshI, data._meshJ, data._meshK);\n var config = {\n positions,\n cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n opacityscale: data.opacityscale,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n var cOpts = extractOpts(data);\n config.vertexIntensity = data._meshIntensity;\n config.vertexIntensityBounds = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n this.mesh.update(config);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n function createVolumeTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var mesh = createMesh({ gl: gl2 });\n var result = new VolumeTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n }\n module.exports = createVolumeTrace;\n }\n });\n\n // src/traces/volume/index.js\n var require_volume = __commonJS({\n \"src/traces/volume/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes45(),\n supplyDefaults: require_defaults40(),\n calc: require_calc24(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n plot: require_convert6(),\n moduleType: \"trace\",\n name: \"volume\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/volume.js\n var require_volume2 = __commonJS({\n \"lib/volume.js\"(exports, module) {\n \"use strict\";\n module.exports = require_volume();\n }\n });\n\n // src/traces/mesh3d/defaults.js\n var require_defaults41 = __commonJS({\n \"src/traces/mesh3d/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes43();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function readComponents(array) {\n var ret = array.map(function(attr) {\n var result = coerce(attr);\n if (result && Lib.isArrayOrTypedArray(result)) return result;\n return null;\n });\n return ret.every(function(x) {\n return x && x.length === ret[0].length;\n }) && ret;\n }\n var coords = readComponents([\"x\", \"y\", \"z\"]);\n if (!coords) {\n traceOut.visible = false;\n return;\n }\n readComponents([\"i\", \"j\", \"k\"]);\n if (traceOut.i && (!traceOut.j || !traceOut.k) || traceOut.j && (!traceOut.k || !traceOut.i) || traceOut.k && (!traceOut.i || !traceOut.j)) {\n traceOut.visible = false;\n return;\n }\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\", \"z\"], layout);\n [\n \"lighting.ambient\",\n \"lighting.diffuse\",\n \"lighting.specular\",\n \"lighting.roughness\",\n \"lighting.fresnel\",\n \"lighting.vertexnormalsepsilon\",\n \"lighting.facenormalsepsilon\",\n \"lightposition.x\",\n \"lightposition.y\",\n \"lightposition.z\",\n \"flatshading\",\n \"alphahull\",\n \"delaunayaxis\",\n \"opacity\"\n ].forEach(function(x) {\n coerce(x);\n });\n var showContour = coerce(\"contour.show\");\n if (showContour) {\n coerce(\"contour.color\");\n coerce(\"contour.width\");\n }\n if (\"intensity\" in traceIn) {\n coerce(\"intensity\");\n coerce(\"intensitymode\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"c\" });\n } else {\n traceOut.showscale = false;\n if (\"facecolor\" in traceIn) coerce(\"facecolor\");\n else if (\"vertexcolor\" in traceIn) coerce(\"vertexcolor\");\n else coerce(\"color\", defaultColor);\n }\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/mesh3d/calc.js\n var require_calc25 = __commonJS({\n \"src/traces/mesh3d/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n module.exports = function calc(gd, trace) {\n if (trace.intensity) {\n colorscaleCalc(gd, trace, {\n vals: trace.intensity,\n containerStr: \"\",\n cLetter: \"c\"\n });\n }\n };\n }\n });\n\n // src/traces/mesh3d/convert.js\n var require_convert7 = __commonJS({\n \"src/traces/mesh3d/convert.js\"(exports, module) {\n \"use strict\";\n var createMesh = require_stackgl_modules().gl_mesh3d;\n var triangulate = require_stackgl_modules().delaunay_triangulate;\n var alphaShape = require_stackgl_modules().alpha_shape;\n var convexHull = require_stackgl_modules().convex_hull;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var str2RgbaArray = require_str2rgbarray();\n var extractOpts = require_colorscale().extractOpts;\n var zip3 = require_zip3();\n function Mesh3DTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = \"\";\n this.color = \"#fff\";\n this.data = null;\n this.showContour = false;\n }\n var proto = Mesh3DTrace.prototype;\n proto.handlePick = function(selection) {\n if (selection.object === this.mesh) {\n var selectIndex = selection.index = selection.data.index;\n if (selection.data._cellCenter) {\n selection.traceCoordinate = selection.data.dataCoordinate;\n } else {\n selection.traceCoordinate = [\n this.data.x[selectIndex],\n this.data.y[selectIndex],\n this.data.z[selectIndex]\n ];\n }\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[selectIndex] !== void 0) {\n selection.textLabel = text[selectIndex];\n } else if (text) {\n selection.textLabel = text;\n }\n return true;\n }\n };\n function parseColorArray(colors) {\n var b = [];\n var len = colors.length;\n for (var i = 0; i < len; i++) {\n b[i] = str2RgbaArray(colors[i]);\n }\n return b;\n }\n function toDataCoords(axis, coord, scale, calendar) {\n var b = [];\n var len = coord.length;\n for (var i = 0; i < len; i++) {\n b[i] = axis.d2l(coord[i], 0, calendar) * scale;\n }\n return b;\n }\n function toRoundIndex(a) {\n var b = [];\n var len = a.length;\n for (var i = 0; i < len; i++) {\n b[i] = Math.round(a[i]);\n }\n return b;\n }\n function delaunayCells(delaunayaxis, positions) {\n var d = [\"x\", \"y\", \"z\"].indexOf(delaunayaxis);\n var b = [];\n var len = positions.length;\n for (var i = 0; i < len; i++) {\n b[i] = [positions[i][(d + 1) % 3], positions[i][(d + 2) % 3]];\n }\n return triangulate(b);\n }\n function hasValidIndices(list, numVertices) {\n var len = list.length;\n for (var i = 0; i < len; i++) {\n if (list[i] <= -0.5 || list[i] >= numVertices - 0.5) {\n return false;\n }\n }\n return true;\n }\n proto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n this.data = data;\n var numVertices = data.x.length;\n var positions = zip3(\n toDataCoords(layout.xaxis, data.x, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data.y, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data.z, scene.dataScale[2], data.zcalendar)\n );\n var cells;\n if (data.i && data.j && data.k) {\n if (data.i.length !== data.j.length || data.j.length !== data.k.length || !hasValidIndices(data.i, numVertices) || !hasValidIndices(data.j, numVertices) || !hasValidIndices(data.k, numVertices)) {\n return;\n }\n cells = zip3(\n toRoundIndex(data.i),\n toRoundIndex(data.j),\n toRoundIndex(data.k)\n );\n } else if (data.alphahull === 0) {\n cells = convexHull(positions);\n } else if (data.alphahull > 0) {\n cells = alphaShape(data.alphahull, positions);\n } else {\n cells = delaunayCells(data.delaunayaxis, positions);\n }\n var config = {\n positions,\n cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n if (data.intensity) {\n var cOpts = extractOpts(data);\n this.color = \"#fff\";\n var mode = data.intensitymode;\n config[mode + \"Intensity\"] = data.intensity;\n config[mode + \"IntensityBounds\"] = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n } else if (data.vertexcolor) {\n this.color = data.vertexcolor[0];\n config.vertexColors = parseColorArray(data.vertexcolor);\n } else if (data.facecolor) {\n this.color = data.facecolor[0];\n config.cellColors = parseColorArray(data.facecolor);\n } else {\n this.color = data.color;\n config.meshColor = str2RgbaArray(data.color);\n }\n this.mesh.update(config);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n function createMesh3DTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var mesh = createMesh({ gl: gl2 });\n var result = new Mesh3DTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n }\n module.exports = createMesh3DTrace;\n }\n });\n\n // src/traces/mesh3d/index.js\n var require_mesh3d = __commonJS({\n \"src/traces/mesh3d/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes43(),\n supplyDefaults: require_defaults41(),\n calc: require_calc25(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n plot: require_convert7(),\n moduleType: \"trace\",\n name: \"mesh3d\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/mesh3d.js\n var require_mesh3d2 = __commonJS({\n \"lib/mesh3d.js\"(exports, module) {\n \"use strict\";\n module.exports = require_mesh3d();\n }\n });\n\n // src/traces/cone/attributes.js\n var require_attributes46 = __commonJS({\n \"src/traces/cone/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var mesh3dAttrs = require_attributes43();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var attrs = {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n u: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n v: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n w: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO add way to specify cone positions independently of the vector field\n // provided, similar to MATLAB's coneplot Cx/Cy/Cz meshgrids,\n // see https://www.mathworks.com/help/matlab/ref/coneplot.html\n //\n // Alternatively, if our goal is only to 'fill in gaps' in the vector data,\n // we could try to extend the heatmap 'connectgaps' algorithm to 3D.\n // From AJ: this particular algorithm which amounts to a Poisson equation,\n // both for interpolation and extrapolation - is the right one to use for\n // cones too. It makes a field with zero divergence, which is a good\n // baseline assumption for vector fields.\n //\n // cones: {\n // // potential attributes to add:\n // //\n // // - meshmode: 'cartesian-product', 'pts', 'grid'\n // //\n // // under `meshmode: 'grid'`\n // // - (x|y|z)grid.start\n // // - (x|y|z)grid.end\n // // - (x|y|z)grid.size\n //\n // x: {\n // valType: 'data_array',\n // editType: 'calc',\n //\n // },\n // y: {\n // valType: 'data_array',\n // editType: 'calc',\n //\n // },\n // z: {\n // valType: 'data_array',\n // editType: 'calc',\n //\n // },\n //\n // editType: 'calc',\n //\n // },\n sizemode: {\n valType: \"enumerated\",\n values: [\"scaled\", \"absolute\", \"raw\"],\n editType: \"calc\",\n dflt: \"scaled\"\n },\n sizeref: {\n valType: \"number\",\n editType: \"calc\",\n min: 0\n },\n anchor: {\n valType: \"enumerated\",\n editType: \"calc\",\n values: [\"tip\", \"tail\", \"cm\", \"center\"],\n dflt: \"cm\"\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertemplate: hovertemplateAttrs({ editType: \"calc\" }, { keys: [\"norm\"] }),\n uhoverformat: axisHoverFormat(\"u\", 1),\n vhoverformat: axisHoverFormat(\"v\", 1),\n whoverformat: axisHoverFormat(\"w\", 1),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n };\n extendFlat(attrs, colorScaleAttrs(\"\", {\n colorAttr: \"u/v/w norm\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }));\n var fromMesh3d = [\"opacity\", \"lightposition\", \"lighting\"];\n fromMesh3d.forEach(function(k) {\n attrs[k] = mesh3dAttrs[k];\n });\n attrs.hoverinfo = extendFlat({}, baseAttrs.hoverinfo, {\n editType: \"calc\",\n flags: [\"x\", \"y\", \"z\", \"u\", \"v\", \"w\", \"norm\", \"text\", \"name\"],\n dflt: \"x+y+z+norm+text+name\"\n });\n module.exports = attrs;\n }\n });\n\n // src/traces/cone/defaults.js\n var require_defaults42 = __commonJS({\n \"src/traces/cone/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes46();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var u = coerce(\"u\");\n var v = coerce(\"v\");\n var w = coerce(\"w\");\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n if (!u || !u.length || !v || !v.length || !w || !w.length || !x || !x.length || !y || !y.length || !z || !z.length) {\n traceOut.visible = false;\n return;\n }\n var sizemode = coerce(\"sizemode\");\n coerce(\"sizeref\", sizemode === \"raw\" ? 1 : 0.5);\n coerce(\"anchor\");\n coerce(\"lighting.ambient\");\n coerce(\"lighting.diffuse\");\n coerce(\"lighting.specular\");\n coerce(\"lighting.roughness\");\n coerce(\"lighting.fresnel\");\n coerce(\"lightposition.x\");\n coerce(\"lightposition.y\");\n coerce(\"lightposition.z\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"c\" });\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"uhoverformat\");\n coerce(\"vhoverformat\");\n coerce(\"whoverformat\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/cone/calc.js\n var require_calc26 = __commonJS({\n \"src/traces/cone/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n module.exports = function calc(gd, trace) {\n var u = trace.u;\n var v = trace.v;\n var w = trace.w;\n var len = Math.min(\n trace.x.length,\n trace.y.length,\n trace.z.length,\n u.length,\n v.length,\n w.length\n );\n var normMax = -Infinity;\n var normMin = Infinity;\n for (var i = 0; i < len; i++) {\n var uu = u[i];\n var vv = v[i];\n var ww = w[i];\n var norm = Math.sqrt(uu * uu + vv * vv + ww * ww);\n normMax = Math.max(normMax, norm);\n normMin = Math.min(normMin, norm);\n }\n trace._len = len;\n trace._normMax = normMax;\n colorscaleCalc(gd, trace, {\n vals: [normMin, normMax],\n containerStr: \"\",\n cLetter: \"c\"\n });\n };\n }\n });\n\n // src/traces/cone/convert.js\n var require_convert8 = __commonJS({\n \"src/traces/cone/convert.js\"(exports, module) {\n \"use strict\";\n var conePlot = require_stackgl_modules().gl_cone3d;\n var createConeMesh = require_stackgl_modules().gl_cone3d.createConeMesh;\n var simpleMap = require_lib().simpleMap;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var extractOpts = require_colorscale().extractOpts;\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var zip3 = require_zip3();\n function Cone(scene, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = null;\n this.data = null;\n }\n var proto = Cone.prototype;\n proto.handlePick = function(selection) {\n if (selection.object === this.mesh) {\n var selectIndex = selection.index = selection.data.index;\n var xx = this.data.x[selectIndex];\n var yy = this.data.y[selectIndex];\n var zz = this.data.z[selectIndex];\n var uu = this.data.u[selectIndex];\n var vv = this.data.v[selectIndex];\n var ww = this.data.w[selectIndex];\n selection.traceCoordinate = [\n xx,\n yy,\n zz,\n uu,\n vv,\n ww,\n Math.sqrt(uu * uu + vv * vv + ww * ww)\n ];\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[selectIndex] !== void 0) {\n selection.textLabel = text[selectIndex];\n } else if (text) {\n selection.textLabel = text;\n }\n return true;\n }\n };\n var axisName2scaleIndex = { xaxis: 0, yaxis: 1, zaxis: 2 };\n var anchor2coneOffset = { tip: 1, tail: 0, cm: 0.25, center: 0.5 };\n var anchor2coneSpan = { tip: 1, tail: 1, cm: 0.75, center: 0.5 };\n function convert(scene, trace) {\n var sceneLayout = scene.fullSceneLayout;\n var dataScale = scene.dataScale;\n var coneOpts = {};\n function toDataCoords(arr, axisName) {\n var ax = sceneLayout[axisName];\n var scale = dataScale[axisName2scaleIndex[axisName]];\n return simpleMap(arr, function(v) {\n return ax.d2l(v) * scale;\n });\n }\n coneOpts.vectors = zip3(\n toDataCoords(trace.u, \"xaxis\"),\n toDataCoords(trace.v, \"yaxis\"),\n toDataCoords(trace.w, \"zaxis\"),\n trace._len\n );\n coneOpts.positions = zip3(\n toDataCoords(trace.x, \"xaxis\"),\n toDataCoords(trace.y, \"yaxis\"),\n toDataCoords(trace.z, \"zaxis\"),\n trace._len\n );\n var cOpts = extractOpts(trace);\n coneOpts.colormap = parseColorScale(trace);\n coneOpts.vertexIntensityBounds = [cOpts.min / trace._normMax, cOpts.max / trace._normMax];\n coneOpts.coneOffset = anchor2coneOffset[trace.anchor];\n var sizemode = trace.sizemode;\n if (sizemode === \"scaled\") {\n coneOpts.coneSize = trace.sizeref || 0.5;\n } else if (sizemode === \"absolute\") {\n coneOpts.coneSize = trace.sizeref && trace._normMax ? trace.sizeref / trace._normMax : 0.5;\n } else if (sizemode === \"raw\") {\n coneOpts.coneSize = trace.sizeref;\n }\n coneOpts.coneSizemode = sizemode;\n var meshData = conePlot(coneOpts);\n var lp = trace.lightposition;\n meshData.lightPosition = [lp.x, lp.y, lp.z];\n meshData.ambient = trace.lighting.ambient;\n meshData.diffuse = trace.lighting.diffuse;\n meshData.specular = trace.lighting.specular;\n meshData.roughness = trace.lighting.roughness;\n meshData.fresnel = trace.lighting.fresnel;\n meshData.opacity = trace.opacity;\n trace._pad = anchor2coneSpan[trace.anchor] * meshData.vectorScale * meshData.coneScale * trace._normMax;\n return meshData;\n }\n proto.update = function(data) {\n this.data = data;\n var meshData = convert(this.scene, data);\n this.mesh.update(meshData);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n function createConeTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var meshData = convert(scene, data);\n var mesh = createConeMesh(gl2, meshData);\n var cone = new Cone(scene, data.uid);\n cone.mesh = mesh;\n cone.data = data;\n mesh._trace = cone;\n scene.glplot.add(mesh);\n return cone;\n }\n module.exports = createConeTrace;\n }\n });\n\n // src/traces/cone/index.js\n var require_cone = __commonJS({\n \"src/traces/cone/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"cone\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n attributes: require_attributes46(),\n supplyDefaults: require_defaults42(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n calc: require_calc26(),\n plot: require_convert8(),\n eventData: function(out, pt) {\n out.norm = pt.traceCoordinate[6];\n return out;\n },\n meta: {}\n };\n }\n });\n\n // lib/cone.js\n var require_cone2 = __commonJS({\n \"lib/cone.js\"(exports, module) {\n \"use strict\";\n module.exports = require_cone();\n }\n });\n\n // src/traces/streamtube/attributes.js\n var require_attributes47 = __commonJS({\n \"src/traces/streamtube/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var mesh3dAttrs = require_attributes43();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var attrs = {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n u: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n v: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n w: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n starts: {\n x: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n maxdisplayed: {\n valType: \"integer\",\n min: 0,\n dflt: 1e3,\n editType: \"calc\"\n },\n // TODO\n //\n // Should add 'absolute' (like cone traces have), but currently gl-streamtube3d's\n // `absoluteTubeSize` doesn't behave well enough for our needs.\n //\n // 'fixed' would be a nice addition to plot stream 'lines', see\n // https://github.com/plotly/plotly.js/commit/812be20750e21e0a1831975001c248d365850f73#r29129877\n //\n // sizemode: {\n // valType: 'enumerated',\n // values: ['scaled', 'absolute', 'fixed'],\n // dflt: 'scaled',\n // editType: 'calc',\n //\n // },\n sizeref: {\n valType: \"number\",\n editType: \"calc\",\n min: 0,\n dflt: 1\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n hovertemplate: hovertemplateAttrs({ editType: \"calc\" }, {\n keys: [\n \"tubex\",\n \"tubey\",\n \"tubez\",\n \"tubeu\",\n \"tubev\",\n \"tubew\",\n \"norm\",\n \"divergence\"\n ]\n }),\n uhoverformat: axisHoverFormat(\"u\", 1),\n vhoverformat: axisHoverFormat(\"v\", 1),\n whoverformat: axisHoverFormat(\"w\", 1),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n };\n extendFlat(attrs, colorScaleAttrs(\"\", {\n colorAttr: \"u/v/w norm\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }));\n var fromMesh3d = [\"opacity\", \"lightposition\", \"lighting\"];\n fromMesh3d.forEach(function(k) {\n attrs[k] = mesh3dAttrs[k];\n });\n attrs.hoverinfo = extendFlat({}, baseAttrs.hoverinfo, {\n editType: \"calc\",\n flags: [\"x\", \"y\", \"z\", \"u\", \"v\", \"w\", \"norm\", \"divergence\", \"text\", \"name\"],\n dflt: \"x+y+z+norm+text+name\"\n });\n module.exports = attrs;\n }\n });\n\n // src/traces/streamtube/defaults.js\n var require_defaults43 = __commonJS({\n \"src/traces/streamtube/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes47();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var u = coerce(\"u\");\n var v = coerce(\"v\");\n var w = coerce(\"w\");\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n if (!u || !u.length || !v || !v.length || !w || !w.length || !x || !x.length || !y || !y.length || !z || !z.length) {\n traceOut.visible = false;\n return;\n }\n coerce(\"starts.x\");\n coerce(\"starts.y\");\n coerce(\"starts.z\");\n coerce(\"maxdisplayed\");\n coerce(\"sizeref\");\n coerce(\"lighting.ambient\");\n coerce(\"lighting.diffuse\");\n coerce(\"lighting.specular\");\n coerce(\"lighting.roughness\");\n coerce(\"lighting.fresnel\");\n coerce(\"lightposition.x\");\n coerce(\"lightposition.y\");\n coerce(\"lightposition.z\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"c\" });\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"uhoverformat\");\n coerce(\"vhoverformat\");\n coerce(\"whoverformat\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/streamtube/convert.js\n var require_convert9 = __commonJS({\n \"src/traces/streamtube/convert.js\"(exports, module) {\n \"use strict\";\n var tube2mesh = require_stackgl_modules().gl_streamtube3d;\n var createTubeMesh = tube2mesh.createTubeMesh;\n var Lib = require_lib();\n var parseColorScale = require_gl_format_color().parseColorScale;\n var extractOpts = require_colorscale().extractOpts;\n var zip3 = require_zip3();\n var axisName2scaleIndex = { xaxis: 0, yaxis: 1, zaxis: 2 };\n function Streamtube(scene, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = null;\n this.data = null;\n }\n var proto = Streamtube.prototype;\n proto.handlePick = function(selection) {\n var sceneLayout = this.scene.fullSceneLayout;\n var dataScale = this.scene.dataScale;\n function fromDataScale(v, axisName) {\n var ax = sceneLayout[axisName];\n var scale = dataScale[axisName2scaleIndex[axisName]];\n return ax.l2c(v) / scale;\n }\n if (selection.object === this.mesh) {\n var pos = selection.data.position;\n var uvx = selection.data.velocity;\n selection.traceCoordinate = [\n fromDataScale(pos[0], \"xaxis\"),\n fromDataScale(pos[1], \"yaxis\"),\n fromDataScale(pos[2], \"zaxis\"),\n fromDataScale(uvx[0], \"xaxis\"),\n fromDataScale(uvx[1], \"yaxis\"),\n fromDataScale(uvx[2], \"zaxis\"),\n // u/v/w norm\n selection.data.intensity * this.data._normMax,\n // divergence\n selection.data.divergence\n ];\n selection.textLabel = this.data.hovertext || this.data.text;\n return true;\n }\n };\n function getDfltStartingPositions(vec) {\n var len = vec.length;\n var s;\n if (len > 2) {\n s = vec.slice(1, len - 1);\n } else if (len === 2) {\n s = [(vec[0] + vec[1]) / 2];\n } else {\n s = vec;\n }\n return s;\n }\n function getBoundPads(vec) {\n var len = vec.length;\n if (len === 1) {\n return [0.5, 0.5];\n } else {\n return [vec[1] - vec[0], vec[len - 1] - vec[len - 2]];\n }\n }\n function convert(scene, trace) {\n var sceneLayout = scene.fullSceneLayout;\n var dataScale = scene.dataScale;\n var len = trace._len;\n var tubeOpts = {};\n function toDataCoords(arr, axisName) {\n var ax = sceneLayout[axisName];\n var scale = dataScale[axisName2scaleIndex[axisName]];\n return Lib.simpleMap(arr, function(v) {\n return ax.d2l(v) * scale;\n });\n }\n tubeOpts.vectors = zip3(\n toDataCoords(trace._u, \"xaxis\"),\n toDataCoords(trace._v, \"yaxis\"),\n toDataCoords(trace._w, \"zaxis\"),\n len\n );\n if (!len) {\n return {\n positions: [],\n cells: []\n };\n }\n var meshx = toDataCoords(trace._Xs, \"xaxis\");\n var meshy = toDataCoords(trace._Ys, \"yaxis\");\n var meshz = toDataCoords(trace._Zs, \"zaxis\");\n tubeOpts.meshgrid = [meshx, meshy, meshz];\n tubeOpts.gridFill = trace._gridFill;\n var slen = trace._slen;\n if (slen) {\n tubeOpts.startingPositions = zip3(\n toDataCoords(trace._startsX, \"xaxis\"),\n toDataCoords(trace._startsY, \"yaxis\"),\n toDataCoords(trace._startsZ, \"zaxis\")\n );\n } else {\n var sy0 = meshy[0];\n var sx = getDfltStartingPositions(meshx);\n var sz = getDfltStartingPositions(meshz);\n var startingPositions = new Array(sx.length * sz.length);\n var m = 0;\n for (var i = 0; i < sx.length; i++) {\n for (var k = 0; k < sz.length; k++) {\n startingPositions[m++] = [sx[i], sy0, sz[k]];\n }\n }\n tubeOpts.startingPositions = startingPositions;\n }\n tubeOpts.colormap = parseColorScale(trace);\n tubeOpts.tubeSize = trace.sizeref;\n tubeOpts.maxLength = trace.maxdisplayed;\n var xbnds = toDataCoords(trace._xbnds, \"xaxis\");\n var ybnds = toDataCoords(trace._ybnds, \"yaxis\");\n var zbnds = toDataCoords(trace._zbnds, \"zaxis\");\n var xpads = getBoundPads(meshx);\n var ypads = getBoundPads(meshy);\n var zpads = getBoundPads(meshz);\n var bounds = [\n [xbnds[0] - xpads[0], ybnds[0] - ypads[0], zbnds[0] - zpads[0]],\n [xbnds[1] + xpads[1], ybnds[1] + ypads[1], zbnds[1] + zpads[1]]\n ];\n var meshData = tube2mesh(tubeOpts, bounds);\n var cOpts = extractOpts(trace);\n meshData.vertexIntensityBounds = [cOpts.min / trace._normMax, cOpts.max / trace._normMax];\n var lp = trace.lightposition;\n meshData.lightPosition = [lp.x, lp.y, lp.z];\n meshData.ambient = trace.lighting.ambient;\n meshData.diffuse = trace.lighting.diffuse;\n meshData.specular = trace.lighting.specular;\n meshData.roughness = trace.lighting.roughness;\n meshData.fresnel = trace.lighting.fresnel;\n meshData.opacity = trace.opacity;\n trace._pad = meshData.tubeScale * trace.sizeref * 2;\n return meshData;\n }\n proto.update = function(data) {\n this.data = data;\n var meshData = convert(this.scene, data);\n this.mesh.update(meshData);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n function createStreamtubeTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var meshData = convert(scene, data);\n var mesh = createTubeMesh(gl2, meshData);\n var streamtube = new Streamtube(scene, data.uid);\n streamtube.mesh = mesh;\n streamtube.data = data;\n mesh._trace = streamtube;\n scene.glplot.add(mesh);\n return streamtube;\n }\n module.exports = createStreamtubeTrace;\n }\n });\n\n // src/traces/streamtube/index.js\n var require_streamtube = __commonJS({\n \"src/traces/streamtube/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"streamtube\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n attributes: require_attributes47(),\n supplyDefaults: require_defaults43(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n calc: require_calc23().calc,\n plot: require_convert9(),\n eventData: function(out, pt) {\n out.tubex = out.x;\n out.tubey = out.y;\n out.tubez = out.z;\n out.tubeu = pt.traceCoordinate[3];\n out.tubev = pt.traceCoordinate[4];\n out.tubew = pt.traceCoordinate[5];\n out.norm = pt.traceCoordinate[6];\n out.divergence = pt.traceCoordinate[7];\n delete out.x;\n delete out.y;\n delete out.z;\n return out;\n },\n meta: {}\n };\n }\n });\n\n // lib/streamtube.js\n var require_streamtube2 = __commonJS({\n \"lib/streamtube.js\"(exports, module) {\n \"use strict\";\n module.exports = require_streamtube();\n }\n });\n\n // src/traces/scattergeo/attributes.js\n var require_attributes48 = __commonJS({\n \"src/traces/scattergeo/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var colorAttributes = require_attributes8();\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n module.exports = overrideAll({\n lon: {\n valType: \"data_array\"\n },\n lat: {\n valType: \"data_array\"\n },\n locations: {\n valType: \"data_array\"\n },\n locationmode: {\n valType: \"enumerated\",\n values: [\"ISO-3\", \"USA-states\", \"country names\", \"geojson-id\"],\n dflt: \"ISO-3\"\n },\n geojson: {\n valType: \"any\",\n editType: \"calc\"\n },\n featureidkey: {\n valType: \"string\",\n editType: \"calc\",\n dflt: \"id\"\n },\n mode: extendFlat({}, scatterAttrs.mode, { dflt: \"markers\" }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"lat\", \"lon\", \"location\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: extendFlat(\n {\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n angle: scatterMarkerAttrs.angle,\n angleref: extendFlat({}, scatterMarkerAttrs.angleref, {\n values: [\"previous\", \"up\", \"north\"]\n }),\n standoff: scatterMarkerAttrs.standoff,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat(\n {\n width: scatterMarkerLineAttrs.width\n },\n colorAttributes(\"marker.line\")\n ),\n gradient: scatterMarkerAttrs.gradient\n },\n colorAttributes(\"marker\")\n ),\n fill: {\n valType: \"enumerated\",\n values: [\"none\", \"toself\"],\n dflt: \"none\"\n },\n fillcolor: makeFillcolorAttr(),\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"location\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs()\n }, \"calc\", \"nested\");\n }\n });\n\n // src/traces/scattergeo/defaults.js\n var require_defaults44 = __commonJS({\n \"src/traces/scattergeo/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes48();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var locations = coerce(\"locations\");\n var len;\n if (locations && locations.length) {\n var geojson = coerce(\"geojson\");\n var locationmodeDflt;\n if (typeof geojson === \"string\" && geojson !== \"\" || Lib.isPlainObject(geojson)) {\n locationmodeDflt = \"geojson-id\";\n }\n var locationMode = coerce(\"locationmode\", locationmodeDflt);\n if (locationMode === \"geojson-id\") {\n coerce(\"featureidkey\");\n }\n len = locations.length;\n } else {\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n len = Math.min(lon.length, lat.length);\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"mode\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scattergeo/format_labels.js\n var require_format_labels3 = __commonJS({\n \"src/traces/scattergeo/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var geo = fullLayout[trace.geo]._subplot;\n var ax = geo.mockAxis;\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scattergeo/calc.js\n var require_calc27 = __commonJS({\n \"src/traces/scattergeo/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var calcMarkerColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var _ = require_lib()._;\n function isNonBlankString(v) {\n return v && typeof v === \"string\";\n }\n module.exports = function calc(gd, trace) {\n var hasLocationData = isArrayOrTypedArray(trace.locations);\n var len = hasLocationData ? trace.locations.length : trace._length;\n var calcTrace = new Array(len);\n var isValidLoc;\n if (trace.geojson) {\n isValidLoc = function(v) {\n return isNonBlankString(v) || isNumeric(v);\n };\n } else {\n isValidLoc = isNonBlankString;\n }\n for (var i = 0; i < len; i++) {\n var calcPt = calcTrace[i] = {};\n if (hasLocationData) {\n var loc = trace.locations[i];\n calcPt.loc = isValidLoc(loc) ? loc : null;\n } else {\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n if (isNumeric(lon) && isNumeric(lat)) calcPt.lonlat = [+lon, +lat];\n else calcPt.lonlat = [BADNUM, BADNUM];\n }\n }\n arraysToCalcdata(calcTrace, trace);\n calcMarkerColorscale(gd, trace);\n calcSelection(calcTrace, trace);\n if (len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, \"lat:\") + \" \",\n lon: _(gd, \"lon:\") + \" \"\n }\n };\n }\n return calcTrace;\n };\n }\n });\n\n // src/plots/geo/constants.js\n var require_constants22 = __commonJS({\n \"src/plots/geo/constants.js\"(exports) {\n \"use strict\";\n exports.projNames = {\n airy: \"airy\",\n aitoff: \"aitoff\",\n \"albers usa\": \"albersUsa\",\n albers: \"albers\",\n // 'armadillo': 'armadillo',\n august: \"august\",\n \"azimuthal equal area\": \"azimuthalEqualArea\",\n \"azimuthal equidistant\": \"azimuthalEquidistant\",\n baker: \"baker\",\n // 'berghaus': 'berghaus',\n bertin1953: \"bertin1953\",\n boggs: \"boggs\",\n bonne: \"bonne\",\n bottomley: \"bottomley\",\n bromley: \"bromley\",\n // 'chamberlin africa': 'chamberlinAfrica',\n // 'chamberlin': 'chamberlin',\n collignon: \"collignon\",\n \"conic conformal\": \"conicConformal\",\n \"conic equal area\": \"conicEqualArea\",\n \"conic equidistant\": \"conicEquidistant\",\n craig: \"craig\",\n craster: \"craster\",\n \"cylindrical equal area\": \"cylindricalEqualArea\",\n \"cylindrical stereographic\": \"cylindricalStereographic\",\n eckert1: \"eckert1\",\n eckert2: \"eckert2\",\n eckert3: \"eckert3\",\n eckert4: \"eckert4\",\n eckert5: \"eckert5\",\n eckert6: \"eckert6\",\n eisenlohr: \"eisenlohr\",\n \"equal earth\": \"equalEarth\",\n equirectangular: \"equirectangular\",\n fahey: \"fahey\",\n \"foucaut sinusoidal\": \"foucautSinusoidal\",\n foucaut: \"foucaut\",\n // 'gilbert': 'gilbert',\n // 'gingery': 'gingery',\n ginzburg4: \"ginzburg4\",\n ginzburg5: \"ginzburg5\",\n ginzburg6: \"ginzburg6\",\n ginzburg8: \"ginzburg8\",\n ginzburg9: \"ginzburg9\",\n gnomonic: \"gnomonic\",\n \"gringorten quincuncial\": \"gringortenQuincuncial\",\n gringorten: \"gringorten\",\n guyou: \"guyou\",\n // 'hammer retroazimuthal': 'hammerRetroazimuthal',\n hammer: \"hammer\",\n // 'healpix': 'healpix',\n hill: \"hill\",\n homolosine: \"homolosine\",\n hufnagel: \"hufnagel\",\n hyperelliptical: \"hyperelliptical\",\n // 'interrupted boggs': 'interruptedBoggs',\n // 'interrupted homolosine': 'interruptedHomolosine',\n // 'interrupted mollweide hemispheres': 'interruptedMollweideHemispheres',\n // 'interrupted mollweide': 'interruptedMollweide',\n // 'interrupted quartic authalic': 'interruptedQuarticAuthalic',\n // 'interrupted sinu mollweide': 'interruptedSinuMollweide',\n // 'interrupted sinusoidal': 'interruptedSinusoidal',\n kavrayskiy7: \"kavrayskiy7\",\n lagrange: \"lagrange\",\n larrivee: \"larrivee\",\n laskowski: \"laskowski\",\n // 'littrow': 'littrow',\n loximuthal: \"loximuthal\",\n mercator: \"mercator\",\n miller: \"miller\",\n // 'modified stereographic alaska': 'modifiedStereographicAlaska',\n // 'modified stereographic gs48': 'modifiedStereographicGs48',\n // 'modified stereographic gs50': 'modifiedStereographicGs50',\n // 'modified stereographic lee': 'modifiedStereographicLee',\n // 'modified stereographic miller': 'modifiedStereographicMiller',\n // 'modified stereographic': 'modifiedStereographic',\n mollweide: \"mollweide\",\n \"mt flat polar parabolic\": \"mtFlatPolarParabolic\",\n \"mt flat polar quartic\": \"mtFlatPolarQuartic\",\n \"mt flat polar sinusoidal\": \"mtFlatPolarSinusoidal\",\n \"natural earth\": \"naturalEarth\",\n \"natural earth1\": \"naturalEarth1\",\n \"natural earth2\": \"naturalEarth2\",\n \"nell hammer\": \"nellHammer\",\n nicolosi: \"nicolosi\",\n orthographic: \"orthographic\",\n patterson: \"patterson\",\n \"peirce quincuncial\": \"peirceQuincuncial\",\n polyconic: \"polyconic\",\n // 'polyhedral butterfly': 'polyhedralButterfly',\n // 'polyhedral collignon': 'polyhedralCollignon',\n // 'polyhedral waterman': 'polyhedralWaterman',\n \"rectangular polyconic\": \"rectangularPolyconic\",\n robinson: \"robinson\",\n satellite: \"satellite\",\n \"sinu mollweide\": \"sinuMollweide\",\n sinusoidal: \"sinusoidal\",\n stereographic: \"stereographic\",\n times: \"times\",\n \"transverse mercator\": \"transverseMercator\",\n // 'two point azimuthalUsa': 'twoPointAzimuthalUsa',\n // 'two point azimuthal': 'twoPointAzimuthal',\n // 'two point equidistantUsa': 'twoPointEquidistantUsa',\n // 'two point equidistant': 'twoPointEquidistant',\n \"van der grinten\": \"vanDerGrinten\",\n \"van der grinten2\": \"vanDerGrinten2\",\n \"van der grinten3\": \"vanDerGrinten3\",\n \"van der grinten4\": \"vanDerGrinten4\",\n wagner4: \"wagner4\",\n wagner6: \"wagner6\",\n // 'wagner7': 'wagner7',\n // 'wagner': 'wagner',\n wiechel: \"wiechel\",\n \"winkel tripel\": \"winkel3\",\n winkel3: \"winkel3\"\n };\n exports.axesNames = [\"lonaxis\", \"lataxis\"];\n exports.lonaxisSpan = {\n orthographic: 180,\n \"azimuthal equal area\": 360,\n \"azimuthal equidistant\": 360,\n \"conic conformal\": 180,\n gnomonic: 160,\n stereographic: 180,\n \"transverse mercator\": 180,\n \"*\": 360\n };\n exports.lataxisSpan = {\n \"conic conformal\": 150,\n stereographic: 179.5,\n \"*\": 180\n };\n exports.scopeDefaults = {\n world: {\n lonaxisRange: [-180, 180],\n lataxisRange: [-90, 90],\n projType: \"equirectangular\",\n projRotate: [0, 0, 0]\n },\n usa: {\n lonaxisRange: [-180, -50],\n lataxisRange: [15, 80],\n projType: \"albers usa\"\n },\n europe: {\n lonaxisRange: [-30, 60],\n lataxisRange: [30, 85],\n projType: \"conic conformal\",\n projRotate: [15, 0, 0],\n projParallels: [0, 60]\n },\n asia: {\n lonaxisRange: [22, 160],\n lataxisRange: [-15, 55],\n projType: \"mercator\",\n projRotate: [0, 0, 0]\n },\n africa: {\n lonaxisRange: [-30, 60],\n lataxisRange: [-40, 40],\n projType: \"mercator\",\n projRotate: [0, 0, 0]\n },\n \"north america\": {\n lonaxisRange: [-180, -45],\n lataxisRange: [5, 85],\n projType: \"conic conformal\",\n projRotate: [-100, 0, 0],\n projParallels: [29.5, 45.5]\n },\n \"south america\": {\n lonaxisRange: [-100, -30],\n lataxisRange: [-60, 15],\n projType: \"mercator\",\n projRotate: [0, 0, 0]\n }\n };\n exports.clipPad = 1e-3;\n exports.precision = 0.1;\n exports.landColor = \"#F0DC82\";\n exports.waterColor = \"#3399FF\";\n exports.locationmodeToLayer = {\n \"ISO-3\": \"countries\",\n \"USA-states\": \"subunits\",\n \"country names\": \"countries\"\n };\n exports.sphereSVG = { type: \"Sphere\" };\n exports.fillLayers = {\n ocean: 1,\n land: 1,\n lakes: 1\n };\n exports.lineLayers = {\n subunits: 1,\n countries: 1,\n coastlines: 1,\n rivers: 1,\n frame: 1\n };\n exports.layers = [\n \"bg\",\n \"ocean\",\n \"land\",\n \"lakes\",\n \"subunits\",\n \"countries\",\n \"coastlines\",\n \"rivers\",\n \"lataxis\",\n \"lonaxis\",\n \"frame\",\n \"backplot\",\n \"frontplot\"\n ];\n exports.layersForChoropleth = [\n \"bg\",\n \"ocean\",\n \"land\",\n \"subunits\",\n \"countries\",\n \"coastlines\",\n \"lataxis\",\n \"lonaxis\",\n \"frame\",\n \"backplot\",\n \"rivers\",\n \"lakes\",\n \"frontplot\"\n ];\n exports.layerNameToAdjective = {\n ocean: \"ocean\",\n land: \"land\",\n lakes: \"lake\",\n subunits: \"subunit\",\n countries: \"country\",\n coastlines: \"coastline\",\n rivers: \"river\",\n frame: \"frame\"\n };\n }\n });\n\n // node_modules/topojson-client/dist/topojson-client.js\n var require_topojson_client = __commonJS({\n \"node_modules/topojson-client/dist/topojson-client.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.topojson = global2.topojson || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function identity2(x) {\n return x;\n }\n function transform(transform2) {\n if (transform2 == null) return identity2;\n var x0, y0, kx = transform2.scale[0], ky = transform2.scale[1], dx = transform2.translate[0], dy = transform2.translate[1];\n return function(input, i) {\n if (!i) x0 = y0 = 0;\n var j = 2, n = input.length, output = new Array(n);\n output[0] = (x0 += input[0]) * kx + dx;\n output[1] = (y0 += input[1]) * ky + dy;\n while (j < n) output[j] = input[j], ++j;\n return output;\n };\n }\n function bbox(topology) {\n var t = transform(topology.transform), key, x0 = Infinity, y0 = x0, x1 = -x0, y1 = -x0;\n function bboxPoint(p) {\n p = t(p);\n if (p[0] < x0) x0 = p[0];\n if (p[0] > x1) x1 = p[0];\n if (p[1] < y0) y0 = p[1];\n if (p[1] > y1) y1 = p[1];\n }\n function bboxGeometry(o) {\n switch (o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(bboxGeometry);\n break;\n case \"Point\":\n bboxPoint(o.coordinates);\n break;\n case \"MultiPoint\":\n o.coordinates.forEach(bboxPoint);\n break;\n }\n }\n topology.arcs.forEach(function(arc) {\n var i = -1, n = arc.length, p;\n while (++i < n) {\n p = t(arc[i], i);\n if (p[0] < x0) x0 = p[0];\n if (p[0] > x1) x1 = p[0];\n if (p[1] < y0) y0 = p[1];\n if (p[1] > y1) y1 = p[1];\n }\n });\n for (key in topology.objects) {\n bboxGeometry(topology.objects[key]);\n }\n return [x0, y0, x1, y1];\n }\n function reverse(array, n) {\n var t, j = array.length, i = j - n;\n while (i < --j) t = array[i], array[i++] = array[j], array[j] = t;\n }\n function feature(topology, o) {\n if (typeof o === \"string\") o = topology.objects[o];\n return o.type === \"GeometryCollection\" ? { type: \"FeatureCollection\", features: o.geometries.map(function(o2) {\n return feature$1(topology, o2);\n }) } : feature$1(topology, o);\n }\n function feature$1(topology, o) {\n var id = o.id, bbox2 = o.bbox, properties = o.properties == null ? {} : o.properties, geometry = object(topology, o);\n return id == null && bbox2 == null ? { type: \"Feature\", properties, geometry } : bbox2 == null ? { type: \"Feature\", id, properties, geometry } : { type: \"Feature\", id, bbox: bbox2, properties, geometry };\n }\n function object(topology, o) {\n var transformPoint = transform(topology.transform), arcs = topology.arcs;\n function arc(i, points) {\n if (points.length) points.pop();\n for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length; k < n; ++k) {\n points.push(transformPoint(a[k], k));\n }\n if (i < 0) reverse(points, n);\n }\n function point(p) {\n return transformPoint(p);\n }\n function line(arcs2) {\n var points = [];\n for (var i = 0, n = arcs2.length; i < n; ++i) arc(arcs2[i], points);\n if (points.length < 2) points.push(points[0]);\n return points;\n }\n function ring(arcs2) {\n var points = line(arcs2);\n while (points.length < 4) points.push(points[0]);\n return points;\n }\n function polygon(arcs2) {\n return arcs2.map(ring);\n }\n function geometry(o2) {\n var type = o2.type, coordinates;\n switch (type) {\n case \"GeometryCollection\":\n return { type, geometries: o2.geometries.map(geometry) };\n case \"Point\":\n coordinates = point(o2.coordinates);\n break;\n case \"MultiPoint\":\n coordinates = o2.coordinates.map(point);\n break;\n case \"LineString\":\n coordinates = line(o2.arcs);\n break;\n case \"MultiLineString\":\n coordinates = o2.arcs.map(line);\n break;\n case \"Polygon\":\n coordinates = polygon(o2.arcs);\n break;\n case \"MultiPolygon\":\n coordinates = o2.arcs.map(polygon);\n break;\n default:\n return null;\n }\n return { type, coordinates };\n }\n return geometry(o);\n }\n function stitch(topology, arcs) {\n var stitchedArcs = {}, fragmentByStart = {}, fragmentByEnd = {}, fragments = [], emptyIndex = -1;\n arcs.forEach(function(i, j) {\n var arc = topology.arcs[i < 0 ? ~i : i], t;\n if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {\n t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;\n }\n });\n arcs.forEach(function(i) {\n var e = ends(i), start = e[0], end = e[1], f, g;\n if (f = fragmentByEnd[start]) {\n delete fragmentByEnd[f.end];\n f.push(i);\n f.end = end;\n if (g = fragmentByStart[end]) {\n delete fragmentByStart[g.start];\n var fg = g === f ? f : f.concat(g);\n fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else if (f = fragmentByStart[end]) {\n delete fragmentByStart[f.start];\n f.unshift(i);\n f.start = start;\n if (g = fragmentByEnd[start]) {\n delete fragmentByEnd[g.end];\n var gf = g === f ? f : g.concat(f);\n fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else {\n f = [i];\n fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;\n }\n });\n function ends(i) {\n var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1;\n if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) {\n p1[0] += dp[0], p1[1] += dp[1];\n });\n else p1 = arc[arc.length - 1];\n return i < 0 ? [p1, p0] : [p0, p1];\n }\n function flush(fragmentByEnd2, fragmentByStart2) {\n for (var k in fragmentByEnd2) {\n var f = fragmentByEnd2[k];\n delete fragmentByStart2[f.start];\n delete f.start;\n delete f.end;\n f.forEach(function(i) {\n stitchedArcs[i < 0 ? ~i : i] = 1;\n });\n fragments.push(f);\n }\n }\n flush(fragmentByEnd, fragmentByStart);\n flush(fragmentByStart, fragmentByEnd);\n arcs.forEach(function(i) {\n if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]);\n });\n return fragments;\n }\n function mesh(topology) {\n return object(topology, meshArcs.apply(this, arguments));\n }\n function meshArcs(topology, object2, filter) {\n var arcs, i, n;\n if (arguments.length > 1) arcs = extractArcs(topology, object2, filter);\n else for (i = 0, arcs = new Array(n = topology.arcs.length); i < n; ++i) arcs[i] = i;\n return { type: \"MultiLineString\", arcs: stitch(topology, arcs) };\n }\n function extractArcs(topology, object2, filter) {\n var arcs = [], geomsByArc = [], geom;\n function extract0(i) {\n var j = i < 0 ? ~i : i;\n (geomsByArc[j] || (geomsByArc[j] = [])).push({ i, g: geom });\n }\n function extract1(arcs2) {\n arcs2.forEach(extract0);\n }\n function extract2(arcs2) {\n arcs2.forEach(extract1);\n }\n function extract3(arcs2) {\n arcs2.forEach(extract2);\n }\n function geometry(o) {\n switch (geom = o, o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(geometry);\n break;\n case \"LineString\":\n extract1(o.arcs);\n break;\n case \"MultiLineString\":\n case \"Polygon\":\n extract2(o.arcs);\n break;\n case \"MultiPolygon\":\n extract3(o.arcs);\n break;\n }\n }\n geometry(object2);\n geomsByArc.forEach(filter == null ? function(geoms) {\n arcs.push(geoms[0].i);\n } : function(geoms) {\n if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i);\n });\n return arcs;\n }\n function planarRingArea(ring) {\n var i = -1, n = ring.length, a, b = ring[n - 1], area = 0;\n while (++i < n) a = b, b = ring[i], area += a[0] * b[1] - a[1] * b[0];\n return Math.abs(area);\n }\n function merge(topology) {\n return object(topology, mergeArcs.apply(this, arguments));\n }\n function mergeArcs(topology, objects) {\n var polygonsByArc = {}, polygons = [], groups = [];\n objects.forEach(geometry);\n function geometry(o) {\n switch (o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(geometry);\n break;\n case \"Polygon\":\n extract(o.arcs);\n break;\n case \"MultiPolygon\":\n o.arcs.forEach(extract);\n break;\n }\n }\n function extract(polygon) {\n polygon.forEach(function(ring) {\n ring.forEach(function(arc) {\n (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon);\n });\n });\n polygons.push(polygon);\n }\n function area(ring) {\n return planarRingArea(object(topology, { type: \"Polygon\", arcs: [ring] }).coordinates[0]);\n }\n polygons.forEach(function(polygon) {\n if (!polygon._) {\n var group = [], neighbors2 = [polygon];\n polygon._ = 1;\n groups.push(group);\n while (polygon = neighbors2.pop()) {\n group.push(polygon);\n polygon.forEach(function(ring) {\n ring.forEach(function(arc) {\n polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon2) {\n if (!polygon2._) {\n polygon2._ = 1;\n neighbors2.push(polygon2);\n }\n });\n });\n });\n }\n }\n });\n polygons.forEach(function(polygon) {\n delete polygon._;\n });\n return {\n type: \"MultiPolygon\",\n arcs: groups.map(function(polygons2) {\n var arcs = [], n;\n polygons2.forEach(function(polygon) {\n polygon.forEach(function(ring) {\n ring.forEach(function(arc) {\n if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) {\n arcs.push(arc);\n }\n });\n });\n });\n arcs = stitch(topology, arcs);\n if ((n = arcs.length) > 1) {\n for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) {\n if ((ki = area(arcs[i])) > k) {\n t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki;\n }\n }\n }\n return arcs;\n }).filter(function(arcs) {\n return arcs.length > 0;\n })\n };\n }\n function bisect(a, x) {\n var lo = 0, hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (a[mid] < x) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n function neighbors(objects) {\n var indexesByArc = {}, neighbors2 = objects.map(function() {\n return [];\n });\n function line(arcs, i2) {\n arcs.forEach(function(a) {\n if (a < 0) a = ~a;\n var o = indexesByArc[a];\n if (o) o.push(i2);\n else indexesByArc[a] = [i2];\n });\n }\n function polygon(arcs, i2) {\n arcs.forEach(function(arc) {\n line(arc, i2);\n });\n }\n function geometry(o, i2) {\n if (o.type === \"GeometryCollection\") o.geometries.forEach(function(o2) {\n geometry(o2, i2);\n });\n else if (o.type in geometryType) geometryType[o.type](o.arcs, i2);\n }\n var geometryType = {\n LineString: line,\n MultiLineString: polygon,\n Polygon: polygon,\n MultiPolygon: function(arcs, i2) {\n arcs.forEach(function(arc) {\n polygon(arc, i2);\n });\n }\n };\n objects.forEach(geometry);\n for (var i in indexesByArc) {\n for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) {\n for (var k = j + 1; k < m; ++k) {\n var ij = indexes[j], ik = indexes[k], n;\n if ((n = neighbors2[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik);\n if ((n = neighbors2[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij);\n }\n }\n }\n return neighbors2;\n }\n function untransform(transform2) {\n if (transform2 == null) return identity2;\n var x0, y0, kx = transform2.scale[0], ky = transform2.scale[1], dx = transform2.translate[0], dy = transform2.translate[1];\n return function(input, i) {\n if (!i) x0 = y0 = 0;\n var j = 2, n = input.length, output = new Array(n), x1 = Math.round((input[0] - dx) / kx), y1 = Math.round((input[1] - dy) / ky);\n output[0] = x1 - x0, x0 = x1;\n output[1] = y1 - y0, y0 = y1;\n while (j < n) output[j] = input[j], ++j;\n return output;\n };\n }\n function quantize(topology, transform2) {\n if (topology.transform) throw new Error(\"already quantized\");\n if (!transform2 || !transform2.scale) {\n if (!((n = Math.floor(transform2)) >= 2)) throw new Error(\"n must be \\u22652\");\n box = topology.bbox || bbox(topology);\n var x0 = box[0], y0 = box[1], x1 = box[2], y1 = box[3], n;\n transform2 = { scale: [x1 - x0 ? (x1 - x0) / (n - 1) : 1, y1 - y0 ? (y1 - y0) / (n - 1) : 1], translate: [x0, y0] };\n } else {\n box = topology.bbox;\n }\n var t = untransform(transform2), box, key, inputs = topology.objects, outputs = {};\n function quantizePoint(point) {\n return t(point);\n }\n function quantizeGeometry(input) {\n var output;\n switch (input.type) {\n case \"GeometryCollection\":\n output = { type: \"GeometryCollection\", geometries: input.geometries.map(quantizeGeometry) };\n break;\n case \"Point\":\n output = { type: \"Point\", coordinates: quantizePoint(input.coordinates) };\n break;\n case \"MultiPoint\":\n output = { type: \"MultiPoint\", coordinates: input.coordinates.map(quantizePoint) };\n break;\n default:\n return input;\n }\n if (input.id != null) output.id = input.id;\n if (input.bbox != null) output.bbox = input.bbox;\n if (input.properties != null) output.properties = input.properties;\n return output;\n }\n function quantizeArc(input) {\n var i = 0, j = 1, n2 = input.length, p, output = new Array(n2);\n output[0] = t(input[0], 0);\n while (++i < n2) if ((p = t(input[i], i))[0] || p[1]) output[j++] = p;\n if (j === 1) output[j++] = [0, 0];\n output.length = j;\n return output;\n }\n for (key in inputs) outputs[key] = quantizeGeometry(inputs[key]);\n return {\n type: \"Topology\",\n bbox: box,\n transform: transform2,\n objects: outputs,\n arcs: topology.arcs.map(quantizeArc)\n };\n }\n exports2.bbox = bbox;\n exports2.feature = feature;\n exports2.merge = merge;\n exports2.mergeArcs = mergeArcs;\n exports2.mesh = mesh;\n exports2.meshArcs = meshArcs;\n exports2.neighbors = neighbors;\n exports2.quantize = quantize;\n exports2.transform = transform;\n exports2.untransform = untransform;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/lib/topojson_utils.js\n var require_topojson_utils = __commonJS({\n \"src/lib/topojson_utils.js\"(exports, module) {\n \"use strict\";\n var topojsonUtils = module.exports = {};\n var locationmodeToLayer = require_constants22().locationmodeToLayer;\n var topojsonFeature = require_topojson_client().feature;\n topojsonUtils.getTopojsonName = function(geoLayout) {\n return [\n geoLayout.scope.replace(/ /g, \"-\"),\n \"_\",\n geoLayout.resolution.toString(),\n \"m\"\n ].join(\"\");\n };\n topojsonUtils.getTopojsonPath = function(topojsonURL, topojsonName) {\n return topojsonURL + topojsonName + \".json\";\n };\n topojsonUtils.getTopojsonFeatures = function(trace, topojson) {\n var layer = locationmodeToLayer[trace.locationmode];\n var obj = topojson.objects[layer];\n return topojsonFeature(topojson, obj).features;\n };\n }\n });\n\n // src/lib/geojson_utils.js\n var require_geojson_utils = __commonJS({\n \"src/lib/geojson_utils.js\"(exports) {\n \"use strict\";\n var BADNUM = require_numerical().BADNUM;\n exports.calcTraceToLineCoords = function(calcTrace) {\n var trace = calcTrace[0].trace;\n var connectgaps = trace.connectgaps;\n var coords = [];\n var lineString = [];\n for (var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n if (lonlat[0] !== BADNUM) {\n lineString.push(lonlat);\n } else if (!connectgaps && lineString.length > 0) {\n coords.push(lineString);\n lineString = [];\n }\n }\n if (lineString.length > 0) {\n coords.push(lineString);\n }\n return coords;\n };\n exports.makeLine = function(coords) {\n if (coords.length === 1) {\n return {\n type: \"LineString\",\n coordinates: coords[0]\n };\n } else {\n return {\n type: \"MultiLineString\",\n coordinates: coords\n };\n }\n };\n exports.makePolygon = function(coords) {\n if (coords.length === 1) {\n return {\n type: \"Polygon\",\n coordinates: coords\n };\n } else {\n var _coords = new Array(coords.length);\n for (var i = 0; i < coords.length; i++) {\n _coords[i] = [coords[i]];\n }\n return {\n type: \"MultiPolygon\",\n coordinates: _coords\n };\n }\n };\n exports.makeBlank = function() {\n return {\n type: \"Point\",\n coordinates: []\n };\n };\n }\n });\n\n // node_modules/country-regex/index.js\n var require_country_regex = __commonJS({\n \"node_modules/country-regex/index.js\"(exports, module) {\n module.exports = {\n AFG: \"afghan\",\n ALA: \"\\\\b\\\\wland\",\n ALB: \"albania\",\n DZA: \"algeria\",\n ASM: \"^(?=.*americ).*samoa\",\n AND: \"andorra\",\n AGO: \"angola\",\n AIA: \"anguill?a\",\n ATA: \"antarctica\",\n ATG: \"antigua\",\n ARG: \"argentin\",\n ARM: \"armenia\",\n ABW: \"^(?!.*bonaire).*\\\\baruba\",\n AUS: \"australia\",\n AUT: \"^(?!.*hungary).*austria|\\\\baustri.*\\\\bemp\",\n AZE: \"azerbaijan\",\n BHS: \"bahamas\",\n BHR: \"bahrain\",\n BGD: \"bangladesh|^(?=.*east).*paki?stan\",\n BRB: \"barbados\",\n BLR: \"belarus|byelo\",\n BEL: \"^(?!.*luxem).*belgium\",\n BLZ: \"belize|^(?=.*british).*honduras\",\n BEN: \"benin|dahome\",\n BMU: \"bermuda\",\n BTN: \"bhutan\",\n BOL: \"bolivia\",\n BES: \"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\\\bbes.?islands\",\n BIH: \"herzegovina|bosnia\",\n BWA: \"botswana|bechuana\",\n BVT: \"bouvet\",\n BRA: \"brazil\",\n IOT: \"british.?indian.?ocean\",\n BRN: \"brunei\",\n BGR: \"bulgaria\",\n BFA: \"burkina|\\\\bfaso|upper.?volta\",\n BDI: \"burundi\",\n CPV: \"verde\",\n KHM: \"cambodia|kampuchea|khmer\",\n CMR: \"cameroon\",\n CAN: \"canada\",\n CYM: \"cayman\",\n CAF: \"\\\\bcentral.african.republic\",\n TCD: \"\\\\bchad\",\n CHL: \"\\\\bchile\",\n CHN: \"^(?!.*\\\\bmac)(?!.*\\\\bhong)(?!.*\\\\btai)(?!.*\\\\brep).*china|^(?=.*peo)(?=.*rep).*china\",\n CXR: \"christmas\",\n CCK: \"\\\\bcocos|keeling\",\n COL: \"colombia\",\n COM: \"comoro\",\n COG: \"^(?!.*\\\\bdem)(?!.*\\\\bd[\\\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\\\bcongo\",\n COK: \"\\\\bcook\",\n CRI: \"costa.?rica\",\n CIV: \"ivoire|ivory\",\n HRV: \"croatia\",\n CUB: \"\\\\bcuba\",\n CUW: \"^(?!.*bonaire).*\\\\bcura(c|\\xE7)ao\",\n CYP: \"cyprus\",\n CSK: \"czechoslovakia\",\n CZE: \"^(?=.*rep).*czech|czechia|bohemia\",\n COD: \"\\\\bdem.*congo|congo.*\\\\bdem|congo.*\\\\bd[\\\\.]?r|\\\\bd[\\\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc\",\n DNK: \"denmark\",\n DJI: \"djibouti\",\n DMA: \"dominica(?!n)\",\n DOM: \"dominican.rep\",\n ECU: \"ecuador\",\n EGY: \"egypt\",\n SLV: \"el.?salvador\",\n GNQ: \"guine.*eq|eq.*guine|^(?=.*span).*guinea\",\n ERI: \"eritrea\",\n EST: \"estonia\",\n ETH: \"ethiopia|abyssinia\",\n FLK: \"falkland|malvinas\",\n FRO: \"faroe|faeroe\",\n FJI: \"fiji\",\n FIN: \"finland\",\n FRA: \"^(?!.*\\\\bdep)(?!.*martinique).*france|french.?republic|\\\\bgaul\",\n GUF: \"^(?=.*french).*guiana\",\n PYF: \"french.?polynesia|tahiti\",\n ATF: \"french.?southern\",\n GAB: \"gabon\",\n GMB: \"gambia\",\n GEO: \"^(?!.*south).*georgia\",\n DDR: \"german.?democratic.?republic|democratic.?republic.*germany|east.germany\",\n DEU: \"^(?!.*east).*germany|^(?=.*\\\\bfed.*\\\\brep).*german\",\n GHA: \"ghana|gold.?coast\",\n GIB: \"gibraltar\",\n GRC: \"greece|hellenic|hellas\",\n GRL: \"greenland\",\n GRD: \"grenada\",\n GLP: \"guadeloupe\",\n GUM: \"\\\\bguam\",\n GTM: \"guatemala\",\n GGY: \"guernsey\",\n GIN: \"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea\",\n GNB: \"bissau|^(?=.*portu).*guinea\",\n GUY: \"guyana|british.?guiana\",\n HTI: \"haiti\",\n HMD: \"heard.*mcdonald\",\n VAT: \"holy.?see|vatican|papal.?st\",\n HND: \"^(?!.*brit).*honduras\",\n HKG: \"hong.?kong\",\n HUN: \"^(?!.*austr).*hungary\",\n ISL: \"iceland\",\n IND: \"india(?!.*ocea)\",\n IDN: \"indonesia\",\n IRN: \"\\\\biran|persia\",\n IRQ: \"\\\\biraq|mesopotamia\",\n IRL: \"(^ireland)|(^republic.*ireland)\",\n IMN: \"^(?=.*isle).*\\\\bman\",\n ISR: \"israel\",\n ITA: \"italy\",\n JAM: \"jamaica\",\n JPN: \"japan\",\n JEY: \"jersey\",\n JOR: \"jordan\",\n KAZ: \"kazak\",\n KEN: \"kenya|british.?east.?africa|east.?africa.?prot\",\n KIR: \"kiribati\",\n PRK: \"^(?=.*democrat|people|north|d.*p.*.r).*\\\\bkorea|dprk|korea.*(d.*p.*r)\",\n KWT: \"kuwait\",\n KGZ: \"kyrgyz|kirghiz\",\n LAO: \"\\\\blaos?\\\\b\",\n LVA: \"latvia\",\n LBN: \"lebanon\",\n LSO: \"lesotho|basuto\",\n LBR: \"liberia\",\n LBY: \"libya\",\n LIE: \"liechtenstein\",\n LTU: \"lithuania\",\n LUX: \"^(?!.*belg).*luxem\",\n MAC: \"maca(o|u)\",\n MDG: \"madagascar|malagasy\",\n MWI: \"malawi|nyasa\",\n MYS: \"malaysia\",\n MDV: \"maldive\",\n MLI: \"\\\\bmali\\\\b\",\n MLT: \"\\\\bmalta\",\n MHL: \"marshall\",\n MTQ: \"martinique\",\n MRT: \"mauritania\",\n MUS: \"mauritius\",\n MYT: \"\\\\bmayotte\",\n MEX: \"\\\\bmexic\",\n FSM: \"fed.*micronesia|micronesia.*fed\",\n MCO: \"monaco\",\n MNG: \"mongolia\",\n MNE: \"^(?!.*serbia).*montenegro\",\n MSR: \"montserrat\",\n MAR: \"morocco|\\\\bmaroc\",\n MOZ: \"mozambique\",\n MMR: \"myanmar|burma\",\n NAM: \"namibia\",\n NRU: \"nauru\",\n NPL: \"nepal\",\n NLD: \"^(?!.*\\\\bant)(?!.*\\\\bcarib).*netherlands\",\n ANT: \"^(?=.*\\\\bant).*(nether|dutch)\",\n NCL: \"new.?caledonia\",\n NZL: \"new.?zealand\",\n NIC: \"nicaragua\",\n NER: \"\\\\bniger(?!ia)\",\n NGA: \"nigeria\",\n NIU: \"niue\",\n NFK: \"norfolk\",\n MNP: \"mariana\",\n NOR: \"norway\",\n OMN: \"\\\\boman|trucial\",\n PAK: \"^(?!.*east).*paki?stan\",\n PLW: \"palau\",\n PSE: \"palestin|\\\\bgaza|west.?bank\",\n PAN: \"panama\",\n PNG: \"papua|new.?guinea\",\n PRY: \"paraguay\",\n PER: \"peru\",\n PHL: \"philippines\",\n PCN: \"pitcairn\",\n POL: \"poland\",\n PRT: \"portugal\",\n PRI: \"puerto.?rico\",\n QAT: \"qatar\",\n KOR: \"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\\\bkorea(?!.*d.*p.*r)\",\n MDA: \"moldov|b(a|e)ssarabia\",\n REU: \"r(e|\\xE9)union\",\n ROU: \"r(o|u|ou)mania\",\n RUS: \"\\\\brussia|soviet.?union|u\\\\.?s\\\\.?s\\\\.?r|socialist.?republics\",\n RWA: \"rwanda\",\n BLM: \"barth(e|\\xE9)lemy\",\n SHN: \"helena\",\n KNA: \"kitts|\\\\bnevis\",\n LCA: \"\\\\blucia\",\n MAF: \"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)\",\n SPM: \"miquelon\",\n VCT: \"vincent\",\n WSM: \"^(?!.*amer).*samoa\",\n SMR: \"san.?marino\",\n STP: \"\\\\bs(a|\\xE3)o.?tom(e|\\xE9)\",\n SAU: \"\\\\bsa\\\\w*.?arabia\",\n SEN: \"senegal\",\n SRB: \"^(?!.*monte).*serbia\",\n SYC: \"seychell\",\n SLE: \"sierra\",\n SGP: \"singapore\",\n SXM: \"^(?!.*martin)(?!.*saba).*maarten\",\n SVK: \"^(?!.*cze).*slovak\",\n SVN: \"slovenia\",\n SLB: \"solomon\",\n SOM: \"somali\",\n ZAF: \"south.africa|s\\\\\\\\..?africa\",\n SGS: \"south.?georgia|sandwich\",\n SSD: \"\\\\bs\\\\w*.?sudan\",\n ESP: \"spain\",\n LKA: \"sri.?lanka|ceylon\",\n SDN: \"^(?!.*\\\\bs(?!u)).*sudan\",\n SUR: \"surinam|dutch.?guiana\",\n SJM: \"svalbard\",\n SWZ: \"swaziland\",\n SWE: \"sweden\",\n CHE: \"switz|swiss\",\n SYR: \"syria\",\n TWN: \"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china\",\n TJK: \"tajik\",\n THA: \"thailand|\\\\bsiam\",\n MKD: \"macedonia|fyrom\",\n TLS: \"^(?=.*leste).*timor|^(?=.*east).*timor\",\n TGO: \"togo\",\n TKL: \"tokelau\",\n TON: \"tonga\",\n TTO: \"trinidad|tobago\",\n TUN: \"tunisia\",\n TUR: \"turkey\",\n TKM: \"turkmen\",\n TCA: \"turks\",\n TUV: \"tuvalu\",\n UGA: \"uganda\",\n UKR: \"ukrain\",\n ARE: \"emirates|^u\\\\.?a\\\\.?e\\\\.?$|united.?arab.?em\",\n GBR: \"united.?kingdom|britain|^u\\\\.?k\\\\.?$\",\n TZA: \"tanzania\",\n USA: \"united.?states\\\\b(?!.*islands)|\\\\bu\\\\.?s\\\\.?a\\\\.?\\\\b|^\\\\s*u\\\\.?s\\\\.?\\\\b(?!.*islands)\",\n UMI: \"minor.?outlying.?is\",\n URY: \"uruguay\",\n UZB: \"uzbek\",\n VUT: \"vanuatu|new.?hebrides\",\n VEN: \"venezuela\",\n VNM: \"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam\",\n VGB: \"^(?=.*\\\\bu\\\\.?\\\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin\",\n VIR: \"^(?=.*\\\\bu\\\\.?\\\\s?s).*virgin|^(?=.*states).*virgin\",\n WLF: \"futuna|wallis\",\n ESH: \"western.sahara\",\n YEM: \"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\\\bp\\\\.?d\\\\.?r).*yemen\",\n YMD: \"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\\\bp\\\\.?d\\\\.?r).*yemen\",\n YUG: \"yugoslavia\",\n ZMB: \"zambia|northern.?rhodesia\",\n EAZ: \"zanzibar\",\n ZWE: \"zimbabwe|^(?!.*northern).*rhodesia\"\n };\n }\n });\n\n // node_modules/@turf/helpers/dist/cjs/index.cjs\n var require_cjs = __commonJS({\n \"node_modules/@turf/helpers/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var earthRadius = 63710088e-1;\n var factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: 360 / (2 * Math.PI),\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1e3,\n kilometres: earthRadius / 1e3,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1e3,\n millimetres: earthRadius * 1e3,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936\n };\n var areaFactors = {\n acres: 247105e-9,\n centimeters: 1e4,\n centimetres: 1e4,\n feet: 10.763910417,\n hectares: 1e-4,\n inches: 1550.003100006,\n kilometers: 1e-6,\n kilometres: 1e-6,\n meters: 1,\n metres: 1,\n miles: 386e-9,\n nauticalmiles: 29155334959812285e-23,\n millimeters: 1e6,\n millimetres: 1e6,\n yards: 1.195990046\n };\n function feature(geom, properties, options = {}) {\n const feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n }\n function geometry(type, coordinates, _options = {}) {\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n }\n function point(coordinates, properties, options = {}) {\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n const geom = {\n type: \"Point\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function points(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return point(coords, properties);\n }),\n options\n );\n }\n function polygon(coordinates, properties, options = {}) {\n for (const ring of coordinates) {\n if (ring.length < 4) {\n throw new Error(\n \"Each LinearRing of a Polygon must have 4 or more Positions.\"\n );\n }\n if (ring[ring.length - 1].length !== ring[0].length) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n for (let j = 0; j < ring[ring.length - 1].length; j++) {\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n const geom = {\n type: \"Polygon\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function polygons(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return polygon(coords, properties);\n }),\n options\n );\n }\n function lineString(coordinates, properties, options = {}) {\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n const geom = {\n type: \"LineString\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function lineStrings(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return lineString(coords, properties);\n }),\n options\n );\n }\n function featureCollection(features, options = {}) {\n const fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n }\n function multiLineString(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiLineString\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function multiPoint(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiPoint\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function multiPolygon(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiPolygon\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function geometryCollection(geometries, properties, options = {}) {\n const geom = {\n type: \"GeometryCollection\",\n geometries\n };\n return feature(geom, properties, options);\n }\n function round(num, precision = 0) {\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n const multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n }\n function radiansToLength(radians2, units = \"kilometers\") {\n const factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians2 * factor;\n }\n function lengthToRadians(distance, units = \"kilometers\") {\n const factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n }\n function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n }\n function bearingToAzimuth(bearing) {\n let angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n }\n function azimuthToBearing(angle) {\n angle = angle % 360;\n if (angle > 0)\n return angle > 180 ? angle - 360 : angle;\n return angle < -180 ? angle + 360 : angle;\n }\n function radiansToDegrees(radians2) {\n const degrees3 = radians2 % (2 * Math.PI);\n return degrees3 * 180 / Math.PI;\n }\n function degreesToRadians(degrees3) {\n const radians2 = degrees3 % 360;\n return radians2 * Math.PI / 180;\n }\n function convertLength(length, originalUnit = \"kilometers\", finalUnit = \"kilometers\") {\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n }\n function convertArea(area, originalUnit = \"meters\", finalUnit = \"kilometers\") {\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n const startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n const finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return area / startFactor * finalFactor;\n }\n function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n }\n function isObject(input) {\n return input !== null && typeof input === \"object\" && !Array.isArray(input);\n }\n function validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach((num) => {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n }\n function validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n }\n exports.areaFactors = areaFactors;\n exports.azimuthToBearing = azimuthToBearing;\n exports.bearingToAzimuth = bearingToAzimuth;\n exports.convertArea = convertArea;\n exports.convertLength = convertLength;\n exports.degreesToRadians = degreesToRadians;\n exports.earthRadius = earthRadius;\n exports.factors = factors;\n exports.feature = feature;\n exports.featureCollection = featureCollection;\n exports.geometry = geometry;\n exports.geometryCollection = geometryCollection;\n exports.isNumber = isNumber;\n exports.isObject = isObject;\n exports.lengthToDegrees = lengthToDegrees;\n exports.lengthToRadians = lengthToRadians;\n exports.lineString = lineString;\n exports.lineStrings = lineStrings;\n exports.multiLineString = multiLineString;\n exports.multiPoint = multiPoint;\n exports.multiPolygon = multiPolygon;\n exports.point = point;\n exports.points = points;\n exports.polygon = polygon;\n exports.polygons = polygons;\n exports.radiansToDegrees = radiansToDegrees;\n exports.radiansToLength = radiansToLength;\n exports.round = round;\n exports.validateBBox = validateBBox;\n exports.validateId = validateId;\n }\n });\n\n // node_modules/@turf/meta/dist/cjs/index.cjs\n var require_cjs2 = __commonJS({\n \"node_modules/@turf/meta/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var _helpers = require_cjs();\n function coordEach(geojson, callback, excludeWrapCoord) {\n if (geojson === null)\n return;\n var j, k, l, geometry, stopG, coords, geometryMaybeCollection, wrapShrink = 0, coordIndex = 0, isGeometryCollection, type = geojson.type, isFeatureCollection = type === \"FeatureCollection\", isFeature = type === \"Feature\", stop = isFeatureCollection ? geojson.features.length : 1;\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[featureIndex].geometry : isFeature ? geojson.geometry : geojson;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n if (geometry === null)\n continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n wrapShrink = excludeWrapCoord && (geomType === \"Polygon\" || geomType === \"MultiPolygon\") ? 1 : 0;\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n if (geomType === \"MultiPoint\")\n multiFeatureIndex++;\n }\n if (geomType === \"LineString\")\n multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\")\n multiFeatureIndex++;\n if (geomType === \"Polygon\")\n geometryIndex++;\n }\n if (geomType === \"Polygon\")\n multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++)\n if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false)\n return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n }\n function coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function(currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n if (coordIndex === 0 && initialValue === void 0)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n }\n function propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false)\n break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n }\n function propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function(currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentProperties;\n else\n previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n }\n function featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false)\n break;\n }\n }\n }\n function featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function(currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentFeature;\n else\n previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n }\n function coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function(coord) {\n coords.push(coord);\n });\n return coords;\n }\n function geomEach(geojson, callback) {\n var i, j, g, geometry, stopG, geometryMaybeCollection, isGeometryCollection, featureProperties, featureBBox, featureId, featureIndex = 0, isFeatureCollection = geojson.type === \"FeatureCollection\", isFeature = geojson.type === \"Feature\", stop = isFeatureCollection ? geojson.features.length : 1;\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[i].geometry : isFeature ? geojson.geometry : geojson;\n featureProperties = isFeatureCollection ? geojson.features[i].properties : isFeature ? geojson.properties : {};\n featureBBox = isFeatureCollection ? geojson.features[i].bbox : isFeature ? geojson.bbox : void 0;\n featureId = isFeatureCollection ? geojson.features[i].id : isFeature ? geojson.id : void 0;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n if (geometry === null) {\n if (callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\": {\n if (callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n featureIndex++;\n }\n }\n function geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function(currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n }\n function flattenEach(geojson, callback) {\n geomEach(geojson, function(geometry, featureIndex, properties, bbox, id) {\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (callback(\n _helpers.feature.call(void 0, geometry, properties, { bbox, id }),\n featureIndex,\n 0\n ) === false)\n return false;\n return;\n }\n var geomType;\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(_helpers.feature.call(void 0, geom, properties), featureIndex, multiFeatureIndex) === false)\n return false;\n }\n });\n }\n function flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(\n geojson,\n function(currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === void 0)\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n }\n );\n return previousValue;\n }\n function segmentEach(geojson, callback) {\n flattenEach(geojson, function(feature2, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n if (!feature2.geometry)\n return;\n var type = feature2.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\")\n return;\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (coordEach(\n feature2,\n function(currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n if (previousCoords === void 0 || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = _helpers.lineString.call(\n void 0,\n [previousCoords, currentCoord],\n feature2.properties\n );\n if (callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false)\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false)\n return false;\n });\n }\n function segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n if (started === false && initialValue === void 0)\n previousValue = currentSegment;\n else\n previousValue = callback(\n previousValue,\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n );\n started = true;\n }\n );\n return previousValue;\n }\n function lineEach(geojson, callback) {\n if (!geojson)\n throw new Error(\"geojson is required\");\n flattenEach(geojson, function(feature2, featureIndex, multiFeatureIndex) {\n if (feature2.geometry === null)\n return;\n var type = feature2.geometry.type;\n var coords = feature2.geometry.coordinates;\n switch (type) {\n case \"LineString\":\n if (callback(feature2, featureIndex, multiFeatureIndex, 0, 0) === false)\n return false;\n break;\n case \"Polygon\":\n for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n if (callback(\n _helpers.lineString.call(void 0, coords[geometryIndex], feature2.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n }\n break;\n }\n });\n }\n function lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(\n geojson,\n function(currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentLine;\n else\n previousValue = callback(\n previousValue,\n currentLine,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n }\n );\n return previousValue;\n }\n function findSegment(geojson, options) {\n options = options || {};\n if (!_helpers.isObject.call(void 0, options))\n throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n var properties = options.properties;\n var geometry;\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n if (geometry === null)\n return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n if (segmentIndex < 0)\n segmentIndex = coords.length + segmentIndex - 1;\n return _helpers.lineString.call(\n void 0,\n [coords[segmentIndex], coords[segmentIndex + 1]],\n properties,\n options\n );\n case \"Polygon\":\n if (geometryIndex < 0)\n geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return _helpers.lineString.call(\n void 0,\n [\n coords[geometryIndex][segmentIndex],\n coords[geometryIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return _helpers.lineString.call(\n void 0,\n [\n coords[multiFeatureIndex][segmentIndex],\n coords[multiFeatureIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return _helpers.lineString.call(\n void 0,\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\n coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n }\n function findPoint(geojson, options) {\n options = options || {};\n if (!_helpers.isObject.call(void 0, options))\n throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n var properties = options.properties;\n var geometry;\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n if (geometry === null)\n return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n return _helpers.point.call(void 0, coords, properties, options);\n case \"MultiPoint\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n return _helpers.point.call(void 0, coords[multiFeatureIndex], properties, options);\n case \"LineString\":\n if (coordIndex < 0)\n coordIndex = coords.length + coordIndex;\n return _helpers.point.call(void 0, coords[coordIndex], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0)\n geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[geometryIndex].length + coordIndex;\n return _helpers.point.call(void 0, coords[geometryIndex][coordIndex], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return _helpers.point.call(void 0, coords[multiFeatureIndex][coordIndex], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return _helpers.point.call(\n void 0,\n coords[multiFeatureIndex][geometryIndex][coordIndex],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n }\n exports.coordAll = coordAll;\n exports.coordEach = coordEach;\n exports.coordReduce = coordReduce;\n exports.featureEach = featureEach;\n exports.featureReduce = featureReduce;\n exports.findPoint = findPoint;\n exports.findSegment = findSegment;\n exports.flattenEach = flattenEach;\n exports.flattenReduce = flattenReduce;\n exports.geomEach = geomEach;\n exports.geomReduce = geomReduce;\n exports.lineEach = lineEach;\n exports.lineReduce = lineReduce;\n exports.propEach = propEach;\n exports.propReduce = propReduce;\n exports.segmentEach = segmentEach;\n exports.segmentReduce = segmentReduce;\n }\n });\n\n // node_modules/@turf/area/dist/cjs/index.cjs\n var require_cjs3 = __commonJS({\n \"node_modules/@turf/area/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var _helpers = require_cjs();\n var _meta = require_cjs2();\n function area(geojson) {\n return _meta.geomReduce.call(\n void 0,\n geojson,\n (value, geom) => {\n return value + calculateArea(geom);\n },\n 0\n );\n }\n function calculateArea(geom) {\n let total = 0;\n let i;\n switch (geom.type) {\n case \"Polygon\":\n return polygonArea(geom.coordinates);\n case \"MultiPolygon\":\n for (i = 0; i < geom.coordinates.length; i++) {\n total += polygonArea(geom.coordinates[i]);\n }\n return total;\n case \"Point\":\n case \"MultiPoint\":\n case \"LineString\":\n case \"MultiLineString\":\n return 0;\n }\n return 0;\n }\n function polygonArea(coords) {\n let total = 0;\n if (coords && coords.length > 0) {\n total += Math.abs(ringArea(coords[0]));\n for (let i = 1; i < coords.length; i++) {\n total -= Math.abs(ringArea(coords[i]));\n }\n }\n return total;\n }\n var FACTOR = _helpers.earthRadius * _helpers.earthRadius / 2;\n var PI_OVER_180 = Math.PI / 180;\n function ringArea(coords) {\n const coordsLength = coords.length - 1;\n if (coordsLength <= 2)\n return 0;\n let total = 0;\n let i = 0;\n while (i < coordsLength) {\n const lower = coords[i];\n const middle = coords[i + 1 === coordsLength ? 0 : i + 1];\n const upper = coords[i + 2 >= coordsLength ? (i + 2) % coordsLength : i + 2];\n const lowerX = lower[0] * PI_OVER_180;\n const middleY = middle[1] * PI_OVER_180;\n const upperX = upper[0] * PI_OVER_180;\n total += (upperX - lowerX) * Math.sin(middleY);\n i++;\n }\n return total * FACTOR;\n }\n var turf_area_default = area;\n exports.area = area;\n exports.default = turf_area_default;\n }\n });\n\n // node_modules/@turf/centroid/dist/cjs/index.cjs\n var require_cjs4 = __commonJS({\n \"node_modules/@turf/centroid/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var _helpers = require_cjs();\n var _meta = require_cjs2();\n function centroid(geojson, options = {}) {\n let xSum = 0;\n let ySum = 0;\n let len = 0;\n _meta.coordEach.call(\n void 0,\n geojson,\n function(coord) {\n xSum += coord[0];\n ySum += coord[1];\n len++;\n },\n true\n );\n return _helpers.point.call(void 0, [xSum / len, ySum / len], options.properties);\n }\n var turf_centroid_default = centroid;\n exports.centroid = centroid;\n exports.default = turf_centroid_default;\n }\n });\n\n // node_modules/@turf/bbox/dist/cjs/index.cjs\n var require_cjs5 = __commonJS({\n \"node_modules/@turf/bbox/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var _meta = require_cjs2();\n function bbox(geojson, options = {}) {\n if (geojson.bbox != null && true !== options.recompute) {\n return geojson.bbox;\n }\n const result = [Infinity, Infinity, -Infinity, -Infinity];\n _meta.coordEach.call(void 0, geojson, (coord) => {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n }\n var turf_bbox_default = bbox;\n exports.bbox = bbox;\n exports.default = turf_bbox_default;\n }\n });\n\n // src/lib/geo_location_utils.js\n var require_geo_location_utils = __commonJS({\n \"src/lib/geo_location_utils.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var countryRegex = require_country_regex();\n var { area: turfArea } = require_cjs3();\n var { centroid: turfCentroid } = require_cjs4();\n var { bbox: turfBbox } = require_cjs5();\n var identity2 = require_identity2();\n var loggers = require_loggers();\n var isPlainObject = require_is_plain_object();\n var nestedProperty = require_nested_property();\n var polygon = require_polygon();\n var countryIds = Object.keys(countryRegex);\n var locationmodeToIdFinder = {\n \"ISO-3\": identity2,\n \"USA-states\": identity2,\n \"country names\": countryNameToISO3\n };\n function countryNameToISO3(countryName) {\n for (var i = 0; i < countryIds.length; i++) {\n var iso3 = countryIds[i];\n var regex = new RegExp(countryRegex[iso3]);\n if (regex.test(countryName.trim().toLowerCase())) return iso3;\n }\n loggers.log(\"Unrecognized country name: \" + countryName + \".\");\n return false;\n }\n function locationToFeature(locationmode, location2, features) {\n if (!location2 || typeof location2 !== \"string\") return false;\n var locationId = locationmodeToIdFinder[locationmode](location2);\n var filteredFeatures;\n var f, i;\n if (locationId) {\n if (locationmode === \"USA-states\") {\n filteredFeatures = [];\n for (i = 0; i < features.length; i++) {\n f = features[i];\n if (f.properties && f.properties.gu && f.properties.gu === \"USA\") {\n filteredFeatures.push(f);\n }\n }\n } else {\n filteredFeatures = features;\n }\n for (i = 0; i < filteredFeatures.length; i++) {\n f = filteredFeatures[i];\n if (f.id === locationId) return f;\n }\n loggers.log([\n \"Location with id\",\n locationId,\n \"does not have a matching topojson feature at this resolution.\"\n ].join(\" \"));\n }\n return false;\n }\n function feature2polygons(feature) {\n var geometry = feature.geometry;\n var coords = geometry.coordinates;\n var loc = feature.id;\n var polygons = [];\n var appendPolygon, j, k, m;\n function doesCrossAntiMerdian(pts) {\n for (var l = 0; l < pts.length - 1; l++) {\n if (pts[l][0] > 0 && pts[l + 1][0] < 0) return l;\n }\n return null;\n }\n if (loc === \"RUS\" || loc === \"FJI\") {\n appendPolygon = function(_pts) {\n var pts;\n if (doesCrossAntiMerdian(_pts) === null) {\n pts = _pts;\n } else {\n pts = new Array(_pts.length);\n for (m = 0; m < _pts.length; m++) {\n pts[m] = [\n _pts[m][0] < 0 ? _pts[m][0] + 360 : _pts[m][0],\n _pts[m][1]\n ];\n }\n }\n polygons.push(polygon.tester(pts));\n };\n } else if (loc === \"ATA\") {\n appendPolygon = function(pts) {\n var crossAntiMeridianIndex = doesCrossAntiMerdian(pts);\n if (crossAntiMeridianIndex === null) {\n return polygons.push(polygon.tester(pts));\n }\n var stitch = new Array(pts.length + 1);\n var si = 0;\n for (m = 0; m < pts.length; m++) {\n if (m > crossAntiMeridianIndex) {\n stitch[si++] = [pts[m][0] + 360, pts[m][1]];\n } else if (m === crossAntiMeridianIndex) {\n stitch[si++] = pts[m];\n stitch[si++] = [pts[m][0], -90];\n } else {\n stitch[si++] = pts[m];\n }\n }\n var tester = polygon.tester(stitch);\n tester.pts.pop();\n polygons.push(tester);\n };\n } else {\n appendPolygon = function(pts) {\n polygons.push(polygon.tester(pts));\n };\n }\n switch (geometry.type) {\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length; k++) {\n appendPolygon(coords[j][k]);\n }\n }\n break;\n case \"Polygon\":\n for (j = 0; j < coords.length; j++) {\n appendPolygon(coords[j]);\n }\n break;\n }\n return polygons;\n }\n function getTraceGeojson(trace) {\n var g = trace.geojson;\n var PlotlyGeoAssets2 = window.PlotlyGeoAssets || {};\n var geojsonIn = typeof g === \"string\" ? PlotlyGeoAssets2[g] : g;\n if (!isPlainObject(geojsonIn)) {\n loggers.error(\"Oops ... something went wrong when fetching \" + g);\n return false;\n }\n return geojsonIn;\n }\n function extractTraceFeature(calcTrace) {\n var trace = calcTrace[0].trace;\n var geojsonIn = getTraceGeojson(trace);\n if (!geojsonIn) return false;\n var lookup = {};\n var featuresOut = [];\n var i;\n for (i = 0; i < trace._length; i++) {\n var cdi = calcTrace[i];\n if (cdi.loc || cdi.loc === 0) {\n lookup[cdi.loc] = cdi;\n }\n }\n function appendFeature(fIn) {\n var id = nestedProperty(fIn, trace.featureidkey || \"id\").get();\n var cdi2 = lookup[id];\n if (cdi2) {\n var geometry = fIn.geometry;\n if (geometry.type === \"Polygon\" || geometry.type === \"MultiPolygon\") {\n var fOut = {\n type: \"Feature\",\n id,\n geometry,\n properties: {}\n };\n if (fOut.geometry.coordinates.length > 0) {\n fOut.properties.ct = findCentroid(fOut);\n } else {\n fOut.properties.ct = [NaN, NaN];\n }\n cdi2.fIn = fIn;\n cdi2.fOut = fOut;\n featuresOut.push(fOut);\n } else {\n loggers.log([\n \"Location\",\n cdi2.loc,\n \"does not have a valid GeoJSON geometry.\",\n \"Traces with locationmode *geojson-id* only support\",\n \"*Polygon* and *MultiPolygon* geometries.\"\n ].join(\" \"));\n }\n }\n delete lookup[id];\n }\n switch (geojsonIn.type) {\n case \"FeatureCollection\":\n var featuresIn = geojsonIn.features;\n for (i = 0; i < featuresIn.length; i++) {\n appendFeature(featuresIn[i]);\n }\n break;\n case \"Feature\":\n appendFeature(geojsonIn);\n break;\n default:\n loggers.warn([\n \"Invalid GeoJSON type\",\n (geojsonIn.type || \"none\") + \".\",\n \"Traces with locationmode *geojson-id* only support\",\n \"*FeatureCollection* and *Feature* types.\"\n ].join(\" \"));\n return false;\n }\n for (var loc in lookup) {\n loggers.log([\n \"Location *\" + loc + \"*\",\n \"does not have a matching feature with id-key\",\n \"*\" + trace.featureidkey + \"*.\"\n ].join(\" \"));\n }\n return featuresOut;\n }\n function findCentroid(feature) {\n var geometry = feature.geometry;\n var poly;\n if (geometry.type === \"MultiPolygon\") {\n var coords = geometry.coordinates;\n var maxArea = 0;\n for (var i = 0; i < coords.length; i++) {\n var polyi = { type: \"Polygon\", coordinates: coords[i] };\n var area = turfArea(polyi);\n if (area > maxArea) {\n maxArea = area;\n poly = polyi;\n }\n }\n } else {\n poly = geometry;\n }\n return turfCentroid(poly).geometry.coordinates;\n }\n function fetchTraceGeoData(calcData) {\n var PlotlyGeoAssets2 = window.PlotlyGeoAssets || {};\n var promises = [];\n function fetch2(url2) {\n return new Promise(function(resolve, reject) {\n d3.json(url2, function(err, d) {\n if (err) {\n delete PlotlyGeoAssets2[url2];\n var msg = err.status === 404 ? 'GeoJSON at URL \"' + url2 + '\" does not exist.' : \"Unexpected error while fetching from \" + url2;\n return reject(new Error(msg));\n }\n PlotlyGeoAssets2[url2] = d;\n return resolve(d);\n });\n });\n }\n function wait(url2) {\n return new Promise(function(resolve, reject) {\n var cnt = 0;\n var interval = setInterval(function() {\n if (PlotlyGeoAssets2[url2] && PlotlyGeoAssets2[url2] !== \"pending\") {\n clearInterval(interval);\n return resolve(PlotlyGeoAssets2[url2]);\n }\n if (cnt > 100) {\n clearInterval(interval);\n return reject(\"Unexpected error while fetching from \" + url2);\n }\n cnt++;\n }, 50);\n });\n }\n for (var i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var url = trace.geojson;\n if (typeof url === \"string\") {\n if (!PlotlyGeoAssets2[url]) {\n PlotlyGeoAssets2[url] = \"pending\";\n promises.push(fetch2(url));\n } else if (PlotlyGeoAssets2[url] === \"pending\") {\n promises.push(wait(url));\n }\n }\n }\n return promises;\n }\n function computeBbox(d) {\n return turfBbox(d);\n }\n module.exports = {\n locationToFeature,\n feature2polygons,\n getTraceGeojson,\n extractTraceFeature,\n fetchTraceGeoData,\n computeBbox\n };\n }\n });\n\n // src/traces/scattergeo/style.js\n var require_style17 = __commonJS({\n \"src/traces/scattergeo/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var scatterStyle = require_style2();\n var stylePoints = scatterStyle.stylePoints;\n var styleText = scatterStyle.styleText;\n module.exports = function style(gd, calcTrace) {\n if (calcTrace) styleTrace(gd, calcTrace);\n };\n function styleTrace(gd, calcTrace) {\n var trace = calcTrace[0].trace;\n var s = calcTrace[0].node3;\n s.style(\"opacity\", calcTrace[0].trace.opacity);\n stylePoints(s, trace, gd);\n styleText(s, trace, gd);\n s.selectAll(\"path.js-line\").style(\"fill\", \"none\").each(function(d) {\n var path = d3.select(this);\n var trace2 = d.trace;\n var line = trace2.line || {};\n path.call(Color2.stroke, line.color).call(Drawing.dashLine, line.dash || \"\", line.width || 0);\n if (trace2.fill !== \"none\") {\n path.call(Color2.fill, trace2.fillcolor);\n }\n });\n }\n }\n });\n\n // src/traces/scattergeo/plot.js\n var require_plot17 = __commonJS({\n \"src/traces/scattergeo/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var getTopojsonFeatures = require_topojson_utils().getTopojsonFeatures;\n var geoJsonUtils = require_geojson_utils();\n var geoUtils = require_geo_location_utils();\n var findExtremes = require_autorange().findExtremes;\n var BADNUM = require_numerical().BADNUM;\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var subTypes = require_subtypes();\n var style = require_style17();\n function plot(gd, geo, calcData) {\n var scatterLayer = geo.layers.frontplot.select(\".scatterlayer\");\n var gTraces = Lib.makeTraceGroups(scatterLayer, calcData, \"trace scattergeo\");\n function removeBADNUM(d, node) {\n if (d.lonlat[0] === BADNUM) {\n d3.select(node).remove();\n }\n }\n gTraces.selectAll(\"*\").remove();\n gTraces.each(function(calcTrace) {\n var s = d3.select(this);\n var trace = calcTrace[0].trace;\n if (subTypes.hasLines(trace) || trace.fill !== \"none\") {\n var lineCoords = geoJsonUtils.calcTraceToLineCoords(calcTrace);\n var lineData = trace.fill !== \"none\" ? geoJsonUtils.makePolygon(lineCoords) : geoJsonUtils.makeLine(lineCoords);\n s.selectAll(\"path.js-line\").data([{ geojson: lineData, trace }]).enter().append(\"path\").classed(\"js-line\", true).style(\"stroke-miterlimit\", 2);\n }\n if (subTypes.hasMarkers(trace)) {\n s.selectAll(\"path.point\").data(Lib.identity).enter().append(\"path\").classed(\"point\", true).each(function(calcPt) {\n removeBADNUM(calcPt, this);\n });\n }\n if (subTypes.hasText(trace)) {\n s.selectAll(\"g\").data(Lib.identity).enter().append(\"g\").append(\"text\").each(function(calcPt) {\n removeBADNUM(calcPt, this);\n });\n }\n style(gd, calcTrace);\n });\n }\n function calcGeoJSON(calcTrace, fullLayout) {\n var trace = calcTrace[0].trace;\n var geoLayout = fullLayout[trace.geo];\n var geo = geoLayout._subplot;\n var len = trace._length;\n var i, calcPt;\n if (Lib.isArrayOrTypedArray(trace.locations)) {\n var locationmode = trace.locationmode;\n var features = locationmode === \"geojson-id\" ? geoUtils.extractTraceFeature(calcTrace) : getTopojsonFeatures(trace, geo.topojson);\n for (i = 0; i < len; i++) {\n calcPt = calcTrace[i];\n var feature = locationmode === \"geojson-id\" ? calcPt.fOut : geoUtils.locationToFeature(locationmode, calcPt.loc, features);\n calcPt.lonlat = feature ? feature.properties.ct : [BADNUM, BADNUM];\n }\n }\n var opts = { padded: true };\n var lonArray;\n var latArray;\n if (geoLayout.fitbounds === \"geojson\" && trace.locationmode === \"geojson-id\") {\n var bboxGeojson = geoUtils.computeBbox(geoUtils.getTraceGeojson(trace));\n lonArray = [bboxGeojson[0], bboxGeojson[2]];\n latArray = [bboxGeojson[1], bboxGeojson[3]];\n } else {\n lonArray = new Array(len);\n latArray = new Array(len);\n for (i = 0; i < len; i++) {\n calcPt = calcTrace[i];\n lonArray[i] = calcPt.lonlat[0];\n latArray[i] = calcPt.lonlat[1];\n }\n opts.ppad = calcMarkerSize(trace, len);\n }\n trace._extremes.lon = findExtremes(geoLayout.lonaxis._ax, lonArray, opts);\n trace._extremes.lat = findExtremes(geoLayout.lataxis._ax, latArray, opts);\n }\n module.exports = {\n calcGeoJSON,\n plot\n };\n }\n });\n\n // src/traces/scattergeo/hover.js\n var require_hover14 = __commonJS({\n \"src/traces/scattergeo/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var BADNUM = require_numerical().BADNUM;\n var getTraceColor = require_get_trace_color();\n var fillText = require_lib().fillText;\n var attributes = require_attributes48();\n module.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var geo = pointData.subplot;\n var isLonLatOverEdges = geo.projection.isLonLatOverEdges;\n var project = geo.project;\n function distFn(d) {\n var lonlat2 = d.lonlat;\n if (lonlat2[0] === BADNUM) return Infinity;\n if (isLonLatOverEdges(lonlat2)) return Infinity;\n var pt = project(lonlat2);\n var px = project([xval, yval]);\n var dx = Math.abs(pt[0] - px[0]);\n var dy = Math.abs(pt[1] - px[1]);\n var rad2 = Math.max(3, d.mrc || 0);\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad2, 1 - 3 / rad2);\n }\n Fx.getClosest(cd, distFn, pointData);\n if (pointData.index === false) return;\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var pos = [xa.c2p(lonlat), ya.c2p(lonlat)];\n var rad = di.mrc || 1;\n pointData.x0 = pos[0] - rad;\n pointData.x1 = pos[0] + rad;\n pointData.y0 = pos[1] - rad;\n pointData.y1 = pos[1] + rad;\n pointData.loc = di.loc;\n pointData.lon = lonlat[0];\n pointData.lat = lonlat[1];\n var fullLayout = {};\n fullLayout[trace.geo] = { _subplot: geo };\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, pointData, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n return [pointData];\n };\n function getExtraText(trace, pt, pointData, labels) {\n if (trace.hovertemplate) return;\n var hoverinfo = pt.hi || trace.hoverinfo;\n var parts = hoverinfo === \"all\" ? attributes.hoverinfo.flags : hoverinfo.split(\"+\");\n var hasLocation = parts.indexOf(\"location\") !== -1 && Array.isArray(trace.locations);\n var hasLon = parts.indexOf(\"lon\") !== -1;\n var hasLat = parts.indexOf(\"lat\") !== -1;\n var hasText = parts.indexOf(\"text\") !== -1;\n var text = [];\n function format(val) {\n return val + \"\\xB0\";\n }\n if (hasLocation) {\n text.push(pt.loc);\n } else if (hasLon && hasLat) {\n text.push(\"(\" + format(pointData.latLabel) + \", \" + format(pointData.lonLabel) + \")\");\n } else if (hasLon) {\n text.push(labels.lon + format(pointData.lonLabel));\n } else if (hasLat) {\n text.push(labels.lat + format(pointData.latLabel));\n }\n if (hasText) {\n fillText(pt, trace, text);\n }\n return text.join(\"
\");\n }\n }\n });\n\n // src/traces/scattergeo/event_data.js\n var require_event_data9 = __commonJS({\n \"src/traces/scattergeo/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.location = pt.loc ? pt.loc : null;\n var cdi = cd[pointNumber];\n if (cdi.fIn && cdi.fIn.properties) {\n out.properties = cdi.fIn.properties;\n }\n return out;\n };\n }\n });\n\n // src/traces/scattergeo/select.js\n var require_select5 = __commonJS({\n \"src/traces/scattergeo/select.js\"(exports, module) {\n \"use strict\";\n var subtypes = require_subtypes();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var di, lonlat, x, y, i;\n var hasOnlyLines = !subtypes.hasMarkers(trace) && !subtypes.hasText(trace);\n if (hasOnlyLines) return [];\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n di = cd[i];\n lonlat = di.lonlat;\n if (lonlat[0] === BADNUM) continue;\n x = xa.c2p(lonlat);\n y = ya.c2p(lonlat);\n if (selectionTester.contains([x, y], null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n }\n });\n\n // node_modules/d3-array/dist/d3-array.js\n var require_d3_array = __commonJS({\n \"node_modules/d3-array/dist/d3-array.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : factory(global2.d3 = global2.d3 || {});\n })(exports, function(exports2) {\n \"use strict\";\n function ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n function bisector(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n function ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n }\n var ascendingBisect = bisector(ascending);\n var bisectRight = ascendingBisect.right;\n var bisectLeft = ascendingBisect.left;\n function pairs(array2, f) {\n if (f == null) f = pair;\n var i = 0, n = array2.length - 1, p = array2[0], pairs2 = new Array(n < 0 ? 0 : n);\n while (i < n) pairs2[i] = f(p, p = array2[++i]);\n return pairs2;\n }\n function pair(a, b) {\n return [a, b];\n }\n function cross(values0, values1, reduce) {\n var n0 = values0.length, n1 = values1.length, values = new Array(n0 * n1), i0, i1, i, value0;\n if (reduce == null) reduce = pair;\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n return values;\n }\n function descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n }\n function number(x) {\n return x === null ? NaN : +x;\n }\n function variance(values, valueof) {\n var n = values.length, m = 0, i = -1, mean2 = 0, value, delta, sum2 = 0;\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean2;\n mean2 += delta / ++m;\n sum2 += delta * (value - mean2);\n }\n }\n } else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean2;\n mean2 += delta / ++m;\n sum2 += delta * (value - mean2);\n }\n }\n }\n if (m > 1) return sum2 / (m - 1);\n }\n function deviation(array2, f) {\n var v = variance(array2, f);\n return v ? Math.sqrt(v) : v;\n }\n function extent(values, valueof) {\n var n = values.length, i = -1, value, min2, max2;\n if (valueof == null) {\n while (++i < n) {\n if ((value = values[i]) != null && value >= value) {\n min2 = max2 = value;\n while (++i < n) {\n if ((value = values[i]) != null) {\n if (min2 > value) min2 = value;\n if (max2 < value) max2 = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min2 = max2 = value;\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null) {\n if (min2 > value) min2 = value;\n if (max2 < value) max2 = value;\n }\n }\n }\n }\n }\n return [min2, max2];\n }\n var array = Array.prototype;\n var slice = array.slice;\n var map = array.map;\n function constant(x) {\n return function() {\n return x;\n };\n }\n function identity2(x) {\n return x;\n }\n function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1, n = Math.max(0, Math.ceil((stop - start) / step)) | 0, range2 = new Array(n);\n while (++i < n) {\n range2[i] = start + i * step;\n }\n return range2;\n }\n var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);\n function ticks(start, stop, count) {\n var reverse, i = -1, n, ticks2, step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks2 = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks2[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks2 = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks2[i] = (start - i) / step;\n }\n if (reverse) ticks2.reverse();\n return ticks2;\n }\n function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n }\n function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n }\n function sturges(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n }\n function histogram() {\n var value = identity2, domain = extent, threshold = sturges;\n function histogram2(data) {\n var i, n = data.length, x, values = new Array(n);\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n var xz = domain(values), x0 = xz[0], x1 = xz[1], tz = threshold(values, x0, x1);\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz);\n }\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n var bins = new Array(m + 1), bin;\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n return bins;\n }\n histogram2.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram2) : value;\n };\n histogram2.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram2) : domain;\n };\n histogram2.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram2) : threshold;\n };\n return histogram2;\n }\n function quantile(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = +valueof(values[i0], i0, values), value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n }\n function freedmanDiaconis(values, min2, max2) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max2 - min2) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n }\n function scott(values, min2, max2) {\n return Math.ceil((max2 - min2) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n }\n function max(values, valueof) {\n var n = values.length, i = -1, value, max2;\n if (valueof == null) {\n while (++i < n) {\n if ((value = values[i]) != null && value >= value) {\n max2 = value;\n while (++i < n) {\n if ((value = values[i]) != null && value > max2) {\n max2 = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max2 = value;\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && value > max2) {\n max2 = value;\n }\n }\n }\n }\n }\n return max2;\n }\n function mean(values, valueof) {\n var n = values.length, m = n, i = -1, value, sum2 = 0;\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum2 += value;\n else --m;\n }\n } else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum2 += value;\n else --m;\n }\n }\n if (m) return sum2 / m;\n }\n function median(values, valueof) {\n var n = values.length, i = -1, value, numbers = [];\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n } else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n return quantile(numbers.sort(ascending), 0.5);\n }\n function merge(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array2;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array2 = arrays[n];\n m = array2.length;\n while (--m >= 0) {\n merged[--j] = array2[m];\n }\n }\n return merged;\n }\n function min(values, valueof) {\n var n = values.length, i = -1, value, min2;\n if (valueof == null) {\n while (++i < n) {\n if ((value = values[i]) != null && value >= value) {\n min2 = value;\n while (++i < n) {\n if ((value = values[i]) != null && min2 > value) {\n min2 = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min2 = value;\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && min2 > value) {\n min2 = value;\n }\n }\n }\n }\n }\n return min2;\n }\n function permute(array2, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array2[indexes[i]];\n return permutes;\n }\n function scan(values, compare) {\n if (!(n = values.length)) return;\n var n, i = 0, j = 0, xi, xj = values[j];\n if (compare == null) compare = ascending;\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n if (compare(xj, xj) === 0) return j;\n }\n function shuffle(array2, i0, i1) {\n var m = (i1 == null ? array2.length : i1) - (i0 = i0 == null ? 0 : +i0), t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array2[m + i0];\n array2[m + i0] = array2[i + i0];\n array2[i + i0] = t;\n }\n return array2;\n }\n function sum(values, valueof) {\n var n = values.length, i = -1, value, sum2 = 0;\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum2 += value;\n }\n } else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum2 += value;\n }\n }\n return sum2;\n }\n function transpose(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose2 = new Array(m); ++i < m; ) {\n for (var j = -1, n, row = transpose2[i] = new Array(n); ++j < n; ) {\n row[j] = matrix[j][i];\n }\n }\n return transpose2;\n }\n function length(d) {\n return d.length;\n }\n function zip() {\n return transpose(arguments);\n }\n exports2.bisect = bisectRight;\n exports2.bisectRight = bisectRight;\n exports2.bisectLeft = bisectLeft;\n exports2.ascending = ascending;\n exports2.bisector = bisector;\n exports2.cross = cross;\n exports2.descending = descending;\n exports2.deviation = deviation;\n exports2.extent = extent;\n exports2.histogram = histogram;\n exports2.thresholdFreedmanDiaconis = freedmanDiaconis;\n exports2.thresholdScott = scott;\n exports2.thresholdSturges = sturges;\n exports2.max = max;\n exports2.mean = mean;\n exports2.median = median;\n exports2.merge = merge;\n exports2.min = min;\n exports2.pairs = pairs;\n exports2.permute = permute;\n exports2.quantile = quantile;\n exports2.range = range;\n exports2.scan = scan;\n exports2.shuffle = shuffle;\n exports2.sum = sum;\n exports2.ticks = ticks;\n exports2.tickIncrement = tickIncrement;\n exports2.tickStep = tickStep;\n exports2.transpose = transpose;\n exports2.variance = variance;\n exports2.zip = zip;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-geo/dist/d3-geo.js\n var require_d3_geo = __commonJS({\n \"node_modules/d3-geo/dist/d3-geo.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_array()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-array\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}, global2.d3));\n })(exports, function(exports2, d3Array) {\n \"use strict\";\n function adder() {\n return new Adder();\n }\n function Adder() {\n this.reset();\n }\n Adder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0;\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n };\n var temp = new Adder();\n function add(adder2, a, b) {\n var x = adder2.s = a + b, bv = x - a, av = x - bv;\n adder2.t = a - av + (b - bv);\n }\n var epsilon = 1e-6;\n var epsilon22 = 1e-12;\n var pi = Math.PI;\n var halfPi = pi / 2;\n var quarterPi = pi / 4;\n var tau = pi * 2;\n var degrees3 = 180 / pi;\n var radians2 = pi / 180;\n var abs = Math.abs;\n var atan = Math.atan;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var ceil = Math.ceil;\n var exp = Math.exp;\n var log = Math.log;\n var pow = Math.pow;\n var sin = Math.sin;\n var sign = Math.sign || function(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n };\n var sqrt = Math.sqrt;\n var tan = Math.tan;\n function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n }\n function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n }\n function haversin(x) {\n return (x = sin(x / 2)) * x;\n }\n function noop() {\n }\n function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n }\n var streamObjectType = {\n Feature: function(object2, stream) {\n streamGeometry(object2.geometry, stream);\n },\n FeatureCollection: function(object2, stream) {\n var features = object2.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n };\n var streamGeometryType = {\n Sphere: function(object2, stream) {\n stream.sphere();\n },\n Point: function(object2, stream) {\n object2 = object2.coordinates;\n stream.point(object2[0], object2[1], object2[2]);\n },\n MultiPoint: function(object2, stream) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) object2 = coordinates2[i], stream.point(object2[0], object2[1], object2[2]);\n },\n LineString: function(object2, stream) {\n streamLine(object2.coordinates, stream, 0);\n },\n MultiLineString: function(object2, stream) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) streamLine(coordinates2[i], stream, 0);\n },\n Polygon: function(object2, stream) {\n streamPolygon(object2.coordinates, stream);\n },\n MultiPolygon: function(object2, stream) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) streamPolygon(coordinates2[i], stream);\n },\n GeometryCollection: function(object2, stream) {\n var geometries = object2.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n };\n function streamLine(coordinates2, stream, closed) {\n var i = -1, n = coordinates2.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates2[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n }\n function streamPolygon(coordinates2, stream) {\n var i = -1, n = coordinates2.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates2[i], stream, 1);\n stream.polygonEnd();\n }\n function geoStream(object2, stream) {\n if (object2 && streamObjectType.hasOwnProperty(object2.type)) {\n streamObjectType[object2.type](object2, stream);\n } else {\n streamGeometry(object2, stream);\n }\n }\n var areaRingSum = adder();\n var areaSum = adder(), lambda00, phi00, lambda0, cosPhi0, sinPhi0;\n var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n };\n function areaRingStart() {\n areaStream.point = areaPointFirst;\n }\n function areaRingEnd() {\n areaPoint(lambda00, phi00);\n }\n function areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians2, phi *= radians2;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n }\n function areaPoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n phi = phi / 2 + quarterPi;\n var dLambda = lambda - lambda0, sdLambda = dLambda >= 0 ? 1 : -1, adLambda = sdLambda * dLambda, cosPhi = cos(phi), sinPhi = sin(phi), k = sinPhi0 * sinPhi, u = cosPhi0 * cosPhi + k * cos(adLambda), v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n }\n function area(object2) {\n areaSum.reset();\n geoStream(object2, areaStream);\n return areaSum * 2;\n }\n function spherical(cartesian2) {\n return [atan2(cartesian2[1], cartesian2[0]), asin(cartesian2[2])];\n }\n function cartesian(spherical2) {\n var lambda = spherical2[0], phi = spherical2[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n }\n function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n }\n function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n }\n function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n }\n var lambda0$1, phi0, lambda1, phi1, lambda2, lambda00$1, phi00$1, p0, deltaSum = adder(), ranges, range;\n var boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0$1, range[1] = lambda1;\n },\n sphere: function() {\n lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n };\n function boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n function linePoint(lambda, phi) {\n var p = cartesian([lambda * radians2, phi * radians2]);\n if (p0) {\n var normal = cartesianCross(p0, p), equatorial = [normal[1], -normal[0], 0], inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2, sign2 = delta > 0 ? 1 : -1, lambdai = inflection[0] * degrees3 * sign2, phii, antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign2 * lambda2 < lambdai && lambdai < sign2 * lambda)) {\n phii = inflection[1] * degrees3;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign2 * lambda2 < lambdai && lambdai < sign2 * lambda)) {\n phii = -inflection[1] * degrees3;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n } else {\n if (lambda1 >= lambda0$1) {\n if (lambda < lambda0$1) lambda0$1 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n }\n function boundsLineStart() {\n boundsStream.point = linePoint;\n }\n function boundsLineEnd() {\n range[0] = lambda0$1, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n }\n function boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00$1 = lambda, phi00$1 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n }\n function boundsRingStart() {\n areaStream.lineStart();\n }\n function boundsRingEnd() {\n boundsRingPoint(lambda00$1, phi00$1);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0$1 = -(lambda1 = 180);\n range[0] = lambda0$1, range[1] = lambda1;\n p0 = null;\n }\n function angle(lambda02, lambda12) {\n return (lambda12 -= lambda02) < 0 ? lambda12 + 360 : lambda12;\n }\n function rangeCompare(a, b) {\n return a[0] - b[0];\n }\n function rangeContains(range2, x) {\n return range2[0] <= range2[1] ? range2[0] <= x && x <= range2[1] : x < range2[0] || range2[1] < x;\n }\n function bounds(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);\n ranges = [];\n geoStream(feature, boundsStream);\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];\n }\n }\n ranges = range = null;\n return lambda0$1 === Infinity || phi0 === Infinity ? [[NaN, NaN], [NaN, NaN]] : [[lambda0$1, phi0], [lambda1, phi1]];\n }\n var W0, W1, X0, Y0, Z0, X1, Y1, Z1, X2, Y2, Z2, lambda00$2, phi00$2, x0, y0, z0;\n var centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n };\n function centroidPoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n }\n function centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n }\n function centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n }\n function centroidLinePointFirst(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n }\n function centroidLinePoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var cosPhi = cos(phi), x = cosPhi * cos(lambda), y = cosPhi * sin(lambda), z = sin(phi), w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n }\n function centroidLineEnd() {\n centroidStream.point = centroidPoint;\n }\n function centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n }\n function centroidRingEnd() {\n centroidRingPoint(lambda00$2, phi00$2);\n centroidStream.point = centroidPoint;\n }\n function centroidRingPointFirst(lambda, phi) {\n lambda00$2 = lambda, phi00$2 = phi;\n lambda *= radians2, phi *= radians2;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n }\n function centroidRingPoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var cosPhi = cos(phi), x = cosPhi * cos(lambda), y = cosPhi * sin(lambda), z = sin(phi), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = sqrt(cx * cx + cy * cy + cz * cz), w = asin(m), v = m && -w / m;\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n }\n function centroid(object2) {\n W0 = W1 = X0 = Y0 = Z0 = X1 = Y1 = Z1 = X2 = Y2 = Z2 = 0;\n geoStream(object2, centroidStream);\n var x = X2, y = Y2, z = Z2, m = x * x + y * y + z * z;\n if (m < epsilon22) {\n x = X1, y = Y1, z = Z1;\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n if (m < epsilon22) return [NaN, NaN];\n }\n return [atan2(y, x) * degrees3, asin(z / sqrt(m)) * degrees3];\n }\n function constant(x) {\n return function() {\n return x;\n };\n }\n function compose(a, b) {\n function compose2(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n if (a.invert && b.invert) compose2.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose2;\n }\n function rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n }\n rotationIdentity.invert = rotationIdentity;\n function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) : rotationLambda(deltaLambda) : deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) : rotationIdentity;\n }\n function forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n }\n function rotationLambda(deltaLambda) {\n var rotation2 = forwardRotationLambda(deltaLambda);\n rotation2.invert = forwardRotationLambda(-deltaLambda);\n return rotation2;\n }\n function rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi), sinDeltaPhi = sin(deltaPhi), cosDeltaGamma = cos(deltaGamma), sinDeltaGamma = sin(deltaGamma);\n function rotation2(lambda, phi) {\n var cosPhi = cos(phi), x = cos(lambda) * cosPhi, y = sin(lambda) * cosPhi, z = sin(phi), k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n rotation2.invert = function(lambda, phi) {\n var cosPhi = cos(phi), x = cos(lambda) * cosPhi, y = sin(lambda) * cosPhi, z = sin(phi), k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n return rotation2;\n }\n function rotation(rotate) {\n rotate = rotateRadians(rotate[0] * radians2, rotate[1] * radians2, rotate.length > 2 ? rotate[2] * radians2 : 0);\n function forward(coordinates2) {\n coordinates2 = rotate(coordinates2[0] * radians2, coordinates2[1] * radians2);\n return coordinates2[0] *= degrees3, coordinates2[1] *= degrees3, coordinates2;\n }\n forward.invert = function(coordinates2) {\n coordinates2 = rotate.invert(coordinates2[0] * radians2, coordinates2[1] * radians2);\n return coordinates2[0] *= degrees3, coordinates2[1] *= degrees3, coordinates2;\n };\n return forward;\n }\n function circleStream(stream, radius, delta, direction, t02, t12) {\n if (!delta) return;\n var cosRadius = cos(radius), sinRadius = sin(radius), step = direction * delta;\n if (t02 == null) {\n t02 = radius + direction * tau;\n t12 = radius - step / 2;\n } else {\n t02 = circleRadius(cosRadius, t02);\n t12 = circleRadius(cosRadius, t12);\n if (direction > 0 ? t02 < t12 : t02 > t12) t02 += direction * tau;\n }\n for (var point, t = t02; direction > 0 ? t > t12 : t < t12; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n }\n function circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n }\n function circle() {\n var center = constant([0, 0]), radius = constant(90), precision = constant(6), ring, rotate, stream = { point };\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees3, x[1] *= degrees3;\n }\n function circle2() {\n var c = center.apply(this, arguments), r = radius.apply(this, arguments) * radians2, p = precision.apply(this, arguments) * radians2;\n ring = [];\n rotate = rotateRadians(-c[0] * radians2, -c[1] * radians2, 0).invert;\n circleStream(stream, r, p, 1);\n c = { type: \"Polygon\", coordinates: [ring] };\n ring = rotate = null;\n return c;\n }\n circle2.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle2) : center;\n };\n circle2.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle2) : radius;\n };\n circle2.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle2) : precision;\n };\n return circle2;\n }\n function clipBuffer() {\n var lines = [], line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n }\n function pointEqual(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n }\n function Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other;\n this.e = entry;\n this.v = false;\n this.n = this.p = null;\n }\n function clipRejoin(segments, compareIntersection2, startInside, interpolate2, stream) {\n var subject = [], clip2 = [], i, n;\n segments.forEach(function(segment) {\n if ((n2 = segment.length - 1) <= 0) return;\n var n2, p02 = segment[0], p1 = segment[n2], x;\n if (pointEqual(p02, p1)) {\n if (!p02[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n2; ++i) stream.point((p02 = segment[i])[0], p02[1]);\n stream.lineEnd();\n return;\n }\n p1[0] += 2 * epsilon;\n }\n subject.push(x = new Intersection(p02, segment, null, true));\n clip2.push(x.o = new Intersection(p02, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip2.push(x.o = new Intersection(p1, null, x, true));\n });\n if (!subject.length) return;\n clip2.sort(compareIntersection2);\n link(subject);\n link(clip2);\n for (i = 0, n = clip2.length; i < n; ++i) {\n clip2[i].e = startInside = !startInside;\n }\n var start = subject[0], points, point;\n while (1) {\n var current = start, isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate2(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate2(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n }\n function link(array) {\n if (!(n = array.length)) return;\n var n, i = 0, a = array[0], b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n }\n var sum = adder();\n function longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n }\n function polygonContains(polygon, point) {\n var lambda = longitude(point), phi = point[1], sinPhi = sin(phi), normal = [sin(lambda), -cos(lambda), 0], angle2 = 0, winding = 0;\n sum.reset();\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring, m, point0 = ring[m - 1], lambda02 = longitude(point0), phi02 = point0[1] / 2 + quarterPi, sinPhi02 = sin(phi02), cosPhi02 = cos(phi02);\n for (var j = 0; j < m; ++j, lambda02 = lambda12, sinPhi02 = sinPhi1, cosPhi02 = cosPhi1, point0 = point1) {\n var point1 = ring[j], lambda12 = longitude(point1), phi12 = point1[1] / 2 + quarterPi, sinPhi1 = sin(phi12), cosPhi1 = cos(phi12), delta = lambda12 - lambda02, sign2 = delta >= 0 ? 1 : -1, absDelta = sign2 * delta, antimeridian = absDelta > pi, k = sinPhi02 * sinPhi1;\n sum.add(atan2(k * sign2 * sin(absDelta), cosPhi02 * cosPhi1 + k * cos(absDelta)));\n angle2 += antimeridian ? delta + sign2 * tau : delta;\n if (antimeridian ^ lambda02 >= lambda ^ lambda12 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n return (angle2 < -epsilon || angle2 < epsilon && sum < -epsilon) ^ winding & 1;\n }\n function clip(pointVisible, clipLine2, interpolate2, start) {\n return function(sink) {\n var line = clipLine2(sink), ringBuffer = clipBuffer(), ringSink = clipLine2(ringBuffer), polygonStarted = false, polygon, segments, ring;\n var clip2 = {\n point,\n lineStart,\n lineEnd,\n polygonStart: function() {\n clip2.point = pointRing;\n clip2.lineStart = ringStart;\n clip2.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip2.point = point;\n clip2.lineStart = lineStart;\n clip2.lineEnd = lineEnd;\n segments = d3Array.merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate2, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate2(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate2(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n function lineStart() {\n clip2.point = pointLine;\n line.lineStart();\n }\n function lineEnd() {\n clip2.point = point;\n line.lineEnd();\n }\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n var clean = ringSink.clean(), ringSegments = ringBuffer.result(), i, n = ringSegments.length, m, segment, point2;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return;\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point2 = segment[i])[0], point2[1]);\n sink.lineEnd();\n }\n return;\n }\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(validSegment));\n }\n return clip2;\n };\n }\n function validSegment(segment) {\n return segment.length > 1;\n }\n function compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n }\n var clipAntimeridian = clip(\n function() {\n return true;\n },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n );\n function clipAntimeridianLine(stream) {\n var lambda02 = NaN, phi02 = NaN, sign0 = NaN, clean;\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda12, phi12) {\n var sign1 = lambda12 > 0 ? pi : -pi, delta = abs(lambda12 - lambda02);\n if (abs(delta - pi) < epsilon) {\n stream.point(lambda02, phi02 = (phi02 + phi12) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi02);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi02);\n stream.point(lambda12, phi02);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) {\n if (abs(lambda02 - sign0) < epsilon) lambda02 -= sign0 * epsilon;\n if (abs(lambda12 - sign1) < epsilon) lambda12 -= sign1 * epsilon;\n phi02 = clipAntimeridianIntersect(lambda02, phi02, lambda12, phi12);\n stream.point(sign0, phi02);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi02);\n clean = 0;\n }\n stream.point(lambda02 = lambda12, phi02 = phi12);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda02 = phi02 = NaN;\n },\n clean: function() {\n return 2 - clean;\n }\n };\n }\n function clipAntimeridianIntersect(lambda02, phi02, lambda12, phi12) {\n var cosPhi02, cosPhi1, sinLambda0Lambda1 = sin(lambda02 - lambda12);\n return abs(sinLambda0Lambda1) > epsilon ? atan((sin(phi02) * (cosPhi1 = cos(phi12)) * sin(lambda12) - sin(phi12) * (cosPhi02 = cos(phi02)) * sin(lambda02)) / (cosPhi02 * cosPhi1 * sinLambda0Lambda1)) : (phi02 + phi12) / 2;\n }\n function clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n function clipCircle(radius) {\n var cr = cos(radius), delta = 6 * radians2, smallRadius = cr > 0, notHemisphere = abs(cr) > epsilon;\n function interpolate2(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n function clipLine2(stream) {\n var point0, c0, v0, v00, clean;\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi], point2, v = visible(lambda, phi), c = smallRadius ? v ? 0 : code(lambda, phi) : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | (v00 && v0) << 1;\n }\n };\n }\n function intersect(a, b, two) {\n var pa = cartesian(a), pb = cartesian(b);\n var n1 = [1, 0, 0], n2 = cartesianCross(pa, pb), n2n2 = cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = cartesianCross(n1, n2), A5 = cartesianScale(n1, c1), B2 = cartesianScale(n2, c2);\n cartesianAddInPlace(A5, B2);\n var u = n1xn2, w = cartesianDot(A5, u), uu = cartesianDot(u, u), t22 = w * w - uu * (cartesianDot(A5, A5) - 1);\n if (t22 < 0) return;\n var t = sqrt(t22), q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A5);\n q = spherical(q);\n if (!two) return q;\n var lambda02 = a[0], lambda12 = b[0], phi02 = a[1], phi12 = b[1], z;\n if (lambda12 < lambda02) z = lambda02, lambda02 = lambda12, lambda12 = z;\n var delta2 = lambda12 - lambda02, polar = abs(delta2 - pi) < epsilon, meridian = polar || delta2 < epsilon;\n if (!polar && phi12 < phi02) z = phi02, phi02 = phi12, phi12 = z;\n if (meridian ? polar ? phi02 + phi12 > 0 ^ q[1] < (abs(q[0] - lambda02) < epsilon ? phi02 : phi12) : phi02 <= q[1] && q[1] <= phi12 : delta2 > pi ^ (lambda02 <= q[0] && q[0] <= lambda12)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A5);\n return [q, spherical(q1)];\n }\n }\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius, code2 = 0;\n if (lambda < -r) code2 |= 1;\n else if (lambda > r) code2 |= 2;\n if (phi < -r) code2 |= 4;\n else if (phi > r) code2 |= 8;\n return code2;\n }\n return clip(visible, clipLine2, interpolate2, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n }\n function clipLine(a, b, x02, y02, x12, y12) {\n var ax = a[0], ay = a[1], bx = b[0], by = b[1], t02 = 0, t12 = 1, dx = bx - ax, dy = by - ay, r;\n r = x02 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n } else if (dx > 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n }\n r = x12 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n } else if (dx > 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n }\n r = y02 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n } else if (dy > 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n }\n r = y12 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n } else if (dy > 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n }\n if (t02 > 0) a[0] = ax + t02 * dx, a[1] = ay + t02 * dy;\n if (t12 < 1) b[0] = ax + t12 * dx, b[1] = ay + t12 * dy;\n return true;\n }\n var clipMax = 1e9, clipMin = -clipMax;\n function clipRectangle(x02, y02, x12, y12) {\n function visible(x, y) {\n return x02 <= x && x <= x12 && y02 <= y && y <= y12;\n }\n function interpolate2(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoint(from, to) < 0 ^ direction > 0) {\n do\n stream.point(a === 0 || a === 3 ? x02 : x12, a > 1 ? y12 : y02);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n function corner(p, direction) {\n return abs(p[0] - x02) < epsilon ? direction > 0 ? 0 : 3 : abs(p[0] - x12) < epsilon ? direction > 0 ? 2 : 1 : abs(p[1] - y02) < epsilon ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;\n }\n function compareIntersection2(a, b) {\n return comparePoint(a.x, b.x);\n }\n function comparePoint(a, b) {\n var ca = corner(a, 1), cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n return function(stream) {\n var activeStream = stream, bufferStream = clipBuffer(), segments, polygon, ring, x__, y__, v__, x_, y_, v_, first, clean;\n var clipStream = {\n point,\n lineStart,\n lineEnd,\n polygonStart,\n polygonEnd\n };\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n function polygonInside() {\n var winding = 0;\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring2 = polygon[i], j = 1, m = ring2.length, point2 = ring2[0], a0, a1, b0 = point2[0], b1 = point2[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point2 = ring2[j], b0 = point2[0], b1 = point2[1];\n if (a1 <= y12) {\n if (b1 > y12 && (b0 - a0) * (y12 - a1) > (b1 - a1) * (x02 - a0)) ++winding;\n } else {\n if (b1 <= y12 && (b0 - a0) * (y12 - a1) < (b1 - a1) * (x02 - a0)) --winding;\n }\n }\n }\n return winding;\n }\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n function polygonEnd() {\n var startInside = polygonInside(), cleanInside = clean && startInside, visible2 = (segments = d3Array.merge(segments)).length;\n if (cleanInside || visible2) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate2(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible2) {\n clipRejoin(segments, compareIntersection2, startInside, interpolate2, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n function lineStart() {\n clipStream.point = linePoint2;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n function lineEnd() {\n if (segments) {\n linePoint2(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n function linePoint2(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))], b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x02, y02, x12, y12)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n return clipStream;\n };\n }\n function extent() {\n var x02 = 0, y02 = 0, x12 = 960, y12 = 500, cache, cacheStream, clip2;\n return clip2 = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x02, y02, x12, y12)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x02 = +_[0][0], y02 = +_[0][1], x12 = +_[1][0], y12 = +_[1][1], cache = cacheStream = null, clip2) : [[x02, y02], [x12, y12]];\n }\n };\n }\n var lengthSum = adder(), lambda0$2, sinPhi0$1, cosPhi0$1;\n var lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n };\n function lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n }\n function lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n }\n function lengthPointFirst(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n lambda0$2 = lambda, sinPhi0$1 = sin(phi), cosPhi0$1 = cos(phi);\n lengthStream.point = lengthPoint;\n }\n function lengthPoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var sinPhi = sin(phi), cosPhi = cos(phi), delta = abs(lambda - lambda0$2), cosDelta = cos(delta), sinDelta = sin(delta), x = cosPhi * sinDelta, y = cosPhi0$1 * sinPhi - sinPhi0$1 * cosPhi * cosDelta, z = sinPhi0$1 * sinPhi + cosPhi0$1 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0$2 = lambda, sinPhi0$1 = sinPhi, cosPhi0$1 = cosPhi;\n }\n function length(object2) {\n lengthSum.reset();\n geoStream(object2, lengthStream);\n return +lengthSum;\n }\n var coordinates = [null, null], object = { type: \"LineString\", coordinates };\n function distance(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n }\n var containsObjectType = {\n Feature: function(object2, point) {\n return containsGeometry(object2.geometry, point);\n },\n FeatureCollection: function(object2, point) {\n var features = object2.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n };\n var containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object2, point) {\n return containsPoint(object2.coordinates, point);\n },\n MultiPoint: function(object2, point) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) if (containsPoint(coordinates2[i], point)) return true;\n return false;\n },\n LineString: function(object2, point) {\n return containsLine(object2.coordinates, point);\n },\n MultiLineString: function(object2, point) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) if (containsLine(coordinates2[i], point)) return true;\n return false;\n },\n Polygon: function(object2, point) {\n return containsPolygon(object2.coordinates, point);\n },\n MultiPolygon: function(object2, point) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) if (containsPolygon(coordinates2[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object2, point) {\n var geometries = object2.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n };\n function containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type) ? containsGeometryType[geometry.type](geometry, point) : false;\n }\n function containsPoint(coordinates2, point) {\n return distance(coordinates2, point) === 0;\n }\n function containsLine(coordinates2, point) {\n var ao, bo, ab;\n for (var i = 0, n = coordinates2.length; i < n; i++) {\n bo = distance(coordinates2[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates2[i], coordinates2[i - 1]);\n if (ab > 0 && ao <= ab && bo <= ab && (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon22 * ab)\n return true;\n }\n ao = bo;\n }\n return false;\n }\n function containsPolygon(coordinates2, point) {\n return !!polygonContains(coordinates2.map(ringRadians), pointRadians(point));\n }\n function ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n }\n function pointRadians(point) {\n return [point[0] * radians2, point[1] * radians2];\n }\n function contains(object2, point) {\n return (object2 && containsObjectType.hasOwnProperty(object2.type) ? containsObjectType[object2.type] : containsGeometry)(object2, point);\n }\n function graticuleX(y02, y12, dy) {\n var y = d3Array.range(y02, y12 - epsilon, dy).concat(y12);\n return function(x) {\n return y.map(function(y2) {\n return [x, y2];\n });\n };\n }\n function graticuleY(x02, x12, dx) {\n var x = d3Array.range(x02, x12 - epsilon, dx).concat(x12);\n return function(y) {\n return x.map(function(x2) {\n return [x2, y];\n });\n };\n }\n function graticule() {\n var x12, x02, X12, X02, y12, y02, Y12, Y02, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;\n function graticule2() {\n return { type: \"MultiLineString\", coordinates: lines() };\n }\n function lines() {\n return d3Array.range(ceil(X02 / DX) * DX, X12, DX).map(X).concat(d3Array.range(ceil(Y02 / DY) * DY, Y12, DY).map(Y)).concat(d3Array.range(ceil(x02 / dx) * dx, x12, dx).filter(function(x2) {\n return abs(x2 % DX) > epsilon;\n }).map(x)).concat(d3Array.range(ceil(y02 / dy) * dy, y12, dy).filter(function(y2) {\n return abs(y2 % DY) > epsilon;\n }).map(y));\n }\n graticule2.lines = function() {\n return lines().map(function(coordinates2) {\n return { type: \"LineString\", coordinates: coordinates2 };\n });\n };\n graticule2.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X02).concat(\n Y(Y12).slice(1),\n X(X12).reverse().slice(1),\n Y(Y02).reverse().slice(1)\n )\n ]\n };\n };\n graticule2.extent = function(_) {\n if (!arguments.length) return graticule2.extentMinor();\n return graticule2.extentMajor(_).extentMinor(_);\n };\n graticule2.extentMajor = function(_) {\n if (!arguments.length) return [[X02, Y02], [X12, Y12]];\n X02 = +_[0][0], X12 = +_[1][0];\n Y02 = +_[0][1], Y12 = +_[1][1];\n if (X02 > X12) _ = X02, X02 = X12, X12 = _;\n if (Y02 > Y12) _ = Y02, Y02 = Y12, Y12 = _;\n return graticule2.precision(precision);\n };\n graticule2.extentMinor = function(_) {\n if (!arguments.length) return [[x02, y02], [x12, y12]];\n x02 = +_[0][0], x12 = +_[1][0];\n y02 = +_[0][1], y12 = +_[1][1];\n if (x02 > x12) _ = x02, x02 = x12, x12 = _;\n if (y02 > y12) _ = y02, y02 = y12, y12 = _;\n return graticule2.precision(precision);\n };\n graticule2.step = function(_) {\n if (!arguments.length) return graticule2.stepMinor();\n return graticule2.stepMajor(_).stepMinor(_);\n };\n graticule2.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule2;\n };\n graticule2.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule2;\n };\n graticule2.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y02, y12, 90);\n y = graticuleY(x02, x12, precision);\n X = graticuleX(Y02, Y12, 90);\n Y = graticuleY(X02, X12, precision);\n return graticule2;\n };\n return graticule2.extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]]).extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n }\n function graticule10() {\n return graticule()();\n }\n function interpolate(a, b) {\n var x02 = a[0] * radians2, y02 = a[1] * radians2, x12 = b[0] * radians2, y12 = b[1] * radians2, cy0 = cos(y02), sy0 = sin(y02), cy1 = cos(y12), sy1 = sin(y12), kx0 = cy0 * cos(x02), ky0 = cy0 * sin(x02), kx1 = cy1 * cos(x12), ky1 = cy1 * sin(x12), d = 2 * asin(sqrt(haversin(y12 - y02) + cy0 * cy1 * haversin(x12 - x02))), k = sin(d);\n var interpolate2 = d ? function(t) {\n var B2 = sin(t *= d) / k, A5 = sin(d - t) / k, x = A5 * kx0 + B2 * kx1, y = A5 * ky0 + B2 * ky1, z = A5 * sy0 + B2 * sy1;\n return [\n atan2(y, x) * degrees3,\n atan2(z, sqrt(x * x + y * y)) * degrees3\n ];\n } : function() {\n return [x02 * degrees3, y02 * degrees3];\n };\n interpolate2.distance = d;\n return interpolate2;\n }\n function identity2(x) {\n return x;\n }\n var areaSum$1 = adder(), areaRingSum$1 = adder(), x00, y00, x0$1, y0$1;\n var areaStream$1 = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream$1.lineStart = areaRingStart$1;\n areaStream$1.lineEnd = areaRingEnd$1;\n },\n polygonEnd: function() {\n areaStream$1.lineStart = areaStream$1.lineEnd = areaStream$1.point = noop;\n areaSum$1.add(abs(areaRingSum$1));\n areaRingSum$1.reset();\n },\n result: function() {\n var area2 = areaSum$1 / 2;\n areaSum$1.reset();\n return area2;\n }\n };\n function areaRingStart$1() {\n areaStream$1.point = areaPointFirst$1;\n }\n function areaPointFirst$1(x, y) {\n areaStream$1.point = areaPoint$1;\n x00 = x0$1 = x, y00 = y0$1 = y;\n }\n function areaPoint$1(x, y) {\n areaRingSum$1.add(y0$1 * x - x0$1 * y);\n x0$1 = x, y0$1 = y;\n }\n function areaRingEnd$1() {\n areaPoint$1(x00, y00);\n }\n var x0$2 = Infinity, y0$2 = x0$2, x1 = -x0$2, y1 = x1;\n var boundsStream$1 = {\n point: boundsPoint$1,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds2 = [[x0$2, y0$2], [x1, y1]];\n x1 = y1 = -(y0$2 = x0$2 = Infinity);\n return bounds2;\n }\n };\n function boundsPoint$1(x, y) {\n if (x < x0$2) x0$2 = x;\n if (x > x1) x1 = x;\n if (y < y0$2) y0$2 = y;\n if (y > y1) y1 = y;\n }\n var X0$1 = 0, Y0$1 = 0, Z0$1 = 0, X1$1 = 0, Y1$1 = 0, Z1$1 = 0, X2$1 = 0, Y2$1 = 0, Z2$1 = 0, x00$1, y00$1, x0$3, y0$3;\n var centroidStream$1 = {\n point: centroidPoint$1,\n lineStart: centroidLineStart$1,\n lineEnd: centroidLineEnd$1,\n polygonStart: function() {\n centroidStream$1.lineStart = centroidRingStart$1;\n centroidStream$1.lineEnd = centroidRingEnd$1;\n },\n polygonEnd: function() {\n centroidStream$1.point = centroidPoint$1;\n centroidStream$1.lineStart = centroidLineStart$1;\n centroidStream$1.lineEnd = centroidLineEnd$1;\n },\n result: function() {\n var centroid2 = Z2$1 ? [X2$1 / Z2$1, Y2$1 / Z2$1] : Z1$1 ? [X1$1 / Z1$1, Y1$1 / Z1$1] : Z0$1 ? [X0$1 / Z0$1, Y0$1 / Z0$1] : [NaN, NaN];\n X0$1 = Y0$1 = Z0$1 = X1$1 = Y1$1 = Z1$1 = X2$1 = Y2$1 = Z2$1 = 0;\n return centroid2;\n }\n };\n function centroidPoint$1(x, y) {\n X0$1 += x;\n Y0$1 += y;\n ++Z0$1;\n }\n function centroidLineStart$1() {\n centroidStream$1.point = centroidPointFirstLine;\n }\n function centroidPointFirstLine(x, y) {\n centroidStream$1.point = centroidPointLine;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n function centroidPointLine(x, y) {\n var dx = x - x0$3, dy = y - y0$3, z = sqrt(dx * dx + dy * dy);\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n function centroidLineEnd$1() {\n centroidStream$1.point = centroidPoint$1;\n }\n function centroidRingStart$1() {\n centroidStream$1.point = centroidPointFirstRing;\n }\n function centroidRingEnd$1() {\n centroidPointRing(x00$1, y00$1);\n }\n function centroidPointFirstRing(x, y) {\n centroidStream$1.point = centroidPointRing;\n centroidPoint$1(x00$1 = x0$3 = x, y00$1 = y0$3 = y);\n }\n function centroidPointRing(x, y) {\n var dx = x - x0$3, dy = y - y0$3, z = sqrt(dx * dx + dy * dy);\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n z = y0$3 * x - x0$3 * y;\n X2$1 += z * (x0$3 + x);\n Y2$1 += z * (y0$3 + y);\n Z2$1 += z * 3;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n function PathContext(context) {\n this._context = context;\n }\n PathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n };\n var lengthSum$1 = adder(), lengthRing, x00$2, y00$2, x0$4, y0$4;\n var lengthStream$1 = {\n point: noop,\n lineStart: function() {\n lengthStream$1.point = lengthPointFirst$1;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint$1(x00$2, y00$2);\n lengthStream$1.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length2 = +lengthSum$1;\n lengthSum$1.reset();\n return length2;\n }\n };\n function lengthPointFirst$1(x, y) {\n lengthStream$1.point = lengthPoint$1;\n x00$2 = x0$4 = x, y00$2 = y0$4 = y;\n }\n function lengthPoint$1(x, y) {\n x0$4 -= x, y0$4 -= y;\n lengthSum$1.add(sqrt(x0$4 * x0$4 + y0$4 * y0$4));\n x0$4 = x, y0$4 = y;\n }\n function PathString() {\n this._string = [];\n }\n PathString.prototype = {\n _radius: 4.5,\n _circle: circle$1(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle$1(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n };\n function circle$1(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n }\n function index(projection2, context) {\n var pointRadius = 4.5, projectionStream, contextStream;\n function path(object2) {\n if (object2) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n geoStream(object2, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n path.area = function(object2) {\n geoStream(object2, projectionStream(areaStream$1));\n return areaStream$1.result();\n };\n path.measure = function(object2) {\n geoStream(object2, projectionStream(lengthStream$1));\n return lengthStream$1.result();\n };\n path.bounds = function(object2) {\n geoStream(object2, projectionStream(boundsStream$1));\n return boundsStream$1.result();\n };\n path.centroid = function(object2) {\n geoStream(object2, projectionStream(centroidStream$1));\n return centroidStream$1.result();\n };\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection2 = null, identity2) : (projection2 = _).stream, path) : projection2;\n };\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n return path.projection(projection2).context(context);\n }\n function transform(methods) {\n return {\n stream: transformer(methods)\n };\n }\n function transformer(methods) {\n return function(stream) {\n var s = new TransformStream();\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n }\n function TransformStream() {\n }\n TransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) {\n this.stream.point(x, y);\n },\n sphere: function() {\n this.stream.sphere();\n },\n lineStart: function() {\n this.stream.lineStart();\n },\n lineEnd: function() {\n this.stream.lineEnd();\n },\n polygonStart: function() {\n this.stream.polygonStart();\n },\n polygonEnd: function() {\n this.stream.polygonEnd();\n }\n };\n function fit(projection2, fitBounds, object2) {\n var clip2 = projection2.clipExtent && projection2.clipExtent();\n projection2.scale(150).translate([0, 0]);\n if (clip2 != null) projection2.clipExtent(null);\n geoStream(object2, projection2.stream(boundsStream$1));\n fitBounds(boundsStream$1.result());\n if (clip2 != null) projection2.clipExtent(clip2);\n return projection2;\n }\n function fitExtent(projection2, extent2, object2) {\n return fit(projection2, function(b) {\n var w = extent2[1][0] - extent2[0][0], h = extent2[1][1] - extent2[0][1], k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])), x = +extent2[0][0] + (w - k * (b[1][0] + b[0][0])) / 2, y = +extent2[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection2.scale(150 * k).translate([x, y]);\n }, object2);\n }\n function fitSize(projection2, size, object2) {\n return fitExtent(projection2, [[0, 0], size], object2);\n }\n function fitWidth(projection2, width, object2) {\n return fit(projection2, function(b) {\n var w = +width, k = w / (b[1][0] - b[0][0]), x = (w - k * (b[1][0] + b[0][0])) / 2, y = -k * b[0][1];\n projection2.scale(150 * k).translate([x, y]);\n }, object2);\n }\n function fitHeight(projection2, height, object2) {\n return fit(projection2, function(b) {\n var h = +height, k = h / (b[1][1] - b[0][1]), x = -k * b[0][0], y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection2.scale(150 * k).translate([x, y]);\n }, object2);\n }\n var maxDepth = 16, cosMinDistance = cos(30 * radians2);\n function resample(project, delta2) {\n return +delta2 ? resample$1(project, delta2) : resampleNone(project);\n }\n function resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n }\n function resample$1(project, delta2) {\n function resampleLineTo(x02, y02, lambda02, a0, b0, c0, x12, y12, lambda12, a1, b1, c1, depth, stream) {\n var dx = x12 - x02, dy = y12 - y02, d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = sqrt(a * a + b * b + c * c), phi2 = asin(c /= m), lambda22 = abs(abs(c) - 1) < epsilon || abs(lambda02 - lambda12) < epsilon ? (lambda02 + lambda12) / 2 : atan2(b, a), p = project(lambda22, phi2), x2 = p[0], y2 = p[1], dx2 = x2 - x02, dy2 = y2 - y02, dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n resampleLineTo(x02, y02, lambda02, a0, b0, c0, x2, y2, lambda22, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda22, a, b, c, x12, y12, lambda12, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda002, x002, y002, a00, b00, c00, lambda02, x02, y02, a0, b0, c0;\n var resampleStream = {\n point,\n lineStart,\n lineEnd,\n polygonStart: function() {\n stream.polygonStart();\n resampleStream.lineStart = ringStart;\n },\n polygonEnd: function() {\n stream.polygonEnd();\n resampleStream.lineStart = lineStart;\n }\n };\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n function lineStart() {\n x02 = NaN;\n resampleStream.point = linePoint2;\n stream.lineStart();\n }\n function linePoint2(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x02, y02, lambda02, a0, b0, c0, x02 = p[0], y02 = p[1], lambda02 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x02, y02);\n }\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n function ringPoint(lambda, phi) {\n linePoint2(lambda002 = lambda, phi), x002 = x02, y002 = y02, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint2;\n }\n function ringEnd() {\n resampleLineTo(x02, y02, lambda02, a0, b0, c0, x002, y002, lambda002, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n return resampleStream;\n };\n }\n var transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians2, y * radians2);\n }\n });\n function transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n }\n function scaleTranslate(k, dx, dy, sx, sy) {\n function transform2(x, y) {\n x *= sx;\n y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform2.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform2;\n }\n function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n var cosAlpha = cos(alpha), sinAlpha = sin(alpha), a = cosAlpha * k, b = sinAlpha * k, ai = cosAlpha / k, bi = sinAlpha / k, ci = (sinAlpha * dy - cosAlpha * dx) / k, fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform2(x, y) {\n x *= sx;\n y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform2.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform2;\n }\n function projection(project) {\n return projectionMutator(function() {\n return project;\n })();\n }\n function projectionMutator(projectAt) {\n var project, k = 150, x = 480, y = 250, lambda = 0, phi = 0, deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, alpha = 0, sx = 1, sy = 1, theta = null, preclip = clipAntimeridian, x02 = null, y02, x12, y12, postclip = identity2, delta2 = 0.5, projectResample, projectTransform, projectRotateTransform, cache, cacheStream;\n function projection2(point) {\n return projectRotateTransform(point[0] * radians2, point[1] * radians2);\n }\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees3, point[1] * degrees3];\n }\n projection2.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n projection2.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = void 0, reset()) : preclip;\n };\n projection2.postclip = function(_) {\n return arguments.length ? (postclip = _, x02 = y02 = x12 = y12 = null, reset()) : postclip;\n };\n projection2.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians2) : (theta = null, clipAntimeridian), reset()) : theta * degrees3;\n };\n projection2.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x02 = y02 = x12 = y12 = null, identity2) : clipRectangle(x02 = +_[0][0], y02 = +_[0][1], x12 = +_[1][0], y12 = +_[1][1]), reset()) : x02 == null ? null : [[x02, y02], [x12, y12]];\n };\n projection2.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n projection2.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n projection2.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians2, phi = _[1] % 360 * radians2, recenter()) : [lambda * degrees3, phi * degrees3];\n };\n projection2.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians2, deltaPhi = _[1] % 360 * radians2, deltaGamma = _.length > 2 ? _[2] % 360 * radians2 : 0, recenter()) : [deltaLambda * degrees3, deltaPhi * degrees3, deltaGamma * degrees3];\n };\n projection2.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians2, recenter()) : alpha * degrees3;\n };\n projection2.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n projection2.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n projection2.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n projection2.fitExtent = function(extent2, object2) {\n return fitExtent(projection2, extent2, object2);\n };\n projection2.fitSize = function(size, object2) {\n return fitSize(projection2, size, object2);\n };\n projection2.fitWidth = function(width, object2) {\n return fitWidth(projection2, width, object2);\n };\n projection2.fitHeight = function(height, object2) {\n return fitHeight(projection2, height, object2);\n };\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)), transform2 = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform2);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n function reset() {\n cache = cacheStream = null;\n return projection2;\n }\n return function() {\n project = projectAt.apply(this, arguments);\n projection2.invert = project.invert && invert;\n return recenter();\n };\n }\n function conicProjection(projectAt) {\n var phi02 = 0, phi12 = pi / 3, m = projectionMutator(projectAt), p = m(phi02, phi12);\n p.parallels = function(_) {\n return arguments.length ? m(phi02 = _[0] * radians2, phi12 = _[1] * radians2) : [phi02 * degrees3, phi12 * degrees3];\n };\n return p;\n }\n function cylindricalEqualAreaRaw(phi02) {\n var cosPhi02 = cos(phi02);\n function forward(lambda, phi) {\n return [lambda * cosPhi02, sin(phi) / cosPhi02];\n }\n forward.invert = function(x, y) {\n return [x / cosPhi02, asin(y * cosPhi02)];\n };\n return forward;\n }\n function conicEqualAreaRaw(y02, y12) {\n var sy0 = sin(y02), n = (sy0 + sin(y12)) / 2;\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y02);\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n project.invert = function(x, y) {\n var r0y = r0 - y, l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n return project;\n }\n function conicEqualArea() {\n return conicProjection(conicEqualAreaRaw).scale(155.424).center([0, 33.6442]);\n }\n function albers() {\n return conicEqualArea().parallels([29.5, 45.5]).scale(1070).translate([480, 250]).rotate([96, 0]).center([-0.6, 38.7]);\n }\n function multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) {\n var i = -1;\n while (++i < n) streams[i].point(x, y);\n },\n sphere: function() {\n var i = -1;\n while (++i < n) streams[i].sphere();\n },\n lineStart: function() {\n var i = -1;\n while (++i < n) streams[i].lineStart();\n },\n lineEnd: function() {\n var i = -1;\n while (++i < n) streams[i].lineEnd();\n },\n polygonStart: function() {\n var i = -1;\n while (++i < n) streams[i].polygonStart();\n },\n polygonEnd: function() {\n var i = -1;\n while (++i < n) streams[i].polygonEnd();\n }\n };\n }\n function albersUsa() {\n var cache, cacheStream, lower48 = albers(), lower48Point, alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, point, pointStream = { point: function(x, y) {\n point = [x, y];\n } };\n function albersUsa2(coordinates2) {\n var x = coordinates2[0], y = coordinates2[1];\n return point = null, (lower48Point.point(x, y), point) || (alaskaPoint.point(x, y), point) || (hawaiiPoint.point(x, y), point);\n }\n albersUsa2.invert = function(coordinates2) {\n var k = lower48.scale(), t = lower48.translate(), x = (coordinates2[0] - t[0]) / k, y = (coordinates2[1] - t[1]) / k;\n return (y >= 0.12 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii : lower48).invert(coordinates2);\n };\n albersUsa2.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n albersUsa2.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n albersUsa2.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa2.translate(lower48.translate());\n };\n albersUsa2.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]).stream(pointStream);\n alaskaPoint = alaska.translate([x - 0.307 * k, y + 0.201 * k]).clipExtent([[x - 0.425 * k + epsilon, y + 0.12 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n hawaiiPoint = hawaii.translate([x - 0.205 * k, y + 0.212 * k]).clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n return reset();\n };\n albersUsa2.fitExtent = function(extent2, object2) {\n return fitExtent(albersUsa2, extent2, object2);\n };\n albersUsa2.fitSize = function(size, object2) {\n return fitSize(albersUsa2, size, object2);\n };\n albersUsa2.fitWidth = function(width, object2) {\n return fitWidth(albersUsa2, width, object2);\n };\n albersUsa2.fitHeight = function(height, object2) {\n return fitHeight(albersUsa2, height, object2);\n };\n function reset() {\n cache = cacheStream = null;\n return albersUsa2;\n }\n return albersUsa2.scale(1070);\n }\n function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x), cy = cos(y), k = scale(cx * cy);\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n };\n }\n function azimuthalInvert(angle2) {\n return function(x, y) {\n var z = sqrt(x * x + y * y), c = angle2(z), sc = sin(c), cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n };\n }\n var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n });\n azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n });\n function azimuthalEqualArea() {\n return projection(azimuthalEqualAreaRaw).scale(124.75).clipAngle(180 - 1e-3);\n }\n var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n });\n azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n });\n function azimuthalEquidistant() {\n return projection(azimuthalEquidistantRaw).scale(79.4188).clipAngle(180 - 1e-3);\n }\n function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n }\n mercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n };\n function mercator() {\n return mercatorProjection(mercatorRaw).scale(961 / tau);\n }\n function mercatorProjection(project) {\n var m = projection(project), center = m.center, scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, x02 = null, y02, x12, y12;\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n m.clipExtent = function(_) {\n return arguments.length ? (_ == null ? x02 = y02 = x12 = y12 = null : (x02 = +_[0][0], y02 = +_[0][1], x12 = +_[1][0], y12 = +_[1][1]), reclip()) : x02 == null ? null : [[x02, y02], [x12, y12]];\n };\n function reclip() {\n var k = pi * scale(), t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x02 == null ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw ? [[Math.max(t[0] - k, x02), y02], [Math.min(t[0] + k, x12), y12]] : [[x02, Math.max(t[1] - k, y02)], [x12, Math.min(t[1] + k, y12)]]);\n }\n return reclip();\n }\n function tany(y) {\n return tan((halfPi + y) / 2);\n }\n function conicConformalRaw(y02, y12) {\n var cy0 = cos(y02), n = y02 === y12 ? sin(y02) : log(cy0 / cos(y12)) / log(tany(y12) / tany(y02)), f = cy0 * pow(tany(y02), n) / n;\n if (!n) return mercatorRaw;\n function project(x, y) {\n if (f > 0) {\n if (y < -halfPi + epsilon) y = -halfPi + epsilon;\n } else {\n if (y > halfPi - epsilon) y = halfPi - epsilon;\n }\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n project.invert = function(x, y) {\n var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy), l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0)\n l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n return project;\n }\n function conicConformal() {\n return conicProjection(conicConformalRaw).scale(109.5).parallels([30, 30]);\n }\n function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n }\n equirectangularRaw.invert = equirectangularRaw;\n function equirectangular() {\n return projection(equirectangularRaw).scale(152.63);\n }\n function conicEquidistantRaw(y02, y12) {\n var cy0 = cos(y02), n = y02 === y12 ? sin(y02) : (cy0 - cos(y12)) / (y12 - y02), g = cy0 / n + y02;\n if (abs(n) < epsilon) return equirectangularRaw;\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n project.invert = function(x, y) {\n var gy = g - y, l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0)\n l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n return project;\n }\n function conicEquidistant() {\n return conicProjection(conicEquidistantRaw).scale(131.154).center([0, 13.9389]);\n }\n var A1 = 1.340264, A2 = -0.081106, A3 = 893e-6, A4 = 3796e-6, M = sqrt(3) / 2, iterations = 12;\n function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n }\n equalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon22) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n };\n function equalEarth() {\n return projection(equalEarthRaw).scale(177.158);\n }\n function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n }\n gnomonicRaw.invert = azimuthalInvert(atan);\n function gnomonic() {\n return projection(gnomonicRaw).scale(144.049).clipAngle(60);\n }\n function identity$1() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, alpha = 0, ca, sa, x02 = null, y02, x12, y12, kx = 1, ky = 1, transform2 = transformer({\n point: function(x, y) {\n var p = projection2([x, y]);\n this.stream.point(p[0], p[1]);\n }\n }), postclip = identity2, cache, cacheStream;\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection2;\n }\n function projection2(p) {\n var x = p[0] * kx, y = p[1] * ky;\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n }\n return [x + tx, y + ty];\n }\n projection2.invert = function(p) {\n var x = p[0] - tx, y = p[1] - ty;\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n return [x / kx, y / ky];\n };\n projection2.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform2(postclip(cacheStream = stream));\n };\n projection2.postclip = function(_) {\n return arguments.length ? (postclip = _, x02 = y02 = x12 = y12 = null, reset()) : postclip;\n };\n projection2.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x02 = y02 = x12 = y12 = null, identity2) : clipRectangle(x02 = +_[0][0], y02 = +_[0][1], x12 = +_[1][0], y12 = +_[1][1]), reset()) : x02 == null ? null : [[x02, y02], [x12, y12]];\n };\n projection2.scale = function(_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n projection2.translate = function(_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n };\n projection2.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians2, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees3;\n };\n projection2.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n projection2.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n projection2.fitExtent = function(extent2, object2) {\n return fitExtent(projection2, extent2, object2);\n };\n projection2.fitSize = function(size, object2) {\n return fitSize(projection2, size, object2);\n };\n projection2.fitWidth = function(width, object2) {\n return fitWidth(projection2, width, object2);\n };\n projection2.fitHeight = function(height, object2) {\n return fitHeight(projection2, height, object2);\n };\n return projection2;\n }\n function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (3971e-6 * phi2 - 1529e-6 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 5916e-6 * phi4)))\n ];\n }\n naturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 5916e-6 * phi4))) - y) / (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 5916e-6 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (3971e-6 - 1529e-6 * phi2)))),\n phi\n ];\n };\n function naturalEarth1() {\n return projection(naturalEarth1Raw).scale(175.295);\n }\n function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n }\n orthographicRaw.invert = azimuthalInvert(asin);\n function orthographic() {\n return projection(orthographicRaw).scale(249.5).clipAngle(90 + epsilon);\n }\n function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n }\n stereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n });\n function stereographic() {\n return projection(stereographicRaw).scale(250).clipAngle(142);\n }\n function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n }\n transverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n };\n function transverseMercator() {\n var m = mercatorProjection(transverseMercatorRaw), center = m.center, rotate = m.rotate;\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n return rotate([0, 0, 90]).scale(159.155);\n }\n exports2.geoAlbers = albers;\n exports2.geoAlbersUsa = albersUsa;\n exports2.geoArea = area;\n exports2.geoAzimuthalEqualArea = azimuthalEqualArea;\n exports2.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw;\n exports2.geoAzimuthalEquidistant = azimuthalEquidistant;\n exports2.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw;\n exports2.geoBounds = bounds;\n exports2.geoCentroid = centroid;\n exports2.geoCircle = circle;\n exports2.geoClipAntimeridian = clipAntimeridian;\n exports2.geoClipCircle = clipCircle;\n exports2.geoClipExtent = extent;\n exports2.geoClipRectangle = clipRectangle;\n exports2.geoConicConformal = conicConformal;\n exports2.geoConicConformalRaw = conicConformalRaw;\n exports2.geoConicEqualArea = conicEqualArea;\n exports2.geoConicEqualAreaRaw = conicEqualAreaRaw;\n exports2.geoConicEquidistant = conicEquidistant;\n exports2.geoConicEquidistantRaw = conicEquidistantRaw;\n exports2.geoContains = contains;\n exports2.geoDistance = distance;\n exports2.geoEqualEarth = equalEarth;\n exports2.geoEqualEarthRaw = equalEarthRaw;\n exports2.geoEquirectangular = equirectangular;\n exports2.geoEquirectangularRaw = equirectangularRaw;\n exports2.geoGnomonic = gnomonic;\n exports2.geoGnomonicRaw = gnomonicRaw;\n exports2.geoGraticule = graticule;\n exports2.geoGraticule10 = graticule10;\n exports2.geoIdentity = identity$1;\n exports2.geoInterpolate = interpolate;\n exports2.geoLength = length;\n exports2.geoMercator = mercator;\n exports2.geoMercatorRaw = mercatorRaw;\n exports2.geoNaturalEarth1 = naturalEarth1;\n exports2.geoNaturalEarth1Raw = naturalEarth1Raw;\n exports2.geoOrthographic = orthographic;\n exports2.geoOrthographicRaw = orthographicRaw;\n exports2.geoPath = index;\n exports2.geoProjection = projection;\n exports2.geoProjectionMutator = projectionMutator;\n exports2.geoRotation = rotation;\n exports2.geoStereographic = stereographic;\n exports2.geoStereographicRaw = stereographicRaw;\n exports2.geoStream = geoStream;\n exports2.geoTransform = transform;\n exports2.geoTransverseMercator = transverseMercator;\n exports2.geoTransverseMercatorRaw = transverseMercatorRaw;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-geo-projection/dist/d3-geo-projection.js\n var require_d3_geo_projection = __commonJS({\n \"node_modules/d3-geo-projection/dist/d3-geo-projection.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_geo(), require_d3_array()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-geo\", \"d3-array\"], factory) : factory(global2.d3 = global2.d3 || {}, global2.d3, global2.d3);\n })(exports, function(exports2, d3Geo, d3Array) {\n \"use strict\";\n var abs = Math.abs;\n var atan = Math.atan;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var exp = Math.exp;\n var floor = Math.floor;\n var log = Math.log;\n var max = Math.max;\n var min = Math.min;\n var pow = Math.pow;\n var round = Math.round;\n var sign = Math.sign || function(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n };\n var sin = Math.sin;\n var tan = Math.tan;\n var epsilon = 1e-6;\n var epsilon22 = 1e-12;\n var pi = Math.PI;\n var halfPi = pi / 2;\n var quarterPi = pi / 4;\n var sqrt1_2 = Math.SQRT1_2;\n var sqrt2 = sqrt(2);\n var sqrtPi = sqrt(pi);\n var tau = pi * 2;\n var degrees3 = 180 / pi;\n var radians2 = pi / 180;\n function sinci(x) {\n return x ? x / Math.sin(x) : 1;\n }\n function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n }\n function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n }\n function sqrt(x) {\n return x > 0 ? Math.sqrt(x) : 0;\n }\n function tanh2(x) {\n x = exp(2 * x);\n return (x - 1) / (x + 1);\n }\n function sinh2(x) {\n return (exp(x) - exp(-x)) / 2;\n }\n function cosh2(x) {\n return (exp(x) + exp(-x)) / 2;\n }\n function arsinh(x) {\n return log(x + sqrt(x * x + 1));\n }\n function arcosh(x) {\n return log(x + sqrt(x * x - 1));\n }\n function airyRaw(beta) {\n var tanBeta_2 = tan(beta / 2), b = 2 * log(cos(beta / 2)) / (tanBeta_2 * tanBeta_2);\n function forward(x, y) {\n var cosx = cos(x), cosy = cos(y), siny = sin(y), cosz = cosy * cosx, k2 = -((1 - cosz ? log((1 + cosz) / 2) / (1 - cosz) : -0.5) + b / (1 + cosz));\n return [k2 * cosy * sin(x), k2 * siny];\n }\n forward.invert = function(x, y) {\n var r = sqrt(x * x + y * y), z = -beta / 2, i = 50, delta;\n if (!r) return [0, 0];\n do {\n var z_2 = z / 2, cosz_2 = cos(z_2), sinz_2 = sin(z_2), tanz_2 = sinz_2 / cosz_2, lnsecz_2 = -log(abs(cosz_2));\n z -= delta = (2 / tanz_2 * lnsecz_2 - b * tanz_2 - r) / (-lnsecz_2 / (sinz_2 * sinz_2) + 1 - b / (2 * cosz_2 * cosz_2)) * (cosz_2 < 0 ? 0.7 : 1);\n } while (abs(delta) > epsilon && --i > 0);\n var sinz = sin(z);\n return [atan2(x * sinz, r * cos(z)), asin(y * sinz / r)];\n };\n return forward;\n }\n function airy() {\n var beta = halfPi, m = d3Geo.geoProjectionMutator(airyRaw), p = m(beta);\n p.radius = function(_) {\n return arguments.length ? m(beta = _ * radians2) : beta * degrees3;\n };\n return p.scale(179.976).clipAngle(147);\n }\n function aitoffRaw(x, y) {\n var cosy = cos(y), sincia = sinci(acos(cosy * cos(x /= 2)));\n return [2 * cosy * sin(x) * sincia, sin(y) * sincia];\n }\n aitoffRaw.invert = function(x, y) {\n if (x * x + 4 * y * y > pi * pi + epsilon) return;\n var x12 = x, y12 = y, i = 25;\n do {\n var sinx = sin(x12), sinx_2 = sin(x12 / 2), cosx_2 = cos(x12 / 2), siny = sin(y12), cosy = cos(y12), sin_2y = sin(2 * y12), sin2y = siny * siny, cos2y = cosy * cosy, sin2x_2 = sinx_2 * sinx_2, c = 1 - cos2y * cosx_2 * cosx_2, e = c ? acos(cosy * cosx_2) * sqrt(f = 1 / c) : f = 0, f, fx = 2 * e * cosy * sinx_2 - x, fy = e * siny - y, dxdx = f * (cos2y * sin2x_2 + e * cosy * cosx_2 * sin2y), dxdy = f * (0.5 * sinx * sin_2y - e * 2 * siny * sinx_2), dydx = f * 0.25 * (sin_2y * sinx_2 - e * siny * cos2y * sinx), dydy = f * (sin2y * cosx_2 + e * sin2x_2 * cosy), z = dxdy * dydx - dydy * dxdx;\n if (!z) break;\n var dx = (fy * dxdy - fx * dydy) / z, dy = (fx * dydx - fy * dxdx) / z;\n x12 -= dx, y12 -= dy;\n } while ((abs(dx) > epsilon || abs(dy) > epsilon) && --i > 0);\n return [x12, y12];\n };\n function aitoff() {\n return d3Geo.geoProjection(aitoffRaw).scale(152.63);\n }\n function armadilloRaw(phi02) {\n var sinPhi0 = sin(phi02), cosPhi0 = cos(phi02), sPhi0 = phi02 >= 0 ? 1 : -1, tanPhi0 = tan(sPhi0 * phi02), k2 = (1 + sinPhi0 - cosPhi0) / 2;\n function forward(lambda, phi) {\n var cosPhi = cos(phi), cosLambda = cos(lambda /= 2);\n return [\n (1 + cosPhi) * sin(lambda),\n (sPhi0 * phi > -atan2(cosLambda, tanPhi0) - 1e-3 ? 0 : -sPhi0 * 10) + k2 + sin(phi) * cosPhi0 - (1 + cosPhi) * sinPhi0 * cosLambda\n // TODO D3 core should allow null or [NaN, NaN] to be returned.\n ];\n }\n forward.invert = function(x, y) {\n var lambda = 0, phi = 0, i = 50;\n do {\n var cosLambda = cos(lambda), sinLambda = sin(lambda), cosPhi = cos(phi), sinPhi = sin(phi), A3 = 1 + cosPhi, fx = A3 * sinLambda - x, fy = k2 + sinPhi * cosPhi0 - A3 * sinPhi0 * cosLambda - y, dxdLambda = A3 * cosLambda / 2, dxdPhi = -sinLambda * sinPhi, dydLambda = sinPhi0 * A3 * sinLambda / 2, dydPhi = cosPhi0 * cosPhi + sinPhi0 * cosLambda * sinPhi, denominator = dxdPhi * dydLambda - dydPhi * dxdLambda, dLambda = (fy * dxdPhi - fx * dydPhi) / denominator / 2, dPhi = (fx * dydLambda - fy * dxdLambda) / denominator;\n if (abs(dPhi) > 2) dPhi /= 2;\n lambda -= dLambda, phi -= dPhi;\n } while ((abs(dLambda) > epsilon || abs(dPhi) > epsilon) && --i > 0);\n return sPhi0 * phi > -atan2(cos(lambda), tanPhi0) - 1e-3 ? [lambda * 2, phi] : null;\n };\n return forward;\n }\n function armadillo() {\n var phi02 = 20 * radians2, sPhi0 = phi02 >= 0 ? 1 : -1, tanPhi0 = tan(sPhi0 * phi02), m = d3Geo.geoProjectionMutator(armadilloRaw), p = m(phi02), stream_ = p.stream;\n p.parallel = function(_) {\n if (!arguments.length) return phi02 * degrees3;\n tanPhi0 = tan((sPhi0 = (phi02 = _ * radians2) >= 0 ? 1 : -1) * phi02);\n return m(phi02);\n };\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = stream_(stream), sphereStream = (p.rotate([0, 0]), stream_(stream)), precision = p.precision();\n p.rotate(rotate);\n rotateStream.sphere = function() {\n sphereStream.polygonStart(), sphereStream.lineStart();\n for (var lambda = sPhi0 * -180; sPhi0 * lambda < 180; lambda += sPhi0 * 90)\n sphereStream.point(lambda, sPhi0 * 90);\n if (phi02) while (sPhi0 * (lambda -= 3 * sPhi0 * precision) >= -180) {\n sphereStream.point(lambda, sPhi0 * -atan2(cos(lambda * radians2 / 2), tanPhi0) * degrees3);\n }\n sphereStream.lineEnd(), sphereStream.polygonEnd();\n };\n return rotateStream;\n };\n return p.scale(218.695).center([0, 28.0974]);\n }\n function augustRaw(lambda, phi) {\n var tanPhi = tan(phi / 2), k2 = sqrt(1 - tanPhi * tanPhi), c = 1 + k2 * cos(lambda /= 2), x = sin(lambda) * k2 / c, y = tanPhi / c, x2 = x * x, y2 = y * y;\n return [\n 4 / 3 * x * (3 + x2 - 3 * y2),\n 4 / 3 * y * (3 + 3 * x2 - y2)\n ];\n }\n augustRaw.invert = function(x, y) {\n x *= 3 / 8, y *= 3 / 8;\n if (!x && abs(y) > 1) return null;\n var x2 = x * x, y2 = y * y, s = 1 + x2 + y2, sin3Eta = sqrt((s - sqrt(s * s - 4 * y * y)) / 2), eta = asin(sin3Eta) / 3, xi = sin3Eta ? arcosh(abs(y / sin3Eta)) / 3 : arsinh(abs(x)) / 3, cosEta = cos(eta), coshXi = cosh2(xi), d = coshXi * coshXi - cosEta * cosEta;\n return [\n sign(x) * 2 * atan2(sinh2(xi) * cosEta, 0.25 - d),\n sign(y) * 2 * atan2(coshXi * sin(eta), 0.25 + d)\n ];\n };\n function august() {\n return d3Geo.geoProjection(augustRaw).scale(66.1603);\n }\n var sqrt8 = sqrt(8), phi0 = log(1 + sqrt2);\n function bakerRaw(lambda, phi) {\n var phi02 = abs(phi);\n return phi02 < quarterPi ? [lambda, log(tan(quarterPi + phi / 2))] : [lambda * cos(phi02) * (2 * sqrt2 - 1 / sin(phi02)), sign(phi) * (2 * sqrt2 * (phi02 - quarterPi) - log(tan(phi02 / 2)))];\n }\n bakerRaw.invert = function(x, y) {\n if ((y02 = abs(y)) < phi0) return [x, 2 * atan(exp(y)) - halfPi];\n var phi = quarterPi, i = 25, delta, y02;\n do {\n var cosPhi_2 = cos(phi / 2), tanPhi_2 = tan(phi / 2);\n phi -= delta = (sqrt8 * (phi - quarterPi) - log(tanPhi_2) - y02) / (sqrt8 - cosPhi_2 * cosPhi_2 / (2 * tanPhi_2));\n } while (abs(delta) > epsilon22 && --i > 0);\n return [x / (cos(phi) * (sqrt8 - 1 / sin(phi))), sign(y) * phi];\n };\n function baker() {\n return d3Geo.geoProjection(bakerRaw).scale(112.314);\n }\n function berghausRaw(lobes2) {\n var k2 = 2 * pi / lobes2;\n function forward(lambda, phi) {\n var p = d3Geo.geoAzimuthalEquidistantRaw(lambda, phi);\n if (abs(lambda) > halfPi) {\n var theta = atan2(p[1], p[0]), r = sqrt(p[0] * p[0] + p[1] * p[1]), theta0 = k2 * round((theta - halfPi) / k2) + halfPi, alpha = atan2(sin(theta -= theta0), 2 - cos(theta));\n theta = theta0 + asin(pi / r * sin(alpha)) - alpha;\n p[0] = r * cos(theta);\n p[1] = r * sin(theta);\n }\n return p;\n }\n forward.invert = function(x, y) {\n var r = sqrt(x * x + y * y);\n if (r > halfPi) {\n var theta = atan2(y, x), theta0 = k2 * round((theta - halfPi) / k2) + halfPi, s = theta > theta0 ? -1 : 1, A3 = r * cos(theta0 - theta), cotAlpha = 1 / tan(s * acos((A3 - pi) / sqrt(pi * (pi - 2 * A3) + r * r)));\n theta = theta0 + 2 * atan((cotAlpha + s * sqrt(cotAlpha * cotAlpha - 3)) / 3);\n x = r * cos(theta), y = r * sin(theta);\n }\n return d3Geo.geoAzimuthalEquidistantRaw.invert(x, y);\n };\n return forward;\n }\n function berghaus() {\n var lobes2 = 5, m = d3Geo.geoProjectionMutator(berghausRaw), p = m(lobes2), projectionStream = p.stream, epsilon$$1 = 0.01, cr = -cos(epsilon$$1 * radians2), sr = sin(epsilon$$1 * radians2);\n p.lobes = function(_) {\n return arguments.length ? m(lobes2 = +_) : lobes2;\n };\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = projectionStream(stream), sphereStream = (p.rotate([0, 0]), projectionStream(stream));\n p.rotate(rotate);\n rotateStream.sphere = function() {\n sphereStream.polygonStart(), sphereStream.lineStart();\n for (var i = 0, delta = 360 / lobes2, delta0 = 2 * pi / lobes2, phi = 90 - 180 / lobes2, phi02 = halfPi; i < lobes2; ++i, phi -= delta, phi02 -= delta0) {\n sphereStream.point(atan2(sr * cos(phi02), cr) * degrees3, asin(sr * sin(phi02)) * degrees3);\n if (phi < -90) {\n sphereStream.point(-90, -180 - phi - epsilon$$1);\n sphereStream.point(-90, -180 - phi + epsilon$$1);\n } else {\n sphereStream.point(90, phi + epsilon$$1);\n sphereStream.point(90, phi - epsilon$$1);\n }\n }\n sphereStream.lineEnd(), sphereStream.polygonEnd();\n };\n return rotateStream;\n };\n return p.scale(87.8076).center([0, 17.1875]).clipAngle(180 - 1e-3);\n }\n function hammerRaw(A3, B3) {\n if (arguments.length < 2) B3 = A3;\n if (B3 === 1) return d3Geo.geoAzimuthalEqualAreaRaw;\n if (B3 === Infinity) return hammerQuarticAuthalicRaw;\n function forward(lambda, phi) {\n var coordinates = d3Geo.geoAzimuthalEqualAreaRaw(lambda / B3, phi);\n coordinates[0] *= A3;\n return coordinates;\n }\n forward.invert = function(x, y) {\n var coordinates = d3Geo.geoAzimuthalEqualAreaRaw.invert(x / A3, y);\n coordinates[0] *= B3;\n return coordinates;\n };\n return forward;\n }\n function hammerQuarticAuthalicRaw(lambda, phi) {\n return [\n lambda * cos(phi) / cos(phi /= 2),\n 2 * sin(phi)\n ];\n }\n hammerQuarticAuthalicRaw.invert = function(x, y) {\n var phi = 2 * asin(y / 2);\n return [\n x * cos(phi / 2) / cos(phi),\n phi\n ];\n };\n function hammer() {\n var B3 = 2, m = d3Geo.geoProjectionMutator(hammerRaw), p = m(B3);\n p.coefficient = function(_) {\n if (!arguments.length) return B3;\n return m(B3 = +_);\n };\n return p.scale(169.529);\n }\n function solve(f, y, x) {\n var steps = 100, delta, f0, f1;\n x = x === void 0 ? 0 : +x;\n y = +y;\n do {\n f0 = f(x);\n f1 = f(x + epsilon);\n if (f0 === f1) f1 = f0 + epsilon;\n x -= delta = -1 * epsilon * (f0 - y) / (f0 - f1);\n } while (steps-- > 0 && abs(delta) > epsilon);\n return steps < 0 ? NaN : x;\n }\n function solve2d(f, MAX_ITERATIONS, eps) {\n if (MAX_ITERATIONS === void 0) MAX_ITERATIONS = 40;\n if (eps === void 0) eps = epsilon22;\n return function(x, y, a, b) {\n var err2, da, db;\n a = a === void 0 ? 0 : +a;\n b = b === void 0 ? 0 : +b;\n for (var i = 0; i < MAX_ITERATIONS; i++) {\n var p = f(a, b), tx = p[0] - x, ty = p[1] - y;\n if (abs(tx) < eps && abs(ty) < eps) break;\n var h = tx * tx + ty * ty;\n if (h > err2) {\n a -= da /= 2;\n b -= db /= 2;\n continue;\n }\n err2 = h;\n var ea = (a > 0 ? -1 : 1) * eps, eb = (b > 0 ? -1 : 1) * eps, pa = f(a + ea, b), pb = f(a, b + eb), dxa = (pa[0] - p[0]) / ea, dya = (pa[1] - p[1]) / ea, dxb = (pb[0] - p[0]) / eb, dyb = (pb[1] - p[1]) / eb, D2 = dyb * dxa - dya * dxb, l = (abs(D2) < 0.5 ? 0.5 : 1) / D2;\n da = (ty * dxb - tx * dyb) * l;\n db = (tx * dya - ty * dxa) * l;\n a += da;\n b += db;\n if (abs(da) < eps && abs(db) < eps) break;\n }\n return [a, b];\n };\n }\n function bertin1953Raw() {\n var hammer$$1 = hammerRaw(1.68, 2), fu = 1.4, k2 = 12;\n function forward(lambda, phi) {\n if (lambda + phi < -fu) {\n var u = (lambda - phi + 1.6) * (lambda + phi + fu) / 8;\n lambda += u;\n phi -= 0.8 * u * sin(phi + pi / 2);\n }\n var r = hammer$$1(lambda, phi);\n var d = (1 - cos(lambda * phi)) / k2;\n if (r[1] < 0) {\n r[0] *= 1 + d;\n }\n if (r[1] > 0) {\n r[1] *= 1 + d / 1.5 * r[0] * r[0];\n }\n return r;\n }\n forward.invert = solve2d(forward);\n return forward;\n }\n function bertin() {\n return d3Geo.geoProjection(bertin1953Raw()).rotate([-16.5, -42]).scale(176.57).center([7.93, 0.09]);\n }\n function mollweideBromleyTheta(cp, phi) {\n var cpsinPhi = cp * sin(phi), i = 30, delta;\n do\n phi -= delta = (phi + sin(phi) - cpsinPhi) / (1 + cos(phi));\n while (abs(delta) > epsilon && --i > 0);\n return phi / 2;\n }\n function mollweideBromleyRaw(cx, cy, cp) {\n function forward(lambda, phi) {\n return [cx * lambda * cos(phi = mollweideBromleyTheta(cp, phi)), cy * sin(phi)];\n }\n forward.invert = function(x, y) {\n return y = asin(y / cy), [x / (cx * cos(y)), asin((2 * y + sin(2 * y)) / cp)];\n };\n return forward;\n }\n var mollweideRaw = mollweideBromleyRaw(sqrt2 / halfPi, sqrt2, pi);\n function mollweide() {\n return d3Geo.geoProjection(mollweideRaw).scale(169.529);\n }\n var k = 2.00276, w = 1.11072;\n function boggsRaw(lambda, phi) {\n var theta = mollweideBromleyTheta(pi, phi);\n return [k * lambda / (1 / cos(phi) + w / cos(theta)), (phi + sqrt2 * sin(theta)) / k];\n }\n boggsRaw.invert = function(x, y) {\n var ky = k * y, theta = y < 0 ? -quarterPi : quarterPi, i = 25, delta, phi;\n do {\n phi = ky - sqrt2 * sin(theta);\n theta -= delta = (sin(2 * theta) + 2 * theta - pi * sin(phi)) / (2 * cos(2 * theta) + 2 + pi * cos(phi) * sqrt2 * cos(theta));\n } while (abs(delta) > epsilon && --i > 0);\n phi = ky - sqrt2 * sin(theta);\n return [x * (1 / cos(phi) + w / cos(theta)) / k, phi];\n };\n function boggs() {\n return d3Geo.geoProjection(boggsRaw).scale(160.857);\n }\n function parallel1(projectAt) {\n var phi02 = 0, m = d3Geo.geoProjectionMutator(projectAt), p = m(phi02);\n p.parallel = function(_) {\n return arguments.length ? m(phi02 = _ * radians2) : phi02 * degrees3;\n };\n return p;\n }\n function sinusoidalRaw(lambda, phi) {\n return [lambda * cos(phi), phi];\n }\n sinusoidalRaw.invert = function(x, y) {\n return [x / cos(y), y];\n };\n function sinusoidal() {\n return d3Geo.geoProjection(sinusoidalRaw).scale(152.63);\n }\n function bonneRaw(phi02) {\n if (!phi02) return sinusoidalRaw;\n var cotPhi0 = 1 / tan(phi02);\n function forward(lambda, phi) {\n var rho = cotPhi0 + phi02 - phi, e = rho ? lambda * cos(phi) / rho : rho;\n return [rho * sin(e), cotPhi0 - rho * cos(e)];\n }\n forward.invert = function(x, y) {\n var rho = sqrt(x * x + (y = cotPhi0 - y) * y), phi = cotPhi0 + phi02 - rho;\n return [rho / cos(phi) * atan2(x, y), phi];\n };\n return forward;\n }\n function bonne() {\n return parallel1(bonneRaw).scale(123.082).center([0, 26.1441]).parallel(45);\n }\n function bottomleyRaw(sinPsi) {\n function forward(lambda, phi) {\n var rho = halfPi - phi, eta = rho ? lambda * sinPsi * sin(rho) / rho : rho;\n return [rho * sin(eta) / sinPsi, halfPi - rho * cos(eta)];\n }\n forward.invert = function(x, y) {\n var x12 = x * sinPsi, y12 = halfPi - y, rho = sqrt(x12 * x12 + y12 * y12), eta = atan2(x12, y12);\n return [(rho ? rho / sin(rho) : 1) * eta / sinPsi, halfPi - rho];\n };\n return forward;\n }\n function bottomley() {\n var sinPsi = 0.5, m = d3Geo.geoProjectionMutator(bottomleyRaw), p = m(sinPsi);\n p.fraction = function(_) {\n return arguments.length ? m(sinPsi = +_) : sinPsi;\n };\n return p.scale(158.837);\n }\n var bromleyRaw = mollweideBromleyRaw(1, 4 / pi, pi);\n function bromley() {\n return d3Geo.geoProjection(bromleyRaw).scale(152.63);\n }\n function distance(dPhi, c1, s1, c2, s2, dLambda) {\n var cosdLambda = cos(dLambda), r;\n if (abs(dPhi) > 1 || abs(dLambda) > 1) {\n r = acos(s1 * s2 + c1 * c2 * cosdLambda);\n } else {\n var sindPhi = sin(dPhi / 2), sindLambda = sin(dLambda / 2);\n r = 2 * asin(sqrt(sindPhi * sindPhi + c1 * c2 * sindLambda * sindLambda));\n }\n return abs(r) > epsilon ? [r, atan2(c2 * sin(dLambda), c1 * s2 - s1 * c2 * cosdLambda)] : [0, 0];\n }\n function angle(b, c, a) {\n return acos((b * b + c * c - a * a) / (2 * b * c));\n }\n function longitude(lambda) {\n return lambda - 2 * pi * floor((lambda + pi) / (2 * pi));\n }\n function chamberlinRaw(p0, p1, p2) {\n var points2 = [\n [p0[0], p0[1], sin(p0[1]), cos(p0[1])],\n [p1[0], p1[1], sin(p1[1]), cos(p1[1])],\n [p2[0], p2[1], sin(p2[1]), cos(p2[1])]\n ];\n for (var a = points2[2], b, i = 0; i < 3; ++i, a = b) {\n b = points2[i];\n a.v = distance(b[1] - a[1], a[3], a[2], b[3], b[2], b[0] - a[0]);\n a.point = [0, 0];\n }\n var beta0 = angle(points2[0].v[0], points2[2].v[0], points2[1].v[0]), beta1 = angle(points2[0].v[0], points2[1].v[0], points2[2].v[0]), beta2 = pi - beta0;\n points2[2].point[1] = 0;\n points2[0].point[0] = -(points2[1].point[0] = points2[0].v[0] / 2);\n var mean = [\n points2[2].point[0] = points2[0].point[0] + points2[2].v[0] * cos(beta0),\n 2 * (points2[0].point[1] = points2[1].point[1] = points2[2].v[0] * sin(beta0))\n ];\n function forward(lambda, phi) {\n var sinPhi = sin(phi), cosPhi = cos(phi), v = new Array(3), i2;\n for (i2 = 0; i2 < 3; ++i2) {\n var p = points2[i2];\n v[i2] = distance(phi - p[1], p[3], p[2], cosPhi, sinPhi, lambda - p[0]);\n if (!v[i2][0]) return p.point;\n v[i2][1] = longitude(v[i2][1] - p.v[1]);\n }\n var point = mean.slice();\n for (i2 = 0; i2 < 3; ++i2) {\n var j = i2 == 2 ? 0 : i2 + 1;\n var a2 = angle(points2[i2].v[0], v[i2][0], v[j][0]);\n if (v[i2][1] < 0) a2 = -a2;\n if (!i2) {\n point[0] += v[i2][0] * cos(a2);\n point[1] -= v[i2][0] * sin(a2);\n } else if (i2 == 1) {\n a2 = beta1 - a2;\n point[0] -= v[i2][0] * cos(a2);\n point[1] -= v[i2][0] * sin(a2);\n } else {\n a2 = beta2 - a2;\n point[0] += v[i2][0] * cos(a2);\n point[1] += v[i2][0] * sin(a2);\n }\n }\n point[0] /= 3, point[1] /= 3;\n return point;\n }\n return forward;\n }\n function pointRadians(p) {\n return p[0] *= radians2, p[1] *= radians2, p;\n }\n function chamberlinAfrica() {\n return chamberlin([0, 22], [45, 22], [22.5, -22]).scale(380).center([22.5, 2]);\n }\n function chamberlin(p0, p1, p2) {\n var c = d3Geo.geoCentroid({ type: \"MultiPoint\", coordinates: [p0, p1, p2] }), R = [-c[0], -c[1]], r = d3Geo.geoRotation(R), f = chamberlinRaw(pointRadians(r(p0)), pointRadians(r(p1)), pointRadians(r(p2)));\n f.invert = solve2d(f);\n var p = d3Geo.geoProjection(f).rotate(R), center = p.center;\n delete p.rotate;\n p.center = function(_) {\n return arguments.length ? center(r(_)) : r.invert(center());\n };\n return p.clipAngle(90);\n }\n function collignonRaw(lambda, phi) {\n var alpha = sqrt(1 - sin(phi));\n return [2 / sqrtPi * lambda * alpha, sqrtPi * (1 - alpha)];\n }\n collignonRaw.invert = function(x, y) {\n var lambda = (lambda = y / sqrtPi - 1) * lambda;\n return [lambda > 0 ? x * sqrt(pi / lambda) / 2 : 0, asin(1 - lambda)];\n };\n function collignon() {\n return d3Geo.geoProjection(collignonRaw).scale(95.6464).center([0, 30]);\n }\n function craigRaw(phi02) {\n var tanPhi0 = tan(phi02);\n function forward(lambda, phi) {\n return [lambda, (lambda ? lambda / sin(lambda) : 1) * (sin(phi) * cos(lambda) - tanPhi0 * cos(phi))];\n }\n forward.invert = tanPhi0 ? function(x, y) {\n if (x) y *= sin(x) / x;\n var cosLambda = cos(x);\n return [x, 2 * atan2(sqrt(cosLambda * cosLambda + tanPhi0 * tanPhi0 - y * y) - cosLambda, tanPhi0 - y)];\n } : function(x, y) {\n return [x, asin(x ? y * tan(x) / x : y)];\n };\n return forward;\n }\n function craig() {\n return parallel1(craigRaw).scale(249.828).clipAngle(90);\n }\n var sqrt3 = sqrt(3);\n function crasterRaw(lambda, phi) {\n return [sqrt3 * lambda * (2 * cos(2 * phi / 3) - 1) / sqrtPi, sqrt3 * sqrtPi * sin(phi / 3)];\n }\n crasterRaw.invert = function(x, y) {\n var phi = 3 * asin(y / (sqrt3 * sqrtPi));\n return [sqrtPi * x / (sqrt3 * (2 * cos(2 * phi / 3) - 1)), phi];\n };\n function craster() {\n return d3Geo.geoProjection(crasterRaw).scale(156.19);\n }\n function cylindricalEqualAreaRaw(phi02) {\n var cosPhi0 = cos(phi02);\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n return forward;\n }\n function cylindricalEqualArea() {\n return parallel1(cylindricalEqualAreaRaw).parallel(38.58).scale(195.044);\n }\n function cylindricalStereographicRaw(phi02) {\n var cosPhi0 = cos(phi02);\n function forward(lambda, phi) {\n return [lambda * cosPhi0, (1 + cosPhi0) * tan(phi / 2)];\n }\n forward.invert = function(x, y) {\n return [x / cosPhi0, atan(y / (1 + cosPhi0)) * 2];\n };\n return forward;\n }\n function cylindricalStereographic() {\n return parallel1(cylindricalStereographicRaw).scale(124.75);\n }\n function eckert1Raw(lambda, phi) {\n var alpha = sqrt(8 / (3 * pi));\n return [\n alpha * lambda * (1 - abs(phi) / pi),\n alpha * phi\n ];\n }\n eckert1Raw.invert = function(x, y) {\n var alpha = sqrt(8 / (3 * pi)), phi = y / alpha;\n return [\n x / (alpha * (1 - abs(phi) / pi)),\n phi\n ];\n };\n function eckert1() {\n return d3Geo.geoProjection(eckert1Raw).scale(165.664);\n }\n function eckert2Raw(lambda, phi) {\n var alpha = sqrt(4 - 3 * sin(abs(phi)));\n return [\n 2 / sqrt(6 * pi) * lambda * alpha,\n sign(phi) * sqrt(2 * pi / 3) * (2 - alpha)\n ];\n }\n eckert2Raw.invert = function(x, y) {\n var alpha = 2 - abs(y) / sqrt(2 * pi / 3);\n return [\n x * sqrt(6 * pi) / (2 * alpha),\n sign(y) * asin((4 - alpha * alpha) / 3)\n ];\n };\n function eckert2() {\n return d3Geo.geoProjection(eckert2Raw).scale(165.664);\n }\n function eckert3Raw(lambda, phi) {\n var k2 = sqrt(pi * (4 + pi));\n return [\n 2 / k2 * lambda * (1 + sqrt(1 - 4 * phi * phi / (pi * pi))),\n 4 / k2 * phi\n ];\n }\n eckert3Raw.invert = function(x, y) {\n var k2 = sqrt(pi * (4 + pi)) / 2;\n return [\n x * k2 / (1 + sqrt(1 - y * y * (4 + pi) / (4 * pi))),\n y * k2 / 2\n ];\n };\n function eckert3() {\n return d3Geo.geoProjection(eckert3Raw).scale(180.739);\n }\n function eckert4Raw(lambda, phi) {\n var k2 = (2 + halfPi) * sin(phi);\n phi /= 2;\n for (var i = 0, delta = Infinity; i < 10 && abs(delta) > epsilon; i++) {\n var cosPhi = cos(phi);\n phi -= delta = (phi + sin(phi) * (cosPhi + 2) - k2) / (2 * cosPhi * (1 + cosPhi));\n }\n return [\n 2 / sqrt(pi * (4 + pi)) * lambda * (1 + cos(phi)),\n 2 * sqrt(pi / (4 + pi)) * sin(phi)\n ];\n }\n eckert4Raw.invert = function(x, y) {\n var A3 = y * sqrt((4 + pi) / pi) / 2, k2 = asin(A3), c = cos(k2);\n return [\n x / (2 / sqrt(pi * (4 + pi)) * (1 + c)),\n asin((k2 + A3 * (c + 2)) / (2 + halfPi))\n ];\n };\n function eckert4() {\n return d3Geo.geoProjection(eckert4Raw).scale(180.739);\n }\n function eckert5Raw(lambda, phi) {\n return [\n lambda * (1 + cos(phi)) / sqrt(2 + pi),\n 2 * phi / sqrt(2 + pi)\n ];\n }\n eckert5Raw.invert = function(x, y) {\n var k2 = sqrt(2 + pi), phi = y * k2 / 2;\n return [\n k2 * x / (1 + cos(phi)),\n phi\n ];\n };\n function eckert5() {\n return d3Geo.geoProjection(eckert5Raw).scale(173.044);\n }\n function eckert6Raw(lambda, phi) {\n var k2 = (1 + halfPi) * sin(phi);\n for (var i = 0, delta = Infinity; i < 10 && abs(delta) > epsilon; i++) {\n phi -= delta = (phi + sin(phi) - k2) / (1 + cos(phi));\n }\n k2 = sqrt(2 + pi);\n return [\n lambda * (1 + cos(phi)) / k2,\n 2 * phi / k2\n ];\n }\n eckert6Raw.invert = function(x, y) {\n var j = 1 + halfPi, k2 = sqrt(j / 2);\n return [\n x * 2 * k2 / (1 + cos(y *= k2)),\n asin((y + sin(y)) / j)\n ];\n };\n function eckert6() {\n return d3Geo.geoProjection(eckert6Raw).scale(173.044);\n }\n var eisenlohrK = 3 + 2 * sqrt2;\n function eisenlohrRaw(lambda, phi) {\n var s0 = sin(lambda /= 2), c0 = cos(lambda), k2 = sqrt(cos(phi)), c1 = cos(phi /= 2), t = sin(phi) / (c1 + sqrt2 * c0 * k2), c = sqrt(2 / (1 + t * t)), v = sqrt((sqrt2 * c1 + (c0 + s0) * k2) / (sqrt2 * c1 + (c0 - s0) * k2));\n return [\n eisenlohrK * (c * (v - 1 / v) - 2 * log(v)),\n eisenlohrK * (c * t * (v + 1 / v) - 2 * atan(t))\n ];\n }\n eisenlohrRaw.invert = function(x, y) {\n if (!(p = augustRaw.invert(x / 1.2, y * 1.065))) return null;\n var lambda = p[0], phi = p[1], i = 20, p;\n x /= eisenlohrK, y /= eisenlohrK;\n do {\n var _0 = lambda / 2, _1 = phi / 2, s0 = sin(_0), c0 = cos(_0), s1 = sin(_1), c1 = cos(_1), cos1 = cos(phi), k2 = sqrt(cos1), t = s1 / (c1 + sqrt2 * c0 * k2), t22 = t * t, c = sqrt(2 / (1 + t22)), v0 = sqrt2 * c1 + (c0 + s0) * k2, v1 = sqrt2 * c1 + (c0 - s0) * k2, v2 = v0 / v1, v = sqrt(v2), vm1v = v - 1 / v, vp1v = v + 1 / v, fx = c * vm1v - 2 * log(v) - x, fy = c * t * vp1v - 2 * atan(t) - y, deltatDeltaLambda = s1 && sqrt1_2 * k2 * s0 * t22 / s1, deltatDeltaPhi = (sqrt2 * c0 * c1 + k2) / (2 * (c1 + sqrt2 * c0 * k2) * (c1 + sqrt2 * c0 * k2) * k2), deltacDeltat = -0.5 * t * c * c * c, deltacDeltaLambda = deltacDeltat * deltatDeltaLambda, deltacDeltaPhi = deltacDeltat * deltatDeltaPhi, A3 = (A3 = 2 * c1 + sqrt2 * k2 * (c0 - s0)) * A3 * v, deltavDeltaLambda = (sqrt2 * c0 * c1 * k2 + cos1) / A3, deltavDeltaPhi = -(sqrt2 * s0 * s1) / (k2 * A3), deltaxDeltaLambda = vm1v * deltacDeltaLambda - 2 * deltavDeltaLambda / v + c * (deltavDeltaLambda + deltavDeltaLambda / v2), deltaxDeltaPhi = vm1v * deltacDeltaPhi - 2 * deltavDeltaPhi / v + c * (deltavDeltaPhi + deltavDeltaPhi / v2), deltayDeltaLambda = t * vp1v * deltacDeltaLambda - 2 * deltatDeltaLambda / (1 + t22) + c * vp1v * deltatDeltaLambda + c * t * (deltavDeltaLambda - deltavDeltaLambda / v2), deltayDeltaPhi = t * vp1v * deltacDeltaPhi - 2 * deltatDeltaPhi / (1 + t22) + c * vp1v * deltatDeltaPhi + c * t * (deltavDeltaPhi - deltavDeltaPhi / v2), denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda;\n if (!denominator) break;\n var deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator, deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n lambda -= deltaLambda;\n phi = max(-halfPi, min(halfPi, phi - deltaPhi));\n } while ((abs(deltaLambda) > epsilon || abs(deltaPhi) > epsilon) && --i > 0);\n return abs(abs(phi) - halfPi) < epsilon ? [0, phi] : i && [lambda, phi];\n };\n function eisenlohr() {\n return d3Geo.geoProjection(eisenlohrRaw).scale(62.5271);\n }\n var faheyK = cos(35 * radians2);\n function faheyRaw(lambda, phi) {\n var t = tan(phi / 2);\n return [lambda * faheyK * sqrt(1 - t * t), (1 + faheyK) * t];\n }\n faheyRaw.invert = function(x, y) {\n var t = y / (1 + faheyK);\n return [x && x / (faheyK * sqrt(1 - t * t)), 2 * atan(t)];\n };\n function fahey() {\n return d3Geo.geoProjection(faheyRaw).scale(137.152);\n }\n function foucautRaw(lambda, phi) {\n var k2 = phi / 2, cosk = cos(k2);\n return [2 * lambda / sqrtPi * cos(phi) * cosk * cosk, sqrtPi * tan(k2)];\n }\n foucautRaw.invert = function(x, y) {\n var k2 = atan(y / sqrtPi), cosk = cos(k2), phi = 2 * k2;\n return [x * sqrtPi / 2 / (cos(phi) * cosk * cosk), phi];\n };\n function foucaut() {\n return d3Geo.geoProjection(foucautRaw).scale(135.264);\n }\n function foucautSinusoidalRaw(alpha) {\n var beta = 1 - alpha, equatorial = raw(pi, 0)[0] - raw(-pi, 0)[0], polar = raw(0, halfPi)[1] - raw(0, -halfPi)[1], ratio = sqrt(2 * polar / equatorial);\n function raw(lambda, phi) {\n var cosphi = cos(phi), sinphi = sin(phi);\n return [\n cosphi / (beta + alpha * cosphi) * lambda,\n beta * phi + alpha * sinphi\n ];\n }\n function forward(lambda, phi) {\n var p = raw(lambda, phi);\n return [p[0] * ratio, p[1] / ratio];\n }\n function forwardMeridian(phi) {\n return forward(0, phi)[1];\n }\n forward.invert = function(x, y) {\n var phi = solve(forwardMeridian, y), lambda = x / ratio * (alpha + beta / cos(phi));\n return [lambda, phi];\n };\n return forward;\n }\n function foucautSinusoidal() {\n var alpha = 0.5, m = d3Geo.geoProjectionMutator(foucautSinusoidalRaw), p = m(alpha);\n p.alpha = function(_) {\n return arguments.length ? m(alpha = +_) : alpha;\n };\n return p.scale(168.725);\n }\n function gilbertForward(point) {\n return [point[0] / 2, asin(tan(point[1] / 2 * radians2)) * degrees3];\n }\n function gilbertInvert(point) {\n return [point[0] * 2, 2 * atan(sin(point[1] * radians2)) * degrees3];\n }\n function gilbert(projectionType) {\n if (projectionType == null) projectionType = d3Geo.geoOrthographic;\n var projection = projectionType(), equirectangular = d3Geo.geoEquirectangular().scale(degrees3).precision(0).clipAngle(null).translate([0, 0]);\n function gilbert2(point) {\n return projection(gilbertForward(point));\n }\n if (projection.invert) gilbert2.invert = function(point) {\n return gilbertInvert(projection.invert(point));\n };\n gilbert2.stream = function(stream) {\n var s1 = projection.stream(stream), s0 = equirectangular.stream({\n point: function(lambda, phi) {\n s1.point(lambda / 2, asin(tan(-phi / 2 * radians2)) * degrees3);\n },\n lineStart: function() {\n s1.lineStart();\n },\n lineEnd: function() {\n s1.lineEnd();\n },\n polygonStart: function() {\n s1.polygonStart();\n },\n polygonEnd: function() {\n s1.polygonEnd();\n }\n });\n s0.sphere = s1.sphere;\n return s0;\n };\n function property(name2) {\n gilbert2[name2] = function() {\n return arguments.length ? (projection[name2].apply(projection, arguments), gilbert2) : projection[name2]();\n };\n }\n gilbert2.rotate = function(_) {\n return arguments.length ? (equirectangular.rotate(_), gilbert2) : equirectangular.rotate();\n };\n gilbert2.center = function(_) {\n return arguments.length ? (projection.center(gilbertForward(_)), gilbert2) : gilbertInvert(projection.center());\n };\n property(\"angle\");\n property(\"clipAngle\");\n property(\"clipExtent\");\n property(\"fitExtent\");\n property(\"fitHeight\");\n property(\"fitSize\");\n property(\"fitWidth\");\n property(\"scale\");\n property(\"translate\");\n property(\"precision\");\n return gilbert2.scale(249.5);\n }\n function gingeryRaw(rho, n) {\n var k2 = 2 * pi / n, rho2 = rho * rho;\n function forward(lambda, phi) {\n var p = d3Geo.geoAzimuthalEquidistantRaw(lambda, phi), x = p[0], y = p[1], r2 = x * x + y * y;\n if (r2 > rho2) {\n var r = sqrt(r2), theta = atan2(y, x), theta0 = k2 * round(theta / k2), alpha = theta - theta0, rhoCosAlpha = rho * cos(alpha), k_ = (rho * sin(alpha) - alpha * sin(rhoCosAlpha)) / (halfPi - rhoCosAlpha), s_ = gingeryLength(alpha, k_), e = (pi - rho) / gingeryIntegrate(s_, rhoCosAlpha, pi);\n x = r;\n var i = 50, delta;\n do {\n x -= delta = (rho + gingeryIntegrate(s_, rhoCosAlpha, x) * e - r) / (s_(x) * e);\n } while (abs(delta) > epsilon && --i > 0);\n y = alpha * sin(x);\n if (x < halfPi) y -= k_ * (x - halfPi);\n var s = sin(theta0), c = cos(theta0);\n p[0] = x * c - y * s;\n p[1] = x * s + y * c;\n }\n return p;\n }\n forward.invert = function(x, y) {\n var r2 = x * x + y * y;\n if (r2 > rho2) {\n var r = sqrt(r2), theta = atan2(y, x), theta0 = k2 * round(theta / k2), dTheta = theta - theta0;\n x = r * cos(dTheta);\n y = r * sin(dTheta);\n var x_halfPi = x - halfPi, sinx = sin(x), alpha = y / sinx, delta = x < halfPi ? Infinity : 0, i = 10;\n while (true) {\n var rhosinAlpha = rho * sin(alpha), rhoCosAlpha = rho * cos(alpha), sinRhoCosAlpha = sin(rhoCosAlpha), halfPi_RhoCosAlpha = halfPi - rhoCosAlpha, k_ = (rhosinAlpha - alpha * sinRhoCosAlpha) / halfPi_RhoCosAlpha, s_ = gingeryLength(alpha, k_);\n if (abs(delta) < epsilon22 || !--i) break;\n alpha -= delta = (alpha * sinx - k_ * x_halfPi - y) / (sinx - x_halfPi * 2 * (halfPi_RhoCosAlpha * (rhoCosAlpha + alpha * rhosinAlpha * cos(rhoCosAlpha) - sinRhoCosAlpha) - rhosinAlpha * (rhosinAlpha - alpha * sinRhoCosAlpha)) / (halfPi_RhoCosAlpha * halfPi_RhoCosAlpha));\n }\n r = rho + gingeryIntegrate(s_, rhoCosAlpha, x) * (pi - rho) / gingeryIntegrate(s_, rhoCosAlpha, pi);\n theta = theta0 + alpha;\n x = r * cos(theta);\n y = r * sin(theta);\n }\n return d3Geo.geoAzimuthalEquidistantRaw.invert(x, y);\n };\n return forward;\n }\n function gingeryLength(alpha, k2) {\n return function(x) {\n var y_ = alpha * cos(x);\n if (x < halfPi) y_ -= k2;\n return sqrt(1 + y_ * y_);\n };\n }\n function gingeryIntegrate(f, a, b) {\n var n = 50, h = (b - a) / n, s = f(a) + f(b);\n for (var i = 1, x = a; i < n; ++i) s += 2 * f(x += h);\n return s * 0.5 * h;\n }\n function gingery() {\n var n = 6, rho = 30 * radians2, cRho = cos(rho), sRho = sin(rho), m = d3Geo.geoProjectionMutator(gingeryRaw), p = m(rho, n), stream_ = p.stream, epsilon$$1 = 0.01, cr = -cos(epsilon$$1 * radians2), sr = sin(epsilon$$1 * radians2);\n p.radius = function(_) {\n if (!arguments.length) return rho * degrees3;\n cRho = cos(rho = _ * radians2);\n sRho = sin(rho);\n return m(rho, n);\n };\n p.lobes = function(_) {\n if (!arguments.length) return n;\n return m(rho, n = +_);\n };\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = stream_(stream), sphereStream = (p.rotate([0, 0]), stream_(stream));\n p.rotate(rotate);\n rotateStream.sphere = function() {\n sphereStream.polygonStart(), sphereStream.lineStart();\n for (var i = 0, delta = 2 * pi / n, phi = 0; i < n; ++i, phi -= delta) {\n sphereStream.point(atan2(sr * cos(phi), cr) * degrees3, asin(sr * sin(phi)) * degrees3);\n sphereStream.point(atan2(sRho * cos(phi - delta / 2), cRho) * degrees3, asin(sRho * sin(phi - delta / 2)) * degrees3);\n }\n sphereStream.lineEnd(), sphereStream.polygonEnd();\n };\n return rotateStream;\n };\n return p.rotate([90, -40]).scale(91.7095).clipAngle(180 - 1e-3);\n }\n function ginzburgPolyconicRaw(a, b, c, d, e, f, g, h) {\n if (arguments.length < 8) h = 0;\n function forward(lambda, phi) {\n if (!phi) return [a * lambda / pi, 0];\n var phi2 = phi * phi, xB = a + phi2 * (b + phi2 * (c + phi2 * d)), yB = phi * (e - 1 + phi2 * (f - h + phi2 * g)), m = (xB * xB + yB * yB) / (2 * yB), alpha = lambda * asin(xB / m) / pi;\n return [m * sin(alpha), phi * (1 + phi2 * h) + m * (1 - cos(alpha))];\n }\n forward.invert = function(x, y) {\n var lambda = pi * x / a, phi = y, deltaLambda, deltaPhi, i = 50;\n do {\n var phi2 = phi * phi, xB = a + phi2 * (b + phi2 * (c + phi2 * d)), yB = phi * (e - 1 + phi2 * (f - h + phi2 * g)), p = xB * xB + yB * yB, q = 2 * yB, m = p / q, m2 = m * m, dAlphadLambda = asin(xB / m) / pi, alpha = lambda * dAlphadLambda, xB2 = xB * xB, dxBdPhi = (2 * b + phi2 * (4 * c + phi2 * 6 * d)) * phi, dyBdPhi = e + phi2 * (3 * f + phi2 * 5 * g), dpdPhi = 2 * (xB * dxBdPhi + yB * (dyBdPhi - 1)), dqdPhi = 2 * (dyBdPhi - 1), dmdPhi = (dpdPhi * q - p * dqdPhi) / (q * q), cosAlpha = cos(alpha), sinAlpha = sin(alpha), mcosAlpha = m * cosAlpha, msinAlpha = m * sinAlpha, dAlphadPhi = lambda / pi * (1 / sqrt(1 - xB2 / m2)) * (dxBdPhi * m - xB * dmdPhi) / m2, fx = msinAlpha - x, fy = phi * (1 + phi2 * h) + m - mcosAlpha - y, deltaxDeltaPhi = dmdPhi * sinAlpha + mcosAlpha * dAlphadPhi, deltaxDeltaLambda = mcosAlpha * dAlphadLambda, deltayDeltaPhi = 1 + dmdPhi - (dmdPhi * cosAlpha - msinAlpha * dAlphadPhi), deltayDeltaLambda = msinAlpha * dAlphadLambda, denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda;\n if (!denominator) break;\n lambda -= deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator;\n phi -= deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n } while ((abs(deltaLambda) > epsilon || abs(deltaPhi) > epsilon) && --i > 0);\n return [lambda, phi];\n };\n return forward;\n }\n var ginzburg4Raw = ginzburgPolyconicRaw(2.8284, -1.6988, 0.75432, -0.18071, 1.76003, -0.38914, 0.042555);\n function ginzburg4() {\n return d3Geo.geoProjection(ginzburg4Raw).scale(149.995);\n }\n var ginzburg5Raw = ginzburgPolyconicRaw(2.583819, -0.835827, 0.170354, -0.038094, 1.543313, -0.411435, 0.082742);\n function ginzburg5() {\n return d3Geo.geoProjection(ginzburg5Raw).scale(153.93);\n }\n var ginzburg6Raw = ginzburgPolyconicRaw(5 / 6 * pi, -0.62636, -0.0344, 0, 1.3493, -0.05524, 0, 0.045);\n function ginzburg6() {\n return d3Geo.geoProjection(ginzburg6Raw).scale(130.945);\n }\n function ginzburg8Raw(lambda, phi) {\n var lambda2 = lambda * lambda, phi2 = phi * phi;\n return [\n lambda * (1 - 0.162388 * phi2) * (0.87 - 952426e-9 * lambda2 * lambda2),\n phi * (1 + phi2 / 12)\n ];\n }\n ginzburg8Raw.invert = function(x, y) {\n var lambda = x, phi = y, i = 50, delta;\n do {\n var phi2 = phi * phi;\n phi -= delta = (phi * (1 + phi2 / 12) - y) / (1 + phi2 / 4);\n } while (abs(delta) > epsilon && --i > 0);\n i = 50;\n x /= 1 - 0.162388 * phi2;\n do {\n var lambda4 = (lambda4 = lambda * lambda) * lambda4;\n lambda -= delta = (lambda * (0.87 - 952426e-9 * lambda4) - x) / (0.87 - 476213e-8 * lambda4);\n } while (abs(delta) > epsilon && --i > 0);\n return [lambda, phi];\n };\n function ginzburg8() {\n return d3Geo.geoProjection(ginzburg8Raw).scale(131.747);\n }\n var ginzburg9Raw = ginzburgPolyconicRaw(2.6516, -0.76534, 0.19123, -0.047094, 1.36289, -0.13965, 0.031762);\n function ginzburg9() {\n return d3Geo.geoProjection(ginzburg9Raw).scale(131.087);\n }\n function squareRaw(project) {\n var dx = project(halfPi, 0)[0] - project(-halfPi, 0)[0];\n function projectSquare(lambda, phi) {\n var s = lambda > 0 ? -0.5 : 0.5, point = project(lambda + s * pi, phi);\n point[0] -= s * dx;\n return point;\n }\n if (project.invert) projectSquare.invert = function(x, y) {\n var s = x > 0 ? -0.5 : 0.5, location2 = project.invert(x + s * dx, y), lambda = location2[0] - s * pi;\n if (lambda < -pi) lambda += 2 * pi;\n else if (lambda > pi) lambda -= 2 * pi;\n location2[0] = lambda;\n return location2;\n };\n return projectSquare;\n }\n function gringortenRaw(lambda, phi) {\n var sLambda = sign(lambda), sPhi = sign(phi), cosPhi = cos(phi), x = cos(lambda) * cosPhi, y = sin(lambda) * cosPhi, z = sin(sPhi * phi);\n lambda = abs(atan2(y, z));\n phi = asin(x);\n if (abs(lambda - halfPi) > epsilon) lambda %= halfPi;\n var point = gringortenHexadecant(lambda > pi / 4 ? halfPi - lambda : lambda, phi);\n if (lambda > pi / 4) z = point[0], point[0] = -point[1], point[1] = -z;\n return point[0] *= sLambda, point[1] *= -sPhi, point;\n }\n gringortenRaw.invert = function(x, y) {\n if (abs(x) > 1) x = sign(x) * 2 - x;\n if (abs(y) > 1) y = sign(y) * 2 - y;\n var sx = sign(x), sy = sign(y), x02 = -sx * x, y02 = -sy * y, t = y02 / x02 < 1, p = gringortenHexadecantInvert(t ? y02 : x02, t ? x02 : y02), lambda = p[0], phi = p[1], cosPhi = cos(phi);\n if (t) lambda = -halfPi - lambda;\n return [sx * (atan2(sin(lambda) * cosPhi, -sin(phi)) + pi), sy * asin(cos(lambda) * cosPhi)];\n };\n function gringortenHexadecant(lambda, phi) {\n if (phi === halfPi) return [0, 0];\n var sinPhi = sin(phi), r = sinPhi * sinPhi, r2 = r * r, j = 1 + r2, k2 = 1 + 3 * r2, q = 1 - r2, z = asin(1 / sqrt(j)), v = q + r * j * z, p2 = (1 - sinPhi) / v, p = sqrt(p2), a2 = p2 * j, a = sqrt(a2), h = p * q, x, i;\n if (lambda === 0) return [0, -(h + r * a)];\n var cosPhi = cos(phi), secPhi = 1 / cosPhi, drdPhi = 2 * sinPhi * cosPhi, dvdPhi = (-3 * r + z * k2) * drdPhi, dp2dPhi = (-v * cosPhi - (1 - sinPhi) * dvdPhi) / (v * v), dpdPhi = 0.5 * dp2dPhi / p, dhdPhi = q * dpdPhi - 2 * r * p * drdPhi, dra2dPhi = r * j * dp2dPhi + p2 * k2 * drdPhi, mu = -secPhi * drdPhi, nu = -secPhi * dra2dPhi, zeta = -2 * secPhi * dhdPhi, lambda1 = 4 * lambda / pi, delta;\n if (lambda > 0.222 * pi || phi < pi / 4 && lambda > 0.175 * pi) {\n x = (h + r * sqrt(a2 * (1 + r2) - h * h)) / (1 + r2);\n if (lambda > pi / 4) return [x, x];\n var x12 = x, x02 = 0.5 * x;\n x = 0.5 * (x02 + x12), i = 50;\n do {\n var g = sqrt(a2 - x * x), f = x * (zeta + mu * g) + nu * asin(x / a) - lambda1;\n if (!f) break;\n if (f < 0) x02 = x;\n else x12 = x;\n x = 0.5 * (x02 + x12);\n } while (abs(x12 - x02) > epsilon && --i > 0);\n } else {\n x = epsilon, i = 25;\n do {\n var x2 = x * x, g2 = sqrt(a2 - x2), zetaMug = zeta + mu * g2, f2 = x * zetaMug + nu * asin(x / a) - lambda1, df = zetaMug + (nu - mu * x2) / g2;\n x -= delta = g2 ? f2 / df : 0;\n } while (abs(delta) > epsilon && --i > 0);\n }\n return [x, -h - r * sqrt(a2 - x * x)];\n }\n function gringortenHexadecantInvert(x, y) {\n var x02 = 0, x12 = 1, r = 0.5, i = 50;\n while (true) {\n var r2 = r * r, sinPhi = sqrt(r), z = asin(1 / sqrt(1 + r2)), v = 1 - r2 + r * (1 + r2) * z, p2 = (1 - sinPhi) / v, p = sqrt(p2), a2 = p2 * (1 + r2), h = p * (1 - r2), g2 = a2 - x * x, g = sqrt(g2), y02 = y + h + r * g;\n if (abs(x12 - x02) < epsilon22 || --i === 0 || y02 === 0) break;\n if (y02 > 0) x02 = r;\n else x12 = r;\n r = 0.5 * (x02 + x12);\n }\n if (!i) return null;\n var phi = asin(sinPhi), cosPhi = cos(phi), secPhi = 1 / cosPhi, drdPhi = 2 * sinPhi * cosPhi, dvdPhi = (-3 * r + z * (1 + 3 * r2)) * drdPhi, dp2dPhi = (-v * cosPhi - (1 - sinPhi) * dvdPhi) / (v * v), dpdPhi = 0.5 * dp2dPhi / p, dhdPhi = (1 - r2) * dpdPhi - 2 * r * p * drdPhi, zeta = -2 * secPhi * dhdPhi, mu = -secPhi * drdPhi, nu = -secPhi * (r * (1 + r2) * dp2dPhi + p2 * (1 + 3 * r2) * drdPhi);\n return [pi / 4 * (x * (zeta + mu * g) + nu * asin(x / sqrt(a2))), phi];\n }\n function gringorten() {\n return d3Geo.geoProjection(squareRaw(gringortenRaw)).scale(239.75);\n }\n function ellipticJi(u, v, m) {\n var a, b, c;\n if (!u) {\n b = ellipticJ(v, 1 - m);\n return [\n [0, b[0] / b[1]],\n [1 / b[1], 0],\n [b[2] / b[1], 0]\n ];\n }\n a = ellipticJ(u, m);\n if (!v) return [[a[0], 0], [a[1], 0], [a[2], 0]];\n b = ellipticJ(v, 1 - m);\n c = b[1] * b[1] + m * a[0] * a[0] * b[0] * b[0];\n return [\n [a[0] * b[2] / c, a[1] * a[2] * b[0] * b[1] / c],\n [a[1] * b[1] / c, -a[0] * a[2] * b[0] * b[2] / c],\n [a[2] * b[1] * b[2] / c, -m * a[0] * a[1] * b[0] / c]\n ];\n }\n function ellipticJ(u, m) {\n var ai, b, phi, t, twon;\n if (m < epsilon) {\n t = sin(u);\n b = cos(u);\n ai = m * (u - t * b) / 4;\n return [\n t - ai * b,\n b + ai * t,\n 1 - m * t * t / 2,\n u - ai\n ];\n }\n if (m >= 1 - epsilon) {\n ai = (1 - m) / 4;\n b = cosh2(u);\n t = tanh2(u);\n phi = 1 / b;\n twon = b * sinh2(u);\n return [\n t + ai * (twon - u) / (b * b),\n phi - ai * t * phi * (twon - u),\n phi + ai * t * phi * (twon + u),\n 2 * atan(exp(u)) - halfPi + ai * (twon - u) / b\n ];\n }\n var a = [1, 0, 0, 0, 0, 0, 0, 0, 0], c = [sqrt(m), 0, 0, 0, 0, 0, 0, 0, 0], i = 0;\n b = sqrt(1 - m);\n twon = 1;\n while (abs(c[i] / a[i]) > epsilon && i < 8) {\n ai = a[i++];\n c[i] = (ai - b) / 2;\n a[i] = (ai + b) / 2;\n b = sqrt(ai * b);\n twon *= 2;\n }\n phi = twon * a[i] * u;\n do {\n t = c[i] * sin(b = phi) / a[i];\n phi = (asin(t) + phi) / 2;\n } while (--i);\n return [sin(phi), t = cos(phi), t / cos(phi - b), phi];\n }\n function ellipticFi(phi, psi, m) {\n var r = abs(phi), i = abs(psi), sinhPsi = sinh2(i);\n if (r) {\n var cscPhi = 1 / sin(r), cotPhi2 = 1 / (tan(r) * tan(r)), b = -(cotPhi2 + m * (sinhPsi * sinhPsi * cscPhi * cscPhi) - 1 + m), c = (m - 1) * cotPhi2, cotLambda2 = (-b + sqrt(b * b - 4 * c)) / 2;\n return [\n ellipticF(atan(1 / sqrt(cotLambda2)), m) * sign(phi),\n ellipticF(atan(sqrt((cotLambda2 / cotPhi2 - 1) / m)), 1 - m) * sign(psi)\n ];\n }\n return [\n 0,\n ellipticF(atan(sinhPsi), 1 - m) * sign(psi)\n ];\n }\n function ellipticF(phi, m) {\n if (!m) return phi;\n if (m === 1) return log(tan(phi / 2 + quarterPi));\n var a = 1, b = sqrt(1 - m), c = sqrt(m);\n for (var i = 0; abs(c) > epsilon; i++) {\n if (phi % pi) {\n var dPhi = atan(b * tan(phi) / a);\n if (dPhi < 0) dPhi += pi;\n phi += dPhi + ~~(phi / pi) * pi;\n } else phi += phi;\n c = (a + b) / 2;\n b = sqrt(a * b);\n c = ((a = c) - b) / 2;\n }\n return phi / (pow(2, i) * a);\n }\n function guyouRaw(lambda, phi) {\n var k_ = (sqrt2 - 1) / (sqrt2 + 1), k2 = sqrt(1 - k_ * k_), K3 = ellipticF(halfPi, k2 * k2), f = -1, psi = log(tan(pi / 4 + abs(phi) / 2)), r = exp(f * psi) / sqrt(k_), at = guyouComplexAtan(r * cos(f * lambda), r * sin(f * lambda)), t = ellipticFi(at[0], at[1], k2 * k2);\n return [-t[1], (phi >= 0 ? 1 : -1) * (0.5 * K3 - t[0])];\n }\n function guyouComplexAtan(x, y) {\n var x2 = x * x, y_1 = y + 1, t = 1 - x2 - y * y;\n return [\n 0.5 * ((x >= 0 ? halfPi : -halfPi) - atan2(t, 2 * x)),\n -0.25 * log(t * t + 4 * x2) + 0.5 * log(y_1 * y_1 + x2)\n ];\n }\n function guyouComplexDivide(a, b) {\n var denominator = b[0] * b[0] + b[1] * b[1];\n return [\n (a[0] * b[0] + a[1] * b[1]) / denominator,\n (a[1] * b[0] - a[0] * b[1]) / denominator\n ];\n }\n guyouRaw.invert = function(x, y) {\n var k_ = (sqrt2 - 1) / (sqrt2 + 1), k2 = sqrt(1 - k_ * k_), K3 = ellipticF(halfPi, k2 * k2), f = -1, j = ellipticJi(0.5 * K3 - y, -x, k2 * k2), tn = guyouComplexDivide(j[0], j[1]), lambda = atan2(tn[1], tn[0]) / f;\n return [\n lambda,\n 2 * atan(exp(0.5 / f * log(k_ * tn[0] * tn[0] + k_ * tn[1] * tn[1]))) - halfPi\n ];\n };\n function guyou() {\n return d3Geo.geoProjection(squareRaw(guyouRaw)).scale(151.496);\n }\n function hammerRetroazimuthalRaw(phi02) {\n var sinPhi0 = sin(phi02), cosPhi0 = cos(phi02), rotate = hammerRetroazimuthalRotation(phi02);\n rotate.invert = hammerRetroazimuthalRotation(-phi02);\n function forward(lambda, phi) {\n var p = rotate(lambda, phi);\n lambda = p[0], phi = p[1];\n var sinPhi = sin(phi), cosPhi = cos(phi), cosLambda = cos(lambda), z = acos(sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosLambda), sinz = sin(z), K3 = abs(sinz) > epsilon ? z / sinz : 1;\n return [\n K3 * cosPhi0 * sin(lambda),\n (abs(lambda) > halfPi ? K3 : -K3) * (sinPhi0 * cosPhi - cosPhi0 * sinPhi * cosLambda)\n ];\n }\n forward.invert = function(x, y) {\n var rho = sqrt(x * x + y * y), sinz = -sin(rho), cosz = cos(rho), a = rho * cosz, b = -y * sinz, c = rho * sinPhi0, d = sqrt(a * a + b * b - c * c), phi = atan2(a * c + b * d, b * c - a * d), lambda = (rho > halfPi ? -1 : 1) * atan2(x * sinz, rho * cos(phi) * cosz + y * sin(phi) * sinz);\n return rotate.invert(lambda, phi);\n };\n return forward;\n }\n function hammerRetroazimuthalRotation(phi02) {\n var sinPhi0 = sin(phi02), cosPhi0 = cos(phi02);\n return function(lambda, phi) {\n var cosPhi = cos(phi), x = cos(lambda) * cosPhi, y = sin(lambda) * cosPhi, z = sin(phi);\n return [\n atan2(y, x * cosPhi0 - z * sinPhi0),\n asin(z * cosPhi0 + x * sinPhi0)\n ];\n };\n }\n function hammerRetroazimuthal() {\n var phi02 = 0, m = d3Geo.geoProjectionMutator(hammerRetroazimuthalRaw), p = m(phi02), rotate_ = p.rotate, stream_ = p.stream, circle = d3Geo.geoCircle();\n p.parallel = function(_) {\n if (!arguments.length) return phi02 * degrees3;\n var r = p.rotate();\n return m(phi02 = _ * radians2).rotate(r);\n };\n p.rotate = function(_) {\n if (!arguments.length) return _ = rotate_.call(p), _[1] += phi02 * degrees3, _;\n rotate_.call(p, [_[0], _[1] - phi02 * degrees3]);\n circle.center([-_[0], -_[1]]);\n return p;\n };\n p.stream = function(stream) {\n stream = stream_(stream);\n stream.sphere = function() {\n stream.polygonStart();\n var epsilon$$1 = 0.01, ring = circle.radius(90 - epsilon$$1)().coordinates[0], n = ring.length - 1, i = -1, p2;\n stream.lineStart();\n while (++i < n) stream.point((p2 = ring[i])[0], p2[1]);\n stream.lineEnd();\n ring = circle.radius(90 + epsilon$$1)().coordinates[0];\n n = ring.length - 1;\n stream.lineStart();\n while (--i >= 0) stream.point((p2 = ring[i])[0], p2[1]);\n stream.lineEnd();\n stream.polygonEnd();\n };\n return stream;\n };\n return p.scale(79.4187).parallel(45).clipAngle(180 - 1e-3);\n }\n var K2 = 3, healpixParallel = asin(1 - 1 / K2) * degrees3, healpixLambert = cylindricalEqualAreaRaw(0);\n function healpixRaw(H) {\n var phi02 = healpixParallel * radians2, dx = collignonRaw(pi, phi02)[0] - collignonRaw(-pi, phi02)[0], y02 = healpixLambert(0, phi02)[1], y12 = collignonRaw(0, phi02)[1], dy1 = sqrtPi - y12, k2 = tau / H, w2 = 4 / tau, h = y02 + dy1 * dy1 * 4 / tau;\n function forward(lambda, phi) {\n var point, phi2 = abs(phi);\n if (phi2 > phi02) {\n var i = min(H - 1, max(0, floor((lambda + pi) / k2)));\n lambda += pi * (H - 1) / H - i * k2;\n point = collignonRaw(lambda, phi2);\n point[0] = point[0] * tau / dx - tau * (H - 1) / (2 * H) + i * tau / H;\n point[1] = y02 + (point[1] - y12) * 4 * dy1 / tau;\n if (phi < 0) point[1] = -point[1];\n } else {\n point = healpixLambert(lambda, phi);\n }\n point[0] *= w2, point[1] /= h;\n return point;\n }\n forward.invert = function(x, y) {\n x /= w2, y *= h;\n var y2 = abs(y);\n if (y2 > y02) {\n var i = min(H - 1, max(0, floor((x + pi) / k2)));\n x = (x + pi * (H - 1) / H - i * k2) * dx / tau;\n var point = collignonRaw.invert(x, 0.25 * (y2 - y02) * tau / dy1 + y12);\n point[0] -= pi * (H - 1) / H - i * k2;\n if (y < 0) point[1] = -point[1];\n return point;\n }\n return healpixLambert.invert(x, y);\n };\n return forward;\n }\n function sphereTop(x, i) {\n return [x, i & 1 ? 90 - epsilon : healpixParallel];\n }\n function sphereBottom(x, i) {\n return [x, i & 1 ? -90 + epsilon : -healpixParallel];\n }\n function sphereNudge(d) {\n return [d[0] * (1 - epsilon), d[1]];\n }\n function sphere(step) {\n var c = [].concat(\n d3Array.range(-180, 180 + step / 2, step).map(sphereTop),\n d3Array.range(180, -180 - step / 2, -step).map(sphereBottom)\n );\n return {\n type: \"Polygon\",\n coordinates: [step === 180 ? c.map(sphereNudge) : c]\n };\n }\n function healpix() {\n var H = 4, m = d3Geo.geoProjectionMutator(healpixRaw), p = m(H), stream_ = p.stream;\n p.lobes = function(_) {\n return arguments.length ? m(H = +_) : H;\n };\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = stream_(stream), sphereStream = (p.rotate([0, 0]), stream_(stream));\n p.rotate(rotate);\n rotateStream.sphere = function() {\n d3Geo.geoStream(sphere(180 / H), sphereStream);\n };\n return rotateStream;\n };\n return p.scale(239.75);\n }\n function hillRaw(K3) {\n var L = 1 + K3, sinBt = sin(1 / L), Bt = asin(sinBt), A3 = 2 * sqrt(pi / (B3 = pi + 4 * Bt * L)), B3, rho0 = 0.5 * A3 * (L + sqrt(K3 * (2 + K3))), K22 = K3 * K3, L2 = L * L;\n function forward(lambda, phi) {\n var t = 1 - sin(phi), rho, omega;\n if (t && t < 2) {\n var theta = halfPi - phi, i = 25, delta;\n do {\n var sinTheta = sin(theta), cosTheta = cos(theta), Bt_Bt1 = Bt + atan2(sinTheta, L - cosTheta), C2 = 1 + L2 - 2 * L * cosTheta;\n theta -= delta = (theta - K22 * Bt - L * sinTheta + C2 * Bt_Bt1 - 0.5 * t * B3) / (2 * L * sinTheta * Bt_Bt1);\n } while (abs(delta) > epsilon22 && --i > 0);\n rho = A3 * sqrt(C2);\n omega = lambda * Bt_Bt1 / pi;\n } else {\n rho = A3 * (K3 + t);\n omega = lambda * Bt / pi;\n }\n return [\n rho * sin(omega),\n rho0 - rho * cos(omega)\n ];\n }\n forward.invert = function(x, y) {\n var rho2 = x * x + (y -= rho0) * y, cosTheta = (1 + L2 - rho2 / (A3 * A3)) / (2 * L), theta = acos(cosTheta), sinTheta = sin(theta), Bt_Bt1 = Bt + atan2(sinTheta, L - cosTheta);\n return [\n asin(x / sqrt(rho2)) * pi / Bt_Bt1,\n asin(1 - 2 * (theta - K22 * Bt - L * sinTheta + (1 + L2 - 2 * L * cosTheta) * Bt_Bt1) / B3)\n ];\n };\n return forward;\n }\n function hill() {\n var K3 = 1, m = d3Geo.geoProjectionMutator(hillRaw), p = m(K3);\n p.ratio = function(_) {\n return arguments.length ? m(K3 = +_) : K3;\n };\n return p.scale(167.774).center([0, 18.67]);\n }\n var sinuMollweidePhi = 0.7109889596207567;\n var sinuMollweideY = 0.0528035274542;\n function sinuMollweideRaw(lambda, phi) {\n return phi > -sinuMollweidePhi ? (lambda = mollweideRaw(lambda, phi), lambda[1] += sinuMollweideY, lambda) : sinusoidalRaw(lambda, phi);\n }\n sinuMollweideRaw.invert = function(x, y) {\n return y > -sinuMollweidePhi ? mollweideRaw.invert(x, y - sinuMollweideY) : sinusoidalRaw.invert(x, y);\n };\n function sinuMollweide() {\n return d3Geo.geoProjection(sinuMollweideRaw).rotate([-20, -55]).scale(164.263).center([0, -5.4036]);\n }\n function homolosineRaw(lambda, phi) {\n return abs(phi) > sinuMollweidePhi ? (lambda = mollweideRaw(lambda, phi), lambda[1] -= phi > 0 ? sinuMollweideY : -sinuMollweideY, lambda) : sinusoidalRaw(lambda, phi);\n }\n homolosineRaw.invert = function(x, y) {\n return abs(y) > sinuMollweidePhi ? mollweideRaw.invert(x, y + (y > 0 ? sinuMollweideY : -sinuMollweideY)) : sinusoidalRaw.invert(x, y);\n };\n function homolosine() {\n return d3Geo.geoProjection(homolosineRaw).scale(152.63);\n }\n function hufnagelRaw(a, b, psiMax, ratio) {\n var k2 = sqrt(\n 4 * pi / (2 * psiMax + (1 + a - b / 2) * sin(2 * psiMax) + (a + b) / 2 * sin(4 * psiMax) + b / 2 * sin(6 * psiMax))\n ), c = sqrt(\n ratio * sin(psiMax) * sqrt((1 + a * cos(2 * psiMax) + b * cos(4 * psiMax)) / (1 + a + b))\n ), M = psiMax * mapping(1);\n function radius(psi) {\n return sqrt(1 + a * cos(2 * psi) + b * cos(4 * psi));\n }\n function mapping(t) {\n var psi = t * psiMax;\n return (2 * psi + (1 + a - b / 2) * sin(2 * psi) + (a + b) / 2 * sin(4 * psi) + b / 2 * sin(6 * psi)) / psiMax;\n }\n function inversemapping(psi) {\n return radius(psi) * sin(psi);\n }\n var forward = function(lambda, phi) {\n var psi = psiMax * solve(mapping, M * sin(phi) / psiMax, phi / pi);\n if (isNaN(psi)) psi = psiMax * sign(phi);\n var kr = k2 * radius(psi);\n return [kr * c * lambda / pi * cos(psi), kr / c * sin(psi)];\n };\n forward.invert = function(x, y) {\n var psi = solve(inversemapping, y * c / k2);\n return [\n x * pi / (cos(psi) * k2 * c * radius(psi)),\n asin(psiMax * mapping(psi / psiMax) / M)\n ];\n };\n if (psiMax === 0) {\n k2 = sqrt(ratio / pi);\n forward = function(lambda, phi) {\n return [lambda * k2, sin(phi) / k2];\n };\n forward.invert = function(x, y) {\n return [x / k2, asin(y * k2)];\n };\n }\n return forward;\n }\n function hufnagel() {\n var a = 1, b = 0, psiMax = 45 * radians2, ratio = 2, mutate = d3Geo.geoProjectionMutator(hufnagelRaw), projection = mutate(a, b, psiMax, ratio);\n projection.a = function(_) {\n return arguments.length ? mutate(a = +_, b, psiMax, ratio) : a;\n };\n projection.b = function(_) {\n return arguments.length ? mutate(a, b = +_, psiMax, ratio) : b;\n };\n projection.psiMax = function(_) {\n return arguments.length ? mutate(a, b, psiMax = +_ * radians2, ratio) : psiMax * degrees3;\n };\n projection.ratio = function(_) {\n return arguments.length ? mutate(a, b, psiMax, ratio = +_) : ratio;\n };\n return projection.scale(180.739);\n }\n function adsimp(f, a, b, fa, fm, fb, V0, tol, maxdepth, depth, state) {\n if (state.nanEncountered) {\n return NaN;\n }\n var h, f1, f2, sl, sr, s2, m, V1, V2, err;\n h = b - a;\n f1 = f(a + h * 0.25);\n f2 = f(b - h * 0.25);\n if (isNaN(f1)) {\n state.nanEncountered = true;\n return;\n }\n if (isNaN(f2)) {\n state.nanEncountered = true;\n return;\n }\n sl = h * (fa + 4 * f1 + fm) / 12;\n sr = h * (fm + 4 * f2 + fb) / 12;\n s2 = sl + sr;\n err = (s2 - V0) / 15;\n if (depth > maxdepth) {\n state.maxDepthCount++;\n return s2 + err;\n } else if (Math.abs(err) < tol) {\n return s2 + err;\n } else {\n m = a + h * 0.5;\n V1 = adsimp(f, a, m, fa, f1, fm, sl, tol * 0.5, maxdepth, depth + 1, state);\n if (isNaN(V1)) {\n state.nanEncountered = true;\n return NaN;\n }\n V2 = adsimp(f, m, b, fm, f2, fb, sr, tol * 0.5, maxdepth, depth + 1, state);\n if (isNaN(V2)) {\n state.nanEncountered = true;\n return NaN;\n }\n return V1 + V2;\n }\n }\n function integrate(f, a, b, tol, maxdepth) {\n var state = {\n maxDepthCount: 0,\n nanEncountered: false\n };\n if (tol === void 0) {\n tol = 1e-8;\n }\n if (maxdepth === void 0) {\n maxdepth = 20;\n }\n var fa = f(a);\n var fm = f(0.5 * (a + b));\n var fb = f(b);\n var V0 = (fa + 4 * fm + fb) * (b - a) / 6;\n var result = adsimp(f, a, b, fa, fm, fb, V0, tol, maxdepth, 1, state);\n return result;\n }\n function hyperellipticalRaw(alpha, k2, gamma2) {\n function elliptic(f) {\n return alpha + (1 - alpha) * pow(1 - pow(f, k2), 1 / k2);\n }\n function z(f) {\n return integrate(elliptic, 0, f, 1e-4);\n }\n var G = 1 / z(1), n = 1e3, m = (1 + 1e-8) * G, approx = [];\n for (var i = 0; i <= n; i++)\n approx.push(z(i / n) * m);\n function Y(sinphi) {\n var rmin = 0, rmax = n, r = n >> 1;\n do {\n if (approx[r] > sinphi) rmax = r;\n else rmin = r;\n r = rmin + rmax >> 1;\n } while (r > rmin);\n var u = approx[r + 1] - approx[r];\n if (u) u = (sinphi - approx[r + 1]) / u;\n return (r + 1 + u) / n;\n }\n var ratio = 2 * Y(1) / pi * G / gamma2;\n var forward = function(lambda, phi) {\n var y = Y(abs(sin(phi))), x = elliptic(y) * lambda;\n y /= ratio;\n return [x, phi >= 0 ? y : -y];\n };\n forward.invert = function(x, y) {\n var phi;\n y *= ratio;\n if (abs(y) < 1) phi = sign(y) * asin(z(abs(y)) * G);\n return [x / elliptic(abs(y)), phi];\n };\n return forward;\n }\n function hyperelliptical() {\n var alpha = 0, k2 = 2.5, gamma2 = 1.183136, m = d3Geo.geoProjectionMutator(hyperellipticalRaw), p = m(alpha, k2, gamma2);\n p.alpha = function(_) {\n return arguments.length ? m(alpha = +_, k2, gamma2) : alpha;\n };\n p.k = function(_) {\n return arguments.length ? m(alpha, k2 = +_, gamma2) : k2;\n };\n p.gamma = function(_) {\n return arguments.length ? m(alpha, k2, gamma2 = +_) : gamma2;\n };\n return p.scale(152.63);\n }\n function pointEqual(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n }\n function interpolateLine(coordinates, m) {\n var i = -1, n = coordinates.length, p0 = coordinates[0], p1, dx, dy, resampled = [];\n while (++i < n) {\n p1 = coordinates[i];\n dx = (p1[0] - p0[0]) / m;\n dy = (p1[1] - p0[1]) / m;\n for (var j = 0; j < m; ++j) resampled.push([p0[0] + j * dx, p0[1] + j * dy]);\n p0 = p1;\n }\n resampled.push(p1);\n return resampled;\n }\n function interpolateSphere(lobes2) {\n var coordinates = [], lobe, lambda0, phi02, phi1, lambda2, phi2, i, n = lobes2[0].length;\n for (i = 0; i < n; ++i) {\n lobe = lobes2[0][i];\n lambda0 = lobe[0][0], phi02 = lobe[0][1], phi1 = lobe[1][1];\n lambda2 = lobe[2][0], phi2 = lobe[2][1];\n coordinates.push(interpolateLine([\n [lambda0 + epsilon, phi02 + epsilon],\n [lambda0 + epsilon, phi1 - epsilon],\n [lambda2 - epsilon, phi1 - epsilon],\n [lambda2 - epsilon, phi2 + epsilon]\n ], 30));\n }\n for (i = lobes2[1].length - 1; i >= 0; --i) {\n lobe = lobes2[1][i];\n lambda0 = lobe[0][0], phi02 = lobe[0][1], phi1 = lobe[1][1];\n lambda2 = lobe[2][0], phi2 = lobe[2][1];\n coordinates.push(interpolateLine([\n [lambda2 - epsilon, phi2 - epsilon],\n [lambda2 - epsilon, phi1 + epsilon],\n [lambda0 + epsilon, phi1 + epsilon],\n [lambda0 + epsilon, phi02 - epsilon]\n ], 30));\n }\n return {\n type: \"Polygon\",\n coordinates: [d3Array.merge(coordinates)]\n };\n }\n function interrupt(project, lobes2, inverse2) {\n var sphere2, bounds;\n function forward(lambda, phi) {\n var sign$$1 = phi < 0 ? -1 : 1, lobe = lobes2[+(phi < 0)];\n for (var i = 0, n = lobe.length - 1; i < n && lambda > lobe[i][2][0]; ++i) ;\n var p2 = project(lambda - lobe[i][1][0], phi);\n p2[0] += project(lobe[i][1][0], sign$$1 * phi > sign$$1 * lobe[i][0][1] ? lobe[i][0][1] : phi)[0];\n return p2;\n }\n if (inverse2) {\n forward.invert = inverse2(forward);\n } else if (project.invert) {\n forward.invert = function(x, y) {\n var bound = bounds[+(y < 0)], lobe = lobes2[+(y < 0)];\n for (var i = 0, n = bound.length; i < n; ++i) {\n var b = bound[i];\n if (b[0][0] <= x && x < b[1][0] && b[0][1] <= y && y < b[1][1]) {\n var p2 = project.invert(x - project(lobe[i][1][0], 0)[0], y);\n p2[0] += lobe[i][1][0];\n return pointEqual(forward(p2[0], p2[1]), [x, y]) ? p2 : null;\n }\n }\n };\n }\n var p = d3Geo.geoProjection(forward), stream_ = p.stream;\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = stream_(stream), sphereStream = (p.rotate([0, 0]), stream_(stream));\n p.rotate(rotate);\n rotateStream.sphere = function() {\n d3Geo.geoStream(sphere2, sphereStream);\n };\n return rotateStream;\n };\n p.lobes = function(_) {\n if (!arguments.length) return lobes2.map(function(lobe) {\n return lobe.map(function(l) {\n return [\n [l[0][0] * degrees3, l[0][1] * degrees3],\n [l[1][0] * degrees3, l[1][1] * degrees3],\n [l[2][0] * degrees3, l[2][1] * degrees3]\n ];\n });\n });\n sphere2 = interpolateSphere(_);\n lobes2 = _.map(function(lobe) {\n return lobe.map(function(l) {\n return [\n [l[0][0] * radians2, l[0][1] * radians2],\n [l[1][0] * radians2, l[1][1] * radians2],\n [l[2][0] * radians2, l[2][1] * radians2]\n ];\n });\n });\n bounds = lobes2.map(function(lobe) {\n return lobe.map(function(l) {\n var x02 = project(l[0][0], l[0][1])[0], x12 = project(l[2][0], l[2][1])[0], y02 = project(l[1][0], l[0][1])[1], y12 = project(l[1][0], l[1][1])[1], t;\n if (y02 > y12) t = y02, y02 = y12, y12 = t;\n return [[x02, y02], [x12, y12]];\n });\n });\n return p;\n };\n if (lobes2 != null) p.lobes(lobes2);\n return p;\n }\n var lobes = [[\n // northern hemisphere\n [[-180, 0], [-100, 90], [-40, 0]],\n [[-40, 0], [30, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-160, -90], [-100, 0]],\n [[-100, 0], [-60, -90], [-20, 0]],\n [[-20, 0], [20, -90], [80, 0]],\n [[80, 0], [140, -90], [180, 0]]\n ]];\n function boggs$1() {\n return interrupt(boggsRaw, lobes).scale(160.857);\n }\n var lobes$1 = [[\n // northern hemisphere\n [[-180, 0], [-100, 90], [-40, 0]],\n [[-40, 0], [30, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-160, -90], [-100, 0]],\n [[-100, 0], [-60, -90], [-20, 0]],\n [[-20, 0], [20, -90], [80, 0]],\n [[80, 0], [140, -90], [180, 0]]\n ]];\n function homolosine$1() {\n return interrupt(homolosineRaw, lobes$1).scale(152.63);\n }\n var lobes$2 = [[\n // northern hemisphere\n [[-180, 0], [-100, 90], [-40, 0]],\n [[-40, 0], [30, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-160, -90], [-100, 0]],\n [[-100, 0], [-60, -90], [-20, 0]],\n [[-20, 0], [20, -90], [80, 0]],\n [[80, 0], [140, -90], [180, 0]]\n ]];\n function mollweide$1() {\n return interrupt(mollweideRaw, lobes$2).scale(169.529);\n }\n var lobes$3 = [[\n // northern hemisphere\n [[-180, 0], [-90, 90], [0, 0]],\n [[0, 0], [90, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-90, -90], [0, 0]],\n [[0, 0], [90, -90], [180, 0]]\n ]];\n function mollweideHemispheres() {\n return interrupt(mollweideRaw, lobes$3).scale(169.529).rotate([20, 0]);\n }\n var lobes$4 = [[\n // northern hemisphere\n [[-180, 35], [-30, 90], [0, 35]],\n [[0, 35], [30, 90], [180, 35]]\n ], [\n // southern hemisphere\n [[-180, -10], [-102, -90], [-65, -10]],\n [[-65, -10], [5, -90], [77, -10]],\n [[77, -10], [103, -90], [180, -10]]\n ]];\n function sinuMollweide$1() {\n return interrupt(sinuMollweideRaw, lobes$4, solve2d).rotate([-20, -55]).scale(164.263).center([0, -5.4036]);\n }\n var lobes$5 = [[\n // northern hemisphere\n [[-180, 0], [-110, 90], [-40, 0]],\n [[-40, 0], [0, 90], [40, 0]],\n [[40, 0], [110, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-110, -90], [-40, 0]],\n [[-40, 0], [0, -90], [40, 0]],\n [[40, 0], [110, -90], [180, 0]]\n ]];\n function sinusoidal$1() {\n return interrupt(sinusoidalRaw, lobes$5).scale(152.63).rotate([-20, 0]);\n }\n function kavrayskiy7Raw(lambda, phi) {\n return [3 / tau * lambda * sqrt(pi * pi / 3 - phi * phi), phi];\n }\n kavrayskiy7Raw.invert = function(x, y) {\n return [tau / 3 * x / sqrt(pi * pi / 3 - y * y), y];\n };\n function kavrayskiy7() {\n return d3Geo.geoProjection(kavrayskiy7Raw).scale(158.837);\n }\n function lagrangeRaw(n) {\n function forward(lambda, phi) {\n if (abs(abs(phi) - halfPi) < epsilon) return [0, phi < 0 ? -2 : 2];\n var sinPhi = sin(phi), v = pow((1 + sinPhi) / (1 - sinPhi), n / 2), c = 0.5 * (v + 1 / v) + cos(lambda *= n);\n return [\n 2 * sin(lambda) / c,\n (v - 1 / v) / c\n ];\n }\n forward.invert = function(x, y) {\n var y02 = abs(y);\n if (abs(y02 - 2) < epsilon) return x ? null : [0, sign(y) * halfPi];\n if (y02 > 2) return null;\n x /= 2, y /= 2;\n var x2 = x * x, y2 = y * y, t = 2 * y / (1 + x2 + y2);\n t = pow((1 + t) / (1 - t), 1 / n);\n return [\n atan2(2 * x, 1 - x2 - y2) / n,\n asin((t - 1) / (t + 1))\n ];\n };\n return forward;\n }\n function lagrange() {\n var n = 0.5, m = d3Geo.geoProjectionMutator(lagrangeRaw), p = m(n);\n p.spacing = function(_) {\n return arguments.length ? m(n = +_) : n;\n };\n return p.scale(124.75);\n }\n var pi_sqrt2 = pi / sqrt2;\n function larriveeRaw(lambda, phi) {\n return [\n lambda * (1 + sqrt(cos(phi))) / 2,\n phi / (cos(phi / 2) * cos(lambda / 6))\n ];\n }\n larriveeRaw.invert = function(x, y) {\n var x02 = abs(x), y02 = abs(y), lambda = epsilon, phi = halfPi;\n if (y02 < pi_sqrt2) phi *= y02 / pi_sqrt2;\n else lambda += 6 * acos(pi_sqrt2 / y02);\n for (var i = 0; i < 25; i++) {\n var sinPhi = sin(phi), sqrtcosPhi = sqrt(cos(phi)), sinPhi_2 = sin(phi / 2), cosPhi_2 = cos(phi / 2), sinLambda_6 = sin(lambda / 6), cosLambda_6 = cos(lambda / 6), f0 = 0.5 * lambda * (1 + sqrtcosPhi) - x02, f1 = phi / (cosPhi_2 * cosLambda_6) - y02, df0dPhi = sqrtcosPhi ? -0.25 * lambda * sinPhi / sqrtcosPhi : 0, df0dLambda = 0.5 * (1 + sqrtcosPhi), df1dPhi = (1 + 0.5 * phi * sinPhi_2 / cosPhi_2) / (cosPhi_2 * cosLambda_6), df1dLambda = phi / cosPhi_2 * (sinLambda_6 / 6) / (cosLambda_6 * cosLambda_6), denom = df0dPhi * df1dLambda - df1dPhi * df0dLambda, dPhi = (f0 * df1dLambda - f1 * df0dLambda) / denom, dLambda = (f1 * df0dPhi - f0 * df1dPhi) / denom;\n phi -= dPhi;\n lambda -= dLambda;\n if (abs(dPhi) < epsilon && abs(dLambda) < epsilon) break;\n }\n return [x < 0 ? -lambda : lambda, y < 0 ? -phi : phi];\n };\n function larrivee() {\n return d3Geo.geoProjection(larriveeRaw).scale(97.2672);\n }\n function laskowskiRaw(lambda, phi) {\n var lambda2 = lambda * lambda, phi2 = phi * phi;\n return [\n lambda * (0.975534 + phi2 * (-0.119161 + lambda2 * -0.0143059 + phi2 * -0.0547009)),\n phi * (1.00384 + lambda2 * (0.0802894 + phi2 * -0.02855 + lambda2 * 199025e-9) + phi2 * (0.0998909 + phi2 * -0.0491032))\n ];\n }\n laskowskiRaw.invert = function(x, y) {\n var lambda = sign(x) * pi, phi = y / 2, i = 50;\n do {\n var lambda2 = lambda * lambda, phi2 = phi * phi, lambdaPhi = lambda * phi, fx = lambda * (0.975534 + phi2 * (-0.119161 + lambda2 * -0.0143059 + phi2 * -0.0547009)) - x, fy = phi * (1.00384 + lambda2 * (0.0802894 + phi2 * -0.02855 + lambda2 * 199025e-9) + phi2 * (0.0998909 + phi2 * -0.0491032)) - y, deltaxDeltaLambda = 0.975534 - phi2 * (0.119161 + 3 * lambda2 * 0.0143059 + phi2 * 0.0547009), deltaxDeltaPhi = -lambdaPhi * (2 * 0.119161 + 4 * 0.0547009 * phi2 + 2 * 0.0143059 * lambda2), deltayDeltaLambda = lambdaPhi * (2 * 0.0802894 + 4 * 199025e-9 * lambda2 + 2 * -0.02855 * phi2), deltayDeltaPhi = 1.00384 + lambda2 * (0.0802894 + 199025e-9 * lambda2) + phi2 * (3 * (0.0998909 - 0.02855 * lambda2) - 5 * 0.0491032 * phi2), denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda, deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator, deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n lambda -= deltaLambda, phi -= deltaPhi;\n } while ((abs(deltaLambda) > epsilon || abs(deltaPhi) > epsilon) && --i > 0);\n return i && [lambda, phi];\n };\n function laskowski() {\n return d3Geo.geoProjection(laskowskiRaw).scale(139.98);\n }\n function littrowRaw(lambda, phi) {\n return [\n sin(lambda) / cos(phi),\n tan(phi) * cos(lambda)\n ];\n }\n littrowRaw.invert = function(x, y) {\n var x2 = x * x, y2 = y * y, y2_1 = y2 + 1, x2_y2_1 = x2 + y2_1, cosPhi = x ? sqrt1_2 * sqrt((x2_y2_1 - sqrt(x2_y2_1 * x2_y2_1 - 4 * x2)) / x2) : 1 / sqrt(y2_1);\n return [\n asin(x * cosPhi),\n sign(y) * acos(cosPhi)\n ];\n };\n function littrow() {\n return d3Geo.geoProjection(littrowRaw).scale(144.049).clipAngle(90 - 1e-3);\n }\n function loximuthalRaw(phi02) {\n var cosPhi0 = cos(phi02), tanPhi0 = tan(quarterPi + phi02 / 2);\n function forward(lambda, phi) {\n var y = phi - phi02, x = abs(y) < epsilon ? lambda * cosPhi0 : abs(x = quarterPi + phi / 2) < epsilon || abs(abs(x) - halfPi) < epsilon ? 0 : lambda * y / log(tan(x) / tanPhi0);\n return [x, y];\n }\n forward.invert = function(x, y) {\n var lambda, phi = y + phi02;\n return [\n abs(y) < epsilon ? x / cosPhi0 : abs(lambda = quarterPi + phi / 2) < epsilon || abs(abs(lambda) - halfPi) < epsilon ? 0 : x * log(tan(lambda) / tanPhi0) / y,\n phi\n ];\n };\n return forward;\n }\n function loximuthal() {\n return parallel1(loximuthalRaw).parallel(40).scale(158.837);\n }\n function millerRaw(lambda, phi) {\n return [lambda, 1.25 * log(tan(quarterPi + 0.4 * phi))];\n }\n millerRaw.invert = function(x, y) {\n return [x, 2.5 * atan(exp(0.8 * y)) - 0.625 * pi];\n };\n function miller() {\n return d3Geo.geoProjection(millerRaw).scale(108.318);\n }\n function modifiedStereographicRaw(C2) {\n var m = C2.length - 1;\n function forward(lambda, phi) {\n var cosPhi = cos(phi), k2 = 2 / (1 + cosPhi * cos(lambda)), zr = k2 * cosPhi * sin(lambda), zi = k2 * sin(phi), i = m, w2 = C2[i], ar = w2[0], ai = w2[1], t;\n while (--i >= 0) {\n w2 = C2[i];\n ar = w2[0] + zr * (t = ar) - zi * ai;\n ai = w2[1] + zr * ai + zi * t;\n }\n ar = zr * (t = ar) - zi * ai;\n ai = zr * ai + zi * t;\n return [ar, ai];\n }\n forward.invert = function(x, y) {\n var i = 20, zr = x, zi = y;\n do {\n var j = m, w2 = C2[j], ar = w2[0], ai = w2[1], br = 0, bi = 0, t;\n while (--j >= 0) {\n w2 = C2[j];\n br = ar + zr * (t = br) - zi * bi;\n bi = ai + zr * bi + zi * t;\n ar = w2[0] + zr * (t = ar) - zi * ai;\n ai = w2[1] + zr * ai + zi * t;\n }\n br = ar + zr * (t = br) - zi * bi;\n bi = ai + zr * bi + zi * t;\n ar = zr * (t = ar) - zi * ai - x;\n ai = zr * ai + zi * t - y;\n var denominator = br * br + bi * bi, deltar, deltai;\n zr -= deltar = (ar * br + ai * bi) / denominator;\n zi -= deltai = (ai * br - ar * bi) / denominator;\n } while (abs(deltar) + abs(deltai) > epsilon * epsilon && --i > 0);\n if (i) {\n var rho = sqrt(zr * zr + zi * zi), c = 2 * atan(rho * 0.5), sinc = sin(c);\n return [atan2(zr * sinc, rho * cos(c)), rho ? asin(zi * sinc / rho) : 0];\n }\n };\n return forward;\n }\n var alaska = [[0.9972523, 0], [52513e-7, -41175e-7], [74606e-7, 48125e-7], [-0.0153783, -0.1968253], [0.0636871, -0.1408027], [0.3660976, -0.2937382]], gs48 = [[0.98879, 0], [0, 0], [-0.050909, 0], [0, 0], [0.075528, 0]], gs50 = [[0.984299, 0], [0.0211642, 37608e-7], [-0.1036018, -0.0575102], [-0.0329095, -0.0320119], [0.0499471, 0.1223335], [0.026046, 0.0899805], [7388e-7, -0.1435792], [75848e-7, -0.1334108], [-0.0216473, 0.0776645], [-0.0225161, 0.0853673]], miller$1 = [[0.9245, 0], [0, 0], [0.01943, 0]], lee = [[0.721316, 0], [0, 0], [-881625e-8, -617325e-8]];\n function modifiedStereographicAlaska() {\n return modifiedStereographic(alaska, [152, -64]).scale(1400).center([-160.908, 62.4864]).clipAngle(30).angle(7.8);\n }\n function modifiedStereographicGs48() {\n return modifiedStereographic(gs48, [95, -38]).scale(1e3).clipAngle(55).center([-96.5563, 38.8675]);\n }\n function modifiedStereographicGs50() {\n return modifiedStereographic(gs50, [120, -45]).scale(359.513).clipAngle(55).center([-117.474, 53.0628]);\n }\n function modifiedStereographicMiller() {\n return modifiedStereographic(miller$1, [-20, -18]).scale(209.091).center([20, 16.7214]).clipAngle(82);\n }\n function modifiedStereographicLee() {\n return modifiedStereographic(lee, [165, 10]).scale(250).clipAngle(130).center([-165, -10]);\n }\n function modifiedStereographic(coefficients, rotate) {\n var p = d3Geo.geoProjection(modifiedStereographicRaw(coefficients)).rotate(rotate).clipAngle(90), r = d3Geo.geoRotation(rotate), center = p.center;\n delete p.rotate;\n p.center = function(_) {\n return arguments.length ? center(r(_)) : r.invert(center());\n };\n return p;\n }\n var sqrt6 = sqrt(6), sqrt7 = sqrt(7);\n function mtFlatPolarParabolicRaw(lambda, phi) {\n var theta = asin(7 * sin(phi) / (3 * sqrt6));\n return [\n sqrt6 * lambda * (2 * cos(2 * theta / 3) - 1) / sqrt7,\n 9 * sin(theta / 3) / sqrt7\n ];\n }\n mtFlatPolarParabolicRaw.invert = function(x, y) {\n var theta = 3 * asin(y * sqrt7 / 9);\n return [\n x * sqrt7 / (sqrt6 * (2 * cos(2 * theta / 3) - 1)),\n asin(sin(theta) * 3 * sqrt6 / 7)\n ];\n };\n function mtFlatPolarParabolic() {\n return d3Geo.geoProjection(mtFlatPolarParabolicRaw).scale(164.859);\n }\n function mtFlatPolarQuarticRaw(lambda, phi) {\n var k2 = (1 + sqrt1_2) * sin(phi), theta = phi;\n for (var i = 0, delta; i < 25; i++) {\n theta -= delta = (sin(theta / 2) + sin(theta) - k2) / (0.5 * cos(theta / 2) + cos(theta));\n if (abs(delta) < epsilon) break;\n }\n return [\n lambda * (1 + 2 * cos(theta) / cos(theta / 2)) / (3 * sqrt2),\n 2 * sqrt(3) * sin(theta / 2) / sqrt(2 + sqrt2)\n ];\n }\n mtFlatPolarQuarticRaw.invert = function(x, y) {\n var sinTheta_2 = y * sqrt(2 + sqrt2) / (2 * sqrt(3)), theta = 2 * asin(sinTheta_2);\n return [\n 3 * sqrt2 * x / (1 + 2 * cos(theta) / cos(theta / 2)),\n asin((sinTheta_2 + sin(theta)) / (1 + sqrt1_2))\n ];\n };\n function mtFlatPolarQuartic() {\n return d3Geo.geoProjection(mtFlatPolarQuarticRaw).scale(188.209);\n }\n function mtFlatPolarSinusoidalRaw(lambda, phi) {\n var A3 = sqrt(6 / (4 + pi)), k2 = (1 + pi / 4) * sin(phi), theta = phi / 2;\n for (var i = 0, delta; i < 25; i++) {\n theta -= delta = (theta / 2 + sin(theta) - k2) / (0.5 + cos(theta));\n if (abs(delta) < epsilon) break;\n }\n return [\n A3 * (0.5 + cos(theta)) * lambda / 1.5,\n A3 * theta\n ];\n }\n mtFlatPolarSinusoidalRaw.invert = function(x, y) {\n var A3 = sqrt(6 / (4 + pi)), theta = y / A3;\n if (abs(abs(theta) - halfPi) < epsilon) theta = theta < 0 ? -halfPi : halfPi;\n return [\n 1.5 * x / (A3 * (0.5 + cos(theta))),\n asin((theta / 2 + sin(theta)) / (1 + pi / 4))\n ];\n };\n function mtFlatPolarSinusoidal() {\n return d3Geo.geoProjection(mtFlatPolarSinusoidalRaw).scale(166.518);\n }\n function naturalEarth2Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2, phi6 = phi2 * phi4;\n return [\n lambda * (0.84719 - 0.13063 * phi2 + phi6 * phi6 * (-0.04515 + 0.05494 * phi2 - 0.02326 * phi4 + 331e-5 * phi6)),\n phi * (1.01183 + phi4 * phi4 * (-0.02625 + 0.01926 * phi2 - 396e-5 * phi4))\n ];\n }\n naturalEarth2Raw.invert = function(x, y) {\n var phi = y, i = 25, delta, phi2, phi4, phi6;\n do {\n phi2 = phi * phi;\n phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.01183 + phi4 * phi4 * (-0.02625 + 0.01926 * phi2 - 396e-5 * phi4)) - y) / (1.01183 + phi4 * phi4 * (9 * -0.02625 + 11 * 0.01926 * phi2 + 13 * -396e-5 * phi4));\n } while (abs(delta) > epsilon22 && --i > 0);\n phi2 = phi * phi;\n phi4 = phi2 * phi2;\n phi6 = phi2 * phi4;\n return [\n x / (0.84719 - 0.13063 * phi2 + phi6 * phi6 * (-0.04515 + 0.05494 * phi2 - 0.02326 * phi4 + 331e-5 * phi6)),\n phi\n ];\n };\n function naturalEarth2() {\n return d3Geo.geoProjection(naturalEarth2Raw).scale(175.295);\n }\n function nellHammerRaw(lambda, phi) {\n return [\n lambda * (1 + cos(phi)) / 2,\n 2 * (phi - tan(phi / 2))\n ];\n }\n nellHammerRaw.invert = function(x, y) {\n var p = y / 2;\n for (var i = 0, delta = Infinity; i < 10 && abs(delta) > epsilon; ++i) {\n var c = cos(y / 2);\n y -= delta = (y - tan(y / 2) - p) / (1 - 0.5 / (c * c));\n }\n return [\n 2 * x / (1 + cos(y)),\n y\n ];\n };\n function nellHammer() {\n return d3Geo.geoProjection(nellHammerRaw).scale(152.63);\n }\n var lobes$6 = [[\n // northern hemisphere\n [[-180, 0], [-90, 90], [0, 0]],\n [[0, 0], [90, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-90, -90], [0, 0]],\n [[0, 0], [90, -90], [180, 0]]\n ]];\n function quarticAuthalic() {\n return interrupt(hammerRaw(Infinity), lobes$6).rotate([20, 0]).scale(152.63);\n }\n function nicolosiRaw(lambda, phi) {\n var sinPhi = sin(phi), q = cos(phi), s = sign(lambda);\n if (lambda === 0 || abs(phi) === halfPi) return [0, phi];\n else if (phi === 0) return [lambda, 0];\n else if (abs(lambda) === halfPi) return [lambda * q, halfPi * sinPhi];\n var b = pi / (2 * lambda) - 2 * lambda / pi, c = 2 * phi / pi, d = (1 - c * c) / (sinPhi - c);\n var b2 = b * b, d2 = d * d, b2d2 = 1 + b2 / d2, d2b2 = 1 + d2 / b2;\n var M = (b * sinPhi / d - b / 2) / b2d2, N = (d2 * sinPhi / b2 + d / 2) / d2b2, m = M * M + q * q / b2d2, n = N * N - (d2 * sinPhi * sinPhi / b2 + d * sinPhi - 1) / d2b2;\n return [\n halfPi * (M + sqrt(m) * s),\n halfPi * (N + sqrt(n < 0 ? 0 : n) * sign(-phi * b) * s)\n ];\n }\n nicolosiRaw.invert = function(x, y) {\n x /= halfPi;\n y /= halfPi;\n var x2 = x * x, y2 = y * y, x2y2 = x2 + y2, pi2 = pi * pi;\n return [\n x ? (x2y2 - 1 + sqrt((1 - x2y2) * (1 - x2y2) + 4 * x2)) / (2 * x) * halfPi : 0,\n solve(function(phi) {\n return x2y2 * (pi * sin(phi) - 2 * phi) * pi + 4 * phi * phi * (y - sin(phi)) + 2 * pi * phi - pi2 * y;\n }, 0)\n ];\n };\n function nicolosi() {\n return d3Geo.geoProjection(nicolosiRaw).scale(127.267);\n }\n var pattersonK1 = 1.0148, pattersonK2 = 0.23185, pattersonK3 = -0.14499, pattersonK4 = 0.02406, pattersonC1 = pattersonK1, pattersonC2 = 5 * pattersonK2, pattersonC3 = 7 * pattersonK3, pattersonC4 = 9 * pattersonK4, pattersonYmax = 1.790857183;\n function pattersonRaw(lambda, phi) {\n var phi2 = phi * phi;\n return [\n lambda,\n phi * (pattersonK1 + phi2 * phi2 * (pattersonK2 + phi2 * (pattersonK3 + pattersonK4 * phi2)))\n ];\n }\n pattersonRaw.invert = function(x, y) {\n if (y > pattersonYmax) y = pattersonYmax;\n else if (y < -pattersonYmax) y = -pattersonYmax;\n var yc = y, delta;\n do {\n var y2 = yc * yc;\n yc -= delta = (yc * (pattersonK1 + y2 * y2 * (pattersonK2 + y2 * (pattersonK3 + pattersonK4 * y2))) - y) / (pattersonC1 + y2 * y2 * (pattersonC2 + y2 * (pattersonC3 + pattersonC4 * y2)));\n } while (abs(delta) > epsilon);\n return [x, yc];\n };\n function patterson() {\n return d3Geo.geoProjection(pattersonRaw).scale(139.319);\n }\n function polyconicRaw(lambda, phi) {\n if (abs(phi) < epsilon) return [lambda, 0];\n var tanPhi = tan(phi), k2 = lambda * sin(phi);\n return [\n sin(k2) / tanPhi,\n phi + (1 - cos(k2)) / tanPhi\n ];\n }\n polyconicRaw.invert = function(x, y) {\n if (abs(y) < epsilon) return [x, 0];\n var k2 = x * x + y * y, phi = y * 0.5, i = 10, delta;\n do {\n var tanPhi = tan(phi), secPhi = 1 / cos(phi), j = k2 - 2 * y * phi + phi * phi;\n phi -= delta = (tanPhi * j + 2 * (phi - y)) / (2 + j * secPhi * secPhi + 2 * (phi - y) * tanPhi);\n } while (abs(delta) > epsilon && --i > 0);\n tanPhi = tan(phi);\n return [\n (abs(y) < abs(phi + 1 / tanPhi) ? asin(x * tanPhi) : sign(y) * sign(x) * (acos(abs(x * tanPhi)) + halfPi)) / sin(phi),\n phi\n ];\n };\n function polyconic() {\n return d3Geo.geoProjection(polyconicRaw).scale(103.74);\n }\n function matrix(a, b) {\n var u = subtract(a[1], a[0]), v = subtract(b[1], b[0]), phi = angle$1(u, v), s = length(u) / length(v);\n return multiply([\n 1,\n 0,\n a[0][0],\n 0,\n 1,\n a[0][1]\n ], multiply([\n s,\n 0,\n 0,\n 0,\n s,\n 0\n ], multiply([\n cos(phi),\n sin(phi),\n 0,\n -sin(phi),\n cos(phi),\n 0\n ], [\n 1,\n 0,\n -b[0][0],\n 0,\n 1,\n -b[0][1]\n ])));\n }\n function inverse(m) {\n var k2 = 1 / (m[0] * m[4] - m[1] * m[3]);\n return [\n k2 * m[4],\n -k2 * m[1],\n k2 * (m[1] * m[5] - m[2] * m[4]),\n -k2 * m[3],\n k2 * m[0],\n k2 * (m[2] * m[3] - m[0] * m[5])\n ];\n }\n function multiply(a, b) {\n return [\n a[0] * b[0] + a[1] * b[3],\n a[0] * b[1] + a[1] * b[4],\n a[0] * b[2] + a[1] * b[5] + a[2],\n a[3] * b[0] + a[4] * b[3],\n a[3] * b[1] + a[4] * b[4],\n a[3] * b[2] + a[4] * b[5] + a[5]\n ];\n }\n function subtract(a, b) {\n return [a[0] - b[0], a[1] - b[1]];\n }\n function length(v) {\n return sqrt(v[0] * v[0] + v[1] * v[1]);\n }\n function angle$1(a, b) {\n return atan2(a[0] * b[1] - a[1] * b[0], a[0] * b[0] + a[1] * b[1]);\n }\n function polyhedral(root, face, r) {\n recurse(root, { transform: null });\n function recurse(node, parent) {\n node.edges = faceEdges(node.face);\n if (parent.face) {\n var shared = node.shared = sharedEdge(node.face, parent.face), m = matrix(shared.map(parent.project), shared.map(node.project));\n node.transform = parent.transform ? multiply(parent.transform, m) : m;\n var edges = parent.edges;\n for (var i = 0, n = edges.length; i < n; ++i) {\n if (pointEqual$1(shared[0], edges[i][1]) && pointEqual$1(shared[1], edges[i][0])) edges[i] = node;\n if (pointEqual$1(shared[0], edges[i][0]) && pointEqual$1(shared[1], edges[i][1])) edges[i] = node;\n }\n edges = node.edges;\n for (i = 0, n = edges.length; i < n; ++i) {\n if (pointEqual$1(shared[0], edges[i][0]) && pointEqual$1(shared[1], edges[i][1])) edges[i] = parent;\n if (pointEqual$1(shared[0], edges[i][1]) && pointEqual$1(shared[1], edges[i][0])) edges[i] = parent;\n }\n } else {\n node.transform = parent.transform;\n }\n if (node.children) {\n node.children.forEach(function(child) {\n recurse(child, node);\n });\n }\n return node;\n }\n function forward(lambda, phi) {\n var node = face(lambda, phi), point = node.project([lambda * degrees3, phi * degrees3]), t;\n if (t = node.transform) {\n return [\n t[0] * point[0] + t[1] * point[1] + t[2],\n -(t[3] * point[0] + t[4] * point[1] + t[5])\n ];\n }\n point[1] = -point[1];\n return point;\n }\n if (hasInverse(root)) forward.invert = function(x, y) {\n var coordinates = faceInvert(root, [x, -y]);\n return coordinates && (coordinates[0] *= radians2, coordinates[1] *= radians2, coordinates);\n };\n function faceInvert(node, coordinates) {\n var invert = node.project.invert, t = node.transform, point = coordinates;\n if (t) {\n t = inverse(t);\n point = [\n t[0] * point[0] + t[1] * point[1] + t[2],\n t[3] * point[0] + t[4] * point[1] + t[5]\n ];\n }\n if (invert && node === faceDegrees(p = invert(point))) return p;\n var p, children = node.children;\n for (var i = 0, n = children && children.length; i < n; ++i) {\n if (p = faceInvert(children[i], coordinates)) return p;\n }\n }\n function faceDegrees(coordinates) {\n return face(coordinates[0] * radians2, coordinates[1] * radians2);\n }\n var proj = d3Geo.geoProjection(forward), stream_ = proj.stream;\n proj.stream = function(stream) {\n var rotate = proj.rotate(), rotateStream = stream_(stream), sphereStream = (proj.rotate([0, 0]), stream_(stream));\n proj.rotate(rotate);\n rotateStream.sphere = function() {\n sphereStream.polygonStart();\n sphereStream.lineStart();\n outline(sphereStream, root);\n sphereStream.lineEnd();\n sphereStream.polygonEnd();\n };\n return rotateStream;\n };\n return proj.angle(r == null ? -30 : r * degrees3);\n }\n function outline(stream, node, parent) {\n var point, edges = node.edges, n = edges.length, edge, multiPoint = { type: \"MultiPoint\", coordinates: node.face }, notPoles = node.face.filter(function(d) {\n return abs(d[1]) !== 90;\n }), b = d3Geo.geoBounds({ type: \"MultiPoint\", coordinates: notPoles }), inside = false, j = -1, dx = b[1][0] - b[0][0];\n var c = dx === 180 || dx === 360 ? [(b[0][0] + b[1][0]) / 2, (b[0][1] + b[1][1]) / 2] : d3Geo.geoCentroid(multiPoint);\n if (parent) while (++j < n) {\n if (edges[j] === parent) break;\n }\n ++j;\n for (var i = 0; i < n; ++i) {\n edge = edges[(i + j) % n];\n if (Array.isArray(edge)) {\n if (!inside) {\n stream.point((point = d3Geo.geoInterpolate(edge[0], c)(epsilon))[0], point[1]);\n inside = true;\n }\n stream.point((point = d3Geo.geoInterpolate(edge[1], c)(epsilon))[0], point[1]);\n } else {\n inside = false;\n if (edge !== parent) outline(stream, edge, node);\n }\n }\n }\n function pointEqual$1(a, b) {\n return a && b && a[0] === b[0] && a[1] === b[1];\n }\n function sharedEdge(a, b) {\n var x, y, n = a.length, found = null;\n for (var i = 0; i < n; ++i) {\n x = a[i];\n for (var j = b.length; --j >= 0; ) {\n y = b[j];\n if (x[0] === y[0] && x[1] === y[1]) {\n if (found) return [found, x];\n found = x;\n }\n }\n }\n }\n function faceEdges(face) {\n var n = face.length, edges = [];\n for (var a = face[n - 1], i = 0; i < n; ++i) edges.push([a, a = face[i]]);\n return edges;\n }\n function hasInverse(node) {\n return node.project.invert || node.children && node.children.some(hasInverse);\n }\n var octahedron = [\n [0, 90],\n [-90, 0],\n [0, 0],\n [90, 0],\n [180, 0],\n [0, -90]\n ];\n var octahedron$1 = [\n [0, 2, 1],\n [0, 3, 2],\n [5, 1, 2],\n [5, 2, 3],\n [0, 1, 4],\n [0, 4, 3],\n [5, 4, 1],\n [5, 3, 4]\n ].map(function(face) {\n return face.map(function(i) {\n return octahedron[i];\n });\n });\n function butterfly(faceProjection) {\n faceProjection = faceProjection || function(face) {\n var c = d3Geo.geoCentroid({ type: \"MultiPoint\", coordinates: face });\n return d3Geo.geoGnomonic().scale(1).translate([0, 0]).rotate([-c[0], -c[1]]);\n };\n var faces = octahedron$1.map(function(face) {\n return { face, project: faceProjection(face) };\n });\n [-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(d, i) {\n var node = faces[d];\n node && (node.children || (node.children = [])).push(faces[i]);\n });\n return polyhedral(faces[0], function(lambda, phi) {\n return faces[lambda < -pi / 2 ? phi < 0 ? 6 : 4 : lambda < 0 ? phi < 0 ? 2 : 0 : lambda < pi / 2 ? phi < 0 ? 3 : 1 : phi < 0 ? 7 : 5];\n }).angle(-30).scale(101.858).center([0, 45]);\n }\n var kx = 2 / sqrt(3);\n function collignonK(a, b) {\n var p = collignonRaw(a, b);\n return [p[0] * kx, p[1]];\n }\n collignonK.invert = function(x, y) {\n return collignonRaw.invert(x / kx, y);\n };\n function collignon$1(faceProjection) {\n faceProjection = faceProjection || function(face) {\n var c = d3Geo.geoCentroid({ type: \"MultiPoint\", coordinates: face });\n return d3Geo.geoProjection(collignonK).translate([0, 0]).scale(1).rotate(c[1] > 0 ? [-c[0], 0] : [180 - c[0], 180]);\n };\n var faces = octahedron$1.map(function(face) {\n return { face, project: faceProjection(face) };\n });\n [-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(d, i) {\n var node = faces[d];\n node && (node.children || (node.children = [])).push(faces[i]);\n });\n return polyhedral(faces[0], function(lambda, phi) {\n return faces[lambda < -pi / 2 ? phi < 0 ? 6 : 4 : lambda < 0 ? phi < 0 ? 2 : 0 : lambda < pi / 2 ? phi < 0 ? 3 : 1 : phi < 0 ? 7 : 5];\n }).angle(-30).scale(121.906).center([0, 48.5904]);\n }\n function waterman(faceProjection) {\n faceProjection = faceProjection || function(face2) {\n var c = face2.length === 6 ? d3Geo.geoCentroid({ type: \"MultiPoint\", coordinates: face2 }) : face2[0];\n return d3Geo.geoGnomonic().scale(1).translate([0, 0]).rotate([-c[0], -c[1]]);\n };\n var w5 = octahedron$1.map(function(face2) {\n var xyz = face2.map(cartesian), n = xyz.length, a = xyz[n - 1], b, hexagon = [];\n for (var i = 0; i < n; ++i) {\n b = xyz[i];\n hexagon.push(spherical([\n a[0] * 0.9486832980505138 + b[0] * 0.31622776601683794,\n a[1] * 0.9486832980505138 + b[1] * 0.31622776601683794,\n a[2] * 0.9486832980505138 + b[2] * 0.31622776601683794\n ]), spherical([\n b[0] * 0.9486832980505138 + a[0] * 0.31622776601683794,\n b[1] * 0.9486832980505138 + a[1] * 0.31622776601683794,\n b[2] * 0.9486832980505138 + a[2] * 0.31622776601683794\n ]));\n a = b;\n }\n return hexagon;\n });\n var cornerNormals = [];\n var parents = [-1, 0, 0, 1, 0, 1, 4, 5];\n w5.forEach(function(hexagon, j) {\n var face2 = octahedron$1[j], n = face2.length, normals = cornerNormals[j] = [];\n for (var i = 0; i < n; ++i) {\n w5.push([\n face2[i],\n hexagon[(i * 2 + 2) % (2 * n)],\n hexagon[(i * 2 + 1) % (2 * n)]\n ]);\n parents.push(j);\n normals.push(cross(\n cartesian(hexagon[(i * 2 + 2) % (2 * n)]),\n cartesian(hexagon[(i * 2 + 1) % (2 * n)])\n ));\n }\n });\n var faces = w5.map(function(face2) {\n return {\n project: faceProjection(face2),\n face: face2\n };\n });\n parents.forEach(function(d, i) {\n var parent = faces[d];\n parent && (parent.children || (parent.children = [])).push(faces[i]);\n });\n function face(lambda, phi) {\n var cosphi = cos(phi), p = [cosphi * cos(lambda), cosphi * sin(lambda), sin(phi)];\n var hexagon = lambda < -pi / 2 ? phi < 0 ? 6 : 4 : lambda < 0 ? phi < 0 ? 2 : 0 : lambda < pi / 2 ? phi < 0 ? 3 : 1 : phi < 0 ? 7 : 5;\n var n = cornerNormals[hexagon];\n return faces[dot(n[0], p) < 0 ? 8 + 3 * hexagon : dot(n[1], p) < 0 ? 8 + 3 * hexagon + 1 : dot(n[2], p) < 0 ? 8 + 3 * hexagon + 2 : hexagon];\n }\n return polyhedral(faces[0], face).angle(-30).scale(110.625).center([0, 45]);\n }\n function dot(a, b) {\n for (var i = 0, n = a.length, s = 0; i < n; ++i) s += a[i] * b[i];\n return s;\n }\n function cross(a, b) {\n return [\n a[1] * b[2] - a[2] * b[1],\n a[2] * b[0] - a[0] * b[2],\n a[0] * b[1] - a[1] * b[0]\n ];\n }\n function spherical(cartesian2) {\n return [\n atan2(cartesian2[1], cartesian2[0]) * degrees3,\n asin(max(-1, min(1, cartesian2[2]))) * degrees3\n ];\n }\n function cartesian(coordinates) {\n var lambda = coordinates[0] * radians2, phi = coordinates[1] * radians2, cosphi = cos(phi);\n return [\n cosphi * cos(lambda),\n cosphi * sin(lambda),\n sin(phi)\n ];\n }\n function noop() {\n }\n function clockwise(ring) {\n if ((n = ring.length) < 4) return false;\n var i = 0, n, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area <= 0;\n }\n function contains(ring, point) {\n var x = point[0], y = point[1], contains2 = false;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi2 = ring[i], xi = pi2[0], yi = pi2[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (yi > y ^ yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains2 = !contains2;\n }\n return contains2;\n }\n function index(object, projection) {\n var stream = projection.stream, project;\n if (!stream) throw new Error(\"invalid projection\");\n switch (object && object.type) {\n case \"Feature\":\n project = projectFeature;\n break;\n case \"FeatureCollection\":\n project = projectFeatureCollection;\n break;\n default:\n project = projectGeometry;\n break;\n }\n return project(object, stream);\n }\n function projectFeatureCollection(o, stream) {\n return {\n type: \"FeatureCollection\",\n features: o.features.map(function(f) {\n return projectFeature(f, stream);\n })\n };\n }\n function projectFeature(o, stream) {\n return {\n type: \"Feature\",\n id: o.id,\n properties: o.properties,\n geometry: projectGeometry(o.geometry, stream)\n };\n }\n function projectGeometryCollection(o, stream) {\n return {\n type: \"GeometryCollection\",\n geometries: o.geometries.map(function(o2) {\n return projectGeometry(o2, stream);\n })\n };\n }\n function projectGeometry(o, stream) {\n if (!o) return null;\n if (o.type === \"GeometryCollection\") return projectGeometryCollection(o, stream);\n var sink;\n switch (o.type) {\n case \"Point\":\n sink = sinkPoint;\n break;\n case \"MultiPoint\":\n sink = sinkPoint;\n break;\n case \"LineString\":\n sink = sinkLine;\n break;\n case \"MultiLineString\":\n sink = sinkLine;\n break;\n case \"Polygon\":\n sink = sinkPolygon;\n break;\n case \"MultiPolygon\":\n sink = sinkPolygon;\n break;\n case \"Sphere\":\n sink = sinkPolygon;\n break;\n default:\n return null;\n }\n d3Geo.geoStream(o, stream(sink));\n return sink.result();\n }\n var points = [], lines = [];\n var sinkPoint = {\n point: function(x, y) {\n points.push([x, y]);\n },\n result: function() {\n var result = !points.length ? null : points.length < 2 ? { type: \"Point\", coordinates: points[0] } : { type: \"MultiPoint\", coordinates: points };\n points = [];\n return result;\n }\n };\n var sinkLine = {\n lineStart: noop,\n point: function(x, y) {\n points.push([x, y]);\n },\n lineEnd: function() {\n if (points.length) lines.push(points), points = [];\n },\n result: function() {\n var result = !lines.length ? null : lines.length < 2 ? { type: \"LineString\", coordinates: lines[0] } : { type: \"MultiLineString\", coordinates: lines };\n lines = [];\n return result;\n }\n };\n var sinkPolygon = {\n polygonStart: noop,\n lineStart: noop,\n point: function(x, y) {\n points.push([x, y]);\n },\n lineEnd: function() {\n var n = points.length;\n if (n) {\n do\n points.push(points[0].slice());\n while (++n < 4);\n lines.push(points), points = [];\n }\n },\n polygonEnd: noop,\n result: function() {\n if (!lines.length) return null;\n var polygons = [], holes = [];\n lines.forEach(function(ring) {\n if (clockwise(ring)) polygons.push([ring]);\n else holes.push(ring);\n });\n holes.forEach(function(hole) {\n var point = hole[0];\n polygons.some(function(polygon) {\n if (contains(polygon[0], point)) {\n polygon.push(hole);\n return true;\n }\n }) || polygons.push([hole]);\n });\n lines = [];\n return !polygons.length ? null : polygons.length > 1 ? { type: \"MultiPolygon\", coordinates: polygons } : { type: \"Polygon\", coordinates: polygons[0] };\n }\n };\n function quincuncial(project) {\n var dx = project(halfPi, 0)[0] - project(-halfPi, 0)[0];\n function projectQuincuncial(lambda, phi) {\n var t = abs(lambda) < halfPi, p = project(t ? lambda : lambda > 0 ? lambda - pi : lambda + pi, phi), x = (p[0] - p[1]) * sqrt1_2, y = (p[0] + p[1]) * sqrt1_2;\n if (t) return [x, y];\n var d = dx * sqrt1_2, s = x > 0 ^ y > 0 ? -1 : 1;\n return [s * x - sign(y) * d, s * y - sign(x) * d];\n }\n if (project.invert) projectQuincuncial.invert = function(x02, y02) {\n var x = (x02 + y02) * sqrt1_2, y = (y02 - x02) * sqrt1_2, t = abs(x) < 0.5 * dx && abs(y) < 0.5 * dx;\n if (!t) {\n var d = dx * sqrt1_2, s = x > 0 ^ y > 0 ? -1 : 1, x12 = -s * x02 + (y > 0 ? 1 : -1) * d, y12 = -s * y02 + (x > 0 ? 1 : -1) * d;\n x = (-x12 - y12) * sqrt1_2;\n y = (x12 - y12) * sqrt1_2;\n }\n var p = project.invert(x, y);\n if (!t) p[0] += x > 0 ? pi : -pi;\n return p;\n };\n return d3Geo.geoProjection(projectQuincuncial).rotate([-90, -90, 45]).clipAngle(180 - 1e-3);\n }\n function gringorten$1() {\n return quincuncial(gringortenRaw).scale(176.423);\n }\n function peirce() {\n return quincuncial(guyouRaw).scale(111.48);\n }\n function quantize(input, digits) {\n if (!(0 <= (digits = +digits) && digits <= 20)) throw new Error(\"invalid digits\");\n function quantizePoint(input2) {\n var n = input2.length, i = 2, output2 = new Array(n);\n output2[0] = +input2[0].toFixed(digits);\n output2[1] = +input2[1].toFixed(digits);\n while (i < n) output2[i] = input2[i], ++i;\n return output2;\n }\n function quantizePoints(input2) {\n return input2.map(quantizePoint);\n }\n function quantizePointsNoDuplicates(input2) {\n var point0 = quantizePoint(input2[0]);\n var output2 = [point0];\n for (var i = 1; i < input2.length; i++) {\n var point = quantizePoint(input2[i]);\n if (point.length > 2 || point[0] != point0[0] || point[1] != point0[1]) {\n output2.push(point);\n point0 = point;\n }\n }\n if (output2.length === 1 && input2.length > 1) {\n output2.push(quantizePoint(input2[input2.length - 1]));\n }\n return output2;\n }\n function quantizePolygon(input2) {\n return input2.map(quantizePointsNoDuplicates);\n }\n function quantizeGeometry(input2) {\n if (input2 == null) return input2;\n var output2;\n switch (input2.type) {\n case \"GeometryCollection\":\n output2 = { type: \"GeometryCollection\", geometries: input2.geometries.map(quantizeGeometry) };\n break;\n case \"Point\":\n output2 = { type: \"Point\", coordinates: quantizePoint(input2.coordinates) };\n break;\n case \"MultiPoint\":\n output2 = { type: input2.type, coordinates: quantizePoints(input2.coordinates) };\n break;\n case \"LineString\":\n output2 = { type: input2.type, coordinates: quantizePointsNoDuplicates(input2.coordinates) };\n break;\n case \"MultiLineString\":\n case \"Polygon\":\n output2 = { type: input2.type, coordinates: quantizePolygon(input2.coordinates) };\n break;\n case \"MultiPolygon\":\n output2 = { type: \"MultiPolygon\", coordinates: input2.coordinates.map(quantizePolygon) };\n break;\n default:\n return input2;\n }\n if (input2.bbox != null) output2.bbox = input2.bbox;\n return output2;\n }\n function quantizeFeature(input2) {\n var output2 = { type: \"Feature\", properties: input2.properties, geometry: quantizeGeometry(input2.geometry) };\n if (input2.id != null) output2.id = input2.id;\n if (input2.bbox != null) output2.bbox = input2.bbox;\n return output2;\n }\n if (input != null) switch (input.type) {\n case \"Feature\":\n return quantizeFeature(input);\n case \"FeatureCollection\": {\n var output = { type: \"FeatureCollection\", features: input.features.map(quantizeFeature) };\n if (input.bbox != null) output.bbox = input.bbox;\n return output;\n }\n default:\n return quantizeGeometry(input);\n }\n return input;\n }\n function rectangularPolyconicRaw(phi02) {\n var sinPhi0 = sin(phi02);\n function forward(lambda, phi) {\n var A3 = sinPhi0 ? tan(lambda * sinPhi0 / 2) / sinPhi0 : lambda / 2;\n if (!phi) return [2 * A3, -phi02];\n var E2 = 2 * atan(A3 * sin(phi)), cotPhi = 1 / tan(phi);\n return [\n sin(E2) * cotPhi,\n phi + (1 - cos(E2)) * cotPhi - phi02\n ];\n }\n forward.invert = function(x, y) {\n if (abs(y += phi02) < epsilon) return [sinPhi0 ? 2 * atan(sinPhi0 * x / 2) / sinPhi0 : x, 0];\n var k2 = x * x + y * y, phi = 0, i = 10, delta;\n do {\n var tanPhi = tan(phi), secPhi = 1 / cos(phi), j = k2 - 2 * y * phi + phi * phi;\n phi -= delta = (tanPhi * j + 2 * (phi - y)) / (2 + j * secPhi * secPhi + 2 * (phi - y) * tanPhi);\n } while (abs(delta) > epsilon && --i > 0);\n var E2 = x * (tanPhi = tan(phi)), A3 = tan(abs(y) < abs(phi + 1 / tanPhi) ? asin(E2) * 0.5 : acos(E2) * 0.5 + pi / 4) / sin(phi);\n return [\n sinPhi0 ? 2 * atan(sinPhi0 * A3) / sinPhi0 : 2 * A3,\n phi\n ];\n };\n return forward;\n }\n function rectangularPolyconic() {\n return parallel1(rectangularPolyconicRaw).scale(131.215);\n }\n var K$1 = [\n [0.9986, -0.062],\n [1, 0],\n [0.9986, 0.062],\n [0.9954, 0.124],\n [0.99, 0.186],\n [0.9822, 0.248],\n [0.973, 0.31],\n [0.96, 0.372],\n [0.9427, 0.434],\n [0.9216, 0.4958],\n [0.8962, 0.5571],\n [0.8679, 0.6176],\n [0.835, 0.6769],\n [0.7986, 0.7346],\n [0.7597, 0.7903],\n [0.7186, 0.8435],\n [0.6732, 0.8936],\n [0.6213, 0.9394],\n [0.5722, 0.9761],\n [0.5322, 1]\n ];\n K$1.forEach(function(d) {\n d[1] *= 1.0144;\n });\n function robinsonRaw(lambda, phi) {\n var i = min(18, abs(phi) * 36 / pi), i0 = floor(i), di = i - i0, ax = (k2 = K$1[i0])[0], ay = k2[1], bx = (k2 = K$1[++i0])[0], by = k2[1], cx = (k2 = K$1[min(19, ++i0)])[0], cy = k2[1], k2;\n return [\n lambda * (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2),\n (phi > 0 ? halfPi : -halfPi) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2)\n ];\n }\n robinsonRaw.invert = function(x, y) {\n var yy = y / halfPi, phi = yy * 90, i = min(18, abs(phi / 5)), i0 = max(0, floor(i));\n do {\n var ay = K$1[i0][1], by = K$1[i0 + 1][1], cy = K$1[min(19, i0 + 2)][1], u = cy - ay, v = cy - 2 * by + ay, t = 2 * (abs(yy) - by) / u, c = v / u, di = t * (1 - c * t * (1 - 2 * c * t));\n if (di >= 0 || i0 === 1) {\n phi = (y >= 0 ? 5 : -5) * (di + i);\n var j = 50, delta;\n do {\n i = min(18, abs(phi) / 5);\n i0 = floor(i);\n di = i - i0;\n ay = K$1[i0][1];\n by = K$1[i0 + 1][1];\n cy = K$1[min(19, i0 + 2)][1];\n phi -= (delta = (y >= 0 ? halfPi : -halfPi) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) - y) * degrees3;\n } while (abs(delta) > epsilon22 && --j > 0);\n break;\n }\n } while (--i0 >= 0);\n var ax = K$1[i0][0], bx = K$1[i0 + 1][0], cx = K$1[min(19, i0 + 2)][0];\n return [\n x / (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2),\n phi * radians2\n ];\n };\n function robinson() {\n return d3Geo.geoProjection(robinsonRaw).scale(152.63);\n }\n function satelliteVerticalRaw(P) {\n function forward(lambda, phi) {\n var cosPhi = cos(phi), k2 = (P - 1) / (P - cosPhi * cos(lambda));\n return [\n k2 * cosPhi * sin(lambda),\n k2 * sin(phi)\n ];\n }\n forward.invert = function(x, y) {\n var rho2 = x * x + y * y, rho = sqrt(rho2), sinc = (P - sqrt(1 - rho2 * (P + 1) / (P - 1))) / ((P - 1) / rho + rho / (P - 1));\n return [\n atan2(x * sinc, rho * sqrt(1 - sinc * sinc)),\n rho ? asin(y * sinc / rho) : 0\n ];\n };\n return forward;\n }\n function satelliteRaw(P, omega) {\n var vertical = satelliteVerticalRaw(P);\n if (!omega) return vertical;\n var cosOmega = cos(omega), sinOmega = sin(omega);\n function forward(lambda, phi) {\n var coordinates = vertical(lambda, phi), y = coordinates[1], A3 = y * sinOmega / (P - 1) + cosOmega;\n return [\n coordinates[0] * cosOmega / A3,\n y / A3\n ];\n }\n forward.invert = function(x, y) {\n var k2 = (P - 1) / (P - 1 - y * sinOmega);\n return vertical.invert(k2 * x, k2 * y * cosOmega);\n };\n return forward;\n }\n function satellite() {\n var distance2 = 2, omega = 0, m = d3Geo.geoProjectionMutator(satelliteRaw), p = m(distance2, omega);\n p.distance = function(_) {\n if (!arguments.length) return distance2;\n return m(distance2 = +_, omega);\n };\n p.tilt = function(_) {\n if (!arguments.length) return omega * degrees3;\n return m(distance2, omega = _ * radians2);\n };\n return p.scale(432.147).clipAngle(acos(1 / distance2) * degrees3 - 1e-6);\n }\n var epsilon$1 = 1e-4, epsilonInverse = 1e4, x0 = -180, x0e = x0 + epsilon$1, x1 = 180, x1e = x1 - epsilon$1, y0 = -90, y0e = y0 + epsilon$1, y1 = 90, y1e = y1 - epsilon$1;\n function nonempty(coordinates) {\n return coordinates.length > 0;\n }\n function quantize$1(x) {\n return Math.floor(x * epsilonInverse) / epsilonInverse;\n }\n function normalizePoint(y) {\n return y === y0 || y === y1 ? [0, y] : [x0, quantize$1(y)];\n }\n function clampPoint(p) {\n var x = p[0], y = p[1], clamped = false;\n if (x <= x0e) x = x0, clamped = true;\n else if (x >= x1e) x = x1, clamped = true;\n if (y <= y0e) y = y0, clamped = true;\n else if (y >= y1e) y = y1, clamped = true;\n return clamped ? [x, y] : p;\n }\n function clampPoints(points2) {\n return points2.map(clampPoint);\n }\n function extractFragments(rings, polygon, fragments) {\n for (var j = 0, m = rings.length; j < m; ++j) {\n var ring = rings[j].slice();\n fragments.push({ index: -1, polygon, ring });\n for (var i = 0, n = ring.length; i < n; ++i) {\n var point = ring[i], x = point[0], y = point[1];\n if (x <= x0e || x >= x1e || y <= y0e || y >= y1e) {\n ring[i] = clampPoint(point);\n for (var k2 = i + 1; k2 < n; ++k2) {\n var pointk = ring[k2], xk = pointk[0], yk = pointk[1];\n if (xk > x0e && xk < x1e && yk > y0e && yk < y1e) break;\n }\n if (k2 === i + 1) continue;\n if (i) {\n var fragmentBefore = { index: -1, polygon, ring: ring.slice(0, i + 1) };\n fragmentBefore.ring[fragmentBefore.ring.length - 1] = normalizePoint(y);\n fragments[fragments.length - 1] = fragmentBefore;\n } else fragments.pop();\n if (k2 >= n) break;\n fragments.push({ index: -1, polygon, ring: ring = ring.slice(k2 - 1) });\n ring[0] = normalizePoint(ring[0][1]);\n i = -1;\n n = ring.length;\n }\n }\n }\n }\n function stitchFragments(fragments) {\n var i, n = fragments.length;\n var fragmentByStart = {}, fragmentByEnd = {}, fragment, start, startFragment, end, endFragment;\n for (i = 0; i < n; ++i) {\n fragment = fragments[i];\n start = fragment.ring[0];\n end = fragment.ring[fragment.ring.length - 1];\n if (start[0] === end[0] && start[1] === end[1]) {\n fragment.polygon.push(fragment.ring);\n fragments[i] = null;\n continue;\n }\n fragment.index = i;\n fragmentByStart[start] = fragmentByEnd[end] = fragment;\n }\n for (i = 0; i < n; ++i) {\n fragment = fragments[i];\n if (fragment) {\n start = fragment.ring[0];\n end = fragment.ring[fragment.ring.length - 1];\n startFragment = fragmentByEnd[start];\n endFragment = fragmentByStart[end];\n delete fragmentByStart[start];\n delete fragmentByEnd[end];\n if (start[0] === end[0] && start[1] === end[1]) {\n fragment.polygon.push(fragment.ring);\n continue;\n }\n if (startFragment) {\n delete fragmentByEnd[start];\n delete fragmentByStart[startFragment.ring[0]];\n startFragment.ring.pop();\n fragments[startFragment.index] = null;\n fragment = { index: -1, polygon: startFragment.polygon, ring: startFragment.ring.concat(fragment.ring) };\n if (startFragment === endFragment) {\n fragment.polygon.push(fragment.ring);\n } else {\n fragment.index = n++;\n fragments.push(fragmentByStart[fragment.ring[0]] = fragmentByEnd[fragment.ring[fragment.ring.length - 1]] = fragment);\n }\n } else if (endFragment) {\n delete fragmentByStart[end];\n delete fragmentByEnd[endFragment.ring[endFragment.ring.length - 1]];\n fragment.ring.pop();\n fragment = { index: n++, polygon: endFragment.polygon, ring: fragment.ring.concat(endFragment.ring) };\n fragments[endFragment.index] = null;\n fragments.push(fragmentByStart[fragment.ring[0]] = fragmentByEnd[fragment.ring[fragment.ring.length - 1]] = fragment);\n } else {\n fragment.ring.push(fragment.ring[0]);\n fragment.polygon.push(fragment.ring);\n }\n }\n }\n }\n function stitchFeature(input) {\n var output = { type: \"Feature\", geometry: stitchGeometry(input.geometry) };\n if (input.id != null) output.id = input.id;\n if (input.bbox != null) output.bbox = input.bbox;\n if (input.properties != null) output.properties = input.properties;\n return output;\n }\n function stitchGeometry(input) {\n if (input == null) return input;\n var output, fragments, i, n;\n switch (input.type) {\n case \"GeometryCollection\":\n output = { type: \"GeometryCollection\", geometries: input.geometries.map(stitchGeometry) };\n break;\n case \"Point\":\n output = { type: \"Point\", coordinates: clampPoint(input.coordinates) };\n break;\n case \"MultiPoint\":\n case \"LineString\":\n output = { type: input.type, coordinates: clampPoints(input.coordinates) };\n break;\n case \"MultiLineString\":\n output = { type: \"MultiLineString\", coordinates: input.coordinates.map(clampPoints) };\n break;\n case \"Polygon\": {\n var polygon = [];\n extractFragments(input.coordinates, polygon, fragments = []);\n stitchFragments(fragments);\n output = { type: \"Polygon\", coordinates: polygon };\n break;\n }\n case \"MultiPolygon\": {\n fragments = [], i = -1, n = input.coordinates.length;\n var polygons = new Array(n);\n while (++i < n) extractFragments(input.coordinates[i], polygons[i] = [], fragments);\n stitchFragments(fragments);\n output = { type: \"MultiPolygon\", coordinates: polygons.filter(nonempty) };\n break;\n }\n default:\n return input;\n }\n if (input.bbox != null) output.bbox = input.bbox;\n return output;\n }\n function stitch(input) {\n if (input == null) return input;\n switch (input.type) {\n case \"Feature\":\n return stitchFeature(input);\n case \"FeatureCollection\": {\n var output = { type: \"FeatureCollection\", features: input.features.map(stitchFeature) };\n if (input.bbox != null) output.bbox = input.bbox;\n return output;\n }\n default:\n return stitchGeometry(input);\n }\n }\n function timesRaw(lambda, phi) {\n var t = tan(phi / 2), s = sin(quarterPi * t);\n return [\n lambda * (0.74482 - 0.34588 * s * s),\n 1.70711 * t\n ];\n }\n timesRaw.invert = function(x, y) {\n var t = y / 1.70711, s = sin(quarterPi * t);\n return [\n x / (0.74482 - 0.34588 * s * s),\n 2 * atan(t)\n ];\n };\n function times() {\n return d3Geo.geoProjection(timesRaw).scale(146.153);\n }\n function twoPoint(raw, p0, p1) {\n var i = d3Geo.geoInterpolate(p0, p1), o = i(0.5), a = d3Geo.geoRotation([-o[0], -o[1]])(p0), b = i.distance / 2, y = -asin(sin(a[1] * radians2) / sin(b)), R = [-o[0], -o[1], -(a[0] > 0 ? pi - y : y) * degrees3], p = d3Geo.geoProjection(raw(b)).rotate(R), r = d3Geo.geoRotation(R), center = p.center;\n delete p.rotate;\n p.center = function(_) {\n return arguments.length ? center(r(_)) : r.invert(center());\n };\n return p.clipAngle(90);\n }\n function twoPointAzimuthalRaw(d) {\n var cosd = cos(d);\n function forward(lambda, phi) {\n var coordinates = d3Geo.geoGnomonicRaw(lambda, phi);\n coordinates[0] *= cosd;\n return coordinates;\n }\n forward.invert = function(x, y) {\n return d3Geo.geoGnomonicRaw.invert(x / cosd, y);\n };\n return forward;\n }\n function twoPointAzimuthalUsa() {\n return twoPointAzimuthal([-158, 21.5], [-77, 39]).clipAngle(60).scale(400);\n }\n function twoPointAzimuthal(p0, p1) {\n return twoPoint(twoPointAzimuthalRaw, p0, p1);\n }\n function twoPointEquidistantRaw(z0) {\n if (!(z0 *= 2)) return d3Geo.geoAzimuthalEquidistantRaw;\n var lambdaa = -z0 / 2, lambdab = -lambdaa, z02 = z0 * z0, tanLambda0 = tan(lambdab), S = 0.5 / sin(lambdab);\n function forward(lambda, phi) {\n var za = acos(cos(phi) * cos(lambda - lambdaa)), zb = acos(cos(phi) * cos(lambda - lambdab)), ys = phi < 0 ? -1 : 1;\n za *= za, zb *= zb;\n return [\n (za - zb) / (2 * z0),\n ys * sqrt(4 * z02 * zb - (z02 - za + zb) * (z02 - za + zb)) / (2 * z0)\n ];\n }\n forward.invert = function(x, y) {\n var y2 = y * y, cosza = cos(sqrt(y2 + (t = x + lambdaa) * t)), coszb = cos(sqrt(y2 + (t = x + lambdab) * t)), t, d;\n return [\n atan2(d = cosza - coszb, t = (cosza + coszb) * tanLambda0),\n (y < 0 ? -1 : 1) * acos(sqrt(t * t + d * d) * S)\n ];\n };\n return forward;\n }\n function twoPointEquidistantUsa() {\n return twoPointEquidistant([-158, 21.5], [-77, 39]).clipAngle(130).scale(122.571);\n }\n function twoPointEquidistant(p0, p1) {\n return twoPoint(twoPointEquidistantRaw, p0, p1);\n }\n function vanDerGrintenRaw(lambda, phi) {\n if (abs(phi) < epsilon) return [lambda, 0];\n var sinTheta = abs(phi / halfPi), theta = asin(sinTheta);\n if (abs(lambda) < epsilon || abs(abs(phi) - halfPi) < epsilon) return [0, sign(phi) * pi * tan(theta / 2)];\n var cosTheta = cos(theta), A3 = abs(pi / lambda - lambda / pi) / 2, A22 = A3 * A3, G = cosTheta / (sinTheta + cosTheta - 1), P = G * (2 / sinTheta - 1), P2 = P * P, P2_A2 = P2 + A22, G_P2 = G - P2, Q = A22 + G;\n return [\n sign(lambda) * pi * (A3 * G_P2 + sqrt(A22 * G_P2 * G_P2 - P2_A2 * (G * G - P2))) / P2_A2,\n sign(phi) * pi * (P * Q - A3 * sqrt((A22 + 1) * P2_A2 - Q * Q)) / P2_A2\n ];\n }\n vanDerGrintenRaw.invert = function(x, y) {\n if (abs(y) < epsilon) return [x, 0];\n if (abs(x) < epsilon) return [0, halfPi * sin(2 * atan(y / pi))];\n var x2 = (x /= pi) * x, y2 = (y /= pi) * y, x2_y2 = x2 + y2, z = x2_y2 * x2_y2, c1 = -abs(y) * (1 + x2_y2), c2 = c1 - 2 * y2 + x2, c3 = -2 * c1 + 1 + 2 * y2 + z, d = y2 / c3 + (2 * c2 * c2 * c2 / (c3 * c3 * c3) - 9 * c1 * c2 / (c3 * c3)) / 27, a1 = (c1 - c2 * c2 / (3 * c3)) / c3, m1 = 2 * sqrt(-a1 / 3), theta1 = acos(3 * d / (a1 * m1)) / 3;\n return [\n pi * (x2_y2 - 1 + sqrt(1 + 2 * (x2 - y2) + z)) / (2 * x),\n sign(y) * pi * (-m1 * cos(theta1 + pi / 3) - c2 / (3 * c3))\n ];\n };\n function vanDerGrinten() {\n return d3Geo.geoProjection(vanDerGrintenRaw).scale(79.4183);\n }\n function vanDerGrinten2Raw(lambda, phi) {\n if (abs(phi) < epsilon) return [lambda, 0];\n var sinTheta = abs(phi / halfPi), theta = asin(sinTheta);\n if (abs(lambda) < epsilon || abs(abs(phi) - halfPi) < epsilon) return [0, sign(phi) * pi * tan(theta / 2)];\n var cosTheta = cos(theta), A3 = abs(pi / lambda - lambda / pi) / 2, A22 = A3 * A3, x12 = cosTheta * (sqrt(1 + A22) - A3 * cosTheta) / (1 + A22 * sinTheta * sinTheta);\n return [\n sign(lambda) * pi * x12,\n sign(phi) * pi * sqrt(1 - x12 * (2 * A3 + x12))\n ];\n }\n vanDerGrinten2Raw.invert = function(x, y) {\n if (!x) return [0, halfPi * sin(2 * atan(y / pi))];\n var x12 = abs(x / pi), A3 = (1 - x12 * x12 - (y /= pi) * y) / (2 * x12), A22 = A3 * A3, B3 = sqrt(A22 + 1);\n return [\n sign(x) * pi * (B3 - A3),\n sign(y) * halfPi * sin(2 * atan2(sqrt((1 - 2 * A3 * x12) * (A3 + B3) - x12), sqrt(B3 + A3 + x12)))\n ];\n };\n function vanDerGrinten2() {\n return d3Geo.geoProjection(vanDerGrinten2Raw).scale(79.4183);\n }\n function vanDerGrinten3Raw(lambda, phi) {\n if (abs(phi) < epsilon) return [lambda, 0];\n var sinTheta = phi / halfPi, theta = asin(sinTheta);\n if (abs(lambda) < epsilon || abs(abs(phi) - halfPi) < epsilon) return [0, pi * tan(theta / 2)];\n var A3 = (pi / lambda - lambda / pi) / 2, y12 = sinTheta / (1 + cos(theta));\n return [\n pi * (sign(lambda) * sqrt(A3 * A3 + 1 - y12 * y12) - A3),\n pi * y12\n ];\n }\n vanDerGrinten3Raw.invert = function(x, y) {\n if (!y) return [x, 0];\n var y12 = y / pi, A3 = (pi * pi * (1 - y12 * y12) - x * x) / (2 * pi * x);\n return [\n x ? pi * (sign(x) * sqrt(A3 * A3 + 1) - A3) : 0,\n halfPi * sin(2 * atan(y12))\n ];\n };\n function vanDerGrinten3() {\n return d3Geo.geoProjection(vanDerGrinten3Raw).scale(79.4183);\n }\n function vanDerGrinten4Raw(lambda, phi) {\n if (!phi) return [lambda, 0];\n var phi02 = abs(phi);\n if (!lambda || phi02 === halfPi) return [0, phi];\n var B3 = phi02 / halfPi, B22 = B3 * B3, C2 = (8 * B3 - B22 * (B22 + 2) - 5) / (2 * B22 * (B3 - 1)), C22 = C2 * C2, BC = B3 * C2, B_C2 = B22 + C22 + 2 * BC, B_3C = B3 + 3 * C2, lambda0 = lambda / halfPi, lambda1 = lambda0 + 1 / lambda0, D2 = sign(abs(lambda) - halfPi) * sqrt(lambda1 * lambda1 - 4), D22 = D2 * D2, F = B_C2 * (B22 + C22 * D22 - 1) + (1 - B22) * (B22 * (B_3C * B_3C + 4 * C22) + 12 * BC * C22 + 4 * C22 * C22), x12 = (D2 * (B_C2 + C22 - 1) + 2 * sqrt(F)) / (4 * B_C2 + D22);\n return [\n sign(lambda) * halfPi * x12,\n sign(phi) * halfPi * sqrt(1 + D2 * abs(x12) - x12 * x12)\n ];\n }\n vanDerGrinten4Raw.invert = function(x, y) {\n var delta;\n if (!x || !y) return [x, y];\n y /= pi;\n var x12 = sign(x) * x / halfPi, D2 = (x12 * x12 - 1 + 4 * y * y) / abs(x12), D22 = D2 * D2, B3 = 2 * y, i = 50;\n do {\n var B22 = B3 * B3, C2 = (8 * B3 - B22 * (B22 + 2) - 5) / (2 * B22 * (B3 - 1)), C_ = (3 * B3 - B22 * B3 - 10) / (2 * B22 * B3), C22 = C2 * C2, BC = B3 * C2, B_C = B3 + C2, B_C2 = B_C * B_C, B_3C = B3 + 3 * C2, F = B_C2 * (B22 + C22 * D22 - 1) + (1 - B22) * (B22 * (B_3C * B_3C + 4 * C22) + C22 * (12 * BC + 4 * C22)), F_ = -2 * B_C * (4 * BC * C22 + (1 - 4 * B22 + 3 * B22 * B22) * (1 + C_) + C22 * (-6 + 14 * B22 - D22 + (-8 + 8 * B22 - 2 * D22) * C_) + BC * (-8 + 12 * B22 + (-10 + 10 * B22 - D22) * C_)), sqrtF = sqrt(F), f = D2 * (B_C2 + C22 - 1) + 2 * sqrtF - x12 * (4 * B_C2 + D22), f_ = D2 * (2 * C2 * C_ + 2 * B_C * (1 + C_)) + F_ / sqrtF - 8 * B_C * (D2 * (-1 + C22 + B_C2) + 2 * sqrtF) * (1 + C_) / (D22 + 4 * B_C2);\n B3 -= delta = f / f_;\n } while (delta > epsilon && --i > 0);\n return [\n sign(x) * (sqrt(D2 * D2 + 4) + D2) * pi / 4,\n halfPi * B3\n ];\n };\n function vanDerGrinten4() {\n return d3Geo.geoProjection(vanDerGrinten4Raw).scale(127.16);\n }\n function wagnerFormula(cx, cy, m1, m2, n) {\n function forward(lambda, phi) {\n var s = m1 * sin(m2 * phi), c0 = sqrt(1 - s * s), c1 = sqrt(2 / (1 + c0 * cos(lambda *= n)));\n return [\n cx * c0 * c1 * sin(lambda),\n cy * s * c1\n ];\n }\n forward.invert = function(x, y) {\n var t12 = x / cx, t22 = y / cy, p = sqrt(t12 * t12 + t22 * t22), c = 2 * asin(p / 2);\n return [\n atan2(x * tan(c), cx * p) / n,\n p && asin(y * sin(c) / (cy * m1 * p)) / m2\n ];\n };\n return forward;\n }\n function wagnerRaw(poleline, parallels, inflation, ratio) {\n var phi1 = pi / 3;\n poleline = max(poleline, epsilon);\n parallels = max(parallels, epsilon);\n poleline = min(poleline, halfPi);\n parallels = min(parallels, pi - epsilon);\n inflation = max(inflation, 0);\n inflation = min(inflation, 100 - epsilon);\n ratio = max(ratio, epsilon);\n var vinflation = inflation / 100 + 1;\n var vratio = ratio / 100;\n var m2 = acos(vinflation * cos(phi1)) / phi1, m1 = sin(poleline) / sin(m2 * halfPi), n = parallels / pi, k2 = sqrt(vratio * sin(poleline / 2) / sin(parallels / 2)), cx = k2 / sqrt(n * m1 * m2), cy = 1 / (k2 * sqrt(n * m1 * m2));\n return wagnerFormula(cx, cy, m1, m2, n);\n }\n function wagner() {\n var poleline = 65 * radians2, parallels = 60 * radians2, inflation = 20, ratio = 200, mutate = d3Geo.geoProjectionMutator(wagnerRaw), projection = mutate(poleline, parallels, inflation, ratio);\n projection.poleline = function(_) {\n return arguments.length ? mutate(poleline = +_ * radians2, parallels, inflation, ratio) : poleline * degrees3;\n };\n projection.parallels = function(_) {\n return arguments.length ? mutate(poleline, parallels = +_ * radians2, inflation, ratio) : parallels * degrees3;\n };\n projection.inflation = function(_) {\n return arguments.length ? mutate(poleline, parallels, inflation = +_, ratio) : inflation;\n };\n projection.ratio = function(_) {\n return arguments.length ? mutate(poleline, parallels, inflation, ratio = +_) : ratio;\n };\n return projection.scale(163.775);\n }\n function wagner7() {\n return wagner().poleline(65).parallels(60).inflation(0).ratio(200).scale(172.633);\n }\n var A2 = 4 * pi + 3 * sqrt(3), B2 = 2 * sqrt(2 * pi * sqrt(3) / A2);\n var wagner4Raw = mollweideBromleyRaw(B2 * sqrt(3) / pi, B2, A2 / 6);\n function wagner4() {\n return d3Geo.geoProjection(wagner4Raw).scale(176.84);\n }\n function wagner6Raw(lambda, phi) {\n return [lambda * sqrt(1 - 3 * phi * phi / (pi * pi)), phi];\n }\n wagner6Raw.invert = function(x, y) {\n return [x / sqrt(1 - 3 * y * y / (pi * pi)), y];\n };\n function wagner6() {\n return d3Geo.geoProjection(wagner6Raw).scale(152.63);\n }\n function wiechelRaw(lambda, phi) {\n var cosPhi = cos(phi), sinPhi = cos(lambda) * cosPhi, sin1_Phi = 1 - sinPhi, cosLambda = cos(lambda = atan2(sin(lambda) * cosPhi, -sin(phi))), sinLambda = sin(lambda);\n cosPhi = sqrt(1 - sinPhi * sinPhi);\n return [\n sinLambda * cosPhi - cosLambda * sin1_Phi,\n -cosLambda * cosPhi - sinLambda * sin1_Phi\n ];\n }\n wiechelRaw.invert = function(x, y) {\n var w2 = (x * x + y * y) / -2, k2 = sqrt(-w2 * (2 + w2)), b = y * w2 + x * k2, a = x * w2 - y * k2, D2 = sqrt(a * a + b * b);\n return [\n atan2(k2 * b, D2 * (1 + w2)),\n D2 ? -asin(k2 * a / D2) : 0\n ];\n };\n function wiechel() {\n return d3Geo.geoProjection(wiechelRaw).rotate([0, -90, 45]).scale(124.75).clipAngle(180 - 1e-3);\n }\n function winkel3Raw(lambda, phi) {\n var coordinates = aitoffRaw(lambda, phi);\n return [\n (coordinates[0] + lambda / halfPi) / 2,\n (coordinates[1] + phi) / 2\n ];\n }\n winkel3Raw.invert = function(x, y) {\n var lambda = x, phi = y, i = 25;\n do {\n var cosphi = cos(phi), sinphi = sin(phi), sin_2phi = sin(2 * phi), sin2phi = sinphi * sinphi, cos2phi = cosphi * cosphi, sinlambda = sin(lambda), coslambda_2 = cos(lambda / 2), sinlambda_2 = sin(lambda / 2), sin2lambda_2 = sinlambda_2 * sinlambda_2, C2 = 1 - cos2phi * coslambda_2 * coslambda_2, E2 = C2 ? acos(cosphi * coslambda_2) * sqrt(F = 1 / C2) : F = 0, F, fx = 0.5 * (2 * E2 * cosphi * sinlambda_2 + lambda / halfPi) - x, fy = 0.5 * (E2 * sinphi + phi) - y, dxdlambda = 0.5 * F * (cos2phi * sin2lambda_2 + E2 * cosphi * coslambda_2 * sin2phi) + 0.5 / halfPi, dxdphi = F * (sinlambda * sin_2phi / 4 - E2 * sinphi * sinlambda_2), dydlambda = 0.125 * F * (sin_2phi * sinlambda_2 - E2 * sinphi * cos2phi * sinlambda), dydphi = 0.5 * F * (sin2phi * coslambda_2 + E2 * sin2lambda_2 * cosphi) + 0.5, denominator = dxdphi * dydlambda - dydphi * dxdlambda, dlambda = (fy * dxdphi - fx * dydphi) / denominator, dphi = (fx * dydlambda - fy * dxdlambda) / denominator;\n lambda -= dlambda, phi -= dphi;\n } while ((abs(dlambda) > epsilon || abs(dphi) > epsilon) && --i > 0);\n return [lambda, phi];\n };\n function winkel3() {\n return d3Geo.geoProjection(winkel3Raw).scale(158.837);\n }\n exports2.geoNaturalEarth = d3Geo.geoNaturalEarth1;\n exports2.geoNaturalEarthRaw = d3Geo.geoNaturalEarth1Raw;\n exports2.geoAiry = airy;\n exports2.geoAiryRaw = airyRaw;\n exports2.geoAitoff = aitoff;\n exports2.geoAitoffRaw = aitoffRaw;\n exports2.geoArmadillo = armadillo;\n exports2.geoArmadilloRaw = armadilloRaw;\n exports2.geoAugust = august;\n exports2.geoAugustRaw = augustRaw;\n exports2.geoBaker = baker;\n exports2.geoBakerRaw = bakerRaw;\n exports2.geoBerghaus = berghaus;\n exports2.geoBerghausRaw = berghausRaw;\n exports2.geoBertin1953 = bertin;\n exports2.geoBertin1953Raw = bertin1953Raw;\n exports2.geoBoggs = boggs;\n exports2.geoBoggsRaw = boggsRaw;\n exports2.geoBonne = bonne;\n exports2.geoBonneRaw = bonneRaw;\n exports2.geoBottomley = bottomley;\n exports2.geoBottomleyRaw = bottomleyRaw;\n exports2.geoBromley = bromley;\n exports2.geoBromleyRaw = bromleyRaw;\n exports2.geoChamberlin = chamberlin;\n exports2.geoChamberlinRaw = chamberlinRaw;\n exports2.geoChamberlinAfrica = chamberlinAfrica;\n exports2.geoCollignon = collignon;\n exports2.geoCollignonRaw = collignonRaw;\n exports2.geoCraig = craig;\n exports2.geoCraigRaw = craigRaw;\n exports2.geoCraster = craster;\n exports2.geoCrasterRaw = crasterRaw;\n exports2.geoCylindricalEqualArea = cylindricalEqualArea;\n exports2.geoCylindricalEqualAreaRaw = cylindricalEqualAreaRaw;\n exports2.geoCylindricalStereographic = cylindricalStereographic;\n exports2.geoCylindricalStereographicRaw = cylindricalStereographicRaw;\n exports2.geoEckert1 = eckert1;\n exports2.geoEckert1Raw = eckert1Raw;\n exports2.geoEckert2 = eckert2;\n exports2.geoEckert2Raw = eckert2Raw;\n exports2.geoEckert3 = eckert3;\n exports2.geoEckert3Raw = eckert3Raw;\n exports2.geoEckert4 = eckert4;\n exports2.geoEckert4Raw = eckert4Raw;\n exports2.geoEckert5 = eckert5;\n exports2.geoEckert5Raw = eckert5Raw;\n exports2.geoEckert6 = eckert6;\n exports2.geoEckert6Raw = eckert6Raw;\n exports2.geoEisenlohr = eisenlohr;\n exports2.geoEisenlohrRaw = eisenlohrRaw;\n exports2.geoFahey = fahey;\n exports2.geoFaheyRaw = faheyRaw;\n exports2.geoFoucaut = foucaut;\n exports2.geoFoucautRaw = foucautRaw;\n exports2.geoFoucautSinusoidal = foucautSinusoidal;\n exports2.geoFoucautSinusoidalRaw = foucautSinusoidalRaw;\n exports2.geoGilbert = gilbert;\n exports2.geoGingery = gingery;\n exports2.geoGingeryRaw = gingeryRaw;\n exports2.geoGinzburg4 = ginzburg4;\n exports2.geoGinzburg4Raw = ginzburg4Raw;\n exports2.geoGinzburg5 = ginzburg5;\n exports2.geoGinzburg5Raw = ginzburg5Raw;\n exports2.geoGinzburg6 = ginzburg6;\n exports2.geoGinzburg6Raw = ginzburg6Raw;\n exports2.geoGinzburg8 = ginzburg8;\n exports2.geoGinzburg8Raw = ginzburg8Raw;\n exports2.geoGinzburg9 = ginzburg9;\n exports2.geoGinzburg9Raw = ginzburg9Raw;\n exports2.geoGringorten = gringorten;\n exports2.geoGringortenRaw = gringortenRaw;\n exports2.geoGuyou = guyou;\n exports2.geoGuyouRaw = guyouRaw;\n exports2.geoHammer = hammer;\n exports2.geoHammerRaw = hammerRaw;\n exports2.geoHammerRetroazimuthal = hammerRetroazimuthal;\n exports2.geoHammerRetroazimuthalRaw = hammerRetroazimuthalRaw;\n exports2.geoHealpix = healpix;\n exports2.geoHealpixRaw = healpixRaw;\n exports2.geoHill = hill;\n exports2.geoHillRaw = hillRaw;\n exports2.geoHomolosine = homolosine;\n exports2.geoHomolosineRaw = homolosineRaw;\n exports2.geoHufnagel = hufnagel;\n exports2.geoHufnagelRaw = hufnagelRaw;\n exports2.geoHyperelliptical = hyperelliptical;\n exports2.geoHyperellipticalRaw = hyperellipticalRaw;\n exports2.geoInterrupt = interrupt;\n exports2.geoInterruptedBoggs = boggs$1;\n exports2.geoInterruptedHomolosine = homolosine$1;\n exports2.geoInterruptedMollweide = mollweide$1;\n exports2.geoInterruptedMollweideHemispheres = mollweideHemispheres;\n exports2.geoInterruptedSinuMollweide = sinuMollweide$1;\n exports2.geoInterruptedSinusoidal = sinusoidal$1;\n exports2.geoKavrayskiy7 = kavrayskiy7;\n exports2.geoKavrayskiy7Raw = kavrayskiy7Raw;\n exports2.geoLagrange = lagrange;\n exports2.geoLagrangeRaw = lagrangeRaw;\n exports2.geoLarrivee = larrivee;\n exports2.geoLarriveeRaw = larriveeRaw;\n exports2.geoLaskowski = laskowski;\n exports2.geoLaskowskiRaw = laskowskiRaw;\n exports2.geoLittrow = littrow;\n exports2.geoLittrowRaw = littrowRaw;\n exports2.geoLoximuthal = loximuthal;\n exports2.geoLoximuthalRaw = loximuthalRaw;\n exports2.geoMiller = miller;\n exports2.geoMillerRaw = millerRaw;\n exports2.geoModifiedStereographic = modifiedStereographic;\n exports2.geoModifiedStereographicRaw = modifiedStereographicRaw;\n exports2.geoModifiedStereographicAlaska = modifiedStereographicAlaska;\n exports2.geoModifiedStereographicGs48 = modifiedStereographicGs48;\n exports2.geoModifiedStereographicGs50 = modifiedStereographicGs50;\n exports2.geoModifiedStereographicMiller = modifiedStereographicMiller;\n exports2.geoModifiedStereographicLee = modifiedStereographicLee;\n exports2.geoMollweide = mollweide;\n exports2.geoMollweideRaw = mollweideRaw;\n exports2.geoMtFlatPolarParabolic = mtFlatPolarParabolic;\n exports2.geoMtFlatPolarParabolicRaw = mtFlatPolarParabolicRaw;\n exports2.geoMtFlatPolarQuartic = mtFlatPolarQuartic;\n exports2.geoMtFlatPolarQuarticRaw = mtFlatPolarQuarticRaw;\n exports2.geoMtFlatPolarSinusoidal = mtFlatPolarSinusoidal;\n exports2.geoMtFlatPolarSinusoidalRaw = mtFlatPolarSinusoidalRaw;\n exports2.geoNaturalEarth2 = naturalEarth2;\n exports2.geoNaturalEarth2Raw = naturalEarth2Raw;\n exports2.geoNellHammer = nellHammer;\n exports2.geoNellHammerRaw = nellHammerRaw;\n exports2.geoInterruptedQuarticAuthalic = quarticAuthalic;\n exports2.geoNicolosi = nicolosi;\n exports2.geoNicolosiRaw = nicolosiRaw;\n exports2.geoPatterson = patterson;\n exports2.geoPattersonRaw = pattersonRaw;\n exports2.geoPolyconic = polyconic;\n exports2.geoPolyconicRaw = polyconicRaw;\n exports2.geoPolyhedral = polyhedral;\n exports2.geoPolyhedralButterfly = butterfly;\n exports2.geoPolyhedralCollignon = collignon$1;\n exports2.geoPolyhedralWaterman = waterman;\n exports2.geoProject = index;\n exports2.geoGringortenQuincuncial = gringorten$1;\n exports2.geoPeirceQuincuncial = peirce;\n exports2.geoPierceQuincuncial = peirce;\n exports2.geoQuantize = quantize;\n exports2.geoQuincuncial = quincuncial;\n exports2.geoRectangularPolyconic = rectangularPolyconic;\n exports2.geoRectangularPolyconicRaw = rectangularPolyconicRaw;\n exports2.geoRobinson = robinson;\n exports2.geoRobinsonRaw = robinsonRaw;\n exports2.geoSatellite = satellite;\n exports2.geoSatelliteRaw = satelliteRaw;\n exports2.geoSinuMollweide = sinuMollweide;\n exports2.geoSinuMollweideRaw = sinuMollweideRaw;\n exports2.geoSinusoidal = sinusoidal;\n exports2.geoSinusoidalRaw = sinusoidalRaw;\n exports2.geoStitch = stitch;\n exports2.geoTimes = times;\n exports2.geoTimesRaw = timesRaw;\n exports2.geoTwoPointAzimuthal = twoPointAzimuthal;\n exports2.geoTwoPointAzimuthalRaw = twoPointAzimuthalRaw;\n exports2.geoTwoPointAzimuthalUsa = twoPointAzimuthalUsa;\n exports2.geoTwoPointEquidistant = twoPointEquidistant;\n exports2.geoTwoPointEquidistantRaw = twoPointEquidistantRaw;\n exports2.geoTwoPointEquidistantUsa = twoPointEquidistantUsa;\n exports2.geoVanDerGrinten = vanDerGrinten;\n exports2.geoVanDerGrintenRaw = vanDerGrintenRaw;\n exports2.geoVanDerGrinten2 = vanDerGrinten2;\n exports2.geoVanDerGrinten2Raw = vanDerGrinten2Raw;\n exports2.geoVanDerGrinten3 = vanDerGrinten3;\n exports2.geoVanDerGrinten3Raw = vanDerGrinten3Raw;\n exports2.geoVanDerGrinten4 = vanDerGrinten4;\n exports2.geoVanDerGrinten4Raw = vanDerGrinten4Raw;\n exports2.geoWagner = wagner;\n exports2.geoWagner7 = wagner7;\n exports2.geoWagnerRaw = wagnerRaw;\n exports2.geoWagner4 = wagner4;\n exports2.geoWagner4Raw = wagner4Raw;\n exports2.geoWagner6 = wagner6;\n exports2.geoWagner6Raw = wagner6Raw;\n exports2.geoWiechel = wiechel;\n exports2.geoWiechelRaw = wiechelRaw;\n exports2.geoWinkel3 = winkel3;\n exports2.geoWinkel3Raw = winkel3Raw;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/plots/geo/zoom.js\n var require_zoom = __commonJS({\n \"src/plots/geo/zoom.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Registry = require_registry();\n var radians2 = Math.PI / 180;\n var degrees3 = 180 / Math.PI;\n var zoomstartStyle = { cursor: \"pointer\" };\n var zoomendStyle = { cursor: \"auto\" };\n function createGeoZoom(geo, geoLayout) {\n var projection = geo.projection;\n var zoomConstructor;\n if (geoLayout._isScoped) {\n zoomConstructor = zoomScoped;\n } else if (geoLayout._isClipped) {\n zoomConstructor = zoomClipped;\n } else {\n zoomConstructor = zoomNonClipped;\n }\n return zoomConstructor(geo, projection);\n }\n module.exports = createGeoZoom;\n function initZoom(geo, projection) {\n return d3.behavior.zoom().translate(projection.translate()).scale(projection.scale());\n }\n function sync(geo, projection, cb) {\n var id = geo.id;\n var gd = geo.graphDiv;\n var layout = gd.layout;\n var userOpts = layout[id];\n var fullLayout = gd._fullLayout;\n var fullOpts = fullLayout[id];\n var preGUI = {};\n var eventData = {};\n function set(propStr, val) {\n preGUI[id + \".\" + propStr] = Lib.nestedProperty(userOpts, propStr).get();\n Registry.call(\"_storeDirectGUIEdit\", layout, fullLayout._preGUI, preGUI);\n var fullNp = Lib.nestedProperty(fullOpts, propStr);\n if (fullNp.get() !== val) {\n fullNp.set(val);\n Lib.nestedProperty(userOpts, propStr).set(val);\n eventData[id + \".\" + propStr] = val;\n }\n }\n cb(set);\n set(\"projection.scale\", projection.scale() / geo.fitScale);\n set(\"fitbounds\", false);\n gd.emit(\"plotly_relayout\", eventData);\n }\n function zoomScoped(geo, projection) {\n var zoom = initZoom(geo, projection);\n function handleZoomstart() {\n d3.select(this).style(zoomstartStyle);\n }\n function handleZoom() {\n projection.scale(d3.event.scale).translate(d3.event.translate);\n geo.render(true);\n var center = projection.invert(geo.midPt);\n geo.graphDiv.emit(\"plotly_relayouting\", {\n \"geo.projection.scale\": projection.scale() / geo.fitScale,\n \"geo.center.lon\": center[0],\n \"geo.center.lat\": center[1]\n });\n }\n function syncCb(set) {\n var center = projection.invert(geo.midPt);\n set(\"center.lon\", center[0]);\n set(\"center.lat\", center[1]);\n }\n function handleZoomend() {\n d3.select(this).style(zoomendStyle);\n sync(geo, projection, syncCb);\n }\n zoom.on(\"zoomstart\", handleZoomstart).on(\"zoom\", handleZoom).on(\"zoomend\", handleZoomend);\n return zoom;\n }\n function zoomNonClipped(geo, projection) {\n var zoom = initZoom(geo, projection);\n var INSIDETOLORANCEPXS = 2;\n var mouse0, rotate0, translate0, lastRotate, zoomPoint, mouse1, rotate1, point1, didZoom;\n function position2(x) {\n return projection.invert(x);\n }\n function outside(x) {\n var pos = position2(x);\n if (!pos) return true;\n var pt = projection(pos);\n return Math.abs(pt[0] - x[0]) > INSIDETOLORANCEPXS || Math.abs(pt[1] - x[1]) > INSIDETOLORANCEPXS;\n }\n function handleZoomstart() {\n d3.select(this).style(zoomstartStyle);\n mouse0 = d3.mouse(this);\n rotate0 = projection.rotate();\n translate0 = projection.translate();\n lastRotate = rotate0;\n zoomPoint = position2(mouse0);\n }\n function handleZoom() {\n mouse1 = d3.mouse(this);\n if (outside(mouse0)) {\n zoom.scale(projection.scale());\n zoom.translate(projection.translate());\n return;\n }\n projection.scale(d3.event.scale);\n projection.translate([translate0[0], d3.event.translate[1]]);\n if (!zoomPoint) {\n mouse0 = mouse1;\n zoomPoint = position2(mouse0);\n } else if (position2(mouse1)) {\n point1 = position2(mouse1);\n rotate1 = [lastRotate[0] + (point1[0] - zoomPoint[0]), rotate0[1], rotate0[2]];\n projection.rotate(rotate1);\n lastRotate = rotate1;\n }\n didZoom = true;\n geo.render(true);\n var rotate = projection.rotate();\n var center = projection.invert(geo.midPt);\n geo.graphDiv.emit(\"plotly_relayouting\", {\n \"geo.projection.scale\": projection.scale() / geo.fitScale,\n \"geo.center.lon\": center[0],\n \"geo.center.lat\": center[1],\n \"geo.projection.rotation.lon\": -rotate[0]\n });\n }\n function handleZoomend() {\n d3.select(this).style(zoomendStyle);\n if (didZoom) sync(geo, projection, syncCb);\n }\n function syncCb(set) {\n var rotate = projection.rotate();\n var center = projection.invert(geo.midPt);\n set(\"projection.rotation.lon\", -rotate[0]);\n set(\"center.lon\", center[0]);\n set(\"center.lat\", center[1]);\n }\n zoom.on(\"zoomstart\", handleZoomstart).on(\"zoom\", handleZoom).on(\"zoomend\", handleZoomend);\n return zoom;\n }\n function zoomClipped(geo, projection) {\n var view = { r: projection.rotate(), k: projection.scale() };\n var zoom = initZoom(geo, projection);\n var event = d3eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\");\n var zooming = 0;\n var zoomOn = zoom.on;\n var zoomPoint;\n zoom.on(\"zoomstart\", function() {\n d3.select(this).style(zoomstartStyle);\n var mouse0 = d3.mouse(this);\n var rotate0 = projection.rotate();\n var lastRotate = rotate0;\n var translate0 = projection.translate();\n var q = quaternionFromEuler(rotate0);\n zoomPoint = position(projection, mouse0);\n zoomOn.call(zoom, \"zoom\", function() {\n var mouse1 = d3.mouse(this);\n projection.scale(view.k = d3.event.scale);\n if (!zoomPoint) {\n mouse0 = mouse1;\n zoomPoint = position(projection, mouse0);\n } else if (position(projection, mouse1)) {\n projection.rotate(rotate0).translate(translate0);\n var point1 = position(projection, mouse1);\n var between = rotateBetween(zoomPoint, point1);\n var newEuler = eulerFromQuaternion(multiply(q, between));\n var rotateAngles = view.r = unRoll(newEuler, zoomPoint, lastRotate);\n if (!isFinite(rotateAngles[0]) || !isFinite(rotateAngles[1]) || !isFinite(rotateAngles[2])) {\n rotateAngles = lastRotate;\n }\n projection.rotate(rotateAngles);\n lastRotate = rotateAngles;\n }\n zoomed(event.of(this, arguments));\n });\n zoomstarted(event.of(this, arguments));\n }).on(\"zoomend\", function() {\n d3.select(this).style(zoomendStyle);\n zoomOn.call(zoom, \"zoom\", null);\n zoomended(event.of(this, arguments));\n sync(geo, projection, syncCb);\n }).on(\"zoom.redraw\", function() {\n geo.render(true);\n var _rotate = projection.rotate();\n geo.graphDiv.emit(\"plotly_relayouting\", {\n \"geo.projection.scale\": projection.scale() / geo.fitScale,\n \"geo.projection.rotation.lon\": -_rotate[0],\n \"geo.projection.rotation.lat\": -_rotate[1]\n });\n });\n function zoomstarted(dispatch) {\n if (!zooming++) dispatch({ type: \"zoomstart\" });\n }\n function zoomed(dispatch) {\n dispatch({ type: \"zoom\" });\n }\n function zoomended(dispatch) {\n if (!--zooming) dispatch({ type: \"zoomend\" });\n }\n function syncCb(set) {\n var _rotate = projection.rotate();\n set(\"projection.rotation.lon\", -_rotate[0]);\n set(\"projection.rotation.lat\", -_rotate[1]);\n }\n return d3.rebind(zoom, event, \"on\");\n }\n function position(projection, point) {\n var spherical = projection.invert(point);\n return spherical && isFinite(spherical[0]) && isFinite(spherical[1]) && cartesian(spherical);\n }\n function quaternionFromEuler(euler) {\n var lambda = 0.5 * euler[0] * radians2;\n var phi = 0.5 * euler[1] * radians2;\n var gamma2 = 0.5 * euler[2] * radians2;\n var sinLambda = Math.sin(lambda);\n var cosLambda = Math.cos(lambda);\n var sinPhi = Math.sin(phi);\n var cosPhi = Math.cos(phi);\n var sinGamma = Math.sin(gamma2);\n var cosGamma = Math.cos(gamma2);\n return [\n cosLambda * cosPhi * cosGamma + sinLambda * sinPhi * sinGamma,\n sinLambda * cosPhi * cosGamma - cosLambda * sinPhi * sinGamma,\n cosLambda * sinPhi * cosGamma + sinLambda * cosPhi * sinGamma,\n cosLambda * cosPhi * sinGamma - sinLambda * sinPhi * cosGamma\n ];\n }\n function multiply(a, b) {\n var a0 = a[0];\n var a1 = a[1];\n var a2 = a[2];\n var a3 = a[3];\n var b0 = b[0];\n var b1 = b[1];\n var b2 = b[2];\n var b3 = b[3];\n return [\n a0 * b0 - a1 * b1 - a2 * b2 - a3 * b3,\n a0 * b1 + a1 * b0 + a2 * b3 - a3 * b2,\n a0 * b2 - a1 * b3 + a2 * b0 + a3 * b1,\n a0 * b3 + a1 * b2 - a2 * b1 + a3 * b0\n ];\n }\n function rotateBetween(a, b) {\n if (!a || !b) return;\n var axis = cross(a, b);\n var norm = Math.sqrt(dot(axis, axis));\n var halfgamma = 0.5 * Math.acos(Math.max(-1, Math.min(1, dot(a, b))));\n var k = Math.sin(halfgamma) / norm;\n return norm && [Math.cos(halfgamma), axis[2] * k, -axis[1] * k, axis[0] * k];\n }\n function unRoll(rotateAngles, pt, lastRotate) {\n var ptRotated = rotateCartesian(pt, 2, rotateAngles[0]);\n ptRotated = rotateCartesian(ptRotated, 1, rotateAngles[1]);\n ptRotated = rotateCartesian(ptRotated, 0, rotateAngles[2] - lastRotate[2]);\n var x = pt[0];\n var y = pt[1];\n var z = pt[2];\n var f = ptRotated[0];\n var g = ptRotated[1];\n var h = ptRotated[2];\n var theta = Math.atan2(y, x) * degrees3;\n var a = Math.sqrt(x * x + y * y);\n var b;\n var newYaw1;\n if (Math.abs(g) > a) {\n newYaw1 = (g > 0 ? 90 : -90) - theta;\n b = 0;\n } else {\n newYaw1 = Math.asin(g / a) * degrees3 - theta;\n b = Math.sqrt(a * a - g * g);\n }\n var newYaw2 = 180 - newYaw1 - 2 * theta;\n var newPitch1 = (Math.atan2(h, f) - Math.atan2(z, b)) * degrees3;\n var newPitch2 = (Math.atan2(h, f) - Math.atan2(z, -b)) * degrees3;\n var dist1 = angleDistance(lastRotate[0], lastRotate[1], newYaw1, newPitch1);\n var dist2 = angleDistance(lastRotate[0], lastRotate[1], newYaw2, newPitch2);\n if (dist1 <= dist2) return [newYaw1, newPitch1, lastRotate[2]];\n else return [newYaw2, newPitch2, lastRotate[2]];\n }\n function angleDistance(yaw0, pitch0, yaw1, pitch1) {\n var dYaw = angleMod(yaw1 - yaw0);\n var dPitch = angleMod(pitch1 - pitch0);\n return Math.sqrt(dYaw * dYaw + dPitch * dPitch);\n }\n function angleMod(angle) {\n return (angle % 360 + 540) % 360 - 180;\n }\n function rotateCartesian(vector, axis, angle) {\n var angleRads = angle * radians2;\n var vectorOut = vector.slice();\n var ax1 = axis === 0 ? 1 : 0;\n var ax2 = axis === 2 ? 1 : 2;\n var cosa = Math.cos(angleRads);\n var sina = Math.sin(angleRads);\n vectorOut[ax1] = vector[ax1] * cosa - vector[ax2] * sina;\n vectorOut[ax2] = vector[ax2] * cosa + vector[ax1] * sina;\n return vectorOut;\n }\n function eulerFromQuaternion(q) {\n return [\n Math.atan2(2 * (q[0] * q[1] + q[2] * q[3]), 1 - 2 * (q[1] * q[1] + q[2] * q[2])) * degrees3,\n Math.asin(Math.max(-1, Math.min(1, 2 * (q[0] * q[2] - q[3] * q[1])))) * degrees3,\n Math.atan2(2 * (q[0] * q[3] + q[1] * q[2]), 1 - 2 * (q[2] * q[2] + q[3] * q[3])) * degrees3\n ];\n }\n function cartesian(spherical) {\n var lambda = spherical[0] * radians2;\n var phi = spherical[1] * radians2;\n var cosPhi = Math.cos(phi);\n return [\n cosPhi * Math.cos(lambda),\n cosPhi * Math.sin(lambda),\n Math.sin(phi)\n ];\n }\n function dot(a, b) {\n var s = 0;\n for (var i = 0, n = a.length; i < n; ++i) s += a[i] * b[i];\n return s;\n }\n function cross(a, b) {\n return [\n a[1] * b[2] - a[2] * b[1],\n a[2] * b[0] - a[0] * b[2],\n a[0] * b[1] - a[1] * b[0]\n ];\n }\n function d3eventDispatch(target) {\n var i = 0;\n var n = arguments.length;\n var argumentz = [];\n while (++i < n) argumentz.push(arguments[i]);\n var dispatch = d3.dispatch.apply(null, argumentz);\n dispatch.of = function(thiz, argumentz2) {\n return function(e1) {\n var e0;\n try {\n e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz2);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n }\n });\n\n // src/plots/geo/geo.js\n var require_geo = __commonJS({\n \"src/plots/geo/geo.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var geo = require_d3_geo();\n var geoPath = geo.geoPath;\n var geoDistance = geo.geoDistance;\n var geoProjection = require_d3_geo_projection();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Fx = require_fx();\n var Plots = require_plots();\n var Axes = require_axes();\n var getAutoRange = require_autorange().getAutoRange;\n var dragElement = require_dragelement();\n var prepSelect = require_selections().prepSelect;\n var clearOutline = require_selections().clearOutline;\n var selectOnClick = require_selections().selectOnClick;\n var createGeoZoom = require_zoom();\n var constants = require_constants22();\n var geoUtils = require_geo_location_utils();\n var topojsonUtils = require_topojson_utils();\n var topojsonFeature = require_topojson_client().feature;\n function Geo(opts) {\n this.id = opts.id;\n this.graphDiv = opts.graphDiv;\n this.container = opts.container;\n this.topojsonURL = opts.topojsonURL;\n this.isStatic = opts.staticPlot;\n this.topojsonName = null;\n this.topojson = null;\n this.projection = null;\n this.scope = null;\n this.viewInitial = null;\n this.fitScale = null;\n this.bounds = null;\n this.midPt = null;\n this.hasChoropleth = false;\n this.traceHash = {};\n this.layers = {};\n this.basePaths = {};\n this.dataPaths = {};\n this.dataPoints = {};\n this.clipDef = null;\n this.clipRect = null;\n this.bgRect = null;\n this.makeFramework();\n }\n var proto = Geo.prototype;\n module.exports = function createGeo(opts) {\n return new Geo(opts);\n };\n proto.plot = function(geoCalcData, fullLayout, promises, replot) {\n var _this = this;\n if (replot) return _this.update(geoCalcData, fullLayout, true);\n _this._geoCalcData = geoCalcData;\n _this._fullLayout = fullLayout;\n var geoLayout = fullLayout[this.id];\n var geoPromises = [];\n var needsTopojson = false;\n for (var k in constants.layerNameToAdjective) {\n if (k !== \"frame\" && geoLayout[\"show\" + k]) {\n needsTopojson = true;\n break;\n }\n }\n var hasMarkerAngles = false;\n for (var i = 0; i < geoCalcData.length; i++) {\n var trace = geoCalcData[0][0].trace;\n trace._geo = _this;\n if (trace.locationmode) {\n needsTopojson = true;\n }\n var marker = trace.marker;\n if (marker) {\n var angle = marker.angle;\n var angleref = marker.angleref;\n if (angle || angleref === \"north\" || angleref === \"previous\") hasMarkerAngles = true;\n }\n }\n this._hasMarkerAngles = hasMarkerAngles;\n if (needsTopojson) {\n var topojsonNameNew = topojsonUtils.getTopojsonName(geoLayout);\n if (_this.topojson === null || topojsonNameNew !== _this.topojsonName) {\n _this.topojsonName = topojsonNameNew;\n if (PlotlyGeoAssets.topojson[_this.topojsonName] === void 0) {\n geoPromises.push(_this.fetchTopojson());\n }\n }\n }\n geoPromises = geoPromises.concat(geoUtils.fetchTraceGeoData(geoCalcData));\n promises.push(new Promise(function(resolve, reject) {\n Promise.all(geoPromises).then(function() {\n _this.topojson = PlotlyGeoAssets.topojson[_this.topojsonName];\n _this.update(geoCalcData, fullLayout);\n resolve();\n }).catch(reject);\n }));\n };\n proto.fetchTopojson = function() {\n var _this = this;\n var topojsonPath = topojsonUtils.getTopojsonPath(_this.topojsonURL, _this.topojsonName);\n return new Promise(function(resolve, reject) {\n d3.json(topojsonPath, function(err, topojson) {\n if (err) {\n if (err.status === 404) {\n return reject(new Error([\n \"plotly.js could not find topojson file at\",\n topojsonPath + \".\",\n \"Make sure the *topojsonURL* plot config option\",\n \"is set properly.\"\n ].join(\" \")));\n } else {\n return reject(new Error([\n \"unexpected error while fetching topojson file at\",\n topojsonPath\n ].join(\" \")));\n }\n }\n PlotlyGeoAssets.topojson[_this.topojsonName] = topojson;\n resolve();\n });\n });\n };\n proto.update = function(geoCalcData, fullLayout, replot) {\n var geoLayout = fullLayout[this.id];\n this.hasChoropleth = false;\n for (var i = 0; i < geoCalcData.length; i++) {\n var calcTrace = geoCalcData[i];\n var trace = calcTrace[0].trace;\n if (trace.type === \"choropleth\") {\n this.hasChoropleth = true;\n }\n if (trace.visible === true && trace._length > 0) {\n trace._module.calcGeoJSON(calcTrace, fullLayout);\n }\n }\n if (!replot) {\n var hasInvalidBounds = this.updateProjection(geoCalcData, fullLayout);\n if (hasInvalidBounds) return;\n if (!this.viewInitial || this.scope !== geoLayout.scope) {\n this.saveViewInitial(geoLayout);\n }\n }\n this.scope = geoLayout.scope;\n this.updateBaseLayers(fullLayout, geoLayout);\n this.updateDims(fullLayout, geoLayout);\n this.updateFx(fullLayout, geoLayout);\n Plots.generalUpdatePerTraceModule(this.graphDiv, this, geoCalcData, geoLayout);\n var scatterLayer = this.layers.frontplot.select(\".scatterlayer\");\n this.dataPoints.point = scatterLayer.selectAll(\".point\");\n this.dataPoints.text = scatterLayer.selectAll(\"text\");\n this.dataPaths.line = scatterLayer.selectAll(\".js-line\");\n var choroplethLayer = this.layers.backplot.select(\".choroplethlayer\");\n this.dataPaths.choropleth = choroplethLayer.selectAll(\"path\");\n this._render();\n };\n proto.updateProjection = function(geoCalcData, fullLayout) {\n var gd = this.graphDiv;\n var geoLayout = fullLayout[this.id];\n var gs = fullLayout._size;\n var domain = geoLayout.domain;\n var projLayout = geoLayout.projection;\n var lonaxis = geoLayout.lonaxis;\n var lataxis = geoLayout.lataxis;\n var axLon = lonaxis._ax;\n var axLat = lataxis._ax;\n var projection = this.projection = getProjection(geoLayout);\n var extent = [[\n gs.l + gs.w * domain.x[0],\n gs.t + gs.h * (1 - domain.y[1])\n ], [\n gs.l + gs.w * domain.x[1],\n gs.t + gs.h * (1 - domain.y[0])\n ]];\n var center = geoLayout.center || {};\n var rotation = projLayout.rotation || {};\n var lonaxisRange = lonaxis.range || [];\n var lataxisRange = lataxis.range || [];\n if (geoLayout.fitbounds) {\n axLon._length = extent[1][0] - extent[0][0];\n axLat._length = extent[1][1] - extent[0][1];\n axLon.range = getAutoRange(gd, axLon);\n axLat.range = getAutoRange(gd, axLat);\n var midLon = (axLon.range[0] + axLon.range[1]) / 2;\n var midLat = (axLat.range[0] + axLat.range[1]) / 2;\n if (geoLayout._isScoped) {\n center = { lon: midLon, lat: midLat };\n } else if (geoLayout._isClipped) {\n center = { lon: midLon, lat: midLat };\n rotation = { lon: midLon, lat: midLat, roll: rotation.roll };\n var projType = projLayout.type;\n var lonHalfSpan = constants.lonaxisSpan[projType] / 2 || 180;\n var latHalfSpan = constants.lataxisSpan[projType] / 2 || 90;\n lonaxisRange = [midLon - lonHalfSpan, midLon + lonHalfSpan];\n lataxisRange = [midLat - latHalfSpan, midLat + latHalfSpan];\n } else {\n center = { lon: midLon, lat: midLat };\n rotation = { lon: midLon, lat: rotation.lat, roll: rotation.roll };\n }\n }\n projection.center([center.lon - rotation.lon, center.lat - rotation.lat]).rotate([-rotation.lon, -rotation.lat, rotation.roll]).parallels(projLayout.parallels);\n var rangeBox = makeRangeBox(lonaxisRange, lataxisRange);\n projection.fitExtent(extent, rangeBox);\n var b = this.bounds = projection.getBounds(rangeBox);\n var s = this.fitScale = projection.scale();\n var t = projection.translate();\n if (geoLayout.fitbounds) {\n var b2 = projection.getBounds(makeRangeBox(axLon.range, axLat.range));\n var k2 = Math.min(\n (b[1][0] - b[0][0]) / (b2[1][0] - b2[0][0]),\n (b[1][1] - b[0][1]) / (b2[1][1] - b2[0][1])\n );\n if (isFinite(k2)) {\n projection.scale(k2 * s);\n } else {\n Lib.warn(\"Something went wrong during\" + this.id + \"fitbounds computations.\");\n }\n } else {\n projection.scale(projLayout.scale * s);\n }\n var midPt = this.midPt = [\n (b[0][0] + b[1][0]) / 2,\n (b[0][1] + b[1][1]) / 2\n ];\n projection.translate([t[0] + (midPt[0] - t[0]), t[1] + (midPt[1] - t[1])]).clipExtent(b);\n if (geoLayout._isAlbersUsa) {\n var centerPx = projection([center.lon, center.lat]);\n var tt = projection.translate();\n projection.translate([\n tt[0] - (centerPx[0] - tt[0]),\n tt[1] - (centerPx[1] - tt[1])\n ]);\n }\n };\n proto.updateBaseLayers = function(fullLayout, geoLayout) {\n var _this = this;\n var topojson = _this.topojson;\n var layers = _this.layers;\n var basePaths = _this.basePaths;\n function isAxisLayer(d) {\n return d === \"lonaxis\" || d === \"lataxis\";\n }\n function isLineLayer(d) {\n return Boolean(constants.lineLayers[d]);\n }\n function isFillLayer(d) {\n return Boolean(constants.fillLayers[d]);\n }\n var allLayers = this.hasChoropleth ? constants.layersForChoropleth : constants.layers;\n var layerData = allLayers.filter(function(d) {\n return isLineLayer(d) || isFillLayer(d) ? geoLayout[\"show\" + d] : isAxisLayer(d) ? geoLayout[d].showgrid : true;\n });\n var join = _this.framework.selectAll(\".layer\").data(layerData, String);\n join.exit().each(function(d) {\n delete layers[d];\n delete basePaths[d];\n d3.select(this).remove();\n });\n join.enter().append(\"g\").attr(\"class\", function(d) {\n return \"layer \" + d;\n }).each(function(d) {\n var layer = layers[d] = d3.select(this);\n if (d === \"bg\") {\n _this.bgRect = layer.append(\"rect\").style(\"pointer-events\", \"all\");\n } else if (isAxisLayer(d)) {\n basePaths[d] = layer.append(\"path\").style(\"fill\", \"none\");\n } else if (d === \"backplot\") {\n layer.append(\"g\").classed(\"choroplethlayer\", true);\n } else if (d === \"frontplot\") {\n layer.append(\"g\").classed(\"scatterlayer\", true);\n } else if (isLineLayer(d)) {\n basePaths[d] = layer.append(\"path\").style(\"fill\", \"none\").style(\"stroke-miterlimit\", 2);\n } else if (isFillLayer(d)) {\n basePaths[d] = layer.append(\"path\").style(\"stroke\", \"none\");\n }\n });\n join.order();\n join.each(function(d) {\n var path = basePaths[d];\n var adj = constants.layerNameToAdjective[d];\n if (d === \"frame\") {\n path.datum(constants.sphereSVG);\n } else if (isLineLayer(d) || isFillLayer(d)) {\n path.datum(topojsonFeature(topojson, topojson.objects[d]));\n } else if (isAxisLayer(d)) {\n path.datum(makeGraticule(d, geoLayout, fullLayout)).call(Color2.stroke, geoLayout[d].gridcolor).call(Drawing.dashLine, geoLayout[d].griddash, geoLayout[d].gridwidth);\n }\n if (isLineLayer(d)) {\n path.call(Color2.stroke, geoLayout[adj + \"color\"]).call(Drawing.dashLine, \"\", geoLayout[adj + \"width\"]);\n } else if (isFillLayer(d)) {\n path.call(Color2.fill, geoLayout[adj + \"color\"]);\n }\n });\n };\n proto.updateDims = function(fullLayout, geoLayout) {\n var b = this.bounds;\n var hFrameWidth = (geoLayout.framewidth || 0) / 2;\n var l = b[0][0] - hFrameWidth;\n var t = b[0][1] - hFrameWidth;\n var w = b[1][0] - l + hFrameWidth;\n var h = b[1][1] - t + hFrameWidth;\n Drawing.setRect(this.clipRect, l, t, w, h);\n this.bgRect.call(Drawing.setRect, l, t, w, h).call(Color2.fill, geoLayout.bgcolor);\n this.xaxis._offset = l;\n this.xaxis._length = w;\n this.yaxis._offset = t;\n this.yaxis._length = h;\n };\n proto.updateFx = function(fullLayout, geoLayout) {\n var _this = this;\n var gd = _this.graphDiv;\n var bgRect = _this.bgRect;\n var dragMode = fullLayout.dragmode;\n var clickMode = fullLayout.clickmode;\n if (_this.isStatic) return;\n function zoomReset() {\n var viewInitial = _this.viewInitial;\n var updateObj = {};\n for (var k in viewInitial) {\n updateObj[_this.id + \".\" + k] = viewInitial[k];\n }\n Registry.call(\"_guiRelayout\", gd, updateObj);\n gd.emit(\"plotly_doubleclick\", null);\n }\n function invert(lonlat) {\n return _this.projection.invert([\n lonlat[0] + _this.xaxis._offset,\n lonlat[1] + _this.yaxis._offset\n ]);\n }\n var fillRangeItems = function(eventData, poly) {\n if (poly.isRect) {\n var ranges = eventData.range = {};\n ranges[_this.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n } else {\n var dataPts = eventData.lassoPoints = {};\n dataPts[_this.id] = poly.map(invert);\n }\n };\n var dragOptions = {\n element: _this.bgRect.node(),\n gd,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis,\n fillRangeItems\n },\n xaxes: [_this.xaxis],\n yaxes: [_this.yaxis],\n subplot: _this.id,\n clickFn: function(numClicks) {\n if (numClicks === 2) {\n clearOutline(gd);\n }\n }\n };\n if (dragMode === \"pan\") {\n bgRect.node().onmousedown = null;\n bgRect.call(createGeoZoom(_this, geoLayout));\n bgRect.on(\"dblclick.zoom\", zoomReset);\n if (!gd._context._scrollZoom.geo) {\n bgRect.on(\"wheel.zoom\", null);\n }\n } else if (dragMode === \"select\" || dragMode === \"lasso\") {\n bgRect.on(\".zoom\", null);\n dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, dragOptions, dragMode);\n };\n dragElement.init(dragOptions);\n }\n bgRect.on(\"mousemove\", function() {\n var lonlat = _this.projection.invert(Lib.getPositionFromD3Event());\n if (!lonlat) {\n return dragElement.unhover(gd, d3.event);\n }\n _this.xaxis.p2c = function() {\n return lonlat[0];\n };\n _this.yaxis.p2c = function() {\n return lonlat[1];\n };\n Fx.hover(gd, d3.event, _this.id);\n });\n bgRect.on(\"mouseout\", function() {\n if (gd._dragging) return;\n dragElement.unhover(gd, d3.event);\n });\n bgRect.on(\"click\", function() {\n if (dragMode !== \"select\" && dragMode !== \"lasso\") {\n if (clickMode.indexOf(\"select\") > -1) {\n selectOnClick(\n d3.event,\n gd,\n [_this.xaxis],\n [_this.yaxis],\n _this.id,\n dragOptions\n );\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, d3.event);\n }\n }\n });\n };\n proto.makeFramework = function() {\n var _this = this;\n var gd = _this.graphDiv;\n var fullLayout = gd._fullLayout;\n var clipId = \"clip\" + fullLayout._uid + _this.id;\n _this.clipDef = fullLayout._clips.append(\"clipPath\").attr(\"id\", clipId);\n _this.clipRect = _this.clipDef.append(\"rect\");\n _this.framework = d3.select(_this.container).append(\"g\").attr(\"class\", \"geo \" + _this.id).call(Drawing.setClipUrl, clipId, gd);\n _this.project = function(v) {\n var px = _this.projection(v);\n return px ? [px[0] - _this.xaxis._offset, px[1] - _this.yaxis._offset] : [null, null];\n };\n _this.xaxis = {\n _id: \"x\",\n c2p: function(v) {\n return _this.project(v)[0];\n }\n };\n _this.yaxis = {\n _id: \"y\",\n c2p: function(v) {\n return _this.project(v)[1];\n }\n };\n _this.mockAxis = {\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n Axes.setConvert(_this.mockAxis, fullLayout);\n };\n proto.saveViewInitial = function(geoLayout) {\n var center = geoLayout.center || {};\n var projLayout = geoLayout.projection;\n var rotation = projLayout.rotation || {};\n this.viewInitial = {\n fitbounds: geoLayout.fitbounds,\n \"projection.scale\": projLayout.scale\n };\n var extra;\n if (geoLayout._isScoped) {\n extra = {\n \"center.lon\": center.lon,\n \"center.lat\": center.lat\n };\n } else if (geoLayout._isClipped) {\n extra = {\n \"projection.rotation.lon\": rotation.lon,\n \"projection.rotation.lat\": rotation.lat\n };\n } else {\n extra = {\n \"center.lon\": center.lon,\n \"center.lat\": center.lat,\n \"projection.rotation.lon\": rotation.lon\n };\n }\n Lib.extendFlat(this.viewInitial, extra);\n };\n proto.render = function(mayRedrawOnUpdates) {\n if (this._hasMarkerAngles && mayRedrawOnUpdates) {\n this.plot(this._geoCalcData, this._fullLayout, [], true);\n } else {\n this._render();\n }\n };\n proto._render = function() {\n var projection = this.projection;\n var pathFn = projection.getPath();\n var k;\n function translatePoints(d) {\n var lonlatPx = projection(d.lonlat);\n return lonlatPx ? strTranslate(lonlatPx[0], lonlatPx[1]) : null;\n }\n function hideShowPoints(d) {\n return projection.isLonLatOverEdges(d.lonlat) ? \"none\" : null;\n }\n for (k in this.basePaths) {\n this.basePaths[k].attr(\"d\", pathFn);\n }\n for (k in this.dataPaths) {\n this.dataPaths[k].attr(\"d\", function(d) {\n return pathFn(d.geojson);\n });\n }\n for (k in this.dataPoints) {\n this.dataPoints[k].attr(\"display\", hideShowPoints).attr(\"transform\", translatePoints);\n }\n };\n function getProjection(geoLayout) {\n var projLayout = geoLayout.projection;\n var projType = projLayout.type;\n var projName = constants.projNames[projType];\n projName = \"geo\" + Lib.titleCase(projName);\n var projFn = geo[projName] || geoProjection[projName];\n var projection = projFn();\n var clipAngle = geoLayout._isSatellite ? Math.acos(1 / projLayout.distance) * 180 / Math.PI : geoLayout._isClipped ? constants.lonaxisSpan[projType] / 2 : null;\n var methods = [\"center\", \"rotate\", \"parallels\", \"clipExtent\"];\n var dummyFn = function(_) {\n return _ ? projection : [];\n };\n for (var i = 0; i < methods.length; i++) {\n var m = methods[i];\n if (typeof projection[m] !== \"function\") {\n projection[m] = dummyFn;\n }\n }\n projection.isLonLatOverEdges = function(lonlat) {\n if (projection(lonlat) === null) {\n return true;\n }\n if (clipAngle) {\n var r = projection.rotate();\n var angle = geoDistance(lonlat, [-r[0], -r[1]]);\n var maxAngle = clipAngle * Math.PI / 180;\n return angle > maxAngle;\n } else {\n return false;\n }\n };\n projection.getPath = function() {\n return geoPath().projection(projection);\n };\n projection.getBounds = function(object) {\n return projection.getPath().bounds(object);\n };\n projection.precision(constants.precision);\n if (geoLayout._isSatellite) {\n projection.tilt(projLayout.tilt).distance(projLayout.distance);\n }\n if (clipAngle) {\n projection.clipAngle(clipAngle - constants.clipPad);\n }\n return projection;\n }\n function makeGraticule(axisName, geoLayout, fullLayout) {\n var epsilon = 1e-6;\n var precision = 2.5;\n var axLayout = geoLayout[axisName];\n var scopeDefaults = constants.scopeDefaults[geoLayout.scope];\n var rng;\n var oppRng;\n var coordFn;\n if (axisName === \"lonaxis\") {\n rng = scopeDefaults.lonaxisRange;\n oppRng = scopeDefaults.lataxisRange;\n coordFn = function(v2, l2) {\n return [v2, l2];\n };\n } else if (axisName === \"lataxis\") {\n rng = scopeDefaults.lataxisRange;\n oppRng = scopeDefaults.lonaxisRange;\n coordFn = function(v2, l2) {\n return [l2, v2];\n };\n }\n var dummyAx = {\n type: \"linear\",\n range: [rng[0], rng[1] - epsilon],\n tick0: axLayout.tick0,\n dtick: axLayout.dtick\n };\n Axes.setConvert(dummyAx, fullLayout);\n var vals = Axes.calcTicks(dummyAx);\n if (!geoLayout.isScoped && axisName === \"lonaxis\") {\n vals.pop();\n }\n var len = vals.length;\n var coords = new Array(len);\n for (var i = 0; i < len; i++) {\n var v = vals[i].x;\n var line = coords[i] = [];\n for (var l = oppRng[0]; l < oppRng[1] + precision; l += precision) {\n line.push(coordFn(v, l));\n }\n }\n return {\n type: \"MultiLineString\",\n coordinates: coords\n };\n }\n function makeRangeBox(lon, lat) {\n var clipPad = constants.clipPad;\n var lon0 = lon[0] + clipPad;\n var lon1 = lon[1] - clipPad;\n var lat0 = lat[0] + clipPad;\n var lat1 = lat[1] - clipPad;\n if (lon0 > 0 && lon1 < 0) lon1 += 360;\n var dlon4 = (lon1 - lon0) / 4;\n return {\n type: \"Polygon\",\n coordinates: [[\n [lon0, lat0],\n [lon0, lat1],\n [lon0 + dlon4, lat1],\n [lon0 + 2 * dlon4, lat1],\n [lon0 + 3 * dlon4, lat1],\n [lon1, lat1],\n [lon1, lat0],\n [lon1 - dlon4, lat0],\n [lon1 - 2 * dlon4, lat0],\n [lon1 - 3 * dlon4, lat0],\n [lon0, lat0]\n ]]\n };\n }\n }\n });\n\n // src/plots/geo/layout_attributes.js\n var require_layout_attributes18 = __commonJS({\n \"src/plots/geo/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttrs = require_attributes3();\n var domainAttrs = require_domain().attributes;\n var dash = require_attributes4().dash;\n var constants = require_constants22();\n var overrideAll = require_edit_types().overrideAll;\n var sortObjectKeys = require_sort_object_keys();\n var geoAxesAttrs = {\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"number\" },\n { valType: \"number\" }\n ]\n },\n showgrid: {\n valType: \"boolean\",\n dflt: false\n },\n tick0: {\n valType: \"number\",\n dflt: 0\n },\n dtick: {\n valType: \"number\"\n },\n gridcolor: {\n valType: \"color\",\n dflt: colorAttrs.lightLine\n },\n gridwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n griddash: dash\n };\n var attrs = module.exports = overrideAll({\n domain: domainAttrs({ name: \"geo\" }, {}),\n fitbounds: {\n valType: \"enumerated\",\n values: [false, \"locations\", \"geojson\"],\n dflt: false,\n editType: \"plot\"\n },\n resolution: {\n valType: \"enumerated\",\n values: [110, 50],\n dflt: 110,\n coerceNumber: true\n },\n scope: {\n valType: \"enumerated\",\n values: sortObjectKeys(constants.scopeDefaults),\n dflt: \"world\"\n },\n projection: {\n type: {\n valType: \"enumerated\",\n values: sortObjectKeys(constants.projNames)\n },\n rotation: {\n lon: {\n valType: \"number\"\n },\n lat: {\n valType: \"number\"\n },\n roll: {\n valType: \"number\"\n }\n },\n tilt: {\n valType: \"number\",\n dflt: 0\n },\n distance: {\n valType: \"number\",\n min: 1.001,\n dflt: 2\n },\n parallels: {\n valType: \"info_array\",\n items: [\n { valType: \"number\" },\n { valType: \"number\" }\n ]\n },\n scale: {\n valType: \"number\",\n min: 0,\n dflt: 1\n }\n },\n center: {\n lon: {\n valType: \"number\"\n },\n lat: {\n valType: \"number\"\n }\n },\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n showcoastlines: {\n valType: \"boolean\"\n },\n coastlinecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine\n },\n coastlinewidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n showland: {\n valType: \"boolean\",\n dflt: false\n },\n landcolor: {\n valType: \"color\",\n dflt: constants.landColor\n },\n showocean: {\n valType: \"boolean\",\n dflt: false\n },\n oceancolor: {\n valType: \"color\",\n dflt: constants.waterColor\n },\n showlakes: {\n valType: \"boolean\",\n dflt: false\n },\n lakecolor: {\n valType: \"color\",\n dflt: constants.waterColor\n },\n showrivers: {\n valType: \"boolean\",\n dflt: false\n },\n rivercolor: {\n valType: \"color\",\n dflt: constants.waterColor\n },\n riverwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n showcountries: {\n valType: \"boolean\"\n },\n countrycolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine\n },\n countrywidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n showsubunits: {\n valType: \"boolean\"\n },\n subunitcolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine\n },\n subunitwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n showframe: {\n valType: \"boolean\"\n },\n framecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine\n },\n framewidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n bgcolor: {\n valType: \"color\",\n dflt: colorAttrs.background\n },\n lonaxis: geoAxesAttrs,\n lataxis: geoAxesAttrs\n }, \"plot\", \"from-root\");\n attrs.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n }\n });\n\n // src/plots/geo/layout_defaults.js\n var require_layout_defaults16 = __commonJS({\n \"src/plots/geo/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSubplotDefaults = require_subplot_defaults();\n var getSubplotData = require_get_data().getSubplotData;\n var constants = require_constants22();\n var layoutAttributes = require_layout_attributes18();\n var axesNames = constants.axesNames;\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: \"geo\",\n attributes: layoutAttributes,\n handleDefaults: handleGeoDefaults,\n fullData,\n partition: \"y\"\n });\n };\n function handleGeoDefaults(geoLayoutIn, geoLayoutOut, coerce, opts) {\n var subplotData = getSubplotData(opts.fullData, \"geo\", opts.id);\n var traceIndices = subplotData.map(function(t) {\n return t.index;\n });\n var resolution = coerce(\"resolution\");\n var scope = coerce(\"scope\");\n var scopeParams = constants.scopeDefaults[scope];\n var projType = coerce(\"projection.type\", scopeParams.projType);\n var isAlbersUsa = geoLayoutOut._isAlbersUsa = projType === \"albers usa\";\n if (isAlbersUsa) scope = geoLayoutOut.scope = \"usa\";\n var isScoped = geoLayoutOut._isScoped = scope !== \"world\";\n var isSatellite = geoLayoutOut._isSatellite = projType === \"satellite\";\n var isConic = geoLayoutOut._isConic = projType.indexOf(\"conic\") !== -1 || projType === \"albers\";\n var isClipped = geoLayoutOut._isClipped = !!constants.lonaxisSpan[projType];\n if (geoLayoutIn.visible === false) {\n var newTemplate = Lib.extendDeep({}, geoLayoutOut._template);\n newTemplate.showcoastlines = false;\n newTemplate.showcountries = false;\n newTemplate.showframe = false;\n newTemplate.showlakes = false;\n newTemplate.showland = false;\n newTemplate.showocean = false;\n newTemplate.showrivers = false;\n newTemplate.showsubunits = false;\n if (newTemplate.lonaxis) newTemplate.lonaxis.showgrid = false;\n if (newTemplate.lataxis) newTemplate.lataxis.showgrid = false;\n geoLayoutOut._template = newTemplate;\n }\n var visible = coerce(\"visible\");\n var show;\n for (var i = 0; i < axesNames.length; i++) {\n var axisName = axesNames[i];\n var dtickDflt = [30, 10][i];\n var rangeDflt;\n if (isScoped) {\n rangeDflt = scopeParams[axisName + \"Range\"];\n } else {\n var dfltSpans = constants[axisName + \"Span\"];\n var hSpan = (dfltSpans[projType] || dfltSpans[\"*\"]) / 2;\n var rot = coerce(\n \"projection.rotation.\" + axisName.substr(0, 3),\n scopeParams.projRotate[i]\n );\n rangeDflt = [rot - hSpan, rot + hSpan];\n }\n var range = coerce(axisName + \".range\", rangeDflt);\n coerce(axisName + \".tick0\");\n coerce(axisName + \".dtick\", dtickDflt);\n show = coerce(axisName + \".showgrid\", !visible ? false : void 0);\n if (show) {\n coerce(axisName + \".gridcolor\");\n coerce(axisName + \".gridwidth\");\n coerce(axisName + \".griddash\");\n }\n geoLayoutOut[axisName]._ax = {\n type: \"linear\",\n _id: axisName.slice(0, 3),\n _traceIndices: traceIndices,\n setScale: Lib.identity,\n c2l: Lib.identity,\n r2l: Lib.identity,\n autorange: true,\n range: range.slice(),\n _m: 1,\n _input: {}\n };\n }\n var lonRange = geoLayoutOut.lonaxis.range;\n var latRange = geoLayoutOut.lataxis.range;\n var lon0 = lonRange[0];\n var lon1 = lonRange[1];\n if (lon0 > 0 && lon1 < 0) lon1 += 360;\n var centerLon = (lon0 + lon1) / 2;\n var projLon;\n if (!isAlbersUsa) {\n var dfltProjRotate = isScoped ? scopeParams.projRotate : [centerLon, 0, 0];\n projLon = coerce(\"projection.rotation.lon\", dfltProjRotate[0]);\n coerce(\"projection.rotation.lat\", dfltProjRotate[1]);\n coerce(\"projection.rotation.roll\", dfltProjRotate[2]);\n show = coerce(\"showcoastlines\", !isScoped && visible);\n if (show) {\n coerce(\"coastlinecolor\");\n coerce(\"coastlinewidth\");\n }\n show = coerce(\"showocean\", !visible ? false : void 0);\n if (show) coerce(\"oceancolor\");\n }\n var centerLonDflt;\n var centerLatDflt;\n if (isAlbersUsa) {\n centerLonDflt = -96.6;\n centerLatDflt = 38.7;\n } else {\n centerLonDflt = isScoped ? centerLon : projLon;\n centerLatDflt = (latRange[0] + latRange[1]) / 2;\n }\n coerce(\"center.lon\", centerLonDflt);\n coerce(\"center.lat\", centerLatDflt);\n if (isSatellite) {\n coerce(\"projection.tilt\");\n coerce(\"projection.distance\");\n }\n if (isConic) {\n var dfltProjParallels = scopeParams.projParallels || [0, 60];\n coerce(\"projection.parallels\", dfltProjParallels);\n }\n coerce(\"projection.scale\");\n show = coerce(\"showland\", !visible ? false : void 0);\n if (show) coerce(\"landcolor\");\n show = coerce(\"showlakes\", !visible ? false : void 0);\n if (show) coerce(\"lakecolor\");\n show = coerce(\"showrivers\", !visible ? false : void 0);\n if (show) {\n coerce(\"rivercolor\");\n coerce(\"riverwidth\");\n }\n show = coerce(\"showcountries\", isScoped && scope !== \"usa\" && visible);\n if (show) {\n coerce(\"countrycolor\");\n coerce(\"countrywidth\");\n }\n if (scope === \"usa\" || scope === \"north america\" && resolution === 50) {\n coerce(\"showsubunits\", visible);\n coerce(\"subunitcolor\");\n coerce(\"subunitwidth\");\n }\n if (!isScoped) {\n show = coerce(\"showframe\", visible);\n if (show) {\n coerce(\"framecolor\");\n coerce(\"framewidth\");\n }\n }\n coerce(\"bgcolor\");\n var fitBounds = coerce(\"fitbounds\");\n if (fitBounds) {\n delete geoLayoutOut.projection.scale;\n if (isScoped) {\n delete geoLayoutOut.center.lon;\n delete geoLayoutOut.center.lat;\n } else if (isClipped) {\n delete geoLayoutOut.center.lon;\n delete geoLayoutOut.center.lat;\n delete geoLayoutOut.projection.rotation.lon;\n delete geoLayoutOut.projection.rotation.lat;\n delete geoLayoutOut.lonaxis.range;\n delete geoLayoutOut.lataxis.range;\n } else {\n delete geoLayoutOut.center.lon;\n delete geoLayoutOut.center.lat;\n delete geoLayoutOut.projection.rotation.lon;\n }\n }\n }\n }\n });\n\n // src/plots/geo/index.js\n var require_geo2 = __commonJS({\n \"src/plots/geo/index.js\"(exports, module) {\n \"use strict\";\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var counterRegex = require_lib().counterRegex;\n var createGeo = require_geo();\n var GEO = \"geo\";\n var counter = counterRegex(GEO);\n var attributes = {};\n attributes[GEO] = {\n valType: \"subplotid\",\n dflt: GEO,\n editType: \"calc\"\n };\n function plotGeo(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var geoIds = fullLayout._subplots[GEO];\n for (var i = 0; i < geoIds.length; i++) {\n var geoId = geoIds[i];\n var geoCalcData = getSubplotCalcData(calcData, GEO, geoId);\n var geoLayout = fullLayout[geoId];\n var geo = geoLayout._subplot;\n if (!geo) {\n geo = createGeo({\n id: geoId,\n graphDiv: gd,\n container: fullLayout._geolayer.node(),\n topojsonURL: gd._context.topojsonURL,\n staticPlot: gd._context.staticPlot\n });\n fullLayout[geoId]._subplot = geo;\n }\n geo.plot(geoCalcData, fullLayout, gd._promises);\n }\n }\n function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldGeoKeys = oldFullLayout._subplots[GEO] || [];\n for (var i = 0; i < oldGeoKeys.length; i++) {\n var oldGeoKey = oldGeoKeys[i];\n var oldGeo = oldFullLayout[oldGeoKey]._subplot;\n if (!newFullLayout[oldGeoKey] && !!oldGeo) {\n oldGeo.framework.remove();\n oldGeo.clipDef.remove();\n }\n }\n }\n function updateFx(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[GEO];\n for (var i = 0; i < subplotIds.length; i++) {\n var subplotLayout = fullLayout[subplotIds[i]];\n var subplotObj = subplotLayout._subplot;\n subplotObj.updateFx(fullLayout, subplotLayout);\n }\n }\n module.exports = {\n attr: GEO,\n name: GEO,\n idRoot: GEO,\n idRegex: counter,\n attrRegex: counter,\n attributes,\n layoutAttributes: require_layout_attributes18(),\n supplyLayoutDefaults: require_layout_defaults16(),\n plot: plotGeo,\n updateFx,\n clean\n };\n }\n });\n\n // src/traces/scattergeo/index.js\n var require_scattergeo = __commonJS({\n \"src/traces/scattergeo/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes48(),\n supplyDefaults: require_defaults44(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels3(),\n calc: require_calc27(),\n calcGeoJSON: require_plot17().calcGeoJSON,\n plot: require_plot17().plot,\n style: require_style17(),\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover14(),\n eventData: require_event_data9(),\n selectPoints: require_select5(),\n moduleType: \"trace\",\n name: \"scattergeo\",\n basePlotModule: require_geo2(),\n categories: [\"geo\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scattergeo.js\n var require_scattergeo2 = __commonJS({\n \"lib/scattergeo.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattergeo();\n }\n });\n\n // src/traces/choropleth/attributes.js\n var require_attributes49 = __commonJS({\n \"src/traces/choropleth/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var scatterGeoAttrs = require_attributes48();\n var colorScaleAttrs = require_attributes8();\n var baseAttrs = require_attributes2();\n var defaultLine = require_attributes3().defaultLine;\n var extendFlat = require_extend().extendFlat;\n var scatterGeoMarkerLineAttrs = scatterGeoAttrs.marker.line;\n module.exports = extendFlat(\n {\n locations: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n locationmode: scatterGeoAttrs.locationmode,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n geojson: extendFlat({}, scatterGeoAttrs.geojson, {}),\n featureidkey: scatterGeoAttrs.featureidkey,\n text: extendFlat({}, scatterGeoAttrs.text, {}),\n hovertext: extendFlat({}, scatterGeoAttrs.hovertext, {}),\n marker: {\n line: {\n color: extendFlat({}, scatterGeoMarkerLineAttrs.color, { dflt: defaultLine }),\n width: extendFlat({}, scatterGeoMarkerLineAttrs.width, { dflt: 1 }),\n editType: \"calc\"\n },\n opacity: {\n valType: \"number\",\n arrayOk: true,\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"style\"\n },\n editType: \"calc\"\n },\n selected: {\n marker: {\n opacity: scatterGeoAttrs.selected.marker.opacity,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n unselected: {\n marker: {\n opacity: scatterGeoAttrs.unselected.marker.opacity,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n editType: \"calc\",\n flags: [\"location\", \"z\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/choropleth/defaults.js\n var require_defaults45 = __commonJS({\n \"src/traces/choropleth/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes49();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var locations = coerce(\"locations\");\n var z = coerce(\"z\");\n if (!(locations && locations.length && Lib.isArrayOrTypedArray(z) && z.length)) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = Math.min(locations.length, z.length);\n var geojson = coerce(\"geojson\");\n var locationmodeDflt;\n if (typeof geojson === \"string\" && geojson !== \"\" || Lib.isPlainObject(geojson)) {\n locationmodeDflt = \"geojson-id\";\n }\n var locationMode = coerce(\"locationmode\", locationmodeDflt);\n if (locationMode === \"geojson-id\") {\n coerce(\"featureidkey\");\n }\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var mlw = coerce(\"marker.line.width\");\n if (mlw) coerce(\"marker.line.color\");\n coerce(\"marker.opacity\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/choropleth/calc.js\n var require_calc28 = __commonJS({\n \"src/traces/choropleth/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var colorscaleCalc = require_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n function isNonBlankString(v) {\n return v && typeof v === \"string\";\n }\n module.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var isValidLoc;\n if (trace.geojson) {\n isValidLoc = function(v) {\n return isNonBlankString(v) || isNumeric(v);\n };\n } else {\n isValidLoc = isNonBlankString;\n }\n for (var i = 0; i < len; i++) {\n var calcPt = calcTrace[i] = {};\n var loc = trace.locations[i];\n var z = trace.z[i];\n if (isValidLoc(loc) && isNumeric(z)) {\n calcPt.loc = loc;\n calcPt.z = z;\n } else {\n calcPt.loc = null;\n calcPt.z = BADNUM;\n }\n calcPt.index = i;\n }\n arraysToCalcdata(calcTrace, trace);\n colorscaleCalc(gd, trace, {\n vals: trace.z,\n containerStr: \"\",\n cLetter: \"z\"\n });\n calcSelection(calcTrace, trace);\n return calcTrace;\n };\n }\n });\n\n // src/traces/choropleth/style.js\n var require_style18 = __commonJS({\n \"src/traces/choropleth/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Colorscale = require_colorscale();\n function style(gd, calcTrace) {\n if (calcTrace) styleTrace(gd, calcTrace);\n }\n function styleTrace(gd, calcTrace) {\n var trace = calcTrace[0].trace;\n var s = calcTrace[0].node3;\n var locs = s.selectAll(\".choroplethlocation\");\n var marker = trace.marker || {};\n var markerLine = marker.line || {};\n var sclFunc = Colorscale.makeColorScaleFuncFromTrace(trace);\n locs.each(function(d) {\n d3.select(this).attr(\"fill\", sclFunc(d.z)).call(Color2.stroke, d.mlc || markerLine.color).call(Drawing.dashLine, \"\", d.mlw || markerLine.width || 0).style(\"opacity\", marker.opacity);\n });\n Drawing.selectedPointStyle(locs, trace);\n }\n function styleOnSelect(gd, calcTrace) {\n var s = calcTrace[0].node3;\n var trace = calcTrace[0].trace;\n if (trace.selectedpoints) {\n Drawing.selectedPointStyle(s.selectAll(\".choroplethlocation\"), trace);\n } else {\n styleTrace(gd, calcTrace);\n }\n }\n module.exports = {\n style,\n styleOnSelect\n };\n }\n });\n\n // src/traces/choropleth/plot.js\n var require_plot18 = __commonJS({\n \"src/traces/choropleth/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var geoUtils = require_geo_location_utils();\n var getTopojsonFeatures = require_topojson_utils().getTopojsonFeatures;\n var findExtremes = require_autorange().findExtremes;\n var style = require_style18().style;\n function plot(gd, geo, calcData) {\n var choroplethLayer = geo.layers.backplot.select(\".choroplethlayer\");\n Lib.makeTraceGroups(choroplethLayer, calcData, \"trace choropleth\").each(function(calcTrace) {\n var sel = d3.select(this);\n var paths = sel.selectAll(\"path.choroplethlocation\").data(Lib.identity);\n paths.enter().append(\"path\").classed(\"choroplethlocation\", true);\n paths.exit().remove();\n style(gd, calcTrace);\n });\n }\n function calcGeoJSON(calcTrace, fullLayout) {\n var trace = calcTrace[0].trace;\n var geoLayout = fullLayout[trace.geo];\n var geo = geoLayout._subplot;\n var locationmode = trace.locationmode;\n var len = trace._length;\n var features = locationmode === \"geojson-id\" ? geoUtils.extractTraceFeature(calcTrace) : getTopojsonFeatures(trace, geo.topojson);\n var lonArray = [];\n var latArray = [];\n for (var i = 0; i < len; i++) {\n var calcPt = calcTrace[i];\n var feature = locationmode === \"geojson-id\" ? calcPt.fOut : geoUtils.locationToFeature(locationmode, calcPt.loc, features);\n if (feature) {\n calcPt.geojson = feature;\n calcPt.ct = feature.properties.ct;\n calcPt._polygons = geoUtils.feature2polygons(feature);\n var bboxFeature = geoUtils.computeBbox(feature);\n lonArray.push(bboxFeature[0], bboxFeature[2]);\n latArray.push(bboxFeature[1], bboxFeature[3]);\n } else {\n calcPt.geojson = null;\n }\n }\n if (geoLayout.fitbounds === \"geojson\" && locationmode === \"geojson-id\") {\n var bboxGeojson = geoUtils.computeBbox(geoUtils.getTraceGeojson(trace));\n lonArray = [bboxGeojson[0], bboxGeojson[2]];\n latArray = [bboxGeojson[1], bboxGeojson[3]];\n }\n var opts = { padded: true };\n trace._extremes.lon = findExtremes(geoLayout.lonaxis._ax, lonArray, opts);\n trace._extremes.lat = findExtremes(geoLayout.lataxis._ax, latArray, opts);\n }\n module.exports = {\n calcGeoJSON,\n plot\n };\n }\n });\n\n // src/traces/choropleth/hover.js\n var require_hover15 = __commonJS({\n \"src/traces/choropleth/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var attributes = require_attributes49();\n var fillText = require_lib().fillText;\n module.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var geo = pointData.subplot;\n var pt, i, j, isInside;\n var xy = [xval, yval];\n var altXy = [xval + 360, yval];\n for (i = 0; i < cd.length; i++) {\n pt = cd[i];\n isInside = false;\n if (pt._polygons) {\n for (j = 0; j < pt._polygons.length; j++) {\n if (pt._polygons[j].contains(xy)) {\n isInside = !isInside;\n }\n if (pt._polygons[j].contains(altXy)) {\n isInside = !isInside;\n }\n }\n if (isInside) break;\n }\n }\n if (!isInside || !pt) return;\n pointData.x0 = pointData.x1 = pointData.xa.c2p(pt.ct);\n pointData.y0 = pointData.y1 = pointData.ya.c2p(pt.ct);\n pointData.index = pt.index;\n pointData.location = pt.loc;\n pointData.z = pt.z;\n pointData.zLabel = Axes.tickText(geo.mockAxis, geo.mockAxis.c2l(pt.z), \"hover\").text;\n pointData.hovertemplate = pt.hovertemplate;\n makeHoverInfo(pointData, trace, pt);\n return [pointData];\n };\n function makeHoverInfo(pointData, trace, pt) {\n if (trace.hovertemplate) return;\n var hoverinfo = pt.hi || trace.hoverinfo;\n var loc = String(pt.loc);\n var parts = hoverinfo === \"all\" ? attributes.hoverinfo.flags : hoverinfo.split(\"+\");\n var hasName = parts.indexOf(\"name\") !== -1;\n var hasLocation = parts.indexOf(\"location\") !== -1;\n var hasZ = parts.indexOf(\"z\") !== -1;\n var hasText = parts.indexOf(\"text\") !== -1;\n var hasIdAsNameLabel = !hasName && hasLocation;\n var text = [];\n if (hasIdAsNameLabel) {\n pointData.nameOverride = loc;\n } else {\n if (hasName) pointData.nameOverride = trace.name;\n if (hasLocation) text.push(loc);\n }\n if (hasZ) {\n text.push(pointData.zLabel);\n }\n if (hasText) {\n fillText(pt, trace, text);\n }\n pointData.extraText = text.join(\"
\");\n }\n }\n });\n\n // src/traces/choropleth/event_data.js\n var require_event_data10 = __commonJS({\n \"src/traces/choropleth/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n out.location = pt.location;\n out.z = pt.z;\n var cdi = cd[pointNumber];\n if (cdi.fIn && cdi.fIn.properties) {\n out.properties = cdi.fIn.properties;\n }\n out.ct = cdi.ct;\n return out;\n };\n }\n });\n\n // src/traces/choropleth/select.js\n var require_select6 = __commonJS({\n \"src/traces/choropleth/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i, di, ct, x, y;\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n di = cd[i];\n ct = di.ct;\n if (!ct) continue;\n x = xa.c2p(ct);\n y = ya.c2p(ct);\n if (selectionTester.contains([x, y], null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: ct[0],\n lat: ct[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n }\n });\n\n // src/traces/choropleth/index.js\n var require_choropleth = __commonJS({\n \"src/traces/choropleth/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes49(),\n supplyDefaults: require_defaults45(),\n colorbar: require_colorbar2(),\n calc: require_calc28(),\n calcGeoJSON: require_plot18().calcGeoJSON,\n plot: require_plot18().plot,\n style: require_style18().style,\n styleOnSelect: require_style18().styleOnSelect,\n hoverPoints: require_hover15(),\n eventData: require_event_data10(),\n selectPoints: require_select6(),\n moduleType: \"trace\",\n name: \"choropleth\",\n basePlotModule: require_geo2(),\n categories: [\"geo\", \"noOpacity\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/choropleth.js\n var require_choropleth2 = __commonJS({\n \"lib/choropleth.js\"(exports, module) {\n \"use strict\";\n module.exports = require_choropleth();\n }\n });\n\n // src/traces/scattergl/hover.js\n var require_hover16 = __commonJS({\n \"src/traces/scattergl/hover.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var getTraceColor = require_get_trace_color();\n function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var stash = cd[0].t;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var x = stash.x;\n var y = stash.y;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var maxDistance = pointData.distance;\n var ids;\n if (stash.tree) {\n var xl = xa.p2c(xpx - maxDistance);\n var xr = xa.p2c(xpx + maxDistance);\n var yl = ya.p2c(ypx - maxDistance);\n var yr = ya.p2c(ypx + maxDistance);\n if (hovermode === \"x\") {\n ids = stash.tree.range(\n Math.min(xl, xr),\n Math.min(ya._rl[0], ya._rl[1]),\n Math.max(xl, xr),\n Math.max(ya._rl[0], ya._rl[1])\n );\n } else {\n ids = stash.tree.range(\n Math.min(xl, xr),\n Math.min(yl, yr),\n Math.max(xl, xr),\n Math.max(yl, yr)\n );\n }\n } else {\n ids = stash.ids;\n }\n var k, closestId, ptx, pty, i, dx, dy, dist, dxy;\n var minDist = maxDistance;\n if (hovermode === \"x\") {\n var xPeriod = !!trace.xperiodalignment;\n var yPeriod = !!trace.yperiodalignment;\n for (i = 0; i < ids.length; i++) {\n k = ids[i];\n ptx = x[k];\n dx = Math.abs(xa.c2p(ptx) - xpx);\n if (xPeriod) {\n var x0 = xa.c2p(trace._xStarts[k]);\n var x1 = xa.c2p(trace._xEnds[k]);\n dx = xpx >= Math.min(x0, x1) && xpx <= Math.max(x0, x1) ? 0 : Infinity;\n }\n if (dx < minDist) {\n minDist = dx;\n pty = y[k];\n dy = ya.c2p(pty) - ypx;\n if (yPeriod) {\n var y0 = ya.c2p(trace._yStarts[k]);\n var y1 = ya.c2p(trace._yEnds[k]);\n dy = ypx >= Math.min(y0, y1) && ypx <= Math.max(y0, y1) ? 0 : Infinity;\n }\n dxy = Math.sqrt(dx * dx + dy * dy);\n closestId = ids[i];\n }\n }\n } else {\n for (i = ids.length - 1; i > -1; i--) {\n k = ids[i];\n ptx = x[k];\n pty = y[k];\n dx = xa.c2p(ptx) - xpx;\n dy = ya.c2p(pty) - ypx;\n dist = Math.sqrt(dx * dx + dy * dy);\n if (dist < minDist) {\n minDist = dxy = dist;\n closestId = k;\n }\n }\n }\n pointData.index = closestId;\n pointData.distance = minDist;\n pointData.dxy = dxy;\n if (closestId === void 0) return [pointData];\n return [calcHover(pointData, x, y, trace)];\n }\n function calcHover(pointData, x, y, trace) {\n var xa = pointData.xa;\n var ya = pointData.ya;\n var minDist = pointData.distance;\n var dxy = pointData.dxy;\n var id = pointData.index;\n var di = {\n pointNumber: id,\n x: x[id],\n y: y[id]\n };\n di.tx = Lib.isArrayOrTypedArray(trace.text) ? trace.text[id] : trace.text;\n di.htx = Array.isArray(trace.hovertext) ? trace.hovertext[id] : trace.hovertext;\n di.data = Array.isArray(trace.customdata) ? trace.customdata[id] : trace.customdata;\n di.tp = Array.isArray(trace.textposition) ? trace.textposition[id] : trace.textposition;\n var font = trace.textfont;\n if (font) {\n di.ts = Lib.isArrayOrTypedArray(font.size) ? font.size[id] : font.size;\n di.tc = Lib.isArrayOrTypedArray(font.color) ? font.color[id] : font.color;\n di.tf = Array.isArray(font.family) ? font.family[id] : font.family;\n di.tw = Array.isArray(font.weight) ? font.weight[id] : font.weight;\n di.ty = Array.isArray(font.style) ? font.style[id] : font.style;\n di.tv = Array.isArray(font.variant) ? font.variant[id] : font.variant;\n }\n var marker = trace.marker;\n if (marker) {\n di.ms = Lib.isArrayOrTypedArray(marker.size) ? marker.size[id] : marker.size;\n di.mo = Lib.isArrayOrTypedArray(marker.opacity) ? marker.opacity[id] : marker.opacity;\n di.mx = Lib.isArrayOrTypedArray(marker.symbol) ? marker.symbol[id] : marker.symbol;\n di.ma = Lib.isArrayOrTypedArray(marker.angle) ? marker.angle[id] : marker.angle;\n di.mc = Lib.isArrayOrTypedArray(marker.color) ? marker.color[id] : marker.color;\n }\n var line = marker && marker.line;\n if (line) {\n di.mlc = Array.isArray(line.color) ? line.color[id] : line.color;\n di.mlw = Lib.isArrayOrTypedArray(line.width) ? line.width[id] : line.width;\n }\n var grad = marker && marker.gradient;\n if (grad && grad.type !== \"none\") {\n di.mgt = Array.isArray(grad.type) ? grad.type[id] : grad.type;\n di.mgc = Array.isArray(grad.color) ? grad.color[id] : grad.color;\n }\n var xp = xa.c2p(di.x, true);\n var yp = ya.c2p(di.y, true);\n var rad = di.mrc || 1;\n var hoverlabel = trace.hoverlabel;\n if (hoverlabel) {\n di.hbg = Array.isArray(hoverlabel.bgcolor) ? hoverlabel.bgcolor[id] : hoverlabel.bgcolor;\n di.hbc = Array.isArray(hoverlabel.bordercolor) ? hoverlabel.bordercolor[id] : hoverlabel.bordercolor;\n di.hts = Lib.isArrayOrTypedArray(hoverlabel.font.size) ? hoverlabel.font.size[id] : hoverlabel.font.size;\n di.htc = Array.isArray(hoverlabel.font.color) ? hoverlabel.font.color[id] : hoverlabel.font.color;\n di.htf = Array.isArray(hoverlabel.font.family) ? hoverlabel.font.family[id] : hoverlabel.font.family;\n di.hnl = Lib.isArrayOrTypedArray(hoverlabel.namelength) ? hoverlabel.namelength[id] : hoverlabel.namelength;\n }\n var hoverinfo = trace.hoverinfo;\n if (hoverinfo) {\n di.hi = Array.isArray(hoverinfo) ? hoverinfo[id] : hoverinfo;\n }\n var hovertemplate = trace.hovertemplate;\n if (hovertemplate) {\n di.ht = Array.isArray(hovertemplate) ? hovertemplate[id] : hovertemplate;\n }\n var fakeCd = {};\n fakeCd[pointData.index] = di;\n var origX = trace._origX;\n var origY = trace._origY;\n var pointData2 = Lib.extendFlat({}, pointData, {\n color: getTraceColor(trace, di),\n x0: xp - rad,\n x1: xp + rad,\n xLabelVal: origX ? origX[id] : di.x,\n y0: yp - rad,\n y1: yp + rad,\n yLabelVal: origY ? origY[id] : di.y,\n cd: fakeCd,\n distance: minDist,\n spikeDistance: dxy,\n hovertemplate: di.ht\n });\n if (di.htx) pointData2.text = di.htx;\n else if (di.tx) pointData2.text = di.tx;\n else if (trace.text) pointData2.text = trace.text;\n Lib.fillText(di, trace, pointData2);\n Registry.getComponentMethod(\"errorbars\", \"hoverInfo\")(di, trace, pointData2);\n return pointData2;\n }\n module.exports = {\n hoverPoints,\n calcHover\n };\n }\n });\n\n // src/traces/scattergl/constants.js\n var require_constants23 = __commonJS({\n \"src/traces/scattergl/constants.js\"(exports, module) {\n \"use strict\";\n var SYMBOL_SIZE = 20;\n module.exports = {\n TOO_MANY_POINTS: 1e5,\n SYMBOL_SDF_SIZE: 200,\n SYMBOL_SIZE,\n SYMBOL_STROKE: SYMBOL_SIZE / 20,\n DOT_RE: /-dot/,\n OPEN_RE: /-open/,\n DASHES: {\n solid: [1],\n dot: [1, 1],\n dash: [4, 1],\n longdash: [8, 1],\n dashdot: [4, 1, 1, 1],\n longdashdot: [8, 1, 1, 1]\n }\n };\n }\n });\n\n // src/traces/scattergl/attributes.js\n var require_attributes50 = __commonJS({\n \"src/traces/scattergl/attributes.js\"(exports, module) {\n \"use strict\";\n var baseAttrs = require_attributes2();\n var fontAttrs = require_font_attributes();\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var colorScaleAttrs = require_attributes8();\n var sortObjectKeys = require_sort_object_keys();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var DASHES = require_constants23().DASHES;\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n var attrs = module.exports = overrideAll({\n x: scatterAttrs.x,\n x0: scatterAttrs.x0,\n dx: scatterAttrs.dx,\n y: scatterAttrs.y,\n y0: scatterAttrs.y0,\n dy: scatterAttrs.dy,\n xperiod: scatterAttrs.xperiod,\n yperiod: scatterAttrs.yperiod,\n xperiod0: scatterAttrs.xperiod0,\n yperiod0: scatterAttrs.yperiod0,\n xperiodalignment: scatterAttrs.xperiodalignment,\n yperiodalignment: scatterAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n text: scatterAttrs.text,\n hovertext: scatterAttrs.hovertext,\n textposition: scatterAttrs.textposition,\n textfont: fontAttrs({\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true,\n editType: \"calc\",\n colorEditType: \"style\",\n arrayOk: true,\n noNumericWeightValues: true,\n variantValues: [\"normal\", \"small-caps\"]\n }),\n mode: {\n valType: \"flaglist\",\n flags: [\"lines\", \"markers\", \"text\"],\n extras: [\"none\"]\n },\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n shape: {\n valType: \"enumerated\",\n values: [\"linear\", \"hv\", \"vh\", \"hvh\", \"vhv\"],\n dflt: \"linear\",\n editType: \"plot\"\n },\n dash: {\n valType: \"enumerated\",\n values: sortObjectKeys(DASHES),\n dflt: \"solid\"\n }\n },\n marker: extendFlat({}, colorScaleAttrs(\"marker\"), {\n symbol: scatterMarkerAttrs.symbol,\n angle: scatterMarkerAttrs.angle,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: scatterMarkerAttrs.opacity,\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat({}, colorScaleAttrs(\"marker.line\"), {\n width: scatterMarkerLineAttrs.width\n })\n }),\n connectgaps: scatterAttrs.connectgaps,\n fill: extendFlat({}, scatterAttrs.fill, { dflt: \"none\" }),\n fillcolor: makeFillcolorAttr(),\n // no hoveron\n selected: {\n marker: scatterAttrs.selected.marker,\n textfont: scatterAttrs.selected.textfont\n },\n unselected: {\n marker: scatterAttrs.unselected.marker,\n textfont: scatterAttrs.unselected.textfont\n },\n opacity: baseAttrs.opacity\n }, \"calc\", \"nested\");\n attrs.x.editType = attrs.y.editType = attrs.x0.editType = attrs.y0.editType = \"calc+clearAxisTypes\";\n attrs.hovertemplate = scatterAttrs.hovertemplate;\n attrs.texttemplate = scatterAttrs.texttemplate;\n }\n });\n\n // src/traces/scattergl/helpers.js\n var require_helpers16 = __commonJS({\n \"src/traces/scattergl/helpers.js\"(exports) {\n \"use strict\";\n var constants = require_constants23();\n exports.isOpenSymbol = function(symbol) {\n return typeof symbol === \"string\" ? constants.OPEN_RE.test(symbol) : symbol % 200 > 100;\n };\n exports.isDotSymbol = function(symbol) {\n return typeof symbol === \"string\" ? constants.DOT_RE.test(symbol) : symbol > 200;\n };\n }\n });\n\n // src/traces/scattergl/defaults.js\n var require_defaults46 = __commonJS({\n \"src/traces/scattergl/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var helpers = require_helpers16();\n var attributes = require_attributes50();\n var constants = require_constants8();\n var subTypes = require_subtypes();\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var handleTextDefaults = require_text_defaults();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var isOpen = traceIn.marker ? helpers.isOpenSymbol(traceIn.marker.symbol) : false;\n var isBubble = subTypes.isBubble(traceIn);\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n var defaultMode = len < constants.PTS_LINESONLY ? \"lines+markers\" : \"lines\";\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"mode\", defaultMode);\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noAngleRef: true, noStandOff: true });\n coerce(\"marker.line.width\", isOpen || isBubble ? 1 : 0);\n }\n if (subTypes.hasLines(traceOut)) {\n coerce(\"connectgaps\");\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce(\"line.shape\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce, {\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n }\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"y\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"x\", inherit: \"y\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scattergl/format_labels.js\n var require_format_labels4 = __commonJS({\n \"src/traces/scattergl/format_labels.js\"(exports, module) {\n \"use strict\";\n var scatterFormatLabels = require_format_labels();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if (!(\"x\" in cdi)) cdi.x = trace._x[i];\n if (!(\"y\" in cdi)) cdi.y = trace._y[i];\n return scatterFormatLabels(cdi, trace, fullLayout);\n };\n }\n });\n\n // node_modules/binary-search-bounds/search-bounds.js\n var require_search_bounds = __commonJS({\n \"node_modules/binary-search-bounds/search-bounds.js\"(exports, module) {\n \"use strict\";\n function ge(a, y, c, l, h) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p >= 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n }\n function gt(a, y, c, l, h) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p > 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n }\n function lt(a, y, c, l, h) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p < 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n }\n function le(a, y, c, l, h) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p <= 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n }\n function eq(a, y, c, l, h) {\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p === 0) {\n return m;\n }\n if (p <= 0) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return -1;\n }\n function norm(a, y, c, l, h, f) {\n if (typeof c === \"function\") {\n return f(a, y, c, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0);\n }\n return f(a, y, void 0, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0);\n }\n module.exports = {\n ge: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, ge);\n },\n gt: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, gt);\n },\n lt: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, lt);\n },\n le: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, le);\n },\n eq: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, eq);\n }\n };\n }\n });\n\n // node_modules/pick-by-alias/index.js\n var require_pick_by_alias = __commonJS({\n \"node_modules/pick-by-alias/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function pick(src, props, keepRest) {\n var result = {}, prop, i;\n if (typeof props === \"string\") props = toList(props);\n if (Array.isArray(props)) {\n var res = {};\n for (i = 0; i < props.length; i++) {\n res[props[i]] = true;\n }\n props = res;\n }\n for (prop in props) {\n props[prop] = toList(props[prop]);\n }\n var occupied = {};\n for (prop in props) {\n var aliases = props[prop];\n if (Array.isArray(aliases)) {\n for (i = 0; i < aliases.length; i++) {\n var alias = aliases[i];\n if (keepRest) {\n occupied[alias] = true;\n }\n if (alias in src) {\n result[prop] = src[alias];\n if (keepRest) {\n for (var j = i; j < aliases.length; j++) {\n occupied[aliases[j]] = true;\n }\n }\n break;\n }\n }\n } else if (prop in src) {\n if (props[prop]) {\n result[prop] = src[prop];\n }\n if (keepRest) {\n occupied[prop] = true;\n }\n }\n }\n if (keepRest) {\n for (prop in src) {\n if (occupied[prop]) continue;\n result[prop] = src[prop];\n }\n }\n return result;\n };\n var CACHE = {};\n function toList(arg) {\n if (CACHE[arg]) return CACHE[arg];\n if (typeof arg === \"string\") {\n arg = CACHE[arg] = arg.split(/\\s*,\\s*|\\s+/);\n }\n return arg;\n }\n }\n });\n\n // node_modules/parse-rect/index.js\n var require_parse_rect = __commonJS({\n \"node_modules/parse-rect/index.js\"(exports, module) {\n \"use strict\";\n var pick = require_pick_by_alias();\n module.exports = parseRect;\n function parseRect(arg) {\n var rect;\n if (arguments.length > 1) {\n arg = arguments;\n }\n if (typeof arg === \"string\") {\n arg = arg.split(/\\s/).map(parseFloat);\n } else if (typeof arg === \"number\") {\n arg = [arg];\n }\n if (arg.length && typeof arg[0] === \"number\") {\n if (arg.length === 1) {\n rect = {\n width: arg[0],\n height: arg[0],\n x: 0,\n y: 0\n };\n } else if (arg.length === 2) {\n rect = {\n width: arg[0],\n height: arg[1],\n x: 0,\n y: 0\n };\n } else {\n rect = {\n x: arg[0],\n y: arg[1],\n width: arg[2] - arg[0] || 0,\n height: arg[3] - arg[1] || 0\n };\n }\n } else if (arg) {\n arg = pick(arg, {\n left: \"x l left Left\",\n top: \"y t top Top\",\n width: \"w width W Width\",\n height: \"h height W Width\",\n bottom: \"b bottom Bottom\",\n right: \"r right Right\"\n });\n rect = {\n x: arg.left || 0,\n y: arg.top || 0\n };\n if (arg.width == null) {\n if (arg.right) rect.width = arg.right - rect.x;\n else rect.width = 0;\n } else {\n rect.width = arg.width;\n }\n if (arg.height == null) {\n if (arg.bottom) rect.height = arg.bottom - rect.y;\n else rect.height = 0;\n } else {\n rect.height = arg.height;\n }\n }\n return rect;\n }\n }\n });\n\n // node_modules/array-bounds/index.js\n var require_array_bounds = __commonJS({\n \"node_modules/array-bounds/index.js\"(exports, module) {\n \"use strict\";\n module.exports = normalize;\n function normalize(arr, dim) {\n if (!arr || arr.length == null) throw Error(\"Argument should be an array\");\n if (dim == null) dim = 1;\n else dim = Math.floor(dim);\n var bounds = Array(dim * 2);\n for (var offset = 0; offset < dim; offset++) {\n var max = -Infinity, min = Infinity, i = offset, l = arr.length;\n for (; i < l; i += dim) {\n if (arr[i] > max) max = arr[i];\n if (arr[i] < min) min = arr[i];\n }\n bounds[offset] = min;\n bounds[dim + offset] = max;\n }\n return bounds;\n }\n }\n });\n\n // node_modules/defined/index.js\n var require_defined = __commonJS({\n \"node_modules/defined/index.js\"(exports, module) {\n module.exports = function() {\n for (var i = 0; i < arguments.length; i++) {\n if (arguments[i] !== void 0) return arguments[i];\n }\n };\n }\n });\n\n // node_modules/flatten-vertex-data/index.js\n var require_flatten_vertex_data = __commonJS({\n \"node_modules/flatten-vertex-data/index.js\"(exports, module) {\n var dtype = require_dtype();\n module.exports = flattenVertexData;\n function flattenVertexData(data, output, offset) {\n if (!data) throw new TypeError(\"must specify data as first parameter\");\n offset = +(offset || 0) | 0;\n if (Array.isArray(data) && (data[0] && typeof data[0][0] === \"number\")) {\n var dim = data[0].length;\n var length = data.length * dim;\n var i, j, k, l;\n if (!output || typeof output === \"string\") {\n output = new (dtype(output || \"float32\"))(length + offset);\n }\n var dstLength = output.length - offset;\n if (length !== dstLength) {\n throw new Error(\"source length \" + length + \" (\" + dim + \"x\" + data.length + \") does not match destination length \" + dstLength);\n }\n for (i = 0, k = offset; i < data.length; i++) {\n for (j = 0; j < dim; j++) {\n output[k++] = data[i][j] === null ? NaN : data[i][j];\n }\n }\n } else {\n if (!output || typeof output === \"string\") {\n var Ctor = dtype(output || \"float32\");\n if (Array.isArray(data) || output === \"array\") {\n output = new Ctor(data.length + offset);\n for (i = 0, k = offset, l = output.length; k < l; k++, i++) {\n output[k] = data[i] === null ? NaN : data[i];\n }\n } else {\n if (offset === 0) {\n output = new Ctor(data);\n } else {\n output = new Ctor(data.length + offset);\n output.set(data, offset);\n }\n }\n } else {\n output.set(data, offset);\n }\n }\n return output;\n }\n }\n });\n\n // node_modules/is-obj/index.js\n var require_is_obj = __commonJS({\n \"node_modules/is-obj/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function(x) {\n var type = typeof x;\n return x !== null && (type === \"object\" || type === \"function\");\n };\n }\n });\n\n // node_modules/math-log2/index.js\n var require_math_log2 = __commonJS({\n \"node_modules/math-log2/index.js\"(exports, module) {\n \"use strict\";\n module.exports = Math.log2 || function(x) {\n return Math.log(x) * Math.LOG2E;\n };\n }\n });\n\n // node_modules/@plotly/point-cluster/quad.js\n var require_quad = __commonJS({\n \"node_modules/@plotly/point-cluster/quad.js\"(exports, module) {\n \"use strict\";\n var search = require_search_bounds();\n var clamp = require_clamp();\n var rect = require_parse_rect();\n var getBounds = require_array_bounds();\n var pick = require_pick_by_alias();\n var defined = require_defined();\n var flatten = require_flatten_vertex_data();\n var isObj = require_is_obj();\n var dtype = require_dtype();\n var log2 = require_math_log2();\n var MAX_GROUP_ID = 1073741824;\n module.exports = function cluster(srcPoints, options) {\n if (!options) options = {};\n srcPoints = flatten(srcPoints, \"float64\");\n options = pick(options, {\n bounds: \"range bounds dataBox databox\",\n maxDepth: \"depth maxDepth maxdepth level maxLevel maxlevel levels\",\n dtype: \"type dtype format out dst output destination\"\n // sort: 'sortBy sortby sort',\n // pick: 'pick levelPoint',\n // nodeSize: 'node nodeSize minNodeSize minSize size'\n });\n let maxDepth = defined(options.maxDepth, 255);\n let bounds = defined(options.bounds, getBounds(srcPoints, 2));\n if (bounds[0] === bounds[2]) bounds[2]++;\n if (bounds[1] === bounds[3]) bounds[3]++;\n let points = normalize(srcPoints, bounds);\n let n = srcPoints.length >>> 1;\n let ids;\n if (!options.dtype) options.dtype = \"array\";\n if (typeof options.dtype === \"string\") {\n ids = new (dtype(options.dtype))(n);\n } else if (options.dtype) {\n ids = options.dtype;\n if (Array.isArray(ids)) ids.length = n;\n }\n for (let i = 0; i < n; ++i) {\n ids[i] = i;\n }\n let levels = [];\n let sublevels = [];\n let groups = [];\n let offsets = [];\n sort(0, 0, 1, ids, 0, 1);\n let offset = 0;\n for (let level = 0; level < levels.length; level++) {\n let levelItems = levels[level];\n if (ids.set) ids.set(levelItems, offset);\n else {\n for (let i = 0, l = levelItems.length; i < l; i++) {\n ids[i + offset] = levelItems[i];\n }\n }\n let nextOffset = offset + levels[level].length;\n offsets[level] = [offset, nextOffset];\n offset = nextOffset;\n }\n ids.range = range;\n return ids;\n function sort(x, y, diam, ids2, level, group2) {\n if (!ids2.length) return null;\n let levelItems = levels[level] || (levels[level] = []);\n let levelGroups = groups[level] || (groups[level] = []);\n let sublevel = sublevels[level] || (sublevels[level] = []);\n let offset2 = levelItems.length;\n level++;\n if (level > maxDepth || group2 > MAX_GROUP_ID) {\n for (let i = 0; i < ids2.length; i++) {\n levelItems.push(ids2[i]);\n levelGroups.push(group2);\n sublevel.push(null, null, null, null);\n }\n return offset2;\n }\n levelItems.push(ids2[0]);\n levelGroups.push(group2);\n if (ids2.length <= 1) {\n sublevel.push(null, null, null, null);\n return offset2;\n }\n let d2 = diam * 0.5;\n let cx = x + d2, cy = y + d2;\n let lolo = [], lohi = [], hilo = [], hihi = [];\n for (let i = 1, l = ids2.length; i < l; i++) {\n let idx = ids2[i], x2 = points[idx * 2], y2 = points[idx * 2 + 1];\n x2 < cx ? y2 < cy ? lolo.push(idx) : lohi.push(idx) : y2 < cy ? hilo.push(idx) : hihi.push(idx);\n }\n group2 <<= 2;\n sublevel.push(\n sort(x, y, d2, lolo, level, group2),\n sort(x, cy, d2, lohi, level, group2 + 1),\n sort(cx, y, d2, hilo, level, group2 + 2),\n sort(cx, cy, d2, hihi, level, group2 + 3)\n );\n return offset2;\n }\n function range(...args) {\n let options2;\n if (isObj(args[args.length - 1])) {\n let arg = args.pop();\n if (!args.length && (arg.x != null || arg.l != null || arg.left != null)) {\n args = [arg];\n options2 = {};\n }\n options2 = pick(arg, {\n level: \"level maxLevel\",\n d: \"d diam diameter r radius px pxSize pixel pixelSize maxD size minSize\",\n lod: \"lod details ranges offsets\"\n });\n } else {\n options2 = {};\n }\n if (!args.length) args = bounds;\n let box = rect(...args);\n let [minX, minY, maxX, maxY] = [\n Math.min(box.x, box.x + box.width),\n Math.min(box.y, box.y + box.height),\n Math.max(box.x, box.x + box.width),\n Math.max(box.y, box.y + box.height)\n ];\n let [nminX, nminY, nmaxX, nmaxY] = normalize([minX, minY, maxX, maxY], bounds);\n let maxLevel = defined(options2.level, levels.length);\n if (options2.d != null) {\n let d;\n if (typeof options2.d === \"number\") d = [options2.d, options2.d];\n else if (options2.d.length) d = options2.d;\n maxLevel = Math.min(\n Math.max(\n Math.ceil(-log2(Math.abs(d[0]) / (bounds[2] - bounds[0]))),\n Math.ceil(-log2(Math.abs(d[1]) / (bounds[3] - bounds[1])))\n ),\n maxLevel\n );\n }\n maxLevel = Math.min(maxLevel, levels.length);\n if (options2.lod) {\n return lod(nminX, nminY, nmaxX, nmaxY, maxLevel);\n }\n let selection = [];\n select(0, 0, 1, 0, 0, 1);\n function select(lox, loy, d, level, from, to) {\n if (from === null || to === null) return;\n let hix = lox + d;\n let hiy = loy + d;\n if (nminX > hix || nminY > hiy || nmaxX < lox || nmaxY < loy) return;\n if (level >= maxLevel) return;\n if (from === to) return;\n let levelItems = levels[level];\n if (to === void 0) to = levelItems.length;\n for (let i = from; i < to; i++) {\n let id = levelItems[i];\n let px = srcPoints[id * 2];\n let py = srcPoints[id * 2 + 1];\n if (px >= minX && px <= maxX && py >= minY && py <= maxY) {\n selection.push(id);\n }\n }\n let offsets2 = sublevels[level];\n let off0 = offsets2[from * 4 + 0];\n let off1 = offsets2[from * 4 + 1];\n let off2 = offsets2[from * 4 + 2];\n let off3 = offsets2[from * 4 + 3];\n let end = nextOffset(offsets2, from + 1);\n let d2 = d * 0.5;\n let nextLevel = level + 1;\n select(lox, loy, d2, nextLevel, off0, off1 || off2 || off3 || end);\n select(lox, loy + d2, d2, nextLevel, off1, off2 || off3 || end);\n select(lox + d2, loy, d2, nextLevel, off2, off3 || end);\n select(lox + d2, loy + d2, d2, nextLevel, off3, end);\n }\n function nextOffset(offsets2, from) {\n let offset2 = null, i = 0;\n while (offset2 === null) {\n offset2 = offsets2[from * 4 + i];\n i++;\n if (i > offsets2.length) return null;\n }\n return offset2;\n }\n return selection;\n }\n function lod(lox, loy, hix, hiy, maxLevel) {\n let ranges = [];\n for (let level = 0; level < maxLevel; level++) {\n let levelGroups = groups[level];\n let from = offsets[level][0];\n let levelGroupStart = group(lox, loy, level);\n let levelGroupEnd = group(hix, hiy, level);\n let startOffset = search.ge(levelGroups, levelGroupStart);\n let endOffset = search.gt(levelGroups, levelGroupEnd, startOffset, levelGroups.length - 1);\n ranges[level] = [startOffset + from, endOffset + from];\n }\n return ranges;\n }\n function group(x, y, level) {\n let group2 = 1;\n let cx = 0.5, cy = 0.5;\n let diam = 0.5;\n for (let i = 0; i < level; i++) {\n group2 <<= 2;\n group2 += x < cx ? y < cy ? 0 : 1 : y < cy ? 2 : 3;\n diam *= 0.5;\n cx += x < cx ? -diam : diam;\n cy += y < cy ? -diam : diam;\n }\n return group2;\n }\n };\n function normalize(pts, bounds) {\n let [lox, loy, hix, hiy] = bounds;\n let scaleX = 1 / (hix - lox);\n let scaleY = 1 / (hiy - loy);\n let result = new Array(pts.length);\n for (let i = 0, n = pts.length / 2; i < n; i++) {\n result[2 * i] = clamp((pts[2 * i] - lox) * scaleX, 0, 1);\n result[2 * i + 1] = clamp((pts[2 * i + 1] - loy) * scaleY, 0, 1);\n }\n return result;\n }\n }\n });\n\n // node_modules/@plotly/point-cluster/index.js\n var require_point_cluster = __commonJS({\n \"node_modules/@plotly/point-cluster/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_quad();\n }\n });\n\n // node_modules/abs-svg-path/index.js\n var require_abs_svg_path = __commonJS({\n \"node_modules/abs-svg-path/index.js\"(exports, module) {\n module.exports = absolutize;\n function absolutize(path) {\n var startX = 0;\n var startY = 0;\n var x = 0;\n var y = 0;\n return path.map(function(seg) {\n seg = seg.slice();\n var type = seg[0];\n var command = type.toUpperCase();\n if (type != command) {\n seg[0] = command;\n switch (type) {\n case \"a\":\n seg[6] += x;\n seg[7] += y;\n break;\n case \"v\":\n seg[1] += y;\n break;\n case \"h\":\n seg[1] += x;\n break;\n default:\n for (var i = 1; i < seg.length; ) {\n seg[i++] += x;\n seg[i++] += y;\n }\n }\n }\n switch (command) {\n case \"Z\":\n x = startX;\n y = startY;\n break;\n case \"H\":\n x = seg[1];\n break;\n case \"V\":\n y = seg[1];\n break;\n case \"M\":\n x = startX = seg[1];\n y = startY = seg[2];\n break;\n default:\n x = seg[seg.length - 2];\n y = seg[seg.length - 1];\n }\n return seg;\n });\n }\n }\n });\n\n // node_modules/svg-arc-to-cubic-bezier/cjs/index.js\n var require_cjs6 = __commonJS({\n \"node_modules/svg-arc-to-cubic-bezier/cjs/index.js\"(exports, module) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _slicedToArray = /* @__PURE__ */ function() {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = void 0;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function(arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var TAU = Math.PI * 2;\n var mapToEllipse = function mapToEllipse2(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x, y = _ref.y;\n x *= rx;\n y *= ry;\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n return {\n x: xp + centerx,\n y: yp + centery\n };\n };\n var approxUnitArc = function approxUnitArc2(ang1, ang2) {\n var a = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n };\n var vectorAngle = function vectorAngle2(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n var dot = ux * vx + uy * vy;\n if (dot > 1) {\n dot = 1;\n }\n if (dot < -1) {\n dot = -1;\n }\n return sign * Math.acos(dot);\n };\n var getArcCenter = function getArcCenter2(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n if (radicant < 0) {\n radicant = 0;\n }\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n return [centerx, centery, ang1, ang2];\n };\n var arcToBezier = function arcToBezier2(_ref2) {\n var px = _ref2.px, py = _ref2.py, cx = _ref2.cx, cy = _ref2.cy, rx = _ref2.rx, ry = _ref2.ry, _ref2$xAxisRotation = _ref2.xAxisRotation, xAxisRotation = _ref2$xAxisRotation === void 0 ? 0 : _ref2$xAxisRotation, _ref2$largeArcFlag = _ref2.largeArcFlag, largeArcFlag = _ref2$largeArcFlag === void 0 ? 0 : _ref2$largeArcFlag, _ref2$sweepFlag = _ref2.sweepFlag, sweepFlag = _ref2$sweepFlag === void 0 ? 0 : _ref2$sweepFlag;\n var curves = [];\n if (rx === 0 || ry === 0) {\n return [];\n }\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp), _getArcCenter2 = _slicedToArray(_getArcCenter, 4), centerx = _getArcCenter2[0], centery = _getArcCenter2[1], ang1 = _getArcCenter2[2], ang2 = _getArcCenter2[3];\n var ratio = Math.abs(ang2) / (TAU / 4);\n if (Math.abs(1 - ratio) < 1e-7) {\n ratio = 1;\n }\n var segments = Math.max(Math.ceil(ratio), 1);\n ang2 /= segments;\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n return curves.map(function(curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery), x1 = _mapToEllipse.x, y1 = _mapToEllipse.y;\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery), x2 = _mapToEllipse2.x, y2 = _mapToEllipse2.y;\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery), x = _mapToEllipse3.x, y = _mapToEllipse3.y;\n return { x1, y1, x2, y2, x, y };\n });\n };\n exports.default = arcToBezier;\n module.exports = exports.default;\n }\n });\n\n // node_modules/svg-path-bounds/node_modules/normalize-svg-path/index.js\n var require_normalize_svg_path = __commonJS({\n \"node_modules/svg-path-bounds/node_modules/normalize-svg-path/index.js\"(exports, module) {\n \"use strict\";\n module.exports = normalize;\n var arcToCurve = require_cjs6();\n function normalize(path) {\n var prev;\n var result = [];\n var bezierX = 0;\n var bezierY = 0;\n var startX = 0;\n var startY = 0;\n var quadX = null;\n var quadY = null;\n var x = 0;\n var y = 0;\n for (var i = 0, len = path.length; i < len; i++) {\n var seg = path[i];\n var command = seg[0];\n switch (command) {\n case \"M\":\n startX = seg[1];\n startY = seg[2];\n break;\n case \"A\":\n var curves = arcToCurve({\n px: x,\n py: y,\n cx: seg[6],\n cy: seg[7],\n rx: seg[1],\n ry: seg[2],\n xAxisRotation: seg[3],\n largeArcFlag: seg[4],\n sweepFlag: seg[5]\n });\n if (!curves.length) continue;\n for (var j = 0, c; j < curves.length; j++) {\n c = curves[j];\n seg = [\"C\", c.x1, c.y1, c.x2, c.y2, c.x, c.y];\n if (j < curves.length - 1) result.push(seg);\n }\n break;\n case \"S\":\n var cx = x;\n var cy = y;\n if (prev == \"C\" || prev == \"S\") {\n cx += cx - bezierX;\n cy += cy - bezierY;\n }\n seg = [\"C\", cx, cy, seg[1], seg[2], seg[3], seg[4]];\n break;\n case \"T\":\n if (prev == \"Q\" || prev == \"T\") {\n quadX = x * 2 - quadX;\n quadY = y * 2 - quadY;\n } else {\n quadX = x;\n quadY = y;\n }\n seg = quadratic(x, y, quadX, quadY, seg[1], seg[2]);\n break;\n case \"Q\":\n quadX = seg[1];\n quadY = seg[2];\n seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4]);\n break;\n case \"L\":\n seg = line(x, y, seg[1], seg[2]);\n break;\n case \"H\":\n seg = line(x, y, seg[1], y);\n break;\n case \"V\":\n seg = line(x, y, x, seg[1]);\n break;\n case \"Z\":\n seg = line(x, y, startX, startY);\n break;\n }\n prev = command;\n x = seg[seg.length - 2];\n y = seg[seg.length - 1];\n if (seg.length > 4) {\n bezierX = seg[seg.length - 4];\n bezierY = seg[seg.length - 3];\n } else {\n bezierX = x;\n bezierY = y;\n }\n result.push(seg);\n }\n return result;\n }\n function line(x1, y1, x2, y2) {\n return [\"C\", x1, y1, x2, y2, x2, y2];\n }\n function quadratic(x1, y1, cx, cy, x2, y2) {\n return [\n \"C\",\n x1 / 3 + 2 / 3 * cx,\n y1 / 3 + 2 / 3 * cy,\n x2 / 3 + 2 / 3 * cx,\n y2 / 3 + 2 / 3 * cy,\n x2,\n y2\n ];\n }\n }\n });\n\n // node_modules/is-svg-path/index.js\n var require_is_svg_path = __commonJS({\n \"node_modules/is-svg-path/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function isPath(str) {\n if (typeof str !== \"string\") return false;\n str = str.trim();\n if (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(str) && /[\\dz]$/i.test(str) && str.length > 4) return true;\n return false;\n };\n }\n });\n\n // node_modules/svg-path-bounds/index.js\n var require_svg_path_bounds = __commonJS({\n \"node_modules/svg-path-bounds/index.js\"(exports, module) {\n \"use strict\";\n var parse2 = require_parse_svg_path();\n var abs = require_abs_svg_path();\n var normalize = require_normalize_svg_path();\n var isSvgPath = require_is_svg_path();\n var assert = require_assert();\n module.exports = pathBounds;\n function pathBounds(path) {\n if (Array.isArray(path) && path.length === 1 && typeof path[0] === \"string\") path = path[0];\n if (typeof path === \"string\") {\n assert(isSvgPath(path), \"String is not an SVG path.\");\n path = parse2(path);\n }\n assert(Array.isArray(path), \"Argument should be a string or an array of path segments.\");\n path = abs(path);\n path = normalize(path);\n if (!path.length) return [0, 0, 0, 0];\n var bounds = [Infinity, Infinity, -Infinity, -Infinity];\n for (var i = 0, l = path.length; i < l; i++) {\n var points = path[i].slice(1);\n for (var j = 0; j < points.length; j += 2) {\n if (points[j + 0] < bounds[0]) bounds[0] = points[j + 0];\n if (points[j + 1] < bounds[1]) bounds[1] = points[j + 1];\n if (points[j + 0] > bounds[2]) bounds[2] = points[j + 0];\n if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1];\n }\n }\n return bounds;\n }\n }\n });\n\n // node_modules/normalize-svg-path/index.js\n var require_normalize_svg_path2 = __commonJS({\n \"node_modules/normalize-svg-path/index.js\"(exports, module) {\n var \\u03C0 = Math.PI;\n var _120 = radians2(120);\n module.exports = normalize;\n function normalize(path) {\n var prev;\n var result = [];\n var bezierX = 0;\n var bezierY = 0;\n var startX = 0;\n var startY = 0;\n var quadX = null;\n var quadY = null;\n var x = 0;\n var y = 0;\n for (var i = 0, len = path.length; i < len; i++) {\n var seg = path[i];\n var command = seg[0];\n switch (command) {\n case \"M\":\n startX = seg[1];\n startY = seg[2];\n break;\n case \"A\":\n seg = arc(x, y, seg[1], seg[2], radians2(seg[3]), seg[4], seg[5], seg[6], seg[7]);\n seg.unshift(\"C\");\n if (seg.length > 7) {\n result.push(seg.splice(0, 7));\n seg.unshift(\"C\");\n }\n break;\n case \"S\":\n var cx = x;\n var cy = y;\n if (prev == \"C\" || prev == \"S\") {\n cx += cx - bezierX;\n cy += cy - bezierY;\n }\n seg = [\"C\", cx, cy, seg[1], seg[2], seg[3], seg[4]];\n break;\n case \"T\":\n if (prev == \"Q\" || prev == \"T\") {\n quadX = x * 2 - quadX;\n quadY = y * 2 - quadY;\n } else {\n quadX = x;\n quadY = y;\n }\n seg = quadratic(x, y, quadX, quadY, seg[1], seg[2]);\n break;\n case \"Q\":\n quadX = seg[1];\n quadY = seg[2];\n seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4]);\n break;\n case \"L\":\n seg = line(x, y, seg[1], seg[2]);\n break;\n case \"H\":\n seg = line(x, y, seg[1], y);\n break;\n case \"V\":\n seg = line(x, y, x, seg[1]);\n break;\n case \"Z\":\n seg = line(x, y, startX, startY);\n break;\n }\n prev = command;\n x = seg[seg.length - 2];\n y = seg[seg.length - 1];\n if (seg.length > 4) {\n bezierX = seg[seg.length - 4];\n bezierY = seg[seg.length - 3];\n } else {\n bezierX = x;\n bezierY = y;\n }\n result.push(seg);\n }\n return result;\n }\n function line(x1, y1, x2, y2) {\n return [\"C\", x1, y1, x2, y2, x2, y2];\n }\n function quadratic(x1, y1, cx, cy, x2, y2) {\n return [\n \"C\",\n x1 / 3 + 2 / 3 * cx,\n y1 / 3 + 2 / 3 * cy,\n x2 / 3 + 2 / 3 * cx,\n y2 / 3 + 2 / 3 * cy,\n x2,\n y2\n ];\n }\n function arc(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n if (!recursive) {\n var xy = rotate(x1, y1, -angle);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -angle);\n x2 = xy.x;\n y2 = xy.y;\n var x = (x1 - x2) / 2;\n var y = (y1 - y2) / 2;\n var h = x * x / (rx * rx) + y * y / (ry * ry);\n if (h > 1) {\n h = Math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n var rx2 = rx * rx;\n var ry2 = ry * ry;\n var k = (large_arc_flag == sweep_flag ? -1 : 1) * Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x)));\n if (k == Infinity) k = 1;\n var cx = k * rx * y / ry + (x1 + x2) / 2;\n var cy = k * -ry * x / rx + (y1 + y2) / 2;\n var f1 = Math.asin(((y1 - cy) / ry).toFixed(9));\n var f2 = Math.asin(((y2 - cy) / ry).toFixed(9));\n f1 = x1 < cx ? \\u03C0 - f1 : f1;\n f2 = x2 < cx ? \\u03C0 - f2 : f2;\n if (f1 < 0) f1 = \\u03C0 * 2 + f1;\n if (f2 < 0) f2 = \\u03C0 * 2 + f2;\n if (sweep_flag && f1 > f2) f1 = f1 - \\u03C0 * 2;\n if (!sweep_flag && f2 > f1) f2 = f2 - \\u03C0 * 2;\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n if (Math.abs(f2 - f1) > _120) {\n var f2old = f2;\n var x2old = x2;\n var y2old = y2;\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * Math.cos(f2);\n y2 = cy + ry * Math.sin(f2);\n var res = arc(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n }\n var t = Math.tan((f2 - f1) / 4);\n var hx = 4 / 3 * rx * t;\n var hy = 4 / 3 * ry * t;\n var curve = [\n 2 * x1 - (x1 + hx * Math.sin(f1)),\n 2 * y1 - (y1 - hy * Math.cos(f1)),\n x2 + hx * Math.sin(f2),\n y2 - hy * Math.cos(f2),\n x2,\n y2\n ];\n if (recursive) return curve;\n if (res) curve = curve.concat(res);\n for (var i = 0; i < curve.length; ) {\n var rot = rotate(curve[i], curve[i + 1], angle);\n curve[i++] = rot.x;\n curve[i++] = rot.y;\n }\n return curve;\n }\n function rotate(x, y, rad) {\n return {\n x: x * Math.cos(rad) - y * Math.sin(rad),\n y: x * Math.sin(rad) + y * Math.cos(rad)\n };\n }\n function radians2(degress) {\n return degress * (\\u03C0 / 180);\n }\n }\n });\n\n // node_modules/draw-svg-path/index.js\n var require_draw_svg_path = __commonJS({\n \"node_modules/draw-svg-path/index.js\"(exports, module) {\n var abs = require_abs_svg_path();\n var normalize = require_normalize_svg_path2();\n var methods = {\n \"M\": \"moveTo\",\n \"C\": \"bezierCurveTo\"\n };\n module.exports = function(context, segments) {\n context.beginPath();\n normalize(abs(segments)).forEach(\n function(segment) {\n var command = segment[0];\n var args = segment.slice(1);\n context[methods[command]].apply(context, args);\n }\n );\n context.closePath();\n };\n }\n });\n\n // node_modules/bitmap-sdf/index.js\n var require_bitmap_sdf = __commonJS({\n \"node_modules/bitmap-sdf/index.js\"(exports, module) {\n \"use strict\";\n var clamp = require_clamp();\n module.exports = calcSDF;\n var INF = 1e20;\n function calcSDF(src, options) {\n if (!options) options = {};\n var cutoff = options.cutoff == null ? 0.25 : options.cutoff;\n var radius = options.radius == null ? 8 : options.radius;\n var channel = options.channel || 0;\n var w, h, size, data, intData, stride, ctx, canvas, imgData, i, l;\n if (ArrayBuffer.isView(src) || Array.isArray(src)) {\n if (!options.width || !options.height) throw Error(\"For raw data width and height should be provided by options\");\n w = options.width, h = options.height;\n data = src;\n if (!options.stride) stride = Math.floor(src.length / w / h);\n else stride = options.stride;\n } else {\n if (window.HTMLCanvasElement && src instanceof window.HTMLCanvasElement) {\n canvas = src;\n ctx = canvas.getContext(\"2d\");\n w = canvas.width, h = canvas.height;\n imgData = ctx.getImageData(0, 0, w, h);\n data = imgData.data;\n stride = 4;\n } else if (window.CanvasRenderingContext2D && src instanceof window.CanvasRenderingContext2D) {\n canvas = src.canvas;\n ctx = src;\n w = canvas.width, h = canvas.height;\n imgData = ctx.getImageData(0, 0, w, h);\n data = imgData.data;\n stride = 4;\n } else if (window.ImageData && src instanceof window.ImageData) {\n imgData = src;\n w = src.width, h = src.height;\n data = imgData.data;\n stride = 4;\n }\n }\n size = Math.max(w, h);\n if (window.Uint8ClampedArray && data instanceof window.Uint8ClampedArray || window.Uint8Array && data instanceof window.Uint8Array) {\n intData = data;\n data = Array(w * h);\n for (i = 0, l = intData.length; i < l; i++) {\n data[i] = intData[i * stride + channel] / 255;\n }\n } else {\n if (stride !== 1) throw Error(\"Raw data can have only 1 value per pixel\");\n }\n var gridOuter = Array(w * h);\n var gridInner = Array(w * h);\n var f = Array(size);\n var d = Array(size);\n var z = Array(size + 1);\n var v = Array(size);\n for (i = 0, l = w * h; i < l; i++) {\n var a = data[i];\n gridOuter[i] = a === 1 ? 0 : a === 0 ? INF : Math.pow(Math.max(0, 0.5 - a), 2);\n gridInner[i] = a === 1 ? INF : a === 0 ? 0 : Math.pow(Math.max(0, a - 0.5), 2);\n }\n edt(gridOuter, w, h, f, d, v, z);\n edt(gridInner, w, h, f, d, v, z);\n var dist = window.Float32Array ? new Float32Array(w * h) : new Array(w * h);\n for (i = 0, l = w * h; i < l; i++) {\n dist[i] = clamp(1 - ((gridOuter[i] - gridInner[i]) / radius + cutoff), 0, 1);\n }\n return dist;\n }\n function edt(data, width, height, f, d, v, z) {\n for (var x = 0; x < width; x++) {\n for (var y = 0; y < height; y++) {\n f[y] = data[y * width + x];\n }\n edt1d(f, d, v, z, height);\n for (y = 0; y < height; y++) {\n data[y * width + x] = d[y];\n }\n }\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n f[x] = data[y * width + x];\n }\n edt1d(f, d, v, z, width);\n for (x = 0; x < width; x++) {\n data[y * width + x] = Math.sqrt(d[x]);\n }\n }\n }\n function edt1d(f, d, v, z, n) {\n v[0] = 0;\n z[0] = -INF;\n z[1] = +INF;\n for (var q = 1, k = 0; q < n; q++) {\n var s = (f[q] + q * q - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]);\n while (s <= z[k]) {\n k--;\n s = (f[q] + q * q - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]);\n }\n k++;\n v[k] = q;\n z[k] = s;\n z[k + 1] = +INF;\n }\n for (q = 0, k = 0; q < n; q++) {\n while (z[k + 1] < q) k++;\n d[q] = (q - v[k]) * (q - v[k]) + f[v[k]];\n }\n }\n }\n });\n\n // node_modules/svg-path-sdf/index.js\n var require_svg_path_sdf = __commonJS({\n \"node_modules/svg-path-sdf/index.js\"(exports, module) {\n \"use strict\";\n var pathBounds = require_svg_path_bounds();\n var parsePath = require_parse_svg_path();\n var drawPath = require_draw_svg_path();\n var isSvgPath = require_is_svg_path();\n var bitmapSdf = require_bitmap_sdf();\n var canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n module.exports = pathSdf;\n function pathSdf(path, options) {\n if (!isSvgPath(path)) throw Error(\"Argument should be valid svg path string\");\n if (!options) options = {};\n var w, h;\n if (options.shape) {\n w = options.shape[0];\n h = options.shape[1];\n } else {\n w = canvas.width = options.w || options.width || 200;\n h = canvas.height = options.h || options.height || 200;\n }\n var size = Math.min(w, h);\n var stroke = options.stroke || 0;\n var viewbox = options.viewbox || options.viewBox || pathBounds(path);\n var scale = [w / (viewbox[2] - viewbox[0]), h / (viewbox[3] - viewbox[1])];\n var maxScale = Math.min(scale[0] || 0, scale[1] || 0) / 2;\n ctx.fillStyle = \"black\";\n ctx.fillRect(0, 0, w, h);\n ctx.fillStyle = \"white\";\n if (stroke) {\n if (typeof stroke != \"number\") stroke = 1;\n if (stroke > 0) {\n ctx.strokeStyle = \"white\";\n } else {\n ctx.strokeStyle = \"black\";\n }\n ctx.lineWidth = Math.abs(stroke);\n }\n ctx.translate(w * 0.5, h * 0.5);\n ctx.scale(maxScale, maxScale);\n if (isPath2DSupported()) {\n var path2d = new Path2D(path);\n ctx.fill(path2d);\n stroke && ctx.stroke(path2d);\n } else {\n var segments = parsePath(path);\n drawPath(ctx, segments);\n ctx.fill();\n stroke && ctx.stroke();\n }\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n var data = bitmapSdf(ctx, {\n cutoff: options.cutoff != null ? options.cutoff : 0.5,\n radius: options.radius != null ? options.radius : size * 0.5\n });\n return data;\n }\n var path2DSupported;\n function isPath2DSupported() {\n if (path2DSupported != null) return path2DSupported;\n var ctx2 = document.createElement(\"canvas\").getContext(\"2d\");\n ctx2.canvas.width = ctx2.canvas.height = 1;\n if (!window.Path2D) return path2DSupported = false;\n var path = new Path2D(\"M0,0h1v1h-1v-1Z\");\n ctx2.fillStyle = \"black\";\n ctx2.fill(path);\n var idata = ctx2.getImageData(0, 0, 1, 1);\n return path2DSupported = idata && idata.data && idata.data[3] === 255;\n }\n }\n });\n\n // src/traces/scattergl/convert.js\n var require_convert10 = __commonJS({\n \"src/traces/scattergl/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var svgSdf = require_svg_path_sdf();\n var rgba3 = require_color_normalize();\n var Registry = require_registry();\n var Lib = require_lib();\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var Drawing = require_drawing();\n var AxisIDs = require_axis_ids();\n var formatColor = require_gl_format_color().formatColor;\n var subTypes = require_subtypes();\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var helpers = require_helpers16();\n var constants = require_constants23();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var TEXTOFFSETSIGN = {\n start: 1,\n left: 1,\n end: -1,\n right: -1,\n middle: 0,\n center: 0,\n bottom: 1,\n top: -1\n };\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n function convertStyle(gd, trace) {\n var i;\n var opts = {\n marker: void 0,\n markerSel: void 0,\n markerUnsel: void 0,\n line: void 0,\n fill: void 0,\n errorX: void 0,\n errorY: void 0,\n text: void 0,\n textSel: void 0,\n textUnsel: void 0\n };\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n if (trace.visible !== true) return opts;\n if (subTypes.hasText(trace)) {\n opts.text = convertTextStyle(gd, trace);\n opts.textSel = convertTextSelection(gd, trace, trace.selected);\n opts.textUnsel = convertTextSelection(gd, trace, trace.unselected);\n }\n if (subTypes.hasMarkers(trace)) {\n opts.marker = convertMarkerStyle(gd, trace);\n opts.markerSel = convertMarkerSelection(gd, trace, trace.selected);\n opts.markerUnsel = convertMarkerSelection(gd, trace, trace.unselected);\n if (!trace.unselected && isArrayOrTypedArray(trace.marker.opacity)) {\n var mo = trace.marker.opacity;\n opts.markerUnsel.opacity = new Array(mo.length);\n for (i = 0; i < mo.length; i++) {\n opts.markerUnsel.opacity[i] = DESELECTDIM * mo[i];\n }\n }\n }\n if (subTypes.hasLines(trace)) {\n opts.line = {\n overlay: true,\n thickness: trace.line.width * plotGlPixelRatio,\n color: trace.line.color,\n opacity: trace.opacity\n };\n var dashes = (constants.DASHES[trace.line.dash] || [1]).slice();\n for (i = 0; i < dashes.length; ++i) {\n dashes[i] *= trace.line.width * plotGlPixelRatio;\n }\n opts.line.dashes = dashes;\n }\n if (trace.error_x && trace.error_x.visible) {\n opts.errorX = convertErrorBarStyle(trace, trace.error_x, plotGlPixelRatio);\n }\n if (trace.error_y && trace.error_y.visible) {\n opts.errorY = convertErrorBarStyle(trace, trace.error_y, plotGlPixelRatio);\n }\n if (!!trace.fill && trace.fill !== \"none\") {\n opts.fill = {\n closed: true,\n fill: trace.fillcolor,\n thickness: 0\n };\n }\n return opts;\n }\n function convertTextStyle(gd, trace) {\n var fullLayout = gd._fullLayout;\n var count = trace._length;\n var textfontIn = trace.textfont;\n var textpositionIn = trace.textposition;\n var textPos = isArrayOrTypedArray(textpositionIn) ? textpositionIn : [textpositionIn];\n var tfc = textfontIn.color;\n var tfs = textfontIn.size;\n var tff = textfontIn.family;\n var tfw = textfontIn.weight;\n var tfy = textfontIn.style;\n var tfv = textfontIn.variant;\n var optsOut = {};\n var i;\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n var texttemplate = trace.texttemplate;\n if (texttemplate) {\n optsOut.text = [];\n var d3locale = fullLayout._d3locale;\n var isArray = Array.isArray(texttemplate);\n var N = isArray ? Math.min(texttemplate.length, count) : count;\n var txt = isArray ? function(i2) {\n return texttemplate[i2];\n } : function() {\n return texttemplate;\n };\n for (i = 0; i < N; i++) {\n var d = { i };\n var labels = trace._module.formatLabels(d, trace, fullLayout);\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, i);\n var meta = trace._meta || {};\n optsOut.text.push(Lib.texttemplateString(txt(i), labels, d3locale, pointValues, d, meta));\n }\n } else {\n if (isArrayOrTypedArray(trace.text) && trace.text.length < count) {\n optsOut.text = trace.text.slice();\n } else {\n optsOut.text = trace.text;\n }\n }\n if (isArrayOrTypedArray(optsOut.text)) {\n for (i = optsOut.text.length; i < count; i++) {\n optsOut.text[i] = \"\";\n }\n }\n optsOut.opacity = trace.opacity;\n optsOut.font = {};\n optsOut.align = [];\n optsOut.baseline = [];\n for (i = 0; i < textPos.length; i++) {\n var tp = textPos[i].split(/\\s+/);\n switch (tp[1]) {\n case \"left\":\n optsOut.align.push(\"right\");\n break;\n case \"right\":\n optsOut.align.push(\"left\");\n break;\n default:\n optsOut.align.push(tp[1]);\n }\n switch (tp[0]) {\n case \"top\":\n optsOut.baseline.push(\"bottom\");\n break;\n case \"bottom\":\n optsOut.baseline.push(\"top\");\n break;\n default:\n optsOut.baseline.push(tp[0]);\n }\n }\n if (isArrayOrTypedArray(tfc)) {\n optsOut.color = new Array(count);\n for (i = 0; i < count; i++) {\n optsOut.color[i] = tfc[i];\n }\n } else {\n optsOut.color = tfc;\n }\n if (isArrayOrTypedArray(tfs) || Array.isArray(tff) || isArrayOrTypedArray(tfw) || Array.isArray(tfy) || Array.isArray(tfv)) {\n optsOut.font = new Array(count);\n for (i = 0; i < count; i++) {\n var fonti = optsOut.font[i] = {};\n fonti.size = (Lib.isTypedArray(tfs) ? tfs[i] : isArrayOrTypedArray(tfs) ? isNumeric(tfs[i]) ? tfs[i] : 0 : tfs) * plotGlPixelRatio;\n fonti.family = Array.isArray(tff) ? tff[i] : tff;\n fonti.weight = weightFallBack(isArrayOrTypedArray(tfw) ? tfw[i] : tfw);\n fonti.style = Array.isArray(tfy) ? tfy[i] : tfy;\n fonti.variant = Array.isArray(tfv) ? tfv[i] : tfv;\n }\n } else {\n optsOut.font = {\n size: tfs * plotGlPixelRatio,\n family: tff,\n weight: weightFallBack(tfw),\n style: tfy,\n variant: tfv\n };\n }\n return optsOut;\n }\n function weightFallBack(w) {\n if (w <= 1e3) {\n return w > 500 ? \"bold\" : \"normal\";\n }\n return w;\n }\n function convertMarkerStyle(gd, trace) {\n var count = trace._length;\n var optsIn = trace.marker;\n var optsOut = {};\n var i;\n var multiSymbol = isArrayOrTypedArray(optsIn.symbol);\n var multiAngle = isArrayOrTypedArray(optsIn.angle);\n var multiColor = isArrayOrTypedArray(optsIn.color);\n var multiLineColor = isArrayOrTypedArray(optsIn.line.color);\n var multiOpacity = isArrayOrTypedArray(optsIn.opacity);\n var multiSize = isArrayOrTypedArray(optsIn.size);\n var multiLineWidth = isArrayOrTypedArray(optsIn.line.width);\n var isOpen;\n if (!multiSymbol) isOpen = helpers.isOpenSymbol(optsIn.symbol);\n if (multiSymbol || multiColor || multiLineColor || multiOpacity || multiAngle) {\n optsOut.symbols = new Array(count);\n optsOut.angles = new Array(count);\n optsOut.colors = new Array(count);\n optsOut.borderColors = new Array(count);\n var symbols = optsIn.symbol;\n var angles = optsIn.angle;\n var colors = formatColor(optsIn, optsIn.opacity, count);\n var borderColors = formatColor(optsIn.line, optsIn.opacity, count);\n if (!isArrayOrTypedArray(borderColors[0])) {\n var borderColor = borderColors;\n borderColors = Array(count);\n for (i = 0; i < count; i++) {\n borderColors[i] = borderColor;\n }\n }\n if (!isArrayOrTypedArray(colors[0])) {\n var color2 = colors;\n colors = Array(count);\n for (i = 0; i < count; i++) {\n colors[i] = color2;\n }\n }\n if (!isArrayOrTypedArray(symbols)) {\n var symbol = symbols;\n symbols = Array(count);\n for (i = 0; i < count; i++) {\n symbols[i] = symbol;\n }\n }\n if (!isArrayOrTypedArray(angles)) {\n var angle = angles;\n angles = Array(count);\n for (i = 0; i < count; i++) {\n angles[i] = angle;\n }\n }\n optsOut.symbols = symbols;\n optsOut.angles = angles;\n optsOut.colors = colors;\n optsOut.borderColors = borderColors;\n for (i = 0; i < count; i++) {\n if (multiSymbol) {\n isOpen = helpers.isOpenSymbol(optsIn.symbol[i]);\n }\n if (isOpen) {\n borderColors[i] = colors[i].slice();\n colors[i] = colors[i].slice();\n colors[i][3] = 0;\n }\n }\n optsOut.opacity = trace.opacity;\n optsOut.markers = new Array(count);\n for (i = 0; i < count; i++) {\n optsOut.markers[i] = getSymbolSdf({\n mx: optsOut.symbols[i],\n ma: optsOut.angles[i]\n }, trace);\n }\n } else {\n if (isOpen) {\n optsOut.color = rgba3(optsIn.color, \"uint8\");\n optsOut.color[3] = 0;\n optsOut.borderColor = rgba3(optsIn.color, \"uint8\");\n } else {\n optsOut.color = rgba3(optsIn.color, \"uint8\");\n optsOut.borderColor = rgba3(optsIn.line.color, \"uint8\");\n }\n optsOut.opacity = trace.opacity * optsIn.opacity;\n optsOut.marker = getSymbolSdf({\n mx: optsIn.symbol,\n ma: optsIn.angle\n }, trace);\n }\n var sizeFactor = 1;\n var markerSizeFunc = makeBubbleSizeFn(trace, sizeFactor);\n var s;\n if (multiSize || multiLineWidth) {\n var sizes = optsOut.sizes = new Array(count);\n var borderSizes = optsOut.borderSizes = new Array(count);\n var sizeTotal = 0;\n var sizeAvg;\n if (multiSize) {\n for (i = 0; i < count; i++) {\n sizes[i] = markerSizeFunc(optsIn.size[i]);\n sizeTotal += sizes[i];\n }\n sizeAvg = sizeTotal / count;\n } else {\n s = markerSizeFunc(optsIn.size);\n for (i = 0; i < count; i++) {\n sizes[i] = s;\n }\n }\n if (multiLineWidth) {\n for (i = 0; i < count; i++) {\n borderSizes[i] = optsIn.line.width[i];\n }\n } else {\n s = optsIn.line.width;\n for (i = 0; i < count; i++) {\n borderSizes[i] = s;\n }\n }\n optsOut.sizeAvg = sizeAvg;\n } else {\n optsOut.size = markerSizeFunc(optsIn && optsIn.size || 10);\n optsOut.borderSizes = markerSizeFunc(optsIn.line.width);\n }\n return optsOut;\n }\n function convertMarkerSelection(gd, trace, target) {\n var optsIn = trace.marker;\n var optsOut = {};\n if (!target) return optsOut;\n if (target.marker && target.marker.symbol) {\n optsOut = convertMarkerStyle(gd, Lib.extendFlat({}, optsIn, target.marker));\n } else if (target.marker) {\n if (target.marker.size) optsOut.size = target.marker.size;\n if (target.marker.color) optsOut.colors = target.marker.color;\n if (target.marker.opacity !== void 0) optsOut.opacity = target.marker.opacity;\n }\n return optsOut;\n }\n function convertTextSelection(gd, trace, target) {\n var optsOut = {};\n if (!target) return optsOut;\n if (target.textfont) {\n var optsIn = {\n opacity: 1,\n text: trace.text,\n texttemplate: trace.texttemplate,\n textposition: trace.textposition,\n textfont: Lib.extendFlat({}, trace.textfont)\n };\n if (target.textfont) {\n Lib.extendFlat(optsIn.textfont, target.textfont);\n }\n optsOut = convertTextStyle(gd, optsIn);\n }\n return optsOut;\n }\n function convertErrorBarStyle(trace, target, plotGlPixelRatio) {\n var optsOut = {\n capSize: target.width * 2 * plotGlPixelRatio,\n lineWidth: target.thickness * plotGlPixelRatio,\n color: target.color\n };\n if (target.copy_ystyle) {\n optsOut = trace.error_y;\n }\n return optsOut;\n }\n var SYMBOL_SDF_SIZE = constants.SYMBOL_SDF_SIZE;\n var SYMBOL_SIZE = constants.SYMBOL_SIZE;\n var SYMBOL_STROKE = constants.SYMBOL_STROKE;\n var SYMBOL_SDF = {};\n var SYMBOL_SVG_CIRCLE = Drawing.symbolFuncs[0](SYMBOL_SIZE * 0.05);\n function getSymbolSdf(d, trace) {\n var symbol = d.mx;\n if (symbol === \"circle\") return null;\n var symbolPath, symbolSdf;\n var symbolNumber = Drawing.symbolNumber(symbol);\n var symbolFunc = Drawing.symbolFuncs[symbolNumber % 100];\n var symbolNoDot = !!Drawing.symbolNoDot[symbolNumber % 100];\n var symbolNoFill = !!Drawing.symbolNoFill[symbolNumber % 100];\n var isDot = helpers.isDotSymbol(symbol);\n if (d.ma) symbol += \"_\" + d.ma;\n if (SYMBOL_SDF[symbol]) return SYMBOL_SDF[symbol];\n var angle = Drawing.getMarkerAngle(d, trace);\n if (isDot && !symbolNoDot) {\n symbolPath = symbolFunc(SYMBOL_SIZE * 1.1, angle) + SYMBOL_SVG_CIRCLE;\n } else {\n symbolPath = symbolFunc(SYMBOL_SIZE, angle);\n }\n symbolSdf = svgSdf(symbolPath, {\n w: SYMBOL_SDF_SIZE,\n h: SYMBOL_SDF_SIZE,\n viewBox: [-SYMBOL_SIZE, -SYMBOL_SIZE, SYMBOL_SIZE, SYMBOL_SIZE],\n stroke: symbolNoFill ? SYMBOL_STROKE : -SYMBOL_STROKE\n });\n SYMBOL_SDF[symbol] = symbolSdf;\n return symbolSdf || null;\n }\n function convertLinePositions(gd, trace, positions) {\n var len = positions.length;\n var count = len / 2;\n var linePositions;\n var i;\n if (subTypes.hasLines(trace) && count) {\n if (trace.line.shape === \"hv\") {\n linePositions = [];\n for (i = 0; i < count - 1; i++) {\n if (isNaN(positions[i * 2]) || isNaN(positions[i * 2 + 1])) {\n linePositions.push(NaN, NaN, NaN, NaN);\n } else {\n linePositions.push(positions[i * 2], positions[i * 2 + 1]);\n if (!isNaN(positions[i * 2 + 2]) && !isNaN(positions[i * 2 + 3])) {\n linePositions.push(positions[i * 2 + 2], positions[i * 2 + 1]);\n } else {\n linePositions.push(NaN, NaN);\n }\n }\n }\n linePositions.push(positions[len - 2], positions[len - 1]);\n } else if (trace.line.shape === \"hvh\") {\n linePositions = [];\n for (i = 0; i < count - 1; i++) {\n if (isNaN(positions[i * 2]) || isNaN(positions[i * 2 + 1]) || isNaN(positions[i * 2 + 2]) || isNaN(positions[i * 2 + 3])) {\n if (!isNaN(positions[i * 2]) && !isNaN(positions[i * 2 + 1])) {\n linePositions.push(positions[i * 2], positions[i * 2 + 1]);\n } else {\n linePositions.push(NaN, NaN);\n }\n linePositions.push(NaN, NaN);\n } else {\n var midPtX = (positions[i * 2] + positions[i * 2 + 2]) / 2;\n linePositions.push(\n positions[i * 2],\n positions[i * 2 + 1],\n midPtX,\n positions[i * 2 + 1],\n midPtX,\n positions[i * 2 + 3]\n );\n }\n }\n linePositions.push(positions[len - 2], positions[len - 1]);\n } else if (trace.line.shape === \"vhv\") {\n linePositions = [];\n for (i = 0; i < count - 1; i++) {\n if (isNaN(positions[i * 2]) || isNaN(positions[i * 2 + 1]) || isNaN(positions[i * 2 + 2]) || isNaN(positions[i * 2 + 3])) {\n if (!isNaN(positions[i * 2]) && !isNaN(positions[i * 2 + 1])) {\n linePositions.push(positions[i * 2], positions[i * 2 + 1]);\n } else {\n linePositions.push(NaN, NaN);\n }\n linePositions.push(NaN, NaN);\n } else {\n var midPtY = (positions[i * 2 + 1] + positions[i * 2 + 3]) / 2;\n linePositions.push(\n positions[i * 2],\n positions[i * 2 + 1],\n positions[i * 2],\n midPtY,\n positions[i * 2 + 2],\n midPtY\n );\n }\n }\n linePositions.push(positions[len - 2], positions[len - 1]);\n } else if (trace.line.shape === \"vh\") {\n linePositions = [];\n for (i = 0; i < count - 1; i++) {\n if (isNaN(positions[i * 2]) || isNaN(positions[i * 2 + 1])) {\n linePositions.push(NaN, NaN, NaN, NaN);\n } else {\n linePositions.push(positions[i * 2], positions[i * 2 + 1]);\n if (!isNaN(positions[i * 2 + 2]) && !isNaN(positions[i * 2 + 3])) {\n linePositions.push(positions[i * 2], positions[i * 2 + 3]);\n } else {\n linePositions.push(NaN, NaN);\n }\n }\n }\n linePositions.push(positions[len - 2], positions[len - 1]);\n } else {\n linePositions = positions;\n }\n }\n var hasNaN = false;\n for (i = 0; i < linePositions.length; i++) {\n if (isNaN(linePositions[i])) {\n hasNaN = true;\n break;\n }\n }\n var join = hasNaN || linePositions.length > constants.TOO_MANY_POINTS ? \"rect\" : subTypes.hasMarkers(trace) ? \"rect\" : \"round\";\n if (hasNaN && trace.connectgaps) {\n var lastX = linePositions[0];\n var lastY = linePositions[1];\n for (i = 0; i < linePositions.length; i += 2) {\n if (isNaN(linePositions[i]) || isNaN(linePositions[i + 1])) {\n linePositions[i] = lastX;\n linePositions[i + 1] = lastY;\n } else {\n lastX = linePositions[i];\n lastY = linePositions[i + 1];\n }\n }\n }\n return {\n join,\n positions: linePositions\n };\n }\n function convertErrorBarPositions(gd, trace, positions, x, y) {\n var makeComputeError = Registry.getComponentMethod(\"errorbars\", \"makeComputeError\");\n var xa = AxisIDs.getFromId(gd, trace.xaxis, \"x\");\n var ya = AxisIDs.getFromId(gd, trace.yaxis, \"y\");\n var count = positions.length / 2;\n var out = {};\n function convertOneAxis(coords, ax) {\n var axLetter = ax._id.charAt(0);\n var opts = trace[\"error_\" + axLetter];\n if (opts && opts.visible && (ax.type === \"linear\" || ax.type === \"log\")) {\n var computeError = makeComputeError(opts);\n var pOffset = { x: 0, y: 1 }[axLetter];\n var eOffset = { x: [0, 1, 2, 3], y: [2, 3, 0, 1] }[axLetter];\n var errors = new Float64Array(4 * count);\n var minShoe = Infinity;\n var maxHat = -Infinity;\n for (var i = 0, j = 0; i < count; i++, j += 4) {\n var dc = coords[i];\n if (isNumeric(dc)) {\n var dl = positions[i * 2 + pOffset];\n var vals = computeError(dc, i);\n var lv = vals[0];\n var hv = vals[1];\n if (isNumeric(lv) && isNumeric(hv)) {\n var shoe = dc - lv;\n var hat = dc + hv;\n errors[j + eOffset[0]] = dl - ax.c2l(shoe);\n errors[j + eOffset[1]] = ax.c2l(hat) - dl;\n errors[j + eOffset[2]] = 0;\n errors[j + eOffset[3]] = 0;\n minShoe = Math.min(minShoe, dc - lv);\n maxHat = Math.max(maxHat, dc + hv);\n }\n }\n }\n out[axLetter] = {\n positions,\n errors,\n _bnds: [minShoe, maxHat]\n };\n }\n }\n convertOneAxis(x, xa);\n convertOneAxis(y, ya);\n return out;\n }\n function convertTextPosition(gd, trace, textOpts, markerOpts) {\n var count = trace._length;\n var out = {};\n var i;\n if (subTypes.hasMarkers(trace)) {\n var fontOpts = textOpts.font;\n var align = textOpts.align;\n var baseline = textOpts.baseline;\n out.offset = new Array(count);\n for (i = 0; i < count; i++) {\n var ms = markerOpts.sizes ? markerOpts.sizes[i] : markerOpts.size;\n var fs = isArrayOrTypedArray(fontOpts) ? fontOpts[i].size : fontOpts.size;\n var a = isArrayOrTypedArray(align) ? align.length > 1 ? align[i] : align[0] : align;\n var b = isArrayOrTypedArray(baseline) ? baseline.length > 1 ? baseline[i] : baseline[0] : baseline;\n var hSign = TEXTOFFSETSIGN[a];\n var vSign = TEXTOFFSETSIGN[b];\n var xPad = ms ? ms / 0.8 + 1 : 0;\n var yPad = -vSign * xPad - vSign * 0.5;\n out.offset[i] = [hSign * xPad / fs, yPad / fs];\n }\n }\n return out;\n }\n module.exports = {\n style: convertStyle,\n markerStyle: convertMarkerStyle,\n markerSelection: convertMarkerSelection,\n linePositions: convertLinePositions,\n errorBarPositions: convertErrorBarPositions,\n textPosition: convertTextPosition\n };\n }\n });\n\n // src/traces/scattergl/scene_update.js\n var require_scene_update = __commonJS({\n \"src/traces/scattergl/scene_update.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function sceneUpdate(gd, subplot) {\n var scene = subplot._scene;\n var resetOpts = {\n // number of traces in subplot, since scene:subplot -> 1:1\n count: 0,\n // whether scene requires init hook in plot call (dirty plot call)\n dirty: true,\n // last used options\n lineOptions: [],\n fillOptions: [],\n markerOptions: [],\n markerSelectedOptions: [],\n markerUnselectedOptions: [],\n errorXOptions: [],\n errorYOptions: [],\n textOptions: [],\n textSelectedOptions: [],\n textUnselectedOptions: [],\n // selection batches\n selectBatch: [],\n unselectBatch: []\n };\n var initOpts = {\n fill2d: false,\n scatter2d: false,\n error2d: false,\n line2d: false,\n glText: false,\n select2d: false\n };\n if (!subplot._scene) {\n scene = subplot._scene = {};\n scene.init = function init() {\n Lib.extendFlat(scene, initOpts, resetOpts);\n };\n scene.init();\n scene.update = function update(opt) {\n var opts = Lib.repeat(opt, scene.count);\n if (scene.fill2d) scene.fill2d.update(opts);\n if (scene.scatter2d) scene.scatter2d.update(opts);\n if (scene.line2d) scene.line2d.update(opts);\n if (scene.error2d) scene.error2d.update(opts.concat(opts));\n if (scene.select2d) scene.select2d.update(opts);\n if (scene.glText) {\n for (var i = 0; i < scene.count; i++) {\n scene.glText[i].update(opt);\n }\n }\n };\n scene.draw = function draw() {\n var count = scene.count;\n var fill2d = scene.fill2d;\n var error2d = scene.error2d;\n var line2d = scene.line2d;\n var scatter2d = scene.scatter2d;\n var glText = scene.glText;\n var select2d = scene.select2d;\n var selectBatch = scene.selectBatch;\n var unselectBatch = scene.unselectBatch;\n for (var i = 0; i < count; i++) {\n if (fill2d && scene.fillOrder[i]) {\n fill2d.draw(scene.fillOrder[i]);\n }\n if (line2d && scene.lineOptions[i]) {\n line2d.draw(i);\n }\n if (error2d) {\n if (scene.errorXOptions[i]) error2d.draw(i);\n if (scene.errorYOptions[i]) error2d.draw(i + count);\n }\n if (scatter2d && scene.markerOptions[i]) {\n if (unselectBatch[i].length) {\n var arg = Lib.repeat([], scene.count);\n arg[i] = unselectBatch[i];\n scatter2d.draw(arg);\n } else if (!selectBatch[i].length) {\n scatter2d.draw(i);\n }\n }\n if (glText[i] && scene.textOptions[i]) {\n glText[i].render();\n }\n }\n if (select2d) {\n select2d.draw(selectBatch);\n }\n scene.dirty = false;\n };\n scene.destroy = function destroy() {\n if (scene.fill2d && scene.fill2d.destroy) scene.fill2d.destroy();\n if (scene.scatter2d && scene.scatter2d.destroy) scene.scatter2d.destroy();\n if (scene.error2d && scene.error2d.destroy) scene.error2d.destroy();\n if (scene.line2d && scene.line2d.destroy) scene.line2d.destroy();\n if (scene.select2d && scene.select2d.destroy) scene.select2d.destroy();\n if (scene.glText) {\n scene.glText.forEach(function(text) {\n if (text.destroy) text.destroy();\n });\n }\n scene.lineOptions = null;\n scene.fillOptions = null;\n scene.markerOptions = null;\n scene.markerSelectedOptions = null;\n scene.markerUnselectedOptions = null;\n scene.errorXOptions = null;\n scene.errorYOptions = null;\n scene.textOptions = null;\n scene.textSelectedOptions = null;\n scene.textUnselectedOptions = null;\n scene.selectBatch = null;\n scene.unselectBatch = null;\n subplot._scene = null;\n };\n }\n if (!scene.dirty) {\n Lib.extendFlat(scene, resetOpts);\n }\n return scene;\n };\n }\n });\n\n // src/traces/scattergl/calc.js\n var require_calc29 = __commonJS({\n \"src/traces/scattergl/calc.js\"(exports, module) {\n \"use strict\";\n var cluster = require_point_cluster();\n var Lib = require_lib();\n var AxisIDs = require_axis_ids();\n var findExtremes = require_autorange().findExtremes;\n var alignPeriod = require_align_period();\n var scatterCalc = require_calc3();\n var calcMarkerSize = scatterCalc.calcMarkerSize;\n var calcAxisExpansion = scatterCalc.calcAxisExpansion;\n var setFirstScatter = scatterCalc.setFirstScatter;\n var calcColorscale = require_colorscale_calc();\n var convert = require_convert10();\n var sceneUpdate = require_scene_update();\n var BADNUM = require_numerical().BADNUM;\n var TOO_MANY_POINTS = require_constants23().TOO_MANY_POINTS;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = trace._xA = AxisIDs.getFromId(gd, trace.xaxis, \"x\");\n var ya = trace._yA = AxisIDs.getFromId(gd, trace.yaxis, \"y\");\n var subplot = fullLayout._plots[trace.xaxis + trace.yaxis];\n var len = trace._length;\n var hasTooManyPoints = len >= TOO_MANY_POINTS;\n var len2 = len * 2;\n var stash = {};\n var i;\n var origX = xa.makeCalcdata(trace, \"x\");\n var origY = ya.makeCalcdata(trace, \"y\");\n var xObj = alignPeriod(trace, xa, \"x\", origX);\n var yObj = alignPeriod(trace, ya, \"y\", origY);\n var x = xObj.vals;\n var y = yObj.vals;\n trace._x = x;\n trace._y = y;\n if (trace.xperiodalignment) {\n trace._origX = origX;\n trace._xStarts = xObj.starts;\n trace._xEnds = xObj.ends;\n }\n if (trace.yperiodalignment) {\n trace._origY = origY;\n trace._yStarts = yObj.starts;\n trace._yEnds = yObj.ends;\n }\n var positions = new Array(len2);\n var _ids = new Array(len);\n for (i = 0; i < len; i++) {\n positions[i * 2] = x[i] === BADNUM ? NaN : x[i];\n positions[i * 2 + 1] = y[i] === BADNUM ? NaN : y[i];\n _ids[i] = i;\n }\n if (xa.type === \"log\") {\n for (i = 0; i < len2; i += 2) {\n positions[i] = xa.c2l(positions[i]);\n }\n }\n if (ya.type === \"log\") {\n for (i = 1; i < len2; i += 2) {\n positions[i] = ya.c2l(positions[i]);\n }\n }\n if (hasTooManyPoints && (xa.type !== \"log\" && ya.type !== \"log\")) {\n stash.tree = cluster(positions);\n } else {\n stash.ids = _ids;\n }\n calcColorscale(gd, trace);\n var opts = sceneOptions(gd, subplot, trace, positions, x, y);\n var scene = sceneUpdate(gd, subplot);\n setFirstScatter(fullLayout, trace);\n var ppad;\n if (!hasTooManyPoints) {\n ppad = calcMarkerSize(trace, len);\n } else if (opts.marker) {\n ppad = opts.marker.sizeAvg || Math.max(opts.marker.size, 3);\n }\n calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n if (opts.errorX) expandForErrorBars(trace, xa, opts.errorX);\n if (opts.errorY) expandForErrorBars(trace, ya, opts.errorY);\n if (opts.fill && !scene.fill2d) scene.fill2d = true;\n if (opts.marker && !scene.scatter2d) scene.scatter2d = true;\n if (opts.line && !scene.line2d) scene.line2d = true;\n if ((opts.errorX || opts.errorY) && !scene.error2d) scene.error2d = true;\n if (opts.text && !scene.glText) scene.glText = true;\n if (opts.marker) opts.marker.snap = len;\n scene.lineOptions.push(opts.line);\n scene.errorXOptions.push(opts.errorX);\n scene.errorYOptions.push(opts.errorY);\n scene.fillOptions.push(opts.fill);\n scene.markerOptions.push(opts.marker);\n scene.markerSelectedOptions.push(opts.markerSel);\n scene.markerUnselectedOptions.push(opts.markerUnsel);\n scene.textOptions.push(opts.text);\n scene.textSelectedOptions.push(opts.textSel);\n scene.textUnselectedOptions.push(opts.textUnsel);\n scene.selectBatch.push([]);\n scene.unselectBatch.push([]);\n stash._scene = scene;\n stash.index = scene.count;\n stash.x = x;\n stash.y = y;\n stash.positions = positions;\n scene.count++;\n return [{ x: false, y: false, t: stash, trace }];\n };\n function expandForErrorBars(trace, ax, opts) {\n var extremes = trace._extremes[ax._id];\n var errExt = findExtremes(ax, opts._bnds, { padded: true });\n extremes.min = extremes.min.concat(errExt.min);\n extremes.max = extremes.max.concat(errExt.max);\n }\n function sceneOptions(gd, subplot, trace, positions, x, y) {\n var opts = convert.style(gd, trace);\n if (opts.marker) {\n opts.marker.positions = positions;\n }\n if (opts.line && positions.length > 1) {\n Lib.extendFlat(\n opts.line,\n convert.linePositions(gd, trace, positions)\n );\n }\n if (opts.errorX || opts.errorY) {\n var errors = convert.errorBarPositions(gd, trace, positions, x, y);\n if (opts.errorX) {\n Lib.extendFlat(opts.errorX, errors.x);\n }\n if (opts.errorY) {\n Lib.extendFlat(opts.errorY, errors.y);\n }\n }\n if (opts.text) {\n Lib.extendFlat(\n opts.text,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.marker)\n );\n Lib.extendFlat(\n opts.textSel,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.markerSel)\n );\n Lib.extendFlat(\n opts.textUnsel,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.markerUnsel)\n );\n }\n return opts;\n }\n }\n });\n\n // src/traces/scattergl/edit_style.js\n var require_edit_style = __commonJS({\n \"src/traces/scattergl/edit_style.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n function styleTextSelection(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var stash = cd0.t;\n var scene = stash._scene;\n var index = stash.index;\n var els = scene.selectBatch[index];\n var unels = scene.unselectBatch[index];\n var baseOpts = scene.textOptions[index];\n var selOpts = scene.textSelectedOptions[index] || {};\n var unselOpts = scene.textUnselectedOptions[index] || {};\n var opts = Lib.extendFlat({}, baseOpts);\n var i, j;\n if (els.length || unels.length) {\n var stc = selOpts.color;\n var utc = unselOpts.color;\n var base = baseOpts.color;\n var hasArrayBase = Lib.isArrayOrTypedArray(base);\n opts.color = new Array(trace._length);\n for (i = 0; i < els.length; i++) {\n j = els[i];\n opts.color[j] = stc || (hasArrayBase ? base[j] : base);\n }\n for (i = 0; i < unels.length; i++) {\n j = unels[i];\n var basej = hasArrayBase ? base[j] : base;\n opts.color[j] = utc ? utc : stc ? basej : Color2.addOpacity(basej, DESELECTDIM);\n }\n }\n scene.glText[index].update(opts);\n }\n module.exports = {\n styleTextSelection\n };\n }\n });\n\n // src/traces/scattergl/select.js\n var require_select7 = __commonJS({\n \"src/traces/scattergl/select.js\"(exports, module) {\n \"use strict\";\n var subTypes = require_subtypes();\n var styleTextSelection = require_edit_style().styleTextSelection;\n module.exports = function select(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var stash = cd[0].t;\n var len = trace._length;\n var x = stash.x;\n var y = stash.y;\n var scene = stash._scene;\n var index = stash.index;\n if (!scene) return selection;\n var hasText = subTypes.hasText(trace);\n var hasMarkers = subTypes.hasMarkers(trace);\n var hasOnlyLines = !hasMarkers && !hasText;\n if (trace.visible !== true || hasOnlyLines) return selection;\n var els = [];\n var unels = [];\n if (selectionTester !== false && !selectionTester.degenerate) {\n for (var i = 0; i < len; i++) {\n if (selectionTester.contains([stash.xpx[i], stash.ypx[i]], false, i, searchInfo)) {\n els.push(i);\n selection.push({\n pointNumber: i,\n x: xa.c2d(x[i]),\n y: ya.c2d(y[i])\n });\n } else {\n unels.push(i);\n }\n }\n }\n if (hasMarkers) {\n var scatter2d = scene.scatter2d;\n if (!els.length && !unels.length) {\n var baseOpts = new Array(scene.count);\n baseOpts[index] = scene.markerOptions[index];\n scatter2d.update.apply(scatter2d, baseOpts);\n } else if (!scene.selectBatch[index].length && !scene.unselectBatch[index].length) {\n var unselOpts = new Array(scene.count);\n unselOpts[index] = scene.markerUnselectedOptions[index];\n scatter2d.update.apply(scatter2d, unselOpts);\n }\n }\n scene.selectBatch[index] = els;\n scene.unselectBatch[index] = unels;\n if (hasText) {\n styleTextSelection(cd);\n }\n return selection;\n };\n }\n });\n\n // src/traces/scattergl/base_index.js\n var require_base_index = __commonJS({\n \"src/traces/scattergl/base_index.js\"(exports, module) {\n \"use strict\";\n var hover = require_hover16();\n module.exports = {\n moduleType: \"trace\",\n name: \"scattergl\",\n basePlotModule: require_cartesian(),\n categories: [\"gl\", \"regl\", \"cartesian\", \"symbols\", \"errorBarsOK\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes50(),\n supplyDefaults: require_defaults46(),\n crossTraceDefaults: require_cross_trace_defaults2(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels4(),\n calc: require_calc29(),\n hoverPoints: hover.hoverPoints,\n selectPoints: require_select7(),\n meta: {}\n };\n }\n });\n\n // node_modules/color-id/index.js\n var require_color_id = __commonJS({\n \"node_modules/color-id/index.js\"(exports, module) {\n \"use strict\";\n var clamp = require_clamp();\n module.exports = toNumber;\n module.exports.to = toNumber;\n module.exports.from = fromNumber;\n function toNumber(rgba3, normalized) {\n if (normalized == null) normalized = true;\n var r = rgba3[0], g = rgba3[1], b = rgba3[2], a = rgba3[3];\n if (a == null) a = normalized ? 1 : 255;\n if (normalized) {\n r *= 255;\n g *= 255;\n b *= 255;\n a *= 255;\n }\n r = clamp(r, 0, 255) & 255;\n g = clamp(g, 0, 255) & 255;\n b = clamp(b, 0, 255) & 255;\n a = clamp(a, 0, 255) & 255;\n var n = r * 16777216 + (g << 16) + (b << 8) + a;\n return n;\n }\n function fromNumber(n, normalized) {\n n = +n;\n var r = n >>> 24;\n var g = (n & 16711680) >>> 16;\n var b = (n & 65280) >>> 8;\n var a = n & 255;\n if (normalized === false) return [r, g, b, a];\n return [r / 255, g / 255, b / 255, a / 255];\n }\n }\n });\n\n // node_modules/object-assign/index.js\n var require_object_assign = __commonJS({\n \"node_modules/object-assign/index.js\"(exports, module) {\n \"use strict\";\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n var propIsEnumerable = Object.prototype.propertyIsEnumerable;\n function toObject(val) {\n if (val === null || val === void 0) {\n throw new TypeError(\"Object.assign cannot be called with null or undefined\");\n }\n return Object(val);\n }\n function shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n var test1 = new String(\"abc\");\n test1[5] = \"de\";\n if (Object.getOwnPropertyNames(test1)[0] === \"5\") {\n return false;\n }\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2[\"_\" + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function(n) {\n return test2[n];\n });\n if (order2.join(\"\") !== \"0123456789\") {\n return false;\n }\n var test3 = {};\n \"abcdefghijklmnopqrst\".split(\"\").forEach(function(letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join(\"\") !== \"abcdefghijklmnopqrst\") {\n return false;\n }\n return true;\n } catch (err) {\n return false;\n }\n }\n module.exports = shouldUseNative() ? Object.assign : function(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty2.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n };\n }\n });\n\n // node_modules/glslify/browser.js\n var require_browser3 = __commonJS({\n \"node_modules/glslify/browser.js\"(exports, module) {\n module.exports = function(strings) {\n if (typeof strings === \"string\") strings = [strings];\n var exprs = [].slice.call(arguments, 1);\n var parts = [];\n for (var i = 0; i < strings.length - 1; i++) {\n parts.push(strings[i], exprs[i] || \"\");\n }\n parts.push(strings[i]);\n return parts.join(\"\");\n };\n }\n });\n\n // node_modules/update-diff/index.js\n var require_update_diff = __commonJS({\n \"node_modules/update-diff/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function updateDiff(obj, diff, mappers) {\n if (!Array.isArray(mappers)) mappers = [].slice.call(arguments, 2);\n for (var i = 0, l = mappers.length; i < l; i++) {\n var dict = mappers[i];\n for (var prop in dict) {\n if (diff[prop] !== void 0 && !Array.isArray(diff[prop]) && obj[prop] === diff[prop]) continue;\n if (prop in diff) {\n var result;\n if (dict[prop] === true) result = diff[prop];\n else if (dict[prop] === false) continue;\n else if (typeof dict[prop] === \"function\") {\n result = dict[prop](diff[prop], obj, diff);\n if (result === void 0) continue;\n }\n obj[prop] = result;\n }\n }\n }\n return obj;\n };\n }\n });\n\n // node_modules/is-iexplorer/index.js\n var require_is_iexplorer = __commonJS({\n \"node_modules/is-iexplorer/index.js\"(exports, module) {\n \"use strict\";\n module.exports = typeof navigator !== \"undefined\" && (/MSIE/.test(navigator.userAgent) || /Trident\\//.test(navigator.appVersion));\n }\n });\n\n // node_modules/to-float32/index.js\n var require_to_float32 = __commonJS({\n \"node_modules/to-float32/index.js\"(exports, module) {\n \"use strict\";\n module.exports = float32;\n module.exports.float32 = module.exports.float = float32;\n module.exports.fract32 = module.exports.fract = fract32;\n var narr = new Float32Array(1);\n function fract32(arr, fract) {\n if (arr.length) {\n if (arr instanceof Float32Array) return new Float32Array(arr.length);\n if (!(fract instanceof Float32Array)) fract = float32(arr);\n for (var i = 0, l = fract.length; i < l; i++) {\n fract[i] = arr[i] - fract[i];\n }\n return fract;\n }\n return float32(arr - float32(arr));\n }\n function float32(arr) {\n if (arr.length) {\n if (arr instanceof Float32Array) return arr;\n return new Float32Array(arr);\n }\n narr[0] = arr;\n return narr[0];\n }\n }\n });\n\n // node_modules/regl-scatter2d/bundle.js\n var require_bundle = __commonJS({\n \"node_modules/regl-scatter2d/bundle.js\"(exports, module) {\n \"use strict\";\n function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s, _e, _x, _r, _arr = [], _n = true, _d = false;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = false;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = true) ;\n } catch (err) {\n _d = true, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var rgba3 = require_color_normalize();\n var getBounds = require_array_bounds();\n var colorId = require_color_id();\n var cluster = require_point_cluster();\n var extend2 = require_object_assign();\n var glslify = require_browser3();\n var pick = require_pick_by_alias();\n var updateDiff = require_update_diff();\n var flatten = require_flatten_vertex_data();\n var ie = require_is_iexplorer();\n var f32 = require_to_float32();\n var parseRect = require_parse_rect();\n var scatter = Scatter;\n function Scatter(regl, options) {\n var _this = this;\n if (!(this instanceof Scatter)) return new Scatter(regl, options);\n if (typeof regl === \"function\") {\n if (!options) options = {};\n options.regl = regl;\n } else {\n options = regl;\n regl = null;\n }\n if (options && options.length) options.positions = options;\n regl = options.regl;\n var gl2 = regl._gl, paletteTexture, palette = [], paletteIds = {}, groups = [], markerTextures = [null], markerCache = [null];\n var maxColors = 255, maxSize = 100;\n this.tooManyColors = ie;\n paletteTexture = regl.texture({\n data: new Uint8Array(maxColors * 4),\n width: maxColors,\n height: 1,\n type: \"uint8\",\n format: \"rgba\",\n wrapS: \"clamp\",\n wrapT: \"clamp\",\n mag: \"nearest\",\n min: \"nearest\"\n });\n extend2(this, {\n regl,\n gl: gl2,\n groups,\n markerCache,\n markerTextures,\n palette,\n paletteIds,\n paletteTexture,\n maxColors,\n maxSize,\n canvas: gl2.canvas\n });\n this.update(options);\n var shaderOptions = {\n uniforms: {\n constPointSize: !!options.constPointSize,\n opacity: regl.prop(\"opacity\"),\n paletteSize: function paletteSize(ctx, prop) {\n return [_this.tooManyColors ? 0 : maxColors, paletteTexture.height];\n },\n pixelRatio: regl.context(\"pixelRatio\"),\n scale: regl.prop(\"scale\"),\n scaleFract: regl.prop(\"scaleFract\"),\n translate: regl.prop(\"translate\"),\n translateFract: regl.prop(\"translateFract\"),\n markerTexture: regl.prop(\"markerTexture\"),\n paletteTexture\n },\n attributes: {\n // FIXME: optimize these parts\n x: function x(ctx, prop) {\n return prop.xAttr || {\n buffer: prop.positionBuffer,\n stride: 8,\n offset: 0\n };\n },\n y: function y(ctx, prop) {\n return prop.yAttr || {\n buffer: prop.positionBuffer,\n stride: 8,\n offset: 4\n };\n },\n xFract: function xFract(ctx, prop) {\n return prop.xAttr ? {\n constant: [0, 0]\n } : {\n buffer: prop.positionFractBuffer,\n stride: 8,\n offset: 0\n };\n },\n yFract: function yFract(ctx, prop) {\n return prop.yAttr ? {\n constant: [0, 0]\n } : {\n buffer: prop.positionFractBuffer,\n stride: 8,\n offset: 4\n };\n },\n size: function size(ctx, prop) {\n return prop.size.length ? {\n buffer: prop.sizeBuffer,\n stride: 2,\n offset: 0\n } : {\n constant: [Math.round(prop.size * 255 / _this.maxSize)]\n };\n },\n borderSize: function borderSize(ctx, prop) {\n return prop.borderSize.length ? {\n buffer: prop.sizeBuffer,\n stride: 2,\n offset: 1\n } : {\n constant: [Math.round(prop.borderSize * 255 / _this.maxSize)]\n };\n },\n colorId: function colorId2(ctx, prop) {\n return prop.color.length ? {\n buffer: prop.colorBuffer,\n stride: _this.tooManyColors ? 8 : 4,\n offset: 0\n } : {\n constant: _this.tooManyColors ? palette.slice(prop.color * 4, prop.color * 4 + 4) : [prop.color]\n };\n },\n borderColorId: function borderColorId(ctx, prop) {\n return prop.borderColor.length ? {\n buffer: prop.colorBuffer,\n stride: _this.tooManyColors ? 8 : 4,\n offset: _this.tooManyColors ? 4 : 2\n } : {\n constant: _this.tooManyColors ? palette.slice(prop.borderColor * 4, prop.borderColor * 4 + 4) : [prop.borderColor]\n };\n },\n isActive: function isActive(ctx, prop) {\n return prop.activation === true ? {\n constant: [1]\n } : prop.activation ? prop.activation : {\n constant: [0]\n };\n }\n },\n blend: {\n enable: true,\n color: [0, 0, 0, 1],\n // photoshop blending\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\"\n }\n },\n scissor: {\n enable: true,\n box: regl.prop(\"viewport\")\n },\n viewport: regl.prop(\"viewport\"),\n stencil: {\n enable: false\n },\n depth: {\n enable: false\n },\n elements: regl.prop(\"elements\"),\n count: regl.prop(\"count\"),\n offset: regl.prop(\"offset\"),\n primitive: \"points\"\n };\n var markerOptions = extend2({}, shaderOptions);\n markerOptions.frag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform float opacity;\\nuniform sampler2D markerTexture;\\n\\nvarying vec4 fragColor, fragBorderColor;\\nvarying float fragWidth, fragBorderColorLevel, fragColorLevel;\\n\\nfloat smoothStep(float x, float y) {\\n return 1.0 / (1.0 + exp(50.0*(x - y)));\\n}\\n\\nvoid main() {\\n float dist = texture2D(markerTexture, gl_PointCoord).r, delta = fragWidth;\\n\\n // max-distance alpha\\n if (dist < 0.003) discard;\\n\\n // null-border case\\n if (fragBorderColorLevel == fragColorLevel || fragBorderColor.a == 0.) {\\n float colorAmt = smoothstep(.5 - delta, .5 + delta, dist);\\n gl_FragColor = vec4(fragColor.rgb, colorAmt * fragColor.a * opacity);\\n }\\n else {\\n float borderColorAmt = smoothstep(fragBorderColorLevel - delta, fragBorderColorLevel + delta, dist);\\n float colorAmt = smoothstep(fragColorLevel - delta, fragColorLevel + delta, dist);\\n\\n vec4 color = fragBorderColor;\\n color.a *= borderColorAmt;\\n color = mix(color, fragColor, colorAmt);\\n color.a *= opacity;\\n\\n gl_FragColor = color;\\n }\\n\\n}\\n\"]);\n markerOptions.vert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute float x, y, xFract, yFract;\\nattribute float size, borderSize;\\nattribute vec4 colorId, borderColorId;\\nattribute float isActive;\\n\\n// `invariant` effectively turns off optimizations for the position.\\n// We need this because -fast-math on M1 Macs is re-ordering\\n// floating point operations in a way that causes floating point\\n// precision limits to put points in the wrong locations.\\ninvariant gl_Position;\\n\\nuniform bool constPointSize;\\nuniform float pixelRatio;\\nuniform vec2 scale, scaleFract, translate, translateFract, paletteSize;\\nuniform sampler2D paletteTexture;\\n\\nconst float maxSize = 100.;\\nconst float borderLevel = .5;\\n\\nvarying vec4 fragColor, fragBorderColor;\\nvarying float fragPointSize, fragBorderRadius, fragWidth, fragBorderColorLevel, fragColorLevel;\\n\\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\\n\\nbool isDirect = (paletteSize.x < 1.);\\n\\nvec4 getColor(vec4 id) {\\n return isDirect ? id / 255. : texture2D(paletteTexture,\\n vec2(\\n (id.x + .5) / paletteSize.x,\\n (id.y + .5) / paletteSize.y\\n )\\n );\\n}\\n\\nvoid main() {\\n // ignore inactive points\\n if (isActive == 0.) return;\\n\\n vec2 position = vec2(x, y);\\n vec2 positionFract = vec2(xFract, yFract);\\n\\n vec4 color = getColor(colorId);\\n vec4 borderColor = getColor(borderColorId);\\n\\n float size = size * maxSize / 255.;\\n float borderSize = borderSize * maxSize / 255.;\\n\\n gl_PointSize = 2. * size * pointSizeScale;\\n fragPointSize = size * pixelRatio;\\n\\n vec2 pos = (position + translate) * scale\\n + (positionFract + translateFract) * scale\\n + (position + translate) * scaleFract\\n + (positionFract + translateFract) * scaleFract;\\n\\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\\n\\n fragColor = color;\\n fragBorderColor = borderColor;\\n fragWidth = 1. / gl_PointSize;\\n\\n fragBorderColorLevel = clamp(borderLevel - borderLevel * borderSize / size, 0., 1.);\\n fragColorLevel = clamp(borderLevel + (1. - borderLevel) * borderSize / size, 0., 1.);\\n}\\n\"]);\n this.drawMarker = regl(markerOptions);\n var circleOptions = extend2({}, shaderOptions);\n circleOptions.frag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor, fragBorderColor;\\nvarying float fragBorderRadius, fragWidth;\\n\\nuniform float opacity;\\n\\nfloat smoothStep(float edge0, float edge1, float x) {\\n\tfloat t;\\n\tt = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\\n\treturn t * t * (3.0 - 2.0 * t);\\n}\\n\\nvoid main() {\\n\tfloat radius, alpha = 1.0, delta = fragWidth;\\n\\n\tradius = length(2.0 * gl_PointCoord.xy - 1.0);\\n\\n\tif (radius > 1.0 + delta) {\\n\t\tdiscard;\\n\t}\\n\\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\\n\\n\tfloat borderRadius = fragBorderRadius;\\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\\n\tcolor.a *= alpha * opacity;\\n\tgl_FragColor = color;\\n}\\n\"]);\n circleOptions.vert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute float x, y, xFract, yFract;\\nattribute float size, borderSize;\\nattribute vec4 colorId, borderColorId;\\nattribute float isActive;\\n\\n// `invariant` effectively turns off optimizations for the position.\\n// We need this because -fast-math on M1 Macs is re-ordering\\n// floating point operations in a way that causes floating point\\n// precision limits to put points in the wrong locations.\\ninvariant gl_Position;\\n\\nuniform bool constPointSize;\\nuniform float pixelRatio;\\nuniform vec2 paletteSize, scale, scaleFract, translate, translateFract;\\nuniform sampler2D paletteTexture;\\n\\nconst float maxSize = 100.;\\n\\nvarying vec4 fragColor, fragBorderColor;\\nvarying float fragBorderRadius, fragWidth;\\n\\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\\n\\nbool isDirect = (paletteSize.x < 1.);\\n\\nvec4 getColor(vec4 id) {\\n return isDirect ? id / 255. : texture2D(paletteTexture,\\n vec2(\\n (id.x + .5) / paletteSize.x,\\n (id.y + .5) / paletteSize.y\\n )\\n );\\n}\\n\\nvoid main() {\\n // ignore inactive points\\n if (isActive == 0.) return;\\n\\n vec2 position = vec2(x, y);\\n vec2 positionFract = vec2(xFract, yFract);\\n\\n vec4 color = getColor(colorId);\\n vec4 borderColor = getColor(borderColorId);\\n\\n float size = size * maxSize / 255.;\\n float borderSize = borderSize * maxSize / 255.;\\n\\n gl_PointSize = (size + borderSize) * pointSizeScale;\\n\\n vec2 pos = (position + translate) * scale\\n + (positionFract + translateFract) * scale\\n + (position + translate) * scaleFract\\n + (positionFract + translateFract) * scaleFract;\\n\\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\\n\\n fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\\n fragColor = color;\\n fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\\n fragWidth = 1. / gl_PointSize;\\n}\\n\"]);\n if (ie) {\n circleOptions.frag = circleOptions.frag.replace(\"smoothstep\", \"smoothStep\");\n markerOptions.frag = markerOptions.frag.replace(\"smoothstep\", \"smoothStep\");\n }\n this.drawCircle = regl(circleOptions);\n }\n Scatter.defaults = {\n color: \"black\",\n borderColor: \"transparent\",\n borderSize: 0,\n size: 12,\n opacity: 1,\n marker: void 0,\n viewport: null,\n range: null,\n pixelSize: null,\n count: 0,\n offset: 0,\n bounds: null,\n positions: [],\n snap: 1e4\n };\n Scatter.prototype.render = function() {\n if (arguments.length) {\n this.update.apply(this, arguments);\n }\n this.draw();\n return this;\n };\n Scatter.prototype.draw = function() {\n var _this2 = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var groups = this.groups;\n if (args.length === 1 && Array.isArray(args[0]) && (args[0][0] === null || Array.isArray(args[0][0]))) {\n args = args[0];\n }\n this.regl._refresh();\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n this.drawItem(i, args[i]);\n }\n } else {\n groups.forEach(function(group, i2) {\n _this2.drawItem(i2);\n });\n }\n return this;\n };\n Scatter.prototype.drawItem = function(id, els) {\n var groups = this.groups;\n var group = groups[id];\n if (typeof els === \"number\") {\n id = els;\n group = groups[els];\n els = null;\n }\n if (!(group && group.count && group.opacity)) return;\n if (group.activation[0]) {\n this.drawCircle(this.getMarkerDrawOptions(0, group, els));\n }\n var batch = [];\n for (var i = 1; i < group.activation.length; i++) {\n if (!group.activation[i] || group.activation[i] !== true && !group.activation[i].data.length) continue;\n batch.push.apply(batch, _toConsumableArray(this.getMarkerDrawOptions(i, group, els)));\n }\n if (batch.length) {\n this.drawMarker(batch);\n }\n };\n Scatter.prototype.getMarkerDrawOptions = function(markerId, group, elements) {\n var range = group.range, tree = group.tree, viewport = group.viewport, activation = group.activation, selectionBuffer = group.selectionBuffer, count = group.count;\n var regl = this.regl;\n if (!tree) {\n if (elements) {\n return [extend2({}, group, {\n markerTexture: this.markerTextures[markerId],\n activation: activation[markerId],\n count: elements.length,\n elements,\n offset: 0\n })];\n }\n return [extend2({}, group, {\n markerTexture: this.markerTextures[markerId],\n activation: activation[markerId],\n offset: 0\n })];\n }\n var batch = [];\n var lod = tree.range(range, {\n lod: true,\n px: [(range[2] - range[0]) / viewport.width, (range[3] - range[1]) / viewport.height]\n });\n if (elements) {\n var markerActivation = activation[markerId];\n var mask = markerActivation.data;\n var data = new Uint8Array(count);\n for (var i = 0; i < elements.length; i++) {\n var id = elements[i];\n data[id] = mask ? mask[id] : 1;\n }\n selectionBuffer.subdata(data);\n }\n for (var l = lod.length; l--; ) {\n var _lod$l = _slicedToArray(lod[l], 2), from = _lod$l[0], to = _lod$l[1];\n batch.push(extend2({}, group, {\n markerTexture: this.markerTextures[markerId],\n activation: elements ? selectionBuffer : activation[markerId],\n offset: from,\n count: to - from\n }));\n }\n return batch;\n };\n Scatter.prototype.update = function() {\n var _this3 = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (!args.length) return;\n if (args.length === 1 && Array.isArray(args[0])) args = args[0];\n var groups = this.groups, gl2 = this.gl, regl = this.regl, maxSize = this.maxSize, maxColors = this.maxColors, palette = this.palette;\n this.groups = groups = args.map(function(options, i) {\n var group = groups[i];\n if (options === void 0) return group;\n if (options === null) options = {\n positions: null\n };\n else if (typeof options === \"function\") options = {\n ondraw: options\n };\n else if (typeof options[0] === \"number\") options = {\n positions: options\n };\n options = pick(options, {\n positions: \"positions data points\",\n snap: \"snap cluster lod tree\",\n size: \"sizes size radius\",\n borderSize: \"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline\",\n color: \"colors color fill fill-color fillColor\",\n borderColor: \"borderColors borderColor stroke stroke-color strokeColor\",\n marker: \"markers marker shape\",\n range: \"range dataBox databox\",\n viewport: \"viewport viewPort viewBox viewbox\",\n opacity: \"opacity alpha transparency\",\n bounds: \"bound bounds boundaries limits\",\n tooManyColors: \"tooManyColors palette paletteMode optimizePalette enablePalette\"\n });\n if (options.positions === null) options.positions = [];\n if (options.tooManyColors != null) _this3.tooManyColors = options.tooManyColors;\n if (!group) {\n groups[i] = group = {\n id: i,\n scale: null,\n translate: null,\n scaleFract: null,\n translateFract: null,\n // buffers for active markers\n activation: [],\n // buffer for filtered markers\n selectionBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"stream\",\n type: \"uint8\"\n }),\n // buffers with data: it is faster to switch them per-pass\n // than provide one congregate buffer\n sizeBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"dynamic\",\n type: \"uint8\"\n }),\n colorBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"dynamic\",\n type: \"uint8\"\n }),\n positionBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"dynamic\",\n type: \"float\"\n }),\n positionFractBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"dynamic\",\n type: \"float\"\n })\n };\n options = extend2({}, Scatter.defaults, options);\n }\n if (options.positions && !(\"marker\" in options)) {\n options.marker = group.marker;\n delete group.marker;\n }\n if (options.marker && !(\"positions\" in options)) {\n options.positions = group.positions;\n delete group.positions;\n }\n var hasSize = 0, hasColor = 0;\n updateDiff(group, options, [{\n snap: true,\n size: function size2(s, group2) {\n if (s == null) s = Scatter.defaults.size;\n hasSize += s && s.length ? 1 : 0;\n return s;\n },\n borderSize: function borderSize2(s, group2) {\n if (s == null) s = Scatter.defaults.borderSize;\n hasSize += s && s.length ? 1 : 0;\n return s;\n },\n opacity: parseFloat,\n // add colors to palette, save references\n color: function color3(c, group2) {\n if (c == null) c = Scatter.defaults.color;\n c = _this3.updateColor(c);\n hasColor++;\n return c;\n },\n borderColor: function borderColor2(c, group2) {\n if (c == null) c = Scatter.defaults.borderColor;\n c = _this3.updateColor(c);\n hasColor++;\n return c;\n },\n bounds: function bounds(_bounds, group2, options2) {\n if (!(\"range\" in options2)) options2.range = null;\n return _bounds;\n },\n positions: function positions(_positions, group2, options2) {\n var snap = group2.snap;\n var positionBuffer = group2.positionBuffer, positionFractBuffer = group2.positionFractBuffer, selectionBuffer = group2.selectionBuffer;\n if (_positions.x || _positions.y) {\n if (_positions.x.length) {\n group2.xAttr = {\n buffer: regl.buffer(_positions.x),\n offset: 0,\n stride: 4,\n count: _positions.x.length\n };\n } else {\n group2.xAttr = {\n buffer: _positions.x.buffer,\n offset: _positions.x.offset * 4 || 0,\n stride: (_positions.x.stride || 1) * 4,\n count: _positions.x.count\n };\n }\n if (_positions.y.length) {\n group2.yAttr = {\n buffer: regl.buffer(_positions.y),\n offset: 0,\n stride: 4,\n count: _positions.y.length\n };\n } else {\n group2.yAttr = {\n buffer: _positions.y.buffer,\n offset: _positions.y.offset * 4 || 0,\n stride: (_positions.y.stride || 1) * 4,\n count: _positions.y.count\n };\n }\n group2.count = Math.max(group2.xAttr.count, group2.yAttr.count);\n return _positions;\n }\n _positions = flatten(_positions, \"float64\");\n var count2 = group2.count = Math.floor(_positions.length / 2);\n var bounds = group2.bounds = count2 ? getBounds(_positions, 2) : null;\n if (!options2.range && !group2.range) {\n delete group2.range;\n options2.range = bounds;\n }\n if (!options2.marker && !group2.marker) {\n delete group2.marker;\n options2.marker = null;\n }\n if (snap && (snap === true || count2 > snap)) {\n group2.tree = cluster(_positions, {\n bounds\n });\n } else if (snap && snap.length) {\n group2.tree = snap;\n }\n if (group2.tree) {\n var opts = {\n primitive: \"points\",\n usage: \"static\",\n data: group2.tree,\n type: \"uint32\"\n };\n if (group2.elements) group2.elements(opts);\n else group2.elements = regl.elements(opts);\n }\n var float_data = f32.float32(_positions);\n positionBuffer({\n data: float_data,\n usage: \"dynamic\"\n });\n var frac_data = f32.fract32(_positions, float_data);\n positionFractBuffer({\n data: frac_data,\n usage: \"dynamic\"\n });\n selectionBuffer({\n data: new Uint8Array(count2),\n type: \"uint8\",\n usage: \"stream\"\n });\n return _positions;\n }\n }, {\n // create marker ids corresponding to known marker textures\n marker: function marker(markers, group2, options2) {\n var activation = group2.activation;\n activation.forEach(function(buffer) {\n return buffer && buffer.destroy && buffer.destroy();\n });\n activation.length = 0;\n if (!markers || typeof markers[0] === \"number\") {\n var id = _this3.addMarker(markers);\n activation[id] = true;\n } else {\n var markerMasks = [];\n for (var _i = 0, l = Math.min(markers.length, group2.count); _i < l; _i++) {\n var _id = _this3.addMarker(markers[_i]);\n if (!markerMasks[_id]) markerMasks[_id] = new Uint8Array(group2.count);\n markerMasks[_id][_i] = 1;\n }\n for (var _id2 = 0; _id2 < markerMasks.length; _id2++) {\n if (!markerMasks[_id2]) continue;\n var opts = {\n data: markerMasks[_id2],\n type: \"uint8\",\n usage: \"static\"\n };\n if (!activation[_id2]) {\n activation[_id2] = regl.buffer(opts);\n } else {\n activation[_id2](opts);\n }\n activation[_id2].data = markerMasks[_id2];\n }\n }\n return markers;\n },\n range: function range(_range, group2, options2) {\n var bounds = group2.bounds;\n if (!bounds) return;\n if (!_range) _range = bounds;\n group2.scale = [1 / (_range[2] - _range[0]), 1 / (_range[3] - _range[1])];\n group2.translate = [-_range[0], -_range[1]];\n group2.scaleFract = f32.fract(group2.scale);\n group2.translateFract = f32.fract(group2.translate);\n return _range;\n },\n viewport: function viewport(vp) {\n var rect = parseRect(vp || [gl2.drawingBufferWidth, gl2.drawingBufferHeight]);\n return rect;\n }\n }]);\n if (hasSize) {\n var _group = group, count = _group.count, size = _group.size, borderSize = _group.borderSize, sizeBuffer = _group.sizeBuffer;\n var sizes = new Uint8Array(count * 2);\n if (size.length || borderSize.length) {\n for (var _i2 = 0; _i2 < count; _i2++) {\n sizes[_i2 * 2] = Math.round((size[_i2] == null ? size : size[_i2]) * 255 / maxSize);\n sizes[_i2 * 2 + 1] = Math.round((borderSize[_i2] == null ? borderSize : borderSize[_i2]) * 255 / maxSize);\n }\n }\n sizeBuffer({\n data: sizes,\n usage: \"dynamic\"\n });\n }\n if (hasColor) {\n var _group2 = group, _count = _group2.count, color2 = _group2.color, borderColor = _group2.borderColor, colorBuffer = _group2.colorBuffer;\n var colors;\n if (_this3.tooManyColors) {\n if (color2.length || borderColor.length) {\n colors = new Uint8Array(_count * 8);\n for (var _i3 = 0; _i3 < _count; _i3++) {\n var _colorId = color2[_i3];\n colors[_i3 * 8] = palette[_colorId * 4];\n colors[_i3 * 8 + 1] = palette[_colorId * 4 + 1];\n colors[_i3 * 8 + 2] = palette[_colorId * 4 + 2];\n colors[_i3 * 8 + 3] = palette[_colorId * 4 + 3];\n var borderColorId = borderColor[_i3];\n colors[_i3 * 8 + 4] = palette[borderColorId * 4];\n colors[_i3 * 8 + 5] = palette[borderColorId * 4 + 1];\n colors[_i3 * 8 + 6] = palette[borderColorId * 4 + 2];\n colors[_i3 * 8 + 7] = palette[borderColorId * 4 + 3];\n }\n }\n } else {\n if (color2.length || borderColor.length) {\n colors = new Uint8Array(_count * 4 + 2);\n for (var _i4 = 0; _i4 < _count; _i4++) {\n if (color2[_i4] != null) {\n colors[_i4 * 4] = color2[_i4] % maxColors;\n colors[_i4 * 4 + 1] = Math.floor(color2[_i4] / maxColors);\n }\n if (borderColor[_i4] != null) {\n colors[_i4 * 4 + 2] = borderColor[_i4] % maxColors;\n colors[_i4 * 4 + 3] = Math.floor(borderColor[_i4] / maxColors);\n }\n }\n }\n }\n colorBuffer({\n data: colors || new Uint8Array(0),\n type: \"uint8\",\n usage: \"dynamic\"\n });\n }\n return group;\n });\n };\n Scatter.prototype.addMarker = function(sdf) {\n var markerTextures = this.markerTextures, regl = this.regl, markerCache = this.markerCache;\n var pos = sdf == null ? 0 : markerCache.indexOf(sdf);\n if (pos >= 0) return pos;\n var distArr;\n if (sdf instanceof Uint8Array || sdf instanceof Uint8ClampedArray) {\n distArr = sdf;\n } else {\n distArr = new Uint8Array(sdf.length);\n for (var i = 0, l = sdf.length; i < l; i++) {\n distArr[i] = sdf[i] * 255;\n }\n }\n var radius = Math.floor(Math.sqrt(distArr.length));\n pos = markerTextures.length;\n markerCache.push(sdf);\n markerTextures.push(regl.texture({\n channels: 1,\n data: distArr,\n radius,\n mag: \"linear\",\n min: \"linear\"\n }));\n return pos;\n };\n Scatter.prototype.updateColor = function(colors) {\n var paletteIds = this.paletteIds, palette = this.palette, maxColors = this.maxColors;\n if (!Array.isArray(colors)) {\n colors = [colors];\n }\n var idx = [];\n if (typeof colors[0] === \"number\") {\n var grouped = [];\n if (Array.isArray(colors)) {\n for (var i = 0; i < colors.length; i += 4) {\n grouped.push(colors.slice(i, i + 4));\n }\n } else {\n for (var _i5 = 0; _i5 < colors.length; _i5 += 4) {\n grouped.push(colors.subarray(_i5, _i5 + 4));\n }\n }\n colors = grouped;\n }\n for (var _i6 = 0; _i6 < colors.length; _i6++) {\n var color2 = colors[_i6];\n color2 = rgba3(color2, \"uint8\");\n var id = colorId(color2, false);\n if (paletteIds[id] == null) {\n var pos = palette.length;\n paletteIds[id] = Math.floor(pos / 4);\n palette[pos] = color2[0];\n palette[pos + 1] = color2[1];\n palette[pos + 2] = color2[2];\n palette[pos + 3] = color2[3];\n }\n idx[_i6] = paletteIds[id];\n }\n if (!this.tooManyColors && palette.length > maxColors * 4) this.tooManyColors = true;\n this.updatePalette(palette);\n return idx.length === 1 ? idx[0] : idx;\n };\n Scatter.prototype.updatePalette = function(palette) {\n if (this.tooManyColors) return;\n var maxColors = this.maxColors, paletteTexture = this.paletteTexture;\n var requiredHeight = Math.ceil(palette.length * 0.25 / maxColors);\n if (requiredHeight > 1) {\n palette = palette.slice();\n for (var i = palette.length * 0.25 % maxColors; i < requiredHeight * maxColors; i++) {\n palette.push(0, 0, 0, 0);\n }\n }\n if (paletteTexture.height < requiredHeight) {\n paletteTexture.resize(maxColors, requiredHeight);\n }\n paletteTexture.subimage({\n width: Math.min(palette.length * 0.25, maxColors),\n height: requiredHeight,\n data: palette\n }, 0, 0);\n };\n Scatter.prototype.destroy = function() {\n this.groups.forEach(function(group) {\n group.sizeBuffer.destroy();\n group.positionBuffer.destroy();\n group.positionFractBuffer.destroy();\n group.colorBuffer.destroy();\n group.activation.forEach(function(b) {\n return b && b.destroy && b.destroy();\n });\n group.selectionBuffer.destroy();\n if (group.elements) group.elements.destroy();\n });\n this.groups.length = 0;\n this.paletteTexture.destroy();\n this.markerTextures.forEach(function(txt) {\n return txt && txt.destroy && txt.destroy();\n });\n return this;\n };\n var extend$1 = require_object_assign();\n var reglScatter2d = function reglScatter2d2(regl, options) {\n var scatter$1 = new scatter(regl, options);\n var render = scatter$1.render.bind(scatter$1);\n extend$1(render, {\n render,\n update: scatter$1.update.bind(scatter$1),\n draw: scatter$1.draw.bind(scatter$1),\n destroy: scatter$1.destroy.bind(scatter$1),\n regl: scatter$1.regl,\n gl: scatter$1.gl,\n canvas: scatter$1.gl.canvas,\n groups: scatter$1.groups,\n markers: scatter$1.markerCache,\n palette: scatter$1.palette\n });\n return render;\n };\n module.exports = reglScatter2d;\n }\n });\n\n // node_modules/earcut/src/earcut.js\n var require_earcut = __commonJS({\n \"node_modules/earcut/src/earcut.js\"(exports, module) {\n \"use strict\";\n module.exports = earcut;\n module.exports.default = earcut;\n function earcut(data, holeIndices, dim) {\n dim = dim || 2;\n var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data.length, outerNode = linkedList(data, 0, outerLen, dim, true), triangles = [];\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n var minX, minY, maxX, maxY, x, y, invSize;\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 32767 / invSize : 0;\n }\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n return triangles;\n }\n function linkedList(data, start, end, dim, clockwise) {\n var i, last;\n if (clockwise === signedArea(data, start, end, dim) > 0) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n return last;\n }\n function filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n var p = start, again;\n do {\n again = false;\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n return end;\n }\n function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n var stop = ear, prev, next;\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n triangles.push(prev.i / dim | 0);\n triangles.push(ear.i / dim | 0);\n triangles.push(next.i / dim | 0);\n removeNode(ear);\n ear = next.next;\n stop = next.next;\n continue;\n }\n ear = next;\n if (ear === stop) {\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n break;\n }\n }\n }\n function isEar(ear) {\n var a = ear.prev, b = ear, c = ear.next;\n if (area(a, b, c) >= 0) return false;\n var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n var x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n var p = c.next;\n while (p !== a) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n return true;\n }\n function isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev, b = ear, c = ear.next;\n if (area(a, b, c) >= 0) return false;\n var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n var x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n var minZ = zOrder(x0, y0, minX, minY, invSize), maxZ = zOrder(x1, y1, minX, minY, invSize);\n var p = ear.prevZ, n = ear.nextZ;\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n while (p && p.z >= minZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n while (n && n.z <= maxZ) {\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n return true;\n }\n function cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev, b = p.next.next;\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n triangles.push(a.i / dim | 0);\n triangles.push(p.i / dim | 0);\n triangles.push(b.i / dim | 0);\n removeNode(p);\n removeNode(p.next);\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n return filterPoints(p);\n }\n function splitEarcut(start, triangles, dim, minX, minY, invSize) {\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n var c = splitPolygon(a, b);\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n }\n function eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [], i, len, start, end, list;\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n queue.sort(compareX);\n for (i = 0; i < queue.length; i++) {\n outerNode = eliminateHole(queue[i], outerNode);\n }\n return outerNode;\n }\n function compareX(a, b) {\n return a.x - b.x;\n }\n function eliminateHole(hole, outerNode) {\n var bridge = findHoleBridge(hole, outerNode);\n if (!bridge) {\n return outerNode;\n }\n var bridgeReverse = splitPolygon(bridge, hole);\n filterPoints(bridgeReverse, bridgeReverse.next);\n return filterPoints(bridge, bridge.next);\n }\n function findHoleBridge(hole, outerNode) {\n var p = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m;\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n m = p.x < p.next.x ? p : p.next;\n if (x === hx) return m;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n if (!m) return null;\n var stop = m, mx = m.x, my = m.y, tanMin = Infinity, tan;\n p = m;\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n tan = Math.abs(hy - p.y) / (hx - p.x);\n if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\n m = p;\n tanMin = tan;\n }\n }\n p = p.next;\n } while (p !== stop);\n return m;\n }\n function sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n }\n function indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n p.prevZ.nextZ = null;\n p.prevZ = null;\n sortLinked(p);\n }\n function sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n while (pSize > 0 || qSize > 0 && q) {\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n if (tail) tail.nextZ = e;\n else list = e;\n e.prevZ = tail;\n tail = e;\n }\n p = q;\n }\n tail.nextZ = null;\n inSize *= 2;\n } while (numMerges > 1);\n return list;\n }\n function zOrder(x, y, minX, minY, invSize) {\n x = (x - minX) * invSize | 0;\n y = (y - minY) * invSize | 0;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n }\n function getLeftmost(start) {\n var p = start, leftmost = start;\n do {\n if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p;\n p = p.next;\n } while (p !== start);\n return leftmost;\n }\n function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) >= (ax - px) * (cy - py) && (ax - px) * (by - py) >= (bx - px) * (ay - py) && (bx - px) * (cy - py) >= (cx - px) * (by - py);\n }\n function isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);\n }\n function area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n }\n function equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n }\n function intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n if (o1 !== o2 && o3 !== o4) return true;\n if (o1 === 0 && onSegment(p1, p2, q1)) return true;\n if (o2 === 0 && onSegment(p1, q2, q1)) return true;\n if (o3 === 0 && onSegment(p2, p1, q2)) return true;\n if (o4 === 0 && onSegment(p2, q1, q2)) return true;\n return false;\n }\n function onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n }\n function sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n }\n function intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n return false;\n }\n function locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n }\n function middleInside(a, b) {\n var p = a, inside = false, px = (a.x + b.x) / 2, py = (a.y + b.y) / 2;\n do {\n if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x)\n inside = !inside;\n p = p.next;\n } while (p !== a);\n return inside;\n }\n function splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;\n a.next = b;\n b.prev = a;\n a2.next = an;\n an.prev = a2;\n b2.next = a2;\n a2.prev = b2;\n bp.next = b2;\n b2.prev = bp;\n return b2;\n }\n function insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n if (!last) {\n p.prev = p;\n p.next = p;\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n }\n function removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n }\n function Node(i, x, y) {\n this.i = i;\n this.x = x;\n this.y = y;\n this.prev = null;\n this.next = null;\n this.z = 0;\n this.prevZ = null;\n this.nextZ = null;\n this.steiner = false;\n }\n earcut.deviation = function(data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) - (data[a] - data[b]) * (data[c + 1] - data[a + 1])\n );\n }\n return polygonArea === 0 && trianglesArea === 0 ? 0 : Math.abs((trianglesArea - polygonArea) / polygonArea);\n };\n function signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n }\n earcut.flatten = function(data) {\n var dim = data[0][0].length, result = { vertices: [], holes: [], dimensions: dim }, holeIndex = 0;\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n };\n }\n });\n\n // node_modules/array-normalize/index.js\n var require_array_normalize = __commonJS({\n \"node_modules/array-normalize/index.js\"(exports, module) {\n \"use strict\";\n var getBounds = require_array_bounds();\n module.exports = normalize;\n function normalize(arr, dim, bounds) {\n if (!arr || arr.length == null) throw Error(\"Argument should be an array\");\n if (dim == null) dim = 1;\n if (bounds == null) bounds = getBounds(arr, dim);\n for (var offset = 0; offset < dim; offset++) {\n var max = bounds[dim + offset], min = bounds[offset], i = offset, l = arr.length;\n if (max === Infinity && min === -Infinity) {\n for (i = offset; i < l; i += dim) {\n arr[i] = arr[i] === max ? 1 : arr[i] === min ? 0 : 0.5;\n }\n } else if (max === Infinity) {\n for (i = offset; i < l; i += dim) {\n arr[i] = arr[i] === max ? 1 : 0;\n }\n } else if (min === -Infinity) {\n for (i = offset; i < l; i += dim) {\n arr[i] = arr[i] === min ? 0 : 1;\n }\n } else {\n var range = max - min;\n for (i = offset; i < l; i += dim) {\n if (!isNaN(arr[i])) {\n arr[i] = range === 0 ? 0.5 : (arr[i] - min) / range;\n }\n }\n }\n }\n return arr;\n }\n }\n });\n\n // node_modules/es6-weak-map/is-implemented.js\n var require_is_implemented = __commonJS({\n \"node_modules/es6-weak-map/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n var weakMap, obj;\n if (typeof WeakMap !== \"function\") return false;\n try {\n weakMap = new WeakMap([[obj = {}, \"one\"], [{}, \"two\"], [{}, \"three\"]]);\n } catch (e) {\n return false;\n }\n if (String(weakMap) !== \"[object WeakMap]\") return false;\n if (typeof weakMap.set !== \"function\") return false;\n if (weakMap.set({}, 1) !== weakMap) return false;\n if (typeof weakMap.delete !== \"function\") return false;\n if (typeof weakMap.has !== \"function\") return false;\n if (weakMap.get(obj) !== \"one\") return false;\n return true;\n };\n }\n });\n\n // node_modules/es5-ext/function/noop.js\n var require_noop2 = __commonJS({\n \"node_modules/es5-ext/function/noop.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n };\n }\n });\n\n // node_modules/es5-ext/object/is-value.js\n var require_is_value = __commonJS({\n \"node_modules/es5-ext/object/is-value.js\"(exports, module) {\n \"use strict\";\n var _undefined = require_noop2()();\n module.exports = function(val) {\n return val !== _undefined && val !== null;\n };\n }\n });\n\n // node_modules/es5-ext/object/set-prototype-of/is-implemented.js\n var require_is_implemented2 = __commonJS({\n \"node_modules/es5-ext/object/set-prototype-of/is-implemented.js\"(exports, module) {\n \"use strict\";\n var create = Object.create;\n var getPrototypeOf = Object.getPrototypeOf;\n var plainObject = {};\n module.exports = function() {\n var setPrototypeOf = Object.setPrototypeOf, customCreate = arguments[0] || create;\n if (typeof setPrototypeOf !== \"function\") return false;\n return getPrototypeOf(setPrototypeOf(customCreate(null), plainObject)) === plainObject;\n };\n }\n });\n\n // node_modules/es5-ext/object/is-object.js\n var require_is_object = __commonJS({\n \"node_modules/es5-ext/object/is-object.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n var map = { function: true, object: true };\n module.exports = function(value) {\n return isValue(value) && map[typeof value] || false;\n };\n }\n });\n\n // node_modules/es5-ext/object/valid-value.js\n var require_valid_value = __commonJS({\n \"node_modules/es5-ext/object/valid-value.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n module.exports = function(value) {\n if (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n return value;\n };\n }\n });\n\n // node_modules/es5-ext/object/create.js\n var require_create2 = __commonJS({\n \"node_modules/es5-ext/object/create.js\"(exports, module) {\n \"use strict\";\n var create = Object.create;\n var shim;\n if (!require_is_implemented2()()) {\n shim = require_shim3();\n }\n module.exports = function() {\n var nullObject, polyProps, desc;\n if (!shim) return create;\n if (shim.level !== 1) return create;\n nullObject = {};\n polyProps = {};\n desc = { configurable: false, enumerable: false, writable: true, value: void 0 };\n Object.getOwnPropertyNames(Object.prototype).forEach(function(name2) {\n if (name2 === \"__proto__\") {\n polyProps[name2] = {\n configurable: true,\n enumerable: false,\n writable: true,\n value: void 0\n };\n return;\n }\n polyProps[name2] = desc;\n });\n Object.defineProperties(nullObject, polyProps);\n Object.defineProperty(shim, \"nullPolyfill\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: nullObject\n });\n return function(prototype, props) {\n return create(prototype === null ? nullObject : prototype, props);\n };\n }();\n }\n });\n\n // node_modules/es5-ext/object/set-prototype-of/shim.js\n var require_shim3 = __commonJS({\n \"node_modules/es5-ext/object/set-prototype-of/shim.js\"(exports, module) {\n \"use strict\";\n var isObject = require_is_object();\n var value = require_valid_value();\n var objIsPrototypeOf = Object.prototype.isPrototypeOf;\n var defineProperty = Object.defineProperty;\n var nullDesc = { configurable: true, enumerable: false, writable: true, value: void 0 };\n var validate;\n validate = function(obj, prototype) {\n value(obj);\n if (prototype === null || isObject(prototype)) return obj;\n throw new TypeError(\"Prototype must be null or an object\");\n };\n module.exports = function(status) {\n var fn, set;\n if (!status) return null;\n if (status.level === 2) {\n if (status.set) {\n set = status.set;\n fn = function(obj, prototype) {\n set.call(validate(obj, prototype), prototype);\n return obj;\n };\n } else {\n fn = function(obj, prototype) {\n validate(obj, prototype).__proto__ = prototype;\n return obj;\n };\n }\n } else {\n fn = function self2(obj, prototype) {\n var isNullBase;\n validate(obj, prototype);\n isNullBase = objIsPrototypeOf.call(self2.nullPolyfill, obj);\n if (isNullBase) delete self2.nullPolyfill.__proto__;\n if (prototype === null) prototype = self2.nullPolyfill;\n obj.__proto__ = prototype;\n if (isNullBase) defineProperty(self2.nullPolyfill, \"__proto__\", nullDesc);\n return obj;\n };\n }\n return Object.defineProperty(fn, \"level\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: status.level\n });\n }(\n function() {\n var tmpObj1 = /* @__PURE__ */ Object.create(null), tmpObj2 = {}, set, desc = Object.getOwnPropertyDescriptor(Object.prototype, \"__proto__\");\n if (desc) {\n try {\n set = desc.set;\n set.call(tmpObj1, tmpObj2);\n } catch (ignore) {\n }\n if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { set, level: 2 };\n }\n tmpObj1.__proto__ = tmpObj2;\n if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 2 };\n tmpObj1 = {};\n tmpObj1.__proto__ = tmpObj2;\n if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 1 };\n return false;\n }()\n );\n require_create2();\n }\n });\n\n // node_modules/es5-ext/object/set-prototype-of/index.js\n var require_set_prototype_of = __commonJS({\n \"node_modules/es5-ext/object/set-prototype-of/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented2()() ? Object.setPrototypeOf : require_shim3();\n }\n });\n\n // node_modules/es5-ext/object/valid-object.js\n var require_valid_object = __commonJS({\n \"node_modules/es5-ext/object/valid-object.js\"(exports, module) {\n \"use strict\";\n var isObject = require_is_object();\n module.exports = function(value) {\n if (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n return value;\n };\n }\n });\n\n // node_modules/es5-ext/string/random-uniq.js\n var require_random_uniq = __commonJS({\n \"node_modules/es5-ext/string/random-uniq.js\"(exports, module) {\n \"use strict\";\n var generated = /* @__PURE__ */ Object.create(null);\n var random = Math.random;\n module.exports = function() {\n var str;\n do {\n str = random().toString(36).slice(2);\n } while (generated[str]);\n return str;\n };\n }\n });\n\n // node_modules/type/value/is.js\n var require_is = __commonJS({\n \"node_modules/type/value/is.js\"(exports, module) {\n \"use strict\";\n var _undefined = void 0;\n module.exports = function(value) {\n return value !== _undefined && value !== null;\n };\n }\n });\n\n // node_modules/type/object/is.js\n var require_is2 = __commonJS({\n \"node_modules/type/object/is.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var possibleTypes = {\n \"object\": true,\n \"function\": true,\n \"undefined\": true\n /* document.all */\n };\n module.exports = function(value) {\n if (!isValue(value)) return false;\n return hasOwnProperty.call(possibleTypes, typeof value);\n };\n }\n });\n\n // node_modules/type/prototype/is.js\n var require_is3 = __commonJS({\n \"node_modules/type/prototype/is.js\"(exports, module) {\n \"use strict\";\n var isObject = require_is2();\n module.exports = function(value) {\n if (!isObject(value)) return false;\n try {\n if (!value.constructor) return false;\n return value.constructor.prototype === value;\n } catch (error) {\n return false;\n }\n };\n }\n });\n\n // node_modules/type/function/is.js\n var require_is4 = __commonJS({\n \"node_modules/type/function/is.js\"(exports, module) {\n \"use strict\";\n var isPrototype = require_is3();\n module.exports = function(value) {\n if (typeof value !== \"function\") return false;\n if (!hasOwnProperty.call(value, \"length\")) return false;\n try {\n if (typeof value.length !== \"number\") return false;\n if (typeof value.call !== \"function\") return false;\n if (typeof value.apply !== \"function\") return false;\n } catch (error) {\n return false;\n }\n return !isPrototype(value);\n };\n }\n });\n\n // node_modules/type/plain-function/is.js\n var require_is5 = __commonJS({\n \"node_modules/type/plain-function/is.js\"(exports, module) {\n \"use strict\";\n var isFunction = require_is4();\n var classRe = /^\\s*class[\\s{/}]/;\n var functionToString = Function.prototype.toString;\n module.exports = function(value) {\n if (!isFunction(value)) return false;\n if (classRe.test(functionToString.call(value))) return false;\n return true;\n };\n }\n });\n\n // node_modules/es5-ext/object/assign/is-implemented.js\n var require_is_implemented3 = __commonJS({\n \"node_modules/es5-ext/object/assign/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n var assign = Object.assign, obj;\n if (typeof assign !== \"function\") return false;\n obj = { foo: \"raz\" };\n assign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n return obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n };\n }\n });\n\n // node_modules/es5-ext/object/keys/is-implemented.js\n var require_is_implemented4 = __commonJS({\n \"node_modules/es5-ext/object/keys/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n try {\n Object.keys(\"primitive\");\n return true;\n } catch (e) {\n return false;\n }\n };\n }\n });\n\n // node_modules/es5-ext/object/keys/shim.js\n var require_shim4 = __commonJS({\n \"node_modules/es5-ext/object/keys/shim.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n var keys = Object.keys;\n module.exports = function(object) {\n return keys(isValue(object) ? Object(object) : object);\n };\n }\n });\n\n // node_modules/es5-ext/object/keys/index.js\n var require_keys = __commonJS({\n \"node_modules/es5-ext/object/keys/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented4()() ? Object.keys : require_shim4();\n }\n });\n\n // node_modules/es5-ext/object/assign/shim.js\n var require_shim5 = __commonJS({\n \"node_modules/es5-ext/object/assign/shim.js\"(exports, module) {\n \"use strict\";\n var keys = require_keys();\n var value = require_valid_value();\n var max = Math.max;\n module.exports = function(dest, src) {\n var error, i, length = max(arguments.length, 2), assign;\n dest = Object(value(dest));\n assign = function(key) {\n try {\n dest[key] = src[key];\n } catch (e) {\n if (!error) error = e;\n }\n };\n for (i = 1; i < length; ++i) {\n src = arguments[i];\n keys(src).forEach(assign);\n }\n if (error !== void 0) throw error;\n return dest;\n };\n }\n });\n\n // node_modules/es5-ext/object/assign/index.js\n var require_assign = __commonJS({\n \"node_modules/es5-ext/object/assign/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented3()() ? Object.assign : require_shim5();\n }\n });\n\n // node_modules/es5-ext/object/normalize-options.js\n var require_normalize_options = __commonJS({\n \"node_modules/es5-ext/object/normalize-options.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n var forEach = Array.prototype.forEach;\n var create = Object.create;\n var process2 = function(src, obj) {\n var key;\n for (key in src) obj[key] = src[key];\n };\n module.exports = function(opts1) {\n var result = create(null);\n forEach.call(arguments, function(options) {\n if (!isValue(options)) return;\n process2(Object(options), result);\n });\n return result;\n };\n }\n });\n\n // node_modules/es5-ext/string/#/contains/is-implemented.js\n var require_is_implemented5 = __commonJS({\n \"node_modules/es5-ext/string/#/contains/is-implemented.js\"(exports, module) {\n \"use strict\";\n var str = \"razdwatrzy\";\n module.exports = function() {\n if (typeof str.contains !== \"function\") return false;\n return str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n };\n }\n });\n\n // node_modules/es5-ext/string/#/contains/shim.js\n var require_shim6 = __commonJS({\n \"node_modules/es5-ext/string/#/contains/shim.js\"(exports, module) {\n \"use strict\";\n var indexOf = String.prototype.indexOf;\n module.exports = function(searchString) {\n return indexOf.call(this, searchString, arguments[1]) > -1;\n };\n }\n });\n\n // node_modules/es5-ext/string/#/contains/index.js\n var require_contains = __commonJS({\n \"node_modules/es5-ext/string/#/contains/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented5()() ? String.prototype.contains : require_shim6();\n }\n });\n\n // node_modules/d/index.js\n var require_d = __commonJS({\n \"node_modules/d/index.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var isPlainFunction = require_is5();\n var assign = require_assign();\n var normalizeOpts = require_normalize_options();\n var contains = require_contains();\n var d = module.exports = function(dscr, value) {\n var c, e, w, options, desc;\n if (arguments.length < 2 || typeof dscr !== \"string\") {\n options = value;\n value = dscr;\n dscr = null;\n } else {\n options = arguments[2];\n }\n if (isValue(dscr)) {\n c = contains.call(dscr, \"c\");\n e = contains.call(dscr, \"e\");\n w = contains.call(dscr, \"w\");\n } else {\n c = w = true;\n e = false;\n }\n desc = { value, configurable: c, enumerable: e, writable: w };\n return !options ? desc : assign(normalizeOpts(options), desc);\n };\n d.gs = function(dscr, get, set) {\n var c, e, options, desc;\n if (typeof dscr !== \"string\") {\n options = set;\n set = get;\n get = dscr;\n dscr = null;\n } else {\n options = arguments[3];\n }\n if (!isValue(get)) {\n get = void 0;\n } else if (!isPlainFunction(get)) {\n options = get;\n get = set = void 0;\n } else if (!isValue(set)) {\n set = void 0;\n } else if (!isPlainFunction(set)) {\n options = set;\n set = void 0;\n }\n if (isValue(dscr)) {\n c = contains.call(dscr, \"c\");\n e = contains.call(dscr, \"e\");\n } else {\n c = true;\n e = false;\n }\n desc = { get, set, configurable: c, enumerable: e };\n return !options ? desc : assign(normalizeOpts(options), desc);\n };\n }\n });\n\n // node_modules/es5-ext/function/is-arguments.js\n var require_is_arguments2 = __commonJS({\n \"node_modules/es5-ext/function/is-arguments.js\"(exports, module) {\n \"use strict\";\n var objToString = Object.prototype.toString;\n var id = objToString.call(/* @__PURE__ */ function() {\n return arguments;\n }());\n module.exports = function(value) {\n return objToString.call(value) === id;\n };\n }\n });\n\n // node_modules/es5-ext/string/is-string.js\n var require_is_string = __commonJS({\n \"node_modules/es5-ext/string/is-string.js\"(exports, module) {\n \"use strict\";\n var objToString = Object.prototype.toString;\n var id = objToString.call(\"\");\n module.exports = function(value) {\n return typeof value === \"string\" || value && typeof value === \"object\" && (value instanceof String || objToString.call(value) === id) || false;\n };\n }\n });\n\n // node_modules/ext/global-this/is-implemented.js\n var require_is_implemented6 = __commonJS({\n \"node_modules/ext/global-this/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n if (typeof globalThis !== \"object\") return false;\n if (!globalThis) return false;\n return globalThis.Array === Array;\n };\n }\n });\n\n // node_modules/ext/global-this/implementation.js\n var require_implementation6 = __commonJS({\n \"node_modules/ext/global-this/implementation.js\"(exports, module) {\n var naiveFallback = function() {\n if (typeof self === \"object\" && self) return self;\n if (typeof window === \"object\" && window) return window;\n throw new Error(\"Unable to resolve global `this`\");\n };\n module.exports = function() {\n if (this) return this;\n try {\n Object.defineProperty(Object.prototype, \"__global__\", {\n get: function() {\n return this;\n },\n configurable: true\n });\n } catch (error) {\n return naiveFallback();\n }\n try {\n if (!__global__) return naiveFallback();\n return __global__;\n } finally {\n delete Object.prototype.__global__;\n }\n }();\n }\n });\n\n // node_modules/ext/global-this/index.js\n var require_global_this = __commonJS({\n \"node_modules/ext/global-this/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented6()() ? globalThis : require_implementation6();\n }\n });\n\n // node_modules/es6-symbol/is-implemented.js\n var require_is_implemented7 = __commonJS({\n \"node_modules/es6-symbol/is-implemented.js\"(exports, module) {\n \"use strict\";\n var global2 = require_global_this();\n var validTypes = { object: true, symbol: true };\n module.exports = function() {\n var Symbol2 = global2.Symbol;\n var symbol;\n if (typeof Symbol2 !== \"function\") return false;\n symbol = Symbol2(\"test symbol\");\n try {\n String(symbol);\n } catch (e) {\n return false;\n }\n if (!validTypes[typeof Symbol2.iterator]) return false;\n if (!validTypes[typeof Symbol2.toPrimitive]) return false;\n if (!validTypes[typeof Symbol2.toStringTag]) return false;\n return true;\n };\n }\n });\n\n // node_modules/es6-symbol/is-symbol.js\n var require_is_symbol = __commonJS({\n \"node_modules/es6-symbol/is-symbol.js\"(exports, module) {\n \"use strict\";\n module.exports = function(value) {\n if (!value) return false;\n if (typeof value === \"symbol\") return true;\n if (!value.constructor) return false;\n if (value.constructor.name !== \"Symbol\") return false;\n return value[value.constructor.toStringTag] === \"Symbol\";\n };\n }\n });\n\n // node_modules/es6-symbol/validate-symbol.js\n var require_validate_symbol = __commonJS({\n \"node_modules/es6-symbol/validate-symbol.js\"(exports, module) {\n \"use strict\";\n var isSymbol = require_is_symbol();\n module.exports = function(value) {\n if (!isSymbol(value)) throw new TypeError(value + \" is not a symbol\");\n return value;\n };\n }\n });\n\n // node_modules/es6-symbol/lib/private/generate-name.js\n var require_generate_name = __commonJS({\n \"node_modules/es6-symbol/lib/private/generate-name.js\"(exports, module) {\n \"use strict\";\n var d = require_d();\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var objPrototype = Object.prototype;\n var created = create(null);\n module.exports = function(desc) {\n var postfix = 0, name2, ie11BugWorkaround;\n while (created[desc + (postfix || \"\")]) ++postfix;\n desc += postfix || \"\";\n created[desc] = true;\n name2 = \"@@\" + desc;\n defineProperty(\n objPrototype,\n name2,\n d.gs(null, function(value) {\n if (ie11BugWorkaround) return;\n ie11BugWorkaround = true;\n defineProperty(this, name2, d(value));\n ie11BugWorkaround = false;\n })\n );\n return name2;\n };\n }\n });\n\n // node_modules/es6-symbol/lib/private/setup/standard-symbols.js\n var require_standard_symbols = __commonJS({\n \"node_modules/es6-symbol/lib/private/setup/standard-symbols.js\"(exports, module) {\n \"use strict\";\n var d = require_d();\n var NativeSymbol = require_global_this().Symbol;\n module.exports = function(SymbolPolyfill) {\n return Object.defineProperties(SymbolPolyfill, {\n // To ensure proper interoperability with other native functions (e.g. Array.from)\n // fallback to eventual native implementation of given symbol\n hasInstance: d(\n \"\",\n NativeSymbol && NativeSymbol.hasInstance || SymbolPolyfill(\"hasInstance\")\n ),\n isConcatSpreadable: d(\n \"\",\n NativeSymbol && NativeSymbol.isConcatSpreadable || SymbolPolyfill(\"isConcatSpreadable\")\n ),\n iterator: d(\"\", NativeSymbol && NativeSymbol.iterator || SymbolPolyfill(\"iterator\")),\n match: d(\"\", NativeSymbol && NativeSymbol.match || SymbolPolyfill(\"match\")),\n replace: d(\"\", NativeSymbol && NativeSymbol.replace || SymbolPolyfill(\"replace\")),\n search: d(\"\", NativeSymbol && NativeSymbol.search || SymbolPolyfill(\"search\")),\n species: d(\"\", NativeSymbol && NativeSymbol.species || SymbolPolyfill(\"species\")),\n split: d(\"\", NativeSymbol && NativeSymbol.split || SymbolPolyfill(\"split\")),\n toPrimitive: d(\n \"\",\n NativeSymbol && NativeSymbol.toPrimitive || SymbolPolyfill(\"toPrimitive\")\n ),\n toStringTag: d(\n \"\",\n NativeSymbol && NativeSymbol.toStringTag || SymbolPolyfill(\"toStringTag\")\n ),\n unscopables: d(\n \"\",\n NativeSymbol && NativeSymbol.unscopables || SymbolPolyfill(\"unscopables\")\n )\n });\n };\n }\n });\n\n // node_modules/es6-symbol/lib/private/setup/symbol-registry.js\n var require_symbol_registry = __commonJS({\n \"node_modules/es6-symbol/lib/private/setup/symbol-registry.js\"(exports, module) {\n \"use strict\";\n var d = require_d();\n var validateSymbol = require_validate_symbol();\n var registry = /* @__PURE__ */ Object.create(null);\n module.exports = function(SymbolPolyfill) {\n return Object.defineProperties(SymbolPolyfill, {\n for: d(function(key) {\n if (registry[key]) return registry[key];\n return registry[key] = SymbolPolyfill(String(key));\n }),\n keyFor: d(function(symbol) {\n var key;\n validateSymbol(symbol);\n for (key in registry) {\n if (registry[key] === symbol) return key;\n }\n return void 0;\n })\n });\n };\n }\n });\n\n // node_modules/es6-symbol/polyfill.js\n var require_polyfill4 = __commonJS({\n \"node_modules/es6-symbol/polyfill.js\"(exports, module) {\n \"use strict\";\n var d = require_d();\n var validateSymbol = require_validate_symbol();\n var NativeSymbol = require_global_this().Symbol;\n var generateName = require_generate_name();\n var setupStandardSymbols = require_standard_symbols();\n var setupSymbolRegistry = require_symbol_registry();\n var create = Object.create;\n var defineProperties = Object.defineProperties;\n var defineProperty = Object.defineProperty;\n var SymbolPolyfill;\n var HiddenSymbol;\n var isNativeSafe;\n if (typeof NativeSymbol === \"function\") {\n try {\n String(NativeSymbol());\n isNativeSafe = true;\n } catch (ignore) {\n }\n } else {\n NativeSymbol = null;\n }\n HiddenSymbol = function Symbol2(description) {\n if (this instanceof HiddenSymbol) throw new TypeError(\"Symbol is not a constructor\");\n return SymbolPolyfill(description);\n };\n module.exports = SymbolPolyfill = function Symbol2(description) {\n var symbol;\n if (this instanceof Symbol2) throw new TypeError(\"Symbol is not a constructor\");\n if (isNativeSafe) return NativeSymbol(description);\n symbol = create(HiddenSymbol.prototype);\n description = description === void 0 ? \"\" : String(description);\n return defineProperties(symbol, {\n __description__: d(\"\", description),\n __name__: d(\"\", generateName(description))\n });\n };\n setupStandardSymbols(SymbolPolyfill);\n setupSymbolRegistry(SymbolPolyfill);\n defineProperties(HiddenSymbol.prototype, {\n constructor: d(SymbolPolyfill),\n toString: d(\"\", function() {\n return this.__name__;\n })\n });\n defineProperties(SymbolPolyfill.prototype, {\n toString: d(function() {\n return \"Symbol (\" + validateSymbol(this).__description__ + \")\";\n }),\n valueOf: d(function() {\n return validateSymbol(this);\n })\n });\n defineProperty(\n SymbolPolyfill.prototype,\n SymbolPolyfill.toPrimitive,\n d(\"\", function() {\n var symbol = validateSymbol(this);\n if (typeof symbol === \"symbol\") return symbol;\n return symbol.toString();\n })\n );\n defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d(\"c\", \"Symbol\"));\n defineProperty(\n HiddenSymbol.prototype,\n SymbolPolyfill.toStringTag,\n d(\"c\", SymbolPolyfill.prototype[SymbolPolyfill.toStringTag])\n );\n defineProperty(\n HiddenSymbol.prototype,\n SymbolPolyfill.toPrimitive,\n d(\"c\", SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive])\n );\n }\n });\n\n // node_modules/es6-symbol/index.js\n var require_es6_symbol = __commonJS({\n \"node_modules/es6-symbol/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented7()() ? require_global_this().Symbol : require_polyfill4();\n }\n });\n\n // node_modules/es5-ext/array/#/clear.js\n var require_clear = __commonJS({\n \"node_modules/es5-ext/array/#/clear.js\"(exports, module) {\n \"use strict\";\n var value = require_valid_value();\n module.exports = function() {\n value(this).length = 0;\n return this;\n };\n }\n });\n\n // node_modules/es5-ext/object/valid-callable.js\n var require_valid_callable = __commonJS({\n \"node_modules/es5-ext/object/valid-callable.js\"(exports, module) {\n \"use strict\";\n module.exports = function(fn) {\n if (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n return fn;\n };\n }\n });\n\n // node_modules/type/string/coerce.js\n var require_coerce2 = __commonJS({\n \"node_modules/type/string/coerce.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var isObject = require_is2();\n var objectToString = Object.prototype.toString;\n module.exports = function(value) {\n if (!isValue(value)) return null;\n if (isObject(value)) {\n var valueToString = value.toString;\n if (typeof valueToString !== \"function\") return null;\n if (valueToString === objectToString) return null;\n }\n try {\n return \"\" + value;\n } catch (error) {\n return null;\n }\n };\n }\n });\n\n // node_modules/type/lib/safe-to-string.js\n var require_safe_to_string = __commonJS({\n \"node_modules/type/lib/safe-to-string.js\"(exports, module) {\n \"use strict\";\n module.exports = function(value) {\n try {\n return value.toString();\n } catch (error) {\n try {\n return String(value);\n } catch (error2) {\n return null;\n }\n }\n };\n }\n });\n\n // node_modules/type/lib/to-short-string.js\n var require_to_short_string = __commonJS({\n \"node_modules/type/lib/to-short-string.js\"(exports, module) {\n \"use strict\";\n var safeToString = require_safe_to_string();\n var reNewLine = /[\\n\\r\\u2028\\u2029]/g;\n module.exports = function(value) {\n var string = safeToString(value);\n if (string === null) return \"\";\n if (string.length > 100) string = string.slice(0, 99) + \"\\u2026\";\n string = string.replace(reNewLine, function(char) {\n switch (char) {\n case \"\\n\":\n return \"\\\\n\";\n case \"\\r\":\n return \"\\\\r\";\n case \"\\u2028\":\n return \"\\\\u2028\";\n case \"\\u2029\":\n return \"\\\\u2029\";\n /* istanbul ignore next */\n default:\n throw new Error(\"Unexpected character\");\n }\n });\n return string;\n };\n }\n });\n\n // node_modules/type/lib/resolve-exception.js\n var require_resolve_exception = __commonJS({\n \"node_modules/type/lib/resolve-exception.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var isObject = require_is2();\n var stringCoerce = require_coerce2();\n var toShortString = require_to_short_string();\n var resolveMessage = function(message, value) {\n return message.replace(\"%v\", toShortString(value));\n };\n module.exports = function(value, defaultMessage, inputOptions) {\n if (!isObject(inputOptions)) throw new TypeError(resolveMessage(defaultMessage, value));\n if (!isValue(value)) {\n if (\"default\" in inputOptions) return inputOptions[\"default\"];\n if (inputOptions.isOptional) return null;\n }\n var errorMessage = stringCoerce(inputOptions.errorMessage);\n if (!isValue(errorMessage)) errorMessage = defaultMessage;\n throw new TypeError(resolveMessage(errorMessage, value));\n };\n }\n });\n\n // node_modules/type/value/ensure.js\n var require_ensure = __commonJS({\n \"node_modules/type/value/ensure.js\"(exports, module) {\n \"use strict\";\n var resolveException = require_resolve_exception();\n var is = require_is();\n module.exports = function(value) {\n if (is(value)) return value;\n return resolveException(value, \"Cannot use %v\", arguments[1]);\n };\n }\n });\n\n // node_modules/type/plain-function/ensure.js\n var require_ensure2 = __commonJS({\n \"node_modules/type/plain-function/ensure.js\"(exports, module) {\n \"use strict\";\n var resolveException = require_resolve_exception();\n var is = require_is5();\n module.exports = function(value) {\n if (is(value)) return value;\n return resolveException(value, \"%v is not a plain function\", arguments[1]);\n };\n }\n });\n\n // node_modules/es5-ext/array/from/is-implemented.js\n var require_is_implemented8 = __commonJS({\n \"node_modules/es5-ext/array/from/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n var from = Array.from, arr, result;\n if (typeof from !== \"function\") return false;\n arr = [\"raz\", \"dwa\"];\n result = from(arr);\n return Boolean(result && result !== arr && result[1] === \"dwa\");\n };\n }\n });\n\n // node_modules/es5-ext/function/is-function.js\n var require_is_function = __commonJS({\n \"node_modules/es5-ext/function/is-function.js\"(exports, module) {\n \"use strict\";\n var objToString = Object.prototype.toString;\n var isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);\n module.exports = function(value) {\n return typeof value === \"function\" && isFunctionStringTag(objToString.call(value));\n };\n }\n });\n\n // node_modules/es5-ext/math/sign/is-implemented.js\n var require_is_implemented9 = __commonJS({\n \"node_modules/es5-ext/math/sign/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n var sign = Math.sign;\n if (typeof sign !== \"function\") return false;\n return sign(10) === 1 && sign(-20) === -1;\n };\n }\n });\n\n // node_modules/es5-ext/math/sign/shim.js\n var require_shim7 = __commonJS({\n \"node_modules/es5-ext/math/sign/shim.js\"(exports, module) {\n \"use strict\";\n module.exports = function(value) {\n value = Number(value);\n if (isNaN(value) || value === 0) return value;\n return value > 0 ? 1 : -1;\n };\n }\n });\n\n // node_modules/es5-ext/math/sign/index.js\n var require_sign = __commonJS({\n \"node_modules/es5-ext/math/sign/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented9()() ? Math.sign : require_shim7();\n }\n });\n\n // node_modules/es5-ext/number/to-integer.js\n var require_to_integer = __commonJS({\n \"node_modules/es5-ext/number/to-integer.js\"(exports, module) {\n \"use strict\";\n var sign = require_sign();\n var abs = Math.abs;\n var floor = Math.floor;\n module.exports = function(value) {\n if (isNaN(value)) return 0;\n value = Number(value);\n if (value === 0 || !isFinite(value)) return value;\n return sign(value) * floor(abs(value));\n };\n }\n });\n\n // node_modules/es5-ext/number/to-pos-integer.js\n var require_to_pos_integer = __commonJS({\n \"node_modules/es5-ext/number/to-pos-integer.js\"(exports, module) {\n \"use strict\";\n var toInteger = require_to_integer();\n var max = Math.max;\n module.exports = function(value) {\n return max(0, toInteger(value));\n };\n }\n });\n\n // node_modules/es5-ext/array/from/shim.js\n var require_shim8 = __commonJS({\n \"node_modules/es5-ext/array/from/shim.js\"(exports, module) {\n \"use strict\";\n var iteratorSymbol = require_es6_symbol().iterator;\n var isArguments = require_is_arguments2();\n var isFunction = require_is_function();\n var toPosInt = require_to_pos_integer();\n var callable = require_valid_callable();\n var validValue = require_valid_value();\n var isValue = require_is_value();\n var isString = require_is_string();\n var isArray = Array.isArray;\n var call = Function.prototype.call;\n var desc = { configurable: true, enumerable: true, writable: true, value: null };\n var defineProperty = Object.defineProperty;\n module.exports = function(arrayLike) {\n var mapFn = arguments[1], thisArg = arguments[2], Context, i, j, arr, length, code, iterator, result, getIterator, value;\n arrayLike = Object(validValue(arrayLike));\n if (isValue(mapFn)) callable(mapFn);\n if (!this || this === Array || !isFunction(this)) {\n if (!mapFn) {\n if (isArguments(arrayLike)) {\n length = arrayLike.length;\n if (length !== 1) return Array.apply(null, arrayLike);\n arr = new Array(1);\n arr[0] = arrayLike[0];\n return arr;\n }\n if (isArray(arrayLike)) {\n arr = new Array(length = arrayLike.length);\n for (i = 0; i < length; ++i) arr[i] = arrayLike[i];\n return arr;\n }\n }\n arr = [];\n } else {\n Context = this;\n }\n if (!isArray(arrayLike)) {\n if ((getIterator = arrayLike[iteratorSymbol]) !== void 0) {\n iterator = callable(getIterator).call(arrayLike);\n if (Context) arr = new Context();\n result = iterator.next();\n i = 0;\n while (!result.done) {\n value = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value;\n if (Context) {\n desc.value = value;\n defineProperty(arr, i, desc);\n } else {\n arr[i] = value;\n }\n result = iterator.next();\n ++i;\n }\n length = i;\n } else if (isString(arrayLike)) {\n length = arrayLike.length;\n if (Context) arr = new Context();\n for (i = 0, j = 0; i < length; ++i) {\n value = arrayLike[i];\n if (i + 1 < length) {\n code = value.charCodeAt(0);\n if (code >= 55296 && code <= 56319) value += arrayLike[++i];\n }\n value = mapFn ? call.call(mapFn, thisArg, value, j) : value;\n if (Context) {\n desc.value = value;\n defineProperty(arr, j, desc);\n } else {\n arr[j] = value;\n }\n ++j;\n }\n length = j;\n }\n }\n if (length === void 0) {\n length = toPosInt(arrayLike.length);\n if (Context) arr = new Context(length);\n for (i = 0; i < length; ++i) {\n value = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i];\n if (Context) {\n desc.value = value;\n defineProperty(arr, i, desc);\n } else {\n arr[i] = value;\n }\n }\n }\n if (Context) {\n desc.value = null;\n arr.length = length;\n }\n return arr;\n };\n }\n });\n\n // node_modules/es5-ext/array/from/index.js\n var require_from = __commonJS({\n \"node_modules/es5-ext/array/from/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented8()() ? Array.from : require_shim8();\n }\n });\n\n // node_modules/es5-ext/object/copy.js\n var require_copy2 = __commonJS({\n \"node_modules/es5-ext/object/copy.js\"(exports, module) {\n \"use strict\";\n var aFrom = require_from();\n var assign = require_assign();\n var value = require_valid_value();\n module.exports = function(obj) {\n var copy = Object(value(obj)), propertyNames = arguments[1], options = Object(arguments[2]);\n if (copy !== obj && !propertyNames) return copy;\n var result = {};\n if (propertyNames) {\n aFrom(propertyNames, function(propertyName) {\n if (options.ensure || propertyName in obj) result[propertyName] = obj[propertyName];\n });\n } else {\n assign(result, obj);\n }\n return result;\n };\n }\n });\n\n // node_modules/es5-ext/object/_iterate.js\n var require_iterate = __commonJS({\n \"node_modules/es5-ext/object/_iterate.js\"(exports, module) {\n \"use strict\";\n var callable = require_valid_callable();\n var value = require_valid_value();\n var bind = Function.prototype.bind;\n var call = Function.prototype.call;\n var keys = Object.keys;\n var objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;\n module.exports = function(method, defVal) {\n return function(obj, cb) {\n var list, thisArg = arguments[2], compareFn = arguments[3];\n obj = Object(value(obj));\n callable(cb);\n list = keys(obj);\n if (compareFn) {\n list.sort(typeof compareFn === \"function\" ? bind.call(compareFn, obj) : void 0);\n }\n if (typeof method !== \"function\") method = list[method];\n return call.call(method, list, function(key, index) {\n if (!objPropertyIsEnumerable.call(obj, key)) return defVal;\n return call.call(cb, thisArg, obj[key], key, obj, index);\n });\n };\n };\n }\n });\n\n // node_modules/es5-ext/object/for-each.js\n var require_for_each2 = __commonJS({\n \"node_modules/es5-ext/object/for-each.js\"(exports, module) {\n \"use strict\";\n module.exports = require_iterate()(\"forEach\");\n }\n });\n\n // node_modules/es5-ext/object/map.js\n var require_map = __commonJS({\n \"node_modules/es5-ext/object/map.js\"(exports, module) {\n \"use strict\";\n var callable = require_valid_callable();\n var forEach = require_for_each2();\n var call = Function.prototype.call;\n module.exports = function(obj, cb) {\n var result = {}, thisArg = arguments[2];\n callable(cb);\n forEach(obj, function(value, key, targetObj, index) {\n result[key] = call.call(cb, thisArg, value, key, targetObj, index);\n });\n return result;\n };\n }\n });\n\n // node_modules/d/auto-bind.js\n var require_auto_bind = __commonJS({\n \"node_modules/d/auto-bind.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var ensureValue = require_ensure();\n var ensurePlainFunction = require_ensure2();\n var copy = require_copy2();\n var normalizeOptions = require_normalize_options();\n var map = require_map();\n var bind = Function.prototype.bind;\n var defineProperty = Object.defineProperty;\n var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n var define2;\n define2 = function(name2, desc, options) {\n var value = ensureValue(desc) && ensurePlainFunction(desc.value), dgs;\n dgs = copy(desc);\n delete dgs.writable;\n delete dgs.value;\n dgs.get = function() {\n if (!options.overwriteDefinition && hasOwnProperty2.call(this, name2)) return value;\n desc.value = bind.call(value, options.resolveContext ? options.resolveContext(this) : this);\n defineProperty(this, name2, desc);\n return this[name2];\n };\n return dgs;\n };\n module.exports = function(props) {\n var options = normalizeOptions(arguments[1]);\n if (isValue(options.resolveContext)) ensurePlainFunction(options.resolveContext);\n return map(props, function(desc, name2) {\n return define2(name2, desc, options);\n });\n };\n }\n });\n\n // node_modules/es6-iterator/index.js\n var require_es6_iterator = __commonJS({\n \"node_modules/es6-iterator/index.js\"(exports, module) {\n \"use strict\";\n var clear = require_clear();\n var assign = require_assign();\n var callable = require_valid_callable();\n var value = require_valid_value();\n var d = require_d();\n var autoBind = require_auto_bind();\n var Symbol2 = require_es6_symbol();\n var defineProperty = Object.defineProperty;\n var defineProperties = Object.defineProperties;\n var Iterator;\n module.exports = Iterator = function(list, context) {\n if (!(this instanceof Iterator)) throw new TypeError(\"Constructor requires 'new'\");\n defineProperties(this, {\n __list__: d(\"w\", value(list)),\n __context__: d(\"w\", context),\n __nextIndex__: d(\"w\", 0)\n });\n if (!context) return;\n callable(context.on);\n context.on(\"_add\", this._onAdd);\n context.on(\"_delete\", this._onDelete);\n context.on(\"_clear\", this._onClear);\n };\n delete Iterator.prototype.constructor;\n defineProperties(\n Iterator.prototype,\n assign(\n {\n _next: d(function() {\n var i;\n if (!this.__list__) return void 0;\n if (this.__redo__) {\n i = this.__redo__.shift();\n if (i !== void 0) return i;\n }\n if (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;\n this._unBind();\n return void 0;\n }),\n next: d(function() {\n return this._createResult(this._next());\n }),\n _createResult: d(function(i) {\n if (i === void 0) return { done: true, value: void 0 };\n return { done: false, value: this._resolve(i) };\n }),\n _resolve: d(function(i) {\n return this.__list__[i];\n }),\n _unBind: d(function() {\n this.__list__ = null;\n delete this.__redo__;\n if (!this.__context__) return;\n this.__context__.off(\"_add\", this._onAdd);\n this.__context__.off(\"_delete\", this._onDelete);\n this.__context__.off(\"_clear\", this._onClear);\n this.__context__ = null;\n }),\n toString: d(function() {\n return \"[object \" + (this[Symbol2.toStringTag] || \"Object\") + \"]\";\n })\n },\n autoBind({\n _onAdd: d(function(index) {\n if (index >= this.__nextIndex__) return;\n ++this.__nextIndex__;\n if (!this.__redo__) {\n defineProperty(this, \"__redo__\", d(\"c\", [index]));\n return;\n }\n this.__redo__.forEach(function(redo, i) {\n if (redo >= index) this.__redo__[i] = ++redo;\n }, this);\n this.__redo__.push(index);\n }),\n _onDelete: d(function(index) {\n var i;\n if (index >= this.__nextIndex__) return;\n --this.__nextIndex__;\n if (!this.__redo__) return;\n i = this.__redo__.indexOf(index);\n if (i !== -1) this.__redo__.splice(i, 1);\n this.__redo__.forEach(function(redo, j) {\n if (redo > index) this.__redo__[j] = --redo;\n }, this);\n }),\n _onClear: d(function() {\n if (this.__redo__) clear.call(this.__redo__);\n this.__nextIndex__ = 0;\n })\n })\n )\n );\n defineProperty(\n Iterator.prototype,\n Symbol2.iterator,\n d(function() {\n return this;\n })\n );\n }\n });\n\n // node_modules/es6-iterator/array.js\n var require_array2 = __commonJS({\n \"node_modules/es6-iterator/array.js\"(exports, module) {\n \"use strict\";\n var setPrototypeOf = require_set_prototype_of();\n var contains = require_contains();\n var d = require_d();\n var Symbol2 = require_es6_symbol();\n var Iterator = require_es6_iterator();\n var defineProperty = Object.defineProperty;\n var ArrayIterator;\n ArrayIterator = module.exports = function(arr, kind) {\n if (!(this instanceof ArrayIterator)) throw new TypeError(\"Constructor requires 'new'\");\n Iterator.call(this, arr);\n if (!kind) kind = \"value\";\n else if (contains.call(kind, \"key+value\")) kind = \"key+value\";\n else if (contains.call(kind, \"key\")) kind = \"key\";\n else kind = \"value\";\n defineProperty(this, \"__kind__\", d(\"\", kind));\n };\n if (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator);\n delete ArrayIterator.prototype.constructor;\n ArrayIterator.prototype = Object.create(Iterator.prototype, {\n _resolve: d(function(i) {\n if (this.__kind__ === \"value\") return this.__list__[i];\n if (this.__kind__ === \"key+value\") return [i, this.__list__[i]];\n return i;\n })\n });\n defineProperty(ArrayIterator.prototype, Symbol2.toStringTag, d(\"c\", \"Array Iterator\"));\n }\n });\n\n // node_modules/es6-iterator/string.js\n var require_string = __commonJS({\n \"node_modules/es6-iterator/string.js\"(exports, module) {\n \"use strict\";\n var setPrototypeOf = require_set_prototype_of();\n var d = require_d();\n var Symbol2 = require_es6_symbol();\n var Iterator = require_es6_iterator();\n var defineProperty = Object.defineProperty;\n var StringIterator;\n StringIterator = module.exports = function(str) {\n if (!(this instanceof StringIterator)) throw new TypeError(\"Constructor requires 'new'\");\n str = String(str);\n Iterator.call(this, str);\n defineProperty(this, \"__length__\", d(\"\", str.length));\n };\n if (setPrototypeOf) setPrototypeOf(StringIterator, Iterator);\n delete StringIterator.prototype.constructor;\n StringIterator.prototype = Object.create(Iterator.prototype, {\n _next: d(function() {\n if (!this.__list__) return void 0;\n if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++;\n this._unBind();\n return void 0;\n }),\n _resolve: d(function(i) {\n var char = this.__list__[i], code;\n if (this.__nextIndex__ === this.__length__) return char;\n code = char.charCodeAt(0);\n if (code >= 55296 && code <= 56319) return char + this.__list__[this.__nextIndex__++];\n return char;\n })\n });\n defineProperty(StringIterator.prototype, Symbol2.toStringTag, d(\"c\", \"String Iterator\"));\n }\n });\n\n // node_modules/es6-iterator/is-iterable.js\n var require_is_iterable = __commonJS({\n \"node_modules/es6-iterator/is-iterable.js\"(exports, module) {\n \"use strict\";\n var isArguments = require_is_arguments2();\n var isValue = require_is_value();\n var isString = require_is_string();\n var iteratorSymbol = require_es6_symbol().iterator;\n var isArray = Array.isArray;\n module.exports = function(value) {\n if (!isValue(value)) return false;\n if (isArray(value)) return true;\n if (isString(value)) return true;\n if (isArguments(value)) return true;\n return typeof value[iteratorSymbol] === \"function\";\n };\n }\n });\n\n // node_modules/es6-iterator/valid-iterable.js\n var require_valid_iterable = __commonJS({\n \"node_modules/es6-iterator/valid-iterable.js\"(exports, module) {\n \"use strict\";\n var isIterable = require_is_iterable();\n module.exports = function(value) {\n if (!isIterable(value)) throw new TypeError(value + \" is not iterable\");\n return value;\n };\n }\n });\n\n // node_modules/es6-iterator/get.js\n var require_get = __commonJS({\n \"node_modules/es6-iterator/get.js\"(exports, module) {\n \"use strict\";\n var isArguments = require_is_arguments2();\n var isString = require_is_string();\n var ArrayIterator = require_array2();\n var StringIterator = require_string();\n var iterable = require_valid_iterable();\n var iteratorSymbol = require_es6_symbol().iterator;\n module.exports = function(obj) {\n if (typeof iterable(obj)[iteratorSymbol] === \"function\") return obj[iteratorSymbol]();\n if (isArguments(obj)) return new ArrayIterator(obj);\n if (isString(obj)) return new StringIterator(obj);\n return new ArrayIterator(obj);\n };\n }\n });\n\n // node_modules/es6-iterator/for-of.js\n var require_for_of = __commonJS({\n \"node_modules/es6-iterator/for-of.js\"(exports, module) {\n \"use strict\";\n var isArguments = require_is_arguments2();\n var callable = require_valid_callable();\n var isString = require_is_string();\n var get = require_get();\n var isArray = Array.isArray;\n var call = Function.prototype.call;\n var some = Array.prototype.some;\n module.exports = function(iterable, cb) {\n var mode, thisArg = arguments[2], result, doBreak, broken, i, length, char, code;\n if (isArray(iterable) || isArguments(iterable)) mode = \"array\";\n else if (isString(iterable)) mode = \"string\";\n else iterable = get(iterable);\n callable(cb);\n doBreak = function() {\n broken = true;\n };\n if (mode === \"array\") {\n some.call(iterable, function(value) {\n call.call(cb, thisArg, value, doBreak);\n return broken;\n });\n return;\n }\n if (mode === \"string\") {\n length = iterable.length;\n for (i = 0; i < length; ++i) {\n char = iterable[i];\n if (i + 1 < length) {\n code = char.charCodeAt(0);\n if (code >= 55296 && code <= 56319) char += iterable[++i];\n }\n call.call(cb, thisArg, char, doBreak);\n if (broken) break;\n }\n return;\n }\n result = iterable.next();\n while (!result.done) {\n call.call(cb, thisArg, result.value, doBreak);\n if (broken) return;\n result = iterable.next();\n }\n };\n }\n });\n\n // node_modules/es6-weak-map/is-native-implemented.js\n var require_is_native_implemented = __commonJS({\n \"node_modules/es6-weak-map/is-native-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n if (typeof WeakMap !== \"function\") return false;\n return Object.prototype.toString.call(/* @__PURE__ */ new WeakMap()) === \"[object WeakMap]\";\n }();\n }\n });\n\n // node_modules/es6-weak-map/polyfill.js\n var require_polyfill5 = __commonJS({\n \"node_modules/es6-weak-map/polyfill.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n var setPrototypeOf = require_set_prototype_of();\n var object = require_valid_object();\n var ensureValue = require_valid_value();\n var randomUniq = require_random_uniq();\n var d = require_d();\n var getIterator = require_get();\n var forOf = require_for_of();\n var toStringTagSymbol = require_es6_symbol().toStringTag;\n var isNative = require_is_native_implemented();\n var isArray = Array.isArray;\n var defineProperty = Object.defineProperty;\n var objHasOwnProperty = Object.prototype.hasOwnProperty;\n var getPrototypeOf = Object.getPrototypeOf;\n var WeakMapPoly;\n module.exports = WeakMapPoly = function() {\n var iterable = arguments[0], self2;\n if (!(this instanceof WeakMapPoly)) throw new TypeError(\"Constructor requires 'new'\");\n self2 = isNative && setPrototypeOf && WeakMap !== WeakMapPoly ? setPrototypeOf(/* @__PURE__ */ new WeakMap(), getPrototypeOf(this)) : this;\n if (isValue(iterable)) {\n if (!isArray(iterable)) iterable = getIterator(iterable);\n }\n defineProperty(self2, \"__weakMapData__\", d(\"c\", \"$weakMap$\" + randomUniq()));\n if (!iterable) return self2;\n forOf(iterable, function(val) {\n ensureValue(val);\n self2.set(val[0], val[1]);\n });\n return self2;\n };\n if (isNative) {\n if (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap);\n WeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) });\n }\n Object.defineProperties(WeakMapPoly.prototype, {\n delete: d(function(key) {\n if (objHasOwnProperty.call(object(key), this.__weakMapData__)) {\n delete key[this.__weakMapData__];\n return true;\n }\n return false;\n }),\n get: d(function(key) {\n if (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return void 0;\n return key[this.__weakMapData__];\n }),\n has: d(function(key) {\n return objHasOwnProperty.call(object(key), this.__weakMapData__);\n }),\n set: d(function(key, value) {\n defineProperty(object(key), this.__weakMapData__, d(\"c\", value));\n return this;\n }),\n toString: d(function() {\n return \"[object WeakMap]\";\n })\n });\n defineProperty(WeakMapPoly.prototype, toStringTagSymbol, d(\"c\", \"WeakMap\"));\n }\n });\n\n // node_modules/es6-weak-map/index.js\n var require_es6_weak_map = __commonJS({\n \"node_modules/es6-weak-map/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented()() ? WeakMap : require_polyfill5();\n }\n });\n\n // node_modules/array-find-index/index.js\n var require_array_find_index = __commonJS({\n \"node_modules/array-find-index/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function(arr, predicate, ctx) {\n if (typeof Array.prototype.findIndex === \"function\") {\n return arr.findIndex(predicate, ctx);\n }\n if (typeof predicate !== \"function\") {\n throw new TypeError(\"predicate must be a function\");\n }\n var list = Object(arr);\n var len = list.length;\n if (len === 0) {\n return -1;\n }\n for (var i = 0; i < len; i++) {\n if (predicate.call(ctx, list[i], i, list)) {\n return i;\n }\n }\n return -1;\n };\n }\n });\n\n // node_modules/regl-line2d/index.js\n var require_regl_line2d = __commonJS({\n \"node_modules/regl-line2d/index.js\"(exports, module) {\n \"use strict\";\n var rgba3 = require_color_normalize();\n var getBounds = require_array_bounds();\n var extend2 = require_object_assign();\n var pick = require_pick_by_alias();\n var flatten = require_flatten_vertex_data();\n var triangulate = require_earcut();\n var normalize = require_array_normalize();\n var { float32, fract32 } = require_to_float32();\n var WeakMap2 = require_es6_weak_map();\n var parseRect = require_parse_rect();\n var findIndex = require_array_find_index();\n var rectVert = `\nprecision highp float;\n\nattribute vec2 aCoord, bCoord, aCoordFract, bCoordFract;\nattribute vec4 color;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float thickness, pixelRatio, id, depth;\nuniform vec4 viewport;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) {\n\t// the order is important\n\treturn position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n}\n\nvoid main() {\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineOffset = lineTop * 2. - 1.;\n\n\tvec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract);\n\ttangent = normalize(diff * scale * viewport.zw);\n\tvec2 normal = vec2(-tangent.y, tangent.x);\n\n\tvec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart\n\t\t+ project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd\n\n\t\t+ thickness * normal * .5 * lineOffset / viewport.zw;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n}\n`;\n var rectFrag = `\nprecision highp float;\n\nuniform float dashLength, pixelRatio, thickness, opacity, id;\nuniform sampler2D dashTexture;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvoid main() {\n\tfloat alpha = 1.;\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashTexture, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n`;\n var fillVert = `\nprecision highp float;\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}\n`;\n var fillFrag = `\nprecision highp float;\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}\n`;\n var milterVert = `\nprecision highp float;\n\nattribute vec2 aCoord, bCoord, nextCoord, prevCoord;\nattribute vec4 aColor, bColor;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, translate;\nuniform float thickness, pixelRatio, id, depth;\nuniform vec4 viewport;\nuniform float miterLimit, miterMode;\n\nvarying vec4 fragColor;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 tangent;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nconst float REVERSE_THRESHOLD = -.875;\nconst float MIN_DIFF = 1e-6;\n\n// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead\n// TODO: precalculate dot products, normalize things beforehead etc.\n// TODO: refactor to rectangular algorithm\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nbool isNaN( float val ){\n return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;\n}\n\nvoid main() {\n\tvec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;\n\n vec2 adjustedScale;\n adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;\n adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;\n\n vec2 scaleRatio = adjustedScale * viewport.zw;\n\tvec2 normalWidth = thickness / scaleRatio;\n\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineBot = 1. - lineTop;\n\n\tfragColor = (lineStart * aColor + lineEnd * bColor) / 255.;\n\n\tif (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;\n\n\tif (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);\n\tif (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);\n\n\n\tvec2 prevDiff = aCoord - prevCoord;\n\tvec2 currDiff = bCoord - aCoord;\n\tvec2 nextDiff = nextCoord - bCoord;\n\n\tvec2 prevTangent = normalize(prevDiff * scaleRatio);\n\tvec2 currTangent = normalize(currDiff * scaleRatio);\n\tvec2 nextTangent = normalize(nextDiff * scaleRatio);\n\n\tvec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);\n\tvec2 currNormal = vec2(-currTangent.y, currTangent.x);\n\tvec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);\n\n\tvec2 startJoinDirection = normalize(prevTangent - currTangent);\n\tvec2 endJoinDirection = normalize(currTangent - nextTangent);\n\n\t// collapsed/unidirectional segment cases\n\t// FIXME: there should be more elegant solution\n\tvec2 prevTanDiff = abs(prevTangent - currTangent);\n\tvec2 nextTanDiff = abs(nextTangent - currTangent);\n\tif (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {\n\t\tstartJoinDirection = currNormal;\n\t}\n\tif (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {\n\t\tendJoinDirection = currNormal;\n\t}\n\tif (aCoord == bCoord) {\n\t\tendJoinDirection = startJoinDirection;\n\t\tcurrNormal = prevNormal;\n\t\tcurrTangent = prevTangent;\n\t}\n\n\ttangent = currTangent;\n\n\t//calculate join shifts relative to normals\n\tfloat startJoinShift = dot(currNormal, startJoinDirection);\n\tfloat endJoinShift = dot(currNormal, endJoinDirection);\n\n\tfloat startMiterRatio = abs(1. / startJoinShift);\n\tfloat endMiterRatio = abs(1. / endJoinShift);\n\n\tvec2 startJoin = startJoinDirection * startMiterRatio;\n\tvec2 endJoin = endJoinDirection * endMiterRatio;\n\n\tvec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;\n\tstartTopJoin = sign(startJoinShift) * startJoin * .5;\n\tstartBotJoin = -startTopJoin;\n\n\tendTopJoin = sign(endJoinShift) * endJoin * .5;\n\tendBotJoin = -endTopJoin;\n\n\tvec2 aTopCoord = aCoord + normalWidth * startTopJoin;\n\tvec2 bTopCoord = bCoord + normalWidth * endTopJoin;\n\tvec2 aBotCoord = aCoord + normalWidth * startBotJoin;\n\tvec2 bBotCoord = bCoord + normalWidth * endBotJoin;\n\n\t//miter anti-clipping\n\tfloat baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));\n\tfloat abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));\n\n\t//prevent close to reverse direction switch\n\tbool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) < length(normalWidth * currNormal);\n\tbool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) < length(normalWidth * currNormal);\n\n\tif (prevReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);\n\t\taBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\taTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!nextReverse && baClipping > 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n`;\n var milterFrag = `\nprecision highp float;\n\nuniform float dashLength, pixelRatio, thickness, opacity, id, miterMode;\nuniform sampler2D dashTexture;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashTexture, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n`;\n module.exports = Line2D;\n function Line2D(regl, options) {\n if (!(this instanceof Line2D)) return new Line2D(regl, options);\n if (typeof regl === \"function\") {\n if (!options) options = {};\n options.regl = regl;\n } else {\n options = regl;\n }\n if (options.length) options.positions = options;\n regl = options.regl;\n if (!regl.hasExtension(\"ANGLE_instanced_arrays\")) {\n throw Error(\"regl-error2d: `ANGLE_instanced_arrays` extension should be enabled\");\n }\n this.gl = regl._gl;\n this.regl = regl;\n this.passes = [];\n this.shaders = Line2D.shaders.has(regl) ? Line2D.shaders.get(regl) : Line2D.shaders.set(regl, Line2D.createShaders(regl)).get(regl);\n this.update(options);\n }\n Line2D.dashMult = 2;\n Line2D.maxPatternLength = 256;\n Line2D.precisionThreshold = 3e6;\n Line2D.maxPoints = 1e4;\n Line2D.maxLines = 2048;\n Line2D.shaders = new WeakMap2();\n Line2D.createShaders = function(regl) {\n let offsetBuffer = regl.buffer({\n usage: \"static\",\n type: \"float\",\n data: [0, 1, 0, 0, 1, 1, 1, 0]\n });\n let shaderOptions = {\n primitive: \"triangle strip\",\n instances: regl.prop(\"count\"),\n count: 4,\n offset: 0,\n uniforms: {\n miterMode: (ctx, prop) => prop.join === \"round\" ? 2 : 1,\n miterLimit: regl.prop(\"miterLimit\"),\n scale: regl.prop(\"scale\"),\n scaleFract: regl.prop(\"scaleFract\"),\n translateFract: regl.prop(\"translateFract\"),\n translate: regl.prop(\"translate\"),\n thickness: regl.prop(\"thickness\"),\n dashTexture: regl.prop(\"dashTexture\"),\n opacity: regl.prop(\"opacity\"),\n pixelRatio: regl.context(\"pixelRatio\"),\n id: regl.prop(\"id\"),\n dashLength: regl.prop(\"dashLength\"),\n viewport: (c, p) => [p.viewport.x, p.viewport.y, c.viewportWidth, c.viewportHeight],\n depth: regl.prop(\"depth\")\n },\n blend: {\n enable: true,\n color: [0, 0, 0, 0],\n equation: {\n rgb: \"add\",\n alpha: \"add\"\n },\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\"\n }\n },\n depth: {\n enable: (c, p) => {\n return !p.overlay;\n }\n },\n stencil: { enable: false },\n scissor: {\n enable: true,\n box: regl.prop(\"viewport\")\n },\n viewport: regl.prop(\"viewport\")\n };\n let drawRectLine = regl(extend2({\n vert: rectVert,\n frag: rectFrag,\n attributes: {\n // if point is at the end of segment\n lineEnd: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 0\n },\n // if point is at the top of segment\n lineTop: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 4\n },\n // beginning of line coordinate\n aCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 8,\n divisor: 1\n },\n // end of line coordinate\n bCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 16,\n divisor: 1\n },\n aCoordFract: {\n buffer: regl.prop(\"positionFractBuffer\"),\n stride: 8,\n offset: 8,\n divisor: 1\n },\n bCoordFract: {\n buffer: regl.prop(\"positionFractBuffer\"),\n stride: 8,\n offset: 16,\n divisor: 1\n },\n color: {\n buffer: regl.prop(\"colorBuffer\"),\n stride: 4,\n offset: 0,\n divisor: 1\n }\n }\n }, shaderOptions));\n let drawMiterLine;\n try {\n drawMiterLine = regl(extend2({\n // culling removes polygon creasing\n cull: {\n enable: true,\n face: \"back\"\n },\n vert: milterVert,\n frag: milterFrag,\n attributes: {\n // is line end\n lineEnd: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 0\n },\n // is line top\n lineTop: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 4\n },\n // left color\n aColor: {\n buffer: regl.prop(\"colorBuffer\"),\n stride: 4,\n offset: 0,\n divisor: 1\n },\n // right color\n bColor: {\n buffer: regl.prop(\"colorBuffer\"),\n stride: 4,\n offset: 4,\n divisor: 1\n },\n prevCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 0,\n divisor: 1\n },\n aCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 8,\n divisor: 1\n },\n bCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 16,\n divisor: 1\n },\n nextCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 24,\n divisor: 1\n }\n }\n }, shaderOptions));\n } catch (e) {\n drawMiterLine = drawRectLine;\n }\n let drawFill = regl({\n primitive: \"triangle\",\n elements: (ctx, prop) => prop.triangles,\n offset: 0,\n vert: fillVert,\n frag: fillFrag,\n uniforms: {\n scale: regl.prop(\"scale\"),\n color: regl.prop(\"fill\"),\n scaleFract: regl.prop(\"scaleFract\"),\n translateFract: regl.prop(\"translateFract\"),\n translate: regl.prop(\"translate\"),\n opacity: regl.prop(\"opacity\"),\n pixelRatio: regl.context(\"pixelRatio\"),\n id: regl.prop(\"id\"),\n viewport: (ctx, prop) => [prop.viewport.x, prop.viewport.y, ctx.viewportWidth, ctx.viewportHeight]\n },\n attributes: {\n position: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 8\n },\n positionFract: {\n buffer: regl.prop(\"positionFractBuffer\"),\n stride: 8,\n offset: 8\n }\n },\n blend: shaderOptions.blend,\n depth: { enable: false },\n scissor: shaderOptions.scissor,\n stencil: shaderOptions.stencil,\n viewport: shaderOptions.viewport\n });\n return {\n fill: drawFill,\n rect: drawRectLine,\n miter: drawMiterLine\n };\n };\n Line2D.defaults = {\n dashes: null,\n join: \"miter\",\n miterLimit: 1,\n thickness: 10,\n cap: \"square\",\n color: \"black\",\n opacity: 1,\n overlay: false,\n viewport: null,\n range: null,\n close: false,\n fill: null\n };\n Line2D.prototype.render = function(...args) {\n if (args.length) {\n this.update(...args);\n }\n this.draw();\n };\n Line2D.prototype.draw = function(...args) {\n (args.length ? args : this.passes).forEach((s, i) => {\n if (s && Array.isArray(s)) return this.draw(...s);\n if (typeof s === \"number\") s = this.passes[s];\n if (!(s && s.count > 1 && s.opacity)) return;\n this.regl._refresh();\n if (s.fill && s.triangles && s.triangles.length > 2) {\n this.shaders.fill(s);\n }\n if (!s.thickness) return;\n if (s.scale[0] * s.viewport.width > Line2D.precisionThreshold || s.scale[1] * s.viewport.height > Line2D.precisionThreshold) {\n this.shaders.rect(s);\n } else if (s.join === \"rect\" || !s.join && (s.thickness <= 2 || s.count >= Line2D.maxPoints)) {\n this.shaders.rect(s);\n } else {\n this.shaders.miter(s);\n }\n });\n return this;\n };\n Line2D.prototype.update = function(options) {\n if (!options) return;\n if (options.length != null) {\n if (typeof options[0] === \"number\") options = [{ positions: options }];\n } else if (!Array.isArray(options)) options = [options];\n let { regl, gl: gl2 } = this;\n options.forEach((o, i) => {\n let state = this.passes[i];\n if (o === void 0) return;\n if (o === null) {\n this.passes[i] = null;\n return;\n }\n if (typeof o[0] === \"number\") o = { positions: o };\n o = pick(o, {\n positions: \"positions points data coords\",\n thickness: \"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth\",\n join: \"lineJoin linejoin join type mode\",\n miterLimit: \"miterlimit miterLimit\",\n dashes: \"dash dashes dasharray dash-array dashArray\",\n color: \"color colour stroke colors colours stroke-color strokeColor\",\n fill: \"fill fill-color fillColor\",\n opacity: \"alpha opacity\",\n overlay: \"overlay crease overlap intersect\",\n close: \"closed close closed-path closePath\",\n range: \"range dataBox\",\n viewport: \"viewport viewBox\",\n hole: \"holes hole hollow\",\n splitNull: \"splitNull\"\n });\n if (!state) {\n this.passes[i] = state = {\n id: i,\n scale: null,\n scaleFract: null,\n translate: null,\n translateFract: null,\n count: 0,\n hole: [],\n depth: 0,\n dashLength: 1,\n dashTexture: regl.texture({\n channels: 1,\n data: new Uint8Array([255]),\n width: 1,\n height: 1,\n mag: \"linear\",\n min: \"linear\"\n }),\n colorBuffer: regl.buffer({\n usage: \"dynamic\",\n type: \"uint8\",\n data: new Uint8Array()\n }),\n positionBuffer: regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array()\n }),\n positionFractBuffer: regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array()\n })\n };\n o = extend2({}, Line2D.defaults, o);\n }\n if (o.thickness != null) state.thickness = parseFloat(o.thickness);\n if (o.opacity != null) state.opacity = parseFloat(o.opacity);\n if (o.miterLimit != null) state.miterLimit = parseFloat(o.miterLimit);\n if (o.overlay != null) {\n state.overlay = !!o.overlay;\n if (i < Line2D.maxLines) {\n state.depth = 2 * (Line2D.maxLines - 1 - i % Line2D.maxLines) / Line2D.maxLines - 1;\n }\n }\n if (o.join != null) state.join = o.join;\n if (o.hole != null) state.hole = o.hole;\n if (o.fill != null) state.fill = !o.fill ? null : rgba3(o.fill, \"uint8\");\n if (o.viewport != null) state.viewport = parseRect(o.viewport);\n if (!state.viewport) {\n state.viewport = parseRect([\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight\n ]);\n }\n if (o.close != null) state.close = o.close;\n if (o.positions === null) o.positions = [];\n if (o.positions) {\n let positions, count;\n if (o.positions.x && o.positions.y) {\n let xPos = o.positions.x;\n let yPos = o.positions.y;\n count = state.count = Math.max(\n xPos.length,\n yPos.length\n );\n positions = new Float64Array(count * 2);\n for (let i2 = 0; i2 < count; i2++) {\n positions[i2 * 2] = xPos[i2];\n positions[i2 * 2 + 1] = yPos[i2];\n }\n } else {\n positions = flatten(o.positions, \"float64\");\n count = state.count = Math.floor(positions.length / 2);\n }\n let bounds = state.bounds = getBounds(positions, 2);\n if (state.fill) {\n let pos = [];\n let ids = {};\n let lastId = 0;\n for (let i2 = 0, ptr = 0, l = state.count; i2 < l; i2++) {\n let x = positions[i2 * 2];\n let y = positions[i2 * 2 + 1];\n if (isNaN(x) || isNaN(y) || x == null || y == null) {\n x = positions[lastId * 2];\n y = positions[lastId * 2 + 1];\n ids[i2] = lastId;\n } else {\n lastId = i2;\n }\n pos[ptr++] = x;\n pos[ptr++] = y;\n }\n if (o.splitNull) {\n if (!(state.count - 1 in ids)) ids[state.count] = state.count - 1;\n let splits = Object.keys(ids).map(Number).sort((a, b) => a - b);\n let split_triangles = [];\n let base = 0;\n let hole_base = state.hole != null ? state.hole[0] : null;\n if (hole_base != null) {\n let last_id = findIndex(splits, (e) => e >= hole_base);\n splits = splits.slice(0, last_id);\n splits.push(hole_base);\n }\n for (let i2 = 0; i2 < splits.length; i2++) {\n let seg_pos = pos.slice(base * 2, splits[i2] * 2).concat(\n hole_base ? pos.slice(hole_base * 2) : []\n );\n let hole = (state.hole || []).map((e) => e - hole_base + (splits[i2] - base));\n let triangles = triangulate(seg_pos, hole);\n triangles = triangles.map(\n (e) => e + base + (e + base < splits[i2] ? 0 : hole_base - splits[i2])\n );\n split_triangles.push(...triangles);\n base = splits[i2] + 1;\n }\n for (let i2 = 0, l = split_triangles.length; i2 < l; i2++) {\n if (ids[split_triangles[i2]] != null) split_triangles[i2] = ids[split_triangles[i2]];\n }\n state.triangles = split_triangles;\n } else {\n let triangles = triangulate(pos, state.hole || []);\n for (let i2 = 0, l = triangles.length; i2 < l; i2++) {\n if (ids[triangles[i2]] != null) triangles[i2] = ids[triangles[i2]];\n }\n state.triangles = triangles;\n }\n }\n let npos = new Float64Array(positions);\n normalize(npos, 2, bounds);\n let positionData = new Float64Array(count * 2 + 6);\n if (state.close) {\n if (positions[0] === positions[count * 2 - 2] && positions[1] === positions[count * 2 - 1]) {\n positionData[0] = npos[count * 2 - 4];\n positionData[1] = npos[count * 2 - 3];\n } else {\n positionData[0] = npos[count * 2 - 2];\n positionData[1] = npos[count * 2 - 1];\n }\n } else {\n positionData[0] = npos[0];\n positionData[1] = npos[1];\n }\n positionData.set(npos, 2);\n if (state.close) {\n if (positions[0] === positions[count * 2 - 2] && positions[1] === positions[count * 2 - 1]) {\n positionData[count * 2 + 2] = npos[2];\n positionData[count * 2 + 3] = npos[3];\n state.count -= 1;\n } else {\n positionData[count * 2 + 2] = npos[0];\n positionData[count * 2 + 3] = npos[1];\n positionData[count * 2 + 4] = npos[2];\n positionData[count * 2 + 5] = npos[3];\n }\n } else {\n positionData[count * 2 + 2] = npos[count * 2 - 2];\n positionData[count * 2 + 3] = npos[count * 2 - 1];\n positionData[count * 2 + 4] = npos[count * 2 - 2];\n positionData[count * 2 + 5] = npos[count * 2 - 1];\n }\n var float_data = float32(positionData);\n state.positionBuffer(float_data);\n var frac_data = fract32(positionData, float_data);\n state.positionFractBuffer(frac_data);\n }\n if (o.range) {\n state.range = o.range;\n } else if (!state.range) {\n state.range = state.bounds;\n }\n if ((o.range || o.positions) && state.count) {\n let bounds = state.bounds;\n let boundsW = bounds[2] - bounds[0], boundsH = bounds[3] - bounds[1];\n let rangeW = state.range[2] - state.range[0], rangeH = state.range[3] - state.range[1];\n state.scale = [\n boundsW / rangeW,\n boundsH / rangeH\n ];\n state.translate = [\n -state.range[0] / rangeW + bounds[0] / rangeW || 0,\n -state.range[1] / rangeH + bounds[1] / rangeH || 0\n ];\n state.scaleFract = fract32(state.scale);\n state.translateFract = fract32(state.translate);\n }\n if (o.dashes) {\n let dashLength = 0, dashData;\n if (!o.dashes || o.dashes.length < 2) {\n dashLength = 1;\n dashData = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n } else {\n dashLength = 0;\n for (let i2 = 0; i2 < o.dashes.length; ++i2) {\n dashLength += o.dashes[i2];\n }\n dashData = new Uint8Array(dashLength * Line2D.dashMult);\n let ptr = 0;\n let fillColor = 255;\n for (let k = 0; k < 2; k++) {\n for (let i2 = 0; i2 < o.dashes.length; ++i2) {\n for (let j = 0, l = o.dashes[i2] * Line2D.dashMult * 0.5; j < l; ++j) {\n dashData[ptr++] = fillColor;\n }\n fillColor ^= 255;\n }\n }\n }\n state.dashLength = dashLength;\n state.dashTexture({\n channels: 1,\n data: dashData,\n width: dashData.length,\n height: 1,\n mag: \"linear\",\n min: \"linear\"\n }, 0, 0);\n }\n if (o.color) {\n let count = state.count;\n let colors = o.color;\n if (!colors) colors = \"transparent\";\n let colorData = new Uint8Array(count * 4 + 4);\n if (!Array.isArray(colors) || typeof colors[0] === \"number\") {\n let c = rgba3(colors, \"uint8\");\n for (let i2 = 0; i2 < count + 1; i2++) {\n colorData.set(c, i2 * 4);\n }\n } else {\n for (let i2 = 0; i2 < count; i2++) {\n let c = rgba3(colors[i2], \"uint8\");\n colorData.set(c, i2 * 4);\n }\n colorData.set(rgba3(colors[0], \"uint8\"), count * 4);\n }\n state.colorBuffer({\n usage: \"dynamic\",\n type: \"uint8\",\n data: colorData\n });\n }\n });\n if (options.length < this.passes.length) {\n for (let i = options.length; i < this.passes.length; i++) {\n let pass = this.passes[i];\n if (!pass) continue;\n pass.colorBuffer.destroy();\n pass.positionBuffer.destroy();\n pass.dashTexture.destroy();\n }\n this.passes.length = options.length;\n }\n let passes = [];\n for (let i = 0; i < this.passes.length; i++) {\n if (this.passes[i] !== null) passes.push(this.passes[i]);\n }\n this.passes = passes;\n return this;\n };\n Line2D.prototype.destroy = function() {\n this.passes.forEach((pass) => {\n pass.colorBuffer.destroy();\n pass.positionBuffer.destroy();\n pass.dashTexture.destroy();\n });\n this.passes.length = 0;\n return this;\n };\n }\n });\n\n // node_modules/regl-error2d/index.js\n var require_regl_error2d = __commonJS({\n \"node_modules/regl-error2d/index.js\"(exports, module) {\n \"use strict\";\n var getBounds = require_array_bounds();\n var rgba3 = require_color_normalize();\n var updateDiff = require_update_diff();\n var pick = require_pick_by_alias();\n var extend2 = require_object_assign();\n var flatten = require_flatten_vertex_data();\n var { float32, fract32 } = require_to_float32();\n module.exports = Error2D;\n var WEIGHTS = [\n //direction, lineWidth shift, capSize shift\n // x-error bar\n [1, 0, 0, 1, 0, 0],\n [1, 0, 0, -1, 0, 0],\n [-1, 0, 0, -1, 0, 0],\n [-1, 0, 0, -1, 0, 0],\n [-1, 0, 0, 1, 0, 0],\n [1, 0, 0, 1, 0, 0],\n // x-error right cap\n [1, 0, -1, 0, 0, 1],\n [1, 0, -1, 0, 0, -1],\n [1, 0, 1, 0, 0, -1],\n [1, 0, 1, 0, 0, -1],\n [1, 0, 1, 0, 0, 1],\n [1, 0, -1, 0, 0, 1],\n // x-error left cap\n [-1, 0, -1, 0, 0, 1],\n [-1, 0, -1, 0, 0, -1],\n [-1, 0, 1, 0, 0, -1],\n [-1, 0, 1, 0, 0, -1],\n [-1, 0, 1, 0, 0, 1],\n [-1, 0, -1, 0, 0, 1],\n // y-error bar\n [0, 1, 1, 0, 0, 0],\n [0, 1, -1, 0, 0, 0],\n [0, -1, -1, 0, 0, 0],\n [0, -1, -1, 0, 0, 0],\n [0, 1, 1, 0, 0, 0],\n [0, -1, 1, 0, 0, 0],\n // y-error top cap\n [0, 1, 0, -1, 1, 0],\n [0, 1, 0, -1, -1, 0],\n [0, 1, 0, 1, -1, 0],\n [0, 1, 0, 1, 1, 0],\n [0, 1, 0, -1, 1, 0],\n [0, 1, 0, 1, -1, 0],\n // y-error bottom cap\n [0, -1, 0, -1, 1, 0],\n [0, -1, 0, -1, -1, 0],\n [0, -1, 0, 1, -1, 0],\n [0, -1, 0, 1, 1, 0],\n [0, -1, 0, -1, 1, 0],\n [0, -1, 0, 1, -1, 0]\n ];\n function Error2D(regl, options) {\n if (typeof regl === \"function\") {\n if (!options) options = {};\n options.regl = regl;\n } else {\n options = regl;\n }\n if (options.length) options.positions = options;\n regl = options.regl;\n if (!regl.hasExtension(\"ANGLE_instanced_arrays\")) {\n throw Error(\"regl-error2d: `ANGLE_instanced_arrays` extension should be enabled\");\n }\n let gl2 = regl._gl, drawErrors, positionBuffer, positionFractBuffer, colorBuffer, errorBuffer, meshBuffer, defaults = {\n color: \"black\",\n capSize: 5,\n lineWidth: 1,\n opacity: 1,\n viewport: null,\n range: null,\n offset: 0,\n count: 0,\n bounds: null,\n positions: [],\n errors: []\n }, groups = [];\n colorBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"uint8\",\n data: new Uint8Array(0)\n });\n positionBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array(0)\n });\n positionFractBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array(0)\n });\n errorBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array(0)\n });\n meshBuffer = regl.buffer({\n usage: \"static\",\n type: \"float\",\n data: WEIGHTS\n });\n update(options);\n drawErrors = regl({\n vert: `\n\t\tprecision highp float;\n\n\t\tattribute vec2 position, positionFract;\n\t\tattribute vec4 error;\n\t\tattribute vec4 color;\n\n\t\tattribute vec2 direction, lineOffset, capOffset;\n\n\t\tuniform vec4 viewport;\n\t\tuniform float lineWidth, capSize;\n\t\tuniform vec2 scale, scaleFract, translate, translateFract;\n\n\t\tvarying vec4 fragColor;\n\n\t\tvoid main() {\n\t\t\tfragColor = color / 255.;\n\n\t\t\tvec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;\n\n\t\t\tvec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;\n\n\t\t\tvec2 position = position + dxy;\n\n\t\t\tvec2 pos = (position + translate) * scale\n\t\t\t\t+ (positionFract + translateFract) * scale\n\t\t\t\t+ (position + translate) * scaleFract\n\t\t\t\t+ (positionFract + translateFract) * scaleFract;\n\n\t\t\tpos += pixelOffset / viewport.zw;\n\n\t\t\tgl_Position = vec4(pos * 2. - 1., 0, 1);\n\t\t}\n\t\t`,\n frag: `\n\t\tprecision highp float;\n\n\t\tvarying vec4 fragColor;\n\n\t\tuniform float opacity;\n\n\t\tvoid main() {\n\t\t\tgl_FragColor = fragColor;\n\t\t\tgl_FragColor.a *= opacity;\n\t\t}\n\t\t`,\n uniforms: {\n range: regl.prop(\"range\"),\n lineWidth: regl.prop(\"lineWidth\"),\n capSize: regl.prop(\"capSize\"),\n opacity: regl.prop(\"opacity\"),\n scale: regl.prop(\"scale\"),\n translate: regl.prop(\"translate\"),\n scaleFract: regl.prop(\"scaleFract\"),\n translateFract: regl.prop(\"translateFract\"),\n viewport: (ctx, prop) => [prop.viewport.x, prop.viewport.y, ctx.viewportWidth, ctx.viewportHeight]\n },\n attributes: {\n //dynamic attributes\n color: {\n buffer: colorBuffer,\n offset: (ctx, prop) => prop.offset * 4,\n divisor: 1\n },\n position: {\n buffer: positionBuffer,\n offset: (ctx, prop) => prop.offset * 8,\n divisor: 1\n },\n positionFract: {\n buffer: positionFractBuffer,\n offset: (ctx, prop) => prop.offset * 8,\n divisor: 1\n },\n error: {\n buffer: errorBuffer,\n offset: (ctx, prop) => prop.offset * 16,\n divisor: 1\n },\n //static attributes\n direction: {\n buffer: meshBuffer,\n stride: 24,\n offset: 0\n },\n lineOffset: {\n buffer: meshBuffer,\n stride: 24,\n offset: 8\n },\n capOffset: {\n buffer: meshBuffer,\n stride: 24,\n offset: 16\n }\n },\n primitive: \"triangles\",\n blend: {\n enable: true,\n color: [0, 0, 0, 0],\n equation: {\n rgb: \"add\",\n alpha: \"add\"\n },\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\"\n }\n },\n depth: {\n enable: false\n },\n scissor: {\n enable: true,\n box: regl.prop(\"viewport\")\n },\n viewport: regl.prop(\"viewport\"),\n stencil: false,\n instances: regl.prop(\"count\"),\n count: WEIGHTS.length\n });\n extend2(error2d, {\n update,\n draw,\n destroy,\n regl,\n gl: gl2,\n canvas: gl2.canvas,\n groups\n });\n return error2d;\n function error2d(opts) {\n if (opts) {\n update(opts);\n } else if (opts === null) {\n destroy();\n }\n draw();\n }\n function draw(options2) {\n if (typeof options2 === \"number\") return drawGroup(options2);\n if (options2 && !Array.isArray(options2)) options2 = [options2];\n regl._refresh();\n groups.forEach((s, i) => {\n if (!s) return;\n if (options2) {\n if (!options2[i]) s.draw = false;\n else s.draw = true;\n }\n if (!s.draw) {\n s.draw = true;\n return;\n }\n drawGroup(i);\n });\n }\n function drawGroup(s) {\n if (typeof s === \"number\") s = groups[s];\n if (s == null) return;\n if (!(s && s.count && s.color && s.opacity && s.positions && s.positions.length > 1)) return;\n s.scaleRatio = [\n s.scale[0] * s.viewport.width,\n s.scale[1] * s.viewport.height\n ];\n drawErrors(s);\n if (s.after) s.after(s);\n }\n function update(options2) {\n if (!options2) return;\n if (options2.length != null) {\n if (typeof options2[0] === \"number\") options2 = [{ positions: options2 }];\n } else if (!Array.isArray(options2)) options2 = [options2];\n let pointCount = 0, errorCount = 0;\n error2d.groups = groups = options2.map((options3, i) => {\n let group = groups[i];\n if (!options3) return group;\n else if (typeof options3 === \"function\") options3 = { after: options3 };\n else if (typeof options3[0] === \"number\") options3 = { positions: options3 };\n options3 = pick(options3, {\n color: \"color colors fill\",\n capSize: \"capSize cap capsize cap-size\",\n lineWidth: \"lineWidth line-width width line thickness\",\n opacity: \"opacity alpha\",\n range: \"range dataBox\",\n viewport: \"viewport viewBox\",\n errors: \"errors error\",\n positions: \"positions position data points\"\n });\n if (!group) {\n groups[i] = group = {\n id: i,\n scale: null,\n translate: null,\n scaleFract: null,\n translateFract: null,\n draw: true\n };\n options3 = extend2({}, defaults, options3);\n }\n updateDiff(group, options3, [{\n lineWidth: (v) => +v * 0.5,\n capSize: (v) => +v * 0.5,\n opacity: parseFloat,\n errors: (errors) => {\n errors = flatten(errors);\n errorCount += errors.length;\n return errors;\n },\n positions: (positions, state) => {\n positions = flatten(positions, \"float64\");\n state.count = Math.floor(positions.length / 2);\n state.bounds = getBounds(positions, 2);\n state.offset = pointCount;\n pointCount += state.count;\n return positions;\n }\n }, {\n color: (colors, state) => {\n let count = state.count;\n if (!colors) colors = \"transparent\";\n if (!Array.isArray(colors) || typeof colors[0] === \"number\") {\n let color2 = colors;\n colors = Array(count);\n for (let i2 = 0; i2 < count; i2++) {\n colors[i2] = color2;\n }\n }\n if (colors.length < count) throw Error(\"Not enough colors\");\n let colorData = new Uint8Array(count * 4);\n for (let i2 = 0; i2 < count; i2++) {\n let c = rgba3(colors[i2], \"uint8\");\n colorData.set(c, i2 * 4);\n }\n return colorData;\n },\n range: (range, state, options4) => {\n let bounds = state.bounds;\n if (!range) range = bounds;\n state.scale = [1 / (range[2] - range[0]), 1 / (range[3] - range[1])];\n state.translate = [-range[0], -range[1]];\n state.scaleFract = fract32(state.scale);\n state.translateFract = fract32(state.translate);\n return range;\n },\n viewport: (vp) => {\n let viewport;\n if (Array.isArray(vp)) {\n viewport = {\n x: vp[0],\n y: vp[1],\n width: vp[2] - vp[0],\n height: vp[3] - vp[1]\n };\n } else if (vp) {\n viewport = {\n x: vp.x || vp.left || 0,\n y: vp.y || vp.top || 0\n };\n if (vp.right) viewport.width = vp.right - viewport.x;\n else viewport.width = vp.w || vp.width || 0;\n if (vp.bottom) viewport.height = vp.bottom - viewport.y;\n else viewport.height = vp.h || vp.height || 0;\n } else {\n viewport = {\n x: 0,\n y: 0,\n width: gl2.drawingBufferWidth,\n height: gl2.drawingBufferHeight\n };\n }\n return viewport;\n }\n }]);\n return group;\n });\n if (pointCount || errorCount) {\n let len = groups.reduce((acc, group, i) => {\n return acc + (group ? group.count : 0);\n }, 0);\n let positionData = new Float64Array(len * 2);\n let colorData = new Uint8Array(len * 4);\n let errorData = new Float32Array(len * 4);\n groups.forEach((group, i) => {\n if (!group) return;\n let { positions, count, offset, color: color2, errors } = group;\n if (!count) return;\n colorData.set(color2, offset * 4);\n errorData.set(errors, offset * 4);\n positionData.set(positions, offset * 2);\n });\n var float_data = float32(positionData);\n positionBuffer(float_data);\n var frac_data = fract32(positionData, float_data);\n positionFractBuffer(frac_data);\n colorBuffer(colorData);\n errorBuffer(errorData);\n }\n }\n function destroy() {\n positionBuffer.destroy();\n positionFractBuffer.destroy();\n colorBuffer.destroy();\n errorBuffer.destroy();\n meshBuffer.destroy();\n }\n }\n }\n });\n\n // node_modules/unquote/index.js\n var require_unquote = __commonJS({\n \"node_modules/unquote/index.js\"(exports, module) {\n var reg = /[\\'\\\"]/;\n module.exports = function unquote(str) {\n if (!str) {\n return \"\";\n }\n if (reg.test(str.charAt(0))) {\n str = str.substr(1);\n }\n if (reg.test(str.charAt(str.length - 1))) {\n str = str.substr(0, str.length - 1);\n }\n return str;\n };\n }\n });\n\n // node_modules/css-global-keywords/index.json\n var require_css_global_keywords = __commonJS({\n \"node_modules/css-global-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-system-font-keywords/index.json\n var require_css_system_font_keywords = __commonJS({\n \"node_modules/css-system-font-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-font-weight-keywords/index.json\n var require_css_font_weight_keywords = __commonJS({\n \"node_modules/css-font-weight-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-font-style-keywords/index.json\n var require_css_font_style_keywords = __commonJS({\n \"node_modules/css-font-style-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-font-stretch-keywords/index.json\n var require_css_font_stretch_keywords = __commonJS({\n \"node_modules/css-font-stretch-keywords/index.json\"() {\n }\n });\n\n // node_modules/parenthesis/index.js\n var require_parenthesis = __commonJS({\n \"node_modules/parenthesis/index.js\"(exports, module) {\n \"use strict\";\n function parse2(str, opts) {\n if (typeof str !== \"string\") return [str];\n var res = [str];\n if (typeof opts === \"string\" || Array.isArray(opts)) {\n opts = { brackets: opts };\n } else if (!opts) opts = {};\n var brackets = opts.brackets ? Array.isArray(opts.brackets) ? opts.brackets : [opts.brackets] : [\"{}\", \"[]\", \"()\"];\n var escape2 = opts.escape || \"___\";\n var flat = !!opts.flat;\n brackets.forEach(function(bracket) {\n var pRE = new RegExp([\"\\\\\", bracket[0], \"[^\\\\\", bracket[0], \"\\\\\", bracket[1], \"]*\\\\\", bracket[1]].join(\"\"));\n var ids = [];\n function replaceToken(token, idx, str2) {\n var refId = res.push(token.slice(bracket[0].length, -bracket[1].length)) - 1;\n ids.push(refId);\n return escape2 + refId + escape2;\n }\n res.forEach(function(str2, i) {\n var prevStr;\n var a = 0;\n while (str2 != prevStr) {\n prevStr = str2;\n str2 = str2.replace(pRE, replaceToken);\n if (a++ > 1e4) throw Error(\"References have circular dependency. Please, check them.\");\n }\n res[i] = str2;\n });\n ids = ids.reverse();\n res = res.map(function(str2) {\n ids.forEach(function(id) {\n str2 = str2.replace(new RegExp(\"(\\\\\" + escape2 + id + \"\\\\\" + escape2 + \")\", \"g\"), bracket[0] + \"$1\" + bracket[1]);\n });\n return str2;\n });\n });\n var re = new RegExp(\"\\\\\" + escape2 + \"([0-9]+)\\\\\" + escape2);\n function nest(str2, refs, escape3) {\n var res2 = [], match;\n var a = 0;\n while (match = re.exec(str2)) {\n if (a++ > 1e4) throw Error(\"Circular references in parenthesis\");\n res2.push(str2.slice(0, match.index));\n res2.push(nest(refs[match[1]], refs));\n str2 = str2.slice(match.index + match[0].length);\n }\n res2.push(str2);\n return res2;\n }\n return flat ? res : nest(res[0], res);\n }\n function stringify(arg, opts) {\n if (opts && opts.flat) {\n var escape2 = opts && opts.escape || \"___\";\n var str = arg[0], prevStr;\n if (!str) return \"\";\n var re = new RegExp(\"\\\\\" + escape2 + \"([0-9]+)\\\\\" + escape2);\n var a = 0;\n while (str != prevStr) {\n if (a++ > 1e4) throw Error(\"Circular references in \" + arg);\n prevStr = str;\n str = str.replace(re, replaceRef);\n }\n return str;\n }\n return arg.reduce(function f(prev, curr) {\n if (Array.isArray(curr)) {\n curr = curr.reduce(f, \"\");\n }\n return prev + curr;\n }, \"\");\n function replaceRef(match, idx) {\n if (arg[idx] == null) throw Error(\"Reference \" + idx + \"is undefined\");\n return arg[idx];\n }\n }\n function parenthesis(arg, opts) {\n if (Array.isArray(arg)) {\n return stringify(arg, opts);\n } else {\n return parse2(arg, opts);\n }\n }\n parenthesis.parse = parse2;\n parenthesis.stringify = stringify;\n module.exports = parenthesis;\n }\n });\n\n // node_modules/string-split-by/index.js\n var require_string_split_by = __commonJS({\n \"node_modules/string-split-by/index.js\"(exports, module) {\n \"use strict\";\n var paren = require_parenthesis();\n module.exports = function splitBy(string, separator, o) {\n if (string == null) throw Error(\"First argument should be a string\");\n if (separator == null) throw Error(\"Separator should be a string or a RegExp\");\n if (!o) o = {};\n else if (typeof o === \"string\" || Array.isArray(o)) {\n o = { ignore: o };\n }\n if (o.escape == null) o.escape = true;\n if (o.ignore == null) o.ignore = [\"[]\", \"()\", \"{}\", \"<>\", '\"\"', \"''\", \"``\", \"\\u201C\\u201D\", \"\\xAB\\xBB\"];\n else {\n if (typeof o.ignore === \"string\") {\n o.ignore = [o.ignore];\n }\n o.ignore = o.ignore.map(function(pair) {\n if (pair.length === 1) pair = pair + pair;\n return pair;\n });\n }\n var tokens = paren.parse(string, { flat: true, brackets: o.ignore });\n var str = tokens[0];\n var parts = str.split(separator);\n if (o.escape) {\n var cleanParts = [];\n for (var i = 0; i < parts.length; i++) {\n var prev = parts[i];\n var part = parts[i + 1];\n if (prev[prev.length - 1] === \"\\\\\" && prev[prev.length - 2] !== \"\\\\\") {\n cleanParts.push(prev + separator + part);\n i++;\n } else {\n cleanParts.push(prev);\n }\n }\n parts = cleanParts;\n }\n for (var i = 0; i < parts.length; i++) {\n tokens[0] = parts[i];\n parts[i] = paren.stringify(tokens, { flat: true });\n }\n return parts;\n };\n }\n });\n\n // node_modules/css-font-size-keywords/index.json\n var require_css_font_size_keywords = __commonJS({\n \"node_modules/css-font-size-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-font/lib/util.js\n var require_util3 = __commonJS({\n \"node_modules/css-font/lib/util.js\"(exports, module) {\n \"use strict\";\n var sizes = require_css_font_size_keywords();\n module.exports = {\n isSize: function isSize(value) {\n return /^[\\d\\.]/.test(value) || value.indexOf(\"/\") !== -1 || sizes.indexOf(value) !== -1;\n }\n };\n }\n });\n\n // node_modules/css-font/parse.js\n var require_parse = __commonJS({\n \"node_modules/css-font/parse.js\"(exports, module) {\n \"use strict\";\n var unquote = require_unquote();\n var globalKeywords = require_css_global_keywords();\n var systemFontKeywords = require_css_system_font_keywords();\n var fontWeightKeywords = require_css_font_weight_keywords();\n var fontStyleKeywords = require_css_font_style_keywords();\n var fontStretchKeywords = require_css_font_stretch_keywords();\n var splitBy = require_string_split_by();\n var isSize = require_util3().isSize;\n module.exports = parseFont;\n var cache = parseFont.cache = {};\n function parseFont(value) {\n if (typeof value !== \"string\") throw new Error(\"Font argument must be a string.\");\n if (cache[value]) return cache[value];\n if (value === \"\") {\n throw new Error(\"Cannot parse an empty string.\");\n }\n if (systemFontKeywords.indexOf(value) !== -1) {\n return cache[value] = { system: value };\n }\n var font = {\n style: \"normal\",\n variant: \"normal\",\n weight: \"normal\",\n stretch: \"normal\",\n lineHeight: \"normal\",\n size: \"1rem\",\n family: [\"serif\"]\n };\n var tokens = splitBy(value, /\\s+/);\n var token;\n while (token = tokens.shift()) {\n if (globalKeywords.indexOf(token) !== -1) {\n [\"style\", \"variant\", \"weight\", \"stretch\"].forEach(function(prop) {\n font[prop] = token;\n });\n return cache[value] = font;\n }\n if (fontStyleKeywords.indexOf(token) !== -1) {\n font.style = token;\n continue;\n }\n if (token === \"normal\" || token === \"small-caps\") {\n font.variant = token;\n continue;\n }\n if (fontStretchKeywords.indexOf(token) !== -1) {\n font.stretch = token;\n continue;\n }\n if (fontWeightKeywords.indexOf(token) !== -1) {\n font.weight = token;\n continue;\n }\n if (isSize(token)) {\n var parts = splitBy(token, \"/\");\n font.size = parts[0];\n if (parts[1] != null) {\n font.lineHeight = parseLineHeight(parts[1]);\n } else if (tokens[0] === \"/\") {\n tokens.shift();\n font.lineHeight = parseLineHeight(tokens.shift());\n }\n if (!tokens.length) {\n throw new Error(\"Missing required font-family.\");\n }\n font.family = splitBy(tokens.join(\" \"), /\\s*,\\s*/).map(unquote);\n return cache[value] = font;\n }\n throw new Error(\"Unknown or unsupported font token: \" + token);\n }\n throw new Error(\"Missing required font-size.\");\n }\n function parseLineHeight(value) {\n var parsed = parseFloat(value);\n if (parsed.toString() === value) {\n return parsed;\n }\n return value;\n }\n }\n });\n\n // node_modules/css-font/stringify.js\n var require_stringify = __commonJS({\n \"node_modules/css-font/stringify.js\"(exports, module) {\n \"use strict\";\n var pick = require_pick_by_alias();\n var isSize = require_util3().isSize;\n var globals = a2o(require_css_global_keywords());\n var systems = a2o(require_css_system_font_keywords());\n var weights = a2o(require_css_font_weight_keywords());\n var styles = a2o(require_css_font_style_keywords());\n var stretches = a2o(require_css_font_stretch_keywords());\n var variants = { \"normal\": 1, \"small-caps\": 1 };\n var fams = {\n \"serif\": 1,\n \"sans-serif\": 1,\n \"monospace\": 1,\n \"cursive\": 1,\n \"fantasy\": 1,\n \"system-ui\": 1\n };\n var defaults = {\n style: \"normal\",\n variant: \"normal\",\n weight: \"normal\",\n stretch: \"normal\",\n size: \"1rem\",\n lineHeight: \"normal\",\n family: \"serif\"\n };\n module.exports = function stringifyFont(o) {\n o = pick(o, {\n style: \"style fontstyle fontStyle font-style slope distinction\",\n variant: \"variant font-variant fontVariant fontvariant var capitalization\",\n weight: \"weight w font-weight fontWeight fontweight\",\n stretch: \"stretch font-stretch fontStretch fontstretch width\",\n size: \"size s font-size fontSize fontsize height em emSize\",\n lineHeight: \"lh line-height lineHeight lineheight leading\",\n family: \"font family fontFamily font-family fontfamily type typeface face\",\n system: \"system reserved default global\"\n });\n if (o.system) {\n if (o.system) verify(o.system, systems);\n return o.system;\n }\n verify(o.style, styles);\n verify(o.variant, variants);\n verify(o.weight, weights);\n verify(o.stretch, stretches);\n if (o.size == null) o.size = defaults.size;\n if (typeof o.size === \"number\") o.size += \"px\";\n if (!isSize) throw Error(\"Bad size value `\" + o.size + \"`\");\n if (!o.family) o.family = defaults.family;\n if (Array.isArray(o.family)) {\n if (!o.family.length) o.family = [defaults.family];\n o.family = o.family.map(function(f) {\n return fams[f] ? f : '\"' + f + '\"';\n }).join(\", \");\n }\n var result = [];\n result.push(o.style);\n if (o.variant !== o.style) result.push(o.variant);\n if (o.weight !== o.variant && o.weight !== o.style) result.push(o.weight);\n if (o.stretch !== o.weight && o.stretch !== o.variant && o.stretch !== o.style) result.push(o.stretch);\n result.push(o.size + (o.lineHeight == null || o.lineHeight === \"normal\" || o.lineHeight + \"\" === \"1\" ? \"\" : \"/\" + o.lineHeight));\n result.push(o.family);\n return result.filter(Boolean).join(\" \");\n };\n function verify(value, values) {\n if (value && !values[value] && !globals[value]) throw Error(\"Unknown keyword `\" + value + \"`\");\n return value;\n }\n function a2o(a) {\n var o = {};\n for (var i = 0; i < a.length; i++) {\n o[a[i]] = 1;\n }\n return o;\n }\n }\n });\n\n // node_modules/css-font/index.js\n var require_css_font = __commonJS({\n \"node_modules/css-font/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n parse: require_parse(),\n stringify: require_stringify()\n };\n }\n });\n\n // node_modules/regl/dist/regl.unchecked.js\n var require_regl_unchecked = __commonJS({\n \"node_modules/regl/dist/regl.unchecked.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? module.exports = factory() : typeof define === \"function\" && false ? define(factory) : global2.createREGL = factory();\n })(exports, function() {\n \"use strict\";\n var extend2 = function(base, opts) {\n var keys = Object.keys(opts);\n for (var i = 0; i < keys.length; ++i) {\n base[keys[i]] = opts[keys[i]];\n }\n return base;\n };\n var VARIABLE_COUNTER = 0;\n var DYN_FUNC = 0;\n var DYN_CONSTANT = 5;\n var DYN_ARRAY = 6;\n function DynamicVariable(type, data) {\n this.id = VARIABLE_COUNTER++;\n this.type = type;\n this.data = data;\n }\n function escapeStr(str) {\n return str.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n }\n function splitParts(str) {\n if (str.length === 0) {\n return [];\n }\n var firstChar = str.charAt(0);\n var lastChar = str.charAt(str.length - 1);\n if (str.length > 1 && firstChar === lastChar && (firstChar === '\"' || firstChar === \"'\")) {\n return ['\"' + escapeStr(str.substr(1, str.length - 2)) + '\"'];\n }\n var parts = /\\[(false|true|null|\\d+|'[^']*'|\"[^\"]*\")\\]/.exec(str);\n if (parts) {\n return splitParts(str.substr(0, parts.index)).concat(splitParts(parts[1])).concat(splitParts(str.substr(parts.index + parts[0].length)));\n }\n var subparts = str.split(\".\");\n if (subparts.length === 1) {\n return ['\"' + escapeStr(str) + '\"'];\n }\n var result = [];\n for (var i = 0; i < subparts.length; ++i) {\n result = result.concat(splitParts(subparts[i]));\n }\n return result;\n }\n function toAccessorString(str) {\n return \"[\" + splitParts(str).join(\"][\") + \"]\";\n }\n function defineDynamic(type, data) {\n return new DynamicVariable(type, toAccessorString(data + \"\"));\n }\n function isDynamic(x) {\n return typeof x === \"function\" && !x._reglType || x instanceof DynamicVariable;\n }\n function unbox(x, path) {\n if (typeof x === \"function\") {\n return new DynamicVariable(DYN_FUNC, x);\n } else if (typeof x === \"number\" || typeof x === \"boolean\") {\n return new DynamicVariable(DYN_CONSTANT, x);\n } else if (Array.isArray(x)) {\n return new DynamicVariable(DYN_ARRAY, x.map(function(y, i) {\n return unbox(y, path + \"[\" + i + \"]\");\n }));\n } else if (x instanceof DynamicVariable) {\n return x;\n }\n }\n var dynamic = {\n DynamicVariable,\n define: defineDynamic,\n isDynamic,\n unbox,\n accessor: toAccessorString\n };\n var raf = {\n next: typeof requestAnimationFrame === \"function\" ? function(cb) {\n return requestAnimationFrame(cb);\n } : function(cb) {\n return setTimeout(cb, 16);\n },\n cancel: typeof cancelAnimationFrame === \"function\" ? function(raf2) {\n return cancelAnimationFrame(raf2);\n } : clearTimeout\n };\n var clock = typeof performance !== \"undefined\" && performance.now ? function() {\n return performance.now();\n } : function() {\n return +/* @__PURE__ */ new Date();\n };\n function createStringStore() {\n var stringIds = { \"\": 0 };\n var stringValues = [\"\"];\n return {\n id: function(str) {\n var result = stringIds[str];\n if (result) {\n return result;\n }\n result = stringIds[str] = stringValues.length;\n stringValues.push(str);\n return result;\n },\n str: function(id) {\n return stringValues[id];\n }\n };\n }\n function createCanvas(element, onDone, pixelRatio) {\n var canvas = document.createElement(\"canvas\");\n extend2(canvas.style, {\n border: 0,\n margin: 0,\n padding: 0,\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\"\n });\n element.appendChild(canvas);\n if (element === document.body) {\n canvas.style.position = \"absolute\";\n extend2(element.style, {\n margin: 0,\n padding: 0\n });\n }\n function resize() {\n var w = window.innerWidth;\n var h = window.innerHeight;\n if (element !== document.body) {\n var bounds = canvas.getBoundingClientRect();\n w = bounds.right - bounds.left;\n h = bounds.bottom - bounds.top;\n }\n canvas.width = pixelRatio * w;\n canvas.height = pixelRatio * h;\n }\n var resizeObserver;\n if (element !== document.body && typeof ResizeObserver === \"function\") {\n resizeObserver = new ResizeObserver(function() {\n setTimeout(resize);\n });\n resizeObserver.observe(element);\n } else {\n window.addEventListener(\"resize\", resize, false);\n }\n function onDestroy() {\n if (resizeObserver) {\n resizeObserver.disconnect();\n } else {\n window.removeEventListener(\"resize\", resize);\n }\n element.removeChild(canvas);\n }\n resize();\n return {\n canvas,\n onDestroy\n };\n }\n function createContext(canvas, contextAttributes) {\n function get(name2) {\n try {\n return canvas.getContext(name2, contextAttributes);\n } catch (e) {\n return null;\n }\n }\n return get(\"webgl\") || get(\"experimental-webgl\") || get(\"webgl-experimental\");\n }\n function isHTMLElement(obj) {\n return typeof obj.nodeName === \"string\" && typeof obj.appendChild === \"function\" && typeof obj.getBoundingClientRect === \"function\";\n }\n function isWebGLContext(obj) {\n return typeof obj.drawArrays === \"function\" || typeof obj.drawElements === \"function\";\n }\n function parseExtensions(input) {\n if (typeof input === \"string\") {\n return input.split();\n }\n return input;\n }\n function getElement(desc) {\n if (typeof desc === \"string\") {\n return document.querySelector(desc);\n }\n return desc;\n }\n function parseArgs(args_) {\n var args = args_ || {};\n var element, container, canvas, gl2;\n var contextAttributes = {};\n var extensions = [];\n var optionalExtensions = [];\n var pixelRatio = typeof window === \"undefined\" ? 1 : window.devicePixelRatio;\n var profile = false;\n var cachedCode = {};\n var onDone = function(err) {\n if (err) {\n }\n };\n var onDestroy = function() {\n };\n if (typeof args === \"string\") {\n element = document.querySelector(args);\n } else if (typeof args === \"object\") {\n if (isHTMLElement(args)) {\n element = args;\n } else if (isWebGLContext(args)) {\n gl2 = args;\n canvas = gl2.canvas;\n } else {\n if (\"gl\" in args) {\n gl2 = args.gl;\n } else if (\"canvas\" in args) {\n canvas = getElement(args.canvas);\n } else if (\"container\" in args) {\n container = getElement(args.container);\n }\n if (\"attributes\" in args) {\n contextAttributes = args.attributes;\n }\n if (\"extensions\" in args) {\n extensions = parseExtensions(args.extensions);\n }\n if (\"optionalExtensions\" in args) {\n optionalExtensions = parseExtensions(args.optionalExtensions);\n }\n if (\"onDone\" in args) {\n onDone = args.onDone;\n }\n if (\"profile\" in args) {\n profile = !!args.profile;\n }\n if (\"pixelRatio\" in args) {\n pixelRatio = +args.pixelRatio;\n }\n if (\"cachedCode\" in args) {\n cachedCode = args.cachedCode;\n }\n }\n } else {\n }\n if (element) {\n if (element.nodeName.toLowerCase() === \"canvas\") {\n canvas = element;\n } else {\n container = element;\n }\n }\n if (!gl2) {\n if (!canvas) {\n var result = createCanvas(container || document.body, onDone, pixelRatio);\n if (!result) {\n return null;\n }\n canvas = result.canvas;\n onDestroy = result.onDestroy;\n }\n if (contextAttributes.premultipliedAlpha === void 0) contextAttributes.premultipliedAlpha = true;\n gl2 = createContext(canvas, contextAttributes);\n }\n if (!gl2) {\n onDestroy();\n onDone(\"webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org\");\n return null;\n }\n return {\n gl: gl2,\n canvas,\n container,\n extensions,\n optionalExtensions,\n pixelRatio,\n profile,\n cachedCode,\n onDone,\n onDestroy\n };\n }\n function createExtensionCache(gl2, config) {\n var extensions = {};\n function tryLoadExtension(name_) {\n var name3 = name_.toLowerCase();\n var ext;\n try {\n ext = extensions[name3] = gl2.getExtension(name3);\n } catch (e) {\n }\n return !!ext;\n }\n for (var i = 0; i < config.extensions.length; ++i) {\n var name2 = config.extensions[i];\n if (!tryLoadExtension(name2)) {\n config.onDestroy();\n config.onDone('\"' + name2 + '\" extension is not supported by the current WebGL context, try upgrading your system or a different browser');\n return null;\n }\n }\n config.optionalExtensions.forEach(tryLoadExtension);\n return {\n extensions,\n restore: function() {\n Object.keys(extensions).forEach(function(name3) {\n if (extensions[name3] && !tryLoadExtension(name3)) {\n throw new Error(\"(regl): error restoring extension \" + name3);\n }\n });\n }\n };\n }\n function loop(n, f) {\n var result = Array(n);\n for (var i = 0; i < n; ++i) {\n result[i] = f(i);\n }\n return result;\n }\n var GL_BYTE = 5120;\n var GL_UNSIGNED_BYTE$1 = 5121;\n var GL_SHORT = 5122;\n var GL_UNSIGNED_SHORT = 5123;\n var GL_INT = 5124;\n var GL_UNSIGNED_INT = 5125;\n var GL_FLOAT$1 = 5126;\n function nextPow16(v) {\n for (var i = 16; i <= 1 << 28; i *= 16) {\n if (v <= i) {\n return i;\n }\n }\n return 0;\n }\n function log2(v) {\n var r, shift;\n r = (v > 65535) << 4;\n v >>>= r;\n shift = (v > 255) << 3;\n v >>>= shift;\n r |= shift;\n shift = (v > 15) << 2;\n v >>>= shift;\n r |= shift;\n shift = (v > 3) << 1;\n v >>>= shift;\n r |= shift;\n return r | v >> 1;\n }\n function createPool() {\n var bufferPool = loop(8, function() {\n return [];\n });\n function alloc(n) {\n var sz = nextPow16(n);\n var bin = bufferPool[log2(sz) >> 2];\n if (bin.length > 0) {\n return bin.pop();\n }\n return new ArrayBuffer(sz);\n }\n function free(buf) {\n bufferPool[log2(buf.byteLength) >> 2].push(buf);\n }\n function allocType(type, n) {\n var result = null;\n switch (type) {\n case GL_BYTE:\n result = new Int8Array(alloc(n), 0, n);\n break;\n case GL_UNSIGNED_BYTE$1:\n result = new Uint8Array(alloc(n), 0, n);\n break;\n case GL_SHORT:\n result = new Int16Array(alloc(2 * n), 0, n);\n break;\n case GL_UNSIGNED_SHORT:\n result = new Uint16Array(alloc(2 * n), 0, n);\n break;\n case GL_INT:\n result = new Int32Array(alloc(4 * n), 0, n);\n break;\n case GL_UNSIGNED_INT:\n result = new Uint32Array(alloc(4 * n), 0, n);\n break;\n case GL_FLOAT$1:\n result = new Float32Array(alloc(4 * n), 0, n);\n break;\n default:\n return null;\n }\n if (result.length !== n) {\n return result.subarray(0, n);\n }\n return result;\n }\n function freeType(array) {\n free(array.buffer);\n }\n return {\n alloc,\n free,\n allocType,\n freeType\n };\n }\n var pool = createPool();\n pool.zero = createPool();\n var GL_SUBPIXEL_BITS = 3408;\n var GL_RED_BITS = 3410;\n var GL_GREEN_BITS = 3411;\n var GL_BLUE_BITS = 3412;\n var GL_ALPHA_BITS = 3413;\n var GL_DEPTH_BITS = 3414;\n var GL_STENCIL_BITS = 3415;\n var GL_ALIASED_POINT_SIZE_RANGE = 33901;\n var GL_ALIASED_LINE_WIDTH_RANGE = 33902;\n var GL_MAX_TEXTURE_SIZE = 3379;\n var GL_MAX_VIEWPORT_DIMS = 3386;\n var GL_MAX_VERTEX_ATTRIBS = 34921;\n var GL_MAX_VERTEX_UNIFORM_VECTORS = 36347;\n var GL_MAX_VARYING_VECTORS = 36348;\n var GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;\n var GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;\n var GL_MAX_TEXTURE_IMAGE_UNITS = 34930;\n var GL_MAX_FRAGMENT_UNIFORM_VECTORS = 36349;\n var GL_MAX_CUBE_MAP_TEXTURE_SIZE = 34076;\n var GL_MAX_RENDERBUFFER_SIZE = 34024;\n var GL_VENDOR = 7936;\n var GL_RENDERER = 7937;\n var GL_VERSION = 7938;\n var GL_SHADING_LANGUAGE_VERSION = 35724;\n var GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047;\n var GL_MAX_COLOR_ATTACHMENTS_WEBGL = 36063;\n var GL_MAX_DRAW_BUFFERS_WEBGL = 34852;\n var GL_TEXTURE_2D = 3553;\n var GL_TEXTURE_CUBE_MAP = 34067;\n var GL_TEXTURE_CUBE_MAP_POSITIVE_X = 34069;\n var GL_TEXTURE0 = 33984;\n var GL_RGBA = 6408;\n var GL_FLOAT = 5126;\n var GL_UNSIGNED_BYTE = 5121;\n var GL_FRAMEBUFFER = 36160;\n var GL_FRAMEBUFFER_COMPLETE = 36053;\n var GL_COLOR_ATTACHMENT0 = 36064;\n var GL_COLOR_BUFFER_BIT$1 = 16384;\n var wrapLimits = function(gl2, extensions) {\n var maxAnisotropic = 1;\n if (extensions.ext_texture_filter_anisotropic) {\n maxAnisotropic = gl2.getParameter(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n }\n var maxDrawbuffers = 1;\n var maxColorAttachments = 1;\n if (extensions.webgl_draw_buffers) {\n maxDrawbuffers = gl2.getParameter(GL_MAX_DRAW_BUFFERS_WEBGL);\n maxColorAttachments = gl2.getParameter(GL_MAX_COLOR_ATTACHMENTS_WEBGL);\n }\n var readFloat = !!extensions.oes_texture_float;\n if (readFloat) {\n var readFloatTexture = gl2.createTexture();\n gl2.bindTexture(GL_TEXTURE_2D, readFloatTexture);\n gl2.texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_FLOAT, null);\n var fbo = gl2.createFramebuffer();\n gl2.bindFramebuffer(GL_FRAMEBUFFER, fbo);\n gl2.framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, readFloatTexture, 0);\n gl2.bindTexture(GL_TEXTURE_2D, null);\n if (gl2.checkFramebufferStatus(GL_FRAMEBUFFER) !== GL_FRAMEBUFFER_COMPLETE) readFloat = false;\n else {\n gl2.viewport(0, 0, 1, 1);\n gl2.clearColor(1, 0, 0, 1);\n gl2.clear(GL_COLOR_BUFFER_BIT$1);\n var pixels = pool.allocType(GL_FLOAT, 4);\n gl2.readPixels(0, 0, 1, 1, GL_RGBA, GL_FLOAT, pixels);\n if (gl2.getError()) readFloat = false;\n else {\n gl2.deleteFramebuffer(fbo);\n gl2.deleteTexture(readFloatTexture);\n readFloat = pixels[0] === 1;\n }\n pool.freeType(pixels);\n }\n }\n var isIE = typeof navigator !== \"undefined\" && (/MSIE/.test(navigator.userAgent) || /Trident\\//.test(navigator.appVersion) || /Edge/.test(navigator.userAgent));\n var npotTextureCube = true;\n if (!isIE) {\n var cubeTexture = gl2.createTexture();\n var data = pool.allocType(GL_UNSIGNED_BYTE, 36);\n gl2.activeTexture(GL_TEXTURE0);\n gl2.bindTexture(GL_TEXTURE_CUBE_MAP, cubeTexture);\n gl2.texImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGBA, 3, 3, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);\n pool.freeType(data);\n gl2.bindTexture(GL_TEXTURE_CUBE_MAP, null);\n gl2.deleteTexture(cubeTexture);\n npotTextureCube = !gl2.getError();\n }\n return {\n // drawing buffer bit depth\n colorBits: [\n gl2.getParameter(GL_RED_BITS),\n gl2.getParameter(GL_GREEN_BITS),\n gl2.getParameter(GL_BLUE_BITS),\n gl2.getParameter(GL_ALPHA_BITS)\n ],\n depthBits: gl2.getParameter(GL_DEPTH_BITS),\n stencilBits: gl2.getParameter(GL_STENCIL_BITS),\n subpixelBits: gl2.getParameter(GL_SUBPIXEL_BITS),\n // supported extensions\n extensions: Object.keys(extensions).filter(function(ext) {\n return !!extensions[ext];\n }),\n // max aniso samples\n maxAnisotropic,\n // max draw buffers\n maxDrawbuffers,\n maxColorAttachments,\n // point and line size ranges\n pointSizeDims: gl2.getParameter(GL_ALIASED_POINT_SIZE_RANGE),\n lineWidthDims: gl2.getParameter(GL_ALIASED_LINE_WIDTH_RANGE),\n maxViewportDims: gl2.getParameter(GL_MAX_VIEWPORT_DIMS),\n maxCombinedTextureUnits: gl2.getParameter(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n maxCubeMapSize: gl2.getParameter(GL_MAX_CUBE_MAP_TEXTURE_SIZE),\n maxRenderbufferSize: gl2.getParameter(GL_MAX_RENDERBUFFER_SIZE),\n maxTextureUnits: gl2.getParameter(GL_MAX_TEXTURE_IMAGE_UNITS),\n maxTextureSize: gl2.getParameter(GL_MAX_TEXTURE_SIZE),\n maxAttributes: gl2.getParameter(GL_MAX_VERTEX_ATTRIBS),\n maxVertexUniforms: gl2.getParameter(GL_MAX_VERTEX_UNIFORM_VECTORS),\n maxVertexTextureUnits: gl2.getParameter(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS),\n maxVaryingVectors: gl2.getParameter(GL_MAX_VARYING_VECTORS),\n maxFragmentUniforms: gl2.getParameter(GL_MAX_FRAGMENT_UNIFORM_VECTORS),\n // vendor info\n glsl: gl2.getParameter(GL_SHADING_LANGUAGE_VERSION),\n renderer: gl2.getParameter(GL_RENDERER),\n vendor: gl2.getParameter(GL_VENDOR),\n version: gl2.getParameter(GL_VERSION),\n // quirks\n readFloat,\n npotTextureCube\n };\n };\n var isTypedArray = function(x) {\n return x instanceof Uint8Array || x instanceof Uint16Array || x instanceof Uint32Array || x instanceof Int8Array || x instanceof Int16Array || x instanceof Int32Array || x instanceof Float32Array || x instanceof Float64Array || x instanceof Uint8ClampedArray;\n };\n function isNDArrayLike(obj) {\n return !!obj && typeof obj === \"object\" && Array.isArray(obj.shape) && Array.isArray(obj.stride) && typeof obj.offset === \"number\" && obj.shape.length === obj.stride.length && (Array.isArray(obj.data) || isTypedArray(obj.data));\n }\n var values = function(obj) {\n return Object.keys(obj).map(function(key) {\n return obj[key];\n });\n };\n var flattenUtils = {\n shape: arrayShape$1,\n flatten: flattenArray\n };\n function flatten1D(array, nx, out) {\n for (var i = 0; i < nx; ++i) {\n out[i] = array[i];\n }\n }\n function flatten2D(array, nx, ny, out) {\n var ptr = 0;\n for (var i = 0; i < nx; ++i) {\n var row = array[i];\n for (var j = 0; j < ny; ++j) {\n out[ptr++] = row[j];\n }\n }\n }\n function flatten3D(array, nx, ny, nz, out, ptr_) {\n var ptr = ptr_;\n for (var i = 0; i < nx; ++i) {\n var row = array[i];\n for (var j = 0; j < ny; ++j) {\n var col = row[j];\n for (var k = 0; k < nz; ++k) {\n out[ptr++] = col[k];\n }\n }\n }\n }\n function flattenRec(array, shape, level, out, ptr) {\n var stride = 1;\n for (var i = level + 1; i < shape.length; ++i) {\n stride *= shape[i];\n }\n var n = shape[level];\n if (shape.length - level === 4) {\n var nx = shape[level + 1];\n var ny = shape[level + 2];\n var nz = shape[level + 3];\n for (i = 0; i < n; ++i) {\n flatten3D(array[i], nx, ny, nz, out, ptr);\n ptr += stride;\n }\n } else {\n for (i = 0; i < n; ++i) {\n flattenRec(array[i], shape, level + 1, out, ptr);\n ptr += stride;\n }\n }\n }\n function flattenArray(array, shape, type, out_) {\n var sz = 1;\n if (shape.length) {\n for (var i = 0; i < shape.length; ++i) {\n sz *= shape[i];\n }\n } else {\n sz = 0;\n }\n var out = out_ || pool.allocType(type, sz);\n switch (shape.length) {\n case 0:\n break;\n case 1:\n flatten1D(array, shape[0], out);\n break;\n case 2:\n flatten2D(array, shape[0], shape[1], out);\n break;\n case 3:\n flatten3D(array, shape[0], shape[1], shape[2], out, 0);\n break;\n default:\n flattenRec(array, shape, 0, out, 0);\n }\n return out;\n }\n function arrayShape$1(array_) {\n var shape = [];\n for (var array = array_; array.length; array = array[0]) {\n shape.push(array.length);\n }\n return shape;\n }\n var arrayTypes = {\n \"[object Int8Array]\": 5120,\n \"[object Int16Array]\": 5122,\n \"[object Int32Array]\": 5124,\n \"[object Uint8Array]\": 5121,\n \"[object Uint8ClampedArray]\": 5121,\n \"[object Uint16Array]\": 5123,\n \"[object Uint32Array]\": 5125,\n \"[object Float32Array]\": 5126,\n \"[object Float64Array]\": 5121,\n \"[object ArrayBuffer]\": 5121\n };\n var int8 = 5120;\n var int16 = 5122;\n var int32 = 5124;\n var uint8 = 5121;\n var uint16 = 5123;\n var uint32 = 5125;\n var float = 5126;\n var float32 = 5126;\n var glTypes = {\n int8,\n int16,\n int32,\n uint8,\n uint16,\n uint32,\n float,\n float32\n };\n var dynamic$1 = 35048;\n var stream = 35040;\n var usageTypes = {\n dynamic: dynamic$1,\n stream,\n \"static\": 35044\n };\n var arrayFlatten = flattenUtils.flatten;\n var arrayShape = flattenUtils.shape;\n var GL_STATIC_DRAW = 35044;\n var GL_STREAM_DRAW = 35040;\n var GL_UNSIGNED_BYTE$2 = 5121;\n var GL_FLOAT$2 = 5126;\n var DTYPES_SIZES = [];\n DTYPES_SIZES[5120] = 1;\n DTYPES_SIZES[5122] = 2;\n DTYPES_SIZES[5124] = 4;\n DTYPES_SIZES[5121] = 1;\n DTYPES_SIZES[5123] = 2;\n DTYPES_SIZES[5125] = 4;\n DTYPES_SIZES[5126] = 4;\n function typedArrayCode(data) {\n return arrayTypes[Object.prototype.toString.call(data)] | 0;\n }\n function copyArray(out, inp) {\n for (var i = 0; i < inp.length; ++i) {\n out[i] = inp[i];\n }\n }\n function transpose(result, data, shapeX, shapeY, strideX, strideY, offset) {\n var ptr = 0;\n for (var i = 0; i < shapeX; ++i) {\n for (var j = 0; j < shapeY; ++j) {\n result[ptr++] = data[strideX * i + strideY * j + offset];\n }\n }\n }\n function wrapBufferState(gl2, stats2, config, destroyBuffer) {\n var bufferCount = 0;\n var bufferSet = {};\n function REGLBuffer(type) {\n this.id = bufferCount++;\n this.buffer = gl2.createBuffer();\n this.type = type;\n this.usage = GL_STATIC_DRAW;\n this.byteLength = 0;\n this.dimension = 1;\n this.dtype = GL_UNSIGNED_BYTE$2;\n this.persistentData = null;\n if (config.profile) {\n this.stats = { size: 0 };\n }\n }\n REGLBuffer.prototype.bind = function() {\n gl2.bindBuffer(this.type, this.buffer);\n };\n REGLBuffer.prototype.destroy = function() {\n destroy(this);\n };\n var streamPool = [];\n function createStream(type, data) {\n var buffer = streamPool.pop();\n if (!buffer) {\n buffer = new REGLBuffer(type);\n }\n buffer.bind();\n initBufferFromData(buffer, data, GL_STREAM_DRAW, 0, 1, false);\n return buffer;\n }\n function destroyStream(stream$$1) {\n streamPool.push(stream$$1);\n }\n function initBufferFromTypedArray(buffer, data, usage) {\n buffer.byteLength = data.byteLength;\n gl2.bufferData(buffer.type, data, usage);\n }\n function initBufferFromData(buffer, data, usage, dtype, dimension, persist) {\n var shape;\n buffer.usage = usage;\n if (Array.isArray(data)) {\n buffer.dtype = dtype || GL_FLOAT$2;\n if (data.length > 0) {\n var flatData;\n if (Array.isArray(data[0])) {\n shape = arrayShape(data);\n var dim = 1;\n for (var i = 1; i < shape.length; ++i) {\n dim *= shape[i];\n }\n buffer.dimension = dim;\n flatData = arrayFlatten(data, shape, buffer.dtype);\n initBufferFromTypedArray(buffer, flatData, usage);\n if (persist) {\n buffer.persistentData = flatData;\n } else {\n pool.freeType(flatData);\n }\n } else if (typeof data[0] === \"number\") {\n buffer.dimension = dimension;\n var typedData = pool.allocType(buffer.dtype, data.length);\n copyArray(typedData, data);\n initBufferFromTypedArray(buffer, typedData, usage);\n if (persist) {\n buffer.persistentData = typedData;\n } else {\n pool.freeType(typedData);\n }\n } else if (isTypedArray(data[0])) {\n buffer.dimension = data[0].length;\n buffer.dtype = dtype || typedArrayCode(data[0]) || GL_FLOAT$2;\n flatData = arrayFlatten(\n data,\n [data.length, data[0].length],\n buffer.dtype\n );\n initBufferFromTypedArray(buffer, flatData, usage);\n if (persist) {\n buffer.persistentData = flatData;\n } else {\n pool.freeType(flatData);\n }\n } else {\n }\n }\n } else if (isTypedArray(data)) {\n buffer.dtype = dtype || typedArrayCode(data);\n buffer.dimension = dimension;\n initBufferFromTypedArray(buffer, data, usage);\n if (persist) {\n buffer.persistentData = new Uint8Array(new Uint8Array(data.buffer));\n }\n } else if (isNDArrayLike(data)) {\n shape = data.shape;\n var stride = data.stride;\n var offset = data.offset;\n var shapeX = 0;\n var shapeY = 0;\n var strideX = 0;\n var strideY = 0;\n if (shape.length === 1) {\n shapeX = shape[0];\n shapeY = 1;\n strideX = stride[0];\n strideY = 0;\n } else if (shape.length === 2) {\n shapeX = shape[0];\n shapeY = shape[1];\n strideX = stride[0];\n strideY = stride[1];\n } else {\n }\n buffer.dtype = dtype || typedArrayCode(data.data) || GL_FLOAT$2;\n buffer.dimension = shapeY;\n var transposeData2 = pool.allocType(buffer.dtype, shapeX * shapeY);\n transpose(\n transposeData2,\n data.data,\n shapeX,\n shapeY,\n strideX,\n strideY,\n offset\n );\n initBufferFromTypedArray(buffer, transposeData2, usage);\n if (persist) {\n buffer.persistentData = transposeData2;\n } else {\n pool.freeType(transposeData2);\n }\n } else if (data instanceof ArrayBuffer) {\n buffer.dtype = GL_UNSIGNED_BYTE$2;\n buffer.dimension = dimension;\n initBufferFromTypedArray(buffer, data, usage);\n if (persist) {\n buffer.persistentData = new Uint8Array(new Uint8Array(data));\n }\n } else {\n }\n }\n function destroy(buffer) {\n stats2.bufferCount--;\n destroyBuffer(buffer);\n var handle = buffer.buffer;\n gl2.deleteBuffer(handle);\n buffer.buffer = null;\n delete bufferSet[buffer.id];\n }\n function createBuffer(options, type, deferInit, persistent) {\n stats2.bufferCount++;\n var buffer = new REGLBuffer(type);\n bufferSet[buffer.id] = buffer;\n function reglBuffer(options2) {\n var usage = GL_STATIC_DRAW;\n var data = null;\n var byteLength = 0;\n var dtype = 0;\n var dimension = 1;\n if (Array.isArray(options2) || isTypedArray(options2) || isNDArrayLike(options2) || options2 instanceof ArrayBuffer) {\n data = options2;\n } else if (typeof options2 === \"number\") {\n byteLength = options2 | 0;\n } else if (options2) {\n if (\"data\" in options2) {\n data = options2.data;\n }\n if (\"usage\" in options2) {\n usage = usageTypes[options2.usage];\n }\n if (\"type\" in options2) {\n dtype = glTypes[options2.type];\n }\n if (\"dimension\" in options2) {\n dimension = options2.dimension | 0;\n }\n if (\"length\" in options2) {\n byteLength = options2.length | 0;\n }\n }\n buffer.bind();\n if (!data) {\n if (byteLength) gl2.bufferData(buffer.type, byteLength, usage);\n buffer.dtype = dtype || GL_UNSIGNED_BYTE$2;\n buffer.usage = usage;\n buffer.dimension = dimension;\n buffer.byteLength = byteLength;\n } else {\n initBufferFromData(buffer, data, usage, dtype, dimension, persistent);\n }\n if (config.profile) {\n buffer.stats.size = buffer.byteLength * DTYPES_SIZES[buffer.dtype];\n }\n return reglBuffer;\n }\n function setSubData(data, offset) {\n gl2.bufferSubData(buffer.type, offset, data);\n }\n function subdata(data, offset_) {\n var offset = (offset_ || 0) | 0;\n var shape;\n buffer.bind();\n if (isTypedArray(data) || data instanceof ArrayBuffer) {\n setSubData(data, offset);\n } else if (Array.isArray(data)) {\n if (data.length > 0) {\n if (typeof data[0] === \"number\") {\n var converted = pool.allocType(buffer.dtype, data.length);\n copyArray(converted, data);\n setSubData(converted, offset);\n pool.freeType(converted);\n } else if (Array.isArray(data[0]) || isTypedArray(data[0])) {\n shape = arrayShape(data);\n var flatData = arrayFlatten(data, shape, buffer.dtype);\n setSubData(flatData, offset);\n pool.freeType(flatData);\n } else {\n }\n }\n } else if (isNDArrayLike(data)) {\n shape = data.shape;\n var stride = data.stride;\n var shapeX = 0;\n var shapeY = 0;\n var strideX = 0;\n var strideY = 0;\n if (shape.length === 1) {\n shapeX = shape[0];\n shapeY = 1;\n strideX = stride[0];\n strideY = 0;\n } else if (shape.length === 2) {\n shapeX = shape[0];\n shapeY = shape[1];\n strideX = stride[0];\n strideY = stride[1];\n } else {\n }\n var dtype = Array.isArray(data.data) ? buffer.dtype : typedArrayCode(data.data);\n var transposeData2 = pool.allocType(dtype, shapeX * shapeY);\n transpose(\n transposeData2,\n data.data,\n shapeX,\n shapeY,\n strideX,\n strideY,\n data.offset\n );\n setSubData(transposeData2, offset);\n pool.freeType(transposeData2);\n } else {\n }\n return reglBuffer;\n }\n if (!deferInit) {\n reglBuffer(options);\n }\n reglBuffer._reglType = \"buffer\";\n reglBuffer._buffer = buffer;\n reglBuffer.subdata = subdata;\n if (config.profile) {\n reglBuffer.stats = buffer.stats;\n }\n reglBuffer.destroy = function() {\n destroy(buffer);\n };\n return reglBuffer;\n }\n function restoreBuffers() {\n values(bufferSet).forEach(function(buffer) {\n buffer.buffer = gl2.createBuffer();\n gl2.bindBuffer(buffer.type, buffer.buffer);\n gl2.bufferData(\n buffer.type,\n buffer.persistentData || buffer.byteLength,\n buffer.usage\n );\n });\n }\n if (config.profile) {\n stats2.getTotalBufferSize = function() {\n var total = 0;\n Object.keys(bufferSet).forEach(function(key) {\n total += bufferSet[key].stats.size;\n });\n return total;\n };\n }\n return {\n create: createBuffer,\n createStream,\n destroyStream,\n clear: function() {\n values(bufferSet).forEach(destroy);\n streamPool.forEach(destroy);\n },\n getBuffer: function(wrapper) {\n if (wrapper && wrapper._buffer instanceof REGLBuffer) {\n return wrapper._buffer;\n }\n return null;\n },\n restore: restoreBuffers,\n _initBuffer: initBufferFromData\n };\n }\n var points = 0;\n var point = 0;\n var lines = 1;\n var line = 1;\n var triangles = 4;\n var triangle = 4;\n var primTypes = {\n points,\n point,\n lines,\n line,\n triangles,\n triangle,\n \"line loop\": 2,\n \"line strip\": 3,\n \"triangle strip\": 5,\n \"triangle fan\": 6\n };\n var GL_POINTS = 0;\n var GL_LINES = 1;\n var GL_TRIANGLES = 4;\n var GL_BYTE$1 = 5120;\n var GL_UNSIGNED_BYTE$3 = 5121;\n var GL_SHORT$1 = 5122;\n var GL_UNSIGNED_SHORT$1 = 5123;\n var GL_INT$1 = 5124;\n var GL_UNSIGNED_INT$1 = 5125;\n var GL_ELEMENT_ARRAY_BUFFER = 34963;\n var GL_STREAM_DRAW$1 = 35040;\n var GL_STATIC_DRAW$1 = 35044;\n function wrapElementsState(gl2, extensions, bufferState, stats2) {\n var elementSet = {};\n var elementCount = 0;\n var elementTypes = {\n \"uint8\": GL_UNSIGNED_BYTE$3,\n \"uint16\": GL_UNSIGNED_SHORT$1\n };\n if (extensions.oes_element_index_uint) {\n elementTypes.uint32 = GL_UNSIGNED_INT$1;\n }\n function REGLElementBuffer(buffer) {\n this.id = elementCount++;\n elementSet[this.id] = this;\n this.buffer = buffer;\n this.primType = GL_TRIANGLES;\n this.vertCount = 0;\n this.type = 0;\n }\n REGLElementBuffer.prototype.bind = function() {\n this.buffer.bind();\n };\n var bufferPool = [];\n function createElementStream(data) {\n var result = bufferPool.pop();\n if (!result) {\n result = new REGLElementBuffer(bufferState.create(\n null,\n GL_ELEMENT_ARRAY_BUFFER,\n true,\n false\n )._buffer);\n }\n initElements(result, data, GL_STREAM_DRAW$1, -1, -1, 0, 0);\n return result;\n }\n function destroyElementStream(elements) {\n bufferPool.push(elements);\n }\n function initElements(elements, data, usage, prim, count, byteLength, type) {\n elements.buffer.bind();\n var dtype;\n if (data) {\n var predictedType = type;\n if (!type && (!isTypedArray(data) || isNDArrayLike(data) && !isTypedArray(data.data))) {\n predictedType = extensions.oes_element_index_uint ? GL_UNSIGNED_INT$1 : GL_UNSIGNED_SHORT$1;\n }\n bufferState._initBuffer(\n elements.buffer,\n data,\n usage,\n predictedType,\n 3\n );\n } else {\n gl2.bufferData(GL_ELEMENT_ARRAY_BUFFER, byteLength, usage);\n elements.buffer.dtype = dtype || GL_UNSIGNED_BYTE$3;\n elements.buffer.usage = usage;\n elements.buffer.dimension = 3;\n elements.buffer.byteLength = byteLength;\n }\n dtype = type;\n if (!type) {\n switch (elements.buffer.dtype) {\n case GL_UNSIGNED_BYTE$3:\n case GL_BYTE$1:\n dtype = GL_UNSIGNED_BYTE$3;\n break;\n case GL_UNSIGNED_SHORT$1:\n case GL_SHORT$1:\n dtype = GL_UNSIGNED_SHORT$1;\n break;\n case GL_UNSIGNED_INT$1:\n case GL_INT$1:\n dtype = GL_UNSIGNED_INT$1;\n break;\n default:\n }\n elements.buffer.dtype = dtype;\n }\n elements.type = dtype;\n var vertCount = count;\n if (vertCount < 0) {\n vertCount = elements.buffer.byteLength;\n if (dtype === GL_UNSIGNED_SHORT$1) {\n vertCount >>= 1;\n } else if (dtype === GL_UNSIGNED_INT$1) {\n vertCount >>= 2;\n }\n }\n elements.vertCount = vertCount;\n var primType = prim;\n if (prim < 0) {\n primType = GL_TRIANGLES;\n var dimension = elements.buffer.dimension;\n if (dimension === 1) primType = GL_POINTS;\n if (dimension === 2) primType = GL_LINES;\n if (dimension === 3) primType = GL_TRIANGLES;\n }\n elements.primType = primType;\n }\n function destroyElements(elements) {\n stats2.elementsCount--;\n delete elementSet[elements.id];\n elements.buffer.destroy();\n elements.buffer = null;\n }\n function createElements(options, persistent) {\n var buffer = bufferState.create(null, GL_ELEMENT_ARRAY_BUFFER, true);\n var elements = new REGLElementBuffer(buffer._buffer);\n stats2.elementsCount++;\n function reglElements(options2) {\n if (!options2) {\n buffer();\n elements.primType = GL_TRIANGLES;\n elements.vertCount = 0;\n elements.type = GL_UNSIGNED_BYTE$3;\n } else if (typeof options2 === \"number\") {\n buffer(options2);\n elements.primType = GL_TRIANGLES;\n elements.vertCount = options2 | 0;\n elements.type = GL_UNSIGNED_BYTE$3;\n } else {\n var data = null;\n var usage = GL_STATIC_DRAW$1;\n var primType = -1;\n var vertCount = -1;\n var byteLength = 0;\n var dtype = 0;\n if (Array.isArray(options2) || isTypedArray(options2) || isNDArrayLike(options2)) {\n data = options2;\n } else {\n if (\"data\" in options2) {\n data = options2.data;\n }\n if (\"usage\" in options2) {\n usage = usageTypes[options2.usage];\n }\n if (\"primitive\" in options2) {\n primType = primTypes[options2.primitive];\n }\n if (\"count\" in options2) {\n vertCount = options2.count | 0;\n }\n if (\"type\" in options2) {\n dtype = elementTypes[options2.type];\n }\n if (\"length\" in options2) {\n byteLength = options2.length | 0;\n } else {\n byteLength = vertCount;\n if (dtype === GL_UNSIGNED_SHORT$1 || dtype === GL_SHORT$1) {\n byteLength *= 2;\n } else if (dtype === GL_UNSIGNED_INT$1 || dtype === GL_INT$1) {\n byteLength *= 4;\n }\n }\n }\n initElements(\n elements,\n data,\n usage,\n primType,\n vertCount,\n byteLength,\n dtype\n );\n }\n return reglElements;\n }\n reglElements(options);\n reglElements._reglType = \"elements\";\n reglElements._elements = elements;\n reglElements.subdata = function(data, offset) {\n buffer.subdata(data, offset);\n return reglElements;\n };\n reglElements.destroy = function() {\n destroyElements(elements);\n };\n return reglElements;\n }\n return {\n create: createElements,\n createStream: createElementStream,\n destroyStream: destroyElementStream,\n getElements: function(elements) {\n if (typeof elements === \"function\" && elements._elements instanceof REGLElementBuffer) {\n return elements._elements;\n }\n return null;\n },\n clear: function() {\n values(elementSet).forEach(destroyElements);\n }\n };\n }\n var FLOAT = new Float32Array(1);\n var INT = new Uint32Array(FLOAT.buffer);\n var GL_UNSIGNED_SHORT$3 = 5123;\n function convertToHalfFloat(array) {\n var ushorts = pool.allocType(GL_UNSIGNED_SHORT$3, array.length);\n for (var i = 0; i < array.length; ++i) {\n if (isNaN(array[i])) {\n ushorts[i] = 65535;\n } else if (array[i] === Infinity) {\n ushorts[i] = 31744;\n } else if (array[i] === -Infinity) {\n ushorts[i] = 64512;\n } else {\n FLOAT[0] = array[i];\n var x = INT[0];\n var sgn = x >>> 31 << 15;\n var exp = (x << 1 >>> 24) - 127;\n var frac = x >> 13 & (1 << 10) - 1;\n if (exp < -24) {\n ushorts[i] = sgn;\n } else if (exp < -14) {\n var s = -14 - exp;\n ushorts[i] = sgn + (frac + (1 << 10) >> s);\n } else if (exp > 15) {\n ushorts[i] = sgn + 31744;\n } else {\n ushorts[i] = sgn + (exp + 15 << 10) + frac;\n }\n }\n }\n return ushorts;\n }\n function isArrayLike(s) {\n return Array.isArray(s) || isTypedArray(s);\n }\n var GL_COMPRESSED_TEXTURE_FORMATS = 34467;\n var GL_TEXTURE_2D$1 = 3553;\n var GL_TEXTURE_CUBE_MAP$1 = 34067;\n var GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 = 34069;\n var GL_RGBA$1 = 6408;\n var GL_ALPHA = 6406;\n var GL_RGB = 6407;\n var GL_LUMINANCE = 6409;\n var GL_LUMINANCE_ALPHA = 6410;\n var GL_RGBA4 = 32854;\n var GL_RGB5_A1 = 32855;\n var GL_RGB565 = 36194;\n var GL_UNSIGNED_SHORT_4_4_4_4 = 32819;\n var GL_UNSIGNED_SHORT_5_5_5_1 = 32820;\n var GL_UNSIGNED_SHORT_5_6_5 = 33635;\n var GL_UNSIGNED_INT_24_8_WEBGL = 34042;\n var GL_DEPTH_COMPONENT = 6402;\n var GL_DEPTH_STENCIL = 34041;\n var GL_SRGB_EXT = 35904;\n var GL_SRGB_ALPHA_EXT = 35906;\n var GL_HALF_FLOAT_OES = 36193;\n var GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 33776;\n var GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777;\n var GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778;\n var GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779;\n var GL_COMPRESSED_RGB_ATC_WEBGL = 35986;\n var GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987;\n var GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798;\n var GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840;\n var GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841;\n var GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842;\n var GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843;\n var GL_COMPRESSED_RGB_ETC1_WEBGL = 36196;\n var GL_UNSIGNED_BYTE$4 = 5121;\n var GL_UNSIGNED_SHORT$2 = 5123;\n var GL_UNSIGNED_INT$2 = 5125;\n var GL_FLOAT$3 = 5126;\n var GL_TEXTURE_WRAP_S = 10242;\n var GL_TEXTURE_WRAP_T = 10243;\n var GL_REPEAT = 10497;\n var GL_CLAMP_TO_EDGE = 33071;\n var GL_MIRRORED_REPEAT = 33648;\n var GL_TEXTURE_MAG_FILTER = 10240;\n var GL_TEXTURE_MIN_FILTER = 10241;\n var GL_NEAREST = 9728;\n var GL_LINEAR = 9729;\n var GL_NEAREST_MIPMAP_NEAREST = 9984;\n var GL_LINEAR_MIPMAP_NEAREST = 9985;\n var GL_NEAREST_MIPMAP_LINEAR = 9986;\n var GL_LINEAR_MIPMAP_LINEAR = 9987;\n var GL_GENERATE_MIPMAP_HINT = 33170;\n var GL_DONT_CARE = 4352;\n var GL_FASTEST = 4353;\n var GL_NICEST = 4354;\n var GL_TEXTURE_MAX_ANISOTROPY_EXT = 34046;\n var GL_UNPACK_ALIGNMENT = 3317;\n var GL_UNPACK_FLIP_Y_WEBGL = 37440;\n var GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441;\n var GL_UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443;\n var GL_BROWSER_DEFAULT_WEBGL = 37444;\n var GL_TEXTURE0$1 = 33984;\n var MIPMAP_FILTERS = [\n GL_NEAREST_MIPMAP_NEAREST,\n GL_NEAREST_MIPMAP_LINEAR,\n GL_LINEAR_MIPMAP_NEAREST,\n GL_LINEAR_MIPMAP_LINEAR\n ];\n var CHANNELS_FORMAT = [\n 0,\n GL_LUMINANCE,\n GL_LUMINANCE_ALPHA,\n GL_RGB,\n GL_RGBA$1\n ];\n var FORMAT_CHANNELS = {};\n FORMAT_CHANNELS[GL_LUMINANCE] = FORMAT_CHANNELS[GL_ALPHA] = FORMAT_CHANNELS[GL_DEPTH_COMPONENT] = 1;\n FORMAT_CHANNELS[GL_DEPTH_STENCIL] = FORMAT_CHANNELS[GL_LUMINANCE_ALPHA] = 2;\n FORMAT_CHANNELS[GL_RGB] = FORMAT_CHANNELS[GL_SRGB_EXT] = 3;\n FORMAT_CHANNELS[GL_RGBA$1] = FORMAT_CHANNELS[GL_SRGB_ALPHA_EXT] = 4;\n function objectName(str) {\n return \"[object \" + str + \"]\";\n }\n var CANVAS_CLASS = objectName(\"HTMLCanvasElement\");\n var OFFSCREENCANVAS_CLASS = objectName(\"OffscreenCanvas\");\n var CONTEXT2D_CLASS = objectName(\"CanvasRenderingContext2D\");\n var BITMAP_CLASS = objectName(\"ImageBitmap\");\n var IMAGE_CLASS = objectName(\"HTMLImageElement\");\n var VIDEO_CLASS = objectName(\"HTMLVideoElement\");\n var PIXEL_CLASSES = Object.keys(arrayTypes).concat([\n CANVAS_CLASS,\n OFFSCREENCANVAS_CLASS,\n CONTEXT2D_CLASS,\n BITMAP_CLASS,\n IMAGE_CLASS,\n VIDEO_CLASS\n ]);\n var TYPE_SIZES = [];\n TYPE_SIZES[GL_UNSIGNED_BYTE$4] = 1;\n TYPE_SIZES[GL_FLOAT$3] = 4;\n TYPE_SIZES[GL_HALF_FLOAT_OES] = 2;\n TYPE_SIZES[GL_UNSIGNED_SHORT$2] = 2;\n TYPE_SIZES[GL_UNSIGNED_INT$2] = 4;\n var FORMAT_SIZES_SPECIAL = [];\n FORMAT_SIZES_SPECIAL[GL_RGBA4] = 2;\n FORMAT_SIZES_SPECIAL[GL_RGB5_A1] = 2;\n FORMAT_SIZES_SPECIAL[GL_RGB565] = 2;\n FORMAT_SIZES_SPECIAL[GL_DEPTH_STENCIL] = 4;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_S3TC_DXT1_EXT] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT1_EXT] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT3_EXT] = 1;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT5_EXT] = 1;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_ATC_WEBGL] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = 1;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = 1;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = 0.25;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = 0.25;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_ETC1_WEBGL] = 0.5;\n function isNumericArray(arr) {\n return Array.isArray(arr) && (arr.length === 0 || typeof arr[0] === \"number\");\n }\n function isRectArray(arr) {\n if (!Array.isArray(arr)) {\n return false;\n }\n var width = arr.length;\n if (width === 0 || !isArrayLike(arr[0])) {\n return false;\n }\n return true;\n }\n function classString(x) {\n return Object.prototype.toString.call(x);\n }\n function isCanvasElement(object) {\n return classString(object) === CANVAS_CLASS;\n }\n function isOffscreenCanvas(object) {\n return classString(object) === OFFSCREENCANVAS_CLASS;\n }\n function isContext2D(object) {\n return classString(object) === CONTEXT2D_CLASS;\n }\n function isBitmap(object) {\n return classString(object) === BITMAP_CLASS;\n }\n function isImageElement(object) {\n return classString(object) === IMAGE_CLASS;\n }\n function isVideoElement(object) {\n return classString(object) === VIDEO_CLASS;\n }\n function isPixelData(object) {\n if (!object) {\n return false;\n }\n var className = classString(object);\n if (PIXEL_CLASSES.indexOf(className) >= 0) {\n return true;\n }\n return isNumericArray(object) || isRectArray(object) || isNDArrayLike(object);\n }\n function typedArrayCode$1(data) {\n return arrayTypes[Object.prototype.toString.call(data)] | 0;\n }\n function convertData(result, data) {\n var n = data.length;\n switch (result.type) {\n case GL_UNSIGNED_BYTE$4:\n case GL_UNSIGNED_SHORT$2:\n case GL_UNSIGNED_INT$2:\n case GL_FLOAT$3:\n var converted = pool.allocType(result.type, n);\n converted.set(data);\n result.data = converted;\n break;\n case GL_HALF_FLOAT_OES:\n result.data = convertToHalfFloat(data);\n break;\n default:\n }\n }\n function preConvert(image, n) {\n return pool.allocType(\n image.type === GL_HALF_FLOAT_OES ? GL_FLOAT$3 : image.type,\n n\n );\n }\n function postConvert(image, data) {\n if (image.type === GL_HALF_FLOAT_OES) {\n image.data = convertToHalfFloat(data);\n pool.freeType(data);\n } else {\n image.data = data;\n }\n }\n function transposeData(image, array, strideX, strideY, strideC, offset) {\n var w = image.width;\n var h = image.height;\n var c = image.channels;\n var n = w * h * c;\n var data = preConvert(image, n);\n var p = 0;\n for (var i = 0; i < h; ++i) {\n for (var j = 0; j < w; ++j) {\n for (var k = 0; k < c; ++k) {\n data[p++] = array[strideX * j + strideY * i + strideC * k + offset];\n }\n }\n }\n postConvert(image, data);\n }\n function getTextureSize(format, type, width, height, isMipmap, isCube) {\n var s;\n if (typeof FORMAT_SIZES_SPECIAL[format] !== \"undefined\") {\n s = FORMAT_SIZES_SPECIAL[format];\n } else {\n s = FORMAT_CHANNELS[format] * TYPE_SIZES[type];\n }\n if (isCube) {\n s *= 6;\n }\n if (isMipmap) {\n var total = 0;\n var w = width;\n while (w >= 1) {\n total += s * w * w;\n w /= 2;\n }\n return total;\n } else {\n return s * width * height;\n }\n }\n function createTextureSet(gl2, extensions, limits, reglPoll, contextState, stats2, config) {\n var mipmapHint = {\n \"don't care\": GL_DONT_CARE,\n \"dont care\": GL_DONT_CARE,\n \"nice\": GL_NICEST,\n \"fast\": GL_FASTEST\n };\n var wrapModes = {\n \"repeat\": GL_REPEAT,\n \"clamp\": GL_CLAMP_TO_EDGE,\n \"mirror\": GL_MIRRORED_REPEAT\n };\n var magFilters = {\n \"nearest\": GL_NEAREST,\n \"linear\": GL_LINEAR\n };\n var minFilters = extend2({\n \"mipmap\": GL_LINEAR_MIPMAP_LINEAR,\n \"nearest mipmap nearest\": GL_NEAREST_MIPMAP_NEAREST,\n \"linear mipmap nearest\": GL_LINEAR_MIPMAP_NEAREST,\n \"nearest mipmap linear\": GL_NEAREST_MIPMAP_LINEAR,\n \"linear mipmap linear\": GL_LINEAR_MIPMAP_LINEAR\n }, magFilters);\n var colorSpace = {\n \"none\": 0,\n \"browser\": GL_BROWSER_DEFAULT_WEBGL\n };\n var textureTypes = {\n \"uint8\": GL_UNSIGNED_BYTE$4,\n \"rgba4\": GL_UNSIGNED_SHORT_4_4_4_4,\n \"rgb565\": GL_UNSIGNED_SHORT_5_6_5,\n \"rgb5 a1\": GL_UNSIGNED_SHORT_5_5_5_1\n };\n var textureFormats = {\n \"alpha\": GL_ALPHA,\n \"luminance\": GL_LUMINANCE,\n \"luminance alpha\": GL_LUMINANCE_ALPHA,\n \"rgb\": GL_RGB,\n \"rgba\": GL_RGBA$1,\n \"rgba4\": GL_RGBA4,\n \"rgb5 a1\": GL_RGB5_A1,\n \"rgb565\": GL_RGB565\n };\n var compressedTextureFormats = {};\n if (extensions.ext_srgb) {\n textureFormats.srgb = GL_SRGB_EXT;\n textureFormats.srgba = GL_SRGB_ALPHA_EXT;\n }\n if (extensions.oes_texture_float) {\n textureTypes.float32 = textureTypes.float = GL_FLOAT$3;\n }\n if (extensions.oes_texture_half_float) {\n textureTypes[\"float16\"] = textureTypes[\"half float\"] = GL_HALF_FLOAT_OES;\n }\n if (extensions.webgl_depth_texture) {\n extend2(textureFormats, {\n \"depth\": GL_DEPTH_COMPONENT,\n \"depth stencil\": GL_DEPTH_STENCIL\n });\n extend2(textureTypes, {\n \"uint16\": GL_UNSIGNED_SHORT$2,\n \"uint32\": GL_UNSIGNED_INT$2,\n \"depth stencil\": GL_UNSIGNED_INT_24_8_WEBGL\n });\n }\n if (extensions.webgl_compressed_texture_s3tc) {\n extend2(compressedTextureFormats, {\n \"rgb s3tc dxt1\": GL_COMPRESSED_RGB_S3TC_DXT1_EXT,\n \"rgba s3tc dxt1\": GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,\n \"rgba s3tc dxt3\": GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,\n \"rgba s3tc dxt5\": GL_COMPRESSED_RGBA_S3TC_DXT5_EXT\n });\n }\n if (extensions.webgl_compressed_texture_atc) {\n extend2(compressedTextureFormats, {\n \"rgb atc\": GL_COMPRESSED_RGB_ATC_WEBGL,\n \"rgba atc explicit alpha\": GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,\n \"rgba atc interpolated alpha\": GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL\n });\n }\n if (extensions.webgl_compressed_texture_pvrtc) {\n extend2(compressedTextureFormats, {\n \"rgb pvrtc 4bppv1\": GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,\n \"rgb pvrtc 2bppv1\": GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG,\n \"rgba pvrtc 4bppv1\": GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,\n \"rgba pvrtc 2bppv1\": GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG\n });\n }\n if (extensions.webgl_compressed_texture_etc1) {\n compressedTextureFormats[\"rgb etc1\"] = GL_COMPRESSED_RGB_ETC1_WEBGL;\n }\n var supportedCompressedFormats = Array.prototype.slice.call(\n gl2.getParameter(GL_COMPRESSED_TEXTURE_FORMATS)\n );\n Object.keys(compressedTextureFormats).forEach(function(name2) {\n var format = compressedTextureFormats[name2];\n if (supportedCompressedFormats.indexOf(format) >= 0) {\n textureFormats[name2] = format;\n }\n });\n var supportedFormats = Object.keys(textureFormats);\n limits.textureFormats = supportedFormats;\n var textureFormatsInvert = [];\n Object.keys(textureFormats).forEach(function(key) {\n var val = textureFormats[key];\n textureFormatsInvert[val] = key;\n });\n var textureTypesInvert = [];\n Object.keys(textureTypes).forEach(function(key) {\n var val = textureTypes[key];\n textureTypesInvert[val] = key;\n });\n var magFiltersInvert = [];\n Object.keys(magFilters).forEach(function(key) {\n var val = magFilters[key];\n magFiltersInvert[val] = key;\n });\n var minFiltersInvert = [];\n Object.keys(minFilters).forEach(function(key) {\n var val = minFilters[key];\n minFiltersInvert[val] = key;\n });\n var wrapModesInvert = [];\n Object.keys(wrapModes).forEach(function(key) {\n var val = wrapModes[key];\n wrapModesInvert[val] = key;\n });\n var colorFormats = supportedFormats.reduce(function(color2, key) {\n var glenum = textureFormats[key];\n if (glenum === GL_LUMINANCE || glenum === GL_ALPHA || glenum === GL_LUMINANCE || glenum === GL_LUMINANCE_ALPHA || glenum === GL_DEPTH_COMPONENT || glenum === GL_DEPTH_STENCIL || extensions.ext_srgb && (glenum === GL_SRGB_EXT || glenum === GL_SRGB_ALPHA_EXT)) {\n color2[glenum] = glenum;\n } else if (glenum === GL_RGB5_A1 || key.indexOf(\"rgba\") >= 0) {\n color2[glenum] = GL_RGBA$1;\n } else {\n color2[glenum] = GL_RGB;\n }\n return color2;\n }, {});\n function TexFlags() {\n this.internalformat = GL_RGBA$1;\n this.format = GL_RGBA$1;\n this.type = GL_UNSIGNED_BYTE$4;\n this.compressed = false;\n this.premultiplyAlpha = false;\n this.flipY = false;\n this.unpackAlignment = 1;\n this.colorSpace = GL_BROWSER_DEFAULT_WEBGL;\n this.width = 0;\n this.height = 0;\n this.channels = 0;\n }\n function copyFlags(result, other) {\n result.internalformat = other.internalformat;\n result.format = other.format;\n result.type = other.type;\n result.compressed = other.compressed;\n result.premultiplyAlpha = other.premultiplyAlpha;\n result.flipY = other.flipY;\n result.unpackAlignment = other.unpackAlignment;\n result.colorSpace = other.colorSpace;\n result.width = other.width;\n result.height = other.height;\n result.channels = other.channels;\n }\n function parseFlags(flags, options) {\n if (typeof options !== \"object\" || !options) {\n return;\n }\n if (\"premultiplyAlpha\" in options) {\n flags.premultiplyAlpha = options.premultiplyAlpha;\n }\n if (\"flipY\" in options) {\n flags.flipY = options.flipY;\n }\n if (\"alignment\" in options) {\n flags.unpackAlignment = options.alignment;\n }\n if (\"colorSpace\" in options) {\n flags.colorSpace = colorSpace[options.colorSpace];\n }\n if (\"type\" in options) {\n var type = options.type;\n flags.type = textureTypes[type];\n }\n var w = flags.width;\n var h = flags.height;\n var c = flags.channels;\n var hasChannels = false;\n if (\"shape\" in options) {\n w = options.shape[0];\n h = options.shape[1];\n if (options.shape.length === 3) {\n c = options.shape[2];\n hasChannels = true;\n }\n } else {\n if (\"radius\" in options) {\n w = h = options.radius;\n }\n if (\"width\" in options) {\n w = options.width;\n }\n if (\"height\" in options) {\n h = options.height;\n }\n if (\"channels\" in options) {\n c = options.channels;\n hasChannels = true;\n }\n }\n flags.width = w | 0;\n flags.height = h | 0;\n flags.channels = c | 0;\n var hasFormat = false;\n if (\"format\" in options) {\n var formatStr = options.format;\n var internalformat = flags.internalformat = textureFormats[formatStr];\n flags.format = colorFormats[internalformat];\n if (formatStr in textureTypes) {\n if (!(\"type\" in options)) {\n flags.type = textureTypes[formatStr];\n }\n }\n if (formatStr in compressedTextureFormats) {\n flags.compressed = true;\n }\n hasFormat = true;\n }\n if (!hasChannels && hasFormat) {\n flags.channels = FORMAT_CHANNELS[flags.format];\n } else if (hasChannels && !hasFormat) {\n if (flags.channels !== CHANNELS_FORMAT[flags.format]) {\n flags.format = flags.internalformat = CHANNELS_FORMAT[flags.channels];\n }\n } else if (hasFormat && hasChannels) {\n }\n }\n function setFlags(flags) {\n gl2.pixelStorei(GL_UNPACK_FLIP_Y_WEBGL, flags.flipY);\n gl2.pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL, flags.premultiplyAlpha);\n gl2.pixelStorei(GL_UNPACK_COLORSPACE_CONVERSION_WEBGL, flags.colorSpace);\n gl2.pixelStorei(GL_UNPACK_ALIGNMENT, flags.unpackAlignment);\n }\n function TexImage() {\n TexFlags.call(this);\n this.xOffset = 0;\n this.yOffset = 0;\n this.data = null;\n this.needsFree = false;\n this.element = null;\n this.needsCopy = false;\n }\n function parseImage(image, options) {\n var data = null;\n if (isPixelData(options)) {\n data = options;\n } else if (options) {\n parseFlags(image, options);\n if (\"x\" in options) {\n image.xOffset = options.x | 0;\n }\n if (\"y\" in options) {\n image.yOffset = options.y | 0;\n }\n if (isPixelData(options.data)) {\n data = options.data;\n }\n }\n if (options.copy) {\n var viewW = contextState.viewportWidth;\n var viewH = contextState.viewportHeight;\n image.width = image.width || viewW - image.xOffset;\n image.height = image.height || viewH - image.yOffset;\n image.needsCopy = true;\n } else if (!data) {\n image.width = image.width || 1;\n image.height = image.height || 1;\n image.channels = image.channels || 4;\n } else if (isTypedArray(data)) {\n image.channels = image.channels || 4;\n image.data = data;\n if (!(\"type\" in options) && image.type === GL_UNSIGNED_BYTE$4) {\n image.type = typedArrayCode$1(data);\n }\n } else if (isNumericArray(data)) {\n image.channels = image.channels || 4;\n convertData(image, data);\n image.alignment = 1;\n image.needsFree = true;\n } else if (isNDArrayLike(data)) {\n var array = data.data;\n if (!Array.isArray(array) && image.type === GL_UNSIGNED_BYTE$4) {\n image.type = typedArrayCode$1(array);\n }\n var shape = data.shape;\n var stride = data.stride;\n var shapeX, shapeY, shapeC, strideX, strideY, strideC;\n if (shape.length === 3) {\n shapeC = shape[2];\n strideC = stride[2];\n } else {\n shapeC = 1;\n strideC = 1;\n }\n shapeX = shape[0];\n shapeY = shape[1];\n strideX = stride[0];\n strideY = stride[1];\n image.alignment = 1;\n image.width = shapeX;\n image.height = shapeY;\n image.channels = shapeC;\n image.format = image.internalformat = CHANNELS_FORMAT[shapeC];\n image.needsFree = true;\n transposeData(image, array, strideX, strideY, strideC, data.offset);\n } else if (isCanvasElement(data) || isOffscreenCanvas(data) || isContext2D(data)) {\n if (isCanvasElement(data) || isOffscreenCanvas(data)) {\n image.element = data;\n } else {\n image.element = data.canvas;\n }\n image.width = image.element.width;\n image.height = image.element.height;\n image.channels = 4;\n } else if (isBitmap(data)) {\n image.element = data;\n image.width = data.width;\n image.height = data.height;\n image.channels = 4;\n } else if (isImageElement(data)) {\n image.element = data;\n image.width = data.naturalWidth;\n image.height = data.naturalHeight;\n image.channels = 4;\n } else if (isVideoElement(data)) {\n image.element = data;\n image.width = data.videoWidth;\n image.height = data.videoHeight;\n image.channels = 4;\n } else if (isRectArray(data)) {\n var w = image.width || data[0].length;\n var h = image.height || data.length;\n var c = image.channels;\n if (isArrayLike(data[0][0])) {\n c = c || data[0][0].length;\n } else {\n c = c || 1;\n }\n var arrayShape2 = flattenUtils.shape(data);\n var n = 1;\n for (var dd = 0; dd < arrayShape2.length; ++dd) {\n n *= arrayShape2[dd];\n }\n var allocData = preConvert(image, n);\n flattenUtils.flatten(data, arrayShape2, \"\", allocData);\n postConvert(image, allocData);\n image.alignment = 1;\n image.width = w;\n image.height = h;\n image.channels = c;\n image.format = image.internalformat = CHANNELS_FORMAT[c];\n image.needsFree = true;\n }\n if (image.type === GL_FLOAT$3) {\n } else if (image.type === GL_HALF_FLOAT_OES) {\n }\n }\n function setImage(info, target, miplevel) {\n var element = info.element;\n var data = info.data;\n var internalformat = info.internalformat;\n var format = info.format;\n var type = info.type;\n var width = info.width;\n var height = info.height;\n setFlags(info);\n if (element) {\n gl2.texImage2D(target, miplevel, format, format, type, element);\n } else if (info.compressed) {\n gl2.compressedTexImage2D(target, miplevel, internalformat, width, height, 0, data);\n } else if (info.needsCopy) {\n reglPoll();\n gl2.copyTexImage2D(\n target,\n miplevel,\n format,\n info.xOffset,\n info.yOffset,\n width,\n height,\n 0\n );\n } else {\n gl2.texImage2D(target, miplevel, format, width, height, 0, format, type, data || null);\n }\n }\n function setSubImage(info, target, x, y, miplevel) {\n var element = info.element;\n var data = info.data;\n var internalformat = info.internalformat;\n var format = info.format;\n var type = info.type;\n var width = info.width;\n var height = info.height;\n setFlags(info);\n if (element) {\n gl2.texSubImage2D(\n target,\n miplevel,\n x,\n y,\n format,\n type,\n element\n );\n } else if (info.compressed) {\n gl2.compressedTexSubImage2D(\n target,\n miplevel,\n x,\n y,\n internalformat,\n width,\n height,\n data\n );\n } else if (info.needsCopy) {\n reglPoll();\n gl2.copyTexSubImage2D(\n target,\n miplevel,\n x,\n y,\n info.xOffset,\n info.yOffset,\n width,\n height\n );\n } else {\n gl2.texSubImage2D(\n target,\n miplevel,\n x,\n y,\n width,\n height,\n format,\n type,\n data\n );\n }\n }\n var imagePool = [];\n function allocImage() {\n return imagePool.pop() || new TexImage();\n }\n function freeImage(image) {\n if (image.needsFree) {\n pool.freeType(image.data);\n }\n TexImage.call(image);\n imagePool.push(image);\n }\n function MipMap() {\n TexFlags.call(this);\n this.genMipmaps = false;\n this.mipmapHint = GL_DONT_CARE;\n this.mipmask = 0;\n this.images = Array(16);\n }\n function parseMipMapFromShape(mipmap, width, height) {\n var img = mipmap.images[0] = allocImage();\n mipmap.mipmask = 1;\n img.width = mipmap.width = width;\n img.height = mipmap.height = height;\n img.channels = mipmap.channels = 4;\n }\n function parseMipMapFromObject(mipmap, options) {\n var imgData = null;\n if (isPixelData(options)) {\n imgData = mipmap.images[0] = allocImage();\n copyFlags(imgData, mipmap);\n parseImage(imgData, options);\n mipmap.mipmask = 1;\n } else {\n parseFlags(mipmap, options);\n if (Array.isArray(options.mipmap)) {\n var mipData = options.mipmap;\n for (var i = 0; i < mipData.length; ++i) {\n imgData = mipmap.images[i] = allocImage();\n copyFlags(imgData, mipmap);\n imgData.width >>= i;\n imgData.height >>= i;\n parseImage(imgData, mipData[i]);\n mipmap.mipmask |= 1 << i;\n }\n } else {\n imgData = mipmap.images[0] = allocImage();\n copyFlags(imgData, mipmap);\n parseImage(imgData, options);\n mipmap.mipmask = 1;\n }\n }\n copyFlags(mipmap, mipmap.images[0]);\n if (mipmap.compressed && (mipmap.internalformat === GL_COMPRESSED_RGB_S3TC_DXT1_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT1_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT3_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)) {\n }\n }\n function setMipMap(mipmap, target) {\n var images = mipmap.images;\n for (var i = 0; i < images.length; ++i) {\n if (!images[i]) {\n return;\n }\n setImage(images[i], target, i);\n }\n }\n var mipPool = [];\n function allocMipMap() {\n var result = mipPool.pop() || new MipMap();\n TexFlags.call(result);\n result.mipmask = 0;\n for (var i = 0; i < 16; ++i) {\n result.images[i] = null;\n }\n return result;\n }\n function freeMipMap(mipmap) {\n var images = mipmap.images;\n for (var i = 0; i < images.length; ++i) {\n if (images[i]) {\n freeImage(images[i]);\n }\n images[i] = null;\n }\n mipPool.push(mipmap);\n }\n function TexInfo() {\n this.minFilter = GL_NEAREST;\n this.magFilter = GL_NEAREST;\n this.wrapS = GL_CLAMP_TO_EDGE;\n this.wrapT = GL_CLAMP_TO_EDGE;\n this.anisotropic = 1;\n this.genMipmaps = false;\n this.mipmapHint = GL_DONT_CARE;\n }\n function parseTexInfo(info, options) {\n if (\"min\" in options) {\n var minFilter = options.min;\n info.minFilter = minFilters[minFilter];\n if (MIPMAP_FILTERS.indexOf(info.minFilter) >= 0 && !(\"faces\" in options)) {\n info.genMipmaps = true;\n }\n }\n if (\"mag\" in options) {\n var magFilter = options.mag;\n info.magFilter = magFilters[magFilter];\n }\n var wrapS = info.wrapS;\n var wrapT = info.wrapT;\n if (\"wrap\" in options) {\n var wrap = options.wrap;\n if (typeof wrap === \"string\") {\n wrapS = wrapT = wrapModes[wrap];\n } else if (Array.isArray(wrap)) {\n wrapS = wrapModes[wrap[0]];\n wrapT = wrapModes[wrap[1]];\n }\n } else {\n if (\"wrapS\" in options) {\n var optWrapS = options.wrapS;\n wrapS = wrapModes[optWrapS];\n }\n if (\"wrapT\" in options) {\n var optWrapT = options.wrapT;\n wrapT = wrapModes[optWrapT];\n }\n }\n info.wrapS = wrapS;\n info.wrapT = wrapT;\n if (\"anisotropic\" in options) {\n var anisotropic = options.anisotropic;\n info.anisotropic = options.anisotropic;\n }\n if (\"mipmap\" in options) {\n var hasMipMap = false;\n switch (typeof options.mipmap) {\n case \"string\":\n info.mipmapHint = mipmapHint[options.mipmap];\n info.genMipmaps = true;\n hasMipMap = true;\n break;\n case \"boolean\":\n hasMipMap = info.genMipmaps = options.mipmap;\n break;\n case \"object\":\n info.genMipmaps = false;\n hasMipMap = true;\n break;\n default:\n }\n if (hasMipMap && !(\"min\" in options)) {\n info.minFilter = GL_NEAREST_MIPMAP_NEAREST;\n }\n }\n }\n function setTexInfo(info, target) {\n gl2.texParameteri(target, GL_TEXTURE_MIN_FILTER, info.minFilter);\n gl2.texParameteri(target, GL_TEXTURE_MAG_FILTER, info.magFilter);\n gl2.texParameteri(target, GL_TEXTURE_WRAP_S, info.wrapS);\n gl2.texParameteri(target, GL_TEXTURE_WRAP_T, info.wrapT);\n if (extensions.ext_texture_filter_anisotropic) {\n gl2.texParameteri(target, GL_TEXTURE_MAX_ANISOTROPY_EXT, info.anisotropic);\n }\n if (info.genMipmaps) {\n gl2.hint(GL_GENERATE_MIPMAP_HINT, info.mipmapHint);\n gl2.generateMipmap(target);\n }\n }\n var textureCount = 0;\n var textureSet = {};\n var numTexUnits = limits.maxTextureUnits;\n var textureUnits = Array(numTexUnits).map(function() {\n return null;\n });\n function REGLTexture(target) {\n TexFlags.call(this);\n this.mipmask = 0;\n this.internalformat = GL_RGBA$1;\n this.id = textureCount++;\n this.refCount = 1;\n this.target = target;\n this.texture = gl2.createTexture();\n this.unit = -1;\n this.bindCount = 0;\n this.texInfo = new TexInfo();\n if (config.profile) {\n this.stats = { size: 0 };\n }\n }\n function tempBind(texture) {\n gl2.activeTexture(GL_TEXTURE0$1);\n gl2.bindTexture(texture.target, texture.texture);\n }\n function tempRestore() {\n var prev = textureUnits[0];\n if (prev) {\n gl2.bindTexture(prev.target, prev.texture);\n } else {\n gl2.bindTexture(GL_TEXTURE_2D$1, null);\n }\n }\n function destroy(texture) {\n var handle = texture.texture;\n var unit = texture.unit;\n var target = texture.target;\n if (unit >= 0) {\n gl2.activeTexture(GL_TEXTURE0$1 + unit);\n gl2.bindTexture(target, null);\n textureUnits[unit] = null;\n }\n gl2.deleteTexture(handle);\n texture.texture = null;\n texture.params = null;\n texture.pixels = null;\n texture.refCount = 0;\n delete textureSet[texture.id];\n stats2.textureCount--;\n }\n extend2(REGLTexture.prototype, {\n bind: function() {\n var texture = this;\n texture.bindCount += 1;\n var unit = texture.unit;\n if (unit < 0) {\n for (var i = 0; i < numTexUnits; ++i) {\n var other = textureUnits[i];\n if (other) {\n if (other.bindCount > 0) {\n continue;\n }\n other.unit = -1;\n }\n textureUnits[i] = texture;\n unit = i;\n break;\n }\n if (unit >= numTexUnits) {\n }\n if (config.profile && stats2.maxTextureUnits < unit + 1) {\n stats2.maxTextureUnits = unit + 1;\n }\n texture.unit = unit;\n gl2.activeTexture(GL_TEXTURE0$1 + unit);\n gl2.bindTexture(texture.target, texture.texture);\n }\n return unit;\n },\n unbind: function() {\n this.bindCount -= 1;\n },\n decRef: function() {\n if (--this.refCount <= 0) {\n destroy(this);\n }\n }\n });\n function createTexture2D(a, b) {\n var texture = new REGLTexture(GL_TEXTURE_2D$1);\n textureSet[texture.id] = texture;\n stats2.textureCount++;\n function reglTexture2D(a2, b2) {\n var texInfo = texture.texInfo;\n TexInfo.call(texInfo);\n var mipData = allocMipMap();\n if (typeof a2 === \"number\") {\n if (typeof b2 === \"number\") {\n parseMipMapFromShape(mipData, a2 | 0, b2 | 0);\n } else {\n parseMipMapFromShape(mipData, a2 | 0, a2 | 0);\n }\n } else if (a2) {\n parseTexInfo(texInfo, a2);\n parseMipMapFromObject(mipData, a2);\n } else {\n parseMipMapFromShape(mipData, 1, 1);\n }\n if (texInfo.genMipmaps) {\n mipData.mipmask = (mipData.width << 1) - 1;\n }\n texture.mipmask = mipData.mipmask;\n copyFlags(texture, mipData);\n texture.internalformat = mipData.internalformat;\n reglTexture2D.width = mipData.width;\n reglTexture2D.height = mipData.height;\n tempBind(texture);\n setMipMap(mipData, GL_TEXTURE_2D$1);\n setTexInfo(texInfo, GL_TEXTURE_2D$1);\n tempRestore();\n freeMipMap(mipData);\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n mipData.width,\n mipData.height,\n texInfo.genMipmaps,\n false\n );\n }\n reglTexture2D.format = textureFormatsInvert[texture.internalformat];\n reglTexture2D.type = textureTypesInvert[texture.type];\n reglTexture2D.mag = magFiltersInvert[texInfo.magFilter];\n reglTexture2D.min = minFiltersInvert[texInfo.minFilter];\n reglTexture2D.wrapS = wrapModesInvert[texInfo.wrapS];\n reglTexture2D.wrapT = wrapModesInvert[texInfo.wrapT];\n return reglTexture2D;\n }\n function subimage(image, x_, y_, level_) {\n var x = x_ | 0;\n var y = y_ | 0;\n var level = level_ | 0;\n var imageData = allocImage();\n copyFlags(imageData, texture);\n imageData.width = 0;\n imageData.height = 0;\n parseImage(imageData, image);\n imageData.width = imageData.width || (texture.width >> level) - x;\n imageData.height = imageData.height || (texture.height >> level) - y;\n tempBind(texture);\n setSubImage(imageData, GL_TEXTURE_2D$1, x, y, level);\n tempRestore();\n freeImage(imageData);\n return reglTexture2D;\n }\n function resize(w_, h_) {\n var w = w_ | 0;\n var h = h_ | 0 || w;\n if (w === texture.width && h === texture.height) {\n return reglTexture2D;\n }\n reglTexture2D.width = texture.width = w;\n reglTexture2D.height = texture.height = h;\n tempBind(texture);\n for (var i = 0; texture.mipmask >> i; ++i) {\n var _w = w >> i;\n var _h = h >> i;\n if (!_w || !_h) break;\n gl2.texImage2D(\n GL_TEXTURE_2D$1,\n i,\n texture.format,\n _w,\n _h,\n 0,\n texture.format,\n texture.type,\n null\n );\n }\n tempRestore();\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n w,\n h,\n false,\n false\n );\n }\n return reglTexture2D;\n }\n reglTexture2D(a, b);\n reglTexture2D.subimage = subimage;\n reglTexture2D.resize = resize;\n reglTexture2D._reglType = \"texture2d\";\n reglTexture2D._texture = texture;\n if (config.profile) {\n reglTexture2D.stats = texture.stats;\n }\n reglTexture2D.destroy = function() {\n texture.decRef();\n };\n return reglTexture2D;\n }\n function createTextureCube(a0, a1, a2, a3, a4, a5) {\n var texture = new REGLTexture(GL_TEXTURE_CUBE_MAP$1);\n textureSet[texture.id] = texture;\n stats2.cubeCount++;\n var faces = new Array(6);\n function reglTextureCube(a02, a12, a22, a32, a42, a52) {\n var i;\n var texInfo = texture.texInfo;\n TexInfo.call(texInfo);\n for (i = 0; i < 6; ++i) {\n faces[i] = allocMipMap();\n }\n if (typeof a02 === \"number\" || !a02) {\n var s = a02 | 0 || 1;\n for (i = 0; i < 6; ++i) {\n parseMipMapFromShape(faces[i], s, s);\n }\n } else if (typeof a02 === \"object\") {\n if (a12) {\n parseMipMapFromObject(faces[0], a02);\n parseMipMapFromObject(faces[1], a12);\n parseMipMapFromObject(faces[2], a22);\n parseMipMapFromObject(faces[3], a32);\n parseMipMapFromObject(faces[4], a42);\n parseMipMapFromObject(faces[5], a52);\n } else {\n parseTexInfo(texInfo, a02);\n parseFlags(texture, a02);\n if (\"faces\" in a02) {\n var faceInput = a02.faces;\n for (i = 0; i < 6; ++i) {\n copyFlags(faces[i], texture);\n parseMipMapFromObject(faces[i], faceInput[i]);\n }\n } else {\n for (i = 0; i < 6; ++i) {\n parseMipMapFromObject(faces[i], a02);\n }\n }\n }\n } else {\n }\n copyFlags(texture, faces[0]);\n if (texInfo.genMipmaps) {\n texture.mipmask = (faces[0].width << 1) - 1;\n } else {\n texture.mipmask = faces[0].mipmask;\n }\n texture.internalformat = faces[0].internalformat;\n reglTextureCube.width = faces[0].width;\n reglTextureCube.height = faces[0].height;\n tempBind(texture);\n for (i = 0; i < 6; ++i) {\n setMipMap(faces[i], GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + i);\n }\n setTexInfo(texInfo, GL_TEXTURE_CUBE_MAP$1);\n tempRestore();\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n reglTextureCube.width,\n reglTextureCube.height,\n texInfo.genMipmaps,\n true\n );\n }\n reglTextureCube.format = textureFormatsInvert[texture.internalformat];\n reglTextureCube.type = textureTypesInvert[texture.type];\n reglTextureCube.mag = magFiltersInvert[texInfo.magFilter];\n reglTextureCube.min = minFiltersInvert[texInfo.minFilter];\n reglTextureCube.wrapS = wrapModesInvert[texInfo.wrapS];\n reglTextureCube.wrapT = wrapModesInvert[texInfo.wrapT];\n for (i = 0; i < 6; ++i) {\n freeMipMap(faces[i]);\n }\n return reglTextureCube;\n }\n function subimage(face, image, x_, y_, level_) {\n var x = x_ | 0;\n var y = y_ | 0;\n var level = level_ | 0;\n var imageData = allocImage();\n copyFlags(imageData, texture);\n imageData.width = 0;\n imageData.height = 0;\n parseImage(imageData, image);\n imageData.width = imageData.width || (texture.width >> level) - x;\n imageData.height = imageData.height || (texture.height >> level) - y;\n tempBind(texture);\n setSubImage(imageData, GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + face, x, y, level);\n tempRestore();\n freeImage(imageData);\n return reglTextureCube;\n }\n function resize(radius_) {\n var radius = radius_ | 0;\n if (radius === texture.width) {\n return;\n }\n reglTextureCube.width = texture.width = radius;\n reglTextureCube.height = texture.height = radius;\n tempBind(texture);\n for (var i = 0; i < 6; ++i) {\n for (var j = 0; texture.mipmask >> j; ++j) {\n gl2.texImage2D(\n GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + i,\n j,\n texture.format,\n radius >> j,\n radius >> j,\n 0,\n texture.format,\n texture.type,\n null\n );\n }\n }\n tempRestore();\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n reglTextureCube.width,\n reglTextureCube.height,\n false,\n true\n );\n }\n return reglTextureCube;\n }\n reglTextureCube(a0, a1, a2, a3, a4, a5);\n reglTextureCube.subimage = subimage;\n reglTextureCube.resize = resize;\n reglTextureCube._reglType = \"textureCube\";\n reglTextureCube._texture = texture;\n if (config.profile) {\n reglTextureCube.stats = texture.stats;\n }\n reglTextureCube.destroy = function() {\n texture.decRef();\n };\n return reglTextureCube;\n }\n function destroyTextures() {\n for (var i = 0; i < numTexUnits; ++i) {\n gl2.activeTexture(GL_TEXTURE0$1 + i);\n gl2.bindTexture(GL_TEXTURE_2D$1, null);\n textureUnits[i] = null;\n }\n values(textureSet).forEach(destroy);\n stats2.cubeCount = 0;\n stats2.textureCount = 0;\n }\n if (config.profile) {\n stats2.getTotalTextureSize = function() {\n var total = 0;\n Object.keys(textureSet).forEach(function(key) {\n total += textureSet[key].stats.size;\n });\n return total;\n };\n }\n function restoreTextures() {\n for (var i = 0; i < numTexUnits; ++i) {\n var tex = textureUnits[i];\n if (tex) {\n tex.bindCount = 0;\n tex.unit = -1;\n textureUnits[i] = null;\n }\n }\n values(textureSet).forEach(function(texture) {\n texture.texture = gl2.createTexture();\n gl2.bindTexture(texture.target, texture.texture);\n for (var i2 = 0; i2 < 32; ++i2) {\n if ((texture.mipmask & 1 << i2) === 0) {\n continue;\n }\n if (texture.target === GL_TEXTURE_2D$1) {\n gl2.texImage2D(\n GL_TEXTURE_2D$1,\n i2,\n texture.internalformat,\n texture.width >> i2,\n texture.height >> i2,\n 0,\n texture.internalformat,\n texture.type,\n null\n );\n } else {\n for (var j = 0; j < 6; ++j) {\n gl2.texImage2D(\n GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + j,\n i2,\n texture.internalformat,\n texture.width >> i2,\n texture.height >> i2,\n 0,\n texture.internalformat,\n texture.type,\n null\n );\n }\n }\n }\n setTexInfo(texture.texInfo, texture.target);\n });\n }\n function refreshTextures() {\n for (var i = 0; i < numTexUnits; ++i) {\n var tex = textureUnits[i];\n if (tex) {\n tex.bindCount = 0;\n tex.unit = -1;\n textureUnits[i] = null;\n }\n gl2.activeTexture(GL_TEXTURE0$1 + i);\n gl2.bindTexture(GL_TEXTURE_2D$1, null);\n gl2.bindTexture(GL_TEXTURE_CUBE_MAP$1, null);\n }\n }\n return {\n create2D: createTexture2D,\n createCube: createTextureCube,\n clear: destroyTextures,\n getTexture: function(wrapper) {\n return null;\n },\n restore: restoreTextures,\n refresh: refreshTextures\n };\n }\n var GL_RENDERBUFFER = 36161;\n var GL_RGBA4$1 = 32854;\n var GL_RGB5_A1$1 = 32855;\n var GL_RGB565$1 = 36194;\n var GL_DEPTH_COMPONENT16 = 33189;\n var GL_STENCIL_INDEX8 = 36168;\n var GL_DEPTH_STENCIL$1 = 34041;\n var GL_SRGB8_ALPHA8_EXT = 35907;\n var GL_RGBA32F_EXT = 34836;\n var GL_RGBA16F_EXT = 34842;\n var GL_RGB16F_EXT = 34843;\n var FORMAT_SIZES = [];\n FORMAT_SIZES[GL_RGBA4$1] = 2;\n FORMAT_SIZES[GL_RGB5_A1$1] = 2;\n FORMAT_SIZES[GL_RGB565$1] = 2;\n FORMAT_SIZES[GL_DEPTH_COMPONENT16] = 2;\n FORMAT_SIZES[GL_STENCIL_INDEX8] = 1;\n FORMAT_SIZES[GL_DEPTH_STENCIL$1] = 4;\n FORMAT_SIZES[GL_SRGB8_ALPHA8_EXT] = 4;\n FORMAT_SIZES[GL_RGBA32F_EXT] = 16;\n FORMAT_SIZES[GL_RGBA16F_EXT] = 8;\n FORMAT_SIZES[GL_RGB16F_EXT] = 6;\n function getRenderbufferSize(format, width, height) {\n return FORMAT_SIZES[format] * width * height;\n }\n var wrapRenderbuffers = function(gl2, extensions, limits, stats2, config) {\n var formatTypes = {\n \"rgba4\": GL_RGBA4$1,\n \"rgb565\": GL_RGB565$1,\n \"rgb5 a1\": GL_RGB5_A1$1,\n \"depth\": GL_DEPTH_COMPONENT16,\n \"stencil\": GL_STENCIL_INDEX8,\n \"depth stencil\": GL_DEPTH_STENCIL$1\n };\n if (extensions.ext_srgb) {\n formatTypes[\"srgba\"] = GL_SRGB8_ALPHA8_EXT;\n }\n if (extensions.ext_color_buffer_half_float) {\n formatTypes[\"rgba16f\"] = GL_RGBA16F_EXT;\n formatTypes[\"rgb16f\"] = GL_RGB16F_EXT;\n }\n if (extensions.webgl_color_buffer_float) {\n formatTypes[\"rgba32f\"] = GL_RGBA32F_EXT;\n }\n var formatTypesInvert = [];\n Object.keys(formatTypes).forEach(function(key) {\n var val = formatTypes[key];\n formatTypesInvert[val] = key;\n });\n var renderbufferCount = 0;\n var renderbufferSet = {};\n function REGLRenderbuffer(renderbuffer) {\n this.id = renderbufferCount++;\n this.refCount = 1;\n this.renderbuffer = renderbuffer;\n this.format = GL_RGBA4$1;\n this.width = 0;\n this.height = 0;\n if (config.profile) {\n this.stats = { size: 0 };\n }\n }\n REGLRenderbuffer.prototype.decRef = function() {\n if (--this.refCount <= 0) {\n destroy(this);\n }\n };\n function destroy(rb) {\n var handle = rb.renderbuffer;\n gl2.bindRenderbuffer(GL_RENDERBUFFER, null);\n gl2.deleteRenderbuffer(handle);\n rb.renderbuffer = null;\n rb.refCount = 0;\n delete renderbufferSet[rb.id];\n stats2.renderbufferCount--;\n }\n function createRenderbuffer(a, b) {\n var renderbuffer = new REGLRenderbuffer(gl2.createRenderbuffer());\n renderbufferSet[renderbuffer.id] = renderbuffer;\n stats2.renderbufferCount++;\n function reglRenderbuffer(a2, b2) {\n var w = 0;\n var h = 0;\n var format = GL_RGBA4$1;\n if (typeof a2 === \"object\" && a2) {\n var options = a2;\n if (\"shape\" in options) {\n var shape = options.shape;\n w = shape[0] | 0;\n h = shape[1] | 0;\n } else {\n if (\"radius\" in options) {\n w = h = options.radius | 0;\n }\n if (\"width\" in options) {\n w = options.width | 0;\n }\n if (\"height\" in options) {\n h = options.height | 0;\n }\n }\n if (\"format\" in options) {\n format = formatTypes[options.format];\n }\n } else if (typeof a2 === \"number\") {\n w = a2 | 0;\n if (typeof b2 === \"number\") {\n h = b2 | 0;\n } else {\n h = w;\n }\n } else if (!a2) {\n w = h = 1;\n } else {\n }\n if (w === renderbuffer.width && h === renderbuffer.height && format === renderbuffer.format) {\n return;\n }\n reglRenderbuffer.width = renderbuffer.width = w;\n reglRenderbuffer.height = renderbuffer.height = h;\n renderbuffer.format = format;\n gl2.bindRenderbuffer(GL_RENDERBUFFER, renderbuffer.renderbuffer);\n gl2.renderbufferStorage(GL_RENDERBUFFER, format, w, h);\n if (config.profile) {\n renderbuffer.stats.size = getRenderbufferSize(renderbuffer.format, renderbuffer.width, renderbuffer.height);\n }\n reglRenderbuffer.format = formatTypesInvert[renderbuffer.format];\n return reglRenderbuffer;\n }\n function resize(w_, h_) {\n var w = w_ | 0;\n var h = h_ | 0 || w;\n if (w === renderbuffer.width && h === renderbuffer.height) {\n return reglRenderbuffer;\n }\n reglRenderbuffer.width = renderbuffer.width = w;\n reglRenderbuffer.height = renderbuffer.height = h;\n gl2.bindRenderbuffer(GL_RENDERBUFFER, renderbuffer.renderbuffer);\n gl2.renderbufferStorage(GL_RENDERBUFFER, renderbuffer.format, w, h);\n if (config.profile) {\n renderbuffer.stats.size = getRenderbufferSize(\n renderbuffer.format,\n renderbuffer.width,\n renderbuffer.height\n );\n }\n return reglRenderbuffer;\n }\n reglRenderbuffer(a, b);\n reglRenderbuffer.resize = resize;\n reglRenderbuffer._reglType = \"renderbuffer\";\n reglRenderbuffer._renderbuffer = renderbuffer;\n if (config.profile) {\n reglRenderbuffer.stats = renderbuffer.stats;\n }\n reglRenderbuffer.destroy = function() {\n renderbuffer.decRef();\n };\n return reglRenderbuffer;\n }\n if (config.profile) {\n stats2.getTotalRenderbufferSize = function() {\n var total = 0;\n Object.keys(renderbufferSet).forEach(function(key) {\n total += renderbufferSet[key].stats.size;\n });\n return total;\n };\n }\n function restoreRenderbuffers() {\n values(renderbufferSet).forEach(function(rb) {\n rb.renderbuffer = gl2.createRenderbuffer();\n gl2.bindRenderbuffer(GL_RENDERBUFFER, rb.renderbuffer);\n gl2.renderbufferStorage(GL_RENDERBUFFER, rb.format, rb.width, rb.height);\n });\n gl2.bindRenderbuffer(GL_RENDERBUFFER, null);\n }\n return {\n create: createRenderbuffer,\n clear: function() {\n values(renderbufferSet).forEach(destroy);\n },\n restore: restoreRenderbuffers\n };\n };\n var GL_FRAMEBUFFER$1 = 36160;\n var GL_RENDERBUFFER$1 = 36161;\n var GL_TEXTURE_2D$2 = 3553;\n var GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 = 34069;\n var GL_COLOR_ATTACHMENT0$1 = 36064;\n var GL_DEPTH_ATTACHMENT = 36096;\n var GL_STENCIL_ATTACHMENT = 36128;\n var GL_DEPTH_STENCIL_ATTACHMENT = 33306;\n var GL_FRAMEBUFFER_COMPLETE$1 = 36053;\n var GL_HALF_FLOAT_OES$1 = 36193;\n var GL_UNSIGNED_BYTE$5 = 5121;\n var GL_FLOAT$4 = 5126;\n var GL_RGB$1 = 6407;\n var GL_RGBA$2 = 6408;\n var textureFormatChannels = [];\n textureFormatChannels[GL_RGBA$2] = 4;\n textureFormatChannels[GL_RGB$1] = 3;\n var textureTypeSizes = [];\n textureTypeSizes[GL_UNSIGNED_BYTE$5] = 1;\n textureTypeSizes[GL_FLOAT$4] = 4;\n textureTypeSizes[GL_HALF_FLOAT_OES$1] = 2;\n function wrapFBOState(gl2, extensions, limits, textureState, renderbufferState, stats2) {\n var framebufferState = {\n cur: null,\n next: null,\n dirty: false,\n setFBO: null\n };\n var colorTextureFormats = [\"rgba\"];\n var colorRenderbufferFormats = [\"rgba4\", \"rgb565\", \"rgb5 a1\"];\n if (extensions.ext_srgb) {\n colorRenderbufferFormats.push(\"srgba\");\n }\n if (extensions.ext_color_buffer_half_float) {\n colorRenderbufferFormats.push(\"rgba16f\", \"rgb16f\");\n }\n if (extensions.webgl_color_buffer_float) {\n colorRenderbufferFormats.push(\"rgba32f\");\n }\n var colorTypes = [\"uint8\"];\n if (extensions.oes_texture_half_float) {\n colorTypes.push(\"half float\", \"float16\");\n }\n if (extensions.oes_texture_float) {\n colorTypes.push(\"float\", \"float32\");\n }\n function FramebufferAttachment(target, texture, renderbuffer) {\n this.target = target;\n this.texture = texture;\n this.renderbuffer = renderbuffer;\n var w = 0;\n var h = 0;\n if (texture) {\n w = texture.width;\n h = texture.height;\n } else if (renderbuffer) {\n w = renderbuffer.width;\n h = renderbuffer.height;\n }\n this.width = w;\n this.height = h;\n }\n function decRef(attachment) {\n if (attachment) {\n if (attachment.texture) {\n attachment.texture._texture.decRef();\n }\n if (attachment.renderbuffer) {\n attachment.renderbuffer._renderbuffer.decRef();\n }\n }\n }\n function incRefAndCheckShape(attachment, width, height) {\n if (!attachment) {\n return;\n }\n if (attachment.texture) {\n var texture = attachment.texture._texture;\n var tw = Math.max(1, texture.width);\n var th = Math.max(1, texture.height);\n texture.refCount += 1;\n } else {\n var renderbuffer = attachment.renderbuffer._renderbuffer;\n renderbuffer.refCount += 1;\n }\n }\n function attach(location2, attachment) {\n if (attachment) {\n if (attachment.texture) {\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n location2,\n attachment.target,\n attachment.texture._texture.texture,\n 0\n );\n } else {\n gl2.framebufferRenderbuffer(\n GL_FRAMEBUFFER$1,\n location2,\n GL_RENDERBUFFER$1,\n attachment.renderbuffer._renderbuffer.renderbuffer\n );\n }\n }\n }\n function parseAttachment(attachment) {\n var target = GL_TEXTURE_2D$2;\n var texture = null;\n var renderbuffer = null;\n var data = attachment;\n if (typeof attachment === \"object\") {\n data = attachment.data;\n if (\"target\" in attachment) {\n target = attachment.target | 0;\n }\n }\n var type = data._reglType;\n if (type === \"texture2d\") {\n texture = data;\n } else if (type === \"textureCube\") {\n texture = data;\n } else if (type === \"renderbuffer\") {\n renderbuffer = data;\n target = GL_RENDERBUFFER$1;\n } else {\n }\n return new FramebufferAttachment(target, texture, renderbuffer);\n }\n function allocAttachment(width, height, isTexture, format, type) {\n if (isTexture) {\n var texture = textureState.create2D({\n width,\n height,\n format,\n type\n });\n texture._texture.refCount = 0;\n return new FramebufferAttachment(GL_TEXTURE_2D$2, texture, null);\n } else {\n var rb = renderbufferState.create({\n width,\n height,\n format\n });\n rb._renderbuffer.refCount = 0;\n return new FramebufferAttachment(GL_RENDERBUFFER$1, null, rb);\n }\n }\n function unwrapAttachment(attachment) {\n return attachment && (attachment.texture || attachment.renderbuffer);\n }\n function resizeAttachment(attachment, w, h) {\n if (attachment) {\n if (attachment.texture) {\n attachment.texture.resize(w, h);\n } else if (attachment.renderbuffer) {\n attachment.renderbuffer.resize(w, h);\n }\n attachment.width = w;\n attachment.height = h;\n }\n }\n var framebufferCount = 0;\n var framebufferSet = {};\n function REGLFramebuffer() {\n this.id = framebufferCount++;\n framebufferSet[this.id] = this;\n this.framebuffer = gl2.createFramebuffer();\n this.width = 0;\n this.height = 0;\n this.colorAttachments = [];\n this.depthAttachment = null;\n this.stencilAttachment = null;\n this.depthStencilAttachment = null;\n }\n function decFBORefs(framebuffer) {\n framebuffer.colorAttachments.forEach(decRef);\n decRef(framebuffer.depthAttachment);\n decRef(framebuffer.stencilAttachment);\n decRef(framebuffer.depthStencilAttachment);\n }\n function destroy(framebuffer) {\n var handle = framebuffer.framebuffer;\n gl2.deleteFramebuffer(handle);\n framebuffer.framebuffer = null;\n stats2.framebufferCount--;\n delete framebufferSet[framebuffer.id];\n }\n function updateFramebuffer(framebuffer) {\n var i;\n gl2.bindFramebuffer(GL_FRAMEBUFFER$1, framebuffer.framebuffer);\n var colorAttachments = framebuffer.colorAttachments;\n for (i = 0; i < colorAttachments.length; ++i) {\n attach(GL_COLOR_ATTACHMENT0$1 + i, colorAttachments[i]);\n }\n for (i = colorAttachments.length; i < limits.maxColorAttachments; ++i) {\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_COLOR_ATTACHMENT0$1 + i,\n GL_TEXTURE_2D$2,\n null,\n 0\n );\n }\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_DEPTH_STENCIL_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0\n );\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_DEPTH_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0\n );\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_STENCIL_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0\n );\n attach(GL_DEPTH_ATTACHMENT, framebuffer.depthAttachment);\n attach(GL_STENCIL_ATTACHMENT, framebuffer.stencilAttachment);\n attach(GL_DEPTH_STENCIL_ATTACHMENT, framebuffer.depthStencilAttachment);\n var status = gl2.checkFramebufferStatus(GL_FRAMEBUFFER$1);\n if (!gl2.isContextLost() && status !== GL_FRAMEBUFFER_COMPLETE$1) {\n }\n gl2.bindFramebuffer(GL_FRAMEBUFFER$1, framebufferState.next ? framebufferState.next.framebuffer : null);\n framebufferState.cur = framebufferState.next;\n gl2.getError();\n }\n function createFBO(a0, a1) {\n var framebuffer = new REGLFramebuffer();\n stats2.framebufferCount++;\n function reglFramebuffer(a, b) {\n var i;\n var width = 0;\n var height = 0;\n var needsDepth = true;\n var needsStencil = true;\n var colorBuffer = null;\n var colorTexture = true;\n var colorFormat = \"rgba\";\n var colorType = \"uint8\";\n var colorCount = 1;\n var depthBuffer = null;\n var stencilBuffer = null;\n var depthStencilBuffer = null;\n var depthStencilTexture = false;\n if (typeof a === \"number\") {\n width = a | 0;\n height = b | 0 || width;\n } else if (!a) {\n width = height = 1;\n } else {\n var options = a;\n if (\"shape\" in options) {\n var shape = options.shape;\n width = shape[0];\n height = shape[1];\n } else {\n if (\"radius\" in options) {\n width = height = options.radius;\n }\n if (\"width\" in options) {\n width = options.width;\n }\n if (\"height\" in options) {\n height = options.height;\n }\n }\n if (\"color\" in options || \"colors\" in options) {\n colorBuffer = options.color || options.colors;\n if (Array.isArray(colorBuffer)) {\n }\n }\n if (!colorBuffer) {\n if (\"colorCount\" in options) {\n colorCount = options.colorCount | 0;\n }\n if (\"colorTexture\" in options) {\n colorTexture = !!options.colorTexture;\n colorFormat = \"rgba4\";\n }\n if (\"colorType\" in options) {\n colorType = options.colorType;\n if (!colorTexture) {\n if (colorType === \"half float\" || colorType === \"float16\") {\n colorFormat = \"rgba16f\";\n } else if (colorType === \"float\" || colorType === \"float32\") {\n colorFormat = \"rgba32f\";\n }\n } else {\n }\n }\n if (\"colorFormat\" in options) {\n colorFormat = options.colorFormat;\n if (colorTextureFormats.indexOf(colorFormat) >= 0) {\n colorTexture = true;\n } else if (colorRenderbufferFormats.indexOf(colorFormat) >= 0) {\n colorTexture = false;\n } else {\n }\n }\n }\n if (\"depthTexture\" in options || \"depthStencilTexture\" in options) {\n depthStencilTexture = !!(options.depthTexture || options.depthStencilTexture);\n }\n if (\"depth\" in options) {\n if (typeof options.depth === \"boolean\") {\n needsDepth = options.depth;\n } else {\n depthBuffer = options.depth;\n needsStencil = false;\n }\n }\n if (\"stencil\" in options) {\n if (typeof options.stencil === \"boolean\") {\n needsStencil = options.stencil;\n } else {\n stencilBuffer = options.stencil;\n needsDepth = false;\n }\n }\n if (\"depthStencil\" in options) {\n if (typeof options.depthStencil === \"boolean\") {\n needsDepth = needsStencil = options.depthStencil;\n } else {\n depthStencilBuffer = options.depthStencil;\n needsDepth = false;\n needsStencil = false;\n }\n }\n }\n var colorAttachments = null;\n var depthAttachment = null;\n var stencilAttachment = null;\n var depthStencilAttachment = null;\n if (Array.isArray(colorBuffer)) {\n colorAttachments = colorBuffer.map(parseAttachment);\n } else if (colorBuffer) {\n colorAttachments = [parseAttachment(colorBuffer)];\n } else {\n colorAttachments = new Array(colorCount);\n for (i = 0; i < colorCount; ++i) {\n colorAttachments[i] = allocAttachment(\n width,\n height,\n colorTexture,\n colorFormat,\n colorType\n );\n }\n }\n width = width || colorAttachments[0].width;\n height = height || colorAttachments[0].height;\n if (depthBuffer) {\n depthAttachment = parseAttachment(depthBuffer);\n } else if (needsDepth && !needsStencil) {\n depthAttachment = allocAttachment(\n width,\n height,\n depthStencilTexture,\n \"depth\",\n \"uint32\"\n );\n }\n if (stencilBuffer) {\n stencilAttachment = parseAttachment(stencilBuffer);\n } else if (needsStencil && !needsDepth) {\n stencilAttachment = allocAttachment(\n width,\n height,\n false,\n \"stencil\",\n \"uint8\"\n );\n }\n if (depthStencilBuffer) {\n depthStencilAttachment = parseAttachment(depthStencilBuffer);\n } else if (!depthBuffer && !stencilBuffer && needsStencil && needsDepth) {\n depthStencilAttachment = allocAttachment(\n width,\n height,\n depthStencilTexture,\n \"depth stencil\",\n \"depth stencil\"\n );\n }\n var commonColorAttachmentSize = null;\n for (i = 0; i < colorAttachments.length; ++i) {\n incRefAndCheckShape(colorAttachments[i], width, height);\n if (colorAttachments[i] && colorAttachments[i].texture) {\n var colorAttachmentSize = textureFormatChannels[colorAttachments[i].texture._texture.format] * textureTypeSizes[colorAttachments[i].texture._texture.type];\n if (commonColorAttachmentSize === null) {\n commonColorAttachmentSize = colorAttachmentSize;\n } else {\n }\n }\n }\n incRefAndCheckShape(depthAttachment, width, height);\n incRefAndCheckShape(stencilAttachment, width, height);\n incRefAndCheckShape(depthStencilAttachment, width, height);\n decFBORefs(framebuffer);\n framebuffer.width = width;\n framebuffer.height = height;\n framebuffer.colorAttachments = colorAttachments;\n framebuffer.depthAttachment = depthAttachment;\n framebuffer.stencilAttachment = stencilAttachment;\n framebuffer.depthStencilAttachment = depthStencilAttachment;\n reglFramebuffer.color = colorAttachments.map(unwrapAttachment);\n reglFramebuffer.depth = unwrapAttachment(depthAttachment);\n reglFramebuffer.stencil = unwrapAttachment(stencilAttachment);\n reglFramebuffer.depthStencil = unwrapAttachment(depthStencilAttachment);\n reglFramebuffer.width = framebuffer.width;\n reglFramebuffer.height = framebuffer.height;\n updateFramebuffer(framebuffer);\n return reglFramebuffer;\n }\n function resize(w_, h_) {\n var w = Math.max(w_ | 0, 1);\n var h = Math.max(h_ | 0 || w, 1);\n if (w === framebuffer.width && h === framebuffer.height) {\n return reglFramebuffer;\n }\n var colorAttachments = framebuffer.colorAttachments;\n for (var i = 0; i < colorAttachments.length; ++i) {\n resizeAttachment(colorAttachments[i], w, h);\n }\n resizeAttachment(framebuffer.depthAttachment, w, h);\n resizeAttachment(framebuffer.stencilAttachment, w, h);\n resizeAttachment(framebuffer.depthStencilAttachment, w, h);\n framebuffer.width = reglFramebuffer.width = w;\n framebuffer.height = reglFramebuffer.height = h;\n updateFramebuffer(framebuffer);\n return reglFramebuffer;\n }\n reglFramebuffer(a0, a1);\n return extend2(reglFramebuffer, {\n resize,\n _reglType: \"framebuffer\",\n _framebuffer: framebuffer,\n destroy: function() {\n destroy(framebuffer);\n decFBORefs(framebuffer);\n },\n use: function(block) {\n framebufferState.setFBO({\n framebuffer: reglFramebuffer\n }, block);\n }\n });\n }\n function createCubeFBO(options) {\n var faces = Array(6);\n function reglFramebufferCube(a) {\n var i;\n var params = {\n color: null\n };\n var radius = 0;\n var colorBuffer = null;\n var colorFormat = \"rgba\";\n var colorType = \"uint8\";\n var colorCount = 1;\n if (typeof a === \"number\") {\n radius = a | 0;\n } else if (!a) {\n radius = 1;\n } else {\n var options2 = a;\n if (\"shape\" in options2) {\n var shape = options2.shape;\n radius = shape[0];\n } else {\n if (\"radius\" in options2) {\n radius = options2.radius | 0;\n }\n if (\"width\" in options2) {\n radius = options2.width | 0;\n if (\"height\" in options2) {\n }\n } else if (\"height\" in options2) {\n radius = options2.height | 0;\n }\n }\n if (\"color\" in options2 || \"colors\" in options2) {\n colorBuffer = options2.color || options2.colors;\n if (Array.isArray(colorBuffer)) {\n }\n }\n if (!colorBuffer) {\n if (\"colorCount\" in options2) {\n colorCount = options2.colorCount | 0;\n }\n if (\"colorType\" in options2) {\n colorType = options2.colorType;\n }\n if (\"colorFormat\" in options2) {\n colorFormat = options2.colorFormat;\n }\n }\n if (\"depth\" in options2) {\n params.depth = options2.depth;\n }\n if (\"stencil\" in options2) {\n params.stencil = options2.stencil;\n }\n if (\"depthStencil\" in options2) {\n params.depthStencil = options2.depthStencil;\n }\n }\n var colorCubes;\n if (colorBuffer) {\n if (Array.isArray(colorBuffer)) {\n colorCubes = [];\n for (i = 0; i < colorBuffer.length; ++i) {\n colorCubes[i] = colorBuffer[i];\n }\n } else {\n colorCubes = [colorBuffer];\n }\n } else {\n colorCubes = Array(colorCount);\n var cubeMapParams = {\n radius,\n format: colorFormat,\n type: colorType\n };\n for (i = 0; i < colorCount; ++i) {\n colorCubes[i] = textureState.createCube(cubeMapParams);\n }\n }\n params.color = Array(colorCubes.length);\n for (i = 0; i < colorCubes.length; ++i) {\n var cube = colorCubes[i];\n radius = radius || cube.width;\n params.color[i] = {\n target: GL_TEXTURE_CUBE_MAP_POSITIVE_X$2,\n data: colorCubes[i]\n };\n }\n for (i = 0; i < 6; ++i) {\n for (var j = 0; j < colorCubes.length; ++j) {\n params.color[j].target = GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 + i;\n }\n if (i > 0) {\n params.depth = faces[0].depth;\n params.stencil = faces[0].stencil;\n params.depthStencil = faces[0].depthStencil;\n }\n if (faces[i]) {\n faces[i](params);\n } else {\n faces[i] = createFBO(params);\n }\n }\n return extend2(reglFramebufferCube, {\n width: radius,\n height: radius,\n color: colorCubes\n });\n }\n function resize(radius_) {\n var i;\n var radius = radius_ | 0;\n if (radius === reglFramebufferCube.width) {\n return reglFramebufferCube;\n }\n var colors = reglFramebufferCube.color;\n for (i = 0; i < colors.length; ++i) {\n colors[i].resize(radius);\n }\n for (i = 0; i < 6; ++i) {\n faces[i].resize(radius);\n }\n reglFramebufferCube.width = reglFramebufferCube.height = radius;\n return reglFramebufferCube;\n }\n reglFramebufferCube(options);\n return extend2(reglFramebufferCube, {\n faces,\n resize,\n _reglType: \"framebufferCube\",\n destroy: function() {\n faces.forEach(function(f) {\n f.destroy();\n });\n }\n });\n }\n function restoreFramebuffers() {\n framebufferState.cur = null;\n framebufferState.next = null;\n framebufferState.dirty = true;\n values(framebufferSet).forEach(function(fb) {\n fb.framebuffer = gl2.createFramebuffer();\n updateFramebuffer(fb);\n });\n }\n return extend2(framebufferState, {\n getFramebuffer: function(object) {\n if (typeof object === \"function\" && object._reglType === \"framebuffer\") {\n var fbo = object._framebuffer;\n if (fbo instanceof REGLFramebuffer) {\n return fbo;\n }\n }\n return null;\n },\n create: createFBO,\n createCube: createCubeFBO,\n clear: function() {\n values(framebufferSet).forEach(destroy);\n },\n restore: restoreFramebuffers\n });\n }\n var GL_FLOAT$5 = 5126;\n var GL_ARRAY_BUFFER$1 = 34962;\n var GL_ELEMENT_ARRAY_BUFFER$1 = 34963;\n function AttributeRecord() {\n this.state = 0;\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 0;\n this.buffer = null;\n this.size = 0;\n this.normalized = false;\n this.type = GL_FLOAT$5;\n this.offset = 0;\n this.stride = 0;\n this.divisor = 0;\n }\n function wrapAttributeState(gl2, extensions, limits, stats2, bufferState, elementState, drawState) {\n var NUM_ATTRIBUTES = limits.maxAttributes;\n var attributeBindings = new Array(NUM_ATTRIBUTES);\n for (var i = 0; i < NUM_ATTRIBUTES; ++i) {\n attributeBindings[i] = new AttributeRecord();\n }\n var vaoCount = 0;\n var vaoSet = {};\n var state = {\n Record: AttributeRecord,\n scope: {},\n state: attributeBindings,\n currentVAO: null,\n targetVAO: null,\n restore: extVAO() ? restoreVAO : function() {\n },\n createVAO,\n getVAO,\n destroyBuffer,\n setVAO: extVAO() ? setVAOEXT : setVAOEmulated,\n clear: extVAO() ? destroyVAOEXT : function() {\n }\n };\n function destroyBuffer(buffer) {\n for (var i2 = 0; i2 < attributeBindings.length; ++i2) {\n var record = attributeBindings[i2];\n if (record.buffer === buffer) {\n gl2.disableVertexAttribArray(i2);\n record.buffer = null;\n }\n }\n }\n function extVAO() {\n return extensions.oes_vertex_array_object;\n }\n function extInstanced() {\n return extensions.angle_instanced_arrays;\n }\n function getVAO(vao) {\n if (typeof vao === \"function\" && vao._vao) {\n return vao._vao;\n }\n return null;\n }\n function setVAOEXT(vao) {\n if (vao === state.currentVAO) {\n return;\n }\n var ext = extVAO();\n if (vao) {\n ext.bindVertexArrayOES(vao.vao);\n } else {\n ext.bindVertexArrayOES(null);\n }\n state.currentVAO = vao;\n }\n function setVAOEmulated(vao) {\n if (vao === state.currentVAO) {\n return;\n }\n if (vao) {\n vao.bindAttrs();\n } else {\n var exti = extInstanced();\n for (var i2 = 0; i2 < attributeBindings.length; ++i2) {\n var binding = attributeBindings[i2];\n if (binding.buffer) {\n gl2.enableVertexAttribArray(i2);\n binding.buffer.bind();\n gl2.vertexAttribPointer(i2, binding.size, binding.type, binding.normalized, binding.stride, binding.offfset);\n if (exti && binding.divisor) {\n exti.vertexAttribDivisorANGLE(i2, binding.divisor);\n }\n } else {\n gl2.disableVertexAttribArray(i2);\n gl2.vertexAttrib4f(i2, binding.x, binding.y, binding.z, binding.w);\n }\n }\n if (drawState.elements) {\n gl2.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, drawState.elements.buffer.buffer);\n } else {\n gl2.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, null);\n }\n }\n state.currentVAO = vao;\n }\n function destroyVAOEXT() {\n values(vaoSet).forEach(function(vao) {\n vao.destroy();\n });\n }\n function REGLVAO() {\n this.id = ++vaoCount;\n this.attributes = [];\n this.elements = null;\n this.ownsElements = false;\n this.count = 0;\n this.offset = 0;\n this.instances = -1;\n this.primitive = 4;\n var extension = extVAO();\n if (extension) {\n this.vao = extension.createVertexArrayOES();\n } else {\n this.vao = null;\n }\n vaoSet[this.id] = this;\n this.buffers = [];\n }\n REGLVAO.prototype.bindAttrs = function() {\n var exti = extInstanced();\n var attributes = this.attributes;\n for (var i2 = 0; i2 < attributes.length; ++i2) {\n var attr = attributes[i2];\n if (attr.buffer) {\n gl2.enableVertexAttribArray(i2);\n gl2.bindBuffer(GL_ARRAY_BUFFER$1, attr.buffer.buffer);\n gl2.vertexAttribPointer(i2, attr.size, attr.type, attr.normalized, attr.stride, attr.offset);\n if (exti && attr.divisor) {\n exti.vertexAttribDivisorANGLE(i2, attr.divisor);\n }\n } else {\n gl2.disableVertexAttribArray(i2);\n gl2.vertexAttrib4f(i2, attr.x, attr.y, attr.z, attr.w);\n }\n }\n for (var j = attributes.length; j < NUM_ATTRIBUTES; ++j) {\n gl2.disableVertexAttribArray(j);\n }\n var elements = elementState.getElements(this.elements);\n if (elements) {\n gl2.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, elements.buffer.buffer);\n } else {\n gl2.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, null);\n }\n };\n REGLVAO.prototype.refresh = function() {\n var ext = extVAO();\n if (ext) {\n ext.bindVertexArrayOES(this.vao);\n this.bindAttrs();\n state.currentVAO = null;\n ext.bindVertexArrayOES(null);\n }\n };\n REGLVAO.prototype.destroy = function() {\n if (this.vao) {\n var extension = extVAO();\n if (this === state.currentVAO) {\n state.currentVAO = null;\n extension.bindVertexArrayOES(null);\n }\n extension.deleteVertexArrayOES(this.vao);\n this.vao = null;\n }\n if (this.ownsElements) {\n this.elements.destroy();\n this.elements = null;\n this.ownsElements = false;\n }\n if (vaoSet[this.id]) {\n delete vaoSet[this.id];\n stats2.vaoCount -= 1;\n }\n };\n function restoreVAO() {\n var ext = extVAO();\n if (ext) {\n values(vaoSet).forEach(function(vao) {\n vao.refresh();\n });\n }\n }\n function createVAO(_attr) {\n var vao = new REGLVAO();\n stats2.vaoCount += 1;\n function updateVAO(options) {\n var attributes;\n if (Array.isArray(options)) {\n attributes = options;\n if (vao.elements && vao.ownsElements) {\n vao.elements.destroy();\n }\n vao.elements = null;\n vao.ownsElements = false;\n vao.offset = 0;\n vao.count = 0;\n vao.instances = -1;\n vao.primitive = 4;\n } else {\n if (options.elements) {\n var elements = options.elements;\n if (vao.ownsElements) {\n if (typeof elements === \"function\" && elements._reglType === \"elements\") {\n vao.elements.destroy();\n vao.ownsElements = false;\n } else {\n vao.elements(elements);\n vao.ownsElements = false;\n }\n } else if (elementState.getElements(options.elements)) {\n vao.elements = options.elements;\n vao.ownsElements = false;\n } else {\n vao.elements = elementState.create(options.elements);\n vao.ownsElements = true;\n }\n } else {\n vao.elements = null;\n vao.ownsElements = false;\n }\n attributes = options.attributes;\n vao.offset = 0;\n vao.count = -1;\n vao.instances = -1;\n vao.primitive = 4;\n if (vao.elements) {\n vao.count = vao.elements._elements.vertCount;\n vao.primitive = vao.elements._elements.primType;\n }\n if (\"offset\" in options) {\n vao.offset = options.offset | 0;\n }\n if (\"count\" in options) {\n vao.count = options.count | 0;\n }\n if (\"instances\" in options) {\n vao.instances = options.instances | 0;\n }\n if (\"primitive\" in options) {\n vao.primitive = primTypes[options.primitive];\n }\n }\n var bufUpdated = {};\n var nattributes = vao.attributes;\n nattributes.length = attributes.length;\n for (var i2 = 0; i2 < attributes.length; ++i2) {\n var spec = attributes[i2];\n var rec = nattributes[i2] = new AttributeRecord();\n var data = spec.data || spec;\n if (Array.isArray(data) || isTypedArray(data) || isNDArrayLike(data)) {\n var buf;\n if (vao.buffers[i2]) {\n buf = vao.buffers[i2];\n if (isTypedArray(data) && buf._buffer.byteLength >= data.byteLength) {\n buf.subdata(data);\n } else {\n buf.destroy();\n vao.buffers[i2] = null;\n }\n }\n if (!vao.buffers[i2]) {\n buf = vao.buffers[i2] = bufferState.create(spec, GL_ARRAY_BUFFER$1, false, true);\n }\n rec.buffer = bufferState.getBuffer(buf);\n rec.size = rec.buffer.dimension | 0;\n rec.normalized = false;\n rec.type = rec.buffer.dtype;\n rec.offset = 0;\n rec.stride = 0;\n rec.divisor = 0;\n rec.state = 1;\n bufUpdated[i2] = 1;\n } else if (bufferState.getBuffer(spec)) {\n rec.buffer = bufferState.getBuffer(spec);\n rec.size = rec.buffer.dimension | 0;\n rec.normalized = false;\n rec.type = rec.buffer.dtype;\n rec.offset = 0;\n rec.stride = 0;\n rec.divisor = 0;\n rec.state = 1;\n } else if (bufferState.getBuffer(spec.buffer)) {\n rec.buffer = bufferState.getBuffer(spec.buffer);\n rec.size = (+spec.size || rec.buffer.dimension) | 0;\n rec.normalized = !!spec.normalized || false;\n if (\"type\" in spec) {\n rec.type = glTypes[spec.type];\n } else {\n rec.type = rec.buffer.dtype;\n }\n rec.offset = (spec.offset || 0) | 0;\n rec.stride = (spec.stride || 0) | 0;\n rec.divisor = (spec.divisor || 0) | 0;\n rec.state = 1;\n } else if (\"x\" in spec) {\n rec.x = +spec.x || 0;\n rec.y = +spec.y || 0;\n rec.z = +spec.z || 0;\n rec.w = +spec.w || 0;\n rec.state = 2;\n } else {\n }\n }\n for (var j = 0; j < vao.buffers.length; ++j) {\n if (!bufUpdated[j] && vao.buffers[j]) {\n vao.buffers[j].destroy();\n vao.buffers[j] = null;\n }\n }\n vao.refresh();\n return updateVAO;\n }\n updateVAO.destroy = function() {\n for (var j = 0; j < vao.buffers.length; ++j) {\n if (vao.buffers[j]) {\n vao.buffers[j].destroy();\n }\n }\n vao.buffers.length = 0;\n if (vao.ownsElements) {\n vao.elements.destroy();\n vao.elements = null;\n vao.ownsElements = false;\n }\n vao.destroy();\n };\n updateVAO._vao = vao;\n updateVAO._reglType = \"vao\";\n return updateVAO(_attr);\n }\n return state;\n }\n var GL_FRAGMENT_SHADER = 35632;\n var GL_VERTEX_SHADER = 35633;\n var GL_ACTIVE_UNIFORMS = 35718;\n var GL_ACTIVE_ATTRIBUTES = 35721;\n function wrapShaderState(gl2, stringStore, stats2, config) {\n var fragShaders = {};\n var vertShaders = {};\n function ActiveInfo(name2, id, location2, info) {\n this.name = name2;\n this.id = id;\n this.location = location2;\n this.info = info;\n }\n function insertActiveInfo(list, info) {\n for (var i = 0; i < list.length; ++i) {\n if (list[i].id === info.id) {\n list[i].location = info.location;\n return;\n }\n }\n list.push(info);\n }\n function getShader(type, id, command) {\n var cache = type === GL_FRAGMENT_SHADER ? fragShaders : vertShaders;\n var shader = cache[id];\n if (!shader) {\n var source = stringStore.str(id);\n shader = gl2.createShader(type);\n gl2.shaderSource(shader, source);\n gl2.compileShader(shader);\n cache[id] = shader;\n }\n return shader;\n }\n var programCache = {};\n var programList = [];\n var PROGRAM_COUNTER = 0;\n function REGLProgram(fragId, vertId) {\n this.id = PROGRAM_COUNTER++;\n this.fragId = fragId;\n this.vertId = vertId;\n this.program = null;\n this.uniforms = [];\n this.attributes = [];\n this.refCount = 1;\n if (config.profile) {\n this.stats = {\n uniformsCount: 0,\n attributesCount: 0\n };\n }\n }\n function linkProgram(desc, command, attributeLocations) {\n var i, info;\n var fragShader = getShader(GL_FRAGMENT_SHADER, desc.fragId);\n var vertShader = getShader(GL_VERTEX_SHADER, desc.vertId);\n var program = desc.program = gl2.createProgram();\n gl2.attachShader(program, fragShader);\n gl2.attachShader(program, vertShader);\n if (attributeLocations) {\n for (i = 0; i < attributeLocations.length; ++i) {\n var binding = attributeLocations[i];\n gl2.bindAttribLocation(program, binding[0], binding[1]);\n }\n }\n gl2.linkProgram(program);\n var numUniforms = gl2.getProgramParameter(program, GL_ACTIVE_UNIFORMS);\n if (config.profile) {\n desc.stats.uniformsCount = numUniforms;\n }\n var uniforms = desc.uniforms;\n for (i = 0; i < numUniforms; ++i) {\n info = gl2.getActiveUniform(program, i);\n if (info) {\n if (info.size > 1) {\n for (var j = 0; j < info.size; ++j) {\n var name2 = info.name.replace(\"[0]\", \"[\" + j + \"]\");\n insertActiveInfo(uniforms, new ActiveInfo(\n name2,\n stringStore.id(name2),\n gl2.getUniformLocation(program, name2),\n info\n ));\n }\n } else {\n insertActiveInfo(uniforms, new ActiveInfo(\n info.name,\n stringStore.id(info.name),\n gl2.getUniformLocation(program, info.name),\n info\n ));\n }\n }\n }\n var numAttributes = gl2.getProgramParameter(program, GL_ACTIVE_ATTRIBUTES);\n if (config.profile) {\n desc.stats.attributesCount = numAttributes;\n }\n var attributes = desc.attributes;\n for (i = 0; i < numAttributes; ++i) {\n info = gl2.getActiveAttrib(program, i);\n if (info) {\n insertActiveInfo(attributes, new ActiveInfo(\n info.name,\n stringStore.id(info.name),\n gl2.getAttribLocation(program, info.name),\n info\n ));\n }\n }\n }\n if (config.profile) {\n stats2.getMaxUniformsCount = function() {\n var m = 0;\n programList.forEach(function(desc) {\n if (desc.stats.uniformsCount > m) {\n m = desc.stats.uniformsCount;\n }\n });\n return m;\n };\n stats2.getMaxAttributesCount = function() {\n var m = 0;\n programList.forEach(function(desc) {\n if (desc.stats.attributesCount > m) {\n m = desc.stats.attributesCount;\n }\n });\n return m;\n };\n }\n function restoreShaders() {\n fragShaders = {};\n vertShaders = {};\n for (var i = 0; i < programList.length; ++i) {\n linkProgram(programList[i], null, programList[i].attributes.map(function(info) {\n return [info.location, info.name];\n }));\n }\n }\n return {\n clear: function() {\n var deleteShader = gl2.deleteShader.bind(gl2);\n values(fragShaders).forEach(deleteShader);\n fragShaders = {};\n values(vertShaders).forEach(deleteShader);\n vertShaders = {};\n programList.forEach(function(desc) {\n gl2.deleteProgram(desc.program);\n });\n programList.length = 0;\n programCache = {};\n stats2.shaderCount = 0;\n },\n program: function(vertId, fragId, command, attribLocations) {\n var cache = programCache[fragId];\n if (!cache) {\n cache = programCache[fragId] = {};\n }\n var prevProgram = cache[vertId];\n if (prevProgram) {\n prevProgram.refCount++;\n if (!attribLocations) {\n return prevProgram;\n }\n }\n var program = new REGLProgram(fragId, vertId);\n stats2.shaderCount++;\n linkProgram(program, command, attribLocations);\n if (!prevProgram) {\n cache[vertId] = program;\n }\n programList.push(program);\n return extend2(program, {\n destroy: function() {\n program.refCount--;\n if (program.refCount <= 0) {\n gl2.deleteProgram(program.program);\n var idx = programList.indexOf(program);\n programList.splice(idx, 1);\n stats2.shaderCount--;\n }\n if (cache[program.vertId].refCount <= 0) {\n gl2.deleteShader(vertShaders[program.vertId]);\n delete vertShaders[program.vertId];\n delete programCache[program.fragId][program.vertId];\n }\n if (!Object.keys(programCache[program.fragId]).length) {\n gl2.deleteShader(fragShaders[program.fragId]);\n delete fragShaders[program.fragId];\n delete programCache[program.fragId];\n }\n }\n });\n },\n restore: restoreShaders,\n shader: getShader,\n frag: -1,\n vert: -1\n };\n }\n var GL_RGBA$3 = 6408;\n var GL_UNSIGNED_BYTE$6 = 5121;\n var GL_PACK_ALIGNMENT = 3333;\n var GL_FLOAT$6 = 5126;\n function wrapReadPixels(gl2, framebufferState, reglPoll, context, glAttributes, extensions, limits) {\n function readPixelsImpl(input) {\n var type;\n if (framebufferState.next === null) {\n type = GL_UNSIGNED_BYTE$6;\n } else {\n type = framebufferState.next.colorAttachments[0].texture._texture.type;\n }\n var x = 0;\n var y = 0;\n var width = context.framebufferWidth;\n var height = context.framebufferHeight;\n var data = null;\n if (isTypedArray(input)) {\n data = input;\n } else if (input) {\n x = input.x | 0;\n y = input.y | 0;\n width = (input.width || context.framebufferWidth - x) | 0;\n height = (input.height || context.framebufferHeight - y) | 0;\n data = input.data || null;\n }\n if (data) {\n if (type === GL_UNSIGNED_BYTE$6) {\n } else if (type === GL_FLOAT$6) {\n }\n }\n reglPoll();\n var size = width * height * 4;\n if (!data) {\n if (type === GL_UNSIGNED_BYTE$6) {\n data = new Uint8Array(size);\n } else if (type === GL_FLOAT$6) {\n data = data || new Float32Array(size);\n }\n }\n gl2.pixelStorei(GL_PACK_ALIGNMENT, 4);\n gl2.readPixels(\n x,\n y,\n width,\n height,\n GL_RGBA$3,\n type,\n data\n );\n return data;\n }\n function readPixelsFBO(options) {\n var result;\n framebufferState.setFBO({\n framebuffer: options.framebuffer\n }, function() {\n result = readPixelsImpl(options);\n });\n return result;\n }\n function readPixels(options) {\n if (!options || !(\"framebuffer\" in options)) {\n return readPixelsImpl(options);\n } else {\n return readPixelsFBO(options);\n }\n }\n return readPixels;\n }\n var hexcase = 0;\n var b64pad = \"\";\n function hex_sha256(s) {\n return rstr2hex(rstr_sha256(str2rstr_utf8(s)));\n }\n function rstr_sha256(s) {\n return binb2rstr(binb_sha256(rstr2binb(s), s.length * 8));\n }\n function rstr_hmac_sha256(key, data) {\n var bkey = rstr2binb(key);\n if (bkey.length > 16) bkey = binb_sha256(bkey, key.length * 8);\n var ipad = Array(16), opad = Array(16);\n for (var i = 0; i < 16; i++) {\n ipad[i] = bkey[i] ^ 909522486;\n opad[i] = bkey[i] ^ 1549556828;\n }\n var hash = binb_sha256(ipad.concat(rstr2binb(data)), 512 + data.length * 8);\n return binb2rstr(binb_sha256(opad.concat(hash), 512 + 256));\n }\n function rstr2hex(input) {\n var hex_tab = hexcase ? \"0123456789ABCDEF\" : \"0123456789abcdef\";\n var output = \"\";\n var x;\n for (var i = 0; i < input.length; i++) {\n x = input.charCodeAt(i);\n output += hex_tab.charAt(x >>> 4 & 15) + hex_tab.charAt(x & 15);\n }\n return output;\n }\n function rstr2b64(input) {\n var tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var output = \"\";\n var len = input.length;\n for (var i = 0; i < len; i += 3) {\n var triplet = input.charCodeAt(i) << 16 | (i + 1 < len ? input.charCodeAt(i + 1) << 8 : 0) | (i + 2 < len ? input.charCodeAt(i + 2) : 0);\n for (var j = 0; j < 4; j++) {\n if (i * 8 + j * 6 > input.length * 8) output += b64pad;\n else output += tab.charAt(triplet >>> 6 * (3 - j) & 63);\n }\n }\n return output;\n }\n function rstr2any(input, encoding) {\n var divisor = encoding.length;\n var remainders = Array();\n var i, q, x, quotient;\n var dividend = Array(Math.ceil(input.length / 2));\n for (i = 0; i < dividend.length; i++) {\n dividend[i] = input.charCodeAt(i * 2) << 8 | input.charCodeAt(i * 2 + 1);\n }\n while (dividend.length > 0) {\n quotient = Array();\n x = 0;\n for (i = 0; i < dividend.length; i++) {\n x = (x << 16) + dividend[i];\n q = Math.floor(x / divisor);\n x -= q * divisor;\n if (quotient.length > 0 || q > 0)\n quotient[quotient.length] = q;\n }\n remainders[remainders.length] = x;\n dividend = quotient;\n }\n var output = \"\";\n for (i = remainders.length - 1; i >= 0; i--)\n output += encoding.charAt(remainders[i]);\n var full_length = Math.ceil(input.length * 8 / (Math.log(encoding.length) / Math.log(2)));\n for (i = output.length; i < full_length; i++)\n output = encoding[0] + output;\n return output;\n }\n function str2rstr_utf8(input) {\n var output = \"\";\n var i = -1;\n var x, y;\n while (++i < input.length) {\n x = input.charCodeAt(i);\n y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0;\n if (55296 <= x && x <= 56319 && 56320 <= y && y <= 57343) {\n x = 65536 + ((x & 1023) << 10) + (y & 1023);\n i++;\n }\n if (x <= 127)\n output += String.fromCharCode(x);\n else if (x <= 2047)\n output += String.fromCharCode(\n 192 | x >>> 6 & 31,\n 128 | x & 63\n );\n else if (x <= 65535)\n output += String.fromCharCode(\n 224 | x >>> 12 & 15,\n 128 | x >>> 6 & 63,\n 128 | x & 63\n );\n else if (x <= 2097151)\n output += String.fromCharCode(\n 240 | x >>> 18 & 7,\n 128 | x >>> 12 & 63,\n 128 | x >>> 6 & 63,\n 128 | x & 63\n );\n }\n return output;\n }\n function rstr2binb(input) {\n var output = Array(input.length >> 2);\n for (var i = 0; i < output.length; i++)\n output[i] = 0;\n for (var i = 0; i < input.length * 8; i += 8)\n output[i >> 5] |= (input.charCodeAt(i / 8) & 255) << 24 - i % 32;\n return output;\n }\n function binb2rstr(input) {\n var output = \"\";\n for (var i = 0; i < input.length * 32; i += 8)\n output += String.fromCharCode(input[i >> 5] >>> 24 - i % 32 & 255);\n return output;\n }\n function sha256_S(X, n) {\n return X >>> n | X << 32 - n;\n }\n function sha256_R(X, n) {\n return X >>> n;\n }\n function sha256_Ch(x, y, z) {\n return x & y ^ ~x & z;\n }\n function sha256_Maj(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n function sha256_Sigma0256(x) {\n return sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22);\n }\n function sha256_Sigma1256(x) {\n return sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25);\n }\n function sha256_Gamma0256(x) {\n return sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3);\n }\n function sha256_Gamma1256(x) {\n return sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10);\n }\n var sha256_K = new Array(\n 1116352408,\n 1899447441,\n -1245643825,\n -373957723,\n 961987163,\n 1508970993,\n -1841331548,\n -1424204075,\n -670586216,\n 310598401,\n 607225278,\n 1426881987,\n 1925078388,\n -2132889090,\n -1680079193,\n -1046744716,\n -459576895,\n -272742522,\n 264347078,\n 604807628,\n 770255983,\n 1249150122,\n 1555081692,\n 1996064986,\n -1740746414,\n -1473132947,\n -1341970488,\n -1084653625,\n -958395405,\n -710438585,\n 113926993,\n 338241895,\n 666307205,\n 773529912,\n 1294757372,\n 1396182291,\n 1695183700,\n 1986661051,\n -2117940946,\n -1838011259,\n -1564481375,\n -1474664885,\n -1035236496,\n -949202525,\n -778901479,\n -694614492,\n -200395387,\n 275423344,\n 430227734,\n 506948616,\n 659060556,\n 883997877,\n 958139571,\n 1322822218,\n 1537002063,\n 1747873779,\n 1955562222,\n 2024104815,\n -2067236844,\n -1933114872,\n -1866530822,\n -1538233109,\n -1090935817,\n -965641998\n );\n function binb_sha256(m, l) {\n var HASH = new Array(\n 1779033703,\n -1150833019,\n 1013904242,\n -1521486534,\n 1359893119,\n -1694144372,\n 528734635,\n 1541459225\n );\n var W = new Array(64);\n var a, b, c, d, e, f, g, h;\n var i, j, T1, T2;\n m[l >> 5] |= 128 << 24 - l % 32;\n m[(l + 64 >> 9 << 4) + 15] = l;\n for (i = 0; i < m.length; i += 16) {\n a = HASH[0];\n b = HASH[1];\n c = HASH[2];\n d = HASH[3];\n e = HASH[4];\n f = HASH[5];\n g = HASH[6];\n h = HASH[7];\n for (j = 0; j < 64; j++) {\n if (j < 16) W[j] = m[j + i];\n else W[j] = safe_add(safe_add(\n safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]),\n sha256_Gamma0256(W[j - 15])\n ), W[j - 16]);\n T1 = safe_add(safe_add(\n safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)),\n sha256_K[j]\n ), W[j]);\n T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c));\n h = g;\n g = f;\n f = e;\n e = safe_add(d, T1);\n d = c;\n c = b;\n b = a;\n a = safe_add(T1, T2);\n }\n HASH[0] = safe_add(a, HASH[0]);\n HASH[1] = safe_add(b, HASH[1]);\n HASH[2] = safe_add(c, HASH[2]);\n HASH[3] = safe_add(d, HASH[3]);\n HASH[4] = safe_add(e, HASH[4]);\n HASH[5] = safe_add(f, HASH[5]);\n HASH[6] = safe_add(g, HASH[6]);\n HASH[7] = safe_add(h, HASH[7]);\n }\n return HASH;\n }\n function safe_add(x, y) {\n var lsw = (x & 65535) + (y & 65535);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 65535;\n }\n function slice(x) {\n return Array.prototype.slice.call(x);\n }\n function join(x) {\n return slice(x).join(\"\");\n }\n function createEnvironment(options) {\n var cache = options && options.cache;\n var varCounter = 0;\n var linkedNames = [];\n var linkedValues = [];\n var isStable = [];\n function link(value, options2) {\n var stable = options2 && options2.stable;\n if (!stable) {\n for (var i = 0; i < linkedValues.length; ++i) {\n if (linkedValues[i] === value && !isStable[i]) {\n return linkedNames[i];\n }\n }\n }\n var name2 = \"g\" + varCounter++;\n linkedNames.push(name2);\n linkedValues.push(value);\n isStable.push(stable);\n return name2;\n }\n function block() {\n var code = [];\n function push() {\n code.push.apply(code, slice(arguments));\n }\n var vars = [];\n function def() {\n var name2 = \"v\" + varCounter++;\n vars.push(name2);\n if (arguments.length > 0) {\n code.push(name2, \"=\");\n code.push.apply(code, slice(arguments));\n code.push(\";\");\n }\n return name2;\n }\n return extend2(push, {\n def,\n toString: function() {\n return join([\n vars.length > 0 ? \"var \" + vars.join(\",\") + \";\" : \"\",\n join(code)\n ]);\n }\n });\n }\n function scope() {\n var entry = block();\n var exit = block();\n var entryToString = entry.toString;\n var exitToString = exit.toString;\n function save(object, prop) {\n exit(object, prop, \"=\", entry.def(object, prop), \";\");\n }\n return extend2(function() {\n entry.apply(entry, slice(arguments));\n }, {\n def: entry.def,\n entry,\n exit,\n save,\n set: function(object, prop, value) {\n save(object, prop);\n entry(object, prop, \"=\", value, \";\");\n },\n toString: function() {\n return entryToString() + exitToString();\n }\n });\n }\n function conditional() {\n var pred = join(arguments);\n var thenBlock = scope();\n var elseBlock = scope();\n var thenToString = thenBlock.toString;\n var elseToString = elseBlock.toString;\n return extend2(thenBlock, {\n then: function() {\n thenBlock.apply(thenBlock, slice(arguments));\n return this;\n },\n else: function() {\n elseBlock.apply(elseBlock, slice(arguments));\n return this;\n },\n toString: function() {\n var elseClause = elseToString();\n if (elseClause) {\n elseClause = \"else{\" + elseClause + \"}\";\n }\n return join([\n \"if(\",\n pred,\n \"){\",\n thenToString(),\n \"}\",\n elseClause\n ]);\n }\n });\n }\n var globalBlock = block();\n var procedures = {};\n function proc(name2, count) {\n var args = [];\n function arg() {\n var name3 = \"a\" + args.length;\n args.push(name3);\n return name3;\n }\n count = count || 0;\n for (var i = 0; i < count; ++i) {\n arg();\n }\n var body = scope();\n var bodyToString = body.toString;\n var result = procedures[name2] = extend2(body, {\n arg,\n toString: function() {\n return join([\n \"function(\",\n args.join(),\n \"){\",\n bodyToString(),\n \"}\"\n ]);\n }\n });\n return result;\n }\n function compile() {\n var code = [\n '\"use strict\";',\n globalBlock,\n \"return {\"\n ];\n Object.keys(procedures).forEach(function(name2) {\n code.push('\"', name2, '\":', procedures[name2].toString(), \",\");\n });\n code.push(\"}\");\n var src = join(code).replace(/;/g, \";\\n\").replace(/}/g, \"}\\n\").replace(/{/g, \"{\\n\");\n var key;\n if (cache) {\n key = hex_sha256(src);\n if (cache[key]) {\n return cache[key].apply(null, linkedValues);\n }\n }\n var proc2 = Function.apply(null, linkedNames.concat(src));\n if (cache) {\n cache[key] = proc2;\n }\n return proc2.apply(null, linkedValues);\n }\n return {\n global: globalBlock,\n link,\n block,\n proc,\n scope,\n cond: conditional,\n compile\n };\n }\n var CUTE_COMPONENTS = \"xyzw\".split(\"\");\n var GL_UNSIGNED_BYTE$7 = 5121;\n var ATTRIB_STATE_POINTER = 1;\n var ATTRIB_STATE_CONSTANT = 2;\n var DYN_FUNC$1 = 0;\n var DYN_PROP$1 = 1;\n var DYN_CONTEXT$1 = 2;\n var DYN_STATE$1 = 3;\n var DYN_THUNK = 4;\n var DYN_CONSTANT$1 = 5;\n var DYN_ARRAY$1 = 6;\n var S_DITHER = \"dither\";\n var S_BLEND_ENABLE = \"blend.enable\";\n var S_BLEND_COLOR = \"blend.color\";\n var S_BLEND_EQUATION = \"blend.equation\";\n var S_BLEND_FUNC = \"blend.func\";\n var S_DEPTH_ENABLE = \"depth.enable\";\n var S_DEPTH_FUNC = \"depth.func\";\n var S_DEPTH_RANGE = \"depth.range\";\n var S_DEPTH_MASK = \"depth.mask\";\n var S_COLOR_MASK = \"colorMask\";\n var S_CULL_ENABLE = \"cull.enable\";\n var S_CULL_FACE = \"cull.face\";\n var S_FRONT_FACE = \"frontFace\";\n var S_LINE_WIDTH = \"lineWidth\";\n var S_POLYGON_OFFSET_ENABLE = \"polygonOffset.enable\";\n var S_POLYGON_OFFSET_OFFSET = \"polygonOffset.offset\";\n var S_SAMPLE_ALPHA = \"sample.alpha\";\n var S_SAMPLE_ENABLE = \"sample.enable\";\n var S_SAMPLE_COVERAGE = \"sample.coverage\";\n var S_STENCIL_ENABLE = \"stencil.enable\";\n var S_STENCIL_MASK = \"stencil.mask\";\n var S_STENCIL_FUNC = \"stencil.func\";\n var S_STENCIL_OPFRONT = \"stencil.opFront\";\n var S_STENCIL_OPBACK = \"stencil.opBack\";\n var S_SCISSOR_ENABLE = \"scissor.enable\";\n var S_SCISSOR_BOX = \"scissor.box\";\n var S_VIEWPORT = \"viewport\";\n var S_PROFILE = \"profile\";\n var S_FRAMEBUFFER = \"framebuffer\";\n var S_VERT = \"vert\";\n var S_FRAG = \"frag\";\n var S_ELEMENTS = \"elements\";\n var S_PRIMITIVE = \"primitive\";\n var S_COUNT = \"count\";\n var S_OFFSET = \"offset\";\n var S_INSTANCES = \"instances\";\n var S_VAO = \"vao\";\n var SUFFIX_WIDTH = \"Width\";\n var SUFFIX_HEIGHT = \"Height\";\n var S_FRAMEBUFFER_WIDTH = S_FRAMEBUFFER + SUFFIX_WIDTH;\n var S_FRAMEBUFFER_HEIGHT = S_FRAMEBUFFER + SUFFIX_HEIGHT;\n var S_VIEWPORT_WIDTH = S_VIEWPORT + SUFFIX_WIDTH;\n var S_VIEWPORT_HEIGHT = S_VIEWPORT + SUFFIX_HEIGHT;\n var S_DRAWINGBUFFER = \"drawingBuffer\";\n var S_DRAWINGBUFFER_WIDTH = S_DRAWINGBUFFER + SUFFIX_WIDTH;\n var S_DRAWINGBUFFER_HEIGHT = S_DRAWINGBUFFER + SUFFIX_HEIGHT;\n var NESTED_OPTIONS = [\n S_BLEND_FUNC,\n S_BLEND_EQUATION,\n S_STENCIL_FUNC,\n S_STENCIL_OPFRONT,\n S_STENCIL_OPBACK,\n S_SAMPLE_COVERAGE,\n S_VIEWPORT,\n S_SCISSOR_BOX,\n S_POLYGON_OFFSET_OFFSET\n ];\n var GL_ARRAY_BUFFER$2 = 34962;\n var GL_ELEMENT_ARRAY_BUFFER$2 = 34963;\n var GL_CULL_FACE = 2884;\n var GL_BLEND = 3042;\n var GL_DITHER = 3024;\n var GL_STENCIL_TEST = 2960;\n var GL_DEPTH_TEST = 2929;\n var GL_SCISSOR_TEST = 3089;\n var GL_POLYGON_OFFSET_FILL = 32823;\n var GL_SAMPLE_ALPHA_TO_COVERAGE = 32926;\n var GL_SAMPLE_COVERAGE = 32928;\n var GL_FLOAT$7 = 5126;\n var GL_FLOAT_VEC2 = 35664;\n var GL_FLOAT_VEC3 = 35665;\n var GL_FLOAT_VEC4 = 35666;\n var GL_INT$2 = 5124;\n var GL_INT_VEC2 = 35667;\n var GL_INT_VEC3 = 35668;\n var GL_INT_VEC4 = 35669;\n var GL_BOOL = 35670;\n var GL_BOOL_VEC2 = 35671;\n var GL_BOOL_VEC3 = 35672;\n var GL_BOOL_VEC4 = 35673;\n var GL_FLOAT_MAT2 = 35674;\n var GL_FLOAT_MAT3 = 35675;\n var GL_FLOAT_MAT4 = 35676;\n var GL_SAMPLER_2D = 35678;\n var GL_SAMPLER_CUBE = 35680;\n var GL_TRIANGLES$1 = 4;\n var GL_FRONT = 1028;\n var GL_BACK = 1029;\n var GL_CW = 2304;\n var GL_CCW = 2305;\n var GL_MIN_EXT = 32775;\n var GL_MAX_EXT = 32776;\n var GL_ALWAYS = 519;\n var GL_KEEP = 7680;\n var GL_ZERO = 0;\n var GL_ONE = 1;\n var GL_FUNC_ADD = 32774;\n var GL_LESS = 513;\n var GL_FRAMEBUFFER$2 = 36160;\n var GL_COLOR_ATTACHMENT0$2 = 36064;\n var blendFuncs = {\n \"0\": 0,\n \"1\": 1,\n \"zero\": 0,\n \"one\": 1,\n \"src color\": 768,\n \"one minus src color\": 769,\n \"src alpha\": 770,\n \"one minus src alpha\": 771,\n \"dst color\": 774,\n \"one minus dst color\": 775,\n \"dst alpha\": 772,\n \"one minus dst alpha\": 773,\n \"constant color\": 32769,\n \"one minus constant color\": 32770,\n \"constant alpha\": 32771,\n \"one minus constant alpha\": 32772,\n \"src alpha saturate\": 776\n };\n var compareFuncs = {\n \"never\": 512,\n \"less\": 513,\n \"<\": 513,\n \"equal\": 514,\n \"=\": 514,\n \"==\": 514,\n \"===\": 514,\n \"lequal\": 515,\n \"<=\": 515,\n \"greater\": 516,\n \">\": 516,\n \"notequal\": 517,\n \"!=\": 517,\n \"!==\": 517,\n \"gequal\": 518,\n \">=\": 518,\n \"always\": 519\n };\n var stencilOps = {\n \"0\": 0,\n \"zero\": 0,\n \"keep\": 7680,\n \"replace\": 7681,\n \"increment\": 7682,\n \"decrement\": 7683,\n \"increment wrap\": 34055,\n \"decrement wrap\": 34056,\n \"invert\": 5386\n };\n var orientationType = {\n \"cw\": GL_CW,\n \"ccw\": GL_CCW\n };\n function isBufferArgs(x) {\n return Array.isArray(x) || isTypedArray(x) || isNDArrayLike(x);\n }\n function sortState(state) {\n return state.sort(function(a, b) {\n if (a === S_VIEWPORT) {\n return -1;\n } else if (b === S_VIEWPORT) {\n return 1;\n }\n return a < b ? -1 : 1;\n });\n }\n function Declaration(thisDep, contextDep, propDep, append) {\n this.thisDep = thisDep;\n this.contextDep = contextDep;\n this.propDep = propDep;\n this.append = append;\n }\n function isStatic(decl) {\n return decl && !(decl.thisDep || decl.contextDep || decl.propDep);\n }\n function createStaticDecl(append) {\n return new Declaration(false, false, false, append);\n }\n function createDynamicDecl(dyn, append) {\n var type = dyn.type;\n if (type === DYN_FUNC$1) {\n var numArgs = dyn.data.length;\n return new Declaration(\n true,\n numArgs >= 1,\n numArgs >= 2,\n append\n );\n } else if (type === DYN_THUNK) {\n var data = dyn.data;\n return new Declaration(\n data.thisDep,\n data.contextDep,\n data.propDep,\n append\n );\n } else if (type === DYN_CONSTANT$1) {\n return new Declaration(\n false,\n false,\n false,\n append\n );\n } else if (type === DYN_ARRAY$1) {\n var thisDep = false;\n var contextDep = false;\n var propDep = false;\n for (var i = 0; i < dyn.data.length; ++i) {\n var subDyn = dyn.data[i];\n if (subDyn.type === DYN_PROP$1) {\n propDep = true;\n } else if (subDyn.type === DYN_CONTEXT$1) {\n contextDep = true;\n } else if (subDyn.type === DYN_STATE$1) {\n thisDep = true;\n } else if (subDyn.type === DYN_FUNC$1) {\n thisDep = true;\n var subArgs = subDyn.data;\n if (subArgs >= 1) {\n contextDep = true;\n }\n if (subArgs >= 2) {\n propDep = true;\n }\n } else if (subDyn.type === DYN_THUNK) {\n thisDep = thisDep || subDyn.data.thisDep;\n contextDep = contextDep || subDyn.data.contextDep;\n propDep = propDep || subDyn.data.propDep;\n }\n }\n return new Declaration(\n thisDep,\n contextDep,\n propDep,\n append\n );\n } else {\n return new Declaration(\n type === DYN_STATE$1,\n type === DYN_CONTEXT$1,\n type === DYN_PROP$1,\n append\n );\n }\n }\n var SCOPE_DECL = new Declaration(false, false, false, function() {\n });\n function reglCore(gl2, stringStore, extensions, limits, bufferState, elementState, textureState, framebufferState, uniformState, attributeState, shaderState, drawState, contextState, timer, cachedCode, config) {\n var AttributeRecord2 = attributeState.Record;\n var blendEquations = {\n \"add\": 32774,\n \"subtract\": 32778,\n \"reverse subtract\": 32779\n };\n if (extensions.ext_blend_minmax) {\n blendEquations.min = GL_MIN_EXT;\n blendEquations.max = GL_MAX_EXT;\n }\n var extInstancing = extensions.angle_instanced_arrays;\n var extDrawBuffers = extensions.webgl_draw_buffers;\n var extVertexArrays = extensions.oes_vertex_array_object;\n var currentState = {\n dirty: true,\n profile: config.profile\n };\n var nextState = {};\n var GL_STATE_NAMES = [];\n var GL_FLAGS = {};\n var GL_VARIABLES = {};\n function propName(name2) {\n return name2.replace(\".\", \"_\");\n }\n function stateFlag(sname, cap, init) {\n var name2 = propName(sname);\n GL_STATE_NAMES.push(sname);\n nextState[name2] = currentState[name2] = !!init;\n GL_FLAGS[name2] = cap;\n }\n function stateVariable(sname, func, init) {\n var name2 = propName(sname);\n GL_STATE_NAMES.push(sname);\n if (Array.isArray(init)) {\n currentState[name2] = init.slice();\n nextState[name2] = init.slice();\n } else {\n currentState[name2] = nextState[name2] = init;\n }\n GL_VARIABLES[name2] = func;\n }\n function hasVariableReference(exp) {\n if (!isNaN(exp)) {\n return false;\n }\n return true;\n }\n stateFlag(S_DITHER, GL_DITHER);\n stateFlag(S_BLEND_ENABLE, GL_BLEND);\n stateVariable(S_BLEND_COLOR, \"blendColor\", [0, 0, 0, 0]);\n stateVariable(\n S_BLEND_EQUATION,\n \"blendEquationSeparate\",\n [GL_FUNC_ADD, GL_FUNC_ADD]\n );\n stateVariable(\n S_BLEND_FUNC,\n \"blendFuncSeparate\",\n [GL_ONE, GL_ZERO, GL_ONE, GL_ZERO]\n );\n stateFlag(S_DEPTH_ENABLE, GL_DEPTH_TEST, true);\n stateVariable(S_DEPTH_FUNC, \"depthFunc\", GL_LESS);\n stateVariable(S_DEPTH_RANGE, \"depthRange\", [0, 1]);\n stateVariable(S_DEPTH_MASK, \"depthMask\", true);\n stateVariable(S_COLOR_MASK, S_COLOR_MASK, [true, true, true, true]);\n stateFlag(S_CULL_ENABLE, GL_CULL_FACE);\n stateVariable(S_CULL_FACE, \"cullFace\", GL_BACK);\n stateVariable(S_FRONT_FACE, S_FRONT_FACE, GL_CCW);\n stateVariable(S_LINE_WIDTH, S_LINE_WIDTH, 1);\n stateFlag(S_POLYGON_OFFSET_ENABLE, GL_POLYGON_OFFSET_FILL);\n stateVariable(S_POLYGON_OFFSET_OFFSET, \"polygonOffset\", [0, 0]);\n stateFlag(S_SAMPLE_ALPHA, GL_SAMPLE_ALPHA_TO_COVERAGE);\n stateFlag(S_SAMPLE_ENABLE, GL_SAMPLE_COVERAGE);\n stateVariable(S_SAMPLE_COVERAGE, \"sampleCoverage\", [1, false]);\n stateFlag(S_STENCIL_ENABLE, GL_STENCIL_TEST);\n stateVariable(S_STENCIL_MASK, \"stencilMask\", -1);\n stateVariable(S_STENCIL_FUNC, \"stencilFunc\", [GL_ALWAYS, 0, -1]);\n stateVariable(\n S_STENCIL_OPFRONT,\n \"stencilOpSeparate\",\n [GL_FRONT, GL_KEEP, GL_KEEP, GL_KEEP]\n );\n stateVariable(\n S_STENCIL_OPBACK,\n \"stencilOpSeparate\",\n [GL_BACK, GL_KEEP, GL_KEEP, GL_KEEP]\n );\n stateFlag(S_SCISSOR_ENABLE, GL_SCISSOR_TEST);\n stateVariable(\n S_SCISSOR_BOX,\n \"scissor\",\n [0, 0, gl2.drawingBufferWidth, gl2.drawingBufferHeight]\n );\n stateVariable(\n S_VIEWPORT,\n S_VIEWPORT,\n [0, 0, gl2.drawingBufferWidth, gl2.drawingBufferHeight]\n );\n var sharedState = {\n gl: gl2,\n context: contextState,\n strings: stringStore,\n next: nextState,\n current: currentState,\n draw: drawState,\n elements: elementState,\n buffer: bufferState,\n shader: shaderState,\n attributes: attributeState.state,\n vao: attributeState,\n uniforms: uniformState,\n framebuffer: framebufferState,\n extensions,\n timer,\n isBufferArgs\n };\n var sharedConstants = {\n primTypes,\n compareFuncs,\n blendFuncs,\n blendEquations,\n stencilOps,\n glTypes,\n orientationType\n };\n if (extDrawBuffers) {\n sharedConstants.backBuffer = [GL_BACK];\n sharedConstants.drawBuffer = loop(limits.maxDrawbuffers, function(i) {\n if (i === 0) {\n return [0];\n }\n return loop(i, function(j) {\n return GL_COLOR_ATTACHMENT0$2 + j;\n });\n });\n }\n var drawCallCounter = 0;\n function createREGLEnvironment() {\n var env = createEnvironment({ cache: cachedCode });\n var link = env.link;\n var global2 = env.global;\n env.id = drawCallCounter++;\n env.batchId = \"0\";\n var SHARED = link(sharedState);\n var shared = env.shared = {\n props: \"a0\"\n };\n Object.keys(sharedState).forEach(function(prop) {\n shared[prop] = global2.def(SHARED, \".\", prop);\n });\n var nextVars = env.next = {};\n var currentVars = env.current = {};\n Object.keys(GL_VARIABLES).forEach(function(variable) {\n if (Array.isArray(currentState[variable])) {\n nextVars[variable] = global2.def(shared.next, \".\", variable);\n currentVars[variable] = global2.def(shared.current, \".\", variable);\n }\n });\n var constants = env.constants = {};\n Object.keys(sharedConstants).forEach(function(name2) {\n constants[name2] = global2.def(JSON.stringify(sharedConstants[name2]));\n });\n env.invoke = function(block, x) {\n switch (x.type) {\n case DYN_FUNC$1:\n var argList = [\n \"this\",\n shared.context,\n shared.props,\n env.batchId\n ];\n return block.def(\n link(x.data),\n \".call(\",\n argList.slice(0, Math.max(x.data.length + 1, 4)),\n \")\"\n );\n case DYN_PROP$1:\n return block.def(shared.props, x.data);\n case DYN_CONTEXT$1:\n return block.def(shared.context, x.data);\n case DYN_STATE$1:\n return block.def(\"this\", x.data);\n case DYN_THUNK:\n x.data.append(env, block);\n return x.data.ref;\n case DYN_CONSTANT$1:\n return x.data.toString();\n case DYN_ARRAY$1:\n return x.data.map(function(y) {\n return env.invoke(block, y);\n });\n }\n };\n env.attribCache = {};\n var scopeAttribs = {};\n env.scopeAttrib = function(name2) {\n var id = stringStore.id(name2);\n if (id in scopeAttribs) {\n return scopeAttribs[id];\n }\n var binding = attributeState.scope[id];\n if (!binding) {\n binding = attributeState.scope[id] = new AttributeRecord2();\n }\n var result = scopeAttribs[id] = link(binding);\n return result;\n };\n return env;\n }\n function parseProfile(options) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n var profileEnable;\n if (S_PROFILE in staticOptions) {\n var value = !!staticOptions[S_PROFILE];\n profileEnable = createStaticDecl(function(env, scope) {\n return value;\n });\n profileEnable.enable = value;\n } else if (S_PROFILE in dynamicOptions) {\n var dyn = dynamicOptions[S_PROFILE];\n profileEnable = createDynamicDecl(dyn, function(env, scope) {\n return env.invoke(scope, dyn);\n });\n }\n return profileEnable;\n }\n function parseFramebuffer(options, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n if (S_FRAMEBUFFER in staticOptions) {\n var framebuffer = staticOptions[S_FRAMEBUFFER];\n if (framebuffer) {\n framebuffer = framebufferState.getFramebuffer(framebuffer);\n return createStaticDecl(function(env2, block) {\n var FRAMEBUFFER = env2.link(framebuffer);\n var shared = env2.shared;\n block.set(\n shared.framebuffer,\n \".next\",\n FRAMEBUFFER\n );\n var CONTEXT = shared.context;\n block.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_WIDTH,\n FRAMEBUFFER + \".width\"\n );\n block.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_HEIGHT,\n FRAMEBUFFER + \".height\"\n );\n return FRAMEBUFFER;\n });\n } else {\n return createStaticDecl(function(env2, scope) {\n var shared = env2.shared;\n scope.set(\n shared.framebuffer,\n \".next\",\n \"null\"\n );\n var CONTEXT = shared.context;\n scope.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_WIDTH,\n CONTEXT + \".\" + S_DRAWINGBUFFER_WIDTH\n );\n scope.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_HEIGHT,\n CONTEXT + \".\" + S_DRAWINGBUFFER_HEIGHT\n );\n return \"null\";\n });\n }\n } else if (S_FRAMEBUFFER in dynamicOptions) {\n var dyn = dynamicOptions[S_FRAMEBUFFER];\n return createDynamicDecl(dyn, function(env2, scope) {\n var FRAMEBUFFER_FUNC = env2.invoke(scope, dyn);\n var shared = env2.shared;\n var FRAMEBUFFER_STATE = shared.framebuffer;\n var FRAMEBUFFER = scope.def(\n FRAMEBUFFER_STATE,\n \".getFramebuffer(\",\n FRAMEBUFFER_FUNC,\n \")\"\n );\n scope.set(\n FRAMEBUFFER_STATE,\n \".next\",\n FRAMEBUFFER\n );\n var CONTEXT = shared.context;\n scope.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_WIDTH,\n FRAMEBUFFER + \"?\" + FRAMEBUFFER + \".width:\" + CONTEXT + \".\" + S_DRAWINGBUFFER_WIDTH\n );\n scope.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_HEIGHT,\n FRAMEBUFFER + \"?\" + FRAMEBUFFER + \".height:\" + CONTEXT + \".\" + S_DRAWINGBUFFER_HEIGHT\n );\n return FRAMEBUFFER;\n });\n } else {\n return null;\n }\n }\n function parseViewportScissor(options, framebuffer, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n function parseBox(param) {\n if (param in staticOptions) {\n var box = staticOptions[param];\n var isStatic2 = true;\n var x = box.x | 0;\n var y = box.y | 0;\n var w, h;\n if (\"width\" in box) {\n w = box.width | 0;\n } else {\n isStatic2 = false;\n }\n if (\"height\" in box) {\n h = box.height | 0;\n } else {\n isStatic2 = false;\n }\n return new Declaration(\n !isStatic2 && framebuffer && framebuffer.thisDep,\n !isStatic2 && framebuffer && framebuffer.contextDep,\n !isStatic2 && framebuffer && framebuffer.propDep,\n function(env2, scope) {\n var CONTEXT = env2.shared.context;\n var BOX_W = w;\n if (!(\"width\" in box)) {\n BOX_W = scope.def(CONTEXT, \".\", S_FRAMEBUFFER_WIDTH, \"-\", x);\n }\n var BOX_H = h;\n if (!(\"height\" in box)) {\n BOX_H = scope.def(CONTEXT, \".\", S_FRAMEBUFFER_HEIGHT, \"-\", y);\n }\n return [x, y, BOX_W, BOX_H];\n }\n );\n } else if (param in dynamicOptions) {\n var dynBox = dynamicOptions[param];\n var result = createDynamicDecl(dynBox, function(env2, scope) {\n var BOX = env2.invoke(scope, dynBox);\n var CONTEXT = env2.shared.context;\n var BOX_X = scope.def(BOX, \".x|0\");\n var BOX_Y = scope.def(BOX, \".y|0\");\n var BOX_W = scope.def(\n '\"width\" in ',\n BOX,\n \"?\",\n BOX,\n \".width|0:\",\n \"(\",\n CONTEXT,\n \".\",\n S_FRAMEBUFFER_WIDTH,\n \"-\",\n BOX_X,\n \")\"\n );\n var BOX_H = scope.def(\n '\"height\" in ',\n BOX,\n \"?\",\n BOX,\n \".height|0:\",\n \"(\",\n CONTEXT,\n \".\",\n S_FRAMEBUFFER_HEIGHT,\n \"-\",\n BOX_Y,\n \")\"\n );\n return [BOX_X, BOX_Y, BOX_W, BOX_H];\n });\n if (framebuffer) {\n result.thisDep = result.thisDep || framebuffer.thisDep;\n result.contextDep = result.contextDep || framebuffer.contextDep;\n result.propDep = result.propDep || framebuffer.propDep;\n }\n return result;\n } else if (framebuffer) {\n return new Declaration(\n framebuffer.thisDep,\n framebuffer.contextDep,\n framebuffer.propDep,\n function(env2, scope) {\n var CONTEXT = env2.shared.context;\n return [\n 0,\n 0,\n scope.def(CONTEXT, \".\", S_FRAMEBUFFER_WIDTH),\n scope.def(CONTEXT, \".\", S_FRAMEBUFFER_HEIGHT)\n ];\n }\n );\n } else {\n return null;\n }\n }\n var viewport = parseBox(S_VIEWPORT);\n if (viewport) {\n var prevViewport = viewport;\n viewport = new Declaration(\n viewport.thisDep,\n viewport.contextDep,\n viewport.propDep,\n function(env2, scope) {\n var VIEWPORT = prevViewport.append(env2, scope);\n var CONTEXT = env2.shared.context;\n scope.set(\n CONTEXT,\n \".\" + S_VIEWPORT_WIDTH,\n VIEWPORT[2]\n );\n scope.set(\n CONTEXT,\n \".\" + S_VIEWPORT_HEIGHT,\n VIEWPORT[3]\n );\n return VIEWPORT;\n }\n );\n }\n return {\n viewport,\n scissor_box: parseBox(S_SCISSOR_BOX)\n };\n }\n function parseAttribLocations(options, attributes) {\n var staticOptions = options.static;\n var staticProgram = typeof staticOptions[S_FRAG] === \"string\" && typeof staticOptions[S_VERT] === \"string\";\n if (staticProgram) {\n if (Object.keys(attributes.dynamic).length > 0) {\n return null;\n }\n var staticAttributes = attributes.static;\n var sAttributes = Object.keys(staticAttributes);\n if (sAttributes.length > 0 && typeof staticAttributes[sAttributes[0]] === \"number\") {\n var bindings = [];\n for (var i = 0; i < sAttributes.length; ++i) {\n bindings.push([staticAttributes[sAttributes[i]] | 0, sAttributes[i]]);\n }\n return bindings;\n }\n }\n return null;\n }\n function parseProgram(options, env, attribLocations) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n function parseShader(name2) {\n if (name2 in staticOptions) {\n var id = stringStore.id(staticOptions[name2]);\n var result = createStaticDecl(function() {\n return id;\n });\n result.id = id;\n return result;\n } else if (name2 in dynamicOptions) {\n var dyn = dynamicOptions[name2];\n return createDynamicDecl(dyn, function(env2, scope) {\n var str = env2.invoke(scope, dyn);\n var id2 = scope.def(env2.shared.strings, \".id(\", str, \")\");\n return id2;\n });\n }\n return null;\n }\n var frag = parseShader(S_FRAG);\n var vert = parseShader(S_VERT);\n var program = null;\n var progVar;\n if (isStatic(frag) && isStatic(vert)) {\n program = shaderState.program(vert.id, frag.id, null, attribLocations);\n progVar = createStaticDecl(function(env2, scope) {\n return env2.link(program);\n });\n } else {\n progVar = new Declaration(\n frag && frag.thisDep || vert && vert.thisDep,\n frag && frag.contextDep || vert && vert.contextDep,\n frag && frag.propDep || vert && vert.propDep,\n function(env2, scope) {\n var SHADER_STATE = env2.shared.shader;\n var fragId;\n if (frag) {\n fragId = frag.append(env2, scope);\n } else {\n fragId = scope.def(SHADER_STATE, \".\", S_FRAG);\n }\n var vertId;\n if (vert) {\n vertId = vert.append(env2, scope);\n } else {\n vertId = scope.def(SHADER_STATE, \".\", S_VERT);\n }\n var progDef = SHADER_STATE + \".program(\" + vertId + \",\" + fragId;\n return scope.def(progDef + \")\");\n }\n );\n }\n return {\n frag,\n vert,\n progVar,\n program\n };\n }\n function parseDraw(options, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n var staticDraw = {};\n var vaoActive = false;\n function parseVAO() {\n if (S_VAO in staticOptions) {\n var vao2 = staticOptions[S_VAO];\n if (vao2 !== null && attributeState.getVAO(vao2) === null) {\n vao2 = attributeState.createVAO(vao2);\n }\n vaoActive = true;\n staticDraw.vao = vao2;\n return createStaticDecl(function(env2) {\n var vaoRef = attributeState.getVAO(vao2);\n if (vaoRef) {\n return env2.link(vaoRef);\n } else {\n return \"null\";\n }\n });\n } else if (S_VAO in dynamicOptions) {\n vaoActive = true;\n var dyn = dynamicOptions[S_VAO];\n return createDynamicDecl(dyn, function(env2, scope) {\n var vaoRef = env2.invoke(scope, dyn);\n return scope.def(env2.shared.vao + \".getVAO(\" + vaoRef + \")\");\n });\n }\n return null;\n }\n var vao = parseVAO();\n var elementsActive = false;\n function parseElements() {\n if (S_ELEMENTS in staticOptions) {\n var elements2 = staticOptions[S_ELEMENTS];\n staticDraw.elements = elements2;\n if (isBufferArgs(elements2)) {\n var e = staticDraw.elements = elementState.create(elements2, true);\n elements2 = elementState.getElements(e);\n elementsActive = true;\n } else if (elements2) {\n elements2 = elementState.getElements(elements2);\n elementsActive = true;\n }\n var result = createStaticDecl(function(env2, scope) {\n if (elements2) {\n var result2 = env2.link(elements2);\n env2.ELEMENTS = result2;\n return result2;\n }\n env2.ELEMENTS = null;\n return null;\n });\n result.value = elements2;\n return result;\n } else if (S_ELEMENTS in dynamicOptions) {\n elementsActive = true;\n var dyn = dynamicOptions[S_ELEMENTS];\n return createDynamicDecl(dyn, function(env2, scope) {\n var shared = env2.shared;\n var IS_BUFFER_ARGS = shared.isBufferArgs;\n var ELEMENT_STATE = shared.elements;\n var elementDefn = env2.invoke(scope, dyn);\n var elements3 = scope.def(\"null\");\n var elementStream = scope.def(IS_BUFFER_ARGS, \"(\", elementDefn, \")\");\n var ifte = env2.cond(elementStream).then(elements3, \"=\", ELEMENT_STATE, \".createStream(\", elementDefn, \");\").else(elements3, \"=\", ELEMENT_STATE, \".getElements(\", elementDefn, \");\");\n scope.entry(ifte);\n scope.exit(\n env2.cond(elementStream).then(ELEMENT_STATE, \".destroyStream(\", elements3, \");\")\n );\n env2.ELEMENTS = elements3;\n return elements3;\n });\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao + \".currentVAO?\" + env2.shared.elements + \".getElements(\" + env2.shared.vao + \".currentVAO.elements):null\");\n }\n );\n }\n return null;\n }\n var elements = parseElements();\n function parsePrimitive() {\n if (S_PRIMITIVE in staticOptions) {\n var primitive2 = staticOptions[S_PRIMITIVE];\n staticDraw.primitive = primitive2;\n return createStaticDecl(function(env2, scope) {\n return primTypes[primitive2];\n });\n } else if (S_PRIMITIVE in dynamicOptions) {\n var dynPrimitive = dynamicOptions[S_PRIMITIVE];\n return createDynamicDecl(dynPrimitive, function(env2, scope) {\n var PRIM_TYPES = env2.constants.primTypes;\n var prim = env2.invoke(scope, dynPrimitive);\n return scope.def(PRIM_TYPES, \"[\", prim, \"]\");\n });\n } else if (elementsActive) {\n if (isStatic(elements)) {\n if (elements.value) {\n return createStaticDecl(function(env2, scope) {\n return scope.def(env2.ELEMENTS, \".primType\");\n });\n } else {\n return createStaticDecl(function() {\n return GL_TRIANGLES$1;\n });\n }\n } else {\n return new Declaration(\n elements.thisDep,\n elements.contextDep,\n elements.propDep,\n function(env2, scope) {\n var elements2 = env2.ELEMENTS;\n return scope.def(elements2, \"?\", elements2, \".primType:\", GL_TRIANGLES$1);\n }\n );\n }\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao + \".currentVAO?\" + env2.shared.vao + \".currentVAO.primitive:\" + GL_TRIANGLES$1);\n }\n );\n }\n return null;\n }\n function parseParam(param, isOffset) {\n if (param in staticOptions) {\n var value = staticOptions[param] | 0;\n if (isOffset) {\n staticDraw.offset = value;\n } else {\n staticDraw.instances = value;\n }\n return createStaticDecl(function(env2, scope) {\n if (isOffset) {\n env2.OFFSET = value;\n }\n return value;\n });\n } else if (param in dynamicOptions) {\n var dynValue = dynamicOptions[param];\n return createDynamicDecl(dynValue, function(env2, scope) {\n var result = env2.invoke(scope, dynValue);\n if (isOffset) {\n env2.OFFSET = result;\n }\n return result;\n });\n } else if (isOffset) {\n if (elementsActive) {\n return createStaticDecl(function(env2, scope) {\n env2.OFFSET = 0;\n return 0;\n });\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao + \".currentVAO?\" + env2.shared.vao + \".currentVAO.offset:0\");\n }\n );\n }\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao + \".currentVAO?\" + env2.shared.vao + \".currentVAO.instances:-1\");\n }\n );\n }\n return null;\n }\n var OFFSET = parseParam(S_OFFSET, true);\n function parseVertCount() {\n if (S_COUNT in staticOptions) {\n var count2 = staticOptions[S_COUNT] | 0;\n staticDraw.count = count2;\n return createStaticDecl(function() {\n return count2;\n });\n } else if (S_COUNT in dynamicOptions) {\n var dynCount = dynamicOptions[S_COUNT];\n return createDynamicDecl(dynCount, function(env2, scope) {\n var result2 = env2.invoke(scope, dynCount);\n return result2;\n });\n } else if (elementsActive) {\n if (isStatic(elements)) {\n if (elements) {\n if (OFFSET) {\n return new Declaration(\n OFFSET.thisDep,\n OFFSET.contextDep,\n OFFSET.propDep,\n function(env2, scope) {\n var result2 = scope.def(\n env2.ELEMENTS,\n \".vertCount-\",\n env2.OFFSET\n );\n return result2;\n }\n );\n } else {\n return createStaticDecl(function(env2, scope) {\n return scope.def(env2.ELEMENTS, \".vertCount\");\n });\n }\n } else {\n var result = createStaticDecl(function() {\n return -1;\n });\n return result;\n }\n } else {\n var variable = new Declaration(\n elements.thisDep || OFFSET.thisDep,\n elements.contextDep || OFFSET.contextDep,\n elements.propDep || OFFSET.propDep,\n function(env2, scope) {\n var elements2 = env2.ELEMENTS;\n if (env2.OFFSET) {\n return scope.def(\n elements2,\n \"?\",\n elements2,\n \".vertCount-\",\n env2.OFFSET,\n \":-1\"\n );\n }\n return scope.def(elements2, \"?\", elements2, \".vertCount:-1\");\n }\n );\n return variable;\n }\n } else if (vaoActive) {\n var countVariable = new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao, \".currentVAO?\", env2.shared.vao, \".currentVAO.count:-1\");\n }\n );\n return countVariable;\n }\n return null;\n }\n var primitive = parsePrimitive();\n var count = parseVertCount();\n var instances = parseParam(S_INSTANCES, false);\n return {\n elements,\n primitive,\n count,\n instances,\n offset: OFFSET,\n vao,\n vaoActive,\n elementsActive,\n // static draw props\n static: staticDraw\n };\n }\n function parseGLState(options, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n var STATE = {};\n GL_STATE_NAMES.forEach(function(prop) {\n var param = propName(prop);\n function parseParam(parseStatic, parseDynamic) {\n if (prop in staticOptions) {\n var value = parseStatic(staticOptions[prop]);\n STATE[param] = createStaticDecl(function() {\n return value;\n });\n } else if (prop in dynamicOptions) {\n var dyn = dynamicOptions[prop];\n STATE[param] = createDynamicDecl(dyn, function(env2, scope) {\n return parseDynamic(env2, scope, env2.invoke(scope, dyn));\n });\n }\n }\n switch (prop) {\n case S_CULL_ENABLE:\n case S_BLEND_ENABLE:\n case S_DITHER:\n case S_STENCIL_ENABLE:\n case S_DEPTH_ENABLE:\n case S_SCISSOR_ENABLE:\n case S_POLYGON_OFFSET_ENABLE:\n case S_SAMPLE_ALPHA:\n case S_SAMPLE_ENABLE:\n case S_DEPTH_MASK:\n return parseParam(\n function(value) {\n return value;\n },\n function(env2, scope, value) {\n return value;\n }\n );\n case S_DEPTH_FUNC:\n return parseParam(\n function(value) {\n return compareFuncs[value];\n },\n function(env2, scope, value) {\n var COMPARE_FUNCS = env2.constants.compareFuncs;\n return scope.def(COMPARE_FUNCS, \"[\", value, \"]\");\n }\n );\n case S_DEPTH_RANGE:\n return parseParam(\n function(value) {\n return value;\n },\n function(env2, scope, value) {\n var Z_NEAR = scope.def(\"+\", value, \"[0]\");\n var Z_FAR = scope.def(\"+\", value, \"[1]\");\n return [Z_NEAR, Z_FAR];\n }\n );\n case S_BLEND_FUNC:\n return parseParam(\n function(value) {\n var srcRGB = \"srcRGB\" in value ? value.srcRGB : value.src;\n var srcAlpha = \"srcAlpha\" in value ? value.srcAlpha : value.src;\n var dstRGB = \"dstRGB\" in value ? value.dstRGB : value.dst;\n var dstAlpha = \"dstAlpha\" in value ? value.dstAlpha : value.dst;\n return [\n blendFuncs[srcRGB],\n blendFuncs[dstRGB],\n blendFuncs[srcAlpha],\n blendFuncs[dstAlpha]\n ];\n },\n function(env2, scope, value) {\n var BLEND_FUNCS = env2.constants.blendFuncs;\n function read(prefix, suffix) {\n var func = scope.def(\n '\"',\n prefix,\n suffix,\n '\" in ',\n value,\n \"?\",\n value,\n \".\",\n prefix,\n suffix,\n \":\",\n value,\n \".\",\n prefix\n );\n return func;\n }\n var srcRGB = read(\"src\", \"RGB\");\n var dstRGB = read(\"dst\", \"RGB\");\n var SRC_RGB = scope.def(BLEND_FUNCS, \"[\", srcRGB, \"]\");\n var SRC_ALPHA = scope.def(BLEND_FUNCS, \"[\", read(\"src\", \"Alpha\"), \"]\");\n var DST_RGB = scope.def(BLEND_FUNCS, \"[\", dstRGB, \"]\");\n var DST_ALPHA = scope.def(BLEND_FUNCS, \"[\", read(\"dst\", \"Alpha\"), \"]\");\n return [SRC_RGB, DST_RGB, SRC_ALPHA, DST_ALPHA];\n }\n );\n case S_BLEND_EQUATION:\n return parseParam(\n function(value) {\n if (typeof value === \"string\") {\n return [\n blendEquations[value],\n blendEquations[value]\n ];\n } else if (typeof value === \"object\") {\n return [\n blendEquations[value.rgb],\n blendEquations[value.alpha]\n ];\n } else {\n }\n },\n function(env2, scope, value) {\n var BLEND_EQUATIONS = env2.constants.blendEquations;\n var RGB = scope.def();\n var ALPHA = scope.def();\n var ifte = env2.cond(\"typeof \", value, '===\"string\"');\n ifte.then(\n RGB,\n \"=\",\n ALPHA,\n \"=\",\n BLEND_EQUATIONS,\n \"[\",\n value,\n \"];\"\n );\n ifte.else(\n RGB,\n \"=\",\n BLEND_EQUATIONS,\n \"[\",\n value,\n \".rgb];\",\n ALPHA,\n \"=\",\n BLEND_EQUATIONS,\n \"[\",\n value,\n \".alpha];\"\n );\n scope(ifte);\n return [RGB, ALPHA];\n }\n );\n case S_BLEND_COLOR:\n return parseParam(\n function(value) {\n return loop(4, function(i) {\n return +value[i];\n });\n },\n function(env2, scope, value) {\n return loop(4, function(i) {\n return scope.def(\"+\", value, \"[\", i, \"]\");\n });\n }\n );\n case S_STENCIL_MASK:\n return parseParam(\n function(value) {\n return value | 0;\n },\n function(env2, scope, value) {\n return scope.def(value, \"|0\");\n }\n );\n case S_STENCIL_FUNC:\n return parseParam(\n function(value) {\n var cmp = value.cmp || \"keep\";\n var ref = value.ref || 0;\n var mask = \"mask\" in value ? value.mask : -1;\n return [\n compareFuncs[cmp],\n ref,\n mask\n ];\n },\n function(env2, scope, value) {\n var COMPARE_FUNCS = env2.constants.compareFuncs;\n var cmp = scope.def(\n '\"cmp\" in ',\n value,\n \"?\",\n COMPARE_FUNCS,\n \"[\",\n value,\n \".cmp]\",\n \":\",\n GL_KEEP\n );\n var ref = scope.def(value, \".ref|0\");\n var mask = scope.def(\n '\"mask\" in ',\n value,\n \"?\",\n value,\n \".mask|0:-1\"\n );\n return [cmp, ref, mask];\n }\n );\n case S_STENCIL_OPFRONT:\n case S_STENCIL_OPBACK:\n return parseParam(\n function(value) {\n var fail = value.fail || \"keep\";\n var zfail = value.zfail || \"keep\";\n var zpass = value.zpass || \"keep\";\n return [\n prop === S_STENCIL_OPBACK ? GL_BACK : GL_FRONT,\n stencilOps[fail],\n stencilOps[zfail],\n stencilOps[zpass]\n ];\n },\n function(env2, scope, value) {\n var STENCIL_OPS = env2.constants.stencilOps;\n function read(name2) {\n return scope.def(\n '\"',\n name2,\n '\" in ',\n value,\n \"?\",\n STENCIL_OPS,\n \"[\",\n value,\n \".\",\n name2,\n \"]:\",\n GL_KEEP\n );\n }\n return [\n prop === S_STENCIL_OPBACK ? GL_BACK : GL_FRONT,\n read(\"fail\"),\n read(\"zfail\"),\n read(\"zpass\")\n ];\n }\n );\n case S_POLYGON_OFFSET_OFFSET:\n return parseParam(\n function(value) {\n var factor = value.factor | 0;\n var units = value.units | 0;\n return [factor, units];\n },\n function(env2, scope, value) {\n var FACTOR = scope.def(value, \".factor|0\");\n var UNITS = scope.def(value, \".units|0\");\n return [FACTOR, UNITS];\n }\n );\n case S_CULL_FACE:\n return parseParam(\n function(value) {\n var face = 0;\n if (value === \"front\") {\n face = GL_FRONT;\n } else if (value === \"back\") {\n face = GL_BACK;\n }\n return face;\n },\n function(env2, scope, value) {\n return scope.def(value, '===\"front\"?', GL_FRONT, \":\", GL_BACK);\n }\n );\n case S_LINE_WIDTH:\n return parseParam(\n function(value) {\n return value;\n },\n function(env2, scope, value) {\n return value;\n }\n );\n case S_FRONT_FACE:\n return parseParam(\n function(value) {\n return orientationType[value];\n },\n function(env2, scope, value) {\n return scope.def(value + '===\"cw\"?' + GL_CW + \":\" + GL_CCW);\n }\n );\n case S_COLOR_MASK:\n return parseParam(\n function(value) {\n return value.map(function(v) {\n return !!v;\n });\n },\n function(env2, scope, value) {\n return loop(4, function(i) {\n return \"!!\" + value + \"[\" + i + \"]\";\n });\n }\n );\n case S_SAMPLE_COVERAGE:\n return parseParam(\n function(value) {\n var sampleValue = \"value\" in value ? value.value : 1;\n var sampleInvert = !!value.invert;\n return [sampleValue, sampleInvert];\n },\n function(env2, scope, value) {\n var VALUE = scope.def(\n '\"value\" in ',\n value,\n \"?+\",\n value,\n \".value:1\"\n );\n var INVERT = scope.def(\"!!\", value, \".invert\");\n return [VALUE, INVERT];\n }\n );\n }\n });\n return STATE;\n }\n function parseUniforms(uniforms, env) {\n var staticUniforms = uniforms.static;\n var dynamicUniforms = uniforms.dynamic;\n var UNIFORMS = {};\n Object.keys(staticUniforms).forEach(function(name2) {\n var value = staticUniforms[name2];\n var result;\n if (typeof value === \"number\" || typeof value === \"boolean\") {\n result = createStaticDecl(function() {\n return value;\n });\n } else if (typeof value === \"function\") {\n var reglType = value._reglType;\n if (reglType === \"texture2d\" || reglType === \"textureCube\") {\n result = createStaticDecl(function(env2) {\n return env2.link(value);\n });\n } else if (reglType === \"framebuffer\" || reglType === \"framebufferCube\") {\n result = createStaticDecl(function(env2) {\n return env2.link(value.color[0]);\n });\n } else {\n }\n } else if (isArrayLike(value)) {\n result = createStaticDecl(function(env2) {\n var ITEM = env2.global.def(\n \"[\",\n loop(value.length, function(i) {\n return value[i];\n }),\n \"]\"\n );\n return ITEM;\n });\n } else {\n }\n result.value = value;\n UNIFORMS[name2] = result;\n });\n Object.keys(dynamicUniforms).forEach(function(key) {\n var dyn = dynamicUniforms[key];\n UNIFORMS[key] = createDynamicDecl(dyn, function(env2, scope) {\n return env2.invoke(scope, dyn);\n });\n });\n return UNIFORMS;\n }\n function parseAttributes(attributes, env) {\n var staticAttributes = attributes.static;\n var dynamicAttributes = attributes.dynamic;\n var attributeDefs = {};\n Object.keys(staticAttributes).forEach(function(attribute) {\n var value = staticAttributes[attribute];\n var id = stringStore.id(attribute);\n var record = new AttributeRecord2();\n if (isBufferArgs(value)) {\n record.state = ATTRIB_STATE_POINTER;\n record.buffer = bufferState.getBuffer(\n bufferState.create(value, GL_ARRAY_BUFFER$2, false, true)\n );\n record.type = 0;\n } else {\n var buffer = bufferState.getBuffer(value);\n if (buffer) {\n record.state = ATTRIB_STATE_POINTER;\n record.buffer = buffer;\n record.type = 0;\n } else {\n if (\"constant\" in value) {\n var constant = value.constant;\n record.buffer = \"null\";\n record.state = ATTRIB_STATE_CONSTANT;\n if (typeof constant === \"number\") {\n record.x = constant;\n } else {\n CUTE_COMPONENTS.forEach(function(c, i) {\n if (i < constant.length) {\n record[c] = constant[i];\n }\n });\n }\n } else {\n if (isBufferArgs(value.buffer)) {\n buffer = bufferState.getBuffer(\n bufferState.create(value.buffer, GL_ARRAY_BUFFER$2, false, true)\n );\n } else {\n buffer = bufferState.getBuffer(value.buffer);\n }\n var offset = value.offset | 0;\n var stride = value.stride | 0;\n var size = value.size | 0;\n var normalized = !!value.normalized;\n var type = 0;\n if (\"type\" in value) {\n type = glTypes[value.type];\n }\n var divisor = value.divisor | 0;\n record.buffer = buffer;\n record.state = ATTRIB_STATE_POINTER;\n record.size = size;\n record.normalized = normalized;\n record.type = type || buffer.dtype;\n record.offset = offset;\n record.stride = stride;\n record.divisor = divisor;\n }\n }\n }\n attributeDefs[attribute] = createStaticDecl(function(env2, scope) {\n var cache = env2.attribCache;\n if (id in cache) {\n return cache[id];\n }\n var result = {\n isStream: false\n };\n Object.keys(record).forEach(function(key) {\n result[key] = record[key];\n });\n if (record.buffer) {\n result.buffer = env2.link(record.buffer);\n result.type = result.type || result.buffer + \".dtype\";\n }\n cache[id] = result;\n return result;\n });\n });\n Object.keys(dynamicAttributes).forEach(function(attribute) {\n var dyn = dynamicAttributes[attribute];\n function appendAttributeCode(env2, block) {\n var VALUE = env2.invoke(block, dyn);\n var shared = env2.shared;\n var constants = env2.constants;\n var IS_BUFFER_ARGS = shared.isBufferArgs;\n var BUFFER_STATE = shared.buffer;\n var result = {\n isStream: block.def(false)\n };\n var defaultRecord = new AttributeRecord2();\n defaultRecord.state = ATTRIB_STATE_POINTER;\n Object.keys(defaultRecord).forEach(function(key) {\n result[key] = block.def(\"\" + defaultRecord[key]);\n });\n var BUFFER = result.buffer;\n var TYPE = result.type;\n block(\n \"if(\",\n IS_BUFFER_ARGS,\n \"(\",\n VALUE,\n \")){\",\n result.isStream,\n \"=true;\",\n BUFFER,\n \"=\",\n BUFFER_STATE,\n \".createStream(\",\n GL_ARRAY_BUFFER$2,\n \",\",\n VALUE,\n \");\",\n TYPE,\n \"=\",\n BUFFER,\n \".dtype;\",\n \"}else{\",\n BUFFER,\n \"=\",\n BUFFER_STATE,\n \".getBuffer(\",\n VALUE,\n \");\",\n \"if(\",\n BUFFER,\n \"){\",\n TYPE,\n \"=\",\n BUFFER,\n \".dtype;\",\n '}else if(\"constant\" in ',\n VALUE,\n \"){\",\n result.state,\n \"=\",\n ATTRIB_STATE_CONSTANT,\n \";\",\n \"if(typeof \" + VALUE + '.constant === \"number\"){',\n result[CUTE_COMPONENTS[0]],\n \"=\",\n VALUE,\n \".constant;\",\n CUTE_COMPONENTS.slice(1).map(function(n) {\n return result[n];\n }).join(\"=\"),\n \"=0;\",\n \"}else{\",\n CUTE_COMPONENTS.map(function(name2, i) {\n return result[name2] + \"=\" + VALUE + \".constant.length>\" + i + \"?\" + VALUE + \".constant[\" + i + \"]:0;\";\n }).join(\"\"),\n \"}}else{\",\n \"if(\",\n IS_BUFFER_ARGS,\n \"(\",\n VALUE,\n \".buffer)){\",\n BUFFER,\n \"=\",\n BUFFER_STATE,\n \".createStream(\",\n GL_ARRAY_BUFFER$2,\n \",\",\n VALUE,\n \".buffer);\",\n \"}else{\",\n BUFFER,\n \"=\",\n BUFFER_STATE,\n \".getBuffer(\",\n VALUE,\n \".buffer);\",\n \"}\",\n TYPE,\n '=\"type\" in ',\n VALUE,\n \"?\",\n constants.glTypes,\n \"[\",\n VALUE,\n \".type]:\",\n BUFFER,\n \".dtype;\",\n result.normalized,\n \"=!!\",\n VALUE,\n \".normalized;\"\n );\n function emitReadRecord(name2) {\n block(result[name2], \"=\", VALUE, \".\", name2, \"|0;\");\n }\n emitReadRecord(\"size\");\n emitReadRecord(\"offset\");\n emitReadRecord(\"stride\");\n emitReadRecord(\"divisor\");\n block(\"}}\");\n block.exit(\n \"if(\",\n result.isStream,\n \"){\",\n BUFFER_STATE,\n \".destroyStream(\",\n BUFFER,\n \");\",\n \"}\"\n );\n return result;\n }\n attributeDefs[attribute] = createDynamicDecl(dyn, appendAttributeCode);\n });\n return attributeDefs;\n }\n function parseContext(context) {\n var staticContext = context.static;\n var dynamicContext = context.dynamic;\n var result = {};\n Object.keys(staticContext).forEach(function(name2) {\n var value = staticContext[name2];\n result[name2] = createStaticDecl(function(env, scope) {\n if (typeof value === \"number\" || typeof value === \"boolean\") {\n return \"\" + value;\n } else {\n return env.link(value);\n }\n });\n });\n Object.keys(dynamicContext).forEach(function(name2) {\n var dyn = dynamicContext[name2];\n result[name2] = createDynamicDecl(dyn, function(env, scope) {\n return env.invoke(scope, dyn);\n });\n });\n return result;\n }\n function parseArguments(options, attributes, uniforms, context, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n var attribLocations = parseAttribLocations(options, attributes);\n var framebuffer = parseFramebuffer(options, env);\n var viewportAndScissor = parseViewportScissor(options, framebuffer, env);\n var draw = parseDraw(options, env);\n var state = parseGLState(options, env);\n var shader = parseProgram(options, env, attribLocations);\n function copyBox(name2) {\n var defn = viewportAndScissor[name2];\n if (defn) {\n state[name2] = defn;\n }\n }\n copyBox(S_VIEWPORT);\n copyBox(propName(S_SCISSOR_BOX));\n var dirty = Object.keys(state).length > 0;\n var result = {\n framebuffer,\n draw,\n shader,\n state,\n dirty,\n scopeVAO: null,\n drawVAO: null,\n useVAO: false,\n attributes: {}\n };\n result.profile = parseProfile(options, env);\n result.uniforms = parseUniforms(uniforms, env);\n result.drawVAO = result.scopeVAO = draw.vao;\n if (!result.drawVAO && shader.program && !attribLocations && extensions.angle_instanced_arrays && draw.static.elements) {\n var useVAO = true;\n var staticBindings = shader.program.attributes.map(function(attr) {\n var binding = attributes.static[attr];\n useVAO = useVAO && !!binding;\n return binding;\n });\n if (useVAO && staticBindings.length > 0) {\n var vao = attributeState.getVAO(attributeState.createVAO({\n attributes: staticBindings,\n elements: draw.static.elements\n }));\n result.drawVAO = new Declaration(null, null, null, function(env2, scope) {\n return env2.link(vao);\n });\n result.useVAO = true;\n }\n }\n if (attribLocations) {\n result.useVAO = true;\n } else {\n result.attributes = parseAttributes(attributes, env);\n }\n result.context = parseContext(context, env);\n return result;\n }\n function emitContext(env, scope, context) {\n var shared = env.shared;\n var CONTEXT = shared.context;\n var contextEnter = env.scope();\n Object.keys(context).forEach(function(name2) {\n scope.save(CONTEXT, \".\" + name2);\n var defn = context[name2];\n var value = defn.append(env, scope);\n if (Array.isArray(value)) {\n contextEnter(CONTEXT, \".\", name2, \"=[\", value.join(), \"];\");\n } else {\n contextEnter(CONTEXT, \".\", name2, \"=\", value, \";\");\n }\n });\n scope(contextEnter);\n }\n function emitPollFramebuffer(env, scope, framebuffer, skipCheck) {\n var shared = env.shared;\n var GL = shared.gl;\n var FRAMEBUFFER_STATE = shared.framebuffer;\n var EXT_DRAW_BUFFERS;\n if (extDrawBuffers) {\n EXT_DRAW_BUFFERS = scope.def(shared.extensions, \".webgl_draw_buffers\");\n }\n var constants = env.constants;\n var DRAW_BUFFERS = constants.drawBuffer;\n var BACK_BUFFER = constants.backBuffer;\n var NEXT;\n if (framebuffer) {\n NEXT = framebuffer.append(env, scope);\n } else {\n NEXT = scope.def(FRAMEBUFFER_STATE, \".next\");\n }\n if (!skipCheck) {\n scope(\"if(\", NEXT, \"!==\", FRAMEBUFFER_STATE, \".cur){\");\n }\n scope(\n \"if(\",\n NEXT,\n \"){\",\n GL,\n \".bindFramebuffer(\",\n GL_FRAMEBUFFER$2,\n \",\",\n NEXT,\n \".framebuffer);\"\n );\n if (extDrawBuffers) {\n scope(\n EXT_DRAW_BUFFERS,\n \".drawBuffersWEBGL(\",\n DRAW_BUFFERS,\n \"[\",\n NEXT,\n \".colorAttachments.length]);\"\n );\n }\n scope(\n \"}else{\",\n GL,\n \".bindFramebuffer(\",\n GL_FRAMEBUFFER$2,\n \",null);\"\n );\n if (extDrawBuffers) {\n scope(EXT_DRAW_BUFFERS, \".drawBuffersWEBGL(\", BACK_BUFFER, \");\");\n }\n scope(\n \"}\",\n FRAMEBUFFER_STATE,\n \".cur=\",\n NEXT,\n \";\"\n );\n if (!skipCheck) {\n scope(\"}\");\n }\n }\n function emitPollState(env, scope, args) {\n var shared = env.shared;\n var GL = shared.gl;\n var CURRENT_VARS = env.current;\n var NEXT_VARS = env.next;\n var CURRENT_STATE = shared.current;\n var NEXT_STATE = shared.next;\n var block = env.cond(CURRENT_STATE, \".dirty\");\n GL_STATE_NAMES.forEach(function(prop) {\n var param = propName(prop);\n if (param in args.state) {\n return;\n }\n var NEXT, CURRENT;\n if (param in NEXT_VARS) {\n NEXT = NEXT_VARS[param];\n CURRENT = CURRENT_VARS[param];\n var parts = loop(currentState[param].length, function(i) {\n return block.def(NEXT, \"[\", i, \"]\");\n });\n block(env.cond(parts.map(function(p, i) {\n return p + \"!==\" + CURRENT + \"[\" + i + \"]\";\n }).join(\"||\")).then(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n parts,\n \");\",\n parts.map(function(p, i) {\n return CURRENT + \"[\" + i + \"]=\" + p;\n }).join(\";\"),\n \";\"\n ));\n } else {\n NEXT = block.def(NEXT_STATE, \".\", param);\n var ifte = env.cond(NEXT, \"!==\", CURRENT_STATE, \".\", param);\n block(ifte);\n if (param in GL_FLAGS) {\n ifte(\n env.cond(NEXT).then(GL, \".enable(\", GL_FLAGS[param], \");\").else(GL, \".disable(\", GL_FLAGS[param], \");\"),\n CURRENT_STATE,\n \".\",\n param,\n \"=\",\n NEXT,\n \";\"\n );\n } else {\n ifte(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n NEXT,\n \");\",\n CURRENT_STATE,\n \".\",\n param,\n \"=\",\n NEXT,\n \";\"\n );\n }\n }\n });\n if (Object.keys(args.state).length === 0) {\n block(CURRENT_STATE, \".dirty=false;\");\n }\n scope(block);\n }\n function emitSetOptions(env, scope, options, filter) {\n var shared = env.shared;\n var CURRENT_VARS = env.current;\n var CURRENT_STATE = shared.current;\n var GL = shared.gl;\n var VALUE;\n sortState(Object.keys(options)).forEach(function(param) {\n var defn = options[param];\n if (filter && !filter(defn)) {\n return;\n }\n var variable = defn.append(env, scope);\n if (GL_FLAGS[param]) {\n var flag = GL_FLAGS[param];\n if (isStatic(defn)) {\n VALUE = env.link(variable, { stable: true });\n scope(env.cond(VALUE).then(GL, \".enable(\", flag, \");\").else(GL, \".disable(\", flag, \");\"));\n scope(CURRENT_STATE, \".\", param, \"=\", VALUE, \";\");\n } else {\n scope(env.cond(variable).then(GL, \".enable(\", flag, \");\").else(GL, \".disable(\", flag, \");\"));\n scope(CURRENT_STATE, \".\", param, \"=\", variable, \";\");\n }\n } else if (isArrayLike(variable)) {\n var CURRENT = CURRENT_VARS[param];\n scope(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n variable,\n \");\",\n variable.map(function(v, i) {\n return CURRENT + \"[\" + i + \"]=\" + v;\n }).join(\";\"),\n \";\"\n );\n } else {\n if (isStatic(defn)) {\n VALUE = env.link(variable, { stable: true });\n scope(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n VALUE,\n \");\",\n CURRENT_STATE,\n \".\",\n param,\n \"=\",\n VALUE,\n \";\"\n );\n } else {\n scope(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n variable,\n \");\",\n CURRENT_STATE,\n \".\",\n param,\n \"=\",\n variable,\n \";\"\n );\n }\n }\n });\n }\n function injectExtensions(env, scope) {\n if (extInstancing) {\n env.instancing = scope.def(\n env.shared.extensions,\n \".angle_instanced_arrays\"\n );\n }\n }\n function emitProfile(env, scope, args, useScope, incrementCounter) {\n var shared = env.shared;\n var STATS = env.stats;\n var CURRENT_STATE = shared.current;\n var TIMER = shared.timer;\n var profileArg = args.profile;\n function perfCounter() {\n if (typeof performance === \"undefined\") {\n return \"Date.now()\";\n } else {\n return \"performance.now()\";\n }\n }\n var CPU_START, QUERY_COUNTER;\n function emitProfileStart(block) {\n CPU_START = scope.def();\n block(CPU_START, \"=\", perfCounter(), \";\");\n if (typeof incrementCounter === \"string\") {\n block(STATS, \".count+=\", incrementCounter, \";\");\n } else {\n block(STATS, \".count++;\");\n }\n if (timer) {\n if (useScope) {\n QUERY_COUNTER = scope.def();\n block(QUERY_COUNTER, \"=\", TIMER, \".getNumPendingQueries();\");\n } else {\n block(TIMER, \".beginQuery(\", STATS, \");\");\n }\n }\n }\n function emitProfileEnd(block) {\n block(STATS, \".cpuTime+=\", perfCounter(), \"-\", CPU_START, \";\");\n if (timer) {\n if (useScope) {\n block(\n TIMER,\n \".pushScopeStats(\",\n QUERY_COUNTER,\n \",\",\n TIMER,\n \".getNumPendingQueries(),\",\n STATS,\n \");\"\n );\n } else {\n block(TIMER, \".endQuery();\");\n }\n }\n }\n function scopeProfile(value) {\n var prev = scope.def(CURRENT_STATE, \".profile\");\n scope(CURRENT_STATE, \".profile=\", value, \";\");\n scope.exit(CURRENT_STATE, \".profile=\", prev, \";\");\n }\n var USE_PROFILE;\n if (profileArg) {\n if (isStatic(profileArg)) {\n if (profileArg.enable) {\n emitProfileStart(scope);\n emitProfileEnd(scope.exit);\n scopeProfile(\"true\");\n } else {\n scopeProfile(\"false\");\n }\n return;\n }\n USE_PROFILE = profileArg.append(env, scope);\n scopeProfile(USE_PROFILE);\n } else {\n USE_PROFILE = scope.def(CURRENT_STATE, \".profile\");\n }\n var start = env.block();\n emitProfileStart(start);\n scope(\"if(\", USE_PROFILE, \"){\", start, \"}\");\n var end = env.block();\n emitProfileEnd(end);\n scope.exit(\"if(\", USE_PROFILE, \"){\", end, \"}\");\n }\n function emitAttributes(env, scope, args, attributes, filter) {\n var shared = env.shared;\n function typeLength(x) {\n switch (x) {\n case GL_FLOAT_VEC2:\n case GL_INT_VEC2:\n case GL_BOOL_VEC2:\n return 2;\n case GL_FLOAT_VEC3:\n case GL_INT_VEC3:\n case GL_BOOL_VEC3:\n return 3;\n case GL_FLOAT_VEC4:\n case GL_INT_VEC4:\n case GL_BOOL_VEC4:\n return 4;\n default:\n return 1;\n }\n }\n function emitBindAttribute(ATTRIBUTE, size, record) {\n var GL = shared.gl;\n var LOCATION = scope.def(ATTRIBUTE, \".location\");\n var BINDING = scope.def(shared.attributes, \"[\", LOCATION, \"]\");\n var STATE = record.state;\n var BUFFER = record.buffer;\n var CONST_COMPONENTS = [\n record.x,\n record.y,\n record.z,\n record.w\n ];\n var COMMON_KEYS = [\n \"buffer\",\n \"normalized\",\n \"offset\",\n \"stride\"\n ];\n function emitBuffer() {\n scope(\n \"if(!\",\n BINDING,\n \".buffer){\",\n GL,\n \".enableVertexAttribArray(\",\n LOCATION,\n \");}\"\n );\n var TYPE = record.type;\n var SIZE;\n if (!record.size) {\n SIZE = size;\n } else {\n SIZE = scope.def(record.size, \"||\", size);\n }\n scope(\n \"if(\",\n BINDING,\n \".type!==\",\n TYPE,\n \"||\",\n BINDING,\n \".size!==\",\n SIZE,\n \"||\",\n COMMON_KEYS.map(function(key) {\n return BINDING + \".\" + key + \"!==\" + record[key];\n }).join(\"||\"),\n \"){\",\n GL,\n \".bindBuffer(\",\n GL_ARRAY_BUFFER$2,\n \",\",\n BUFFER,\n \".buffer);\",\n GL,\n \".vertexAttribPointer(\",\n [\n LOCATION,\n SIZE,\n TYPE,\n record.normalized,\n record.stride,\n record.offset\n ],\n \");\",\n BINDING,\n \".type=\",\n TYPE,\n \";\",\n BINDING,\n \".size=\",\n SIZE,\n \";\",\n COMMON_KEYS.map(function(key) {\n return BINDING + \".\" + key + \"=\" + record[key] + \";\";\n }).join(\"\"),\n \"}\"\n );\n if (extInstancing) {\n var DIVISOR = record.divisor;\n scope(\n \"if(\",\n BINDING,\n \".divisor!==\",\n DIVISOR,\n \"){\",\n env.instancing,\n \".vertexAttribDivisorANGLE(\",\n [LOCATION, DIVISOR],\n \");\",\n BINDING,\n \".divisor=\",\n DIVISOR,\n \";}\"\n );\n }\n }\n function emitConstant() {\n scope(\n \"if(\",\n BINDING,\n \".buffer){\",\n GL,\n \".disableVertexAttribArray(\",\n LOCATION,\n \");\",\n BINDING,\n \".buffer=null;\",\n \"}if(\",\n CUTE_COMPONENTS.map(function(c, i) {\n return BINDING + \".\" + c + \"!==\" + CONST_COMPONENTS[i];\n }).join(\"||\"),\n \"){\",\n GL,\n \".vertexAttrib4f(\",\n LOCATION,\n \",\",\n CONST_COMPONENTS,\n \");\",\n CUTE_COMPONENTS.map(function(c, i) {\n return BINDING + \".\" + c + \"=\" + CONST_COMPONENTS[i] + \";\";\n }).join(\"\"),\n \"}\"\n );\n }\n if (STATE === ATTRIB_STATE_POINTER) {\n emitBuffer();\n } else if (STATE === ATTRIB_STATE_CONSTANT) {\n emitConstant();\n } else {\n scope(\"if(\", STATE, \"===\", ATTRIB_STATE_POINTER, \"){\");\n emitBuffer();\n scope(\"}else{\");\n emitConstant();\n scope(\"}\");\n }\n }\n attributes.forEach(function(attribute) {\n var name2 = attribute.name;\n var arg = args.attributes[name2];\n var record;\n if (arg) {\n if (!filter(arg)) {\n return;\n }\n record = arg.append(env, scope);\n } else {\n if (!filter(SCOPE_DECL)) {\n return;\n }\n var scopeAttrib = env.scopeAttrib(name2);\n record = {};\n Object.keys(new AttributeRecord2()).forEach(function(key) {\n record[key] = scope.def(scopeAttrib, \".\", key);\n });\n }\n emitBindAttribute(\n env.link(attribute),\n typeLength(attribute.info.type),\n record\n );\n });\n }\n function emitUniforms(env, scope, args, uniforms, filter, isBatchInnerLoop) {\n var shared = env.shared;\n var GL = shared.gl;\n var infix;\n for (var i = 0; i < uniforms.length; ++i) {\n var uniform = uniforms[i];\n var name2 = uniform.name;\n var type = uniform.info.type;\n var arg = args.uniforms[name2];\n var UNIFORM = env.link(uniform);\n var LOCATION = UNIFORM + \".location\";\n var VALUE;\n if (arg) {\n if (!filter(arg)) {\n continue;\n }\n if (isStatic(arg)) {\n var value = arg.value;\n if (type === GL_SAMPLER_2D || type === GL_SAMPLER_CUBE) {\n var TEX_VALUE = env.link(value._texture || value.color[0]._texture);\n scope(GL, \".uniform1i(\", LOCATION, \",\", TEX_VALUE + \".bind());\");\n scope.exit(TEX_VALUE, \".unbind();\");\n } else if (type === GL_FLOAT_MAT2 || type === GL_FLOAT_MAT3 || type === GL_FLOAT_MAT4) {\n var MAT_VALUE = env.global.def(\"new Float32Array([\" + Array.prototype.slice.call(value) + \"])\");\n var dim = 2;\n if (type === GL_FLOAT_MAT3) {\n dim = 3;\n } else if (type === GL_FLOAT_MAT4) {\n dim = 4;\n }\n scope(\n GL,\n \".uniformMatrix\",\n dim,\n \"fv(\",\n LOCATION,\n \",false,\",\n MAT_VALUE,\n \");\"\n );\n } else {\n switch (type) {\n case GL_FLOAT$7:\n infix = \"1f\";\n break;\n case GL_FLOAT_VEC2:\n infix = \"2f\";\n break;\n case GL_FLOAT_VEC3:\n infix = \"3f\";\n break;\n case GL_FLOAT_VEC4:\n infix = \"4f\";\n break;\n case GL_BOOL:\n infix = \"1i\";\n break;\n case GL_INT$2:\n infix = \"1i\";\n break;\n case GL_BOOL_VEC2:\n infix = \"2i\";\n break;\n case GL_INT_VEC2:\n infix = \"2i\";\n break;\n case GL_BOOL_VEC3:\n infix = \"3i\";\n break;\n case GL_INT_VEC3:\n infix = \"3i\";\n break;\n case GL_BOOL_VEC4:\n infix = \"4i\";\n break;\n case GL_INT_VEC4:\n infix = \"4i\";\n break;\n }\n scope(\n GL,\n \".uniform\",\n infix,\n \"(\",\n LOCATION,\n \",\",\n isArrayLike(value) ? Array.prototype.slice.call(value) : value,\n \");\"\n );\n }\n continue;\n } else {\n VALUE = arg.append(env, scope);\n }\n } else {\n if (!filter(SCOPE_DECL)) {\n continue;\n }\n VALUE = scope.def(shared.uniforms, \"[\", stringStore.id(name2), \"]\");\n }\n if (type === GL_SAMPLER_2D) {\n scope(\n \"if(\",\n VALUE,\n \"&&\",\n VALUE,\n '._reglType===\"framebuffer\"){',\n VALUE,\n \"=\",\n VALUE,\n \".color[0];\",\n \"}\"\n );\n } else if (type === GL_SAMPLER_CUBE) {\n scope(\n \"if(\",\n VALUE,\n \"&&\",\n VALUE,\n '._reglType===\"framebufferCube\"){',\n VALUE,\n \"=\",\n VALUE,\n \".color[0];\",\n \"}\"\n );\n }\n var unroll = 1;\n switch (type) {\n case GL_SAMPLER_2D:\n case GL_SAMPLER_CUBE:\n var TEX = scope.def(VALUE, \"._texture\");\n scope(GL, \".uniform1i(\", LOCATION, \",\", TEX, \".bind());\");\n scope.exit(TEX, \".unbind();\");\n continue;\n case GL_INT$2:\n case GL_BOOL:\n infix = \"1i\";\n break;\n case GL_INT_VEC2:\n case GL_BOOL_VEC2:\n infix = \"2i\";\n unroll = 2;\n break;\n case GL_INT_VEC3:\n case GL_BOOL_VEC3:\n infix = \"3i\";\n unroll = 3;\n break;\n case GL_INT_VEC4:\n case GL_BOOL_VEC4:\n infix = \"4i\";\n unroll = 4;\n break;\n case GL_FLOAT$7:\n infix = \"1f\";\n break;\n case GL_FLOAT_VEC2:\n infix = \"2f\";\n unroll = 2;\n break;\n case GL_FLOAT_VEC3:\n infix = \"3f\";\n unroll = 3;\n break;\n case GL_FLOAT_VEC4:\n infix = \"4f\";\n unroll = 4;\n break;\n case GL_FLOAT_MAT2:\n infix = \"Matrix2fv\";\n break;\n case GL_FLOAT_MAT3:\n infix = \"Matrix3fv\";\n break;\n case GL_FLOAT_MAT4:\n infix = \"Matrix4fv\";\n break;\n }\n if (infix.charAt(0) === \"M\") {\n scope(GL, \".uniform\", infix, \"(\", LOCATION, \",\");\n var matSize = Math.pow(type - GL_FLOAT_MAT2 + 2, 2);\n var STORAGE = env.global.def(\"new Float32Array(\", matSize, \")\");\n if (Array.isArray(VALUE)) {\n scope(\n \"false,(\",\n loop(matSize, function(i2) {\n return STORAGE + \"[\" + i2 + \"]=\" + VALUE[i2];\n }),\n \",\",\n STORAGE,\n \")\"\n );\n } else {\n scope(\n \"false,(Array.isArray(\",\n VALUE,\n \")||\",\n VALUE,\n \" instanceof Float32Array)?\",\n VALUE,\n \":(\",\n loop(matSize, function(i2) {\n return STORAGE + \"[\" + i2 + \"]=\" + VALUE + \"[\" + i2 + \"]\";\n }),\n \",\",\n STORAGE,\n \")\"\n );\n }\n scope(\");\");\n } else if (unroll > 1) {\n var prev = [];\n var cur = [];\n for (var j = 0; j < unroll; ++j) {\n if (Array.isArray(VALUE)) {\n cur.push(VALUE[j]);\n } else {\n cur.push(scope.def(VALUE + \"[\" + j + \"]\"));\n }\n if (isBatchInnerLoop) {\n prev.push(scope.def());\n }\n }\n if (isBatchInnerLoop) {\n scope(\"if(!\", env.batchId, \"||\", prev.map(function(p, i2) {\n return p + \"!==\" + cur[i2];\n }).join(\"||\"), \"){\", prev.map(function(p, i2) {\n return p + \"=\" + cur[i2] + \";\";\n }).join(\"\"));\n }\n scope(GL, \".uniform\", infix, \"(\", LOCATION, \",\", cur.join(\",\"), \");\");\n if (isBatchInnerLoop) {\n scope(\"}\");\n }\n } else {\n if (isBatchInnerLoop) {\n var prevS = scope.def();\n scope(\n \"if(!\",\n env.batchId,\n \"||\",\n prevS,\n \"!==\",\n VALUE,\n \"){\",\n prevS,\n \"=\",\n VALUE,\n \";\"\n );\n }\n scope(GL, \".uniform\", infix, \"(\", LOCATION, \",\", VALUE, \");\");\n if (isBatchInnerLoop) {\n scope(\"}\");\n }\n }\n }\n }\n function emitDraw(env, outer, inner, args) {\n var shared = env.shared;\n var GL = shared.gl;\n var DRAW_STATE = shared.draw;\n var drawOptions = args.draw;\n function emitElements() {\n var defn = drawOptions.elements;\n var ELEMENTS2;\n var scope = outer;\n if (defn) {\n if (defn.contextDep && args.contextDynamic || defn.propDep) {\n scope = inner;\n }\n ELEMENTS2 = defn.append(env, scope);\n if (drawOptions.elementsActive) {\n scope(\n \"if(\" + ELEMENTS2 + \")\" + GL + \".bindBuffer(\" + GL_ELEMENT_ARRAY_BUFFER$2 + \",\" + ELEMENTS2 + \".buffer.buffer);\"\n );\n }\n } else {\n ELEMENTS2 = scope.def();\n scope(\n ELEMENTS2,\n \"=\",\n DRAW_STATE,\n \".\",\n S_ELEMENTS,\n \";\",\n \"if(\",\n ELEMENTS2,\n \"){\",\n GL,\n \".bindBuffer(\",\n GL_ELEMENT_ARRAY_BUFFER$2,\n \",\",\n ELEMENTS2,\n \".buffer.buffer);}\",\n \"else if(\",\n shared.vao,\n \".currentVAO){\",\n ELEMENTS2,\n \"=\",\n env.shared.elements + \".getElements(\" + shared.vao,\n \".currentVAO.elements);\",\n !extVertexArrays ? \"if(\" + ELEMENTS2 + \")\" + GL + \".bindBuffer(\" + GL_ELEMENT_ARRAY_BUFFER$2 + \",\" + ELEMENTS2 + \".buffer.buffer);\" : \"\",\n \"}\"\n );\n }\n return ELEMENTS2;\n }\n function emitCount() {\n var defn = drawOptions.count;\n var COUNT2;\n var scope = outer;\n if (defn) {\n if (defn.contextDep && args.contextDynamic || defn.propDep) {\n scope = inner;\n }\n COUNT2 = defn.append(env, scope);\n } else {\n COUNT2 = scope.def(DRAW_STATE, \".\", S_COUNT);\n }\n return COUNT2;\n }\n var ELEMENTS = emitElements();\n function emitValue(name2) {\n var defn = drawOptions[name2];\n if (defn) {\n if (defn.contextDep && args.contextDynamic || defn.propDep) {\n return defn.append(env, inner);\n } else {\n return defn.append(env, outer);\n }\n } else {\n return outer.def(DRAW_STATE, \".\", name2);\n }\n }\n var PRIMITIVE = emitValue(S_PRIMITIVE);\n var OFFSET = emitValue(S_OFFSET);\n var COUNT = emitCount();\n if (typeof COUNT === \"number\") {\n if (COUNT === 0) {\n return;\n }\n } else {\n inner(\"if(\", COUNT, \"){\");\n inner.exit(\"}\");\n }\n var INSTANCES, EXT_INSTANCING;\n if (extInstancing) {\n INSTANCES = emitValue(S_INSTANCES);\n EXT_INSTANCING = env.instancing;\n }\n var ELEMENT_TYPE = ELEMENTS + \".type\";\n var elementsStatic = drawOptions.elements && isStatic(drawOptions.elements) && !drawOptions.vaoActive;\n function emitInstancing() {\n function drawElements() {\n inner(EXT_INSTANCING, \".drawElementsInstancedANGLE(\", [\n PRIMITIVE,\n COUNT,\n ELEMENT_TYPE,\n OFFSET + \"<<((\" + ELEMENT_TYPE + \"-\" + GL_UNSIGNED_BYTE$7 + \")>>1)\",\n INSTANCES\n ], \");\");\n }\n function drawArrays() {\n inner(\n EXT_INSTANCING,\n \".drawArraysInstancedANGLE(\",\n [PRIMITIVE, OFFSET, COUNT, INSTANCES],\n \");\"\n );\n }\n if (ELEMENTS && ELEMENTS !== \"null\") {\n if (!elementsStatic) {\n inner(\"if(\", ELEMENTS, \"){\");\n drawElements();\n inner(\"}else{\");\n drawArrays();\n inner(\"}\");\n } else {\n drawElements();\n }\n } else {\n drawArrays();\n }\n }\n function emitRegular() {\n function drawElements() {\n inner(GL + \".drawElements(\" + [\n PRIMITIVE,\n COUNT,\n ELEMENT_TYPE,\n OFFSET + \"<<((\" + ELEMENT_TYPE + \"-\" + GL_UNSIGNED_BYTE$7 + \")>>1)\"\n ] + \");\");\n }\n function drawArrays() {\n inner(GL + \".drawArrays(\" + [PRIMITIVE, OFFSET, COUNT] + \");\");\n }\n if (ELEMENTS && ELEMENTS !== \"null\") {\n if (!elementsStatic) {\n inner(\"if(\", ELEMENTS, \"){\");\n drawElements();\n inner(\"}else{\");\n drawArrays();\n inner(\"}\");\n } else {\n drawElements();\n }\n } else {\n drawArrays();\n }\n }\n if (extInstancing && (typeof INSTANCES !== \"number\" || INSTANCES >= 0)) {\n if (typeof INSTANCES === \"string\") {\n inner(\"if(\", INSTANCES, \">0){\");\n emitInstancing();\n inner(\"}else if(\", INSTANCES, \"<0){\");\n emitRegular();\n inner(\"}\");\n } else {\n emitInstancing();\n }\n } else {\n emitRegular();\n }\n }\n function createBody(emitBody, parentEnv, args, program, count) {\n var env = createREGLEnvironment();\n var scope = env.proc(\"body\", count);\n if (extInstancing) {\n env.instancing = scope.def(\n env.shared.extensions,\n \".angle_instanced_arrays\"\n );\n }\n emitBody(env, scope, args, program);\n return env.compile().body;\n }\n function emitDrawBody(env, draw, args, program) {\n injectExtensions(env, draw);\n if (args.useVAO) {\n if (args.drawVAO) {\n draw(env.shared.vao, \".setVAO(\", args.drawVAO.append(env, draw), \");\");\n } else {\n draw(env.shared.vao, \".setVAO(\", env.shared.vao, \".targetVAO);\");\n }\n } else {\n draw(env.shared.vao, \".setVAO(null);\");\n emitAttributes(env, draw, args, program.attributes, function() {\n return true;\n });\n }\n emitUniforms(env, draw, args, program.uniforms, function() {\n return true;\n }, false);\n emitDraw(env, draw, draw, args);\n }\n function emitDrawProc(env, args) {\n var draw = env.proc(\"draw\", 1);\n injectExtensions(env, draw);\n emitContext(env, draw, args.context);\n emitPollFramebuffer(env, draw, args.framebuffer);\n emitPollState(env, draw, args);\n emitSetOptions(env, draw, args.state);\n emitProfile(env, draw, args, false, true);\n var program = args.shader.progVar.append(env, draw);\n draw(env.shared.gl, \".useProgram(\", program, \".program);\");\n if (args.shader.program) {\n emitDrawBody(env, draw, args, args.shader.program);\n } else {\n draw(env.shared.vao, \".setVAO(null);\");\n var drawCache = env.global.def(\"{}\");\n var PROG_ID = draw.def(program, \".id\");\n var CACHED_PROC = draw.def(drawCache, \"[\", PROG_ID, \"]\");\n draw(\n env.cond(CACHED_PROC).then(CACHED_PROC, \".call(this,a0);\").else(\n CACHED_PROC,\n \"=\",\n drawCache,\n \"[\",\n PROG_ID,\n \"]=\",\n env.link(function(program2) {\n return createBody(emitDrawBody, env, args, program2, 1);\n }),\n \"(\",\n program,\n \");\",\n CACHED_PROC,\n \".call(this,a0);\"\n )\n );\n }\n if (Object.keys(args.state).length > 0) {\n draw(env.shared.current, \".dirty=true;\");\n }\n if (env.shared.vao) {\n draw(env.shared.vao, \".setVAO(null);\");\n }\n }\n function emitBatchDynamicShaderBody(env, scope, args, program) {\n env.batchId = \"a1\";\n injectExtensions(env, scope);\n function all() {\n return true;\n }\n emitAttributes(env, scope, args, program.attributes, all);\n emitUniforms(env, scope, args, program.uniforms, all, false);\n emitDraw(env, scope, scope, args);\n }\n function emitBatchBody(env, scope, args, program) {\n injectExtensions(env, scope);\n var contextDynamic = args.contextDep;\n var BATCH_ID = scope.def();\n var PROP_LIST = \"a0\";\n var NUM_PROPS = \"a1\";\n var PROPS = scope.def();\n env.shared.props = PROPS;\n env.batchId = BATCH_ID;\n var outer = env.scope();\n var inner = env.scope();\n scope(\n outer.entry,\n \"for(\",\n BATCH_ID,\n \"=0;\",\n BATCH_ID,\n \"<\",\n NUM_PROPS,\n \";++\",\n BATCH_ID,\n \"){\",\n PROPS,\n \"=\",\n PROP_LIST,\n \"[\",\n BATCH_ID,\n \"];\",\n inner,\n \"}\",\n outer.exit\n );\n function isInnerDefn(defn) {\n return defn.contextDep && contextDynamic || defn.propDep;\n }\n function isOuterDefn(defn) {\n return !isInnerDefn(defn);\n }\n if (args.needsContext) {\n emitContext(env, inner, args.context);\n }\n if (args.needsFramebuffer) {\n emitPollFramebuffer(env, inner, args.framebuffer);\n }\n emitSetOptions(env, inner, args.state, isInnerDefn);\n if (args.profile && isInnerDefn(args.profile)) {\n emitProfile(env, inner, args, false, true);\n }\n if (!program) {\n var progCache = env.global.def(\"{}\");\n var PROGRAM = args.shader.progVar.append(env, inner);\n var PROG_ID = inner.def(PROGRAM, \".id\");\n var CACHED_PROC = inner.def(progCache, \"[\", PROG_ID, \"]\");\n inner(\n env.shared.gl,\n \".useProgram(\",\n PROGRAM,\n \".program);\",\n \"if(!\",\n CACHED_PROC,\n \"){\",\n CACHED_PROC,\n \"=\",\n progCache,\n \"[\",\n PROG_ID,\n \"]=\",\n env.link(function(program2) {\n return createBody(\n emitBatchDynamicShaderBody,\n env,\n args,\n program2,\n 2\n );\n }),\n \"(\",\n PROGRAM,\n \");}\",\n CACHED_PROC,\n \".call(this,a0[\",\n BATCH_ID,\n \"],\",\n BATCH_ID,\n \");\"\n );\n } else {\n if (args.useVAO) {\n if (args.drawVAO) {\n if (isInnerDefn(args.drawVAO)) {\n inner(env.shared.vao, \".setVAO(\", args.drawVAO.append(env, inner), \");\");\n } else {\n outer(env.shared.vao, \".setVAO(\", args.drawVAO.append(env, outer), \");\");\n }\n } else {\n outer(env.shared.vao, \".setVAO(\", env.shared.vao, \".targetVAO);\");\n }\n } else {\n outer(env.shared.vao, \".setVAO(null);\");\n emitAttributes(env, outer, args, program.attributes, isOuterDefn);\n emitAttributes(env, inner, args, program.attributes, isInnerDefn);\n }\n emitUniforms(env, outer, args, program.uniforms, isOuterDefn, false);\n emitUniforms(env, inner, args, program.uniforms, isInnerDefn, true);\n emitDraw(env, outer, inner, args);\n }\n }\n function emitBatchProc(env, args) {\n var batch = env.proc(\"batch\", 2);\n env.batchId = \"0\";\n injectExtensions(env, batch);\n var contextDynamic = false;\n var needsContext = true;\n Object.keys(args.context).forEach(function(name2) {\n contextDynamic = contextDynamic || args.context[name2].propDep;\n });\n if (!contextDynamic) {\n emitContext(env, batch, args.context);\n needsContext = false;\n }\n var framebuffer = args.framebuffer;\n var needsFramebuffer = false;\n if (framebuffer) {\n if (framebuffer.propDep) {\n contextDynamic = needsFramebuffer = true;\n } else if (framebuffer.contextDep && contextDynamic) {\n needsFramebuffer = true;\n }\n if (!needsFramebuffer) {\n emitPollFramebuffer(env, batch, framebuffer);\n }\n } else {\n emitPollFramebuffer(env, batch, null);\n }\n if (args.state.viewport && args.state.viewport.propDep) {\n contextDynamic = true;\n }\n function isInnerDefn(defn) {\n return defn.contextDep && contextDynamic || defn.propDep;\n }\n emitPollState(env, batch, args);\n emitSetOptions(env, batch, args.state, function(defn) {\n return !isInnerDefn(defn);\n });\n if (!args.profile || !isInnerDefn(args.profile)) {\n emitProfile(env, batch, args, false, \"a1\");\n }\n args.contextDep = contextDynamic;\n args.needsContext = needsContext;\n args.needsFramebuffer = needsFramebuffer;\n var progDefn = args.shader.progVar;\n if (progDefn.contextDep && contextDynamic || progDefn.propDep) {\n emitBatchBody(\n env,\n batch,\n args,\n null\n );\n } else {\n var PROGRAM = progDefn.append(env, batch);\n batch(env.shared.gl, \".useProgram(\", PROGRAM, \".program);\");\n if (args.shader.program) {\n emitBatchBody(\n env,\n batch,\n args,\n args.shader.program\n );\n } else {\n batch(env.shared.vao, \".setVAO(null);\");\n var batchCache = env.global.def(\"{}\");\n var PROG_ID = batch.def(PROGRAM, \".id\");\n var CACHED_PROC = batch.def(batchCache, \"[\", PROG_ID, \"]\");\n batch(\n env.cond(CACHED_PROC).then(CACHED_PROC, \".call(this,a0,a1);\").else(\n CACHED_PROC,\n \"=\",\n batchCache,\n \"[\",\n PROG_ID,\n \"]=\",\n env.link(function(program) {\n return createBody(emitBatchBody, env, args, program, 2);\n }),\n \"(\",\n PROGRAM,\n \");\",\n CACHED_PROC,\n \".call(this,a0,a1);\"\n )\n );\n }\n }\n if (Object.keys(args.state).length > 0) {\n batch(env.shared.current, \".dirty=true;\");\n }\n if (env.shared.vao) {\n batch(env.shared.vao, \".setVAO(null);\");\n }\n }\n function emitScopeProc(env, args) {\n var scope = env.proc(\"scope\", 3);\n env.batchId = \"a2\";\n var shared = env.shared;\n var CURRENT_STATE = shared.current;\n emitContext(env, scope, args.context);\n if (args.framebuffer) {\n args.framebuffer.append(env, scope);\n }\n sortState(Object.keys(args.state)).forEach(function(name2) {\n var defn = args.state[name2];\n var value = defn.append(env, scope);\n if (isArrayLike(value)) {\n value.forEach(function(v, i) {\n if (hasVariableReference(v)) {\n scope.set(env.next[name2], \"[\" + i + \"]\", v);\n } else {\n scope.set(env.next[name2], \"[\" + i + \"]\", env.link(v, { stable: true }));\n }\n });\n } else {\n if (isStatic(defn)) {\n scope.set(shared.next, \".\" + name2, env.link(value, { stable: true }));\n } else {\n scope.set(shared.next, \".\" + name2, value);\n }\n }\n });\n emitProfile(env, scope, args, true, true);\n [S_ELEMENTS, S_OFFSET, S_COUNT, S_INSTANCES, S_PRIMITIVE].forEach(\n function(opt) {\n var variable = args.draw[opt];\n if (!variable) {\n return;\n }\n var VARIABLE2 = variable.append(env, scope);\n if (hasVariableReference(VARIABLE2)) {\n scope.set(shared.draw, \".\" + opt, VARIABLE2);\n } else {\n scope.set(shared.draw, \".\" + opt, env.link(VARIABLE2), { stable: true });\n }\n }\n );\n Object.keys(args.uniforms).forEach(function(opt) {\n var value = args.uniforms[opt].append(env, scope);\n if (Array.isArray(value)) {\n value = \"[\" + value.map(function(v) {\n if (hasVariableReference(v)) {\n return v;\n } else {\n return env.link(v, { stable: true });\n }\n }) + \"]\";\n }\n scope.set(\n shared.uniforms,\n \"[\" + env.link(stringStore.id(opt), { stable: true }) + \"]\",\n value\n );\n });\n Object.keys(args.attributes).forEach(function(name2) {\n var record = args.attributes[name2].append(env, scope);\n var scopeAttrib = env.scopeAttrib(name2);\n Object.keys(new AttributeRecord2()).forEach(function(prop) {\n scope.set(scopeAttrib, \".\" + prop, record[prop]);\n });\n });\n if (args.scopeVAO) {\n var VARIABLE = args.scopeVAO.append(env, scope);\n if (hasVariableReference(VARIABLE)) {\n scope.set(shared.vao, \".targetVAO\", VARIABLE);\n } else {\n scope.set(shared.vao, \".targetVAO\", env.link(VARIABLE, { stable: true }));\n }\n }\n function saveShader(name2) {\n var shader = args.shader[name2];\n if (shader) {\n var VARIABLE2 = shader.append(env, scope);\n if (hasVariableReference(VARIABLE2)) {\n scope.set(shared.shader, \".\" + name2, VARIABLE2);\n } else {\n scope.set(shared.shader, \".\" + name2, env.link(VARIABLE2, { stable: true }));\n }\n }\n }\n saveShader(S_VERT);\n saveShader(S_FRAG);\n if (Object.keys(args.state).length > 0) {\n scope(CURRENT_STATE, \".dirty=true;\");\n scope.exit(CURRENT_STATE, \".dirty=true;\");\n }\n scope(\"a1(\", env.shared.context, \",a0,\", env.batchId, \");\");\n }\n function isDynamicObject(object) {\n if (typeof object !== \"object\" || isArrayLike(object)) {\n return;\n }\n var props = Object.keys(object);\n for (var i = 0; i < props.length; ++i) {\n if (dynamic.isDynamic(object[props[i]])) {\n return true;\n }\n }\n return false;\n }\n function splatObject(env, options, name2) {\n var object = options.static[name2];\n if (!object || !isDynamicObject(object)) {\n return;\n }\n var globals = env.global;\n var keys = Object.keys(object);\n var thisDep = false;\n var contextDep = false;\n var propDep = false;\n var objectRef = env.global.def(\"{}\");\n keys.forEach(function(key) {\n var value = object[key];\n if (dynamic.isDynamic(value)) {\n if (typeof value === \"function\") {\n value = object[key] = dynamic.unbox(value);\n }\n var deps = createDynamicDecl(value, null);\n thisDep = thisDep || deps.thisDep;\n propDep = propDep || deps.propDep;\n contextDep = contextDep || deps.contextDep;\n } else {\n globals(objectRef, \".\", key, \"=\");\n switch (typeof value) {\n case \"number\":\n globals(value);\n break;\n case \"string\":\n globals('\"', value, '\"');\n break;\n case \"object\":\n if (Array.isArray(value)) {\n globals(\"[\", value.join(), \"]\");\n }\n break;\n default:\n globals(env.link(value));\n break;\n }\n globals(\";\");\n }\n });\n function appendBlock(env2, block) {\n keys.forEach(function(key) {\n var value = object[key];\n if (!dynamic.isDynamic(value)) {\n return;\n }\n var ref = env2.invoke(block, value);\n block(objectRef, \".\", key, \"=\", ref, \";\");\n });\n }\n options.dynamic[name2] = new dynamic.DynamicVariable(DYN_THUNK, {\n thisDep,\n contextDep,\n propDep,\n ref: objectRef,\n append: appendBlock\n });\n delete options.static[name2];\n }\n function compileCommand(options, attributes, uniforms, context, stats2) {\n var env = createREGLEnvironment();\n env.stats = env.link(stats2);\n Object.keys(attributes.static).forEach(function(key) {\n splatObject(env, attributes, key);\n });\n NESTED_OPTIONS.forEach(function(name2) {\n splatObject(env, options, name2);\n });\n var args = parseArguments(options, attributes, uniforms, context, env);\n if (args.shader.program) {\n args.shader.program.attributes.sort(function(a, b) {\n return a.name < b.name ? -1 : 1;\n });\n args.shader.program.uniforms.sort(function(a, b) {\n return a.name < b.name ? -1 : 1;\n });\n }\n emitDrawProc(env, args);\n emitScopeProc(env, args);\n emitBatchProc(env, args);\n return extend2(env.compile(), {\n destroy: function() {\n args.shader.program.destroy();\n }\n });\n }\n return {\n next: nextState,\n current: currentState,\n procs: function() {\n var env = createREGLEnvironment();\n var poll = env.proc(\"poll\");\n var refresh = env.proc(\"refresh\");\n var common = env.block();\n poll(common);\n refresh(common);\n var shared = env.shared;\n var GL = shared.gl;\n var NEXT_STATE = shared.next;\n var CURRENT_STATE = shared.current;\n common(CURRENT_STATE, \".dirty=false;\");\n emitPollFramebuffer(env, poll);\n emitPollFramebuffer(env, refresh, null, true);\n var INSTANCING;\n if (extInstancing) {\n INSTANCING = env.link(extInstancing);\n }\n if (extensions.oes_vertex_array_object) {\n refresh(env.link(extensions.oes_vertex_array_object), \".bindVertexArrayOES(null);\");\n }\n var BINDING = refresh.def(shared.attributes);\n var TEMP_BINDING = refresh.def(0);\n var ifte = env.cond(TEMP_BINDING, \".buffer\");\n ifte.then(\n GL,\n \".enableVertexAttribArray(i);\",\n GL,\n \".bindBuffer(\",\n GL_ARRAY_BUFFER$2,\n \",\",\n TEMP_BINDING,\n \".buffer.buffer);\",\n GL,\n \".vertexAttribPointer(i,\",\n TEMP_BINDING,\n \".size,\",\n TEMP_BINDING,\n \".type,\",\n TEMP_BINDING,\n \".normalized,\",\n TEMP_BINDING,\n \".stride,\",\n TEMP_BINDING,\n \".offset);\"\n ).else(\n GL,\n \".disableVertexAttribArray(i);\",\n GL,\n \".vertexAttrib4f(i,\",\n TEMP_BINDING,\n \".x,\",\n TEMP_BINDING,\n \".y,\",\n TEMP_BINDING,\n \".z,\",\n TEMP_BINDING,\n \".w);\",\n TEMP_BINDING,\n \".buffer=null;\"\n );\n var MAX_ATTRIBUTES = env.link(limits.maxAttributes, { stable: true });\n refresh(\n \"for(var i=0;i<\",\n MAX_ATTRIBUTES,\n \";++i){\",\n TEMP_BINDING,\n \"=\",\n BINDING,\n \"[i];\",\n ifte,\n \"}\"\n );\n if (extInstancing) {\n refresh(\n \"for(var i=0;i<\",\n MAX_ATTRIBUTES,\n \";++i){\",\n INSTANCING,\n \".vertexAttribDivisorANGLE(i,\",\n BINDING,\n \"[i].divisor);\",\n \"}\"\n );\n }\n refresh(\n env.shared.vao,\n \".currentVAO=null;\",\n env.shared.vao,\n \".setVAO(\",\n env.shared.vao,\n \".targetVAO);\"\n );\n Object.keys(GL_FLAGS).forEach(function(flag) {\n var cap = GL_FLAGS[flag];\n var NEXT = common.def(NEXT_STATE, \".\", flag);\n var block = env.block();\n block(\n \"if(\",\n NEXT,\n \"){\",\n GL,\n \".enable(\",\n cap,\n \")}else{\",\n GL,\n \".disable(\",\n cap,\n \")}\",\n CURRENT_STATE,\n \".\",\n flag,\n \"=\",\n NEXT,\n \";\"\n );\n refresh(block);\n poll(\n \"if(\",\n NEXT,\n \"!==\",\n CURRENT_STATE,\n \".\",\n flag,\n \"){\",\n block,\n \"}\"\n );\n });\n Object.keys(GL_VARIABLES).forEach(function(name2) {\n var func = GL_VARIABLES[name2];\n var init = currentState[name2];\n var NEXT, CURRENT;\n var block = env.block();\n block(GL, \".\", func, \"(\");\n if (isArrayLike(init)) {\n var n = init.length;\n NEXT = env.global.def(NEXT_STATE, \".\", name2);\n CURRENT = env.global.def(CURRENT_STATE, \".\", name2);\n block(\n loop(n, function(i) {\n return NEXT + \"[\" + i + \"]\";\n }),\n \");\",\n loop(n, function(i) {\n return CURRENT + \"[\" + i + \"]=\" + NEXT + \"[\" + i + \"];\";\n }).join(\"\")\n );\n poll(\n \"if(\",\n loop(n, function(i) {\n return NEXT + \"[\" + i + \"]!==\" + CURRENT + \"[\" + i + \"]\";\n }).join(\"||\"),\n \"){\",\n block,\n \"}\"\n );\n } else {\n NEXT = common.def(NEXT_STATE, \".\", name2);\n CURRENT = common.def(CURRENT_STATE, \".\", name2);\n block(\n NEXT,\n \");\",\n CURRENT_STATE,\n \".\",\n name2,\n \"=\",\n NEXT,\n \";\"\n );\n poll(\n \"if(\",\n NEXT,\n \"!==\",\n CURRENT,\n \"){\",\n block,\n \"}\"\n );\n }\n refresh(block);\n });\n return env.compile();\n }(),\n compile: compileCommand\n };\n }\n function stats() {\n return {\n vaoCount: 0,\n bufferCount: 0,\n elementsCount: 0,\n framebufferCount: 0,\n shaderCount: 0,\n textureCount: 0,\n cubeCount: 0,\n renderbufferCount: 0,\n maxTextureUnits: 0\n };\n }\n var GL_QUERY_RESULT_EXT = 34918;\n var GL_QUERY_RESULT_AVAILABLE_EXT = 34919;\n var GL_TIME_ELAPSED_EXT = 35007;\n var createTimer = function(gl2, extensions) {\n if (!extensions.ext_disjoint_timer_query) {\n return null;\n }\n var queryPool = [];\n function allocQuery() {\n return queryPool.pop() || extensions.ext_disjoint_timer_query.createQueryEXT();\n }\n function freeQuery(query) {\n queryPool.push(query);\n }\n var pendingQueries = [];\n function beginQuery(stats2) {\n var query = allocQuery();\n extensions.ext_disjoint_timer_query.beginQueryEXT(GL_TIME_ELAPSED_EXT, query);\n pendingQueries.push(query);\n pushScopeStats(pendingQueries.length - 1, pendingQueries.length, stats2);\n }\n function endQuery() {\n extensions.ext_disjoint_timer_query.endQueryEXT(GL_TIME_ELAPSED_EXT);\n }\n function PendingStats() {\n this.startQueryIndex = -1;\n this.endQueryIndex = -1;\n this.sum = 0;\n this.stats = null;\n }\n var pendingStatsPool = [];\n function allocPendingStats() {\n return pendingStatsPool.pop() || new PendingStats();\n }\n function freePendingStats(pendingStats2) {\n pendingStatsPool.push(pendingStats2);\n }\n var pendingStats = [];\n function pushScopeStats(start, end, stats2) {\n var ps = allocPendingStats();\n ps.startQueryIndex = start;\n ps.endQueryIndex = end;\n ps.sum = 0;\n ps.stats = stats2;\n pendingStats.push(ps);\n }\n var timeSum = [];\n var queryPtr = [];\n function update() {\n var ptr, i;\n var n = pendingQueries.length;\n if (n === 0) {\n return;\n }\n queryPtr.length = Math.max(queryPtr.length, n + 1);\n timeSum.length = Math.max(timeSum.length, n + 1);\n timeSum[0] = 0;\n queryPtr[0] = 0;\n var queryTime = 0;\n ptr = 0;\n for (i = 0; i < pendingQueries.length; ++i) {\n var query = pendingQueries[i];\n if (extensions.ext_disjoint_timer_query.getQueryObjectEXT(query, GL_QUERY_RESULT_AVAILABLE_EXT)) {\n queryTime += extensions.ext_disjoint_timer_query.getQueryObjectEXT(query, GL_QUERY_RESULT_EXT);\n freeQuery(query);\n } else {\n pendingQueries[ptr++] = query;\n }\n timeSum[i + 1] = queryTime;\n queryPtr[i + 1] = ptr;\n }\n pendingQueries.length = ptr;\n ptr = 0;\n for (i = 0; i < pendingStats.length; ++i) {\n var stats2 = pendingStats[i];\n var start = stats2.startQueryIndex;\n var end = stats2.endQueryIndex;\n stats2.sum += timeSum[end] - timeSum[start];\n var startPtr = queryPtr[start];\n var endPtr = queryPtr[end];\n if (endPtr === startPtr) {\n stats2.stats.gpuTime += stats2.sum / 1e6;\n freePendingStats(stats2);\n } else {\n stats2.startQueryIndex = startPtr;\n stats2.endQueryIndex = endPtr;\n pendingStats[ptr++] = stats2;\n }\n }\n pendingStats.length = ptr;\n }\n return {\n beginQuery,\n endQuery,\n pushScopeStats,\n update,\n getNumPendingQueries: function() {\n return pendingQueries.length;\n },\n clear: function() {\n queryPool.push.apply(queryPool, pendingQueries);\n for (var i = 0; i < queryPool.length; i++) {\n extensions.ext_disjoint_timer_query.deleteQueryEXT(queryPool[i]);\n }\n pendingQueries.length = 0;\n queryPool.length = 0;\n },\n restore: function() {\n pendingQueries.length = 0;\n queryPool.length = 0;\n }\n };\n };\n var GL_COLOR_BUFFER_BIT = 16384;\n var GL_DEPTH_BUFFER_BIT = 256;\n var GL_STENCIL_BUFFER_BIT = 1024;\n var GL_ARRAY_BUFFER = 34962;\n var CONTEXT_LOST_EVENT = \"webglcontextlost\";\n var CONTEXT_RESTORED_EVENT = \"webglcontextrestored\";\n var DYN_PROP = 1;\n var DYN_CONTEXT = 2;\n var DYN_STATE = 3;\n function find(haystack, needle) {\n for (var i = 0; i < haystack.length; ++i) {\n if (haystack[i] === needle) {\n return i;\n }\n }\n return -1;\n }\n function wrapREGL(args) {\n var config = parseArgs(args);\n if (!config) {\n return null;\n }\n var gl2 = config.gl;\n var glAttributes = gl2.getContextAttributes();\n var contextLost = gl2.isContextLost();\n var extensionState = createExtensionCache(gl2, config);\n if (!extensionState) {\n return null;\n }\n var stringStore = createStringStore();\n var stats$$1 = stats();\n var cachedCode = config.cachedCode || {};\n var extensions = extensionState.extensions;\n var timer = createTimer(gl2, extensions);\n var START_TIME = clock();\n var WIDTH = gl2.drawingBufferWidth;\n var HEIGHT = gl2.drawingBufferHeight;\n var contextState = {\n tick: 0,\n time: 0,\n viewportWidth: WIDTH,\n viewportHeight: HEIGHT,\n framebufferWidth: WIDTH,\n framebufferHeight: HEIGHT,\n drawingBufferWidth: WIDTH,\n drawingBufferHeight: HEIGHT,\n pixelRatio: config.pixelRatio\n };\n var uniformState = {};\n var drawState = {\n elements: null,\n primitive: 4,\n // GL_TRIANGLES\n count: -1,\n offset: 0,\n instances: -1\n };\n var limits = wrapLimits(gl2, extensions);\n var bufferState = wrapBufferState(\n gl2,\n stats$$1,\n config,\n destroyBuffer\n );\n var elementState = wrapElementsState(gl2, extensions, bufferState, stats$$1);\n var attributeState = wrapAttributeState(\n gl2,\n extensions,\n limits,\n stats$$1,\n bufferState,\n elementState,\n drawState\n );\n function destroyBuffer(buffer) {\n return attributeState.destroyBuffer(buffer);\n }\n var shaderState = wrapShaderState(gl2, stringStore, stats$$1, config);\n var textureState = createTextureSet(\n gl2,\n extensions,\n limits,\n function() {\n core.procs.poll();\n },\n contextState,\n stats$$1,\n config\n );\n var renderbufferState = wrapRenderbuffers(gl2, extensions, limits, stats$$1, config);\n var framebufferState = wrapFBOState(\n gl2,\n extensions,\n limits,\n textureState,\n renderbufferState,\n stats$$1\n );\n var core = reglCore(\n gl2,\n stringStore,\n extensions,\n limits,\n bufferState,\n elementState,\n textureState,\n framebufferState,\n uniformState,\n attributeState,\n shaderState,\n drawState,\n contextState,\n timer,\n cachedCode,\n config\n );\n var readPixels = wrapReadPixels(\n gl2,\n framebufferState,\n core.procs.poll,\n contextState,\n glAttributes,\n extensions,\n limits\n );\n var nextState = core.next;\n var canvas = gl2.canvas;\n var rafCallbacks = [];\n var lossCallbacks = [];\n var restoreCallbacks = [];\n var destroyCallbacks = [config.onDestroy];\n var activeRAF = null;\n function handleRAF() {\n if (rafCallbacks.length === 0) {\n if (timer) {\n timer.update();\n }\n activeRAF = null;\n return;\n }\n activeRAF = raf.next(handleRAF);\n poll();\n for (var i = rafCallbacks.length - 1; i >= 0; --i) {\n var cb = rafCallbacks[i];\n if (cb) {\n cb(contextState, null, 0);\n }\n }\n gl2.flush();\n if (timer) {\n timer.update();\n }\n }\n function startRAF() {\n if (!activeRAF && rafCallbacks.length > 0) {\n activeRAF = raf.next(handleRAF);\n }\n }\n function stopRAF() {\n if (activeRAF) {\n raf.cancel(handleRAF);\n activeRAF = null;\n }\n }\n function handleContextLoss(event) {\n event.preventDefault();\n contextLost = true;\n stopRAF();\n lossCallbacks.forEach(function(cb) {\n cb();\n });\n }\n function handleContextRestored(event) {\n gl2.getError();\n contextLost = false;\n extensionState.restore();\n shaderState.restore();\n bufferState.restore();\n textureState.restore();\n renderbufferState.restore();\n framebufferState.restore();\n attributeState.restore();\n if (timer) {\n timer.restore();\n }\n core.procs.refresh();\n startRAF();\n restoreCallbacks.forEach(function(cb) {\n cb();\n });\n }\n if (canvas) {\n canvas.addEventListener(CONTEXT_LOST_EVENT, handleContextLoss, false);\n canvas.addEventListener(CONTEXT_RESTORED_EVENT, handleContextRestored, false);\n }\n function destroy() {\n rafCallbacks.length = 0;\n stopRAF();\n if (canvas) {\n canvas.removeEventListener(CONTEXT_LOST_EVENT, handleContextLoss);\n canvas.removeEventListener(CONTEXT_RESTORED_EVENT, handleContextRestored);\n }\n shaderState.clear();\n framebufferState.clear();\n renderbufferState.clear();\n attributeState.clear();\n textureState.clear();\n elementState.clear();\n bufferState.clear();\n if (timer) {\n timer.clear();\n }\n destroyCallbacks.forEach(function(cb) {\n cb();\n });\n }\n function compileProcedure(options) {\n function flattenNestedOptions(options2) {\n var result = extend2({}, options2);\n delete result.uniforms;\n delete result.attributes;\n delete result.context;\n delete result.vao;\n if (\"stencil\" in result && result.stencil.op) {\n result.stencil.opBack = result.stencil.opFront = result.stencil.op;\n delete result.stencil.op;\n }\n function merge(name2) {\n if (name2 in result) {\n var child = result[name2];\n delete result[name2];\n Object.keys(child).forEach(function(prop) {\n result[name2 + \".\" + prop] = child[prop];\n });\n }\n }\n merge(\"blend\");\n merge(\"depth\");\n merge(\"cull\");\n merge(\"stencil\");\n merge(\"polygonOffset\");\n merge(\"scissor\");\n merge(\"sample\");\n if (\"vao\" in options2) {\n result.vao = options2.vao;\n }\n return result;\n }\n function separateDynamic(object, useArrays) {\n var staticItems = {};\n var dynamicItems = {};\n Object.keys(object).forEach(function(option) {\n var value = object[option];\n if (dynamic.isDynamic(value)) {\n dynamicItems[option] = dynamic.unbox(value, option);\n return;\n } else if (useArrays && Array.isArray(value)) {\n for (var i = 0; i < value.length; ++i) {\n if (dynamic.isDynamic(value[i])) {\n dynamicItems[option] = dynamic.unbox(value, option);\n return;\n }\n }\n }\n staticItems[option] = value;\n });\n return {\n dynamic: dynamicItems,\n static: staticItems\n };\n }\n var context = separateDynamic(options.context || {}, true);\n var uniforms = separateDynamic(options.uniforms || {}, true);\n var attributes = separateDynamic(options.attributes || {}, false);\n var opts = separateDynamic(flattenNestedOptions(options), false);\n var stats$$12 = {\n gpuTime: 0,\n cpuTime: 0,\n count: 0\n };\n var compiled = core.compile(opts, attributes, uniforms, context, stats$$12);\n var draw = compiled.draw;\n var batch = compiled.batch;\n var scope = compiled.scope;\n var EMPTY_ARRAY = [];\n function reserve(count) {\n while (EMPTY_ARRAY.length < count) {\n EMPTY_ARRAY.push(null);\n }\n return EMPTY_ARRAY;\n }\n function REGLCommand(args2, body) {\n var i;\n if (contextLost) {\n }\n if (typeof args2 === \"function\") {\n return scope.call(this, null, args2, 0);\n } else if (typeof body === \"function\") {\n if (typeof args2 === \"number\") {\n for (i = 0; i < args2; ++i) {\n scope.call(this, null, body, i);\n }\n } else if (Array.isArray(args2)) {\n for (i = 0; i < args2.length; ++i) {\n scope.call(this, args2[i], body, i);\n }\n } else {\n return scope.call(this, args2, body, 0);\n }\n } else if (typeof args2 === \"number\") {\n if (args2 > 0) {\n return batch.call(this, reserve(args2 | 0), args2 | 0);\n }\n } else if (Array.isArray(args2)) {\n if (args2.length) {\n return batch.call(this, args2, args2.length);\n }\n } else {\n return draw.call(this, args2);\n }\n }\n return extend2(REGLCommand, {\n stats: stats$$12,\n destroy: function() {\n compiled.destroy();\n }\n });\n }\n var setFBO = framebufferState.setFBO = compileProcedure({\n framebuffer: dynamic.define.call(null, DYN_PROP, \"framebuffer\")\n });\n function clearImpl(_, options) {\n var clearFlags = 0;\n core.procs.poll();\n var c = options.color;\n if (c) {\n gl2.clearColor(+c[0] || 0, +c[1] || 0, +c[2] || 0, +c[3] || 0);\n clearFlags |= GL_COLOR_BUFFER_BIT;\n }\n if (\"depth\" in options) {\n gl2.clearDepth(+options.depth);\n clearFlags |= GL_DEPTH_BUFFER_BIT;\n }\n if (\"stencil\" in options) {\n gl2.clearStencil(options.stencil | 0);\n clearFlags |= GL_STENCIL_BUFFER_BIT;\n }\n gl2.clear(clearFlags);\n }\n function clear(options) {\n if (\"framebuffer\" in options) {\n if (options.framebuffer && options.framebuffer_reglType === \"framebufferCube\") {\n for (var i = 0; i < 6; ++i) {\n setFBO(extend2({\n framebuffer: options.framebuffer.faces[i]\n }, options), clearImpl);\n }\n } else {\n setFBO(options, clearImpl);\n }\n } else {\n clearImpl(null, options);\n }\n }\n function frame(cb) {\n rafCallbacks.push(cb);\n function cancel() {\n var i = find(rafCallbacks, cb);\n function pendingCancel() {\n var index = find(rafCallbacks, pendingCancel);\n rafCallbacks[index] = rafCallbacks[rafCallbacks.length - 1];\n rafCallbacks.length -= 1;\n if (rafCallbacks.length <= 0) {\n stopRAF();\n }\n }\n rafCallbacks[i] = pendingCancel;\n }\n startRAF();\n return {\n cancel\n };\n }\n function pollViewport() {\n var viewport = nextState.viewport;\n var scissorBox = nextState.scissor_box;\n viewport[0] = viewport[1] = scissorBox[0] = scissorBox[1] = 0;\n contextState.viewportWidth = contextState.framebufferWidth = contextState.drawingBufferWidth = viewport[2] = scissorBox[2] = gl2.drawingBufferWidth;\n contextState.viewportHeight = contextState.framebufferHeight = contextState.drawingBufferHeight = viewport[3] = scissorBox[3] = gl2.drawingBufferHeight;\n }\n function poll() {\n contextState.tick += 1;\n contextState.time = now();\n pollViewport();\n core.procs.poll();\n }\n function refresh() {\n textureState.refresh();\n pollViewport();\n core.procs.refresh();\n if (timer) {\n timer.update();\n }\n }\n function now() {\n return (clock() - START_TIME) / 1e3;\n }\n refresh();\n function addListener(event, callback) {\n var callbacks;\n switch (event) {\n case \"frame\":\n return frame(callback);\n case \"lost\":\n callbacks = lossCallbacks;\n break;\n case \"restore\":\n callbacks = restoreCallbacks;\n break;\n case \"destroy\":\n callbacks = destroyCallbacks;\n break;\n default:\n }\n callbacks.push(callback);\n return {\n cancel: function() {\n for (var i = 0; i < callbacks.length; ++i) {\n if (callbacks[i] === callback) {\n callbacks[i] = callbacks[callbacks.length - 1];\n callbacks.pop();\n return;\n }\n }\n }\n };\n }\n function getCachedCode() {\n return cachedCode;\n }\n function preloadCachedCode(moreCache) {\n Object.entries(moreCache).forEach(function(kv) {\n cachedCode[kv[0]] = kv[1];\n });\n }\n var regl = extend2(compileProcedure, {\n // Clear current FBO\n clear,\n // Short cuts for dynamic variables\n prop: dynamic.define.bind(null, DYN_PROP),\n context: dynamic.define.bind(null, DYN_CONTEXT),\n this: dynamic.define.bind(null, DYN_STATE),\n // executes an empty draw command\n draw: compileProcedure({}),\n // Resources\n buffer: function(options) {\n return bufferState.create(options, GL_ARRAY_BUFFER, false, false);\n },\n elements: function(options) {\n return elementState.create(options, false);\n },\n texture: textureState.create2D,\n cube: textureState.createCube,\n renderbuffer: renderbufferState.create,\n framebuffer: framebufferState.create,\n framebufferCube: framebufferState.createCube,\n vao: attributeState.createVAO,\n // Expose context attributes\n attributes: glAttributes,\n // Frame rendering\n frame,\n on: addListener,\n // System limits\n limits,\n hasExtension: function(name2) {\n return limits.extensions.indexOf(name2.toLowerCase()) >= 0;\n },\n // Read pixels\n read: readPixels,\n // Destroy regl and all associated resources\n destroy,\n // Direct GL state manipulation\n _gl: gl2,\n _refresh: refresh,\n poll: function() {\n poll();\n if (timer) {\n timer.update();\n }\n },\n // Current time\n now,\n // regl Statistics Information\n stats: stats$$1,\n // cache generated code\n getCachedCode,\n preloadCachedCode\n });\n config.onDone(null, regl);\n return regl;\n }\n return wrapREGL;\n });\n }\n });\n\n // node_modules/gl-util/context.js\n var require_context = __commonJS({\n \"node_modules/gl-util/context.js\"(exports, module) {\n \"use strict\";\n var pick = require_pick_by_alias();\n module.exports = function setContext(o) {\n if (!o) o = {};\n else if (typeof o === \"string\") o = { container: o };\n if (isCanvas(o)) {\n o = { container: o };\n } else if (isElement(o)) {\n o = { container: o };\n } else if (isContext(o)) {\n o = { gl: o };\n } else {\n o = pick(o, {\n container: \"container target element el canvas holder parent parentNode wrapper use ref root node\",\n gl: \"gl context webgl glContext\",\n attrs: \"attributes attrs contextAttributes\",\n pixelRatio: \"pixelRatio pxRatio px ratio pxratio pixelratio\",\n width: \"w width\",\n height: \"h height\"\n }, true);\n }\n if (!o.pixelRatio) o.pixelRatio = window.pixelRatio || 1;\n if (o.gl) {\n return o.gl;\n }\n if (o.canvas) {\n o.container = o.canvas.parentNode;\n }\n if (o.container) {\n if (typeof o.container === \"string\") {\n var c = document.querySelector(o.container);\n if (!c) throw Error(\"Element \" + o.container + \" is not found\");\n o.container = c;\n }\n if (isCanvas(o.container)) {\n o.canvas = o.container;\n o.container = o.canvas.parentNode;\n } else if (!o.canvas) {\n o.canvas = createCanvas();\n o.container.appendChild(o.canvas);\n resize(o);\n }\n } else if (!o.canvas) {\n if (typeof document !== \"undefined\") {\n o.container = document.body || document.documentElement;\n o.canvas = createCanvas();\n o.container.appendChild(o.canvas);\n resize(o);\n } else {\n throw Error(\"Not DOM environment. Use headless-gl.\");\n }\n }\n if (!o.gl) {\n [\"webgl\", \"experimental-webgl\", \"webgl-experimental\"].some(function(c2) {\n try {\n o.gl = o.canvas.getContext(c2, o.attrs);\n } catch (e) {\n }\n return o.gl;\n });\n }\n return o.gl;\n };\n function resize(o) {\n if (o.container) {\n if (o.container == document.body) {\n if (!document.body.style.width) o.canvas.width = o.width || o.pixelRatio * window.innerWidth;\n if (!document.body.style.height) o.canvas.height = o.height || o.pixelRatio * window.innerHeight;\n } else {\n var bounds = o.container.getBoundingClientRect();\n o.canvas.width = o.width || bounds.right - bounds.left;\n o.canvas.height = o.height || bounds.bottom - bounds.top;\n }\n }\n }\n function isCanvas(e) {\n return typeof e.getContext === \"function\" && \"width\" in e && \"height\" in e;\n }\n function isElement(e) {\n return typeof e.nodeName === \"string\" && typeof e.appendChild === \"function\" && typeof e.getBoundingClientRect === \"function\";\n }\n function isContext(e) {\n return typeof e.drawArrays === \"function\" || typeof e.drawElements === \"function\";\n }\n function createCanvas() {\n var canvas = document.createElement(\"canvas\");\n canvas.style.position = \"absolute\";\n canvas.style.top = 0;\n canvas.style.left = 0;\n return canvas;\n }\n }\n });\n\n // node_modules/font-atlas/index.js\n var require_font_atlas = __commonJS({\n \"node_modules/font-atlas/index.js\"(exports, module) {\n \"use strict\";\n var stringifyFont = require_stringify();\n var defaultChars = [32, 126];\n module.exports = atlas;\n function atlas(options) {\n options = options || {};\n var shape = options.shape ? options.shape : options.canvas ? [options.canvas.width, options.canvas.height] : [512, 512];\n var canvas = options.canvas || document.createElement(\"canvas\");\n var font = options.font;\n var step = typeof options.step === \"number\" ? [options.step, options.step] : options.step || [32, 32];\n var chars = options.chars || defaultChars;\n if (font && typeof font !== \"string\") font = stringifyFont(font);\n if (!Array.isArray(chars)) {\n chars = String(chars).split(\"\");\n } else if (chars.length === 2 && typeof chars[0] === \"number\" && typeof chars[1] === \"number\") {\n var newchars = [];\n for (var i = chars[0], j = 0; i <= chars[1]; i++) {\n newchars[j++] = String.fromCharCode(i);\n }\n chars = newchars;\n }\n shape = shape.slice();\n canvas.width = shape[0];\n canvas.height = shape[1];\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#000\";\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.font = font;\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillStyle = \"#fff\";\n var x = step[0] / 2;\n var y = step[1] / 2;\n for (var i = 0; i < chars.length; i++) {\n ctx.fillText(chars[i], x, y);\n if ((x += step[0]) > shape[0] - step[0] / 2) x = step[0] / 2, y += step[1];\n }\n return canvas;\n }\n }\n });\n\n // node_modules/bit-twiddle/twiddle.js\n var require_twiddle = __commonJS({\n \"node_modules/bit-twiddle/twiddle.js\"(exports) {\n \"use strict\";\n \"use restrict\";\n var INT_BITS = 32;\n exports.INT_BITS = INT_BITS;\n exports.INT_MAX = 2147483647;\n exports.INT_MIN = -1 << INT_BITS - 1;\n exports.sign = function(v) {\n return (v > 0) - (v < 0);\n };\n exports.abs = function(v) {\n var mask = v >> INT_BITS - 1;\n return (v ^ mask) - mask;\n };\n exports.min = function(x, y) {\n return y ^ (x ^ y) & -(x < y);\n };\n exports.max = function(x, y) {\n return x ^ (x ^ y) & -(x < y);\n };\n exports.isPow2 = function(v) {\n return !(v & v - 1) && !!v;\n };\n exports.log2 = function(v) {\n var r, shift;\n r = (v > 65535) << 4;\n v >>>= r;\n shift = (v > 255) << 3;\n v >>>= shift;\n r |= shift;\n shift = (v > 15) << 2;\n v >>>= shift;\n r |= shift;\n shift = (v > 3) << 1;\n v >>>= shift;\n r |= shift;\n return r | v >> 1;\n };\n exports.log10 = function(v) {\n return v >= 1e9 ? 9 : v >= 1e8 ? 8 : v >= 1e7 ? 7 : v >= 1e6 ? 6 : v >= 1e5 ? 5 : v >= 1e4 ? 4 : v >= 1e3 ? 3 : v >= 100 ? 2 : v >= 10 ? 1 : 0;\n };\n exports.popCount = function(v) {\n v = v - (v >>> 1 & 1431655765);\n v = (v & 858993459) + (v >>> 2 & 858993459);\n return (v + (v >>> 4) & 252645135) * 16843009 >>> 24;\n };\n function countTrailingZeros(v) {\n var c = 32;\n v &= -v;\n if (v) c--;\n if (v & 65535) c -= 16;\n if (v & 16711935) c -= 8;\n if (v & 252645135) c -= 4;\n if (v & 858993459) c -= 2;\n if (v & 1431655765) c -= 1;\n return c;\n }\n exports.countTrailingZeros = countTrailingZeros;\n exports.nextPow2 = function(v) {\n v += v === 0;\n --v;\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v + 1;\n };\n exports.prevPow2 = function(v) {\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v - (v >>> 1);\n };\n exports.parity = function(v) {\n v ^= v >>> 16;\n v ^= v >>> 8;\n v ^= v >>> 4;\n v &= 15;\n return 27030 >>> v & 1;\n };\n var REVERSE_TABLE = new Array(256);\n (function(tab) {\n for (var i = 0; i < 256; ++i) {\n var v = i, r = i, s = 7;\n for (v >>>= 1; v; v >>>= 1) {\n r <<= 1;\n r |= v & 1;\n --s;\n }\n tab[i] = r << s & 255;\n }\n })(REVERSE_TABLE);\n exports.reverse = function(v) {\n return REVERSE_TABLE[v & 255] << 24 | REVERSE_TABLE[v >>> 8 & 255] << 16 | REVERSE_TABLE[v >>> 16 & 255] << 8 | REVERSE_TABLE[v >>> 24 & 255];\n };\n exports.interleave2 = function(x, y) {\n x &= 65535;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y &= 65535;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n };\n exports.deinterleave2 = function(v, n) {\n v = v >>> n & 1431655765;\n v = (v | v >>> 1) & 858993459;\n v = (v | v >>> 2) & 252645135;\n v = (v | v >>> 4) & 16711935;\n v = (v | v >>> 16) & 65535;\n return v << 16 >> 16;\n };\n exports.interleave3 = function(x, y, z) {\n x &= 1023;\n x = (x | x << 16) & 4278190335;\n x = (x | x << 8) & 251719695;\n x = (x | x << 4) & 3272356035;\n x = (x | x << 2) & 1227133513;\n y &= 1023;\n y = (y | y << 16) & 4278190335;\n y = (y | y << 8) & 251719695;\n y = (y | y << 4) & 3272356035;\n y = (y | y << 2) & 1227133513;\n x |= y << 1;\n z &= 1023;\n z = (z | z << 16) & 4278190335;\n z = (z | z << 8) & 251719695;\n z = (z | z << 4) & 3272356035;\n z = (z | z << 2) & 1227133513;\n return x | z << 2;\n };\n exports.deinterleave3 = function(v, n) {\n v = v >>> n & 1227133513;\n v = (v | v >>> 2) & 3272356035;\n v = (v | v >>> 4) & 251719695;\n v = (v | v >>> 8) & 4278190335;\n v = (v | v >>> 16) & 1023;\n return v << 22 >> 22;\n };\n exports.nextCombination = function(v) {\n var t = v | v - 1;\n return t + 1 | (~t & -~t) - 1 >>> countTrailingZeros(v) + 1;\n };\n }\n });\n\n // node_modules/dup/dup.js\n var require_dup = __commonJS({\n \"node_modules/dup/dup.js\"(exports, module) {\n \"use strict\";\n function dupe_array(count, value, i) {\n var c = count[i] | 0;\n if (c <= 0) {\n return [];\n }\n var result = new Array(c), j;\n if (i === count.length - 1) {\n for (j = 0; j < c; ++j) {\n result[j] = value;\n }\n } else {\n for (j = 0; j < c; ++j) {\n result[j] = dupe_array(count, value, i + 1);\n }\n }\n return result;\n }\n function dupe_number(count, value) {\n var result, i;\n result = new Array(count);\n for (i = 0; i < count; ++i) {\n result[i] = value;\n }\n return result;\n }\n function dupe(count, value) {\n if (typeof value === \"undefined\") {\n value = 0;\n }\n switch (typeof count) {\n case \"number\":\n if (count > 0) {\n return dupe_number(count | 0, value);\n }\n break;\n case \"object\":\n if (typeof count.length === \"number\") {\n return dupe_array(count, value, 0);\n }\n break;\n }\n return [];\n }\n module.exports = dupe;\n }\n });\n\n // node_modules/typedarray-pool/pool.js\n var require_pool = __commonJS({\n \"node_modules/typedarray-pool/pool.js\"(exports) {\n \"use strict\";\n var bits = require_twiddle();\n var dup = require_dup();\n var Buffer2 = require_buffer().Buffer;\n if (!window.__TYPEDARRAY_POOL) {\n window.__TYPEDARRAY_POOL = {\n UINT8: dup([32, 0]),\n UINT16: dup([32, 0]),\n UINT32: dup([32, 0]),\n BIGUINT64: dup([32, 0]),\n INT8: dup([32, 0]),\n INT16: dup([32, 0]),\n INT32: dup([32, 0]),\n BIGINT64: dup([32, 0]),\n FLOAT: dup([32, 0]),\n DOUBLE: dup([32, 0]),\n DATA: dup([32, 0]),\n UINT8C: dup([32, 0]),\n BUFFER: dup([32, 0])\n };\n }\n var hasUint8C = typeof Uint8ClampedArray !== \"undefined\";\n var hasBigUint64 = typeof BigUint64Array !== \"undefined\";\n var hasBigInt64 = typeof BigInt64Array !== \"undefined\";\n var POOL = window.__TYPEDARRAY_POOL;\n if (!POOL.UINT8C) {\n POOL.UINT8C = dup([32, 0]);\n }\n if (!POOL.BIGUINT64) {\n POOL.BIGUINT64 = dup([32, 0]);\n }\n if (!POOL.BIGINT64) {\n POOL.BIGINT64 = dup([32, 0]);\n }\n if (!POOL.BUFFER) {\n POOL.BUFFER = dup([32, 0]);\n }\n var DATA = POOL.DATA;\n var BUFFER = POOL.BUFFER;\n exports.free = function free(array) {\n if (Buffer2.isBuffer(array)) {\n BUFFER[bits.log2(array.length)].push(array);\n } else {\n if (Object.prototype.toString.call(array) !== \"[object ArrayBuffer]\") {\n array = array.buffer;\n }\n if (!array) {\n return;\n }\n var n = array.length || array.byteLength;\n var log_n = bits.log2(n) | 0;\n DATA[log_n].push(array);\n }\n };\n function freeArrayBuffer(buffer) {\n if (!buffer) {\n return;\n }\n var n = buffer.length || buffer.byteLength;\n var log_n = bits.log2(n);\n DATA[log_n].push(buffer);\n }\n function freeTypedArray(array) {\n freeArrayBuffer(array.buffer);\n }\n exports.freeUint8 = exports.freeUint16 = exports.freeUint32 = exports.freeBigUint64 = exports.freeInt8 = exports.freeInt16 = exports.freeInt32 = exports.freeBigInt64 = exports.freeFloat32 = exports.freeFloat = exports.freeFloat64 = exports.freeDouble = exports.freeUint8Clamped = exports.freeDataView = freeTypedArray;\n exports.freeArrayBuffer = freeArrayBuffer;\n exports.freeBuffer = function freeBuffer(array) {\n BUFFER[bits.log2(array.length)].push(array);\n };\n exports.malloc = function malloc(n, dtype) {\n if (dtype === void 0 || dtype === \"arraybuffer\") {\n return mallocArrayBuffer(n);\n } else {\n switch (dtype) {\n case \"uint8\":\n return mallocUint8(n);\n case \"uint16\":\n return mallocUint16(n);\n case \"uint32\":\n return mallocUint32(n);\n case \"int8\":\n return mallocInt8(n);\n case \"int16\":\n return mallocInt16(n);\n case \"int32\":\n return mallocInt32(n);\n case \"float\":\n case \"float32\":\n return mallocFloat(n);\n case \"double\":\n case \"float64\":\n return mallocDouble(n);\n case \"uint8_clamped\":\n return mallocUint8Clamped(n);\n case \"bigint64\":\n return mallocBigInt64(n);\n case \"biguint64\":\n return mallocBigUint64(n);\n case \"buffer\":\n return mallocBuffer(n);\n case \"data\":\n case \"dataview\":\n return mallocDataView(n);\n default:\n return null;\n }\n }\n return null;\n };\n function mallocArrayBuffer(n) {\n var n = bits.nextPow2(n);\n var log_n = bits.log2(n);\n var d = DATA[log_n];\n if (d.length > 0) {\n return d.pop();\n }\n return new ArrayBuffer(n);\n }\n exports.mallocArrayBuffer = mallocArrayBuffer;\n function mallocUint8(n) {\n return new Uint8Array(mallocArrayBuffer(n), 0, n);\n }\n exports.mallocUint8 = mallocUint8;\n function mallocUint16(n) {\n return new Uint16Array(mallocArrayBuffer(2 * n), 0, n);\n }\n exports.mallocUint16 = mallocUint16;\n function mallocUint32(n) {\n return new Uint32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports.mallocUint32 = mallocUint32;\n function mallocInt8(n) {\n return new Int8Array(mallocArrayBuffer(n), 0, n);\n }\n exports.mallocInt8 = mallocInt8;\n function mallocInt16(n) {\n return new Int16Array(mallocArrayBuffer(2 * n), 0, n);\n }\n exports.mallocInt16 = mallocInt16;\n function mallocInt32(n) {\n return new Int32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports.mallocInt32 = mallocInt32;\n function mallocFloat(n) {\n return new Float32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports.mallocFloat32 = exports.mallocFloat = mallocFloat;\n function mallocDouble(n) {\n return new Float64Array(mallocArrayBuffer(8 * n), 0, n);\n }\n exports.mallocFloat64 = exports.mallocDouble = mallocDouble;\n function mallocUint8Clamped(n) {\n if (hasUint8C) {\n return new Uint8ClampedArray(mallocArrayBuffer(n), 0, n);\n } else {\n return mallocUint8(n);\n }\n }\n exports.mallocUint8Clamped = mallocUint8Clamped;\n function mallocBigUint64(n) {\n if (hasBigUint64) {\n return new BigUint64Array(mallocArrayBuffer(8 * n), 0, n);\n } else {\n return null;\n }\n }\n exports.mallocBigUint64 = mallocBigUint64;\n function mallocBigInt64(n) {\n if (hasBigInt64) {\n return new BigInt64Array(mallocArrayBuffer(8 * n), 0, n);\n } else {\n return null;\n }\n }\n exports.mallocBigInt64 = mallocBigInt64;\n function mallocDataView(n) {\n return new DataView(mallocArrayBuffer(n), 0, n);\n }\n exports.mallocDataView = mallocDataView;\n function mallocBuffer(n) {\n n = bits.nextPow2(n);\n var log_n = bits.log2(n);\n var cache = BUFFER[log_n];\n if (cache.length > 0) {\n return cache.pop();\n }\n return new Buffer2(n);\n }\n exports.mallocBuffer = mallocBuffer;\n exports.clearCache = function clearCache() {\n for (var i = 0; i < 32; ++i) {\n POOL.UINT8[i].length = 0;\n POOL.UINT16[i].length = 0;\n POOL.UINT32[i].length = 0;\n POOL.INT8[i].length = 0;\n POOL.INT16[i].length = 0;\n POOL.INT32[i].length = 0;\n POOL.FLOAT[i].length = 0;\n POOL.DOUBLE[i].length = 0;\n POOL.BIGUINT64[i].length = 0;\n POOL.BIGINT64[i].length = 0;\n POOL.UINT8C[i].length = 0;\n DATA[i].length = 0;\n BUFFER[i].length = 0;\n }\n };\n }\n });\n\n // node_modules/is-plain-obj/index.js\n var require_is_plain_obj = __commonJS({\n \"node_modules/is-plain-obj/index.js\"(exports, module) {\n \"use strict\";\n var toString = Object.prototype.toString;\n module.exports = function(x) {\n var prototype;\n return toString.call(x) === \"[object Object]\" && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n };\n }\n });\n\n // node_modules/parse-unit/index.js\n var require_parse_unit = __commonJS({\n \"node_modules/parse-unit/index.js\"(exports, module) {\n module.exports = function parseUnit(str, out) {\n if (!out)\n out = [0, \"\"];\n str = String(str);\n var num = parseFloat(str, 10);\n out[0] = num;\n out[1] = str.match(/[\\d.\\-\\+]*\\s*(.*)/)[1] || \"\";\n return out;\n };\n }\n });\n\n // node_modules/to-px/topx.js\n var require_topx = __commonJS({\n \"node_modules/to-px/topx.js\"(exports, module) {\n \"use strict\";\n var parseUnit = require_parse_unit();\n module.exports = toPX;\n var PIXELS_PER_INCH = 96;\n function getPropertyInPX(element, prop) {\n var parts = parseUnit(getComputedStyle(element).getPropertyValue(prop));\n return parts[0] * toPX(parts[1], element);\n }\n function getSizeBrutal(unit, element) {\n var testDIV = document.createElement(\"div\");\n testDIV.style[\"font-size\"] = \"128\" + unit;\n element.appendChild(testDIV);\n var size = getPropertyInPX(testDIV, \"font-size\") / 128;\n element.removeChild(testDIV);\n return size;\n }\n function toPX(str, element) {\n element = element || document.body;\n str = (str || \"px\").trim().toLowerCase();\n if (element === window || element === document) {\n element = document.body;\n }\n switch (str) {\n case \"%\":\n return element.clientHeight / 100;\n case \"ch\":\n case \"ex\":\n return getSizeBrutal(str, element);\n case \"em\":\n return getPropertyInPX(element, \"font-size\");\n case \"rem\":\n return getPropertyInPX(document.body, \"font-size\");\n case \"vw\":\n return window.innerWidth / 100;\n case \"vh\":\n return window.innerHeight / 100;\n case \"vmin\":\n return Math.min(window.innerWidth, window.innerHeight) / 100;\n case \"vmax\":\n return Math.max(window.innerWidth, window.innerHeight) / 100;\n case \"in\":\n return PIXELS_PER_INCH;\n case \"cm\":\n return PIXELS_PER_INCH / 2.54;\n case \"mm\":\n return PIXELS_PER_INCH / 25.4;\n case \"pt\":\n return PIXELS_PER_INCH / 72;\n case \"pc\":\n return PIXELS_PER_INCH / 6;\n }\n return 1;\n }\n }\n });\n\n // node_modules/detect-kerning/index.js\n var require_detect_kerning = __commonJS({\n \"node_modules/detect-kerning/index.js\"(exports, module) {\n \"use strict\";\n module.exports = kerning;\n var canvas = kerning.canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n var asciiPairs = createPairs([32, 126]);\n kerning.createPairs = createPairs;\n kerning.ascii = asciiPairs;\n function kerning(family, o) {\n if (Array.isArray(family)) family = family.join(\", \");\n var table = {}, pairs, fs = 16, threshold = 0.05;\n if (o) {\n if (o.length === 2 && typeof o[0] === \"number\") {\n pairs = createPairs(o);\n } else if (Array.isArray(o)) {\n pairs = o;\n } else {\n if (o.o) pairs = createPairs(o.o);\n else if (o.pairs) pairs = o.pairs;\n if (o.fontSize) fs = o.fontSize;\n if (o.threshold != null) threshold = o.threshold;\n }\n }\n if (!pairs) pairs = asciiPairs;\n ctx.font = fs + \"px \" + family;\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var width = ctx.measureText(pair[0]).width + ctx.measureText(pair[1]).width;\n var kerningWidth = ctx.measureText(pair).width;\n if (Math.abs(width - kerningWidth) > fs * threshold) {\n var emWidth = (kerningWidth - width) / fs;\n table[pair] = emWidth * 1e3;\n }\n }\n return table;\n }\n function createPairs(range) {\n var pairs = [];\n for (var i = range[0]; i <= range[1]; i++) {\n var leftChar = String.fromCharCode(i);\n for (var j = range[0]; j < range[1]; j++) {\n var rightChar = String.fromCharCode(j);\n var pair = leftChar + rightChar;\n pairs.push(pair);\n }\n }\n return pairs;\n }\n }\n });\n\n // node_modules/font-measure/index.js\n var require_font_measure = __commonJS({\n \"node_modules/font-measure/index.js\"(exports, module) {\n \"use strict\";\n module.exports = measure;\n measure.canvas = document.createElement(\"canvas\");\n measure.cache = {};\n function measure(font, o) {\n if (!o) o = {};\n if (typeof font === \"string\" || Array.isArray(font)) {\n o.family = font;\n }\n var family = Array.isArray(o.family) ? o.family.join(\", \") : o.family;\n if (!family) throw Error(\"`family` must be defined\");\n var fs = o.size || o.fontSize || o.em || 48;\n var weight = o.weight || o.fontWeight || \"\";\n var style = o.style || o.fontStyle || \"\";\n var font = [style, weight, fs].join(\" \") + \"px \" + family;\n var origin = o.origin || \"top\";\n if (measure.cache[family]) {\n if (fs <= measure.cache[family].em) {\n return applyOrigin(measure.cache[family], origin);\n }\n }\n var canvas = o.canvas || measure.canvas;\n var ctx = canvas.getContext(\"2d\");\n var chars = {\n upper: o.upper !== void 0 ? o.upper : \"H\",\n lower: o.lower !== void 0 ? o.lower : \"x\",\n descent: o.descent !== void 0 ? o.descent : \"p\",\n ascent: o.ascent !== void 0 ? o.ascent : \"h\",\n tittle: o.tittle !== void 0 ? o.tittle : \"i\",\n overshoot: o.overshoot !== void 0 ? o.overshoot : \"O\"\n };\n var l = Math.ceil(fs * 1.5);\n canvas.height = l;\n canvas.width = l * 0.5;\n ctx.font = font;\n var char = \"H\";\n var result = {\n top: 0\n };\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillStyle = \"black\";\n ctx.fillText(char, 0, 0);\n var topPx = firstTop(ctx.getImageData(0, 0, l, l));\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"bottom\";\n ctx.fillText(char, 0, l);\n var bottomPx = firstTop(ctx.getImageData(0, 0, l, l));\n result.lineHeight = result.bottom = l - bottomPx + topPx;\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"alphabetic\";\n ctx.fillText(char, 0, l);\n var baselinePx = firstTop(ctx.getImageData(0, 0, l, l));\n var baseline = l - baselinePx - 1 + topPx;\n result.baseline = result.alphabetic = baseline;\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"middle\";\n ctx.fillText(char, 0, l * 0.5);\n var medianPx = firstTop(ctx.getImageData(0, 0, l, l));\n result.median = result.middle = l - medianPx - 1 + topPx - l * 0.5;\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"hanging\";\n ctx.fillText(char, 0, l * 0.5);\n var hangingPx = firstTop(ctx.getImageData(0, 0, l, l));\n result.hanging = l - hangingPx - 1 + topPx - l * 0.5;\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"ideographic\";\n ctx.fillText(char, 0, l);\n var ideographicPx = firstTop(ctx.getImageData(0, 0, l, l));\n result.ideographic = l - ideographicPx - 1 + topPx;\n if (chars.upper) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.upper, 0, 0);\n result.upper = firstTop(ctx.getImageData(0, 0, l, l));\n result.capHeight = result.baseline - result.upper;\n }\n if (chars.lower) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.lower, 0, 0);\n result.lower = firstTop(ctx.getImageData(0, 0, l, l));\n result.xHeight = result.baseline - result.lower;\n }\n if (chars.tittle) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.tittle, 0, 0);\n result.tittle = firstTop(ctx.getImageData(0, 0, l, l));\n }\n if (chars.ascent) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.ascent, 0, 0);\n result.ascent = firstTop(ctx.getImageData(0, 0, l, l));\n }\n if (chars.descent) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.descent, 0, 0);\n result.descent = firstBottom(ctx.getImageData(0, 0, l, l));\n }\n if (chars.overshoot) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.overshoot, 0, 0);\n var overshootPx = firstBottom(ctx.getImageData(0, 0, l, l));\n result.overshoot = overshootPx - baseline;\n }\n for (var name2 in result) {\n result[name2] /= fs;\n }\n result.em = fs;\n measure.cache[family] = result;\n return applyOrigin(result, origin);\n }\n function applyOrigin(obj, origin) {\n var res = {};\n if (typeof origin === \"string\") origin = obj[origin];\n for (var name2 in obj) {\n if (name2 === \"em\") continue;\n res[name2] = obj[name2] - origin;\n }\n return res;\n }\n function firstTop(iData) {\n var l = iData.height;\n var data = iData.data;\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] !== 0) {\n return Math.floor((i - 3) * 0.25 / l);\n }\n }\n }\n function firstBottom(iData) {\n var l = iData.height;\n var data = iData.data;\n for (var i = data.length - 1; i > 0; i -= 4) {\n if (data[i] !== 0) {\n return Math.floor((i - 3) * 0.25 / l);\n }\n }\n }\n }\n });\n\n // node_modules/gl-text/dist.js\n var require_dist = __commonJS({\n \"node_modules/gl-text/dist.js\"(exports, module) {\n \"use strict\";\n var Font = require_css_font();\n var pick = require_pick_by_alias();\n var createRegl = require_regl_unchecked();\n var createGl = require_context();\n var WeakMap2 = require_es6_weak_map();\n var rgba3 = require_color_normalize();\n var fontAtlas = require_font_atlas();\n var pool = require_pool();\n var parseRect = require_parse_rect();\n var isObj = require_is_plain_obj();\n var parseUnit = require_parse_unit();\n var px = require_topx();\n var kerning = require_detect_kerning();\n var extend2 = require_object_assign();\n var metrics = require_font_measure();\n var flatten = require_flatten_vertex_data();\n var ref = require_twiddle();\n var nextPow2 = ref.nextPow2;\n var shaderCache = new WeakMap2();\n var isStretchSupported = false;\n if (document.body) {\n el = document.body.appendChild(document.createElement(\"div\"));\n el.style.font = \"italic small-caps bold condensed 16px/2 cursive\";\n if (getComputedStyle(el).fontStretch) {\n isStretchSupported = true;\n }\n document.body.removeChild(el);\n }\n var el;\n var GlText = function GlText2(o) {\n if (isRegl(o)) {\n o = { regl: o };\n this.gl = o.regl._gl;\n } else {\n this.gl = createGl(o);\n }\n this.shader = shaderCache.get(this.gl);\n if (!this.shader) {\n this.regl = o.regl || createRegl({ gl: this.gl });\n } else {\n this.regl = this.shader.regl;\n }\n this.charBuffer = this.regl.buffer({ type: \"uint8\", usage: \"stream\" });\n this.sizeBuffer = this.regl.buffer({ type: \"float\", usage: \"stream\" });\n if (!this.shader) {\n this.shader = this.createShader();\n shaderCache.set(this.gl, this.shader);\n }\n this.batch = [];\n this.fontSize = [];\n this.font = [];\n this.fontAtlas = [];\n this.draw = this.shader.draw.bind(this);\n this.render = function() {\n this.regl._refresh();\n this.draw(this.batch);\n };\n this.canvas = this.gl.canvas;\n this.update(isObj(o) ? o : {});\n };\n GlText.prototype.createShader = function createShader() {\n var regl = this.regl;\n var draw = regl({\n blend: {\n enable: true,\n color: [0, 0, 0, 1],\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\"\n }\n },\n stencil: { enable: false },\n depth: { enable: false },\n count: regl.prop(\"count\"),\n offset: regl.prop(\"offset\"),\n attributes: {\n charOffset: {\n offset: 4,\n stride: 8,\n buffer: regl.this(\"sizeBuffer\")\n },\n width: {\n offset: 0,\n stride: 8,\n buffer: regl.this(\"sizeBuffer\")\n },\n char: regl.this(\"charBuffer\"),\n position: regl.this(\"position\")\n },\n uniforms: {\n atlasSize: function(c, p) {\n return [p.atlas.width, p.atlas.height];\n },\n atlasDim: function(c, p) {\n return [p.atlas.cols, p.atlas.rows];\n },\n atlas: function(c, p) {\n return p.atlas.texture;\n },\n charStep: function(c, p) {\n return p.atlas.step;\n },\n em: function(c, p) {\n return p.atlas.em;\n },\n color: regl.prop(\"color\"),\n opacity: regl.prop(\"opacity\"),\n viewport: regl.this(\"viewportArray\"),\n scale: regl.this(\"scale\"),\n align: regl.prop(\"align\"),\n baseline: regl.prop(\"baseline\"),\n translate: regl.this(\"translate\"),\n positionOffset: regl.prop(\"positionOffset\")\n },\n primitive: \"points\",\n viewport: regl.this(\"viewport\"),\n vert: \"\\n\t\t\tprecision highp float;\\n\t\t\tattribute float width, charOffset, char;\\n\t\t\tattribute vec2 position;\\n\t\t\tuniform float fontSize, charStep, em, align, baseline;\\n\t\t\tuniform vec4 viewport;\\n\t\t\tuniform vec4 color;\\n\t\t\tuniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;\\n\t\t\tvarying vec2 charCoord, charId;\\n\t\t\tvarying float charWidth;\\n\t\t\tvarying vec4 fontColor;\\n\t\t\tvoid main () {\\n\t\t\t\tvec2 offset = floor(em * (vec2(align + charOffset, baseline)\\n\t\t\t\t\t+ vec2(positionOffset.x, -positionOffset.y)))\\n\t\t\t\t\t/ (viewport.zw * scale.xy);\\n\\n\t\t\t\tvec2 position = (position + translate) * scale;\\n\t\t\t\tposition += offset * scale;\\n\\n\t\t\t\tcharCoord = position * viewport.zw + viewport.xy;\\n\\n\t\t\t\tgl_Position = vec4(position * 2. - 1., 0, 1);\\n\\n\t\t\t\tgl_PointSize = charStep;\\n\\n\t\t\t\tcharId.x = mod(char, atlasDim.x);\\n\t\t\t\tcharId.y = floor(char / atlasDim.x);\\n\\n\t\t\t\tcharWidth = width * em;\\n\\n\t\t\t\tfontColor = color / 255.;\\n\t\t\t}\",\n frag: \"\\n\t\t\tprecision highp float;\\n\t\t\tuniform float fontSize, charStep, opacity;\\n\t\t\tuniform vec2 atlasSize;\\n\t\t\tuniform vec4 viewport;\\n\t\t\tuniform sampler2D atlas;\\n\t\t\tvarying vec4 fontColor;\\n\t\t\tvarying vec2 charCoord, charId;\\n\t\t\tvarying float charWidth;\\n\\n\t\t\tfloat lightness(vec4 color) {\\n\t\t\t\treturn color.r * 0.299 + color.g * 0.587 + color.b * 0.114;\\n\t\t\t}\\n\\n\t\t\tvoid main () {\\n\t\t\t\tvec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;\\n\t\t\t\tfloat halfCharStep = floor(charStep * .5 + .5);\\n\\n\t\t\t\t// invert y and shift by 1px (FF expecially needs that)\\n\t\t\t\tuv.y = charStep - uv.y;\\n\\n\t\t\t\t// ignore points outside of character bounding box\\n\t\t\t\tfloat halfCharWidth = ceil(charWidth * .5);\\n\t\t\t\tif (floor(uv.x) > halfCharStep + halfCharWidth ||\\n\t\t\t\t\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\\n\\n\t\t\t\tuv += charId * charStep;\\n\t\t\t\tuv = uv / atlasSize;\\n\\n\t\t\t\tvec4 color = fontColor;\\n\t\t\t\tvec4 mask = texture2D(atlas, uv);\\n\\n\t\t\t\tfloat maskY = lightness(mask);\\n\t\t\t\t// float colorY = lightness(color);\\n\t\t\t\tcolor.a *= maskY;\\n\t\t\t\tcolor.a *= opacity;\\n\\n\t\t\t\t// color.a += .1;\\n\\n\t\t\t\t// antialiasing, see yiq color space y-channel formula\\n\t\t\t\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\\n\\n\t\t\t\tgl_FragColor = color;\\n\t\t\t}\"\n });\n var atlas = {};\n return { regl, draw, atlas };\n };\n GlText.prototype.update = function update(o) {\n var this$1 = this;\n if (typeof o === \"string\") {\n o = { text: o };\n } else if (!o) {\n return;\n }\n o = pick(o, {\n position: \"position positions coord coords coordinates\",\n font: \"font fontFace fontface typeface cssFont css-font family fontFamily\",\n fontSize: \"fontSize fontsize size font-size\",\n text: \"text texts chars characters value values symbols\",\n align: \"align alignment textAlign textbaseline\",\n baseline: \"baseline textBaseline textbaseline\",\n direction: \"dir direction textDirection\",\n color: \"color colour fill fill-color fillColor textColor textcolor\",\n kerning: \"kerning kern\",\n range: \"range dataBox\",\n viewport: \"vp viewport viewBox viewbox viewPort\",\n opacity: \"opacity alpha transparency visible visibility opaque\",\n offset: \"offset positionOffset padding shift indent indentation\"\n }, true);\n if (o.opacity != null) {\n if (Array.isArray(o.opacity)) {\n this.opacity = o.opacity.map(function(o2) {\n return parseFloat(o2);\n });\n } else {\n this.opacity = parseFloat(o.opacity);\n }\n }\n if (o.viewport != null) {\n this.viewport = parseRect(o.viewport);\n this.viewportArray = [this.viewport.x, this.viewport.y, this.viewport.width, this.viewport.height];\n }\n if (this.viewport == null) {\n this.viewport = {\n x: 0,\n y: 0,\n width: this.gl.drawingBufferWidth,\n height: this.gl.drawingBufferHeight\n };\n this.viewportArray = [this.viewport.x, this.viewport.y, this.viewport.width, this.viewport.height];\n }\n if (o.kerning != null) {\n this.kerning = o.kerning;\n }\n if (o.offset != null) {\n if (typeof o.offset === \"number\") {\n o.offset = [o.offset, 0];\n }\n this.positionOffset = flatten(o.offset);\n }\n if (o.direction) {\n this.direction = o.direction;\n }\n if (o.range) {\n this.range = o.range;\n this.scale = [1 / (o.range[2] - o.range[0]), 1 / (o.range[3] - o.range[1])];\n this.translate = [-o.range[0], -o.range[1]];\n }\n if (o.scale) {\n this.scale = o.scale;\n }\n if (o.translate) {\n this.translate = o.translate;\n }\n if (!this.scale) {\n this.scale = [1 / this.viewport.width, 1 / this.viewport.height];\n }\n if (!this.translate) {\n this.translate = [0, 0];\n }\n if (!this.font.length && !o.font) {\n o.font = GlText.baseFontSize + \"px sans-serif\";\n }\n var newFont = false, newFontSize = false;\n if (o.font) {\n (Array.isArray(o.font) ? o.font : [o.font]).forEach(function(font2, i2) {\n if (typeof font2 === \"string\") {\n try {\n font2 = Font.parse(font2);\n } catch (e) {\n font2 = Font.parse(GlText.baseFontSize + \"px \" + font2);\n }\n } else {\n var fontStyle = font2.style;\n var fontWeight = font2.weight;\n var fontStretch = font2.stretch;\n var fontVariant = font2.variant;\n font2 = Font.parse(Font.stringify(font2));\n if (fontStyle) font2.style = fontStyle;\n if (fontWeight) font2.weight = fontWeight;\n if (fontStretch) font2.stretch = fontStretch;\n if (fontVariant) font2.variant = fontVariant;\n }\n var baseString = Font.stringify({\n size: GlText.baseFontSize,\n family: font2.family,\n stretch: isStretchSupported ? font2.stretch : void 0,\n variant: font2.variant,\n weight: font2.weight,\n style: font2.style\n });\n var unit = parseUnit(font2.size);\n var fs = Math.round(unit[0] * px(unit[1]));\n if (fs !== this$1.fontSize[i2]) {\n newFontSize = true;\n this$1.fontSize[i2] = fs;\n }\n if (!this$1.font[i2] || baseString != this$1.font[i2].baseString) {\n newFont = true;\n this$1.font[i2] = GlText.fonts[baseString];\n if (!this$1.font[i2]) {\n var family = font2.family.join(\", \");\n var style = [font2.style];\n if (font2.style != font2.variant) {\n style.push(font2.variant);\n }\n if (font2.variant != font2.weight) {\n style.push(font2.weight);\n }\n if (isStretchSupported && font2.weight != font2.stretch) {\n style.push(font2.stretch);\n }\n this$1.font[i2] = {\n baseString,\n // typeface\n family,\n weight: font2.weight,\n stretch: font2.stretch,\n style: font2.style,\n variant: font2.variant,\n // widths of characters\n width: {},\n // kernin pairs offsets\n kerning: {},\n metrics: metrics(family, {\n origin: \"top\",\n fontSize: GlText.baseFontSize,\n fontStyle: style.join(\" \")\n })\n };\n GlText.fonts[baseString] = this$1.font[i2];\n }\n }\n });\n }\n if (newFont || newFontSize) {\n this.font.forEach(function(font2, i2) {\n var fontString = Font.stringify({\n size: this$1.fontSize[i2],\n family: font2.family,\n stretch: isStretchSupported ? font2.stretch : void 0,\n variant: font2.variant,\n weight: font2.weight,\n style: font2.style\n });\n this$1.fontAtlas[i2] = this$1.shader.atlas[fontString];\n if (!this$1.fontAtlas[i2]) {\n var metrics2 = font2.metrics;\n this$1.shader.atlas[fontString] = this$1.fontAtlas[i2] = {\n fontString,\n // even step is better for rendered characters\n step: Math.ceil(this$1.fontSize[i2] * metrics2.bottom * 0.5) * 2,\n em: this$1.fontSize[i2],\n cols: 0,\n rows: 0,\n height: 0,\n width: 0,\n chars: [],\n ids: {},\n texture: this$1.regl.texture()\n };\n }\n if (o.text == null) {\n o.text = this$1.text;\n }\n });\n }\n if (typeof o.text === \"string\" && o.position && o.position.length > 2) {\n var textArray = Array(o.position.length * 0.5);\n for (var i = 0; i < textArray.length; i++) {\n textArray[i] = o.text;\n }\n o.text = textArray;\n }\n var newAtlasChars;\n if (o.text != null || newFont) {\n this.textOffsets = [0];\n if (Array.isArray(o.text)) {\n this.count = o.text[0].length;\n this.counts = [this.count];\n for (var i$1 = 1; i$1 < o.text.length; i$1++) {\n this.textOffsets[i$1] = this.textOffsets[i$1 - 1] + o.text[i$1 - 1].length;\n this.count += o.text[i$1].length;\n this.counts.push(o.text[i$1].length);\n }\n this.text = o.text.join(\"\");\n } else {\n this.text = o.text;\n this.count = this.text.length;\n this.counts = [this.count];\n }\n newAtlasChars = [];\n this.font.forEach(function(font2, idx) {\n GlText.atlasContext.font = font2.baseString;\n var atlas2 = this$1.fontAtlas[idx];\n for (var i2 = 0; i2 < this$1.text.length; i2++) {\n var char2 = this$1.text.charAt(i2);\n if (atlas2.ids[char2] == null) {\n atlas2.ids[char2] = atlas2.chars.length;\n atlas2.chars.push(char2);\n newAtlasChars.push(char2);\n }\n if (font2.width[char2] == null) {\n font2.width[char2] = GlText.atlasContext.measureText(char2).width / GlText.baseFontSize;\n if (this$1.kerning) {\n var pairs = [];\n for (var baseChar in font2.width) {\n pairs.push(baseChar + char2, char2 + baseChar);\n }\n extend2(font2.kerning, kerning(font2.family, {\n pairs\n }));\n }\n }\n }\n });\n }\n if (o.position) {\n if (o.position.length > 2) {\n var flat = !o.position[0].length;\n var positionData = pool.mallocFloat(this.count * 2);\n for (var i$2 = 0, ptr = 0; i$2 < this.counts.length; i$2++) {\n var count = this.counts[i$2];\n if (flat) {\n for (var j = 0; j < count; j++) {\n positionData[ptr++] = o.position[i$2 * 2];\n positionData[ptr++] = o.position[i$2 * 2 + 1];\n }\n } else {\n for (var j$1 = 0; j$1 < count; j$1++) {\n positionData[ptr++] = o.position[i$2][0];\n positionData[ptr++] = o.position[i$2][1];\n }\n }\n }\n if (this.position.call) {\n this.position({\n type: \"float\",\n data: positionData\n });\n } else {\n this.position = this.regl.buffer({\n type: \"float\",\n data: positionData\n });\n }\n pool.freeFloat(positionData);\n } else {\n if (this.position.destroy) {\n this.position.destroy();\n }\n this.position = {\n constant: o.position\n };\n }\n }\n if (o.text || newFont) {\n var charIds = pool.mallocUint8(this.count);\n var sizeData = pool.mallocFloat(this.count * 2);\n this.textWidth = [];\n for (var i$3 = 0, ptr$1 = 0; i$3 < this.counts.length; i$3++) {\n var count$1 = this.counts[i$3];\n var font = this.font[i$3] || this.font[0];\n var atlas = this.fontAtlas[i$3] || this.fontAtlas[0];\n for (var j$2 = 0; j$2 < count$1; j$2++) {\n var char = this.text.charAt(ptr$1);\n var prevChar = this.text.charAt(ptr$1 - 1);\n charIds[ptr$1] = atlas.ids[char];\n sizeData[ptr$1 * 2] = font.width[char];\n if (j$2) {\n var prevWidth = sizeData[ptr$1 * 2 - 2];\n var currWidth = sizeData[ptr$1 * 2];\n var prevOffset = sizeData[ptr$1 * 2 - 1];\n var offset = prevOffset + prevWidth * 0.5 + currWidth * 0.5;\n if (this.kerning) {\n var kerning$1 = font.kerning[prevChar + char];\n if (kerning$1) {\n offset += kerning$1 * 1e-3;\n }\n }\n sizeData[ptr$1 * 2 + 1] = offset;\n } else {\n sizeData[ptr$1 * 2 + 1] = sizeData[ptr$1 * 2] * 0.5;\n }\n ptr$1++;\n }\n this.textWidth.push(\n !sizeData.length ? 0 : (\n // last offset + half last width\n sizeData[ptr$1 * 2 - 2] * 0.5 + sizeData[ptr$1 * 2 - 1]\n )\n );\n }\n if (!o.align) {\n o.align = this.align;\n }\n this.charBuffer({ data: charIds, type: \"uint8\", usage: \"stream\" });\n this.sizeBuffer({ data: sizeData, type: \"float\", usage: \"stream\" });\n pool.freeUint8(charIds);\n pool.freeFloat(sizeData);\n if (newAtlasChars.length) {\n this.font.forEach(function(font2, i2) {\n var atlas2 = this$1.fontAtlas[i2];\n var step = atlas2.step;\n var maxCols = Math.floor(GlText.maxAtlasSize / step);\n var cols = Math.min(maxCols, atlas2.chars.length);\n var rows = Math.ceil(atlas2.chars.length / cols);\n var atlasWidth = nextPow2(cols * step);\n var atlasHeight = nextPow2(rows * step);\n atlas2.width = atlasWidth;\n atlas2.height = atlasHeight;\n atlas2.rows = rows;\n atlas2.cols = cols;\n if (!atlas2.em) {\n return;\n }\n atlas2.texture({\n data: fontAtlas({\n canvas: GlText.atlasCanvas,\n font: atlas2.fontString,\n chars: atlas2.chars,\n shape: [atlasWidth, atlasHeight],\n step: [step, step]\n })\n });\n });\n }\n }\n if (o.align) {\n this.align = o.align;\n this.alignOffset = this.textWidth.map(function(textWidth, i2) {\n var align = !Array.isArray(this$1.align) ? this$1.align : this$1.align.length > 1 ? this$1.align[i2] : this$1.align[0];\n if (typeof align === \"number\") {\n return align;\n }\n switch (align) {\n case \"right\":\n case \"end\":\n return -textWidth;\n case \"center\":\n case \"centre\":\n case \"middle\":\n return -textWidth * 0.5;\n }\n return 0;\n });\n }\n if (this.baseline == null && o.baseline == null) {\n o.baseline = 0;\n }\n if (o.baseline != null) {\n this.baseline = o.baseline;\n if (!Array.isArray(this.baseline)) {\n this.baseline = [this.baseline];\n }\n this.baselineOffset = this.baseline.map(function(baseline, i2) {\n var m = (this$1.font[i2] || this$1.font[0]).metrics;\n var base = 0;\n base += m.bottom * 0.5;\n if (typeof baseline === \"number\") {\n base += baseline - m.baseline;\n } else {\n base += -m[baseline];\n }\n base *= -1;\n return base;\n });\n }\n if (o.color != null) {\n if (!o.color) {\n o.color = \"transparent\";\n }\n if (typeof o.color === \"string\" || !isNaN(o.color)) {\n this.color = rgba3(o.color, \"uint8\");\n } else {\n var colorData;\n if (typeof o.color[0] === \"number\" && o.color.length > this.counts.length) {\n var l = o.color.length;\n colorData = pool.mallocUint8(l);\n var sub = (o.color.subarray || o.color.slice).bind(o.color);\n for (var i$4 = 0; i$4 < l; i$4 += 4) {\n colorData.set(rgba3(sub(i$4, i$4 + 4), \"uint8\"), i$4);\n }\n } else {\n var l$1 = o.color.length;\n colorData = pool.mallocUint8(l$1 * 4);\n for (var i$5 = 0; i$5 < l$1; i$5++) {\n colorData.set(rgba3(o.color[i$5] || 0, \"uint8\"), i$5 * 4);\n }\n }\n this.color = colorData;\n }\n }\n if (o.position || o.text || o.color || o.baseline || o.align || o.font || o.offset || o.opacity) {\n var isBatch = this.color.length > 4 || this.baselineOffset.length > 1 || this.align && this.align.length > 1 || this.fontAtlas.length > 1 || this.positionOffset.length > 2;\n if (isBatch) {\n var length = Math.max(\n this.position.length * 0.5 || 0,\n this.color.length * 0.25 || 0,\n this.baselineOffset.length || 0,\n this.alignOffset.length || 0,\n this.font.length || 0,\n this.opacity.length || 0,\n this.positionOffset.length * 0.5 || 0\n );\n this.batch = Array(length);\n for (var i$6 = 0; i$6 < this.batch.length; i$6++) {\n this.batch[i$6] = {\n count: this.counts.length > 1 ? this.counts[i$6] : this.counts[0],\n offset: this.textOffsets.length > 1 ? this.textOffsets[i$6] : this.textOffsets[0],\n color: !this.color ? [0, 0, 0, 255] : this.color.length <= 4 ? this.color : this.color.subarray(i$6 * 4, i$6 * 4 + 4),\n opacity: Array.isArray(this.opacity) ? this.opacity[i$6] : this.opacity,\n baseline: this.baselineOffset[i$6] != null ? this.baselineOffset[i$6] : this.baselineOffset[0],\n align: !this.align ? 0 : this.alignOffset[i$6] != null ? this.alignOffset[i$6] : this.alignOffset[0],\n atlas: this.fontAtlas[i$6] || this.fontAtlas[0],\n positionOffset: this.positionOffset.length > 2 ? this.positionOffset.subarray(i$6 * 2, i$6 * 2 + 2) : this.positionOffset\n };\n }\n } else {\n if (this.count) {\n this.batch = [{\n count: this.count,\n offset: 0,\n color: this.color || [0, 0, 0, 255],\n opacity: Array.isArray(this.opacity) ? this.opacity[0] : this.opacity,\n baseline: this.baselineOffset[0],\n align: this.alignOffset ? this.alignOffset[0] : 0,\n atlas: this.fontAtlas[0],\n positionOffset: this.positionOffset\n }];\n } else {\n this.batch = [];\n }\n }\n }\n };\n GlText.prototype.destroy = function destroy() {\n };\n GlText.prototype.kerning = true;\n GlText.prototype.position = { constant: new Float32Array(2) };\n GlText.prototype.translate = null;\n GlText.prototype.scale = null;\n GlText.prototype.font = null;\n GlText.prototype.text = \"\";\n GlText.prototype.positionOffset = [0, 0];\n GlText.prototype.opacity = 1;\n GlText.prototype.color = new Uint8Array([0, 0, 0, 255]);\n GlText.prototype.alignOffset = [0, 0];\n GlText.maxAtlasSize = 1024;\n GlText.atlasCanvas = document.createElement(\"canvas\");\n GlText.atlasContext = GlText.atlasCanvas.getContext(\"2d\", { alpha: false });\n GlText.baseFontSize = 64;\n GlText.fonts = {};\n function isRegl(o) {\n return typeof o === \"function\" && o._gl && o.prop && o.texture && o.buffer;\n }\n module.exports = GlText;\n }\n });\n\n // src/lib/prepare_regl.js\n var require_prepare_regl = __commonJS({\n \"src/lib/prepare_regl.js\"(exports, module) {\n \"use strict\";\n var showNoWebGlMsg = require_show_no_webgl_msg();\n var createRegl = require_regl_unchecked();\n module.exports = function prepareRegl(gd, extensions, reglPrecompiled) {\n var fullLayout = gd._fullLayout;\n var success = true;\n fullLayout._glcanvas.each(function(d) {\n if (d.regl) {\n d.regl.preloadCachedCode(reglPrecompiled);\n return;\n }\n if (d.pick && !fullLayout._has(\"parcoords\")) return;\n try {\n d.regl = createRegl({\n canvas: this,\n attributes: {\n antialias: !d.pick,\n preserveDrawingBuffer: true\n },\n pixelRatio: gd._context.plotGlPixelRatio || window.devicePixelRatio,\n extensions: extensions || [],\n cachedCode: reglPrecompiled || {}\n });\n } catch (e) {\n success = false;\n }\n if (!d.regl) success = false;\n if (success) {\n this.addEventListener(\"webglcontextlost\", function(event) {\n if (gd && gd.emit) {\n gd.emit(\"plotly_webglcontextlost\", {\n event,\n layer: d.key\n });\n }\n }, false);\n }\n });\n if (!success) {\n showNoWebGlMsg({ container: fullLayout._glcontainer.node() });\n }\n return success;\n };\n }\n });\n\n // src/traces/scattergl/plot.js\n var require_plot19 = __commonJS({\n \"src/traces/scattergl/plot.js\"(exports, module) {\n \"use strict\";\n var createScatter = require_bundle();\n var createLine = require_regl_line2d();\n var createError = require_regl_error2d();\n var Text = require_dist();\n var Lib = require_lib();\n var selectMode = require_helpers5().selectMode;\n var prepareRegl = require_prepare_regl();\n var subTypes = require_subtypes();\n var linkTraces = require_link_traces();\n var styleTextSelection = require_edit_style().styleTextSelection;\n var reglPrecompiled = {};\n function getViewport(fullLayout, xaxis, yaxis, plotGlPixelRatio) {\n var gs = fullLayout._size;\n var width = fullLayout.width * plotGlPixelRatio;\n var height = fullLayout.height * plotGlPixelRatio;\n var l = gs.l * plotGlPixelRatio;\n var b = gs.b * plotGlPixelRatio;\n var r = gs.r * plotGlPixelRatio;\n var t = gs.t * plotGlPixelRatio;\n var w = gs.w * plotGlPixelRatio;\n var h = gs.h * plotGlPixelRatio;\n return [\n l + xaxis.domain[0] * w,\n b + yaxis.domain[0] * h,\n width - r - (1 - xaxis.domain[1]) * w,\n height - t - (1 - yaxis.domain[1]) * h\n ];\n }\n var exports = module.exports = function plot(gd, subplot, cdata) {\n if (!cdata.length) return;\n var fullLayout = gd._fullLayout;\n var scene = subplot._scene;\n var xaxis = subplot.xaxis;\n var yaxis = subplot.yaxis;\n var i, j;\n if (!scene) return;\n var success = prepareRegl(gd, [\"ANGLE_instanced_arrays\", \"OES_element_index_uint\"], reglPrecompiled);\n if (!success) {\n scene.init();\n return;\n }\n var count = scene.count;\n var regl = fullLayout._glcanvas.data()[0].regl;\n linkTraces(gd, subplot, cdata);\n if (scene.dirty) {\n if ((scene.line2d || scene.error2d) && !(scene.scatter2d || scene.fill2d || scene.glText)) {\n regl.clear({});\n }\n if (scene.error2d === true) {\n scene.error2d = createError(regl);\n }\n if (scene.line2d === true) {\n scene.line2d = createLine(regl);\n }\n if (scene.scatter2d === true) {\n scene.scatter2d = createScatter(regl);\n }\n if (scene.fill2d === true) {\n scene.fill2d = createLine(regl);\n }\n if (scene.glText === true) {\n scene.glText = new Array(count);\n for (i = 0; i < count; i++) {\n scene.glText[i] = new Text(regl);\n }\n }\n if (scene.glText) {\n if (count > scene.glText.length) {\n var textsToAdd = count - scene.glText.length;\n for (i = 0; i < textsToAdd; i++) {\n scene.glText.push(new Text(regl));\n }\n } else if (count < scene.glText.length) {\n var textsToRemove = scene.glText.length - count;\n var removedTexts = scene.glText.splice(count, textsToRemove);\n removedTexts.forEach(function(text) {\n text.destroy();\n });\n }\n for (i = 0; i < count; i++) {\n scene.glText[i].update(scene.textOptions[i]);\n }\n }\n if (scene.line2d) {\n scene.line2d.update(scene.lineOptions);\n scene.lineOptions = scene.lineOptions.map(function(lineOptions) {\n if (lineOptions && lineOptions.positions) {\n var srcPos = lineOptions.positions;\n var firstptdef = 0;\n while (firstptdef < srcPos.length && (isNaN(srcPos[firstptdef]) || isNaN(srcPos[firstptdef + 1]))) {\n firstptdef += 2;\n }\n var lastptdef = srcPos.length - 2;\n while (lastptdef > firstptdef && (isNaN(srcPos[lastptdef]) || isNaN(srcPos[lastptdef + 1]))) {\n lastptdef -= 2;\n }\n lineOptions.positions = srcPos.slice(firstptdef, lastptdef + 2);\n }\n return lineOptions;\n });\n scene.line2d.update(scene.lineOptions);\n }\n if (scene.error2d) {\n var errorBatch = (scene.errorXOptions || []).concat(scene.errorYOptions || []);\n scene.error2d.update(errorBatch);\n }\n if (scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n scene.fillOrder = Lib.repeat(null, count);\n if (scene.fill2d) {\n scene.fillOptions = scene.fillOptions.map(function(fillOptions, i2) {\n var cdscatter = cdata[i2];\n if (!fillOptions || !cdscatter || !cdscatter[0] || !cdscatter[0].trace) return;\n var cd = cdscatter[0];\n var trace2 = cd.trace;\n var stash2 = cd.t;\n var lineOptions = scene.lineOptions[i2];\n var last, j2;\n var fillData = [];\n if (trace2._ownfill) fillData.push(i2);\n if (trace2._nexttrace) fillData.push(i2 + 1);\n if (fillData.length) scene.fillOrder[i2] = fillData;\n var pos = [];\n var srcPos = lineOptions && lineOptions.positions || stash2.positions;\n var firstptdef, lastptdef;\n if (trace2.fill === \"tozeroy\") {\n firstptdef = 0;\n while (firstptdef < srcPos.length && isNaN(srcPos[firstptdef + 1])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while (lastptdef > firstptdef && isNaN(srcPos[lastptdef + 1])) {\n lastptdef -= 2;\n }\n if (srcPos[firstptdef + 1] !== 0) {\n pos = [srcPos[firstptdef], 0];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if (srcPos[lastptdef + 1] !== 0) {\n pos = pos.concat([srcPos[lastptdef], 0]);\n }\n } else if (trace2.fill === \"tozerox\") {\n firstptdef = 0;\n while (firstptdef < srcPos.length && isNaN(srcPos[firstptdef])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while (lastptdef > firstptdef && isNaN(srcPos[lastptdef])) {\n lastptdef -= 2;\n }\n if (srcPos[firstptdef] !== 0) {\n pos = [0, srcPos[firstptdef + 1]];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if (srcPos[lastptdef] !== 0) {\n pos = pos.concat([0, srcPos[lastptdef + 1]]);\n }\n } else if (trace2.fill === \"toself\" || trace2.fill === \"tonext\") {\n pos = [];\n last = 0;\n fillOptions.splitNull = true;\n for (j2 = 0; j2 < srcPos.length; j2 += 2) {\n if (isNaN(srcPos[j2]) || isNaN(srcPos[j2 + 1])) {\n pos = pos.concat(srcPos.slice(last, j2));\n pos.push(srcPos[last], srcPos[last + 1]);\n pos.push(null, null);\n last = j2 + 2;\n }\n }\n pos = pos.concat(srcPos.slice(last));\n if (last) {\n pos.push(srcPos[last], srcPos[last + 1]);\n }\n } else {\n var nextTrace = trace2._nexttrace;\n if (nextTrace) {\n var nextOptions = scene.lineOptions[i2 + 1];\n if (nextOptions) {\n var nextPos = nextOptions.positions;\n if (trace2.fill === \"tonexty\") {\n pos = srcPos.slice();\n for (i2 = Math.floor(nextPos.length / 2); i2--; ) {\n var xx = nextPos[i2 * 2];\n var yy = nextPos[i2 * 2 + 1];\n if (isNaN(xx) || isNaN(yy)) continue;\n pos.push(xx, yy);\n }\n fillOptions.fill = nextTrace.fillcolor;\n }\n }\n }\n }\n if (trace2._prevtrace && trace2._prevtrace.fill === \"tonext\") {\n var prevLinePos = scene.lineOptions[i2 - 1].positions;\n var offset = pos.length / 2;\n last = offset;\n var hole = [last];\n for (j2 = 0; j2 < prevLinePos.length; j2 += 2) {\n if (isNaN(prevLinePos[j2]) || isNaN(prevLinePos[j2 + 1])) {\n hole.push(j2 / 2 + offset + 1);\n last = j2 + 2;\n }\n }\n pos = pos.concat(prevLinePos);\n fillOptions.hole = hole;\n }\n fillOptions.fillmode = trace2.fill;\n fillOptions.opacity = trace2.opacity;\n fillOptions.positions = pos;\n return fillOptions;\n });\n scene.fill2d.update(scene.fillOptions);\n }\n }\n var dragmode = fullLayout.dragmode;\n var isSelectMode = selectMode(dragmode);\n var clickSelectEnabled = fullLayout.clickmode.indexOf(\"select\") > -1;\n for (i = 0; i < count; i++) {\n var cd0 = cdata[i][0];\n var trace = cd0.trace;\n var stash = cd0.t;\n var index = stash.index;\n var len = trace._length;\n var x = stash.x;\n var y = stash.y;\n if (trace.selectedpoints || isSelectMode || clickSelectEnabled) {\n if (!isSelectMode) isSelectMode = true;\n if (trace.selectedpoints) {\n var selPts = scene.selectBatch[index] = Lib.selIndices2selPoints(trace);\n var selDict = {};\n for (j = 0; j < selPts.length; j++) {\n selDict[selPts[j]] = 1;\n }\n var unselPts = [];\n for (j = 0; j < len; j++) {\n if (!selDict[j]) unselPts.push(j);\n }\n scene.unselectBatch[index] = unselPts;\n }\n var xpx = stash.xpx = new Array(len);\n var ypx = stash.ypx = new Array(len);\n for (j = 0; j < len; j++) {\n xpx[j] = xaxis.c2p(x[j]);\n ypx[j] = yaxis.c2p(y[j]);\n }\n } else {\n stash.xpx = stash.ypx = null;\n }\n }\n if (isSelectMode) {\n if (!scene.select2d) {\n scene.select2d = createScatter(fullLayout._glcanvas.data()[1].regl);\n }\n if (scene.scatter2d) {\n var unselOpts = new Array(count);\n for (i = 0; i < count; i++) {\n unselOpts[i] = scene.selectBatch[i].length || scene.unselectBatch[i].length ? scene.markerUnselectedOptions[i] : {};\n }\n scene.scatter2d.update(unselOpts);\n }\n if (scene.select2d) {\n scene.select2d.update(scene.markerOptions);\n scene.select2d.update(scene.markerSelectedOptions);\n }\n if (scene.glText) {\n cdata.forEach(function(cdscatter) {\n var trace2 = ((cdscatter || [])[0] || {}).trace || {};\n if (subTypes.hasText(trace2)) {\n styleTextSelection(cdscatter);\n }\n });\n }\n } else {\n if (scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n }\n var vpRange0 = {\n viewport: getViewport(fullLayout, xaxis, yaxis, gd._context.plotGlPixelRatio),\n // TODO do we need those fallbacks?\n range: [\n (xaxis._rl || xaxis.range)[0],\n (yaxis._rl || yaxis.range)[0],\n (xaxis._rl || xaxis.range)[1],\n (yaxis._rl || yaxis.range)[1]\n ]\n };\n var vpRange = Lib.repeat(vpRange0, scene.count);\n if (scene.fill2d) {\n scene.fill2d.update(vpRange);\n }\n if (scene.line2d) {\n scene.line2d.update(vpRange);\n }\n if (scene.error2d) {\n scene.error2d.update(vpRange.concat(vpRange));\n }\n if (scene.scatter2d) {\n scene.scatter2d.update(vpRange);\n }\n if (scene.select2d) {\n scene.select2d.update(vpRange);\n }\n if (scene.glText) {\n scene.glText.forEach(function(text) {\n text.update(vpRange0);\n });\n }\n };\n exports.reglPrecompiled = reglPrecompiled;\n }\n });\n\n // src/traces/scattergl/index.js\n var require_scattergl = __commonJS({\n \"src/traces/scattergl/index.js\"(exports, module) {\n \"use strict\";\n var index = require_base_index();\n index.plot = require_plot19();\n module.exports = index;\n }\n });\n\n // lib/scattergl.js\n var require_scattergl2 = __commonJS({\n \"lib/scattergl.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattergl();\n }\n });\n\n // src/traces/splom/attributes.js\n var require_attributes51 = __commonJS({\n \"src/traces/splom/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterAttrs = require_attributes12();\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var scatterGlAttrs = require_attributes50();\n var cartesianIdRegex = require_constants2().idRegex;\n var templatedArray = require_plot_template().templatedArray;\n var extendFlat = require_extend().extendFlat;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n var markerLineAttrs = extendFlat(colorScaleAttrs(\"marker.line\", { editTypeOverride: \"calc\" }), {\n width: extendFlat({}, scatterMarkerLineAttrs.width, { editType: \"calc\" }),\n editType: \"calc\"\n });\n var markerAttrs = extendFlat(colorScaleAttrs(\"marker\"), {\n symbol: scatterMarkerAttrs.symbol,\n angle: scatterMarkerAttrs.angle,\n size: extendFlat({}, scatterMarkerAttrs.size, { editType: \"markerSize\" }),\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: scatterMarkerAttrs.opacity,\n colorbar: scatterMarkerAttrs.colorbar,\n line: markerLineAttrs,\n editType: \"calc\"\n });\n markerAttrs.color.editType = markerAttrs.cmin.editType = markerAttrs.cmax.editType = \"style\";\n function makeAxesValObject(axLetter) {\n return {\n valType: \"info_array\",\n freeLength: true,\n editType: \"calc\",\n items: {\n valType: \"subplotid\",\n regex: cartesianIdRegex[axLetter],\n editType: \"plot\"\n }\n };\n }\n module.exports = {\n dimensions: templatedArray(\"dimension\", {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n label: {\n valType: \"string\",\n editType: \"calc\"\n },\n values: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n axis: {\n type: {\n valType: \"enumerated\",\n values: [\"linear\", \"log\", \"date\", \"category\"],\n editType: \"calc+clearAxisTypes\"\n },\n // TODO make 'true' the default in v3?\n matches: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n editType: \"calc+clearAxisTypes\"\n },\n // TODO should add an attribute to pin down x only vars and y only vars\n // like https://seaborn.pydata.org/generated/seaborn.pairplot.html\n // x_vars and y_vars\n // maybe more axis defaulting option e.g. `showgrid: false`\n editType: \"calc+clearAxisTypes\"\n }),\n // mode: {}, (only 'markers' for now)\n text: extendFlat({}, scatterGlAttrs.text, {}),\n hovertext: extendFlat({}, scatterGlAttrs.hovertext, {}),\n hovertemplate: hovertemplateAttrs(),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n marker: markerAttrs,\n xaxes: makeAxesValObject(\"x\"),\n yaxes: makeAxesValObject(\"y\"),\n diagonal: {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n // type: 'scattergl' | 'histogram' | 'box' | 'violin'\n // ...\n // more options\n editType: \"calc\"\n },\n showupperhalf: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n showlowerhalf: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n selected: {\n marker: scatterGlAttrs.selected.marker,\n editType: \"calc\"\n },\n unselected: {\n marker: scatterGlAttrs.unselected.marker,\n editType: \"calc\"\n },\n opacity: scatterGlAttrs.opacity\n };\n }\n });\n\n // src/traces/parcoords/merge_length.js\n var require_merge_length = __commonJS({\n \"src/traces/parcoords/merge_length.js\"(exports, module) {\n \"use strict\";\n module.exports = function(traceOut, dimensions, dataAttr, len) {\n if (!len) len = Infinity;\n var i, dimi;\n for (i = 0; i < dimensions.length; i++) {\n dimi = dimensions[i];\n if (dimi.visible) len = Math.min(len, dimi[dataAttr].length);\n }\n if (len === Infinity) len = 0;\n traceOut._length = len;\n for (i = 0; i < dimensions.length; i++) {\n dimi = dimensions[i];\n if (dimi.visible) dimi._length = len;\n }\n return len;\n };\n }\n });\n\n // src/traces/splom/defaults.js\n var require_defaults47 = __commonJS({\n \"src/traces/splom/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes51();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var mergeLength = require_merge_length();\n var isOpenSymbol = require_helpers16().isOpenSymbol;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: \"dimensions\",\n handleItemDefaults: dimensionDefaults\n });\n var showDiag = coerce(\"diagonal.visible\");\n var showUpper = coerce(\"showupperhalf\");\n var showLower = coerce(\"showlowerhalf\");\n var dimLength = mergeLength(traceOut, dimensions, \"values\");\n if (!dimLength || !showDiag && !showUpper && !showLower) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noAngleRef: true, noStandOff: true });\n var isOpen = isOpenSymbol(traceOut.marker.symbol);\n var isBubble = subTypes.isBubble(traceOut);\n coerce(\"marker.line.width\", isOpen || isBubble ? 1 : 0);\n handleAxisDefaults(traceIn, traceOut, layout, coerce);\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n function dimensionDefaults(dimIn, dimOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimIn, dimOut, attributes.dimensions, attr, dflt);\n }\n coerce(\"label\");\n var values = coerce(\"values\");\n if (!(values && values.length)) dimOut.visible = false;\n else coerce(\"visible\");\n coerce(\"axis.type\");\n coerce(\"axis.matches\");\n }\n function handleAxisDefaults(traceIn, traceOut, layout, coerce) {\n var dimensions = traceOut.dimensions;\n var dimLength = dimensions.length;\n var showUpper = traceOut.showupperhalf;\n var showLower = traceOut.showlowerhalf;\n var showDiag = traceOut.diagonal.visible;\n var i, j;\n var xAxesDflt = new Array(dimLength);\n var yAxesDflt = new Array(dimLength);\n for (i = 0; i < dimLength; i++) {\n var suffix = i ? i + 1 : \"\";\n xAxesDflt[i] = \"x\" + suffix;\n yAxesDflt[i] = \"y\" + suffix;\n }\n var xaxes = coerce(\"xaxes\", xAxesDflt);\n var yaxes = coerce(\"yaxes\", yAxesDflt);\n var diag = traceOut._diag = new Array(dimLength);\n traceOut._xaxes = {};\n traceOut._yaxes = {};\n var xList = [];\n var yList = [];\n function fillAxisStashes(axId, counterAxId, dim2, list) {\n if (!axId) return;\n var axLetter = axId.charAt(0);\n var stash = layout._splomAxes[axLetter];\n traceOut[\"_\" + axLetter + \"axes\"][axId] = 1;\n list.push(axId);\n if (!(axId in stash)) {\n var s = stash[axId] = {};\n if (dim2) {\n s.label = dim2.label || \"\";\n if (dim2.visible && dim2.axis) {\n if (dim2.axis.type) s.type = dim2.axis.type;\n if (dim2.axis.matches) s.matches = counterAxId;\n }\n }\n }\n }\n var mustShiftX = !showDiag && !showLower;\n var mustShiftY = !showDiag && !showUpper;\n traceOut._axesDim = {};\n for (i = 0; i < dimLength; i++) {\n var dim = dimensions[i];\n var i0 = i === 0;\n var iN = i === dimLength - 1;\n var xaId = i0 && mustShiftX || iN && mustShiftY ? void 0 : xaxes[i];\n var yaId = i0 && mustShiftY || iN && mustShiftX ? void 0 : yaxes[i];\n fillAxisStashes(xaId, yaId, dim, xList);\n fillAxisStashes(yaId, xaId, dim, yList);\n diag[i] = [xaId, yaId];\n traceOut._axesDim[xaId] = i;\n traceOut._axesDim[yaId] = i;\n }\n for (i = 0; i < xList.length; i++) {\n for (j = 0; j < yList.length; j++) {\n var id = xList[i] + yList[j];\n if (i > j && showUpper) {\n layout._splomSubplots[id] = 1;\n } else if (i < j && showLower) {\n layout._splomSubplots[id] = 1;\n } else if (i === j && (showDiag || !showLower || !showUpper)) {\n layout._splomSubplots[id] = 1;\n }\n }\n }\n if (!showLower || !showDiag && showUpper && showLower) {\n layout._splomGridDflt.xside = \"bottom\";\n layout._splomGridDflt.yside = \"left\";\n }\n }\n }\n });\n\n // src/traces/splom/scene_update.js\n var require_scene_update2 = __commonJS({\n \"src/traces/splom/scene_update.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function sceneUpdate(gd, trace) {\n var fullLayout = gd._fullLayout;\n var uid = trace.uid;\n var splomScenes = fullLayout._splomScenes;\n if (!splomScenes) splomScenes = fullLayout._splomScenes = {};\n var reset = {\n dirty: true,\n selectBatch: [],\n unselectBatch: []\n };\n var first = {\n matrix: false,\n selectBatch: [],\n unselectBatch: []\n };\n var scene = splomScenes[trace.uid];\n if (!scene) {\n scene = splomScenes[uid] = Lib.extendFlat({}, reset, first);\n scene.draw = function draw() {\n if (scene.matrix && scene.matrix.draw) {\n if (scene.selectBatch.length || scene.unselectBatch.length) {\n scene.matrix.draw(scene.unselectBatch, scene.selectBatch);\n } else {\n scene.matrix.draw();\n }\n }\n scene.dirty = false;\n };\n scene.destroy = function destroy() {\n if (scene.matrix && scene.matrix.destroy) {\n scene.matrix.destroy();\n }\n scene.matrixOptions = null;\n scene.selectBatch = null;\n scene.unselectBatch = null;\n scene = null;\n };\n }\n if (!scene.dirty) {\n Lib.extendFlat(scene, reset);\n }\n return scene;\n };\n }\n });\n\n // src/traces/splom/calc.js\n var require_calc30 = __commonJS({\n \"src/traces/splom/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var AxisIDs = require_axis_ids();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var calcAxisExpansion = require_calc3().calcAxisExpansion;\n var calcColorscale = require_colorscale_calc();\n var convertMarkerSelection = require_convert10().markerSelection;\n var convertMarkerStyle = require_convert10().markerStyle;\n var sceneUpdate = require_scene_update2();\n var BADNUM = require_numerical().BADNUM;\n var TOO_MANY_POINTS = require_constants23().TOO_MANY_POINTS;\n module.exports = function calc(gd, trace) {\n var dimensions = trace.dimensions;\n var commonLength = trace._length;\n var opts = {};\n var cdata = opts.cdata = [];\n var ldata = opts.data = [];\n var visibleDims = trace._visibleDims = [];\n var i, k, dim, xa, ya;\n function makeCalcdata(ax, dim2) {\n var ccol = ax.makeCalcdata({\n v: dim2.values,\n vcalendar: trace.calendar\n }, \"v\");\n for (var j = 0; j < ccol.length; j++) {\n ccol[j] = ccol[j] === BADNUM ? NaN : ccol[j];\n }\n cdata.push(ccol);\n ldata.push(ax.type === \"log\" ? Lib.simpleMap(ccol, ax.c2l) : ccol);\n }\n for (i = 0; i < dimensions.length; i++) {\n dim = dimensions[i];\n if (dim.visible) {\n xa = AxisIDs.getFromId(gd, trace._diag[i][0]);\n ya = AxisIDs.getFromId(gd, trace._diag[i][1]);\n if (xa && ya && xa.type !== ya.type) {\n Lib.log(\"Skipping splom dimension \" + i + \" with conflicting axis types\");\n continue;\n }\n if (xa) {\n makeCalcdata(xa, dim);\n if (ya && ya.type === \"category\") {\n ya._categories = xa._categories.slice();\n }\n } else {\n makeCalcdata(ya, dim);\n }\n visibleDims.push(i);\n }\n }\n calcColorscale(gd, trace);\n Lib.extendFlat(opts, convertMarkerStyle(gd, trace));\n var visibleLength = cdata.length;\n var hasTooManyPoints = visibleLength * commonLength > TOO_MANY_POINTS;\n var ppad;\n if (hasTooManyPoints) {\n ppad = opts.sizeAvg || Math.max(opts.size, 3);\n } else {\n ppad = calcMarkerSize(trace, commonLength);\n }\n for (k = 0; k < visibleDims.length; k++) {\n i = visibleDims[k];\n dim = dimensions[i];\n xa = AxisIDs.getFromId(gd, trace._diag[i][0]) || {};\n ya = AxisIDs.getFromId(gd, trace._diag[i][1]) || {};\n calcAxisExpansion(gd, trace, xa, ya, cdata[k], cdata[k], ppad);\n }\n var scene = sceneUpdate(gd, trace);\n if (!scene.matrix) scene.matrix = true;\n scene.matrixOptions = opts;\n scene.selectedOptions = convertMarkerSelection(gd, trace, trace.selected);\n scene.unselectedOptions = convertMarkerSelection(gd, trace, trace.unselected);\n return [{ x: false, y: false, t: {}, trace }];\n };\n }\n });\n\n // node_modules/performance-now/lib/performance-now.js\n var require_performance_now = __commonJS({\n \"node_modules/performance-now/lib/performance-now.js\"(exports, module) {\n (function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return (/* @__PURE__ */ new Date()).getTime() - loadTime;\n };\n loadTime = (/* @__PURE__ */ new Date()).getTime();\n }\n }).call(exports);\n }\n });\n\n // node_modules/raf/index.js\n var require_raf = __commonJS({\n \"node_modules/raf/index.js\"(exports, module) {\n var now = require_performance_now();\n var root = typeof window === \"undefined\" ? window : window;\n var vendors = [\"moz\", \"webkit\"];\n var suffix = \"AnimationFrame\";\n var raf = root[\"request\" + suffix];\n var caf = root[\"cancel\" + suffix] || root[\"cancelRequest\" + suffix];\n for (i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + \"Request\" + suffix];\n caf = root[vendors[i] + \"Cancel\" + suffix] || root[vendors[i] + \"CancelRequest\" + suffix];\n }\n var i;\n if (!raf || !caf) {\n last = 0, id = 0, queue = [], frameDuration = 1e3 / 60;\n raf = function(callback) {\n if (queue.length === 0) {\n var _now = now(), next = Math.max(0, frameDuration - (_now - last));\n last = next + _now;\n setTimeout(function() {\n var cp = queue.slice(0);\n queue.length = 0;\n for (var i2 = 0; i2 < cp.length; i2++) {\n if (!cp[i2].cancelled) {\n try {\n cp[i2].callback(last);\n } catch (e) {\n setTimeout(function() {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n queue.push({\n handle: ++id,\n callback,\n cancelled: false\n });\n return id;\n };\n caf = function(handle) {\n for (var i2 = 0; i2 < queue.length; i2++) {\n if (queue[i2].handle === handle) {\n queue[i2].cancelled = true;\n }\n }\n };\n }\n var last;\n var id;\n var queue;\n var frameDuration;\n module.exports = function(fn) {\n return raf.call(root, fn);\n };\n module.exports.cancel = function() {\n caf.apply(root, arguments);\n };\n module.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n };\n }\n });\n\n // node_modules/array-range/index.js\n var require_array_range = __commonJS({\n \"node_modules/array-range/index.js\"(exports, module) {\n module.exports = function newArray(start, end) {\n var n0 = typeof start === \"number\", n1 = typeof end === \"number\";\n if (n0 && !n1) {\n end = start;\n start = 0;\n } else if (!n0 && !n1) {\n start = 0;\n end = 0;\n }\n start = start | 0;\n end = end | 0;\n var len = end - start;\n if (len < 0)\n throw new Error(\"array length must be positive\");\n var a = new Array(len);\n for (var i = 0, c = start; i < len; i++, c++)\n a[i] = c;\n return a;\n };\n }\n });\n\n // node_modules/regl-splom/index.js\n var require_regl_splom = __commonJS({\n \"node_modules/regl-splom/index.js\"(exports, module) {\n \"use strict\";\n var createScatter = require_bundle();\n var pick = require_pick_by_alias();\n var getBounds = require_array_bounds();\n var raf = require_raf();\n var arrRange = require_array_range();\n var rect = require_parse_rect();\n var flatten = require_flatten_vertex_data();\n module.exports = SPLOM;\n function SPLOM(regl, options) {\n if (!(this instanceof SPLOM)) return new SPLOM(regl, options);\n this.traces = [];\n this.passes = {};\n this.regl = regl;\n this.scatter = createScatter(regl);\n this.canvas = this.scatter.canvas;\n }\n SPLOM.prototype.render = function(...args) {\n if (args.length) {\n this.update(...args);\n }\n if (this.regl.attributes.preserveDrawingBuffer) return this.draw();\n if (this.dirty) {\n if (this.planned == null) {\n this.planned = raf(() => {\n this.draw();\n this.dirty = true;\n this.planned = null;\n });\n }\n } else {\n this.draw();\n this.dirty = true;\n raf(() => {\n this.dirty = false;\n });\n }\n return this;\n };\n SPLOM.prototype.update = function(...args) {\n if (!args.length) return;\n for (let i = 0; i < args.length; i++) {\n this.updateItem(i, args[i]);\n }\n this.traces = this.traces.filter(Boolean);\n let passes = [];\n let offset = 0;\n for (let i = 0; i < this.traces.length; i++) {\n let trace = this.traces[i];\n let tracePasses = this.traces[i].passes;\n for (let j = 0; j < tracePasses.length; j++) {\n passes.push(this.passes[tracePasses[j]]);\n }\n trace.passOffset = offset;\n offset += trace.passes.length;\n }\n this.scatter.update(...passes);\n return this;\n };\n SPLOM.prototype.updateItem = function(i, options) {\n let { regl } = this;\n if (options === null) {\n this.traces[i] = null;\n return this;\n }\n if (!options) return this;\n let o = pick(options, {\n data: \"data items columns rows values dimensions samples x\",\n snap: \"snap cluster\",\n size: \"sizes size radius\",\n color: \"colors color fill fill-color fillColor\",\n opacity: \"opacity alpha transparency opaque\",\n borderSize: \"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline\",\n borderColor: \"borderColors borderColor bordercolor stroke stroke-color strokeColor\",\n marker: \"markers marker shape\",\n range: \"range ranges databox dataBox\",\n viewport: \"viewport viewBox viewbox\",\n domain: \"domain domains area areas\",\n padding: \"pad padding paddings pads margin margins\",\n transpose: \"transpose transposed\",\n diagonal: \"diagonal diag showDiagonal\",\n upper: \"upper up top upperhalf upperHalf showupperhalf showUpper showUpperHalf\",\n lower: \"lower low bottom lowerhalf lowerHalf showlowerhalf showLowerHalf showLower\"\n });\n let trace = this.traces[i] || (this.traces[i] = {\n id: i,\n buffer: regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array()\n }),\n color: \"black\",\n marker: null,\n size: 12,\n borderColor: \"transparent\",\n borderSize: 1,\n viewport: rect([regl._gl.drawingBufferWidth, regl._gl.drawingBufferHeight]),\n padding: [0, 0, 0, 0],\n opacity: 1,\n diagonal: true,\n upper: true,\n lower: true\n });\n if (o.color != null) {\n trace.color = o.color;\n }\n if (o.size != null) {\n trace.size = o.size;\n }\n if (o.marker != null) {\n trace.marker = o.marker;\n }\n if (o.borderColor != null) {\n trace.borderColor = o.borderColor;\n }\n if (o.borderSize != null) {\n trace.borderSize = o.borderSize;\n }\n if (o.opacity != null) {\n trace.opacity = o.opacity;\n }\n if (o.viewport) {\n trace.viewport = rect(o.viewport);\n }\n if (o.diagonal != null) trace.diagonal = o.diagonal;\n if (o.upper != null) trace.upper = o.upper;\n if (o.lower != null) trace.lower = o.lower;\n if (o.data) {\n trace.buffer(flatten(o.data));\n trace.columns = o.data.length;\n trace.count = o.data[0].length;\n trace.bounds = [];\n for (let i2 = 0; i2 < trace.columns; i2++) {\n trace.bounds[i2] = getBounds(o.data[i2], 1);\n }\n }\n let multirange;\n if (o.range) {\n trace.range = o.range;\n multirange = trace.range && typeof trace.range[0] !== \"number\";\n }\n if (o.domain) {\n trace.domain = o.domain;\n }\n let multipadding = false;\n if (o.padding != null) {\n if (Array.isArray(o.padding) && o.padding.length === trace.columns && typeof o.padding[o.padding.length - 1] === \"number\") {\n trace.padding = o.padding.map(getPad);\n multipadding = true;\n } else {\n trace.padding = getPad(o.padding);\n }\n }\n let m = trace.columns;\n let n = trace.count;\n let w = trace.viewport.width;\n let h = trace.viewport.height;\n let left = trace.viewport.x;\n let top = trace.viewport.y;\n let iw = w / m;\n let ih = h / m;\n trace.passes = [];\n for (let i2 = 0; i2 < m; i2++) {\n for (let j = 0; j < m; j++) {\n if (!trace.diagonal && j === i2) continue;\n if (!trace.upper && i2 > j) continue;\n if (!trace.lower && i2 < j) continue;\n let key = passId(trace.id, i2, j);\n let pass = this.passes[key] || (this.passes[key] = {});\n if (o.data) {\n if (o.transpose) {\n pass.positions = {\n x: { buffer: trace.buffer, offset: j, count: n, stride: m },\n y: { buffer: trace.buffer, offset: i2, count: n, stride: m }\n };\n } else {\n pass.positions = {\n x: { buffer: trace.buffer, offset: j * n, count: n },\n y: { buffer: trace.buffer, offset: i2 * n, count: n }\n };\n }\n pass.bounds = getBox(trace.bounds, i2, j);\n }\n if (o.domain || o.viewport || o.data) {\n let pad = multipadding ? getBox(trace.padding, i2, j) : trace.padding;\n if (trace.domain) {\n let [lox, loy, hix, hiy] = getBox(trace.domain, i2, j);\n pass.viewport = [\n left + lox * w + pad[0],\n top + loy * h + pad[1],\n left + hix * w - pad[2],\n top + hiy * h - pad[3]\n ];\n } else {\n pass.viewport = [\n left + j * iw + iw * pad[0],\n top + i2 * ih + ih * pad[1],\n left + (j + 1) * iw - iw * pad[2],\n top + (i2 + 1) * ih - ih * pad[3]\n ];\n }\n }\n if (o.color) pass.color = trace.color;\n if (o.size) pass.size = trace.size;\n if (o.marker) pass.marker = trace.marker;\n if (o.borderSize) pass.borderSize = trace.borderSize;\n if (o.borderColor) pass.borderColor = trace.borderColor;\n if (o.opacity) pass.opacity = trace.opacity;\n if (o.range) {\n pass.range = multirange ? getBox(trace.range, i2, j) : trace.range || pass.bounds;\n }\n trace.passes.push(key);\n }\n }\n return this;\n };\n SPLOM.prototype.draw = function(...args) {\n if (!args.length) {\n this.scatter.draw();\n } else {\n let idx = [];\n for (let i = 0; i < args.length; i++) {\n if (typeof args[i] === \"number\") {\n let { passes, passOffset } = this.traces[args[i]];\n idx.push(...arrRange(passOffset, passOffset + passes.length));\n } else if (args[i].length) {\n let els = args[i];\n let { passes, passOffset } = this.traces[i];\n passes = passes.map((passId2, i2) => {\n idx[passOffset + i2] = els;\n });\n }\n }\n this.scatter.draw(...idx);\n }\n return this;\n };\n SPLOM.prototype.destroy = function() {\n this.traces.forEach((trace) => {\n if (trace.buffer && trace.buffer.destroy) trace.buffer.destroy();\n });\n this.traces = null;\n this.passes = null;\n this.scatter.destroy();\n return this;\n };\n function passId(trace, i, j) {\n let id = trace.id != null ? trace.id : trace;\n let n = i;\n let m = j;\n let key = id << 16 | (n & 255) << 8 | m & 255;\n return key;\n }\n function getBox(items, i, j) {\n let ilox, iloy, ihix, ihiy, jlox, jloy, jhix, jhiy;\n let iitem = items[i], jitem = items[j];\n if (iitem.length > 2) {\n ilox = iitem[0];\n ihix = iitem[2];\n iloy = iitem[1];\n ihiy = iitem[3];\n } else if (iitem.length) {\n ilox = iloy = iitem[0];\n ihix = ihiy = iitem[1];\n } else {\n ilox = iitem.x;\n iloy = iitem.y;\n ihix = iitem.x + iitem.width;\n ihiy = iitem.y + iitem.height;\n }\n if (jitem.length > 2) {\n jlox = jitem[0];\n jhix = jitem[2];\n jloy = jitem[1];\n jhiy = jitem[3];\n } else if (jitem.length) {\n jlox = jloy = jitem[0];\n jhix = jhiy = jitem[1];\n } else {\n jlox = jitem.x;\n jloy = jitem.y;\n jhix = jitem.x + jitem.width;\n jhiy = jitem.y + jitem.height;\n }\n return [jlox, iloy, jhix, ihiy];\n }\n function getPad(arg) {\n if (typeof arg === \"number\") return [arg, arg, arg, arg];\n else if (arg.length === 2) return [arg[0], arg[1], arg[0], arg[1]];\n else {\n let box = rect(arg);\n return [box.x, box.y, box.x + box.width, box.y + box.height];\n }\n }\n }\n });\n\n // src/traces/splom/plot.js\n var require_plot20 = __commonJS({\n \"src/traces/splom/plot.js\"(exports, module) {\n \"use strict\";\n var createMatrix = require_regl_splom();\n var Lib = require_lib();\n var AxisIDs = require_axis_ids();\n var selectMode = require_helpers5().selectMode;\n module.exports = function plot(gd, _, splomCalcData) {\n if (!splomCalcData.length) return;\n for (var i = 0; i < splomCalcData.length; i++) {\n plotOne(gd, splomCalcData[i][0]);\n }\n };\n function plotOne(gd, cd0) {\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var trace = cd0.trace;\n var stash = cd0.t;\n var scene = fullLayout._splomScenes[trace.uid];\n var matrixOpts = scene.matrixOptions;\n var cdata = matrixOpts.cdata;\n var regl = fullLayout._glcanvas.data()[0].regl;\n var dragmode = fullLayout.dragmode;\n var xa, ya;\n var i, j, k;\n if (cdata.length === 0) return;\n matrixOpts.lower = trace.showupperhalf;\n matrixOpts.upper = trace.showlowerhalf;\n matrixOpts.diagonal = trace.diagonal.visible;\n var visibleDims = trace._visibleDims;\n var visibleLength = cdata.length;\n var viewOpts = scene.viewOpts = {};\n viewOpts.ranges = new Array(visibleLength);\n viewOpts.domains = new Array(visibleLength);\n for (k = 0; k < visibleDims.length; k++) {\n i = visibleDims[k];\n var rng = viewOpts.ranges[k] = new Array(4);\n var dmn = viewOpts.domains[k] = new Array(4);\n xa = AxisIDs.getFromId(gd, trace._diag[i][0]);\n if (xa) {\n rng[0] = xa._rl[0];\n rng[2] = xa._rl[1];\n dmn[0] = xa.domain[0];\n dmn[2] = xa.domain[1];\n }\n ya = AxisIDs.getFromId(gd, trace._diag[i][1]);\n if (ya) {\n rng[1] = ya._rl[0];\n rng[3] = ya._rl[1];\n dmn[1] = ya.domain[0];\n dmn[3] = ya.domain[1];\n }\n }\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n var l = gs.l * plotGlPixelRatio;\n var b = gs.b * plotGlPixelRatio;\n var w = gs.w * plotGlPixelRatio;\n var h = gs.h * plotGlPixelRatio;\n viewOpts.viewport = [l, b, w + l, h + b];\n if (scene.matrix === true) {\n scene.matrix = createMatrix(regl);\n }\n var clickSelectEnabled = fullLayout.clickmode.indexOf(\"select\") > -1;\n var isSelectMode = selectMode(dragmode) || !!trace.selectedpoints || clickSelectEnabled;\n var needsBaseUpdate = true;\n if (isSelectMode) {\n var commonLength = trace._length;\n if (trace.selectedpoints) {\n scene.selectBatch = trace.selectedpoints;\n var selPts = trace.selectedpoints;\n var selDict = {};\n for (i = 0; i < selPts.length; i++) {\n selDict[selPts[i]] = true;\n }\n var unselPts = [];\n for (i = 0; i < commonLength; i++) {\n if (!selDict[i]) unselPts.push(i);\n }\n scene.unselectBatch = unselPts;\n }\n var xpx = stash.xpx = new Array(visibleLength);\n var ypx = stash.ypx = new Array(visibleLength);\n for (k = 0; k < visibleDims.length; k++) {\n i = visibleDims[k];\n xa = AxisIDs.getFromId(gd, trace._diag[i][0]);\n if (xa) {\n xpx[k] = new Array(commonLength);\n for (j = 0; j < commonLength; j++) {\n xpx[k][j] = xa.c2p(cdata[k][j]);\n }\n }\n ya = AxisIDs.getFromId(gd, trace._diag[i][1]);\n if (ya) {\n ypx[k] = new Array(commonLength);\n for (j = 0; j < commonLength; j++) {\n ypx[k][j] = ya.c2p(cdata[k][j]);\n }\n }\n }\n if (scene.selectBatch.length || scene.unselectBatch.length) {\n var unselOpts = Lib.extendFlat({}, matrixOpts, scene.unselectedOptions, viewOpts);\n var selOpts = Lib.extendFlat({}, matrixOpts, scene.selectedOptions, viewOpts);\n scene.matrix.update(unselOpts, selOpts);\n needsBaseUpdate = false;\n }\n } else {\n stash.xpx = stash.ypx = null;\n }\n if (needsBaseUpdate) {\n var opts = Lib.extendFlat({}, matrixOpts, viewOpts);\n scene.matrix.update(opts, null);\n }\n }\n }\n });\n\n // src/traces/splom/helpers.js\n var require_helpers17 = __commonJS({\n \"src/traces/splom/helpers.js\"(exports) {\n \"use strict\";\n exports.getDimIndex = function getDimIndex(trace, ax) {\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var ind = { x: 0, y: 1 }[axLetter];\n var visibleDims = trace._visibleDims;\n for (var k = 0; k < visibleDims.length; k++) {\n var i = visibleDims[k];\n if (trace._diag[i][ind] === axId) return k;\n }\n return false;\n };\n }\n });\n\n // src/traces/splom/hover.js\n var require_hover17 = __commonJS({\n \"src/traces/splom/hover.js\"(exports, module) {\n \"use strict\";\n var helpers = require_helpers17();\n var calcHover = require_hover16().calcHover;\n var getFromId = require_axes().getFromId;\n var extendFlat = require_extend().extendFlat;\n function hoverPoints(pointData, xval, yval, hovermode, opts) {\n if (!opts) opts = {};\n var hovermodeHasX = (hovermode || \"\").charAt(0) === \"x\";\n var hovermodeHasY = (hovermode || \"\").charAt(0) === \"y\";\n var points = _hoverPoints(pointData, xval, yval);\n if ((hovermodeHasX || hovermodeHasY) && opts.hoversubplots === \"axis\" && points[0]) {\n var subplotsWith = (hovermodeHasX ? pointData.xa : pointData.ya)._subplotsWith;\n var gd = opts.gd;\n var _pointData = extendFlat({}, pointData);\n for (var i = 0; i < subplotsWith.length; i++) {\n var spId = subplotsWith[i];\n if (spId === pointData.xa._id + pointData.ya._id) continue;\n if (hovermodeHasY) {\n _pointData.xa = getFromId(gd, spId, \"x\");\n } else {\n _pointData.ya = getFromId(gd, spId, \"y\");\n }\n var axisHoversubplots = hovermodeHasX || hovermodeHasY;\n var newPoints = _hoverPoints(_pointData, xval, yval, axisHoversubplots);\n points = points.concat(newPoints);\n }\n }\n return points;\n }\n function _hoverPoints(pointData, xval, yval, axisHoversubplots) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var scene = pointData.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var maxDistance = pointData.distance;\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if (xi === false || yi === false) return [pointData];\n var x = cdata[xi];\n var y = cdata[yi];\n var id, dxy;\n var minDist = maxDistance;\n for (var i = 0; i < x.length; i++) {\n if (axisHoversubplots && i !== pointData.index) continue;\n var ptx = x[i];\n var pty = y[i];\n var dx = xa.c2p(ptx) - xpx;\n var dy = ya.c2p(pty) - ypx;\n var dist = Math.sqrt(dx * dx + dy * dy);\n if (axisHoversubplots || dist < minDist) {\n minDist = dxy = dist;\n id = i;\n }\n }\n pointData.index = id;\n pointData.distance = minDist;\n pointData.dxy = dxy;\n if (id === void 0) return [pointData];\n return [calcHover(pointData, x, y, trace)];\n }\n module.exports = {\n hoverPoints\n };\n }\n });\n\n // src/traces/splom/select.js\n var require_select8 = __commonJS({\n \"src/traces/splom/select.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var pushUnique = Lib.pushUnique;\n var subTypes = require_subtypes();\n var helpers = require_helpers17();\n module.exports = function select(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var trace = cd[0].trace;\n var stash = cd[0].t;\n var scene = searchInfo.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n if (!scene) return selection;\n var hasOnlyLines = !subTypes.hasMarkers(trace) && !subTypes.hasText(trace);\n if (trace.visible !== true || hasOnlyLines) return selection;\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if (xi === false || yi === false) return selection;\n var xpx = stash.xpx[xi];\n var ypx = stash.ypx[yi];\n var x = cdata[xi];\n var y = cdata[yi];\n var els = (searchInfo.scene.selectBatch || []).slice();\n var unels = [];\n if (selectionTester !== false && !selectionTester.degenerate) {\n for (var i = 0; i < x.length; i++) {\n if (selectionTester.contains([xpx[i], ypx[i]], null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n x: x[i],\n y: y[i]\n });\n pushUnique(els, i);\n } else if (els.indexOf(i) !== -1) {\n pushUnique(els, i);\n } else {\n unels.push(i);\n }\n }\n }\n var matrixOpts = scene.matrixOptions;\n if (!els.length && !unels.length) {\n scene.matrix.update(matrixOpts, null);\n } else if (!scene.selectBatch.length && !scene.unselectBatch.length) {\n scene.matrix.update(\n scene.unselectedOptions,\n Lib.extendFlat({}, matrixOpts, scene.selectedOptions, scene.viewOpts)\n );\n }\n scene.selectBatch = els;\n scene.unselectBatch = unels;\n return selection;\n };\n }\n });\n\n // src/traces/splom/edit_style.js\n var require_edit_style2 = __commonJS({\n \"src/traces/splom/edit_style.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var calcColorscale = require_colorscale_calc();\n var convertMarkerStyle = require_convert10().markerStyle;\n module.exports = function editStyle(gd, cd0) {\n var trace = cd0.trace;\n var scene = gd._fullLayout._splomScenes[trace.uid];\n if (scene) {\n calcColorscale(gd, trace);\n Lib.extendFlat(scene.matrixOptions, convertMarkerStyle(gd, trace));\n var opts = Lib.extendFlat({}, scene.matrixOptions, scene.viewOpts);\n scene.matrix.update(opts, null);\n }\n };\n }\n });\n\n // src/traces/splom/base_index.js\n var require_base_index2 = __commonJS({\n \"src/traces/splom/base_index.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Grid = require_grid();\n module.exports = {\n moduleType: \"trace\",\n name: \"splom\",\n categories: [\"gl\", \"regl\", \"cartesian\", \"symbols\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes51(),\n supplyDefaults: require_defaults47(),\n colorbar: require_marker_colorbar(),\n calc: require_calc30(),\n plot: require_plot20(),\n hoverPoints: require_hover17().hoverPoints,\n selectPoints: require_select8(),\n editStyle: require_edit_style2(),\n meta: {}\n };\n Registry.register(Grid);\n }\n });\n\n // src/traces/splom/base_plot.js\n var require_base_plot6 = __commonJS({\n \"src/traces/splom/base_plot.js\"(exports, module) {\n \"use strict\";\n var createLine = require_regl_line2d();\n var Registry = require_registry();\n var prepareRegl = require_prepare_regl();\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var Cartesian = require_cartesian();\n var getFromId = require_axis_ids().getFromId;\n var shouldShowZeroLine = require_axes().shouldShowZeroLine;\n var SPLOM = \"splom\";\n var reglPrecompiled = {};\n function plot(gd) {\n var fullLayout = gd._fullLayout;\n var _module = Registry.getModule(SPLOM);\n var splomCalcData = getModuleCalcData(gd.calcdata, _module)[0];\n var success = prepareRegl(gd, [\"ANGLE_instanced_arrays\", \"OES_element_index_uint\"], reglPrecompiled);\n if (!success) return;\n if (fullLayout._hasOnlyLargeSploms) {\n updateGrid(gd);\n }\n _module.plot(gd, {}, splomCalcData);\n }\n function drag(gd) {\n var cd = gd.calcdata;\n var fullLayout = gd._fullLayout;\n if (fullLayout._hasOnlyLargeSploms) {\n updateGrid(gd);\n }\n for (var i = 0; i < cd.length; i++) {\n var cd0 = cd[i][0];\n var trace = cd0.trace;\n var scene = fullLayout._splomScenes[trace.uid];\n if (trace.type === \"splom\" && scene && scene.matrix) {\n dragOne(gd, trace, scene);\n }\n }\n }\n function dragOne(gd, trace, scene) {\n var visibleLength = scene.matrixOptions.data.length;\n var visibleDims = trace._visibleDims;\n var ranges = scene.viewOpts.ranges = new Array(visibleLength);\n for (var k = 0; k < visibleDims.length; k++) {\n var i = visibleDims[k];\n var rng = ranges[k] = new Array(4);\n var xa = getFromId(gd, trace._diag[i][0]);\n if (xa) {\n rng[0] = xa.r2l(xa.range[0]);\n rng[2] = xa.r2l(xa.range[1]);\n }\n var ya = getFromId(gd, trace._diag[i][1]);\n if (ya) {\n rng[1] = ya.r2l(ya.range[0]);\n rng[3] = ya.r2l(ya.range[1]);\n }\n }\n if (scene.selectBatch.length || scene.unselectBatch.length) {\n scene.matrix.update({ ranges }, { ranges });\n } else {\n scene.matrix.update({ ranges });\n }\n }\n function updateGrid(gd) {\n var fullLayout = gd._fullLayout;\n var regl = fullLayout._glcanvas.data()[0].regl;\n var splomGrid = fullLayout._splomGrid;\n if (!splomGrid) {\n splomGrid = fullLayout._splomGrid = createLine(regl);\n }\n splomGrid.update(makeGridData(gd));\n }\n function makeGridData(gd) {\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var fullView = [\n 0,\n 0,\n fullLayout.width * plotGlPixelRatio,\n fullLayout.height * plotGlPixelRatio\n ];\n var lookup = {};\n var k;\n function push(prefix, ax, x0, x1, y0, y1) {\n x0 *= plotGlPixelRatio;\n x1 *= plotGlPixelRatio;\n y0 *= plotGlPixelRatio;\n y1 *= plotGlPixelRatio;\n var lcolor = ax[prefix + \"color\"];\n var lwidth = ax[prefix + \"width\"];\n var key = String(lcolor + lwidth);\n if (key in lookup) {\n lookup[key].data.push(NaN, NaN, x0, x1, y0, y1);\n } else {\n lookup[key] = {\n data: [x0, x1, y0, y1],\n join: \"rect\",\n thickness: lwidth * plotGlPixelRatio,\n color: lcolor,\n viewport: fullView,\n range: fullView,\n overlay: false\n };\n }\n }\n for (k in fullLayout._splomSubplots) {\n var sp = fullLayout._plots[k];\n var xa = sp.xaxis;\n var ya = sp.yaxis;\n var xVals = xa._gridVals;\n var yVals = ya._gridVals;\n var xOffset = xa._offset;\n var xLength = xa._length;\n var yLength = ya._length;\n var yOffset = gs.b + ya.domain[0] * gs.h;\n var ym = -ya._m;\n var yb = -ym * ya.r2l(ya.range[0], ya.calendar);\n var x, y;\n if (xa.showgrid) {\n for (k = 0; k < xVals.length; k++) {\n x = xOffset + xa.l2p(xVals[k].x);\n push(\"grid\", xa, x, yOffset, x, yOffset + yLength);\n }\n }\n if (ya.showgrid) {\n for (k = 0; k < yVals.length; k++) {\n y = yOffset + yb + ym * yVals[k].x;\n push(\"grid\", ya, xOffset, y, xOffset + xLength, y);\n }\n }\n if (shouldShowZeroLine(gd, xa, ya)) {\n x = xOffset + xa.l2p(0);\n push(\"zeroline\", xa, x, yOffset, x, yOffset + yLength);\n }\n if (shouldShowZeroLine(gd, ya, xa)) {\n y = yOffset + yb + 0;\n push(\"zeroline\", ya, xOffset, y, xOffset + xLength, y);\n }\n }\n var gridBatches = [];\n for (k in lookup) {\n gridBatches.push(lookup[k]);\n }\n return gridBatches;\n }\n function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var lookup = {};\n var i;\n if (oldFullLayout._splomScenes) {\n for (i = 0; i < newFullData.length; i++) {\n var newTrace = newFullData[i];\n if (newTrace.type === \"splom\") {\n lookup[newTrace.uid] = 1;\n }\n }\n for (i = 0; i < oldFullData.length; i++) {\n var oldTrace = oldFullData[i];\n if (!lookup[oldTrace.uid]) {\n var scene = oldFullLayout._splomScenes[oldTrace.uid];\n if (scene && scene.destroy) scene.destroy();\n oldFullLayout._splomScenes[oldTrace.uid] = null;\n delete oldFullLayout._splomScenes[oldTrace.uid];\n }\n }\n }\n if (Object.keys(oldFullLayout._splomScenes || {}).length === 0) {\n delete oldFullLayout._splomScenes;\n }\n if (oldFullLayout._splomGrid && (!newFullLayout._hasOnlyLargeSploms && oldFullLayout._hasOnlyLargeSploms)) {\n oldFullLayout._splomGrid.destroy();\n oldFullLayout._splomGrid = null;\n delete oldFullLayout._splomGrid;\n }\n Cartesian.clean(newFullData, newFullLayout, oldFullData, oldFullLayout);\n }\n module.exports = {\n name: SPLOM,\n attr: Cartesian.attr,\n attrRegex: Cartesian.attrRegex,\n layoutAttributes: Cartesian.layoutAttributes,\n supplyLayoutDefaults: Cartesian.supplyLayoutDefaults,\n drawFramework: Cartesian.drawFramework,\n plot,\n drag,\n updateGrid,\n clean,\n updateFx: Cartesian.updateFx,\n toSVG: Cartesian.toSVG,\n reglPrecompiled\n };\n }\n });\n\n // src/traces/splom/index.js\n var require_splom = __commonJS({\n \"src/traces/splom/index.js\"(exports, module) {\n \"use strict\";\n var index = require_base_index2();\n index.basePlotModule = require_base_plot6(), module.exports = index;\n }\n });\n\n // lib/splom.js\n var require_splom2 = __commonJS({\n \"lib/splom.js\"(exports, module) {\n \"use strict\";\n module.exports = require_splom();\n }\n });\n\n // src/traces/parcoords/attributes.js\n var require_attributes52 = __commonJS({\n \"src/traces/parcoords/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axesAttrs = require_layout_attributes4();\n var fontAttrs = require_font_attributes();\n var domainAttrs = require_domain().attributes;\n var extendFlat = require_extend().extendFlat;\n var templatedArray = require_plot_template().templatedArray;\n module.exports = {\n domain: domainAttrs({ name: \"parcoords\", trace: true, editType: \"plot\" }),\n labelangle: {\n valType: \"angle\",\n dflt: 0,\n editType: \"plot\"\n },\n labelside: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\"],\n dflt: \"top\",\n editType: \"plot\"\n },\n labelfont: fontAttrs({\n editType: \"plot\"\n }),\n tickfont: fontAttrs({\n autoShadowDflt: true,\n editType: \"plot\"\n }),\n rangefont: fontAttrs({\n editType: \"plot\"\n }),\n dimensions: templatedArray(\"dimension\", {\n label: {\n valType: \"string\",\n editType: \"plot\"\n },\n // TODO: better way to determine ordinal vs continuous axes,\n // so users can use tickvals/ticktext with a continuous axis.\n tickvals: extendFlat({}, axesAttrs.tickvals, {\n editType: \"plot\"\n }),\n ticktext: extendFlat({}, axesAttrs.ticktext, {\n editType: \"plot\"\n }),\n tickformat: extendFlat({}, axesAttrs.tickformat, {\n editType: \"plot\"\n }),\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"plot\" },\n { valType: \"number\", editType: \"plot\" }\n ],\n editType: \"plot\"\n },\n constraintrange: {\n valType: \"info_array\",\n freeLength: true,\n dimensions: \"1-2\",\n items: [\n { valType: \"any\", editType: \"plot\" },\n { valType: \"any\", editType: \"plot\" }\n ],\n editType: \"plot\"\n },\n multiselect: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n values: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n editType: \"calc\"\n }),\n line: extendFlat(\n { editType: \"calc\" },\n colorScaleAttrs(\"line\", {\n // the default autocolorscale isn't quite usable for parcoords due to context ambiguity around 0 (grey, off-white)\n // autocolorscale therefore defaults to false too, to avoid being overridden by the blue-white-red autocolor palette\n colorscaleDflt: \"Viridis\",\n autoColorDflt: false,\n editTypeOverride: \"calc\"\n })\n ),\n unselected: {\n line: {\n color: {\n valType: \"color\",\n dflt: \"#7f7f7f\",\n editType: \"plot\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: \"auto\",\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n editType: \"plot\"\n }\n };\n }\n });\n\n // src/traces/parcoords/constants.js\n var require_constants24 = __commonJS({\n \"src/traces/parcoords/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n maxDimensionCount: 60,\n // this cannot be increased without WebGL code refactoring\n overdrag: 45,\n verticalPadding: 2,\n // otherwise, horizontal lines on top or bottom are of lower width\n tickDistance: 50,\n canvasPixelRatio: 1,\n blockLineCount: 5e3,\n layers: [\"contextLineLayer\", \"focusLineLayer\", \"pickLineLayer\"],\n axisTitleOffset: 28,\n axisExtentOffset: 10,\n bar: {\n width: 4,\n // Visible width of the filter bar\n captureWidth: 10,\n // Mouse-sensitive width for interaction (Fitts law)\n fillColor: \"magenta\",\n // Color of the filter bar fill\n fillOpacity: 1,\n // Filter bar fill opacity\n snapDuration: 150,\n // tween duration in ms for brush snap for ordinal axes\n snapRatio: 0.25,\n // ratio of bar extension relative to the distance between two adjacent ordinal values\n snapClose: 0.01,\n // fraction of inter-value distance to snap to the closer one, even if you're not over it\n strokeOpacity: 1,\n // Filter bar side stroke opacity\n strokeWidth: 1,\n // Filter bar side stroke width in pixels\n handleHeight: 8,\n // Height of the filter bar vertical resize areas on top and bottom\n handleOpacity: 1,\n // Opacity of the filter bar vertical resize areas on top and bottom\n handleOverlap: 0\n // A larger than 0 value causes overlaps with the filter bar, represented as pixels\n },\n cn: {\n axisExtentText: \"axis-extent-text\",\n parcoordsLineLayers: \"parcoords-line-layers\",\n parcoordsLineLayer: \"parcoords-lines\",\n parcoords: \"parcoords\",\n parcoordsControlView: \"parcoords-control-view\",\n yAxis: \"y-axis\",\n axisOverlays: \"axis-overlays\",\n axis: \"axis\",\n axisHeading: \"axis-heading\",\n axisTitle: \"axis-title\",\n axisExtent: \"axis-extent\",\n axisExtentTop: \"axis-extent-top\",\n axisExtentTopText: \"axis-extent-top-text\",\n axisExtentBottom: \"axis-extent-bottom\",\n axisExtentBottomText: \"axis-extent-bottom-text\",\n axisBrush: \"axis-brush\"\n },\n id: {\n filterBarPattern: \"filter-bar-pattern\"\n }\n };\n }\n });\n\n // src/lib/gup.js\n var require_gup = __commonJS({\n \"src/lib/gup.js\"(exports, module) {\n \"use strict\";\n var identity2 = require_identity2();\n function wrap(d) {\n return [d];\n }\n module.exports = {\n // The D3 data binding concept and the General Update Pattern promotes the idea of\n // traversing into the scenegraph by using the `.data(fun, keyFun)` call.\n // The `fun` is most often a `repeat`, ie. the elements beneath a `` element need\n // access to the same data, or a `descend`, which fans a scenegraph node into a bunch of\n // of elements, e.g. points, lines, rows, requiring an array as input.\n // The role of the `keyFun` is to identify what elements are being entered/exited/updated,\n // otherwise D3 reverts to using a plain index which would screw up `transition`s.\n keyFun: function(d) {\n return d.key;\n },\n repeat: wrap,\n descend: identity2,\n // Plotly.js uses a convention of storing the actual contents of the `calcData` as the\n // element zero of a container array. These helpers are just used for clarity as a\n // newcomer to the codebase may not know what the `[0]` is, and whether there can be further\n // elements (not atm).\n wrap,\n unwrap: function(d) {\n return d[0];\n }\n };\n }\n });\n\n // src/traces/parcoords/axisbrush.js\n var require_axisbrush = __commonJS({\n \"src/traces/parcoords/axisbrush.js\"(exports, module) {\n \"use strict\";\n var c = require_constants24();\n var d3 = require_d3();\n var keyFun = require_gup().keyFun;\n var repeat = require_gup().repeat;\n var sortAsc = require_lib().sorterAsc;\n var strTranslate = require_lib().strTranslate;\n var snapRatio = c.bar.snapRatio;\n function snapOvershoot(v, vAdjacent) {\n return v * (1 - snapRatio) + vAdjacent * snapRatio;\n }\n var snapClose = c.bar.snapClose;\n function closeToCovering(v, vAdjacent) {\n return v * (1 - snapClose) + vAdjacent * snapClose;\n }\n function ordinalScaleSnap(isHigh, a, v, existingRanges) {\n if (overlappingExisting(v, existingRanges)) return v;\n var dir = isHigh ? -1 : 1;\n var first = 0;\n var last = a.length - 1;\n if (dir < 0) {\n var tmp = first;\n first = last;\n last = tmp;\n }\n var aHere = a[first];\n var aPrev = aHere;\n for (var i = first; dir * i < dir * last; i += dir) {\n var nextI = i + dir;\n var aNext = a[nextI];\n if (dir * v < dir * closeToCovering(aHere, aNext)) return snapOvershoot(aHere, aPrev);\n if (dir * v < dir * aNext || nextI === last) return snapOvershoot(aNext, aHere);\n aPrev = aHere;\n aHere = aNext;\n }\n }\n function overlappingExisting(v, existingRanges) {\n for (var i = 0; i < existingRanges.length; i++) {\n if (v >= existingRanges[i][0] && v <= existingRanges[i][1]) return true;\n }\n return false;\n }\n function barHorizontalSetup(selection) {\n selection.attr(\"x\", -c.bar.captureWidth / 2).attr(\"width\", c.bar.captureWidth);\n }\n function backgroundBarHorizontalSetup(selection) {\n selection.attr(\"visibility\", \"visible\").style(\"visibility\", \"visible\").attr(\"fill\", \"yellow\").attr(\"opacity\", 0);\n }\n function setHighlight(d) {\n if (!d.brush.filterSpecified) {\n return \"0,\" + d.height;\n }\n var pixelRanges = unitToPx(d.brush.filter.getConsolidated(), d.height);\n var dashArray = [0];\n var p, sectionHeight, iNext;\n var currentGap = pixelRanges.length ? pixelRanges[0][0] : null;\n for (var i = 0; i < pixelRanges.length; i++) {\n p = pixelRanges[i];\n sectionHeight = p[1] - p[0];\n dashArray.push(currentGap);\n dashArray.push(sectionHeight);\n iNext = i + 1;\n if (iNext < pixelRanges.length) {\n currentGap = pixelRanges[iNext][0] - p[1];\n }\n }\n dashArray.push(d.height);\n return dashArray;\n }\n function unitToPx(unitRanges, height) {\n return unitRanges.map(function(pr) {\n return pr.map(function(v) {\n return Math.max(0, v * height);\n }).sort(sortAsc);\n });\n }\n function getRegion(fPix, y) {\n var pad = c.bar.handleHeight;\n if (y > fPix[1] + pad || y < fPix[0] - pad) return;\n if (y >= 0.9 * fPix[1] + 0.1 * fPix[0]) return \"n\";\n if (y <= 0.9 * fPix[0] + 0.1 * fPix[1]) return \"s\";\n return \"ns\";\n }\n function clearCursor() {\n d3.select(document.body).style(\"cursor\", null);\n }\n function styleHighlight(selection) {\n selection.attr(\"stroke-dasharray\", setHighlight);\n }\n function renderHighlight(root, tweenCallback) {\n var bar = d3.select(root).selectAll(\".highlight, .highlight-shadow\");\n var barToStyle = tweenCallback ? bar.transition().duration(c.bar.snapDuration).each(\"end\", tweenCallback) : bar;\n styleHighlight(barToStyle);\n }\n function getInterval(d, y) {\n var b = d.brush;\n var active = b.filterSpecified;\n var closestInterval = NaN;\n var out = {};\n var i;\n if (active) {\n var height = d.height;\n var intervals = b.filter.getConsolidated();\n var pixIntervals = unitToPx(intervals, height);\n var hoveredInterval = NaN;\n var previousInterval = NaN;\n var nextInterval = NaN;\n for (i = 0; i <= pixIntervals.length; i++) {\n var p = pixIntervals[i];\n if (p && p[0] <= y && y <= p[1]) {\n hoveredInterval = i;\n break;\n } else {\n previousInterval = i ? i - 1 : NaN;\n if (p && p[0] > y) {\n nextInterval = i;\n break;\n }\n }\n }\n closestInterval = hoveredInterval;\n if (isNaN(closestInterval)) {\n if (isNaN(previousInterval) || isNaN(nextInterval)) {\n closestInterval = isNaN(previousInterval) ? nextInterval : previousInterval;\n } else {\n closestInterval = y - pixIntervals[previousInterval][1] < pixIntervals[nextInterval][0] - y ? previousInterval : nextInterval;\n }\n }\n if (!isNaN(closestInterval)) {\n var fPix = pixIntervals[closestInterval];\n var region = getRegion(fPix, y);\n if (region) {\n out.interval = intervals[closestInterval];\n out.intervalPix = fPix;\n out.region = region;\n }\n }\n }\n if (d.ordinal && !out.region) {\n var a = d.unitTickvals;\n var unitLocation = d.unitToPaddedPx.invert(y);\n for (i = 0; i < a.length; i++) {\n var rangei = [\n a[Math.max(i - 1, 0)] * 0.25 + a[i] * 0.75,\n a[Math.min(i + 1, a.length - 1)] * 0.25 + a[i] * 0.75\n ];\n if (unitLocation >= rangei[0] && unitLocation <= rangei[1]) {\n out.clickableOrdinalRange = rangei;\n break;\n }\n }\n }\n return out;\n }\n function dragstart(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var unitLocation = d.unitToPaddedPx.invert(y);\n var b = d.brush;\n var interval = getInterval(d, y);\n var unitRange = interval.interval;\n var s = b.svgBrush;\n s.wasDragged = false;\n s.grabbingBar = interval.region === \"ns\";\n if (s.grabbingBar) {\n var pixelRange = unitRange.map(d.unitToPaddedPx);\n s.grabPoint = y - pixelRange[0] - c.verticalPadding;\n s.barLength = pixelRange[1] - pixelRange[0];\n }\n s.clickableOrdinalRange = interval.clickableOrdinalRange;\n s.stayingIntervals = d.multiselect && b.filterSpecified ? b.filter.getConsolidated() : [];\n if (unitRange) {\n s.stayingIntervals = s.stayingIntervals.filter(function(int2) {\n return int2[0] !== unitRange[0] && int2[1] !== unitRange[1];\n });\n }\n s.startExtent = interval.region ? unitRange[interval.region === \"s\" ? 1 : 0] : unitLocation;\n d.parent.inBrushDrag = true;\n s.brushStartCallback();\n }\n function drag(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var s = d.brush.svgBrush;\n s.wasDragged = true;\n s._dragging = true;\n if (s.grabbingBar) {\n s.newExtent = [y - s.grabPoint, y + s.barLength - s.grabPoint].map(d.unitToPaddedPx.invert);\n } else {\n s.newExtent = [s.startExtent, d.unitToPaddedPx.invert(y)].sort(sortAsc);\n }\n d.brush.filterSpecified = true;\n s.extent = s.stayingIntervals.concat([s.newExtent]);\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n }\n function dragend(lThis, d) {\n var brush = d.brush;\n var filter = brush.filter;\n var s = brush.svgBrush;\n if (!s._dragging) {\n mousemove(lThis, d);\n drag(lThis, d);\n d.brush.svgBrush.wasDragged = false;\n }\n s._dragging = false;\n var e = d3.event;\n e.sourceEvent.stopPropagation();\n var grabbingBar = s.grabbingBar;\n s.grabbingBar = false;\n s.grabLocation = void 0;\n d.parent.inBrushDrag = false;\n clearCursor();\n if (!s.wasDragged) {\n s.wasDragged = void 0;\n if (s.clickableOrdinalRange) {\n if (brush.filterSpecified && d.multiselect) {\n s.extent.push(s.clickableOrdinalRange);\n } else {\n s.extent = [s.clickableOrdinalRange];\n brush.filterSpecified = true;\n }\n } else if (grabbingBar) {\n s.extent = s.stayingIntervals;\n if (s.extent.length === 0) {\n brushClear(brush);\n }\n } else {\n brushClear(brush);\n }\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n return;\n }\n var mergeIntervals = function() {\n filter.set(filter.getConsolidated());\n };\n if (d.ordinal) {\n var a = d.unitTickvals;\n if (a[a.length - 1] < a[0]) a.reverse();\n s.newExtent = [\n ordinalScaleSnap(0, a, s.newExtent[0], s.stayingIntervals),\n ordinalScaleSnap(1, a, s.newExtent[1], s.stayingIntervals)\n ];\n var hasNewExtent = s.newExtent[1] > s.newExtent[0];\n s.extent = s.stayingIntervals.concat(hasNewExtent ? [s.newExtent] : []);\n if (!s.extent.length) {\n brushClear(brush);\n }\n s.brushCallback(d);\n if (hasNewExtent) {\n renderHighlight(lThis.parentNode, mergeIntervals);\n } else {\n mergeIntervals();\n renderHighlight(lThis.parentNode);\n }\n } else {\n mergeIntervals();\n }\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n }\n function mousemove(lThis, d) {\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var interval = getInterval(d, y);\n var cursor = \"crosshair\";\n if (interval.clickableOrdinalRange) cursor = \"pointer\";\n else if (interval.region) cursor = interval.region + \"-resize\";\n d3.select(document.body).style(\"cursor\", cursor);\n }\n function attachDragBehavior(selection) {\n selection.on(\"mousemove\", function(d) {\n d3.event.preventDefault();\n if (!d.parent.inBrushDrag) mousemove(this, d);\n }).on(\"mouseleave\", function(d) {\n if (!d.parent.inBrushDrag) clearCursor();\n }).call(\n d3.behavior.drag().on(\"dragstart\", function(d) {\n dragstart(this, d);\n }).on(\"drag\", function(d) {\n drag(this, d);\n }).on(\"dragend\", function(d) {\n dragend(this, d);\n })\n );\n }\n function startAsc(a, b) {\n return a[0] - b[0];\n }\n function renderAxisBrush(axisBrush, paperColor, gd) {\n var isStatic = gd._context.staticPlot;\n var background = axisBrush.selectAll(\".background\").data(repeat);\n background.enter().append(\"rect\").classed(\"background\", true).call(barHorizontalSetup).call(backgroundBarHorizontalSetup).style(\"pointer-events\", isStatic ? \"none\" : \"auto\").attr(\"transform\", strTranslate(0, c.verticalPadding));\n background.call(attachDragBehavior).attr(\"height\", function(d) {\n return d.height - c.verticalPadding;\n });\n var highlightShadow = axisBrush.selectAll(\".highlight-shadow\").data(repeat);\n highlightShadow.enter().append(\"line\").classed(\"highlight-shadow\", true).attr(\"x\", -c.bar.width / 2).attr(\"stroke-width\", c.bar.width + c.bar.strokeWidth).attr(\"stroke\", paperColor).attr(\"opacity\", c.bar.strokeOpacity).attr(\"stroke-linecap\", \"butt\");\n highlightShadow.attr(\"y1\", function(d) {\n return d.height;\n }).call(styleHighlight);\n var highlight = axisBrush.selectAll(\".highlight\").data(repeat);\n highlight.enter().append(\"line\").classed(\"highlight\", true).attr(\"x\", -c.bar.width / 2).attr(\"stroke-width\", c.bar.width - c.bar.strokeWidth).attr(\"stroke\", c.bar.fillColor).attr(\"opacity\", c.bar.fillOpacity).attr(\"stroke-linecap\", \"butt\");\n highlight.attr(\"y1\", function(d) {\n return d.height;\n }).call(styleHighlight);\n }\n function ensureAxisBrush(axisOverlays, paperColor, gd) {\n var axisBrush = axisOverlays.selectAll(\".\" + c.cn.axisBrush).data(repeat, keyFun);\n axisBrush.enter().append(\"g\").classed(c.cn.axisBrush, true);\n renderAxisBrush(axisBrush, paperColor, gd);\n }\n function getBrushExtent(brush) {\n return brush.svgBrush.extent.map(function(e) {\n return e.slice();\n });\n }\n function brushClear(brush) {\n brush.filterSpecified = false;\n brush.svgBrush.extent = [[-Infinity, Infinity]];\n }\n function axisBrushMoved(callback) {\n return function axisBrushMoved2(dimension) {\n var brush = dimension.brush;\n var extent = getBrushExtent(brush);\n var newExtent = extent.slice();\n brush.filter.set(newExtent);\n callback();\n };\n }\n function dedupeRealRanges(intervals) {\n var queue = intervals.slice();\n var result = [];\n var currentInterval;\n var current = queue.shift();\n while (current) {\n currentInterval = current.slice();\n while ((current = queue.shift()) && current[0] <= /* right-open interval would need `<` */\n currentInterval[1]) {\n currentInterval[1] = Math.max(currentInterval[1], current[1]);\n }\n result.push(currentInterval);\n }\n if (result.length === 1 && result[0][0] > result[0][1]) {\n result = [];\n }\n return result;\n }\n function makeFilter() {\n var filter = [];\n var consolidated;\n var bounds;\n return {\n set: function(a) {\n filter = a.map(function(d) {\n return d.slice().sort(sortAsc);\n }).sort(startAsc);\n if (filter.length === 1 && filter[0][0] === -Infinity && filter[0][1] === Infinity) {\n filter = [[0, -1]];\n }\n consolidated = dedupeRealRanges(filter);\n bounds = filter.reduce(function(p, n) {\n return [Math.min(p[0], n[0]), Math.max(p[1], n[1])];\n }, [Infinity, -Infinity]);\n },\n get: function() {\n return filter.slice();\n },\n getConsolidated: function() {\n return consolidated;\n },\n getBounds: function() {\n return bounds;\n }\n };\n }\n function makeBrush(state, rangeSpecified, initialRange, brushStartCallback, brushCallback, brushEndCallback) {\n var filter = makeFilter();\n filter.set(initialRange);\n return {\n filter,\n filterSpecified: rangeSpecified,\n // there's a difference between not filtering and filtering a non-proper subset\n svgBrush: {\n extent: [],\n // this is where the svgBrush writes contents into\n brushStartCallback,\n brushCallback: axisBrushMoved(brushCallback),\n brushEndCallback\n }\n };\n }\n function cleanRanges(ranges, dimension) {\n if (Array.isArray(ranges[0])) {\n ranges = ranges.map(function(ri) {\n return ri.sort(sortAsc);\n });\n if (!dimension.multiselect) ranges = [ranges[0]];\n else ranges = dedupeRealRanges(ranges.sort(startAsc));\n } else ranges = [ranges.sort(sortAsc)];\n if (dimension.tickvals) {\n var sortedTickVals = dimension.tickvals.slice().sort(sortAsc);\n ranges = ranges.map(function(ri) {\n var rSnapped = [\n ordinalScaleSnap(0, sortedTickVals, ri[0], []),\n ordinalScaleSnap(1, sortedTickVals, ri[1], [])\n ];\n if (rSnapped[1] > rSnapped[0]) return rSnapped;\n }).filter(function(ri) {\n return ri;\n });\n if (!ranges.length) return;\n }\n return ranges.length > 1 ? ranges : ranges[0];\n }\n module.exports = {\n makeBrush,\n ensureAxisBrush,\n cleanRanges\n };\n }\n });\n\n // src/traces/parcoords/defaults.js\n var require_defaults48 = __commonJS({\n \"src/traces/parcoords/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n var handleDomainDefaults = require_domain().defaults;\n var handleArrayContainerDefaults = require_array_container_defaults();\n var Axes = require_axes();\n var attributes = require_attributes52();\n var axisBrush = require_axisbrush();\n var maxDimensionCount = require_constants24().maxDimensionCount;\n var mergeLength = require_merge_length();\n function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n var lineColor = coerce(\"line.color\", defaultColor);\n if (hasColorscale(traceIn, \"line\") && Lib.isArrayOrTypedArray(lineColor)) {\n if (lineColor.length) {\n coerce(\"line.colorscale\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"line.\", cLetter: \"c\" });\n return lineColor.length;\n } else {\n traceOut.line.color = defaultColor;\n }\n }\n return Infinity;\n }\n function dimensionDefaults(dimensionIn, dimensionOut, parentOut, opts) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimensionIn, dimensionOut, attributes.dimensions, attr, dflt);\n }\n var values = coerce(\"values\");\n var visible = coerce(\"visible\");\n if (!(values && values.length)) {\n visible = dimensionOut.visible = false;\n }\n if (visible) {\n coerce(\"label\");\n coerce(\"tickvals\");\n coerce(\"ticktext\");\n coerce(\"tickformat\");\n var range = coerce(\"range\");\n dimensionOut._ax = {\n _id: \"y\",\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\",\n range\n };\n Axes.setConvert(dimensionOut._ax, opts.layout);\n coerce(\"multiselect\");\n var constraintRange = coerce(\"constraintrange\");\n if (constraintRange) {\n dimensionOut.constraintrange = axisBrush.cleanRanges(constraintRange, dimensionOut);\n }\n }\n }\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var dimensionsIn = traceIn.dimensions;\n if (Array.isArray(dimensionsIn) && dimensionsIn.length > maxDimensionCount) {\n Lib.log(\"parcoords traces support up to \" + maxDimensionCount + \" dimensions at the moment\");\n dimensionsIn.splice(maxDimensionCount);\n }\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: \"dimensions\",\n layout,\n handleItemDefaults: dimensionDefaults\n });\n var len = handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleDomainDefaults(traceOut, layout, coerce);\n if (!Array.isArray(dimensions) || !dimensions.length) {\n traceOut.visible = false;\n }\n mergeLength(traceOut, dimensions, \"values\", len);\n var fontDflt = Lib.extendFlat({}, layout.font, {\n size: Math.round(layout.font.size / 1.2)\n });\n Lib.coerceFont(coerce, \"labelfont\", fontDflt);\n Lib.coerceFont(coerce, \"tickfont\", fontDflt, { autoShadowDflt: true });\n Lib.coerceFont(coerce, \"rangefont\", fontDflt);\n coerce(\"labelangle\");\n coerce(\"labelside\");\n coerce(\"unselected.line.color\");\n coerce(\"unselected.line.opacity\");\n };\n }\n });\n\n // src/traces/parcoords/calc.js\n var require_calc31 = __commonJS({\n \"src/traces/parcoords/calc.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var Colorscale = require_colorscale();\n var wrap = require_gup().wrap;\n module.exports = function calc(gd, trace) {\n var lineColor;\n var cscale;\n if (Colorscale.hasColorscale(trace, \"line\") && isArrayOrTypedArray(trace.line.color)) {\n lineColor = trace.line.color;\n cscale = Colorscale.extractOpts(trace.line).colorscale;\n Colorscale.calc(gd, trace, {\n vals: lineColor,\n containerStr: \"line\",\n cLetter: \"c\"\n });\n } else {\n lineColor = constHalf(trace._length);\n cscale = [[0, trace.line.color], [1, trace.line.color]];\n }\n return wrap({ lineColor, cscale });\n };\n function constHalf(len) {\n var out = new Array(len);\n for (var i = 0; i < len; i++) {\n out[i] = 0.5;\n }\n return out;\n }\n }\n });\n\n // node_modules/color-parse/index.js\n function parse(cstr) {\n var _a, _b;\n var m, parts = [], alpha = 1, space;\n if (typeof cstr === \"number\") {\n return { space: \"rgb\", values: [cstr >>> 16, (cstr & 65280) >>> 8, cstr & 255], alpha: 1 };\n }\n if (typeof cstr === \"number\") return { space: \"rgb\", values: [cstr >>> 16, (cstr & 65280) >>> 8, cstr & 255], alpha: 1 };\n cstr = String(cstr).toLowerCase();\n if (import_color_name.default[cstr]) {\n parts = import_color_name.default[cstr].slice();\n space = \"rgb\";\n } else if (cstr === \"transparent\") {\n alpha = 0;\n space = \"rgb\";\n parts = [0, 0, 0];\n } else if (cstr[0] === \"#\") {\n var base = cstr.slice(1);\n var size = base.length;\n var isShort = size <= 4;\n alpha = 1;\n if (isShort) {\n parts = [\n parseInt(base[0] + base[0], 16),\n parseInt(base[1] + base[1], 16),\n parseInt(base[2] + base[2], 16)\n ];\n if (size === 4) {\n alpha = parseInt(base[3] + base[3], 16) / 255;\n }\n } else {\n parts = [\n parseInt(base[0] + base[1], 16),\n parseInt(base[2] + base[3], 16),\n parseInt(base[4] + base[5], 16)\n ];\n if (size === 8) {\n alpha = parseInt(base[6] + base[7], 16) / 255;\n }\n }\n if (!parts[0]) parts[0] = 0;\n if (!parts[1]) parts[1] = 0;\n if (!parts[2]) parts[2] = 0;\n space = \"rgb\";\n } else if (m = /^((?:rgba?|hs[lvb]a?|hwba?|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms|oklch|oklab|color))\\s*\\(([^\\)]*)\\)/.exec(cstr)) {\n var name2 = m[1];\n space = name2.replace(/a$/, \"\");\n var dims = space === \"cmyk\" ? 4 : space === \"gray\" ? 1 : 3;\n parts = m[2].trim().split(/\\s*[,\\/]\\s*|\\s+/);\n if (space === \"color\") space = parts.shift();\n parts = parts.map(function(x, i) {\n if (x[x.length - 1] === \"%\") {\n x = parseFloat(x) / 100;\n if (i === 3) return x;\n if (space === \"rgb\") return x * 255;\n if (space[0] === \"h\") return x * 100;\n if (space[0] === \"l\" && !i) return x * 100;\n if (space === \"lab\") return x * 125;\n if (space === \"lch\") return i < 2 ? x * 150 : x * 360;\n if (space[0] === \"o\" && !i) return x;\n if (space === \"oklab\") return x * 0.4;\n if (space === \"oklch\") return i < 2 ? x * 0.4 : x * 360;\n return x;\n }\n if (space[i] === \"h\" || i === 2 && space[space.length - 1] === \"h\") {\n if (baseHues[x] !== void 0) return baseHues[x];\n if (x.endsWith(\"deg\")) return parseFloat(x);\n if (x.endsWith(\"turn\")) return parseFloat(x) * 360;\n if (x.endsWith(\"grad\")) return parseFloat(x) * 360 / 400;\n if (x.endsWith(\"rad\")) return parseFloat(x) * 180 / Math.PI;\n }\n if (x === \"none\") return 0;\n return parseFloat(x);\n });\n alpha = parts.length > dims ? parts.pop() : 1;\n } else if (/[0-9](?:\\s|\\/|,)/.test(cstr)) {\n parts = cstr.match(/([0-9]+)/g).map(function(value) {\n return parseFloat(value);\n });\n space = ((_b = (_a = cstr.match(/([a-z])/ig)) == null ? void 0 : _a.join(\"\")) == null ? void 0 : _b.toLowerCase()) || \"rgb\";\n }\n return {\n space,\n values: parts,\n alpha\n };\n }\n var import_color_name, color_parse_default, baseHues;\n var init_color_parse = __esm({\n \"node_modules/color-parse/index.js\"() {\n import_color_name = __toESM(require_color_name(), 1);\n color_parse_default = parse;\n baseHues = {\n red: 0,\n orange: 60,\n yellow: 120,\n green: 180,\n blue: 240,\n purple: 300\n };\n }\n });\n\n // node_modules/color-space/rgb.js\n var rgb_default2;\n var init_rgb2 = __esm({\n \"node_modules/color-space/rgb.js\"() {\n rgb_default2 = {\n name: \"rgb\",\n min: [0, 0, 0],\n max: [255, 255, 255],\n channel: [\"red\", \"green\", \"blue\"],\n alias: [\"RGB\"]\n };\n }\n });\n\n // node_modules/color-space/hsl.js\n var hsl_default2;\n var init_hsl2 = __esm({\n \"node_modules/color-space/hsl.js\"() {\n init_rgb2();\n hsl_default2 = {\n name: \"hsl\",\n min: [0, 0, 0],\n max: [360, 100, 100],\n channel: [\"hue\", \"saturation\", \"lightness\"],\n alias: [\"HSL\"],\n rgb: function(hsl3) {\n var h = hsl3[0] / 360, s = hsl3[1] / 100, l = hsl3[2] / 100, t12, t22, t32, rgb2, val, i = 0;\n if (s === 0) return val = l * 255, [val, val, val];\n t22 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n t12 = 2 * l - t22;\n rgb2 = [0, 0, 0];\n for (; i < 3; ) {\n t32 = h + 1 / 3 * -(i - 1);\n t32 < 0 ? t32++ : t32 > 1 && t32--;\n val = 6 * t32 < 1 ? t12 + (t22 - t12) * 6 * t32 : 2 * t32 < 1 ? t22 : 3 * t32 < 2 ? t12 + (t22 - t12) * (2 / 3 - t32) * 6 : t12;\n rgb2[i++] = val * 255;\n }\n return rgb2;\n }\n };\n rgb_default2.hsl = function(rgb2) {\n var r = rgb2[0] / 255, g = rgb2[1] / 255, b = rgb2[2] / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), delta = max - min, h, s, l;\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n h = Math.min(h * 60, 360);\n if (h < 0) {\n h += 360;\n }\n l = (min + max) / 2;\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n return [h, s * 100, l * 100];\n };\n }\n });\n\n // node_modules/color-rgba/index.js\n var color_rgba_exports = {};\n __export(color_rgba_exports, {\n default: () => rgba2\n });\n function rgba2(color2) {\n if (Array.isArray(color2) && color2.raw) color2 = String.raw(...arguments);\n if (color2 instanceof Number) color2 = +color2;\n var values, i, l;\n var parsed = color_parse_default(color2);\n if (!parsed.space) return [];\n const min = parsed.space[0] === \"h\" ? hsl_default2.min : rgb_default2.min;\n const max = parsed.space[0] === \"h\" ? hsl_default2.max : rgb_default2.max;\n values = Array(3);\n values[0] = Math.min(Math.max(parsed.values[0], min[0]), max[0]);\n values[1] = Math.min(Math.max(parsed.values[1], min[1]), max[1]);\n values[2] = Math.min(Math.max(parsed.values[2], min[2]), max[2]);\n if (parsed.space[0] === \"h\") {\n values = hsl_default2.rgb(values);\n }\n values.push(Math.min(Math.max(parsed.alpha, 0), 1));\n return values;\n }\n var init_color_rgba = __esm({\n \"node_modules/color-rgba/index.js\"() {\n init_color_parse();\n init_rgb2();\n init_hsl2();\n }\n });\n\n // src/traces/parcoords/helpers.js\n var require_helpers18 = __commonJS({\n \"src/traces/parcoords/helpers.js\"(exports) {\n \"use strict\";\n var isTypedArray = require_lib().isTypedArray;\n exports.convertTypedArray = function(a) {\n return isTypedArray(a) ? Array.prototype.slice.call(a) : a;\n };\n exports.isOrdinal = function(dimension) {\n return !!dimension.tickvals;\n };\n exports.isVisible = function(dimension) {\n return dimension.visible || !(\"visible\" in dimension);\n };\n }\n });\n\n // src/traces/parcoords/lines.js\n var require_lines = __commonJS({\n \"src/traces/parcoords/lines.js\"(exports, module) {\n \"use strict\";\n var vertexShaderSource = [\n \"precision highp float;\",\n \"\",\n \"varying vec4 fragColor;\",\n \"\",\n \"attribute vec4 p01_04, p05_08, p09_12, p13_16,\",\n \" p17_20, p21_24, p25_28, p29_32,\",\n \" p33_36, p37_40, p41_44, p45_48,\",\n \" p49_52, p53_56, p57_60, colors;\",\n \"\",\n \"uniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\",\n \" loA, hiA, loB, hiB, loC, hiC, loD, hiD;\",\n \"\",\n \"uniform vec2 resolution, viewBoxPos, viewBoxSize;\",\n \"uniform float maskHeight;\",\n \"uniform float drwLayer; // 0: context, 1: focus, 2: pick\",\n \"uniform vec4 contextColor;\",\n \"uniform sampler2D maskTexture, palette;\",\n \"\",\n \"bool isPick = (drwLayer > 1.5);\",\n \"bool isContext = (drwLayer < 0.5);\",\n \"\",\n \"const vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\",\n \"const vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\",\n \"\",\n \"float val(mat4 p, mat4 v) {\",\n \" return dot(matrixCompMult(p, v) * UNITS, UNITS);\",\n \"}\",\n \"\",\n \"float axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\",\n \" float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\",\n \" float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\",\n \" return y1 * (1.0 - ratio) + y2 * ratio;\",\n \"}\",\n \"\",\n \"int iMod(int a, int b) {\",\n \" return a - b * (a / b);\",\n \"}\",\n \"\",\n \"bool fOutside(float p, float lo, float hi) {\",\n \" return (lo < hi) && (lo > p || p > hi);\",\n \"}\",\n \"\",\n \"bool vOutside(vec4 p, vec4 lo, vec4 hi) {\",\n \" return (\",\n \" fOutside(p[0], lo[0], hi[0]) ||\",\n \" fOutside(p[1], lo[1], hi[1]) ||\",\n \" fOutside(p[2], lo[2], hi[2]) ||\",\n \" fOutside(p[3], lo[3], hi[3])\",\n \" );\",\n \"}\",\n \"\",\n \"bool mOutside(mat4 p, mat4 lo, mat4 hi) {\",\n \" return (\",\n \" vOutside(p[0], lo[0], hi[0]) ||\",\n \" vOutside(p[1], lo[1], hi[1]) ||\",\n \" vOutside(p[2], lo[2], hi[2]) ||\",\n \" vOutside(p[3], lo[3], hi[3])\",\n \" );\",\n \"}\",\n \"\",\n \"bool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\",\n \" return mOutside(A, loA, hiA) ||\",\n \" mOutside(B, loB, hiB) ||\",\n \" mOutside(C, loC, hiC) ||\",\n \" mOutside(D, loD, hiD);\",\n \"}\",\n \"\",\n \"bool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\",\n \" mat4 pnts[4];\",\n \" pnts[0] = A;\",\n \" pnts[1] = B;\",\n \" pnts[2] = C;\",\n \" pnts[3] = D;\",\n \"\",\n \" for(int i = 0; i < 4; ++i) {\",\n \" for(int j = 0; j < 4; ++j) {\",\n \" for(int k = 0; k < 4; ++k) {\",\n \" if(0 == iMod(\",\n \" int(255.0 * texture2D(maskTexture,\",\n \" vec2(\",\n \" (float(i * 2 + j / 2) + 0.5) / 8.0,\",\n \" (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\",\n \" ))[3]\",\n \" ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\",\n \" 2\",\n \" )) return true;\",\n \" }\",\n \" }\",\n \" }\",\n \" return false;\",\n \"}\",\n \"\",\n \"vec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\",\n \" float x = 0.5 * sign(v) + 0.5;\",\n \" float y = axisY(x, A, B, C, D);\",\n \" float z = 1.0 - abs(v);\",\n \"\",\n \" z += isContext ? 0.0 : 2.0 * float(\",\n \" outsideBoundingBox(A, B, C, D) ||\",\n \" outsideRasterMask(A, B, C, D)\",\n \" );\",\n \"\",\n \" return vec4(\",\n \" 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\",\n \" z,\",\n \" 1.0\",\n \" );\",\n \"}\",\n \"\",\n \"void main() {\",\n \" mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\",\n \" mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\",\n \" mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\",\n \" mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\",\n \"\",\n \" float v = colors[3];\",\n \"\",\n \" gl_Position = position(isContext, v, A, B, C, D);\",\n \"\",\n \" fragColor =\",\n \" isContext ? vec4(contextColor) :\",\n \" isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\",\n \"}\"\n ].join(\"\\n\");\n var fragmentShaderSource = [\n \"precision highp float;\",\n \"\",\n \"varying vec4 fragColor;\",\n \"\",\n \"void main() {\",\n \" gl_FragColor = fragColor;\",\n \"}\"\n ].join(\"\\n\");\n var maxDim = require_constants24().maxDimensionCount;\n var Lib = require_lib();\n var depthLimitEpsilon = 1e-6;\n var maskHeight = 2048;\n var dummyPixel = new Uint8Array(4);\n var dataPixel = new Uint8Array(4);\n var paletteTextureConfig = {\n shape: [256, 1],\n format: \"rgba\",\n type: \"uint8\",\n mag: \"nearest\",\n min: \"nearest\"\n };\n function ensureDraw(regl) {\n regl.read({\n x: 0,\n y: 0,\n width: 1,\n height: 1,\n data: dummyPixel\n });\n }\n function clear(regl, x, y, width, height) {\n var gl2 = regl._gl;\n gl2.enable(gl2.SCISSOR_TEST);\n gl2.scissor(x, y, width, height);\n regl.clear({ color: [0, 0, 0, 0], depth: 1 });\n }\n function renderBlock(regl, glAes, renderState, blockLineCount, sampleCount, item) {\n var rafKey = item.key;\n function render(blockNumber) {\n var count = Math.min(blockLineCount, sampleCount - blockNumber * blockLineCount);\n if (blockNumber === 0) {\n window.cancelAnimationFrame(renderState.currentRafs[rafKey]);\n delete renderState.currentRafs[rafKey];\n clear(regl, item.scissorX, item.scissorY, item.scissorWidth, item.viewBoxSize[1]);\n }\n if (renderState.clearOnly) {\n return;\n }\n item.count = 2 * count;\n item.offset = 2 * blockNumber * blockLineCount;\n glAes(item);\n if (blockNumber * blockLineCount + count < sampleCount) {\n renderState.currentRafs[rafKey] = window.requestAnimationFrame(function() {\n render(blockNumber + 1);\n });\n }\n renderState.drawCompleted = false;\n }\n if (!renderState.drawCompleted) {\n ensureDraw(regl);\n renderState.drawCompleted = true;\n }\n render(0);\n }\n function adjustDepth(d) {\n return Math.max(depthLimitEpsilon, Math.min(1 - depthLimitEpsilon, d));\n }\n function palette(unitToColor, opacity) {\n var result = new Array(256);\n for (var i = 0; i < 256; i++) {\n result[i] = unitToColor(i / 255).concat(opacity);\n }\n return result;\n }\n function calcPickColor(i, rgbIndex) {\n return (i >>> 8 * rgbIndex) % 256 / 255;\n }\n function makePoints(sampleCount, dims, color2) {\n var points = new Array(sampleCount * (maxDim + 4));\n var n = 0;\n for (var i = 0; i < sampleCount; i++) {\n for (var k = 0; k < maxDim; k++) {\n points[n++] = k < dims.length ? dims[k].paddedUnitValues[i] : 0.5;\n }\n points[n++] = calcPickColor(i, 2);\n points[n++] = calcPickColor(i, 1);\n points[n++] = calcPickColor(i, 0);\n points[n++] = adjustDepth(color2[i]);\n }\n return points;\n }\n function makeVecAttr(vecIndex, sampleCount, points) {\n var pointPairs = new Array(sampleCount * 8);\n var n = 0;\n for (var i = 0; i < sampleCount; i++) {\n for (var j = 0; j < 2; j++) {\n for (var k = 0; k < 4; k++) {\n var q = vecIndex * 4 + k;\n var v = points[i * 64 + q];\n if (q === 63 && j === 0) {\n v *= -1;\n }\n pointPairs[n++] = v;\n }\n }\n }\n return pointPairs;\n }\n function pad2(num) {\n var s = \"0\" + num;\n return s.substr(s.length - 2);\n }\n function getAttrName(i) {\n return i < maxDim ? \"p\" + pad2(i + 1) + \"_\" + pad2(i + 4) : \"colors\";\n }\n function setAttributes(attributes, sampleCount, points) {\n for (var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)](makeVecAttr(i / 4, sampleCount, points));\n }\n }\n function emptyAttributes(regl) {\n var attributes = {};\n for (var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)] = regl.buffer({ usage: \"dynamic\", type: \"float\", data: new Uint8Array(0) });\n }\n return attributes;\n }\n function makeItem(model, leftmost, rightmost, itemNumber, i0, i1, x, y, panelSizeX, panelSizeY, crossfilterDimensionIndex, drwLayer, constraints, plotGlPixelRatio) {\n var dims = [[], []];\n for (var k = 0; k < 64; k++) {\n dims[0][k] = k === i0 ? 1 : 0;\n dims[1][k] = k === i1 ? 1 : 0;\n }\n x *= plotGlPixelRatio;\n y *= plotGlPixelRatio;\n panelSizeX *= plotGlPixelRatio;\n panelSizeY *= plotGlPixelRatio;\n var overdrag = model.lines.canvasOverdrag * plotGlPixelRatio;\n var domain = model.domain;\n var canvasWidth = model.canvasWidth * plotGlPixelRatio;\n var canvasHeight = model.canvasHeight * plotGlPixelRatio;\n var padL = model.pad.l * plotGlPixelRatio;\n var padB = model.pad.b * plotGlPixelRatio;\n var layoutHeight = model.layoutHeight * plotGlPixelRatio;\n var layoutWidth = model.layoutWidth * plotGlPixelRatio;\n var deselectedLinesColor = model.deselectedLines.color;\n var deselectedLinesOpacity = model.deselectedLines.opacity;\n var itemModel = Lib.extendFlat({\n key: crossfilterDimensionIndex,\n resolution: [canvasWidth, canvasHeight],\n viewBoxPos: [x + overdrag, y],\n viewBoxSize: [panelSizeX, panelSizeY],\n i0,\n i1,\n dim0A: dims[0].slice(0, 16),\n dim0B: dims[0].slice(16, 32),\n dim0C: dims[0].slice(32, 48),\n dim0D: dims[0].slice(48, 64),\n dim1A: dims[1].slice(0, 16),\n dim1B: dims[1].slice(16, 32),\n dim1C: dims[1].slice(32, 48),\n dim1D: dims[1].slice(48, 64),\n drwLayer,\n contextColor: [\n deselectedLinesColor[0] / 255,\n deselectedLinesColor[1] / 255,\n deselectedLinesColor[2] / 255,\n deselectedLinesOpacity !== \"auto\" ? deselectedLinesColor[3] * deselectedLinesOpacity : Math.max(1 / 255, Math.pow(1 / model.lines.color.length, 1 / 3))\n ],\n scissorX: (itemNumber === leftmost ? 0 : x + overdrag) + (padL - overdrag) + layoutWidth * domain.x[0],\n scissorWidth: (itemNumber === rightmost ? canvasWidth - x + overdrag : panelSizeX + 0.5) + (itemNumber === leftmost ? x + overdrag : 0),\n scissorY: y + padB + layoutHeight * domain.y[0],\n scissorHeight: panelSizeY,\n viewportX: padL - overdrag + layoutWidth * domain.x[0],\n viewportY: padB + layoutHeight * domain.y[0],\n viewportWidth: canvasWidth,\n viewportHeight: canvasHeight\n }, constraints);\n return itemModel;\n }\n function expandedPixelRange(bounds) {\n var dh = maskHeight - 1;\n var a = Math.max(0, Math.floor(bounds[0] * dh), 0);\n var b = Math.min(dh, Math.ceil(bounds[1] * dh), dh);\n return [\n Math.min(a, b),\n Math.max(a, b)\n ];\n }\n module.exports = function(canvasGL, d) {\n var isContext = d.context;\n var isPick = d.pick;\n var regl = d.regl;\n var gl2 = regl._gl;\n var supportedLineWidth = gl2.getParameter(gl2.ALIASED_LINE_WIDTH_RANGE);\n var plotGlPixelRatio = Math.max(\n supportedLineWidth[0],\n Math.min(\n supportedLineWidth[1],\n d.viewModel.plotGlPixelRatio\n )\n );\n var renderState = {\n currentRafs: {},\n drawCompleted: true,\n clearOnly: false\n };\n var model;\n var vm;\n var initialDims;\n var sampleCount;\n var attributes = emptyAttributes(regl);\n var maskTexture;\n var paletteTexture = regl.texture(paletteTextureConfig);\n var prevAxisOrder = [];\n update(d);\n var glAes = regl({\n profile: false,\n blend: {\n enable: isContext,\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: 1,\n dstAlpha: 1\n // 'one minus src alpha'\n },\n equation: {\n rgb: \"add\",\n alpha: \"add\"\n },\n color: [0, 0, 0, 0]\n },\n depth: {\n enable: !isContext,\n mask: true,\n func: \"less\",\n range: [0, 1]\n },\n // for polygons\n cull: {\n enable: true,\n face: \"back\"\n },\n scissor: {\n enable: true,\n box: {\n x: regl.prop(\"scissorX\"),\n y: regl.prop(\"scissorY\"),\n width: regl.prop(\"scissorWidth\"),\n height: regl.prop(\"scissorHeight\")\n }\n },\n viewport: {\n x: regl.prop(\"viewportX\"),\n y: regl.prop(\"viewportY\"),\n width: regl.prop(\"viewportWidth\"),\n height: regl.prop(\"viewportHeight\")\n },\n dither: false,\n vert: vertexShaderSource,\n frag: fragmentShaderSource,\n primitive: \"lines\",\n lineWidth: plotGlPixelRatio,\n attributes,\n uniforms: {\n resolution: regl.prop(\"resolution\"),\n viewBoxPos: regl.prop(\"viewBoxPos\"),\n viewBoxSize: regl.prop(\"viewBoxSize\"),\n dim0A: regl.prop(\"dim0A\"),\n dim1A: regl.prop(\"dim1A\"),\n dim0B: regl.prop(\"dim0B\"),\n dim1B: regl.prop(\"dim1B\"),\n dim0C: regl.prop(\"dim0C\"),\n dim1C: regl.prop(\"dim1C\"),\n dim0D: regl.prop(\"dim0D\"),\n dim1D: regl.prop(\"dim1D\"),\n loA: regl.prop(\"loA\"),\n hiA: regl.prop(\"hiA\"),\n loB: regl.prop(\"loB\"),\n hiB: regl.prop(\"hiB\"),\n loC: regl.prop(\"loC\"),\n hiC: regl.prop(\"hiC\"),\n loD: regl.prop(\"loD\"),\n hiD: regl.prop(\"hiD\"),\n palette: paletteTexture,\n contextColor: regl.prop(\"contextColor\"),\n maskTexture: regl.prop(\"maskTexture\"),\n drwLayer: regl.prop(\"drwLayer\"),\n maskHeight: regl.prop(\"maskHeight\")\n },\n offset: regl.prop(\"offset\"),\n count: regl.prop(\"count\")\n });\n function update(dNew) {\n model = dNew.model;\n vm = dNew.viewModel;\n initialDims = vm.dimensions.slice();\n sampleCount = initialDims[0] ? initialDims[0].values.length : 0;\n var lines = model.lines;\n var color2 = isPick ? lines.color.map(function(_, i) {\n return i / lines.color.length;\n }) : lines.color;\n var points = makePoints(sampleCount, initialDims, color2);\n setAttributes(attributes, sampleCount, points);\n if (!isContext && !isPick) {\n paletteTexture = regl.texture(Lib.extendFlat({\n data: palette(model.unitToColor, 255)\n }, paletteTextureConfig));\n }\n }\n function makeConstraints(isContext2) {\n var i, j, k;\n var limits = [[], []];\n for (k = 0; k < 64; k++) {\n var p = !isContext2 && k < initialDims.length ? initialDims[k].brush.filter.getBounds() : [-Infinity, Infinity];\n limits[0][k] = p[0];\n limits[1][k] = p[1];\n }\n var len = maskHeight * 8;\n var mask = new Array(len);\n for (i = 0; i < len; i++) {\n mask[i] = 255;\n }\n if (!isContext2) {\n for (i = 0; i < initialDims.length; i++) {\n var u = i % 8;\n var v = (i - u) / 8;\n var bitMask = Math.pow(2, u);\n var dim = initialDims[i];\n var ranges = dim.brush.filter.get();\n if (ranges.length < 2) continue;\n var prevEnd = expandedPixelRange(ranges[0])[1];\n for (j = 1; j < ranges.length; j++) {\n var nextRange = expandedPixelRange(ranges[j]);\n for (k = prevEnd + 1; k < nextRange[0]; k++) {\n mask[k * 8 + v] &= ~bitMask;\n }\n prevEnd = Math.max(prevEnd, nextRange[1]);\n }\n }\n }\n var textureData = {\n // 8 units x 8 bits = 64 bits, just sufficient for the almost 64 dimensions we support\n shape: [8, maskHeight],\n format: \"alpha\",\n type: \"uint8\",\n mag: \"nearest\",\n min: \"nearest\",\n data: mask\n };\n if (maskTexture) maskTexture(textureData);\n else maskTexture = regl.texture(textureData);\n return {\n maskTexture,\n maskHeight,\n loA: limits[0].slice(0, 16),\n loB: limits[0].slice(16, 32),\n loC: limits[0].slice(32, 48),\n loD: limits[0].slice(48, 64),\n hiA: limits[1].slice(0, 16),\n hiB: limits[1].slice(16, 32),\n hiC: limits[1].slice(32, 48),\n hiD: limits[1].slice(48, 64)\n };\n }\n function renderGLParcoords(panels, setChanged, clearOnly) {\n var panelCount = panels.length;\n var i;\n var leftmost;\n var rightmost;\n var lowestX = Infinity;\n var highestX = -Infinity;\n for (i = 0; i < panelCount; i++) {\n if (panels[i].dim0.canvasX < lowestX) {\n lowestX = panels[i].dim0.canvasX;\n leftmost = i;\n }\n if (panels[i].dim1.canvasX > highestX) {\n highestX = panels[i].dim1.canvasX;\n rightmost = i;\n }\n }\n if (panelCount === 0) {\n clear(regl, 0, 0, model.canvasWidth, model.canvasHeight);\n }\n var constraints = makeConstraints(isContext);\n for (i = 0; i < panelCount; i++) {\n var p = panels[i];\n var i0 = p.dim0.crossfilterDimensionIndex;\n var i1 = p.dim1.crossfilterDimensionIndex;\n var x = p.canvasX;\n var y = p.canvasY;\n var nextX = x + p.panelSizeX;\n var plotGlPixelRatio2 = p.plotGlPixelRatio;\n if (setChanged || !prevAxisOrder[i0] || prevAxisOrder[i0][0] !== x || prevAxisOrder[i0][1] !== nextX) {\n prevAxisOrder[i0] = [x, nextX];\n var item = makeItem(\n model,\n leftmost,\n rightmost,\n i,\n i0,\n i1,\n x,\n y,\n p.panelSizeX,\n p.panelSizeY,\n p.dim0.crossfilterDimensionIndex,\n isContext ? 0 : isPick ? 2 : 1,\n constraints,\n plotGlPixelRatio2\n );\n renderState.clearOnly = clearOnly;\n var blockLineCount = setChanged ? model.lines.blockLineCount : sampleCount;\n renderBlock(\n regl,\n glAes,\n renderState,\n blockLineCount,\n sampleCount,\n item\n );\n }\n }\n }\n function readPixel(canvasX, canvasY) {\n regl.read({\n x: canvasX,\n y: canvasY,\n width: 1,\n height: 1,\n data: dataPixel\n });\n return dataPixel;\n }\n function readPixels(canvasX, canvasY, width, height) {\n var pixelArray = new Uint8Array(4 * width * height);\n regl.read({\n x: canvasX,\n y: canvasY,\n width,\n height,\n data: pixelArray\n });\n return pixelArray;\n }\n function destroy() {\n canvasGL.style[\"pointer-events\"] = \"none\";\n paletteTexture.destroy();\n if (maskTexture) maskTexture.destroy();\n for (var k in attributes) attributes[k].destroy();\n }\n return {\n render: renderGLParcoords,\n readPixel,\n readPixels,\n destroy,\n update\n };\n };\n }\n });\n\n // src/traces/parcoords/parcoords.js\n var require_parcoords = __commonJS({\n \"src/traces/parcoords/parcoords.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var numberFormat = Lib.numberFormat;\n var rgba3 = (init_color_rgba(), __toCommonJS(color_rgba_exports)).default;\n var Axes = require_axes();\n var strRotate = Lib.strRotate;\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var Drawing = require_drawing();\n var Colorscale = require_colorscale();\n var gup = require_gup();\n var keyFun = gup.keyFun;\n var repeat = gup.repeat;\n var unwrap = gup.unwrap;\n var helpers = require_helpers18();\n var c = require_constants24();\n var brush = require_axisbrush();\n var lineLayerMaker = require_lines();\n function findExtreme(fn, values, len) {\n return Lib.aggNums(fn, null, values, len);\n }\n function findExtremes(values, len) {\n return fixExtremes(\n findExtreme(Math.min, values, len),\n findExtreme(Math.max, values, len)\n );\n }\n function dimensionExtent(dimension) {\n var range = dimension.range;\n return range ? fixExtremes(range[0], range[1]) : findExtremes(dimension.values, dimension._length);\n }\n function fixExtremes(lo, hi) {\n if (isNaN(lo) || !isFinite(lo)) {\n lo = 0;\n }\n if (isNaN(hi) || !isFinite(hi)) {\n hi = 0;\n }\n if (lo === hi) {\n if (lo === 0) {\n lo -= 1;\n hi += 1;\n } else {\n lo *= 0.9;\n hi *= 1.1;\n }\n }\n return [lo, hi];\n }\n function toText(formatter, texts) {\n if (texts) {\n return function(v, i) {\n var text = texts[i];\n if (text === null || text === void 0) return formatter(v);\n return text;\n };\n }\n return formatter;\n }\n function domainScale(height, padding, dimension, tickvals, ticktext) {\n var extent = dimensionExtent(dimension);\n if (tickvals) {\n return d3.scale.ordinal().domain(tickvals.map(toText(numberFormat(dimension.tickformat), ticktext))).range(\n tickvals.map(function(d) {\n var unitVal = (d - extent[0]) / (extent[1] - extent[0]);\n return height - padding + unitVal * (2 * padding - height);\n })\n );\n }\n return d3.scale.linear().domain(extent).range([height - padding, padding]);\n }\n function unitToPaddedPx(height, padding) {\n return d3.scale.linear().range([padding, height - padding]);\n }\n function domainToPaddedUnitScale(dimension, padFraction) {\n return d3.scale.linear().domain(dimensionExtent(dimension)).range([padFraction, 1 - padFraction]);\n }\n function ordinalScale(dimension) {\n if (!dimension.tickvals) return;\n var extent = dimensionExtent(dimension);\n return d3.scale.ordinal().domain(dimension.tickvals).range(dimension.tickvals.map(function(d) {\n return (d - extent[0]) / (extent[1] - extent[0]);\n }));\n }\n function unitToColorScale(cscale) {\n var colorStops = cscale.map(function(d) {\n return d[0];\n });\n var colorTuples = cscale.map(function(d) {\n var RGBA = rgba3(d[1]);\n return d3.rgb(\"rgb(\" + RGBA[0] + \",\" + RGBA[1] + \",\" + RGBA[2] + \")\");\n });\n var prop = function(n) {\n return function(o) {\n return o[n];\n };\n };\n var polylinearUnitScales = \"rgb\".split(\"\").map(function(key) {\n return d3.scale.linear().clamp(true).domain(colorStops).range(colorTuples.map(prop(key)));\n });\n return function(d) {\n return polylinearUnitScales.map(function(s) {\n return s(d);\n });\n };\n }\n function someFiltersActive(view) {\n return view.dimensions.some(function(p) {\n return p.brush.filterSpecified;\n });\n }\n function model(layout, d, i) {\n var cd0 = unwrap(d);\n var trace = cd0.trace;\n var lineColor = helpers.convertTypedArray(cd0.lineColor);\n var line = trace.line;\n var deselectedLines = {\n color: rgba3(trace.unselected.line.color),\n opacity: trace.unselected.line.opacity\n };\n var cOpts = Colorscale.extractOpts(line);\n var cscale = cOpts.reversescale ? Colorscale.flipScale(cd0.cscale) : cd0.cscale;\n var domain = trace.domain;\n var dimensions = trace.dimensions;\n var width = layout.width;\n var labelAngle = trace.labelangle;\n var labelSide = trace.labelside;\n var labelFont = trace.labelfont;\n var tickFont = trace.tickfont;\n var rangeFont = trace.rangefont;\n var lines = Lib.extendDeepNoArrays({}, line, {\n color: lineColor.map(d3.scale.linear().domain(\n dimensionExtent({\n values: lineColor,\n range: [cOpts.min, cOpts.max],\n _length: trace._length\n })\n )),\n blockLineCount: c.blockLineCount,\n canvasOverdrag: c.overdrag * c.canvasPixelRatio\n });\n var groupWidth = Math.floor(width * (domain.x[1] - domain.x[0]));\n var groupHeight = Math.floor(layout.height * (domain.y[1] - domain.y[0]));\n var pad = layout.margin || { l: 80, r: 80, t: 100, b: 80 };\n var rowContentWidth = groupWidth;\n var rowHeight = groupHeight;\n return {\n key: i,\n colCount: dimensions.filter(helpers.isVisible).length,\n dimensions,\n tickDistance: c.tickDistance,\n unitToColor: unitToColorScale(cscale),\n lines,\n deselectedLines,\n labelAngle,\n labelSide,\n labelFont,\n tickFont,\n rangeFont,\n layoutWidth: width,\n layoutHeight: layout.height,\n domain,\n translateX: domain.x[0] * width,\n translateY: layout.height - domain.y[1] * layout.height,\n pad,\n canvasWidth: rowContentWidth * c.canvasPixelRatio + 2 * lines.canvasOverdrag,\n canvasHeight: rowHeight * c.canvasPixelRatio,\n width: rowContentWidth,\n height: rowHeight,\n canvasPixelRatio: c.canvasPixelRatio\n };\n }\n function viewModel(state, callbacks, model2) {\n var width = model2.width;\n var height = model2.height;\n var dimensions = model2.dimensions;\n var canvasPixelRatio = model2.canvasPixelRatio;\n var xScale = function(d) {\n return width * d / Math.max(1, model2.colCount - 1);\n };\n var unitPad = c.verticalPadding / height;\n var _unitToPaddedPx = unitToPaddedPx(height, c.verticalPadding);\n var vm = {\n key: model2.key,\n xScale,\n model: model2,\n inBrushDrag: false\n // consider factoring it out and putting it in a centralized global-ish gesture state object\n };\n var uniqueKeys = {};\n vm.dimensions = dimensions.filter(helpers.isVisible).map(function(dimension, i) {\n var domainToPaddedUnit = domainToPaddedUnitScale(dimension, unitPad);\n var foundKey = uniqueKeys[dimension.label];\n uniqueKeys[dimension.label] = (foundKey || 0) + 1;\n var key = dimension.label + (foundKey ? \"__\" + foundKey : \"\");\n var specifiedConstraint = dimension.constraintrange;\n var filterRangeSpecified = specifiedConstraint && specifiedConstraint.length;\n if (filterRangeSpecified && !isArrayOrTypedArray(specifiedConstraint[0])) {\n specifiedConstraint = [specifiedConstraint];\n }\n var filterRange = filterRangeSpecified ? specifiedConstraint.map(function(d) {\n return d.map(domainToPaddedUnit);\n }) : [[-Infinity, Infinity]];\n var brushMove = function() {\n var p = vm;\n p.focusLayer && p.focusLayer.render(p.panels, true);\n var filtersActive = someFiltersActive(p);\n if (!state.contextShown() && filtersActive) {\n p.contextLayer && p.contextLayer.render(p.panels, true);\n state.contextShown(true);\n } else if (state.contextShown() && !filtersActive) {\n p.contextLayer && p.contextLayer.render(p.panels, true, true);\n state.contextShown(false);\n }\n };\n var truncatedValues = dimension.values;\n if (truncatedValues.length > dimension._length) {\n truncatedValues = truncatedValues.slice(0, dimension._length);\n }\n var tickvals = dimension.tickvals;\n var ticktext;\n function makeTickItem(v, i2) {\n return { val: v, text: ticktext[i2] };\n }\n function sortTickItem(a, b) {\n return a.val - b.val;\n }\n if (isArrayOrTypedArray(tickvals) && tickvals.length) {\n if (Lib.isTypedArray(tickvals)) tickvals = Array.from(tickvals);\n ticktext = dimension.ticktext;\n if (!isArrayOrTypedArray(ticktext) || !ticktext.length) {\n ticktext = tickvals.map(numberFormat(dimension.tickformat));\n } else if (ticktext.length > tickvals.length) {\n ticktext = ticktext.slice(0, tickvals.length);\n } else if (tickvals.length > ticktext.length) {\n tickvals = tickvals.slice(0, ticktext.length);\n }\n for (var j = 1; j < tickvals.length; j++) {\n if (tickvals[j] < tickvals[j - 1]) {\n var tickItems = tickvals.map(makeTickItem).sort(sortTickItem);\n for (var k = 0; k < tickvals.length; k++) {\n tickvals[k] = tickItems[k].val;\n ticktext[k] = tickItems[k].text;\n }\n break;\n }\n }\n } else tickvals = void 0;\n truncatedValues = helpers.convertTypedArray(truncatedValues);\n return {\n key,\n label: dimension.label,\n tickFormat: dimension.tickformat,\n tickvals,\n ticktext,\n ordinal: helpers.isOrdinal(dimension),\n multiselect: dimension.multiselect,\n xIndex: i,\n crossfilterDimensionIndex: i,\n visibleIndex: dimension._index,\n height,\n values: truncatedValues,\n paddedUnitValues: truncatedValues.map(domainToPaddedUnit),\n unitTickvals: tickvals && tickvals.map(domainToPaddedUnit),\n xScale,\n x: xScale(i),\n canvasX: xScale(i) * canvasPixelRatio,\n unitToPaddedPx: _unitToPaddedPx,\n domainScale: domainScale(height, c.verticalPadding, dimension, tickvals, ticktext),\n ordinalScale: ordinalScale(dimension),\n parent: vm,\n model: model2,\n brush: brush.makeBrush(\n state,\n filterRangeSpecified,\n filterRange,\n function() {\n state.linePickActive(false);\n },\n brushMove,\n function(f) {\n vm.focusLayer.render(vm.panels, true);\n vm.pickLayer && vm.pickLayer.render(vm.panels, true);\n state.linePickActive(true);\n if (callbacks && callbacks.filterChanged) {\n var invScale = domainToPaddedUnit.invert;\n var newRanges = f.map(function(r) {\n return r.map(invScale).sort(Lib.sorterAsc);\n }).sort(function(a, b) {\n return a[0] - b[0];\n });\n callbacks.filterChanged(vm.key, dimension._index, newRanges);\n }\n }\n )\n };\n });\n return vm;\n }\n function styleExtentTexts(selection) {\n selection.classed(c.cn.axisExtentText, true).attr(\"text-anchor\", \"middle\").style(\"cursor\", \"default\");\n }\n function parcoordsInteractionState() {\n var linePickActive = true;\n var contextShown = false;\n return {\n linePickActive: function(val) {\n return arguments.length ? linePickActive = !!val : linePickActive;\n },\n contextShown: function(val) {\n return arguments.length ? contextShown = !!val : contextShown;\n }\n };\n }\n function calcTilt(angle, position) {\n var dir = position === \"top\" ? 1 : -1;\n var radians2 = angle * Math.PI / 180;\n var dx = Math.sin(radians2);\n var dy = Math.cos(radians2);\n return {\n dir,\n dx,\n dy,\n degrees: angle\n };\n }\n function updatePanelLayout(yAxis, vm, plotGlPixelRatio) {\n var panels = vm.panels || (vm.panels = []);\n var data = yAxis.data();\n for (var i = 0; i < data.length - 1; i++) {\n var p = panels[i] || (panels[i] = {});\n var dim0 = data[i];\n var dim1 = data[i + 1];\n p.dim0 = dim0;\n p.dim1 = dim1;\n p.canvasX = dim0.canvasX;\n p.panelSizeX = dim1.canvasX - dim0.canvasX;\n p.panelSizeY = vm.model.canvasHeight;\n p.y = 0;\n p.canvasY = 0;\n p.plotGlPixelRatio = plotGlPixelRatio;\n }\n }\n function calcAllTicks(cd) {\n for (var i = 0; i < cd.length; i++) {\n for (var j = 0; j < cd[i].length; j++) {\n var trace = cd[i][j].trace;\n var dimensions = trace.dimensions;\n for (var k = 0; k < dimensions.length; k++) {\n var values = dimensions[k].values;\n var dim = dimensions[k]._ax;\n if (dim) {\n if (!dim.range) {\n dim.range = findExtremes(values, trace._length);\n } else {\n dim.range = fixExtremes(dim.range[0], dim.range[1]);\n }\n if (!dim.dtick) {\n dim.dtick = 0.01 * (Math.abs(dim.range[1] - dim.range[0]) || 1);\n }\n dim.tickformat = dimensions[k].tickformat;\n Axes.calcTicks(dim);\n dim.cleanRange();\n }\n }\n }\n }\n }\n function linearFormat(dim, v) {\n return Axes.tickText(dim._ax, v, false).text;\n }\n function extremeText(d, isTop) {\n if (d.ordinal) return \"\";\n var domain = d.domainScale.domain();\n var v = domain[isTop ? domain.length - 1 : 0];\n return linearFormat(d.model.dimensions[d.visibleIndex], v);\n }\n module.exports = function parcoords(gd, cdModule, layout, callbacks) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var svg = fullLayout._toppaper;\n var glContainer = fullLayout._glcontainer;\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n var paperColor = gd._fullLayout.paper_bgcolor;\n calcAllTicks(cdModule);\n var state = parcoordsInteractionState();\n var vm = cdModule.filter(function(d) {\n return unwrap(d).trace.visible;\n }).map(model.bind(0, layout)).map(viewModel.bind(0, state, callbacks));\n glContainer.each(function(d, i) {\n return Lib.extendFlat(d, vm[i]);\n });\n var glLayers = glContainer.selectAll(\".gl-canvas\").each(function(d) {\n d.viewModel = vm[0];\n d.viewModel.plotGlPixelRatio = plotGlPixelRatio;\n d.viewModel.paperColor = paperColor;\n d.model = d.viewModel ? d.viewModel.model : null;\n });\n var lastHovered = null;\n var pickLayer = glLayers.filter(function(d) {\n return d.pick;\n });\n pickLayer.style(\"pointer-events\", isStatic ? \"none\" : \"auto\").on(\"mousemove\", function(d) {\n if (state.linePickActive() && d.lineLayer && callbacks && callbacks.hover) {\n var event = d3.event;\n var cw = this.width;\n var ch = this.height;\n var pointer = d3.mouse(this);\n var x = pointer[0];\n var y = pointer[1];\n if (x < 0 || y < 0 || x >= cw || y >= ch) {\n return;\n }\n var pixel = d.lineLayer.readPixel(x, ch - 1 - y);\n var found = pixel[3] !== 0;\n var curveNumber = found ? pixel[2] + 256 * (pixel[1] + 256 * pixel[0]) : null;\n var eventData = {\n x,\n y,\n clientX: event.clientX,\n clientY: event.clientY,\n dataIndex: d.model.key,\n curveNumber\n };\n if (curveNumber !== lastHovered) {\n if (found) {\n callbacks.hover(eventData);\n } else if (callbacks.unhover) {\n callbacks.unhover(eventData);\n }\n lastHovered = curveNumber;\n }\n }\n });\n glLayers.style(\"opacity\", function(d) {\n return d.pick ? 0 : 1;\n });\n svg.style(\"background\", \"rgba(255, 255, 255, 0)\");\n var controlOverlay = svg.selectAll(\".\" + c.cn.parcoords).data(vm, keyFun);\n controlOverlay.exit().remove();\n controlOverlay.enter().append(\"g\").classed(c.cn.parcoords, true).style(\"shape-rendering\", \"crispEdges\").style(\"pointer-events\", \"none\");\n controlOverlay.attr(\"transform\", function(d) {\n return strTranslate(d.model.translateX, d.model.translateY);\n });\n var parcoordsControlView = controlOverlay.selectAll(\".\" + c.cn.parcoordsControlView).data(repeat, keyFun);\n parcoordsControlView.enter().append(\"g\").classed(c.cn.parcoordsControlView, true);\n parcoordsControlView.attr(\"transform\", function(d) {\n return strTranslate(d.model.pad.l, d.model.pad.t);\n });\n var yAxis = parcoordsControlView.selectAll(\".\" + c.cn.yAxis).data(function(p) {\n return p.dimensions;\n }, keyFun);\n yAxis.enter().append(\"g\").classed(c.cn.yAxis, true);\n parcoordsControlView.each(function(p) {\n updatePanelLayout(yAxis, p, plotGlPixelRatio);\n });\n glLayers.each(function(d) {\n if (d.viewModel) {\n if (!d.lineLayer || callbacks) {\n d.lineLayer = lineLayerMaker(this, d);\n } else d.lineLayer.update(d);\n if (d.key || d.key === 0) d.viewModel[d.key] = d.lineLayer;\n var setChanged = !d.context || // don't update background\n callbacks;\n d.lineLayer.render(d.viewModel.panels, setChanged);\n }\n });\n yAxis.attr(\"transform\", function(d) {\n return strTranslate(d.xScale(d.xIndex), 0);\n });\n yAxis.call(\n d3.behavior.drag().origin(function(d) {\n return d;\n }).on(\"drag\", function(d) {\n var p = d.parent;\n state.linePickActive(false);\n d.x = Math.max(-c.overdrag, Math.min(d.model.width + c.overdrag, d3.event.x));\n d.canvasX = d.x * d.model.canvasPixelRatio;\n yAxis.sort(function(a, b) {\n return a.x - b.x;\n }).each(function(e, i) {\n e.xIndex = i;\n e.x = d === e ? e.x : e.xScale(e.xIndex);\n e.canvasX = e.x * e.model.canvasPixelRatio;\n });\n updatePanelLayout(yAxis, p, plotGlPixelRatio);\n yAxis.filter(function(e) {\n return Math.abs(d.xIndex - e.xIndex) !== 0;\n }).attr(\"transform\", function(d2) {\n return strTranslate(d2.xScale(d2.xIndex), 0);\n });\n d3.select(this).attr(\"transform\", strTranslate(d.x, 0));\n yAxis.each(function(e, i0, i1) {\n if (i1 === d.parent.key) p.dimensions[i0] = e;\n });\n p.contextLayer && p.contextLayer.render(p.panels, false, !someFiltersActive(p));\n p.focusLayer.render && p.focusLayer.render(p.panels);\n }).on(\"dragend\", function(d) {\n var p = d.parent;\n d.x = d.xScale(d.xIndex);\n d.canvasX = d.x * d.model.canvasPixelRatio;\n updatePanelLayout(yAxis, p, plotGlPixelRatio);\n d3.select(this).attr(\"transform\", function(d2) {\n return strTranslate(d2.x, 0);\n });\n p.contextLayer && p.contextLayer.render(p.panels, false, !someFiltersActive(p));\n p.focusLayer && p.focusLayer.render(p.panels);\n p.pickLayer && p.pickLayer.render(p.panels, true);\n state.linePickActive(true);\n if (callbacks && callbacks.axesMoved) {\n callbacks.axesMoved(p.key, p.dimensions.map(function(e) {\n return e.crossfilterDimensionIndex;\n }));\n }\n })\n );\n yAxis.exit().remove();\n var axisOverlays = yAxis.selectAll(\".\" + c.cn.axisOverlays).data(repeat, keyFun);\n axisOverlays.enter().append(\"g\").classed(c.cn.axisOverlays, true);\n axisOverlays.selectAll(\".\" + c.cn.axis).remove();\n var axis = axisOverlays.selectAll(\".\" + c.cn.axis).data(repeat, keyFun);\n axis.enter().append(\"g\").classed(c.cn.axis, true);\n axis.each(function(d) {\n var wantedTickCount = d.model.height / d.model.tickDistance;\n var scale = d.domainScale;\n var sdom = scale.domain();\n d3.select(this).call(d3.svg.axis().orient(\"left\").tickSize(4).outerTickSize(2).ticks(wantedTickCount, d.tickFormat).tickValues(d.ordinal ? (\n // and this works for ordinal scales\n sdom\n ) : null).tickFormat(function(v) {\n return helpers.isOrdinal(d) ? v : linearFormat(d.model.dimensions[d.visibleIndex], v);\n }).scale(scale));\n Drawing.font(axis.selectAll(\"text\"), d.model.tickFont);\n });\n axis.selectAll(\".domain, .tick>line\").attr(\"fill\", \"none\").attr(\"stroke\", \"black\").attr(\"stroke-opacity\", 0.25).attr(\"stroke-width\", \"1px\");\n axis.selectAll(\"text\").style(\"cursor\", \"default\");\n var axisHeading = axisOverlays.selectAll(\".\" + c.cn.axisHeading).data(repeat, keyFun);\n axisHeading.enter().append(\"g\").classed(c.cn.axisHeading, true);\n var axisTitle = axisHeading.selectAll(\".\" + c.cn.axisTitle).data(repeat, keyFun);\n axisTitle.enter().append(\"text\").classed(c.cn.axisTitle, true).attr(\"text-anchor\", \"middle\").style(\"cursor\", \"ew-resize\").style(\"pointer-events\", isStatic ? \"none\" : \"auto\");\n axisTitle.text(function(d) {\n return d.label;\n }).each(function(d) {\n var e = d3.select(this);\n Drawing.font(e, d.model.labelFont);\n svgTextUtils.convertToTspans(e, gd);\n }).attr(\"transform\", function(d) {\n var tilt = calcTilt(d.model.labelAngle, d.model.labelSide);\n var r = c.axisTitleOffset;\n return (tilt.dir > 0 ? \"\" : strTranslate(0, 2 * r + d.model.height)) + strRotate(tilt.degrees) + strTranslate(-r * tilt.dx, -r * tilt.dy);\n }).attr(\"text-anchor\", function(d) {\n var tilt = calcTilt(d.model.labelAngle, d.model.labelSide);\n var adx = Math.abs(tilt.dx);\n var ady = Math.abs(tilt.dy);\n if (2 * adx > ady) {\n return tilt.dir * tilt.dx < 0 ? \"start\" : \"end\";\n } else {\n return \"middle\";\n }\n });\n var axisExtent = axisOverlays.selectAll(\".\" + c.cn.axisExtent).data(repeat, keyFun);\n axisExtent.enter().append(\"g\").classed(c.cn.axisExtent, true);\n var axisExtentTop = axisExtent.selectAll(\".\" + c.cn.axisExtentTop).data(repeat, keyFun);\n axisExtentTop.enter().append(\"g\").classed(c.cn.axisExtentTop, true);\n axisExtentTop.attr(\"transform\", strTranslate(0, -c.axisExtentOffset));\n var axisExtentTopText = axisExtentTop.selectAll(\".\" + c.cn.axisExtentTopText).data(repeat, keyFun);\n axisExtentTopText.enter().append(\"text\").classed(c.cn.axisExtentTopText, true).call(styleExtentTexts);\n axisExtentTopText.text(function(d) {\n return extremeText(d, true);\n }).each(function(d) {\n Drawing.font(d3.select(this), d.model.rangeFont);\n });\n var axisExtentBottom = axisExtent.selectAll(\".\" + c.cn.axisExtentBottom).data(repeat, keyFun);\n axisExtentBottom.enter().append(\"g\").classed(c.cn.axisExtentBottom, true);\n axisExtentBottom.attr(\"transform\", function(d) {\n return strTranslate(0, d.model.height + c.axisExtentOffset);\n });\n var axisExtentBottomText = axisExtentBottom.selectAll(\".\" + c.cn.axisExtentBottomText).data(repeat, keyFun);\n axisExtentBottomText.enter().append(\"text\").classed(c.cn.axisExtentBottomText, true).attr(\"dy\", \"0.75em\").call(styleExtentTexts);\n axisExtentBottomText.text(function(d) {\n return extremeText(d, false);\n }).each(function(d) {\n Drawing.font(d3.select(this), d.model.rangeFont);\n });\n brush.ensureAxisBrush(axisOverlays, paperColor, gd);\n };\n }\n });\n\n // src/traces/parcoords/plot.js\n var require_plot21 = __commonJS({\n \"src/traces/parcoords/plot.js\"(exports, module) {\n \"use strict\";\n var parcoords = require_parcoords();\n var prepareRegl = require_prepare_regl();\n var isVisible = require_helpers18().isVisible;\n var reglPrecompiled = {};\n function newIndex(visibleIndices, orig, dim) {\n var origIndex = orig.indexOf(dim);\n var currentIndex = visibleIndices.indexOf(origIndex);\n if (currentIndex === -1) {\n currentIndex += orig.length;\n }\n return currentIndex;\n }\n function sorter(visibleIndices, orig) {\n return function sorter2(d1, d2) {\n return newIndex(visibleIndices, orig, d1) - newIndex(visibleIndices, orig, d2);\n };\n }\n var exports = module.exports = function plot(gd, cdModule) {\n var fullLayout = gd._fullLayout;\n var success = prepareRegl(gd, [], reglPrecompiled);\n if (!success) return;\n var currentDims = {};\n var initialDims = {};\n var fullIndices = {};\n var inputIndices = {};\n var size = fullLayout._size;\n cdModule.forEach(function(d, i) {\n var trace = d[0].trace;\n fullIndices[i] = trace.index;\n var iIn = inputIndices[i] = trace.index;\n currentDims[i] = gd.data[iIn].dimensions;\n initialDims[i] = gd.data[iIn].dimensions.slice();\n });\n var filterChanged = function(i, initialDimIndex, newRanges) {\n var dim = initialDims[i][initialDimIndex];\n var newConstraints = newRanges.map(function(r) {\n return r.slice();\n });\n var aStr = \"dimensions[\" + initialDimIndex + \"].constraintrange\";\n var preGUI = fullLayout._tracePreGUI[gd._fullData[fullIndices[i]]._fullInput.uid];\n if (preGUI[aStr] === void 0) {\n var initialVal = dim.constraintrange;\n preGUI[aStr] = initialVal || null;\n }\n var fullDimension = gd._fullData[fullIndices[i]].dimensions[initialDimIndex];\n if (!newConstraints.length) {\n delete dim.constraintrange;\n delete fullDimension.constraintrange;\n newConstraints = null;\n } else {\n if (newConstraints.length === 1) newConstraints = newConstraints[0];\n dim.constraintrange = newConstraints;\n fullDimension.constraintrange = newConstraints.slice();\n newConstraints = [newConstraints];\n }\n var restyleData = {};\n restyleData[aStr] = newConstraints;\n gd.emit(\"plotly_restyle\", [restyleData, [inputIndices[i]]]);\n };\n var hover = function(eventData) {\n gd.emit(\"plotly_hover\", eventData);\n };\n var unhover = function(eventData) {\n gd.emit(\"plotly_unhover\", eventData);\n };\n var axesMoved = function(i, visibleIndices) {\n var orig = sorter(visibleIndices, initialDims[i].filter(isVisible));\n currentDims[i].sort(orig);\n initialDims[i].filter(function(d) {\n return !isVisible(d);\n }).sort(function(d) {\n return initialDims[i].indexOf(d);\n }).forEach(function(d) {\n currentDims[i].splice(currentDims[i].indexOf(d), 1);\n currentDims[i].splice(initialDims[i].indexOf(d), 0, d);\n });\n gd.emit(\"plotly_restyle\", [{ dimensions: [currentDims[i]] }, [inputIndices[i]]]);\n };\n parcoords(\n gd,\n cdModule,\n {\n // layout\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n {\n // callbacks\n filterChanged,\n hover,\n unhover,\n axesMoved\n }\n );\n };\n exports.reglPrecompiled = reglPrecompiled;\n }\n });\n\n // src/traces/parcoords/base_plot.js\n var require_base_plot7 = __commonJS({\n \"src/traces/parcoords/base_plot.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var parcoordsPlot = require_plot21();\n var xmlnsNamespaces = require_xmlns_namespaces();\n exports.name = \"parcoords\";\n exports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, \"parcoords\")[0];\n if (calcData.length) parcoordsPlot(gd, calcData);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadParcoords = oldFullLayout._has && oldFullLayout._has(\"parcoords\");\n var hasParcoords = newFullLayout._has && newFullLayout._has(\"parcoords\");\n if (hadParcoords && !hasParcoords) {\n oldFullLayout._paperdiv.selectAll(\".parcoords\").remove();\n oldFullLayout._glimages.selectAll(\"*\").remove();\n }\n };\n exports.toSVG = function(gd) {\n var imageRoot = gd._fullLayout._glimages;\n var root = d3.select(gd).selectAll(\".svg-container\");\n var canvases = root.filter(function(d, i) {\n return i === root.size() - 1;\n }).selectAll(\".gl-canvas-context, .gl-canvas-focus\");\n function canvasToImage() {\n var canvas = this;\n var imageData = canvas.toDataURL(\"image/png\");\n var image = imageRoot.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n preserveAspectRatio: \"none\",\n x: 0,\n y: 0,\n width: canvas.style.width,\n height: canvas.style.height\n });\n }\n canvases.each(canvasToImage);\n window.setTimeout(function() {\n d3.selectAll(\"#filterBarPattern\").attr(\"id\", \"filterBarPattern\");\n }, 60);\n };\n }\n });\n\n // src/traces/parcoords/base_index.js\n var require_base_index3 = __commonJS({\n \"src/traces/parcoords/base_index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes52(),\n supplyDefaults: require_defaults48(),\n calc: require_calc31(),\n colorbar: {\n container: \"line\",\n min: \"cmin\",\n max: \"cmax\"\n },\n moduleType: \"trace\",\n name: \"parcoords\",\n basePlotModule: require_base_plot7(),\n categories: [\"gl\", \"regl\", \"noOpacity\", \"noHover\"],\n meta: {}\n };\n }\n });\n\n // src/traces/parcoords/index.js\n var require_parcoords2 = __commonJS({\n \"src/traces/parcoords/index.js\"(exports, module) {\n \"use strict\";\n var index = require_base_index3();\n index.plot = require_plot21();\n module.exports = index;\n }\n });\n\n // lib/parcoords.js\n var require_parcoords3 = __commonJS({\n \"lib/parcoords.js\"(exports, module) {\n \"use strict\";\n module.exports = require_parcoords2();\n }\n });\n\n // src/traces/parcats/attributes.js\n var require_attributes53 = __commonJS({\n \"src/traces/parcats/attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n var baseAttrs = require_attributes2();\n var fontAttrs = require_font_attributes();\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var domainAttrs = require_domain().attributes;\n var line = extendFlat(\n { editType: \"calc\" },\n colorScaleAttrs(\"line\", { editTypeOverride: \"calc\" }),\n {\n shape: {\n valType: \"enumerated\",\n values: [\"linear\", \"hspline\"],\n dflt: \"linear\",\n editType: \"plot\"\n },\n hovertemplate: hovertemplateAttrs({\n editType: \"plot\",\n arrayOk: false\n }, {\n keys: [\"count\", \"probability\"]\n })\n }\n );\n module.exports = {\n domain: domainAttrs({ name: \"parcats\", trace: true, editType: \"calc\" }),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"count\", \"probability\"],\n editType: \"plot\",\n arrayOk: false\n }),\n hoveron: {\n valType: \"enumerated\",\n values: [\"category\", \"color\", \"dimension\"],\n dflt: \"category\",\n editType: \"plot\"\n },\n hovertemplate: hovertemplateAttrs({\n editType: \"plot\",\n arrayOk: false\n }, {\n keys: [\n \"count\",\n \"probability\",\n \"category\",\n \"categorycount\",\n \"colorcount\",\n \"bandcolorcount\"\n ]\n }),\n arrangement: {\n valType: \"enumerated\",\n values: [\"perpendicular\", \"freeform\", \"fixed\"],\n dflt: \"perpendicular\",\n editType: \"plot\"\n },\n bundlecolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n sortpaths: {\n valType: \"enumerated\",\n values: [\"forward\", \"backward\"],\n dflt: \"forward\",\n editType: \"plot\"\n },\n labelfont: fontAttrs({\n editType: \"calc\"\n }),\n tickfont: fontAttrs({\n autoShadowDflt: true,\n editType: \"calc\"\n }),\n dimensions: {\n _isLinkedToArray: \"dimension\",\n label: {\n valType: \"string\",\n editType: \"calc\"\n },\n categoryorder: {\n valType: \"enumerated\",\n values: [\n \"trace\",\n \"category ascending\",\n \"category descending\",\n \"array\"\n ],\n dflt: \"trace\",\n editType: \"calc\"\n },\n categoryarray: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n ticktext: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n values: {\n valType: \"data_array\",\n dflt: [],\n editType: \"calc\"\n },\n displayindex: {\n valType: \"integer\",\n editType: \"calc\"\n },\n editType: \"calc\",\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n },\n line,\n counts: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n arrayOk: true,\n editType: \"calc\"\n },\n // Hide unsupported top-level properties from plot-schema\n customdata: void 0,\n hoverlabel: void 0,\n ids: void 0,\n legend: void 0,\n legendgroup: void 0,\n legendrank: void 0,\n opacity: void 0,\n selectedpoints: void 0,\n showlegend: void 0\n };\n }\n });\n\n // src/traces/parcats/defaults.js\n var require_defaults49 = __commonJS({\n \"src/traces/parcats/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n var handleDomainDefaults = require_domain().defaults;\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes53();\n var mergeLength = require_merge_length();\n var isTypedArraySpec = require_array().isTypedArraySpec;\n function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n coerce(\"line.shape\");\n coerce(\"line.hovertemplate\");\n var lineColor = coerce(\"line.color\", layout.colorway[0]);\n if (hasColorscale(traceIn, \"line\") && Lib.isArrayOrTypedArray(lineColor)) {\n if (lineColor.length) {\n coerce(\"line.colorscale\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"line.\", cLetter: \"c\" });\n return lineColor.length;\n } else {\n traceOut.line.color = defaultColor;\n }\n }\n return Infinity;\n }\n function dimensionDefaults(dimensionIn, dimensionOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimensionIn, dimensionOut, attributes.dimensions, attr, dflt);\n }\n var values = coerce(\"values\");\n var visible = coerce(\"visible\");\n if (!(values && values.length)) {\n visible = dimensionOut.visible = false;\n }\n if (visible) {\n coerce(\"label\");\n coerce(\"displayindex\", dimensionOut._index);\n var arrayIn = dimensionIn.categoryarray;\n var isValidArray = Lib.isArrayOrTypedArray(arrayIn) && arrayIn.length > 0 || isTypedArraySpec(arrayIn);\n var orderDefault;\n if (isValidArray) orderDefault = \"array\";\n var order = coerce(\"categoryorder\", orderDefault);\n if (order === \"array\") {\n coerce(\"categoryarray\");\n coerce(\"ticktext\");\n } else {\n delete dimensionIn.categoryarray;\n delete dimensionIn.ticktext;\n }\n if (!isValidArray && order === \"array\") {\n dimensionOut.categoryorder = \"trace\";\n }\n }\n }\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: \"dimensions\",\n handleItemDefaults: dimensionDefaults\n });\n var len = handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleDomainDefaults(traceOut, layout, coerce);\n if (!Array.isArray(dimensions) || !dimensions.length) {\n traceOut.visible = false;\n }\n mergeLength(traceOut, dimensions, \"values\", len);\n coerce(\"hoveron\");\n coerce(\"hovertemplate\");\n coerce(\"arrangement\");\n coerce(\"bundlecolors\");\n coerce(\"sortpaths\");\n coerce(\"counts\");\n var layoutFont = layout.font;\n Lib.coerceFont(coerce, \"labelfont\", layoutFont, {\n overrideDflt: {\n size: Math.round(layoutFont.size)\n }\n });\n Lib.coerceFont(coerce, \"tickfont\", layoutFont, {\n autoShadowDflt: true,\n overrideDflt: {\n size: Math.round(layoutFont.size / 1.2)\n }\n });\n };\n }\n });\n\n // src/traces/parcats/calc.js\n var require_calc32 = __commonJS({\n \"src/traces/parcats/calc.js\"(exports, module) {\n \"use strict\";\n var wrap = require_gup().wrap;\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleCalc = require_calc();\n var filterUnique = require_filter_unique();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var isNumeric = require_fast_isnumeric();\n module.exports = function calc(gd, trace) {\n var visibleDims = Lib.filterVisible(trace.dimensions);\n if (visibleDims.length === 0) return [];\n var uniqueInfoDims = visibleDims.map(function(dim) {\n var categoryValues;\n if (dim.categoryorder === \"trace\") {\n categoryValues = null;\n } else if (dim.categoryorder === \"array\") {\n categoryValues = dim.categoryarray;\n } else {\n categoryValues = filterUnique(dim.values);\n var allNumeric = true;\n for (var i = 0; i < categoryValues.length; i++) {\n if (!isNumeric(categoryValues[i])) {\n allNumeric = false;\n break;\n }\n }\n categoryValues.sort(allNumeric ? Lib.sorterAsc : void 0);\n if (dim.categoryorder === \"category descending\") {\n categoryValues = categoryValues.reverse();\n }\n }\n return getUniqueInfo(dim.values, categoryValues);\n });\n var counts, count, totalCount;\n if (Lib.isArrayOrTypedArray(trace.counts)) {\n counts = trace.counts;\n } else {\n counts = [trace.counts];\n }\n validateDimensionDisplayInds(visibleDims);\n visibleDims.forEach(function(dim, dimInd) {\n validateCategoryProperties(dim, uniqueInfoDims[dimInd]);\n });\n var line = trace.line;\n var markerColorscale;\n if (line) {\n if (hasColorscale(trace, \"line\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.line.color,\n containerStr: \"line\",\n cLetter: \"c\"\n });\n }\n markerColorscale = Drawing.tryColorscale(line);\n } else {\n markerColorscale = Lib.identity;\n }\n function getMarkerColorInfo(index) {\n var value, rawColor;\n if (Lib.isArrayOrTypedArray(line.color)) {\n value = line.color[index % line.color.length];\n rawColor = value;\n } else {\n value = line.color;\n }\n return { color: markerColorscale(value), rawColor };\n }\n var numValues = visibleDims[0].values.length;\n var pathModels = {};\n var categoryIndsDims = uniqueInfoDims.map(function(di) {\n return di.inds;\n });\n totalCount = 0;\n var valueInd;\n var d;\n for (valueInd = 0; valueInd < numValues; valueInd++) {\n var categoryIndsPath = [];\n for (d = 0; d < categoryIndsDims.length; d++) {\n categoryIndsPath.push(categoryIndsDims[d][valueInd]);\n }\n count = counts[valueInd % counts.length];\n totalCount += count;\n var pathColorInfo = getMarkerColorInfo(valueInd);\n var pathKey = categoryIndsPath + \"-\" + pathColorInfo.rawColor;\n if (pathModels[pathKey] === void 0) {\n pathModels[pathKey] = createPathModel(\n categoryIndsPath,\n pathColorInfo.color,\n pathColorInfo.rawColor\n );\n }\n updatePathModel(pathModels[pathKey], valueInd, count);\n }\n var dimensionModels = visibleDims.map(function(di, i) {\n return createDimensionModel(i, di._index, di._displayindex, di.label, totalCount);\n });\n for (valueInd = 0; valueInd < numValues; valueInd++) {\n count = counts[valueInd % counts.length];\n for (d = 0; d < dimensionModels.length; d++) {\n var containerInd = dimensionModels[d].containerInd;\n var catInd = uniqueInfoDims[d].inds[valueInd];\n var cats = dimensionModels[d].categories;\n if (cats[catInd] === void 0) {\n var catValue = trace.dimensions[containerInd]._categoryarray[catInd];\n var catLabel = trace.dimensions[containerInd]._ticktext[catInd];\n cats[catInd] = createCategoryModel(d, catInd, catValue, catLabel);\n }\n updateCategoryModel(cats[catInd], valueInd, count);\n }\n }\n return wrap(createParcatsModel(dimensionModels, pathModels, totalCount));\n };\n function createParcatsModel(dimensions, paths, count) {\n var maxCats = dimensions.map(function(d) {\n return d.categories.length;\n }).reduce(function(v1, v2) {\n return Math.max(v1, v2);\n });\n return { dimensions, paths, trace: void 0, maxCats, count };\n }\n function createDimensionModel(dimensionInd, containerInd, displayInd, dimensionLabel, count) {\n return {\n dimensionInd,\n containerInd,\n displayInd,\n dimensionLabel,\n count,\n categories: [],\n dragX: null\n };\n }\n function createCategoryModel(dimensionInd, categoryInd, categoryValue, categoryLabel) {\n return {\n dimensionInd,\n categoryInd,\n categoryValue,\n displayInd: categoryInd,\n categoryLabel,\n valueInds: [],\n count: 0,\n dragY: null\n };\n }\n function updateCategoryModel(categoryModel, valueInd, count) {\n categoryModel.valueInds.push(valueInd);\n categoryModel.count += count;\n }\n function createPathModel(categoryInds, color2, rawColor) {\n return {\n categoryInds,\n color: color2,\n rawColor,\n valueInds: [],\n count: 0\n };\n }\n function updatePathModel(pathModel, valueInd, count) {\n pathModel.valueInds.push(valueInd);\n pathModel.count += count;\n }\n function getUniqueInfo(values, uniqueValues) {\n if (uniqueValues === void 0 || uniqueValues === null) {\n uniqueValues = [];\n } else {\n uniqueValues = uniqueValues.map(function(e) {\n return e;\n });\n }\n var uniqueValueCounts = {};\n var uniqueValueInds = {};\n var inds = [];\n uniqueValues.forEach(function(uniqueVal, valInd) {\n uniqueValueCounts[uniqueVal] = 0;\n uniqueValueInds[uniqueVal] = valInd;\n });\n for (var i = 0; i < values.length; i++) {\n var item = values[i];\n var itemInd;\n if (uniqueValueCounts[item] === void 0) {\n uniqueValueCounts[item] = 1;\n itemInd = uniqueValues.push(item) - 1;\n uniqueValueInds[item] = itemInd;\n } else {\n uniqueValueCounts[item]++;\n itemInd = uniqueValueInds[item];\n }\n inds.push(itemInd);\n }\n var uniqueCounts = uniqueValues.map(function(v) {\n return uniqueValueCounts[v];\n });\n return {\n uniqueValues,\n uniqueCounts,\n inds\n };\n }\n function validateDimensionDisplayInds(visibleDims) {\n var displayInds = visibleDims.map(function(d) {\n return d.displayindex;\n });\n var i;\n if (isRangePermutation(displayInds)) {\n for (i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = visibleDims[i].displayindex;\n }\n } else {\n for (i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = i;\n }\n }\n }\n function validateCategoryProperties(dim, uniqueInfoDim) {\n dim._categoryarray = uniqueInfoDim.uniqueValues;\n if (dim.ticktext === null || dim.ticktext === void 0) {\n dim._ticktext = [];\n } else {\n dim._ticktext = dim.ticktext.slice();\n }\n for (var i = dim._ticktext.length; i < uniqueInfoDim.uniqueValues.length; i++) {\n dim._ticktext.push(uniqueInfoDim.uniqueValues[i]);\n }\n }\n function isRangePermutation(inds) {\n var indsSpecified = new Array(inds.length);\n for (var i = 0; i < inds.length; i++) {\n if (inds[i] < 0 || inds[i] >= inds.length) {\n return false;\n }\n if (indsSpecified[inds[i]] !== void 0) {\n return false;\n }\n indsSpecified[inds[i]] = true;\n }\n return true;\n }\n }\n });\n\n // src/traces/parcats/parcats.js\n var require_parcats = __commonJS({\n \"src/traces/parcats/parcats.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var interpolateNumber = (init_src2(), __toCommonJS(src_exports)).interpolateNumber;\n var Plotly = require_plot_api();\n var Fx = require_fx();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Drawing = require_drawing();\n var tinycolor = require_tinycolor();\n var svgTextUtils = require_svg_text_utils();\n function performPlot(parcatsModels, graphDiv, layout, svg) {\n var isStatic = graphDiv._context.staticPlot;\n var viewModels = parcatsModels.map(createParcatsViewModel.bind(0, graphDiv, layout));\n var layerSelection = svg.selectAll(\"g.parcatslayer\").data([null]);\n layerSelection.enter().append(\"g\").attr(\"class\", \"parcatslayer\").style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n var traceSelection = layerSelection.selectAll(\"g.trace.parcats\").data(viewModels, key);\n var traceEnter = traceSelection.enter().append(\"g\").attr(\"class\", \"trace parcats\");\n traceSelection.attr(\"transform\", function(d) {\n return strTranslate(d.x, d.y);\n });\n traceEnter.append(\"g\").attr(\"class\", \"paths\");\n var pathsSelection = traceSelection.select(\"g.paths\");\n var pathSelection = pathsSelection.selectAll(\"path.path\").data(function(d) {\n return d.paths;\n }, key);\n pathSelection.attr(\"fill\", function(d) {\n return d.model.color;\n });\n var pathSelectionEnter = pathSelection.enter().append(\"path\").attr(\"class\", \"path\").attr(\"stroke-opacity\", 0).attr(\"fill\", function(d) {\n return d.model.color;\n }).attr(\"fill-opacity\", 0);\n stylePathsNoHover(pathSelectionEnter);\n pathSelection.attr(\"d\", function(d) {\n return d.svgD;\n });\n if (!pathSelectionEnter.empty()) {\n pathSelection.sort(compareRawColor);\n }\n pathSelection.exit().remove();\n pathSelection.on(\"mouseover\", mouseoverPath).on(\"mouseout\", mouseoutPath).on(\"click\", clickPath);\n traceEnter.append(\"g\").attr(\"class\", \"dimensions\");\n var dimensionsSelection = traceSelection.select(\"g.dimensions\");\n var dimensionSelection = dimensionsSelection.selectAll(\"g.dimension\").data(function(d) {\n return d.dimensions;\n }, key);\n dimensionSelection.enter().append(\"g\").attr(\"class\", \"dimension\");\n dimensionSelection.attr(\"transform\", function(d) {\n return strTranslate(d.x, 0);\n });\n dimensionSelection.exit().remove();\n var categorySelection = dimensionSelection.selectAll(\"g.category\").data(function(d) {\n return d.categories;\n }, key);\n var categoryGroupEnterSelection = categorySelection.enter().append(\"g\").attr(\"class\", \"category\");\n categorySelection.attr(\"transform\", function(d) {\n return strTranslate(0, d.y);\n });\n categoryGroupEnterSelection.append(\"rect\").attr(\"class\", \"catrect\").attr(\"pointer-events\", \"none\");\n categorySelection.select(\"rect.catrect\").attr(\"fill\", \"none\").attr(\"width\", function(d) {\n return d.width;\n }).attr(\"height\", function(d) {\n return d.height;\n });\n styleCategoriesNoHover(categoryGroupEnterSelection);\n var bandSelection = categorySelection.selectAll(\"rect.bandrect\").data(\n /** @param {CategoryViewModel} catViewModel*/\n function(catViewModel) {\n return catViewModel.bands;\n },\n key\n );\n bandSelection.each(function() {\n Lib.raiseToTop(this);\n });\n bandSelection.attr(\"fill\", function(d) {\n return d.color;\n });\n var bandsSelectionEnter = bandSelection.enter().append(\"rect\").attr(\"class\", \"bandrect\").attr(\"stroke-opacity\", 0).attr(\"fill\", function(d) {\n return d.color;\n }).attr(\"fill-opacity\", 0);\n bandSelection.attr(\"fill\", function(d) {\n return d.color;\n }).attr(\"width\", function(d) {\n return d.width;\n }).attr(\"height\", function(d) {\n return d.height;\n }).attr(\"y\", function(d) {\n return d.y;\n }).attr(\n \"cursor\",\n /** @param {CategoryBandViewModel} bandModel*/\n function(bandModel) {\n if (bandModel.parcatsViewModel.arrangement === \"fixed\") {\n return \"default\";\n } else if (bandModel.parcatsViewModel.arrangement === \"perpendicular\") {\n return \"ns-resize\";\n } else {\n return \"move\";\n }\n }\n );\n styleBandsNoHover(bandsSelectionEnter);\n bandSelection.exit().remove();\n categoryGroupEnterSelection.append(\"text\").attr(\"class\", \"catlabel\").attr(\"pointer-events\", \"none\");\n categorySelection.select(\"text.catlabel\").attr(\n \"text-anchor\",\n function(d) {\n if (catInRightDim(d)) {\n return \"start\";\n } else {\n return \"end\";\n }\n }\n ).attr(\"alignment-baseline\", \"middle\").style(\"fill\", \"rgb(0, 0, 0)\").attr(\n \"x\",\n function(d) {\n if (catInRightDim(d)) {\n return d.width + 5;\n } else {\n return -5;\n }\n }\n ).attr(\"y\", function(d) {\n return d.height / 2;\n }).text(function(d) {\n return d.model.categoryLabel;\n }).each(\n /** @param {CategoryViewModel} catModel*/\n function(catModel) {\n Drawing.font(d3.select(this), catModel.parcatsViewModel.categorylabelfont);\n svgTextUtils.convertToTspans(d3.select(this), graphDiv);\n }\n );\n categoryGroupEnterSelection.append(\"text\").attr(\"class\", \"dimlabel\");\n categorySelection.select(\"text.dimlabel\").attr(\"text-anchor\", \"middle\").attr(\"alignment-baseline\", \"baseline\").attr(\n \"cursor\",\n /** @param {CategoryViewModel} catModel*/\n function(catModel) {\n if (catModel.parcatsViewModel.arrangement === \"fixed\") {\n return \"default\";\n } else {\n return \"ew-resize\";\n }\n }\n ).attr(\"x\", function(d) {\n return d.width / 2;\n }).attr(\"y\", -5).text(function(d, i) {\n if (i === 0) {\n return d.parcatsViewModel.model.dimensions[d.model.dimensionInd].dimensionLabel;\n } else {\n return null;\n }\n }).each(\n /** @param {CategoryViewModel} catModel*/\n function(catModel) {\n Drawing.font(d3.select(this), catModel.parcatsViewModel.labelfont);\n }\n );\n categorySelection.selectAll(\"rect.bandrect\").on(\"mouseover\", mouseoverCategoryBand).on(\"mouseout\", mouseoutCategory);\n categorySelection.exit().remove();\n dimensionSelection.call(d3.behavior.drag().origin(function(d) {\n return { x: d.x, y: 0 };\n }).on(\"dragstart\", dragDimensionStart).on(\"drag\", dragDimension).on(\"dragend\", dragDimensionEnd));\n traceSelection.each(function(d) {\n d.traceSelection = d3.select(this);\n d.pathSelection = d3.select(this).selectAll(\"g.paths\").selectAll(\"path.path\");\n d.dimensionSelection = d3.select(this).selectAll(\"g.dimensions\").selectAll(\"g.dimension\");\n });\n traceSelection.exit().remove();\n }\n module.exports = function(graphDiv, svg, parcatsModels, layout) {\n performPlot(parcatsModels, graphDiv, layout, svg);\n };\n function key(d) {\n return d.key;\n }\n function catInRightDim(d) {\n var numDims = d.parcatsViewModel.dimensions.length;\n var leftDimInd = d.parcatsViewModel.dimensions[numDims - 1].model.dimensionInd;\n return d.model.dimensionInd === leftDimInd;\n }\n function compareRawColor(a, b) {\n if (a.model.rawColor > b.model.rawColor) {\n return 1;\n } else if (a.model.rawColor < b.model.rawColor) {\n return -1;\n } else {\n return 0;\n }\n }\n function mouseoverPath(d) {\n if (!d.parcatsViewModel.dragDimension) {\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n Lib.raiseToTop(this);\n stylePathsHover(d3.select(this));\n var points = buildPointsArrayForPath(d);\n var constraints = buildConstraintsForPath(d);\n d.parcatsViewModel.graphDiv.emit(\"plotly_hover\", {\n points,\n event: d3.event,\n constraints\n });\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"none\") === -1) {\n var hoverX = d3.mouse(this)[0];\n var gd = d.parcatsViewModel.graphDiv;\n var trace = d.parcatsViewModel.trace;\n var fullLayout = gd._fullLayout;\n var rootBBox = fullLayout._paperdiv.node().getBoundingClientRect();\n var graphDivBBox = d.parcatsViewModel.graphDiv.getBoundingClientRect();\n var pathCenterX, pathCenterY, dimInd;\n for (dimInd = 0; dimInd < d.leftXs.length - 1; dimInd++) {\n if (d.leftXs[dimInd] + d.dimWidths[dimInd] - 2 <= hoverX && hoverX <= d.leftXs[dimInd + 1] + 2) {\n var leftDim = d.parcatsViewModel.dimensions[dimInd];\n var rightDim = d.parcatsViewModel.dimensions[dimInd + 1];\n pathCenterX = (leftDim.x + leftDim.width + rightDim.x) / 2;\n pathCenterY = (d.topYs[dimInd] + d.topYs[dimInd + 1] + d.height) / 2;\n break;\n }\n }\n var hoverCenterX = d.parcatsViewModel.x + pathCenterX;\n var hoverCenterY = d.parcatsViewModel.y + pathCenterY;\n var textColor = tinycolor.mostReadable(d.model.color, [\"black\", \"white\"]);\n var count = d.model.count;\n var prob = count / d.parcatsViewModel.model.count;\n var labels = {\n countLabel: count,\n probabilityLabel: prob.toFixed(3)\n };\n var hovertextParts = [];\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"count\") !== -1) {\n hovertextParts.push([\"Count:\", labels.countLabel].join(\" \"));\n }\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"probability\") !== -1) {\n hovertextParts.push([\"P:\", labels.probabilityLabel].join(\" \"));\n }\n var hovertext = hovertextParts.join(\"
\");\n var mouseX = d3.mouse(gd)[0];\n Fx.loneHover({\n trace,\n x: hoverCenterX - rootBBox.left + graphDivBBox.left,\n y: hoverCenterY - rootBBox.top + graphDivBBox.top,\n text: hovertext,\n color: d.model.color,\n borderColor: \"black\",\n fontFamily: 'Monaco, \"Courier New\", monospace',\n fontSize: 10,\n fontColor: textColor,\n idealAlign: mouseX < hoverCenterX ? \"right\" : \"left\",\n hovertemplate: (trace.line || {}).hovertemplate,\n hovertemplateLabels: labels,\n eventData: [{\n data: trace._input,\n fullData: trace,\n count,\n probability: prob\n }]\n }, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd\n });\n }\n }\n }\n }\n function mouseoutPath(d) {\n if (!d.parcatsViewModel.dragDimension) {\n stylePathsNoHover(d3.select(this));\n Fx.loneUnhover(d.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node());\n d.parcatsViewModel.pathSelection.sort(compareRawColor);\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n var points = buildPointsArrayForPath(d);\n var constraints = buildConstraintsForPath(d);\n d.parcatsViewModel.graphDiv.emit(\"plotly_unhover\", {\n points,\n event: d3.event,\n constraints\n });\n }\n }\n }\n function buildPointsArrayForPath(d) {\n var points = [];\n var curveNumber = getTraceIndex(d.parcatsViewModel);\n for (var i = 0; i < d.model.valueInds.length; i++) {\n var pointNumber = d.model.valueInds[i];\n points.push({\n curveNumber,\n pointNumber\n });\n }\n return points;\n }\n function buildConstraintsForPath(d) {\n var constraints = {};\n var dimensions = d.parcatsViewModel.model.dimensions;\n for (var i = 0; i < dimensions.length; i++) {\n var dimension = dimensions[i];\n var category = dimension.categories[d.model.categoryInds[i]];\n constraints[dimension.containerInd] = category.categoryValue;\n }\n if (d.model.rawColor !== void 0) {\n constraints.color = d.model.rawColor;\n }\n return constraints;\n }\n function clickPath(d) {\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n var points = buildPointsArrayForPath(d);\n var constraints = buildConstraintsForPath(d);\n d.parcatsViewModel.graphDiv.emit(\"plotly_click\", {\n points,\n event: d3.event,\n constraints\n });\n }\n }\n function stylePathsNoHover(pathSelection) {\n pathSelection.attr(\"fill\", function(d) {\n return d.model.color;\n }).attr(\"fill-opacity\", 0.6).attr(\"stroke\", \"lightgray\").attr(\"stroke-width\", 0.2).attr(\"stroke-opacity\", 1);\n }\n function stylePathsHover(pathSelection) {\n pathSelection.attr(\"fill-opacity\", 0.8).attr(\"stroke\", function(d) {\n return tinycolor.mostReadable(d.model.color, [\"black\", \"white\"]);\n }).attr(\"stroke-width\", 0.3);\n }\n function styleCategoryHover(categorySelection) {\n categorySelection.select(\"rect.catrect\").attr(\"stroke\", \"black\").attr(\"stroke-width\", 2.5);\n }\n function styleCategoriesNoHover(categorySelection) {\n categorySelection.select(\"rect.catrect\").attr(\"stroke\", \"black\").attr(\"stroke-width\", 1).attr(\"stroke-opacity\", 1);\n }\n function styleBandsHover(bandsSelection) {\n bandsSelection.attr(\"stroke\", \"black\").attr(\"stroke-width\", 1.5);\n }\n function styleBandsNoHover(bandsSelection) {\n bandsSelection.attr(\"stroke\", \"black\").attr(\"stroke-width\", 0.2).attr(\"stroke-opacity\", 1).attr(\"fill-opacity\", 1);\n }\n function selectPathsThroughCategoryBandColor(catBandViewModel) {\n var allPaths = catBandViewModel.parcatsViewModel.pathSelection;\n var dimInd = catBandViewModel.categoryViewModel.model.dimensionInd;\n var catInd = catBandViewModel.categoryViewModel.model.categoryInd;\n return allPaths.filter(\n /** @param {PathViewModel} pathViewModel */\n function(pathViewModel) {\n return pathViewModel.model.categoryInds[dimInd] === catInd && pathViewModel.model.color === catBandViewModel.color;\n }\n );\n }\n function styleForCategoryHovermode(bandElement) {\n var bandSel = d3.select(bandElement.parentNode).selectAll(\"rect.bandrect\");\n bandSel.each(function(bvm) {\n var paths = selectPathsThroughCategoryBandColor(bvm);\n stylePathsHover(paths);\n paths.each(function() {\n Lib.raiseToTop(this);\n });\n });\n styleCategoryHover(d3.select(bandElement.parentNode));\n }\n function styleForColorHovermode(bandElement) {\n var bandViewModel = d3.select(bandElement).datum();\n var catPaths = selectPathsThroughCategoryBandColor(bandViewModel);\n stylePathsHover(catPaths);\n catPaths.each(function() {\n Lib.raiseToTop(this);\n });\n d3.select(bandElement.parentNode).selectAll(\"rect.bandrect\").filter(function(b) {\n return b.color === bandViewModel.color;\n }).each(function() {\n Lib.raiseToTop(this);\n styleBandsHover(d3.select(this));\n });\n }\n function emitPointsEventCategoryHovermode(bandElement, eventName, event) {\n var bandViewModel = d3.select(bandElement).datum();\n var categoryModel = bandViewModel.categoryViewModel.model;\n var gd = bandViewModel.parcatsViewModel.graphDiv;\n var bandSel = d3.select(bandElement.parentNode).selectAll(\"rect.bandrect\");\n var points = [];\n bandSel.each(function(bvm) {\n var paths = selectPathsThroughCategoryBandColor(bvm);\n paths.each(function(pathViewModel) {\n Array.prototype.push.apply(points, buildPointsArrayForPath(pathViewModel));\n });\n });\n var constraints = {};\n constraints[categoryModel.dimensionInd] = categoryModel.categoryValue;\n gd.emit(eventName, {\n points,\n event,\n constraints\n });\n }\n function emitPointsEventColorHovermode(bandElement, eventName, event) {\n var bandViewModel = d3.select(bandElement).datum();\n var categoryModel = bandViewModel.categoryViewModel.model;\n var gd = bandViewModel.parcatsViewModel.graphDiv;\n var paths = selectPathsThroughCategoryBandColor(bandViewModel);\n var points = [];\n paths.each(function(pathViewModel) {\n Array.prototype.push.apply(points, buildPointsArrayForPath(pathViewModel));\n });\n var constraints = {};\n constraints[categoryModel.dimensionInd] = categoryModel.categoryValue;\n if (bandViewModel.rawColor !== void 0) {\n constraints.color = bandViewModel.rawColor;\n }\n gd.emit(eventName, {\n points,\n event,\n constraints\n });\n }\n function createHoverLabelForCategoryHovermode(gd, rootBBox, bandElement) {\n gd._fullLayout._calcInverseTransform(gd);\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n var rectSelection = d3.select(bandElement.parentNode).select(\"rect.catrect\");\n var rectBoundingBox = rectSelection.node().getBoundingClientRect();\n var catViewModel = rectSelection.datum();\n var parcatsViewModel = catViewModel.parcatsViewModel;\n var dimensionModel = parcatsViewModel.model.dimensions[catViewModel.model.dimensionInd];\n var trace = parcatsViewModel.trace;\n var hoverCenterY = rectBoundingBox.top + rectBoundingBox.height / 2;\n var hoverCenterX, hoverLabelIdealAlign;\n if (parcatsViewModel.dimensions.length > 1 && dimensionModel.displayInd === parcatsViewModel.dimensions.length - 1) {\n hoverCenterX = rectBoundingBox.left;\n hoverLabelIdealAlign = \"left\";\n } else {\n hoverCenterX = rectBoundingBox.left + rectBoundingBox.width;\n hoverLabelIdealAlign = \"right\";\n }\n var count = catViewModel.model.count;\n var catLabel = catViewModel.model.categoryLabel;\n var prob = count / catViewModel.parcatsViewModel.model.count;\n var labels = {\n countLabel: count,\n categoryLabel: catLabel,\n probabilityLabel: prob.toFixed(3)\n };\n var hoverinfoParts = [];\n if (catViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"count\") !== -1) {\n hoverinfoParts.push([\"Count:\", labels.countLabel].join(\" \"));\n }\n if (catViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"probability\") !== -1) {\n hoverinfoParts.push([\"P(\" + labels.categoryLabel + \"):\", labels.probabilityLabel].join(\" \"));\n }\n var hovertext = hoverinfoParts.join(\"
\");\n return {\n trace,\n x: scaleX * (hoverCenterX - rootBBox.left),\n y: scaleY * (hoverCenterY - rootBBox.top),\n text: hovertext,\n color: \"lightgray\",\n borderColor: \"black\",\n fontFamily: 'Monaco, \"Courier New\", monospace',\n fontSize: 12,\n fontColor: \"black\",\n idealAlign: hoverLabelIdealAlign,\n hovertemplate: trace.hovertemplate,\n hovertemplateLabels: labels,\n eventData: [{\n data: trace._input,\n fullData: trace,\n count,\n category: catLabel,\n probability: prob\n }]\n };\n }\n function createHoverLabelForDimensionHovermode(gd, rootBBox, bandElement) {\n var allHoverlabels = [];\n d3.select(bandElement.parentNode.parentNode).selectAll(\"g.category\").select(\"rect.catrect\").each(function() {\n var bandNode = this;\n allHoverlabels.push(createHoverLabelForCategoryHovermode(gd, rootBBox, bandNode));\n });\n return allHoverlabels;\n }\n function createHoverLabelForColorHovermode(gd, rootBBox, bandElement) {\n gd._fullLayout._calcInverseTransform(gd);\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n var bandBoundingBox = bandElement.getBoundingClientRect();\n var bandViewModel = d3.select(bandElement).datum();\n var catViewModel = bandViewModel.categoryViewModel;\n var parcatsViewModel = catViewModel.parcatsViewModel;\n var dimensionModel = parcatsViewModel.model.dimensions[catViewModel.model.dimensionInd];\n var trace = parcatsViewModel.trace;\n var hoverCenterY = bandBoundingBox.y + bandBoundingBox.height / 2;\n var hoverCenterX, hoverLabelIdealAlign;\n if (parcatsViewModel.dimensions.length > 1 && dimensionModel.displayInd === parcatsViewModel.dimensions.length - 1) {\n hoverCenterX = bandBoundingBox.left;\n hoverLabelIdealAlign = \"left\";\n } else {\n hoverCenterX = bandBoundingBox.left + bandBoundingBox.width;\n hoverLabelIdealAlign = \"right\";\n }\n var catLabel = catViewModel.model.categoryLabel;\n var totalCount = bandViewModel.parcatsViewModel.model.count;\n var bandColorCount = 0;\n bandViewModel.categoryViewModel.bands.forEach(function(b) {\n if (b.color === bandViewModel.color) {\n bandColorCount += b.count;\n }\n });\n var catCount = catViewModel.model.count;\n var colorCount = 0;\n parcatsViewModel.pathSelection.each(\n /** @param {PathViewModel} pathViewModel */\n function(pathViewModel) {\n if (pathViewModel.model.color === bandViewModel.color) {\n colorCount += pathViewModel.model.count;\n }\n }\n );\n var pColorAndCat = bandColorCount / totalCount;\n var pCatGivenColor = bandColorCount / colorCount;\n var pColorGivenCat = bandColorCount / catCount;\n var labels = {\n countLabel: bandColorCount,\n categoryLabel: catLabel,\n probabilityLabel: pColorAndCat.toFixed(3)\n };\n var hoverinfoParts = [];\n if (catViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"count\") !== -1) {\n hoverinfoParts.push([\"Count:\", labels.countLabel].join(\" \"));\n }\n if (catViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"probability\") !== -1) {\n hoverinfoParts.push(\"P(color \\u2229 \" + catLabel + \"): \" + labels.probabilityLabel);\n hoverinfoParts.push(\"P(\" + catLabel + \" | color): \" + pCatGivenColor.toFixed(3));\n hoverinfoParts.push(\"P(color | \" + catLabel + \"): \" + pColorGivenCat.toFixed(3));\n }\n var hovertext = hoverinfoParts.join(\"
\");\n var textColor = tinycolor.mostReadable(bandViewModel.color, [\"black\", \"white\"]);\n return {\n trace,\n x: scaleX * (hoverCenterX - rootBBox.left),\n y: scaleY * (hoverCenterY - rootBBox.top),\n // name: 'NAME',\n text: hovertext,\n color: bandViewModel.color,\n borderColor: \"black\",\n fontFamily: 'Monaco, \"Courier New\", monospace',\n fontColor: textColor,\n fontSize: 10,\n idealAlign: hoverLabelIdealAlign,\n hovertemplate: trace.hovertemplate,\n hovertemplateLabels: labels,\n eventData: [{\n data: trace._input,\n fullData: trace,\n category: catLabel,\n count: totalCount,\n probability: pColorAndCat,\n categorycount: catCount,\n colorcount: colorCount,\n bandcolorcount: bandColorCount\n }]\n };\n }\n function mouseoverCategoryBand(bandViewModel) {\n if (!bandViewModel.parcatsViewModel.dragDimension) {\n if (bandViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n var mouseY = d3.mouse(this)[1];\n if (mouseY < -1) {\n return;\n }\n var gd = bandViewModel.parcatsViewModel.graphDiv;\n var fullLayout = gd._fullLayout;\n var rootBBox = fullLayout._paperdiv.node().getBoundingClientRect();\n var hoveron = bandViewModel.parcatsViewModel.hoveron;\n var bandElement = this;\n if (hoveron === \"color\") {\n styleForColorHovermode(bandElement);\n emitPointsEventColorHovermode(bandElement, \"plotly_hover\", d3.event);\n } else {\n styleForCategoryHovermode(bandElement);\n emitPointsEventCategoryHovermode(bandElement, \"plotly_hover\", d3.event);\n }\n if (bandViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"none\") === -1) {\n var hoverItems;\n if (hoveron === \"category\") {\n hoverItems = createHoverLabelForCategoryHovermode(gd, rootBBox, bandElement);\n } else if (hoveron === \"color\") {\n hoverItems = createHoverLabelForColorHovermode(gd, rootBBox, bandElement);\n } else if (hoveron === \"dimension\") {\n hoverItems = createHoverLabelForDimensionHovermode(gd, rootBBox, bandElement);\n }\n if (hoverItems) {\n Fx.loneHover(hoverItems, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd\n });\n }\n }\n }\n }\n }\n function mouseoutCategory(bandViewModel) {\n var parcatsViewModel = bandViewModel.parcatsViewModel;\n if (!parcatsViewModel.dragDimension) {\n stylePathsNoHover(parcatsViewModel.pathSelection);\n styleCategoriesNoHover(parcatsViewModel.dimensionSelection.selectAll(\"g.category\"));\n styleBandsNoHover(parcatsViewModel.dimensionSelection.selectAll(\"g.category\").selectAll(\"rect.bandrect\"));\n Fx.loneUnhover(parcatsViewModel.graphDiv._fullLayout._hoverlayer.node());\n parcatsViewModel.pathSelection.sort(compareRawColor);\n if (parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n var hoveron = bandViewModel.parcatsViewModel.hoveron;\n var bandElement = this;\n if (hoveron === \"color\") {\n emitPointsEventColorHovermode(bandElement, \"plotly_unhover\", d3.event);\n } else {\n emitPointsEventCategoryHovermode(bandElement, \"plotly_unhover\", d3.event);\n }\n }\n }\n }\n function dragDimensionStart(d) {\n if (d.parcatsViewModel.arrangement === \"fixed\") {\n return;\n }\n d.dragDimensionDisplayInd = d.model.displayInd;\n d.initialDragDimensionDisplayInds = d.parcatsViewModel.model.dimensions.map(function(d2) {\n return d2.displayInd;\n });\n d.dragHasMoved = false;\n d.dragCategoryDisplayInd = null;\n d3.select(this).selectAll(\"g.category\").select(\"rect.catrect\").each(\n /** @param {CategoryViewModel} catViewModel */\n function(catViewModel) {\n var catMouseX = d3.mouse(this)[0];\n var catMouseY = d3.mouse(this)[1];\n if (-2 <= catMouseX && catMouseX <= catViewModel.width + 2 && -2 <= catMouseY && catMouseY <= catViewModel.height + 2) {\n d.dragCategoryDisplayInd = catViewModel.model.displayInd;\n d.initialDragCategoryDisplayInds = d.model.categories.map(function(c) {\n return c.displayInd;\n });\n catViewModel.model.dragY = catViewModel.y;\n Lib.raiseToTop(this.parentNode);\n d3.select(this.parentNode).selectAll(\"rect.bandrect\").each(function(bandViewModel) {\n if (bandViewModel.y < catMouseY && catMouseY <= bandViewModel.y + bandViewModel.height) {\n d.potentialClickBand = this;\n }\n });\n }\n }\n );\n d.parcatsViewModel.dragDimension = d;\n Fx.loneUnhover(d.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node());\n }\n function dragDimension(d) {\n if (d.parcatsViewModel.arrangement === \"fixed\") {\n return;\n }\n d.dragHasMoved = true;\n if (d.dragDimensionDisplayInd === null) {\n return;\n }\n var dragDimInd = d.dragDimensionDisplayInd;\n var prevDimInd = dragDimInd - 1;\n var nextDimInd = dragDimInd + 1;\n var dragDimension2 = d.parcatsViewModel.dimensions[dragDimInd];\n if (d.dragCategoryDisplayInd !== null) {\n var dragCategory = dragDimension2.categories[d.dragCategoryDisplayInd];\n dragCategory.model.dragY += d3.event.dy;\n var categoryY = dragCategory.model.dragY;\n var catDisplayInd = dragCategory.model.displayInd;\n var dimCategoryViews = dragDimension2.categories;\n var catAbove = dimCategoryViews[catDisplayInd - 1];\n var catBelow = dimCategoryViews[catDisplayInd + 1];\n if (catAbove !== void 0) {\n if (categoryY < catAbove.y + catAbove.height / 2) {\n dragCategory.model.displayInd = catAbove.model.displayInd;\n catAbove.model.displayInd = catDisplayInd;\n }\n }\n if (catBelow !== void 0) {\n if (categoryY + dragCategory.height > catBelow.y + catBelow.height / 2) {\n dragCategory.model.displayInd = catBelow.model.displayInd;\n catBelow.model.displayInd = catDisplayInd;\n }\n }\n d.dragCategoryDisplayInd = dragCategory.model.displayInd;\n }\n if (d.dragCategoryDisplayInd === null || d.parcatsViewModel.arrangement === \"freeform\") {\n dragDimension2.model.dragX = d3.event.x;\n var prevDimension = d.parcatsViewModel.dimensions[prevDimInd];\n var nextDimension = d.parcatsViewModel.dimensions[nextDimInd];\n if (prevDimension !== void 0) {\n if (dragDimension2.model.dragX < prevDimension.x + prevDimension.width) {\n dragDimension2.model.displayInd = prevDimension.model.displayInd;\n prevDimension.model.displayInd = dragDimInd;\n }\n }\n if (nextDimension !== void 0) {\n if (dragDimension2.model.dragX + dragDimension2.width > nextDimension.x) {\n dragDimension2.model.displayInd = nextDimension.model.displayInd;\n nextDimension.model.displayInd = d.dragDimensionDisplayInd;\n }\n }\n d.dragDimensionDisplayInd = dragDimension2.model.displayInd;\n }\n updateDimensionViewModels(d.parcatsViewModel);\n updatePathViewModels(d.parcatsViewModel);\n updateSvgCategories(d.parcatsViewModel);\n updateSvgPaths(d.parcatsViewModel);\n }\n function dragDimensionEnd(d) {\n if (d.parcatsViewModel.arrangement === \"fixed\") {\n return;\n }\n if (d.dragDimensionDisplayInd === null) {\n return;\n }\n d3.select(this).selectAll(\"text\").attr(\"font-weight\", \"normal\");\n var restyleData = {};\n var traceInd = getTraceIndex(d.parcatsViewModel);\n var finalDragDimensionDisplayInds = d.parcatsViewModel.model.dimensions.map(function(d2) {\n return d2.displayInd;\n });\n var anyDimsReordered = d.initialDragDimensionDisplayInds.some(function(initDimDisplay, dimInd) {\n return initDimDisplay !== finalDragDimensionDisplayInds[dimInd];\n });\n if (anyDimsReordered) {\n finalDragDimensionDisplayInds.forEach(function(finalDimDisplay, dimInd) {\n var containerInd = d.parcatsViewModel.model.dimensions[dimInd].containerInd;\n restyleData[\"dimensions[\" + containerInd + \"].displayindex\"] = finalDimDisplay;\n });\n }\n var anyCatsReordered = false;\n if (d.dragCategoryDisplayInd !== null) {\n var finalDragCategoryDisplayInds = d.model.categories.map(function(c) {\n return c.displayInd;\n });\n anyCatsReordered = d.initialDragCategoryDisplayInds.some(function(initCatDisplay, catInd) {\n return initCatDisplay !== finalDragCategoryDisplayInds[catInd];\n });\n if (anyCatsReordered) {\n var sortedCategoryModels = d.model.categories.slice().sort(\n function(a, b) {\n return a.displayInd - b.displayInd;\n }\n );\n var newCategoryArray = sortedCategoryModels.map(function(v) {\n return v.categoryValue;\n });\n var newCategoryLabels = sortedCategoryModels.map(function(v) {\n return v.categoryLabel;\n });\n restyleData[\"dimensions[\" + d.model.containerInd + \"].categoryarray\"] = [newCategoryArray];\n restyleData[\"dimensions[\" + d.model.containerInd + \"].ticktext\"] = [newCategoryLabels];\n restyleData[\"dimensions[\" + d.model.containerInd + \"].categoryorder\"] = \"array\";\n }\n }\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n if (!d.dragHasMoved && d.potentialClickBand) {\n if (d.parcatsViewModel.hoveron === \"color\") {\n emitPointsEventColorHovermode(d.potentialClickBand, \"plotly_click\", d3.event.sourceEvent);\n } else {\n emitPointsEventCategoryHovermode(d.potentialClickBand, \"plotly_click\", d3.event.sourceEvent);\n }\n }\n }\n d.model.dragX = null;\n if (d.dragCategoryDisplayInd !== null) {\n var dragCategory = d.parcatsViewModel.dimensions[d.dragDimensionDisplayInd].categories[d.dragCategoryDisplayInd];\n dragCategory.model.dragY = null;\n d.dragCategoryDisplayInd = null;\n }\n d.dragDimensionDisplayInd = null;\n d.parcatsViewModel.dragDimension = null;\n d.dragHasMoved = null;\n d.potentialClickBand = null;\n updateDimensionViewModels(d.parcatsViewModel);\n updatePathViewModels(d.parcatsViewModel);\n var transition = d3.transition().duration(300).ease(\"cubic-in-out\");\n transition.each(function() {\n updateSvgCategories(d.parcatsViewModel, true);\n updateSvgPaths(d.parcatsViewModel, true);\n }).each(\"end\", function() {\n if (anyDimsReordered || anyCatsReordered) {\n Plotly.restyle(d.parcatsViewModel.graphDiv, restyleData, [traceInd]);\n }\n });\n }\n function getTraceIndex(parcatsViewModel) {\n var traceInd;\n var allTraces = parcatsViewModel.graphDiv._fullData;\n for (var i = 0; i < allTraces.length; i++) {\n if (parcatsViewModel.key === allTraces[i].uid) {\n traceInd = i;\n break;\n }\n }\n return traceInd;\n }\n function updateSvgPaths(parcatsViewModel, hasTransition) {\n if (hasTransition === void 0) {\n hasTransition = false;\n }\n function transition(selection) {\n return hasTransition ? selection.transition() : selection;\n }\n parcatsViewModel.pathSelection.data(function(d) {\n return d.paths;\n }, key);\n transition(parcatsViewModel.pathSelection).attr(\"d\", function(d) {\n return d.svgD;\n });\n }\n function updateSvgCategories(parcatsViewModel, hasTransition) {\n if (hasTransition === void 0) {\n hasTransition = false;\n }\n function transition(selection) {\n return hasTransition ? selection.transition() : selection;\n }\n parcatsViewModel.dimensionSelection.data(function(d) {\n return d.dimensions;\n }, key);\n var categorySelection = parcatsViewModel.dimensionSelection.selectAll(\"g.category\").data(function(d) {\n return d.categories;\n }, key);\n transition(parcatsViewModel.dimensionSelection).attr(\"transform\", function(d) {\n return strTranslate(d.x, 0);\n });\n transition(categorySelection).attr(\"transform\", function(d) {\n return strTranslate(0, d.y);\n });\n var dimLabelSelection = categorySelection.select(\".dimlabel\");\n dimLabelSelection.text(function(d, i) {\n if (i === 0) {\n return d.parcatsViewModel.model.dimensions[d.model.dimensionInd].dimensionLabel;\n } else {\n return null;\n }\n });\n var catLabelSelection = categorySelection.select(\".catlabel\");\n catLabelSelection.attr(\n \"text-anchor\",\n function(d) {\n if (catInRightDim(d)) {\n return \"start\";\n } else {\n return \"end\";\n }\n }\n ).attr(\n \"x\",\n function(d) {\n if (catInRightDim(d)) {\n return d.width + 5;\n } else {\n return -5;\n }\n }\n ).each(function(d) {\n var newX;\n var newAnchor;\n if (catInRightDim(d)) {\n newX = d.width + 5;\n newAnchor = \"start\";\n } else {\n newX = -5;\n newAnchor = \"end\";\n }\n d3.select(this).selectAll(\"tspan\").attr(\"x\", newX).attr(\"text-anchor\", newAnchor);\n });\n var bandSelection = categorySelection.selectAll(\"rect.bandrect\").data(\n /** @param {CategoryViewModel} catViewModel*/\n function(catViewModel) {\n return catViewModel.bands;\n },\n key\n );\n var bandsSelectionEnter = bandSelection.enter().append(\"rect\").attr(\"class\", \"bandrect\").attr(\"cursor\", \"move\").attr(\"stroke-opacity\", 0).attr(\"fill\", function(d) {\n return d.color;\n }).attr(\"fill-opacity\", 0);\n bandSelection.attr(\"fill\", function(d) {\n return d.color;\n }).attr(\"width\", function(d) {\n return d.width;\n }).attr(\"height\", function(d) {\n return d.height;\n }).attr(\"y\", function(d) {\n return d.y;\n });\n styleBandsNoHover(bandsSelectionEnter);\n bandSelection.each(function() {\n Lib.raiseToTop(this);\n });\n bandSelection.exit().remove();\n }\n function createParcatsViewModel(graphDiv, layout, wrappedParcatsModel) {\n var parcatsModel = wrappedParcatsModel[0];\n var margin = layout.margin || { l: 80, r: 80, t: 100, b: 80 };\n var trace = parcatsModel.trace;\n var domain = trace.domain;\n var figureWidth = layout.width;\n var figureHeight = layout.height;\n var traceWidth = Math.floor(figureWidth * (domain.x[1] - domain.x[0]));\n var traceHeight = Math.floor(figureHeight * (domain.y[1] - domain.y[0]));\n var traceX = domain.x[0] * figureWidth + margin.l;\n var traceY = layout.height - domain.y[1] * layout.height + margin.t;\n var pathShape = trace.line.shape;\n var hoverinfoItems;\n if (trace.hoverinfo === \"all\") {\n hoverinfoItems = [\"count\", \"probability\"];\n } else {\n hoverinfoItems = (trace.hoverinfo || \"\").split(\"+\");\n }\n var parcatsViewModel = {\n trace,\n key: trace.uid,\n model: parcatsModel,\n x: traceX,\n y: traceY,\n width: traceWidth,\n height: traceHeight,\n hoveron: trace.hoveron,\n hoverinfoItems,\n arrangement: trace.arrangement,\n bundlecolors: trace.bundlecolors,\n sortpaths: trace.sortpaths,\n labelfont: trace.labelfont,\n categorylabelfont: trace.tickfont,\n pathShape,\n dragDimension: null,\n margin,\n paths: [],\n dimensions: [],\n graphDiv,\n traceSelection: null,\n pathSelection: null,\n dimensionSelection: null\n };\n if (parcatsModel.dimensions) {\n updateDimensionViewModels(parcatsViewModel);\n updatePathViewModels(parcatsViewModel);\n }\n return parcatsViewModel;\n }\n function buildSvgPath(leftXPositions, pathYs, dimWidths, pathHeight, curvature) {\n var xRefPoints1 = [];\n var xRefPoints2 = [];\n var refInterpolator;\n var d;\n for (d = 0; d < dimWidths.length - 1; d++) {\n refInterpolator = interpolateNumber(dimWidths[d] + leftXPositions[d], leftXPositions[d + 1]);\n xRefPoints1.push(refInterpolator(curvature));\n xRefPoints2.push(refInterpolator(1 - curvature));\n }\n var svgD = \"M \" + leftXPositions[0] + \",\" + pathYs[0];\n svgD += \"l\" + dimWidths[0] + \",0 \";\n for (d = 1; d < dimWidths.length; d++) {\n svgD += \"C\" + xRefPoints1[d - 1] + \",\" + pathYs[d - 1] + \" \" + xRefPoints2[d - 1] + \",\" + pathYs[d] + \" \" + leftXPositions[d] + \",\" + pathYs[d];\n svgD += \"l\" + dimWidths[d] + \",0 \";\n }\n svgD += \"l0,\" + pathHeight + \" \";\n svgD += \"l -\" + dimWidths[dimWidths.length - 1] + \",0 \";\n for (d = dimWidths.length - 2; d >= 0; d--) {\n svgD += \"C\" + xRefPoints2[d] + \",\" + (pathYs[d + 1] + pathHeight) + \" \" + xRefPoints1[d] + \",\" + (pathYs[d] + pathHeight) + \" \" + (leftXPositions[d] + dimWidths[d]) + \",\" + (pathYs[d] + pathHeight);\n svgD += \"l-\" + dimWidths[d] + \",0 \";\n }\n svgD += \"Z\";\n return svgD;\n }\n function updatePathViewModels(parcatsViewModel) {\n var dimensionViewModels = parcatsViewModel.dimensions;\n var parcatsModel = parcatsViewModel.model;\n var nextYPositions = dimensionViewModels.map(\n function(d2) {\n return d2.categories.map(\n function(c) {\n return c.y;\n }\n );\n }\n );\n var catToDisplayIndPerDim = parcatsViewModel.model.dimensions.map(\n function(d2) {\n return d2.categories.map(function(c) {\n return c.displayInd;\n });\n }\n );\n var dimToDisplayInd = parcatsViewModel.model.dimensions.map(function(d2) {\n return d2.displayInd;\n });\n var displayToDimInd = parcatsViewModel.dimensions.map(function(d2) {\n return d2.model.dimensionInd;\n });\n var leftXPositions = dimensionViewModels.map(\n function(d2) {\n return d2.x;\n }\n );\n var dimWidths = dimensionViewModels.map(function(d2) {\n return d2.width;\n });\n var pathModels = [];\n for (var p in parcatsModel.paths) {\n if (parcatsModel.paths.hasOwnProperty(p)) {\n pathModels.push(parcatsModel.paths[p]);\n }\n }\n function pathDisplayCategoryInds(pathModel2) {\n var dimensionInds = pathModel2.categoryInds.map(function(catInd2, dimInd) {\n return catToDisplayIndPerDim[dimInd][catInd2];\n });\n var displayInds = displayToDimInd.map(function(dimInd) {\n return dimensionInds[dimInd];\n });\n return displayInds;\n }\n pathModels.sort(function(v1, v2) {\n var sortArray1 = pathDisplayCategoryInds(v1);\n var sortArray2 = pathDisplayCategoryInds(v2);\n if (parcatsViewModel.sortpaths === \"backward\") {\n sortArray1.reverse();\n sortArray2.reverse();\n }\n sortArray1.push(v1.valueInds[0]);\n sortArray2.push(v2.valueInds[0]);\n if (parcatsViewModel.bundlecolors) {\n sortArray1.unshift(v1.rawColor);\n sortArray2.unshift(v2.rawColor);\n }\n if (sortArray1 < sortArray2) {\n return -1;\n }\n if (sortArray1 > sortArray2) {\n return 1;\n }\n return 0;\n });\n var pathViewModels = new Array(pathModels.length);\n var totalCount = dimensionViewModels[0].model.count;\n var totalHeight = dimensionViewModels[0].categories.map(function(c) {\n return c.height;\n }).reduce(function(v1, v2) {\n return v1 + v2;\n });\n for (var pathNumber = 0; pathNumber < pathModels.length; pathNumber++) {\n var pathModel = pathModels[pathNumber];\n var pathHeight;\n if (totalCount > 0) {\n pathHeight = totalHeight * (pathModel.count / totalCount);\n } else {\n pathHeight = 0;\n }\n var pathYs = new Array(nextYPositions.length);\n for (var d = 0; d < pathModel.categoryInds.length; d++) {\n var catInd = pathModel.categoryInds[d];\n var catDisplayInd = catToDisplayIndPerDim[d][catInd];\n var dimDisplayInd = dimToDisplayInd[d];\n pathYs[dimDisplayInd] = nextYPositions[dimDisplayInd][catDisplayInd];\n nextYPositions[dimDisplayInd][catDisplayInd] += pathHeight;\n var catViewModle = parcatsViewModel.dimensions[dimDisplayInd].categories[catDisplayInd];\n var numBands = catViewModle.bands.length;\n var lastCatBand = catViewModle.bands[numBands - 1];\n if (lastCatBand === void 0 || pathModel.rawColor !== lastCatBand.rawColor) {\n var bandY = lastCatBand === void 0 ? 0 : lastCatBand.y + lastCatBand.height;\n catViewModle.bands.push({\n key: bandY,\n color: pathModel.color,\n rawColor: pathModel.rawColor,\n height: pathHeight,\n width: catViewModle.width,\n count: pathModel.count,\n y: bandY,\n categoryViewModel: catViewModle,\n parcatsViewModel\n });\n } else {\n var currentBand = catViewModle.bands[numBands - 1];\n currentBand.height += pathHeight;\n currentBand.count += pathModel.count;\n }\n }\n var svgD;\n if (parcatsViewModel.pathShape === \"hspline\") {\n svgD = buildSvgPath(leftXPositions, pathYs, dimWidths, pathHeight, 0.5);\n } else {\n svgD = buildSvgPath(leftXPositions, pathYs, dimWidths, pathHeight, 0);\n }\n pathViewModels[pathNumber] = {\n key: pathModel.valueInds[0],\n model: pathModel,\n height: pathHeight,\n leftXs: leftXPositions,\n topYs: pathYs,\n dimWidths,\n svgD,\n parcatsViewModel\n };\n }\n parcatsViewModel.paths = pathViewModels;\n }\n function updateDimensionViewModels(parcatsViewModel) {\n var dimensionsIndInfo = parcatsViewModel.model.dimensions.map(function(d) {\n return { displayInd: d.displayInd, dimensionInd: d.dimensionInd };\n });\n dimensionsIndInfo.sort(function(a, b) {\n return a.displayInd - b.displayInd;\n });\n var dimensions = [];\n for (var displayInd in dimensionsIndInfo) {\n var dimensionInd = dimensionsIndInfo[displayInd].dimensionInd;\n var dimModel = parcatsViewModel.model.dimensions[dimensionInd];\n dimensions.push(createDimensionViewModel(parcatsViewModel, dimModel));\n }\n parcatsViewModel.dimensions = dimensions;\n }\n function createDimensionViewModel(parcatsViewModel, dimensionModel) {\n var categoryLabelPad = 40;\n var dimWidth = 16;\n var numDimensions = parcatsViewModel.model.dimensions.length;\n var displayInd = dimensionModel.displayInd;\n var dimDx;\n var dimX0;\n var dimX;\n if (numDimensions > 1) {\n dimDx = (parcatsViewModel.width - 2 * categoryLabelPad - dimWidth) / (numDimensions - 1);\n } else {\n dimDx = 0;\n }\n dimX0 = categoryLabelPad;\n dimX = dimX0 + dimDx * displayInd;\n var categories = [];\n var maxCats = parcatsViewModel.model.maxCats;\n var numCats = dimensionModel.categories.length;\n var catSpacing = 8;\n var totalCount = dimensionModel.count;\n var totalHeight = parcatsViewModel.height - catSpacing * (maxCats - 1);\n var nextCatHeight;\n var nextCatModel;\n var nextCat;\n var catInd;\n var catDisplayInd;\n var nextCatY = (maxCats - numCats) * catSpacing / 2;\n var categoryIndInfo = dimensionModel.categories.map(function(c) {\n return { displayInd: c.displayInd, categoryInd: c.categoryInd };\n });\n categoryIndInfo.sort(function(a, b) {\n return a.displayInd - b.displayInd;\n });\n for (catDisplayInd = 0; catDisplayInd < numCats; catDisplayInd++) {\n catInd = categoryIndInfo[catDisplayInd].categoryInd;\n nextCatModel = dimensionModel.categories[catInd];\n if (totalCount > 0) {\n nextCatHeight = nextCatModel.count / totalCount * totalHeight;\n } else {\n nextCatHeight = 0;\n }\n nextCat = {\n key: nextCatModel.valueInds[0],\n model: nextCatModel,\n width: dimWidth,\n height: nextCatHeight,\n y: nextCatModel.dragY !== null ? nextCatModel.dragY : nextCatY,\n bands: [],\n parcatsViewModel\n };\n nextCatY = nextCatY + nextCatHeight + catSpacing;\n categories.push(nextCat);\n }\n return {\n key: dimensionModel.dimensionInd,\n x: dimensionModel.dragX !== null ? dimensionModel.dragX : dimX,\n y: 0,\n width: dimWidth,\n model: dimensionModel,\n categories,\n parcatsViewModel,\n dragCategoryDisplayInd: null,\n dragDimensionDisplayInd: null,\n initialDragDimensionDisplayInds: null,\n initialDragCategoryDisplayInds: null,\n dragHasMoved: null,\n potentialClickBand: null\n };\n }\n }\n });\n\n // src/traces/parcats/plot.js\n var require_plot22 = __commonJS({\n \"src/traces/parcats/plot.js\"(exports, module) {\n \"use strict\";\n var parcats = require_parcats();\n module.exports = function plot(graphDiv, parcatsModels, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = graphDiv._fullLayout;\n var svg = fullLayout._paper;\n var size = fullLayout._size;\n parcats(\n graphDiv,\n svg,\n parcatsModels,\n {\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n transitionOpts,\n makeOnCompleteCallback\n );\n };\n }\n });\n\n // src/traces/parcats/base_plot.js\n var require_base_plot8 = __commonJS({\n \"src/traces/parcats/base_plot.js\"(exports) {\n \"use strict\";\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var parcatsPlot = require_plot22();\n var PARCATS = \"parcats\";\n exports.name = PARCATS;\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n var cdModuleAndOthers = getModuleCalcData(gd.calcdata, PARCATS);\n if (cdModuleAndOthers.length) {\n var calcData = cdModuleAndOthers[0];\n parcatsPlot(gd, calcData, transitionOpts, makeOnCompleteCallback);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = oldFullLayout._has && oldFullLayout._has(\"parcats\");\n var hasTable = newFullLayout._has && newFullLayout._has(\"parcats\");\n if (hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll(\".parcats\").remove();\n }\n };\n }\n });\n\n // src/traces/parcats/index.js\n var require_parcats2 = __commonJS({\n \"src/traces/parcats/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes53(),\n supplyDefaults: require_defaults49(),\n calc: require_calc32(),\n plot: require_plot22(),\n colorbar: {\n container: \"line\",\n min: \"cmin\",\n max: \"cmax\"\n },\n moduleType: \"trace\",\n name: \"parcats\",\n basePlotModule: require_base_plot8(),\n categories: [\"noOpacity\"],\n meta: {}\n };\n }\n });\n\n // lib/parcats.js\n var require_parcats3 = __commonJS({\n \"lib/parcats.js\"(exports, module) {\n \"use strict\";\n module.exports = require_parcats2();\n }\n });\n\n // src/plots/mapbox/constants.js\n var require_constants25 = __commonJS({\n \"src/plots/mapbox/constants.js\"(exports, module) {\n \"use strict\";\n var sortObjectKeys = require_sort_object_keys();\n var requiredVersion = \"1.13.4\";\n var OSM = '\\xA9 OpenStreetMap contributors';\n var carto = [\n '\\xA9 Carto',\n OSM\n ].join(\" \");\n var stamenTerrainOrToner = [\n 'Map tiles by Stamen Design',\n 'under CC BY 3.0',\n \"|\",\n 'Data by OpenStreetMap contributors',\n 'under ODbL'\n ].join(\" \");\n var stamenWaterColor = [\n 'Map tiles by Stamen Design',\n 'under CC BY 3.0',\n \"|\",\n 'Data by OpenStreetMap contributors',\n 'under CC BY SA'\n ].join(\" \");\n var stylesNonMapbox = {\n \"open-street-map\": {\n id: \"osm\",\n version: 8,\n sources: {\n \"plotly-osm-tiles\": {\n type: \"raster\",\n attribution: OSM,\n tiles: [\n \"https://a.tile.openstreetmap.org/{z}/{x}/{y}.png\",\n \"https://b.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n ],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-osm-tiles\",\n type: \"raster\",\n source: \"plotly-osm-tiles\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"white-bg\": {\n id: \"white-bg\",\n version: 8,\n sources: {},\n layers: [{\n id: \"white-bg\",\n type: \"background\",\n paint: { \"background-color\": \"#FFFFFF\" },\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"carto-positron\": {\n id: \"carto-positron\",\n version: 8,\n sources: {\n \"plotly-carto-positron\": {\n type: \"raster\",\n attribution: carto,\n tiles: [\"https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-carto-positron\",\n type: \"raster\",\n source: \"plotly-carto-positron\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"carto-darkmatter\": {\n id: \"carto-darkmatter\",\n version: 8,\n sources: {\n \"plotly-carto-darkmatter\": {\n type: \"raster\",\n attribution: carto,\n tiles: [\"https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-carto-darkmatter\",\n type: \"raster\",\n source: \"plotly-carto-darkmatter\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"stamen-terrain\": {\n id: \"stamen-terrain\",\n version: 8,\n sources: {\n \"plotly-stamen-terrain\": {\n type: \"raster\",\n attribution: stamenTerrainOrToner,\n tiles: [\"https://tiles.stadiamaps.com/tiles/stamen_terrain/{z}/{x}/{y}.png?api_key=\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-stamen-terrain\",\n type: \"raster\",\n source: \"plotly-stamen-terrain\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"stamen-toner\": {\n id: \"stamen-toner\",\n version: 8,\n sources: {\n \"plotly-stamen-toner\": {\n type: \"raster\",\n attribution: stamenTerrainOrToner,\n tiles: [\"https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png?api_key=\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-stamen-toner\",\n type: \"raster\",\n source: \"plotly-stamen-toner\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"stamen-watercolor\": {\n id: \"stamen-watercolor\",\n version: 8,\n sources: {\n \"plotly-stamen-watercolor\": {\n type: \"raster\",\n attribution: stamenWaterColor,\n tiles: [\"https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg?api_key=\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-stamen-watercolor\",\n type: \"raster\",\n source: \"plotly-stamen-watercolor\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n }\n };\n var styleValuesNonMapbox = sortObjectKeys(stylesNonMapbox);\n module.exports = {\n requiredVersion,\n styleUrlPrefix: \"mapbox://styles/mapbox/\",\n styleUrlSuffix: \"v9\",\n styleValuesMapbox: [\"basic\", \"streets\", \"outdoors\", \"light\", \"dark\", \"satellite\", \"satellite-streets\"],\n styleValueDflt: \"basic\",\n stylesNonMapbox,\n styleValuesNonMapbox,\n traceLayerPrefix: \"plotly-trace-layer-\",\n layoutLayerPrefix: \"plotly-layout-layer-\",\n wrongVersionErrorMsg: [\n \"Your custom plotly.js bundle is not using the correct mapbox-gl version\",\n \"Please install @plotly/mapbox-gl@\" + requiredVersion + \".\"\n ].join(\"\\n\"),\n noAccessTokenErrorMsg: [\n \"Missing Mapbox access token.\",\n \"Mapbox trace type require a Mapbox access token to be registered.\",\n \"For example:\",\n \" Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });\",\n \"More info here: https://www.mapbox.com/help/define-access-token/\"\n ].join(\"\\n\"),\n missingStyleErrorMsg: [\n \"No valid mapbox style found, please set `mapbox.style` to one of:\",\n styleValuesNonMapbox.join(\", \"),\n \"or register a Mapbox access token to use a Mapbox-served style.\"\n ].join(\"\\n\"),\n multipleTokensErrorMsg: [\n \"Set multiple mapbox access token across different mapbox subplot,\",\n \"using first token found as mapbox-gl does not allow multipleaccess tokens on the same page.\"\n ].join(\"\\n\"),\n mapOnErrorMsg: \"Mapbox error.\",\n // Mapbox logo for static export\n mapboxLogo: {\n path0: \"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z\",\n path1: \"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z\",\n path2: \"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z\",\n polygon: \"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34\"\n },\n // a subset of node_modules/mapbox-gl/dist/mapbox-gl.css\n styleRules: {\n map: \"overflow:hidden;position:relative;\",\n \"missing-css\": \"display:none;\",\n canary: \"background-color:salmon;\",\n // Reusing CSS directives from: https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.1/mapbox-gl.css\n \"ctrl-bottom-left\": \"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;\",\n \"ctrl-bottom-right\": \"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;\",\n ctrl: \"clear: both; pointer-events: auto; transform: translate(0, 0);\",\n // Compact ctrl\n \"ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner\": \"display: none;\",\n \"ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner\": \"display: block; margin-top:2px\",\n \"ctrl-attrib.mapboxgl-compact:hover\": \"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;\",\n \"ctrl-attrib.mapboxgl-compact::after\": `content: \"\"; cursor: pointer; position: absolute; background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"%3E %3Cpath fill=\"%23333333\" fill-rule=\"evenodd\" d=\"M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0\"/%3E %3C/svg%3E'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;`,\n \"ctrl-attrib.mapboxgl-compact\": \"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;\",\n \"ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after\": \"bottom: 0; right: 0\",\n \"ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after\": \"bottom: 0; left: 0\",\n \"ctrl-bottom-left .mapboxgl-ctrl\": \"margin: 0 0 10px 10px; float: left;\",\n \"ctrl-bottom-right .mapboxgl-ctrl\": \"margin: 0 10px 10px 0; float: right;\",\n \"ctrl-attrib\": \"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px\",\n \"ctrl-attrib a\": \"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px\",\n \"ctrl-attrib a:hover\": \"color: inherit; text-decoration: underline;\",\n \"ctrl-attrib .mapbox-improve-map\": \"font-weight: bold; margin-left: 2px;\",\n \"attrib-empty\": \"display: none;\",\n // Compact Mapbox logo without text\n \"ctrl-logo\": `display:block; width: 21px; height: 21px; background-image: url('data:image/svg+xml;charset=utf-8,%3C?xml version=\"1.0\" encoding=\"utf-8\"?%3E %3Csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 21 21\" style=\"enable-background:new 0 0 21 21;\" xml:space=\"preserve\"%3E%3Cg transform=\"translate(0,0.01)\"%3E%3Cpath d=\"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z\" style=\"opacity:0.9;fill:%23ffffff;enable-background:new\" class=\"st0\"/%3E%3Cpath d=\"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z\" style=\"opacity:0.35;enable-background:new\" class=\"st1\"/%3E%3Cpath d=\"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z\" style=\"opacity:0.35;enable-background:new\" class=\"st1\"/%3E%3Cpolygon points=\"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 \" style=\"opacity:0.9;fill:%23ffffff;enable-background:new\" class=\"st0\"/%3E%3C/g%3E%3C/svg%3E')`\n // Mapbox logo WITH text below (commented out for now)\n // 'ctrl-logo': 'width: 85px; height: 21px; margin: 0 0 -3px -3px; display: block; background-repeat: no-repeat; cursor: pointer; background-image: url(\\'data:image/svg+xml;charset=utf-8,%3C?xml version=\"1.0\" encoding=\"utf-8\"?%3E%3Csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 84.49 21\" style=\"enable-background:new 0 0 84.49 21;\" xml:space=\"preserve\"%3E%3Cg%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M83.25,14.26c0,0.12-0.09,0.21-0.21,0.21h-1.61c-0.13,0-0.24-0.06-0.3-0.17l-1.44-2.39l-1.44,2.39 c-0.06,0.11-0.18,0.17-0.3,0.17h-1.61c-0.04,0-0.08-0.01-0.12-0.03c-0.09-0.06-0.13-0.19-0.06-0.28l0,0l2.43-3.68L76.2,6.84 c-0.02-0.03-0.03-0.07-0.03-0.12c0-0.12,0.09-0.21,0.21-0.21h1.61c0.13,0,0.24,0.06,0.3,0.17l1.41,2.36l1.4-2.35 c0.06-0.11,0.18-0.17,0.3-0.17H83c0.04,0,0.08,0.01,0.12,0.03c0.09,0.06,0.13,0.19,0.06,0.28l0,0l-2.37,3.63l2.43,3.67 C83.24,14.18,83.25,14.22,83.25,14.26z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M66.24,9.59c-0.39-1.88-1.96-3.28-3.84-3.28c-1.03,0-2.03,0.42-2.73,1.18V3.51c0-0.13-0.1-0.23-0.23-0.23h-1.4 c-0.13,0-0.23,0.11-0.23,0.23v10.72c0,0.13,0.1,0.23,0.23,0.23h1.4c0.13,0,0.23-0.11,0.23-0.23V13.5c0.71,0.75,1.7,1.18,2.73,1.18 c1.88,0,3.45-1.41,3.84-3.29C66.37,10.79,66.37,10.18,66.24,9.59L66.24,9.59z M62.08,13c-1.32,0-2.39-1.11-2.41-2.48v-0.06 c0.02-1.38,1.09-2.48,2.41-2.48s2.42,1.12,2.42,2.51S63.41,13,62.08,13z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M71.67,6.32c-1.98-0.01-3.72,1.35-4.16,3.29c-0.13,0.59-0.13,1.19,0,1.77c0.44,1.94,2.17,3.32,4.17,3.3 c2.35,0,4.26-1.87,4.26-4.19S74.04,6.32,71.67,6.32z M71.65,13.01c-1.33,0-2.42-1.12-2.42-2.51s1.08-2.52,2.42-2.52 c1.33,0,2.42,1.12,2.42,2.51S72.99,13,71.65,13.01L71.65,13.01z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M62.08,7.98c-1.32,0-2.39,1.11-2.41,2.48v0.06C59.68,11.9,60.75,13,62.08,13s2.42-1.12,2.42-2.51 S63.41,7.98,62.08,7.98z M62.08,11.76c-0.63,0-1.14-0.56-1.17-1.25v-0.04c0.01-0.69,0.54-1.25,1.17-1.25 c0.63,0,1.17,0.57,1.17,1.27C63.24,11.2,62.73,11.76,62.08,11.76z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M71.65,7.98c-1.33,0-2.42,1.12-2.42,2.51S70.32,13,71.65,13s2.42-1.12,2.42-2.51S72.99,7.98,71.65,7.98z M71.65,11.76c-0.64,0-1.17-0.57-1.17-1.27c0-0.7,0.53-1.26,1.17-1.26s1.17,0.57,1.17,1.27C72.82,11.21,72.29,11.76,71.65,11.76z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M45.74,6.53h-1.4c-0.13,0-0.23,0.11-0.23,0.23v0.73c-0.71-0.75-1.7-1.18-2.73-1.18 c-2.17,0-3.94,1.87-3.94,4.19s1.77,4.19,3.94,4.19c1.04,0,2.03-0.43,2.73-1.19v0.73c0,0.13,0.1,0.23,0.23,0.23h1.4 c0.13,0,0.23-0.11,0.23-0.23V6.74c0-0.12-0.09-0.22-0.22-0.22C45.75,6.53,45.75,6.53,45.74,6.53z M44.12,10.53 C44.11,11.9,43.03,13,41.71,13s-2.42-1.12-2.42-2.51s1.08-2.52,2.4-2.52c1.33,0,2.39,1.11,2.41,2.48L44.12,10.53z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M41.71,7.98c-1.33,0-2.42,1.12-2.42,2.51S40.37,13,41.71,13s2.39-1.11,2.41-2.48v-0.06 C44.1,9.09,43.03,7.98,41.71,7.98z M40.55,10.49c0-0.7,0.52-1.27,1.17-1.27c0.64,0,1.14,0.56,1.17,1.25v0.04 c-0.01,0.68-0.53,1.24-1.17,1.24C41.08,11.75,40.55,11.19,40.55,10.49z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M52.41,6.32c-1.03,0-2.03,0.42-2.73,1.18V6.75c0-0.13-0.1-0.23-0.23-0.23h-1.4c-0.13,0-0.23,0.11-0.23,0.23 v10.72c0,0.13,0.1,0.23,0.23,0.23h1.4c0.13,0,0.23-0.1,0.23-0.23V13.5c0.71,0.75,1.7,1.18,2.74,1.18c2.17,0,3.94-1.87,3.94-4.19 S54.58,6.32,52.41,6.32z M52.08,13.01c-1.32,0-2.39-1.11-2.42-2.48v-0.07c0.02-1.38,1.09-2.49,2.4-2.49c1.32,0,2.41,1.12,2.41,2.51 S53.4,13,52.08,13.01L52.08,13.01z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M52.08,7.98c-1.32,0-2.39,1.11-2.42,2.48v0.06c0.03,1.38,1.1,2.48,2.42,2.48s2.41-1.12,2.41-2.51 S53.4,7.98,52.08,7.98z M52.08,11.76c-0.63,0-1.14-0.56-1.17-1.25v-0.04c0.01-0.69,0.54-1.25,1.17-1.25c0.63,0,1.17,0.58,1.17,1.27 S52.72,11.76,52.08,11.76z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M36.08,14.24c0,0.13-0.1,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68c0-0.98-0.74-1.71-1.62-1.71 c-0.8,0-1.46,0.7-1.59,1.62l0.01,4.66c0,0.13-0.11,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68 c0-0.98-0.74-1.71-1.62-1.71c-0.85,0-1.54,0.79-1.6,1.8v4.48c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V6.74 c0.01-0.13,0.1-0.22,0.23-0.22h1.4c0.13,0,0.22,0.11,0.23,0.22V7.4c0.5-0.68,1.3-1.09,2.16-1.1h0.03c1.09,0,2.09,0.6,2.6,1.55 c0.45-0.95,1.4-1.55,2.44-1.56c1.62,0,2.93,1.25,2.9,2.78L36.08,14.24z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M84.34,13.59l-0.07-0.13l-1.96-2.99l1.94-2.95c0.44-0.67,0.26-1.56-0.41-2.02c-0.02,0-0.03,0-0.04-0.01 c-0.23-0.15-0.5-0.22-0.78-0.22h-1.61c-0.56,0-1.08,0.29-1.37,0.78L79.72,6.6l-0.34-0.56C79.09,5.56,78.57,5.27,78,5.27h-1.6 c-0.6,0-1.13,0.37-1.35,0.92c-2.19-1.66-5.28-1.47-7.26,0.45c-0.35,0.34-0.65,0.72-0.89,1.14c-0.9-1.62-2.58-2.72-4.5-2.72 c-0.5,0-1.01,0.07-1.48,0.23V3.51c0-0.82-0.66-1.48-1.47-1.48h-1.4c-0.81,0-1.47,0.66-1.47,1.47v3.75 c-0.95-1.36-2.5-2.18-4.17-2.19c-0.74,0-1.46,0.16-2.12,0.47c-0.24-0.17-0.54-0.26-0.84-0.26h-1.4c-0.45,0-0.87,0.21-1.15,0.56 c-0.02-0.03-0.04-0.05-0.07-0.08c-0.28-0.3-0.68-0.47-1.09-0.47h-1.39c-0.3,0-0.6,0.09-0.84,0.26c-0.67-0.3-1.39-0.46-2.12-0.46 c-1.83,0-3.43,1-4.37,2.5c-0.2-0.46-0.48-0.89-0.83-1.25c-0.8-0.81-1.89-1.25-3.02-1.25h-0.01c-0.89,0.01-1.75,0.33-2.46,0.88 c-0.74-0.57-1.64-0.88-2.57-0.88H28.1c-0.29,0-0.58,0.03-0.86,0.11c-0.28,0.06-0.56,0.16-0.82,0.28c-0.21-0.12-0.45-0.18-0.7-0.18 h-1.4c-0.82,0-1.47,0.66-1.47,1.47v7.5c0,0.82,0.66,1.47,1.47,1.47h1.4c0.82,0,1.48-0.66,1.48-1.48l0,0V9.79 c0.03-0.36,0.23-0.59,0.36-0.59c0.18,0,0.38,0.18,0.38,0.47v4.57c0,0.82,0.66,1.47,1.47,1.47h1.41c0.82,0,1.47-0.66,1.47-1.47 l-0.01-4.57c0.06-0.32,0.25-0.47,0.35-0.47c0.18,0,0.38,0.18,0.38,0.47v4.57c0,0.82,0.66,1.47,1.47,1.47h1.41 c0.82,0,1.47-0.66,1.47-1.47v-0.38c0.96,1.29,2.46,2.06,4.06,2.06c0.74,0,1.46-0.16,2.12-0.47c0.24,0.17,0.54,0.26,0.84,0.26h1.39 c0.3,0,0.6-0.09,0.84-0.26v2.01c0,0.82,0.66,1.47,1.47,1.47h1.4c0.82,0,1.47-0.66,1.47-1.47v-1.77c0.48,0.15,0.99,0.23,1.49,0.22 c1.7,0,3.22-0.87,4.17-2.2v0.52c0,0.82,0.66,1.47,1.47,1.47h1.4c0.3,0,0.6-0.09,0.84-0.26c0.66,0.31,1.39,0.47,2.12,0.47 c1.92,0,3.6-1.1,4.49-2.73c1.54,2.65,4.95,3.53,7.58,1.98c0.18-0.11,0.36-0.22,0.53-0.36c0.22,0.55,0.76,0.91,1.35,0.9H78 c0.56,0,1.08-0.29,1.37-0.78l0.37-0.61l0.37,0.61c0.29,0.48,0.81,0.78,1.38,0.78h1.6c0.81,0,1.46-0.66,1.45-1.46 C84.49,14.02,84.44,13.8,84.34,13.59L84.34,13.59z M35.86,14.47h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68 c0-0.98-0.74-1.71-1.62-1.71c-0.8,0-1.46,0.7-1.59,1.62l0.01,4.66c0,0.13-0.1,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23 V9.68c0-0.98-0.74-1.71-1.62-1.71c-0.85,0-1.54,0.79-1.6,1.8v4.48c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23 V6.74c0.01-0.13,0.11-0.22,0.23-0.22h1.4c0.13,0,0.22,0.11,0.23,0.22V7.4c0.5-0.68,1.3-1.09,2.16-1.1h0.03 c1.09,0,2.09,0.6,2.6,1.55c0.45-0.95,1.4-1.55,2.44-1.56c1.62,0,2.93,1.25,2.9,2.78l0.01,5.16C36.09,14.36,35.98,14.46,35.86,14.47 L35.86,14.47z M45.97,14.24c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V13.5c-0.7,0.76-1.69,1.18-2.72,1.18 c-2.17,0-3.94-1.87-3.94-4.19s1.77-4.19,3.94-4.19c1.03,0,2.02,0.43,2.73,1.18V6.74c0-0.13,0.1-0.23,0.23-0.23h1.4 c0.12-0.01,0.22,0.08,0.23,0.21c0,0.01,0,0.01,0,0.02v7.51h-0.01V14.24z M52.41,14.67c-1.03,0-2.02-0.43-2.73-1.18v3.97 c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.1-0.23-0.23V6.75c0-0.13,0.1-0.22,0.23-0.22h1.4c0.13,0,0.23,0.11,0.23,0.23v0.73 c0.71-0.76,1.7-1.18,2.73-1.18c2.17,0,3.94,1.86,3.94,4.18S54.58,14.67,52.41,14.67z M66.24,11.39c-0.39,1.87-1.96,3.29-3.84,3.29 c-1.03,0-2.02-0.43-2.73-1.18v0.73c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V3.51c0-0.13,0.1-0.23,0.23-0.23 h1.4c0.13,0,0.23,0.11,0.23,0.23v3.97c0.71-0.75,1.7-1.18,2.73-1.17c1.88,0,3.45,1.4,3.84,3.28C66.37,10.19,66.37,10.8,66.24,11.39 L66.24,11.39L66.24,11.39z M71.67,14.68c-2,0.01-3.73-1.35-4.17-3.3c-0.13-0.59-0.13-1.19,0-1.77c0.44-1.94,2.17-3.31,4.17-3.3 c2.36,0,4.26,1.87,4.26,4.19S74.03,14.68,71.67,14.68L71.67,14.68z M83.04,14.47h-1.61c-0.13,0-0.24-0.06-0.3-0.17l-1.44-2.39 l-1.44,2.39c-0.06,0.11-0.18,0.17-0.3,0.17h-1.61c-0.04,0-0.08-0.01-0.12-0.03c-0.09-0.06-0.13-0.19-0.06-0.28l0,0l2.43-3.68 L76.2,6.84c-0.02-0.03-0.03-0.07-0.03-0.12c0-0.12,0.09-0.21,0.21-0.21h1.61c0.13,0,0.24,0.06,0.3,0.17l1.41,2.36l1.41-2.36 c0.06-0.11,0.18-0.17,0.3-0.17h1.61c0.04,0,0.08,0.01,0.12,0.03c0.09,0.06,0.13,0.19,0.06,0.28l0,0l-2.38,3.64l2.43,3.67 c0.02,0.03,0.03,0.07,0.03,0.12C83.25,14.38,83.16,14.47,83.04,14.47L83.04,14.47L83.04,14.47z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M10.5,1.24c-5.11,0-9.25,4.15-9.25,9.25s4.15,9.25,9.25,9.25s9.25-4.15,9.25-9.25 C19.75,5.38,15.61,1.24,10.5,1.24z M14.89,12.77c-1.93,1.93-4.78,2.31-6.7,2.31c-0.7,0-1.41-0.05-2.1-0.16c0,0-1.02-5.64,2.14-8.81 c0.83-0.83,1.95-1.28,3.13-1.28c1.27,0,2.49,0.51,3.39,1.42C16.59,8.09,16.64,11,14.89,12.77z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M10.5-0.01C4.7-0.01,0,4.7,0,10.49s4.7,10.5,10.5,10.5S21,16.29,21,10.49C20.99,4.7,16.3-0.01,10.5-0.01z M10.5,19.74c-5.11,0-9.25-4.15-9.25-9.25s4.14-9.26,9.25-9.26s9.25,4.15,9.25,9.25C19.75,15.61,15.61,19.74,10.5,19.74z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M14.74,6.25C12.9,4.41,9.98,4.35,8.23,6.1c-3.16,3.17-2.14,8.81-2.14,8.81s5.64,1.02,8.81-2.14 C16.64,11,16.59,8.09,14.74,6.25z M12.47,10.34l-0.91,1.87l-0.9-1.87L8.8,9.43l1.86-0.9l0.9-1.87l0.91,1.87l1.86,0.9L12.47,10.34z\"/%3E %3Cpolygon class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" points=\"14.33,9.43 12.47,10.34 11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 \"/%3E%3C/g%3E%3C/svg%3E\\');'\n }\n };\n }\n });\n\n // src/plots/mapbox/layout_attributes.js\n var require_layout_attributes19 = __commonJS({\n \"src/plots/mapbox/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var defaultLine = require_color().defaultLine;\n var domainAttrs = require_domain().attributes;\n var fontAttrs = require_font_attributes();\n var textposition = require_attributes12().textposition;\n var overrideAll = require_edit_types().overrideAll;\n var templatedArray = require_plot_template().templatedArray;\n var constants = require_constants25();\n var fontAttr = fontAttrs({\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n fontAttr.family.dflt = \"Open Sans Regular, Arial Unicode MS Regular\";\n var attrs = module.exports = overrideAll({\n _arrayAttrRegexps: [Lib.counterRegex(\"mapbox\", \".layers\", true)],\n domain: domainAttrs({ name: \"mapbox\" }),\n accesstoken: {\n valType: \"string\",\n noBlank: true,\n strict: true\n },\n style: {\n valType: \"any\",\n values: constants.styleValuesMapbox.concat(constants.styleValuesNonMapbox),\n dflt: constants.styleValueDflt\n },\n center: {\n lon: {\n valType: \"number\",\n dflt: 0\n },\n lat: {\n valType: \"number\",\n dflt: 0\n }\n },\n zoom: {\n valType: \"number\",\n dflt: 1\n },\n bearing: {\n valType: \"number\",\n dflt: 0\n },\n pitch: {\n valType: \"number\",\n dflt: 0\n },\n bounds: {\n west: {\n valType: \"number\"\n },\n east: {\n valType: \"number\"\n },\n south: {\n valType: \"number\"\n },\n north: {\n valType: \"number\"\n }\n },\n layers: templatedArray(\"layer\", {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n sourcetype: {\n valType: \"enumerated\",\n values: [\"geojson\", \"vector\", \"raster\", \"image\"],\n dflt: \"geojson\"\n },\n source: {\n valType: \"any\"\n },\n sourcelayer: {\n valType: \"string\",\n dflt: \"\"\n },\n sourceattribution: {\n valType: \"string\"\n },\n type: {\n valType: \"enumerated\",\n values: [\"circle\", \"line\", \"fill\", \"symbol\", \"raster\"],\n dflt: \"circle\"\n },\n coordinates: {\n valType: \"any\"\n },\n // attributes shared between all types\n below: {\n valType: \"string\"\n },\n color: {\n valType: \"color\",\n dflt: defaultLine\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n minzoom: {\n valType: \"number\",\n min: 0,\n max: 24,\n dflt: 0\n },\n maxzoom: {\n valType: \"number\",\n min: 0,\n max: 24,\n dflt: 24\n },\n // type-specific style attributes\n circle: {\n radius: {\n valType: \"number\",\n dflt: 15\n }\n },\n line: {\n width: {\n valType: \"number\",\n dflt: 2\n },\n dash: {\n valType: \"data_array\"\n }\n },\n fill: {\n outlinecolor: {\n valType: \"color\",\n dflt: defaultLine\n }\n },\n symbol: {\n icon: {\n valType: \"string\",\n dflt: \"marker\"\n },\n iconsize: {\n valType: \"number\",\n dflt: 10\n },\n text: {\n valType: \"string\",\n dflt: \"\"\n },\n placement: {\n valType: \"enumerated\",\n values: [\"point\", \"line\", \"line-center\"],\n dflt: \"point\"\n },\n textfont: fontAttr,\n textposition: Lib.extendFlat({}, textposition, { arrayOk: false })\n }\n })\n }, \"plot\", \"from-root\");\n attrs.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n }\n });\n\n // src/traces/scattermapbox/attributes.js\n var require_attributes54 = __commonJS({\n \"src/traces/scattermapbox/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterGeoAttrs = require_attributes48();\n var scatterAttrs = require_attributes12();\n var mapboxAttrs = require_layout_attributes19();\n var baseAttrs = require_attributes2();\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var mapboxLayoutAtributes = require_layout_attributes19();\n var lineAttrs = scatterGeoAttrs.line;\n var markerAttrs = scatterGeoAttrs.marker;\n module.exports = overrideAll({\n lon: scatterGeoAttrs.lon,\n lat: scatterGeoAttrs.lat,\n cluster: {\n enabled: {\n valType: \"boolean\"\n },\n maxzoom: extendFlat({}, mapboxLayoutAtributes.layers.maxzoom, {}),\n step: {\n valType: \"number\",\n arrayOk: true,\n dflt: -1,\n min: -1\n },\n size: {\n valType: \"number\",\n arrayOk: true,\n dflt: 20,\n min: 0\n },\n color: {\n valType: \"color\",\n arrayOk: true\n },\n opacity: extendFlat({}, markerAttrs.opacity, {\n dflt: 1\n })\n },\n // locations\n // locationmode\n mode: extendFlat({}, scatterAttrs.mode, {\n dflt: \"markers\"\n }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"lat\", \"lon\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width\n // TODO\n // dash: dash\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: extendFlat(\n {\n symbol: {\n valType: \"string\",\n dflt: \"circle\",\n arrayOk: true\n },\n angle: {\n valType: \"number\",\n dflt: \"auto\",\n arrayOk: true\n },\n allowoverlap: {\n valType: \"boolean\",\n dflt: false\n },\n opacity: markerAttrs.opacity,\n size: markerAttrs.size,\n sizeref: markerAttrs.sizeref,\n sizemin: markerAttrs.sizemin,\n sizemode: markerAttrs.sizemode\n },\n colorScaleAttrs(\"marker\")\n // line\n ),\n fill: scatterGeoAttrs.fill,\n fillcolor: makeFillcolorAttr(),\n textfont: mapboxAttrs.layers.symbol.textfont,\n textposition: mapboxAttrs.layers.symbol.textposition,\n below: {\n valType: \"string\"\n },\n selected: {\n marker: scatterAttrs.selected.marker\n },\n unselected: {\n marker: scatterAttrs.unselected.marker\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs()\n }, \"calc\", \"nested\");\n }\n });\n\n // src/traces/scattermapbox/constants.js\n var require_constants26 = __commonJS({\n \"src/traces/scattermapbox/constants.js\"(exports, module) {\n \"use strict\";\n var supportedFonts = [\n \"Metropolis Black Italic\",\n \"Metropolis Black\",\n \"Metropolis Bold Italic\",\n \"Metropolis Bold\",\n \"Metropolis Extra Bold Italic\",\n \"Metropolis Extra Bold\",\n \"Metropolis Extra Light Italic\",\n \"Metropolis Extra Light\",\n \"Metropolis Light Italic\",\n \"Metropolis Light\",\n \"Metropolis Medium Italic\",\n \"Metropolis Medium\",\n \"Metropolis Regular Italic\",\n \"Metropolis Regular\",\n \"Metropolis Semi Bold Italic\",\n \"Metropolis Semi Bold\",\n \"Metropolis Thin Italic\",\n \"Metropolis Thin\",\n \"Open Sans Bold Italic\",\n \"Open Sans Bold\",\n \"Open Sans Extrabold Italic\",\n \"Open Sans Extrabold\",\n \"Open Sans Italic\",\n \"Open Sans Light Italic\",\n \"Open Sans Light\",\n \"Open Sans Regular\",\n \"Open Sans Semibold Italic\",\n \"Open Sans Semibold\",\n \"Klokantech Noto Sans Bold\",\n \"Klokantech Noto Sans CJK Bold\",\n \"Klokantech Noto Sans CJK Regular\",\n \"Klokantech Noto Sans Italic\",\n \"Klokantech Noto Sans Regular\"\n ];\n module.exports = {\n isSupportedFont: function(a) {\n return supportedFonts.indexOf(a) !== -1;\n }\n };\n }\n });\n\n // src/traces/scattermapbox/defaults.js\n var require_defaults50 = __commonJS({\n \"src/traces/scattermapbox/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes54();\n var isSupportedFont = require_constants26().isSupportedFont;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleLonLatDefaults(traceIn, traceOut, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n coerce(\"texttemplate\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"mode\");\n coerce(\"below\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noLine: true, noAngle: true });\n coerce(\"marker.allowoverlap\");\n coerce(\"marker.angle\");\n var marker = traceOut.marker;\n if (marker.symbol !== \"circle\") {\n if (Lib.isArrayOrTypedArray(marker.size)) marker.size = marker.size[0];\n if (Lib.isArrayOrTypedArray(marker.color)) marker.color = marker.color[0];\n }\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noDash: true });\n coerce(\"connectgaps\");\n }\n var clusterMaxzoom = coerce2(\"cluster.maxzoom\");\n var clusterStep = coerce2(\"cluster.step\");\n var clusterColor = coerce2(\"cluster.color\", traceOut.marker && traceOut.marker.color || defaultColor);\n var clusterSize = coerce2(\"cluster.size\");\n var clusterOpacity = coerce2(\"cluster.opacity\");\n var clusterEnabledDflt = clusterMaxzoom !== false || clusterStep !== false || clusterColor !== false || clusterSize !== false || clusterOpacity !== false;\n var clusterEnabled = coerce(\"cluster.enabled\", clusterEnabledDflt);\n if (clusterEnabled || subTypes.hasText(traceOut)) {\n var layoutFontFamily = layout.font.family;\n handleTextDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n {\n noSelect: true,\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true,\n font: {\n family: isSupportedFont(layoutFontFamily) ? layoutFontFamily : \"Open Sans Regular\",\n weight: layout.font.weight,\n style: layout.font.style,\n size: layout.font.size,\n color: layout.font.color\n }\n }\n );\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n function handleLonLatDefaults(traceIn, traceOut, coerce) {\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n var len = Math.min(lon.length, lat.length);\n traceOut._length = len;\n return len;\n }\n }\n });\n\n // src/traces/scattermapbox/format_labels.js\n var require_format_labels5 = __commonJS({\n \"src/traces/scattermapbox/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n var ax = subplot.mockAxis;\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n return labels;\n };\n }\n });\n\n // src/plots/mapbox/convert_text_opts.js\n var require_convert_text_opts = __commonJS({\n \"src/plots/mapbox/convert_text_opts.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function convertTextOpts(textposition, iconSize) {\n var parts = textposition.split(\" \");\n var vPos = parts[0];\n var hPos = parts[1];\n var factor = Lib.isArrayOrTypedArray(iconSize) ? Lib.mean(iconSize) : iconSize;\n var xInc = 0.5 + factor / 100;\n var yInc = 1.5 + factor / 100;\n var anchorVals = [\"\", \"\"];\n var offset = [0, 0];\n switch (vPos) {\n case \"top\":\n anchorVals[0] = \"top\";\n offset[1] = -yInc;\n break;\n case \"bottom\":\n anchorVals[0] = \"bottom\";\n offset[1] = yInc;\n break;\n }\n switch (hPos) {\n case \"left\":\n anchorVals[1] = \"right\";\n offset[0] = -xInc;\n break;\n case \"right\":\n anchorVals[1] = \"left\";\n offset[0] = xInc;\n break;\n }\n var anchor;\n if (anchorVals[0] && anchorVals[1]) anchor = anchorVals.join(\"-\");\n else if (anchorVals[0]) anchor = anchorVals[0];\n else if (anchorVals[1]) anchor = anchorVals[1];\n else anchor = \"center\";\n return { anchor, offset };\n };\n }\n });\n\n // src/traces/scattermapbox/convert.js\n var require_convert11 = __commonJS({\n \"src/traces/scattermapbox/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var geoJsonUtils = require_geojson_utils();\n var Colorscale = require_colorscale();\n var Drawing = require_drawing();\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var subTypes = require_subtypes();\n var isSupportedFont = require_constants26().isSupportedFont;\n var convertTextOpts = require_convert_text_opts();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var NEWLINES = require_svg_text_utils().NEWLINES;\n var BR_TAG_ALL = require_svg_text_utils().BR_TAG_ALL;\n module.exports = function convert(gd, calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var hasFill = trace.fill !== \"none\";\n var hasLines = subTypes.hasLines(trace);\n var hasMarkers = subTypes.hasMarkers(trace);\n var hasText = subTypes.hasText(trace);\n var hasCircles = hasMarkers && trace.marker.symbol === \"circle\";\n var hasSymbols = hasMarkers && trace.marker.symbol !== \"circle\";\n var hasCluster = trace.cluster && trace.cluster.enabled;\n var fill = initContainer(\"fill\");\n var line = initContainer(\"line\");\n var circle = initContainer(\"circle\");\n var symbol = initContainer(\"symbol\");\n var opts = {\n fill,\n line,\n circle,\n symbol\n };\n if (!isVisible) return opts;\n var lineCoords;\n if (hasFill || hasLines) {\n lineCoords = geoJsonUtils.calcTraceToLineCoords(calcTrace);\n }\n if (hasFill) {\n fill.geojson = geoJsonUtils.makePolygon(lineCoords);\n fill.layout.visibility = \"visible\";\n Lib.extendFlat(fill.paint, {\n \"fill-color\": trace.fillcolor\n });\n }\n if (hasLines) {\n line.geojson = geoJsonUtils.makeLine(lineCoords);\n line.layout.visibility = \"visible\";\n Lib.extendFlat(line.paint, {\n \"line-width\": trace.line.width,\n \"line-color\": trace.line.color,\n \"line-opacity\": trace.opacity\n });\n }\n if (hasCircles) {\n var circleOpts = makeCircleOpts(calcTrace);\n circle.geojson = circleOpts.geojson;\n circle.layout.visibility = \"visible\";\n if (hasCluster) {\n circle.filter = [\"!\", [\"has\", \"point_count\"]];\n opts.cluster = {\n type: \"circle\",\n filter: [\"has\", \"point_count\"],\n layout: { visibility: \"visible\" },\n paint: {\n \"circle-color\": arrayifyAttribute(trace.cluster.color, trace.cluster.step),\n \"circle-radius\": arrayifyAttribute(trace.cluster.size, trace.cluster.step),\n \"circle-opacity\": arrayifyAttribute(trace.cluster.opacity, trace.cluster.step)\n }\n };\n opts.clusterCount = {\n type: \"symbol\",\n filter: [\"has\", \"point_count\"],\n paint: {},\n layout: {\n \"text-field\": \"{point_count_abbreviated}\",\n \"text-font\": getTextFont(trace),\n \"text-size\": 12\n }\n };\n }\n Lib.extendFlat(circle.paint, {\n \"circle-color\": circleOpts.mcc,\n \"circle-radius\": circleOpts.mrc,\n \"circle-opacity\": circleOpts.mo\n });\n }\n if (hasCircles && hasCluster) {\n circle.filter = [\"!\", [\"has\", \"point_count\"]];\n }\n if (hasSymbols || hasText) {\n symbol.geojson = makeSymbolGeoJSON(calcTrace, gd);\n Lib.extendFlat(symbol.layout, {\n visibility: \"visible\",\n \"icon-image\": \"{symbol}-15\",\n \"text-field\": \"{text}\"\n });\n if (hasSymbols) {\n Lib.extendFlat(symbol.layout, {\n \"icon-size\": trace.marker.size / 10\n });\n if (\"angle\" in trace.marker && trace.marker.angle !== \"auto\") {\n Lib.extendFlat(symbol.layout, {\n // unfortunately cant use {angle} do to this issue:\n // https://github.com/mapbox/mapbox-gl-js/issues/873\n \"icon-rotate\": {\n type: \"identity\",\n property: \"angle\"\n },\n \"icon-rotation-alignment\": \"map\"\n });\n }\n symbol.layout[\"icon-allow-overlap\"] = trace.marker.allowoverlap;\n Lib.extendFlat(symbol.paint, {\n \"icon-opacity\": trace.opacity * trace.marker.opacity,\n // TODO does not work ??\n \"icon-color\": trace.marker.color\n });\n }\n if (hasText) {\n var iconSize = (trace.marker || {}).size;\n var textOpts = convertTextOpts(trace.textposition, iconSize);\n Lib.extendFlat(symbol.layout, {\n \"text-size\": trace.textfont.size,\n \"text-anchor\": textOpts.anchor,\n \"text-offset\": textOpts.offset,\n \"text-font\": getTextFont(trace)\n });\n Lib.extendFlat(symbol.paint, {\n \"text-color\": trace.textfont.color,\n \"text-opacity\": trace.opacity\n });\n }\n }\n return opts;\n };\n function initContainer(type) {\n return {\n type,\n geojson: geoJsonUtils.makeBlank(),\n layout: { visibility: \"none\" },\n filter: null,\n paint: {}\n };\n }\n function makeCircleOpts(calcTrace) {\n var trace = calcTrace[0].trace;\n var marker = trace.marker;\n var selectedpoints = trace.selectedpoints;\n var arrayColor = Lib.isArrayOrTypedArray(marker.color);\n var arraySize = Lib.isArrayOrTypedArray(marker.size);\n var arrayOpacity = Lib.isArrayOrTypedArray(marker.opacity);\n var i;\n function addTraceOpacity(o) {\n return trace.opacity * o;\n }\n function size2radius(s) {\n return s / 2;\n }\n var colorFn;\n if (arrayColor) {\n if (Colorscale.hasColorscale(trace, \"marker\")) {\n colorFn = Colorscale.makeColorScaleFuncFromTrace(marker);\n } else {\n colorFn = Lib.identity;\n }\n }\n var sizeFn;\n if (arraySize) {\n sizeFn = makeBubbleSizeFn(trace);\n }\n var opacityFn;\n if (arrayOpacity) {\n opacityFn = function(mo) {\n var mo2 = isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0;\n return addTraceOpacity(mo2);\n };\n }\n var features = [];\n for (i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n if (isBADNUM(lonlat)) continue;\n var props = {};\n if (colorFn) props.mcc = calcPt.mcc = colorFn(calcPt.mc);\n if (sizeFn) props.mrc = calcPt.mrc = sizeFn(calcPt.ms);\n if (opacityFn) props.mo = opacityFn(calcPt.mo);\n if (selectedpoints) props.selected = calcPt.selected || 0;\n features.push({\n type: \"Feature\",\n id: i + 1,\n geometry: { type: \"Point\", coordinates: lonlat },\n properties: props\n });\n }\n var fns;\n if (selectedpoints) {\n fns = Drawing.makeSelectedPointStyleFns(trace);\n for (i = 0; i < features.length; i++) {\n var d = features[i].properties;\n if (fns.selectedOpacityFn) {\n d.mo = addTraceOpacity(fns.selectedOpacityFn(d));\n }\n if (fns.selectedColorFn) {\n d.mcc = fns.selectedColorFn(d);\n }\n if (fns.selectedSizeFn) {\n d.mrc = fns.selectedSizeFn(d);\n }\n }\n }\n return {\n geojson: { type: \"FeatureCollection\", features },\n mcc: arrayColor || fns && fns.selectedColorFn ? { type: \"identity\", property: \"mcc\" } : marker.color,\n mrc: arraySize || fns && fns.selectedSizeFn ? { type: \"identity\", property: \"mrc\" } : size2radius(marker.size),\n mo: arrayOpacity || fns && fns.selectedOpacityFn ? { type: \"identity\", property: \"mo\" } : addTraceOpacity(marker.opacity)\n };\n }\n function makeSymbolGeoJSON(calcTrace, gd) {\n var fullLayout = gd._fullLayout;\n var trace = calcTrace[0].trace;\n var marker = trace.marker || {};\n var symbol = marker.symbol;\n var angle = marker.angle;\n var fillSymbol = symbol !== \"circle\" ? getFillFunc(symbol) : blankFillFunc;\n var fillAngle = angle !== \"auto\" ? getFillFunc(angle, true) : blankFillFunc;\n var fillText = subTypes.hasText(trace) ? getFillFunc(trace.text) : blankFillFunc;\n var features = [];\n for (var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n if (isBADNUM(calcPt.lonlat)) continue;\n var texttemplate = trace.texttemplate;\n var text;\n if (texttemplate) {\n var tt = Array.isArray(texttemplate) ? texttemplate[i] || \"\" : texttemplate;\n var labels = trace._module.formatLabels(calcPt, trace, fullLayout);\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, calcPt.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(tt, labels, fullLayout._d3locale, pointValues, calcPt, meta);\n } else {\n text = fillText(i);\n }\n if (text) {\n text = text.replace(NEWLINES, \"\").replace(BR_TAG_ALL, \"\\n\");\n }\n features.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: calcPt.lonlat\n },\n properties: {\n symbol: fillSymbol(i),\n angle: fillAngle(i),\n text\n }\n });\n }\n return {\n type: \"FeatureCollection\",\n features\n };\n }\n function getFillFunc(attr, numeric) {\n if (Lib.isArrayOrTypedArray(attr)) {\n if (numeric) {\n return function(i) {\n return isNumeric(attr[i]) ? +attr[i] : 0;\n };\n }\n return function(i) {\n return attr[i];\n };\n } else if (attr) {\n return function() {\n return attr;\n };\n } else {\n return blankFillFunc;\n }\n }\n function blankFillFunc() {\n return \"\";\n }\n function isBADNUM(lonlat) {\n return lonlat[0] === BADNUM;\n }\n function arrayifyAttribute(values, step) {\n var newAttribute;\n if (Lib.isArrayOrTypedArray(values) && Lib.isArrayOrTypedArray(step)) {\n newAttribute = [\"step\", [\"get\", \"point_count\"], values[0]];\n for (var idx = 1; idx < values.length; idx++) {\n newAttribute.push(step[idx - 1], values[idx]);\n }\n } else {\n newAttribute = values;\n }\n return newAttribute;\n }\n function getTextFont(trace) {\n var font = trace.textfont;\n var family = font.family;\n var style = font.style;\n var weight = font.weight;\n var parts = family.split(\" \");\n var isItalic = parts[parts.length - 1] === \"Italic\";\n if (isItalic) parts.pop();\n isItalic = isItalic || style === \"italic\";\n var str = parts.join(\" \");\n if (weight === \"bold\" && parts.indexOf(\"Bold\") === -1) {\n str += \" Bold\";\n } else if (weight <= 1e3) {\n if (parts[0] === \"Metropolis\") {\n str = \"Metropolis\";\n if (weight > 850) str += \" Black\";\n else if (weight > 750) str += \" Extra Bold\";\n else if (weight > 650) str += \" Bold\";\n else if (weight > 550) str += \" Semi Bold\";\n else if (weight > 450) str += \" Medium\";\n else if (weight > 350) str += \" Regular\";\n else if (weight > 250) str += \" Light\";\n else if (weight > 150) str += \" Extra Light\";\n else str += \" Thin\";\n } else if (parts.slice(0, 2).join(\" \") === \"Open Sans\") {\n str = \"Open Sans\";\n if (weight > 750) str += \" Extrabold\";\n else if (weight > 650) str += \" Bold\";\n else if (weight > 550) str += \" Semibold\";\n else if (weight > 350) str += \" Regular\";\n else str += \" Light\";\n } else if (parts.slice(0, 3).join(\" \") === \"Klokantech Noto Sans\") {\n str = \"Klokantech Noto Sans\";\n if (parts[3] === \"CJK\") str += \" CJK\";\n str += weight > 500 ? \" Bold\" : \" Regular\";\n }\n }\n if (isItalic) str += \" Italic\";\n if (str === \"Open Sans Regular Italic\") str = \"Open Sans Italic\";\n else if (str === \"Open Sans Regular Bold\") str = \"Open Sans Bold\";\n else if (str === \"Open Sans Regular Bold Italic\") str = \"Open Sans Bold Italic\";\n else if (str === \"Klokantech Noto Sans Regular Italic\") str = \"Klokantech Noto Sans Italic\";\n if (!isSupportedFont(str)) {\n str = family;\n }\n var textFont = str.split(\", \");\n return textFont;\n }\n }\n });\n\n // src/traces/scattermapbox/plot.js\n var require_plot23 = __commonJS({\n \"src/traces/scattermapbox/plot.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var convert = require_convert11();\n var LAYER_PREFIX = require_constants25().traceLayerPrefix;\n var ORDER = {\n cluster: [\"cluster\", \"clusterCount\", \"circle\"],\n nonCluster: [\"fill\", \"line\", \"circle\", \"symbol\"]\n };\n function ScatterMapbox(subplot, uid, clusterEnabled, isHidden) {\n this.type = \"scattermapbox\";\n this.subplot = subplot;\n this.uid = uid;\n this.clusterEnabled = clusterEnabled;\n this.isHidden = isHidden;\n this.sourceIds = {\n fill: \"source-\" + uid + \"-fill\",\n line: \"source-\" + uid + \"-line\",\n circle: \"source-\" + uid + \"-circle\",\n symbol: \"source-\" + uid + \"-symbol\",\n cluster: \"source-\" + uid + \"-circle\",\n clusterCount: \"source-\" + uid + \"-circle\"\n };\n this.layerIds = {\n fill: LAYER_PREFIX + uid + \"-fill\",\n line: LAYER_PREFIX + uid + \"-line\",\n circle: LAYER_PREFIX + uid + \"-circle\",\n symbol: LAYER_PREFIX + uid + \"-symbol\",\n cluster: LAYER_PREFIX + uid + \"-cluster\",\n clusterCount: LAYER_PREFIX + uid + \"-cluster-count\"\n };\n this.below = null;\n }\n var proto = ScatterMapbox.prototype;\n proto.addSource = function(k, opts, cluster) {\n var sourceOpts = {\n type: \"geojson\",\n data: opts.geojson\n };\n if (cluster && cluster.enabled) {\n Lib.extendFlat(sourceOpts, {\n cluster: true,\n clusterMaxZoom: cluster.maxzoom\n });\n }\n var isSourceExists = this.subplot.map.getSource(this.sourceIds[k]);\n if (isSourceExists) {\n isSourceExists.setData(opts.geojson);\n } else {\n this.subplot.map.addSource(this.sourceIds[k], sourceOpts);\n }\n };\n proto.setSourceData = function(k, opts) {\n this.subplot.map.getSource(this.sourceIds[k]).setData(opts.geojson);\n };\n proto.addLayer = function(k, opts, below) {\n var source = {\n type: opts.type,\n id: this.layerIds[k],\n source: this.sourceIds[k],\n layout: opts.layout,\n paint: opts.paint\n };\n if (opts.filter) {\n source.filter = opts.filter;\n }\n var currentLayerId = this.layerIds[k];\n var layerExist;\n var layers = this.subplot.getMapLayers();\n for (var i = 0; i < layers.length; i++) {\n if (layers[i].id === currentLayerId) {\n layerExist = true;\n break;\n }\n }\n if (layerExist) {\n this.subplot.setOptions(currentLayerId, \"setLayoutProperty\", source.layout);\n if (source.layout.visibility === \"visible\") {\n this.subplot.setOptions(currentLayerId, \"setPaintProperty\", source.paint);\n }\n } else {\n this.subplot.addLayer(source, below);\n }\n };\n proto.update = function update(calcTrace) {\n var trace = calcTrace[0].trace;\n var subplot = this.subplot;\n var map = subplot.map;\n var optsAll = convert(subplot.gd, calcTrace);\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n var hasCluster = !!(trace.cluster && trace.cluster.enabled);\n var hadCluster = !!this.clusterEnabled;\n var lThis = this;\n function addCluster(noSource) {\n if (!noSource) lThis.addSource(\"circle\", optsAll.circle, trace.cluster);\n var order = ORDER.cluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n lThis.addLayer(k, opts, below);\n }\n }\n function removeCluster(noSource) {\n var order = ORDER.cluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(lThis.layerIds[k]);\n }\n if (!noSource) map.removeSource(lThis.sourceIds.circle);\n }\n function addNonCluster(noSource) {\n var order = ORDER.nonCluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n if (!noSource) lThis.addSource(k, opts);\n lThis.addLayer(k, opts, below);\n }\n }\n function removeNonCluster(noSource) {\n var order = ORDER.nonCluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(lThis.layerIds[k]);\n if (!noSource) map.removeSource(lThis.sourceIds[k]);\n }\n }\n function remove(noSource) {\n if (hadCluster) removeCluster(noSource);\n else removeNonCluster(noSource);\n }\n function add(noSource) {\n if (hasCluster) addCluster(noSource);\n else addNonCluster(noSource);\n }\n function repaint() {\n var order = hasCluster ? ORDER.cluster : ORDER.nonCluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n if (!opts) continue;\n subplot.setOptions(lThis.layerIds[k], \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n if (k !== \"cluster\") {\n lThis.setSourceData(k, opts);\n }\n subplot.setOptions(lThis.layerIds[k], \"setPaintProperty\", opts.paint);\n }\n }\n }\n var wasHidden = this.isHidden;\n var isHidden = trace.visible !== true;\n if (isHidden) {\n if (!wasHidden) remove();\n } else if (wasHidden) {\n if (!isHidden) add();\n } else if (hadCluster !== hasCluster) {\n remove();\n add();\n } else if (this.below !== below) {\n remove(true);\n add(true);\n repaint();\n } else {\n repaint();\n }\n this.clusterEnabled = hasCluster;\n this.isHidden = isHidden;\n this.below = below;\n calcTrace[0].trace._glTrace = this;\n };\n proto.dispose = function dispose() {\n var map = this.subplot.map;\n var order = this.clusterEnabled ? ORDER.cluster : ORDER.nonCluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(this.layerIds[k]);\n map.removeSource(this.sourceIds[k]);\n }\n };\n module.exports = function createScatterMapbox(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var hasCluster = trace.cluster && trace.cluster.enabled;\n var isHidden = trace.visible !== true;\n var scatterMapbox = new ScatterMapbox(\n subplot,\n trace.uid,\n hasCluster,\n isHidden\n );\n var optsAll = convert(subplot.gd, calcTrace);\n var below = scatterMapbox.below = subplot.belowLookup[\"trace-\" + trace.uid];\n var i, k, opts;\n if (hasCluster) {\n scatterMapbox.addSource(\"circle\", optsAll.circle, trace.cluster);\n for (i = 0; i < ORDER.cluster.length; i++) {\n k = ORDER.cluster[i];\n opts = optsAll[k];\n scatterMapbox.addLayer(k, opts, below);\n }\n } else {\n for (i = 0; i < ORDER.nonCluster.length; i++) {\n k = ORDER.nonCluster[i];\n opts = optsAll[k];\n scatterMapbox.addSource(k, opts, trace.cluster);\n scatterMapbox.addLayer(k, opts, below);\n }\n }\n calcTrace[0].trace._glTrace = scatterMapbox;\n return scatterMapbox;\n };\n }\n });\n\n // src/traces/scattermapbox/hover.js\n var require_hover18 = __commonJS({\n \"src/traces/scattermapbox/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var getTraceColor = require_get_trace_color();\n var fillText = Lib.fillText;\n var BADNUM = require_numerical().BADNUM;\n var LAYER_PREFIX = require_constants25().traceLayerPrefix;\n function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var subplot = pointData.subplot;\n var clusteredPointsIds = [];\n var layer = LAYER_PREFIX + trace.uid + \"-circle\";\n var hasCluster = trace.cluster && trace.cluster.enabled;\n if (hasCluster) {\n var elems = subplot.map.queryRenderedFeatures(null, { layers: [layer] });\n clusteredPointsIds = elems.map(function(elem) {\n return elem.id;\n });\n }\n var winding = xval >= 0 ? Math.floor((xval + 180) / 360) : Math.ceil((xval - 180) / 360);\n var lonShift = winding * 360;\n var xval2 = xval - lonShift;\n function distFn(d) {\n var lonlat2 = d.lonlat;\n if (lonlat2[0] === BADNUM) return Infinity;\n if (hasCluster && clusteredPointsIds.indexOf(d.i + 1) === -1) return Infinity;\n var lon = Lib.modHalf(lonlat2[0], 360);\n var lat = lonlat2[1];\n var pt = subplot.project([lon, lat]);\n var dx = pt.x - xa.c2p([xval2, lat]);\n var dy = pt.y - ya.c2p([lon, yval]);\n var rad2 = Math.max(3, d.mrc || 0);\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad2, 1 - 3 / rad2);\n }\n Fx.getClosest(cd, distFn, pointData);\n if (pointData.index === false) return;\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]];\n var xc = xa.c2p(lonlatShifted);\n var yc = ya.c2p(lonlatShifted);\n var rad = di.mrc || 1;\n pointData.x0 = xc - rad;\n pointData.x1 = xc + rad;\n pointData.y0 = yc - rad;\n pointData.y1 = yc + rad;\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n return [pointData];\n }\n function getExtraText(trace, di, labels) {\n if (trace.hovertemplate) return;\n var hoverinfo = di.hi || trace.hoverinfo;\n var parts = hoverinfo.split(\"+\");\n var isAll = parts.indexOf(\"all\") !== -1;\n var hasLon = parts.indexOf(\"lon\") !== -1;\n var hasLat = parts.indexOf(\"lat\") !== -1;\n var lonlat = di.lonlat;\n var text = [];\n function format(v) {\n return v + \"\\xB0\";\n }\n if (isAll || hasLon && hasLat) {\n text.push(\"(\" + format(lonlat[1]) + \", \" + format(lonlat[0]) + \")\");\n } else if (hasLon) {\n text.push(labels.lon + format(lonlat[0]));\n } else if (hasLat) {\n text.push(labels.lat + format(lonlat[1]));\n }\n if (isAll || parts.indexOf(\"text\") !== -1) {\n fillText(di, trace, text);\n }\n return text.join(\"
\");\n }\n module.exports = {\n hoverPoints,\n getExtraText\n };\n }\n });\n\n // src/traces/scattermapbox/event_data.js\n var require_event_data11 = __commonJS({\n \"src/traces/scattermapbox/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n return out;\n };\n }\n });\n\n // src/traces/scattermapbox/select.js\n var require_select9 = __commonJS({\n \"src/traces/scattermapbox/select.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subtypes = require_subtypes();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n if (!subtypes.hasMarkers(trace)) return [];\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n var di = cd[i];\n var lonlat = di.lonlat;\n if (lonlat[0] !== BADNUM) {\n var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]];\n var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];\n if (selectionTester.contains(xy, null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n }\n return selection;\n };\n }\n });\n\n // node_modules/@plotly/mapbox-gl/dist/mapbox-gl-unminified.js\n var require_mapbox_gl_unminified = __commonJS({\n \"node_modules/@plotly/mapbox-gl/dist/mapbox-gl-unminified.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? module.exports = factory() : typeof define === \"function\" && false ? define(factory) : (global2 = global2 || self, global2.mapboxgl = factory());\n })(exports, function() {\n \"use strict\";\n var shared, worker, mapboxgl;\n function define2(_, chunk) {\n if (!shared) {\n shared = chunk;\n } else if (!worker) {\n worker = chunk;\n } else {\n var workerBundleString = \"var sharedChunk = {}; (\" + shared + \")(sharedChunk); (\" + worker + \")(sharedChunk);\";\n var sharedChunk = {};\n shared(sharedChunk);\n mapboxgl = chunk(sharedChunk);\n if (typeof window !== \"undefined\") {\n mapboxgl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: \"text/javascript\" }));\n }\n }\n }\n define2([\"exports\"], function(exports2) {\n \"use strict\";\n function createCommonjsModule(fn, module2) {\n return module2 = { exports: {} }, fn(module2, module2.exports), module2.exports;\n }\n var version = \"1.13.4\";\n var unitbezier = UnitBezier;\n function UnitBezier(p1x, p1y, p2x, p2y) {\n this.cx = 3 * p1x;\n this.bx = 3 * (p2x - p1x) - this.cx;\n this.ax = 1 - this.cx - this.bx;\n this.cy = 3 * p1y;\n this.by = 3 * (p2y - p1y) - this.cy;\n this.ay = 1 - this.cy - this.by;\n this.p1x = p1x;\n this.p1y = p2y;\n this.p2x = p2x;\n this.p2y = p2y;\n }\n UnitBezier.prototype.sampleCurveX = function(t) {\n return ((this.ax * t + this.bx) * t + this.cx) * t;\n };\n UnitBezier.prototype.sampleCurveY = function(t) {\n return ((this.ay * t + this.by) * t + this.cy) * t;\n };\n UnitBezier.prototype.sampleCurveDerivativeX = function(t) {\n return (3 * this.ax * t + 2 * this.bx) * t + this.cx;\n };\n UnitBezier.prototype.solveCurveX = function(x, epsilon) {\n if (typeof epsilon === \"undefined\") {\n epsilon = 1e-6;\n }\n var t03, t13, t23, x2, i;\n for (t23 = x, i = 0; i < 8; i++) {\n x2 = this.sampleCurveX(t23) - x;\n if (Math.abs(x2) < epsilon) {\n return t23;\n }\n var d2 = this.sampleCurveDerivativeX(t23);\n if (Math.abs(d2) < 1e-6) {\n break;\n }\n t23 = t23 - x2 / d2;\n }\n t03 = 0;\n t13 = 1;\n t23 = x;\n if (t23 < t03) {\n return t03;\n }\n if (t23 > t13) {\n return t13;\n }\n while (t03 < t13) {\n x2 = this.sampleCurveX(t23);\n if (Math.abs(x2 - x) < epsilon) {\n return t23;\n }\n if (x > x2) {\n t03 = t23;\n } else {\n t13 = t23;\n }\n t23 = (t13 - t03) * 0.5 + t03;\n }\n return t23;\n };\n UnitBezier.prototype.solve = function(x, epsilon) {\n return this.sampleCurveY(this.solveCurveX(x, epsilon));\n };\n var pointGeometry = Point;\n function Point(x, y) {\n this.x = x;\n this.y = y;\n }\n Point.prototype = {\n clone: function() {\n return new Point(this.x, this.y);\n },\n add: function(p) {\n return this.clone()._add(p);\n },\n sub: function(p) {\n return this.clone()._sub(p);\n },\n multByPoint: function(p) {\n return this.clone()._multByPoint(p);\n },\n divByPoint: function(p) {\n return this.clone()._divByPoint(p);\n },\n mult: function(k) {\n return this.clone()._mult(k);\n },\n div: function(k) {\n return this.clone()._div(k);\n },\n rotate: function(a) {\n return this.clone()._rotate(a);\n },\n rotateAround: function(a, p) {\n return this.clone()._rotateAround(a, p);\n },\n matMult: function(m) {\n return this.clone()._matMult(m);\n },\n unit: function() {\n return this.clone()._unit();\n },\n perp: function() {\n return this.clone()._perp();\n },\n round: function() {\n return this.clone()._round();\n },\n mag: function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n equals: function(other) {\n return this.x === other.x && this.y === other.y;\n },\n dist: function(p) {\n return Math.sqrt(this.distSqr(p));\n },\n distSqr: function(p) {\n var dx = p.x - this.x, dy = p.y - this.y;\n return dx * dx + dy * dy;\n },\n angle: function() {\n return Math.atan2(this.y, this.x);\n },\n angleTo: function(b) {\n return Math.atan2(this.y - b.y, this.x - b.x);\n },\n angleWith: function(b) {\n return this.angleWithSep(b.x, b.y);\n },\n angleWithSep: function(x, y) {\n return Math.atan2(this.x * y - this.y * x, this.x * x + this.y * y);\n },\n _matMult: function(m) {\n var x = m[0] * this.x + m[1] * this.y, y = m[2] * this.x + m[3] * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n _add: function(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n _sub: function(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n _mult: function(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n _div: function(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n _multByPoint: function(p) {\n this.x *= p.x;\n this.y *= p.y;\n return this;\n },\n _divByPoint: function(p) {\n this.x /= p.x;\n this.y /= p.y;\n return this;\n },\n _unit: function() {\n this._div(this.mag());\n return this;\n },\n _perp: function() {\n var y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n _rotate: function(angle) {\n var cos = Math.cos(angle), sin = Math.sin(angle), x = cos * this.x - sin * this.y, y = sin * this.x + cos * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n _rotateAround: function(angle, p) {\n var cos = Math.cos(angle), sin = Math.sin(angle), x = p.x + cos * (this.x - p.x) - sin * (this.y - p.y), y = p.y + sin * (this.x - p.x) + cos * (this.y - p.y);\n this.x = x;\n this.y = y;\n return this;\n },\n _round: function() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\n };\n Point.convert = function(a) {\n if (a instanceof Point) {\n return a;\n }\n if (Array.isArray(a)) {\n return new Point(a[0], a[1]);\n }\n return a;\n };\n var window$1 = typeof self !== \"undefined\" ? self : {};\n function deepEqual(a, b) {\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n if (typeof a === \"object\" && a !== null && b !== null) {\n if (!(typeof b === \"object\")) {\n return false;\n }\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n for (var key in a) {\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a === b;\n }\n var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;\n function easeCubicInOut(t) {\n if (t <= 0) {\n return 0;\n }\n if (t >= 1) {\n return 1;\n }\n var t23 = t * t, t33 = t23 * t;\n return 4 * (t < 0.5 ? t33 : 3 * (t - t23) + t33 - 0.75);\n }\n function bezier(p1x, p1y, p2x, p2y) {\n var bezier2 = new unitbezier(p1x, p1y, p2x, p2y);\n return function(t) {\n return bezier2.solve(t);\n };\n }\n var ease = bezier(0.25, 0.1, 0.25, 1);\n function clamp(n, min, max) {\n return Math.min(max, Math.max(min, n));\n }\n function wrap(n, min, max) {\n var d = max - min;\n var w = ((n - min) % d + d) % d + min;\n return w === min ? max : w;\n }\n function asyncAll(array2, fn, callback) {\n if (!array2.length) {\n return callback(null, []);\n }\n var remaining = array2.length;\n var results = new Array(array2.length);\n var error2 = null;\n array2.forEach(function(item, i) {\n fn(item, function(err, result) {\n if (err) {\n error2 = err;\n }\n results[i] = result;\n if (--remaining === 0) {\n callback(error2, results);\n }\n });\n });\n }\n function values(obj) {\n var result = [];\n for (var k in obj) {\n result.push(obj[k]);\n }\n return result;\n }\n function keysDifference(obj, other) {\n var difference = [];\n for (var i in obj) {\n if (!(i in other)) {\n difference.push(i);\n }\n }\n return difference;\n }\n function extend2(dest) {\n var sources2 = [], len = arguments.length - 1;\n while (len-- > 0)\n sources2[len] = arguments[len + 1];\n for (var i = 0, list = sources2; i < list.length; i += 1) {\n var src = list[i];\n for (var k in src) {\n dest[k] = src[k];\n }\n }\n return dest;\n }\n function pick(src, properties2) {\n var result = {};\n for (var i = 0; i < properties2.length; i++) {\n var k = properties2[i];\n if (k in src) {\n result[k] = src[k];\n }\n }\n return result;\n }\n var id = 1;\n function uniqueId() {\n return id++;\n }\n function uuid() {\n function b(a) {\n return a ? (a ^ Math.random() * 16 >> a / 4).toString(16) : ([1e7] + -[1e3] + -4e3 + -8e3 + -1e11).replace(/[018]/g, b);\n }\n return b();\n }\n function nextPowerOfTwo(value) {\n if (value <= 1) {\n return 1;\n }\n return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\n }\n function validateUuid(str) {\n return str ? /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(str) : false;\n }\n function bindAll(fns, context) {\n fns.forEach(function(fn) {\n if (!context[fn]) {\n return;\n }\n context[fn] = context[fn].bind(context);\n });\n }\n function endsWith(string, suffix) {\n return string.indexOf(suffix, string.length - suffix.length) !== -1;\n }\n function mapObject(input, iterator, context) {\n var output = {};\n for (var key in input) {\n output[key] = iterator.call(context || this, input[key], key, input);\n }\n return output;\n }\n function filterObject(input, iterator, context) {\n var output = {};\n for (var key in input) {\n if (iterator.call(context || this, input[key], key, input)) {\n output[key] = input[key];\n }\n }\n return output;\n }\n function clone(input) {\n if (Array.isArray(input)) {\n return input.map(clone);\n } else if (typeof input === \"object\" && input) {\n return mapObject(input, clone);\n } else {\n return input;\n }\n }\n function arraysIntersect(a, b) {\n for (var l = 0; l < a.length; l++) {\n if (b.indexOf(a[l]) >= 0) {\n return true;\n }\n }\n return false;\n }\n var warnOnceHistory = {};\n function warnOnce(message) {\n if (!warnOnceHistory[message]) {\n if (typeof console !== \"undefined\") {\n console.warn(message);\n }\n warnOnceHistory[message] = true;\n }\n }\n function isCounterClockwise(a, b, c) {\n return (c.y - a.y) * (b.x - a.x) > (b.y - a.y) * (c.x - a.x);\n }\n function calculateSignedArea(ring) {\n var sum = 0;\n for (var i = 0, len = ring.length, j = len - 1, p1 = void 0, p2 = void 0; i < len; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2.x - p1.x) * (p1.y + p2.y);\n }\n return sum;\n }\n function sphericalToCartesian(ref) {\n var r = ref[0];\n var azimuthal = ref[1];\n var polar = ref[2];\n azimuthal += 90;\n azimuthal *= Math.PI / 180;\n polar *= Math.PI / 180;\n return {\n x: r * Math.cos(azimuthal) * Math.sin(polar),\n y: r * Math.sin(azimuthal) * Math.sin(polar),\n z: r * Math.cos(polar)\n };\n }\n function isWorker() {\n return typeof WorkerGlobalScope !== \"undefined\" && typeof self !== \"undefined\" && self instanceof WorkerGlobalScope;\n }\n function parseCacheControl(cacheControl) {\n var re = /(?:^|(?:\\s*\\,\\s*))([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g;\n var header = {};\n cacheControl.replace(re, function($0, $1, $2, $3) {\n var value = $2 || $3;\n header[$1] = value ? value.toLowerCase() : true;\n return \"\";\n });\n if (header[\"max-age\"]) {\n var maxAge = parseInt(header[\"max-age\"], 10);\n if (isNaN(maxAge)) {\n delete header[\"max-age\"];\n } else {\n header[\"max-age\"] = maxAge;\n }\n }\n return header;\n }\n var _isSafari = null;\n function isSafari(scope) {\n if (_isSafari == null) {\n var userAgent = scope.navigator ? scope.navigator.userAgent : null;\n _isSafari = !!scope.safari || !!(userAgent && (/\\b(iPad|iPhone|iPod)\\b/.test(userAgent) || !!userAgent.match(\"Safari\") && !userAgent.match(\"Chrome\")));\n }\n return _isSafari;\n }\n function storageAvailable(type) {\n try {\n var storage = window$1[type];\n storage.setItem(\"_mapbox_test_\", 1);\n storage.removeItem(\"_mapbox_test_\");\n return true;\n } catch (e) {\n return false;\n }\n }\n function b64EncodeUnicode(str) {\n return window$1.btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {\n return String.fromCharCode(Number(\"0x\" + p1));\n }));\n }\n function b64DecodeUnicode(str) {\n return decodeURIComponent(window$1.atob(str).split(\"\").map(function(c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(\"\"));\n }\n var now = window$1.performance && window$1.performance.now ? window$1.performance.now.bind(window$1.performance) : Date.now.bind(Date);\n var raf = window$1.requestAnimationFrame || window$1.mozRequestAnimationFrame || window$1.webkitRequestAnimationFrame || window$1.msRequestAnimationFrame;\n var cancel = window$1.cancelAnimationFrame || window$1.mozCancelAnimationFrame || window$1.webkitCancelAnimationFrame || window$1.msCancelAnimationFrame;\n var linkEl;\n var reducedMotionQuery;\n var exported = {\n now,\n frame: function frame(fn) {\n var frame2 = raf(fn);\n return {\n cancel: function() {\n return cancel(frame2);\n }\n };\n },\n getImageData: function getImageData(img, padding) {\n if (padding === void 0)\n padding = 0;\n var canvas = window$1.document.createElement(\"canvas\");\n var context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"failed to create canvas 2d context\");\n }\n canvas.width = img.width;\n canvas.height = img.height;\n context.drawImage(img, 0, 0, img.width, img.height);\n return context.getImageData(-padding, -padding, img.width + 2 * padding, img.height + 2 * padding);\n },\n resolveURL: function resolveURL(path) {\n if (!linkEl) {\n linkEl = window$1.document.createElement(\"a\");\n }\n linkEl.href = path;\n return linkEl.href;\n },\n hardwareConcurrency: window$1.navigator && window$1.navigator.hardwareConcurrency || 4,\n get devicePixelRatio() {\n return window$1.devicePixelRatio;\n },\n get prefersReducedMotion() {\n if (!window$1.matchMedia) {\n return false;\n }\n if (reducedMotionQuery == null) {\n reducedMotionQuery = window$1.matchMedia(\"(prefers-reduced-motion: reduce)\");\n }\n return reducedMotionQuery.matches;\n }\n };\n var config = {\n API_URL: \"https://api.mapbox.com\",\n get EVENTS_URL() {\n if (!this.API_URL) {\n return null;\n }\n if (this.API_URL.indexOf(\"https://api.mapbox.cn\") === 0) {\n return \"https://events.mapbox.cn/events/v2\";\n } else if (this.API_URL.indexOf(\"https://api.mapbox.com\") === 0) {\n return \"https://events.mapbox.com/events/v2\";\n } else {\n return null;\n }\n },\n FEEDBACK_URL: \"https://apps.mapbox.com/feedback\",\n REQUIRE_ACCESS_TOKEN: true,\n ACCESS_TOKEN: null,\n MAX_PARALLEL_IMAGE_REQUESTS: 16\n };\n var exported$1 = {\n supported: false,\n testSupport\n };\n var glForTesting;\n var webpCheckComplete = false;\n var webpImgTest;\n var webpImgTestOnloadComplete = false;\n if (window$1.document) {\n webpImgTest = window$1.document.createElement(\"img\");\n webpImgTest.onload = function() {\n if (glForTesting) {\n testWebpTextureUpload(glForTesting);\n }\n glForTesting = null;\n webpImgTestOnloadComplete = true;\n };\n webpImgTest.onerror = function() {\n webpCheckComplete = true;\n glForTesting = null;\n };\n webpImgTest.src = \"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\";\n }\n function testSupport(gl2) {\n if (webpCheckComplete || !webpImgTest) {\n return;\n }\n if (webpImgTestOnloadComplete) {\n testWebpTextureUpload(gl2);\n } else {\n glForTesting = gl2;\n }\n }\n function testWebpTextureUpload(gl2) {\n var texture = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, texture);\n try {\n gl2.texImage2D(gl2.TEXTURE_2D, 0, gl2.RGBA, gl2.RGBA, gl2.UNSIGNED_BYTE, webpImgTest);\n if (gl2.isContextLost()) {\n return;\n }\n exported$1.supported = true;\n } catch (e) {\n }\n gl2.deleteTexture(texture);\n webpCheckComplete = true;\n }\n var SKU_ID = \"01\";\n function createSkuToken() {\n var TOKEN_VERSION = \"1\";\n var base62chars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var sessionRandomizer = \"\";\n for (var i = 0; i < 10; i++) {\n sessionRandomizer += base62chars[Math.floor(Math.random() * 62)];\n }\n var expiration = 12 * 60 * 60 * 1e3;\n var token = [\n TOKEN_VERSION,\n SKU_ID,\n sessionRandomizer\n ].join(\"\");\n var tokenExpiresAt = Date.now() + expiration;\n return {\n token,\n tokenExpiresAt\n };\n }\n var RequestManager = function RequestManager2(transformRequestFn, customAccessToken) {\n this._transformRequestFn = transformRequestFn;\n this._customAccessToken = customAccessToken;\n this._createSkuToken();\n };\n RequestManager.prototype._createSkuToken = function _createSkuToken() {\n var skuToken = createSkuToken();\n this._skuToken = skuToken.token;\n this._skuTokenExpiresAt = skuToken.tokenExpiresAt;\n };\n RequestManager.prototype._isSkuTokenExpired = function _isSkuTokenExpired() {\n return Date.now() > this._skuTokenExpiresAt;\n };\n RequestManager.prototype.transformRequest = function transformRequest(url, type) {\n if (this._transformRequestFn) {\n return this._transformRequestFn(url, type) || { url };\n }\n return { url };\n };\n RequestManager.prototype.normalizeStyleURL = function normalizeStyleURL(url, accessToken) {\n if (!isMapboxURL(url)) {\n return url;\n }\n var urlObject = parseUrl(url);\n urlObject.path = \"/styles/v1\" + urlObject.path;\n return this._makeAPIURL(urlObject, this._customAccessToken || accessToken);\n };\n RequestManager.prototype.normalizeGlyphsURL = function normalizeGlyphsURL(url, accessToken) {\n if (!isMapboxURL(url)) {\n return url;\n }\n var urlObject = parseUrl(url);\n urlObject.path = \"/fonts/v1\" + urlObject.path;\n return this._makeAPIURL(urlObject, this._customAccessToken || accessToken);\n };\n RequestManager.prototype.normalizeSourceURL = function normalizeSourceURL(url, accessToken) {\n if (!isMapboxURL(url)) {\n return url;\n }\n var urlObject = parseUrl(url);\n urlObject.path = \"/v4/\" + urlObject.authority + \".json\";\n urlObject.params.push(\"secure\");\n return this._makeAPIURL(urlObject, this._customAccessToken || accessToken);\n };\n RequestManager.prototype.normalizeSpriteURL = function normalizeSpriteURL(url, format, extension, accessToken) {\n var urlObject = parseUrl(url);\n if (!isMapboxURL(url)) {\n urlObject.path += \"\" + format + extension;\n return formatUrl(urlObject);\n }\n urlObject.path = \"/styles/v1\" + urlObject.path + \"/sprite\" + format + extension;\n return this._makeAPIURL(urlObject, this._customAccessToken || accessToken);\n };\n RequestManager.prototype.normalizeTileURL = function normalizeTileURL(tileURL, tileSize) {\n if (this._isSkuTokenExpired()) {\n this._createSkuToken();\n }\n if (tileURL && !isMapboxURL(tileURL)) {\n return tileURL;\n }\n var urlObject = parseUrl(tileURL);\n var imageExtensionRe = /(\\.(png|jpg)\\d*)(?=$)/;\n var tileURLAPIPrefixRe = /^.+\\/v4\\//;\n var suffix = exported.devicePixelRatio >= 2 || tileSize === 512 ? \"@2x\" : \"\";\n var extension = exported$1.supported ? \".webp\" : \"$1\";\n urlObject.path = urlObject.path.replace(imageExtensionRe, \"\" + suffix + extension);\n urlObject.path = urlObject.path.replace(tileURLAPIPrefixRe, \"/\");\n urlObject.path = \"/v4\" + urlObject.path;\n var accessToken = this._customAccessToken || getAccessToken(urlObject.params) || config.ACCESS_TOKEN;\n if (config.REQUIRE_ACCESS_TOKEN && accessToken && this._skuToken) {\n urlObject.params.push(\"sku=\" + this._skuToken);\n }\n return this._makeAPIURL(urlObject, accessToken);\n };\n RequestManager.prototype.canonicalizeTileURL = function canonicalizeTileURL(url, removeAccessToken) {\n var version2 = \"/v4/\";\n var extensionRe = /\\.[\\w]+$/;\n var urlObject = parseUrl(url);\n if (!urlObject.path.match(/(^\\/v4\\/)/) || !urlObject.path.match(extensionRe)) {\n return url;\n }\n var result = \"mapbox://tiles/\";\n result += urlObject.path.replace(version2, \"\");\n var params = urlObject.params;\n if (removeAccessToken) {\n params = params.filter(function(p) {\n return !p.match(/^access_token=/);\n });\n }\n if (params.length) {\n result += \"?\" + params.join(\"&\");\n }\n return result;\n };\n RequestManager.prototype.canonicalizeTileset = function canonicalizeTileset(tileJSON, sourceURL) {\n var removeAccessToken = sourceURL ? isMapboxURL(sourceURL) : false;\n var canonical = [];\n for (var i = 0, list = tileJSON.tiles || []; i < list.length; i += 1) {\n var url = list[i];\n if (isMapboxHTTPURL(url)) {\n canonical.push(this.canonicalizeTileURL(url, removeAccessToken));\n } else {\n canonical.push(url);\n }\n }\n return canonical;\n };\n RequestManager.prototype._makeAPIURL = function _makeAPIURL(urlObject, accessToken) {\n var help = \"See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes\";\n var apiUrlObject = parseUrl(config.API_URL);\n urlObject.protocol = apiUrlObject.protocol;\n urlObject.authority = apiUrlObject.authority;\n if (urlObject.protocol === \"http\") {\n var i = urlObject.params.indexOf(\"secure\");\n if (i >= 0) {\n urlObject.params.splice(i, 1);\n }\n }\n if (apiUrlObject.path !== \"/\") {\n urlObject.path = \"\" + apiUrlObject.path + urlObject.path;\n }\n if (!config.REQUIRE_ACCESS_TOKEN) {\n return formatUrl(urlObject);\n }\n accessToken = accessToken || config.ACCESS_TOKEN;\n if (!accessToken) {\n throw new Error(\"An API access token is required to use Mapbox GL. \" + help);\n }\n if (accessToken[0] === \"s\") {\n throw new Error(\"Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). \" + help);\n }\n urlObject.params = urlObject.params.filter(function(d) {\n return d.indexOf(\"access_token\") === -1;\n });\n urlObject.params.push(\"access_token=\" + accessToken);\n return formatUrl(urlObject);\n };\n function isMapboxURL(url) {\n return url.indexOf(\"mapbox:\") === 0;\n }\n var mapboxHTTPURLRe = /^((https?:)?\\/\\/)?([^\\/]+\\.)?mapbox\\.c(n|om)(\\/|\\?|$)/i;\n function isMapboxHTTPURL(url) {\n return mapboxHTTPURLRe.test(url);\n }\n function hasCacheDefeatingSku(url) {\n return url.indexOf(\"sku=\") > 0 && isMapboxHTTPURL(url);\n }\n function getAccessToken(params) {\n for (var i = 0, list = params; i < list.length; i += 1) {\n var param = list[i];\n var match = param.match(/^access_token=(.*)$/);\n if (match) {\n return match[1];\n }\n }\n return null;\n }\n var urlRe = /^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;\n function parseUrl(url) {\n var parts = url.match(urlRe);\n if (!parts) {\n throw new Error(\"Unable to parse URL object\");\n }\n return {\n protocol: parts[1],\n authority: parts[2],\n path: parts[3] || \"/\",\n params: parts[4] ? parts[4].split(\"&\") : []\n };\n }\n function formatUrl(obj) {\n var params = obj.params.length ? \"?\" + obj.params.join(\"&\") : \"\";\n return obj.protocol + \"://\" + obj.authority + obj.path + params;\n }\n var telemEventKey = \"mapbox.eventData\";\n function parseAccessToken(accessToken) {\n if (!accessToken) {\n return null;\n }\n var parts = accessToken.split(\".\");\n if (!parts || parts.length !== 3) {\n return null;\n }\n try {\n var jsonData = JSON.parse(b64DecodeUnicode(parts[1]));\n return jsonData;\n } catch (e) {\n return null;\n }\n }\n var TelemetryEvent = function TelemetryEvent2(type) {\n this.type = type;\n this.anonId = null;\n this.eventData = {};\n this.queue = [];\n this.pendingRequest = null;\n };\n TelemetryEvent.prototype.getStorageKey = function getStorageKey(domain) {\n var tokenData = parseAccessToken(config.ACCESS_TOKEN);\n var u = \"\";\n if (tokenData && tokenData[\"u\"]) {\n u = b64EncodeUnicode(tokenData[\"u\"]);\n } else {\n u = config.ACCESS_TOKEN || \"\";\n }\n return domain ? telemEventKey + \".\" + domain + \":\" + u : telemEventKey + \":\" + u;\n };\n TelemetryEvent.prototype.fetchEventData = function fetchEventData() {\n var isLocalStorageAvailable = storageAvailable(\"localStorage\");\n var storageKey = this.getStorageKey();\n var uuidKey = this.getStorageKey(\"uuid\");\n if (isLocalStorageAvailable) {\n try {\n var data = window$1.localStorage.getItem(storageKey);\n if (data) {\n this.eventData = JSON.parse(data);\n }\n var uuid2 = window$1.localStorage.getItem(uuidKey);\n if (uuid2) {\n this.anonId = uuid2;\n }\n } catch (e) {\n warnOnce(\"Unable to read from LocalStorage\");\n }\n }\n };\n TelemetryEvent.prototype.saveEventData = function saveEventData() {\n var isLocalStorageAvailable = storageAvailable(\"localStorage\");\n var storageKey = this.getStorageKey();\n var uuidKey = this.getStorageKey(\"uuid\");\n if (isLocalStorageAvailable) {\n try {\n window$1.localStorage.setItem(uuidKey, this.anonId);\n if (Object.keys(this.eventData).length >= 1) {\n window$1.localStorage.setItem(storageKey, JSON.stringify(this.eventData));\n }\n } catch (e) {\n warnOnce(\"Unable to write to LocalStorage\");\n }\n }\n };\n TelemetryEvent.prototype.processRequests = function processRequests(_) {\n };\n TelemetryEvent.prototype.postEvent = function postEvent(timestamp, additionalPayload, callback, customAccessToken) {\n var this$1 = this;\n if (!config.EVENTS_URL) {\n return;\n }\n var eventsUrlObject = parseUrl(config.EVENTS_URL);\n eventsUrlObject.params.push(\"access_token=\" + (customAccessToken || config.ACCESS_TOKEN || \"\"));\n var payload = {\n event: this.type,\n created: new Date(timestamp).toISOString(),\n sdkIdentifier: \"mapbox-gl-js\",\n sdkVersion: version,\n skuId: SKU_ID,\n userId: this.anonId\n };\n var finalPayload = additionalPayload ? extend2(payload, additionalPayload) : payload;\n var request = {\n url: formatUrl(eventsUrlObject),\n headers: { \"Content-Type\": \"text/plain\" },\n body: JSON.stringify([finalPayload])\n };\n this.pendingRequest = postData(request, function(error2) {\n this$1.pendingRequest = null;\n callback(error2);\n this$1.saveEventData();\n this$1.processRequests(customAccessToken);\n });\n };\n TelemetryEvent.prototype.queueRequest = function queueRequest(event, customAccessToken) {\n this.queue.push(event);\n this.processRequests(customAccessToken);\n };\n var MapLoadEvent = function(TelemetryEvent2) {\n function MapLoadEvent2() {\n TelemetryEvent2.call(this, \"map.load\");\n this.success = {};\n this.skuToken = \"\";\n }\n if (TelemetryEvent2)\n MapLoadEvent2.__proto__ = TelemetryEvent2;\n MapLoadEvent2.prototype = Object.create(TelemetryEvent2 && TelemetryEvent2.prototype);\n MapLoadEvent2.prototype.constructor = MapLoadEvent2;\n MapLoadEvent2.prototype.postMapLoadEvent = function postMapLoadEvent2(tileUrls, mapId, skuToken, customAccessToken) {\n this.skuToken = skuToken;\n if (config.EVENTS_URL && customAccessToken || config.ACCESS_TOKEN && Array.isArray(tileUrls) && tileUrls.some(function(url) {\n return isMapboxURL(url) || isMapboxHTTPURL(url);\n })) {\n this.queueRequest({\n id: mapId,\n timestamp: Date.now()\n }, customAccessToken);\n }\n };\n MapLoadEvent2.prototype.processRequests = function processRequests(customAccessToken) {\n var this$1 = this;\n if (this.pendingRequest || this.queue.length === 0) {\n return;\n }\n var ref = this.queue.shift();\n var id2 = ref.id;\n var timestamp = ref.timestamp;\n if (id2 && this.success[id2]) {\n return;\n }\n if (!this.anonId) {\n this.fetchEventData();\n }\n if (!validateUuid(this.anonId)) {\n this.anonId = uuid();\n }\n this.postEvent(timestamp, { skuToken: this.skuToken }, function(err) {\n if (!err) {\n if (id2) {\n this$1.success[id2] = true;\n }\n }\n }, customAccessToken);\n };\n return MapLoadEvent2;\n }(TelemetryEvent);\n var TurnstileEvent = function(TelemetryEvent2) {\n function TurnstileEvent2(customAccessToken) {\n TelemetryEvent2.call(this, \"appUserTurnstile\");\n this._customAccessToken = customAccessToken;\n }\n if (TelemetryEvent2)\n TurnstileEvent2.__proto__ = TelemetryEvent2;\n TurnstileEvent2.prototype = Object.create(TelemetryEvent2 && TelemetryEvent2.prototype);\n TurnstileEvent2.prototype.constructor = TurnstileEvent2;\n TurnstileEvent2.prototype.postTurnstileEvent = function postTurnstileEvent2(tileUrls, customAccessToken) {\n if (config.EVENTS_URL && config.ACCESS_TOKEN && Array.isArray(tileUrls) && tileUrls.some(function(url) {\n return isMapboxURL(url) || isMapboxHTTPURL(url);\n })) {\n this.queueRequest(Date.now(), customAccessToken);\n }\n };\n TurnstileEvent2.prototype.processRequests = function processRequests(customAccessToken) {\n var this$1 = this;\n if (this.pendingRequest || this.queue.length === 0) {\n return;\n }\n if (!this.anonId || !this.eventData.lastSuccess || !this.eventData.tokenU) {\n this.fetchEventData();\n }\n var tokenData = parseAccessToken(config.ACCESS_TOKEN);\n var tokenU = tokenData ? tokenData[\"u\"] : config.ACCESS_TOKEN;\n var dueForEvent = tokenU !== this.eventData.tokenU;\n if (!validateUuid(this.anonId)) {\n this.anonId = uuid();\n dueForEvent = true;\n }\n var nextUpdate = this.queue.shift();\n if (this.eventData.lastSuccess) {\n var lastUpdate = new Date(this.eventData.lastSuccess);\n var nextDate = new Date(nextUpdate);\n var daysElapsed = (nextUpdate - this.eventData.lastSuccess) / (24 * 60 * 60 * 1e3);\n dueForEvent = dueForEvent || daysElapsed >= 1 || daysElapsed < -1 || lastUpdate.getDate() !== nextDate.getDate();\n } else {\n dueForEvent = true;\n }\n if (!dueForEvent) {\n return this.processRequests();\n }\n this.postEvent(nextUpdate, { \"enabled.telemetry\": false }, function(err) {\n if (!err) {\n this$1.eventData.lastSuccess = nextUpdate;\n this$1.eventData.tokenU = tokenU;\n }\n }, customAccessToken);\n };\n return TurnstileEvent2;\n }(TelemetryEvent);\n var turnstileEvent_ = new TurnstileEvent();\n var postTurnstileEvent = turnstileEvent_.postTurnstileEvent.bind(turnstileEvent_);\n var mapLoadEvent_ = new MapLoadEvent();\n var postMapLoadEvent = mapLoadEvent_.postMapLoadEvent.bind(mapLoadEvent_);\n var CACHE_NAME = \"mapbox-tiles\";\n var cacheLimit = 500;\n var cacheCheckThreshold = 50;\n var MIN_TIME_UNTIL_EXPIRY = 1e3 * 60 * 7;\n var sharedCache;\n function cacheOpen() {\n if (window$1.caches && !sharedCache) {\n sharedCache = window$1.caches.open(CACHE_NAME);\n }\n }\n var responseConstructorSupportsReadableStream;\n function prepareBody(response, callback) {\n if (responseConstructorSupportsReadableStream === void 0) {\n try {\n new Response(new ReadableStream());\n responseConstructorSupportsReadableStream = true;\n } catch (e) {\n responseConstructorSupportsReadableStream = false;\n }\n }\n if (responseConstructorSupportsReadableStream) {\n callback(response.body);\n } else {\n response.blob().then(callback);\n }\n }\n function cachePut(request, response, requestTime) {\n cacheOpen();\n if (!sharedCache) {\n return;\n }\n var options = {\n status: response.status,\n statusText: response.statusText,\n headers: new window$1.Headers()\n };\n response.headers.forEach(function(v, k) {\n return options.headers.set(k, v);\n });\n var cacheControl = parseCacheControl(response.headers.get(\"Cache-Control\") || \"\");\n if (cacheControl[\"no-store\"]) {\n return;\n }\n if (cacheControl[\"max-age\"]) {\n options.headers.set(\"Expires\", new Date(requestTime + cacheControl[\"max-age\"] * 1e3).toUTCString());\n }\n var timeUntilExpiry = new Date(options.headers.get(\"Expires\")).getTime() - requestTime;\n if (timeUntilExpiry < MIN_TIME_UNTIL_EXPIRY) {\n return;\n }\n prepareBody(response, function(body) {\n var clonedResponse = new window$1.Response(body, options);\n cacheOpen();\n if (!sharedCache) {\n return;\n }\n sharedCache.then(function(cache) {\n return cache.put(stripQueryParameters(request.url), clonedResponse);\n }).catch(function(e) {\n return warnOnce(e.message);\n });\n });\n }\n function stripQueryParameters(url) {\n var start = url.indexOf(\"?\");\n return start < 0 ? url : url.slice(0, start);\n }\n function cacheGet(request, callback) {\n cacheOpen();\n if (!sharedCache) {\n return callback(null);\n }\n var strippedURL = stripQueryParameters(request.url);\n sharedCache.then(function(cache) {\n cache.match(strippedURL).then(function(response) {\n var fresh = isFresh(response);\n cache.delete(strippedURL);\n if (fresh) {\n cache.put(strippedURL, response.clone());\n }\n callback(null, response, fresh);\n }).catch(callback);\n }).catch(callback);\n }\n function isFresh(response) {\n if (!response) {\n return false;\n }\n var expires = new Date(response.headers.get(\"Expires\") || 0);\n var cacheControl = parseCacheControl(response.headers.get(\"Cache-Control\") || \"\");\n return expires > Date.now() && !cacheControl[\"no-cache\"];\n }\n var globalEntryCounter = Infinity;\n function cacheEntryPossiblyAdded(dispatcher) {\n globalEntryCounter++;\n if (globalEntryCounter > cacheCheckThreshold) {\n dispatcher.getActor().send(\"enforceCacheSizeLimit\", cacheLimit);\n globalEntryCounter = 0;\n }\n }\n function enforceCacheSizeLimit(limit) {\n cacheOpen();\n if (!sharedCache) {\n return;\n }\n sharedCache.then(function(cache) {\n cache.keys().then(function(keys) {\n for (var i = 0; i < keys.length - limit; i++) {\n cache.delete(keys[i]);\n }\n });\n });\n }\n function clearTileCache(callback) {\n var promise = window$1.caches.delete(CACHE_NAME);\n if (callback) {\n promise.catch(callback).then(function() {\n return callback();\n });\n }\n }\n function setCacheLimits(limit, checkThreshold) {\n cacheLimit = limit;\n cacheCheckThreshold = checkThreshold;\n }\n var supportsOffscreenCanvas;\n function offscreenCanvasSupported() {\n if (supportsOffscreenCanvas == null) {\n supportsOffscreenCanvas = window$1.OffscreenCanvas && new window$1.OffscreenCanvas(1, 1).getContext(\"2d\") && typeof window$1.createImageBitmap === \"function\";\n }\n return supportsOffscreenCanvas;\n }\n var ResourceType = {\n Unknown: \"Unknown\",\n Style: \"Style\",\n Source: \"Source\",\n Tile: \"Tile\",\n Glyphs: \"Glyphs\",\n SpriteImage: \"SpriteImage\",\n SpriteJSON: \"SpriteJSON\",\n Image: \"Image\"\n };\n if (typeof Object.freeze == \"function\") {\n Object.freeze(ResourceType);\n }\n var AJAXError = function(Error2) {\n function AJAXError2(message, status2, url) {\n if (status2 === 401 && isMapboxHTTPURL(url)) {\n message += \": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes\";\n }\n Error2.call(this, message);\n this.status = status2;\n this.url = url;\n this.name = this.constructor.name;\n this.message = message;\n }\n if (Error2)\n AJAXError2.__proto__ = Error2;\n AJAXError2.prototype = Object.create(Error2 && Error2.prototype);\n AJAXError2.prototype.constructor = AJAXError2;\n AJAXError2.prototype.toString = function toString2() {\n return this.name + \": \" + this.message + \" (\" + this.status + \"): \" + this.url;\n };\n return AJAXError2;\n }(Error);\n var getReferrer = isWorker() ? function() {\n return self.worker && self.worker.referrer;\n } : function() {\n return (window$1.location.protocol === \"blob:\" ? window$1.parent : window$1).location.href;\n };\n var isFileURL = function(url) {\n return /^file:/.test(url) || /^file:/.test(getReferrer()) && !/^\\w+:/.test(url);\n };\n function makeFetchRequest(requestParameters, callback) {\n var controller = new window$1.AbortController();\n var request = new window$1.Request(requestParameters.url, {\n method: requestParameters.method || \"GET\",\n body: requestParameters.body,\n credentials: requestParameters.credentials,\n headers: requestParameters.headers,\n referrer: getReferrer(),\n signal: controller.signal\n });\n var complete = false;\n var aborted = false;\n var cacheIgnoringSearch = hasCacheDefeatingSku(request.url);\n if (requestParameters.type === \"json\") {\n request.headers.set(\"Accept\", \"application/json\");\n }\n var validateOrFetch = function(err, cachedResponse, responseIsFresh) {\n if (aborted) {\n return;\n }\n if (err) {\n if (err.message !== \"SecurityError\") {\n warnOnce(err);\n }\n }\n if (cachedResponse && responseIsFresh) {\n return finishRequest(cachedResponse);\n }\n var requestTime = Date.now();\n window$1.fetch(request).then(function(response) {\n if (response.ok) {\n var cacheableResponse = cacheIgnoringSearch ? response.clone() : null;\n return finishRequest(response, cacheableResponse, requestTime);\n } else {\n return callback(new AJAXError(response.statusText, response.status, requestParameters.url));\n }\n }).catch(function(error2) {\n if (error2.code === 20) {\n return;\n }\n callback(new Error(error2.message));\n });\n };\n var finishRequest = function(response, cacheableResponse, requestTime) {\n (requestParameters.type === \"arrayBuffer\" ? response.arrayBuffer() : requestParameters.type === \"json\" ? response.json() : response.text()).then(function(result) {\n if (aborted) {\n return;\n }\n if (cacheableResponse && requestTime) {\n cachePut(request, cacheableResponse, requestTime);\n }\n complete = true;\n callback(null, result, response.headers.get(\"Cache-Control\"), response.headers.get(\"Expires\"));\n }).catch(function(err) {\n if (!aborted) {\n callback(new Error(err.message));\n }\n });\n };\n if (cacheIgnoringSearch) {\n cacheGet(request, validateOrFetch);\n } else {\n validateOrFetch(null, null);\n }\n return {\n cancel: function() {\n aborted = true;\n if (!complete) {\n controller.abort();\n }\n }\n };\n }\n function makeXMLHttpRequest(requestParameters, callback) {\n var xhr = new window$1.XMLHttpRequest();\n xhr.open(requestParameters.method || \"GET\", requestParameters.url, true);\n if (requestParameters.type === \"arrayBuffer\") {\n xhr.responseType = \"arraybuffer\";\n }\n for (var k in requestParameters.headers) {\n xhr.setRequestHeader(k, requestParameters.headers[k]);\n }\n if (requestParameters.type === \"json\") {\n xhr.responseType = \"text\";\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n }\n xhr.withCredentials = requestParameters.credentials === \"include\";\n xhr.onerror = function() {\n callback(new Error(xhr.statusText));\n };\n xhr.onload = function() {\n if ((xhr.status >= 200 && xhr.status < 300 || xhr.status === 0) && xhr.response !== null) {\n var data = xhr.response;\n if (requestParameters.type === \"json\") {\n try {\n data = JSON.parse(xhr.response);\n } catch (err) {\n return callback(err);\n }\n }\n callback(null, data, xhr.getResponseHeader(\"Cache-Control\"), xhr.getResponseHeader(\"Expires\"));\n } else {\n callback(new AJAXError(xhr.statusText, xhr.status, requestParameters.url));\n }\n };\n xhr.send(requestParameters.body);\n return {\n cancel: function() {\n return xhr.abort();\n }\n };\n }\n var makeRequest = function(requestParameters, callback) {\n if (!isFileURL(requestParameters.url)) {\n if (window$1.fetch && window$1.Request && window$1.AbortController && window$1.Request.prototype.hasOwnProperty(\"signal\")) {\n return makeFetchRequest(requestParameters, callback);\n }\n if (isWorker() && self.worker && self.worker.actor) {\n var queueOnMainThread = true;\n return self.worker.actor.send(\"getResource\", requestParameters, callback, void 0, queueOnMainThread);\n }\n }\n return makeXMLHttpRequest(requestParameters, callback);\n };\n var getJSON = function(requestParameters, callback) {\n return makeRequest(extend2(requestParameters, { type: \"json\" }), callback);\n };\n var getArrayBuffer = function(requestParameters, callback) {\n return makeRequest(extend2(requestParameters, { type: \"arrayBuffer\" }), callback);\n };\n var postData = function(requestParameters, callback) {\n return makeRequest(extend2(requestParameters, { method: \"POST\" }), callback);\n };\n function sameOrigin(url) {\n var a = window$1.document.createElement(\"a\");\n a.href = url;\n return a.protocol === window$1.document.location.protocol && a.host === window$1.document.location.host;\n }\n var transparentPngUrl = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\";\n function arrayBufferToImage(data, callback, cacheControl, expires) {\n var img = new window$1.Image();\n var URL2 = window$1.URL;\n img.onload = function() {\n callback(null, img);\n URL2.revokeObjectURL(img.src);\n img.onload = null;\n window$1.requestAnimationFrame(function() {\n img.src = transparentPngUrl;\n });\n };\n img.onerror = function() {\n return callback(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));\n };\n var blob = new window$1.Blob([new Uint8Array(data)], { type: \"image/png\" });\n img.cacheControl = cacheControl;\n img.expires = expires;\n img.src = data.byteLength ? URL2.createObjectURL(blob) : transparentPngUrl;\n }\n function arrayBufferToImageBitmap(data, callback) {\n var blob = new window$1.Blob([new Uint8Array(data)], { type: \"image/png\" });\n window$1.createImageBitmap(blob).then(function(imgBitmap) {\n callback(null, imgBitmap);\n }).catch(function(e) {\n callback(new Error(\"Could not load image because of \" + e.message + \". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));\n });\n }\n var imageQueue, numImageRequests;\n var resetImageRequestQueue = function() {\n imageQueue = [];\n numImageRequests = 0;\n };\n resetImageRequestQueue();\n var getImage = function(requestParameters, callback) {\n if (exported$1.supported) {\n if (!requestParameters.headers) {\n requestParameters.headers = {};\n }\n requestParameters.headers.accept = \"image/webp,*/*\";\n }\n if (numImageRequests >= config.MAX_PARALLEL_IMAGE_REQUESTS) {\n var queued = {\n requestParameters,\n callback,\n cancelled: false,\n cancel: function cancel2() {\n this.cancelled = true;\n }\n };\n imageQueue.push(queued);\n return queued;\n }\n numImageRequests++;\n var advanced = false;\n var advanceImageRequestQueue = function() {\n if (advanced) {\n return;\n }\n advanced = true;\n numImageRequests--;\n while (imageQueue.length && numImageRequests < config.MAX_PARALLEL_IMAGE_REQUESTS) {\n var request2 = imageQueue.shift();\n var requestParameters2 = request2.requestParameters;\n var callback2 = request2.callback;\n var cancelled = request2.cancelled;\n if (!cancelled) {\n request2.cancel = getImage(requestParameters2, callback2).cancel;\n }\n }\n };\n var request = getArrayBuffer(requestParameters, function(err, data, cacheControl, expires) {\n advanceImageRequestQueue();\n if (err) {\n callback(err);\n } else if (data) {\n if (offscreenCanvasSupported()) {\n arrayBufferToImageBitmap(data, callback);\n } else {\n arrayBufferToImage(data, callback, cacheControl, expires);\n }\n }\n });\n return {\n cancel: function() {\n request.cancel();\n advanceImageRequestQueue();\n }\n };\n };\n var getVideo = function(urls, callback) {\n var video = window$1.document.createElement(\"video\");\n video.muted = true;\n video.onloadstart = function() {\n callback(null, video);\n };\n for (var i = 0; i < urls.length; i++) {\n var s = window$1.document.createElement(\"source\");\n if (!sameOrigin(urls[i])) {\n video.crossOrigin = \"Anonymous\";\n }\n s.src = urls[i];\n video.appendChild(s);\n }\n return {\n cancel: function() {\n }\n };\n };\n function _addEventListener(type, listener, listenerList) {\n var listenerExists = listenerList[type] && listenerList[type].indexOf(listener) !== -1;\n if (!listenerExists) {\n listenerList[type] = listenerList[type] || [];\n listenerList[type].push(listener);\n }\n }\n function _removeEventListener(type, listener, listenerList) {\n if (listenerList && listenerList[type]) {\n var index = listenerList[type].indexOf(listener);\n if (index !== -1) {\n listenerList[type].splice(index, 1);\n }\n }\n }\n var Event = function Event2(type, data) {\n if (data === void 0)\n data = {};\n extend2(this, data);\n this.type = type;\n };\n var ErrorEvent = function(Event2) {\n function ErrorEvent2(error2, data) {\n if (data === void 0)\n data = {};\n Event2.call(this, \"error\", extend2({ error: error2 }, data));\n }\n if (Event2)\n ErrorEvent2.__proto__ = Event2;\n ErrorEvent2.prototype = Object.create(Event2 && Event2.prototype);\n ErrorEvent2.prototype.constructor = ErrorEvent2;\n return ErrorEvent2;\n }(Event);\n var Evented = function Evented2() {\n };\n Evented.prototype.on = function on(type, listener) {\n this._listeners = this._listeners || {};\n _addEventListener(type, listener, this._listeners);\n return this;\n };\n Evented.prototype.off = function off(type, listener) {\n _removeEventListener(type, listener, this._listeners);\n _removeEventListener(type, listener, this._oneTimeListeners);\n return this;\n };\n Evented.prototype.once = function once(type, listener) {\n this._oneTimeListeners = this._oneTimeListeners || {};\n _addEventListener(type, listener, this._oneTimeListeners);\n return this;\n };\n Evented.prototype.fire = function fire(event, properties2) {\n if (typeof event === \"string\") {\n event = new Event(event, properties2 || {});\n }\n var type = event.type;\n if (this.listens(type)) {\n event.target = this;\n var listeners = this._listeners && this._listeners[type] ? this._listeners[type].slice() : [];\n for (var i = 0, list = listeners; i < list.length; i += 1) {\n var listener = list[i];\n listener.call(this, event);\n }\n var oneTimeListeners = this._oneTimeListeners && this._oneTimeListeners[type] ? this._oneTimeListeners[type].slice() : [];\n for (var i$1 = 0, list$1 = oneTimeListeners; i$1 < list$1.length; i$1 += 1) {\n var listener$1 = list$1[i$1];\n _removeEventListener(type, listener$1, this._oneTimeListeners);\n listener$1.call(this, event);\n }\n var parent = this._eventedParent;\n if (parent) {\n extend2(event, typeof this._eventedParentData === \"function\" ? this._eventedParentData() : this._eventedParentData);\n parent.fire(event);\n }\n } else if (event instanceof ErrorEvent) {\n console.error(event.error);\n }\n return this;\n };\n Evented.prototype.listens = function listens(type) {\n return this._listeners && this._listeners[type] && this._listeners[type].length > 0 || this._oneTimeListeners && this._oneTimeListeners[type] && this._oneTimeListeners[type].length > 0 || this._eventedParent && this._eventedParent.listens(type);\n };\n Evented.prototype.setEventedParent = function setEventedParent(parent, data) {\n this._eventedParent = parent;\n this._eventedParentData = data;\n return this;\n };\n var $version = 8;\n var $root = {\n version: {\n required: true,\n type: \"enum\",\n values: [\n 8\n ]\n },\n name: {\n type: \"string\"\n },\n metadata: {\n type: \"*\"\n },\n center: {\n type: \"array\",\n value: \"number\"\n },\n zoom: {\n type: \"number\"\n },\n bearing: {\n type: \"number\",\n \"default\": 0,\n period: 360,\n units: \"degrees\"\n },\n pitch: {\n type: \"number\",\n \"default\": 0,\n units: \"degrees\"\n },\n light: {\n type: \"light\"\n },\n sources: {\n required: true,\n type: \"sources\"\n },\n sprite: {\n type: \"string\"\n },\n glyphs: {\n type: \"string\"\n },\n transition: {\n type: \"transition\"\n },\n layers: {\n required: true,\n type: \"array\",\n value: \"layer\"\n }\n };\n var sources = {\n \"*\": {\n type: \"source\"\n }\n };\n var source = [\n \"source_vector\",\n \"source_raster\",\n \"source_raster_dem\",\n \"source_geojson\",\n \"source_video\",\n \"source_image\"\n ];\n var source_vector = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n vector: {}\n }\n },\n url: {\n type: \"string\"\n },\n tiles: {\n type: \"array\",\n value: \"string\"\n },\n bounds: {\n type: \"array\",\n value: \"number\",\n length: 4,\n \"default\": [\n -180,\n -85.051129,\n 180,\n 85.051129\n ]\n },\n scheme: {\n type: \"enum\",\n values: {\n xyz: {},\n tms: {}\n },\n \"default\": \"xyz\"\n },\n minzoom: {\n type: \"number\",\n \"default\": 0\n },\n maxzoom: {\n type: \"number\",\n \"default\": 22\n },\n attribution: {\n type: \"string\"\n },\n promoteId: {\n type: \"promoteId\"\n },\n volatile: {\n type: \"boolean\",\n \"default\": false\n },\n \"*\": {\n type: \"*\"\n }\n };\n var source_raster = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n raster: {}\n }\n },\n url: {\n type: \"string\"\n },\n tiles: {\n type: \"array\",\n value: \"string\"\n },\n bounds: {\n type: \"array\",\n value: \"number\",\n length: 4,\n \"default\": [\n -180,\n -85.051129,\n 180,\n 85.051129\n ]\n },\n minzoom: {\n type: \"number\",\n \"default\": 0\n },\n maxzoom: {\n type: \"number\",\n \"default\": 22\n },\n tileSize: {\n type: \"number\",\n \"default\": 512,\n units: \"pixels\"\n },\n scheme: {\n type: \"enum\",\n values: {\n xyz: {},\n tms: {}\n },\n \"default\": \"xyz\"\n },\n attribution: {\n type: \"string\"\n },\n volatile: {\n type: \"boolean\",\n \"default\": false\n },\n \"*\": {\n type: \"*\"\n }\n };\n var source_raster_dem = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n \"raster-dem\": {}\n }\n },\n url: {\n type: \"string\"\n },\n tiles: {\n type: \"array\",\n value: \"string\"\n },\n bounds: {\n type: \"array\",\n value: \"number\",\n length: 4,\n \"default\": [\n -180,\n -85.051129,\n 180,\n 85.051129\n ]\n },\n minzoom: {\n type: \"number\",\n \"default\": 0\n },\n maxzoom: {\n type: \"number\",\n \"default\": 22\n },\n tileSize: {\n type: \"number\",\n \"default\": 512,\n units: \"pixels\"\n },\n attribution: {\n type: \"string\"\n },\n encoding: {\n type: \"enum\",\n values: {\n terrarium: {},\n mapbox: {}\n },\n \"default\": \"mapbox\"\n },\n volatile: {\n type: \"boolean\",\n \"default\": false\n },\n \"*\": {\n type: \"*\"\n }\n };\n var source_geojson = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n geojson: {}\n }\n },\n data: {\n type: \"*\"\n },\n maxzoom: {\n type: \"number\",\n \"default\": 18\n },\n attribution: {\n type: \"string\"\n },\n buffer: {\n type: \"number\",\n \"default\": 128,\n maximum: 512,\n minimum: 0\n },\n filter: {\n type: \"*\"\n },\n tolerance: {\n type: \"number\",\n \"default\": 0.375\n },\n cluster: {\n type: \"boolean\",\n \"default\": false\n },\n clusterRadius: {\n type: \"number\",\n \"default\": 50,\n minimum: 0\n },\n clusterMaxZoom: {\n type: \"number\"\n },\n clusterMinPoints: {\n type: \"number\"\n },\n clusterProperties: {\n type: \"*\"\n },\n lineMetrics: {\n type: \"boolean\",\n \"default\": false\n },\n generateId: {\n type: \"boolean\",\n \"default\": false\n },\n promoteId: {\n type: \"promoteId\"\n }\n };\n var source_video = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n video: {}\n }\n },\n urls: {\n required: true,\n type: \"array\",\n value: \"string\"\n },\n coordinates: {\n required: true,\n type: \"array\",\n length: 4,\n value: {\n type: \"array\",\n length: 2,\n value: \"number\"\n }\n }\n };\n var source_image = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n image: {}\n }\n },\n url: {\n required: true,\n type: \"string\"\n },\n coordinates: {\n required: true,\n type: \"array\",\n length: 4,\n value: {\n type: \"array\",\n length: 2,\n value: \"number\"\n }\n }\n };\n var layer = {\n id: {\n type: \"string\",\n required: true\n },\n type: {\n type: \"enum\",\n values: {\n fill: {},\n line: {},\n symbol: {},\n circle: {},\n heatmap: {},\n \"fill-extrusion\": {},\n raster: {},\n hillshade: {},\n background: {}\n },\n required: true\n },\n metadata: {\n type: \"*\"\n },\n source: {\n type: \"string\"\n },\n \"source-layer\": {\n type: \"string\"\n },\n minzoom: {\n type: \"number\",\n minimum: 0,\n maximum: 24\n },\n maxzoom: {\n type: \"number\",\n minimum: 0,\n maximum: 24\n },\n filter: {\n type: \"filter\"\n },\n layout: {\n type: \"layout\"\n },\n paint: {\n type: \"paint\"\n }\n };\n var layout = [\n \"layout_fill\",\n \"layout_line\",\n \"layout_circle\",\n \"layout_heatmap\",\n \"layout_fill-extrusion\",\n \"layout_symbol\",\n \"layout_raster\",\n \"layout_hillshade\",\n \"layout_background\"\n ];\n var layout_background = {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_fill = {\n \"fill-sort-key\": {\n type: \"number\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_circle = {\n \"circle-sort-key\": {\n type: \"number\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_heatmap = {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_line = {\n \"line-cap\": {\n type: \"enum\",\n values: {\n butt: {},\n round: {},\n square: {}\n },\n \"default\": \"butt\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-join\": {\n type: \"enum\",\n values: {\n bevel: {},\n round: {},\n miter: {}\n },\n \"default\": \"miter\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-miter-limit\": {\n type: \"number\",\n \"default\": 2,\n requires: [\n {\n \"line-join\": \"miter\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-round-limit\": {\n type: \"number\",\n \"default\": 1.05,\n requires: [\n {\n \"line-join\": \"round\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-sort-key\": {\n type: \"number\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_symbol = {\n \"symbol-placement\": {\n type: \"enum\",\n values: {\n point: {},\n line: {},\n \"line-center\": {}\n },\n \"default\": \"point\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"symbol-spacing\": {\n type: \"number\",\n \"default\": 250,\n minimum: 1,\n units: \"pixels\",\n requires: [\n {\n \"symbol-placement\": \"line\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"symbol-avoid-edges\": {\n type: \"boolean\",\n \"default\": false,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"symbol-sort-key\": {\n type: \"number\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"symbol-z-order\": {\n type: \"enum\",\n values: {\n auto: {},\n \"viewport-y\": {},\n source: {}\n },\n \"default\": \"auto\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-allow-overlap\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-ignore-placement\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-optional\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"icon-image\",\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-rotation-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {},\n auto: {}\n },\n \"default\": \"auto\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-size\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n units: \"factor of the original icon size\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-text-fit\": {\n type: \"enum\",\n values: {\n none: {},\n width: {},\n height: {},\n both: {}\n },\n \"default\": \"none\",\n requires: [\n \"icon-image\",\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-text-fit-padding\": {\n type: \"array\",\n value: \"number\",\n length: 4,\n \"default\": [\n 0,\n 0,\n 0,\n 0\n ],\n units: \"pixels\",\n requires: [\n \"icon-image\",\n \"text-field\",\n {\n \"icon-text-fit\": [\n \"both\",\n \"width\",\n \"height\"\n ]\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-image\": {\n type: \"resolvedImage\",\n tokens: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-rotate\": {\n type: \"number\",\n \"default\": 0,\n period: 360,\n units: \"degrees\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-padding\": {\n type: \"number\",\n \"default\": 2,\n minimum: 0,\n units: \"pixels\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-keep-upright\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"icon-image\",\n {\n \"icon-rotation-alignment\": \"map\"\n },\n {\n \"symbol-placement\": [\n \"line\",\n \"line-center\"\n ]\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-offset\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-anchor\": {\n type: \"enum\",\n values: {\n center: {},\n left: {},\n right: {},\n top: {},\n bottom: {},\n \"top-left\": {},\n \"top-right\": {},\n \"bottom-left\": {},\n \"bottom-right\": {}\n },\n \"default\": \"center\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-pitch-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {},\n auto: {}\n },\n \"default\": \"auto\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-pitch-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {},\n auto: {}\n },\n \"default\": \"auto\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-rotation-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {},\n auto: {}\n },\n \"default\": \"auto\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-field\": {\n type: \"formatted\",\n \"default\": \"\",\n tokens: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-font\": {\n type: \"array\",\n value: \"string\",\n \"default\": [\n \"Open Sans Regular\",\n \"Arial Unicode MS Regular\"\n ],\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-size\": {\n type: \"number\",\n \"default\": 16,\n minimum: 0,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-max-width\": {\n type: \"number\",\n \"default\": 10,\n minimum: 0,\n units: \"ems\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-line-height\": {\n type: \"number\",\n \"default\": 1.2,\n units: \"ems\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-letter-spacing\": {\n type: \"number\",\n \"default\": 0,\n units: \"ems\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-justify\": {\n type: \"enum\",\n values: {\n auto: {},\n left: {},\n center: {},\n right: {}\n },\n \"default\": \"center\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-radial-offset\": {\n type: \"number\",\n units: \"ems\",\n \"default\": 0,\n requires: [\n \"text-field\"\n ],\n \"property-type\": \"data-driven\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n }\n },\n \"text-variable-anchor\": {\n type: \"array\",\n value: \"enum\",\n values: {\n center: {},\n left: {},\n right: {},\n top: {},\n bottom: {},\n \"top-left\": {},\n \"top-right\": {},\n \"bottom-left\": {},\n \"bottom-right\": {}\n },\n requires: [\n \"text-field\",\n {\n \"symbol-placement\": [\n \"point\"\n ]\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-anchor\": {\n type: \"enum\",\n values: {\n center: {},\n left: {},\n right: {},\n top: {},\n bottom: {},\n \"top-left\": {},\n \"top-right\": {},\n \"bottom-left\": {},\n \"bottom-right\": {}\n },\n \"default\": \"center\",\n requires: [\n \"text-field\",\n {\n \"!\": \"text-variable-anchor\"\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-max-angle\": {\n type: \"number\",\n \"default\": 45,\n units: \"degrees\",\n requires: [\n \"text-field\",\n {\n \"symbol-placement\": [\n \"line\",\n \"line-center\"\n ]\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-writing-mode\": {\n type: \"array\",\n value: \"enum\",\n values: {\n horizontal: {},\n vertical: {}\n },\n requires: [\n \"text-field\",\n {\n \"symbol-placement\": [\n \"point\"\n ]\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-rotate\": {\n type: \"number\",\n \"default\": 0,\n period: 360,\n units: \"degrees\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-padding\": {\n type: \"number\",\n \"default\": 2,\n minimum: 0,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-keep-upright\": {\n type: \"boolean\",\n \"default\": true,\n requires: [\n \"text-field\",\n {\n \"text-rotation-alignment\": \"map\"\n },\n {\n \"symbol-placement\": [\n \"line\",\n \"line-center\"\n ]\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-transform\": {\n type: \"enum\",\n values: {\n none: {},\n uppercase: {},\n lowercase: {}\n },\n \"default\": \"none\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-offset\": {\n type: \"array\",\n value: \"number\",\n units: \"ems\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n requires: [\n \"text-field\",\n {\n \"!\": \"text-radial-offset\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-allow-overlap\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-ignore-placement\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-optional\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"text-field\",\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_raster = {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_hillshade = {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var filter = {\n type: \"array\",\n value: \"*\"\n };\n var filter_operator = {\n type: \"enum\",\n values: {\n \"==\": {},\n \"!=\": {},\n \">\": {},\n \">=\": {},\n \"<\": {},\n \"<=\": {},\n \"in\": {},\n \"!in\": {},\n all: {},\n any: {},\n none: {},\n has: {},\n \"!has\": {},\n within: {}\n }\n };\n var geometry_type = {\n type: \"enum\",\n values: {\n Point: {},\n LineString: {},\n Polygon: {}\n }\n };\n var function_stop = {\n type: \"array\",\n minimum: 0,\n maximum: 24,\n value: [\n \"number\",\n \"color\"\n ],\n length: 2\n };\n var expression = {\n type: \"array\",\n value: \"*\",\n minimum: 1\n };\n var light = {\n anchor: {\n type: \"enum\",\n \"default\": \"viewport\",\n values: {\n map: {},\n viewport: {}\n },\n \"property-type\": \"data-constant\",\n transition: false,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n }\n },\n position: {\n type: \"array\",\n \"default\": [\n 1.15,\n 210,\n 30\n ],\n length: 3,\n value: \"number\",\n \"property-type\": \"data-constant\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n }\n },\n color: {\n type: \"color\",\n \"property-type\": \"data-constant\",\n \"default\": \"#ffffff\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n transition: true\n },\n intensity: {\n type: \"number\",\n \"property-type\": \"data-constant\",\n \"default\": 0.5,\n minimum: 0,\n maximum: 1,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n transition: true\n }\n };\n var paint = [\n \"paint_fill\",\n \"paint_line\",\n \"paint_circle\",\n \"paint_heatmap\",\n \"paint_fill-extrusion\",\n \"paint_symbol\",\n \"paint_raster\",\n \"paint_hillshade\",\n \"paint_background\"\n ];\n var paint_fill = {\n \"fill-antialias\": {\n type: \"boolean\",\n \"default\": true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n {\n \"!\": \"fill-pattern\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-outline-color\": {\n type: \"color\",\n transition: true,\n requires: [\n {\n \"!\": \"fill-pattern\"\n },\n {\n \"fill-antialias\": true\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"fill-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-pattern\": {\n type: \"resolvedImage\",\n transition: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"cross-faded-data-driven\"\n }\n };\n var paint_line = {\n \"line-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n {\n \"!\": \"line-pattern\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"line-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-width\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-gap-width\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-offset\": {\n type: \"number\",\n \"default\": 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-blur\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-dasharray\": {\n type: \"array\",\n value: \"number\",\n minimum: 0,\n transition: true,\n units: \"line widths\",\n requires: [\n {\n \"!\": \"line-pattern\"\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"cross-faded\"\n },\n \"line-pattern\": {\n type: \"resolvedImage\",\n transition: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"cross-faded-data-driven\"\n },\n \"line-gradient\": {\n type: \"color\",\n transition: false,\n requires: [\n {\n \"!\": \"line-dasharray\"\n },\n {\n \"!\": \"line-pattern\"\n },\n {\n source: \"geojson\",\n has: {\n lineMetrics: true\n }\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"line-progress\"\n ]\n },\n \"property-type\": \"color-ramp\"\n }\n };\n var paint_circle = {\n \"circle-radius\": {\n type: \"number\",\n \"default\": 5,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-blur\": {\n type: \"number\",\n \"default\": 0,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"circle-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"circle-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"circle-pitch-scale\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"circle-pitch-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"viewport\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"circle-stroke-width\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-stroke-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-stroke-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n }\n };\n var paint_heatmap = {\n \"heatmap-radius\": {\n type: \"number\",\n \"default\": 30,\n minimum: 1,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"heatmap-weight\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n transition: false,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"heatmap-intensity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"heatmap-color\": {\n type: \"color\",\n \"default\": [\n \"interpolate\",\n [\n \"linear\"\n ],\n [\n \"heatmap-density\"\n ],\n 0,\n \"rgba(0, 0, 255, 0)\",\n 0.1,\n \"royalblue\",\n 0.3,\n \"cyan\",\n 0.5,\n \"lime\",\n 0.7,\n \"yellow\",\n 1,\n \"red\"\n ],\n transition: false,\n expression: {\n interpolated: true,\n parameters: [\n \"heatmap-density\"\n ]\n },\n \"property-type\": \"color-ramp\"\n },\n \"heatmap-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var paint_symbol = {\n \"icon-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-halo-color\": {\n type: \"color\",\n \"default\": \"rgba(0, 0, 0, 0)\",\n transition: true,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-halo-width\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-halo-blur\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"icon-image\",\n \"icon-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n overridable: true,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-halo-color\": {\n type: \"color\",\n \"default\": \"rgba(0, 0, 0, 0)\",\n transition: true,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-halo-width\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-halo-blur\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"text-field\",\n \"text-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var paint_raster = {\n \"raster-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-hue-rotate\": {\n type: \"number\",\n \"default\": 0,\n period: 360,\n transition: true,\n units: \"degrees\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-brightness-min\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-brightness-max\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-saturation\": {\n type: \"number\",\n \"default\": 0,\n minimum: -1,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-contrast\": {\n type: \"number\",\n \"default\": 0,\n minimum: -1,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-resampling\": {\n type: \"enum\",\n values: {\n linear: {},\n nearest: {}\n },\n \"default\": \"linear\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-fade-duration\": {\n type: \"number\",\n \"default\": 300,\n minimum: 0,\n transition: false,\n units: \"milliseconds\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var paint_hillshade = {\n \"hillshade-illumination-direction\": {\n type: \"number\",\n \"default\": 335,\n minimum: 0,\n maximum: 359,\n transition: false,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-illumination-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"viewport\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-exaggeration\": {\n type: \"number\",\n \"default\": 0.5,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-shadow-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-highlight-color\": {\n type: \"color\",\n \"default\": \"#FFFFFF\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-accent-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var paint_background = {\n \"background-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n {\n \"!\": \"background-pattern\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"background-pattern\": {\n type: \"resolvedImage\",\n transition: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"cross-faded\"\n },\n \"background-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var transition = {\n duration: {\n type: \"number\",\n \"default\": 300,\n minimum: 0,\n units: \"milliseconds\"\n },\n delay: {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n units: \"milliseconds\"\n }\n };\n var promoteId = {\n \"*\": {\n type: \"string\"\n }\n };\n var spec = {\n $version,\n $root,\n sources,\n source,\n source_vector,\n source_raster,\n source_raster_dem,\n source_geojson,\n source_video,\n source_image,\n layer,\n layout,\n layout_background,\n layout_fill,\n layout_circle,\n layout_heatmap,\n \"layout_fill-extrusion\": {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n },\n layout_line,\n layout_symbol,\n layout_raster,\n layout_hillshade,\n filter,\n filter_operator,\n geometry_type,\n \"function\": {\n expression: {\n type: \"expression\"\n },\n stops: {\n type: \"array\",\n value: \"function_stop\"\n },\n base: {\n type: \"number\",\n \"default\": 1,\n minimum: 0\n },\n property: {\n type: \"string\",\n \"default\": \"$zoom\"\n },\n type: {\n type: \"enum\",\n values: {\n identity: {},\n exponential: {},\n interval: {},\n categorical: {}\n },\n \"default\": \"exponential\"\n },\n colorSpace: {\n type: \"enum\",\n values: {\n rgb: {},\n lab: {},\n hcl: {}\n },\n \"default\": \"rgb\"\n },\n \"default\": {\n type: \"*\",\n required: false\n }\n },\n function_stop,\n expression,\n light,\n paint,\n paint_fill,\n \"paint_fill-extrusion\": {\n \"fill-extrusion-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-extrusion-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n {\n \"!\": \"fill-extrusion-pattern\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-extrusion-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-extrusion-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"fill-extrusion-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-extrusion-pattern\": {\n type: \"resolvedImage\",\n transition: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"cross-faded-data-driven\"\n },\n \"fill-extrusion-height\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n units: \"meters\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-extrusion-base\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n units: \"meters\",\n transition: true,\n requires: [\n \"fill-extrusion-height\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-extrusion-vertical-gradient\": {\n type: \"boolean\",\n \"default\": true,\n transition: false,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n },\n paint_line,\n paint_circle,\n paint_heatmap,\n paint_symbol,\n paint_raster,\n paint_hillshade,\n paint_background,\n transition,\n \"property-type\": {\n \"data-driven\": {\n type: \"property-type\"\n },\n \"cross-faded\": {\n type: \"property-type\"\n },\n \"cross-faded-data-driven\": {\n type: \"property-type\"\n },\n \"color-ramp\": {\n type: \"property-type\"\n },\n \"data-constant\": {\n type: \"property-type\"\n },\n constant: {\n type: \"property-type\"\n }\n },\n promoteId\n };\n var ValidationError = function ValidationError2(key, value, message, identifier) {\n this.message = (key ? key + \": \" : \"\") + message;\n if (identifier) {\n this.identifier = identifier;\n }\n if (value !== null && value !== void 0 && value.__line__) {\n this.line = value.__line__;\n }\n };\n function validateConstants(options) {\n var key = options.key;\n var constants = options.value;\n if (constants) {\n return [new ValidationError(key, constants, \"constants have been deprecated as of v8\")];\n } else {\n return [];\n }\n }\n function extend$1(output) {\n var inputs = [], len = arguments.length - 1;\n while (len-- > 0)\n inputs[len] = arguments[len + 1];\n for (var i = 0, list = inputs; i < list.length; i += 1) {\n var input = list[i];\n for (var k in input) {\n output[k] = input[k];\n }\n }\n return output;\n }\n function unbundle(value) {\n if (value instanceof Number || value instanceof String || value instanceof Boolean) {\n return value.valueOf();\n } else {\n return value;\n }\n }\n function deepUnbundle(value) {\n if (Array.isArray(value)) {\n return value.map(deepUnbundle);\n } else if (value instanceof Object && !(value instanceof Number || value instanceof String || value instanceof Boolean)) {\n var unbundledValue = {};\n for (var key in value) {\n unbundledValue[key] = deepUnbundle(value[key]);\n }\n return unbundledValue;\n }\n return unbundle(value);\n }\n var ParsingError = function(Error2) {\n function ParsingError2(key, message) {\n Error2.call(this, message);\n this.message = message;\n this.key = key;\n }\n if (Error2)\n ParsingError2.__proto__ = Error2;\n ParsingError2.prototype = Object.create(Error2 && Error2.prototype);\n ParsingError2.prototype.constructor = ParsingError2;\n return ParsingError2;\n }(Error);\n var Scope = function Scope2(parent, bindings) {\n if (bindings === void 0)\n bindings = [];\n this.parent = parent;\n this.bindings = {};\n for (var i = 0, list = bindings; i < list.length; i += 1) {\n var ref = list[i];\n var name3 = ref[0];\n var expression2 = ref[1];\n this.bindings[name3] = expression2;\n }\n };\n Scope.prototype.concat = function concat(bindings) {\n return new Scope(this, bindings);\n };\n Scope.prototype.get = function get2(name3) {\n if (this.bindings[name3]) {\n return this.bindings[name3];\n }\n if (this.parent) {\n return this.parent.get(name3);\n }\n throw new Error(name3 + \" not found in scope.\");\n };\n Scope.prototype.has = function has2(name3) {\n if (this.bindings[name3]) {\n return true;\n }\n return this.parent ? this.parent.has(name3) : false;\n };\n var NullType = { kind: \"null\" };\n var NumberType = { kind: \"number\" };\n var StringType = { kind: \"string\" };\n var BooleanType = { kind: \"boolean\" };\n var ColorType = { kind: \"color\" };\n var ObjectType = { kind: \"object\" };\n var ValueType = { kind: \"value\" };\n var ErrorType = { kind: \"error\" };\n var CollatorType = { kind: \"collator\" };\n var FormattedType = { kind: \"formatted\" };\n var ResolvedImageType = { kind: \"resolvedImage\" };\n function array(itemType, N) {\n return {\n kind: \"array\",\n itemType,\n N\n };\n }\n function toString(type) {\n if (type.kind === \"array\") {\n var itemType = toString(type.itemType);\n return typeof type.N === \"number\" ? \"array<\" + itemType + \", \" + type.N + \">\" : type.itemType.kind === \"value\" ? \"array\" : \"array<\" + itemType + \">\";\n } else {\n return type.kind;\n }\n }\n var valueMemberTypes = [\n NullType,\n NumberType,\n StringType,\n BooleanType,\n ColorType,\n FormattedType,\n ObjectType,\n array(ValueType),\n ResolvedImageType\n ];\n function checkSubtype(expected, t) {\n if (t.kind === \"error\") {\n return null;\n } else if (expected.kind === \"array\") {\n if (t.kind === \"array\" && (t.N === 0 && t.itemType.kind === \"value\" || !checkSubtype(expected.itemType, t.itemType)) && (typeof expected.N !== \"number\" || expected.N === t.N)) {\n return null;\n }\n } else if (expected.kind === t.kind) {\n return null;\n } else if (expected.kind === \"value\") {\n for (var i = 0, list = valueMemberTypes; i < list.length; i += 1) {\n var memberType = list[i];\n if (!checkSubtype(memberType, t)) {\n return null;\n }\n }\n }\n return \"Expected \" + toString(expected) + \" but found \" + toString(t) + \" instead.\";\n }\n function isValidType(provided, allowedTypes) {\n return allowedTypes.some(function(t) {\n return t.kind === provided.kind;\n });\n }\n function isValidNativeType(provided, allowedTypes) {\n return allowedTypes.some(function(t) {\n if (t === \"null\") {\n return provided === null;\n } else if (t === \"array\") {\n return Array.isArray(provided);\n } else if (t === \"object\") {\n return provided && !Array.isArray(provided) && typeof provided === \"object\";\n } else {\n return t === typeof provided;\n }\n });\n }\n var csscolorparser = createCommonjsModule(function(module2, exports3) {\n var kCSSColorTable = {\n \"transparent\": [\n 0,\n 0,\n 0,\n 0\n ],\n \"aliceblue\": [\n 240,\n 248,\n 255,\n 1\n ],\n \"antiquewhite\": [\n 250,\n 235,\n 215,\n 1\n ],\n \"aqua\": [\n 0,\n 255,\n 255,\n 1\n ],\n \"aquamarine\": [\n 127,\n 255,\n 212,\n 1\n ],\n \"azure\": [\n 240,\n 255,\n 255,\n 1\n ],\n \"beige\": [\n 245,\n 245,\n 220,\n 1\n ],\n \"bisque\": [\n 255,\n 228,\n 196,\n 1\n ],\n \"black\": [\n 0,\n 0,\n 0,\n 1\n ],\n \"blanchedalmond\": [\n 255,\n 235,\n 205,\n 1\n ],\n \"blue\": [\n 0,\n 0,\n 255,\n 1\n ],\n \"blueviolet\": [\n 138,\n 43,\n 226,\n 1\n ],\n \"brown\": [\n 165,\n 42,\n 42,\n 1\n ],\n \"burlywood\": [\n 222,\n 184,\n 135,\n 1\n ],\n \"cadetblue\": [\n 95,\n 158,\n 160,\n 1\n ],\n \"chartreuse\": [\n 127,\n 255,\n 0,\n 1\n ],\n \"chocolate\": [\n 210,\n 105,\n 30,\n 1\n ],\n \"coral\": [\n 255,\n 127,\n 80,\n 1\n ],\n \"cornflowerblue\": [\n 100,\n 149,\n 237,\n 1\n ],\n \"cornsilk\": [\n 255,\n 248,\n 220,\n 1\n ],\n \"crimson\": [\n 220,\n 20,\n 60,\n 1\n ],\n \"cyan\": [\n 0,\n 255,\n 255,\n 1\n ],\n \"darkblue\": [\n 0,\n 0,\n 139,\n 1\n ],\n \"darkcyan\": [\n 0,\n 139,\n 139,\n 1\n ],\n \"darkgoldenrod\": [\n 184,\n 134,\n 11,\n 1\n ],\n \"darkgray\": [\n 169,\n 169,\n 169,\n 1\n ],\n \"darkgreen\": [\n 0,\n 100,\n 0,\n 1\n ],\n \"darkgrey\": [\n 169,\n 169,\n 169,\n 1\n ],\n \"darkkhaki\": [\n 189,\n 183,\n 107,\n 1\n ],\n \"darkmagenta\": [\n 139,\n 0,\n 139,\n 1\n ],\n \"darkolivegreen\": [\n 85,\n 107,\n 47,\n 1\n ],\n \"darkorange\": [\n 255,\n 140,\n 0,\n 1\n ],\n \"darkorchid\": [\n 153,\n 50,\n 204,\n 1\n ],\n \"darkred\": [\n 139,\n 0,\n 0,\n 1\n ],\n \"darksalmon\": [\n 233,\n 150,\n 122,\n 1\n ],\n \"darkseagreen\": [\n 143,\n 188,\n 143,\n 1\n ],\n \"darkslateblue\": [\n 72,\n 61,\n 139,\n 1\n ],\n \"darkslategray\": [\n 47,\n 79,\n 79,\n 1\n ],\n \"darkslategrey\": [\n 47,\n 79,\n 79,\n 1\n ],\n \"darkturquoise\": [\n 0,\n 206,\n 209,\n 1\n ],\n \"darkviolet\": [\n 148,\n 0,\n 211,\n 1\n ],\n \"deeppink\": [\n 255,\n 20,\n 147,\n 1\n ],\n \"deepskyblue\": [\n 0,\n 191,\n 255,\n 1\n ],\n \"dimgray\": [\n 105,\n 105,\n 105,\n 1\n ],\n \"dimgrey\": [\n 105,\n 105,\n 105,\n 1\n ],\n \"dodgerblue\": [\n 30,\n 144,\n 255,\n 1\n ],\n \"firebrick\": [\n 178,\n 34,\n 34,\n 1\n ],\n \"floralwhite\": [\n 255,\n 250,\n 240,\n 1\n ],\n \"forestgreen\": [\n 34,\n 139,\n 34,\n 1\n ],\n \"fuchsia\": [\n 255,\n 0,\n 255,\n 1\n ],\n \"gainsboro\": [\n 220,\n 220,\n 220,\n 1\n ],\n \"ghostwhite\": [\n 248,\n 248,\n 255,\n 1\n ],\n \"gold\": [\n 255,\n 215,\n 0,\n 1\n ],\n \"goldenrod\": [\n 218,\n 165,\n 32,\n 1\n ],\n \"gray\": [\n 128,\n 128,\n 128,\n 1\n ],\n \"green\": [\n 0,\n 128,\n 0,\n 1\n ],\n \"greenyellow\": [\n 173,\n 255,\n 47,\n 1\n ],\n \"grey\": [\n 128,\n 128,\n 128,\n 1\n ],\n \"honeydew\": [\n 240,\n 255,\n 240,\n 1\n ],\n \"hotpink\": [\n 255,\n 105,\n 180,\n 1\n ],\n \"indianred\": [\n 205,\n 92,\n 92,\n 1\n ],\n \"indigo\": [\n 75,\n 0,\n 130,\n 1\n ],\n \"ivory\": [\n 255,\n 255,\n 240,\n 1\n ],\n \"khaki\": [\n 240,\n 230,\n 140,\n 1\n ],\n \"lavender\": [\n 230,\n 230,\n 250,\n 1\n ],\n \"lavenderblush\": [\n 255,\n 240,\n 245,\n 1\n ],\n \"lawngreen\": [\n 124,\n 252,\n 0,\n 1\n ],\n \"lemonchiffon\": [\n 255,\n 250,\n 205,\n 1\n ],\n \"lightblue\": [\n 173,\n 216,\n 230,\n 1\n ],\n \"lightcoral\": [\n 240,\n 128,\n 128,\n 1\n ],\n \"lightcyan\": [\n 224,\n 255,\n 255,\n 1\n ],\n \"lightgoldenrodyellow\": [\n 250,\n 250,\n 210,\n 1\n ],\n \"lightgray\": [\n 211,\n 211,\n 211,\n 1\n ],\n \"lightgreen\": [\n 144,\n 238,\n 144,\n 1\n ],\n \"lightgrey\": [\n 211,\n 211,\n 211,\n 1\n ],\n \"lightpink\": [\n 255,\n 182,\n 193,\n 1\n ],\n \"lightsalmon\": [\n 255,\n 160,\n 122,\n 1\n ],\n \"lightseagreen\": [\n 32,\n 178,\n 170,\n 1\n ],\n \"lightskyblue\": [\n 135,\n 206,\n 250,\n 1\n ],\n \"lightslategray\": [\n 119,\n 136,\n 153,\n 1\n ],\n \"lightslategrey\": [\n 119,\n 136,\n 153,\n 1\n ],\n \"lightsteelblue\": [\n 176,\n 196,\n 222,\n 1\n ],\n \"lightyellow\": [\n 255,\n 255,\n 224,\n 1\n ],\n \"lime\": [\n 0,\n 255,\n 0,\n 1\n ],\n \"limegreen\": [\n 50,\n 205,\n 50,\n 1\n ],\n \"linen\": [\n 250,\n 240,\n 230,\n 1\n ],\n \"magenta\": [\n 255,\n 0,\n 255,\n 1\n ],\n \"maroon\": [\n 128,\n 0,\n 0,\n 1\n ],\n \"mediumaquamarine\": [\n 102,\n 205,\n 170,\n 1\n ],\n \"mediumblue\": [\n 0,\n 0,\n 205,\n 1\n ],\n \"mediumorchid\": [\n 186,\n 85,\n 211,\n 1\n ],\n \"mediumpurple\": [\n 147,\n 112,\n 219,\n 1\n ],\n \"mediumseagreen\": [\n 60,\n 179,\n 113,\n 1\n ],\n \"mediumslateblue\": [\n 123,\n 104,\n 238,\n 1\n ],\n \"mediumspringgreen\": [\n 0,\n 250,\n 154,\n 1\n ],\n \"mediumturquoise\": [\n 72,\n 209,\n 204,\n 1\n ],\n \"mediumvioletred\": [\n 199,\n 21,\n 133,\n 1\n ],\n \"midnightblue\": [\n 25,\n 25,\n 112,\n 1\n ],\n \"mintcream\": [\n 245,\n 255,\n 250,\n 1\n ],\n \"mistyrose\": [\n 255,\n 228,\n 225,\n 1\n ],\n \"moccasin\": [\n 255,\n 228,\n 181,\n 1\n ],\n \"navajowhite\": [\n 255,\n 222,\n 173,\n 1\n ],\n \"navy\": [\n 0,\n 0,\n 128,\n 1\n ],\n \"oldlace\": [\n 253,\n 245,\n 230,\n 1\n ],\n \"olive\": [\n 128,\n 128,\n 0,\n 1\n ],\n \"olivedrab\": [\n 107,\n 142,\n 35,\n 1\n ],\n \"orange\": [\n 255,\n 165,\n 0,\n 1\n ],\n \"orangered\": [\n 255,\n 69,\n 0,\n 1\n ],\n \"orchid\": [\n 218,\n 112,\n 214,\n 1\n ],\n \"palegoldenrod\": [\n 238,\n 232,\n 170,\n 1\n ],\n \"palegreen\": [\n 152,\n 251,\n 152,\n 1\n ],\n \"paleturquoise\": [\n 175,\n 238,\n 238,\n 1\n ],\n \"palevioletred\": [\n 219,\n 112,\n 147,\n 1\n ],\n \"papayawhip\": [\n 255,\n 239,\n 213,\n 1\n ],\n \"peachpuff\": [\n 255,\n 218,\n 185,\n 1\n ],\n \"peru\": [\n 205,\n 133,\n 63,\n 1\n ],\n \"pink\": [\n 255,\n 192,\n 203,\n 1\n ],\n \"plum\": [\n 221,\n 160,\n 221,\n 1\n ],\n \"powderblue\": [\n 176,\n 224,\n 230,\n 1\n ],\n \"purple\": [\n 128,\n 0,\n 128,\n 1\n ],\n \"rebeccapurple\": [\n 102,\n 51,\n 153,\n 1\n ],\n \"red\": [\n 255,\n 0,\n 0,\n 1\n ],\n \"rosybrown\": [\n 188,\n 143,\n 143,\n 1\n ],\n \"royalblue\": [\n 65,\n 105,\n 225,\n 1\n ],\n \"saddlebrown\": [\n 139,\n 69,\n 19,\n 1\n ],\n \"salmon\": [\n 250,\n 128,\n 114,\n 1\n ],\n \"sandybrown\": [\n 244,\n 164,\n 96,\n 1\n ],\n \"seagreen\": [\n 46,\n 139,\n 87,\n 1\n ],\n \"seashell\": [\n 255,\n 245,\n 238,\n 1\n ],\n \"sienna\": [\n 160,\n 82,\n 45,\n 1\n ],\n \"silver\": [\n 192,\n 192,\n 192,\n 1\n ],\n \"skyblue\": [\n 135,\n 206,\n 235,\n 1\n ],\n \"slateblue\": [\n 106,\n 90,\n 205,\n 1\n ],\n \"slategray\": [\n 112,\n 128,\n 144,\n 1\n ],\n \"slategrey\": [\n 112,\n 128,\n 144,\n 1\n ],\n \"snow\": [\n 255,\n 250,\n 250,\n 1\n ],\n \"springgreen\": [\n 0,\n 255,\n 127,\n 1\n ],\n \"steelblue\": [\n 70,\n 130,\n 180,\n 1\n ],\n \"tan\": [\n 210,\n 180,\n 140,\n 1\n ],\n \"teal\": [\n 0,\n 128,\n 128,\n 1\n ],\n \"thistle\": [\n 216,\n 191,\n 216,\n 1\n ],\n \"tomato\": [\n 255,\n 99,\n 71,\n 1\n ],\n \"turquoise\": [\n 64,\n 224,\n 208,\n 1\n ],\n \"violet\": [\n 238,\n 130,\n 238,\n 1\n ],\n \"wheat\": [\n 245,\n 222,\n 179,\n 1\n ],\n \"white\": [\n 255,\n 255,\n 255,\n 1\n ],\n \"whitesmoke\": [\n 245,\n 245,\n 245,\n 1\n ],\n \"yellow\": [\n 255,\n 255,\n 0,\n 1\n ],\n \"yellowgreen\": [\n 154,\n 205,\n 50,\n 1\n ]\n };\n function clamp_css_byte(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 255 ? 255 : i;\n }\n function clamp_css_float(f) {\n return f < 0 ? 0 : f > 1 ? 1 : f;\n }\n function parse_css_int(str) {\n if (str[str.length - 1] === \"%\") {\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n }\n return clamp_css_byte(parseInt(str));\n }\n function parse_css_float(str) {\n if (str[str.length - 1] === \"%\") {\n return clamp_css_float(parseFloat(str) / 100);\n }\n return clamp_css_float(parseFloat(str));\n }\n function css_hue_to_rgb(m1, m2, h) {\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n if (h * 6 < 1) {\n return m1 + (m2 - m1) * h * 6;\n }\n if (h * 2 < 1) {\n return m2;\n }\n if (h * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n }\n return m1;\n }\n function parseCSSColor(css_str) {\n var str = css_str.replace(/ /g, \"\").toLowerCase();\n if (str in kCSSColorTable) {\n return kCSSColorTable[str].slice();\n }\n if (str[0] === \"#\") {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16);\n if (!(iv >= 0 && iv <= 4095)) {\n return null;\n }\n return [\n (iv & 3840) >> 4 | (iv & 3840) >> 8,\n iv & 240 | (iv & 240) >> 4,\n iv & 15 | (iv & 15) << 4,\n 1\n ];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16);\n if (!(iv >= 0 && iv <= 16777215)) {\n return null;\n }\n return [\n (iv & 16711680) >> 16,\n (iv & 65280) >> 8,\n iv & 255,\n 1\n ];\n }\n return null;\n }\n var op = str.indexOf(\"(\"), ep = str.indexOf(\")\");\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op + 1, ep - (op + 1)).split(\",\");\n var alpha = 1;\n switch (fname) {\n case \"rgba\":\n if (params.length !== 4) {\n return null;\n }\n alpha = parse_css_float(params.pop());\n case \"rgb\":\n if (params.length !== 3) {\n return null;\n }\n return [\n parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha\n ];\n case \"hsla\":\n if (params.length !== 4) {\n return null;\n }\n alpha = parse_css_float(params.pop());\n case \"hsl\":\n if (params.length !== 3) {\n return null;\n }\n var h = (parseFloat(params[0]) % 360 + 360) % 360 / 360;\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [\n clamp_css_byte(css_hue_to_rgb(m1, m2, h + 1 / 3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h - 1 / 3) * 255),\n alpha\n ];\n default:\n return null;\n }\n }\n return null;\n }\n try {\n exports3.parseCSSColor = parseCSSColor;\n } catch (e) {\n }\n });\n var csscolorparser_1 = csscolorparser.parseCSSColor;\n var Color2 = function Color3(r, g, b, a) {\n if (a === void 0)\n a = 1;\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n };\n Color2.parse = function parse2(input) {\n if (!input) {\n return void 0;\n }\n if (input instanceof Color2) {\n return input;\n }\n if (typeof input !== \"string\") {\n return void 0;\n }\n var rgba4 = csscolorparser_1(input);\n if (!rgba4) {\n return void 0;\n }\n return new Color2(rgba4[0] / 255 * rgba4[3], rgba4[1] / 255 * rgba4[3], rgba4[2] / 255 * rgba4[3], rgba4[3]);\n };\n Color2.prototype.toString = function toString2() {\n var ref = this.toArray();\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var a = ref[3];\n return \"rgba(\" + Math.round(r) + \",\" + Math.round(g) + \",\" + Math.round(b) + \",\" + a + \")\";\n };\n Color2.prototype.toArray = function toArray() {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var a = ref.a;\n return a === 0 ? [\n 0,\n 0,\n 0,\n 0\n ] : [\n r * 255 / a,\n g * 255 / a,\n b * 255 / a,\n a\n ];\n };\n Color2.black = new Color2(0, 0, 0, 1);\n Color2.white = new Color2(1, 1, 1, 1);\n Color2.transparent = new Color2(0, 0, 0, 0);\n Color2.red = new Color2(1, 0, 0, 1);\n var Collator = function Collator2(caseSensitive, diacriticSensitive, locale) {\n if (caseSensitive) {\n this.sensitivity = diacriticSensitive ? \"variant\" : \"case\";\n } else {\n this.sensitivity = diacriticSensitive ? \"accent\" : \"base\";\n }\n this.locale = locale;\n this.collator = new Intl.Collator(this.locale ? this.locale : [], {\n sensitivity: this.sensitivity,\n usage: \"search\"\n });\n };\n Collator.prototype.compare = function compare2(lhs, rhs) {\n return this.collator.compare(lhs, rhs);\n };\n Collator.prototype.resolvedLocale = function resolvedLocale() {\n return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale;\n };\n var FormattedSection = function FormattedSection2(text, image, scale2, fontStack, textColor) {\n this.text = text;\n this.image = image;\n this.scale = scale2;\n this.fontStack = fontStack;\n this.textColor = textColor;\n };\n var Formatted = function Formatted2(sections) {\n this.sections = sections;\n };\n Formatted.fromString = function fromString(unformatted) {\n return new Formatted([new FormattedSection(unformatted, null, null, null, null)]);\n };\n Formatted.prototype.isEmpty = function isEmpty2() {\n if (this.sections.length === 0) {\n return true;\n }\n return !this.sections.some(function(section) {\n return section.text.length !== 0 || section.image && section.image.name.length !== 0;\n });\n };\n Formatted.factory = function factory(text) {\n if (text instanceof Formatted) {\n return text;\n } else {\n return Formatted.fromString(text);\n }\n };\n Formatted.prototype.toString = function toString2() {\n if (this.sections.length === 0) {\n return \"\";\n }\n return this.sections.map(function(section) {\n return section.text;\n }).join(\"\");\n };\n Formatted.prototype.serialize = function serialize2() {\n var serialized = [\"format\"];\n for (var i = 0, list = this.sections; i < list.length; i += 1) {\n var section = list[i];\n if (section.image) {\n serialized.push([\n \"image\",\n section.image.name\n ]);\n continue;\n }\n serialized.push(section.text);\n var options = {};\n if (section.fontStack) {\n options[\"text-font\"] = [\n \"literal\",\n section.fontStack.split(\",\")\n ];\n }\n if (section.scale) {\n options[\"font-scale\"] = section.scale;\n }\n if (section.textColor) {\n options[\"text-color\"] = [\"rgba\"].concat(section.textColor.toArray());\n }\n serialized.push(options);\n }\n return serialized;\n };\n var ResolvedImage = function ResolvedImage2(options) {\n this.name = options.name;\n this.available = options.available;\n };\n ResolvedImage.prototype.toString = function toString2() {\n return this.name;\n };\n ResolvedImage.fromString = function fromString(name3) {\n if (!name3) {\n return null;\n }\n return new ResolvedImage({\n name: name3,\n available: false\n });\n };\n ResolvedImage.prototype.serialize = function serialize2() {\n return [\n \"image\",\n this.name\n ];\n };\n function validateRGBA(r, g, b, a) {\n if (!(typeof r === \"number\" && r >= 0 && r <= 255 && typeof g === \"number\" && g >= 0 && g <= 255 && typeof b === \"number\" && b >= 0 && b <= 255)) {\n var value = typeof a === \"number\" ? [\n r,\n g,\n b,\n a\n ] : [\n r,\n g,\n b\n ];\n return \"Invalid rgba value [\" + value.join(\", \") + \"]: 'r', 'g', and 'b' must be between 0 and 255.\";\n }\n if (!(typeof a === \"undefined\" || typeof a === \"number\" && a >= 0 && a <= 1)) {\n return \"Invalid rgba value [\" + [\n r,\n g,\n b,\n a\n ].join(\", \") + \"]: 'a' must be between 0 and 1.\";\n }\n return null;\n }\n function isValue(mixed) {\n if (mixed === null) {\n return true;\n } else if (typeof mixed === \"string\") {\n return true;\n } else if (typeof mixed === \"boolean\") {\n return true;\n } else if (typeof mixed === \"number\") {\n return true;\n } else if (mixed instanceof Color2) {\n return true;\n } else if (mixed instanceof Collator) {\n return true;\n } else if (mixed instanceof Formatted) {\n return true;\n } else if (mixed instanceof ResolvedImage) {\n return true;\n } else if (Array.isArray(mixed)) {\n for (var i = 0, list = mixed; i < list.length; i += 1) {\n var item = list[i];\n if (!isValue(item)) {\n return false;\n }\n }\n return true;\n } else if (typeof mixed === \"object\") {\n for (var key in mixed) {\n if (!isValue(mixed[key])) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n function typeOf(value) {\n if (value === null) {\n return NullType;\n } else if (typeof value === \"string\") {\n return StringType;\n } else if (typeof value === \"boolean\") {\n return BooleanType;\n } else if (typeof value === \"number\") {\n return NumberType;\n } else if (value instanceof Color2) {\n return ColorType;\n } else if (value instanceof Collator) {\n return CollatorType;\n } else if (value instanceof Formatted) {\n return FormattedType;\n } else if (value instanceof ResolvedImage) {\n return ResolvedImageType;\n } else if (Array.isArray(value)) {\n var length = value.length;\n var itemType;\n for (var i = 0, list = value; i < list.length; i += 1) {\n var item = list[i];\n var t = typeOf(item);\n if (!itemType) {\n itemType = t;\n } else if (itemType === t) {\n continue;\n } else {\n itemType = ValueType;\n break;\n }\n }\n return array(itemType || ValueType, length);\n } else {\n return ObjectType;\n }\n }\n function toString$1(value) {\n var type = typeof value;\n if (value === null) {\n return \"\";\n } else if (type === \"string\" || type === \"number\" || type === \"boolean\") {\n return String(value);\n } else if (value instanceof Color2 || value instanceof Formatted || value instanceof ResolvedImage) {\n return value.toString();\n } else {\n return JSON.stringify(value);\n }\n }\n var Literal = function Literal2(type, value) {\n this.type = type;\n this.value = value;\n };\n Literal.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"'literal' expression requires exactly one argument, but found \" + (args.length - 1) + \" instead.\");\n }\n if (!isValue(args[1])) {\n return context.error(\"invalid value\");\n }\n var value = args[1];\n var type = typeOf(value);\n var expected = context.expectedType;\n if (type.kind === \"array\" && type.N === 0 && expected && expected.kind === \"array\" && (typeof expected.N !== \"number\" || expected.N === 0)) {\n type = expected;\n }\n return new Literal(type, value);\n };\n Literal.prototype.evaluate = function evaluate() {\n return this.value;\n };\n Literal.prototype.eachChild = function eachChild() {\n };\n Literal.prototype.outputDefined = function outputDefined() {\n return true;\n };\n Literal.prototype.serialize = function serialize2() {\n if (this.type.kind === \"array\" || this.type.kind === \"object\") {\n return [\n \"literal\",\n this.value\n ];\n } else if (this.value instanceof Color2) {\n return [\"rgba\"].concat(this.value.toArray());\n } else if (this.value instanceof Formatted) {\n return this.value.serialize();\n } else {\n return this.value;\n }\n };\n var RuntimeError = function RuntimeError2(message) {\n this.name = \"ExpressionEvaluationError\";\n this.message = message;\n };\n RuntimeError.prototype.toJSON = function toJSON() {\n return this.message;\n };\n var types = {\n string: StringType,\n number: NumberType,\n boolean: BooleanType,\n object: ObjectType\n };\n var Assertion = function Assertion2(type, args) {\n this.type = type;\n this.args = args;\n };\n Assertion.parse = function parse2(args, context) {\n if (args.length < 2) {\n return context.error(\"Expected at least one argument.\");\n }\n var i = 1;\n var type;\n var name3 = args[0];\n if (name3 === \"array\") {\n var itemType;\n if (args.length > 2) {\n var type$1 = args[1];\n if (typeof type$1 !== \"string\" || !(type$1 in types) || type$1 === \"object\") {\n return context.error('The item type argument of \"array\" must be one of string, number, boolean', 1);\n }\n itemType = types[type$1];\n i++;\n } else {\n itemType = ValueType;\n }\n var N;\n if (args.length > 3) {\n if (args[2] !== null && (typeof args[2] !== \"number\" || args[2] < 0 || args[2] !== Math.floor(args[2]))) {\n return context.error('The length argument to \"array\" must be a positive integer literal', 2);\n }\n N = args[2];\n i++;\n }\n type = array(itemType, N);\n } else {\n type = types[name3];\n }\n var parsed = [];\n for (; i < args.length; i++) {\n var input = context.parse(args[i], i, ValueType);\n if (!input) {\n return null;\n }\n parsed.push(input);\n }\n return new Assertion(type, parsed);\n };\n Assertion.prototype.evaluate = function evaluate(ctx) {\n for (var i = 0; i < this.args.length; i++) {\n var value = this.args[i].evaluate(ctx);\n var error2 = checkSubtype(this.type, typeOf(value));\n if (!error2) {\n return value;\n } else if (i === this.args.length - 1) {\n throw new RuntimeError(\"Expected value to be of type \" + toString(this.type) + \", but found \" + toString(typeOf(value)) + \" instead.\");\n }\n }\n return null;\n };\n Assertion.prototype.eachChild = function eachChild(fn) {\n this.args.forEach(fn);\n };\n Assertion.prototype.outputDefined = function outputDefined() {\n return this.args.every(function(arg) {\n return arg.outputDefined();\n });\n };\n Assertion.prototype.serialize = function serialize2() {\n var type = this.type;\n var serialized = [type.kind];\n if (type.kind === \"array\") {\n var itemType = type.itemType;\n if (itemType.kind === \"string\" || itemType.kind === \"number\" || itemType.kind === \"boolean\") {\n serialized.push(itemType.kind);\n var N = type.N;\n if (typeof N === \"number\" || this.args.length > 1) {\n serialized.push(N);\n }\n }\n }\n return serialized.concat(this.args.map(function(arg) {\n return arg.serialize();\n }));\n };\n var FormatExpression = function FormatExpression2(sections) {\n this.type = FormattedType;\n this.sections = sections;\n };\n FormatExpression.parse = function parse2(args, context) {\n if (args.length < 2) {\n return context.error(\"Expected at least one argument.\");\n }\n var firstArg = args[1];\n if (!Array.isArray(firstArg) && typeof firstArg === \"object\") {\n return context.error(\"First argument must be an image or text section.\");\n }\n var sections = [];\n var nextTokenMayBeObject = false;\n for (var i = 1; i <= args.length - 1; ++i) {\n var arg = args[i];\n if (nextTokenMayBeObject && typeof arg === \"object\" && !Array.isArray(arg)) {\n nextTokenMayBeObject = false;\n var scale2 = null;\n if (arg[\"font-scale\"]) {\n scale2 = context.parse(arg[\"font-scale\"], 1, NumberType);\n if (!scale2) {\n return null;\n }\n }\n var font = null;\n if (arg[\"text-font\"]) {\n font = context.parse(arg[\"text-font\"], 1, array(StringType));\n if (!font) {\n return null;\n }\n }\n var textColor = null;\n if (arg[\"text-color\"]) {\n textColor = context.parse(arg[\"text-color\"], 1, ColorType);\n if (!textColor) {\n return null;\n }\n }\n var lastExpression = sections[sections.length - 1];\n lastExpression.scale = scale2;\n lastExpression.font = font;\n lastExpression.textColor = textColor;\n } else {\n var content = context.parse(args[i], 1, ValueType);\n if (!content) {\n return null;\n }\n var kind = content.type.kind;\n if (kind !== \"string\" && kind !== \"value\" && kind !== \"null\" && kind !== \"resolvedImage\") {\n return context.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");\n }\n nextTokenMayBeObject = true;\n sections.push({\n content,\n scale: null,\n font: null,\n textColor: null\n });\n }\n }\n return new FormatExpression(sections);\n };\n FormatExpression.prototype.evaluate = function evaluate(ctx) {\n var evaluateSection = function(section) {\n var evaluatedContent = section.content.evaluate(ctx);\n if (typeOf(evaluatedContent) === ResolvedImageType) {\n return new FormattedSection(\"\", evaluatedContent, null, null, null);\n }\n return new FormattedSection(toString$1(evaluatedContent), null, section.scale ? section.scale.evaluate(ctx) : null, section.font ? section.font.evaluate(ctx).join(\",\") : null, section.textColor ? section.textColor.evaluate(ctx) : null);\n };\n return new Formatted(this.sections.map(evaluateSection));\n };\n FormatExpression.prototype.eachChild = function eachChild(fn) {\n for (var i = 0, list = this.sections; i < list.length; i += 1) {\n var section = list[i];\n fn(section.content);\n if (section.scale) {\n fn(section.scale);\n }\n if (section.font) {\n fn(section.font);\n }\n if (section.textColor) {\n fn(section.textColor);\n }\n }\n };\n FormatExpression.prototype.outputDefined = function outputDefined() {\n return false;\n };\n FormatExpression.prototype.serialize = function serialize2() {\n var serialized = [\"format\"];\n for (var i = 0, list = this.sections; i < list.length; i += 1) {\n var section = list[i];\n serialized.push(section.content.serialize());\n var options = {};\n if (section.scale) {\n options[\"font-scale\"] = section.scale.serialize();\n }\n if (section.font) {\n options[\"text-font\"] = section.font.serialize();\n }\n if (section.textColor) {\n options[\"text-color\"] = section.textColor.serialize();\n }\n serialized.push(options);\n }\n return serialized;\n };\n var ImageExpression = function ImageExpression2(input) {\n this.type = ResolvedImageType;\n this.input = input;\n };\n ImageExpression.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"Expected two arguments.\");\n }\n var name3 = context.parse(args[1], 1, StringType);\n if (!name3) {\n return context.error(\"No image name provided.\");\n }\n return new ImageExpression(name3);\n };\n ImageExpression.prototype.evaluate = function evaluate(ctx) {\n var evaluatedImageName = this.input.evaluate(ctx);\n var value = ResolvedImage.fromString(evaluatedImageName);\n if (value && ctx.availableImages) {\n value.available = ctx.availableImages.indexOf(evaluatedImageName) > -1;\n }\n return value;\n };\n ImageExpression.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n };\n ImageExpression.prototype.outputDefined = function outputDefined() {\n return false;\n };\n ImageExpression.prototype.serialize = function serialize2() {\n return [\n \"image\",\n this.input.serialize()\n ];\n };\n var types$1 = {\n \"to-boolean\": BooleanType,\n \"to-color\": ColorType,\n \"to-number\": NumberType,\n \"to-string\": StringType\n };\n var Coercion = function Coercion2(type, args) {\n this.type = type;\n this.args = args;\n };\n Coercion.parse = function parse2(args, context) {\n if (args.length < 2) {\n return context.error(\"Expected at least one argument.\");\n }\n var name3 = args[0];\n if ((name3 === \"to-boolean\" || name3 === \"to-string\") && args.length !== 2) {\n return context.error(\"Expected one argument.\");\n }\n var type = types$1[name3];\n var parsed = [];\n for (var i = 1; i < args.length; i++) {\n var input = context.parse(args[i], i, ValueType);\n if (!input) {\n return null;\n }\n parsed.push(input);\n }\n return new Coercion(type, parsed);\n };\n Coercion.prototype.evaluate = function evaluate(ctx) {\n if (this.type.kind === \"boolean\") {\n return Boolean(this.args[0].evaluate(ctx));\n } else if (this.type.kind === \"color\") {\n var input;\n var error2;\n for (var i = 0, list = this.args; i < list.length; i += 1) {\n var arg = list[i];\n input = arg.evaluate(ctx);\n error2 = null;\n if (input instanceof Color2) {\n return input;\n } else if (typeof input === \"string\") {\n var c = ctx.parseColor(input);\n if (c) {\n return c;\n }\n } else if (Array.isArray(input)) {\n if (input.length < 3 || input.length > 4) {\n error2 = \"Invalid rbga value \" + JSON.stringify(input) + \": expected an array containing either three or four numeric values.\";\n } else {\n error2 = validateRGBA(input[0], input[1], input[2], input[3]);\n }\n if (!error2) {\n return new Color2(input[0] / 255, input[1] / 255, input[2] / 255, input[3]);\n }\n }\n }\n throw new RuntimeError(error2 || \"Could not parse color from value '\" + (typeof input === \"string\" ? input : String(JSON.stringify(input))) + \"'\");\n } else if (this.type.kind === \"number\") {\n var value = null;\n for (var i$1 = 0, list$1 = this.args; i$1 < list$1.length; i$1 += 1) {\n var arg$1 = list$1[i$1];\n value = arg$1.evaluate(ctx);\n if (value === null) {\n return 0;\n }\n var num = Number(value);\n if (isNaN(num)) {\n continue;\n }\n return num;\n }\n throw new RuntimeError(\"Could not convert \" + JSON.stringify(value) + \" to number.\");\n } else if (this.type.kind === \"formatted\") {\n return Formatted.fromString(toString$1(this.args[0].evaluate(ctx)));\n } else if (this.type.kind === \"resolvedImage\") {\n return ResolvedImage.fromString(toString$1(this.args[0].evaluate(ctx)));\n } else {\n return toString$1(this.args[0].evaluate(ctx));\n }\n };\n Coercion.prototype.eachChild = function eachChild(fn) {\n this.args.forEach(fn);\n };\n Coercion.prototype.outputDefined = function outputDefined() {\n return this.args.every(function(arg) {\n return arg.outputDefined();\n });\n };\n Coercion.prototype.serialize = function serialize2() {\n if (this.type.kind === \"formatted\") {\n return new FormatExpression([{\n content: this.args[0],\n scale: null,\n font: null,\n textColor: null\n }]).serialize();\n }\n if (this.type.kind === \"resolvedImage\") {\n return new ImageExpression(this.args[0]).serialize();\n }\n var serialized = [\"to-\" + this.type.kind];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n var geometryTypes = [\n \"Unknown\",\n \"Point\",\n \"LineString\",\n \"Polygon\"\n ];\n var EvaluationContext = function EvaluationContext2() {\n this.globals = null;\n this.feature = null;\n this.featureState = null;\n this.formattedSection = null;\n this._parseColorCache = {};\n this.availableImages = null;\n this.canonical = null;\n };\n EvaluationContext.prototype.id = function id2() {\n return this.feature && \"id\" in this.feature ? this.feature.id : null;\n };\n EvaluationContext.prototype.geometryType = function geometryType() {\n return this.feature ? typeof this.feature.type === \"number\" ? geometryTypes[this.feature.type] : this.feature.type : null;\n };\n EvaluationContext.prototype.geometry = function geometry() {\n return this.feature && \"geometry\" in this.feature ? this.feature.geometry : null;\n };\n EvaluationContext.prototype.canonicalID = function canonicalID() {\n return this.canonical;\n };\n EvaluationContext.prototype.properties = function properties2() {\n return this.feature && this.feature.properties || {};\n };\n EvaluationContext.prototype.parseColor = function parseColor(input) {\n var cached = this._parseColorCache[input];\n if (!cached) {\n cached = this._parseColorCache[input] = Color2.parse(input);\n }\n return cached;\n };\n var CompoundExpression = function CompoundExpression2(name3, type, evaluate, args) {\n this.name = name3;\n this.type = type;\n this._evaluate = evaluate;\n this.args = args;\n };\n CompoundExpression.prototype.evaluate = function evaluate(ctx) {\n return this._evaluate(ctx, this.args);\n };\n CompoundExpression.prototype.eachChild = function eachChild(fn) {\n this.args.forEach(fn);\n };\n CompoundExpression.prototype.outputDefined = function outputDefined() {\n return false;\n };\n CompoundExpression.prototype.serialize = function serialize2() {\n return [this.name].concat(this.args.map(function(arg) {\n return arg.serialize();\n }));\n };\n CompoundExpression.parse = function parse2(args, context) {\n var ref$1;\n var op = args[0];\n var definition = CompoundExpression.definitions[op];\n if (!definition) {\n return context.error('Unknown expression \"' + op + '\". If you wanted a literal array, use [\"literal\", [...]].', 0);\n }\n var type = Array.isArray(definition) ? definition[0] : definition.type;\n var availableOverloads = Array.isArray(definition) ? [[\n definition[1],\n definition[2]\n ]] : definition.overloads;\n var overloads = availableOverloads.filter(function(ref2) {\n var signature = ref2[0];\n return !Array.isArray(signature) || signature.length === args.length - 1;\n });\n var signatureContext = null;\n for (var i$3 = 0, list = overloads; i$3 < list.length; i$3 += 1) {\n var ref = list[i$3];\n var params = ref[0];\n var evaluate = ref[1];\n signatureContext = new ParsingContext(context.registry, context.path, null, context.scope);\n var parsedArgs = [];\n var argParseFailed = false;\n for (var i = 1; i < args.length; i++) {\n var arg = args[i];\n var expectedType = Array.isArray(params) ? params[i - 1] : params.type;\n var parsed = signatureContext.parse(arg, 1 + parsedArgs.length, expectedType);\n if (!parsed) {\n argParseFailed = true;\n break;\n }\n parsedArgs.push(parsed);\n }\n if (argParseFailed) {\n continue;\n }\n if (Array.isArray(params)) {\n if (params.length !== parsedArgs.length) {\n signatureContext.error(\"Expected \" + params.length + \" arguments, but found \" + parsedArgs.length + \" instead.\");\n continue;\n }\n }\n for (var i$1 = 0; i$1 < parsedArgs.length; i$1++) {\n var expected = Array.isArray(params) ? params[i$1] : params.type;\n var arg$1 = parsedArgs[i$1];\n signatureContext.concat(i$1 + 1).checkSubtype(expected, arg$1.type);\n }\n if (signatureContext.errors.length === 0) {\n return new CompoundExpression(op, type, evaluate, parsedArgs);\n }\n }\n if (overloads.length === 1) {\n (ref$1 = context.errors).push.apply(ref$1, signatureContext.errors);\n } else {\n var expected$1 = overloads.length ? overloads : availableOverloads;\n var signatures = expected$1.map(function(ref2) {\n var params2 = ref2[0];\n return stringifySignature(params2);\n }).join(\" | \");\n var actualTypes = [];\n for (var i$2 = 1; i$2 < args.length; i$2++) {\n var parsed$1 = context.parse(args[i$2], 1 + actualTypes.length);\n if (!parsed$1) {\n return null;\n }\n actualTypes.push(toString(parsed$1.type));\n }\n context.error(\"Expected arguments of type \" + signatures + \", but found (\" + actualTypes.join(\", \") + \") instead.\");\n }\n return null;\n };\n CompoundExpression.register = function register2(registry2, definitions) {\n CompoundExpression.definitions = definitions;\n for (var name3 in definitions) {\n registry2[name3] = CompoundExpression;\n }\n };\n function stringifySignature(signature) {\n if (Array.isArray(signature)) {\n return \"(\" + signature.map(toString).join(\", \") + \")\";\n } else {\n return \"(\" + toString(signature.type) + \"...)\";\n }\n }\n var CollatorExpression = function CollatorExpression2(caseSensitive, diacriticSensitive, locale) {\n this.type = CollatorType;\n this.locale = locale;\n this.caseSensitive = caseSensitive;\n this.diacriticSensitive = diacriticSensitive;\n };\n CollatorExpression.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"Expected one argument.\");\n }\n var options = args[1];\n if (typeof options !== \"object\" || Array.isArray(options)) {\n return context.error(\"Collator options argument must be an object.\");\n }\n var caseSensitive = context.parse(options[\"case-sensitive\"] === void 0 ? false : options[\"case-sensitive\"], 1, BooleanType);\n if (!caseSensitive) {\n return null;\n }\n var diacriticSensitive = context.parse(options[\"diacritic-sensitive\"] === void 0 ? false : options[\"diacritic-sensitive\"], 1, BooleanType);\n if (!diacriticSensitive) {\n return null;\n }\n var locale = null;\n if (options[\"locale\"]) {\n locale = context.parse(options[\"locale\"], 1, StringType);\n if (!locale) {\n return null;\n }\n }\n return new CollatorExpression(caseSensitive, diacriticSensitive, locale);\n };\n CollatorExpression.prototype.evaluate = function evaluate(ctx) {\n return new Collator(this.caseSensitive.evaluate(ctx), this.diacriticSensitive.evaluate(ctx), this.locale ? this.locale.evaluate(ctx) : null);\n };\n CollatorExpression.prototype.eachChild = function eachChild(fn) {\n fn(this.caseSensitive);\n fn(this.diacriticSensitive);\n if (this.locale) {\n fn(this.locale);\n }\n };\n CollatorExpression.prototype.outputDefined = function outputDefined() {\n return false;\n };\n CollatorExpression.prototype.serialize = function serialize2() {\n var options = {};\n options[\"case-sensitive\"] = this.caseSensitive.serialize();\n options[\"diacritic-sensitive\"] = this.diacriticSensitive.serialize();\n if (this.locale) {\n options[\"locale\"] = this.locale.serialize();\n }\n return [\n \"collator\",\n options\n ];\n };\n var EXTENT = 8192;\n function updateBBox(bbox, coord) {\n bbox[0] = Math.min(bbox[0], coord[0]);\n bbox[1] = Math.min(bbox[1], coord[1]);\n bbox[2] = Math.max(bbox[2], coord[0]);\n bbox[3] = Math.max(bbox[3], coord[1]);\n }\n function mercatorXfromLng(lng) {\n return (180 + lng) / 360;\n }\n function mercatorYfromLat(lat) {\n return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + lat * Math.PI / 360))) / 360;\n }\n function boxWithinBox(bbox1, bbox2) {\n if (bbox1[0] <= bbox2[0]) {\n return false;\n }\n if (bbox1[2] >= bbox2[2]) {\n return false;\n }\n if (bbox1[1] <= bbox2[1]) {\n return false;\n }\n if (bbox1[3] >= bbox2[3]) {\n return false;\n }\n return true;\n }\n function getTileCoordinates(p, canonical) {\n var x = mercatorXfromLng(p[0]);\n var y = mercatorYfromLat(p[1]);\n var tilesAtZoom = Math.pow(2, canonical.z);\n return [\n Math.round(x * tilesAtZoom * EXTENT),\n Math.round(y * tilesAtZoom * EXTENT)\n ];\n }\n function onBoundary(p, p1, p2) {\n var x1 = p[0] - p1[0];\n var y1 = p[1] - p1[1];\n var x2 = p[0] - p2[0];\n var y2 = p[1] - p2[1];\n return x1 * y2 - x2 * y1 === 0 && x1 * x2 <= 0 && y1 * y2 <= 0;\n }\n function rayIntersect(p, p1, p2) {\n return p1[1] > p[1] !== p2[1] > p[1] && p[0] < (p2[0] - p1[0]) * (p[1] - p1[1]) / (p2[1] - p1[1]) + p1[0];\n }\n function pointWithinPolygon(point, rings) {\n var inside = false;\n for (var i = 0, len = rings.length; i < len; i++) {\n var ring = rings[i];\n for (var j = 0, len2 = ring.length; j < len2 - 1; j++) {\n if (onBoundary(point, ring[j], ring[j + 1])) {\n return false;\n }\n if (rayIntersect(point, ring[j], ring[j + 1])) {\n inside = !inside;\n }\n }\n }\n return inside;\n }\n function pointWithinPolygons(point, polygons) {\n for (var i = 0; i < polygons.length; i++) {\n if (pointWithinPolygon(point, polygons[i])) {\n return true;\n }\n }\n return false;\n }\n function perp(v1, v2) {\n return v1[0] * v2[1] - v1[1] * v2[0];\n }\n function twoSided(p1, p2, q1, q2) {\n var x1 = p1[0] - q1[0];\n var y1 = p1[1] - q1[1];\n var x2 = p2[0] - q1[0];\n var y2 = p2[1] - q1[1];\n var x3 = q2[0] - q1[0];\n var y3 = q2[1] - q1[1];\n var det1 = x1 * y3 - x3 * y1;\n var det2 = x2 * y3 - x3 * y2;\n if (det1 > 0 && det2 < 0 || det1 < 0 && det2 > 0) {\n return true;\n }\n return false;\n }\n function lineIntersectLine(a, b, c, d) {\n var vectorP = [\n b[0] - a[0],\n b[1] - a[1]\n ];\n var vectorQ = [\n d[0] - c[0],\n d[1] - c[1]\n ];\n if (perp(vectorQ, vectorP) === 0) {\n return false;\n }\n if (twoSided(a, b, c, d) && twoSided(c, d, a, b)) {\n return true;\n }\n return false;\n }\n function lineIntersectPolygon(p1, p2, polygon) {\n for (var i = 0, list = polygon; i < list.length; i += 1) {\n var ring = list[i];\n for (var j = 0; j < ring.length - 1; ++j) {\n if (lineIntersectLine(p1, p2, ring[j], ring[j + 1])) {\n return true;\n }\n }\n }\n return false;\n }\n function lineStringWithinPolygon(line, polygon) {\n for (var i = 0; i < line.length; ++i) {\n if (!pointWithinPolygon(line[i], polygon)) {\n return false;\n }\n }\n for (var i$1 = 0; i$1 < line.length - 1; ++i$1) {\n if (lineIntersectPolygon(line[i$1], line[i$1 + 1], polygon)) {\n return false;\n }\n }\n return true;\n }\n function lineStringWithinPolygons(line, polygons) {\n for (var i = 0; i < polygons.length; i++) {\n if (lineStringWithinPolygon(line, polygons[i])) {\n return true;\n }\n }\n return false;\n }\n function getTilePolygon(coordinates, bbox, canonical) {\n var polygon = [];\n for (var i = 0; i < coordinates.length; i++) {\n var ring = [];\n for (var j = 0; j < coordinates[i].length; j++) {\n var coord = getTileCoordinates(coordinates[i][j], canonical);\n updateBBox(bbox, coord);\n ring.push(coord);\n }\n polygon.push(ring);\n }\n return polygon;\n }\n function getTilePolygons(coordinates, bbox, canonical) {\n var polygons = [];\n for (var i = 0; i < coordinates.length; i++) {\n var polygon = getTilePolygon(coordinates[i], bbox, canonical);\n polygons.push(polygon);\n }\n return polygons;\n }\n function updatePoint(p, bbox, polyBBox, worldSize) {\n if (p[0] < polyBBox[0] || p[0] > polyBBox[2]) {\n var halfWorldSize = worldSize * 0.5;\n var shift = p[0] - polyBBox[0] > halfWorldSize ? -worldSize : polyBBox[0] - p[0] > halfWorldSize ? worldSize : 0;\n if (shift === 0) {\n shift = p[0] - polyBBox[2] > halfWorldSize ? -worldSize : polyBBox[2] - p[0] > halfWorldSize ? worldSize : 0;\n }\n p[0] += shift;\n }\n updateBBox(bbox, p);\n }\n function resetBBox(bbox) {\n bbox[0] = bbox[1] = Infinity;\n bbox[2] = bbox[3] = -Infinity;\n }\n function getTilePoints(geometry, pointBBox, polyBBox, canonical) {\n var worldSize = Math.pow(2, canonical.z) * EXTENT;\n var shifts = [\n canonical.x * EXTENT,\n canonical.y * EXTENT\n ];\n var tilePoints = [];\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var points = list$1[i$1];\n for (var i = 0, list = points; i < list.length; i += 1) {\n var point = list[i];\n var p = [\n point.x + shifts[0],\n point.y + shifts[1]\n ];\n updatePoint(p, pointBBox, polyBBox, worldSize);\n tilePoints.push(p);\n }\n }\n return tilePoints;\n }\n function getTileLines(geometry, lineBBox, polyBBox, canonical) {\n var worldSize = Math.pow(2, canonical.z) * EXTENT;\n var shifts = [\n canonical.x * EXTENT,\n canonical.y * EXTENT\n ];\n var tileLines = [];\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var line = list$1[i$1];\n var tileLine = [];\n for (var i = 0, list = line; i < list.length; i += 1) {\n var point = list[i];\n var p = [\n point.x + shifts[0],\n point.y + shifts[1]\n ];\n updateBBox(lineBBox, p);\n tileLine.push(p);\n }\n tileLines.push(tileLine);\n }\n if (lineBBox[2] - lineBBox[0] <= worldSize / 2) {\n resetBBox(lineBBox);\n for (var i$3 = 0, list$3 = tileLines; i$3 < list$3.length; i$3 += 1) {\n var line$1 = list$3[i$3];\n for (var i$2 = 0, list$2 = line$1; i$2 < list$2.length; i$2 += 1) {\n var p$1 = list$2[i$2];\n updatePoint(p$1, lineBBox, polyBBox, worldSize);\n }\n }\n }\n return tileLines;\n }\n function pointsWithinPolygons(ctx, polygonGeometry) {\n var pointBBox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n var polyBBox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n var canonical = ctx.canonicalID();\n if (polygonGeometry.type === \"Polygon\") {\n var tilePolygon = getTilePolygon(polygonGeometry.coordinates, polyBBox, canonical);\n var tilePoints = getTilePoints(ctx.geometry(), pointBBox, polyBBox, canonical);\n if (!boxWithinBox(pointBBox, polyBBox)) {\n return false;\n }\n for (var i = 0, list = tilePoints; i < list.length; i += 1) {\n var point = list[i];\n if (!pointWithinPolygon(point, tilePolygon)) {\n return false;\n }\n }\n }\n if (polygonGeometry.type === \"MultiPolygon\") {\n var tilePolygons = getTilePolygons(polygonGeometry.coordinates, polyBBox, canonical);\n var tilePoints$1 = getTilePoints(ctx.geometry(), pointBBox, polyBBox, canonical);\n if (!boxWithinBox(pointBBox, polyBBox)) {\n return false;\n }\n for (var i$1 = 0, list$1 = tilePoints$1; i$1 < list$1.length; i$1 += 1) {\n var point$1 = list$1[i$1];\n if (!pointWithinPolygons(point$1, tilePolygons)) {\n return false;\n }\n }\n }\n return true;\n }\n function linesWithinPolygons(ctx, polygonGeometry) {\n var lineBBox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n var polyBBox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n var canonical = ctx.canonicalID();\n if (polygonGeometry.type === \"Polygon\") {\n var tilePolygon = getTilePolygon(polygonGeometry.coordinates, polyBBox, canonical);\n var tileLines = getTileLines(ctx.geometry(), lineBBox, polyBBox, canonical);\n if (!boxWithinBox(lineBBox, polyBBox)) {\n return false;\n }\n for (var i = 0, list = tileLines; i < list.length; i += 1) {\n var line = list[i];\n if (!lineStringWithinPolygon(line, tilePolygon)) {\n return false;\n }\n }\n }\n if (polygonGeometry.type === \"MultiPolygon\") {\n var tilePolygons = getTilePolygons(polygonGeometry.coordinates, polyBBox, canonical);\n var tileLines$1 = getTileLines(ctx.geometry(), lineBBox, polyBBox, canonical);\n if (!boxWithinBox(lineBBox, polyBBox)) {\n return false;\n }\n for (var i$1 = 0, list$1 = tileLines$1; i$1 < list$1.length; i$1 += 1) {\n var line$1 = list$1[i$1];\n if (!lineStringWithinPolygons(line$1, tilePolygons)) {\n return false;\n }\n }\n }\n return true;\n }\n var Within = function Within2(geojson, geometries) {\n this.type = BooleanType;\n this.geojson = geojson;\n this.geometries = geometries;\n };\n Within.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"'within' expression requires exactly one argument, but found \" + (args.length - 1) + \" instead.\");\n }\n if (isValue(args[1])) {\n var geojson = args[1];\n if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; ++i) {\n var type = geojson.features[i].geometry.type;\n if (type === \"Polygon\" || type === \"MultiPolygon\") {\n return new Within(geojson, geojson.features[i].geometry);\n }\n }\n } else if (geojson.type === \"Feature\") {\n var type$1 = geojson.geometry.type;\n if (type$1 === \"Polygon\" || type$1 === \"MultiPolygon\") {\n return new Within(geojson, geojson.geometry);\n }\n } else if (geojson.type === \"Polygon\" || geojson.type === \"MultiPolygon\") {\n return new Within(geojson, geojson);\n }\n }\n return context.error(\"'within' expression requires valid geojson object that contains polygon geometry type.\");\n };\n Within.prototype.evaluate = function evaluate(ctx) {\n if (ctx.geometry() != null && ctx.canonicalID() != null) {\n if (ctx.geometryType() === \"Point\") {\n return pointsWithinPolygons(ctx, this.geometries);\n } else if (ctx.geometryType() === \"LineString\") {\n return linesWithinPolygons(ctx, this.geometries);\n }\n }\n return false;\n };\n Within.prototype.eachChild = function eachChild() {\n };\n Within.prototype.outputDefined = function outputDefined() {\n return true;\n };\n Within.prototype.serialize = function serialize2() {\n return [\n \"within\",\n this.geojson\n ];\n };\n function isFeatureConstant(e) {\n if (e instanceof CompoundExpression) {\n if (e.name === \"get\" && e.args.length === 1) {\n return false;\n } else if (e.name === \"feature-state\") {\n return false;\n } else if (e.name === \"has\" && e.args.length === 1) {\n return false;\n } else if (e.name === \"properties\" || e.name === \"geometry-type\" || e.name === \"id\") {\n return false;\n } else if (/^filter-/.test(e.name)) {\n return false;\n }\n }\n if (e instanceof Within) {\n return false;\n }\n var result = true;\n e.eachChild(function(arg) {\n if (result && !isFeatureConstant(arg)) {\n result = false;\n }\n });\n return result;\n }\n function isStateConstant(e) {\n if (e instanceof CompoundExpression) {\n if (e.name === \"feature-state\") {\n return false;\n }\n }\n var result = true;\n e.eachChild(function(arg) {\n if (result && !isStateConstant(arg)) {\n result = false;\n }\n });\n return result;\n }\n function isGlobalPropertyConstant(e, properties2) {\n if (e instanceof CompoundExpression && properties2.indexOf(e.name) >= 0) {\n return false;\n }\n var result = true;\n e.eachChild(function(arg) {\n if (result && !isGlobalPropertyConstant(arg, properties2)) {\n result = false;\n }\n });\n return result;\n }\n var Var = function Var2(name3, boundExpression) {\n this.type = boundExpression.type;\n this.name = name3;\n this.boundExpression = boundExpression;\n };\n Var.parse = function parse2(args, context) {\n if (args.length !== 2 || typeof args[1] !== \"string\") {\n return context.error(\"'var' expression requires exactly one string literal argument.\");\n }\n var name3 = args[1];\n if (!context.scope.has(name3)) {\n return context.error('Unknown variable \"' + name3 + '\". Make sure \"' + name3 + '\" has been bound in an enclosing \"let\" expression before using it.', 1);\n }\n return new Var(name3, context.scope.get(name3));\n };\n Var.prototype.evaluate = function evaluate(ctx) {\n return this.boundExpression.evaluate(ctx);\n };\n Var.prototype.eachChild = function eachChild() {\n };\n Var.prototype.outputDefined = function outputDefined() {\n return false;\n };\n Var.prototype.serialize = function serialize2() {\n return [\n \"var\",\n this.name\n ];\n };\n var ParsingContext = function ParsingContext2(registry2, path, expectedType, scope, errors) {\n if (path === void 0)\n path = [];\n if (scope === void 0)\n scope = new Scope();\n if (errors === void 0)\n errors = [];\n this.registry = registry2;\n this.path = path;\n this.key = path.map(function(part) {\n return \"[\" + part + \"]\";\n }).join(\"\");\n this.scope = scope;\n this.errors = errors;\n this.expectedType = expectedType;\n };\n ParsingContext.prototype.parse = function parse2(expr, index, expectedType, bindings, options) {\n if (options === void 0)\n options = {};\n if (index) {\n return this.concat(index, expectedType, bindings)._parse(expr, options);\n }\n return this._parse(expr, options);\n };\n ParsingContext.prototype._parse = function _parse(expr, options) {\n if (expr === null || typeof expr === \"string\" || typeof expr === \"boolean\" || typeof expr === \"number\") {\n expr = [\n \"literal\",\n expr\n ];\n }\n function annotate(parsed2, type, typeAnnotation) {\n if (typeAnnotation === \"assert\") {\n return new Assertion(type, [parsed2]);\n } else if (typeAnnotation === \"coerce\") {\n return new Coercion(type, [parsed2]);\n } else {\n return parsed2;\n }\n }\n if (Array.isArray(expr)) {\n if (expr.length === 0) {\n return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');\n }\n var op = expr[0];\n if (typeof op !== \"string\") {\n this.error(\"Expression name must be a string, but found \" + typeof op + ' instead. If you wanted a literal array, use [\"literal\", [...]].', 0);\n return null;\n }\n var Expr = this.registry[op];\n if (Expr) {\n var parsed = Expr.parse(expr, this);\n if (!parsed) {\n return null;\n }\n if (this.expectedType) {\n var expected = this.expectedType;\n var actual = parsed.type;\n if ((expected.kind === \"string\" || expected.kind === \"number\" || expected.kind === \"boolean\" || expected.kind === \"object\" || expected.kind === \"array\") && actual.kind === \"value\") {\n parsed = annotate(parsed, expected, options.typeAnnotation || \"assert\");\n } else if ((expected.kind === \"color\" || expected.kind === \"formatted\" || expected.kind === \"resolvedImage\") && (actual.kind === \"value\" || actual.kind === \"string\")) {\n parsed = annotate(parsed, expected, options.typeAnnotation || \"coerce\");\n } else if (this.checkSubtype(expected, actual)) {\n return null;\n }\n }\n if (!(parsed instanceof Literal) && parsed.type.kind !== \"resolvedImage\" && isConstant(parsed)) {\n var ec = new EvaluationContext();\n try {\n parsed = new Literal(parsed.type, parsed.evaluate(ec));\n } catch (e) {\n this.error(e.message);\n return null;\n }\n }\n return parsed;\n }\n return this.error('Unknown expression \"' + op + '\". If you wanted a literal array, use [\"literal\", [...]].', 0);\n } else if (typeof expr === \"undefined\") {\n return this.error(\"'undefined' value invalid. Use null instead.\");\n } else if (typeof expr === \"object\") {\n return this.error('Bare objects invalid. Use [\"literal\", {...}] instead.');\n } else {\n return this.error(\"Expected an array, but found \" + typeof expr + \" instead.\");\n }\n };\n ParsingContext.prototype.concat = function concat(index, expectedType, bindings) {\n var path = typeof index === \"number\" ? this.path.concat(index) : this.path;\n var scope = bindings ? this.scope.concat(bindings) : this.scope;\n return new ParsingContext(this.registry, path, expectedType || null, scope, this.errors);\n };\n ParsingContext.prototype.error = function error2(error$1) {\n var keys = [], len = arguments.length - 1;\n while (len-- > 0)\n keys[len] = arguments[len + 1];\n var key = \"\" + this.key + keys.map(function(k) {\n return \"[\" + k + \"]\";\n }).join(\"\");\n this.errors.push(new ParsingError(key, error$1));\n };\n ParsingContext.prototype.checkSubtype = function checkSubtype$1(expected, t) {\n var error2 = checkSubtype(expected, t);\n if (error2) {\n this.error(error2);\n }\n return error2;\n };\n function isConstant(expression2) {\n if (expression2 instanceof Var) {\n return isConstant(expression2.boundExpression);\n } else if (expression2 instanceof CompoundExpression && expression2.name === \"error\") {\n return false;\n } else if (expression2 instanceof CollatorExpression) {\n return false;\n } else if (expression2 instanceof Within) {\n return false;\n }\n var isTypeAnnotation = expression2 instanceof Coercion || expression2 instanceof Assertion;\n var childrenConstant = true;\n expression2.eachChild(function(child) {\n if (isTypeAnnotation) {\n childrenConstant = childrenConstant && isConstant(child);\n } else {\n childrenConstant = childrenConstant && child instanceof Literal;\n }\n });\n if (!childrenConstant) {\n return false;\n }\n return isFeatureConstant(expression2) && isGlobalPropertyConstant(expression2, [\n \"zoom\",\n \"heatmap-density\",\n \"line-progress\",\n \"accumulated\",\n \"is-supported-script\"\n ]);\n }\n function findStopLessThanOrEqualTo(stops, input) {\n var lastIndex = stops.length - 1;\n var lowerIndex = 0;\n var upperIndex = lastIndex;\n var currentIndex = 0;\n var currentValue, nextValue;\n while (lowerIndex <= upperIndex) {\n currentIndex = Math.floor((lowerIndex + upperIndex) / 2);\n currentValue = stops[currentIndex];\n nextValue = stops[currentIndex + 1];\n if (currentValue <= input) {\n if (currentIndex === lastIndex || input < nextValue) {\n return currentIndex;\n }\n lowerIndex = currentIndex + 1;\n } else if (currentValue > input) {\n upperIndex = currentIndex - 1;\n } else {\n throw new RuntimeError(\"Input is not a number.\");\n }\n }\n return 0;\n }\n var Step = function Step2(type, input, stops) {\n this.type = type;\n this.input = input;\n this.labels = [];\n this.outputs = [];\n for (var i = 0, list = stops; i < list.length; i += 1) {\n var ref = list[i];\n var label = ref[0];\n var expression2 = ref[1];\n this.labels.push(label);\n this.outputs.push(expression2);\n }\n };\n Step.parse = function parse2(args, context) {\n if (args.length - 1 < 4) {\n return context.error(\"Expected at least 4 arguments, but found only \" + (args.length - 1) + \".\");\n }\n if ((args.length - 1) % 2 !== 0) {\n return context.error(\"Expected an even number of arguments.\");\n }\n var input = context.parse(args[1], 1, NumberType);\n if (!input) {\n return null;\n }\n var stops = [];\n var outputType = null;\n if (context.expectedType && context.expectedType.kind !== \"value\") {\n outputType = context.expectedType;\n }\n for (var i = 1; i < args.length; i += 2) {\n var label = i === 1 ? -Infinity : args[i];\n var value = args[i + 1];\n var labelKey = i;\n var valueKey = i + 1;\n if (typeof label !== \"number\") {\n return context.error('Input/output pairs for \"step\" expressions must be defined using literal numeric values (not computed expressions) for the input values.', labelKey);\n }\n if (stops.length && stops[stops.length - 1][0] >= label) {\n return context.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.', labelKey);\n }\n var parsed = context.parse(value, valueKey, outputType);\n if (!parsed) {\n return null;\n }\n outputType = outputType || parsed.type;\n stops.push([\n label,\n parsed\n ]);\n }\n return new Step(outputType, input, stops);\n };\n Step.prototype.evaluate = function evaluate(ctx) {\n var labels = this.labels;\n var outputs = this.outputs;\n if (labels.length === 1) {\n return outputs[0].evaluate(ctx);\n }\n var value = this.input.evaluate(ctx);\n if (value <= labels[0]) {\n return outputs[0].evaluate(ctx);\n }\n var stopCount = labels.length;\n if (value >= labels[stopCount - 1]) {\n return outputs[stopCount - 1].evaluate(ctx);\n }\n var index = findStopLessThanOrEqualTo(labels, value);\n return outputs[index].evaluate(ctx);\n };\n Step.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n for (var i = 0, list = this.outputs; i < list.length; i += 1) {\n var expression2 = list[i];\n fn(expression2);\n }\n };\n Step.prototype.outputDefined = function outputDefined() {\n return this.outputs.every(function(out) {\n return out.outputDefined();\n });\n };\n Step.prototype.serialize = function serialize2() {\n var serialized = [\n \"step\",\n this.input.serialize()\n ];\n for (var i = 0; i < this.labels.length; i++) {\n if (i > 0) {\n serialized.push(this.labels[i]);\n }\n serialized.push(this.outputs[i].serialize());\n }\n return serialized;\n };\n function number(a, b, t) {\n return a * (1 - t) + b * t;\n }\n function color2(from, to, t) {\n return new Color2(number(from.r, to.r, t), number(from.g, to.g, t), number(from.b, to.b, t), number(from.a, to.a, t));\n }\n function array$1(from, to, t) {\n return from.map(function(d, i) {\n return number(d, to[i], t);\n });\n }\n var interpolate = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n number,\n color: color2,\n array: array$1\n });\n var Xn2 = 0.95047, Yn2 = 1, Zn2 = 1.08883, t02 = 4 / 29, t12 = 6 / 29, t22 = 3 * t12 * t12, t32 = t12 * t12 * t12, deg2rad = Math.PI / 180, rad2deg = 180 / Math.PI;\n function xyz2lab2(t) {\n return t > t32 ? Math.pow(t, 1 / 3) : t / t22 + t02;\n }\n function lab2xyz2(t) {\n return t > t12 ? t * t * t : t22 * (t - t02);\n }\n function xyz2rgb(x) {\n return 255 * (x <= 31308e-7 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n }\n function rgb2xyz(x) {\n x /= 255;\n return x <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n }\n function rgbToLab(rgbColor) {\n var b = rgb2xyz(rgbColor.r), a = rgb2xyz(rgbColor.g), l = rgb2xyz(rgbColor.b), x = xyz2lab2((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn2), y = xyz2lab2((0.2126729 * b + 0.7151522 * a + 0.072175 * l) / Yn2), z = xyz2lab2((0.0193339 * b + 0.119192 * a + 0.9503041 * l) / Zn2);\n return {\n l: 116 * y - 16,\n a: 500 * (x - y),\n b: 200 * (y - z),\n alpha: rgbColor.a\n };\n }\n function labToRgb(labColor) {\n var y = (labColor.l + 16) / 116, x = isNaN(labColor.a) ? y : y + labColor.a / 500, z = isNaN(labColor.b) ? y : y - labColor.b / 200;\n y = Yn2 * lab2xyz2(y);\n x = Xn2 * lab2xyz2(x);\n z = Zn2 * lab2xyz2(z);\n return new Color2(xyz2rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z), xyz2rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z), xyz2rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z), labColor.alpha);\n }\n function interpolateLab(from, to, t) {\n return {\n l: number(from.l, to.l, t),\n a: number(from.a, to.a, t),\n b: number(from.b, to.b, t),\n alpha: number(from.alpha, to.alpha, t)\n };\n }\n function rgbToHcl(rgbColor) {\n var ref = rgbToLab(rgbColor);\n var l = ref.l;\n var a = ref.a;\n var b = ref.b;\n var h = Math.atan2(b, a) * rad2deg;\n return {\n h: h < 0 ? h + 360 : h,\n c: Math.sqrt(a * a + b * b),\n l,\n alpha: rgbColor.a\n };\n }\n function hclToRgb(hclColor) {\n var h = hclColor.h * deg2rad, c = hclColor.c, l = hclColor.l;\n return labToRgb({\n l,\n a: Math.cos(h) * c,\n b: Math.sin(h) * c,\n alpha: hclColor.alpha\n });\n }\n function interpolateHue(a, b, t) {\n var d = b - a;\n return a + t * (d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d);\n }\n function interpolateHcl(from, to, t) {\n return {\n h: interpolateHue(from.h, to.h, t),\n c: number(from.c, to.c, t),\n l: number(from.l, to.l, t),\n alpha: number(from.alpha, to.alpha, t)\n };\n }\n var lab3 = {\n forward: rgbToLab,\n reverse: labToRgb,\n interpolate: interpolateLab\n };\n var hcl3 = {\n forward: rgbToHcl,\n reverse: hclToRgb,\n interpolate: interpolateHcl\n };\n var colorSpaces = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n lab: lab3,\n hcl: hcl3\n });\n var Interpolate = function Interpolate2(type, operator, interpolation, input, stops) {\n this.type = type;\n this.operator = operator;\n this.interpolation = interpolation;\n this.input = input;\n this.labels = [];\n this.outputs = [];\n for (var i = 0, list = stops; i < list.length; i += 1) {\n var ref = list[i];\n var label = ref[0];\n var expression2 = ref[1];\n this.labels.push(label);\n this.outputs.push(expression2);\n }\n };\n Interpolate.interpolationFactor = function interpolationFactor2(interpolation, input, lower, upper) {\n var t = 0;\n if (interpolation.name === \"exponential\") {\n t = exponentialInterpolation(input, interpolation.base, lower, upper);\n } else if (interpolation.name === \"linear\") {\n t = exponentialInterpolation(input, 1, lower, upper);\n } else if (interpolation.name === \"cubic-bezier\") {\n var c = interpolation.controlPoints;\n var ub = new unitbezier(c[0], c[1], c[2], c[3]);\n t = ub.solve(exponentialInterpolation(input, 1, lower, upper));\n }\n return t;\n };\n Interpolate.parse = function parse2(args, context) {\n var operator = args[0];\n var interpolation = args[1];\n var input = args[2];\n var rest = args.slice(3);\n if (!Array.isArray(interpolation) || interpolation.length === 0) {\n return context.error(\"Expected an interpolation type expression.\", 1);\n }\n if (interpolation[0] === \"linear\") {\n interpolation = { name: \"linear\" };\n } else if (interpolation[0] === \"exponential\") {\n var base = interpolation[1];\n if (typeof base !== \"number\") {\n return context.error(\"Exponential interpolation requires a numeric base.\", 1, 1);\n }\n interpolation = {\n name: \"exponential\",\n base\n };\n } else if (interpolation[0] === \"cubic-bezier\") {\n var controlPoints = interpolation.slice(1);\n if (controlPoints.length !== 4 || controlPoints.some(function(t) {\n return typeof t !== \"number\" || t < 0 || t > 1;\n })) {\n return context.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\", 1);\n }\n interpolation = {\n name: \"cubic-bezier\",\n controlPoints\n };\n } else {\n return context.error(\"Unknown interpolation type \" + String(interpolation[0]), 1, 0);\n }\n if (args.length - 1 < 4) {\n return context.error(\"Expected at least 4 arguments, but found only \" + (args.length - 1) + \".\");\n }\n if ((args.length - 1) % 2 !== 0) {\n return context.error(\"Expected an even number of arguments.\");\n }\n input = context.parse(input, 2, NumberType);\n if (!input) {\n return null;\n }\n var stops = [];\n var outputType = null;\n if (operator === \"interpolate-hcl\" || operator === \"interpolate-lab\") {\n outputType = ColorType;\n } else if (context.expectedType && context.expectedType.kind !== \"value\") {\n outputType = context.expectedType;\n }\n for (var i = 0; i < rest.length; i += 2) {\n var label = rest[i];\n var value = rest[i + 1];\n var labelKey = i + 3;\n var valueKey = i + 4;\n if (typeof label !== \"number\") {\n return context.error('Input/output pairs for \"interpolate\" expressions must be defined using literal numeric values (not computed expressions) for the input values.', labelKey);\n }\n if (stops.length && stops[stops.length - 1][0] >= label) {\n return context.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.', labelKey);\n }\n var parsed = context.parse(value, valueKey, outputType);\n if (!parsed) {\n return null;\n }\n outputType = outputType || parsed.type;\n stops.push([\n label,\n parsed\n ]);\n }\n if (outputType.kind !== \"number\" && outputType.kind !== \"color\" && !(outputType.kind === \"array\" && outputType.itemType.kind === \"number\" && typeof outputType.N === \"number\")) {\n return context.error(\"Type \" + toString(outputType) + \" is not interpolatable.\");\n }\n return new Interpolate(outputType, operator, interpolation, input, stops);\n };\n Interpolate.prototype.evaluate = function evaluate(ctx) {\n var labels = this.labels;\n var outputs = this.outputs;\n if (labels.length === 1) {\n return outputs[0].evaluate(ctx);\n }\n var value = this.input.evaluate(ctx);\n if (value <= labels[0]) {\n return outputs[0].evaluate(ctx);\n }\n var stopCount = labels.length;\n if (value >= labels[stopCount - 1]) {\n return outputs[stopCount - 1].evaluate(ctx);\n }\n var index = findStopLessThanOrEqualTo(labels, value);\n var lower = labels[index];\n var upper = labels[index + 1];\n var t = Interpolate.interpolationFactor(this.interpolation, value, lower, upper);\n var outputLower = outputs[index].evaluate(ctx);\n var outputUpper = outputs[index + 1].evaluate(ctx);\n if (this.operator === \"interpolate\") {\n return interpolate[this.type.kind.toLowerCase()](outputLower, outputUpper, t);\n } else if (this.operator === \"interpolate-hcl\") {\n return hcl3.reverse(hcl3.interpolate(hcl3.forward(outputLower), hcl3.forward(outputUpper), t));\n } else {\n return lab3.reverse(lab3.interpolate(lab3.forward(outputLower), lab3.forward(outputUpper), t));\n }\n };\n Interpolate.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n for (var i = 0, list = this.outputs; i < list.length; i += 1) {\n var expression2 = list[i];\n fn(expression2);\n }\n };\n Interpolate.prototype.outputDefined = function outputDefined() {\n return this.outputs.every(function(out) {\n return out.outputDefined();\n });\n };\n Interpolate.prototype.serialize = function serialize2() {\n var interpolation;\n if (this.interpolation.name === \"linear\") {\n interpolation = [\"linear\"];\n } else if (this.interpolation.name === \"exponential\") {\n if (this.interpolation.base === 1) {\n interpolation = [\"linear\"];\n } else {\n interpolation = [\n \"exponential\",\n this.interpolation.base\n ];\n }\n } else {\n interpolation = [\"cubic-bezier\"].concat(this.interpolation.controlPoints);\n }\n var serialized = [\n this.operator,\n interpolation,\n this.input.serialize()\n ];\n for (var i = 0; i < this.labels.length; i++) {\n serialized.push(this.labels[i], this.outputs[i].serialize());\n }\n return serialized;\n };\n function exponentialInterpolation(input, base, lowerValue, upperValue) {\n var difference = upperValue - lowerValue;\n var progress = input - lowerValue;\n if (difference === 0) {\n return 0;\n } else if (base === 1) {\n return progress / difference;\n } else {\n return (Math.pow(base, progress) - 1) / (Math.pow(base, difference) - 1);\n }\n }\n var Coalesce = function Coalesce2(type, args) {\n this.type = type;\n this.args = args;\n };\n Coalesce.parse = function parse2(args, context) {\n if (args.length < 2) {\n return context.error(\"Expectected at least one argument.\");\n }\n var outputType = null;\n var expectedType = context.expectedType;\n if (expectedType && expectedType.kind !== \"value\") {\n outputType = expectedType;\n }\n var parsedArgs = [];\n for (var i = 0, list = args.slice(1); i < list.length; i += 1) {\n var arg = list[i];\n var parsed = context.parse(arg, 1 + parsedArgs.length, outputType, void 0, { typeAnnotation: \"omit\" });\n if (!parsed) {\n return null;\n }\n outputType = outputType || parsed.type;\n parsedArgs.push(parsed);\n }\n var needsAnnotation = expectedType && parsedArgs.some(function(arg2) {\n return checkSubtype(expectedType, arg2.type);\n });\n return needsAnnotation ? new Coalesce(ValueType, parsedArgs) : new Coalesce(outputType, parsedArgs);\n };\n Coalesce.prototype.evaluate = function evaluate(ctx) {\n var result = null;\n var argCount = 0;\n var requestedImageName;\n for (var i = 0, list = this.args; i < list.length; i += 1) {\n var arg = list[i];\n argCount++;\n result = arg.evaluate(ctx);\n if (result && result instanceof ResolvedImage && !result.available) {\n if (!requestedImageName) {\n requestedImageName = result.name;\n }\n result = null;\n if (argCount === this.args.length) {\n result = requestedImageName;\n }\n }\n if (result !== null) {\n break;\n }\n }\n return result;\n };\n Coalesce.prototype.eachChild = function eachChild(fn) {\n this.args.forEach(fn);\n };\n Coalesce.prototype.outputDefined = function outputDefined() {\n return this.args.every(function(arg) {\n return arg.outputDefined();\n });\n };\n Coalesce.prototype.serialize = function serialize2() {\n var serialized = [\"coalesce\"];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n var Let = function Let2(bindings, result) {\n this.type = result.type;\n this.bindings = [].concat(bindings);\n this.result = result;\n };\n Let.prototype.evaluate = function evaluate(ctx) {\n return this.result.evaluate(ctx);\n };\n Let.prototype.eachChild = function eachChild(fn) {\n for (var i = 0, list = this.bindings; i < list.length; i += 1) {\n var binding = list[i];\n fn(binding[1]);\n }\n fn(this.result);\n };\n Let.parse = function parse2(args, context) {\n if (args.length < 4) {\n return context.error(\"Expected at least 3 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var bindings = [];\n for (var i = 1; i < args.length - 1; i += 2) {\n var name3 = args[i];\n if (typeof name3 !== \"string\") {\n return context.error(\"Expected string, but found \" + typeof name3 + \" instead.\", i);\n }\n if (/[^a-zA-Z0-9_]/.test(name3)) {\n return context.error(\"Variable names must contain only alphanumeric characters or '_'.\", i);\n }\n var value = context.parse(args[i + 1], i + 1);\n if (!value) {\n return null;\n }\n bindings.push([\n name3,\n value\n ]);\n }\n var result = context.parse(args[args.length - 1], args.length - 1, context.expectedType, bindings);\n if (!result) {\n return null;\n }\n return new Let(bindings, result);\n };\n Let.prototype.outputDefined = function outputDefined() {\n return this.result.outputDefined();\n };\n Let.prototype.serialize = function serialize2() {\n var serialized = [\"let\"];\n for (var i = 0, list = this.bindings; i < list.length; i += 1) {\n var ref = list[i];\n var name3 = ref[0];\n var expr = ref[1];\n serialized.push(name3, expr.serialize());\n }\n serialized.push(this.result.serialize());\n return serialized;\n };\n var At = function At2(type, index, input) {\n this.type = type;\n this.index = index;\n this.input = input;\n };\n At.parse = function parse2(args, context) {\n if (args.length !== 3) {\n return context.error(\"Expected 2 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var index = context.parse(args[1], 1, NumberType);\n var input = context.parse(args[2], 2, array(context.expectedType || ValueType));\n if (!index || !input) {\n return null;\n }\n var t = input.type;\n return new At(t.itemType, index, input);\n };\n At.prototype.evaluate = function evaluate(ctx) {\n var index = this.index.evaluate(ctx);\n var array2 = this.input.evaluate(ctx);\n if (index < 0) {\n throw new RuntimeError(\"Array index out of bounds: \" + index + \" < 0.\");\n }\n if (index >= array2.length) {\n throw new RuntimeError(\"Array index out of bounds: \" + index + \" > \" + (array2.length - 1) + \".\");\n }\n if (index !== Math.floor(index)) {\n throw new RuntimeError(\"Array index must be an integer, but found \" + index + \" instead.\");\n }\n return array2[index];\n };\n At.prototype.eachChild = function eachChild(fn) {\n fn(this.index);\n fn(this.input);\n };\n At.prototype.outputDefined = function outputDefined() {\n return false;\n };\n At.prototype.serialize = function serialize2() {\n return [\n \"at\",\n this.index.serialize(),\n this.input.serialize()\n ];\n };\n var In = function In2(needle, haystack) {\n this.type = BooleanType;\n this.needle = needle;\n this.haystack = haystack;\n };\n In.parse = function parse2(args, context) {\n if (args.length !== 3) {\n return context.error(\"Expected 2 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var needle = context.parse(args[1], 1, ValueType);\n var haystack = context.parse(args[2], 2, ValueType);\n if (!needle || !haystack) {\n return null;\n }\n if (!isValidType(needle.type, [\n BooleanType,\n StringType,\n NumberType,\n NullType,\n ValueType\n ])) {\n return context.error(\"Expected first argument to be of type boolean, string, number or null, but found \" + toString(needle.type) + \" instead\");\n }\n return new In(needle, haystack);\n };\n In.prototype.evaluate = function evaluate(ctx) {\n var needle = this.needle.evaluate(ctx);\n var haystack = this.haystack.evaluate(ctx);\n if (!haystack) {\n return false;\n }\n if (!isValidNativeType(needle, [\n \"boolean\",\n \"string\",\n \"number\",\n \"null\"\n ])) {\n throw new RuntimeError(\"Expected first argument to be of type boolean, string, number or null, but found \" + toString(typeOf(needle)) + \" instead.\");\n }\n if (!isValidNativeType(haystack, [\n \"string\",\n \"array\"\n ])) {\n throw new RuntimeError(\"Expected second argument to be of type array or string, but found \" + toString(typeOf(haystack)) + \" instead.\");\n }\n return haystack.indexOf(needle) >= 0;\n };\n In.prototype.eachChild = function eachChild(fn) {\n fn(this.needle);\n fn(this.haystack);\n };\n In.prototype.outputDefined = function outputDefined() {\n return true;\n };\n In.prototype.serialize = function serialize2() {\n return [\n \"in\",\n this.needle.serialize(),\n this.haystack.serialize()\n ];\n };\n var IndexOf = function IndexOf2(needle, haystack, fromIndex) {\n this.type = NumberType;\n this.needle = needle;\n this.haystack = haystack;\n this.fromIndex = fromIndex;\n };\n IndexOf.parse = function parse2(args, context) {\n if (args.length <= 2 || args.length >= 5) {\n return context.error(\"Expected 3 or 4 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var needle = context.parse(args[1], 1, ValueType);\n var haystack = context.parse(args[2], 2, ValueType);\n if (!needle || !haystack) {\n return null;\n }\n if (!isValidType(needle.type, [\n BooleanType,\n StringType,\n NumberType,\n NullType,\n ValueType\n ])) {\n return context.error(\"Expected first argument to be of type boolean, string, number or null, but found \" + toString(needle.type) + \" instead\");\n }\n if (args.length === 4) {\n var fromIndex = context.parse(args[3], 3, NumberType);\n if (!fromIndex) {\n return null;\n }\n return new IndexOf(needle, haystack, fromIndex);\n } else {\n return new IndexOf(needle, haystack);\n }\n };\n IndexOf.prototype.evaluate = function evaluate(ctx) {\n var needle = this.needle.evaluate(ctx);\n var haystack = this.haystack.evaluate(ctx);\n if (!isValidNativeType(needle, [\n \"boolean\",\n \"string\",\n \"number\",\n \"null\"\n ])) {\n throw new RuntimeError(\"Expected first argument to be of type boolean, string, number or null, but found \" + toString(typeOf(needle)) + \" instead.\");\n }\n if (!isValidNativeType(haystack, [\n \"string\",\n \"array\"\n ])) {\n throw new RuntimeError(\"Expected second argument to be of type array or string, but found \" + toString(typeOf(haystack)) + \" instead.\");\n }\n if (this.fromIndex) {\n var fromIndex = this.fromIndex.evaluate(ctx);\n return haystack.indexOf(needle, fromIndex);\n }\n return haystack.indexOf(needle);\n };\n IndexOf.prototype.eachChild = function eachChild(fn) {\n fn(this.needle);\n fn(this.haystack);\n if (this.fromIndex) {\n fn(this.fromIndex);\n }\n };\n IndexOf.prototype.outputDefined = function outputDefined() {\n return false;\n };\n IndexOf.prototype.serialize = function serialize2() {\n if (this.fromIndex != null && this.fromIndex !== void 0) {\n var fromIndex = this.fromIndex.serialize();\n return [\n \"index-of\",\n this.needle.serialize(),\n this.haystack.serialize(),\n fromIndex\n ];\n }\n return [\n \"index-of\",\n this.needle.serialize(),\n this.haystack.serialize()\n ];\n };\n var Match = function Match2(inputType, outputType, input, cases, outputs, otherwise) {\n this.inputType = inputType;\n this.type = outputType;\n this.input = input;\n this.cases = cases;\n this.outputs = outputs;\n this.otherwise = otherwise;\n };\n Match.parse = function parse2(args, context) {\n if (args.length < 5) {\n return context.error(\"Expected at least 4 arguments, but found only \" + (args.length - 1) + \".\");\n }\n if (args.length % 2 !== 1) {\n return context.error(\"Expected an even number of arguments.\");\n }\n var inputType;\n var outputType;\n if (context.expectedType && context.expectedType.kind !== \"value\") {\n outputType = context.expectedType;\n }\n var cases = {};\n var outputs = [];\n for (var i = 2; i < args.length - 1; i += 2) {\n var labels = args[i];\n var value = args[i + 1];\n if (!Array.isArray(labels)) {\n labels = [labels];\n }\n var labelContext = context.concat(i);\n if (labels.length === 0) {\n return labelContext.error(\"Expected at least one branch label.\");\n }\n for (var i$1 = 0, list = labels; i$1 < list.length; i$1 += 1) {\n var label = list[i$1];\n if (typeof label !== \"number\" && typeof label !== \"string\") {\n return labelContext.error(\"Branch labels must be numbers or strings.\");\n } else if (typeof label === \"number\" && Math.abs(label) > Number.MAX_SAFE_INTEGER) {\n return labelContext.error(\"Branch labels must be integers no larger than \" + Number.MAX_SAFE_INTEGER + \".\");\n } else if (typeof label === \"number\" && Math.floor(label) !== label) {\n return labelContext.error(\"Numeric branch labels must be integer values.\");\n } else if (!inputType) {\n inputType = typeOf(label);\n } else if (labelContext.checkSubtype(inputType, typeOf(label))) {\n return null;\n }\n if (typeof cases[String(label)] !== \"undefined\") {\n return labelContext.error(\"Branch labels must be unique.\");\n }\n cases[String(label)] = outputs.length;\n }\n var result = context.parse(value, i, outputType);\n if (!result) {\n return null;\n }\n outputType = outputType || result.type;\n outputs.push(result);\n }\n var input = context.parse(args[1], 1, ValueType);\n if (!input) {\n return null;\n }\n var otherwise = context.parse(args[args.length - 1], args.length - 1, outputType);\n if (!otherwise) {\n return null;\n }\n if (input.type.kind !== \"value\" && context.concat(1).checkSubtype(inputType, input.type)) {\n return null;\n }\n return new Match(inputType, outputType, input, cases, outputs, otherwise);\n };\n Match.prototype.evaluate = function evaluate(ctx) {\n var input = this.input.evaluate(ctx);\n var output = typeOf(input) === this.inputType && this.outputs[this.cases[input]] || this.otherwise;\n return output.evaluate(ctx);\n };\n Match.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n this.outputs.forEach(fn);\n fn(this.otherwise);\n };\n Match.prototype.outputDefined = function outputDefined() {\n return this.outputs.every(function(out) {\n return out.outputDefined();\n }) && this.otherwise.outputDefined();\n };\n Match.prototype.serialize = function serialize2() {\n var this$1 = this;\n var serialized = [\n \"match\",\n this.input.serialize()\n ];\n var sortedLabels = Object.keys(this.cases).sort();\n var groupedByOutput = [];\n var outputLookup = {};\n for (var i = 0, list = sortedLabels; i < list.length; i += 1) {\n var label = list[i];\n var outputIndex = outputLookup[this.cases[label]];\n if (outputIndex === void 0) {\n outputLookup[this.cases[label]] = groupedByOutput.length;\n groupedByOutput.push([\n this.cases[label],\n [label]\n ]);\n } else {\n groupedByOutput[outputIndex][1].push(label);\n }\n }\n var coerceLabel = function(label2) {\n return this$1.inputType.kind === \"number\" ? Number(label2) : label2;\n };\n for (var i$1 = 0, list$1 = groupedByOutput; i$1 < list$1.length; i$1 += 1) {\n var ref = list$1[i$1];\n var outputIndex = ref[0];\n var labels = ref[1];\n if (labels.length === 1) {\n serialized.push(coerceLabel(labels[0]));\n } else {\n serialized.push(labels.map(coerceLabel));\n }\n serialized.push(this.outputs[outputIndex$1].serialize());\n }\n serialized.push(this.otherwise.serialize());\n return serialized;\n };\n var Case = function Case2(type, branches, otherwise) {\n this.type = type;\n this.branches = branches;\n this.otherwise = otherwise;\n };\n Case.parse = function parse2(args, context) {\n if (args.length < 4) {\n return context.error(\"Expected at least 3 arguments, but found only \" + (args.length - 1) + \".\");\n }\n if (args.length % 2 !== 0) {\n return context.error(\"Expected an odd number of arguments.\");\n }\n var outputType;\n if (context.expectedType && context.expectedType.kind !== \"value\") {\n outputType = context.expectedType;\n }\n var branches = [];\n for (var i = 1; i < args.length - 1; i += 2) {\n var test = context.parse(args[i], i, BooleanType);\n if (!test) {\n return null;\n }\n var result = context.parse(args[i + 1], i + 1, outputType);\n if (!result) {\n return null;\n }\n branches.push([\n test,\n result\n ]);\n outputType = outputType || result.type;\n }\n var otherwise = context.parse(args[args.length - 1], args.length - 1, outputType);\n if (!otherwise) {\n return null;\n }\n return new Case(outputType, branches, otherwise);\n };\n Case.prototype.evaluate = function evaluate(ctx) {\n for (var i = 0, list = this.branches; i < list.length; i += 1) {\n var ref = list[i];\n var test = ref[0];\n var expression2 = ref[1];\n if (test.evaluate(ctx)) {\n return expression2.evaluate(ctx);\n }\n }\n return this.otherwise.evaluate(ctx);\n };\n Case.prototype.eachChild = function eachChild(fn) {\n for (var i = 0, list = this.branches; i < list.length; i += 1) {\n var ref = list[i];\n var test = ref[0];\n var expression2 = ref[1];\n fn(test);\n fn(expression2);\n }\n fn(this.otherwise);\n };\n Case.prototype.outputDefined = function outputDefined() {\n return this.branches.every(function(ref) {\n var _ = ref[0];\n var out = ref[1];\n return out.outputDefined();\n }) && this.otherwise.outputDefined();\n };\n Case.prototype.serialize = function serialize2() {\n var serialized = [\"case\"];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n var Slice = function Slice2(type, input, beginIndex, endIndex) {\n this.type = type;\n this.input = input;\n this.beginIndex = beginIndex;\n this.endIndex = endIndex;\n };\n Slice.parse = function parse2(args, context) {\n if (args.length <= 2 || args.length >= 5) {\n return context.error(\"Expected 3 or 4 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var input = context.parse(args[1], 1, ValueType);\n var beginIndex = context.parse(args[2], 2, NumberType);\n if (!input || !beginIndex) {\n return null;\n }\n if (!isValidType(input.type, [\n array(ValueType),\n StringType,\n ValueType\n ])) {\n return context.error(\"Expected first argument to be of type array or string, but found \" + toString(input.type) + \" instead\");\n }\n if (args.length === 4) {\n var endIndex = context.parse(args[3], 3, NumberType);\n if (!endIndex) {\n return null;\n }\n return new Slice(input.type, input, beginIndex, endIndex);\n } else {\n return new Slice(input.type, input, beginIndex);\n }\n };\n Slice.prototype.evaluate = function evaluate(ctx) {\n var input = this.input.evaluate(ctx);\n var beginIndex = this.beginIndex.evaluate(ctx);\n if (!isValidNativeType(input, [\n \"string\",\n \"array\"\n ])) {\n throw new RuntimeError(\"Expected first argument to be of type array or string, but found \" + toString(typeOf(input)) + \" instead.\");\n }\n if (this.endIndex) {\n var endIndex = this.endIndex.evaluate(ctx);\n return input.slice(beginIndex, endIndex);\n }\n return input.slice(beginIndex);\n };\n Slice.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n fn(this.beginIndex);\n if (this.endIndex) {\n fn(this.endIndex);\n }\n };\n Slice.prototype.outputDefined = function outputDefined() {\n return false;\n };\n Slice.prototype.serialize = function serialize2() {\n if (this.endIndex != null && this.endIndex !== void 0) {\n var endIndex = this.endIndex.serialize();\n return [\n \"slice\",\n this.input.serialize(),\n this.beginIndex.serialize(),\n endIndex\n ];\n }\n return [\n \"slice\",\n this.input.serialize(),\n this.beginIndex.serialize()\n ];\n };\n function isComparableType(op, type) {\n if (op === \"==\" || op === \"!=\") {\n return type.kind === \"boolean\" || type.kind === \"string\" || type.kind === \"number\" || type.kind === \"null\" || type.kind === \"value\";\n } else {\n return type.kind === \"string\" || type.kind === \"number\" || type.kind === \"value\";\n }\n }\n function eq(ctx, a, b) {\n return a === b;\n }\n function neq(ctx, a, b) {\n return a !== b;\n }\n function lt(ctx, a, b) {\n return a < b;\n }\n function gt(ctx, a, b) {\n return a > b;\n }\n function lteq(ctx, a, b) {\n return a <= b;\n }\n function gteq(ctx, a, b) {\n return a >= b;\n }\n function eqCollate(ctx, a, b, c) {\n return c.compare(a, b) === 0;\n }\n function neqCollate(ctx, a, b, c) {\n return !eqCollate(ctx, a, b, c);\n }\n function ltCollate(ctx, a, b, c) {\n return c.compare(a, b) < 0;\n }\n function gtCollate(ctx, a, b, c) {\n return c.compare(a, b) > 0;\n }\n function lteqCollate(ctx, a, b, c) {\n return c.compare(a, b) <= 0;\n }\n function gteqCollate(ctx, a, b, c) {\n return c.compare(a, b) >= 0;\n }\n function makeComparison(op, compareBasic, compareWithCollator) {\n var isOrderComparison = op !== \"==\" && op !== \"!=\";\n return function() {\n function Comparison(lhs, rhs, collator) {\n this.type = BooleanType;\n this.lhs = lhs;\n this.rhs = rhs;\n this.collator = collator;\n this.hasUntypedArgument = lhs.type.kind === \"value\" || rhs.type.kind === \"value\";\n }\n Comparison.parse = function parse2(args, context) {\n if (args.length !== 3 && args.length !== 4) {\n return context.error(\"Expected two or three arguments.\");\n }\n var op2 = args[0];\n var lhs = context.parse(args[1], 1, ValueType);\n if (!lhs) {\n return null;\n }\n if (!isComparableType(op2, lhs.type)) {\n return context.concat(1).error('\"' + op2 + `\" comparisons are not supported for type '` + toString(lhs.type) + \"'.\");\n }\n var rhs = context.parse(args[2], 2, ValueType);\n if (!rhs) {\n return null;\n }\n if (!isComparableType(op2, rhs.type)) {\n return context.concat(2).error('\"' + op2 + `\" comparisons are not supported for type '` + toString(rhs.type) + \"'.\");\n }\n if (lhs.type.kind !== rhs.type.kind && lhs.type.kind !== \"value\" && rhs.type.kind !== \"value\") {\n return context.error(\"Cannot compare types '\" + toString(lhs.type) + \"' and '\" + toString(rhs.type) + \"'.\");\n }\n if (isOrderComparison) {\n if (lhs.type.kind === \"value\" && rhs.type.kind !== \"value\") {\n lhs = new Assertion(rhs.type, [lhs]);\n } else if (lhs.type.kind !== \"value\" && rhs.type.kind === \"value\") {\n rhs = new Assertion(lhs.type, [rhs]);\n }\n }\n var collator = null;\n if (args.length === 4) {\n if (lhs.type.kind !== \"string\" && rhs.type.kind !== \"string\" && lhs.type.kind !== \"value\" && rhs.type.kind !== \"value\") {\n return context.error(\"Cannot use collator to compare non-string types.\");\n }\n collator = context.parse(args[3], 3, CollatorType);\n if (!collator) {\n return null;\n }\n }\n return new Comparison(lhs, rhs, collator);\n };\n Comparison.prototype.evaluate = function evaluate(ctx) {\n var lhs = this.lhs.evaluate(ctx);\n var rhs = this.rhs.evaluate(ctx);\n if (isOrderComparison && this.hasUntypedArgument) {\n var lt2 = typeOf(lhs);\n var rt = typeOf(rhs);\n if (lt2.kind !== rt.kind || !(lt2.kind === \"string\" || lt2.kind === \"number\")) {\n throw new RuntimeError('Expected arguments for \"' + op + '\" to be (string, string) or (number, number), but found (' + lt2.kind + \", \" + rt.kind + \") instead.\");\n }\n }\n if (this.collator && !isOrderComparison && this.hasUntypedArgument) {\n var lt$1 = typeOf(lhs);\n var rt$1 = typeOf(rhs);\n if (lt$1.kind !== \"string\" || rt$1.kind !== \"string\") {\n return compareBasic(ctx, lhs, rhs);\n }\n }\n return this.collator ? compareWithCollator(ctx, lhs, rhs, this.collator.evaluate(ctx)) : compareBasic(ctx, lhs, rhs);\n };\n Comparison.prototype.eachChild = function eachChild(fn) {\n fn(this.lhs);\n fn(this.rhs);\n if (this.collator) {\n fn(this.collator);\n }\n };\n Comparison.prototype.outputDefined = function outputDefined() {\n return true;\n };\n Comparison.prototype.serialize = function serialize2() {\n var serialized = [op];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n return Comparison;\n }();\n }\n var Equals = makeComparison(\"==\", eq, eqCollate);\n var NotEquals = makeComparison(\"!=\", neq, neqCollate);\n var LessThan = makeComparison(\"<\", lt, ltCollate);\n var GreaterThan = makeComparison(\">\", gt, gtCollate);\n var LessThanOrEqual = makeComparison(\"<=\", lteq, lteqCollate);\n var GreaterThanOrEqual = makeComparison(\">=\", gteq, gteqCollate);\n var NumberFormat = function NumberFormat2(number2, locale, currency, minFractionDigits, maxFractionDigits) {\n this.type = StringType;\n this.number = number2;\n this.locale = locale;\n this.currency = currency;\n this.minFractionDigits = minFractionDigits;\n this.maxFractionDigits = maxFractionDigits;\n };\n NumberFormat.parse = function parse2(args, context) {\n if (args.length !== 3) {\n return context.error(\"Expected two arguments.\");\n }\n var number2 = context.parse(args[1], 1, NumberType);\n if (!number2) {\n return null;\n }\n var options = args[2];\n if (typeof options !== \"object\" || Array.isArray(options)) {\n return context.error(\"NumberFormat options argument must be an object.\");\n }\n var locale = null;\n if (options[\"locale\"]) {\n locale = context.parse(options[\"locale\"], 1, StringType);\n if (!locale) {\n return null;\n }\n }\n var currency = null;\n if (options[\"currency\"]) {\n currency = context.parse(options[\"currency\"], 1, StringType);\n if (!currency) {\n return null;\n }\n }\n var minFractionDigits = null;\n if (options[\"min-fraction-digits\"]) {\n minFractionDigits = context.parse(options[\"min-fraction-digits\"], 1, NumberType);\n if (!minFractionDigits) {\n return null;\n }\n }\n var maxFractionDigits = null;\n if (options[\"max-fraction-digits\"]) {\n maxFractionDigits = context.parse(options[\"max-fraction-digits\"], 1, NumberType);\n if (!maxFractionDigits) {\n return null;\n }\n }\n return new NumberFormat(number2, locale, currency, minFractionDigits, maxFractionDigits);\n };\n NumberFormat.prototype.evaluate = function evaluate(ctx) {\n return new Intl.NumberFormat(this.locale ? this.locale.evaluate(ctx) : [], {\n style: this.currency ? \"currency\" : \"decimal\",\n currency: this.currency ? this.currency.evaluate(ctx) : void 0,\n minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(ctx) : void 0,\n maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(ctx) : void 0\n }).format(this.number.evaluate(ctx));\n };\n NumberFormat.prototype.eachChild = function eachChild(fn) {\n fn(this.number);\n if (this.locale) {\n fn(this.locale);\n }\n if (this.currency) {\n fn(this.currency);\n }\n if (this.minFractionDigits) {\n fn(this.minFractionDigits);\n }\n if (this.maxFractionDigits) {\n fn(this.maxFractionDigits);\n }\n };\n NumberFormat.prototype.outputDefined = function outputDefined() {\n return false;\n };\n NumberFormat.prototype.serialize = function serialize2() {\n var options = {};\n if (this.locale) {\n options[\"locale\"] = this.locale.serialize();\n }\n if (this.currency) {\n options[\"currency\"] = this.currency.serialize();\n }\n if (this.minFractionDigits) {\n options[\"min-fraction-digits\"] = this.minFractionDigits.serialize();\n }\n if (this.maxFractionDigits) {\n options[\"max-fraction-digits\"] = this.maxFractionDigits.serialize();\n }\n return [\n \"number-format\",\n this.number.serialize(),\n options\n ];\n };\n var Length = function Length2(input) {\n this.type = NumberType;\n this.input = input;\n };\n Length.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"Expected 1 argument, but found \" + (args.length - 1) + \" instead.\");\n }\n var input = context.parse(args[1], 1);\n if (!input) {\n return null;\n }\n if (input.type.kind !== \"array\" && input.type.kind !== \"string\" && input.type.kind !== \"value\") {\n return context.error(\"Expected argument of type string or array, but found \" + toString(input.type) + \" instead.\");\n }\n return new Length(input);\n };\n Length.prototype.evaluate = function evaluate(ctx) {\n var input = this.input.evaluate(ctx);\n if (typeof input === \"string\") {\n return input.length;\n } else if (Array.isArray(input)) {\n return input.length;\n } else {\n throw new RuntimeError(\"Expected value to be of type string or array, but found \" + toString(typeOf(input)) + \" instead.\");\n }\n };\n Length.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n };\n Length.prototype.outputDefined = function outputDefined() {\n return false;\n };\n Length.prototype.serialize = function serialize2() {\n var serialized = [\"length\"];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n var expressions = {\n \"==\": Equals,\n \"!=\": NotEquals,\n \">\": GreaterThan,\n \"<\": LessThan,\n \">=\": GreaterThanOrEqual,\n \"<=\": LessThanOrEqual,\n \"array\": Assertion,\n \"at\": At,\n \"boolean\": Assertion,\n \"case\": Case,\n \"coalesce\": Coalesce,\n \"collator\": CollatorExpression,\n \"format\": FormatExpression,\n \"image\": ImageExpression,\n \"in\": In,\n \"index-of\": IndexOf,\n \"interpolate\": Interpolate,\n \"interpolate-hcl\": Interpolate,\n \"interpolate-lab\": Interpolate,\n \"length\": Length,\n \"let\": Let,\n \"literal\": Literal,\n \"match\": Match,\n \"number\": Assertion,\n \"number-format\": NumberFormat,\n \"object\": Assertion,\n \"slice\": Slice,\n \"step\": Step,\n \"string\": Assertion,\n \"to-boolean\": Coercion,\n \"to-color\": Coercion,\n \"to-number\": Coercion,\n \"to-string\": Coercion,\n \"var\": Var,\n \"within\": Within\n };\n function rgba3(ctx, ref) {\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var a = ref[3];\n r = r.evaluate(ctx);\n g = g.evaluate(ctx);\n b = b.evaluate(ctx);\n var alpha = a ? a.evaluate(ctx) : 1;\n var error2 = validateRGBA(r, g, b, alpha);\n if (error2) {\n throw new RuntimeError(error2);\n }\n return new Color2(r / 255 * alpha, g / 255 * alpha, b / 255 * alpha, alpha);\n }\n function has(key, obj) {\n return key in obj;\n }\n function get(key, obj) {\n var v = obj[key];\n return typeof v === \"undefined\" ? null : v;\n }\n function binarySearch(v, a, i, j) {\n while (i <= j) {\n var m = i + j >> 1;\n if (a[m] === v) {\n return true;\n }\n if (a[m] > v) {\n j = m - 1;\n } else {\n i = m + 1;\n }\n }\n return false;\n }\n function varargs(type) {\n return { type };\n }\n CompoundExpression.register(expressions, {\n \"error\": [\n ErrorType,\n [StringType],\n function(ctx, ref) {\n var v = ref[0];\n throw new RuntimeError(v.evaluate(ctx));\n }\n ],\n \"typeof\": [\n StringType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n return toString(typeOf(v.evaluate(ctx)));\n }\n ],\n \"to-rgba\": [\n array(NumberType, 4),\n [ColorType],\n function(ctx, ref) {\n var v = ref[0];\n return v.evaluate(ctx).toArray();\n }\n ],\n \"rgb\": [\n ColorType,\n [\n NumberType,\n NumberType,\n NumberType\n ],\n rgba3\n ],\n \"rgba\": [\n ColorType,\n [\n NumberType,\n NumberType,\n NumberType,\n NumberType\n ],\n rgba3\n ],\n \"has\": {\n type: BooleanType,\n overloads: [\n [\n [StringType],\n function(ctx, ref) {\n var key = ref[0];\n return has(key.evaluate(ctx), ctx.properties());\n }\n ],\n [\n [\n StringType,\n ObjectType\n ],\n function(ctx, ref) {\n var key = ref[0];\n var obj = ref[1];\n return has(key.evaluate(ctx), obj.evaluate(ctx));\n }\n ]\n ]\n },\n \"get\": {\n type: ValueType,\n overloads: [\n [\n [StringType],\n function(ctx, ref) {\n var key = ref[0];\n return get(key.evaluate(ctx), ctx.properties());\n }\n ],\n [\n [\n StringType,\n ObjectType\n ],\n function(ctx, ref) {\n var key = ref[0];\n var obj = ref[1];\n return get(key.evaluate(ctx), obj.evaluate(ctx));\n }\n ]\n ]\n },\n \"feature-state\": [\n ValueType,\n [StringType],\n function(ctx, ref) {\n var key = ref[0];\n return get(key.evaluate(ctx), ctx.featureState || {});\n }\n ],\n \"properties\": [\n ObjectType,\n [],\n function(ctx) {\n return ctx.properties();\n }\n ],\n \"geometry-type\": [\n StringType,\n [],\n function(ctx) {\n return ctx.geometryType();\n }\n ],\n \"id\": [\n ValueType,\n [],\n function(ctx) {\n return ctx.id();\n }\n ],\n \"zoom\": [\n NumberType,\n [],\n function(ctx) {\n return ctx.globals.zoom;\n }\n ],\n \"heatmap-density\": [\n NumberType,\n [],\n function(ctx) {\n return ctx.globals.heatmapDensity || 0;\n }\n ],\n \"line-progress\": [\n NumberType,\n [],\n function(ctx) {\n return ctx.globals.lineProgress || 0;\n }\n ],\n \"accumulated\": [\n ValueType,\n [],\n function(ctx) {\n return ctx.globals.accumulated === void 0 ? null : ctx.globals.accumulated;\n }\n ],\n \"+\": [\n NumberType,\n varargs(NumberType),\n function(ctx, args) {\n var result = 0;\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n result += arg.evaluate(ctx);\n }\n return result;\n }\n ],\n \"*\": [\n NumberType,\n varargs(NumberType),\n function(ctx, args) {\n var result = 1;\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n result *= arg.evaluate(ctx);\n }\n return result;\n }\n ],\n \"-\": {\n type: NumberType,\n overloads: [\n [\n [\n NumberType,\n NumberType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) - b.evaluate(ctx);\n }\n ],\n [\n [NumberType],\n function(ctx, ref) {\n var a = ref[0];\n return -a.evaluate(ctx);\n }\n ]\n ]\n },\n \"/\": [\n NumberType,\n [\n NumberType,\n NumberType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) / b.evaluate(ctx);\n }\n ],\n \"%\": [\n NumberType,\n [\n NumberType,\n NumberType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) % b.evaluate(ctx);\n }\n ],\n \"ln2\": [\n NumberType,\n [],\n function() {\n return Math.LN2;\n }\n ],\n \"pi\": [\n NumberType,\n [],\n function() {\n return Math.PI;\n }\n ],\n \"e\": [\n NumberType,\n [],\n function() {\n return Math.E;\n }\n ],\n \"^\": [\n NumberType,\n [\n NumberType,\n NumberType\n ],\n function(ctx, ref) {\n var b = ref[0];\n var e = ref[1];\n return Math.pow(b.evaluate(ctx), e.evaluate(ctx));\n }\n ],\n \"sqrt\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var x = ref[0];\n return Math.sqrt(x.evaluate(ctx));\n }\n ],\n \"log10\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.log(n.evaluate(ctx)) / Math.LN10;\n }\n ],\n \"ln\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.log(n.evaluate(ctx));\n }\n ],\n \"log2\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.log(n.evaluate(ctx)) / Math.LN2;\n }\n ],\n \"sin\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.sin(n.evaluate(ctx));\n }\n ],\n \"cos\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.cos(n.evaluate(ctx));\n }\n ],\n \"tan\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.tan(n.evaluate(ctx));\n }\n ],\n \"asin\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.asin(n.evaluate(ctx));\n }\n ],\n \"acos\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.acos(n.evaluate(ctx));\n }\n ],\n \"atan\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.atan(n.evaluate(ctx));\n }\n ],\n \"min\": [\n NumberType,\n varargs(NumberType),\n function(ctx, args) {\n return Math.min.apply(Math, args.map(function(arg) {\n return arg.evaluate(ctx);\n }));\n }\n ],\n \"max\": [\n NumberType,\n varargs(NumberType),\n function(ctx, args) {\n return Math.max.apply(Math, args.map(function(arg) {\n return arg.evaluate(ctx);\n }));\n }\n ],\n \"abs\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.abs(n.evaluate(ctx));\n }\n ],\n \"round\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n var v = n.evaluate(ctx);\n return v < 0 ? -Math.round(-v) : Math.round(v);\n }\n ],\n \"floor\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.floor(n.evaluate(ctx));\n }\n ],\n \"ceil\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.ceil(n.evaluate(ctx));\n }\n ],\n \"filter-==\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n return ctx.properties()[k.value] === v.value;\n }\n ],\n \"filter-id-==\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n return ctx.id() === v.value;\n }\n ],\n \"filter-type-==\": [\n BooleanType,\n [StringType],\n function(ctx, ref) {\n var v = ref[0];\n return ctx.geometryType() === v.value;\n }\n ],\n \"filter-<\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n var a = ctx.properties()[k.value];\n var b = v.value;\n return typeof a === typeof b && a < b;\n }\n ],\n \"filter-id-<\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n var a = ctx.id();\n var b = v.value;\n return typeof a === typeof b && a < b;\n }\n ],\n \"filter->\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n var a = ctx.properties()[k.value];\n var b = v.value;\n return typeof a === typeof b && a > b;\n }\n ],\n \"filter-id->\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n var a = ctx.id();\n var b = v.value;\n return typeof a === typeof b && a > b;\n }\n ],\n \"filter-<=\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n var a = ctx.properties()[k.value];\n var b = v.value;\n return typeof a === typeof b && a <= b;\n }\n ],\n \"filter-id-<=\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n var a = ctx.id();\n var b = v.value;\n return typeof a === typeof b && a <= b;\n }\n ],\n \"filter->=\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n var a = ctx.properties()[k.value];\n var b = v.value;\n return typeof a === typeof b && a >= b;\n }\n ],\n \"filter-id->=\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n var a = ctx.id();\n var b = v.value;\n return typeof a === typeof b && a >= b;\n }\n ],\n \"filter-has\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var k = ref[0];\n return k.value in ctx.properties();\n }\n ],\n \"filter-has-id\": [\n BooleanType,\n [],\n function(ctx) {\n return ctx.id() !== null && ctx.id() !== void 0;\n }\n ],\n \"filter-type-in\": [\n BooleanType,\n [array(StringType)],\n function(ctx, ref) {\n var v = ref[0];\n return v.value.indexOf(ctx.geometryType()) >= 0;\n }\n ],\n \"filter-id-in\": [\n BooleanType,\n [array(ValueType)],\n function(ctx, ref) {\n var v = ref[0];\n return v.value.indexOf(ctx.id()) >= 0;\n }\n ],\n \"filter-in-small\": [\n BooleanType,\n [\n StringType,\n array(ValueType)\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n return v.value.indexOf(ctx.properties()[k.value]) >= 0;\n }\n ],\n \"filter-in-large\": [\n BooleanType,\n [\n StringType,\n array(ValueType)\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n return binarySearch(ctx.properties()[k.value], v.value, 0, v.value.length - 1);\n }\n ],\n \"all\": {\n type: BooleanType,\n overloads: [\n [\n [\n BooleanType,\n BooleanType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) && b.evaluate(ctx);\n }\n ],\n [\n varargs(BooleanType),\n function(ctx, args) {\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n if (!arg.evaluate(ctx)) {\n return false;\n }\n }\n return true;\n }\n ]\n ]\n },\n \"any\": {\n type: BooleanType,\n overloads: [\n [\n [\n BooleanType,\n BooleanType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) || b.evaluate(ctx);\n }\n ],\n [\n varargs(BooleanType),\n function(ctx, args) {\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n if (arg.evaluate(ctx)) {\n return true;\n }\n }\n return false;\n }\n ]\n ]\n },\n \"!\": [\n BooleanType,\n [BooleanType],\n function(ctx, ref) {\n var b = ref[0];\n return !b.evaluate(ctx);\n }\n ],\n \"is-supported-script\": [\n BooleanType,\n [StringType],\n function(ctx, ref) {\n var s = ref[0];\n var isSupportedScript = ctx.globals && ctx.globals.isSupportedScript;\n if (isSupportedScript) {\n return isSupportedScript(s.evaluate(ctx));\n }\n return true;\n }\n ],\n \"upcase\": [\n StringType,\n [StringType],\n function(ctx, ref) {\n var s = ref[0];\n return s.evaluate(ctx).toUpperCase();\n }\n ],\n \"downcase\": [\n StringType,\n [StringType],\n function(ctx, ref) {\n var s = ref[0];\n return s.evaluate(ctx).toLowerCase();\n }\n ],\n \"concat\": [\n StringType,\n varargs(ValueType),\n function(ctx, args) {\n return args.map(function(arg) {\n return toString$1(arg.evaluate(ctx));\n }).join(\"\");\n }\n ],\n \"resolved-locale\": [\n StringType,\n [CollatorType],\n function(ctx, ref) {\n var collator = ref[0];\n return collator.evaluate(ctx).resolvedLocale();\n }\n ]\n });\n function success(value) {\n return {\n result: \"success\",\n value\n };\n }\n function error(value) {\n return {\n result: \"error\",\n value\n };\n }\n function supportsPropertyExpression(spec2) {\n return spec2[\"property-type\"] === \"data-driven\" || spec2[\"property-type\"] === \"cross-faded-data-driven\";\n }\n function supportsZoomExpression(spec2) {\n return !!spec2.expression && spec2.expression.parameters.indexOf(\"zoom\") > -1;\n }\n function supportsInterpolation(spec2) {\n return !!spec2.expression && spec2.expression.interpolated;\n }\n function getType(val) {\n if (val instanceof Number) {\n return \"number\";\n } else if (val instanceof String) {\n return \"string\";\n } else if (val instanceof Boolean) {\n return \"boolean\";\n } else if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n }\n function isFunction(value) {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n }\n function identityFunction(x) {\n return x;\n }\n function createFunction(parameters, propertySpec) {\n var isColor = propertySpec.type === \"color\";\n var zoomAndFeatureDependent = parameters.stops && typeof parameters.stops[0][0] === \"object\";\n var featureDependent = zoomAndFeatureDependent || parameters.property !== void 0;\n var zoomDependent = zoomAndFeatureDependent || !featureDependent;\n var type = parameters.type || (supportsInterpolation(propertySpec) ? \"exponential\" : \"interval\");\n if (isColor) {\n parameters = extend$1({}, parameters);\n if (parameters.stops) {\n parameters.stops = parameters.stops.map(function(stop2) {\n return [\n stop2[0],\n Color2.parse(stop2[1])\n ];\n });\n }\n if (parameters.default) {\n parameters.default = Color2.parse(parameters.default);\n } else {\n parameters.default = Color2.parse(propertySpec.default);\n }\n }\n if (parameters.colorSpace && parameters.colorSpace !== \"rgb\" && !colorSpaces[parameters.colorSpace]) {\n throw new Error(\"Unknown color space: \" + parameters.colorSpace);\n }\n var innerFun;\n var hashedStops;\n var categoricalKeyType;\n if (type === \"exponential\") {\n innerFun = evaluateExponentialFunction;\n } else if (type === \"interval\") {\n innerFun = evaluateIntervalFunction;\n } else if (type === \"categorical\") {\n innerFun = evaluateCategoricalFunction;\n hashedStops = /* @__PURE__ */ Object.create(null);\n for (var i = 0, list = parameters.stops; i < list.length; i += 1) {\n var stop = list[i];\n hashedStops[stop[0]] = stop[1];\n }\n categoricalKeyType = typeof parameters.stops[0][0];\n } else if (type === \"identity\") {\n innerFun = evaluateIdentityFunction;\n } else {\n throw new Error('Unknown function type \"' + type + '\"');\n }\n if (zoomAndFeatureDependent) {\n var featureFunctions = {};\n var zoomStops = [];\n for (var s = 0; s < parameters.stops.length; s++) {\n var stop$1 = parameters.stops[s];\n var zoom = stop$1[0].zoom;\n if (featureFunctions[zoom] === void 0) {\n featureFunctions[zoom] = {\n zoom,\n type: parameters.type,\n property: parameters.property,\n default: parameters.default,\n stops: []\n };\n zoomStops.push(zoom);\n }\n featureFunctions[zoom].stops.push([\n stop$1[0].value,\n stop$1[1]\n ]);\n }\n var featureFunctionStops = [];\n for (var i$1 = 0, list$1 = zoomStops; i$1 < list$1.length; i$1 += 1) {\n var z = list$1[i$1];\n featureFunctionStops.push([\n featureFunctions[z].zoom,\n createFunction(featureFunctions[z], propertySpec)\n ]);\n }\n var interpolationType = { name: \"linear\" };\n return {\n kind: \"composite\",\n interpolationType,\n interpolationFactor: Interpolate.interpolationFactor.bind(void 0, interpolationType),\n zoomStops: featureFunctionStops.map(function(s2) {\n return s2[0];\n }),\n evaluate: function evaluate(ref, properties2) {\n var zoom2 = ref.zoom;\n return evaluateExponentialFunction({\n stops: featureFunctionStops,\n base: parameters.base\n }, propertySpec, zoom2).evaluate(zoom2, properties2);\n }\n };\n } else if (zoomDependent) {\n var interpolationType$1 = type === \"exponential\" ? {\n name: \"exponential\",\n base: parameters.base !== void 0 ? parameters.base : 1\n } : null;\n return {\n kind: \"camera\",\n interpolationType: interpolationType$1,\n interpolationFactor: Interpolate.interpolationFactor.bind(void 0, interpolationType$1),\n zoomStops: parameters.stops.map(function(s2) {\n return s2[0];\n }),\n evaluate: function(ref) {\n var zoom2 = ref.zoom;\n return innerFun(parameters, propertySpec, zoom2, hashedStops, categoricalKeyType);\n }\n };\n } else {\n return {\n kind: \"source\",\n evaluate: function evaluate(_, feature) {\n var value = feature && feature.properties ? feature.properties[parameters.property] : void 0;\n if (value === void 0) {\n return coalesce(parameters.default, propertySpec.default);\n }\n return innerFun(parameters, propertySpec, value, hashedStops, categoricalKeyType);\n }\n };\n }\n }\n function coalesce(a, b, c) {\n if (a !== void 0) {\n return a;\n }\n if (b !== void 0) {\n return b;\n }\n if (c !== void 0) {\n return c;\n }\n }\n function evaluateCategoricalFunction(parameters, propertySpec, input, hashedStops, keyType) {\n var evaluated = typeof input === keyType ? hashedStops[input] : void 0;\n return coalesce(evaluated, parameters.default, propertySpec.default);\n }\n function evaluateIntervalFunction(parameters, propertySpec, input) {\n if (getType(input) !== \"number\") {\n return coalesce(parameters.default, propertySpec.default);\n }\n var n = parameters.stops.length;\n if (n === 1) {\n return parameters.stops[0][1];\n }\n if (input <= parameters.stops[0][0]) {\n return parameters.stops[0][1];\n }\n if (input >= parameters.stops[n - 1][0]) {\n return parameters.stops[n - 1][1];\n }\n var index = findStopLessThanOrEqualTo(parameters.stops.map(function(stop) {\n return stop[0];\n }), input);\n return parameters.stops[index][1];\n }\n function evaluateExponentialFunction(parameters, propertySpec, input) {\n var base = parameters.base !== void 0 ? parameters.base : 1;\n if (getType(input) !== \"number\") {\n return coalesce(parameters.default, propertySpec.default);\n }\n var n = parameters.stops.length;\n if (n === 1) {\n return parameters.stops[0][1];\n }\n if (input <= parameters.stops[0][0]) {\n return parameters.stops[0][1];\n }\n if (input >= parameters.stops[n - 1][0]) {\n return parameters.stops[n - 1][1];\n }\n var index = findStopLessThanOrEqualTo(parameters.stops.map(function(stop) {\n return stop[0];\n }), input);\n var t = interpolationFactor(input, base, parameters.stops[index][0], parameters.stops[index + 1][0]);\n var outputLower = parameters.stops[index][1];\n var outputUpper = parameters.stops[index + 1][1];\n var interp = interpolate[propertySpec.type] || identityFunction;\n if (parameters.colorSpace && parameters.colorSpace !== \"rgb\") {\n var colorspace = colorSpaces[parameters.colorSpace];\n interp = function(a, b) {\n return colorspace.reverse(colorspace.interpolate(colorspace.forward(a), colorspace.forward(b), t));\n };\n }\n if (typeof outputLower.evaluate === \"function\") {\n return {\n evaluate: function evaluate() {\n var args = [], len = arguments.length;\n while (len--)\n args[len] = arguments[len];\n var evaluatedLower = outputLower.evaluate.apply(void 0, args);\n var evaluatedUpper = outputUpper.evaluate.apply(void 0, args);\n if (evaluatedLower === void 0 || evaluatedUpper === void 0) {\n return void 0;\n }\n return interp(evaluatedLower, evaluatedUpper, t);\n }\n };\n }\n return interp(outputLower, outputUpper, t);\n }\n function evaluateIdentityFunction(parameters, propertySpec, input) {\n if (propertySpec.type === \"color\") {\n input = Color2.parse(input);\n } else if (propertySpec.type === \"formatted\") {\n input = Formatted.fromString(input.toString());\n } else if (propertySpec.type === \"resolvedImage\") {\n input = ResolvedImage.fromString(input.toString());\n } else if (getType(input) !== propertySpec.type && (propertySpec.type !== \"enum\" || !propertySpec.values[input])) {\n input = void 0;\n }\n return coalesce(input, parameters.default, propertySpec.default);\n }\n function interpolationFactor(input, base, lowerValue, upperValue) {\n var difference = upperValue - lowerValue;\n var progress = input - lowerValue;\n if (difference === 0) {\n return 0;\n } else if (base === 1) {\n return progress / difference;\n } else {\n return (Math.pow(base, progress) - 1) / (Math.pow(base, difference) - 1);\n }\n }\n var StyleExpression = function StyleExpression2(expression2, propertySpec) {\n this.expression = expression2;\n this._warningHistory = {};\n this._evaluator = new EvaluationContext();\n this._defaultValue = propertySpec ? getDefaultValue(propertySpec) : null;\n this._enumValues = propertySpec && propertySpec.type === \"enum\" ? propertySpec.values : null;\n };\n StyleExpression.prototype.evaluateWithoutErrorHandling = function evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n this._evaluator.globals = globals;\n this._evaluator.feature = feature;\n this._evaluator.featureState = featureState;\n this._evaluator.canonical = canonical;\n this._evaluator.availableImages = availableImages || null;\n this._evaluator.formattedSection = formattedSection;\n return this.expression.evaluate(this._evaluator);\n };\n StyleExpression.prototype.evaluate = function evaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n this._evaluator.globals = globals;\n this._evaluator.feature = feature || null;\n this._evaluator.featureState = featureState || null;\n this._evaluator.canonical = canonical;\n this._evaluator.availableImages = availableImages || null;\n this._evaluator.formattedSection = formattedSection || null;\n try {\n var val = this.expression.evaluate(this._evaluator);\n if (val === null || val === void 0 || typeof val === \"number\" && val !== val) {\n return this._defaultValue;\n }\n if (this._enumValues && !(val in this._enumValues)) {\n throw new RuntimeError(\"Expected value to be one of \" + Object.keys(this._enumValues).map(function(v) {\n return JSON.stringify(v);\n }).join(\", \") + \", but found \" + JSON.stringify(val) + \" instead.\");\n }\n return val;\n } catch (e) {\n if (!this._warningHistory[e.message]) {\n this._warningHistory[e.message] = true;\n if (typeof console !== \"undefined\") {\n console.warn(e.message);\n }\n }\n return this._defaultValue;\n }\n };\n function isExpression(expression2) {\n return Array.isArray(expression2) && expression2.length > 0 && typeof expression2[0] === \"string\" && expression2[0] in expressions;\n }\n function createExpression(expression2, propertySpec) {\n var parser = new ParsingContext(expressions, [], propertySpec ? getExpectedType(propertySpec) : void 0);\n var parsed = parser.parse(expression2, void 0, void 0, void 0, propertySpec && propertySpec.type === \"string\" ? { typeAnnotation: \"coerce\" } : void 0);\n if (!parsed) {\n return error(parser.errors);\n }\n return success(new StyleExpression(parsed, propertySpec));\n }\n var ZoomConstantExpression = function ZoomConstantExpression2(kind, expression2) {\n this.kind = kind;\n this._styleExpression = expression2;\n this.isStateDependent = kind !== \"constant\" && !isStateConstant(expression2.expression);\n };\n ZoomConstantExpression.prototype.evaluateWithoutErrorHandling = function evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n return this._styleExpression.evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection);\n };\n ZoomConstantExpression.prototype.evaluate = function evaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n return this._styleExpression.evaluate(globals, feature, featureState, canonical, availableImages, formattedSection);\n };\n var ZoomDependentExpression = function ZoomDependentExpression2(kind, expression2, zoomStops, interpolationType) {\n this.kind = kind;\n this.zoomStops = zoomStops;\n this._styleExpression = expression2;\n this.isStateDependent = kind !== \"camera\" && !isStateConstant(expression2.expression);\n this.interpolationType = interpolationType;\n };\n ZoomDependentExpression.prototype.evaluateWithoutErrorHandling = function evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n return this._styleExpression.evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection);\n };\n ZoomDependentExpression.prototype.evaluate = function evaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n return this._styleExpression.evaluate(globals, feature, featureState, canonical, availableImages, formattedSection);\n };\n ZoomDependentExpression.prototype.interpolationFactor = function interpolationFactor2(input, lower, upper) {\n if (this.interpolationType) {\n return Interpolate.interpolationFactor(this.interpolationType, input, lower, upper);\n } else {\n return 0;\n }\n };\n function createPropertyExpression(expression2, propertySpec) {\n expression2 = createExpression(expression2, propertySpec);\n if (expression2.result === \"error\") {\n return expression2;\n }\n var parsed = expression2.value.expression;\n var isFeatureConstant$1 = isFeatureConstant(parsed);\n if (!isFeatureConstant$1 && !supportsPropertyExpression(propertySpec)) {\n return error([new ParsingError(\"\", \"data expressions not supported\")]);\n }\n var isZoomConstant = isGlobalPropertyConstant(parsed, [\"zoom\"]);\n if (!isZoomConstant && !supportsZoomExpression(propertySpec)) {\n return error([new ParsingError(\"\", \"zoom expressions not supported\")]);\n }\n var zoomCurve = findZoomCurve(parsed);\n if (!zoomCurve && !isZoomConstant) {\n return error([new ParsingError(\"\", '\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')]);\n } else if (zoomCurve instanceof ParsingError) {\n return error([zoomCurve]);\n } else if (zoomCurve instanceof Interpolate && !supportsInterpolation(propertySpec)) {\n return error([new ParsingError(\"\", '\"interpolate\" expressions cannot be used with this property')]);\n }\n if (!zoomCurve) {\n return success(isFeatureConstant$1 ? new ZoomConstantExpression(\"constant\", expression2.value) : new ZoomConstantExpression(\"source\", expression2.value));\n }\n var interpolationType = zoomCurve instanceof Interpolate ? zoomCurve.interpolation : void 0;\n return success(isFeatureConstant$1 ? new ZoomDependentExpression(\"camera\", expression2.value, zoomCurve.labels, interpolationType) : new ZoomDependentExpression(\"composite\", expression2.value, zoomCurve.labels, interpolationType));\n }\n var StylePropertyFunction = function StylePropertyFunction2(parameters, specification) {\n this._parameters = parameters;\n this._specification = specification;\n extend$1(this, createFunction(this._parameters, this._specification));\n };\n StylePropertyFunction.deserialize = function deserialize2(serialized) {\n return new StylePropertyFunction(serialized._parameters, serialized._specification);\n };\n StylePropertyFunction.serialize = function serialize2(input) {\n return {\n _parameters: input._parameters,\n _specification: input._specification\n };\n };\n function normalizePropertyExpression(value, specification) {\n if (isFunction(value)) {\n return new StylePropertyFunction(value, specification);\n } else if (isExpression(value)) {\n var expression2 = createPropertyExpression(value, specification);\n if (expression2.result === \"error\") {\n throw new Error(expression2.value.map(function(err) {\n return err.key + \": \" + err.message;\n }).join(\", \"));\n }\n return expression2.value;\n } else {\n var constant = value;\n if (typeof value === \"string\" && specification.type === \"color\") {\n constant = Color2.parse(value);\n }\n return {\n kind: \"constant\",\n evaluate: function() {\n return constant;\n }\n };\n }\n }\n function findZoomCurve(expression2) {\n var result = null;\n if (expression2 instanceof Let) {\n result = findZoomCurve(expression2.result);\n } else if (expression2 instanceof Coalesce) {\n for (var i = 0, list = expression2.args; i < list.length; i += 1) {\n var arg = list[i];\n result = findZoomCurve(arg);\n if (result) {\n break;\n }\n }\n } else if ((expression2 instanceof Step || expression2 instanceof Interpolate) && expression2.input instanceof CompoundExpression && expression2.input.name === \"zoom\") {\n result = expression2;\n }\n if (result instanceof ParsingError) {\n return result;\n }\n expression2.eachChild(function(child) {\n var childResult = findZoomCurve(child);\n if (childResult instanceof ParsingError) {\n result = childResult;\n } else if (!result && childResult) {\n result = new ParsingError(\"\", '\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.');\n } else if (result && childResult && result !== childResult) {\n result = new ParsingError(\"\", 'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.');\n }\n });\n return result;\n }\n function getExpectedType(spec2) {\n var types2 = {\n color: ColorType,\n string: StringType,\n number: NumberType,\n enum: StringType,\n boolean: BooleanType,\n formatted: FormattedType,\n resolvedImage: ResolvedImageType\n };\n if (spec2.type === \"array\") {\n return array(types2[spec2.value] || ValueType, spec2.length);\n }\n return types2[spec2.type];\n }\n function getDefaultValue(spec2) {\n if (spec2.type === \"color\" && isFunction(spec2.default)) {\n return new Color2(0, 0, 0, 0);\n } else if (spec2.type === \"color\") {\n return Color2.parse(spec2.default) || null;\n } else if (spec2.default === void 0) {\n return null;\n } else {\n return spec2.default;\n }\n }\n function validateObject(options) {\n var key = options.key;\n var object = options.value;\n var elementSpecs = options.valueSpec || {};\n var elementValidators = options.objectElementValidators || {};\n var style = options.style;\n var styleSpec = options.styleSpec;\n var errors = [];\n var type = getType(object);\n if (type !== \"object\") {\n return [new ValidationError(key, object, \"object expected, \" + type + \" found\")];\n }\n for (var objectKey in object) {\n var elementSpecKey = objectKey.split(\".\")[0];\n var elementSpec = elementSpecs[elementSpecKey] || elementSpecs[\"*\"];\n var validateElement = void 0;\n if (elementValidators[elementSpecKey]) {\n validateElement = elementValidators[elementSpecKey];\n } else if (elementSpecs[elementSpecKey]) {\n validateElement = validate;\n } else if (elementValidators[\"*\"]) {\n validateElement = elementValidators[\"*\"];\n } else if (elementSpecs[\"*\"]) {\n validateElement = validate;\n } else {\n errors.push(new ValidationError(key, object[objectKey], 'unknown property \"' + objectKey + '\"'));\n continue;\n }\n errors = errors.concat(validateElement({\n key: (key ? key + \".\" : key) + objectKey,\n value: object[objectKey],\n valueSpec: elementSpec,\n style,\n styleSpec,\n object,\n objectKey\n }, object));\n }\n for (var elementSpecKey$1 in elementSpecs) {\n if (elementValidators[elementSpecKey$1]) {\n continue;\n }\n if (elementSpecs[elementSpecKey$1].required && elementSpecs[elementSpecKey$1][\"default\"] === void 0 && object[elementSpecKey$1] === void 0) {\n errors.push(new ValidationError(key, object, 'missing required property \"' + elementSpecKey$1 + '\"'));\n }\n }\n return errors;\n }\n function validateArray(options) {\n var array2 = options.value;\n var arraySpec = options.valueSpec;\n var style = options.style;\n var styleSpec = options.styleSpec;\n var key = options.key;\n var validateArrayElement = options.arrayElementValidator || validate;\n if (getType(array2) !== \"array\") {\n return [new ValidationError(key, array2, \"array expected, \" + getType(array2) + \" found\")];\n }\n if (arraySpec.length && array2.length !== arraySpec.length) {\n return [new ValidationError(key, array2, \"array length \" + arraySpec.length + \" expected, length \" + array2.length + \" found\")];\n }\n if (arraySpec[\"min-length\"] && array2.length < arraySpec[\"min-length\"]) {\n return [new ValidationError(key, array2, \"array length at least \" + arraySpec[\"min-length\"] + \" expected, length \" + array2.length + \" found\")];\n }\n var arrayElementSpec = {\n \"type\": arraySpec.value,\n \"values\": arraySpec.values\n };\n if (styleSpec.$version < 7) {\n arrayElementSpec.function = arraySpec.function;\n }\n if (getType(arraySpec.value) === \"object\") {\n arrayElementSpec = arraySpec.value;\n }\n var errors = [];\n for (var i = 0; i < array2.length; i++) {\n errors = errors.concat(validateArrayElement({\n array: array2,\n arrayIndex: i,\n value: array2[i],\n valueSpec: arrayElementSpec,\n style,\n styleSpec,\n key: key + \"[\" + i + \"]\"\n }));\n }\n return errors;\n }\n function validateNumber(options) {\n var key = options.key;\n var value = options.value;\n var valueSpec = options.valueSpec;\n var type = getType(value);\n if (type === \"number\" && value !== value) {\n type = \"NaN\";\n }\n if (type !== \"number\") {\n return [new ValidationError(key, value, \"number expected, \" + type + \" found\")];\n }\n if (\"minimum\" in valueSpec && value < valueSpec.minimum) {\n return [new ValidationError(key, value, value + \" is less than the minimum value \" + valueSpec.minimum)];\n }\n if (\"maximum\" in valueSpec && value > valueSpec.maximum) {\n return [new ValidationError(key, value, value + \" is greater than the maximum value \" + valueSpec.maximum)];\n }\n return [];\n }\n function validateFunction(options) {\n var functionValueSpec = options.valueSpec;\n var functionType = unbundle(options.value.type);\n var stopKeyType;\n var stopDomainValues = {};\n var previousStopDomainValue;\n var previousStopDomainZoom;\n var isZoomFunction = functionType !== \"categorical\" && options.value.property === void 0;\n var isPropertyFunction = !isZoomFunction;\n var isZoomAndPropertyFunction = getType(options.value.stops) === \"array\" && getType(options.value.stops[0]) === \"array\" && getType(options.value.stops[0][0]) === \"object\";\n var errors = validateObject({\n key: options.key,\n value: options.value,\n valueSpec: options.styleSpec.function,\n style: options.style,\n styleSpec: options.styleSpec,\n objectElementValidators: {\n stops: validateFunctionStops,\n default: validateFunctionDefault\n }\n });\n if (functionType === \"identity\" && isZoomFunction) {\n errors.push(new ValidationError(options.key, options.value, 'missing required property \"property\"'));\n }\n if (functionType !== \"identity\" && !options.value.stops) {\n errors.push(new ValidationError(options.key, options.value, 'missing required property \"stops\"'));\n }\n if (functionType === \"exponential\" && options.valueSpec.expression && !supportsInterpolation(options.valueSpec)) {\n errors.push(new ValidationError(options.key, options.value, \"exponential functions not supported\"));\n }\n if (options.styleSpec.$version >= 8) {\n if (isPropertyFunction && !supportsPropertyExpression(options.valueSpec)) {\n errors.push(new ValidationError(options.key, options.value, \"property functions not supported\"));\n } else if (isZoomFunction && !supportsZoomExpression(options.valueSpec)) {\n errors.push(new ValidationError(options.key, options.value, \"zoom functions not supported\"));\n }\n }\n if ((functionType === \"categorical\" || isZoomAndPropertyFunction) && options.value.property === void 0) {\n errors.push(new ValidationError(options.key, options.value, '\"property\" property is required'));\n }\n return errors;\n function validateFunctionStops(options2) {\n if (functionType === \"identity\") {\n return [new ValidationError(options2.key, options2.value, 'identity function may not have a \"stops\" property')];\n }\n var errors2 = [];\n var value = options2.value;\n errors2 = errors2.concat(validateArray({\n key: options2.key,\n value,\n valueSpec: options2.valueSpec,\n style: options2.style,\n styleSpec: options2.styleSpec,\n arrayElementValidator: validateFunctionStop\n }));\n if (getType(value) === \"array\" && value.length === 0) {\n errors2.push(new ValidationError(options2.key, value, \"array must have at least one stop\"));\n }\n return errors2;\n }\n function validateFunctionStop(options2) {\n var errors2 = [];\n var value = options2.value;\n var key = options2.key;\n if (getType(value) !== \"array\") {\n return [new ValidationError(key, value, \"array expected, \" + getType(value) + \" found\")];\n }\n if (value.length !== 2) {\n return [new ValidationError(key, value, \"array length 2 expected, length \" + value.length + \" found\")];\n }\n if (isZoomAndPropertyFunction) {\n if (getType(value[0]) !== \"object\") {\n return [new ValidationError(key, value, \"object expected, \" + getType(value[0]) + \" found\")];\n }\n if (value[0].zoom === void 0) {\n return [new ValidationError(key, value, \"object stop key must have zoom\")];\n }\n if (value[0].value === void 0) {\n return [new ValidationError(key, value, \"object stop key must have value\")];\n }\n if (previousStopDomainZoom && previousStopDomainZoom > unbundle(value[0].zoom)) {\n return [new ValidationError(key, value[0].zoom, \"stop zoom values must appear in ascending order\")];\n }\n if (unbundle(value[0].zoom) !== previousStopDomainZoom) {\n previousStopDomainZoom = unbundle(value[0].zoom);\n previousStopDomainValue = void 0;\n stopDomainValues = {};\n }\n errors2 = errors2.concat(validateObject({\n key: key + \"[0]\",\n value: value[0],\n valueSpec: { zoom: {} },\n style: options2.style,\n styleSpec: options2.styleSpec,\n objectElementValidators: {\n zoom: validateNumber,\n value: validateStopDomainValue\n }\n }));\n } else {\n errors2 = errors2.concat(validateStopDomainValue({\n key: key + \"[0]\",\n value: value[0],\n valueSpec: {},\n style: options2.style,\n styleSpec: options2.styleSpec\n }, value));\n }\n if (isExpression(deepUnbundle(value[1]))) {\n return errors2.concat([new ValidationError(key + \"[1]\", value[1], \"expressions are not allowed in function stops.\")]);\n }\n return errors2.concat(validate({\n key: key + \"[1]\",\n value: value[1],\n valueSpec: functionValueSpec,\n style: options2.style,\n styleSpec: options2.styleSpec\n }));\n }\n function validateStopDomainValue(options2, stop) {\n var type = getType(options2.value);\n var value = unbundle(options2.value);\n var reportValue = options2.value !== null ? options2.value : stop;\n if (!stopKeyType) {\n stopKeyType = type;\n } else if (type !== stopKeyType) {\n return [new ValidationError(options2.key, reportValue, type + \" stop domain type must match previous stop domain type \" + stopKeyType)];\n }\n if (type !== \"number\" && type !== \"string\" && type !== \"boolean\") {\n return [new ValidationError(options2.key, reportValue, \"stop domain value must be a number, string, or boolean\")];\n }\n if (type !== \"number\" && functionType !== \"categorical\") {\n var message = \"number expected, \" + type + \" found\";\n if (supportsPropertyExpression(functionValueSpec) && functionType === void 0) {\n message += '\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.';\n }\n return [new ValidationError(options2.key, reportValue, message)];\n }\n if (functionType === \"categorical\" && type === \"number\" && (!isFinite(value) || Math.floor(value) !== value)) {\n return [new ValidationError(options2.key, reportValue, \"integer expected, found \" + value)];\n }\n if (functionType !== \"categorical\" && type === \"number\" && previousStopDomainValue !== void 0 && value < previousStopDomainValue) {\n return [new ValidationError(options2.key, reportValue, \"stop domain values must appear in ascending order\")];\n } else {\n previousStopDomainValue = value;\n }\n if (functionType === \"categorical\" && value in stopDomainValues) {\n return [new ValidationError(options2.key, reportValue, \"stop domain values must be unique\")];\n } else {\n stopDomainValues[value] = true;\n }\n return [];\n }\n function validateFunctionDefault(options2) {\n return validate({\n key: options2.key,\n value: options2.value,\n valueSpec: functionValueSpec,\n style: options2.style,\n styleSpec: options2.styleSpec\n });\n }\n }\n function validateExpression(options) {\n var expression2 = (options.expressionContext === \"property\" ? createPropertyExpression : createExpression)(deepUnbundle(options.value), options.valueSpec);\n if (expression2.result === \"error\") {\n return expression2.value.map(function(error2) {\n return new ValidationError(\"\" + options.key + error2.key, options.value, error2.message);\n });\n }\n var expressionObj = expression2.value.expression || expression2.value._styleExpression.expression;\n if (options.expressionContext === \"property\" && options.propertyKey === \"text-font\" && !expressionObj.outputDefined()) {\n return [new ValidationError(options.key, options.value, 'Invalid data expression for \"' + options.propertyKey + '\". Output values must be contained as literals within the expression.')];\n }\n if (options.expressionContext === \"property\" && options.propertyType === \"layout\" && !isStateConstant(expressionObj)) {\n return [new ValidationError(options.key, options.value, '\"feature-state\" data expressions are not supported with layout properties.')];\n }\n if (options.expressionContext === \"filter\" && !isStateConstant(expressionObj)) {\n return [new ValidationError(options.key, options.value, '\"feature-state\" data expressions are not supported with filters.')];\n }\n if (options.expressionContext && options.expressionContext.indexOf(\"cluster\") === 0) {\n if (!isGlobalPropertyConstant(expressionObj, [\n \"zoom\",\n \"feature-state\"\n ])) {\n return [new ValidationError(options.key, options.value, '\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];\n }\n if (options.expressionContext === \"cluster-initial\" && !isFeatureConstant(expressionObj)) {\n return [new ValidationError(options.key, options.value, \"Feature data expressions are not supported with initial expression part of cluster properties.\")];\n }\n }\n return [];\n }\n function validateBoolean(options) {\n var value = options.value;\n var key = options.key;\n var type = getType(value);\n if (type !== \"boolean\") {\n return [new ValidationError(key, value, \"boolean expected, \" + type + \" found\")];\n }\n return [];\n }\n function validateColor(options) {\n var key = options.key;\n var value = options.value;\n var type = getType(value);\n if (type !== \"string\") {\n return [new ValidationError(key, value, \"color expected, \" + type + \" found\")];\n }\n if (csscolorparser_1(value) === null) {\n return [new ValidationError(key, value, 'color expected, \"' + value + '\" found')];\n }\n return [];\n }\n function validateEnum(options) {\n var key = options.key;\n var value = options.value;\n var valueSpec = options.valueSpec;\n var errors = [];\n if (Array.isArray(valueSpec.values)) {\n if (valueSpec.values.indexOf(unbundle(value)) === -1) {\n errors.push(new ValidationError(key, value, \"expected one of [\" + valueSpec.values.join(\", \") + \"], \" + JSON.stringify(value) + \" found\"));\n }\n } else {\n if (Object.keys(valueSpec.values).indexOf(unbundle(value)) === -1) {\n errors.push(new ValidationError(key, value, \"expected one of [\" + Object.keys(valueSpec.values).join(\", \") + \"], \" + JSON.stringify(value) + \" found\"));\n }\n }\n return errors;\n }\n function isExpressionFilter(filter2) {\n if (filter2 === true || filter2 === false) {\n return true;\n }\n if (!Array.isArray(filter2) || filter2.length === 0) {\n return false;\n }\n switch (filter2[0]) {\n case \"has\":\n return filter2.length >= 2 && filter2[1] !== \"$id\" && filter2[1] !== \"$type\";\n case \"in\":\n return filter2.length >= 3 && (typeof filter2[1] !== \"string\" || Array.isArray(filter2[2]));\n case \"!in\":\n case \"!has\":\n case \"none\":\n return false;\n case \"==\":\n case \"!=\":\n case \">\":\n case \">=\":\n case \"<\":\n case \"<=\":\n return filter2.length !== 3 || (Array.isArray(filter2[1]) || Array.isArray(filter2[2]));\n case \"any\":\n case \"all\":\n for (var i = 0, list = filter2.slice(1); i < list.length; i += 1) {\n var f = list[i];\n if (!isExpressionFilter(f) && typeof f !== \"boolean\") {\n return false;\n }\n }\n return true;\n default:\n return true;\n }\n }\n var filterSpec = {\n \"type\": \"boolean\",\n \"default\": false,\n \"transition\": false,\n \"property-type\": \"data-driven\",\n \"expression\": {\n \"interpolated\": false,\n \"parameters\": [\n \"zoom\",\n \"feature\"\n ]\n }\n };\n function createFilter(filter2) {\n if (filter2 === null || filter2 === void 0) {\n return {\n filter: function() {\n return true;\n },\n needGeometry: false\n };\n }\n if (!isExpressionFilter(filter2)) {\n filter2 = convertFilter(filter2);\n }\n var compiled = createExpression(filter2, filterSpec);\n if (compiled.result === \"error\") {\n throw new Error(compiled.value.map(function(err) {\n return err.key + \": \" + err.message;\n }).join(\", \"));\n } else {\n var needGeometry = geometryNeeded(filter2);\n return {\n filter: function(globalProperties, feature, canonical) {\n return compiled.value.evaluate(globalProperties, feature, {}, canonical);\n },\n needGeometry\n };\n }\n }\n function compare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }\n function geometryNeeded(filter2) {\n if (!Array.isArray(filter2)) {\n return false;\n }\n if (filter2[0] === \"within\") {\n return true;\n }\n for (var index = 1; index < filter2.length; index++) {\n if (geometryNeeded(filter2[index])) {\n return true;\n }\n }\n return false;\n }\n function convertFilter(filter2) {\n if (!filter2) {\n return true;\n }\n var op = filter2[0];\n if (filter2.length <= 1) {\n return op !== \"any\";\n }\n var converted = op === \"==\" ? convertComparisonOp(filter2[1], filter2[2], \"==\") : op === \"!=\" ? convertNegation(convertComparisonOp(filter2[1], filter2[2], \"==\")) : op === \"<\" || op === \">\" || op === \"<=\" || op === \">=\" ? convertComparisonOp(filter2[1], filter2[2], op) : op === \"any\" ? convertDisjunctionOp(filter2.slice(1)) : op === \"all\" ? [\"all\"].concat(filter2.slice(1).map(convertFilter)) : op === \"none\" ? [\"all\"].concat(filter2.slice(1).map(convertFilter).map(convertNegation)) : op === \"in\" ? convertInOp(filter2[1], filter2.slice(2)) : op === \"!in\" ? convertNegation(convertInOp(filter2[1], filter2.slice(2))) : op === \"has\" ? convertHasOp(filter2[1]) : op === \"!has\" ? convertNegation(convertHasOp(filter2[1])) : op === \"within\" ? filter2 : true;\n return converted;\n }\n function convertComparisonOp(property, value, op) {\n switch (property) {\n case \"$type\":\n return [\n \"filter-type-\" + op,\n value\n ];\n case \"$id\":\n return [\n \"filter-id-\" + op,\n value\n ];\n default:\n return [\n \"filter-\" + op,\n property,\n value\n ];\n }\n }\n function convertDisjunctionOp(filters) {\n return [\"any\"].concat(filters.map(convertFilter));\n }\n function convertInOp(property, values2) {\n if (values2.length === 0) {\n return false;\n }\n switch (property) {\n case \"$type\":\n return [\n \"filter-type-in\",\n [\n \"literal\",\n values2\n ]\n ];\n case \"$id\":\n return [\n \"filter-id-in\",\n [\n \"literal\",\n values2\n ]\n ];\n default:\n if (values2.length > 200 && !values2.some(function(v) {\n return typeof v !== typeof values2[0];\n })) {\n return [\n \"filter-in-large\",\n property,\n [\n \"literal\",\n values2.sort(compare)\n ]\n ];\n } else {\n return [\n \"filter-in-small\",\n property,\n [\n \"literal\",\n values2\n ]\n ];\n }\n }\n }\n function convertHasOp(property) {\n switch (property) {\n case \"$type\":\n return true;\n case \"$id\":\n return [\"filter-has-id\"];\n default:\n return [\n \"filter-has\",\n property\n ];\n }\n }\n function convertNegation(filter2) {\n return [\n \"!\",\n filter2\n ];\n }\n function validateFilter(options) {\n if (isExpressionFilter(deepUnbundle(options.value))) {\n return validateExpression(extend$1({}, options, {\n expressionContext: \"filter\",\n valueSpec: { value: \"boolean\" }\n }));\n } else {\n return validateNonExpressionFilter(options);\n }\n }\n function validateNonExpressionFilter(options) {\n var value = options.value;\n var key = options.key;\n if (getType(value) !== \"array\") {\n return [new ValidationError(key, value, \"array expected, \" + getType(value) + \" found\")];\n }\n var styleSpec = options.styleSpec;\n var type;\n var errors = [];\n if (value.length < 1) {\n return [new ValidationError(key, value, \"filter array must have at least 1 element\")];\n }\n errors = errors.concat(validateEnum({\n key: key + \"[0]\",\n value: value[0],\n valueSpec: styleSpec.filter_operator,\n style: options.style,\n styleSpec: options.styleSpec\n }));\n switch (unbundle(value[0])) {\n case \"<\":\n case \"<=\":\n case \">\":\n case \">=\":\n if (value.length >= 2 && unbundle(value[1]) === \"$type\") {\n errors.push(new ValidationError(key, value, '\"$type\" cannot be use with operator \"' + value[0] + '\"'));\n }\n case \"==\":\n case \"!=\":\n if (value.length !== 3) {\n errors.push(new ValidationError(key, value, 'filter array for operator \"' + value[0] + '\" must have 3 elements'));\n }\n case \"in\":\n case \"!in\":\n if (value.length >= 2) {\n type = getType(value[1]);\n if (type !== \"string\") {\n errors.push(new ValidationError(key + \"[1]\", value[1], \"string expected, \" + type + \" found\"));\n }\n }\n for (var i = 2; i < value.length; i++) {\n type = getType(value[i]);\n if (unbundle(value[1]) === \"$type\") {\n errors = errors.concat(validateEnum({\n key: key + \"[\" + i + \"]\",\n value: value[i],\n valueSpec: styleSpec.geometry_type,\n style: options.style,\n styleSpec: options.styleSpec\n }));\n } else if (type !== \"string\" && type !== \"number\" && type !== \"boolean\") {\n errors.push(new ValidationError(key + \"[\" + i + \"]\", value[i], \"string, number, or boolean expected, \" + type + \" found\"));\n }\n }\n break;\n case \"any\":\n case \"all\":\n case \"none\":\n for (var i$1 = 1; i$1 < value.length; i$1++) {\n errors = errors.concat(validateNonExpressionFilter({\n key: key + \"[\" + i$1 + \"]\",\n value: value[i$1],\n style: options.style,\n styleSpec: options.styleSpec\n }));\n }\n break;\n case \"has\":\n case \"!has\":\n type = getType(value[1]);\n if (value.length !== 2) {\n errors.push(new ValidationError(key, value, 'filter array for \"' + value[0] + '\" operator must have 2 elements'));\n } else if (type !== \"string\") {\n errors.push(new ValidationError(key + \"[1]\", value[1], \"string expected, \" + type + \" found\"));\n }\n break;\n case \"within\":\n type = getType(value[1]);\n if (value.length !== 2) {\n errors.push(new ValidationError(key, value, 'filter array for \"' + value[0] + '\" operator must have 2 elements'));\n } else if (type !== \"object\") {\n errors.push(new ValidationError(key + \"[1]\", value[1], \"object expected, \" + type + \" found\"));\n }\n break;\n }\n return errors;\n }\n function validateProperty(options, propertyType) {\n var key = options.key;\n var style = options.style;\n var styleSpec = options.styleSpec;\n var value = options.value;\n var propertyKey = options.objectKey;\n var layerSpec = styleSpec[propertyType + \"_\" + options.layerType];\n if (!layerSpec) {\n return [];\n }\n var transitionMatch = propertyKey.match(/^(.*)-transition$/);\n if (propertyType === \"paint\" && transitionMatch && layerSpec[transitionMatch[1]] && layerSpec[transitionMatch[1]].transition) {\n return validate({\n key,\n value,\n valueSpec: styleSpec.transition,\n style,\n styleSpec\n });\n }\n var valueSpec = options.valueSpec || layerSpec[propertyKey];\n if (!valueSpec) {\n return [new ValidationError(key, value, 'unknown property \"' + propertyKey + '\"')];\n }\n var tokenMatch;\n if (getType(value) === \"string\" && supportsPropertyExpression(valueSpec) && !valueSpec.tokens && (tokenMatch = /^{([^}]+)}$/.exec(value))) {\n return [new ValidationError(key, value, '\"' + propertyKey + '\" does not support interpolation syntax\\nUse an identity property function instead: `{ \"type\": \"identity\", \"property\": ' + JSON.stringify(tokenMatch[1]) + \" }`.\")];\n }\n var errors = [];\n if (options.layerType === \"symbol\") {\n if (propertyKey === \"text-field\" && style && !style.glyphs) {\n errors.push(new ValidationError(key, value, 'use of \"text-field\" requires a style \"glyphs\" property'));\n }\n if (propertyKey === \"text-font\" && isFunction(deepUnbundle(value)) && unbundle(value.type) === \"identity\") {\n errors.push(new ValidationError(key, value, '\"text-font\" does not support identity functions'));\n }\n }\n return errors.concat(validate({\n key: options.key,\n value,\n valueSpec,\n style,\n styleSpec,\n expressionContext: \"property\",\n propertyType,\n propertyKey\n }));\n }\n function validatePaintProperty(options) {\n return validateProperty(options, \"paint\");\n }\n function validateLayoutProperty(options) {\n return validateProperty(options, \"layout\");\n }\n function validateLayer(options) {\n var errors = [];\n var layer2 = options.value;\n var key = options.key;\n var style = options.style;\n var styleSpec = options.styleSpec;\n if (!layer2.type && !layer2.ref) {\n errors.push(new ValidationError(key, layer2, 'either \"type\" or \"ref\" is required'));\n }\n var type = unbundle(layer2.type);\n var ref = unbundle(layer2.ref);\n if (layer2.id) {\n var layerId = unbundle(layer2.id);\n for (var i = 0; i < options.arrayIndex; i++) {\n var otherLayer = style.layers[i];\n if (unbundle(otherLayer.id) === layerId) {\n errors.push(new ValidationError(key, layer2.id, 'duplicate layer id \"' + layer2.id + '\", previously used at line ' + otherLayer.id.__line__));\n }\n }\n }\n if (\"ref\" in layer2) {\n [\n \"type\",\n \"source\",\n \"source-layer\",\n \"filter\",\n \"layout\"\n ].forEach(function(p) {\n if (p in layer2) {\n errors.push(new ValidationError(key, layer2[p], '\"' + p + '\" is prohibited for ref layers'));\n }\n });\n var parent;\n style.layers.forEach(function(layer3) {\n if (unbundle(layer3.id) === ref) {\n parent = layer3;\n }\n });\n if (!parent) {\n errors.push(new ValidationError(key, layer2.ref, 'ref layer \"' + ref + '\" not found'));\n } else if (parent.ref) {\n errors.push(new ValidationError(key, layer2.ref, \"ref cannot reference another ref layer\"));\n } else {\n type = unbundle(parent.type);\n }\n } else if (type !== \"background\") {\n if (!layer2.source) {\n errors.push(new ValidationError(key, layer2, 'missing required property \"source\"'));\n } else {\n var source2 = style.sources && style.sources[layer2.source];\n var sourceType = source2 && unbundle(source2.type);\n if (!source2) {\n errors.push(new ValidationError(key, layer2.source, 'source \"' + layer2.source + '\" not found'));\n } else if (sourceType === \"vector\" && type === \"raster\") {\n errors.push(new ValidationError(key, layer2.source, 'layer \"' + layer2.id + '\" requires a raster source'));\n } else if (sourceType === \"raster\" && type !== \"raster\") {\n errors.push(new ValidationError(key, layer2.source, 'layer \"' + layer2.id + '\" requires a vector source'));\n } else if (sourceType === \"vector\" && !layer2[\"source-layer\"]) {\n errors.push(new ValidationError(key, layer2, 'layer \"' + layer2.id + '\" must specify a \"source-layer\"'));\n } else if (sourceType === \"raster-dem\" && type !== \"hillshade\") {\n errors.push(new ValidationError(key, layer2.source, \"raster-dem source can only be used with layer type 'hillshade'.\"));\n } else if (type === \"line\" && layer2.paint && layer2.paint[\"line-gradient\"] && (sourceType !== \"geojson\" || !source2.lineMetrics)) {\n errors.push(new ValidationError(key, layer2, 'layer \"' + layer2.id + '\" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.'));\n }\n }\n }\n errors = errors.concat(validateObject({\n key,\n value: layer2,\n valueSpec: styleSpec.layer,\n style: options.style,\n styleSpec: options.styleSpec,\n objectElementValidators: {\n \"*\": function _() {\n return [];\n },\n type: function type2() {\n return validate({\n key: key + \".type\",\n value: layer2.type,\n valueSpec: styleSpec.layer.type,\n style: options.style,\n styleSpec: options.styleSpec,\n object: layer2,\n objectKey: \"type\"\n });\n },\n filter: validateFilter,\n layout: function layout2(options2) {\n return validateObject({\n layer: layer2,\n key: options2.key,\n value: options2.value,\n style: options2.style,\n styleSpec: options2.styleSpec,\n objectElementValidators: {\n \"*\": function _(options3) {\n return validateLayoutProperty(extend$1({ layerType: type }, options3));\n }\n }\n });\n },\n paint: function paint2(options2) {\n return validateObject({\n layer: layer2,\n key: options2.key,\n value: options2.value,\n style: options2.style,\n styleSpec: options2.styleSpec,\n objectElementValidators: {\n \"*\": function _(options3) {\n return validatePaintProperty(extend$1({ layerType: type }, options3));\n }\n }\n });\n }\n }\n }));\n return errors;\n }\n function validateString(options) {\n var value = options.value;\n var key = options.key;\n var type = getType(value);\n if (type !== \"string\") {\n return [new ValidationError(key, value, \"string expected, \" + type + \" found\")];\n }\n return [];\n }\n var objectElementValidators = { promoteId: validatePromoteId };\n function validateSource(options) {\n var value = options.value;\n var key = options.key;\n var styleSpec = options.styleSpec;\n var style = options.style;\n if (!value.type) {\n return [new ValidationError(key, value, '\"type\" is required')];\n }\n var type = unbundle(value.type);\n var errors;\n switch (type) {\n case \"vector\":\n case \"raster\":\n case \"raster-dem\":\n errors = validateObject({\n key,\n value,\n valueSpec: styleSpec[\"source_\" + type.replace(\"-\", \"_\")],\n style: options.style,\n styleSpec,\n objectElementValidators\n });\n return errors;\n case \"geojson\":\n errors = validateObject({\n key,\n value,\n valueSpec: styleSpec.source_geojson,\n style,\n styleSpec,\n objectElementValidators\n });\n if (value.cluster) {\n for (var prop in value.clusterProperties) {\n var ref = value.clusterProperties[prop];\n var operator = ref[0];\n var mapExpr = ref[1];\n var reduceExpr = typeof operator === \"string\" ? [\n operator,\n [\"accumulated\"],\n [\n \"get\",\n prop\n ]\n ] : operator;\n errors.push.apply(errors, validateExpression({\n key: key + \".\" + prop + \".map\",\n value: mapExpr,\n expressionContext: \"cluster-map\"\n }));\n errors.push.apply(errors, validateExpression({\n key: key + \".\" + prop + \".reduce\",\n value: reduceExpr,\n expressionContext: \"cluster-reduce\"\n }));\n }\n }\n return errors;\n case \"video\":\n return validateObject({\n key,\n value,\n valueSpec: styleSpec.source_video,\n style,\n styleSpec\n });\n case \"image\":\n return validateObject({\n key,\n value,\n valueSpec: styleSpec.source_image,\n style,\n styleSpec\n });\n case \"canvas\":\n return [new ValidationError(key, null, \"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\", \"source.canvas\")];\n default:\n return validateEnum({\n key: key + \".type\",\n value: value.type,\n valueSpec: {\n values: [\n \"vector\",\n \"raster\",\n \"raster-dem\",\n \"geojson\",\n \"video\",\n \"image\"\n ]\n },\n style,\n styleSpec\n });\n }\n }\n function validatePromoteId(ref) {\n var key = ref.key;\n var value = ref.value;\n if (getType(value) === \"string\") {\n return validateString({\n key,\n value\n });\n } else {\n var errors = [];\n for (var prop in value) {\n errors.push.apply(errors, validateString({\n key: key + \".\" + prop,\n value: value[prop]\n }));\n }\n return errors;\n }\n }\n function validateLight(options) {\n var light2 = options.value;\n var styleSpec = options.styleSpec;\n var lightSpec = styleSpec.light;\n var style = options.style;\n var errors = [];\n var rootType = getType(light2);\n if (light2 === void 0) {\n return errors;\n } else if (rootType !== \"object\") {\n errors = errors.concat([new ValidationError(\"light\", light2, \"object expected, \" + rootType + \" found\")]);\n return errors;\n }\n for (var key in light2) {\n var transitionMatch = key.match(/^(.*)-transition$/);\n if (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) {\n errors = errors.concat(validate({\n key,\n value: light2[key],\n valueSpec: styleSpec.transition,\n style,\n styleSpec\n }));\n } else if (lightSpec[key]) {\n errors = errors.concat(validate({\n key,\n value: light2[key],\n valueSpec: lightSpec[key],\n style,\n styleSpec\n }));\n } else {\n errors = errors.concat([new ValidationError(key, light2[key], 'unknown property \"' + key + '\"')]);\n }\n }\n return errors;\n }\n function validateFormatted(options) {\n if (validateString(options).length === 0) {\n return [];\n }\n return validateExpression(options);\n }\n function validateImage(options) {\n if (validateString(options).length === 0) {\n return [];\n }\n return validateExpression(options);\n }\n var VALIDATORS = {\n \"*\": function _() {\n return [];\n },\n \"array\": validateArray,\n \"boolean\": validateBoolean,\n \"number\": validateNumber,\n \"color\": validateColor,\n \"constants\": validateConstants,\n \"enum\": validateEnum,\n \"filter\": validateFilter,\n \"function\": validateFunction,\n \"layer\": validateLayer,\n \"object\": validateObject,\n \"source\": validateSource,\n \"light\": validateLight,\n \"string\": validateString,\n \"formatted\": validateFormatted,\n \"resolvedImage\": validateImage\n };\n function validate(options) {\n var value = options.value;\n var valueSpec = options.valueSpec;\n var styleSpec = options.styleSpec;\n if (valueSpec.expression && isFunction(unbundle(value))) {\n return validateFunction(options);\n } else if (valueSpec.expression && isExpression(deepUnbundle(value))) {\n return validateExpression(options);\n } else if (valueSpec.type && VALIDATORS[valueSpec.type]) {\n return VALIDATORS[valueSpec.type](options);\n } else {\n var valid = validateObject(extend$1({}, options, { valueSpec: valueSpec.type ? styleSpec[valueSpec.type] : valueSpec }));\n return valid;\n }\n }\n function validateGlyphsURL(options) {\n var value = options.value;\n var key = options.key;\n var errors = validateString(options);\n if (errors.length) {\n return errors;\n }\n if (value.indexOf(\"{fontstack}\") === -1) {\n errors.push(new ValidationError(key, value, '\"glyphs\" url must include a \"{fontstack}\" token'));\n }\n if (value.indexOf(\"{range}\") === -1) {\n errors.push(new ValidationError(key, value, '\"glyphs\" url must include a \"{range}\" token'));\n }\n return errors;\n }\n function validateStyleMin(style, styleSpec) {\n if (styleSpec === void 0)\n styleSpec = spec;\n var errors = [];\n errors = errors.concat(validate({\n key: \"\",\n value: style,\n valueSpec: styleSpec.$root,\n styleSpec,\n style,\n objectElementValidators: {\n glyphs: validateGlyphsURL,\n \"*\": function _() {\n return [];\n }\n }\n }));\n if (style.constants) {\n errors = errors.concat(validateConstants({\n key: \"constants\",\n value: style.constants,\n style,\n styleSpec\n }));\n }\n return sortErrors(errors);\n }\n validateStyleMin.source = wrapCleanErrors(validateSource);\n validateStyleMin.light = wrapCleanErrors(validateLight);\n validateStyleMin.layer = wrapCleanErrors(validateLayer);\n validateStyleMin.filter = wrapCleanErrors(validateFilter);\n validateStyleMin.paintProperty = wrapCleanErrors(validatePaintProperty);\n validateStyleMin.layoutProperty = wrapCleanErrors(validateLayoutProperty);\n function sortErrors(errors) {\n return [].concat(errors).sort(function(a, b) {\n return a.line - b.line;\n });\n }\n function wrapCleanErrors(inner) {\n return function() {\n var args = [], len = arguments.length;\n while (len--)\n args[len] = arguments[len];\n return sortErrors(inner.apply(this, args));\n };\n }\n var validateStyle = validateStyleMin;\n var validateLight$1 = validateStyle.light;\n var validatePaintProperty$1 = validateStyle.paintProperty;\n var validateLayoutProperty$1 = validateStyle.layoutProperty;\n function emitValidationErrors(emitter, errors) {\n var hasErrors = false;\n if (errors && errors.length) {\n for (var i = 0, list = errors; i < list.length; i += 1) {\n var error2 = list[i];\n emitter.fire(new ErrorEvent(new Error(error2.message)));\n hasErrors = true;\n }\n }\n return hasErrors;\n }\n var gridIndex = GridIndex;\n var NUM_PARAMS = 3;\n function GridIndex(extent, n, padding) {\n var cells = this.cells = [];\n if (extent instanceof ArrayBuffer) {\n this.arrayBuffer = extent;\n var array2 = new Int32Array(this.arrayBuffer);\n extent = array2[0];\n n = array2[1];\n padding = array2[2];\n this.d = n + 2 * padding;\n for (var k = 0; k < this.d * this.d; k++) {\n var start = array2[NUM_PARAMS + k];\n var end = array2[NUM_PARAMS + k + 1];\n cells.push(start === end ? null : array2.subarray(start, end));\n }\n var keysOffset = array2[NUM_PARAMS + cells.length];\n var bboxesOffset = array2[NUM_PARAMS + cells.length + 1];\n this.keys = array2.subarray(keysOffset, bboxesOffset);\n this.bboxes = array2.subarray(bboxesOffset);\n this.insert = this._insertReadonly;\n } else {\n this.d = n + 2 * padding;\n for (var i = 0; i < this.d * this.d; i++) {\n cells.push([]);\n }\n this.keys = [];\n this.bboxes = [];\n }\n this.n = n;\n this.extent = extent;\n this.padding = padding;\n this.scale = n / extent;\n this.uid = 0;\n var p = padding / n * extent;\n this.min = -p;\n this.max = extent + p;\n }\n GridIndex.prototype.insert = function(key, x1, y1, x2, y2) {\n this._forEachCell(x1, y1, x2, y2, this._insertCell, this.uid++);\n this.keys.push(key);\n this.bboxes.push(x1);\n this.bboxes.push(y1);\n this.bboxes.push(x2);\n this.bboxes.push(y2);\n };\n GridIndex.prototype._insertReadonly = function() {\n throw \"Cannot insert into a GridIndex created from an ArrayBuffer.\";\n };\n GridIndex.prototype._insertCell = function(x1, y1, x2, y2, cellIndex, uid) {\n this.cells[cellIndex].push(uid);\n };\n GridIndex.prototype.query = function(x1, y1, x2, y2, intersectionTest) {\n var min = this.min;\n var max = this.max;\n if (x1 <= min && y1 <= min && max <= x2 && max <= y2 && !intersectionTest) {\n return Array.prototype.slice.call(this.keys);\n } else {\n var result = [];\n var seenUids = {};\n this._forEachCell(x1, y1, x2, y2, this._queryCell, result, seenUids, intersectionTest);\n return result;\n }\n };\n GridIndex.prototype._queryCell = function(x1, y1, x2, y2, cellIndex, result, seenUids, intersectionTest) {\n var cell = this.cells[cellIndex];\n if (cell !== null) {\n var keys = this.keys;\n var bboxes = this.bboxes;\n for (var u = 0; u < cell.length; u++) {\n var uid = cell[u];\n if (seenUids[uid] === void 0) {\n var offset = uid * 4;\n if (intersectionTest ? intersectionTest(bboxes[offset + 0], bboxes[offset + 1], bboxes[offset + 2], bboxes[offset + 3]) : x1 <= bboxes[offset + 2] && y1 <= bboxes[offset + 3] && x2 >= bboxes[offset + 0] && y2 >= bboxes[offset + 1]) {\n seenUids[uid] = true;\n result.push(keys[uid]);\n } else {\n seenUids[uid] = false;\n }\n }\n }\n }\n };\n GridIndex.prototype._forEachCell = function(x1, y1, x2, y2, fn, arg1, arg2, intersectionTest) {\n var cx1 = this._convertToCellCoord(x1);\n var cy1 = this._convertToCellCoord(y1);\n var cx2 = this._convertToCellCoord(x2);\n var cy2 = this._convertToCellCoord(y2);\n for (var x = cx1; x <= cx2; x++) {\n for (var y = cy1; y <= cy2; y++) {\n var cellIndex = this.d * y + x;\n if (intersectionTest && !intersectionTest(this._convertFromCellCoord(x), this._convertFromCellCoord(y), this._convertFromCellCoord(x + 1), this._convertFromCellCoord(y + 1))) {\n continue;\n }\n if (fn.call(this, x1, y1, x2, y2, cellIndex, arg1, arg2, intersectionTest)) {\n return;\n }\n }\n }\n };\n GridIndex.prototype._convertFromCellCoord = function(x) {\n return (x - this.padding) / this.scale;\n };\n GridIndex.prototype._convertToCellCoord = function(x) {\n return Math.max(0, Math.min(this.d - 1, Math.floor(x * this.scale) + this.padding));\n };\n GridIndex.prototype.toArrayBuffer = function() {\n if (this.arrayBuffer) {\n return this.arrayBuffer;\n }\n var cells = this.cells;\n var metadataLength = NUM_PARAMS + this.cells.length + 1 + 1;\n var totalCellLength = 0;\n for (var i = 0; i < this.cells.length; i++) {\n totalCellLength += this.cells[i].length;\n }\n var array2 = new Int32Array(metadataLength + totalCellLength + this.keys.length + this.bboxes.length);\n array2[0] = this.extent;\n array2[1] = this.n;\n array2[2] = this.padding;\n var offset = metadataLength;\n for (var k = 0; k < cells.length; k++) {\n var cell = cells[k];\n array2[NUM_PARAMS + k] = offset;\n array2.set(cell, offset);\n offset += cell.length;\n }\n array2[NUM_PARAMS + cells.length] = offset;\n array2.set(this.keys, offset);\n offset += this.keys.length;\n array2[NUM_PARAMS + cells.length + 1] = offset;\n array2.set(this.bboxes, offset);\n offset += this.bboxes.length;\n return array2.buffer;\n };\n var ImageData2 = window$1.ImageData;\n var ImageBitmap2 = window$1.ImageBitmap;\n var registry = {};\n function register(name3, klass, options) {\n if (options === void 0)\n options = {};\n Object.defineProperty(klass, \"_classRegistryKey\", {\n value: name3,\n writeable: false\n });\n registry[name3] = {\n klass,\n omit: options.omit || [],\n shallow: options.shallow || []\n };\n }\n register(\"Object\", Object);\n gridIndex.serialize = function serialize2(grid, transferables) {\n var buffer = grid.toArrayBuffer();\n if (transferables) {\n transferables.push(buffer);\n }\n return { buffer };\n };\n gridIndex.deserialize = function deserialize2(serialized) {\n return new gridIndex(serialized.buffer);\n };\n register(\"Grid\", gridIndex);\n register(\"Color\", Color2);\n register(\"Error\", Error);\n register(\"ResolvedImage\", ResolvedImage);\n register(\"StylePropertyFunction\", StylePropertyFunction);\n register(\"StyleExpression\", StyleExpression, { omit: [\"_evaluator\"] });\n register(\"ZoomDependentExpression\", ZoomDependentExpression);\n register(\"ZoomConstantExpression\", ZoomConstantExpression);\n register(\"CompoundExpression\", CompoundExpression, { omit: [\"_evaluate\"] });\n for (var name2 in expressions) {\n if (expressions[name2]._classRegistryKey) {\n continue;\n }\n register(\"Expression_\" + name2, expressions[name2]);\n }\n function isArrayBuffer(val) {\n return val && typeof ArrayBuffer !== \"undefined\" && (val instanceof ArrayBuffer || val.constructor && val.constructor.name === \"ArrayBuffer\");\n }\n function isImageBitmap(val) {\n return ImageBitmap2 && val instanceof ImageBitmap2;\n }\n function serialize(input, transferables) {\n if (input === null || input === void 0 || typeof input === \"boolean\" || typeof input === \"number\" || typeof input === \"string\" || input instanceof Boolean || input instanceof Number || input instanceof String || input instanceof Date || input instanceof RegExp) {\n return input;\n }\n if (isArrayBuffer(input) || isImageBitmap(input)) {\n if (transferables) {\n transferables.push(input);\n }\n return input;\n }\n if (ArrayBuffer.isView(input)) {\n var view = input;\n if (transferables) {\n transferables.push(view.buffer);\n }\n return view;\n }\n if (input instanceof ImageData2) {\n if (transferables) {\n transferables.push(input.data.buffer);\n }\n return input;\n }\n if (Array.isArray(input)) {\n var serialized = [];\n for (var i = 0, list = input; i < list.length; i += 1) {\n var item = list[i];\n serialized.push(serialize(item, transferables));\n }\n return serialized;\n }\n if (typeof input === \"object\") {\n var klass = input.constructor;\n var name3 = klass._classRegistryKey;\n if (!name3) {\n throw new Error(\"can't serialize object of unregistered class\");\n }\n var properties2 = klass.serialize ? klass.serialize(input, transferables) : {};\n if (!klass.serialize) {\n for (var key in input) {\n if (!input.hasOwnProperty(key)) {\n continue;\n }\n if (registry[name3].omit.indexOf(key) >= 0) {\n continue;\n }\n var property = input[key];\n properties2[key] = registry[name3].shallow.indexOf(key) >= 0 ? property : serialize(property, transferables);\n }\n if (input instanceof Error) {\n properties2.message = input.message;\n }\n }\n if (properties2.$name) {\n throw new Error(\"$name property is reserved for worker serialization logic.\");\n }\n if (name3 !== \"Object\") {\n properties2.$name = name3;\n }\n return properties2;\n }\n throw new Error(\"can't serialize object of type \" + typeof input);\n }\n function deserialize(input) {\n if (input === null || input === void 0 || typeof input === \"boolean\" || typeof input === \"number\" || typeof input === \"string\" || input instanceof Boolean || input instanceof Number || input instanceof String || input instanceof Date || input instanceof RegExp || isArrayBuffer(input) || isImageBitmap(input) || ArrayBuffer.isView(input) || input instanceof ImageData2) {\n return input;\n }\n if (Array.isArray(input)) {\n return input.map(deserialize);\n }\n if (typeof input === \"object\") {\n var name3 = input.$name || \"Object\";\n var ref = registry[name3];\n var klass = ref.klass;\n if (!klass) {\n throw new Error(\"can't deserialize unregistered class \" + name3);\n }\n if (klass.deserialize) {\n return klass.deserialize(input);\n }\n var result = Object.create(klass.prototype);\n for (var i = 0, list = Object.keys(input); i < list.length; i += 1) {\n var key = list[i];\n if (key === \"$name\") {\n continue;\n }\n var value = input[key];\n result[key] = registry[name3].shallow.indexOf(key) >= 0 ? value : deserialize(value);\n }\n return result;\n }\n throw new Error(\"can't deserialize object of type \" + typeof input);\n }\n var ZoomHistory = function ZoomHistory2() {\n this.first = true;\n };\n ZoomHistory.prototype.update = function update(z, now2) {\n var floorZ = Math.floor(z);\n if (this.first) {\n this.first = false;\n this.lastIntegerZoom = floorZ;\n this.lastIntegerZoomTime = 0;\n this.lastZoom = z;\n this.lastFloorZoom = floorZ;\n return true;\n }\n if (this.lastFloorZoom > floorZ) {\n this.lastIntegerZoom = floorZ + 1;\n this.lastIntegerZoomTime = now2;\n } else if (this.lastFloorZoom < floorZ) {\n this.lastIntegerZoom = floorZ;\n this.lastIntegerZoomTime = now2;\n }\n if (z !== this.lastZoom) {\n this.lastZoom = z;\n this.lastFloorZoom = floorZ;\n return true;\n }\n return false;\n };\n var unicodeBlockLookup = {\n \"Latin-1 Supplement\": function(char) {\n return char >= 128 && char <= 255;\n },\n \"Arabic\": function(char) {\n return char >= 1536 && char <= 1791;\n },\n \"Arabic Supplement\": function(char) {\n return char >= 1872 && char <= 1919;\n },\n \"Arabic Extended-A\": function(char) {\n return char >= 2208 && char <= 2303;\n },\n \"Hangul Jamo\": function(char) {\n return char >= 4352 && char <= 4607;\n },\n \"Unified Canadian Aboriginal Syllabics\": function(char) {\n return char >= 5120 && char <= 5759;\n },\n \"Khmer\": function(char) {\n return char >= 6016 && char <= 6143;\n },\n \"Unified Canadian Aboriginal Syllabics Extended\": function(char) {\n return char >= 6320 && char <= 6399;\n },\n \"General Punctuation\": function(char) {\n return char >= 8192 && char <= 8303;\n },\n \"Letterlike Symbols\": function(char) {\n return char >= 8448 && char <= 8527;\n },\n \"Number Forms\": function(char) {\n return char >= 8528 && char <= 8591;\n },\n \"Miscellaneous Technical\": function(char) {\n return char >= 8960 && char <= 9215;\n },\n \"Control Pictures\": function(char) {\n return char >= 9216 && char <= 9279;\n },\n \"Optical Character Recognition\": function(char) {\n return char >= 9280 && char <= 9311;\n },\n \"Enclosed Alphanumerics\": function(char) {\n return char >= 9312 && char <= 9471;\n },\n \"Geometric Shapes\": function(char) {\n return char >= 9632 && char <= 9727;\n },\n \"Miscellaneous Symbols\": function(char) {\n return char >= 9728 && char <= 9983;\n },\n \"Miscellaneous Symbols and Arrows\": function(char) {\n return char >= 11008 && char <= 11263;\n },\n \"CJK Radicals Supplement\": function(char) {\n return char >= 11904 && char <= 12031;\n },\n \"Kangxi Radicals\": function(char) {\n return char >= 12032 && char <= 12255;\n },\n \"Ideographic Description Characters\": function(char) {\n return char >= 12272 && char <= 12287;\n },\n \"CJK Symbols and Punctuation\": function(char) {\n return char >= 12288 && char <= 12351;\n },\n \"Hiragana\": function(char) {\n return char >= 12352 && char <= 12447;\n },\n \"Katakana\": function(char) {\n return char >= 12448 && char <= 12543;\n },\n \"Bopomofo\": function(char) {\n return char >= 12544 && char <= 12591;\n },\n \"Hangul Compatibility Jamo\": function(char) {\n return char >= 12592 && char <= 12687;\n },\n \"Kanbun\": function(char) {\n return char >= 12688 && char <= 12703;\n },\n \"Bopomofo Extended\": function(char) {\n return char >= 12704 && char <= 12735;\n },\n \"CJK Strokes\": function(char) {\n return char >= 12736 && char <= 12783;\n },\n \"Katakana Phonetic Extensions\": function(char) {\n return char >= 12784 && char <= 12799;\n },\n \"Enclosed CJK Letters and Months\": function(char) {\n return char >= 12800 && char <= 13055;\n },\n \"CJK Compatibility\": function(char) {\n return char >= 13056 && char <= 13311;\n },\n \"CJK Unified Ideographs Extension A\": function(char) {\n return char >= 13312 && char <= 19903;\n },\n \"Yijing Hexagram Symbols\": function(char) {\n return char >= 19904 && char <= 19967;\n },\n \"CJK Unified Ideographs\": function(char) {\n return char >= 19968 && char <= 40959;\n },\n \"Yi Syllables\": function(char) {\n return char >= 40960 && char <= 42127;\n },\n \"Yi Radicals\": function(char) {\n return char >= 42128 && char <= 42191;\n },\n \"Hangul Jamo Extended-A\": function(char) {\n return char >= 43360 && char <= 43391;\n },\n \"Hangul Syllables\": function(char) {\n return char >= 44032 && char <= 55215;\n },\n \"Hangul Jamo Extended-B\": function(char) {\n return char >= 55216 && char <= 55295;\n },\n \"Private Use Area\": function(char) {\n return char >= 57344 && char <= 63743;\n },\n \"CJK Compatibility Ideographs\": function(char) {\n return char >= 63744 && char <= 64255;\n },\n \"Arabic Presentation Forms-A\": function(char) {\n return char >= 64336 && char <= 65023;\n },\n \"Vertical Forms\": function(char) {\n return char >= 65040 && char <= 65055;\n },\n \"CJK Compatibility Forms\": function(char) {\n return char >= 65072 && char <= 65103;\n },\n \"Small Form Variants\": function(char) {\n return char >= 65104 && char <= 65135;\n },\n \"Arabic Presentation Forms-B\": function(char) {\n return char >= 65136 && char <= 65279;\n },\n \"Halfwidth and Fullwidth Forms\": function(char) {\n return char >= 65280 && char <= 65519;\n }\n };\n function allowsVerticalWritingMode(chars) {\n for (var i = 0, list = chars; i < list.length; i += 1) {\n var char = list[i];\n if (charHasUprightVerticalOrientation(char.charCodeAt(0))) {\n return true;\n }\n }\n return false;\n }\n function allowsLetterSpacing(chars) {\n for (var i = 0, list = chars; i < list.length; i += 1) {\n var char = list[i];\n if (!charAllowsLetterSpacing(char.charCodeAt(0))) {\n return false;\n }\n }\n return true;\n }\n function charAllowsLetterSpacing(char) {\n if (unicodeBlockLookup[\"Arabic\"](char)) {\n return false;\n }\n if (unicodeBlockLookup[\"Arabic Supplement\"](char)) {\n return false;\n }\n if (unicodeBlockLookup[\"Arabic Extended-A\"](char)) {\n return false;\n }\n if (unicodeBlockLookup[\"Arabic Presentation Forms-A\"](char)) {\n return false;\n }\n if (unicodeBlockLookup[\"Arabic Presentation Forms-B\"](char)) {\n return false;\n }\n return true;\n }\n function charAllowsIdeographicBreaking(char) {\n if (char < 11904) {\n return false;\n }\n if (unicodeBlockLookup[\"Bopomofo Extended\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Bopomofo\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility Ideographs\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Radicals Supplement\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Strokes\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Symbols and Punctuation\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Unified Ideographs Extension A\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Unified Ideographs\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Enclosed CJK Letters and Months\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Halfwidth and Fullwidth Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hiragana\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Ideographic Description Characters\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Kangxi Radicals\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana Phonetic Extensions\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Vertical Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yi Radicals\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yi Syllables\"](char)) {\n return true;\n }\n return false;\n }\n function charHasUprightVerticalOrientation(char) {\n if (char === 746 || char === 747) {\n return true;\n }\n if (char < 4352) {\n return false;\n }\n if (unicodeBlockLookup[\"Bopomofo Extended\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Bopomofo\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility Forms\"](char)) {\n if (!(char >= 65097 && char <= 65103)) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"CJK Compatibility Ideographs\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Radicals Supplement\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Strokes\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Symbols and Punctuation\"](char)) {\n if (!(char >= 12296 && char <= 12305) && !(char >= 12308 && char <= 12319) && char !== 12336) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"CJK Unified Ideographs Extension A\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Unified Ideographs\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Enclosed CJK Letters and Months\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Compatibility Jamo\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Jamo Extended-A\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Jamo Extended-B\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Jamo\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Syllables\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hiragana\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Ideographic Description Characters\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Kanbun\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Kangxi Radicals\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana Phonetic Extensions\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana\"](char)) {\n if (char !== 12540) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Halfwidth and Fullwidth Forms\"](char)) {\n if (char !== 65288 && char !== 65289 && char !== 65293 && !(char >= 65306 && char <= 65310) && char !== 65339 && char !== 65341 && char !== 65343 && !(char >= 65371 && char <= 65503) && char !== 65507 && !(char >= 65512 && char <= 65519)) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Small Form Variants\"](char)) {\n if (!(char >= 65112 && char <= 65118) && !(char >= 65123 && char <= 65126)) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Unified Canadian Aboriginal Syllabics\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Unified Canadian Aboriginal Syllabics Extended\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Vertical Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yijing Hexagram Symbols\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yi Syllables\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yi Radicals\"](char)) {\n return true;\n }\n return false;\n }\n function charHasNeutralVerticalOrientation(char) {\n if (unicodeBlockLookup[\"Latin-1 Supplement\"](char)) {\n if (char === 167 || char === 169 || char === 174 || char === 177 || char === 188 || char === 189 || char === 190 || char === 215 || char === 247) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"General Punctuation\"](char)) {\n if (char === 8214 || char === 8224 || char === 8225 || char === 8240 || char === 8241 || char === 8251 || char === 8252 || char === 8258 || char === 8263 || char === 8264 || char === 8265 || char === 8273) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Letterlike Symbols\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Number Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Miscellaneous Technical\"](char)) {\n if (char >= 8960 && char <= 8967 || char >= 8972 && char <= 8991 || char >= 8996 && char <= 9e3 || char === 9003 || char >= 9085 && char <= 9114 || char >= 9150 && char <= 9165 || char === 9167 || char >= 9169 && char <= 9179 || char >= 9186 && char <= 9215) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Control Pictures\"](char) && char !== 9251) {\n return true;\n }\n if (unicodeBlockLookup[\"Optical Character Recognition\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Enclosed Alphanumerics\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Geometric Shapes\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Miscellaneous Symbols\"](char)) {\n if (!(char >= 9754 && char <= 9759)) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Miscellaneous Symbols and Arrows\"](char)) {\n if (char >= 11026 && char <= 11055 || char >= 11088 && char <= 11097 || char >= 11192 && char <= 11243) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"CJK Symbols and Punctuation\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Private Use Area\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Small Form Variants\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Halfwidth and Fullwidth Forms\"](char)) {\n return true;\n }\n if (char === 8734 || char === 8756 || char === 8757 || char >= 9984 && char <= 10087 || char >= 10102 && char <= 10131 || char === 65532 || char === 65533) {\n return true;\n }\n return false;\n }\n function charHasRotatedVerticalOrientation(char) {\n return !(charHasUprightVerticalOrientation(char) || charHasNeutralVerticalOrientation(char));\n }\n function charInComplexShapingScript(char) {\n return unicodeBlockLookup[\"Arabic\"](char) || unicodeBlockLookup[\"Arabic Supplement\"](char) || unicodeBlockLookup[\"Arabic Extended-A\"](char) || unicodeBlockLookup[\"Arabic Presentation Forms-A\"](char) || unicodeBlockLookup[\"Arabic Presentation Forms-B\"](char);\n }\n function charInRTLScript(char) {\n return char >= 1424 && char <= 2303 || unicodeBlockLookup[\"Arabic Presentation Forms-A\"](char) || unicodeBlockLookup[\"Arabic Presentation Forms-B\"](char);\n }\n function charInSupportedScript(char, canRenderRTL) {\n if (!canRenderRTL && charInRTLScript(char)) {\n return false;\n }\n if (char >= 2304 && char <= 3583 || char >= 3840 && char <= 4255 || unicodeBlockLookup[\"Khmer\"](char)) {\n return false;\n }\n return true;\n }\n function stringContainsRTLText(chars) {\n for (var i = 0, list = chars; i < list.length; i += 1) {\n var char = list[i];\n if (charInRTLScript(char.charCodeAt(0))) {\n return true;\n }\n }\n return false;\n }\n function isStringInSupportedScript(chars, canRenderRTL) {\n for (var i = 0, list = chars; i < list.length; i += 1) {\n var char = list[i];\n if (!charInSupportedScript(char.charCodeAt(0), canRenderRTL)) {\n return false;\n }\n }\n return true;\n }\n var status = {\n unavailable: \"unavailable\",\n deferred: \"deferred\",\n loading: \"loading\",\n loaded: \"loaded\",\n error: \"error\"\n };\n var _completionCallback = null;\n var pluginStatus = status.unavailable;\n var pluginURL = null;\n var triggerPluginCompletionEvent = function(error2) {\n if (error2 && typeof error2 === \"string\" && error2.indexOf(\"NetworkError\") > -1) {\n pluginStatus = status.error;\n }\n if (_completionCallback) {\n _completionCallback(error2);\n }\n };\n function sendPluginStateToWorker() {\n evented.fire(new Event(\"pluginStateChange\", {\n pluginStatus,\n pluginURL\n }));\n }\n var evented = new Evented();\n var getRTLTextPluginStatus = function() {\n return pluginStatus;\n };\n var registerForPluginStateChange = function(callback) {\n callback({\n pluginStatus,\n pluginURL\n });\n evented.on(\"pluginStateChange\", callback);\n return callback;\n };\n var setRTLTextPlugin = function(url, callback, deferred) {\n if (deferred === void 0)\n deferred = false;\n if (pluginStatus === status.deferred || pluginStatus === status.loading || pluginStatus === status.loaded) {\n throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");\n }\n pluginURL = exported.resolveURL(url);\n pluginStatus = status.deferred;\n _completionCallback = callback;\n sendPluginStateToWorker();\n if (!deferred) {\n downloadRTLTextPlugin();\n }\n };\n var downloadRTLTextPlugin = function() {\n if (pluginStatus !== status.deferred || !pluginURL) {\n throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");\n }\n pluginStatus = status.loading;\n sendPluginStateToWorker();\n if (pluginURL) {\n getArrayBuffer({ url: pluginURL }, function(error2) {\n if (error2) {\n triggerPluginCompletionEvent(error2);\n } else {\n pluginStatus = status.loaded;\n sendPluginStateToWorker();\n }\n });\n }\n };\n var plugin = {\n applyArabicShaping: null,\n processBidirectionalText: null,\n processStyledBidirectionalText: null,\n isLoaded: function isLoaded() {\n return pluginStatus === status.loaded || plugin.applyArabicShaping != null;\n },\n isLoading: function isLoading() {\n return pluginStatus === status.loading;\n },\n setState: function setState(state) {\n pluginStatus = state.pluginStatus;\n pluginURL = state.pluginURL;\n },\n isParsed: function isParsed() {\n return plugin.applyArabicShaping != null && plugin.processBidirectionalText != null && plugin.processStyledBidirectionalText != null;\n },\n getPluginURL: function getPluginURL() {\n return pluginURL;\n }\n };\n var lazyLoadRTLTextPlugin = function() {\n if (!plugin.isLoading() && !plugin.isLoaded() && getRTLTextPluginStatus() === \"deferred\") {\n downloadRTLTextPlugin();\n }\n };\n var EvaluationParameters = function EvaluationParameters2(zoom, options) {\n this.zoom = zoom;\n if (options) {\n this.now = options.now;\n this.fadeDuration = options.fadeDuration;\n this.zoomHistory = options.zoomHistory;\n this.transition = options.transition;\n } else {\n this.now = 0;\n this.fadeDuration = 0;\n this.zoomHistory = new ZoomHistory();\n this.transition = {};\n }\n };\n EvaluationParameters.prototype.isSupportedScript = function isSupportedScript(str) {\n return isStringInSupportedScript(str, plugin.isLoaded());\n };\n EvaluationParameters.prototype.crossFadingFactor = function crossFadingFactor() {\n if (this.fadeDuration === 0) {\n return 1;\n } else {\n return Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1);\n }\n };\n EvaluationParameters.prototype.getCrossfadeParameters = function getCrossfadeParameters() {\n var z = this.zoom;\n var fraction = z - Math.floor(z);\n var t = this.crossFadingFactor();\n return z > this.zoomHistory.lastIntegerZoom ? {\n fromScale: 2,\n toScale: 1,\n t: fraction + (1 - fraction) * t\n } : {\n fromScale: 0.5,\n toScale: 1,\n t: 1 - (1 - t) * fraction\n };\n };\n var PropertyValue = function PropertyValue2(property, value) {\n this.property = property;\n this.value = value;\n this.expression = normalizePropertyExpression(value === void 0 ? property.specification.default : value, property.specification);\n };\n PropertyValue.prototype.isDataDriven = function isDataDriven() {\n return this.expression.kind === \"source\" || this.expression.kind === \"composite\";\n };\n PropertyValue.prototype.possiblyEvaluate = function possiblyEvaluate(parameters, canonical, availableImages) {\n return this.property.possiblyEvaluate(this, parameters, canonical, availableImages);\n };\n var TransitionablePropertyValue = function TransitionablePropertyValue2(property) {\n this.property = property;\n this.value = new PropertyValue(property, void 0);\n };\n TransitionablePropertyValue.prototype.transitioned = function transitioned(parameters, prior) {\n return new TransitioningPropertyValue(this.property, this.value, prior, extend2({}, parameters.transition, this.transition), parameters.now);\n };\n TransitionablePropertyValue.prototype.untransitioned = function untransitioned() {\n return new TransitioningPropertyValue(this.property, this.value, null, {}, 0);\n };\n var Transitionable = function Transitionable2(properties2) {\n this._properties = properties2;\n this._values = Object.create(properties2.defaultTransitionablePropertyValues);\n };\n Transitionable.prototype.getValue = function getValue(name3) {\n return clone(this._values[name3].value.value);\n };\n Transitionable.prototype.setValue = function setValue(name3, value) {\n if (!this._values.hasOwnProperty(name3)) {\n this._values[name3] = new TransitionablePropertyValue(this._values[name3].property);\n }\n this._values[name3].value = new PropertyValue(this._values[name3].property, value === null ? void 0 : clone(value));\n };\n Transitionable.prototype.getTransition = function getTransition(name3) {\n return clone(this._values[name3].transition);\n };\n Transitionable.prototype.setTransition = function setTransition(name3, value) {\n if (!this._values.hasOwnProperty(name3)) {\n this._values[name3] = new TransitionablePropertyValue(this._values[name3].property);\n }\n this._values[name3].transition = clone(value) || void 0;\n };\n Transitionable.prototype.serialize = function serialize2() {\n var result = {};\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n var value = this.getValue(property);\n if (value !== void 0) {\n result[property] = value;\n }\n var transition2 = this.getTransition(property);\n if (transition2 !== void 0) {\n result[property + \"-transition\"] = transition2;\n }\n }\n return result;\n };\n Transitionable.prototype.transitioned = function transitioned(parameters, prior) {\n var result = new Transitioning(this._properties);\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n result._values[property] = this._values[property].transitioned(parameters, prior._values[property]);\n }\n return result;\n };\n Transitionable.prototype.untransitioned = function untransitioned() {\n var result = new Transitioning(this._properties);\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n result._values[property] = this._values[property].untransitioned();\n }\n return result;\n };\n var TransitioningPropertyValue = function TransitioningPropertyValue2(property, value, prior, transition2, now2) {\n this.property = property;\n this.value = value;\n this.begin = now2 + transition2.delay || 0;\n this.end = this.begin + transition2.duration || 0;\n if (property.specification.transition && (transition2.delay || transition2.duration)) {\n this.prior = prior;\n }\n };\n TransitioningPropertyValue.prototype.possiblyEvaluate = function possiblyEvaluate(parameters, canonical, availableImages) {\n var now2 = parameters.now || 0;\n var finalValue = this.value.possiblyEvaluate(parameters, canonical, availableImages);\n var prior = this.prior;\n if (!prior) {\n return finalValue;\n } else if (now2 > this.end) {\n this.prior = null;\n return finalValue;\n } else if (this.value.isDataDriven()) {\n this.prior = null;\n return finalValue;\n } else if (now2 < this.begin) {\n return prior.possiblyEvaluate(parameters, canonical, availableImages);\n } else {\n var t = (now2 - this.begin) / (this.end - this.begin);\n return this.property.interpolate(prior.possiblyEvaluate(parameters, canonical, availableImages), finalValue, easeCubicInOut(t));\n }\n };\n var Transitioning = function Transitioning2(properties2) {\n this._properties = properties2;\n this._values = Object.create(properties2.defaultTransitioningPropertyValues);\n };\n Transitioning.prototype.possiblyEvaluate = function possiblyEvaluate(parameters, canonical, availableImages) {\n var result = new PossiblyEvaluated(this._properties);\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n result._values[property] = this._values[property].possiblyEvaluate(parameters, canonical, availableImages);\n }\n return result;\n };\n Transitioning.prototype.hasTransition = function hasTransition() {\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n if (this._values[property].prior) {\n return true;\n }\n }\n return false;\n };\n var Layout = function Layout2(properties2) {\n this._properties = properties2;\n this._values = Object.create(properties2.defaultPropertyValues);\n };\n Layout.prototype.getValue = function getValue(name3) {\n return clone(this._values[name3].value);\n };\n Layout.prototype.setValue = function setValue(name3, value) {\n this._values[name3] = new PropertyValue(this._values[name3].property, value === null ? void 0 : clone(value));\n };\n Layout.prototype.serialize = function serialize2() {\n var result = {};\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n var value = this.getValue(property);\n if (value !== void 0) {\n result[property] = value;\n }\n }\n return result;\n };\n Layout.prototype.possiblyEvaluate = function possiblyEvaluate(parameters, canonical, availableImages) {\n var result = new PossiblyEvaluated(this._properties);\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n result._values[property] = this._values[property].possiblyEvaluate(parameters, canonical, availableImages);\n }\n return result;\n };\n var PossiblyEvaluatedPropertyValue = function PossiblyEvaluatedPropertyValue2(property, value, parameters) {\n this.property = property;\n this.value = value;\n this.parameters = parameters;\n };\n PossiblyEvaluatedPropertyValue.prototype.isConstant = function isConstant2() {\n return this.value.kind === \"constant\";\n };\n PossiblyEvaluatedPropertyValue.prototype.constantOr = function constantOr(value) {\n if (this.value.kind === \"constant\") {\n return this.value.value;\n } else {\n return value;\n }\n };\n PossiblyEvaluatedPropertyValue.prototype.evaluate = function evaluate(feature, featureState, canonical, availableImages) {\n return this.property.evaluate(this.value, this.parameters, feature, featureState, canonical, availableImages);\n };\n var PossiblyEvaluated = function PossiblyEvaluated2(properties2) {\n this._properties = properties2;\n this._values = Object.create(properties2.defaultPossiblyEvaluatedValues);\n };\n PossiblyEvaluated.prototype.get = function get2(name3) {\n return this._values[name3];\n };\n var DataConstantProperty = function DataConstantProperty2(specification) {\n this.specification = specification;\n };\n DataConstantProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters) {\n return value.expression.evaluate(parameters);\n };\n DataConstantProperty.prototype.interpolate = function interpolate$1(a, b, t) {\n var interp = interpolate[this.specification.type];\n if (interp) {\n return interp(a, b, t);\n } else {\n return a;\n }\n };\n var DataDrivenProperty = function DataDrivenProperty2(specification, overrides) {\n this.specification = specification;\n this.overrides = overrides;\n };\n DataDrivenProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters, canonical, availableImages) {\n if (value.expression.kind === \"constant\" || value.expression.kind === \"camera\") {\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: value.expression.evaluate(parameters, null, {}, canonical, availableImages)\n }, parameters);\n } else {\n return new PossiblyEvaluatedPropertyValue(this, value.expression, parameters);\n }\n };\n DataDrivenProperty.prototype.interpolate = function interpolate$2(a, b, t) {\n if (a.value.kind !== \"constant\" || b.value.kind !== \"constant\") {\n return a;\n }\n if (a.value.value === void 0 || b.value.value === void 0) {\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: void 0\n }, a.parameters);\n }\n var interp = interpolate[this.specification.type];\n if (interp) {\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: interp(a.value.value, b.value.value, t)\n }, a.parameters);\n } else {\n return a;\n }\n };\n DataDrivenProperty.prototype.evaluate = function evaluate(value, parameters, feature, featureState, canonical, availableImages) {\n if (value.kind === \"constant\") {\n return value.value;\n } else {\n return value.evaluate(parameters, feature, featureState, canonical, availableImages);\n }\n };\n var CrossFadedDataDrivenProperty = function(DataDrivenProperty2) {\n function CrossFadedDataDrivenProperty2() {\n DataDrivenProperty2.apply(this, arguments);\n }\n if (DataDrivenProperty2)\n CrossFadedDataDrivenProperty2.__proto__ = DataDrivenProperty2;\n CrossFadedDataDrivenProperty2.prototype = Object.create(DataDrivenProperty2 && DataDrivenProperty2.prototype);\n CrossFadedDataDrivenProperty2.prototype.constructor = CrossFadedDataDrivenProperty2;\n CrossFadedDataDrivenProperty2.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters, canonical, availableImages) {\n if (value.value === void 0) {\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: void 0\n }, parameters);\n } else if (value.expression.kind === \"constant\") {\n var evaluatedValue = value.expression.evaluate(parameters, null, {}, canonical, availableImages);\n var isImageExpression = value.property.specification.type === \"resolvedImage\";\n var constantValue = isImageExpression && typeof evaluatedValue !== \"string\" ? evaluatedValue.name : evaluatedValue;\n var constant = this._calculate(constantValue, constantValue, constantValue, parameters);\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: constant\n }, parameters);\n } else if (value.expression.kind === \"camera\") {\n var cameraVal = this._calculate(value.expression.evaluate({ zoom: parameters.zoom - 1 }), value.expression.evaluate({ zoom: parameters.zoom }), value.expression.evaluate({ zoom: parameters.zoom + 1 }), parameters);\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: cameraVal\n }, parameters);\n } else {\n return new PossiblyEvaluatedPropertyValue(this, value.expression, parameters);\n }\n };\n CrossFadedDataDrivenProperty2.prototype.evaluate = function evaluate(value, globals, feature, featureState, canonical, availableImages) {\n if (value.kind === \"source\") {\n var constant = value.evaluate(globals, feature, featureState, canonical, availableImages);\n return this._calculate(constant, constant, constant, globals);\n } else if (value.kind === \"composite\") {\n return this._calculate(value.evaluate({ zoom: Math.floor(globals.zoom) - 1 }, feature, featureState), value.evaluate({ zoom: Math.floor(globals.zoom) }, feature, featureState), value.evaluate({ zoom: Math.floor(globals.zoom) + 1 }, feature, featureState), globals);\n } else {\n return value.value;\n }\n };\n CrossFadedDataDrivenProperty2.prototype._calculate = function _calculate(min, mid, max, parameters) {\n var z = parameters.zoom;\n return z > parameters.zoomHistory.lastIntegerZoom ? {\n from: min,\n to: mid\n } : {\n from: max,\n to: mid\n };\n };\n CrossFadedDataDrivenProperty2.prototype.interpolate = function interpolate2(a) {\n return a;\n };\n return CrossFadedDataDrivenProperty2;\n }(DataDrivenProperty);\n var CrossFadedProperty = function CrossFadedProperty2(specification) {\n this.specification = specification;\n };\n CrossFadedProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters, canonical, availableImages) {\n if (value.value === void 0) {\n return void 0;\n } else if (value.expression.kind === \"constant\") {\n var constant = value.expression.evaluate(parameters, null, {}, canonical, availableImages);\n return this._calculate(constant, constant, constant, parameters);\n } else {\n return this._calculate(value.expression.evaluate(new EvaluationParameters(Math.floor(parameters.zoom - 1), parameters)), value.expression.evaluate(new EvaluationParameters(Math.floor(parameters.zoom), parameters)), value.expression.evaluate(new EvaluationParameters(Math.floor(parameters.zoom + 1), parameters)), parameters);\n }\n };\n CrossFadedProperty.prototype._calculate = function _calculate(min, mid, max, parameters) {\n var z = parameters.zoom;\n return z > parameters.zoomHistory.lastIntegerZoom ? {\n from: min,\n to: mid\n } : {\n from: max,\n to: mid\n };\n };\n CrossFadedProperty.prototype.interpolate = function interpolate2(a) {\n return a;\n };\n var ColorRampProperty = function ColorRampProperty2(specification) {\n this.specification = specification;\n };\n ColorRampProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters, canonical, availableImages) {\n return !!value.expression.evaluate(parameters, null, {}, canonical, availableImages);\n };\n ColorRampProperty.prototype.interpolate = function interpolate2() {\n return false;\n };\n var Properties = function Properties2(properties2) {\n this.properties = properties2;\n this.defaultPropertyValues = {};\n this.defaultTransitionablePropertyValues = {};\n this.defaultTransitioningPropertyValues = {};\n this.defaultPossiblyEvaluatedValues = {};\n this.overridableProperties = [];\n for (var property in properties2) {\n var prop = properties2[property];\n if (prop.specification.overridable) {\n this.overridableProperties.push(property);\n }\n var defaultPropertyValue = this.defaultPropertyValues[property] = new PropertyValue(prop, void 0);\n var defaultTransitionablePropertyValue = this.defaultTransitionablePropertyValues[property] = new TransitionablePropertyValue(prop);\n this.defaultTransitioningPropertyValues[property] = defaultTransitionablePropertyValue.untransitioned();\n this.defaultPossiblyEvaluatedValues[property] = defaultPropertyValue.possiblyEvaluate({});\n }\n };\n register(\"DataDrivenProperty\", DataDrivenProperty);\n register(\"DataConstantProperty\", DataConstantProperty);\n register(\"CrossFadedDataDrivenProperty\", CrossFadedDataDrivenProperty);\n register(\"CrossFadedProperty\", CrossFadedProperty);\n register(\"ColorRampProperty\", ColorRampProperty);\n var TRANSITION_SUFFIX = \"-transition\";\n var StyleLayer = function(Evented2) {\n function StyleLayer2(layer2, properties2) {\n Evented2.call(this);\n this.id = layer2.id;\n this.type = layer2.type;\n this._featureFilter = {\n filter: function() {\n return true;\n },\n needGeometry: false\n };\n if (layer2.type === \"custom\") {\n return;\n }\n layer2 = layer2;\n this.metadata = layer2.metadata;\n this.minzoom = layer2.minzoom;\n this.maxzoom = layer2.maxzoom;\n if (layer2.type !== \"background\") {\n this.source = layer2.source;\n this.sourceLayer = layer2[\"source-layer\"];\n this.filter = layer2.filter;\n }\n if (properties2.layout) {\n this._unevaluatedLayout = new Layout(properties2.layout);\n }\n if (properties2.paint) {\n this._transitionablePaint = new Transitionable(properties2.paint);\n for (var property in layer2.paint) {\n this.setPaintProperty(property, layer2.paint[property], { validate: false });\n }\n for (var property$1 in layer2.layout) {\n this.setLayoutProperty(property$1, layer2.layout[property$1], { validate: false });\n }\n this._transitioningPaint = this._transitionablePaint.untransitioned();\n this.paint = new PossiblyEvaluated(properties2.paint);\n }\n }\n if (Evented2)\n StyleLayer2.__proto__ = Evented2;\n StyleLayer2.prototype = Object.create(Evented2 && Evented2.prototype);\n StyleLayer2.prototype.constructor = StyleLayer2;\n StyleLayer2.prototype.getCrossfadeParameters = function getCrossfadeParameters() {\n return this._crossfadeParameters;\n };\n StyleLayer2.prototype.getLayoutProperty = function getLayoutProperty(name3) {\n if (name3 === \"visibility\") {\n return this.visibility;\n }\n return this._unevaluatedLayout.getValue(name3);\n };\n StyleLayer2.prototype.setLayoutProperty = function setLayoutProperty(name3, value, options) {\n if (options === void 0)\n options = {};\n if (value !== null && value !== void 0) {\n var key = \"layers.\" + this.id + \".layout.\" + name3;\n if (this._validate(validateLayoutProperty$1, key, name3, value, options)) {\n return;\n }\n }\n if (name3 === \"visibility\") {\n this.visibility = value;\n return;\n }\n this._unevaluatedLayout.setValue(name3, value);\n };\n StyleLayer2.prototype.getPaintProperty = function getPaintProperty(name3) {\n if (endsWith(name3, TRANSITION_SUFFIX)) {\n return this._transitionablePaint.getTransition(name3.slice(0, -TRANSITION_SUFFIX.length));\n } else {\n return this._transitionablePaint.getValue(name3);\n }\n };\n StyleLayer2.prototype.setPaintProperty = function setPaintProperty(name3, value, options) {\n if (options === void 0)\n options = {};\n if (value !== null && value !== void 0) {\n var key = \"layers.\" + this.id + \".paint.\" + name3;\n if (this._validate(validatePaintProperty$1, key, name3, value, options)) {\n return false;\n }\n }\n if (endsWith(name3, TRANSITION_SUFFIX)) {\n this._transitionablePaint.setTransition(name3.slice(0, -TRANSITION_SUFFIX.length), value || void 0);\n return false;\n } else {\n var transitionable = this._transitionablePaint._values[name3];\n var isCrossFadedProperty = transitionable.property.specification[\"property-type\"] === \"cross-faded-data-driven\";\n var wasDataDriven = transitionable.value.isDataDriven();\n var oldValue = transitionable.value;\n this._transitionablePaint.setValue(name3, value);\n this._handleSpecialPaintPropertyUpdate(name3);\n var newValue = this._transitionablePaint._values[name3].value;\n var isDataDriven = newValue.isDataDriven();\n return isDataDriven || wasDataDriven || isCrossFadedProperty || this._handleOverridablePaintPropertyUpdate(name3, oldValue, newValue);\n }\n };\n StyleLayer2.prototype._handleSpecialPaintPropertyUpdate = function _handleSpecialPaintPropertyUpdate(_) {\n };\n StyleLayer2.prototype._handleOverridablePaintPropertyUpdate = function _handleOverridablePaintPropertyUpdate(name3, oldValue, newValue) {\n return false;\n };\n StyleLayer2.prototype.isHidden = function isHidden(zoom) {\n if (this.minzoom && zoom < this.minzoom) {\n return true;\n }\n if (this.maxzoom && zoom >= this.maxzoom) {\n return true;\n }\n return this.visibility === \"none\";\n };\n StyleLayer2.prototype.updateTransitions = function updateTransitions(parameters) {\n this._transitioningPaint = this._transitionablePaint.transitioned(parameters, this._transitioningPaint);\n };\n StyleLayer2.prototype.hasTransition = function hasTransition() {\n return this._transitioningPaint.hasTransition();\n };\n StyleLayer2.prototype.recalculate = function recalculate(parameters, availableImages) {\n if (parameters.getCrossfadeParameters) {\n this._crossfadeParameters = parameters.getCrossfadeParameters();\n }\n if (this._unevaluatedLayout) {\n this.layout = this._unevaluatedLayout.possiblyEvaluate(parameters, void 0, availableImages);\n }\n this.paint = this._transitioningPaint.possiblyEvaluate(parameters, void 0, availableImages);\n };\n StyleLayer2.prototype.serialize = function serialize2() {\n var output = {\n \"id\": this.id,\n \"type\": this.type,\n \"source\": this.source,\n \"source-layer\": this.sourceLayer,\n \"metadata\": this.metadata,\n \"minzoom\": this.minzoom,\n \"maxzoom\": this.maxzoom,\n \"filter\": this.filter,\n \"layout\": this._unevaluatedLayout && this._unevaluatedLayout.serialize(),\n \"paint\": this._transitionablePaint && this._transitionablePaint.serialize()\n };\n if (this.visibility) {\n output.layout = output.layout || {};\n output.layout.visibility = this.visibility;\n }\n return filterObject(output, function(value, key) {\n return value !== void 0 && !(key === \"layout\" && !Object.keys(value).length) && !(key === \"paint\" && !Object.keys(value).length);\n });\n };\n StyleLayer2.prototype._validate = function _validate(validate2, key, name3, value, options) {\n if (options === void 0)\n options = {};\n if (options && options.validate === false) {\n return false;\n }\n return emitValidationErrors(this, validate2.call(validateStyle, {\n key,\n layerType: this.type,\n objectKey: name3,\n value,\n styleSpec: spec,\n style: {\n glyphs: true,\n sprite: true\n }\n }));\n };\n StyleLayer2.prototype.is3D = function is3D() {\n return false;\n };\n StyleLayer2.prototype.isTileClipped = function isTileClipped() {\n return false;\n };\n StyleLayer2.prototype.hasOffscreenPass = function hasOffscreenPass() {\n return false;\n };\n StyleLayer2.prototype.resize = function resize() {\n };\n StyleLayer2.prototype.isStateDependent = function isStateDependent() {\n for (var property in this.paint._values) {\n var value = this.paint.get(property);\n if (!(value instanceof PossiblyEvaluatedPropertyValue) || !supportsPropertyExpression(value.property.specification)) {\n continue;\n }\n if ((value.value.kind === \"source\" || value.value.kind === \"composite\") && value.value.isStateDependent) {\n return true;\n }\n }\n return false;\n };\n return StyleLayer2;\n }(Evented);\n var viewTypes = {\n \"Int8\": Int8Array,\n \"Uint8\": Uint8Array,\n \"Int16\": Int16Array,\n \"Uint16\": Uint16Array,\n \"Int32\": Int32Array,\n \"Uint32\": Uint32Array,\n \"Float32\": Float32Array\n };\n var Struct = function Struct2(structArray, index) {\n this._structArray = structArray;\n this._pos1 = index * this.size;\n this._pos2 = this._pos1 / 2;\n this._pos4 = this._pos1 / 4;\n this._pos8 = this._pos1 / 8;\n };\n var DEFAULT_CAPACITY = 128;\n var RESIZE_MULTIPLIER = 5;\n var StructArray = function StructArray2() {\n this.isTransferred = false;\n this.capacity = -1;\n this.resize(0);\n };\n StructArray.serialize = function serialize2(array2, transferables) {\n array2._trim();\n if (transferables) {\n array2.isTransferred = true;\n transferables.push(array2.arrayBuffer);\n }\n return {\n length: array2.length,\n arrayBuffer: array2.arrayBuffer\n };\n };\n StructArray.deserialize = function deserialize2(input) {\n var structArray = Object.create(this.prototype);\n structArray.arrayBuffer = input.arrayBuffer;\n structArray.length = input.length;\n structArray.capacity = input.arrayBuffer.byteLength / structArray.bytesPerElement;\n structArray._refreshViews();\n return structArray;\n };\n StructArray.prototype._trim = function _trim() {\n if (this.length !== this.capacity) {\n this.capacity = this.length;\n this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement);\n this._refreshViews();\n }\n };\n StructArray.prototype.clear = function clear() {\n this.length = 0;\n };\n StructArray.prototype.resize = function resize(n) {\n this.reserve(n);\n this.length = n;\n };\n StructArray.prototype.reserve = function reserve(n) {\n if (n > this.capacity) {\n this.capacity = Math.max(n, Math.floor(this.capacity * RESIZE_MULTIPLIER), DEFAULT_CAPACITY);\n this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement);\n var oldUint8Array = this.uint8;\n this._refreshViews();\n if (oldUint8Array) {\n this.uint8.set(oldUint8Array);\n }\n }\n };\n StructArray.prototype._refreshViews = function _refreshViews() {\n throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\");\n };\n function createLayout(members2, alignment) {\n if (alignment === void 0)\n alignment = 1;\n var offset = 0;\n var maxSize = 0;\n var layoutMembers = members2.map(function(member) {\n var typeSize = sizeOf(member.type);\n var memberOffset = offset = align(offset, Math.max(alignment, typeSize));\n var components = member.components || 1;\n maxSize = Math.max(maxSize, typeSize);\n offset += typeSize * components;\n return {\n name: member.name,\n type: member.type,\n components,\n offset: memberOffset\n };\n });\n var size = align(offset, Math.max(maxSize, alignment));\n return {\n members: layoutMembers,\n size,\n alignment\n };\n }\n function sizeOf(type) {\n return viewTypes[type].BYTES_PER_ELEMENT;\n }\n function align(offset, size) {\n return Math.ceil(offset / size) * size;\n }\n var StructArrayLayout2i4 = function(StructArray2) {\n function StructArrayLayout2i42() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i42.__proto__ = StructArray2;\n StructArrayLayout2i42.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i42.prototype.constructor = StructArrayLayout2i42;\n StructArrayLayout2i42.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2i42.prototype.emplaceBack = function emplaceBack(v0, v1) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1);\n };\n StructArrayLayout2i42.prototype.emplace = function emplace(i, v0, v1) {\n var o2 = i * 2;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n return i;\n };\n return StructArrayLayout2i42;\n }(StructArray);\n StructArrayLayout2i4.prototype.bytesPerElement = 4;\n register(\"StructArrayLayout2i4\", StructArrayLayout2i4);\n var StructArrayLayout4i8 = function(StructArray2) {\n function StructArrayLayout4i82() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout4i82.__proto__ = StructArray2;\n StructArrayLayout4i82.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout4i82.prototype.constructor = StructArrayLayout4i82;\n StructArrayLayout4i82.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout4i82.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3);\n };\n StructArrayLayout4i82.prototype.emplace = function emplace(i, v0, v1, v2, v3) {\n var o2 = i * 4;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n return i;\n };\n return StructArrayLayout4i82;\n }(StructArray);\n StructArrayLayout4i8.prototype.bytesPerElement = 8;\n register(\"StructArrayLayout4i8\", StructArrayLayout4i8);\n var StructArrayLayout2i4i12 = function(StructArray2) {\n function StructArrayLayout2i4i122() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i4i122.__proto__ = StructArray2;\n StructArrayLayout2i4i122.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i4i122.prototype.constructor = StructArrayLayout2i4i122;\n StructArrayLayout2i4i122.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2i4i122.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5);\n };\n StructArrayLayout2i4i122.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5) {\n var o2 = i * 6;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.int16[o2 + 4] = v4;\n this.int16[o2 + 5] = v5;\n return i;\n };\n return StructArrayLayout2i4i122;\n }(StructArray);\n StructArrayLayout2i4i12.prototype.bytesPerElement = 12;\n register(\"StructArrayLayout2i4i12\", StructArrayLayout2i4i12);\n var StructArrayLayout2i4ub8 = function(StructArray2) {\n function StructArrayLayout2i4ub82() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i4ub82.__proto__ = StructArray2;\n StructArrayLayout2i4ub82.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i4ub82.prototype.constructor = StructArrayLayout2i4ub82;\n StructArrayLayout2i4ub82.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2i4ub82.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5);\n };\n StructArrayLayout2i4ub82.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5) {\n var o2 = i * 4;\n var o1 = i * 8;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.uint8[o1 + 4] = v2;\n this.uint8[o1 + 5] = v3;\n this.uint8[o1 + 6] = v4;\n this.uint8[o1 + 7] = v5;\n return i;\n };\n return StructArrayLayout2i4ub82;\n }(StructArray);\n StructArrayLayout2i4ub8.prototype.bytesPerElement = 8;\n register(\"StructArrayLayout2i4ub8\", StructArrayLayout2i4ub8);\n var StructArrayLayout2f8 = function(StructArray2) {\n function StructArrayLayout2f82() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2f82.__proto__ = StructArray2;\n StructArrayLayout2f82.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2f82.prototype.constructor = StructArrayLayout2f82;\n StructArrayLayout2f82.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout2f82.prototype.emplaceBack = function emplaceBack(v0, v1) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1);\n };\n StructArrayLayout2f82.prototype.emplace = function emplace(i, v0, v1) {\n var o4 = i * 2;\n this.float32[o4 + 0] = v0;\n this.float32[o4 + 1] = v1;\n return i;\n };\n return StructArrayLayout2f82;\n }(StructArray);\n StructArrayLayout2f8.prototype.bytesPerElement = 8;\n register(\"StructArrayLayout2f8\", StructArrayLayout2f8);\n var StructArrayLayout10ui20 = function(StructArray2) {\n function StructArrayLayout10ui202() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout10ui202.__proto__ = StructArray2;\n StructArrayLayout10ui202.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout10ui202.prototype.constructor = StructArrayLayout10ui202;\n StructArrayLayout10ui202.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout10ui202.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);\n };\n StructArrayLayout10ui202.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {\n var o2 = i * 10;\n this.uint16[o2 + 0] = v0;\n this.uint16[o2 + 1] = v1;\n this.uint16[o2 + 2] = v2;\n this.uint16[o2 + 3] = v3;\n this.uint16[o2 + 4] = v4;\n this.uint16[o2 + 5] = v5;\n this.uint16[o2 + 6] = v6;\n this.uint16[o2 + 7] = v7;\n this.uint16[o2 + 8] = v8;\n this.uint16[o2 + 9] = v9;\n return i;\n };\n return StructArrayLayout10ui202;\n }(StructArray);\n StructArrayLayout10ui20.prototype.bytesPerElement = 20;\n register(\"StructArrayLayout10ui20\", StructArrayLayout10ui20);\n var StructArrayLayout4i4ui4i24 = function(StructArray2) {\n function StructArrayLayout4i4ui4i242() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout4i4ui4i242.__proto__ = StructArray2;\n StructArrayLayout4i4ui4i242.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout4i4ui4i242.prototype.constructor = StructArrayLayout4i4ui4i242;\n StructArrayLayout4i4ui4i242.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout4i4ui4i242.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);\n };\n StructArrayLayout4i4ui4i242.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) {\n var o2 = i * 12;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.uint16[o2 + 4] = v4;\n this.uint16[o2 + 5] = v5;\n this.uint16[o2 + 6] = v6;\n this.uint16[o2 + 7] = v7;\n this.int16[o2 + 8] = v8;\n this.int16[o2 + 9] = v9;\n this.int16[o2 + 10] = v10;\n this.int16[o2 + 11] = v11;\n return i;\n };\n return StructArrayLayout4i4ui4i242;\n }(StructArray);\n StructArrayLayout4i4ui4i24.prototype.bytesPerElement = 24;\n register(\"StructArrayLayout4i4ui4i24\", StructArrayLayout4i4ui4i24);\n var StructArrayLayout3f12 = function(StructArray2) {\n function StructArrayLayout3f122() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout3f122.__proto__ = StructArray2;\n StructArrayLayout3f122.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout3f122.prototype.constructor = StructArrayLayout3f122;\n StructArrayLayout3f122.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout3f122.prototype.emplaceBack = function emplaceBack(v0, v1, v2) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2);\n };\n StructArrayLayout3f122.prototype.emplace = function emplace(i, v0, v1, v2) {\n var o4 = i * 3;\n this.float32[o4 + 0] = v0;\n this.float32[o4 + 1] = v1;\n this.float32[o4 + 2] = v2;\n return i;\n };\n return StructArrayLayout3f122;\n }(StructArray);\n StructArrayLayout3f12.prototype.bytesPerElement = 12;\n register(\"StructArrayLayout3f12\", StructArrayLayout3f12);\n var StructArrayLayout1ul4 = function(StructArray2) {\n function StructArrayLayout1ul42() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout1ul42.__proto__ = StructArray2;\n StructArrayLayout1ul42.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout1ul42.prototype.constructor = StructArrayLayout1ul42;\n StructArrayLayout1ul42.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n };\n StructArrayLayout1ul42.prototype.emplaceBack = function emplaceBack(v0) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0);\n };\n StructArrayLayout1ul42.prototype.emplace = function emplace(i, v0) {\n var o4 = i * 1;\n this.uint32[o4 + 0] = v0;\n return i;\n };\n return StructArrayLayout1ul42;\n }(StructArray);\n StructArrayLayout1ul4.prototype.bytesPerElement = 4;\n register(\"StructArrayLayout1ul4\", StructArrayLayout1ul4);\n var StructArrayLayout6i1ul2ui20 = function(StructArray2) {\n function StructArrayLayout6i1ul2ui202() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout6i1ul2ui202.__proto__ = StructArray2;\n StructArrayLayout6i1ul2ui202.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout6i1ul2ui202.prototype.constructor = StructArrayLayout6i1ul2ui202;\n StructArrayLayout6i1ul2ui202.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout6i1ul2ui202.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8);\n };\n StructArrayLayout6i1ul2ui202.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8) {\n var o2 = i * 10;\n var o4 = i * 5;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.int16[o2 + 4] = v4;\n this.int16[o2 + 5] = v5;\n this.uint32[o4 + 3] = v6;\n this.uint16[o2 + 8] = v7;\n this.uint16[o2 + 9] = v8;\n return i;\n };\n return StructArrayLayout6i1ul2ui202;\n }(StructArray);\n StructArrayLayout6i1ul2ui20.prototype.bytesPerElement = 20;\n register(\"StructArrayLayout6i1ul2ui20\", StructArrayLayout6i1ul2ui20);\n var StructArrayLayout2i2i2i12 = function(StructArray2) {\n function StructArrayLayout2i2i2i122() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i2i2i122.__proto__ = StructArray2;\n StructArrayLayout2i2i2i122.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i2i2i122.prototype.constructor = StructArrayLayout2i2i2i122;\n StructArrayLayout2i2i2i122.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2i2i2i122.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5);\n };\n StructArrayLayout2i2i2i122.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5) {\n var o2 = i * 6;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.int16[o2 + 4] = v4;\n this.int16[o2 + 5] = v5;\n return i;\n };\n return StructArrayLayout2i2i2i122;\n }(StructArray);\n StructArrayLayout2i2i2i12.prototype.bytesPerElement = 12;\n register(\"StructArrayLayout2i2i2i12\", StructArrayLayout2i2i2i12);\n var StructArrayLayout2f1f2i16 = function(StructArray2) {\n function StructArrayLayout2f1f2i162() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2f1f2i162.__proto__ = StructArray2;\n StructArrayLayout2f1f2i162.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2f1f2i162.prototype.constructor = StructArrayLayout2f1f2i162;\n StructArrayLayout2f1f2i162.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2f1f2i162.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4);\n };\n StructArrayLayout2f1f2i162.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4) {\n var o4 = i * 4;\n var o2 = i * 8;\n this.float32[o4 + 0] = v0;\n this.float32[o4 + 1] = v1;\n this.float32[o4 + 2] = v2;\n this.int16[o2 + 6] = v3;\n this.int16[o2 + 7] = v4;\n return i;\n };\n return StructArrayLayout2f1f2i162;\n }(StructArray);\n StructArrayLayout2f1f2i16.prototype.bytesPerElement = 16;\n register(\"StructArrayLayout2f1f2i16\", StructArrayLayout2f1f2i16);\n var StructArrayLayout2ub2f12 = function(StructArray2) {\n function StructArrayLayout2ub2f122() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2ub2f122.__proto__ = StructArray2;\n StructArrayLayout2ub2f122.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2ub2f122.prototype.constructor = StructArrayLayout2ub2f122;\n StructArrayLayout2ub2f122.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout2ub2f122.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3);\n };\n StructArrayLayout2ub2f122.prototype.emplace = function emplace(i, v0, v1, v2, v3) {\n var o1 = i * 12;\n var o4 = i * 3;\n this.uint8[o1 + 0] = v0;\n this.uint8[o1 + 1] = v1;\n this.float32[o4 + 1] = v2;\n this.float32[o4 + 2] = v3;\n return i;\n };\n return StructArrayLayout2ub2f122;\n }(StructArray);\n StructArrayLayout2ub2f12.prototype.bytesPerElement = 12;\n register(\"StructArrayLayout2ub2f12\", StructArrayLayout2ub2f12);\n var StructArrayLayout3ui6 = function(StructArray2) {\n function StructArrayLayout3ui62() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout3ui62.__proto__ = StructArray2;\n StructArrayLayout3ui62.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout3ui62.prototype.constructor = StructArrayLayout3ui62;\n StructArrayLayout3ui62.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout3ui62.prototype.emplaceBack = function emplaceBack(v0, v1, v2) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2);\n };\n StructArrayLayout3ui62.prototype.emplace = function emplace(i, v0, v1, v2) {\n var o2 = i * 3;\n this.uint16[o2 + 0] = v0;\n this.uint16[o2 + 1] = v1;\n this.uint16[o2 + 2] = v2;\n return i;\n };\n return StructArrayLayout3ui62;\n }(StructArray);\n StructArrayLayout3ui6.prototype.bytesPerElement = 6;\n register(\"StructArrayLayout3ui6\", StructArrayLayout3ui6);\n var StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48 = function(StructArray2) {\n function StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.__proto__ = StructArray2;\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype.constructor = StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482;\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16);\n };\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) {\n var o2 = i * 24;\n var o4 = i * 12;\n var o1 = i * 48;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.uint16[o2 + 2] = v2;\n this.uint16[o2 + 3] = v3;\n this.uint32[o4 + 2] = v4;\n this.uint32[o4 + 3] = v5;\n this.uint32[o4 + 4] = v6;\n this.uint16[o2 + 10] = v7;\n this.uint16[o2 + 11] = v8;\n this.uint16[o2 + 12] = v9;\n this.float32[o4 + 7] = v10;\n this.float32[o4 + 8] = v11;\n this.uint8[o1 + 36] = v12;\n this.uint8[o1 + 37] = v13;\n this.uint8[o1 + 38] = v14;\n this.uint32[o4 + 10] = v15;\n this.int16[o2 + 22] = v16;\n return i;\n };\n return StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482;\n }(StructArray);\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48.prototype.bytesPerElement = 48;\n register(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\", StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48);\n var StructArrayLayout8i15ui1ul4f68 = function(StructArray2) {\n function StructArrayLayout8i15ui1ul4f682() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout8i15ui1ul4f682.__proto__ = StructArray2;\n StructArrayLayout8i15ui1ul4f682.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout8i15ui1ul4f682.prototype.constructor = StructArrayLayout8i15ui1ul4f682;\n StructArrayLayout8i15ui1ul4f682.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout8i15ui1ul4f682.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);\n };\n StructArrayLayout8i15ui1ul4f682.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) {\n var o2 = i * 34;\n var o4 = i * 17;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.int16[o2 + 4] = v4;\n this.int16[o2 + 5] = v5;\n this.int16[o2 + 6] = v6;\n this.int16[o2 + 7] = v7;\n this.uint16[o2 + 8] = v8;\n this.uint16[o2 + 9] = v9;\n this.uint16[o2 + 10] = v10;\n this.uint16[o2 + 11] = v11;\n this.uint16[o2 + 12] = v12;\n this.uint16[o2 + 13] = v13;\n this.uint16[o2 + 14] = v14;\n this.uint16[o2 + 15] = v15;\n this.uint16[o2 + 16] = v16;\n this.uint16[o2 + 17] = v17;\n this.uint16[o2 + 18] = v18;\n this.uint16[o2 + 19] = v19;\n this.uint16[o2 + 20] = v20;\n this.uint16[o2 + 21] = v21;\n this.uint16[o2 + 22] = v22;\n this.uint32[o4 + 12] = v23;\n this.float32[o4 + 13] = v24;\n this.float32[o4 + 14] = v25;\n this.float32[o4 + 15] = v26;\n this.float32[o4 + 16] = v27;\n return i;\n };\n return StructArrayLayout8i15ui1ul4f682;\n }(StructArray);\n StructArrayLayout8i15ui1ul4f68.prototype.bytesPerElement = 68;\n register(\"StructArrayLayout8i15ui1ul4f68\", StructArrayLayout8i15ui1ul4f68);\n var StructArrayLayout1f4 = function(StructArray2) {\n function StructArrayLayout1f42() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout1f42.__proto__ = StructArray2;\n StructArrayLayout1f42.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout1f42.prototype.constructor = StructArrayLayout1f42;\n StructArrayLayout1f42.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout1f42.prototype.emplaceBack = function emplaceBack(v0) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0);\n };\n StructArrayLayout1f42.prototype.emplace = function emplace(i, v0) {\n var o4 = i * 1;\n this.float32[o4 + 0] = v0;\n return i;\n };\n return StructArrayLayout1f42;\n }(StructArray);\n StructArrayLayout1f4.prototype.bytesPerElement = 4;\n register(\"StructArrayLayout1f4\", StructArrayLayout1f4);\n var StructArrayLayout3i6 = function(StructArray2) {\n function StructArrayLayout3i62() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout3i62.__proto__ = StructArray2;\n StructArrayLayout3i62.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout3i62.prototype.constructor = StructArrayLayout3i62;\n StructArrayLayout3i62.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout3i62.prototype.emplaceBack = function emplaceBack(v0, v1, v2) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2);\n };\n StructArrayLayout3i62.prototype.emplace = function emplace(i, v0, v1, v2) {\n var o2 = i * 3;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n return i;\n };\n return StructArrayLayout3i62;\n }(StructArray);\n StructArrayLayout3i6.prototype.bytesPerElement = 6;\n register(\"StructArrayLayout3i6\", StructArrayLayout3i6);\n var StructArrayLayout1ul2ui8 = function(StructArray2) {\n function StructArrayLayout1ul2ui82() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout1ul2ui82.__proto__ = StructArray2;\n StructArrayLayout1ul2ui82.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout1ul2ui82.prototype.constructor = StructArrayLayout1ul2ui82;\n StructArrayLayout1ul2ui82.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout1ul2ui82.prototype.emplaceBack = function emplaceBack(v0, v1, v2) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2);\n };\n StructArrayLayout1ul2ui82.prototype.emplace = function emplace(i, v0, v1, v2) {\n var o4 = i * 2;\n var o2 = i * 4;\n this.uint32[o4 + 0] = v0;\n this.uint16[o2 + 2] = v1;\n this.uint16[o2 + 3] = v2;\n return i;\n };\n return StructArrayLayout1ul2ui82;\n }(StructArray);\n StructArrayLayout1ul2ui8.prototype.bytesPerElement = 8;\n register(\"StructArrayLayout1ul2ui8\", StructArrayLayout1ul2ui8);\n var StructArrayLayout2ui4 = function(StructArray2) {\n function StructArrayLayout2ui42() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2ui42.__proto__ = StructArray2;\n StructArrayLayout2ui42.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2ui42.prototype.constructor = StructArrayLayout2ui42;\n StructArrayLayout2ui42.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout2ui42.prototype.emplaceBack = function emplaceBack(v0, v1) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1);\n };\n StructArrayLayout2ui42.prototype.emplace = function emplace(i, v0, v1) {\n var o2 = i * 2;\n this.uint16[o2 + 0] = v0;\n this.uint16[o2 + 1] = v1;\n return i;\n };\n return StructArrayLayout2ui42;\n }(StructArray);\n StructArrayLayout2ui4.prototype.bytesPerElement = 4;\n register(\"StructArrayLayout2ui4\", StructArrayLayout2ui4);\n var StructArrayLayout1ui2 = function(StructArray2) {\n function StructArrayLayout1ui22() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout1ui22.__proto__ = StructArray2;\n StructArrayLayout1ui22.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout1ui22.prototype.constructor = StructArrayLayout1ui22;\n StructArrayLayout1ui22.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout1ui22.prototype.emplaceBack = function emplaceBack(v0) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0);\n };\n StructArrayLayout1ui22.prototype.emplace = function emplace(i, v0) {\n var o2 = i * 1;\n this.uint16[o2 + 0] = v0;\n return i;\n };\n return StructArrayLayout1ui22;\n }(StructArray);\n StructArrayLayout1ui2.prototype.bytesPerElement = 2;\n register(\"StructArrayLayout1ui2\", StructArrayLayout1ui2);\n var StructArrayLayout4f16 = function(StructArray2) {\n function StructArrayLayout4f162() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout4f162.__proto__ = StructArray2;\n StructArrayLayout4f162.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout4f162.prototype.constructor = StructArrayLayout4f162;\n StructArrayLayout4f162.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout4f162.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3);\n };\n StructArrayLayout4f162.prototype.emplace = function emplace(i, v0, v1, v2, v3) {\n var o4 = i * 4;\n this.float32[o4 + 0] = v0;\n this.float32[o4 + 1] = v1;\n this.float32[o4 + 2] = v2;\n this.float32[o4 + 3] = v3;\n return i;\n };\n return StructArrayLayout4f162;\n }(StructArray);\n StructArrayLayout4f16.prototype.bytesPerElement = 16;\n register(\"StructArrayLayout4f16\", StructArrayLayout4f16);\n var CollisionBoxStruct = function(Struct2) {\n function CollisionBoxStruct2() {\n Struct2.apply(this, arguments);\n }\n if (Struct2)\n CollisionBoxStruct2.__proto__ = Struct2;\n CollisionBoxStruct2.prototype = Object.create(Struct2 && Struct2.prototype);\n CollisionBoxStruct2.prototype.constructor = CollisionBoxStruct2;\n var prototypeAccessors2 = {\n anchorPointX: { configurable: true },\n anchorPointY: { configurable: true },\n x1: { configurable: true },\n y1: { configurable: true },\n x2: { configurable: true },\n y2: { configurable: true },\n featureIndex: { configurable: true },\n sourceLayerIndex: { configurable: true },\n bucketIndex: { configurable: true },\n anchorPoint: { configurable: true }\n };\n prototypeAccessors2.anchorPointX.get = function() {\n return this._structArray.int16[this._pos2 + 0];\n };\n prototypeAccessors2.anchorPointY.get = function() {\n return this._structArray.int16[this._pos2 + 1];\n };\n prototypeAccessors2.x1.get = function() {\n return this._structArray.int16[this._pos2 + 2];\n };\n prototypeAccessors2.y1.get = function() {\n return this._structArray.int16[this._pos2 + 3];\n };\n prototypeAccessors2.x2.get = function() {\n return this._structArray.int16[this._pos2 + 4];\n };\n prototypeAccessors2.y2.get = function() {\n return this._structArray.int16[this._pos2 + 5];\n };\n prototypeAccessors2.featureIndex.get = function() {\n return this._structArray.uint32[this._pos4 + 3];\n };\n prototypeAccessors2.sourceLayerIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 8];\n };\n prototypeAccessors2.bucketIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 9];\n };\n prototypeAccessors2.anchorPoint.get = function() {\n return new pointGeometry(this.anchorPointX, this.anchorPointY);\n };\n Object.defineProperties(CollisionBoxStruct2.prototype, prototypeAccessors2);\n return CollisionBoxStruct2;\n }(Struct);\n CollisionBoxStruct.prototype.size = 20;\n var CollisionBoxArray = function(StructArrayLayout6i1ul2ui202) {\n function CollisionBoxArray2() {\n StructArrayLayout6i1ul2ui202.apply(this, arguments);\n }\n if (StructArrayLayout6i1ul2ui202)\n CollisionBoxArray2.__proto__ = StructArrayLayout6i1ul2ui202;\n CollisionBoxArray2.prototype = Object.create(StructArrayLayout6i1ul2ui202 && StructArrayLayout6i1ul2ui202.prototype);\n CollisionBoxArray2.prototype.constructor = CollisionBoxArray2;\n CollisionBoxArray2.prototype.get = function get2(index) {\n return new CollisionBoxStruct(this, index);\n };\n return CollisionBoxArray2;\n }(StructArrayLayout6i1ul2ui20);\n register(\"CollisionBoxArray\", CollisionBoxArray);\n var PlacedSymbolStruct = function(Struct2) {\n function PlacedSymbolStruct2() {\n Struct2.apply(this, arguments);\n }\n if (Struct2)\n PlacedSymbolStruct2.__proto__ = Struct2;\n PlacedSymbolStruct2.prototype = Object.create(Struct2 && Struct2.prototype);\n PlacedSymbolStruct2.prototype.constructor = PlacedSymbolStruct2;\n var prototypeAccessors$12 = {\n anchorX: { configurable: true },\n anchorY: { configurable: true },\n glyphStartIndex: { configurable: true },\n numGlyphs: { configurable: true },\n vertexStartIndex: { configurable: true },\n lineStartIndex: { configurable: true },\n lineLength: { configurable: true },\n segment: { configurable: true },\n lowerSize: { configurable: true },\n upperSize: { configurable: true },\n lineOffsetX: { configurable: true },\n lineOffsetY: { configurable: true },\n writingMode: { configurable: true },\n placedOrientation: { configurable: true },\n hidden: { configurable: true },\n crossTileID: { configurable: true },\n associatedIconIndex: { configurable: true }\n };\n prototypeAccessors$12.anchorX.get = function() {\n return this._structArray.int16[this._pos2 + 0];\n };\n prototypeAccessors$12.anchorY.get = function() {\n return this._structArray.int16[this._pos2 + 1];\n };\n prototypeAccessors$12.glyphStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 2];\n };\n prototypeAccessors$12.numGlyphs.get = function() {\n return this._structArray.uint16[this._pos2 + 3];\n };\n prototypeAccessors$12.vertexStartIndex.get = function() {\n return this._structArray.uint32[this._pos4 + 2];\n };\n prototypeAccessors$12.lineStartIndex.get = function() {\n return this._structArray.uint32[this._pos4 + 3];\n };\n prototypeAccessors$12.lineLength.get = function() {\n return this._structArray.uint32[this._pos4 + 4];\n };\n prototypeAccessors$12.segment.get = function() {\n return this._structArray.uint16[this._pos2 + 10];\n };\n prototypeAccessors$12.lowerSize.get = function() {\n return this._structArray.uint16[this._pos2 + 11];\n };\n prototypeAccessors$12.upperSize.get = function() {\n return this._structArray.uint16[this._pos2 + 12];\n };\n prototypeAccessors$12.lineOffsetX.get = function() {\n return this._structArray.float32[this._pos4 + 7];\n };\n prototypeAccessors$12.lineOffsetY.get = function() {\n return this._structArray.float32[this._pos4 + 8];\n };\n prototypeAccessors$12.writingMode.get = function() {\n return this._structArray.uint8[this._pos1 + 36];\n };\n prototypeAccessors$12.placedOrientation.get = function() {\n return this._structArray.uint8[this._pos1 + 37];\n };\n prototypeAccessors$12.placedOrientation.set = function(x) {\n this._structArray.uint8[this._pos1 + 37] = x;\n };\n prototypeAccessors$12.hidden.get = function() {\n return this._structArray.uint8[this._pos1 + 38];\n };\n prototypeAccessors$12.hidden.set = function(x) {\n this._structArray.uint8[this._pos1 + 38] = x;\n };\n prototypeAccessors$12.crossTileID.get = function() {\n return this._structArray.uint32[this._pos4 + 10];\n };\n prototypeAccessors$12.crossTileID.set = function(x) {\n this._structArray.uint32[this._pos4 + 10] = x;\n };\n prototypeAccessors$12.associatedIconIndex.get = function() {\n return this._structArray.int16[this._pos2 + 22];\n };\n Object.defineProperties(PlacedSymbolStruct2.prototype, prototypeAccessors$12);\n return PlacedSymbolStruct2;\n }(Struct);\n PlacedSymbolStruct.prototype.size = 48;\n var PlacedSymbolArray = function(StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482) {\n function PlacedSymbolArray2() {\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.apply(this, arguments);\n }\n if (StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482)\n PlacedSymbolArray2.__proto__ = StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482;\n PlacedSymbolArray2.prototype = Object.create(StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482 && StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype);\n PlacedSymbolArray2.prototype.constructor = PlacedSymbolArray2;\n PlacedSymbolArray2.prototype.get = function get2(index) {\n return new PlacedSymbolStruct(this, index);\n };\n return PlacedSymbolArray2;\n }(StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48);\n register(\"PlacedSymbolArray\", PlacedSymbolArray);\n var SymbolInstanceStruct = function(Struct2) {\n function SymbolInstanceStruct2() {\n Struct2.apply(this, arguments);\n }\n if (Struct2)\n SymbolInstanceStruct2.__proto__ = Struct2;\n SymbolInstanceStruct2.prototype = Object.create(Struct2 && Struct2.prototype);\n SymbolInstanceStruct2.prototype.constructor = SymbolInstanceStruct2;\n var prototypeAccessors$2 = {\n anchorX: { configurable: true },\n anchorY: { configurable: true },\n rightJustifiedTextSymbolIndex: { configurable: true },\n centerJustifiedTextSymbolIndex: { configurable: true },\n leftJustifiedTextSymbolIndex: { configurable: true },\n verticalPlacedTextSymbolIndex: { configurable: true },\n placedIconSymbolIndex: { configurable: true },\n verticalPlacedIconSymbolIndex: { configurable: true },\n key: { configurable: true },\n textBoxStartIndex: { configurable: true },\n textBoxEndIndex: { configurable: true },\n verticalTextBoxStartIndex: { configurable: true },\n verticalTextBoxEndIndex: { configurable: true },\n iconBoxStartIndex: { configurable: true },\n iconBoxEndIndex: { configurable: true },\n verticalIconBoxStartIndex: { configurable: true },\n verticalIconBoxEndIndex: { configurable: true },\n featureIndex: { configurable: true },\n numHorizontalGlyphVertices: { configurable: true },\n numVerticalGlyphVertices: { configurable: true },\n numIconVertices: { configurable: true },\n numVerticalIconVertices: { configurable: true },\n useRuntimeCollisionCircles: { configurable: true },\n crossTileID: { configurable: true },\n textBoxScale: { configurable: true },\n textOffset0: { configurable: true },\n textOffset1: { configurable: true },\n collisionCircleDiameter: { configurable: true }\n };\n prototypeAccessors$2.anchorX.get = function() {\n return this._structArray.int16[this._pos2 + 0];\n };\n prototypeAccessors$2.anchorY.get = function() {\n return this._structArray.int16[this._pos2 + 1];\n };\n prototypeAccessors$2.rightJustifiedTextSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 2];\n };\n prototypeAccessors$2.centerJustifiedTextSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 3];\n };\n prototypeAccessors$2.leftJustifiedTextSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 4];\n };\n prototypeAccessors$2.verticalPlacedTextSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 5];\n };\n prototypeAccessors$2.placedIconSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 6];\n };\n prototypeAccessors$2.verticalPlacedIconSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 7];\n };\n prototypeAccessors$2.key.get = function() {\n return this._structArray.uint16[this._pos2 + 8];\n };\n prototypeAccessors$2.textBoxStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 9];\n };\n prototypeAccessors$2.textBoxEndIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 10];\n };\n prototypeAccessors$2.verticalTextBoxStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 11];\n };\n prototypeAccessors$2.verticalTextBoxEndIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 12];\n };\n prototypeAccessors$2.iconBoxStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 13];\n };\n prototypeAccessors$2.iconBoxEndIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 14];\n };\n prototypeAccessors$2.verticalIconBoxStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 15];\n };\n prototypeAccessors$2.verticalIconBoxEndIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 16];\n };\n prototypeAccessors$2.featureIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 17];\n };\n prototypeAccessors$2.numHorizontalGlyphVertices.get = function() {\n return this._structArray.uint16[this._pos2 + 18];\n };\n prototypeAccessors$2.numVerticalGlyphVertices.get = function() {\n return this._structArray.uint16[this._pos2 + 19];\n };\n prototypeAccessors$2.numIconVertices.get = function() {\n return this._structArray.uint16[this._pos2 + 20];\n };\n prototypeAccessors$2.numVerticalIconVertices.get = function() {\n return this._structArray.uint16[this._pos2 + 21];\n };\n prototypeAccessors$2.useRuntimeCollisionCircles.get = function() {\n return this._structArray.uint16[this._pos2 + 22];\n };\n prototypeAccessors$2.crossTileID.get = function() {\n return this._structArray.uint32[this._pos4 + 12];\n };\n prototypeAccessors$2.crossTileID.set = function(x) {\n this._structArray.uint32[this._pos4 + 12] = x;\n };\n prototypeAccessors$2.textBoxScale.get = function() {\n return this._structArray.float32[this._pos4 + 13];\n };\n prototypeAccessors$2.textOffset0.get = function() {\n return this._structArray.float32[this._pos4 + 14];\n };\n prototypeAccessors$2.textOffset1.get = function() {\n return this._structArray.float32[this._pos4 + 15];\n };\n prototypeAccessors$2.collisionCircleDiameter.get = function() {\n return this._structArray.float32[this._pos4 + 16];\n };\n Object.defineProperties(SymbolInstanceStruct2.prototype, prototypeAccessors$2);\n return SymbolInstanceStruct2;\n }(Struct);\n SymbolInstanceStruct.prototype.size = 68;\n var SymbolInstanceArray = function(StructArrayLayout8i15ui1ul4f682) {\n function SymbolInstanceArray2() {\n StructArrayLayout8i15ui1ul4f682.apply(this, arguments);\n }\n if (StructArrayLayout8i15ui1ul4f682)\n SymbolInstanceArray2.__proto__ = StructArrayLayout8i15ui1ul4f682;\n SymbolInstanceArray2.prototype = Object.create(StructArrayLayout8i15ui1ul4f682 && StructArrayLayout8i15ui1ul4f682.prototype);\n SymbolInstanceArray2.prototype.constructor = SymbolInstanceArray2;\n SymbolInstanceArray2.prototype.get = function get2(index) {\n return new SymbolInstanceStruct(this, index);\n };\n return SymbolInstanceArray2;\n }(StructArrayLayout8i15ui1ul4f68);\n register(\"SymbolInstanceArray\", SymbolInstanceArray);\n var GlyphOffsetArray = function(StructArrayLayout1f42) {\n function GlyphOffsetArray2() {\n StructArrayLayout1f42.apply(this, arguments);\n }\n if (StructArrayLayout1f42)\n GlyphOffsetArray2.__proto__ = StructArrayLayout1f42;\n GlyphOffsetArray2.prototype = Object.create(StructArrayLayout1f42 && StructArrayLayout1f42.prototype);\n GlyphOffsetArray2.prototype.constructor = GlyphOffsetArray2;\n GlyphOffsetArray2.prototype.getoffsetX = function getoffsetX(index) {\n return this.float32[index * 1 + 0];\n };\n return GlyphOffsetArray2;\n }(StructArrayLayout1f4);\n register(\"GlyphOffsetArray\", GlyphOffsetArray);\n var SymbolLineVertexArray = function(StructArrayLayout3i62) {\n function SymbolLineVertexArray2() {\n StructArrayLayout3i62.apply(this, arguments);\n }\n if (StructArrayLayout3i62)\n SymbolLineVertexArray2.__proto__ = StructArrayLayout3i62;\n SymbolLineVertexArray2.prototype = Object.create(StructArrayLayout3i62 && StructArrayLayout3i62.prototype);\n SymbolLineVertexArray2.prototype.constructor = SymbolLineVertexArray2;\n SymbolLineVertexArray2.prototype.getx = function getx(index) {\n return this.int16[index * 3 + 0];\n };\n SymbolLineVertexArray2.prototype.gety = function gety(index) {\n return this.int16[index * 3 + 1];\n };\n SymbolLineVertexArray2.prototype.gettileUnitDistanceFromAnchor = function gettileUnitDistanceFromAnchor(index) {\n return this.int16[index * 3 + 2];\n };\n return SymbolLineVertexArray2;\n }(StructArrayLayout3i6);\n register(\"SymbolLineVertexArray\", SymbolLineVertexArray);\n var FeatureIndexStruct = function(Struct2) {\n function FeatureIndexStruct2() {\n Struct2.apply(this, arguments);\n }\n if (Struct2)\n FeatureIndexStruct2.__proto__ = Struct2;\n FeatureIndexStruct2.prototype = Object.create(Struct2 && Struct2.prototype);\n FeatureIndexStruct2.prototype.constructor = FeatureIndexStruct2;\n var prototypeAccessors$3 = {\n featureIndex: { configurable: true },\n sourceLayerIndex: { configurable: true },\n bucketIndex: { configurable: true }\n };\n prototypeAccessors$3.featureIndex.get = function() {\n return this._structArray.uint32[this._pos4 + 0];\n };\n prototypeAccessors$3.sourceLayerIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 2];\n };\n prototypeAccessors$3.bucketIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 3];\n };\n Object.defineProperties(FeatureIndexStruct2.prototype, prototypeAccessors$3);\n return FeatureIndexStruct2;\n }(Struct);\n FeatureIndexStruct.prototype.size = 8;\n var FeatureIndexArray = function(StructArrayLayout1ul2ui82) {\n function FeatureIndexArray2() {\n StructArrayLayout1ul2ui82.apply(this, arguments);\n }\n if (StructArrayLayout1ul2ui82)\n FeatureIndexArray2.__proto__ = StructArrayLayout1ul2ui82;\n FeatureIndexArray2.prototype = Object.create(StructArrayLayout1ul2ui82 && StructArrayLayout1ul2ui82.prototype);\n FeatureIndexArray2.prototype.constructor = FeatureIndexArray2;\n FeatureIndexArray2.prototype.get = function get2(index) {\n return new FeatureIndexStruct(this, index);\n };\n return FeatureIndexArray2;\n }(StructArrayLayout1ul2ui8);\n register(\"FeatureIndexArray\", FeatureIndexArray);\n var layout$1 = createLayout([{\n name: \"a_pos\",\n components: 2,\n type: \"Int16\"\n }], 4);\n var members = layout$1.members;\n var SegmentVector = function SegmentVector2(segments) {\n if (segments === void 0)\n segments = [];\n this.segments = segments;\n };\n SegmentVector.prototype.prepareSegment = function prepareSegment(numVertices, layoutVertexArray, indexArray, sortKey) {\n var segment = this.segments[this.segments.length - 1];\n if (numVertices > SegmentVector.MAX_VERTEX_ARRAY_LENGTH) {\n warnOnce(\"Max vertices per segment is \" + SegmentVector.MAX_VERTEX_ARRAY_LENGTH + \": bucket requested \" + numVertices);\n }\n if (!segment || segment.vertexLength + numVertices > SegmentVector.MAX_VERTEX_ARRAY_LENGTH || segment.sortKey !== sortKey) {\n segment = {\n vertexOffset: layoutVertexArray.length,\n primitiveOffset: indexArray.length,\n vertexLength: 0,\n primitiveLength: 0\n };\n if (sortKey !== void 0) {\n segment.sortKey = sortKey;\n }\n this.segments.push(segment);\n }\n return segment;\n };\n SegmentVector.prototype.get = function get2() {\n return this.segments;\n };\n SegmentVector.prototype.destroy = function destroy() {\n for (var i = 0, list = this.segments; i < list.length; i += 1) {\n var segment = list[i];\n for (var k in segment.vaos) {\n segment.vaos[k].destroy();\n }\n }\n };\n SegmentVector.simpleSegment = function simpleSegment(vertexOffset, primitiveOffset, vertexLength, primitiveLength) {\n return new SegmentVector([{\n vertexOffset,\n primitiveOffset,\n vertexLength,\n primitiveLength,\n vaos: {},\n sortKey: 0\n }]);\n };\n SegmentVector.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1;\n register(\"SegmentVector\", SegmentVector);\n function packUint8ToFloat(a, b) {\n a = clamp(Math.floor(a), 0, 255);\n b = clamp(Math.floor(b), 0, 255);\n return 256 * a + b;\n }\n var patternAttributes = createLayout([\n {\n name: \"a_pattern_from\",\n components: 4,\n type: \"Uint16\"\n },\n {\n name: \"a_pattern_to\",\n components: 4,\n type: \"Uint16\"\n },\n {\n name: \"a_pixel_ratio_from\",\n components: 1,\n type: \"Uint16\"\n },\n {\n name: \"a_pixel_ratio_to\",\n components: 1,\n type: \"Uint16\"\n }\n ]);\n var murmurhash3_gc = createCommonjsModule(function(module2) {\n function murmurhash3_32_gc(key, seed) {\n var remainder, bytes, h1, h1b, c1, c2, k1, i;\n remainder = key.length & 3;\n bytes = key.length - remainder;\n h1 = seed;\n c1 = 3432918353;\n c2 = 461845907;\n i = 0;\n while (i < bytes) {\n k1 = key.charCodeAt(i) & 255 | (key.charCodeAt(++i) & 255) << 8 | (key.charCodeAt(++i) & 255) << 16 | (key.charCodeAt(++i) & 255) << 24;\n ++i;\n k1 = (k1 & 65535) * c1 + (((k1 >>> 16) * c1 & 65535) << 16) & 4294967295;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = (k1 & 65535) * c2 + (((k1 >>> 16) * c2 & 65535) << 16) & 4294967295;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1b = (h1 & 65535) * 5 + (((h1 >>> 16) * 5 & 65535) << 16) & 4294967295;\n h1 = (h1b & 65535) + 27492 + (((h1b >>> 16) + 58964 & 65535) << 16);\n }\n k1 = 0;\n switch (remainder) {\n case 3:\n k1 ^= (key.charCodeAt(i + 2) & 255) << 16;\n case 2:\n k1 ^= (key.charCodeAt(i + 1) & 255) << 8;\n case 1:\n k1 ^= key.charCodeAt(i) & 255;\n k1 = (k1 & 65535) * c1 + (((k1 >>> 16) * c1 & 65535) << 16) & 4294967295;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = (k1 & 65535) * c2 + (((k1 >>> 16) * c2 & 65535) << 16) & 4294967295;\n h1 ^= k1;\n }\n h1 ^= key.length;\n h1 ^= h1 >>> 16;\n h1 = (h1 & 65535) * 2246822507 + (((h1 >>> 16) * 2246822507 & 65535) << 16) & 4294967295;\n h1 ^= h1 >>> 13;\n h1 = (h1 & 65535) * 3266489909 + (((h1 >>> 16) * 3266489909 & 65535) << 16) & 4294967295;\n h1 ^= h1 >>> 16;\n return h1 >>> 0;\n }\n {\n module2.exports = murmurhash3_32_gc;\n }\n });\n var murmurhash2_gc = createCommonjsModule(function(module2) {\n function murmurhash2_32_gc(str, seed) {\n var l = str.length, h = seed ^ l, i = 0, k;\n while (l >= 4) {\n k = str.charCodeAt(i) & 255 | (str.charCodeAt(++i) & 255) << 8 | (str.charCodeAt(++i) & 255) << 16 | (str.charCodeAt(++i) & 255) << 24;\n k = (k & 65535) * 1540483477 + (((k >>> 16) * 1540483477 & 65535) << 16);\n k ^= k >>> 24;\n k = (k & 65535) * 1540483477 + (((k >>> 16) * 1540483477 & 65535) << 16);\n h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16) ^ k;\n l -= 4;\n ++i;\n }\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 255) << 16;\n case 2:\n h ^= (str.charCodeAt(i + 1) & 255) << 8;\n case 1:\n h ^= str.charCodeAt(i) & 255;\n h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16);\n }\n h ^= h >>> 13;\n h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n }\n {\n module2.exports = murmurhash2_32_gc;\n }\n });\n var murmurhashJs = murmurhash3_gc;\n var murmur3_1 = murmurhash3_gc;\n var murmur2_1 = murmurhash2_gc;\n murmurhashJs.murmur3 = murmur3_1;\n murmurhashJs.murmur2 = murmur2_1;\n var FeaturePositionMap = function FeaturePositionMap2() {\n this.ids = [];\n this.positions = [];\n this.indexed = false;\n };\n FeaturePositionMap.prototype.add = function add2(id2, index, start, end) {\n this.ids.push(getNumericId(id2));\n this.positions.push(index, start, end);\n };\n FeaturePositionMap.prototype.getPositions = function getPositions(id2) {\n var intId = getNumericId(id2);\n var i = 0;\n var j = this.ids.length - 1;\n while (i < j) {\n var m = i + j >> 1;\n if (this.ids[m] >= intId) {\n j = m;\n } else {\n i = m + 1;\n }\n }\n var positions = [];\n while (this.ids[i] === intId) {\n var index = this.positions[3 * i];\n var start = this.positions[3 * i + 1];\n var end = this.positions[3 * i + 2];\n positions.push({\n index,\n start,\n end\n });\n i++;\n }\n return positions;\n };\n FeaturePositionMap.serialize = function serialize2(map, transferables) {\n var ids = new Float64Array(map.ids);\n var positions = new Uint32Array(map.positions);\n sort(ids, positions, 0, ids.length - 1);\n if (transferables) {\n transferables.push(ids.buffer, positions.buffer);\n }\n return {\n ids,\n positions\n };\n };\n FeaturePositionMap.deserialize = function deserialize2(obj) {\n var map = new FeaturePositionMap();\n map.ids = obj.ids;\n map.positions = obj.positions;\n map.indexed = true;\n return map;\n };\n var MAX_SAFE_INTEGER$1 = Math.pow(2, 53) - 1;\n function getNumericId(value) {\n var numValue = +value;\n if (!isNaN(numValue) && numValue <= MAX_SAFE_INTEGER$1) {\n return numValue;\n }\n return murmurhashJs(String(value));\n }\n function sort(ids, positions, left, right) {\n while (left < right) {\n var pivot = ids[left + right >> 1];\n var i = left - 1;\n var j = right + 1;\n while (true) {\n do {\n i++;\n } while (ids[i] < pivot);\n do {\n j--;\n } while (ids[j] > pivot);\n if (i >= j) {\n break;\n }\n swap(ids, i, j);\n swap(positions, 3 * i, 3 * j);\n swap(positions, 3 * i + 1, 3 * j + 1);\n swap(positions, 3 * i + 2, 3 * j + 2);\n }\n if (j - left < right - j) {\n sort(ids, positions, left, j);\n left = j + 1;\n } else {\n sort(ids, positions, j + 1, right);\n right = j;\n }\n }\n }\n function swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n }\n register(\"FeaturePositionMap\", FeaturePositionMap);\n var Uniform = function Uniform2(context, location2) {\n this.gl = context.gl;\n this.location = location2;\n };\n var Uniform1i = function(Uniform2) {\n function Uniform1i2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = 0;\n }\n if (Uniform2)\n Uniform1i2.__proto__ = Uniform2;\n Uniform1i2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform1i2.prototype.constructor = Uniform1i2;\n Uniform1i2.prototype.set = function set(v) {\n if (this.current !== v) {\n this.current = v;\n this.gl.uniform1i(this.location, v);\n }\n };\n return Uniform1i2;\n }(Uniform);\n var Uniform1f = function(Uniform2) {\n function Uniform1f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = 0;\n }\n if (Uniform2)\n Uniform1f2.__proto__ = Uniform2;\n Uniform1f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform1f2.prototype.constructor = Uniform1f2;\n Uniform1f2.prototype.set = function set(v) {\n if (this.current !== v) {\n this.current = v;\n this.gl.uniform1f(this.location, v);\n }\n };\n return Uniform1f2;\n }(Uniform);\n var Uniform2f = function(Uniform2) {\n function Uniform2f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = [\n 0,\n 0\n ];\n }\n if (Uniform2)\n Uniform2f2.__proto__ = Uniform2;\n Uniform2f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform2f2.prototype.constructor = Uniform2f2;\n Uniform2f2.prototype.set = function set(v) {\n if (v[0] !== this.current[0] || v[1] !== this.current[1]) {\n this.current = v;\n this.gl.uniform2f(this.location, v[0], v[1]);\n }\n };\n return Uniform2f2;\n }(Uniform);\n var Uniform3f = function(Uniform2) {\n function Uniform3f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = [\n 0,\n 0,\n 0\n ];\n }\n if (Uniform2)\n Uniform3f2.__proto__ = Uniform2;\n Uniform3f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform3f2.prototype.constructor = Uniform3f2;\n Uniform3f2.prototype.set = function set(v) {\n if (v[0] !== this.current[0] || v[1] !== this.current[1] || v[2] !== this.current[2]) {\n this.current = v;\n this.gl.uniform3f(this.location, v[0], v[1], v[2]);\n }\n };\n return Uniform3f2;\n }(Uniform);\n var Uniform4f = function(Uniform2) {\n function Uniform4f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = [\n 0,\n 0,\n 0,\n 0\n ];\n }\n if (Uniform2)\n Uniform4f2.__proto__ = Uniform2;\n Uniform4f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform4f2.prototype.constructor = Uniform4f2;\n Uniform4f2.prototype.set = function set(v) {\n if (v[0] !== this.current[0] || v[1] !== this.current[1] || v[2] !== this.current[2] || v[3] !== this.current[3]) {\n this.current = v;\n this.gl.uniform4f(this.location, v[0], v[1], v[2], v[3]);\n }\n };\n return Uniform4f2;\n }(Uniform);\n var UniformColor = function(Uniform2) {\n function UniformColor2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = Color2.transparent;\n }\n if (Uniform2)\n UniformColor2.__proto__ = Uniform2;\n UniformColor2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n UniformColor2.prototype.constructor = UniformColor2;\n UniformColor2.prototype.set = function set(v) {\n if (v.r !== this.current.r || v.g !== this.current.g || v.b !== this.current.b || v.a !== this.current.a) {\n this.current = v;\n this.gl.uniform4f(this.location, v.r, v.g, v.b, v.a);\n }\n };\n return UniformColor2;\n }(Uniform);\n var emptyMat4 = new Float32Array(16);\n var UniformMatrix4f = function(Uniform2) {\n function UniformMatrix4f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = emptyMat4;\n }\n if (Uniform2)\n UniformMatrix4f2.__proto__ = Uniform2;\n UniformMatrix4f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n UniformMatrix4f2.prototype.constructor = UniformMatrix4f2;\n UniformMatrix4f2.prototype.set = function set(v) {\n if (v[12] !== this.current[12] || v[0] !== this.current[0]) {\n this.current = v;\n this.gl.uniformMatrix4fv(this.location, false, v);\n return;\n }\n for (var i = 1; i < 16; i++) {\n if (v[i] !== this.current[i]) {\n this.current = v;\n this.gl.uniformMatrix4fv(this.location, false, v);\n break;\n }\n }\n };\n return UniformMatrix4f2;\n }(Uniform);\n function packColor(color3) {\n return [\n packUint8ToFloat(255 * color3.r, 255 * color3.g),\n packUint8ToFloat(255 * color3.b, 255 * color3.a)\n ];\n }\n var ConstantBinder = function ConstantBinder2(value, names2, type) {\n this.value = value;\n this.uniformNames = names2.map(function(name3) {\n return \"u_\" + name3;\n });\n this.type = type;\n };\n ConstantBinder.prototype.setUniform = function setUniform(uniform, globals, currentValue) {\n uniform.set(currentValue.constantOr(this.value));\n };\n ConstantBinder.prototype.getBinding = function getBinding(context, location2, _) {\n return this.type === \"color\" ? new UniformColor(context, location2) : new Uniform1f(context, location2);\n };\n var CrossFadedConstantBinder = function CrossFadedConstantBinder2(value, names2) {\n this.uniformNames = names2.map(function(name3) {\n return \"u_\" + name3;\n });\n this.patternFrom = null;\n this.patternTo = null;\n this.pixelRatioFrom = 1;\n this.pixelRatioTo = 1;\n };\n CrossFadedConstantBinder.prototype.setConstantPatternPositions = function setConstantPatternPositions(posTo, posFrom) {\n this.pixelRatioFrom = posFrom.pixelRatio;\n this.pixelRatioTo = posTo.pixelRatio;\n this.patternFrom = posFrom.tlbr;\n this.patternTo = posTo.tlbr;\n };\n CrossFadedConstantBinder.prototype.setUniform = function setUniform(uniform, globals, currentValue, uniformName) {\n var pos = uniformName === \"u_pattern_to\" ? this.patternTo : uniformName === \"u_pattern_from\" ? this.patternFrom : uniformName === \"u_pixel_ratio_to\" ? this.pixelRatioTo : uniformName === \"u_pixel_ratio_from\" ? this.pixelRatioFrom : null;\n if (pos) {\n uniform.set(pos);\n }\n };\n CrossFadedConstantBinder.prototype.getBinding = function getBinding(context, location2, name3) {\n return name3.substr(0, 9) === \"u_pattern\" ? new Uniform4f(context, location2) : new Uniform1f(context, location2);\n };\n var SourceExpressionBinder = function SourceExpressionBinder2(expression2, names2, type, PaintVertexArray) {\n this.expression = expression2;\n this.type = type;\n this.maxValue = 0;\n this.paintVertexAttributes = names2.map(function(name3) {\n return {\n name: \"a_\" + name3,\n type: \"Float32\",\n components: type === \"color\" ? 2 : 1,\n offset: 0\n };\n });\n this.paintVertexArray = new PaintVertexArray();\n };\n SourceExpressionBinder.prototype.populatePaintArray = function populatePaintArray(newLength, feature, imagePositions, canonical, formattedSection) {\n var start = this.paintVertexArray.length;\n var value = this.expression.evaluate(new EvaluationParameters(0), feature, {}, canonical, [], formattedSection);\n this.paintVertexArray.resize(newLength);\n this._setPaintValue(start, newLength, value);\n };\n SourceExpressionBinder.prototype.updatePaintArray = function updatePaintArray(start, end, feature, featureState) {\n var value = this.expression.evaluate({ zoom: 0 }, feature, featureState);\n this._setPaintValue(start, end, value);\n };\n SourceExpressionBinder.prototype._setPaintValue = function _setPaintValue(start, end, value) {\n if (this.type === \"color\") {\n var color3 = packColor(value);\n for (var i = start; i < end; i++) {\n this.paintVertexArray.emplace(i, color3[0], color3[1]);\n }\n } else {\n for (var i$1 = start; i$1 < end; i$1++) {\n this.paintVertexArray.emplace(i$1, value);\n }\n this.maxValue = Math.max(this.maxValue, Math.abs(value));\n }\n };\n SourceExpressionBinder.prototype.upload = function upload(context) {\n if (this.paintVertexArray && this.paintVertexArray.arrayBuffer) {\n if (this.paintVertexBuffer && this.paintVertexBuffer.buffer) {\n this.paintVertexBuffer.updateData(this.paintVertexArray);\n } else {\n this.paintVertexBuffer = context.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent);\n }\n }\n };\n SourceExpressionBinder.prototype.destroy = function destroy() {\n if (this.paintVertexBuffer) {\n this.paintVertexBuffer.destroy();\n }\n };\n var CompositeExpressionBinder = function CompositeExpressionBinder2(expression2, names2, type, useIntegerZoom, zoom, PaintVertexArray) {\n this.expression = expression2;\n this.uniformNames = names2.map(function(name3) {\n return \"u_\" + name3 + \"_t\";\n });\n this.type = type;\n this.useIntegerZoom = useIntegerZoom;\n this.zoom = zoom;\n this.maxValue = 0;\n this.paintVertexAttributes = names2.map(function(name3) {\n return {\n name: \"a_\" + name3,\n type: \"Float32\",\n components: type === \"color\" ? 4 : 2,\n offset: 0\n };\n });\n this.paintVertexArray = new PaintVertexArray();\n };\n CompositeExpressionBinder.prototype.populatePaintArray = function populatePaintArray(newLength, feature, imagePositions, canonical, formattedSection) {\n var min = this.expression.evaluate(new EvaluationParameters(this.zoom), feature, {}, canonical, [], formattedSection);\n var max = this.expression.evaluate(new EvaluationParameters(this.zoom + 1), feature, {}, canonical, [], formattedSection);\n var start = this.paintVertexArray.length;\n this.paintVertexArray.resize(newLength);\n this._setPaintValue(start, newLength, min, max);\n };\n CompositeExpressionBinder.prototype.updatePaintArray = function updatePaintArray(start, end, feature, featureState) {\n var min = this.expression.evaluate({ zoom: this.zoom }, feature, featureState);\n var max = this.expression.evaluate({ zoom: this.zoom + 1 }, feature, featureState);\n this._setPaintValue(start, end, min, max);\n };\n CompositeExpressionBinder.prototype._setPaintValue = function _setPaintValue(start, end, min, max) {\n if (this.type === \"color\") {\n var minColor = packColor(min);\n var maxColor = packColor(max);\n for (var i = start; i < end; i++) {\n this.paintVertexArray.emplace(i, minColor[0], minColor[1], maxColor[0], maxColor[1]);\n }\n } else {\n for (var i$1 = start; i$1 < end; i$1++) {\n this.paintVertexArray.emplace(i$1, min, max);\n }\n this.maxValue = Math.max(this.maxValue, Math.abs(min), Math.abs(max));\n }\n };\n CompositeExpressionBinder.prototype.upload = function upload(context) {\n if (this.paintVertexArray && this.paintVertexArray.arrayBuffer) {\n if (this.paintVertexBuffer && this.paintVertexBuffer.buffer) {\n this.paintVertexBuffer.updateData(this.paintVertexArray);\n } else {\n this.paintVertexBuffer = context.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent);\n }\n }\n };\n CompositeExpressionBinder.prototype.destroy = function destroy() {\n if (this.paintVertexBuffer) {\n this.paintVertexBuffer.destroy();\n }\n };\n CompositeExpressionBinder.prototype.setUniform = function setUniform(uniform, globals) {\n var currentZoom = this.useIntegerZoom ? Math.floor(globals.zoom) : globals.zoom;\n var factor = clamp(this.expression.interpolationFactor(currentZoom, this.zoom, this.zoom + 1), 0, 1);\n uniform.set(factor);\n };\n CompositeExpressionBinder.prototype.getBinding = function getBinding(context, location2, _) {\n return new Uniform1f(context, location2);\n };\n var CrossFadedCompositeBinder = function CrossFadedCompositeBinder2(expression2, type, useIntegerZoom, zoom, PaintVertexArray, layerId) {\n this.expression = expression2;\n this.type = type;\n this.useIntegerZoom = useIntegerZoom;\n this.zoom = zoom;\n this.layerId = layerId;\n this.zoomInPaintVertexArray = new PaintVertexArray();\n this.zoomOutPaintVertexArray = new PaintVertexArray();\n };\n CrossFadedCompositeBinder.prototype.populatePaintArray = function populatePaintArray(length, feature, imagePositions) {\n var start = this.zoomInPaintVertexArray.length;\n this.zoomInPaintVertexArray.resize(length);\n this.zoomOutPaintVertexArray.resize(length);\n this._setPaintValues(start, length, feature.patterns && feature.patterns[this.layerId], imagePositions);\n };\n CrossFadedCompositeBinder.prototype.updatePaintArray = function updatePaintArray(start, end, feature, featureState, imagePositions) {\n this._setPaintValues(start, end, feature.patterns && feature.patterns[this.layerId], imagePositions);\n };\n CrossFadedCompositeBinder.prototype._setPaintValues = function _setPaintValues(start, end, patterns, positions) {\n if (!positions || !patterns) {\n return;\n }\n var min = patterns.min;\n var mid = patterns.mid;\n var max = patterns.max;\n var imageMin = positions[min];\n var imageMid = positions[mid];\n var imageMax = positions[max];\n if (!imageMin || !imageMid || !imageMax) {\n return;\n }\n for (var i = start; i < end; i++) {\n this.zoomInPaintVertexArray.emplace(i, imageMid.tl[0], imageMid.tl[1], imageMid.br[0], imageMid.br[1], imageMin.tl[0], imageMin.tl[1], imageMin.br[0], imageMin.br[1], imageMid.pixelRatio, imageMin.pixelRatio);\n this.zoomOutPaintVertexArray.emplace(i, imageMid.tl[0], imageMid.tl[1], imageMid.br[0], imageMid.br[1], imageMax.tl[0], imageMax.tl[1], imageMax.br[0], imageMax.br[1], imageMid.pixelRatio, imageMax.pixelRatio);\n }\n };\n CrossFadedCompositeBinder.prototype.upload = function upload(context) {\n if (this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer) {\n this.zoomInPaintVertexBuffer = context.createVertexBuffer(this.zoomInPaintVertexArray, patternAttributes.members, this.expression.isStateDependent);\n this.zoomOutPaintVertexBuffer = context.createVertexBuffer(this.zoomOutPaintVertexArray, patternAttributes.members, this.expression.isStateDependent);\n }\n };\n CrossFadedCompositeBinder.prototype.destroy = function destroy() {\n if (this.zoomOutPaintVertexBuffer) {\n this.zoomOutPaintVertexBuffer.destroy();\n }\n if (this.zoomInPaintVertexBuffer) {\n this.zoomInPaintVertexBuffer.destroy();\n }\n };\n var ProgramConfiguration = function ProgramConfiguration2(layer2, zoom, filterProperties) {\n this.binders = {};\n this._buffers = [];\n var keys = [];\n for (var property in layer2.paint._values) {\n if (!filterProperties(property)) {\n continue;\n }\n var value = layer2.paint.get(property);\n if (!(value instanceof PossiblyEvaluatedPropertyValue) || !supportsPropertyExpression(value.property.specification)) {\n continue;\n }\n var names2 = paintAttributeNames(property, layer2.type);\n var expression2 = value.value;\n var type = value.property.specification.type;\n var useIntegerZoom = value.property.useIntegerZoom;\n var propType = value.property.specification[\"property-type\"];\n var isCrossFaded = propType === \"cross-faded\" || propType === \"cross-faded-data-driven\";\n if (expression2.kind === \"constant\") {\n this.binders[property] = isCrossFaded ? new CrossFadedConstantBinder(expression2.value, names2) : new ConstantBinder(expression2.value, names2, type);\n keys.push(\"/u_\" + property);\n } else if (expression2.kind === \"source\" || isCrossFaded) {\n var StructArrayLayout = layoutType(property, type, \"source\");\n this.binders[property] = isCrossFaded ? new CrossFadedCompositeBinder(expression2, type, useIntegerZoom, zoom, StructArrayLayout, layer2.id) : new SourceExpressionBinder(expression2, names2, type, StructArrayLayout);\n keys.push(\"/a_\" + property);\n } else {\n var StructArrayLayout$1 = layoutType(property, type, \"composite\");\n this.binders[property] = new CompositeExpressionBinder(expression2, names2, type, useIntegerZoom, zoom, StructArrayLayout$1);\n keys.push(\"/z_\" + property);\n }\n }\n this.cacheKey = keys.sort().join(\"\");\n };\n ProgramConfiguration.prototype.getMaxValue = function getMaxValue(property) {\n var binder = this.binders[property];\n return binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder ? binder.maxValue : 0;\n };\n ProgramConfiguration.prototype.populatePaintArrays = function populatePaintArrays(newLength, feature, imagePositions, canonical, formattedSection) {\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder) {\n binder.populatePaintArray(newLength, feature, imagePositions, canonical, formattedSection);\n }\n }\n };\n ProgramConfiguration.prototype.setConstantPatternPositions = function setConstantPatternPositions(posTo, posFrom) {\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof CrossFadedConstantBinder) {\n binder.setConstantPatternPositions(posTo, posFrom);\n }\n }\n };\n ProgramConfiguration.prototype.updatePaintArrays = function updatePaintArrays(featureStates, featureMap, vtLayer, layer2, imagePositions) {\n var dirty = false;\n for (var id2 in featureStates) {\n var positions = featureMap.getPositions(id2);\n for (var i = 0, list = positions; i < list.length; i += 1) {\n var pos = list[i];\n var feature = vtLayer.feature(pos.index);\n for (var property in this.binders) {\n var binder = this.binders[property];\n if ((binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder) && binder.expression.isStateDependent === true) {\n var value = layer2.paint.get(property);\n binder.expression = value.value;\n binder.updatePaintArray(pos.start, pos.end, feature, featureStates[id2], imagePositions);\n dirty = true;\n }\n }\n }\n }\n return dirty;\n };\n ProgramConfiguration.prototype.defines = function defines() {\n var result = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof ConstantBinder || binder instanceof CrossFadedConstantBinder) {\n result.push.apply(result, binder.uniformNames.map(function(name3) {\n return \"#define HAS_UNIFORM_\" + name3;\n }));\n }\n }\n return result;\n };\n ProgramConfiguration.prototype.getBinderAttributes = function getBinderAttributes() {\n var result = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder) {\n for (var i = 0; i < binder.paintVertexAttributes.length; i++) {\n result.push(binder.paintVertexAttributes[i].name);\n }\n } else if (binder instanceof CrossFadedCompositeBinder) {\n for (var i$1 = 0; i$1 < patternAttributes.members.length; i$1++) {\n result.push(patternAttributes.members[i$1].name);\n }\n }\n }\n return result;\n };\n ProgramConfiguration.prototype.getBinderUniforms = function getBinderUniforms() {\n var uniforms = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof ConstantBinder || binder instanceof CrossFadedConstantBinder || binder instanceof CompositeExpressionBinder) {\n for (var i = 0, list = binder.uniformNames; i < list.length; i += 1) {\n var uniformName = list[i];\n uniforms.push(uniformName);\n }\n }\n }\n return uniforms;\n };\n ProgramConfiguration.prototype.getPaintVertexBuffers = function getPaintVertexBuffers() {\n return this._buffers;\n };\n ProgramConfiguration.prototype.getUniforms = function getUniforms(context, locations) {\n var uniforms = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof ConstantBinder || binder instanceof CrossFadedConstantBinder || binder instanceof CompositeExpressionBinder) {\n for (var i = 0, list = binder.uniformNames; i < list.length; i += 1) {\n var name3 = list[i];\n if (locations[name3]) {\n var binding = binder.getBinding(context, locations[name3], name3);\n uniforms.push({\n name: name3,\n property,\n binding\n });\n }\n }\n }\n }\n return uniforms;\n };\n ProgramConfiguration.prototype.setUniforms = function setUniforms(context, binderUniforms, properties2, globals) {\n for (var i = 0, list = binderUniforms; i < list.length; i += 1) {\n var ref = list[i];\n var name3 = ref.name;\n var property = ref.property;\n var binding = ref.binding;\n this.binders[property].setUniform(binding, globals, properties2.get(property), name3);\n }\n };\n ProgramConfiguration.prototype.updatePaintBuffers = function updatePaintBuffers(crossfade) {\n this._buffers = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (crossfade && binder instanceof CrossFadedCompositeBinder) {\n var patternVertexBuffer = crossfade.fromScale === 2 ? binder.zoomInPaintVertexBuffer : binder.zoomOutPaintVertexBuffer;\n if (patternVertexBuffer) {\n this._buffers.push(patternVertexBuffer);\n }\n } else if ((binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder) && binder.paintVertexBuffer) {\n this._buffers.push(binder.paintVertexBuffer);\n }\n }\n };\n ProgramConfiguration.prototype.upload = function upload(context) {\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder) {\n binder.upload(context);\n }\n }\n this.updatePaintBuffers();\n };\n ProgramConfiguration.prototype.destroy = function destroy() {\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder) {\n binder.destroy();\n }\n }\n };\n var ProgramConfigurationSet = function ProgramConfigurationSet2(layers, zoom, filterProperties) {\n if (filterProperties === void 0)\n filterProperties = function() {\n return true;\n };\n this.programConfigurations = {};\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n this.programConfigurations[layer2.id] = new ProgramConfiguration(layer2, zoom, filterProperties);\n }\n this.needsUpload = false;\n this._featureMap = new FeaturePositionMap();\n this._bufferOffset = 0;\n };\n ProgramConfigurationSet.prototype.populatePaintArrays = function populatePaintArrays(length, feature, index, imagePositions, canonical, formattedSection) {\n for (var key in this.programConfigurations) {\n this.programConfigurations[key].populatePaintArrays(length, feature, imagePositions, canonical, formattedSection);\n }\n if (feature.id !== void 0) {\n this._featureMap.add(feature.id, index, this._bufferOffset, length);\n }\n this._bufferOffset = length;\n this.needsUpload = true;\n };\n ProgramConfigurationSet.prototype.updatePaintArrays = function updatePaintArrays(featureStates, vtLayer, layers, imagePositions) {\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n this.needsUpload = this.programConfigurations[layer2.id].updatePaintArrays(featureStates, this._featureMap, vtLayer, layer2, imagePositions) || this.needsUpload;\n }\n };\n ProgramConfigurationSet.prototype.get = function get2(layerId) {\n return this.programConfigurations[layerId];\n };\n ProgramConfigurationSet.prototype.upload = function upload(context) {\n if (!this.needsUpload) {\n return;\n }\n for (var layerId in this.programConfigurations) {\n this.programConfigurations[layerId].upload(context);\n }\n this.needsUpload = false;\n };\n ProgramConfigurationSet.prototype.destroy = function destroy() {\n for (var layerId in this.programConfigurations) {\n this.programConfigurations[layerId].destroy();\n }\n };\n function paintAttributeNames(property, type) {\n var attributeNameExceptions = {\n \"text-opacity\": [\"opacity\"],\n \"icon-opacity\": [\"opacity\"],\n \"text-color\": [\"fill_color\"],\n \"icon-color\": [\"fill_color\"],\n \"text-halo-color\": [\"halo_color\"],\n \"icon-halo-color\": [\"halo_color\"],\n \"text-halo-blur\": [\"halo_blur\"],\n \"icon-halo-blur\": [\"halo_blur\"],\n \"text-halo-width\": [\"halo_width\"],\n \"icon-halo-width\": [\"halo_width\"],\n \"line-gap-width\": [\"gapwidth\"],\n \"line-pattern\": [\n \"pattern_to\",\n \"pattern_from\",\n \"pixel_ratio_to\",\n \"pixel_ratio_from\"\n ],\n \"fill-pattern\": [\n \"pattern_to\",\n \"pattern_from\",\n \"pixel_ratio_to\",\n \"pixel_ratio_from\"\n ],\n \"fill-extrusion-pattern\": [\n \"pattern_to\",\n \"pattern_from\",\n \"pixel_ratio_to\",\n \"pixel_ratio_from\"\n ]\n };\n return attributeNameExceptions[property] || [property.replace(type + \"-\", \"\").replace(/-/g, \"_\")];\n }\n function getLayoutException(property) {\n var propertyExceptions = {\n \"line-pattern\": {\n \"source\": StructArrayLayout10ui20,\n \"composite\": StructArrayLayout10ui20\n },\n \"fill-pattern\": {\n \"source\": StructArrayLayout10ui20,\n \"composite\": StructArrayLayout10ui20\n },\n \"fill-extrusion-pattern\": {\n \"source\": StructArrayLayout10ui20,\n \"composite\": StructArrayLayout10ui20\n }\n };\n return propertyExceptions[property];\n }\n function layoutType(property, type, binderType) {\n var defaultLayouts = {\n \"color\": {\n \"source\": StructArrayLayout2f8,\n \"composite\": StructArrayLayout4f16\n },\n \"number\": {\n \"source\": StructArrayLayout1f4,\n \"composite\": StructArrayLayout2f8\n }\n };\n var layoutException = getLayoutException(property);\n return layoutException && layoutException[binderType] || defaultLayouts[type][binderType];\n }\n register(\"ConstantBinder\", ConstantBinder);\n register(\"CrossFadedConstantBinder\", CrossFadedConstantBinder);\n register(\"SourceExpressionBinder\", SourceExpressionBinder);\n register(\"CrossFadedCompositeBinder\", CrossFadedCompositeBinder);\n register(\"CompositeExpressionBinder\", CompositeExpressionBinder);\n register(\"ProgramConfiguration\", ProgramConfiguration, { omit: [\"_buffers\"] });\n register(\"ProgramConfigurationSet\", ProgramConfigurationSet);\n var EXTENT$1 = 8192;\n var BITS = 15;\n var MAX = Math.pow(2, BITS - 1) - 1;\n var MIN = -MAX - 1;\n function loadGeometry(feature) {\n var scale2 = EXTENT$1 / feature.extent;\n var geometry = feature.loadGeometry();\n for (var r = 0; r < geometry.length; r++) {\n var ring = geometry[r];\n for (var p = 0; p < ring.length; p++) {\n var point = ring[p];\n var x = Math.round(point.x * scale2);\n var y = Math.round(point.y * scale2);\n point.x = clamp(x, MIN, MAX);\n point.y = clamp(y, MIN, MAX);\n if (x < point.x || x > point.x + 1 || y < point.y || y > point.y + 1) {\n warnOnce(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\");\n }\n }\n }\n return geometry;\n }\n function toEvaluationFeature(feature, needGeometry) {\n return {\n type: feature.type,\n id: feature.id,\n properties: feature.properties,\n geometry: needGeometry ? loadGeometry(feature) : []\n };\n }\n function addCircleVertex(layoutVertexArray, x, y, extrudeX, extrudeY) {\n layoutVertexArray.emplaceBack(x * 2 + (extrudeX + 1) / 2, y * 2 + (extrudeY + 1) / 2);\n }\n var CircleBucket = function CircleBucket2(options) {\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer2) {\n return layer2.id;\n });\n this.index = options.index;\n this.hasPattern = false;\n this.layoutVertexArray = new StructArrayLayout2i4();\n this.indexArray = new StructArrayLayout3ui6();\n this.segments = new SegmentVector();\n this.programConfigurations = new ProgramConfigurationSet(options.layers, options.zoom);\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n };\n CircleBucket.prototype.populate = function populate(features, options, canonical) {\n var styleLayer = this.layers[0];\n var bucketFeatures = [];\n var circleSortKey = null;\n if (styleLayer.type === \"circle\") {\n circleSortKey = styleLayer.layout.get(\"circle-sort-key\");\n }\n for (var i = 0, list = features; i < list.length; i += 1) {\n var ref = list[i];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = this.layers[0]._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!this.layers[0]._featureFilter.filter(new EvaluationParameters(this.zoom), evaluationFeature, canonical)) {\n continue;\n }\n var sortKey = circleSortKey ? circleSortKey.evaluate(evaluationFeature, {}, canonical) : void 0;\n var bucketFeature = {\n id: id2,\n properties: feature.properties,\n type: feature.type,\n sourceLayerIndex,\n index,\n geometry: needGeometry ? evaluationFeature.geometry : loadGeometry(feature),\n patterns: {},\n sortKey\n };\n bucketFeatures.push(bucketFeature);\n }\n if (circleSortKey) {\n bucketFeatures.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$1 = 0, list$1 = bucketFeatures; i$1 < list$1.length; i$1 += 1) {\n var bucketFeature$1 = list$1[i$1];\n var ref$1 = bucketFeature$1;\n var geometry = ref$1.geometry;\n var index$1 = ref$1.index;\n var sourceLayerIndex$1 = ref$1.sourceLayerIndex;\n var feature$1 = features[index$1].feature;\n this.addFeature(bucketFeature$1, geometry, index$1, canonical);\n options.featureIndex.insert(feature$1, geometry, index$1, sourceLayerIndex$1, this.index);\n }\n };\n CircleBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);\n };\n CircleBucket.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0;\n };\n CircleBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n };\n CircleBucket.prototype.upload = function upload(context) {\n if (!this.uploaded) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, members);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n }\n this.programConfigurations.upload(context);\n this.uploaded = true;\n };\n CircleBucket.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n };\n CircleBucket.prototype.addFeature = function addFeature2(feature, geometry, index, canonical) {\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var ring = list$1[i$1];\n for (var i = 0, list = ring; i < list.length; i += 1) {\n var point = list[i];\n var x = point.x;\n var y = point.y;\n if (x < 0 || x >= EXTENT$1 || y < 0 || y >= EXTENT$1) {\n continue;\n }\n var segment = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, feature.sortKey);\n var index$1 = segment.vertexLength;\n addCircleVertex(this.layoutVertexArray, x, y, -1, -1);\n addCircleVertex(this.layoutVertexArray, x, y, 1, -1);\n addCircleVertex(this.layoutVertexArray, x, y, 1, 1);\n addCircleVertex(this.layoutVertexArray, x, y, -1, 1);\n this.indexArray.emplaceBack(index$1, index$1 + 1, index$1 + 2);\n this.indexArray.emplaceBack(index$1, index$1 + 3, index$1 + 2);\n segment.vertexLength += 4;\n segment.primitiveLength += 2;\n }\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, {}, canonical);\n };\n register(\"CircleBucket\", CircleBucket, { omit: [\"layers\"] });\n function polygonIntersectsPolygon(polygonA, polygonB) {\n for (var i = 0; i < polygonA.length; i++) {\n if (polygonContainsPoint(polygonB, polygonA[i])) {\n return true;\n }\n }\n for (var i$1 = 0; i$1 < polygonB.length; i$1++) {\n if (polygonContainsPoint(polygonA, polygonB[i$1])) {\n return true;\n }\n }\n if (lineIntersectsLine(polygonA, polygonB)) {\n return true;\n }\n return false;\n }\n function polygonIntersectsBufferedPoint(polygon, point, radius) {\n if (polygonContainsPoint(polygon, point)) {\n return true;\n }\n if (pointIntersectsBufferedLine(point, polygon, radius)) {\n return true;\n }\n return false;\n }\n function polygonIntersectsMultiPolygon(polygon, multiPolygon) {\n if (polygon.length === 1) {\n return multiPolygonContainsPoint(multiPolygon, polygon[0]);\n }\n for (var m = 0; m < multiPolygon.length; m++) {\n var ring = multiPolygon[m];\n for (var n = 0; n < ring.length; n++) {\n if (polygonContainsPoint(polygon, ring[n])) {\n return true;\n }\n }\n }\n for (var i = 0; i < polygon.length; i++) {\n if (multiPolygonContainsPoint(multiPolygon, polygon[i])) {\n return true;\n }\n }\n for (var k = 0; k < multiPolygon.length; k++) {\n if (lineIntersectsLine(polygon, multiPolygon[k])) {\n return true;\n }\n }\n return false;\n }\n function polygonIntersectsBufferedMultiLine(polygon, multiLine, radius) {\n for (var i = 0; i < multiLine.length; i++) {\n var line = multiLine[i];\n if (polygon.length >= 3) {\n for (var k = 0; k < line.length; k++) {\n if (polygonContainsPoint(polygon, line[k])) {\n return true;\n }\n }\n }\n if (lineIntersectsBufferedLine(polygon, line, radius)) {\n return true;\n }\n }\n return false;\n }\n function lineIntersectsBufferedLine(lineA, lineB, radius) {\n if (lineA.length > 1) {\n if (lineIntersectsLine(lineA, lineB)) {\n return true;\n }\n for (var j = 0; j < lineB.length; j++) {\n if (pointIntersectsBufferedLine(lineB[j], lineA, radius)) {\n return true;\n }\n }\n }\n for (var k = 0; k < lineA.length; k++) {\n if (pointIntersectsBufferedLine(lineA[k], lineB, radius)) {\n return true;\n }\n }\n return false;\n }\n function lineIntersectsLine(lineA, lineB) {\n if (lineA.length === 0 || lineB.length === 0) {\n return false;\n }\n for (var i = 0; i < lineA.length - 1; i++) {\n var a0 = lineA[i];\n var a1 = lineA[i + 1];\n for (var j = 0; j < lineB.length - 1; j++) {\n var b0 = lineB[j];\n var b1 = lineB[j + 1];\n if (lineSegmentIntersectsLineSegment(a0, a1, b0, b1)) {\n return true;\n }\n }\n }\n return false;\n }\n function lineSegmentIntersectsLineSegment(a0, a1, b0, b1) {\n return isCounterClockwise(a0, b0, b1) !== isCounterClockwise(a1, b0, b1) && isCounterClockwise(a0, a1, b0) !== isCounterClockwise(a0, a1, b1);\n }\n function pointIntersectsBufferedLine(p, line, radius) {\n var radiusSquared = radius * radius;\n if (line.length === 1) {\n return p.distSqr(line[0]) < radiusSquared;\n }\n for (var i = 1; i < line.length; i++) {\n var v = line[i - 1], w = line[i];\n if (distToSegmentSquared(p, v, w) < radiusSquared) {\n return true;\n }\n }\n return false;\n }\n function distToSegmentSquared(p, v, w) {\n var l2 = v.distSqr(w);\n if (l2 === 0) {\n return p.distSqr(v);\n }\n var t = ((p.x - v.x) * (w.x - v.x) + (p.y - v.y) * (w.y - v.y)) / l2;\n if (t < 0) {\n return p.distSqr(v);\n }\n if (t > 1) {\n return p.distSqr(w);\n }\n return p.distSqr(w.sub(v)._mult(t)._add(v));\n }\n function multiPolygonContainsPoint(rings, p) {\n var c = false, ring, p1, p2;\n for (var k = 0; k < rings.length; k++) {\n ring = rings[k];\n for (var i = 0, j = ring.length - 1; i < ring.length; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n if (p1.y > p.y !== p2.y > p.y && p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x) {\n c = !c;\n }\n }\n }\n return c;\n }\n function polygonContainsPoint(ring, p) {\n var c = false;\n for (var i = 0, j = ring.length - 1; i < ring.length; j = i++) {\n var p1 = ring[i];\n var p2 = ring[j];\n if (p1.y > p.y !== p2.y > p.y && p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x) {\n c = !c;\n }\n }\n return c;\n }\n function polygonIntersectsBox(ring, boxX1, boxY1, boxX2, boxY2) {\n for (var i$1 = 0, list = ring; i$1 < list.length; i$1 += 1) {\n var p = list[i$1];\n if (boxX1 <= p.x && boxY1 <= p.y && boxX2 >= p.x && boxY2 >= p.y) {\n return true;\n }\n }\n var corners = [\n new pointGeometry(boxX1, boxY1),\n new pointGeometry(boxX1, boxY2),\n new pointGeometry(boxX2, boxY2),\n new pointGeometry(boxX2, boxY1)\n ];\n if (ring.length > 2) {\n for (var i$2 = 0, list$1 = corners; i$2 < list$1.length; i$2 += 1) {\n var corner = list$1[i$2];\n if (polygonContainsPoint(ring, corner)) {\n return true;\n }\n }\n }\n for (var i = 0; i < ring.length - 1; i++) {\n var p1 = ring[i];\n var p2 = ring[i + 1];\n if (edgeIntersectsBox(p1, p2, corners)) {\n return true;\n }\n }\n return false;\n }\n function edgeIntersectsBox(e1, e2, corners) {\n var tl = corners[0];\n var br = corners[2];\n if (e1.x < tl.x && e2.x < tl.x || e1.x > br.x && e2.x > br.x || e1.y < tl.y && e2.y < tl.y || e1.y > br.y && e2.y > br.y) {\n return false;\n }\n var dir = isCounterClockwise(e1, e2, corners[0]);\n return dir !== isCounterClockwise(e1, e2, corners[1]) || dir !== isCounterClockwise(e1, e2, corners[2]) || dir !== isCounterClockwise(e1, e2, corners[3]);\n }\n function getMaximumPaintValue(property, layer2, bucket) {\n var value = layer2.paint.get(property).value;\n if (value.kind === \"constant\") {\n return value.value;\n } else {\n return bucket.programConfigurations.get(layer2.id).getMaxValue(property);\n }\n }\n function translateDistance(translate2) {\n return Math.sqrt(translate2[0] * translate2[0] + translate2[1] * translate2[1]);\n }\n function translate(queryGeometry, translate2, translateAnchor, bearing, pixelsToTileUnits) {\n if (!translate2[0] && !translate2[1]) {\n return queryGeometry;\n }\n var pt = pointGeometry.convert(translate2)._mult(pixelsToTileUnits);\n if (translateAnchor === \"viewport\") {\n pt._rotate(-bearing);\n }\n var translated = [];\n for (var i = 0; i < queryGeometry.length; i++) {\n var point = queryGeometry[i];\n translated.push(point.sub(pt));\n }\n return translated;\n }\n var layout$2 = new Properties({ \"circle-sort-key\": new DataDrivenProperty(spec[\"layout_circle\"][\"circle-sort-key\"]) });\n var paint$1 = new Properties({\n \"circle-radius\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-radius\"]),\n \"circle-color\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-color\"]),\n \"circle-blur\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-blur\"]),\n \"circle-opacity\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-opacity\"]),\n \"circle-translate\": new DataConstantProperty(spec[\"paint_circle\"][\"circle-translate\"]),\n \"circle-translate-anchor\": new DataConstantProperty(spec[\"paint_circle\"][\"circle-translate-anchor\"]),\n \"circle-pitch-scale\": new DataConstantProperty(spec[\"paint_circle\"][\"circle-pitch-scale\"]),\n \"circle-pitch-alignment\": new DataConstantProperty(spec[\"paint_circle\"][\"circle-pitch-alignment\"]),\n \"circle-stroke-width\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-stroke-width\"]),\n \"circle-stroke-color\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-stroke-color\"]),\n \"circle-stroke-opacity\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-stroke-opacity\"])\n });\n var properties = {\n paint: paint$1,\n layout: layout$2\n };\n var ARRAY_TYPE = typeof Float32Array !== \"undefined\" ? Float32Array : Array;\n if (!Math.hypot) {\n Math.hypot = function() {\n var arguments$1 = arguments;\n var y = 0, i = arguments.length;\n while (i--) {\n y += arguments$1[i] * arguments$1[i];\n }\n return Math.sqrt(y);\n };\n }\n function create() {\n var out = new ARRAY_TYPE(4);\n if (ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n }\n out[0] = 1;\n out[3] = 1;\n return out;\n }\n function rotate(out, a, rad) {\n var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n out[0] = a0 * c + a2 * s;\n out[1] = a1 * c + a3 * s;\n out[2] = a0 * -s + a2 * c;\n out[3] = a1 * -s + a3 * c;\n return out;\n }\n function create$1() {\n var out = new ARRAY_TYPE(9);\n if (ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n }\n function fromRotation(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n }\n function create$2() {\n var out = new ARRAY_TYPE(16);\n if (ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n }\n function clone$1(a) {\n var out = new ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n function identity2(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n function invert(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32;\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n }\n function multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n }\n function translate$1(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n }\n function scale(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n if (a !== out) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n }\n function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n if (a !== out) {\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n }\n function perspective(out, fovy, aspect, near, far) {\n var f = 1 / Math.tan(fovy / 2), nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n return out;\n }\n function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n }\n var mul = multiply;\n function create$3() {\n var out = new ARRAY_TYPE(3);\n if (ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n return out;\n }\n function clone$2(a) {\n var out = new ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n }\n function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n }\n function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n }\n function scale$1(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n }\n function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n }\n function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function cross(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2];\n var bx = b[0], by = b[1], bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n }\n function transformMat3(out, a, m) {\n var x = a[0], y = a[1], z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n }\n var sub = subtract;\n var forEach = function() {\n var vec = create$3();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 3;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n return a;\n };\n }();\n function create$4() {\n var out = new ARRAY_TYPE(4);\n if (ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n return out;\n }\n function scale$2(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n }\n function dot$1(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n function transformMat4(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n }\n var forEach$1 = function() {\n var vec = create$4();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 4;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n return a;\n };\n }();\n function create$5() {\n var out = new ARRAY_TYPE(2);\n if (ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n return out;\n }\n function squaredLength(a) {\n var x = a[0], y = a[1];\n return x * x + y * y;\n }\n var sqrLen = squaredLength;\n var forEach$2 = function() {\n var vec = create$5();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 2;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n return a;\n };\n }();\n var CircleStyleLayer = function(StyleLayer2) {\n function CircleStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties);\n }\n if (StyleLayer2)\n CircleStyleLayer2.__proto__ = StyleLayer2;\n CircleStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n CircleStyleLayer2.prototype.constructor = CircleStyleLayer2;\n CircleStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new CircleBucket(parameters);\n };\n CircleStyleLayer2.prototype.queryRadius = function queryRadius(bucket) {\n var circleBucket = bucket;\n return getMaximumPaintValue(\"circle-radius\", this, circleBucket) + getMaximumPaintValue(\"circle-stroke-width\", this, circleBucket) + translateDistance(this.paint.get(\"circle-translate\"));\n };\n CircleStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature(queryGeometry, feature, featureState, geometry, zoom, transform, pixelsToTileUnits, pixelPosMatrix) {\n var translatedPolygon = translate(queryGeometry, this.paint.get(\"circle-translate\"), this.paint.get(\"circle-translate-anchor\"), transform.angle, pixelsToTileUnits);\n var radius = this.paint.get(\"circle-radius\").evaluate(feature, featureState);\n var stroke = this.paint.get(\"circle-stroke-width\").evaluate(feature, featureState);\n var size = radius + stroke;\n var alignWithMap = this.paint.get(\"circle-pitch-alignment\") === \"map\";\n var transformedPolygon = alignWithMap ? translatedPolygon : projectQueryGeometry(translatedPolygon, pixelPosMatrix);\n var transformedSize = alignWithMap ? size * pixelsToTileUnits : size;\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var ring = list$1[i$1];\n for (var i = 0, list = ring; i < list.length; i += 1) {\n var point = list[i];\n var transformedPoint = alignWithMap ? point : projectPoint(point, pixelPosMatrix);\n var adjustedSize = transformedSize;\n var projectedCenter = transformMat4([], [\n point.x,\n point.y,\n 0,\n 1\n ], pixelPosMatrix);\n if (this.paint.get(\"circle-pitch-scale\") === \"viewport\" && this.paint.get(\"circle-pitch-alignment\") === \"map\") {\n adjustedSize *= projectedCenter[3] / transform.cameraToCenterDistance;\n } else if (this.paint.get(\"circle-pitch-scale\") === \"map\" && this.paint.get(\"circle-pitch-alignment\") === \"viewport\") {\n adjustedSize *= transform.cameraToCenterDistance / projectedCenter[3];\n }\n if (polygonIntersectsBufferedPoint(transformedPolygon, transformedPoint, adjustedSize)) {\n return true;\n }\n }\n }\n return false;\n };\n return CircleStyleLayer2;\n }(StyleLayer);\n function projectPoint(p, pixelPosMatrix) {\n var point = transformMat4([], [\n p.x,\n p.y,\n 0,\n 1\n ], pixelPosMatrix);\n return new pointGeometry(point[0] / point[3], point[1] / point[3]);\n }\n function projectQueryGeometry(queryGeometry, pixelPosMatrix) {\n return queryGeometry.map(function(p) {\n return projectPoint(p, pixelPosMatrix);\n });\n }\n var HeatmapBucket = function(CircleBucket2) {\n function HeatmapBucket2() {\n CircleBucket2.apply(this, arguments);\n }\n if (CircleBucket2)\n HeatmapBucket2.__proto__ = CircleBucket2;\n HeatmapBucket2.prototype = Object.create(CircleBucket2 && CircleBucket2.prototype);\n HeatmapBucket2.prototype.constructor = HeatmapBucket2;\n return HeatmapBucket2;\n }(CircleBucket);\n register(\"HeatmapBucket\", HeatmapBucket, { omit: [\"layers\"] });\n function createImage(image, ref, channels, data) {\n var width = ref.width;\n var height = ref.height;\n if (!data) {\n data = new Uint8Array(width * height * channels);\n } else if (data instanceof Uint8ClampedArray) {\n data = new Uint8Array(data.buffer);\n } else if (data.length !== width * height * channels) {\n throw new RangeError(\"mismatched image size\");\n }\n image.width = width;\n image.height = height;\n image.data = data;\n return image;\n }\n function resizeImage(image, ref, channels) {\n var width = ref.width;\n var height = ref.height;\n if (width === image.width && height === image.height) {\n return;\n }\n var newImage = createImage({}, {\n width,\n height\n }, channels);\n copyImage(image, newImage, {\n x: 0,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n width: Math.min(image.width, width),\n height: Math.min(image.height, height)\n }, channels);\n image.width = width;\n image.height = height;\n image.data = newImage.data;\n }\n function copyImage(srcImg, dstImg, srcPt, dstPt, size, channels) {\n if (size.width === 0 || size.height === 0) {\n return dstImg;\n }\n if (size.width > srcImg.width || size.height > srcImg.height || srcPt.x > srcImg.width - size.width || srcPt.y > srcImg.height - size.height) {\n throw new RangeError(\"out of range source coordinates for image copy\");\n }\n if (size.width > dstImg.width || size.height > dstImg.height || dstPt.x > dstImg.width - size.width || dstPt.y > dstImg.height - size.height) {\n throw new RangeError(\"out of range destination coordinates for image copy\");\n }\n var srcData = srcImg.data;\n var dstData = dstImg.data;\n for (var y = 0; y < size.height; y++) {\n var srcOffset = ((srcPt.y + y) * srcImg.width + srcPt.x) * channels;\n var dstOffset = ((dstPt.y + y) * dstImg.width + dstPt.x) * channels;\n for (var i = 0; i < size.width * channels; i++) {\n dstData[dstOffset + i] = srcData[srcOffset + i];\n }\n }\n return dstImg;\n }\n var AlphaImage = function AlphaImage2(size, data) {\n createImage(this, size, 1, data);\n };\n AlphaImage.prototype.resize = function resize(size) {\n resizeImage(this, size, 1);\n };\n AlphaImage.prototype.clone = function clone2() {\n return new AlphaImage({\n width: this.width,\n height: this.height\n }, new Uint8Array(this.data));\n };\n AlphaImage.copy = function copy(srcImg, dstImg, srcPt, dstPt, size) {\n copyImage(srcImg, dstImg, srcPt, dstPt, size, 1);\n };\n var RGBAImage = function RGBAImage2(size, data) {\n createImage(this, size, 4, data);\n };\n RGBAImage.prototype.resize = function resize(size) {\n resizeImage(this, size, 4);\n };\n RGBAImage.prototype.replace = function replace(data, copy) {\n if (copy) {\n this.data.set(data);\n } else if (data instanceof Uint8ClampedArray) {\n this.data = new Uint8Array(data.buffer);\n } else {\n this.data = data;\n }\n };\n RGBAImage.prototype.clone = function clone2() {\n return new RGBAImage({\n width: this.width,\n height: this.height\n }, new Uint8Array(this.data));\n };\n RGBAImage.copy = function copy(srcImg, dstImg, srcPt, dstPt, size) {\n copyImage(srcImg, dstImg, srcPt, dstPt, size, 4);\n };\n register(\"AlphaImage\", AlphaImage);\n register(\"RGBAImage\", RGBAImage);\n var paint$2 = new Properties({\n \"heatmap-radius\": new DataDrivenProperty(spec[\"paint_heatmap\"][\"heatmap-radius\"]),\n \"heatmap-weight\": new DataDrivenProperty(spec[\"paint_heatmap\"][\"heatmap-weight\"]),\n \"heatmap-intensity\": new DataConstantProperty(spec[\"paint_heatmap\"][\"heatmap-intensity\"]),\n \"heatmap-color\": new ColorRampProperty(spec[\"paint_heatmap\"][\"heatmap-color\"]),\n \"heatmap-opacity\": new DataConstantProperty(spec[\"paint_heatmap\"][\"heatmap-opacity\"])\n });\n var properties$1 = { paint: paint$2 };\n function renderColorRamp(params) {\n var evaluationGlobals = {};\n var width = params.resolution || 256;\n var height = params.clips ? params.clips.length : 1;\n var image = params.image || new RGBAImage({\n width,\n height\n });\n var renderPixel = function(stride2, index, progress2) {\n evaluationGlobals[params.evaluationKey] = progress2;\n var pxColor = params.expression.evaluate(evaluationGlobals);\n image.data[stride2 + index + 0] = Math.floor(pxColor.r * 255 / pxColor.a);\n image.data[stride2 + index + 1] = Math.floor(pxColor.g * 255 / pxColor.a);\n image.data[stride2 + index + 2] = Math.floor(pxColor.b * 255 / pxColor.a);\n image.data[stride2 + index + 3] = Math.floor(pxColor.a * 255);\n };\n if (!params.clips) {\n for (var i = 0, j = 0; i < width; i++, j += 4) {\n var progress = i / (width - 1);\n renderPixel(0, j, progress);\n }\n } else {\n for (var clip = 0, stride = 0; clip < height; ++clip, stride += width * 4) {\n for (var i$1 = 0, j$1 = 0; i$1 < width; i$1++, j$1 += 4) {\n var progress$1 = i$1 / (width - 1);\n var ref = params.clips[clip];\n var start = ref.start;\n var end = ref.end;\n var evaluationProgress = start * (1 - progress$1) + end * progress$1;\n renderPixel(stride, j$1, evaluationProgress);\n }\n }\n }\n return image;\n }\n var HeatmapStyleLayer = function(StyleLayer2) {\n function HeatmapStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$1);\n this._updateColorRamp();\n }\n if (StyleLayer2)\n HeatmapStyleLayer2.__proto__ = StyleLayer2;\n HeatmapStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n HeatmapStyleLayer2.prototype.constructor = HeatmapStyleLayer2;\n HeatmapStyleLayer2.prototype.createBucket = function createBucket(options) {\n return new HeatmapBucket(options);\n };\n HeatmapStyleLayer2.prototype._handleSpecialPaintPropertyUpdate = function _handleSpecialPaintPropertyUpdate(name3) {\n if (name3 === \"heatmap-color\") {\n this._updateColorRamp();\n }\n };\n HeatmapStyleLayer2.prototype._updateColorRamp = function _updateColorRamp() {\n var expression2 = this._transitionablePaint._values[\"heatmap-color\"].value.expression;\n this.colorRamp = renderColorRamp({\n expression: expression2,\n evaluationKey: \"heatmapDensity\",\n image: this.colorRamp\n });\n this.colorRampTexture = null;\n };\n HeatmapStyleLayer2.prototype.resize = function resize() {\n if (this.heatmapFbo) {\n this.heatmapFbo.destroy();\n this.heatmapFbo = null;\n }\n };\n HeatmapStyleLayer2.prototype.queryRadius = function queryRadius() {\n return 0;\n };\n HeatmapStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature() {\n return false;\n };\n HeatmapStyleLayer2.prototype.hasOffscreenPass = function hasOffscreenPass() {\n return this.paint.get(\"heatmap-opacity\") !== 0 && this.visibility !== \"none\";\n };\n return HeatmapStyleLayer2;\n }(StyleLayer);\n var paint$3 = new Properties({\n \"hillshade-illumination-direction\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-illumination-direction\"]),\n \"hillshade-illumination-anchor\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-illumination-anchor\"]),\n \"hillshade-exaggeration\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-exaggeration\"]),\n \"hillshade-shadow-color\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-shadow-color\"]),\n \"hillshade-highlight-color\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-highlight-color\"]),\n \"hillshade-accent-color\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-accent-color\"])\n });\n var properties$2 = { paint: paint$3 };\n var HillshadeStyleLayer = function(StyleLayer2) {\n function HillshadeStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$2);\n }\n if (StyleLayer2)\n HillshadeStyleLayer2.__proto__ = StyleLayer2;\n HillshadeStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n HillshadeStyleLayer2.prototype.constructor = HillshadeStyleLayer2;\n HillshadeStyleLayer2.prototype.hasOffscreenPass = function hasOffscreenPass() {\n return this.paint.get(\"hillshade-exaggeration\") !== 0 && this.visibility !== \"none\";\n };\n return HillshadeStyleLayer2;\n }(StyleLayer);\n var layout$3 = createLayout([{\n name: \"a_pos\",\n components: 2,\n type: \"Int16\"\n }], 4);\n var members$1 = layout$3.members;\n var earcut_1 = earcut;\n var default_1 = earcut;\n function earcut(data, holeIndices, dim) {\n dim = dim || 2;\n var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data.length, outerNode = linkedList(data, 0, outerLen, dim, true), triangles = [];\n if (!outerNode || outerNode.next === outerNode.prev) {\n return triangles;\n }\n var minX, minY, maxX, maxY, x, y, invSize;\n if (hasHoles) {\n outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n }\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) {\n minX = x;\n }\n if (y < minY) {\n minY = y;\n }\n if (x > maxX) {\n maxX = x;\n }\n if (y > maxY) {\n maxY = y;\n }\n }\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n return triangles;\n }\n function linkedList(data, start, end, dim, clockwise) {\n var i, last;\n if (clockwise === signedArea(data, start, end, dim) > 0) {\n for (i = start; i < end; i += dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n } else {\n for (i = end - dim; i >= start; i -= dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n }\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n return last;\n }\n function filterPoints(start, end) {\n if (!start) {\n return start;\n }\n if (!end) {\n end = start;\n }\n var p = start, again;\n do {\n again = false;\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) {\n break;\n }\n again = true;\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n return end;\n }\n function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) {\n return;\n }\n if (!pass && invSize) {\n indexCurve(ear, minX, minY, invSize);\n }\n var stop = ear, prev, next;\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n removeNode(ear);\n ear = next.next;\n stop = next.next;\n continue;\n }\n ear = next;\n if (ear === stop) {\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n break;\n }\n }\n }\n function isEar(ear) {\n var a = ear.prev, b = ear, c = ear.next;\n if (area(a, b, c) >= 0) {\n return false;\n }\n var p = ear.next.next;\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) {\n return false;\n }\n p = p.next;\n }\n return true;\n }\n function isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev, b = ear, c = ear.next;\n if (area(a, b, c) >= 0) {\n return false;\n }\n var minTX = a.x < b.x ? a.x < c.x ? a.x : c.x : b.x < c.x ? b.x : c.x, minTY = a.y < b.y ? a.y < c.y ? a.y : c.y : b.y < c.y ? b.y : c.y, maxTX = a.x > b.x ? a.x > c.x ? a.x : c.x : b.x > c.x ? b.x : c.x, maxTY = a.y > b.y ? a.y > c.y ? a.y : c.y : b.y > c.y ? b.y : c.y;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize), maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n var p = ear.prevZ, n = ear.nextZ;\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) {\n return false;\n }\n p = p.prevZ;\n if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) {\n return false;\n }\n n = n.nextZ;\n }\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) {\n return false;\n }\n p = p.prevZ;\n }\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) {\n return false;\n }\n n = n.nextZ;\n }\n return true;\n }\n function cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev, b = p.next.next;\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n removeNode(p);\n removeNode(p.next);\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n return filterPoints(p);\n }\n function splitEarcut(start, triangles, dim, minX, minY, invSize) {\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n var c = splitPolygon(a, b);\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n }\n function eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [], i, len, start, end, list;\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) {\n list.steiner = true;\n }\n queue.push(getLeftmost(list));\n }\n queue.sort(compareX);\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n return outerNode;\n }\n function compareX(a, b) {\n return a.x - b.x;\n }\n function eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n filterPoints(outerNode, outerNode.next);\n filterPoints(b, b.next);\n }\n }\n function findHoleBridge(hole, outerNode) {\n var p = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m;\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) {\n return p;\n }\n if (hy === p.next.y) {\n return p.next;\n }\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n if (!m) {\n return null;\n }\n if (hx === qx) {\n return m;\n }\n var stop = m, mx = m.x, my = m.y, tanMin = Infinity, tan;\n p = m;\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n tan = Math.abs(hy - p.y) / (hx - p.x);\n if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\n m = p;\n tanMin = tan;\n }\n }\n p = p.next;\n } while (p !== stop);\n return m;\n }\n function sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n }\n function indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) {\n p.z = zOrder(p.x, p.y, minX, minY, invSize);\n }\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n p.prevZ.nextZ = null;\n p.prevZ = null;\n sortLinked(p);\n }\n function sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) {\n break;\n }\n }\n qSize = inSize;\n while (pSize > 0 || qSize > 0 && q) {\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n if (tail) {\n tail.nextZ = e;\n } else {\n list = e;\n }\n e.prevZ = tail;\n tail = e;\n }\n p = q;\n }\n tail.nextZ = null;\n inSize *= 2;\n } while (numMerges > 1);\n return list;\n }\n function zOrder(x, y, minX, minY, invSize) {\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n }\n function getLeftmost(start) {\n var p = start, leftmost = start;\n do {\n if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) {\n leftmost = p;\n }\n p = p.next;\n } while (p !== start);\n return leftmost;\n }\n function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n }\n function isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && (area(a.prev, a, b.prev) || area(a, b.prev, b)) || equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);\n }\n function area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n }\n function equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n }\n function intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n if (o1 !== o2 && o3 !== o4) {\n return true;\n }\n if (o1 === 0 && onSegment(p1, p2, q1)) {\n return true;\n }\n if (o2 === 0 && onSegment(p1, q2, q1)) {\n return true;\n }\n if (o3 === 0 && onSegment(p2, p1, q2)) {\n return true;\n }\n if (o4 === 0 && onSegment(p2, q1, q2)) {\n return true;\n }\n return false;\n }\n function onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n }\n function sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n }\n function intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) {\n return true;\n }\n p = p.next;\n } while (p !== a);\n return false;\n }\n function locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n }\n function middleInside(a, b) {\n var p = a, inside = false, px = (a.x + b.x) / 2, py = (a.y + b.y) / 2;\n do {\n if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x) {\n inside = !inside;\n }\n p = p.next;\n } while (p !== a);\n return inside;\n }\n function splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;\n a.next = b;\n b.prev = a;\n a2.next = an;\n an.prev = a2;\n b2.next = a2;\n a2.prev = b2;\n bp.next = b2;\n b2.prev = bp;\n return b2;\n }\n function insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n if (!last) {\n p.prev = p;\n p.next = p;\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n }\n function removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n if (p.prevZ) {\n p.prevZ.nextZ = p.nextZ;\n }\n if (p.nextZ) {\n p.nextZ.prevZ = p.prevZ;\n }\n }\n function Node(i, x, y) {\n this.i = i;\n this.x = x;\n this.y = y;\n this.prev = null;\n this.next = null;\n this.z = null;\n this.prevZ = null;\n this.nextZ = null;\n this.steiner = false;\n }\n earcut.deviation = function(data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs((data[a] - data[c]) * (data[b + 1] - data[a + 1]) - (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n return polygonArea === 0 && trianglesArea === 0 ? 0 : Math.abs((trianglesArea - polygonArea) / polygonArea);\n };\n function signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n }\n earcut.flatten = function(data) {\n var dim = data[0][0].length, result = {\n vertices: [],\n holes: [],\n dimensions: dim\n }, holeIndex = 0;\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) {\n result.vertices.push(data[i][j][d]);\n }\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n };\n earcut_1.default = default_1;\n function quickselect(arr, k, left, right, compare2) {\n quickselectStep(arr, k, left || 0, right || arr.length - 1, compare2 || defaultCompare);\n }\n function quickselectStep(arr, k, left, right, compare2) {\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselectStep(arr, k, newLeft, newRight, compare2);\n }\n var t = arr[k];\n var i = left;\n var j = right;\n swap$1(arr, left, k);\n if (compare2(arr[right], t) > 0) {\n swap$1(arr, left, right);\n }\n while (i < j) {\n swap$1(arr, i, j);\n i++;\n j--;\n while (compare2(arr[i], t) < 0) {\n i++;\n }\n while (compare2(arr[j], t) > 0) {\n j--;\n }\n }\n if (compare2(arr[left], t) === 0) {\n swap$1(arr, left, j);\n } else {\n j++;\n swap$1(arr, j, right);\n }\n if (j <= k) {\n left = j + 1;\n }\n if (k <= j) {\n right = j - 1;\n }\n }\n }\n function swap$1(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n }\n function defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }\n function classifyRings(rings, maxRings) {\n var len = rings.length;\n if (len <= 1) {\n return [rings];\n }\n var polygons = [];\n var polygon, ccw;\n for (var i = 0; i < len; i++) {\n var area2 = calculateSignedArea(rings[i]);\n if (area2 === 0) {\n continue;\n }\n rings[i].area = Math.abs(area2);\n if (ccw === void 0) {\n ccw = area2 < 0;\n }\n if (ccw === area2 < 0) {\n if (polygon) {\n polygons.push(polygon);\n }\n polygon = [rings[i]];\n } else {\n polygon.push(rings[i]);\n }\n }\n if (polygon) {\n polygons.push(polygon);\n }\n if (maxRings > 1) {\n for (var j = 0; j < polygons.length; j++) {\n if (polygons[j].length <= maxRings) {\n continue;\n }\n quickselect(polygons[j], maxRings, 1, polygons[j].length - 1, compareAreas);\n polygons[j] = polygons[j].slice(0, maxRings);\n }\n }\n return polygons;\n }\n function compareAreas(a, b) {\n return b.area - a.area;\n }\n function hasPattern(type, layers, options) {\n var patterns = options.patternDependencies;\n var hasPattern2 = false;\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n var patternProperty = layer2.paint.get(type + \"-pattern\");\n if (!patternProperty.isConstant()) {\n hasPattern2 = true;\n }\n var constantPattern = patternProperty.constantOr(null);\n if (constantPattern) {\n hasPattern2 = true;\n patterns[constantPattern.to] = true;\n patterns[constantPattern.from] = true;\n }\n }\n return hasPattern2;\n }\n function addPatternDependencies(type, layers, patternFeature, zoom, options) {\n var patterns = options.patternDependencies;\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n var patternProperty = layer2.paint.get(type + \"-pattern\");\n var patternPropertyValue = patternProperty.value;\n if (patternPropertyValue.kind !== \"constant\") {\n var min = patternPropertyValue.evaluate({ zoom: zoom - 1 }, patternFeature, {}, options.availableImages);\n var mid = patternPropertyValue.evaluate({ zoom }, patternFeature, {}, options.availableImages);\n var max = patternPropertyValue.evaluate({ zoom: zoom + 1 }, patternFeature, {}, options.availableImages);\n min = min && min.name ? min.name : min;\n mid = mid && mid.name ? mid.name : mid;\n max = max && max.name ? max.name : max;\n patterns[min] = true;\n patterns[mid] = true;\n patterns[max] = true;\n patternFeature.patterns[layer2.id] = {\n min,\n mid,\n max\n };\n }\n }\n return patternFeature;\n }\n var EARCUT_MAX_RINGS = 500;\n var FillBucket = function FillBucket2(options) {\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer2) {\n return layer2.id;\n });\n this.index = options.index;\n this.hasPattern = false;\n this.patternFeatures = [];\n this.layoutVertexArray = new StructArrayLayout2i4();\n this.indexArray = new StructArrayLayout3ui6();\n this.indexArray2 = new StructArrayLayout2ui4();\n this.programConfigurations = new ProgramConfigurationSet(options.layers, options.zoom);\n this.segments = new SegmentVector();\n this.segments2 = new SegmentVector();\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n };\n FillBucket.prototype.populate = function populate(features, options, canonical) {\n this.hasPattern = hasPattern(\"fill\", this.layers, options);\n var fillSortKey = this.layers[0].layout.get(\"fill-sort-key\");\n var bucketFeatures = [];\n for (var i = 0, list = features; i < list.length; i += 1) {\n var ref = list[i];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = this.layers[0]._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!this.layers[0]._featureFilter.filter(new EvaluationParameters(this.zoom), evaluationFeature, canonical)) {\n continue;\n }\n var sortKey = fillSortKey ? fillSortKey.evaluate(evaluationFeature, {}, canonical, options.availableImages) : void 0;\n var bucketFeature = {\n id: id2,\n properties: feature.properties,\n type: feature.type,\n sourceLayerIndex,\n index,\n geometry: needGeometry ? evaluationFeature.geometry : loadGeometry(feature),\n patterns: {},\n sortKey\n };\n bucketFeatures.push(bucketFeature);\n }\n if (fillSortKey) {\n bucketFeatures.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$1 = 0, list$1 = bucketFeatures; i$1 < list$1.length; i$1 += 1) {\n var bucketFeature$1 = list$1[i$1];\n var ref$1 = bucketFeature$1;\n var geometry = ref$1.geometry;\n var index$1 = ref$1.index;\n var sourceLayerIndex$1 = ref$1.sourceLayerIndex;\n if (this.hasPattern) {\n var patternFeature = addPatternDependencies(\"fill\", this.layers, bucketFeature$1, this.zoom, options);\n this.patternFeatures.push(patternFeature);\n } else {\n this.addFeature(bucketFeature$1, geometry, index$1, canonical, {});\n }\n var feature$1 = features[index$1].feature;\n options.featureIndex.insert(feature$1, geometry, index$1, sourceLayerIndex$1, this.index);\n }\n };\n FillBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);\n };\n FillBucket.prototype.addFeatures = function addFeatures(options, canonical, imagePositions) {\n for (var i = 0, list = this.patternFeatures; i < list.length; i += 1) {\n var feature = list[i];\n this.addFeature(feature, feature.geometry, feature.index, canonical, imagePositions);\n }\n };\n FillBucket.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0;\n };\n FillBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n };\n FillBucket.prototype.upload = function upload(context) {\n if (!this.uploaded) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, members$1);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n this.indexBuffer2 = context.createIndexBuffer(this.indexArray2);\n }\n this.programConfigurations.upload(context);\n this.uploaded = true;\n };\n FillBucket.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.indexBuffer2.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n this.segments2.destroy();\n };\n FillBucket.prototype.addFeature = function addFeature2(feature, geometry, index, canonical, imagePositions) {\n for (var i$4 = 0, list$2 = classifyRings(geometry, EARCUT_MAX_RINGS); i$4 < list$2.length; i$4 += 1) {\n var polygon = list$2[i$4];\n var numVertices = 0;\n for (var i$2 = 0, list = polygon; i$2 < list.length; i$2 += 1) {\n var ring = list[i$2];\n numVertices += ring.length;\n }\n var triangleSegment = this.segments.prepareSegment(numVertices, this.layoutVertexArray, this.indexArray);\n var triangleIndex = triangleSegment.vertexLength;\n var flattened = [];\n var holeIndices = [];\n for (var i$3 = 0, list$1 = polygon; i$3 < list$1.length; i$3 += 1) {\n var ring$1 = list$1[i$3];\n if (ring$1.length === 0) {\n continue;\n }\n if (ring$1 !== polygon[0]) {\n holeIndices.push(flattened.length / 2);\n }\n var lineSegment = this.segments2.prepareSegment(ring$1.length, this.layoutVertexArray, this.indexArray2);\n var lineIndex = lineSegment.vertexLength;\n this.layoutVertexArray.emplaceBack(ring$1[0].x, ring$1[0].y);\n this.indexArray2.emplaceBack(lineIndex + ring$1.length - 1, lineIndex);\n flattened.push(ring$1[0].x);\n flattened.push(ring$1[0].y);\n for (var i = 1; i < ring$1.length; i++) {\n this.layoutVertexArray.emplaceBack(ring$1[i].x, ring$1[i].y);\n this.indexArray2.emplaceBack(lineIndex + i - 1, lineIndex + i);\n flattened.push(ring$1[i].x);\n flattened.push(ring$1[i].y);\n }\n lineSegment.vertexLength += ring$1.length;\n lineSegment.primitiveLength += ring$1.length;\n }\n var indices = earcut_1(flattened, holeIndices);\n for (var i$1 = 0; i$1 < indices.length; i$1 += 3) {\n this.indexArray.emplaceBack(triangleIndex + indices[i$1], triangleIndex + indices[i$1 + 1], triangleIndex + indices[i$1 + 2]);\n }\n triangleSegment.vertexLength += numVertices;\n triangleSegment.primitiveLength += indices.length / 3;\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions, canonical);\n };\n register(\"FillBucket\", FillBucket, {\n omit: [\n \"layers\",\n \"patternFeatures\"\n ]\n });\n var layout$4 = new Properties({ \"fill-sort-key\": new DataDrivenProperty(spec[\"layout_fill\"][\"fill-sort-key\"]) });\n var paint$4 = new Properties({\n \"fill-antialias\": new DataConstantProperty(spec[\"paint_fill\"][\"fill-antialias\"]),\n \"fill-opacity\": new DataDrivenProperty(spec[\"paint_fill\"][\"fill-opacity\"]),\n \"fill-color\": new DataDrivenProperty(spec[\"paint_fill\"][\"fill-color\"]),\n \"fill-outline-color\": new DataDrivenProperty(spec[\"paint_fill\"][\"fill-outline-color\"]),\n \"fill-translate\": new DataConstantProperty(spec[\"paint_fill\"][\"fill-translate\"]),\n \"fill-translate-anchor\": new DataConstantProperty(spec[\"paint_fill\"][\"fill-translate-anchor\"]),\n \"fill-pattern\": new CrossFadedDataDrivenProperty(spec[\"paint_fill\"][\"fill-pattern\"])\n });\n var properties$3 = {\n paint: paint$4,\n layout: layout$4\n };\n var FillStyleLayer = function(StyleLayer2) {\n function FillStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$3);\n }\n if (StyleLayer2)\n FillStyleLayer2.__proto__ = StyleLayer2;\n FillStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n FillStyleLayer2.prototype.constructor = FillStyleLayer2;\n FillStyleLayer2.prototype.recalculate = function recalculate(parameters, availableImages) {\n StyleLayer2.prototype.recalculate.call(this, parameters, availableImages);\n var outlineColor = this.paint._values[\"fill-outline-color\"];\n if (outlineColor.value.kind === \"constant\" && outlineColor.value.value === void 0) {\n this.paint._values[\"fill-outline-color\"] = this.paint._values[\"fill-color\"];\n }\n };\n FillStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new FillBucket(parameters);\n };\n FillStyleLayer2.prototype.queryRadius = function queryRadius() {\n return translateDistance(this.paint.get(\"fill-translate\"));\n };\n FillStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature(queryGeometry, feature, featureState, geometry, zoom, transform, pixelsToTileUnits) {\n var translatedPolygon = translate(queryGeometry, this.paint.get(\"fill-translate\"), this.paint.get(\"fill-translate-anchor\"), transform.angle, pixelsToTileUnits);\n return polygonIntersectsMultiPolygon(translatedPolygon, geometry);\n };\n FillStyleLayer2.prototype.isTileClipped = function isTileClipped() {\n return true;\n };\n return FillStyleLayer2;\n }(StyleLayer);\n var layout$5 = createLayout([\n {\n name: \"a_pos\",\n components: 2,\n type: \"Int16\"\n },\n {\n name: \"a_normal_ed\",\n components: 4,\n type: \"Int16\"\n }\n ], 4);\n var members$2 = layout$5.members;\n var vectortilefeature = VectorTileFeature;\n function VectorTileFeature(pbf2, end, extent, keys, values2) {\n this.properties = {};\n this.extent = extent;\n this.type = 0;\n this._pbf = pbf2;\n this._geometry = -1;\n this._keys = keys;\n this._values = values2;\n pbf2.readFields(readFeature, this, end);\n }\n function readFeature(tag, feature, pbf2) {\n if (tag == 1) {\n feature.id = pbf2.readVarint();\n } else if (tag == 2) {\n readTag(pbf2, feature);\n } else if (tag == 3) {\n feature.type = pbf2.readVarint();\n } else if (tag == 4) {\n feature._geometry = pbf2.pos;\n }\n }\n function readTag(pbf2, feature) {\n var end = pbf2.readVarint() + pbf2.pos;\n while (pbf2.pos < end) {\n var key = feature._keys[pbf2.readVarint()], value = feature._values[pbf2.readVarint()];\n feature.properties[key] = value;\n }\n }\n VectorTileFeature.types = [\n \"Unknown\",\n \"Point\",\n \"LineString\",\n \"Polygon\"\n ];\n VectorTileFeature.prototype.loadGeometry = function() {\n var pbf2 = this._pbf;\n pbf2.pos = this._geometry;\n var end = pbf2.readVarint() + pbf2.pos, cmd = 1, length = 0, x = 0, y = 0, lines = [], line;\n while (pbf2.pos < end) {\n if (length <= 0) {\n var cmdLen = pbf2.readVarint();\n cmd = cmdLen & 7;\n length = cmdLen >> 3;\n }\n length--;\n if (cmd === 1 || cmd === 2) {\n x += pbf2.readSVarint();\n y += pbf2.readSVarint();\n if (cmd === 1) {\n if (line) {\n lines.push(line);\n }\n line = [];\n }\n line.push(new pointGeometry(x, y));\n } else if (cmd === 7) {\n if (line) {\n line.push(line[0].clone());\n }\n } else {\n throw new Error(\"unknown command \" + cmd);\n }\n }\n if (line) {\n lines.push(line);\n }\n return lines;\n };\n VectorTileFeature.prototype.bbox = function() {\n var pbf2 = this._pbf;\n pbf2.pos = this._geometry;\n var end = pbf2.readVarint() + pbf2.pos, cmd = 1, length = 0, x = 0, y = 0, x1 = Infinity, x2 = -Infinity, y1 = Infinity, y2 = -Infinity;\n while (pbf2.pos < end) {\n if (length <= 0) {\n var cmdLen = pbf2.readVarint();\n cmd = cmdLen & 7;\n length = cmdLen >> 3;\n }\n length--;\n if (cmd === 1 || cmd === 2) {\n x += pbf2.readSVarint();\n y += pbf2.readSVarint();\n if (x < x1) {\n x1 = x;\n }\n if (x > x2) {\n x2 = x;\n }\n if (y < y1) {\n y1 = y;\n }\n if (y > y2) {\n y2 = y;\n }\n } else if (cmd !== 7) {\n throw new Error(\"unknown command \" + cmd);\n }\n }\n return [\n x1,\n y1,\n x2,\n y2\n ];\n };\n VectorTileFeature.prototype.toGeoJSON = function(x, y, z) {\n var size = this.extent * Math.pow(2, z), x0 = this.extent * x, y0 = this.extent * y, coords = this.loadGeometry(), type = VectorTileFeature.types[this.type], i, j;\n function project(line) {\n for (var j2 = 0; j2 < line.length; j2++) {\n var p = line[j2], y2 = 180 - (p.y + y0) * 360 / size;\n line[j2] = [\n (p.x + x0) * 360 / size - 180,\n 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90\n ];\n }\n }\n switch (this.type) {\n case 1:\n var points = [];\n for (i = 0; i < coords.length; i++) {\n points[i] = coords[i][0];\n }\n coords = points;\n project(coords);\n break;\n case 2:\n for (i = 0; i < coords.length; i++) {\n project(coords[i]);\n }\n break;\n case 3:\n coords = classifyRings$1(coords);\n for (i = 0; i < coords.length; i++) {\n for (j = 0; j < coords[i].length; j++) {\n project(coords[i][j]);\n }\n }\n break;\n }\n if (coords.length === 1) {\n coords = coords[0];\n } else {\n type = \"Multi\" + type;\n }\n var result = {\n type: \"Feature\",\n geometry: {\n type,\n coordinates: coords\n },\n properties: this.properties\n };\n if (\"id\" in this) {\n result.id = this.id;\n }\n return result;\n };\n function classifyRings$1(rings) {\n var len = rings.length;\n if (len <= 1) {\n return [rings];\n }\n var polygons = [], polygon, ccw;\n for (var i = 0; i < len; i++) {\n var area2 = signedArea$1(rings[i]);\n if (area2 === 0) {\n continue;\n }\n if (ccw === void 0) {\n ccw = area2 < 0;\n }\n if (ccw === area2 < 0) {\n if (polygon) {\n polygons.push(polygon);\n }\n polygon = [rings[i]];\n } else {\n polygon.push(rings[i]);\n }\n }\n if (polygon) {\n polygons.push(polygon);\n }\n return polygons;\n }\n function signedArea$1(ring) {\n var sum = 0;\n for (var i = 0, len = ring.length, j = len - 1, p1, p2; i < len; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2.x - p1.x) * (p1.y + p2.y);\n }\n return sum;\n }\n var vectortilelayer = VectorTileLayer;\n function VectorTileLayer(pbf2, end) {\n this.version = 1;\n this.name = null;\n this.extent = 4096;\n this.length = 0;\n this._pbf = pbf2;\n this._keys = [];\n this._values = [];\n this._features = [];\n pbf2.readFields(readLayer, this, end);\n this.length = this._features.length;\n }\n function readLayer(tag, layer2, pbf2) {\n if (tag === 15) {\n layer2.version = pbf2.readVarint();\n } else if (tag === 1) {\n layer2.name = pbf2.readString();\n } else if (tag === 5) {\n layer2.extent = pbf2.readVarint();\n } else if (tag === 2) {\n layer2._features.push(pbf2.pos);\n } else if (tag === 3) {\n layer2._keys.push(pbf2.readString());\n } else if (tag === 4) {\n layer2._values.push(readValueMessage(pbf2));\n }\n }\n function readValueMessage(pbf2) {\n var value = null, end = pbf2.readVarint() + pbf2.pos;\n while (pbf2.pos < end) {\n var tag = pbf2.readVarint() >> 3;\n value = tag === 1 ? pbf2.readString() : tag === 2 ? pbf2.readFloat() : tag === 3 ? pbf2.readDouble() : tag === 4 ? pbf2.readVarint64() : tag === 5 ? pbf2.readVarint() : tag === 6 ? pbf2.readSVarint() : tag === 7 ? pbf2.readBoolean() : null;\n }\n return value;\n }\n VectorTileLayer.prototype.feature = function(i) {\n if (i < 0 || i >= this._features.length) {\n throw new Error(\"feature index out of bounds\");\n }\n this._pbf.pos = this._features[i];\n var end = this._pbf.readVarint() + this._pbf.pos;\n return new vectortilefeature(this._pbf, end, this.extent, this._keys, this._values);\n };\n var vectortile = VectorTile;\n function VectorTile(pbf2, end) {\n this.layers = pbf2.readFields(readTile, {}, end);\n }\n function readTile(tag, layers, pbf2) {\n if (tag === 3) {\n var layer2 = new vectortilelayer(pbf2, pbf2.readVarint() + pbf2.pos);\n if (layer2.length) {\n layers[layer2.name] = layer2;\n }\n }\n }\n var VectorTile$1 = vectortile;\n var VectorTileFeature$1 = vectortilefeature;\n var VectorTileLayer$1 = vectortilelayer;\n var vectorTile = {\n VectorTile: VectorTile$1,\n VectorTileFeature: VectorTileFeature$1,\n VectorTileLayer: VectorTileLayer$1\n };\n var vectorTileFeatureTypes = vectorTile.VectorTileFeature.types;\n var EARCUT_MAX_RINGS$1 = 500;\n var FACTOR = Math.pow(2, 13);\n function addVertex(vertexArray, x, y, nx, ny, nz, t, e) {\n vertexArray.emplaceBack(x, y, Math.floor(nx * FACTOR) * 2 + t, ny * FACTOR * 2, nz * FACTOR * 2, Math.round(e));\n }\n var FillExtrusionBucket = function FillExtrusionBucket2(options) {\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer2) {\n return layer2.id;\n });\n this.index = options.index;\n this.hasPattern = false;\n this.layoutVertexArray = new StructArrayLayout2i4i12();\n this.indexArray = new StructArrayLayout3ui6();\n this.programConfigurations = new ProgramConfigurationSet(options.layers, options.zoom);\n this.segments = new SegmentVector();\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n };\n FillExtrusionBucket.prototype.populate = function populate(features, options, canonical) {\n this.features = [];\n this.hasPattern = hasPattern(\"fill-extrusion\", this.layers, options);\n for (var i = 0, list = features; i < list.length; i += 1) {\n var ref = list[i];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = this.layers[0]._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!this.layers[0]._featureFilter.filter(new EvaluationParameters(this.zoom), evaluationFeature, canonical)) {\n continue;\n }\n var bucketFeature = {\n id: id2,\n sourceLayerIndex,\n index,\n geometry: needGeometry ? evaluationFeature.geometry : loadGeometry(feature),\n properties: feature.properties,\n type: feature.type,\n patterns: {}\n };\n if (this.hasPattern) {\n this.features.push(addPatternDependencies(\"fill-extrusion\", this.layers, bucketFeature, this.zoom, options));\n } else {\n this.addFeature(bucketFeature, bucketFeature.geometry, index, canonical, {});\n }\n options.featureIndex.insert(feature, bucketFeature.geometry, index, sourceLayerIndex, this.index, true);\n }\n };\n FillExtrusionBucket.prototype.addFeatures = function addFeatures(options, canonical, imagePositions) {\n for (var i = 0, list = this.features; i < list.length; i += 1) {\n var feature = list[i];\n var geometry = feature.geometry;\n this.addFeature(feature, geometry, feature.index, canonical, imagePositions);\n }\n };\n FillExtrusionBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);\n };\n FillExtrusionBucket.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0;\n };\n FillExtrusionBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n };\n FillExtrusionBucket.prototype.upload = function upload(context) {\n if (!this.uploaded) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, members$2);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n }\n this.programConfigurations.upload(context);\n this.uploaded = true;\n };\n FillExtrusionBucket.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n };\n FillExtrusionBucket.prototype.addFeature = function addFeature2(feature, geometry, index, canonical, imagePositions) {\n for (var i$4 = 0, list$3 = classifyRings(geometry, EARCUT_MAX_RINGS$1); i$4 < list$3.length; i$4 += 1) {\n var polygon = list$3[i$4];\n var numVertices = 0;\n for (var i$1 = 0, list = polygon; i$1 < list.length; i$1 += 1) {\n var ring = list[i$1];\n numVertices += ring.length;\n }\n var segment = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray);\n for (var i$2 = 0, list$1 = polygon; i$2 < list$1.length; i$2 += 1) {\n var ring$1 = list$1[i$2];\n if (ring$1.length === 0) {\n continue;\n }\n if (isEntirelyOutside(ring$1)) {\n continue;\n }\n var edgeDistance = 0;\n for (var p = 0; p < ring$1.length; p++) {\n var p1 = ring$1[p];\n if (p >= 1) {\n var p2 = ring$1[p - 1];\n if (!isBoundaryEdge(p1, p2)) {\n if (segment.vertexLength + 4 > SegmentVector.MAX_VERTEX_ARRAY_LENGTH) {\n segment = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray);\n }\n var perp2 = p1.sub(p2)._perp()._unit();\n var dist = p2.dist(p1);\n if (edgeDistance + dist > 32768) {\n edgeDistance = 0;\n }\n addVertex(this.layoutVertexArray, p1.x, p1.y, perp2.x, perp2.y, 0, 0, edgeDistance);\n addVertex(this.layoutVertexArray, p1.x, p1.y, perp2.x, perp2.y, 0, 1, edgeDistance);\n edgeDistance += dist;\n addVertex(this.layoutVertexArray, p2.x, p2.y, perp2.x, perp2.y, 0, 0, edgeDistance);\n addVertex(this.layoutVertexArray, p2.x, p2.y, perp2.x, perp2.y, 0, 1, edgeDistance);\n var bottomRight = segment.vertexLength;\n this.indexArray.emplaceBack(bottomRight, bottomRight + 2, bottomRight + 1);\n this.indexArray.emplaceBack(bottomRight + 1, bottomRight + 2, bottomRight + 3);\n segment.vertexLength += 4;\n segment.primitiveLength += 2;\n }\n }\n }\n }\n if (segment.vertexLength + numVertices > SegmentVector.MAX_VERTEX_ARRAY_LENGTH) {\n segment = this.segments.prepareSegment(numVertices, this.layoutVertexArray, this.indexArray);\n }\n if (vectorTileFeatureTypes[feature.type] !== \"Polygon\") {\n continue;\n }\n var flattened = [];\n var holeIndices = [];\n var triangleIndex = segment.vertexLength;\n for (var i$3 = 0, list$2 = polygon; i$3 < list$2.length; i$3 += 1) {\n var ring$2 = list$2[i$3];\n if (ring$2.length === 0) {\n continue;\n }\n if (ring$2 !== polygon[0]) {\n holeIndices.push(flattened.length / 2);\n }\n for (var i = 0; i < ring$2.length; i++) {\n var p$1 = ring$2[i];\n addVertex(this.layoutVertexArray, p$1.x, p$1.y, 0, 0, 1, 1, 0);\n flattened.push(p$1.x);\n flattened.push(p$1.y);\n }\n }\n var indices = earcut_1(flattened, holeIndices);\n for (var j = 0; j < indices.length; j += 3) {\n this.indexArray.emplaceBack(triangleIndex + indices[j], triangleIndex + indices[j + 2], triangleIndex + indices[j + 1]);\n }\n segment.primitiveLength += indices.length / 3;\n segment.vertexLength += numVertices;\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions, canonical);\n };\n register(\"FillExtrusionBucket\", FillExtrusionBucket, {\n omit: [\n \"layers\",\n \"features\"\n ]\n });\n function isBoundaryEdge(p1, p2) {\n return p1.x === p2.x && (p1.x < 0 || p1.x > EXTENT$1) || p1.y === p2.y && (p1.y < 0 || p1.y > EXTENT$1);\n }\n function isEntirelyOutside(ring) {\n return ring.every(function(p) {\n return p.x < 0;\n }) || ring.every(function(p) {\n return p.x > EXTENT$1;\n }) || ring.every(function(p) {\n return p.y < 0;\n }) || ring.every(function(p) {\n return p.y > EXTENT$1;\n });\n }\n var paint$5 = new Properties({\n \"fill-extrusion-opacity\": new DataConstantProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\n \"fill-extrusion-color\": new DataDrivenProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\n \"fill-extrusion-translate\": new DataConstantProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\n \"fill-extrusion-translate-anchor\": new DataConstantProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\n \"fill-extrusion-pattern\": new CrossFadedDataDrivenProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\n \"fill-extrusion-height\": new DataDrivenProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\n \"fill-extrusion-base\": new DataDrivenProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\n \"fill-extrusion-vertical-gradient\": new DataConstantProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])\n });\n var properties$4 = { paint: paint$5 };\n var FillExtrusionStyleLayer = function(StyleLayer2) {\n function FillExtrusionStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$4);\n }\n if (StyleLayer2)\n FillExtrusionStyleLayer2.__proto__ = StyleLayer2;\n FillExtrusionStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n FillExtrusionStyleLayer2.prototype.constructor = FillExtrusionStyleLayer2;\n FillExtrusionStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new FillExtrusionBucket(parameters);\n };\n FillExtrusionStyleLayer2.prototype.queryRadius = function queryRadius() {\n return translateDistance(this.paint.get(\"fill-extrusion-translate\"));\n };\n FillExtrusionStyleLayer2.prototype.is3D = function is3D() {\n return true;\n };\n FillExtrusionStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature(queryGeometry, feature, featureState, geometry, zoom, transform, pixelsToTileUnits, pixelPosMatrix) {\n var translatedPolygon = translate(queryGeometry, this.paint.get(\"fill-extrusion-translate\"), this.paint.get(\"fill-extrusion-translate-anchor\"), transform.angle, pixelsToTileUnits);\n var height = this.paint.get(\"fill-extrusion-height\").evaluate(feature, featureState);\n var base = this.paint.get(\"fill-extrusion-base\").evaluate(feature, featureState);\n var projectedQueryGeometry = projectQueryGeometry$1(translatedPolygon, pixelPosMatrix, transform, 0);\n var projected = projectExtrusion(geometry, base, height, pixelPosMatrix);\n var projectedBase = projected[0];\n var projectedTop = projected[1];\n return checkIntersection(projectedBase, projectedTop, projectedQueryGeometry);\n };\n return FillExtrusionStyleLayer2;\n }(StyleLayer);\n function dot$2(a, b) {\n return a.x * b.x + a.y * b.y;\n }\n function getIntersectionDistance(projectedQueryGeometry, projectedFace) {\n if (projectedQueryGeometry.length === 1) {\n var i = 0;\n var a = projectedFace[i++];\n var b;\n while (!b || a.equals(b)) {\n b = projectedFace[i++];\n if (!b) {\n return Infinity;\n }\n }\n for (; i < projectedFace.length; i++) {\n var c = projectedFace[i];\n var p = projectedQueryGeometry[0];\n var ab = b.sub(a);\n var ac = c.sub(a);\n var ap = p.sub(a);\n var dotABAB = dot$2(ab, ab);\n var dotABAC = dot$2(ab, ac);\n var dotACAC = dot$2(ac, ac);\n var dotAPAB = dot$2(ap, ab);\n var dotAPAC = dot$2(ap, ac);\n var denom = dotABAB * dotACAC - dotABAC * dotABAC;\n var v = (dotACAC * dotAPAB - dotABAC * dotAPAC) / denom;\n var w = (dotABAB * dotAPAC - dotABAC * dotAPAB) / denom;\n var u = 1 - v - w;\n var distance = a.z * u + b.z * v + c.z * w;\n if (isFinite(distance)) {\n return distance;\n }\n }\n return Infinity;\n } else {\n var closestDistance = Infinity;\n for (var i$1 = 0, list = projectedFace; i$1 < list.length; i$1 += 1) {\n var p$1 = list[i$1];\n closestDistance = Math.min(closestDistance, p$1.z);\n }\n return closestDistance;\n }\n }\n function checkIntersection(projectedBase, projectedTop, projectedQueryGeometry) {\n var closestDistance = Infinity;\n if (polygonIntersectsMultiPolygon(projectedQueryGeometry, projectedTop)) {\n closestDistance = getIntersectionDistance(projectedQueryGeometry, projectedTop[0]);\n }\n for (var r = 0; r < projectedTop.length; r++) {\n var ringTop = projectedTop[r];\n var ringBase = projectedBase[r];\n for (var p = 0; p < ringTop.length - 1; p++) {\n var topA = ringTop[p];\n var topB = ringTop[p + 1];\n var baseA = ringBase[p];\n var baseB = ringBase[p + 1];\n var face = [\n topA,\n topB,\n baseB,\n baseA,\n topA\n ];\n if (polygonIntersectsPolygon(projectedQueryGeometry, face)) {\n closestDistance = Math.min(closestDistance, getIntersectionDistance(projectedQueryGeometry, face));\n }\n }\n }\n return closestDistance === Infinity ? false : closestDistance;\n }\n function projectExtrusion(geometry, zBase, zTop, m) {\n var projectedBase = [];\n var projectedTop = [];\n var baseXZ = m[8] * zBase;\n var baseYZ = m[9] * zBase;\n var baseZZ = m[10] * zBase;\n var baseWZ = m[11] * zBase;\n var topXZ = m[8] * zTop;\n var topYZ = m[9] * zTop;\n var topZZ = m[10] * zTop;\n var topWZ = m[11] * zTop;\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var r = list$1[i$1];\n var ringBase = [];\n var ringTop = [];\n for (var i = 0, list = r; i < list.length; i += 1) {\n var p = list[i];\n var x = p.x;\n var y = p.y;\n var sX = m[0] * x + m[4] * y + m[12];\n var sY = m[1] * x + m[5] * y + m[13];\n var sZ = m[2] * x + m[6] * y + m[14];\n var sW = m[3] * x + m[7] * y + m[15];\n var baseX = sX + baseXZ;\n var baseY = sY + baseYZ;\n var baseZ = sZ + baseZZ;\n var baseW = sW + baseWZ;\n var topX = sX + topXZ;\n var topY = sY + topYZ;\n var topZ = sZ + topZZ;\n var topW = sW + topWZ;\n var b = new pointGeometry(baseX / baseW, baseY / baseW);\n b.z = baseZ / baseW;\n ringBase.push(b);\n var t = new pointGeometry(topX / topW, topY / topW);\n t.z = topZ / topW;\n ringTop.push(t);\n }\n projectedBase.push(ringBase);\n projectedTop.push(ringTop);\n }\n return [\n projectedBase,\n projectedTop\n ];\n }\n function projectQueryGeometry$1(queryGeometry, pixelPosMatrix, transform, z) {\n var projectedQueryGeometry = [];\n for (var i = 0, list = queryGeometry; i < list.length; i += 1) {\n var p = list[i];\n var v = [\n p.x,\n p.y,\n z,\n 1\n ];\n transformMat4(v, v, pixelPosMatrix);\n projectedQueryGeometry.push(new pointGeometry(v[0] / v[3], v[1] / v[3]));\n }\n return projectedQueryGeometry;\n }\n var lineLayoutAttributes = createLayout([\n {\n name: \"a_pos_normal\",\n components: 2,\n type: \"Int16\"\n },\n {\n name: \"a_data\",\n components: 4,\n type: \"Uint8\"\n }\n ], 4);\n var members$3 = lineLayoutAttributes.members;\n var lineLayoutAttributesExt = createLayout([\n {\n name: \"a_uv_x\",\n components: 1,\n type: \"Float32\"\n },\n {\n name: \"a_split_index\",\n components: 1,\n type: \"Float32\"\n }\n ]);\n var members$4 = lineLayoutAttributesExt.members;\n var vectorTileFeatureTypes$1 = vectorTile.VectorTileFeature.types;\n var EXTRUDE_SCALE = 63;\n var COS_HALF_SHARP_CORNER = Math.cos(75 / 2 * (Math.PI / 180));\n var SHARP_CORNER_OFFSET = 15;\n var DEG_PER_TRIANGLE = 20;\n var LINE_DISTANCE_BUFFER_BITS = 15;\n var LINE_DISTANCE_SCALE = 1 / 2;\n var MAX_LINE_DISTANCE = Math.pow(2, LINE_DISTANCE_BUFFER_BITS - 1) / LINE_DISTANCE_SCALE;\n var LineBucket = function LineBucket2(options) {\n var this$1 = this;\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer2) {\n return layer2.id;\n });\n this.index = options.index;\n this.hasPattern = false;\n this.patternFeatures = [];\n this.lineClipsArray = [];\n this.gradients = {};\n this.layers.forEach(function(layer2) {\n this$1.gradients[layer2.id] = {};\n });\n this.layoutVertexArray = new StructArrayLayout2i4ub8();\n this.layoutVertexArray2 = new StructArrayLayout2f8();\n this.indexArray = new StructArrayLayout3ui6();\n this.programConfigurations = new ProgramConfigurationSet(options.layers, options.zoom);\n this.segments = new SegmentVector();\n this.maxLineLength = 0;\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n };\n LineBucket.prototype.populate = function populate(features, options, canonical) {\n this.hasPattern = hasPattern(\"line\", this.layers, options);\n var lineSortKey = this.layers[0].layout.get(\"line-sort-key\");\n var bucketFeatures = [];\n for (var i = 0, list = features; i < list.length; i += 1) {\n var ref = list[i];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = this.layers[0]._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!this.layers[0]._featureFilter.filter(new EvaluationParameters(this.zoom), evaluationFeature, canonical)) {\n continue;\n }\n var sortKey = lineSortKey ? lineSortKey.evaluate(evaluationFeature, {}, canonical) : void 0;\n var bucketFeature = {\n id: id2,\n properties: feature.properties,\n type: feature.type,\n sourceLayerIndex,\n index,\n geometry: needGeometry ? evaluationFeature.geometry : loadGeometry(feature),\n patterns: {},\n sortKey\n };\n bucketFeatures.push(bucketFeature);\n }\n if (lineSortKey) {\n bucketFeatures.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$1 = 0, list$1 = bucketFeatures; i$1 < list$1.length; i$1 += 1) {\n var bucketFeature$1 = list$1[i$1];\n var ref$1 = bucketFeature$1;\n var geometry = ref$1.geometry;\n var index$1 = ref$1.index;\n var sourceLayerIndex$1 = ref$1.sourceLayerIndex;\n if (this.hasPattern) {\n var patternBucketFeature = addPatternDependencies(\"line\", this.layers, bucketFeature$1, this.zoom, options);\n this.patternFeatures.push(patternBucketFeature);\n } else {\n this.addFeature(bucketFeature$1, geometry, index$1, canonical, {});\n }\n var feature$1 = features[index$1].feature;\n options.featureIndex.insert(feature$1, geometry, index$1, sourceLayerIndex$1, this.index);\n }\n };\n LineBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);\n };\n LineBucket.prototype.addFeatures = function addFeatures(options, canonical, imagePositions) {\n for (var i = 0, list = this.patternFeatures; i < list.length; i += 1) {\n var feature = list[i];\n this.addFeature(feature, feature.geometry, feature.index, canonical, imagePositions);\n }\n };\n LineBucket.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0;\n };\n LineBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n };\n LineBucket.prototype.upload = function upload(context) {\n if (!this.uploaded) {\n if (this.layoutVertexArray2.length !== 0) {\n this.layoutVertexBuffer2 = context.createVertexBuffer(this.layoutVertexArray2, members$4);\n }\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, members$3);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n }\n this.programConfigurations.upload(context);\n this.uploaded = true;\n };\n LineBucket.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n };\n LineBucket.prototype.lineFeatureClips = function lineFeatureClips(feature) {\n if (!!feature.properties && feature.properties.hasOwnProperty(\"mapbox_clip_start\") && feature.properties.hasOwnProperty(\"mapbox_clip_end\")) {\n var start = +feature.properties[\"mapbox_clip_start\"];\n var end = +feature.properties[\"mapbox_clip_end\"];\n return {\n start,\n end\n };\n }\n };\n LineBucket.prototype.addFeature = function addFeature2(feature, geometry, index, canonical, imagePositions) {\n var layout2 = this.layers[0].layout;\n var join = layout2.get(\"line-join\").evaluate(feature, {});\n var cap = layout2.get(\"line-cap\");\n var miterLimit = layout2.get(\"line-miter-limit\");\n var roundLimit = layout2.get(\"line-round-limit\");\n this.lineClips = this.lineFeatureClips(feature);\n for (var i = 0, list = geometry; i < list.length; i += 1) {\n var line = list[i];\n this.addLine(line, feature, join, cap, miterLimit, roundLimit);\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions, canonical);\n };\n LineBucket.prototype.addLine = function addLine(vertices, feature, join, cap, miterLimit, roundLimit) {\n this.distance = 0;\n this.scaledDistance = 0;\n this.totalDistance = 0;\n if (this.lineClips) {\n this.lineClipsArray.push(this.lineClips);\n for (var i = 0; i < vertices.length - 1; i++) {\n this.totalDistance += vertices[i].dist(vertices[i + 1]);\n }\n this.updateScaledDistance();\n this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance);\n }\n var isPolygon = vectorTileFeatureTypes$1[feature.type] === \"Polygon\";\n var len = vertices.length;\n while (len >= 2 && vertices[len - 1].equals(vertices[len - 2])) {\n len--;\n }\n var first = 0;\n while (first < len - 1 && vertices[first].equals(vertices[first + 1])) {\n first++;\n }\n if (len < (isPolygon ? 3 : 2)) {\n return;\n }\n if (join === \"bevel\") {\n miterLimit = 1.05;\n }\n var sharpCornerOffset = this.overscaling <= 16 ? SHARP_CORNER_OFFSET * EXTENT$1 / (512 * this.overscaling) : 0;\n var segment = this.segments.prepareSegment(len * 10, this.layoutVertexArray, this.indexArray);\n var currentVertex;\n var prevVertex = void 0;\n var nextVertex = void 0;\n var prevNormal = void 0;\n var nextNormal = void 0;\n this.e1 = this.e2 = -1;\n if (isPolygon) {\n currentVertex = vertices[len - 2];\n nextNormal = vertices[first].sub(currentVertex)._unit()._perp();\n }\n for (var i$1 = first; i$1 < len; i$1++) {\n nextVertex = i$1 === len - 1 ? isPolygon ? vertices[first + 1] : void 0 : vertices[i$1 + 1];\n if (nextVertex && vertices[i$1].equals(nextVertex)) {\n continue;\n }\n if (nextNormal) {\n prevNormal = nextNormal;\n }\n if (currentVertex) {\n prevVertex = currentVertex;\n }\n currentVertex = vertices[i$1];\n nextNormal = nextVertex ? nextVertex.sub(currentVertex)._unit()._perp() : prevNormal;\n prevNormal = prevNormal || nextNormal;\n var joinNormal = prevNormal.add(nextNormal);\n if (joinNormal.x !== 0 || joinNormal.y !== 0) {\n joinNormal._unit();\n }\n var cosAngle = prevNormal.x * nextNormal.x + prevNormal.y * nextNormal.y;\n var cosHalfAngle = joinNormal.x * nextNormal.x + joinNormal.y * nextNormal.y;\n var miterLength = cosHalfAngle !== 0 ? 1 / cosHalfAngle : Infinity;\n var approxAngle = 2 * Math.sqrt(2 - 2 * cosHalfAngle);\n var isSharpCorner = cosHalfAngle < COS_HALF_SHARP_CORNER && prevVertex && nextVertex;\n var lineTurnsLeft = prevNormal.x * nextNormal.y - prevNormal.y * nextNormal.x > 0;\n if (isSharpCorner && i$1 > first) {\n var prevSegmentLength = currentVertex.dist(prevVertex);\n if (prevSegmentLength > 2 * sharpCornerOffset) {\n var newPrevVertex = currentVertex.sub(currentVertex.sub(prevVertex)._mult(sharpCornerOffset / prevSegmentLength)._round());\n this.updateDistance(prevVertex, newPrevVertex);\n this.addCurrentVertex(newPrevVertex, prevNormal, 0, 0, segment);\n prevVertex = newPrevVertex;\n }\n }\n var middleVertex = prevVertex && nextVertex;\n var currentJoin = middleVertex ? join : isPolygon ? \"butt\" : cap;\n if (middleVertex && currentJoin === \"round\") {\n if (miterLength < roundLimit) {\n currentJoin = \"miter\";\n } else if (miterLength <= 2) {\n currentJoin = \"fakeround\";\n }\n }\n if (currentJoin === \"miter\" && miterLength > miterLimit) {\n currentJoin = \"bevel\";\n }\n if (currentJoin === \"bevel\") {\n if (miterLength > 2) {\n currentJoin = \"flipbevel\";\n }\n if (miterLength < miterLimit) {\n currentJoin = \"miter\";\n }\n }\n if (prevVertex) {\n this.updateDistance(prevVertex, currentVertex);\n }\n if (currentJoin === \"miter\") {\n joinNormal._mult(miterLength);\n this.addCurrentVertex(currentVertex, joinNormal, 0, 0, segment);\n } else if (currentJoin === \"flipbevel\") {\n if (miterLength > 100) {\n joinNormal = nextNormal.mult(-1);\n } else {\n var bevelLength = miterLength * prevNormal.add(nextNormal).mag() / prevNormal.sub(nextNormal).mag();\n joinNormal._perp()._mult(bevelLength * (lineTurnsLeft ? -1 : 1));\n }\n this.addCurrentVertex(currentVertex, joinNormal, 0, 0, segment);\n this.addCurrentVertex(currentVertex, joinNormal.mult(-1), 0, 0, segment);\n } else if (currentJoin === \"bevel\" || currentJoin === \"fakeround\") {\n var offset = -Math.sqrt(miterLength * miterLength - 1);\n var offsetA = lineTurnsLeft ? offset : 0;\n var offsetB = lineTurnsLeft ? 0 : offset;\n if (prevVertex) {\n this.addCurrentVertex(currentVertex, prevNormal, offsetA, offsetB, segment);\n }\n if (currentJoin === \"fakeround\") {\n var n = Math.round(approxAngle * 180 / Math.PI / DEG_PER_TRIANGLE);\n for (var m = 1; m < n; m++) {\n var t = m / n;\n if (t !== 0.5) {\n var t23 = t - 0.5;\n var A2 = 1.0904 + cosAngle * (-3.2452 + cosAngle * (3.55645 - cosAngle * 1.43519));\n var B2 = 0.848013 + cosAngle * (-1.06021 + cosAngle * 0.215638);\n t = t + t * t23 * (t - 1) * (A2 * t23 * t23 + B2);\n }\n var extrude = nextNormal.sub(prevNormal)._mult(t)._add(prevNormal)._unit()._mult(lineTurnsLeft ? -1 : 1);\n this.addHalfVertex(currentVertex, extrude.x, extrude.y, false, lineTurnsLeft, 0, segment);\n }\n }\n if (nextVertex) {\n this.addCurrentVertex(currentVertex, nextNormal, -offsetA, -offsetB, segment);\n }\n } else if (currentJoin === \"butt\") {\n this.addCurrentVertex(currentVertex, joinNormal, 0, 0, segment);\n } else if (currentJoin === \"square\") {\n var offset$1 = prevVertex ? 1 : -1;\n this.addCurrentVertex(currentVertex, joinNormal, offset$1, offset$1, segment);\n } else if (currentJoin === \"round\") {\n if (prevVertex) {\n this.addCurrentVertex(currentVertex, prevNormal, 0, 0, segment);\n this.addCurrentVertex(currentVertex, prevNormal, 1, 1, segment, true);\n }\n if (nextVertex) {\n this.addCurrentVertex(currentVertex, nextNormal, -1, -1, segment, true);\n this.addCurrentVertex(currentVertex, nextNormal, 0, 0, segment);\n }\n }\n if (isSharpCorner && i$1 < len - 1) {\n var nextSegmentLength = currentVertex.dist(nextVertex);\n if (nextSegmentLength > 2 * sharpCornerOffset) {\n var newCurrentVertex = currentVertex.add(nextVertex.sub(currentVertex)._mult(sharpCornerOffset / nextSegmentLength)._round());\n this.updateDistance(currentVertex, newCurrentVertex);\n this.addCurrentVertex(newCurrentVertex, nextNormal, 0, 0, segment);\n currentVertex = newCurrentVertex;\n }\n }\n }\n };\n LineBucket.prototype.addCurrentVertex = function addCurrentVertex(p, normal, endLeft, endRight, segment, round) {\n if (round === void 0)\n round = false;\n var leftX = normal.x + normal.y * endLeft;\n var leftY = normal.y - normal.x * endLeft;\n var rightX = -normal.x + normal.y * endRight;\n var rightY = -normal.y - normal.x * endRight;\n this.addHalfVertex(p, leftX, leftY, round, false, endLeft, segment);\n this.addHalfVertex(p, rightX, rightY, round, true, -endRight, segment);\n if (this.distance > MAX_LINE_DISTANCE / 2 && this.totalDistance === 0) {\n this.distance = 0;\n this.addCurrentVertex(p, normal, endLeft, endRight, segment, round);\n }\n };\n LineBucket.prototype.addHalfVertex = function addHalfVertex(ref, extrudeX, extrudeY, round, up, dir, segment) {\n var x = ref.x;\n var y = ref.y;\n var totalDistance = this.lineClips ? this.scaledDistance * (MAX_LINE_DISTANCE - 1) : this.scaledDistance;\n var linesofarScaled = totalDistance * LINE_DISTANCE_SCALE;\n this.layoutVertexArray.emplaceBack((x << 1) + (round ? 1 : 0), (y << 1) + (up ? 1 : 0), Math.round(EXTRUDE_SCALE * extrudeX) + 128, Math.round(EXTRUDE_SCALE * extrudeY) + 128, (dir === 0 ? 0 : dir < 0 ? -1 : 1) + 1 | (linesofarScaled & 63) << 2, linesofarScaled >> 6);\n if (this.lineClips) {\n var progressRealigned = this.scaledDistance - this.lineClips.start;\n var endClipRealigned = this.lineClips.end - this.lineClips.start;\n var uvX = progressRealigned / endClipRealigned;\n this.layoutVertexArray2.emplaceBack(uvX, this.lineClipsArray.length);\n }\n var e = segment.vertexLength++;\n if (this.e1 >= 0 && this.e2 >= 0) {\n this.indexArray.emplaceBack(this.e1, this.e2, e);\n segment.primitiveLength++;\n }\n if (up) {\n this.e2 = e;\n } else {\n this.e1 = e;\n }\n };\n LineBucket.prototype.updateScaledDistance = function updateScaledDistance() {\n this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance;\n };\n LineBucket.prototype.updateDistance = function updateDistance(prev, next) {\n this.distance += prev.dist(next);\n this.updateScaledDistance();\n };\n register(\"LineBucket\", LineBucket, {\n omit: [\n \"layers\",\n \"patternFeatures\"\n ]\n });\n var layout$6 = new Properties({\n \"line-cap\": new DataConstantProperty(spec[\"layout_line\"][\"line-cap\"]),\n \"line-join\": new DataDrivenProperty(spec[\"layout_line\"][\"line-join\"]),\n \"line-miter-limit\": new DataConstantProperty(spec[\"layout_line\"][\"line-miter-limit\"]),\n \"line-round-limit\": new DataConstantProperty(spec[\"layout_line\"][\"line-round-limit\"]),\n \"line-sort-key\": new DataDrivenProperty(spec[\"layout_line\"][\"line-sort-key\"])\n });\n var paint$6 = new Properties({\n \"line-opacity\": new DataDrivenProperty(spec[\"paint_line\"][\"line-opacity\"]),\n \"line-color\": new DataDrivenProperty(spec[\"paint_line\"][\"line-color\"]),\n \"line-translate\": new DataConstantProperty(spec[\"paint_line\"][\"line-translate\"]),\n \"line-translate-anchor\": new DataConstantProperty(spec[\"paint_line\"][\"line-translate-anchor\"]),\n \"line-width\": new DataDrivenProperty(spec[\"paint_line\"][\"line-width\"]),\n \"line-gap-width\": new DataDrivenProperty(spec[\"paint_line\"][\"line-gap-width\"]),\n \"line-offset\": new DataDrivenProperty(spec[\"paint_line\"][\"line-offset\"]),\n \"line-blur\": new DataDrivenProperty(spec[\"paint_line\"][\"line-blur\"]),\n \"line-dasharray\": new CrossFadedProperty(spec[\"paint_line\"][\"line-dasharray\"]),\n \"line-pattern\": new CrossFadedDataDrivenProperty(spec[\"paint_line\"][\"line-pattern\"]),\n \"line-gradient\": new ColorRampProperty(spec[\"paint_line\"][\"line-gradient\"])\n });\n var properties$5 = {\n paint: paint$6,\n layout: layout$6\n };\n var LineFloorwidthProperty = function(DataDrivenProperty2) {\n function LineFloorwidthProperty2() {\n DataDrivenProperty2.apply(this, arguments);\n }\n if (DataDrivenProperty2)\n LineFloorwidthProperty2.__proto__ = DataDrivenProperty2;\n LineFloorwidthProperty2.prototype = Object.create(DataDrivenProperty2 && DataDrivenProperty2.prototype);\n LineFloorwidthProperty2.prototype.constructor = LineFloorwidthProperty2;\n LineFloorwidthProperty2.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters) {\n parameters = new EvaluationParameters(Math.floor(parameters.zoom), {\n now: parameters.now,\n fadeDuration: parameters.fadeDuration,\n zoomHistory: parameters.zoomHistory,\n transition: parameters.transition\n });\n return DataDrivenProperty2.prototype.possiblyEvaluate.call(this, value, parameters);\n };\n LineFloorwidthProperty2.prototype.evaluate = function evaluate(value, globals, feature, featureState) {\n globals = extend2({}, globals, { zoom: Math.floor(globals.zoom) });\n return DataDrivenProperty2.prototype.evaluate.call(this, value, globals, feature, featureState);\n };\n return LineFloorwidthProperty2;\n }(DataDrivenProperty);\n var lineFloorwidthProperty = new LineFloorwidthProperty(properties$5.paint.properties[\"line-width\"].specification);\n lineFloorwidthProperty.useIntegerZoom = true;\n var LineStyleLayer = function(StyleLayer2) {\n function LineStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$5);\n this.gradientVersion = 0;\n }\n if (StyleLayer2)\n LineStyleLayer2.__proto__ = StyleLayer2;\n LineStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n LineStyleLayer2.prototype.constructor = LineStyleLayer2;\n LineStyleLayer2.prototype._handleSpecialPaintPropertyUpdate = function _handleSpecialPaintPropertyUpdate(name3) {\n if (name3 === \"line-gradient\") {\n var expression2 = this._transitionablePaint._values[\"line-gradient\"].value.expression;\n this.stepInterpolant = expression2._styleExpression.expression instanceof Step;\n this.gradientVersion = (this.gradientVersion + 1) % MAX_SAFE_INTEGER;\n }\n };\n LineStyleLayer2.prototype.gradientExpression = function gradientExpression() {\n return this._transitionablePaint._values[\"line-gradient\"].value.expression;\n };\n LineStyleLayer2.prototype.recalculate = function recalculate(parameters, availableImages) {\n StyleLayer2.prototype.recalculate.call(this, parameters, availableImages);\n this.paint._values[\"line-floorwidth\"] = lineFloorwidthProperty.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value, parameters);\n };\n LineStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new LineBucket(parameters);\n };\n LineStyleLayer2.prototype.queryRadius = function queryRadius(bucket) {\n var lineBucket = bucket;\n var width = getLineWidth(getMaximumPaintValue(\"line-width\", this, lineBucket), getMaximumPaintValue(\"line-gap-width\", this, lineBucket));\n var offset = getMaximumPaintValue(\"line-offset\", this, lineBucket);\n return width / 2 + Math.abs(offset) + translateDistance(this.paint.get(\"line-translate\"));\n };\n LineStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature(queryGeometry, feature, featureState, geometry, zoom, transform, pixelsToTileUnits) {\n var translatedPolygon = translate(queryGeometry, this.paint.get(\"line-translate\"), this.paint.get(\"line-translate-anchor\"), transform.angle, pixelsToTileUnits);\n var halfWidth = pixelsToTileUnits / 2 * getLineWidth(this.paint.get(\"line-width\").evaluate(feature, featureState), this.paint.get(\"line-gap-width\").evaluate(feature, featureState));\n var lineOffset = this.paint.get(\"line-offset\").evaluate(feature, featureState);\n if (lineOffset) {\n geometry = offsetLine(geometry, lineOffset * pixelsToTileUnits);\n }\n return polygonIntersectsBufferedMultiLine(translatedPolygon, geometry, halfWidth);\n };\n LineStyleLayer2.prototype.isTileClipped = function isTileClipped() {\n return true;\n };\n return LineStyleLayer2;\n }(StyleLayer);\n function getLineWidth(lineWidth, lineGapWidth) {\n if (lineGapWidth > 0) {\n return lineGapWidth + 2 * lineWidth;\n } else {\n return lineWidth;\n }\n }\n function offsetLine(rings, offset) {\n var newRings = [];\n var zero2 = new pointGeometry(0, 0);\n for (var k = 0; k < rings.length; k++) {\n var ring = rings[k];\n var newRing = [];\n for (var i = 0; i < ring.length; i++) {\n var a = ring[i - 1];\n var b = ring[i];\n var c = ring[i + 1];\n var aToB = i === 0 ? zero2 : b.sub(a)._unit()._perp();\n var bToC = i === ring.length - 1 ? zero2 : c.sub(b)._unit()._perp();\n var extrude = aToB._add(bToC)._unit();\n var cosHalfAngle = extrude.x * bToC.x + extrude.y * bToC.y;\n extrude._mult(1 / cosHalfAngle);\n newRing.push(extrude._mult(offset)._add(b));\n }\n newRings.push(newRing);\n }\n return newRings;\n }\n var symbolLayoutAttributes = createLayout([\n {\n name: \"a_pos_offset\",\n components: 4,\n type: \"Int16\"\n },\n {\n name: \"a_data\",\n components: 4,\n type: \"Uint16\"\n },\n {\n name: \"a_pixeloffset\",\n components: 4,\n type: \"Int16\"\n }\n ], 4);\n var dynamicLayoutAttributes = createLayout([{\n name: \"a_projected_pos\",\n components: 3,\n type: \"Float32\"\n }], 4);\n var placementOpacityAttributes = createLayout([{\n name: \"a_fade_opacity\",\n components: 1,\n type: \"Uint32\"\n }], 4);\n var collisionVertexAttributes = createLayout([\n {\n name: \"a_placed\",\n components: 2,\n type: \"Uint8\"\n },\n {\n name: \"a_shift\",\n components: 2,\n type: \"Float32\"\n }\n ]);\n var collisionBox = createLayout([\n {\n type: \"Int16\",\n name: \"anchorPointX\"\n },\n {\n type: \"Int16\",\n name: \"anchorPointY\"\n },\n {\n type: \"Int16\",\n name: \"x1\"\n },\n {\n type: \"Int16\",\n name: \"y1\"\n },\n {\n type: \"Int16\",\n name: \"x2\"\n },\n {\n type: \"Int16\",\n name: \"y2\"\n },\n {\n type: \"Uint32\",\n name: \"featureIndex\"\n },\n {\n type: \"Uint16\",\n name: \"sourceLayerIndex\"\n },\n {\n type: \"Uint16\",\n name: \"bucketIndex\"\n }\n ]);\n var collisionBoxLayout = createLayout([\n {\n name: \"a_pos\",\n components: 2,\n type: \"Int16\"\n },\n {\n name: \"a_anchor_pos\",\n components: 2,\n type: \"Int16\"\n },\n {\n name: \"a_extrude\",\n components: 2,\n type: \"Int16\"\n }\n ], 4);\n var collisionCircleLayout = createLayout([\n {\n name: \"a_pos\",\n components: 2,\n type: \"Float32\"\n },\n {\n name: \"a_radius\",\n components: 1,\n type: \"Float32\"\n },\n {\n name: \"a_flags\",\n components: 2,\n type: \"Int16\"\n }\n ], 4);\n var quadTriangle = createLayout([{\n name: \"triangle\",\n components: 3,\n type: \"Uint16\"\n }]);\n var placement = createLayout([\n {\n type: \"Int16\",\n name: \"anchorX\"\n },\n {\n type: \"Int16\",\n name: \"anchorY\"\n },\n {\n type: \"Uint16\",\n name: \"glyphStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"numGlyphs\"\n },\n {\n type: \"Uint32\",\n name: \"vertexStartIndex\"\n },\n {\n type: \"Uint32\",\n name: \"lineStartIndex\"\n },\n {\n type: \"Uint32\",\n name: \"lineLength\"\n },\n {\n type: \"Uint16\",\n name: \"segment\"\n },\n {\n type: \"Uint16\",\n name: \"lowerSize\"\n },\n {\n type: \"Uint16\",\n name: \"upperSize\"\n },\n {\n type: \"Float32\",\n name: \"lineOffsetX\"\n },\n {\n type: \"Float32\",\n name: \"lineOffsetY\"\n },\n {\n type: \"Uint8\",\n name: \"writingMode\"\n },\n {\n type: \"Uint8\",\n name: \"placedOrientation\"\n },\n {\n type: \"Uint8\",\n name: \"hidden\"\n },\n {\n type: \"Uint32\",\n name: \"crossTileID\"\n },\n {\n type: \"Int16\",\n name: \"associatedIconIndex\"\n }\n ]);\n var symbolInstance = createLayout([\n {\n type: \"Int16\",\n name: \"anchorX\"\n },\n {\n type: \"Int16\",\n name: \"anchorY\"\n },\n {\n type: \"Int16\",\n name: \"rightJustifiedTextSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"centerJustifiedTextSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"leftJustifiedTextSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"verticalPlacedTextSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"placedIconSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"verticalPlacedIconSymbolIndex\"\n },\n {\n type: \"Uint16\",\n name: \"key\"\n },\n {\n type: \"Uint16\",\n name: \"textBoxStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"textBoxEndIndex\"\n },\n {\n type: \"Uint16\",\n name: \"verticalTextBoxStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"verticalTextBoxEndIndex\"\n },\n {\n type: \"Uint16\",\n name: \"iconBoxStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"iconBoxEndIndex\"\n },\n {\n type: \"Uint16\",\n name: \"verticalIconBoxStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"verticalIconBoxEndIndex\"\n },\n {\n type: \"Uint16\",\n name: \"featureIndex\"\n },\n {\n type: \"Uint16\",\n name: \"numHorizontalGlyphVertices\"\n },\n {\n type: \"Uint16\",\n name: \"numVerticalGlyphVertices\"\n },\n {\n type: \"Uint16\",\n name: \"numIconVertices\"\n },\n {\n type: \"Uint16\",\n name: \"numVerticalIconVertices\"\n },\n {\n type: \"Uint16\",\n name: \"useRuntimeCollisionCircles\"\n },\n {\n type: \"Uint32\",\n name: \"crossTileID\"\n },\n {\n type: \"Float32\",\n name: \"textBoxScale\"\n },\n {\n type: \"Float32\",\n components: 2,\n name: \"textOffset\"\n },\n {\n type: \"Float32\",\n name: \"collisionCircleDiameter\"\n }\n ]);\n var glyphOffset = createLayout([{\n type: \"Float32\",\n name: \"offsetX\"\n }]);\n var lineVertex = createLayout([\n {\n type: \"Int16\",\n name: \"x\"\n },\n {\n type: \"Int16\",\n name: \"y\"\n },\n {\n type: \"Int16\",\n name: \"tileUnitDistanceFromAnchor\"\n }\n ]);\n function transformText(text, layer2, feature) {\n var transform = layer2.layout.get(\"text-transform\").evaluate(feature, {});\n if (transform === \"uppercase\") {\n text = text.toLocaleUpperCase();\n } else if (transform === \"lowercase\") {\n text = text.toLocaleLowerCase();\n }\n if (plugin.applyArabicShaping) {\n text = plugin.applyArabicShaping(text);\n }\n return text;\n }\n function transformText$1(text, layer2, feature) {\n text.sections.forEach(function(section) {\n section.text = transformText(section.text, layer2, feature);\n });\n return text;\n }\n function mergeLines(features) {\n var leftIndex = {};\n var rightIndex = {};\n var mergedFeatures = [];\n var mergedIndex = 0;\n function add2(k2) {\n mergedFeatures.push(features[k2]);\n mergedIndex++;\n }\n function mergeFromRight(leftKey2, rightKey2, geom2) {\n var i2 = rightIndex[leftKey2];\n delete rightIndex[leftKey2];\n rightIndex[rightKey2] = i2;\n mergedFeatures[i2].geometry[0].pop();\n mergedFeatures[i2].geometry[0] = mergedFeatures[i2].geometry[0].concat(geom2[0]);\n return i2;\n }\n function mergeFromLeft(leftKey2, rightKey2, geom2) {\n var i2 = leftIndex[rightKey2];\n delete leftIndex[rightKey2];\n leftIndex[leftKey2] = i2;\n mergedFeatures[i2].geometry[0].shift();\n mergedFeatures[i2].geometry[0] = geom2[0].concat(mergedFeatures[i2].geometry[0]);\n return i2;\n }\n function getKey(text2, geom2, onRight) {\n var point = onRight ? geom2[0][geom2[0].length - 1] : geom2[0][0];\n return text2 + \":\" + point.x + \":\" + point.y;\n }\n for (var k = 0; k < features.length; k++) {\n var feature = features[k];\n var geom = feature.geometry;\n var text = feature.text ? feature.text.toString() : null;\n if (!text) {\n add2(k);\n continue;\n }\n var leftKey = getKey(text, geom), rightKey = getKey(text, geom, true);\n if (leftKey in rightIndex && rightKey in leftIndex && rightIndex[leftKey] !== leftIndex[rightKey]) {\n var j = mergeFromLeft(leftKey, rightKey, geom);\n var i = mergeFromRight(leftKey, rightKey, mergedFeatures[j].geometry);\n delete leftIndex[leftKey];\n delete rightIndex[rightKey];\n rightIndex[getKey(text, mergedFeatures[i].geometry, true)] = i;\n mergedFeatures[j].geometry = null;\n } else if (leftKey in rightIndex) {\n mergeFromRight(leftKey, rightKey, geom);\n } else if (rightKey in leftIndex) {\n mergeFromLeft(leftKey, rightKey, geom);\n } else {\n add2(k);\n leftIndex[leftKey] = mergedIndex - 1;\n rightIndex[rightKey] = mergedIndex - 1;\n }\n }\n return mergedFeatures.filter(function(f) {\n return f.geometry;\n });\n }\n var verticalizedCharacterMap = {\n \"!\": \"\\uFE15\",\n \"#\": \"\\uFF03\",\n \"$\": \"\\uFF04\",\n \"%\": \"\\uFF05\",\n \"&\": \"\\uFF06\",\n \"(\": \"\\uFE35\",\n \")\": \"\\uFE36\",\n \"*\": \"\\uFF0A\",\n \"+\": \"\\uFF0B\",\n \",\": \"\\uFE10\",\n \"-\": \"\\uFE32\",\n \".\": \"\\u30FB\",\n \"/\": \"\\uFF0F\",\n \":\": \"\\uFE13\",\n \";\": \"\\uFE14\",\n \"<\": \"\\uFE3F\",\n \"=\": \"\\uFF1D\",\n \">\": \"\\uFE40\",\n \"?\": \"\\uFE16\",\n \"@\": \"\\uFF20\",\n \"[\": \"\\uFE47\",\n \"\\\\\": \"\\uFF3C\",\n \"]\": \"\\uFE48\",\n \"^\": \"\\uFF3E\",\n \"_\": \"\\uFE33\",\n \"`\": \"\\uFF40\",\n \"{\": \"\\uFE37\",\n \"|\": \"\\u2015\",\n \"}\": \"\\uFE38\",\n \"~\": \"\\uFF5E\",\n \"\\xA2\": \"\\uFFE0\",\n \"\\xA3\": \"\\uFFE1\",\n \"\\xA5\": \"\\uFFE5\",\n \"\\xA6\": \"\\uFFE4\",\n \"\\xAC\": \"\\uFFE2\",\n \"\\xAF\": \"\\uFFE3\",\n \"\\u2013\": \"\\uFE32\",\n \"\\u2014\": \"\\uFE31\",\n \"\\u2018\": \"\\uFE43\",\n \"\\u2019\": \"\\uFE44\",\n \"\\u201C\": \"\\uFE41\",\n \"\\u201D\": \"\\uFE42\",\n \"\\u2026\": \"\\uFE19\",\n \"\\u2027\": \"\\u30FB\",\n \"\\u20A9\": \"\\uFFE6\",\n \"\\u3001\": \"\\uFE11\",\n \"\\u3002\": \"\\uFE12\",\n \"\\u3008\": \"\\uFE3F\",\n \"\\u3009\": \"\\uFE40\",\n \"\\u300A\": \"\\uFE3D\",\n \"\\u300B\": \"\\uFE3E\",\n \"\\u300C\": \"\\uFE41\",\n \"\\u300D\": \"\\uFE42\",\n \"\\u300E\": \"\\uFE43\",\n \"\\u300F\": \"\\uFE44\",\n \"\\u3010\": \"\\uFE3B\",\n \"\\u3011\": \"\\uFE3C\",\n \"\\u3014\": \"\\uFE39\",\n \"\\u3015\": \"\\uFE3A\",\n \"\\u3016\": \"\\uFE17\",\n \"\\u3017\": \"\\uFE18\",\n \"\\uFF01\": \"\\uFE15\",\n \"\\uFF08\": \"\\uFE35\",\n \"\\uFF09\": \"\\uFE36\",\n \"\\uFF0C\": \"\\uFE10\",\n \"\\uFF0D\": \"\\uFE32\",\n \"\\uFF0E\": \"\\u30FB\",\n \"\\uFF1A\": \"\\uFE13\",\n \"\\uFF1B\": \"\\uFE14\",\n \"\\uFF1C\": \"\\uFE3F\",\n \"\\uFF1E\": \"\\uFE40\",\n \"\\uFF1F\": \"\\uFE16\",\n \"\\uFF3B\": \"\\uFE47\",\n \"\\uFF3D\": \"\\uFE48\",\n \"\\uFF3F\": \"\\uFE33\",\n \"\\uFF5B\": \"\\uFE37\",\n \"\\uFF5C\": \"\\u2015\",\n \"\\uFF5D\": \"\\uFE38\",\n \"\\uFF5F\": \"\\uFE35\",\n \"\\uFF60\": \"\\uFE36\",\n \"\\uFF61\": \"\\uFE12\",\n \"\\uFF62\": \"\\uFE41\",\n \"\\uFF63\": \"\\uFE42\"\n };\n function verticalizePunctuation(input) {\n var output = \"\";\n for (var i = 0; i < input.length; i++) {\n var nextCharCode = input.charCodeAt(i + 1) || null;\n var prevCharCode = input.charCodeAt(i - 1) || null;\n var canReplacePunctuation = (!nextCharCode || !charHasRotatedVerticalOrientation(nextCharCode) || verticalizedCharacterMap[input[i + 1]]) && (!prevCharCode || !charHasRotatedVerticalOrientation(prevCharCode) || verticalizedCharacterMap[input[i - 1]]);\n if (canReplacePunctuation && verticalizedCharacterMap[input[i]]) {\n output += verticalizedCharacterMap[input[i]];\n } else {\n output += input[i];\n }\n }\n return output;\n }\n var ONE_EM = 24;\n var 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 i += d;\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 var 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 value = Math.abs(value);\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 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 for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n var ieee754 = {\n read,\n write\n };\n var pbf = Pbf;\n function Pbf(buf) {\n this.buf = ArrayBuffer.isView && ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf || 0);\n this.pos = 0;\n this.type = 0;\n this.length = this.buf.length;\n }\n Pbf.Varint = 0;\n Pbf.Fixed64 = 1;\n Pbf.Bytes = 2;\n Pbf.Fixed32 = 5;\n var SHIFT_LEFT_32 = (1 << 16) * (1 << 16), SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n var TEXT_DECODER_MIN_LENGTH = 12;\n var utf8TextDecoder = typeof TextDecoder === \"undefined\" ? null : new TextDecoder(\"utf8\");\n Pbf.prototype = {\n destroy: function() {\n this.buf = null;\n },\n readFields: function(readField, result, end) {\n end = end || this.length;\n while (this.pos < end) {\n var val = this.readVarint(), tag = val >> 3, startPos = this.pos;\n this.type = val & 7;\n readField(tag, result, this);\n if (this.pos === startPos) {\n this.skip(val);\n }\n }\n return result;\n },\n readMessage: function(readField, result) {\n return this.readFields(readField, result, this.readVarint() + this.pos);\n },\n readFixed32: function() {\n var val = readUInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n readSFixed32: function() {\n var val = readInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n readFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readUInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n readSFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n readFloat: function() {\n var val = ieee754.read(this.buf, this.pos, true, 23, 4);\n this.pos += 4;\n return val;\n },\n readDouble: function() {\n var val = ieee754.read(this.buf, this.pos, true, 52, 8);\n this.pos += 8;\n return val;\n },\n readVarint: function(isSigned) {\n var buf = this.buf, val, b;\n b = buf[this.pos++];\n val = b & 127;\n if (b < 128) {\n return val;\n }\n b = buf[this.pos++];\n val |= (b & 127) << 7;\n if (b < 128) {\n return val;\n }\n b = buf[this.pos++];\n val |= (b & 127) << 14;\n if (b < 128) {\n return val;\n }\n b = buf[this.pos++];\n val |= (b & 127) << 21;\n if (b < 128) {\n return val;\n }\n b = buf[this.pos];\n val |= (b & 15) << 28;\n return readVarintRemainder(val, isSigned, this);\n },\n readVarint64: function() {\n return this.readVarint(true);\n },\n readSVarint: function() {\n var num = this.readVarint();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2;\n },\n readBoolean: function() {\n return Boolean(this.readVarint());\n },\n readString: function() {\n var end = this.readVarint() + this.pos;\n var pos = this.pos;\n this.pos = end;\n if (end - pos >= TEXT_DECODER_MIN_LENGTH && utf8TextDecoder) {\n return readUtf8TextDecoder(this.buf, pos, end);\n }\n return readUtf8(this.buf, pos, end);\n },\n readBytes: function() {\n var end = this.readVarint() + this.pos, buffer = this.buf.subarray(this.pos, end);\n this.pos = end;\n return buffer;\n },\n readPackedVarint: function(arr, isSigned) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readVarint(isSigned));\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readVarint(isSigned));\n }\n return arr;\n },\n readPackedSVarint: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readSVarint());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readSVarint());\n }\n return arr;\n },\n readPackedBoolean: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readBoolean());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readBoolean());\n }\n return arr;\n },\n readPackedFloat: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readFloat());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readFloat());\n }\n return arr;\n },\n readPackedDouble: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readDouble());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readDouble());\n }\n return arr;\n },\n readPackedFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readFixed32());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readFixed32());\n }\n return arr;\n },\n readPackedSFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readSFixed32());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readSFixed32());\n }\n return arr;\n },\n readPackedFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readFixed64());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readFixed64());\n }\n return arr;\n },\n readPackedSFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readSFixed64());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readSFixed64());\n }\n return arr;\n },\n skip: function(val) {\n var type = val & 7;\n if (type === Pbf.Varint) {\n while (this.buf[this.pos++] > 127) {\n }\n } else if (type === Pbf.Bytes) {\n this.pos = this.readVarint() + this.pos;\n } else if (type === Pbf.Fixed32) {\n this.pos += 4;\n } else if (type === Pbf.Fixed64) {\n this.pos += 8;\n } else {\n throw new Error(\"Unimplemented type: \" + type);\n }\n },\n writeTag: function(tag, type) {\n this.writeVarint(tag << 3 | type);\n },\n realloc: function(min) {\n var length = this.length || 16;\n while (length < this.pos + min) {\n length *= 2;\n }\n if (length !== this.length) {\n var buf = new Uint8Array(length);\n buf.set(this.buf);\n this.buf = buf;\n this.length = length;\n }\n },\n finish: function() {\n this.length = this.pos;\n this.pos = 0;\n return this.buf.subarray(0, this.length);\n },\n writeFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n writeSFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n writeFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n writeSFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n writeVarint: function(val) {\n val = +val || 0;\n if (val > 268435455 || val < 0) {\n writeBigVarint(val, this);\n return;\n }\n this.realloc(4);\n this.buf[this.pos++] = val & 127 | (val > 127 ? 128 : 0);\n if (val <= 127) {\n return;\n }\n this.buf[this.pos++] = (val >>>= 7) & 127 | (val > 127 ? 128 : 0);\n if (val <= 127) {\n return;\n }\n this.buf[this.pos++] = (val >>>= 7) & 127 | (val > 127 ? 128 : 0);\n if (val <= 127) {\n return;\n }\n this.buf[this.pos++] = val >>> 7 & 127;\n },\n writeSVarint: function(val) {\n this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);\n },\n writeBoolean: function(val) {\n this.writeVarint(Boolean(val));\n },\n writeString: function(str) {\n str = String(str);\n this.realloc(str.length * 4);\n this.pos++;\n var startPos = this.pos;\n this.pos = writeUtf8(this.buf, str, this.pos);\n var len = this.pos - startPos;\n if (len >= 128) {\n makeRoomForExtraLength(startPos, len, this);\n }\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n writeFloat: function(val) {\n this.realloc(4);\n ieee754.write(this.buf, val, this.pos, true, 23, 4);\n this.pos += 4;\n },\n writeDouble: function(val) {\n this.realloc(8);\n ieee754.write(this.buf, val, this.pos, true, 52, 8);\n this.pos += 8;\n },\n writeBytes: function(buffer) {\n var len = buffer.length;\n this.writeVarint(len);\n this.realloc(len);\n for (var i = 0; i < len; i++) {\n this.buf[this.pos++] = buffer[i];\n }\n },\n writeRawMessage: function(fn, obj) {\n this.pos++;\n var startPos = this.pos;\n fn(obj, this);\n var len = this.pos - startPos;\n if (len >= 128) {\n makeRoomForExtraLength(startPos, len, this);\n }\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n writeMessage: function(tag, fn, obj) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeRawMessage(fn, obj);\n },\n writePackedVarint: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedVarint, arr);\n }\n },\n writePackedSVarint: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedSVarint, arr);\n }\n },\n writePackedBoolean: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedBoolean, arr);\n }\n },\n writePackedFloat: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedFloat, arr);\n }\n },\n writePackedDouble: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedDouble, arr);\n }\n },\n writePackedFixed32: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedFixed32, arr);\n }\n },\n writePackedSFixed32: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedSFixed32, arr);\n }\n },\n writePackedFixed64: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedFixed64, arr);\n }\n },\n writePackedSFixed64: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedSFixed64, arr);\n }\n },\n writeBytesField: function(tag, buffer) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeBytes(buffer);\n },\n writeFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFixed32(val);\n },\n writeSFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeSFixed32(val);\n },\n writeFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeFixed64(val);\n },\n writeSFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeSFixed64(val);\n },\n writeVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeVarint(val);\n },\n writeSVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeSVarint(val);\n },\n writeStringField: function(tag, str) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeString(str);\n },\n writeFloatField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFloat(val);\n },\n writeDoubleField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeDouble(val);\n },\n writeBooleanField: function(tag, val) {\n this.writeVarintField(tag, Boolean(val));\n }\n };\n function readVarintRemainder(l, s, p) {\n var buf = p.buf, h, b;\n b = buf[p.pos++];\n h = (b & 112) >> 4;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 127) << 3;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 127) << 10;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 127) << 17;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 127) << 24;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 1) << 31;\n if (b < 128) {\n return toNum(l, h, s);\n }\n throw new Error(\"Expected varint not more than 10 bytes\");\n }\n function readPackedEnd(pbf2) {\n return pbf2.type === Pbf.Bytes ? pbf2.readVarint() + pbf2.pos : pbf2.pos + 1;\n }\n function toNum(low, high, isSigned) {\n if (isSigned) {\n return high * 4294967296 + (low >>> 0);\n }\n return (high >>> 0) * 4294967296 + (low >>> 0);\n }\n function writeBigVarint(val, pbf2) {\n var low, high;\n if (val >= 0) {\n low = val % 4294967296 | 0;\n high = val / 4294967296 | 0;\n } else {\n low = ~(-val % 4294967296);\n high = ~(-val / 4294967296);\n if (low ^ 4294967295) {\n low = low + 1 | 0;\n } else {\n low = 0;\n high = high + 1 | 0;\n }\n }\n if (val >= 18446744073709552e3 || val < -18446744073709552e3) {\n throw new Error(\"Given varint doesn't fit into 10 bytes\");\n }\n pbf2.realloc(10);\n writeBigVarintLow(low, high, pbf2);\n writeBigVarintHigh(high, pbf2);\n }\n function writeBigVarintLow(low, high, pbf2) {\n pbf2.buf[pbf2.pos++] = low & 127 | 128;\n low >>>= 7;\n pbf2.buf[pbf2.pos++] = low & 127 | 128;\n low >>>= 7;\n pbf2.buf[pbf2.pos++] = low & 127 | 128;\n low >>>= 7;\n pbf2.buf[pbf2.pos++] = low & 127 | 128;\n low >>>= 7;\n pbf2.buf[pbf2.pos] = low & 127;\n }\n function writeBigVarintHigh(high, pbf2) {\n var lsb = (high & 7) << 4;\n pbf2.buf[pbf2.pos++] |= lsb | ((high >>>= 3) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127;\n }\n function makeRoomForExtraLength(startPos, len, pbf2) {\n var extraLen = len <= 16383 ? 1 : len <= 2097151 ? 2 : len <= 268435455 ? 3 : Math.floor(Math.log(len) / (Math.LN2 * 7));\n pbf2.realloc(extraLen);\n for (var i = pbf2.pos - 1; i >= startPos; i--) {\n pbf2.buf[i + extraLen] = pbf2.buf[i];\n }\n }\n function writePackedVarint(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeVarint(arr[i]);\n }\n }\n function writePackedSVarint(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeSVarint(arr[i]);\n }\n }\n function writePackedFloat(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeFloat(arr[i]);\n }\n }\n function writePackedDouble(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeDouble(arr[i]);\n }\n }\n function writePackedBoolean(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeBoolean(arr[i]);\n }\n }\n function writePackedFixed32(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeFixed32(arr[i]);\n }\n }\n function writePackedSFixed32(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeSFixed32(arr[i]);\n }\n }\n function writePackedFixed64(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeFixed64(arr[i]);\n }\n }\n function writePackedSFixed64(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeSFixed64(arr[i]);\n }\n }\n function readUInt32(buf, pos) {\n return (buf[pos] | buf[pos + 1] << 8 | buf[pos + 2] << 16) + buf[pos + 3] * 16777216;\n }\n function writeInt32(buf, val, pos) {\n buf[pos] = val;\n buf[pos + 1] = val >>> 8;\n buf[pos + 2] = val >>> 16;\n buf[pos + 3] = val >>> 24;\n }\n function readInt32(buf, pos) {\n return (buf[pos] | buf[pos + 1] << 8 | buf[pos + 2] << 16) + (buf[pos + 3] << 24);\n }\n function readUtf8(buf, pos, end) {\n var str = \"\";\n var i = pos;\n while (i < end) {\n var b0 = buf[i];\n var c = null;\n var bytesPerSequence = b0 > 239 ? 4 : b0 > 223 ? 3 : b0 > 191 ? 2 : 1;\n if (i + bytesPerSequence > end) {\n break;\n }\n var b1, b2, b3;\n if (bytesPerSequence === 1) {\n if (b0 < 128) {\n c = b0;\n }\n } else if (bytesPerSequence === 2) {\n b1 = buf[i + 1];\n if ((b1 & 192) === 128) {\n c = (b0 & 31) << 6 | b1 & 63;\n if (c <= 127) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 3) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n if ((b1 & 192) === 128 && (b2 & 192) === 128) {\n c = (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63;\n if (c <= 2047 || c >= 55296 && c <= 57343) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 4) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n b3 = buf[i + 3];\n if ((b1 & 192) === 128 && (b2 & 192) === 128 && (b3 & 192) === 128) {\n c = (b0 & 15) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63;\n if (c <= 65535 || c >= 1114112) {\n c = null;\n }\n }\n }\n if (c === null) {\n c = 65533;\n bytesPerSequence = 1;\n } else if (c > 65535) {\n c -= 65536;\n str += String.fromCharCode(c >>> 10 & 1023 | 55296);\n c = 56320 | c & 1023;\n }\n str += String.fromCharCode(c);\n i += bytesPerSequence;\n }\n return str;\n }\n function readUtf8TextDecoder(buf, pos, end) {\n return utf8TextDecoder.decode(buf.subarray(pos, end));\n }\n function writeUtf8(buf, str, pos) {\n for (var i = 0, c, lead; i < str.length; i++) {\n c = str.charCodeAt(i);\n if (c > 55295 && c < 57344) {\n if (lead) {\n if (c < 56320) {\n buf[pos++] = 239;\n buf[pos++] = 191;\n buf[pos++] = 189;\n lead = c;\n continue;\n } else {\n c = lead - 55296 << 10 | c - 56320 | 65536;\n lead = null;\n }\n } else {\n if (c > 56319 || i + 1 === str.length) {\n buf[pos++] = 239;\n buf[pos++] = 191;\n buf[pos++] = 189;\n } else {\n lead = c;\n }\n continue;\n }\n } else if (lead) {\n buf[pos++] = 239;\n buf[pos++] = 191;\n buf[pos++] = 189;\n lead = null;\n }\n if (c < 128) {\n buf[pos++] = c;\n } else {\n if (c < 2048) {\n buf[pos++] = c >> 6 | 192;\n } else {\n if (c < 65536) {\n buf[pos++] = c >> 12 | 224;\n } else {\n buf[pos++] = c >> 18 | 240;\n buf[pos++] = c >> 12 & 63 | 128;\n }\n buf[pos++] = c >> 6 & 63 | 128;\n }\n buf[pos++] = c & 63 | 128;\n }\n }\n return pos;\n }\n var border = 3;\n function readFontstacks(tag, glyphs, pbf2) {\n if (tag === 1) {\n pbf2.readMessage(readFontstack, glyphs);\n }\n }\n function readFontstack(tag, glyphs, pbf2) {\n if (tag === 3) {\n var ref = pbf2.readMessage(readGlyph, {});\n var id2 = ref.id;\n var bitmap = ref.bitmap;\n var width = ref.width;\n var height = ref.height;\n var left = ref.left;\n var top = ref.top;\n var advance = ref.advance;\n glyphs.push({\n id: id2,\n bitmap: new AlphaImage({\n width: width + 2 * border,\n height: height + 2 * border\n }, bitmap),\n metrics: {\n width,\n height,\n left,\n top,\n advance\n }\n });\n }\n }\n function readGlyph(tag, glyph, pbf2) {\n if (tag === 1) {\n glyph.id = pbf2.readVarint();\n } else if (tag === 2) {\n glyph.bitmap = pbf2.readBytes();\n } else if (tag === 3) {\n glyph.width = pbf2.readVarint();\n } else if (tag === 4) {\n glyph.height = pbf2.readVarint();\n } else if (tag === 5) {\n glyph.left = pbf2.readSVarint();\n } else if (tag === 6) {\n glyph.top = pbf2.readSVarint();\n } else if (tag === 7) {\n glyph.advance = pbf2.readVarint();\n }\n }\n function parseGlyphPBF(data) {\n return new pbf(data).readFields(readFontstacks, []);\n }\n var GLYPH_PBF_BORDER = border;\n function potpack(boxes) {\n var area2 = 0;\n var maxWidth = 0;\n for (var i$1 = 0, list = boxes; i$1 < list.length; i$1 += 1) {\n var box = list[i$1];\n area2 += box.w * box.h;\n maxWidth = Math.max(maxWidth, box.w);\n }\n boxes.sort(function(a, b) {\n return b.h - a.h;\n });\n var startWidth = Math.max(Math.ceil(Math.sqrt(area2 / 0.95)), maxWidth);\n var spaces = [{ x: 0, y: 0, w: startWidth, h: Infinity }];\n var width = 0;\n var height = 0;\n for (var i$2 = 0, list$1 = boxes; i$2 < list$1.length; i$2 += 1) {\n var box$1 = list$1[i$2];\n for (var i = spaces.length - 1; i >= 0; i--) {\n var space = spaces[i];\n if (box$1.w > space.w || box$1.h > space.h) {\n continue;\n }\n box$1.x = space.x;\n box$1.y = space.y;\n height = Math.max(height, box$1.y + box$1.h);\n width = Math.max(width, box$1.x + box$1.w);\n if (box$1.w === space.w && box$1.h === space.h) {\n var last = spaces.pop();\n if (i < spaces.length) {\n spaces[i] = last;\n }\n } else if (box$1.h === space.h) {\n space.x += box$1.w;\n space.w -= box$1.w;\n } else if (box$1.w === space.w) {\n space.y += box$1.h;\n space.h -= box$1.h;\n } else {\n spaces.push({\n x: space.x + box$1.w,\n y: space.y,\n w: space.w - box$1.w,\n h: box$1.h\n });\n space.y += box$1.h;\n space.h -= box$1.h;\n }\n break;\n }\n }\n return {\n w: width,\n // container width\n h: height,\n // container height\n fill: area2 / (width * height) || 0\n // space utilization\n };\n }\n var IMAGE_PADDING = 1;\n var ImagePosition = function ImagePosition2(paddedRect, ref) {\n var pixelRatio = ref.pixelRatio;\n var version2 = ref.version;\n var stretchX = ref.stretchX;\n var stretchY = ref.stretchY;\n var content = ref.content;\n this.paddedRect = paddedRect;\n this.pixelRatio = pixelRatio;\n this.stretchX = stretchX;\n this.stretchY = stretchY;\n this.content = content;\n this.version = version2;\n };\n var prototypeAccessors = {\n tl: { configurable: true },\n br: { configurable: true },\n tlbr: { configurable: true },\n displaySize: { configurable: true }\n };\n prototypeAccessors.tl.get = function() {\n return [\n this.paddedRect.x + IMAGE_PADDING,\n this.paddedRect.y + IMAGE_PADDING\n ];\n };\n prototypeAccessors.br.get = function() {\n return [\n this.paddedRect.x + this.paddedRect.w - IMAGE_PADDING,\n this.paddedRect.y + this.paddedRect.h - IMAGE_PADDING\n ];\n };\n prototypeAccessors.tlbr.get = function() {\n return this.tl.concat(this.br);\n };\n prototypeAccessors.displaySize.get = function() {\n return [\n (this.paddedRect.w - IMAGE_PADDING * 2) / this.pixelRatio,\n (this.paddedRect.h - IMAGE_PADDING * 2) / this.pixelRatio\n ];\n };\n Object.defineProperties(ImagePosition.prototype, prototypeAccessors);\n var ImageAtlas = function ImageAtlas2(icons, patterns) {\n var iconPositions = {}, patternPositions = {};\n this.haveRenderCallbacks = [];\n var bins = [];\n this.addImages(icons, iconPositions, bins);\n this.addImages(patterns, patternPositions, bins);\n var ref = potpack(bins);\n var w = ref.w;\n var h = ref.h;\n var image = new RGBAImage({\n width: w || 1,\n height: h || 1\n });\n for (var id2 in icons) {\n var src = icons[id2];\n var bin = iconPositions[id2].paddedRect;\n RGBAImage.copy(src.data, image, {\n x: 0,\n y: 0\n }, {\n x: bin.x + IMAGE_PADDING,\n y: bin.y + IMAGE_PADDING\n }, src.data);\n }\n for (var id$1 in patterns) {\n var src$1 = patterns[id$1];\n var bin$1 = patternPositions[id$1].paddedRect;\n var x = bin$1.x + IMAGE_PADDING, y = bin$1.y + IMAGE_PADDING, w$1 = src$1.data.width, h$1 = src$1.data.height;\n RGBAImage.copy(src$1.data, image, {\n x: 0,\n y: 0\n }, {\n x,\n y\n }, src$1.data);\n RGBAImage.copy(src$1.data, image, {\n x: 0,\n y: h$1 - 1\n }, {\n x,\n y: y - 1\n }, {\n width: w$1,\n height: 1\n });\n RGBAImage.copy(src$1.data, image, {\n x: 0,\n y: 0\n }, {\n x,\n y: y + h$1\n }, {\n width: w$1,\n height: 1\n });\n RGBAImage.copy(src$1.data, image, {\n x: w$1 - 1,\n y: 0\n }, {\n x: x - 1,\n y\n }, {\n width: 1,\n height: h$1\n });\n RGBAImage.copy(src$1.data, image, {\n x: 0,\n y: 0\n }, {\n x: x + w$1,\n y\n }, {\n width: 1,\n height: h$1\n });\n }\n this.image = image;\n this.iconPositions = iconPositions;\n this.patternPositions = patternPositions;\n };\n ImageAtlas.prototype.addImages = function addImages(images, positions, bins) {\n for (var id2 in images) {\n var src = images[id2];\n var bin = {\n x: 0,\n y: 0,\n w: src.data.width + 2 * IMAGE_PADDING,\n h: src.data.height + 2 * IMAGE_PADDING\n };\n bins.push(bin);\n positions[id2] = new ImagePosition(bin, src);\n if (src.hasRenderCallback) {\n this.haveRenderCallbacks.push(id2);\n }\n }\n };\n ImageAtlas.prototype.patchUpdatedImages = function patchUpdatedImages(imageManager, texture) {\n imageManager.dispatchRenderCallbacks(this.haveRenderCallbacks);\n for (var name3 in imageManager.updatedImages) {\n this.patchUpdatedImage(this.iconPositions[name3], imageManager.getImage(name3), texture);\n this.patchUpdatedImage(this.patternPositions[name3], imageManager.getImage(name3), texture);\n }\n };\n ImageAtlas.prototype.patchUpdatedImage = function patchUpdatedImage(position, image, texture) {\n if (!position || !image) {\n return;\n }\n if (position.version === image.version) {\n return;\n }\n position.version = image.version;\n var ref = position.tl;\n var x = ref[0];\n var y = ref[1];\n texture.update(image.data, void 0, {\n x,\n y\n });\n };\n register(\"ImagePosition\", ImagePosition);\n register(\"ImageAtlas\", ImageAtlas);\n var WritingMode = {\n horizontal: 1,\n vertical: 2,\n horizontalOnly: 3\n };\n var SHAPING_DEFAULT_OFFSET = -17;\n function isEmpty(positionedLines) {\n for (var i = 0, list = positionedLines; i < list.length; i += 1) {\n var line = list[i];\n if (line.positionedGlyphs.length !== 0) {\n return false;\n }\n }\n return true;\n }\n var PUAbegin = 57344;\n var PUAend = 63743;\n var SectionOptions = function SectionOptions2() {\n this.scale = 1;\n this.fontStack = \"\";\n this.imageName = null;\n };\n SectionOptions.forText = function forText(scale2, fontStack) {\n var textOptions = new SectionOptions();\n textOptions.scale = scale2 || 1;\n textOptions.fontStack = fontStack;\n return textOptions;\n };\n SectionOptions.forImage = function forImage(imageName) {\n var imageOptions = new SectionOptions();\n imageOptions.imageName = imageName;\n return imageOptions;\n };\n var TaggedString = function TaggedString2() {\n this.text = \"\";\n this.sectionIndex = [];\n this.sections = [];\n this.imageSectionID = null;\n };\n TaggedString.fromFeature = function fromFeature(text, defaultFontStack) {\n var result = new TaggedString();\n for (var i = 0; i < text.sections.length; i++) {\n var section = text.sections[i];\n if (!section.image) {\n result.addTextSection(section, defaultFontStack);\n } else {\n result.addImageSection(section);\n }\n }\n return result;\n };\n TaggedString.prototype.length = function length() {\n return this.text.length;\n };\n TaggedString.prototype.getSection = function getSection(index) {\n return this.sections[this.sectionIndex[index]];\n };\n TaggedString.prototype.getSectionIndex = function getSectionIndex(index) {\n return this.sectionIndex[index];\n };\n TaggedString.prototype.getCharCode = function getCharCode(index) {\n return this.text.charCodeAt(index);\n };\n TaggedString.prototype.verticalizePunctuation = function verticalizePunctuation$1() {\n this.text = verticalizePunctuation(this.text);\n };\n TaggedString.prototype.trim = function trim() {\n var beginningWhitespace = 0;\n for (var i = 0; i < this.text.length && whitespace[this.text.charCodeAt(i)]; i++) {\n beginningWhitespace++;\n }\n var trailingWhitespace = this.text.length;\n for (var i$1 = this.text.length - 1; i$1 >= 0 && i$1 >= beginningWhitespace && whitespace[this.text.charCodeAt(i$1)]; i$1--) {\n trailingWhitespace--;\n }\n this.text = this.text.substring(beginningWhitespace, trailingWhitespace);\n this.sectionIndex = this.sectionIndex.slice(beginningWhitespace, trailingWhitespace);\n };\n TaggedString.prototype.substring = function substring(start, end) {\n var substring2 = new TaggedString();\n substring2.text = this.text.substring(start, end);\n substring2.sectionIndex = this.sectionIndex.slice(start, end);\n substring2.sections = this.sections;\n return substring2;\n };\n TaggedString.prototype.toString = function toString2() {\n return this.text;\n };\n TaggedString.prototype.getMaxScale = function getMaxScale() {\n var this$1 = this;\n return this.sectionIndex.reduce(function(max, index) {\n return Math.max(max, this$1.sections[index].scale);\n }, 0);\n };\n TaggedString.prototype.addTextSection = function addTextSection(section, defaultFontStack) {\n this.text += section.text;\n this.sections.push(SectionOptions.forText(section.scale, section.fontStack || defaultFontStack));\n var index = this.sections.length - 1;\n for (var i = 0; i < section.text.length; ++i) {\n this.sectionIndex.push(index);\n }\n };\n TaggedString.prototype.addImageSection = function addImageSection(section) {\n var imageName = section.image ? section.image.name : \"\";\n if (imageName.length === 0) {\n warnOnce(\"Can't add FormattedSection with an empty image.\");\n return;\n }\n var nextImageSectionCharCode = this.getNextImageSectionCharCode();\n if (!nextImageSectionCharCode) {\n warnOnce(\"Reached maximum number of images \" + (PUAend - PUAbegin + 2));\n return;\n }\n this.text += String.fromCharCode(nextImageSectionCharCode);\n this.sections.push(SectionOptions.forImage(imageName));\n this.sectionIndex.push(this.sections.length - 1);\n };\n TaggedString.prototype.getNextImageSectionCharCode = function getNextImageSectionCharCode() {\n if (!this.imageSectionID) {\n this.imageSectionID = PUAbegin;\n return this.imageSectionID;\n }\n if (this.imageSectionID >= PUAend) {\n return null;\n }\n return ++this.imageSectionID;\n };\n function breakLines(input, lineBreakPoints) {\n var lines = [];\n var text = input.text;\n var start = 0;\n for (var i = 0, list = lineBreakPoints; i < list.length; i += 1) {\n var lineBreak = list[i];\n lines.push(input.substring(start, lineBreak));\n start = lineBreak;\n }\n if (start < text.length) {\n lines.push(input.substring(start, text.length));\n }\n return lines;\n }\n function shapeText(text, glyphMap, glyphPositions, imagePositions, defaultFontStack, maxWidth, lineHeight, textAnchor, textJustify, spacing, translate2, writingMode, allowVerticalPlacement, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom) {\n var logicalInput = TaggedString.fromFeature(text, defaultFontStack);\n if (writingMode === WritingMode.vertical) {\n logicalInput.verticalizePunctuation();\n }\n var lines;\n var processBidirectionalText = plugin.processBidirectionalText;\n var processStyledBidirectionalText = plugin.processStyledBidirectionalText;\n if (processBidirectionalText && logicalInput.sections.length === 1) {\n lines = [];\n var untaggedLines = processBidirectionalText(logicalInput.toString(), determineLineBreaks(logicalInput, spacing, maxWidth, glyphMap, imagePositions, symbolPlacement, layoutTextSize));\n for (var i$1 = 0, list = untaggedLines; i$1 < list.length; i$1 += 1) {\n var line = list[i$1];\n var taggedLine = new TaggedString();\n taggedLine.text = line;\n taggedLine.sections = logicalInput.sections;\n for (var i = 0; i < line.length; i++) {\n taggedLine.sectionIndex.push(0);\n }\n lines.push(taggedLine);\n }\n } else if (processStyledBidirectionalText) {\n lines = [];\n var processedLines = processStyledBidirectionalText(logicalInput.text, logicalInput.sectionIndex, determineLineBreaks(logicalInput, spacing, maxWidth, glyphMap, imagePositions, symbolPlacement, layoutTextSize));\n for (var i$2 = 0, list$1 = processedLines; i$2 < list$1.length; i$2 += 1) {\n var line$1 = list$1[i$2];\n var taggedLine$1 = new TaggedString();\n taggedLine$1.text = line$1[0];\n taggedLine$1.sectionIndex = line$1[1];\n taggedLine$1.sections = logicalInput.sections;\n lines.push(taggedLine$1);\n }\n } else {\n lines = breakLines(logicalInput, determineLineBreaks(logicalInput, spacing, maxWidth, glyphMap, imagePositions, symbolPlacement, layoutTextSize));\n }\n var positionedLines = [];\n var shaping = {\n positionedLines,\n text: logicalInput.toString(),\n top: translate2[1],\n bottom: translate2[1],\n left: translate2[0],\n right: translate2[0],\n writingMode,\n iconsInText: false,\n verticalizable: false\n };\n shapeLines(shaping, glyphMap, glyphPositions, imagePositions, lines, lineHeight, textAnchor, textJustify, writingMode, spacing, allowVerticalPlacement, layoutTextSizeThisZoom);\n if (isEmpty(positionedLines)) {\n return false;\n }\n return shaping;\n }\n var whitespace = {};\n whitespace[9] = true;\n whitespace[10] = true;\n whitespace[11] = true;\n whitespace[12] = true;\n whitespace[13] = true;\n whitespace[32] = true;\n var breakable = {};\n breakable[10] = true;\n breakable[32] = true;\n breakable[38] = true;\n breakable[40] = true;\n breakable[41] = true;\n breakable[43] = true;\n breakable[45] = true;\n breakable[47] = true;\n breakable[173] = true;\n breakable[183] = true;\n breakable[8203] = true;\n breakable[8208] = true;\n breakable[8211] = true;\n breakable[8231] = true;\n function getGlyphAdvance(codePoint, section, glyphMap, imagePositions, spacing, layoutTextSize) {\n if (!section.imageName) {\n var positions = glyphMap[section.fontStack];\n var glyph = positions && positions[codePoint];\n if (!glyph) {\n return 0;\n }\n return glyph.metrics.advance * section.scale + spacing;\n } else {\n var imagePosition = imagePositions[section.imageName];\n if (!imagePosition) {\n return 0;\n }\n return imagePosition.displaySize[0] * section.scale * ONE_EM / layoutTextSize + spacing;\n }\n }\n function determineAverageLineWidth(logicalInput, spacing, maxWidth, glyphMap, imagePositions, layoutTextSize) {\n var totalWidth = 0;\n for (var index = 0; index < logicalInput.length(); index++) {\n var section = logicalInput.getSection(index);\n totalWidth += getGlyphAdvance(logicalInput.getCharCode(index), section, glyphMap, imagePositions, spacing, layoutTextSize);\n }\n var lineCount = Math.max(1, Math.ceil(totalWidth / maxWidth));\n return totalWidth / lineCount;\n }\n function calculateBadness(lineWidth, targetWidth, penalty, isLastBreak) {\n var raggedness = Math.pow(lineWidth - targetWidth, 2);\n if (isLastBreak) {\n if (lineWidth < targetWidth) {\n return raggedness / 2;\n } else {\n return raggedness * 2;\n }\n }\n return raggedness + Math.abs(penalty) * penalty;\n }\n function calculatePenalty(codePoint, nextCodePoint, penalizableIdeographicBreak) {\n var penalty = 0;\n if (codePoint === 10) {\n penalty -= 1e4;\n }\n if (penalizableIdeographicBreak) {\n penalty += 150;\n }\n if (codePoint === 40 || codePoint === 65288) {\n penalty += 50;\n }\n if (nextCodePoint === 41 || nextCodePoint === 65289) {\n penalty += 50;\n }\n return penalty;\n }\n function evaluateBreak(breakIndex, breakX, targetWidth, potentialBreaks, penalty, isLastBreak) {\n var bestPriorBreak = null;\n var bestBreakBadness = calculateBadness(breakX, targetWidth, penalty, isLastBreak);\n for (var i = 0, list = potentialBreaks; i < list.length; i += 1) {\n var potentialBreak = list[i];\n var lineWidth = breakX - potentialBreak.x;\n var breakBadness = calculateBadness(lineWidth, targetWidth, penalty, isLastBreak) + potentialBreak.badness;\n if (breakBadness <= bestBreakBadness) {\n bestPriorBreak = potentialBreak;\n bestBreakBadness = breakBadness;\n }\n }\n return {\n index: breakIndex,\n x: breakX,\n priorBreak: bestPriorBreak,\n badness: bestBreakBadness\n };\n }\n function leastBadBreaks(lastLineBreak) {\n if (!lastLineBreak) {\n return [];\n }\n return leastBadBreaks(lastLineBreak.priorBreak).concat(lastLineBreak.index);\n }\n function determineLineBreaks(logicalInput, spacing, maxWidth, glyphMap, imagePositions, symbolPlacement, layoutTextSize) {\n if (symbolPlacement !== \"point\") {\n return [];\n }\n if (!logicalInput) {\n return [];\n }\n var potentialLineBreaks = [];\n var targetWidth = determineAverageLineWidth(logicalInput, spacing, maxWidth, glyphMap, imagePositions, layoutTextSize);\n var hasServerSuggestedBreakpoints = logicalInput.text.indexOf(\"\\u200B\") >= 0;\n var currentX = 0;\n for (var i = 0; i < logicalInput.length(); i++) {\n var section = logicalInput.getSection(i);\n var codePoint = logicalInput.getCharCode(i);\n if (!whitespace[codePoint]) {\n currentX += getGlyphAdvance(codePoint, section, glyphMap, imagePositions, spacing, layoutTextSize);\n }\n if (i < logicalInput.length() - 1) {\n var ideographicBreak = charAllowsIdeographicBreaking(codePoint);\n if (breakable[codePoint] || ideographicBreak || section.imageName) {\n potentialLineBreaks.push(evaluateBreak(i + 1, currentX, targetWidth, potentialLineBreaks, calculatePenalty(codePoint, logicalInput.getCharCode(i + 1), ideographicBreak && hasServerSuggestedBreakpoints), false));\n }\n }\n }\n return leastBadBreaks(evaluateBreak(logicalInput.length(), currentX, targetWidth, potentialLineBreaks, 0, true));\n }\n function getAnchorAlignment(anchor) {\n var horizontalAlign = 0.5, verticalAlign = 0.5;\n switch (anchor) {\n case \"right\":\n case \"top-right\":\n case \"bottom-right\":\n horizontalAlign = 1;\n break;\n case \"left\":\n case \"top-left\":\n case \"bottom-left\":\n horizontalAlign = 0;\n break;\n }\n switch (anchor) {\n case \"bottom\":\n case \"bottom-right\":\n case \"bottom-left\":\n verticalAlign = 1;\n break;\n case \"top\":\n case \"top-right\":\n case \"top-left\":\n verticalAlign = 0;\n break;\n }\n return {\n horizontalAlign,\n verticalAlign\n };\n }\n function shapeLines(shaping, glyphMap, glyphPositions, imagePositions, lines, lineHeight, textAnchor, textJustify, writingMode, spacing, allowVerticalPlacement, layoutTextSizeThisZoom) {\n var x = 0;\n var y = SHAPING_DEFAULT_OFFSET;\n var maxLineLength = 0;\n var maxLineHeight = 0;\n var justify = textJustify === \"right\" ? 1 : textJustify === \"left\" ? 0 : 0.5;\n var lineIndex = 0;\n for (var i$1 = 0, list = lines; i$1 < list.length; i$1 += 1) {\n var line = list[i$1];\n line.trim();\n var lineMaxScale = line.getMaxScale();\n var maxLineOffset = (lineMaxScale - 1) * ONE_EM;\n var positionedLine = {\n positionedGlyphs: [],\n lineOffset: 0\n };\n shaping.positionedLines[lineIndex] = positionedLine;\n var positionedGlyphs = positionedLine.positionedGlyphs;\n var lineOffset = 0;\n if (!line.length()) {\n y += lineHeight;\n ++lineIndex;\n continue;\n }\n for (var i = 0; i < line.length(); i++) {\n var section = line.getSection(i);\n var sectionIndex = line.getSectionIndex(i);\n var codePoint = line.getCharCode(i);\n var baselineOffset2 = 0;\n var metrics = null;\n var rect = null;\n var imageName = null;\n var verticalAdvance = ONE_EM;\n var vertical = !(writingMode === WritingMode.horizontal || !allowVerticalPlacement && !charHasUprightVerticalOrientation(codePoint) || allowVerticalPlacement && (whitespace[codePoint] || charInComplexShapingScript(codePoint)));\n if (!section.imageName) {\n var positions = glyphPositions[section.fontStack];\n var glyphPosition = positions && positions[codePoint];\n if (glyphPosition && glyphPosition.rect) {\n rect = glyphPosition.rect;\n metrics = glyphPosition.metrics;\n } else {\n var glyphs = glyphMap[section.fontStack];\n var glyph = glyphs && glyphs[codePoint];\n if (!glyph) {\n continue;\n }\n metrics = glyph.metrics;\n }\n baselineOffset2 = (lineMaxScale - section.scale) * ONE_EM;\n } else {\n var imagePosition = imagePositions[section.imageName];\n if (!imagePosition) {\n continue;\n }\n imageName = section.imageName;\n shaping.iconsInText = shaping.iconsInText || true;\n rect = imagePosition.paddedRect;\n var size = imagePosition.displaySize;\n section.scale = section.scale * ONE_EM / layoutTextSizeThisZoom;\n metrics = {\n width: size[0],\n height: size[1],\n left: IMAGE_PADDING,\n top: -GLYPH_PBF_BORDER,\n advance: vertical ? size[1] : size[0]\n };\n var imageOffset = ONE_EM - size[1] * section.scale;\n baselineOffset2 = maxLineOffset + imageOffset;\n verticalAdvance = metrics.advance;\n var offset = vertical ? size[0] * section.scale - ONE_EM * lineMaxScale : size[1] * section.scale - ONE_EM * lineMaxScale;\n if (offset > 0 && offset > lineOffset) {\n lineOffset = offset;\n }\n }\n if (!vertical) {\n positionedGlyphs.push({\n glyph: codePoint,\n imageName,\n x,\n y: y + baselineOffset2,\n vertical,\n scale: section.scale,\n fontStack: section.fontStack,\n sectionIndex,\n metrics,\n rect\n });\n x += metrics.advance * section.scale + spacing;\n } else {\n shaping.verticalizable = true;\n positionedGlyphs.push({\n glyph: codePoint,\n imageName,\n x,\n y: y + baselineOffset2,\n vertical,\n scale: section.scale,\n fontStack: section.fontStack,\n sectionIndex,\n metrics,\n rect\n });\n x += verticalAdvance * section.scale + spacing;\n }\n }\n if (positionedGlyphs.length !== 0) {\n var lineLength = x - spacing;\n maxLineLength = Math.max(lineLength, maxLineLength);\n justifyLine(positionedGlyphs, 0, positionedGlyphs.length - 1, justify, lineOffset);\n }\n x = 0;\n var currentLineHeight = lineHeight * lineMaxScale + lineOffset;\n positionedLine.lineOffset = Math.max(lineOffset, maxLineOffset);\n y += currentLineHeight;\n maxLineHeight = Math.max(currentLineHeight, maxLineHeight);\n ++lineIndex;\n }\n var height = y - SHAPING_DEFAULT_OFFSET;\n var ref = getAnchorAlignment(textAnchor);\n var horizontalAlign = ref.horizontalAlign;\n var verticalAlign = ref.verticalAlign;\n align$1(shaping.positionedLines, justify, horizontalAlign, verticalAlign, maxLineLength, maxLineHeight, lineHeight, height, lines.length);\n shaping.top += -verticalAlign * height;\n shaping.bottom = shaping.top + height;\n shaping.left += -horizontalAlign * maxLineLength;\n shaping.right = shaping.left + maxLineLength;\n }\n function justifyLine(positionedGlyphs, start, end, justify, lineOffset) {\n if (!justify && !lineOffset) {\n return;\n }\n var lastPositionedGlyph = positionedGlyphs[end];\n var lastAdvance = lastPositionedGlyph.metrics.advance * lastPositionedGlyph.scale;\n var lineIndent = (positionedGlyphs[end].x + lastAdvance) * justify;\n for (var j = start; j <= end; j++) {\n positionedGlyphs[j].x -= lineIndent;\n positionedGlyphs[j].y += lineOffset;\n }\n }\n function align$1(positionedLines, justify, horizontalAlign, verticalAlign, maxLineLength, maxLineHeight, lineHeight, blockHeight, lineCount) {\n var shiftX = (justify - horizontalAlign) * maxLineLength;\n var shiftY = 0;\n if (maxLineHeight !== lineHeight) {\n shiftY = -blockHeight * verticalAlign - SHAPING_DEFAULT_OFFSET;\n } else {\n shiftY = (-verticalAlign * lineCount + 0.5) * lineHeight;\n }\n for (var i$1 = 0, list$1 = positionedLines; i$1 < list$1.length; i$1 += 1) {\n var line = list$1[i$1];\n for (var i = 0, list = line.positionedGlyphs; i < list.length; i += 1) {\n var positionedGlyph = list[i];\n positionedGlyph.x += shiftX;\n positionedGlyph.y += shiftY;\n }\n }\n }\n function shapeIcon(image, iconOffset, iconAnchor) {\n var ref = getAnchorAlignment(iconAnchor);\n var horizontalAlign = ref.horizontalAlign;\n var verticalAlign = ref.verticalAlign;\n var dx = iconOffset[0];\n var dy = iconOffset[1];\n var x1 = dx - image.displaySize[0] * horizontalAlign;\n var x2 = x1 + image.displaySize[0];\n var y1 = dy - image.displaySize[1] * verticalAlign;\n var y2 = y1 + image.displaySize[1];\n return {\n image,\n top: y1,\n bottom: y2,\n left: x1,\n right: x2\n };\n }\n function fitIconToText(shapedIcon, shapedText, textFit, padding, iconOffset, fontScale) {\n var image = shapedIcon.image;\n var collisionPadding;\n if (image.content) {\n var content = image.content;\n var pixelRatio = image.pixelRatio || 1;\n collisionPadding = [\n content[0] / pixelRatio,\n content[1] / pixelRatio,\n image.displaySize[0] - content[2] / pixelRatio,\n image.displaySize[1] - content[3] / pixelRatio\n ];\n }\n var textLeft = shapedText.left * fontScale;\n var textRight = shapedText.right * fontScale;\n var top, right, bottom, left;\n if (textFit === \"width\" || textFit === \"both\") {\n left = iconOffset[0] + textLeft - padding[3];\n right = iconOffset[0] + textRight + padding[1];\n } else {\n left = iconOffset[0] + (textLeft + textRight - image.displaySize[0]) / 2;\n right = left + image.displaySize[0];\n }\n var textTop = shapedText.top * fontScale;\n var textBottom = shapedText.bottom * fontScale;\n if (textFit === \"height\" || textFit === \"both\") {\n top = iconOffset[1] + textTop - padding[0];\n bottom = iconOffset[1] + textBottom + padding[2];\n } else {\n top = iconOffset[1] + (textTop + textBottom - image.displaySize[1]) / 2;\n bottom = top + image.displaySize[1];\n }\n return {\n image,\n top,\n right,\n bottom,\n left,\n collisionPadding\n };\n }\n var Anchor = function(Point2) {\n function Anchor2(x, y, angle, segment) {\n Point2.call(this, x, y);\n this.angle = angle;\n if (segment !== void 0) {\n this.segment = segment;\n }\n }\n if (Point2)\n Anchor2.__proto__ = Point2;\n Anchor2.prototype = Object.create(Point2 && Point2.prototype);\n Anchor2.prototype.constructor = Anchor2;\n Anchor2.prototype.clone = function clone2() {\n return new Anchor2(this.x, this.y, this.angle, this.segment);\n };\n return Anchor2;\n }(pointGeometry);\n register(\"Anchor\", Anchor);\n var SIZE_PACK_FACTOR = 128;\n function getSizeData(tileZoom, value) {\n var expression2 = value.expression;\n if (expression2.kind === \"constant\") {\n var layoutSize = expression2.evaluate(new EvaluationParameters(tileZoom + 1));\n return {\n kind: \"constant\",\n layoutSize\n };\n } else if (expression2.kind === \"source\") {\n return { kind: \"source\" };\n } else {\n var zoomStops = expression2.zoomStops;\n var interpolationType = expression2.interpolationType;\n var lower = 0;\n while (lower < zoomStops.length && zoomStops[lower] <= tileZoom) {\n lower++;\n }\n lower = Math.max(0, lower - 1);\n var upper = lower;\n while (upper < zoomStops.length && zoomStops[upper] < tileZoom + 1) {\n upper++;\n }\n upper = Math.min(zoomStops.length - 1, upper);\n var minZoom = zoomStops[lower];\n var maxZoom = zoomStops[upper];\n if (expression2.kind === \"composite\") {\n return {\n kind: \"composite\",\n minZoom,\n maxZoom,\n interpolationType\n };\n }\n var minSize = expression2.evaluate(new EvaluationParameters(minZoom));\n var maxSize = expression2.evaluate(new EvaluationParameters(maxZoom));\n return {\n kind: \"camera\",\n minZoom,\n maxZoom,\n minSize,\n maxSize,\n interpolationType\n };\n }\n }\n function evaluateSizeForFeature(sizeData, ref, ref$1) {\n var uSize = ref.uSize;\n var uSizeT = ref.uSizeT;\n var lowerSize = ref$1.lowerSize;\n var upperSize = ref$1.upperSize;\n if (sizeData.kind === \"source\") {\n return lowerSize / SIZE_PACK_FACTOR;\n } else if (sizeData.kind === \"composite\") {\n return number(lowerSize / SIZE_PACK_FACTOR, upperSize / SIZE_PACK_FACTOR, uSizeT);\n }\n return uSize;\n }\n function evaluateSizeForZoom(sizeData, zoom) {\n var uSizeT = 0;\n var uSize = 0;\n if (sizeData.kind === \"constant\") {\n uSize = sizeData.layoutSize;\n } else if (sizeData.kind !== \"source\") {\n var interpolationType = sizeData.interpolationType;\n var minZoom = sizeData.minZoom;\n var maxZoom = sizeData.maxZoom;\n var t = !interpolationType ? 0 : clamp(Interpolate.interpolationFactor(interpolationType, zoom, minZoom, maxZoom), 0, 1);\n if (sizeData.kind === \"camera\") {\n uSize = number(sizeData.minSize, sizeData.maxSize, t);\n } else {\n uSizeT = t;\n }\n }\n return {\n uSizeT,\n uSize\n };\n }\n var symbolSize = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n getSizeData,\n evaluateSizeForFeature,\n evaluateSizeForZoom,\n SIZE_PACK_FACTOR\n });\n function checkMaxAngle(line, anchor, labelLength, windowSize, maxAngle) {\n if (anchor.segment === void 0) {\n return true;\n }\n var p = anchor;\n var index = anchor.segment + 1;\n var anchorDistance = 0;\n while (anchorDistance > -labelLength / 2) {\n index--;\n if (index < 0) {\n return false;\n }\n anchorDistance -= line[index].dist(p);\n p = line[index];\n }\n anchorDistance += line[index].dist(line[index + 1]);\n index++;\n var recentCorners = [];\n var recentAngleDelta = 0;\n while (anchorDistance < labelLength / 2) {\n var prev = line[index - 1];\n var current = line[index];\n var next = line[index + 1];\n if (!next) {\n return false;\n }\n var angleDelta = prev.angleTo(current) - current.angleTo(next);\n angleDelta = Math.abs((angleDelta + 3 * Math.PI) % (Math.PI * 2) - Math.PI);\n recentCorners.push({\n distance: anchorDistance,\n angleDelta\n });\n recentAngleDelta += angleDelta;\n while (anchorDistance - recentCorners[0].distance > windowSize) {\n recentAngleDelta -= recentCorners.shift().angleDelta;\n }\n if (recentAngleDelta > maxAngle) {\n return false;\n }\n index++;\n anchorDistance += current.dist(next);\n }\n return true;\n }\n function getLineLength(line) {\n var lineLength = 0;\n for (var k = 0; k < line.length - 1; k++) {\n lineLength += line[k].dist(line[k + 1]);\n }\n return lineLength;\n }\n function getAngleWindowSize(shapedText, glyphSize, boxScale) {\n return shapedText ? 3 / 5 * glyphSize * boxScale : 0;\n }\n function getShapedLabelLength(shapedText, shapedIcon) {\n return Math.max(shapedText ? shapedText.right - shapedText.left : 0, shapedIcon ? shapedIcon.right - shapedIcon.left : 0);\n }\n function getCenterAnchor(line, maxAngle, shapedText, shapedIcon, glyphSize, boxScale) {\n var angleWindowSize = getAngleWindowSize(shapedText, glyphSize, boxScale);\n var labelLength = getShapedLabelLength(shapedText, shapedIcon) * boxScale;\n var prevDistance = 0;\n var centerDistance = getLineLength(line) / 2;\n for (var i = 0; i < line.length - 1; i++) {\n var a = line[i], b = line[i + 1];\n var segmentDistance = a.dist(b);\n if (prevDistance + segmentDistance > centerDistance) {\n var t = (centerDistance - prevDistance) / segmentDistance, x = number(a.x, b.x, t), y = number(a.y, b.y, t);\n var anchor = new Anchor(x, y, b.angleTo(a), i);\n anchor._round();\n if (!angleWindowSize || checkMaxAngle(line, anchor, labelLength, angleWindowSize, maxAngle)) {\n return anchor;\n } else {\n return;\n }\n }\n prevDistance += segmentDistance;\n }\n }\n function getAnchors(line, spacing, maxAngle, shapedText, shapedIcon, glyphSize, boxScale, overscaling, tileExtent) {\n var angleWindowSize = getAngleWindowSize(shapedText, glyphSize, boxScale);\n var shapedLabelLength = getShapedLabelLength(shapedText, shapedIcon);\n var labelLength = shapedLabelLength * boxScale;\n var isLineContinued = line[0].x === 0 || line[0].x === tileExtent || line[0].y === 0 || line[0].y === tileExtent;\n if (spacing - labelLength < spacing / 4) {\n spacing = labelLength + spacing / 4;\n }\n var fixedExtraOffset = glyphSize * 2;\n var offset = !isLineContinued ? (shapedLabelLength / 2 + fixedExtraOffset) * boxScale * overscaling % spacing : spacing / 2 * overscaling % spacing;\n return resample(line, offset, spacing, angleWindowSize, maxAngle, labelLength, isLineContinued, false, tileExtent);\n }\n function resample(line, offset, spacing, angleWindowSize, maxAngle, labelLength, isLineContinued, placeAtMiddle, tileExtent) {\n var halfLabelLength = labelLength / 2;\n var lineLength = getLineLength(line);\n var distance = 0, markedDistance = offset - spacing;\n var anchors = [];\n for (var i = 0; i < line.length - 1; i++) {\n var a = line[i], b = line[i + 1];\n var segmentDist = a.dist(b), angle = b.angleTo(a);\n while (markedDistance + spacing < distance + segmentDist) {\n markedDistance += spacing;\n var t = (markedDistance - distance) / segmentDist, x = number(a.x, b.x, t), y = number(a.y, b.y, t);\n if (x >= 0 && x < tileExtent && y >= 0 && y < tileExtent && markedDistance - halfLabelLength >= 0 && markedDistance + halfLabelLength <= lineLength) {\n var anchor = new Anchor(x, y, angle, i);\n anchor._round();\n if (!angleWindowSize || checkMaxAngle(line, anchor, labelLength, angleWindowSize, maxAngle)) {\n anchors.push(anchor);\n }\n }\n }\n distance += segmentDist;\n }\n if (!placeAtMiddle && !anchors.length && !isLineContinued) {\n anchors = resample(line, distance / 2, spacing, angleWindowSize, maxAngle, labelLength, isLineContinued, true, tileExtent);\n }\n return anchors;\n }\n function clipLine(lines, x1, y1, x2, y2) {\n var clippedLines = [];\n for (var l = 0; l < lines.length; l++) {\n var line = lines[l];\n var clippedLine = void 0;\n for (var i = 0; i < line.length - 1; i++) {\n var p0 = line[i];\n var p1 = line[i + 1];\n if (p0.x < x1 && p1.x < x1) {\n continue;\n } else if (p0.x < x1) {\n p0 = new pointGeometry(x1, p0.y + (p1.y - p0.y) * ((x1 - p0.x) / (p1.x - p0.x)))._round();\n } else if (p1.x < x1) {\n p1 = new pointGeometry(x1, p0.y + (p1.y - p0.y) * ((x1 - p0.x) / (p1.x - p0.x)))._round();\n }\n if (p0.y < y1 && p1.y < y1) {\n continue;\n } else if (p0.y < y1) {\n p0 = new pointGeometry(p0.x + (p1.x - p0.x) * ((y1 - p0.y) / (p1.y - p0.y)), y1)._round();\n } else if (p1.y < y1) {\n p1 = new pointGeometry(p0.x + (p1.x - p0.x) * ((y1 - p0.y) / (p1.y - p0.y)), y1)._round();\n }\n if (p0.x >= x2 && p1.x >= x2) {\n continue;\n } else if (p0.x >= x2) {\n p0 = new pointGeometry(x2, p0.y + (p1.y - p0.y) * ((x2 - p0.x) / (p1.x - p0.x)))._round();\n } else if (p1.x >= x2) {\n p1 = new pointGeometry(x2, p0.y + (p1.y - p0.y) * ((x2 - p0.x) / (p1.x - p0.x)))._round();\n }\n if (p0.y >= y2 && p1.y >= y2) {\n continue;\n } else if (p0.y >= y2) {\n p0 = new pointGeometry(p0.x + (p1.x - p0.x) * ((y2 - p0.y) / (p1.y - p0.y)), y2)._round();\n } else if (p1.y >= y2) {\n p1 = new pointGeometry(p0.x + (p1.x - p0.x) * ((y2 - p0.y) / (p1.y - p0.y)), y2)._round();\n }\n if (!clippedLine || !p0.equals(clippedLine[clippedLine.length - 1])) {\n clippedLine = [p0];\n clippedLines.push(clippedLine);\n }\n clippedLine.push(p1);\n }\n }\n return clippedLines;\n }\n var border$1 = IMAGE_PADDING;\n function getIconQuads(shapedIcon, iconRotate, isSDFIcon, hasIconTextFit) {\n var quads = [];\n var image = shapedIcon.image;\n var pixelRatio = image.pixelRatio;\n var imageWidth = image.paddedRect.w - 2 * border$1;\n var imageHeight = image.paddedRect.h - 2 * border$1;\n var iconWidth = shapedIcon.right - shapedIcon.left;\n var iconHeight = shapedIcon.bottom - shapedIcon.top;\n var stretchX = image.stretchX || [[\n 0,\n imageWidth\n ]];\n var stretchY = image.stretchY || [[\n 0,\n imageHeight\n ]];\n var reduceRanges = function(sum, range) {\n return sum + range[1] - range[0];\n };\n var stretchWidth = stretchX.reduce(reduceRanges, 0);\n var stretchHeight = stretchY.reduce(reduceRanges, 0);\n var fixedWidth = imageWidth - stretchWidth;\n var fixedHeight = imageHeight - stretchHeight;\n var stretchOffsetX = 0;\n var stretchContentWidth = stretchWidth;\n var stretchOffsetY = 0;\n var stretchContentHeight = stretchHeight;\n var fixedOffsetX = 0;\n var fixedContentWidth = fixedWidth;\n var fixedOffsetY = 0;\n var fixedContentHeight = fixedHeight;\n if (image.content && hasIconTextFit) {\n var content = image.content;\n stretchOffsetX = sumWithinRange(stretchX, 0, content[0]);\n stretchOffsetY = sumWithinRange(stretchY, 0, content[1]);\n stretchContentWidth = sumWithinRange(stretchX, content[0], content[2]);\n stretchContentHeight = sumWithinRange(stretchY, content[1], content[3]);\n fixedOffsetX = content[0] - stretchOffsetX;\n fixedOffsetY = content[1] - stretchOffsetY;\n fixedContentWidth = content[2] - content[0] - stretchContentWidth;\n fixedContentHeight = content[3] - content[1] - stretchContentHeight;\n }\n var makeBox = function(left, top, right, bottom) {\n var leftEm = getEmOffset(left.stretch - stretchOffsetX, stretchContentWidth, iconWidth, shapedIcon.left);\n var leftPx = getPxOffset(left.fixed - fixedOffsetX, fixedContentWidth, left.stretch, stretchWidth);\n var topEm = getEmOffset(top.stretch - stretchOffsetY, stretchContentHeight, iconHeight, shapedIcon.top);\n var topPx = getPxOffset(top.fixed - fixedOffsetY, fixedContentHeight, top.stretch, stretchHeight);\n var rightEm = getEmOffset(right.stretch - stretchOffsetX, stretchContentWidth, iconWidth, shapedIcon.left);\n var rightPx = getPxOffset(right.fixed - fixedOffsetX, fixedContentWidth, right.stretch, stretchWidth);\n var bottomEm = getEmOffset(bottom.stretch - stretchOffsetY, stretchContentHeight, iconHeight, shapedIcon.top);\n var bottomPx = getPxOffset(bottom.fixed - fixedOffsetY, fixedContentHeight, bottom.stretch, stretchHeight);\n var tl = new pointGeometry(leftEm, topEm);\n var tr = new pointGeometry(rightEm, topEm);\n var br = new pointGeometry(rightEm, bottomEm);\n var bl = new pointGeometry(leftEm, bottomEm);\n var pixelOffsetTL = new pointGeometry(leftPx / pixelRatio, topPx / pixelRatio);\n var pixelOffsetBR = new pointGeometry(rightPx / pixelRatio, bottomPx / pixelRatio);\n var angle = iconRotate * Math.PI / 180;\n if (angle) {\n var sin = Math.sin(angle), cos = Math.cos(angle), matrix = [\n cos,\n -sin,\n sin,\n cos\n ];\n tl._matMult(matrix);\n tr._matMult(matrix);\n bl._matMult(matrix);\n br._matMult(matrix);\n }\n var x12 = left.stretch + left.fixed;\n var x22 = right.stretch + right.fixed;\n var y12 = top.stretch + top.fixed;\n var y22 = bottom.stretch + bottom.fixed;\n var subRect = {\n x: image.paddedRect.x + border$1 + x12,\n y: image.paddedRect.y + border$1 + y12,\n w: x22 - x12,\n h: y22 - y12\n };\n var minFontScaleX = fixedContentWidth / pixelRatio / iconWidth;\n var minFontScaleY = fixedContentHeight / pixelRatio / iconHeight;\n return {\n tl,\n tr,\n bl,\n br,\n tex: subRect,\n writingMode: void 0,\n glyphOffset: [\n 0,\n 0\n ],\n sectionIndex: 0,\n pixelOffsetTL,\n pixelOffsetBR,\n minFontScaleX,\n minFontScaleY,\n isSDF: isSDFIcon\n };\n };\n if (!hasIconTextFit || !image.stretchX && !image.stretchY) {\n quads.push(makeBox({\n fixed: 0,\n stretch: -1\n }, {\n fixed: 0,\n stretch: -1\n }, {\n fixed: 0,\n stretch: imageWidth + 1\n }, {\n fixed: 0,\n stretch: imageHeight + 1\n }));\n } else {\n var xCuts = stretchZonesToCuts(stretchX, fixedWidth, stretchWidth);\n var yCuts = stretchZonesToCuts(stretchY, fixedHeight, stretchHeight);\n for (var xi = 0; xi < xCuts.length - 1; xi++) {\n var x1 = xCuts[xi];\n var x2 = xCuts[xi + 1];\n for (var yi = 0; yi < yCuts.length - 1; yi++) {\n var y1 = yCuts[yi];\n var y2 = yCuts[yi + 1];\n quads.push(makeBox(x1, y1, x2, y2));\n }\n }\n }\n return quads;\n }\n function sumWithinRange(ranges, min, max) {\n var sum = 0;\n for (var i = 0, list = ranges; i < list.length; i += 1) {\n var range = list[i];\n sum += Math.max(min, Math.min(max, range[1])) - Math.max(min, Math.min(max, range[0]));\n }\n return sum;\n }\n function stretchZonesToCuts(stretchZones, fixedSize, stretchSize) {\n var cuts = [{\n fixed: -border$1,\n stretch: 0\n }];\n for (var i = 0, list = stretchZones; i < list.length; i += 1) {\n var ref = list[i];\n var c1 = ref[0];\n var c2 = ref[1];\n var last = cuts[cuts.length - 1];\n cuts.push({\n fixed: c1 - last.stretch,\n stretch: last.stretch\n });\n cuts.push({\n fixed: c1 - last.stretch,\n stretch: last.stretch + (c2 - c1)\n });\n }\n cuts.push({\n fixed: fixedSize + border$1,\n stretch: stretchSize\n });\n return cuts;\n }\n function getEmOffset(stretchOffset, stretchSize, iconSize, iconOffset) {\n return stretchOffset / stretchSize * iconSize + iconOffset;\n }\n function getPxOffset(fixedOffset, fixedSize, stretchOffset, stretchSize) {\n return fixedOffset - fixedSize * stretchOffset / stretchSize;\n }\n function getGlyphQuads(anchor, shaping, textOffset, layer2, alongLine, feature, imageMap, allowVerticalPlacement) {\n var textRotate = layer2.layout.get(\"text-rotate\").evaluate(feature, {}) * Math.PI / 180;\n var quads = [];\n for (var i$1 = 0, list$1 = shaping.positionedLines; i$1 < list$1.length; i$1 += 1) {\n var line = list$1[i$1];\n for (var i = 0, list = line.positionedGlyphs; i < list.length; i += 1) {\n var positionedGlyph = list[i];\n if (!positionedGlyph.rect) {\n continue;\n }\n var textureRect = positionedGlyph.rect || {};\n var glyphPadding = 1;\n var rectBuffer = GLYPH_PBF_BORDER + glyphPadding;\n var isSDF = true;\n var pixelRatio = 1;\n var lineOffset = 0;\n var rotateVerticalGlyph = (alongLine || allowVerticalPlacement) && positionedGlyph.vertical;\n var halfAdvance = positionedGlyph.metrics.advance * positionedGlyph.scale / 2;\n if (allowVerticalPlacement && shaping.verticalizable) {\n var scaledGlyphOffset = (positionedGlyph.scale - 1) * ONE_EM;\n var imageOffset = (ONE_EM - positionedGlyph.metrics.width * positionedGlyph.scale) / 2;\n lineOffset = line.lineOffset / 2 - (positionedGlyph.imageName ? -imageOffset : scaledGlyphOffset);\n }\n if (positionedGlyph.imageName) {\n var image = imageMap[positionedGlyph.imageName];\n isSDF = image.sdf;\n pixelRatio = image.pixelRatio;\n rectBuffer = IMAGE_PADDING / pixelRatio;\n }\n var glyphOffset2 = alongLine ? [\n positionedGlyph.x + halfAdvance,\n positionedGlyph.y\n ] : [\n 0,\n 0\n ];\n var builtInOffset = alongLine ? [\n 0,\n 0\n ] : [\n positionedGlyph.x + halfAdvance + textOffset[0],\n positionedGlyph.y + textOffset[1] - lineOffset\n ];\n var verticalizedLabelOffset = [\n 0,\n 0\n ];\n if (rotateVerticalGlyph) {\n verticalizedLabelOffset = builtInOffset;\n builtInOffset = [\n 0,\n 0\n ];\n }\n var x1 = (positionedGlyph.metrics.left - rectBuffer) * positionedGlyph.scale - halfAdvance + builtInOffset[0];\n var y1 = (-positionedGlyph.metrics.top - rectBuffer) * positionedGlyph.scale + builtInOffset[1];\n var x2 = x1 + textureRect.w * positionedGlyph.scale / pixelRatio;\n var y2 = y1 + textureRect.h * positionedGlyph.scale / pixelRatio;\n var tl = new pointGeometry(x1, y1);\n var tr = new pointGeometry(x2, y1);\n var bl = new pointGeometry(x1, y2);\n var br = new pointGeometry(x2, y2);\n if (rotateVerticalGlyph) {\n var center = new pointGeometry(-halfAdvance, halfAdvance - SHAPING_DEFAULT_OFFSET);\n var verticalRotation = -Math.PI / 2;\n var xHalfWidthOffsetCorrection = ONE_EM / 2 - halfAdvance;\n var yImageOffsetCorrection = positionedGlyph.imageName ? xHalfWidthOffsetCorrection : 0;\n var halfWidthOffsetCorrection = new pointGeometry(5 - SHAPING_DEFAULT_OFFSET - xHalfWidthOffsetCorrection, -yImageOffsetCorrection);\n var verticalOffsetCorrection = new (Function.prototype.bind.apply(pointGeometry, [null].concat(verticalizedLabelOffset)))();\n tl._rotateAround(verticalRotation, center)._add(halfWidthOffsetCorrection)._add(verticalOffsetCorrection);\n tr._rotateAround(verticalRotation, center)._add(halfWidthOffsetCorrection)._add(verticalOffsetCorrection);\n bl._rotateAround(verticalRotation, center)._add(halfWidthOffsetCorrection)._add(verticalOffsetCorrection);\n br._rotateAround(verticalRotation, center)._add(halfWidthOffsetCorrection)._add(verticalOffsetCorrection);\n }\n if (textRotate) {\n var sin = Math.sin(textRotate), cos = Math.cos(textRotate), matrix = [\n cos,\n -sin,\n sin,\n cos\n ];\n tl._matMult(matrix);\n tr._matMult(matrix);\n bl._matMult(matrix);\n br._matMult(matrix);\n }\n var pixelOffsetTL = new pointGeometry(0, 0);\n var pixelOffsetBR = new pointGeometry(0, 0);\n var minFontScaleX = 0;\n var minFontScaleY = 0;\n quads.push({\n tl,\n tr,\n bl,\n br,\n tex: textureRect,\n writingMode: shaping.writingMode,\n glyphOffset: glyphOffset2,\n sectionIndex: positionedGlyph.sectionIndex,\n isSDF,\n pixelOffsetTL,\n pixelOffsetBR,\n minFontScaleX,\n minFontScaleY\n });\n }\n }\n return quads;\n }\n var CollisionFeature = function CollisionFeature2(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, shaped, boxScale, padding, alignLine, rotate2) {\n this.boxStartIndex = collisionBoxArray.length;\n if (alignLine) {\n var top = shaped.top;\n var bottom = shaped.bottom;\n var collisionPadding = shaped.collisionPadding;\n if (collisionPadding) {\n top -= collisionPadding[1];\n bottom += collisionPadding[3];\n }\n var height = bottom - top;\n if (height > 0) {\n height = Math.max(10, height);\n this.circleDiameter = height;\n }\n } else {\n var y1 = shaped.top * boxScale - padding;\n var y2 = shaped.bottom * boxScale + padding;\n var x1 = shaped.left * boxScale - padding;\n var x2 = shaped.right * boxScale + padding;\n var collisionPadding$1 = shaped.collisionPadding;\n if (collisionPadding$1) {\n x1 -= collisionPadding$1[0] * boxScale;\n y1 -= collisionPadding$1[1] * boxScale;\n x2 += collisionPadding$1[2] * boxScale;\n y2 += collisionPadding$1[3] * boxScale;\n }\n if (rotate2) {\n var tl = new pointGeometry(x1, y1);\n var tr = new pointGeometry(x2, y1);\n var bl = new pointGeometry(x1, y2);\n var br = new pointGeometry(x2, y2);\n var rotateRadians = rotate2 * Math.PI / 180;\n tl._rotate(rotateRadians);\n tr._rotate(rotateRadians);\n bl._rotate(rotateRadians);\n br._rotate(rotateRadians);\n x1 = Math.min(tl.x, tr.x, bl.x, br.x);\n x2 = Math.max(tl.x, tr.x, bl.x, br.x);\n y1 = Math.min(tl.y, tr.y, bl.y, br.y);\n y2 = Math.max(tl.y, tr.y, bl.y, br.y);\n }\n collisionBoxArray.emplaceBack(anchor.x, anchor.y, x1, y1, x2, y2, featureIndex, sourceLayerIndex, bucketIndex);\n }\n this.boxEndIndex = collisionBoxArray.length;\n };\n var TinyQueue = function TinyQueue2(data, compare2) {\n if (data === void 0)\n data = [];\n if (compare2 === void 0)\n compare2 = defaultCompare$1;\n this.data = data;\n this.length = this.data.length;\n this.compare = compare2;\n if (this.length > 0) {\n for (var i = (this.length >> 1) - 1; i >= 0; i--) {\n this._down(i);\n }\n }\n };\n TinyQueue.prototype.push = function push(item) {\n this.data.push(item);\n this.length++;\n this._up(this.length - 1);\n };\n TinyQueue.prototype.pop = function pop() {\n if (this.length === 0) {\n return void 0;\n }\n var top = this.data[0];\n var bottom = this.data.pop();\n this.length--;\n if (this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n return top;\n };\n TinyQueue.prototype.peek = function peek() {\n return this.data[0];\n };\n TinyQueue.prototype._up = function _up(pos) {\n var ref = this;\n var data = ref.data;\n var compare2 = ref.compare;\n var item = data[pos];\n while (pos > 0) {\n var parent = pos - 1 >> 1;\n var current = data[parent];\n if (compare2(item, current) >= 0) {\n break;\n }\n data[pos] = current;\n pos = parent;\n }\n data[pos] = item;\n };\n TinyQueue.prototype._down = function _down(pos) {\n var ref = this;\n var data = ref.data;\n var compare2 = ref.compare;\n var halfLength = this.length >> 1;\n var item = data[pos];\n while (pos < halfLength) {\n var left = (pos << 1) + 1;\n var best = data[left];\n var right = left + 1;\n if (right < this.length && compare2(data[right], best) < 0) {\n left = right;\n best = data[right];\n }\n if (compare2(best, item) >= 0) {\n break;\n }\n data[pos] = best;\n pos = left;\n }\n data[pos] = item;\n };\n function defaultCompare$1(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }\n function findPoleOfInaccessibility(polygonRings, precision, debug) {\n if (precision === void 0)\n precision = 1;\n if (debug === void 0)\n debug = false;\n var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n var outerRing = polygonRings[0];\n for (var i = 0; i < outerRing.length; i++) {\n var p = outerRing[i];\n if (!i || p.x < minX) {\n minX = p.x;\n }\n if (!i || p.y < minY) {\n minY = p.y;\n }\n if (!i || p.x > maxX) {\n maxX = p.x;\n }\n if (!i || p.y > maxY) {\n maxY = p.y;\n }\n }\n var width = maxX - minX;\n var height = maxY - minY;\n var cellSize = Math.min(width, height);\n var h = cellSize / 2;\n var cellQueue = new TinyQueue([], compareMax);\n if (cellSize === 0) {\n return new pointGeometry(minX, minY);\n }\n for (var x = minX; x < maxX; x += cellSize) {\n for (var y = minY; y < maxY; y += cellSize) {\n cellQueue.push(new Cell(x + h, y + h, h, polygonRings));\n }\n }\n var bestCell = getCentroidCell(polygonRings);\n var numProbes = cellQueue.length;\n while (cellQueue.length) {\n var cell = cellQueue.pop();\n if (cell.d > bestCell.d || !bestCell.d) {\n bestCell = cell;\n if (debug) {\n console.log(\"found best %d after %d probes\", Math.round(1e4 * cell.d) / 1e4, numProbes);\n }\n }\n if (cell.max - bestCell.d <= precision) {\n continue;\n }\n h = cell.h / 2;\n cellQueue.push(new Cell(cell.p.x - h, cell.p.y - h, h, polygonRings));\n cellQueue.push(new Cell(cell.p.x + h, cell.p.y - h, h, polygonRings));\n cellQueue.push(new Cell(cell.p.x - h, cell.p.y + h, h, polygonRings));\n cellQueue.push(new Cell(cell.p.x + h, cell.p.y + h, h, polygonRings));\n numProbes += 4;\n }\n if (debug) {\n console.log(\"num probes: \" + numProbes);\n console.log(\"best distance: \" + bestCell.d);\n }\n return bestCell.p;\n }\n function compareMax(a, b) {\n return b.max - a.max;\n }\n function Cell(x, y, h, polygon) {\n this.p = new pointGeometry(x, y);\n this.h = h;\n this.d = pointToPolygonDist(this.p, polygon);\n this.max = this.d + this.h * Math.SQRT2;\n }\n function pointToPolygonDist(p, polygon) {\n var inside = false;\n var minDistSq = Infinity;\n for (var k = 0; k < polygon.length; k++) {\n var ring = polygon[k];\n for (var i = 0, len = ring.length, j = len - 1; i < len; j = i++) {\n var a = ring[i];\n var b = ring[j];\n if (a.y > p.y !== b.y > p.y && p.x < (b.x - a.x) * (p.y - a.y) / (b.y - a.y) + a.x) {\n inside = !inside;\n }\n minDistSq = Math.min(minDistSq, distToSegmentSquared(p, a, b));\n }\n }\n return (inside ? 1 : -1) * Math.sqrt(minDistSq);\n }\n function getCentroidCell(polygon) {\n var area2 = 0;\n var x = 0;\n var y = 0;\n var points = polygon[0];\n for (var i = 0, len = points.length, j = len - 1; i < len; j = i++) {\n var a = points[i];\n var b = points[j];\n var f = a.x * b.y - b.x * a.y;\n x += (a.x + b.x) * f;\n y += (a.y + b.y) * f;\n area2 += f * 3;\n }\n return new Cell(x / area2, y / area2, 0, polygon);\n }\n var baselineOffset = 7;\n var INVALID_TEXT_OFFSET = Number.POSITIVE_INFINITY;\n function evaluateVariableOffset(anchor, offset) {\n function fromRadialOffset(anchor2, radialOffset) {\n var x = 0, y = 0;\n if (radialOffset < 0) {\n radialOffset = 0;\n }\n var hypotenuse = radialOffset / Math.sqrt(2);\n switch (anchor2) {\n case \"top-right\":\n case \"top-left\":\n y = hypotenuse - baselineOffset;\n break;\n case \"bottom-right\":\n case \"bottom-left\":\n y = -hypotenuse + baselineOffset;\n break;\n case \"bottom\":\n y = -radialOffset + baselineOffset;\n break;\n case \"top\":\n y = radialOffset - baselineOffset;\n break;\n }\n switch (anchor2) {\n case \"top-right\":\n case \"bottom-right\":\n x = -hypotenuse;\n break;\n case \"top-left\":\n case \"bottom-left\":\n x = hypotenuse;\n break;\n case \"left\":\n x = radialOffset;\n break;\n case \"right\":\n x = -radialOffset;\n break;\n }\n return [\n x,\n y\n ];\n }\n function fromTextOffset(anchor2, offsetX, offsetY) {\n var x = 0, y = 0;\n offsetX = Math.abs(offsetX);\n offsetY = Math.abs(offsetY);\n switch (anchor2) {\n case \"top-right\":\n case \"top-left\":\n case \"top\":\n y = offsetY - baselineOffset;\n break;\n case \"bottom-right\":\n case \"bottom-left\":\n case \"bottom\":\n y = -offsetY + baselineOffset;\n break;\n }\n switch (anchor2) {\n case \"top-right\":\n case \"bottom-right\":\n case \"right\":\n x = -offsetX;\n break;\n case \"top-left\":\n case \"bottom-left\":\n case \"left\":\n x = offsetX;\n break;\n }\n return [\n x,\n y\n ];\n }\n return offset[1] !== INVALID_TEXT_OFFSET ? fromTextOffset(anchor, offset[0], offset[1]) : fromRadialOffset(anchor, offset[0]);\n }\n function performSymbolLayout(bucket, glyphMap, glyphPositions, imageMap, imagePositions, showCollisionBoxes, canonical) {\n bucket.createArrays();\n var tileSize = 512 * bucket.overscaling;\n bucket.tilePixelRatio = EXTENT$1 / tileSize;\n bucket.compareText = {};\n bucket.iconsNeedLinear = false;\n var layout2 = bucket.layers[0].layout;\n var unevaluatedLayoutValues = bucket.layers[0]._unevaluatedLayout._values;\n var sizes = {};\n if (bucket.textSizeData.kind === \"composite\") {\n var ref = bucket.textSizeData;\n var minZoom = ref.minZoom;\n var maxZoom = ref.maxZoom;\n sizes.compositeTextSizes = [\n unevaluatedLayoutValues[\"text-size\"].possiblyEvaluate(new EvaluationParameters(minZoom), canonical),\n unevaluatedLayoutValues[\"text-size\"].possiblyEvaluate(new EvaluationParameters(maxZoom), canonical)\n ];\n }\n if (bucket.iconSizeData.kind === \"composite\") {\n var ref$1 = bucket.iconSizeData;\n var minZoom$1 = ref$1.minZoom;\n var maxZoom$1 = ref$1.maxZoom;\n sizes.compositeIconSizes = [\n unevaluatedLayoutValues[\"icon-size\"].possiblyEvaluate(new EvaluationParameters(minZoom$1), canonical),\n unevaluatedLayoutValues[\"icon-size\"].possiblyEvaluate(new EvaluationParameters(maxZoom$1), canonical)\n ];\n }\n sizes.layoutTextSize = unevaluatedLayoutValues[\"text-size\"].possiblyEvaluate(new EvaluationParameters(bucket.zoom + 1), canonical);\n sizes.layoutIconSize = unevaluatedLayoutValues[\"icon-size\"].possiblyEvaluate(new EvaluationParameters(bucket.zoom + 1), canonical);\n sizes.textMaxSize = unevaluatedLayoutValues[\"text-size\"].possiblyEvaluate(new EvaluationParameters(18));\n var lineHeight = layout2.get(\"text-line-height\") * ONE_EM;\n var textAlongLine = layout2.get(\"text-rotation-alignment\") === \"map\" && layout2.get(\"symbol-placement\") !== \"point\";\n var keepUpright = layout2.get(\"text-keep-upright\");\n var textSize = layout2.get(\"text-size\");\n var loop = function() {\n var feature = list[i$1];\n var fontstack = layout2.get(\"text-font\").evaluate(feature, {}, canonical).join(\",\");\n var layoutTextSizeThisZoom = textSize.evaluate(feature, {}, canonical);\n var layoutTextSize = sizes.layoutTextSize.evaluate(feature, {}, canonical);\n var layoutIconSize = sizes.layoutIconSize.evaluate(feature, {}, canonical);\n var shapedTextOrientations = {\n horizontal: {},\n vertical: void 0\n };\n var text = feature.text;\n var textOffset = [\n 0,\n 0\n ];\n if (text) {\n var unformattedText = text.toString();\n var spacing = layout2.get(\"text-letter-spacing\").evaluate(feature, {}, canonical) * ONE_EM;\n var spacingIfAllowed = allowsLetterSpacing(unformattedText) ? spacing : 0;\n var textAnchor = layout2.get(\"text-anchor\").evaluate(feature, {}, canonical);\n var variableTextAnchor = layout2.get(\"text-variable-anchor\");\n if (!variableTextAnchor) {\n var radialOffset = layout2.get(\"text-radial-offset\").evaluate(feature, {}, canonical);\n if (radialOffset) {\n textOffset = evaluateVariableOffset(textAnchor, [\n radialOffset * ONE_EM,\n INVALID_TEXT_OFFSET\n ]);\n } else {\n textOffset = layout2.get(\"text-offset\").evaluate(feature, {}, canonical).map(function(t) {\n return t * ONE_EM;\n });\n }\n }\n var textJustify = textAlongLine ? \"center\" : layout2.get(\"text-justify\").evaluate(feature, {}, canonical);\n var symbolPlacement = layout2.get(\"symbol-placement\");\n var maxWidth = symbolPlacement === \"point\" ? layout2.get(\"text-max-width\").evaluate(feature, {}, canonical) * ONE_EM : 0;\n var addVerticalShapingForPointLabelIfNeeded = function() {\n if (bucket.allowVerticalPlacement && allowsVerticalWritingMode(unformattedText)) {\n shapedTextOrientations.vertical = shapeText(text, glyphMap, glyphPositions, imagePositions, fontstack, maxWidth, lineHeight, textAnchor, \"left\", spacingIfAllowed, textOffset, WritingMode.vertical, true, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom);\n }\n };\n if (!textAlongLine && variableTextAnchor) {\n var justifications = textJustify === \"auto\" ? variableTextAnchor.map(function(a) {\n return getAnchorJustification(a);\n }) : [textJustify];\n var singleLine = false;\n for (var i = 0; i < justifications.length; i++) {\n var justification = justifications[i];\n if (shapedTextOrientations.horizontal[justification]) {\n continue;\n }\n if (singleLine) {\n shapedTextOrientations.horizontal[justification] = shapedTextOrientations.horizontal[0];\n } else {\n var shaping = shapeText(text, glyphMap, glyphPositions, imagePositions, fontstack, maxWidth, lineHeight, \"center\", justification, spacingIfAllowed, textOffset, WritingMode.horizontal, false, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom);\n if (shaping) {\n shapedTextOrientations.horizontal[justification] = shaping;\n singleLine = shaping.positionedLines.length === 1;\n }\n }\n }\n addVerticalShapingForPointLabelIfNeeded();\n } else {\n if (textJustify === \"auto\") {\n textJustify = getAnchorJustification(textAnchor);\n }\n var shaping$1 = shapeText(text, glyphMap, glyphPositions, imagePositions, fontstack, maxWidth, lineHeight, textAnchor, textJustify, spacingIfAllowed, textOffset, WritingMode.horizontal, false, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom);\n if (shaping$1) {\n shapedTextOrientations.horizontal[textJustify] = shaping$1;\n }\n addVerticalShapingForPointLabelIfNeeded();\n if (allowsVerticalWritingMode(unformattedText) && textAlongLine && keepUpright) {\n shapedTextOrientations.vertical = shapeText(text, glyphMap, glyphPositions, imagePositions, fontstack, maxWidth, lineHeight, textAnchor, textJustify, spacingIfAllowed, textOffset, WritingMode.vertical, false, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom);\n }\n }\n }\n var shapedIcon = void 0;\n var isSDFIcon = false;\n if (feature.icon && feature.icon.name) {\n var image = imageMap[feature.icon.name];\n if (image) {\n shapedIcon = shapeIcon(imagePositions[feature.icon.name], layout2.get(\"icon-offset\").evaluate(feature, {}, canonical), layout2.get(\"icon-anchor\").evaluate(feature, {}, canonical));\n isSDFIcon = image.sdf;\n if (bucket.sdfIcons === void 0) {\n bucket.sdfIcons = image.sdf;\n } else if (bucket.sdfIcons !== image.sdf) {\n warnOnce(\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\");\n }\n if (image.pixelRatio !== bucket.pixelRatio) {\n bucket.iconsNeedLinear = true;\n } else if (layout2.get(\"icon-rotate\").constantOr(1) !== 0) {\n bucket.iconsNeedLinear = true;\n }\n }\n }\n var shapedText = getDefaultHorizontalShaping(shapedTextOrientations.horizontal) || shapedTextOrientations.vertical;\n bucket.iconsInText = shapedText ? shapedText.iconsInText : false;\n if (shapedText || shapedIcon) {\n addFeature(bucket, feature, shapedTextOrientations, shapedIcon, imageMap, sizes, layoutTextSize, layoutIconSize, textOffset, isSDFIcon, canonical);\n }\n };\n for (var i$1 = 0, list = bucket.features; i$1 < list.length; i$1 += 1)\n loop();\n if (showCollisionBoxes) {\n bucket.generateCollisionDebugBuffers();\n }\n }\n function getAnchorJustification(anchor) {\n switch (anchor) {\n case \"right\":\n case \"top-right\":\n case \"bottom-right\":\n return \"right\";\n case \"left\":\n case \"top-left\":\n case \"bottom-left\":\n return \"left\";\n }\n return \"center\";\n }\n function addFeature(bucket, feature, shapedTextOrientations, shapedIcon, imageMap, sizes, layoutTextSize, layoutIconSize, textOffset, isSDFIcon, canonical) {\n var textMaxSize = sizes.textMaxSize.evaluate(feature, {});\n if (textMaxSize === void 0) {\n textMaxSize = layoutTextSize;\n }\n var layout2 = bucket.layers[0].layout;\n var iconOffset = layout2.get(\"icon-offset\").evaluate(feature, {}, canonical);\n var defaultHorizontalShaping = getDefaultHorizontalShaping(shapedTextOrientations.horizontal);\n var glyphSize = 24, fontScale = layoutTextSize / glyphSize, textBoxScale = bucket.tilePixelRatio * fontScale, textMaxBoxScale = bucket.tilePixelRatio * textMaxSize / glyphSize, iconBoxScale = bucket.tilePixelRatio * layoutIconSize, symbolMinDistance = bucket.tilePixelRatio * layout2.get(\"symbol-spacing\"), textPadding = layout2.get(\"text-padding\") * bucket.tilePixelRatio, iconPadding = layout2.get(\"icon-padding\") * bucket.tilePixelRatio, textMaxAngle = layout2.get(\"text-max-angle\") / 180 * Math.PI, textAlongLine = layout2.get(\"text-rotation-alignment\") === \"map\" && layout2.get(\"symbol-placement\") !== \"point\", iconAlongLine = layout2.get(\"icon-rotation-alignment\") === \"map\" && layout2.get(\"symbol-placement\") !== \"point\", symbolPlacement = layout2.get(\"symbol-placement\"), textRepeatDistance = symbolMinDistance / 2;\n var iconTextFit = layout2.get(\"icon-text-fit\");\n var verticallyShapedIcon;\n if (shapedIcon && iconTextFit !== \"none\") {\n if (bucket.allowVerticalPlacement && shapedTextOrientations.vertical) {\n verticallyShapedIcon = fitIconToText(shapedIcon, shapedTextOrientations.vertical, iconTextFit, layout2.get(\"icon-text-fit-padding\"), iconOffset, fontScale);\n }\n if (defaultHorizontalShaping) {\n shapedIcon = fitIconToText(shapedIcon, defaultHorizontalShaping, iconTextFit, layout2.get(\"icon-text-fit-padding\"), iconOffset, fontScale);\n }\n }\n var addSymbolAtAnchor = function(line2, anchor2) {\n if (anchor2.x < 0 || anchor2.x >= EXTENT$1 || anchor2.y < 0 || anchor2.y >= EXTENT$1) {\n return;\n }\n addSymbol(bucket, anchor2, line2, shapedTextOrientations, shapedIcon, imageMap, verticallyShapedIcon, bucket.layers[0], bucket.collisionBoxArray, feature.index, feature.sourceLayerIndex, bucket.index, textBoxScale, textPadding, textAlongLine, textOffset, iconBoxScale, iconPadding, iconAlongLine, iconOffset, feature, sizes, isSDFIcon, canonical, layoutTextSize);\n };\n if (symbolPlacement === \"line\") {\n for (var i$1 = 0, list$1 = clipLine(feature.geometry, 0, 0, EXTENT$1, EXTENT$1); i$1 < list$1.length; i$1 += 1) {\n var line = list$1[i$1];\n var anchors = getAnchors(line, symbolMinDistance, textMaxAngle, shapedTextOrientations.vertical || defaultHorizontalShaping, shapedIcon, glyphSize, textMaxBoxScale, bucket.overscaling, EXTENT$1);\n for (var i = 0, list = anchors; i < list.length; i += 1) {\n var anchor = list[i];\n var shapedText = defaultHorizontalShaping;\n if (!shapedText || !anchorIsTooClose(bucket, shapedText.text, textRepeatDistance, anchor)) {\n addSymbolAtAnchor(line, anchor);\n }\n }\n }\n } else if (symbolPlacement === \"line-center\") {\n for (var i$2 = 0, list$2 = feature.geometry; i$2 < list$2.length; i$2 += 1) {\n var line$1 = list$2[i$2];\n if (line$1.length > 1) {\n var anchor$1 = getCenterAnchor(line$1, textMaxAngle, shapedTextOrientations.vertical || defaultHorizontalShaping, shapedIcon, glyphSize, textMaxBoxScale);\n if (anchor$1) {\n addSymbolAtAnchor(line$1, anchor$1);\n }\n }\n }\n } else if (feature.type === \"Polygon\") {\n for (var i$3 = 0, list$3 = classifyRings(feature.geometry, 0); i$3 < list$3.length; i$3 += 1) {\n var polygon = list$3[i$3];\n var poi = findPoleOfInaccessibility(polygon, 16);\n addSymbolAtAnchor(polygon[0], new Anchor(poi.x, poi.y, 0));\n }\n } else if (feature.type === \"LineString\") {\n for (var i$4 = 0, list$4 = feature.geometry; i$4 < list$4.length; i$4 += 1) {\n var line$2 = list$4[i$4];\n addSymbolAtAnchor(line$2, new Anchor(line$2[0].x, line$2[0].y, 0));\n }\n } else if (feature.type === \"Point\") {\n for (var i$6 = 0, list$6 = feature.geometry; i$6 < list$6.length; i$6 += 1) {\n var points = list$6[i$6];\n for (var i$5 = 0, list$5 = points; i$5 < list$5.length; i$5 += 1) {\n var point = list$5[i$5];\n addSymbolAtAnchor([point], new Anchor(point.x, point.y, 0));\n }\n }\n }\n }\n var MAX_GLYPH_ICON_SIZE = 255;\n var MAX_PACKED_SIZE = MAX_GLYPH_ICON_SIZE * SIZE_PACK_FACTOR;\n function addTextVertices(bucket, anchor, shapedText, imageMap, layer2, textAlongLine, feature, textOffset, lineArray, writingMode, placementTypes, placedTextSymbolIndices, placedIconIndex, sizes, canonical) {\n var glyphQuads = getGlyphQuads(anchor, shapedText, textOffset, layer2, textAlongLine, feature, imageMap, bucket.allowVerticalPlacement);\n var sizeData = bucket.textSizeData;\n var textSizeData = null;\n if (sizeData.kind === \"source\") {\n textSizeData = [SIZE_PACK_FACTOR * layer2.layout.get(\"text-size\").evaluate(feature, {})];\n if (textSizeData[0] > MAX_PACKED_SIZE) {\n warnOnce(bucket.layerIds[0] + ': Value for \"text-size\" is >= ' + MAX_GLYPH_ICON_SIZE + '. Reduce your \"text-size\".');\n }\n } else if (sizeData.kind === \"composite\") {\n textSizeData = [\n SIZE_PACK_FACTOR * sizes.compositeTextSizes[0].evaluate(feature, {}, canonical),\n SIZE_PACK_FACTOR * sizes.compositeTextSizes[1].evaluate(feature, {}, canonical)\n ];\n if (textSizeData[0] > MAX_PACKED_SIZE || textSizeData[1] > MAX_PACKED_SIZE) {\n warnOnce(bucket.layerIds[0] + ': Value for \"text-size\" is >= ' + MAX_GLYPH_ICON_SIZE + '. Reduce your \"text-size\".');\n }\n }\n bucket.addSymbols(bucket.text, glyphQuads, textSizeData, textOffset, textAlongLine, feature, writingMode, anchor, lineArray.lineStartIndex, lineArray.lineLength, placedIconIndex, canonical);\n for (var i = 0, list = placementTypes; i < list.length; i += 1) {\n var placementType = list[i];\n placedTextSymbolIndices[placementType] = bucket.text.placedSymbolArray.length - 1;\n }\n return glyphQuads.length * 4;\n }\n function getDefaultHorizontalShaping(horizontalShaping) {\n for (var justification in horizontalShaping) {\n return horizontalShaping[justification];\n }\n return null;\n }\n function addSymbol(bucket, anchor, line, shapedTextOrientations, shapedIcon, imageMap, verticallyShapedIcon, layer2, collisionBoxArray, featureIndex, sourceLayerIndex, bucketIndex, textBoxScale, textPadding, textAlongLine, textOffset, iconBoxScale, iconPadding, iconAlongLine, iconOffset, feature, sizes, isSDFIcon, canonical, layoutTextSize) {\n var assign;\n var lineArray = bucket.addToLineVertexArray(anchor, line);\n var textCollisionFeature, iconCollisionFeature, verticalTextCollisionFeature, verticalIconCollisionFeature;\n var numIconVertices = 0;\n var numVerticalIconVertices = 0;\n var numHorizontalGlyphVertices = 0;\n var numVerticalGlyphVertices = 0;\n var placedIconSymbolIndex = -1;\n var verticalPlacedIconSymbolIndex = -1;\n var placedTextSymbolIndices = {};\n var key = murmurhashJs(\"\");\n var textOffset0 = 0;\n var textOffset1 = 0;\n if (layer2._unevaluatedLayout.getValue(\"text-radial-offset\") === void 0) {\n assign = layer2.layout.get(\"text-offset\").evaluate(feature, {}, canonical).map(function(t) {\n return t * ONE_EM;\n }), textOffset0 = assign[0], textOffset1 = assign[1];\n } else {\n textOffset0 = layer2.layout.get(\"text-radial-offset\").evaluate(feature, {}, canonical) * ONE_EM;\n textOffset1 = INVALID_TEXT_OFFSET;\n }\n if (bucket.allowVerticalPlacement && shapedTextOrientations.vertical) {\n var textRotation = layer2.layout.get(\"text-rotate\").evaluate(feature, {}, canonical);\n var verticalTextRotation = textRotation + 90;\n var verticalShaping = shapedTextOrientations.vertical;\n verticalTextCollisionFeature = new CollisionFeature(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, verticalShaping, textBoxScale, textPadding, textAlongLine, verticalTextRotation);\n if (verticallyShapedIcon) {\n verticalIconCollisionFeature = new CollisionFeature(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, verticallyShapedIcon, iconBoxScale, iconPadding, textAlongLine, verticalTextRotation);\n }\n }\n if (shapedIcon) {\n var iconRotate = layer2.layout.get(\"icon-rotate\").evaluate(feature, {});\n var hasIconTextFit = layer2.layout.get(\"icon-text-fit\") !== \"none\";\n var iconQuads = getIconQuads(shapedIcon, iconRotate, isSDFIcon, hasIconTextFit);\n var verticalIconQuads = verticallyShapedIcon ? getIconQuads(verticallyShapedIcon, iconRotate, isSDFIcon, hasIconTextFit) : void 0;\n iconCollisionFeature = new CollisionFeature(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, shapedIcon, iconBoxScale, iconPadding, false, iconRotate);\n numIconVertices = iconQuads.length * 4;\n var sizeData = bucket.iconSizeData;\n var iconSizeData = null;\n if (sizeData.kind === \"source\") {\n iconSizeData = [SIZE_PACK_FACTOR * layer2.layout.get(\"icon-size\").evaluate(feature, {})];\n if (iconSizeData[0] > MAX_PACKED_SIZE) {\n warnOnce(bucket.layerIds[0] + ': Value for \"icon-size\" is >= ' + MAX_GLYPH_ICON_SIZE + '. Reduce your \"icon-size\".');\n }\n } else if (sizeData.kind === \"composite\") {\n iconSizeData = [\n SIZE_PACK_FACTOR * sizes.compositeIconSizes[0].evaluate(feature, {}, canonical),\n SIZE_PACK_FACTOR * sizes.compositeIconSizes[1].evaluate(feature, {}, canonical)\n ];\n if (iconSizeData[0] > MAX_PACKED_SIZE || iconSizeData[1] > MAX_PACKED_SIZE) {\n warnOnce(bucket.layerIds[0] + ': Value for \"icon-size\" is >= ' + MAX_GLYPH_ICON_SIZE + '. Reduce your \"icon-size\".');\n }\n }\n bucket.addSymbols(bucket.icon, iconQuads, iconSizeData, iconOffset, iconAlongLine, feature, false, anchor, lineArray.lineStartIndex, lineArray.lineLength, -1, canonical);\n placedIconSymbolIndex = bucket.icon.placedSymbolArray.length - 1;\n if (verticalIconQuads) {\n numVerticalIconVertices = verticalIconQuads.length * 4;\n bucket.addSymbols(bucket.icon, verticalIconQuads, iconSizeData, iconOffset, iconAlongLine, feature, WritingMode.vertical, anchor, lineArray.lineStartIndex, lineArray.lineLength, -1, canonical);\n verticalPlacedIconSymbolIndex = bucket.icon.placedSymbolArray.length - 1;\n }\n }\n for (var justification in shapedTextOrientations.horizontal) {\n var shaping = shapedTextOrientations.horizontal[justification];\n if (!textCollisionFeature) {\n key = murmurhashJs(shaping.text);\n var textRotate = layer2.layout.get(\"text-rotate\").evaluate(feature, {}, canonical);\n textCollisionFeature = new CollisionFeature(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, shaping, textBoxScale, textPadding, textAlongLine, textRotate);\n }\n var singleLine = shaping.positionedLines.length === 1;\n numHorizontalGlyphVertices += addTextVertices(bucket, anchor, shaping, imageMap, layer2, textAlongLine, feature, textOffset, lineArray, shapedTextOrientations.vertical ? WritingMode.horizontal : WritingMode.horizontalOnly, singleLine ? Object.keys(shapedTextOrientations.horizontal) : [justification], placedTextSymbolIndices, placedIconSymbolIndex, sizes, canonical);\n if (singleLine) {\n break;\n }\n }\n if (shapedTextOrientations.vertical) {\n numVerticalGlyphVertices += addTextVertices(bucket, anchor, shapedTextOrientations.vertical, imageMap, layer2, textAlongLine, feature, textOffset, lineArray, WritingMode.vertical, [\"vertical\"], placedTextSymbolIndices, verticalPlacedIconSymbolIndex, sizes, canonical);\n }\n var textBoxStartIndex = textCollisionFeature ? textCollisionFeature.boxStartIndex : bucket.collisionBoxArray.length;\n var textBoxEndIndex = textCollisionFeature ? textCollisionFeature.boxEndIndex : bucket.collisionBoxArray.length;\n var verticalTextBoxStartIndex = verticalTextCollisionFeature ? verticalTextCollisionFeature.boxStartIndex : bucket.collisionBoxArray.length;\n var verticalTextBoxEndIndex = verticalTextCollisionFeature ? verticalTextCollisionFeature.boxEndIndex : bucket.collisionBoxArray.length;\n var iconBoxStartIndex = iconCollisionFeature ? iconCollisionFeature.boxStartIndex : bucket.collisionBoxArray.length;\n var iconBoxEndIndex = iconCollisionFeature ? iconCollisionFeature.boxEndIndex : bucket.collisionBoxArray.length;\n var verticalIconBoxStartIndex = verticalIconCollisionFeature ? verticalIconCollisionFeature.boxStartIndex : bucket.collisionBoxArray.length;\n var verticalIconBoxEndIndex = verticalIconCollisionFeature ? verticalIconCollisionFeature.boxEndIndex : bucket.collisionBoxArray.length;\n var collisionCircleDiameter = -1;\n var getCollisionCircleHeight = function(feature2, prevHeight) {\n if (feature2 && feature2.circleDiameter) {\n return Math.max(feature2.circleDiameter, prevHeight);\n }\n return prevHeight;\n };\n collisionCircleDiameter = getCollisionCircleHeight(textCollisionFeature, collisionCircleDiameter);\n collisionCircleDiameter = getCollisionCircleHeight(verticalTextCollisionFeature, collisionCircleDiameter);\n collisionCircleDiameter = getCollisionCircleHeight(iconCollisionFeature, collisionCircleDiameter);\n collisionCircleDiameter = getCollisionCircleHeight(verticalIconCollisionFeature, collisionCircleDiameter);\n var useRuntimeCollisionCircles = collisionCircleDiameter > -1 ? 1 : 0;\n if (useRuntimeCollisionCircles) {\n collisionCircleDiameter *= layoutTextSize / ONE_EM;\n }\n if (bucket.glyphOffsetArray.length >= SymbolBucket.MAX_GLYPHS) {\n warnOnce(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\");\n }\n if (feature.sortKey !== void 0) {\n bucket.addToSortKeyRanges(bucket.symbolInstances.length, feature.sortKey);\n }\n bucket.symbolInstances.emplaceBack(anchor.x, anchor.y, placedTextSymbolIndices.right >= 0 ? placedTextSymbolIndices.right : -1, placedTextSymbolIndices.center >= 0 ? placedTextSymbolIndices.center : -1, placedTextSymbolIndices.left >= 0 ? placedTextSymbolIndices.left : -1, placedTextSymbolIndices.vertical || -1, placedIconSymbolIndex, verticalPlacedIconSymbolIndex, key, textBoxStartIndex, textBoxEndIndex, verticalTextBoxStartIndex, verticalTextBoxEndIndex, iconBoxStartIndex, iconBoxEndIndex, verticalIconBoxStartIndex, verticalIconBoxEndIndex, featureIndex, numHorizontalGlyphVertices, numVerticalGlyphVertices, numIconVertices, numVerticalIconVertices, useRuntimeCollisionCircles, 0, textBoxScale, textOffset0, textOffset1, collisionCircleDiameter);\n }\n function anchorIsTooClose(bucket, text, repeatDistance, anchor) {\n var compareText = bucket.compareText;\n if (!(text in compareText)) {\n compareText[text] = [];\n } else {\n var otherAnchors = compareText[text];\n for (var k = otherAnchors.length - 1; k >= 0; k--) {\n if (anchor.dist(otherAnchors[k]) < repeatDistance) {\n return true;\n }\n }\n }\n compareText[text].push(anchor);\n return false;\n }\n var vectorTileFeatureTypes$2 = vectorTile.VectorTileFeature.types;\n var shaderOpacityAttributes = [{\n name: \"a_fade_opacity\",\n components: 1,\n type: \"Uint8\",\n offset: 0\n }];\n function addVertex$1(array2, anchorX, anchorY, ox, oy, tx, ty, sizeVertex, isSDF, pixelOffsetX, pixelOffsetY, minFontScaleX, minFontScaleY) {\n var aSizeX = sizeVertex ? Math.min(MAX_PACKED_SIZE, Math.round(sizeVertex[0])) : 0;\n var aSizeY = sizeVertex ? Math.min(MAX_PACKED_SIZE, Math.round(sizeVertex[1])) : 0;\n array2.emplaceBack(anchorX, anchorY, Math.round(ox * 32), Math.round(oy * 32), tx, ty, (aSizeX << 1) + (isSDF ? 1 : 0), aSizeY, pixelOffsetX * 16, pixelOffsetY * 16, minFontScaleX * 256, minFontScaleY * 256);\n }\n function addDynamicAttributes(dynamicLayoutVertexArray, p, angle) {\n dynamicLayoutVertexArray.emplaceBack(p.x, p.y, angle);\n dynamicLayoutVertexArray.emplaceBack(p.x, p.y, angle);\n dynamicLayoutVertexArray.emplaceBack(p.x, p.y, angle);\n dynamicLayoutVertexArray.emplaceBack(p.x, p.y, angle);\n }\n function containsRTLText(formattedText) {\n for (var i = 0, list = formattedText.sections; i < list.length; i += 1) {\n var section = list[i];\n if (stringContainsRTLText(section.text)) {\n return true;\n }\n }\n return false;\n }\n var SymbolBuffers = function SymbolBuffers2(programConfigurations) {\n this.layoutVertexArray = new StructArrayLayout4i4ui4i24();\n this.indexArray = new StructArrayLayout3ui6();\n this.programConfigurations = programConfigurations;\n this.segments = new SegmentVector();\n this.dynamicLayoutVertexArray = new StructArrayLayout3f12();\n this.opacityVertexArray = new StructArrayLayout1ul4();\n this.placedSymbolArray = new PlacedSymbolArray();\n };\n SymbolBuffers.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0 && this.indexArray.length === 0 && this.dynamicLayoutVertexArray.length === 0 && this.opacityVertexArray.length === 0;\n };\n SymbolBuffers.prototype.upload = function upload(context, dynamicIndexBuffer, upload$1, update) {\n if (this.isEmpty()) {\n return;\n }\n if (upload$1) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, symbolLayoutAttributes.members);\n this.indexBuffer = context.createIndexBuffer(this.indexArray, dynamicIndexBuffer);\n this.dynamicLayoutVertexBuffer = context.createVertexBuffer(this.dynamicLayoutVertexArray, dynamicLayoutAttributes.members, true);\n this.opacityVertexBuffer = context.createVertexBuffer(this.opacityVertexArray, shaderOpacityAttributes, true);\n this.opacityVertexBuffer.itemSize = 1;\n }\n if (upload$1 || update) {\n this.programConfigurations.upload(context);\n }\n };\n SymbolBuffers.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n this.dynamicLayoutVertexBuffer.destroy();\n this.opacityVertexBuffer.destroy();\n };\n register(\"SymbolBuffers\", SymbolBuffers);\n var CollisionBuffers = function CollisionBuffers2(LayoutArray, layoutAttributes, IndexArray) {\n this.layoutVertexArray = new LayoutArray();\n this.layoutAttributes = layoutAttributes;\n this.indexArray = new IndexArray();\n this.segments = new SegmentVector();\n this.collisionVertexArray = new StructArrayLayout2ub2f12();\n };\n CollisionBuffers.prototype.upload = function upload(context) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n this.collisionVertexBuffer = context.createVertexBuffer(this.collisionVertexArray, collisionVertexAttributes.members, true);\n };\n CollisionBuffers.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.segments.destroy();\n this.collisionVertexBuffer.destroy();\n };\n register(\"CollisionBuffers\", CollisionBuffers);\n var SymbolBucket = function SymbolBucket2(options) {\n this.collisionBoxArray = options.collisionBoxArray;\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer3) {\n return layer3.id;\n });\n this.index = options.index;\n this.pixelRatio = options.pixelRatio;\n this.sourceLayerIndex = options.sourceLayerIndex;\n this.hasPattern = false;\n this.hasRTLText = false;\n this.sortKeyRanges = [];\n this.collisionCircleArray = [];\n this.placementInvProjMatrix = identity2([]);\n this.placementViewportMatrix = identity2([]);\n var layer2 = this.layers[0];\n var unevaluatedLayoutValues = layer2._unevaluatedLayout._values;\n this.textSizeData = getSizeData(this.zoom, unevaluatedLayoutValues[\"text-size\"]);\n this.iconSizeData = getSizeData(this.zoom, unevaluatedLayoutValues[\"icon-size\"]);\n var layout2 = this.layers[0].layout;\n var sortKey = layout2.get(\"symbol-sort-key\");\n var zOrder2 = layout2.get(\"symbol-z-order\");\n this.canOverlap = layout2.get(\"text-allow-overlap\") || layout2.get(\"icon-allow-overlap\") || layout2.get(\"text-ignore-placement\") || layout2.get(\"icon-ignore-placement\");\n this.sortFeaturesByKey = zOrder2 !== \"viewport-y\" && sortKey.constantOr(1) !== void 0;\n var zOrderByViewportY = zOrder2 === \"viewport-y\" || zOrder2 === \"auto\" && !this.sortFeaturesByKey;\n this.sortFeaturesByY = zOrderByViewportY && this.canOverlap;\n if (layout2.get(\"symbol-placement\") === \"point\") {\n this.writingModes = layout2.get(\"text-writing-mode\").map(function(wm) {\n return WritingMode[wm];\n });\n }\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n this.sourceID = options.sourceID;\n };\n SymbolBucket.prototype.createArrays = function createArrays() {\n this.text = new SymbolBuffers(new ProgramConfigurationSet(this.layers, this.zoom, function(property) {\n return /^text/.test(property);\n }));\n this.icon = new SymbolBuffers(new ProgramConfigurationSet(this.layers, this.zoom, function(property) {\n return /^icon/.test(property);\n }));\n this.glyphOffsetArray = new GlyphOffsetArray();\n this.lineVertexArray = new SymbolLineVertexArray();\n this.symbolInstances = new SymbolInstanceArray();\n };\n SymbolBucket.prototype.calculateGlyphDependencies = function calculateGlyphDependencies(text, stack, textAlongLine, allowVerticalPlacement, doesAllowVerticalWritingMode) {\n for (var i = 0; i < text.length; i++) {\n stack[text.charCodeAt(i)] = true;\n if ((textAlongLine || allowVerticalPlacement) && doesAllowVerticalWritingMode) {\n var verticalChar = verticalizedCharacterMap[text.charAt(i)];\n if (verticalChar) {\n stack[verticalChar.charCodeAt(0)] = true;\n }\n }\n }\n };\n SymbolBucket.prototype.populate = function populate(features, options, canonical) {\n var layer2 = this.layers[0];\n var layout2 = layer2.layout;\n var textFont = layout2.get(\"text-font\");\n var textField = layout2.get(\"text-field\");\n var iconImage = layout2.get(\"icon-image\");\n var hasText = (textField.value.kind !== \"constant\" || textField.value.value instanceof Formatted && !textField.value.value.isEmpty() || textField.value.value.toString().length > 0) && (textFont.value.kind !== \"constant\" || textFont.value.value.length > 0);\n var hasIcon = iconImage.value.kind !== \"constant\" || !!iconImage.value.value || Object.keys(iconImage.parameters).length > 0;\n var symbolSortKey = layout2.get(\"symbol-sort-key\");\n this.features = [];\n if (!hasText && !hasIcon) {\n return;\n }\n var icons = options.iconDependencies;\n var stacks = options.glyphDependencies;\n var availableImages = options.availableImages;\n var globalProperties = new EvaluationParameters(this.zoom);\n for (var i$1 = 0, list$1 = features; i$1 < list$1.length; i$1 += 1) {\n var ref = list$1[i$1];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = layer2._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!layer2._featureFilter.filter(globalProperties, evaluationFeature, canonical)) {\n continue;\n }\n if (!needGeometry) {\n evaluationFeature.geometry = loadGeometry(feature);\n }\n var text = void 0;\n if (hasText) {\n var resolvedTokens = layer2.getValueAndResolveTokens(\"text-field\", evaluationFeature, canonical, availableImages);\n var formattedText = Formatted.factory(resolvedTokens);\n if (containsRTLText(formattedText)) {\n this.hasRTLText = true;\n }\n if (!this.hasRTLText || getRTLTextPluginStatus() === \"unavailable\" || this.hasRTLText && plugin.isParsed()) {\n text = transformText$1(formattedText, layer2, evaluationFeature);\n }\n }\n var icon = void 0;\n if (hasIcon) {\n var resolvedTokens$1 = layer2.getValueAndResolveTokens(\"icon-image\", evaluationFeature, canonical, availableImages);\n if (resolvedTokens$1 instanceof ResolvedImage) {\n icon = resolvedTokens$1;\n } else {\n icon = ResolvedImage.fromString(resolvedTokens$1);\n }\n }\n if (!text && !icon) {\n continue;\n }\n var sortKey = this.sortFeaturesByKey ? symbolSortKey.evaluate(evaluationFeature, {}, canonical) : void 0;\n var symbolFeature = {\n id: id2,\n text,\n icon,\n index,\n sourceLayerIndex,\n geometry: evaluationFeature.geometry,\n properties: feature.properties,\n type: vectorTileFeatureTypes$2[feature.type],\n sortKey\n };\n this.features.push(symbolFeature);\n if (icon) {\n icons[icon.name] = true;\n }\n if (text) {\n var fontStack = textFont.evaluate(evaluationFeature, {}, canonical).join(\",\");\n var textAlongLine = layout2.get(\"text-rotation-alignment\") === \"map\" && layout2.get(\"symbol-placement\") !== \"point\";\n this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(WritingMode.vertical) >= 0;\n for (var i = 0, list = text.sections; i < list.length; i += 1) {\n var section = list[i];\n if (!section.image) {\n var doesAllowVerticalWritingMode = allowsVerticalWritingMode(text.toString());\n var sectionFont = section.fontStack || fontStack;\n var sectionStack = stacks[sectionFont] = stacks[sectionFont] || {};\n this.calculateGlyphDependencies(section.text, sectionStack, textAlongLine, this.allowVerticalPlacement, doesAllowVerticalWritingMode);\n } else {\n icons[section.image.name] = true;\n }\n }\n }\n }\n if (layout2.get(\"symbol-placement\") === \"line\") {\n this.features = mergeLines(this.features);\n }\n if (this.sortFeaturesByKey) {\n this.features.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n };\n SymbolBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.text.programConfigurations.updatePaintArrays(states, vtLayer, this.layers, imagePositions);\n this.icon.programConfigurations.updatePaintArrays(states, vtLayer, this.layers, imagePositions);\n };\n SymbolBucket.prototype.isEmpty = function isEmpty2() {\n return this.symbolInstances.length === 0 && !this.hasRTLText;\n };\n SymbolBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload;\n };\n SymbolBucket.prototype.upload = function upload(context) {\n if (!this.uploaded && this.hasDebugData()) {\n this.textCollisionBox.upload(context);\n this.iconCollisionBox.upload(context);\n }\n this.text.upload(context, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload);\n this.icon.upload(context, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload);\n this.uploaded = true;\n };\n SymbolBucket.prototype.destroyDebugData = function destroyDebugData() {\n this.textCollisionBox.destroy();\n this.iconCollisionBox.destroy();\n };\n SymbolBucket.prototype.destroy = function destroy() {\n this.text.destroy();\n this.icon.destroy();\n if (this.hasDebugData()) {\n this.destroyDebugData();\n }\n };\n SymbolBucket.prototype.addToLineVertexArray = function addToLineVertexArray(anchor, line) {\n var lineStartIndex = this.lineVertexArray.length;\n if (anchor.segment !== void 0) {\n var sumForwardLength = anchor.dist(line[anchor.segment + 1]);\n var sumBackwardLength = anchor.dist(line[anchor.segment]);\n var vertices = {};\n for (var i = anchor.segment + 1; i < line.length; i++) {\n vertices[i] = {\n x: line[i].x,\n y: line[i].y,\n tileUnitDistanceFromAnchor: sumForwardLength\n };\n if (i < line.length - 1) {\n sumForwardLength += line[i + 1].dist(line[i]);\n }\n }\n for (var i$1 = anchor.segment || 0; i$1 >= 0; i$1--) {\n vertices[i$1] = {\n x: line[i$1].x,\n y: line[i$1].y,\n tileUnitDistanceFromAnchor: sumBackwardLength\n };\n if (i$1 > 0) {\n sumBackwardLength += line[i$1 - 1].dist(line[i$1]);\n }\n }\n for (var i$2 = 0; i$2 < line.length; i$2++) {\n var vertex = vertices[i$2];\n this.lineVertexArray.emplaceBack(vertex.x, vertex.y, vertex.tileUnitDistanceFromAnchor);\n }\n }\n return {\n lineStartIndex,\n lineLength: this.lineVertexArray.length - lineStartIndex\n };\n };\n SymbolBucket.prototype.addSymbols = function addSymbols(arrays, quads, sizeVertex, lineOffset, alongLine, feature, writingMode, labelAnchor, lineStartIndex, lineLength, associatedIconIndex, canonical) {\n var indexArray = arrays.indexArray;\n var layoutVertexArray = arrays.layoutVertexArray;\n var segment = arrays.segments.prepareSegment(4 * quads.length, layoutVertexArray, indexArray, this.canOverlap ? feature.sortKey : void 0);\n var glyphOffsetArrayStart = this.glyphOffsetArray.length;\n var vertexStartIndex = segment.vertexLength;\n var angle = this.allowVerticalPlacement && writingMode === WritingMode.vertical ? Math.PI / 2 : 0;\n var sections = feature.text && feature.text.sections;\n for (var i = 0; i < quads.length; i++) {\n var ref = quads[i];\n var tl = ref.tl;\n var tr = ref.tr;\n var bl = ref.bl;\n var br = ref.br;\n var tex = ref.tex;\n var pixelOffsetTL = ref.pixelOffsetTL;\n var pixelOffsetBR = ref.pixelOffsetBR;\n var minFontScaleX = ref.minFontScaleX;\n var minFontScaleY = ref.minFontScaleY;\n var glyphOffset2 = ref.glyphOffset;\n var isSDF = ref.isSDF;\n var sectionIndex = ref.sectionIndex;\n var index = segment.vertexLength;\n var y = glyphOffset2[1];\n addVertex$1(layoutVertexArray, labelAnchor.x, labelAnchor.y, tl.x, y + tl.y, tex.x, tex.y, sizeVertex, isSDF, pixelOffsetTL.x, pixelOffsetTL.y, minFontScaleX, minFontScaleY);\n addVertex$1(layoutVertexArray, labelAnchor.x, labelAnchor.y, tr.x, y + tr.y, tex.x + tex.w, tex.y, sizeVertex, isSDF, pixelOffsetBR.x, pixelOffsetTL.y, minFontScaleX, minFontScaleY);\n addVertex$1(layoutVertexArray, labelAnchor.x, labelAnchor.y, bl.x, y + bl.y, tex.x, tex.y + tex.h, sizeVertex, isSDF, pixelOffsetTL.x, pixelOffsetBR.y, minFontScaleX, minFontScaleY);\n addVertex$1(layoutVertexArray, labelAnchor.x, labelAnchor.y, br.x, y + br.y, tex.x + tex.w, tex.y + tex.h, sizeVertex, isSDF, pixelOffsetBR.x, pixelOffsetBR.y, minFontScaleX, minFontScaleY);\n addDynamicAttributes(arrays.dynamicLayoutVertexArray, labelAnchor, angle);\n indexArray.emplaceBack(index, index + 1, index + 2);\n indexArray.emplaceBack(index + 1, index + 2, index + 3);\n segment.vertexLength += 4;\n segment.primitiveLength += 2;\n this.glyphOffsetArray.emplaceBack(glyphOffset2[0]);\n if (i === quads.length - 1 || sectionIndex !== quads[i + 1].sectionIndex) {\n arrays.programConfigurations.populatePaintArrays(layoutVertexArray.length, feature, feature.index, {}, canonical, sections && sections[sectionIndex]);\n }\n }\n arrays.placedSymbolArray.emplaceBack(labelAnchor.x, labelAnchor.y, glyphOffsetArrayStart, this.glyphOffsetArray.length - glyphOffsetArrayStart, vertexStartIndex, lineStartIndex, lineLength, labelAnchor.segment, sizeVertex ? sizeVertex[0] : 0, sizeVertex ? sizeVertex[1] : 0, lineOffset[0], lineOffset[1], writingMode, 0, false, 0, associatedIconIndex);\n };\n SymbolBucket.prototype._addCollisionDebugVertex = function _addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, point, anchorX, anchorY, extrude) {\n collisionVertexArray.emplaceBack(0, 0);\n return layoutVertexArray.emplaceBack(point.x, point.y, anchorX, anchorY, Math.round(extrude.x), Math.round(extrude.y));\n };\n SymbolBucket.prototype.addCollisionDebugVertices = function addCollisionDebugVertices(x1, y1, x2, y2, arrays, boxAnchorPoint, symbolInstance2) {\n var segment = arrays.segments.prepareSegment(4, arrays.layoutVertexArray, arrays.indexArray);\n var index = segment.vertexLength;\n var layoutVertexArray = arrays.layoutVertexArray;\n var collisionVertexArray = arrays.collisionVertexArray;\n var anchorX = symbolInstance2.anchorX;\n var anchorY = symbolInstance2.anchorY;\n this._addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, boxAnchorPoint, anchorX, anchorY, new pointGeometry(x1, y1));\n this._addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, boxAnchorPoint, anchorX, anchorY, new pointGeometry(x2, y1));\n this._addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, boxAnchorPoint, anchorX, anchorY, new pointGeometry(x2, y2));\n this._addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, boxAnchorPoint, anchorX, anchorY, new pointGeometry(x1, y2));\n segment.vertexLength += 4;\n var indexArray = arrays.indexArray;\n indexArray.emplaceBack(index, index + 1);\n indexArray.emplaceBack(index + 1, index + 2);\n indexArray.emplaceBack(index + 2, index + 3);\n indexArray.emplaceBack(index + 3, index);\n segment.primitiveLength += 4;\n };\n SymbolBucket.prototype.addDebugCollisionBoxes = function addDebugCollisionBoxes(startIndex, endIndex, symbolInstance2, isText) {\n for (var b = startIndex; b < endIndex; b++) {\n var box = this.collisionBoxArray.get(b);\n var x1 = box.x1;\n var y1 = box.y1;\n var x2 = box.x2;\n var y2 = box.y2;\n this.addCollisionDebugVertices(x1, y1, x2, y2, isText ? this.textCollisionBox : this.iconCollisionBox, box.anchorPoint, symbolInstance2);\n }\n };\n SymbolBucket.prototype.generateCollisionDebugBuffers = function generateCollisionDebugBuffers() {\n if (this.hasDebugData()) {\n this.destroyDebugData();\n }\n this.textCollisionBox = new CollisionBuffers(StructArrayLayout2i2i2i12, collisionBoxLayout.members, StructArrayLayout2ui4);\n this.iconCollisionBox = new CollisionBuffers(StructArrayLayout2i2i2i12, collisionBoxLayout.members, StructArrayLayout2ui4);\n for (var i = 0; i < this.symbolInstances.length; i++) {\n var symbolInstance2 = this.symbolInstances.get(i);\n this.addDebugCollisionBoxes(symbolInstance2.textBoxStartIndex, symbolInstance2.textBoxEndIndex, symbolInstance2, true);\n this.addDebugCollisionBoxes(symbolInstance2.verticalTextBoxStartIndex, symbolInstance2.verticalTextBoxEndIndex, symbolInstance2, true);\n this.addDebugCollisionBoxes(symbolInstance2.iconBoxStartIndex, symbolInstance2.iconBoxEndIndex, symbolInstance2, false);\n this.addDebugCollisionBoxes(symbolInstance2.verticalIconBoxStartIndex, symbolInstance2.verticalIconBoxEndIndex, symbolInstance2, false);\n }\n };\n SymbolBucket.prototype._deserializeCollisionBoxesForSymbol = function _deserializeCollisionBoxesForSymbol(collisionBoxArray, textStartIndex, textEndIndex, verticalTextStartIndex, verticalTextEndIndex, iconStartIndex, iconEndIndex, verticalIconStartIndex, verticalIconEndIndex) {\n var collisionArrays = {};\n for (var k = textStartIndex; k < textEndIndex; k++) {\n var box = collisionBoxArray.get(k);\n collisionArrays.textBox = {\n x1: box.x1,\n y1: box.y1,\n x2: box.x2,\n y2: box.y2,\n anchorPointX: box.anchorPointX,\n anchorPointY: box.anchorPointY\n };\n collisionArrays.textFeatureIndex = box.featureIndex;\n break;\n }\n for (var k$1 = verticalTextStartIndex; k$1 < verticalTextEndIndex; k$1++) {\n var box$1 = collisionBoxArray.get(k$1);\n collisionArrays.verticalTextBox = {\n x1: box$1.x1,\n y1: box$1.y1,\n x2: box$1.x2,\n y2: box$1.y2,\n anchorPointX: box$1.anchorPointX,\n anchorPointY: box$1.anchorPointY\n };\n collisionArrays.verticalTextFeatureIndex = box$1.featureIndex;\n break;\n }\n for (var k$2 = iconStartIndex; k$2 < iconEndIndex; k$2++) {\n var box$2 = collisionBoxArray.get(k$2);\n collisionArrays.iconBox = {\n x1: box$2.x1,\n y1: box$2.y1,\n x2: box$2.x2,\n y2: box$2.y2,\n anchorPointX: box$2.anchorPointX,\n anchorPointY: box$2.anchorPointY\n };\n collisionArrays.iconFeatureIndex = box$2.featureIndex;\n break;\n }\n for (var k$3 = verticalIconStartIndex; k$3 < verticalIconEndIndex; k$3++) {\n var box$3 = collisionBoxArray.get(k$3);\n collisionArrays.verticalIconBox = {\n x1: box$3.x1,\n y1: box$3.y1,\n x2: box$3.x2,\n y2: box$3.y2,\n anchorPointX: box$3.anchorPointX,\n anchorPointY: box$3.anchorPointY\n };\n collisionArrays.verticalIconFeatureIndex = box$3.featureIndex;\n break;\n }\n return collisionArrays;\n };\n SymbolBucket.prototype.deserializeCollisionBoxes = function deserializeCollisionBoxes(collisionBoxArray) {\n this.collisionArrays = [];\n for (var i = 0; i < this.symbolInstances.length; i++) {\n var symbolInstance2 = this.symbolInstances.get(i);\n this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(collisionBoxArray, symbolInstance2.textBoxStartIndex, symbolInstance2.textBoxEndIndex, symbolInstance2.verticalTextBoxStartIndex, symbolInstance2.verticalTextBoxEndIndex, symbolInstance2.iconBoxStartIndex, symbolInstance2.iconBoxEndIndex, symbolInstance2.verticalIconBoxStartIndex, symbolInstance2.verticalIconBoxEndIndex));\n }\n };\n SymbolBucket.prototype.hasTextData = function hasTextData() {\n return this.text.segments.get().length > 0;\n };\n SymbolBucket.prototype.hasIconData = function hasIconData() {\n return this.icon.segments.get().length > 0;\n };\n SymbolBucket.prototype.hasDebugData = function hasDebugData() {\n return this.textCollisionBox && this.iconCollisionBox;\n };\n SymbolBucket.prototype.hasTextCollisionBoxData = function hasTextCollisionBoxData() {\n return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0;\n };\n SymbolBucket.prototype.hasIconCollisionBoxData = function hasIconCollisionBoxData() {\n return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0;\n };\n SymbolBucket.prototype.addIndicesForPlacedSymbol = function addIndicesForPlacedSymbol(iconOrText, placedSymbolIndex) {\n var placedSymbol = iconOrText.placedSymbolArray.get(placedSymbolIndex);\n var endIndex = placedSymbol.vertexStartIndex + placedSymbol.numGlyphs * 4;\n for (var vertexIndex = placedSymbol.vertexStartIndex; vertexIndex < endIndex; vertexIndex += 4) {\n iconOrText.indexArray.emplaceBack(vertexIndex, vertexIndex + 1, vertexIndex + 2);\n iconOrText.indexArray.emplaceBack(vertexIndex + 1, vertexIndex + 2, vertexIndex + 3);\n }\n };\n SymbolBucket.prototype.getSortedSymbolIndexes = function getSortedSymbolIndexes(angle) {\n if (this.sortedAngle === angle && this.symbolInstanceIndexes !== void 0) {\n return this.symbolInstanceIndexes;\n }\n var sin = Math.sin(angle);\n var cos = Math.cos(angle);\n var rotatedYs = [];\n var featureIndexes = [];\n var result = [];\n for (var i = 0; i < this.symbolInstances.length; ++i) {\n result.push(i);\n var symbolInstance2 = this.symbolInstances.get(i);\n rotatedYs.push(Math.round(sin * symbolInstance2.anchorX + cos * symbolInstance2.anchorY) | 0);\n featureIndexes.push(symbolInstance2.featureIndex);\n }\n result.sort(function(aIndex, bIndex) {\n return rotatedYs[aIndex] - rotatedYs[bIndex] || featureIndexes[bIndex] - featureIndexes[aIndex];\n });\n return result;\n };\n SymbolBucket.prototype.addToSortKeyRanges = function addToSortKeyRanges(symbolInstanceIndex, sortKey) {\n var last = this.sortKeyRanges[this.sortKeyRanges.length - 1];\n if (last && last.sortKey === sortKey) {\n last.symbolInstanceEnd = symbolInstanceIndex + 1;\n } else {\n this.sortKeyRanges.push({\n sortKey,\n symbolInstanceStart: symbolInstanceIndex,\n symbolInstanceEnd: symbolInstanceIndex + 1\n });\n }\n };\n SymbolBucket.prototype.sortFeatures = function sortFeatures(angle) {\n var this$1 = this;\n if (!this.sortFeaturesByY) {\n return;\n }\n if (this.sortedAngle === angle) {\n return;\n }\n if (this.text.segments.get().length > 1 || this.icon.segments.get().length > 1) {\n return;\n }\n this.symbolInstanceIndexes = this.getSortedSymbolIndexes(angle);\n this.sortedAngle = angle;\n this.text.indexArray.clear();\n this.icon.indexArray.clear();\n this.featureSortOrder = [];\n for (var i$1 = 0, list = this.symbolInstanceIndexes; i$1 < list.length; i$1 += 1) {\n var i = list[i$1];\n var symbolInstance2 = this.symbolInstances.get(i);\n this.featureSortOrder.push(symbolInstance2.featureIndex);\n [\n symbolInstance2.rightJustifiedTextSymbolIndex,\n symbolInstance2.centerJustifiedTextSymbolIndex,\n symbolInstance2.leftJustifiedTextSymbolIndex\n ].forEach(function(index, i2, array2) {\n if (index >= 0 && array2.indexOf(index) === i2) {\n this$1.addIndicesForPlacedSymbol(this$1.text, index);\n }\n });\n if (symbolInstance2.verticalPlacedTextSymbolIndex >= 0) {\n this.addIndicesForPlacedSymbol(this.text, symbolInstance2.verticalPlacedTextSymbolIndex);\n }\n if (symbolInstance2.placedIconSymbolIndex >= 0) {\n this.addIndicesForPlacedSymbol(this.icon, symbolInstance2.placedIconSymbolIndex);\n }\n if (symbolInstance2.verticalPlacedIconSymbolIndex >= 0) {\n this.addIndicesForPlacedSymbol(this.icon, symbolInstance2.verticalPlacedIconSymbolIndex);\n }\n }\n if (this.text.indexBuffer) {\n this.text.indexBuffer.updateData(this.text.indexArray);\n }\n if (this.icon.indexBuffer) {\n this.icon.indexBuffer.updateData(this.icon.indexArray);\n }\n };\n register(\"SymbolBucket\", SymbolBucket, {\n omit: [\n \"layers\",\n \"collisionBoxArray\",\n \"features\",\n \"compareText\"\n ]\n });\n SymbolBucket.MAX_GLYPHS = 65535;\n SymbolBucket.addDynamicAttributes = addDynamicAttributes;\n function resolveTokens(properties2, text) {\n return text.replace(/{([^{}]+)}/g, function(match, key) {\n return key in properties2 ? String(properties2[key]) : \"\";\n });\n }\n var layout$7 = new Properties({\n \"symbol-placement\": new DataConstantProperty(spec[\"layout_symbol\"][\"symbol-placement\"]),\n \"symbol-spacing\": new DataConstantProperty(spec[\"layout_symbol\"][\"symbol-spacing\"]),\n \"symbol-avoid-edges\": new DataConstantProperty(spec[\"layout_symbol\"][\"symbol-avoid-edges\"]),\n \"symbol-sort-key\": new DataDrivenProperty(spec[\"layout_symbol\"][\"symbol-sort-key\"]),\n \"symbol-z-order\": new DataConstantProperty(spec[\"layout_symbol\"][\"symbol-z-order\"]),\n \"icon-allow-overlap\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-allow-overlap\"]),\n \"icon-ignore-placement\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-ignore-placement\"]),\n \"icon-optional\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-optional\"]),\n \"icon-rotation-alignment\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-rotation-alignment\"]),\n \"icon-size\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-size\"]),\n \"icon-text-fit\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-text-fit\"]),\n \"icon-text-fit-padding\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-text-fit-padding\"]),\n \"icon-image\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-image\"]),\n \"icon-rotate\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-rotate\"]),\n \"icon-padding\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-padding\"]),\n \"icon-keep-upright\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-keep-upright\"]),\n \"icon-offset\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-offset\"]),\n \"icon-anchor\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-anchor\"]),\n \"icon-pitch-alignment\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-pitch-alignment\"]),\n \"text-pitch-alignment\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-pitch-alignment\"]),\n \"text-rotation-alignment\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-rotation-alignment\"]),\n \"text-field\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-field\"]),\n \"text-font\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-font\"]),\n \"text-size\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-size\"]),\n \"text-max-width\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-max-width\"]),\n \"text-line-height\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-line-height\"]),\n \"text-letter-spacing\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-letter-spacing\"]),\n \"text-justify\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-justify\"]),\n \"text-radial-offset\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-radial-offset\"]),\n \"text-variable-anchor\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-variable-anchor\"]),\n \"text-anchor\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-anchor\"]),\n \"text-max-angle\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-max-angle\"]),\n \"text-writing-mode\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-writing-mode\"]),\n \"text-rotate\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-rotate\"]),\n \"text-padding\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-padding\"]),\n \"text-keep-upright\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-keep-upright\"]),\n \"text-transform\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-transform\"]),\n \"text-offset\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-offset\"]),\n \"text-allow-overlap\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-allow-overlap\"]),\n \"text-ignore-placement\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-ignore-placement\"]),\n \"text-optional\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-optional\"])\n });\n var paint$7 = new Properties({\n \"icon-opacity\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-opacity\"]),\n \"icon-color\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-color\"]),\n \"icon-halo-color\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-halo-color\"]),\n \"icon-halo-width\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-halo-width\"]),\n \"icon-halo-blur\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-halo-blur\"]),\n \"icon-translate\": new DataConstantProperty(spec[\"paint_symbol\"][\"icon-translate\"]),\n \"icon-translate-anchor\": new DataConstantProperty(spec[\"paint_symbol\"][\"icon-translate-anchor\"]),\n \"text-opacity\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-opacity\"]),\n \"text-color\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-color\"], {\n runtimeType: ColorType,\n getOverride: function(o) {\n return o.textColor;\n },\n hasOverride: function(o) {\n return !!o.textColor;\n }\n }),\n \"text-halo-color\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-halo-color\"]),\n \"text-halo-width\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-halo-width\"]),\n \"text-halo-blur\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-halo-blur\"]),\n \"text-translate\": new DataConstantProperty(spec[\"paint_symbol\"][\"text-translate\"]),\n \"text-translate-anchor\": new DataConstantProperty(spec[\"paint_symbol\"][\"text-translate-anchor\"])\n });\n var properties$6 = {\n paint: paint$7,\n layout: layout$7\n };\n var FormatSectionOverride = function FormatSectionOverride2(defaultValue) {\n this.type = defaultValue.property.overrides ? defaultValue.property.overrides.runtimeType : NullType;\n this.defaultValue = defaultValue;\n };\n FormatSectionOverride.prototype.evaluate = function evaluate(ctx) {\n if (ctx.formattedSection) {\n var overrides = this.defaultValue.property.overrides;\n if (overrides && overrides.hasOverride(ctx.formattedSection)) {\n return overrides.getOverride(ctx.formattedSection);\n }\n }\n if (ctx.feature && ctx.featureState) {\n return this.defaultValue.evaluate(ctx.feature, ctx.featureState);\n }\n return this.defaultValue.property.specification.default;\n };\n FormatSectionOverride.prototype.eachChild = function eachChild(fn) {\n if (!this.defaultValue.isConstant()) {\n var expr = this.defaultValue.value;\n fn(expr._styleExpression.expression);\n }\n };\n FormatSectionOverride.prototype.outputDefined = function outputDefined() {\n return false;\n };\n FormatSectionOverride.prototype.serialize = function serialize2() {\n return null;\n };\n register(\"FormatSectionOverride\", FormatSectionOverride, { omit: [\"defaultValue\"] });\n var SymbolStyleLayer = function(StyleLayer2) {\n function SymbolStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$6);\n }\n if (StyleLayer2)\n SymbolStyleLayer2.__proto__ = StyleLayer2;\n SymbolStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n SymbolStyleLayer2.prototype.constructor = SymbolStyleLayer2;\n SymbolStyleLayer2.prototype.recalculate = function recalculate(parameters, availableImages) {\n StyleLayer2.prototype.recalculate.call(this, parameters, availableImages);\n if (this.layout.get(\"icon-rotation-alignment\") === \"auto\") {\n if (this.layout.get(\"symbol-placement\") !== \"point\") {\n this.layout._values[\"icon-rotation-alignment\"] = \"map\";\n } else {\n this.layout._values[\"icon-rotation-alignment\"] = \"viewport\";\n }\n }\n if (this.layout.get(\"text-rotation-alignment\") === \"auto\") {\n if (this.layout.get(\"symbol-placement\") !== \"point\") {\n this.layout._values[\"text-rotation-alignment\"] = \"map\";\n } else {\n this.layout._values[\"text-rotation-alignment\"] = \"viewport\";\n }\n }\n if (this.layout.get(\"text-pitch-alignment\") === \"auto\") {\n this.layout._values[\"text-pitch-alignment\"] = this.layout.get(\"text-rotation-alignment\");\n }\n if (this.layout.get(\"icon-pitch-alignment\") === \"auto\") {\n this.layout._values[\"icon-pitch-alignment\"] = this.layout.get(\"icon-rotation-alignment\");\n }\n if (this.layout.get(\"symbol-placement\") === \"point\") {\n var writingModes = this.layout.get(\"text-writing-mode\");\n if (writingModes) {\n var deduped = [];\n for (var i = 0, list = writingModes; i < list.length; i += 1) {\n var m = list[i];\n if (deduped.indexOf(m) < 0) {\n deduped.push(m);\n }\n }\n this.layout._values[\"text-writing-mode\"] = deduped;\n } else {\n this.layout._values[\"text-writing-mode\"] = [\"horizontal\"];\n }\n }\n this._setPaintOverrides();\n };\n SymbolStyleLayer2.prototype.getValueAndResolveTokens = function getValueAndResolveTokens(name3, feature, canonical, availableImages) {\n var value = this.layout.get(name3).evaluate(feature, {}, canonical, availableImages);\n var unevaluated = this._unevaluatedLayout._values[name3];\n if (!unevaluated.isDataDriven() && !isExpression(unevaluated.value) && value) {\n return resolveTokens(feature.properties, value);\n }\n return value;\n };\n SymbolStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new SymbolBucket(parameters);\n };\n SymbolStyleLayer2.prototype.queryRadius = function queryRadius() {\n return 0;\n };\n SymbolStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature() {\n return false;\n };\n SymbolStyleLayer2.prototype._setPaintOverrides = function _setPaintOverrides() {\n for (var i = 0, list = properties$6.paint.overridableProperties; i < list.length; i += 1) {\n var overridable = list[i];\n if (!SymbolStyleLayer2.hasPaintOverride(this.layout, overridable)) {\n continue;\n }\n var overriden = this.paint.get(overridable);\n var override = new FormatSectionOverride(overriden);\n var styleExpression = new StyleExpression(override, overriden.property.specification);\n var expression2 = null;\n if (overriden.value.kind === \"constant\" || overriden.value.kind === \"source\") {\n expression2 = new ZoomConstantExpression(\"source\", styleExpression);\n } else {\n expression2 = new ZoomDependentExpression(\"composite\", styleExpression, overriden.value.zoomStops, overriden.value._interpolationType);\n }\n this.paint._values[overridable] = new PossiblyEvaluatedPropertyValue(overriden.property, expression2, overriden.parameters);\n }\n };\n SymbolStyleLayer2.prototype._handleOverridablePaintPropertyUpdate = function _handleOverridablePaintPropertyUpdate(name3, oldValue, newValue) {\n if (!this.layout || oldValue.isDataDriven() || newValue.isDataDriven()) {\n return false;\n }\n return SymbolStyleLayer2.hasPaintOverride(this.layout, name3);\n };\n SymbolStyleLayer2.hasPaintOverride = function hasPaintOverride(layout2, propertyName) {\n var textField = layout2.get(\"text-field\");\n var property = properties$6.paint.properties[propertyName];\n var hasOverrides = false;\n var checkSections = function(sections) {\n for (var i = 0, list = sections; i < list.length; i += 1) {\n var section = list[i];\n if (property.overrides && property.overrides.hasOverride(section)) {\n hasOverrides = true;\n return;\n }\n }\n };\n if (textField.value.kind === \"constant\" && textField.value.value instanceof Formatted) {\n checkSections(textField.value.value.sections);\n } else if (textField.value.kind === \"source\") {\n var checkExpression = function(expression2) {\n if (hasOverrides) {\n return;\n }\n if (expression2 instanceof Literal && typeOf(expression2.value) === FormattedType) {\n var formatted = expression2.value;\n checkSections(formatted.sections);\n } else if (expression2 instanceof FormatExpression) {\n checkSections(expression2.sections);\n } else {\n expression2.eachChild(checkExpression);\n }\n };\n var expr = textField.value;\n if (expr._styleExpression) {\n checkExpression(expr._styleExpression.expression);\n }\n }\n return hasOverrides;\n };\n return SymbolStyleLayer2;\n }(StyleLayer);\n var paint$8 = new Properties({\n \"background-color\": new DataConstantProperty(spec[\"paint_background\"][\"background-color\"]),\n \"background-pattern\": new CrossFadedProperty(spec[\"paint_background\"][\"background-pattern\"]),\n \"background-opacity\": new DataConstantProperty(spec[\"paint_background\"][\"background-opacity\"])\n });\n var properties$7 = { paint: paint$8 };\n var BackgroundStyleLayer = function(StyleLayer2) {\n function BackgroundStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$7);\n }\n if (StyleLayer2)\n BackgroundStyleLayer2.__proto__ = StyleLayer2;\n BackgroundStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n BackgroundStyleLayer2.prototype.constructor = BackgroundStyleLayer2;\n return BackgroundStyleLayer2;\n }(StyleLayer);\n var paint$9 = new Properties({\n \"raster-opacity\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-opacity\"]),\n \"raster-hue-rotate\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-hue-rotate\"]),\n \"raster-brightness-min\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-brightness-min\"]),\n \"raster-brightness-max\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-brightness-max\"]),\n \"raster-saturation\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-saturation\"]),\n \"raster-contrast\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-contrast\"]),\n \"raster-resampling\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-resampling\"]),\n \"raster-fade-duration\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-fade-duration\"])\n });\n var properties$8 = { paint: paint$9 };\n var RasterStyleLayer = function(StyleLayer2) {\n function RasterStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$8);\n }\n if (StyleLayer2)\n RasterStyleLayer2.__proto__ = StyleLayer2;\n RasterStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n RasterStyleLayer2.prototype.constructor = RasterStyleLayer2;\n return RasterStyleLayer2;\n }(StyleLayer);\n function validateCustomStyleLayer(layerObject) {\n var errors = [];\n var id2 = layerObject.id;\n if (id2 === void 0) {\n errors.push({ message: \"layers.\" + id2 + ': missing required property \"id\"' });\n }\n if (layerObject.render === void 0) {\n errors.push({ message: \"layers.\" + id2 + ': missing required method \"render\"' });\n }\n if (layerObject.renderingMode && layerObject.renderingMode !== \"2d\" && layerObject.renderingMode !== \"3d\") {\n errors.push({ message: \"layers.\" + id2 + ': property \"renderingMode\" must be either \"2d\" or \"3d\"' });\n }\n return errors;\n }\n var CustomStyleLayer = function(StyleLayer2) {\n function CustomStyleLayer2(implementation) {\n StyleLayer2.call(this, implementation, {});\n this.implementation = implementation;\n }\n if (StyleLayer2)\n CustomStyleLayer2.__proto__ = StyleLayer2;\n CustomStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n CustomStyleLayer2.prototype.constructor = CustomStyleLayer2;\n CustomStyleLayer2.prototype.is3D = function is3D() {\n return this.implementation.renderingMode === \"3d\";\n };\n CustomStyleLayer2.prototype.hasOffscreenPass = function hasOffscreenPass() {\n return this.implementation.prerender !== void 0;\n };\n CustomStyleLayer2.prototype.recalculate = function recalculate() {\n };\n CustomStyleLayer2.prototype.updateTransitions = function updateTransitions() {\n };\n CustomStyleLayer2.prototype.hasTransition = function hasTransition() {\n };\n CustomStyleLayer2.prototype.serialize = function serialize2() {\n };\n CustomStyleLayer2.prototype.onAdd = function onAdd(map) {\n if (this.implementation.onAdd) {\n this.implementation.onAdd(map, map.painter.context.gl);\n }\n };\n CustomStyleLayer2.prototype.onRemove = function onRemove(map) {\n if (this.implementation.onRemove) {\n this.implementation.onRemove(map, map.painter.context.gl);\n }\n };\n return CustomStyleLayer2;\n }(StyleLayer);\n var subclasses = {\n circle: CircleStyleLayer,\n heatmap: HeatmapStyleLayer,\n hillshade: HillshadeStyleLayer,\n fill: FillStyleLayer,\n \"fill-extrusion\": FillExtrusionStyleLayer,\n line: LineStyleLayer,\n symbol: SymbolStyleLayer,\n background: BackgroundStyleLayer,\n raster: RasterStyleLayer\n };\n function createStyleLayer(layer2) {\n if (layer2.type === \"custom\") {\n return new CustomStyleLayer(layer2);\n } else {\n return new subclasses[layer2.type](layer2);\n }\n }\n var HTMLImageElement2 = window$1.HTMLImageElement;\n var HTMLCanvasElement2 = window$1.HTMLCanvasElement;\n var HTMLVideoElement2 = window$1.HTMLVideoElement;\n var ImageData$1 = window$1.ImageData;\n var ImageBitmap$1 = window$1.ImageBitmap;\n var Texture = function Texture2(context, image, format, options) {\n this.context = context;\n this.format = format;\n this.texture = context.gl.createTexture();\n this.update(image, options);\n };\n Texture.prototype.update = function update(image, options, position) {\n var width = image.width;\n var height = image.height;\n var resize = (!this.size || this.size[0] !== width || this.size[1] !== height) && !position;\n var ref = this;\n var context = ref.context;\n var gl2 = context.gl;\n this.useMipmap = Boolean(options && options.useMipmap);\n gl2.bindTexture(gl2.TEXTURE_2D, this.texture);\n context.pixelStoreUnpackFlipY.set(false);\n context.pixelStoreUnpack.set(1);\n context.pixelStoreUnpackPremultiplyAlpha.set(this.format === gl2.RGBA && (!options || options.premultiply !== false));\n if (resize) {\n this.size = [\n width,\n height\n ];\n if (image instanceof HTMLImageElement2 || image instanceof HTMLCanvasElement2 || image instanceof HTMLVideoElement2 || image instanceof ImageData$1 || ImageBitmap$1 && image instanceof ImageBitmap$1) {\n gl2.texImage2D(gl2.TEXTURE_2D, 0, this.format, this.format, gl2.UNSIGNED_BYTE, image);\n } else {\n gl2.texImage2D(gl2.TEXTURE_2D, 0, this.format, width, height, 0, this.format, gl2.UNSIGNED_BYTE, image.data);\n }\n } else {\n var ref$1 = position || {\n x: 0,\n y: 0\n };\n var x = ref$1.x;\n var y = ref$1.y;\n if (image instanceof HTMLImageElement2 || image instanceof HTMLCanvasElement2 || image instanceof HTMLVideoElement2 || image instanceof ImageData$1 || ImageBitmap$1 && image instanceof ImageBitmap$1) {\n gl2.texSubImage2D(gl2.TEXTURE_2D, 0, x, y, gl2.RGBA, gl2.UNSIGNED_BYTE, image);\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, 0, x, y, width, height, gl2.RGBA, gl2.UNSIGNED_BYTE, image.data);\n }\n }\n if (this.useMipmap && this.isSizePowerOfTwo()) {\n gl2.generateMipmap(gl2.TEXTURE_2D);\n }\n };\n Texture.prototype.bind = function bind(filter2, wrap2, minFilter) {\n var ref = this;\n var context = ref.context;\n var gl2 = context.gl;\n gl2.bindTexture(gl2.TEXTURE_2D, this.texture);\n if (minFilter === gl2.LINEAR_MIPMAP_NEAREST && !this.isSizePowerOfTwo()) {\n minFilter = gl2.LINEAR;\n }\n if (filter2 !== this.filter) {\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, filter2);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, minFilter || filter2);\n this.filter = filter2;\n }\n if (wrap2 !== this.wrap) {\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, wrap2);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, wrap2);\n this.wrap = wrap2;\n }\n };\n Texture.prototype.isSizePowerOfTwo = function isSizePowerOfTwo() {\n return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 === 0;\n };\n Texture.prototype.destroy = function destroy() {\n var ref = this.context;\n var gl2 = ref.gl;\n gl2.deleteTexture(this.texture);\n this.texture = null;\n };\n var ThrottledInvoker = function ThrottledInvoker2(callback) {\n var this$1 = this;\n this._callback = callback;\n this._triggered = false;\n if (typeof MessageChannel !== \"undefined\") {\n this._channel = new MessageChannel();\n this._channel.port2.onmessage = function() {\n this$1._triggered = false;\n this$1._callback();\n };\n }\n };\n ThrottledInvoker.prototype.trigger = function trigger() {\n var this$1 = this;\n if (!this._triggered) {\n this._triggered = true;\n if (this._channel) {\n this._channel.port1.postMessage(true);\n } else {\n setTimeout(function() {\n this$1._triggered = false;\n this$1._callback();\n }, 0);\n }\n }\n };\n ThrottledInvoker.prototype.remove = function remove() {\n delete this._channel;\n this._callback = function() {\n };\n };\n var Actor = function Actor2(target, parent, mapId) {\n this.target = target;\n this.parent = parent;\n this.mapId = mapId;\n this.callbacks = {};\n this.tasks = {};\n this.taskQueue = [];\n this.cancelCallbacks = {};\n bindAll([\n \"receive\",\n \"process\"\n ], this);\n this.invoker = new ThrottledInvoker(this.process);\n this.target.addEventListener(\"message\", this.receive, false);\n this.globalScope = isWorker() ? target : window$1;\n };\n Actor.prototype.send = function send(type, data, callback, targetMapId, mustQueue) {\n var this$1 = this;\n if (mustQueue === void 0)\n mustQueue = false;\n var id2 = Math.round(Math.random() * 1e18).toString(36).substring(0, 10);\n if (callback) {\n this.callbacks[id2] = callback;\n }\n var buffers = isSafari(this.globalScope) ? void 0 : [];\n this.target.postMessage({\n id: id2,\n type,\n hasCallback: !!callback,\n targetMapId,\n mustQueue,\n sourceMapId: this.mapId,\n data: serialize(data, buffers)\n }, buffers);\n return {\n cancel: function() {\n if (callback) {\n delete this$1.callbacks[id2];\n }\n this$1.target.postMessage({\n id: id2,\n type: \"\",\n targetMapId,\n sourceMapId: this$1.mapId\n });\n }\n };\n };\n Actor.prototype.receive = function receive(message) {\n var data = message.data, id2 = data.id;\n if (!id2) {\n return;\n }\n if (data.targetMapId && this.mapId !== data.targetMapId) {\n return;\n }\n if (data.type === \"\") {\n delete this.tasks[id2];\n var cancel2 = this.cancelCallbacks[id2];\n delete this.cancelCallbacks[id2];\n if (cancel2) {\n cancel2();\n }\n } else {\n if (isWorker() || data.mustQueue) {\n this.tasks[id2] = data;\n this.taskQueue.push(id2);\n this.invoker.trigger();\n } else {\n this.processTask(id2, data);\n }\n }\n };\n Actor.prototype.process = function process2() {\n if (!this.taskQueue.length) {\n return;\n }\n var id2 = this.taskQueue.shift();\n var task = this.tasks[id2];\n delete this.tasks[id2];\n if (this.taskQueue.length) {\n this.invoker.trigger();\n }\n if (!task) {\n return;\n }\n this.processTask(id2, task);\n };\n Actor.prototype.processTask = function processTask(id2, task) {\n var this$1 = this;\n if (task.type === \"\") {\n var callback = this.callbacks[id2];\n delete this.callbacks[id2];\n if (callback) {\n if (task.error) {\n callback(deserialize(task.error));\n } else {\n callback(null, deserialize(task.data));\n }\n }\n } else {\n var completed = false;\n var buffers = isSafari(this.globalScope) ? void 0 : [];\n var done = task.hasCallback ? function(err, data) {\n completed = true;\n delete this$1.cancelCallbacks[id2];\n this$1.target.postMessage({\n id: id2,\n type: \"\",\n sourceMapId: this$1.mapId,\n error: err ? serialize(err) : null,\n data: serialize(data, buffers)\n }, buffers);\n } : function(_) {\n completed = true;\n };\n var callback$1 = null;\n var params = deserialize(task.data);\n if (this.parent[task.type]) {\n callback$1 = this.parent[task.type](task.sourceMapId, params, done);\n } else if (this.parent.getWorkerSource) {\n var keys = task.type.split(\".\");\n var scope = this.parent.getWorkerSource(task.sourceMapId, keys[0], params.source);\n callback$1 = scope[keys[1]](params, done);\n } else {\n done(new Error(\"Could not find function \" + task.type));\n }\n if (!completed && callback$1 && callback$1.cancel) {\n this.cancelCallbacks[id2] = callback$1.cancel;\n }\n }\n };\n Actor.prototype.remove = function remove() {\n this.invoker.remove();\n this.target.removeEventListener(\"message\", this.receive, false);\n };\n function getTileBBox(x, y, z) {\n y = Math.pow(2, z) - y - 1;\n var min = getMercCoords(x * 256, y * 256, z), max = getMercCoords((x + 1) * 256, (y + 1) * 256, z);\n return min[0] + \",\" + min[1] + \",\" + max[0] + \",\" + max[1];\n }\n function getMercCoords(x, y, z) {\n var resolution = 2 * Math.PI * 6378137 / 256 / Math.pow(2, z), merc_x = x * resolution - 2 * Math.PI * 6378137 / 2, merc_y = y * resolution - 2 * Math.PI * 6378137 / 2;\n return [merc_x, merc_y];\n }\n var LngLatBounds = function LngLatBounds2(sw, ne) {\n if (!sw) ;\n else if (ne) {\n this.setSouthWest(sw).setNorthEast(ne);\n } else if (sw.length === 4) {\n this.setSouthWest([\n sw[0],\n sw[1]\n ]).setNorthEast([\n sw[2],\n sw[3]\n ]);\n } else {\n this.setSouthWest(sw[0]).setNorthEast(sw[1]);\n }\n };\n LngLatBounds.prototype.setNorthEast = function setNorthEast(ne) {\n this._ne = ne instanceof LngLat ? new LngLat(ne.lng, ne.lat) : LngLat.convert(ne);\n return this;\n };\n LngLatBounds.prototype.setSouthWest = function setSouthWest(sw) {\n this._sw = sw instanceof LngLat ? new LngLat(sw.lng, sw.lat) : LngLat.convert(sw);\n return this;\n };\n LngLatBounds.prototype.extend = function extend3(obj) {\n var sw = this._sw, ne = this._ne;\n var sw2, ne2;\n if (obj instanceof LngLat) {\n sw2 = obj;\n ne2 = obj;\n } else if (obj instanceof LngLatBounds) {\n sw2 = obj._sw;\n ne2 = obj._ne;\n if (!sw2 || !ne2) {\n return this;\n }\n } else {\n if (Array.isArray(obj)) {\n if (obj.length === 4 || obj.every(Array.isArray)) {\n var lngLatBoundsObj = obj;\n return this.extend(LngLatBounds.convert(lngLatBoundsObj));\n } else {\n var lngLatObj = obj;\n return this.extend(LngLat.convert(lngLatObj));\n }\n }\n return this;\n }\n if (!sw && !ne) {\n this._sw = new LngLat(sw2.lng, sw2.lat);\n this._ne = new LngLat(ne2.lng, ne2.lat);\n } else {\n sw.lng = Math.min(sw2.lng, sw.lng);\n sw.lat = Math.min(sw2.lat, sw.lat);\n ne.lng = Math.max(ne2.lng, ne.lng);\n ne.lat = Math.max(ne2.lat, ne.lat);\n }\n return this;\n };\n LngLatBounds.prototype.getCenter = function getCenter() {\n return new LngLat((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2);\n };\n LngLatBounds.prototype.getSouthWest = function getSouthWest() {\n return this._sw;\n };\n LngLatBounds.prototype.getNorthEast = function getNorthEast() {\n return this._ne;\n };\n LngLatBounds.prototype.getNorthWest = function getNorthWest() {\n return new LngLat(this.getWest(), this.getNorth());\n };\n LngLatBounds.prototype.getSouthEast = function getSouthEast() {\n return new LngLat(this.getEast(), this.getSouth());\n };\n LngLatBounds.prototype.getWest = function getWest() {\n return this._sw.lng;\n };\n LngLatBounds.prototype.getSouth = function getSouth() {\n return this._sw.lat;\n };\n LngLatBounds.prototype.getEast = function getEast() {\n return this._ne.lng;\n };\n LngLatBounds.prototype.getNorth = function getNorth() {\n return this._ne.lat;\n };\n LngLatBounds.prototype.toArray = function toArray() {\n return [\n this._sw.toArray(),\n this._ne.toArray()\n ];\n };\n LngLatBounds.prototype.toString = function toString2() {\n return \"LngLatBounds(\" + this._sw.toString() + \", \" + this._ne.toString() + \")\";\n };\n LngLatBounds.prototype.isEmpty = function isEmpty2() {\n return !(this._sw && this._ne);\n };\n LngLatBounds.prototype.contains = function contains(lnglat) {\n var ref = LngLat.convert(lnglat);\n var lng = ref.lng;\n var lat = ref.lat;\n var containsLatitude = this._sw.lat <= lat && lat <= this._ne.lat;\n var containsLongitude = this._sw.lng <= lng && lng <= this._ne.lng;\n if (this._sw.lng > this._ne.lng) {\n containsLongitude = this._sw.lng >= lng && lng >= this._ne.lng;\n }\n return containsLatitude && containsLongitude;\n };\n LngLatBounds.convert = function convert(input) {\n if (!input || input instanceof LngLatBounds) {\n return input;\n }\n return new LngLatBounds(input);\n };\n var earthRadius = 63710088e-1;\n var LngLat = function LngLat2(lng, lat) {\n if (isNaN(lng) || isNaN(lat)) {\n throw new Error(\"Invalid LngLat object: (\" + lng + \", \" + lat + \")\");\n }\n this.lng = +lng;\n this.lat = +lat;\n if (this.lat > 90 || this.lat < -90) {\n throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\");\n }\n };\n LngLat.prototype.wrap = function wrap$1() {\n return new LngLat(wrap(this.lng, -180, 180), this.lat);\n };\n LngLat.prototype.toArray = function toArray() {\n return [\n this.lng,\n this.lat\n ];\n };\n LngLat.prototype.toString = function toString2() {\n return \"LngLat(\" + this.lng + \", \" + this.lat + \")\";\n };\n LngLat.prototype.distanceTo = function distanceTo(lngLat) {\n var rad = Math.PI / 180;\n var lat1 = this.lat * rad;\n var lat2 = lngLat.lat * rad;\n var a = Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos((lngLat.lng - this.lng) * rad);\n var maxMeters = earthRadius * Math.acos(Math.min(a, 1));\n return maxMeters;\n };\n LngLat.prototype.toBounds = function toBounds(radius) {\n if (radius === void 0)\n radius = 0;\n var earthCircumferenceInMetersAtEquator = 40075017;\n var latAccuracy = 360 * radius / earthCircumferenceInMetersAtEquator, lngAccuracy = latAccuracy / Math.cos(Math.PI / 180 * this.lat);\n return new LngLatBounds(new LngLat(this.lng - lngAccuracy, this.lat - latAccuracy), new LngLat(this.lng + lngAccuracy, this.lat + latAccuracy));\n };\n LngLat.convert = function convert(input) {\n if (input instanceof LngLat) {\n return input;\n }\n if (Array.isArray(input) && (input.length === 2 || input.length === 3)) {\n return new LngLat(Number(input[0]), Number(input[1]));\n }\n if (!Array.isArray(input) && typeof input === \"object\" && input !== null) {\n return new LngLat(Number(\"lng\" in input ? input.lng : input.lon), Number(input.lat));\n }\n throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]\");\n };\n var earthCircumfrence = 2 * Math.PI * earthRadius;\n function circumferenceAtLatitude(latitude) {\n return earthCircumfrence * Math.cos(latitude * Math.PI / 180);\n }\n function mercatorXfromLng$1(lng) {\n return (180 + lng) / 360;\n }\n function mercatorYfromLat$1(lat) {\n return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + lat * Math.PI / 360))) / 360;\n }\n function mercatorZfromAltitude(altitude, lat) {\n return altitude / circumferenceAtLatitude(lat);\n }\n function lngFromMercatorX(x) {\n return x * 360 - 180;\n }\n function latFromMercatorY(y) {\n var y2 = 180 - y * 360;\n return 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;\n }\n function altitudeFromMercatorZ(z, y) {\n return z * circumferenceAtLatitude(latFromMercatorY(y));\n }\n function mercatorScale(lat) {\n return 1 / Math.cos(lat * Math.PI / 180);\n }\n var MercatorCoordinate = function MercatorCoordinate2(x, y, z) {\n if (z === void 0)\n z = 0;\n this.x = +x;\n this.y = +y;\n this.z = +z;\n };\n MercatorCoordinate.fromLngLat = function fromLngLat(lngLatLike, altitude) {\n if (altitude === void 0)\n altitude = 0;\n var lngLat = LngLat.convert(lngLatLike);\n return new MercatorCoordinate(mercatorXfromLng$1(lngLat.lng), mercatorYfromLat$1(lngLat.lat), mercatorZfromAltitude(altitude, lngLat.lat));\n };\n MercatorCoordinate.prototype.toLngLat = function toLngLat() {\n return new LngLat(lngFromMercatorX(this.x), latFromMercatorY(this.y));\n };\n MercatorCoordinate.prototype.toAltitude = function toAltitude() {\n return altitudeFromMercatorZ(this.z, this.y);\n };\n MercatorCoordinate.prototype.meterInMercatorCoordinateUnits = function meterInMercatorCoordinateUnits() {\n return 1 / earthCircumfrence * mercatorScale(latFromMercatorY(this.y));\n };\n var CanonicalTileID = function CanonicalTileID2(z, x, y) {\n this.z = z;\n this.x = x;\n this.y = y;\n this.key = calculateKey(0, z, z, x, y);\n };\n CanonicalTileID.prototype.equals = function equals2(id2) {\n return this.z === id2.z && this.x === id2.x && this.y === id2.y;\n };\n CanonicalTileID.prototype.url = function url(urls, scheme) {\n var bbox = getTileBBox(this.x, this.y, this.z);\n var quadkey = getQuadkey(this.z, this.x, this.y);\n return urls[(this.x + this.y) % urls.length].replace(\"{prefix}\", (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(\"{z}\", String(this.z)).replace(\"{x}\", String(this.x)).replace(\"{y}\", String(scheme === \"tms\" ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(\"{quadkey}\", quadkey).replace(\"{bbox-epsg-3857}\", bbox);\n };\n CanonicalTileID.prototype.getTilePoint = function getTilePoint(coord) {\n var tilesAtZoom = Math.pow(2, this.z);\n return new pointGeometry((coord.x * tilesAtZoom - this.x) * EXTENT$1, (coord.y * tilesAtZoom - this.y) * EXTENT$1);\n };\n CanonicalTileID.prototype.toString = function toString2() {\n return this.z + \"/\" + this.x + \"/\" + this.y;\n };\n var UnwrappedTileID = function UnwrappedTileID2(wrap2, canonical) {\n this.wrap = wrap2;\n this.canonical = canonical;\n this.key = calculateKey(wrap2, canonical.z, canonical.z, canonical.x, canonical.y);\n };\n var OverscaledTileID = function OverscaledTileID2(overscaledZ, wrap2, z, x, y) {\n this.overscaledZ = overscaledZ;\n this.wrap = wrap2;\n this.canonical = new CanonicalTileID(z, +x, +y);\n this.key = calculateKey(wrap2, overscaledZ, z, x, y);\n };\n OverscaledTileID.prototype.equals = function equals2(id2) {\n return this.overscaledZ === id2.overscaledZ && this.wrap === id2.wrap && this.canonical.equals(id2.canonical);\n };\n OverscaledTileID.prototype.scaledTo = function scaledTo(targetZ) {\n var zDifference = this.canonical.z - targetZ;\n if (targetZ > this.canonical.z) {\n return new OverscaledTileID(targetZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y);\n } else {\n return new OverscaledTileID(targetZ, this.wrap, targetZ, this.canonical.x >> zDifference, this.canonical.y >> zDifference);\n }\n };\n OverscaledTileID.prototype.calculateScaledKey = function calculateScaledKey(targetZ, withWrap) {\n var zDifference = this.canonical.z - targetZ;\n if (targetZ > this.canonical.z) {\n return calculateKey(this.wrap * +withWrap, targetZ, this.canonical.z, this.canonical.x, this.canonical.y);\n } else {\n return calculateKey(this.wrap * +withWrap, targetZ, targetZ, this.canonical.x >> zDifference, this.canonical.y >> zDifference);\n }\n };\n OverscaledTileID.prototype.isChildOf = function isChildOf(parent) {\n if (parent.wrap !== this.wrap) {\n return false;\n }\n var zDifference = this.canonical.z - parent.canonical.z;\n return parent.overscaledZ === 0 || parent.overscaledZ < this.overscaledZ && parent.canonical.x === this.canonical.x >> zDifference && parent.canonical.y === this.canonical.y >> zDifference;\n };\n OverscaledTileID.prototype.children = function children(sourceMaxZoom) {\n if (this.overscaledZ >= sourceMaxZoom) {\n return [new OverscaledTileID(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)];\n }\n var z = this.canonical.z + 1;\n var x = this.canonical.x * 2;\n var y = this.canonical.y * 2;\n return [\n new OverscaledTileID(z, this.wrap, z, x, y),\n new OverscaledTileID(z, this.wrap, z, x + 1, y),\n new OverscaledTileID(z, this.wrap, z, x, y + 1),\n new OverscaledTileID(z, this.wrap, z, x + 1, y + 1)\n ];\n };\n OverscaledTileID.prototype.isLessThan = function isLessThan(rhs) {\n if (this.wrap < rhs.wrap) {\n return true;\n }\n if (this.wrap > rhs.wrap) {\n return false;\n }\n if (this.overscaledZ < rhs.overscaledZ) {\n return true;\n }\n if (this.overscaledZ > rhs.overscaledZ) {\n return false;\n }\n if (this.canonical.x < rhs.canonical.x) {\n return true;\n }\n if (this.canonical.x > rhs.canonical.x) {\n return false;\n }\n if (this.canonical.y < rhs.canonical.y) {\n return true;\n }\n return false;\n };\n OverscaledTileID.prototype.wrapped = function wrapped() {\n return new OverscaledTileID(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y);\n };\n OverscaledTileID.prototype.unwrapTo = function unwrapTo(wrap2) {\n return new OverscaledTileID(this.overscaledZ, wrap2, this.canonical.z, this.canonical.x, this.canonical.y);\n };\n OverscaledTileID.prototype.overscaleFactor = function overscaleFactor() {\n return Math.pow(2, this.overscaledZ - this.canonical.z);\n };\n OverscaledTileID.prototype.toUnwrapped = function toUnwrapped() {\n return new UnwrappedTileID(this.wrap, this.canonical);\n };\n OverscaledTileID.prototype.toString = function toString2() {\n return this.overscaledZ + \"/\" + this.canonical.x + \"/\" + this.canonical.y;\n };\n OverscaledTileID.prototype.getTilePoint = function getTilePoint(coord) {\n return this.canonical.getTilePoint(new MercatorCoordinate(coord.x - this.wrap, coord.y));\n };\n function calculateKey(wrap2, overscaledZ, z, x, y) {\n wrap2 *= 2;\n if (wrap2 < 0) {\n wrap2 = wrap2 * -1 - 1;\n }\n var dim = 1 << z;\n return (dim * dim * wrap2 + dim * y + x).toString(36) + z.toString(36) + overscaledZ.toString(36);\n }\n function getQuadkey(z, x, y) {\n var quadkey = \"\", mask;\n for (var i = z; i > 0; i--) {\n mask = 1 << i - 1;\n quadkey += (x & mask ? 1 : 0) + (y & mask ? 2 : 0);\n }\n return quadkey;\n }\n register(\"CanonicalTileID\", CanonicalTileID);\n register(\"OverscaledTileID\", OverscaledTileID, { omit: [\"posMatrix\"] });\n var DEMData = function DEMData2(uid, data, encoding) {\n this.uid = uid;\n if (data.height !== data.width) {\n throw new RangeError(\"DEM tiles must be square\");\n }\n if (encoding && encoding !== \"mapbox\" && encoding !== \"terrarium\") {\n return warnOnce('\"' + encoding + '\" is not a valid encoding type. Valid types include \"mapbox\" and \"terrarium\".');\n }\n this.stride = data.height;\n var dim = this.dim = data.height - 2;\n this.data = new Uint32Array(data.data.buffer);\n this.encoding = encoding || \"mapbox\";\n for (var x = 0; x < dim; x++) {\n this.data[this._idx(-1, x)] = this.data[this._idx(0, x)];\n this.data[this._idx(dim, x)] = this.data[this._idx(dim - 1, x)];\n this.data[this._idx(x, -1)] = this.data[this._idx(x, 0)];\n this.data[this._idx(x, dim)] = this.data[this._idx(x, dim - 1)];\n }\n this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)];\n this.data[this._idx(dim, -1)] = this.data[this._idx(dim - 1, 0)];\n this.data[this._idx(-1, dim)] = this.data[this._idx(0, dim - 1)];\n this.data[this._idx(dim, dim)] = this.data[this._idx(dim - 1, dim - 1)];\n };\n DEMData.prototype.get = function get2(x, y) {\n var pixels = new Uint8Array(this.data.buffer);\n var index = this._idx(x, y) * 4;\n var unpack = this.encoding === \"terrarium\" ? this._unpackTerrarium : this._unpackMapbox;\n return unpack(pixels[index], pixels[index + 1], pixels[index + 2]);\n };\n DEMData.prototype.getUnpackVector = function getUnpackVector() {\n return this.encoding === \"terrarium\" ? [\n 256,\n 1,\n 1 / 256,\n 32768\n ] : [\n 6553.6,\n 25.6,\n 0.1,\n 1e4\n ];\n };\n DEMData.prototype._idx = function _idx(x, y) {\n if (x < -1 || x >= this.dim + 1 || y < -1 || y >= this.dim + 1) {\n throw new RangeError(\"out of range source coordinates for DEM data\");\n }\n return (y + 1) * this.stride + (x + 1);\n };\n DEMData.prototype._unpackMapbox = function _unpackMapbox(r, g, b) {\n return (r * 256 * 256 + g * 256 + b) / 10 - 1e4;\n };\n DEMData.prototype._unpackTerrarium = function _unpackTerrarium(r, g, b) {\n return r * 256 + g + b / 256 - 32768;\n };\n DEMData.prototype.getPixels = function getPixels() {\n return new RGBAImage({\n width: this.stride,\n height: this.stride\n }, new Uint8Array(this.data.buffer));\n };\n DEMData.prototype.backfillBorder = function backfillBorder(borderTile, dx, dy) {\n if (this.dim !== borderTile.dim) {\n throw new Error(\"dem dimension mismatch\");\n }\n var xMin = dx * this.dim, xMax = dx * this.dim + this.dim, yMin = dy * this.dim, yMax = dy * this.dim + this.dim;\n switch (dx) {\n case -1:\n xMin = xMax - 1;\n break;\n case 1:\n xMax = xMin + 1;\n break;\n }\n switch (dy) {\n case -1:\n yMin = yMax - 1;\n break;\n case 1:\n yMax = yMin + 1;\n break;\n }\n var ox = -dx * this.dim;\n var oy = -dy * this.dim;\n for (var y = yMin; y < yMax; y++) {\n for (var x = xMin; x < xMax; x++) {\n this.data[this._idx(x, y)] = borderTile.data[this._idx(x + ox, y + oy)];\n }\n }\n };\n register(\"DEMData\", DEMData);\n function deserialize$1(input, style) {\n var output = {};\n if (!style) {\n return output;\n }\n var loop = function() {\n var bucket = list$1[i$1];\n var layers = bucket.layerIds.map(function(id2) {\n return style.getLayer(id2);\n }).filter(Boolean);\n if (layers.length === 0) {\n return;\n }\n bucket.layers = layers;\n if (bucket.stateDependentLayerIds) {\n bucket.stateDependentLayers = bucket.stateDependentLayerIds.map(function(lId) {\n return layers.filter(function(l) {\n return l.id === lId;\n })[0];\n });\n }\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n output[layer2.id] = bucket;\n }\n };\n for (var i$1 = 0, list$1 = input; i$1 < list$1.length; i$1 += 1)\n loop();\n return output;\n }\n var DictionaryCoder = function DictionaryCoder2(strings) {\n this._stringToNumber = {};\n this._numberToString = [];\n for (var i = 0; i < strings.length; i++) {\n var string = strings[i];\n this._stringToNumber[string] = i;\n this._numberToString[i] = string;\n }\n };\n DictionaryCoder.prototype.encode = function encode(string) {\n return this._stringToNumber[string];\n };\n DictionaryCoder.prototype.decode = function decode(n) {\n return this._numberToString[n];\n };\n var Feature = function Feature2(vectorTileFeature, z, x, y, id2) {\n this.type = \"Feature\";\n this._vectorTileFeature = vectorTileFeature;\n vectorTileFeature._z = z;\n vectorTileFeature._x = x;\n vectorTileFeature._y = y;\n this.properties = vectorTileFeature.properties;\n this.id = id2;\n };\n var prototypeAccessors$1 = { geometry: { configurable: true } };\n prototypeAccessors$1.geometry.get = function() {\n if (this._geometry === void 0) {\n this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry;\n }\n return this._geometry;\n };\n prototypeAccessors$1.geometry.set = function(g) {\n this._geometry = g;\n };\n Feature.prototype.toJSON = function toJSON() {\n var json = { geometry: this.geometry };\n for (var i in this) {\n if (i === \"_geometry\" || i === \"_vectorTileFeature\") {\n continue;\n }\n json[i] = this[i];\n }\n return json;\n };\n Object.defineProperties(Feature.prototype, prototypeAccessors$1);\n var SourceFeatureState = function SourceFeatureState2() {\n this.state = {};\n this.stateChanges = {};\n this.deletedStates = {};\n };\n SourceFeatureState.prototype.updateState = function updateState(sourceLayer, featureId, newState) {\n var feature = String(featureId);\n this.stateChanges[sourceLayer] = this.stateChanges[sourceLayer] || {};\n this.stateChanges[sourceLayer][feature] = this.stateChanges[sourceLayer][feature] || {};\n extend2(this.stateChanges[sourceLayer][feature], newState);\n if (this.deletedStates[sourceLayer] === null) {\n this.deletedStates[sourceLayer] = {};\n for (var ft in this.state[sourceLayer]) {\n if (ft !== feature) {\n this.deletedStates[sourceLayer][ft] = null;\n }\n }\n } else {\n var featureDeletionQueued = this.deletedStates[sourceLayer] && this.deletedStates[sourceLayer][feature] === null;\n if (featureDeletionQueued) {\n this.deletedStates[sourceLayer][feature] = {};\n for (var prop in this.state[sourceLayer][feature]) {\n if (!newState[prop]) {\n this.deletedStates[sourceLayer][feature][prop] = null;\n }\n }\n } else {\n for (var key in newState) {\n var deletionInQueue = this.deletedStates[sourceLayer] && this.deletedStates[sourceLayer][feature] && this.deletedStates[sourceLayer][feature][key] === null;\n if (deletionInQueue) {\n delete this.deletedStates[sourceLayer][feature][key];\n }\n }\n }\n }\n };\n SourceFeatureState.prototype.removeFeatureState = function removeFeatureState(sourceLayer, featureId, key) {\n var sourceLayerDeleted = this.deletedStates[sourceLayer] === null;\n if (sourceLayerDeleted) {\n return;\n }\n var feature = String(featureId);\n this.deletedStates[sourceLayer] = this.deletedStates[sourceLayer] || {};\n if (key && featureId !== void 0) {\n if (this.deletedStates[sourceLayer][feature] !== null) {\n this.deletedStates[sourceLayer][feature] = this.deletedStates[sourceLayer][feature] || {};\n this.deletedStates[sourceLayer][feature][key] = null;\n }\n } else if (featureId !== void 0) {\n var updateInQueue = this.stateChanges[sourceLayer] && this.stateChanges[sourceLayer][feature];\n if (updateInQueue) {\n this.deletedStates[sourceLayer][feature] = {};\n for (key in this.stateChanges[sourceLayer][feature]) {\n this.deletedStates[sourceLayer][feature][key] = null;\n }\n } else {\n this.deletedStates[sourceLayer][feature] = null;\n }\n } else {\n this.deletedStates[sourceLayer] = null;\n }\n };\n SourceFeatureState.prototype.getState = function getState(sourceLayer, featureId) {\n var feature = String(featureId);\n var base = this.state[sourceLayer] || {};\n var changes = this.stateChanges[sourceLayer] || {};\n var reconciledState = extend2({}, base[feature], changes[feature]);\n if (this.deletedStates[sourceLayer] === null) {\n return {};\n } else if (this.deletedStates[sourceLayer]) {\n var featureDeletions = this.deletedStates[sourceLayer][featureId];\n if (featureDeletions === null) {\n return {};\n }\n for (var prop in featureDeletions) {\n delete reconciledState[prop];\n }\n }\n return reconciledState;\n };\n SourceFeatureState.prototype.initializeTileState = function initializeTileState(tile, painter) {\n tile.setFeatureState(this.state, painter);\n };\n SourceFeatureState.prototype.coalesceChanges = function coalesceChanges(tiles, painter) {\n var featuresChanged = {};\n for (var sourceLayer in this.stateChanges) {\n this.state[sourceLayer] = this.state[sourceLayer] || {};\n var layerStates = {};\n for (var feature in this.stateChanges[sourceLayer]) {\n if (!this.state[sourceLayer][feature]) {\n this.state[sourceLayer][feature] = {};\n }\n extend2(this.state[sourceLayer][feature], this.stateChanges[sourceLayer][feature]);\n layerStates[feature] = this.state[sourceLayer][feature];\n }\n featuresChanged[sourceLayer] = layerStates;\n }\n for (var sourceLayer$1 in this.deletedStates) {\n this.state[sourceLayer$1] = this.state[sourceLayer$1] || {};\n var layerStates$1 = {};\n if (this.deletedStates[sourceLayer$1] === null) {\n for (var ft in this.state[sourceLayer$1]) {\n layerStates$1[ft] = {};\n this.state[sourceLayer$1][ft] = {};\n }\n } else {\n for (var feature$1 in this.deletedStates[sourceLayer$1]) {\n var deleteWholeFeatureState = this.deletedStates[sourceLayer$1][feature$1] === null;\n if (deleteWholeFeatureState) {\n this.state[sourceLayer$1][feature$1] = {};\n } else {\n for (var i = 0, list = Object.keys(this.deletedStates[sourceLayer$1][feature$1]); i < list.length; i += 1) {\n var key = list[i];\n delete this.state[sourceLayer$1][feature$1][key];\n }\n }\n layerStates$1[feature$1] = this.state[sourceLayer$1][feature$1];\n }\n }\n featuresChanged[sourceLayer$1] = featuresChanged[sourceLayer$1] || {};\n extend2(featuresChanged[sourceLayer$1], layerStates$1);\n }\n this.stateChanges = {};\n this.deletedStates = {};\n if (Object.keys(featuresChanged).length === 0) {\n return;\n }\n for (var id2 in tiles) {\n var tile = tiles[id2];\n tile.setFeatureState(featuresChanged, painter);\n }\n };\n var FeatureIndex = function FeatureIndex2(tileID, promoteId2) {\n this.tileID = tileID;\n this.x = tileID.canonical.x;\n this.y = tileID.canonical.y;\n this.z = tileID.canonical.z;\n this.grid = new gridIndex(EXTENT$1, 16, 0);\n this.grid3D = new gridIndex(EXTENT$1, 16, 0);\n this.featureIndexArray = new FeatureIndexArray();\n this.promoteId = promoteId2;\n };\n FeatureIndex.prototype.insert = function insert(feature, geometry, featureIndex, sourceLayerIndex, bucketIndex, is3D) {\n var key = this.featureIndexArray.length;\n this.featureIndexArray.emplaceBack(featureIndex, sourceLayerIndex, bucketIndex);\n var grid = is3D ? this.grid3D : this.grid;\n for (var r = 0; r < geometry.length; r++) {\n var ring = geometry[r];\n var bbox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n for (var i = 0; i < ring.length; i++) {\n var p = ring[i];\n bbox[0] = Math.min(bbox[0], p.x);\n bbox[1] = Math.min(bbox[1], p.y);\n bbox[2] = Math.max(bbox[2], p.x);\n bbox[3] = Math.max(bbox[3], p.y);\n }\n if (bbox[0] < EXTENT$1 && bbox[1] < EXTENT$1 && bbox[2] >= 0 && bbox[3] >= 0) {\n grid.insert(key, bbox[0], bbox[1], bbox[2], bbox[3]);\n }\n }\n };\n FeatureIndex.prototype.loadVTLayers = function loadVTLayers() {\n if (!this.vtLayers) {\n this.vtLayers = new vectorTile.VectorTile(new pbf(this.rawTileData)).layers;\n this.sourceLayerCoder = new DictionaryCoder(this.vtLayers ? Object.keys(this.vtLayers).sort() : [\"_geojsonTileLayer\"]);\n }\n return this.vtLayers;\n };\n FeatureIndex.prototype.query = function query(args, styleLayers, serializedLayers, sourceFeatureState) {\n var this$1 = this;\n this.loadVTLayers();\n var params = args.params || {}, pixelsToTileUnits = EXTENT$1 / args.tileSize / args.scale, filter2 = createFilter(params.filter);\n var queryGeometry = args.queryGeometry;\n var queryPadding = args.queryPadding * pixelsToTileUnits;\n var bounds = getBounds(queryGeometry);\n var matching = this.grid.query(bounds.minX - queryPadding, bounds.minY - queryPadding, bounds.maxX + queryPadding, bounds.maxY + queryPadding);\n var cameraBounds = getBounds(args.cameraQueryGeometry);\n var matching3D = this.grid3D.query(cameraBounds.minX - queryPadding, cameraBounds.minY - queryPadding, cameraBounds.maxX + queryPadding, cameraBounds.maxY + queryPadding, function(bx1, by1, bx2, by2) {\n return polygonIntersectsBox(args.cameraQueryGeometry, bx1 - queryPadding, by1 - queryPadding, bx2 + queryPadding, by2 + queryPadding);\n });\n for (var i = 0, list = matching3D; i < list.length; i += 1) {\n var key = list[i];\n matching.push(key);\n }\n matching.sort(topDownFeatureComparator);\n var result = {};\n var previousIndex;\n var loop = function(k2) {\n var index = matching[k2];\n if (index === previousIndex) {\n return;\n }\n previousIndex = index;\n var match = this$1.featureIndexArray.get(index);\n var featureGeometry = null;\n this$1.loadMatchingFeature(result, match.bucketIndex, match.sourceLayerIndex, match.featureIndex, filter2, params.layers, params.availableImages, styleLayers, serializedLayers, sourceFeatureState, function(feature, styleLayer, featureState) {\n if (!featureGeometry) {\n featureGeometry = loadGeometry(feature);\n }\n return styleLayer.queryIntersectsFeature(queryGeometry, feature, featureState, featureGeometry, this$1.z, args.transform, pixelsToTileUnits, args.pixelPosMatrix);\n });\n };\n for (var k = 0; k < matching.length; k++)\n loop(k);\n return result;\n };\n FeatureIndex.prototype.loadMatchingFeature = function loadMatchingFeature(result, bucketIndex, sourceLayerIndex, featureIndex, filter2, filterLayerIDs, availableImages, styleLayers, serializedLayers, sourceFeatureState, intersectionTest) {\n var layerIDs = this.bucketLayerIDs[bucketIndex];\n if (filterLayerIDs && !arraysIntersect(filterLayerIDs, layerIDs)) {\n return;\n }\n var sourceLayerName = this.sourceLayerCoder.decode(sourceLayerIndex);\n var sourceLayer = this.vtLayers[sourceLayerName];\n var feature = sourceLayer.feature(featureIndex);\n if (filter2.needGeometry) {\n var evaluationFeature = toEvaluationFeature(feature, true);\n if (!filter2.filter(new EvaluationParameters(this.tileID.overscaledZ), evaluationFeature, this.tileID.canonical)) {\n return;\n }\n } else if (!filter2.filter(new EvaluationParameters(this.tileID.overscaledZ), feature)) {\n return;\n }\n var id2 = this.getId(feature, sourceLayerName);\n for (var l = 0; l < layerIDs.length; l++) {\n var layerID = layerIDs[l];\n if (filterLayerIDs && filterLayerIDs.indexOf(layerID) < 0) {\n continue;\n }\n var styleLayer = styleLayers[layerID];\n if (!styleLayer) {\n continue;\n }\n var featureState = {};\n if (id2 !== void 0 && sourceFeatureState) {\n featureState = sourceFeatureState.getState(styleLayer.sourceLayer || \"_geojsonTileLayer\", id2);\n }\n var serializedLayer = extend2({}, serializedLayers[layerID]);\n serializedLayer.paint = evaluateProperties(serializedLayer.paint, styleLayer.paint, feature, featureState, availableImages);\n serializedLayer.layout = evaluateProperties(serializedLayer.layout, styleLayer.layout, feature, featureState, availableImages);\n var intersectionZ = !intersectionTest || intersectionTest(feature, styleLayer, featureState);\n if (!intersectionZ) {\n continue;\n }\n var geojsonFeature = new Feature(feature, this.z, this.x, this.y, id2);\n geojsonFeature.layer = serializedLayer;\n var layerResult = result[layerID];\n if (layerResult === void 0) {\n layerResult = result[layerID] = [];\n }\n layerResult.push({\n featureIndex,\n feature: geojsonFeature,\n intersectionZ\n });\n }\n };\n FeatureIndex.prototype.lookupSymbolFeatures = function lookupSymbolFeatures(symbolFeatureIndexes, serializedLayers, bucketIndex, sourceLayerIndex, filterSpec2, filterLayerIDs, availableImages, styleLayers) {\n var result = {};\n this.loadVTLayers();\n var filter2 = createFilter(filterSpec2);\n for (var i = 0, list = symbolFeatureIndexes; i < list.length; i += 1) {\n var symbolFeatureIndex = list[i];\n this.loadMatchingFeature(result, bucketIndex, sourceLayerIndex, symbolFeatureIndex, filter2, filterLayerIDs, availableImages, styleLayers, serializedLayers);\n }\n return result;\n };\n FeatureIndex.prototype.hasLayer = function hasLayer(id2) {\n for (var i$1 = 0, list$1 = this.bucketLayerIDs; i$1 < list$1.length; i$1 += 1) {\n var layerIDs = list$1[i$1];\n for (var i = 0, list = layerIDs; i < list.length; i += 1) {\n var layerID = list[i];\n if (id2 === layerID) {\n return true;\n }\n }\n }\n return false;\n };\n FeatureIndex.prototype.getId = function getId(feature, sourceLayerId) {\n var id2 = feature.id;\n if (this.promoteId) {\n var propName = typeof this.promoteId === \"string\" ? this.promoteId : this.promoteId[sourceLayerId];\n id2 = feature.properties[propName];\n if (typeof id2 === \"boolean\") {\n id2 = Number(id2);\n }\n }\n return id2;\n };\n register(\"FeatureIndex\", FeatureIndex, {\n omit: [\n \"rawTileData\",\n \"sourceLayerCoder\"\n ]\n });\n function evaluateProperties(serializedProperties, styleLayerProperties, feature, featureState, availableImages) {\n return mapObject(serializedProperties, function(property, key) {\n var prop = styleLayerProperties instanceof PossiblyEvaluated ? styleLayerProperties.get(key) : null;\n return prop && prop.evaluate ? prop.evaluate(feature, featureState, availableImages) : prop;\n });\n }\n function getBounds(geometry) {\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n for (var i = 0, list = geometry; i < list.length; i += 1) {\n var p = list[i];\n minX = Math.min(minX, p.x);\n minY = Math.min(minY, p.y);\n maxX = Math.max(maxX, p.x);\n maxY = Math.max(maxY, p.y);\n }\n return {\n minX,\n minY,\n maxX,\n maxY\n };\n }\n function topDownFeatureComparator(a, b) {\n return b - a;\n }\n var CLOCK_SKEW_RETRY_TIMEOUT = 3e4;\n var Tile = function Tile2(tileID, size) {\n this.tileID = tileID;\n this.uid = uniqueId();\n this.uses = 0;\n this.tileSize = size;\n this.buckets = {};\n this.expirationTime = null;\n this.queryPadding = 0;\n this.hasSymbolBuckets = false;\n this.hasRTLText = false;\n this.dependencies = {};\n this.expiredRequestCount = 0;\n this.state = \"loading\";\n };\n Tile.prototype.registerFadeDuration = function registerFadeDuration(duration) {\n var fadeEndTime = duration + this.timeAdded;\n if (fadeEndTime < exported.now()) {\n return;\n }\n if (this.fadeEndTime && fadeEndTime < this.fadeEndTime) {\n return;\n }\n this.fadeEndTime = fadeEndTime;\n };\n Tile.prototype.wasRequested = function wasRequested() {\n return this.state === \"errored\" || this.state === \"loaded\" || this.state === \"reloading\";\n };\n Tile.prototype.loadVectorData = function loadVectorData(data, painter, justReloaded) {\n if (this.hasData()) {\n this.unloadVectorData();\n }\n this.state = \"loaded\";\n if (!data) {\n this.collisionBoxArray = new CollisionBoxArray();\n return;\n }\n if (data.featureIndex) {\n this.latestFeatureIndex = data.featureIndex;\n if (data.rawTileData) {\n this.latestRawTileData = data.rawTileData;\n this.latestFeatureIndex.rawTileData = data.rawTileData;\n } else if (this.latestRawTileData) {\n this.latestFeatureIndex.rawTileData = this.latestRawTileData;\n }\n }\n this.collisionBoxArray = data.collisionBoxArray;\n this.buckets = deserialize$1(data.buckets, painter.style);\n this.hasSymbolBuckets = false;\n for (var id2 in this.buckets) {\n var bucket = this.buckets[id2];\n if (bucket instanceof SymbolBucket) {\n this.hasSymbolBuckets = true;\n if (justReloaded) {\n bucket.justReloaded = true;\n } else {\n break;\n }\n }\n }\n this.hasRTLText = false;\n if (this.hasSymbolBuckets) {\n for (var id$1 in this.buckets) {\n var bucket$1 = this.buckets[id$1];\n if (bucket$1 instanceof SymbolBucket) {\n if (bucket$1.hasRTLText) {\n this.hasRTLText = true;\n lazyLoadRTLTextPlugin();\n break;\n }\n }\n }\n }\n this.queryPadding = 0;\n for (var id$2 in this.buckets) {\n var bucket$2 = this.buckets[id$2];\n this.queryPadding = Math.max(this.queryPadding, painter.style.getLayer(id$2).queryRadius(bucket$2));\n }\n if (data.imageAtlas) {\n this.imageAtlas = data.imageAtlas;\n }\n if (data.glyphAtlasImage) {\n this.glyphAtlasImage = data.glyphAtlasImage;\n }\n };\n Tile.prototype.unloadVectorData = function unloadVectorData() {\n for (var id2 in this.buckets) {\n this.buckets[id2].destroy();\n }\n this.buckets = {};\n if (this.imageAtlasTexture) {\n this.imageAtlasTexture.destroy();\n }\n if (this.imageAtlas) {\n this.imageAtlas = null;\n }\n if (this.glyphAtlasTexture) {\n this.glyphAtlasTexture.destroy();\n }\n this.latestFeatureIndex = null;\n this.state = \"unloaded\";\n };\n Tile.prototype.getBucket = function getBucket(layer2) {\n return this.buckets[layer2.id];\n };\n Tile.prototype.upload = function upload(context) {\n for (var id2 in this.buckets) {\n var bucket = this.buckets[id2];\n if (bucket.uploadPending()) {\n bucket.upload(context);\n }\n }\n var gl2 = context.gl;\n if (this.imageAtlas && !this.imageAtlas.uploaded) {\n this.imageAtlasTexture = new Texture(context, this.imageAtlas.image, gl2.RGBA);\n this.imageAtlas.uploaded = true;\n }\n if (this.glyphAtlasImage) {\n this.glyphAtlasTexture = new Texture(context, this.glyphAtlasImage, gl2.ALPHA);\n this.glyphAtlasImage = null;\n }\n };\n Tile.prototype.prepare = function prepare(imageManager) {\n if (this.imageAtlas) {\n this.imageAtlas.patchUpdatedImages(imageManager, this.imageAtlasTexture);\n }\n };\n Tile.prototype.queryRenderedFeatures = function queryRenderedFeatures(layers, serializedLayers, sourceFeatureState, queryGeometry, cameraQueryGeometry, scale2, params, transform, maxPitchScaleFactor, pixelPosMatrix) {\n if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData) {\n return {};\n }\n return this.latestFeatureIndex.query({\n queryGeometry,\n cameraQueryGeometry,\n scale: scale2,\n tileSize: this.tileSize,\n pixelPosMatrix,\n transform,\n params,\n queryPadding: this.queryPadding * maxPitchScaleFactor\n }, layers, serializedLayers, sourceFeatureState);\n };\n Tile.prototype.querySourceFeatures = function querySourceFeatures(result, params) {\n var featureIndex = this.latestFeatureIndex;\n if (!featureIndex || !featureIndex.rawTileData) {\n return;\n }\n var vtLayers = featureIndex.loadVTLayers();\n var sourceLayer = params ? params.sourceLayer : \"\";\n var layer2 = vtLayers._geojsonTileLayer || vtLayers[sourceLayer];\n if (!layer2) {\n return;\n }\n var filter2 = createFilter(params && params.filter);\n var ref = this.tileID.canonical;\n var z = ref.z;\n var x = ref.x;\n var y = ref.y;\n var coord = {\n z,\n x,\n y\n };\n for (var i = 0; i < layer2.length; i++) {\n var feature = layer2.feature(i);\n if (filter2.needGeometry) {\n var evaluationFeature = toEvaluationFeature(feature, true);\n if (!filter2.filter(new EvaluationParameters(this.tileID.overscaledZ), evaluationFeature, this.tileID.canonical)) {\n continue;\n }\n } else if (!filter2.filter(new EvaluationParameters(this.tileID.overscaledZ), feature)) {\n continue;\n }\n var id2 = featureIndex.getId(feature, sourceLayer);\n var geojsonFeature = new Feature(feature, z, x, y, id2);\n geojsonFeature.tile = coord;\n result.push(geojsonFeature);\n }\n };\n Tile.prototype.hasData = function hasData() {\n return this.state === \"loaded\" || this.state === \"reloading\" || this.state === \"expired\";\n };\n Tile.prototype.patternsLoaded = function patternsLoaded() {\n return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length;\n };\n Tile.prototype.setExpiryData = function setExpiryData(data) {\n var prior = this.expirationTime;\n if (data.cacheControl) {\n var parsedCC = parseCacheControl(data.cacheControl);\n if (parsedCC[\"max-age\"]) {\n this.expirationTime = Date.now() + parsedCC[\"max-age\"] * 1e3;\n }\n } else if (data.expires) {\n this.expirationTime = new Date(data.expires).getTime();\n }\n if (this.expirationTime) {\n var now2 = Date.now();\n var isExpired = false;\n if (this.expirationTime > now2) {\n isExpired = false;\n } else if (!prior) {\n isExpired = true;\n } else if (this.expirationTime < prior) {\n isExpired = true;\n } else {\n var delta = this.expirationTime - prior;\n if (!delta) {\n isExpired = true;\n } else {\n this.expirationTime = now2 + Math.max(delta, CLOCK_SKEW_RETRY_TIMEOUT);\n }\n }\n if (isExpired) {\n this.expiredRequestCount++;\n this.state = \"expired\";\n } else {\n this.expiredRequestCount = 0;\n }\n }\n };\n Tile.prototype.getExpiryTimeout = function getExpiryTimeout() {\n if (this.expirationTime) {\n if (this.expiredRequestCount) {\n return 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31));\n } else {\n return Math.min(this.expirationTime - (/* @__PURE__ */ new Date()).getTime(), Math.pow(2, 31) - 1);\n }\n }\n };\n Tile.prototype.setFeatureState = function setFeatureState(states, painter) {\n if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || Object.keys(states).length === 0) {\n return;\n }\n var vtLayers = this.latestFeatureIndex.loadVTLayers();\n for (var id2 in this.buckets) {\n if (!painter.style.hasLayer(id2)) {\n continue;\n }\n var bucket = this.buckets[id2];\n var sourceLayerId = bucket.layers[0][\"sourceLayer\"] || \"_geojsonTileLayer\";\n var sourceLayer = vtLayers[sourceLayerId];\n var sourceLayerStates = states[sourceLayerId];\n if (!sourceLayer || !sourceLayerStates || Object.keys(sourceLayerStates).length === 0) {\n continue;\n }\n bucket.update(sourceLayerStates, sourceLayer, this.imageAtlas && this.imageAtlas.patternPositions || {});\n var layer2 = painter && painter.style && painter.style.getLayer(id2);\n if (layer2) {\n this.queryPadding = Math.max(this.queryPadding, layer2.queryRadius(bucket));\n }\n }\n };\n Tile.prototype.holdingForFade = function holdingForFade() {\n return this.symbolFadeHoldUntil !== void 0;\n };\n Tile.prototype.symbolFadeFinished = function symbolFadeFinished() {\n return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < exported.now();\n };\n Tile.prototype.clearFadeHold = function clearFadeHold() {\n this.symbolFadeHoldUntil = void 0;\n };\n Tile.prototype.setHoldDuration = function setHoldDuration(duration) {\n this.symbolFadeHoldUntil = exported.now() + duration;\n };\n Tile.prototype.setDependencies = function setDependencies(namespace, dependencies) {\n var index = {};\n for (var i = 0, list = dependencies; i < list.length; i += 1) {\n var dep = list[i];\n index[dep] = true;\n }\n this.dependencies[namespace] = index;\n };\n Tile.prototype.hasDependency = function hasDependency(namespaces, keys) {\n for (var i$1 = 0, list$1 = namespaces; i$1 < list$1.length; i$1 += 1) {\n var namespace = list$1[i$1];\n var dependencies = this.dependencies[namespace];\n if (dependencies) {\n for (var i = 0, list = keys; i < list.length; i += 1) {\n var key = list[i];\n if (dependencies[key]) {\n return true;\n }\n }\n }\n }\n return false;\n };\n var refProperties = [\n \"type\",\n \"source\",\n \"source-layer\",\n \"minzoom\",\n \"maxzoom\",\n \"filter\",\n \"layout\"\n ];\n var performance2 = window$1.performance;\n var RequestPerformance = function RequestPerformance2(request) {\n this._marks = {\n start: [\n request.url,\n \"start\"\n ].join(\"#\"),\n end: [\n request.url,\n \"end\"\n ].join(\"#\"),\n measure: request.url.toString()\n };\n performance2.mark(this._marks.start);\n };\n RequestPerformance.prototype.finish = function finish() {\n performance2.mark(this._marks.end);\n var resourceTimingData = performance2.getEntriesByName(this._marks.measure);\n if (resourceTimingData.length === 0) {\n performance2.measure(this._marks.measure, this._marks.start, this._marks.end);\n resourceTimingData = performance2.getEntriesByName(this._marks.measure);\n performance2.clearMarks(this._marks.start);\n performance2.clearMarks(this._marks.end);\n performance2.clearMeasures(this._marks.measure);\n }\n return resourceTimingData;\n };\n exports2.Actor = Actor;\n exports2.AlphaImage = AlphaImage;\n exports2.CanonicalTileID = CanonicalTileID;\n exports2.CollisionBoxArray = CollisionBoxArray;\n exports2.Color = Color2;\n exports2.DEMData = DEMData;\n exports2.DataConstantProperty = DataConstantProperty;\n exports2.DictionaryCoder = DictionaryCoder;\n exports2.EXTENT = EXTENT$1;\n exports2.ErrorEvent = ErrorEvent;\n exports2.EvaluationParameters = EvaluationParameters;\n exports2.Event = Event;\n exports2.Evented = Evented;\n exports2.FeatureIndex = FeatureIndex;\n exports2.FillBucket = FillBucket;\n exports2.FillExtrusionBucket = FillExtrusionBucket;\n exports2.ImageAtlas = ImageAtlas;\n exports2.ImagePosition = ImagePosition;\n exports2.LineBucket = LineBucket;\n exports2.LngLat = LngLat;\n exports2.LngLatBounds = LngLatBounds;\n exports2.MercatorCoordinate = MercatorCoordinate;\n exports2.ONE_EM = ONE_EM;\n exports2.OverscaledTileID = OverscaledTileID;\n exports2.Point = pointGeometry;\n exports2.Point$1 = pointGeometry;\n exports2.Properties = Properties;\n exports2.Protobuf = pbf;\n exports2.RGBAImage = RGBAImage;\n exports2.RequestManager = RequestManager;\n exports2.RequestPerformance = RequestPerformance;\n exports2.ResourceType = ResourceType;\n exports2.SegmentVector = SegmentVector;\n exports2.SourceFeatureState = SourceFeatureState;\n exports2.StructArrayLayout1ui2 = StructArrayLayout1ui2;\n exports2.StructArrayLayout2f1f2i16 = StructArrayLayout2f1f2i16;\n exports2.StructArrayLayout2i4 = StructArrayLayout2i4;\n exports2.StructArrayLayout3ui6 = StructArrayLayout3ui6;\n exports2.StructArrayLayout4i8 = StructArrayLayout4i8;\n exports2.SymbolBucket = SymbolBucket;\n exports2.Texture = Texture;\n exports2.Tile = Tile;\n exports2.Transitionable = Transitionable;\n exports2.Uniform1f = Uniform1f;\n exports2.Uniform1i = Uniform1i;\n exports2.Uniform2f = Uniform2f;\n exports2.Uniform3f = Uniform3f;\n exports2.Uniform4f = Uniform4f;\n exports2.UniformColor = UniformColor;\n exports2.UniformMatrix4f = UniformMatrix4f;\n exports2.UnwrappedTileID = UnwrappedTileID;\n exports2.ValidationError = ValidationError;\n exports2.WritingMode = WritingMode;\n exports2.ZoomHistory = ZoomHistory;\n exports2.add = add;\n exports2.addDynamicAttributes = addDynamicAttributes;\n exports2.asyncAll = asyncAll;\n exports2.bezier = bezier;\n exports2.bindAll = bindAll;\n exports2.browser = exported;\n exports2.cacheEntryPossiblyAdded = cacheEntryPossiblyAdded;\n exports2.clamp = clamp;\n exports2.clearTileCache = clearTileCache;\n exports2.clipLine = clipLine;\n exports2.clone = clone$1;\n exports2.clone$1 = clone;\n exports2.clone$2 = clone$2;\n exports2.collisionCircleLayout = collisionCircleLayout;\n exports2.config = config;\n exports2.create = create$2;\n exports2.create$1 = create$1;\n exports2.create$2 = create;\n exports2.createCommonjsModule = createCommonjsModule;\n exports2.createExpression = createExpression;\n exports2.createLayout = createLayout;\n exports2.createStyleLayer = createStyleLayer;\n exports2.cross = cross;\n exports2.deepEqual = deepEqual;\n exports2.dot = dot;\n exports2.dot$1 = dot$1;\n exports2.ease = ease;\n exports2.emitValidationErrors = emitValidationErrors;\n exports2.endsWith = endsWith;\n exports2.enforceCacheSizeLimit = enforceCacheSizeLimit;\n exports2.evaluateSizeForFeature = evaluateSizeForFeature;\n exports2.evaluateSizeForZoom = evaluateSizeForZoom;\n exports2.evaluateVariableOffset = evaluateVariableOffset;\n exports2.evented = evented;\n exports2.extend = extend2;\n exports2.featureFilter = createFilter;\n exports2.filterObject = filterObject;\n exports2.fromRotation = fromRotation;\n exports2.getAnchorAlignment = getAnchorAlignment;\n exports2.getAnchorJustification = getAnchorJustification;\n exports2.getArrayBuffer = getArrayBuffer;\n exports2.getImage = getImage;\n exports2.getJSON = getJSON;\n exports2.getRTLTextPluginStatus = getRTLTextPluginStatus;\n exports2.getReferrer = getReferrer;\n exports2.getVideo = getVideo;\n exports2.identity = identity2;\n exports2.invert = invert;\n exports2.isChar = unicodeBlockLookup;\n exports2.isMapboxURL = isMapboxURL;\n exports2.keysDifference = keysDifference;\n exports2.makeRequest = makeRequest;\n exports2.mapObject = mapObject;\n exports2.mercatorXfromLng = mercatorXfromLng$1;\n exports2.mercatorYfromLat = mercatorYfromLat$1;\n exports2.mercatorZfromAltitude = mercatorZfromAltitude;\n exports2.mul = mul;\n exports2.multiply = multiply;\n exports2.mvt = vectorTile;\n exports2.nextPowerOfTwo = nextPowerOfTwo;\n exports2.normalize = normalize;\n exports2.number = number;\n exports2.offscreenCanvasSupported = offscreenCanvasSupported;\n exports2.ortho = ortho;\n exports2.parseGlyphPBF = parseGlyphPBF;\n exports2.pbf = pbf;\n exports2.performSymbolLayout = performSymbolLayout;\n exports2.perspective = perspective;\n exports2.pick = pick;\n exports2.plugin = plugin;\n exports2.polygonIntersectsPolygon = polygonIntersectsPolygon;\n exports2.postMapLoadEvent = postMapLoadEvent;\n exports2.postTurnstileEvent = postTurnstileEvent;\n exports2.potpack = potpack;\n exports2.refProperties = refProperties;\n exports2.register = register;\n exports2.registerForPluginStateChange = registerForPluginStateChange;\n exports2.renderColorRamp = renderColorRamp;\n exports2.rotate = rotate;\n exports2.rotateX = rotateX;\n exports2.rotateZ = rotateZ;\n exports2.scale = scale;\n exports2.scale$1 = scale$2;\n exports2.scale$2 = scale$1;\n exports2.setCacheLimits = setCacheLimits;\n exports2.setRTLTextPlugin = setRTLTextPlugin;\n exports2.sphericalToCartesian = sphericalToCartesian;\n exports2.sqrLen = sqrLen;\n exports2.styleSpec = spec;\n exports2.sub = sub;\n exports2.symbolSize = symbolSize;\n exports2.transformMat3 = transformMat3;\n exports2.transformMat4 = transformMat4;\n exports2.translate = translate$1;\n exports2.triggerPluginCompletionEvent = triggerPluginCompletionEvent;\n exports2.uniqueId = uniqueId;\n exports2.validateCustomStyleLayer = validateCustomStyleLayer;\n exports2.validateLight = validateLight$1;\n exports2.validateStyle = validateStyle;\n exports2.values = values;\n exports2.vectorTile = vectorTile;\n exports2.version = version;\n exports2.warnOnce = warnOnce;\n exports2.webpSupported = exported$1;\n exports2.window = window$1;\n exports2.wrap = wrap;\n });\n define2([\"./shared\"], function(performance2) {\n \"use strict\";\n function stringify(obj) {\n var type = typeof obj;\n if (type === \"number\" || type === \"boolean\" || type === \"string\" || obj === void 0 || obj === null) {\n return JSON.stringify(obj);\n }\n if (Array.isArray(obj)) {\n var str$1 = \"[\";\n for (var i$1 = 0, list = obj; i$1 < list.length; i$1 += 1) {\n var val = list[i$1];\n str$1 += stringify(val) + \",\";\n }\n return str$1 + \"]\";\n }\n var keys = Object.keys(obj).sort();\n var str = \"{\";\n for (var i = 0; i < keys.length; i++) {\n str += JSON.stringify(keys[i]) + \":\" + stringify(obj[keys[i]]) + \",\";\n }\n return str + \"}\";\n }\n function getKey(layer) {\n var key = \"\";\n for (var i = 0, list = performance2.refProperties; i < list.length; i += 1) {\n var k = list[i];\n key += \"/\" + stringify(layer[k]);\n }\n return key;\n }\n function groupByLayout(layers, cachedKeys) {\n var groups = {};\n for (var i = 0; i < layers.length; i++) {\n var k = cachedKeys && cachedKeys[layers[i].id] || getKey(layers[i]);\n if (cachedKeys) {\n cachedKeys[layers[i].id] = k;\n }\n var group = groups[k];\n if (!group) {\n group = groups[k] = [];\n }\n group.push(layers[i]);\n }\n var result = [];\n for (var k$1 in groups) {\n result.push(groups[k$1]);\n }\n return result;\n }\n var StyleLayerIndex = function StyleLayerIndex2(layerConfigs) {\n this.keyCache = {};\n if (layerConfigs) {\n this.replace(layerConfigs);\n }\n };\n StyleLayerIndex.prototype.replace = function replace(layerConfigs) {\n this._layerConfigs = {};\n this._layers = {};\n this.update(layerConfigs, []);\n };\n StyleLayerIndex.prototype.update = function update(layerConfigs, removedIds) {\n var this$1 = this;\n for (var i = 0, list = layerConfigs; i < list.length; i += 1) {\n var layerConfig = list[i];\n this._layerConfigs[layerConfig.id] = layerConfig;\n var layer = this._layers[layerConfig.id] = performance2.createStyleLayer(layerConfig);\n layer._featureFilter = performance2.featureFilter(layer.filter);\n if (this.keyCache[layerConfig.id]) {\n delete this.keyCache[layerConfig.id];\n }\n }\n for (var i$1 = 0, list$1 = removedIds; i$1 < list$1.length; i$1 += 1) {\n var id = list$1[i$1];\n delete this.keyCache[id];\n delete this._layerConfigs[id];\n delete this._layers[id];\n }\n this.familiesBySource = {};\n var groups = groupByLayout(performance2.values(this._layerConfigs), this.keyCache);\n for (var i$2 = 0, list$2 = groups; i$2 < list$2.length; i$2 += 1) {\n var layerConfigs$1 = list$2[i$2];\n var layers = layerConfigs$1.map(function(layerConfig2) {\n return this$1._layers[layerConfig2.id];\n });\n var layer$1 = layers[0];\n if (layer$1.visibility === \"none\") {\n continue;\n }\n var sourceId = layer$1.source || \"\";\n var sourceGroup = this.familiesBySource[sourceId];\n if (!sourceGroup) {\n sourceGroup = this.familiesBySource[sourceId] = {};\n }\n var sourceLayerId = layer$1.sourceLayer || \"_geojsonTileLayer\";\n var sourceLayerFamilies = sourceGroup[sourceLayerId];\n if (!sourceLayerFamilies) {\n sourceLayerFamilies = sourceGroup[sourceLayerId] = [];\n }\n sourceLayerFamilies.push(layers);\n }\n };\n var padding = 1;\n var GlyphAtlas = function GlyphAtlas2(stacks) {\n var positions = {};\n var bins = [];\n for (var stack in stacks) {\n var glyphs = stacks[stack];\n var stackPositions = positions[stack] = {};\n for (var id in glyphs) {\n var src = glyphs[+id];\n if (!src || src.bitmap.width === 0 || src.bitmap.height === 0) {\n continue;\n }\n var bin = {\n x: 0,\n y: 0,\n w: src.bitmap.width + 2 * padding,\n h: src.bitmap.height + 2 * padding\n };\n bins.push(bin);\n stackPositions[id] = {\n rect: bin,\n metrics: src.metrics\n };\n }\n }\n var ref = performance2.potpack(bins);\n var w = ref.w;\n var h = ref.h;\n var image = new performance2.AlphaImage({\n width: w || 1,\n height: h || 1\n });\n for (var stack$1 in stacks) {\n var glyphs$1 = stacks[stack$1];\n for (var id$1 in glyphs$1) {\n var src$1 = glyphs$1[+id$1];\n if (!src$1 || src$1.bitmap.width === 0 || src$1.bitmap.height === 0) {\n continue;\n }\n var bin$1 = positions[stack$1][id$1].rect;\n performance2.AlphaImage.copy(src$1.bitmap, image, {\n x: 0,\n y: 0\n }, {\n x: bin$1.x + padding,\n y: bin$1.y + padding\n }, src$1.bitmap);\n }\n }\n this.image = image;\n this.positions = positions;\n };\n performance2.register(\"GlyphAtlas\", GlyphAtlas);\n var WorkerTile = function WorkerTile2(params) {\n this.tileID = new performance2.OverscaledTileID(params.tileID.overscaledZ, params.tileID.wrap, params.tileID.canonical.z, params.tileID.canonical.x, params.tileID.canonical.y);\n this.uid = params.uid;\n this.zoom = params.zoom;\n this.pixelRatio = params.pixelRatio;\n this.tileSize = params.tileSize;\n this.source = params.source;\n this.overscaling = this.tileID.overscaleFactor();\n this.showCollisionBoxes = params.showCollisionBoxes;\n this.collectResourceTiming = !!params.collectResourceTiming;\n this.returnDependencies = !!params.returnDependencies;\n this.promoteId = params.promoteId;\n };\n WorkerTile.prototype.parse = function parse2(data, layerIndex, availableImages, actor, callback) {\n var this$1 = this;\n this.status = \"parsing\";\n this.data = data;\n this.collisionBoxArray = new performance2.CollisionBoxArray();\n var sourceLayerCoder = new performance2.DictionaryCoder(Object.keys(data.layers).sort());\n var featureIndex = new performance2.FeatureIndex(this.tileID, this.promoteId);\n featureIndex.bucketLayerIDs = [];\n var buckets = {};\n var options = {\n featureIndex,\n iconDependencies: {},\n patternDependencies: {},\n glyphDependencies: {},\n availableImages\n };\n var layerFamilies = layerIndex.familiesBySource[this.source];\n for (var sourceLayerId in layerFamilies) {\n var sourceLayer = data.layers[sourceLayerId];\n if (!sourceLayer) {\n continue;\n }\n if (sourceLayer.version === 1) {\n performance2.warnOnce('Vector tile source \"' + this.source + '\" layer \"' + sourceLayerId + '\" does not use vector tile spec v2 and therefore may have some rendering errors.');\n }\n var sourceLayerIndex = sourceLayerCoder.encode(sourceLayerId);\n var features = [];\n for (var index = 0; index < sourceLayer.length; index++) {\n var feature = sourceLayer.feature(index);\n var id = featureIndex.getId(feature, sourceLayerId);\n features.push({\n feature,\n id,\n index,\n sourceLayerIndex\n });\n }\n for (var i = 0, list = layerFamilies[sourceLayerId]; i < list.length; i += 1) {\n var family = list[i];\n var layer = family[0];\n if (layer.minzoom && this.zoom < Math.floor(layer.minzoom)) {\n continue;\n }\n if (layer.maxzoom && this.zoom >= layer.maxzoom) {\n continue;\n }\n if (layer.visibility === \"none\") {\n continue;\n }\n recalculateLayers(family, this.zoom, availableImages);\n var bucket = buckets[layer.id] = layer.createBucket({\n index: featureIndex.bucketLayerIDs.length,\n layers: family,\n zoom: this.zoom,\n pixelRatio: this.pixelRatio,\n overscaling: this.overscaling,\n collisionBoxArray: this.collisionBoxArray,\n sourceLayerIndex,\n sourceID: this.source\n });\n bucket.populate(features, options, this.tileID.canonical);\n featureIndex.bucketLayerIDs.push(family.map(function(l) {\n return l.id;\n }));\n }\n }\n var error;\n var glyphMap;\n var iconMap;\n var patternMap;\n var stacks = performance2.mapObject(options.glyphDependencies, function(glyphs) {\n return Object.keys(glyphs).map(Number);\n });\n if (Object.keys(stacks).length) {\n actor.send(\"getGlyphs\", {\n uid: this.uid,\n stacks\n }, function(err, result) {\n if (!error) {\n error = err;\n glyphMap = result;\n maybePrepare.call(this$1);\n }\n });\n } else {\n glyphMap = {};\n }\n var icons = Object.keys(options.iconDependencies);\n if (icons.length) {\n actor.send(\"getImages\", {\n icons,\n source: this.source,\n tileID: this.tileID,\n type: \"icons\"\n }, function(err, result) {\n if (!error) {\n error = err;\n iconMap = result;\n maybePrepare.call(this$1);\n }\n });\n } else {\n iconMap = {};\n }\n var patterns = Object.keys(options.patternDependencies);\n if (patterns.length) {\n actor.send(\"getImages\", {\n icons: patterns,\n source: this.source,\n tileID: this.tileID,\n type: \"patterns\"\n }, function(err, result) {\n if (!error) {\n error = err;\n patternMap = result;\n maybePrepare.call(this$1);\n }\n });\n } else {\n patternMap = {};\n }\n maybePrepare.call(this);\n function maybePrepare() {\n if (error) {\n return callback(error);\n } else if (glyphMap && iconMap && patternMap) {\n var glyphAtlas = new GlyphAtlas(glyphMap);\n var imageAtlas = new performance2.ImageAtlas(iconMap, patternMap);\n for (var key in buckets) {\n var bucket2 = buckets[key];\n if (bucket2 instanceof performance2.SymbolBucket) {\n recalculateLayers(bucket2.layers, this.zoom, availableImages);\n performance2.performSymbolLayout(bucket2, glyphMap, glyphAtlas.positions, iconMap, imageAtlas.iconPositions, this.showCollisionBoxes, this.tileID.canonical);\n } else if (bucket2.hasPattern && (bucket2 instanceof performance2.LineBucket || bucket2 instanceof performance2.FillBucket || bucket2 instanceof performance2.FillExtrusionBucket)) {\n recalculateLayers(bucket2.layers, this.zoom, availableImages);\n bucket2.addFeatures(options, this.tileID.canonical, imageAtlas.patternPositions);\n }\n }\n this.status = \"done\";\n callback(null, {\n buckets: performance2.values(buckets).filter(function(b) {\n return !b.isEmpty();\n }),\n featureIndex,\n collisionBoxArray: this.collisionBoxArray,\n glyphAtlasImage: glyphAtlas.image,\n imageAtlas,\n glyphMap: this.returnDependencies ? glyphMap : null,\n iconMap: this.returnDependencies ? iconMap : null,\n glyphPositions: this.returnDependencies ? glyphAtlas.positions : null\n });\n }\n }\n };\n function recalculateLayers(layers, zoom, availableImages) {\n var parameters = new performance2.EvaluationParameters(zoom);\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer = list[i];\n layer.recalculate(parameters, availableImages);\n }\n }\n function loadVectorTile(params, callback) {\n var request = performance2.getArrayBuffer(params.request, function(err, data, cacheControl, expires) {\n if (err) {\n callback(err);\n } else if (data) {\n callback(null, {\n vectorTile: new performance2.vectorTile.VectorTile(new performance2.pbf(data)),\n rawData: data,\n cacheControl,\n expires\n });\n }\n });\n return function() {\n request.cancel();\n callback();\n };\n }\n var VectorTileWorkerSource = function VectorTileWorkerSource2(actor, layerIndex, availableImages, loadVectorData) {\n this.actor = actor;\n this.layerIndex = layerIndex;\n this.availableImages = availableImages;\n this.loadVectorData = loadVectorData || loadVectorTile;\n this.loading = {};\n this.loaded = {};\n };\n VectorTileWorkerSource.prototype.loadTile = function loadTile(params, callback) {\n var this$1 = this;\n var uid = params.uid;\n if (!this.loading) {\n this.loading = {};\n }\n var perf = params && params.request && params.request.collectResourceTiming ? new performance2.RequestPerformance(params.request) : false;\n var workerTile = this.loading[uid] = new WorkerTile(params);\n workerTile.abort = this.loadVectorData(params, function(err, response) {\n delete this$1.loading[uid];\n if (err || !response) {\n workerTile.status = \"done\";\n this$1.loaded[uid] = workerTile;\n return callback(err);\n }\n var rawTileData = response.rawData;\n var cacheControl = {};\n if (response.expires) {\n cacheControl.expires = response.expires;\n }\n if (response.cacheControl) {\n cacheControl.cacheControl = response.cacheControl;\n }\n var resourceTiming = {};\n if (perf) {\n var resourceTimingData = perf.finish();\n if (resourceTimingData) {\n resourceTiming.resourceTiming = JSON.parse(JSON.stringify(resourceTimingData));\n }\n }\n workerTile.vectorTile = response.vectorTile;\n workerTile.parse(response.vectorTile, this$1.layerIndex, this$1.availableImages, this$1.actor, function(err2, result) {\n if (err2 || !result) {\n return callback(err2);\n }\n callback(null, performance2.extend({ rawTileData: rawTileData.slice(0) }, result, cacheControl, resourceTiming));\n });\n this$1.loaded = this$1.loaded || {};\n this$1.loaded[uid] = workerTile;\n });\n };\n VectorTileWorkerSource.prototype.reloadTile = function reloadTile(params, callback) {\n var this$1 = this;\n var loaded = this.loaded, uid = params.uid, vtSource = this;\n if (loaded && loaded[uid]) {\n var workerTile = loaded[uid];\n workerTile.showCollisionBoxes = params.showCollisionBoxes;\n var done = function(err, data) {\n var reloadCallback = workerTile.reloadCallback;\n if (reloadCallback) {\n delete workerTile.reloadCallback;\n workerTile.parse(workerTile.vectorTile, vtSource.layerIndex, this$1.availableImages, vtSource.actor, reloadCallback);\n }\n callback(err, data);\n };\n if (workerTile.status === \"parsing\") {\n workerTile.reloadCallback = done;\n } else if (workerTile.status === \"done\") {\n if (workerTile.vectorTile) {\n workerTile.parse(workerTile.vectorTile, this.layerIndex, this.availableImages, this.actor, done);\n } else {\n done();\n }\n }\n }\n };\n VectorTileWorkerSource.prototype.abortTile = function abortTile(params, callback) {\n var loading = this.loading, uid = params.uid;\n if (loading && loading[uid] && loading[uid].abort) {\n loading[uid].abort();\n delete loading[uid];\n }\n callback();\n };\n VectorTileWorkerSource.prototype.removeTile = function removeTile(params, callback) {\n var loaded = this.loaded, uid = params.uid;\n if (loaded && loaded[uid]) {\n delete loaded[uid];\n }\n callback();\n };\n var ImageBitmap2 = performance2.window.ImageBitmap;\n var RasterDEMTileWorkerSource = function RasterDEMTileWorkerSource2() {\n this.loaded = {};\n };\n RasterDEMTileWorkerSource.prototype.loadTile = function loadTile(params, callback) {\n var uid = params.uid;\n var encoding = params.encoding;\n var rawImageData = params.rawImageData;\n var imagePixels = ImageBitmap2 && rawImageData instanceof ImageBitmap2 ? this.getImageData(rawImageData) : rawImageData;\n var dem = new performance2.DEMData(uid, imagePixels, encoding);\n this.loaded = this.loaded || {};\n this.loaded[uid] = dem;\n callback(null, dem);\n };\n RasterDEMTileWorkerSource.prototype.getImageData = function getImageData(imgBitmap) {\n if (!this.offscreenCanvas || !this.offscreenCanvasContext) {\n this.offscreenCanvas = new OffscreenCanvas(imgBitmap.width, imgBitmap.height);\n this.offscreenCanvasContext = this.offscreenCanvas.getContext(\"2d\");\n }\n this.offscreenCanvas.width = imgBitmap.width;\n this.offscreenCanvas.height = imgBitmap.height;\n this.offscreenCanvasContext.drawImage(imgBitmap, 0, 0, imgBitmap.width, imgBitmap.height);\n var imgData = this.offscreenCanvasContext.getImageData(-1, -1, imgBitmap.width + 2, imgBitmap.height + 2);\n this.offscreenCanvasContext.clearRect(0, 0, this.offscreenCanvas.width, this.offscreenCanvas.height);\n return new performance2.RGBAImage({\n width: imgData.width,\n height: imgData.height\n }, imgData.data);\n };\n RasterDEMTileWorkerSource.prototype.removeTile = function removeTile(params) {\n var loaded = this.loaded, uid = params.uid;\n if (loaded && loaded[uid]) {\n delete loaded[uid];\n }\n };\n var geojsonRewind = rewind;\n function rewind(gj, outer) {\n var type = gj && gj.type, i;\n if (type === \"FeatureCollection\") {\n for (i = 0; i < gj.features.length; i++) {\n rewind(gj.features[i], outer);\n }\n } else if (type === \"GeometryCollection\") {\n for (i = 0; i < gj.geometries.length; i++) {\n rewind(gj.geometries[i], outer);\n }\n } else if (type === \"Feature\") {\n rewind(gj.geometry, outer);\n } else if (type === \"Polygon\") {\n rewindRings(gj.coordinates, outer);\n } else if (type === \"MultiPolygon\") {\n for (i = 0; i < gj.coordinates.length; i++) {\n rewindRings(gj.coordinates[i], outer);\n }\n }\n return gj;\n }\n function rewindRings(rings, outer) {\n if (rings.length === 0) {\n return;\n }\n rewindRing(rings[0], outer);\n for (var i = 1; i < rings.length; i++) {\n rewindRing(rings[i], !outer);\n }\n }\n function rewindRing(ring, dir) {\n var area = 0;\n for (var i = 0, len = ring.length, j = len - 1; i < len; j = i++) {\n area += (ring[i][0] - ring[j][0]) * (ring[j][1] + ring[i][1]);\n }\n if (area >= 0 !== !!dir) {\n ring.reverse();\n }\n }\n var toGeoJSON = performance2.vectorTile.VectorTileFeature.prototype.toGeoJSON;\n var FeatureWrapper = function FeatureWrapper2(feature) {\n this._feature = feature;\n this.extent = performance2.EXTENT;\n this.type = feature.type;\n this.properties = feature.tags;\n if (\"id\" in feature && !isNaN(feature.id)) {\n this.id = parseInt(feature.id, 10);\n }\n };\n FeatureWrapper.prototype.loadGeometry = function loadGeometry() {\n if (this._feature.type === 1) {\n var geometry = [];\n for (var i = 0, list = this._feature.geometry; i < list.length; i += 1) {\n var point = list[i];\n geometry.push([new performance2.Point$1(point[0], point[1])]);\n }\n return geometry;\n } else {\n var geometry$1 = [];\n for (var i$2 = 0, list$2 = this._feature.geometry; i$2 < list$2.length; i$2 += 1) {\n var ring = list$2[i$2];\n var newRing = [];\n for (var i$1 = 0, list$1 = ring; i$1 < list$1.length; i$1 += 1) {\n var point$1 = list$1[i$1];\n newRing.push(new performance2.Point$1(point$1[0], point$1[1]));\n }\n geometry$1.push(newRing);\n }\n return geometry$1;\n }\n };\n FeatureWrapper.prototype.toGeoJSON = function toGeoJSON$1(x, y, z) {\n return toGeoJSON.call(this, x, y, z);\n };\n var GeoJSONWrapper = function GeoJSONWrapper2(features) {\n this.layers = { \"_geojsonTileLayer\": this };\n this.name = \"_geojsonTileLayer\";\n this.extent = performance2.EXTENT;\n this.length = features.length;\n this._features = features;\n };\n GeoJSONWrapper.prototype.feature = function feature(i) {\n return new FeatureWrapper(this._features[i]);\n };\n var VectorTileFeature = performance2.vectorTile.VectorTileFeature;\n var geojson_wrapper = GeoJSONWrapper$1;\n function GeoJSONWrapper$1(features, options) {\n this.options = options || {};\n this.features = features;\n this.length = features.length;\n }\n GeoJSONWrapper$1.prototype.feature = function(i) {\n return new FeatureWrapper$1(this.features[i], this.options.extent);\n };\n function FeatureWrapper$1(feature, extent) {\n this.id = typeof feature.id === \"number\" ? feature.id : void 0;\n this.type = feature.type;\n this.rawGeometry = feature.type === 1 ? [feature.geometry] : feature.geometry;\n this.properties = feature.tags;\n this.extent = extent || 4096;\n }\n FeatureWrapper$1.prototype.loadGeometry = function() {\n var rings = this.rawGeometry;\n this.geometry = [];\n for (var i = 0; i < rings.length; i++) {\n var ring = rings[i];\n var newRing = [];\n for (var j = 0; j < ring.length; j++) {\n newRing.push(new performance2.Point$1(ring[j][0], ring[j][1]));\n }\n this.geometry.push(newRing);\n }\n return this.geometry;\n };\n FeatureWrapper$1.prototype.bbox = function() {\n if (!this.geometry) {\n this.loadGeometry();\n }\n var rings = this.geometry;\n var x1 = Infinity;\n var x2 = -Infinity;\n var y1 = Infinity;\n var y2 = -Infinity;\n for (var i = 0; i < rings.length; i++) {\n var ring = rings[i];\n for (var j = 0; j < ring.length; j++) {\n var coord = ring[j];\n x1 = Math.min(x1, coord.x);\n x2 = Math.max(x2, coord.x);\n y1 = Math.min(y1, coord.y);\n y2 = Math.max(y2, coord.y);\n }\n }\n return [\n x1,\n y1,\n x2,\n y2\n ];\n };\n FeatureWrapper$1.prototype.toGeoJSON = VectorTileFeature.prototype.toGeoJSON;\n var vtPbf = fromVectorTileJs;\n var fromVectorTileJs_1 = fromVectorTileJs;\n var fromGeojsonVt_1 = fromGeojsonVt;\n var GeoJSONWrapper_1 = geojson_wrapper;\n function fromVectorTileJs(tile) {\n var out = new performance2.pbf();\n writeTile(tile, out);\n return out.finish();\n }\n function fromGeojsonVt(layers, options) {\n options = options || {};\n var l = {};\n for (var k in layers) {\n l[k] = new geojson_wrapper(layers[k].features, options);\n l[k].name = k;\n l[k].version = options.version;\n l[k].extent = options.extent;\n }\n return fromVectorTileJs({ layers: l });\n }\n function writeTile(tile, pbf) {\n for (var key in tile.layers) {\n pbf.writeMessage(3, writeLayer, tile.layers[key]);\n }\n }\n function writeLayer(layer, pbf) {\n pbf.writeVarintField(15, layer.version || 1);\n pbf.writeStringField(1, layer.name || \"\");\n pbf.writeVarintField(5, layer.extent || 4096);\n var i;\n var context = {\n keys: [],\n values: [],\n keycache: {},\n valuecache: {}\n };\n for (i = 0; i < layer.length; i++) {\n context.feature = layer.feature(i);\n pbf.writeMessage(2, writeFeature, context);\n }\n var keys = context.keys;\n for (i = 0; i < keys.length; i++) {\n pbf.writeStringField(3, keys[i]);\n }\n var values = context.values;\n for (i = 0; i < values.length; i++) {\n pbf.writeMessage(4, writeValue, values[i]);\n }\n }\n function writeFeature(context, pbf) {\n var feature = context.feature;\n if (feature.id !== void 0) {\n pbf.writeVarintField(1, feature.id);\n }\n pbf.writeMessage(2, writeProperties, context);\n pbf.writeVarintField(3, feature.type);\n pbf.writeMessage(4, writeGeometry, feature);\n }\n function writeProperties(context, pbf) {\n var feature = context.feature;\n var keys = context.keys;\n var values = context.values;\n var keycache = context.keycache;\n var valuecache = context.valuecache;\n for (var key in feature.properties) {\n var keyIndex = keycache[key];\n if (typeof keyIndex === \"undefined\") {\n keys.push(key);\n keyIndex = keys.length - 1;\n keycache[key] = keyIndex;\n }\n pbf.writeVarint(keyIndex);\n var value = feature.properties[key];\n var type = typeof value;\n if (type !== \"string\" && type !== \"boolean\" && type !== \"number\") {\n value = JSON.stringify(value);\n }\n var valueKey = type + \":\" + value;\n var valueIndex = valuecache[valueKey];\n if (typeof valueIndex === \"undefined\") {\n values.push(value);\n valueIndex = values.length - 1;\n valuecache[valueKey] = valueIndex;\n }\n pbf.writeVarint(valueIndex);\n }\n }\n function command(cmd, length) {\n return (length << 3) + (cmd & 7);\n }\n function zigzag(num) {\n return num << 1 ^ num >> 31;\n }\n function writeGeometry(feature, pbf) {\n var geometry = feature.loadGeometry();\n var type = feature.type;\n var x = 0;\n var y = 0;\n var rings = geometry.length;\n for (var r = 0; r < rings; r++) {\n var ring = geometry[r];\n var count = 1;\n if (type === 1) {\n count = ring.length;\n }\n pbf.writeVarint(command(1, count));\n var lineCount = type === 3 ? ring.length - 1 : ring.length;\n for (var i = 0; i < lineCount; i++) {\n if (i === 1 && type !== 1) {\n pbf.writeVarint(command(2, lineCount - 1));\n }\n var dx = ring[i].x - x;\n var dy = ring[i].y - y;\n pbf.writeVarint(zigzag(dx));\n pbf.writeVarint(zigzag(dy));\n x += dx;\n y += dy;\n }\n if (type === 3) {\n pbf.writeVarint(command(7, 1));\n }\n }\n }\n function writeValue(value, pbf) {\n var type = typeof value;\n if (type === \"string\") {\n pbf.writeStringField(1, value);\n } else if (type === \"boolean\") {\n pbf.writeBooleanField(7, value);\n } else if (type === \"number\") {\n if (value % 1 !== 0) {\n pbf.writeDoubleField(3, value);\n } else if (value < 0) {\n pbf.writeSVarintField(6, value);\n } else {\n pbf.writeVarintField(5, value);\n }\n }\n }\n vtPbf.fromVectorTileJs = fromVectorTileJs_1;\n vtPbf.fromGeojsonVt = fromGeojsonVt_1;\n vtPbf.GeoJSONWrapper = GeoJSONWrapper_1;\n function sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) {\n return;\n }\n var m = left + right >> 1;\n select(ids, coords, m, left, right, depth % 2);\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n }\n function select(ids, coords, k, left, right, inc) {\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n var t = coords[2 * k + inc];\n var i = left;\n var j = right;\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) {\n swapItem(ids, coords, left, right);\n }\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + inc] < t) {\n i++;\n }\n while (coords[2 * j + inc] > t) {\n j--;\n }\n }\n if (coords[2 * left + inc] === t) {\n swapItem(ids, coords, left, j);\n } else {\n j++;\n swapItem(ids, coords, j, right);\n }\n if (j <= k) {\n left = j + 1;\n }\n if (k <= j) {\n right = j - 1;\n }\n }\n }\n function swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n }\n function swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n }\n function range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n var stack = [\n 0,\n ids.length - 1,\n 0\n ];\n var result = [];\n var x, y;\n while (stack.length) {\n var axis = stack.pop();\n var right = stack.pop();\n var left = stack.pop();\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) {\n result.push(ids[i]);\n }\n }\n continue;\n }\n var m = Math.floor((left + right) / 2);\n x = coords[2 * m];\n y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) {\n result.push(ids[m]);\n }\n var nextAxis = (axis + 1) % 2;\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n return result;\n }\n function within(ids, coords, qx, qy, r, nodeSize) {\n var stack = [\n 0,\n ids.length - 1,\n 0\n ];\n var result = [];\n var r2 = r * r;\n while (stack.length) {\n var axis = stack.pop();\n var right = stack.pop();\n var left = stack.pop();\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) {\n result.push(ids[i]);\n }\n }\n continue;\n }\n var m = Math.floor((left + right) / 2);\n var x = coords[2 * m];\n var y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) {\n result.push(ids[m]);\n }\n var nextAxis = (axis + 1) % 2;\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n return result;\n }\n function sqDist(ax, ay, bx, by) {\n var dx = ax - bx;\n var dy = ay - by;\n return dx * dx + dy * dy;\n }\n var defaultGetX = function(p) {\n return p[0];\n };\n var defaultGetY = function(p) {\n return p[1];\n };\n var KDBush = function KDBush2(points, getX2, getY2, nodeSize, ArrayType) {\n if (getX2 === void 0)\n getX2 = defaultGetX;\n if (getY2 === void 0)\n getY2 = defaultGetY;\n if (nodeSize === void 0)\n nodeSize = 64;\n if (ArrayType === void 0)\n ArrayType = Float64Array;\n this.nodeSize = nodeSize;\n this.points = points;\n var IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n var ids = this.ids = new IndexArrayType(points.length);\n var coords = this.coords = new ArrayType(points.length * 2);\n for (var i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX2(points[i]);\n coords[2 * i + 1] = getY2(points[i]);\n }\n sortKD(ids, coords, nodeSize, 0, ids.length - 1, 0);\n };\n KDBush.prototype.range = function range$1(minX, minY, maxX, maxY) {\n return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n };\n KDBush.prototype.within = function within$1(x, y, r) {\n return within(this.ids, this.coords, x, y, r, this.nodeSize);\n };\n var defaultOptions = {\n minZoom: 0,\n maxZoom: 16,\n minPoints: 2,\n radius: 40,\n extent: 512,\n nodeSize: 64,\n log: false,\n generateId: false,\n reduce: null,\n map: function(props) {\n return props;\n }\n };\n var Supercluster = function Supercluster2(options) {\n this.options = extend2(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n };\n Supercluster.prototype.load = function load(points) {\n var ref = this.options;\n var log = ref.log;\n var minZoom = ref.minZoom;\n var maxZoom = ref.maxZoom;\n var nodeSize = ref.nodeSize;\n if (log) {\n console.time(\"total time\");\n }\n var timerId = \"prepare \" + points.length + \" points\";\n if (log) {\n console.time(timerId);\n }\n this.points = points;\n var clusters = [];\n for (var i = 0; i < points.length; i++) {\n if (!points[i].geometry) {\n continue;\n }\n clusters.push(createPointCluster(points[i], i));\n }\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) {\n console.timeEnd(timerId);\n }\n for (var z = maxZoom; z >= minZoom; z--) {\n var now = +Date.now();\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) {\n console.log(\"z%d: %d clusters in %dms\", z, clusters.length, +Date.now() - now);\n }\n }\n if (log) {\n console.timeEnd(\"total time\");\n }\n return this;\n };\n Supercluster.prototype.getClusters = function getClusters(bbox, zoom) {\n var minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n var minLat = Math.max(-90, Math.min(90, bbox[1]));\n var maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n var maxLat = Math.max(-90, Math.min(90, bbox[3]));\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n var easternHem = this.getClusters([\n minLng,\n minLat,\n 180,\n maxLat\n ], zoom);\n var westernHem = this.getClusters([\n -180,\n minLat,\n maxLng,\n maxLat\n ], zoom);\n return easternHem.concat(westernHem);\n }\n var tree = this.trees[this._limitZoom(zoom)];\n var ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n var clusters = [];\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n var c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n return clusters;\n };\n Supercluster.prototype.getChildren = function getChildren(clusterId) {\n var originId = this._getOriginId(clusterId);\n var originZoom = this._getOriginZoom(clusterId);\n var errorMsg = \"No cluster with the specified id.\";\n var index = this.trees[originZoom];\n if (!index) {\n throw new Error(errorMsg);\n }\n var origin = index.points[originId];\n if (!origin) {\n throw new Error(errorMsg);\n }\n var r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n var ids = index.within(origin.x, origin.y, r);\n var children = [];\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n var c = index.points[id];\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n if (children.length === 0) {\n throw new Error(errorMsg);\n }\n return children;\n };\n Supercluster.prototype.getLeaves = function getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n var leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n return leaves;\n };\n Supercluster.prototype.getTile = function getTile(z, x, y) {\n var tree = this.trees[this._limitZoom(z)];\n var z2 = Math.pow(2, z);\n var ref = this.options;\n var extent = ref.extent;\n var radius = ref.radius;\n var p = radius / extent;\n var top = (y - p) / z2;\n var bottom = (y + 1 + p) / z2;\n var tile = { features: [] };\n this._addTileFeatures(tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom), tree.points, x, y, z2, tile);\n if (x === 0) {\n this._addTileFeatures(tree.range(1 - p / z2, top, 1, bottom), tree.points, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(tree.range(0, top, p / z2, bottom), tree.points, -1, y, z2, tile);\n }\n return tile.features.length ? tile : null;\n };\n Supercluster.prototype.getClusterExpansionZoom = function getClusterExpansionZoom(clusterId) {\n var expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n var children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) {\n break;\n }\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n };\n Supercluster.prototype._appendLeaves = function _appendLeaves(result, clusterId, limit, offset, skipped) {\n var children = this.getChildren(clusterId);\n for (var i = 0, list = children; i < list.length; i += 1) {\n var child = list[i];\n var props = child.properties;\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n skipped += props.point_count;\n } else {\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n }\n } else if (skipped < offset) {\n skipped++;\n } else {\n result.push(child);\n }\n if (result.length === limit) {\n break;\n }\n }\n return skipped;\n };\n Supercluster.prototype._addTileFeatures = function _addTileFeatures(ids, points, x, y, z2, tile) {\n for (var i$1 = 0, list = ids; i$1 < list.length; i$1 += 1) {\n var i = list[i$1];\n var c = points[i];\n var isCluster = c.numPoints;\n var f = {\n type: 1,\n geometry: [[\n Math.round(this.options.extent * (c.x * z2 - x)),\n Math.round(this.options.extent * (c.y * z2 - y))\n ]],\n tags: isCluster ? getClusterProperties(c) : this.points[c.index].properties\n };\n var id = void 0;\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n id = c.index;\n } else if (this.points[c.index].id) {\n id = this.points[c.index].id;\n }\n if (id !== void 0) {\n f.id = id;\n }\n tile.features.push(f);\n }\n };\n Supercluster.prototype._limitZoom = function _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(+z, this.options.maxZoom + 1));\n };\n Supercluster.prototype._cluster = function _cluster(points, zoom) {\n var clusters = [];\n var ref = this.options;\n var radius = ref.radius;\n var extent = ref.extent;\n var reduce = ref.reduce;\n var minPoints = ref.minPoints;\n var r = radius / (extent * Math.pow(2, zoom));\n for (var i = 0; i < points.length; i++) {\n var p = points[i];\n if (p.zoom <= zoom) {\n continue;\n }\n p.zoom = zoom;\n var tree = this.trees[zoom + 1];\n var neighborIds = tree.within(p.x, p.y, r);\n var numPointsOrigin = p.numPoints || 1;\n var numPoints = numPointsOrigin;\n for (var i$1 = 0, list = neighborIds; i$1 < list.length; i$1 += 1) {\n var neighborId = list[i$1];\n var b = tree.points[neighborId];\n if (b.zoom > zoom) {\n numPoints += b.numPoints || 1;\n }\n }\n if (numPoints >= minPoints) {\n var wx = p.x * numPointsOrigin;\n var wy = p.y * numPointsOrigin;\n var clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null;\n var id = (i << 5) + (zoom + 1) + this.points.length;\n for (var i$2 = 0, list$1 = neighborIds; i$2 < list$1.length; i$2 += 1) {\n var neighborId$1 = list$1[i$2];\n var b$1 = tree.points[neighborId$1];\n if (b$1.zoom <= zoom) {\n continue;\n }\n b$1.zoom = zoom;\n var numPoints2 = b$1.numPoints || 1;\n wx += b$1.x * numPoints2;\n wy += b$1.y * numPoints2;\n b$1.parentId = id;\n if (reduce) {\n if (!clusterProperties) {\n clusterProperties = this._map(p, true);\n }\n reduce(clusterProperties, this._map(b$1));\n }\n }\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n } else {\n clusters.push(p);\n if (numPoints > 1) {\n for (var i$3 = 0, list$2 = neighborIds; i$3 < list$2.length; i$3 += 1) {\n var neighborId$2 = list$2[i$3];\n var b$2 = tree.points[neighborId$2];\n if (b$2.zoom <= zoom) {\n continue;\n }\n b$2.zoom = zoom;\n clusters.push(b$2);\n }\n }\n }\n }\n return clusters;\n };\n Supercluster.prototype._getOriginId = function _getOriginId(clusterId) {\n return clusterId - this.points.length >> 5;\n };\n Supercluster.prototype._getOriginZoom = function _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n };\n Supercluster.prototype._map = function _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend2({}, point.properties) : point.properties;\n }\n var original = this.points[point.index].properties;\n var result = this.options.map(original);\n return clone && result === original ? extend2({}, result) : result;\n };\n function createCluster(x, y, id, numPoints, properties) {\n return {\n x,\n y,\n zoom: Infinity,\n id,\n parentId: -1,\n numPoints,\n properties\n };\n }\n function createPointCluster(p, id) {\n var ref = p.geometry.coordinates;\n var x = ref[0];\n var y = ref[1];\n return {\n x: lngX(x),\n y: latY(y),\n zoom: Infinity,\n index: id,\n parentId: -1\n };\n }\n function getClusterJSON(cluster) {\n return {\n type: \"Feature\",\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: \"Point\",\n coordinates: [\n xLng(cluster.x),\n yLat(cluster.y)\n ]\n }\n };\n }\n function getClusterProperties(cluster) {\n var count = cluster.numPoints;\n var abbrev = count >= 1e4 ? Math.round(count / 1e3) + \"k\" : count >= 1e3 ? Math.round(count / 100) / 10 + \"k\" : count;\n return extend2(extend2({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n }\n function lngX(lng) {\n return lng / 360 + 0.5;\n }\n function latY(lat) {\n var sin = Math.sin(lat * Math.PI / 180);\n var y = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y < 0 ? 0 : y > 1 ? 1 : y;\n }\n function xLng(x) {\n return (x - 0.5) * 360;\n }\n function yLat(y) {\n var y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n }\n function extend2(dest, src) {\n for (var id in src) {\n dest[id] = src[id];\n }\n return dest;\n }\n function getX(p) {\n return p.x;\n }\n function getY(p) {\n return p.y;\n }\n function simplify(coords, first, last, sqTolerance) {\n var maxSqDist = sqTolerance;\n var mid = last - first >> 1;\n var minPosToMid = last - first;\n var index;\n var ax = coords[first];\n var ay = coords[first + 1];\n var bx = coords[last];\n var by = coords[last + 1];\n for (var i = first + 3; i < last; i += 3) {\n var d = getSqSegDist(coords[i], coords[i + 1], ax, ay, bx, by);\n if (d > maxSqDist) {\n index = i;\n maxSqDist = d;\n } else if (d === maxSqDist) {\n var posToMid = Math.abs(i - mid);\n if (posToMid < minPosToMid) {\n index = i;\n minPosToMid = posToMid;\n }\n }\n }\n if (maxSqDist > sqTolerance) {\n if (index - first > 3) {\n simplify(coords, first, index, sqTolerance);\n }\n coords[index + 2] = maxSqDist;\n if (last - index > 3) {\n simplify(coords, index, last, sqTolerance);\n }\n }\n }\n function getSqSegDist(px, py, x, y, bx, by) {\n var dx = bx - x;\n var dy = by - y;\n if (dx !== 0 || dy !== 0) {\n var t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x = bx;\n y = by;\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n dx = px - x;\n dy = py - y;\n return dx * dx + dy * dy;\n }\n function createFeature(id, type, geom, tags) {\n var feature = {\n id: typeof id === \"undefined\" ? null : id,\n type,\n geometry: geom,\n tags,\n minX: Infinity,\n minY: Infinity,\n maxX: -Infinity,\n maxY: -Infinity\n };\n calcBBox(feature);\n return feature;\n }\n function calcBBox(feature) {\n var geom = feature.geometry;\n var type = feature.type;\n if (type === \"Point\" || type === \"MultiPoint\" || type === \"LineString\") {\n calcLineBBox(feature, geom);\n } else if (type === \"Polygon\" || type === \"MultiLineString\") {\n for (var i = 0; i < geom.length; i++) {\n calcLineBBox(feature, geom[i]);\n }\n } else if (type === \"MultiPolygon\") {\n for (i = 0; i < geom.length; i++) {\n for (var j = 0; j < geom[i].length; j++) {\n calcLineBBox(feature, geom[i][j]);\n }\n }\n }\n }\n function calcLineBBox(feature, geom) {\n for (var i = 0; i < geom.length; i += 3) {\n feature.minX = Math.min(feature.minX, geom[i]);\n feature.minY = Math.min(feature.minY, geom[i + 1]);\n feature.maxX = Math.max(feature.maxX, geom[i]);\n feature.maxY = Math.max(feature.maxY, geom[i + 1]);\n }\n }\n function convert(data, options) {\n var features = [];\n if (data.type === \"FeatureCollection\") {\n for (var i = 0; i < data.features.length; i++) {\n convertFeature(features, data.features[i], options, i);\n }\n } else if (data.type === \"Feature\") {\n convertFeature(features, data, options);\n } else {\n convertFeature(features, { geometry: data }, options);\n }\n return features;\n }\n function convertFeature(features, geojson, options, index) {\n if (!geojson.geometry) {\n return;\n }\n var coords = geojson.geometry.coordinates;\n var type = geojson.geometry.type;\n var tolerance = Math.pow(options.tolerance / ((1 << options.maxZoom) * options.extent), 2);\n var geometry = [];\n var id = geojson.id;\n if (options.promoteId) {\n id = geojson.properties[options.promoteId];\n } else if (options.generateId) {\n id = index || 0;\n }\n if (type === \"Point\") {\n convertPoint(coords, geometry);\n } else if (type === \"MultiPoint\") {\n for (var i = 0; i < coords.length; i++) {\n convertPoint(coords[i], geometry);\n }\n } else if (type === \"LineString\") {\n convertLine(coords, geometry, tolerance, false);\n } else if (type === \"MultiLineString\") {\n if (options.lineMetrics) {\n for (i = 0; i < coords.length; i++) {\n geometry = [];\n convertLine(coords[i], geometry, tolerance, false);\n features.push(createFeature(id, \"LineString\", geometry, geojson.properties));\n }\n return;\n } else {\n convertLines(coords, geometry, tolerance, false);\n }\n } else if (type === \"Polygon\") {\n convertLines(coords, geometry, tolerance, true);\n } else if (type === \"MultiPolygon\") {\n for (i = 0; i < coords.length; i++) {\n var polygon = [];\n convertLines(coords[i], polygon, tolerance, true);\n geometry.push(polygon);\n }\n } else if (type === \"GeometryCollection\") {\n for (i = 0; i < geojson.geometry.geometries.length; i++) {\n convertFeature(features, {\n id,\n geometry: geojson.geometry.geometries[i],\n properties: geojson.properties\n }, options, index);\n }\n return;\n } else {\n throw new Error(\"Input data is not a valid GeoJSON object.\");\n }\n features.push(createFeature(id, type, geometry, geojson.properties));\n }\n function convertPoint(coords, out) {\n out.push(projectX(coords[0]));\n out.push(projectY(coords[1]));\n out.push(0);\n }\n function convertLine(ring, out, tolerance, isPolygon) {\n var x0, y0;\n var size = 0;\n for (var j = 0; j < ring.length; j++) {\n var x = projectX(ring[j][0]);\n var y = projectY(ring[j][1]);\n out.push(x);\n out.push(y);\n out.push(0);\n if (j > 0) {\n if (isPolygon) {\n size += (x0 * y - x * y0) / 2;\n } else {\n size += Math.sqrt(Math.pow(x - x0, 2) + Math.pow(y - y0, 2));\n }\n }\n x0 = x;\n y0 = y;\n }\n var last = out.length - 3;\n out[2] = 1;\n simplify(out, 0, last, tolerance);\n out[last + 2] = 1;\n out.size = Math.abs(size);\n out.start = 0;\n out.end = out.size;\n }\n function convertLines(rings, out, tolerance, isPolygon) {\n for (var i = 0; i < rings.length; i++) {\n var geom = [];\n convertLine(rings[i], geom, tolerance, isPolygon);\n out.push(geom);\n }\n }\n function projectX(x) {\n return x / 360 + 0.5;\n }\n function projectY(y) {\n var sin = Math.sin(y * Math.PI / 180);\n var y2 = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y2 < 0 ? 0 : y2 > 1 ? 1 : y2;\n }\n function clip(features, scale, k1, k2, axis, minAll, maxAll, options) {\n k1 /= scale;\n k2 /= scale;\n if (minAll >= k1 && maxAll < k2) {\n return features;\n } else if (maxAll < k1 || minAll >= k2) {\n return null;\n }\n var clipped = [];\n for (var i = 0; i < features.length; i++) {\n var feature = features[i];\n var geometry = feature.geometry;\n var type = feature.type;\n var min = axis === 0 ? feature.minX : feature.minY;\n var max = axis === 0 ? feature.maxX : feature.maxY;\n if (min >= k1 && max < k2) {\n clipped.push(feature);\n continue;\n } else if (max < k1 || min >= k2) {\n continue;\n }\n var newGeometry = [];\n if (type === \"Point\" || type === \"MultiPoint\") {\n clipPoints(geometry, newGeometry, k1, k2, axis);\n } else if (type === \"LineString\") {\n clipLine(geometry, newGeometry, k1, k2, axis, false, options.lineMetrics);\n } else if (type === \"MultiLineString\") {\n clipLines(geometry, newGeometry, k1, k2, axis, false);\n } else if (type === \"Polygon\") {\n clipLines(geometry, newGeometry, k1, k2, axis, true);\n } else if (type === \"MultiPolygon\") {\n for (var j = 0; j < geometry.length; j++) {\n var polygon = [];\n clipLines(geometry[j], polygon, k1, k2, axis, true);\n if (polygon.length) {\n newGeometry.push(polygon);\n }\n }\n }\n if (newGeometry.length) {\n if (options.lineMetrics && type === \"LineString\") {\n for (j = 0; j < newGeometry.length; j++) {\n clipped.push(createFeature(feature.id, type, newGeometry[j], feature.tags));\n }\n continue;\n }\n if (type === \"LineString\" || type === \"MultiLineString\") {\n if (newGeometry.length === 1) {\n type = \"LineString\";\n newGeometry = newGeometry[0];\n } else {\n type = \"MultiLineString\";\n }\n }\n if (type === \"Point\" || type === \"MultiPoint\") {\n type = newGeometry.length === 3 ? \"Point\" : \"MultiPoint\";\n }\n clipped.push(createFeature(feature.id, type, newGeometry, feature.tags));\n }\n }\n return clipped.length ? clipped : null;\n }\n function clipPoints(geom, newGeom, k1, k2, axis) {\n for (var i = 0; i < geom.length; i += 3) {\n var a = geom[i + axis];\n if (a >= k1 && a <= k2) {\n newGeom.push(geom[i]);\n newGeom.push(geom[i + 1]);\n newGeom.push(geom[i + 2]);\n }\n }\n }\n function clipLine(geom, newGeom, k1, k2, axis, isPolygon, trackMetrics) {\n var slice = newSlice(geom);\n var intersect = axis === 0 ? intersectX : intersectY;\n var len = geom.start;\n var segLen, t;\n for (var i = 0; i < geom.length - 3; i += 3) {\n var ax = geom[i];\n var ay = geom[i + 1];\n var az = geom[i + 2];\n var bx = geom[i + 3];\n var by = geom[i + 4];\n var a = axis === 0 ? ax : ay;\n var b = axis === 0 ? bx : by;\n var exited = false;\n if (trackMetrics) {\n segLen = Math.sqrt(Math.pow(ax - bx, 2) + Math.pow(ay - by, 2));\n }\n if (a < k1) {\n if (b > k1) {\n t = intersect(slice, ax, ay, bx, by, k1);\n if (trackMetrics) {\n slice.start = len + segLen * t;\n }\n }\n } else if (a > k2) {\n if (b < k2) {\n t = intersect(slice, ax, ay, bx, by, k2);\n if (trackMetrics) {\n slice.start = len + segLen * t;\n }\n }\n } else {\n addPoint(slice, ax, ay, az);\n }\n if (b < k1 && a >= k1) {\n t = intersect(slice, ax, ay, bx, by, k1);\n exited = true;\n }\n if (b > k2 && a <= k2) {\n t = intersect(slice, ax, ay, bx, by, k2);\n exited = true;\n }\n if (!isPolygon && exited) {\n if (trackMetrics) {\n slice.end = len + segLen * t;\n }\n newGeom.push(slice);\n slice = newSlice(geom);\n }\n if (trackMetrics) {\n len += segLen;\n }\n }\n var last = geom.length - 3;\n ax = geom[last];\n ay = geom[last + 1];\n az = geom[last + 2];\n a = axis === 0 ? ax : ay;\n if (a >= k1 && a <= k2) {\n addPoint(slice, ax, ay, az);\n }\n last = slice.length - 3;\n if (isPolygon && last >= 3 && (slice[last] !== slice[0] || slice[last + 1] !== slice[1])) {\n addPoint(slice, slice[0], slice[1], slice[2]);\n }\n if (slice.length) {\n newGeom.push(slice);\n }\n }\n function newSlice(line) {\n var slice = [];\n slice.size = line.size;\n slice.start = line.start;\n slice.end = line.end;\n return slice;\n }\n function clipLines(geom, newGeom, k1, k2, axis, isPolygon) {\n for (var i = 0; i < geom.length; i++) {\n clipLine(geom[i], newGeom, k1, k2, axis, isPolygon, false);\n }\n }\n function addPoint(out, x, y, z) {\n out.push(x);\n out.push(y);\n out.push(z);\n }\n function intersectX(out, ax, ay, bx, by, x) {\n var t = (x - ax) / (bx - ax);\n out.push(x);\n out.push(ay + (by - ay) * t);\n out.push(1);\n return t;\n }\n function intersectY(out, ax, ay, bx, by, y) {\n var t = (y - ay) / (by - ay);\n out.push(ax + (bx - ax) * t);\n out.push(y);\n out.push(1);\n return t;\n }\n function wrap(features, options) {\n var buffer = options.buffer / options.extent;\n var merged = features;\n var left = clip(features, 1, -1 - buffer, buffer, 0, -1, 2, options);\n var right = clip(features, 1, 1 - buffer, 2 + buffer, 0, -1, 2, options);\n if (left || right) {\n merged = clip(features, 1, -buffer, 1 + buffer, 0, -1, 2, options) || [];\n if (left) {\n merged = shiftFeatureCoords(left, 1).concat(merged);\n }\n if (right) {\n merged = merged.concat(shiftFeatureCoords(right, -1));\n }\n }\n return merged;\n }\n function shiftFeatureCoords(features, offset) {\n var newFeatures = [];\n for (var i = 0; i < features.length; i++) {\n var feature = features[i], type = feature.type;\n var newGeometry;\n if (type === \"Point\" || type === \"MultiPoint\" || type === \"LineString\") {\n newGeometry = shiftCoords(feature.geometry, offset);\n } else if (type === \"MultiLineString\" || type === \"Polygon\") {\n newGeometry = [];\n for (var j = 0; j < feature.geometry.length; j++) {\n newGeometry.push(shiftCoords(feature.geometry[j], offset));\n }\n } else if (type === \"MultiPolygon\") {\n newGeometry = [];\n for (j = 0; j < feature.geometry.length; j++) {\n var newPolygon = [];\n for (var k = 0; k < feature.geometry[j].length; k++) {\n newPolygon.push(shiftCoords(feature.geometry[j][k], offset));\n }\n newGeometry.push(newPolygon);\n }\n }\n newFeatures.push(createFeature(feature.id, type, newGeometry, feature.tags));\n }\n return newFeatures;\n }\n function shiftCoords(points, offset) {\n var newPoints = [];\n newPoints.size = points.size;\n if (points.start !== void 0) {\n newPoints.start = points.start;\n newPoints.end = points.end;\n }\n for (var i = 0; i < points.length; i += 3) {\n newPoints.push(points[i] + offset, points[i + 1], points[i + 2]);\n }\n return newPoints;\n }\n function transformTile(tile, extent) {\n if (tile.transformed) {\n return tile;\n }\n var z2 = 1 << tile.z, tx = tile.x, ty = tile.y, i, j, k;\n for (i = 0; i < tile.features.length; i++) {\n var feature = tile.features[i], geom = feature.geometry, type = feature.type;\n feature.geometry = [];\n if (type === 1) {\n for (j = 0; j < geom.length; j += 2) {\n feature.geometry.push(transformPoint(geom[j], geom[j + 1], extent, z2, tx, ty));\n }\n } else {\n for (j = 0; j < geom.length; j++) {\n var ring = [];\n for (k = 0; k < geom[j].length; k += 2) {\n ring.push(transformPoint(geom[j][k], geom[j][k + 1], extent, z2, tx, ty));\n }\n feature.geometry.push(ring);\n }\n }\n }\n tile.transformed = true;\n return tile;\n }\n function transformPoint(x, y, extent, z2, tx, ty) {\n return [\n Math.round(extent * (x * z2 - tx)),\n Math.round(extent * (y * z2 - ty))\n ];\n }\n function createTile(features, z, tx, ty, options) {\n var tolerance = z === options.maxZoom ? 0 : options.tolerance / ((1 << z) * options.extent);\n var tile = {\n features: [],\n numPoints: 0,\n numSimplified: 0,\n numFeatures: 0,\n source: null,\n x: tx,\n y: ty,\n z,\n transformed: false,\n minX: 2,\n minY: 1,\n maxX: -1,\n maxY: 0\n };\n for (var i = 0; i < features.length; i++) {\n tile.numFeatures++;\n addFeature(tile, features[i], tolerance, options);\n var minX = features[i].minX;\n var minY = features[i].minY;\n var maxX = features[i].maxX;\n var maxY = features[i].maxY;\n if (minX < tile.minX) {\n tile.minX = minX;\n }\n if (minY < tile.minY) {\n tile.minY = minY;\n }\n if (maxX > tile.maxX) {\n tile.maxX = maxX;\n }\n if (maxY > tile.maxY) {\n tile.maxY = maxY;\n }\n }\n return tile;\n }\n function addFeature(tile, feature, tolerance, options) {\n var geom = feature.geometry, type = feature.type, simplified = [];\n if (type === \"Point\" || type === \"MultiPoint\") {\n for (var i = 0; i < geom.length; i += 3) {\n simplified.push(geom[i]);\n simplified.push(geom[i + 1]);\n tile.numPoints++;\n tile.numSimplified++;\n }\n } else if (type === \"LineString\") {\n addLine(simplified, geom, tile, tolerance, false, false);\n } else if (type === \"MultiLineString\" || type === \"Polygon\") {\n for (i = 0; i < geom.length; i++) {\n addLine(simplified, geom[i], tile, tolerance, type === \"Polygon\", i === 0);\n }\n } else if (type === \"MultiPolygon\") {\n for (var k = 0; k < geom.length; k++) {\n var polygon = geom[k];\n for (i = 0; i < polygon.length; i++) {\n addLine(simplified, polygon[i], tile, tolerance, true, i === 0);\n }\n }\n }\n if (simplified.length) {\n var tags = feature.tags || null;\n if (type === \"LineString\" && options.lineMetrics) {\n tags = {};\n for (var key in feature.tags) {\n tags[key] = feature.tags[key];\n }\n tags[\"mapbox_clip_start\"] = geom.start / geom.size;\n tags[\"mapbox_clip_end\"] = geom.end / geom.size;\n }\n var tileFeature = {\n geometry: simplified,\n type: type === \"Polygon\" || type === \"MultiPolygon\" ? 3 : type === \"LineString\" || type === \"MultiLineString\" ? 2 : 1,\n tags\n };\n if (feature.id !== null) {\n tileFeature.id = feature.id;\n }\n tile.features.push(tileFeature);\n }\n }\n function addLine(result, geom, tile, tolerance, isPolygon, isOuter) {\n var sqTolerance = tolerance * tolerance;\n if (tolerance > 0 && geom.size < (isPolygon ? sqTolerance : tolerance)) {\n tile.numPoints += geom.length / 3;\n return;\n }\n var ring = [];\n for (var i = 0; i < geom.length; i += 3) {\n if (tolerance === 0 || geom[i + 2] > sqTolerance) {\n tile.numSimplified++;\n ring.push(geom[i]);\n ring.push(geom[i + 1]);\n }\n tile.numPoints++;\n }\n if (isPolygon) {\n rewind$1(ring, isOuter);\n }\n result.push(ring);\n }\n function rewind$1(ring, clockwise) {\n var area = 0;\n for (var i = 0, len = ring.length, j = len - 2; i < len; j = i, i += 2) {\n area += (ring[i] - ring[j]) * (ring[i + 1] + ring[j + 1]);\n }\n if (area > 0 === clockwise) {\n for (i = 0, len = ring.length; i < len / 2; i += 2) {\n var x = ring[i];\n var y = ring[i + 1];\n ring[i] = ring[len - 2 - i];\n ring[i + 1] = ring[len - 1 - i];\n ring[len - 2 - i] = x;\n ring[len - 1 - i] = y;\n }\n }\n }\n function geojsonvt(data, options) {\n return new GeoJSONVT(data, options);\n }\n function GeoJSONVT(data, options) {\n options = this.options = extend$1(Object.create(this.options), options);\n var debug = options.debug;\n if (debug) {\n console.time(\"preprocess data\");\n }\n if (options.maxZoom < 0 || options.maxZoom > 24) {\n throw new Error(\"maxZoom should be in the 0-24 range\");\n }\n if (options.promoteId && options.generateId) {\n throw new Error(\"promoteId and generateId cannot be used together.\");\n }\n var features = convert(data, options);\n this.tiles = {};\n this.tileCoords = [];\n if (debug) {\n console.timeEnd(\"preprocess data\");\n console.log(\"index: maxZoom: %d, maxPoints: %d\", options.indexMaxZoom, options.indexMaxPoints);\n console.time(\"generate tiles\");\n this.stats = {};\n this.total = 0;\n }\n features = wrap(features, options);\n if (features.length) {\n this.splitTile(features, 0, 0, 0);\n }\n if (debug) {\n if (features.length) {\n console.log(\"features: %d, points: %d\", this.tiles[0].numFeatures, this.tiles[0].numPoints);\n }\n console.timeEnd(\"generate tiles\");\n console.log(\"tiles generated:\", this.total, JSON.stringify(this.stats));\n }\n }\n GeoJSONVT.prototype.options = {\n maxZoom: 14,\n indexMaxZoom: 5,\n indexMaxPoints: 1e5,\n tolerance: 3,\n extent: 4096,\n buffer: 64,\n lineMetrics: false,\n promoteId: null,\n generateId: false,\n debug: 0\n };\n GeoJSONVT.prototype.splitTile = function(features, z, x, y, cz, cx, cy) {\n var stack = [\n features,\n z,\n x,\n y\n ], options = this.options, debug = options.debug;\n while (stack.length) {\n y = stack.pop();\n x = stack.pop();\n z = stack.pop();\n features = stack.pop();\n var z2 = 1 << z, id = toID(z, x, y), tile = this.tiles[id];\n if (!tile) {\n if (debug > 1) {\n console.time(\"creation\");\n }\n tile = this.tiles[id] = createTile(features, z, x, y, options);\n this.tileCoords.push({\n z,\n x,\n y\n });\n if (debug) {\n if (debug > 1) {\n console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\", z, x, y, tile.numFeatures, tile.numPoints, tile.numSimplified);\n console.timeEnd(\"creation\");\n }\n var key = \"z\" + z;\n this.stats[key] = (this.stats[key] || 0) + 1;\n this.total++;\n }\n }\n tile.source = features;\n if (!cz) {\n if (z === options.indexMaxZoom || tile.numPoints <= options.indexMaxPoints) {\n continue;\n }\n } else {\n if (z === options.maxZoom || z === cz) {\n continue;\n }\n var m = 1 << cz - z;\n if (x !== Math.floor(cx / m) || y !== Math.floor(cy / m)) {\n continue;\n }\n }\n tile.source = null;\n if (features.length === 0) {\n continue;\n }\n if (debug > 1) {\n console.time(\"clipping\");\n }\n var k1 = 0.5 * options.buffer / options.extent, k2 = 0.5 - k1, k3 = 0.5 + k1, k4 = 1 + k1, tl, bl, tr, br, left, right;\n tl = bl = tr = br = null;\n left = clip(features, z2, x - k1, x + k3, 0, tile.minX, tile.maxX, options);\n right = clip(features, z2, x + k2, x + k4, 0, tile.minX, tile.maxX, options);\n features = null;\n if (left) {\n tl = clip(left, z2, y - k1, y + k3, 1, tile.minY, tile.maxY, options);\n bl = clip(left, z2, y + k2, y + k4, 1, tile.minY, tile.maxY, options);\n left = null;\n }\n if (right) {\n tr = clip(right, z2, y - k1, y + k3, 1, tile.minY, tile.maxY, options);\n br = clip(right, z2, y + k2, y + k4, 1, tile.minY, tile.maxY, options);\n right = null;\n }\n if (debug > 1) {\n console.timeEnd(\"clipping\");\n }\n stack.push(tl || [], z + 1, x * 2, y * 2);\n stack.push(bl || [], z + 1, x * 2, y * 2 + 1);\n stack.push(tr || [], z + 1, x * 2 + 1, y * 2);\n stack.push(br || [], z + 1, x * 2 + 1, y * 2 + 1);\n }\n };\n GeoJSONVT.prototype.getTile = function(z, x, y) {\n var options = this.options, extent = options.extent, debug = options.debug;\n if (z < 0 || z > 24) {\n return null;\n }\n var z2 = 1 << z;\n x = (x % z2 + z2) % z2;\n var id = toID(z, x, y);\n if (this.tiles[id]) {\n return transformTile(this.tiles[id], extent);\n }\n if (debug > 1) {\n console.log(\"drilling down to z%d-%d-%d\", z, x, y);\n }\n var z0 = z, x0 = x, y0 = y, parent;\n while (!parent && z0 > 0) {\n z0--;\n x0 = Math.floor(x0 / 2);\n y0 = Math.floor(y0 / 2);\n parent = this.tiles[toID(z0, x0, y0)];\n }\n if (!parent || !parent.source) {\n return null;\n }\n if (debug > 1) {\n console.log(\"found parent tile z%d-%d-%d\", z0, x0, y0);\n }\n if (debug > 1) {\n console.time(\"drilling down\");\n }\n this.splitTile(parent.source, z0, x0, y0, z, x, y);\n if (debug > 1) {\n console.timeEnd(\"drilling down\");\n }\n return this.tiles[id] ? transformTile(this.tiles[id], extent) : null;\n };\n function toID(z, x, y) {\n return ((1 << z) * y + x) * 32 + z;\n }\n function extend$1(dest, src) {\n for (var i in src) {\n dest[i] = src[i];\n }\n return dest;\n }\n function loadGeoJSONTile(params, callback) {\n var canonical = params.tileID.canonical;\n if (!this._geoJSONIndex) {\n return callback(null, null);\n }\n var geoJSONTile = this._geoJSONIndex.getTile(canonical.z, canonical.x, canonical.y);\n if (!geoJSONTile) {\n return callback(null, null);\n }\n var geojsonWrapper = new GeoJSONWrapper(geoJSONTile.features);\n var pbf = vtPbf(geojsonWrapper);\n if (pbf.byteOffset !== 0 || pbf.byteLength !== pbf.buffer.byteLength) {\n pbf = new Uint8Array(pbf);\n }\n callback(null, {\n vectorTile: geojsonWrapper,\n rawData: pbf.buffer\n });\n }\n var GeoJSONWorkerSource = function(VectorTileWorkerSource2) {\n function GeoJSONWorkerSource2(actor, layerIndex, availableImages, loadGeoJSON) {\n VectorTileWorkerSource2.call(this, actor, layerIndex, availableImages, loadGeoJSONTile);\n if (loadGeoJSON) {\n this.loadGeoJSON = loadGeoJSON;\n }\n }\n if (VectorTileWorkerSource2)\n GeoJSONWorkerSource2.__proto__ = VectorTileWorkerSource2;\n GeoJSONWorkerSource2.prototype = Object.create(VectorTileWorkerSource2 && VectorTileWorkerSource2.prototype);\n GeoJSONWorkerSource2.prototype.constructor = GeoJSONWorkerSource2;\n GeoJSONWorkerSource2.prototype.loadData = function loadData(params, callback) {\n if (this._pendingCallback) {\n this._pendingCallback(null, { abandoned: true });\n }\n this._pendingCallback = callback;\n this._pendingLoadDataParams = params;\n if (this._state && this._state !== \"Idle\") {\n this._state = \"NeedsLoadData\";\n } else {\n this._state = \"Coalescing\";\n this._loadData();\n }\n };\n GeoJSONWorkerSource2.prototype._loadData = function _loadData() {\n var this$1 = this;\n if (!this._pendingCallback || !this._pendingLoadDataParams) {\n return;\n }\n var callback = this._pendingCallback;\n var params = this._pendingLoadDataParams;\n delete this._pendingCallback;\n delete this._pendingLoadDataParams;\n var perf = params && params.request && params.request.collectResourceTiming ? new performance2.RequestPerformance(params.request) : false;\n this.loadGeoJSON(params, function(err, data) {\n if (err || !data) {\n return callback(err);\n } else if (typeof data !== \"object\") {\n return callback(new Error(\"Input data given to '\" + params.source + \"' is not a valid GeoJSON object.\"));\n } else {\n geojsonRewind(data, true);\n try {\n if (params.filter) {\n var compiled = performance2.createExpression(params.filter, {\n type: \"boolean\",\n \"property-type\": \"data-driven\",\n overridable: false,\n transition: false\n });\n if (compiled.result === \"error\") {\n throw new Error(compiled.value.map(function(err2) {\n return err2.key + \": \" + err2.message;\n }).join(\", \"));\n }\n var features = data.features.filter(function(feature) {\n return compiled.value.evaluate({ zoom: 0 }, feature);\n });\n data = {\n type: \"FeatureCollection\",\n features\n };\n }\n this$1._geoJSONIndex = params.cluster ? new Supercluster(getSuperclusterOptions(params)).load(data.features) : geojsonvt(data, params.geojsonVtOptions);\n } catch (err2) {\n return callback(err2);\n }\n this$1.loaded = {};\n var result = {};\n if (perf) {\n var resourceTimingData = perf.finish();\n if (resourceTimingData) {\n result.resourceTiming = {};\n result.resourceTiming[params.source] = JSON.parse(JSON.stringify(resourceTimingData));\n }\n }\n callback(null, result);\n }\n });\n };\n GeoJSONWorkerSource2.prototype.coalesce = function coalesce() {\n if (this._state === \"Coalescing\") {\n this._state = \"Idle\";\n } else if (this._state === \"NeedsLoadData\") {\n this._state = \"Coalescing\";\n this._loadData();\n }\n };\n GeoJSONWorkerSource2.prototype.reloadTile = function reloadTile(params, callback) {\n var loaded = this.loaded, uid = params.uid;\n if (loaded && loaded[uid]) {\n return VectorTileWorkerSource2.prototype.reloadTile.call(this, params, callback);\n } else {\n return this.loadTile(params, callback);\n }\n };\n GeoJSONWorkerSource2.prototype.loadGeoJSON = function loadGeoJSON(params, callback) {\n if (params.request) {\n performance2.getJSON(params.request, callback);\n } else if (typeof params.data === \"string\") {\n try {\n return callback(null, JSON.parse(params.data));\n } catch (e) {\n return callback(new Error(\"Input data given to '\" + params.source + \"' is not a valid GeoJSON object.\"));\n }\n } else {\n return callback(new Error(\"Input data given to '\" + params.source + \"' is not a valid GeoJSON object.\"));\n }\n };\n GeoJSONWorkerSource2.prototype.removeSource = function removeSource(params, callback) {\n if (this._pendingCallback) {\n this._pendingCallback(null, { abandoned: true });\n }\n callback();\n };\n GeoJSONWorkerSource2.prototype.getClusterExpansionZoom = function getClusterExpansionZoom(params, callback) {\n try {\n callback(null, this._geoJSONIndex.getClusterExpansionZoom(params.clusterId));\n } catch (e) {\n callback(e);\n }\n };\n GeoJSONWorkerSource2.prototype.getClusterChildren = function getClusterChildren(params, callback) {\n try {\n callback(null, this._geoJSONIndex.getChildren(params.clusterId));\n } catch (e) {\n callback(e);\n }\n };\n GeoJSONWorkerSource2.prototype.getClusterLeaves = function getClusterLeaves(params, callback) {\n try {\n callback(null, this._geoJSONIndex.getLeaves(params.clusterId, params.limit, params.offset));\n } catch (e) {\n callback(e);\n }\n };\n return GeoJSONWorkerSource2;\n }(VectorTileWorkerSource);\n function getSuperclusterOptions(ref) {\n var superclusterOptions = ref.superclusterOptions;\n var clusterProperties = ref.clusterProperties;\n if (!clusterProperties || !superclusterOptions) {\n return superclusterOptions;\n }\n var mapExpressions = {};\n var reduceExpressions = {};\n var globals = {\n accumulated: null,\n zoom: 0\n };\n var feature = { properties: null };\n var propertyNames = Object.keys(clusterProperties);\n for (var i = 0, list = propertyNames; i < list.length; i += 1) {\n var key = list[i];\n var ref$1 = clusterProperties[key];\n var operator = ref$1[0];\n var mapExpression = ref$1[1];\n var mapExpressionParsed = performance2.createExpression(mapExpression);\n var reduceExpressionParsed = performance2.createExpression(typeof operator === \"string\" ? [\n operator,\n [\"accumulated\"],\n [\n \"get\",\n key\n ]\n ] : operator);\n mapExpressions[key] = mapExpressionParsed.value;\n reduceExpressions[key] = reduceExpressionParsed.value;\n }\n superclusterOptions.map = function(pointProperties) {\n feature.properties = pointProperties;\n var properties = {};\n for (var i2 = 0, list2 = propertyNames; i2 < list2.length; i2 += 1) {\n var key2 = list2[i2];\n properties[key2] = mapExpressions[key2].evaluate(globals, feature);\n }\n return properties;\n };\n superclusterOptions.reduce = function(accumulated, clusterProperties2) {\n feature.properties = clusterProperties2;\n for (var i2 = 0, list2 = propertyNames; i2 < list2.length; i2 += 1) {\n var key2 = list2[i2];\n globals.accumulated = accumulated[key2];\n accumulated[key2] = reduceExpressions[key2].evaluate(globals, feature);\n }\n };\n return superclusterOptions;\n }\n var Worker2 = function Worker3(self2) {\n var this$1 = this;\n this.self = self2;\n this.actor = new performance2.Actor(self2, this);\n this.layerIndexes = {};\n this.availableImages = {};\n this.workerSourceTypes = {\n vector: VectorTileWorkerSource,\n geojson: GeoJSONWorkerSource\n };\n this.workerSources = {};\n this.demWorkerSources = {};\n this.self.registerWorkerSource = function(name2, WorkerSource) {\n if (this$1.workerSourceTypes[name2]) {\n throw new Error('Worker source with name \"' + name2 + '\" already registered.');\n }\n this$1.workerSourceTypes[name2] = WorkerSource;\n };\n this.self.registerRTLTextPlugin = function(rtlTextPlugin) {\n if (performance2.plugin.isParsed()) {\n throw new Error(\"RTL text plugin already registered.\");\n }\n performance2.plugin[\"applyArabicShaping\"] = rtlTextPlugin.applyArabicShaping;\n performance2.plugin[\"processBidirectionalText\"] = rtlTextPlugin.processBidirectionalText;\n performance2.plugin[\"processStyledBidirectionalText\"] = rtlTextPlugin.processStyledBidirectionalText;\n };\n };\n Worker2.prototype.setReferrer = function setReferrer(mapID, referrer) {\n this.referrer = referrer;\n };\n Worker2.prototype.setImages = function setImages(mapId, images, callback) {\n this.availableImages[mapId] = images;\n for (var workerSource in this.workerSources[mapId]) {\n var ws = this.workerSources[mapId][workerSource];\n for (var source in ws) {\n ws[source].availableImages = images;\n }\n }\n callback();\n };\n Worker2.prototype.setLayers = function setLayers(mapId, layers, callback) {\n this.getLayerIndex(mapId).replace(layers);\n callback();\n };\n Worker2.prototype.updateLayers = function updateLayers(mapId, params, callback) {\n this.getLayerIndex(mapId).update(params.layers, params.removedIds);\n callback();\n };\n Worker2.prototype.loadTile = function loadTile(mapId, params, callback) {\n this.getWorkerSource(mapId, params.type, params.source).loadTile(params, callback);\n };\n Worker2.prototype.loadDEMTile = function loadDEMTile(mapId, params, callback) {\n this.getDEMWorkerSource(mapId, params.source).loadTile(params, callback);\n };\n Worker2.prototype.reloadTile = function reloadTile(mapId, params, callback) {\n this.getWorkerSource(mapId, params.type, params.source).reloadTile(params, callback);\n };\n Worker2.prototype.abortTile = function abortTile(mapId, params, callback) {\n this.getWorkerSource(mapId, params.type, params.source).abortTile(params, callback);\n };\n Worker2.prototype.removeTile = function removeTile(mapId, params, callback) {\n this.getWorkerSource(mapId, params.type, params.source).removeTile(params, callback);\n };\n Worker2.prototype.removeDEMTile = function removeDEMTile(mapId, params) {\n this.getDEMWorkerSource(mapId, params.source).removeTile(params);\n };\n Worker2.prototype.removeSource = function removeSource(mapId, params, callback) {\n if (!this.workerSources[mapId] || !this.workerSources[mapId][params.type] || !this.workerSources[mapId][params.type][params.source]) {\n return;\n }\n var worker2 = this.workerSources[mapId][params.type][params.source];\n delete this.workerSources[mapId][params.type][params.source];\n if (worker2.removeSource !== void 0) {\n worker2.removeSource(params, callback);\n } else {\n callback();\n }\n };\n Worker2.prototype.loadWorkerSource = function loadWorkerSource(map, params, callback) {\n try {\n this.self.importScripts(params.url);\n callback();\n } catch (e) {\n callback(e.toString());\n }\n };\n Worker2.prototype.syncRTLPluginState = function syncRTLPluginState(map, state, callback) {\n try {\n performance2.plugin.setState(state);\n var pluginURL = performance2.plugin.getPluginURL();\n if (performance2.plugin.isLoaded() && !performance2.plugin.isParsed() && pluginURL != null) {\n this.self.importScripts(pluginURL);\n var complete = performance2.plugin.isParsed();\n var error = complete ? void 0 : new Error(\"RTL Text Plugin failed to import scripts from \" + pluginURL);\n callback(error, complete);\n }\n } catch (e) {\n callback(e.toString());\n }\n };\n Worker2.prototype.getAvailableImages = function getAvailableImages(mapId) {\n var availableImages = this.availableImages[mapId];\n if (!availableImages) {\n availableImages = [];\n }\n return availableImages;\n };\n Worker2.prototype.getLayerIndex = function getLayerIndex(mapId) {\n var layerIndexes = this.layerIndexes[mapId];\n if (!layerIndexes) {\n layerIndexes = this.layerIndexes[mapId] = new StyleLayerIndex();\n }\n return layerIndexes;\n };\n Worker2.prototype.getWorkerSource = function getWorkerSource(mapId, type, source) {\n var this$1 = this;\n if (!this.workerSources[mapId]) {\n this.workerSources[mapId] = {};\n }\n if (!this.workerSources[mapId][type]) {\n this.workerSources[mapId][type] = {};\n }\n if (!this.workerSources[mapId][type][source]) {\n var actor = {\n send: function(type2, data, callback) {\n this$1.actor.send(type2, data, callback, mapId);\n }\n };\n this.workerSources[mapId][type][source] = new this.workerSourceTypes[type](actor, this.getLayerIndex(mapId), this.getAvailableImages(mapId));\n }\n return this.workerSources[mapId][type][source];\n };\n Worker2.prototype.getDEMWorkerSource = function getDEMWorkerSource(mapId, source) {\n if (!this.demWorkerSources[mapId]) {\n this.demWorkerSources[mapId] = {};\n }\n if (!this.demWorkerSources[mapId][source]) {\n this.demWorkerSources[mapId][source] = new RasterDEMTileWorkerSource();\n }\n return this.demWorkerSources[mapId][source];\n };\n Worker2.prototype.enforceCacheSizeLimit = function enforceCacheSizeLimit$1(mapId, limit) {\n performance2.enforceCacheSizeLimit(limit);\n };\n if (typeof WorkerGlobalScope !== \"undefined\" && typeof self !== \"undefined\" && self instanceof WorkerGlobalScope) {\n self.worker = new Worker2(self);\n }\n return Worker2;\n });\n define2([\"./shared\"], function(performance2) {\n \"use strict\";\n var mapboxGlSupported = performance2.createCommonjsModule(function(module2) {\n if (module2.exports) {\n module2.exports = isSupported;\n } else if (window) {\n window.mapboxgl = window.mapboxgl || {};\n window.mapboxgl.supported = isSupported;\n window.mapboxgl.notSupportedReason = notSupportedReason;\n }\n function isSupported(options) {\n return !notSupportedReason(options);\n }\n function notSupportedReason(options) {\n if (!isBrowser()) {\n return \"not a browser\";\n }\n if (!isArraySupported()) {\n return \"insufficent Array support\";\n }\n if (!isFunctionSupported()) {\n return \"insufficient Function support\";\n }\n if (!isObjectSupported()) {\n return \"insufficient Object support\";\n }\n if (!isJSONSupported()) {\n return \"insufficient JSON support\";\n }\n if (!isWorkerSupported()) {\n return \"insufficient worker support\";\n }\n if (!isUint8ClampedArraySupported()) {\n return \"insufficient Uint8ClampedArray support\";\n }\n if (!isArrayBufferSupported()) {\n return \"insufficient ArrayBuffer support\";\n }\n if (!isCanvasGetImageDataSupported()) {\n return \"insufficient Canvas/getImageData support\";\n }\n if (!isWebGLSupportedCached(options && options.failIfMajorPerformanceCaveat)) {\n return \"insufficient WebGL support\";\n }\n }\n function isBrowser() {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\";\n }\n function isArraySupported() {\n return Array.prototype && Array.prototype.every && Array.prototype.filter && Array.prototype.forEach && Array.prototype.indexOf && Array.prototype.lastIndexOf && Array.prototype.map && Array.prototype.some && Array.prototype.reduce && Array.prototype.reduceRight && Array.isArray;\n }\n function isFunctionSupported() {\n return Function.prototype && Function.prototype.bind;\n }\n function isObjectSupported() {\n return Object.keys && Object.create && Object.getPrototypeOf && Object.getOwnPropertyNames && Object.isSealed && Object.isFrozen && Object.isExtensible && Object.getOwnPropertyDescriptor && Object.defineProperty && Object.defineProperties && Object.seal && Object.freeze && Object.preventExtensions;\n }\n function isJSONSupported() {\n return \"JSON\" in window && \"parse\" in JSON && \"stringify\" in JSON;\n }\n function isWorkerSupported() {\n if (!(\"Worker\" in window && \"Blob\" in window && \"URL\" in window)) {\n return false;\n }\n var blob = new Blob([\"\"], { type: \"text/javascript\" });\n var workerURL = URL.createObjectURL(blob);\n var supported;\n var worker2;\n try {\n worker2 = new Worker(workerURL);\n supported = true;\n } catch (e) {\n supported = false;\n }\n if (worker2) {\n worker2.terminate();\n }\n URL.revokeObjectURL(workerURL);\n return supported;\n }\n function isUint8ClampedArraySupported() {\n return \"Uint8ClampedArray\" in window;\n }\n function isArrayBufferSupported() {\n return ArrayBuffer.isView;\n }\n function isCanvasGetImageDataSupported() {\n var canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = 1;\n var context = canvas.getContext(\"2d\");\n if (!context) {\n return false;\n }\n var imageData = context.getImageData(0, 0, 1, 1);\n return imageData && imageData.width === canvas.width;\n }\n var isWebGLSupportedCache = {};\n function isWebGLSupportedCached(failIfMajorPerformanceCaveat) {\n if (isWebGLSupportedCache[failIfMajorPerformanceCaveat] === void 0) {\n isWebGLSupportedCache[failIfMajorPerformanceCaveat] = isWebGLSupported(failIfMajorPerformanceCaveat);\n }\n return isWebGLSupportedCache[failIfMajorPerformanceCaveat];\n }\n isSupported.webGLContextAttributes = {\n antialias: false,\n alpha: true,\n stencil: true,\n depth: true\n };\n function getWebGLContext(failIfMajorPerformanceCaveat) {\n var canvas = document.createElement(\"canvas\");\n var attributes = Object.create(isSupported.webGLContextAttributes);\n attributes.failIfMajorPerformanceCaveat = failIfMajorPerformanceCaveat;\n if (canvas.probablySupportsContext) {\n return canvas.probablySupportsContext(\"webgl\", attributes) || canvas.probablySupportsContext(\"experimental-webgl\", attributes);\n } else if (canvas.supportsContext) {\n return canvas.supportsContext(\"webgl\", attributes) || canvas.supportsContext(\"experimental-webgl\", attributes);\n } else {\n return canvas.getContext(\"webgl\", attributes) || canvas.getContext(\"experimental-webgl\", attributes);\n }\n }\n function isWebGLSupported(failIfMajorPerformanceCaveat) {\n var gl2 = getWebGLContext(failIfMajorPerformanceCaveat);\n if (!gl2) {\n return false;\n }\n var shader = gl2.createShader(gl2.VERTEX_SHADER);\n if (!shader || gl2.isContextLost()) {\n return false;\n }\n gl2.shaderSource(shader, \"void main() {}\");\n gl2.compileShader(shader);\n return gl2.getShaderParameter(shader, gl2.COMPILE_STATUS) === true;\n }\n });\n var DOM = {};\n DOM.create = function(tagName, className, container) {\n var el = performance2.window.document.createElement(tagName);\n if (className !== void 0) {\n el.className = className;\n }\n if (container) {\n container.appendChild(el);\n }\n return el;\n };\n DOM.createNS = function(namespaceURI, tagName) {\n var el = performance2.window.document.createElementNS(namespaceURI, tagName);\n return el;\n };\n var docStyle = performance2.window.document && performance2.window.document.documentElement.style;\n function testProp(props) {\n if (!docStyle) {\n return props[0];\n }\n for (var i = 0; i < props.length; i++) {\n if (props[i] in docStyle) {\n return props[i];\n }\n }\n return props[0];\n }\n var selectProp = testProp([\n \"userSelect\",\n \"MozUserSelect\",\n \"WebkitUserSelect\",\n \"msUserSelect\"\n ]);\n var userSelect;\n DOM.disableDrag = function() {\n if (docStyle && selectProp) {\n userSelect = docStyle[selectProp];\n docStyle[selectProp] = \"none\";\n }\n };\n DOM.enableDrag = function() {\n if (docStyle && selectProp) {\n docStyle[selectProp] = userSelect;\n }\n };\n var transformProp = testProp([\n \"transform\",\n \"WebkitTransform\"\n ]);\n DOM.setTransform = function(el, value) {\n el.style[transformProp] = value;\n };\n var passiveSupported = false;\n try {\n var options$1 = Object.defineProperty({}, \"passive\", {\n get: function get() {\n passiveSupported = true;\n }\n });\n performance2.window.addEventListener(\"test\", options$1, options$1);\n performance2.window.removeEventListener(\"test\", options$1, options$1);\n } catch (err) {\n passiveSupported = false;\n }\n DOM.addEventListener = function(target, type, callback, options) {\n if (options === void 0)\n options = {};\n if (\"passive\" in options && passiveSupported) {\n target.addEventListener(type, callback, options);\n } else {\n target.addEventListener(type, callback, options.capture);\n }\n };\n DOM.removeEventListener = function(target, type, callback, options) {\n if (options === void 0)\n options = {};\n if (\"passive\" in options && passiveSupported) {\n target.removeEventListener(type, callback, options);\n } else {\n target.removeEventListener(type, callback, options.capture);\n }\n };\n var suppressClick = function(e) {\n e.preventDefault();\n e.stopPropagation();\n performance2.window.removeEventListener(\"click\", suppressClick, true);\n };\n DOM.suppressClick = function() {\n performance2.window.addEventListener(\"click\", suppressClick, true);\n performance2.window.setTimeout(function() {\n performance2.window.removeEventListener(\"click\", suppressClick, true);\n }, 0);\n };\n DOM.mousePos = function(el, e) {\n var rect = el.getBoundingClientRect();\n return new performance2.Point(e.clientX - rect.left - el.clientLeft, e.clientY - rect.top - el.clientTop);\n };\n DOM.touchPos = function(el, touches) {\n var rect = el.getBoundingClientRect(), points = [];\n for (var i = 0; i < touches.length; i++) {\n points.push(new performance2.Point(touches[i].clientX - rect.left - el.clientLeft, touches[i].clientY - rect.top - el.clientTop));\n }\n return points;\n };\n DOM.mouseButton = function(e) {\n if (typeof performance2.window.InstallTrigger !== \"undefined\" && e.button === 2 && e.ctrlKey && performance2.window.navigator.platform.toUpperCase().indexOf(\"MAC\") >= 0) {\n return 0;\n }\n return e.button;\n };\n DOM.remove = function(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n };\n function loadSprite(baseURL, requestManager, callback) {\n var json, image, error;\n var format = performance2.browser.devicePixelRatio > 1 ? \"@2x\" : \"\";\n var jsonRequest = performance2.getJSON(requestManager.transformRequest(requestManager.normalizeSpriteURL(baseURL, format, \".json\"), performance2.ResourceType.SpriteJSON), function(err, data) {\n jsonRequest = null;\n if (!error) {\n error = err;\n json = data;\n maybeComplete();\n }\n });\n var imageRequest = performance2.getImage(requestManager.transformRequest(requestManager.normalizeSpriteURL(baseURL, format, \".png\"), performance2.ResourceType.SpriteImage), function(err, img) {\n imageRequest = null;\n if (!error) {\n error = err;\n image = img;\n maybeComplete();\n }\n });\n function maybeComplete() {\n if (error) {\n callback(error);\n } else if (json && image) {\n var imageData = performance2.browser.getImageData(image);\n var result = {};\n for (var id in json) {\n var ref = json[id];\n var width = ref.width;\n var height = ref.height;\n var x = ref.x;\n var y = ref.y;\n var sdf = ref.sdf;\n var pixelRatio = ref.pixelRatio;\n var stretchX = ref.stretchX;\n var stretchY = ref.stretchY;\n var content = ref.content;\n var data = new performance2.RGBAImage({\n width,\n height\n });\n performance2.RGBAImage.copy(imageData, data, {\n x,\n y\n }, {\n x: 0,\n y: 0\n }, {\n width,\n height\n });\n result[id] = {\n data,\n pixelRatio,\n sdf,\n stretchX,\n stretchY,\n content\n };\n }\n callback(null, result);\n }\n }\n return {\n cancel: function cancel() {\n if (jsonRequest) {\n jsonRequest.cancel();\n jsonRequest = null;\n }\n if (imageRequest) {\n imageRequest.cancel();\n imageRequest = null;\n }\n }\n };\n }\n function renderStyleImage(image) {\n var userImage = image.userImage;\n if (userImage && userImage.render) {\n var updated = userImage.render();\n if (updated) {\n image.data.replace(new Uint8Array(userImage.data.buffer));\n return true;\n }\n }\n return false;\n }\n var padding = 1;\n var ImageManager = function(Evented) {\n function ImageManager2() {\n Evented.call(this);\n this.images = {};\n this.updatedImages = {};\n this.callbackDispatchedThisFrame = {};\n this.loaded = false;\n this.requestors = [];\n this.patterns = {};\n this.atlasImage = new performance2.RGBAImage({\n width: 1,\n height: 1\n });\n this.dirty = true;\n }\n if (Evented)\n ImageManager2.__proto__ = Evented;\n ImageManager2.prototype = Object.create(Evented && Evented.prototype);\n ImageManager2.prototype.constructor = ImageManager2;\n ImageManager2.prototype.isLoaded = function isLoaded() {\n return this.loaded;\n };\n ImageManager2.prototype.setLoaded = function setLoaded(loaded) {\n if (this.loaded === loaded) {\n return;\n }\n this.loaded = loaded;\n if (loaded) {\n for (var i = 0, list = this.requestors; i < list.length; i += 1) {\n var ref = list[i];\n var ids = ref.ids;\n var callback = ref.callback;\n this._notify(ids, callback);\n }\n this.requestors = [];\n }\n };\n ImageManager2.prototype.getImage = function getImage(id) {\n return this.images[id];\n };\n ImageManager2.prototype.addImage = function addImage(id, image) {\n if (this._validate(id, image)) {\n this.images[id] = image;\n }\n };\n ImageManager2.prototype._validate = function _validate(id, image) {\n var valid = true;\n if (!this._validateStretch(image.stretchX, image.data && image.data.width)) {\n this.fire(new performance2.ErrorEvent(new Error('Image \"' + id + '\" has invalid \"stretchX\" value')));\n valid = false;\n }\n if (!this._validateStretch(image.stretchY, image.data && image.data.height)) {\n this.fire(new performance2.ErrorEvent(new Error('Image \"' + id + '\" has invalid \"stretchY\" value')));\n valid = false;\n }\n if (!this._validateContent(image.content, image)) {\n this.fire(new performance2.ErrorEvent(new Error('Image \"' + id + '\" has invalid \"content\" value')));\n valid = false;\n }\n return valid;\n };\n ImageManager2.prototype._validateStretch = function _validateStretch(stretch, size) {\n if (!stretch) {\n return true;\n }\n var last = 0;\n for (var i = 0, list = stretch; i < list.length; i += 1) {\n var part = list[i];\n if (part[0] < last || part[1] < part[0] || size < part[1]) {\n return false;\n }\n last = part[1];\n }\n return true;\n };\n ImageManager2.prototype._validateContent = function _validateContent(content, image) {\n if (!content) {\n return true;\n }\n if (content.length !== 4) {\n return false;\n }\n if (content[0] < 0 || image.data.width < content[0]) {\n return false;\n }\n if (content[1] < 0 || image.data.height < content[1]) {\n return false;\n }\n if (content[2] < 0 || image.data.width < content[2]) {\n return false;\n }\n if (content[3] < 0 || image.data.height < content[3]) {\n return false;\n }\n if (content[2] < content[0]) {\n return false;\n }\n if (content[3] < content[1]) {\n return false;\n }\n return true;\n };\n ImageManager2.prototype.updateImage = function updateImage(id, image) {\n var oldImage = this.images[id];\n image.version = oldImage.version + 1;\n this.images[id] = image;\n this.updatedImages[id] = true;\n };\n ImageManager2.prototype.removeImage = function removeImage(id) {\n var image = this.images[id];\n delete this.images[id];\n delete this.patterns[id];\n if (image.userImage && image.userImage.onRemove) {\n image.userImage.onRemove();\n }\n };\n ImageManager2.prototype.listImages = function listImages() {\n return Object.keys(this.images);\n };\n ImageManager2.prototype.getImages = function getImages(ids, callback) {\n var hasAllDependencies = true;\n if (!this.isLoaded()) {\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n if (!this.images[id]) {\n hasAllDependencies = false;\n }\n }\n }\n if (this.isLoaded() || hasAllDependencies) {\n this._notify(ids, callback);\n } else {\n this.requestors.push({\n ids,\n callback\n });\n }\n };\n ImageManager2.prototype._notify = function _notify(ids, callback) {\n var response = {};\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n if (!this.images[id]) {\n this.fire(new performance2.Event(\"styleimagemissing\", { id }));\n }\n var image = this.images[id];\n if (image) {\n response[id] = {\n data: image.data.clone(),\n pixelRatio: image.pixelRatio,\n sdf: image.sdf,\n version: image.version,\n stretchX: image.stretchX,\n stretchY: image.stretchY,\n content: image.content,\n hasRenderCallback: Boolean(image.userImage && image.userImage.render)\n };\n } else {\n performance2.warnOnce('Image \"' + id + '\" could not be loaded. Please make sure you have added the image with map.addImage() or a \"sprite\" property in your style. You can provide missing images by listening for the \"styleimagemissing\" map event.');\n }\n }\n callback(null, response);\n };\n ImageManager2.prototype.getPixelSize = function getPixelSize() {\n var ref = this.atlasImage;\n var width = ref.width;\n var height = ref.height;\n return {\n width,\n height\n };\n };\n ImageManager2.prototype.getPattern = function getPattern(id) {\n var pattern = this.patterns[id];\n var image = this.getImage(id);\n if (!image) {\n return null;\n }\n if (pattern && pattern.position.version === image.version) {\n return pattern.position;\n }\n if (!pattern) {\n var w = image.data.width + padding * 2;\n var h = image.data.height + padding * 2;\n var bin = {\n w,\n h,\n x: 0,\n y: 0\n };\n var position = new performance2.ImagePosition(bin, image);\n this.patterns[id] = {\n bin,\n position\n };\n } else {\n pattern.position.version = image.version;\n }\n this._updatePatternAtlas();\n return this.patterns[id].position;\n };\n ImageManager2.prototype.bind = function bind(context) {\n var gl2 = context.gl;\n if (!this.atlasTexture) {\n this.atlasTexture = new performance2.Texture(context, this.atlasImage, gl2.RGBA);\n } else if (this.dirty) {\n this.atlasTexture.update(this.atlasImage);\n this.dirty = false;\n }\n this.atlasTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n };\n ImageManager2.prototype._updatePatternAtlas = function _updatePatternAtlas() {\n var bins = [];\n for (var id in this.patterns) {\n bins.push(this.patterns[id].bin);\n }\n var ref = performance2.potpack(bins);\n var w = ref.w;\n var h = ref.h;\n var dst = this.atlasImage;\n dst.resize({\n width: w || 1,\n height: h || 1\n });\n for (var id$1 in this.patterns) {\n var ref$1 = this.patterns[id$1];\n var bin = ref$1.bin;\n var x = bin.x + padding;\n var y = bin.y + padding;\n var src = this.images[id$1].data;\n var w$1 = src.width;\n var h$1 = src.height;\n performance2.RGBAImage.copy(src, dst, {\n x: 0,\n y: 0\n }, {\n x,\n y\n }, {\n width: w$1,\n height: h$1\n });\n performance2.RGBAImage.copy(src, dst, {\n x: 0,\n y: h$1 - 1\n }, {\n x,\n y: y - 1\n }, {\n width: w$1,\n height: 1\n });\n performance2.RGBAImage.copy(src, dst, {\n x: 0,\n y: 0\n }, {\n x,\n y: y + h$1\n }, {\n width: w$1,\n height: 1\n });\n performance2.RGBAImage.copy(src, dst, {\n x: w$1 - 1,\n y: 0\n }, {\n x: x - 1,\n y\n }, {\n width: 1,\n height: h$1\n });\n performance2.RGBAImage.copy(src, dst, {\n x: 0,\n y: 0\n }, {\n x: x + w$1,\n y\n }, {\n width: 1,\n height: h$1\n });\n }\n this.dirty = true;\n };\n ImageManager2.prototype.beginFrame = function beginFrame() {\n this.callbackDispatchedThisFrame = {};\n };\n ImageManager2.prototype.dispatchRenderCallbacks = function dispatchRenderCallbacks(ids) {\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n if (this.callbackDispatchedThisFrame[id]) {\n continue;\n }\n this.callbackDispatchedThisFrame[id] = true;\n var image = this.images[id];\n var updated = renderStyleImage(image);\n if (updated) {\n this.updateImage(id, image);\n }\n }\n };\n return ImageManager2;\n }(performance2.Evented);\n function loadGlyphRange(fontstack, range, urlTemplate, requestManager, callback) {\n var begin = range * 256;\n var end = begin + 255;\n var request = requestManager.transformRequest(requestManager.normalizeGlyphsURL(urlTemplate).replace(\"{fontstack}\", fontstack).replace(\"{range}\", begin + \"-\" + end), performance2.ResourceType.Glyphs);\n performance2.getArrayBuffer(request, function(err, data) {\n if (err) {\n callback(err);\n } else if (data) {\n var glyphs = {};\n for (var i = 0, list = performance2.parseGlyphPBF(data); i < list.length; i += 1) {\n var glyph = list[i];\n glyphs[glyph.id] = glyph;\n }\n callback(null, glyphs);\n }\n });\n }\n var tinySdf = TinySDF;\n var default_1 = TinySDF;\n var INF = 1e20;\n function TinySDF(fontSize, buffer, radius, cutoff, fontFamily, fontWeight) {\n this.fontSize = fontSize || 24;\n this.buffer = buffer === void 0 ? 3 : buffer;\n this.cutoff = cutoff || 0.25;\n this.fontFamily = fontFamily || \"sans-serif\";\n this.fontWeight = fontWeight || \"normal\";\n this.radius = radius || 8;\n var size = this.size = this.fontSize + this.buffer * 2;\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = size;\n this.ctx = this.canvas.getContext(\"2d\");\n this.ctx.font = this.fontWeight + \" \" + this.fontSize + \"px \" + this.fontFamily;\n this.ctx.textBaseline = \"middle\";\n this.ctx.fillStyle = \"black\";\n this.gridOuter = new Float64Array(size * size);\n this.gridInner = new Float64Array(size * size);\n this.f = new Float64Array(size);\n this.d = new Float64Array(size);\n this.z = new Float64Array(size + 1);\n this.v = new Int16Array(size);\n this.middle = Math.round(size / 2 * (navigator.userAgent.indexOf(\"Gecko/\") >= 0 ? 1.2 : 1));\n }\n TinySDF.prototype.draw = function(char) {\n this.ctx.clearRect(0, 0, this.size, this.size);\n this.ctx.fillText(char, this.buffer, this.middle);\n var imgData = this.ctx.getImageData(0, 0, this.size, this.size);\n var alphaChannel = new Uint8ClampedArray(this.size * this.size);\n for (var i = 0; i < this.size * this.size; i++) {\n var a = imgData.data[i * 4 + 3] / 255;\n this.gridOuter[i] = a === 1 ? 0 : a === 0 ? INF : Math.pow(Math.max(0, 0.5 - a), 2);\n this.gridInner[i] = a === 1 ? INF : a === 0 ? 0 : Math.pow(Math.max(0, a - 0.5), 2);\n }\n edt(this.gridOuter, this.size, this.size, this.f, this.d, this.v, this.z);\n edt(this.gridInner, this.size, this.size, this.f, this.d, this.v, this.z);\n for (i = 0; i < this.size * this.size; i++) {\n var d = this.gridOuter[i] - this.gridInner[i];\n alphaChannel[i] = Math.max(0, Math.min(255, Math.round(255 - 255 * (d / this.radius + this.cutoff))));\n }\n return alphaChannel;\n };\n function edt(data, width, height, f, d, v, z) {\n for (var x = 0; x < width; x++) {\n for (var y = 0; y < height; y++) {\n f[y] = data[y * width + x];\n }\n edt1d(f, d, v, z, height);\n for (y = 0; y < height; y++) {\n data[y * width + x] = d[y];\n }\n }\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n f[x] = data[y * width + x];\n }\n edt1d(f, d, v, z, width);\n for (x = 0; x < width; x++) {\n data[y * width + x] = Math.sqrt(d[x]);\n }\n }\n }\n function edt1d(f, d, v, z, n) {\n v[0] = 0;\n z[0] = -INF;\n z[1] = +INF;\n for (var q = 1, k = 0; q < n; q++) {\n var s = (f[q] + q * q - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]);\n while (s <= z[k]) {\n k--;\n s = (f[q] + q * q - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]);\n }\n k++;\n v[k] = q;\n z[k] = s;\n z[k + 1] = +INF;\n }\n for (q = 0, k = 0; q < n; q++) {\n while (z[k + 1] < q) {\n k++;\n }\n d[q] = (q - v[k]) * (q - v[k]) + f[v[k]];\n }\n }\n tinySdf.default = default_1;\n var GlyphManager = function GlyphManager2(requestManager, localIdeographFontFamily) {\n this.requestManager = requestManager;\n this.localIdeographFontFamily = localIdeographFontFamily;\n this.entries = {};\n };\n GlyphManager.prototype.setURL = function setURL(url) {\n this.url = url;\n };\n GlyphManager.prototype.getGlyphs = function getGlyphs(glyphs, callback) {\n var this$1 = this;\n var all = [];\n for (var stack in glyphs) {\n for (var i = 0, list = glyphs[stack]; i < list.length; i += 1) {\n var id = list[i];\n all.push({\n stack,\n id\n });\n }\n }\n performance2.asyncAll(all, function(ref, callback2) {\n var stack2 = ref.stack;\n var id2 = ref.id;\n var entry = this$1.entries[stack2];\n if (!entry) {\n entry = this$1.entries[stack2] = {\n glyphs: {},\n requests: {},\n ranges: {}\n };\n }\n var glyph = entry.glyphs[id2];\n if (glyph !== void 0) {\n callback2(null, {\n stack: stack2,\n id: id2,\n glyph\n });\n return;\n }\n glyph = this$1._tinySDF(entry, stack2, id2);\n if (glyph) {\n entry.glyphs[id2] = glyph;\n callback2(null, {\n stack: stack2,\n id: id2,\n glyph\n });\n return;\n }\n var range = Math.floor(id2 / 256);\n if (range * 256 > 65535) {\n callback2(new Error(\"glyphs > 65535 not supported\"));\n return;\n }\n if (entry.ranges[range]) {\n callback2(null, {\n stack: stack2,\n id: id2,\n glyph\n });\n return;\n }\n var requests = entry.requests[range];\n if (!requests) {\n requests = entry.requests[range] = [];\n GlyphManager.loadGlyphRange(stack2, range, this$1.url, this$1.requestManager, function(err, response) {\n if (response) {\n for (var id3 in response) {\n if (!this$1._doesCharSupportLocalGlyph(+id3)) {\n entry.glyphs[+id3] = response[+id3];\n }\n }\n entry.ranges[range] = true;\n }\n for (var i2 = 0, list2 = requests; i2 < list2.length; i2 += 1) {\n var cb = list2[i2];\n cb(err, response);\n }\n delete entry.requests[range];\n });\n }\n requests.push(function(err, result) {\n if (err) {\n callback2(err);\n } else if (result) {\n callback2(null, {\n stack: stack2,\n id: id2,\n glyph: result[id2] || null\n });\n }\n });\n }, function(err, glyphs2) {\n if (err) {\n callback(err);\n } else if (glyphs2) {\n var result = {};\n for (var i2 = 0, list2 = glyphs2; i2 < list2.length; i2 += 1) {\n var ref = list2[i2];\n var stack2 = ref.stack;\n var id2 = ref.id;\n var glyph = ref.glyph;\n (result[stack2] || (result[stack2] = {}))[id2] = glyph && {\n id: glyph.id,\n bitmap: glyph.bitmap.clone(),\n metrics: glyph.metrics\n };\n }\n callback(null, result);\n }\n });\n };\n GlyphManager.prototype._doesCharSupportLocalGlyph = function _doesCharSupportLocalGlyph(id) {\n return !!this.localIdeographFontFamily && (performance2.isChar[\"CJK Unified Ideographs\"](id) || performance2.isChar[\"Hangul Syllables\"](id) || performance2.isChar[\"Hiragana\"](id) || performance2.isChar[\"Katakana\"](id));\n };\n GlyphManager.prototype._tinySDF = function _tinySDF(entry, stack, id) {\n var family = this.localIdeographFontFamily;\n if (!family) {\n return;\n }\n if (!this._doesCharSupportLocalGlyph(id)) {\n return;\n }\n var tinySDF = entry.tinySDF;\n if (!tinySDF) {\n var fontWeight = \"400\";\n if (/bold/i.test(stack)) {\n fontWeight = \"900\";\n } else if (/medium/i.test(stack)) {\n fontWeight = \"500\";\n } else if (/light/i.test(stack)) {\n fontWeight = \"200\";\n }\n tinySDF = entry.tinySDF = new GlyphManager.TinySDF(24, 3, 8, 0.25, family, fontWeight);\n }\n return {\n id,\n bitmap: new performance2.AlphaImage({\n width: 30,\n height: 30\n }, tinySDF.draw(String.fromCharCode(id))),\n metrics: {\n width: 24,\n height: 24,\n left: 0,\n top: -8,\n advance: 24\n }\n };\n };\n GlyphManager.loadGlyphRange = loadGlyphRange;\n GlyphManager.TinySDF = tinySdf;\n var LightPositionProperty = function LightPositionProperty2() {\n this.specification = performance2.styleSpec.light.position;\n };\n LightPositionProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters) {\n return performance2.sphericalToCartesian(value.expression.evaluate(parameters));\n };\n LightPositionProperty.prototype.interpolate = function interpolate$1(a, b, t) {\n return {\n x: performance2.number(a.x, b.x, t),\n y: performance2.number(a.y, b.y, t),\n z: performance2.number(a.z, b.z, t)\n };\n };\n var properties = new performance2.Properties({\n \"anchor\": new performance2.DataConstantProperty(performance2.styleSpec.light.anchor),\n \"position\": new LightPositionProperty(),\n \"color\": new performance2.DataConstantProperty(performance2.styleSpec.light.color),\n \"intensity\": new performance2.DataConstantProperty(performance2.styleSpec.light.intensity)\n });\n var TRANSITION_SUFFIX = \"-transition\";\n var Light = function(Evented) {\n function Light2(lightOptions) {\n Evented.call(this);\n this._transitionable = new performance2.Transitionable(properties);\n this.setLight(lightOptions);\n this._transitioning = this._transitionable.untransitioned();\n }\n if (Evented)\n Light2.__proto__ = Evented;\n Light2.prototype = Object.create(Evented && Evented.prototype);\n Light2.prototype.constructor = Light2;\n Light2.prototype.getLight = function getLight() {\n return this._transitionable.serialize();\n };\n Light2.prototype.setLight = function setLight(light, options) {\n if (options === void 0)\n options = {};\n if (this._validate(performance2.validateLight, light, options)) {\n return;\n }\n for (var name2 in light) {\n var value = light[name2];\n if (performance2.endsWith(name2, TRANSITION_SUFFIX)) {\n this._transitionable.setTransition(name2.slice(0, -TRANSITION_SUFFIX.length), value);\n } else {\n this._transitionable.setValue(name2, value);\n }\n }\n };\n Light2.prototype.updateTransitions = function updateTransitions(parameters) {\n this._transitioning = this._transitionable.transitioned(parameters, this._transitioning);\n };\n Light2.prototype.hasTransition = function hasTransition() {\n return this._transitioning.hasTransition();\n };\n Light2.prototype.recalculate = function recalculate(parameters) {\n this.properties = this._transitioning.possiblyEvaluate(parameters);\n };\n Light2.prototype._validate = function _validate(validate, value, options) {\n if (options && options.validate === false) {\n return false;\n }\n return performance2.emitValidationErrors(this, validate.call(performance2.validateStyle, performance2.extend({\n value,\n style: {\n glyphs: true,\n sprite: true\n },\n styleSpec: performance2.styleSpec\n })));\n };\n return Light2;\n }(performance2.Evented);\n var LineAtlas = function LineAtlas2(width, height) {\n this.width = width;\n this.height = height;\n this.nextRow = 0;\n this.data = new Uint8Array(this.width * this.height);\n this.dashEntry = {};\n };\n LineAtlas.prototype.getDash = function getDash(dasharray, round) {\n var key = dasharray.join(\",\") + String(round);\n if (!this.dashEntry[key]) {\n this.dashEntry[key] = this.addDash(dasharray, round);\n }\n return this.dashEntry[key];\n };\n LineAtlas.prototype.getDashRanges = function getDashRanges(dasharray, lineAtlasWidth, stretch) {\n var oddDashArray = dasharray.length % 2 === 1;\n var ranges = [];\n var left = oddDashArray ? -dasharray[dasharray.length - 1] * stretch : 0;\n var right = dasharray[0] * stretch;\n var isDash = true;\n ranges.push({\n left,\n right,\n isDash,\n zeroLength: dasharray[0] === 0\n });\n var currentDashLength = dasharray[0];\n for (var i = 1; i < dasharray.length; i++) {\n isDash = !isDash;\n var dashLength = dasharray[i];\n left = currentDashLength * stretch;\n currentDashLength += dashLength;\n right = currentDashLength * stretch;\n ranges.push({\n left,\n right,\n isDash,\n zeroLength: dashLength === 0\n });\n }\n return ranges;\n };\n LineAtlas.prototype.addRoundDash = function addRoundDash(ranges, stretch, n) {\n var halfStretch = stretch / 2;\n for (var y = -n; y <= n; y++) {\n var row = this.nextRow + n + y;\n var index = this.width * row;\n var currIndex = 0;\n var range = ranges[currIndex];\n for (var x = 0; x < this.width; x++) {\n if (x / range.right > 1) {\n range = ranges[++currIndex];\n }\n var distLeft = Math.abs(x - range.left);\n var distRight = Math.abs(x - range.right);\n var minDist = Math.min(distLeft, distRight);\n var signedDistance = void 0;\n var distMiddle = y / n * (halfStretch + 1);\n if (range.isDash) {\n var distEdge = halfStretch - Math.abs(distMiddle);\n signedDistance = Math.sqrt(minDist * minDist + distEdge * distEdge);\n } else {\n signedDistance = halfStretch - Math.sqrt(minDist * minDist + distMiddle * distMiddle);\n }\n this.data[index + x] = Math.max(0, Math.min(255, signedDistance + 128));\n }\n }\n };\n LineAtlas.prototype.addRegularDash = function addRegularDash(ranges) {\n for (var i = ranges.length - 1; i >= 0; --i) {\n var part = ranges[i];\n var next = ranges[i + 1];\n if (part.zeroLength) {\n ranges.splice(i, 1);\n } else if (next && next.isDash === part.isDash) {\n next.left = part.left;\n ranges.splice(i, 1);\n }\n }\n var first = ranges[0];\n var last = ranges[ranges.length - 1];\n if (first.isDash === last.isDash) {\n first.left = last.left - this.width;\n last.right = first.right + this.width;\n }\n var index = this.width * this.nextRow;\n var currIndex = 0;\n var range = ranges[currIndex];\n for (var x = 0; x < this.width; x++) {\n if (x / range.right > 1) {\n range = ranges[++currIndex];\n }\n var distLeft = Math.abs(x - range.left);\n var distRight = Math.abs(x - range.right);\n var minDist = Math.min(distLeft, distRight);\n var signedDistance = range.isDash ? minDist : -minDist;\n this.data[index + x] = Math.max(0, Math.min(255, signedDistance + 128));\n }\n };\n LineAtlas.prototype.addDash = function addDash(dasharray, round) {\n var n = round ? 7 : 0;\n var height = 2 * n + 1;\n if (this.nextRow + height > this.height) {\n performance2.warnOnce(\"LineAtlas out of space\");\n return null;\n }\n var length = 0;\n for (var i = 0; i < dasharray.length; i++) {\n length += dasharray[i];\n }\n if (length !== 0) {\n var stretch = this.width / length;\n var ranges = this.getDashRanges(dasharray, this.width, stretch);\n if (round) {\n this.addRoundDash(ranges, stretch, n);\n } else {\n this.addRegularDash(ranges);\n }\n }\n var dashEntry = {\n y: (this.nextRow + n + 0.5) / this.height,\n height: 2 * n / this.height,\n width: length\n };\n this.nextRow += height;\n this.dirty = true;\n return dashEntry;\n };\n LineAtlas.prototype.bind = function bind(context) {\n var gl2 = context.gl;\n if (!this.texture) {\n this.texture = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, this.texture);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, gl2.REPEAT);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, gl2.REPEAT);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, gl2.LINEAR);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, gl2.LINEAR);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, gl2.ALPHA, this.width, this.height, 0, gl2.ALPHA, gl2.UNSIGNED_BYTE, this.data);\n } else {\n gl2.bindTexture(gl2.TEXTURE_2D, this.texture);\n if (this.dirty) {\n this.dirty = false;\n gl2.texSubImage2D(gl2.TEXTURE_2D, 0, 0, 0, this.width, this.height, gl2.ALPHA, gl2.UNSIGNED_BYTE, this.data);\n }\n }\n };\n var Dispatcher = function Dispatcher2(workerPool, parent) {\n this.workerPool = workerPool;\n this.actors = [];\n this.currentActor = 0;\n this.id = performance2.uniqueId();\n var workers = this.workerPool.acquire(this.id);\n for (var i = 0; i < workers.length; i++) {\n var worker2 = workers[i];\n var actor = new Dispatcher2.Actor(worker2, parent, this.id);\n actor.name = \"Worker \" + i;\n this.actors.push(actor);\n }\n };\n Dispatcher.prototype.broadcast = function broadcast(type, data, cb) {\n cb = cb || function() {\n };\n performance2.asyncAll(this.actors, function(actor, done) {\n actor.send(type, data, done);\n }, cb);\n };\n Dispatcher.prototype.getActor = function getActor() {\n this.currentActor = (this.currentActor + 1) % this.actors.length;\n return this.actors[this.currentActor];\n };\n Dispatcher.prototype.remove = function remove() {\n this.actors.forEach(function(actor) {\n actor.remove();\n });\n this.actors = [];\n this.workerPool.release(this.id);\n };\n Dispatcher.Actor = performance2.Actor;\n function loadTileJSON(options, requestManager, callback) {\n var loaded = function(err, tileJSON) {\n if (err) {\n return callback(err);\n } else if (tileJSON) {\n var result = performance2.pick(performance2.extend(tileJSON, options), [\n \"tiles\",\n \"minzoom\",\n \"maxzoom\",\n \"attribution\",\n \"mapbox_logo\",\n \"bounds\",\n \"scheme\",\n \"tileSize\",\n \"encoding\"\n ]);\n if (tileJSON.vector_layers) {\n result.vectorLayers = tileJSON.vector_layers;\n result.vectorLayerIds = result.vectorLayers.map(function(layer) {\n return layer.id;\n });\n }\n result.tiles = requestManager.canonicalizeTileset(result, options.url);\n callback(null, result);\n }\n };\n if (options.url) {\n return performance2.getJSON(requestManager.transformRequest(requestManager.normalizeSourceURL(options.url), performance2.ResourceType.Source), loaded);\n } else {\n return performance2.browser.frame(function() {\n return loaded(null, options);\n });\n }\n }\n var TileBounds = function TileBounds2(bounds, minzoom, maxzoom) {\n this.bounds = performance2.LngLatBounds.convert(this.validateBounds(bounds));\n this.minzoom = minzoom || 0;\n this.maxzoom = maxzoom || 24;\n };\n TileBounds.prototype.validateBounds = function validateBounds(bounds) {\n if (!Array.isArray(bounds) || bounds.length !== 4) {\n return [\n -180,\n -90,\n 180,\n 90\n ];\n }\n return [\n Math.max(-180, bounds[0]),\n Math.max(-90, bounds[1]),\n Math.min(180, bounds[2]),\n Math.min(90, bounds[3])\n ];\n };\n TileBounds.prototype.contains = function contains(tileID) {\n var worldSize = Math.pow(2, tileID.z);\n var level = {\n minX: Math.floor(performance2.mercatorXfromLng(this.bounds.getWest()) * worldSize),\n minY: Math.floor(performance2.mercatorYfromLat(this.bounds.getNorth()) * worldSize),\n maxX: Math.ceil(performance2.mercatorXfromLng(this.bounds.getEast()) * worldSize),\n maxY: Math.ceil(performance2.mercatorYfromLat(this.bounds.getSouth()) * worldSize)\n };\n var hit = tileID.x >= level.minX && tileID.x < level.maxX && tileID.y >= level.minY && tileID.y < level.maxY;\n return hit;\n };\n var VectorTileSource = function(Evented) {\n function VectorTileSource2(id, options, dispatcher, eventedParent) {\n Evented.call(this);\n this.id = id;\n this.dispatcher = dispatcher;\n this.type = \"vector\";\n this.minzoom = 0;\n this.maxzoom = 22;\n this.scheme = \"xyz\";\n this.tileSize = 512;\n this.reparseOverscaled = true;\n this.isTileClipped = true;\n this._loaded = false;\n performance2.extend(this, performance2.pick(options, [\n \"url\",\n \"scheme\",\n \"tileSize\",\n \"promoteId\"\n ]));\n this._options = performance2.extend({ type: \"vector\" }, options);\n this._collectResourceTiming = options.collectResourceTiming;\n if (this.tileSize !== 512) {\n throw new Error(\"vector tile sources must have a tileSize of 512\");\n }\n this.setEventedParent(eventedParent);\n }\n if (Evented)\n VectorTileSource2.__proto__ = Evented;\n VectorTileSource2.prototype = Object.create(Evented && Evented.prototype);\n VectorTileSource2.prototype.constructor = VectorTileSource2;\n VectorTileSource2.prototype.load = function load() {\n var this$1 = this;\n this._loaded = false;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this._tileJSONRequest = loadTileJSON(this._options, this.map._requestManager, function(err, tileJSON) {\n this$1._tileJSONRequest = null;\n this$1._loaded = true;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (tileJSON) {\n performance2.extend(this$1, tileJSON);\n if (tileJSON.bounds) {\n this$1.tileBounds = new TileBounds(tileJSON.bounds, this$1.minzoom, this$1.maxzoom);\n }\n performance2.postTurnstileEvent(tileJSON.tiles, this$1.map._requestManager._customAccessToken);\n performance2.postMapLoadEvent(tileJSON.tiles, this$1.map._getMapId(), this$1.map._requestManager._skuToken, this$1.map._requestManager._customAccessToken);\n this$1.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"metadata\"\n }));\n this$1.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"content\"\n }));\n }\n });\n };\n VectorTileSource2.prototype.loaded = function loaded() {\n return this._loaded;\n };\n VectorTileSource2.prototype.hasTile = function hasTile(tileID) {\n return !this.tileBounds || this.tileBounds.contains(tileID.canonical);\n };\n VectorTileSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n };\n VectorTileSource2.prototype.setSourceProperty = function setSourceProperty(callback) {\n if (this._tileJSONRequest) {\n this._tileJSONRequest.cancel();\n }\n callback();\n var sourceCache = this.map.style.sourceCaches[this.id];\n sourceCache.clearTiles();\n this.load();\n };\n VectorTileSource2.prototype.setTiles = function setTiles(tiles) {\n var this$1 = this;\n this.setSourceProperty(function() {\n this$1._options.tiles = tiles;\n });\n return this;\n };\n VectorTileSource2.prototype.setUrl = function setUrl(url) {\n var this$1 = this;\n this.setSourceProperty(function() {\n this$1.url = url;\n this$1._options.url = url;\n });\n return this;\n };\n VectorTileSource2.prototype.onRemove = function onRemove() {\n if (this._tileJSONRequest) {\n this._tileJSONRequest.cancel();\n this._tileJSONRequest = null;\n }\n };\n VectorTileSource2.prototype.serialize = function serialize() {\n return performance2.extend({}, this._options);\n };\n VectorTileSource2.prototype.loadTile = function loadTile(tile, callback) {\n var url = this.map._requestManager.normalizeTileURL(tile.tileID.canonical.url(this.tiles, this.scheme));\n var params = {\n request: this.map._requestManager.transformRequest(url, performance2.ResourceType.Tile),\n uid: tile.uid,\n tileID: tile.tileID,\n zoom: tile.tileID.overscaledZ,\n tileSize: this.tileSize * tile.tileID.overscaleFactor(),\n type: this.type,\n source: this.id,\n pixelRatio: performance2.browser.devicePixelRatio,\n showCollisionBoxes: this.map.showCollisionBoxes,\n promoteId: this.promoteId\n };\n params.request.collectResourceTiming = this._collectResourceTiming;\n if (!tile.actor || tile.state === \"expired\") {\n tile.actor = this.dispatcher.getActor();\n tile.request = tile.actor.send(\"loadTile\", params, done.bind(this));\n } else if (tile.state === \"loading\") {\n tile.reloadCallback = callback;\n } else {\n tile.request = tile.actor.send(\"reloadTile\", params, done.bind(this));\n }\n function done(err, data) {\n delete tile.request;\n if (tile.aborted) {\n return callback(null);\n }\n if (err && err.status !== 404) {\n return callback(err);\n }\n if (data && data.resourceTiming) {\n tile.resourceTiming = data.resourceTiming;\n }\n if (this.map._refreshExpiredTiles && data) {\n tile.setExpiryData(data);\n }\n tile.loadVectorData(data, this.map.painter);\n performance2.cacheEntryPossiblyAdded(this.dispatcher);\n callback(null);\n if (tile.reloadCallback) {\n this.loadTile(tile, tile.reloadCallback);\n tile.reloadCallback = null;\n }\n }\n };\n VectorTileSource2.prototype.abortTile = function abortTile(tile) {\n if (tile.request) {\n tile.request.cancel();\n delete tile.request;\n }\n if (tile.actor) {\n tile.actor.send(\"abortTile\", {\n uid: tile.uid,\n type: this.type,\n source: this.id\n }, void 0);\n }\n };\n VectorTileSource2.prototype.unloadTile = function unloadTile(tile) {\n tile.unloadVectorData();\n if (tile.actor) {\n tile.actor.send(\"removeTile\", {\n uid: tile.uid,\n type: this.type,\n source: this.id\n }, void 0);\n }\n };\n VectorTileSource2.prototype.hasTransition = function hasTransition() {\n return false;\n };\n return VectorTileSource2;\n }(performance2.Evented);\n var RasterTileSource = function(Evented) {\n function RasterTileSource2(id, options, dispatcher, eventedParent) {\n Evented.call(this);\n this.id = id;\n this.dispatcher = dispatcher;\n this.setEventedParent(eventedParent);\n this.type = \"raster\";\n this.minzoom = 0;\n this.maxzoom = 22;\n this.roundZoom = true;\n this.scheme = \"xyz\";\n this.tileSize = 512;\n this._loaded = false;\n this._options = performance2.extend({ type: \"raster\" }, options);\n performance2.extend(this, performance2.pick(options, [\n \"url\",\n \"scheme\",\n \"tileSize\"\n ]));\n }\n if (Evented)\n RasterTileSource2.__proto__ = Evented;\n RasterTileSource2.prototype = Object.create(Evented && Evented.prototype);\n RasterTileSource2.prototype.constructor = RasterTileSource2;\n RasterTileSource2.prototype.load = function load() {\n var this$1 = this;\n this._loaded = false;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this._tileJSONRequest = loadTileJSON(this._options, this.map._requestManager, function(err, tileJSON) {\n this$1._tileJSONRequest = null;\n this$1._loaded = true;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (tileJSON) {\n performance2.extend(this$1, tileJSON);\n if (tileJSON.bounds) {\n this$1.tileBounds = new TileBounds(tileJSON.bounds, this$1.minzoom, this$1.maxzoom);\n }\n performance2.postTurnstileEvent(tileJSON.tiles);\n performance2.postMapLoadEvent(tileJSON.tiles, this$1.map._getMapId(), this$1.map._requestManager._skuToken);\n this$1.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"metadata\"\n }));\n this$1.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"content\"\n }));\n }\n });\n };\n RasterTileSource2.prototype.loaded = function loaded() {\n return this._loaded;\n };\n RasterTileSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n };\n RasterTileSource2.prototype.onRemove = function onRemove() {\n if (this._tileJSONRequest) {\n this._tileJSONRequest.cancel();\n this._tileJSONRequest = null;\n }\n };\n RasterTileSource2.prototype.serialize = function serialize() {\n return performance2.extend({}, this._options);\n };\n RasterTileSource2.prototype.hasTile = function hasTile(tileID) {\n return !this.tileBounds || this.tileBounds.contains(tileID.canonical);\n };\n RasterTileSource2.prototype.loadTile = function loadTile(tile, callback) {\n var this$1 = this;\n var url = this.map._requestManager.normalizeTileURL(tile.tileID.canonical.url(this.tiles, this.scheme), this.tileSize);\n tile.request = performance2.getImage(this.map._requestManager.transformRequest(url, performance2.ResourceType.Tile), function(err, img) {\n delete tile.request;\n if (tile.aborted) {\n tile.state = \"unloaded\";\n callback(null);\n } else if (err) {\n tile.state = \"errored\";\n callback(err);\n } else if (img) {\n if (this$1.map._refreshExpiredTiles) {\n tile.setExpiryData(img);\n }\n delete img.cacheControl;\n delete img.expires;\n var context = this$1.map.painter.context;\n var gl2 = context.gl;\n tile.texture = this$1.map.painter.getTileTexture(img.width);\n if (tile.texture) {\n tile.texture.update(img, { useMipmap: true });\n } else {\n tile.texture = new performance2.Texture(context, img, gl2.RGBA, { useMipmap: true });\n tile.texture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE, gl2.LINEAR_MIPMAP_NEAREST);\n if (context.extTextureFilterAnisotropic) {\n gl2.texParameterf(gl2.TEXTURE_2D, context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, context.extTextureFilterAnisotropicMax);\n }\n }\n tile.state = \"loaded\";\n performance2.cacheEntryPossiblyAdded(this$1.dispatcher);\n callback(null);\n }\n });\n };\n RasterTileSource2.prototype.abortTile = function abortTile(tile, callback) {\n if (tile.request) {\n tile.request.cancel();\n delete tile.request;\n }\n callback();\n };\n RasterTileSource2.prototype.unloadTile = function unloadTile(tile, callback) {\n if (tile.texture) {\n this.map.painter.saveTileTexture(tile.texture);\n }\n callback();\n };\n RasterTileSource2.prototype.hasTransition = function hasTransition() {\n return false;\n };\n return RasterTileSource2;\n }(performance2.Evented);\n var RasterDEMTileSource = function(RasterTileSource2) {\n function RasterDEMTileSource2(id, options, dispatcher, eventedParent) {\n RasterTileSource2.call(this, id, options, dispatcher, eventedParent);\n this.type = \"raster-dem\";\n this.maxzoom = 22;\n this._options = performance2.extend({ type: \"raster-dem\" }, options);\n this.encoding = options.encoding || \"mapbox\";\n }\n if (RasterTileSource2)\n RasterDEMTileSource2.__proto__ = RasterTileSource2;\n RasterDEMTileSource2.prototype = Object.create(RasterTileSource2 && RasterTileSource2.prototype);\n RasterDEMTileSource2.prototype.constructor = RasterDEMTileSource2;\n RasterDEMTileSource2.prototype.serialize = function serialize() {\n return {\n type: \"raster-dem\",\n url: this.url,\n tileSize: this.tileSize,\n tiles: this.tiles,\n bounds: this.bounds,\n encoding: this.encoding\n };\n };\n RasterDEMTileSource2.prototype.loadTile = function loadTile(tile, callback) {\n var url = this.map._requestManager.normalizeTileURL(tile.tileID.canonical.url(this.tiles, this.scheme), this.tileSize);\n tile.request = performance2.getImage(this.map._requestManager.transformRequest(url, performance2.ResourceType.Tile), imageLoaded.bind(this));\n tile.neighboringTiles = this._getNeighboringTiles(tile.tileID);\n function imageLoaded(err, img) {\n delete tile.request;\n if (tile.aborted) {\n tile.state = \"unloaded\";\n callback(null);\n } else if (err) {\n tile.state = \"errored\";\n callback(err);\n } else if (img) {\n if (this.map._refreshExpiredTiles) {\n tile.setExpiryData(img);\n }\n delete img.cacheControl;\n delete img.expires;\n var transfer = performance2.window.ImageBitmap && img instanceof performance2.window.ImageBitmap && performance2.offscreenCanvasSupported();\n var rawImageData = transfer ? img : performance2.browser.getImageData(img, 1);\n var params = {\n uid: tile.uid,\n coord: tile.tileID,\n source: this.id,\n rawImageData,\n encoding: this.encoding\n };\n if (!tile.actor || tile.state === \"expired\") {\n tile.actor = this.dispatcher.getActor();\n tile.actor.send(\"loadDEMTile\", params, done.bind(this));\n }\n }\n }\n function done(err, dem) {\n if (err) {\n tile.state = \"errored\";\n callback(err);\n }\n if (dem) {\n tile.dem = dem;\n tile.needsHillshadePrepare = true;\n tile.state = \"loaded\";\n callback(null);\n }\n }\n };\n RasterDEMTileSource2.prototype._getNeighboringTiles = function _getNeighboringTiles(tileID) {\n var canonical = tileID.canonical;\n var dim = Math.pow(2, canonical.z);\n var px = (canonical.x - 1 + dim) % dim;\n var pxw = canonical.x === 0 ? tileID.wrap - 1 : tileID.wrap;\n var nx = (canonical.x + 1 + dim) % dim;\n var nxw = canonical.x + 1 === dim ? tileID.wrap + 1 : tileID.wrap;\n var neighboringTiles = {};\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, pxw, canonical.z, px, canonical.y).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, nxw, canonical.z, nx, canonical.y).key] = { backfilled: false };\n if (canonical.y > 0) {\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, pxw, canonical.z, px, canonical.y - 1).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, tileID.wrap, canonical.z, canonical.x, canonical.y - 1).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, nxw, canonical.z, nx, canonical.y - 1).key] = { backfilled: false };\n }\n if (canonical.y + 1 < dim) {\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, pxw, canonical.z, px, canonical.y + 1).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, tileID.wrap, canonical.z, canonical.x, canonical.y + 1).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, nxw, canonical.z, nx, canonical.y + 1).key] = { backfilled: false };\n }\n return neighboringTiles;\n };\n RasterDEMTileSource2.prototype.unloadTile = function unloadTile(tile) {\n if (tile.demTexture) {\n this.map.painter.saveTileTexture(tile.demTexture);\n }\n if (tile.fbo) {\n tile.fbo.destroy();\n delete tile.fbo;\n }\n if (tile.dem) {\n delete tile.dem;\n }\n delete tile.neighboringTiles;\n tile.state = \"unloaded\";\n if (tile.actor) {\n tile.actor.send(\"removeDEMTile\", {\n uid: tile.uid,\n source: this.id\n });\n }\n };\n return RasterDEMTileSource2;\n }(RasterTileSource);\n var GeoJSONSource = function(Evented) {\n function GeoJSONSource2(id, options, dispatcher, eventedParent) {\n Evented.call(this);\n this.id = id;\n this.type = \"geojson\";\n this.minzoom = 0;\n this.maxzoom = 18;\n this.tileSize = 512;\n this.isTileClipped = true;\n this.reparseOverscaled = true;\n this._removed = false;\n this._loaded = false;\n this.actor = dispatcher.getActor();\n this.setEventedParent(eventedParent);\n this._data = options.data;\n this._options = performance2.extend({}, options);\n this._collectResourceTiming = options.collectResourceTiming;\n this._resourceTiming = [];\n if (options.maxzoom !== void 0) {\n this.maxzoom = options.maxzoom;\n }\n if (options.type) {\n this.type = options.type;\n }\n if (options.attribution) {\n this.attribution = options.attribution;\n }\n this.promoteId = options.promoteId;\n var scale = performance2.EXTENT / this.tileSize;\n this.workerOptions = performance2.extend({\n source: this.id,\n cluster: options.cluster || false,\n geojsonVtOptions: {\n buffer: (options.buffer !== void 0 ? options.buffer : 128) * scale,\n tolerance: (options.tolerance !== void 0 ? options.tolerance : 0.375) * scale,\n extent: performance2.EXTENT,\n maxZoom: this.maxzoom,\n lineMetrics: options.lineMetrics || false,\n generateId: options.generateId || false\n },\n superclusterOptions: {\n maxZoom: options.clusterMaxZoom !== void 0 ? Math.min(options.clusterMaxZoom, this.maxzoom - 1) : this.maxzoom - 1,\n minPoints: Math.max(2, options.clusterMinPoints || 2),\n extent: performance2.EXTENT,\n radius: (options.clusterRadius || 50) * scale,\n log: false,\n generateId: options.generateId || false\n },\n clusterProperties: options.clusterProperties,\n filter: options.filter\n }, options.workerOptions);\n }\n if (Evented)\n GeoJSONSource2.__proto__ = Evented;\n GeoJSONSource2.prototype = Object.create(Evented && Evented.prototype);\n GeoJSONSource2.prototype.constructor = GeoJSONSource2;\n GeoJSONSource2.prototype.load = function load() {\n var this$1 = this;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this._updateWorkerData(function(err) {\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n return;\n }\n var data = {\n dataType: \"source\",\n sourceDataType: \"metadata\"\n };\n if (this$1._collectResourceTiming && this$1._resourceTiming && this$1._resourceTiming.length > 0) {\n data.resourceTiming = this$1._resourceTiming;\n this$1._resourceTiming = [];\n }\n this$1.fire(new performance2.Event(\"data\", data));\n });\n };\n GeoJSONSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n };\n GeoJSONSource2.prototype.setData = function setData(data) {\n var this$1 = this;\n this._data = data;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this._updateWorkerData(function(err) {\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n return;\n }\n var data2 = {\n dataType: \"source\",\n sourceDataType: \"content\"\n };\n if (this$1._collectResourceTiming && this$1._resourceTiming && this$1._resourceTiming.length > 0) {\n data2.resourceTiming = this$1._resourceTiming;\n this$1._resourceTiming = [];\n }\n this$1.fire(new performance2.Event(\"data\", data2));\n });\n return this;\n };\n GeoJSONSource2.prototype.getClusterExpansionZoom = function getClusterExpansionZoom(clusterId, callback) {\n this.actor.send(\"geojson.getClusterExpansionZoom\", {\n clusterId,\n source: this.id\n }, callback);\n return this;\n };\n GeoJSONSource2.prototype.getClusterChildren = function getClusterChildren(clusterId, callback) {\n this.actor.send(\"geojson.getClusterChildren\", {\n clusterId,\n source: this.id\n }, callback);\n return this;\n };\n GeoJSONSource2.prototype.getClusterLeaves = function getClusterLeaves(clusterId, limit, offset, callback) {\n this.actor.send(\"geojson.getClusterLeaves\", {\n source: this.id,\n clusterId,\n limit,\n offset\n }, callback);\n return this;\n };\n GeoJSONSource2.prototype._updateWorkerData = function _updateWorkerData(callback) {\n var this$1 = this;\n this._loaded = false;\n var options = performance2.extend({}, this.workerOptions);\n var data = this._data;\n if (typeof data === \"string\") {\n options.request = this.map._requestManager.transformRequest(performance2.browser.resolveURL(data), performance2.ResourceType.Source);\n options.request.collectResourceTiming = this._collectResourceTiming;\n } else {\n options.data = JSON.stringify(data);\n }\n this.actor.send(this.type + \".loadData\", options, function(err, result) {\n if (this$1._removed || result && result.abandoned) {\n return;\n }\n this$1._loaded = true;\n if (result && result.resourceTiming && result.resourceTiming[this$1.id]) {\n this$1._resourceTiming = result.resourceTiming[this$1.id].slice(0);\n }\n this$1.actor.send(this$1.type + \".coalesce\", { source: options.source }, null);\n callback(err);\n });\n };\n GeoJSONSource2.prototype.loaded = function loaded() {\n return this._loaded;\n };\n GeoJSONSource2.prototype.loadTile = function loadTile(tile, callback) {\n var this$1 = this;\n var message = !tile.actor ? \"loadTile\" : \"reloadTile\";\n tile.actor = this.actor;\n var params = {\n type: this.type,\n uid: tile.uid,\n tileID: tile.tileID,\n zoom: tile.tileID.overscaledZ,\n maxZoom: this.maxzoom,\n tileSize: this.tileSize,\n source: this.id,\n pixelRatio: performance2.browser.devicePixelRatio,\n showCollisionBoxes: this.map.showCollisionBoxes,\n promoteId: this.promoteId\n };\n tile.request = this.actor.send(message, params, function(err, data) {\n delete tile.request;\n tile.unloadVectorData();\n if (tile.aborted) {\n return callback(null);\n }\n if (err) {\n return callback(err);\n }\n tile.loadVectorData(data, this$1.map.painter, message === \"reloadTile\");\n return callback(null);\n });\n };\n GeoJSONSource2.prototype.abortTile = function abortTile(tile) {\n if (tile.request) {\n tile.request.cancel();\n delete tile.request;\n }\n tile.aborted = true;\n };\n GeoJSONSource2.prototype.unloadTile = function unloadTile(tile) {\n tile.unloadVectorData();\n this.actor.send(\"removeTile\", {\n uid: tile.uid,\n type: this.type,\n source: this.id\n });\n };\n GeoJSONSource2.prototype.onRemove = function onRemove() {\n this._removed = true;\n this.actor.send(\"removeSource\", {\n type: this.type,\n source: this.id\n });\n };\n GeoJSONSource2.prototype.serialize = function serialize() {\n return performance2.extend({}, this._options, {\n type: this.type,\n data: this._data\n });\n };\n GeoJSONSource2.prototype.hasTransition = function hasTransition() {\n return false;\n };\n return GeoJSONSource2;\n }(performance2.Evented);\n var rasterBoundsAttributes = performance2.createLayout([\n {\n name: \"a_pos\",\n type: \"Int16\",\n components: 2\n },\n {\n name: \"a_texture_pos\",\n type: \"Int16\",\n components: 2\n }\n ]);\n var ImageSource = function(Evented) {\n function ImageSource2(id, options, dispatcher, eventedParent) {\n Evented.call(this);\n this.id = id;\n this.dispatcher = dispatcher;\n this.coordinates = options.coordinates;\n this.type = \"image\";\n this.minzoom = 0;\n this.maxzoom = 22;\n this.tileSize = 512;\n this.tiles = {};\n this._loaded = false;\n this.setEventedParent(eventedParent);\n this.options = options;\n }\n if (Evented)\n ImageSource2.__proto__ = Evented;\n ImageSource2.prototype = Object.create(Evented && Evented.prototype);\n ImageSource2.prototype.constructor = ImageSource2;\n ImageSource2.prototype.load = function load(newCoordinates, successCallback) {\n var this$1 = this;\n this._loaded = false;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this.url = this.options.url;\n performance2.getImage(this.map._requestManager.transformRequest(this.url, performance2.ResourceType.Image), function(err, image) {\n this$1._loaded = true;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (image) {\n this$1.image = image;\n if (newCoordinates) {\n this$1.coordinates = newCoordinates;\n }\n if (successCallback) {\n successCallback();\n }\n this$1._finishLoading();\n }\n });\n };\n ImageSource2.prototype.loaded = function loaded() {\n return this._loaded;\n };\n ImageSource2.prototype.updateImage = function updateImage(options) {\n var this$1 = this;\n if (!this.image || !options.url) {\n return this;\n }\n this.options.url = options.url;\n this.load(options.coordinates, function() {\n this$1.texture = null;\n });\n return this;\n };\n ImageSource2.prototype._finishLoading = function _finishLoading() {\n if (this.map) {\n this.setCoordinates(this.coordinates);\n this.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"metadata\"\n }));\n }\n };\n ImageSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n };\n ImageSource2.prototype.setCoordinates = function setCoordinates(coordinates) {\n var this$1 = this;\n this.coordinates = coordinates;\n var cornerCoords = coordinates.map(performance2.MercatorCoordinate.fromLngLat);\n this.tileID = getCoordinatesCenterTileID(cornerCoords);\n this.minzoom = this.maxzoom = this.tileID.z;\n var tileCoords = cornerCoords.map(function(coord) {\n return this$1.tileID.getTilePoint(coord)._round();\n });\n this._boundsArray = new performance2.StructArrayLayout4i8();\n this._boundsArray.emplaceBack(tileCoords[0].x, tileCoords[0].y, 0, 0);\n this._boundsArray.emplaceBack(tileCoords[1].x, tileCoords[1].y, performance2.EXTENT, 0);\n this._boundsArray.emplaceBack(tileCoords[3].x, tileCoords[3].y, 0, performance2.EXTENT);\n this._boundsArray.emplaceBack(tileCoords[2].x, tileCoords[2].y, performance2.EXTENT, performance2.EXTENT);\n if (this.boundsBuffer) {\n this.boundsBuffer.destroy();\n delete this.boundsBuffer;\n }\n this.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"content\"\n }));\n return this;\n };\n ImageSource2.prototype.prepare = function prepare() {\n if (Object.keys(this.tiles).length === 0 || !this.image) {\n return;\n }\n var context = this.map.painter.context;\n var gl2 = context.gl;\n if (!this.boundsBuffer) {\n this.boundsBuffer = context.createVertexBuffer(this._boundsArray, rasterBoundsAttributes.members);\n }\n if (!this.boundsSegments) {\n this.boundsSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n }\n if (!this.texture) {\n this.texture = new performance2.Texture(context, this.image, gl2.RGBA);\n this.texture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n }\n for (var w in this.tiles) {\n var tile = this.tiles[w];\n if (tile.state !== \"loaded\") {\n tile.state = \"loaded\";\n tile.texture = this.texture;\n }\n }\n };\n ImageSource2.prototype.loadTile = function loadTile(tile, callback) {\n if (this.tileID && this.tileID.equals(tile.tileID.canonical)) {\n this.tiles[String(tile.tileID.wrap)] = tile;\n tile.buckets = {};\n callback(null);\n } else {\n tile.state = \"errored\";\n callback(null);\n }\n };\n ImageSource2.prototype.serialize = function serialize() {\n return {\n type: \"image\",\n url: this.options.url,\n coordinates: this.coordinates\n };\n };\n ImageSource2.prototype.hasTransition = function hasTransition() {\n return false;\n };\n return ImageSource2;\n }(performance2.Evented);\n function getCoordinatesCenterTileID(coords) {\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n minX = Math.min(minX, coord.x);\n minY = Math.min(minY, coord.y);\n maxX = Math.max(maxX, coord.x);\n maxY = Math.max(maxY, coord.y);\n }\n var dx = maxX - minX;\n var dy = maxY - minY;\n var dMax = Math.max(dx, dy);\n var zoom = Math.max(0, Math.floor(-Math.log(dMax) / Math.LN2));\n var tilesAtZoom = Math.pow(2, zoom);\n return new performance2.CanonicalTileID(zoom, Math.floor((minX + maxX) / 2 * tilesAtZoom), Math.floor((minY + maxY) / 2 * tilesAtZoom));\n }\n var VideoSource = function(ImageSource2) {\n function VideoSource2(id, options, dispatcher, eventedParent) {\n ImageSource2.call(this, id, options, dispatcher, eventedParent);\n this.roundZoom = true;\n this.type = \"video\";\n this.options = options;\n }\n if (ImageSource2)\n VideoSource2.__proto__ = ImageSource2;\n VideoSource2.prototype = Object.create(ImageSource2 && ImageSource2.prototype);\n VideoSource2.prototype.constructor = VideoSource2;\n VideoSource2.prototype.load = function load() {\n var this$1 = this;\n this._loaded = false;\n var options = this.options;\n this.urls = [];\n for (var i = 0, list = options.urls; i < list.length; i += 1) {\n var url = list[i];\n this.urls.push(this.map._requestManager.transformRequest(url, performance2.ResourceType.Source).url);\n }\n performance2.getVideo(this.urls, function(err, video) {\n this$1._loaded = true;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (video) {\n this$1.video = video;\n this$1.video.loop = true;\n this$1.video.addEventListener(\"playing\", function() {\n this$1.map.triggerRepaint();\n });\n if (this$1.map) {\n this$1.video.play();\n }\n this$1._finishLoading();\n }\n });\n };\n VideoSource2.prototype.pause = function pause() {\n if (this.video) {\n this.video.pause();\n }\n };\n VideoSource2.prototype.play = function play() {\n if (this.video) {\n this.video.play();\n }\n };\n VideoSource2.prototype.seek = function seek(seconds) {\n if (this.video) {\n var seekableRange = this.video.seekable;\n if (seconds < seekableRange.start(0) || seconds > seekableRange.end(0)) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + this.id, null, \"Playback for this video can be set only between the \" + seekableRange.start(0) + \" and \" + seekableRange.end(0) + \"-second mark.\")));\n } else {\n this.video.currentTime = seconds;\n }\n }\n };\n VideoSource2.prototype.getVideo = function getVideo() {\n return this.video;\n };\n VideoSource2.prototype.onAdd = function onAdd(map) {\n if (this.map) {\n return;\n }\n this.map = map;\n this.load();\n if (this.video) {\n this.video.play();\n this.setCoordinates(this.coordinates);\n }\n };\n VideoSource2.prototype.prepare = function prepare() {\n if (Object.keys(this.tiles).length === 0 || this.video.readyState < 2) {\n return;\n }\n var context = this.map.painter.context;\n var gl2 = context.gl;\n if (!this.boundsBuffer) {\n this.boundsBuffer = context.createVertexBuffer(this._boundsArray, rasterBoundsAttributes.members);\n }\n if (!this.boundsSegments) {\n this.boundsSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n }\n if (!this.texture) {\n this.texture = new performance2.Texture(context, this.video, gl2.RGBA);\n this.texture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n } else if (!this.video.paused) {\n this.texture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n gl2.texSubImage2D(gl2.TEXTURE_2D, 0, 0, 0, gl2.RGBA, gl2.UNSIGNED_BYTE, this.video);\n }\n for (var w in this.tiles) {\n var tile = this.tiles[w];\n if (tile.state !== \"loaded\") {\n tile.state = \"loaded\";\n tile.texture = this.texture;\n }\n }\n };\n VideoSource2.prototype.serialize = function serialize() {\n return {\n type: \"video\",\n urls: this.urls,\n coordinates: this.coordinates\n };\n };\n VideoSource2.prototype.hasTransition = function hasTransition() {\n return this.video && !this.video.paused;\n };\n return VideoSource2;\n }(ImageSource);\n var CanvasSource = function(ImageSource2) {\n function CanvasSource2(id, options, dispatcher, eventedParent) {\n ImageSource2.call(this, id, options, dispatcher, eventedParent);\n if (!options.coordinates) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, 'missing required property \"coordinates\"')));\n } else if (!Array.isArray(options.coordinates) || options.coordinates.length !== 4 || options.coordinates.some(function(c) {\n return !Array.isArray(c) || c.length !== 2 || c.some(function(l) {\n return typeof l !== \"number\";\n });\n })) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, '\"coordinates\" property must be an array of 4 longitude/latitude array pairs')));\n }\n if (options.animate && typeof options.animate !== \"boolean\") {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, 'optional \"animate\" property must be a boolean value')));\n }\n if (!options.canvas) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, 'missing required property \"canvas\"')));\n } else if (typeof options.canvas !== \"string\" && !(options.canvas instanceof performance2.window.HTMLCanvasElement)) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, '\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance')));\n }\n this.options = options;\n this.animate = options.animate !== void 0 ? options.animate : true;\n }\n if (ImageSource2)\n CanvasSource2.__proto__ = ImageSource2;\n CanvasSource2.prototype = Object.create(ImageSource2 && ImageSource2.prototype);\n CanvasSource2.prototype.constructor = CanvasSource2;\n CanvasSource2.prototype.load = function load() {\n this._loaded = true;\n if (!this.canvas) {\n this.canvas = this.options.canvas instanceof performance2.window.HTMLCanvasElement ? this.options.canvas : performance2.window.document.getElementById(this.options.canvas);\n }\n this.width = this.canvas.width;\n this.height = this.canvas.height;\n if (this._hasInvalidDimensions()) {\n this.fire(new performance2.ErrorEvent(new Error(\"Canvas dimensions cannot be less than or equal to zero.\")));\n return;\n }\n this.play = function() {\n this._playing = true;\n this.map.triggerRepaint();\n };\n this.pause = function() {\n if (this._playing) {\n this.prepare();\n this._playing = false;\n }\n };\n this._finishLoading();\n };\n CanvasSource2.prototype.getCanvas = function getCanvas() {\n return this.canvas;\n };\n CanvasSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n if (this.canvas) {\n if (this.animate) {\n this.play();\n }\n }\n };\n CanvasSource2.prototype.onRemove = function onRemove() {\n this.pause();\n };\n CanvasSource2.prototype.prepare = function prepare() {\n var resize = false;\n if (this.canvas.width !== this.width) {\n this.width = this.canvas.width;\n resize = true;\n }\n if (this.canvas.height !== this.height) {\n this.height = this.canvas.height;\n resize = true;\n }\n if (this._hasInvalidDimensions()) {\n return;\n }\n if (Object.keys(this.tiles).length === 0) {\n return;\n }\n var context = this.map.painter.context;\n var gl2 = context.gl;\n if (!this.boundsBuffer) {\n this.boundsBuffer = context.createVertexBuffer(this._boundsArray, rasterBoundsAttributes.members);\n }\n if (!this.boundsSegments) {\n this.boundsSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n }\n if (!this.texture) {\n this.texture = new performance2.Texture(context, this.canvas, gl2.RGBA, { premultiply: true });\n } else if (resize || this._playing) {\n this.texture.update(this.canvas, { premultiply: true });\n }\n for (var w in this.tiles) {\n var tile = this.tiles[w];\n if (tile.state !== \"loaded\") {\n tile.state = \"loaded\";\n tile.texture = this.texture;\n }\n }\n };\n CanvasSource2.prototype.serialize = function serialize() {\n return {\n type: \"canvas\",\n coordinates: this.coordinates\n };\n };\n CanvasSource2.prototype.hasTransition = function hasTransition() {\n return this._playing;\n };\n CanvasSource2.prototype._hasInvalidDimensions = function _hasInvalidDimensions() {\n for (var i = 0, list = [\n this.canvas.width,\n this.canvas.height\n ]; i < list.length; i += 1) {\n var x = list[i];\n if (isNaN(x) || x <= 0) {\n return true;\n }\n }\n return false;\n };\n return CanvasSource2;\n }(ImageSource);\n var sourceTypes = {\n vector: VectorTileSource,\n raster: RasterTileSource,\n \"raster-dem\": RasterDEMTileSource,\n geojson: GeoJSONSource,\n video: VideoSource,\n image: ImageSource,\n canvas: CanvasSource\n };\n var create = function(id, specification, dispatcher, eventedParent) {\n var source = new sourceTypes[specification.type](id, specification, dispatcher, eventedParent);\n if (source.id !== id) {\n throw new Error(\"Expected Source id to be \" + id + \" instead of \" + source.id);\n }\n performance2.bindAll([\n \"load\",\n \"abort\",\n \"unload\",\n \"serialize\",\n \"prepare\"\n ], source);\n return source;\n };\n var getType = function(name2) {\n return sourceTypes[name2];\n };\n var setType = function(name2, type) {\n sourceTypes[name2] = type;\n };\n function getPixelPosMatrix(transform, tileID) {\n var t = performance2.identity([]);\n performance2.translate(t, t, [\n 1,\n 1,\n 0\n ]);\n performance2.scale(t, t, [\n transform.width * 0.5,\n transform.height * 0.5,\n 1\n ]);\n return performance2.multiply(t, t, transform.calculatePosMatrix(tileID.toUnwrapped()));\n }\n function queryIncludes3DLayer(layers, styleLayers, sourceID) {\n if (layers) {\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layerID = list[i];\n var layer = styleLayers[layerID];\n if (layer && layer.source === sourceID && layer.type === \"fill-extrusion\") {\n return true;\n }\n }\n } else {\n for (var key in styleLayers) {\n var layer$1 = styleLayers[key];\n if (layer$1.source === sourceID && layer$1.type === \"fill-extrusion\") {\n return true;\n }\n }\n }\n return false;\n }\n function queryRenderedFeatures(sourceCache, styleLayers, serializedLayers, queryGeometry, params, transform) {\n var has3DLayer = queryIncludes3DLayer(params && params.layers, styleLayers, sourceCache.id);\n var maxPitchScaleFactor = transform.maxPitchScaleFactor();\n var tilesIn = sourceCache.tilesIn(queryGeometry, maxPitchScaleFactor, has3DLayer);\n tilesIn.sort(sortTilesIn);\n var renderedFeatureLayers = [];\n for (var i = 0, list = tilesIn; i < list.length; i += 1) {\n var tileIn = list[i];\n renderedFeatureLayers.push({\n wrappedTileID: tileIn.tileID.wrapped().key,\n queryResults: tileIn.tile.queryRenderedFeatures(styleLayers, serializedLayers, sourceCache._state, tileIn.queryGeometry, tileIn.cameraQueryGeometry, tileIn.scale, params, transform, maxPitchScaleFactor, getPixelPosMatrix(sourceCache.transform, tileIn.tileID))\n });\n }\n var result = mergeRenderedFeatureLayers(renderedFeatureLayers);\n for (var layerID in result) {\n result[layerID].forEach(function(featureWrapper) {\n var feature = featureWrapper.feature;\n var state = sourceCache.getFeatureState(feature.layer[\"source-layer\"], feature.id);\n feature.source = feature.layer.source;\n if (feature.layer[\"source-layer\"]) {\n feature.sourceLayer = feature.layer[\"source-layer\"];\n }\n feature.state = state;\n });\n }\n return result;\n }\n function queryRenderedSymbols(styleLayers, serializedLayers, sourceCaches, queryGeometry, params, collisionIndex, retainedQueryData) {\n var result = {};\n var renderedSymbols = collisionIndex.queryRenderedSymbols(queryGeometry);\n var bucketQueryData = [];\n for (var i = 0, list = Object.keys(renderedSymbols).map(Number); i < list.length; i += 1) {\n var bucketInstanceId = list[i];\n bucketQueryData.push(retainedQueryData[bucketInstanceId]);\n }\n bucketQueryData.sort(sortTilesIn);\n var loop = function() {\n var queryData = list$2[i$2];\n var bucketSymbols = queryData.featureIndex.lookupSymbolFeatures(renderedSymbols[queryData.bucketInstanceId], serializedLayers, queryData.bucketIndex, queryData.sourceLayerIndex, params.filter, params.layers, params.availableImages, styleLayers);\n for (var layerID in bucketSymbols) {\n var resultFeatures = result[layerID] = result[layerID] || [];\n var layerSymbols = bucketSymbols[layerID];\n layerSymbols.sort(function(a, b) {\n var featureSortOrder = queryData.featureSortOrder;\n if (featureSortOrder) {\n var sortedA = featureSortOrder.indexOf(a.featureIndex);\n var sortedB = featureSortOrder.indexOf(b.featureIndex);\n return sortedB - sortedA;\n } else {\n return b.featureIndex - a.featureIndex;\n }\n });\n for (var i$1 = 0, list$1 = layerSymbols; i$1 < list$1.length; i$1 += 1) {\n var symbolFeature = list$1[i$1];\n resultFeatures.push(symbolFeature);\n }\n }\n };\n for (var i$2 = 0, list$2 = bucketQueryData; i$2 < list$2.length; i$2 += 1)\n loop();\n var loop$1 = function(layerName2) {\n result[layerName2].forEach(function(featureWrapper) {\n var feature = featureWrapper.feature;\n var layer = styleLayers[layerName2];\n var sourceCache = sourceCaches[layer.source];\n var state = sourceCache.getFeatureState(feature.layer[\"source-layer\"], feature.id);\n feature.source = feature.layer.source;\n if (feature.layer[\"source-layer\"]) {\n feature.sourceLayer = feature.layer[\"source-layer\"];\n }\n feature.state = state;\n });\n };\n for (var layerName in result)\n loop$1(layerName);\n return result;\n }\n function querySourceFeatures(sourceCache, params) {\n var tiles = sourceCache.getRenderableIds().map(function(id) {\n return sourceCache.getTileByID(id);\n });\n var result = [];\n var dataTiles = {};\n for (var i = 0; i < tiles.length; i++) {\n var tile = tiles[i];\n var dataID = tile.tileID.canonical.key;\n if (!dataTiles[dataID]) {\n dataTiles[dataID] = true;\n tile.querySourceFeatures(result, params);\n }\n }\n return result;\n }\n function sortTilesIn(a, b) {\n var idA = a.tileID;\n var idB = b.tileID;\n return idA.overscaledZ - idB.overscaledZ || idA.canonical.y - idB.canonical.y || idA.wrap - idB.wrap || idA.canonical.x - idB.canonical.x;\n }\n function mergeRenderedFeatureLayers(tiles) {\n var result = {};\n var wrappedIDLayerMap = {};\n for (var i$1 = 0, list$1 = tiles; i$1 < list$1.length; i$1 += 1) {\n var tile = list$1[i$1];\n var queryResults = tile.queryResults;\n var wrappedID = tile.wrappedTileID;\n var wrappedIDLayers = wrappedIDLayerMap[wrappedID] = wrappedIDLayerMap[wrappedID] || {};\n for (var layerID in queryResults) {\n var tileFeatures = queryResults[layerID];\n var wrappedIDFeatures = wrappedIDLayers[layerID] = wrappedIDLayers[layerID] || {};\n var resultFeatures = result[layerID] = result[layerID] || [];\n for (var i = 0, list = tileFeatures; i < list.length; i += 1) {\n var tileFeature = list[i];\n if (!wrappedIDFeatures[tileFeature.featureIndex]) {\n wrappedIDFeatures[tileFeature.featureIndex] = true;\n resultFeatures.push(tileFeature);\n }\n }\n }\n }\n return result;\n }\n var TileCache = function TileCache2(max, onRemove) {\n this.max = max;\n this.onRemove = onRemove;\n this.reset();\n };\n TileCache.prototype.reset = function reset() {\n for (var key in this.data) {\n for (var i = 0, list = this.data[key]; i < list.length; i += 1) {\n var removedData = list[i];\n if (removedData.timeout) {\n clearTimeout(removedData.timeout);\n }\n this.onRemove(removedData.value);\n }\n }\n this.data = {};\n this.order = [];\n return this;\n };\n TileCache.prototype.add = function add(tileID, data, expiryTimeout) {\n var this$1 = this;\n var key = tileID.wrapped().key;\n if (this.data[key] === void 0) {\n this.data[key] = [];\n }\n var dataWrapper = {\n value: data,\n timeout: void 0\n };\n if (expiryTimeout !== void 0) {\n dataWrapper.timeout = setTimeout(function() {\n this$1.remove(tileID, dataWrapper);\n }, expiryTimeout);\n }\n this.data[key].push(dataWrapper);\n this.order.push(key);\n if (this.order.length > this.max) {\n var removedData = this._getAndRemoveByKey(this.order[0]);\n if (removedData) {\n this.onRemove(removedData);\n }\n }\n return this;\n };\n TileCache.prototype.has = function has(tileID) {\n return tileID.wrapped().key in this.data;\n };\n TileCache.prototype.getAndRemove = function getAndRemove(tileID) {\n if (!this.has(tileID)) {\n return null;\n }\n return this._getAndRemoveByKey(tileID.wrapped().key);\n };\n TileCache.prototype._getAndRemoveByKey = function _getAndRemoveByKey(key) {\n var data = this.data[key].shift();\n if (data.timeout) {\n clearTimeout(data.timeout);\n }\n if (this.data[key].length === 0) {\n delete this.data[key];\n }\n this.order.splice(this.order.indexOf(key), 1);\n return data.value;\n };\n TileCache.prototype.getByKey = function getByKey(key) {\n var data = this.data[key];\n return data ? data[0].value : null;\n };\n TileCache.prototype.get = function get(tileID) {\n if (!this.has(tileID)) {\n return null;\n }\n var data = this.data[tileID.wrapped().key][0];\n return data.value;\n };\n TileCache.prototype.remove = function remove(tileID, value) {\n if (!this.has(tileID)) {\n return this;\n }\n var key = tileID.wrapped().key;\n var dataIndex = value === void 0 ? 0 : this.data[key].indexOf(value);\n var data = this.data[key][dataIndex];\n this.data[key].splice(dataIndex, 1);\n if (data.timeout) {\n clearTimeout(data.timeout);\n }\n if (this.data[key].length === 0) {\n delete this.data[key];\n }\n this.onRemove(data.value);\n this.order.splice(this.order.indexOf(key), 1);\n return this;\n };\n TileCache.prototype.setMaxSize = function setMaxSize(max) {\n this.max = max;\n while (this.order.length > this.max) {\n var removedData = this._getAndRemoveByKey(this.order[0]);\n if (removedData) {\n this.onRemove(removedData);\n }\n }\n return this;\n };\n TileCache.prototype.filter = function filter(filterFn) {\n var removed = [];\n for (var key in this.data) {\n for (var i = 0, list = this.data[key]; i < list.length; i += 1) {\n var entry = list[i];\n if (!filterFn(entry.value)) {\n removed.push(entry);\n }\n }\n }\n for (var i$1 = 0, list$1 = removed; i$1 < list$1.length; i$1 += 1) {\n var r = list$1[i$1];\n this.remove(r.value.tileID, r);\n }\n };\n var IndexBuffer = function IndexBuffer2(context, array, dynamicDraw) {\n this.context = context;\n var gl2 = context.gl;\n this.buffer = gl2.createBuffer();\n this.dynamicDraw = Boolean(dynamicDraw);\n this.context.unbindVAO();\n context.bindElementBuffer.set(this.buffer);\n gl2.bufferData(gl2.ELEMENT_ARRAY_BUFFER, array.arrayBuffer, this.dynamicDraw ? gl2.DYNAMIC_DRAW : gl2.STATIC_DRAW);\n if (!this.dynamicDraw) {\n delete array.arrayBuffer;\n }\n };\n IndexBuffer.prototype.bind = function bind() {\n this.context.bindElementBuffer.set(this.buffer);\n };\n IndexBuffer.prototype.updateData = function updateData(array) {\n var gl2 = this.context.gl;\n this.context.unbindVAO();\n this.bind();\n gl2.bufferSubData(gl2.ELEMENT_ARRAY_BUFFER, 0, array.arrayBuffer);\n };\n IndexBuffer.prototype.destroy = function destroy() {\n var gl2 = this.context.gl;\n if (this.buffer) {\n gl2.deleteBuffer(this.buffer);\n delete this.buffer;\n }\n };\n var AttributeType = {\n Int8: \"BYTE\",\n Uint8: \"UNSIGNED_BYTE\",\n Int16: \"SHORT\",\n Uint16: \"UNSIGNED_SHORT\",\n Int32: \"INT\",\n Uint32: \"UNSIGNED_INT\",\n Float32: \"FLOAT\"\n };\n var VertexBuffer = function VertexBuffer2(context, array, attributes, dynamicDraw) {\n this.length = array.length;\n this.attributes = attributes;\n this.itemSize = array.bytesPerElement;\n this.dynamicDraw = dynamicDraw;\n this.context = context;\n var gl2 = context.gl;\n this.buffer = gl2.createBuffer();\n context.bindVertexBuffer.set(this.buffer);\n gl2.bufferData(gl2.ARRAY_BUFFER, array.arrayBuffer, this.dynamicDraw ? gl2.DYNAMIC_DRAW : gl2.STATIC_DRAW);\n if (!this.dynamicDraw) {\n delete array.arrayBuffer;\n }\n };\n VertexBuffer.prototype.bind = function bind() {\n this.context.bindVertexBuffer.set(this.buffer);\n };\n VertexBuffer.prototype.updateData = function updateData(array) {\n var gl2 = this.context.gl;\n this.bind();\n gl2.bufferSubData(gl2.ARRAY_BUFFER, 0, array.arrayBuffer);\n };\n VertexBuffer.prototype.enableAttributes = function enableAttributes(gl2, program) {\n for (var j = 0; j < this.attributes.length; j++) {\n var member = this.attributes[j];\n var attribIndex = program.attributes[member.name];\n if (attribIndex !== void 0) {\n gl2.enableVertexAttribArray(attribIndex);\n }\n }\n };\n VertexBuffer.prototype.setVertexAttribPointers = function setVertexAttribPointers(gl2, program, vertexOffset) {\n for (var j = 0; j < this.attributes.length; j++) {\n var member = this.attributes[j];\n var attribIndex = program.attributes[member.name];\n if (attribIndex !== void 0) {\n gl2.vertexAttribPointer(attribIndex, member.components, gl2[AttributeType[member.type]], false, this.itemSize, member.offset + this.itemSize * (vertexOffset || 0));\n }\n }\n };\n VertexBuffer.prototype.destroy = function destroy() {\n var gl2 = this.context.gl;\n if (this.buffer) {\n gl2.deleteBuffer(this.buffer);\n delete this.buffer;\n }\n };\n var BaseValue = function BaseValue2(context) {\n this.gl = context.gl;\n this.default = this.getDefault();\n this.current = this.default;\n this.dirty = false;\n };\n BaseValue.prototype.get = function get() {\n return this.current;\n };\n BaseValue.prototype.set = function set(value) {\n };\n BaseValue.prototype.getDefault = function getDefault() {\n return this.default;\n };\n BaseValue.prototype.setDefault = function setDefault() {\n this.set(this.default);\n };\n var ClearColor = function(BaseValue2) {\n function ClearColor2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ClearColor2.__proto__ = BaseValue2;\n ClearColor2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ClearColor2.prototype.constructor = ClearColor2;\n ClearColor2.prototype.getDefault = function getDefault() {\n return performance2.Color.transparent;\n };\n ClearColor2.prototype.set = function set(v) {\n var c = this.current;\n if (v.r === c.r && v.g === c.g && v.b === c.b && v.a === c.a && !this.dirty) {\n return;\n }\n this.gl.clearColor(v.r, v.g, v.b, v.a);\n this.current = v;\n this.dirty = false;\n };\n return ClearColor2;\n }(BaseValue);\n var ClearDepth = function(BaseValue2) {\n function ClearDepth2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ClearDepth2.__proto__ = BaseValue2;\n ClearDepth2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ClearDepth2.prototype.constructor = ClearDepth2;\n ClearDepth2.prototype.getDefault = function getDefault() {\n return 1;\n };\n ClearDepth2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.clearDepth(v);\n this.current = v;\n this.dirty = false;\n };\n return ClearDepth2;\n }(BaseValue);\n var ClearStencil = function(BaseValue2) {\n function ClearStencil2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ClearStencil2.__proto__ = BaseValue2;\n ClearStencil2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ClearStencil2.prototype.constructor = ClearStencil2;\n ClearStencil2.prototype.getDefault = function getDefault() {\n return 0;\n };\n ClearStencil2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.clearStencil(v);\n this.current = v;\n this.dirty = false;\n };\n return ClearStencil2;\n }(BaseValue);\n var ColorMask = function(BaseValue2) {\n function ColorMask2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ColorMask2.__proto__ = BaseValue2;\n ColorMask2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ColorMask2.prototype.constructor = ColorMask2;\n ColorMask2.prototype.getDefault = function getDefault() {\n return [\n true,\n true,\n true,\n true\n ];\n };\n ColorMask2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && v[2] === c[2] && v[3] === c[3] && !this.dirty) {\n return;\n }\n this.gl.colorMask(v[0], v[1], v[2], v[3]);\n this.current = v;\n this.dirty = false;\n };\n return ColorMask2;\n }(BaseValue);\n var DepthMask = function(BaseValue2) {\n function DepthMask2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n DepthMask2.__proto__ = BaseValue2;\n DepthMask2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n DepthMask2.prototype.constructor = DepthMask2;\n DepthMask2.prototype.getDefault = function getDefault() {\n return true;\n };\n DepthMask2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.depthMask(v);\n this.current = v;\n this.dirty = false;\n };\n return DepthMask2;\n }(BaseValue);\n var StencilMask = function(BaseValue2) {\n function StencilMask2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n StencilMask2.__proto__ = BaseValue2;\n StencilMask2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n StencilMask2.prototype.constructor = StencilMask2;\n StencilMask2.prototype.getDefault = function getDefault() {\n return 255;\n };\n StencilMask2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.stencilMask(v);\n this.current = v;\n this.dirty = false;\n };\n return StencilMask2;\n }(BaseValue);\n var StencilFunc = function(BaseValue2) {\n function StencilFunc2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n StencilFunc2.__proto__ = BaseValue2;\n StencilFunc2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n StencilFunc2.prototype.constructor = StencilFunc2;\n StencilFunc2.prototype.getDefault = function getDefault() {\n return {\n func: this.gl.ALWAYS,\n ref: 0,\n mask: 255\n };\n };\n StencilFunc2.prototype.set = function set(v) {\n var c = this.current;\n if (v.func === c.func && v.ref === c.ref && v.mask === c.mask && !this.dirty) {\n return;\n }\n this.gl.stencilFunc(v.func, v.ref, v.mask);\n this.current = v;\n this.dirty = false;\n };\n return StencilFunc2;\n }(BaseValue);\n var StencilOp = function(BaseValue2) {\n function StencilOp2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n StencilOp2.__proto__ = BaseValue2;\n StencilOp2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n StencilOp2.prototype.constructor = StencilOp2;\n StencilOp2.prototype.getDefault = function getDefault() {\n var gl2 = this.gl;\n return [\n gl2.KEEP,\n gl2.KEEP,\n gl2.KEEP\n ];\n };\n StencilOp2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && v[2] === c[2] && !this.dirty) {\n return;\n }\n this.gl.stencilOp(v[0], v[1], v[2]);\n this.current = v;\n this.dirty = false;\n };\n return StencilOp2;\n }(BaseValue);\n var StencilTest = function(BaseValue2) {\n function StencilTest2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n StencilTest2.__proto__ = BaseValue2;\n StencilTest2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n StencilTest2.prototype.constructor = StencilTest2;\n StencilTest2.prototype.getDefault = function getDefault() {\n return false;\n };\n StencilTest2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n if (v) {\n gl2.enable(gl2.STENCIL_TEST);\n } else {\n gl2.disable(gl2.STENCIL_TEST);\n }\n this.current = v;\n this.dirty = false;\n };\n return StencilTest2;\n }(BaseValue);\n var DepthRange = function(BaseValue2) {\n function DepthRange2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n DepthRange2.__proto__ = BaseValue2;\n DepthRange2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n DepthRange2.prototype.constructor = DepthRange2;\n DepthRange2.prototype.getDefault = function getDefault() {\n return [\n 0,\n 1\n ];\n };\n DepthRange2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && !this.dirty) {\n return;\n }\n this.gl.depthRange(v[0], v[1]);\n this.current = v;\n this.dirty = false;\n };\n return DepthRange2;\n }(BaseValue);\n var DepthTest = function(BaseValue2) {\n function DepthTest2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n DepthTest2.__proto__ = BaseValue2;\n DepthTest2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n DepthTest2.prototype.constructor = DepthTest2;\n DepthTest2.prototype.getDefault = function getDefault() {\n return false;\n };\n DepthTest2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n if (v) {\n gl2.enable(gl2.DEPTH_TEST);\n } else {\n gl2.disable(gl2.DEPTH_TEST);\n }\n this.current = v;\n this.dirty = false;\n };\n return DepthTest2;\n }(BaseValue);\n var DepthFunc = function(BaseValue2) {\n function DepthFunc2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n DepthFunc2.__proto__ = BaseValue2;\n DepthFunc2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n DepthFunc2.prototype.constructor = DepthFunc2;\n DepthFunc2.prototype.getDefault = function getDefault() {\n return this.gl.LESS;\n };\n DepthFunc2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.depthFunc(v);\n this.current = v;\n this.dirty = false;\n };\n return DepthFunc2;\n }(BaseValue);\n var Blend = function(BaseValue2) {\n function Blend2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n Blend2.__proto__ = BaseValue2;\n Blend2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n Blend2.prototype.constructor = Blend2;\n Blend2.prototype.getDefault = function getDefault() {\n return false;\n };\n Blend2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n if (v) {\n gl2.enable(gl2.BLEND);\n } else {\n gl2.disable(gl2.BLEND);\n }\n this.current = v;\n this.dirty = false;\n };\n return Blend2;\n }(BaseValue);\n var BlendFunc = function(BaseValue2) {\n function BlendFunc2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BlendFunc2.__proto__ = BaseValue2;\n BlendFunc2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BlendFunc2.prototype.constructor = BlendFunc2;\n BlendFunc2.prototype.getDefault = function getDefault() {\n var gl2 = this.gl;\n return [\n gl2.ONE,\n gl2.ZERO\n ];\n };\n BlendFunc2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && !this.dirty) {\n return;\n }\n this.gl.blendFunc(v[0], v[1]);\n this.current = v;\n this.dirty = false;\n };\n return BlendFunc2;\n }(BaseValue);\n var BlendColor = function(BaseValue2) {\n function BlendColor2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BlendColor2.__proto__ = BaseValue2;\n BlendColor2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BlendColor2.prototype.constructor = BlendColor2;\n BlendColor2.prototype.getDefault = function getDefault() {\n return performance2.Color.transparent;\n };\n BlendColor2.prototype.set = function set(v) {\n var c = this.current;\n if (v.r === c.r && v.g === c.g && v.b === c.b && v.a === c.a && !this.dirty) {\n return;\n }\n this.gl.blendColor(v.r, v.g, v.b, v.a);\n this.current = v;\n this.dirty = false;\n };\n return BlendColor2;\n }(BaseValue);\n var BlendEquation = function(BaseValue2) {\n function BlendEquation2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BlendEquation2.__proto__ = BaseValue2;\n BlendEquation2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BlendEquation2.prototype.constructor = BlendEquation2;\n BlendEquation2.prototype.getDefault = function getDefault() {\n return this.gl.FUNC_ADD;\n };\n BlendEquation2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.blendEquation(v);\n this.current = v;\n this.dirty = false;\n };\n return BlendEquation2;\n }(BaseValue);\n var CullFace = function(BaseValue2) {\n function CullFace2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n CullFace2.__proto__ = BaseValue2;\n CullFace2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n CullFace2.prototype.constructor = CullFace2;\n CullFace2.prototype.getDefault = function getDefault() {\n return false;\n };\n CullFace2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n if (v) {\n gl2.enable(gl2.CULL_FACE);\n } else {\n gl2.disable(gl2.CULL_FACE);\n }\n this.current = v;\n this.dirty = false;\n };\n return CullFace2;\n }(BaseValue);\n var CullFaceSide = function(BaseValue2) {\n function CullFaceSide2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n CullFaceSide2.__proto__ = BaseValue2;\n CullFaceSide2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n CullFaceSide2.prototype.constructor = CullFaceSide2;\n CullFaceSide2.prototype.getDefault = function getDefault() {\n return this.gl.BACK;\n };\n CullFaceSide2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.cullFace(v);\n this.current = v;\n this.dirty = false;\n };\n return CullFaceSide2;\n }(BaseValue);\n var FrontFace = function(BaseValue2) {\n function FrontFace2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n FrontFace2.__proto__ = BaseValue2;\n FrontFace2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n FrontFace2.prototype.constructor = FrontFace2;\n FrontFace2.prototype.getDefault = function getDefault() {\n return this.gl.CCW;\n };\n FrontFace2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.frontFace(v);\n this.current = v;\n this.dirty = false;\n };\n return FrontFace2;\n }(BaseValue);\n var Program = function(BaseValue2) {\n function Program2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n Program2.__proto__ = BaseValue2;\n Program2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n Program2.prototype.constructor = Program2;\n Program2.prototype.getDefault = function getDefault() {\n return null;\n };\n Program2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.useProgram(v);\n this.current = v;\n this.dirty = false;\n };\n return Program2;\n }(BaseValue);\n var ActiveTextureUnit = function(BaseValue2) {\n function ActiveTextureUnit2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ActiveTextureUnit2.__proto__ = BaseValue2;\n ActiveTextureUnit2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ActiveTextureUnit2.prototype.constructor = ActiveTextureUnit2;\n ActiveTextureUnit2.prototype.getDefault = function getDefault() {\n return this.gl.TEXTURE0;\n };\n ActiveTextureUnit2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.activeTexture(v);\n this.current = v;\n this.dirty = false;\n };\n return ActiveTextureUnit2;\n }(BaseValue);\n var Viewport = function(BaseValue2) {\n function Viewport2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n Viewport2.__proto__ = BaseValue2;\n Viewport2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n Viewport2.prototype.constructor = Viewport2;\n Viewport2.prototype.getDefault = function getDefault() {\n var gl2 = this.gl;\n return [\n 0,\n 0,\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight\n ];\n };\n Viewport2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && v[2] === c[2] && v[3] === c[3] && !this.dirty) {\n return;\n }\n this.gl.viewport(v[0], v[1], v[2], v[3]);\n this.current = v;\n this.dirty = false;\n };\n return Viewport2;\n }(BaseValue);\n var BindFramebuffer = function(BaseValue2) {\n function BindFramebuffer2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindFramebuffer2.__proto__ = BaseValue2;\n BindFramebuffer2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindFramebuffer2.prototype.constructor = BindFramebuffer2;\n BindFramebuffer2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindFramebuffer2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return BindFramebuffer2;\n }(BaseValue);\n var BindRenderbuffer = function(BaseValue2) {\n function BindRenderbuffer2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindRenderbuffer2.__proto__ = BaseValue2;\n BindRenderbuffer2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindRenderbuffer2.prototype.constructor = BindRenderbuffer2;\n BindRenderbuffer2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindRenderbuffer2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return BindRenderbuffer2;\n }(BaseValue);\n var BindTexture = function(BaseValue2) {\n function BindTexture2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindTexture2.__proto__ = BaseValue2;\n BindTexture2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindTexture2.prototype.constructor = BindTexture2;\n BindTexture2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindTexture2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindTexture(gl2.TEXTURE_2D, v);\n this.current = v;\n this.dirty = false;\n };\n return BindTexture2;\n }(BaseValue);\n var BindVertexBuffer = function(BaseValue2) {\n function BindVertexBuffer2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindVertexBuffer2.__proto__ = BaseValue2;\n BindVertexBuffer2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindVertexBuffer2.prototype.constructor = BindVertexBuffer2;\n BindVertexBuffer2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindVertexBuffer2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindBuffer(gl2.ARRAY_BUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return BindVertexBuffer2;\n }(BaseValue);\n var BindElementBuffer = function(BaseValue2) {\n function BindElementBuffer2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindElementBuffer2.__proto__ = BaseValue2;\n BindElementBuffer2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindElementBuffer2.prototype.constructor = BindElementBuffer2;\n BindElementBuffer2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindElementBuffer2.prototype.set = function set(v) {\n var gl2 = this.gl;\n gl2.bindBuffer(gl2.ELEMENT_ARRAY_BUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return BindElementBuffer2;\n }(BaseValue);\n var BindVertexArrayOES = function(BaseValue2) {\n function BindVertexArrayOES2(context) {\n BaseValue2.call(this, context);\n this.vao = context.extVertexArrayObject;\n }\n if (BaseValue2)\n BindVertexArrayOES2.__proto__ = BaseValue2;\n BindVertexArrayOES2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindVertexArrayOES2.prototype.constructor = BindVertexArrayOES2;\n BindVertexArrayOES2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindVertexArrayOES2.prototype.set = function set(v) {\n if (!this.vao || v === this.current && !this.dirty) {\n return;\n }\n this.vao.bindVertexArrayOES(v);\n this.current = v;\n this.dirty = false;\n };\n return BindVertexArrayOES2;\n }(BaseValue);\n var PixelStoreUnpack = function(BaseValue2) {\n function PixelStoreUnpack2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n PixelStoreUnpack2.__proto__ = BaseValue2;\n PixelStoreUnpack2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n PixelStoreUnpack2.prototype.constructor = PixelStoreUnpack2;\n PixelStoreUnpack2.prototype.getDefault = function getDefault() {\n return 4;\n };\n PixelStoreUnpack2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.pixelStorei(gl2.UNPACK_ALIGNMENT, v);\n this.current = v;\n this.dirty = false;\n };\n return PixelStoreUnpack2;\n }(BaseValue);\n var PixelStoreUnpackPremultiplyAlpha = function(BaseValue2) {\n function PixelStoreUnpackPremultiplyAlpha2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n PixelStoreUnpackPremultiplyAlpha2.__proto__ = BaseValue2;\n PixelStoreUnpackPremultiplyAlpha2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n PixelStoreUnpackPremultiplyAlpha2.prototype.constructor = PixelStoreUnpackPremultiplyAlpha2;\n PixelStoreUnpackPremultiplyAlpha2.prototype.getDefault = function getDefault() {\n return false;\n };\n PixelStoreUnpackPremultiplyAlpha2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.pixelStorei(gl2.UNPACK_PREMULTIPLY_ALPHA_WEBGL, v);\n this.current = v;\n this.dirty = false;\n };\n return PixelStoreUnpackPremultiplyAlpha2;\n }(BaseValue);\n var PixelStoreUnpackFlipY = function(BaseValue2) {\n function PixelStoreUnpackFlipY2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n PixelStoreUnpackFlipY2.__proto__ = BaseValue2;\n PixelStoreUnpackFlipY2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n PixelStoreUnpackFlipY2.prototype.constructor = PixelStoreUnpackFlipY2;\n PixelStoreUnpackFlipY2.prototype.getDefault = function getDefault() {\n return false;\n };\n PixelStoreUnpackFlipY2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.pixelStorei(gl2.UNPACK_FLIP_Y_WEBGL, v);\n this.current = v;\n this.dirty = false;\n };\n return PixelStoreUnpackFlipY2;\n }(BaseValue);\n var FramebufferAttachment = function(BaseValue2) {\n function FramebufferAttachment2(context, parent) {\n BaseValue2.call(this, context);\n this.context = context;\n this.parent = parent;\n }\n if (BaseValue2)\n FramebufferAttachment2.__proto__ = BaseValue2;\n FramebufferAttachment2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n FramebufferAttachment2.prototype.constructor = FramebufferAttachment2;\n FramebufferAttachment2.prototype.getDefault = function getDefault() {\n return null;\n };\n return FramebufferAttachment2;\n }(BaseValue);\n var ColorAttachment = function(FramebufferAttachment2) {\n function ColorAttachment2() {\n FramebufferAttachment2.apply(this, arguments);\n }\n if (FramebufferAttachment2)\n ColorAttachment2.__proto__ = FramebufferAttachment2;\n ColorAttachment2.prototype = Object.create(FramebufferAttachment2 && FramebufferAttachment2.prototype);\n ColorAttachment2.prototype.constructor = ColorAttachment2;\n ColorAttachment2.prototype.setDirty = function setDirty() {\n this.dirty = true;\n };\n ColorAttachment2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.context.bindFramebuffer.set(this.parent);\n var gl2 = this.gl;\n gl2.framebufferTexture2D(gl2.FRAMEBUFFER, gl2.COLOR_ATTACHMENT0, gl2.TEXTURE_2D, v, 0);\n this.current = v;\n this.dirty = false;\n };\n return ColorAttachment2;\n }(FramebufferAttachment);\n var DepthAttachment = function(FramebufferAttachment2) {\n function DepthAttachment2() {\n FramebufferAttachment2.apply(this, arguments);\n }\n if (FramebufferAttachment2)\n DepthAttachment2.__proto__ = FramebufferAttachment2;\n DepthAttachment2.prototype = Object.create(FramebufferAttachment2 && FramebufferAttachment2.prototype);\n DepthAttachment2.prototype.constructor = DepthAttachment2;\n DepthAttachment2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.context.bindFramebuffer.set(this.parent);\n var gl2 = this.gl;\n gl2.framebufferRenderbuffer(gl2.FRAMEBUFFER, gl2.DEPTH_ATTACHMENT, gl2.RENDERBUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return DepthAttachment2;\n }(FramebufferAttachment);\n var Framebuffer = function Framebuffer2(context, width, height, hasDepth) {\n this.context = context;\n this.width = width;\n this.height = height;\n var gl2 = context.gl;\n var fbo = this.framebuffer = gl2.createFramebuffer();\n this.colorAttachment = new ColorAttachment(context, fbo);\n if (hasDepth) {\n this.depthAttachment = new DepthAttachment(context, fbo);\n }\n };\n Framebuffer.prototype.destroy = function destroy() {\n var gl2 = this.context.gl;\n var texture = this.colorAttachment.get();\n if (texture) {\n gl2.deleteTexture(texture);\n }\n if (this.depthAttachment) {\n var renderbuffer = this.depthAttachment.get();\n if (renderbuffer) {\n gl2.deleteRenderbuffer(renderbuffer);\n }\n }\n gl2.deleteFramebuffer(this.framebuffer);\n };\n var ALWAYS = 519;\n var DepthMode = function DepthMode2(depthFunc, depthMask, depthRange) {\n this.func = depthFunc;\n this.mask = depthMask;\n this.range = depthRange;\n };\n DepthMode.ReadOnly = false;\n DepthMode.ReadWrite = true;\n DepthMode.disabled = new DepthMode(ALWAYS, DepthMode.ReadOnly, [\n 0,\n 1\n ]);\n var ALWAYS$1 = 519;\n var KEEP = 7680;\n var StencilMode = function StencilMode2(test, ref, mask, fail, depthFail, pass) {\n this.test = test;\n this.ref = ref;\n this.mask = mask;\n this.fail = fail;\n this.depthFail = depthFail;\n this.pass = pass;\n };\n StencilMode.disabled = new StencilMode({\n func: ALWAYS$1,\n mask: 0\n }, 0, 0, KEEP, KEEP, KEEP);\n var ZERO = 0;\n var ONE = 1;\n var ONE_MINUS_SRC_ALPHA = 771;\n var ColorMode = function ColorMode2(blendFunction, blendColor, mask) {\n this.blendFunction = blendFunction;\n this.blendColor = blendColor;\n this.mask = mask;\n };\n ColorMode.Replace = [\n ONE,\n ZERO\n ];\n ColorMode.disabled = new ColorMode(ColorMode.Replace, performance2.Color.transparent, [\n false,\n false,\n false,\n false\n ]);\n ColorMode.unblended = new ColorMode(ColorMode.Replace, performance2.Color.transparent, [\n true,\n true,\n true,\n true\n ]);\n ColorMode.alphaBlended = new ColorMode([\n ONE,\n ONE_MINUS_SRC_ALPHA\n ], performance2.Color.transparent, [\n true,\n true,\n true,\n true\n ]);\n var BACK = 1029;\n var CCW = 2305;\n var CullFaceMode = function CullFaceMode2(enable, mode, frontFace) {\n this.enable = enable;\n this.mode = mode;\n this.frontFace = frontFace;\n };\n CullFaceMode.disabled = new CullFaceMode(false, BACK, CCW);\n CullFaceMode.backCCW = new CullFaceMode(true, BACK, CCW);\n var Context = function Context2(gl2) {\n this.gl = gl2;\n this.extVertexArrayObject = this.gl.getExtension(\"OES_vertex_array_object\");\n this.clearColor = new ClearColor(this);\n this.clearDepth = new ClearDepth(this);\n this.clearStencil = new ClearStencil(this);\n this.colorMask = new ColorMask(this);\n this.depthMask = new DepthMask(this);\n this.stencilMask = new StencilMask(this);\n this.stencilFunc = new StencilFunc(this);\n this.stencilOp = new StencilOp(this);\n this.stencilTest = new StencilTest(this);\n this.depthRange = new DepthRange(this);\n this.depthTest = new DepthTest(this);\n this.depthFunc = new DepthFunc(this);\n this.blend = new Blend(this);\n this.blendFunc = new BlendFunc(this);\n this.blendColor = new BlendColor(this);\n this.blendEquation = new BlendEquation(this);\n this.cullFace = new CullFace(this);\n this.cullFaceSide = new CullFaceSide(this);\n this.frontFace = new FrontFace(this);\n this.program = new Program(this);\n this.activeTexture = new ActiveTextureUnit(this);\n this.viewport = new Viewport(this);\n this.bindFramebuffer = new BindFramebuffer(this);\n this.bindRenderbuffer = new BindRenderbuffer(this);\n this.bindTexture = new BindTexture(this);\n this.bindVertexBuffer = new BindVertexBuffer(this);\n this.bindElementBuffer = new BindElementBuffer(this);\n this.bindVertexArrayOES = this.extVertexArrayObject && new BindVertexArrayOES(this);\n this.pixelStoreUnpack = new PixelStoreUnpack(this);\n this.pixelStoreUnpackPremultiplyAlpha = new PixelStoreUnpackPremultiplyAlpha(this);\n this.pixelStoreUnpackFlipY = new PixelStoreUnpackFlipY(this);\n this.extTextureFilterAnisotropic = gl2.getExtension(\"EXT_texture_filter_anisotropic\") || gl2.getExtension(\"MOZ_EXT_texture_filter_anisotropic\") || gl2.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");\n if (this.extTextureFilterAnisotropic) {\n this.extTextureFilterAnisotropicMax = gl2.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n }\n this.extTextureHalfFloat = gl2.getExtension(\"OES_texture_half_float\");\n if (this.extTextureHalfFloat) {\n gl2.getExtension(\"OES_texture_half_float_linear\");\n this.extRenderToTextureHalfFloat = gl2.getExtension(\"EXT_color_buffer_half_float\");\n }\n this.extTimerQuery = gl2.getExtension(\"EXT_disjoint_timer_query\");\n this.maxTextureSize = gl2.getParameter(gl2.MAX_TEXTURE_SIZE);\n };\n Context.prototype.setDefault = function setDefault() {\n this.unbindVAO();\n this.clearColor.setDefault();\n this.clearDepth.setDefault();\n this.clearStencil.setDefault();\n this.colorMask.setDefault();\n this.depthMask.setDefault();\n this.stencilMask.setDefault();\n this.stencilFunc.setDefault();\n this.stencilOp.setDefault();\n this.stencilTest.setDefault();\n this.depthRange.setDefault();\n this.depthTest.setDefault();\n this.depthFunc.setDefault();\n this.blend.setDefault();\n this.blendFunc.setDefault();\n this.blendColor.setDefault();\n this.blendEquation.setDefault();\n this.cullFace.setDefault();\n this.cullFaceSide.setDefault();\n this.frontFace.setDefault();\n this.program.setDefault();\n this.activeTexture.setDefault();\n this.bindFramebuffer.setDefault();\n this.pixelStoreUnpack.setDefault();\n this.pixelStoreUnpackPremultiplyAlpha.setDefault();\n this.pixelStoreUnpackFlipY.setDefault();\n };\n Context.prototype.setDirty = function setDirty() {\n this.clearColor.dirty = true;\n this.clearDepth.dirty = true;\n this.clearStencil.dirty = true;\n this.colorMask.dirty = true;\n this.depthMask.dirty = true;\n this.stencilMask.dirty = true;\n this.stencilFunc.dirty = true;\n this.stencilOp.dirty = true;\n this.stencilTest.dirty = true;\n this.depthRange.dirty = true;\n this.depthTest.dirty = true;\n this.depthFunc.dirty = true;\n this.blend.dirty = true;\n this.blendFunc.dirty = true;\n this.blendColor.dirty = true;\n this.blendEquation.dirty = true;\n this.cullFace.dirty = true;\n this.cullFaceSide.dirty = true;\n this.frontFace.dirty = true;\n this.program.dirty = true;\n this.activeTexture.dirty = true;\n this.viewport.dirty = true;\n this.bindFramebuffer.dirty = true;\n this.bindRenderbuffer.dirty = true;\n this.bindTexture.dirty = true;\n this.bindVertexBuffer.dirty = true;\n this.bindElementBuffer.dirty = true;\n if (this.extVertexArrayObject) {\n this.bindVertexArrayOES.dirty = true;\n }\n this.pixelStoreUnpack.dirty = true;\n this.pixelStoreUnpackPremultiplyAlpha.dirty = true;\n this.pixelStoreUnpackFlipY.dirty = true;\n };\n Context.prototype.createIndexBuffer = function createIndexBuffer(array, dynamicDraw) {\n return new IndexBuffer(this, array, dynamicDraw);\n };\n Context.prototype.createVertexBuffer = function createVertexBuffer(array, attributes, dynamicDraw) {\n return new VertexBuffer(this, array, attributes, dynamicDraw);\n };\n Context.prototype.createRenderbuffer = function createRenderbuffer(storageFormat, width, height) {\n var gl2 = this.gl;\n var rbo = gl2.createRenderbuffer();\n this.bindRenderbuffer.set(rbo);\n gl2.renderbufferStorage(gl2.RENDERBUFFER, storageFormat, width, height);\n this.bindRenderbuffer.set(null);\n return rbo;\n };\n Context.prototype.createFramebuffer = function createFramebuffer(width, height, hasDepth) {\n return new Framebuffer(this, width, height, hasDepth);\n };\n Context.prototype.clear = function clear(ref) {\n var color2 = ref.color;\n var depth = ref.depth;\n var gl2 = this.gl;\n var mask = 0;\n if (color2) {\n mask |= gl2.COLOR_BUFFER_BIT;\n this.clearColor.set(color2);\n this.colorMask.set([\n true,\n true,\n true,\n true\n ]);\n }\n if (typeof depth !== \"undefined\") {\n mask |= gl2.DEPTH_BUFFER_BIT;\n this.depthRange.set([\n 0,\n 1\n ]);\n this.clearDepth.set(depth);\n this.depthMask.set(true);\n }\n gl2.clear(mask);\n };\n Context.prototype.setCullFace = function setCullFace(cullFaceMode) {\n if (cullFaceMode.enable === false) {\n this.cullFace.set(false);\n } else {\n this.cullFace.set(true);\n this.cullFaceSide.set(cullFaceMode.mode);\n this.frontFace.set(cullFaceMode.frontFace);\n }\n };\n Context.prototype.setDepthMode = function setDepthMode(depthMode) {\n if (depthMode.func === this.gl.ALWAYS && !depthMode.mask) {\n this.depthTest.set(false);\n } else {\n this.depthTest.set(true);\n this.depthFunc.set(depthMode.func);\n this.depthMask.set(depthMode.mask);\n this.depthRange.set(depthMode.range);\n }\n };\n Context.prototype.setStencilMode = function setStencilMode(stencilMode) {\n if (stencilMode.test.func === this.gl.ALWAYS && !stencilMode.mask) {\n this.stencilTest.set(false);\n } else {\n this.stencilTest.set(true);\n this.stencilMask.set(stencilMode.mask);\n this.stencilOp.set([\n stencilMode.fail,\n stencilMode.depthFail,\n stencilMode.pass\n ]);\n this.stencilFunc.set({\n func: stencilMode.test.func,\n ref: stencilMode.ref,\n mask: stencilMode.test.mask\n });\n }\n };\n Context.prototype.setColorMode = function setColorMode(colorMode) {\n if (performance2.deepEqual(colorMode.blendFunction, ColorMode.Replace)) {\n this.blend.set(false);\n } else {\n this.blend.set(true);\n this.blendFunc.set(colorMode.blendFunction);\n this.blendColor.set(colorMode.blendColor);\n }\n this.colorMask.set(colorMode.mask);\n };\n Context.prototype.unbindVAO = function unbindVAO() {\n if (this.extVertexArrayObject) {\n this.bindVertexArrayOES.set(null);\n }\n };\n var SourceCache = function(Evented) {\n function SourceCache2(id, options, dispatcher) {\n var this$1 = this;\n Evented.call(this);\n this.id = id;\n this.dispatcher = dispatcher;\n this.on(\"data\", function(e) {\n if (e.dataType === \"source\" && e.sourceDataType === \"metadata\") {\n this$1._sourceLoaded = true;\n }\n if (this$1._sourceLoaded && !this$1._paused && e.dataType === \"source\" && e.sourceDataType === \"content\") {\n this$1.reload();\n if (this$1.transform) {\n this$1.update(this$1.transform);\n }\n }\n });\n this.on(\"error\", function() {\n this$1._sourceErrored = true;\n });\n this._source = create(id, options, dispatcher, this);\n this._tiles = {};\n this._cache = new TileCache(0, this._unloadTile.bind(this));\n this._timers = {};\n this._cacheTimers = {};\n this._maxTileCacheSize = null;\n this._loadedParentTiles = {};\n this._coveredTiles = {};\n this._state = new performance2.SourceFeatureState();\n }\n if (Evented)\n SourceCache2.__proto__ = Evented;\n SourceCache2.prototype = Object.create(Evented && Evented.prototype);\n SourceCache2.prototype.constructor = SourceCache2;\n SourceCache2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this._maxTileCacheSize = map ? map._maxTileCacheSize : null;\n if (this._source && this._source.onAdd) {\n this._source.onAdd(map);\n }\n };\n SourceCache2.prototype.onRemove = function onRemove(map) {\n if (this._source && this._source.onRemove) {\n this._source.onRemove(map);\n }\n };\n SourceCache2.prototype.loaded = function loaded() {\n if (this._sourceErrored) {\n return true;\n }\n if (!this._sourceLoaded) {\n return false;\n }\n if (!this._source.loaded()) {\n return false;\n }\n for (var t in this._tiles) {\n var tile = this._tiles[t];\n if (tile.state !== \"loaded\" && tile.state !== \"errored\") {\n return false;\n }\n }\n return true;\n };\n SourceCache2.prototype.getSource = function getSource() {\n return this._source;\n };\n SourceCache2.prototype.pause = function pause() {\n this._paused = true;\n };\n SourceCache2.prototype.resume = function resume() {\n if (!this._paused) {\n return;\n }\n var shouldReload = this._shouldReloadOnResume;\n this._paused = false;\n this._shouldReloadOnResume = false;\n if (shouldReload) {\n this.reload();\n }\n if (this.transform) {\n this.update(this.transform);\n }\n };\n SourceCache2.prototype._loadTile = function _loadTile(tile, callback) {\n return this._source.loadTile(tile, callback);\n };\n SourceCache2.prototype._unloadTile = function _unloadTile(tile) {\n if (this._source.unloadTile) {\n return this._source.unloadTile(tile, function() {\n });\n }\n };\n SourceCache2.prototype._abortTile = function _abortTile(tile) {\n if (this._source.abortTile) {\n return this._source.abortTile(tile, function() {\n });\n }\n };\n SourceCache2.prototype.serialize = function serialize() {\n return this._source.serialize();\n };\n SourceCache2.prototype.prepare = function prepare(context) {\n if (this._source.prepare) {\n this._source.prepare();\n }\n this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null);\n for (var i in this._tiles) {\n var tile = this._tiles[i];\n tile.upload(context);\n tile.prepare(this.map.style.imageManager);\n }\n };\n SourceCache2.prototype.getIds = function getIds() {\n return performance2.values(this._tiles).map(function(tile) {\n return tile.tileID;\n }).sort(compareTileId).map(function(id) {\n return id.key;\n });\n };\n SourceCache2.prototype.getRenderableIds = function getRenderableIds(symbolLayer) {\n var this$1 = this;\n var renderables = [];\n for (var id in this._tiles) {\n if (this._isIdRenderable(id, symbolLayer)) {\n renderables.push(this._tiles[id]);\n }\n }\n if (symbolLayer) {\n return renderables.sort(function(a_, b_) {\n var a = a_.tileID;\n var b = b_.tileID;\n var rotatedA = new performance2.Point(a.canonical.x, a.canonical.y)._rotate(this$1.transform.angle);\n var rotatedB = new performance2.Point(b.canonical.x, b.canonical.y)._rotate(this$1.transform.angle);\n return a.overscaledZ - b.overscaledZ || rotatedB.y - rotatedA.y || rotatedB.x - rotatedA.x;\n }).map(function(tile) {\n return tile.tileID.key;\n });\n }\n return renderables.map(function(tile) {\n return tile.tileID;\n }).sort(compareTileId).map(function(id2) {\n return id2.key;\n });\n };\n SourceCache2.prototype.hasRenderableParent = function hasRenderableParent(tileID) {\n var parentTile = this.findLoadedParent(tileID, 0);\n if (parentTile) {\n return this._isIdRenderable(parentTile.tileID.key);\n }\n return false;\n };\n SourceCache2.prototype._isIdRenderable = function _isIdRenderable(id, symbolLayer) {\n return this._tiles[id] && this._tiles[id].hasData() && !this._coveredTiles[id] && (symbolLayer || !this._tiles[id].holdingForFade());\n };\n SourceCache2.prototype.reload = function reload() {\n if (this._paused) {\n this._shouldReloadOnResume = true;\n return;\n }\n this._cache.reset();\n for (var i in this._tiles) {\n if (this._tiles[i].state !== \"errored\") {\n this._reloadTile(i, \"reloading\");\n }\n }\n };\n SourceCache2.prototype._reloadTile = function _reloadTile(id, state) {\n var tile = this._tiles[id];\n if (!tile) {\n return;\n }\n if (tile.state !== \"loading\") {\n tile.state = state;\n }\n this._loadTile(tile, this._tileLoaded.bind(this, tile, id, state));\n };\n SourceCache2.prototype._tileLoaded = function _tileLoaded(tile, id, previousState, err) {\n if (err) {\n tile.state = \"errored\";\n if (err.status !== 404) {\n this._source.fire(new performance2.ErrorEvent(err, { tile }));\n } else {\n this.update(this.transform);\n }\n return;\n }\n tile.timeAdded = performance2.browser.now();\n if (previousState === \"expired\") {\n tile.refreshedUponExpiration = true;\n }\n this._setTileReloadTimer(id, tile);\n if (this.getSource().type === \"raster-dem\" && tile.dem) {\n this._backfillDEM(tile);\n }\n this._state.initializeTileState(tile, this.map ? this.map.painter : null);\n this._source.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n tile,\n coord: tile.tileID\n }));\n };\n SourceCache2.prototype._backfillDEM = function _backfillDEM(tile) {\n var renderables = this.getRenderableIds();\n for (var i = 0; i < renderables.length; i++) {\n var borderId = renderables[i];\n if (tile.neighboringTiles && tile.neighboringTiles[borderId]) {\n var borderTile = this.getTileByID(borderId);\n fillBorder(tile, borderTile);\n fillBorder(borderTile, tile);\n }\n }\n function fillBorder(tile2, borderTile2) {\n tile2.needsHillshadePrepare = true;\n var dx = borderTile2.tileID.canonical.x - tile2.tileID.canonical.x;\n var dy = borderTile2.tileID.canonical.y - tile2.tileID.canonical.y;\n var dim = Math.pow(2, tile2.tileID.canonical.z);\n var borderId2 = borderTile2.tileID.key;\n if (dx === 0 && dy === 0) {\n return;\n }\n if (Math.abs(dy) > 1) {\n return;\n }\n if (Math.abs(dx) > 1) {\n if (Math.abs(dx + dim) === 1) {\n dx += dim;\n } else if (Math.abs(dx - dim) === 1) {\n dx -= dim;\n }\n }\n if (!borderTile2.dem || !tile2.dem) {\n return;\n }\n tile2.dem.backfillBorder(borderTile2.dem, dx, dy);\n if (tile2.neighboringTiles && tile2.neighboringTiles[borderId2]) {\n tile2.neighboringTiles[borderId2].backfilled = true;\n }\n }\n };\n SourceCache2.prototype.getTile = function getTile(tileID) {\n return this.getTileByID(tileID.key);\n };\n SourceCache2.prototype.getTileByID = function getTileByID(id) {\n return this._tiles[id];\n };\n SourceCache2.prototype._retainLoadedChildren = function _retainLoadedChildren(idealTiles, zoom, maxCoveringZoom, retain) {\n for (var id in this._tiles) {\n var tile = this._tiles[id];\n if (retain[id] || !tile.hasData() || tile.tileID.overscaledZ <= zoom || tile.tileID.overscaledZ > maxCoveringZoom) {\n continue;\n }\n var topmostLoadedID = tile.tileID;\n while (tile && tile.tileID.overscaledZ > zoom + 1) {\n var parentID = tile.tileID.scaledTo(tile.tileID.overscaledZ - 1);\n tile = this._tiles[parentID.key];\n if (tile && tile.hasData()) {\n topmostLoadedID = parentID;\n }\n }\n var tileID = topmostLoadedID;\n while (tileID.overscaledZ > zoom) {\n tileID = tileID.scaledTo(tileID.overscaledZ - 1);\n if (idealTiles[tileID.key]) {\n retain[topmostLoadedID.key] = topmostLoadedID;\n break;\n }\n }\n }\n };\n SourceCache2.prototype.findLoadedParent = function findLoadedParent(tileID, minCoveringZoom) {\n if (tileID.key in this._loadedParentTiles) {\n var parent = this._loadedParentTiles[tileID.key];\n if (parent && parent.tileID.overscaledZ >= minCoveringZoom) {\n return parent;\n } else {\n return null;\n }\n }\n for (var z = tileID.overscaledZ - 1; z >= minCoveringZoom; z--) {\n var parentTileID = tileID.scaledTo(z);\n var tile = this._getLoadedTile(parentTileID);\n if (tile) {\n return tile;\n }\n }\n };\n SourceCache2.prototype._getLoadedTile = function _getLoadedTile(tileID) {\n var tile = this._tiles[tileID.key];\n if (tile && tile.hasData()) {\n return tile;\n }\n var cachedTile = this._cache.getByKey(tileID.wrapped().key);\n return cachedTile;\n };\n SourceCache2.prototype.updateCacheSize = function updateCacheSize(transform) {\n var widthInTiles = Math.ceil(transform.width / this._source.tileSize) + 1;\n var heightInTiles = Math.ceil(transform.height / this._source.tileSize) + 1;\n var approxTilesInView = widthInTiles * heightInTiles;\n var commonZoomRange = 5;\n var viewDependentMaxSize = Math.floor(approxTilesInView * commonZoomRange);\n var maxSize = typeof this._maxTileCacheSize === \"number\" ? Math.min(this._maxTileCacheSize, viewDependentMaxSize) : viewDependentMaxSize;\n this._cache.setMaxSize(maxSize);\n };\n SourceCache2.prototype.handleWrapJump = function handleWrapJump(lng) {\n var prevLng = this._prevLng === void 0 ? lng : this._prevLng;\n var lngDifference = lng - prevLng;\n var worldDifference = lngDifference / 360;\n var wrapDelta = Math.round(worldDifference);\n this._prevLng = lng;\n if (wrapDelta) {\n var tiles = {};\n for (var key in this._tiles) {\n var tile = this._tiles[key];\n tile.tileID = tile.tileID.unwrapTo(tile.tileID.wrap + wrapDelta);\n tiles[tile.tileID.key] = tile;\n }\n this._tiles = tiles;\n for (var id in this._timers) {\n clearTimeout(this._timers[id]);\n delete this._timers[id];\n }\n for (var id$1 in this._tiles) {\n var tile$1 = this._tiles[id$1];\n this._setTileReloadTimer(id$1, tile$1);\n }\n }\n };\n SourceCache2.prototype.update = function update(transform) {\n var this$1 = this;\n this.transform = transform;\n if (!this._sourceLoaded || this._paused) {\n return;\n }\n this.updateCacheSize(transform);\n this.handleWrapJump(this.transform.center.lng);\n this._coveredTiles = {};\n var idealTileIDs;\n if (!this.used) {\n idealTileIDs = [];\n } else if (this._source.tileID) {\n idealTileIDs = transform.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(unwrapped) {\n return new performance2.OverscaledTileID(unwrapped.canonical.z, unwrapped.wrap, unwrapped.canonical.z, unwrapped.canonical.x, unwrapped.canonical.y);\n });\n } else {\n idealTileIDs = transform.coveringTiles({\n tileSize: this._source.tileSize,\n minzoom: this._source.minzoom,\n maxzoom: this._source.maxzoom,\n roundZoom: this._source.roundZoom,\n reparseOverscaled: this._source.reparseOverscaled\n });\n if (this._source.hasTile) {\n idealTileIDs = idealTileIDs.filter(function(coord) {\n return this$1._source.hasTile(coord);\n });\n }\n }\n var zoom = transform.coveringZoomLevel(this._source);\n var minCoveringZoom = Math.max(zoom - SourceCache2.maxOverzooming, this._source.minzoom);\n var maxCoveringZoom = Math.max(zoom + SourceCache2.maxUnderzooming, this._source.minzoom);\n var retain = this._updateRetainedTiles(idealTileIDs, zoom);\n if (isRasterType(this._source.type)) {\n var parentsForFading = {};\n var fadingTiles = {};\n var ids = Object.keys(retain);\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n var tileID = retain[id];\n var tile = this._tiles[id];\n if (!tile || tile.fadeEndTime && tile.fadeEndTime <= performance2.browser.now()) {\n continue;\n }\n var parentTile = this.findLoadedParent(tileID, minCoveringZoom);\n if (parentTile) {\n this._addTile(parentTile.tileID);\n parentsForFading[parentTile.tileID.key] = parentTile.tileID;\n }\n fadingTiles[id] = tileID;\n }\n this._retainLoadedChildren(fadingTiles, zoom, maxCoveringZoom, retain);\n for (var id$1 in parentsForFading) {\n if (!retain[id$1]) {\n this._coveredTiles[id$1] = true;\n retain[id$1] = parentsForFading[id$1];\n }\n }\n }\n for (var retainedId in retain) {\n this._tiles[retainedId].clearFadeHold();\n }\n var remove = performance2.keysDifference(this._tiles, retain);\n for (var i$1 = 0, list$1 = remove; i$1 < list$1.length; i$1 += 1) {\n var tileID$1 = list$1[i$1];\n var tile$1 = this._tiles[tileID$1];\n if (tile$1.hasSymbolBuckets && !tile$1.holdingForFade()) {\n tile$1.setHoldDuration(this.map._fadeDuration);\n } else if (!tile$1.hasSymbolBuckets || tile$1.symbolFadeFinished()) {\n this._removeTile(tileID$1);\n }\n }\n this._updateLoadedParentTileCache();\n };\n SourceCache2.prototype.releaseSymbolFadeTiles = function releaseSymbolFadeTiles() {\n for (var id in this._tiles) {\n if (this._tiles[id].holdingForFade()) {\n this._removeTile(id);\n }\n }\n };\n SourceCache2.prototype._updateRetainedTiles = function _updateRetainedTiles(idealTileIDs, zoom) {\n var retain = {};\n var checked = {};\n var minCoveringZoom = Math.max(zoom - SourceCache2.maxOverzooming, this._source.minzoom);\n var maxCoveringZoom = Math.max(zoom + SourceCache2.maxUnderzooming, this._source.minzoom);\n var missingTiles = {};\n for (var i = 0, list = idealTileIDs; i < list.length; i += 1) {\n var tileID = list[i];\n var tile = this._addTile(tileID);\n retain[tileID.key] = tileID;\n if (tile.hasData()) {\n continue;\n }\n if (zoom < this._source.maxzoom) {\n missingTiles[tileID.key] = tileID;\n }\n }\n this._retainLoadedChildren(missingTiles, zoom, maxCoveringZoom, retain);\n for (var i$1 = 0, list$1 = idealTileIDs; i$1 < list$1.length; i$1 += 1) {\n var tileID$1 = list$1[i$1];\n var tile$1 = this._tiles[tileID$1.key];\n if (tile$1.hasData()) {\n continue;\n }\n if (zoom + 1 > this._source.maxzoom) {\n var childCoord = tileID$1.children(this._source.maxzoom)[0];\n var childTile = this.getTile(childCoord);\n if (!!childTile && childTile.hasData()) {\n retain[childCoord.key] = childCoord;\n continue;\n }\n } else {\n var children = tileID$1.children(this._source.maxzoom);\n if (retain[children[0].key] && retain[children[1].key] && retain[children[2].key] && retain[children[3].key]) {\n continue;\n }\n }\n var parentWasRequested = tile$1.wasRequested();\n for (var overscaledZ = tileID$1.overscaledZ - 1; overscaledZ >= minCoveringZoom; --overscaledZ) {\n var parentId = tileID$1.scaledTo(overscaledZ);\n if (checked[parentId.key]) {\n break;\n }\n checked[parentId.key] = true;\n tile$1 = this.getTile(parentId);\n if (!tile$1 && parentWasRequested) {\n tile$1 = this._addTile(parentId);\n }\n if (tile$1) {\n retain[parentId.key] = parentId;\n parentWasRequested = tile$1.wasRequested();\n if (tile$1.hasData()) {\n break;\n }\n }\n }\n }\n return retain;\n };\n SourceCache2.prototype._updateLoadedParentTileCache = function _updateLoadedParentTileCache() {\n this._loadedParentTiles = {};\n for (var tileKey in this._tiles) {\n var path = [];\n var parentTile = void 0;\n var currentId = this._tiles[tileKey].tileID;\n while (currentId.overscaledZ > 0) {\n if (currentId.key in this._loadedParentTiles) {\n parentTile = this._loadedParentTiles[currentId.key];\n break;\n }\n path.push(currentId.key);\n var parentId = currentId.scaledTo(currentId.overscaledZ - 1);\n parentTile = this._getLoadedTile(parentId);\n if (parentTile) {\n break;\n }\n currentId = parentId;\n }\n for (var i = 0, list = path; i < list.length; i += 1) {\n var key = list[i];\n this._loadedParentTiles[key] = parentTile;\n }\n }\n };\n SourceCache2.prototype._addTile = function _addTile(tileID) {\n var tile = this._tiles[tileID.key];\n if (tile) {\n return tile;\n }\n tile = this._cache.getAndRemove(tileID);\n if (tile) {\n this._setTileReloadTimer(tileID.key, tile);\n tile.tileID = tileID;\n this._state.initializeTileState(tile, this.map ? this.map.painter : null);\n if (this._cacheTimers[tileID.key]) {\n clearTimeout(this._cacheTimers[tileID.key]);\n delete this._cacheTimers[tileID.key];\n this._setTileReloadTimer(tileID.key, tile);\n }\n }\n var cached = Boolean(tile);\n if (!cached) {\n tile = new performance2.Tile(tileID, this._source.tileSize * tileID.overscaleFactor());\n this._loadTile(tile, this._tileLoaded.bind(this, tile, tileID.key, tile.state));\n }\n if (!tile) {\n return null;\n }\n tile.uses++;\n this._tiles[tileID.key] = tile;\n if (!cached) {\n this._source.fire(new performance2.Event(\"dataloading\", {\n tile,\n coord: tile.tileID,\n dataType: \"source\"\n }));\n }\n return tile;\n };\n SourceCache2.prototype._setTileReloadTimer = function _setTileReloadTimer(id, tile) {\n var this$1 = this;\n if (id in this._timers) {\n clearTimeout(this._timers[id]);\n delete this._timers[id];\n }\n var expiryTimeout = tile.getExpiryTimeout();\n if (expiryTimeout) {\n this._timers[id] = setTimeout(function() {\n this$1._reloadTile(id, \"expired\");\n delete this$1._timers[id];\n }, expiryTimeout);\n }\n };\n SourceCache2.prototype._removeTile = function _removeTile(id) {\n var tile = this._tiles[id];\n if (!tile) {\n return;\n }\n tile.uses--;\n delete this._tiles[id];\n if (this._timers[id]) {\n clearTimeout(this._timers[id]);\n delete this._timers[id];\n }\n if (tile.uses > 0) {\n return;\n }\n if (tile.hasData() && tile.state !== \"reloading\") {\n this._cache.add(tile.tileID, tile, tile.getExpiryTimeout());\n } else {\n tile.aborted = true;\n this._abortTile(tile);\n this._unloadTile(tile);\n }\n };\n SourceCache2.prototype.clearTiles = function clearTiles() {\n this._shouldReloadOnResume = false;\n this._paused = false;\n for (var id in this._tiles) {\n this._removeTile(id);\n }\n this._cache.reset();\n };\n SourceCache2.prototype.tilesIn = function tilesIn(pointQueryGeometry, maxPitchScaleFactor, has3DLayer) {\n var this$1 = this;\n var tileResults = [];\n var transform = this.transform;\n if (!transform) {\n return tileResults;\n }\n var cameraPointQueryGeometry = has3DLayer ? transform.getCameraQueryGeometry(pointQueryGeometry) : pointQueryGeometry;\n var queryGeometry = pointQueryGeometry.map(function(p2) {\n return transform.pointCoordinate(p2);\n });\n var cameraQueryGeometry = cameraPointQueryGeometry.map(function(p2) {\n return transform.pointCoordinate(p2);\n });\n var ids = this.getIds();\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n for (var i$1 = 0, list = cameraQueryGeometry; i$1 < list.length; i$1 += 1) {\n var p = list[i$1];\n minX = Math.min(minX, p.x);\n minY = Math.min(minY, p.y);\n maxX = Math.max(maxX, p.x);\n maxY = Math.max(maxY, p.y);\n }\n var loop = function(i2) {\n var tile = this$1._tiles[ids[i2]];\n if (tile.holdingForFade()) {\n return;\n }\n var tileID = tile.tileID;\n var scale = Math.pow(2, transform.zoom - tile.tileID.overscaledZ);\n var queryPadding = maxPitchScaleFactor * tile.queryPadding * performance2.EXTENT / tile.tileSize / scale;\n var tileSpaceBounds = [\n tileID.getTilePoint(new performance2.MercatorCoordinate(minX, minY)),\n tileID.getTilePoint(new performance2.MercatorCoordinate(maxX, maxY))\n ];\n if (tileSpaceBounds[0].x - queryPadding < performance2.EXTENT && tileSpaceBounds[0].y - queryPadding < performance2.EXTENT && tileSpaceBounds[1].x + queryPadding >= 0 && tileSpaceBounds[1].y + queryPadding >= 0) {\n var tileSpaceQueryGeometry = queryGeometry.map(function(c) {\n return tileID.getTilePoint(c);\n });\n var tileSpaceCameraQueryGeometry = cameraQueryGeometry.map(function(c) {\n return tileID.getTilePoint(c);\n });\n tileResults.push({\n tile,\n tileID,\n queryGeometry: tileSpaceQueryGeometry,\n cameraQueryGeometry: tileSpaceCameraQueryGeometry,\n scale\n });\n }\n };\n for (var i = 0; i < ids.length; i++)\n loop(i);\n return tileResults;\n };\n SourceCache2.prototype.getVisibleCoordinates = function getVisibleCoordinates(symbolLayer) {\n var this$1 = this;\n var coords = this.getRenderableIds(symbolLayer).map(function(id) {\n return this$1._tiles[id].tileID;\n });\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n coord.posMatrix = this.transform.calculatePosMatrix(coord.toUnwrapped());\n }\n return coords;\n };\n SourceCache2.prototype.hasTransition = function hasTransition() {\n if (this._source.hasTransition()) {\n return true;\n }\n if (isRasterType(this._source.type)) {\n for (var id in this._tiles) {\n var tile = this._tiles[id];\n if (tile.fadeEndTime !== void 0 && tile.fadeEndTime >= performance2.browser.now()) {\n return true;\n }\n }\n }\n return false;\n };\n SourceCache2.prototype.setFeatureState = function setFeatureState(sourceLayer, featureId, state) {\n sourceLayer = sourceLayer || \"_geojsonTileLayer\";\n this._state.updateState(sourceLayer, featureId, state);\n };\n SourceCache2.prototype.removeFeatureState = function removeFeatureState(sourceLayer, featureId, key) {\n sourceLayer = sourceLayer || \"_geojsonTileLayer\";\n this._state.removeFeatureState(sourceLayer, featureId, key);\n };\n SourceCache2.prototype.getFeatureState = function getFeatureState(sourceLayer, featureId) {\n sourceLayer = sourceLayer || \"_geojsonTileLayer\";\n return this._state.getState(sourceLayer, featureId);\n };\n SourceCache2.prototype.setDependencies = function setDependencies(tileKey, namespace, dependencies) {\n var tile = this._tiles[tileKey];\n if (tile) {\n tile.setDependencies(namespace, dependencies);\n }\n };\n SourceCache2.prototype.reloadTilesForDependencies = function reloadTilesForDependencies(namespaces, keys) {\n for (var id in this._tiles) {\n var tile = this._tiles[id];\n if (tile.hasDependency(namespaces, keys)) {\n this._reloadTile(id, \"reloading\");\n }\n }\n this._cache.filter(function(tile2) {\n return !tile2.hasDependency(namespaces, keys);\n });\n };\n return SourceCache2;\n }(performance2.Evented);\n SourceCache.maxOverzooming = 10;\n SourceCache.maxUnderzooming = 3;\n function compareTileId(a, b) {\n var aWrap = Math.abs(a.wrap * 2) - +(a.wrap < 0);\n var bWrap = Math.abs(b.wrap * 2) - +(b.wrap < 0);\n return a.overscaledZ - b.overscaledZ || bWrap - aWrap || b.canonical.y - a.canonical.y || b.canonical.x - a.canonical.x;\n }\n function isRasterType(type) {\n return type === \"raster\" || type === \"image\" || type === \"video\";\n }\n function WebWorker() {\n return new performance2.window.Worker(exported.workerUrl);\n }\n var PRELOAD_POOL_ID = \"mapboxgl_preloaded_worker_pool\";\n var WorkerPool = function WorkerPool2() {\n this.active = {};\n };\n WorkerPool.prototype.acquire = function acquire(mapId) {\n if (!this.workers) {\n this.workers = [];\n while (this.workers.length < WorkerPool.workerCount) {\n this.workers.push(new WebWorker());\n }\n }\n this.active[mapId] = true;\n return this.workers.slice();\n };\n WorkerPool.prototype.release = function release(mapId) {\n delete this.active[mapId];\n if (this.numActive() === 0) {\n this.workers.forEach(function(w) {\n w.terminate();\n });\n this.workers = null;\n }\n };\n WorkerPool.prototype.isPreloaded = function isPreloaded() {\n return !!this.active[PRELOAD_POOL_ID];\n };\n WorkerPool.prototype.numActive = function numActive() {\n return Object.keys(this.active).length;\n };\n var availableLogicalProcessors = Math.floor(performance2.browser.hardwareConcurrency / 2);\n WorkerPool.workerCount = Math.max(Math.min(availableLogicalProcessors, 6), 1);\n var globalWorkerPool;\n function getGlobalWorkerPool() {\n if (!globalWorkerPool) {\n globalWorkerPool = new WorkerPool();\n }\n return globalWorkerPool;\n }\n function prewarm() {\n var workerPool = getGlobalWorkerPool();\n workerPool.acquire(PRELOAD_POOL_ID);\n }\n function clearPrewarmedResources() {\n var pool = globalWorkerPool;\n if (pool) {\n if (pool.isPreloaded() && pool.numActive() === 1) {\n pool.release(PRELOAD_POOL_ID);\n globalWorkerPool = null;\n } else {\n console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\");\n }\n }\n }\n function deref(layer, parent) {\n var result = {};\n for (var k in layer) {\n if (k !== \"ref\") {\n result[k] = layer[k];\n }\n }\n performance2.refProperties.forEach(function(k2) {\n if (k2 in parent) {\n result[k2] = parent[k2];\n }\n });\n return result;\n }\n function derefLayers(layers) {\n layers = layers.slice();\n var map = /* @__PURE__ */ Object.create(null);\n for (var i = 0; i < layers.length; i++) {\n map[layers[i].id] = layers[i];\n }\n for (var i$1 = 0; i$1 < layers.length; i$1++) {\n if (\"ref\" in layers[i$1]) {\n layers[i$1] = deref(layers[i$1], map[layers[i$1].ref]);\n }\n }\n return layers;\n }\n function emptyStyle() {\n var style = {};\n var version = performance2.styleSpec[\"$version\"];\n for (var styleKey in performance2.styleSpec[\"$root\"]) {\n var spec = performance2.styleSpec[\"$root\"][styleKey];\n if (spec.required) {\n var value = null;\n if (styleKey === \"version\") {\n value = version;\n } else {\n if (spec.type === \"array\") {\n value = [];\n } else {\n value = {};\n }\n }\n if (value != null) {\n style[styleKey] = value;\n }\n }\n }\n return style;\n }\n var operations = {\n setStyle: \"setStyle\",\n addLayer: \"addLayer\",\n removeLayer: \"removeLayer\",\n setPaintProperty: \"setPaintProperty\",\n setLayoutProperty: \"setLayoutProperty\",\n setFilter: \"setFilter\",\n addSource: \"addSource\",\n removeSource: \"removeSource\",\n setGeoJSONSourceData: \"setGeoJSONSourceData\",\n setLayerZoomRange: \"setLayerZoomRange\",\n setLayerProperty: \"setLayerProperty\",\n setCenter: \"setCenter\",\n setZoom: \"setZoom\",\n setBearing: \"setBearing\",\n setPitch: \"setPitch\",\n setSprite: \"setSprite\",\n setGlyphs: \"setGlyphs\",\n setTransition: \"setTransition\",\n setLight: \"setLight\"\n };\n function addSource(sourceId, after, commands) {\n commands.push({\n command: operations.addSource,\n args: [\n sourceId,\n after[sourceId]\n ]\n });\n }\n function removeSource(sourceId, commands, sourcesRemoved) {\n commands.push({\n command: operations.removeSource,\n args: [sourceId]\n });\n sourcesRemoved[sourceId] = true;\n }\n function updateSource(sourceId, after, commands, sourcesRemoved) {\n removeSource(sourceId, commands, sourcesRemoved);\n addSource(sourceId, after, commands);\n }\n function canUpdateGeoJSON(before, after, sourceId) {\n var prop;\n for (prop in before[sourceId]) {\n if (!before[sourceId].hasOwnProperty(prop)) {\n continue;\n }\n if (prop !== \"data\" && !performance2.deepEqual(before[sourceId][prop], after[sourceId][prop])) {\n return false;\n }\n }\n for (prop in after[sourceId]) {\n if (!after[sourceId].hasOwnProperty(prop)) {\n continue;\n }\n if (prop !== \"data\" && !performance2.deepEqual(before[sourceId][prop], after[sourceId][prop])) {\n return false;\n }\n }\n return true;\n }\n function diffSources(before, after, commands, sourcesRemoved) {\n before = before || {};\n after = after || {};\n var sourceId;\n for (sourceId in before) {\n if (!before.hasOwnProperty(sourceId)) {\n continue;\n }\n if (!after.hasOwnProperty(sourceId)) {\n removeSource(sourceId, commands, sourcesRemoved);\n }\n }\n for (sourceId in after) {\n if (!after.hasOwnProperty(sourceId)) {\n continue;\n }\n if (!before.hasOwnProperty(sourceId)) {\n addSource(sourceId, after, commands);\n } else if (!performance2.deepEqual(before[sourceId], after[sourceId])) {\n if (before[sourceId].type === \"geojson\" && after[sourceId].type === \"geojson\" && canUpdateGeoJSON(before, after, sourceId)) {\n commands.push({\n command: operations.setGeoJSONSourceData,\n args: [\n sourceId,\n after[sourceId].data\n ]\n });\n } else {\n updateSource(sourceId, after, commands, sourcesRemoved);\n }\n }\n }\n }\n function diffLayerPropertyChanges(before, after, commands, layerId, klass, command) {\n before = before || {};\n after = after || {};\n var prop;\n for (prop in before) {\n if (!before.hasOwnProperty(prop)) {\n continue;\n }\n if (!performance2.deepEqual(before[prop], after[prop])) {\n commands.push({\n command,\n args: [\n layerId,\n prop,\n after[prop],\n klass\n ]\n });\n }\n }\n for (prop in after) {\n if (!after.hasOwnProperty(prop) || before.hasOwnProperty(prop)) {\n continue;\n }\n if (!performance2.deepEqual(before[prop], after[prop])) {\n commands.push({\n command,\n args: [\n layerId,\n prop,\n after[prop],\n klass\n ]\n });\n }\n }\n }\n function pluckId(layer) {\n return layer.id;\n }\n function indexById(group, layer) {\n group[layer.id] = layer;\n return group;\n }\n function diffLayers(before, after, commands) {\n before = before || [];\n after = after || [];\n var beforeOrder = before.map(pluckId);\n var afterOrder = after.map(pluckId);\n var beforeIndex = before.reduce(indexById, {});\n var afterIndex = after.reduce(indexById, {});\n var tracker = beforeOrder.slice();\n var clean = /* @__PURE__ */ Object.create(null);\n var i, d, layerId, beforeLayer, afterLayer, insertBeforeLayerId, prop;\n for (i = 0, d = 0; i < beforeOrder.length; i++) {\n layerId = beforeOrder[i];\n if (!afterIndex.hasOwnProperty(layerId)) {\n commands.push({\n command: operations.removeLayer,\n args: [layerId]\n });\n tracker.splice(tracker.indexOf(layerId, d), 1);\n } else {\n d++;\n }\n }\n for (i = 0, d = 0; i < afterOrder.length; i++) {\n layerId = afterOrder[afterOrder.length - 1 - i];\n if (tracker[tracker.length - 1 - i] === layerId) {\n continue;\n }\n if (beforeIndex.hasOwnProperty(layerId)) {\n commands.push({\n command: operations.removeLayer,\n args: [layerId]\n });\n tracker.splice(tracker.lastIndexOf(layerId, tracker.length - d), 1);\n } else {\n d++;\n }\n insertBeforeLayerId = tracker[tracker.length - i];\n commands.push({\n command: operations.addLayer,\n args: [\n afterIndex[layerId],\n insertBeforeLayerId\n ]\n });\n tracker.splice(tracker.length - i, 0, layerId);\n clean[layerId] = true;\n }\n for (i = 0; i < afterOrder.length; i++) {\n layerId = afterOrder[i];\n beforeLayer = beforeIndex[layerId];\n afterLayer = afterIndex[layerId];\n if (clean[layerId] || performance2.deepEqual(beforeLayer, afterLayer)) {\n continue;\n }\n if (!performance2.deepEqual(beforeLayer.source, afterLayer.source) || !performance2.deepEqual(beforeLayer[\"source-layer\"], afterLayer[\"source-layer\"]) || !performance2.deepEqual(beforeLayer.type, afterLayer.type)) {\n commands.push({\n command: operations.removeLayer,\n args: [layerId]\n });\n insertBeforeLayerId = tracker[tracker.lastIndexOf(layerId) + 1];\n commands.push({\n command: operations.addLayer,\n args: [\n afterLayer,\n insertBeforeLayerId\n ]\n });\n continue;\n }\n diffLayerPropertyChanges(beforeLayer.layout, afterLayer.layout, commands, layerId, null, operations.setLayoutProperty);\n diffLayerPropertyChanges(beforeLayer.paint, afterLayer.paint, commands, layerId, null, operations.setPaintProperty);\n if (!performance2.deepEqual(beforeLayer.filter, afterLayer.filter)) {\n commands.push({\n command: operations.setFilter,\n args: [\n layerId,\n afterLayer.filter\n ]\n });\n }\n if (!performance2.deepEqual(beforeLayer.minzoom, afterLayer.minzoom) || !performance2.deepEqual(beforeLayer.maxzoom, afterLayer.maxzoom)) {\n commands.push({\n command: operations.setLayerZoomRange,\n args: [\n layerId,\n afterLayer.minzoom,\n afterLayer.maxzoom\n ]\n });\n }\n for (prop in beforeLayer) {\n if (!beforeLayer.hasOwnProperty(prop)) {\n continue;\n }\n if (prop === \"layout\" || prop === \"paint\" || prop === \"filter\" || prop === \"metadata\" || prop === \"minzoom\" || prop === \"maxzoom\") {\n continue;\n }\n if (prop.indexOf(\"paint.\") === 0) {\n diffLayerPropertyChanges(beforeLayer[prop], afterLayer[prop], commands, layerId, prop.slice(6), operations.setPaintProperty);\n } else if (!performance2.deepEqual(beforeLayer[prop], afterLayer[prop])) {\n commands.push({\n command: operations.setLayerProperty,\n args: [\n layerId,\n prop,\n afterLayer[prop]\n ]\n });\n }\n }\n for (prop in afterLayer) {\n if (!afterLayer.hasOwnProperty(prop) || beforeLayer.hasOwnProperty(prop)) {\n continue;\n }\n if (prop === \"layout\" || prop === \"paint\" || prop === \"filter\" || prop === \"metadata\" || prop === \"minzoom\" || prop === \"maxzoom\") {\n continue;\n }\n if (prop.indexOf(\"paint.\") === 0) {\n diffLayerPropertyChanges(beforeLayer[prop], afterLayer[prop], commands, layerId, prop.slice(6), operations.setPaintProperty);\n } else if (!performance2.deepEqual(beforeLayer[prop], afterLayer[prop])) {\n commands.push({\n command: operations.setLayerProperty,\n args: [\n layerId,\n prop,\n afterLayer[prop]\n ]\n });\n }\n }\n }\n }\n function diffStyles(before, after) {\n if (!before) {\n return [{\n command: operations.setStyle,\n args: [after]\n }];\n }\n var commands = [];\n try {\n if (!performance2.deepEqual(before.version, after.version)) {\n return [{\n command: operations.setStyle,\n args: [after]\n }];\n }\n if (!performance2.deepEqual(before.center, after.center)) {\n commands.push({\n command: operations.setCenter,\n args: [after.center]\n });\n }\n if (!performance2.deepEqual(before.zoom, after.zoom)) {\n commands.push({\n command: operations.setZoom,\n args: [after.zoom]\n });\n }\n if (!performance2.deepEqual(before.bearing, after.bearing)) {\n commands.push({\n command: operations.setBearing,\n args: [after.bearing]\n });\n }\n if (!performance2.deepEqual(before.pitch, after.pitch)) {\n commands.push({\n command: operations.setPitch,\n args: [after.pitch]\n });\n }\n if (!performance2.deepEqual(before.sprite, after.sprite)) {\n commands.push({\n command: operations.setSprite,\n args: [after.sprite]\n });\n }\n if (!performance2.deepEqual(before.glyphs, after.glyphs)) {\n commands.push({\n command: operations.setGlyphs,\n args: [after.glyphs]\n });\n }\n if (!performance2.deepEqual(before.transition, after.transition)) {\n commands.push({\n command: operations.setTransition,\n args: [after.transition]\n });\n }\n if (!performance2.deepEqual(before.light, after.light)) {\n commands.push({\n command: operations.setLight,\n args: [after.light]\n });\n }\n var sourcesRemoved = {};\n var removeOrAddSourceCommands = [];\n diffSources(before.sources, after.sources, removeOrAddSourceCommands, sourcesRemoved);\n var beforeLayers = [];\n if (before.layers) {\n before.layers.forEach(function(layer) {\n if (sourcesRemoved[layer.source]) {\n commands.push({\n command: operations.removeLayer,\n args: [layer.id]\n });\n } else {\n beforeLayers.push(layer);\n }\n });\n }\n commands = commands.concat(removeOrAddSourceCommands);\n diffLayers(beforeLayers, after.layers, commands);\n } catch (e) {\n console.warn(\"Unable to compute style diff:\", e);\n commands = [{\n command: operations.setStyle,\n args: [after]\n }];\n }\n return commands;\n }\n var PathInterpolator = function PathInterpolator2(points_, padding_) {\n this.reset(points_, padding_);\n };\n PathInterpolator.prototype.reset = function reset(points_, padding_) {\n this.points = points_ || [];\n this._distances = [0];\n for (var i = 1; i < this.points.length; i++) {\n this._distances[i] = this._distances[i - 1] + this.points[i].dist(this.points[i - 1]);\n }\n this.length = this._distances[this._distances.length - 1];\n this.padding = Math.min(padding_ || 0, this.length * 0.5);\n this.paddedLength = this.length - this.padding * 2;\n };\n PathInterpolator.prototype.lerp = function lerp(t) {\n if (this.points.length === 1) {\n return this.points[0];\n }\n t = performance2.clamp(t, 0, 1);\n var currentIndex = 1;\n var distOfCurrentIdx = this._distances[currentIndex];\n var distToTarget = t * this.paddedLength + this.padding;\n while (distOfCurrentIdx < distToTarget && currentIndex < this._distances.length) {\n distOfCurrentIdx = this._distances[++currentIndex];\n }\n var idxOfPrevPoint = currentIndex - 1;\n var distOfPrevIdx = this._distances[idxOfPrevPoint];\n var segmentLength = distOfCurrentIdx - distOfPrevIdx;\n var segmentT = segmentLength > 0 ? (distToTarget - distOfPrevIdx) / segmentLength : 0;\n return this.points[idxOfPrevPoint].mult(1 - segmentT).add(this.points[currentIndex].mult(segmentT));\n };\n var GridIndex = function GridIndex2(width, height, cellSize) {\n var boxCells = this.boxCells = [];\n var circleCells = this.circleCells = [];\n this.xCellCount = Math.ceil(width / cellSize);\n this.yCellCount = Math.ceil(height / cellSize);\n for (var i = 0; i < this.xCellCount * this.yCellCount; i++) {\n boxCells.push([]);\n circleCells.push([]);\n }\n this.circleKeys = [];\n this.boxKeys = [];\n this.bboxes = [];\n this.circles = [];\n this.width = width;\n this.height = height;\n this.xScale = this.xCellCount / width;\n this.yScale = this.yCellCount / height;\n this.boxUid = 0;\n this.circleUid = 0;\n };\n GridIndex.prototype.keysLength = function keysLength() {\n return this.boxKeys.length + this.circleKeys.length;\n };\n GridIndex.prototype.insert = function insert(key, x1, y1, x2, y2) {\n this._forEachCell(x1, y1, x2, y2, this._insertBoxCell, this.boxUid++);\n this.boxKeys.push(key);\n this.bboxes.push(x1);\n this.bboxes.push(y1);\n this.bboxes.push(x2);\n this.bboxes.push(y2);\n };\n GridIndex.prototype.insertCircle = function insertCircle(key, x, y, radius) {\n this._forEachCell(x - radius, y - radius, x + radius, y + radius, this._insertCircleCell, this.circleUid++);\n this.circleKeys.push(key);\n this.circles.push(x);\n this.circles.push(y);\n this.circles.push(radius);\n };\n GridIndex.prototype._insertBoxCell = function _insertBoxCell(x1, y1, x2, y2, cellIndex, uid) {\n this.boxCells[cellIndex].push(uid);\n };\n GridIndex.prototype._insertCircleCell = function _insertCircleCell(x1, y1, x2, y2, cellIndex, uid) {\n this.circleCells[cellIndex].push(uid);\n };\n GridIndex.prototype._query = function _query(x1, y1, x2, y2, hitTest, predicate) {\n if (x2 < 0 || x1 > this.width || y2 < 0 || y1 > this.height) {\n return hitTest ? false : [];\n }\n var result = [];\n if (x1 <= 0 && y1 <= 0 && this.width <= x2 && this.height <= y2) {\n if (hitTest) {\n return true;\n }\n for (var boxUid = 0; boxUid < this.boxKeys.length; boxUid++) {\n result.push({\n key: this.boxKeys[boxUid],\n x1: this.bboxes[boxUid * 4],\n y1: this.bboxes[boxUid * 4 + 1],\n x2: this.bboxes[boxUid * 4 + 2],\n y2: this.bboxes[boxUid * 4 + 3]\n });\n }\n for (var circleUid = 0; circleUid < this.circleKeys.length; circleUid++) {\n var x = this.circles[circleUid * 3];\n var y = this.circles[circleUid * 3 + 1];\n var radius = this.circles[circleUid * 3 + 2];\n result.push({\n key: this.circleKeys[circleUid],\n x1: x - radius,\n y1: y - radius,\n x2: x + radius,\n y2: y + radius\n });\n }\n return predicate ? result.filter(predicate) : result;\n } else {\n var queryArgs = {\n hitTest,\n seenUids: {\n box: {},\n circle: {}\n }\n };\n this._forEachCell(x1, y1, x2, y2, this._queryCell, result, queryArgs, predicate);\n return hitTest ? result.length > 0 : result;\n }\n };\n GridIndex.prototype._queryCircle = function _queryCircle(x, y, radius, hitTest, predicate) {\n var x1 = x - radius;\n var x2 = x + radius;\n var y1 = y - radius;\n var y2 = y + radius;\n if (x2 < 0 || x1 > this.width || y2 < 0 || y1 > this.height) {\n return hitTest ? false : [];\n }\n var result = [];\n var queryArgs = {\n hitTest,\n circle: {\n x,\n y,\n radius\n },\n seenUids: {\n box: {},\n circle: {}\n }\n };\n this._forEachCell(x1, y1, x2, y2, this._queryCellCircle, result, queryArgs, predicate);\n return hitTest ? result.length > 0 : result;\n };\n GridIndex.prototype.query = function query(x1, y1, x2, y2, predicate) {\n return this._query(x1, y1, x2, y2, false, predicate);\n };\n GridIndex.prototype.hitTest = function hitTest(x1, y1, x2, y2, predicate) {\n return this._query(x1, y1, x2, y2, true, predicate);\n };\n GridIndex.prototype.hitTestCircle = function hitTestCircle(x, y, radius, predicate) {\n return this._queryCircle(x, y, radius, true, predicate);\n };\n GridIndex.prototype._queryCell = function _queryCell(x1, y1, x2, y2, cellIndex, result, queryArgs, predicate) {\n var seenUids = queryArgs.seenUids;\n var boxCell = this.boxCells[cellIndex];\n if (boxCell !== null) {\n var bboxes = this.bboxes;\n for (var i = 0, list = boxCell; i < list.length; i += 1) {\n var boxUid = list[i];\n if (!seenUids.box[boxUid]) {\n seenUids.box[boxUid] = true;\n var offset = boxUid * 4;\n if (x1 <= bboxes[offset + 2] && y1 <= bboxes[offset + 3] && x2 >= bboxes[offset + 0] && y2 >= bboxes[offset + 1] && (!predicate || predicate(this.boxKeys[boxUid]))) {\n if (queryArgs.hitTest) {\n result.push(true);\n return true;\n } else {\n result.push({\n key: this.boxKeys[boxUid],\n x1: bboxes[offset],\n y1: bboxes[offset + 1],\n x2: bboxes[offset + 2],\n y2: bboxes[offset + 3]\n });\n }\n }\n }\n }\n }\n var circleCell = this.circleCells[cellIndex];\n if (circleCell !== null) {\n var circles = this.circles;\n for (var i$1 = 0, list$1 = circleCell; i$1 < list$1.length; i$1 += 1) {\n var circleUid = list$1[i$1];\n if (!seenUids.circle[circleUid]) {\n seenUids.circle[circleUid] = true;\n var offset$1 = circleUid * 3;\n if (this._circleAndRectCollide(circles[offset$1], circles[offset$1 + 1], circles[offset$1 + 2], x1, y1, x2, y2) && (!predicate || predicate(this.circleKeys[circleUid]))) {\n if (queryArgs.hitTest) {\n result.push(true);\n return true;\n } else {\n var x = circles[offset$1];\n var y = circles[offset$1 + 1];\n var radius = circles[offset$1 + 2];\n result.push({\n key: this.circleKeys[circleUid],\n x1: x - radius,\n y1: y - radius,\n x2: x + radius,\n y2: y + radius\n });\n }\n }\n }\n }\n }\n };\n GridIndex.prototype._queryCellCircle = function _queryCellCircle(x1, y1, x2, y2, cellIndex, result, queryArgs, predicate) {\n var circle2 = queryArgs.circle;\n var seenUids = queryArgs.seenUids;\n var boxCell = this.boxCells[cellIndex];\n if (boxCell !== null) {\n var bboxes = this.bboxes;\n for (var i = 0, list = boxCell; i < list.length; i += 1) {\n var boxUid = list[i];\n if (!seenUids.box[boxUid]) {\n seenUids.box[boxUid] = true;\n var offset = boxUid * 4;\n if (this._circleAndRectCollide(circle2.x, circle2.y, circle2.radius, bboxes[offset + 0], bboxes[offset + 1], bboxes[offset + 2], bboxes[offset + 3]) && (!predicate || predicate(this.boxKeys[boxUid]))) {\n result.push(true);\n return true;\n }\n }\n }\n }\n var circleCell = this.circleCells[cellIndex];\n if (circleCell !== null) {\n var circles = this.circles;\n for (var i$1 = 0, list$1 = circleCell; i$1 < list$1.length; i$1 += 1) {\n var circleUid = list$1[i$1];\n if (!seenUids.circle[circleUid]) {\n seenUids.circle[circleUid] = true;\n var offset$1 = circleUid * 3;\n if (this._circlesCollide(circles[offset$1], circles[offset$1 + 1], circles[offset$1 + 2], circle2.x, circle2.y, circle2.radius) && (!predicate || predicate(this.circleKeys[circleUid]))) {\n result.push(true);\n return true;\n }\n }\n }\n }\n };\n GridIndex.prototype._forEachCell = function _forEachCell(x1, y1, x2, y2, fn, arg1, arg2, predicate) {\n var cx1 = this._convertToXCellCoord(x1);\n var cy1 = this._convertToYCellCoord(y1);\n var cx2 = this._convertToXCellCoord(x2);\n var cy2 = this._convertToYCellCoord(y2);\n for (var x = cx1; x <= cx2; x++) {\n for (var y = cy1; y <= cy2; y++) {\n var cellIndex = this.xCellCount * y + x;\n if (fn.call(this, x1, y1, x2, y2, cellIndex, arg1, arg2, predicate)) {\n return;\n }\n }\n }\n };\n GridIndex.prototype._convertToXCellCoord = function _convertToXCellCoord(x) {\n return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(x * this.xScale)));\n };\n GridIndex.prototype._convertToYCellCoord = function _convertToYCellCoord(y) {\n return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(y * this.yScale)));\n };\n GridIndex.prototype._circlesCollide = function _circlesCollide(x1, y1, r1, x2, y2, r2) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n var bothRadii = r1 + r2;\n return bothRadii * bothRadii > dx * dx + dy * dy;\n };\n GridIndex.prototype._circleAndRectCollide = function _circleAndRectCollide(circleX, circleY, radius, x1, y1, x2, y2) {\n var halfRectWidth = (x2 - x1) / 2;\n var distX = Math.abs(circleX - (x1 + halfRectWidth));\n if (distX > halfRectWidth + radius) {\n return false;\n }\n var halfRectHeight = (y2 - y1) / 2;\n var distY = Math.abs(circleY - (y1 + halfRectHeight));\n if (distY > halfRectHeight + radius) {\n return false;\n }\n if (distX <= halfRectWidth || distY <= halfRectHeight) {\n return true;\n }\n var dx = distX - halfRectWidth;\n var dy = distY - halfRectHeight;\n return dx * dx + dy * dy <= radius * radius;\n };\n function getLabelPlaneMatrix(posMatrix, pitchWithMap, rotateWithMap, transform, pixelsToTileUnits2) {\n var m = performance2.create();\n if (pitchWithMap) {\n performance2.scale(m, m, [\n 1 / pixelsToTileUnits2,\n 1 / pixelsToTileUnits2,\n 1\n ]);\n if (!rotateWithMap) {\n performance2.rotateZ(m, m, transform.angle);\n }\n } else {\n performance2.multiply(m, transform.labelPlaneMatrix, posMatrix);\n }\n return m;\n }\n function getGlCoordMatrix(posMatrix, pitchWithMap, rotateWithMap, transform, pixelsToTileUnits2) {\n if (pitchWithMap) {\n var m = performance2.clone(posMatrix);\n performance2.scale(m, m, [\n pixelsToTileUnits2,\n pixelsToTileUnits2,\n 1\n ]);\n if (!rotateWithMap) {\n performance2.rotateZ(m, m, -transform.angle);\n }\n return m;\n } else {\n return transform.glCoordMatrix;\n }\n }\n function project(point, matrix) {\n var pos = [\n point.x,\n point.y,\n 0,\n 1\n ];\n xyTransformMat4(pos, pos, matrix);\n var w = pos[3];\n return {\n point: new performance2.Point(pos[0] / w, pos[1] / w),\n signedDistanceFromCamera: w\n };\n }\n function getPerspectiveRatio(cameraToCenterDistance, signedDistanceFromCamera) {\n return 0.5 + 0.5 * (cameraToCenterDistance / signedDistanceFromCamera);\n }\n function isVisible(anchorPos, clippingBuffer) {\n var x = anchorPos[0] / anchorPos[3];\n var y = anchorPos[1] / anchorPos[3];\n var inPaddedViewport = x >= -clippingBuffer[0] && x <= clippingBuffer[0] && y >= -clippingBuffer[1] && y <= clippingBuffer[1];\n return inPaddedViewport;\n }\n function updateLineLabels(bucket, posMatrix, painter, isText, labelPlaneMatrix, glCoordMatrix, pitchWithMap, keepUpright) {\n var sizeData = isText ? bucket.textSizeData : bucket.iconSizeData;\n var partiallyEvaluatedSize = performance2.evaluateSizeForZoom(sizeData, painter.transform.zoom);\n var clippingBuffer = [\n 256 / painter.width * 2 + 1,\n 256 / painter.height * 2 + 1\n ];\n var dynamicLayoutVertexArray = isText ? bucket.text.dynamicLayoutVertexArray : bucket.icon.dynamicLayoutVertexArray;\n dynamicLayoutVertexArray.clear();\n var lineVertexArray = bucket.lineVertexArray;\n var placedSymbols = isText ? bucket.text.placedSymbolArray : bucket.icon.placedSymbolArray;\n var aspectRatio = painter.transform.width / painter.transform.height;\n var useVertical = false;\n for (var s = 0; s < placedSymbols.length; s++) {\n var symbol = placedSymbols.get(s);\n if (symbol.hidden || symbol.writingMode === performance2.WritingMode.vertical && !useVertical) {\n hideGlyphs(symbol.numGlyphs, dynamicLayoutVertexArray);\n continue;\n }\n useVertical = false;\n var anchorPos = [\n symbol.anchorX,\n symbol.anchorY,\n 0,\n 1\n ];\n performance2.transformMat4(anchorPos, anchorPos, posMatrix);\n if (!isVisible(anchorPos, clippingBuffer)) {\n hideGlyphs(symbol.numGlyphs, dynamicLayoutVertexArray);\n continue;\n }\n var cameraToAnchorDistance = anchorPos[3];\n var perspectiveRatio = getPerspectiveRatio(painter.transform.cameraToCenterDistance, cameraToAnchorDistance);\n var fontSize = performance2.evaluateSizeForFeature(sizeData, partiallyEvaluatedSize, symbol);\n var pitchScaledFontSize = pitchWithMap ? fontSize / perspectiveRatio : fontSize * perspectiveRatio;\n var tileAnchorPoint = new performance2.Point(symbol.anchorX, symbol.anchorY);\n var anchorPoint = project(tileAnchorPoint, labelPlaneMatrix).point;\n var projectionCache = {};\n var placeUnflipped = placeGlyphsAlongLine(symbol, pitchScaledFontSize, false, keepUpright, posMatrix, labelPlaneMatrix, glCoordMatrix, bucket.glyphOffsetArray, lineVertexArray, dynamicLayoutVertexArray, anchorPoint, tileAnchorPoint, projectionCache, aspectRatio);\n useVertical = placeUnflipped.useVertical;\n if (placeUnflipped.notEnoughRoom || useVertical || placeUnflipped.needsFlipping && placeGlyphsAlongLine(symbol, pitchScaledFontSize, true, keepUpright, posMatrix, labelPlaneMatrix, glCoordMatrix, bucket.glyphOffsetArray, lineVertexArray, dynamicLayoutVertexArray, anchorPoint, tileAnchorPoint, projectionCache, aspectRatio).notEnoughRoom) {\n hideGlyphs(symbol.numGlyphs, dynamicLayoutVertexArray);\n }\n }\n if (isText) {\n bucket.text.dynamicLayoutVertexBuffer.updateData(dynamicLayoutVertexArray);\n } else {\n bucket.icon.dynamicLayoutVertexBuffer.updateData(dynamicLayoutVertexArray);\n }\n }\n function placeFirstAndLastGlyph(fontScale, glyphOffsetArray, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol, lineVertexArray, labelPlaneMatrix, projectionCache) {\n var glyphEndIndex = symbol.glyphStartIndex + symbol.numGlyphs;\n var lineStartIndex = symbol.lineStartIndex;\n var lineEndIndex = symbol.lineStartIndex + symbol.lineLength;\n var firstGlyphOffset = glyphOffsetArray.getoffsetX(symbol.glyphStartIndex);\n var lastGlyphOffset = glyphOffsetArray.getoffsetX(glyphEndIndex - 1);\n var firstPlacedGlyph = placeGlyphAlongLine(fontScale * firstGlyphOffset, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol.segment, lineStartIndex, lineEndIndex, lineVertexArray, labelPlaneMatrix, projectionCache);\n if (!firstPlacedGlyph) {\n return null;\n }\n var lastPlacedGlyph = placeGlyphAlongLine(fontScale * lastGlyphOffset, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol.segment, lineStartIndex, lineEndIndex, lineVertexArray, labelPlaneMatrix, projectionCache);\n if (!lastPlacedGlyph) {\n return null;\n }\n return {\n first: firstPlacedGlyph,\n last: lastPlacedGlyph\n };\n }\n function requiresOrientationChange(writingMode, firstPoint, lastPoint, aspectRatio) {\n if (writingMode === performance2.WritingMode.horizontal) {\n var rise = Math.abs(lastPoint.y - firstPoint.y);\n var run = Math.abs(lastPoint.x - firstPoint.x) * aspectRatio;\n if (rise > run) {\n return { useVertical: true };\n }\n }\n if (writingMode === performance2.WritingMode.vertical ? firstPoint.y < lastPoint.y : firstPoint.x > lastPoint.x) {\n return { needsFlipping: true };\n }\n return null;\n }\n function placeGlyphsAlongLine(symbol, fontSize, flip, keepUpright, posMatrix, labelPlaneMatrix, glCoordMatrix, glyphOffsetArray, lineVertexArray, dynamicLayoutVertexArray, anchorPoint, tileAnchorPoint, projectionCache, aspectRatio) {\n var fontScale = fontSize / 24;\n var lineOffsetX = symbol.lineOffsetX * fontScale;\n var lineOffsetY = symbol.lineOffsetY * fontScale;\n var placedGlyphs;\n if (symbol.numGlyphs > 1) {\n var glyphEndIndex = symbol.glyphStartIndex + symbol.numGlyphs;\n var lineStartIndex = symbol.lineStartIndex;\n var lineEndIndex = symbol.lineStartIndex + symbol.lineLength;\n var firstAndLastGlyph = placeFirstAndLastGlyph(fontScale, glyphOffsetArray, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol, lineVertexArray, labelPlaneMatrix, projectionCache);\n if (!firstAndLastGlyph) {\n return { notEnoughRoom: true };\n }\n var firstPoint = project(firstAndLastGlyph.first.point, glCoordMatrix).point;\n var lastPoint = project(firstAndLastGlyph.last.point, glCoordMatrix).point;\n if (keepUpright && !flip) {\n var orientationChange = requiresOrientationChange(symbol.writingMode, firstPoint, lastPoint, aspectRatio);\n if (orientationChange) {\n return orientationChange;\n }\n }\n placedGlyphs = [firstAndLastGlyph.first];\n for (var glyphIndex = symbol.glyphStartIndex + 1; glyphIndex < glyphEndIndex - 1; glyphIndex++) {\n placedGlyphs.push(placeGlyphAlongLine(fontScale * glyphOffsetArray.getoffsetX(glyphIndex), lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol.segment, lineStartIndex, lineEndIndex, lineVertexArray, labelPlaneMatrix, projectionCache));\n }\n placedGlyphs.push(firstAndLastGlyph.last);\n } else {\n if (keepUpright && !flip) {\n var a = project(tileAnchorPoint, posMatrix).point;\n var tileVertexIndex = symbol.lineStartIndex + symbol.segment + 1;\n var tileSegmentEnd = new performance2.Point(lineVertexArray.getx(tileVertexIndex), lineVertexArray.gety(tileVertexIndex));\n var projectedVertex = project(tileSegmentEnd, posMatrix);\n var b = projectedVertex.signedDistanceFromCamera > 0 ? projectedVertex.point : projectTruncatedLineSegment(tileAnchorPoint, tileSegmentEnd, a, 1, posMatrix);\n var orientationChange$1 = requiresOrientationChange(symbol.writingMode, a, b, aspectRatio);\n if (orientationChange$1) {\n return orientationChange$1;\n }\n }\n var singleGlyph = placeGlyphAlongLine(fontScale * glyphOffsetArray.getoffsetX(symbol.glyphStartIndex), lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol.segment, symbol.lineStartIndex, symbol.lineStartIndex + symbol.lineLength, lineVertexArray, labelPlaneMatrix, projectionCache);\n if (!singleGlyph) {\n return { notEnoughRoom: true };\n }\n placedGlyphs = [singleGlyph];\n }\n for (var i = 0, list = placedGlyphs; i < list.length; i += 1) {\n var glyph = list[i];\n performance2.addDynamicAttributes(dynamicLayoutVertexArray, glyph.point, glyph.angle);\n }\n return {};\n }\n function projectTruncatedLineSegment(previousTilePoint, currentTilePoint, previousProjectedPoint, minimumLength, projectionMatrix) {\n var projectedUnitVertex = project(previousTilePoint.add(previousTilePoint.sub(currentTilePoint)._unit()), projectionMatrix).point;\n var projectedUnitSegment = previousProjectedPoint.sub(projectedUnitVertex);\n return previousProjectedPoint.add(projectedUnitSegment._mult(minimumLength / projectedUnitSegment.mag()));\n }\n function placeGlyphAlongLine(offsetX, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, anchorSegment, lineStartIndex, lineEndIndex, lineVertexArray, labelPlaneMatrix, projectionCache) {\n var combinedOffsetX = flip ? offsetX - lineOffsetX : offsetX + lineOffsetX;\n var dir = combinedOffsetX > 0 ? 1 : -1;\n var angle = 0;\n if (flip) {\n dir *= -1;\n angle = Math.PI;\n }\n if (dir < 0) {\n angle += Math.PI;\n }\n var currentIndex = dir > 0 ? lineStartIndex + anchorSegment : lineStartIndex + anchorSegment + 1;\n var current = anchorPoint;\n var prev = anchorPoint;\n var distanceToPrev = 0;\n var currentSegmentDistance = 0;\n var absOffsetX = Math.abs(combinedOffsetX);\n var pathVertices = [];\n while (distanceToPrev + currentSegmentDistance <= absOffsetX) {\n currentIndex += dir;\n if (currentIndex < lineStartIndex || currentIndex >= lineEndIndex) {\n return null;\n }\n prev = current;\n pathVertices.push(current);\n current = projectionCache[currentIndex];\n if (current === void 0) {\n var currentVertex = new performance2.Point(lineVertexArray.getx(currentIndex), lineVertexArray.gety(currentIndex));\n var projection = project(currentVertex, labelPlaneMatrix);\n if (projection.signedDistanceFromCamera > 0) {\n current = projectionCache[currentIndex] = projection.point;\n } else {\n var previousLineVertexIndex = currentIndex - dir;\n var previousTilePoint = distanceToPrev === 0 ? tileAnchorPoint : new performance2.Point(lineVertexArray.getx(previousLineVertexIndex), lineVertexArray.gety(previousLineVertexIndex));\n current = projectTruncatedLineSegment(previousTilePoint, currentVertex, prev, absOffsetX - distanceToPrev + 1, labelPlaneMatrix);\n }\n }\n distanceToPrev += currentSegmentDistance;\n currentSegmentDistance = prev.dist(current);\n }\n var segmentInterpolationT = (absOffsetX - distanceToPrev) / currentSegmentDistance;\n var prevToCurrent = current.sub(prev);\n var p = prevToCurrent.mult(segmentInterpolationT)._add(prev);\n p._add(prevToCurrent._unit()._perp()._mult(lineOffsetY * dir));\n var segmentAngle = angle + Math.atan2(current.y - prev.y, current.x - prev.x);\n pathVertices.push(p);\n return {\n point: p,\n angle: segmentAngle,\n path: pathVertices\n };\n }\n var hiddenGlyphAttributes = new Float32Array([\n -Infinity,\n -Infinity,\n 0,\n -Infinity,\n -Infinity,\n 0,\n -Infinity,\n -Infinity,\n 0,\n -Infinity,\n -Infinity,\n 0\n ]);\n function hideGlyphs(num, dynamicLayoutVertexArray) {\n for (var i = 0; i < num; i++) {\n var offset = dynamicLayoutVertexArray.length;\n dynamicLayoutVertexArray.resize(offset + 4);\n dynamicLayoutVertexArray.float32.set(hiddenGlyphAttributes, offset * 3);\n }\n }\n function xyTransformMat4(out, a, m) {\n var x = a[0], y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n out[3] = m[3] * x + m[7] * y + m[15];\n return out;\n }\n var viewportPadding = 100;\n var CollisionIndex = function CollisionIndex2(transform, grid, ignoredGrid) {\n if (grid === void 0)\n grid = new GridIndex(transform.width + 2 * viewportPadding, transform.height + 2 * viewportPadding, 25);\n if (ignoredGrid === void 0)\n ignoredGrid = new GridIndex(transform.width + 2 * viewportPadding, transform.height + 2 * viewportPadding, 25);\n this.transform = transform;\n this.grid = grid;\n this.ignoredGrid = ignoredGrid;\n this.pitchfactor = Math.cos(transform._pitch) * transform.cameraToCenterDistance;\n this.screenRightBoundary = transform.width + viewportPadding;\n this.screenBottomBoundary = transform.height + viewportPadding;\n this.gridRightBoundary = transform.width + 2 * viewportPadding;\n this.gridBottomBoundary = transform.height + 2 * viewportPadding;\n };\n CollisionIndex.prototype.placeCollisionBox = function placeCollisionBox(collisionBox2, allowOverlap, textPixelRatio, posMatrix, collisionGroupPredicate) {\n var projectedPoint = this.projectAndGetPerspectiveRatio(posMatrix, collisionBox2.anchorPointX, collisionBox2.anchorPointY);\n var tileToViewport = textPixelRatio * projectedPoint.perspectiveRatio;\n var tlX = collisionBox2.x1 * tileToViewport + projectedPoint.point.x;\n var tlY = collisionBox2.y1 * tileToViewport + projectedPoint.point.y;\n var brX = collisionBox2.x2 * tileToViewport + projectedPoint.point.x;\n var brY = collisionBox2.y2 * tileToViewport + projectedPoint.point.y;\n if (!this.isInsideGrid(tlX, tlY, brX, brY) || !allowOverlap && this.grid.hitTest(tlX, tlY, brX, brY, collisionGroupPredicate)) {\n return {\n box: [],\n offscreen: false\n };\n }\n return {\n box: [\n tlX,\n tlY,\n brX,\n brY\n ],\n offscreen: this.isOffscreen(tlX, tlY, brX, brY)\n };\n };\n CollisionIndex.prototype.placeCollisionCircles = function placeCollisionCircles(allowOverlap, symbol, lineVertexArray, glyphOffsetArray, fontSize, posMatrix, labelPlaneMatrix, labelToScreenMatrix, showCollisionCircles, pitchWithMap, collisionGroupPredicate, circlePixelDiameter, textPixelPadding) {\n var placedCollisionCircles = [];\n var tileUnitAnchorPoint = new performance2.Point(symbol.anchorX, symbol.anchorY);\n var screenAnchorPoint = project(tileUnitAnchorPoint, posMatrix);\n var perspectiveRatio = getPerspectiveRatio(this.transform.cameraToCenterDistance, screenAnchorPoint.signedDistanceFromCamera);\n var labelPlaneFontSize = pitchWithMap ? fontSize / perspectiveRatio : fontSize * perspectiveRatio;\n var labelPlaneFontScale = labelPlaneFontSize / performance2.ONE_EM;\n var labelPlaneAnchorPoint = project(tileUnitAnchorPoint, labelPlaneMatrix).point;\n var projectionCache = {};\n var lineOffsetX = symbol.lineOffsetX * labelPlaneFontScale;\n var lineOffsetY = symbol.lineOffsetY * labelPlaneFontScale;\n var firstAndLastGlyph = placeFirstAndLastGlyph(labelPlaneFontScale, glyphOffsetArray, lineOffsetX, lineOffsetY, false, labelPlaneAnchorPoint, tileUnitAnchorPoint, symbol, lineVertexArray, labelPlaneMatrix, projectionCache);\n var collisionDetected = false;\n var inGrid = false;\n var entirelyOffscreen = true;\n if (firstAndLastGlyph) {\n var radius = circlePixelDiameter * 0.5 * perspectiveRatio + textPixelPadding;\n var screenPlaneMin = new performance2.Point(-viewportPadding, -viewportPadding);\n var screenPlaneMax = new performance2.Point(this.screenRightBoundary, this.screenBottomBoundary);\n var interpolator = new PathInterpolator();\n var first = firstAndLastGlyph.first;\n var last = firstAndLastGlyph.last;\n var projectedPath = [];\n for (var i = first.path.length - 1; i >= 1; i--) {\n projectedPath.push(first.path[i]);\n }\n for (var i$1 = 1; i$1 < last.path.length; i$1++) {\n projectedPath.push(last.path[i$1]);\n }\n var circleDist = radius * 2.5;\n if (labelToScreenMatrix) {\n var screenSpacePath = projectedPath.map(function(p) {\n return project(p, labelToScreenMatrix);\n });\n if (screenSpacePath.some(function(point) {\n return point.signedDistanceFromCamera <= 0;\n })) {\n projectedPath = [];\n } else {\n projectedPath = screenSpacePath.map(function(p) {\n return p.point;\n });\n }\n }\n var segments = [];\n if (projectedPath.length > 0) {\n var minPoint = projectedPath[0].clone();\n var maxPoint = projectedPath[0].clone();\n for (var i$2 = 1; i$2 < projectedPath.length; i$2++) {\n minPoint.x = Math.min(minPoint.x, projectedPath[i$2].x);\n minPoint.y = Math.min(minPoint.y, projectedPath[i$2].y);\n maxPoint.x = Math.max(maxPoint.x, projectedPath[i$2].x);\n maxPoint.y = Math.max(maxPoint.y, projectedPath[i$2].y);\n }\n if (minPoint.x >= screenPlaneMin.x && maxPoint.x <= screenPlaneMax.x && minPoint.y >= screenPlaneMin.y && maxPoint.y <= screenPlaneMax.y) {\n segments = [projectedPath];\n } else if (maxPoint.x < screenPlaneMin.x || minPoint.x > screenPlaneMax.x || maxPoint.y < screenPlaneMin.y || minPoint.y > screenPlaneMax.y) {\n segments = [];\n } else {\n segments = performance2.clipLine([projectedPath], screenPlaneMin.x, screenPlaneMin.y, screenPlaneMax.x, screenPlaneMax.y);\n }\n }\n for (var i$4 = 0, list = segments; i$4 < list.length; i$4 += 1) {\n var seg = list[i$4];\n interpolator.reset(seg, radius * 0.25);\n var numCircles = 0;\n if (interpolator.length <= 0.5 * radius) {\n numCircles = 1;\n } else {\n numCircles = Math.ceil(interpolator.paddedLength / circleDist) + 1;\n }\n for (var i$3 = 0; i$3 < numCircles; i$3++) {\n var t = i$3 / Math.max(numCircles - 1, 1);\n var circlePosition = interpolator.lerp(t);\n var centerX = circlePosition.x + viewportPadding;\n var centerY = circlePosition.y + viewportPadding;\n placedCollisionCircles.push(centerX, centerY, radius, 0);\n var x1 = centerX - radius;\n var y1 = centerY - radius;\n var x2 = centerX + radius;\n var y2 = centerY + radius;\n entirelyOffscreen = entirelyOffscreen && this.isOffscreen(x1, y1, x2, y2);\n inGrid = inGrid || this.isInsideGrid(x1, y1, x2, y2);\n if (!allowOverlap) {\n if (this.grid.hitTestCircle(centerX, centerY, radius, collisionGroupPredicate)) {\n collisionDetected = true;\n if (!showCollisionCircles) {\n return {\n circles: [],\n offscreen: false,\n collisionDetected\n };\n }\n }\n }\n }\n }\n }\n return {\n circles: !showCollisionCircles && collisionDetected || !inGrid ? [] : placedCollisionCircles,\n offscreen: entirelyOffscreen,\n collisionDetected\n };\n };\n CollisionIndex.prototype.queryRenderedSymbols = function queryRenderedSymbols2(viewportQueryGeometry) {\n if (viewportQueryGeometry.length === 0 || this.grid.keysLength() === 0 && this.ignoredGrid.keysLength() === 0) {\n return {};\n }\n var query = [];\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n for (var i = 0, list = viewportQueryGeometry; i < list.length; i += 1) {\n var point = list[i];\n var gridPoint = new performance2.Point(point.x + viewportPadding, point.y + viewportPadding);\n minX = Math.min(minX, gridPoint.x);\n minY = Math.min(minY, gridPoint.y);\n maxX = Math.max(maxX, gridPoint.x);\n maxY = Math.max(maxY, gridPoint.y);\n query.push(gridPoint);\n }\n var features = this.grid.query(minX, minY, maxX, maxY).concat(this.ignoredGrid.query(minX, minY, maxX, maxY));\n var seenFeatures = {};\n var result = {};\n for (var i$1 = 0, list$1 = features; i$1 < list$1.length; i$1 += 1) {\n var feature = list$1[i$1];\n var featureKey = feature.key;\n if (seenFeatures[featureKey.bucketInstanceId] === void 0) {\n seenFeatures[featureKey.bucketInstanceId] = {};\n }\n if (seenFeatures[featureKey.bucketInstanceId][featureKey.featureIndex]) {\n continue;\n }\n var bbox = [\n new performance2.Point(feature.x1, feature.y1),\n new performance2.Point(feature.x2, feature.y1),\n new performance2.Point(feature.x2, feature.y2),\n new performance2.Point(feature.x1, feature.y2)\n ];\n if (!performance2.polygonIntersectsPolygon(query, bbox)) {\n continue;\n }\n seenFeatures[featureKey.bucketInstanceId][featureKey.featureIndex] = true;\n if (result[featureKey.bucketInstanceId] === void 0) {\n result[featureKey.bucketInstanceId] = [];\n }\n result[featureKey.bucketInstanceId].push(featureKey.featureIndex);\n }\n return result;\n };\n CollisionIndex.prototype.insertCollisionBox = function insertCollisionBox(collisionBox2, ignorePlacement, bucketInstanceId, featureIndex, collisionGroupID) {\n var grid = ignorePlacement ? this.ignoredGrid : this.grid;\n var key = {\n bucketInstanceId,\n featureIndex,\n collisionGroupID\n };\n grid.insert(key, collisionBox2[0], collisionBox2[1], collisionBox2[2], collisionBox2[3]);\n };\n CollisionIndex.prototype.insertCollisionCircles = function insertCollisionCircles(collisionCircles, ignorePlacement, bucketInstanceId, featureIndex, collisionGroupID) {\n var grid = ignorePlacement ? this.ignoredGrid : this.grid;\n var key = {\n bucketInstanceId,\n featureIndex,\n collisionGroupID\n };\n for (var k = 0; k < collisionCircles.length; k += 4) {\n grid.insertCircle(key, collisionCircles[k], collisionCircles[k + 1], collisionCircles[k + 2]);\n }\n };\n CollisionIndex.prototype.projectAndGetPerspectiveRatio = function projectAndGetPerspectiveRatio(posMatrix, x, y) {\n var p = [\n x,\n y,\n 0,\n 1\n ];\n xyTransformMat4(p, p, posMatrix);\n var a = new performance2.Point((p[0] / p[3] + 1) / 2 * this.transform.width + viewportPadding, (-p[1] / p[3] + 1) / 2 * this.transform.height + viewportPadding);\n return {\n point: a,\n perspectiveRatio: 0.5 + 0.5 * (this.transform.cameraToCenterDistance / p[3])\n };\n };\n CollisionIndex.prototype.isOffscreen = function isOffscreen(x1, y1, x2, y2) {\n return x2 < viewportPadding || x1 >= this.screenRightBoundary || y2 < viewportPadding || y1 > this.screenBottomBoundary;\n };\n CollisionIndex.prototype.isInsideGrid = function isInsideGrid(x1, y1, x2, y2) {\n return x2 >= 0 && x1 < this.gridRightBoundary && y2 >= 0 && y1 < this.gridBottomBoundary;\n };\n CollisionIndex.prototype.getViewportMatrix = function getViewportMatrix() {\n var m = performance2.identity([]);\n performance2.translate(m, m, [\n -viewportPadding,\n -viewportPadding,\n 0\n ]);\n return m;\n };\n function pixelsToTileUnits(tile, pixelValue, z) {\n return pixelValue * (performance2.EXTENT / (tile.tileSize * Math.pow(2, z - tile.tileID.overscaledZ)));\n }\n var OpacityState = function OpacityState2(prevState, increment, placed, skipFade) {\n if (prevState) {\n this.opacity = Math.max(0, Math.min(1, prevState.opacity + (prevState.placed ? increment : -increment)));\n } else {\n this.opacity = skipFade && placed ? 1 : 0;\n }\n this.placed = placed;\n };\n OpacityState.prototype.isHidden = function isHidden() {\n return this.opacity === 0 && !this.placed;\n };\n var JointOpacityState = function JointOpacityState2(prevState, increment, placedText, placedIcon, skipFade) {\n this.text = new OpacityState(prevState ? prevState.text : null, increment, placedText, skipFade);\n this.icon = new OpacityState(prevState ? prevState.icon : null, increment, placedIcon, skipFade);\n };\n JointOpacityState.prototype.isHidden = function isHidden() {\n return this.text.isHidden() && this.icon.isHidden();\n };\n var JointPlacement = function JointPlacement2(text, icon, skipFade) {\n this.text = text;\n this.icon = icon;\n this.skipFade = skipFade;\n };\n var CollisionCircleArray = function CollisionCircleArray2() {\n this.invProjMatrix = performance2.create();\n this.viewportMatrix = performance2.create();\n this.circles = [];\n };\n var RetainedQueryData = function RetainedQueryData2(bucketInstanceId, featureIndex, sourceLayerIndex, bucketIndex, tileID) {\n this.bucketInstanceId = bucketInstanceId;\n this.featureIndex = featureIndex;\n this.sourceLayerIndex = sourceLayerIndex;\n this.bucketIndex = bucketIndex;\n this.tileID = tileID;\n };\n var CollisionGroups = function CollisionGroups2(crossSourceCollisions) {\n this.crossSourceCollisions = crossSourceCollisions;\n this.maxGroupID = 0;\n this.collisionGroups = {};\n };\n CollisionGroups.prototype.get = function get(sourceID) {\n if (!this.crossSourceCollisions) {\n if (!this.collisionGroups[sourceID]) {\n var nextGroupID = ++this.maxGroupID;\n this.collisionGroups[sourceID] = {\n ID: nextGroupID,\n predicate: function(key) {\n return key.collisionGroupID === nextGroupID;\n }\n };\n }\n return this.collisionGroups[sourceID];\n } else {\n return {\n ID: 0,\n predicate: null\n };\n }\n };\n function calculateVariableLayoutShift(anchor, width, height, textOffset, textBoxScale) {\n var ref = performance2.getAnchorAlignment(anchor);\n var horizontalAlign = ref.horizontalAlign;\n var verticalAlign = ref.verticalAlign;\n var shiftX = -(horizontalAlign - 0.5) * width;\n var shiftY = -(verticalAlign - 0.5) * height;\n var offset = performance2.evaluateVariableOffset(anchor, textOffset);\n return new performance2.Point(shiftX + offset[0] * textBoxScale, shiftY + offset[1] * textBoxScale);\n }\n function shiftVariableCollisionBox(collisionBox2, shiftX, shiftY, rotateWithMap, pitchWithMap, angle) {\n var x1 = collisionBox2.x1;\n var x2 = collisionBox2.x2;\n var y1 = collisionBox2.y1;\n var y2 = collisionBox2.y2;\n var anchorPointX = collisionBox2.anchorPointX;\n var anchorPointY = collisionBox2.anchorPointY;\n var rotatedOffset = new performance2.Point(shiftX, shiftY);\n if (rotateWithMap) {\n rotatedOffset._rotate(pitchWithMap ? angle : -angle);\n }\n return {\n x1: x1 + rotatedOffset.x,\n y1: y1 + rotatedOffset.y,\n x2: x2 + rotatedOffset.x,\n y2: y2 + rotatedOffset.y,\n anchorPointX,\n anchorPointY\n };\n }\n var Placement = function Placement2(transform, fadeDuration, crossSourceCollisions, prevPlacement) {\n this.transform = transform.clone();\n this.collisionIndex = new CollisionIndex(this.transform);\n this.placements = {};\n this.opacities = {};\n this.variableOffsets = {};\n this.stale = false;\n this.commitTime = 0;\n this.fadeDuration = fadeDuration;\n this.retainedQueryData = {};\n this.collisionGroups = new CollisionGroups(crossSourceCollisions);\n this.collisionCircleArrays = {};\n this.prevPlacement = prevPlacement;\n if (prevPlacement) {\n prevPlacement.prevPlacement = void 0;\n }\n this.placedOrientations = {};\n };\n Placement.prototype.getBucketParts = function getBucketParts(results, styleLayer, tile, sortAcrossTiles) {\n var symbolBucket = tile.getBucket(styleLayer);\n var bucketFeatureIndex = tile.latestFeatureIndex;\n if (!symbolBucket || !bucketFeatureIndex || styleLayer.id !== symbolBucket.layerIds[0]) {\n return;\n }\n var collisionBoxArray = tile.collisionBoxArray;\n var layout = symbolBucket.layers[0].layout;\n var scale = Math.pow(2, this.transform.zoom - tile.tileID.overscaledZ);\n var textPixelRatio = tile.tileSize / performance2.EXTENT;\n var posMatrix = this.transform.calculatePosMatrix(tile.tileID.toUnwrapped());\n var pitchWithMap = layout.get(\"text-pitch-alignment\") === \"map\";\n var rotateWithMap = layout.get(\"text-rotation-alignment\") === \"map\";\n var pixelsToTiles = pixelsToTileUnits(tile, 1, this.transform.zoom);\n var textLabelPlaneMatrix = getLabelPlaneMatrix(posMatrix, pitchWithMap, rotateWithMap, this.transform, pixelsToTiles);\n var labelToScreenMatrix = null;\n if (pitchWithMap) {\n var glMatrix = getGlCoordMatrix(posMatrix, pitchWithMap, rotateWithMap, this.transform, pixelsToTiles);\n labelToScreenMatrix = performance2.multiply([], this.transform.labelPlaneMatrix, glMatrix);\n }\n this.retainedQueryData[symbolBucket.bucketInstanceId] = new RetainedQueryData(symbolBucket.bucketInstanceId, bucketFeatureIndex, symbolBucket.sourceLayerIndex, symbolBucket.index, tile.tileID);\n var parameters = {\n bucket: symbolBucket,\n layout,\n posMatrix,\n textLabelPlaneMatrix,\n labelToScreenMatrix,\n scale,\n textPixelRatio,\n holdingForFade: tile.holdingForFade(),\n collisionBoxArray,\n partiallyEvaluatedTextSize: performance2.evaluateSizeForZoom(symbolBucket.textSizeData, this.transform.zoom),\n collisionGroup: this.collisionGroups.get(symbolBucket.sourceID)\n };\n if (sortAcrossTiles) {\n for (var i = 0, list = symbolBucket.sortKeyRanges; i < list.length; i += 1) {\n var range = list[i];\n var sortKey = range.sortKey;\n var symbolInstanceStart = range.symbolInstanceStart;\n var symbolInstanceEnd = range.symbolInstanceEnd;\n results.push({\n sortKey,\n symbolInstanceStart,\n symbolInstanceEnd,\n parameters\n });\n }\n } else {\n results.push({\n symbolInstanceStart: 0,\n symbolInstanceEnd: symbolBucket.symbolInstances.length,\n parameters\n });\n }\n };\n Placement.prototype.attemptAnchorPlacement = function attemptAnchorPlacement(anchor, textBox, width, height, textBoxScale, rotateWithMap, pitchWithMap, textPixelRatio, posMatrix, collisionGroup, textAllowOverlap, symbolInstance, bucket, orientation, iconBox) {\n var textOffset = [\n symbolInstance.textOffset0,\n symbolInstance.textOffset1\n ];\n var shift = calculateVariableLayoutShift(anchor, width, height, textOffset, textBoxScale);\n var placedGlyphBoxes = this.collisionIndex.placeCollisionBox(shiftVariableCollisionBox(textBox, shift.x, shift.y, rotateWithMap, pitchWithMap, this.transform.angle), textAllowOverlap, textPixelRatio, posMatrix, collisionGroup.predicate);\n if (iconBox) {\n var placedIconBoxes = this.collisionIndex.placeCollisionBox(shiftVariableCollisionBox(iconBox, shift.x, shift.y, rotateWithMap, pitchWithMap, this.transform.angle), textAllowOverlap, textPixelRatio, posMatrix, collisionGroup.predicate);\n if (placedIconBoxes.box.length === 0) {\n return;\n }\n }\n if (placedGlyphBoxes.box.length > 0) {\n var prevAnchor;\n if (this.prevPlacement && this.prevPlacement.variableOffsets[symbolInstance.crossTileID] && this.prevPlacement.placements[symbolInstance.crossTileID] && this.prevPlacement.placements[symbolInstance.crossTileID].text) {\n prevAnchor = this.prevPlacement.variableOffsets[symbolInstance.crossTileID].anchor;\n }\n this.variableOffsets[symbolInstance.crossTileID] = {\n textOffset,\n width,\n height,\n anchor,\n textBoxScale,\n prevAnchor\n };\n this.markUsedJustification(bucket, anchor, symbolInstance, orientation);\n if (bucket.allowVerticalPlacement) {\n this.markUsedOrientation(bucket, orientation, symbolInstance);\n this.placedOrientations[symbolInstance.crossTileID] = orientation;\n }\n return {\n shift,\n placedGlyphBoxes\n };\n }\n };\n Placement.prototype.placeLayerBucketPart = function placeLayerBucketPart(bucketPart, seenCrossTileIDs, showCollisionBoxes) {\n var this$1 = this;\n var ref = bucketPart.parameters;\n var bucket = ref.bucket;\n var layout = ref.layout;\n var posMatrix = ref.posMatrix;\n var textLabelPlaneMatrix = ref.textLabelPlaneMatrix;\n var labelToScreenMatrix = ref.labelToScreenMatrix;\n var textPixelRatio = ref.textPixelRatio;\n var holdingForFade = ref.holdingForFade;\n var collisionBoxArray = ref.collisionBoxArray;\n var partiallyEvaluatedTextSize = ref.partiallyEvaluatedTextSize;\n var collisionGroup = ref.collisionGroup;\n var textOptional = layout.get(\"text-optional\");\n var iconOptional = layout.get(\"icon-optional\");\n var textAllowOverlap = layout.get(\"text-allow-overlap\");\n var iconAllowOverlap = layout.get(\"icon-allow-overlap\");\n var rotateWithMap = layout.get(\"text-rotation-alignment\") === \"map\";\n var pitchWithMap = layout.get(\"text-pitch-alignment\") === \"map\";\n var hasIconTextFit = layout.get(\"icon-text-fit\") !== \"none\";\n var zOrderByViewportY = layout.get(\"symbol-z-order\") === \"viewport-y\";\n var alwaysShowText = textAllowOverlap && (iconAllowOverlap || !bucket.hasIconData() || iconOptional);\n var alwaysShowIcon = iconAllowOverlap && (textAllowOverlap || !bucket.hasTextData() || textOptional);\n if (!bucket.collisionArrays && collisionBoxArray) {\n bucket.deserializeCollisionBoxes(collisionBoxArray);\n }\n var placeSymbol = function(symbolInstance, collisionArrays) {\n if (seenCrossTileIDs[symbolInstance.crossTileID]) {\n return;\n }\n if (holdingForFade) {\n this$1.placements[symbolInstance.crossTileID] = new JointPlacement(false, false, false);\n return;\n }\n var placeText = false;\n var placeIcon = false;\n var offscreen = true;\n var shift = null;\n var placed = {\n box: null,\n offscreen: null\n };\n var placedVerticalText = {\n box: null,\n offscreen: null\n };\n var placedGlyphBoxes = null;\n var placedGlyphCircles = null;\n var placedIconBoxes = null;\n var textFeatureIndex = 0;\n var verticalTextFeatureIndex = 0;\n var iconFeatureIndex = 0;\n if (collisionArrays.textFeatureIndex) {\n textFeatureIndex = collisionArrays.textFeatureIndex;\n } else if (symbolInstance.useRuntimeCollisionCircles) {\n textFeatureIndex = symbolInstance.featureIndex;\n }\n if (collisionArrays.verticalTextFeatureIndex) {\n verticalTextFeatureIndex = collisionArrays.verticalTextFeatureIndex;\n }\n var textBox = collisionArrays.textBox;\n if (textBox) {\n var updatePreviousOrientationIfNotPlaced = function(isPlaced) {\n var previousOrientation = performance2.WritingMode.horizontal;\n if (bucket.allowVerticalPlacement && !isPlaced && this$1.prevPlacement) {\n var prevPlacedOrientation = this$1.prevPlacement.placedOrientations[symbolInstance.crossTileID];\n if (prevPlacedOrientation) {\n this$1.placedOrientations[symbolInstance.crossTileID] = prevPlacedOrientation;\n previousOrientation = prevPlacedOrientation;\n this$1.markUsedOrientation(bucket, previousOrientation, symbolInstance);\n }\n }\n return previousOrientation;\n };\n var placeTextForPlacementModes = function(placeHorizontalFn, placeVerticalFn) {\n if (bucket.allowVerticalPlacement && symbolInstance.numVerticalGlyphVertices > 0 && collisionArrays.verticalTextBox) {\n for (var i3 = 0, list = bucket.writingModes; i3 < list.length; i3 += 1) {\n var placementMode = list[i3];\n if (placementMode === performance2.WritingMode.vertical) {\n placed = placeVerticalFn();\n placedVerticalText = placed;\n } else {\n placed = placeHorizontalFn();\n }\n if (placed && placed.box && placed.box.length) {\n break;\n }\n }\n } else {\n placed = placeHorizontalFn();\n }\n };\n if (!layout.get(\"text-variable-anchor\")) {\n var placeBox = function(collisionTextBox, orientation) {\n var placedFeature = this$1.collisionIndex.placeCollisionBox(collisionTextBox, textAllowOverlap, textPixelRatio, posMatrix, collisionGroup.predicate);\n if (placedFeature && placedFeature.box && placedFeature.box.length) {\n this$1.markUsedOrientation(bucket, orientation, symbolInstance);\n this$1.placedOrientations[symbolInstance.crossTileID] = orientation;\n }\n return placedFeature;\n };\n var placeHorizontal = function() {\n return placeBox(textBox, performance2.WritingMode.horizontal);\n };\n var placeVertical = function() {\n var verticalTextBox = collisionArrays.verticalTextBox;\n if (bucket.allowVerticalPlacement && symbolInstance.numVerticalGlyphVertices > 0 && verticalTextBox) {\n return placeBox(verticalTextBox, performance2.WritingMode.vertical);\n }\n return {\n box: null,\n offscreen: null\n };\n };\n placeTextForPlacementModes(placeHorizontal, placeVertical);\n updatePreviousOrientationIfNotPlaced(placed && placed.box && placed.box.length);\n } else {\n var anchors = layout.get(\"text-variable-anchor\");\n if (this$1.prevPlacement && this$1.prevPlacement.variableOffsets[symbolInstance.crossTileID]) {\n var prevOffsets = this$1.prevPlacement.variableOffsets[symbolInstance.crossTileID];\n if (anchors.indexOf(prevOffsets.anchor) > 0) {\n anchors = anchors.filter(function(anchor) {\n return anchor !== prevOffsets.anchor;\n });\n anchors.unshift(prevOffsets.anchor);\n }\n }\n var placeBoxForVariableAnchors = function(collisionTextBox, collisionIconBox, orientation) {\n var width = collisionTextBox.x2 - collisionTextBox.x1;\n var height = collisionTextBox.y2 - collisionTextBox.y1;\n var textBoxScale = symbolInstance.textBoxScale;\n var variableIconBox = hasIconTextFit && !iconAllowOverlap ? collisionIconBox : null;\n var placedBox = {\n box: [],\n offscreen: false\n };\n var placementAttempts = textAllowOverlap ? anchors.length * 2 : anchors.length;\n for (var i3 = 0; i3 < placementAttempts; ++i3) {\n var anchor = anchors[i3 % anchors.length];\n var allowOverlap = i3 >= anchors.length;\n var result = this$1.attemptAnchorPlacement(anchor, collisionTextBox, width, height, textBoxScale, rotateWithMap, pitchWithMap, textPixelRatio, posMatrix, collisionGroup, allowOverlap, symbolInstance, bucket, orientation, variableIconBox);\n if (result) {\n placedBox = result.placedGlyphBoxes;\n if (placedBox && placedBox.box && placedBox.box.length) {\n placeText = true;\n shift = result.shift;\n break;\n }\n }\n }\n return placedBox;\n };\n var placeHorizontal$1 = function() {\n return placeBoxForVariableAnchors(textBox, collisionArrays.iconBox, performance2.WritingMode.horizontal);\n };\n var placeVertical$1 = function() {\n var verticalTextBox = collisionArrays.verticalTextBox;\n var wasPlaced = placed && placed.box && placed.box.length;\n if (bucket.allowVerticalPlacement && !wasPlaced && symbolInstance.numVerticalGlyphVertices > 0 && verticalTextBox) {\n return placeBoxForVariableAnchors(verticalTextBox, collisionArrays.verticalIconBox, performance2.WritingMode.vertical);\n }\n return {\n box: null,\n offscreen: null\n };\n };\n placeTextForPlacementModes(placeHorizontal$1, placeVertical$1);\n if (placed) {\n placeText = placed.box;\n offscreen = placed.offscreen;\n }\n var prevOrientation = updatePreviousOrientationIfNotPlaced(placed && placed.box);\n if (!placeText && this$1.prevPlacement) {\n var prevOffset = this$1.prevPlacement.variableOffsets[symbolInstance.crossTileID];\n if (prevOffset) {\n this$1.variableOffsets[symbolInstance.crossTileID] = prevOffset;\n this$1.markUsedJustification(bucket, prevOffset.anchor, symbolInstance, prevOrientation);\n }\n }\n }\n }\n placedGlyphBoxes = placed;\n placeText = placedGlyphBoxes && placedGlyphBoxes.box && placedGlyphBoxes.box.length > 0;\n offscreen = placedGlyphBoxes && placedGlyphBoxes.offscreen;\n if (symbolInstance.useRuntimeCollisionCircles) {\n var placedSymbol = bucket.text.placedSymbolArray.get(symbolInstance.centerJustifiedTextSymbolIndex);\n var fontSize = performance2.evaluateSizeForFeature(bucket.textSizeData, partiallyEvaluatedTextSize, placedSymbol);\n var textPixelPadding = layout.get(\"text-padding\");\n var circlePixelDiameter = symbolInstance.collisionCircleDiameter;\n placedGlyphCircles = this$1.collisionIndex.placeCollisionCircles(textAllowOverlap, placedSymbol, bucket.lineVertexArray, bucket.glyphOffsetArray, fontSize, posMatrix, textLabelPlaneMatrix, labelToScreenMatrix, showCollisionBoxes, pitchWithMap, collisionGroup.predicate, circlePixelDiameter, textPixelPadding);\n placeText = textAllowOverlap || placedGlyphCircles.circles.length > 0 && !placedGlyphCircles.collisionDetected;\n offscreen = offscreen && placedGlyphCircles.offscreen;\n }\n if (collisionArrays.iconFeatureIndex) {\n iconFeatureIndex = collisionArrays.iconFeatureIndex;\n }\n if (collisionArrays.iconBox) {\n var placeIconFeature = function(iconBox) {\n var shiftedIconBox = hasIconTextFit && shift ? shiftVariableCollisionBox(iconBox, shift.x, shift.y, rotateWithMap, pitchWithMap, this$1.transform.angle) : iconBox;\n return this$1.collisionIndex.placeCollisionBox(shiftedIconBox, iconAllowOverlap, textPixelRatio, posMatrix, collisionGroup.predicate);\n };\n if (placedVerticalText && placedVerticalText.box && placedVerticalText.box.length && collisionArrays.verticalIconBox) {\n placedIconBoxes = placeIconFeature(collisionArrays.verticalIconBox);\n placeIcon = placedIconBoxes.box.length > 0;\n } else {\n placedIconBoxes = placeIconFeature(collisionArrays.iconBox);\n placeIcon = placedIconBoxes.box.length > 0;\n }\n offscreen = offscreen && placedIconBoxes.offscreen;\n }\n var iconWithoutText = textOptional || symbolInstance.numHorizontalGlyphVertices === 0 && symbolInstance.numVerticalGlyphVertices === 0;\n var textWithoutIcon = iconOptional || symbolInstance.numIconVertices === 0;\n if (!iconWithoutText && !textWithoutIcon) {\n placeIcon = placeText = placeIcon && placeText;\n } else if (!textWithoutIcon) {\n placeText = placeIcon && placeText;\n } else if (!iconWithoutText) {\n placeIcon = placeIcon && placeText;\n }\n if (placeText && placedGlyphBoxes && placedGlyphBoxes.box) {\n if (placedVerticalText && placedVerticalText.box && verticalTextFeatureIndex) {\n this$1.collisionIndex.insertCollisionBox(placedGlyphBoxes.box, layout.get(\"text-ignore-placement\"), bucket.bucketInstanceId, verticalTextFeatureIndex, collisionGroup.ID);\n } else {\n this$1.collisionIndex.insertCollisionBox(placedGlyphBoxes.box, layout.get(\"text-ignore-placement\"), bucket.bucketInstanceId, textFeatureIndex, collisionGroup.ID);\n }\n }\n if (placeIcon && placedIconBoxes) {\n this$1.collisionIndex.insertCollisionBox(placedIconBoxes.box, layout.get(\"icon-ignore-placement\"), bucket.bucketInstanceId, iconFeatureIndex, collisionGroup.ID);\n }\n if (placedGlyphCircles) {\n if (placeText) {\n this$1.collisionIndex.insertCollisionCircles(placedGlyphCircles.circles, layout.get(\"text-ignore-placement\"), bucket.bucketInstanceId, textFeatureIndex, collisionGroup.ID);\n }\n if (showCollisionBoxes) {\n var id = bucket.bucketInstanceId;\n var circleArray2 = this$1.collisionCircleArrays[id];\n if (circleArray2 === void 0) {\n circleArray2 = this$1.collisionCircleArrays[id] = new CollisionCircleArray();\n }\n for (var i2 = 0; i2 < placedGlyphCircles.circles.length; i2 += 4) {\n circleArray2.circles.push(placedGlyphCircles.circles[i2 + 0]);\n circleArray2.circles.push(placedGlyphCircles.circles[i2 + 1]);\n circleArray2.circles.push(placedGlyphCircles.circles[i2 + 2]);\n circleArray2.circles.push(placedGlyphCircles.collisionDetected ? 1 : 0);\n }\n }\n }\n this$1.placements[symbolInstance.crossTileID] = new JointPlacement(placeText || alwaysShowText, placeIcon || alwaysShowIcon, offscreen || bucket.justReloaded);\n seenCrossTileIDs[symbolInstance.crossTileID] = true;\n };\n if (zOrderByViewportY) {\n var symbolIndexes = bucket.getSortedSymbolIndexes(this.transform.angle);\n for (var i = symbolIndexes.length - 1; i >= 0; --i) {\n var symbolIndex = symbolIndexes[i];\n placeSymbol(bucket.symbolInstances.get(symbolIndex), bucket.collisionArrays[symbolIndex]);\n }\n } else {\n for (var i$1 = bucketPart.symbolInstanceStart; i$1 < bucketPart.symbolInstanceEnd; i$1++) {\n placeSymbol(bucket.symbolInstances.get(i$1), bucket.collisionArrays[i$1]);\n }\n }\n if (showCollisionBoxes && bucket.bucketInstanceId in this.collisionCircleArrays) {\n var circleArray = this.collisionCircleArrays[bucket.bucketInstanceId];\n performance2.invert(circleArray.invProjMatrix, posMatrix);\n circleArray.viewportMatrix = this.collisionIndex.getViewportMatrix();\n }\n bucket.justReloaded = false;\n };\n Placement.prototype.markUsedJustification = function markUsedJustification(bucket, placedAnchor, symbolInstance, orientation) {\n var justifications = {\n \"left\": symbolInstance.leftJustifiedTextSymbolIndex,\n \"center\": symbolInstance.centerJustifiedTextSymbolIndex,\n \"right\": symbolInstance.rightJustifiedTextSymbolIndex\n };\n var autoIndex;\n if (orientation === performance2.WritingMode.vertical) {\n autoIndex = symbolInstance.verticalPlacedTextSymbolIndex;\n } else {\n autoIndex = justifications[performance2.getAnchorJustification(placedAnchor)];\n }\n var indexes = [\n symbolInstance.leftJustifiedTextSymbolIndex,\n symbolInstance.centerJustifiedTextSymbolIndex,\n symbolInstance.rightJustifiedTextSymbolIndex,\n symbolInstance.verticalPlacedTextSymbolIndex\n ];\n for (var i = 0, list = indexes; i < list.length; i += 1) {\n var index = list[i];\n if (index >= 0) {\n if (autoIndex >= 0 && index !== autoIndex) {\n bucket.text.placedSymbolArray.get(index).crossTileID = 0;\n } else {\n bucket.text.placedSymbolArray.get(index).crossTileID = symbolInstance.crossTileID;\n }\n }\n }\n };\n Placement.prototype.markUsedOrientation = function markUsedOrientation(bucket, orientation, symbolInstance) {\n var horizontal = orientation === performance2.WritingMode.horizontal || orientation === performance2.WritingMode.horizontalOnly ? orientation : 0;\n var vertical = orientation === performance2.WritingMode.vertical ? orientation : 0;\n var horizontalIndexes = [\n symbolInstance.leftJustifiedTextSymbolIndex,\n symbolInstance.centerJustifiedTextSymbolIndex,\n symbolInstance.rightJustifiedTextSymbolIndex\n ];\n for (var i = 0, list = horizontalIndexes; i < list.length; i += 1) {\n var index = list[i];\n bucket.text.placedSymbolArray.get(index).placedOrientation = horizontal;\n }\n if (symbolInstance.verticalPlacedTextSymbolIndex) {\n bucket.text.placedSymbolArray.get(symbolInstance.verticalPlacedTextSymbolIndex).placedOrientation = vertical;\n }\n };\n Placement.prototype.commit = function commit(now) {\n this.commitTime = now;\n this.zoomAtLastRecencyCheck = this.transform.zoom;\n var prevPlacement = this.prevPlacement;\n var placementChanged = false;\n this.prevZoomAdjustment = prevPlacement ? prevPlacement.zoomAdjustment(this.transform.zoom) : 0;\n var increment = prevPlacement ? prevPlacement.symbolFadeChange(now) : 1;\n var prevOpacities = prevPlacement ? prevPlacement.opacities : {};\n var prevOffsets = prevPlacement ? prevPlacement.variableOffsets : {};\n var prevOrientations = prevPlacement ? prevPlacement.placedOrientations : {};\n for (var crossTileID in this.placements) {\n var jointPlacement = this.placements[crossTileID];\n var prevOpacity = prevOpacities[crossTileID];\n if (prevOpacity) {\n this.opacities[crossTileID] = new JointOpacityState(prevOpacity, increment, jointPlacement.text, jointPlacement.icon);\n placementChanged = placementChanged || jointPlacement.text !== prevOpacity.text.placed || jointPlacement.icon !== prevOpacity.icon.placed;\n } else {\n this.opacities[crossTileID] = new JointOpacityState(null, increment, jointPlacement.text, jointPlacement.icon, jointPlacement.skipFade);\n placementChanged = placementChanged || jointPlacement.text || jointPlacement.icon;\n }\n }\n for (var crossTileID$1 in prevOpacities) {\n var prevOpacity$1 = prevOpacities[crossTileID$1];\n if (!this.opacities[crossTileID$1]) {\n var jointOpacity = new JointOpacityState(prevOpacity$1, increment, false, false);\n if (!jointOpacity.isHidden()) {\n this.opacities[crossTileID$1] = jointOpacity;\n placementChanged = placementChanged || prevOpacity$1.text.placed || prevOpacity$1.icon.placed;\n }\n }\n }\n for (var crossTileID$2 in prevOffsets) {\n if (!this.variableOffsets[crossTileID$2] && this.opacities[crossTileID$2] && !this.opacities[crossTileID$2].isHidden()) {\n this.variableOffsets[crossTileID$2] = prevOffsets[crossTileID$2];\n }\n }\n for (var crossTileID$3 in prevOrientations) {\n if (!this.placedOrientations[crossTileID$3] && this.opacities[crossTileID$3] && !this.opacities[crossTileID$3].isHidden()) {\n this.placedOrientations[crossTileID$3] = prevOrientations[crossTileID$3];\n }\n }\n if (placementChanged) {\n this.lastPlacementChangeTime = now;\n } else if (typeof this.lastPlacementChangeTime !== \"number\") {\n this.lastPlacementChangeTime = prevPlacement ? prevPlacement.lastPlacementChangeTime : now;\n }\n };\n Placement.prototype.updateLayerOpacities = function updateLayerOpacities(styleLayer, tiles) {\n var seenCrossTileIDs = {};\n for (var i = 0, list = tiles; i < list.length; i += 1) {\n var tile = list[i];\n var symbolBucket = tile.getBucket(styleLayer);\n if (symbolBucket && tile.latestFeatureIndex && styleLayer.id === symbolBucket.layerIds[0]) {\n this.updateBucketOpacities(symbolBucket, seenCrossTileIDs, tile.collisionBoxArray);\n }\n }\n };\n Placement.prototype.updateBucketOpacities = function updateBucketOpacities(bucket, seenCrossTileIDs, collisionBoxArray) {\n var this$1 = this;\n if (bucket.hasTextData()) {\n bucket.text.opacityVertexArray.clear();\n }\n if (bucket.hasIconData()) {\n bucket.icon.opacityVertexArray.clear();\n }\n if (bucket.hasIconCollisionBoxData()) {\n bucket.iconCollisionBox.collisionVertexArray.clear();\n }\n if (bucket.hasTextCollisionBoxData()) {\n bucket.textCollisionBox.collisionVertexArray.clear();\n }\n var layout = bucket.layers[0].layout;\n var duplicateOpacityState = new JointOpacityState(null, 0, false, false, true);\n var textAllowOverlap = layout.get(\"text-allow-overlap\");\n var iconAllowOverlap = layout.get(\"icon-allow-overlap\");\n var variablePlacement = layout.get(\"text-variable-anchor\");\n var rotateWithMap = layout.get(\"text-rotation-alignment\") === \"map\";\n var pitchWithMap = layout.get(\"text-pitch-alignment\") === \"map\";\n var hasIconTextFit = layout.get(\"icon-text-fit\") !== \"none\";\n var defaultOpacityState = new JointOpacityState(null, 0, textAllowOverlap && (iconAllowOverlap || !bucket.hasIconData() || layout.get(\"icon-optional\")), iconAllowOverlap && (textAllowOverlap || !bucket.hasTextData() || layout.get(\"text-optional\")), true);\n if (!bucket.collisionArrays && collisionBoxArray && (bucket.hasIconCollisionBoxData() || bucket.hasTextCollisionBoxData())) {\n bucket.deserializeCollisionBoxes(collisionBoxArray);\n }\n var addOpacities = function(iconOrText, numVertices, opacity) {\n for (var i = 0; i < numVertices / 4; i++) {\n iconOrText.opacityVertexArray.emplaceBack(opacity);\n }\n };\n var loop = function(s2) {\n var symbolInstance = bucket.symbolInstances.get(s2);\n var numHorizontalGlyphVertices = symbolInstance.numHorizontalGlyphVertices;\n var numVerticalGlyphVertices = symbolInstance.numVerticalGlyphVertices;\n var crossTileID = symbolInstance.crossTileID;\n var isDuplicate = seenCrossTileIDs[crossTileID];\n var opacityState = this$1.opacities[crossTileID];\n if (isDuplicate) {\n opacityState = duplicateOpacityState;\n } else if (!opacityState) {\n opacityState = defaultOpacityState;\n this$1.opacities[crossTileID] = opacityState;\n }\n seenCrossTileIDs[crossTileID] = true;\n var hasText = numHorizontalGlyphVertices > 0 || numVerticalGlyphVertices > 0;\n var hasIcon = symbolInstance.numIconVertices > 0;\n var placedOrientation = this$1.placedOrientations[symbolInstance.crossTileID];\n var horizontalHidden = placedOrientation === performance2.WritingMode.vertical;\n var verticalHidden = placedOrientation === performance2.WritingMode.horizontal || placedOrientation === performance2.WritingMode.horizontalOnly;\n if (hasText) {\n var packedOpacity = packOpacity(opacityState.text);\n var horizontalOpacity = horizontalHidden ? PACKED_HIDDEN_OPACITY : packedOpacity;\n addOpacities(bucket.text, numHorizontalGlyphVertices, horizontalOpacity);\n var verticalOpacity = verticalHidden ? PACKED_HIDDEN_OPACITY : packedOpacity;\n addOpacities(bucket.text, numVerticalGlyphVertices, verticalOpacity);\n var symbolHidden = opacityState.text.isHidden();\n [\n symbolInstance.rightJustifiedTextSymbolIndex,\n symbolInstance.centerJustifiedTextSymbolIndex,\n symbolInstance.leftJustifiedTextSymbolIndex\n ].forEach(function(index) {\n if (index >= 0) {\n bucket.text.placedSymbolArray.get(index).hidden = symbolHidden || horizontalHidden ? 1 : 0;\n }\n });\n if (symbolInstance.verticalPlacedTextSymbolIndex >= 0) {\n bucket.text.placedSymbolArray.get(symbolInstance.verticalPlacedTextSymbolIndex).hidden = symbolHidden || verticalHidden ? 1 : 0;\n }\n var prevOffset = this$1.variableOffsets[symbolInstance.crossTileID];\n if (prevOffset) {\n this$1.markUsedJustification(bucket, prevOffset.anchor, symbolInstance, placedOrientation);\n }\n var prevOrientation = this$1.placedOrientations[symbolInstance.crossTileID];\n if (prevOrientation) {\n this$1.markUsedJustification(bucket, \"left\", symbolInstance, prevOrientation);\n this$1.markUsedOrientation(bucket, prevOrientation, symbolInstance);\n }\n }\n if (hasIcon) {\n var packedOpacity$1 = packOpacity(opacityState.icon);\n var useHorizontal = !(hasIconTextFit && symbolInstance.verticalPlacedIconSymbolIndex && horizontalHidden);\n if (symbolInstance.placedIconSymbolIndex >= 0) {\n var horizontalOpacity$1 = useHorizontal ? packedOpacity$1 : PACKED_HIDDEN_OPACITY;\n addOpacities(bucket.icon, symbolInstance.numIconVertices, horizontalOpacity$1);\n bucket.icon.placedSymbolArray.get(symbolInstance.placedIconSymbolIndex).hidden = opacityState.icon.isHidden();\n }\n if (symbolInstance.verticalPlacedIconSymbolIndex >= 0) {\n var verticalOpacity$1 = !useHorizontal ? packedOpacity$1 : PACKED_HIDDEN_OPACITY;\n addOpacities(bucket.icon, symbolInstance.numVerticalIconVertices, verticalOpacity$1);\n bucket.icon.placedSymbolArray.get(symbolInstance.verticalPlacedIconSymbolIndex).hidden = opacityState.icon.isHidden();\n }\n }\n if (bucket.hasIconCollisionBoxData() || bucket.hasTextCollisionBoxData()) {\n var collisionArrays = bucket.collisionArrays[s2];\n if (collisionArrays) {\n var shift = new performance2.Point(0, 0);\n if (collisionArrays.textBox || collisionArrays.verticalTextBox) {\n var used = true;\n if (variablePlacement) {\n var variableOffset = this$1.variableOffsets[crossTileID];\n if (variableOffset) {\n shift = calculateVariableLayoutShift(variableOffset.anchor, variableOffset.width, variableOffset.height, variableOffset.textOffset, variableOffset.textBoxScale);\n if (rotateWithMap) {\n shift._rotate(pitchWithMap ? this$1.transform.angle : -this$1.transform.angle);\n }\n } else {\n used = false;\n }\n }\n if (collisionArrays.textBox) {\n updateCollisionVertices(bucket.textCollisionBox.collisionVertexArray, opacityState.text.placed, !used || horizontalHidden, shift.x, shift.y);\n }\n if (collisionArrays.verticalTextBox) {\n updateCollisionVertices(bucket.textCollisionBox.collisionVertexArray, opacityState.text.placed, !used || verticalHidden, shift.x, shift.y);\n }\n }\n var verticalIconUsed = Boolean(!verticalHidden && collisionArrays.verticalIconBox);\n if (collisionArrays.iconBox) {\n updateCollisionVertices(bucket.iconCollisionBox.collisionVertexArray, opacityState.icon.placed, verticalIconUsed, hasIconTextFit ? shift.x : 0, hasIconTextFit ? shift.y : 0);\n }\n if (collisionArrays.verticalIconBox) {\n updateCollisionVertices(bucket.iconCollisionBox.collisionVertexArray, opacityState.icon.placed, !verticalIconUsed, hasIconTextFit ? shift.x : 0, hasIconTextFit ? shift.y : 0);\n }\n }\n }\n };\n for (var s = 0; s < bucket.symbolInstances.length; s++)\n loop(s);\n bucket.sortFeatures(this.transform.angle);\n if (this.retainedQueryData[bucket.bucketInstanceId]) {\n this.retainedQueryData[bucket.bucketInstanceId].featureSortOrder = bucket.featureSortOrder;\n }\n if (bucket.hasTextData() && bucket.text.opacityVertexBuffer) {\n bucket.text.opacityVertexBuffer.updateData(bucket.text.opacityVertexArray);\n }\n if (bucket.hasIconData() && bucket.icon.opacityVertexBuffer) {\n bucket.icon.opacityVertexBuffer.updateData(bucket.icon.opacityVertexArray);\n }\n if (bucket.hasIconCollisionBoxData() && bucket.iconCollisionBox.collisionVertexBuffer) {\n bucket.iconCollisionBox.collisionVertexBuffer.updateData(bucket.iconCollisionBox.collisionVertexArray);\n }\n if (bucket.hasTextCollisionBoxData() && bucket.textCollisionBox.collisionVertexBuffer) {\n bucket.textCollisionBox.collisionVertexBuffer.updateData(bucket.textCollisionBox.collisionVertexArray);\n }\n if (bucket.bucketInstanceId in this.collisionCircleArrays) {\n var instance = this.collisionCircleArrays[bucket.bucketInstanceId];\n bucket.placementInvProjMatrix = instance.invProjMatrix;\n bucket.placementViewportMatrix = instance.viewportMatrix;\n bucket.collisionCircleArray = instance.circles;\n delete this.collisionCircleArrays[bucket.bucketInstanceId];\n }\n };\n Placement.prototype.symbolFadeChange = function symbolFadeChange(now) {\n return this.fadeDuration === 0 ? 1 : (now - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment;\n };\n Placement.prototype.zoomAdjustment = function zoomAdjustment(zoom) {\n return Math.max(0, (this.transform.zoom - zoom) / 1.5);\n };\n Placement.prototype.hasTransitions = function hasTransitions(now) {\n return this.stale || now - this.lastPlacementChangeTime < this.fadeDuration;\n };\n Placement.prototype.stillRecent = function stillRecent(now, zoom) {\n var durationAdjustment = this.zoomAtLastRecencyCheck === zoom ? 1 - this.zoomAdjustment(zoom) : 1;\n this.zoomAtLastRecencyCheck = zoom;\n return this.commitTime + this.fadeDuration * durationAdjustment > now;\n };\n Placement.prototype.setStale = function setStale() {\n this.stale = true;\n };\n function updateCollisionVertices(collisionVertexArray, placed, notUsed, shiftX, shiftY) {\n collisionVertexArray.emplaceBack(placed ? 1 : 0, notUsed ? 1 : 0, shiftX || 0, shiftY || 0);\n collisionVertexArray.emplaceBack(placed ? 1 : 0, notUsed ? 1 : 0, shiftX || 0, shiftY || 0);\n collisionVertexArray.emplaceBack(placed ? 1 : 0, notUsed ? 1 : 0, shiftX || 0, shiftY || 0);\n collisionVertexArray.emplaceBack(placed ? 1 : 0, notUsed ? 1 : 0, shiftX || 0, shiftY || 0);\n }\n var shift25 = Math.pow(2, 25);\n var shift24 = Math.pow(2, 24);\n var shift17 = Math.pow(2, 17);\n var shift16 = Math.pow(2, 16);\n var shift9 = Math.pow(2, 9);\n var shift8 = Math.pow(2, 8);\n var shift1 = Math.pow(2, 1);\n function packOpacity(opacityState) {\n if (opacityState.opacity === 0 && !opacityState.placed) {\n return 0;\n } else if (opacityState.opacity === 1 && opacityState.placed) {\n return 4294967295;\n }\n var targetBit = opacityState.placed ? 1 : 0;\n var opacityBits = Math.floor(opacityState.opacity * 127);\n return opacityBits * shift25 + targetBit * shift24 + opacityBits * shift17 + targetBit * shift16 + opacityBits * shift9 + targetBit * shift8 + opacityBits * shift1 + targetBit;\n }\n var PACKED_HIDDEN_OPACITY = 0;\n var LayerPlacement = function LayerPlacement2(styleLayer) {\n this._sortAcrossTiles = styleLayer.layout.get(\"symbol-z-order\") !== \"viewport-y\" && styleLayer.layout.get(\"symbol-sort-key\").constantOr(1) !== void 0;\n this._currentTileIndex = 0;\n this._currentPartIndex = 0;\n this._seenCrossTileIDs = {};\n this._bucketParts = [];\n };\n LayerPlacement.prototype.continuePlacement = function continuePlacement(tiles, placement, showCollisionBoxes, styleLayer, shouldPausePlacement) {\n var bucketParts = this._bucketParts;\n while (this._currentTileIndex < tiles.length) {\n var tile = tiles[this._currentTileIndex];\n placement.getBucketParts(bucketParts, styleLayer, tile, this._sortAcrossTiles);\n this._currentTileIndex++;\n if (shouldPausePlacement()) {\n return true;\n }\n }\n if (this._sortAcrossTiles) {\n this._sortAcrossTiles = false;\n bucketParts.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n while (this._currentPartIndex < bucketParts.length) {\n var bucketPart = bucketParts[this._currentPartIndex];\n placement.placeLayerBucketPart(bucketPart, this._seenCrossTileIDs, showCollisionBoxes);\n this._currentPartIndex++;\n if (shouldPausePlacement()) {\n return true;\n }\n }\n return false;\n };\n var PauseablePlacement = function PauseablePlacement2(transform, order, forceFullPlacement, showCollisionBoxes, fadeDuration, crossSourceCollisions, prevPlacement) {\n this.placement = new Placement(transform, fadeDuration, crossSourceCollisions, prevPlacement);\n this._currentPlacementIndex = order.length - 1;\n this._forceFullPlacement = forceFullPlacement;\n this._showCollisionBoxes = showCollisionBoxes;\n this._done = false;\n };\n PauseablePlacement.prototype.isDone = function isDone() {\n return this._done;\n };\n PauseablePlacement.prototype.continuePlacement = function continuePlacement(order, layers, layerTiles) {\n var this$1 = this;\n var startTime = performance2.browser.now();\n var shouldPausePlacement = function() {\n var elapsedTime = performance2.browser.now() - startTime;\n return this$1._forceFullPlacement ? false : elapsedTime > 2;\n };\n while (this._currentPlacementIndex >= 0) {\n var layerId = order[this._currentPlacementIndex];\n var layer = layers[layerId];\n var placementZoom = this.placement.collisionIndex.transform.zoom;\n if (layer.type === \"symbol\" && (!layer.minzoom || layer.minzoom <= placementZoom) && (!layer.maxzoom || layer.maxzoom > placementZoom)) {\n if (!this._inProgressLayer) {\n this._inProgressLayer = new LayerPlacement(layer);\n }\n var pausePlacement = this._inProgressLayer.continuePlacement(layerTiles[layer.source], this.placement, this._showCollisionBoxes, layer, shouldPausePlacement);\n if (pausePlacement) {\n return;\n }\n delete this._inProgressLayer;\n }\n this._currentPlacementIndex--;\n }\n this._done = true;\n };\n PauseablePlacement.prototype.commit = function commit(now) {\n this.placement.commit(now);\n return this.placement;\n };\n var roundingFactor = 512 / performance2.EXTENT / 2;\n var TileLayerIndex = function TileLayerIndex2(tileID, symbolInstances, bucketInstanceId) {\n this.tileID = tileID;\n this.indexedSymbolInstances = {};\n this.bucketInstanceId = bucketInstanceId;\n for (var i = 0; i < symbolInstances.length; i++) {\n var symbolInstance = symbolInstances.get(i);\n var key = symbolInstance.key;\n if (!this.indexedSymbolInstances[key]) {\n this.indexedSymbolInstances[key] = [];\n }\n this.indexedSymbolInstances[key].push({\n crossTileID: symbolInstance.crossTileID,\n coord: this.getScaledCoordinates(symbolInstance, tileID)\n });\n }\n };\n TileLayerIndex.prototype.getScaledCoordinates = function getScaledCoordinates(symbolInstance, childTileID) {\n var zDifference = childTileID.canonical.z - this.tileID.canonical.z;\n var scale = roundingFactor / Math.pow(2, zDifference);\n return {\n x: Math.floor((childTileID.canonical.x * performance2.EXTENT + symbolInstance.anchorX) * scale),\n y: Math.floor((childTileID.canonical.y * performance2.EXTENT + symbolInstance.anchorY) * scale)\n };\n };\n TileLayerIndex.prototype.findMatches = function findMatches(symbolInstances, newTileID, zoomCrossTileIDs) {\n var tolerance = this.tileID.canonical.z < newTileID.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - newTileID.canonical.z);\n for (var i = 0; i < symbolInstances.length; i++) {\n var symbolInstance = symbolInstances.get(i);\n if (symbolInstance.crossTileID) {\n continue;\n }\n var indexedInstances = this.indexedSymbolInstances[symbolInstance.key];\n if (!indexedInstances) {\n continue;\n }\n var scaledSymbolCoord = this.getScaledCoordinates(symbolInstance, newTileID);\n for (var i$1 = 0, list = indexedInstances; i$1 < list.length; i$1 += 1) {\n var thisTileSymbol = list[i$1];\n if (Math.abs(thisTileSymbol.coord.x - scaledSymbolCoord.x) <= tolerance && Math.abs(thisTileSymbol.coord.y - scaledSymbolCoord.y) <= tolerance && !zoomCrossTileIDs[thisTileSymbol.crossTileID]) {\n zoomCrossTileIDs[thisTileSymbol.crossTileID] = true;\n symbolInstance.crossTileID = thisTileSymbol.crossTileID;\n break;\n }\n }\n }\n };\n var CrossTileIDs = function CrossTileIDs2() {\n this.maxCrossTileID = 0;\n };\n CrossTileIDs.prototype.generate = function generate() {\n return ++this.maxCrossTileID;\n };\n var CrossTileSymbolLayerIndex = function CrossTileSymbolLayerIndex2() {\n this.indexes = {};\n this.usedCrossTileIDs = {};\n this.lng = 0;\n };\n CrossTileSymbolLayerIndex.prototype.handleWrapJump = function handleWrapJump(lng) {\n var wrapDelta = Math.round((lng - this.lng) / 360);\n if (wrapDelta !== 0) {\n for (var zoom in this.indexes) {\n var zoomIndexes = this.indexes[zoom];\n var newZoomIndex = {};\n for (var key in zoomIndexes) {\n var index = zoomIndexes[key];\n index.tileID = index.tileID.unwrapTo(index.tileID.wrap + wrapDelta);\n newZoomIndex[index.tileID.key] = index;\n }\n this.indexes[zoom] = newZoomIndex;\n }\n }\n this.lng = lng;\n };\n CrossTileSymbolLayerIndex.prototype.addBucket = function addBucket(tileID, bucket, crossTileIDs) {\n if (this.indexes[tileID.overscaledZ] && this.indexes[tileID.overscaledZ][tileID.key]) {\n if (this.indexes[tileID.overscaledZ][tileID.key].bucketInstanceId === bucket.bucketInstanceId) {\n return false;\n } else {\n this.removeBucketCrossTileIDs(tileID.overscaledZ, this.indexes[tileID.overscaledZ][tileID.key]);\n }\n }\n for (var i = 0; i < bucket.symbolInstances.length; i++) {\n var symbolInstance = bucket.symbolInstances.get(i);\n symbolInstance.crossTileID = 0;\n }\n if (!this.usedCrossTileIDs[tileID.overscaledZ]) {\n this.usedCrossTileIDs[tileID.overscaledZ] = {};\n }\n var zoomCrossTileIDs = this.usedCrossTileIDs[tileID.overscaledZ];\n for (var zoom in this.indexes) {\n var zoomIndexes = this.indexes[zoom];\n if (Number(zoom) > tileID.overscaledZ) {\n for (var id in zoomIndexes) {\n var childIndex = zoomIndexes[id];\n if (childIndex.tileID.isChildOf(tileID)) {\n childIndex.findMatches(bucket.symbolInstances, tileID, zoomCrossTileIDs);\n }\n }\n } else {\n var parentCoord = tileID.scaledTo(Number(zoom));\n var parentIndex = zoomIndexes[parentCoord.key];\n if (parentIndex) {\n parentIndex.findMatches(bucket.symbolInstances, tileID, zoomCrossTileIDs);\n }\n }\n }\n for (var i$1 = 0; i$1 < bucket.symbolInstances.length; i$1++) {\n var symbolInstance$1 = bucket.symbolInstances.get(i$1);\n if (!symbolInstance$1.crossTileID) {\n symbolInstance$1.crossTileID = crossTileIDs.generate();\n zoomCrossTileIDs[symbolInstance$1.crossTileID] = true;\n }\n }\n if (this.indexes[tileID.overscaledZ] === void 0) {\n this.indexes[tileID.overscaledZ] = {};\n }\n this.indexes[tileID.overscaledZ][tileID.key] = new TileLayerIndex(tileID, bucket.symbolInstances, bucket.bucketInstanceId);\n return true;\n };\n CrossTileSymbolLayerIndex.prototype.removeBucketCrossTileIDs = function removeBucketCrossTileIDs(zoom, removedBucket) {\n for (var key in removedBucket.indexedSymbolInstances) {\n for (var i = 0, list = removedBucket.indexedSymbolInstances[key]; i < list.length; i += 1) {\n var symbolInstance = list[i];\n delete this.usedCrossTileIDs[zoom][symbolInstance.crossTileID];\n }\n }\n };\n CrossTileSymbolLayerIndex.prototype.removeStaleBuckets = function removeStaleBuckets(currentIDs) {\n var tilesChanged = false;\n for (var z in this.indexes) {\n var zoomIndexes = this.indexes[z];\n for (var tileKey in zoomIndexes) {\n if (!currentIDs[zoomIndexes[tileKey].bucketInstanceId]) {\n this.removeBucketCrossTileIDs(z, zoomIndexes[tileKey]);\n delete zoomIndexes[tileKey];\n tilesChanged = true;\n }\n }\n }\n return tilesChanged;\n };\n var CrossTileSymbolIndex = function CrossTileSymbolIndex2() {\n this.layerIndexes = {};\n this.crossTileIDs = new CrossTileIDs();\n this.maxBucketInstanceId = 0;\n this.bucketsInCurrentPlacement = {};\n };\n CrossTileSymbolIndex.prototype.addLayer = function addLayer(styleLayer, tiles, lng) {\n var layerIndex = this.layerIndexes[styleLayer.id];\n if (layerIndex === void 0) {\n layerIndex = this.layerIndexes[styleLayer.id] = new CrossTileSymbolLayerIndex();\n }\n var symbolBucketsChanged = false;\n var currentBucketIDs = {};\n layerIndex.handleWrapJump(lng);\n for (var i = 0, list = tiles; i < list.length; i += 1) {\n var tile = list[i];\n var symbolBucket = tile.getBucket(styleLayer);\n if (!symbolBucket || styleLayer.id !== symbolBucket.layerIds[0]) {\n continue;\n }\n if (!symbolBucket.bucketInstanceId) {\n symbolBucket.bucketInstanceId = ++this.maxBucketInstanceId;\n }\n if (layerIndex.addBucket(tile.tileID, symbolBucket, this.crossTileIDs)) {\n symbolBucketsChanged = true;\n }\n currentBucketIDs[symbolBucket.bucketInstanceId] = true;\n }\n if (layerIndex.removeStaleBuckets(currentBucketIDs)) {\n symbolBucketsChanged = true;\n }\n return symbolBucketsChanged;\n };\n CrossTileSymbolIndex.prototype.pruneUnusedLayers = function pruneUnusedLayers(usedLayers) {\n var usedLayerMap = {};\n usedLayers.forEach(function(usedLayer) {\n usedLayerMap[usedLayer] = true;\n });\n for (var layerId in this.layerIndexes) {\n if (!usedLayerMap[layerId]) {\n delete this.layerIndexes[layerId];\n }\n }\n };\n var emitValidationErrors = function(evented, errors) {\n return performance2.emitValidationErrors(evented, errors && errors.filter(function(error) {\n return error.identifier !== \"source.canvas\";\n }));\n };\n var supportedDiffOperations = performance2.pick(operations, [\n \"addLayer\",\n \"removeLayer\",\n \"setPaintProperty\",\n \"setLayoutProperty\",\n \"setFilter\",\n \"addSource\",\n \"removeSource\",\n \"setLayerZoomRange\",\n \"setLight\",\n \"setTransition\",\n \"setGeoJSONSourceData\"\n ]);\n var ignoredDiffOperations = performance2.pick(operations, [\n \"setCenter\",\n \"setZoom\",\n \"setBearing\",\n \"setPitch\"\n ]);\n var empty = emptyStyle();\n var Style = function(Evented) {\n function Style2(map, options) {\n var this$1 = this;\n if (options === void 0)\n options = {};\n Evented.call(this);\n this.map = map;\n this.dispatcher = new Dispatcher(getGlobalWorkerPool(), this);\n this.imageManager = new ImageManager();\n this.imageManager.setEventedParent(this);\n this.glyphManager = new GlyphManager(map._requestManager, options.localIdeographFontFamily);\n this.lineAtlas = new LineAtlas(256, 512);\n this.crossTileSymbolIndex = new CrossTileSymbolIndex();\n this._layers = {};\n this._serializedLayers = {};\n this._order = [];\n this.sourceCaches = {};\n this.zoomHistory = new performance2.ZoomHistory();\n this._loaded = false;\n this._availableImages = [];\n this._resetUpdates();\n this.dispatcher.broadcast(\"setReferrer\", performance2.getReferrer());\n var self2 = this;\n this._rtlTextPluginCallback = Style2.registerForPluginStateChange(function(event) {\n var state = {\n pluginStatus: event.pluginStatus,\n pluginURL: event.pluginURL\n };\n self2.dispatcher.broadcast(\"syncRTLPluginState\", state, function(err, results) {\n performance2.triggerPluginCompletionEvent(err);\n if (results) {\n var allComplete = results.every(function(elem) {\n return elem;\n });\n if (allComplete) {\n for (var id in self2.sourceCaches) {\n self2.sourceCaches[id].reload();\n }\n }\n }\n });\n });\n this.on(\"data\", function(event) {\n if (event.dataType !== \"source\" || event.sourceDataType !== \"metadata\") {\n return;\n }\n var sourceCache = this$1.sourceCaches[event.sourceId];\n if (!sourceCache) {\n return;\n }\n var source = sourceCache.getSource();\n if (!source || !source.vectorLayerIds) {\n return;\n }\n for (var layerId in this$1._layers) {\n var layer = this$1._layers[layerId];\n if (layer.source === source.id) {\n this$1._validateLayer(layer);\n }\n }\n });\n }\n if (Evented)\n Style2.__proto__ = Evented;\n Style2.prototype = Object.create(Evented && Evented.prototype);\n Style2.prototype.constructor = Style2;\n Style2.prototype.loadURL = function loadURL(url, options) {\n var this$1 = this;\n if (options === void 0)\n options = {};\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"style\" }));\n var validate = typeof options.validate === \"boolean\" ? options.validate : !performance2.isMapboxURL(url);\n url = this.map._requestManager.normalizeStyleURL(url, options.accessToken);\n var request = this.map._requestManager.transformRequest(url, performance2.ResourceType.Style);\n this._request = performance2.getJSON(request, function(error, json) {\n this$1._request = null;\n if (error) {\n this$1.fire(new performance2.ErrorEvent(error));\n } else if (json) {\n this$1._load(json, validate);\n }\n });\n };\n Style2.prototype.loadJSON = function loadJSON(json, options) {\n var this$1 = this;\n if (options === void 0)\n options = {};\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"style\" }));\n this._request = performance2.browser.frame(function() {\n this$1._request = null;\n this$1._load(json, options.validate !== false);\n });\n };\n Style2.prototype.loadEmpty = function loadEmpty() {\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"style\" }));\n this._load(empty, false);\n };\n Style2.prototype._load = function _load(json, validate) {\n if (validate && emitValidationErrors(this, performance2.validateStyle(json))) {\n return;\n }\n this._loaded = true;\n this.stylesheet = json;\n for (var id in json.sources) {\n this.addSource(id, json.sources[id], { validate: false });\n }\n if (json.sprite) {\n this._loadSprite(json.sprite);\n } else {\n this.imageManager.setLoaded(true);\n }\n this.glyphManager.setURL(json.glyphs);\n var layers = derefLayers(this.stylesheet.layers);\n this._order = layers.map(function(layer2) {\n return layer2.id;\n });\n this._layers = {};\n this._serializedLayers = {};\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer = list[i];\n layer = performance2.createStyleLayer(layer);\n layer.setEventedParent(this, { layer: { id: layer.id } });\n this._layers[layer.id] = layer;\n this._serializedLayers[layer.id] = layer.serialize();\n }\n this.dispatcher.broadcast(\"setLayers\", this._serializeLayers(this._order));\n this.light = new Light(this.stylesheet.light);\n this.fire(new performance2.Event(\"data\", { dataType: \"style\" }));\n this.fire(new performance2.Event(\"style.load\"));\n };\n Style2.prototype._loadSprite = function _loadSprite(url) {\n var this$1 = this;\n this._spriteRequest = loadSprite(url, this.map._requestManager, function(err, images) {\n this$1._spriteRequest = null;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (images) {\n for (var id in images) {\n this$1.imageManager.addImage(id, images[id]);\n }\n }\n this$1.imageManager.setLoaded(true);\n this$1._availableImages = this$1.imageManager.listImages();\n this$1.dispatcher.broadcast(\"setImages\", this$1._availableImages);\n this$1.fire(new performance2.Event(\"data\", { dataType: \"style\" }));\n });\n };\n Style2.prototype._validateLayer = function _validateLayer(layer) {\n var sourceCache = this.sourceCaches[layer.source];\n if (!sourceCache) {\n return;\n }\n var sourceLayer = layer.sourceLayer;\n if (!sourceLayer) {\n return;\n }\n var source = sourceCache.getSource();\n if (source.type === \"geojson\" || source.vectorLayerIds && source.vectorLayerIds.indexOf(sourceLayer) === -1) {\n this.fire(new performance2.ErrorEvent(new Error('Source layer \"' + sourceLayer + '\" does not exist on source \"' + source.id + '\" as specified by style layer \"' + layer.id + '\"')));\n }\n };\n Style2.prototype.loaded = function loaded() {\n if (!this._loaded) {\n return false;\n }\n if (Object.keys(this._updatedSources).length) {\n return false;\n }\n for (var id in this.sourceCaches) {\n if (!this.sourceCaches[id].loaded()) {\n return false;\n }\n }\n if (!this.imageManager.isLoaded()) {\n return false;\n }\n return true;\n };\n Style2.prototype._serializeLayers = function _serializeLayers(ids) {\n var serializedLayers = [];\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n var layer = this._layers[id];\n if (layer.type !== \"custom\") {\n serializedLayers.push(layer.serialize());\n }\n }\n return serializedLayers;\n };\n Style2.prototype.hasTransitions = function hasTransitions() {\n if (this.light && this.light.hasTransition()) {\n return true;\n }\n for (var id in this.sourceCaches) {\n if (this.sourceCaches[id].hasTransition()) {\n return true;\n }\n }\n for (var id$1 in this._layers) {\n if (this._layers[id$1].hasTransition()) {\n return true;\n }\n }\n return false;\n };\n Style2.prototype._checkLoaded = function _checkLoaded() {\n if (!this._loaded) {\n throw new Error(\"Style is not done loading\");\n }\n };\n Style2.prototype.update = function update(parameters) {\n if (!this._loaded) {\n return;\n }\n var changed = this._changed;\n if (this._changed) {\n var updatedIds = Object.keys(this._updatedLayers);\n var removedIds = Object.keys(this._removedLayers);\n if (updatedIds.length || removedIds.length) {\n this._updateWorkerLayers(updatedIds, removedIds);\n }\n for (var id in this._updatedSources) {\n var action = this._updatedSources[id];\n if (action === \"reload\") {\n this._reloadSource(id);\n } else if (action === \"clear\") {\n this._clearSource(id);\n }\n }\n this._updateTilesForChangedImages();\n for (var id$1 in this._updatedPaintProps) {\n this._layers[id$1].updateTransitions(parameters);\n }\n this.light.updateTransitions(parameters);\n this._resetUpdates();\n }\n var sourcesUsedBefore = {};\n for (var sourceId in this.sourceCaches) {\n var sourceCache = this.sourceCaches[sourceId];\n sourcesUsedBefore[sourceId] = sourceCache.used;\n sourceCache.used = false;\n }\n for (var i = 0, list = this._order; i < list.length; i += 1) {\n var layerId = list[i];\n var layer = this._layers[layerId];\n layer.recalculate(parameters, this._availableImages);\n if (!layer.isHidden(parameters.zoom) && layer.source) {\n this.sourceCaches[layer.source].used = true;\n }\n }\n for (var sourceId$1 in sourcesUsedBefore) {\n var sourceCache$1 = this.sourceCaches[sourceId$1];\n if (sourcesUsedBefore[sourceId$1] !== sourceCache$1.used) {\n sourceCache$1.fire(new performance2.Event(\"data\", {\n sourceDataType: \"visibility\",\n dataType: \"source\",\n sourceId: sourceId$1\n }));\n }\n }\n this.light.recalculate(parameters);\n this.z = parameters.zoom;\n if (changed) {\n this.fire(new performance2.Event(\"data\", { dataType: \"style\" }));\n }\n };\n Style2.prototype._updateTilesForChangedImages = function _updateTilesForChangedImages() {\n var changedImages = Object.keys(this._changedImages);\n if (changedImages.length) {\n for (var name2 in this.sourceCaches) {\n this.sourceCaches[name2].reloadTilesForDependencies([\n \"icons\",\n \"patterns\"\n ], changedImages);\n }\n this._changedImages = {};\n }\n };\n Style2.prototype._updateWorkerLayers = function _updateWorkerLayers(updatedIds, removedIds) {\n this.dispatcher.broadcast(\"updateLayers\", {\n layers: this._serializeLayers(updatedIds),\n removedIds\n });\n };\n Style2.prototype._resetUpdates = function _resetUpdates() {\n this._changed = false;\n this._updatedLayers = {};\n this._removedLayers = {};\n this._updatedSources = {};\n this._updatedPaintProps = {};\n this._changedImages = {};\n };\n Style2.prototype.setState = function setState(nextState) {\n var this$1 = this;\n this._checkLoaded();\n if (emitValidationErrors(this, performance2.validateStyle(nextState))) {\n return false;\n }\n nextState = performance2.clone$1(nextState);\n nextState.layers = derefLayers(nextState.layers);\n var changes = diffStyles(this.serialize(), nextState).filter(function(op) {\n return !(op.command in ignoredDiffOperations);\n });\n if (changes.length === 0) {\n return false;\n }\n var unimplementedOps = changes.filter(function(op) {\n return !(op.command in supportedDiffOperations);\n });\n if (unimplementedOps.length > 0) {\n throw new Error(\"Unimplemented: \" + unimplementedOps.map(function(op) {\n return op.command;\n }).join(\", \") + \".\");\n }\n changes.forEach(function(op) {\n if (op.command === \"setTransition\") {\n return;\n }\n this$1[op.command].apply(this$1, op.args);\n });\n this.stylesheet = nextState;\n return true;\n };\n Style2.prototype.addImage = function addImage(id, image) {\n if (this.getImage(id)) {\n return this.fire(new performance2.ErrorEvent(new Error(\"An image with this name already exists.\")));\n }\n this.imageManager.addImage(id, image);\n this._afterImageUpdated(id);\n };\n Style2.prototype.updateImage = function updateImage(id, image) {\n this.imageManager.updateImage(id, image);\n };\n Style2.prototype.getImage = function getImage(id) {\n return this.imageManager.getImage(id);\n };\n Style2.prototype.removeImage = function removeImage(id) {\n if (!this.getImage(id)) {\n return this.fire(new performance2.ErrorEvent(new Error(\"No image with this name exists.\")));\n }\n this.imageManager.removeImage(id);\n this._afterImageUpdated(id);\n };\n Style2.prototype._afterImageUpdated = function _afterImageUpdated(id) {\n this._availableImages = this.imageManager.listImages();\n this._changedImages[id] = true;\n this._changed = true;\n this.dispatcher.broadcast(\"setImages\", this._availableImages);\n this.fire(new performance2.Event(\"data\", { dataType: \"style\" }));\n };\n Style2.prototype.listImages = function listImages() {\n this._checkLoaded();\n return this.imageManager.listImages();\n };\n Style2.prototype.addSource = function addSource2(id, source, options) {\n var this$1 = this;\n if (options === void 0)\n options = {};\n this._checkLoaded();\n if (this.sourceCaches[id] !== void 0) {\n throw new Error(\"There is already a source with this ID\");\n }\n if (!source.type) {\n throw new Error(\"The type property must be defined, but only the following properties were given: \" + Object.keys(source).join(\", \") + \".\");\n }\n var builtIns = [\n \"vector\",\n \"raster\",\n \"geojson\",\n \"video\",\n \"image\"\n ];\n var shouldValidate = builtIns.indexOf(source.type) >= 0;\n if (shouldValidate && this._validate(performance2.validateStyle.source, \"sources.\" + id, source, null, options)) {\n return;\n }\n if (this.map && this.map._collectResourceTiming) {\n source.collectResourceTiming = true;\n }\n var sourceCache = this.sourceCaches[id] = new SourceCache(id, source, this.dispatcher);\n sourceCache.style = this;\n sourceCache.setEventedParent(this, function() {\n return {\n isSourceLoaded: this$1.loaded(),\n source: sourceCache.serialize(),\n sourceId: id\n };\n });\n sourceCache.onAdd(this.map);\n this._changed = true;\n };\n Style2.prototype.removeSource = function removeSource2(id) {\n this._checkLoaded();\n if (this.sourceCaches[id] === void 0) {\n throw new Error(\"There is no source with this ID\");\n }\n for (var layerId in this._layers) {\n if (this._layers[layerId].source === id) {\n return this.fire(new performance2.ErrorEvent(new Error('Source \"' + id + '\" cannot be removed while layer \"' + layerId + '\" is using it.')));\n }\n }\n var sourceCache = this.sourceCaches[id];\n delete this.sourceCaches[id];\n delete this._updatedSources[id];\n sourceCache.fire(new performance2.Event(\"data\", {\n sourceDataType: \"metadata\",\n dataType: \"source\",\n sourceId: id\n }));\n sourceCache.setEventedParent(null);\n sourceCache.clearTiles();\n if (sourceCache.onRemove) {\n sourceCache.onRemove(this.map);\n }\n this._changed = true;\n };\n Style2.prototype.setGeoJSONSourceData = function setGeoJSONSourceData(id, data) {\n this._checkLoaded();\n var geojsonSource = this.sourceCaches[id].getSource();\n geojsonSource.setData(data);\n this._changed = true;\n };\n Style2.prototype.getSource = function getSource(id) {\n return this.sourceCaches[id] && this.sourceCaches[id].getSource();\n };\n Style2.prototype.addLayer = function addLayer(layerObject, before, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var id = layerObject.id;\n if (this.getLayer(id)) {\n this.fire(new performance2.ErrorEvent(new Error('Layer with id \"' + id + '\" already exists on this map')));\n return;\n }\n var layer;\n if (layerObject.type === \"custom\") {\n if (emitValidationErrors(this, performance2.validateCustomStyleLayer(layerObject))) {\n return;\n }\n layer = performance2.createStyleLayer(layerObject);\n } else {\n if (typeof layerObject.source === \"object\") {\n this.addSource(id, layerObject.source);\n layerObject = performance2.clone$1(layerObject);\n layerObject = performance2.extend(layerObject, { source: id });\n }\n if (this._validate(performance2.validateStyle.layer, \"layers.\" + id, layerObject, { arrayIndex: -1 }, options)) {\n return;\n }\n layer = performance2.createStyleLayer(layerObject);\n this._validateLayer(layer);\n layer.setEventedParent(this, { layer: { id } });\n this._serializedLayers[layer.id] = layer.serialize();\n }\n var index = before ? this._order.indexOf(before) : this._order.length;\n if (before && index === -1) {\n this.fire(new performance2.ErrorEvent(new Error('Layer with id \"' + before + '\" does not exist on this map.')));\n return;\n }\n this._order.splice(index, 0, id);\n this._layerOrderChanged = true;\n this._layers[id] = layer;\n if (this._removedLayers[id] && layer.source && layer.type !== \"custom\") {\n var removed = this._removedLayers[id];\n delete this._removedLayers[id];\n if (removed.type !== layer.type) {\n this._updatedSources[layer.source] = \"clear\";\n } else {\n this._updatedSources[layer.source] = \"reload\";\n this.sourceCaches[layer.source].pause();\n }\n }\n this._updateLayer(layer);\n if (layer.onAdd) {\n layer.onAdd(this.map);\n }\n };\n Style2.prototype.moveLayer = function moveLayer(id, before) {\n this._checkLoaded();\n this._changed = true;\n var layer = this._layers[id];\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + id + \"' does not exist in the map's style and cannot be moved.\")));\n return;\n }\n if (id === before) {\n return;\n }\n var index = this._order.indexOf(id);\n this._order.splice(index, 1);\n var newIndex = before ? this._order.indexOf(before) : this._order.length;\n if (before && newIndex === -1) {\n this.fire(new performance2.ErrorEvent(new Error('Layer with id \"' + before + '\" does not exist on this map.')));\n return;\n }\n this._order.splice(newIndex, 0, id);\n this._layerOrderChanged = true;\n };\n Style2.prototype.removeLayer = function removeLayer(id) {\n this._checkLoaded();\n var layer = this._layers[id];\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + id + \"' does not exist in the map's style and cannot be removed.\")));\n return;\n }\n layer.setEventedParent(null);\n var index = this._order.indexOf(id);\n this._order.splice(index, 1);\n this._layerOrderChanged = true;\n this._changed = true;\n this._removedLayers[id] = layer;\n delete this._layers[id];\n delete this._serializedLayers[id];\n delete this._updatedLayers[id];\n delete this._updatedPaintProps[id];\n if (layer.onRemove) {\n layer.onRemove(this.map);\n }\n };\n Style2.prototype.getLayer = function getLayer(id) {\n return this._layers[id];\n };\n Style2.prototype.hasLayer = function hasLayer(id) {\n return id in this._layers;\n };\n Style2.prototype.setLayerZoomRange = function setLayerZoomRange(layerId, minzoom, maxzoom) {\n this._checkLoaded();\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot have zoom extent.\")));\n return;\n }\n if (layer.minzoom === minzoom && layer.maxzoom === maxzoom) {\n return;\n }\n if (minzoom != null) {\n layer.minzoom = minzoom;\n }\n if (maxzoom != null) {\n layer.maxzoom = maxzoom;\n }\n this._updateLayer(layer);\n };\n Style2.prototype.setFilter = function setFilter(layerId, filter, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot be filtered.\")));\n return;\n }\n if (performance2.deepEqual(layer.filter, filter)) {\n return;\n }\n if (filter === null || filter === void 0) {\n layer.filter = void 0;\n this._updateLayer(layer);\n return;\n }\n if (this._validate(performance2.validateStyle.filter, \"layers.\" + layer.id + \".filter\", filter, null, options)) {\n return;\n }\n layer.filter = performance2.clone$1(filter);\n this._updateLayer(layer);\n };\n Style2.prototype.getFilter = function getFilter(layer) {\n return performance2.clone$1(this.getLayer(layer).filter);\n };\n Style2.prototype.setLayoutProperty = function setLayoutProperty(layerId, name2, value, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot be styled.\")));\n return;\n }\n if (performance2.deepEqual(layer.getLayoutProperty(name2), value)) {\n return;\n }\n layer.setLayoutProperty(name2, value, options);\n this._updateLayer(layer);\n };\n Style2.prototype.getLayoutProperty = function getLayoutProperty(layerId, name2) {\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style.\")));\n return;\n }\n return layer.getLayoutProperty(name2);\n };\n Style2.prototype.setPaintProperty = function setPaintProperty(layerId, name2, value, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot be styled.\")));\n return;\n }\n if (performance2.deepEqual(layer.getPaintProperty(name2), value)) {\n return;\n }\n var requiresRelayout = layer.setPaintProperty(name2, value, options);\n if (requiresRelayout) {\n this._updateLayer(layer);\n }\n this._changed = true;\n this._updatedPaintProps[layerId] = true;\n };\n Style2.prototype.getPaintProperty = function getPaintProperty(layer, name2) {\n return this.getLayer(layer).getPaintProperty(name2);\n };\n Style2.prototype.setFeatureState = function setFeatureState(target, state) {\n this._checkLoaded();\n var sourceId = target.source;\n var sourceLayer = target.sourceLayer;\n var sourceCache = this.sourceCaches[sourceId];\n if (sourceCache === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The source '\" + sourceId + \"' does not exist in the map's style.\")));\n return;\n }\n var sourceType = sourceCache.getSource().type;\n if (sourceType === \"geojson\" && sourceLayer) {\n this.fire(new performance2.ErrorEvent(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\")));\n return;\n }\n if (sourceType === \"vector\" && !sourceLayer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n return;\n }\n if (target.id === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The feature id parameter must be provided.\")));\n }\n sourceCache.setFeatureState(sourceLayer, target.id, state);\n };\n Style2.prototype.removeFeatureState = function removeFeatureState(target, key) {\n this._checkLoaded();\n var sourceId = target.source;\n var sourceCache = this.sourceCaches[sourceId];\n if (sourceCache === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The source '\" + sourceId + \"' does not exist in the map's style.\")));\n return;\n }\n var sourceType = sourceCache.getSource().type;\n var sourceLayer = sourceType === \"vector\" ? target.sourceLayer : void 0;\n if (sourceType === \"vector\" && !sourceLayer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n return;\n }\n if (key && (typeof target.id !== \"string\" && typeof target.id !== \"number\")) {\n this.fire(new performance2.ErrorEvent(new Error(\"A feature id is required to remove its specific state property.\")));\n return;\n }\n sourceCache.removeFeatureState(sourceLayer, target.id, key);\n };\n Style2.prototype.getFeatureState = function getFeatureState(target) {\n this._checkLoaded();\n var sourceId = target.source;\n var sourceLayer = target.sourceLayer;\n var sourceCache = this.sourceCaches[sourceId];\n if (sourceCache === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The source '\" + sourceId + \"' does not exist in the map's style.\")));\n return;\n }\n var sourceType = sourceCache.getSource().type;\n if (sourceType === \"vector\" && !sourceLayer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n return;\n }\n if (target.id === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The feature id parameter must be provided.\")));\n }\n return sourceCache.getFeatureState(sourceLayer, target.id);\n };\n Style2.prototype.getTransition = function getTransition() {\n return performance2.extend({\n duration: 300,\n delay: 0\n }, this.stylesheet && this.stylesheet.transition);\n };\n Style2.prototype.serialize = function serialize() {\n return performance2.filterObject({\n version: this.stylesheet.version,\n name: this.stylesheet.name,\n metadata: this.stylesheet.metadata,\n light: this.stylesheet.light,\n center: this.stylesheet.center,\n zoom: this.stylesheet.zoom,\n bearing: this.stylesheet.bearing,\n pitch: this.stylesheet.pitch,\n sprite: this.stylesheet.sprite,\n glyphs: this.stylesheet.glyphs,\n transition: this.stylesheet.transition,\n sources: performance2.mapObject(this.sourceCaches, function(source) {\n return source.serialize();\n }),\n layers: this._serializeLayers(this._order)\n }, function(value) {\n return value !== void 0;\n });\n };\n Style2.prototype._updateLayer = function _updateLayer(layer) {\n this._updatedLayers[layer.id] = true;\n if (layer.source && !this._updatedSources[layer.source] && this.sourceCaches[layer.source].getSource().type !== \"raster\") {\n this._updatedSources[layer.source] = \"reload\";\n this.sourceCaches[layer.source].pause();\n }\n this._changed = true;\n };\n Style2.prototype._flattenAndSortRenderedFeatures = function _flattenAndSortRenderedFeatures(sourceResults) {\n var this$1 = this;\n var isLayer3D = function(layerId2) {\n return this$1._layers[layerId2].type === \"fill-extrusion\";\n };\n var layerIndex = {};\n var features3D = [];\n for (var l = this._order.length - 1; l >= 0; l--) {\n var layerId = this._order[l];\n if (isLayer3D(layerId)) {\n layerIndex[layerId] = l;\n for (var i$2 = 0, list$1 = sourceResults; i$2 < list$1.length; i$2 += 1) {\n var sourceResult = list$1[i$2];\n var layerFeatures = sourceResult[layerId];\n if (layerFeatures) {\n for (var i$1 = 0, list = layerFeatures; i$1 < list.length; i$1 += 1) {\n var featureWrapper = list[i$1];\n features3D.push(featureWrapper);\n }\n }\n }\n }\n }\n features3D.sort(function(a, b) {\n return b.intersectionZ - a.intersectionZ;\n });\n var features = [];\n for (var l$1 = this._order.length - 1; l$1 >= 0; l$1--) {\n var layerId$1 = this._order[l$1];\n if (isLayer3D(layerId$1)) {\n for (var i = features3D.length - 1; i >= 0; i--) {\n var topmost3D = features3D[i].feature;\n if (layerIndex[topmost3D.layer.id] < l$1) {\n break;\n }\n features.push(topmost3D);\n features3D.pop();\n }\n } else {\n for (var i$4 = 0, list$3 = sourceResults; i$4 < list$3.length; i$4 += 1) {\n var sourceResult$1 = list$3[i$4];\n var layerFeatures$1 = sourceResult$1[layerId$1];\n if (layerFeatures$1) {\n for (var i$3 = 0, list$2 = layerFeatures$1; i$3 < list$2.length; i$3 += 1) {\n var featureWrapper$1 = list$2[i$3];\n features.push(featureWrapper$1.feature);\n }\n }\n }\n }\n }\n return features;\n };\n Style2.prototype.queryRenderedFeatures = function queryRenderedFeatures$1(queryGeometry, params, transform) {\n if (params && params.filter) {\n this._validate(performance2.validateStyle.filter, \"queryRenderedFeatures.filter\", params.filter, null, params);\n }\n var includedSources = {};\n if (params && params.layers) {\n if (!Array.isArray(params.layers)) {\n this.fire(new performance2.ErrorEvent(new Error(\"parameters.layers must be an Array.\")));\n return [];\n }\n for (var i = 0, list = params.layers; i < list.length; i += 1) {\n var layerId = list[i];\n var layer = this._layers[layerId];\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot be queried for features.\")));\n return [];\n }\n includedSources[layer.source] = true;\n }\n }\n var sourceResults = [];\n params.availableImages = this._availableImages;\n for (var id in this.sourceCaches) {\n if (params.layers && !includedSources[id]) {\n continue;\n }\n sourceResults.push(queryRenderedFeatures(this.sourceCaches[id], this._layers, this._serializedLayers, queryGeometry, params, transform));\n }\n if (this.placement) {\n sourceResults.push(queryRenderedSymbols(this._layers, this._serializedLayers, this.sourceCaches, queryGeometry, params, this.placement.collisionIndex, this.placement.retainedQueryData));\n }\n return this._flattenAndSortRenderedFeatures(sourceResults);\n };\n Style2.prototype.querySourceFeatures = function querySourceFeatures$1(sourceID, params) {\n if (params && params.filter) {\n this._validate(performance2.validateStyle.filter, \"querySourceFeatures.filter\", params.filter, null, params);\n }\n var sourceCache = this.sourceCaches[sourceID];\n return sourceCache ? querySourceFeatures(sourceCache, params) : [];\n };\n Style2.prototype.addSourceType = function addSourceType(name2, SourceType, callback) {\n if (Style2.getSourceType(name2)) {\n return callback(new Error('A source type called \"' + name2 + '\" already exists.'));\n }\n Style2.setSourceType(name2, SourceType);\n if (!SourceType.workerSourceURL) {\n return callback(null, null);\n }\n this.dispatcher.broadcast(\"loadWorkerSource\", {\n name: name2,\n url: SourceType.workerSourceURL\n }, callback);\n };\n Style2.prototype.getLight = function getLight() {\n return this.light.getLight();\n };\n Style2.prototype.setLight = function setLight(lightOptions, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var light = this.light.getLight();\n var _update = false;\n for (var key in lightOptions) {\n if (!performance2.deepEqual(lightOptions[key], light[key])) {\n _update = true;\n break;\n }\n }\n if (!_update) {\n return;\n }\n var parameters = {\n now: performance2.browser.now(),\n transition: performance2.extend({\n duration: 300,\n delay: 0\n }, this.stylesheet.transition)\n };\n this.light.setLight(lightOptions, options);\n this.light.updateTransitions(parameters);\n };\n Style2.prototype._validate = function _validate(validate, key, value, props, options) {\n if (options === void 0)\n options = {};\n if (options && options.validate === false) {\n return false;\n }\n return emitValidationErrors(this, validate.call(performance2.validateStyle, performance2.extend({\n key,\n style: this.serialize(),\n value,\n styleSpec: performance2.styleSpec\n }, props)));\n };\n Style2.prototype._remove = function _remove() {\n if (this._request) {\n this._request.cancel();\n this._request = null;\n }\n if (this._spriteRequest) {\n this._spriteRequest.cancel();\n this._spriteRequest = null;\n }\n performance2.evented.off(\"pluginStateChange\", this._rtlTextPluginCallback);\n for (var layerId in this._layers) {\n var layer = this._layers[layerId];\n layer.setEventedParent(null);\n }\n for (var id in this.sourceCaches) {\n this.sourceCaches[id].clearTiles();\n this.sourceCaches[id].setEventedParent(null);\n }\n this.imageManager.setEventedParent(null);\n this.setEventedParent(null);\n this.dispatcher.remove();\n };\n Style2.prototype._clearSource = function _clearSource(id) {\n this.sourceCaches[id].clearTiles();\n };\n Style2.prototype._reloadSource = function _reloadSource(id) {\n this.sourceCaches[id].resume();\n this.sourceCaches[id].reload();\n };\n Style2.prototype._updateSources = function _updateSources(transform) {\n for (var id in this.sourceCaches) {\n this.sourceCaches[id].update(transform);\n }\n };\n Style2.prototype._generateCollisionBoxes = function _generateCollisionBoxes() {\n for (var id in this.sourceCaches) {\n this._reloadSource(id);\n }\n };\n Style2.prototype._updatePlacement = function _updatePlacement(transform, showCollisionBoxes, fadeDuration, crossSourceCollisions, forceFullPlacement) {\n if (forceFullPlacement === void 0)\n forceFullPlacement = false;\n var symbolBucketsChanged = false;\n var placementCommitted = false;\n var layerTiles = {};\n for (var i = 0, list = this._order; i < list.length; i += 1) {\n var layerID = list[i];\n var styleLayer = this._layers[layerID];\n if (styleLayer.type !== \"symbol\") {\n continue;\n }\n if (!layerTiles[styleLayer.source]) {\n var sourceCache = this.sourceCaches[styleLayer.source];\n layerTiles[styleLayer.source] = sourceCache.getRenderableIds(true).map(function(id) {\n return sourceCache.getTileByID(id);\n }).sort(function(a, b) {\n return b.tileID.overscaledZ - a.tileID.overscaledZ || (a.tileID.isLessThan(b.tileID) ? -1 : 1);\n });\n }\n var layerBucketsChanged = this.crossTileSymbolIndex.addLayer(styleLayer, layerTiles[styleLayer.source], transform.center.lng);\n symbolBucketsChanged = symbolBucketsChanged || layerBucketsChanged;\n }\n this.crossTileSymbolIndex.pruneUnusedLayers(this._order);\n forceFullPlacement = forceFullPlacement || this._layerOrderChanged || fadeDuration === 0;\n if (forceFullPlacement || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(performance2.browser.now(), transform.zoom)) {\n this.pauseablePlacement = new PauseablePlacement(transform, this._order, forceFullPlacement, showCollisionBoxes, fadeDuration, crossSourceCollisions, this.placement);\n this._layerOrderChanged = false;\n }\n if (this.pauseablePlacement.isDone()) {\n this.placement.setStale();\n } else {\n this.pauseablePlacement.continuePlacement(this._order, this._layers, layerTiles);\n if (this.pauseablePlacement.isDone()) {\n this.placement = this.pauseablePlacement.commit(performance2.browser.now());\n placementCommitted = true;\n }\n if (symbolBucketsChanged) {\n this.pauseablePlacement.placement.setStale();\n }\n }\n if (placementCommitted || symbolBucketsChanged) {\n for (var i$1 = 0, list$1 = this._order; i$1 < list$1.length; i$1 += 1) {\n var layerID$1 = list$1[i$1];\n var styleLayer$1 = this._layers[layerID$1];\n if (styleLayer$1.type !== \"symbol\") {\n continue;\n }\n this.placement.updateLayerOpacities(styleLayer$1, layerTiles[styleLayer$1.source]);\n }\n }\n var needsRerender = !this.pauseablePlacement.isDone() || this.placement.hasTransitions(performance2.browser.now());\n return needsRerender;\n };\n Style2.prototype._releaseSymbolFadeTiles = function _releaseSymbolFadeTiles() {\n for (var id in this.sourceCaches) {\n this.sourceCaches[id].releaseSymbolFadeTiles();\n }\n };\n Style2.prototype.getImages = function getImages(mapId, params, callback) {\n this.imageManager.getImages(params.icons, callback);\n this._updateTilesForChangedImages();\n var sourceCache = this.sourceCaches[params.source];\n if (sourceCache) {\n sourceCache.setDependencies(params.tileID.key, params.type, params.icons);\n }\n };\n Style2.prototype.getGlyphs = function getGlyphs(mapId, params, callback) {\n this.glyphManager.getGlyphs(params.stacks, callback);\n };\n Style2.prototype.getResource = function getResource(mapId, params, callback) {\n return performance2.makeRequest(params, callback);\n };\n return Style2;\n }(performance2.Evented);\n Style.getSourceType = getType;\n Style.setSourceType = setType;\n Style.registerForPluginStateChange = performance2.registerForPluginStateChange;\n var posAttributes = performance2.createLayout([{\n name: \"a_pos\",\n type: \"Int16\",\n components: 2\n }]);\n var preludeFrag = \"#ifdef GL_ES\\nprecision mediump float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\";\n var preludeVert = \"#ifdef GL_ES\\nprecision highp float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\";\n var backgroundFrag = \"uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var backgroundVert = \"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\";\n var backgroundPatternFrag = \"uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var backgroundPatternVert = \"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\";\n var circleFrag = \"varying vec3 v_data;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var circleVert = \"uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main(void) {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}\";\n var clippingMaskFrag = \"void main() {gl_FragColor=vec4(1.0);}\";\n var clippingMaskVert = \"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\";\n var heatmapFrag = \"uniform highp float u_intensity;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main() {\\n#pragma mapbox: initialize highp float weight\\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var heatmapVert = \"uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#pragma mapbox: define mediump float radius\\nconst highp float ZERO=1.0/255.0/16.0;\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main(void) {\\n#pragma mapbox: initialize highp float weight\\n#pragma mapbox: initialize mediump float radius\\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}\";\n var heatmapTextureFrag = \"uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(0.0);\\n#endif\\n}\";\n var heatmapTextureVert = \"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\";\n var collisionBoxFrag = \"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\";\n var collisionBoxVert = \"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}\";\n var collisionCircleFrag = \"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\";\n var collisionCircleVert = \"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\";\n var debugFrag = \"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\";\n var debugVert = \"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}\";\n var fillFrag = \"#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_FragColor=color*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillVert = \"attribute vec2 a_pos;uniform mat4 u_matrix;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);}\";\n var fillOutlineFrag = \"varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillOutlineVert = \"attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\";\n var fillOutlinePatternFrag = \"uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillOutlinePatternVert = \"uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\";\n var fillPatternFrag = \"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillPatternVert = \"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}\";\n var fillExtrusionFrag = \"varying vec4 v_color;void main() {gl_FragColor=v_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillExtrusionVert = \"uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp vec4 color\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp vec4 color\\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}\";\n var fillExtrusionPatternFrag = \"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillExtrusionPatternVert = \"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\\n? a_pos\\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}\";\n var hillshadePrepareFrag = \"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var hillshadePrepareVert = \"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\";\n var hillshadeFrag = \"uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\\n#define PI 3.141592653589793\\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var hillshadeVert = \"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\";\n var lineFrag = \"uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var lineVert = \"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}\";\n var lineGradientFrag = \"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var lineGradientVert = \"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}\";\n var linePatternFrag = \"uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var linePatternVert = \"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}\";\n var lineSDFFrag = \"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var lineSDFVert = \"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}\";\n var rasterFrag = \"uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var rasterVert = \"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\";\n var symbolIconFrag = \"uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var symbolIconVert = \"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}\";\n var symbolSDFFrag = \"#define SDF_PX 8.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var symbolSDFVert = \"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}\";\n var symbolTextAndIconFrag = \"#define SDF_PX 8.0\\n#define SDF 1.0\\n#define ICON 0.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var symbolTextAndIconVert = \"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}\";\n var prelude = compile(preludeFrag, preludeVert);\n var background = compile(backgroundFrag, backgroundVert);\n var backgroundPattern = compile(backgroundPatternFrag, backgroundPatternVert);\n var circle = compile(circleFrag, circleVert);\n var clippingMask = compile(clippingMaskFrag, clippingMaskVert);\n var heatmap = compile(heatmapFrag, heatmapVert);\n var heatmapTexture = compile(heatmapTextureFrag, heatmapTextureVert);\n var collisionBox = compile(collisionBoxFrag, collisionBoxVert);\n var collisionCircle = compile(collisionCircleFrag, collisionCircleVert);\n var debug = compile(debugFrag, debugVert);\n var fill = compile(fillFrag, fillVert);\n var fillOutline = compile(fillOutlineFrag, fillOutlineVert);\n var fillOutlinePattern = compile(fillOutlinePatternFrag, fillOutlinePatternVert);\n var fillPattern = compile(fillPatternFrag, fillPatternVert);\n var fillExtrusion = compile(fillExtrusionFrag, fillExtrusionVert);\n var fillExtrusionPattern = compile(fillExtrusionPatternFrag, fillExtrusionPatternVert);\n var hillshadePrepare = compile(hillshadePrepareFrag, hillshadePrepareVert);\n var hillshade = compile(hillshadeFrag, hillshadeVert);\n var line = compile(lineFrag, lineVert);\n var lineGradient = compile(lineGradientFrag, lineGradientVert);\n var linePattern = compile(linePatternFrag, linePatternVert);\n var lineSDF = compile(lineSDFFrag, lineSDFVert);\n var raster = compile(rasterFrag, rasterVert);\n var symbolIcon = compile(symbolIconFrag, symbolIconVert);\n var symbolSDF = compile(symbolSDFFrag, symbolSDFVert);\n var symbolTextAndIcon = compile(symbolTextAndIconFrag, symbolTextAndIconVert);\n function compile(fragmentSource, vertexSource) {\n var re = /#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g;\n var staticAttributes = vertexSource.match(/attribute ([\\w]+) ([\\w]+)/g);\n var fragmentUniforms = fragmentSource.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g);\n var vertexUniforms = vertexSource.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g);\n var staticUniforms = vertexUniforms ? vertexUniforms.concat(fragmentUniforms) : fragmentUniforms;\n var fragmentPragmas = {};\n fragmentSource = fragmentSource.replace(re, function(match, operation, precision, type, name2) {\n fragmentPragmas[name2] = true;\n if (operation === \"define\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\nvarying \" + precision + \" \" + type + \" \" + name2 + \";\\n#else\\nuniform \" + precision + \" \" + type + \" u_\" + name2 + \";\\n#endif\\n\";\n } else {\n return \"\\n#ifdef HAS_UNIFORM_u_\" + name2 + \"\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n }\n });\n vertexSource = vertexSource.replace(re, function(match, operation, precision, type, name2) {\n var attrType = type === \"float\" ? \"vec2\" : \"vec4\";\n var unpackType = name2.match(/color/) ? \"color\" : attrType;\n if (fragmentPragmas[name2]) {\n if (operation === \"define\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\nuniform lowp float u_\" + name2 + \"_t;\\nattribute \" + precision + \" \" + attrType + \" a_\" + name2 + \";\\nvarying \" + precision + \" \" + type + \" \" + name2 + \";\\n#else\\nuniform \" + precision + \" \" + type + \" u_\" + name2 + \";\\n#endif\\n\";\n } else {\n if (unpackType === \"vec4\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\n \" + name2 + \" = a_\" + name2 + \";\\n#else\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n } else {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\n \" + name2 + \" = unpack_mix_\" + unpackType + \"(a_\" + name2 + \", u_\" + name2 + \"_t);\\n#else\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n }\n }\n } else {\n if (operation === \"define\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\nuniform lowp float u_\" + name2 + \"_t;\\nattribute \" + precision + \" \" + attrType + \" a_\" + name2 + \";\\n#else\\nuniform \" + precision + \" \" + type + \" u_\" + name2 + \";\\n#endif\\n\";\n } else {\n if (unpackType === \"vec4\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\n \" + precision + \" \" + type + \" \" + name2 + \" = a_\" + name2 + \";\\n#else\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n } else {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\n \" + precision + \" \" + type + \" \" + name2 + \" = unpack_mix_\" + unpackType + \"(a_\" + name2 + \", u_\" + name2 + \"_t);\\n#else\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n }\n }\n }\n });\n return {\n fragmentSource,\n vertexSource,\n staticAttributes,\n staticUniforms\n };\n }\n var shaders = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n prelude,\n background,\n backgroundPattern,\n circle,\n clippingMask,\n heatmap,\n heatmapTexture,\n collisionBox,\n collisionCircle,\n debug,\n fill,\n fillOutline,\n fillOutlinePattern,\n fillPattern,\n fillExtrusion,\n fillExtrusionPattern,\n hillshadePrepare,\n hillshade,\n line,\n lineGradient,\n linePattern,\n lineSDF,\n raster,\n symbolIcon,\n symbolSDF,\n symbolTextAndIcon\n });\n var VertexArrayObject = function VertexArrayObject2() {\n this.boundProgram = null;\n this.boundLayoutVertexBuffer = null;\n this.boundPaintVertexBuffers = [];\n this.boundIndexBuffer = null;\n this.boundVertexOffset = null;\n this.boundDynamicVertexBuffer = null;\n this.vao = null;\n };\n VertexArrayObject.prototype.bind = function bind(context, program, layoutVertexBuffer, paintVertexBuffers, indexBuffer, vertexOffset, dynamicVertexBuffer, dynamicVertexBuffer2) {\n this.context = context;\n var paintBuffersDiffer = this.boundPaintVertexBuffers.length !== paintVertexBuffers.length;\n for (var i = 0; !paintBuffersDiffer && i < paintVertexBuffers.length; i++) {\n if (this.boundPaintVertexBuffers[i] !== paintVertexBuffers[i]) {\n paintBuffersDiffer = true;\n }\n }\n var isFreshBindRequired = !this.vao || this.boundProgram !== program || this.boundLayoutVertexBuffer !== layoutVertexBuffer || paintBuffersDiffer || this.boundIndexBuffer !== indexBuffer || this.boundVertexOffset !== vertexOffset || this.boundDynamicVertexBuffer !== dynamicVertexBuffer || this.boundDynamicVertexBuffer2 !== dynamicVertexBuffer2;\n if (!context.extVertexArrayObject || isFreshBindRequired) {\n this.freshBind(program, layoutVertexBuffer, paintVertexBuffers, indexBuffer, vertexOffset, dynamicVertexBuffer, dynamicVertexBuffer2);\n } else {\n context.bindVertexArrayOES.set(this.vao);\n if (dynamicVertexBuffer) {\n dynamicVertexBuffer.bind();\n }\n if (indexBuffer && indexBuffer.dynamicDraw) {\n indexBuffer.bind();\n }\n if (dynamicVertexBuffer2) {\n dynamicVertexBuffer2.bind();\n }\n }\n };\n VertexArrayObject.prototype.freshBind = function freshBind(program, layoutVertexBuffer, paintVertexBuffers, indexBuffer, vertexOffset, dynamicVertexBuffer, dynamicVertexBuffer2) {\n var numPrevAttributes;\n var numNextAttributes = program.numAttributes;\n var context = this.context;\n var gl2 = context.gl;\n if (context.extVertexArrayObject) {\n if (this.vao) {\n this.destroy();\n }\n this.vao = context.extVertexArrayObject.createVertexArrayOES();\n context.bindVertexArrayOES.set(this.vao);\n numPrevAttributes = 0;\n this.boundProgram = program;\n this.boundLayoutVertexBuffer = layoutVertexBuffer;\n this.boundPaintVertexBuffers = paintVertexBuffers;\n this.boundIndexBuffer = indexBuffer;\n this.boundVertexOffset = vertexOffset;\n this.boundDynamicVertexBuffer = dynamicVertexBuffer;\n this.boundDynamicVertexBuffer2 = dynamicVertexBuffer2;\n } else {\n numPrevAttributes = context.currentNumAttributes || 0;\n for (var i = numNextAttributes; i < numPrevAttributes; i++) {\n gl2.disableVertexAttribArray(i);\n }\n }\n layoutVertexBuffer.enableAttributes(gl2, program);\n for (var i$1 = 0, list = paintVertexBuffers; i$1 < list.length; i$1 += 1) {\n var vertexBuffer = list[i$1];\n vertexBuffer.enableAttributes(gl2, program);\n }\n if (dynamicVertexBuffer) {\n dynamicVertexBuffer.enableAttributes(gl2, program);\n }\n if (dynamicVertexBuffer2) {\n dynamicVertexBuffer2.enableAttributes(gl2, program);\n }\n layoutVertexBuffer.bind();\n layoutVertexBuffer.setVertexAttribPointers(gl2, program, vertexOffset);\n for (var i$2 = 0, list$1 = paintVertexBuffers; i$2 < list$1.length; i$2 += 1) {\n var vertexBuffer$1 = list$1[i$2];\n vertexBuffer$1.bind();\n vertexBuffer$1.setVertexAttribPointers(gl2, program, vertexOffset);\n }\n if (dynamicVertexBuffer) {\n dynamicVertexBuffer.bind();\n dynamicVertexBuffer.setVertexAttribPointers(gl2, program, vertexOffset);\n }\n if (indexBuffer) {\n indexBuffer.bind();\n }\n if (dynamicVertexBuffer2) {\n dynamicVertexBuffer2.bind();\n dynamicVertexBuffer2.setVertexAttribPointers(gl2, program, vertexOffset);\n }\n context.currentNumAttributes = numNextAttributes;\n };\n VertexArrayObject.prototype.destroy = function destroy() {\n if (this.vao) {\n this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao);\n this.vao = null;\n }\n };\n function getTokenizedAttributesAndUniforms(array) {\n var result = [];\n for (var i = 0; i < array.length; i++) {\n if (array[i] === null) {\n continue;\n }\n var token = array[i].split(\" \");\n result.push(token.pop());\n }\n return result;\n }\n var Program$1 = function Program2(context, name2, source, configuration, fixedUniforms, showOverdrawInspector) {\n var gl2 = context.gl;\n this.program = gl2.createProgram();\n var staticAttrInfo = getTokenizedAttributesAndUniforms(source.staticAttributes);\n var dynamicAttrInfo = configuration ? configuration.getBinderAttributes() : [];\n var allAttrInfo = staticAttrInfo.concat(dynamicAttrInfo);\n var staticUniformsInfo = source.staticUniforms ? getTokenizedAttributesAndUniforms(source.staticUniforms) : [];\n var dynamicUniformsInfo = configuration ? configuration.getBinderUniforms() : [];\n var uniformList = staticUniformsInfo.concat(dynamicUniformsInfo);\n var allUniformsInfo = [];\n for (var i$1 = 0, list = uniformList; i$1 < list.length; i$1 += 1) {\n var uniform = list[i$1];\n if (allUniformsInfo.indexOf(uniform) < 0) {\n allUniformsInfo.push(uniform);\n }\n }\n var defines = configuration ? configuration.defines() : [];\n if (showOverdrawInspector) {\n defines.push(\"#define OVERDRAW_INSPECTOR;\");\n }\n var fragmentSource = defines.concat(prelude.fragmentSource, source.fragmentSource).join(\"\\n\");\n var vertexSource = defines.concat(prelude.vertexSource, source.vertexSource).join(\"\\n\");\n var fragmentShader = gl2.createShader(gl2.FRAGMENT_SHADER);\n if (gl2.isContextLost()) {\n this.failedToCreate = true;\n return;\n }\n gl2.shaderSource(fragmentShader, fragmentSource);\n gl2.compileShader(fragmentShader);\n gl2.attachShader(this.program, fragmentShader);\n var vertexShader = gl2.createShader(gl2.VERTEX_SHADER);\n if (gl2.isContextLost()) {\n this.failedToCreate = true;\n return;\n }\n gl2.shaderSource(vertexShader, vertexSource);\n gl2.compileShader(vertexShader);\n gl2.attachShader(this.program, vertexShader);\n this.attributes = {};\n var uniformLocations = {};\n this.numAttributes = allAttrInfo.length;\n for (var i = 0; i < this.numAttributes; i++) {\n if (allAttrInfo[i]) {\n gl2.bindAttribLocation(this.program, i, allAttrInfo[i]);\n this.attributes[allAttrInfo[i]] = i;\n }\n }\n gl2.linkProgram(this.program);\n gl2.deleteShader(vertexShader);\n gl2.deleteShader(fragmentShader);\n for (var it = 0; it < allUniformsInfo.length; it++) {\n var uniform$1 = allUniformsInfo[it];\n if (uniform$1 && !uniformLocations[uniform$1]) {\n var uniformLocation = gl2.getUniformLocation(this.program, uniform$1);\n if (uniformLocation) {\n uniformLocations[uniform$1] = uniformLocation;\n }\n }\n }\n this.fixedUniforms = fixedUniforms(context, uniformLocations);\n this.binderUniforms = configuration ? configuration.getUniforms(context, uniformLocations) : [];\n };\n Program$1.prototype.draw = function draw2(context, drawMode, depthMode, stencilMode, colorMode, cullFaceMode, uniformValues, layerID, layoutVertexBuffer, indexBuffer, segments, currentProperties, zoom, configuration, dynamicLayoutBuffer, dynamicLayoutBuffer2) {\n var obj;\n var gl2 = context.gl;\n if (this.failedToCreate) {\n return;\n }\n context.program.set(this.program);\n context.setDepthMode(depthMode);\n context.setStencilMode(stencilMode);\n context.setColorMode(colorMode);\n context.setCullFace(cullFaceMode);\n for (var name2 in this.fixedUniforms) {\n this.fixedUniforms[name2].set(uniformValues[name2]);\n }\n if (configuration) {\n configuration.setUniforms(context, this.binderUniforms, currentProperties, { zoom });\n }\n var primitiveSize = (obj = {}, obj[gl2.LINES] = 2, obj[gl2.TRIANGLES] = 3, obj[gl2.LINE_STRIP] = 1, obj)[drawMode];\n for (var i = 0, list = segments.get(); i < list.length; i += 1) {\n var segment = list[i];\n var vaos = segment.vaos || (segment.vaos = {});\n var vao = vaos[layerID] || (vaos[layerID] = new VertexArrayObject());\n vao.bind(context, this, layoutVertexBuffer, configuration ? configuration.getPaintVertexBuffers() : [], indexBuffer, segment.vertexOffset, dynamicLayoutBuffer, dynamicLayoutBuffer2);\n gl2.drawElements(drawMode, segment.primitiveLength * primitiveSize, gl2.UNSIGNED_SHORT, segment.primitiveOffset * primitiveSize * 2);\n }\n };\n function patternUniformValues(crossfade, painter, tile) {\n var tileRatio = 1 / pixelsToTileUnits(tile, 1, painter.transform.tileZoom);\n var numTiles = Math.pow(2, tile.tileID.overscaledZ);\n var tileSizeAtNearestZoom = tile.tileSize * Math.pow(2, painter.transform.tileZoom) / numTiles;\n var pixelX = tileSizeAtNearestZoom * (tile.tileID.canonical.x + tile.tileID.wrap * numTiles);\n var pixelY = tileSizeAtNearestZoom * tile.tileID.canonical.y;\n return {\n \"u_image\": 0,\n \"u_texsize\": tile.imageAtlasTexture.size,\n \"u_scale\": [\n tileRatio,\n crossfade.fromScale,\n crossfade.toScale\n ],\n \"u_fade\": crossfade.t,\n \"u_pixel_coord_upper\": [\n pixelX >> 16,\n pixelY >> 16\n ],\n \"u_pixel_coord_lower\": [\n pixelX & 65535,\n pixelY & 65535\n ]\n };\n }\n function bgPatternUniformValues(image, crossfade, painter, tile) {\n var imagePosA = painter.imageManager.getPattern(image.from.toString());\n var imagePosB = painter.imageManager.getPattern(image.to.toString());\n var ref = painter.imageManager.getPixelSize();\n var width = ref.width;\n var height = ref.height;\n var numTiles = Math.pow(2, tile.tileID.overscaledZ);\n var tileSizeAtNearestZoom = tile.tileSize * Math.pow(2, painter.transform.tileZoom) / numTiles;\n var pixelX = tileSizeAtNearestZoom * (tile.tileID.canonical.x + tile.tileID.wrap * numTiles);\n var pixelY = tileSizeAtNearestZoom * tile.tileID.canonical.y;\n return {\n \"u_image\": 0,\n \"u_pattern_tl_a\": imagePosA.tl,\n \"u_pattern_br_a\": imagePosA.br,\n \"u_pattern_tl_b\": imagePosB.tl,\n \"u_pattern_br_b\": imagePosB.br,\n \"u_texsize\": [\n width,\n height\n ],\n \"u_mix\": crossfade.t,\n \"u_pattern_size_a\": imagePosA.displaySize,\n \"u_pattern_size_b\": imagePosB.displaySize,\n \"u_scale_a\": crossfade.fromScale,\n \"u_scale_b\": crossfade.toScale,\n \"u_tile_units_to_pixels\": 1 / pixelsToTileUnits(tile, 1, painter.transform.tileZoom),\n \"u_pixel_coord_upper\": [\n pixelX >> 16,\n pixelY >> 16\n ],\n \"u_pixel_coord_lower\": [\n pixelX & 65535,\n pixelY & 65535\n ]\n };\n }\n var fillExtrusionUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_lightpos\": new performance2.Uniform3f(context, locations.u_lightpos),\n \"u_lightintensity\": new performance2.Uniform1f(context, locations.u_lightintensity),\n \"u_lightcolor\": new performance2.Uniform3f(context, locations.u_lightcolor),\n \"u_vertical_gradient\": new performance2.Uniform1f(context, locations.u_vertical_gradient),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity)\n };\n };\n var fillExtrusionPatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_lightpos\": new performance2.Uniform3f(context, locations.u_lightpos),\n \"u_lightintensity\": new performance2.Uniform1f(context, locations.u_lightintensity),\n \"u_lightcolor\": new performance2.Uniform3f(context, locations.u_lightcolor),\n \"u_vertical_gradient\": new performance2.Uniform1f(context, locations.u_vertical_gradient),\n \"u_height_factor\": new performance2.Uniform1f(context, locations.u_height_factor),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_pixel_coord_upper\": new performance2.Uniform2f(context, locations.u_pixel_coord_upper),\n \"u_pixel_coord_lower\": new performance2.Uniform2f(context, locations.u_pixel_coord_lower),\n \"u_scale\": new performance2.Uniform3f(context, locations.u_scale),\n \"u_fade\": new performance2.Uniform1f(context, locations.u_fade),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity)\n };\n };\n var fillExtrusionUniformValues = function(matrix, painter, shouldUseVerticalGradient, opacity) {\n var light = painter.style.light;\n var _lp = light.properties.get(\"position\");\n var lightPos = [\n _lp.x,\n _lp.y,\n _lp.z\n ];\n var lightMat = performance2.create$1();\n if (light.properties.get(\"anchor\") === \"viewport\") {\n performance2.fromRotation(lightMat, -painter.transform.angle);\n }\n performance2.transformMat3(lightPos, lightPos, lightMat);\n var lightColor = light.properties.get(\"color\");\n return {\n \"u_matrix\": matrix,\n \"u_lightpos\": lightPos,\n \"u_lightintensity\": light.properties.get(\"intensity\"),\n \"u_lightcolor\": [\n lightColor.r,\n lightColor.g,\n lightColor.b\n ],\n \"u_vertical_gradient\": +shouldUseVerticalGradient,\n \"u_opacity\": opacity\n };\n };\n var fillExtrusionPatternUniformValues = function(matrix, painter, shouldUseVerticalGradient, opacity, coord, crossfade, tile) {\n return performance2.extend(fillExtrusionUniformValues(matrix, painter, shouldUseVerticalGradient, opacity), patternUniformValues(crossfade, painter, tile), { \"u_height_factor\": -Math.pow(2, coord.overscaledZ) / tile.tileSize / 8 });\n };\n var fillUniforms = function(context, locations) {\n return { \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix) };\n };\n var fillPatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_pixel_coord_upper\": new performance2.Uniform2f(context, locations.u_pixel_coord_upper),\n \"u_pixel_coord_lower\": new performance2.Uniform2f(context, locations.u_pixel_coord_lower),\n \"u_scale\": new performance2.Uniform3f(context, locations.u_scale),\n \"u_fade\": new performance2.Uniform1f(context, locations.u_fade)\n };\n };\n var fillOutlineUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_world\": new performance2.Uniform2f(context, locations.u_world)\n };\n };\n var fillOutlinePatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_world\": new performance2.Uniform2f(context, locations.u_world),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_pixel_coord_upper\": new performance2.Uniform2f(context, locations.u_pixel_coord_upper),\n \"u_pixel_coord_lower\": new performance2.Uniform2f(context, locations.u_pixel_coord_lower),\n \"u_scale\": new performance2.Uniform3f(context, locations.u_scale),\n \"u_fade\": new performance2.Uniform1f(context, locations.u_fade)\n };\n };\n var fillUniformValues = function(matrix) {\n return { \"u_matrix\": matrix };\n };\n var fillPatternUniformValues = function(matrix, painter, crossfade, tile) {\n return performance2.extend(fillUniformValues(matrix), patternUniformValues(crossfade, painter, tile));\n };\n var fillOutlineUniformValues = function(matrix, drawingBufferSize) {\n return {\n \"u_matrix\": matrix,\n \"u_world\": drawingBufferSize\n };\n };\n var fillOutlinePatternUniformValues = function(matrix, painter, crossfade, tile, drawingBufferSize) {\n return performance2.extend(fillPatternUniformValues(matrix, painter, crossfade, tile), { \"u_world\": drawingBufferSize });\n };\n var circleUniforms = function(context, locations) {\n return {\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_scale_with_map\": new performance2.Uniform1i(context, locations.u_scale_with_map),\n \"u_pitch_with_map\": new performance2.Uniform1i(context, locations.u_pitch_with_map),\n \"u_extrude_scale\": new performance2.Uniform2f(context, locations.u_extrude_scale),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix)\n };\n };\n var circleUniformValues = function(painter, coord, tile, layer) {\n var transform = painter.transform;\n var pitchWithMap, extrudeScale;\n if (layer.paint.get(\"circle-pitch-alignment\") === \"map\") {\n var pixelRatio = pixelsToTileUnits(tile, 1, transform.zoom);\n pitchWithMap = true;\n extrudeScale = [\n pixelRatio,\n pixelRatio\n ];\n } else {\n pitchWithMap = false;\n extrudeScale = transform.pixelsToGLUnits;\n }\n return {\n \"u_camera_to_center_distance\": transform.cameraToCenterDistance,\n \"u_scale_with_map\": +(layer.paint.get(\"circle-pitch-scale\") === \"map\"),\n \"u_matrix\": painter.translatePosMatrix(coord.posMatrix, tile, layer.paint.get(\"circle-translate\"), layer.paint.get(\"circle-translate-anchor\")),\n \"u_pitch_with_map\": +pitchWithMap,\n \"u_device_pixel_ratio\": performance2.browser.devicePixelRatio,\n \"u_extrude_scale\": extrudeScale\n };\n };\n var collisionUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_pixels_to_tile_units\": new performance2.Uniform1f(context, locations.u_pixels_to_tile_units),\n \"u_extrude_scale\": new performance2.Uniform2f(context, locations.u_extrude_scale),\n \"u_overscale_factor\": new performance2.Uniform1f(context, locations.u_overscale_factor)\n };\n };\n var collisionCircleUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_inv_matrix\": new performance2.UniformMatrix4f(context, locations.u_inv_matrix),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_viewport_size\": new performance2.Uniform2f(context, locations.u_viewport_size)\n };\n };\n var collisionUniformValues = function(matrix, transform, tile) {\n var pixelRatio = pixelsToTileUnits(tile, 1, transform.zoom);\n var scale = Math.pow(2, transform.zoom - tile.tileID.overscaledZ);\n var overscaleFactor = tile.tileID.overscaleFactor();\n return {\n \"u_matrix\": matrix,\n \"u_camera_to_center_distance\": transform.cameraToCenterDistance,\n \"u_pixels_to_tile_units\": pixelRatio,\n \"u_extrude_scale\": [\n transform.pixelsToGLUnits[0] / (pixelRatio * scale),\n transform.pixelsToGLUnits[1] / (pixelRatio * scale)\n ],\n \"u_overscale_factor\": overscaleFactor\n };\n };\n var collisionCircleUniformValues = function(matrix, invMatrix, transform) {\n return {\n \"u_matrix\": matrix,\n \"u_inv_matrix\": invMatrix,\n \"u_camera_to_center_distance\": transform.cameraToCenterDistance,\n \"u_viewport_size\": [\n transform.width,\n transform.height\n ]\n };\n };\n var debugUniforms = function(context, locations) {\n return {\n \"u_color\": new performance2.UniformColor(context, locations.u_color),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_overlay\": new performance2.Uniform1i(context, locations.u_overlay),\n \"u_overlay_scale\": new performance2.Uniform1f(context, locations.u_overlay_scale)\n };\n };\n var debugUniformValues = function(matrix, color2, scaleRatio) {\n if (scaleRatio === void 0)\n scaleRatio = 1;\n return {\n \"u_matrix\": matrix,\n \"u_color\": color2,\n \"u_overlay\": 0,\n \"u_overlay_scale\": scaleRatio\n };\n };\n var clippingMaskUniforms = function(context, locations) {\n return { \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix) };\n };\n var clippingMaskUniformValues = function(matrix) {\n return { \"u_matrix\": matrix };\n };\n var heatmapUniforms = function(context, locations) {\n return {\n \"u_extrude_scale\": new performance2.Uniform1f(context, locations.u_extrude_scale),\n \"u_intensity\": new performance2.Uniform1f(context, locations.u_intensity),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix)\n };\n };\n var heatmapTextureUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_world\": new performance2.Uniform2f(context, locations.u_world),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_color_ramp\": new performance2.Uniform1i(context, locations.u_color_ramp),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity)\n };\n };\n var heatmapUniformValues = function(matrix, tile, zoom, intensity) {\n return {\n \"u_matrix\": matrix,\n \"u_extrude_scale\": pixelsToTileUnits(tile, 1, zoom),\n \"u_intensity\": intensity\n };\n };\n var heatmapTextureUniformValues = function(painter, layer, textureUnit, colorRampUnit) {\n var matrix = performance2.create();\n performance2.ortho(matrix, 0, painter.width, painter.height, 0, 0, 1);\n var gl2 = painter.context.gl;\n return {\n \"u_matrix\": matrix,\n \"u_world\": [\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight\n ],\n \"u_image\": textureUnit,\n \"u_color_ramp\": colorRampUnit,\n \"u_opacity\": layer.paint.get(\"heatmap-opacity\")\n };\n };\n var hillshadeUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_latrange\": new performance2.Uniform2f(context, locations.u_latrange),\n \"u_light\": new performance2.Uniform2f(context, locations.u_light),\n \"u_shadow\": new performance2.UniformColor(context, locations.u_shadow),\n \"u_highlight\": new performance2.UniformColor(context, locations.u_highlight),\n \"u_accent\": new performance2.UniformColor(context, locations.u_accent)\n };\n };\n var hillshadePrepareUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_dimension\": new performance2.Uniform2f(context, locations.u_dimension),\n \"u_zoom\": new performance2.Uniform1f(context, locations.u_zoom),\n \"u_unpack\": new performance2.Uniform4f(context, locations.u_unpack)\n };\n };\n var hillshadeUniformValues = function(painter, tile, layer) {\n var shadow = layer.paint.get(\"hillshade-shadow-color\");\n var highlight = layer.paint.get(\"hillshade-highlight-color\");\n var accent = layer.paint.get(\"hillshade-accent-color\");\n var azimuthal = layer.paint.get(\"hillshade-illumination-direction\") * (Math.PI / 180);\n if (layer.paint.get(\"hillshade-illumination-anchor\") === \"viewport\") {\n azimuthal -= painter.transform.angle;\n }\n var align = !painter.options.moving;\n return {\n \"u_matrix\": painter.transform.calculatePosMatrix(tile.tileID.toUnwrapped(), align),\n \"u_image\": 0,\n \"u_latrange\": getTileLatRange(painter, tile.tileID),\n \"u_light\": [\n layer.paint.get(\"hillshade-exaggeration\"),\n azimuthal\n ],\n \"u_shadow\": shadow,\n \"u_highlight\": highlight,\n \"u_accent\": accent\n };\n };\n var hillshadeUniformPrepareValues = function(tileID, dem) {\n var stride = dem.stride;\n var matrix = performance2.create();\n performance2.ortho(matrix, 0, performance2.EXTENT, -performance2.EXTENT, 0, 0, 1);\n performance2.translate(matrix, matrix, [\n 0,\n -performance2.EXTENT,\n 0\n ]);\n return {\n \"u_matrix\": matrix,\n \"u_image\": 1,\n \"u_dimension\": [\n stride,\n stride\n ],\n \"u_zoom\": tileID.overscaledZ,\n \"u_unpack\": dem.getUnpackVector()\n };\n };\n function getTileLatRange(painter, tileID) {\n var tilesAtZoom = Math.pow(2, tileID.canonical.z);\n var y = tileID.canonical.y;\n return [\n new performance2.MercatorCoordinate(0, y / tilesAtZoom).toLngLat().lat,\n new performance2.MercatorCoordinate(0, (y + 1) / tilesAtZoom).toLngLat().lat\n ];\n }\n var lineUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_ratio\": new performance2.Uniform1f(context, locations.u_ratio),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_units_to_pixels\": new performance2.Uniform2f(context, locations.u_units_to_pixels)\n };\n };\n var lineGradientUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_ratio\": new performance2.Uniform1f(context, locations.u_ratio),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_units_to_pixels\": new performance2.Uniform2f(context, locations.u_units_to_pixels),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_image_height\": new performance2.Uniform1f(context, locations.u_image_height)\n };\n };\n var linePatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_ratio\": new performance2.Uniform1f(context, locations.u_ratio),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_units_to_pixels\": new performance2.Uniform2f(context, locations.u_units_to_pixels),\n \"u_scale\": new performance2.Uniform3f(context, locations.u_scale),\n \"u_fade\": new performance2.Uniform1f(context, locations.u_fade)\n };\n };\n var lineSDFUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_ratio\": new performance2.Uniform1f(context, locations.u_ratio),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_units_to_pixels\": new performance2.Uniform2f(context, locations.u_units_to_pixels),\n \"u_patternscale_a\": new performance2.Uniform2f(context, locations.u_patternscale_a),\n \"u_patternscale_b\": new performance2.Uniform2f(context, locations.u_patternscale_b),\n \"u_sdfgamma\": new performance2.Uniform1f(context, locations.u_sdfgamma),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_tex_y_a\": new performance2.Uniform1f(context, locations.u_tex_y_a),\n \"u_tex_y_b\": new performance2.Uniform1f(context, locations.u_tex_y_b),\n \"u_mix\": new performance2.Uniform1f(context, locations.u_mix)\n };\n };\n var lineUniformValues = function(painter, tile, layer) {\n var transform = painter.transform;\n return {\n \"u_matrix\": calculateMatrix(painter, tile, layer),\n \"u_ratio\": 1 / pixelsToTileUnits(tile, 1, transform.zoom),\n \"u_device_pixel_ratio\": performance2.browser.devicePixelRatio,\n \"u_units_to_pixels\": [\n 1 / transform.pixelsToGLUnits[0],\n 1 / transform.pixelsToGLUnits[1]\n ]\n };\n };\n var lineGradientUniformValues = function(painter, tile, layer, imageHeight) {\n return performance2.extend(lineUniformValues(painter, tile, layer), {\n \"u_image\": 0,\n \"u_image_height\": imageHeight\n });\n };\n var linePatternUniformValues = function(painter, tile, layer, crossfade) {\n var transform = painter.transform;\n var tileZoomRatio = calculateTileRatio(tile, transform);\n return {\n \"u_matrix\": calculateMatrix(painter, tile, layer),\n \"u_texsize\": tile.imageAtlasTexture.size,\n \"u_ratio\": 1 / pixelsToTileUnits(tile, 1, transform.zoom),\n \"u_device_pixel_ratio\": performance2.browser.devicePixelRatio,\n \"u_image\": 0,\n \"u_scale\": [\n tileZoomRatio,\n crossfade.fromScale,\n crossfade.toScale\n ],\n \"u_fade\": crossfade.t,\n \"u_units_to_pixels\": [\n 1 / transform.pixelsToGLUnits[0],\n 1 / transform.pixelsToGLUnits[1]\n ]\n };\n };\n var lineSDFUniformValues = function(painter, tile, layer, dasharray, crossfade) {\n var transform = painter.transform;\n var lineAtlas = painter.lineAtlas;\n var tileRatio = calculateTileRatio(tile, transform);\n var round = layer.layout.get(\"line-cap\") === \"round\";\n var posA = lineAtlas.getDash(dasharray.from, round);\n var posB = lineAtlas.getDash(dasharray.to, round);\n var widthA = posA.width * crossfade.fromScale;\n var widthB = posB.width * crossfade.toScale;\n return performance2.extend(lineUniformValues(painter, tile, layer), {\n \"u_patternscale_a\": [\n tileRatio / widthA,\n -posA.height / 2\n ],\n \"u_patternscale_b\": [\n tileRatio / widthB,\n -posB.height / 2\n ],\n \"u_sdfgamma\": lineAtlas.width / (Math.min(widthA, widthB) * 256 * performance2.browser.devicePixelRatio) / 2,\n \"u_image\": 0,\n \"u_tex_y_a\": posA.y,\n \"u_tex_y_b\": posB.y,\n \"u_mix\": crossfade.t\n });\n };\n function calculateTileRatio(tile, transform) {\n return 1 / pixelsToTileUnits(tile, 1, transform.tileZoom);\n }\n function calculateMatrix(painter, tile, layer) {\n return painter.translatePosMatrix(tile.tileID.posMatrix, tile, layer.paint.get(\"line-translate\"), layer.paint.get(\"line-translate-anchor\"));\n }\n var rasterUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_tl_parent\": new performance2.Uniform2f(context, locations.u_tl_parent),\n \"u_scale_parent\": new performance2.Uniform1f(context, locations.u_scale_parent),\n \"u_buffer_scale\": new performance2.Uniform1f(context, locations.u_buffer_scale),\n \"u_fade_t\": new performance2.Uniform1f(context, locations.u_fade_t),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity),\n \"u_image0\": new performance2.Uniform1i(context, locations.u_image0),\n \"u_image1\": new performance2.Uniform1i(context, locations.u_image1),\n \"u_brightness_low\": new performance2.Uniform1f(context, locations.u_brightness_low),\n \"u_brightness_high\": new performance2.Uniform1f(context, locations.u_brightness_high),\n \"u_saturation_factor\": new performance2.Uniform1f(context, locations.u_saturation_factor),\n \"u_contrast_factor\": new performance2.Uniform1f(context, locations.u_contrast_factor),\n \"u_spin_weights\": new performance2.Uniform3f(context, locations.u_spin_weights)\n };\n };\n var rasterUniformValues = function(matrix, parentTL, parentScaleBy, fade, layer) {\n return {\n \"u_matrix\": matrix,\n \"u_tl_parent\": parentTL,\n \"u_scale_parent\": parentScaleBy,\n \"u_buffer_scale\": 1,\n \"u_fade_t\": fade.mix,\n \"u_opacity\": fade.opacity * layer.paint.get(\"raster-opacity\"),\n \"u_image0\": 0,\n \"u_image1\": 1,\n \"u_brightness_low\": layer.paint.get(\"raster-brightness-min\"),\n \"u_brightness_high\": layer.paint.get(\"raster-brightness-max\"),\n \"u_saturation_factor\": saturationFactor(layer.paint.get(\"raster-saturation\")),\n \"u_contrast_factor\": contrastFactor(layer.paint.get(\"raster-contrast\")),\n \"u_spin_weights\": spinWeights(layer.paint.get(\"raster-hue-rotate\"))\n };\n };\n function spinWeights(angle) {\n angle *= Math.PI / 180;\n var s = Math.sin(angle);\n var c = Math.cos(angle);\n return [\n (2 * c + 1) / 3,\n (-Math.sqrt(3) * s - c + 1) / 3,\n (Math.sqrt(3) * s - c + 1) / 3\n ];\n }\n function contrastFactor(contrast) {\n return contrast > 0 ? 1 / (1 - contrast) : 1 + contrast;\n }\n function saturationFactor(saturation) {\n return saturation > 0 ? 1 - 1 / (1.001 - saturation) : -saturation;\n }\n var symbolIconUniforms = function(context, locations) {\n return {\n \"u_is_size_zoom_constant\": new performance2.Uniform1i(context, locations.u_is_size_zoom_constant),\n \"u_is_size_feature_constant\": new performance2.Uniform1i(context, locations.u_is_size_feature_constant),\n \"u_size_t\": new performance2.Uniform1f(context, locations.u_size_t),\n \"u_size\": new performance2.Uniform1f(context, locations.u_size),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_pitch\": new performance2.Uniform1f(context, locations.u_pitch),\n \"u_rotate_symbol\": new performance2.Uniform1i(context, locations.u_rotate_symbol),\n \"u_aspect_ratio\": new performance2.Uniform1f(context, locations.u_aspect_ratio),\n \"u_fade_change\": new performance2.Uniform1f(context, locations.u_fade_change),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_label_plane_matrix\": new performance2.UniformMatrix4f(context, locations.u_label_plane_matrix),\n \"u_coord_matrix\": new performance2.UniformMatrix4f(context, locations.u_coord_matrix),\n \"u_is_text\": new performance2.Uniform1i(context, locations.u_is_text),\n \"u_pitch_with_map\": new performance2.Uniform1i(context, locations.u_pitch_with_map),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_texture\": new performance2.Uniform1i(context, locations.u_texture)\n };\n };\n var symbolSDFUniforms = function(context, locations) {\n return {\n \"u_is_size_zoom_constant\": new performance2.Uniform1i(context, locations.u_is_size_zoom_constant),\n \"u_is_size_feature_constant\": new performance2.Uniform1i(context, locations.u_is_size_feature_constant),\n \"u_size_t\": new performance2.Uniform1f(context, locations.u_size_t),\n \"u_size\": new performance2.Uniform1f(context, locations.u_size),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_pitch\": new performance2.Uniform1f(context, locations.u_pitch),\n \"u_rotate_symbol\": new performance2.Uniform1i(context, locations.u_rotate_symbol),\n \"u_aspect_ratio\": new performance2.Uniform1f(context, locations.u_aspect_ratio),\n \"u_fade_change\": new performance2.Uniform1f(context, locations.u_fade_change),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_label_plane_matrix\": new performance2.UniformMatrix4f(context, locations.u_label_plane_matrix),\n \"u_coord_matrix\": new performance2.UniformMatrix4f(context, locations.u_coord_matrix),\n \"u_is_text\": new performance2.Uniform1i(context, locations.u_is_text),\n \"u_pitch_with_map\": new performance2.Uniform1i(context, locations.u_pitch_with_map),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_texture\": new performance2.Uniform1i(context, locations.u_texture),\n \"u_gamma_scale\": new performance2.Uniform1f(context, locations.u_gamma_scale),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_is_halo\": new performance2.Uniform1i(context, locations.u_is_halo)\n };\n };\n var symbolTextAndIconUniforms = function(context, locations) {\n return {\n \"u_is_size_zoom_constant\": new performance2.Uniform1i(context, locations.u_is_size_zoom_constant),\n \"u_is_size_feature_constant\": new performance2.Uniform1i(context, locations.u_is_size_feature_constant),\n \"u_size_t\": new performance2.Uniform1f(context, locations.u_size_t),\n \"u_size\": new performance2.Uniform1f(context, locations.u_size),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_pitch\": new performance2.Uniform1f(context, locations.u_pitch),\n \"u_rotate_symbol\": new performance2.Uniform1i(context, locations.u_rotate_symbol),\n \"u_aspect_ratio\": new performance2.Uniform1f(context, locations.u_aspect_ratio),\n \"u_fade_change\": new performance2.Uniform1f(context, locations.u_fade_change),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_label_plane_matrix\": new performance2.UniformMatrix4f(context, locations.u_label_plane_matrix),\n \"u_coord_matrix\": new performance2.UniformMatrix4f(context, locations.u_coord_matrix),\n \"u_is_text\": new performance2.Uniform1i(context, locations.u_is_text),\n \"u_pitch_with_map\": new performance2.Uniform1i(context, locations.u_pitch_with_map),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_texsize_icon\": new performance2.Uniform2f(context, locations.u_texsize_icon),\n \"u_texture\": new performance2.Uniform1i(context, locations.u_texture),\n \"u_texture_icon\": new performance2.Uniform1i(context, locations.u_texture_icon),\n \"u_gamma_scale\": new performance2.Uniform1f(context, locations.u_gamma_scale),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_is_halo\": new performance2.Uniform1i(context, locations.u_is_halo)\n };\n };\n var symbolIconUniformValues = function(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, isText, texSize) {\n var transform = painter.transform;\n return {\n \"u_is_size_zoom_constant\": +(functionType === \"constant\" || functionType === \"source\"),\n \"u_is_size_feature_constant\": +(functionType === \"constant\" || functionType === \"camera\"),\n \"u_size_t\": size ? size.uSizeT : 0,\n \"u_size\": size ? size.uSize : 0,\n \"u_camera_to_center_distance\": transform.cameraToCenterDistance,\n \"u_pitch\": transform.pitch / 360 * 2 * Math.PI,\n \"u_rotate_symbol\": +rotateInShader,\n \"u_aspect_ratio\": transform.width / transform.height,\n \"u_fade_change\": painter.options.fadeDuration ? painter.symbolFadeChange : 1,\n \"u_matrix\": matrix,\n \"u_label_plane_matrix\": labelPlaneMatrix,\n \"u_coord_matrix\": glCoordMatrix,\n \"u_is_text\": +isText,\n \"u_pitch_with_map\": +pitchWithMap,\n \"u_texsize\": texSize,\n \"u_texture\": 0\n };\n };\n var symbolSDFUniformValues = function(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, isText, texSize, isHalo) {\n var transform = painter.transform;\n return performance2.extend(symbolIconUniformValues(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, isText, texSize), {\n \"u_gamma_scale\": pitchWithMap ? Math.cos(transform._pitch) * transform.cameraToCenterDistance : 1,\n \"u_device_pixel_ratio\": performance2.browser.devicePixelRatio,\n \"u_is_halo\": +isHalo\n });\n };\n var symbolTextAndIconUniformValues = function(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, texSizeSDF, texSizeIcon) {\n return performance2.extend(symbolSDFUniformValues(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, true, texSizeSDF, true), {\n \"u_texsize_icon\": texSizeIcon,\n \"u_texture_icon\": 1\n });\n };\n var backgroundUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity),\n \"u_color\": new performance2.UniformColor(context, locations.u_color)\n };\n };\n var backgroundPatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_pattern_tl_a\": new performance2.Uniform2f(context, locations.u_pattern_tl_a),\n \"u_pattern_br_a\": new performance2.Uniform2f(context, locations.u_pattern_br_a),\n \"u_pattern_tl_b\": new performance2.Uniform2f(context, locations.u_pattern_tl_b),\n \"u_pattern_br_b\": new performance2.Uniform2f(context, locations.u_pattern_br_b),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_mix\": new performance2.Uniform1f(context, locations.u_mix),\n \"u_pattern_size_a\": new performance2.Uniform2f(context, locations.u_pattern_size_a),\n \"u_pattern_size_b\": new performance2.Uniform2f(context, locations.u_pattern_size_b),\n \"u_scale_a\": new performance2.Uniform1f(context, locations.u_scale_a),\n \"u_scale_b\": new performance2.Uniform1f(context, locations.u_scale_b),\n \"u_pixel_coord_upper\": new performance2.Uniform2f(context, locations.u_pixel_coord_upper),\n \"u_pixel_coord_lower\": new performance2.Uniform2f(context, locations.u_pixel_coord_lower),\n \"u_tile_units_to_pixels\": new performance2.Uniform1f(context, locations.u_tile_units_to_pixels)\n };\n };\n var backgroundUniformValues = function(matrix, opacity, color2) {\n return {\n \"u_matrix\": matrix,\n \"u_opacity\": opacity,\n \"u_color\": color2\n };\n };\n var backgroundPatternUniformValues = function(matrix, opacity, painter, image, tile, crossfade) {\n return performance2.extend(bgPatternUniformValues(image, crossfade, painter, tile), {\n \"u_matrix\": matrix,\n \"u_opacity\": opacity\n });\n };\n var programUniforms = {\n fillExtrusion: fillExtrusionUniforms,\n fillExtrusionPattern: fillExtrusionPatternUniforms,\n fill: fillUniforms,\n fillPattern: fillPatternUniforms,\n fillOutline: fillOutlineUniforms,\n fillOutlinePattern: fillOutlinePatternUniforms,\n circle: circleUniforms,\n collisionBox: collisionUniforms,\n collisionCircle: collisionCircleUniforms,\n debug: debugUniforms,\n clippingMask: clippingMaskUniforms,\n heatmap: heatmapUniforms,\n heatmapTexture: heatmapTextureUniforms,\n hillshade: hillshadeUniforms,\n hillshadePrepare: hillshadePrepareUniforms,\n line: lineUniforms,\n lineGradient: lineGradientUniforms,\n linePattern: linePatternUniforms,\n lineSDF: lineSDFUniforms,\n raster: rasterUniforms,\n symbolIcon: symbolIconUniforms,\n symbolSDF: symbolSDFUniforms,\n symbolTextAndIcon: symbolTextAndIconUniforms,\n background: backgroundUniforms,\n backgroundPattern: backgroundPatternUniforms\n };\n var quadTriangles;\n function drawCollisionDebug(painter, sourceCache, layer, coords, translate, translateAnchor, isText) {\n var context = painter.context;\n var gl2 = context.gl;\n var program = painter.useProgram(\"collisionBox\");\n var tileBatches = [];\n var circleCount = 0;\n var circleOffset = 0;\n for (var i = 0; i < coords.length; i++) {\n var coord = coords[i];\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var posMatrix = coord.posMatrix;\n if (translate[0] !== 0 || translate[1] !== 0) {\n posMatrix = painter.translatePosMatrix(coord.posMatrix, tile, translate, translateAnchor);\n }\n var buffers = isText ? bucket.textCollisionBox : bucket.iconCollisionBox;\n var circleArray = bucket.collisionCircleArray;\n if (circleArray.length > 0) {\n var invTransform = performance2.create();\n var transform = posMatrix;\n performance2.mul(invTransform, bucket.placementInvProjMatrix, painter.transform.glCoordMatrix);\n performance2.mul(invTransform, invTransform, bucket.placementViewportMatrix);\n tileBatches.push({\n circleArray,\n circleOffset,\n transform,\n invTransform\n });\n circleCount += circleArray.length / 4;\n circleOffset = circleCount;\n }\n if (!buffers) {\n continue;\n }\n program.draw(context, gl2.LINES, DepthMode.disabled, StencilMode.disabled, painter.colorModeForRenderPass(), CullFaceMode.disabled, collisionUniformValues(posMatrix, painter.transform, tile), layer.id, buffers.layoutVertexBuffer, buffers.indexBuffer, buffers.segments, null, painter.transform.zoom, null, null, buffers.collisionVertexBuffer);\n }\n if (!isText || !tileBatches.length) {\n return;\n }\n var circleProgram = painter.useProgram(\"collisionCircle\");\n var vertexData = new performance2.StructArrayLayout2f1f2i16();\n vertexData.resize(circleCount * 4);\n vertexData._trim();\n var vertexOffset = 0;\n for (var i$2 = 0, list = tileBatches; i$2 < list.length; i$2 += 1) {\n var batch = list[i$2];\n for (var i$1 = 0; i$1 < batch.circleArray.length / 4; i$1++) {\n var circleIdx = i$1 * 4;\n var x = batch.circleArray[circleIdx + 0];\n var y = batch.circleArray[circleIdx + 1];\n var radius = batch.circleArray[circleIdx + 2];\n var collision = batch.circleArray[circleIdx + 3];\n vertexData.emplace(vertexOffset++, x, y, radius, collision, 0);\n vertexData.emplace(vertexOffset++, x, y, radius, collision, 1);\n vertexData.emplace(vertexOffset++, x, y, radius, collision, 2);\n vertexData.emplace(vertexOffset++, x, y, radius, collision, 3);\n }\n }\n if (!quadTriangles || quadTriangles.length < circleCount * 2) {\n quadTriangles = createQuadTriangles(circleCount);\n }\n var indexBuffer = context.createIndexBuffer(quadTriangles, true);\n var vertexBuffer = context.createVertexBuffer(vertexData, performance2.collisionCircleLayout.members, true);\n for (var i$3 = 0, list$1 = tileBatches; i$3 < list$1.length; i$3 += 1) {\n var batch$1 = list$1[i$3];\n var uniforms = collisionCircleUniformValues(batch$1.transform, batch$1.invTransform, painter.transform);\n circleProgram.draw(context, gl2.TRIANGLES, DepthMode.disabled, StencilMode.disabled, painter.colorModeForRenderPass(), CullFaceMode.disabled, uniforms, layer.id, vertexBuffer, indexBuffer, performance2.SegmentVector.simpleSegment(0, batch$1.circleOffset * 2, batch$1.circleArray.length, batch$1.circleArray.length / 2), null, painter.transform.zoom, null, null, null);\n }\n vertexBuffer.destroy();\n indexBuffer.destroy();\n }\n function createQuadTriangles(quadCount) {\n var triCount = quadCount * 2;\n var array = new performance2.StructArrayLayout3ui6();\n array.resize(triCount);\n array._trim();\n for (var i = 0; i < triCount; i++) {\n var idx = i * 6;\n array.uint16[idx + 0] = i * 4 + 0;\n array.uint16[idx + 1] = i * 4 + 1;\n array.uint16[idx + 2] = i * 4 + 2;\n array.uint16[idx + 3] = i * 4 + 2;\n array.uint16[idx + 4] = i * 4 + 3;\n array.uint16[idx + 5] = i * 4 + 0;\n }\n return array;\n }\n var identityMat4 = performance2.identity(new Float32Array(16));\n function drawSymbols(painter, sourceCache, layer, coords, variableOffsets) {\n if (painter.renderPass !== \"translucent\") {\n return;\n }\n var stencilMode = StencilMode.disabled;\n var colorMode = painter.colorModeForRenderPass();\n var variablePlacement = layer.layout.get(\"text-variable-anchor\");\n if (variablePlacement) {\n updateVariableAnchors(coords, painter, layer, sourceCache, layer.layout.get(\"text-rotation-alignment\"), layer.layout.get(\"text-pitch-alignment\"), variableOffsets);\n }\n if (layer.paint.get(\"icon-opacity\").constantOr(1) !== 0) {\n drawLayerSymbols(painter, sourceCache, layer, coords, false, layer.paint.get(\"icon-translate\"), layer.paint.get(\"icon-translate-anchor\"), layer.layout.get(\"icon-rotation-alignment\"), layer.layout.get(\"icon-pitch-alignment\"), layer.layout.get(\"icon-keep-upright\"), stencilMode, colorMode);\n }\n if (layer.paint.get(\"text-opacity\").constantOr(1) !== 0) {\n drawLayerSymbols(painter, sourceCache, layer, coords, true, layer.paint.get(\"text-translate\"), layer.paint.get(\"text-translate-anchor\"), layer.layout.get(\"text-rotation-alignment\"), layer.layout.get(\"text-pitch-alignment\"), layer.layout.get(\"text-keep-upright\"), stencilMode, colorMode);\n }\n if (sourceCache.map.showCollisionBoxes) {\n drawCollisionDebug(painter, sourceCache, layer, coords, layer.paint.get(\"text-translate\"), layer.paint.get(\"text-translate-anchor\"), true);\n drawCollisionDebug(painter, sourceCache, layer, coords, layer.paint.get(\"icon-translate\"), layer.paint.get(\"icon-translate-anchor\"), false);\n }\n }\n function calculateVariableRenderShift(anchor, width, height, textOffset, textBoxScale, renderTextSize) {\n var ref = performance2.getAnchorAlignment(anchor);\n var horizontalAlign = ref.horizontalAlign;\n var verticalAlign = ref.verticalAlign;\n var shiftX = -(horizontalAlign - 0.5) * width;\n var shiftY = -(verticalAlign - 0.5) * height;\n var variableOffset = performance2.evaluateVariableOffset(anchor, textOffset);\n return new performance2.Point((shiftX / textBoxScale + variableOffset[0]) * renderTextSize, (shiftY / textBoxScale + variableOffset[1]) * renderTextSize);\n }\n function updateVariableAnchors(coords, painter, layer, sourceCache, rotationAlignment, pitchAlignment, variableOffsets) {\n var tr = painter.transform;\n var rotateWithMap = rotationAlignment === \"map\";\n var pitchWithMap = pitchAlignment === \"map\";\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket || !bucket.text || !bucket.text.segments.get().length) {\n continue;\n }\n var sizeData = bucket.textSizeData;\n var size = performance2.evaluateSizeForZoom(sizeData, tr.zoom);\n var pixelToTileScale = pixelsToTileUnits(tile, 1, painter.transform.zoom);\n var labelPlaneMatrix = getLabelPlaneMatrix(coord.posMatrix, pitchWithMap, rotateWithMap, painter.transform, pixelToTileScale);\n var updateTextFitIcon = layer.layout.get(\"icon-text-fit\") !== \"none\" && bucket.hasIconData();\n if (size) {\n var tileScale = Math.pow(2, tr.zoom - tile.tileID.overscaledZ);\n updateVariableAnchorsForBucket(bucket, rotateWithMap, pitchWithMap, variableOffsets, performance2.symbolSize, tr, labelPlaneMatrix, coord.posMatrix, tileScale, size, updateTextFitIcon);\n }\n }\n }\n function updateVariableAnchorsForBucket(bucket, rotateWithMap, pitchWithMap, variableOffsets, symbolSize, transform, labelPlaneMatrix, posMatrix, tileScale, size, updateTextFitIcon) {\n var placedSymbols = bucket.text.placedSymbolArray;\n var dynamicTextLayoutVertexArray = bucket.text.dynamicLayoutVertexArray;\n var dynamicIconLayoutVertexArray = bucket.icon.dynamicLayoutVertexArray;\n var placedTextShifts = {};\n dynamicTextLayoutVertexArray.clear();\n for (var s = 0; s < placedSymbols.length; s++) {\n var symbol = placedSymbols.get(s);\n var skipOrientation = bucket.allowVerticalPlacement && !symbol.placedOrientation;\n var variableOffset = !symbol.hidden && symbol.crossTileID && !skipOrientation ? variableOffsets[symbol.crossTileID] : null;\n if (!variableOffset) {\n hideGlyphs(symbol.numGlyphs, dynamicTextLayoutVertexArray);\n } else {\n var tileAnchor = new performance2.Point(symbol.anchorX, symbol.anchorY);\n var projectedAnchor = project(tileAnchor, pitchWithMap ? posMatrix : labelPlaneMatrix);\n var perspectiveRatio = getPerspectiveRatio(transform.cameraToCenterDistance, projectedAnchor.signedDistanceFromCamera);\n var renderTextSize = symbolSize.evaluateSizeForFeature(bucket.textSizeData, size, symbol) * perspectiveRatio / performance2.ONE_EM;\n if (pitchWithMap) {\n renderTextSize *= bucket.tilePixelRatio / tileScale;\n }\n var width = variableOffset.width;\n var height = variableOffset.height;\n var anchor = variableOffset.anchor;\n var textOffset = variableOffset.textOffset;\n var textBoxScale = variableOffset.textBoxScale;\n var shift = calculateVariableRenderShift(anchor, width, height, textOffset, textBoxScale, renderTextSize);\n var shiftedAnchor = pitchWithMap ? project(tileAnchor.add(shift), labelPlaneMatrix).point : projectedAnchor.point.add(rotateWithMap ? shift.rotate(-transform.angle) : shift);\n var angle = bucket.allowVerticalPlacement && symbol.placedOrientation === performance2.WritingMode.vertical ? Math.PI / 2 : 0;\n for (var g = 0; g < symbol.numGlyphs; g++) {\n performance2.addDynamicAttributes(dynamicTextLayoutVertexArray, shiftedAnchor, angle);\n }\n if (updateTextFitIcon && symbol.associatedIconIndex >= 0) {\n placedTextShifts[symbol.associatedIconIndex] = {\n shiftedAnchor,\n angle\n };\n }\n }\n }\n if (updateTextFitIcon) {\n dynamicIconLayoutVertexArray.clear();\n var placedIcons = bucket.icon.placedSymbolArray;\n for (var i = 0; i < placedIcons.length; i++) {\n var placedIcon = placedIcons.get(i);\n if (placedIcon.hidden) {\n hideGlyphs(placedIcon.numGlyphs, dynamicIconLayoutVertexArray);\n } else {\n var shift$1 = placedTextShifts[i];\n if (!shift$1) {\n hideGlyphs(placedIcon.numGlyphs, dynamicIconLayoutVertexArray);\n } else {\n for (var g$1 = 0; g$1 < placedIcon.numGlyphs; g$1++) {\n performance2.addDynamicAttributes(dynamicIconLayoutVertexArray, shift$1.shiftedAnchor, shift$1.angle);\n }\n }\n }\n }\n bucket.icon.dynamicLayoutVertexBuffer.updateData(dynamicIconLayoutVertexArray);\n }\n bucket.text.dynamicLayoutVertexBuffer.updateData(dynamicTextLayoutVertexArray);\n }\n function getSymbolProgramName(isSDF, isText, bucket) {\n if (bucket.iconsInText && isText) {\n return \"symbolTextAndIcon\";\n } else if (isSDF) {\n return \"symbolSDF\";\n } else {\n return \"symbolIcon\";\n }\n }\n function drawLayerSymbols(painter, sourceCache, layer, coords, isText, translate, translateAnchor, rotationAlignment, pitchAlignment, keepUpright, stencilMode, colorMode) {\n var context = painter.context;\n var gl2 = context.gl;\n var tr = painter.transform;\n var rotateWithMap = rotationAlignment === \"map\";\n var pitchWithMap = pitchAlignment === \"map\";\n var alongLine = rotateWithMap && layer.layout.get(\"symbol-placement\") !== \"point\";\n var rotateInShader = rotateWithMap && !pitchWithMap && !alongLine;\n var hasSortKey = layer.layout.get(\"symbol-sort-key\").constantOr(1) !== void 0;\n var sortFeaturesByKey = false;\n var depthMode = painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n var variablePlacement = layer.layout.get(\"text-variable-anchor\");\n var tileRenderState = [];\n for (var i$1 = 0, list$1 = coords; i$1 < list$1.length; i$1 += 1) {\n var coord = list$1[i$1];\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var buffers = isText ? bucket.text : bucket.icon;\n if (!buffers || !buffers.segments.get().length) {\n continue;\n }\n var programConfiguration = buffers.programConfigurations.get(layer.id);\n var isSDF = isText || bucket.sdfIcons;\n var sizeData = isText ? bucket.textSizeData : bucket.iconSizeData;\n var transformed = pitchWithMap || tr.pitch !== 0;\n var program = painter.useProgram(getSymbolProgramName(isSDF, isText, bucket), programConfiguration);\n var size = performance2.evaluateSizeForZoom(sizeData, tr.zoom);\n var texSize = void 0;\n var texSizeIcon = [\n 0,\n 0\n ];\n var atlasTexture = void 0;\n var atlasInterpolation = void 0;\n var atlasTextureIcon = null;\n var atlasInterpolationIcon = void 0;\n if (isText) {\n atlasTexture = tile.glyphAtlasTexture;\n atlasInterpolation = gl2.LINEAR;\n texSize = tile.glyphAtlasTexture.size;\n if (bucket.iconsInText) {\n texSizeIcon = tile.imageAtlasTexture.size;\n atlasTextureIcon = tile.imageAtlasTexture;\n var zoomDependentSize = sizeData.kind === \"composite\" || sizeData.kind === \"camera\";\n atlasInterpolationIcon = transformed || painter.options.rotating || painter.options.zooming || zoomDependentSize ? gl2.LINEAR : gl2.NEAREST;\n }\n } else {\n var iconScaled = layer.layout.get(\"icon-size\").constantOr(0) !== 1 || bucket.iconsNeedLinear;\n atlasTexture = tile.imageAtlasTexture;\n atlasInterpolation = isSDF || painter.options.rotating || painter.options.zooming || iconScaled || transformed ? gl2.LINEAR : gl2.NEAREST;\n texSize = tile.imageAtlasTexture.size;\n }\n var s = pixelsToTileUnits(tile, 1, painter.transform.zoom);\n var labelPlaneMatrix = getLabelPlaneMatrix(coord.posMatrix, pitchWithMap, rotateWithMap, painter.transform, s);\n var glCoordMatrix = getGlCoordMatrix(coord.posMatrix, pitchWithMap, rotateWithMap, painter.transform, s);\n var hasVariableAnchors = variablePlacement && bucket.hasTextData();\n var updateTextFitIcon = layer.layout.get(\"icon-text-fit\") !== \"none\" && hasVariableAnchors && bucket.hasIconData();\n if (alongLine) {\n updateLineLabels(bucket, coord.posMatrix, painter, isText, labelPlaneMatrix, glCoordMatrix, pitchWithMap, keepUpright);\n }\n var matrix = painter.translatePosMatrix(coord.posMatrix, tile, translate, translateAnchor), uLabelPlaneMatrix = alongLine || isText && variablePlacement || updateTextFitIcon ? identityMat4 : labelPlaneMatrix, uglCoordMatrix = painter.translatePosMatrix(glCoordMatrix, tile, translate, translateAnchor, true);\n var hasHalo = isSDF && layer.paint.get(isText ? \"text-halo-width\" : \"icon-halo-width\").constantOr(1) !== 0;\n var uniformValues = void 0;\n if (isSDF) {\n if (!bucket.iconsInText) {\n uniformValues = symbolSDFUniformValues(sizeData.kind, size, rotateInShader, pitchWithMap, painter, matrix, uLabelPlaneMatrix, uglCoordMatrix, isText, texSize, true);\n } else {\n uniformValues = symbolTextAndIconUniformValues(sizeData.kind, size, rotateInShader, pitchWithMap, painter, matrix, uLabelPlaneMatrix, uglCoordMatrix, texSize, texSizeIcon);\n }\n } else {\n uniformValues = symbolIconUniformValues(sizeData.kind, size, rotateInShader, pitchWithMap, painter, matrix, uLabelPlaneMatrix, uglCoordMatrix, isText, texSize);\n }\n var state = {\n program,\n buffers,\n uniformValues,\n atlasTexture,\n atlasTextureIcon,\n atlasInterpolation,\n atlasInterpolationIcon,\n isSDF,\n hasHalo\n };\n if (hasSortKey && bucket.canOverlap) {\n sortFeaturesByKey = true;\n var oldSegments = buffers.segments.get();\n for (var i = 0, list = oldSegments; i < list.length; i += 1) {\n var segment = list[i];\n tileRenderState.push({\n segments: new performance2.SegmentVector([segment]),\n sortKey: segment.sortKey,\n state\n });\n }\n } else {\n tileRenderState.push({\n segments: buffers.segments,\n sortKey: 0,\n state\n });\n }\n }\n if (sortFeaturesByKey) {\n tileRenderState.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$2 = 0, list$2 = tileRenderState; i$2 < list$2.length; i$2 += 1) {\n var segmentState = list$2[i$2];\n var state$1 = segmentState.state;\n context.activeTexture.set(gl2.TEXTURE0);\n state$1.atlasTexture.bind(state$1.atlasInterpolation, gl2.CLAMP_TO_EDGE);\n if (state$1.atlasTextureIcon) {\n context.activeTexture.set(gl2.TEXTURE1);\n if (state$1.atlasTextureIcon) {\n state$1.atlasTextureIcon.bind(state$1.atlasInterpolationIcon, gl2.CLAMP_TO_EDGE);\n }\n }\n if (state$1.isSDF) {\n var uniformValues$1 = state$1.uniformValues;\n if (state$1.hasHalo) {\n uniformValues$1[\"u_is_halo\"] = 1;\n drawSymbolElements(state$1.buffers, segmentState.segments, layer, painter, state$1.program, depthMode, stencilMode, colorMode, uniformValues$1);\n }\n uniformValues$1[\"u_is_halo\"] = 0;\n }\n drawSymbolElements(state$1.buffers, segmentState.segments, layer, painter, state$1.program, depthMode, stencilMode, colorMode, state$1.uniformValues);\n }\n }\n function drawSymbolElements(buffers, segments, layer, painter, program, depthMode, stencilMode, colorMode, uniformValues) {\n var context = painter.context;\n var gl2 = context.gl;\n program.draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, uniformValues, layer.id, buffers.layoutVertexBuffer, buffers.indexBuffer, segments, layer.paint, painter.transform.zoom, buffers.programConfigurations.get(layer.id), buffers.dynamicLayoutVertexBuffer, buffers.opacityVertexBuffer);\n }\n function drawCircles(painter, sourceCache, layer, coords) {\n if (painter.renderPass !== \"translucent\") {\n return;\n }\n var opacity = layer.paint.get(\"circle-opacity\");\n var strokeWidth = layer.paint.get(\"circle-stroke-width\");\n var strokeOpacity = layer.paint.get(\"circle-stroke-opacity\");\n var sortFeaturesByKey = layer.layout.get(\"circle-sort-key\").constantOr(1) !== void 0;\n if (opacity.constantOr(1) === 0 && (strokeWidth.constantOr(1) === 0 || strokeOpacity.constantOr(1) === 0)) {\n return;\n }\n var context = painter.context;\n var gl2 = context.gl;\n var depthMode = painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n var stencilMode = StencilMode.disabled;\n var colorMode = painter.colorModeForRenderPass();\n var segmentsRenderStates = [];\n for (var i = 0; i < coords.length; i++) {\n var coord = coords[i];\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var program = painter.useProgram(\"circle\", programConfiguration);\n var layoutVertexBuffer = bucket.layoutVertexBuffer;\n var indexBuffer = bucket.indexBuffer;\n var uniformValues = circleUniformValues(painter, coord, tile, layer);\n var state = {\n programConfiguration,\n program,\n layoutVertexBuffer,\n indexBuffer,\n uniformValues\n };\n if (sortFeaturesByKey) {\n var oldSegments = bucket.segments.get();\n for (var i$1 = 0, list = oldSegments; i$1 < list.length; i$1 += 1) {\n var segment = list[i$1];\n segmentsRenderStates.push({\n segments: new performance2.SegmentVector([segment]),\n sortKey: segment.sortKey,\n state\n });\n }\n } else {\n segmentsRenderStates.push({\n segments: bucket.segments,\n sortKey: 0,\n state\n });\n }\n }\n if (sortFeaturesByKey) {\n segmentsRenderStates.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$2 = 0, list$1 = segmentsRenderStates; i$2 < list$1.length; i$2 += 1) {\n var segmentsState = list$1[i$2];\n var ref = segmentsState.state;\n var programConfiguration$1 = ref.programConfiguration;\n var program$1 = ref.program;\n var layoutVertexBuffer$1 = ref.layoutVertexBuffer;\n var indexBuffer$1 = ref.indexBuffer;\n var uniformValues$1 = ref.uniformValues;\n var segments = segmentsState.segments;\n program$1.draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, uniformValues$1, layer.id, layoutVertexBuffer$1, indexBuffer$1, segments, layer.paint, painter.transform.zoom, programConfiguration$1);\n }\n }\n function drawHeatmap(painter, sourceCache, layer, coords) {\n if (layer.paint.get(\"heatmap-opacity\") === 0) {\n return;\n }\n if (painter.renderPass === \"offscreen\") {\n var context = painter.context;\n var gl2 = context.gl;\n var stencilMode = StencilMode.disabled;\n var colorMode = new ColorMode([\n gl2.ONE,\n gl2.ONE\n ], performance2.Color.transparent, [\n true,\n true,\n true,\n true\n ]);\n bindFramebuffer(context, painter, layer);\n context.clear({ color: performance2.Color.transparent });\n for (var i = 0; i < coords.length; i++) {\n var coord = coords[i];\n if (sourceCache.hasRenderableParent(coord)) {\n continue;\n }\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var program = painter.useProgram(\"heatmap\", programConfiguration);\n var ref = painter.transform;\n var zoom = ref.zoom;\n program.draw(context, gl2.TRIANGLES, DepthMode.disabled, stencilMode, colorMode, CullFaceMode.disabled, heatmapUniformValues(coord.posMatrix, tile, zoom, layer.paint.get(\"heatmap-intensity\")), layer.id, bucket.layoutVertexBuffer, bucket.indexBuffer, bucket.segments, layer.paint, painter.transform.zoom, programConfiguration);\n }\n context.viewport.set([\n 0,\n 0,\n painter.width,\n painter.height\n ]);\n } else if (painter.renderPass === \"translucent\") {\n painter.context.setColorMode(painter.colorModeForRenderPass());\n renderTextureToMap(painter, layer);\n }\n }\n function bindFramebuffer(context, painter, layer) {\n var gl2 = context.gl;\n context.activeTexture.set(gl2.TEXTURE1);\n context.viewport.set([\n 0,\n 0,\n painter.width / 4,\n painter.height / 4\n ]);\n var fbo = layer.heatmapFbo;\n if (!fbo) {\n var texture = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, texture);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, gl2.LINEAR);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, gl2.LINEAR);\n fbo = layer.heatmapFbo = context.createFramebuffer(painter.width / 4, painter.height / 4, false);\n bindTextureToFramebuffer(context, painter, texture, fbo);\n } else {\n gl2.bindTexture(gl2.TEXTURE_2D, fbo.colorAttachment.get());\n context.bindFramebuffer.set(fbo.framebuffer);\n }\n }\n function bindTextureToFramebuffer(context, painter, texture, fbo) {\n var gl2 = context.gl;\n var internalFormat = context.extRenderToTextureHalfFloat ? context.extTextureHalfFloat.HALF_FLOAT_OES : gl2.UNSIGNED_BYTE;\n gl2.texImage2D(gl2.TEXTURE_2D, 0, gl2.RGBA, painter.width / 4, painter.height / 4, 0, gl2.RGBA, internalFormat, null);\n fbo.colorAttachment.set(texture);\n }\n function renderTextureToMap(painter, layer) {\n var context = painter.context;\n var gl2 = context.gl;\n var fbo = layer.heatmapFbo;\n if (!fbo) {\n return;\n }\n context.activeTexture.set(gl2.TEXTURE0);\n gl2.bindTexture(gl2.TEXTURE_2D, fbo.colorAttachment.get());\n context.activeTexture.set(gl2.TEXTURE1);\n var colorRampTexture = layer.colorRampTexture;\n if (!colorRampTexture) {\n colorRampTexture = layer.colorRampTexture = new performance2.Texture(context, layer.colorRamp, gl2.RGBA);\n }\n colorRampTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n painter.useProgram(\"heatmapTexture\").draw(context, gl2.TRIANGLES, DepthMode.disabled, StencilMode.disabled, painter.colorModeForRenderPass(), CullFaceMode.disabled, heatmapTextureUniformValues(painter, layer, 0, 1), layer.id, painter.viewportBuffer, painter.quadTriangleIndexBuffer, painter.viewportSegments, layer.paint, painter.transform.zoom);\n }\n function drawLine(painter, sourceCache, layer, coords) {\n if (painter.renderPass !== \"translucent\") {\n return;\n }\n var opacity = layer.paint.get(\"line-opacity\");\n var width = layer.paint.get(\"line-width\");\n if (opacity.constantOr(1) === 0 || width.constantOr(1) === 0) {\n return;\n }\n var depthMode = painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n var colorMode = painter.colorModeForRenderPass();\n var dasharray = layer.paint.get(\"line-dasharray\");\n var patternProperty = layer.paint.get(\"line-pattern\");\n var image = patternProperty.constantOr(1);\n var gradient = layer.paint.get(\"line-gradient\");\n var crossfade = layer.getCrossfadeParameters();\n var programId = image ? \"linePattern\" : dasharray ? \"lineSDF\" : gradient ? \"lineGradient\" : \"line\";\n var context = painter.context;\n var gl2 = context.gl;\n var firstTile = true;\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = sourceCache.getTile(coord);\n if (image && !tile.patternsLoaded()) {\n continue;\n }\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var prevProgram = painter.context.program.get();\n var program = painter.useProgram(programId, programConfiguration);\n var programChanged = firstTile || program.program !== prevProgram;\n var constantPattern = patternProperty.constantOr(null);\n if (constantPattern && tile.imageAtlas) {\n var atlas = tile.imageAtlas;\n var posTo = atlas.patternPositions[constantPattern.to.toString()];\n var posFrom = atlas.patternPositions[constantPattern.from.toString()];\n if (posTo && posFrom) {\n programConfiguration.setConstantPatternPositions(posTo, posFrom);\n }\n }\n var uniformValues = image ? linePatternUniformValues(painter, tile, layer, crossfade) : dasharray ? lineSDFUniformValues(painter, tile, layer, dasharray, crossfade) : gradient ? lineGradientUniformValues(painter, tile, layer, bucket.lineClipsArray.length) : lineUniformValues(painter, tile, layer);\n if (image) {\n context.activeTexture.set(gl2.TEXTURE0);\n tile.imageAtlasTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n programConfiguration.updatePaintBuffers(crossfade);\n } else if (dasharray && (programChanged || painter.lineAtlas.dirty)) {\n context.activeTexture.set(gl2.TEXTURE0);\n painter.lineAtlas.bind(context);\n } else if (gradient) {\n var layerGradient = bucket.gradients[layer.id];\n var gradientTexture = layerGradient.texture;\n if (layer.gradientVersion !== layerGradient.version) {\n var textureResolution = 256;\n if (layer.stepInterpolant) {\n var sourceMaxZoom = sourceCache.getSource().maxzoom;\n var potentialOverzoom = coord.canonical.z === sourceMaxZoom ? Math.ceil(1 << painter.transform.maxZoom - coord.canonical.z) : 1;\n var lineLength = bucket.maxLineLength / performance2.EXTENT;\n var maxTilePixelSize = 1024;\n var maxTextureCoverage = lineLength * maxTilePixelSize * potentialOverzoom;\n textureResolution = performance2.clamp(performance2.nextPowerOfTwo(maxTextureCoverage), 256, context.maxTextureSize);\n }\n layerGradient.gradient = performance2.renderColorRamp({\n expression: layer.gradientExpression(),\n evaluationKey: \"lineProgress\",\n resolution: textureResolution,\n image: layerGradient.gradient || void 0,\n clips: bucket.lineClipsArray\n });\n if (layerGradient.texture) {\n layerGradient.texture.update(layerGradient.gradient);\n } else {\n layerGradient.texture = new performance2.Texture(context, layerGradient.gradient, gl2.RGBA);\n }\n layerGradient.version = layer.gradientVersion;\n gradientTexture = layerGradient.texture;\n }\n context.activeTexture.set(gl2.TEXTURE0);\n gradientTexture.bind(layer.stepInterpolant ? gl2.NEAREST : gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n }\n program.draw(context, gl2.TRIANGLES, depthMode, painter.stencilModeForClipping(coord), colorMode, CullFaceMode.disabled, uniformValues, layer.id, bucket.layoutVertexBuffer, bucket.indexBuffer, bucket.segments, layer.paint, painter.transform.zoom, programConfiguration, bucket.layoutVertexBuffer2);\n firstTile = false;\n }\n }\n function drawFill(painter, sourceCache, layer, coords) {\n var color2 = layer.paint.get(\"fill-color\");\n var opacity = layer.paint.get(\"fill-opacity\");\n if (opacity.constantOr(1) === 0) {\n return;\n }\n var colorMode = painter.colorModeForRenderPass();\n var pattern = layer.paint.get(\"fill-pattern\");\n var pass = painter.opaquePassEnabledForLayer() && (!pattern.constantOr(1) && color2.constantOr(performance2.Color.transparent).a === 1 && opacity.constantOr(0) === 1) ? \"opaque\" : \"translucent\";\n if (painter.renderPass === pass) {\n var depthMode = painter.depthModeForSublayer(1, painter.renderPass === \"opaque\" ? DepthMode.ReadWrite : DepthMode.ReadOnly);\n drawFillTiles(painter, sourceCache, layer, coords, depthMode, colorMode, false);\n }\n if (painter.renderPass === \"translucent\" && layer.paint.get(\"fill-antialias\")) {\n var depthMode$1 = painter.depthModeForSublayer(layer.getPaintProperty(\"fill-outline-color\") ? 2 : 0, DepthMode.ReadOnly);\n drawFillTiles(painter, sourceCache, layer, coords, depthMode$1, colorMode, true);\n }\n }\n function drawFillTiles(painter, sourceCache, layer, coords, depthMode, colorMode, isOutline) {\n var gl2 = painter.context.gl;\n var patternProperty = layer.paint.get(\"fill-pattern\");\n var image = patternProperty && patternProperty.constantOr(1);\n var crossfade = layer.getCrossfadeParameters();\n var drawMode, programName, uniformValues, indexBuffer, segments;\n if (!isOutline) {\n programName = image ? \"fillPattern\" : \"fill\";\n drawMode = gl2.TRIANGLES;\n } else {\n programName = image && !layer.getPaintProperty(\"fill-outline-color\") ? \"fillOutlinePattern\" : \"fillOutline\";\n drawMode = gl2.LINES;\n }\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = sourceCache.getTile(coord);\n if (image && !tile.patternsLoaded()) {\n continue;\n }\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var program = painter.useProgram(programName, programConfiguration);\n if (image) {\n painter.context.activeTexture.set(gl2.TEXTURE0);\n tile.imageAtlasTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n programConfiguration.updatePaintBuffers(crossfade);\n }\n var constantPattern = patternProperty.constantOr(null);\n if (constantPattern && tile.imageAtlas) {\n var atlas = tile.imageAtlas;\n var posTo = atlas.patternPositions[constantPattern.to.toString()];\n var posFrom = atlas.patternPositions[constantPattern.from.toString()];\n if (posTo && posFrom) {\n programConfiguration.setConstantPatternPositions(posTo, posFrom);\n }\n }\n var tileMatrix = painter.translatePosMatrix(coord.posMatrix, tile, layer.paint.get(\"fill-translate\"), layer.paint.get(\"fill-translate-anchor\"));\n if (!isOutline) {\n indexBuffer = bucket.indexBuffer;\n segments = bucket.segments;\n uniformValues = image ? fillPatternUniformValues(tileMatrix, painter, crossfade, tile) : fillUniformValues(tileMatrix);\n } else {\n indexBuffer = bucket.indexBuffer2;\n segments = bucket.segments2;\n var drawingBufferSize = [\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight\n ];\n uniformValues = programName === \"fillOutlinePattern\" && image ? fillOutlinePatternUniformValues(tileMatrix, painter, crossfade, tile, drawingBufferSize) : fillOutlineUniformValues(tileMatrix, drawingBufferSize);\n }\n program.draw(painter.context, drawMode, depthMode, painter.stencilModeForClipping(coord), colorMode, CullFaceMode.disabled, uniformValues, layer.id, bucket.layoutVertexBuffer, indexBuffer, segments, layer.paint, painter.transform.zoom, programConfiguration);\n }\n }\n function draw(painter, source, layer, coords) {\n var opacity = layer.paint.get(\"fill-extrusion-opacity\");\n if (opacity === 0) {\n return;\n }\n if (painter.renderPass === \"translucent\") {\n var depthMode = new DepthMode(painter.context.gl.LEQUAL, DepthMode.ReadWrite, painter.depthRangeFor3D);\n if (opacity === 1 && !layer.paint.get(\"fill-extrusion-pattern\").constantOr(1)) {\n var colorMode = painter.colorModeForRenderPass();\n drawExtrusionTiles(painter, source, layer, coords, depthMode, StencilMode.disabled, colorMode);\n } else {\n drawExtrusionTiles(painter, source, layer, coords, depthMode, StencilMode.disabled, ColorMode.disabled);\n drawExtrusionTiles(painter, source, layer, coords, depthMode, painter.stencilModeFor3D(), painter.colorModeForRenderPass());\n }\n }\n }\n function drawExtrusionTiles(painter, source, layer, coords, depthMode, stencilMode, colorMode) {\n var context = painter.context;\n var gl2 = context.gl;\n var patternProperty = layer.paint.get(\"fill-extrusion-pattern\");\n var image = patternProperty.constantOr(1);\n var crossfade = layer.getCrossfadeParameters();\n var opacity = layer.paint.get(\"fill-extrusion-opacity\");\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = source.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var program = painter.useProgram(image ? \"fillExtrusionPattern\" : \"fillExtrusion\", programConfiguration);\n if (image) {\n painter.context.activeTexture.set(gl2.TEXTURE0);\n tile.imageAtlasTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n programConfiguration.updatePaintBuffers(crossfade);\n }\n var constantPattern = patternProperty.constantOr(null);\n if (constantPattern && tile.imageAtlas) {\n var atlas = tile.imageAtlas;\n var posTo = atlas.patternPositions[constantPattern.to.toString()];\n var posFrom = atlas.patternPositions[constantPattern.from.toString()];\n if (posTo && posFrom) {\n programConfiguration.setConstantPatternPositions(posTo, posFrom);\n }\n }\n var matrix = painter.translatePosMatrix(coord.posMatrix, tile, layer.paint.get(\"fill-extrusion-translate\"), layer.paint.get(\"fill-extrusion-translate-anchor\"));\n var shouldUseVerticalGradient = layer.paint.get(\"fill-extrusion-vertical-gradient\");\n var uniformValues = image ? fillExtrusionPatternUniformValues(matrix, painter, shouldUseVerticalGradient, opacity, coord, crossfade, tile) : fillExtrusionUniformValues(matrix, painter, shouldUseVerticalGradient, opacity);\n program.draw(context, context.gl.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.backCCW, uniformValues, layer.id, bucket.layoutVertexBuffer, bucket.indexBuffer, bucket.segments, layer.paint, painter.transform.zoom, programConfiguration);\n }\n }\n function drawHillshade(painter, sourceCache, layer, tileIDs) {\n if (painter.renderPass !== \"offscreen\" && painter.renderPass !== \"translucent\") {\n return;\n }\n var context = painter.context;\n var depthMode = painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n var colorMode = painter.colorModeForRenderPass();\n var ref = painter.renderPass === \"translucent\" ? painter.stencilConfigForOverlap(tileIDs) : [\n {},\n tileIDs\n ];\n var stencilModes = ref[0];\n var coords = ref[1];\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = sourceCache.getTile(coord);\n if (tile.needsHillshadePrepare && painter.renderPass === \"offscreen\") {\n prepareHillshade(painter, tile, layer, depthMode, StencilMode.disabled, colorMode);\n } else if (painter.renderPass === \"translucent\") {\n renderHillshade(painter, tile, layer, depthMode, stencilModes[coord.overscaledZ], colorMode);\n }\n }\n context.viewport.set([\n 0,\n 0,\n painter.width,\n painter.height\n ]);\n }\n function renderHillshade(painter, tile, layer, depthMode, stencilMode, colorMode) {\n var context = painter.context;\n var gl2 = context.gl;\n var fbo = tile.fbo;\n if (!fbo) {\n return;\n }\n var program = painter.useProgram(\"hillshade\");\n context.activeTexture.set(gl2.TEXTURE0);\n gl2.bindTexture(gl2.TEXTURE_2D, fbo.colorAttachment.get());\n var uniformValues = hillshadeUniformValues(painter, tile, layer);\n program.draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, uniformValues, layer.id, painter.rasterBoundsBuffer, painter.quadTriangleIndexBuffer, painter.rasterBoundsSegments);\n }\n function prepareHillshade(painter, tile, layer, depthMode, stencilMode, colorMode) {\n var context = painter.context;\n var gl2 = context.gl;\n var dem = tile.dem;\n if (dem && dem.data) {\n var tileSize = dem.dim;\n var textureStride = dem.stride;\n var pixelData = dem.getPixels();\n context.activeTexture.set(gl2.TEXTURE1);\n context.pixelStoreUnpackPremultiplyAlpha.set(false);\n tile.demTexture = tile.demTexture || painter.getTileTexture(textureStride);\n if (tile.demTexture) {\n var demTexture = tile.demTexture;\n demTexture.update(pixelData, { premultiply: false });\n demTexture.bind(gl2.NEAREST, gl2.CLAMP_TO_EDGE);\n } else {\n tile.demTexture = new performance2.Texture(context, pixelData, gl2.RGBA, { premultiply: false });\n tile.demTexture.bind(gl2.NEAREST, gl2.CLAMP_TO_EDGE);\n }\n context.activeTexture.set(gl2.TEXTURE0);\n var fbo = tile.fbo;\n if (!fbo) {\n var renderTexture = new performance2.Texture(context, {\n width: tileSize,\n height: tileSize,\n data: null\n }, gl2.RGBA);\n renderTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n fbo = tile.fbo = context.createFramebuffer(tileSize, tileSize, true);\n fbo.colorAttachment.set(renderTexture.texture);\n }\n context.bindFramebuffer.set(fbo.framebuffer);\n context.viewport.set([\n 0,\n 0,\n tileSize,\n tileSize\n ]);\n painter.useProgram(\"hillshadePrepare\").draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, hillshadeUniformPrepareValues(tile.tileID, dem), layer.id, painter.rasterBoundsBuffer, painter.quadTriangleIndexBuffer, painter.rasterBoundsSegments);\n tile.needsHillshadePrepare = false;\n }\n }\n function drawRaster(painter, sourceCache, layer, tileIDs) {\n if (painter.renderPass !== \"translucent\") {\n return;\n }\n if (layer.paint.get(\"raster-opacity\") === 0) {\n return;\n }\n if (!tileIDs.length) {\n return;\n }\n var context = painter.context;\n var gl2 = context.gl;\n var source = sourceCache.getSource();\n var program = painter.useProgram(\"raster\");\n var colorMode = painter.colorModeForRenderPass();\n var ref = source instanceof ImageSource ? [\n {},\n tileIDs\n ] : painter.stencilConfigForOverlap(tileIDs);\n var stencilModes = ref[0];\n var coords = ref[1];\n var minTileZ = coords[coords.length - 1].overscaledZ;\n var align = !painter.options.moving;\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var depthMode = painter.depthModeForSublayer(coord.overscaledZ - minTileZ, layer.paint.get(\"raster-opacity\") === 1 ? DepthMode.ReadWrite : DepthMode.ReadOnly, gl2.LESS);\n var tile = sourceCache.getTile(coord);\n var posMatrix = painter.transform.calculatePosMatrix(coord.toUnwrapped(), align);\n tile.registerFadeDuration(layer.paint.get(\"raster-fade-duration\"));\n var parentTile = sourceCache.findLoadedParent(coord, 0), fade = getFadeValues(tile, parentTile, sourceCache, layer, painter.transform);\n var parentScaleBy = void 0, parentTL = void 0;\n var textureFilter = layer.paint.get(\"raster-resampling\") === \"nearest\" ? gl2.NEAREST : gl2.LINEAR;\n context.activeTexture.set(gl2.TEXTURE0);\n tile.texture.bind(textureFilter, gl2.CLAMP_TO_EDGE, gl2.LINEAR_MIPMAP_NEAREST);\n context.activeTexture.set(gl2.TEXTURE1);\n if (parentTile) {\n parentTile.texture.bind(textureFilter, gl2.CLAMP_TO_EDGE, gl2.LINEAR_MIPMAP_NEAREST);\n parentScaleBy = Math.pow(2, parentTile.tileID.overscaledZ - tile.tileID.overscaledZ);\n parentTL = [\n tile.tileID.canonical.x * parentScaleBy % 1,\n tile.tileID.canonical.y * parentScaleBy % 1\n ];\n } else {\n tile.texture.bind(textureFilter, gl2.CLAMP_TO_EDGE, gl2.LINEAR_MIPMAP_NEAREST);\n }\n var uniformValues = rasterUniformValues(posMatrix, parentTL || [\n 0,\n 0\n ], parentScaleBy || 1, fade, layer);\n if (source instanceof ImageSource) {\n program.draw(context, gl2.TRIANGLES, depthMode, StencilMode.disabled, colorMode, CullFaceMode.disabled, uniformValues, layer.id, source.boundsBuffer, painter.quadTriangleIndexBuffer, source.boundsSegments);\n } else {\n program.draw(context, gl2.TRIANGLES, depthMode, stencilModes[coord.overscaledZ], colorMode, CullFaceMode.disabled, uniformValues, layer.id, painter.rasterBoundsBuffer, painter.quadTriangleIndexBuffer, painter.rasterBoundsSegments);\n }\n }\n }\n function getFadeValues(tile, parentTile, sourceCache, layer, transform) {\n var fadeDuration = layer.paint.get(\"raster-fade-duration\");\n if (fadeDuration > 0) {\n var now = performance2.browser.now();\n var sinceTile = (now - tile.timeAdded) / fadeDuration;\n var sinceParent = parentTile ? (now - parentTile.timeAdded) / fadeDuration : -1;\n var source = sourceCache.getSource();\n var idealZ = transform.coveringZoomLevel({\n tileSize: source.tileSize,\n roundZoom: source.roundZoom\n });\n var fadeIn = !parentTile || Math.abs(parentTile.tileID.overscaledZ - idealZ) > Math.abs(tile.tileID.overscaledZ - idealZ);\n var childOpacity = fadeIn && tile.refreshedUponExpiration ? 1 : performance2.clamp(fadeIn ? sinceTile : 1 - sinceParent, 0, 1);\n if (tile.refreshedUponExpiration && sinceTile >= 1) {\n tile.refreshedUponExpiration = false;\n }\n if (parentTile) {\n return {\n opacity: 1,\n mix: 1 - childOpacity\n };\n } else {\n return {\n opacity: childOpacity,\n mix: 0\n };\n }\n } else {\n return {\n opacity: 1,\n mix: 0\n };\n }\n }\n function drawBackground(painter, sourceCache, layer) {\n var color2 = layer.paint.get(\"background-color\");\n var opacity = layer.paint.get(\"background-opacity\");\n if (opacity === 0) {\n return;\n }\n var context = painter.context;\n var gl2 = context.gl;\n var transform = painter.transform;\n var tileSize = transform.tileSize;\n var image = layer.paint.get(\"background-pattern\");\n if (painter.isPatternMissing(image)) {\n return;\n }\n var pass = !image && color2.a === 1 && opacity === 1 && painter.opaquePassEnabledForLayer() ? \"opaque\" : \"translucent\";\n if (painter.renderPass !== pass) {\n return;\n }\n var stencilMode = StencilMode.disabled;\n var depthMode = painter.depthModeForSublayer(0, pass === \"opaque\" ? DepthMode.ReadWrite : DepthMode.ReadOnly);\n var colorMode = painter.colorModeForRenderPass();\n var program = painter.useProgram(image ? \"backgroundPattern\" : \"background\");\n var tileIDs = transform.coveringTiles({ tileSize });\n if (image) {\n context.activeTexture.set(gl2.TEXTURE0);\n painter.imageManager.bind(painter.context);\n }\n var crossfade = layer.getCrossfadeParameters();\n for (var i = 0, list = tileIDs; i < list.length; i += 1) {\n var tileID = list[i];\n var matrix = painter.transform.calculatePosMatrix(tileID.toUnwrapped());\n var uniformValues = image ? backgroundPatternUniformValues(matrix, opacity, painter, image, {\n tileID,\n tileSize\n }, crossfade) : backgroundUniformValues(matrix, opacity, color2);\n program.draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, uniformValues, layer.id, painter.tileExtentBuffer, painter.quadTriangleIndexBuffer, painter.tileExtentSegments);\n }\n }\n var topColor = new performance2.Color(1, 0, 0, 1);\n var btmColor = new performance2.Color(0, 1, 0, 1);\n var leftColor = new performance2.Color(0, 0, 1, 1);\n var rightColor = new performance2.Color(1, 0, 1, 1);\n var centerColor = new performance2.Color(0, 1, 1, 1);\n function drawDebugPadding(painter) {\n var padding2 = painter.transform.padding;\n var lineWidth = 3;\n drawHorizontalLine(painter, painter.transform.height - (padding2.top || 0), lineWidth, topColor);\n drawHorizontalLine(painter, padding2.bottom || 0, lineWidth, btmColor);\n drawVerticalLine(painter, padding2.left || 0, lineWidth, leftColor);\n drawVerticalLine(painter, painter.transform.width - (padding2.right || 0), lineWidth, rightColor);\n var center = painter.transform.centerPoint;\n drawCrosshair(painter, center.x, painter.transform.height - center.y, centerColor);\n }\n function drawCrosshair(painter, x, y, color2) {\n var size = 20;\n var lineWidth = 2;\n drawDebugSSRect(painter, x - lineWidth / 2, y - size / 2, lineWidth, size, color2);\n drawDebugSSRect(painter, x - size / 2, y - lineWidth / 2, size, lineWidth, color2);\n }\n function drawHorizontalLine(painter, y, lineWidth, color2) {\n drawDebugSSRect(painter, 0, y + lineWidth / 2, painter.transform.width, lineWidth, color2);\n }\n function drawVerticalLine(painter, x, lineWidth, color2) {\n drawDebugSSRect(painter, x - lineWidth / 2, 0, lineWidth, painter.transform.height, color2);\n }\n function drawDebugSSRect(painter, x, y, width, height, color2) {\n var context = painter.context;\n var gl2 = context.gl;\n gl2.enable(gl2.SCISSOR_TEST);\n gl2.scissor(x * performance2.browser.devicePixelRatio, y * performance2.browser.devicePixelRatio, width * performance2.browser.devicePixelRatio, height * performance2.browser.devicePixelRatio);\n context.clear({ color: color2 });\n gl2.disable(gl2.SCISSOR_TEST);\n }\n function drawDebug(painter, sourceCache, coords) {\n for (var i = 0; i < coords.length; i++) {\n drawDebugTile(painter, sourceCache, coords[i]);\n }\n }\n function drawDebugTile(painter, sourceCache, coord) {\n var context = painter.context;\n var gl2 = context.gl;\n var posMatrix = coord.posMatrix;\n var program = painter.useProgram(\"debug\");\n var depthMode = DepthMode.disabled;\n var stencilMode = StencilMode.disabled;\n var colorMode = painter.colorModeForRenderPass();\n var id = \"$debug\";\n context.activeTexture.set(gl2.TEXTURE0);\n painter.emptyTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n program.draw(context, gl2.LINE_STRIP, depthMode, stencilMode, colorMode, CullFaceMode.disabled, debugUniformValues(posMatrix, performance2.Color.red), id, painter.debugBuffer, painter.tileBorderIndexBuffer, painter.debugSegments);\n var tileRawData = sourceCache.getTileByID(coord.key).latestRawTileData;\n var tileByteLength = tileRawData && tileRawData.byteLength || 0;\n var tileSizeKb = Math.floor(tileByteLength / 1024);\n var tileSize = sourceCache.getTile(coord).tileSize;\n var scaleRatio = 512 / Math.min(tileSize, 512) * (coord.overscaledZ / painter.transform.zoom) * 0.5;\n var tileIdText = coord.canonical.toString();\n if (coord.overscaledZ !== coord.canonical.z) {\n tileIdText += \" => \" + coord.overscaledZ;\n }\n var tileLabel = tileIdText + \" \" + tileSizeKb + \"kb\";\n drawTextToOverlay(painter, tileLabel);\n program.draw(context, gl2.TRIANGLES, depthMode, stencilMode, ColorMode.alphaBlended, CullFaceMode.disabled, debugUniformValues(posMatrix, performance2.Color.transparent, scaleRatio), id, painter.debugBuffer, painter.quadTriangleIndexBuffer, painter.debugSegments);\n }\n function drawTextToOverlay(painter, text) {\n painter.initDebugOverlayCanvas();\n var canvas = painter.debugOverlayCanvas;\n var gl2 = painter.context.gl;\n var ctx2d = painter.debugOverlayCanvas.getContext(\"2d\");\n ctx2d.clearRect(0, 0, canvas.width, canvas.height);\n ctx2d.shadowColor = \"white\";\n ctx2d.shadowBlur = 2;\n ctx2d.lineWidth = 1.5;\n ctx2d.strokeStyle = \"white\";\n ctx2d.textBaseline = \"top\";\n ctx2d.font = \"bold 36px Open Sans, sans-serif\";\n ctx2d.fillText(text, 5, 5);\n ctx2d.strokeText(text, 5, 5);\n painter.debugOverlayTexture.update(canvas);\n painter.debugOverlayTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n }\n function drawCustom(painter, sourceCache, layer) {\n var context = painter.context;\n var implementation = layer.implementation;\n if (painter.renderPass === \"offscreen\") {\n var prerender = implementation.prerender;\n if (prerender) {\n painter.setCustomLayerDefaults();\n context.setColorMode(painter.colorModeForRenderPass());\n prerender.call(implementation, context.gl, painter.transform.customLayerMatrix());\n context.setDirty();\n painter.setBaseState();\n }\n } else if (painter.renderPass === \"translucent\") {\n painter.setCustomLayerDefaults();\n context.setColorMode(painter.colorModeForRenderPass());\n context.setStencilMode(StencilMode.disabled);\n var depthMode = implementation.renderingMode === \"3d\" ? new DepthMode(painter.context.gl.LEQUAL, DepthMode.ReadWrite, painter.depthRangeFor3D) : painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n context.setDepthMode(depthMode);\n implementation.render(context.gl, painter.transform.customLayerMatrix());\n context.setDirty();\n painter.setBaseState();\n context.bindFramebuffer.set(null);\n }\n }\n var draw$1 = {\n symbol: drawSymbols,\n circle: drawCircles,\n heatmap: drawHeatmap,\n line: drawLine,\n fill: drawFill,\n \"fill-extrusion\": draw,\n hillshade: drawHillshade,\n raster: drawRaster,\n background: drawBackground,\n debug: drawDebug,\n custom: drawCustom\n };\n var Painter = function Painter2(gl2, transform) {\n this.context = new Context(gl2);\n this.transform = transform;\n this._tileTextures = {};\n this.setup();\n this.numSublayers = SourceCache.maxUnderzooming + SourceCache.maxOverzooming + 1;\n this.depthEpsilon = 1 / Math.pow(2, 16);\n this.crossTileSymbolIndex = new CrossTileSymbolIndex();\n this.gpuTimers = {};\n };\n Painter.prototype.resize = function resize(width, height) {\n this.width = width * performance2.browser.devicePixelRatio;\n this.height = height * performance2.browser.devicePixelRatio;\n this.context.viewport.set([\n 0,\n 0,\n this.width,\n this.height\n ]);\n if (this.style) {\n for (var i = 0, list = this.style._order; i < list.length; i += 1) {\n var layerId = list[i];\n this.style._layers[layerId].resize();\n }\n }\n };\n Painter.prototype.setup = function setup() {\n var context = this.context;\n var tileExtentArray = new performance2.StructArrayLayout2i4();\n tileExtentArray.emplaceBack(0, 0);\n tileExtentArray.emplaceBack(performance2.EXTENT, 0);\n tileExtentArray.emplaceBack(0, performance2.EXTENT);\n tileExtentArray.emplaceBack(performance2.EXTENT, performance2.EXTENT);\n this.tileExtentBuffer = context.createVertexBuffer(tileExtentArray, posAttributes.members);\n this.tileExtentSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n var debugArray = new performance2.StructArrayLayout2i4();\n debugArray.emplaceBack(0, 0);\n debugArray.emplaceBack(performance2.EXTENT, 0);\n debugArray.emplaceBack(0, performance2.EXTENT);\n debugArray.emplaceBack(performance2.EXTENT, performance2.EXTENT);\n this.debugBuffer = context.createVertexBuffer(debugArray, posAttributes.members);\n this.debugSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 5);\n var rasterBoundsArray = new performance2.StructArrayLayout4i8();\n rasterBoundsArray.emplaceBack(0, 0, 0, 0);\n rasterBoundsArray.emplaceBack(performance2.EXTENT, 0, performance2.EXTENT, 0);\n rasterBoundsArray.emplaceBack(0, performance2.EXTENT, 0, performance2.EXTENT);\n rasterBoundsArray.emplaceBack(performance2.EXTENT, performance2.EXTENT, performance2.EXTENT, performance2.EXTENT);\n this.rasterBoundsBuffer = context.createVertexBuffer(rasterBoundsArray, rasterBoundsAttributes.members);\n this.rasterBoundsSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n var viewportArray = new performance2.StructArrayLayout2i4();\n viewportArray.emplaceBack(0, 0);\n viewportArray.emplaceBack(1, 0);\n viewportArray.emplaceBack(0, 1);\n viewportArray.emplaceBack(1, 1);\n this.viewportBuffer = context.createVertexBuffer(viewportArray, posAttributes.members);\n this.viewportSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n var tileLineStripIndices = new performance2.StructArrayLayout1ui2();\n tileLineStripIndices.emplaceBack(0);\n tileLineStripIndices.emplaceBack(1);\n tileLineStripIndices.emplaceBack(3);\n tileLineStripIndices.emplaceBack(2);\n tileLineStripIndices.emplaceBack(0);\n this.tileBorderIndexBuffer = context.createIndexBuffer(tileLineStripIndices);\n var quadTriangleIndices = new performance2.StructArrayLayout3ui6();\n quadTriangleIndices.emplaceBack(0, 1, 2);\n quadTriangleIndices.emplaceBack(2, 1, 3);\n this.quadTriangleIndexBuffer = context.createIndexBuffer(quadTriangleIndices);\n this.emptyTexture = new performance2.Texture(context, {\n width: 1,\n height: 1,\n data: new Uint8Array([\n 0,\n 0,\n 0,\n 0\n ])\n }, context.gl.RGBA);\n var gl2 = this.context.gl;\n this.stencilClearMode = new StencilMode({\n func: gl2.ALWAYS,\n mask: 0\n }, 0, 255, gl2.ZERO, gl2.ZERO, gl2.ZERO);\n };\n Painter.prototype.clearStencil = function clearStencil() {\n var context = this.context;\n var gl2 = context.gl;\n this.nextStencilID = 1;\n this.currentStencilSource = void 0;\n var matrix = performance2.create();\n performance2.ortho(matrix, 0, this.width, this.height, 0, 0, 1);\n performance2.scale(matrix, matrix, [\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight,\n 0\n ]);\n this.useProgram(\"clippingMask\").draw(context, gl2.TRIANGLES, DepthMode.disabled, this.stencilClearMode, ColorMode.disabled, CullFaceMode.disabled, clippingMaskUniformValues(matrix), \"$clipping\", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments);\n };\n Painter.prototype._renderTileClippingMasks = function _renderTileClippingMasks(layer, tileIDs) {\n if (this.currentStencilSource === layer.source || !layer.isTileClipped() || !tileIDs || !tileIDs.length) {\n return;\n }\n this.currentStencilSource = layer.source;\n var context = this.context;\n var gl2 = context.gl;\n if (this.nextStencilID + tileIDs.length > 256) {\n this.clearStencil();\n }\n context.setColorMode(ColorMode.disabled);\n context.setDepthMode(DepthMode.disabled);\n var program = this.useProgram(\"clippingMask\");\n this._tileClippingMaskIDs = {};\n for (var i = 0, list = tileIDs; i < list.length; i += 1) {\n var tileID = list[i];\n var id = this._tileClippingMaskIDs[tileID.key] = this.nextStencilID++;\n program.draw(context, gl2.TRIANGLES, DepthMode.disabled, new StencilMode({\n func: gl2.ALWAYS,\n mask: 0\n }, id, 255, gl2.KEEP, gl2.KEEP, gl2.REPLACE), ColorMode.disabled, CullFaceMode.disabled, clippingMaskUniformValues(tileID.posMatrix), \"$clipping\", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments);\n }\n };\n Painter.prototype.stencilModeFor3D = function stencilModeFor3D() {\n this.currentStencilSource = void 0;\n if (this.nextStencilID + 1 > 256) {\n this.clearStencil();\n }\n var id = this.nextStencilID++;\n var gl2 = this.context.gl;\n return new StencilMode({\n func: gl2.NOTEQUAL,\n mask: 255\n }, id, 255, gl2.KEEP, gl2.KEEP, gl2.REPLACE);\n };\n Painter.prototype.stencilModeForClipping = function stencilModeForClipping(tileID) {\n var gl2 = this.context.gl;\n return new StencilMode({\n func: gl2.EQUAL,\n mask: 255\n }, this._tileClippingMaskIDs[tileID.key], 0, gl2.KEEP, gl2.KEEP, gl2.REPLACE);\n };\n Painter.prototype.stencilConfigForOverlap = function stencilConfigForOverlap(tileIDs) {\n var obj;\n var gl2 = this.context.gl;\n var coords = tileIDs.sort(function(a, b) {\n return b.overscaledZ - a.overscaledZ;\n });\n var minTileZ = coords[coords.length - 1].overscaledZ;\n var stencilValues = coords[0].overscaledZ - minTileZ + 1;\n if (stencilValues > 1) {\n this.currentStencilSource = void 0;\n if (this.nextStencilID + stencilValues > 256) {\n this.clearStencil();\n }\n var zToStencilMode = {};\n for (var i = 0; i < stencilValues; i++) {\n zToStencilMode[i + minTileZ] = new StencilMode({\n func: gl2.GEQUAL,\n mask: 255\n }, i + this.nextStencilID, 255, gl2.KEEP, gl2.KEEP, gl2.REPLACE);\n }\n this.nextStencilID += stencilValues;\n return [\n zToStencilMode,\n coords\n ];\n }\n return [\n (obj = {}, obj[minTileZ] = StencilMode.disabled, obj),\n coords\n ];\n };\n Painter.prototype.colorModeForRenderPass = function colorModeForRenderPass() {\n var gl2 = this.context.gl;\n if (this._showOverdrawInspector) {\n var numOverdrawSteps = 8;\n var a = 1 / numOverdrawSteps;\n return new ColorMode([\n gl2.CONSTANT_COLOR,\n gl2.ONE\n ], new performance2.Color(a, a, a, 0), [\n true,\n true,\n true,\n true\n ]);\n } else if (this.renderPass === \"opaque\") {\n return ColorMode.unblended;\n } else {\n return ColorMode.alphaBlended;\n }\n };\n Painter.prototype.depthModeForSublayer = function depthModeForSublayer(n, mask, func) {\n if (!this.opaquePassEnabledForLayer()) {\n return DepthMode.disabled;\n }\n var depth = 1 - ((1 + this.currentLayer) * this.numSublayers + n) * this.depthEpsilon;\n return new DepthMode(func || this.context.gl.LEQUAL, mask, [\n depth,\n depth\n ]);\n };\n Painter.prototype.opaquePassEnabledForLayer = function opaquePassEnabledForLayer() {\n return this.currentLayer < this.opaquePassCutoff;\n };\n Painter.prototype.render = function render(style, options) {\n var this$1 = this;\n this.style = style;\n this.options = options;\n this.lineAtlas = style.lineAtlas;\n this.imageManager = style.imageManager;\n this.glyphManager = style.glyphManager;\n this.symbolFadeChange = style.placement.symbolFadeChange(performance2.browser.now());\n this.imageManager.beginFrame();\n var layerIds = this.style._order;\n var sourceCaches = this.style.sourceCaches;\n for (var id in sourceCaches) {\n var sourceCache = sourceCaches[id];\n if (sourceCache.used) {\n sourceCache.prepare(this.context);\n }\n }\n var coordsAscending = {};\n var coordsDescending = {};\n var coordsDescendingSymbol = {};\n for (var id$1 in sourceCaches) {\n var sourceCache$1 = sourceCaches[id$1];\n coordsAscending[id$1] = sourceCache$1.getVisibleCoordinates();\n coordsDescending[id$1] = coordsAscending[id$1].slice().reverse();\n coordsDescendingSymbol[id$1] = sourceCache$1.getVisibleCoordinates(true).reverse();\n }\n this.opaquePassCutoff = Infinity;\n for (var i = 0; i < layerIds.length; i++) {\n var layerId = layerIds[i];\n if (this.style._layers[layerId].is3D()) {\n this.opaquePassCutoff = i;\n break;\n }\n }\n this.renderPass = \"offscreen\";\n for (var i$1 = 0, list = layerIds; i$1 < list.length; i$1 += 1) {\n var layerId$1 = list[i$1];\n var layer = this.style._layers[layerId$1];\n if (!layer.hasOffscreenPass() || layer.isHidden(this.transform.zoom)) {\n continue;\n }\n var coords = coordsDescending[layer.source];\n if (layer.type !== \"custom\" && !coords.length) {\n continue;\n }\n this.renderLayer(this, sourceCaches[layer.source], layer, coords);\n }\n this.context.bindFramebuffer.set(null);\n this.context.clear({\n color: options.showOverdrawInspector ? performance2.Color.black : performance2.Color.transparent,\n depth: 1\n });\n this.clearStencil();\n this._showOverdrawInspector = options.showOverdrawInspector;\n this.depthRangeFor3D = [\n 0,\n 1 - (style._order.length + 2) * this.numSublayers * this.depthEpsilon\n ];\n this.renderPass = \"opaque\";\n for (this.currentLayer = layerIds.length - 1; this.currentLayer >= 0; this.currentLayer--) {\n var layer$1 = this.style._layers[layerIds[this.currentLayer]];\n var sourceCache$2 = sourceCaches[layer$1.source];\n var coords$1 = coordsAscending[layer$1.source];\n this._renderTileClippingMasks(layer$1, coords$1);\n this.renderLayer(this, sourceCache$2, layer$1, coords$1);\n }\n this.renderPass = \"translucent\";\n for (this.currentLayer = 0; this.currentLayer < layerIds.length; this.currentLayer++) {\n var layer$2 = this.style._layers[layerIds[this.currentLayer]];\n var sourceCache$3 = sourceCaches[layer$2.source];\n var coords$2 = (layer$2.type === \"symbol\" ? coordsDescendingSymbol : coordsDescending)[layer$2.source];\n this._renderTileClippingMasks(layer$2, coordsAscending[layer$2.source]);\n this.renderLayer(this, sourceCache$3, layer$2, coords$2);\n }\n if (this.options.showTileBoundaries) {\n var selectedSource;\n var sourceCache$4;\n var layers = performance2.values(this.style._layers);\n layers.forEach(function(layer2) {\n if (layer2.source && !layer2.isHidden(this$1.transform.zoom)) {\n if (layer2.source !== (sourceCache$4 && sourceCache$4.id)) {\n sourceCache$4 = this$1.style.sourceCaches[layer2.source];\n }\n if (!selectedSource || selectedSource.getSource().maxzoom < sourceCache$4.getSource().maxzoom) {\n selectedSource = sourceCache$4;\n }\n }\n });\n if (selectedSource) {\n draw$1.debug(this, selectedSource, selectedSource.getVisibleCoordinates());\n }\n }\n if (this.options.showPadding) {\n drawDebugPadding(this);\n }\n this.context.setDefault();\n };\n Painter.prototype.renderLayer = function renderLayer(painter, sourceCache, layer, coords) {\n if (layer.isHidden(this.transform.zoom)) {\n return;\n }\n if (layer.type !== \"background\" && layer.type !== \"custom\" && !coords.length) {\n return;\n }\n this.id = layer.id;\n this.gpuTimingStart(layer);\n draw$1[layer.type](painter, sourceCache, layer, coords, this.style.placement.variableOffsets);\n this.gpuTimingEnd();\n };\n Painter.prototype.gpuTimingStart = function gpuTimingStart(layer) {\n if (!this.options.gpuTiming) {\n return;\n }\n var ext = this.context.extTimerQuery;\n var layerTimer = this.gpuTimers[layer.id];\n if (!layerTimer) {\n layerTimer = this.gpuTimers[layer.id] = {\n calls: 0,\n cpuTime: 0,\n query: ext.createQueryEXT()\n };\n }\n layerTimer.calls++;\n ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, layerTimer.query);\n };\n Painter.prototype.gpuTimingEnd = function gpuTimingEnd() {\n if (!this.options.gpuTiming) {\n return;\n }\n var ext = this.context.extTimerQuery;\n ext.endQueryEXT(ext.TIME_ELAPSED_EXT);\n };\n Painter.prototype.collectGpuTimers = function collectGpuTimers() {\n var currentLayerTimers = this.gpuTimers;\n this.gpuTimers = {};\n return currentLayerTimers;\n };\n Painter.prototype.queryGpuTimers = function queryGpuTimers(gpuTimers) {\n var layers = {};\n for (var layerId in gpuTimers) {\n var gpuTimer = gpuTimers[layerId];\n var ext = this.context.extTimerQuery;\n var gpuTime = ext.getQueryObjectEXT(gpuTimer.query, ext.QUERY_RESULT_EXT) / (1e3 * 1e3);\n ext.deleteQueryEXT(gpuTimer.query);\n layers[layerId] = gpuTime;\n }\n return layers;\n };\n Painter.prototype.translatePosMatrix = function translatePosMatrix(matrix, tile, translate, translateAnchor, inViewportPixelUnitsUnits) {\n if (!translate[0] && !translate[1]) {\n return matrix;\n }\n var angle = inViewportPixelUnitsUnits ? translateAnchor === \"map\" ? this.transform.angle : 0 : translateAnchor === \"viewport\" ? -this.transform.angle : 0;\n if (angle) {\n var sinA = Math.sin(angle);\n var cosA = Math.cos(angle);\n translate = [\n translate[0] * cosA - translate[1] * sinA,\n translate[0] * sinA + translate[1] * cosA\n ];\n }\n var translation = [\n inViewportPixelUnitsUnits ? translate[0] : pixelsToTileUnits(tile, translate[0], this.transform.zoom),\n inViewportPixelUnitsUnits ? translate[1] : pixelsToTileUnits(tile, translate[1], this.transform.zoom),\n 0\n ];\n var translatedMatrix = new Float32Array(16);\n performance2.translate(translatedMatrix, matrix, translation);\n return translatedMatrix;\n };\n Painter.prototype.saveTileTexture = function saveTileTexture(texture) {\n var textures = this._tileTextures[texture.size[0]];\n if (!textures) {\n this._tileTextures[texture.size[0]] = [texture];\n } else {\n textures.push(texture);\n }\n };\n Painter.prototype.getTileTexture = function getTileTexture(size) {\n var textures = this._tileTextures[size];\n return textures && textures.length > 0 ? textures.pop() : null;\n };\n Painter.prototype.isPatternMissing = function isPatternMissing(image) {\n if (!image) {\n return false;\n }\n if (!image.from || !image.to) {\n return true;\n }\n var imagePosA = this.imageManager.getPattern(image.from.toString());\n var imagePosB = this.imageManager.getPattern(image.to.toString());\n return !imagePosA || !imagePosB;\n };\n Painter.prototype.useProgram = function useProgram(name2, programConfiguration) {\n this.cache = this.cache || {};\n var key = \"\" + name2 + (programConfiguration ? programConfiguration.cacheKey : \"\") + (this._showOverdrawInspector ? \"/overdraw\" : \"\");\n if (!this.cache[key]) {\n this.cache[key] = new Program$1(this.context, name2, shaders[name2], programConfiguration, programUniforms[name2], this._showOverdrawInspector);\n }\n return this.cache[key];\n };\n Painter.prototype.setCustomLayerDefaults = function setCustomLayerDefaults() {\n this.context.unbindVAO();\n this.context.cullFace.setDefault();\n this.context.activeTexture.setDefault();\n this.context.pixelStoreUnpack.setDefault();\n this.context.pixelStoreUnpackPremultiplyAlpha.setDefault();\n this.context.pixelStoreUnpackFlipY.setDefault();\n };\n Painter.prototype.setBaseState = function setBaseState() {\n var gl2 = this.context.gl;\n this.context.cullFace.set(false);\n this.context.viewport.set([\n 0,\n 0,\n this.width,\n this.height\n ]);\n this.context.blendEquation.set(gl2.FUNC_ADD);\n };\n Painter.prototype.initDebugOverlayCanvas = function initDebugOverlayCanvas() {\n if (this.debugOverlayCanvas == null) {\n this.debugOverlayCanvas = performance2.window.document.createElement(\"canvas\");\n this.debugOverlayCanvas.width = 512;\n this.debugOverlayCanvas.height = 512;\n var gl2 = this.context.gl;\n this.debugOverlayTexture = new performance2.Texture(this.context, this.debugOverlayCanvas, gl2.RGBA);\n }\n };\n Painter.prototype.destroy = function destroy() {\n this.emptyTexture.destroy();\n if (this.debugOverlayTexture) {\n this.debugOverlayTexture.destroy();\n }\n };\n var Frustum = function Frustum2(points_, planes_) {\n this.points = points_;\n this.planes = planes_;\n };\n Frustum.fromInvProjectionMatrix = function fromInvProjectionMatrix(invProj, worldSize, zoom) {\n var clipSpaceCorners = [\n [\n -1,\n 1,\n -1,\n 1\n ],\n [\n 1,\n 1,\n -1,\n 1\n ],\n [\n 1,\n -1,\n -1,\n 1\n ],\n [\n -1,\n -1,\n -1,\n 1\n ],\n [\n -1,\n 1,\n 1,\n 1\n ],\n [\n 1,\n 1,\n 1,\n 1\n ],\n [\n 1,\n -1,\n 1,\n 1\n ],\n [\n -1,\n -1,\n 1,\n 1\n ]\n ];\n var scale = Math.pow(2, zoom);\n var frustumCoords = clipSpaceCorners.map(function(v) {\n return performance2.transformMat4([], v, invProj);\n }).map(function(v) {\n return performance2.scale$1([], v, 1 / v[3] / worldSize * scale);\n });\n var frustumPlanePointIndices = [\n [\n 0,\n 1,\n 2\n ],\n [\n 6,\n 5,\n 4\n ],\n [\n 0,\n 3,\n 7\n ],\n [\n 2,\n 1,\n 5\n ],\n [\n 3,\n 2,\n 6\n ],\n [\n 0,\n 4,\n 5\n ]\n ];\n var frustumPlanes = frustumPlanePointIndices.map(function(p) {\n var a = performance2.sub([], frustumCoords[p[0]], frustumCoords[p[1]]);\n var b = performance2.sub([], frustumCoords[p[2]], frustumCoords[p[1]]);\n var n = performance2.normalize([], performance2.cross([], a, b));\n var d = -performance2.dot(n, frustumCoords[p[1]]);\n return n.concat(d);\n });\n return new Frustum(frustumCoords, frustumPlanes);\n };\n var Aabb = function Aabb2(min_, max_) {\n this.min = min_;\n this.max = max_;\n this.center = performance2.scale$2([], performance2.add([], this.min, this.max), 0.5);\n };\n Aabb.prototype.quadrant = function quadrant(index) {\n var split = [\n index % 2 === 0,\n index < 2\n ];\n var qMin = performance2.clone$2(this.min);\n var qMax = performance2.clone$2(this.max);\n for (var axis = 0; axis < split.length; axis++) {\n qMin[axis] = split[axis] ? this.min[axis] : this.center[axis];\n qMax[axis] = split[axis] ? this.center[axis] : this.max[axis];\n }\n qMax[2] = this.max[2];\n return new Aabb(qMin, qMax);\n };\n Aabb.prototype.distanceX = function distanceX(point) {\n var pointOnAabb = Math.max(Math.min(this.max[0], point[0]), this.min[0]);\n return pointOnAabb - point[0];\n };\n Aabb.prototype.distanceY = function distanceY(point) {\n var pointOnAabb = Math.max(Math.min(this.max[1], point[1]), this.min[1]);\n return pointOnAabb - point[1];\n };\n Aabb.prototype.intersects = function intersects(frustum) {\n var aabbPoints = [\n [\n this.min[0],\n this.min[1],\n 0,\n 1\n ],\n [\n this.max[0],\n this.min[1],\n 0,\n 1\n ],\n [\n this.max[0],\n this.max[1],\n 0,\n 1\n ],\n [\n this.min[0],\n this.max[1],\n 0,\n 1\n ]\n ];\n var fullyInside = true;\n for (var p = 0; p < frustum.planes.length; p++) {\n var plane = frustum.planes[p];\n var pointsInside = 0;\n for (var i = 0; i < aabbPoints.length; i++) {\n pointsInside += performance2.dot$1(plane, aabbPoints[i]) >= 0;\n }\n if (pointsInside === 0) {\n return 0;\n }\n if (pointsInside !== aabbPoints.length) {\n fullyInside = false;\n }\n }\n if (fullyInside) {\n return 2;\n }\n for (var axis = 0; axis < 3; axis++) {\n var projMin = Number.MAX_VALUE;\n var projMax = -Number.MAX_VALUE;\n for (var p$1 = 0; p$1 < frustum.points.length; p$1++) {\n var projectedPoint = frustum.points[p$1][axis] - this.min[axis];\n projMin = Math.min(projMin, projectedPoint);\n projMax = Math.max(projMax, projectedPoint);\n }\n if (projMax < 0 || projMin > this.max[axis] - this.min[axis]) {\n return 0;\n }\n }\n return 1;\n };\n var EdgeInsets = function EdgeInsets2(top, bottom, left, right) {\n if (top === void 0)\n top = 0;\n if (bottom === void 0)\n bottom = 0;\n if (left === void 0)\n left = 0;\n if (right === void 0)\n right = 0;\n if (isNaN(top) || top < 0 || isNaN(bottom) || bottom < 0 || isNaN(left) || left < 0 || isNaN(right) || right < 0) {\n throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");\n }\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n };\n EdgeInsets.prototype.interpolate = function interpolate(start, target, t) {\n if (target.top != null && start.top != null) {\n this.top = performance2.number(start.top, target.top, t);\n }\n if (target.bottom != null && start.bottom != null) {\n this.bottom = performance2.number(start.bottom, target.bottom, t);\n }\n if (target.left != null && start.left != null) {\n this.left = performance2.number(start.left, target.left, t);\n }\n if (target.right != null && start.right != null) {\n this.right = performance2.number(start.right, target.right, t);\n }\n return this;\n };\n EdgeInsets.prototype.getCenter = function getCenter(width, height) {\n var x = performance2.clamp((this.left + width - this.right) / 2, 0, width);\n var y = performance2.clamp((this.top + height - this.bottom) / 2, 0, height);\n return new performance2.Point(x, y);\n };\n EdgeInsets.prototype.equals = function equals(other) {\n return this.top === other.top && this.bottom === other.bottom && this.left === other.left && this.right === other.right;\n };\n EdgeInsets.prototype.clone = function clone() {\n return new EdgeInsets(this.top, this.bottom, this.left, this.right);\n };\n EdgeInsets.prototype.toJSON = function toJSON() {\n return {\n top: this.top,\n bottom: this.bottom,\n left: this.left,\n right: this.right\n };\n };\n var Transform = function Transform2(minZoom, maxZoom, minPitch, maxPitch, renderWorldCopies) {\n this.tileSize = 512;\n this.maxValidLatitude = 85.051129;\n this._renderWorldCopies = renderWorldCopies === void 0 ? true : renderWorldCopies;\n this._minZoom = minZoom || 0;\n this._maxZoom = maxZoom || 22;\n this._minPitch = minPitch === void 0 || minPitch === null ? 0 : minPitch;\n this._maxPitch = maxPitch === void 0 || maxPitch === null ? 60 : maxPitch;\n this.setMaxBounds();\n this.width = 0;\n this.height = 0;\n this._center = new performance2.LngLat(0, 0);\n this.zoom = 0;\n this.angle = 0;\n this._fov = 0.6435011087932844;\n this._pitch = 0;\n this._unmodified = true;\n this._edgeInsets = new EdgeInsets();\n this._posMatrixCache = {};\n this._alignedPosMatrixCache = {};\n };\n var prototypeAccessors = {\n minZoom: { configurable: true },\n maxZoom: { configurable: true },\n minPitch: { configurable: true },\n maxPitch: { configurable: true },\n renderWorldCopies: { configurable: true },\n worldSize: { configurable: true },\n centerOffset: { configurable: true },\n size: { configurable: true },\n bearing: { configurable: true },\n pitch: { configurable: true },\n fov: { configurable: true },\n zoom: { configurable: true },\n center: { configurable: true },\n padding: { configurable: true },\n centerPoint: { configurable: true },\n unmodified: { configurable: true },\n point: { configurable: true }\n };\n Transform.prototype.clone = function clone() {\n var clone2 = new Transform(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies);\n clone2.tileSize = this.tileSize;\n clone2.latRange = this.latRange;\n clone2.width = this.width;\n clone2.height = this.height;\n clone2._center = this._center;\n clone2.zoom = this.zoom;\n clone2.angle = this.angle;\n clone2._fov = this._fov;\n clone2._pitch = this._pitch;\n clone2._unmodified = this._unmodified;\n clone2._edgeInsets = this._edgeInsets.clone();\n clone2._calcMatrices();\n return clone2;\n };\n prototypeAccessors.minZoom.get = function() {\n return this._minZoom;\n };\n prototypeAccessors.minZoom.set = function(zoom) {\n if (this._minZoom === zoom) {\n return;\n }\n this._minZoom = zoom;\n this.zoom = Math.max(this.zoom, zoom);\n };\n prototypeAccessors.maxZoom.get = function() {\n return this._maxZoom;\n };\n prototypeAccessors.maxZoom.set = function(zoom) {\n if (this._maxZoom === zoom) {\n return;\n }\n this._maxZoom = zoom;\n this.zoom = Math.min(this.zoom, zoom);\n };\n prototypeAccessors.minPitch.get = function() {\n return this._minPitch;\n };\n prototypeAccessors.minPitch.set = function(pitch) {\n if (this._minPitch === pitch) {\n return;\n }\n this._minPitch = pitch;\n this.pitch = Math.max(this.pitch, pitch);\n };\n prototypeAccessors.maxPitch.get = function() {\n return this._maxPitch;\n };\n prototypeAccessors.maxPitch.set = function(pitch) {\n if (this._maxPitch === pitch) {\n return;\n }\n this._maxPitch = pitch;\n this.pitch = Math.min(this.pitch, pitch);\n };\n prototypeAccessors.renderWorldCopies.get = function() {\n return this._renderWorldCopies;\n };\n prototypeAccessors.renderWorldCopies.set = function(renderWorldCopies) {\n if (renderWorldCopies === void 0) {\n renderWorldCopies = true;\n } else if (renderWorldCopies === null) {\n renderWorldCopies = false;\n }\n this._renderWorldCopies = renderWorldCopies;\n };\n prototypeAccessors.worldSize.get = function() {\n return this.tileSize * this.scale;\n };\n prototypeAccessors.centerOffset.get = function() {\n return this.centerPoint._sub(this.size._div(2));\n };\n prototypeAccessors.size.get = function() {\n return new performance2.Point(this.width, this.height);\n };\n prototypeAccessors.bearing.get = function() {\n return -this.angle / Math.PI * 180;\n };\n prototypeAccessors.bearing.set = function(bearing) {\n var b = -performance2.wrap(bearing, -180, 180) * Math.PI / 180;\n if (this.angle === b) {\n return;\n }\n this._unmodified = false;\n this.angle = b;\n this._calcMatrices();\n this.rotationMatrix = performance2.create$2();\n performance2.rotate(this.rotationMatrix, this.rotationMatrix, this.angle);\n };\n prototypeAccessors.pitch.get = function() {\n return this._pitch / Math.PI * 180;\n };\n prototypeAccessors.pitch.set = function(pitch) {\n var p = performance2.clamp(pitch, this.minPitch, this.maxPitch) / 180 * Math.PI;\n if (this._pitch === p) {\n return;\n }\n this._unmodified = false;\n this._pitch = p;\n this._calcMatrices();\n };\n prototypeAccessors.fov.get = function() {\n return this._fov / Math.PI * 180;\n };\n prototypeAccessors.fov.set = function(fov) {\n fov = Math.max(0.01, Math.min(60, fov));\n if (this._fov === fov) {\n return;\n }\n this._unmodified = false;\n this._fov = fov / 180 * Math.PI;\n this._calcMatrices();\n };\n prototypeAccessors.zoom.get = function() {\n return this._zoom;\n };\n prototypeAccessors.zoom.set = function(zoom) {\n var z = Math.min(Math.max(zoom, this.minZoom), this.maxZoom);\n if (this._zoom === z) {\n return;\n }\n this._unmodified = false;\n this._zoom = z;\n this.scale = this.zoomScale(z);\n this.tileZoom = Math.floor(z);\n this.zoomFraction = z - this.tileZoom;\n this._constrain();\n this._calcMatrices();\n };\n prototypeAccessors.center.get = function() {\n return this._center;\n };\n prototypeAccessors.center.set = function(center) {\n if (center.lat === this._center.lat && center.lng === this._center.lng) {\n return;\n }\n this._unmodified = false;\n this._center = center;\n this._constrain();\n this._calcMatrices();\n };\n prototypeAccessors.padding.get = function() {\n return this._edgeInsets.toJSON();\n };\n prototypeAccessors.padding.set = function(padding2) {\n if (this._edgeInsets.equals(padding2)) {\n return;\n }\n this._unmodified = false;\n this._edgeInsets.interpolate(this._edgeInsets, padding2, 1);\n this._calcMatrices();\n };\n prototypeAccessors.centerPoint.get = function() {\n return this._edgeInsets.getCenter(this.width, this.height);\n };\n Transform.prototype.isPaddingEqual = function isPaddingEqual(padding2) {\n return this._edgeInsets.equals(padding2);\n };\n Transform.prototype.interpolatePadding = function interpolatePadding(start, target, t) {\n this._unmodified = false;\n this._edgeInsets.interpolate(start, target, t);\n this._constrain();\n this._calcMatrices();\n };\n Transform.prototype.coveringZoomLevel = function coveringZoomLevel(options) {\n var z = (options.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / options.tileSize));\n return Math.max(0, z);\n };\n Transform.prototype.getVisibleUnwrappedCoordinates = function getVisibleUnwrappedCoordinates(tileID) {\n var result = [new performance2.UnwrappedTileID(0, tileID)];\n if (this._renderWorldCopies) {\n var utl = this.pointCoordinate(new performance2.Point(0, 0));\n var utr = this.pointCoordinate(new performance2.Point(this.width, 0));\n var ubl = this.pointCoordinate(new performance2.Point(this.width, this.height));\n var ubr = this.pointCoordinate(new performance2.Point(0, this.height));\n var w0 = Math.floor(Math.min(utl.x, utr.x, ubl.x, ubr.x));\n var w1 = Math.floor(Math.max(utl.x, utr.x, ubl.x, ubr.x));\n var extraWorldCopy = 1;\n for (var w = w0 - extraWorldCopy; w <= w1 + extraWorldCopy; w++) {\n if (w === 0) {\n continue;\n }\n result.push(new performance2.UnwrappedTileID(w, tileID));\n }\n }\n return result;\n };\n Transform.prototype.coveringTiles = function coveringTiles(options) {\n var z = this.coveringZoomLevel(options);\n var actualZ = z;\n if (options.minzoom !== void 0 && z < options.minzoom) {\n return [];\n }\n if (options.maxzoom !== void 0 && z > options.maxzoom) {\n z = options.maxzoom;\n }\n var centerCoord = performance2.MercatorCoordinate.fromLngLat(this.center);\n var numTiles = Math.pow(2, z);\n var centerPoint = [\n numTiles * centerCoord.x,\n numTiles * centerCoord.y,\n 0\n ];\n var cameraFrustum = Frustum.fromInvProjectionMatrix(this.invProjMatrix, this.worldSize, z);\n var minZoom = options.minzoom || 0;\n if (this.pitch <= 60 && this._edgeInsets.top < 0.1) {\n minZoom = z;\n }\n var radiusOfMaxLvlLodInTiles = 3;\n var newRootTile = function(wrap) {\n return {\n aabb: new Aabb([\n wrap * numTiles,\n 0,\n 0\n ], [\n (wrap + 1) * numTiles,\n numTiles,\n 0\n ]),\n zoom: 0,\n x: 0,\n y: 0,\n wrap,\n fullyVisible: false\n };\n };\n var stack = [];\n var result = [];\n var maxZoom = z;\n var overscaledZ = options.reparseOverscaled ? actualZ : z;\n if (this._renderWorldCopies) {\n for (var i = 1; i <= 3; i++) {\n stack.push(newRootTile(-i));\n stack.push(newRootTile(i));\n }\n }\n stack.push(newRootTile(0));\n while (stack.length > 0) {\n var it = stack.pop();\n var x = it.x;\n var y = it.y;\n var fullyVisible = it.fullyVisible;\n if (!fullyVisible) {\n var intersectResult = it.aabb.intersects(cameraFrustum);\n if (intersectResult === 0) {\n continue;\n }\n fullyVisible = intersectResult === 2;\n }\n var distanceX = it.aabb.distanceX(centerPoint);\n var distanceY = it.aabb.distanceY(centerPoint);\n var longestDim = Math.max(Math.abs(distanceX), Math.abs(distanceY));\n var distToSplit = radiusOfMaxLvlLodInTiles + (1 << maxZoom - it.zoom) - 2;\n if (it.zoom === maxZoom || longestDim > distToSplit && it.zoom >= minZoom) {\n result.push({\n tileID: new performance2.OverscaledTileID(it.zoom === maxZoom ? overscaledZ : it.zoom, it.wrap, it.zoom, x, y),\n distanceSq: performance2.sqrLen([\n centerPoint[0] - 0.5 - x,\n centerPoint[1] - 0.5 - y\n ])\n });\n continue;\n }\n for (var i$1 = 0; i$1 < 4; i$1++) {\n var childX = (x << 1) + i$1 % 2;\n var childY = (y << 1) + (i$1 >> 1);\n stack.push({\n aabb: it.aabb.quadrant(i$1),\n zoom: it.zoom + 1,\n x: childX,\n y: childY,\n wrap: it.wrap,\n fullyVisible\n });\n }\n }\n return result.sort(function(a, b) {\n return a.distanceSq - b.distanceSq;\n }).map(function(a) {\n return a.tileID;\n });\n };\n Transform.prototype.resize = function resize(width, height) {\n this.width = width;\n this.height = height;\n this.pixelsToGLUnits = [\n 2 / width,\n -2 / height\n ];\n this._constrain();\n this._calcMatrices();\n };\n prototypeAccessors.unmodified.get = function() {\n return this._unmodified;\n };\n Transform.prototype.zoomScale = function zoomScale(zoom) {\n return Math.pow(2, zoom);\n };\n Transform.prototype.scaleZoom = function scaleZoom(scale) {\n return Math.log(scale) / Math.LN2;\n };\n Transform.prototype.project = function project2(lnglat) {\n var lat = performance2.clamp(lnglat.lat, -this.maxValidLatitude, this.maxValidLatitude);\n return new performance2.Point(performance2.mercatorXfromLng(lnglat.lng) * this.worldSize, performance2.mercatorYfromLat(lat) * this.worldSize);\n };\n Transform.prototype.unproject = function unproject(point) {\n return new performance2.MercatorCoordinate(point.x / this.worldSize, point.y / this.worldSize).toLngLat();\n };\n prototypeAccessors.point.get = function() {\n return this.project(this.center);\n };\n Transform.prototype.setLocationAtPoint = function setLocationAtPoint(lnglat, point) {\n var a = this.pointCoordinate(point);\n var b = this.pointCoordinate(this.centerPoint);\n var loc = this.locationCoordinate(lnglat);\n var newCenter = new performance2.MercatorCoordinate(loc.x - (a.x - b.x), loc.y - (a.y - b.y));\n this.center = this.coordinateLocation(newCenter);\n if (this._renderWorldCopies) {\n this.center = this.center.wrap();\n }\n };\n Transform.prototype.locationPoint = function locationPoint(lnglat) {\n return this.coordinatePoint(this.locationCoordinate(lnglat));\n };\n Transform.prototype.pointLocation = function pointLocation(p) {\n return this.coordinateLocation(this.pointCoordinate(p));\n };\n Transform.prototype.locationCoordinate = function locationCoordinate(lnglat) {\n return performance2.MercatorCoordinate.fromLngLat(lnglat);\n };\n Transform.prototype.coordinateLocation = function coordinateLocation(coord) {\n return coord.toLngLat();\n };\n Transform.prototype.pointCoordinate = function pointCoordinate(p) {\n var targetZ = 0;\n var coord0 = [\n p.x,\n p.y,\n 0,\n 1\n ];\n var coord1 = [\n p.x,\n p.y,\n 1,\n 1\n ];\n performance2.transformMat4(coord0, coord0, this.pixelMatrixInverse);\n performance2.transformMat4(coord1, coord1, this.pixelMatrixInverse);\n var w0 = coord0[3];\n var w1 = coord1[3];\n var x0 = coord0[0] / w0;\n var x1 = coord1[0] / w1;\n var y0 = coord0[1] / w0;\n var y1 = coord1[1] / w1;\n var z0 = coord0[2] / w0;\n var z1 = coord1[2] / w1;\n var t = z0 === z1 ? 0 : (targetZ - z0) / (z1 - z0);\n return new performance2.MercatorCoordinate(performance2.number(x0, x1, t) / this.worldSize, performance2.number(y0, y1, t) / this.worldSize);\n };\n Transform.prototype.coordinatePoint = function coordinatePoint(coord) {\n var p = [\n coord.x * this.worldSize,\n coord.y * this.worldSize,\n 0,\n 1\n ];\n performance2.transformMat4(p, p, this.pixelMatrix);\n return new performance2.Point(p[0] / p[3], p[1] / p[3]);\n };\n Transform.prototype.getBounds = function getBounds() {\n return new performance2.LngLatBounds().extend(this.pointLocation(new performance2.Point(0, 0))).extend(this.pointLocation(new performance2.Point(this.width, 0))).extend(this.pointLocation(new performance2.Point(this.width, this.height))).extend(this.pointLocation(new performance2.Point(0, this.height)));\n };\n Transform.prototype.getMaxBounds = function getMaxBounds() {\n if (!this.latRange || this.latRange.length !== 2 || !this.lngRange || this.lngRange.length !== 2) {\n return null;\n }\n return new performance2.LngLatBounds([\n this.lngRange[0],\n this.latRange[0]\n ], [\n this.lngRange[1],\n this.latRange[1]\n ]);\n };\n Transform.prototype.setMaxBounds = function setMaxBounds(bounds) {\n if (bounds) {\n this.lngRange = [\n bounds.getWest(),\n bounds.getEast()\n ];\n this.latRange = [\n bounds.getSouth(),\n bounds.getNorth()\n ];\n this._constrain();\n } else {\n this.lngRange = null;\n this.latRange = [\n -this.maxValidLatitude,\n this.maxValidLatitude\n ];\n }\n };\n Transform.prototype.calculatePosMatrix = function calculatePosMatrix(unwrappedTileID, aligned) {\n if (aligned === void 0)\n aligned = false;\n var posMatrixKey = unwrappedTileID.key;\n var cache = aligned ? this._alignedPosMatrixCache : this._posMatrixCache;\n if (cache[posMatrixKey]) {\n return cache[posMatrixKey];\n }\n var canonical = unwrappedTileID.canonical;\n var scale = this.worldSize / this.zoomScale(canonical.z);\n var unwrappedX = canonical.x + Math.pow(2, canonical.z) * unwrappedTileID.wrap;\n var posMatrix = performance2.identity(new Float64Array(16));\n performance2.translate(posMatrix, posMatrix, [\n unwrappedX * scale,\n canonical.y * scale,\n 0\n ]);\n performance2.scale(posMatrix, posMatrix, [\n scale / performance2.EXTENT,\n scale / performance2.EXTENT,\n 1\n ]);\n performance2.multiply(posMatrix, aligned ? this.alignedProjMatrix : this.projMatrix, posMatrix);\n cache[posMatrixKey] = new Float32Array(posMatrix);\n return cache[posMatrixKey];\n };\n Transform.prototype.customLayerMatrix = function customLayerMatrix() {\n return this.mercatorMatrix.slice();\n };\n Transform.prototype._constrain = function _constrain() {\n if (!this.center || !this.width || !this.height || this._constraining) {\n return;\n }\n this._constraining = true;\n var minY = -90;\n var maxY = 90;\n var minX = -180;\n var maxX = 180;\n var sy, sx, x2, y2;\n var size = this.size, unmodified = this._unmodified;\n if (this.latRange) {\n var latRange = this.latRange;\n minY = performance2.mercatorYfromLat(latRange[1]) * this.worldSize;\n maxY = performance2.mercatorYfromLat(latRange[0]) * this.worldSize;\n sy = maxY - minY < size.y ? size.y / (maxY - minY) : 0;\n }\n if (this.lngRange) {\n var lngRange = this.lngRange;\n minX = performance2.mercatorXfromLng(lngRange[0]) * this.worldSize;\n maxX = performance2.mercatorXfromLng(lngRange[1]) * this.worldSize;\n sx = maxX - minX < size.x ? size.x / (maxX - minX) : 0;\n }\n var point = this.point;\n var s = Math.max(sx || 0, sy || 0);\n if (s) {\n this.center = this.unproject(new performance2.Point(sx ? (maxX + minX) / 2 : point.x, sy ? (maxY + minY) / 2 : point.y));\n this.zoom += this.scaleZoom(s);\n this._unmodified = unmodified;\n this._constraining = false;\n return;\n }\n if (this.latRange) {\n var y = point.y, h2 = size.y / 2;\n if (y - h2 < minY) {\n y2 = minY + h2;\n }\n if (y + h2 > maxY) {\n y2 = maxY - h2;\n }\n }\n if (this.lngRange) {\n var x = point.x, w2 = size.x / 2;\n if (x - w2 < minX) {\n x2 = minX + w2;\n }\n if (x + w2 > maxX) {\n x2 = maxX - w2;\n }\n }\n if (x2 !== void 0 || y2 !== void 0) {\n this.center = this.unproject(new performance2.Point(x2 !== void 0 ? x2 : point.x, y2 !== void 0 ? y2 : point.y));\n }\n this._unmodified = unmodified;\n this._constraining = false;\n };\n Transform.prototype._calcMatrices = function _calcMatrices() {\n if (!this.height) {\n return;\n }\n var halfFov = this._fov / 2;\n var offset = this.centerOffset;\n this.cameraToCenterDistance = 0.5 / Math.tan(halfFov) * this.height;\n var groundAngle = Math.PI / 2 + this._pitch;\n var fovAboveCenter = this._fov * (0.5 + offset.y / this.height);\n var topHalfSurfaceDistance = Math.sin(fovAboveCenter) * this.cameraToCenterDistance / Math.sin(performance2.clamp(Math.PI - groundAngle - fovAboveCenter, 0.01, Math.PI - 0.01));\n var point = this.point;\n var x = point.x, y = point.y;\n var furthestDistance = Math.cos(Math.PI / 2 - this._pitch) * topHalfSurfaceDistance + this.cameraToCenterDistance;\n var farZ = furthestDistance * 1.01;\n var nearZ = this.height / 50;\n var m = new Float64Array(16);\n performance2.perspective(m, this._fov, this.width / this.height, nearZ, farZ);\n m[8] = -offset.x * 2 / this.width;\n m[9] = offset.y * 2 / this.height;\n performance2.scale(m, m, [\n 1,\n -1,\n 1\n ]);\n performance2.translate(m, m, [\n 0,\n 0,\n -this.cameraToCenterDistance\n ]);\n performance2.rotateX(m, m, this._pitch);\n performance2.rotateZ(m, m, this.angle);\n performance2.translate(m, m, [\n -x,\n -y,\n 0\n ]);\n this.mercatorMatrix = performance2.scale([], m, [\n this.worldSize,\n this.worldSize,\n this.worldSize\n ]);\n performance2.scale(m, m, [\n 1,\n 1,\n performance2.mercatorZfromAltitude(1, this.center.lat) * this.worldSize,\n 1\n ]);\n this.projMatrix = m;\n this.invProjMatrix = performance2.invert([], this.projMatrix);\n var xShift = this.width % 2 / 2, yShift = this.height % 2 / 2, angleCos = Math.cos(this.angle), angleSin = Math.sin(this.angle), dx = x - Math.round(x) + angleCos * xShift + angleSin * yShift, dy = y - Math.round(y) + angleCos * yShift + angleSin * xShift;\n var alignedM = new Float64Array(m);\n performance2.translate(alignedM, alignedM, [\n dx > 0.5 ? dx - 1 : dx,\n dy > 0.5 ? dy - 1 : dy,\n 0\n ]);\n this.alignedProjMatrix = alignedM;\n m = performance2.create();\n performance2.scale(m, m, [\n this.width / 2,\n -this.height / 2,\n 1\n ]);\n performance2.translate(m, m, [\n 1,\n -1,\n 0\n ]);\n this.labelPlaneMatrix = m;\n m = performance2.create();\n performance2.scale(m, m, [\n 1,\n -1,\n 1\n ]);\n performance2.translate(m, m, [\n -1,\n -1,\n 0\n ]);\n performance2.scale(m, m, [\n 2 / this.width,\n 2 / this.height,\n 1\n ]);\n this.glCoordMatrix = m;\n this.pixelMatrix = performance2.multiply(new Float64Array(16), this.labelPlaneMatrix, this.projMatrix);\n m = performance2.invert(new Float64Array(16), this.pixelMatrix);\n if (!m) {\n throw new Error(\"failed to invert matrix\");\n }\n this.pixelMatrixInverse = m;\n this._posMatrixCache = {};\n this._alignedPosMatrixCache = {};\n };\n Transform.prototype.maxPitchScaleFactor = function maxPitchScaleFactor() {\n if (!this.pixelMatrixInverse) {\n return 1;\n }\n var coord = this.pointCoordinate(new performance2.Point(0, 0));\n var p = [\n coord.x * this.worldSize,\n coord.y * this.worldSize,\n 0,\n 1\n ];\n var topPoint = performance2.transformMat4(p, p, this.pixelMatrix);\n return topPoint[3] / this.cameraToCenterDistance;\n };\n Transform.prototype.getCameraPoint = function getCameraPoint() {\n var pitch = this._pitch;\n var yOffset = Math.tan(pitch) * (this.cameraToCenterDistance || 1);\n return this.centerPoint.add(new performance2.Point(0, yOffset));\n };\n Transform.prototype.getCameraQueryGeometry = function getCameraQueryGeometry(queryGeometry) {\n var c = this.getCameraPoint();\n if (queryGeometry.length === 1) {\n return [\n queryGeometry[0],\n c\n ];\n } else {\n var minX = c.x;\n var minY = c.y;\n var maxX = c.x;\n var maxY = c.y;\n for (var i = 0, list = queryGeometry; i < list.length; i += 1) {\n var p = list[i];\n minX = Math.min(minX, p.x);\n minY = Math.min(minY, p.y);\n maxX = Math.max(maxX, p.x);\n maxY = Math.max(maxY, p.y);\n }\n return [\n new performance2.Point(minX, minY),\n new performance2.Point(maxX, minY),\n new performance2.Point(maxX, maxY),\n new performance2.Point(minX, maxY),\n new performance2.Point(minX, minY)\n ];\n }\n };\n Object.defineProperties(Transform.prototype, prototypeAccessors);\n function throttle(fn, time) {\n var pending = false;\n var timerId = null;\n var later = function() {\n timerId = null;\n if (pending) {\n fn();\n timerId = setTimeout(later, time);\n pending = false;\n }\n };\n return function() {\n pending = true;\n if (!timerId) {\n later();\n }\n return timerId;\n };\n }\n var Hash = function Hash2(hashName) {\n this._hashName = hashName && encodeURIComponent(hashName);\n performance2.bindAll([\n \"_getCurrentHash\",\n \"_onHashChange\",\n \"_updateHash\"\n ], this);\n this._updateHash = throttle(this._updateHashUnthrottled.bind(this), 30 * 1e3 / 100);\n };\n Hash.prototype.addTo = function addTo(map) {\n this._map = map;\n performance2.window.addEventListener(\"hashchange\", this._onHashChange, false);\n this._map.on(\"moveend\", this._updateHash);\n return this;\n };\n Hash.prototype.remove = function remove() {\n performance2.window.removeEventListener(\"hashchange\", this._onHashChange, false);\n this._map.off(\"moveend\", this._updateHash);\n clearTimeout(this._updateHash());\n delete this._map;\n return this;\n };\n Hash.prototype.getHashString = function getHashString(mapFeedback) {\n var center = this._map.getCenter(), zoom = Math.round(this._map.getZoom() * 100) / 100, precision = Math.ceil((zoom * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), m = Math.pow(10, precision), lng = Math.round(center.lng * m) / m, lat = Math.round(center.lat * m) / m, bearing = this._map.getBearing(), pitch = this._map.getPitch();\n var hash = \"\";\n if (mapFeedback) {\n hash += \"/\" + lng + \"/\" + lat + \"/\" + zoom;\n } else {\n hash += zoom + \"/\" + lat + \"/\" + lng;\n }\n if (bearing || pitch) {\n hash += \"/\" + Math.round(bearing * 10) / 10;\n }\n if (pitch) {\n hash += \"/\" + Math.round(pitch);\n }\n if (this._hashName) {\n var hashName = this._hashName;\n var found = false;\n var parts = performance2.window.location.hash.slice(1).split(\"&\").map(function(part) {\n var key = part.split(\"=\")[0];\n if (key === hashName) {\n found = true;\n return key + \"=\" + hash;\n }\n return part;\n }).filter(function(a) {\n return a;\n });\n if (!found) {\n parts.push(hashName + \"=\" + hash);\n }\n return \"#\" + parts.join(\"&\");\n }\n return \"#\" + hash;\n };\n Hash.prototype._getCurrentHash = function _getCurrentHash() {\n var this$1 = this;\n var hash = performance2.window.location.hash.replace(\"#\", \"\");\n if (this._hashName) {\n var keyval;\n hash.split(\"&\").map(function(part) {\n return part.split(\"=\");\n }).forEach(function(part) {\n if (part[0] === this$1._hashName) {\n keyval = part;\n }\n });\n return (keyval ? keyval[1] || \"\" : \"\").split(\"/\");\n }\n return hash.split(\"/\");\n };\n Hash.prototype._onHashChange = function _onHashChange() {\n var loc = this._getCurrentHash();\n if (loc.length >= 3 && !loc.some(function(v) {\n return isNaN(v);\n })) {\n var bearing = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(loc[3] || 0) : this._map.getBearing();\n this._map.jumpTo({\n center: [\n +loc[2],\n +loc[1]\n ],\n zoom: +loc[0],\n bearing,\n pitch: +(loc[4] || 0)\n });\n return true;\n }\n return false;\n };\n Hash.prototype._updateHashUnthrottled = function _updateHashUnthrottled() {\n var location2 = performance2.window.location.href.replace(/(#.+)?$/, this.getHashString());\n try {\n performance2.window.history.replaceState(performance2.window.history.state, null, location2);\n } catch (SecurityError) {\n }\n };\n var defaultInertiaOptions = {\n linearity: 0.3,\n easing: performance2.bezier(0, 0, 0.3, 1)\n };\n var defaultPanInertiaOptions = performance2.extend({\n deceleration: 2500,\n maxSpeed: 1400\n }, defaultInertiaOptions);\n var defaultZoomInertiaOptions = performance2.extend({\n deceleration: 20,\n maxSpeed: 1400\n }, defaultInertiaOptions);\n var defaultBearingInertiaOptions = performance2.extend({\n deceleration: 1e3,\n maxSpeed: 360\n }, defaultInertiaOptions);\n var defaultPitchInertiaOptions = performance2.extend({\n deceleration: 1e3,\n maxSpeed: 90\n }, defaultInertiaOptions);\n var HandlerInertia = function HandlerInertia2(map) {\n this._map = map;\n this.clear();\n };\n HandlerInertia.prototype.clear = function clear() {\n this._inertiaBuffer = [];\n };\n HandlerInertia.prototype.record = function record(settings) {\n this._drainInertiaBuffer();\n this._inertiaBuffer.push({\n time: performance2.browser.now(),\n settings\n });\n };\n HandlerInertia.prototype._drainInertiaBuffer = function _drainInertiaBuffer() {\n var inertia = this._inertiaBuffer, now = performance2.browser.now(), cutoff = 160;\n while (inertia.length > 0 && now - inertia[0].time > cutoff) {\n inertia.shift();\n }\n };\n HandlerInertia.prototype._onMoveEnd = function _onMoveEnd(panInertiaOptions) {\n this._drainInertiaBuffer();\n if (this._inertiaBuffer.length < 2) {\n return;\n }\n var deltas = {\n zoom: 0,\n bearing: 0,\n pitch: 0,\n pan: new performance2.Point(0, 0),\n pinchAround: void 0,\n around: void 0\n };\n for (var i = 0, list = this._inertiaBuffer; i < list.length; i += 1) {\n var ref = list[i];\n var settings = ref.settings;\n deltas.zoom += settings.zoomDelta || 0;\n deltas.bearing += settings.bearingDelta || 0;\n deltas.pitch += settings.pitchDelta || 0;\n if (settings.panDelta) {\n deltas.pan._add(settings.panDelta);\n }\n if (settings.around) {\n deltas.around = settings.around;\n }\n if (settings.pinchAround) {\n deltas.pinchAround = settings.pinchAround;\n }\n }\n var lastEntry = this._inertiaBuffer[this._inertiaBuffer.length - 1];\n var duration = lastEntry.time - this._inertiaBuffer[0].time;\n var easeOptions = {};\n if (deltas.pan.mag()) {\n var result = calculateEasing(deltas.pan.mag(), duration, performance2.extend({}, defaultPanInertiaOptions, panInertiaOptions || {}));\n easeOptions.offset = deltas.pan.mult(result.amount / deltas.pan.mag());\n easeOptions.center = this._map.transform.center;\n extendDuration(easeOptions, result);\n }\n if (deltas.zoom) {\n var result$1 = calculateEasing(deltas.zoom, duration, defaultZoomInertiaOptions);\n easeOptions.zoom = this._map.transform.zoom + result$1.amount;\n extendDuration(easeOptions, result$1);\n }\n if (deltas.bearing) {\n var result$2 = calculateEasing(deltas.bearing, duration, defaultBearingInertiaOptions);\n easeOptions.bearing = this._map.transform.bearing + performance2.clamp(result$2.amount, -179, 179);\n extendDuration(easeOptions, result$2);\n }\n if (deltas.pitch) {\n var result$3 = calculateEasing(deltas.pitch, duration, defaultPitchInertiaOptions);\n easeOptions.pitch = this._map.transform.pitch + result$3.amount;\n extendDuration(easeOptions, result$3);\n }\n if (easeOptions.zoom || easeOptions.bearing) {\n var last = deltas.pinchAround === void 0 ? deltas.around : deltas.pinchAround;\n easeOptions.around = last ? this._map.unproject(last) : this._map.getCenter();\n }\n this.clear();\n return performance2.extend(easeOptions, { noMoveStart: true });\n };\n function extendDuration(easeOptions, result) {\n if (!easeOptions.duration || easeOptions.duration < result.duration) {\n easeOptions.duration = result.duration;\n easeOptions.easing = result.easing;\n }\n }\n function calculateEasing(amount, inertiaDuration, inertiaOptions) {\n var maxSpeed = inertiaOptions.maxSpeed;\n var linearity = inertiaOptions.linearity;\n var deceleration = inertiaOptions.deceleration;\n var speed = performance2.clamp(amount * linearity / (inertiaDuration / 1e3), -maxSpeed, maxSpeed);\n var duration = Math.abs(speed) / (deceleration * linearity);\n return {\n easing: inertiaOptions.easing,\n duration: duration * 1e3,\n amount: speed * (duration / 2)\n };\n }\n var MapMouseEvent = function(Event) {\n function MapMouseEvent2(type, map, originalEvent, data) {\n if (data === void 0)\n data = {};\n var point = DOM.mousePos(map.getCanvasContainer(), originalEvent);\n var lngLat = map.unproject(point);\n Event.call(this, type, performance2.extend({\n point,\n lngLat,\n originalEvent\n }, data));\n this._defaultPrevented = false;\n this.target = map;\n }\n if (Event)\n MapMouseEvent2.__proto__ = Event;\n MapMouseEvent2.prototype = Object.create(Event && Event.prototype);\n MapMouseEvent2.prototype.constructor = MapMouseEvent2;\n var prototypeAccessors2 = { defaultPrevented: { configurable: true } };\n MapMouseEvent2.prototype.preventDefault = function preventDefault() {\n this._defaultPrevented = true;\n };\n prototypeAccessors2.defaultPrevented.get = function() {\n return this._defaultPrevented;\n };\n Object.defineProperties(MapMouseEvent2.prototype, prototypeAccessors2);\n return MapMouseEvent2;\n }(performance2.Event);\n var MapTouchEvent = function(Event) {\n function MapTouchEvent2(type, map, originalEvent) {\n var touches = type === \"touchend\" ? originalEvent.changedTouches : originalEvent.touches;\n var points = DOM.touchPos(map.getCanvasContainer(), touches);\n var lngLats = points.map(function(t) {\n return map.unproject(t);\n });\n var point = points.reduce(function(prev, curr, i, arr) {\n return prev.add(curr.div(arr.length));\n }, new performance2.Point(0, 0));\n var lngLat = map.unproject(point);\n Event.call(this, type, {\n points,\n point,\n lngLats,\n lngLat,\n originalEvent\n });\n this._defaultPrevented = false;\n }\n if (Event)\n MapTouchEvent2.__proto__ = Event;\n MapTouchEvent2.prototype = Object.create(Event && Event.prototype);\n MapTouchEvent2.prototype.constructor = MapTouchEvent2;\n var prototypeAccessors$1 = { defaultPrevented: { configurable: true } };\n MapTouchEvent2.prototype.preventDefault = function preventDefault() {\n this._defaultPrevented = true;\n };\n prototypeAccessors$1.defaultPrevented.get = function() {\n return this._defaultPrevented;\n };\n Object.defineProperties(MapTouchEvent2.prototype, prototypeAccessors$1);\n return MapTouchEvent2;\n }(performance2.Event);\n var MapWheelEvent = function(Event) {\n function MapWheelEvent2(type, map, originalEvent) {\n Event.call(this, type, { originalEvent });\n this._defaultPrevented = false;\n }\n if (Event)\n MapWheelEvent2.__proto__ = Event;\n MapWheelEvent2.prototype = Object.create(Event && Event.prototype);\n MapWheelEvent2.prototype.constructor = MapWheelEvent2;\n var prototypeAccessors$2 = { defaultPrevented: { configurable: true } };\n MapWheelEvent2.prototype.preventDefault = function preventDefault() {\n this._defaultPrevented = true;\n };\n prototypeAccessors$2.defaultPrevented.get = function() {\n return this._defaultPrevented;\n };\n Object.defineProperties(MapWheelEvent2.prototype, prototypeAccessors$2);\n return MapWheelEvent2;\n }(performance2.Event);\n var MapEventHandler = function MapEventHandler2(map, options) {\n this._map = map;\n this._clickTolerance = options.clickTolerance;\n };\n MapEventHandler.prototype.reset = function reset() {\n delete this._mousedownPos;\n };\n MapEventHandler.prototype.wheel = function wheel(e) {\n return this._firePreventable(new MapWheelEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.mousedown = function mousedown(e, point) {\n this._mousedownPos = point;\n return this._firePreventable(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.mouseup = function mouseup(e) {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.click = function click(e, point) {\n if (this._mousedownPos && this._mousedownPos.dist(point) >= this._clickTolerance) {\n return;\n }\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.dblclick = function dblclick(e) {\n return this._firePreventable(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.mouseover = function mouseover(e) {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.mouseout = function mouseout(e) {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.touchstart = function touchstart(e) {\n return this._firePreventable(new MapTouchEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.touchmove = function touchmove(e) {\n this._map.fire(new MapTouchEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.touchend = function touchend(e) {\n this._map.fire(new MapTouchEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.touchcancel = function touchcancel(e) {\n this._map.fire(new MapTouchEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype._firePreventable = function _firePreventable(mapEvent) {\n this._map.fire(mapEvent);\n if (mapEvent.defaultPrevented) {\n return {};\n }\n };\n MapEventHandler.prototype.isEnabled = function isEnabled() {\n return true;\n };\n MapEventHandler.prototype.isActive = function isActive() {\n return false;\n };\n MapEventHandler.prototype.enable = function enable() {\n };\n MapEventHandler.prototype.disable = function disable() {\n };\n var BlockableMapEventHandler = function BlockableMapEventHandler2(map) {\n this._map = map;\n };\n BlockableMapEventHandler.prototype.reset = function reset() {\n this._delayContextMenu = false;\n delete this._contextMenuEvent;\n };\n BlockableMapEventHandler.prototype.mousemove = function mousemove(e) {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n BlockableMapEventHandler.prototype.mousedown = function mousedown() {\n this._delayContextMenu = true;\n };\n BlockableMapEventHandler.prototype.mouseup = function mouseup() {\n this._delayContextMenu = false;\n if (this._contextMenuEvent) {\n this._map.fire(new MapMouseEvent(\"contextmenu\", this._map, this._contextMenuEvent));\n delete this._contextMenuEvent;\n }\n };\n BlockableMapEventHandler.prototype.contextmenu = function contextmenu(e) {\n if (this._delayContextMenu) {\n this._contextMenuEvent = e;\n } else {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n }\n if (this._map.listens(\"contextmenu\")) {\n e.preventDefault();\n }\n };\n BlockableMapEventHandler.prototype.isEnabled = function isEnabled() {\n return true;\n };\n BlockableMapEventHandler.prototype.isActive = function isActive() {\n return false;\n };\n BlockableMapEventHandler.prototype.enable = function enable() {\n };\n BlockableMapEventHandler.prototype.disable = function disable() {\n };\n var BoxZoomHandler = function BoxZoomHandler2(map, options) {\n this._map = map;\n this._el = map.getCanvasContainer();\n this._container = map.getContainer();\n this._clickTolerance = options.clickTolerance || 1;\n };\n BoxZoomHandler.prototype.isEnabled = function isEnabled() {\n return !!this._enabled;\n };\n BoxZoomHandler.prototype.isActive = function isActive() {\n return !!this._active;\n };\n BoxZoomHandler.prototype.enable = function enable() {\n if (this.isEnabled()) {\n return;\n }\n this._enabled = true;\n };\n BoxZoomHandler.prototype.disable = function disable() {\n if (!this.isEnabled()) {\n return;\n }\n this._enabled = false;\n };\n BoxZoomHandler.prototype.mousedown = function mousedown(e, point) {\n if (!this.isEnabled()) {\n return;\n }\n if (!(e.shiftKey && e.button === 0)) {\n return;\n }\n DOM.disableDrag();\n this._startPos = this._lastPos = point;\n this._active = true;\n };\n BoxZoomHandler.prototype.mousemoveWindow = function mousemoveWindow(e, point) {\n if (!this._active) {\n return;\n }\n var pos = point;\n if (this._lastPos.equals(pos) || !this._box && pos.dist(this._startPos) < this._clickTolerance) {\n return;\n }\n var p0 = this._startPos;\n this._lastPos = pos;\n if (!this._box) {\n this._box = DOM.create(\"div\", \"mapboxgl-boxzoom\", this._container);\n this._container.classList.add(\"mapboxgl-crosshair\");\n this._fireEvent(\"boxzoomstart\", e);\n }\n var minX = Math.min(p0.x, pos.x), maxX = Math.max(p0.x, pos.x), minY = Math.min(p0.y, pos.y), maxY = Math.max(p0.y, pos.y);\n DOM.setTransform(this._box, \"translate(\" + minX + \"px,\" + minY + \"px)\");\n this._box.style.width = maxX - minX + \"px\";\n this._box.style.height = maxY - minY + \"px\";\n };\n BoxZoomHandler.prototype.mouseupWindow = function mouseupWindow(e, point) {\n var this$1 = this;\n if (!this._active) {\n return;\n }\n if (e.button !== 0) {\n return;\n }\n var p0 = this._startPos, p1 = point;\n this.reset();\n DOM.suppressClick();\n if (p0.x === p1.x && p0.y === p1.y) {\n this._fireEvent(\"boxzoomcancel\", e);\n } else {\n this._map.fire(new performance2.Event(\"boxzoomend\", { originalEvent: e }));\n return {\n cameraAnimation: function(map) {\n return map.fitScreenCoordinates(p0, p1, this$1._map.getBearing(), { linear: true });\n }\n };\n }\n };\n BoxZoomHandler.prototype.keydown = function keydown(e) {\n if (!this._active) {\n return;\n }\n if (e.keyCode === 27) {\n this.reset();\n this._fireEvent(\"boxzoomcancel\", e);\n }\n };\n BoxZoomHandler.prototype.reset = function reset() {\n this._active = false;\n this._container.classList.remove(\"mapboxgl-crosshair\");\n if (this._box) {\n DOM.remove(this._box);\n this._box = null;\n }\n DOM.enableDrag();\n delete this._startPos;\n delete this._lastPos;\n };\n BoxZoomHandler.prototype._fireEvent = function _fireEvent(type, e) {\n return this._map.fire(new performance2.Event(type, { originalEvent: e }));\n };\n function indexTouches(touches, points) {\n var obj = {};\n for (var i = 0; i < touches.length; i++) {\n obj[touches[i].identifier] = points[i];\n }\n return obj;\n }\n function getCentroid(points) {\n var sum = new performance2.Point(0, 0);\n for (var i = 0, list = points; i < list.length; i += 1) {\n var point = list[i];\n sum._add(point);\n }\n return sum.div(points.length);\n }\n var MAX_TAP_INTERVAL = 500;\n var MAX_TOUCH_TIME = 500;\n var MAX_DIST = 30;\n var SingleTapRecognizer = function SingleTapRecognizer2(options) {\n this.reset();\n this.numTouches = options.numTouches;\n };\n SingleTapRecognizer.prototype.reset = function reset() {\n delete this.centroid;\n delete this.startTime;\n delete this.touches;\n this.aborted = false;\n };\n SingleTapRecognizer.prototype.touchstart = function touchstart(e, points, mapTouches) {\n if (this.centroid || mapTouches.length > this.numTouches) {\n this.aborted = true;\n }\n if (this.aborted) {\n return;\n }\n if (this.startTime === void 0) {\n this.startTime = e.timeStamp;\n }\n if (mapTouches.length === this.numTouches) {\n this.centroid = getCentroid(points);\n this.touches = indexTouches(mapTouches, points);\n }\n };\n SingleTapRecognizer.prototype.touchmove = function touchmove(e, points, mapTouches) {\n if (this.aborted || !this.centroid) {\n return;\n }\n var newTouches = indexTouches(mapTouches, points);\n for (var id in this.touches) {\n var prevPos = this.touches[id];\n var pos = newTouches[id];\n if (!pos || pos.dist(prevPos) > MAX_DIST) {\n this.aborted = true;\n }\n }\n };\n SingleTapRecognizer.prototype.touchend = function touchend(e, points, mapTouches) {\n if (!this.centroid || e.timeStamp - this.startTime > MAX_TOUCH_TIME) {\n this.aborted = true;\n }\n if (mapTouches.length === 0) {\n var centroid = !this.aborted && this.centroid;\n this.reset();\n if (centroid) {\n return centroid;\n }\n }\n };\n var TapRecognizer = function TapRecognizer2(options) {\n this.singleTap = new SingleTapRecognizer(options);\n this.numTaps = options.numTaps;\n this.reset();\n };\n TapRecognizer.prototype.reset = function reset() {\n this.lastTime = Infinity;\n delete this.lastTap;\n this.count = 0;\n this.singleTap.reset();\n };\n TapRecognizer.prototype.touchstart = function touchstart(e, points, mapTouches) {\n this.singleTap.touchstart(e, points, mapTouches);\n };\n TapRecognizer.prototype.touchmove = function touchmove(e, points, mapTouches) {\n this.singleTap.touchmove(e, points, mapTouches);\n };\n TapRecognizer.prototype.touchend = function touchend(e, points, mapTouches) {\n var tap = this.singleTap.touchend(e, points, mapTouches);\n if (tap) {\n var soonEnough = e.timeStamp - this.lastTime < MAX_TAP_INTERVAL;\n var closeEnough = !this.lastTap || this.lastTap.dist(tap) < MAX_DIST;\n if (!soonEnough || !closeEnough) {\n this.reset();\n }\n this.count++;\n this.lastTime = e.timeStamp;\n this.lastTap = tap;\n if (this.count === this.numTaps) {\n this.reset();\n return tap;\n }\n }\n };\n var TapZoomHandler = function TapZoomHandler2() {\n this._zoomIn = new TapRecognizer({\n numTouches: 1,\n numTaps: 2\n });\n this._zoomOut = new TapRecognizer({\n numTouches: 2,\n numTaps: 1\n });\n this.reset();\n };\n TapZoomHandler.prototype.reset = function reset() {\n this._active = false;\n this._zoomIn.reset();\n this._zoomOut.reset();\n };\n TapZoomHandler.prototype.touchstart = function touchstart(e, points, mapTouches) {\n this._zoomIn.touchstart(e, points, mapTouches);\n this._zoomOut.touchstart(e, points, mapTouches);\n };\n TapZoomHandler.prototype.touchmove = function touchmove(e, points, mapTouches) {\n this._zoomIn.touchmove(e, points, mapTouches);\n this._zoomOut.touchmove(e, points, mapTouches);\n };\n TapZoomHandler.prototype.touchend = function touchend(e, points, mapTouches) {\n var this$1 = this;\n var zoomInPoint = this._zoomIn.touchend(e, points, mapTouches);\n var zoomOutPoint = this._zoomOut.touchend(e, points, mapTouches);\n if (zoomInPoint) {\n this._active = true;\n e.preventDefault();\n setTimeout(function() {\n return this$1.reset();\n }, 0);\n return {\n cameraAnimation: function(map) {\n return map.easeTo({\n duration: 300,\n zoom: map.getZoom() + 1,\n around: map.unproject(zoomInPoint)\n }, { originalEvent: e });\n }\n };\n } else if (zoomOutPoint) {\n this._active = true;\n e.preventDefault();\n setTimeout(function() {\n return this$1.reset();\n }, 0);\n return {\n cameraAnimation: function(map) {\n return map.easeTo({\n duration: 300,\n zoom: map.getZoom() - 1,\n around: map.unproject(zoomOutPoint)\n }, { originalEvent: e });\n }\n };\n }\n };\n TapZoomHandler.prototype.touchcancel = function touchcancel() {\n this.reset();\n };\n TapZoomHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n TapZoomHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n TapZoomHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n TapZoomHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var LEFT_BUTTON = 0;\n var RIGHT_BUTTON = 2;\n var BUTTONS_FLAGS = {};\n BUTTONS_FLAGS[LEFT_BUTTON] = 1;\n BUTTONS_FLAGS[RIGHT_BUTTON] = 2;\n function buttonStillPressed(e, button) {\n var flag = BUTTONS_FLAGS[button];\n return e.buttons === void 0 || (e.buttons & flag) !== flag;\n }\n var MouseHandler = function MouseHandler2(options) {\n this.reset();\n this._clickTolerance = options.clickTolerance || 1;\n };\n MouseHandler.prototype.reset = function reset() {\n this._active = false;\n this._moved = false;\n delete this._lastPoint;\n delete this._eventButton;\n };\n MouseHandler.prototype._correctButton = function _correctButton(e, button) {\n return false;\n };\n MouseHandler.prototype._move = function _move(lastPoint, point) {\n return {};\n };\n MouseHandler.prototype.mousedown = function mousedown(e, point) {\n if (this._lastPoint) {\n return;\n }\n var eventButton = DOM.mouseButton(e);\n if (!this._correctButton(e, eventButton)) {\n return;\n }\n this._lastPoint = point;\n this._eventButton = eventButton;\n };\n MouseHandler.prototype.mousemoveWindow = function mousemoveWindow(e, point) {\n var lastPoint = this._lastPoint;\n if (!lastPoint) {\n return;\n }\n e.preventDefault();\n if (buttonStillPressed(e, this._eventButton)) {\n this.reset();\n return;\n }\n if (!this._moved && point.dist(lastPoint) < this._clickTolerance) {\n return;\n }\n this._moved = true;\n this._lastPoint = point;\n return this._move(lastPoint, point);\n };\n MouseHandler.prototype.mouseupWindow = function mouseupWindow(e) {\n if (!this._lastPoint) {\n return;\n }\n var eventButton = DOM.mouseButton(e);\n if (eventButton !== this._eventButton) {\n return;\n }\n if (this._moved) {\n DOM.suppressClick();\n }\n this.reset();\n };\n MouseHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n MouseHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n MouseHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n MouseHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var MousePanHandler = function(MouseHandler2) {\n function MousePanHandler2() {\n MouseHandler2.apply(this, arguments);\n }\n if (MouseHandler2)\n MousePanHandler2.__proto__ = MouseHandler2;\n MousePanHandler2.prototype = Object.create(MouseHandler2 && MouseHandler2.prototype);\n MousePanHandler2.prototype.constructor = MousePanHandler2;\n MousePanHandler2.prototype.mousedown = function mousedown(e, point) {\n MouseHandler2.prototype.mousedown.call(this, e, point);\n if (this._lastPoint) {\n this._active = true;\n }\n };\n MousePanHandler2.prototype._correctButton = function _correctButton(e, button) {\n return button === LEFT_BUTTON && !e.ctrlKey;\n };\n MousePanHandler2.prototype._move = function _move(lastPoint, point) {\n return {\n around: point,\n panDelta: point.sub(lastPoint)\n };\n };\n return MousePanHandler2;\n }(MouseHandler);\n var MouseRotateHandler = function(MouseHandler2) {\n function MouseRotateHandler2() {\n MouseHandler2.apply(this, arguments);\n }\n if (MouseHandler2)\n MouseRotateHandler2.__proto__ = MouseHandler2;\n MouseRotateHandler2.prototype = Object.create(MouseHandler2 && MouseHandler2.prototype);\n MouseRotateHandler2.prototype.constructor = MouseRotateHandler2;\n MouseRotateHandler2.prototype._correctButton = function _correctButton(e, button) {\n return button === LEFT_BUTTON && e.ctrlKey || button === RIGHT_BUTTON;\n };\n MouseRotateHandler2.prototype._move = function _move(lastPoint, point) {\n var degreesPerPixelMoved = 0.8;\n var bearingDelta = (point.x - lastPoint.x) * degreesPerPixelMoved;\n if (bearingDelta) {\n this._active = true;\n return { bearingDelta };\n }\n };\n MouseRotateHandler2.prototype.contextmenu = function contextmenu(e) {\n e.preventDefault();\n };\n return MouseRotateHandler2;\n }(MouseHandler);\n var MousePitchHandler = function(MouseHandler2) {\n function MousePitchHandler2() {\n MouseHandler2.apply(this, arguments);\n }\n if (MouseHandler2)\n MousePitchHandler2.__proto__ = MouseHandler2;\n MousePitchHandler2.prototype = Object.create(MouseHandler2 && MouseHandler2.prototype);\n MousePitchHandler2.prototype.constructor = MousePitchHandler2;\n MousePitchHandler2.prototype._correctButton = function _correctButton(e, button) {\n return button === LEFT_BUTTON && e.ctrlKey || button === RIGHT_BUTTON;\n };\n MousePitchHandler2.prototype._move = function _move(lastPoint, point) {\n var degreesPerPixelMoved = -0.5;\n var pitchDelta = (point.y - lastPoint.y) * degreesPerPixelMoved;\n if (pitchDelta) {\n this._active = true;\n return { pitchDelta };\n }\n };\n MousePitchHandler2.prototype.contextmenu = function contextmenu(e) {\n e.preventDefault();\n };\n return MousePitchHandler2;\n }(MouseHandler);\n var TouchPanHandler = function TouchPanHandler2(options) {\n this._minTouches = 1;\n this._clickTolerance = options.clickTolerance || 1;\n this.reset();\n };\n TouchPanHandler.prototype.reset = function reset() {\n this._active = false;\n this._touches = {};\n this._sum = new performance2.Point(0, 0);\n };\n TouchPanHandler.prototype.touchstart = function touchstart(e, points, mapTouches) {\n return this._calculateTransform(e, points, mapTouches);\n };\n TouchPanHandler.prototype.touchmove = function touchmove(e, points, mapTouches) {\n if (!this._active || mapTouches.length < this._minTouches) {\n return;\n }\n e.preventDefault();\n return this._calculateTransform(e, points, mapTouches);\n };\n TouchPanHandler.prototype.touchend = function touchend(e, points, mapTouches) {\n this._calculateTransform(e, points, mapTouches);\n if (this._active && mapTouches.length < this._minTouches) {\n this.reset();\n }\n };\n TouchPanHandler.prototype.touchcancel = function touchcancel() {\n this.reset();\n };\n TouchPanHandler.prototype._calculateTransform = function _calculateTransform(e, points, mapTouches) {\n if (mapTouches.length > 0) {\n this._active = true;\n }\n var touches = indexTouches(mapTouches, points);\n var touchPointSum = new performance2.Point(0, 0);\n var touchDeltaSum = new performance2.Point(0, 0);\n var touchDeltaCount = 0;\n for (var identifier in touches) {\n var point = touches[identifier];\n var prevPoint = this._touches[identifier];\n if (prevPoint) {\n touchPointSum._add(point);\n touchDeltaSum._add(point.sub(prevPoint));\n touchDeltaCount++;\n touches[identifier] = point;\n }\n }\n this._touches = touches;\n if (touchDeltaCount < this._minTouches || !touchDeltaSum.mag()) {\n return;\n }\n var panDelta = touchDeltaSum.div(touchDeltaCount);\n this._sum._add(panDelta);\n if (this._sum.mag() < this._clickTolerance) {\n return;\n }\n var around = touchPointSum.div(touchDeltaCount);\n return {\n around,\n panDelta\n };\n };\n TouchPanHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n TouchPanHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n TouchPanHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n TouchPanHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var TwoTouchHandler = function TwoTouchHandler2() {\n this.reset();\n };\n TwoTouchHandler.prototype.reset = function reset() {\n this._active = false;\n delete this._firstTwoTouches;\n };\n TwoTouchHandler.prototype._start = function _start(points) {\n };\n TwoTouchHandler.prototype._move = function _move(points, pinchAround, e) {\n return {};\n };\n TwoTouchHandler.prototype.touchstart = function touchstart(e, points, mapTouches) {\n if (this._firstTwoTouches || mapTouches.length < 2) {\n return;\n }\n this._firstTwoTouches = [\n mapTouches[0].identifier,\n mapTouches[1].identifier\n ];\n this._start([\n points[0],\n points[1]\n ]);\n };\n TwoTouchHandler.prototype.touchmove = function touchmove(e, points, mapTouches) {\n if (!this._firstTwoTouches) {\n return;\n }\n e.preventDefault();\n var ref = this._firstTwoTouches;\n var idA = ref[0];\n var idB = ref[1];\n var a = getTouchById(mapTouches, points, idA);\n var b = getTouchById(mapTouches, points, idB);\n if (!a || !b) {\n return;\n }\n var pinchAround = this._aroundCenter ? null : a.add(b).div(2);\n return this._move([\n a,\n b\n ], pinchAround, e);\n };\n TwoTouchHandler.prototype.touchend = function touchend(e, points, mapTouches) {\n if (!this._firstTwoTouches) {\n return;\n }\n var ref = this._firstTwoTouches;\n var idA = ref[0];\n var idB = ref[1];\n var a = getTouchById(mapTouches, points, idA);\n var b = getTouchById(mapTouches, points, idB);\n if (a && b) {\n return;\n }\n if (this._active) {\n DOM.suppressClick();\n }\n this.reset();\n };\n TwoTouchHandler.prototype.touchcancel = function touchcancel() {\n this.reset();\n };\n TwoTouchHandler.prototype.enable = function enable(options) {\n this._enabled = true;\n this._aroundCenter = !!options && options.around === \"center\";\n };\n TwoTouchHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n TwoTouchHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n TwoTouchHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n function getTouchById(mapTouches, points, identifier) {\n for (var i = 0; i < mapTouches.length; i++) {\n if (mapTouches[i].identifier === identifier) {\n return points[i];\n }\n }\n }\n var ZOOM_THRESHOLD = 0.1;\n function getZoomDelta(distance, lastDistance) {\n return Math.log(distance / lastDistance) / Math.LN2;\n }\n var TouchZoomHandler = function(TwoTouchHandler2) {\n function TouchZoomHandler2() {\n TwoTouchHandler2.apply(this, arguments);\n }\n if (TwoTouchHandler2)\n TouchZoomHandler2.__proto__ = TwoTouchHandler2;\n TouchZoomHandler2.prototype = Object.create(TwoTouchHandler2 && TwoTouchHandler2.prototype);\n TouchZoomHandler2.prototype.constructor = TouchZoomHandler2;\n TouchZoomHandler2.prototype.reset = function reset() {\n TwoTouchHandler2.prototype.reset.call(this);\n delete this._distance;\n delete this._startDistance;\n };\n TouchZoomHandler2.prototype._start = function _start(points) {\n this._startDistance = this._distance = points[0].dist(points[1]);\n };\n TouchZoomHandler2.prototype._move = function _move(points, pinchAround) {\n var lastDistance = this._distance;\n this._distance = points[0].dist(points[1]);\n if (!this._active && Math.abs(getZoomDelta(this._distance, this._startDistance)) < ZOOM_THRESHOLD) {\n return;\n }\n this._active = true;\n return {\n zoomDelta: getZoomDelta(this._distance, lastDistance),\n pinchAround\n };\n };\n return TouchZoomHandler2;\n }(TwoTouchHandler);\n var ROTATION_THRESHOLD = 25;\n function getBearingDelta(a, b) {\n return a.angleWith(b) * 180 / Math.PI;\n }\n var TouchRotateHandler = function(TwoTouchHandler2) {\n function TouchRotateHandler2() {\n TwoTouchHandler2.apply(this, arguments);\n }\n if (TwoTouchHandler2)\n TouchRotateHandler2.__proto__ = TwoTouchHandler2;\n TouchRotateHandler2.prototype = Object.create(TwoTouchHandler2 && TwoTouchHandler2.prototype);\n TouchRotateHandler2.prototype.constructor = TouchRotateHandler2;\n TouchRotateHandler2.prototype.reset = function reset() {\n TwoTouchHandler2.prototype.reset.call(this);\n delete this._minDiameter;\n delete this._startVector;\n delete this._vector;\n };\n TouchRotateHandler2.prototype._start = function _start(points) {\n this._startVector = this._vector = points[0].sub(points[1]);\n this._minDiameter = points[0].dist(points[1]);\n };\n TouchRotateHandler2.prototype._move = function _move(points, pinchAround) {\n var lastVector = this._vector;\n this._vector = points[0].sub(points[1]);\n if (!this._active && this._isBelowThreshold(this._vector)) {\n return;\n }\n this._active = true;\n return {\n bearingDelta: getBearingDelta(this._vector, lastVector),\n pinchAround\n };\n };\n TouchRotateHandler2.prototype._isBelowThreshold = function _isBelowThreshold(vector) {\n this._minDiameter = Math.min(this._minDiameter, vector.mag());\n var circumference = Math.PI * this._minDiameter;\n var threshold = ROTATION_THRESHOLD / circumference * 360;\n var bearingDeltaSinceStart = getBearingDelta(vector, this._startVector);\n return Math.abs(bearingDeltaSinceStart) < threshold;\n };\n return TouchRotateHandler2;\n }(TwoTouchHandler);\n function isVertical(vector) {\n return Math.abs(vector.y) > Math.abs(vector.x);\n }\n var ALLOWED_SINGLE_TOUCH_TIME = 100;\n var TouchPitchHandler = function(TwoTouchHandler2) {\n function TouchPitchHandler2() {\n TwoTouchHandler2.apply(this, arguments);\n }\n if (TwoTouchHandler2)\n TouchPitchHandler2.__proto__ = TwoTouchHandler2;\n TouchPitchHandler2.prototype = Object.create(TwoTouchHandler2 && TwoTouchHandler2.prototype);\n TouchPitchHandler2.prototype.constructor = TouchPitchHandler2;\n TouchPitchHandler2.prototype.reset = function reset() {\n TwoTouchHandler2.prototype.reset.call(this);\n this._valid = void 0;\n delete this._firstMove;\n delete this._lastPoints;\n };\n TouchPitchHandler2.prototype._start = function _start(points) {\n this._lastPoints = points;\n if (isVertical(points[0].sub(points[1]))) {\n this._valid = false;\n }\n };\n TouchPitchHandler2.prototype._move = function _move(points, center, e) {\n var vectorA = points[0].sub(this._lastPoints[0]);\n var vectorB = points[1].sub(this._lastPoints[1]);\n this._valid = this.gestureBeginsVertically(vectorA, vectorB, e.timeStamp);\n if (!this._valid) {\n return;\n }\n this._lastPoints = points;\n this._active = true;\n var yDeltaAverage = (vectorA.y + vectorB.y) / 2;\n var degreesPerPixelMoved = -0.5;\n return { pitchDelta: yDeltaAverage * degreesPerPixelMoved };\n };\n TouchPitchHandler2.prototype.gestureBeginsVertically = function gestureBeginsVertically(vectorA, vectorB, timeStamp) {\n if (this._valid !== void 0) {\n return this._valid;\n }\n var threshold = 2;\n var movedA = vectorA.mag() >= threshold;\n var movedB = vectorB.mag() >= threshold;\n if (!movedA && !movedB) {\n return;\n }\n if (!movedA || !movedB) {\n if (this._firstMove === void 0) {\n this._firstMove = timeStamp;\n }\n if (timeStamp - this._firstMove < ALLOWED_SINGLE_TOUCH_TIME) {\n return void 0;\n } else {\n return false;\n }\n }\n var isSameDirection = vectorA.y > 0 === vectorB.y > 0;\n return isVertical(vectorA) && isVertical(vectorB) && isSameDirection;\n };\n return TouchPitchHandler2;\n }(TwoTouchHandler);\n var defaultOptions = {\n panStep: 100,\n bearingStep: 15,\n pitchStep: 10\n };\n var KeyboardHandler = function KeyboardHandler2() {\n var stepOptions = defaultOptions;\n this._panStep = stepOptions.panStep;\n this._bearingStep = stepOptions.bearingStep;\n this._pitchStep = stepOptions.pitchStep;\n this._rotationDisabled = false;\n };\n KeyboardHandler.prototype.reset = function reset() {\n this._active = false;\n };\n KeyboardHandler.prototype.keydown = function keydown(e) {\n var this$1 = this;\n if (e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n var zoomDir = 0;\n var bearingDir = 0;\n var pitchDir = 0;\n var xDir = 0;\n var yDir = 0;\n switch (e.keyCode) {\n case 61:\n case 107:\n case 171:\n case 187:\n zoomDir = 1;\n break;\n case 189:\n case 109:\n case 173:\n zoomDir = -1;\n break;\n case 37:\n if (e.shiftKey) {\n bearingDir = -1;\n } else {\n e.preventDefault();\n xDir = -1;\n }\n break;\n case 39:\n if (e.shiftKey) {\n bearingDir = 1;\n } else {\n e.preventDefault();\n xDir = 1;\n }\n break;\n case 38:\n if (e.shiftKey) {\n pitchDir = 1;\n } else {\n e.preventDefault();\n yDir = -1;\n }\n break;\n case 40:\n if (e.shiftKey) {\n pitchDir = -1;\n } else {\n e.preventDefault();\n yDir = 1;\n }\n break;\n default:\n return;\n }\n if (this._rotationDisabled) {\n bearingDir = 0;\n pitchDir = 0;\n }\n return {\n cameraAnimation: function(map) {\n var zoom = map.getZoom();\n map.easeTo({\n duration: 300,\n easeId: \"keyboardHandler\",\n easing: easeOut,\n zoom: zoomDir ? Math.round(zoom) + zoomDir * (e.shiftKey ? 2 : 1) : zoom,\n bearing: map.getBearing() + bearingDir * this$1._bearingStep,\n pitch: map.getPitch() + pitchDir * this$1._pitchStep,\n offset: [\n -xDir * this$1._panStep,\n -yDir * this$1._panStep\n ],\n center: map.getCenter()\n }, { originalEvent: e });\n }\n };\n };\n KeyboardHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n KeyboardHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n KeyboardHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n KeyboardHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n KeyboardHandler.prototype.disableRotation = function disableRotation() {\n this._rotationDisabled = true;\n };\n KeyboardHandler.prototype.enableRotation = function enableRotation() {\n this._rotationDisabled = false;\n };\n function easeOut(t) {\n return t * (2 - t);\n }\n var wheelZoomDelta = 4.000244140625;\n var defaultZoomRate = 1 / 100;\n var wheelZoomRate = 1 / 450;\n var maxScalePerFrame = 2;\n var ScrollZoomHandler = function ScrollZoomHandler2(map, handler) {\n this._map = map;\n this._el = map.getCanvasContainer();\n this._handler = handler;\n this._delta = 0;\n this._defaultZoomRate = defaultZoomRate;\n this._wheelZoomRate = wheelZoomRate;\n performance2.bindAll([\"_onTimeout\"], this);\n };\n ScrollZoomHandler.prototype.setZoomRate = function setZoomRate(zoomRate) {\n this._defaultZoomRate = zoomRate;\n };\n ScrollZoomHandler.prototype.setWheelZoomRate = function setWheelZoomRate(wheelZoomRate2) {\n this._wheelZoomRate = wheelZoomRate2;\n };\n ScrollZoomHandler.prototype.isEnabled = function isEnabled() {\n return !!this._enabled;\n };\n ScrollZoomHandler.prototype.isActive = function isActive() {\n return !!this._active || this._finishTimeout !== void 0;\n };\n ScrollZoomHandler.prototype.isZooming = function isZooming() {\n return !!this._zooming;\n };\n ScrollZoomHandler.prototype.enable = function enable(options) {\n if (this.isEnabled()) {\n return;\n }\n this._enabled = true;\n this._aroundCenter = options && options.around === \"center\";\n };\n ScrollZoomHandler.prototype.disable = function disable() {\n if (!this.isEnabled()) {\n return;\n }\n this._enabled = false;\n };\n ScrollZoomHandler.prototype.wheel = function wheel(e) {\n if (!this.isEnabled()) {\n return;\n }\n var value = e.deltaMode === performance2.window.WheelEvent.DOM_DELTA_LINE ? e.deltaY * 40 : e.deltaY;\n var now = performance2.browser.now(), timeDelta = now - (this._lastWheelEventTime || 0);\n this._lastWheelEventTime = now;\n if (value !== 0 && value % wheelZoomDelta === 0) {\n this._type = \"wheel\";\n } else if (value !== 0 && Math.abs(value) < 4) {\n this._type = \"trackpad\";\n } else if (timeDelta > 400) {\n this._type = null;\n this._lastValue = value;\n this._timeout = setTimeout(this._onTimeout, 40, e);\n } else if (!this._type) {\n this._type = Math.abs(timeDelta * value) < 200 ? \"trackpad\" : \"wheel\";\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n value += this._lastValue;\n }\n }\n if (e.shiftKey && value) {\n value = value / 4;\n }\n if (this._type) {\n this._lastWheelEvent = e;\n this._delta -= value;\n if (!this._active) {\n this._start(e);\n }\n }\n e.preventDefault();\n };\n ScrollZoomHandler.prototype._onTimeout = function _onTimeout(initialEvent) {\n this._type = \"wheel\";\n this._delta -= this._lastValue;\n if (!this._active) {\n this._start(initialEvent);\n }\n };\n ScrollZoomHandler.prototype._start = function _start(e) {\n if (!this._delta) {\n return;\n }\n if (this._frameId) {\n this._frameId = null;\n }\n this._active = true;\n if (!this.isZooming()) {\n this._zooming = true;\n }\n if (this._finishTimeout) {\n clearTimeout(this._finishTimeout);\n delete this._finishTimeout;\n }\n var pos = DOM.mousePos(this._el, e);\n this._around = performance2.LngLat.convert(this._aroundCenter ? this._map.getCenter() : this._map.unproject(pos));\n this._aroundPoint = this._map.transform.locationPoint(this._around);\n if (!this._frameId) {\n this._frameId = true;\n this._handler._triggerRenderFrame();\n }\n };\n ScrollZoomHandler.prototype.renderFrame = function renderFrame() {\n var this$1 = this;\n if (!this._frameId) {\n return;\n }\n this._frameId = null;\n if (!this.isActive()) {\n return;\n }\n var tr = this._map.transform;\n if (this._delta !== 0) {\n var zoomRate = this._type === \"wheel\" && Math.abs(this._delta) > wheelZoomDelta ? this._wheelZoomRate : this._defaultZoomRate;\n var scale = maxScalePerFrame / (1 + Math.exp(-Math.abs(this._delta * zoomRate)));\n if (this._delta < 0 && scale !== 0) {\n scale = 1 / scale;\n }\n var fromScale = typeof this._targetZoom === \"number\" ? tr.zoomScale(this._targetZoom) : tr.scale;\n this._targetZoom = Math.min(tr.maxZoom, Math.max(tr.minZoom, tr.scaleZoom(fromScale * scale)));\n if (this._type === \"wheel\") {\n this._startZoom = tr.zoom;\n this._easing = this._smoothOutEasing(200);\n }\n this._delta = 0;\n }\n var targetZoom = typeof this._targetZoom === \"number\" ? this._targetZoom : tr.zoom;\n var startZoom = this._startZoom;\n var easing = this._easing;\n var finished = false;\n var zoom;\n if (this._type === \"wheel\" && startZoom && easing) {\n var t = Math.min((performance2.browser.now() - this._lastWheelEventTime) / 200, 1);\n var k = easing(t);\n zoom = performance2.number(startZoom, targetZoom, k);\n if (t < 1) {\n if (!this._frameId) {\n this._frameId = true;\n }\n } else {\n finished = true;\n }\n } else {\n zoom = targetZoom;\n finished = true;\n }\n this._active = true;\n if (finished) {\n this._active = false;\n this._finishTimeout = setTimeout(function() {\n this$1._zooming = false;\n this$1._handler._triggerRenderFrame();\n delete this$1._targetZoom;\n delete this$1._finishTimeout;\n }, 200);\n }\n return {\n noInertia: true,\n needsRenderFrame: !finished,\n zoomDelta: zoom - tr.zoom,\n around: this._aroundPoint,\n originalEvent: this._lastWheelEvent\n };\n };\n ScrollZoomHandler.prototype._smoothOutEasing = function _smoothOutEasing(duration) {\n var easing = performance2.ease;\n if (this._prevEase) {\n var ease = this._prevEase, t = (performance2.browser.now() - ease.start) / ease.duration, speed = ease.easing(t + 0.01) - ease.easing(t), x = 0.27 / Math.sqrt(speed * speed + 1e-4) * 0.01, y = Math.sqrt(0.27 * 0.27 - x * x);\n easing = performance2.bezier(x, y, 0.25, 1);\n }\n this._prevEase = {\n start: performance2.browser.now(),\n duration,\n easing\n };\n return easing;\n };\n ScrollZoomHandler.prototype.reset = function reset() {\n this._active = false;\n };\n var DoubleClickZoomHandler = function DoubleClickZoomHandler2(clickZoom, TapZoom) {\n this._clickZoom = clickZoom;\n this._tapZoom = TapZoom;\n };\n DoubleClickZoomHandler.prototype.enable = function enable() {\n this._clickZoom.enable();\n this._tapZoom.enable();\n };\n DoubleClickZoomHandler.prototype.disable = function disable() {\n this._clickZoom.disable();\n this._tapZoom.disable();\n };\n DoubleClickZoomHandler.prototype.isEnabled = function isEnabled() {\n return this._clickZoom.isEnabled() && this._tapZoom.isEnabled();\n };\n DoubleClickZoomHandler.prototype.isActive = function isActive() {\n return this._clickZoom.isActive() || this._tapZoom.isActive();\n };\n var ClickZoomHandler = function ClickZoomHandler2() {\n this.reset();\n };\n ClickZoomHandler.prototype.reset = function reset() {\n this._active = false;\n };\n ClickZoomHandler.prototype.dblclick = function dblclick(e, point) {\n e.preventDefault();\n return {\n cameraAnimation: function(map) {\n map.easeTo({\n duration: 300,\n zoom: map.getZoom() + (e.shiftKey ? -1 : 1),\n around: map.unproject(point)\n }, { originalEvent: e });\n }\n };\n };\n ClickZoomHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n ClickZoomHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n ClickZoomHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n ClickZoomHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var TapDragZoomHandler = function TapDragZoomHandler2() {\n this._tap = new TapRecognizer({\n numTouches: 1,\n numTaps: 1\n });\n this.reset();\n };\n TapDragZoomHandler.prototype.reset = function reset() {\n this._active = false;\n delete this._swipePoint;\n delete this._swipeTouch;\n delete this._tapTime;\n this._tap.reset();\n };\n TapDragZoomHandler.prototype.touchstart = function touchstart(e, points, mapTouches) {\n if (this._swipePoint) {\n return;\n }\n if (this._tapTime && e.timeStamp - this._tapTime > MAX_TAP_INTERVAL) {\n this.reset();\n }\n if (!this._tapTime) {\n this._tap.touchstart(e, points, mapTouches);\n } else if (mapTouches.length > 0) {\n this._swipePoint = points[0];\n this._swipeTouch = mapTouches[0].identifier;\n }\n };\n TapDragZoomHandler.prototype.touchmove = function touchmove(e, points, mapTouches) {\n if (!this._tapTime) {\n this._tap.touchmove(e, points, mapTouches);\n } else if (this._swipePoint) {\n if (mapTouches[0].identifier !== this._swipeTouch) {\n return;\n }\n var newSwipePoint = points[0];\n var dist = newSwipePoint.y - this._swipePoint.y;\n this._swipePoint = newSwipePoint;\n e.preventDefault();\n this._active = true;\n return { zoomDelta: dist / 128 };\n }\n };\n TapDragZoomHandler.prototype.touchend = function touchend(e, points, mapTouches) {\n if (!this._tapTime) {\n var point = this._tap.touchend(e, points, mapTouches);\n if (point) {\n this._tapTime = e.timeStamp;\n }\n } else if (this._swipePoint) {\n if (mapTouches.length === 0) {\n this.reset();\n }\n }\n };\n TapDragZoomHandler.prototype.touchcancel = function touchcancel() {\n this.reset();\n };\n TapDragZoomHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n TapDragZoomHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n TapDragZoomHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n TapDragZoomHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var DragPanHandler = function DragPanHandler2(el, mousePan, touchPan) {\n this._el = el;\n this._mousePan = mousePan;\n this._touchPan = touchPan;\n };\n DragPanHandler.prototype.enable = function enable(options) {\n this._inertiaOptions = options || {};\n this._mousePan.enable();\n this._touchPan.enable();\n this._el.classList.add(\"mapboxgl-touch-drag-pan\");\n };\n DragPanHandler.prototype.disable = function disable() {\n this._mousePan.disable();\n this._touchPan.disable();\n this._el.classList.remove(\"mapboxgl-touch-drag-pan\");\n };\n DragPanHandler.prototype.isEnabled = function isEnabled() {\n return this._mousePan.isEnabled() && this._touchPan.isEnabled();\n };\n DragPanHandler.prototype.isActive = function isActive() {\n return this._mousePan.isActive() || this._touchPan.isActive();\n };\n var DragRotateHandler = function DragRotateHandler2(options, mouseRotate, mousePitch) {\n this._pitchWithRotate = options.pitchWithRotate;\n this._mouseRotate = mouseRotate;\n this._mousePitch = mousePitch;\n };\n DragRotateHandler.prototype.enable = function enable() {\n this._mouseRotate.enable();\n if (this._pitchWithRotate) {\n this._mousePitch.enable();\n }\n };\n DragRotateHandler.prototype.disable = function disable() {\n this._mouseRotate.disable();\n this._mousePitch.disable();\n };\n DragRotateHandler.prototype.isEnabled = function isEnabled() {\n return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled());\n };\n DragRotateHandler.prototype.isActive = function isActive() {\n return this._mouseRotate.isActive() || this._mousePitch.isActive();\n };\n var TouchZoomRotateHandler = function TouchZoomRotateHandler2(el, touchZoom, touchRotate, tapDragZoom) {\n this._el = el;\n this._touchZoom = touchZoom;\n this._touchRotate = touchRotate;\n this._tapDragZoom = tapDragZoom;\n this._rotationDisabled = false;\n this._enabled = true;\n };\n TouchZoomRotateHandler.prototype.enable = function enable(options) {\n this._touchZoom.enable(options);\n if (!this._rotationDisabled) {\n this._touchRotate.enable(options);\n }\n this._tapDragZoom.enable();\n this._el.classList.add(\"mapboxgl-touch-zoom-rotate\");\n };\n TouchZoomRotateHandler.prototype.disable = function disable() {\n this._touchZoom.disable();\n this._touchRotate.disable();\n this._tapDragZoom.disable();\n this._el.classList.remove(\"mapboxgl-touch-zoom-rotate\");\n };\n TouchZoomRotateHandler.prototype.isEnabled = function isEnabled() {\n return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled();\n };\n TouchZoomRotateHandler.prototype.isActive = function isActive() {\n return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive();\n };\n TouchZoomRotateHandler.prototype.disableRotation = function disableRotation() {\n this._rotationDisabled = true;\n this._touchRotate.disable();\n };\n TouchZoomRotateHandler.prototype.enableRotation = function enableRotation() {\n this._rotationDisabled = false;\n if (this._touchZoom.isEnabled()) {\n this._touchRotate.enable();\n }\n };\n var isMoving = function(p) {\n return p.zoom || p.drag || p.pitch || p.rotate;\n };\n var RenderFrameEvent = function(Event) {\n function RenderFrameEvent2() {\n Event.apply(this, arguments);\n }\n if (Event)\n RenderFrameEvent2.__proto__ = Event;\n RenderFrameEvent2.prototype = Object.create(Event && Event.prototype);\n RenderFrameEvent2.prototype.constructor = RenderFrameEvent2;\n return RenderFrameEvent2;\n }(performance2.Event);\n function hasChange(result) {\n return result.panDelta && result.panDelta.mag() || result.zoomDelta || result.bearingDelta || result.pitchDelta;\n }\n var HandlerManager = function HandlerManager2(map, options) {\n this._map = map;\n this._el = this._map.getCanvasContainer();\n this._handlers = [];\n this._handlersById = {};\n this._changes = [];\n this._inertia = new HandlerInertia(map);\n this._bearingSnap = options.bearingSnap;\n this._previousActiveHandlers = {};\n this._eventsInProgress = {};\n this._addDefaultHandlers(options);\n performance2.bindAll([\n \"handleEvent\",\n \"handleWindowEvent\"\n ], this);\n var el = this._el;\n this._listeners = [\n [\n el,\n \"touchstart\",\n { passive: true }\n ],\n [\n el,\n \"touchmove\",\n { passive: false }\n ],\n [\n el,\n \"touchend\",\n void 0\n ],\n [\n el,\n \"touchcancel\",\n void 0\n ],\n [\n el,\n \"mousedown\",\n void 0\n ],\n [\n el,\n \"mousemove\",\n void 0\n ],\n [\n el,\n \"mouseup\",\n void 0\n ],\n [\n performance2.window.document,\n \"mousemove\",\n { capture: true }\n ],\n [\n performance2.window.document,\n \"mouseup\",\n void 0\n ],\n [\n el,\n \"mouseover\",\n void 0\n ],\n [\n el,\n \"mouseout\",\n void 0\n ],\n [\n el,\n \"dblclick\",\n void 0\n ],\n [\n el,\n \"click\",\n void 0\n ],\n [\n el,\n \"keydown\",\n { capture: false }\n ],\n [\n el,\n \"keyup\",\n void 0\n ],\n [\n el,\n \"wheel\",\n { passive: false }\n ],\n [\n el,\n \"contextmenu\",\n void 0\n ],\n [\n performance2.window,\n \"blur\",\n void 0\n ]\n ];\n for (var i = 0, list = this._listeners; i < list.length; i += 1) {\n var ref = list[i];\n var target = ref[0];\n var type = ref[1];\n var listenerOptions = ref[2];\n DOM.addEventListener(target, type, target === performance2.window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);\n }\n };\n HandlerManager.prototype.destroy = function destroy() {\n for (var i = 0, list = this._listeners; i < list.length; i += 1) {\n var ref = list[i];\n var target = ref[0];\n var type = ref[1];\n var listenerOptions = ref[2];\n DOM.removeEventListener(target, type, target === performance2.window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);\n }\n };\n HandlerManager.prototype._addDefaultHandlers = function _addDefaultHandlers(options) {\n var map = this._map;\n var el = map.getCanvasContainer();\n this._add(\"mapEvent\", new MapEventHandler(map, options));\n var boxZoom = map.boxZoom = new BoxZoomHandler(map, options);\n this._add(\"boxZoom\", boxZoom);\n var tapZoom = new TapZoomHandler();\n var clickZoom = new ClickZoomHandler();\n map.doubleClickZoom = new DoubleClickZoomHandler(clickZoom, tapZoom);\n this._add(\"tapZoom\", tapZoom);\n this._add(\"clickZoom\", clickZoom);\n var tapDragZoom = new TapDragZoomHandler();\n this._add(\"tapDragZoom\", tapDragZoom);\n var touchPitch = map.touchPitch = new TouchPitchHandler();\n this._add(\"touchPitch\", touchPitch);\n var mouseRotate = new MouseRotateHandler(options);\n var mousePitch = new MousePitchHandler(options);\n map.dragRotate = new DragRotateHandler(options, mouseRotate, mousePitch);\n this._add(\"mouseRotate\", mouseRotate, [\"mousePitch\"]);\n this._add(\"mousePitch\", mousePitch, [\"mouseRotate\"]);\n var mousePan = new MousePanHandler(options);\n var touchPan = new TouchPanHandler(options);\n map.dragPan = new DragPanHandler(el, mousePan, touchPan);\n this._add(\"mousePan\", mousePan);\n this._add(\"touchPan\", touchPan, [\n \"touchZoom\",\n \"touchRotate\"\n ]);\n var touchRotate = new TouchRotateHandler();\n var touchZoom = new TouchZoomHandler();\n map.touchZoomRotate = new TouchZoomRotateHandler(el, touchZoom, touchRotate, tapDragZoom);\n this._add(\"touchRotate\", touchRotate, [\n \"touchPan\",\n \"touchZoom\"\n ]);\n this._add(\"touchZoom\", touchZoom, [\n \"touchPan\",\n \"touchRotate\"\n ]);\n var scrollZoom = map.scrollZoom = new ScrollZoomHandler(map, this);\n this._add(\"scrollZoom\", scrollZoom, [\"mousePan\"]);\n var keyboard = map.keyboard = new KeyboardHandler();\n this._add(\"keyboard\", keyboard);\n this._add(\"blockableMapEvent\", new BlockableMapEventHandler(map));\n for (var i = 0, list = [\n \"boxZoom\",\n \"doubleClickZoom\",\n \"tapDragZoom\",\n \"touchPitch\",\n \"dragRotate\",\n \"dragPan\",\n \"touchZoomRotate\",\n \"scrollZoom\",\n \"keyboard\"\n ]; i < list.length; i += 1) {\n var name2 = list[i];\n if (options.interactive && options[name2]) {\n map[name2].enable(options[name2]);\n }\n }\n };\n HandlerManager.prototype._add = function _add(handlerName, handler, allowed) {\n this._handlers.push({\n handlerName,\n handler,\n allowed\n });\n this._handlersById[handlerName] = handler;\n };\n HandlerManager.prototype.stop = function stop(allowEndAnimation) {\n if (this._updatingCamera) {\n return;\n }\n for (var i = 0, list = this._handlers; i < list.length; i += 1) {\n var ref = list[i];\n var handler = ref.handler;\n handler.reset();\n }\n this._inertia.clear();\n this._fireEvents({}, {}, allowEndAnimation);\n this._changes = [];\n };\n HandlerManager.prototype.isActive = function isActive() {\n for (var i = 0, list = this._handlers; i < list.length; i += 1) {\n var ref = list[i];\n var handler = ref.handler;\n if (handler.isActive()) {\n return true;\n }\n }\n return false;\n };\n HandlerManager.prototype.isZooming = function isZooming() {\n return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming();\n };\n HandlerManager.prototype.isRotating = function isRotating() {\n return !!this._eventsInProgress.rotate;\n };\n HandlerManager.prototype.isMoving = function isMoving$1() {\n return Boolean(isMoving(this._eventsInProgress)) || this.isZooming();\n };\n HandlerManager.prototype._blockedByActive = function _blockedByActive(activeHandlers, allowed, myName) {\n for (var name2 in activeHandlers) {\n if (name2 === myName) {\n continue;\n }\n if (!allowed || allowed.indexOf(name2) < 0) {\n return true;\n }\n }\n return false;\n };\n HandlerManager.prototype.handleWindowEvent = function handleWindowEvent(e) {\n this.handleEvent(e, e.type + \"Window\");\n };\n HandlerManager.prototype._getMapTouches = function _getMapTouches(touches) {\n var mapTouches = [];\n for (var i = 0, list = touches; i < list.length; i += 1) {\n var t = list[i];\n var target = t.target;\n if (this._el.contains(target)) {\n mapTouches.push(t);\n }\n }\n return mapTouches;\n };\n HandlerManager.prototype.handleEvent = function handleEvent(e, eventName) {\n if (e.type === \"blur\") {\n this.stop(true);\n return;\n }\n this._updatingCamera = true;\n var inputEvent = e.type === \"renderFrame\" ? void 0 : e;\n var mergedHandlerResult = { needsRenderFrame: false };\n var eventsInProgress = {};\n var activeHandlers = {};\n var mapTouches = e.touches ? this._getMapTouches(e.touches) : void 0;\n var points = mapTouches ? DOM.touchPos(this._el, mapTouches) : DOM.mousePos(this._el, e);\n for (var i = 0, list = this._handlers; i < list.length; i += 1) {\n var ref = list[i];\n var handlerName = ref.handlerName;\n var handler = ref.handler;\n var allowed = ref.allowed;\n if (!handler.isEnabled()) {\n continue;\n }\n var data = void 0;\n if (this._blockedByActive(activeHandlers, allowed, handlerName)) {\n handler.reset();\n } else {\n if (handler[eventName || e.type]) {\n data = handler[eventName || e.type](e, points, mapTouches);\n this.mergeHandlerResult(mergedHandlerResult, eventsInProgress, data, handlerName, inputEvent);\n if (data && data.needsRenderFrame) {\n this._triggerRenderFrame();\n }\n }\n }\n if (data || handler.isActive()) {\n activeHandlers[handlerName] = handler;\n }\n }\n var deactivatedHandlers = {};\n for (var name2 in this._previousActiveHandlers) {\n if (!activeHandlers[name2]) {\n deactivatedHandlers[name2] = inputEvent;\n }\n }\n this._previousActiveHandlers = activeHandlers;\n if (Object.keys(deactivatedHandlers).length || hasChange(mergedHandlerResult)) {\n this._changes.push([\n mergedHandlerResult,\n eventsInProgress,\n deactivatedHandlers\n ]);\n this._triggerRenderFrame();\n }\n if (Object.keys(activeHandlers).length || hasChange(mergedHandlerResult)) {\n this._map._stop(true);\n }\n this._updatingCamera = false;\n var cameraAnimation = mergedHandlerResult.cameraAnimation;\n if (cameraAnimation) {\n this._inertia.clear();\n this._fireEvents({}, {}, true);\n this._changes = [];\n cameraAnimation(this._map);\n }\n };\n HandlerManager.prototype.mergeHandlerResult = function mergeHandlerResult(mergedHandlerResult, eventsInProgress, handlerResult, name2, e) {\n if (!handlerResult) {\n return;\n }\n performance2.extend(mergedHandlerResult, handlerResult);\n var eventData = {\n handlerName: name2,\n originalEvent: handlerResult.originalEvent || e\n };\n if (handlerResult.zoomDelta !== void 0) {\n eventsInProgress.zoom = eventData;\n }\n if (handlerResult.panDelta !== void 0) {\n eventsInProgress.drag = eventData;\n }\n if (handlerResult.pitchDelta !== void 0) {\n eventsInProgress.pitch = eventData;\n }\n if (handlerResult.bearingDelta !== void 0) {\n eventsInProgress.rotate = eventData;\n }\n };\n HandlerManager.prototype._applyChanges = function _applyChanges() {\n var combined = {};\n var combinedEventsInProgress = {};\n var combinedDeactivatedHandlers = {};\n for (var i = 0, list = this._changes; i < list.length; i += 1) {\n var ref = list[i];\n var change = ref[0];\n var eventsInProgress = ref[1];\n var deactivatedHandlers = ref[2];\n if (change.panDelta) {\n combined.panDelta = (combined.panDelta || new performance2.Point(0, 0))._add(change.panDelta);\n }\n if (change.zoomDelta) {\n combined.zoomDelta = (combined.zoomDelta || 0) + change.zoomDelta;\n }\n if (change.bearingDelta) {\n combined.bearingDelta = (combined.bearingDelta || 0) + change.bearingDelta;\n }\n if (change.pitchDelta) {\n combined.pitchDelta = (combined.pitchDelta || 0) + change.pitchDelta;\n }\n if (change.around !== void 0) {\n combined.around = change.around;\n }\n if (change.pinchAround !== void 0) {\n combined.pinchAround = change.pinchAround;\n }\n if (change.noInertia) {\n combined.noInertia = change.noInertia;\n }\n performance2.extend(combinedEventsInProgress, eventsInProgress);\n performance2.extend(combinedDeactivatedHandlers, deactivatedHandlers);\n }\n this._updateMapTransform(combined, combinedEventsInProgress, combinedDeactivatedHandlers);\n this._changes = [];\n };\n HandlerManager.prototype._updateMapTransform = function _updateMapTransform(combinedResult, combinedEventsInProgress, deactivatedHandlers) {\n var map = this._map;\n var tr = map.transform;\n if (!hasChange(combinedResult)) {\n return this._fireEvents(combinedEventsInProgress, deactivatedHandlers, true);\n }\n var panDelta = combinedResult.panDelta;\n var zoomDelta = combinedResult.zoomDelta;\n var bearingDelta = combinedResult.bearingDelta;\n var pitchDelta = combinedResult.pitchDelta;\n var around = combinedResult.around;\n var pinchAround = combinedResult.pinchAround;\n if (pinchAround !== void 0) {\n around = pinchAround;\n }\n map._stop(true);\n around = around || map.transform.centerPoint;\n var loc = tr.pointLocation(panDelta ? around.sub(panDelta) : around);\n if (bearingDelta) {\n tr.bearing += bearingDelta;\n }\n if (pitchDelta) {\n tr.pitch += pitchDelta;\n }\n if (zoomDelta) {\n tr.zoom += zoomDelta;\n }\n tr.setLocationAtPoint(loc, around);\n this._map._update();\n if (!combinedResult.noInertia) {\n this._inertia.record(combinedResult);\n }\n this._fireEvents(combinedEventsInProgress, deactivatedHandlers, true);\n };\n HandlerManager.prototype._fireEvents = function _fireEvents(newEventsInProgress, deactivatedHandlers, allowEndAnimation) {\n var this$1 = this;\n var wasMoving = isMoving(this._eventsInProgress);\n var nowMoving = isMoving(newEventsInProgress);\n var startEvents = {};\n for (var eventName in newEventsInProgress) {\n var ref = newEventsInProgress[eventName];\n var originalEvent = ref.originalEvent;\n if (!this._eventsInProgress[eventName]) {\n startEvents[eventName + \"start\"] = originalEvent;\n }\n this._eventsInProgress[eventName] = newEventsInProgress[eventName];\n }\n if (!wasMoving && nowMoving) {\n this._fireEvent(\"movestart\", nowMoving.originalEvent);\n }\n for (var name2 in startEvents) {\n this._fireEvent(name2, startEvents[name2]);\n }\n if (nowMoving) {\n this._fireEvent(\"move\", nowMoving.originalEvent);\n }\n for (var eventName$1 in newEventsInProgress) {\n var ref$1 = newEventsInProgress[eventName$1];\n var originalEvent$1 = ref$1.originalEvent;\n this._fireEvent(eventName$1, originalEvent$1);\n }\n var endEvents = {};\n var originalEndEvent;\n for (var eventName$2 in this._eventsInProgress) {\n var ref$2 = this._eventsInProgress[eventName$2];\n var handlerName = ref$2.handlerName;\n var originalEvent$2 = ref$2.originalEvent;\n if (!this._handlersById[handlerName].isActive()) {\n delete this._eventsInProgress[eventName$2];\n originalEndEvent = deactivatedHandlers[handlerName] || originalEvent$2;\n endEvents[eventName$2 + \"end\"] = originalEndEvent;\n }\n }\n for (var name$1 in endEvents) {\n this._fireEvent(name$1, endEvents[name$1]);\n }\n var stillMoving = isMoving(this._eventsInProgress);\n if (allowEndAnimation && (wasMoving || nowMoving) && !stillMoving) {\n this._updatingCamera = true;\n var inertialEase = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions);\n var shouldSnapToNorth = function(bearing) {\n return bearing !== 0 && -this$1._bearingSnap < bearing && bearing < this$1._bearingSnap;\n };\n if (inertialEase) {\n if (shouldSnapToNorth(inertialEase.bearing || this._map.getBearing())) {\n inertialEase.bearing = 0;\n }\n this._map.easeTo(inertialEase, { originalEvent: originalEndEvent });\n } else {\n this._map.fire(new performance2.Event(\"moveend\", { originalEvent: originalEndEvent }));\n if (shouldSnapToNorth(this._map.getBearing())) {\n this._map.resetNorth();\n }\n }\n this._updatingCamera = false;\n }\n };\n HandlerManager.prototype._fireEvent = function _fireEvent(type, e) {\n this._map.fire(new performance2.Event(type, e ? { originalEvent: e } : {}));\n };\n HandlerManager.prototype._requestFrame = function _requestFrame() {\n var this$1 = this;\n this._map.triggerRepaint();\n return this._map._renderTaskQueue.add(function(timeStamp) {\n delete this$1._frameId;\n this$1.handleEvent(new RenderFrameEvent(\"renderFrame\", { timeStamp }));\n this$1._applyChanges();\n });\n };\n HandlerManager.prototype._triggerRenderFrame = function _triggerRenderFrame() {\n if (this._frameId === void 0) {\n this._frameId = this._requestFrame();\n }\n };\n var Camera = function(Evented) {\n function Camera2(transform, options) {\n Evented.call(this);\n this._moving = false;\n this._zooming = false;\n this.transform = transform;\n this._bearingSnap = options.bearingSnap;\n performance2.bindAll([\"_renderFrameCallback\"], this);\n }\n if (Evented)\n Camera2.__proto__ = Evented;\n Camera2.prototype = Object.create(Evented && Evented.prototype);\n Camera2.prototype.constructor = Camera2;\n Camera2.prototype.getCenter = function getCenter() {\n return new performance2.LngLat(this.transform.center.lng, this.transform.center.lat);\n };\n Camera2.prototype.setCenter = function setCenter(center, eventData) {\n return this.jumpTo({ center }, eventData);\n };\n Camera2.prototype.panBy = function panBy(offset, options, eventData) {\n offset = performance2.Point.convert(offset).mult(-1);\n return this.panTo(this.transform.center, performance2.extend({ offset }, options), eventData);\n };\n Camera2.prototype.panTo = function panTo(lnglat, options, eventData) {\n return this.easeTo(performance2.extend({ center: lnglat }, options), eventData);\n };\n Camera2.prototype.getZoom = function getZoom() {\n return this.transform.zoom;\n };\n Camera2.prototype.setZoom = function setZoom(zoom, eventData) {\n this.jumpTo({ zoom }, eventData);\n return this;\n };\n Camera2.prototype.zoomTo = function zoomTo(zoom, options, eventData) {\n return this.easeTo(performance2.extend({ zoom }, options), eventData);\n };\n Camera2.prototype.zoomIn = function zoomIn(options, eventData) {\n this.zoomTo(this.getZoom() + 1, options, eventData);\n return this;\n };\n Camera2.prototype.zoomOut = function zoomOut(options, eventData) {\n this.zoomTo(this.getZoom() - 1, options, eventData);\n return this;\n };\n Camera2.prototype.getBearing = function getBearing() {\n return this.transform.bearing;\n };\n Camera2.prototype.setBearing = function setBearing(bearing, eventData) {\n this.jumpTo({ bearing }, eventData);\n return this;\n };\n Camera2.prototype.getPadding = function getPadding() {\n return this.transform.padding;\n };\n Camera2.prototype.setPadding = function setPadding(padding2, eventData) {\n this.jumpTo({ padding: padding2 }, eventData);\n return this;\n };\n Camera2.prototype.rotateTo = function rotateTo(bearing, options, eventData) {\n return this.easeTo(performance2.extend({ bearing }, options), eventData);\n };\n Camera2.prototype.resetNorth = function resetNorth(options, eventData) {\n this.rotateTo(0, performance2.extend({ duration: 1e3 }, options), eventData);\n return this;\n };\n Camera2.prototype.resetNorthPitch = function resetNorthPitch(options, eventData) {\n this.easeTo(performance2.extend({\n bearing: 0,\n pitch: 0,\n duration: 1e3\n }, options), eventData);\n return this;\n };\n Camera2.prototype.snapToNorth = function snapToNorth(options, eventData) {\n if (Math.abs(this.getBearing()) < this._bearingSnap) {\n return this.resetNorth(options, eventData);\n }\n return this;\n };\n Camera2.prototype.getPitch = function getPitch() {\n return this.transform.pitch;\n };\n Camera2.prototype.setPitch = function setPitch(pitch, eventData) {\n this.jumpTo({ pitch }, eventData);\n return this;\n };\n Camera2.prototype.cameraForBounds = function cameraForBounds(bounds, options) {\n bounds = performance2.LngLatBounds.convert(bounds);\n var bearing = options && options.bearing || 0;\n return this._cameraForBoxAndBearing(bounds.getNorthWest(), bounds.getSouthEast(), bearing, options);\n };\n Camera2.prototype._cameraForBoxAndBearing = function _cameraForBoxAndBearing(p0, p1, bearing, options) {\n var defaultPadding = {\n top: 0,\n bottom: 0,\n right: 0,\n left: 0\n };\n options = performance2.extend({\n padding: defaultPadding,\n offset: [\n 0,\n 0\n ],\n maxZoom: this.transform.maxZoom\n }, options);\n if (typeof options.padding === \"number\") {\n var p = options.padding;\n options.padding = {\n top: p,\n bottom: p,\n right: p,\n left: p\n };\n }\n options.padding = performance2.extend(defaultPadding, options.padding);\n var tr = this.transform;\n var edgePadding = tr.padding;\n var p0world = tr.project(performance2.LngLat.convert(p0));\n var p1world = tr.project(performance2.LngLat.convert(p1));\n var p0rotated = p0world.rotate(-bearing * Math.PI / 180);\n var p1rotated = p1world.rotate(-bearing * Math.PI / 180);\n var upperRight = new performance2.Point(Math.max(p0rotated.x, p1rotated.x), Math.max(p0rotated.y, p1rotated.y));\n var lowerLeft = new performance2.Point(Math.min(p0rotated.x, p1rotated.x), Math.min(p0rotated.y, p1rotated.y));\n var size = upperRight.sub(lowerLeft);\n var scaleX = (tr.width - (edgePadding.left + edgePadding.right + options.padding.left + options.padding.right)) / size.x;\n var scaleY = (tr.height - (edgePadding.top + edgePadding.bottom + options.padding.top + options.padding.bottom)) / size.y;\n if (scaleY < 0 || scaleX < 0) {\n performance2.warnOnce(\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\");\n return;\n }\n var zoom = Math.min(tr.scaleZoom(tr.scale * Math.min(scaleX, scaleY)), options.maxZoom);\n var offset = typeof options.offset.x === \"number\" ? new performance2.Point(options.offset.x, options.offset.y) : performance2.Point.convert(options.offset);\n var paddingOffsetX = (options.padding.left - options.padding.right) / 2;\n var paddingOffsetY = (options.padding.top - options.padding.bottom) / 2;\n var paddingOffset = new performance2.Point(paddingOffsetX, paddingOffsetY);\n var rotatedPaddingOffset = paddingOffset.rotate(bearing * Math.PI / 180);\n var offsetAtInitialZoom = offset.add(rotatedPaddingOffset);\n var offsetAtFinalZoom = offsetAtInitialZoom.mult(tr.scale / tr.zoomScale(zoom));\n var center = tr.unproject(p0world.add(p1world).div(2).sub(offsetAtFinalZoom));\n return {\n center,\n zoom,\n bearing\n };\n };\n Camera2.prototype.fitBounds = function fitBounds(bounds, options, eventData) {\n return this._fitInternal(this.cameraForBounds(bounds, options), options, eventData);\n };\n Camera2.prototype.fitScreenCoordinates = function fitScreenCoordinates(p0, p1, bearing, options, eventData) {\n return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(performance2.Point.convert(p0)), this.transform.pointLocation(performance2.Point.convert(p1)), bearing, options), options, eventData);\n };\n Camera2.prototype._fitInternal = function _fitInternal(calculatedOptions, options, eventData) {\n if (!calculatedOptions) {\n return this;\n }\n options = performance2.extend(calculatedOptions, options);\n delete options.padding;\n return options.linear ? this.easeTo(options, eventData) : this.flyTo(options, eventData);\n };\n Camera2.prototype.jumpTo = function jumpTo(options, eventData) {\n this.stop();\n var tr = this.transform;\n var zoomChanged = false, bearingChanged = false, pitchChanged = false;\n if (\"zoom\" in options && tr.zoom !== +options.zoom) {\n zoomChanged = true;\n tr.zoom = +options.zoom;\n }\n if (options.center !== void 0) {\n tr.center = performance2.LngLat.convert(options.center);\n }\n if (\"bearing\" in options && tr.bearing !== +options.bearing) {\n bearingChanged = true;\n tr.bearing = +options.bearing;\n }\n if (\"pitch\" in options && tr.pitch !== +options.pitch) {\n pitchChanged = true;\n tr.pitch = +options.pitch;\n }\n if (options.padding != null && !tr.isPaddingEqual(options.padding)) {\n tr.padding = options.padding;\n }\n this.fire(new performance2.Event(\"movestart\", eventData)).fire(new performance2.Event(\"move\", eventData));\n if (zoomChanged) {\n this.fire(new performance2.Event(\"zoomstart\", eventData)).fire(new performance2.Event(\"zoom\", eventData)).fire(new performance2.Event(\"zoomend\", eventData));\n }\n if (bearingChanged) {\n this.fire(new performance2.Event(\"rotatestart\", eventData)).fire(new performance2.Event(\"rotate\", eventData)).fire(new performance2.Event(\"rotateend\", eventData));\n }\n if (pitchChanged) {\n this.fire(new performance2.Event(\"pitchstart\", eventData)).fire(new performance2.Event(\"pitch\", eventData)).fire(new performance2.Event(\"pitchend\", eventData));\n }\n return this.fire(new performance2.Event(\"moveend\", eventData));\n };\n Camera2.prototype.easeTo = function easeTo(options, eventData) {\n var this$1 = this;\n this._stop(false, options.easeId);\n options = performance2.extend({\n offset: [\n 0,\n 0\n ],\n duration: 500,\n easing: performance2.ease\n }, options);\n if (options.animate === false || !options.essential && performance2.browser.prefersReducedMotion) {\n options.duration = 0;\n }\n var tr = this.transform, startZoom = this.getZoom(), startBearing = this.getBearing(), startPitch = this.getPitch(), startPadding = this.getPadding(), zoom = \"zoom\" in options ? +options.zoom : startZoom, bearing = \"bearing\" in options ? this._normalizeBearing(options.bearing, startBearing) : startBearing, pitch = \"pitch\" in options ? +options.pitch : startPitch, padding2 = \"padding\" in options ? options.padding : tr.padding;\n var offsetAsPoint = performance2.Point.convert(options.offset);\n var pointAtOffset = tr.centerPoint.add(offsetAsPoint);\n var locationAtOffset = tr.pointLocation(pointAtOffset);\n var center = performance2.LngLat.convert(options.center || locationAtOffset);\n this._normalizeCenter(center);\n var from = tr.project(locationAtOffset);\n var delta = tr.project(center).sub(from);\n var finalScale = tr.zoomScale(zoom - startZoom);\n var around, aroundPoint;\n if (options.around) {\n around = performance2.LngLat.convert(options.around);\n aroundPoint = tr.locationPoint(around);\n }\n var currently = {\n moving: this._moving,\n zooming: this._zooming,\n rotating: this._rotating,\n pitching: this._pitching\n };\n this._zooming = this._zooming || zoom !== startZoom;\n this._rotating = this._rotating || startBearing !== bearing;\n this._pitching = this._pitching || pitch !== startPitch;\n this._padding = !tr.isPaddingEqual(padding2);\n this._easeId = options.easeId;\n this._prepareEase(eventData, options.noMoveStart, currently);\n this._ease(function(k) {\n if (this$1._zooming) {\n tr.zoom = performance2.number(startZoom, zoom, k);\n }\n if (this$1._rotating) {\n tr.bearing = performance2.number(startBearing, bearing, k);\n }\n if (this$1._pitching) {\n tr.pitch = performance2.number(startPitch, pitch, k);\n }\n if (this$1._padding) {\n tr.interpolatePadding(startPadding, padding2, k);\n pointAtOffset = tr.centerPoint.add(offsetAsPoint);\n }\n if (around) {\n tr.setLocationAtPoint(around, aroundPoint);\n } else {\n var scale = tr.zoomScale(tr.zoom - startZoom);\n var base = zoom > startZoom ? Math.min(2, finalScale) : Math.max(0.5, finalScale);\n var speedup = Math.pow(base, 1 - k);\n var newCenter = tr.unproject(from.add(delta.mult(k * speedup)).mult(scale));\n tr.setLocationAtPoint(tr.renderWorldCopies ? newCenter.wrap() : newCenter, pointAtOffset);\n }\n this$1._fireMoveEvents(eventData);\n }, function(interruptingEaseId) {\n this$1._afterEase(eventData, interruptingEaseId);\n }, options);\n return this;\n };\n Camera2.prototype._prepareEase = function _prepareEase(eventData, noMoveStart, currently) {\n if (currently === void 0)\n currently = {};\n this._moving = true;\n if (!noMoveStart && !currently.moving) {\n this.fire(new performance2.Event(\"movestart\", eventData));\n }\n if (this._zooming && !currently.zooming) {\n this.fire(new performance2.Event(\"zoomstart\", eventData));\n }\n if (this._rotating && !currently.rotating) {\n this.fire(new performance2.Event(\"rotatestart\", eventData));\n }\n if (this._pitching && !currently.pitching) {\n this.fire(new performance2.Event(\"pitchstart\", eventData));\n }\n };\n Camera2.prototype._fireMoveEvents = function _fireMoveEvents(eventData) {\n this.fire(new performance2.Event(\"move\", eventData));\n if (this._zooming) {\n this.fire(new performance2.Event(\"zoom\", eventData));\n }\n if (this._rotating) {\n this.fire(new performance2.Event(\"rotate\", eventData));\n }\n if (this._pitching) {\n this.fire(new performance2.Event(\"pitch\", eventData));\n }\n };\n Camera2.prototype._afterEase = function _afterEase(eventData, easeId) {\n if (this._easeId && easeId && this._easeId === easeId) {\n return;\n }\n delete this._easeId;\n var wasZooming = this._zooming;\n var wasRotating = this._rotating;\n var wasPitching = this._pitching;\n this._moving = false;\n this._zooming = false;\n this._rotating = false;\n this._pitching = false;\n this._padding = false;\n if (wasZooming) {\n this.fire(new performance2.Event(\"zoomend\", eventData));\n }\n if (wasRotating) {\n this.fire(new performance2.Event(\"rotateend\", eventData));\n }\n if (wasPitching) {\n this.fire(new performance2.Event(\"pitchend\", eventData));\n }\n this.fire(new performance2.Event(\"moveend\", eventData));\n };\n Camera2.prototype.flyTo = function flyTo(options, eventData) {\n var this$1 = this;\n if (!options.essential && performance2.browser.prefersReducedMotion) {\n var coercedOptions = performance2.pick(options, [\n \"center\",\n \"zoom\",\n \"bearing\",\n \"pitch\",\n \"around\"\n ]);\n return this.jumpTo(coercedOptions, eventData);\n }\n this.stop();\n options = performance2.extend({\n offset: [\n 0,\n 0\n ],\n speed: 1.2,\n curve: 1.42,\n easing: performance2.ease\n }, options);\n var tr = this.transform, startZoom = this.getZoom(), startBearing = this.getBearing(), startPitch = this.getPitch(), startPadding = this.getPadding();\n var zoom = \"zoom\" in options ? performance2.clamp(+options.zoom, tr.minZoom, tr.maxZoom) : startZoom;\n var bearing = \"bearing\" in options ? this._normalizeBearing(options.bearing, startBearing) : startBearing;\n var pitch = \"pitch\" in options ? +options.pitch : startPitch;\n var padding2 = \"padding\" in options ? options.padding : tr.padding;\n var scale = tr.zoomScale(zoom - startZoom);\n var offsetAsPoint = performance2.Point.convert(options.offset);\n var pointAtOffset = tr.centerPoint.add(offsetAsPoint);\n var locationAtOffset = tr.pointLocation(pointAtOffset);\n var center = performance2.LngLat.convert(options.center || locationAtOffset);\n this._normalizeCenter(center);\n var from = tr.project(locationAtOffset);\n var delta = tr.project(center).sub(from);\n var rho = options.curve;\n var w0 = Math.max(tr.width, tr.height), w1 = w0 / scale, u1 = delta.mag();\n if (\"minZoom\" in options) {\n var minZoom = performance2.clamp(Math.min(options.minZoom, startZoom, zoom), tr.minZoom, tr.maxZoom);\n var wMax = w0 / tr.zoomScale(minZoom - startZoom);\n rho = Math.sqrt(wMax / u1 * 2);\n }\n var rho2 = rho * rho;\n function r(i) {\n var b = (w1 * w1 - w0 * w0 + (i ? -1 : 1) * rho2 * rho2 * u1 * u1) / (2 * (i ? w1 : w0) * rho2 * u1);\n return Math.log(Math.sqrt(b * b + 1) - b);\n }\n function sinh2(n) {\n return (Math.exp(n) - Math.exp(-n)) / 2;\n }\n function cosh2(n) {\n return (Math.exp(n) + Math.exp(-n)) / 2;\n }\n function tanh2(n) {\n return sinh2(n) / cosh2(n);\n }\n var r0 = r(0);\n var w = function(s) {\n return cosh2(r0) / cosh2(r0 + rho * s);\n };\n var u = function(s) {\n return w0 * ((cosh2(r0) * tanh2(r0 + rho * s) - sinh2(r0)) / rho2) / u1;\n };\n var S = (r(1) - r0) / rho;\n if (Math.abs(u1) < 1e-6 || !isFinite(S)) {\n if (Math.abs(w0 - w1) < 1e-6) {\n return this.easeTo(options, eventData);\n }\n var k = w1 < w0 ? -1 : 1;\n S = Math.abs(Math.log(w1 / w0)) / rho;\n u = function() {\n return 0;\n };\n w = function(s) {\n return Math.exp(k * rho * s);\n };\n }\n if (\"duration\" in options) {\n options.duration = +options.duration;\n } else {\n var V = \"screenSpeed\" in options ? +options.screenSpeed / rho : +options.speed;\n options.duration = 1e3 * S / V;\n }\n if (options.maxDuration && options.duration > options.maxDuration) {\n options.duration = 0;\n }\n this._zooming = true;\n this._rotating = startBearing !== bearing;\n this._pitching = pitch !== startPitch;\n this._padding = !tr.isPaddingEqual(padding2);\n this._prepareEase(eventData, false);\n this._ease(function(k2) {\n var s = k2 * S;\n var scale2 = 1 / w(s);\n tr.zoom = k2 === 1 ? zoom : startZoom + tr.scaleZoom(scale2);\n if (this$1._rotating) {\n tr.bearing = performance2.number(startBearing, bearing, k2);\n }\n if (this$1._pitching) {\n tr.pitch = performance2.number(startPitch, pitch, k2);\n }\n if (this$1._padding) {\n tr.interpolatePadding(startPadding, padding2, k2);\n pointAtOffset = tr.centerPoint.add(offsetAsPoint);\n }\n var newCenter = k2 === 1 ? center : tr.unproject(from.add(delta.mult(u(s))).mult(scale2));\n tr.setLocationAtPoint(tr.renderWorldCopies ? newCenter.wrap() : newCenter, pointAtOffset);\n this$1._fireMoveEvents(eventData);\n }, function() {\n return this$1._afterEase(eventData);\n }, options);\n return this;\n };\n Camera2.prototype.isEasing = function isEasing() {\n return !!this._easeFrameId;\n };\n Camera2.prototype.stop = function stop() {\n return this._stop();\n };\n Camera2.prototype._stop = function _stop(allowGestures, easeId) {\n if (this._easeFrameId) {\n this._cancelRenderFrame(this._easeFrameId);\n delete this._easeFrameId;\n delete this._onEaseFrame;\n }\n if (this._onEaseEnd) {\n var onEaseEnd = this._onEaseEnd;\n delete this._onEaseEnd;\n onEaseEnd.call(this, easeId);\n }\n if (!allowGestures) {\n var handlers = this.handlers;\n if (handlers) {\n handlers.stop(false);\n }\n }\n return this;\n };\n Camera2.prototype._ease = function _ease(frame, finish, options) {\n if (options.animate === false || options.duration === 0) {\n frame(1);\n finish();\n } else {\n this._easeStart = performance2.browser.now();\n this._easeOptions = options;\n this._onEaseFrame = frame;\n this._onEaseEnd = finish;\n this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback);\n }\n };\n Camera2.prototype._renderFrameCallback = function _renderFrameCallback() {\n var t = Math.min((performance2.browser.now() - this._easeStart) / this._easeOptions.duration, 1);\n this._onEaseFrame(this._easeOptions.easing(t));\n if (t < 1) {\n this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback);\n } else {\n this.stop();\n }\n };\n Camera2.prototype._normalizeBearing = function _normalizeBearing(bearing, currentBearing) {\n bearing = performance2.wrap(bearing, -180, 180);\n var diff = Math.abs(bearing - currentBearing);\n if (Math.abs(bearing - 360 - currentBearing) < diff) {\n bearing -= 360;\n }\n if (Math.abs(bearing + 360 - currentBearing) < diff) {\n bearing += 360;\n }\n return bearing;\n };\n Camera2.prototype._normalizeCenter = function _normalizeCenter(center) {\n var tr = this.transform;\n if (!tr.renderWorldCopies || tr.lngRange) {\n return;\n }\n var delta = center.lng - tr.center.lng;\n center.lng += delta > 180 ? -360 : delta < -180 ? 360 : 0;\n };\n return Camera2;\n }(performance2.Evented);\n var AttributionControl = function AttributionControl2(options) {\n if (options === void 0)\n options = {};\n this.options = options;\n performance2.bindAll([\n \"_toggleAttribution\",\n \"_updateEditLink\",\n \"_updateData\",\n \"_updateCompact\"\n ], this);\n };\n AttributionControl.prototype.getDefaultPosition = function getDefaultPosition() {\n return \"bottom-right\";\n };\n AttributionControl.prototype.onAdd = function onAdd(map) {\n var compact = this.options && this.options.compact;\n this._map = map;\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-attrib\");\n this._compactButton = DOM.create(\"button\", \"mapboxgl-ctrl-attrib-button\", this._container);\n this._compactButton.addEventListener(\"click\", this._toggleAttribution);\n this._setElementTitle(this._compactButton, \"ToggleAttribution\");\n this._innerContainer = DOM.create(\"div\", \"mapboxgl-ctrl-attrib-inner\", this._container);\n this._innerContainer.setAttribute(\"role\", \"list\");\n if (compact) {\n this._container.classList.add(\"mapboxgl-compact\");\n }\n this._updateAttributions();\n this._updateEditLink();\n this._map.on(\"styledata\", this._updateData);\n this._map.on(\"sourcedata\", this._updateData);\n this._map.on(\"moveend\", this._updateEditLink);\n if (compact === void 0) {\n this._map.on(\"resize\", this._updateCompact);\n this._updateCompact();\n }\n return this._container;\n };\n AttributionControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._container);\n this._map.off(\"styledata\", this._updateData);\n this._map.off(\"sourcedata\", this._updateData);\n this._map.off(\"moveend\", this._updateEditLink);\n this._map.off(\"resize\", this._updateCompact);\n this._map = void 0;\n this._attribHTML = void 0;\n };\n AttributionControl.prototype._setElementTitle = function _setElementTitle(element, title) {\n var str = this._map._getUIString(\"AttributionControl.\" + title);\n element.title = str;\n element.setAttribute(\"aria-label\", str);\n };\n AttributionControl.prototype._toggleAttribution = function _toggleAttribution() {\n if (this._container.classList.contains(\"mapboxgl-compact-show\")) {\n this._container.classList.remove(\"mapboxgl-compact-show\");\n this._compactButton.setAttribute(\"aria-pressed\", \"false\");\n } else {\n this._container.classList.add(\"mapboxgl-compact-show\");\n this._compactButton.setAttribute(\"aria-pressed\", \"true\");\n }\n };\n AttributionControl.prototype._updateEditLink = function _updateEditLink() {\n var editLink = this._editLink;\n if (!editLink) {\n editLink = this._editLink = this._container.querySelector(\".mapbox-improve-map\");\n }\n var params = [\n {\n key: \"owner\",\n value: this.styleOwner\n },\n {\n key: \"id\",\n value: this.styleId\n },\n {\n key: \"access_token\",\n value: this._map._requestManager._customAccessToken || performance2.config.ACCESS_TOKEN\n }\n ];\n if (editLink) {\n var paramString = params.reduce(function(acc, next, i) {\n if (next.value) {\n acc += next.key + \"=\" + next.value + (i < params.length - 1 ? \"&\" : \"\");\n }\n return acc;\n }, \"?\");\n editLink.href = performance2.config.FEEDBACK_URL + \"/\" + paramString + (this._map._hash ? this._map._hash.getHashString(true) : \"\");\n editLink.rel = \"noopener nofollow\";\n this._setElementTitle(editLink, \"MapFeedback\");\n }\n };\n AttributionControl.prototype._updateData = function _updateData(e) {\n if (e && (e.sourceDataType === \"metadata\" || e.sourceDataType === \"visibility\" || e.dataType === \"style\")) {\n this._updateAttributions();\n this._updateEditLink();\n }\n };\n AttributionControl.prototype._updateAttributions = function _updateAttributions() {\n if (!this._map.style) {\n return;\n }\n var attributions = [];\n if (this.options.customAttribution) {\n if (Array.isArray(this.options.customAttribution)) {\n attributions = attributions.concat(this.options.customAttribution.map(function(attribution) {\n if (typeof attribution !== \"string\") {\n return \"\";\n }\n return attribution;\n }));\n } else if (typeof this.options.customAttribution === \"string\") {\n attributions.push(this.options.customAttribution);\n }\n }\n if (this._map.style.stylesheet) {\n var stylesheet = this._map.style.stylesheet;\n this.styleOwner = stylesheet.owner;\n this.styleId = stylesheet.id;\n }\n var sourceCaches = this._map.style.sourceCaches;\n for (var id in sourceCaches) {\n var sourceCache = sourceCaches[id];\n if (sourceCache.used) {\n var source = sourceCache.getSource();\n if (source.attribution && attributions.indexOf(source.attribution) < 0) {\n attributions.push(source.attribution);\n }\n }\n }\n attributions.sort(function(a, b) {\n return a.length - b.length;\n });\n attributions = attributions.filter(function(attrib, i) {\n for (var j = i + 1; j < attributions.length; j++) {\n if (attributions[j].indexOf(attrib) >= 0) {\n return false;\n }\n }\n return true;\n });\n var attribHTML = attributions.join(\" | \");\n if (attribHTML === this._attribHTML) {\n return;\n }\n this._attribHTML = attribHTML;\n if (attributions.length) {\n this._innerContainer.innerHTML = attribHTML;\n this._container.classList.remove(\"mapboxgl-attrib-empty\");\n } else {\n this._container.classList.add(\"mapboxgl-attrib-empty\");\n }\n this._editLink = null;\n };\n AttributionControl.prototype._updateCompact = function _updateCompact() {\n if (this._map.getCanvasContainer().offsetWidth <= 640) {\n this._container.classList.add(\"mapboxgl-compact\");\n } else {\n this._container.classList.remove(\"mapboxgl-compact\", \"mapboxgl-compact-show\");\n }\n };\n var LogoControl = function LogoControl2() {\n performance2.bindAll([\"_updateLogo\"], this);\n performance2.bindAll([\"_updateCompact\"], this);\n };\n LogoControl.prototype.onAdd = function onAdd(map) {\n this._map = map;\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl\");\n var anchor = DOM.create(\"a\", \"mapboxgl-ctrl-logo\");\n anchor.target = \"_blank\";\n anchor.rel = \"noopener nofollow\";\n anchor.href = \"https://www.mapbox.com/\";\n anchor.setAttribute(\"aria-label\", this._map._getUIString(\"LogoControl.Title\"));\n anchor.setAttribute(\"rel\", \"noopener nofollow\");\n this._container.appendChild(anchor);\n this._container.style.display = \"none\";\n this._map.on(\"sourcedata\", this._updateLogo);\n this._updateLogo();\n this._map.on(\"resize\", this._updateCompact);\n this._updateCompact();\n return this._container;\n };\n LogoControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._container);\n this._map.off(\"sourcedata\", this._updateLogo);\n this._map.off(\"resize\", this._updateCompact);\n };\n LogoControl.prototype.getDefaultPosition = function getDefaultPosition() {\n return \"bottom-left\";\n };\n LogoControl.prototype._updateLogo = function _updateLogo(e) {\n if (!e || e.sourceDataType === \"metadata\") {\n this._container.style.display = this._logoRequired() ? \"block\" : \"none\";\n }\n };\n LogoControl.prototype._logoRequired = function _logoRequired() {\n if (!this._map.style) {\n return;\n }\n var sourceCaches = this._map.style.sourceCaches;\n for (var id in sourceCaches) {\n var source = sourceCaches[id].getSource();\n if (source.mapbox_logo) {\n return true;\n }\n }\n return false;\n };\n LogoControl.prototype._updateCompact = function _updateCompact() {\n var containerChildren = this._container.children;\n if (containerChildren.length) {\n var anchor = containerChildren[0];\n if (this._map.getCanvasContainer().offsetWidth < 250) {\n anchor.classList.add(\"mapboxgl-compact\");\n } else {\n anchor.classList.remove(\"mapboxgl-compact\");\n }\n }\n };\n var TaskQueue = function TaskQueue2() {\n this._queue = [];\n this._id = 0;\n this._cleared = false;\n this._currentlyRunning = false;\n };\n TaskQueue.prototype.add = function add(callback) {\n var id = ++this._id;\n var queue = this._queue;\n queue.push({\n callback,\n id,\n cancelled: false\n });\n return id;\n };\n TaskQueue.prototype.remove = function remove(id) {\n var running = this._currentlyRunning;\n var queue = running ? this._queue.concat(running) : this._queue;\n for (var i = 0, list = queue; i < list.length; i += 1) {\n var task = list[i];\n if (task.id === id) {\n task.cancelled = true;\n return;\n }\n }\n };\n TaskQueue.prototype.run = function run(timeStamp) {\n if (timeStamp === void 0)\n timeStamp = 0;\n var queue = this._currentlyRunning = this._queue;\n this._queue = [];\n for (var i = 0, list = queue; i < list.length; i += 1) {\n var task = list[i];\n if (task.cancelled) {\n continue;\n }\n task.callback(timeStamp);\n if (this._cleared) {\n break;\n }\n }\n this._cleared = false;\n this._currentlyRunning = false;\n };\n TaskQueue.prototype.clear = function clear() {\n if (this._currentlyRunning) {\n this._cleared = true;\n }\n this._queue = [];\n };\n var defaultLocale = {\n \"AttributionControl.ToggleAttribution\": \"Toggle attribution\",\n \"AttributionControl.MapFeedback\": \"Map feedback\",\n \"FullscreenControl.Enter\": \"Enter fullscreen\",\n \"FullscreenControl.Exit\": \"Exit fullscreen\",\n \"GeolocateControl.FindMyLocation\": \"Find my location\",\n \"GeolocateControl.LocationNotAvailable\": \"Location not available\",\n \"LogoControl.Title\": \"Mapbox logo\",\n \"NavigationControl.ResetBearing\": \"Reset bearing to north\",\n \"NavigationControl.ZoomIn\": \"Zoom in\",\n \"NavigationControl.ZoomOut\": \"Zoom out\",\n \"ScaleControl.Feet\": \"ft\",\n \"ScaleControl.Meters\": \"m\",\n \"ScaleControl.Kilometers\": \"km\",\n \"ScaleControl.Miles\": \"mi\",\n \"ScaleControl.NauticalMiles\": \"nm\"\n };\n var HTMLImageElement2 = performance2.window.HTMLImageElement;\n var HTMLElement2 = performance2.window.HTMLElement;\n var ImageBitmap2 = performance2.window.ImageBitmap;\n var defaultMinZoom = -2;\n var defaultMaxZoom = 22;\n var defaultMinPitch = 0;\n var defaultMaxPitch = 60;\n var defaultOptions$1 = {\n center: [\n 0,\n 0\n ],\n zoom: 0,\n bearing: 0,\n pitch: 0,\n minZoom: defaultMinZoom,\n maxZoom: defaultMaxZoom,\n minPitch: defaultMinPitch,\n maxPitch: defaultMaxPitch,\n interactive: true,\n scrollZoom: true,\n boxZoom: true,\n dragRotate: true,\n dragPan: true,\n keyboard: true,\n doubleClickZoom: true,\n touchZoomRotate: true,\n touchPitch: true,\n bearingSnap: 7,\n clickTolerance: 3,\n pitchWithRotate: true,\n hash: false,\n attributionControl: true,\n failIfMajorPerformanceCaveat: false,\n preserveDrawingBuffer: false,\n trackResize: true,\n renderWorldCopies: true,\n refreshExpiredTiles: true,\n maxTileCacheSize: null,\n localIdeographFontFamily: \"sans-serif\",\n transformRequest: null,\n accessToken: null,\n fadeDuration: 300,\n crossSourceCollisions: true\n };\n var Map2 = function(Camera2) {\n function Map3(options) {\n var this$1 = this;\n options = performance2.extend({}, defaultOptions$1, options);\n if (options.minZoom != null && options.maxZoom != null && options.minZoom > options.maxZoom) {\n throw new Error(\"maxZoom must be greater than or equal to minZoom\");\n }\n if (options.minPitch != null && options.maxPitch != null && options.minPitch > options.maxPitch) {\n throw new Error(\"maxPitch must be greater than or equal to minPitch\");\n }\n if (options.minPitch != null && options.minPitch < defaultMinPitch) {\n throw new Error(\"minPitch must be greater than or equal to \" + defaultMinPitch);\n }\n if (options.maxPitch != null && options.maxPitch > defaultMaxPitch) {\n throw new Error(\"maxPitch must be less than or equal to \" + defaultMaxPitch);\n }\n var transform = new Transform(options.minZoom, options.maxZoom, options.minPitch, options.maxPitch, options.renderWorldCopies);\n Camera2.call(this, transform, options);\n this._interactive = options.interactive;\n this._maxTileCacheSize = options.maxTileCacheSize;\n this._failIfMajorPerformanceCaveat = options.failIfMajorPerformanceCaveat;\n this._preserveDrawingBuffer = options.preserveDrawingBuffer;\n this._antialias = options.antialias;\n this._trackResize = options.trackResize;\n this._bearingSnap = options.bearingSnap;\n this._refreshExpiredTiles = options.refreshExpiredTiles;\n this._fadeDuration = options.fadeDuration;\n this._crossSourceCollisions = options.crossSourceCollisions;\n this._crossFadingFactor = 1;\n this._collectResourceTiming = options.collectResourceTiming;\n this._renderTaskQueue = new TaskQueue();\n this._controls = [];\n this._mapId = performance2.uniqueId();\n this._locale = performance2.extend({}, defaultLocale, options.locale);\n this._clickTolerance = options.clickTolerance;\n this._requestManager = new performance2.RequestManager(options.transformRequest, options.accessToken);\n if (typeof options.container === \"string\") {\n this._container = performance2.window.document.getElementById(options.container);\n if (!this._container) {\n throw new Error(\"Container '\" + options.container + \"' not found.\");\n }\n } else if (options.container instanceof HTMLElement2) {\n this._container = options.container;\n } else {\n throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");\n }\n if (options.maxBounds) {\n this.setMaxBounds(options.maxBounds);\n }\n performance2.bindAll([\n \"_onWindowOnline\",\n \"_onWindowResize\",\n \"_onMapScroll\",\n \"_contextLost\",\n \"_contextRestored\"\n ], this);\n this._setupContainer();\n this._setupPainter();\n if (this.painter === void 0) {\n throw new Error(\"Failed to initialize WebGL.\");\n }\n this.on(\"move\", function() {\n return this$1._update(false);\n });\n this.on(\"moveend\", function() {\n return this$1._update(false);\n });\n this.on(\"zoom\", function() {\n return this$1._update(true);\n });\n if (typeof performance2.window !== \"undefined\") {\n performance2.window.addEventListener(\"online\", this._onWindowOnline, false);\n performance2.window.addEventListener(\"resize\", this._onWindowResize, false);\n performance2.window.addEventListener(\"orientationchange\", this._onWindowResize, false);\n }\n this.handlers = new HandlerManager(this, options);\n var hashName = typeof options.hash === \"string\" && options.hash || void 0;\n this._hash = options.hash && new Hash(hashName).addTo(this);\n if (!this._hash || !this._hash._onHashChange()) {\n this.jumpTo({\n center: options.center,\n zoom: options.zoom,\n bearing: options.bearing,\n pitch: options.pitch\n });\n if (options.bounds) {\n this.resize();\n this.fitBounds(options.bounds, performance2.extend({}, options.fitBoundsOptions, { duration: 0 }));\n }\n }\n this.resize();\n this._localIdeographFontFamily = options.localIdeographFontFamily;\n if (options.style) {\n this.setStyle(options.style, { localIdeographFontFamily: options.localIdeographFontFamily });\n }\n if (options.attributionControl) {\n this.addControl(new AttributionControl({ customAttribution: options.customAttribution }));\n }\n this.addControl(new LogoControl(), options.logoPosition);\n this.on(\"style.load\", function() {\n if (this$1.transform.unmodified) {\n this$1.jumpTo(this$1.style.stylesheet);\n }\n });\n this.on(\"data\", function(event) {\n this$1._update(event.dataType === \"style\");\n this$1.fire(new performance2.Event(event.dataType + \"data\", event));\n });\n this.on(\"dataloading\", function(event) {\n this$1.fire(new performance2.Event(event.dataType + \"dataloading\", event));\n });\n }\n if (Camera2)\n Map3.__proto__ = Camera2;\n Map3.prototype = Object.create(Camera2 && Camera2.prototype);\n Map3.prototype.constructor = Map3;\n var prototypeAccessors2 = {\n showTileBoundaries: { configurable: true },\n showPadding: { configurable: true },\n showCollisionBoxes: { configurable: true },\n showOverdrawInspector: { configurable: true },\n repaint: { configurable: true },\n vertices: { configurable: true },\n version: { configurable: true }\n };\n Map3.prototype._getMapId = function _getMapId() {\n return this._mapId;\n };\n Map3.prototype.addControl = function addControl(control, position) {\n if (position === void 0) {\n if (control.getDefaultPosition) {\n position = control.getDefaultPosition();\n } else {\n position = \"top-right\";\n }\n }\n if (!control || !control.onAdd) {\n return this.fire(new performance2.ErrorEvent(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));\n }\n var controlElement = control.onAdd(this);\n this._controls.push(control);\n var positionContainer = this._controlPositions[position];\n if (position.indexOf(\"bottom\") !== -1) {\n positionContainer.insertBefore(controlElement, positionContainer.firstChild);\n } else {\n positionContainer.appendChild(controlElement);\n }\n return this;\n };\n Map3.prototype.removeControl = function removeControl(control) {\n if (!control || !control.onRemove) {\n return this.fire(new performance2.ErrorEvent(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));\n }\n var ci = this._controls.indexOf(control);\n if (ci > -1) {\n this._controls.splice(ci, 1);\n }\n control.onRemove(this);\n return this;\n };\n Map3.prototype.hasControl = function hasControl(control) {\n return this._controls.indexOf(control) > -1;\n };\n Map3.prototype.resize = function resize(eventData) {\n var dimensions = this._containerDimensions();\n var width = dimensions[0];\n var height = dimensions[1];\n this._resizeCanvas(width, height);\n this.transform.resize(width, height);\n this.painter.resize(width, height);\n var fireMoving = !this._moving;\n if (fireMoving) {\n this.stop();\n this.fire(new performance2.Event(\"movestart\", eventData)).fire(new performance2.Event(\"move\", eventData));\n }\n this.fire(new performance2.Event(\"resize\", eventData));\n if (fireMoving) {\n this.fire(new performance2.Event(\"moveend\", eventData));\n }\n return this;\n };\n Map3.prototype.getBounds = function getBounds() {\n return this.transform.getBounds();\n };\n Map3.prototype.getMaxBounds = function getMaxBounds() {\n return this.transform.getMaxBounds();\n };\n Map3.prototype.setMaxBounds = function setMaxBounds(bounds) {\n this.transform.setMaxBounds(performance2.LngLatBounds.convert(bounds));\n return this._update();\n };\n Map3.prototype.setMinZoom = function setMinZoom(minZoom) {\n minZoom = minZoom === null || minZoom === void 0 ? defaultMinZoom : minZoom;\n if (minZoom >= defaultMinZoom && minZoom <= this.transform.maxZoom) {\n this.transform.minZoom = minZoom;\n this._update();\n if (this.getZoom() < minZoom) {\n this.setZoom(minZoom);\n }\n return this;\n } else {\n throw new Error(\"minZoom must be between \" + defaultMinZoom + \" and the current maxZoom, inclusive\");\n }\n };\n Map3.prototype.getMinZoom = function getMinZoom() {\n return this.transform.minZoom;\n };\n Map3.prototype.setMaxZoom = function setMaxZoom(maxZoom) {\n maxZoom = maxZoom === null || maxZoom === void 0 ? defaultMaxZoom : maxZoom;\n if (maxZoom >= this.transform.minZoom) {\n this.transform.maxZoom = maxZoom;\n this._update();\n if (this.getZoom() > maxZoom) {\n this.setZoom(maxZoom);\n }\n return this;\n } else {\n throw new Error(\"maxZoom must be greater than the current minZoom\");\n }\n };\n Map3.prototype.getMaxZoom = function getMaxZoom() {\n return this.transform.maxZoom;\n };\n Map3.prototype.setMinPitch = function setMinPitch(minPitch) {\n minPitch = minPitch === null || minPitch === void 0 ? defaultMinPitch : minPitch;\n if (minPitch < defaultMinPitch) {\n throw new Error(\"minPitch must be greater than or equal to \" + defaultMinPitch);\n }\n if (minPitch >= defaultMinPitch && minPitch <= this.transform.maxPitch) {\n this.transform.minPitch = minPitch;\n this._update();\n if (this.getPitch() < minPitch) {\n this.setPitch(minPitch);\n }\n return this;\n } else {\n throw new Error(\"minPitch must be between \" + defaultMinPitch + \" and the current maxPitch, inclusive\");\n }\n };\n Map3.prototype.getMinPitch = function getMinPitch() {\n return this.transform.minPitch;\n };\n Map3.prototype.setMaxPitch = function setMaxPitch(maxPitch) {\n maxPitch = maxPitch === null || maxPitch === void 0 ? defaultMaxPitch : maxPitch;\n if (maxPitch > defaultMaxPitch) {\n throw new Error(\"maxPitch must be less than or equal to \" + defaultMaxPitch);\n }\n if (maxPitch >= this.transform.minPitch) {\n this.transform.maxPitch = maxPitch;\n this._update();\n if (this.getPitch() > maxPitch) {\n this.setPitch(maxPitch);\n }\n return this;\n } else {\n throw new Error(\"maxPitch must be greater than the current minPitch\");\n }\n };\n Map3.prototype.getMaxPitch = function getMaxPitch() {\n return this.transform.maxPitch;\n };\n Map3.prototype.getRenderWorldCopies = function getRenderWorldCopies() {\n return this.transform.renderWorldCopies;\n };\n Map3.prototype.setRenderWorldCopies = function setRenderWorldCopies(renderWorldCopies) {\n this.transform.renderWorldCopies = renderWorldCopies;\n return this._update();\n };\n Map3.prototype.project = function project2(lnglat) {\n return this.transform.locationPoint(performance2.LngLat.convert(lnglat));\n };\n Map3.prototype.unproject = function unproject(point) {\n return this.transform.pointLocation(performance2.Point.convert(point));\n };\n Map3.prototype.isMoving = function isMoving2() {\n return this._moving || this.handlers.isMoving();\n };\n Map3.prototype.isZooming = function isZooming() {\n return this._zooming || this.handlers.isZooming();\n };\n Map3.prototype.isRotating = function isRotating() {\n return this._rotating || this.handlers.isRotating();\n };\n Map3.prototype._createDelegatedListener = function _createDelegatedListener(type, layerId, listener) {\n var this$1 = this;\n var obj;\n if (type === \"mouseenter\" || type === \"mouseover\") {\n var mousein = false;\n var mousemove = function(e) {\n var features = this$1.getLayer(layerId) ? this$1.queryRenderedFeatures(e.point, { layers: [layerId] }) : [];\n if (!features.length) {\n mousein = false;\n } else if (!mousein) {\n mousein = true;\n listener.call(this$1, new MapMouseEvent(type, this$1, e.originalEvent, { features }));\n }\n };\n var mouseout = function() {\n mousein = false;\n };\n return {\n layer: layerId,\n listener,\n delegates: {\n mousemove,\n mouseout\n }\n };\n } else if (type === \"mouseleave\" || type === \"mouseout\") {\n var mousein$1 = false;\n var mousemove$1 = function(e) {\n var features = this$1.getLayer(layerId) ? this$1.queryRenderedFeatures(e.point, { layers: [layerId] }) : [];\n if (features.length) {\n mousein$1 = true;\n } else if (mousein$1) {\n mousein$1 = false;\n listener.call(this$1, new MapMouseEvent(type, this$1, e.originalEvent));\n }\n };\n var mouseout$1 = function(e) {\n if (mousein$1) {\n mousein$1 = false;\n listener.call(this$1, new MapMouseEvent(type, this$1, e.originalEvent));\n }\n };\n return {\n layer: layerId,\n listener,\n delegates: {\n mousemove: mousemove$1,\n mouseout: mouseout$1\n }\n };\n } else {\n var delegate = function(e) {\n var features = this$1.getLayer(layerId) ? this$1.queryRenderedFeatures(e.point, { layers: [layerId] }) : [];\n if (features.length) {\n e.features = features;\n listener.call(this$1, e);\n delete e.features;\n }\n };\n return {\n layer: layerId,\n listener,\n delegates: (obj = {}, obj[type] = delegate, obj)\n };\n }\n };\n Map3.prototype.on = function on(type, layerId, listener) {\n if (listener === void 0) {\n return Camera2.prototype.on.call(this, type, layerId);\n }\n var delegatedListener = this._createDelegatedListener(type, layerId, listener);\n this._delegatedListeners = this._delegatedListeners || {};\n this._delegatedListeners[type] = this._delegatedListeners[type] || [];\n this._delegatedListeners[type].push(delegatedListener);\n for (var event in delegatedListener.delegates) {\n this.on(event, delegatedListener.delegates[event]);\n }\n return this;\n };\n Map3.prototype.once = function once(type, layerId, listener) {\n if (listener === void 0) {\n return Camera2.prototype.once.call(this, type, layerId);\n }\n var delegatedListener = this._createDelegatedListener(type, layerId, listener);\n for (var event in delegatedListener.delegates) {\n this.once(event, delegatedListener.delegates[event]);\n }\n return this;\n };\n Map3.prototype.off = function off(type, layerId, listener) {\n var this$1 = this;\n if (listener === void 0) {\n return Camera2.prototype.off.call(this, type, layerId);\n }\n var removeDelegatedListener = function(delegatedListeners) {\n var listeners = delegatedListeners[type];\n for (var i = 0; i < listeners.length; i++) {\n var delegatedListener = listeners[i];\n if (delegatedListener.layer === layerId && delegatedListener.listener === listener) {\n for (var event in delegatedListener.delegates) {\n this$1.off(event, delegatedListener.delegates[event]);\n }\n listeners.splice(i, 1);\n return this$1;\n }\n }\n };\n if (this._delegatedListeners && this._delegatedListeners[type]) {\n removeDelegatedListener(this._delegatedListeners);\n }\n return this;\n };\n Map3.prototype.queryRenderedFeatures = function queryRenderedFeatures2(geometry, options) {\n if (!this.style) {\n return [];\n }\n if (options === void 0 && geometry !== void 0 && !(geometry instanceof performance2.Point) && !Array.isArray(geometry)) {\n options = geometry;\n geometry = void 0;\n }\n options = options || {};\n geometry = geometry || [\n [\n 0,\n 0\n ],\n [\n this.transform.width,\n this.transform.height\n ]\n ];\n var queryGeometry;\n if (geometry instanceof performance2.Point || typeof geometry[0] === \"number\") {\n queryGeometry = [performance2.Point.convert(geometry)];\n } else {\n var tl = performance2.Point.convert(geometry[0]);\n var br = performance2.Point.convert(geometry[1]);\n queryGeometry = [\n tl,\n new performance2.Point(br.x, tl.y),\n br,\n new performance2.Point(tl.x, br.y),\n tl\n ];\n }\n return this.style.queryRenderedFeatures(queryGeometry, options, this.transform);\n };\n Map3.prototype.querySourceFeatures = function querySourceFeatures2(sourceId, parameters) {\n return this.style.querySourceFeatures(sourceId, parameters);\n };\n Map3.prototype.setStyle = function setStyle(style, options) {\n options = performance2.extend({}, { localIdeographFontFamily: this._localIdeographFontFamily }, options);\n if (options.diff !== false && options.localIdeographFontFamily === this._localIdeographFontFamily && this.style && style) {\n this._diffStyle(style, options);\n return this;\n } else {\n this._localIdeographFontFamily = options.localIdeographFontFamily;\n return this._updateStyle(style, options);\n }\n };\n Map3.prototype._getUIString = function _getUIString(key) {\n var str = this._locale[key];\n if (str == null) {\n throw new Error(\"Missing UI string '\" + key + \"'\");\n }\n return str;\n };\n Map3.prototype._updateStyle = function _updateStyle(style, options) {\n if (this.style) {\n this.style.setEventedParent(null);\n this.style._remove();\n }\n if (!style) {\n delete this.style;\n return this;\n } else {\n this.style = new Style(this, options || {});\n }\n this.style.setEventedParent(this, { style: this.style });\n if (typeof style === \"string\") {\n this.style.loadURL(style);\n } else {\n this.style.loadJSON(style);\n }\n return this;\n };\n Map3.prototype._lazyInitEmptyStyle = function _lazyInitEmptyStyle() {\n if (!this.style) {\n this.style = new Style(this, {});\n this.style.setEventedParent(this, { style: this.style });\n this.style.loadEmpty();\n }\n };\n Map3.prototype._diffStyle = function _diffStyle(style, options) {\n var this$1 = this;\n if (typeof style === \"string\") {\n var url = this._requestManager.normalizeStyleURL(style);\n var request = this._requestManager.transformRequest(url, performance2.ResourceType.Style);\n performance2.getJSON(request, function(error, json) {\n if (error) {\n this$1.fire(new performance2.ErrorEvent(error));\n } else if (json) {\n this$1._updateDiff(json, options);\n }\n });\n } else if (typeof style === \"object\") {\n this._updateDiff(style, options);\n }\n };\n Map3.prototype._updateDiff = function _updateDiff(style, options) {\n try {\n if (this.style.setState(style)) {\n this._update(true);\n }\n } catch (e) {\n performance2.warnOnce(\"Unable to perform style diff: \" + (e.message || e.error || e) + \". Rebuilding the style from scratch.\");\n this._updateStyle(style, options);\n }\n };\n Map3.prototype.getStyle = function getStyle() {\n if (this.style) {\n return this.style.serialize();\n }\n };\n Map3.prototype.isStyleLoaded = function isStyleLoaded() {\n if (!this.style) {\n return performance2.warnOnce(\"There is no style added to the map.\");\n }\n return this.style.loaded();\n };\n Map3.prototype.addSource = function addSource2(id, source) {\n this._lazyInitEmptyStyle();\n this.style.addSource(id, source);\n return this._update(true);\n };\n Map3.prototype.isSourceLoaded = function isSourceLoaded(id) {\n var source = this.style && this.style.sourceCaches[id];\n if (source === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"There is no source with ID '\" + id + \"'\")));\n return;\n }\n return source.loaded();\n };\n Map3.prototype.areTilesLoaded = function areTilesLoaded() {\n var sources = this.style && this.style.sourceCaches;\n for (var id in sources) {\n var source = sources[id];\n var tiles = source._tiles;\n for (var t in tiles) {\n var tile = tiles[t];\n if (!(tile.state === \"loaded\" || tile.state === \"errored\")) {\n return false;\n }\n }\n }\n return true;\n };\n Map3.prototype.addSourceType = function addSourceType(name2, SourceType, callback) {\n this._lazyInitEmptyStyle();\n return this.style.addSourceType(name2, SourceType, callback);\n };\n Map3.prototype.removeSource = function removeSource2(id) {\n this.style.removeSource(id);\n return this._update(true);\n };\n Map3.prototype.getSource = function getSource(id) {\n return this.style.getSource(id);\n };\n Map3.prototype.addImage = function addImage(id, image, ref) {\n if (ref === void 0)\n ref = {};\n var pixelRatio = ref.pixelRatio;\n if (pixelRatio === void 0)\n pixelRatio = 1;\n var sdf = ref.sdf;\n if (sdf === void 0)\n sdf = false;\n var stretchX = ref.stretchX;\n var stretchY = ref.stretchY;\n var content = ref.content;\n this._lazyInitEmptyStyle();\n var version = 0;\n if (image instanceof HTMLImageElement2 || ImageBitmap2 && image instanceof ImageBitmap2) {\n var ref$1 = performance2.browser.getImageData(image);\n var width = ref$1.width;\n var height = ref$1.height;\n var data = ref$1.data;\n this.style.addImage(id, {\n data: new performance2.RGBAImage({\n width,\n height\n }, data),\n pixelRatio,\n stretchX,\n stretchY,\n content,\n sdf,\n version\n });\n } else if (image.width === void 0 || image.height === void 0) {\n return this.fire(new performance2.ErrorEvent(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));\n } else {\n var width$1 = image.width;\n var height$1 = image.height;\n var data$1 = image.data;\n var userImage = image;\n this.style.addImage(id, {\n data: new performance2.RGBAImage({\n width: width$1,\n height: height$1\n }, new Uint8Array(data$1)),\n pixelRatio,\n stretchX,\n stretchY,\n content,\n sdf,\n version,\n userImage\n });\n if (userImage.onAdd) {\n userImage.onAdd(this, id);\n }\n }\n };\n Map3.prototype.updateImage = function updateImage(id, image) {\n var existingImage = this.style.getImage(id);\n if (!existingImage) {\n return this.fire(new performance2.ErrorEvent(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));\n }\n var imageData = image instanceof HTMLImageElement2 || ImageBitmap2 && image instanceof ImageBitmap2 ? performance2.browser.getImageData(image) : image;\n var width = imageData.width;\n var height = imageData.height;\n var data = imageData.data;\n if (width === void 0 || height === void 0) {\n return this.fire(new performance2.ErrorEvent(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));\n }\n if (width !== existingImage.data.width || height !== existingImage.data.height) {\n return this.fire(new performance2.ErrorEvent(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));\n }\n var copy = !(image instanceof HTMLImageElement2 || ImageBitmap2 && image instanceof ImageBitmap2);\n existingImage.data.replace(data, copy);\n this.style.updateImage(id, existingImage);\n };\n Map3.prototype.hasImage = function hasImage(id) {\n if (!id) {\n this.fire(new performance2.ErrorEvent(new Error(\"Missing required image id\")));\n return false;\n }\n return !!this.style.getImage(id);\n };\n Map3.prototype.removeImage = function removeImage(id) {\n this.style.removeImage(id);\n };\n Map3.prototype.loadImage = function loadImage(url, callback) {\n performance2.getImage(this._requestManager.transformRequest(url, performance2.ResourceType.Image), callback);\n };\n Map3.prototype.listImages = function listImages() {\n return this.style.listImages();\n };\n Map3.prototype.addLayer = function addLayer(layer, beforeId) {\n this._lazyInitEmptyStyle();\n this.style.addLayer(layer, beforeId);\n return this._update(true);\n };\n Map3.prototype.moveLayer = function moveLayer(id, beforeId) {\n this.style.moveLayer(id, beforeId);\n return this._update(true);\n };\n Map3.prototype.removeLayer = function removeLayer(id) {\n this.style.removeLayer(id);\n return this._update(true);\n };\n Map3.prototype.getLayer = function getLayer(id) {\n return this.style.getLayer(id);\n };\n Map3.prototype.setLayerZoomRange = function setLayerZoomRange(layerId, minzoom, maxzoom) {\n this.style.setLayerZoomRange(layerId, minzoom, maxzoom);\n return this._update(true);\n };\n Map3.prototype.setFilter = function setFilter(layerId, filter, options) {\n if (options === void 0)\n options = {};\n this.style.setFilter(layerId, filter, options);\n return this._update(true);\n };\n Map3.prototype.getFilter = function getFilter(layerId) {\n return this.style.getFilter(layerId);\n };\n Map3.prototype.setPaintProperty = function setPaintProperty(layerId, name2, value, options) {\n if (options === void 0)\n options = {};\n this.style.setPaintProperty(layerId, name2, value, options);\n return this._update(true);\n };\n Map3.prototype.getPaintProperty = function getPaintProperty(layerId, name2) {\n return this.style.getPaintProperty(layerId, name2);\n };\n Map3.prototype.setLayoutProperty = function setLayoutProperty(layerId, name2, value, options) {\n if (options === void 0)\n options = {};\n this.style.setLayoutProperty(layerId, name2, value, options);\n return this._update(true);\n };\n Map3.prototype.getLayoutProperty = function getLayoutProperty(layerId, name2) {\n return this.style.getLayoutProperty(layerId, name2);\n };\n Map3.prototype.setLight = function setLight(light, options) {\n if (options === void 0)\n options = {};\n this._lazyInitEmptyStyle();\n this.style.setLight(light, options);\n return this._update(true);\n };\n Map3.prototype.getLight = function getLight() {\n return this.style.getLight();\n };\n Map3.prototype.setFeatureState = function setFeatureState(feature, state) {\n this.style.setFeatureState(feature, state);\n return this._update();\n };\n Map3.prototype.removeFeatureState = function removeFeatureState(target, key) {\n this.style.removeFeatureState(target, key);\n return this._update();\n };\n Map3.prototype.getFeatureState = function getFeatureState(feature) {\n return this.style.getFeatureState(feature);\n };\n Map3.prototype.getContainer = function getContainer() {\n return this._container;\n };\n Map3.prototype.getCanvasContainer = function getCanvasContainer() {\n return this._canvasContainer;\n };\n Map3.prototype.getCanvas = function getCanvas() {\n return this._canvas;\n };\n Map3.prototype._containerDimensions = function _containerDimensions() {\n var width = 0;\n var height = 0;\n if (this._container) {\n width = this._container.clientWidth || 400;\n height = this._container.clientHeight || 300;\n }\n return [\n width,\n height\n ];\n };\n Map3.prototype._detectMissingCSS = function _detectMissingCSS() {\n var computedColor = performance2.window.getComputedStyle(this._missingCSSCanary).getPropertyValue(\"background-color\");\n if (computedColor !== \"rgb(250, 128, 114)\") {\n performance2.warnOnce(\"This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.\");\n }\n };\n Map3.prototype._setupContainer = function _setupContainer() {\n var container = this._container;\n container.classList.add(\"mapboxgl-map\");\n var missingCSSCanary = this._missingCSSCanary = DOM.create(\"div\", \"mapboxgl-canary\", container);\n missingCSSCanary.style.visibility = \"hidden\";\n this._detectMissingCSS();\n var canvasContainer = this._canvasContainer = DOM.create(\"div\", \"mapboxgl-canvas-container\", container);\n if (this._interactive) {\n canvasContainer.classList.add(\"mapboxgl-interactive\");\n }\n this._canvas = DOM.create(\"canvas\", \"mapboxgl-canvas\", canvasContainer);\n this._canvas.addEventListener(\"webglcontextlost\", this._contextLost, false);\n this._canvas.addEventListener(\"webglcontextrestored\", this._contextRestored, false);\n this._canvas.setAttribute(\"tabindex\", \"0\");\n this._canvas.setAttribute(\"aria-label\", \"Map\");\n this._canvas.setAttribute(\"role\", \"region\");\n var dimensions = this._containerDimensions();\n this._resizeCanvas(dimensions[0], dimensions[1]);\n var controlContainer = this._controlContainer = DOM.create(\"div\", \"mapboxgl-control-container\", container);\n var positions = this._controlPositions = {};\n [\n \"top-left\",\n \"top-right\",\n \"bottom-left\",\n \"bottom-right\"\n ].forEach(function(positionName) {\n positions[positionName] = DOM.create(\"div\", \"mapboxgl-ctrl-\" + positionName, controlContainer);\n });\n this._container.addEventListener(\"scroll\", this._onMapScroll, false);\n };\n Map3.prototype._resizeCanvas = function _resizeCanvas(width, height) {\n var pixelRatio = performance2.browser.devicePixelRatio || 1;\n this._canvas.width = pixelRatio * width;\n this._canvas.height = pixelRatio * height;\n this._canvas.style.width = width + \"px\";\n this._canvas.style.height = height + \"px\";\n };\n Map3.prototype._setupPainter = function _setupPainter() {\n var attributes = performance2.extend({}, mapboxGlSupported.webGLContextAttributes, {\n failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat,\n preserveDrawingBuffer: this._preserveDrawingBuffer,\n antialias: this._antialias || false\n });\n var gl2 = this._canvas.getContext(\"webgl\", attributes) || this._canvas.getContext(\"experimental-webgl\", attributes);\n if (!gl2) {\n this.fire(new performance2.ErrorEvent(new Error(\"Failed to initialize WebGL\")));\n return;\n }\n this.painter = new Painter(gl2, this.transform);\n performance2.webpSupported.testSupport(gl2);\n };\n Map3.prototype._contextLost = function _contextLost(event) {\n event.preventDefault();\n if (this._frame) {\n this._frame.cancel();\n this._frame = null;\n }\n this.fire(new performance2.Event(\"webglcontextlost\", { originalEvent: event }));\n };\n Map3.prototype._contextRestored = function _contextRestored(event) {\n this._setupPainter();\n this.resize();\n this._update();\n this.fire(new performance2.Event(\"webglcontextrestored\", { originalEvent: event }));\n };\n Map3.prototype._onMapScroll = function _onMapScroll(event) {\n if (event.target !== this._container) {\n return;\n }\n this._container.scrollTop = 0;\n this._container.scrollLeft = 0;\n return false;\n };\n Map3.prototype.loaded = function loaded() {\n return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded();\n };\n Map3.prototype._update = function _update(updateStyle) {\n if (!this.style) {\n return this;\n }\n this._styleDirty = this._styleDirty || updateStyle;\n this._sourcesDirty = true;\n this.triggerRepaint();\n return this;\n };\n Map3.prototype._requestRenderFrame = function _requestRenderFrame(callback) {\n this._update();\n return this._renderTaskQueue.add(callback);\n };\n Map3.prototype._cancelRenderFrame = function _cancelRenderFrame(id) {\n this._renderTaskQueue.remove(id);\n };\n Map3.prototype._render = function _render(paintStartTimeStamp) {\n var this$1 = this;\n var gpuTimer, frameStartTime = 0;\n var extTimerQuery = this.painter.context.extTimerQuery;\n if (this.listens(\"gpu-timing-frame\")) {\n gpuTimer = extTimerQuery.createQueryEXT();\n extTimerQuery.beginQueryEXT(extTimerQuery.TIME_ELAPSED_EXT, gpuTimer);\n frameStartTime = performance2.browser.now();\n }\n this.painter.context.setDirty();\n this.painter.setBaseState();\n this._renderTaskQueue.run(paintStartTimeStamp);\n if (this._removed) {\n return;\n }\n var crossFading = false;\n if (this.style && this._styleDirty) {\n this._styleDirty = false;\n var zoom = this.transform.zoom;\n var now = performance2.browser.now();\n this.style.zoomHistory.update(zoom, now);\n var parameters = new performance2.EvaluationParameters(zoom, {\n now,\n fadeDuration: this._fadeDuration,\n zoomHistory: this.style.zoomHistory,\n transition: this.style.getTransition()\n });\n var factor = parameters.crossFadingFactor();\n if (factor !== 1 || factor !== this._crossFadingFactor) {\n crossFading = true;\n this._crossFadingFactor = factor;\n }\n this.style.update(parameters);\n }\n if (this.style && this._sourcesDirty) {\n this._sourcesDirty = false;\n this.style._updateSources(this.transform);\n }\n this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, this._fadeDuration, this._crossSourceCollisions);\n this.painter.render(this.style, {\n showTileBoundaries: this.showTileBoundaries,\n showOverdrawInspector: this._showOverdrawInspector,\n rotating: this.isRotating(),\n zooming: this.isZooming(),\n moving: this.isMoving(),\n fadeDuration: this._fadeDuration,\n showPadding: this.showPadding,\n gpuTiming: !!this.listens(\"gpu-timing-layer\")\n });\n this.fire(new performance2.Event(\"render\"));\n if (this.loaded() && !this._loaded) {\n this._loaded = true;\n this.fire(new performance2.Event(\"load\"));\n }\n if (this.style && (this.style.hasTransitions() || crossFading)) {\n this._styleDirty = true;\n }\n if (this.style && !this._placementDirty) {\n this.style._releaseSymbolFadeTiles();\n }\n if (this.listens(\"gpu-timing-frame\")) {\n var renderCPUTime = performance2.browser.now() - frameStartTime;\n extTimerQuery.endQueryEXT(extTimerQuery.TIME_ELAPSED_EXT, gpuTimer);\n setTimeout(function() {\n var renderGPUTime = extTimerQuery.getQueryObjectEXT(gpuTimer, extTimerQuery.QUERY_RESULT_EXT) / (1e3 * 1e3);\n extTimerQuery.deleteQueryEXT(gpuTimer);\n this$1.fire(new performance2.Event(\"gpu-timing-frame\", {\n cpuTime: renderCPUTime,\n gpuTime: renderGPUTime\n }));\n }, 50);\n }\n if (this.listens(\"gpu-timing-layer\")) {\n var frameLayerQueries = this.painter.collectGpuTimers();\n setTimeout(function() {\n var renderedLayerTimes = this$1.painter.queryGpuTimers(frameLayerQueries);\n this$1.fire(new performance2.Event(\"gpu-timing-layer\", { layerTimes: renderedLayerTimes }));\n }, 50);\n }\n var somethingDirty = this._sourcesDirty || this._styleDirty || this._placementDirty;\n if (somethingDirty || this._repaint) {\n this.triggerRepaint();\n } else if (!this.isMoving() && this.loaded()) {\n this.fire(new performance2.Event(\"idle\"));\n }\n if (this._loaded && !this._fullyLoaded && !somethingDirty) {\n this._fullyLoaded = true;\n }\n return this;\n };\n Map3.prototype.remove = function remove() {\n if (this._hash) {\n this._hash.remove();\n }\n for (var i = 0, list = this._controls; i < list.length; i += 1) {\n var control = list[i];\n control.onRemove(this);\n }\n this._controls = [];\n if (this._frame) {\n this._frame.cancel();\n this._frame = null;\n }\n this._renderTaskQueue.clear();\n this.painter.destroy();\n this.handlers.destroy();\n delete this.handlers;\n this.setStyle(null);\n if (typeof performance2.window !== \"undefined\") {\n performance2.window.removeEventListener(\"resize\", this._onWindowResize, false);\n performance2.window.removeEventListener(\"orientationchange\", this._onWindowResize, false);\n performance2.window.removeEventListener(\"online\", this._onWindowOnline, false);\n }\n var extension = this.painter.context.gl.getExtension(\"WEBGL_lose_context\");\n if (extension && extension.loseContext) {\n extension.loseContext();\n }\n removeNode(this._canvasContainer);\n removeNode(this._controlContainer);\n removeNode(this._missingCSSCanary);\n this._container.classList.remove(\"mapboxgl-map\");\n this._removed = true;\n this.fire(new performance2.Event(\"remove\"));\n };\n Map3.prototype.triggerRepaint = function triggerRepaint() {\n var this$1 = this;\n if (this.style && !this._frame) {\n this._frame = performance2.browser.frame(function(paintStartTimeStamp) {\n this$1._frame = null;\n this$1._render(paintStartTimeStamp);\n });\n }\n };\n Map3.prototype._onWindowOnline = function _onWindowOnline() {\n this._update();\n };\n Map3.prototype._onWindowResize = function _onWindowResize(event) {\n if (this._trackResize) {\n this.resize({ originalEvent: event })._update();\n }\n };\n prototypeAccessors2.showTileBoundaries.get = function() {\n return !!this._showTileBoundaries;\n };\n prototypeAccessors2.showTileBoundaries.set = function(value) {\n if (this._showTileBoundaries === value) {\n return;\n }\n this._showTileBoundaries = value;\n this._update();\n };\n prototypeAccessors2.showPadding.get = function() {\n return !!this._showPadding;\n };\n prototypeAccessors2.showPadding.set = function(value) {\n if (this._showPadding === value) {\n return;\n }\n this._showPadding = value;\n this._update();\n };\n prototypeAccessors2.showCollisionBoxes.get = function() {\n return !!this._showCollisionBoxes;\n };\n prototypeAccessors2.showCollisionBoxes.set = function(value) {\n if (this._showCollisionBoxes === value) {\n return;\n }\n this._showCollisionBoxes = value;\n if (value) {\n this.style._generateCollisionBoxes();\n } else {\n this._update();\n }\n };\n prototypeAccessors2.showOverdrawInspector.get = function() {\n return !!this._showOverdrawInspector;\n };\n prototypeAccessors2.showOverdrawInspector.set = function(value) {\n if (this._showOverdrawInspector === value) {\n return;\n }\n this._showOverdrawInspector = value;\n this._update();\n };\n prototypeAccessors2.repaint.get = function() {\n return !!this._repaint;\n };\n prototypeAccessors2.repaint.set = function(value) {\n if (this._repaint !== value) {\n this._repaint = value;\n this.triggerRepaint();\n }\n };\n prototypeAccessors2.vertices.get = function() {\n return !!this._vertices;\n };\n prototypeAccessors2.vertices.set = function(value) {\n this._vertices = value;\n this._update();\n };\n Map3.prototype._setCacheLimits = function _setCacheLimits(limit, checkThreshold) {\n performance2.setCacheLimits(limit, checkThreshold);\n };\n prototypeAccessors2.version.get = function() {\n return performance2.version;\n };\n Object.defineProperties(Map3.prototype, prototypeAccessors2);\n return Map3;\n }(Camera);\n function removeNode(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n var defaultOptions$2 = {\n showCompass: true,\n showZoom: true,\n visualizePitch: false\n };\n var NavigationControl = function NavigationControl2(options) {\n var this$1 = this;\n this.options = performance2.extend({}, defaultOptions$2, options);\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-group\");\n this._container.addEventListener(\"contextmenu\", function(e) {\n return e.preventDefault();\n });\n if (this.options.showZoom) {\n performance2.bindAll([\n \"_setButtonTitle\",\n \"_updateZoomButtons\"\n ], this);\n this._zoomInButton = this._createButton(\"mapboxgl-ctrl-zoom-in\", function(e) {\n return this$1._map.zoomIn({}, { originalEvent: e });\n });\n DOM.create(\"span\", \"mapboxgl-ctrl-icon\", this._zoomInButton).setAttribute(\"aria-hidden\", true);\n this._zoomOutButton = this._createButton(\"mapboxgl-ctrl-zoom-out\", function(e) {\n return this$1._map.zoomOut({}, { originalEvent: e });\n });\n DOM.create(\"span\", \"mapboxgl-ctrl-icon\", this._zoomOutButton).setAttribute(\"aria-hidden\", true);\n }\n if (this.options.showCompass) {\n performance2.bindAll([\"_rotateCompassArrow\"], this);\n this._compass = this._createButton(\"mapboxgl-ctrl-compass\", function(e) {\n if (this$1.options.visualizePitch) {\n this$1._map.resetNorthPitch({}, { originalEvent: e });\n } else {\n this$1._map.resetNorth({}, { originalEvent: e });\n }\n });\n this._compassIcon = DOM.create(\"span\", \"mapboxgl-ctrl-icon\", this._compass);\n this._compassIcon.setAttribute(\"aria-hidden\", true);\n }\n };\n NavigationControl.prototype._updateZoomButtons = function _updateZoomButtons() {\n var zoom = this._map.getZoom();\n var isMax = zoom === this._map.getMaxZoom();\n var isMin = zoom === this._map.getMinZoom();\n this._zoomInButton.disabled = isMax;\n this._zoomOutButton.disabled = isMin;\n this._zoomInButton.setAttribute(\"aria-disabled\", isMax.toString());\n this._zoomOutButton.setAttribute(\"aria-disabled\", isMin.toString());\n };\n NavigationControl.prototype._rotateCompassArrow = function _rotateCompassArrow() {\n var rotate = this.options.visualizePitch ? \"scale(\" + 1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5) + \") rotateX(\" + this._map.transform.pitch + \"deg) rotateZ(\" + this._map.transform.angle * (180 / Math.PI) + \"deg)\" : \"rotate(\" + this._map.transform.angle * (180 / Math.PI) + \"deg)\";\n this._compassIcon.style.transform = rotate;\n };\n NavigationControl.prototype.onAdd = function onAdd(map) {\n this._map = map;\n if (this.options.showZoom) {\n this._setButtonTitle(this._zoomInButton, \"ZoomIn\");\n this._setButtonTitle(this._zoomOutButton, \"ZoomOut\");\n this._map.on(\"zoom\", this._updateZoomButtons);\n this._updateZoomButtons();\n }\n if (this.options.showCompass) {\n this._setButtonTitle(this._compass, \"ResetBearing\");\n if (this.options.visualizePitch) {\n this._map.on(\"pitch\", this._rotateCompassArrow);\n }\n this._map.on(\"rotate\", this._rotateCompassArrow);\n this._rotateCompassArrow();\n this._handler = new MouseRotateWrapper(this._map, this._compass, this.options.visualizePitch);\n }\n return this._container;\n };\n NavigationControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._container);\n if (this.options.showZoom) {\n this._map.off(\"zoom\", this._updateZoomButtons);\n }\n if (this.options.showCompass) {\n if (this.options.visualizePitch) {\n this._map.off(\"pitch\", this._rotateCompassArrow);\n }\n this._map.off(\"rotate\", this._rotateCompassArrow);\n this._handler.off();\n delete this._handler;\n }\n delete this._map;\n };\n NavigationControl.prototype._createButton = function _createButton(className, fn) {\n var a = DOM.create(\"button\", className, this._container);\n a.type = \"button\";\n a.addEventListener(\"click\", fn);\n return a;\n };\n NavigationControl.prototype._setButtonTitle = function _setButtonTitle(button, title) {\n var str = this._map._getUIString(\"NavigationControl.\" + title);\n button.title = str;\n button.setAttribute(\"aria-label\", str);\n };\n var MouseRotateWrapper = function MouseRotateWrapper2(map, element, pitch) {\n if (pitch === void 0)\n pitch = false;\n this._clickTolerance = 10;\n this.element = element;\n this.mouseRotate = new MouseRotateHandler({ clickTolerance: map.dragRotate._mouseRotate._clickTolerance });\n this.map = map;\n if (pitch) {\n this.mousePitch = new MousePitchHandler({ clickTolerance: map.dragRotate._mousePitch._clickTolerance });\n }\n performance2.bindAll([\n \"mousedown\",\n \"mousemove\",\n \"mouseup\",\n \"touchstart\",\n \"touchmove\",\n \"touchend\",\n \"reset\"\n ], this);\n DOM.addEventListener(element, \"mousedown\", this.mousedown);\n DOM.addEventListener(element, \"touchstart\", this.touchstart, { passive: false });\n DOM.addEventListener(element, \"touchmove\", this.touchmove);\n DOM.addEventListener(element, \"touchend\", this.touchend);\n DOM.addEventListener(element, \"touchcancel\", this.reset);\n };\n MouseRotateWrapper.prototype.down = function down(e, point) {\n this.mouseRotate.mousedown(e, point);\n if (this.mousePitch) {\n this.mousePitch.mousedown(e, point);\n }\n DOM.disableDrag();\n };\n MouseRotateWrapper.prototype.move = function move(e, point) {\n var map = this.map;\n var r = this.mouseRotate.mousemoveWindow(e, point);\n if (r && r.bearingDelta) {\n map.setBearing(map.getBearing() + r.bearingDelta);\n }\n if (this.mousePitch) {\n var p = this.mousePitch.mousemoveWindow(e, point);\n if (p && p.pitchDelta) {\n map.setPitch(map.getPitch() + p.pitchDelta);\n }\n }\n };\n MouseRotateWrapper.prototype.off = function off() {\n var element = this.element;\n DOM.removeEventListener(element, \"mousedown\", this.mousedown);\n DOM.removeEventListener(element, \"touchstart\", this.touchstart, { passive: false });\n DOM.removeEventListener(element, \"touchmove\", this.touchmove);\n DOM.removeEventListener(element, \"touchend\", this.touchend);\n DOM.removeEventListener(element, \"touchcancel\", this.reset);\n this.offTemp();\n };\n MouseRotateWrapper.prototype.offTemp = function offTemp() {\n DOM.enableDrag();\n DOM.removeEventListener(performance2.window, \"mousemove\", this.mousemove);\n DOM.removeEventListener(performance2.window, \"mouseup\", this.mouseup);\n };\n MouseRotateWrapper.prototype.mousedown = function mousedown(e) {\n this.down(performance2.extend({}, e, {\n ctrlKey: true,\n preventDefault: function() {\n return e.preventDefault();\n }\n }), DOM.mousePos(this.element, e));\n DOM.addEventListener(performance2.window, \"mousemove\", this.mousemove);\n DOM.addEventListener(performance2.window, \"mouseup\", this.mouseup);\n };\n MouseRotateWrapper.prototype.mousemove = function mousemove(e) {\n this.move(e, DOM.mousePos(this.element, e));\n };\n MouseRotateWrapper.prototype.mouseup = function mouseup(e) {\n this.mouseRotate.mouseupWindow(e);\n if (this.mousePitch) {\n this.mousePitch.mouseupWindow(e);\n }\n this.offTemp();\n };\n MouseRotateWrapper.prototype.touchstart = function touchstart(e) {\n if (e.targetTouches.length !== 1) {\n this.reset();\n } else {\n this._startPos = this._lastPos = DOM.touchPos(this.element, e.targetTouches)[0];\n this.down({\n type: \"mousedown\",\n button: 0,\n ctrlKey: true,\n preventDefault: function() {\n return e.preventDefault();\n }\n }, this._startPos);\n }\n };\n MouseRotateWrapper.prototype.touchmove = function touchmove(e) {\n if (e.targetTouches.length !== 1) {\n this.reset();\n } else {\n this._lastPos = DOM.touchPos(this.element, e.targetTouches)[0];\n this.move({\n preventDefault: function() {\n return e.preventDefault();\n }\n }, this._lastPos);\n }\n };\n MouseRotateWrapper.prototype.touchend = function touchend(e) {\n if (e.targetTouches.length === 0 && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance) {\n this.element.click();\n }\n this.reset();\n };\n MouseRotateWrapper.prototype.reset = function reset() {\n this.mouseRotate.reset();\n if (this.mousePitch) {\n this.mousePitch.reset();\n }\n delete this._startPos;\n delete this._lastPos;\n this.offTemp();\n };\n function smartWrap(lngLat, priorPos, transform) {\n lngLat = new performance2.LngLat(lngLat.lng, lngLat.lat);\n if (priorPos) {\n var left = new performance2.LngLat(lngLat.lng - 360, lngLat.lat);\n var right = new performance2.LngLat(lngLat.lng + 360, lngLat.lat);\n var delta = transform.locationPoint(lngLat).distSqr(priorPos);\n if (transform.locationPoint(left).distSqr(priorPos) < delta) {\n lngLat = left;\n } else if (transform.locationPoint(right).distSqr(priorPos) < delta) {\n lngLat = right;\n }\n }\n while (Math.abs(lngLat.lng - transform.center.lng) > 180) {\n var pos = transform.locationPoint(lngLat);\n if (pos.x >= 0 && pos.y >= 0 && pos.x <= transform.width && pos.y <= transform.height) {\n break;\n }\n if (lngLat.lng > transform.center.lng) {\n lngLat.lng -= 360;\n } else {\n lngLat.lng += 360;\n }\n }\n return lngLat;\n }\n var anchorTranslate = {\n \"center\": \"translate(-50%,-50%)\",\n \"top\": \"translate(-50%,0)\",\n \"top-left\": \"translate(0,0)\",\n \"top-right\": \"translate(-100%,0)\",\n \"bottom\": \"translate(-50%,-100%)\",\n \"bottom-left\": \"translate(0,-100%)\",\n \"bottom-right\": \"translate(-100%,-100%)\",\n \"left\": \"translate(0,-50%)\",\n \"right\": \"translate(-100%,-50%)\"\n };\n function applyAnchorClass(element, anchor, prefix) {\n var classList = element.classList;\n for (var key in anchorTranslate) {\n classList.remove(\"mapboxgl-\" + prefix + \"-anchor-\" + key);\n }\n classList.add(\"mapboxgl-\" + prefix + \"-anchor-\" + anchor);\n }\n var Marker = function(Evented) {\n function Marker2(options, legacyOptions) {\n Evented.call(this);\n if (options instanceof performance2.window.HTMLElement || legacyOptions) {\n options = performance2.extend({ element: options }, legacyOptions);\n }\n performance2.bindAll([\n \"_update\",\n \"_onMove\",\n \"_onUp\",\n \"_addDragHandler\",\n \"_onMapClick\",\n \"_onKeyPress\"\n ], this);\n this._anchor = options && options.anchor || \"center\";\n this._color = options && options.color || \"#3FB1CE\";\n this._scale = options && options.scale || 1;\n this._draggable = options && options.draggable || false;\n this._clickTolerance = options && options.clickTolerance || 0;\n this._isDragging = false;\n this._state = \"inactive\";\n this._rotation = options && options.rotation || 0;\n this._rotationAlignment = options && options.rotationAlignment || \"auto\";\n this._pitchAlignment = options && options.pitchAlignment && options.pitchAlignment !== \"auto\" ? options.pitchAlignment : this._rotationAlignment;\n if (!options || !options.element) {\n this._defaultMarker = true;\n this._element = DOM.create(\"div\");\n this._element.setAttribute(\"aria-label\", \"Map marker\");\n var svg = DOM.createNS(\"http://www.w3.org/2000/svg\", \"svg\");\n var defaultHeight = 41;\n var defaultWidth = 27;\n svg.setAttributeNS(null, \"display\", \"block\");\n svg.setAttributeNS(null, \"height\", defaultHeight + \"px\");\n svg.setAttributeNS(null, \"width\", defaultWidth + \"px\");\n svg.setAttributeNS(null, \"viewBox\", \"0 0 \" + defaultWidth + \" \" + defaultHeight);\n var markerLarge = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n markerLarge.setAttributeNS(null, \"stroke\", \"none\");\n markerLarge.setAttributeNS(null, \"stroke-width\", \"1\");\n markerLarge.setAttributeNS(null, \"fill\", \"none\");\n markerLarge.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n var page1 = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n page1.setAttributeNS(null, \"fill-rule\", \"nonzero\");\n var shadow = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n shadow.setAttributeNS(null, \"transform\", \"translate(3.0, 29.0)\");\n shadow.setAttributeNS(null, \"fill\", \"#000000\");\n var ellipses = [\n {\n \"rx\": \"10.5\",\n \"ry\": \"5.25002273\"\n },\n {\n \"rx\": \"10.5\",\n \"ry\": \"5.25002273\"\n },\n {\n \"rx\": \"9.5\",\n \"ry\": \"4.77275007\"\n },\n {\n \"rx\": \"8.5\",\n \"ry\": \"4.29549936\"\n },\n {\n \"rx\": \"7.5\",\n \"ry\": \"3.81822308\"\n },\n {\n \"rx\": \"6.5\",\n \"ry\": \"3.34094679\"\n },\n {\n \"rx\": \"5.5\",\n \"ry\": \"2.86367051\"\n },\n {\n \"rx\": \"4.5\",\n \"ry\": \"2.38636864\"\n }\n ];\n for (var i = 0, list = ellipses; i < list.length; i += 1) {\n var data = list[i];\n var ellipse = DOM.createNS(\"http://www.w3.org/2000/svg\", \"ellipse\");\n ellipse.setAttributeNS(null, \"opacity\", \"0.04\");\n ellipse.setAttributeNS(null, \"cx\", \"10.5\");\n ellipse.setAttributeNS(null, \"cy\", \"5.80029008\");\n ellipse.setAttributeNS(null, \"rx\", data[\"rx\"]);\n ellipse.setAttributeNS(null, \"ry\", data[\"ry\"]);\n shadow.appendChild(ellipse);\n }\n var background2 = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n background2.setAttributeNS(null, \"fill\", this._color);\n var bgPath = DOM.createNS(\"http://www.w3.org/2000/svg\", \"path\");\n bgPath.setAttributeNS(null, \"d\", \"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\");\n background2.appendChild(bgPath);\n var border = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n border.setAttributeNS(null, \"opacity\", \"0.25\");\n border.setAttributeNS(null, \"fill\", \"#000000\");\n var borderPath = DOM.createNS(\"http://www.w3.org/2000/svg\", \"path\");\n borderPath.setAttributeNS(null, \"d\", \"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\");\n border.appendChild(borderPath);\n var maki = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n maki.setAttributeNS(null, \"transform\", \"translate(6.0, 7.0)\");\n maki.setAttributeNS(null, \"fill\", \"#FFFFFF\");\n var circleContainer = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n circleContainer.setAttributeNS(null, \"transform\", \"translate(8.0, 8.0)\");\n var circle1 = DOM.createNS(\"http://www.w3.org/2000/svg\", \"circle\");\n circle1.setAttributeNS(null, \"fill\", \"#000000\");\n circle1.setAttributeNS(null, \"opacity\", \"0.25\");\n circle1.setAttributeNS(null, \"cx\", \"5.5\");\n circle1.setAttributeNS(null, \"cy\", \"5.5\");\n circle1.setAttributeNS(null, \"r\", \"5.4999962\");\n var circle2 = DOM.createNS(\"http://www.w3.org/2000/svg\", \"circle\");\n circle2.setAttributeNS(null, \"fill\", \"#FFFFFF\");\n circle2.setAttributeNS(null, \"cx\", \"5.5\");\n circle2.setAttributeNS(null, \"cy\", \"5.5\");\n circle2.setAttributeNS(null, \"r\", \"5.4999962\");\n circleContainer.appendChild(circle1);\n circleContainer.appendChild(circle2);\n page1.appendChild(shadow);\n page1.appendChild(background2);\n page1.appendChild(border);\n page1.appendChild(maki);\n page1.appendChild(circleContainer);\n svg.appendChild(page1);\n svg.setAttributeNS(null, \"height\", defaultHeight * this._scale + \"px\");\n svg.setAttributeNS(null, \"width\", defaultWidth * this._scale + \"px\");\n this._element.appendChild(svg);\n this._offset = performance2.Point.convert(options && options.offset || [\n 0,\n -14\n ]);\n } else {\n this._element = options.element;\n this._offset = performance2.Point.convert(options && options.offset || [\n 0,\n 0\n ]);\n }\n this._element.classList.add(\"mapboxgl-marker\");\n this._element.addEventListener(\"dragstart\", function(e) {\n e.preventDefault();\n });\n this._element.addEventListener(\"mousedown\", function(e) {\n e.preventDefault();\n });\n applyAnchorClass(this._element, this._anchor, \"marker\");\n this._popup = null;\n }\n if (Evented)\n Marker2.__proto__ = Evented;\n Marker2.prototype = Object.create(Evented && Evented.prototype);\n Marker2.prototype.constructor = Marker2;\n Marker2.prototype.addTo = function addTo(map) {\n this.remove();\n this._map = map;\n map.getCanvasContainer().appendChild(this._element);\n map.on(\"move\", this._update);\n map.on(\"moveend\", this._update);\n this.setDraggable(this._draggable);\n this._update();\n this._map.on(\"click\", this._onMapClick);\n return this;\n };\n Marker2.prototype.remove = function remove() {\n if (this._map) {\n this._map.off(\"click\", this._onMapClick);\n this._map.off(\"move\", this._update);\n this._map.off(\"moveend\", this._update);\n this._map.off(\"mousedown\", this._addDragHandler);\n this._map.off(\"touchstart\", this._addDragHandler);\n this._map.off(\"mouseup\", this._onUp);\n this._map.off(\"touchend\", this._onUp);\n this._map.off(\"mousemove\", this._onMove);\n this._map.off(\"touchmove\", this._onMove);\n delete this._map;\n }\n DOM.remove(this._element);\n if (this._popup) {\n this._popup.remove();\n }\n return this;\n };\n Marker2.prototype.getLngLat = function getLngLat() {\n return this._lngLat;\n };\n Marker2.prototype.setLngLat = function setLngLat(lnglat) {\n this._lngLat = performance2.LngLat.convert(lnglat);\n this._pos = null;\n if (this._popup) {\n this._popup.setLngLat(this._lngLat);\n }\n this._update();\n return this;\n };\n Marker2.prototype.getElement = function getElement() {\n return this._element;\n };\n Marker2.prototype.setPopup = function setPopup(popup) {\n if (this._popup) {\n this._popup.remove();\n this._popup = null;\n this._element.removeEventListener(\"keypress\", this._onKeyPress);\n if (!this._originalTabIndex) {\n this._element.removeAttribute(\"tabindex\");\n }\n }\n if (popup) {\n if (!(\"offset\" in popup.options)) {\n var markerHeight = 41 - 5.8 / 2;\n var markerRadius = 13.5;\n var linearOffset = Math.sqrt(Math.pow(markerRadius, 2) / 2);\n popup.options.offset = this._defaultMarker ? {\n \"top\": [\n 0,\n 0\n ],\n \"top-left\": [\n 0,\n 0\n ],\n \"top-right\": [\n 0,\n 0\n ],\n \"bottom\": [\n 0,\n -markerHeight\n ],\n \"bottom-left\": [\n linearOffset,\n (markerHeight - markerRadius + linearOffset) * -1\n ],\n \"bottom-right\": [\n -linearOffset,\n (markerHeight - markerRadius + linearOffset) * -1\n ],\n \"left\": [\n markerRadius,\n (markerHeight - markerRadius) * -1\n ],\n \"right\": [\n -markerRadius,\n (markerHeight - markerRadius) * -1\n ]\n } : this._offset;\n }\n this._popup = popup;\n if (this._lngLat) {\n this._popup.setLngLat(this._lngLat);\n }\n this._originalTabIndex = this._element.getAttribute(\"tabindex\");\n if (!this._originalTabIndex) {\n this._element.setAttribute(\"tabindex\", \"0\");\n }\n this._element.addEventListener(\"keypress\", this._onKeyPress);\n }\n return this;\n };\n Marker2.prototype._onKeyPress = function _onKeyPress(e) {\n var code = e.code;\n var legacyCode = e.charCode || e.keyCode;\n if (code === \"Space\" || code === \"Enter\" || legacyCode === 32 || legacyCode === 13) {\n this.togglePopup();\n }\n };\n Marker2.prototype._onMapClick = function _onMapClick(e) {\n var targetElement = e.originalEvent.target;\n var element = this._element;\n if (this._popup && (targetElement === element || element.contains(targetElement))) {\n this.togglePopup();\n }\n };\n Marker2.prototype.getPopup = function getPopup() {\n return this._popup;\n };\n Marker2.prototype.togglePopup = function togglePopup() {\n var popup = this._popup;\n if (!popup) {\n return this;\n } else if (popup.isOpen()) {\n popup.remove();\n } else {\n popup.addTo(this._map);\n }\n return this;\n };\n Marker2.prototype._update = function _update(e) {\n if (!this._map) {\n return;\n }\n if (this._map.transform.renderWorldCopies) {\n this._lngLat = smartWrap(this._lngLat, this._pos, this._map.transform);\n }\n this._pos = this._map.project(this._lngLat)._add(this._offset);\n var rotation = \"\";\n if (this._rotationAlignment === \"viewport\" || this._rotationAlignment === \"auto\") {\n rotation = \"rotateZ(\" + this._rotation + \"deg)\";\n } else if (this._rotationAlignment === \"map\") {\n rotation = \"rotateZ(\" + (this._rotation - this._map.getBearing()) + \"deg)\";\n }\n var pitch = \"\";\n if (this._pitchAlignment === \"viewport\" || this._pitchAlignment === \"auto\") {\n pitch = \"rotateX(0deg)\";\n } else if (this._pitchAlignment === \"map\") {\n pitch = \"rotateX(\" + this._map.getPitch() + \"deg)\";\n }\n if (!e || e.type === \"moveend\") {\n this._pos = this._pos.round();\n }\n DOM.setTransform(this._element, anchorTranslate[this._anchor] + \" translate(\" + this._pos.x + \"px, \" + this._pos.y + \"px) \" + pitch + \" \" + rotation);\n };\n Marker2.prototype.getOffset = function getOffset() {\n return this._offset;\n };\n Marker2.prototype.setOffset = function setOffset(offset) {\n this._offset = performance2.Point.convert(offset);\n this._update();\n return this;\n };\n Marker2.prototype._onMove = function _onMove(e) {\n if (!this._isDragging) {\n var clickTolerance = this._clickTolerance || this._map._clickTolerance;\n this._isDragging = e.point.dist(this._pointerdownPos) >= clickTolerance;\n }\n if (!this._isDragging) {\n return;\n }\n this._pos = e.point.sub(this._positionDelta);\n this._lngLat = this._map.unproject(this._pos);\n this.setLngLat(this._lngLat);\n this._element.style.pointerEvents = \"none\";\n if (this._state === \"pending\") {\n this._state = \"active\";\n this.fire(new performance2.Event(\"dragstart\"));\n }\n this.fire(new performance2.Event(\"drag\"));\n };\n Marker2.prototype._onUp = function _onUp() {\n this._element.style.pointerEvents = \"auto\";\n this._positionDelta = null;\n this._pointerdownPos = null;\n this._isDragging = false;\n this._map.off(\"mousemove\", this._onMove);\n this._map.off(\"touchmove\", this._onMove);\n if (this._state === \"active\") {\n this.fire(new performance2.Event(\"dragend\"));\n }\n this._state = \"inactive\";\n };\n Marker2.prototype._addDragHandler = function _addDragHandler(e) {\n if (this._element.contains(e.originalEvent.target)) {\n e.preventDefault();\n this._positionDelta = e.point.sub(this._pos).add(this._offset);\n this._pointerdownPos = e.point;\n this._state = \"pending\";\n this._map.on(\"mousemove\", this._onMove);\n this._map.on(\"touchmove\", this._onMove);\n this._map.once(\"mouseup\", this._onUp);\n this._map.once(\"touchend\", this._onUp);\n }\n };\n Marker2.prototype.setDraggable = function setDraggable(shouldBeDraggable) {\n this._draggable = !!shouldBeDraggable;\n if (this._map) {\n if (shouldBeDraggable) {\n this._map.on(\"mousedown\", this._addDragHandler);\n this._map.on(\"touchstart\", this._addDragHandler);\n } else {\n this._map.off(\"mousedown\", this._addDragHandler);\n this._map.off(\"touchstart\", this._addDragHandler);\n }\n }\n return this;\n };\n Marker2.prototype.isDraggable = function isDraggable() {\n return this._draggable;\n };\n Marker2.prototype.setRotation = function setRotation(rotation) {\n this._rotation = rotation || 0;\n this._update();\n return this;\n };\n Marker2.prototype.getRotation = function getRotation() {\n return this._rotation;\n };\n Marker2.prototype.setRotationAlignment = function setRotationAlignment(alignment) {\n this._rotationAlignment = alignment || \"auto\";\n this._update();\n return this;\n };\n Marker2.prototype.getRotationAlignment = function getRotationAlignment() {\n return this._rotationAlignment;\n };\n Marker2.prototype.setPitchAlignment = function setPitchAlignment(alignment) {\n this._pitchAlignment = alignment && alignment !== \"auto\" ? alignment : this._rotationAlignment;\n this._update();\n return this;\n };\n Marker2.prototype.getPitchAlignment = function getPitchAlignment() {\n return this._pitchAlignment;\n };\n return Marker2;\n }(performance2.Evented);\n var defaultOptions$3 = {\n positionOptions: {\n enableHighAccuracy: false,\n maximumAge: 0,\n timeout: 6e3\n },\n fitBoundsOptions: { maxZoom: 15 },\n trackUserLocation: false,\n showAccuracyCircle: true,\n showUserLocation: true\n };\n var supportsGeolocation;\n function checkGeolocationSupport(callback) {\n if (supportsGeolocation !== void 0) {\n callback(supportsGeolocation);\n } else if (performance2.window.navigator.permissions !== void 0) {\n performance2.window.navigator.permissions.query({ name: \"geolocation\" }).then(function(p) {\n supportsGeolocation = p.state !== \"denied\";\n callback(supportsGeolocation);\n });\n } else {\n supportsGeolocation = !!performance2.window.navigator.geolocation;\n callback(supportsGeolocation);\n }\n }\n var numberOfWatches = 0;\n var noTimeout = false;\n var GeolocateControl = function(Evented) {\n function GeolocateControl2(options) {\n Evented.call(this);\n this.options = performance2.extend({}, defaultOptions$3, options);\n performance2.bindAll([\n \"_onSuccess\",\n \"_onError\",\n \"_onZoom\",\n \"_finish\",\n \"_setupUI\",\n \"_updateCamera\",\n \"_updateMarker\"\n ], this);\n }\n if (Evented)\n GeolocateControl2.__proto__ = Evented;\n GeolocateControl2.prototype = Object.create(Evented && Evented.prototype);\n GeolocateControl2.prototype.constructor = GeolocateControl2;\n GeolocateControl2.prototype.onAdd = function onAdd(map) {\n this._map = map;\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-group\");\n checkGeolocationSupport(this._setupUI);\n return this._container;\n };\n GeolocateControl2.prototype.onRemove = function onRemove() {\n if (this._geolocationWatchID !== void 0) {\n performance2.window.navigator.geolocation.clearWatch(this._geolocationWatchID);\n this._geolocationWatchID = void 0;\n }\n if (this.options.showUserLocation && this._userLocationDotMarker) {\n this._userLocationDotMarker.remove();\n }\n if (this.options.showAccuracyCircle && this._accuracyCircleMarker) {\n this._accuracyCircleMarker.remove();\n }\n DOM.remove(this._container);\n this._map.off(\"zoom\", this._onZoom);\n this._map = void 0;\n numberOfWatches = 0;\n noTimeout = false;\n };\n GeolocateControl2.prototype._isOutOfMapMaxBounds = function _isOutOfMapMaxBounds(position) {\n var bounds = this._map.getMaxBounds();\n var coordinates = position.coords;\n return bounds && (coordinates.longitude < bounds.getWest() || coordinates.longitude > bounds.getEast() || coordinates.latitude < bounds.getSouth() || coordinates.latitude > bounds.getNorth());\n };\n GeolocateControl2.prototype._setErrorState = function _setErrorState() {\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n this._watchState = \"ACTIVE_ERROR\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");\n break;\n case \"ACTIVE_LOCK\":\n this._watchState = \"ACTIVE_ERROR\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n break;\n case \"BACKGROUND\":\n this._watchState = \"BACKGROUND_ERROR\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background-error\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n break;\n }\n };\n GeolocateControl2.prototype._onSuccess = function _onSuccess(position) {\n if (!this._map) {\n return;\n }\n if (this._isOutOfMapMaxBounds(position)) {\n this._setErrorState();\n this.fire(new performance2.Event(\"outofmaxbounds\", position));\n this._updateMarker();\n this._finish();\n return;\n }\n if (this.options.trackUserLocation) {\n this._lastKnownPosition = position;\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n case \"ACTIVE_LOCK\":\n case \"ACTIVE_ERROR\":\n this._watchState = \"ACTIVE_LOCK\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");\n break;\n case \"BACKGROUND\":\n case \"BACKGROUND_ERROR\":\n this._watchState = \"BACKGROUND\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");\n break;\n }\n }\n if (this.options.showUserLocation && this._watchState !== \"OFF\") {\n this._updateMarker(position);\n }\n if (!this.options.trackUserLocation || this._watchState === \"ACTIVE_LOCK\") {\n this._updateCamera(position);\n }\n if (this.options.showUserLocation) {\n this._dotElement.classList.remove(\"mapboxgl-user-location-dot-stale\");\n }\n this.fire(new performance2.Event(\"geolocate\", position));\n this._finish();\n };\n GeolocateControl2.prototype._updateCamera = function _updateCamera(position) {\n var center = new performance2.LngLat(position.coords.longitude, position.coords.latitude);\n var radius = position.coords.accuracy;\n var bearing = this._map.getBearing();\n var options = performance2.extend({ bearing }, this.options.fitBoundsOptions);\n this._map.fitBounds(center.toBounds(radius), options, { geolocateSource: true });\n };\n GeolocateControl2.prototype._updateMarker = function _updateMarker(position) {\n if (position) {\n var center = new performance2.LngLat(position.coords.longitude, position.coords.latitude);\n this._accuracyCircleMarker.setLngLat(center).addTo(this._map);\n this._userLocationDotMarker.setLngLat(center).addTo(this._map);\n this._accuracy = position.coords.accuracy;\n if (this.options.showUserLocation && this.options.showAccuracyCircle) {\n this._updateCircleRadius();\n }\n } else {\n this._userLocationDotMarker.remove();\n this._accuracyCircleMarker.remove();\n }\n };\n GeolocateControl2.prototype._updateCircleRadius = function _updateCircleRadius() {\n var y = this._map._container.clientHeight / 2;\n var a = this._map.unproject([\n 0,\n y\n ]);\n var b = this._map.unproject([\n 1,\n y\n ]);\n var metersPerPixel = a.distanceTo(b);\n var circleDiameter = Math.ceil(2 * this._accuracy / metersPerPixel);\n this._circleElement.style.width = circleDiameter + \"px\";\n this._circleElement.style.height = circleDiameter + \"px\";\n };\n GeolocateControl2.prototype._onZoom = function _onZoom() {\n if (this.options.showUserLocation && this.options.showAccuracyCircle) {\n this._updateCircleRadius();\n }\n };\n GeolocateControl2.prototype._onError = function _onError(error) {\n if (!this._map) {\n return;\n }\n if (this.options.trackUserLocation) {\n if (error.code === 1) {\n this._watchState = \"OFF\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\");\n this._geolocateButton.disabled = true;\n var title = this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");\n this._geolocateButton.title = title;\n this._geolocateButton.setAttribute(\"aria-label\", title);\n if (this._geolocationWatchID !== void 0) {\n this._clearWatch();\n }\n } else if (error.code === 3 && noTimeout) {\n return;\n } else {\n this._setErrorState();\n }\n }\n if (this._watchState !== \"OFF\" && this.options.showUserLocation) {\n this._dotElement.classList.add(\"mapboxgl-user-location-dot-stale\");\n }\n this.fire(new performance2.Event(\"error\", error));\n this._finish();\n };\n GeolocateControl2.prototype._finish = function _finish() {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n this._timeoutId = void 0;\n };\n GeolocateControl2.prototype._setupUI = function _setupUI(supported) {\n var this$1 = this;\n this._container.addEventListener(\"contextmenu\", function(e) {\n return e.preventDefault();\n });\n this._geolocateButton = DOM.create(\"button\", \"mapboxgl-ctrl-geolocate\", this._container);\n DOM.create(\"span\", \"mapboxgl-ctrl-icon\", this._geolocateButton).setAttribute(\"aria-hidden\", true);\n this._geolocateButton.type = \"button\";\n if (supported === false) {\n performance2.warnOnce(\"Geolocation support is not available so the GeolocateControl will be disabled.\");\n var title = this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");\n this._geolocateButton.disabled = true;\n this._geolocateButton.title = title;\n this._geolocateButton.setAttribute(\"aria-label\", title);\n } else {\n var title$1 = this._map._getUIString(\"GeolocateControl.FindMyLocation\");\n this._geolocateButton.title = title$1;\n this._geolocateButton.setAttribute(\"aria-label\", title$1);\n }\n if (this.options.trackUserLocation) {\n this._geolocateButton.setAttribute(\"aria-pressed\", \"false\");\n this._watchState = \"OFF\";\n }\n if (this.options.showUserLocation) {\n this._dotElement = DOM.create(\"div\", \"mapboxgl-user-location-dot\");\n this._userLocationDotMarker = new Marker(this._dotElement);\n this._circleElement = DOM.create(\"div\", \"mapboxgl-user-location-accuracy-circle\");\n this._accuracyCircleMarker = new Marker({\n element: this._circleElement,\n pitchAlignment: \"map\"\n });\n if (this.options.trackUserLocation) {\n this._watchState = \"OFF\";\n }\n this._map.on(\"zoom\", this._onZoom);\n }\n this._geolocateButton.addEventListener(\"click\", this.trigger.bind(this));\n this._setup = true;\n if (this.options.trackUserLocation) {\n this._map.on(\"movestart\", function(event) {\n var fromResize = event.originalEvent && event.originalEvent.type === \"resize\";\n if (!event.geolocateSource && this$1._watchState === \"ACTIVE_LOCK\" && !fromResize) {\n this$1._watchState = \"BACKGROUND\";\n this$1._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");\n this$1._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this$1.fire(new performance2.Event(\"trackuserlocationend\"));\n }\n });\n }\n };\n GeolocateControl2.prototype.trigger = function trigger() {\n if (!this._setup) {\n performance2.warnOnce(\"Geolocate control triggered before added to a map\");\n return false;\n }\n if (this.options.trackUserLocation) {\n switch (this._watchState) {\n case \"OFF\":\n this._watchState = \"WAITING_ACTIVE\";\n this.fire(new performance2.Event(\"trackuserlocationstart\"));\n break;\n case \"WAITING_ACTIVE\":\n case \"ACTIVE_LOCK\":\n case \"ACTIVE_ERROR\":\n case \"BACKGROUND_ERROR\":\n numberOfWatches--;\n noTimeout = false;\n this._watchState = \"OFF\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\");\n this.fire(new performance2.Event(\"trackuserlocationend\"));\n break;\n case \"BACKGROUND\":\n this._watchState = \"ACTIVE_LOCK\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\");\n if (this._lastKnownPosition) {\n this._updateCamera(this._lastKnownPosition);\n }\n this.fire(new performance2.Event(\"trackuserlocationstart\"));\n break;\n }\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");\n break;\n case \"ACTIVE_LOCK\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");\n break;\n case \"ACTIVE_ERROR\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");\n break;\n case \"BACKGROUND\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");\n break;\n case \"BACKGROUND_ERROR\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background-error\");\n break;\n }\n if (this._watchState === \"OFF\" && this._geolocationWatchID !== void 0) {\n this._clearWatch();\n } else if (this._geolocationWatchID === void 0) {\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.setAttribute(\"aria-pressed\", \"true\");\n numberOfWatches++;\n var positionOptions;\n if (numberOfWatches > 1) {\n positionOptions = {\n maximumAge: 6e5,\n timeout: 0\n };\n noTimeout = true;\n } else {\n positionOptions = this.options.positionOptions;\n noTimeout = false;\n }\n this._geolocationWatchID = performance2.window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, positionOptions);\n }\n } else {\n performance2.window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions);\n this._timeoutId = setTimeout(this._finish, 1e4);\n }\n return true;\n };\n GeolocateControl2.prototype._clearWatch = function _clearWatch() {\n performance2.window.navigator.geolocation.clearWatch(this._geolocationWatchID);\n this._geolocationWatchID = void 0;\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.setAttribute(\"aria-pressed\", \"false\");\n if (this.options.showUserLocation) {\n this._updateMarker(null);\n }\n };\n return GeolocateControl2;\n }(performance2.Evented);\n var defaultOptions$4 = {\n maxWidth: 100,\n unit: \"metric\"\n };\n var ScaleControl = function ScaleControl2(options) {\n this.options = performance2.extend({}, defaultOptions$4, options);\n performance2.bindAll([\n \"_onMove\",\n \"setUnit\"\n ], this);\n };\n ScaleControl.prototype.getDefaultPosition = function getDefaultPosition() {\n return \"bottom-left\";\n };\n ScaleControl.prototype._onMove = function _onMove() {\n updateScale(this._map, this._container, this.options);\n };\n ScaleControl.prototype.onAdd = function onAdd(map) {\n this._map = map;\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-scale\", map.getContainer());\n this._map.on(\"move\", this._onMove);\n this._onMove();\n return this._container;\n };\n ScaleControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._container);\n this._map.off(\"move\", this._onMove);\n this._map = void 0;\n };\n ScaleControl.prototype.setUnit = function setUnit(unit) {\n this.options.unit = unit;\n updateScale(this._map, this._container, this.options);\n };\n function updateScale(map, container, options) {\n var maxWidth = options && options.maxWidth || 100;\n var y = map._container.clientHeight / 2;\n var left = map.unproject([\n 0,\n y\n ]);\n var right = map.unproject([\n maxWidth,\n y\n ]);\n var maxMeters = left.distanceTo(right);\n if (options && options.unit === \"imperial\") {\n var maxFeet = 3.2808 * maxMeters;\n if (maxFeet > 5280) {\n var maxMiles = maxFeet / 5280;\n setScale(container, maxWidth, maxMiles, map._getUIString(\"ScaleControl.Miles\"));\n } else {\n setScale(container, maxWidth, maxFeet, map._getUIString(\"ScaleControl.Feet\"));\n }\n } else if (options && options.unit === \"nautical\") {\n var maxNauticals = maxMeters / 1852;\n setScale(container, maxWidth, maxNauticals, map._getUIString(\"ScaleControl.NauticalMiles\"));\n } else if (maxMeters >= 1e3) {\n setScale(container, maxWidth, maxMeters / 1e3, map._getUIString(\"ScaleControl.Kilometers\"));\n } else {\n setScale(container, maxWidth, maxMeters, map._getUIString(\"ScaleControl.Meters\"));\n }\n }\n function setScale(container, maxWidth, maxDistance, unit) {\n var distance = getRoundNum(maxDistance);\n var ratio = distance / maxDistance;\n container.style.width = maxWidth * ratio + \"px\";\n container.innerHTML = distance + \" \" + unit;\n }\n function getDecimalRoundNum(d) {\n var multiplier = Math.pow(10, Math.ceil(-Math.log(d) / Math.LN10));\n return Math.round(d * multiplier) / multiplier;\n }\n function getRoundNum(num) {\n var pow10 = Math.pow(10, (\"\" + Math.floor(num)).length - 1);\n var d = num / pow10;\n d = d >= 10 ? 10 : d >= 5 ? 5 : d >= 3 ? 3 : d >= 2 ? 2 : d >= 1 ? 1 : getDecimalRoundNum(d);\n return pow10 * d;\n }\n var FullscreenControl = function FullscreenControl2(options) {\n this._fullscreen = false;\n if (options && options.container) {\n if (options.container instanceof performance2.window.HTMLElement) {\n this._container = options.container;\n } else {\n performance2.warnOnce(\"Full screen control 'container' must be a DOM element.\");\n }\n }\n performance2.bindAll([\n \"_onClickFullscreen\",\n \"_changeIcon\"\n ], this);\n if (\"onfullscreenchange\" in performance2.window.document) {\n this._fullscreenchange = \"fullscreenchange\";\n } else if (\"onmozfullscreenchange\" in performance2.window.document) {\n this._fullscreenchange = \"mozfullscreenchange\";\n } else if (\"onwebkitfullscreenchange\" in performance2.window.document) {\n this._fullscreenchange = \"webkitfullscreenchange\";\n } else if (\"onmsfullscreenchange\" in performance2.window.document) {\n this._fullscreenchange = \"MSFullscreenChange\";\n }\n };\n FullscreenControl.prototype.onAdd = function onAdd(map) {\n this._map = map;\n if (!this._container) {\n this._container = this._map.getContainer();\n }\n this._controlContainer = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-group\");\n if (this._checkFullscreenSupport()) {\n this._setupUI();\n } else {\n this._controlContainer.style.display = \"none\";\n performance2.warnOnce(\"This device does not support fullscreen mode.\");\n }\n return this._controlContainer;\n };\n FullscreenControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._controlContainer);\n this._map = null;\n performance2.window.document.removeEventListener(this._fullscreenchange, this._changeIcon);\n };\n FullscreenControl.prototype._checkFullscreenSupport = function _checkFullscreenSupport() {\n return !!(performance2.window.document.fullscreenEnabled || performance2.window.document.mozFullScreenEnabled || performance2.window.document.msFullscreenEnabled || performance2.window.document.webkitFullscreenEnabled);\n };\n FullscreenControl.prototype._setupUI = function _setupUI() {\n var button = this._fullscreenButton = DOM.create(\"button\", \"mapboxgl-ctrl-fullscreen\", this._controlContainer);\n DOM.create(\"span\", \"mapboxgl-ctrl-icon\", button).setAttribute(\"aria-hidden\", true);\n button.type = \"button\";\n this._updateTitle();\n this._fullscreenButton.addEventListener(\"click\", this._onClickFullscreen);\n performance2.window.document.addEventListener(this._fullscreenchange, this._changeIcon);\n };\n FullscreenControl.prototype._updateTitle = function _updateTitle() {\n var title = this._getTitle();\n this._fullscreenButton.setAttribute(\"aria-label\", title);\n this._fullscreenButton.title = title;\n };\n FullscreenControl.prototype._getTitle = function _getTitle() {\n return this._map._getUIString(this._isFullscreen() ? \"FullscreenControl.Exit\" : \"FullscreenControl.Enter\");\n };\n FullscreenControl.prototype._isFullscreen = function _isFullscreen() {\n return this._fullscreen;\n };\n FullscreenControl.prototype._changeIcon = function _changeIcon() {\n var fullscreenElement = performance2.window.document.fullscreenElement || performance2.window.document.mozFullScreenElement || performance2.window.document.webkitFullscreenElement || performance2.window.document.msFullscreenElement;\n if (fullscreenElement === this._container !== this._fullscreen) {\n this._fullscreen = !this._fullscreen;\n this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-shrink\");\n this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-fullscreen\");\n this._updateTitle();\n }\n };\n FullscreenControl.prototype._onClickFullscreen = function _onClickFullscreen() {\n if (this._isFullscreen()) {\n if (performance2.window.document.exitFullscreen) {\n performance2.window.document.exitFullscreen();\n } else if (performance2.window.document.mozCancelFullScreen) {\n performance2.window.document.mozCancelFullScreen();\n } else if (performance2.window.document.msExitFullscreen) {\n performance2.window.document.msExitFullscreen();\n } else if (performance2.window.document.webkitCancelFullScreen) {\n performance2.window.document.webkitCancelFullScreen();\n }\n } else if (this._container.requestFullscreen) {\n this._container.requestFullscreen();\n } else if (this._container.mozRequestFullScreen) {\n this._container.mozRequestFullScreen();\n } else if (this._container.msRequestFullscreen) {\n this._container.msRequestFullscreen();\n } else if (this._container.webkitRequestFullscreen) {\n this._container.webkitRequestFullscreen();\n }\n };\n var defaultOptions$5 = {\n closeButton: true,\n closeOnClick: true,\n focusAfterOpen: true,\n className: \"\",\n maxWidth: \"240px\"\n };\n var focusQuerySelector = [\n \"a[href]\",\n \"[tabindex]:not([tabindex='-1'])\",\n \"[contenteditable]:not([contenteditable='false'])\",\n \"button:not([disabled])\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\"\n ].join(\", \");\n var Popup = function(Evented) {\n function Popup2(options) {\n Evented.call(this);\n this.options = performance2.extend(Object.create(defaultOptions$5), options);\n performance2.bindAll([\n \"_update\",\n \"_onClose\",\n \"remove\",\n \"_onMouseMove\",\n \"_onMouseUp\",\n \"_onDrag\"\n ], this);\n }\n if (Evented)\n Popup2.__proto__ = Evented;\n Popup2.prototype = Object.create(Evented && Evented.prototype);\n Popup2.prototype.constructor = Popup2;\n Popup2.prototype.addTo = function addTo(map) {\n if (this._map) {\n this.remove();\n }\n this._map = map;\n if (this.options.closeOnClick) {\n this._map.on(\"click\", this._onClose);\n }\n if (this.options.closeOnMove) {\n this._map.on(\"move\", this._onClose);\n }\n this._map.on(\"remove\", this.remove);\n this._update();\n this._focusFirstElement();\n if (this._trackPointer) {\n this._map.on(\"mousemove\", this._onMouseMove);\n this._map.on(\"mouseup\", this._onMouseUp);\n if (this._container) {\n this._container.classList.add(\"mapboxgl-popup-track-pointer\");\n }\n this._map._canvasContainer.classList.add(\"mapboxgl-track-pointer\");\n } else {\n this._map.on(\"move\", this._update);\n }\n this.fire(new performance2.Event(\"open\"));\n return this;\n };\n Popup2.prototype.isOpen = function isOpen() {\n return !!this._map;\n };\n Popup2.prototype.remove = function remove() {\n if (this._content) {\n DOM.remove(this._content);\n }\n if (this._container) {\n DOM.remove(this._container);\n delete this._container;\n }\n if (this._map) {\n this._map.off(\"move\", this._update);\n this._map.off(\"move\", this._onClose);\n this._map.off(\"click\", this._onClose);\n this._map.off(\"remove\", this.remove);\n this._map.off(\"mousemove\", this._onMouseMove);\n this._map.off(\"mouseup\", this._onMouseUp);\n this._map.off(\"drag\", this._onDrag);\n delete this._map;\n }\n this.fire(new performance2.Event(\"close\"));\n return this;\n };\n Popup2.prototype.getLngLat = function getLngLat() {\n return this._lngLat;\n };\n Popup2.prototype.setLngLat = function setLngLat(lnglat) {\n this._lngLat = performance2.LngLat.convert(lnglat);\n this._pos = null;\n this._trackPointer = false;\n this._update();\n if (this._map) {\n this._map.on(\"move\", this._update);\n this._map.off(\"mousemove\", this._onMouseMove);\n if (this._container) {\n this._container.classList.remove(\"mapboxgl-popup-track-pointer\");\n }\n this._map._canvasContainer.classList.remove(\"mapboxgl-track-pointer\");\n }\n return this;\n };\n Popup2.prototype.trackPointer = function trackPointer() {\n this._trackPointer = true;\n this._pos = null;\n this._update();\n if (this._map) {\n this._map.off(\"move\", this._update);\n this._map.on(\"mousemove\", this._onMouseMove);\n this._map.on(\"drag\", this._onDrag);\n if (this._container) {\n this._container.classList.add(\"mapboxgl-popup-track-pointer\");\n }\n this._map._canvasContainer.classList.add(\"mapboxgl-track-pointer\");\n }\n return this;\n };\n Popup2.prototype.getElement = function getElement() {\n return this._container;\n };\n Popup2.prototype.setText = function setText(text) {\n return this.setDOMContent(performance2.window.document.createTextNode(text));\n };\n Popup2.prototype.setHTML = function setHTML(html) {\n var frag = performance2.window.document.createDocumentFragment();\n var temp = performance2.window.document.createElement(\"body\");\n var child;\n temp.innerHTML = html;\n while (true) {\n child = temp.firstChild;\n if (!child) {\n break;\n }\n frag.appendChild(child);\n }\n return this.setDOMContent(frag);\n };\n Popup2.prototype.getMaxWidth = function getMaxWidth() {\n return this._container && this._container.style.maxWidth;\n };\n Popup2.prototype.setMaxWidth = function setMaxWidth(maxWidth) {\n this.options.maxWidth = maxWidth;\n this._update();\n return this;\n };\n Popup2.prototype.setDOMContent = function setDOMContent(htmlNode) {\n if (this._content) {\n while (this._content.hasChildNodes()) {\n if (this._content.firstChild) {\n this._content.removeChild(this._content.firstChild);\n }\n }\n } else {\n this._content = DOM.create(\"div\", \"mapboxgl-popup-content\", this._container);\n }\n this._content.appendChild(htmlNode);\n this._createCloseButton();\n this._update();\n this._focusFirstElement();\n return this;\n };\n Popup2.prototype.addClassName = function addClassName(className) {\n if (this._container) {\n this._container.classList.add(className);\n }\n };\n Popup2.prototype.removeClassName = function removeClassName(className) {\n if (this._container) {\n this._container.classList.remove(className);\n }\n };\n Popup2.prototype.setOffset = function setOffset(offset) {\n this.options.offset = offset;\n this._update();\n return this;\n };\n Popup2.prototype.toggleClassName = function toggleClassName(className) {\n if (this._container) {\n return this._container.classList.toggle(className);\n }\n };\n Popup2.prototype._createCloseButton = function _createCloseButton() {\n if (this.options.closeButton) {\n this._closeButton = DOM.create(\"button\", \"mapboxgl-popup-close-button\", this._content);\n this._closeButton.type = \"button\";\n this._closeButton.setAttribute(\"aria-label\", \"Close popup\");\n this._closeButton.innerHTML = \"×\";\n this._closeButton.addEventListener(\"click\", this._onClose);\n }\n };\n Popup2.prototype._onMouseUp = function _onMouseUp(event) {\n this._update(event.point);\n };\n Popup2.prototype._onMouseMove = function _onMouseMove(event) {\n this._update(event.point);\n };\n Popup2.prototype._onDrag = function _onDrag(event) {\n this._update(event.point);\n };\n Popup2.prototype._update = function _update(cursor) {\n var this$1 = this;\n var hasPosition = this._lngLat || this._trackPointer;\n if (!this._map || !hasPosition || !this._content) {\n return;\n }\n if (!this._container) {\n this._container = DOM.create(\"div\", \"mapboxgl-popup\", this._map.getContainer());\n this._tip = DOM.create(\"div\", \"mapboxgl-popup-tip\", this._container);\n this._container.appendChild(this._content);\n if (this.options.className) {\n this.options.className.split(\" \").forEach(function(name2) {\n return this$1._container.classList.add(name2);\n });\n }\n if (this._trackPointer) {\n this._container.classList.add(\"mapboxgl-popup-track-pointer\");\n }\n }\n if (this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth) {\n this._container.style.maxWidth = this.options.maxWidth;\n }\n if (this._map.transform.renderWorldCopies && !this._trackPointer) {\n this._lngLat = smartWrap(this._lngLat, this._pos, this._map.transform);\n }\n if (this._trackPointer && !cursor) {\n return;\n }\n var pos = this._pos = this._trackPointer && cursor ? cursor : this._map.project(this._lngLat);\n var anchor = this.options.anchor;\n var offset = normalizeOffset(this.options.offset);\n if (!anchor) {\n var width = this._container.offsetWidth;\n var height = this._container.offsetHeight;\n var anchorComponents;\n if (pos.y + offset.bottom.y < height) {\n anchorComponents = [\"top\"];\n } else if (pos.y > this._map.transform.height - height) {\n anchorComponents = [\"bottom\"];\n } else {\n anchorComponents = [];\n }\n if (pos.x < width / 2) {\n anchorComponents.push(\"left\");\n } else if (pos.x > this._map.transform.width - width / 2) {\n anchorComponents.push(\"right\");\n }\n if (anchorComponents.length === 0) {\n anchor = \"bottom\";\n } else {\n anchor = anchorComponents.join(\"-\");\n }\n }\n var offsetedPos = pos.add(offset[anchor]).round();\n DOM.setTransform(this._container, anchorTranslate[anchor] + \" translate(\" + offsetedPos.x + \"px,\" + offsetedPos.y + \"px)\");\n applyAnchorClass(this._container, anchor, \"popup\");\n };\n Popup2.prototype._focusFirstElement = function _focusFirstElement() {\n if (!this.options.focusAfterOpen || !this._container) {\n return;\n }\n var firstFocusable = this._container.querySelector(focusQuerySelector);\n if (firstFocusable) {\n firstFocusable.focus();\n }\n };\n Popup2.prototype._onClose = function _onClose() {\n this.remove();\n };\n return Popup2;\n }(performance2.Evented);\n function normalizeOffset(offset) {\n if (!offset) {\n return normalizeOffset(new performance2.Point(0, 0));\n } else if (typeof offset === \"number\") {\n var cornerOffset = Math.round(Math.sqrt(0.5 * Math.pow(offset, 2)));\n return {\n \"center\": new performance2.Point(0, 0),\n \"top\": new performance2.Point(0, offset),\n \"top-left\": new performance2.Point(cornerOffset, cornerOffset),\n \"top-right\": new performance2.Point(-cornerOffset, cornerOffset),\n \"bottom\": new performance2.Point(0, -offset),\n \"bottom-left\": new performance2.Point(cornerOffset, -cornerOffset),\n \"bottom-right\": new performance2.Point(-cornerOffset, -cornerOffset),\n \"left\": new performance2.Point(offset, 0),\n \"right\": new performance2.Point(-offset, 0)\n };\n } else if (offset instanceof performance2.Point || Array.isArray(offset)) {\n var convertedOffset = performance2.Point.convert(offset);\n return {\n \"center\": convertedOffset,\n \"top\": convertedOffset,\n \"top-left\": convertedOffset,\n \"top-right\": convertedOffset,\n \"bottom\": convertedOffset,\n \"bottom-left\": convertedOffset,\n \"bottom-right\": convertedOffset,\n \"left\": convertedOffset,\n \"right\": convertedOffset\n };\n } else {\n return {\n \"center\": performance2.Point.convert(offset[\"center\"] || [\n 0,\n 0\n ]),\n \"top\": performance2.Point.convert(offset[\"top\"] || [\n 0,\n 0\n ]),\n \"top-left\": performance2.Point.convert(offset[\"top-left\"] || [\n 0,\n 0\n ]),\n \"top-right\": performance2.Point.convert(offset[\"top-right\"] || [\n 0,\n 0\n ]),\n \"bottom\": performance2.Point.convert(offset[\"bottom\"] || [\n 0,\n 0\n ]),\n \"bottom-left\": performance2.Point.convert(offset[\"bottom-left\"] || [\n 0,\n 0\n ]),\n \"bottom-right\": performance2.Point.convert(offset[\"bottom-right\"] || [\n 0,\n 0\n ]),\n \"left\": performance2.Point.convert(offset[\"left\"] || [\n 0,\n 0\n ]),\n \"right\": performance2.Point.convert(offset[\"right\"] || [\n 0,\n 0\n ])\n };\n }\n }\n var exported = {\n version: performance2.version,\n supported: mapboxGlSupported,\n setRTLTextPlugin: performance2.setRTLTextPlugin,\n getRTLTextPluginStatus: performance2.getRTLTextPluginStatus,\n Map: Map2,\n NavigationControl,\n GeolocateControl,\n AttributionControl,\n ScaleControl,\n FullscreenControl,\n Popup,\n Marker,\n Style,\n LngLat: performance2.LngLat,\n LngLatBounds: performance2.LngLatBounds,\n Point: performance2.Point,\n MercatorCoordinate: performance2.MercatorCoordinate,\n Evented: performance2.Evented,\n config: performance2.config,\n prewarm,\n clearPrewarmedResources,\n get accessToken() {\n return performance2.config.ACCESS_TOKEN;\n },\n set accessToken(token) {\n performance2.config.ACCESS_TOKEN = token;\n },\n get baseApiUrl() {\n return performance2.config.API_URL;\n },\n set baseApiUrl(url) {\n performance2.config.API_URL = url;\n },\n get workerCount() {\n return WorkerPool.workerCount;\n },\n set workerCount(count) {\n WorkerPool.workerCount = count;\n },\n get maxParallelImageRequests() {\n return performance2.config.MAX_PARALLEL_IMAGE_REQUESTS;\n },\n set maxParallelImageRequests(numRequests) {\n performance2.config.MAX_PARALLEL_IMAGE_REQUESTS = numRequests;\n },\n clearStorage: function clearStorage(callback) {\n performance2.clearTileCache(callback);\n },\n workerUrl: \"\"\n };\n return exported;\n });\n return mapboxgl;\n });\n }\n });\n\n // src/plots/mapbox/layers.js\n var require_layers = __commonJS({\n \"src/plots/mapbox/layers.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var sanitizeHTML = require_svg_text_utils().sanitizeHTML;\n var convertTextOpts = require_convert_text_opts();\n var constants = require_constants25();\n function MapboxLayer(subplot, index) {\n this.subplot = subplot;\n this.uid = subplot.uid + \"-\" + index;\n this.index = index;\n this.idSource = \"source-\" + this.uid;\n this.idLayer = constants.layoutLayerPrefix + this.uid;\n this.sourceType = null;\n this.source = null;\n this.layerType = null;\n this.below = null;\n this.visible = false;\n }\n var proto = MapboxLayer.prototype;\n proto.update = function update(opts) {\n if (!this.visible) {\n this.updateSource(opts);\n this.updateLayer(opts);\n } else if (this.needsNewImage(opts)) {\n this.updateImage(opts);\n } else if (this.needsNewSource(opts)) {\n this.removeLayer();\n this.updateSource(opts);\n this.updateLayer(opts);\n } else if (this.needsNewLayer(opts)) {\n this.updateLayer(opts);\n } else {\n this.updateStyle(opts);\n }\n this.visible = isVisible(opts);\n };\n proto.needsNewImage = function(opts) {\n var map = this.subplot.map;\n return map.getSource(this.idSource) && this.sourceType === \"image\" && opts.sourcetype === \"image\" && (this.source !== opts.source || JSON.stringify(this.coordinates) !== JSON.stringify(opts.coordinates));\n };\n proto.needsNewSource = function(opts) {\n return this.sourceType !== opts.sourcetype || JSON.stringify(this.source) !== JSON.stringify(opts.source) || this.layerType !== opts.type;\n };\n proto.needsNewLayer = function(opts) {\n return this.layerType !== opts.type || this.below !== this.subplot.belowLookup[\"layout-\" + this.index];\n };\n proto.lookupBelow = function() {\n return this.subplot.belowLookup[\"layout-\" + this.index];\n };\n proto.updateImage = function(opts) {\n var map = this.subplot.map;\n map.getSource(this.idSource).updateImage({\n url: opts.source,\n coordinates: opts.coordinates\n });\n var _below = this.findFollowingMapboxLayerId(this.lookupBelow());\n if (_below !== null) {\n this.subplot.map.moveLayer(this.idLayer, _below);\n }\n };\n proto.updateSource = function(opts) {\n var map = this.subplot.map;\n if (map.getSource(this.idSource)) map.removeSource(this.idSource);\n this.sourceType = opts.sourcetype;\n this.source = opts.source;\n if (!isVisible(opts)) return;\n var sourceOpts = convertSourceOpts(opts);\n map.addSource(this.idSource, sourceOpts);\n };\n proto.findFollowingMapboxLayerId = function(below) {\n if (below === \"traces\") {\n var mapLayers = this.subplot.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n var layerId = mapLayers[i].id;\n if (typeof layerId === \"string\" && layerId.indexOf(constants.traceLayerPrefix) === 0) {\n below = layerId;\n break;\n }\n }\n }\n return below;\n };\n proto.updateLayer = function(opts) {\n var subplot = this.subplot;\n var convertedOpts = convertOpts(opts);\n var below = this.lookupBelow();\n var _below = this.findFollowingMapboxLayerId(below);\n this.removeLayer();\n if (isVisible(opts)) {\n subplot.addLayer({\n id: this.idLayer,\n source: this.idSource,\n \"source-layer\": opts.sourcelayer || \"\",\n type: opts.type,\n minzoom: opts.minzoom,\n maxzoom: opts.maxzoom,\n layout: convertedOpts.layout,\n paint: convertedOpts.paint\n }, _below);\n }\n this.layerType = opts.type;\n this.below = below;\n };\n proto.updateStyle = function(opts) {\n if (isVisible(opts)) {\n var convertedOpts = convertOpts(opts);\n this.subplot.setOptions(this.idLayer, \"setLayoutProperty\", convertedOpts.layout);\n this.subplot.setOptions(this.idLayer, \"setPaintProperty\", convertedOpts.paint);\n }\n };\n proto.removeLayer = function() {\n var map = this.subplot.map;\n if (map.getLayer(this.idLayer)) {\n map.removeLayer(this.idLayer);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n if (map.getLayer(this.idLayer)) map.removeLayer(this.idLayer);\n if (map.getSource(this.idSource)) map.removeSource(this.idSource);\n };\n function isVisible(opts) {\n if (!opts.visible) return false;\n var source = opts.source;\n if (Array.isArray(source) && source.length > 0) {\n for (var i = 0; i < source.length; i++) {\n if (typeof source[i] !== \"string\" || source[i].length === 0) {\n return false;\n }\n }\n return true;\n }\n return Lib.isPlainObject(source) || typeof source === \"string\" && source.length > 0;\n }\n function convertOpts(opts) {\n var layout = {};\n var paint = {};\n switch (opts.type) {\n case \"circle\":\n Lib.extendFlat(paint, {\n \"circle-radius\": opts.circle.radius,\n \"circle-color\": opts.color,\n \"circle-opacity\": opts.opacity\n });\n break;\n case \"line\":\n Lib.extendFlat(paint, {\n \"line-width\": opts.line.width,\n \"line-color\": opts.color,\n \"line-opacity\": opts.opacity,\n \"line-dasharray\": opts.line.dash\n });\n break;\n case \"fill\":\n Lib.extendFlat(paint, {\n \"fill-color\": opts.color,\n \"fill-outline-color\": opts.fill.outlinecolor,\n \"fill-opacity\": opts.opacity\n // no way to pass specify outline width at the moment\n });\n break;\n case \"symbol\":\n var symbol = opts.symbol;\n var textOpts = convertTextOpts(symbol.textposition, symbol.iconsize);\n Lib.extendFlat(layout, {\n \"icon-image\": symbol.icon + \"-15\",\n \"icon-size\": symbol.iconsize / 10,\n \"text-field\": symbol.text,\n \"text-size\": symbol.textfont.size,\n \"text-anchor\": textOpts.anchor,\n \"text-offset\": textOpts.offset,\n \"symbol-placement\": symbol.placement\n // TODO font family\n // 'text-font': symbol.textfont.family.split(', '),\n });\n Lib.extendFlat(paint, {\n \"icon-color\": opts.color,\n \"text-color\": symbol.textfont.color,\n \"text-opacity\": opts.opacity\n });\n break;\n case \"raster\":\n Lib.extendFlat(paint, {\n \"raster-fade-duration\": 0,\n \"raster-opacity\": opts.opacity\n });\n break;\n }\n return {\n layout,\n paint\n };\n }\n function convertSourceOpts(opts) {\n var sourceType = opts.sourcetype;\n var source = opts.source;\n var sourceOpts = { type: sourceType };\n var field;\n if (sourceType === \"geojson\") {\n field = \"data\";\n } else if (sourceType === \"vector\") {\n field = typeof source === \"string\" ? \"url\" : \"tiles\";\n } else if (sourceType === \"raster\") {\n field = \"tiles\";\n sourceOpts.tileSize = 256;\n } else if (sourceType === \"image\") {\n field = \"url\";\n sourceOpts.coordinates = opts.coordinates;\n }\n sourceOpts[field] = source;\n if (opts.sourceattribution) {\n sourceOpts.attribution = sanitizeHTML(opts.sourceattribution);\n }\n return sourceOpts;\n }\n module.exports = function createMapboxLayer(subplot, index, opts) {\n var mapboxLayer = new MapboxLayer(subplot, index);\n mapboxLayer.update(opts);\n return mapboxLayer;\n };\n }\n });\n\n // src/plots/mapbox/mapbox.js\n var require_mapbox = __commonJS({\n \"src/plots/mapbox/mapbox.js\"(exports, module) {\n \"use strict\";\n var mapboxgl = require_mapbox_gl_unminified();\n var Lib = require_lib();\n var geoUtils = require_geo_location_utils();\n var Registry = require_registry();\n var Axes = require_axes();\n var dragElement = require_dragelement();\n var Fx = require_fx();\n var dragHelpers = require_helpers5();\n var drawMode = dragHelpers.drawMode;\n var selectMode = dragHelpers.selectMode;\n var prepSelect = require_selections().prepSelect;\n var clearOutline = require_selections().clearOutline;\n var clearSelectionsCache = require_selections().clearSelectionsCache;\n var selectOnClick = require_selections().selectOnClick;\n var constants = require_constants25();\n var createMapboxLayer = require_layers();\n function Mapbox(gd, id) {\n this.id = id;\n this.gd = gd;\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n this.container = fullLayout._glcontainer.node();\n this.isStatic = context.staticPlot;\n this.uid = fullLayout._uid + \"-\" + this.id;\n this.div = null;\n this.xaxis = null;\n this.yaxis = null;\n this.createFramework(fullLayout);\n this.map = null;\n this.accessToken = null;\n this.styleObj = null;\n this.traceHash = {};\n this.layerList = [];\n this.belowLookup = {};\n this.dragging = false;\n this.wheeling = false;\n }\n var proto = Mapbox.prototype;\n proto.plot = function(calcData, fullLayout, promises) {\n var self2 = this;\n var opts = fullLayout[self2.id];\n if (self2.map && opts.accesstoken !== self2.accessToken) {\n self2.map.remove();\n self2.map = null;\n self2.styleObj = null;\n self2.traceHash = {};\n self2.layerList = [];\n }\n var promise;\n if (!self2.map) {\n promise = new Promise(function(resolve, reject) {\n self2.createMap(calcData, fullLayout, resolve, reject);\n });\n } else {\n promise = new Promise(function(resolve, reject) {\n self2.updateMap(calcData, fullLayout, resolve, reject);\n });\n }\n promises.push(promise);\n };\n proto.createMap = function(calcData, fullLayout, resolve, reject) {\n var self2 = this;\n var opts = fullLayout[self2.id];\n var styleObj = self2.styleObj = getStyleObj(opts.style, fullLayout);\n self2.accessToken = opts.accesstoken;\n var bounds = opts.bounds;\n var maxBounds = bounds ? [[bounds.west, bounds.south], [bounds.east, bounds.north]] : null;\n var map = self2.map = new mapboxgl.Map({\n container: self2.div,\n style: styleObj.style,\n center: convertCenter(opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch,\n maxBounds,\n interactive: !self2.isStatic,\n preserveDrawingBuffer: self2.isStatic,\n doubleClickZoom: false,\n boxZoom: false,\n attributionControl: false\n }).addControl(new mapboxgl.AttributionControl({\n compact: true\n }));\n map._canvas.style.left = \"0px\";\n map._canvas.style.top = \"0px\";\n self2.rejectOnError(reject);\n if (!self2.isStatic) {\n self2.initFx(calcData, fullLayout);\n }\n var promises = [];\n promises.push(new Promise(function(resolve2) {\n map.once(\"load\", resolve2);\n }));\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n Promise.all(promises).then(function() {\n self2.fillBelowLookup(calcData, fullLayout);\n self2.updateData(calcData);\n self2.updateLayout(fullLayout);\n self2.resolveOnRender(resolve);\n }).catch(reject);\n };\n proto.updateMap = function(calcData, fullLayout, resolve, reject) {\n var self2 = this;\n var map = self2.map;\n var opts = fullLayout[this.id];\n self2.rejectOnError(reject);\n var promises = [];\n var styleObj = getStyleObj(opts.style, fullLayout);\n if (JSON.stringify(self2.styleObj) !== JSON.stringify(styleObj)) {\n self2.styleObj = styleObj;\n map.setStyle(styleObj.style);\n self2.traceHash = {};\n promises.push(new Promise(function(resolve2) {\n map.once(\"styledata\", resolve2);\n }));\n }\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n Promise.all(promises).then(function() {\n self2.fillBelowLookup(calcData, fullLayout);\n self2.updateData(calcData);\n self2.updateLayout(fullLayout);\n self2.resolveOnRender(resolve);\n }).catch(reject);\n };\n proto.fillBelowLookup = function(calcData, fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var i, val;\n var belowLookup = this.belowLookup = {};\n var hasTraceAtTop = false;\n for (i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var _module = trace._module;\n if (typeof trace.below === \"string\") {\n val = trace.below;\n } else if (_module.getBelow) {\n val = _module.getBelow(trace, this);\n }\n if (val === \"\") {\n hasTraceAtTop = true;\n }\n belowLookup[\"trace-\" + trace.uid] = val || \"\";\n }\n for (i = 0; i < layers.length; i++) {\n var item = layers[i];\n if (typeof item.below === \"string\") {\n val = item.below;\n } else if (hasTraceAtTop) {\n val = \"traces\";\n } else {\n val = \"\";\n }\n belowLookup[\"layout-\" + i] = val;\n }\n var val2list = {};\n var k, id;\n for (k in belowLookup) {\n val = belowLookup[k];\n if (val2list[val]) {\n val2list[val].push(k);\n } else {\n val2list[val] = [k];\n }\n }\n for (val in val2list) {\n var list = val2list[val];\n if (list.length > 1) {\n for (i = 0; i < list.length; i++) {\n k = list[i];\n if (k.indexOf(\"trace-\") === 0) {\n id = k.split(\"trace-\")[1];\n if (this.traceHash[id]) {\n this.traceHash[id].below = null;\n }\n } else if (k.indexOf(\"layout-\") === 0) {\n id = k.split(\"layout-\")[1];\n if (this.layerList[id]) {\n this.layerList[id].below = null;\n }\n }\n }\n }\n }\n };\n var traceType2orderIndex = {\n choroplethmapbox: 0,\n densitymapbox: 1,\n scattermapbox: 2\n };\n proto.updateData = function(calcData) {\n var traceHash = this.traceHash;\n var traceObj, trace, i, j;\n var calcDataSorted = calcData.slice().sort(function(a, b) {\n return traceType2orderIndex[a[0].trace.type] - traceType2orderIndex[b[0].trace.type];\n });\n for (i = 0; i < calcDataSorted.length; i++) {\n var calcTrace = calcDataSorted[i];\n trace = calcTrace[0].trace;\n traceObj = traceHash[trace.uid];\n var didUpdate = false;\n if (traceObj) {\n if (traceObj.type === trace.type) {\n traceObj.update(calcTrace);\n didUpdate = true;\n } else {\n traceObj.dispose();\n }\n }\n if (!didUpdate && trace._module) {\n traceHash[trace.uid] = trace._module.plot(this, calcTrace);\n }\n }\n var ids = Object.keys(traceHash);\n idLoop:\n for (i = 0; i < ids.length; i++) {\n var id = ids[i];\n for (j = 0; j < calcData.length; j++) {\n trace = calcData[j][0].trace;\n if (id === trace.uid) continue idLoop;\n }\n traceObj = traceHash[id];\n traceObj.dispose();\n delete traceHash[id];\n }\n };\n proto.updateLayout = function(fullLayout) {\n var map = this.map;\n var opts = fullLayout[this.id];\n if (!this.dragging && !this.wheeling) {\n map.setCenter(convertCenter(opts.center));\n map.setZoom(opts.zoom);\n map.setBearing(opts.bearing);\n map.setPitch(opts.pitch);\n }\n this.updateLayers(fullLayout);\n this.updateFramework(fullLayout);\n this.updateFx(fullLayout);\n this.map.resize();\n if (this.gd._context._scrollZoom.mapbox) {\n map.scrollZoom.enable();\n } else {\n map.scrollZoom.disable();\n }\n };\n proto.resolveOnRender = function(resolve) {\n var map = this.map;\n map.on(\"render\", function onRender() {\n if (map.loaded()) {\n map.off(\"render\", onRender);\n setTimeout(resolve, 10);\n }\n });\n };\n proto.rejectOnError = function(reject) {\n var map = this.map;\n function handler() {\n reject(new Error(constants.mapOnErrorMsg));\n }\n map.once(\"error\", handler);\n map.once(\"style.error\", handler);\n map.once(\"source.error\", handler);\n map.once(\"tile.error\", handler);\n map.once(\"layer.error\", handler);\n };\n proto.createFramework = function(fullLayout) {\n var self2 = this;\n var div = self2.div = document.createElement(\"div\");\n div.id = self2.uid;\n div.style.position = \"absolute\";\n self2.container.appendChild(div);\n self2.xaxis = {\n _id: \"x\",\n c2p: function(v) {\n return self2.project(v).x;\n }\n };\n self2.yaxis = {\n _id: \"y\",\n c2p: function(v) {\n return self2.project(v).y;\n }\n };\n self2.updateFramework(fullLayout);\n self2.mockAxis = {\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n Axes.setConvert(self2.mockAxis, fullLayout);\n };\n proto.initFx = function(calcData, fullLayout) {\n var self2 = this;\n var gd = self2.gd;\n var map = self2.map;\n map.on(\"moveend\", function(evt) {\n if (!self2.map) return;\n var fullLayoutNow = gd._fullLayout;\n if (evt.originalEvent || self2.wheeling) {\n var optsNow = fullLayoutNow[self2.id];\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, fullLayoutNow._preGUI, self2.getViewEdits(optsNow));\n var viewNow = self2.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit(\"plotly_relayout\", self2.getViewEditsWithDerived(viewNow));\n }\n if (evt.originalEvent && evt.originalEvent.type === \"mouseup\") {\n self2.dragging = false;\n } else if (self2.wheeling) {\n self2.wheeling = false;\n }\n if (fullLayoutNow._rehover) {\n fullLayoutNow._rehover();\n }\n });\n map.on(\"wheel\", function() {\n self2.wheeling = true;\n });\n map.on(\"mousemove\", function(evt) {\n var bb = self2.div.getBoundingClientRect();\n var xy = [\n evt.originalEvent.offsetX,\n evt.originalEvent.offsetY\n ];\n evt.target.getBoundingClientRect = function() {\n return bb;\n };\n self2.xaxis.p2c = function() {\n return map.unproject(xy).lng;\n };\n self2.yaxis.p2c = function() {\n return map.unproject(xy).lat;\n };\n gd._fullLayout._rehover = function() {\n if (gd._fullLayout._hoversubplot === self2.id && gd._fullLayout[self2.id]) {\n Fx.hover(gd, evt, self2.id);\n }\n };\n Fx.hover(gd, evt, self2.id);\n gd._fullLayout._hoversubplot = self2.id;\n });\n function unhover() {\n Fx.loneUnhover(fullLayout._hoverlayer);\n }\n map.on(\"dragstart\", function() {\n self2.dragging = true;\n unhover();\n });\n map.on(\"zoomstart\", unhover);\n map.on(\"mouseout\", function() {\n gd._fullLayout._hoversubplot = null;\n });\n function emitUpdate() {\n var viewNow = self2.getView();\n gd.emit(\"plotly_relayouting\", self2.getViewEditsWithDerived(viewNow));\n }\n map.on(\"drag\", emitUpdate);\n map.on(\"zoom\", emitUpdate);\n map.on(\"dblclick\", function() {\n var optsNow = gd._fullLayout[self2.id];\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, gd._fullLayout._preGUI, self2.getViewEdits(optsNow));\n var viewInitial = self2.viewInitial;\n map.setCenter(convertCenter(viewInitial.center));\n map.setZoom(viewInitial.zoom);\n map.setBearing(viewInitial.bearing);\n map.setPitch(viewInitial.pitch);\n var viewNow = self2.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit(\"plotly_doubleclick\", null);\n gd.emit(\"plotly_relayout\", self2.getViewEditsWithDerived(viewNow));\n });\n self2.clearOutline = function() {\n clearSelectionsCache(self2.dragOptions);\n clearOutline(self2.dragOptions.gd);\n };\n self2.onClickInPanFn = function(dragOptions) {\n return function(evt) {\n var clickMode = gd._fullLayout.clickmode;\n if (clickMode.indexOf(\"select\") > -1) {\n selectOnClick(evt.originalEvent, gd, [self2.xaxis], [self2.yaxis], self2.id, dragOptions);\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, evt.originalEvent);\n }\n };\n };\n };\n proto.updateFx = function(fullLayout) {\n var self2 = this;\n var map = self2.map;\n var gd = self2.gd;\n if (self2.isStatic) return;\n function invert(pxpy) {\n var obj = self2.map.unproject(pxpy);\n return [obj.lng, obj.lat];\n }\n var dragMode = fullLayout.dragmode;\n var fillRangeItems;\n fillRangeItems = function(eventData, poly) {\n if (poly.isRect) {\n var ranges = eventData.range = {};\n ranges[self2.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n } else {\n var dataPts = eventData.lassoPoints = {};\n dataPts[self2.id] = poly.map(invert);\n }\n };\n var oldDragOptions = self2.dragOptions;\n self2.dragOptions = Lib.extendDeep(oldDragOptions || {}, {\n dragmode: fullLayout.dragmode,\n element: self2.div,\n gd,\n plotinfo: {\n id: self2.id,\n domain: fullLayout[self2.id].domain,\n xaxis: self2.xaxis,\n yaxis: self2.yaxis,\n fillRangeItems\n },\n xaxes: [self2.xaxis],\n yaxes: [self2.yaxis],\n subplot: self2.id\n });\n map.off(\"click\", self2.onClickInPanHandler);\n if (selectMode(dragMode) || drawMode(dragMode)) {\n map.dragPan.disable();\n map.on(\"zoomstart\", self2.clearOutline);\n self2.dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, self2.dragOptions, dragMode);\n };\n dragElement.init(self2.dragOptions);\n } else {\n map.dragPan.enable();\n map.off(\"zoomstart\", self2.clearOutline);\n self2.div.onmousedown = null;\n self2.div.ontouchstart = null;\n self2.div.removeEventListener(\"touchstart\", self2.div._ontouchstart);\n self2.onClickInPanHandler = self2.onClickInPanFn(self2.dragOptions);\n map.on(\"click\", self2.onClickInPanHandler);\n }\n };\n proto.updateFramework = function(fullLayout) {\n var domain = fullLayout[this.id].domain;\n var size = fullLayout._size;\n var style = this.div.style;\n style.width = size.w * (domain.x[1] - domain.x[0]) + \"px\";\n style.height = size.h * (domain.y[1] - domain.y[0]) + \"px\";\n style.left = size.l + domain.x[0] * size.w + \"px\";\n style.top = size.t + (1 - domain.y[1]) * size.h + \"px\";\n this.xaxis._offset = size.l + domain.x[0] * size.w;\n this.xaxis._length = size.w * (domain.x[1] - domain.x[0]);\n this.yaxis._offset = size.t + (1 - domain.y[1]) * size.h;\n this.yaxis._length = size.h * (domain.y[1] - domain.y[0]);\n };\n proto.updateLayers = function(fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var layerList = this.layerList;\n var i;\n if (layers.length !== layerList.length) {\n for (i = 0; i < layerList.length; i++) {\n layerList[i].dispose();\n }\n layerList = this.layerList = [];\n for (i = 0; i < layers.length; i++) {\n layerList.push(createMapboxLayer(this, i, layers[i]));\n }\n } else {\n for (i = 0; i < layers.length; i++) {\n layerList[i].update(layers[i]);\n }\n }\n };\n proto.destroy = function() {\n if (this.map) {\n this.map.remove();\n this.map = null;\n this.container.removeChild(this.div);\n }\n };\n proto.toImage = function() {\n this.map.stop();\n return this.map.getCanvas().toDataURL();\n };\n proto.setOptions = function(id, methodName, opts) {\n for (var k in opts) {\n this.map[methodName](id, k, opts[k]);\n }\n };\n proto.getMapLayers = function() {\n return this.map.getStyle().layers;\n };\n proto.addLayer = function(opts, below) {\n var map = this.map;\n if (typeof below === \"string\") {\n if (below === \"\") {\n map.addLayer(opts, below);\n return;\n }\n var mapLayers = this.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n if (below === mapLayers[i].id) {\n map.addLayer(opts, below);\n return;\n }\n }\n Lib.warn([\n \"Trying to add layer with *below* value\",\n below,\n \"referencing a layer that does not exist\",\n \"or that does not yet exist.\"\n ].join(\" \"));\n }\n map.addLayer(opts);\n };\n proto.project = function(v) {\n return this.map.project(new mapboxgl.LngLat(v[0], v[1]));\n };\n proto.getView = function() {\n var map = this.map;\n var mapCenter = map.getCenter();\n var lon = mapCenter.lng;\n var lat = mapCenter.lat;\n var center = { lon, lat };\n var canvas = map.getCanvas();\n var w = parseInt(canvas.style.width);\n var h = parseInt(canvas.style.height);\n return {\n center,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n _derived: {\n coordinates: [\n map.unproject([0, 0]).toArray(),\n map.unproject([w, 0]).toArray(),\n map.unproject([w, h]).toArray(),\n map.unproject([0, h]).toArray()\n ]\n }\n };\n };\n proto.getViewEdits = function(cont) {\n var id = this.id;\n var keys = [\"center\", \"zoom\", \"bearing\", \"pitch\"];\n var obj = {};\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n obj[id + \".\" + k] = cont[k];\n }\n return obj;\n };\n proto.getViewEditsWithDerived = function(cont) {\n var id = this.id;\n var obj = this.getViewEdits(cont);\n obj[id + \"._derived\"] = cont._derived;\n return obj;\n };\n function getStyleObj(val, fullLayout) {\n var styleObj = {};\n if (Lib.isPlainObject(val)) {\n styleObj.id = val.id;\n styleObj.style = val;\n } else if (typeof val === \"string\") {\n styleObj.id = val;\n if (constants.styleValuesMapbox.indexOf(val) !== -1) {\n styleObj.style = convertStyleVal(val);\n } else if (constants.stylesNonMapbox[val]) {\n styleObj.style = constants.stylesNonMapbox[val];\n var spec = styleObj.style.sources[\"plotly-\" + val];\n var tiles = spec ? spec.tiles : void 0;\n if (tiles && tiles[0] && tiles[0].slice(-9) === \"?api_key=\") {\n tiles[0] += fullLayout._mapboxAccessToken;\n }\n } else {\n styleObj.style = val;\n }\n } else {\n styleObj.id = constants.styleValueDflt;\n styleObj.style = convertStyleVal(constants.styleValueDflt);\n }\n styleObj.transition = { duration: 0, delay: 0 };\n return styleObj;\n }\n function convertStyleVal(val) {\n return constants.styleUrlPrefix + val + \"-\" + constants.styleUrlSuffix;\n }\n function convertCenter(center) {\n return [center.lon, center.lat];\n }\n module.exports = Mapbox;\n }\n });\n\n // src/plots/mapbox/layout_defaults.js\n var require_layout_defaults17 = __commonJS({\n \"src/plots/mapbox/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSubplotDefaults = require_subplot_defaults();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var layoutAttributes = require_layout_attributes19();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: \"mapbox\",\n attributes: layoutAttributes,\n handleDefaults,\n partition: \"y\",\n accessToken: layoutOut._mapboxAccessToken\n });\n };\n function handleDefaults(containerIn, containerOut, coerce, opts) {\n coerce(\"accesstoken\", opts.accessToken);\n coerce(\"style\");\n coerce(\"center.lon\");\n coerce(\"center.lat\");\n coerce(\"zoom\");\n coerce(\"bearing\");\n coerce(\"pitch\");\n var west = coerce(\"bounds.west\");\n var east = coerce(\"bounds.east\");\n var south = coerce(\"bounds.south\");\n var north = coerce(\"bounds.north\");\n if (west === void 0 || east === void 0 || south === void 0 || north === void 0) {\n delete containerOut.bounds;\n }\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: \"layers\",\n handleItemDefaults: handleLayerDefaults\n });\n containerOut._input = containerIn;\n }\n function handleLayerDefaults(layerIn, layerOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layerIn, layerOut, layoutAttributes.layers, attr, dflt);\n }\n var visible = coerce(\"visible\");\n if (visible) {\n var sourceType = coerce(\"sourcetype\");\n var mustBeRasterLayer = sourceType === \"raster\" || sourceType === \"image\";\n coerce(\"source\");\n coerce(\"sourceattribution\");\n if (sourceType === \"vector\") {\n coerce(\"sourcelayer\");\n }\n if (sourceType === \"image\") {\n coerce(\"coordinates\");\n }\n var typeDflt;\n if (mustBeRasterLayer) typeDflt = \"raster\";\n var type = coerce(\"type\", typeDflt);\n if (mustBeRasterLayer && type !== \"raster\") {\n type = layerOut.type = \"raster\";\n Lib.log(\"Source types *raster* and *image* must drawn *raster* layer type.\");\n }\n coerce(\"below\");\n coerce(\"color\");\n coerce(\"opacity\");\n coerce(\"minzoom\");\n coerce(\"maxzoom\");\n if (type === \"circle\") {\n coerce(\"circle.radius\");\n }\n if (type === \"line\") {\n coerce(\"line.width\");\n coerce(\"line.dash\");\n }\n if (type === \"fill\") {\n coerce(\"fill.outlinecolor\");\n }\n if (type === \"symbol\") {\n coerce(\"symbol.icon\");\n coerce(\"symbol.iconsize\");\n coerce(\"symbol.text\");\n Lib.coerceFont(coerce, \"symbol.textfont\", void 0, {\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n coerce(\"symbol.textposition\");\n coerce(\"symbol.placement\");\n }\n }\n }\n }\n });\n\n // src/plots/mapbox/index.js\n var require_mapbox2 = __commonJS({\n \"src/plots/mapbox/index.js\"(exports) {\n \"use strict\";\n var mapboxgl = require_mapbox_gl_unminified();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var strScale = Lib.strScale;\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var d3 = require_d3();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var Mapbox = require_mapbox();\n var MAPBOX = \"mapbox\";\n var constants = exports.constants = require_constants25();\n exports.name = MAPBOX;\n exports.attr = \"subplot\";\n exports.idRoot = MAPBOX;\n exports.idRegex = exports.attrRegex = Lib.counterRegex(MAPBOX);\n var deprecationWarning = [\n \"mapbox subplots and traces are deprecated!\",\n \"Please consider switching to `map` subplots and traces.\",\n \"Learn more at: https://plotly.com/python/maplibre-migration/\",\n \"as well as https://plotly.com/javascript/maplibre-migration/\"\n ].join(\" \");\n exports.attributes = {\n subplot: {\n valType: \"subplotid\",\n dflt: \"mapbox\",\n editType: \"calc\"\n }\n };\n exports.layoutAttributes = require_layout_attributes19();\n exports.supplyLayoutDefaults = require_layout_defaults17();\n var firstPlot = true;\n exports.plot = function plot(gd) {\n if (firstPlot) {\n firstPlot = false;\n Lib.warn(deprecationWarning);\n }\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var mapboxIds = fullLayout._subplots[MAPBOX];\n if (mapboxgl.version !== constants.requiredVersion) {\n throw new Error(constants.wrongVersionErrorMsg);\n }\n var accessToken = findAccessToken(gd, mapboxIds);\n mapboxgl.accessToken = accessToken;\n for (var i = 0; i < mapboxIds.length; i++) {\n var id = mapboxIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, MAPBOX, id);\n var opts = fullLayout[id];\n var mapbox = opts._subplot;\n if (!mapbox) {\n mapbox = new Mapbox(gd, id);\n fullLayout[id]._subplot = mapbox;\n }\n if (!mapbox.viewInitial) {\n mapbox.viewInitial = {\n center: Lib.extendFlat({}, opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch\n };\n }\n mapbox.plot(subplotCalcData, fullLayout, gd._promises);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldMapboxKeys = oldFullLayout._subplots[MAPBOX] || [];\n for (var i = 0; i < oldMapboxKeys.length; i++) {\n var oldMapboxKey = oldMapboxKeys[i];\n if (!newFullLayout[oldMapboxKey] && !!oldFullLayout[oldMapboxKey]._subplot) {\n oldFullLayout[oldMapboxKey]._subplot.destroy();\n }\n }\n };\n exports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n var size = fullLayout._size;\n for (var i = 0; i < subplotIds.length; i++) {\n var opts = fullLayout[subplotIds[i]];\n var domain = opts.domain;\n var mapbox = opts._subplot;\n var imageData = mapbox.toImage(\"png\");\n var image = fullLayout._glimages.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: \"none\"\n });\n var subplotDiv = d3.select(opts._subplot.div);\n var hidden = subplotDiv.select(\".mapboxgl-ctrl-logo\").node().offsetParent === null;\n if (!hidden) {\n var logo = fullLayout._glimages.append(\"g\");\n logo.attr(\"transform\", strTranslate(size.l + size.w * domain.x[0] + 10, size.t + size.h * (1 - domain.y[0]) - 31));\n logo.append(\"path\").attr(\"d\", constants.mapboxLogo.path0).style({\n opacity: 0.9,\n fill: \"#ffffff\",\n \"enable-background\": \"new\"\n });\n logo.append(\"path\").attr(\"d\", constants.mapboxLogo.path1).style(\"opacity\", 0.35).style(\"enable-background\", \"new\");\n logo.append(\"path\").attr(\"d\", constants.mapboxLogo.path2).style(\"opacity\", 0.35).style(\"enable-background\", \"new\");\n logo.append(\"polygon\").attr(\"points\", constants.mapboxLogo.polygon).style({\n opacity: 0.9,\n fill: \"#ffffff\",\n \"enable-background\": \"new\"\n });\n }\n var attributions = subplotDiv.select(\".mapboxgl-ctrl-attrib\").text().replace(\"Improve this map\", \"\");\n var attributionGroup = fullLayout._glimages.append(\"g\");\n var attributionText = attributionGroup.append(\"text\");\n attributionText.text(attributions).classed(\"static-attribution\", true).attr({\n \"font-size\": 12,\n \"font-family\": \"Arial\",\n color: \"rgba(0, 0, 0, 0.75)\",\n \"text-anchor\": \"end\",\n \"data-unformatted\": attributions\n });\n var bBox = Drawing.bBox(attributionText.node());\n var maxWidth = size.w * (domain.x[1] - domain.x[0]);\n if (bBox.width > maxWidth / 2) {\n var multilineAttributions = attributions.split(\"|\").join(\"
\");\n attributionText.text(multilineAttributions).attr(\"data-unformatted\", multilineAttributions).call(svgTextUtils.convertToTspans, gd);\n bBox = Drawing.bBox(attributionText.node());\n }\n attributionText.attr(\"transform\", strTranslate(-3, -bBox.height + 8));\n attributionGroup.insert(\"rect\", \".static-attribution\").attr({\n x: -bBox.width - 6,\n y: -bBox.height - 3,\n width: bBox.width + 6,\n height: bBox.height + 3,\n fill: \"rgba(255, 255, 255, 0.75)\"\n });\n var scaleRatio = 1;\n if (bBox.width + 6 > maxWidth) scaleRatio = maxWidth / (bBox.width + 6);\n var offset = [size.l + size.w * domain.x[1], size.t + size.h * (1 - domain.y[0])];\n attributionGroup.attr(\"transform\", strTranslate(offset[0], offset[1]) + strScale(scaleRatio));\n }\n };\n function findAccessToken(gd, mapboxIds) {\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n if (context.mapboxAccessToken === \"\") return \"\";\n var tokensUseful = [];\n var tokensListed = [];\n var hasOneSetMapboxStyle = false;\n var wontWork = false;\n for (var i = 0; i < mapboxIds.length; i++) {\n var opts = fullLayout[mapboxIds[i]];\n var token = opts.accesstoken;\n if (isStyleRequireAccessToken(opts.style)) {\n if (token) {\n Lib.pushUnique(tokensUseful, token);\n } else {\n if (isStyleRequireAccessToken(opts._input.style)) {\n Lib.error(\"Uses Mapbox map style, but did not set an access token.\");\n hasOneSetMapboxStyle = true;\n }\n wontWork = true;\n }\n }\n if (token) {\n Lib.pushUnique(tokensListed, token);\n }\n }\n if (wontWork) {\n var msg = hasOneSetMapboxStyle ? constants.noAccessTokenErrorMsg : constants.missingStyleErrorMsg;\n Lib.error(msg);\n throw new Error(msg);\n }\n if (tokensUseful.length) {\n if (tokensUseful.length > 1) {\n Lib.warn(constants.multipleTokensErrorMsg);\n }\n return tokensUseful[0];\n } else {\n if (tokensListed.length) {\n Lib.log([\n \"Listed mapbox access token(s)\",\n tokensListed.join(\",\"),\n \"but did not use a Mapbox map style, ignoring token(s).\"\n ].join(\" \"));\n }\n return \"\";\n }\n }\n function isStyleRequireAccessToken(s) {\n return typeof s === \"string\" && (constants.styleValuesMapbox.indexOf(s) !== -1 || s.indexOf(\"mapbox://\") === 0 || s.indexOf(\"stamen\") === 0);\n }\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n for (var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._subplot;\n subplotObj.updateFx(fullLayout);\n }\n };\n }\n });\n\n // src/traces/scattermapbox/index.js\n var require_scattermapbox = __commonJS({\n \"src/traces/scattermapbox/index.js\"(exports, module) {\n \"use strict\";\n var deprecationWarning = [\n \"*scattermapbox* trace is deprecated!\",\n \"Please consider switching to the *scattermap* trace type and `map` subplots.\",\n \"Learn more at: https://plotly.com/python/maplibre-migration/\",\n \"as well as https://plotly.com/javascript/maplibre-migration/\"\n ].join(\" \");\n module.exports = {\n attributes: require_attributes54(),\n supplyDefaults: require_defaults50(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels5(),\n calc: require_calc27(),\n plot: require_plot23(),\n hoverPoints: require_hover18().hoverPoints,\n eventData: require_event_data11(),\n selectPoints: require_select9(),\n styleOnSelect: function(_, cd) {\n if (cd) {\n var trace = cd[0].trace;\n trace._glTrace.update(cd);\n }\n },\n moduleType: \"trace\",\n name: \"scattermapbox\",\n basePlotModule: require_mapbox2(),\n categories: [\"mapbox\", \"gl\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scattermapbox.js\n var require_scattermapbox2 = __commonJS({\n \"lib/scattermapbox.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattermapbox();\n }\n });\n\n // src/traces/choroplethmapbox/attributes.js\n var require_attributes55 = __commonJS({\n \"src/traces/choroplethmapbox/attributes.js\"(exports, module) {\n \"use strict\";\n var choroplethAttrs = require_attributes49();\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n locations: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO\n // Maybe start with only one value (that we could name e.g. 'geojson-id'),\n // but eventually:\n // - we could also support for our own dist/topojson/*\n // .. and locationmode: choroplethAttrs.locationmode,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO maybe we could also set a \"key\" to dig out values out of the\n // GeoJSON feature `properties` fields?\n geojson: {\n valType: \"any\",\n editType: \"calc\"\n },\n featureidkey: extendFlat({}, choroplethAttrs.featureidkey, {}),\n // TODO agree on name / behaviour\n //\n // 'below' is used currently for layout.mapbox.layers,\n // even though it's not very plotly-esque.\n //\n // Note also, that the mapbox-gl style don't all have the same layers,\n // see https://codepen.io/etpinard/pen/ydVMwM for full list\n below: {\n valType: \"string\",\n editType: \"plot\"\n },\n text: choroplethAttrs.text,\n hovertext: choroplethAttrs.hovertext,\n marker: {\n line: {\n color: extendFlat({}, choroplethAttrs.marker.line.color, { editType: \"plot\" }),\n width: extendFlat({}, choroplethAttrs.marker.line.width, { editType: \"plot\" }),\n editType: \"calc\"\n },\n // TODO maybe having a dflt less than 1, together with `below:''` would be better?\n opacity: extendFlat({}, choroplethAttrs.marker.opacity, { editType: \"plot\" }),\n editType: \"calc\"\n },\n selected: {\n marker: {\n opacity: extendFlat({}, choroplethAttrs.selected.marker.opacity, { editType: \"plot\" }),\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n unselected: {\n marker: {\n opacity: extendFlat({}, choroplethAttrs.unselected.marker.opacity, { editType: \"plot\" }),\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n hoverinfo: choroplethAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs({}, { keys: [\"properties\"] }),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/choroplethmapbox/defaults.js\n var require_defaults51 = __commonJS({\n \"src/traces/choroplethmapbox/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes55();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var locations = coerce(\"locations\");\n var z = coerce(\"z\");\n var geojson = coerce(\"geojson\");\n if (!Lib.isArrayOrTypedArray(locations) || !locations.length || !Lib.isArrayOrTypedArray(z) || !z.length || !(typeof geojson === \"string\" && geojson !== \"\" || Lib.isPlainObject(geojson))) {\n traceOut.visible = false;\n return;\n }\n coerce(\"featureidkey\");\n traceOut._length = Math.min(locations.length, z.length);\n coerce(\"below\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var mlw = coerce(\"marker.line.width\");\n if (mlw) coerce(\"marker.line.color\");\n coerce(\"marker.opacity\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/choroplethmapbox/convert.js\n var require_convert12 = __commonJS({\n \"src/traces/choroplethmapbox/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Colorscale = require_colorscale();\n var Drawing = require_drawing();\n var makeBlank = require_geojson_utils().makeBlank;\n var geoUtils = require_geo_location_utils();\n function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var fill = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var line = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var opts = trace._opts = {\n fill,\n line,\n geojson: makeBlank()\n };\n if (!isVisible) return opts;\n var features = geoUtils.extractTraceFeature(calcTrace);\n if (!features) return opts;\n var sclFunc = Colorscale.makeColorScaleFuncFromTrace(trace);\n var marker = trace.marker;\n var markerLine = marker.line || {};\n var opacityFn;\n if (Lib.isArrayOrTypedArray(marker.opacity)) {\n opacityFn = function(d) {\n var mo = d.mo;\n return isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0;\n };\n }\n var lineColorFn;\n if (Lib.isArrayOrTypedArray(markerLine.color)) {\n lineColorFn = function(d) {\n return d.mlc;\n };\n }\n var lineWidthFn;\n if (Lib.isArrayOrTypedArray(markerLine.width)) {\n lineWidthFn = function(d) {\n return d.mlw;\n };\n }\n for (var i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var fOut = cdi.fOut;\n if (fOut) {\n var props = fOut.properties;\n props.fc = sclFunc(cdi.z);\n if (opacityFn) props.mo = opacityFn(cdi);\n if (lineColorFn) props.mlc = lineColorFn(cdi);\n if (lineWidthFn) props.mlw = lineWidthFn(cdi);\n cdi.ct = props.ct;\n cdi._polygons = geoUtils.feature2polygons(fOut);\n }\n }\n var opacitySetting = opacityFn ? { type: \"identity\", property: \"mo\" } : marker.opacity;\n Lib.extendFlat(fill.paint, {\n \"fill-color\": { type: \"identity\", property: \"fc\" },\n \"fill-opacity\": opacitySetting\n });\n Lib.extendFlat(line.paint, {\n \"line-color\": lineColorFn ? { type: \"identity\", property: \"mlc\" } : markerLine.color,\n \"line-width\": lineWidthFn ? { type: \"identity\", property: \"mlw\" } : markerLine.width,\n \"line-opacity\": opacitySetting\n });\n fill.layout.visibility = \"visible\";\n line.layout.visibility = \"visible\";\n opts.geojson = { type: \"FeatureCollection\", features };\n convertOnSelect(calcTrace);\n return opts;\n }\n function convertOnSelect(calcTrace) {\n var trace = calcTrace[0].trace;\n var opts = trace._opts;\n var opacitySetting;\n if (trace.selectedpoints) {\n var fns = Drawing.makeSelectedPointStyleFns(trace);\n for (var i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n if (cdi.fOut) {\n cdi.fOut.properties.mo2 = fns.selectedOpacityFn(cdi);\n }\n }\n opacitySetting = { type: \"identity\", property: \"mo2\" };\n } else {\n opacitySetting = Lib.isArrayOrTypedArray(trace.marker.opacity) ? { type: \"identity\", property: \"mo\" } : trace.marker.opacity;\n }\n Lib.extendFlat(opts.fill.paint, { \"fill-opacity\": opacitySetting });\n Lib.extendFlat(opts.line.paint, { \"line-opacity\": opacitySetting });\n return opts;\n }\n module.exports = {\n convert,\n convertOnSelect\n };\n }\n });\n\n // src/traces/choroplethmapbox/plot.js\n var require_plot24 = __commonJS({\n \"src/traces/choroplethmapbox/plot.js\"(exports, module) {\n \"use strict\";\n var convert = require_convert12().convert;\n var convertOnSelect = require_convert12().convertOnSelect;\n var LAYER_PREFIX = require_constants25().traceLayerPrefix;\n function ChoroplethMapbox(subplot, uid) {\n this.type = \"choroplethmapbox\";\n this.subplot = subplot;\n this.uid = uid;\n this.sourceId = \"source-\" + uid;\n this.layerList = [\n [\"fill\", LAYER_PREFIX + uid + \"-fill\"],\n [\"line\", LAYER_PREFIX + uid + \"-line\"]\n ];\n this.below = null;\n }\n var proto = ChoroplethMapbox.prototype;\n proto.update = function(calcTrace) {\n this._update(convert(calcTrace));\n calcTrace[0].trace._glTrace = this;\n };\n proto.updateOnSelect = function(calcTrace) {\n this._update(convertOnSelect(calcTrace));\n };\n proto._update = function(optsAll) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n subplot.map.getSource(this.sourceId).setData(optsAll.geojson);\n if (below !== this.below) {\n this._removeLayers();\n this._addLayers(optsAll, below);\n this.below = below;\n }\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var id = item[1];\n var opts = optsAll[k];\n subplot.setOptions(id, \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n subplot.setOptions(id, \"setPaintProperty\", opts.paint);\n }\n }\n };\n proto._addLayers = function(optsAll, below) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var sourceId = this.sourceId;\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var opts = optsAll[k];\n subplot.addLayer({\n type: k,\n id: item[1],\n source: sourceId,\n layout: opts.layout,\n paint: opts.paint\n }, below);\n }\n };\n proto._removeLayers = function() {\n var map = this.subplot.map;\n var layerList = this.layerList;\n for (var i = layerList.length - 1; i >= 0; i--) {\n map.removeLayer(layerList[i][1]);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n this._removeLayers();\n map.removeSource(this.sourceId);\n };\n module.exports = function createChoroplethMapbox(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var choroplethMapbox = new ChoroplethMapbox(subplot, trace.uid);\n var sourceId = choroplethMapbox.sourceId;\n var optsAll = convert(calcTrace);\n var below = choroplethMapbox.below = subplot.belowLookup[\"trace-\" + trace.uid];\n subplot.map.addSource(sourceId, {\n type: \"geojson\",\n data: optsAll.geojson\n });\n choroplethMapbox._addLayers(optsAll, below);\n calcTrace[0].trace._glTrace = choroplethMapbox;\n return choroplethMapbox;\n };\n }\n });\n\n // src/traces/choroplethmapbox/index.js\n var require_choroplethmapbox = __commonJS({\n \"src/traces/choroplethmapbox/index.js\"(exports, module) {\n \"use strict\";\n var deprecationWarning = [\n \"*choroplethmapbox* trace is deprecated!\",\n \"Please consider switching to the *choroplethmap* trace type and `map` subplots.\",\n \"Learn more at: https://plotly.com/python/maplibre-migration/\",\n \"as well as https://plotly.com/javascript/maplibre-migration/\"\n ].join(\" \");\n module.exports = {\n attributes: require_attributes55(),\n supplyDefaults: require_defaults51(),\n colorbar: require_colorbar2(),\n calc: require_calc28(),\n plot: require_plot24(),\n hoverPoints: require_hover15(),\n eventData: require_event_data10(),\n selectPoints: require_select6(),\n styleOnSelect: function(_, cd) {\n if (cd) {\n var trace = cd[0].trace;\n trace._glTrace.updateOnSelect(cd);\n }\n },\n getBelow: function(trace, subplot) {\n var mapLayers = subplot.getMapLayers();\n for (var i = mapLayers.length - 2; i >= 0; i--) {\n var layerId = mapLayers[i].id;\n if (typeof layerId === \"string\" && layerId.indexOf(\"water\") === 0) {\n for (var j = i + 1; j < mapLayers.length; j++) {\n layerId = mapLayers[j].id;\n if (typeof layerId === \"string\" && layerId.indexOf(\"plotly-\") === -1) {\n return layerId;\n }\n }\n }\n }\n },\n moduleType: \"trace\",\n name: \"choroplethmapbox\",\n basePlotModule: require_mapbox2(),\n categories: [\"mapbox\", \"gl\", \"noOpacity\", \"showLegend\"],\n meta: {\n hr_name: \"choropleth_mapbox\"\n }\n };\n }\n });\n\n // lib/choroplethmapbox.js\n var require_choroplethmapbox2 = __commonJS({\n \"lib/choroplethmapbox.js\"(exports, module) {\n \"use strict\";\n module.exports = require_choroplethmapbox();\n }\n });\n\n // src/traces/densitymapbox/attributes.js\n var require_attributes56 = __commonJS({\n \"src/traces/densitymapbox/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var scatterMapboxAttrs = require_attributes54();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n lon: scatterMapboxAttrs.lon,\n lat: scatterMapboxAttrs.lat,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n radius: {\n valType: \"number\",\n editType: \"plot\",\n arrayOk: true,\n min: 1,\n dflt: 30\n },\n below: {\n valType: \"string\",\n editType: \"plot\"\n },\n text: scatterMapboxAttrs.text,\n hovertext: scatterMapboxAttrs.hovertext,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"z\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/densitymapbox/defaults.js\n var require_defaults52 = __commonJS({\n \"src/traces/densitymapbox/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes56();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n var len = Math.min(lon.length, lat.length);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"z\");\n coerce(\"radius\");\n coerce(\"below\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n };\n }\n });\n\n // src/traces/densitymapbox/calc.js\n var require_calc33 = __commonJS({\n \"src/traces/densitymapbox/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var BADNUM = require_numerical().BADNUM;\n var colorscaleCalc = require_calc();\n var _ = require_lib()._;\n module.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var z = trace.z;\n var hasZ = isArrayOrTypedArray(z) && z.length;\n for (var i = 0; i < len; i++) {\n var cdi = calcTrace[i] = {};\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n cdi.lonlat = isNumeric(lon) && isNumeric(lat) ? [+lon, +lat] : [BADNUM, BADNUM];\n if (hasZ) {\n var zi = z[i];\n cdi.z = isNumeric(zi) ? zi : BADNUM;\n }\n }\n colorscaleCalc(gd, trace, {\n vals: hasZ ? z : [0, 1],\n containerStr: \"\",\n cLetter: \"z\"\n });\n if (len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, \"lat:\") + \" \",\n lon: _(gd, \"lon:\") + \" \"\n }\n };\n }\n return calcTrace;\n };\n }\n });\n\n // src/traces/densitymapbox/convert.js\n var require_convert13 = __commonJS({\n \"src/traces/densitymapbox/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Color2 = require_color();\n var Colorscale = require_colorscale();\n var BADNUM = require_numerical().BADNUM;\n var makeBlank = require_geojson_utils().makeBlank;\n module.exports = function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var heatmap = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var opts = trace._opts = {\n heatmap,\n geojson: makeBlank()\n };\n if (!isVisible) return opts;\n var features = [];\n var i;\n var z = trace.z;\n var radius = trace.radius;\n var hasZ = Lib.isArrayOrTypedArray(z) && z.length;\n var hasArrayRadius = Lib.isArrayOrTypedArray(radius);\n for (i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var lonlat = cdi.lonlat;\n if (lonlat[0] !== BADNUM) {\n var props = {};\n if (hasZ) {\n var zi = cdi.z;\n props.z = zi !== BADNUM ? zi : 0;\n }\n if (hasArrayRadius) {\n props.r = isNumeric(radius[i]) && radius[i] > 0 ? +radius[i] : 0;\n }\n features.push({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: lonlat },\n properties: props\n });\n }\n }\n var cOpts = Colorscale.extractOpts(trace);\n var scl = cOpts.reversescale ? Colorscale.flipScale(cOpts.colorscale) : cOpts.colorscale;\n var scl01 = scl[0][1];\n var color0 = Color2.opacity(scl01) < 1 ? scl01 : Color2.addOpacity(scl01, 0);\n var heatmapColor = [\n \"interpolate\",\n [\"linear\"],\n [\"heatmap-density\"],\n 0,\n color0\n ];\n for (i = 1; i < scl.length; i++) {\n heatmapColor.push(scl[i][0], scl[i][1]);\n }\n var zExp = [\n \"interpolate\",\n [\"linear\"],\n [\"get\", \"z\"],\n cOpts.min,\n 0,\n cOpts.max,\n 1\n ];\n Lib.extendFlat(opts.heatmap.paint, {\n \"heatmap-weight\": hasZ ? zExp : 1 / (cOpts.max - cOpts.min),\n \"heatmap-color\": heatmapColor,\n \"heatmap-radius\": hasArrayRadius ? { type: \"identity\", property: \"r\" } : trace.radius,\n \"heatmap-opacity\": trace.opacity\n });\n opts.geojson = { type: \"FeatureCollection\", features };\n opts.heatmap.layout.visibility = \"visible\";\n return opts;\n };\n }\n });\n\n // src/traces/densitymapbox/plot.js\n var require_plot25 = __commonJS({\n \"src/traces/densitymapbox/plot.js\"(exports, module) {\n \"use strict\";\n var convert = require_convert13();\n var LAYER_PREFIX = require_constants25().traceLayerPrefix;\n function DensityMapbox(subplot, uid) {\n this.type = \"densitymapbox\";\n this.subplot = subplot;\n this.uid = uid;\n this.sourceId = \"source-\" + uid;\n this.layerList = [\n [\"heatmap\", LAYER_PREFIX + uid + \"-heatmap\"]\n ];\n this.below = null;\n }\n var proto = DensityMapbox.prototype;\n proto.update = function(calcTrace) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var optsAll = convert(calcTrace);\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n subplot.map.getSource(this.sourceId).setData(optsAll.geojson);\n if (below !== this.below) {\n this._removeLayers();\n this._addLayers(optsAll, below);\n this.below = below;\n }\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var id = item[1];\n var opts = optsAll[k];\n subplot.setOptions(id, \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n subplot.setOptions(id, \"setPaintProperty\", opts.paint);\n }\n }\n };\n proto._addLayers = function(optsAll, below) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var sourceId = this.sourceId;\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var opts = optsAll[k];\n subplot.addLayer({\n type: k,\n id: item[1],\n source: sourceId,\n layout: opts.layout,\n paint: opts.paint\n }, below);\n }\n };\n proto._removeLayers = function() {\n var map = this.subplot.map;\n var layerList = this.layerList;\n for (var i = layerList.length - 1; i >= 0; i--) {\n map.removeLayer(layerList[i][1]);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n this._removeLayers();\n map.removeSource(this.sourceId);\n };\n module.exports = function createDensityMapbox(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var densityMapbox = new DensityMapbox(subplot, trace.uid);\n var sourceId = densityMapbox.sourceId;\n var optsAll = convert(calcTrace);\n var below = densityMapbox.below = subplot.belowLookup[\"trace-\" + trace.uid];\n subplot.map.addSource(sourceId, {\n type: \"geojson\",\n data: optsAll.geojson\n });\n densityMapbox._addLayers(optsAll, below);\n return densityMapbox;\n };\n }\n });\n\n // src/traces/densitymapbox/hover.js\n var require_hover19 = __commonJS({\n \"src/traces/densitymapbox/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var scatterMapboxHoverPoints = require_hover18().hoverPoints;\n var getExtraText = require_hover18().getExtraText;\n module.exports = function hoverPoints(pointData, xval, yval) {\n var pts = scatterMapboxHoverPoints(pointData, xval, yval);\n if (!pts) return;\n var newPointData = pts[0];\n var cd = newPointData.cd;\n var trace = cd[0].trace;\n var di = cd[newPointData.index];\n delete newPointData.color;\n if (\"z\" in di) {\n var ax = newPointData.subplot.mockAxis;\n newPointData.z = di.z;\n newPointData.zLabel = Axes.tickText(ax, ax.c2l(di.z), \"hover\").text;\n }\n newPointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n return [newPointData];\n };\n }\n });\n\n // src/traces/densitymapbox/event_data.js\n var require_event_data12 = __commonJS({\n \"src/traces/densitymapbox/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.z = pt.z;\n return out;\n };\n }\n });\n\n // src/traces/densitymapbox/index.js\n var require_densitymapbox = __commonJS({\n \"src/traces/densitymapbox/index.js\"(exports, module) {\n \"use strict\";\n var deprecationWarning = [\n \"*densitymapbox* trace is deprecated!\",\n \"Please consider switching to the *densitymap* trace type and `map` subplots.\",\n \"Learn more at: https://plotly.com/python/maplibre-migration/\",\n \"as well as https://plotly.com/javascript/maplibre-migration/\"\n ].join(\" \");\n module.exports = {\n attributes: require_attributes56(),\n supplyDefaults: require_defaults52(),\n colorbar: require_colorbar2(),\n formatLabels: require_format_labels5(),\n calc: require_calc33(),\n plot: require_plot25(),\n hoverPoints: require_hover19(),\n eventData: require_event_data12(),\n getBelow: function(trace, subplot) {\n var mapLayers = subplot.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n var layer = mapLayers[i];\n var layerId = layer.id;\n if (layer.type === \"symbol\" && typeof layerId === \"string\" && layerId.indexOf(\"plotly-\") === -1) {\n return layerId;\n }\n }\n },\n moduleType: \"trace\",\n name: \"densitymapbox\",\n basePlotModule: require_mapbox2(),\n categories: [\"mapbox\", \"gl\", \"showLegend\"],\n meta: {\n hr_name: \"density_mapbox\"\n }\n };\n }\n });\n\n // lib/densitymapbox.js\n var require_densitymapbox2 = __commonJS({\n \"lib/densitymapbox.js\"(exports, module) {\n \"use strict\";\n module.exports = require_densitymapbox();\n }\n });\n\n // src/plots/map/styles/arcgis-sat-hybrid.js\n var require_arcgis_sat_hybrid = __commonJS({\n \"src/plots/map/styles/arcgis-sat-hybrid.js\"(exports, module) {\n module.exports = {\n \"version\": 8,\n \"name\": \"orto\",\n \"metadata\": { \"maputnik:renderer\": \"mlgljs\" },\n \"center\": [1.537786, 41.837539],\n \"zoom\": 12,\n \"bearing\": 0,\n \"pitch\": 0,\n \"light\": {\n \"anchor\": \"viewport\",\n \"color\": \"white\",\n \"intensity\": 0.4,\n \"position\": [1.15, 45, 30]\n },\n \"sources\": {\n \"ortoEsri\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}\"\n ],\n \"tileSize\": 256,\n \"maxzoom\": 18,\n \"attribution\": \"ESRI © ESRI\"\n },\n \"ortoInstaMaps\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png\"\n ],\n \"tileSize\": 256,\n \"maxzoom\": 13\n },\n \"ortoICGC\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg\"\n ],\n \"tileSize\": 256,\n \"minzoom\": 13.1,\n \"maxzoom\": 20\n },\n \"openmaptiles\": {\n \"type\": \"vector\",\n \"url\": \"https://geoserveis.icgc.cat/contextmaps/basemap.json\"\n }\n },\n \"sprite\": \"https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1\",\n \"glyphs\": \"https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf\",\n \"layers\": [\n {\n \"id\": \"background\",\n \"type\": \"background\",\n \"paint\": { \"background-color\": \"#F4F9F4\" }\n },\n {\n \"id\": \"ortoEsri\",\n \"type\": \"raster\",\n \"source\": \"ortoEsri\",\n \"maxzoom\": 16,\n \"layout\": { \"visibility\": \"visible\" }\n },\n {\n \"id\": \"ortoICGC\",\n \"type\": \"raster\",\n \"source\": \"ortoICGC\",\n \"minzoom\": 13.1,\n \"maxzoom\": 19,\n \"layout\": { \"visibility\": \"visible\" }\n },\n {\n \"id\": \"ortoInstaMaps\",\n \"type\": \"raster\",\n \"source\": \"ortoInstaMaps\",\n \"maxzoom\": 13,\n \"layout\": { \"visibility\": \"visible\" }\n },\n {\n \"id\": \"waterway_tunnel\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"minzoom\": 14,\n \"filter\": [\n \"all\",\n [\"in\", \"class\", \"river\", \"stream\", \"canal\"],\n [\"==\", \"brunnel\", \"tunnel\"]\n ],\n \"layout\": { \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"#a0c8f0\",\n \"line-width\": { \"base\": 1.3, \"stops\": [[13, 0.5], [20, 6]] },\n \"line-dasharray\": [2, 4]\n }\n },\n {\n \"id\": \"waterway-other\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"filter\": [\"!in\", \"class\", \"canal\", \"river\", \"stream\"],\n \"layout\": { \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"#a0c8f0\",\n \"line-width\": { \"base\": 1.3, \"stops\": [[13, 0.5], [20, 2]] }\n }\n },\n {\n \"id\": \"waterway-stream-canal\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"filter\": [\n \"all\",\n [\"in\", \"class\", \"canal\", \"stream\"],\n [\"!=\", \"brunnel\", \"tunnel\"]\n ],\n \"layout\": { \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"#a0c8f0\",\n \"line-width\": { \"base\": 1.3, \"stops\": [[13, 0.5], [20, 6]] }\n }\n },\n {\n \"id\": \"waterway-river\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"filter\": [\"all\", [\"==\", \"class\", \"river\"], [\"!=\", \"brunnel\", \"tunnel\"]],\n \"layout\": { \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"#a0c8f0\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[10, 0.8], [20, 4]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"water-offset\",\n \"type\": \"fill\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water\",\n \"maxzoom\": 8,\n \"filter\": [\"==\", \"$type\", \"Polygon\"],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"fill-opacity\": 0,\n \"fill-color\": \"#a0c8f0\",\n \"fill-translate\": { \"base\": 1, \"stops\": [[6, [2, 0]], [8, [0, 0]]] }\n }\n },\n {\n \"id\": \"water\",\n \"type\": \"fill\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water\",\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": { \"fill-color\": \"hsl(210, 67%, 85%)\", \"fill-opacity\": 0 }\n },\n {\n \"id\": \"water-pattern\",\n \"type\": \"fill\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water\",\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"fill-translate\": [0, 2.5],\n \"fill-pattern\": \"wave\",\n \"fill-opacity\": 1\n }\n },\n {\n \"id\": \"landcover-ice-shelf\",\n \"type\": \"fill\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"==\", \"subclass\", \"ice_shelf\"],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"fill-color\": \"#fff\",\n \"fill-opacity\": { \"base\": 1, \"stops\": [[0, 0.9], [10, 0.3]] }\n }\n },\n {\n \"id\": \"tunnel-service-track-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"service\", \"track\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#cfcdca\",\n \"line-dasharray\": [0.5, 0.25],\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1], [16, 4], [20, 11]] }\n }\n },\n {\n \"id\": \"tunnel-minor-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"==\", \"brunnel\", \"tunnel\"], [\"==\", \"class\", \"minor\"]],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#cfcdca\",\n \"line-opacity\": { \"stops\": [[12, 0], [12.5, 1]] },\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 0.5], [13, 1], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"tunnel-secondary-tertiary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": { \"base\": 1.2, \"stops\": [[8, 1.5], [20, 17]] }\n }\n },\n {\n \"id\": \"tunnel-trunk-primary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"primary\", \"trunk\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]\n },\n \"line-opacity\": 0.7\n }\n },\n {\n \"id\": \"tunnel-motorway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": { \"line-join\": \"round\", \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-dasharray\": [0.5, 0.25],\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]\n },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"tunnel-path\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"brunnel\", \"tunnel\"], [\"==\", \"class\", \"path\"]]\n ],\n \"paint\": {\n \"line-color\": \"#cba\",\n \"line-dasharray\": [1.5, 0.75],\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1.2], [20, 4]] }\n }\n },\n {\n \"id\": \"tunnel-service-track\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"service\", \"track\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[15.5, 0], [16, 2], [20, 7.5]] }\n }\n },\n {\n \"id\": \"tunnel-minor\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"==\", \"class\", \"minor_road\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff\",\n \"line-opacity\": 1,\n \"line-width\": { \"base\": 1.2, \"stops\": [[13.5, 0], [14, 2.5], [20, 11.5]] }\n }\n },\n {\n \"id\": \"tunnel-secondary-tertiary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff4c6\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 10]] }\n }\n },\n {\n \"id\": \"tunnel-trunk-primary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"primary\", \"trunk\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff4c6\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"tunnel-motorway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": { \"line-join\": \"round\", \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"#ffdaa6\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"tunnel-railway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"==\", \"brunnel\", \"tunnel\"], [\"==\", \"class\", \"rail\"]],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [15, 0.75], [20, 2]] },\n \"line-dasharray\": [2, 2]\n }\n },\n {\n \"id\": \"ferry\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"in\", \"class\", \"ferry\"]],\n \"layout\": { \"line-join\": \"round\", \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"rgba(108, 159, 182, 1)\",\n \"line-width\": 1.1,\n \"line-dasharray\": [2, 2]\n }\n },\n {\n \"id\": \"aeroway-taxiway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"aeroway\",\n \"minzoom\": 12,\n \"filter\": [\"all\", [\"in\", \"class\", \"taxiway\"]],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"rgba(153, 153, 153, 1)\",\n \"line-width\": { \"base\": 1.5, \"stops\": [[11, 2], [17, 12]] },\n \"line-opacity\": 1\n }\n },\n {\n \"id\": \"aeroway-runway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"aeroway\",\n \"minzoom\": 12,\n \"filter\": [\"all\", [\"in\", \"class\", \"runway\"]],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"rgba(153, 153, 153, 1)\",\n \"line-width\": { \"base\": 1.5, \"stops\": [[11, 5], [17, 55]] },\n \"line-opacity\": 1\n }\n },\n {\n \"id\": \"aeroway-taxiway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"aeroway\",\n \"minzoom\": 4,\n \"filter\": [\n \"all\",\n [\"in\", \"class\", \"taxiway\"],\n [\"==\", \"$type\", \"LineString\"]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"rgba(255, 255, 255, 1)\",\n \"line-width\": { \"base\": 1.5, \"stops\": [[11, 1], [17, 10]] },\n \"line-opacity\": { \"base\": 1, \"stops\": [[11, 0], [12, 1]] }\n }\n },\n {\n \"id\": \"aeroway-runway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"aeroway\",\n \"minzoom\": 4,\n \"filter\": [\n \"all\",\n [\"in\", \"class\", \"runway\"],\n [\"==\", \"$type\", \"LineString\"]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"rgba(255, 255, 255, 1)\",\n \"line-width\": { \"base\": 1.5, \"stops\": [[11, 4], [17, 50]] },\n \"line-opacity\": { \"base\": 1, \"stops\": [[11, 0], [12, 1]] }\n }\n },\n {\n \"id\": \"highway-motorway-link-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 12,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"motorway_link\"]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 1], [13, 3], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"highway-link-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 13,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\n \"in\",\n \"class\",\n \"primary_link\",\n \"secondary_link\",\n \"tertiary_link\",\n \"trunk_link\"\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 1], [13, 3], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"highway-minor-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!=\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"minor\", \"service\", \"track\"]\n ]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#cfcdca\",\n \"line-opacity\": { \"stops\": [[12, 0], [12.5, 0]] },\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 0.5], [13, 1], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"highway-secondary-tertiary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": {\n \"line-cap\": \"butt\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 0.5,\n \"line-width\": { \"base\": 1.2, \"stops\": [[8, 1.5], [20, 17]] }\n }\n },\n {\n \"id\": \"highway-primary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 5,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"primary\"]\n ],\n \"layout\": {\n \"line-cap\": \"butt\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": { \"stops\": [[7, 0], [8, 0.6]] },\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[7, 0], [8, 0.6], [9, 1.5], [20, 22]]\n }\n }\n },\n {\n \"id\": \"highway-trunk-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 5,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"trunk\"]\n ],\n \"layout\": {\n \"line-cap\": \"butt\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": { \"stops\": [[5, 0], [6, 0.5]] },\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0], [6, 0.6], [7, 1.5], [20, 22]]\n }\n }\n },\n {\n \"id\": \"highway-motorway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 4,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": {\n \"line-cap\": \"butt\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[4, 0], [5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]\n },\n \"line-opacity\": { \"stops\": [[4, 0], [5, 0.5]] }\n }\n },\n {\n \"id\": \"highway-path\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"], [\"==\", \"class\", \"path\"]]\n ],\n \"paint\": {\n \"line-color\": \"#cba\",\n \"line-dasharray\": [1.5, 0.75],\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1.2], [20, 4]] }\n }\n },\n {\n \"id\": \"highway-motorway-link\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 12,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"motorway_link\"]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fc8\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]\n }\n }\n },\n {\n \"id\": \"highway-link\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 13,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\n \"in\",\n \"class\",\n \"primary_link\",\n \"secondary_link\",\n \"tertiary_link\",\n \"trunk_link\"\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]\n }\n }\n },\n {\n \"id\": \"highway-minor\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!=\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"minor\", \"service\", \"track\"]\n ]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff\",\n \"line-opacity\": 0.5,\n \"line-width\": { \"base\": 1.2, \"stops\": [[13.5, 0], [14, 2.5], [20, 11.5]] }\n }\n },\n {\n \"id\": \"highway-secondary-tertiary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [8, 0.5], [20, 13]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"highway-primary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"primary\"]\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[8.5, 0], [9, 0.5], [20, 18]] },\n \"line-opacity\": 0\n }\n },\n {\n \"id\": \"highway-trunk\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"trunk\"]\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"highway-motorway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 5,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"motorway\"]\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fc8\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"railway-transit\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"class\", \"transit\"], [\"!in\", \"brunnel\", \"tunnel\"]]\n ],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"hsla(0, 0%, 73%, 0.77)\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [20, 1]] }\n }\n },\n {\n \"id\": \"railway-transit-hatching\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"class\", \"transit\"], [\"!in\", \"brunnel\", \"tunnel\"]]\n ],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"hsla(0, 0%, 73%, 0.68)\",\n \"line-dasharray\": [0.2, 8],\n \"line-width\": { \"base\": 1.4, \"stops\": [[14.5, 0], [15, 2], [20, 6]] }\n }\n },\n {\n \"id\": \"railway-service\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"class\", \"rail\"], [\"has\", \"service\"]]\n ],\n \"paint\": {\n \"line-color\": \"hsla(0, 0%, 73%, 0.77)\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [20, 1]] }\n }\n },\n {\n \"id\": \"railway-service-hatching\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"class\", \"rail\"], [\"has\", \"service\"]]\n ],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"hsla(0, 0%, 73%, 0.68)\",\n \"line-dasharray\": [0.2, 8],\n \"line-width\": { \"base\": 1.4, \"stops\": [[14.5, 0], [15, 2], [20, 6]] }\n }\n },\n {\n \"id\": \"railway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!has\", \"service\"],\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"rail\"]\n ]\n ],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [15, 0.75], [20, 2]] }\n }\n },\n {\n \"id\": \"railway-hatching\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!has\", \"service\"],\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"rail\"]\n ]\n ],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-dasharray\": [0.2, 8],\n \"line-width\": { \"base\": 1.4, \"stops\": [[14.5, 0], [15, 3], [20, 8]] }\n }\n },\n {\n \"id\": \"bridge-motorway-link-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"==\", \"class\", \"motorway_link\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 1], [13, 3], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"bridge-link-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\n \"in\",\n \"class\",\n \"primary_link\",\n \"secondary_link\",\n \"tertiary_link\",\n \"trunk_link\"\n ]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 1], [13, 3], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"bridge-secondary-tertiary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": { \"base\": 1.2, \"stops\": [[8, 1.5], [20, 28]] }\n }\n },\n {\n \"id\": \"bridge-trunk-primary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"in\", \"class\", \"primary\", \"trunk\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(28, 76%, 67%)\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 26]]\n }\n }\n },\n {\n \"id\": \"bridge-motorway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]\n },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"bridge-path-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"brunnel\", \"bridge\"], [\"==\", \"class\", \"path\"]]\n ],\n \"paint\": {\n \"line-color\": \"#f8f4f0\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1.2], [20, 18]] }\n }\n },\n {\n \"id\": \"bridge-path\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"brunnel\", \"bridge\"], [\"==\", \"class\", \"path\"]]\n ],\n \"paint\": {\n \"line-color\": \"#cba\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1.2], [20, 4]] },\n \"line-dasharray\": [1.5, 0.75]\n }\n },\n {\n \"id\": \"bridge-motorway-link\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"==\", \"class\", \"motorway_link\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fc8\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]\n }\n }\n },\n {\n \"id\": \"bridge-link\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\n \"in\",\n \"class\",\n \"primary_link\",\n \"secondary_link\",\n \"tertiary_link\",\n \"trunk_link\"\n ]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]\n }\n }\n },\n {\n \"id\": \"bridge-secondary-tertiary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 20]] }\n }\n },\n {\n \"id\": \"bridge-trunk-primary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"in\", \"class\", \"primary\", \"trunk\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] }\n }\n },\n {\n \"id\": \"bridge-motorway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fc8\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"bridge-railway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"==\", \"brunnel\", \"bridge\"], [\"==\", \"class\", \"rail\"]],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [15, 0.75], [20, 2]] }\n }\n },\n {\n \"id\": \"bridge-railway-hatching\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"==\", \"brunnel\", \"bridge\"], [\"==\", \"class\", \"rail\"]],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-dasharray\": [0.2, 8],\n \"line-width\": { \"base\": 1.4, \"stops\": [[14.5, 0], [15, 3], [20, 8]] }\n }\n },\n {\n \"id\": \"cablecar\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 13,\n \"filter\": [\"==\", \"class\", \"cable_car\"],\n \"layout\": { \"visibility\": \"visible\", \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(0, 0%, 70%)\",\n \"line-width\": { \"base\": 1, \"stops\": [[11, 1], [19, 2.5]] }\n }\n },\n {\n \"id\": \"cablecar-dash\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 13,\n \"filter\": [\"==\", \"class\", \"cable_car\"],\n \"layout\": { \"visibility\": \"visible\", \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(0, 0%, 70%)\",\n \"line-width\": { \"base\": 1, \"stops\": [[11, 3], [19, 5.5]] },\n \"line-dasharray\": [2, 3]\n }\n },\n {\n \"id\": \"boundary-land-level-4\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"boundary\",\n \"filter\": [\n \"all\",\n [\">=\", \"admin_level\", 4],\n [\"<=\", \"admin_level\", 8],\n [\"!=\", \"maritime\", 1]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#9e9cab\",\n \"line-dasharray\": [3, 1, 1, 1],\n \"line-width\": { \"base\": 1.4, \"stops\": [[4, 0.4], [5, 1], [12, 3]] },\n \"line-opacity\": 0.6\n }\n },\n {\n \"id\": \"boundary-land-level-2\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"boundary\",\n \"filter\": [\n \"all\",\n [\"==\", \"admin_level\", 2],\n [\"!=\", \"maritime\", 1],\n [\"!=\", \"disputed\", 1]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(248, 7%, 66%)\",\n \"line-width\": {\n \"base\": 1,\n \"stops\": [[0, 0.6], [4, 1.4], [5, 2], [12, 2]]\n }\n }\n },\n {\n \"id\": \"boundary-land-disputed\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"boundary\",\n \"filter\": [\"all\", [\"!=\", \"maritime\", 1], [\"==\", \"disputed\", 1]],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(248, 7%, 70%)\",\n \"line-dasharray\": [1, 3],\n \"line-width\": {\n \"base\": 1,\n \"stops\": [[0, 0.6], [4, 1.4], [5, 2], [12, 8]]\n }\n }\n },\n {\n \"id\": \"boundary-water\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"boundary\",\n \"filter\": [\"all\", [\"in\", \"admin_level\", 2, 4], [\"==\", \"maritime\", 1]],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"rgba(154, 189, 214, 1)\",\n \"line-width\": { \"base\": 1, \"stops\": [[0, 0.6], [4, 1], [5, 1], [12, 1]] },\n \"line-opacity\": { \"stops\": [[6, 0], [10, 0]] }\n }\n },\n {\n \"id\": \"waterway-name\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"minzoom\": 13,\n \"filter\": [\"all\", [\"==\", \"$type\", \"LineString\"], [\"has\", \"name\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-size\": 14,\n \"text-field\": \"{name:latin} {name:nonlatin}\",\n \"text-max-width\": 5,\n \"text-rotation-alignment\": \"map\",\n \"symbol-placement\": \"line\",\n \"text-letter-spacing\": 0.2,\n \"symbol-spacing\": 350\n },\n \"paint\": {\n \"text-color\": \"#74aee9\",\n \"text-halo-width\": 1.5,\n \"text-halo-color\": \"rgba(255,255,255,0.7)\"\n }\n },\n {\n \"id\": \"water-name-lakeline\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water_name\",\n \"filter\": [\"==\", \"$type\", \"LineString\"],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-size\": 14,\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 5,\n \"text-rotation-alignment\": \"map\",\n \"symbol-placement\": \"line\",\n \"symbol-spacing\": 350,\n \"text-letter-spacing\": 0.2\n },\n \"paint\": {\n \"text-color\": \"#74aee9\",\n \"text-halo-width\": 1.5,\n \"text-halo-color\": \"rgba(255,255,255,0.7)\"\n }\n },\n {\n \"id\": \"water-name-ocean\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water_name\",\n \"filter\": [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"class\", \"ocean\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-size\": 14,\n \"text-field\": \"{name:latin}\",\n \"text-max-width\": 5,\n \"text-rotation-alignment\": \"map\",\n \"symbol-placement\": \"point\",\n \"symbol-spacing\": 350,\n \"text-letter-spacing\": 0.2\n },\n \"paint\": {\n \"text-color\": \"#74aee9\",\n \"text-halo-width\": 1.5,\n \"text-halo-color\": \"rgba(255,255,255,0.7)\"\n }\n },\n {\n \"id\": \"water-name-other\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water_name\",\n \"filter\": [\"all\", [\"==\", \"$type\", \"Point\"], [\"!in\", \"class\", \"ocean\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-size\": { \"stops\": [[0, 10], [6, 14]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 5,\n \"text-rotation-alignment\": \"map\",\n \"symbol-placement\": \"point\",\n \"symbol-spacing\": 350,\n \"text-letter-spacing\": 0.2,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"#74aee9\",\n \"text-halo-width\": 1.5,\n \"text-halo-color\": \"rgba(255,255,255,0.7)\"\n }\n },\n {\n \"id\": \"poi-level-3\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"poi\",\n \"minzoom\": 16,\n \"filter\": [\"all\", [\"==\", \"$type\", \"Point\"], [\">=\", \"rank\", 25]],\n \"layout\": {\n \"text-padding\": 2,\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-anchor\": \"top\",\n \"icon-image\": \"{class}_11\",\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-offset\": [0, 0.6],\n \"text-size\": 12,\n \"text-max-width\": 9\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#666\",\n \"text-halo-width\": 1,\n \"text-halo-color\": \"#ffffff\"\n }\n },\n {\n \"id\": \"poi-level-2\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"poi\",\n \"minzoom\": 15,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"<=\", \"rank\", 24],\n [\">=\", \"rank\", 15]\n ],\n \"layout\": {\n \"text-padding\": 2,\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-anchor\": \"top\",\n \"icon-image\": \"{class}_11\",\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-offset\": [0, 0.6],\n \"text-size\": 12,\n \"text-max-width\": 9\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#666\",\n \"text-halo-width\": 1,\n \"text-halo-color\": \"#ffffff\"\n }\n },\n {\n \"id\": \"poi-level-1\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"poi\",\n \"minzoom\": 14,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"<=\", \"rank\", 14],\n [\"has\", \"name\"]\n ],\n \"layout\": {\n \"text-padding\": 2,\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-anchor\": \"top\",\n \"icon-image\": \"{class}_11\",\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-offset\": [0, 0.6],\n \"text-size\": 11,\n \"text-max-width\": 9\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"rgba(191, 228, 172, 1)\",\n \"text-halo-width\": 1,\n \"text-halo-color\": \"rgba(30, 29, 29, 1)\"\n }\n },\n {\n \"id\": \"poi-railway\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"poi\",\n \"minzoom\": 13,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"has\", \"name\"],\n [\"==\", \"class\", \"railway\"],\n [\"==\", \"subclass\", \"station\"]\n ],\n \"layout\": {\n \"text-padding\": 2,\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-anchor\": \"top\",\n \"icon-image\": \"{class}_11\",\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-offset\": [0, 0.6],\n \"text-size\": 12,\n \"text-max-width\": 9,\n \"icon-optional\": false,\n \"icon-ignore-placement\": false,\n \"icon-allow-overlap\": false,\n \"text-ignore-placement\": false,\n \"text-allow-overlap\": false,\n \"text-optional\": true\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#666\",\n \"text-halo-width\": 1,\n \"text-halo-color\": \"#ffffff\"\n }\n },\n {\n \"id\": \"road_oneway\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 15,\n \"filter\": [\n \"all\",\n [\"==\", \"oneway\", 1],\n [\n \"in\",\n \"class\",\n \"motorway\",\n \"trunk\",\n \"primary\",\n \"secondary\",\n \"tertiary\",\n \"minor\",\n \"service\"\n ]\n ],\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"icon-image\": \"oneway\",\n \"symbol-spacing\": 75,\n \"icon-padding\": 2,\n \"icon-rotation-alignment\": \"map\",\n \"icon-rotate\": 90,\n \"icon-size\": { \"stops\": [[15, 0.5], [19, 1]] }\n },\n \"paint\": { \"icon-opacity\": 0.5 }\n },\n {\n \"id\": \"road_oneway_opposite\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 15,\n \"filter\": [\n \"all\",\n [\"==\", \"oneway\", -1],\n [\n \"in\",\n \"class\",\n \"motorway\",\n \"trunk\",\n \"primary\",\n \"secondary\",\n \"tertiary\",\n \"minor\",\n \"service\"\n ]\n ],\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"icon-image\": \"oneway\",\n \"symbol-spacing\": 75,\n \"icon-padding\": 2,\n \"icon-rotation-alignment\": \"map\",\n \"icon-rotate\": -90,\n \"icon-size\": { \"stops\": [[15, 0.5], [19, 1]] }\n },\n \"paint\": { \"icon-opacity\": 0.5 }\n },\n {\n \"id\": \"highway-name-path\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 15.5,\n \"filter\": [\"==\", \"class\", \"path\"],\n \"layout\": {\n \"text-size\": { \"base\": 1, \"stops\": [[13, 12], [14, 13]] },\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-field\": \"{name:latin} {name:nonlatin}\",\n \"symbol-placement\": \"line\",\n \"text-rotation-alignment\": \"map\"\n },\n \"paint\": {\n \"text-halo-color\": \"#f8f4f0\",\n \"text-color\": \"hsl(30, 23%, 62%)\",\n \"text-halo-width\": 0.5\n }\n },\n {\n \"id\": \"highway-name-minor\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 15,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"in\", \"class\", \"minor\", \"service\", \"track\"]\n ],\n \"layout\": {\n \"text-size\": { \"base\": 1, \"stops\": [[13, 12], [14, 13]] },\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-field\": \"{name:latin} {name:nonlatin}\",\n \"symbol-placement\": \"line\",\n \"text-rotation-alignment\": \"map\"\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#765\",\n \"text-halo-width\": 1\n }\n },\n {\n \"id\": \"highway-name-major\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12.2,\n \"filter\": [\"in\", \"class\", \"primary\", \"secondary\", \"tertiary\", \"trunk\"],\n \"layout\": {\n \"text-size\": { \"base\": 1, \"stops\": [[13, 12], [14, 13]] },\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-field\": \"{name:latin} {name:nonlatin}\",\n \"symbol-placement\": \"line\",\n \"text-rotation-alignment\": \"map\"\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#765\",\n \"text-halo-width\": 1\n }\n },\n {\n \"id\": \"highway-shield\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 8,\n \"filter\": [\n \"all\",\n [\"<=\", \"ref_length\", 6],\n [\"==\", \"$type\", \"LineString\"],\n [\"!in\", \"network\", \"us-interstate\", \"us-highway\", \"us-state\"]\n ],\n \"layout\": {\n \"text-size\": 10,\n \"icon-image\": \"road_{ref_length}\",\n \"icon-rotation-alignment\": \"viewport\",\n \"symbol-spacing\": 200,\n \"text-font\": [\"Noto Sans Regular\"],\n \"symbol-placement\": { \"base\": 1, \"stops\": [[10, \"point\"], [11, \"line\"]] },\n \"text-rotation-alignment\": \"viewport\",\n \"icon-size\": 1,\n \"text-field\": \"{ref}\"\n },\n \"paint\": {\n \"text-opacity\": 1,\n \"text-color\": \"rgba(20, 19, 19, 1)\",\n \"text-halo-color\": \"rgba(230, 221, 221, 0)\",\n \"text-halo-width\": 2,\n \"icon-color\": \"rgba(183, 18, 18, 1)\",\n \"icon-opacity\": 0.3,\n \"icon-halo-color\": \"rgba(183, 55, 55, 0)\"\n }\n },\n {\n \"id\": \"highway-shield-us-interstate\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 7,\n \"filter\": [\n \"all\",\n [\"<=\", \"ref_length\", 6],\n [\"==\", \"$type\", \"LineString\"],\n [\"in\", \"network\", \"us-interstate\"]\n ],\n \"layout\": {\n \"text-size\": 10,\n \"icon-image\": \"{network}_{ref_length}\",\n \"icon-rotation-alignment\": \"viewport\",\n \"symbol-spacing\": 200,\n \"text-font\": [\"Noto Sans Regular\"],\n \"symbol-placement\": {\n \"base\": 1,\n \"stops\": [[7, \"point\"], [7, \"line\"], [8, \"line\"]]\n },\n \"text-rotation-alignment\": \"viewport\",\n \"icon-size\": 1,\n \"text-field\": \"{ref}\"\n },\n \"paint\": { \"text-color\": \"rgba(0, 0, 0, 1)\" }\n },\n {\n \"id\": \"highway-shield-us-other\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 9,\n \"filter\": [\n \"all\",\n [\"<=\", \"ref_length\", 6],\n [\"==\", \"$type\", \"LineString\"],\n [\"in\", \"network\", \"us-highway\", \"us-state\"]\n ],\n \"layout\": {\n \"text-size\": 10,\n \"icon-image\": \"{network}_{ref_length}\",\n \"icon-rotation-alignment\": \"viewport\",\n \"symbol-spacing\": 200,\n \"text-font\": [\"Noto Sans Regular\"],\n \"symbol-placement\": { \"base\": 1, \"stops\": [[10, \"point\"], [11, \"line\"]] },\n \"text-rotation-alignment\": \"viewport\",\n \"icon-size\": 1,\n \"text-field\": \"{ref}\"\n },\n \"paint\": { \"text-color\": \"rgba(0, 0, 0, 1)\" }\n },\n {\n \"id\": \"place-other\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"minzoom\": 12,\n \"filter\": [\n \"!in\",\n \"class\",\n \"city\",\n \"town\",\n \"village\",\n \"country\",\n \"continent\"\n ],\n \"layout\": {\n \"text-letter-spacing\": 0.1,\n \"text-size\": { \"base\": 1.2, \"stops\": [[12, 10], [15, 14]] },\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 9,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"rgba(255,255,255,1)\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(57, 28, 28, 1)\"\n }\n },\n {\n \"id\": \"place-village\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"minzoom\": 10,\n \"filter\": [\"==\", \"class\", \"village\"],\n \"layout\": {\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": { \"base\": 1.2, \"stops\": [[10, 12], [15, 16]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 8,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"rgba(255, 255, 255, 1)\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(10, 9, 9, 0.8)\"\n }\n },\n {\n \"id\": \"place-town\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\"==\", \"class\", \"town\"],\n \"layout\": {\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": { \"base\": 1.2, \"stops\": [[10, 14], [15, 24]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 8,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"rgba(255, 255, 255, 1)\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(22, 22, 22, 0.8)\"\n }\n },\n {\n \"id\": \"place-city\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\"all\", [\"!=\", \"capital\", 2], [\"==\", \"class\", \"city\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": { \"base\": 1.2, \"stops\": [[7, 14], [11, 24]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 8,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"rgba(0, 0, 0, 1)\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-city-capital\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\"all\", [\"==\", \"capital\", 2], [\"==\", \"class\", \"city\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": { \"base\": 1.2, \"stops\": [[7, 14], [11, 24]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 8,\n \"icon-image\": \"star_11\",\n \"text-offset\": [0.4, 0],\n \"icon-size\": 0.8,\n \"text-anchor\": \"left\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"#333\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-country-other\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\n \"all\",\n [\"==\", \"class\", \"country\"],\n [\">=\", \"rank\", 3],\n [\"!has\", \"iso_a2\"]\n ],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": { \"stops\": [[3, 11], [7, 17]] },\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 6.25,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-country-3\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\n \"all\",\n [\"==\", \"class\", \"country\"],\n [\">=\", \"rank\", 3],\n [\"has\", \"iso_a2\"]\n ],\n \"layout\": {\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": { \"stops\": [[3, 11], [7, 17]] },\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 6.25,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-country-2\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\n \"all\",\n [\"==\", \"class\", \"country\"],\n [\"==\", \"rank\", 2],\n [\"has\", \"iso_a2\"]\n ],\n \"layout\": {\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": { \"stops\": [[2, 11], [5, 17]] },\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 6.25,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-country-1\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\n \"all\",\n [\"==\", \"class\", \"country\"],\n [\"==\", \"rank\", 1],\n [\"has\", \"iso_a2\"]\n ],\n \"layout\": {\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": { \"stops\": [[1, 11], [4, 17]] },\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 6.25,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-continent\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"maxzoom\": 1,\n \"filter\": [\"==\", \"class\", \"continent\"],\n \"layout\": {\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": 14,\n \"text-max-width\": 6.25,\n \"text-transform\": \"uppercase\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n }\n ],\n \"id\": \"qebnlkra6\"\n };\n }\n });\n\n // src/plots/map/styles/arcgis-sat.js\n var require_arcgis_sat = __commonJS({\n \"src/plots/map/styles/arcgis-sat.js\"(exports, module) {\n module.exports = {\n \"version\": 8,\n \"name\": \"orto\",\n \"metadata\": {},\n \"center\": [\n 1.537786,\n 41.837539\n ],\n \"zoom\": 12,\n \"bearing\": 0,\n \"pitch\": 0,\n \"light\": {\n \"anchor\": \"viewport\",\n \"color\": \"white\",\n \"intensity\": 0.4,\n \"position\": [\n 1.15,\n 45,\n 30\n ]\n },\n \"sources\": {\n \"ortoEsri\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}\"\n ],\n \"tileSize\": 256,\n \"maxzoom\": 18,\n \"attribution\": \"ESRI © ESRI\"\n },\n \"ortoInstaMaps\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png\"\n ],\n \"tileSize\": 256,\n \"maxzoom\": 13\n },\n \"ortoICGC\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg\"\n ],\n \"tileSize\": 256,\n \"minzoom\": 13.1,\n \"maxzoom\": 20\n },\n \"openmaptiles\": {\n \"type\": \"vector\",\n \"url\": \"https://geoserveis.icgc.cat/contextmaps/basemap.json\"\n }\n },\n \"sprite\": \"https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1\",\n \"glyphs\": \"https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf\",\n \"layers\": [\n {\n \"id\": \"background\",\n \"type\": \"background\",\n \"paint\": {\n \"background-color\": \"#F4F9F4\"\n }\n },\n {\n \"id\": \"ortoEsri\",\n \"type\": \"raster\",\n \"source\": \"ortoEsri\",\n \"maxzoom\": 16,\n \"layout\": {\n \"visibility\": \"visible\"\n }\n },\n {\n \"id\": \"ortoICGC\",\n \"type\": \"raster\",\n \"source\": \"ortoICGC\",\n \"minzoom\": 13.1,\n \"maxzoom\": 19,\n \"layout\": {\n \"visibility\": \"visible\"\n }\n },\n {\n \"id\": \"ortoInstaMaps\",\n \"type\": \"raster\",\n \"source\": \"ortoInstaMaps\",\n \"maxzoom\": 13,\n \"layout\": {\n \"visibility\": \"visible\"\n }\n }\n ]\n };\n }\n });\n\n // src/plots/map/constants.js\n var require_constants27 = __commonJS({\n \"src/plots/map/constants.js\"(exports, module) {\n \"use strict\";\n var sortObjectKeys = require_sort_object_keys();\n var arcgisSatHybrid = require_arcgis_sat_hybrid();\n var arcgisSat = require_arcgis_sat();\n var OSM = '\\xA9 OpenStreetMap contributors';\n var cartoPositron = \"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json\";\n var cartoDarkmatter = \"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json\";\n var cartoVoyager = \"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json\";\n var cartoPositronNoLabels = \"https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json\";\n var cartoDarkmatterNoLabels = \"https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json\";\n var cartoVoyagerNoLabels = \"https://basemaps.cartocdn.com/gl/voyager-nolabels-gl-style/style.json\";\n var stylesMap = {\n basic: cartoVoyager,\n streets: cartoVoyager,\n outdoors: cartoVoyager,\n light: cartoPositron,\n dark: cartoDarkmatter,\n satellite: arcgisSat,\n \"satellite-streets\": arcgisSatHybrid,\n \"open-street-map\": {\n id: \"osm\",\n version: 8,\n sources: {\n \"plotly-osm-tiles\": {\n type: \"raster\",\n attribution: OSM,\n tiles: [\n \"https://tile.openstreetmap.org/{z}/{x}/{y}.png\"\n ],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-osm-tiles\",\n type: \"raster\",\n source: \"plotly-osm-tiles\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"white-bg\": {\n id: \"white-bg\",\n version: 8,\n sources: {},\n layers: [{\n id: \"white-bg\",\n type: \"background\",\n paint: { \"background-color\": \"#FFFFFF\" },\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"carto-positron\": cartoPositron,\n \"carto-darkmatter\": cartoDarkmatter,\n \"carto-voyager\": cartoVoyager,\n \"carto-positron-nolabels\": cartoPositronNoLabels,\n \"carto-darkmatter-nolabels\": cartoDarkmatterNoLabels,\n \"carto-voyager-nolabels\": cartoVoyagerNoLabels\n };\n var styleValuesMap = sortObjectKeys(stylesMap);\n module.exports = {\n styleValueDflt: \"basic\",\n stylesMap,\n styleValuesMap,\n traceLayerPrefix: \"plotly-trace-layer-\",\n layoutLayerPrefix: \"plotly-layout-layer-\",\n missingStyleErrorMsg: [\n \"No valid maplibre style found, please set `map.style` to one of:\",\n styleValuesMap.join(\", \"),\n \"or use a tile service.\"\n ].join(\"\\n\"),\n mapOnErrorMsg: \"Map error.\"\n };\n }\n });\n\n // src/plots/map/layout_attributes.js\n var require_layout_attributes20 = __commonJS({\n \"src/plots/map/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var defaultLine = require_color().defaultLine;\n var domainAttrs = require_domain().attributes;\n var fontAttrs = require_font_attributes();\n var textposition = require_attributes12().textposition;\n var overrideAll = require_edit_types().overrideAll;\n var templatedArray = require_plot_template().templatedArray;\n var constants = require_constants27();\n var fontAttr = fontAttrs({\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n fontAttr.family.dflt = \"Open Sans Regular, Arial Unicode MS Regular\";\n var attrs = module.exports = overrideAll({\n _arrayAttrRegexps: [Lib.counterRegex(\"map\", \".layers\", true)],\n domain: domainAttrs({ name: \"map\" }),\n style: {\n valType: \"any\",\n values: constants.styleValuesMap,\n dflt: constants.styleValueDflt\n },\n center: {\n lon: {\n valType: \"number\",\n dflt: 0\n },\n lat: {\n valType: \"number\",\n dflt: 0\n }\n },\n zoom: {\n valType: \"number\",\n dflt: 1\n },\n bearing: {\n valType: \"number\",\n dflt: 0\n },\n pitch: {\n valType: \"number\",\n dflt: 0\n },\n bounds: {\n west: {\n valType: \"number\"\n },\n east: {\n valType: \"number\"\n },\n south: {\n valType: \"number\"\n },\n north: {\n valType: \"number\"\n }\n },\n layers: templatedArray(\"layer\", {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n sourcetype: {\n valType: \"enumerated\",\n values: [\"geojson\", \"vector\", \"raster\", \"image\"],\n dflt: \"geojson\"\n },\n source: {\n valType: \"any\"\n },\n sourcelayer: {\n valType: \"string\",\n dflt: \"\"\n },\n sourceattribution: {\n valType: \"string\"\n },\n type: {\n valType: \"enumerated\",\n values: [\"circle\", \"line\", \"fill\", \"symbol\", \"raster\"],\n dflt: \"circle\"\n },\n coordinates: {\n valType: \"any\"\n },\n // attributes shared between all types\n below: {\n valType: \"string\"\n },\n color: {\n valType: \"color\",\n dflt: defaultLine\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n minzoom: {\n valType: \"number\",\n min: 0,\n max: 24,\n dflt: 0\n },\n maxzoom: {\n valType: \"number\",\n min: 0,\n max: 24,\n dflt: 24\n },\n // type-specific style attributes\n circle: {\n radius: {\n valType: \"number\",\n dflt: 15\n }\n },\n line: {\n width: {\n valType: \"number\",\n dflt: 2\n },\n dash: {\n valType: \"data_array\"\n }\n },\n fill: {\n outlinecolor: {\n valType: \"color\",\n dflt: defaultLine\n }\n },\n symbol: {\n icon: {\n valType: \"string\",\n dflt: \"marker\"\n },\n iconsize: {\n valType: \"number\",\n dflt: 10\n },\n text: {\n valType: \"string\",\n dflt: \"\"\n },\n placement: {\n valType: \"enumerated\",\n values: [\"point\", \"line\", \"line-center\"],\n dflt: \"point\"\n },\n textfont: fontAttr,\n textposition: Lib.extendFlat({}, textposition, { arrayOk: false })\n }\n })\n }, \"plot\", \"from-root\");\n attrs.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n }\n });\n\n // src/traces/scattermap/attributes.js\n var require_attributes57 = __commonJS({\n \"src/traces/scattermap/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterGeoAttrs = require_attributes48();\n var scatterAttrs = require_attributes12();\n var mapAttrs = require_layout_attributes20();\n var baseAttrs = require_attributes2();\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var mapLayoutAtributes = require_layout_attributes20();\n var lineAttrs = scatterGeoAttrs.line;\n var markerAttrs = scatterGeoAttrs.marker;\n module.exports = overrideAll({\n lon: scatterGeoAttrs.lon,\n lat: scatterGeoAttrs.lat,\n cluster: {\n enabled: {\n valType: \"boolean\"\n },\n maxzoom: extendFlat({}, mapLayoutAtributes.layers.maxzoom, {}),\n step: {\n valType: \"number\",\n arrayOk: true,\n dflt: -1,\n min: -1\n },\n size: {\n valType: \"number\",\n arrayOk: true,\n dflt: 20,\n min: 0\n },\n color: {\n valType: \"color\",\n arrayOk: true\n },\n opacity: extendFlat({}, markerAttrs.opacity, {\n dflt: 1\n })\n },\n // locations\n // locationmode\n mode: extendFlat({}, scatterAttrs.mode, {\n dflt: \"markers\"\n }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"lat\", \"lon\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width\n // TODO\n // dash: dash\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: extendFlat(\n {\n symbol: {\n valType: \"string\",\n dflt: \"circle\",\n arrayOk: true\n },\n angle: {\n valType: \"number\",\n dflt: \"auto\",\n arrayOk: true\n },\n allowoverlap: {\n valType: \"boolean\",\n dflt: false\n },\n opacity: markerAttrs.opacity,\n size: markerAttrs.size,\n sizeref: markerAttrs.sizeref,\n sizemin: markerAttrs.sizemin,\n sizemode: markerAttrs.sizemode\n },\n colorScaleAttrs(\"marker\")\n // line\n ),\n fill: scatterGeoAttrs.fill,\n fillcolor: makeFillcolorAttr(),\n textfont: mapAttrs.layers.symbol.textfont,\n textposition: mapAttrs.layers.symbol.textposition,\n below: {\n valType: \"string\"\n },\n selected: {\n marker: scatterAttrs.selected.marker\n },\n unselected: {\n marker: scatterAttrs.unselected.marker\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs()\n }, \"calc\", \"nested\");\n }\n });\n\n // src/traces/scattermap/constants.js\n var require_constants28 = __commonJS({\n \"src/traces/scattermap/constants.js\"(exports, module) {\n \"use strict\";\n var supportedFonts = [\n \"Metropolis Black Italic\",\n \"Metropolis Black\",\n \"Metropolis Bold Italic\",\n \"Metropolis Bold\",\n \"Metropolis Extra Bold Italic\",\n \"Metropolis Extra Bold\",\n \"Metropolis Extra Light Italic\",\n \"Metropolis Extra Light\",\n \"Metropolis Light Italic\",\n \"Metropolis Light\",\n \"Metropolis Medium Italic\",\n \"Metropolis Medium\",\n \"Metropolis Regular Italic\",\n \"Metropolis Regular\",\n \"Metropolis Semi Bold Italic\",\n \"Metropolis Semi Bold\",\n \"Metropolis Thin Italic\",\n \"Metropolis Thin\",\n \"Open Sans Bold Italic\",\n \"Open Sans Bold\",\n \"Open Sans Extrabold Italic\",\n \"Open Sans Extrabold\",\n \"Open Sans Italic\",\n \"Open Sans Light Italic\",\n \"Open Sans Light\",\n \"Open Sans Regular\",\n \"Open Sans Semibold Italic\",\n \"Open Sans Semibold\",\n \"Klokantech Noto Sans Bold\",\n \"Klokantech Noto Sans CJK Bold\",\n \"Klokantech Noto Sans CJK Regular\",\n \"Klokantech Noto Sans Italic\",\n \"Klokantech Noto Sans Regular\"\n ];\n module.exports = {\n isSupportedFont: function(a) {\n return supportedFonts.indexOf(a) !== -1;\n }\n };\n }\n });\n\n // src/traces/scattermap/defaults.js\n var require_defaults53 = __commonJS({\n \"src/traces/scattermap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes57();\n var isSupportedFont = require_constants28().isSupportedFont;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleLonLatDefaults(traceIn, traceOut, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n coerce(\"texttemplate\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"mode\");\n coerce(\"below\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noLine: true, noAngle: true });\n coerce(\"marker.allowoverlap\");\n coerce(\"marker.angle\");\n var marker = traceOut.marker;\n if (marker.symbol !== \"circle\") {\n if (Lib.isArrayOrTypedArray(marker.size)) marker.size = marker.size[0];\n if (Lib.isArrayOrTypedArray(marker.color)) marker.color = marker.color[0];\n }\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noDash: true });\n coerce(\"connectgaps\");\n }\n var clusterMaxzoom = coerce2(\"cluster.maxzoom\");\n var clusterStep = coerce2(\"cluster.step\");\n var clusterColor = coerce2(\"cluster.color\", traceOut.marker && traceOut.marker.color || defaultColor);\n var clusterSize = coerce2(\"cluster.size\");\n var clusterOpacity = coerce2(\"cluster.opacity\");\n var clusterEnabledDflt = clusterMaxzoom !== false || clusterStep !== false || clusterColor !== false || clusterSize !== false || clusterOpacity !== false;\n var clusterEnabled = coerce(\"cluster.enabled\", clusterEnabledDflt);\n if (clusterEnabled || subTypes.hasText(traceOut)) {\n var layoutFontFamily = layout.font.family;\n handleTextDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n {\n noSelect: true,\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true,\n font: {\n family: isSupportedFont(layoutFontFamily) ? layoutFontFamily : \"Open Sans Regular\",\n weight: layout.font.weight,\n style: layout.font.style,\n size: layout.font.size,\n color: layout.font.color\n }\n }\n );\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n function handleLonLatDefaults(traceIn, traceOut, coerce) {\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n var len = Math.min(lon.length, lat.length);\n traceOut._length = len;\n return len;\n }\n }\n });\n\n // src/traces/scattermap/format_labels.js\n var require_format_labels6 = __commonJS({\n \"src/traces/scattermap/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n var ax = subplot.mockAxis;\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n return labels;\n };\n }\n });\n\n // src/plots/map/convert_text_opts.js\n var require_convert_text_opts2 = __commonJS({\n \"src/plots/map/convert_text_opts.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function convertTextOpts(textposition, iconSize) {\n var parts = textposition.split(\" \");\n var vPos = parts[0];\n var hPos = parts[1];\n var factor = Lib.isArrayOrTypedArray(iconSize) ? Lib.mean(iconSize) : iconSize;\n var xInc = 0.5 + factor / 100;\n var yInc = 1.5 + factor / 100;\n var anchorVals = [\"\", \"\"];\n var offset = [0, 0];\n switch (vPos) {\n case \"top\":\n anchorVals[0] = \"top\";\n offset[1] = -yInc;\n break;\n case \"bottom\":\n anchorVals[0] = \"bottom\";\n offset[1] = yInc;\n break;\n }\n switch (hPos) {\n case \"left\":\n anchorVals[1] = \"right\";\n offset[0] = -xInc;\n break;\n case \"right\":\n anchorVals[1] = \"left\";\n offset[0] = xInc;\n break;\n }\n var anchor;\n if (anchorVals[0] && anchorVals[1]) anchor = anchorVals.join(\"-\");\n else if (anchorVals[0]) anchor = anchorVals[0];\n else if (anchorVals[1]) anchor = anchorVals[1];\n else anchor = \"center\";\n return { anchor, offset };\n };\n }\n });\n\n // src/traces/scattermap/convert.js\n var require_convert14 = __commonJS({\n \"src/traces/scattermap/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var geoJsonUtils = require_geojson_utils();\n var Colorscale = require_colorscale();\n var Drawing = require_drawing();\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var subTypes = require_subtypes();\n var isSupportedFont = require_constants28().isSupportedFont;\n var convertTextOpts = require_convert_text_opts2();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var NEWLINES = require_svg_text_utils().NEWLINES;\n var BR_TAG_ALL = require_svg_text_utils().BR_TAG_ALL;\n module.exports = function convert(gd, calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var hasFill = trace.fill !== \"none\";\n var hasLines = subTypes.hasLines(trace);\n var hasMarkers = subTypes.hasMarkers(trace);\n var hasText = subTypes.hasText(trace);\n var hasCircles = hasMarkers && trace.marker.symbol === \"circle\";\n var hasSymbols = hasMarkers && trace.marker.symbol !== \"circle\";\n var hasCluster = trace.cluster && trace.cluster.enabled;\n var fill = initContainer(\"fill\");\n var line = initContainer(\"line\");\n var circle = initContainer(\"circle\");\n var symbol = initContainer(\"symbol\");\n var opts = {\n fill,\n line,\n circle,\n symbol\n };\n if (!isVisible) return opts;\n var lineCoords;\n if (hasFill || hasLines) {\n lineCoords = geoJsonUtils.calcTraceToLineCoords(calcTrace);\n }\n if (hasFill) {\n fill.geojson = geoJsonUtils.makePolygon(lineCoords);\n fill.layout.visibility = \"visible\";\n Lib.extendFlat(fill.paint, {\n \"fill-color\": trace.fillcolor\n });\n }\n if (hasLines) {\n line.geojson = geoJsonUtils.makeLine(lineCoords);\n line.layout.visibility = \"visible\";\n Lib.extendFlat(line.paint, {\n \"line-width\": trace.line.width,\n \"line-color\": trace.line.color,\n \"line-opacity\": trace.opacity\n });\n }\n if (hasCircles) {\n var circleOpts = makeCircleOpts(calcTrace);\n circle.geojson = circleOpts.geojson;\n circle.layout.visibility = \"visible\";\n if (hasCluster) {\n circle.filter = [\"!\", [\"has\", \"point_count\"]];\n opts.cluster = {\n type: \"circle\",\n filter: [\"has\", \"point_count\"],\n layout: { visibility: \"visible\" },\n paint: {\n \"circle-color\": arrayifyAttribute(trace.cluster.color, trace.cluster.step),\n \"circle-radius\": arrayifyAttribute(trace.cluster.size, trace.cluster.step),\n \"circle-opacity\": arrayifyAttribute(trace.cluster.opacity, trace.cluster.step)\n }\n };\n opts.clusterCount = {\n type: \"symbol\",\n filter: [\"has\", \"point_count\"],\n paint: {},\n layout: {\n \"text-field\": \"{point_count_abbreviated}\",\n \"text-font\": getTextFont(trace),\n \"text-size\": 12\n }\n };\n }\n Lib.extendFlat(circle.paint, {\n \"circle-color\": circleOpts.mcc,\n \"circle-radius\": circleOpts.mrc,\n \"circle-opacity\": circleOpts.mo\n });\n }\n if (hasCircles && hasCluster) {\n circle.filter = [\"!\", [\"has\", \"point_count\"]];\n }\n if (hasSymbols || hasText) {\n symbol.geojson = makeSymbolGeoJSON(calcTrace, gd);\n Lib.extendFlat(symbol.layout, {\n visibility: \"visible\",\n \"icon-image\": \"{symbol}-15\",\n \"text-field\": \"{text}\"\n });\n if (hasSymbols) {\n Lib.extendFlat(symbol.layout, {\n \"icon-size\": trace.marker.size / 10\n });\n if (\"angle\" in trace.marker && trace.marker.angle !== \"auto\") {\n Lib.extendFlat(symbol.layout, {\n // unfortunately cant use {angle} do to this issue:\n // https://github.com/mapbox/mapbox-gl-js/issues/873\n \"icon-rotate\": {\n type: \"identity\",\n property: \"angle\"\n },\n \"icon-rotation-alignment\": \"map\"\n });\n }\n symbol.layout[\"icon-allow-overlap\"] = trace.marker.allowoverlap;\n Lib.extendFlat(symbol.paint, {\n \"icon-opacity\": trace.opacity * trace.marker.opacity,\n // TODO does not work ??\n \"icon-color\": trace.marker.color\n });\n }\n if (hasText) {\n var iconSize = (trace.marker || {}).size;\n var textOpts = convertTextOpts(trace.textposition, iconSize);\n Lib.extendFlat(symbol.layout, {\n \"text-size\": trace.textfont.size,\n \"text-anchor\": textOpts.anchor,\n \"text-offset\": textOpts.offset,\n \"text-font\": getTextFont(trace)\n });\n Lib.extendFlat(symbol.paint, {\n \"text-color\": trace.textfont.color,\n \"text-opacity\": trace.opacity\n });\n }\n }\n return opts;\n };\n function initContainer(type) {\n return {\n type,\n geojson: geoJsonUtils.makeBlank(),\n layout: { visibility: \"none\" },\n filter: null,\n paint: {}\n };\n }\n function makeCircleOpts(calcTrace) {\n var trace = calcTrace[0].trace;\n var marker = trace.marker;\n var selectedpoints = trace.selectedpoints;\n var arrayColor = Lib.isArrayOrTypedArray(marker.color);\n var arraySize = Lib.isArrayOrTypedArray(marker.size);\n var arrayOpacity = Lib.isArrayOrTypedArray(marker.opacity);\n var i;\n function addTraceOpacity(o) {\n return trace.opacity * o;\n }\n function size2radius(s) {\n return s / 2;\n }\n var colorFn;\n if (arrayColor) {\n if (Colorscale.hasColorscale(trace, \"marker\")) {\n colorFn = Colorscale.makeColorScaleFuncFromTrace(marker);\n } else {\n colorFn = Lib.identity;\n }\n }\n var sizeFn;\n if (arraySize) {\n sizeFn = makeBubbleSizeFn(trace);\n }\n var opacityFn;\n if (arrayOpacity) {\n opacityFn = function(mo) {\n var mo2 = isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0;\n return addTraceOpacity(mo2);\n };\n }\n var features = [];\n for (i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n if (isBADNUM(lonlat)) continue;\n var props = {};\n if (colorFn) props.mcc = calcPt.mcc = colorFn(calcPt.mc);\n if (sizeFn) props.mrc = calcPt.mrc = sizeFn(calcPt.ms);\n if (opacityFn) props.mo = opacityFn(calcPt.mo);\n if (selectedpoints) props.selected = calcPt.selected || 0;\n features.push({\n type: \"Feature\",\n id: i + 1,\n geometry: { type: \"Point\", coordinates: lonlat },\n properties: props\n });\n }\n var fns;\n if (selectedpoints) {\n fns = Drawing.makeSelectedPointStyleFns(trace);\n for (i = 0; i < features.length; i++) {\n var d = features[i].properties;\n if (fns.selectedOpacityFn) {\n d.mo = addTraceOpacity(fns.selectedOpacityFn(d));\n }\n if (fns.selectedColorFn) {\n d.mcc = fns.selectedColorFn(d);\n }\n if (fns.selectedSizeFn) {\n d.mrc = fns.selectedSizeFn(d);\n }\n }\n }\n return {\n geojson: { type: \"FeatureCollection\", features },\n mcc: arrayColor || fns && fns.selectedColorFn ? { type: \"identity\", property: \"mcc\" } : marker.color,\n mrc: arraySize || fns && fns.selectedSizeFn ? { type: \"identity\", property: \"mrc\" } : size2radius(marker.size),\n mo: arrayOpacity || fns && fns.selectedOpacityFn ? { type: \"identity\", property: \"mo\" } : addTraceOpacity(marker.opacity)\n };\n }\n function makeSymbolGeoJSON(calcTrace, gd) {\n var fullLayout = gd._fullLayout;\n var trace = calcTrace[0].trace;\n var marker = trace.marker || {};\n var symbol = marker.symbol;\n var angle = marker.angle;\n var fillSymbol = symbol !== \"circle\" ? getFillFunc(symbol) : blankFillFunc;\n var fillAngle = angle !== \"auto\" ? getFillFunc(angle, true) : blankFillFunc;\n var fillText = subTypes.hasText(trace) ? getFillFunc(trace.text) : blankFillFunc;\n var features = [];\n for (var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n if (isBADNUM(calcPt.lonlat)) continue;\n var texttemplate = trace.texttemplate;\n var text;\n if (texttemplate) {\n var tt = Array.isArray(texttemplate) ? texttemplate[i] || \"\" : texttemplate;\n var labels = trace._module.formatLabels(calcPt, trace, fullLayout);\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, calcPt.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(tt, labels, fullLayout._d3locale, pointValues, calcPt, meta);\n } else {\n text = fillText(i);\n }\n if (text) {\n text = text.replace(NEWLINES, \"\").replace(BR_TAG_ALL, \"\\n\");\n }\n features.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: calcPt.lonlat\n },\n properties: {\n symbol: fillSymbol(i),\n angle: fillAngle(i),\n text\n }\n });\n }\n return {\n type: \"FeatureCollection\",\n features\n };\n }\n function getFillFunc(attr, numeric) {\n if (Lib.isArrayOrTypedArray(attr)) {\n if (numeric) {\n return function(i) {\n return isNumeric(attr[i]) ? +attr[i] : 0;\n };\n }\n return function(i) {\n return attr[i];\n };\n } else if (attr) {\n return function() {\n return attr;\n };\n } else {\n return blankFillFunc;\n }\n }\n function blankFillFunc() {\n return \"\";\n }\n function isBADNUM(lonlat) {\n return lonlat[0] === BADNUM;\n }\n function arrayifyAttribute(values, step) {\n var newAttribute;\n if (Lib.isArrayOrTypedArray(values) && Lib.isArrayOrTypedArray(step)) {\n newAttribute = [\"step\", [\"get\", \"point_count\"], values[0]];\n for (var idx = 1; idx < values.length; idx++) {\n newAttribute.push(step[idx - 1], values[idx]);\n }\n } else {\n newAttribute = values;\n }\n return newAttribute;\n }\n function getTextFont(trace) {\n var font = trace.textfont;\n var family = font.family;\n var style = font.style;\n var weight = font.weight;\n var parts = family.split(\" \");\n var isItalic = parts[parts.length - 1] === \"Italic\";\n if (isItalic) parts.pop();\n isItalic = isItalic || style === \"italic\";\n var str = parts.join(\" \");\n if (weight === \"bold\" && parts.indexOf(\"Bold\") === -1) {\n str += \" Bold\";\n } else if (weight <= 1e3) {\n if (parts[0] === \"Metropolis\") {\n str = \"Metropolis\";\n if (weight > 850) str += \" Black\";\n else if (weight > 750) str += \" Extra Bold\";\n else if (weight > 650) str += \" Bold\";\n else if (weight > 550) str += \" Semi Bold\";\n else if (weight > 450) str += \" Medium\";\n else if (weight > 350) str += \" Regular\";\n else if (weight > 250) str += \" Light\";\n else if (weight > 150) str += \" Extra Light\";\n else str += \" Thin\";\n } else if (parts.slice(0, 2).join(\" \") === \"Open Sans\") {\n str = \"Open Sans\";\n if (weight > 750) str += \" Extrabold\";\n else if (weight > 650) str += \" Bold\";\n else if (weight > 550) str += \" Semibold\";\n else if (weight > 350) str += \" Regular\";\n else str += \" Light\";\n } else if (parts.slice(0, 3).join(\" \") === \"Klokantech Noto Sans\") {\n str = \"Klokantech Noto Sans\";\n if (parts[3] === \"CJK\") str += \" CJK\";\n str += weight > 500 ? \" Bold\" : \" Regular\";\n }\n }\n if (isItalic) str += \" Italic\";\n if (str === \"Open Sans Regular Italic\") str = \"Open Sans Italic\";\n else if (str === \"Open Sans Regular Bold\") str = \"Open Sans Bold\";\n else if (str === \"Open Sans Regular Bold Italic\") str = \"Open Sans Bold Italic\";\n else if (str === \"Klokantech Noto Sans Regular Italic\") str = \"Klokantech Noto Sans Italic\";\n if (!isSupportedFont(str)) {\n str = family;\n }\n var textFont = str.split(\", \");\n return textFont;\n }\n }\n });\n\n // src/traces/scattermap/plot.js\n var require_plot26 = __commonJS({\n \"src/traces/scattermap/plot.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var convert = require_convert14();\n var LAYER_PREFIX = require_constants27().traceLayerPrefix;\n var ORDER = {\n cluster: [\"cluster\", \"clusterCount\", \"circle\"],\n nonCluster: [\"fill\", \"line\", \"circle\", \"symbol\"]\n };\n function ScatterMap(subplot, uid, clusterEnabled, isHidden) {\n this.type = \"scattermap\";\n this.subplot = subplot;\n this.uid = uid;\n this.clusterEnabled = clusterEnabled;\n this.isHidden = isHidden;\n this.sourceIds = {\n fill: \"source-\" + uid + \"-fill\",\n line: \"source-\" + uid + \"-line\",\n circle: \"source-\" + uid + \"-circle\",\n symbol: \"source-\" + uid + \"-symbol\",\n cluster: \"source-\" + uid + \"-circle\",\n clusterCount: \"source-\" + uid + \"-circle\"\n };\n this.layerIds = {\n fill: LAYER_PREFIX + uid + \"-fill\",\n line: LAYER_PREFIX + uid + \"-line\",\n circle: LAYER_PREFIX + uid + \"-circle\",\n symbol: LAYER_PREFIX + uid + \"-symbol\",\n cluster: LAYER_PREFIX + uid + \"-cluster\",\n clusterCount: LAYER_PREFIX + uid + \"-cluster-count\"\n };\n this.below = null;\n }\n var proto = ScatterMap.prototype;\n proto.addSource = function(k, opts, cluster) {\n var sourceOpts = {\n type: \"geojson\",\n data: opts.geojson\n };\n if (cluster && cluster.enabled) {\n Lib.extendFlat(sourceOpts, {\n cluster: true,\n clusterMaxZoom: cluster.maxzoom\n });\n }\n var isSourceExists = this.subplot.map.getSource(this.sourceIds[k]);\n if (isSourceExists) {\n isSourceExists.setData(opts.geojson);\n } else {\n this.subplot.map.addSource(this.sourceIds[k], sourceOpts);\n }\n };\n proto.setSourceData = function(k, opts) {\n this.subplot.map.getSource(this.sourceIds[k]).setData(opts.geojson);\n };\n proto.addLayer = function(k, opts, below) {\n var source = {\n type: opts.type,\n id: this.layerIds[k],\n source: this.sourceIds[k],\n layout: opts.layout,\n paint: opts.paint\n };\n if (opts.filter) {\n source.filter = opts.filter;\n }\n var currentLayerId = this.layerIds[k];\n var layerExist;\n var layers = this.subplot.getMapLayers();\n for (var i = 0; i < layers.length; i++) {\n if (layers[i].id === currentLayerId) {\n layerExist = true;\n break;\n }\n }\n if (layerExist) {\n this.subplot.setOptions(currentLayerId, \"setLayoutProperty\", source.layout);\n if (source.layout.visibility === \"visible\") {\n this.subplot.setOptions(currentLayerId, \"setPaintProperty\", source.paint);\n }\n } else {\n this.subplot.addLayer(source, below);\n }\n };\n proto.update = function update(calcTrace) {\n var trace = calcTrace[0].trace;\n var subplot = this.subplot;\n var map = subplot.map;\n var optsAll = convert(subplot.gd, calcTrace);\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n var hasCluster = !!(trace.cluster && trace.cluster.enabled);\n var hadCluster = !!this.clusterEnabled;\n var lThis = this;\n function addCluster(noSource) {\n if (!noSource) lThis.addSource(\"circle\", optsAll.circle, trace.cluster);\n var order = ORDER.cluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n lThis.addLayer(k, opts, below);\n }\n }\n function removeCluster(noSource) {\n var order = ORDER.cluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(lThis.layerIds[k]);\n }\n if (!noSource) map.removeSource(lThis.sourceIds.circle);\n }\n function addNonCluster(noSource) {\n var order = ORDER.nonCluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n if (!noSource) lThis.addSource(k, opts);\n lThis.addLayer(k, opts, below);\n }\n }\n function removeNonCluster(noSource) {\n var order = ORDER.nonCluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(lThis.layerIds[k]);\n if (!noSource) map.removeSource(lThis.sourceIds[k]);\n }\n }\n function remove(noSource) {\n if (hadCluster) removeCluster(noSource);\n else removeNonCluster(noSource);\n }\n function add(noSource) {\n if (hasCluster) addCluster(noSource);\n else addNonCluster(noSource);\n }\n function repaint() {\n var order = hasCluster ? ORDER.cluster : ORDER.nonCluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n if (!opts) continue;\n subplot.setOptions(lThis.layerIds[k], \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n if (k !== \"cluster\") {\n lThis.setSourceData(k, opts);\n }\n subplot.setOptions(lThis.layerIds[k], \"setPaintProperty\", opts.paint);\n }\n }\n }\n var wasHidden = this.isHidden;\n var isHidden = trace.visible !== true;\n if (isHidden) {\n if (!wasHidden) remove();\n } else if (wasHidden) {\n if (!isHidden) add();\n } else if (hadCluster !== hasCluster) {\n remove();\n add();\n } else if (this.below !== below) {\n remove(true);\n add(true);\n repaint();\n } else {\n repaint();\n }\n this.clusterEnabled = hasCluster;\n this.isHidden = isHidden;\n this.below = below;\n calcTrace[0].trace._glTrace = this;\n };\n proto.dispose = function dispose() {\n var map = this.subplot.map;\n var order = this.clusterEnabled ? ORDER.cluster : ORDER.nonCluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(this.layerIds[k]);\n map.removeSource(this.sourceIds[k]);\n }\n };\n module.exports = function createScatterMap(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var hasCluster = trace.cluster && trace.cluster.enabled;\n var isHidden = trace.visible !== true;\n var scatterMap = new ScatterMap(\n subplot,\n trace.uid,\n hasCluster,\n isHidden\n );\n var optsAll = convert(subplot.gd, calcTrace);\n var below = scatterMap.below = subplot.belowLookup[\"trace-\" + trace.uid];\n var i, k, opts;\n if (hasCluster) {\n scatterMap.addSource(\"circle\", optsAll.circle, trace.cluster);\n for (i = 0; i < ORDER.cluster.length; i++) {\n k = ORDER.cluster[i];\n opts = optsAll[k];\n scatterMap.addLayer(k, opts, below);\n }\n } else {\n for (i = 0; i < ORDER.nonCluster.length; i++) {\n k = ORDER.nonCluster[i];\n opts = optsAll[k];\n scatterMap.addSource(k, opts, trace.cluster);\n scatterMap.addLayer(k, opts, below);\n }\n }\n calcTrace[0].trace._glTrace = scatterMap;\n return scatterMap;\n };\n }\n });\n\n // src/traces/scattermap/hover.js\n var require_hover20 = __commonJS({\n \"src/traces/scattermap/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var getTraceColor = require_get_trace_color();\n var fillText = Lib.fillText;\n var BADNUM = require_numerical().BADNUM;\n var LAYER_PREFIX = require_constants27().traceLayerPrefix;\n function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var subplot = pointData.subplot;\n var clusteredPointsIds = [];\n var layer = LAYER_PREFIX + trace.uid + \"-circle\";\n var hasCluster = trace.cluster && trace.cluster.enabled;\n if (hasCluster) {\n var elems = subplot.map.queryRenderedFeatures(null, { layers: [layer] });\n clusteredPointsIds = elems.map(function(elem) {\n return elem.id;\n });\n }\n var winding = xval >= 0 ? Math.floor((xval + 180) / 360) : Math.ceil((xval - 180) / 360);\n var lonShift = winding * 360;\n var xval2 = xval - lonShift;\n function distFn(d) {\n var lonlat2 = d.lonlat;\n if (lonlat2[0] === BADNUM) return Infinity;\n if (hasCluster && clusteredPointsIds.indexOf(d.i + 1) === -1) return Infinity;\n var lon = Lib.modHalf(lonlat2[0], 360);\n var lat = lonlat2[1];\n var pt = subplot.project([lon, lat]);\n var dx = pt.x - xa.c2p([xval2, lat]);\n var dy = pt.y - ya.c2p([lon, yval]);\n var rad2 = Math.max(3, d.mrc || 0);\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad2, 1 - 3 / rad2);\n }\n Fx.getClosest(cd, distFn, pointData);\n if (pointData.index === false) return;\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]];\n var xc = xa.c2p(lonlatShifted);\n var yc = ya.c2p(lonlatShifted);\n var rad = di.mrc || 1;\n pointData.x0 = xc - rad;\n pointData.x1 = xc + rad;\n pointData.y0 = yc - rad;\n pointData.y1 = yc + rad;\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n return [pointData];\n }\n function getExtraText(trace, di, labels) {\n if (trace.hovertemplate) return;\n var hoverinfo = di.hi || trace.hoverinfo;\n var parts = hoverinfo.split(\"+\");\n var isAll = parts.indexOf(\"all\") !== -1;\n var hasLon = parts.indexOf(\"lon\") !== -1;\n var hasLat = parts.indexOf(\"lat\") !== -1;\n var lonlat = di.lonlat;\n var text = [];\n function format(v) {\n return v + \"\\xB0\";\n }\n if (isAll || hasLon && hasLat) {\n text.push(\"(\" + format(lonlat[1]) + \", \" + format(lonlat[0]) + \")\");\n } else if (hasLon) {\n text.push(labels.lon + format(lonlat[0]));\n } else if (hasLat) {\n text.push(labels.lat + format(lonlat[1]));\n }\n if (isAll || parts.indexOf(\"text\") !== -1) {\n fillText(di, trace, text);\n }\n return text.join(\"
\");\n }\n module.exports = {\n hoverPoints,\n getExtraText\n };\n }\n });\n\n // src/traces/scattermap/event_data.js\n var require_event_data13 = __commonJS({\n \"src/traces/scattermap/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n return out;\n };\n }\n });\n\n // src/traces/scattermap/select.js\n var require_select10 = __commonJS({\n \"src/traces/scattermap/select.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subtypes = require_subtypes();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n if (!subtypes.hasMarkers(trace)) return [];\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n var di = cd[i];\n var lonlat = di.lonlat;\n if (lonlat[0] !== BADNUM) {\n var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]];\n var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];\n if (selectionTester.contains(xy, null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n }\n return selection;\n };\n }\n });\n\n // node_modules/maplibre-gl/dist/maplibre-gl.js\n var require_maplibre_gl = __commonJS({\n \"node_modules/maplibre-gl/dist/maplibre-gl.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? module.exports = factory() : typeof define === \"function\" && false ? define(factory) : (global2 = typeof globalThis !== \"undefined\" ? globalThis : global2 || self, global2.maplibregl = factory());\n })(exports, function() {\n \"use strict\";\n var maplibregl = {};\n var modules = {};\n function define2(moduleName, _dependencies, moduleFactory) {\n modules[moduleName] = moduleFactory;\n if (moduleName !== \"index\") {\n return;\n }\n var workerBundleString = \"var sharedModule = {}; (\" + modules.shared + \")(sharedModule); (\" + modules.worker + \")(sharedModule);\";\n var sharedModule = {};\n modules.shared(sharedModule);\n modules.index(maplibregl, sharedModule);\n if (typeof window !== \"undefined\") {\n maplibregl.setWorkerUrl(window.URL.createObjectURL(new Blob([workerBundleString], { type: \"text/javascript\" })));\n }\n return maplibregl;\n }\n ;\n define2(\"shared\", [\"exports\"], function(t) {\n \"use strict\";\n function e(t4, e2, r2, n2) {\n return new (r2 || (r2 = Promise))(function(i2, s2) {\n function a2(t5) {\n try {\n l2(n2.next(t5));\n } catch (t6) {\n s2(t6);\n }\n }\n function o2(t5) {\n try {\n l2(n2.throw(t5));\n } catch (t6) {\n s2(t6);\n }\n }\n function l2(t5) {\n var e3;\n t5.done ? i2(t5.value) : (e3 = t5.value, e3 instanceof r2 ? e3 : new r2(function(t6) {\n t6(e3);\n })).then(a2, o2);\n }\n l2((n2 = n2.apply(t4, e2 || [])).next());\n });\n }\n function r(t4) {\n return t4 && t4.__esModule && Object.prototype.hasOwnProperty.call(t4, \"default\") ? t4.default : t4;\n }\n \"function\" == typeof SuppressedError && SuppressedError;\n var n = i;\n function i(t4, e2) {\n this.x = t4, this.y = e2;\n }\n i.prototype = { clone: function() {\n return new i(this.x, this.y);\n }, add: function(t4) {\n return this.clone()._add(t4);\n }, sub: function(t4) {\n return this.clone()._sub(t4);\n }, multByPoint: function(t4) {\n return this.clone()._multByPoint(t4);\n }, divByPoint: function(t4) {\n return this.clone()._divByPoint(t4);\n }, mult: function(t4) {\n return this.clone()._mult(t4);\n }, div: function(t4) {\n return this.clone()._div(t4);\n }, rotate: function(t4) {\n return this.clone()._rotate(t4);\n }, rotateAround: function(t4, e2) {\n return this.clone()._rotateAround(t4, e2);\n }, matMult: function(t4) {\n return this.clone()._matMult(t4);\n }, unit: function() {\n return this.clone()._unit();\n }, perp: function() {\n return this.clone()._perp();\n }, round: function() {\n return this.clone()._round();\n }, mag: function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n }, equals: function(t4) {\n return this.x === t4.x && this.y === t4.y;\n }, dist: function(t4) {\n return Math.sqrt(this.distSqr(t4));\n }, distSqr: function(t4) {\n var e2 = t4.x - this.x, r2 = t4.y - this.y;\n return e2 * e2 + r2 * r2;\n }, angle: function() {\n return Math.atan2(this.y, this.x);\n }, angleTo: function(t4) {\n return Math.atan2(this.y - t4.y, this.x - t4.x);\n }, angleWith: function(t4) {\n return this.angleWithSep(t4.x, t4.y);\n }, angleWithSep: function(t4, e2) {\n return Math.atan2(this.x * e2 - this.y * t4, this.x * t4 + this.y * e2);\n }, _matMult: function(t4) {\n var e2 = t4[2] * this.x + t4[3] * this.y;\n return this.x = t4[0] * this.x + t4[1] * this.y, this.y = e2, this;\n }, _add: function(t4) {\n return this.x += t4.x, this.y += t4.y, this;\n }, _sub: function(t4) {\n return this.x -= t4.x, this.y -= t4.y, this;\n }, _mult: function(t4) {\n return this.x *= t4, this.y *= t4, this;\n }, _div: function(t4) {\n return this.x /= t4, this.y /= t4, this;\n }, _multByPoint: function(t4) {\n return this.x *= t4.x, this.y *= t4.y, this;\n }, _divByPoint: function(t4) {\n return this.x /= t4.x, this.y /= t4.y, this;\n }, _unit: function() {\n return this._div(this.mag()), this;\n }, _perp: function() {\n var t4 = this.y;\n return this.y = this.x, this.x = -t4, this;\n }, _rotate: function(t4) {\n var e2 = Math.cos(t4), r2 = Math.sin(t4), n2 = r2 * this.x + e2 * this.y;\n return this.x = e2 * this.x - r2 * this.y, this.y = n2, this;\n }, _rotateAround: function(t4, e2) {\n var r2 = Math.cos(t4), n2 = Math.sin(t4), i2 = e2.y + n2 * (this.x - e2.x) + r2 * (this.y - e2.y);\n return this.x = e2.x + r2 * (this.x - e2.x) - n2 * (this.y - e2.y), this.y = i2, this;\n }, _round: function() {\n return this.x = Math.round(this.x), this.y = Math.round(this.y), this;\n } }, i.convert = function(t4) {\n return t4 instanceof i ? t4 : Array.isArray(t4) ? new i(t4[0], t4[1]) : t4;\n };\n var s = r(n), a = o;\n function o(t4, e2, r2, n2) {\n this.cx = 3 * t4, this.bx = 3 * (r2 - t4) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e2, this.by = 3 * (n2 - e2) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t4, this.p1y = e2, this.p2x = r2, this.p2y = n2;\n }\n o.prototype = { sampleCurveX: function(t4) {\n return ((this.ax * t4 + this.bx) * t4 + this.cx) * t4;\n }, sampleCurveY: function(t4) {\n return ((this.ay * t4 + this.by) * t4 + this.cy) * t4;\n }, sampleCurveDerivativeX: function(t4) {\n return (3 * this.ax * t4 + 2 * this.bx) * t4 + this.cx;\n }, solveCurveX: function(t4, e2) {\n if (void 0 === e2 && (e2 = 1e-6), t4 < 0) return 0;\n if (t4 > 1) return 1;\n for (var r2 = t4, n2 = 0; n2 < 8; n2++) {\n var i2 = this.sampleCurveX(r2) - t4;\n if (Math.abs(i2) < e2) return r2;\n var s2 = this.sampleCurveDerivativeX(r2);\n if (Math.abs(s2) < 1e-6) break;\n r2 -= i2 / s2;\n }\n var a2 = 0, o2 = 1;\n for (r2 = t4, n2 = 0; n2 < 20 && (i2 = this.sampleCurveX(r2), !(Math.abs(i2 - t4) < e2)); n2++) t4 > i2 ? a2 = r2 : o2 = r2, r2 = 0.5 * (o2 - a2) + a2;\n return r2;\n }, solve: function(t4, e2) {\n return this.sampleCurveY(this.solveCurveX(t4, e2));\n } };\n var l = r(a);\n let u, c;\n function h() {\n return null == u && (u = \"undefined\" != typeof OffscreenCanvas && new OffscreenCanvas(1, 1).getContext(\"2d\") && \"function\" == typeof createImageBitmap), u;\n }\n function p() {\n if (null == c && (c = false, h())) {\n const t4 = 5, e2 = new OffscreenCanvas(t4, t4).getContext(\"2d\", { willReadFrequently: true });\n if (e2) {\n for (let r3 = 0; r3 < t4 * t4; r3++) {\n const n2 = 4 * r3;\n e2.fillStyle = `rgb(${n2},${n2 + 1},${n2 + 2})`, e2.fillRect(r3 % t4, Math.floor(r3 / t4), 1, 1);\n }\n const r2 = e2.getImageData(0, 0, t4, t4).data;\n for (let e3 = 0; e3 < t4 * t4 * 4; e3++) if (e3 % 4 != 3 && r2[e3] !== e3) {\n c = true;\n break;\n }\n }\n }\n return c || false;\n }\n function f(t4, e2, r2, n2) {\n const i2 = new l(t4, e2, r2, n2);\n return (t5) => i2.solve(t5);\n }\n const d = f(0.25, 0.1, 0.25, 1);\n function y(t4, e2, r2) {\n return Math.min(r2, Math.max(e2, t4));\n }\n function m(t4, e2, r2) {\n const n2 = r2 - e2, i2 = ((t4 - e2) % n2 + n2) % n2 + e2;\n return i2 === e2 ? r2 : i2;\n }\n function g(t4, ...e2) {\n for (const r2 of e2) for (const e3 in r2) t4[e3] = r2[e3];\n return t4;\n }\n let x = 1;\n function v(t4, e2, r2) {\n const n2 = {};\n for (const r3 in t4) n2[r3] = e2.call(this, t4[r3], r3, t4);\n return n2;\n }\n function b(t4, e2, r2) {\n const n2 = {};\n for (const r3 in t4) e2.call(this, t4[r3], r3, t4) && (n2[r3] = t4[r3]);\n return n2;\n }\n function w(t4) {\n return Array.isArray(t4) ? t4.map(w) : \"object\" == typeof t4 && t4 ? v(t4, w) : t4;\n }\n const _ = {};\n function A2(t4) {\n _[t4] || (\"undefined\" != typeof console && console.warn(t4), _[t4] = true);\n }\n function S(t4, e2, r2) {\n return (r2.y - t4.y) * (e2.x - t4.x) > (e2.y - t4.y) * (r2.x - t4.x);\n }\n function k(t4) {\n return \"undefined\" != typeof WorkerGlobalScope && void 0 !== t4 && t4 instanceof WorkerGlobalScope;\n }\n let M = null;\n function I(t4) {\n return \"undefined\" != typeof ImageBitmap && t4 instanceof ImageBitmap;\n }\n const z = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\";\n function P(t4, r2, n2, i2, s2) {\n return e(this, void 0, void 0, function* () {\n if (\"undefined\" == typeof VideoFrame) throw new Error(\"VideoFrame not supported\");\n const e2 = new VideoFrame(t4, { timestamp: 0 });\n try {\n const a2 = null == e2 ? void 0 : e2.format;\n if (!a2 || !a2.startsWith(\"BGR\") && !a2.startsWith(\"RGB\")) throw new Error(`Unrecognized format ${a2}`);\n const o2 = a2.startsWith(\"BGR\"), l2 = new Uint8ClampedArray(i2 * s2 * 4);\n if (yield e2.copyTo(l2, function(t5, e3, r3, n3, i3) {\n const s3 = 4 * Math.max(-e3, 0), a3 = (Math.max(0, r3) - r3) * n3 * 4 + s3, o3 = 4 * n3, l3 = Math.max(0, e3), u2 = Math.max(0, r3);\n return { rect: { x: l3, y: u2, width: Math.min(t5.width, e3 + n3) - l3, height: Math.min(t5.height, r3 + i3) - u2 }, layout: [{ offset: a3, stride: o3 }] };\n }(t4, r2, n2, i2, s2)), o2) for (let t5 = 0; t5 < l2.length; t5 += 4) {\n const e3 = l2[t5];\n l2[t5] = l2[t5 + 2], l2[t5 + 2] = e3;\n }\n return l2;\n } finally {\n e2.close();\n }\n });\n }\n let C2, B2;\n const V = \"AbortError\";\n function E2() {\n return new Error(V);\n }\n const F = { MAX_PARALLEL_IMAGE_REQUESTS: 16, MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME: 8, MAX_TILE_CACHE_ZOOM_LEVELS: 5, REGISTERED_PROTOCOLS: {}, WORKER_URL: \"\" };\n function T(t4) {\n return F.REGISTERED_PROTOCOLS[t4.substring(0, t4.indexOf(\"://\"))];\n }\n const $ = \"global-dispatcher\";\n class L extends Error {\n constructor(t4, e2, r2, n2) {\n super(`AJAXError: ${e2} (${t4}): ${r2}`), this.status = t4, this.statusText = e2, this.url = r2, this.body = n2;\n }\n }\n const D2 = () => k(self) ? self.worker && self.worker.referrer : (\"blob:\" === window.location.protocol ? window.parent : window).location.href, O = function(t4, r2) {\n if (/:\\/\\//.test(t4.url) && !/^https?:|^file:/.test(t4.url)) {\n const e2 = T(t4.url);\n if (e2) return e2(t4, r2);\n if (k(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ type: \"GR\", data: t4, targetMapId: $ }, r2);\n }\n if (!(/^file:/.test(n2 = t4.url) || /^file:/.test(D2()) && !/^\\w+:/.test(n2))) {\n if (fetch && Request && AbortController && Object.prototype.hasOwnProperty.call(Request.prototype, \"signal\")) return function(t5, r3) {\n return e(this, void 0, void 0, function* () {\n const e2 = new Request(t5.url, { method: t5.method || \"GET\", body: t5.body, credentials: t5.credentials, headers: t5.headers, cache: t5.cache, referrer: D2(), signal: r3.signal });\n \"json\" !== t5.type || e2.headers.has(\"Accept\") || e2.headers.set(\"Accept\", \"application/json\");\n const n3 = yield fetch(e2);\n if (!n3.ok) {\n const e3 = yield n3.blob();\n throw new L(n3.status, n3.statusText, t5.url, e3);\n }\n let i2;\n i2 = \"arrayBuffer\" === t5.type || \"image\" === t5.type ? n3.arrayBuffer() : \"json\" === t5.type ? n3.json() : n3.text();\n const s2 = yield i2;\n if (r3.signal.aborted) throw E2();\n return { data: s2, cacheControl: n3.headers.get(\"Cache-Control\"), expires: n3.headers.get(\"Expires\") };\n });\n }(t4, r2);\n if (k(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ type: \"GR\", data: t4, mustQueue: true, targetMapId: $ }, r2);\n }\n var n2;\n return function(t5, e2) {\n return new Promise((r3, n3) => {\n var i2;\n const s2 = new XMLHttpRequest();\n s2.open(t5.method || \"GET\", t5.url, true), \"arrayBuffer\" !== t5.type && \"image\" !== t5.type || (s2.responseType = \"arraybuffer\");\n for (const e3 in t5.headers) s2.setRequestHeader(e3, t5.headers[e3]);\n \"json\" === t5.type && (s2.responseType = \"text\", (null === (i2 = t5.headers) || void 0 === i2 ? void 0 : i2.Accept) || s2.setRequestHeader(\"Accept\", \"application/json\")), s2.withCredentials = \"include\" === t5.credentials, s2.onerror = () => {\n n3(new Error(s2.statusText));\n }, s2.onload = () => {\n if (!e2.signal.aborted) if ((s2.status >= 200 && s2.status < 300 || 0 === s2.status) && null !== s2.response) {\n let e3 = s2.response;\n if (\"json\" === t5.type) try {\n e3 = JSON.parse(s2.response);\n } catch (t6) {\n return void n3(t6);\n }\n r3({ data: e3, cacheControl: s2.getResponseHeader(\"Cache-Control\"), expires: s2.getResponseHeader(\"Expires\") });\n } else {\n const e3 = new Blob([s2.response], { type: s2.getResponseHeader(\"Content-Type\") });\n n3(new L(s2.status, s2.statusText, t5.url, e3));\n }\n }, e2.signal.addEventListener(\"abort\", () => {\n s2.abort(), n3(E2());\n }), s2.send(t5.body);\n });\n }(t4, r2);\n };\n function j(t4) {\n if (!t4 || t4.indexOf(\"://\") <= 0 || 0 === t4.indexOf(\"data:image/\") || 0 === t4.indexOf(\"blob:\")) return true;\n const e2 = new URL(t4), r2 = window.location;\n return e2.protocol === r2.protocol && e2.host === r2.host;\n }\n function R(t4, e2, r2) {\n r2[t4] && -1 !== r2[t4].indexOf(e2) || (r2[t4] = r2[t4] || [], r2[t4].push(e2));\n }\n function U(t4, e2, r2) {\n if (r2 && r2[t4]) {\n const n2 = r2[t4].indexOf(e2);\n -1 !== n2 && r2[t4].splice(n2, 1);\n }\n }\n class q {\n constructor(t4, e2 = {}) {\n g(this, e2), this.type = t4;\n }\n }\n class N extends q {\n constructor(t4, e2 = {}) {\n super(\"error\", g({ error: t4 }, e2));\n }\n }\n class Z {\n on(t4, e2) {\n return this._listeners = this._listeners || {}, R(t4, e2, this._listeners), this;\n }\n off(t4, e2) {\n return U(t4, e2, this._listeners), U(t4, e2, this._oneTimeListeners), this;\n }\n once(t4, e2) {\n return e2 ? (this._oneTimeListeners = this._oneTimeListeners || {}, R(t4, e2, this._oneTimeListeners), this) : new Promise((e3) => this.once(t4, e3));\n }\n fire(t4, e2) {\n \"string\" == typeof t4 && (t4 = new q(t4, e2 || {}));\n const r2 = t4.type;\n if (this.listens(r2)) {\n t4.target = this;\n const e3 = this._listeners && this._listeners[r2] ? this._listeners[r2].slice() : [];\n for (const r3 of e3) r3.call(this, t4);\n const n2 = this._oneTimeListeners && this._oneTimeListeners[r2] ? this._oneTimeListeners[r2].slice() : [];\n for (const e4 of n2) U(r2, e4, this._oneTimeListeners), e4.call(this, t4);\n const i2 = this._eventedParent;\n i2 && (g(t4, \"function\" == typeof this._eventedParentData ? this._eventedParentData() : this._eventedParentData), i2.fire(t4));\n } else t4 instanceof N && console.error(t4.error);\n return this;\n }\n listens(t4) {\n return this._listeners && this._listeners[t4] && this._listeners[t4].length > 0 || this._oneTimeListeners && this._oneTimeListeners[t4] && this._oneTimeListeners[t4].length > 0 || this._eventedParent && this._eventedParent.listens(t4);\n }\n setEventedParent(t4, e2) {\n return this._eventedParent = t4, this._eventedParentData = e2, this;\n }\n }\n var G = { $version: 8, $root: { version: { required: true, type: \"enum\", values: [8] }, name: { type: \"string\" }, metadata: { type: \"*\" }, center: { type: \"array\", value: \"number\" }, zoom: { type: \"number\" }, bearing: { type: \"number\", default: 0, period: 360, units: \"degrees\" }, pitch: { type: \"number\", default: 0, units: \"degrees\" }, light: { type: \"light\" }, sky: { type: \"sky\" }, projection: { type: \"projection\" }, terrain: { type: \"terrain\" }, sources: { required: true, type: \"sources\" }, sprite: { type: \"sprite\" }, glyphs: { type: \"string\" }, transition: { type: \"transition\" }, layers: { required: true, type: \"array\", value: \"layer\" } }, sources: { \"*\": { type: \"source\" } }, source: [\"source_vector\", \"source_raster\", \"source_raster_dem\", \"source_geojson\", \"source_video\", \"source_image\"], source_vector: { type: { required: true, type: \"enum\", values: { vector: {} } }, url: { type: \"string\" }, tiles: { type: \"array\", value: \"string\" }, bounds: { type: \"array\", value: \"number\", length: 4, default: [-180, -85.051129, 180, 85.051129] }, scheme: { type: \"enum\", values: { xyz: {}, tms: {} }, default: \"xyz\" }, minzoom: { type: \"number\", default: 0 }, maxzoom: { type: \"number\", default: 22 }, attribution: { type: \"string\" }, promoteId: { type: \"promoteId\" }, volatile: { type: \"boolean\", default: false }, \"*\": { type: \"*\" } }, source_raster: { type: { required: true, type: \"enum\", values: { raster: {} } }, url: { type: \"string\" }, tiles: { type: \"array\", value: \"string\" }, bounds: { type: \"array\", value: \"number\", length: 4, default: [-180, -85.051129, 180, 85.051129] }, minzoom: { type: \"number\", default: 0 }, maxzoom: { type: \"number\", default: 22 }, tileSize: { type: \"number\", default: 512, units: \"pixels\" }, scheme: { type: \"enum\", values: { xyz: {}, tms: {} }, default: \"xyz\" }, attribution: { type: \"string\" }, volatile: { type: \"boolean\", default: false }, \"*\": { type: \"*\" } }, source_raster_dem: { type: { required: true, type: \"enum\", values: { \"raster-dem\": {} } }, url: { type: \"string\" }, tiles: { type: \"array\", value: \"string\" }, bounds: { type: \"array\", value: \"number\", length: 4, default: [-180, -85.051129, 180, 85.051129] }, minzoom: { type: \"number\", default: 0 }, maxzoom: { type: \"number\", default: 22 }, tileSize: { type: \"number\", default: 512, units: \"pixels\" }, attribution: { type: \"string\" }, encoding: { type: \"enum\", values: { terrarium: {}, mapbox: {}, custom: {} }, default: \"mapbox\" }, redFactor: { type: \"number\", default: 1 }, blueFactor: { type: \"number\", default: 1 }, greenFactor: { type: \"number\", default: 1 }, baseShift: { type: \"number\", default: 0 }, volatile: { type: \"boolean\", default: false }, \"*\": { type: \"*\" } }, source_geojson: { type: { required: true, type: \"enum\", values: { geojson: {} } }, data: { required: true, type: \"*\" }, maxzoom: { type: \"number\", default: 18 }, attribution: { type: \"string\" }, buffer: { type: \"number\", default: 128, maximum: 512, minimum: 0 }, filter: { type: \"*\" }, tolerance: { type: \"number\", default: 0.375 }, cluster: { type: \"boolean\", default: false }, clusterRadius: { type: \"number\", default: 50, minimum: 0 }, clusterMaxZoom: { type: \"number\" }, clusterMinPoints: { type: \"number\" }, clusterProperties: { type: \"*\" }, lineMetrics: { type: \"boolean\", default: false }, generateId: { type: \"boolean\", default: false }, promoteId: { type: \"promoteId\" } }, source_video: { type: { required: true, type: \"enum\", values: { video: {} } }, urls: { required: true, type: \"array\", value: \"string\" }, coordinates: { required: true, type: \"array\", length: 4, value: { type: \"array\", length: 2, value: \"number\" } } }, source_image: { type: { required: true, type: \"enum\", values: { image: {} } }, url: { required: true, type: \"string\" }, coordinates: { required: true, type: \"array\", length: 4, value: { type: \"array\", length: 2, value: \"number\" } } }, layer: { id: { type: \"string\", required: true }, type: { type: \"enum\", values: { fill: {}, line: {}, symbol: {}, circle: {}, heatmap: {}, \"fill-extrusion\": {}, raster: {}, hillshade: {}, background: {} }, required: true }, metadata: { type: \"*\" }, source: { type: \"string\" }, \"source-layer\": { type: \"string\" }, minzoom: { type: \"number\", minimum: 0, maximum: 24 }, maxzoom: { type: \"number\", minimum: 0, maximum: 24 }, filter: { type: \"filter\" }, layout: { type: \"layout\" }, paint: { type: \"paint\" } }, layout: [\"layout_fill\", \"layout_line\", \"layout_circle\", \"layout_heatmap\", \"layout_fill-extrusion\", \"layout_symbol\", \"layout_raster\", \"layout_hillshade\", \"layout_background\"], layout_background: { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_fill: { \"fill-sort-key\": { type: \"number\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_circle: { \"circle-sort-key\": { type: \"number\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_heatmap: { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, \"layout_fill-extrusion\": { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_line: { \"line-cap\": { type: \"enum\", values: { butt: {}, round: {}, square: {} }, default: \"butt\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-join\": { type: \"enum\", values: { bevel: {}, round: {}, miter: {} }, default: \"miter\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"line-miter-limit\": { type: \"number\", default: 2, requires: [{ \"line-join\": \"miter\" }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-round-limit\": { type: \"number\", default: 1.05, requires: [{ \"line-join\": \"round\" }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-sort-key\": { type: \"number\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_symbol: { \"symbol-placement\": { type: \"enum\", values: { point: {}, line: {}, \"line-center\": {} }, default: \"point\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"symbol-spacing\": { type: \"number\", default: 250, minimum: 1, units: \"pixels\", requires: [{ \"symbol-placement\": \"line\" }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"symbol-avoid-edges\": { type: \"boolean\", default: false, expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"symbol-sort-key\": { type: \"number\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"symbol-z-order\": { type: \"enum\", values: { auto: {}, \"viewport-y\": {}, source: {} }, default: \"auto\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-allow-overlap\": { type: \"boolean\", default: false, requires: [\"icon-image\", { \"!\": \"icon-overlap\" }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-overlap\": { type: \"enum\", values: { never: {}, always: {}, cooperative: {} }, requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-ignore-placement\": { type: \"boolean\", default: false, requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-optional\": { type: \"boolean\", default: false, requires: [\"icon-image\", \"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-rotation-alignment\": { type: \"enum\", values: { map: {}, viewport: {}, auto: {} }, default: \"auto\", requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-size\": { type: \"number\", default: 1, minimum: 0, units: \"factor of the original icon size\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-text-fit\": { type: \"enum\", values: { none: {}, width: {}, height: {}, both: {} }, default: \"none\", requires: [\"icon-image\", \"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-text-fit-padding\": { type: \"array\", value: \"number\", length: 4, default: [0, 0, 0, 0], units: \"pixels\", requires: [\"icon-image\", \"text-field\", { \"icon-text-fit\": [\"both\", \"width\", \"height\"] }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-image\": { type: \"resolvedImage\", tokens: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-rotate\": { type: \"number\", default: 0, period: 360, units: \"degrees\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-padding\": { type: \"padding\", default: [2], units: \"pixels\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-keep-upright\": { type: \"boolean\", default: false, requires: [\"icon-image\", { \"icon-rotation-alignment\": \"map\" }, { \"symbol-placement\": [\"line\", \"line-center\"] }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-offset\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-anchor\": { type: \"enum\", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, \"top-left\": {}, \"top-right\": {}, \"bottom-left\": {}, \"bottom-right\": {} }, default: \"center\", requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-pitch-alignment\": { type: \"enum\", values: { map: {}, viewport: {}, auto: {} }, default: \"auto\", requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-pitch-alignment\": { type: \"enum\", values: { map: {}, viewport: {}, auto: {} }, default: \"auto\", requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-rotation-alignment\": { type: \"enum\", values: { map: {}, viewport: {}, \"viewport-glyph\": {}, auto: {} }, default: \"auto\", requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-field\": { type: \"formatted\", default: \"\", tokens: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-font\": { type: \"array\", value: \"string\", default: [\"Open Sans Regular\", \"Arial Unicode MS Regular\"], requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-size\": { type: \"number\", default: 16, minimum: 0, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-max-width\": { type: \"number\", default: 10, minimum: 0, units: \"ems\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-line-height\": { type: \"number\", default: 1.2, units: \"ems\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-letter-spacing\": { type: \"number\", default: 0, units: \"ems\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-justify\": { type: \"enum\", values: { auto: {}, left: {}, center: {}, right: {} }, default: \"center\", requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-radial-offset\": { type: \"number\", units: \"ems\", default: 0, requires: [\"text-field\"], \"property-type\": \"data-driven\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] } }, \"text-variable-anchor\": { type: \"array\", value: \"enum\", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, \"top-left\": {}, \"top-right\": {}, \"bottom-left\": {}, \"bottom-right\": {} }, requires: [\"text-field\", { \"symbol-placement\": [\"point\"] }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-variable-anchor-offset\": { type: \"variableAnchorOffsetCollection\", requires: [\"text-field\", { \"symbol-placement\": [\"point\"] }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-anchor\": { type: \"enum\", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, \"top-left\": {}, \"top-right\": {}, \"bottom-left\": {}, \"bottom-right\": {} }, default: \"center\", requires: [\"text-field\", { \"!\": \"text-variable-anchor\" }], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-max-angle\": { type: \"number\", default: 45, units: \"degrees\", requires: [\"text-field\", { \"symbol-placement\": [\"line\", \"line-center\"] }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-writing-mode\": { type: \"array\", value: \"enum\", values: { horizontal: {}, vertical: {} }, requires: [\"text-field\", { \"symbol-placement\": [\"point\"] }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-rotate\": { type: \"number\", default: 0, period: 360, units: \"degrees\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-padding\": { type: \"number\", default: 2, minimum: 0, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-keep-upright\": { type: \"boolean\", default: true, requires: [\"text-field\", { \"text-rotation-alignment\": \"map\" }, { \"symbol-placement\": [\"line\", \"line-center\"] }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-transform\": { type: \"enum\", values: { none: {}, uppercase: {}, lowercase: {} }, default: \"none\", requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-offset\": { type: \"array\", value: \"number\", units: \"ems\", length: 2, default: [0, 0], requires: [\"text-field\", { \"!\": \"text-radial-offset\" }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-allow-overlap\": { type: \"boolean\", default: false, requires: [\"text-field\", { \"!\": \"text-overlap\" }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-overlap\": { type: \"enum\", values: { never: {}, always: {}, cooperative: {} }, requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-ignore-placement\": { type: \"boolean\", default: false, requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-optional\": { type: \"boolean\", default: false, requires: [\"text-field\", \"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_raster: { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_hillshade: { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, filter: { type: \"array\", value: \"*\" }, filter_operator: { type: \"enum\", values: { \"==\": {}, \"!=\": {}, \">\": {}, \">=\": {}, \"<\": {}, \"<=\": {}, in: {}, \"!in\": {}, all: {}, any: {}, none: {}, has: {}, \"!has\": {} } }, geometry_type: { type: \"enum\", values: { Point: {}, LineString: {}, Polygon: {} } }, function: { expression: { type: \"expression\" }, stops: { type: \"array\", value: \"function_stop\" }, base: { type: \"number\", default: 1, minimum: 0 }, property: { type: \"string\", default: \"$zoom\" }, type: { type: \"enum\", values: { identity: {}, exponential: {}, interval: {}, categorical: {} }, default: \"exponential\" }, colorSpace: { type: \"enum\", values: { rgb: {}, lab: {}, hcl: {} }, default: \"rgb\" }, default: { type: \"*\", required: false } }, function_stop: { type: \"array\", minimum: 0, maximum: 24, value: [\"number\", \"color\"], length: 2 }, expression: { type: \"array\", value: \"*\", minimum: 1 }, light: { anchor: { type: \"enum\", default: \"viewport\", values: { map: {}, viewport: {} }, \"property-type\": \"data-constant\", transition: false, expression: { interpolated: false, parameters: [\"zoom\"] } }, position: { type: \"array\", default: [1.15, 210, 30], length: 3, value: \"number\", \"property-type\": \"data-constant\", transition: true, expression: { interpolated: true, parameters: [\"zoom\"] } }, color: { type: \"color\", \"property-type\": \"data-constant\", default: \"#ffffff\", expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, intensity: { type: \"number\", \"property-type\": \"data-constant\", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true } }, sky: { \"sky-color\": { type: \"color\", \"property-type\": \"data-constant\", default: \"#88C6FC\", expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"horizon-color\": { type: \"color\", \"property-type\": \"data-constant\", default: \"#ffffff\", expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"fog-color\": { type: \"color\", \"property-type\": \"data-constant\", default: \"#ffffff\", expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"fog-ground-blend\": { type: \"number\", \"property-type\": \"data-constant\", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"horizon-fog-blend\": { type: \"number\", \"property-type\": \"data-constant\", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"sky-horizon-blend\": { type: \"number\", \"property-type\": \"data-constant\", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"atmosphere-blend\": { type: \"number\", \"property-type\": \"data-constant\", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true } }, terrain: { source: { type: \"string\", required: true }, exaggeration: { type: \"number\", minimum: 0, default: 1 } }, projection: { type: { type: \"enum\", default: \"mercator\", values: { mercator: {}, globe: {} } } }, paint: [\"paint_fill\", \"paint_line\", \"paint_circle\", \"paint_heatmap\", \"paint_fill-extrusion\", \"paint_symbol\", \"paint_raster\", \"paint_hillshade\", \"paint_background\"], paint_fill: { \"fill-antialias\": { type: \"boolean\", default: true, expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [{ \"!\": \"fill-pattern\" }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-outline-color\": { type: \"color\", transition: true, requires: [{ \"!\": \"fill-pattern\" }, { \"fill-antialias\": true }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"fill-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-pattern\": { type: \"resolvedImage\", transition: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"cross-faded-data-driven\" } }, \"paint_fill-extrusion\": { \"fill-extrusion-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-extrusion-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [{ \"!\": \"fill-extrusion-pattern\" }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-extrusion-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-extrusion-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"fill-extrusion-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-extrusion-pattern\": { type: \"resolvedImage\", transition: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"cross-faded-data-driven\" }, \"fill-extrusion-height\": { type: \"number\", default: 0, minimum: 0, units: \"meters\", transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-extrusion-base\": { type: \"number\", default: 0, minimum: 0, units: \"meters\", transition: true, requires: [\"fill-extrusion-height\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-extrusion-vertical-gradient\": { type: \"boolean\", default: true, transition: false, expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_line: { \"line-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [{ \"!\": \"line-pattern\" }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"line-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-width\": { type: \"number\", default: 1, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-gap-width\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-offset\": { type: \"number\", default: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-blur\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-dasharray\": { type: \"array\", value: \"number\", minimum: 0, transition: true, units: \"line widths\", requires: [{ \"!\": \"line-pattern\" }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"cross-faded\" }, \"line-pattern\": { type: \"resolvedImage\", transition: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"cross-faded-data-driven\" }, \"line-gradient\": { type: \"color\", transition: false, requires: [{ \"!\": \"line-dasharray\" }, { \"!\": \"line-pattern\" }, { source: \"geojson\", has: { lineMetrics: true } }], expression: { interpolated: true, parameters: [\"line-progress\"] }, \"property-type\": \"color-ramp\" } }, paint_circle: { \"circle-radius\": { type: \"number\", default: 5, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-color\": { type: \"color\", default: \"#000000\", transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-blur\": { type: \"number\", default: 0, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"circle-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"circle-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"circle-pitch-scale\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"circle-pitch-alignment\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"viewport\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"circle-stroke-width\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-stroke-color\": { type: \"color\", default: \"#000000\", transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-stroke-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" } }, paint_heatmap: { \"heatmap-radius\": { type: \"number\", default: 30, minimum: 1, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"heatmap-weight\": { type: \"number\", default: 1, minimum: 0, transition: false, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"heatmap-intensity\": { type: \"number\", default: 1, minimum: 0, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"heatmap-color\": { type: \"color\", default: [\"interpolate\", [\"linear\"], [\"heatmap-density\"], 0, \"rgba(0, 0, 255, 0)\", 0.1, \"royalblue\", 0.3, \"cyan\", 0.5, \"lime\", 0.7, \"yellow\", 1, \"red\"], transition: false, expression: { interpolated: true, parameters: [\"heatmap-density\"] }, \"property-type\": \"color-ramp\" }, \"heatmap-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_symbol: { \"icon-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-halo-color\": { type: \"color\", default: \"rgba(0, 0, 0, 0)\", transition: true, requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-halo-width\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-halo-blur\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"icon-image\", \"icon-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-color\": { type: \"color\", default: \"#000000\", transition: true, overridable: true, requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-halo-color\": { type: \"color\", default: \"rgba(0, 0, 0, 0)\", transition: true, requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-halo-width\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-halo-blur\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"text-field\", \"text-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_raster: { \"raster-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-hue-rotate\": { type: \"number\", default: 0, period: 360, transition: true, units: \"degrees\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-brightness-min\": { type: \"number\", default: 0, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-brightness-max\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-saturation\": { type: \"number\", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-contrast\": { type: \"number\", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-resampling\": { type: \"enum\", values: { linear: {}, nearest: {} }, default: \"linear\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-fade-duration\": { type: \"number\", default: 300, minimum: 0, transition: false, units: \"milliseconds\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_hillshade: { \"hillshade-illumination-direction\": { type: \"number\", default: 335, minimum: 0, maximum: 359, transition: false, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-illumination-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"viewport\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-exaggeration\": { type: \"number\", default: 0.5, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-shadow-color\": { type: \"color\", default: \"#000000\", transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-highlight-color\": { type: \"color\", default: \"#FFFFFF\", transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-accent-color\": { type: \"color\", default: \"#000000\", transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_background: { \"background-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [{ \"!\": \"background-pattern\" }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"background-pattern\": { type: \"resolvedImage\", transition: true, expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"cross-faded\" }, \"background-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, transition: { duration: { type: \"number\", default: 300, minimum: 0, units: \"milliseconds\" }, delay: { type: \"number\", default: 0, minimum: 0, units: \"milliseconds\" } }, \"property-type\": { \"data-driven\": { type: \"property-type\" }, \"cross-faded\": { type: \"property-type\" }, \"cross-faded-data-driven\": { type: \"property-type\" }, \"color-ramp\": { type: \"property-type\" }, \"data-constant\": { type: \"property-type\" }, constant: { type: \"property-type\" } }, promoteId: { \"*\": { type: \"string\" } } };\n const K2 = [\"type\", \"source\", \"source-layer\", \"minzoom\", \"maxzoom\", \"filter\", \"layout\"];\n function X(t4, e2) {\n const r2 = {};\n for (const e3 in t4) \"ref\" !== e3 && (r2[e3] = t4[e3]);\n return K2.forEach((t5) => {\n t5 in e2 && (r2[t5] = e2[t5]);\n }), r2;\n }\n function H(t4, e2) {\n if (Array.isArray(t4)) {\n if (!Array.isArray(e2) || t4.length !== e2.length) return false;\n for (let r2 = 0; r2 < t4.length; r2++) if (!H(t4[r2], e2[r2])) return false;\n return true;\n }\n if (\"object\" == typeof t4 && null !== t4 && null !== e2) {\n if (\"object\" != typeof e2) return false;\n if (Object.keys(t4).length !== Object.keys(e2).length) return false;\n for (const r2 in t4) if (!H(t4[r2], e2[r2])) return false;\n return true;\n }\n return t4 === e2;\n }\n function Y(t4, e2) {\n t4.push(e2);\n }\n function J(t4, e2, r2) {\n Y(r2, { command: \"addSource\", args: [t4, e2[t4]] });\n }\n function W(t4, e2, r2) {\n Y(e2, { command: \"removeSource\", args: [t4] }), r2[t4] = true;\n }\n function Q(t4, e2, r2, n2) {\n W(t4, r2, n2), J(t4, e2, r2);\n }\n function tt(t4, e2, r2) {\n let n2;\n for (n2 in t4[r2]) if (Object.prototype.hasOwnProperty.call(t4[r2], n2) && \"data\" !== n2 && !H(t4[r2][n2], e2[r2][n2])) return false;\n for (n2 in e2[r2]) if (Object.prototype.hasOwnProperty.call(e2[r2], n2) && \"data\" !== n2 && !H(t4[r2][n2], e2[r2][n2])) return false;\n return true;\n }\n function et(t4, e2, r2, n2, i2, s2) {\n t4 = t4 || {}, e2 = e2 || {};\n for (const a2 in t4) Object.prototype.hasOwnProperty.call(t4, a2) && (H(t4[a2], e2[a2]) || r2.push({ command: s2, args: [n2, a2, e2[a2], i2] }));\n for (const a2 in e2) Object.prototype.hasOwnProperty.call(e2, a2) && !Object.prototype.hasOwnProperty.call(t4, a2) && (H(t4[a2], e2[a2]) || r2.push({ command: s2, args: [n2, a2, e2[a2], i2] }));\n }\n function rt(t4) {\n return t4.id;\n }\n function nt(t4, e2) {\n return t4[e2.id] = e2, t4;\n }\n class it {\n constructor(t4, e2, r2, n2) {\n this.message = (t4 ? `${t4}: ` : \"\") + r2, n2 && (this.identifier = n2), null != e2 && e2.__line__ && (this.line = e2.__line__);\n }\n }\n function st(t4, ...e2) {\n for (const r2 of e2) for (const e3 in r2) t4[e3] = r2[e3];\n return t4;\n }\n class at extends Error {\n constructor(t4, e2) {\n super(e2), this.message = e2, this.key = t4;\n }\n }\n class ot {\n constructor(t4, e2 = []) {\n this.parent = t4, this.bindings = {};\n for (const [t5, r2] of e2) this.bindings[t5] = r2;\n }\n concat(t4) {\n return new ot(this, t4);\n }\n get(t4) {\n if (this.bindings[t4]) return this.bindings[t4];\n if (this.parent) return this.parent.get(t4);\n throw new Error(`${t4} not found in scope.`);\n }\n has(t4) {\n return !!this.bindings[t4] || !!this.parent && this.parent.has(t4);\n }\n }\n const lt = { kind: \"null\" }, ut = { kind: \"number\" }, ct = { kind: \"string\" }, ht = { kind: \"boolean\" }, pt = { kind: \"color\" }, ft = { kind: \"object\" }, dt = { kind: \"value\" }, yt = { kind: \"collator\" }, mt = { kind: \"formatted\" }, gt = { kind: \"padding\" }, xt = { kind: \"resolvedImage\" }, vt = { kind: \"variableAnchorOffsetCollection\" };\n function bt(t4, e2) {\n return { kind: \"array\", itemType: t4, N: e2 };\n }\n function wt(t4) {\n if (\"array\" === t4.kind) {\n const e2 = wt(t4.itemType);\n return \"number\" == typeof t4.N ? `array<${e2}, ${t4.N}>` : \"value\" === t4.itemType.kind ? \"array\" : `array<${e2}>`;\n }\n return t4.kind;\n }\n const _t = [lt, ut, ct, ht, pt, mt, ft, bt(dt), gt, xt, vt];\n function At(t4, e2) {\n if (\"error\" === e2.kind) return null;\n if (\"array\" === t4.kind) {\n if (\"array\" === e2.kind && (0 === e2.N && \"value\" === e2.itemType.kind || !At(t4.itemType, e2.itemType)) && (\"number\" != typeof t4.N || t4.N === e2.N)) return null;\n } else {\n if (t4.kind === e2.kind) return null;\n if (\"value\" === t4.kind) {\n for (const t5 of _t) if (!At(t5, e2)) return null;\n }\n }\n return `Expected ${wt(t4)} but found ${wt(e2)} instead.`;\n }\n function St(t4, e2) {\n return e2.some((e3) => e3.kind === t4.kind);\n }\n function kt(t4, e2) {\n return e2.some((e3) => \"null\" === e3 ? null === t4 : \"array\" === e3 ? Array.isArray(t4) : \"object\" === e3 ? t4 && !Array.isArray(t4) && \"object\" == typeof t4 : e3 === typeof t4);\n }\n function Mt(t4, e2) {\n return \"array\" === t4.kind && \"array\" === e2.kind ? t4.itemType.kind === e2.itemType.kind && \"number\" == typeof t4.N : t4.kind === e2.kind;\n }\n const It = 0.96422, zt = 0.82521, Pt = 4 / 29, Ct = 6 / 29, Bt = 3 * Ct * Ct, Vt = Ct * Ct * Ct, Et = Math.PI / 180, Ft = 180 / Math.PI;\n function Tt(t4) {\n return (t4 %= 360) < 0 && (t4 += 360), t4;\n }\n function $t([t4, e2, r2, n2]) {\n let i2, s2;\n const a2 = Dt((0.2225045 * (t4 = Lt(t4)) + 0.7168786 * (e2 = Lt(e2)) + 0.0606169 * (r2 = Lt(r2))) / 1);\n t4 === e2 && e2 === r2 ? i2 = s2 = a2 : (i2 = Dt((0.4360747 * t4 + 0.3850649 * e2 + 0.1430804 * r2) / It), s2 = Dt((0.0139322 * t4 + 0.0971045 * e2 + 0.7141733 * r2) / zt));\n const o2 = 116 * a2 - 16;\n return [o2 < 0 ? 0 : o2, 500 * (i2 - a2), 200 * (a2 - s2), n2];\n }\n function Lt(t4) {\n return t4 <= 0.04045 ? t4 / 12.92 : Math.pow((t4 + 0.055) / 1.055, 2.4);\n }\n function Dt(t4) {\n return t4 > Vt ? Math.pow(t4, 1 / 3) : t4 / Bt + Pt;\n }\n function Ot([t4, e2, r2, n2]) {\n let i2 = (t4 + 16) / 116, s2 = isNaN(e2) ? i2 : i2 + e2 / 500, a2 = isNaN(r2) ? i2 : i2 - r2 / 200;\n return i2 = 1 * Rt(i2), s2 = It * Rt(s2), a2 = zt * Rt(a2), [jt(3.1338561 * s2 - 1.6168667 * i2 - 0.4906146 * a2), jt(-0.9787684 * s2 + 1.9161415 * i2 + 0.033454 * a2), jt(0.0719453 * s2 - 0.2289914 * i2 + 1.4052427 * a2), n2];\n }\n function jt(t4) {\n return (t4 = t4 <= 304e-5 ? 12.92 * t4 : 1.055 * Math.pow(t4, 1 / 2.4) - 0.055) < 0 ? 0 : t4 > 1 ? 1 : t4;\n }\n function Rt(t4) {\n return t4 > Ct ? t4 * t4 * t4 : Bt * (t4 - Pt);\n }\n function Ut(t4) {\n return parseInt(t4.padEnd(2, t4), 16) / 255;\n }\n function qt(t4, e2) {\n return Nt(e2 ? t4 / 100 : t4, 0, 1);\n }\n function Nt(t4, e2, r2) {\n return Math.min(Math.max(e2, t4), r2);\n }\n function Zt(t4) {\n return !t4.some(Number.isNaN);\n }\n const Gt = { aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50] };\n class Kt {\n constructor(t4, e2, r2, n2 = 1, i2 = true) {\n this.r = t4, this.g = e2, this.b = r2, this.a = n2, i2 || (this.r *= n2, this.g *= n2, this.b *= n2, n2 || this.overwriteGetter(\"rgb\", [t4, e2, r2, n2]));\n }\n static parse(t4) {\n if (t4 instanceof Kt) return t4;\n if (\"string\" != typeof t4) return;\n const e2 = function(t5) {\n if (\"transparent\" === (t5 = t5.toLowerCase().trim())) return [0, 0, 0, 0];\n const e3 = Gt[t5];\n if (e3) {\n const [t6, r3, n2] = e3;\n return [t6 / 255, r3 / 255, n2 / 255, 1];\n }\n if (t5.startsWith(\"#\") && /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(t5)) {\n const e4 = t5.length < 6 ? 1 : 2;\n let r3 = 1;\n return [Ut(t5.slice(r3, r3 += e4)), Ut(t5.slice(r3, r3 += e4)), Ut(t5.slice(r3, r3 += e4)), Ut(t5.slice(r3, r3 + e4) || \"ff\")];\n }\n if (t5.startsWith(\"rgb\")) {\n const e4 = t5.match(/^rgba?\\(\\s*([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);\n if (e4) {\n const [t6, r3, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2] = e4, f2 = [i2 || \" \", o2 || \" \", c2].join(\"\");\n if (\" \" === f2 || \" /\" === f2 || \",,\" === f2 || \",,,\" === f2) {\n const t7 = [n2, a2, u2].join(\"\"), e5 = \"%%%\" === t7 ? 100 : \"\" === t7 ? 255 : 0;\n if (e5) {\n const t8 = [Nt(+r3 / e5, 0, 1), Nt(+s2 / e5, 0, 1), Nt(+l2 / e5, 0, 1), h2 ? qt(+h2, p2) : 1];\n if (Zt(t8)) return t8;\n }\n }\n return;\n }\n }\n const r2 = t5.match(/^hsla?\\(\\s*([\\de.+-]+)(?:deg)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);\n if (r2) {\n const [t6, e4, n2, i2, s2, a2, o2, l2, u2] = r2, c2 = [n2 || \" \", s2 || \" \", o2].join(\"\");\n if (\" \" === c2 || \" /\" === c2 || \",,\" === c2 || \",,,\" === c2) {\n const t7 = [+e4, Nt(+i2, 0, 100), Nt(+a2, 0, 100), l2 ? qt(+l2, u2) : 1];\n if (Zt(t7)) return function([t8, e5, r3, n3]) {\n function i3(n4) {\n const i4 = (n4 + t8 / 30) % 12, s3 = e5 * Math.min(r3, 1 - r3);\n return r3 - s3 * Math.max(-1, Math.min(i4 - 3, 9 - i4, 1));\n }\n return t8 = Tt(t8), e5 /= 100, r3 /= 100, [i3(0), i3(8), i3(4), n3];\n }(t7);\n }\n }\n }(t4);\n return e2 ? new Kt(...e2, false) : void 0;\n }\n get rgb() {\n const { r: t4, g: e2, b: r2, a: n2 } = this, i2 = n2 || 1 / 0;\n return this.overwriteGetter(\"rgb\", [t4 / i2, e2 / i2, r2 / i2, n2]);\n }\n get hcl() {\n return this.overwriteGetter(\"hcl\", function(t4) {\n const [e2, r2, n2, i2] = $t(t4), s2 = Math.sqrt(r2 * r2 + n2 * n2);\n return [Math.round(1e4 * s2) ? Tt(Math.atan2(n2, r2) * Ft) : NaN, s2, e2, i2];\n }(this.rgb));\n }\n get lab() {\n return this.overwriteGetter(\"lab\", $t(this.rgb));\n }\n overwriteGetter(t4, e2) {\n return Object.defineProperty(this, t4, { value: e2 }), e2;\n }\n toString() {\n const [t4, e2, r2, n2] = this.rgb;\n return `rgba(${[t4, e2, r2].map((t5) => Math.round(255 * t5)).join(\",\")},${n2})`;\n }\n }\n Kt.black = new Kt(0, 0, 0, 1), Kt.white = new Kt(1, 1, 1, 1), Kt.transparent = new Kt(0, 0, 0, 0), Kt.red = new Kt(1, 0, 0, 1);\n class Xt {\n constructor(t4, e2, r2) {\n this.sensitivity = t4 ? e2 ? \"variant\" : \"case\" : e2 ? \"accent\" : \"base\", this.locale = r2, this.collator = new Intl.Collator(this.locale ? this.locale : [], { sensitivity: this.sensitivity, usage: \"search\" });\n }\n compare(t4, e2) {\n return this.collator.compare(t4, e2);\n }\n resolvedLocale() {\n return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale;\n }\n }\n class Ht {\n constructor(t4, e2, r2, n2, i2) {\n this.text = t4, this.image = e2, this.scale = r2, this.fontStack = n2, this.textColor = i2;\n }\n }\n class Yt {\n constructor(t4) {\n this.sections = t4;\n }\n static fromString(t4) {\n return new Yt([new Ht(t4, null, null, null, null)]);\n }\n isEmpty() {\n return 0 === this.sections.length || !this.sections.some((t4) => 0 !== t4.text.length || t4.image && 0 !== t4.image.name.length);\n }\n static factory(t4) {\n return t4 instanceof Yt ? t4 : Yt.fromString(t4);\n }\n toString() {\n return 0 === this.sections.length ? \"\" : this.sections.map((t4) => t4.text).join(\"\");\n }\n }\n class Jt {\n constructor(t4) {\n this.values = t4.slice();\n }\n static parse(t4) {\n if (t4 instanceof Jt) return t4;\n if (\"number\" == typeof t4) return new Jt([t4, t4, t4, t4]);\n if (Array.isArray(t4) && !(t4.length < 1 || t4.length > 4)) {\n for (const e2 of t4) if (\"number\" != typeof e2) return;\n switch (t4.length) {\n case 1:\n t4 = [t4[0], t4[0], t4[0], t4[0]];\n break;\n case 2:\n t4 = [t4[0], t4[1], t4[0], t4[1]];\n break;\n case 3:\n t4 = [t4[0], t4[1], t4[2], t4[1]];\n }\n return new Jt(t4);\n }\n }\n toString() {\n return JSON.stringify(this.values);\n }\n }\n const Wt = /* @__PURE__ */ new Set([\"center\", \"left\", \"right\", \"top\", \"bottom\", \"top-left\", \"top-right\", \"bottom-left\", \"bottom-right\"]);\n class Qt {\n constructor(t4) {\n this.values = t4.slice();\n }\n static parse(t4) {\n if (t4 instanceof Qt) return t4;\n if (Array.isArray(t4) && !(t4.length < 1) && t4.length % 2 == 0) {\n for (let e2 = 0; e2 < t4.length; e2 += 2) {\n const r2 = t4[e2], n2 = t4[e2 + 1];\n if (\"string\" != typeof r2 || !Wt.has(r2)) return;\n if (!Array.isArray(n2) || 2 !== n2.length || \"number\" != typeof n2[0] || \"number\" != typeof n2[1]) return;\n }\n return new Qt(t4);\n }\n }\n toString() {\n return JSON.stringify(this.values);\n }\n }\n class te {\n constructor(t4) {\n this.name = t4.name, this.available = t4.available;\n }\n toString() {\n return this.name;\n }\n static fromString(t4) {\n return t4 ? new te({ name: t4, available: false }) : null;\n }\n }\n function ee(t4, e2, r2, n2) {\n return \"number\" == typeof t4 && t4 >= 0 && t4 <= 255 && \"number\" == typeof e2 && e2 >= 0 && e2 <= 255 && \"number\" == typeof r2 && r2 >= 0 && r2 <= 255 ? void 0 === n2 || \"number\" == typeof n2 && n2 >= 0 && n2 <= 1 ? null : `Invalid rgba value [${[t4, e2, r2, n2].join(\", \")}]: 'a' must be between 0 and 1.` : `Invalid rgba value [${(\"number\" == typeof n2 ? [t4, e2, r2, n2] : [t4, e2, r2]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`;\n }\n function re(t4) {\n if (null === t4 || \"string\" == typeof t4 || \"boolean\" == typeof t4 || \"number\" == typeof t4 || t4 instanceof Kt || t4 instanceof Xt || t4 instanceof Yt || t4 instanceof Jt || t4 instanceof Qt || t4 instanceof te) return true;\n if (Array.isArray(t4)) {\n for (const e2 of t4) if (!re(e2)) return false;\n return true;\n }\n if (\"object\" == typeof t4) {\n for (const e2 in t4) if (!re(t4[e2])) return false;\n return true;\n }\n return false;\n }\n function ne(t4) {\n if (null === t4) return lt;\n if (\"string\" == typeof t4) return ct;\n if (\"boolean\" == typeof t4) return ht;\n if (\"number\" == typeof t4) return ut;\n if (t4 instanceof Kt) return pt;\n if (t4 instanceof Xt) return yt;\n if (t4 instanceof Yt) return mt;\n if (t4 instanceof Jt) return gt;\n if (t4 instanceof Qt) return vt;\n if (t4 instanceof te) return xt;\n if (Array.isArray(t4)) {\n const e2 = t4.length;\n let r2;\n for (const e3 of t4) {\n const t5 = ne(e3);\n if (r2) {\n if (r2 === t5) continue;\n r2 = dt;\n break;\n }\n r2 = t5;\n }\n return bt(r2 || dt, e2);\n }\n return ft;\n }\n function ie(t4) {\n const e2 = typeof t4;\n return null === t4 ? \"\" : \"string\" === e2 || \"number\" === e2 || \"boolean\" === e2 ? String(t4) : t4 instanceof Kt || t4 instanceof Yt || t4 instanceof Jt || t4 instanceof Qt || t4 instanceof te ? t4.toString() : JSON.stringify(t4);\n }\n class se {\n constructor(t4, e2) {\n this.type = t4, this.value = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(`'literal' expression requires exactly one argument, but found ${t4.length - 1} instead.`);\n if (!re(t4[1])) return e2.error(\"invalid value\");\n const r2 = t4[1];\n let n2 = ne(r2);\n const i2 = e2.expectedType;\n return \"array\" !== n2.kind || 0 !== n2.N || !i2 || \"array\" !== i2.kind || \"number\" == typeof i2.N && 0 !== i2.N || (n2 = i2), new se(n2, r2);\n }\n evaluate() {\n return this.value;\n }\n eachChild() {\n }\n outputDefined() {\n return true;\n }\n }\n class ae {\n constructor(t4) {\n this.name = \"ExpressionEvaluationError\", this.message = t4;\n }\n toJSON() {\n return this.message;\n }\n }\n const oe = { string: ct, number: ut, boolean: ht, object: ft };\n class le {\n constructor(t4, e2) {\n this.type = t4, this.args = e2;\n }\n static parse(t4, e2) {\n if (t4.length < 2) return e2.error(\"Expected at least one argument.\");\n let r2, n2 = 1;\n const i2 = t4[0];\n if (\"array\" === i2) {\n let i3, s3;\n if (t4.length > 2) {\n const r3 = t4[1];\n if (\"string\" != typeof r3 || !(r3 in oe) || \"object\" === r3) return e2.error('The item type argument of \"array\" must be one of string, number, boolean', 1);\n i3 = oe[r3], n2++;\n } else i3 = dt;\n if (t4.length > 3) {\n if (null !== t4[2] && (\"number\" != typeof t4[2] || t4[2] < 0 || t4[2] !== Math.floor(t4[2]))) return e2.error('The length argument to \"array\" must be a positive integer literal', 2);\n s3 = t4[2], n2++;\n }\n r2 = bt(i3, s3);\n } else {\n if (!oe[i2]) throw new Error(`Types doesn't contain name = ${i2}`);\n r2 = oe[i2];\n }\n const s2 = [];\n for (; n2 < t4.length; n2++) {\n const r3 = e2.parse(t4[n2], n2, dt);\n if (!r3) return null;\n s2.push(r3);\n }\n return new le(r2, s2);\n }\n evaluate(t4) {\n for (let e2 = 0; e2 < this.args.length; e2++) {\n const r2 = this.args[e2].evaluate(t4);\n if (!At(this.type, ne(r2))) return r2;\n if (e2 === this.args.length - 1) throw new ae(`Expected value to be of type ${wt(this.type)}, but found ${wt(ne(r2))} instead.`);\n }\n throw new Error();\n }\n eachChild(t4) {\n this.args.forEach(t4);\n }\n outputDefined() {\n return this.args.every((t4) => t4.outputDefined());\n }\n }\n const ue = { \"to-boolean\": ht, \"to-color\": pt, \"to-number\": ut, \"to-string\": ct };\n class ce {\n constructor(t4, e2) {\n this.type = t4, this.args = e2;\n }\n static parse(t4, e2) {\n if (t4.length < 2) return e2.error(\"Expected at least one argument.\");\n const r2 = t4[0];\n if (!ue[r2]) throw new Error(`Can't parse ${r2} as it is not part of the known types`);\n if ((\"to-boolean\" === r2 || \"to-string\" === r2) && 2 !== t4.length) return e2.error(\"Expected one argument.\");\n const n2 = ue[r2], i2 = [];\n for (let r3 = 1; r3 < t4.length; r3++) {\n const n3 = e2.parse(t4[r3], r3, dt);\n if (!n3) return null;\n i2.push(n3);\n }\n return new ce(n2, i2);\n }\n evaluate(t4) {\n switch (this.type.kind) {\n case \"boolean\":\n return Boolean(this.args[0].evaluate(t4));\n case \"color\": {\n let e2, r2;\n for (const n2 of this.args) {\n if (e2 = n2.evaluate(t4), r2 = null, e2 instanceof Kt) return e2;\n if (\"string\" == typeof e2) {\n const r3 = t4.parseColor(e2);\n if (r3) return r3;\n } else if (Array.isArray(e2) && (r2 = e2.length < 3 || e2.length > 4 ? `Invalid rbga value ${JSON.stringify(e2)}: expected an array containing either three or four numeric values.` : ee(e2[0], e2[1], e2[2], e2[3]), !r2)) return new Kt(e2[0] / 255, e2[1] / 255, e2[2] / 255, e2[3]);\n }\n throw new ae(r2 || `Could not parse color from value '${\"string\" == typeof e2 ? e2 : JSON.stringify(e2)}'`);\n }\n case \"padding\": {\n let e2;\n for (const r2 of this.args) {\n e2 = r2.evaluate(t4);\n const n2 = Jt.parse(e2);\n if (n2) return n2;\n }\n throw new ae(`Could not parse padding from value '${\"string\" == typeof e2 ? e2 : JSON.stringify(e2)}'`);\n }\n case \"variableAnchorOffsetCollection\": {\n let e2;\n for (const r2 of this.args) {\n e2 = r2.evaluate(t4);\n const n2 = Qt.parse(e2);\n if (n2) return n2;\n }\n throw new ae(`Could not parse variableAnchorOffsetCollection from value '${\"string\" == typeof e2 ? e2 : JSON.stringify(e2)}'`);\n }\n case \"number\": {\n let e2 = null;\n for (const r2 of this.args) {\n if (e2 = r2.evaluate(t4), null === e2) return 0;\n const n2 = Number(e2);\n if (!isNaN(n2)) return n2;\n }\n throw new ae(`Could not convert ${JSON.stringify(e2)} to number.`);\n }\n case \"formatted\":\n return Yt.fromString(ie(this.args[0].evaluate(t4)));\n case \"resolvedImage\":\n return te.fromString(ie(this.args[0].evaluate(t4)));\n default:\n return ie(this.args[0].evaluate(t4));\n }\n }\n eachChild(t4) {\n this.args.forEach(t4);\n }\n outputDefined() {\n return this.args.every((t4) => t4.outputDefined());\n }\n }\n const he = [\"Unknown\", \"Point\", \"LineString\", \"Polygon\"];\n class pe {\n constructor() {\n this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null;\n }\n id() {\n return this.feature && \"id\" in this.feature ? this.feature.id : null;\n }\n geometryType() {\n return this.feature ? \"number\" == typeof this.feature.type ? he[this.feature.type] : this.feature.type : null;\n }\n geometry() {\n return this.feature && \"geometry\" in this.feature ? this.feature.geometry : null;\n }\n canonicalID() {\n return this.canonical;\n }\n properties() {\n return this.feature && this.feature.properties || {};\n }\n parseColor(t4) {\n let e2 = this._parseColorCache[t4];\n return e2 || (e2 = this._parseColorCache[t4] = Kt.parse(t4)), e2;\n }\n }\n class fe {\n constructor(t4, e2, r2 = [], n2, i2 = new ot(), s2 = []) {\n this.registry = t4, this.path = r2, this.key = r2.map((t5) => `[${t5}]`).join(\"\"), this.scope = i2, this.errors = s2, this.expectedType = n2, this._isConstant = e2;\n }\n parse(t4, e2, r2, n2, i2 = {}) {\n return e2 ? this.concat(e2, r2, n2)._parse(t4, i2) : this._parse(t4, i2);\n }\n _parse(t4, e2) {\n function r2(t5, e3, r3) {\n return \"assert\" === r3 ? new le(e3, [t5]) : \"coerce\" === r3 ? new ce(e3, [t5]) : t5;\n }\n if (null !== t4 && \"string\" != typeof t4 && \"boolean\" != typeof t4 && \"number\" != typeof t4 || (t4 = [\"literal\", t4]), Array.isArray(t4)) {\n if (0 === t4.length) return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');\n const n2 = t4[0];\n if (\"string\" != typeof n2) return this.error(`Expression name must be a string, but found ${typeof n2} instead. If you wanted a literal array, use [\"literal\", [...]].`, 0), null;\n const i2 = this.registry[n2];\n if (i2) {\n let n3 = i2.parse(t4, this);\n if (!n3) return null;\n if (this.expectedType) {\n const t5 = this.expectedType, i3 = n3.type;\n if (\"string\" !== t5.kind && \"number\" !== t5.kind && \"boolean\" !== t5.kind && \"object\" !== t5.kind && \"array\" !== t5.kind || \"value\" !== i3.kind) if (\"color\" !== t5.kind && \"formatted\" !== t5.kind && \"resolvedImage\" !== t5.kind || \"value\" !== i3.kind && \"string\" !== i3.kind) if (\"padding\" !== t5.kind || \"value\" !== i3.kind && \"number\" !== i3.kind && \"array\" !== i3.kind) if (\"variableAnchorOffsetCollection\" !== t5.kind || \"value\" !== i3.kind && \"array\" !== i3.kind) {\n if (this.checkSubtype(t5, i3)) return null;\n } else n3 = r2(n3, t5, e2.typeAnnotation || \"coerce\");\n else n3 = r2(n3, t5, e2.typeAnnotation || \"coerce\");\n else n3 = r2(n3, t5, e2.typeAnnotation || \"coerce\");\n else n3 = r2(n3, t5, e2.typeAnnotation || \"assert\");\n }\n if (!(n3 instanceof se) && \"resolvedImage\" !== n3.type.kind && this._isConstant(n3)) {\n const t5 = new pe();\n try {\n n3 = new se(n3.type, n3.evaluate(t5));\n } catch (t6) {\n return this.error(t6.message), null;\n }\n }\n return n3;\n }\n return this.error(`Unknown expression \"${n2}\". If you wanted a literal array, use [\"literal\", [...]].`, 0);\n }\n return this.error(void 0 === t4 ? \"'undefined' value invalid. Use null instead.\" : \"object\" == typeof t4 ? 'Bare objects invalid. Use [\"literal\", {...}] instead.' : `Expected an array, but found ${typeof t4} instead.`);\n }\n concat(t4, e2, r2) {\n const n2 = \"number\" == typeof t4 ? this.path.concat(t4) : this.path, i2 = r2 ? this.scope.concat(r2) : this.scope;\n return new fe(this.registry, this._isConstant, n2, e2 || null, i2, this.errors);\n }\n error(t4, ...e2) {\n const r2 = `${this.key}${e2.map((t5) => `[${t5}]`).join(\"\")}`;\n this.errors.push(new at(r2, t4));\n }\n checkSubtype(t4, e2) {\n const r2 = At(t4, e2);\n return r2 && this.error(r2), r2;\n }\n }\n class de {\n constructor(t4, e2) {\n this.type = e2.type, this.bindings = [].concat(t4), this.result = e2;\n }\n evaluate(t4) {\n return this.result.evaluate(t4);\n }\n eachChild(t4) {\n for (const e2 of this.bindings) t4(e2[1]);\n t4(this.result);\n }\n static parse(t4, e2) {\n if (t4.length < 4) return e2.error(`Expected at least 3 arguments, but found ${t4.length - 1} instead.`);\n const r2 = [];\n for (let n3 = 1; n3 < t4.length - 1; n3 += 2) {\n const i2 = t4[n3];\n if (\"string\" != typeof i2) return e2.error(`Expected string, but found ${typeof i2} instead.`, n3);\n if (/[^a-zA-Z0-9_]/.test(i2)) return e2.error(\"Variable names must contain only alphanumeric characters or '_'.\", n3);\n const s2 = e2.parse(t4[n3 + 1], n3 + 1);\n if (!s2) return null;\n r2.push([i2, s2]);\n }\n const n2 = e2.parse(t4[t4.length - 1], t4.length - 1, e2.expectedType, r2);\n return n2 ? new de(r2, n2) : null;\n }\n outputDefined() {\n return this.result.outputDefined();\n }\n }\n class ye {\n constructor(t4, e2) {\n this.type = e2.type, this.name = t4, this.boundExpression = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length || \"string\" != typeof t4[1]) return e2.error(\"'var' expression requires exactly one string literal argument.\");\n const r2 = t4[1];\n return e2.scope.has(r2) ? new ye(r2, e2.scope.get(r2)) : e2.error(`Unknown variable \"${r2}\". Make sure \"${r2}\" has been bound in an enclosing \"let\" expression before using it.`, 1);\n }\n evaluate(t4) {\n return this.boundExpression.evaluate(t4);\n }\n eachChild() {\n }\n outputDefined() {\n return false;\n }\n }\n class me {\n constructor(t4, e2, r2) {\n this.type = t4, this.index = e2, this.input = r2;\n }\n static parse(t4, e2) {\n if (3 !== t4.length) return e2.error(`Expected 2 arguments, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1, ut), n2 = e2.parse(t4[2], 2, bt(e2.expectedType || dt));\n return r2 && n2 ? new me(n2.type.itemType, r2, n2) : null;\n }\n evaluate(t4) {\n const e2 = this.index.evaluate(t4), r2 = this.input.evaluate(t4);\n if (e2 < 0) throw new ae(`Array index out of bounds: ${e2} < 0.`);\n if (e2 >= r2.length) throw new ae(`Array index out of bounds: ${e2} > ${r2.length - 1}.`);\n if (e2 !== Math.floor(e2)) throw new ae(`Array index must be an integer, but found ${e2} instead.`);\n return r2[e2];\n }\n eachChild(t4) {\n t4(this.index), t4(this.input);\n }\n outputDefined() {\n return false;\n }\n }\n class ge {\n constructor(t4, e2) {\n this.type = ht, this.needle = t4, this.haystack = e2;\n }\n static parse(t4, e2) {\n if (3 !== t4.length) return e2.error(`Expected 2 arguments, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1, dt), n2 = e2.parse(t4[2], 2, dt);\n return r2 && n2 ? St(r2.type, [ht, ct, ut, lt, dt]) ? new ge(r2, n2) : e2.error(`Expected first argument to be of type boolean, string, number or null, but found ${wt(r2.type)} instead`) : null;\n }\n evaluate(t4) {\n const e2 = this.needle.evaluate(t4), r2 = this.haystack.evaluate(t4);\n if (!r2) return false;\n if (!kt(e2, [\"boolean\", \"string\", \"number\", \"null\"])) throw new ae(`Expected first argument to be of type boolean, string, number or null, but found ${wt(ne(e2))} instead.`);\n if (!kt(r2, [\"string\", \"array\"])) throw new ae(`Expected second argument to be of type array or string, but found ${wt(ne(r2))} instead.`);\n return r2.indexOf(e2) >= 0;\n }\n eachChild(t4) {\n t4(this.needle), t4(this.haystack);\n }\n outputDefined() {\n return true;\n }\n }\n class xe {\n constructor(t4, e2, r2) {\n this.type = ut, this.needle = t4, this.haystack = e2, this.fromIndex = r2;\n }\n static parse(t4, e2) {\n if (t4.length <= 2 || t4.length >= 5) return e2.error(`Expected 3 or 4 arguments, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1, dt), n2 = e2.parse(t4[2], 2, dt);\n if (!r2 || !n2) return null;\n if (!St(r2.type, [ht, ct, ut, lt, dt])) return e2.error(`Expected first argument to be of type boolean, string, number or null, but found ${wt(r2.type)} instead`);\n if (4 === t4.length) {\n const i2 = e2.parse(t4[3], 3, ut);\n return i2 ? new xe(r2, n2, i2) : null;\n }\n return new xe(r2, n2);\n }\n evaluate(t4) {\n const e2 = this.needle.evaluate(t4), r2 = this.haystack.evaluate(t4);\n if (!kt(e2, [\"boolean\", \"string\", \"number\", \"null\"])) throw new ae(`Expected first argument to be of type boolean, string, number or null, but found ${wt(ne(e2))} instead.`);\n let n2;\n if (this.fromIndex && (n2 = this.fromIndex.evaluate(t4)), kt(r2, [\"string\"])) {\n const t5 = r2.indexOf(e2, n2);\n return -1 === t5 ? -1 : [...r2.slice(0, t5)].length;\n }\n if (kt(r2, [\"array\"])) return r2.indexOf(e2, n2);\n throw new ae(`Expected second argument to be of type array or string, but found ${wt(ne(r2))} instead.`);\n }\n eachChild(t4) {\n t4(this.needle), t4(this.haystack), this.fromIndex && t4(this.fromIndex);\n }\n outputDefined() {\n return false;\n }\n }\n class ve {\n constructor(t4, e2, r2, n2, i2, s2) {\n this.inputType = t4, this.type = e2, this.input = r2, this.cases = n2, this.outputs = i2, this.otherwise = s2;\n }\n static parse(t4, e2) {\n if (t4.length < 5) return e2.error(`Expected at least 4 arguments, but found only ${t4.length - 1}.`);\n if (t4.length % 2 != 1) return e2.error(\"Expected an even number of arguments.\");\n let r2, n2;\n e2.expectedType && \"value\" !== e2.expectedType.kind && (n2 = e2.expectedType);\n const i2 = {}, s2 = [];\n for (let a3 = 2; a3 < t4.length - 1; a3 += 2) {\n let o3 = t4[a3];\n const l2 = t4[a3 + 1];\n Array.isArray(o3) || (o3 = [o3]);\n const u2 = e2.concat(a3);\n if (0 === o3.length) return u2.error(\"Expected at least one branch label.\");\n for (const t5 of o3) {\n if (\"number\" != typeof t5 && \"string\" != typeof t5) return u2.error(\"Branch labels must be numbers or strings.\");\n if (\"number\" == typeof t5 && Math.abs(t5) > Number.MAX_SAFE_INTEGER) return u2.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);\n if (\"number\" == typeof t5 && Math.floor(t5) !== t5) return u2.error(\"Numeric branch labels must be integer values.\");\n if (r2) {\n if (u2.checkSubtype(r2, ne(t5))) return null;\n } else r2 = ne(t5);\n if (void 0 !== i2[String(t5)]) return u2.error(\"Branch labels must be unique.\");\n i2[String(t5)] = s2.length;\n }\n const c2 = e2.parse(l2, a3, n2);\n if (!c2) return null;\n n2 = n2 || c2.type, s2.push(c2);\n }\n const a2 = e2.parse(t4[1], 1, dt);\n if (!a2) return null;\n const o2 = e2.parse(t4[t4.length - 1], t4.length - 1, n2);\n return o2 ? \"value\" !== a2.type.kind && e2.concat(1).checkSubtype(r2, a2.type) ? null : new ve(r2, n2, a2, i2, s2, o2) : null;\n }\n evaluate(t4) {\n const e2 = this.input.evaluate(t4);\n return (ne(e2) === this.inputType && this.outputs[this.cases[e2]] || this.otherwise).evaluate(t4);\n }\n eachChild(t4) {\n t4(this.input), this.outputs.forEach(t4), t4(this.otherwise);\n }\n outputDefined() {\n return this.outputs.every((t4) => t4.outputDefined()) && this.otherwise.outputDefined();\n }\n }\n class be {\n constructor(t4, e2, r2) {\n this.type = t4, this.branches = e2, this.otherwise = r2;\n }\n static parse(t4, e2) {\n if (t4.length < 4) return e2.error(`Expected at least 3 arguments, but found only ${t4.length - 1}.`);\n if (t4.length % 2 != 0) return e2.error(\"Expected an odd number of arguments.\");\n let r2;\n e2.expectedType && \"value\" !== e2.expectedType.kind && (r2 = e2.expectedType);\n const n2 = [];\n for (let i3 = 1; i3 < t4.length - 1; i3 += 2) {\n const s2 = e2.parse(t4[i3], i3, ht);\n if (!s2) return null;\n const a2 = e2.parse(t4[i3 + 1], i3 + 1, r2);\n if (!a2) return null;\n n2.push([s2, a2]), r2 = r2 || a2.type;\n }\n const i2 = e2.parse(t4[t4.length - 1], t4.length - 1, r2);\n if (!i2) return null;\n if (!r2) throw new Error(\"Can't infer output type\");\n return new be(r2, n2, i2);\n }\n evaluate(t4) {\n for (const [e2, r2] of this.branches) if (e2.evaluate(t4)) return r2.evaluate(t4);\n return this.otherwise.evaluate(t4);\n }\n eachChild(t4) {\n for (const [e2, r2] of this.branches) t4(e2), t4(r2);\n t4(this.otherwise);\n }\n outputDefined() {\n return this.branches.every(([t4, e2]) => e2.outputDefined()) && this.otherwise.outputDefined();\n }\n }\n class we {\n constructor(t4, e2, r2, n2) {\n this.type = t4, this.input = e2, this.beginIndex = r2, this.endIndex = n2;\n }\n static parse(t4, e2) {\n if (t4.length <= 2 || t4.length >= 5) return e2.error(`Expected 3 or 4 arguments, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1, dt), n2 = e2.parse(t4[2], 2, ut);\n if (!r2 || !n2) return null;\n if (!St(r2.type, [bt(dt), ct, dt])) return e2.error(`Expected first argument to be of type array or string, but found ${wt(r2.type)} instead`);\n if (4 === t4.length) {\n const i2 = e2.parse(t4[3], 3, ut);\n return i2 ? new we(r2.type, r2, n2, i2) : null;\n }\n return new we(r2.type, r2, n2);\n }\n evaluate(t4) {\n const e2 = this.input.evaluate(t4), r2 = this.beginIndex.evaluate(t4);\n let n2;\n if (this.endIndex && (n2 = this.endIndex.evaluate(t4)), kt(e2, [\"string\"])) return [...e2].slice(r2, n2).join(\"\");\n if (kt(e2, [\"array\"])) return e2.slice(r2, n2);\n throw new ae(`Expected first argument to be of type array or string, but found ${wt(ne(e2))} instead.`);\n }\n eachChild(t4) {\n t4(this.input), t4(this.beginIndex), this.endIndex && t4(this.endIndex);\n }\n outputDefined() {\n return false;\n }\n }\n function _e(t4, e2) {\n const r2 = t4.length - 1;\n let n2, i2, s2 = 0, a2 = r2, o2 = 0;\n for (; s2 <= a2; ) if (o2 = Math.floor((s2 + a2) / 2), n2 = t4[o2], i2 = t4[o2 + 1], n2 <= e2) {\n if (o2 === r2 || e2 < i2) return o2;\n s2 = o2 + 1;\n } else {\n if (!(n2 > e2)) throw new ae(\"Input is not a number.\");\n a2 = o2 - 1;\n }\n return 0;\n }\n class Ae {\n constructor(t4, e2, r2) {\n this.type = t4, this.input = e2, this.labels = [], this.outputs = [];\n for (const [t5, e3] of r2) this.labels.push(t5), this.outputs.push(e3);\n }\n static parse(t4, e2) {\n if (t4.length - 1 < 4) return e2.error(`Expected at least 4 arguments, but found only ${t4.length - 1}.`);\n if ((t4.length - 1) % 2 != 0) return e2.error(\"Expected an even number of arguments.\");\n const r2 = e2.parse(t4[1], 1, ut);\n if (!r2) return null;\n const n2 = [];\n let i2 = null;\n e2.expectedType && \"value\" !== e2.expectedType.kind && (i2 = e2.expectedType);\n for (let r3 = 1; r3 < t4.length; r3 += 2) {\n const s2 = 1 === r3 ? -1 / 0 : t4[r3], a2 = t4[r3 + 1], o2 = r3, l2 = r3 + 1;\n if (\"number\" != typeof s2) return e2.error('Input/output pairs for \"step\" expressions must be defined using literal numeric values (not computed expressions) for the input values.', o2);\n if (n2.length && n2[n2.length - 1][0] >= s2) return e2.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.', o2);\n const u2 = e2.parse(a2, l2, i2);\n if (!u2) return null;\n i2 = i2 || u2.type, n2.push([s2, u2]);\n }\n return new Ae(i2, r2, n2);\n }\n evaluate(t4) {\n const e2 = this.labels, r2 = this.outputs;\n if (1 === e2.length) return r2[0].evaluate(t4);\n const n2 = this.input.evaluate(t4);\n if (n2 <= e2[0]) return r2[0].evaluate(t4);\n const i2 = e2.length;\n return n2 >= e2[i2 - 1] ? r2[i2 - 1].evaluate(t4) : r2[_e(e2, n2)].evaluate(t4);\n }\n eachChild(t4) {\n t4(this.input);\n for (const e2 of this.outputs) t4(e2);\n }\n outputDefined() {\n return this.outputs.every((t4) => t4.outputDefined());\n }\n }\n function Se(t4) {\n return t4 && t4.__esModule && Object.prototype.hasOwnProperty.call(t4, \"default\") ? t4.default : t4;\n }\n var ke = Me;\n function Me(t4, e2, r2, n2) {\n this.cx = 3 * t4, this.bx = 3 * (r2 - t4) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e2, this.by = 3 * (n2 - e2) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t4, this.p1y = e2, this.p2x = r2, this.p2y = n2;\n }\n Me.prototype = { sampleCurveX: function(t4) {\n return ((this.ax * t4 + this.bx) * t4 + this.cx) * t4;\n }, sampleCurveY: function(t4) {\n return ((this.ay * t4 + this.by) * t4 + this.cy) * t4;\n }, sampleCurveDerivativeX: function(t4) {\n return (3 * this.ax * t4 + 2 * this.bx) * t4 + this.cx;\n }, solveCurveX: function(t4, e2) {\n if (void 0 === e2 && (e2 = 1e-6), t4 < 0) return 0;\n if (t4 > 1) return 1;\n for (var r2 = t4, n2 = 0; n2 < 8; n2++) {\n var i2 = this.sampleCurveX(r2) - t4;\n if (Math.abs(i2) < e2) return r2;\n var s2 = this.sampleCurveDerivativeX(r2);\n if (Math.abs(s2) < 1e-6) break;\n r2 -= i2 / s2;\n }\n var a2 = 0, o2 = 1;\n for (r2 = t4, n2 = 0; n2 < 20 && (i2 = this.sampleCurveX(r2), !(Math.abs(i2 - t4) < e2)); n2++) t4 > i2 ? a2 = r2 : o2 = r2, r2 = 0.5 * (o2 - a2) + a2;\n return r2;\n }, solve: function(t4, e2) {\n return this.sampleCurveY(this.solveCurveX(t4, e2));\n } };\n var Ie = Se(ke);\n function ze(t4, e2, r2) {\n return t4 + r2 * (e2 - t4);\n }\n function Pe(t4, e2, r2) {\n return t4.map((t5, n2) => ze(t5, e2[n2], r2));\n }\n const Ce = { number: ze, color: function(t4, e2, r2, n2 = \"rgb\") {\n switch (n2) {\n case \"rgb\": {\n const [n3, i2, s2, a2] = Pe(t4.rgb, e2.rgb, r2);\n return new Kt(n3, i2, s2, a2, false);\n }\n case \"hcl\": {\n const [n3, i2, s2, a2] = t4.hcl, [o2, l2, u2, c2] = e2.hcl;\n let h2, p2;\n if (isNaN(n3) || isNaN(o2)) isNaN(n3) ? isNaN(o2) ? h2 = NaN : (h2 = o2, 1 !== s2 && 0 !== s2 || (p2 = l2)) : (h2 = n3, 1 !== u2 && 0 !== u2 || (p2 = i2));\n else {\n let t5 = o2 - n3;\n o2 > n3 && t5 > 180 ? t5 -= 360 : o2 < n3 && n3 - o2 > 180 && (t5 += 360), h2 = n3 + r2 * t5;\n }\n const [f2, d2, y2, m2] = function([t5, e3, r3, n4]) {\n return t5 = isNaN(t5) ? 0 : t5 * Et, Ot([r3, Math.cos(t5) * e3, Math.sin(t5) * e3, n4]);\n }([h2, null != p2 ? p2 : ze(i2, l2, r2), ze(s2, u2, r2), ze(a2, c2, r2)]);\n return new Kt(f2, d2, y2, m2, false);\n }\n case \"lab\": {\n const [n3, i2, s2, a2] = Ot(Pe(t4.lab, e2.lab, r2));\n return new Kt(n3, i2, s2, a2, false);\n }\n }\n }, array: Pe, padding: function(t4, e2, r2) {\n return new Jt(Pe(t4.values, e2.values, r2));\n }, variableAnchorOffsetCollection: function(t4, e2, r2) {\n const n2 = t4.values, i2 = e2.values;\n if (n2.length !== i2.length) throw new ae(`Cannot interpolate values of different length. from: ${t4.toString()}, to: ${e2.toString()}`);\n const s2 = [];\n for (let t5 = 0; t5 < n2.length; t5 += 2) {\n if (n2[t5] !== i2[t5]) throw new ae(`Cannot interpolate values containing mismatched anchors. from[${t5}]: ${n2[t5]}, to[${t5}]: ${i2[t5]}`);\n s2.push(n2[t5]);\n const [e3, a2] = n2[t5 + 1], [o2, l2] = i2[t5 + 1];\n s2.push([ze(e3, o2, r2), ze(a2, l2, r2)]);\n }\n return new Qt(s2);\n } };\n class Be {\n constructor(t4, e2, r2, n2, i2) {\n this.type = t4, this.operator = e2, this.interpolation = r2, this.input = n2, this.labels = [], this.outputs = [];\n for (const [t5, e3] of i2) this.labels.push(t5), this.outputs.push(e3);\n }\n static interpolationFactor(t4, e2, r2, n2) {\n let i2 = 0;\n if (\"exponential\" === t4.name) i2 = Ve(e2, t4.base, r2, n2);\n else if (\"linear\" === t4.name) i2 = Ve(e2, 1, r2, n2);\n else if (\"cubic-bezier\" === t4.name) {\n const s2 = t4.controlPoints;\n i2 = new Ie(s2[0], s2[1], s2[2], s2[3]).solve(Ve(e2, 1, r2, n2));\n }\n return i2;\n }\n static parse(t4, e2) {\n let [r2, n2, i2, ...s2] = t4;\n if (!Array.isArray(n2) || 0 === n2.length) return e2.error(\"Expected an interpolation type expression.\", 1);\n if (\"linear\" === n2[0]) n2 = { name: \"linear\" };\n else if (\"exponential\" === n2[0]) {\n const t5 = n2[1];\n if (\"number\" != typeof t5) return e2.error(\"Exponential interpolation requires a numeric base.\", 1, 1);\n n2 = { name: \"exponential\", base: t5 };\n } else {\n if (\"cubic-bezier\" !== n2[0]) return e2.error(`Unknown interpolation type ${String(n2[0])}`, 1, 0);\n {\n const t5 = n2.slice(1);\n if (4 !== t5.length || t5.some((t6) => \"number\" != typeof t6 || t6 < 0 || t6 > 1)) return e2.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\", 1);\n n2 = { name: \"cubic-bezier\", controlPoints: t5 };\n }\n }\n if (t4.length - 1 < 4) return e2.error(`Expected at least 4 arguments, but found only ${t4.length - 1}.`);\n if ((t4.length - 1) % 2 != 0) return e2.error(\"Expected an even number of arguments.\");\n if (i2 = e2.parse(i2, 2, ut), !i2) return null;\n const a2 = [];\n let o2 = null;\n \"interpolate-hcl\" === r2 || \"interpolate-lab\" === r2 ? o2 = pt : e2.expectedType && \"value\" !== e2.expectedType.kind && (o2 = e2.expectedType);\n for (let t5 = 0; t5 < s2.length; t5 += 2) {\n const r3 = s2[t5], n3 = s2[t5 + 1], i3 = t5 + 3, l2 = t5 + 4;\n if (\"number\" != typeof r3) return e2.error('Input/output pairs for \"interpolate\" expressions must be defined using literal numeric values (not computed expressions) for the input values.', i3);\n if (a2.length && a2[a2.length - 1][0] >= r3) return e2.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.', i3);\n const u2 = e2.parse(n3, l2, o2);\n if (!u2) return null;\n o2 = o2 || u2.type, a2.push([r3, u2]);\n }\n return Mt(o2, ut) || Mt(o2, pt) || Mt(o2, gt) || Mt(o2, vt) || Mt(o2, bt(ut)) ? new Be(o2, r2, n2, i2, a2) : e2.error(`Type ${wt(o2)} is not interpolatable.`);\n }\n evaluate(t4) {\n const e2 = this.labels, r2 = this.outputs;\n if (1 === e2.length) return r2[0].evaluate(t4);\n const n2 = this.input.evaluate(t4);\n if (n2 <= e2[0]) return r2[0].evaluate(t4);\n const i2 = e2.length;\n if (n2 >= e2[i2 - 1]) return r2[i2 - 1].evaluate(t4);\n const s2 = _e(e2, n2), a2 = Be.interpolationFactor(this.interpolation, n2, e2[s2], e2[s2 + 1]), o2 = r2[s2].evaluate(t4), l2 = r2[s2 + 1].evaluate(t4);\n switch (this.operator) {\n case \"interpolate\":\n return Ce[this.type.kind](o2, l2, a2);\n case \"interpolate-hcl\":\n return Ce.color(o2, l2, a2, \"hcl\");\n case \"interpolate-lab\":\n return Ce.color(o2, l2, a2, \"lab\");\n }\n }\n eachChild(t4) {\n t4(this.input);\n for (const e2 of this.outputs) t4(e2);\n }\n outputDefined() {\n return this.outputs.every((t4) => t4.outputDefined());\n }\n }\n function Ve(t4, e2, r2, n2) {\n const i2 = n2 - r2, s2 = t4 - r2;\n return 0 === i2 ? 0 : 1 === e2 ? s2 / i2 : (Math.pow(e2, s2) - 1) / (Math.pow(e2, i2) - 1);\n }\n class Ee {\n constructor(t4, e2) {\n this.type = t4, this.args = e2;\n }\n static parse(t4, e2) {\n if (t4.length < 2) return e2.error(\"Expectected at least one argument.\");\n let r2 = null;\n const n2 = e2.expectedType;\n n2 && \"value\" !== n2.kind && (r2 = n2);\n const i2 = [];\n for (const n3 of t4.slice(1)) {\n const t5 = e2.parse(n3, 1 + i2.length, r2, void 0, { typeAnnotation: \"omit\" });\n if (!t5) return null;\n r2 = r2 || t5.type, i2.push(t5);\n }\n if (!r2) throw new Error(\"No output type\");\n const s2 = n2 && i2.some((t5) => At(n2, t5.type));\n return new Ee(s2 ? dt : r2, i2);\n }\n evaluate(t4) {\n let e2, r2 = null, n2 = 0;\n for (const i2 of this.args) if (n2++, r2 = i2.evaluate(t4), r2 && r2 instanceof te && !r2.available && (e2 || (e2 = r2.name), r2 = null, n2 === this.args.length && (r2 = e2)), null !== r2) break;\n return r2;\n }\n eachChild(t4) {\n this.args.forEach(t4);\n }\n outputDefined() {\n return this.args.every((t4) => t4.outputDefined());\n }\n }\n function Fe(t4, e2) {\n return \"==\" === t4 || \"!=\" === t4 ? \"boolean\" === e2.kind || \"string\" === e2.kind || \"number\" === e2.kind || \"null\" === e2.kind || \"value\" === e2.kind : \"string\" === e2.kind || \"number\" === e2.kind || \"value\" === e2.kind;\n }\n function Te(t4, e2, r2, n2) {\n return 0 === n2.compare(e2, r2);\n }\n function $e(t4, e2, r2) {\n const n2 = \"==\" !== t4 && \"!=\" !== t4;\n return class i2 {\n constructor(t5, e3, r3) {\n this.type = ht, this.lhs = t5, this.rhs = e3, this.collator = r3, this.hasUntypedArgument = \"value\" === t5.type.kind || \"value\" === e3.type.kind;\n }\n static parse(t5, e3) {\n if (3 !== t5.length && 4 !== t5.length) return e3.error(\"Expected two or three arguments.\");\n const r3 = t5[0];\n let s2 = e3.parse(t5[1], 1, dt);\n if (!s2) return null;\n if (!Fe(r3, s2.type)) return e3.concat(1).error(`\"${r3}\" comparisons are not supported for type '${wt(s2.type)}'.`);\n let a2 = e3.parse(t5[2], 2, dt);\n if (!a2) return null;\n if (!Fe(r3, a2.type)) return e3.concat(2).error(`\"${r3}\" comparisons are not supported for type '${wt(a2.type)}'.`);\n if (s2.type.kind !== a2.type.kind && \"value\" !== s2.type.kind && \"value\" !== a2.type.kind) return e3.error(`Cannot compare types '${wt(s2.type)}' and '${wt(a2.type)}'.`);\n n2 && (\"value\" === s2.type.kind && \"value\" !== a2.type.kind ? s2 = new le(a2.type, [s2]) : \"value\" !== s2.type.kind && \"value\" === a2.type.kind && (a2 = new le(s2.type, [a2])));\n let o2 = null;\n if (4 === t5.length) {\n if (\"string\" !== s2.type.kind && \"string\" !== a2.type.kind && \"value\" !== s2.type.kind && \"value\" !== a2.type.kind) return e3.error(\"Cannot use collator to compare non-string types.\");\n if (o2 = e3.parse(t5[3], 3, yt), !o2) return null;\n }\n return new i2(s2, a2, o2);\n }\n evaluate(i3) {\n const s2 = this.lhs.evaluate(i3), a2 = this.rhs.evaluate(i3);\n if (n2 && this.hasUntypedArgument) {\n const e3 = ne(s2), r3 = ne(a2);\n if (e3.kind !== r3.kind || \"string\" !== e3.kind && \"number\" !== e3.kind) throw new ae(`Expected arguments for \"${t4}\" to be (string, string) or (number, number), but found (${e3.kind}, ${r3.kind}) instead.`);\n }\n if (this.collator && !n2 && this.hasUntypedArgument) {\n const t5 = ne(s2), r3 = ne(a2);\n if (\"string\" !== t5.kind || \"string\" !== r3.kind) return e2(i3, s2, a2);\n }\n return this.collator ? r2(i3, s2, a2, this.collator.evaluate(i3)) : e2(i3, s2, a2);\n }\n eachChild(t5) {\n t5(this.lhs), t5(this.rhs), this.collator && t5(this.collator);\n }\n outputDefined() {\n return true;\n }\n };\n }\n const Le = $e(\"==\", function(t4, e2, r2) {\n return e2 === r2;\n }, Te), De = $e(\"!=\", function(t4, e2, r2) {\n return e2 !== r2;\n }, function(t4, e2, r2, n2) {\n return !Te(0, e2, r2, n2);\n }), Oe = $e(\"<\", function(t4, e2, r2) {\n return e2 < r2;\n }, function(t4, e2, r2, n2) {\n return n2.compare(e2, r2) < 0;\n }), je = $e(\">\", function(t4, e2, r2) {\n return e2 > r2;\n }, function(t4, e2, r2, n2) {\n return n2.compare(e2, r2) > 0;\n }), Re = $e(\"<=\", function(t4, e2, r2) {\n return e2 <= r2;\n }, function(t4, e2, r2, n2) {\n return n2.compare(e2, r2) <= 0;\n }), Ue = $e(\">=\", function(t4, e2, r2) {\n return e2 >= r2;\n }, function(t4, e2, r2, n2) {\n return n2.compare(e2, r2) >= 0;\n });\n class qe {\n constructor(t4, e2, r2) {\n this.type = yt, this.locale = r2, this.caseSensitive = t4, this.diacriticSensitive = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(\"Expected one argument.\");\n const r2 = t4[1];\n if (\"object\" != typeof r2 || Array.isArray(r2)) return e2.error(\"Collator options argument must be an object.\");\n const n2 = e2.parse(void 0 !== r2[\"case-sensitive\"] && r2[\"case-sensitive\"], 1, ht);\n if (!n2) return null;\n const i2 = e2.parse(void 0 !== r2[\"diacritic-sensitive\"] && r2[\"diacritic-sensitive\"], 1, ht);\n if (!i2) return null;\n let s2 = null;\n return r2.locale && (s2 = e2.parse(r2.locale, 1, ct), !s2) ? null : new qe(n2, i2, s2);\n }\n evaluate(t4) {\n return new Xt(this.caseSensitive.evaluate(t4), this.diacriticSensitive.evaluate(t4), this.locale ? this.locale.evaluate(t4) : null);\n }\n eachChild(t4) {\n t4(this.caseSensitive), t4(this.diacriticSensitive), this.locale && t4(this.locale);\n }\n outputDefined() {\n return false;\n }\n }\n class Ne {\n constructor(t4, e2, r2, n2, i2) {\n this.type = ct, this.number = t4, this.locale = e2, this.currency = r2, this.minFractionDigits = n2, this.maxFractionDigits = i2;\n }\n static parse(t4, e2) {\n if (3 !== t4.length) return e2.error(\"Expected two arguments.\");\n const r2 = e2.parse(t4[1], 1, ut);\n if (!r2) return null;\n const n2 = t4[2];\n if (\"object\" != typeof n2 || Array.isArray(n2)) return e2.error(\"NumberFormat options argument must be an object.\");\n let i2 = null;\n if (n2.locale && (i2 = e2.parse(n2.locale, 1, ct), !i2)) return null;\n let s2 = null;\n if (n2.currency && (s2 = e2.parse(n2.currency, 1, ct), !s2)) return null;\n let a2 = null;\n if (n2[\"min-fraction-digits\"] && (a2 = e2.parse(n2[\"min-fraction-digits\"], 1, ut), !a2)) return null;\n let o2 = null;\n return n2[\"max-fraction-digits\"] && (o2 = e2.parse(n2[\"max-fraction-digits\"], 1, ut), !o2) ? null : new Ne(r2, i2, s2, a2, o2);\n }\n evaluate(t4) {\n return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t4) : [], { style: this.currency ? \"currency\" : \"decimal\", currency: this.currency ? this.currency.evaluate(t4) : void 0, minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t4) : void 0, maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t4) : void 0 }).format(this.number.evaluate(t4));\n }\n eachChild(t4) {\n t4(this.number), this.locale && t4(this.locale), this.currency && t4(this.currency), this.minFractionDigits && t4(this.minFractionDigits), this.maxFractionDigits && t4(this.maxFractionDigits);\n }\n outputDefined() {\n return false;\n }\n }\n class Ze {\n constructor(t4) {\n this.type = mt, this.sections = t4;\n }\n static parse(t4, e2) {\n if (t4.length < 2) return e2.error(\"Expected at least one argument.\");\n const r2 = t4[1];\n if (!Array.isArray(r2) && \"object\" == typeof r2) return e2.error(\"First argument must be an image or text section.\");\n const n2 = [];\n let i2 = false;\n for (let r3 = 1; r3 <= t4.length - 1; ++r3) {\n const s2 = t4[r3];\n if (i2 && \"object\" == typeof s2 && !Array.isArray(s2)) {\n i2 = false;\n let t5 = null;\n if (s2[\"font-scale\"] && (t5 = e2.parse(s2[\"font-scale\"], 1, ut), !t5)) return null;\n let r4 = null;\n if (s2[\"text-font\"] && (r4 = e2.parse(s2[\"text-font\"], 1, bt(ct)), !r4)) return null;\n let a2 = null;\n if (s2[\"text-color\"] && (a2 = e2.parse(s2[\"text-color\"], 1, pt), !a2)) return null;\n const o2 = n2[n2.length - 1];\n o2.scale = t5, o2.font = r4, o2.textColor = a2;\n } else {\n const s3 = e2.parse(t4[r3], 1, dt);\n if (!s3) return null;\n const a2 = s3.type.kind;\n if (\"string\" !== a2 && \"value\" !== a2 && \"null\" !== a2 && \"resolvedImage\" !== a2) return e2.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");\n i2 = true, n2.push({ content: s3, scale: null, font: null, textColor: null });\n }\n }\n return new Ze(n2);\n }\n evaluate(t4) {\n return new Yt(this.sections.map((e2) => {\n const r2 = e2.content.evaluate(t4);\n return ne(r2) === xt ? new Ht(\"\", r2, null, null, null) : new Ht(ie(r2), null, e2.scale ? e2.scale.evaluate(t4) : null, e2.font ? e2.font.evaluate(t4).join(\",\") : null, e2.textColor ? e2.textColor.evaluate(t4) : null);\n }));\n }\n eachChild(t4) {\n for (const e2 of this.sections) t4(e2.content), e2.scale && t4(e2.scale), e2.font && t4(e2.font), e2.textColor && t4(e2.textColor);\n }\n outputDefined() {\n return false;\n }\n }\n class Ge {\n constructor(t4) {\n this.type = xt, this.input = t4;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(\"Expected two arguments.\");\n const r2 = e2.parse(t4[1], 1, ct);\n return r2 ? new Ge(r2) : e2.error(\"No image name provided.\");\n }\n evaluate(t4) {\n const e2 = this.input.evaluate(t4), r2 = te.fromString(e2);\n return r2 && t4.availableImages && (r2.available = t4.availableImages.indexOf(e2) > -1), r2;\n }\n eachChild(t4) {\n t4(this.input);\n }\n outputDefined() {\n return false;\n }\n }\n class Ke {\n constructor(t4) {\n this.type = ut, this.input = t4;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(`Expected 1 argument, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1);\n return r2 ? \"array\" !== r2.type.kind && \"string\" !== r2.type.kind && \"value\" !== r2.type.kind ? e2.error(`Expected argument of type string or array, but found ${wt(r2.type)} instead.`) : new Ke(r2) : null;\n }\n evaluate(t4) {\n const e2 = this.input.evaluate(t4);\n if (\"string\" == typeof e2) return [...e2].length;\n if (Array.isArray(e2)) return e2.length;\n throw new ae(`Expected value to be of type string or array, but found ${wt(ne(e2))} instead.`);\n }\n eachChild(t4) {\n t4(this.input);\n }\n outputDefined() {\n return false;\n }\n }\n const Xe = 8192;\n function He(t4, e2) {\n const r2 = (180 + t4[0]) / 360, n2 = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t4[1] * Math.PI / 360))) / 360, i2 = Math.pow(2, e2.z);\n return [Math.round(r2 * i2 * Xe), Math.round(n2 * i2 * Xe)];\n }\n function Ye(t4, e2) {\n const r2 = Math.pow(2, e2.z);\n return [(i2 = (t4[0] / Xe + e2.x) / r2, 360 * i2 - 180), (n2 = (t4[1] / Xe + e2.y) / r2, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * n2) * Math.PI / 180)) - 90)];\n var n2, i2;\n }\n function Je(t4, e2) {\n t4[0] = Math.min(t4[0], e2[0]), t4[1] = Math.min(t4[1], e2[1]), t4[2] = Math.max(t4[2], e2[0]), t4[3] = Math.max(t4[3], e2[1]);\n }\n function We(t4, e2) {\n return !(t4[0] <= e2[0] || t4[2] >= e2[2] || t4[1] <= e2[1] || t4[3] >= e2[3]);\n }\n function Qe(t4, e2, r2) {\n const n2 = t4[0] - e2[0], i2 = t4[1] - e2[1], s2 = t4[0] - r2[0], a2 = t4[1] - r2[1];\n return n2 * a2 - s2 * i2 == 0 && n2 * s2 <= 0 && i2 * a2 <= 0;\n }\n function tr(t4, e2, r2, n2) {\n return 0 != (i2 = [n2[0] - r2[0], n2[1] - r2[1]])[0] * (s2 = [e2[0] - t4[0], e2[1] - t4[1]])[1] - i2[1] * s2[0] && !(!ar(t4, e2, r2, n2) || !ar(r2, n2, t4, e2));\n var i2, s2;\n }\n function er(t4, e2, r2) {\n for (const n2 of r2) for (let r3 = 0; r3 < n2.length - 1; ++r3) if (tr(t4, e2, n2[r3], n2[r3 + 1])) return true;\n return false;\n }\n function rr(t4, e2, r2 = false) {\n let n2 = false;\n for (const o2 of e2) for (let e3 = 0; e3 < o2.length - 1; e3++) {\n if (Qe(t4, o2[e3], o2[e3 + 1])) return r2;\n (s2 = o2[e3])[1] > (i2 = t4)[1] != (a2 = o2[e3 + 1])[1] > i2[1] && i2[0] < (a2[0] - s2[0]) * (i2[1] - s2[1]) / (a2[1] - s2[1]) + s2[0] && (n2 = !n2);\n }\n var i2, s2, a2;\n return n2;\n }\n function nr(t4, e2) {\n for (const r2 of e2) if (rr(t4, r2)) return true;\n return false;\n }\n function ir(t4, e2) {\n for (const r2 of t4) if (!rr(r2, e2)) return false;\n for (let r2 = 0; r2 < t4.length - 1; ++r2) if (er(t4[r2], t4[r2 + 1], e2)) return false;\n return true;\n }\n function sr(t4, e2) {\n for (const r2 of e2) if (ir(t4, r2)) return true;\n return false;\n }\n function ar(t4, e2, r2, n2) {\n const i2 = n2[0] - r2[0], s2 = n2[1] - r2[1], a2 = (t4[0] - r2[0]) * s2 - i2 * (t4[1] - r2[1]), o2 = (e2[0] - r2[0]) * s2 - i2 * (e2[1] - r2[1]);\n return a2 > 0 && o2 < 0 || a2 < 0 && o2 > 0;\n }\n function or(t4, e2, r2) {\n const n2 = [];\n for (let i2 = 0; i2 < t4.length; i2++) {\n const s2 = [];\n for (let n3 = 0; n3 < t4[i2].length; n3++) {\n const a2 = He(t4[i2][n3], r2);\n Je(e2, a2), s2.push(a2);\n }\n n2.push(s2);\n }\n return n2;\n }\n function lr(t4, e2, r2) {\n const n2 = [];\n for (let i2 = 0; i2 < t4.length; i2++) {\n const s2 = or(t4[i2], e2, r2);\n n2.push(s2);\n }\n return n2;\n }\n function ur(t4, e2, r2, n2) {\n if (t4[0] < r2[0] || t4[0] > r2[2]) {\n const e3 = 0.5 * n2;\n let i2 = t4[0] - r2[0] > e3 ? -n2 : r2[0] - t4[0] > e3 ? n2 : 0;\n 0 === i2 && (i2 = t4[0] - r2[2] > e3 ? -n2 : r2[2] - t4[0] > e3 ? n2 : 0), t4[0] += i2;\n }\n Je(e2, t4);\n }\n function cr(t4, e2, r2, n2) {\n const i2 = Math.pow(2, n2.z) * Xe, s2 = [n2.x * Xe, n2.y * Xe], a2 = [];\n for (const n3 of t4) for (const t5 of n3) {\n const n4 = [t5.x + s2[0], t5.y + s2[1]];\n ur(n4, e2, r2, i2), a2.push(n4);\n }\n return a2;\n }\n function hr(t4, e2, r2, n2) {\n const i2 = Math.pow(2, n2.z) * Xe, s2 = [n2.x * Xe, n2.y * Xe], a2 = [];\n for (const r3 of t4) {\n const t5 = [];\n for (const n3 of r3) {\n const r4 = [n3.x + s2[0], n3.y + s2[1]];\n Je(e2, r4), t5.push(r4);\n }\n a2.push(t5);\n }\n if (e2[2] - e2[0] <= i2 / 2) {\n (o2 = e2)[0] = o2[1] = 1 / 0, o2[2] = o2[3] = -1 / 0;\n for (const t5 of a2) for (const n3 of t5) ur(n3, e2, r2, i2);\n }\n var o2;\n return a2;\n }\n class pr {\n constructor(t4, e2) {\n this.type = ht, this.geojson = t4, this.geometries = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(`'within' expression requires exactly one argument, but found ${t4.length - 1} instead.`);\n if (re(t4[1])) {\n const e3 = t4[1];\n if (\"FeatureCollection\" === e3.type) {\n const t5 = [];\n for (const r2 of e3.features) {\n const { type: e4, coordinates: n2 } = r2.geometry;\n \"Polygon\" === e4 && t5.push(n2), \"MultiPolygon\" === e4 && t5.push(...n2);\n }\n if (t5.length) return new pr(e3, { type: \"MultiPolygon\", coordinates: t5 });\n } else if (\"Feature\" === e3.type) {\n const t5 = e3.geometry.type;\n if (\"Polygon\" === t5 || \"MultiPolygon\" === t5) return new pr(e3, e3.geometry);\n } else if (\"Polygon\" === e3.type || \"MultiPolygon\" === e3.type) return new pr(e3, e3);\n }\n return e2.error(\"'within' expression requires valid geojson object that contains polygon geometry type.\");\n }\n evaluate(t4) {\n if (null != t4.geometry() && null != t4.canonicalID()) {\n if (\"Point\" === t4.geometryType()) return function(t5, e2) {\n const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t5.canonicalID();\n if (\"Polygon\" === e2.type) {\n const s2 = or(e2.coordinates, n2, i2), a2 = cr(t5.geometry(), r2, n2, i2);\n if (!We(r2, n2)) return false;\n for (const t6 of a2) if (!rr(t6, s2)) return false;\n }\n if (\"MultiPolygon\" === e2.type) {\n const s2 = lr(e2.coordinates, n2, i2), a2 = cr(t5.geometry(), r2, n2, i2);\n if (!We(r2, n2)) return false;\n for (const t6 of a2) if (!nr(t6, s2)) return false;\n }\n return true;\n }(t4, this.geometries);\n if (\"LineString\" === t4.geometryType()) return function(t5, e2) {\n const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t5.canonicalID();\n if (\"Polygon\" === e2.type) {\n const s2 = or(e2.coordinates, n2, i2), a2 = hr(t5.geometry(), r2, n2, i2);\n if (!We(r2, n2)) return false;\n for (const t6 of a2) if (!ir(t6, s2)) return false;\n }\n if (\"MultiPolygon\" === e2.type) {\n const s2 = lr(e2.coordinates, n2, i2), a2 = hr(t5.geometry(), r2, n2, i2);\n if (!We(r2, n2)) return false;\n for (const t6 of a2) if (!sr(t6, s2)) return false;\n }\n return true;\n }(t4, this.geometries);\n }\n return false;\n }\n eachChild() {\n }\n outputDefined() {\n return true;\n }\n }\n let fr = class {\n constructor(t4 = [], e2 = (t5, e3) => t5 < e3 ? -1 : t5 > e3 ? 1 : 0) {\n if (this.data = t4, this.length = this.data.length, this.compare = e2, this.length > 0) for (let t5 = (this.length >> 1) - 1; t5 >= 0; t5--) this._down(t5);\n }\n push(t4) {\n this.data.push(t4), this._up(this.length++);\n }\n pop() {\n if (0 === this.length) return;\n const t4 = this.data[0], e2 = this.data.pop();\n return --this.length > 0 && (this.data[0] = e2, this._down(0)), t4;\n }\n peek() {\n return this.data[0];\n }\n _up(t4) {\n const { data: e2, compare: r2 } = this, n2 = e2[t4];\n for (; t4 > 0; ) {\n const i2 = t4 - 1 >> 1, s2 = e2[i2];\n if (r2(n2, s2) >= 0) break;\n e2[t4] = s2, t4 = i2;\n }\n e2[t4] = n2;\n }\n _down(t4) {\n const { data: e2, compare: r2 } = this, n2 = this.length >> 1, i2 = e2[t4];\n for (; t4 < n2; ) {\n let n3 = 1 + (t4 << 1);\n const s2 = n3 + 1;\n if (s2 < this.length && r2(e2[s2], e2[n3]) < 0 && (n3 = s2), r2(e2[n3], i2) >= 0) break;\n e2[t4] = e2[n3], t4 = n3;\n }\n e2[t4] = i2;\n }\n };\n function dr(t4, e2, r2, n2, i2) {\n yr(t4, e2, r2, n2 || t4.length - 1, i2 || gr);\n }\n function yr(t4, e2, r2, n2, i2) {\n for (; n2 > r2; ) {\n if (n2 - r2 > 600) {\n var s2 = n2 - r2 + 1, a2 = e2 - r2 + 1, o2 = Math.log(s2), l2 = 0.5 * Math.exp(2 * o2 / 3), u2 = 0.5 * Math.sqrt(o2 * l2 * (s2 - l2) / s2) * (a2 - s2 / 2 < 0 ? -1 : 1);\n yr(t4, e2, Math.max(r2, Math.floor(e2 - a2 * l2 / s2 + u2)), Math.min(n2, Math.floor(e2 + (s2 - a2) * l2 / s2 + u2)), i2);\n }\n var c2 = t4[e2], h2 = r2, p2 = n2;\n for (mr(t4, r2, e2), i2(t4[n2], c2) > 0 && mr(t4, r2, n2); h2 < p2; ) {\n for (mr(t4, h2, p2), h2++, p2--; i2(t4[h2], c2) < 0; ) h2++;\n for (; i2(t4[p2], c2) > 0; ) p2--;\n }\n 0 === i2(t4[r2], c2) ? mr(t4, r2, p2) : mr(t4, ++p2, n2), p2 <= e2 && (r2 = p2 + 1), e2 <= p2 && (n2 = p2 - 1);\n }\n }\n function mr(t4, e2, r2) {\n var n2 = t4[e2];\n t4[e2] = t4[r2], t4[r2] = n2;\n }\n function gr(t4, e2) {\n return t4 < e2 ? -1 : t4 > e2 ? 1 : 0;\n }\n function xr(t4, e2) {\n if (t4.length <= 1) return [t4];\n const r2 = [];\n let n2, i2;\n for (const e3 of t4) {\n const t5 = br(e3);\n 0 !== t5 && (e3.area = Math.abs(t5), void 0 === i2 && (i2 = t5 < 0), i2 === t5 < 0 ? (n2 && r2.push(n2), n2 = [e3]) : n2.push(e3));\n }\n if (n2 && r2.push(n2), e2 > 1) for (let t5 = 0; t5 < r2.length; t5++) r2[t5].length <= e2 || (dr(r2[t5], e2, 1, r2[t5].length - 1, vr), r2[t5] = r2[t5].slice(0, e2));\n return r2;\n }\n function vr(t4, e2) {\n return e2.area - t4.area;\n }\n function br(t4) {\n let e2 = 0;\n for (let r2, n2, i2 = 0, s2 = t4.length, a2 = s2 - 1; i2 < s2; a2 = i2++) r2 = t4[i2], n2 = t4[a2], e2 += (n2.x - r2.x) * (r2.y + n2.y);\n return e2;\n }\n const wr = 1 / 298.257223563, _r = wr * (2 - wr), Ar = Math.PI / 180;\n class Sr {\n constructor(t4) {\n const e2 = 6378.137 * Ar * 1e3, r2 = Math.cos(t4 * Ar), n2 = 1 / (1 - _r * (1 - r2 * r2)), i2 = Math.sqrt(n2);\n this.kx = e2 * i2 * r2, this.ky = e2 * i2 * n2 * (1 - _r);\n }\n distance(t4, e2) {\n const r2 = this.wrap(t4[0] - e2[0]) * this.kx, n2 = (t4[1] - e2[1]) * this.ky;\n return Math.sqrt(r2 * r2 + n2 * n2);\n }\n pointOnLine(t4, e2) {\n let r2, n2, i2, s2, a2 = 1 / 0;\n for (let o2 = 0; o2 < t4.length - 1; o2++) {\n let l2 = t4[o2][0], u2 = t4[o2][1], c2 = this.wrap(t4[o2 + 1][0] - l2) * this.kx, h2 = (t4[o2 + 1][1] - u2) * this.ky, p2 = 0;\n 0 === c2 && 0 === h2 || (p2 = (this.wrap(e2[0] - l2) * this.kx * c2 + (e2[1] - u2) * this.ky * h2) / (c2 * c2 + h2 * h2), p2 > 1 ? (l2 = t4[o2 + 1][0], u2 = t4[o2 + 1][1]) : p2 > 0 && (l2 += c2 / this.kx * p2, u2 += h2 / this.ky * p2)), c2 = this.wrap(e2[0] - l2) * this.kx, h2 = (e2[1] - u2) * this.ky;\n const f2 = c2 * c2 + h2 * h2;\n f2 < a2 && (a2 = f2, r2 = l2, n2 = u2, i2 = o2, s2 = p2);\n }\n return { point: [r2, n2], index: i2, t: Math.max(0, Math.min(1, s2)) };\n }\n wrap(t4) {\n for (; t4 < -180; ) t4 += 360;\n for (; t4 > 180; ) t4 -= 360;\n return t4;\n }\n }\n function kr(t4, e2) {\n return e2[0] - t4[0];\n }\n function Mr(t4) {\n return t4[1] - t4[0] + 1;\n }\n function Ir(t4, e2) {\n return t4[1] >= t4[0] && t4[1] < e2;\n }\n function zr(t4, e2) {\n if (t4[0] > t4[1]) return [null, null];\n const r2 = Mr(t4);\n if (e2) {\n if (2 === r2) return [t4, null];\n const e3 = Math.floor(r2 / 2);\n return [[t4[0], t4[0] + e3], [t4[0] + e3, t4[1]]];\n }\n if (1 === r2) return [t4, null];\n const n2 = Math.floor(r2 / 2) - 1;\n return [[t4[0], t4[0] + n2], [t4[0] + n2 + 1, t4[1]]];\n }\n function Pr(t4, e2) {\n if (!Ir(e2, t4.length)) return [1 / 0, 1 / 0, -1 / 0, -1 / 0];\n const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0];\n for (let n2 = e2[0]; n2 <= e2[1]; ++n2) Je(r2, t4[n2]);\n return r2;\n }\n function Cr(t4) {\n const e2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0];\n for (const r2 of t4) for (const t5 of r2) Je(e2, t5);\n return e2;\n }\n function Br(t4) {\n return t4[0] !== -1 / 0 && t4[1] !== -1 / 0 && t4[2] !== 1 / 0 && t4[3] !== 1 / 0;\n }\n function Vr(t4, e2, r2) {\n if (!Br(t4) || !Br(e2)) return NaN;\n let n2 = 0, i2 = 0;\n return t4[2] < e2[0] && (n2 = e2[0] - t4[2]), t4[0] > e2[2] && (n2 = t4[0] - e2[2]), t4[1] > e2[3] && (i2 = t4[1] - e2[3]), t4[3] < e2[1] && (i2 = e2[1] - t4[3]), r2.distance([0, 0], [n2, i2]);\n }\n function Er(t4, e2, r2) {\n const n2 = r2.pointOnLine(e2, t4);\n return r2.distance(t4, n2.point);\n }\n function Fr(t4, e2, r2, n2, i2) {\n const s2 = Math.min(Er(t4, [r2, n2], i2), Er(e2, [r2, n2], i2)), a2 = Math.min(Er(r2, [t4, e2], i2), Er(n2, [t4, e2], i2));\n return Math.min(s2, a2);\n }\n function Tr(t4, e2, r2, n2, i2) {\n if (!Ir(e2, t4.length) || !Ir(n2, r2.length)) return 1 / 0;\n let s2 = 1 / 0;\n for (let a2 = e2[0]; a2 < e2[1]; ++a2) {\n const e3 = t4[a2], o2 = t4[a2 + 1];\n for (let t5 = n2[0]; t5 < n2[1]; ++t5) {\n const n3 = r2[t5], a3 = r2[t5 + 1];\n if (tr(e3, o2, n3, a3)) return 0;\n s2 = Math.min(s2, Fr(e3, o2, n3, a3, i2));\n }\n }\n return s2;\n }\n function $r(t4, e2, r2, n2, i2) {\n if (!Ir(e2, t4.length) || !Ir(n2, r2.length)) return NaN;\n let s2 = 1 / 0;\n for (let a2 = e2[0]; a2 <= e2[1]; ++a2) for (let e3 = n2[0]; e3 <= n2[1]; ++e3) if (s2 = Math.min(s2, i2.distance(t4[a2], r2[e3])), 0 === s2) return s2;\n return s2;\n }\n function Lr(t4, e2, r2) {\n if (rr(t4, e2, true)) return 0;\n let n2 = 1 / 0;\n for (const i2 of e2) {\n const e3 = i2[0], s2 = i2[i2.length - 1];\n if (e3 !== s2 && (n2 = Math.min(n2, Er(t4, [s2, e3], r2)), 0 === n2)) return n2;\n const a2 = r2.pointOnLine(i2, t4);\n if (n2 = Math.min(n2, r2.distance(t4, a2.point)), 0 === n2) return n2;\n }\n return n2;\n }\n function Dr(t4, e2, r2, n2) {\n if (!Ir(e2, t4.length)) return NaN;\n for (let n3 = e2[0]; n3 <= e2[1]; ++n3) if (rr(t4[n3], r2, true)) return 0;\n let i2 = 1 / 0;\n for (let s2 = e2[0]; s2 < e2[1]; ++s2) {\n const e3 = t4[s2], a2 = t4[s2 + 1];\n for (const t5 of r2) for (let r3 = 0, s3 = t5.length, o2 = s3 - 1; r3 < s3; o2 = r3++) {\n const s4 = t5[o2], l2 = t5[r3];\n if (tr(e3, a2, s4, l2)) return 0;\n i2 = Math.min(i2, Fr(e3, a2, s4, l2, n2));\n }\n }\n return i2;\n }\n function Or(t4, e2) {\n for (const r2 of t4) for (const t5 of r2) if (rr(t5, e2, true)) return true;\n return false;\n }\n function jr(t4, e2, r2, n2 = 1 / 0) {\n const i2 = Cr(t4), s2 = Cr(e2);\n if (n2 !== 1 / 0 && Vr(i2, s2, r2) >= n2) return n2;\n if (We(i2, s2)) {\n if (Or(t4, e2)) return 0;\n } else if (Or(e2, t4)) return 0;\n let a2 = 1 / 0;\n for (const n3 of t4) for (let t5 = 0, i3 = n3.length, s3 = i3 - 1; t5 < i3; s3 = t5++) {\n const i4 = n3[s3], o2 = n3[t5];\n for (const t6 of e2) for (let e3 = 0, n4 = t6.length, s4 = n4 - 1; e3 < n4; s4 = e3++) {\n const n5 = t6[s4], l2 = t6[e3];\n if (tr(i4, o2, n5, l2)) return 0;\n a2 = Math.min(a2, Fr(i4, o2, n5, l2, r2));\n }\n }\n return a2;\n }\n function Rr(t4, e2, r2, n2, i2, s2) {\n if (!s2) return;\n const a2 = Vr(Pr(n2, s2), i2, r2);\n a2 < e2 && t4.push([a2, s2, [0, 0]]);\n }\n function Ur(t4, e2, r2, n2, i2, s2, a2) {\n if (!s2 || !a2) return;\n const o2 = Vr(Pr(n2, s2), Pr(i2, a2), r2);\n o2 < e2 && t4.push([o2, s2, a2]);\n }\n function qr(t4, e2, r2, n2, i2 = 1 / 0) {\n let s2 = Math.min(n2.distance(t4[0], r2[0][0]), i2);\n if (0 === s2) return s2;\n const a2 = new fr([[0, [0, t4.length - 1], [0, 0]]], kr), o2 = Cr(r2);\n for (; a2.length > 0; ) {\n const i3 = a2.pop();\n if (i3[0] >= s2) continue;\n const l2 = i3[1], u2 = e2 ? 50 : 100;\n if (Mr(l2) <= u2) {\n if (!Ir(l2, t4.length)) return NaN;\n if (e2) {\n const e3 = Dr(t4, l2, r2, n2);\n if (isNaN(e3) || 0 === e3) return e3;\n s2 = Math.min(s2, e3);\n } else for (let e3 = l2[0]; e3 <= l2[1]; ++e3) {\n const i4 = Lr(t4[e3], r2, n2);\n if (s2 = Math.min(s2, i4), 0 === s2) return 0;\n }\n } else {\n const r3 = zr(l2, e2);\n Rr(a2, s2, n2, t4, o2, r3[0]), Rr(a2, s2, n2, t4, o2, r3[1]);\n }\n }\n return s2;\n }\n function Nr(t4, e2, r2, n2, i2, s2 = 1 / 0) {\n let a2 = Math.min(s2, i2.distance(t4[0], r2[0]));\n if (0 === a2) return a2;\n const o2 = new fr([[0, [0, t4.length - 1], [0, r2.length - 1]]], kr);\n for (; o2.length > 0; ) {\n const s3 = o2.pop();\n if (s3[0] >= a2) continue;\n const l2 = s3[1], u2 = s3[2], c2 = e2 ? 50 : 100, h2 = n2 ? 50 : 100;\n if (Mr(l2) <= c2 && Mr(u2) <= h2) {\n if (!Ir(l2, t4.length) && Ir(u2, r2.length)) return NaN;\n let s4;\n if (e2 && n2) s4 = Tr(t4, l2, r2, u2, i2), a2 = Math.min(a2, s4);\n else if (e2 && !n2) {\n const e3 = t4.slice(l2[0], l2[1] + 1);\n for (let t5 = u2[0]; t5 <= u2[1]; ++t5) if (s4 = Er(r2[t5], e3, i2), a2 = Math.min(a2, s4), 0 === a2) return a2;\n } else if (!e2 && n2) {\n const e3 = r2.slice(u2[0], u2[1] + 1);\n for (let r3 = l2[0]; r3 <= l2[1]; ++r3) if (s4 = Er(t4[r3], e3, i2), a2 = Math.min(a2, s4), 0 === a2) return a2;\n } else s4 = $r(t4, l2, r2, u2, i2), a2 = Math.min(a2, s4);\n } else {\n const s4 = zr(l2, e2), c3 = zr(u2, n2);\n Ur(o2, a2, i2, t4, r2, s4[0], c3[0]), Ur(o2, a2, i2, t4, r2, s4[0], c3[1]), Ur(o2, a2, i2, t4, r2, s4[1], c3[0]), Ur(o2, a2, i2, t4, r2, s4[1], c3[1]);\n }\n }\n return a2;\n }\n function Zr(t4) {\n return \"MultiPolygon\" === t4.type ? t4.coordinates.map((t5) => ({ type: \"Polygon\", coordinates: t5 })) : \"MultiLineString\" === t4.type ? t4.coordinates.map((t5) => ({ type: \"LineString\", coordinates: t5 })) : \"MultiPoint\" === t4.type ? t4.coordinates.map((t5) => ({ type: \"Point\", coordinates: t5 })) : [t4];\n }\n class Gr {\n constructor(t4, e2) {\n this.type = ut, this.geojson = t4, this.geometries = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(`'distance' expression requires exactly one argument, but found ${t4.length - 1} instead.`);\n if (re(t4[1])) {\n const e3 = t4[1];\n if (\"FeatureCollection\" === e3.type) return new Gr(e3, e3.features.map((t5) => Zr(t5.geometry)).flat());\n if (\"Feature\" === e3.type) return new Gr(e3, Zr(e3.geometry));\n if (\"type\" in e3 && \"coordinates\" in e3) return new Gr(e3, Zr(e3));\n }\n return e2.error(\"'distance' expression requires valid geojson object that contains polygon geometry type.\");\n }\n evaluate(t4) {\n if (null != t4.geometry() && null != t4.canonicalID()) {\n if (\"Point\" === t4.geometryType()) return function(t5, e2) {\n const r2 = t5.geometry(), n2 = r2.flat().map((e3) => Ye([e3.x, e3.y], t5.canonical));\n if (0 === r2.length) return NaN;\n const i2 = new Sr(n2[0][1]);\n let s2 = 1 / 0;\n for (const t6 of e2) {\n switch (t6.type) {\n case \"Point\":\n s2 = Math.min(s2, Nr(n2, false, [t6.coordinates], false, i2, s2));\n break;\n case \"LineString\":\n s2 = Math.min(s2, Nr(n2, false, t6.coordinates, true, i2, s2));\n break;\n case \"Polygon\":\n s2 = Math.min(s2, qr(n2, false, t6.coordinates, i2, s2));\n }\n if (0 === s2) return s2;\n }\n return s2;\n }(t4, this.geometries);\n if (\"LineString\" === t4.geometryType()) return function(t5, e2) {\n const r2 = t5.geometry(), n2 = r2.flat().map((e3) => Ye([e3.x, e3.y], t5.canonical));\n if (0 === r2.length) return NaN;\n const i2 = new Sr(n2[0][1]);\n let s2 = 1 / 0;\n for (const t6 of e2) {\n switch (t6.type) {\n case \"Point\":\n s2 = Math.min(s2, Nr(n2, true, [t6.coordinates], false, i2, s2));\n break;\n case \"LineString\":\n s2 = Math.min(s2, Nr(n2, true, t6.coordinates, true, i2, s2));\n break;\n case \"Polygon\":\n s2 = Math.min(s2, qr(n2, true, t6.coordinates, i2, s2));\n }\n if (0 === s2) return s2;\n }\n return s2;\n }(t4, this.geometries);\n if (\"Polygon\" === t4.geometryType()) return function(t5, e2) {\n const r2 = t5.geometry();\n if (0 === r2.length || 0 === r2[0].length) return NaN;\n const n2 = xr(r2, 0).map((e3) => e3.map((e4) => e4.map((e5) => Ye([e5.x, e5.y], t5.canonical)))), i2 = new Sr(n2[0][0][0][1]);\n let s2 = 1 / 0;\n for (const t6 of e2) for (const e3 of n2) {\n switch (t6.type) {\n case \"Point\":\n s2 = Math.min(s2, qr([t6.coordinates], false, e3, i2, s2));\n break;\n case \"LineString\":\n s2 = Math.min(s2, qr(t6.coordinates, true, e3, i2, s2));\n break;\n case \"Polygon\":\n s2 = Math.min(s2, jr(e3, t6.coordinates, i2, s2));\n }\n if (0 === s2) return s2;\n }\n return s2;\n }(t4, this.geometries);\n }\n return NaN;\n }\n eachChild() {\n }\n outputDefined() {\n return true;\n }\n }\n const Kr = { \"==\": Le, \"!=\": De, \">\": je, \"<\": Oe, \">=\": Ue, \"<=\": Re, array: le, at: me, boolean: le, case: be, coalesce: Ee, collator: qe, format: Ze, image: Ge, in: ge, \"index-of\": xe, interpolate: Be, \"interpolate-hcl\": Be, \"interpolate-lab\": Be, length: Ke, let: de, literal: se, match: ve, number: le, \"number-format\": Ne, object: le, slice: we, step: Ae, string: le, \"to-boolean\": ce, \"to-color\": ce, \"to-number\": ce, \"to-string\": ce, var: ye, within: pr, distance: Gr };\n class Xr {\n constructor(t4, e2, r2, n2) {\n this.name = t4, this.type = e2, this._evaluate = r2, this.args = n2;\n }\n evaluate(t4) {\n return this._evaluate(t4, this.args);\n }\n eachChild(t4) {\n this.args.forEach(t4);\n }\n outputDefined() {\n return false;\n }\n static parse(t4, e2) {\n const r2 = t4[0], n2 = Xr.definitions[r2];\n if (!n2) return e2.error(`Unknown expression \"${r2}\". If you wanted a literal array, use [\"literal\", [...]].`, 0);\n const i2 = Array.isArray(n2) ? n2[0] : n2.type, s2 = Array.isArray(n2) ? [[n2[1], n2[2]]] : n2.overloads, a2 = s2.filter(([e3]) => !Array.isArray(e3) || e3.length === t4.length - 1);\n let o2 = null;\n for (const [n3, s3] of a2) {\n o2 = new fe(e2.registry, Qr, e2.path, null, e2.scope);\n const a3 = [];\n let l2 = false;\n for (let e3 = 1; e3 < t4.length; e3++) {\n const r3 = t4[e3], i3 = Array.isArray(n3) ? n3[e3 - 1] : n3.type, s4 = o2.parse(r3, 1 + a3.length, i3);\n if (!s4) {\n l2 = true;\n break;\n }\n a3.push(s4);\n }\n if (!l2) if (Array.isArray(n3) && n3.length !== a3.length) o2.error(`Expected ${n3.length} arguments, but found ${a3.length} instead.`);\n else {\n for (let t5 = 0; t5 < a3.length; t5++) {\n const e3 = Array.isArray(n3) ? n3[t5] : n3.type, r3 = a3[t5];\n o2.concat(t5 + 1).checkSubtype(e3, r3.type);\n }\n if (0 === o2.errors.length) return new Xr(r2, i2, s3, a3);\n }\n }\n if (1 === a2.length) e2.errors.push(...o2.errors);\n else {\n const r3 = (a2.length ? a2 : s2).map(([t5]) => {\n return e3 = t5, Array.isArray(e3) ? `(${e3.map(wt).join(\", \")})` : `(${wt(e3.type)}...)`;\n var e3;\n }).join(\" | \"), n3 = [];\n for (let r4 = 1; r4 < t4.length; r4++) {\n const i3 = e2.parse(t4[r4], 1 + n3.length);\n if (!i3) return null;\n n3.push(wt(i3.type));\n }\n e2.error(`Expected arguments of type ${r3}, but found (${n3.join(\", \")}) instead.`);\n }\n return null;\n }\n static register(t4, e2) {\n Xr.definitions = e2;\n for (const r2 in e2) t4[r2] = Xr;\n }\n }\n function Hr(t4, [e2, r2, n2, i2]) {\n e2 = e2.evaluate(t4), r2 = r2.evaluate(t4), n2 = n2.evaluate(t4);\n const s2 = i2 ? i2.evaluate(t4) : 1, a2 = ee(e2, r2, n2, s2);\n if (a2) throw new ae(a2);\n return new Kt(e2 / 255, r2 / 255, n2 / 255, s2, false);\n }\n function Yr(t4, e2) {\n return t4 in e2;\n }\n function Jr(t4, e2) {\n const r2 = e2[t4];\n return void 0 === r2 ? null : r2;\n }\n function Wr(t4) {\n return { type: t4 };\n }\n function Qr(t4) {\n if (t4 instanceof ye) return Qr(t4.boundExpression);\n if (t4 instanceof Xr && \"error\" === t4.name) return false;\n if (t4 instanceof qe) return false;\n if (t4 instanceof pr) return false;\n if (t4 instanceof Gr) return false;\n const e2 = t4 instanceof ce || t4 instanceof le;\n let r2 = true;\n return t4.eachChild((t5) => {\n r2 = e2 ? r2 && Qr(t5) : r2 && t5 instanceof se;\n }), !!r2 && tn(t4) && rn(t4, [\"zoom\", \"heatmap-density\", \"line-progress\", \"accumulated\", \"is-supported-script\"]);\n }\n function tn(t4) {\n if (t4 instanceof Xr) {\n if (\"get\" === t4.name && 1 === t4.args.length) return false;\n if (\"feature-state\" === t4.name) return false;\n if (\"has\" === t4.name && 1 === t4.args.length) return false;\n if (\"properties\" === t4.name || \"geometry-type\" === t4.name || \"id\" === t4.name) return false;\n if (/^filter-/.test(t4.name)) return false;\n }\n if (t4 instanceof pr) return false;\n if (t4 instanceof Gr) return false;\n let e2 = true;\n return t4.eachChild((t5) => {\n e2 && !tn(t5) && (e2 = false);\n }), e2;\n }\n function en(t4) {\n if (t4 instanceof Xr && \"feature-state\" === t4.name) return false;\n let e2 = true;\n return t4.eachChild((t5) => {\n e2 && !en(t5) && (e2 = false);\n }), e2;\n }\n function rn(t4, e2) {\n if (t4 instanceof Xr && e2.indexOf(t4.name) >= 0) return false;\n let r2 = true;\n return t4.eachChild((t5) => {\n r2 && !rn(t5, e2) && (r2 = false);\n }), r2;\n }\n function nn(t4) {\n return { result: \"success\", value: t4 };\n }\n function sn(t4) {\n return { result: \"error\", value: t4 };\n }\n function an(t4) {\n return \"data-driven\" === t4[\"property-type\"] || \"cross-faded-data-driven\" === t4[\"property-type\"];\n }\n function on(t4) {\n return !!t4.expression && t4.expression.parameters.indexOf(\"zoom\") > -1;\n }\n function ln(t4) {\n return !!t4.expression && t4.expression.interpolated;\n }\n function un(t4) {\n return t4 instanceof Number ? \"number\" : t4 instanceof String ? \"string\" : t4 instanceof Boolean ? \"boolean\" : Array.isArray(t4) ? \"array\" : null === t4 ? \"null\" : typeof t4;\n }\n function cn(t4) {\n return \"object\" == typeof t4 && null !== t4 && !Array.isArray(t4);\n }\n function hn(t4) {\n return t4;\n }\n function pn(t4, e2) {\n const r2 = \"color\" === e2.type, n2 = t4.stops && \"object\" == typeof t4.stops[0][0], i2 = n2 || !(n2 || void 0 !== t4.property), s2 = t4.type || (ln(e2) ? \"exponential\" : \"interval\");\n if (r2 || \"padding\" === e2.type) {\n const n3 = r2 ? Kt.parse : Jt.parse;\n (t4 = st({}, t4)).stops && (t4.stops = t4.stops.map((t5) => [t5[0], n3(t5[1])])), t4.default = n3(t4.default ? t4.default : e2.default);\n }\n if (t4.colorSpace && \"rgb\" !== (a2 = t4.colorSpace) && \"hcl\" !== a2 && \"lab\" !== a2) throw new Error(`Unknown color space: \"${t4.colorSpace}\"`);\n var a2;\n let o2, l2, u2;\n if (\"exponential\" === s2) o2 = mn;\n else if (\"interval\" === s2) o2 = yn;\n else if (\"categorical\" === s2) {\n o2 = dn, l2 = /* @__PURE__ */ Object.create(null);\n for (const e3 of t4.stops) l2[e3[0]] = e3[1];\n u2 = typeof t4.stops[0][0];\n } else {\n if (\"identity\" !== s2) throw new Error(`Unknown function type \"${s2}\"`);\n o2 = gn;\n }\n if (n2) {\n const r3 = {}, n3 = [];\n for (let e3 = 0; e3 < t4.stops.length; e3++) {\n const i4 = t4.stops[e3], s4 = i4[0].zoom;\n void 0 === r3[s4] && (r3[s4] = { zoom: s4, type: t4.type, property: t4.property, default: t4.default, stops: [] }, n3.push(s4)), r3[s4].stops.push([i4[0].value, i4[1]]);\n }\n const i3 = [];\n for (const t5 of n3) i3.push([r3[t5].zoom, pn(r3[t5], e2)]);\n const s3 = { name: \"linear\" };\n return { kind: \"composite\", interpolationType: s3, interpolationFactor: Be.interpolationFactor.bind(void 0, s3), zoomStops: i3.map((t5) => t5[0]), evaluate: ({ zoom: r4 }, n4) => mn({ stops: i3, base: t4.base }, e2, r4).evaluate(r4, n4) };\n }\n if (i2) {\n const r3 = \"exponential\" === s2 ? { name: \"exponential\", base: void 0 !== t4.base ? t4.base : 1 } : null;\n return { kind: \"camera\", interpolationType: r3, interpolationFactor: Be.interpolationFactor.bind(void 0, r3), zoomStops: t4.stops.map((t5) => t5[0]), evaluate: ({ zoom: r4 }) => o2(t4, e2, r4, l2, u2) };\n }\n return { kind: \"source\", evaluate(r3, n3) {\n const i3 = n3 && n3.properties ? n3.properties[t4.property] : void 0;\n return void 0 === i3 ? fn(t4.default, e2.default) : o2(t4, e2, i3, l2, u2);\n } };\n }\n function fn(t4, e2, r2) {\n return void 0 !== t4 ? t4 : void 0 !== e2 ? e2 : void 0 !== r2 ? r2 : void 0;\n }\n function dn(t4, e2, r2, n2, i2) {\n return fn(typeof r2 === i2 ? n2[r2] : void 0, t4.default, e2.default);\n }\n function yn(t4, e2, r2) {\n if (\"number\" !== un(r2)) return fn(t4.default, e2.default);\n const n2 = t4.stops.length;\n if (1 === n2) return t4.stops[0][1];\n if (r2 <= t4.stops[0][0]) return t4.stops[0][1];\n if (r2 >= t4.stops[n2 - 1][0]) return t4.stops[n2 - 1][1];\n const i2 = _e(t4.stops.map((t5) => t5[0]), r2);\n return t4.stops[i2][1];\n }\n function mn(t4, e2, r2) {\n const n2 = void 0 !== t4.base ? t4.base : 1;\n if (\"number\" !== un(r2)) return fn(t4.default, e2.default);\n const i2 = t4.stops.length;\n if (1 === i2) return t4.stops[0][1];\n if (r2 <= t4.stops[0][0]) return t4.stops[0][1];\n if (r2 >= t4.stops[i2 - 1][0]) return t4.stops[i2 - 1][1];\n const s2 = _e(t4.stops.map((t5) => t5[0]), r2), a2 = function(t5, e3, r3, n3) {\n const i3 = n3 - r3, s3 = t5 - r3;\n return 0 === i3 ? 0 : 1 === e3 ? s3 / i3 : (Math.pow(e3, s3) - 1) / (Math.pow(e3, i3) - 1);\n }(r2, n2, t4.stops[s2][0], t4.stops[s2 + 1][0]), o2 = t4.stops[s2][1], l2 = t4.stops[s2 + 1][1], u2 = Ce[e2.type] || hn;\n return \"function\" == typeof o2.evaluate ? { evaluate(...e3) {\n const r3 = o2.evaluate.apply(void 0, e3), n3 = l2.evaluate.apply(void 0, e3);\n if (void 0 !== r3 && void 0 !== n3) return u2(r3, n3, a2, t4.colorSpace);\n } } : u2(o2, l2, a2, t4.colorSpace);\n }\n function gn(t4, e2, r2) {\n switch (e2.type) {\n case \"color\":\n r2 = Kt.parse(r2);\n break;\n case \"formatted\":\n r2 = Yt.fromString(r2.toString());\n break;\n case \"resolvedImage\":\n r2 = te.fromString(r2.toString());\n break;\n case \"padding\":\n r2 = Jt.parse(r2);\n break;\n default:\n un(r2) === e2.type || \"enum\" === e2.type && e2.values[r2] || (r2 = void 0);\n }\n return fn(r2, t4.default, e2.default);\n }\n Xr.register(Kr, { error: [{ kind: \"error\" }, [ct], (t4, [e2]) => {\n throw new ae(e2.evaluate(t4));\n }], typeof: [ct, [dt], (t4, [e2]) => wt(ne(e2.evaluate(t4)))], \"to-rgba\": [bt(ut, 4), [pt], (t4, [e2]) => {\n const [r2, n2, i2, s2] = e2.evaluate(t4).rgb;\n return [255 * r2, 255 * n2, 255 * i2, s2];\n }], rgb: [pt, [ut, ut, ut], Hr], rgba: [pt, [ut, ut, ut, ut], Hr], has: { type: ht, overloads: [[[ct], (t4, [e2]) => Yr(e2.evaluate(t4), t4.properties())], [[ct, ft], (t4, [e2, r2]) => Yr(e2.evaluate(t4), r2.evaluate(t4))]] }, get: { type: dt, overloads: [[[ct], (t4, [e2]) => Jr(e2.evaluate(t4), t4.properties())], [[ct, ft], (t4, [e2, r2]) => Jr(e2.evaluate(t4), r2.evaluate(t4))]] }, \"feature-state\": [dt, [ct], (t4, [e2]) => Jr(e2.evaluate(t4), t4.featureState || {})], properties: [ft, [], (t4) => t4.properties()], \"geometry-type\": [ct, [], (t4) => t4.geometryType()], id: [dt, [], (t4) => t4.id()], zoom: [ut, [], (t4) => t4.globals.zoom], \"heatmap-density\": [ut, [], (t4) => t4.globals.heatmapDensity || 0], \"line-progress\": [ut, [], (t4) => t4.globals.lineProgress || 0], accumulated: [dt, [], (t4) => void 0 === t4.globals.accumulated ? null : t4.globals.accumulated], \"+\": [ut, Wr(ut), (t4, e2) => {\n let r2 = 0;\n for (const n2 of e2) r2 += n2.evaluate(t4);\n return r2;\n }], \"*\": [ut, Wr(ut), (t4, e2) => {\n let r2 = 1;\n for (const n2 of e2) r2 *= n2.evaluate(t4);\n return r2;\n }], \"-\": { type: ut, overloads: [[[ut, ut], (t4, [e2, r2]) => e2.evaluate(t4) - r2.evaluate(t4)], [[ut], (t4, [e2]) => -e2.evaluate(t4)]] }, \"/\": [ut, [ut, ut], (t4, [e2, r2]) => e2.evaluate(t4) / r2.evaluate(t4)], \"%\": [ut, [ut, ut], (t4, [e2, r2]) => e2.evaluate(t4) % r2.evaluate(t4)], ln2: [ut, [], () => Math.LN2], pi: [ut, [], () => Math.PI], e: [ut, [], () => Math.E], \"^\": [ut, [ut, ut], (t4, [e2, r2]) => Math.pow(e2.evaluate(t4), r2.evaluate(t4))], sqrt: [ut, [ut], (t4, [e2]) => Math.sqrt(e2.evaluate(t4))], log10: [ut, [ut], (t4, [e2]) => Math.log(e2.evaluate(t4)) / Math.LN10], ln: [ut, [ut], (t4, [e2]) => Math.log(e2.evaluate(t4))], log2: [ut, [ut], (t4, [e2]) => Math.log(e2.evaluate(t4)) / Math.LN2], sin: [ut, [ut], (t4, [e2]) => Math.sin(e2.evaluate(t4))], cos: [ut, [ut], (t4, [e2]) => Math.cos(e2.evaluate(t4))], tan: [ut, [ut], (t4, [e2]) => Math.tan(e2.evaluate(t4))], asin: [ut, [ut], (t4, [e2]) => Math.asin(e2.evaluate(t4))], acos: [ut, [ut], (t4, [e2]) => Math.acos(e2.evaluate(t4))], atan: [ut, [ut], (t4, [e2]) => Math.atan(e2.evaluate(t4))], min: [ut, Wr(ut), (t4, e2) => Math.min(...e2.map((e3) => e3.evaluate(t4)))], max: [ut, Wr(ut), (t4, e2) => Math.max(...e2.map((e3) => e3.evaluate(t4)))], abs: [ut, [ut], (t4, [e2]) => Math.abs(e2.evaluate(t4))], round: [ut, [ut], (t4, [e2]) => {\n const r2 = e2.evaluate(t4);\n return r2 < 0 ? -Math.round(-r2) : Math.round(r2);\n }], floor: [ut, [ut], (t4, [e2]) => Math.floor(e2.evaluate(t4))], ceil: [ut, [ut], (t4, [e2]) => Math.ceil(e2.evaluate(t4))], \"filter-==\": [ht, [ct, dt], (t4, [e2, r2]) => t4.properties()[e2.value] === r2.value], \"filter-id-==\": [ht, [dt], (t4, [e2]) => t4.id() === e2.value], \"filter-type-==\": [ht, [ct], (t4, [e2]) => t4.geometryType() === e2.value], \"filter-<\": [ht, [ct, dt], (t4, [e2, r2]) => {\n const n2 = t4.properties()[e2.value], i2 = r2.value;\n return typeof n2 == typeof i2 && n2 < i2;\n }], \"filter-id-<\": [ht, [dt], (t4, [e2]) => {\n const r2 = t4.id(), n2 = e2.value;\n return typeof r2 == typeof n2 && r2 < n2;\n }], \"filter->\": [ht, [ct, dt], (t4, [e2, r2]) => {\n const n2 = t4.properties()[e2.value], i2 = r2.value;\n return typeof n2 == typeof i2 && n2 > i2;\n }], \"filter-id->\": [ht, [dt], (t4, [e2]) => {\n const r2 = t4.id(), n2 = e2.value;\n return typeof r2 == typeof n2 && r2 > n2;\n }], \"filter-<=\": [ht, [ct, dt], (t4, [e2, r2]) => {\n const n2 = t4.properties()[e2.value], i2 = r2.value;\n return typeof n2 == typeof i2 && n2 <= i2;\n }], \"filter-id-<=\": [ht, [dt], (t4, [e2]) => {\n const r2 = t4.id(), n2 = e2.value;\n return typeof r2 == typeof n2 && r2 <= n2;\n }], \"filter->=\": [ht, [ct, dt], (t4, [e2, r2]) => {\n const n2 = t4.properties()[e2.value], i2 = r2.value;\n return typeof n2 == typeof i2 && n2 >= i2;\n }], \"filter-id->=\": [ht, [dt], (t4, [e2]) => {\n const r2 = t4.id(), n2 = e2.value;\n return typeof r2 == typeof n2 && r2 >= n2;\n }], \"filter-has\": [ht, [dt], (t4, [e2]) => e2.value in t4.properties()], \"filter-has-id\": [ht, [], (t4) => null !== t4.id() && void 0 !== t4.id()], \"filter-type-in\": [ht, [bt(ct)], (t4, [e2]) => e2.value.indexOf(t4.geometryType()) >= 0], \"filter-id-in\": [ht, [bt(dt)], (t4, [e2]) => e2.value.indexOf(t4.id()) >= 0], \"filter-in-small\": [ht, [ct, bt(dt)], (t4, [e2, r2]) => r2.value.indexOf(t4.properties()[e2.value]) >= 0], \"filter-in-large\": [ht, [ct, bt(dt)], (t4, [e2, r2]) => function(t5, e3, r3, n2) {\n for (; r3 <= n2; ) {\n const i2 = r3 + n2 >> 1;\n if (e3[i2] === t5) return true;\n e3[i2] > t5 ? n2 = i2 - 1 : r3 = i2 + 1;\n }\n return false;\n }(t4.properties()[e2.value], r2.value, 0, r2.value.length - 1)], all: { type: ht, overloads: [[[ht, ht], (t4, [e2, r2]) => e2.evaluate(t4) && r2.evaluate(t4)], [Wr(ht), (t4, e2) => {\n for (const r2 of e2) if (!r2.evaluate(t4)) return false;\n return true;\n }]] }, any: { type: ht, overloads: [[[ht, ht], (t4, [e2, r2]) => e2.evaluate(t4) || r2.evaluate(t4)], [Wr(ht), (t4, e2) => {\n for (const r2 of e2) if (r2.evaluate(t4)) return true;\n return false;\n }]] }, \"!\": [ht, [ht], (t4, [e2]) => !e2.evaluate(t4)], \"is-supported-script\": [ht, [ct], (t4, [e2]) => {\n const r2 = t4.globals && t4.globals.isSupportedScript;\n return !r2 || r2(e2.evaluate(t4));\n }], upcase: [ct, [ct], (t4, [e2]) => e2.evaluate(t4).toUpperCase()], downcase: [ct, [ct], (t4, [e2]) => e2.evaluate(t4).toLowerCase()], concat: [ct, Wr(dt), (t4, e2) => e2.map((e3) => ie(e3.evaluate(t4))).join(\"\")], \"resolved-locale\": [ct, [yt], (t4, [e2]) => e2.evaluate(t4).resolvedLocale()] });\n class xn {\n constructor(t4, e2) {\n var r2;\n this.expression = t4, this._warningHistory = {}, this._evaluator = new pe(), this._defaultValue = e2 ? \"color\" === (r2 = e2).type && cn(r2.default) ? new Kt(0, 0, 0, 0) : \"color\" === r2.type ? Kt.parse(r2.default) || null : \"padding\" === r2.type ? Jt.parse(r2.default) || null : \"variableAnchorOffsetCollection\" === r2.type ? Qt.parse(r2.default) || null : void 0 === r2.default ? null : r2.default : null, this._enumValues = e2 && \"enum\" === e2.type ? e2.values : null;\n }\n evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2) {\n return this._evaluator.globals = t4, this._evaluator.feature = e2, this._evaluator.featureState = r2, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = s2, this.expression.evaluate(this._evaluator);\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n this._evaluator.globals = t4, this._evaluator.feature = e2 || null, this._evaluator.featureState = r2 || null, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = s2 || null;\n try {\n const t5 = this.expression.evaluate(this._evaluator);\n if (null == t5 || \"number\" == typeof t5 && t5 != t5) return this._defaultValue;\n if (this._enumValues && !(t5 in this._enumValues)) throw new ae(`Expected value to be one of ${Object.keys(this._enumValues).map((t6) => JSON.stringify(t6)).join(\", \")}, but found ${JSON.stringify(t5)} instead.`);\n return t5;\n } catch (t5) {\n return this._warningHistory[t5.message] || (this._warningHistory[t5.message] = true, \"undefined\" != typeof console && console.warn(t5.message)), this._defaultValue;\n }\n }\n }\n function vn(t4) {\n return Array.isArray(t4) && t4.length > 0 && \"string\" == typeof t4[0] && t4[0] in Kr;\n }\n function bn(t4, e2) {\n const r2 = new fe(Kr, Qr, [], e2 ? function(t5) {\n const e3 = { color: pt, string: ct, number: ut, enum: ct, boolean: ht, formatted: mt, padding: gt, resolvedImage: xt, variableAnchorOffsetCollection: vt };\n return \"array\" === t5.type ? bt(e3[t5.value] || dt, t5.length) : e3[t5.type];\n }(e2) : void 0), n2 = r2.parse(t4, void 0, void 0, void 0, e2 && \"string\" === e2.type ? { typeAnnotation: \"coerce\" } : void 0);\n return n2 ? nn(new xn(n2, e2)) : sn(r2.errors);\n }\n class wn {\n constructor(t4, e2) {\n this.kind = t4, this._styleExpression = e2, this.isStateDependent = \"constant\" !== t4 && !en(e2.expression);\n }\n evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2) {\n return this._styleExpression.evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2);\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n return this._styleExpression.evaluate(t4, e2, r2, n2, i2, s2);\n }\n }\n class _n {\n constructor(t4, e2, r2, n2) {\n this.kind = t4, this.zoomStops = r2, this._styleExpression = e2, this.isStateDependent = \"camera\" !== t4 && !en(e2.expression), this.interpolationType = n2;\n }\n evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2) {\n return this._styleExpression.evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2);\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n return this._styleExpression.evaluate(t4, e2, r2, n2, i2, s2);\n }\n interpolationFactor(t4, e2, r2) {\n return this.interpolationType ? Be.interpolationFactor(this.interpolationType, t4, e2, r2) : 0;\n }\n }\n function An(t4, e2) {\n const r2 = bn(t4, e2);\n if (\"error\" === r2.result) return r2;\n const n2 = r2.value.expression, i2 = tn(n2);\n if (!i2 && !an(e2)) return sn([new at(\"\", \"data expressions not supported\")]);\n const s2 = rn(n2, [\"zoom\"]);\n if (!s2 && !on(e2)) return sn([new at(\"\", \"zoom expressions not supported\")]);\n const a2 = kn(n2);\n return a2 || s2 ? a2 instanceof at ? sn([a2]) : a2 instanceof Be && !ln(e2) ? sn([new at(\"\", '\"interpolate\" expressions cannot be used with this property')]) : nn(a2 ? new _n(i2 ? \"camera\" : \"composite\", r2.value, a2.labels, a2 instanceof Be ? a2.interpolation : void 0) : new wn(i2 ? \"constant\" : \"source\", r2.value)) : sn([new at(\"\", '\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')]);\n }\n class Sn {\n constructor(t4, e2) {\n this._parameters = t4, this._specification = e2, st(this, pn(this._parameters, this._specification));\n }\n static deserialize(t4) {\n return new Sn(t4._parameters, t4._specification);\n }\n static serialize(t4) {\n return { _parameters: t4._parameters, _specification: t4._specification };\n }\n }\n function kn(t4) {\n let e2 = null;\n if (t4 instanceof de) e2 = kn(t4.result);\n else if (t4 instanceof Ee) {\n for (const r2 of t4.args) if (e2 = kn(r2), e2) break;\n } else (t4 instanceof Ae || t4 instanceof Be) && t4.input instanceof Xr && \"zoom\" === t4.input.name && (e2 = t4);\n return e2 instanceof at || t4.eachChild((t5) => {\n const r2 = kn(t5);\n r2 instanceof at ? e2 = r2 : !e2 && r2 ? e2 = new at(\"\", '\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.') : e2 && r2 && e2 !== r2 && (e2 = new at(\"\", 'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'));\n }), e2;\n }\n function Mn(t4) {\n if (true === t4 || false === t4) return true;\n if (!Array.isArray(t4) || 0 === t4.length) return false;\n switch (t4[0]) {\n case \"has\":\n return t4.length >= 2 && \"$id\" !== t4[1] && \"$type\" !== t4[1];\n case \"in\":\n return t4.length >= 3 && (\"string\" != typeof t4[1] || Array.isArray(t4[2]));\n case \"!in\":\n case \"!has\":\n case \"none\":\n return false;\n case \"==\":\n case \"!=\":\n case \">\":\n case \">=\":\n case \"<\":\n case \"<=\":\n return 3 !== t4.length || Array.isArray(t4[1]) || Array.isArray(t4[2]);\n case \"any\":\n case \"all\":\n for (const e2 of t4.slice(1)) if (!Mn(e2) && \"boolean\" != typeof e2) return false;\n return true;\n default:\n return true;\n }\n }\n const In = { type: \"boolean\", default: false, transition: false, \"property-type\": \"data-driven\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] } };\n function zn(t4) {\n if (null == t4) return { filter: () => true, needGeometry: false };\n Mn(t4) || (t4 = Bn(t4));\n const e2 = bn(t4, In);\n if (\"error\" === e2.result) throw new Error(e2.value.map((t5) => `${t5.key}: ${t5.message}`).join(\", \"));\n return { filter: (t5, r2, n2) => e2.value.evaluate(t5, r2, {}, n2), needGeometry: Cn(t4) };\n }\n function Pn(t4, e2) {\n return t4 < e2 ? -1 : t4 > e2 ? 1 : 0;\n }\n function Cn(t4) {\n if (!Array.isArray(t4)) return false;\n if (\"within\" === t4[0] || \"distance\" === t4[0]) return true;\n for (let e2 = 1; e2 < t4.length; e2++) if (Cn(t4[e2])) return true;\n return false;\n }\n function Bn(t4) {\n if (!t4) return true;\n const e2 = t4[0];\n return t4.length <= 1 ? \"any\" !== e2 : \"==\" === e2 ? Vn(t4[1], t4[2], \"==\") : \"!=\" === e2 ? Tn(Vn(t4[1], t4[2], \"==\")) : \"<\" === e2 || \">\" === e2 || \"<=\" === e2 || \">=\" === e2 ? Vn(t4[1], t4[2], e2) : \"any\" === e2 ? (r2 = t4.slice(1), [\"any\"].concat(r2.map(Bn))) : \"all\" === e2 ? [\"all\"].concat(t4.slice(1).map(Bn)) : \"none\" === e2 ? [\"all\"].concat(t4.slice(1).map(Bn).map(Tn)) : \"in\" === e2 ? En(t4[1], t4.slice(2)) : \"!in\" === e2 ? Tn(En(t4[1], t4.slice(2))) : \"has\" === e2 ? Fn(t4[1]) : \"!has\" !== e2 || Tn(Fn(t4[1]));\n var r2;\n }\n function Vn(t4, e2, r2) {\n switch (t4) {\n case \"$type\":\n return [`filter-type-${r2}`, e2];\n case \"$id\":\n return [`filter-id-${r2}`, e2];\n default:\n return [`filter-${r2}`, t4, e2];\n }\n }\n function En(t4, e2) {\n if (0 === e2.length) return false;\n switch (t4) {\n case \"$type\":\n return [\"filter-type-in\", [\"literal\", e2]];\n case \"$id\":\n return [\"filter-id-in\", [\"literal\", e2]];\n default:\n return e2.length > 200 && !e2.some((t5) => typeof t5 != typeof e2[0]) ? [\"filter-in-large\", t4, [\"literal\", e2.sort(Pn)]] : [\"filter-in-small\", t4, [\"literal\", e2]];\n }\n }\n function Fn(t4) {\n switch (t4) {\n case \"$type\":\n return true;\n case \"$id\":\n return [\"filter-has-id\"];\n default:\n return [\"filter-has\", t4];\n }\n }\n function Tn(t4) {\n return [\"!\", t4];\n }\n function $n(t4) {\n const e2 = typeof t4;\n if (\"number\" === e2 || \"boolean\" === e2 || \"string\" === e2 || null == t4) return JSON.stringify(t4);\n if (Array.isArray(t4)) {\n let e3 = \"[\";\n for (const r3 of t4) e3 += `${$n(r3)},`;\n return `${e3}]`;\n }\n const r2 = Object.keys(t4).sort();\n let n2 = \"{\";\n for (let e3 = 0; e3 < r2.length; e3++) n2 += `${JSON.stringify(r2[e3])}:${$n(t4[r2[e3]])},`;\n return `${n2}}`;\n }\n function Ln(t4) {\n let e2 = \"\";\n for (const r2 of K2) e2 += `/${$n(t4[r2])}`;\n return e2;\n }\n function Dn(t4) {\n const e2 = t4.value;\n return e2 ? [new it(t4.key, e2, \"constants have been deprecated as of v8\")] : [];\n }\n function On(t4) {\n return t4 instanceof Number || t4 instanceof String || t4 instanceof Boolean ? t4.valueOf() : t4;\n }\n function jn(t4) {\n if (Array.isArray(t4)) return t4.map(jn);\n if (t4 instanceof Object && !(t4 instanceof Number || t4 instanceof String || t4 instanceof Boolean)) {\n const e2 = {};\n for (const r2 in t4) e2[r2] = jn(t4[r2]);\n return e2;\n }\n return On(t4);\n }\n function Rn(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = t4.valueSpec || {}, i2 = t4.objectElementValidators || {}, s2 = t4.style, a2 = t4.styleSpec, o2 = t4.validateSpec;\n let l2 = [];\n const u2 = un(r2);\n if (\"object\" !== u2) return [new it(e2, r2, `object expected, ${u2} found`)];\n for (const t5 in r2) {\n const u3 = t5.split(\".\")[0], c2 = n2[u3] || n2[\"*\"];\n let h2;\n if (i2[u3]) h2 = i2[u3];\n else if (n2[u3]) h2 = o2;\n else if (i2[\"*\"]) h2 = i2[\"*\"];\n else {\n if (!n2[\"*\"]) {\n l2.push(new it(e2, r2[t5], `unknown property \"${t5}\"`));\n continue;\n }\n h2 = o2;\n }\n l2 = l2.concat(h2({ key: (e2 ? `${e2}.` : e2) + t5, value: r2[t5], valueSpec: c2, style: s2, styleSpec: a2, object: r2, objectKey: t5, validateSpec: o2 }, r2));\n }\n for (const t5 in n2) i2[t5] || n2[t5].required && void 0 === n2[t5].default && void 0 === r2[t5] && l2.push(new it(e2, r2, `missing required property \"${t5}\"`));\n return l2;\n }\n function Un(t4) {\n const e2 = t4.value, r2 = t4.valueSpec, n2 = t4.style, i2 = t4.styleSpec, s2 = t4.key, a2 = t4.arrayElementValidator || t4.validateSpec;\n if (\"array\" !== un(e2)) return [new it(s2, e2, `array expected, ${un(e2)} found`)];\n if (r2.length && e2.length !== r2.length) return [new it(s2, e2, `array length ${r2.length} expected, length ${e2.length} found`)];\n if (r2[\"min-length\"] && e2.length < r2[\"min-length\"]) return [new it(s2, e2, `array length at least ${r2[\"min-length\"]} expected, length ${e2.length} found`)];\n let o2 = { type: r2.value, values: r2.values };\n i2.$version < 7 && (o2.function = r2.function), \"object\" === un(r2.value) && (o2 = r2.value);\n let l2 = [];\n for (let r3 = 0; r3 < e2.length; r3++) l2 = l2.concat(a2({ array: e2, arrayIndex: r3, value: e2[r3], valueSpec: o2, validateSpec: t4.validateSpec, style: n2, styleSpec: i2, key: `${s2}[${r3}]` }));\n return l2;\n }\n function qn(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = t4.valueSpec;\n let i2 = un(r2);\n return \"number\" === i2 && r2 != r2 && (i2 = \"NaN\"), \"number\" !== i2 ? [new it(e2, r2, `number expected, ${i2} found`)] : \"minimum\" in n2 && r2 < n2.minimum ? [new it(e2, r2, `${r2} is less than the minimum value ${n2.minimum}`)] : \"maximum\" in n2 && r2 > n2.maximum ? [new it(e2, r2, `${r2} is greater than the maximum value ${n2.maximum}`)] : [];\n }\n function Nn(t4) {\n const e2 = t4.valueSpec, r2 = On(t4.value.type);\n let n2, i2, s2, a2 = {};\n const o2 = \"categorical\" !== r2 && void 0 === t4.value.property, l2 = !o2, u2 = \"array\" === un(t4.value.stops) && \"array\" === un(t4.value.stops[0]) && \"object\" === un(t4.value.stops[0][0]), c2 = Rn({ key: t4.key, value: t4.value, valueSpec: t4.styleSpec.function, validateSpec: t4.validateSpec, style: t4.style, styleSpec: t4.styleSpec, objectElementValidators: { stops: function(t5) {\n if (\"identity\" === r2) return [new it(t5.key, t5.value, 'identity function may not have a \"stops\" property')];\n let e3 = [];\n const n3 = t5.value;\n return e3 = e3.concat(Un({ key: t5.key, value: n3, valueSpec: t5.valueSpec, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec, arrayElementValidator: h2 })), \"array\" === un(n3) && 0 === n3.length && e3.push(new it(t5.key, n3, \"array must have at least one stop\")), e3;\n }, default: function(t5) {\n return t5.validateSpec({ key: t5.key, value: t5.value, valueSpec: e2, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec });\n } } });\n return \"identity\" === r2 && o2 && c2.push(new it(t4.key, t4.value, 'missing required property \"property\"')), \"identity\" === r2 || t4.value.stops || c2.push(new it(t4.key, t4.value, 'missing required property \"stops\"')), \"exponential\" === r2 && t4.valueSpec.expression && !ln(t4.valueSpec) && c2.push(new it(t4.key, t4.value, \"exponential functions not supported\")), t4.styleSpec.$version >= 8 && (l2 && !an(t4.valueSpec) ? c2.push(new it(t4.key, t4.value, \"property functions not supported\")) : o2 && !on(t4.valueSpec) && c2.push(new it(t4.key, t4.value, \"zoom functions not supported\"))), \"categorical\" !== r2 && !u2 || void 0 !== t4.value.property || c2.push(new it(t4.key, t4.value, '\"property\" property is required')), c2;\n function h2(t5) {\n let r3 = [];\n const n3 = t5.value, o3 = t5.key;\n if (\"array\" !== un(n3)) return [new it(o3, n3, `array expected, ${un(n3)} found`)];\n if (2 !== n3.length) return [new it(o3, n3, `array length 2 expected, length ${n3.length} found`)];\n if (u2) {\n if (\"object\" !== un(n3[0])) return [new it(o3, n3, `object expected, ${un(n3[0])} found`)];\n if (void 0 === n3[0].zoom) return [new it(o3, n3, \"object stop key must have zoom\")];\n if (void 0 === n3[0].value) return [new it(o3, n3, \"object stop key must have value\")];\n if (s2 && s2 > On(n3[0].zoom)) return [new it(o3, n3[0].zoom, \"stop zoom values must appear in ascending order\")];\n On(n3[0].zoom) !== s2 && (s2 = On(n3[0].zoom), i2 = void 0, a2 = {}), r3 = r3.concat(Rn({ key: `${o3}[0]`, value: n3[0], valueSpec: { zoom: {} }, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec, objectElementValidators: { zoom: qn, value: p2 } }));\n } else r3 = r3.concat(p2({ key: `${o3}[0]`, value: n3[0], valueSpec: {}, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec }, n3));\n return vn(jn(n3[1])) ? r3.concat([new it(`${o3}[1]`, n3[1], \"expressions are not allowed in function stops.\")]) : r3.concat(t5.validateSpec({ key: `${o3}[1]`, value: n3[1], valueSpec: e2, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec }));\n }\n function p2(t5, s3) {\n const o3 = un(t5.value), l3 = On(t5.value), u3 = null !== t5.value ? t5.value : s3;\n if (n2) {\n if (o3 !== n2) return [new it(t5.key, u3, `${o3} stop domain type must match previous stop domain type ${n2}`)];\n } else n2 = o3;\n if (\"number\" !== o3 && \"string\" !== o3 && \"boolean\" !== o3) return [new it(t5.key, u3, \"stop domain value must be a number, string, or boolean\")];\n if (\"number\" !== o3 && \"categorical\" !== r2) {\n let n3 = `number expected, ${o3} found`;\n return an(e2) && void 0 === r2 && (n3 += '\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'), [new it(t5.key, u3, n3)];\n }\n return \"categorical\" !== r2 || \"number\" !== o3 || isFinite(l3) && Math.floor(l3) === l3 ? \"categorical\" !== r2 && \"number\" === o3 && void 0 !== i2 && l3 < i2 ? [new it(t5.key, u3, \"stop domain values must appear in ascending order\")] : (i2 = l3, \"categorical\" === r2 && l3 in a2 ? [new it(t5.key, u3, \"stop domain values must be unique\")] : (a2[l3] = true, [])) : [new it(t5.key, u3, `integer expected, found ${l3}`)];\n }\n }\n function Zn2(t4) {\n const e2 = (\"property\" === t4.expressionContext ? An : bn)(jn(t4.value), t4.valueSpec);\n if (\"error\" === e2.result) return e2.value.map((e3) => new it(`${t4.key}${e3.key}`, t4.value, e3.message));\n const r2 = e2.value.expression || e2.value._styleExpression.expression;\n if (\"property\" === t4.expressionContext && \"text-font\" === t4.propertyKey && !r2.outputDefined()) return [new it(t4.key, t4.value, `Invalid data expression for \"${t4.propertyKey}\". Output values must be contained as literals within the expression.`)];\n if (\"property\" === t4.expressionContext && \"layout\" === t4.propertyType && !en(r2)) return [new it(t4.key, t4.value, '\"feature-state\" data expressions are not supported with layout properties.')];\n if (\"filter\" === t4.expressionContext && !en(r2)) return [new it(t4.key, t4.value, '\"feature-state\" data expressions are not supported with filters.')];\n if (t4.expressionContext && 0 === t4.expressionContext.indexOf(\"cluster\")) {\n if (!rn(r2, [\"zoom\", \"feature-state\"])) return [new it(t4.key, t4.value, '\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];\n if (\"cluster-initial\" === t4.expressionContext && !tn(r2)) return [new it(t4.key, t4.value, \"Feature data expressions are not supported with initial expression part of cluster properties.\")];\n }\n return [];\n }\n function Gn(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = t4.valueSpec, i2 = [];\n return Array.isArray(n2.values) ? -1 === n2.values.indexOf(On(r2)) && i2.push(new it(e2, r2, `expected one of [${n2.values.join(\", \")}], ${JSON.stringify(r2)} found`)) : -1 === Object.keys(n2.values).indexOf(On(r2)) && i2.push(new it(e2, r2, `expected one of [${Object.keys(n2.values).join(\", \")}], ${JSON.stringify(r2)} found`)), i2;\n }\n function Kn(t4) {\n return Mn(jn(t4.value)) ? Zn2(st({}, t4, { expressionContext: \"filter\", valueSpec: { value: \"boolean\" } })) : Xn2(t4);\n }\n function Xn2(t4) {\n const e2 = t4.value, r2 = t4.key;\n if (\"array\" !== un(e2)) return [new it(r2, e2, `array expected, ${un(e2)} found`)];\n const n2 = t4.styleSpec;\n let i2, s2 = [];\n if (e2.length < 1) return [new it(r2, e2, \"filter array must have at least 1 element\")];\n switch (s2 = s2.concat(Gn({ key: `${r2}[0]`, value: e2[0], valueSpec: n2.filter_operator, style: t4.style, styleSpec: t4.styleSpec })), On(e2[0])) {\n case \"<\":\n case \"<=\":\n case \">\":\n case \">=\":\n e2.length >= 2 && \"$type\" === On(e2[1]) && s2.push(new it(r2, e2, `\"$type\" cannot be use with operator \"${e2[0]}\"`));\n case \"==\":\n case \"!=\":\n 3 !== e2.length && s2.push(new it(r2, e2, `filter array for operator \"${e2[0]}\" must have 3 elements`));\n case \"in\":\n case \"!in\":\n e2.length >= 2 && (i2 = un(e2[1]), \"string\" !== i2 && s2.push(new it(`${r2}[1]`, e2[1], `string expected, ${i2} found`)));\n for (let a2 = 2; a2 < e2.length; a2++) i2 = un(e2[a2]), \"$type\" === On(e2[1]) ? s2 = s2.concat(Gn({ key: `${r2}[${a2}]`, value: e2[a2], valueSpec: n2.geometry_type, style: t4.style, styleSpec: t4.styleSpec })) : \"string\" !== i2 && \"number\" !== i2 && \"boolean\" !== i2 && s2.push(new it(`${r2}[${a2}]`, e2[a2], `string, number, or boolean expected, ${i2} found`));\n break;\n case \"any\":\n case \"all\":\n case \"none\":\n for (let n3 = 1; n3 < e2.length; n3++) s2 = s2.concat(Xn2({ key: `${r2}[${n3}]`, value: e2[n3], style: t4.style, styleSpec: t4.styleSpec }));\n break;\n case \"has\":\n case \"!has\":\n i2 = un(e2[1]), 2 !== e2.length ? s2.push(new it(r2, e2, `filter array for \"${e2[0]}\" operator must have 2 elements`)) : \"string\" !== i2 && s2.push(new it(`${r2}[1]`, e2[1], `string expected, ${i2} found`));\n }\n return s2;\n }\n function Hn(t4, e2) {\n const r2 = t4.key, n2 = t4.validateSpec, i2 = t4.style, s2 = t4.styleSpec, a2 = t4.value, o2 = t4.objectKey, l2 = s2[`${e2}_${t4.layerType}`];\n if (!l2) return [];\n const u2 = o2.match(/^(.*)-transition$/);\n if (\"paint\" === e2 && u2 && l2[u2[1]] && l2[u2[1]].transition) return n2({ key: r2, value: a2, valueSpec: s2.transition, style: i2, styleSpec: s2 });\n const c2 = t4.valueSpec || l2[o2];\n if (!c2) return [new it(r2, a2, `unknown property \"${o2}\"`)];\n let h2;\n if (\"string\" === un(a2) && an(c2) && !c2.tokens && (h2 = /^{([^}]+)}$/.exec(a2))) return [new it(r2, a2, `\"${o2}\" does not support interpolation syntax\nUse an identity property function instead: \\`{ \"type\": \"identity\", \"property\": ${JSON.stringify(h2[1])} }\\`.`)];\n const p2 = [];\n return \"symbol\" === t4.layerType && (\"text-field\" === o2 && i2 && !i2.glyphs && p2.push(new it(r2, a2, 'use of \"text-field\" requires a style \"glyphs\" property')), \"text-font\" === o2 && cn(jn(a2)) && \"identity\" === On(a2.type) && p2.push(new it(r2, a2, '\"text-font\" does not support identity functions'))), p2.concat(n2({ key: t4.key, value: a2, valueSpec: c2, style: i2, styleSpec: s2, expressionContext: \"property\", propertyType: e2, propertyKey: o2 }));\n }\n function Yn2(t4) {\n return Hn(t4, \"paint\");\n }\n function Jn(t4) {\n return Hn(t4, \"layout\");\n }\n function Wn(t4) {\n let e2 = [];\n const r2 = t4.value, n2 = t4.key, i2 = t4.style, s2 = t4.styleSpec;\n r2.type || r2.ref || e2.push(new it(n2, r2, 'either \"type\" or \"ref\" is required'));\n let a2 = On(r2.type);\n const o2 = On(r2.ref);\n if (r2.id) {\n const s3 = On(r2.id);\n for (let a3 = 0; a3 < t4.arrayIndex; a3++) {\n const t5 = i2.layers[a3];\n On(t5.id) === s3 && e2.push(new it(n2, r2.id, `duplicate layer id \"${r2.id}\", previously used at line ${t5.id.__line__}`));\n }\n }\n if (\"ref\" in r2) {\n let t5;\n [\"type\", \"source\", \"source-layer\", \"filter\", \"layout\"].forEach((t6) => {\n t6 in r2 && e2.push(new it(n2, r2[t6], `\"${t6}\" is prohibited for ref layers`));\n }), i2.layers.forEach((e3) => {\n On(e3.id) === o2 && (t5 = e3);\n }), t5 ? t5.ref ? e2.push(new it(n2, r2.ref, \"ref cannot reference another ref layer\")) : a2 = On(t5.type) : e2.push(new it(n2, r2.ref, `ref layer \"${o2}\" not found`));\n } else if (\"background\" !== a2) if (r2.source) {\n const t5 = i2.sources && i2.sources[r2.source], s3 = t5 && On(t5.type);\n t5 ? \"vector\" === s3 && \"raster\" === a2 ? e2.push(new it(n2, r2.source, `layer \"${r2.id}\" requires a raster source`)) : \"raster-dem\" !== s3 && \"hillshade\" === a2 ? e2.push(new it(n2, r2.source, `layer \"${r2.id}\" requires a raster-dem source`)) : \"raster\" === s3 && \"raster\" !== a2 ? e2.push(new it(n2, r2.source, `layer \"${r2.id}\" requires a vector source`)) : \"vector\" !== s3 || r2[\"source-layer\"] ? \"raster-dem\" === s3 && \"hillshade\" !== a2 ? e2.push(new it(n2, r2.source, \"raster-dem source can only be used with layer type 'hillshade'.\")) : \"line\" !== a2 || !r2.paint || !r2.paint[\"line-gradient\"] || \"geojson\" === s3 && t5.lineMetrics || e2.push(new it(n2, r2, `layer \"${r2.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)) : e2.push(new it(n2, r2, `layer \"${r2.id}\" must specify a \"source-layer\"`)) : e2.push(new it(n2, r2.source, `source \"${r2.source}\" not found`));\n } else e2.push(new it(n2, r2, 'missing required property \"source\"'));\n return e2 = e2.concat(Rn({ key: n2, value: r2, valueSpec: s2.layer, style: t4.style, styleSpec: t4.styleSpec, validateSpec: t4.validateSpec, objectElementValidators: { \"*\": () => [], type: () => t4.validateSpec({ key: `${n2}.type`, value: r2.type, valueSpec: s2.layer.type, style: t4.style, styleSpec: t4.styleSpec, validateSpec: t4.validateSpec, object: r2, objectKey: \"type\" }), filter: Kn, layout: (t5) => Rn({ layer: r2, key: t5.key, value: t5.value, style: t5.style, styleSpec: t5.styleSpec, validateSpec: t5.validateSpec, objectElementValidators: { \"*\": (t6) => Jn(st({ layerType: a2 }, t6)) } }), paint: (t5) => Rn({ layer: r2, key: t5.key, value: t5.value, style: t5.style, styleSpec: t5.styleSpec, validateSpec: t5.validateSpec, objectElementValidators: { \"*\": (t6) => Yn2(st({ layerType: a2 }, t6)) } }) } })), e2;\n }\n function Qn(t4) {\n const e2 = t4.value, r2 = t4.key, n2 = un(e2);\n return \"string\" !== n2 ? [new it(r2, e2, `string expected, ${n2} found`)] : [];\n }\n const ti = { promoteId: function({ key: t4, value: e2 }) {\n if (\"string\" === un(e2)) return Qn({ key: t4, value: e2 });\n {\n const r2 = [];\n for (const n2 in e2) r2.push(...Qn({ key: `${t4}.${n2}`, value: e2[n2] }));\n return r2;\n }\n } };\n function ei(t4) {\n const e2 = t4.value, r2 = t4.key, n2 = t4.styleSpec, i2 = t4.style, s2 = t4.validateSpec;\n if (!e2.type) return [new it(r2, e2, '\"type\" is required')];\n const a2 = On(e2.type);\n let o2;\n switch (a2) {\n case \"vector\":\n case \"raster\":\n return o2 = Rn({ key: r2, value: e2, valueSpec: n2[`source_${a2.replace(\"-\", \"_\")}`], style: t4.style, styleSpec: n2, objectElementValidators: ti, validateSpec: s2 }), o2;\n case \"raster-dem\":\n return o2 = function(t5) {\n var e3;\n const r3 = null !== (e3 = t5.sourceName) && void 0 !== e3 ? e3 : \"\", n3 = t5.value, i3 = t5.styleSpec, s3 = i3.source_raster_dem, a3 = t5.style;\n let o3 = [];\n const l2 = un(n3);\n if (void 0 === n3) return o3;\n if (\"object\" !== l2) return o3.push(new it(\"source_raster_dem\", n3, `object expected, ${l2} found`)), o3;\n const u2 = \"custom\" === On(n3.encoding), c2 = [\"redFactor\", \"greenFactor\", \"blueFactor\", \"baseShift\"], h2 = t5.value.encoding ? `\"${t5.value.encoding}\"` : \"Default\";\n for (const e4 in n3) !u2 && c2.includes(e4) ? o3.push(new it(e4, n3[e4], `In \"${r3}\": \"${e4}\" is only valid when \"encoding\" is set to \"custom\". ${h2} encoding found`)) : s3[e4] ? o3 = o3.concat(t5.validateSpec({ key: e4, value: n3[e4], valueSpec: s3[e4], validateSpec: t5.validateSpec, style: a3, styleSpec: i3 })) : o3.push(new it(e4, n3[e4], `unknown property \"${e4}\"`));\n return o3;\n }({ sourceName: r2, value: e2, style: t4.style, styleSpec: n2, validateSpec: s2 }), o2;\n case \"geojson\":\n if (o2 = Rn({ key: r2, value: e2, valueSpec: n2.source_geojson, style: i2, styleSpec: n2, validateSpec: s2, objectElementValidators: ti }), e2.cluster) for (const t5 in e2.clusterProperties) {\n const [n3, i3] = e2.clusterProperties[t5], a3 = \"string\" == typeof n3 ? [n3, [\"accumulated\"], [\"get\", t5]] : n3;\n o2.push(...Zn2({ key: `${r2}.${t5}.map`, value: i3, validateSpec: s2, expressionContext: \"cluster-map\" })), o2.push(...Zn2({ key: `${r2}.${t5}.reduce`, value: a3, validateSpec: s2, expressionContext: \"cluster-reduce\" }));\n }\n return o2;\n case \"video\":\n return Rn({ key: r2, value: e2, valueSpec: n2.source_video, style: i2, validateSpec: s2, styleSpec: n2 });\n case \"image\":\n return Rn({ key: r2, value: e2, valueSpec: n2.source_image, style: i2, validateSpec: s2, styleSpec: n2 });\n case \"canvas\":\n return [new it(r2, null, \"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\", \"source.canvas\")];\n default:\n return Gn({ key: `${r2}.type`, value: e2.type, valueSpec: { values: [\"vector\", \"raster\", \"raster-dem\", \"geojson\", \"video\", \"image\"] }, style: i2, validateSpec: s2, styleSpec: n2 });\n }\n }\n function ri(t4) {\n const e2 = t4.value, r2 = t4.styleSpec, n2 = r2.light, i2 = t4.style;\n let s2 = [];\n const a2 = un(e2);\n if (void 0 === e2) return s2;\n if (\"object\" !== a2) return s2 = s2.concat([new it(\"light\", e2, `object expected, ${a2} found`)]), s2;\n for (const a3 in e2) {\n const o2 = a3.match(/^(.*)-transition$/);\n s2 = s2.concat(o2 && n2[o2[1]] && n2[o2[1]].transition ? t4.validateSpec({ key: a3, value: e2[a3], valueSpec: r2.transition, validateSpec: t4.validateSpec, style: i2, styleSpec: r2 }) : n2[a3] ? t4.validateSpec({ key: a3, value: e2[a3], valueSpec: n2[a3], validateSpec: t4.validateSpec, style: i2, styleSpec: r2 }) : [new it(a3, e2[a3], `unknown property \"${a3}\"`)]);\n }\n return s2;\n }\n function ni(t4) {\n const e2 = t4.value, r2 = t4.styleSpec, n2 = r2.sky, i2 = t4.style, s2 = un(e2);\n if (void 0 === e2) return [];\n if (\"object\" !== s2) return [new it(\"sky\", e2, `object expected, ${s2} found`)];\n let a2 = [];\n for (const s3 in e2) a2 = a2.concat(n2[s3] ? t4.validateSpec({ key: s3, value: e2[s3], valueSpec: n2[s3], style: i2, styleSpec: r2 }) : [new it(s3, e2[s3], `unknown property \"${s3}\"`)]);\n return a2;\n }\n function ii(t4) {\n const e2 = t4.value, r2 = t4.styleSpec, n2 = r2.terrain, i2 = t4.style;\n let s2 = [];\n const a2 = un(e2);\n if (void 0 === e2) return s2;\n if (\"object\" !== a2) return s2 = s2.concat([new it(\"terrain\", e2, `object expected, ${a2} found`)]), s2;\n for (const a3 in e2) s2 = s2.concat(n2[a3] ? t4.validateSpec({ key: a3, value: e2[a3], valueSpec: n2[a3], validateSpec: t4.validateSpec, style: i2, styleSpec: r2 }) : [new it(a3, e2[a3], `unknown property \"${a3}\"`)]);\n return s2;\n }\n function si(t4) {\n let e2 = [];\n const r2 = t4.value, n2 = t4.key;\n if (Array.isArray(r2)) {\n const i2 = [], s2 = [];\n for (const a2 in r2) r2[a2].id && i2.includes(r2[a2].id) && e2.push(new it(n2, r2, `all the sprites' ids must be unique, but ${r2[a2].id} is duplicated`)), i2.push(r2[a2].id), r2[a2].url && s2.includes(r2[a2].url) && e2.push(new it(n2, r2, `all the sprites' URLs must be unique, but ${r2[a2].url} is duplicated`)), s2.push(r2[a2].url), e2 = e2.concat(Rn({ key: `${n2}[${a2}]`, value: r2[a2], valueSpec: { id: { type: \"string\", required: true }, url: { type: \"string\", required: true } }, validateSpec: t4.validateSpec }));\n return e2;\n }\n return Qn({ key: n2, value: r2 });\n }\n const ai = { \"*\": () => [], array: Un, boolean: function(t4) {\n const e2 = t4.value, r2 = t4.key, n2 = un(e2);\n return \"boolean\" !== n2 ? [new it(r2, e2, `boolean expected, ${n2} found`)] : [];\n }, number: qn, color: function(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = un(r2);\n return \"string\" !== n2 ? [new it(e2, r2, `color expected, ${n2} found`)] : Kt.parse(String(r2)) ? [] : [new it(e2, r2, `color expected, \"${r2}\" found`)];\n }, constants: Dn, enum: Gn, filter: Kn, function: Nn, layer: Wn, object: Rn, source: ei, light: ri, sky: ni, terrain: ii, projection: function(t4) {\n const e2 = t4.value, r2 = t4.styleSpec, n2 = r2.projection, i2 = t4.style, s2 = un(e2);\n if (void 0 === e2) return [];\n if (\"object\" !== s2) return [new it(\"projection\", e2, `object expected, ${s2} found`)];\n let a2 = [];\n for (const s3 in e2) a2 = a2.concat(n2[s3] ? t4.validateSpec({ key: s3, value: e2[s3], valueSpec: n2[s3], style: i2, styleSpec: r2 }) : [new it(s3, e2[s3], `unknown property \"${s3}\"`)]);\n return a2;\n }, string: Qn, formatted: function(t4) {\n return 0 === Qn(t4).length ? [] : Zn2(t4);\n }, resolvedImage: function(t4) {\n return 0 === Qn(t4).length ? [] : Zn2(t4);\n }, padding: function(t4) {\n const e2 = t4.key, r2 = t4.value;\n if (\"array\" === un(r2)) {\n if (r2.length < 1 || r2.length > 4) return [new it(e2, r2, `padding requires 1 to 4 values; ${r2.length} values found`)];\n const n2 = { type: \"number\" };\n let i2 = [];\n for (let s2 = 0; s2 < r2.length; s2++) i2 = i2.concat(t4.validateSpec({ key: `${e2}[${s2}]`, value: r2[s2], validateSpec: t4.validateSpec, valueSpec: n2 }));\n return i2;\n }\n return qn({ key: e2, value: r2, valueSpec: {} });\n }, variableAnchorOffsetCollection: function(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = un(r2), i2 = t4.styleSpec;\n if (\"array\" !== n2 || r2.length < 1 || r2.length % 2 != 0) return [new it(e2, r2, \"variableAnchorOffsetCollection requires a non-empty array of even length\")];\n let s2 = [];\n for (let n3 = 0; n3 < r2.length; n3 += 2) s2 = s2.concat(Gn({ key: `${e2}[${n3}]`, value: r2[n3], valueSpec: i2.layout_symbol[\"text-anchor\"] })), s2 = s2.concat(Un({ key: `${e2}[${n3 + 1}]`, value: r2[n3 + 1], valueSpec: { length: 2, value: \"number\" }, validateSpec: t4.validateSpec, style: t4.style, styleSpec: i2 }));\n return s2;\n }, sprite: si };\n function oi(t4) {\n const e2 = t4.value, r2 = t4.valueSpec, n2 = t4.styleSpec;\n return t4.validateSpec = oi, r2.expression && cn(On(e2)) ? Nn(t4) : r2.expression && vn(jn(e2)) ? Zn2(t4) : r2.type && ai[r2.type] ? ai[r2.type](t4) : Rn(st({}, t4, { valueSpec: r2.type ? n2[r2.type] : r2 }));\n }\n function li(t4) {\n const e2 = t4.value, r2 = t4.key, n2 = Qn(t4);\n return n2.length || (-1 === e2.indexOf(\"{fontstack}\") && n2.push(new it(r2, e2, '\"glyphs\" url must include a \"{fontstack}\" token')), -1 === e2.indexOf(\"{range}\") && n2.push(new it(r2, e2, '\"glyphs\" url must include a \"{range}\" token'))), n2;\n }\n function ui(t4, e2 = G) {\n let r2 = [];\n return r2 = r2.concat(oi({ key: \"\", value: t4, valueSpec: e2.$root, styleSpec: e2, style: t4, validateSpec: oi, objectElementValidators: { glyphs: li, \"*\": () => [] } })), t4.constants && (r2 = r2.concat(Dn({ key: \"constants\", value: t4.constants, style: t4, styleSpec: e2, validateSpec: oi }))), hi(r2);\n }\n function ci(t4) {\n return function(e2) {\n return t4(__spreadProps(__spreadValues({}, e2), { validateSpec: oi }));\n };\n }\n function hi(t4) {\n return [].concat(t4).sort((t5, e2) => t5.line - e2.line);\n }\n function pi(t4) {\n return function(...e2) {\n return hi(t4.apply(this, e2));\n };\n }\n ui.source = pi(ci(ei)), ui.sprite = pi(ci(si)), ui.glyphs = pi(ci(li)), ui.light = pi(ci(ri)), ui.sky = pi(ci(ni)), ui.terrain = pi(ci(ii)), ui.layer = pi(ci(Wn)), ui.filter = pi(ci(Kn)), ui.paintProperty = pi(ci(Yn2)), ui.layoutProperty = pi(ci(Jn));\n const fi = ui, di = fi.light, yi = fi.sky, mi = fi.paintProperty, gi = fi.layoutProperty;\n function xi(t4, e2) {\n let r2 = false;\n if (e2 && e2.length) for (const n2 of e2) t4.fire(new N(new Error(n2.message))), r2 = true;\n return r2;\n }\n class vi {\n constructor(t4, e2, r2) {\n const n2 = this.cells = [];\n if (t4 instanceof ArrayBuffer) {\n this.arrayBuffer = t4;\n const i3 = new Int32Array(this.arrayBuffer);\n t4 = i3[0], this.d = (e2 = i3[1]) + 2 * (r2 = i3[2]);\n for (let t5 = 0; t5 < this.d * this.d; t5++) {\n const e3 = i3[3 + t5], r3 = i3[3 + t5 + 1];\n n2.push(e3 === r3 ? null : i3.subarray(e3, r3));\n }\n const s2 = i3[3 + n2.length + 1];\n this.keys = i3.subarray(i3[3 + n2.length], s2), this.bboxes = i3.subarray(s2), this.insert = this._insertReadonly;\n } else {\n this.d = e2 + 2 * r2;\n for (let t5 = 0; t5 < this.d * this.d; t5++) n2.push([]);\n this.keys = [], this.bboxes = [];\n }\n this.n = e2, this.extent = t4, this.padding = r2, this.scale = e2 / t4, this.uid = 0;\n const i2 = r2 / e2 * t4;\n this.min = -i2, this.max = t4 + i2;\n }\n insert(t4, e2, r2, n2, i2) {\n this._forEachCell(e2, r2, n2, i2, this._insertCell, this.uid++, void 0, void 0), this.keys.push(t4), this.bboxes.push(e2), this.bboxes.push(r2), this.bboxes.push(n2), this.bboxes.push(i2);\n }\n _insertReadonly() {\n throw new Error(\"Cannot insert into a GridIndex created from an ArrayBuffer.\");\n }\n _insertCell(t4, e2, r2, n2, i2, s2) {\n this.cells[i2].push(s2);\n }\n query(t4, e2, r2, n2, i2) {\n const s2 = this.min, a2 = this.max;\n if (t4 <= s2 && e2 <= s2 && a2 <= r2 && a2 <= n2 && !i2) return Array.prototype.slice.call(this.keys);\n {\n const s3 = [];\n return this._forEachCell(t4, e2, r2, n2, this._queryCell, s3, {}, i2), s3;\n }\n }\n _queryCell(t4, e2, r2, n2, i2, s2, a2, o2) {\n const l2 = this.cells[i2];\n if (null !== l2) {\n const i3 = this.keys, u2 = this.bboxes;\n for (let c2 = 0; c2 < l2.length; c2++) {\n const h2 = l2[c2];\n if (void 0 === a2[h2]) {\n const l3 = 4 * h2;\n (o2 ? o2(u2[l3 + 0], u2[l3 + 1], u2[l3 + 2], u2[l3 + 3]) : t4 <= u2[l3 + 2] && e2 <= u2[l3 + 3] && r2 >= u2[l3 + 0] && n2 >= u2[l3 + 1]) ? (a2[h2] = true, s2.push(i3[h2])) : a2[h2] = false;\n }\n }\n }\n }\n _forEachCell(t4, e2, r2, n2, i2, s2, a2, o2) {\n const l2 = this._convertToCellCoord(t4), u2 = this._convertToCellCoord(e2), c2 = this._convertToCellCoord(r2), h2 = this._convertToCellCoord(n2);\n for (let p2 = l2; p2 <= c2; p2++) for (let l3 = u2; l3 <= h2; l3++) {\n const u3 = this.d * l3 + p2;\n if ((!o2 || o2(this._convertFromCellCoord(p2), this._convertFromCellCoord(l3), this._convertFromCellCoord(p2 + 1), this._convertFromCellCoord(l3 + 1))) && i2.call(this, t4, e2, r2, n2, u3, s2, a2, o2)) return;\n }\n }\n _convertFromCellCoord(t4) {\n return (t4 - this.padding) / this.scale;\n }\n _convertToCellCoord(t4) {\n return Math.max(0, Math.min(this.d - 1, Math.floor(t4 * this.scale) + this.padding));\n }\n toArrayBuffer() {\n if (this.arrayBuffer) return this.arrayBuffer;\n const t4 = this.cells, e2 = 3 + this.cells.length + 1 + 1;\n let r2 = 0;\n for (let t5 = 0; t5 < this.cells.length; t5++) r2 += this.cells[t5].length;\n const n2 = new Int32Array(e2 + r2 + this.keys.length + this.bboxes.length);\n n2[0] = this.extent, n2[1] = this.n, n2[2] = this.padding;\n let i2 = e2;\n for (let e3 = 0; e3 < t4.length; e3++) {\n const r3 = t4[e3];\n n2[3 + e3] = i2, n2.set(r3, i2), i2 += r3.length;\n }\n return n2[3 + t4.length] = i2, n2.set(this.keys, i2), i2 += this.keys.length, n2[3 + t4.length + 1] = i2, n2.set(this.bboxes, i2), i2 += this.bboxes.length, n2.buffer;\n }\n static serialize(t4, e2) {\n const r2 = t4.toArrayBuffer();\n return e2 && e2.push(r2), { buffer: r2 };\n }\n static deserialize(t4) {\n return new vi(t4.buffer);\n }\n }\n const bi = {};\n function wi(t4, e2, r2 = {}) {\n if (bi[t4]) throw new Error(`${t4} is already registered.`);\n Object.defineProperty(e2, \"_classRegistryKey\", { value: t4, writeable: false }), bi[t4] = { klass: e2, omit: r2.omit || [], shallow: r2.shallow || [] };\n }\n wi(\"Object\", Object), wi(\"TransferableGridIndex\", vi), wi(\"Color\", Kt), wi(\"Error\", Error), wi(\"AJAXError\", L), wi(\"ResolvedImage\", te), wi(\"StylePropertyFunction\", Sn), wi(\"StyleExpression\", xn, { omit: [\"_evaluator\"] }), wi(\"ZoomDependentExpression\", _n), wi(\"ZoomConstantExpression\", wn), wi(\"CompoundExpression\", Xr, { omit: [\"_evaluate\"] });\n for (const t4 in Kr) Kr[t4]._classRegistryKey || wi(`Expression_${t4}`, Kr[t4]);\n function _i(t4) {\n return t4 && \"undefined\" != typeof ArrayBuffer && (t4 instanceof ArrayBuffer || t4.constructor && \"ArrayBuffer\" === t4.constructor.name);\n }\n function Ai(t4) {\n return t4.$name || t4.constructor._classRegistryKey;\n }\n function Si(t4) {\n return !function(t5) {\n if (null === t5 || \"object\" != typeof t5) return false;\n const e2 = Ai(t5);\n return !(!e2 || \"Object\" === e2);\n }(t4) && (null == t4 || \"boolean\" == typeof t4 || \"number\" == typeof t4 || \"string\" == typeof t4 || t4 instanceof Boolean || t4 instanceof Number || t4 instanceof String || t4 instanceof Date || t4 instanceof RegExp || t4 instanceof Blob || t4 instanceof Error || _i(t4) || I(t4) || ArrayBuffer.isView(t4) || t4 instanceof ImageData);\n }\n function ki(t4, e2) {\n if (Si(t4)) return (_i(t4) || I(t4)) && e2 && e2.push(t4), ArrayBuffer.isView(t4) && e2 && e2.push(t4.buffer), t4 instanceof ImageData && e2 && e2.push(t4.data.buffer), t4;\n if (Array.isArray(t4)) {\n const r3 = [];\n for (const n3 of t4) r3.push(ki(n3, e2));\n return r3;\n }\n if (\"object\" != typeof t4) throw new Error(\"can't serialize object of type \" + typeof t4);\n const r2 = Ai(t4);\n if (!r2) throw new Error(`can't serialize object of unregistered class ${t4.constructor.name}`);\n if (!bi[r2]) throw new Error(`${r2} is not registered.`);\n const { klass: n2 } = bi[r2], i2 = n2.serialize ? n2.serialize(t4, e2) : {};\n if (n2.serialize) {\n if (e2 && i2 === e2[e2.length - 1]) throw new Error(\"statically serialized object won't survive transfer of $name property\");\n } else {\n for (const n3 in t4) {\n if (!t4.hasOwnProperty(n3)) continue;\n if (bi[r2].omit.indexOf(n3) >= 0) continue;\n const s2 = t4[n3];\n i2[n3] = bi[r2].shallow.indexOf(n3) >= 0 ? s2 : ki(s2, e2);\n }\n t4 instanceof Error && (i2.message = t4.message);\n }\n if (i2.$name) throw new Error(\"$name property is reserved for worker serialization logic.\");\n return \"Object\" !== r2 && (i2.$name = r2), i2;\n }\n function Mi(t4) {\n if (Si(t4)) return t4;\n if (Array.isArray(t4)) return t4.map(Mi);\n if (\"object\" != typeof t4) throw new Error(\"can't deserialize object of type \" + typeof t4);\n const e2 = Ai(t4) || \"Object\";\n if (!bi[e2]) throw new Error(`can't deserialize unregistered class ${e2}`);\n const { klass: r2 } = bi[e2];\n if (!r2) throw new Error(`can't deserialize unregistered class ${e2}`);\n if (r2.deserialize) return r2.deserialize(t4);\n const n2 = Object.create(r2.prototype);\n for (const r3 of Object.keys(t4)) {\n if (\"$name\" === r3) continue;\n const i2 = t4[r3];\n n2[r3] = bi[e2].shallow.indexOf(r3) >= 0 ? i2 : Mi(i2);\n }\n return n2;\n }\n class Ii {\n constructor() {\n this.first = true;\n }\n update(t4, e2) {\n const r2 = Math.floor(t4);\n return this.first ? (this.first = false, this.lastIntegerZoom = r2, this.lastIntegerZoomTime = 0, this.lastZoom = t4, this.lastFloorZoom = r2, true) : (this.lastFloorZoom > r2 ? (this.lastIntegerZoom = r2 + 1, this.lastIntegerZoomTime = e2) : this.lastFloorZoom < r2 && (this.lastIntegerZoom = r2, this.lastIntegerZoomTime = e2), t4 !== this.lastZoom && (this.lastZoom = t4, this.lastFloorZoom = r2, true));\n }\n }\n const zi = { \"Latin-1 Supplement\": (t4) => t4 >= 128 && t4 <= 255, \"Hangul Jamo\": (t4) => t4 >= 4352 && t4 <= 4607, Khmer: (t4) => t4 >= 6016 && t4 <= 6143, \"General Punctuation\": (t4) => t4 >= 8192 && t4 <= 8303, \"Letterlike Symbols\": (t4) => t4 >= 8448 && t4 <= 8527, \"Number Forms\": (t4) => t4 >= 8528 && t4 <= 8591, \"Miscellaneous Technical\": (t4) => t4 >= 8960 && t4 <= 9215, \"Control Pictures\": (t4) => t4 >= 9216 && t4 <= 9279, \"Optical Character Recognition\": (t4) => t4 >= 9280 && t4 <= 9311, \"Enclosed Alphanumerics\": (t4) => t4 >= 9312 && t4 <= 9471, \"Geometric Shapes\": (t4) => t4 >= 9632 && t4 <= 9727, \"Miscellaneous Symbols\": (t4) => t4 >= 9728 && t4 <= 9983, \"Miscellaneous Symbols and Arrows\": (t4) => t4 >= 11008 && t4 <= 11263, \"Ideographic Description Characters\": (t4) => t4 >= 12272 && t4 <= 12287, \"CJK Symbols and Punctuation\": (t4) => t4 >= 12288 && t4 <= 12351, Katakana: (t4) => t4 >= 12448 && t4 <= 12543, Kanbun: (t4) => t4 >= 12688 && t4 <= 12703, \"CJK Strokes\": (t4) => t4 >= 12736 && t4 <= 12783, \"Enclosed CJK Letters and Months\": (t4) => t4 >= 12800 && t4 <= 13055, \"CJK Compatibility\": (t4) => t4 >= 13056 && t4 <= 13311, \"Yijing Hexagram Symbols\": (t4) => t4 >= 19904 && t4 <= 19967, \"Private Use Area\": (t4) => t4 >= 57344 && t4 <= 63743, \"Vertical Forms\": (t4) => t4 >= 65040 && t4 <= 65055, \"CJK Compatibility Forms\": (t4) => t4 >= 65072 && t4 <= 65103, \"Small Form Variants\": (t4) => t4 >= 65104 && t4 <= 65135, \"Halfwidth and Fullwidth Forms\": (t4) => t4 >= 65280 && t4 <= 65519 };\n function Pi(t4) {\n for (const e2 of t4) if (Ti(e2.charCodeAt(0))) return true;\n return false;\n }\n function Ci(t4) {\n for (const e2 of t4) if (!Ei(e2.charCodeAt(0))) return false;\n return true;\n }\n function Bi(t4) {\n const e2 = t4.map((t5) => {\n try {\n return new RegExp(`\\\\p{sc=${t5}}`, \"u\").source;\n } catch (t6) {\n return null;\n }\n }).filter((t5) => t5);\n return new RegExp(e2.join(\"|\"), \"u\");\n }\n const Vi = Bi([\"Arab\", \"Dupl\", \"Mong\", \"Ougr\", \"Syrc\"]);\n function Ei(t4) {\n return !Vi.test(String.fromCodePoint(t4));\n }\n const Fi = Bi([\"Bopo\", \"Hani\", \"Hira\", \"Kana\", \"Kits\", \"Nshu\", \"Tang\", \"Yiii\"]);\n function Ti(t4) {\n return !(746 !== t4 && 747 !== t4 && (t4 < 4352 || !(zi[\"CJK Compatibility Forms\"](t4) && !(t4 >= 65097 && t4 <= 65103) || zi[\"CJK Compatibility\"](t4) || zi[\"CJK Strokes\"](t4) || !(!zi[\"CJK Symbols and Punctuation\"](t4) || t4 >= 12296 && t4 <= 12305 || t4 >= 12308 && t4 <= 12319 || 12336 === t4) || zi[\"Enclosed CJK Letters and Months\"](t4) || zi[\"Ideographic Description Characters\"](t4) || zi.Kanbun(t4) || zi.Katakana(t4) && 12540 !== t4 || !(!zi[\"Halfwidth and Fullwidth Forms\"](t4) || 65288 === t4 || 65289 === t4 || 65293 === t4 || t4 >= 65306 && t4 <= 65310 || 65339 === t4 || 65341 === t4 || 65343 === t4 || t4 >= 65371 && t4 <= 65503 || 65507 === t4 || t4 >= 65512 && t4 <= 65519) || !(!zi[\"Small Form Variants\"](t4) || t4 >= 65112 && t4 <= 65118 || t4 >= 65123 && t4 <= 65126) || zi[\"Vertical Forms\"](t4) || zi[\"Yijing Hexagram Symbols\"](t4) || new RegExp(\"\\\\p{sc=Cans}\", \"u\").test(String.fromCodePoint(t4)) || new RegExp(\"\\\\p{sc=Hang}\", \"u\").test(String.fromCodePoint(t4)) || Fi.test(String.fromCodePoint(t4)))));\n }\n function $i(t4) {\n return !(Ti(t4) || function(t5) {\n return !!(zi[\"Latin-1 Supplement\"](t5) && (167 === t5 || 169 === t5 || 174 === t5 || 177 === t5 || 188 === t5 || 189 === t5 || 190 === t5 || 215 === t5 || 247 === t5) || zi[\"General Punctuation\"](t5) && (8214 === t5 || 8224 === t5 || 8225 === t5 || 8240 === t5 || 8241 === t5 || 8251 === t5 || 8252 === t5 || 8258 === t5 || 8263 === t5 || 8264 === t5 || 8265 === t5 || 8273 === t5) || zi[\"Letterlike Symbols\"](t5) || zi[\"Number Forms\"](t5) || zi[\"Miscellaneous Technical\"](t5) && (t5 >= 8960 && t5 <= 8967 || t5 >= 8972 && t5 <= 8991 || t5 >= 8996 && t5 <= 9e3 || 9003 === t5 || t5 >= 9085 && t5 <= 9114 || t5 >= 9150 && t5 <= 9165 || 9167 === t5 || t5 >= 9169 && t5 <= 9179 || t5 >= 9186 && t5 <= 9215) || zi[\"Control Pictures\"](t5) && 9251 !== t5 || zi[\"Optical Character Recognition\"](t5) || zi[\"Enclosed Alphanumerics\"](t5) || zi[\"Geometric Shapes\"](t5) || zi[\"Miscellaneous Symbols\"](t5) && !(t5 >= 9754 && t5 <= 9759) || zi[\"Miscellaneous Symbols and Arrows\"](t5) && (t5 >= 11026 && t5 <= 11055 || t5 >= 11088 && t5 <= 11097 || t5 >= 11192 && t5 <= 11243) || zi[\"CJK Symbols and Punctuation\"](t5) || zi.Katakana(t5) || zi[\"Private Use Area\"](t5) || zi[\"CJK Compatibility Forms\"](t5) || zi[\"Small Form Variants\"](t5) || zi[\"Halfwidth and Fullwidth Forms\"](t5) || 8734 === t5 || 8756 === t5 || 8757 === t5 || t5 >= 9984 && t5 <= 10087 || t5 >= 10102 && t5 <= 10131 || 65532 === t5 || 65533 === t5);\n }(t4));\n }\n const Li = Bi([\"Adlm\", \"Arab\", \"Armi\", \"Avst\", \"Chrs\", \"Cprt\", \"Egyp\", \"Elym\", \"Gara\", \"Hatr\", \"Hebr\", \"Hung\", \"Khar\", \"Lydi\", \"Mand\", \"Mani\", \"Mend\", \"Merc\", \"Mero\", \"Narb\", \"Nbat\", \"Nkoo\", \"Orkh\", \"Palm\", \"Phli\", \"Phlp\", \"Phnx\", \"Prti\", \"Rohg\", \"Samr\", \"Sarb\", \"Sogo\", \"Syrc\", \"Thaa\", \"Todr\", \"Yezi\"]);\n function Di(t4) {\n return Li.test(String.fromCodePoint(t4));\n }\n function Oi(t4, e2) {\n return !(!e2 && Di(t4) || t4 >= 2304 && t4 <= 3583 || t4 >= 3840 && t4 <= 4255 || zi.Khmer(t4));\n }\n function ji(t4) {\n for (const e2 of t4) if (Di(e2.charCodeAt(0))) return true;\n return false;\n }\n const Ri = new class {\n constructor() {\n this.applyArabicShaping = null, this.processBidirectionalText = null, this.processStyledBidirectionalText = null, this.pluginStatus = \"unavailable\", this.pluginURL = null;\n }\n setState(t4) {\n this.pluginStatus = t4.pluginStatus, this.pluginURL = t4.pluginURL;\n }\n getState() {\n return { pluginStatus: this.pluginStatus, pluginURL: this.pluginURL };\n }\n setMethods(t4) {\n this.applyArabicShaping = t4.applyArabicShaping, this.processBidirectionalText = t4.processBidirectionalText, this.processStyledBidirectionalText = t4.processStyledBidirectionalText;\n }\n isParsed() {\n return null != this.applyArabicShaping && null != this.processBidirectionalText && null != this.processStyledBidirectionalText;\n }\n getPluginURL() {\n return this.pluginURL;\n }\n getRTLTextPluginStatus() {\n return this.pluginStatus;\n }\n }();\n class Ui {\n constructor(t4, e2) {\n this.zoom = t4, e2 ? (this.now = e2.now, this.fadeDuration = e2.fadeDuration, this.zoomHistory = e2.zoomHistory, this.transition = e2.transition) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new Ii(), this.transition = {});\n }\n isSupportedScript(t4) {\n return function(t5, e2) {\n for (const r2 of t5) if (!Oi(r2.charCodeAt(0), e2)) return false;\n return true;\n }(t4, \"loaded\" === Ri.getRTLTextPluginStatus());\n }\n crossFadingFactor() {\n return 0 === this.fadeDuration ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1);\n }\n getCrossfadeParameters() {\n const t4 = this.zoom, e2 = t4 - Math.floor(t4), r2 = this.crossFadingFactor();\n return t4 > this.zoomHistory.lastIntegerZoom ? { fromScale: 2, toScale: 1, t: e2 + (1 - e2) * r2 } : { fromScale: 0.5, toScale: 1, t: 1 - (1 - r2) * e2 };\n }\n }\n class qi {\n constructor(t4, e2) {\n this.property = t4, this.value = e2, this.expression = function(t5, e3) {\n if (cn(t5)) return new Sn(t5, e3);\n if (vn(t5)) {\n const r2 = An(t5, e3);\n if (\"error\" === r2.result) throw new Error(r2.value.map((t6) => `${t6.key}: ${t6.message}`).join(\", \"));\n return r2.value;\n }\n {\n let r2 = t5;\n return \"color\" === e3.type && \"string\" == typeof t5 ? r2 = Kt.parse(t5) : \"padding\" !== e3.type || \"number\" != typeof t5 && !Array.isArray(t5) ? \"variableAnchorOffsetCollection\" === e3.type && Array.isArray(t5) && (r2 = Qt.parse(t5)) : r2 = Jt.parse(t5), { kind: \"constant\", evaluate: () => r2 };\n }\n }(void 0 === e2 ? t4.specification.default : e2, t4.specification);\n }\n isDataDriven() {\n return \"source\" === this.expression.kind || \"composite\" === this.expression.kind;\n }\n possiblyEvaluate(t4, e2, r2) {\n return this.property.possiblyEvaluate(this, t4, e2, r2);\n }\n }\n class Ni {\n constructor(t4) {\n this.property = t4, this.value = new qi(t4, void 0);\n }\n transitioned(t4, e2) {\n return new Gi(this.property, this.value, e2, g({}, t4.transition, this.transition), t4.now);\n }\n untransitioned() {\n return new Gi(this.property, this.value, null, {}, 0);\n }\n }\n class Zi {\n constructor(t4) {\n this._properties = t4, this._values = Object.create(t4.defaultTransitionablePropertyValues);\n }\n getValue(t4) {\n return w(this._values[t4].value.value);\n }\n setValue(t4, e2) {\n Object.prototype.hasOwnProperty.call(this._values, t4) || (this._values[t4] = new Ni(this._values[t4].property)), this._values[t4].value = new qi(this._values[t4].property, null === e2 ? void 0 : w(e2));\n }\n getTransition(t4) {\n return w(this._values[t4].transition);\n }\n setTransition(t4, e2) {\n Object.prototype.hasOwnProperty.call(this._values, t4) || (this._values[t4] = new Ni(this._values[t4].property)), this._values[t4].transition = w(e2) || void 0;\n }\n serialize() {\n const t4 = {};\n for (const e2 of Object.keys(this._values)) {\n const r2 = this.getValue(e2);\n void 0 !== r2 && (t4[e2] = r2);\n const n2 = this.getTransition(e2);\n void 0 !== n2 && (t4[`${e2}-transition`] = n2);\n }\n return t4;\n }\n transitioned(t4, e2) {\n const r2 = new Ki(this._properties);\n for (const n2 of Object.keys(this._values)) r2._values[n2] = this._values[n2].transitioned(t4, e2._values[n2]);\n return r2;\n }\n untransitioned() {\n const t4 = new Ki(this._properties);\n for (const e2 of Object.keys(this._values)) t4._values[e2] = this._values[e2].untransitioned();\n return t4;\n }\n }\n class Gi {\n constructor(t4, e2, r2, n2, i2) {\n this.property = t4, this.value = e2, this.begin = i2 + n2.delay || 0, this.end = this.begin + n2.duration || 0, t4.specification.transition && (n2.delay || n2.duration) && (this.prior = r2);\n }\n possiblyEvaluate(t4, e2, r2) {\n const n2 = t4.now || 0, i2 = this.value.possiblyEvaluate(t4, e2, r2), s2 = this.prior;\n if (s2) {\n if (n2 > this.end) return this.prior = null, i2;\n if (this.value.isDataDriven()) return this.prior = null, i2;\n if (n2 < this.begin) return s2.possiblyEvaluate(t4, e2, r2);\n {\n const a2 = (n2 - this.begin) / (this.end - this.begin);\n return this.property.interpolate(s2.possiblyEvaluate(t4, e2, r2), i2, function(t5) {\n if (t5 <= 0) return 0;\n if (t5 >= 1) return 1;\n const e3 = t5 * t5, r3 = e3 * t5;\n return 4 * (t5 < 0.5 ? r3 : 3 * (t5 - e3) + r3 - 0.75);\n }(a2));\n }\n }\n return i2;\n }\n }\n class Ki {\n constructor(t4) {\n this._properties = t4, this._values = Object.create(t4.defaultTransitioningPropertyValues);\n }\n possiblyEvaluate(t4, e2, r2) {\n const n2 = new Yi(this._properties);\n for (const i2 of Object.keys(this._values)) n2._values[i2] = this._values[i2].possiblyEvaluate(t4, e2, r2);\n return n2;\n }\n hasTransition() {\n for (const t4 of Object.keys(this._values)) if (this._values[t4].prior) return true;\n return false;\n }\n }\n class Xi {\n constructor(t4) {\n this._properties = t4, this._values = Object.create(t4.defaultPropertyValues);\n }\n hasValue(t4) {\n return void 0 !== this._values[t4].value;\n }\n getValue(t4) {\n return w(this._values[t4].value);\n }\n setValue(t4, e2) {\n this._values[t4] = new qi(this._values[t4].property, null === e2 ? void 0 : w(e2));\n }\n serialize() {\n const t4 = {};\n for (const e2 of Object.keys(this._values)) {\n const r2 = this.getValue(e2);\n void 0 !== r2 && (t4[e2] = r2);\n }\n return t4;\n }\n possiblyEvaluate(t4, e2, r2) {\n const n2 = new Yi(this._properties);\n for (const i2 of Object.keys(this._values)) n2._values[i2] = this._values[i2].possiblyEvaluate(t4, e2, r2);\n return n2;\n }\n }\n class Hi {\n constructor(t4, e2, r2) {\n this.property = t4, this.value = e2, this.parameters = r2;\n }\n isConstant() {\n return \"constant\" === this.value.kind;\n }\n constantOr(t4) {\n return \"constant\" === this.value.kind ? this.value.value : t4;\n }\n evaluate(t4, e2, r2, n2) {\n return this.property.evaluate(this.value, this.parameters, t4, e2, r2, n2);\n }\n }\n class Yi {\n constructor(t4) {\n this._properties = t4, this._values = Object.create(t4.defaultPossiblyEvaluatedValues);\n }\n get(t4) {\n return this._values[t4];\n }\n }\n class Ji {\n constructor(t4) {\n this.specification = t4;\n }\n possiblyEvaluate(t4, e2) {\n if (t4.isDataDriven()) throw new Error(\"Value should not be data driven\");\n return t4.expression.evaluate(e2);\n }\n interpolate(t4, e2, r2) {\n const n2 = Ce[this.specification.type];\n return n2 ? n2(t4, e2, r2) : t4;\n }\n }\n class Wi {\n constructor(t4, e2) {\n this.specification = t4, this.overrides = e2;\n }\n possiblyEvaluate(t4, e2, r2, n2) {\n return new Hi(this, \"constant\" === t4.expression.kind || \"camera\" === t4.expression.kind ? { kind: \"constant\", value: t4.expression.evaluate(e2, null, {}, r2, n2) } : t4.expression, e2);\n }\n interpolate(t4, e2, r2) {\n if (\"constant\" !== t4.value.kind || \"constant\" !== e2.value.kind) return t4;\n if (void 0 === t4.value.value || void 0 === e2.value.value) return new Hi(this, { kind: \"constant\", value: void 0 }, t4.parameters);\n const n2 = Ce[this.specification.type];\n if (n2) {\n const i2 = n2(t4.value.value, e2.value.value, r2);\n return new Hi(this, { kind: \"constant\", value: i2 }, t4.parameters);\n }\n return t4;\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n return \"constant\" === t4.kind ? t4.value : t4.evaluate(e2, r2, n2, i2, s2);\n }\n }\n class Qi extends Wi {\n possiblyEvaluate(t4, e2, r2, n2) {\n if (void 0 === t4.value) return new Hi(this, { kind: \"constant\", value: void 0 }, e2);\n if (\"constant\" === t4.expression.kind) {\n const i2 = t4.expression.evaluate(e2, null, {}, r2, n2), s2 = \"resolvedImage\" === t4.property.specification.type && \"string\" != typeof i2 ? i2.name : i2, a2 = this._calculate(s2, s2, s2, e2);\n return new Hi(this, { kind: \"constant\", value: a2 }, e2);\n }\n if (\"camera\" === t4.expression.kind) {\n const r3 = this._calculate(t4.expression.evaluate({ zoom: e2.zoom - 1 }), t4.expression.evaluate({ zoom: e2.zoom }), t4.expression.evaluate({ zoom: e2.zoom + 1 }), e2);\n return new Hi(this, { kind: \"constant\", value: r3 }, e2);\n }\n return new Hi(this, t4.expression, e2);\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n if (\"source\" === t4.kind) {\n const a2 = t4.evaluate(e2, r2, n2, i2, s2);\n return this._calculate(a2, a2, a2, e2);\n }\n return \"composite\" === t4.kind ? this._calculate(t4.evaluate({ zoom: Math.floor(e2.zoom) - 1 }, r2, n2), t4.evaluate({ zoom: Math.floor(e2.zoom) }, r2, n2), t4.evaluate({ zoom: Math.floor(e2.zoom) + 1 }, r2, n2), e2) : t4.value;\n }\n _calculate(t4, e2, r2, n2) {\n return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t4, to: e2 } : { from: r2, to: e2 };\n }\n interpolate(t4) {\n return t4;\n }\n }\n class ts {\n constructor(t4) {\n this.specification = t4;\n }\n possiblyEvaluate(t4, e2, r2, n2) {\n if (void 0 !== t4.value) {\n if (\"constant\" === t4.expression.kind) {\n const i2 = t4.expression.evaluate(e2, null, {}, r2, n2);\n return this._calculate(i2, i2, i2, e2);\n }\n return this._calculate(t4.expression.evaluate(new Ui(Math.floor(e2.zoom - 1), e2)), t4.expression.evaluate(new Ui(Math.floor(e2.zoom), e2)), t4.expression.evaluate(new Ui(Math.floor(e2.zoom + 1), e2)), e2);\n }\n }\n _calculate(t4, e2, r2, n2) {\n return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t4, to: e2 } : { from: r2, to: e2 };\n }\n interpolate(t4) {\n return t4;\n }\n }\n class es {\n constructor(t4) {\n this.specification = t4;\n }\n possiblyEvaluate(t4, e2, r2, n2) {\n return !!t4.expression.evaluate(e2, null, {}, r2, n2);\n }\n interpolate() {\n return false;\n }\n }\n class rs {\n constructor(t4) {\n this.properties = t4, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = [];\n for (const e2 in t4) {\n const r2 = t4[e2];\n r2.specification.overridable && this.overridableProperties.push(e2);\n const n2 = this.defaultPropertyValues[e2] = new qi(r2, void 0), i2 = this.defaultTransitionablePropertyValues[e2] = new Ni(r2);\n this.defaultTransitioningPropertyValues[e2] = i2.untransitioned(), this.defaultPossiblyEvaluatedValues[e2] = n2.possiblyEvaluate({});\n }\n }\n }\n wi(\"DataDrivenProperty\", Wi), wi(\"DataConstantProperty\", Ji), wi(\"CrossFadedDataDrivenProperty\", Qi), wi(\"CrossFadedProperty\", ts), wi(\"ColorRampProperty\", es);\n const ns = \"-transition\";\n class is extends Z {\n constructor(t4, e2) {\n if (super(), this.id = t4.id, this.type = t4.type, this._featureFilter = { filter: () => true, needGeometry: false }, \"custom\" !== t4.type && (this.metadata = t4.metadata, this.minzoom = t4.minzoom, this.maxzoom = t4.maxzoom, \"background\" !== t4.type && (this.source = t4.source, this.sourceLayer = t4[\"source-layer\"], this.filter = t4.filter), e2.layout && (this._unevaluatedLayout = new Xi(e2.layout)), e2.paint)) {\n this._transitionablePaint = new Zi(e2.paint);\n for (const e3 in t4.paint) this.setPaintProperty(e3, t4.paint[e3], { validate: false });\n for (const e3 in t4.layout) this.setLayoutProperty(e3, t4.layout[e3], { validate: false });\n this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new Yi(e2.paint);\n }\n }\n getCrossfadeParameters() {\n return this._crossfadeParameters;\n }\n getLayoutProperty(t4) {\n return \"visibility\" === t4 ? this.visibility : this._unevaluatedLayout.getValue(t4);\n }\n setLayoutProperty(t4, e2, r2 = {}) {\n null != e2 && this._validate(gi, `layers.${this.id}.layout.${t4}`, t4, e2, r2) || (\"visibility\" !== t4 ? this._unevaluatedLayout.setValue(t4, e2) : this.visibility = e2);\n }\n getPaintProperty(t4) {\n return t4.endsWith(ns) ? this._transitionablePaint.getTransition(t4.slice(0, -11)) : this._transitionablePaint.getValue(t4);\n }\n setPaintProperty(t4, e2, r2 = {}) {\n if (null != e2 && this._validate(mi, `layers.${this.id}.paint.${t4}`, t4, e2, r2)) return false;\n if (t4.endsWith(ns)) return this._transitionablePaint.setTransition(t4.slice(0, -11), e2 || void 0), false;\n {\n const r3 = this._transitionablePaint._values[t4], n2 = \"cross-faded-data-driven\" === r3.property.specification[\"property-type\"], i2 = r3.value.isDataDriven(), s2 = r3.value;\n this._transitionablePaint.setValue(t4, e2), this._handleSpecialPaintPropertyUpdate(t4);\n const a2 = this._transitionablePaint._values[t4].value;\n return a2.isDataDriven() || i2 || n2 || this._handleOverridablePaintPropertyUpdate(t4, s2, a2);\n }\n }\n _handleSpecialPaintPropertyUpdate(t4) {\n }\n _handleOverridablePaintPropertyUpdate(t4, e2, r2) {\n return false;\n }\n isHidden(t4) {\n return !!(this.minzoom && t4 < this.minzoom) || !!(this.maxzoom && t4 >= this.maxzoom) || \"none\" === this.visibility;\n }\n updateTransitions(t4) {\n this._transitioningPaint = this._transitionablePaint.transitioned(t4, this._transitioningPaint);\n }\n hasTransition() {\n return this._transitioningPaint.hasTransition();\n }\n recalculate(t4, e2) {\n t4.getCrossfadeParameters && (this._crossfadeParameters = t4.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(t4, void 0, e2)), this.paint = this._transitioningPaint.possiblyEvaluate(t4, void 0, e2);\n }\n serialize() {\n const t4 = { id: this.id, type: this.type, source: this.source, \"source-layer\": this.sourceLayer, metadata: this.metadata, minzoom: this.minzoom, maxzoom: this.maxzoom, filter: this.filter, layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), paint: this._transitionablePaint && this._transitionablePaint.serialize() };\n return this.visibility && (t4.layout = t4.layout || {}, t4.layout.visibility = this.visibility), b(t4, (t5, e2) => !(void 0 === t5 || \"layout\" === e2 && !Object.keys(t5).length || \"paint\" === e2 && !Object.keys(t5).length));\n }\n _validate(t4, e2, r2, n2, i2 = {}) {\n return (!i2 || false !== i2.validate) && xi(this, t4.call(fi, { key: e2, layerType: this.type, objectKey: r2, value: n2, styleSpec: G, style: { glyphs: true, sprite: true } }));\n }\n is3D() {\n return false;\n }\n isTileClipped() {\n return false;\n }\n hasOffscreenPass() {\n return false;\n }\n resize() {\n }\n isStateDependent() {\n for (const t4 in this.paint._values) {\n const e2 = this.paint.get(t4);\n if (e2 instanceof Hi && an(e2.property.specification) && (\"source\" === e2.value.kind || \"composite\" === e2.value.kind) && e2.value.isStateDependent) return true;\n }\n return false;\n }\n }\n const ss = { Int8: Int8Array, Uint8: Uint8Array, Int16: Int16Array, Uint16: Uint16Array, Int32: Int32Array, Uint32: Uint32Array, Float32: Float32Array };\n class as {\n constructor(t4, e2) {\n this._structArray = t4, this._pos1 = e2 * this.size, this._pos2 = this._pos1 / 2, this._pos4 = this._pos1 / 4, this._pos8 = this._pos1 / 8;\n }\n }\n class os {\n constructor() {\n this.isTransferred = false, this.capacity = -1, this.resize(0);\n }\n static serialize(t4, e2) {\n return t4._trim(), e2 && (t4.isTransferred = true, e2.push(t4.arrayBuffer)), { length: t4.length, arrayBuffer: t4.arrayBuffer };\n }\n static deserialize(t4) {\n const e2 = Object.create(this.prototype);\n return e2.arrayBuffer = t4.arrayBuffer, e2.length = t4.length, e2.capacity = t4.arrayBuffer.byteLength / e2.bytesPerElement, e2._refreshViews(), e2;\n }\n _trim() {\n this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews());\n }\n clear() {\n this.length = 0;\n }\n resize(t4) {\n this.reserve(t4), this.length = t4;\n }\n reserve(t4) {\n if (t4 > this.capacity) {\n this.capacity = Math.max(t4, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement);\n const e2 = this.uint8;\n this._refreshViews(), e2 && this.uint8.set(e2);\n }\n }\n _refreshViews() {\n throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\");\n }\n }\n function ls(t4, e2 = 1) {\n let r2 = 0, n2 = 0;\n return { members: t4.map((t5) => {\n const i2 = ss[t5.type].BYTES_PER_ELEMENT, s2 = r2 = us(r2, Math.max(e2, i2)), a2 = t5.components || 1;\n return n2 = Math.max(n2, i2), r2 += i2 * a2, { name: t5.name, type: t5.type, components: a2, offset: s2 };\n }), size: us(r2, Math.max(n2, e2)), alignment: e2 };\n }\n function us(t4, e2) {\n return Math.ceil(t4 / e2) * e2;\n }\n class cs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2) {\n const r2 = this.length;\n return this.resize(r2 + 1), this.emplace(r2, t4, e2);\n }\n emplace(t4, e2, r2) {\n const n2 = 2 * t4;\n return this.int16[n2 + 0] = e2, this.int16[n2 + 1] = r2, t4;\n }\n }\n cs.prototype.bytesPerElement = 4, wi(\"StructArrayLayout2i4\", cs);\n class hs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 3 * t4;\n return this.int16[i2 + 0] = e2, this.int16[i2 + 1] = r2, this.int16[i2 + 2] = n2, t4;\n }\n }\n hs.prototype.bytesPerElement = 6, wi(\"StructArrayLayout3i6\", hs);\n class ps extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2) {\n const i2 = this.length;\n return this.resize(i2 + 1), this.emplace(i2, t4, e2, r2, n2);\n }\n emplace(t4, e2, r2, n2, i2) {\n const s2 = 4 * t4;\n return this.int16[s2 + 0] = e2, this.int16[s2 + 1] = r2, this.int16[s2 + 2] = n2, this.int16[s2 + 3] = i2, t4;\n }\n }\n ps.prototype.bytesPerElement = 8, wi(\"StructArrayLayout4i8\", ps);\n class fs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2) {\n const a2 = this.length;\n return this.resize(a2 + 1), this.emplace(a2, t4, e2, r2, n2, i2, s2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2) {\n const o2 = 6 * t4;\n return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.int16[o2 + 2] = n2, this.int16[o2 + 3] = i2, this.int16[o2 + 4] = s2, this.int16[o2 + 5] = a2, t4;\n }\n }\n fs.prototype.bytesPerElement = 12, wi(\"StructArrayLayout2i4i12\", fs);\n class ds extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2) {\n const a2 = this.length;\n return this.resize(a2 + 1), this.emplace(a2, t4, e2, r2, n2, i2, s2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2) {\n const o2 = 4 * t4, l2 = 8 * t4;\n return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.uint8[l2 + 4] = n2, this.uint8[l2 + 5] = i2, this.uint8[l2 + 6] = s2, this.uint8[l2 + 7] = a2, t4;\n }\n }\n ds.prototype.bytesPerElement = 8, wi(\"StructArrayLayout2i4ub8\", ds);\n class ys extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2) {\n const r2 = this.length;\n return this.resize(r2 + 1), this.emplace(r2, t4, e2);\n }\n emplace(t4, e2, r2) {\n const n2 = 2 * t4;\n return this.float32[n2 + 0] = e2, this.float32[n2 + 1] = r2, t4;\n }\n }\n ys.prototype.bytesPerElement = 8, wi(\"StructArrayLayout2f8\", ys);\n class ms extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2) {\n const c2 = this.length;\n return this.resize(c2 + 1), this.emplace(c2, t4, e2, r2, n2, i2, s2, a2, o2, l2, u2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2) {\n const h2 = 10 * t4;\n return this.uint16[h2 + 0] = e2, this.uint16[h2 + 1] = r2, this.uint16[h2 + 2] = n2, this.uint16[h2 + 3] = i2, this.uint16[h2 + 4] = s2, this.uint16[h2 + 5] = a2, this.uint16[h2 + 6] = o2, this.uint16[h2 + 7] = l2, this.uint16[h2 + 8] = u2, this.uint16[h2 + 9] = c2, t4;\n }\n }\n ms.prototype.bytesPerElement = 20, wi(\"StructArrayLayout10ui20\", ms);\n class gs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2) {\n const p2 = this.length;\n return this.resize(p2 + 1), this.emplace(p2, t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2) {\n const f2 = 12 * t4;\n return this.int16[f2 + 0] = e2, this.int16[f2 + 1] = r2, this.int16[f2 + 2] = n2, this.int16[f2 + 3] = i2, this.uint16[f2 + 4] = s2, this.uint16[f2 + 5] = a2, this.uint16[f2 + 6] = o2, this.uint16[f2 + 7] = l2, this.int16[f2 + 8] = u2, this.int16[f2 + 9] = c2, this.int16[f2 + 10] = h2, this.int16[f2 + 11] = p2, t4;\n }\n }\n gs.prototype.bytesPerElement = 24, wi(\"StructArrayLayout4i4ui4i24\", gs);\n class xs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 3 * t4;\n return this.float32[i2 + 0] = e2, this.float32[i2 + 1] = r2, this.float32[i2 + 2] = n2, t4;\n }\n }\n xs.prototype.bytesPerElement = 12, wi(\"StructArrayLayout3f12\", xs);\n class vs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer);\n }\n emplaceBack(t4) {\n const e2 = this.length;\n return this.resize(e2 + 1), this.emplace(e2, t4);\n }\n emplace(t4, e2) {\n return this.uint32[1 * t4 + 0] = e2, t4;\n }\n }\n vs.prototype.bytesPerElement = 4, wi(\"StructArrayLayout1ul4\", vs);\n class bs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2) {\n const u2 = this.length;\n return this.resize(u2 + 1), this.emplace(u2, t4, e2, r2, n2, i2, s2, a2, o2, l2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2) {\n const c2 = 10 * t4, h2 = 5 * t4;\n return this.int16[c2 + 0] = e2, this.int16[c2 + 1] = r2, this.int16[c2 + 2] = n2, this.int16[c2 + 3] = i2, this.int16[c2 + 4] = s2, this.int16[c2 + 5] = a2, this.uint32[h2 + 3] = o2, this.uint16[c2 + 8] = l2, this.uint16[c2 + 9] = u2, t4;\n }\n }\n bs.prototype.bytesPerElement = 20, wi(\"StructArrayLayout6i1ul2ui20\", bs);\n class ws extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2) {\n const a2 = this.length;\n return this.resize(a2 + 1), this.emplace(a2, t4, e2, r2, n2, i2, s2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2) {\n const o2 = 6 * t4;\n return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.int16[o2 + 2] = n2, this.int16[o2 + 3] = i2, this.int16[o2 + 4] = s2, this.int16[o2 + 5] = a2, t4;\n }\n }\n ws.prototype.bytesPerElement = 12, wi(\"StructArrayLayout2i2i2i12\", ws);\n class _s extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2) {\n const s2 = this.length;\n return this.resize(s2 + 1), this.emplace(s2, t4, e2, r2, n2, i2);\n }\n emplace(t4, e2, r2, n2, i2, s2) {\n const a2 = 4 * t4, o2 = 8 * t4;\n return this.float32[a2 + 0] = e2, this.float32[a2 + 1] = r2, this.float32[a2 + 2] = n2, this.int16[o2 + 6] = i2, this.int16[o2 + 7] = s2, t4;\n }\n }\n _s.prototype.bytesPerElement = 16, wi(\"StructArrayLayout2f1f2i16\", _s);\n class As extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2) {\n const a2 = this.length;\n return this.resize(a2 + 1), this.emplace(a2, t4, e2, r2, n2, i2, s2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2) {\n const o2 = 16 * t4, l2 = 4 * t4, u2 = 8 * t4;\n return this.uint8[o2 + 0] = e2, this.uint8[o2 + 1] = r2, this.float32[l2 + 1] = n2, this.float32[l2 + 2] = i2, this.int16[u2 + 6] = s2, this.int16[u2 + 7] = a2, t4;\n }\n }\n As.prototype.bytesPerElement = 16, wi(\"StructArrayLayout2ub2f2i16\", As);\n class Ss extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 3 * t4;\n return this.uint16[i2 + 0] = e2, this.uint16[i2 + 1] = r2, this.uint16[i2 + 2] = n2, t4;\n }\n }\n Ss.prototype.bytesPerElement = 6, wi(\"StructArrayLayout3ui6\", Ss);\n class ks extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2) {\n const g2 = this.length;\n return this.resize(g2 + 1), this.emplace(g2, t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2, g2) {\n const x2 = 24 * t4, v2 = 12 * t4, b2 = 48 * t4;\n return this.int16[x2 + 0] = e2, this.int16[x2 + 1] = r2, this.uint16[x2 + 2] = n2, this.uint16[x2 + 3] = i2, this.uint32[v2 + 2] = s2, this.uint32[v2 + 3] = a2, this.uint32[v2 + 4] = o2, this.uint16[x2 + 10] = l2, this.uint16[x2 + 11] = u2, this.uint16[x2 + 12] = c2, this.float32[v2 + 7] = h2, this.float32[v2 + 8] = p2, this.uint8[b2 + 36] = f2, this.uint8[b2 + 37] = d2, this.uint8[b2 + 38] = y2, this.uint32[v2 + 10] = m2, this.int16[x2 + 22] = g2, t4;\n }\n }\n ks.prototype.bytesPerElement = 48, wi(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\", ks);\n class Ms extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2, g2, x2, v2, b2, w2, _2, A3, S2, k2, M2, I2) {\n const z2 = this.length;\n return this.resize(z2 + 1), this.emplace(z2, t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2, g2, x2, v2, b2, w2, _2, A3, S2, k2, M2, I2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2, g2, x2, v2, b2, w2, _2, A3, S2, k2, M2, I2, z2) {\n const P2 = 32 * t4, C3 = 16 * t4;\n return this.int16[P2 + 0] = e2, this.int16[P2 + 1] = r2, this.int16[P2 + 2] = n2, this.int16[P2 + 3] = i2, this.int16[P2 + 4] = s2, this.int16[P2 + 5] = a2, this.int16[P2 + 6] = o2, this.int16[P2 + 7] = l2, this.uint16[P2 + 8] = u2, this.uint16[P2 + 9] = c2, this.uint16[P2 + 10] = h2, this.uint16[P2 + 11] = p2, this.uint16[P2 + 12] = f2, this.uint16[P2 + 13] = d2, this.uint16[P2 + 14] = y2, this.uint16[P2 + 15] = m2, this.uint16[P2 + 16] = g2, this.uint16[P2 + 17] = x2, this.uint16[P2 + 18] = v2, this.uint16[P2 + 19] = b2, this.uint16[P2 + 20] = w2, this.uint16[P2 + 21] = _2, this.uint16[P2 + 22] = A3, this.uint32[C3 + 12] = S2, this.float32[C3 + 13] = k2, this.float32[C3 + 14] = M2, this.uint16[P2 + 30] = I2, this.uint16[P2 + 31] = z2, t4;\n }\n }\n Ms.prototype.bytesPerElement = 64, wi(\"StructArrayLayout8i15ui1ul2f2ui64\", Ms);\n class Is extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4) {\n const e2 = this.length;\n return this.resize(e2 + 1), this.emplace(e2, t4);\n }\n emplace(t4, e2) {\n return this.float32[1 * t4 + 0] = e2, t4;\n }\n }\n Is.prototype.bytesPerElement = 4, wi(\"StructArrayLayout1f4\", Is);\n class zs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 3 * t4;\n return this.uint16[6 * t4 + 0] = e2, this.float32[i2 + 1] = r2, this.float32[i2 + 2] = n2, t4;\n }\n }\n zs.prototype.bytesPerElement = 12, wi(\"StructArrayLayout1ui2f12\", zs);\n class Ps extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 4 * t4;\n return this.uint32[2 * t4 + 0] = e2, this.uint16[i2 + 2] = r2, this.uint16[i2 + 3] = n2, t4;\n }\n }\n Ps.prototype.bytesPerElement = 8, wi(\"StructArrayLayout1ul2ui8\", Ps);\n class Cs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2) {\n const r2 = this.length;\n return this.resize(r2 + 1), this.emplace(r2, t4, e2);\n }\n emplace(t4, e2, r2) {\n const n2 = 2 * t4;\n return this.uint16[n2 + 0] = e2, this.uint16[n2 + 1] = r2, t4;\n }\n }\n Cs.prototype.bytesPerElement = 4, wi(\"StructArrayLayout2ui4\", Cs);\n class Bs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4) {\n const e2 = this.length;\n return this.resize(e2 + 1), this.emplace(e2, t4);\n }\n emplace(t4, e2) {\n return this.uint16[1 * t4 + 0] = e2, t4;\n }\n }\n Bs.prototype.bytesPerElement = 2, wi(\"StructArrayLayout1ui2\", Bs);\n class Vs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2) {\n const i2 = this.length;\n return this.resize(i2 + 1), this.emplace(i2, t4, e2, r2, n2);\n }\n emplace(t4, e2, r2, n2, i2) {\n const s2 = 4 * t4;\n return this.float32[s2 + 0] = e2, this.float32[s2 + 1] = r2, this.float32[s2 + 2] = n2, this.float32[s2 + 3] = i2, t4;\n }\n }\n Vs.prototype.bytesPerElement = 16, wi(\"StructArrayLayout4f16\", Vs);\n class Es extends as {\n get anchorPointX() {\n return this._structArray.int16[this._pos2 + 0];\n }\n get anchorPointY() {\n return this._structArray.int16[this._pos2 + 1];\n }\n get x1() {\n return this._structArray.int16[this._pos2 + 2];\n }\n get y1() {\n return this._structArray.int16[this._pos2 + 3];\n }\n get x2() {\n return this._structArray.int16[this._pos2 + 4];\n }\n get y2() {\n return this._structArray.int16[this._pos2 + 5];\n }\n get featureIndex() {\n return this._structArray.uint32[this._pos4 + 3];\n }\n get sourceLayerIndex() {\n return this._structArray.uint16[this._pos2 + 8];\n }\n get bucketIndex() {\n return this._structArray.uint16[this._pos2 + 9];\n }\n get anchorPoint() {\n return new s(this.anchorPointX, this.anchorPointY);\n }\n }\n Es.prototype.size = 20;\n class Fs extends bs {\n get(t4) {\n return new Es(this, t4);\n }\n }\n wi(\"CollisionBoxArray\", Fs);\n class Ts extends as {\n get anchorX() {\n return this._structArray.int16[this._pos2 + 0];\n }\n get anchorY() {\n return this._structArray.int16[this._pos2 + 1];\n }\n get glyphStartIndex() {\n return this._structArray.uint16[this._pos2 + 2];\n }\n get numGlyphs() {\n return this._structArray.uint16[this._pos2 + 3];\n }\n get vertexStartIndex() {\n return this._structArray.uint32[this._pos4 + 2];\n }\n get lineStartIndex() {\n return this._structArray.uint32[this._pos4 + 3];\n }\n get lineLength() {\n return this._structArray.uint32[this._pos4 + 4];\n }\n get segment() {\n return this._structArray.uint16[this._pos2 + 10];\n }\n get lowerSize() {\n return this._structArray.uint16[this._pos2 + 11];\n }\n get upperSize() {\n return this._structArray.uint16[this._pos2 + 12];\n }\n get lineOffsetX() {\n return this._structArray.float32[this._pos4 + 7];\n }\n get lineOffsetY() {\n return this._structArray.float32[this._pos4 + 8];\n }\n get writingMode() {\n return this._structArray.uint8[this._pos1 + 36];\n }\n get placedOrientation() {\n return this._structArray.uint8[this._pos1 + 37];\n }\n set placedOrientation(t4) {\n this._structArray.uint8[this._pos1 + 37] = t4;\n }\n get hidden() {\n return this._structArray.uint8[this._pos1 + 38];\n }\n set hidden(t4) {\n this._structArray.uint8[this._pos1 + 38] = t4;\n }\n get crossTileID() {\n return this._structArray.uint32[this._pos4 + 10];\n }\n set crossTileID(t4) {\n this._structArray.uint32[this._pos4 + 10] = t4;\n }\n get associatedIconIndex() {\n return this._structArray.int16[this._pos2 + 22];\n }\n }\n Ts.prototype.size = 48;\n class $s extends ks {\n get(t4) {\n return new Ts(this, t4);\n }\n }\n wi(\"PlacedSymbolArray\", $s);\n class Ls extends as {\n get anchorX() {\n return this._structArray.int16[this._pos2 + 0];\n }\n get anchorY() {\n return this._structArray.int16[this._pos2 + 1];\n }\n get rightJustifiedTextSymbolIndex() {\n return this._structArray.int16[this._pos2 + 2];\n }\n get centerJustifiedTextSymbolIndex() {\n return this._structArray.int16[this._pos2 + 3];\n }\n get leftJustifiedTextSymbolIndex() {\n return this._structArray.int16[this._pos2 + 4];\n }\n get verticalPlacedTextSymbolIndex() {\n return this._structArray.int16[this._pos2 + 5];\n }\n get placedIconSymbolIndex() {\n return this._structArray.int16[this._pos2 + 6];\n }\n get verticalPlacedIconSymbolIndex() {\n return this._structArray.int16[this._pos2 + 7];\n }\n get key() {\n return this._structArray.uint16[this._pos2 + 8];\n }\n get textBoxStartIndex() {\n return this._structArray.uint16[this._pos2 + 9];\n }\n get textBoxEndIndex() {\n return this._structArray.uint16[this._pos2 + 10];\n }\n get verticalTextBoxStartIndex() {\n return this._structArray.uint16[this._pos2 + 11];\n }\n get verticalTextBoxEndIndex() {\n return this._structArray.uint16[this._pos2 + 12];\n }\n get iconBoxStartIndex() {\n return this._structArray.uint16[this._pos2 + 13];\n }\n get iconBoxEndIndex() {\n return this._structArray.uint16[this._pos2 + 14];\n }\n get verticalIconBoxStartIndex() {\n return this._structArray.uint16[this._pos2 + 15];\n }\n get verticalIconBoxEndIndex() {\n return this._structArray.uint16[this._pos2 + 16];\n }\n get featureIndex() {\n return this._structArray.uint16[this._pos2 + 17];\n }\n get numHorizontalGlyphVertices() {\n return this._structArray.uint16[this._pos2 + 18];\n }\n get numVerticalGlyphVertices() {\n return this._structArray.uint16[this._pos2 + 19];\n }\n get numIconVertices() {\n return this._structArray.uint16[this._pos2 + 20];\n }\n get numVerticalIconVertices() {\n return this._structArray.uint16[this._pos2 + 21];\n }\n get useRuntimeCollisionCircles() {\n return this._structArray.uint16[this._pos2 + 22];\n }\n get crossTileID() {\n return this._structArray.uint32[this._pos4 + 12];\n }\n set crossTileID(t4) {\n this._structArray.uint32[this._pos4 + 12] = t4;\n }\n get textBoxScale() {\n return this._structArray.float32[this._pos4 + 13];\n }\n get collisionCircleDiameter() {\n return this._structArray.float32[this._pos4 + 14];\n }\n get textAnchorOffsetStartIndex() {\n return this._structArray.uint16[this._pos2 + 30];\n }\n get textAnchorOffsetEndIndex() {\n return this._structArray.uint16[this._pos2 + 31];\n }\n }\n Ls.prototype.size = 64;\n class Ds extends Ms {\n get(t4) {\n return new Ls(this, t4);\n }\n }\n wi(\"SymbolInstanceArray\", Ds);\n class Os extends Is {\n getoffsetX(t4) {\n return this.float32[1 * t4 + 0];\n }\n }\n wi(\"GlyphOffsetArray\", Os);\n class js extends hs {\n getx(t4) {\n return this.int16[3 * t4 + 0];\n }\n gety(t4) {\n return this.int16[3 * t4 + 1];\n }\n gettileUnitDistanceFromAnchor(t4) {\n return this.int16[3 * t4 + 2];\n }\n }\n wi(\"SymbolLineVertexArray\", js);\n class Rs extends as {\n get textAnchor() {\n return this._structArray.uint16[this._pos2 + 0];\n }\n get textOffset0() {\n return this._structArray.float32[this._pos4 + 1];\n }\n get textOffset1() {\n return this._structArray.float32[this._pos4 + 2];\n }\n }\n Rs.prototype.size = 12;\n class Us extends zs {\n get(t4) {\n return new Rs(this, t4);\n }\n }\n wi(\"TextAnchorOffsetArray\", Us);\n class qs extends as {\n get featureIndex() {\n return this._structArray.uint32[this._pos4 + 0];\n }\n get sourceLayerIndex() {\n return this._structArray.uint16[this._pos2 + 2];\n }\n get bucketIndex() {\n return this._structArray.uint16[this._pos2 + 3];\n }\n }\n qs.prototype.size = 8;\n class Ns extends Ps {\n get(t4) {\n return new qs(this, t4);\n }\n }\n wi(\"FeatureIndexArray\", Ns);\n class Zs extends cs {\n }\n class Gs extends cs {\n }\n class Ks extends cs {\n }\n class Xs extends fs {\n }\n class Hs extends ds {\n }\n class Ys extends ys {\n }\n class Js extends ms {\n }\n class Ws extends gs {\n }\n class Qs extends xs {\n }\n class ta extends vs {\n }\n class ea extends ws {\n }\n class ra extends As {\n }\n class na extends Ss {\n }\n class ia extends Cs {\n }\n const sa = ls([{ name: \"a_pos\", components: 2, type: \"Int16\" }], 4), { members: aa } = sa;\n class oa {\n constructor(t4 = []) {\n this.segments = t4;\n }\n prepareSegment(t4, e2, r2, n2) {\n let i2 = this.segments[this.segments.length - 1];\n return t4 > oa.MAX_VERTEX_ARRAY_LENGTH && A2(`Max vertices per segment is ${oa.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t4}`), (!i2 || i2.vertexLength + t4 > oa.MAX_VERTEX_ARRAY_LENGTH || i2.sortKey !== n2) && (i2 = { vertexOffset: e2.length, primitiveOffset: r2.length, vertexLength: 0, primitiveLength: 0 }, void 0 !== n2 && (i2.sortKey = n2), this.segments.push(i2)), i2;\n }\n get() {\n return this.segments;\n }\n destroy() {\n for (const t4 of this.segments) for (const e2 in t4.vaos) t4.vaos[e2].destroy();\n }\n static simpleSegment(t4, e2, r2, n2) {\n return new oa([{ vertexOffset: t4, primitiveOffset: e2, vertexLength: r2, primitiveLength: n2, vaos: {}, sortKey: 0 }]);\n }\n }\n function la(t4, e2) {\n return 256 * (t4 = y(Math.floor(t4), 0, 255)) + y(Math.floor(e2), 0, 255);\n }\n oa.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, wi(\"SegmentVector\", oa);\n const ua = ls([{ name: \"a_pattern_from\", components: 4, type: \"Uint16\" }, { name: \"a_pattern_to\", components: 4, type: \"Uint16\" }, { name: \"a_pixel_ratio_from\", components: 1, type: \"Uint16\" }, { name: \"a_pixel_ratio_to\", components: 1, type: \"Uint16\" }]);\n var ca = { exports: {} }, ha = { exports: {} };\n ha.exports = function(t4, e2) {\n var r2, n2, i2, s2, a2, o2, l2, u2;\n for (n2 = t4.length - (r2 = 3 & t4.length), i2 = e2, a2 = 3432918353, o2 = 461845907, u2 = 0; u2 < n2; ) l2 = 255 & t4.charCodeAt(u2) | (255 & t4.charCodeAt(++u2)) << 8 | (255 & t4.charCodeAt(++u2)) << 16 | (255 & t4.charCodeAt(++u2)) << 24, ++u2, i2 = 27492 + (65535 & (s2 = 5 * (65535 & (i2 = (i2 ^= l2 = (65535 & (l2 = (l2 = (65535 & l2) * a2 + (((l2 >>> 16) * a2 & 65535) << 16) & 4294967295) << 15 | l2 >>> 17)) * o2 + (((l2 >>> 16) * o2 & 65535) << 16) & 4294967295) << 13 | i2 >>> 19)) + ((5 * (i2 >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (s2 >>> 16) & 65535) << 16);\n switch (l2 = 0, r2) {\n case 3:\n l2 ^= (255 & t4.charCodeAt(u2 + 2)) << 16;\n case 2:\n l2 ^= (255 & t4.charCodeAt(u2 + 1)) << 8;\n case 1:\n i2 ^= l2 = (65535 & (l2 = (l2 = (65535 & (l2 ^= 255 & t4.charCodeAt(u2))) * a2 + (((l2 >>> 16) * a2 & 65535) << 16) & 4294967295) << 15 | l2 >>> 17)) * o2 + (((l2 >>> 16) * o2 & 65535) << 16) & 4294967295;\n }\n return i2 ^= t4.length, i2 = 2246822507 * (65535 & (i2 ^= i2 >>> 16)) + ((2246822507 * (i2 >>> 16) & 65535) << 16) & 4294967295, i2 = 3266489909 * (65535 & (i2 ^= i2 >>> 13)) + ((3266489909 * (i2 >>> 16) & 65535) << 16) & 4294967295, (i2 ^= i2 >>> 16) >>> 0;\n };\n var pa = ha.exports, fa = { exports: {} };\n fa.exports = function(t4, e2) {\n for (var r2, n2 = t4.length, i2 = e2 ^ n2, s2 = 0; n2 >= 4; ) r2 = 1540483477 * (65535 & (r2 = 255 & t4.charCodeAt(s2) | (255 & t4.charCodeAt(++s2)) << 8 | (255 & t4.charCodeAt(++s2)) << 16 | (255 & t4.charCodeAt(++s2)) << 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16), i2 = 1540483477 * (65535 & i2) + ((1540483477 * (i2 >>> 16) & 65535) << 16) ^ (r2 = 1540483477 * (65535 & (r2 ^= r2 >>> 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16)), n2 -= 4, ++s2;\n switch (n2) {\n case 3:\n i2 ^= (255 & t4.charCodeAt(s2 + 2)) << 16;\n case 2:\n i2 ^= (255 & t4.charCodeAt(s2 + 1)) << 8;\n case 1:\n i2 = 1540483477 * (65535 & (i2 ^= 255 & t4.charCodeAt(s2))) + ((1540483477 * (i2 >>> 16) & 65535) << 16);\n }\n return i2 = 1540483477 * (65535 & (i2 ^= i2 >>> 13)) + ((1540483477 * (i2 >>> 16) & 65535) << 16), (i2 ^= i2 >>> 15) >>> 0;\n };\n var da = pa, ya = fa.exports;\n ca.exports = da, ca.exports.murmur3 = da, ca.exports.murmur2 = ya;\n var ma = r(ca.exports);\n class ga {\n constructor() {\n this.ids = [], this.positions = [], this.indexed = false;\n }\n add(t4, e2, r2, n2) {\n this.ids.push(xa(t4)), this.positions.push(e2, r2, n2);\n }\n getPositions(t4) {\n if (!this.indexed) throw new Error(\"Trying to get index, but feature positions are not indexed\");\n const e2 = xa(t4);\n let r2 = 0, n2 = this.ids.length - 1;\n for (; r2 < n2; ) {\n const t5 = r2 + n2 >> 1;\n this.ids[t5] >= e2 ? n2 = t5 : r2 = t5 + 1;\n }\n const i2 = [];\n for (; this.ids[r2] === e2; ) i2.push({ index: this.positions[3 * r2], start: this.positions[3 * r2 + 1], end: this.positions[3 * r2 + 2] }), r2++;\n return i2;\n }\n static serialize(t4, e2) {\n const r2 = new Float64Array(t4.ids), n2 = new Uint32Array(t4.positions);\n return va(r2, n2, 0, r2.length - 1), e2 && e2.push(r2.buffer, n2.buffer), { ids: r2, positions: n2 };\n }\n static deserialize(t4) {\n const e2 = new ga();\n return e2.ids = t4.ids, e2.positions = t4.positions, e2.indexed = true, e2;\n }\n }\n function xa(t4) {\n const e2 = +t4;\n return !isNaN(e2) && e2 <= Number.MAX_SAFE_INTEGER ? e2 : ma(String(t4));\n }\n function va(t4, e2, r2, n2) {\n for (; r2 < n2; ) {\n const i2 = t4[r2 + n2 >> 1];\n let s2 = r2 - 1, a2 = n2 + 1;\n for (; ; ) {\n do {\n s2++;\n } while (t4[s2] < i2);\n do {\n a2--;\n } while (t4[a2] > i2);\n if (s2 >= a2) break;\n ba(t4, s2, a2), ba(e2, 3 * s2, 3 * a2), ba(e2, 3 * s2 + 1, 3 * a2 + 1), ba(e2, 3 * s2 + 2, 3 * a2 + 2);\n }\n a2 - r2 < n2 - a2 ? (va(t4, e2, r2, a2), r2 = a2 + 1) : (va(t4, e2, a2 + 1, n2), n2 = a2);\n }\n }\n function ba(t4, e2, r2) {\n const n2 = t4[e2];\n t4[e2] = t4[r2], t4[r2] = n2;\n }\n wi(\"FeaturePositionMap\", ga);\n class wa {\n constructor(t4, e2) {\n this.gl = t4.gl, this.location = e2;\n }\n }\n class _a extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = 0;\n }\n set(t4) {\n this.current !== t4 && (this.current = t4, this.gl.uniform1f(this.location, t4));\n }\n }\n class Aa extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = [0, 0, 0, 0];\n }\n set(t4) {\n t4[0] === this.current[0] && t4[1] === this.current[1] && t4[2] === this.current[2] && t4[3] === this.current[3] || (this.current = t4, this.gl.uniform4f(this.location, t4[0], t4[1], t4[2], t4[3]));\n }\n }\n class Sa extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = Kt.transparent;\n }\n set(t4) {\n t4.r === this.current.r && t4.g === this.current.g && t4.b === this.current.b && t4.a === this.current.a || (this.current = t4, this.gl.uniform4f(this.location, t4.r, t4.g, t4.b, t4.a));\n }\n }\n const ka = new Float32Array(16);\n function Ma(t4) {\n return [la(255 * t4.r, 255 * t4.g), la(255 * t4.b, 255 * t4.a)];\n }\n class Ia {\n constructor(t4, e2, r2) {\n this.value = t4, this.uniformNames = e2.map((t5) => `u_${t5}`), this.type = r2;\n }\n setUniform(t4, e2, r2) {\n t4.set(r2.constantOr(this.value));\n }\n getBinding(t4, e2, r2) {\n return \"color\" === this.type ? new Sa(t4, e2) : new _a(t4, e2);\n }\n }\n class za {\n constructor(t4, e2) {\n this.uniformNames = e2.map((t5) => `u_${t5}`), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1;\n }\n setConstantPatternPositions(t4, e2) {\n this.pixelRatioFrom = e2.pixelRatio, this.pixelRatioTo = t4.pixelRatio, this.patternFrom = e2.tlbr, this.patternTo = t4.tlbr;\n }\n setUniform(t4, e2, r2, n2) {\n const i2 = \"u_pattern_to\" === n2 ? this.patternTo : \"u_pattern_from\" === n2 ? this.patternFrom : \"u_pixel_ratio_to\" === n2 ? this.pixelRatioTo : \"u_pixel_ratio_from\" === n2 ? this.pixelRatioFrom : null;\n i2 && t4.set(i2);\n }\n getBinding(t4, e2, r2) {\n return \"u_pattern\" === r2.substr(0, 9) ? new Aa(t4, e2) : new _a(t4, e2);\n }\n }\n class Pa {\n constructor(t4, e2, r2, n2) {\n this.expression = t4, this.type = r2, this.maxValue = 0, this.paintVertexAttributes = e2.map((t5) => ({ name: `a_${t5}`, type: \"Float32\", components: \"color\" === r2 ? 2 : 1, offset: 0 })), this.paintVertexArray = new n2();\n }\n populatePaintArray(t4, e2, r2, n2, i2) {\n const s2 = this.paintVertexArray.length, a2 = this.expression.evaluate(new Ui(0), e2, {}, n2, [], i2);\n this.paintVertexArray.resize(t4), this._setPaintValue(s2, t4, a2);\n }\n updatePaintArray(t4, e2, r2, n2) {\n const i2 = this.expression.evaluate({ zoom: 0 }, r2, n2);\n this._setPaintValue(t4, e2, i2);\n }\n _setPaintValue(t4, e2, r2) {\n if (\"color\" === this.type) {\n const n2 = Ma(r2);\n for (let r3 = t4; r3 < e2; r3++) this.paintVertexArray.emplace(r3, n2[0], n2[1]);\n } else {\n for (let n2 = t4; n2 < e2; n2++) this.paintVertexArray.emplace(n2, r2);\n this.maxValue = Math.max(this.maxValue, Math.abs(r2));\n }\n }\n upload(t4) {\n this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t4.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent));\n }\n destroy() {\n this.paintVertexBuffer && this.paintVertexBuffer.destroy();\n }\n }\n class Ca {\n constructor(t4, e2, r2, n2, i2, s2) {\n this.expression = t4, this.uniformNames = e2.map((t5) => `u_${t5}_t`), this.type = r2, this.useIntegerZoom = n2, this.zoom = i2, this.maxValue = 0, this.paintVertexAttributes = e2.map((t5) => ({ name: `a_${t5}`, type: \"Float32\", components: \"color\" === r2 ? 4 : 2, offset: 0 })), this.paintVertexArray = new s2();\n }\n populatePaintArray(t4, e2, r2, n2, i2) {\n const s2 = this.expression.evaluate(new Ui(this.zoom), e2, {}, n2, [], i2), a2 = this.expression.evaluate(new Ui(this.zoom + 1), e2, {}, n2, [], i2), o2 = this.paintVertexArray.length;\n this.paintVertexArray.resize(t4), this._setPaintValue(o2, t4, s2, a2);\n }\n updatePaintArray(t4, e2, r2, n2) {\n const i2 = this.expression.evaluate({ zoom: this.zoom }, r2, n2), s2 = this.expression.evaluate({ zoom: this.zoom + 1 }, r2, n2);\n this._setPaintValue(t4, e2, i2, s2);\n }\n _setPaintValue(t4, e2, r2, n2) {\n if (\"color\" === this.type) {\n const i2 = Ma(r2), s2 = Ma(n2);\n for (let r3 = t4; r3 < e2; r3++) this.paintVertexArray.emplace(r3, i2[0], i2[1], s2[0], s2[1]);\n } else {\n for (let i2 = t4; i2 < e2; i2++) this.paintVertexArray.emplace(i2, r2, n2);\n this.maxValue = Math.max(this.maxValue, Math.abs(r2), Math.abs(n2));\n }\n }\n upload(t4) {\n this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t4.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent));\n }\n destroy() {\n this.paintVertexBuffer && this.paintVertexBuffer.destroy();\n }\n setUniform(t4, e2) {\n const r2 = this.useIntegerZoom ? Math.floor(e2.zoom) : e2.zoom, n2 = y(this.expression.interpolationFactor(r2, this.zoom, this.zoom + 1), 0, 1);\n t4.set(n2);\n }\n getBinding(t4, e2, r2) {\n return new _a(t4, e2);\n }\n }\n class Ba {\n constructor(t4, e2, r2, n2, i2, s2) {\n this.expression = t4, this.type = e2, this.useIntegerZoom = r2, this.zoom = n2, this.layerId = s2, this.zoomInPaintVertexArray = new i2(), this.zoomOutPaintVertexArray = new i2();\n }\n populatePaintArray(t4, e2, r2) {\n const n2 = this.zoomInPaintVertexArray.length;\n this.zoomInPaintVertexArray.resize(t4), this.zoomOutPaintVertexArray.resize(t4), this._setPaintValues(n2, t4, e2.patterns && e2.patterns[this.layerId], r2);\n }\n updatePaintArray(t4, e2, r2, n2, i2) {\n this._setPaintValues(t4, e2, r2.patterns && r2.patterns[this.layerId], i2);\n }\n _setPaintValues(t4, e2, r2, n2) {\n if (!n2 || !r2) return;\n const { min: i2, mid: s2, max: a2 } = r2, o2 = n2[i2], l2 = n2[s2], u2 = n2[a2];\n if (o2 && l2 && u2) for (let r3 = t4; r3 < e2; r3++) this.zoomInPaintVertexArray.emplace(r3, l2.tl[0], l2.tl[1], l2.br[0], l2.br[1], o2.tl[0], o2.tl[1], o2.br[0], o2.br[1], l2.pixelRatio, o2.pixelRatio), this.zoomOutPaintVertexArray.emplace(r3, l2.tl[0], l2.tl[1], l2.br[0], l2.br[1], u2.tl[0], u2.tl[1], u2.br[0], u2.br[1], l2.pixelRatio, u2.pixelRatio);\n }\n upload(t4) {\n this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = t4.createVertexBuffer(this.zoomInPaintVertexArray, ua.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = t4.createVertexBuffer(this.zoomOutPaintVertexArray, ua.members, this.expression.isStateDependent));\n }\n destroy() {\n this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy();\n }\n }\n class Va {\n constructor(t4, e2, r2) {\n this.binders = {}, this._buffers = [];\n const n2 = [];\n for (const i2 in t4.paint._values) {\n if (!r2(i2)) continue;\n const s2 = t4.paint.get(i2);\n if (!(s2 instanceof Hi && an(s2.property.specification))) continue;\n const a2 = Fa(i2, t4.type), o2 = s2.value, l2 = s2.property.specification.type, u2 = s2.property.useIntegerZoom, c2 = s2.property.specification[\"property-type\"], h2 = \"cross-faded\" === c2 || \"cross-faded-data-driven\" === c2;\n if (\"constant\" === o2.kind) this.binders[i2] = h2 ? new za(o2.value, a2) : new Ia(o2.value, a2, l2), n2.push(`/u_${i2}`);\n else if (\"source\" === o2.kind || h2) {\n const r3 = Ta(i2, l2, \"source\");\n this.binders[i2] = h2 ? new Ba(o2, l2, u2, e2, r3, t4.id) : new Pa(o2, a2, l2, r3), n2.push(`/a_${i2}`);\n } else {\n const t5 = Ta(i2, l2, \"composite\");\n this.binders[i2] = new Ca(o2, a2, l2, u2, e2, t5), n2.push(`/z_${i2}`);\n }\n }\n this.cacheKey = n2.sort().join(\"\");\n }\n getMaxValue(t4) {\n const e2 = this.binders[t4];\n return e2 instanceof Pa || e2 instanceof Ca ? e2.maxValue : 0;\n }\n populatePaintArrays(t4, e2, r2, n2, i2) {\n for (const s2 in this.binders) {\n const a2 = this.binders[s2];\n (a2 instanceof Pa || a2 instanceof Ca || a2 instanceof Ba) && a2.populatePaintArray(t4, e2, r2, n2, i2);\n }\n }\n setConstantPatternPositions(t4, e2) {\n for (const r2 in this.binders) {\n const n2 = this.binders[r2];\n n2 instanceof za && n2.setConstantPatternPositions(t4, e2);\n }\n }\n updatePaintArrays(t4, e2, r2, n2, i2) {\n let s2 = false;\n for (const a2 in t4) {\n const o2 = e2.getPositions(a2);\n for (const e3 of o2) {\n const o3 = r2.feature(e3.index);\n for (const r3 in this.binders) {\n const l2 = this.binders[r3];\n if ((l2 instanceof Pa || l2 instanceof Ca || l2 instanceof Ba) && true === l2.expression.isStateDependent) {\n const u2 = n2.paint.get(r3);\n l2.expression = u2.value, l2.updatePaintArray(e3.start, e3.end, o3, t4[a2], i2), s2 = true;\n }\n }\n }\n }\n return s2;\n }\n defines() {\n const t4 = [];\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n (r2 instanceof Ia || r2 instanceof za) && t4.push(...r2.uniformNames.map((t5) => `#define HAS_UNIFORM_${t5}`));\n }\n return t4;\n }\n getBinderAttributes() {\n const t4 = [];\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n if (r2 instanceof Pa || r2 instanceof Ca) for (let e3 = 0; e3 < r2.paintVertexAttributes.length; e3++) t4.push(r2.paintVertexAttributes[e3].name);\n else if (r2 instanceof Ba) for (let e3 = 0; e3 < ua.members.length; e3++) t4.push(ua.members[e3].name);\n }\n return t4;\n }\n getBinderUniforms() {\n const t4 = [];\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n if (r2 instanceof Ia || r2 instanceof za || r2 instanceof Ca) for (const e3 of r2.uniformNames) t4.push(e3);\n }\n return t4;\n }\n getPaintVertexBuffers() {\n return this._buffers;\n }\n getUniforms(t4, e2) {\n const r2 = [];\n for (const n2 in this.binders) {\n const i2 = this.binders[n2];\n if (i2 instanceof Ia || i2 instanceof za || i2 instanceof Ca) {\n for (const s2 of i2.uniformNames) if (e2[s2]) {\n const a2 = i2.getBinding(t4, e2[s2], s2);\n r2.push({ name: s2, property: n2, binding: a2 });\n }\n }\n }\n return r2;\n }\n setUniforms(t4, e2, r2, n2) {\n for (const { name: t5, property: i2, binding: s2 } of e2) this.binders[i2].setUniform(s2, n2, r2.get(i2), t5);\n }\n updatePaintBuffers(t4) {\n this._buffers = [];\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n if (t4 && r2 instanceof Ba) {\n const e3 = 2 === t4.fromScale ? r2.zoomInPaintVertexBuffer : r2.zoomOutPaintVertexBuffer;\n e3 && this._buffers.push(e3);\n } else (r2 instanceof Pa || r2 instanceof Ca) && r2.paintVertexBuffer && this._buffers.push(r2.paintVertexBuffer);\n }\n }\n upload(t4) {\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n (r2 instanceof Pa || r2 instanceof Ca || r2 instanceof Ba) && r2.upload(t4);\n }\n this.updatePaintBuffers();\n }\n destroy() {\n for (const t4 in this.binders) {\n const e2 = this.binders[t4];\n (e2 instanceof Pa || e2 instanceof Ca || e2 instanceof Ba) && e2.destroy();\n }\n }\n }\n class Ea {\n constructor(t4, e2, r2 = () => true) {\n this.programConfigurations = {};\n for (const n2 of t4) this.programConfigurations[n2.id] = new Va(n2, e2, r2);\n this.needsUpload = false, this._featureMap = new ga(), this._bufferOffset = 0;\n }\n populatePaintArrays(t4, e2, r2, n2, i2, s2) {\n for (const r3 in this.programConfigurations) this.programConfigurations[r3].populatePaintArrays(t4, e2, n2, i2, s2);\n void 0 !== e2.id && this._featureMap.add(e2.id, r2, this._bufferOffset, t4), this._bufferOffset = t4, this.needsUpload = true;\n }\n updatePaintArrays(t4, e2, r2, n2) {\n for (const i2 of r2) this.needsUpload = this.programConfigurations[i2.id].updatePaintArrays(t4, this._featureMap, e2, i2, n2) || this.needsUpload;\n }\n get(t4) {\n return this.programConfigurations[t4];\n }\n upload(t4) {\n if (this.needsUpload) {\n for (const e2 in this.programConfigurations) this.programConfigurations[e2].upload(t4);\n this.needsUpload = false;\n }\n }\n destroy() {\n for (const t4 in this.programConfigurations) this.programConfigurations[t4].destroy();\n }\n }\n function Fa(t4, e2) {\n return { \"text-opacity\": [\"opacity\"], \"icon-opacity\": [\"opacity\"], \"text-color\": [\"fill_color\"], \"icon-color\": [\"fill_color\"], \"text-halo-color\": [\"halo_color\"], \"icon-halo-color\": [\"halo_color\"], \"text-halo-blur\": [\"halo_blur\"], \"icon-halo-blur\": [\"halo_blur\"], \"text-halo-width\": [\"halo_width\"], \"icon-halo-width\": [\"halo_width\"], \"line-gap-width\": [\"gapwidth\"], \"line-pattern\": [\"pattern_to\", \"pattern_from\", \"pixel_ratio_to\", \"pixel_ratio_from\"], \"fill-pattern\": [\"pattern_to\", \"pattern_from\", \"pixel_ratio_to\", \"pixel_ratio_from\"], \"fill-extrusion-pattern\": [\"pattern_to\", \"pattern_from\", \"pixel_ratio_to\", \"pixel_ratio_from\"] }[t4] || [t4.replace(`${e2}-`, \"\").replace(/-/g, \"_\")];\n }\n function Ta(t4, e2, r2) {\n const n2 = { color: { source: ys, composite: Vs }, number: { source: Is, composite: ys } }, i2 = function(t5) {\n return { \"line-pattern\": { source: Js, composite: Js }, \"fill-pattern\": { source: Js, composite: Js }, \"fill-extrusion-pattern\": { source: Js, composite: Js } }[t5];\n }(t4);\n return i2 && i2[r2] || n2[e2][r2];\n }\n wi(\"ConstantBinder\", Ia), wi(\"CrossFadedConstantBinder\", za), wi(\"SourceExpressionBinder\", Pa), wi(\"CrossFadedCompositeBinder\", Ba), wi(\"CompositeExpressionBinder\", Ca), wi(\"ProgramConfiguration\", Va, { omit: [\"_buffers\"] }), wi(\"ProgramConfigurationSet\", Ea);\n const $a = 8192, La = Math.pow(2, 14) - 1, Da = -La - 1;\n function Oa(t4) {\n const e2 = $a / t4.extent, r2 = t4.loadGeometry();\n for (let t5 = 0; t5 < r2.length; t5++) {\n const n2 = r2[t5];\n for (let t6 = 0; t6 < n2.length; t6++) {\n const r3 = n2[t6], i2 = Math.round(r3.x * e2), s2 = Math.round(r3.y * e2);\n r3.x = y(i2, Da, La), r3.y = y(s2, Da, La), (i2 < r3.x || i2 > r3.x + 1 || s2 < r3.y || s2 > r3.y + 1) && A2(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\");\n }\n }\n return r2;\n }\n function ja(t4, e2) {\n return { type: t4.type, id: t4.id, properties: t4.properties, geometry: e2 ? Oa(t4) : [] };\n }\n function Ra(t4, e2, r2, n2, i2) {\n t4.emplaceBack(2 * e2 + (n2 + 1) / 2, 2 * r2 + (i2 + 1) / 2);\n }\n class Ua {\n constructor(t4) {\n this.zoom = t4.zoom, this.overscaling = t4.overscaling, this.layers = t4.layers, this.layerIds = this.layers.map((t5) => t5.id), this.index = t4.index, this.hasPattern = false, this.layoutVertexArray = new Gs(), this.indexArray = new na(), this.segments = new oa(), this.programConfigurations = new Ea(t4.layers, t4.zoom), this.stateDependentLayerIds = this.layers.filter((t5) => t5.isStateDependent()).map((t5) => t5.id);\n }\n populate(t4, e2, r2) {\n const n2 = this.layers[0], i2 = [];\n let s2 = null, a2 = false;\n \"circle\" === n2.type && (s2 = n2.layout.get(\"circle-sort-key\"), a2 = !s2.isConstant());\n for (const { feature: e3, id: n3, index: o2, sourceLayerIndex: l2 } of t4) {\n const t5 = this.layers[0]._featureFilter.needGeometry, u2 = ja(e3, t5);\n if (!this.layers[0]._featureFilter.filter(new Ui(this.zoom), u2, r2)) continue;\n const c2 = a2 ? s2.evaluate(u2, {}, r2) : void 0, h2 = { id: n3, properties: e3.properties, type: e3.type, sourceLayerIndex: l2, index: o2, geometry: t5 ? u2.geometry : Oa(e3), patterns: {}, sortKey: c2 };\n i2.push(h2);\n }\n a2 && i2.sort((t5, e3) => t5.sortKey - e3.sortKey);\n for (const n3 of i2) {\n const { geometry: i3, index: s3, sourceLayerIndex: a3 } = n3, o2 = t4[s3].feature;\n this.addFeature(n3, i3, s3, r2), e2.featureIndex.insert(o2, i3, s3, a3, this.index);\n }\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t4, e2, this.stateDependentLayers, r2);\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length;\n }\n uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n }\n upload(t4) {\n this.uploaded || (this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, aa), this.indexBuffer = t4.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t4), this.uploaded = true;\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());\n }\n addFeature(t4, e2, r2, n2) {\n for (const r3 of e2) for (const e3 of r3) {\n const r4 = e3.x, n3 = e3.y;\n if (r4 < 0 || r4 >= $a || n3 < 0 || n3 >= $a) continue;\n const i2 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, t4.sortKey), s2 = i2.vertexLength;\n Ra(this.layoutVertexArray, r4, n3, -1, -1), Ra(this.layoutVertexArray, r4, n3, 1, -1), Ra(this.layoutVertexArray, r4, n3, 1, 1), Ra(this.layoutVertexArray, r4, n3, -1, 1), this.indexArray.emplaceBack(s2, s2 + 1, s2 + 2), this.indexArray.emplaceBack(s2, s2 + 3, s2 + 2), i2.vertexLength += 4, i2.primitiveLength += 2;\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t4, r2, {}, n2);\n }\n }\n function qa(t4, e2) {\n for (let r2 = 0; r2 < t4.length; r2++) if (Wa(e2, t4[r2])) return true;\n for (let r2 = 0; r2 < e2.length; r2++) if (Wa(t4, e2[r2])) return true;\n return !!Ka(t4, e2);\n }\n function Na(t4, e2, r2) {\n return !!Wa(t4, e2) || !!Ha(e2, t4, r2);\n }\n function Za(t4, e2) {\n if (1 === t4.length) return Ja(e2, t4[0]);\n for (let r2 = 0; r2 < e2.length; r2++) {\n const n2 = e2[r2];\n for (let e3 = 0; e3 < n2.length; e3++) if (Wa(t4, n2[e3])) return true;\n }\n for (let r2 = 0; r2 < t4.length; r2++) if (Ja(e2, t4[r2])) return true;\n for (let r2 = 0; r2 < e2.length; r2++) if (Ka(t4, e2[r2])) return true;\n return false;\n }\n function Ga(t4, e2, r2) {\n if (t4.length > 1) {\n if (Ka(t4, e2)) return true;\n for (let n2 = 0; n2 < e2.length; n2++) if (Ha(e2[n2], t4, r2)) return true;\n }\n for (let n2 = 0; n2 < t4.length; n2++) if (Ha(t4[n2], e2, r2)) return true;\n return false;\n }\n function Ka(t4, e2) {\n if (0 === t4.length || 0 === e2.length) return false;\n for (let r2 = 0; r2 < t4.length - 1; r2++) {\n const n2 = t4[r2], i2 = t4[r2 + 1];\n for (let t5 = 0; t5 < e2.length - 1; t5++) if (Xa(n2, i2, e2[t5], e2[t5 + 1])) return true;\n }\n return false;\n }\n function Xa(t4, e2, r2, n2) {\n return S(t4, r2, n2) !== S(e2, r2, n2) && S(t4, e2, r2) !== S(t4, e2, n2);\n }\n function Ha(t4, e2, r2) {\n const n2 = r2 * r2;\n if (1 === e2.length) return t4.distSqr(e2[0]) < n2;\n for (let r3 = 1; r3 < e2.length; r3++) if (Ya(t4, e2[r3 - 1], e2[r3]) < n2) return true;\n return false;\n }\n function Ya(t4, e2, r2) {\n const n2 = e2.distSqr(r2);\n if (0 === n2) return t4.distSqr(e2);\n const i2 = ((t4.x - e2.x) * (r2.x - e2.x) + (t4.y - e2.y) * (r2.y - e2.y)) / n2;\n return t4.distSqr(i2 < 0 ? e2 : i2 > 1 ? r2 : r2.sub(e2)._mult(i2)._add(e2));\n }\n function Ja(t4, e2) {\n let r2, n2, i2, s2 = false;\n for (let a2 = 0; a2 < t4.length; a2++) {\n r2 = t4[a2];\n for (let t5 = 0, a3 = r2.length - 1; t5 < r2.length; a3 = t5++) n2 = r2[t5], i2 = r2[a3], n2.y > e2.y != i2.y > e2.y && e2.x < (i2.x - n2.x) * (e2.y - n2.y) / (i2.y - n2.y) + n2.x && (s2 = !s2);\n }\n return s2;\n }\n function Wa(t4, e2) {\n let r2 = false;\n for (let n2 = 0, i2 = t4.length - 1; n2 < t4.length; i2 = n2++) {\n const s2 = t4[n2], a2 = t4[i2];\n s2.y > e2.y != a2.y > e2.y && e2.x < (a2.x - s2.x) * (e2.y - s2.y) / (a2.y - s2.y) + s2.x && (r2 = !r2);\n }\n return r2;\n }\n function Qa(t4, e2, r2) {\n const n2 = r2[0], i2 = r2[2];\n if (t4.x < n2.x && e2.x < n2.x || t4.x > i2.x && e2.x > i2.x || t4.y < n2.y && e2.y < n2.y || t4.y > i2.y && e2.y > i2.y) return false;\n const s2 = S(t4, e2, r2[0]);\n return s2 !== S(t4, e2, r2[1]) || s2 !== S(t4, e2, r2[2]) || s2 !== S(t4, e2, r2[3]);\n }\n function to(t4, e2, r2) {\n const n2 = e2.paint.get(t4).value;\n return \"constant\" === n2.kind ? n2.value : r2.programConfigurations.get(e2.id).getMaxValue(t4);\n }\n function eo(t4) {\n return Math.sqrt(t4[0] * t4[0] + t4[1] * t4[1]);\n }\n function ro(t4, e2, r2, n2, i2) {\n if (!e2[0] && !e2[1]) return t4;\n const a2 = s.convert(e2)._mult(i2);\n \"viewport\" === r2 && a2._rotate(-n2);\n const o2 = [];\n for (let e3 = 0; e3 < t4.length; e3++) o2.push(t4[e3].sub(a2));\n return o2;\n }\n let no, io;\n wi(\"CircleBucket\", Ua, { omit: [\"layers\"] });\n var so = { get paint() {\n return io = io || new rs({ \"circle-radius\": new Wi(G.paint_circle[\"circle-radius\"]), \"circle-color\": new Wi(G.paint_circle[\"circle-color\"]), \"circle-blur\": new Wi(G.paint_circle[\"circle-blur\"]), \"circle-opacity\": new Wi(G.paint_circle[\"circle-opacity\"]), \"circle-translate\": new Ji(G.paint_circle[\"circle-translate\"]), \"circle-translate-anchor\": new Ji(G.paint_circle[\"circle-translate-anchor\"]), \"circle-pitch-scale\": new Ji(G.paint_circle[\"circle-pitch-scale\"]), \"circle-pitch-alignment\": new Ji(G.paint_circle[\"circle-pitch-alignment\"]), \"circle-stroke-width\": new Wi(G.paint_circle[\"circle-stroke-width\"]), \"circle-stroke-color\": new Wi(G.paint_circle[\"circle-stroke-color\"]), \"circle-stroke-opacity\": new Wi(G.paint_circle[\"circle-stroke-opacity\"]) });\n }, get layout() {\n return no = no || new rs({ \"circle-sort-key\": new Wi(G.layout_circle[\"circle-sort-key\"]) });\n } }, ao = 1e-6, oo = \"undefined\" != typeof Float32Array ? Float32Array : Array;\n function lo(t4) {\n return t4[0] = 1, t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[5] = 1, t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[10] = 1, t4[11] = 0, t4[12] = 0, t4[13] = 0, t4[14] = 0, t4[15] = 1, t4;\n }\n function uo(t4, e2, r2) {\n var n2 = e2[0], i2 = e2[1], s2 = e2[2], a2 = e2[3], o2 = e2[4], l2 = e2[5], u2 = e2[6], c2 = e2[7], h2 = e2[8], p2 = e2[9], f2 = e2[10], d2 = e2[11], y2 = e2[12], m2 = e2[13], g2 = e2[14], x2 = e2[15], v2 = r2[0], b2 = r2[1], w2 = r2[2], _2 = r2[3];\n return t4[0] = v2 * n2 + b2 * o2 + w2 * h2 + _2 * y2, t4[1] = v2 * i2 + b2 * l2 + w2 * p2 + _2 * m2, t4[2] = v2 * s2 + b2 * u2 + w2 * f2 + _2 * g2, t4[3] = v2 * a2 + b2 * c2 + w2 * d2 + _2 * x2, t4[4] = (v2 = r2[4]) * n2 + (b2 = r2[5]) * o2 + (w2 = r2[6]) * h2 + (_2 = r2[7]) * y2, t4[5] = v2 * i2 + b2 * l2 + w2 * p2 + _2 * m2, t4[6] = v2 * s2 + b2 * u2 + w2 * f2 + _2 * g2, t4[7] = v2 * a2 + b2 * c2 + w2 * d2 + _2 * x2, t4[8] = (v2 = r2[8]) * n2 + (b2 = r2[9]) * o2 + (w2 = r2[10]) * h2 + (_2 = r2[11]) * y2, t4[9] = v2 * i2 + b2 * l2 + w2 * p2 + _2 * m2, t4[10] = v2 * s2 + b2 * u2 + w2 * f2 + _2 * g2, t4[11] = v2 * a2 + b2 * c2 + w2 * d2 + _2 * x2, t4[12] = (v2 = r2[12]) * n2 + (b2 = r2[13]) * o2 + (w2 = r2[14]) * h2 + (_2 = r2[15]) * y2, t4[13] = v2 * i2 + b2 * l2 + w2 * p2 + _2 * m2, t4[14] = v2 * s2 + b2 * u2 + w2 * f2 + _2 * g2, t4[15] = v2 * a2 + b2 * c2 + w2 * d2 + _2 * x2, t4;\n }\n Math.hypot || (Math.hypot = function() {\n for (var t4 = 0, e2 = arguments.length; e2--; ) t4 += arguments[e2] * arguments[e2];\n return Math.sqrt(t4);\n });\n var co, ho = uo;\n function po(t4, e2, r2) {\n var n2 = e2[0], i2 = e2[1], s2 = e2[2], a2 = e2[3];\n return t4[0] = r2[0] * n2 + r2[4] * i2 + r2[8] * s2 + r2[12] * a2, t4[1] = r2[1] * n2 + r2[5] * i2 + r2[9] * s2 + r2[13] * a2, t4[2] = r2[2] * n2 + r2[6] * i2 + r2[10] * s2 + r2[14] * a2, t4[3] = r2[3] * n2 + r2[7] * i2 + r2[11] * s2 + r2[15] * a2, t4;\n }\n co = new oo(4), oo != Float32Array && (co[0] = 0, co[1] = 0, co[2] = 0, co[3] = 0);\n class fo extends is {\n constructor(t4) {\n super(t4, so);\n }\n createBucket(t4) {\n return new Ua(t4);\n }\n queryRadius(t4) {\n const e2 = t4;\n return to(\"circle-radius\", this, e2) + to(\"circle-stroke-width\", this, e2) + eo(this.paint.get(\"circle-translate\"));\n }\n queryIntersectsFeature(t4, e2, r2, n2, i2, s2, a2, o2) {\n const l2 = ro(t4, this.paint.get(\"circle-translate\"), this.paint.get(\"circle-translate-anchor\"), s2.angle, a2), u2 = this.paint.get(\"circle-radius\").evaluate(e2, r2) + this.paint.get(\"circle-stroke-width\").evaluate(e2, r2), c2 = \"map\" === this.paint.get(\"circle-pitch-alignment\"), h2 = c2 ? l2 : function(t5, e3) {\n return t5.map((t6) => yo(t6, e3));\n }(l2, o2), p2 = c2 ? u2 * a2 : u2;\n for (const t5 of n2) for (const e3 of t5) {\n const t6 = c2 ? e3 : yo(e3, o2);\n let r3 = p2;\n const n3 = po([], [e3.x, e3.y, 0, 1], o2);\n if (\"viewport\" === this.paint.get(\"circle-pitch-scale\") && \"map\" === this.paint.get(\"circle-pitch-alignment\") ? r3 *= n3[3] / s2.cameraToCenterDistance : \"map\" === this.paint.get(\"circle-pitch-scale\") && \"viewport\" === this.paint.get(\"circle-pitch-alignment\") && (r3 *= s2.cameraToCenterDistance / n3[3]), Na(h2, t6, r3)) return true;\n }\n return false;\n }\n }\n function yo(t4, e2) {\n const r2 = po([], [t4.x, t4.y, 0, 1], e2);\n return new s(r2[0] / r2[3], r2[1] / r2[3]);\n }\n class mo extends Ua {\n }\n let go;\n wi(\"HeatmapBucket\", mo, { omit: [\"layers\"] });\n var xo = { get paint() {\n return go = go || new rs({ \"heatmap-radius\": new Wi(G.paint_heatmap[\"heatmap-radius\"]), \"heatmap-weight\": new Wi(G.paint_heatmap[\"heatmap-weight\"]), \"heatmap-intensity\": new Ji(G.paint_heatmap[\"heatmap-intensity\"]), \"heatmap-color\": new es(G.paint_heatmap[\"heatmap-color\"]), \"heatmap-opacity\": new Ji(G.paint_heatmap[\"heatmap-opacity\"]) });\n } };\n function vo(t4, { width: e2, height: r2 }, n2, i2) {\n if (i2) {\n if (i2 instanceof Uint8ClampedArray) i2 = new Uint8Array(i2.buffer);\n else if (i2.length !== e2 * r2 * n2) throw new RangeError(`mismatched image size. expected: ${i2.length} but got: ${e2 * r2 * n2}`);\n } else i2 = new Uint8Array(e2 * r2 * n2);\n return t4.width = e2, t4.height = r2, t4.data = i2, t4;\n }\n function bo(t4, { width: e2, height: r2 }, n2) {\n if (e2 === t4.width && r2 === t4.height) return;\n const i2 = vo({}, { width: e2, height: r2 }, n2);\n wo(t4, i2, { x: 0, y: 0 }, { x: 0, y: 0 }, { width: Math.min(t4.width, e2), height: Math.min(t4.height, r2) }, n2), t4.width = e2, t4.height = r2, t4.data = i2.data;\n }\n function wo(t4, e2, r2, n2, i2, s2) {\n if (0 === i2.width || 0 === i2.height) return e2;\n if (i2.width > t4.width || i2.height > t4.height || r2.x > t4.width - i2.width || r2.y > t4.height - i2.height) throw new RangeError(\"out of range source coordinates for image copy\");\n if (i2.width > e2.width || i2.height > e2.height || n2.x > e2.width - i2.width || n2.y > e2.height - i2.height) throw new RangeError(\"out of range destination coordinates for image copy\");\n const a2 = t4.data, o2 = e2.data;\n if (a2 === o2) throw new Error(\"srcData equals dstData, so image is already copied\");\n for (let l2 = 0; l2 < i2.height; l2++) {\n const u2 = ((r2.y + l2) * t4.width + r2.x) * s2, c2 = ((n2.y + l2) * e2.width + n2.x) * s2;\n for (let t5 = 0; t5 < i2.width * s2; t5++) o2[c2 + t5] = a2[u2 + t5];\n }\n return e2;\n }\n class _o {\n constructor(t4, e2) {\n vo(this, t4, 1, e2);\n }\n resize(t4) {\n bo(this, t4, 1);\n }\n clone() {\n return new _o({ width: this.width, height: this.height }, new Uint8Array(this.data));\n }\n static copy(t4, e2, r2, n2, i2) {\n wo(t4, e2, r2, n2, i2, 1);\n }\n }\n class Ao {\n constructor(t4, e2) {\n vo(this, t4, 4, e2);\n }\n resize(t4) {\n bo(this, t4, 4);\n }\n replace(t4, e2) {\n e2 ? this.data.set(t4) : this.data = t4 instanceof Uint8ClampedArray ? new Uint8Array(t4.buffer) : t4;\n }\n clone() {\n return new Ao({ width: this.width, height: this.height }, new Uint8Array(this.data));\n }\n static copy(t4, e2, r2, n2, i2) {\n wo(t4, e2, r2, n2, i2, 4);\n }\n }\n function So(t4) {\n const e2 = {}, r2 = t4.resolution || 256, n2 = t4.clips ? t4.clips.length : 1, i2 = t4.image || new Ao({ width: r2, height: n2 });\n if (Math.log(r2) / Math.LN2 % 1 != 0) throw new Error(`width is not a power of 2 - ${r2}`);\n const s2 = (r3, n3, s3) => {\n e2[t4.evaluationKey] = s3;\n const a2 = t4.expression.evaluate(e2);\n i2.data[r3 + n3 + 0] = Math.floor(255 * a2.r / a2.a), i2.data[r3 + n3 + 1] = Math.floor(255 * a2.g / a2.a), i2.data[r3 + n3 + 2] = Math.floor(255 * a2.b / a2.a), i2.data[r3 + n3 + 3] = Math.floor(255 * a2.a);\n };\n if (t4.clips) for (let e3 = 0, i3 = 0; e3 < n2; ++e3, i3 += 4 * r2) for (let n3 = 0, a2 = 0; n3 < r2; n3++, a2 += 4) {\n const o2 = n3 / (r2 - 1), { start: l2, end: u2 } = t4.clips[e3];\n s2(i3, a2, l2 * (1 - o2) + u2 * o2);\n }\n else for (let t5 = 0, e3 = 0; t5 < r2; t5++, e3 += 4) s2(0, e3, t5 / (r2 - 1));\n return i2;\n }\n wi(\"AlphaImage\", _o), wi(\"RGBAImage\", Ao);\n const ko = \"big-fb\";\n class Mo extends is {\n createBucket(t4) {\n return new mo(t4);\n }\n constructor(t4) {\n super(t4, xo), this.heatmapFbos = /* @__PURE__ */ new Map(), this._updateColorRamp();\n }\n _handleSpecialPaintPropertyUpdate(t4) {\n \"heatmap-color\" === t4 && this._updateColorRamp();\n }\n _updateColorRamp() {\n this.colorRamp = So({ expression: this._transitionablePaint._values[\"heatmap-color\"].value.expression, evaluationKey: \"heatmapDensity\", image: this.colorRamp }), this.colorRampTexture = null;\n }\n resize() {\n this.heatmapFbos.has(ko) && this.heatmapFbos.delete(ko);\n }\n queryRadius() {\n return 0;\n }\n queryIntersectsFeature() {\n return false;\n }\n hasOffscreenPass() {\n return 0 !== this.paint.get(\"heatmap-opacity\") && \"none\" !== this.visibility;\n }\n }\n let Io;\n var zo = { get paint() {\n return Io = Io || new rs({ \"hillshade-illumination-direction\": new Ji(G.paint_hillshade[\"hillshade-illumination-direction\"]), \"hillshade-illumination-anchor\": new Ji(G.paint_hillshade[\"hillshade-illumination-anchor\"]), \"hillshade-exaggeration\": new Ji(G.paint_hillshade[\"hillshade-exaggeration\"]), \"hillshade-shadow-color\": new Ji(G.paint_hillshade[\"hillshade-shadow-color\"]), \"hillshade-highlight-color\": new Ji(G.paint_hillshade[\"hillshade-highlight-color\"]), \"hillshade-accent-color\": new Ji(G.paint_hillshade[\"hillshade-accent-color\"]) });\n } };\n class Po extends is {\n constructor(t4) {\n super(t4, zo);\n }\n hasOffscreenPass() {\n return 0 !== this.paint.get(\"hillshade-exaggeration\") && \"none\" !== this.visibility;\n }\n }\n const Co = ls([{ name: \"a_pos\", components: 2, type: \"Int16\" }], 4), { members: Bo } = Co;\n function Vo(t4, e2, r2 = 2) {\n const n2 = e2 && e2.length, i2 = n2 ? e2[0] * r2 : t4.length;\n let s2 = Eo(t4, 0, i2, r2, true);\n const a2 = [];\n if (!s2 || s2.next === s2.prev) return a2;\n let o2, l2, u2;\n if (n2 && (s2 = function(t5, e3, r3, n3) {\n const i3 = [];\n for (let r4 = 0, s3 = e3.length; r4 < s3; r4++) {\n const a3 = Eo(t5, e3[r4] * n3, r4 < s3 - 1 ? e3[r4 + 1] * n3 : t5.length, n3, false);\n a3 === a3.next && (a3.steiner = true), i3.push(No(a3));\n }\n i3.sort(jo);\n for (let t6 = 0; t6 < i3.length; t6++) r3 = Ro(i3[t6], r3);\n return r3;\n }(t4, e2, s2, r2)), t4.length > 80 * r2) {\n o2 = 1 / 0, l2 = 1 / 0;\n let e3 = -1 / 0, n3 = -1 / 0;\n for (let s3 = r2; s3 < i2; s3 += r2) {\n const r3 = t4[s3], i3 = t4[s3 + 1];\n r3 < o2 && (o2 = r3), i3 < l2 && (l2 = i3), r3 > e3 && (e3 = r3), i3 > n3 && (n3 = i3);\n }\n u2 = Math.max(e3 - o2, n3 - l2), u2 = 0 !== u2 ? 32767 / u2 : 0;\n }\n return To(s2, a2, r2, o2, l2, u2, 0), a2;\n }\n function Eo(t4, e2, r2, n2, i2) {\n let s2;\n if (i2 === function(t5, e3, r3, n3) {\n let i3 = 0;\n for (let s3 = e3, a2 = r3 - n3; s3 < r3; s3 += n3) i3 += (t5[a2] - t5[s3]) * (t5[s3 + 1] + t5[a2 + 1]), a2 = s3;\n return i3;\n }(t4, e2, r2, n2) > 0) for (let i3 = e2; i3 < r2; i3 += n2) s2 = tl(i3 / n2 | 0, t4[i3], t4[i3 + 1], s2);\n else for (let i3 = r2 - n2; i3 >= e2; i3 -= n2) s2 = tl(i3 / n2 | 0, t4[i3], t4[i3 + 1], s2);\n return s2 && Xo(s2, s2.next) && (el(s2), s2 = s2.next), s2;\n }\n function Fo(t4, e2) {\n if (!t4) return t4;\n e2 || (e2 = t4);\n let r2, n2 = t4;\n do {\n if (r2 = false, n2.steiner || !Xo(n2, n2.next) && 0 !== Ko(n2.prev, n2, n2.next)) n2 = n2.next;\n else {\n if (el(n2), n2 = e2 = n2.prev, n2 === n2.next) break;\n r2 = true;\n }\n } while (r2 || n2 !== e2);\n return e2;\n }\n function To(t4, e2, r2, n2, i2, s2, a2) {\n if (!t4) return;\n !a2 && s2 && function(t5, e3, r3, n3) {\n let i3 = t5;\n do {\n 0 === i3.z && (i3.z = qo(i3.x, i3.y, e3, r3, n3)), i3.prevZ = i3.prev, i3.nextZ = i3.next, i3 = i3.next;\n } while (i3 !== t5);\n i3.prevZ.nextZ = null, i3.prevZ = null, function(t6) {\n let e4, r4 = 1;\n do {\n let n4, i4 = t6;\n t6 = null;\n let s3 = null;\n for (e4 = 0; i4; ) {\n e4++;\n let a3 = i4, o3 = 0;\n for (let t7 = 0; t7 < r4 && (o3++, a3 = a3.nextZ, a3); t7++) ;\n let l2 = r4;\n for (; o3 > 0 || l2 > 0 && a3; ) 0 !== o3 && (0 === l2 || !a3 || i4.z <= a3.z) ? (n4 = i4, i4 = i4.nextZ, o3--) : (n4 = a3, a3 = a3.nextZ, l2--), s3 ? s3.nextZ = n4 : t6 = n4, n4.prevZ = s3, s3 = n4;\n i4 = a3;\n }\n s3.nextZ = null, r4 *= 2;\n } while (e4 > 1);\n }(i3);\n }(t4, n2, i2, s2);\n let o2 = t4;\n for (; t4.prev !== t4.next; ) {\n const l2 = t4.prev, u2 = t4.next;\n if (s2 ? Lo(t4, n2, i2, s2) : $o(t4)) e2.push(l2.i, t4.i, u2.i), el(t4), t4 = u2.next, o2 = u2.next;\n else if ((t4 = u2) === o2) {\n a2 ? 1 === a2 ? To(t4 = Do(Fo(t4), e2), e2, r2, n2, i2, s2, 2) : 2 === a2 && Oo(t4, e2, r2, n2, i2, s2) : To(Fo(t4), e2, r2, n2, i2, s2, 1);\n break;\n }\n }\n }\n function $o(t4) {\n const e2 = t4.prev, r2 = t4, n2 = t4.next;\n if (Ko(e2, r2, n2) >= 0) return false;\n const i2 = e2.x, s2 = r2.x, a2 = n2.x, o2 = e2.y, l2 = r2.y, u2 = n2.y, c2 = i2 < s2 ? i2 < a2 ? i2 : a2 : s2 < a2 ? s2 : a2, h2 = o2 < l2 ? o2 < u2 ? o2 : u2 : l2 < u2 ? l2 : u2, p2 = i2 > s2 ? i2 > a2 ? i2 : a2 : s2 > a2 ? s2 : a2, f2 = o2 > l2 ? o2 > u2 ? o2 : u2 : l2 > u2 ? l2 : u2;\n let d2 = n2.next;\n for (; d2 !== e2; ) {\n if (d2.x >= c2 && d2.x <= p2 && d2.y >= h2 && d2.y <= f2 && Zo(i2, o2, s2, l2, a2, u2, d2.x, d2.y) && Ko(d2.prev, d2, d2.next) >= 0) return false;\n d2 = d2.next;\n }\n return true;\n }\n function Lo(t4, e2, r2, n2) {\n const i2 = t4.prev, s2 = t4, a2 = t4.next;\n if (Ko(i2, s2, a2) >= 0) return false;\n const o2 = i2.x, l2 = s2.x, u2 = a2.x, c2 = i2.y, h2 = s2.y, p2 = a2.y, f2 = o2 < l2 ? o2 < u2 ? o2 : u2 : l2 < u2 ? l2 : u2, d2 = c2 < h2 ? c2 < p2 ? c2 : p2 : h2 < p2 ? h2 : p2, y2 = o2 > l2 ? o2 > u2 ? o2 : u2 : l2 > u2 ? l2 : u2, m2 = c2 > h2 ? c2 > p2 ? c2 : p2 : h2 > p2 ? h2 : p2, g2 = qo(f2, d2, e2, r2, n2), x2 = qo(y2, m2, e2, r2, n2);\n let v2 = t4.prevZ, b2 = t4.nextZ;\n for (; v2 && v2.z >= g2 && b2 && b2.z <= x2; ) {\n if (v2.x >= f2 && v2.x <= y2 && v2.y >= d2 && v2.y <= m2 && v2 !== i2 && v2 !== a2 && Zo(o2, c2, l2, h2, u2, p2, v2.x, v2.y) && Ko(v2.prev, v2, v2.next) >= 0) return false;\n if (v2 = v2.prevZ, b2.x >= f2 && b2.x <= y2 && b2.y >= d2 && b2.y <= m2 && b2 !== i2 && b2 !== a2 && Zo(o2, c2, l2, h2, u2, p2, b2.x, b2.y) && Ko(b2.prev, b2, b2.next) >= 0) return false;\n b2 = b2.nextZ;\n }\n for (; v2 && v2.z >= g2; ) {\n if (v2.x >= f2 && v2.x <= y2 && v2.y >= d2 && v2.y <= m2 && v2 !== i2 && v2 !== a2 && Zo(o2, c2, l2, h2, u2, p2, v2.x, v2.y) && Ko(v2.prev, v2, v2.next) >= 0) return false;\n v2 = v2.prevZ;\n }\n for (; b2 && b2.z <= x2; ) {\n if (b2.x >= f2 && b2.x <= y2 && b2.y >= d2 && b2.y <= m2 && b2 !== i2 && b2 !== a2 && Zo(o2, c2, l2, h2, u2, p2, b2.x, b2.y) && Ko(b2.prev, b2, b2.next) >= 0) return false;\n b2 = b2.nextZ;\n }\n return true;\n }\n function Do(t4, e2) {\n let r2 = t4;\n do {\n const n2 = r2.prev, i2 = r2.next.next;\n !Xo(n2, i2) && Ho(n2, r2, r2.next, i2) && Wo(n2, i2) && Wo(i2, n2) && (e2.push(n2.i, r2.i, i2.i), el(r2), el(r2.next), r2 = t4 = i2), r2 = r2.next;\n } while (r2 !== t4);\n return Fo(r2);\n }\n function Oo(t4, e2, r2, n2, i2, s2) {\n let a2 = t4;\n do {\n let t5 = a2.next.next;\n for (; t5 !== a2.prev; ) {\n if (a2.i !== t5.i && Go(a2, t5)) {\n let o2 = Qo(a2, t5);\n return a2 = Fo(a2, a2.next), o2 = Fo(o2, o2.next), To(a2, e2, r2, n2, i2, s2, 0), void To(o2, e2, r2, n2, i2, s2, 0);\n }\n t5 = t5.next;\n }\n a2 = a2.next;\n } while (a2 !== t4);\n }\n function jo(t4, e2) {\n return t4.x - e2.x;\n }\n function Ro(t4, e2) {\n const r2 = function(t5, e3) {\n let r3 = e3;\n const n3 = t5.x, i2 = t5.y;\n let s2, a2 = -1 / 0;\n do {\n if (i2 <= r3.y && i2 >= r3.next.y && r3.next.y !== r3.y) {\n const t6 = r3.x + (i2 - r3.y) * (r3.next.x - r3.x) / (r3.next.y - r3.y);\n if (t6 <= n3 && t6 > a2 && (a2 = t6, s2 = r3.x < r3.next.x ? r3 : r3.next, t6 === n3)) return s2;\n }\n r3 = r3.next;\n } while (r3 !== e3);\n if (!s2) return null;\n const o2 = s2, l2 = s2.x, u2 = s2.y;\n let c2 = 1 / 0;\n r3 = s2;\n do {\n if (n3 >= r3.x && r3.x >= l2 && n3 !== r3.x && Zo(i2 < u2 ? n3 : a2, i2, l2, u2, i2 < u2 ? a2 : n3, i2, r3.x, r3.y)) {\n const e4 = Math.abs(i2 - r3.y) / (n3 - r3.x);\n Wo(r3, t5) && (e4 < c2 || e4 === c2 && (r3.x > s2.x || r3.x === s2.x && Uo(s2, r3))) && (s2 = r3, c2 = e4);\n }\n r3 = r3.next;\n } while (r3 !== o2);\n return s2;\n }(t4, e2);\n if (!r2) return e2;\n const n2 = Qo(r2, t4);\n return Fo(n2, n2.next), Fo(r2, r2.next);\n }\n function Uo(t4, e2) {\n return Ko(t4.prev, t4, e2.prev) < 0 && Ko(e2.next, t4, t4.next) < 0;\n }\n function qo(t4, e2, r2, n2, i2) {\n return (t4 = 1431655765 & ((t4 = 858993459 & ((t4 = 252645135 & ((t4 = 16711935 & ((t4 = (t4 - r2) * i2 | 0) | t4 << 8)) | t4 << 4)) | t4 << 2)) | t4 << 1)) | (e2 = 1431655765 & ((e2 = 858993459 & ((e2 = 252645135 & ((e2 = 16711935 & ((e2 = (e2 - n2) * i2 | 0) | e2 << 8)) | e2 << 4)) | e2 << 2)) | e2 << 1)) << 1;\n }\n function No(t4) {\n let e2 = t4, r2 = t4;\n do {\n (e2.x < r2.x || e2.x === r2.x && e2.y < r2.y) && (r2 = e2), e2 = e2.next;\n } while (e2 !== t4);\n return r2;\n }\n function Zo(t4, e2, r2, n2, i2, s2, a2, o2) {\n return (i2 - a2) * (e2 - o2) >= (t4 - a2) * (s2 - o2) && (t4 - a2) * (n2 - o2) >= (r2 - a2) * (e2 - o2) && (r2 - a2) * (s2 - o2) >= (i2 - a2) * (n2 - o2);\n }\n function Go(t4, e2) {\n return t4.next.i !== e2.i && t4.prev.i !== e2.i && !function(t5, e3) {\n let r2 = t5;\n do {\n if (r2.i !== t5.i && r2.next.i !== t5.i && r2.i !== e3.i && r2.next.i !== e3.i && Ho(r2, r2.next, t5, e3)) return true;\n r2 = r2.next;\n } while (r2 !== t5);\n return false;\n }(t4, e2) && (Wo(t4, e2) && Wo(e2, t4) && function(t5, e3) {\n let r2 = t5, n2 = false;\n const i2 = (t5.x + e3.x) / 2, s2 = (t5.y + e3.y) / 2;\n do {\n r2.y > s2 != r2.next.y > s2 && r2.next.y !== r2.y && i2 < (r2.next.x - r2.x) * (s2 - r2.y) / (r2.next.y - r2.y) + r2.x && (n2 = !n2), r2 = r2.next;\n } while (r2 !== t5);\n return n2;\n }(t4, e2) && (Ko(t4.prev, t4, e2.prev) || Ko(t4, e2.prev, e2)) || Xo(t4, e2) && Ko(t4.prev, t4, t4.next) > 0 && Ko(e2.prev, e2, e2.next) > 0);\n }\n function Ko(t4, e2, r2) {\n return (e2.y - t4.y) * (r2.x - e2.x) - (e2.x - t4.x) * (r2.y - e2.y);\n }\n function Xo(t4, e2) {\n return t4.x === e2.x && t4.y === e2.y;\n }\n function Ho(t4, e2, r2, n2) {\n const i2 = Jo(Ko(t4, e2, r2)), s2 = Jo(Ko(t4, e2, n2)), a2 = Jo(Ko(r2, n2, t4)), o2 = Jo(Ko(r2, n2, e2));\n return i2 !== s2 && a2 !== o2 || !(0 !== i2 || !Yo(t4, r2, e2)) || !(0 !== s2 || !Yo(t4, n2, e2)) || !(0 !== a2 || !Yo(r2, t4, n2)) || !(0 !== o2 || !Yo(r2, e2, n2));\n }\n function Yo(t4, e2, r2) {\n return e2.x <= Math.max(t4.x, r2.x) && e2.x >= Math.min(t4.x, r2.x) && e2.y <= Math.max(t4.y, r2.y) && e2.y >= Math.min(t4.y, r2.y);\n }\n function Jo(t4) {\n return t4 > 0 ? 1 : t4 < 0 ? -1 : 0;\n }\n function Wo(t4, e2) {\n return Ko(t4.prev, t4, t4.next) < 0 ? Ko(t4, e2, t4.next) >= 0 && Ko(t4, t4.prev, e2) >= 0 : Ko(t4, e2, t4.prev) < 0 || Ko(t4, t4.next, e2) < 0;\n }\n function Qo(t4, e2) {\n const r2 = rl(t4.i, t4.x, t4.y), n2 = rl(e2.i, e2.x, e2.y), i2 = t4.next, s2 = e2.prev;\n return t4.next = e2, e2.prev = t4, r2.next = i2, i2.prev = r2, n2.next = r2, r2.prev = n2, s2.next = n2, n2.prev = s2, n2;\n }\n function tl(t4, e2, r2, n2) {\n const i2 = rl(t4, e2, r2);\n return n2 ? (i2.next = n2.next, i2.prev = n2, n2.next.prev = i2, n2.next = i2) : (i2.prev = i2, i2.next = i2), i2;\n }\n function el(t4) {\n t4.next.prev = t4.prev, t4.prev.next = t4.next, t4.prevZ && (t4.prevZ.nextZ = t4.nextZ), t4.nextZ && (t4.nextZ.prevZ = t4.prevZ);\n }\n function rl(t4, e2, r2) {\n return { i: t4, x: e2, y: r2, prev: null, next: null, z: 0, prevZ: null, nextZ: null, steiner: false };\n }\n function nl(t4, e2, r2) {\n const n2 = r2.patternDependencies;\n let i2 = false;\n for (const r3 of e2) {\n const e3 = r3.paint.get(`${t4}-pattern`);\n e3.isConstant() || (i2 = true);\n const s2 = e3.constantOr(null);\n s2 && (i2 = true, n2[s2.to] = true, n2[s2.from] = true);\n }\n return i2;\n }\n function il(t4, e2, r2, n2, i2) {\n const s2 = i2.patternDependencies;\n for (const a2 of e2) {\n const e3 = a2.paint.get(`${t4}-pattern`).value;\n if (\"constant\" !== e3.kind) {\n let t5 = e3.evaluate({ zoom: n2 - 1 }, r2, {}, i2.availableImages), o2 = e3.evaluate({ zoom: n2 }, r2, {}, i2.availableImages), l2 = e3.evaluate({ zoom: n2 + 1 }, r2, {}, i2.availableImages);\n t5 = t5 && t5.name ? t5.name : t5, o2 = o2 && o2.name ? o2.name : o2, l2 = l2 && l2.name ? l2.name : l2, s2[t5] = true, s2[o2] = true, s2[l2] = true, r2.patterns[a2.id] = { min: t5, mid: o2, max: l2 };\n }\n }\n return r2;\n }\n class sl {\n constructor(t4) {\n this.zoom = t4.zoom, this.overscaling = t4.overscaling, this.layers = t4.layers, this.layerIds = this.layers.map((t5) => t5.id), this.index = t4.index, this.hasPattern = false, this.patternFeatures = [], this.layoutVertexArray = new Ks(), this.indexArray = new na(), this.indexArray2 = new ia(), this.programConfigurations = new Ea(t4.layers, t4.zoom), this.segments = new oa(), this.segments2 = new oa(), this.stateDependentLayerIds = this.layers.filter((t5) => t5.isStateDependent()).map((t5) => t5.id);\n }\n populate(t4, e2, r2) {\n this.hasPattern = nl(\"fill\", this.layers, e2);\n const n2 = this.layers[0].layout.get(\"fill-sort-key\"), i2 = !n2.isConstant(), s2 = [];\n for (const { feature: a2, id: o2, index: l2, sourceLayerIndex: u2 } of t4) {\n const t5 = this.layers[0]._featureFilter.needGeometry, c2 = ja(a2, t5);\n if (!this.layers[0]._featureFilter.filter(new Ui(this.zoom), c2, r2)) continue;\n const h2 = i2 ? n2.evaluate(c2, {}, r2, e2.availableImages) : void 0, p2 = { id: o2, properties: a2.properties, type: a2.type, sourceLayerIndex: u2, index: l2, geometry: t5 ? c2.geometry : Oa(a2), patterns: {}, sortKey: h2 };\n s2.push(p2);\n }\n i2 && s2.sort((t5, e3) => t5.sortKey - e3.sortKey);\n for (const n3 of s2) {\n const { geometry: i3, index: s3, sourceLayerIndex: a2 } = n3;\n if (this.hasPattern) {\n const t5 = il(\"fill\", this.layers, n3, this.zoom, e2);\n this.patternFeatures.push(t5);\n } else this.addFeature(n3, i3, s3, r2, {});\n e2.featureIndex.insert(t4[s3].feature, i3, s3, a2, this.index);\n }\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t4, e2, this.stateDependentLayers, r2);\n }\n addFeatures(t4, e2, r2) {\n for (const t5 of this.patternFeatures) this.addFeature(t5, t5.geometry, t5.index, e2, r2);\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length;\n }\n uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n }\n upload(t4) {\n this.uploaded || (this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, Bo), this.indexBuffer = t4.createIndexBuffer(this.indexArray), this.indexBuffer2 = t4.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(t4), this.uploaded = true;\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy());\n }\n addFeature(t4, e2, r2, n2, i2) {\n for (const t5 of xr(e2, 500)) {\n let e3 = 0;\n for (const r4 of t5) e3 += r4.length;\n const r3 = this.segments.prepareSegment(e3, this.layoutVertexArray, this.indexArray), n3 = r3.vertexLength, i3 = [], s2 = [];\n for (const e4 of t5) {\n if (0 === e4.length) continue;\n e4 !== t5[0] && s2.push(i3.length / 2);\n const r4 = this.segments2.prepareSegment(e4.length, this.layoutVertexArray, this.indexArray2), n4 = r4.vertexLength;\n this.layoutVertexArray.emplaceBack(e4[0].x, e4[0].y), this.indexArray2.emplaceBack(n4 + e4.length - 1, n4), i3.push(e4[0].x), i3.push(e4[0].y);\n for (let t6 = 1; t6 < e4.length; t6++) this.layoutVertexArray.emplaceBack(e4[t6].x, e4[t6].y), this.indexArray2.emplaceBack(n4 + t6 - 1, n4 + t6), i3.push(e4[t6].x), i3.push(e4[t6].y);\n r4.vertexLength += e4.length, r4.primitiveLength += e4.length;\n }\n const a2 = Vo(i3, s2);\n for (let t6 = 0; t6 < a2.length; t6 += 3) this.indexArray.emplaceBack(n3 + a2[t6], n3 + a2[t6 + 1], n3 + a2[t6 + 2]);\n r3.vertexLength += e3, r3.primitiveLength += a2.length / 3;\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t4, r2, i2, n2);\n }\n }\n let al, ol;\n wi(\"FillBucket\", sl, { omit: [\"layers\", \"patternFeatures\"] });\n var ll = { get paint() {\n return ol = ol || new rs({ \"fill-antialias\": new Ji(G.paint_fill[\"fill-antialias\"]), \"fill-opacity\": new Wi(G.paint_fill[\"fill-opacity\"]), \"fill-color\": new Wi(G.paint_fill[\"fill-color\"]), \"fill-outline-color\": new Wi(G.paint_fill[\"fill-outline-color\"]), \"fill-translate\": new Ji(G.paint_fill[\"fill-translate\"]), \"fill-translate-anchor\": new Ji(G.paint_fill[\"fill-translate-anchor\"]), \"fill-pattern\": new Qi(G.paint_fill[\"fill-pattern\"]) });\n }, get layout() {\n return al = al || new rs({ \"fill-sort-key\": new Wi(G.layout_fill[\"fill-sort-key\"]) });\n } };\n class ul extends is {\n constructor(t4) {\n super(t4, ll);\n }\n recalculate(t4, e2) {\n super.recalculate(t4, e2);\n const r2 = this.paint._values[\"fill-outline-color\"];\n \"constant\" === r2.value.kind && void 0 === r2.value.value && (this.paint._values[\"fill-outline-color\"] = this.paint._values[\"fill-color\"]);\n }\n createBucket(t4) {\n return new sl(t4);\n }\n queryRadius() {\n return eo(this.paint.get(\"fill-translate\"));\n }\n queryIntersectsFeature(t4, e2, r2, n2, i2, s2, a2) {\n return Za(ro(t4, this.paint.get(\"fill-translate\"), this.paint.get(\"fill-translate-anchor\"), s2.angle, a2), n2);\n }\n isTileClipped() {\n return true;\n }\n }\n const cl = ls([{ name: \"a_pos\", components: 2, type: \"Int16\" }, { name: \"a_normal_ed\", components: 4, type: \"Int16\" }], 4), hl = ls([{ name: \"a_centroid\", components: 2, type: \"Int16\" }], 4), { members: pl } = cl;\n var fl = {}, dl = n, yl = ml;\n function ml(t4, e2, r2, n2, i2) {\n this.properties = {}, this.extent = r2, this.type = 0, this._pbf = t4, this._geometry = -1, this._keys = n2, this._values = i2, t4.readFields(gl2, this, e2);\n }\n function gl2(t4, e2, r2) {\n 1 == t4 ? e2.id = r2.readVarint() : 2 == t4 ? function(t5, e3) {\n for (var r3 = t5.readVarint() + t5.pos; t5.pos < r3; ) {\n var n2 = e3._keys[t5.readVarint()], i2 = e3._values[t5.readVarint()];\n e3.properties[n2] = i2;\n }\n }(r2, e2) : 3 == t4 ? e2.type = r2.readVarint() : 4 == t4 && (e2._geometry = r2.pos);\n }\n function xl(t4) {\n for (var e2, r2, n2 = 0, i2 = 0, s2 = t4.length, a2 = s2 - 1; i2 < s2; a2 = i2++) n2 += ((r2 = t4[a2]).x - (e2 = t4[i2]).x) * (e2.y + r2.y);\n return n2;\n }\n ml.types = [\"Unknown\", \"Point\", \"LineString\", \"Polygon\"], ml.prototype.loadGeometry = function() {\n var t4 = this._pbf;\n t4.pos = this._geometry;\n for (var e2, r2 = t4.readVarint() + t4.pos, n2 = 1, i2 = 0, s2 = 0, a2 = 0, o2 = []; t4.pos < r2; ) {\n if (i2 <= 0) {\n var l2 = t4.readVarint();\n n2 = 7 & l2, i2 = l2 >> 3;\n }\n if (i2--, 1 === n2 || 2 === n2) s2 += t4.readSVarint(), a2 += t4.readSVarint(), 1 === n2 && (e2 && o2.push(e2), e2 = []), e2.push(new dl(s2, a2));\n else {\n if (7 !== n2) throw new Error(\"unknown command \" + n2);\n e2 && e2.push(e2[0].clone());\n }\n }\n return e2 && o2.push(e2), o2;\n }, ml.prototype.bbox = function() {\n var t4 = this._pbf;\n t4.pos = this._geometry;\n for (var e2 = t4.readVarint() + t4.pos, r2 = 1, n2 = 0, i2 = 0, s2 = 0, a2 = 1 / 0, o2 = -1 / 0, l2 = 1 / 0, u2 = -1 / 0; t4.pos < e2; ) {\n if (n2 <= 0) {\n var c2 = t4.readVarint();\n r2 = 7 & c2, n2 = c2 >> 3;\n }\n if (n2--, 1 === r2 || 2 === r2) (i2 += t4.readSVarint()) < a2 && (a2 = i2), i2 > o2 && (o2 = i2), (s2 += t4.readSVarint()) < l2 && (l2 = s2), s2 > u2 && (u2 = s2);\n else if (7 !== r2) throw new Error(\"unknown command \" + r2);\n }\n return [a2, l2, o2, u2];\n }, ml.prototype.toGeoJSON = function(t4, e2, r2) {\n var n2, i2, s2 = this.extent * Math.pow(2, r2), a2 = this.extent * t4, o2 = this.extent * e2, l2 = this.loadGeometry(), u2 = ml.types[this.type];\n function c2(t5) {\n for (var e3 = 0; e3 < t5.length; e3++) {\n var r3 = t5[e3];\n t5[e3] = [360 * (r3.x + a2) / s2 - 180, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * (r3.y + o2) / s2) * Math.PI / 180)) - 90];\n }\n }\n switch (this.type) {\n case 1:\n var h2 = [];\n for (n2 = 0; n2 < l2.length; n2++) h2[n2] = l2[n2][0];\n c2(l2 = h2);\n break;\n case 2:\n for (n2 = 0; n2 < l2.length; n2++) c2(l2[n2]);\n break;\n case 3:\n for (l2 = function(t5) {\n var e3 = t5.length;\n if (e3 <= 1) return [t5];\n for (var r3, n3, i3 = [], s3 = 0; s3 < e3; s3++) {\n var a3 = xl(t5[s3]);\n 0 !== a3 && (void 0 === n3 && (n3 = a3 < 0), n3 === a3 < 0 ? (r3 && i3.push(r3), r3 = [t5[s3]]) : r3.push(t5[s3]));\n }\n return r3 && i3.push(r3), i3;\n }(l2), n2 = 0; n2 < l2.length; n2++) for (i2 = 0; i2 < l2[n2].length; i2++) c2(l2[n2][i2]);\n }\n 1 === l2.length ? l2 = l2[0] : u2 = \"Multi\" + u2;\n var p2 = { type: \"Feature\", geometry: { type: u2, coordinates: l2 }, properties: this.properties };\n return \"id\" in this && (p2.id = this.id), p2;\n };\n var vl = yl, bl = wl;\n function wl(t4, e2) {\n this.version = 1, this.name = null, this.extent = 4096, this.length = 0, this._pbf = t4, this._keys = [], this._values = [], this._features = [], t4.readFields(_l, this, e2), this.length = this._features.length;\n }\n function _l(t4, e2, r2) {\n 15 === t4 ? e2.version = r2.readVarint() : 1 === t4 ? e2.name = r2.readString() : 5 === t4 ? e2.extent = r2.readVarint() : 2 === t4 ? e2._features.push(r2.pos) : 3 === t4 ? e2._keys.push(r2.readString()) : 4 === t4 && e2._values.push(function(t5) {\n for (var e3 = null, r3 = t5.readVarint() + t5.pos; t5.pos < r3; ) {\n var n2 = t5.readVarint() >> 3;\n e3 = 1 === n2 ? t5.readString() : 2 === n2 ? t5.readFloat() : 3 === n2 ? t5.readDouble() : 4 === n2 ? t5.readVarint64() : 5 === n2 ? t5.readVarint() : 6 === n2 ? t5.readSVarint() : 7 === n2 ? t5.readBoolean() : null;\n }\n return e3;\n }(r2));\n }\n wl.prototype.feature = function(t4) {\n if (t4 < 0 || t4 >= this._features.length) throw new Error(\"feature index out of bounds\");\n this._pbf.pos = this._features[t4];\n var e2 = this._pbf.readVarint() + this._pbf.pos;\n return new vl(this._pbf, e2, this.extent, this._keys, this._values);\n };\n var Al = bl;\n function Sl(t4, e2, r2) {\n if (3 === t4) {\n var n2 = new Al(r2, r2.readVarint() + r2.pos);\n n2.length && (e2[n2.name] = n2);\n }\n }\n fl.VectorTile = function(t4, e2) {\n this.layers = t4.readFields(Sl, {}, e2);\n }, fl.VectorTileFeature = yl, fl.VectorTileLayer = bl;\n const kl = fl.VectorTileFeature.types, Ml = Math.pow(2, 13);\n function Il(t4, e2, r2, n2, i2, s2, a2, o2) {\n t4.emplaceBack(e2, r2, 2 * Math.floor(n2 * Ml) + a2, i2 * Ml * 2, s2 * Ml * 2, Math.round(o2));\n }\n class zl {\n constructor(t4) {\n this.zoom = t4.zoom, this.overscaling = t4.overscaling, this.layers = t4.layers, this.layerIds = this.layers.map((t5) => t5.id), this.index = t4.index, this.hasPattern = false, this.layoutVertexArray = new Xs(), this.centroidVertexArray = new Zs(), this.indexArray = new na(), this.programConfigurations = new Ea(t4.layers, t4.zoom), this.segments = new oa(), this.stateDependentLayerIds = this.layers.filter((t5) => t5.isStateDependent()).map((t5) => t5.id);\n }\n populate(t4, e2, r2) {\n this.features = [], this.hasPattern = nl(\"fill-extrusion\", this.layers, e2);\n for (const { feature: n2, id: i2, index: s2, sourceLayerIndex: a2 } of t4) {\n const t5 = this.layers[0]._featureFilter.needGeometry, o2 = ja(n2, t5);\n if (!this.layers[0]._featureFilter.filter(new Ui(this.zoom), o2, r2)) continue;\n const l2 = { id: i2, sourceLayerIndex: a2, index: s2, geometry: t5 ? o2.geometry : Oa(n2), properties: n2.properties, type: n2.type, patterns: {} };\n this.hasPattern ? this.features.push(il(\"fill-extrusion\", this.layers, l2, this.zoom, e2)) : this.addFeature(l2, l2.geometry, s2, r2, {}), e2.featureIndex.insert(n2, l2.geometry, s2, a2, this.index, true);\n }\n }\n addFeatures(t4, e2, r2) {\n for (const t5 of this.features) {\n const { geometry: n2 } = t5;\n this.addFeature(t5, n2, t5.index, e2, r2);\n }\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t4, e2, this.stateDependentLayers, r2);\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length && 0 === this.centroidVertexArray.length;\n }\n uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n }\n upload(t4) {\n this.uploaded || (this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, pl), this.centroidVertexBuffer = t4.createVertexBuffer(this.centroidVertexArray, hl.members, true), this.indexBuffer = t4.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t4), this.uploaded = true;\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.centroidVertexBuffer.destroy());\n }\n addFeature(t4, e2, r2, n2, i2) {\n for (const r3 of xr(e2, 500)) {\n const e3 = { x: 0, y: 0, vertexCount: 0 };\n let n3 = 0;\n for (const t5 of r3) n3 += t5.length;\n let i3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray);\n for (const t5 of r3) {\n if (0 === t5.length) continue;\n if (Cl(t5)) continue;\n let r4 = 0;\n for (let n4 = 0; n4 < t5.length; n4++) {\n const s3 = t5[n4];\n if (n4 >= 1) {\n const a3 = t5[n4 - 1];\n if (!Pl(s3, a3)) {\n i3.vertexLength + 4 > oa.MAX_VERTEX_ARRAY_LENGTH && (i3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray));\n const t6 = s3.sub(a3)._perp()._unit(), n5 = a3.dist(s3);\n r4 + n5 > 32768 && (r4 = 0), Il(this.layoutVertexArray, s3.x, s3.y, t6.x, t6.y, 0, 0, r4), Il(this.layoutVertexArray, s3.x, s3.y, t6.x, t6.y, 0, 1, r4), e3.x += 2 * s3.x, e3.y += 2 * s3.y, e3.vertexCount += 2, r4 += n5, Il(this.layoutVertexArray, a3.x, a3.y, t6.x, t6.y, 0, 0, r4), Il(this.layoutVertexArray, a3.x, a3.y, t6.x, t6.y, 0, 1, r4), e3.x += 2 * a3.x, e3.y += 2 * a3.y, e3.vertexCount += 2;\n const o3 = i3.vertexLength;\n this.indexArray.emplaceBack(o3, o3 + 2, o3 + 1), this.indexArray.emplaceBack(o3 + 1, o3 + 2, o3 + 3), i3.vertexLength += 4, i3.primitiveLength += 2;\n }\n }\n }\n }\n if (i3.vertexLength + n3 > oa.MAX_VERTEX_ARRAY_LENGTH && (i3 = this.segments.prepareSegment(n3, this.layoutVertexArray, this.indexArray)), \"Polygon\" !== kl[t4.type]) continue;\n const s2 = [], a2 = [], o2 = i3.vertexLength;\n for (const t5 of r3) if (0 !== t5.length) {\n t5 !== r3[0] && a2.push(s2.length / 2);\n for (let r4 = 0; r4 < t5.length; r4++) {\n const n4 = t5[r4];\n Il(this.layoutVertexArray, n4.x, n4.y, 0, 0, 1, 1, 0), e3.x += n4.x, e3.y += n4.y, e3.vertexCount += 1, s2.push(n4.x), s2.push(n4.y);\n }\n }\n const l2 = Vo(s2, a2);\n for (let t5 = 0; t5 < l2.length; t5 += 3) this.indexArray.emplaceBack(o2 + l2[t5], o2 + l2[t5 + 2], o2 + l2[t5 + 1]);\n i3.primitiveLength += l2.length / 3, i3.vertexLength += n3;\n for (let t5 = 0; t5 < e3.vertexCount; t5++) {\n const t6 = Math.floor(e3.x / e3.vertexCount), r4 = Math.floor(e3.y / e3.vertexCount);\n this.centroidVertexArray.emplaceBack(t6, r4);\n }\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t4, r2, i2, n2);\n }\n }\n function Pl(t4, e2) {\n return t4.x === e2.x && (t4.x < 0 || t4.x > $a) || t4.y === e2.y && (t4.y < 0 || t4.y > $a);\n }\n function Cl(t4) {\n return t4.every((t5) => t5.x < 0) || t4.every((t5) => t5.x > $a) || t4.every((t5) => t5.y < 0) || t4.every((t5) => t5.y > $a);\n }\n let Bl;\n wi(\"FillExtrusionBucket\", zl, { omit: [\"layers\", \"features\"] });\n var Vl = { get paint() {\n return Bl = Bl || new rs({ \"fill-extrusion-opacity\": new Ji(G[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]), \"fill-extrusion-color\": new Wi(G[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]), \"fill-extrusion-translate\": new Ji(G[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]), \"fill-extrusion-translate-anchor\": new Ji(G[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]), \"fill-extrusion-pattern\": new Qi(G[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]), \"fill-extrusion-height\": new Wi(G[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]), \"fill-extrusion-base\": new Wi(G[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]), \"fill-extrusion-vertical-gradient\": new Ji(G[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"]) });\n } };\n class El extends is {\n constructor(t4) {\n super(t4, Vl);\n }\n createBucket(t4) {\n return new zl(t4);\n }\n queryRadius() {\n return eo(this.paint.get(\"fill-extrusion-translate\"));\n }\n is3D() {\n return true;\n }\n queryIntersectsFeature(t4, e2, r2, n2, i2, a2, o2, l2) {\n const u2 = ro(t4, this.paint.get(\"fill-extrusion-translate\"), this.paint.get(\"fill-extrusion-translate-anchor\"), a2.angle, o2), c2 = this.paint.get(\"fill-extrusion-height\").evaluate(e2, r2), h2 = this.paint.get(\"fill-extrusion-base\").evaluate(e2, r2), p2 = function(t5, e3, r3, n3) {\n const i3 = [];\n for (const r4 of t5) {\n const t6 = [r4.x, r4.y, 0, 1];\n po(t6, t6, e3), i3.push(new s(t6[0] / t6[3], t6[1] / t6[3]));\n }\n return i3;\n }(u2, l2), f2 = function(t5, e3, r3, n3) {\n const i3 = [], a3 = [], o3 = n3[8] * e3, l3 = n3[9] * e3, u3 = n3[10] * e3, c3 = n3[11] * e3, h3 = n3[8] * r3, p3 = n3[9] * r3, f3 = n3[10] * r3, d2 = n3[11] * r3;\n for (const e4 of t5) {\n const t6 = [], r4 = [];\n for (const i4 of e4) {\n const e5 = i4.x, a4 = i4.y, y2 = n3[0] * e5 + n3[4] * a4 + n3[12], m2 = n3[1] * e5 + n3[5] * a4 + n3[13], g2 = n3[2] * e5 + n3[6] * a4 + n3[14], x2 = n3[3] * e5 + n3[7] * a4 + n3[15], v2 = g2 + u3, b2 = x2 + c3, w2 = y2 + h3, _2 = m2 + p3, A3 = g2 + f3, S2 = x2 + d2, k2 = new s((y2 + o3) / b2, (m2 + l3) / b2);\n k2.z = v2 / b2, t6.push(k2);\n const M2 = new s(w2 / S2, _2 / S2);\n M2.z = A3 / S2, r4.push(M2);\n }\n i3.push(t6), a3.push(r4);\n }\n return [i3, a3];\n }(n2, h2, c2, l2);\n return function(t5, e3, r3) {\n let n3 = 1 / 0;\n Za(r3, e3) && (n3 = Tl(r3, e3[0]));\n for (let i3 = 0; i3 < e3.length; i3++) {\n const s2 = e3[i3], a3 = t5[i3];\n for (let t6 = 0; t6 < s2.length - 1; t6++) {\n const e4 = s2[t6], i4 = [e4, s2[t6 + 1], a3[t6 + 1], a3[t6], e4];\n qa(r3, i4) && (n3 = Math.min(n3, Tl(r3, i4)));\n }\n }\n return n3 !== 1 / 0 && n3;\n }(f2[0], f2[1], p2);\n }\n }\n function Fl(t4, e2) {\n return t4.x * e2.x + t4.y * e2.y;\n }\n function Tl(t4, e2) {\n if (1 === t4.length) {\n let r2 = 0;\n const n2 = e2[r2++];\n let i2;\n for (; !i2 || n2.equals(i2); ) if (i2 = e2[r2++], !i2) return 1 / 0;\n for (; r2 < e2.length; r2++) {\n const s2 = e2[r2], a2 = t4[0], o2 = i2.sub(n2), l2 = s2.sub(n2), u2 = a2.sub(n2), c2 = Fl(o2, o2), h2 = Fl(o2, l2), p2 = Fl(l2, l2), f2 = Fl(u2, o2), d2 = Fl(u2, l2), y2 = c2 * p2 - h2 * h2, m2 = (p2 * f2 - h2 * d2) / y2, g2 = (c2 * d2 - h2 * f2) / y2, x2 = n2.z * (1 - m2 - g2) + i2.z * m2 + s2.z * g2;\n if (isFinite(x2)) return x2;\n }\n return 1 / 0;\n }\n {\n let t5 = 1 / 0;\n for (const r2 of e2) t5 = Math.min(t5, r2.z);\n return t5;\n }\n }\n const $l = ls([{ name: \"a_pos_normal\", components: 2, type: \"Int16\" }, { name: \"a_data\", components: 4, type: \"Uint8\" }], 4), { members: Ll } = $l, Dl = ls([{ name: \"a_uv_x\", components: 1, type: \"Float32\" }, { name: \"a_split_index\", components: 1, type: \"Float32\" }]), { members: Ol } = Dl, jl = fl.VectorTileFeature.types, Rl = Math.cos(Math.PI / 180 * 37.5), Ul = Math.pow(2, 14) / 0.5;\n class ql {\n constructor(t4) {\n this.zoom = t4.zoom, this.overscaling = t4.overscaling, this.layers = t4.layers, this.layerIds = this.layers.map((t5) => t5.id), this.index = t4.index, this.hasPattern = false, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach((t5) => {\n this.gradients[t5.id] = {};\n }), this.layoutVertexArray = new Hs(), this.layoutVertexArray2 = new Ys(), this.indexArray = new na(), this.programConfigurations = new Ea(t4.layers, t4.zoom), this.segments = new oa(), this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter((t5) => t5.isStateDependent()).map((t5) => t5.id);\n }\n populate(t4, e2, r2) {\n this.hasPattern = nl(\"line\", this.layers, e2);\n const n2 = this.layers[0].layout.get(\"line-sort-key\"), i2 = !n2.isConstant(), s2 = [];\n for (const { feature: e3, id: a2, index: o2, sourceLayerIndex: l2 } of t4) {\n const t5 = this.layers[0]._featureFilter.needGeometry, u2 = ja(e3, t5);\n if (!this.layers[0]._featureFilter.filter(new Ui(this.zoom), u2, r2)) continue;\n const c2 = i2 ? n2.evaluate(u2, {}, r2) : void 0, h2 = { id: a2, properties: e3.properties, type: e3.type, sourceLayerIndex: l2, index: o2, geometry: t5 ? u2.geometry : Oa(e3), patterns: {}, sortKey: c2 };\n s2.push(h2);\n }\n i2 && s2.sort((t5, e3) => t5.sortKey - e3.sortKey);\n for (const n3 of s2) {\n const { geometry: i3, index: s3, sourceLayerIndex: a2 } = n3;\n if (this.hasPattern) {\n const t5 = il(\"line\", this.layers, n3, this.zoom, e2);\n this.patternFeatures.push(t5);\n } else this.addFeature(n3, i3, s3, r2, {});\n e2.featureIndex.insert(t4[s3].feature, i3, s3, a2, this.index);\n }\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t4, e2, this.stateDependentLayers, r2);\n }\n addFeatures(t4, e2, r2) {\n for (const t5 of this.patternFeatures) this.addFeature(t5, t5.geometry, t5.index, e2, r2);\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length;\n }\n uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n }\n upload(t4) {\n this.uploaded || (0 !== this.layoutVertexArray2.length && (this.layoutVertexBuffer2 = t4.createVertexBuffer(this.layoutVertexArray2, Ol)), this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, Ll), this.indexBuffer = t4.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t4), this.uploaded = true;\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());\n }\n lineFeatureClips(t4) {\n if (t4.properties && Object.prototype.hasOwnProperty.call(t4.properties, \"mapbox_clip_start\") && Object.prototype.hasOwnProperty.call(t4.properties, \"mapbox_clip_end\")) return { start: +t4.properties.mapbox_clip_start, end: +t4.properties.mapbox_clip_end };\n }\n addFeature(t4, e2, r2, n2, i2) {\n const s2 = this.layers[0].layout, a2 = s2.get(\"line-join\").evaluate(t4, {}), o2 = s2.get(\"line-cap\"), l2 = s2.get(\"line-miter-limit\"), u2 = s2.get(\"line-round-limit\");\n this.lineClips = this.lineFeatureClips(t4);\n for (const r3 of e2) this.addLine(r3, t4, a2, o2, l2, u2);\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t4, r2, i2, n2);\n }\n addLine(t4, e2, r2, n2, i2, s2) {\n if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.lineClips) {\n this.lineClipsArray.push(this.lineClips);\n for (let e3 = 0; e3 < t4.length - 1; e3++) this.totalDistance += t4[e3].dist(t4[e3 + 1]);\n this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance);\n }\n const a2 = \"Polygon\" === jl[e2.type];\n let o2 = t4.length;\n for (; o2 >= 2 && t4[o2 - 1].equals(t4[o2 - 2]); ) o2--;\n let l2 = 0;\n for (; l2 < o2 - 1 && t4[l2].equals(t4[l2 + 1]); ) l2++;\n if (o2 < (a2 ? 3 : 2)) return;\n \"bevel\" === r2 && (i2 = 1.05);\n const u2 = this.overscaling <= 16 ? 15 * $a / (512 * this.overscaling) : 0, c2 = this.segments.prepareSegment(10 * o2, this.layoutVertexArray, this.indexArray);\n let h2, p2, f2, d2, y2;\n this.e1 = this.e2 = -1, a2 && (h2 = t4[o2 - 2], y2 = t4[l2].sub(h2)._unit()._perp());\n for (let e3 = l2; e3 < o2; e3++) {\n if (f2 = e3 === o2 - 1 ? a2 ? t4[l2 + 1] : void 0 : t4[e3 + 1], f2 && t4[e3].equals(f2)) continue;\n y2 && (d2 = y2), h2 && (p2 = h2), h2 = t4[e3], y2 = f2 ? f2.sub(h2)._unit()._perp() : d2, d2 = d2 || y2;\n let m2 = d2.add(y2);\n 0 === m2.x && 0 === m2.y || m2._unit();\n const g2 = d2.x * y2.x + d2.y * y2.y, x2 = m2.x * y2.x + m2.y * y2.y, v2 = 0 !== x2 ? 1 / x2 : 1 / 0, b2 = 2 * Math.sqrt(2 - 2 * x2), w2 = x2 < Rl && p2 && f2, _2 = d2.x * y2.y - d2.y * y2.x > 0;\n if (w2 && e3 > l2) {\n const t5 = h2.dist(p2);\n if (t5 > 2 * u2) {\n const e4 = h2.sub(h2.sub(p2)._mult(u2 / t5)._round());\n this.updateDistance(p2, e4), this.addCurrentVertex(e4, d2, 0, 0, c2), p2 = e4;\n }\n }\n const A3 = p2 && f2;\n let S2 = A3 ? r2 : a2 ? \"butt\" : n2;\n if (A3 && \"round\" === S2 && (v2 < s2 ? S2 = \"miter\" : v2 <= 2 && (S2 = \"fakeround\")), \"miter\" === S2 && v2 > i2 && (S2 = \"bevel\"), \"bevel\" === S2 && (v2 > 2 && (S2 = \"flipbevel\"), v2 < i2 && (S2 = \"miter\")), p2 && this.updateDistance(p2, h2), \"miter\" === S2) m2._mult(v2), this.addCurrentVertex(h2, m2, 0, 0, c2);\n else if (\"flipbevel\" === S2) {\n if (v2 > 100) m2 = y2.mult(-1);\n else {\n const t5 = v2 * d2.add(y2).mag() / d2.sub(y2).mag();\n m2._perp()._mult(t5 * (_2 ? -1 : 1));\n }\n this.addCurrentVertex(h2, m2, 0, 0, c2), this.addCurrentVertex(h2, m2.mult(-1), 0, 0, c2);\n } else if (\"bevel\" === S2 || \"fakeround\" === S2) {\n const t5 = -Math.sqrt(v2 * v2 - 1), e4 = _2 ? t5 : 0, r3 = _2 ? 0 : t5;\n if (p2 && this.addCurrentVertex(h2, d2, e4, r3, c2), \"fakeround\" === S2) {\n const t6 = Math.round(180 * b2 / Math.PI / 20);\n for (let e5 = 1; e5 < t6; e5++) {\n let r4 = e5 / t6;\n if (0.5 !== r4) {\n const t7 = r4 - 0.5;\n r4 += r4 * t7 * (r4 - 1) * ((1.0904 + g2 * (g2 * (3.55645 - 1.43519 * g2) - 3.2452)) * t7 * t7 + (0.848013 + g2 * (0.215638 * g2 - 1.06021)));\n }\n const n3 = y2.sub(d2)._mult(r4)._add(d2)._unit()._mult(_2 ? -1 : 1);\n this.addHalfVertex(h2, n3.x, n3.y, false, _2, 0, c2);\n }\n }\n f2 && this.addCurrentVertex(h2, y2, -e4, -r3, c2);\n } else if (\"butt\" === S2) this.addCurrentVertex(h2, m2, 0, 0, c2);\n else if (\"square\" === S2) {\n const t5 = p2 ? 1 : -1;\n this.addCurrentVertex(h2, m2, t5, t5, c2);\n } else \"round\" === S2 && (p2 && (this.addCurrentVertex(h2, d2, 0, 0, c2), this.addCurrentVertex(h2, d2, 1, 1, c2, true)), f2 && (this.addCurrentVertex(h2, y2, -1, -1, c2, true), this.addCurrentVertex(h2, y2, 0, 0, c2)));\n if (w2 && e3 < o2 - 1) {\n const t5 = h2.dist(f2);\n if (t5 > 2 * u2) {\n const e4 = h2.add(f2.sub(h2)._mult(u2 / t5)._round());\n this.updateDistance(h2, e4), this.addCurrentVertex(e4, y2, 0, 0, c2), h2 = e4;\n }\n }\n }\n }\n addCurrentVertex(t4, e2, r2, n2, i2, s2 = false) {\n const a2 = e2.y * n2 - e2.x, o2 = -e2.y - e2.x * n2;\n this.addHalfVertex(t4, e2.x + e2.y * r2, e2.y - e2.x * r2, s2, false, r2, i2), this.addHalfVertex(t4, a2, o2, s2, true, -n2, i2), this.distance > Ul / 2 && 0 === this.totalDistance && (this.distance = 0, this.updateScaledDistance(), this.addCurrentVertex(t4, e2, r2, n2, i2, s2));\n }\n addHalfVertex({ x: t4, y: e2 }, r2, n2, i2, s2, a2, o2) {\n const l2 = 0.5 * (this.lineClips ? this.scaledDistance * (Ul - 1) : this.scaledDistance);\n this.layoutVertexArray.emplaceBack((t4 << 1) + (i2 ? 1 : 0), (e2 << 1) + (s2 ? 1 : 0), Math.round(63 * r2) + 128, Math.round(63 * n2) + 128, 1 + (0 === a2 ? 0 : a2 < 0 ? -1 : 1) | (63 & l2) << 2, l2 >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length);\n const u2 = o2.vertexLength++;\n this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, this.e2, u2), o2.primitiveLength++), s2 ? this.e2 = u2 : this.e1 = u2;\n }\n updateScaledDistance() {\n this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance;\n }\n updateDistance(t4, e2) {\n this.distance += t4.dist(e2), this.updateScaledDistance();\n }\n }\n let Nl, Zl;\n wi(\"LineBucket\", ql, { omit: [\"layers\", \"patternFeatures\"] });\n var Gl = { get paint() {\n return Zl = Zl || new rs({ \"line-opacity\": new Wi(G.paint_line[\"line-opacity\"]), \"line-color\": new Wi(G.paint_line[\"line-color\"]), \"line-translate\": new Ji(G.paint_line[\"line-translate\"]), \"line-translate-anchor\": new Ji(G.paint_line[\"line-translate-anchor\"]), \"line-width\": new Wi(G.paint_line[\"line-width\"]), \"line-gap-width\": new Wi(G.paint_line[\"line-gap-width\"]), \"line-offset\": new Wi(G.paint_line[\"line-offset\"]), \"line-blur\": new Wi(G.paint_line[\"line-blur\"]), \"line-dasharray\": new ts(G.paint_line[\"line-dasharray\"]), \"line-pattern\": new Qi(G.paint_line[\"line-pattern\"]), \"line-gradient\": new es(G.paint_line[\"line-gradient\"]) });\n }, get layout() {\n return Nl = Nl || new rs({ \"line-cap\": new Ji(G.layout_line[\"line-cap\"]), \"line-join\": new Wi(G.layout_line[\"line-join\"]), \"line-miter-limit\": new Ji(G.layout_line[\"line-miter-limit\"]), \"line-round-limit\": new Ji(G.layout_line[\"line-round-limit\"]), \"line-sort-key\": new Wi(G.layout_line[\"line-sort-key\"]) });\n } };\n class Kl extends Wi {\n possiblyEvaluate(t4, e2) {\n return e2 = new Ui(Math.floor(e2.zoom), { now: e2.now, fadeDuration: e2.fadeDuration, zoomHistory: e2.zoomHistory, transition: e2.transition }), super.possiblyEvaluate(t4, e2);\n }\n evaluate(t4, e2, r2, n2) {\n return e2 = g({}, e2, { zoom: Math.floor(e2.zoom) }), super.evaluate(t4, e2, r2, n2);\n }\n }\n let Xl;\n class Hl extends is {\n constructor(t4) {\n super(t4, Gl), this.gradientVersion = 0, Xl || (Xl = new Kl(Gl.paint.properties[\"line-width\"].specification), Xl.useIntegerZoom = true);\n }\n _handleSpecialPaintPropertyUpdate(t4) {\n if (\"line-gradient\" === t4) {\n const t5 = this.gradientExpression();\n this.stepInterpolant = !!function(t6) {\n return void 0 !== t6._styleExpression;\n }(t5) && t5._styleExpression.expression instanceof Ae, this.gradientVersion = (this.gradientVersion + 1) % Number.MAX_SAFE_INTEGER;\n }\n }\n gradientExpression() {\n return this._transitionablePaint._values[\"line-gradient\"].value.expression;\n }\n recalculate(t4, e2) {\n super.recalculate(t4, e2), this.paint._values[\"line-floorwidth\"] = Xl.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value, t4);\n }\n createBucket(t4) {\n return new ql(t4);\n }\n queryRadius(t4) {\n const e2 = t4, r2 = Yl(to(\"line-width\", this, e2), to(\"line-gap-width\", this, e2)), n2 = to(\"line-offset\", this, e2);\n return r2 / 2 + Math.abs(n2) + eo(this.paint.get(\"line-translate\"));\n }\n queryIntersectsFeature(t4, e2, r2, n2, i2, a2, o2) {\n const l2 = ro(t4, this.paint.get(\"line-translate\"), this.paint.get(\"line-translate-anchor\"), a2.angle, o2), u2 = o2 / 2 * Yl(this.paint.get(\"line-width\").evaluate(e2, r2), this.paint.get(\"line-gap-width\").evaluate(e2, r2)), c2 = this.paint.get(\"line-offset\").evaluate(e2, r2);\n return c2 && (n2 = function(t5, e3) {\n const r3 = [];\n for (let n3 = 0; n3 < t5.length; n3++) {\n const i3 = t5[n3], a3 = [];\n for (let t6 = 0; t6 < i3.length; t6++) {\n const r4 = i3[t6 - 1], n4 = i3[t6], o3 = i3[t6 + 1], l3 = 0 === t6 ? new s(0, 0) : n4.sub(r4)._unit()._perp(), u3 = t6 === i3.length - 1 ? new s(0, 0) : o3.sub(n4)._unit()._perp(), c3 = l3._add(u3)._unit(), h2 = c3.x * u3.x + c3.y * u3.y;\n 0 !== h2 && c3._mult(1 / h2), a3.push(c3._mult(e3)._add(n4));\n }\n r3.push(a3);\n }\n return r3;\n }(n2, c2 * o2)), function(t5, e3, r3) {\n for (let n3 = 0; n3 < e3.length; n3++) {\n const i3 = e3[n3];\n if (t5.length >= 3) {\n for (let e4 = 0; e4 < i3.length; e4++) if (Wa(t5, i3[e4])) return true;\n }\n if (Ga(t5, i3, r3)) return true;\n }\n return false;\n }(l2, n2, u2);\n }\n isTileClipped() {\n return true;\n }\n }\n function Yl(t4, e2) {\n return e2 > 0 ? e2 + 2 * t4 : t4;\n }\n const Jl = ls([{ name: \"a_pos_offset\", components: 4, type: \"Int16\" }, { name: \"a_data\", components: 4, type: \"Uint16\" }, { name: \"a_pixeloffset\", components: 4, type: \"Int16\" }], 4), Wl = ls([{ name: \"a_projected_pos\", components: 3, type: \"Float32\" }], 4);\n ls([{ name: \"a_fade_opacity\", components: 1, type: \"Uint32\" }], 4);\n const Ql = ls([{ name: \"a_placed\", components: 2, type: \"Uint8\" }, { name: \"a_shift\", components: 2, type: \"Float32\" }, { name: \"a_box_real\", components: 2, type: \"Int16\" }]);\n ls([{ type: \"Int16\", name: \"anchorPointX\" }, { type: \"Int16\", name: \"anchorPointY\" }, { type: \"Int16\", name: \"x1\" }, { type: \"Int16\", name: \"y1\" }, { type: \"Int16\", name: \"x2\" }, { type: \"Int16\", name: \"y2\" }, { type: \"Uint32\", name: \"featureIndex\" }, { type: \"Uint16\", name: \"sourceLayerIndex\" }, { type: \"Uint16\", name: \"bucketIndex\" }]);\n const tu = ls([{ name: \"a_pos\", components: 2, type: \"Int16\" }, { name: \"a_anchor_pos\", components: 2, type: \"Int16\" }, { name: \"a_extrude\", components: 2, type: \"Int16\" }], 4), eu = ls([{ name: \"a_pos\", components: 2, type: \"Float32\" }, { name: \"a_radius\", components: 1, type: \"Float32\" }, { name: \"a_flags\", components: 2, type: \"Int16\" }], 4);\n function ru(t4, e2, r2) {\n return t4.sections.forEach((t5) => {\n t5.text = function(t6, e3, r3) {\n const n2 = e3.layout.get(\"text-transform\").evaluate(r3, {});\n return \"uppercase\" === n2 ? t6 = t6.toLocaleUpperCase() : \"lowercase\" === n2 && (t6 = t6.toLocaleLowerCase()), Ri.applyArabicShaping && (t6 = Ri.applyArabicShaping(t6)), t6;\n }(t5.text, e2, r2);\n }), t4;\n }\n ls([{ name: \"triangle\", components: 3, type: \"Uint16\" }]), ls([{ type: \"Int16\", name: \"anchorX\" }, { type: \"Int16\", name: \"anchorY\" }, { type: \"Uint16\", name: \"glyphStartIndex\" }, { type: \"Uint16\", name: \"numGlyphs\" }, { type: \"Uint32\", name: \"vertexStartIndex\" }, { type: \"Uint32\", name: \"lineStartIndex\" }, { type: \"Uint32\", name: \"lineLength\" }, { type: \"Uint16\", name: \"segment\" }, { type: \"Uint16\", name: \"lowerSize\" }, { type: \"Uint16\", name: \"upperSize\" }, { type: \"Float32\", name: \"lineOffsetX\" }, { type: \"Float32\", name: \"lineOffsetY\" }, { type: \"Uint8\", name: \"writingMode\" }, { type: \"Uint8\", name: \"placedOrientation\" }, { type: \"Uint8\", name: \"hidden\" }, { type: \"Uint32\", name: \"crossTileID\" }, { type: \"Int16\", name: \"associatedIconIndex\" }]), ls([{ type: \"Int16\", name: \"anchorX\" }, { type: \"Int16\", name: \"anchorY\" }, { type: \"Int16\", name: \"rightJustifiedTextSymbolIndex\" }, { type: \"Int16\", name: \"centerJustifiedTextSymbolIndex\" }, { type: \"Int16\", name: \"leftJustifiedTextSymbolIndex\" }, { type: \"Int16\", name: \"verticalPlacedTextSymbolIndex\" }, { type: \"Int16\", name: \"placedIconSymbolIndex\" }, { type: \"Int16\", name: \"verticalPlacedIconSymbolIndex\" }, { type: \"Uint16\", name: \"key\" }, { type: \"Uint16\", name: \"textBoxStartIndex\" }, { type: \"Uint16\", name: \"textBoxEndIndex\" }, { type: \"Uint16\", name: \"verticalTextBoxStartIndex\" }, { type: \"Uint16\", name: \"verticalTextBoxEndIndex\" }, { type: \"Uint16\", name: \"iconBoxStartIndex\" }, { type: \"Uint16\", name: \"iconBoxEndIndex\" }, { type: \"Uint16\", name: \"verticalIconBoxStartIndex\" }, { type: \"Uint16\", name: \"verticalIconBoxEndIndex\" }, { type: \"Uint16\", name: \"featureIndex\" }, { type: \"Uint16\", name: \"numHorizontalGlyphVertices\" }, { type: \"Uint16\", name: \"numVerticalGlyphVertices\" }, { type: \"Uint16\", name: \"numIconVertices\" }, { type: \"Uint16\", name: \"numVerticalIconVertices\" }, { type: \"Uint16\", name: \"useRuntimeCollisionCircles\" }, { type: \"Uint32\", name: \"crossTileID\" }, { type: \"Float32\", name: \"textBoxScale\" }, { type: \"Float32\", name: \"collisionCircleDiameter\" }, { type: \"Uint16\", name: \"textAnchorOffsetStartIndex\" }, { type: \"Uint16\", name: \"textAnchorOffsetEndIndex\" }]), ls([{ type: \"Float32\", name: \"offsetX\" }]), ls([{ type: \"Int16\", name: \"x\" }, { type: \"Int16\", name: \"y\" }, { type: \"Int16\", name: \"tileUnitDistanceFromAnchor\" }]), ls([{ type: \"Uint16\", name: \"textAnchor\" }, { type: \"Float32\", components: 2, name: \"textOffset\" }]);\n const nu = { \"!\": \"\\uFE15\", \"#\": \"\\uFF03\", $: \"\\uFF04\", \"%\": \"\\uFF05\", \"&\": \"\\uFF06\", \"(\": \"\\uFE35\", \")\": \"\\uFE36\", \"*\": \"\\uFF0A\", \"+\": \"\\uFF0B\", \",\": \"\\uFE10\", \"-\": \"\\uFE32\", \".\": \"\\u30FB\", \"/\": \"\\uFF0F\", \":\": \"\\uFE13\", \";\": \"\\uFE14\", \"<\": \"\\uFE3F\", \"=\": \"\\uFF1D\", \">\": \"\\uFE40\", \"?\": \"\\uFE16\", \"@\": \"\\uFF20\", \"[\": \"\\uFE47\", \"\\\\\": \"\\uFF3C\", \"]\": \"\\uFE48\", \"^\": \"\\uFF3E\", _: \"\\uFE33\", \"`\": \"\\uFF40\", \"{\": \"\\uFE37\", \"|\": \"\\u2015\", \"}\": \"\\uFE38\", \"~\": \"\\uFF5E\", \"\\xA2\": \"\\uFFE0\", \"\\xA3\": \"\\uFFE1\", \"\\xA5\": \"\\uFFE5\", \"\\xA6\": \"\\uFFE4\", \"\\xAC\": \"\\uFFE2\", \"\\xAF\": \"\\uFFE3\", \"\\u2013\": \"\\uFE32\", \"\\u2014\": \"\\uFE31\", \"\\u2018\": \"\\uFE43\", \"\\u2019\": \"\\uFE44\", \"\\u201C\": \"\\uFE41\", \"\\u201D\": \"\\uFE42\", \"\\u2026\": \"\\uFE19\", \"\\u2027\": \"\\u30FB\", \"\\u20A9\": \"\\uFFE6\", \"\\u3001\": \"\\uFE11\", \"\\u3002\": \"\\uFE12\", \"\\u3008\": \"\\uFE3F\", \"\\u3009\": \"\\uFE40\", \"\\u300A\": \"\\uFE3D\", \"\\u300B\": \"\\uFE3E\", \"\\u300C\": \"\\uFE41\", \"\\u300D\": \"\\uFE42\", \"\\u300E\": \"\\uFE43\", \"\\u300F\": \"\\uFE44\", \"\\u3010\": \"\\uFE3B\", \"\\u3011\": \"\\uFE3C\", \"\\u3014\": \"\\uFE39\", \"\\u3015\": \"\\uFE3A\", \"\\u3016\": \"\\uFE17\", \"\\u3017\": \"\\uFE18\", \"\\uFF01\": \"\\uFE15\", \"\\uFF08\": \"\\uFE35\", \"\\uFF09\": \"\\uFE36\", \"\\uFF0C\": \"\\uFE10\", \"\\uFF0D\": \"\\uFE32\", \"\\uFF0E\": \"\\u30FB\", \"\\uFF1A\": \"\\uFE13\", \"\\uFF1B\": \"\\uFE14\", \"\\uFF1C\": \"\\uFE3F\", \"\\uFF1E\": \"\\uFE40\", \"\\uFF1F\": \"\\uFE16\", \"\\uFF3B\": \"\\uFE47\", \"\\uFF3D\": \"\\uFE48\", \"\\uFF3F\": \"\\uFE33\", \"\\uFF5B\": \"\\uFE37\", \"\\uFF5C\": \"\\u2015\", \"\\uFF5D\": \"\\uFE38\", \"\\uFF5F\": \"\\uFE35\", \"\\uFF60\": \"\\uFE36\", \"\\uFF61\": \"\\uFE12\", \"\\uFF62\": \"\\uFE41\", \"\\uFF63\": \"\\uFE42\" };\n var iu = 24, su = lu, au = function(t4, e2, r2, n2, i2) {\n var s2, a2, o2 = 8 * i2 - n2 - 1, l2 = (1 << o2) - 1, u2 = l2 >> 1, c2 = -7, h2 = r2 ? i2 - 1 : 0, p2 = r2 ? -1 : 1, f2 = t4[e2 + h2];\n for (h2 += p2, s2 = f2 & (1 << -c2) - 1, f2 >>= -c2, c2 += o2; c2 > 0; s2 = 256 * s2 + t4[e2 + h2], h2 += p2, c2 -= 8) ;\n for (a2 = s2 & (1 << -c2) - 1, s2 >>= -c2, c2 += n2; c2 > 0; a2 = 256 * a2 + t4[e2 + h2], h2 += p2, c2 -= 8) ;\n if (0 === s2) s2 = 1 - u2;\n else {\n if (s2 === l2) return a2 ? NaN : 1 / 0 * (f2 ? -1 : 1);\n a2 += Math.pow(2, n2), s2 -= u2;\n }\n return (f2 ? -1 : 1) * a2 * Math.pow(2, s2 - n2);\n }, ou = function(t4, e2, r2, n2, i2, s2) {\n var a2, o2, l2, u2 = 8 * s2 - i2 - 1, c2 = (1 << u2) - 1, h2 = c2 >> 1, p2 = 23 === i2 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, f2 = n2 ? 0 : s2 - 1, d2 = n2 ? 1 : -1, y2 = e2 < 0 || 0 === e2 && 1 / e2 < 0 ? 1 : 0;\n for (e2 = Math.abs(e2), isNaN(e2) || e2 === 1 / 0 ? (o2 = isNaN(e2) ? 1 : 0, a2 = c2) : (a2 = Math.floor(Math.log(e2) / Math.LN2), e2 * (l2 = Math.pow(2, -a2)) < 1 && (a2--, l2 *= 2), (e2 += a2 + h2 >= 1 ? p2 / l2 : p2 * Math.pow(2, 1 - h2)) * l2 >= 2 && (a2++, l2 /= 2), a2 + h2 >= c2 ? (o2 = 0, a2 = c2) : a2 + h2 >= 1 ? (o2 = (e2 * l2 - 1) * Math.pow(2, i2), a2 += h2) : (o2 = e2 * Math.pow(2, h2 - 1) * Math.pow(2, i2), a2 = 0)); i2 >= 8; t4[r2 + f2] = 255 & o2, f2 += d2, o2 /= 256, i2 -= 8) ;\n for (a2 = a2 << i2 | o2, u2 += i2; u2 > 0; t4[r2 + f2] = 255 & a2, f2 += d2, a2 /= 256, u2 -= 8) ;\n t4[r2 + f2 - d2] |= 128 * y2;\n };\n function lu(t4) {\n this.buf = ArrayBuffer.isView && ArrayBuffer.isView(t4) ? t4 : new Uint8Array(t4 || 0), this.pos = 0, this.type = 0, this.length = this.buf.length;\n }\n lu.Varint = 0, lu.Fixed64 = 1, lu.Bytes = 2, lu.Fixed32 = 5;\n var uu = 4294967296, cu = 1 / uu, hu = \"undefined\" == typeof TextDecoder ? null : new TextDecoder(\"utf-8\");\n function pu(t4) {\n return t4.type === lu.Bytes ? t4.readVarint() + t4.pos : t4.pos + 1;\n }\n function fu(t4, e2, r2) {\n return r2 ? 4294967296 * e2 + (t4 >>> 0) : 4294967296 * (e2 >>> 0) + (t4 >>> 0);\n }\n function du(t4, e2, r2) {\n var n2 = e2 <= 16383 ? 1 : e2 <= 2097151 ? 2 : e2 <= 268435455 ? 3 : Math.floor(Math.log(e2) / (7 * Math.LN2));\n r2.realloc(n2);\n for (var i2 = r2.pos - 1; i2 >= t4; i2--) r2.buf[i2 + n2] = r2.buf[i2];\n }\n function yu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeVarint(t4[r2]);\n }\n function mu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeSVarint(t4[r2]);\n }\n function gu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeFloat(t4[r2]);\n }\n function xu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeDouble(t4[r2]);\n }\n function vu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeBoolean(t4[r2]);\n }\n function bu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeFixed32(t4[r2]);\n }\n function wu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeSFixed32(t4[r2]);\n }\n function _u(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeFixed64(t4[r2]);\n }\n function Au(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeSFixed64(t4[r2]);\n }\n function Su(t4, e2) {\n return (t4[e2] | t4[e2 + 1] << 8 | t4[e2 + 2] << 16) + 16777216 * t4[e2 + 3];\n }\n function ku(t4, e2, r2) {\n t4[r2] = e2, t4[r2 + 1] = e2 >>> 8, t4[r2 + 2] = e2 >>> 16, t4[r2 + 3] = e2 >>> 24;\n }\n function Mu(t4, e2) {\n return (t4[e2] | t4[e2 + 1] << 8 | t4[e2 + 2] << 16) + (t4[e2 + 3] << 24);\n }\n lu.prototype = { destroy: function() {\n this.buf = null;\n }, readFields: function(t4, e2, r2) {\n for (r2 = r2 || this.length; this.pos < r2; ) {\n var n2 = this.readVarint(), i2 = n2 >> 3, s2 = this.pos;\n this.type = 7 & n2, t4(i2, e2, this), this.pos === s2 && this.skip(n2);\n }\n return e2;\n }, readMessage: function(t4, e2) {\n return this.readFields(t4, e2, this.readVarint() + this.pos);\n }, readFixed32: function() {\n var t4 = Su(this.buf, this.pos);\n return this.pos += 4, t4;\n }, readSFixed32: function() {\n var t4 = Mu(this.buf, this.pos);\n return this.pos += 4, t4;\n }, readFixed64: function() {\n var t4 = Su(this.buf, this.pos) + Su(this.buf, this.pos + 4) * uu;\n return this.pos += 8, t4;\n }, readSFixed64: function() {\n var t4 = Su(this.buf, this.pos) + Mu(this.buf, this.pos + 4) * uu;\n return this.pos += 8, t4;\n }, readFloat: function() {\n var t4 = au(this.buf, this.pos, true, 23, 4);\n return this.pos += 4, t4;\n }, readDouble: function() {\n var t4 = au(this.buf, this.pos, true, 52, 8);\n return this.pos += 8, t4;\n }, readVarint: function(t4) {\n var e2, r2, n2 = this.buf;\n return e2 = 127 & (r2 = n2[this.pos++]), r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 7, r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 14, r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 21, r2 < 128 ? e2 : function(t5, e3, r3) {\n var n3, i2, s2 = r3.buf;\n if (n3 = (112 & (i2 = s2[r3.pos++])) >> 4, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (127 & (i2 = s2[r3.pos++])) << 3, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (127 & (i2 = s2[r3.pos++])) << 10, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (127 & (i2 = s2[r3.pos++])) << 17, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (127 & (i2 = s2[r3.pos++])) << 24, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (1 & (i2 = s2[r3.pos++])) << 31, i2 < 128) return fu(t5, n3, e3);\n throw new Error(\"Expected varint not more than 10 bytes\");\n }(e2 |= (15 & (r2 = n2[this.pos])) << 28, t4, this))));\n }, readVarint64: function() {\n return this.readVarint(true);\n }, readSVarint: function() {\n var t4 = this.readVarint();\n return t4 % 2 == 1 ? (t4 + 1) / -2 : t4 / 2;\n }, readBoolean: function() {\n return Boolean(this.readVarint());\n }, readString: function() {\n var t4 = this.readVarint() + this.pos, e2 = this.pos;\n return this.pos = t4, t4 - e2 >= 12 && hu ? function(t5, e3, r2) {\n return hu.decode(t5.subarray(e3, r2));\n }(this.buf, e2, t4) : function(t5, e3, r2) {\n for (var n2 = \"\", i2 = e3; i2 < r2; ) {\n var s2, a2, o2, l2 = t5[i2], u2 = null, c2 = l2 > 239 ? 4 : l2 > 223 ? 3 : l2 > 191 ? 2 : 1;\n if (i2 + c2 > r2) break;\n 1 === c2 ? l2 < 128 && (u2 = l2) : 2 === c2 ? 128 == (192 & (s2 = t5[i2 + 1])) && (u2 = (31 & l2) << 6 | 63 & s2) <= 127 && (u2 = null) : 3 === c2 ? (a2 = t5[i2 + 2], 128 == (192 & (s2 = t5[i2 + 1])) && 128 == (192 & a2) && ((u2 = (15 & l2) << 12 | (63 & s2) << 6 | 63 & a2) <= 2047 || u2 >= 55296 && u2 <= 57343) && (u2 = null)) : 4 === c2 && (a2 = t5[i2 + 2], o2 = t5[i2 + 3], 128 == (192 & (s2 = t5[i2 + 1])) && 128 == (192 & a2) && 128 == (192 & o2) && ((u2 = (15 & l2) << 18 | (63 & s2) << 12 | (63 & a2) << 6 | 63 & o2) <= 65535 || u2 >= 1114112) && (u2 = null)), null === u2 ? (u2 = 65533, c2 = 1) : u2 > 65535 && (u2 -= 65536, n2 += String.fromCharCode(u2 >>> 10 & 1023 | 55296), u2 = 56320 | 1023 & u2), n2 += String.fromCharCode(u2), i2 += c2;\n }\n return n2;\n }(this.buf, e2, t4);\n }, readBytes: function() {\n var t4 = this.readVarint() + this.pos, e2 = this.buf.subarray(this.pos, t4);\n return this.pos = t4, e2;\n }, readPackedVarint: function(t4, e2) {\n if (this.type !== lu.Bytes) return t4.push(this.readVarint(e2));\n var r2 = pu(this);\n for (t4 = t4 || []; this.pos < r2; ) t4.push(this.readVarint(e2));\n return t4;\n }, readPackedSVarint: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readSVarint());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readSVarint());\n return t4;\n }, readPackedBoolean: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readBoolean());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readBoolean());\n return t4;\n }, readPackedFloat: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readFloat());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readFloat());\n return t4;\n }, readPackedDouble: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readDouble());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readDouble());\n return t4;\n }, readPackedFixed32: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readFixed32());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readFixed32());\n return t4;\n }, readPackedSFixed32: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readSFixed32());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readSFixed32());\n return t4;\n }, readPackedFixed64: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readFixed64());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readFixed64());\n return t4;\n }, readPackedSFixed64: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readSFixed64());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readSFixed64());\n return t4;\n }, skip: function(t4) {\n var e2 = 7 & t4;\n if (e2 === lu.Varint) for (; this.buf[this.pos++] > 127; ) ;\n else if (e2 === lu.Bytes) this.pos = this.readVarint() + this.pos;\n else if (e2 === lu.Fixed32) this.pos += 4;\n else {\n if (e2 !== lu.Fixed64) throw new Error(\"Unimplemented type: \" + e2);\n this.pos += 8;\n }\n }, writeTag: function(t4, e2) {\n this.writeVarint(t4 << 3 | e2);\n }, realloc: function(t4) {\n for (var e2 = this.length || 16; e2 < this.pos + t4; ) e2 *= 2;\n if (e2 !== this.length) {\n var r2 = new Uint8Array(e2);\n r2.set(this.buf), this.buf = r2, this.length = e2;\n }\n }, finish: function() {\n return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length);\n }, writeFixed32: function(t4) {\n this.realloc(4), ku(this.buf, t4, this.pos), this.pos += 4;\n }, writeSFixed32: function(t4) {\n this.realloc(4), ku(this.buf, t4, this.pos), this.pos += 4;\n }, writeFixed64: function(t4) {\n this.realloc(8), ku(this.buf, -1 & t4, this.pos), ku(this.buf, Math.floor(t4 * cu), this.pos + 4), this.pos += 8;\n }, writeSFixed64: function(t4) {\n this.realloc(8), ku(this.buf, -1 & t4, this.pos), ku(this.buf, Math.floor(t4 * cu), this.pos + 4), this.pos += 8;\n }, writeVarint: function(t4) {\n (t4 = +t4 || 0) > 268435455 || t4 < 0 ? function(t5, e2) {\n var r2, n2;\n if (t5 >= 0 ? (r2 = t5 % 4294967296 | 0, n2 = t5 / 4294967296 | 0) : (n2 = ~(-t5 / 4294967296), 4294967295 ^ (r2 = ~(-t5 % 4294967296)) ? r2 = r2 + 1 | 0 : (r2 = 0, n2 = n2 + 1 | 0)), t5 >= 18446744073709552e3 || t5 < -18446744073709552e3) throw new Error(\"Given varint doesn't fit into 10 bytes\");\n e2.realloc(10), function(t6, e3, r3) {\n r3.buf[r3.pos++] = 127 & t6 | 128, t6 >>>= 7, r3.buf[r3.pos++] = 127 & t6 | 128, t6 >>>= 7, r3.buf[r3.pos++] = 127 & t6 | 128, t6 >>>= 7, r3.buf[r3.pos++] = 127 & t6 | 128, r3.buf[r3.pos] = 127 & (t6 >>>= 7);\n }(r2, 0, e2), function(t6, e3) {\n var r3 = (7 & t6) << 4;\n e3.buf[e3.pos++] |= r3 | ((t6 >>>= 3) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6 | ((t6 >>>= 7) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6 | ((t6 >>>= 7) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6 | ((t6 >>>= 7) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6 | ((t6 >>>= 7) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6)))));\n }(n2, e2);\n }(t4, this) : (this.realloc(4), this.buf[this.pos++] = 127 & t4 | (t4 > 127 ? 128 : 0), t4 <= 127 || (this.buf[this.pos++] = 127 & (t4 >>>= 7) | (t4 > 127 ? 128 : 0), t4 <= 127 || (this.buf[this.pos++] = 127 & (t4 >>>= 7) | (t4 > 127 ? 128 : 0), t4 <= 127 || (this.buf[this.pos++] = t4 >>> 7 & 127))));\n }, writeSVarint: function(t4) {\n this.writeVarint(t4 < 0 ? 2 * -t4 - 1 : 2 * t4);\n }, writeBoolean: function(t4) {\n this.writeVarint(Boolean(t4));\n }, writeString: function(t4) {\n t4 = String(t4), this.realloc(4 * t4.length), this.pos++;\n var e2 = this.pos;\n this.pos = function(t5, e3, r3) {\n for (var n2, i2, s2 = 0; s2 < e3.length; s2++) {\n if ((n2 = e3.charCodeAt(s2)) > 55295 && n2 < 57344) {\n if (!i2) {\n n2 > 56319 || s2 + 1 === e3.length ? (t5[r3++] = 239, t5[r3++] = 191, t5[r3++] = 189) : i2 = n2;\n continue;\n }\n if (n2 < 56320) {\n t5[r3++] = 239, t5[r3++] = 191, t5[r3++] = 189, i2 = n2;\n continue;\n }\n n2 = i2 - 55296 << 10 | n2 - 56320 | 65536, i2 = null;\n } else i2 && (t5[r3++] = 239, t5[r3++] = 191, t5[r3++] = 189, i2 = null);\n n2 < 128 ? t5[r3++] = n2 : (n2 < 2048 ? t5[r3++] = n2 >> 6 | 192 : (n2 < 65536 ? t5[r3++] = n2 >> 12 | 224 : (t5[r3++] = n2 >> 18 | 240, t5[r3++] = n2 >> 12 & 63 | 128), t5[r3++] = n2 >> 6 & 63 | 128), t5[r3++] = 63 & n2 | 128);\n }\n return r3;\n }(this.buf, t4, this.pos);\n var r2 = this.pos - e2;\n r2 >= 128 && du(e2, r2, this), this.pos = e2 - 1, this.writeVarint(r2), this.pos += r2;\n }, writeFloat: function(t4) {\n this.realloc(4), ou(this.buf, t4, this.pos, true, 23, 4), this.pos += 4;\n }, writeDouble: function(t4) {\n this.realloc(8), ou(this.buf, t4, this.pos, true, 52, 8), this.pos += 8;\n }, writeBytes: function(t4) {\n var e2 = t4.length;\n this.writeVarint(e2), this.realloc(e2);\n for (var r2 = 0; r2 < e2; r2++) this.buf[this.pos++] = t4[r2];\n }, writeRawMessage: function(t4, e2) {\n this.pos++;\n var r2 = this.pos;\n t4(e2, this);\n var n2 = this.pos - r2;\n n2 >= 128 && du(r2, n2, this), this.pos = r2 - 1, this.writeVarint(n2), this.pos += n2;\n }, writeMessage: function(t4, e2, r2) {\n this.writeTag(t4, lu.Bytes), this.writeRawMessage(e2, r2);\n }, writePackedVarint: function(t4, e2) {\n e2.length && this.writeMessage(t4, yu, e2);\n }, writePackedSVarint: function(t4, e2) {\n e2.length && this.writeMessage(t4, mu, e2);\n }, writePackedBoolean: function(t4, e2) {\n e2.length && this.writeMessage(t4, vu, e2);\n }, writePackedFloat: function(t4, e2) {\n e2.length && this.writeMessage(t4, gu, e2);\n }, writePackedDouble: function(t4, e2) {\n e2.length && this.writeMessage(t4, xu, e2);\n }, writePackedFixed32: function(t4, e2) {\n e2.length && this.writeMessage(t4, bu, e2);\n }, writePackedSFixed32: function(t4, e2) {\n e2.length && this.writeMessage(t4, wu, e2);\n }, writePackedFixed64: function(t4, e2) {\n e2.length && this.writeMessage(t4, _u, e2);\n }, writePackedSFixed64: function(t4, e2) {\n e2.length && this.writeMessage(t4, Au, e2);\n }, writeBytesField: function(t4, e2) {\n this.writeTag(t4, lu.Bytes), this.writeBytes(e2);\n }, writeFixed32Field: function(t4, e2) {\n this.writeTag(t4, lu.Fixed32), this.writeFixed32(e2);\n }, writeSFixed32Field: function(t4, e2) {\n this.writeTag(t4, lu.Fixed32), this.writeSFixed32(e2);\n }, writeFixed64Field: function(t4, e2) {\n this.writeTag(t4, lu.Fixed64), this.writeFixed64(e2);\n }, writeSFixed64Field: function(t4, e2) {\n this.writeTag(t4, lu.Fixed64), this.writeSFixed64(e2);\n }, writeVarintField: function(t4, e2) {\n this.writeTag(t4, lu.Varint), this.writeVarint(e2);\n }, writeSVarintField: function(t4, e2) {\n this.writeTag(t4, lu.Varint), this.writeSVarint(e2);\n }, writeStringField: function(t4, e2) {\n this.writeTag(t4, lu.Bytes), this.writeString(e2);\n }, writeFloatField: function(t4, e2) {\n this.writeTag(t4, lu.Fixed32), this.writeFloat(e2);\n }, writeDoubleField: function(t4, e2) {\n this.writeTag(t4, lu.Fixed64), this.writeDouble(e2);\n }, writeBooleanField: function(t4, e2) {\n this.writeVarintField(t4, Boolean(e2));\n } };\n var Iu = r(su);\n const zu = 3;\n function Pu(t4, e2, r2) {\n 1 === t4 && r2.readMessage(Cu, e2);\n }\n function Cu(t4, e2, r2) {\n if (3 === t4) {\n const { id: t5, bitmap: n2, width: i2, height: s2, left: a2, top: o2, advance: l2 } = r2.readMessage(Bu, {});\n e2.push({ id: t5, bitmap: new _o({ width: i2 + 2 * zu, height: s2 + 2 * zu }, n2), metrics: { width: i2, height: s2, left: a2, top: o2, advance: l2 } });\n }\n }\n function Bu(t4, e2, r2) {\n 1 === t4 ? e2.id = r2.readVarint() : 2 === t4 ? e2.bitmap = r2.readBytes() : 3 === t4 ? e2.width = r2.readVarint() : 4 === t4 ? e2.height = r2.readVarint() : 5 === t4 ? e2.left = r2.readSVarint() : 6 === t4 ? e2.top = r2.readSVarint() : 7 === t4 && (e2.advance = r2.readVarint());\n }\n const Vu = zu;\n function Eu(t4) {\n let e2 = 0, r2 = 0;\n for (const n3 of t4) e2 += n3.w * n3.h, r2 = Math.max(r2, n3.w);\n t4.sort((t5, e3) => e3.h - t5.h);\n const n2 = [{ x: 0, y: 0, w: Math.max(Math.ceil(Math.sqrt(e2 / 0.95)), r2), h: 1 / 0 }];\n let i2 = 0, s2 = 0;\n for (const e3 of t4) for (let t5 = n2.length - 1; t5 >= 0; t5--) {\n const r3 = n2[t5];\n if (!(e3.w > r3.w || e3.h > r3.h)) {\n if (e3.x = r3.x, e3.y = r3.y, s2 = Math.max(s2, e3.y + e3.h), i2 = Math.max(i2, e3.x + e3.w), e3.w === r3.w && e3.h === r3.h) {\n const e4 = n2.pop();\n t5 < n2.length && (n2[t5] = e4);\n } else e3.h === r3.h ? (r3.x += e3.w, r3.w -= e3.w) : e3.w === r3.w ? (r3.y += e3.h, r3.h -= e3.h) : (n2.push({ x: r3.x + e3.w, y: r3.y, w: r3.w - e3.w, h: e3.h }), r3.y += e3.h, r3.h -= e3.h);\n break;\n }\n }\n return { w: i2, h: s2, fill: e2 / (i2 * s2) || 0 };\n }\n const Fu = 1;\n class Tu {\n constructor(t4, { pixelRatio: e2, version: r2, stretchX: n2, stretchY: i2, content: s2, textFitWidth: a2, textFitHeight: o2 }) {\n this.paddedRect = t4, this.pixelRatio = e2, this.stretchX = n2, this.stretchY = i2, this.content = s2, this.version = r2, this.textFitWidth = a2, this.textFitHeight = o2;\n }\n get tl() {\n return [this.paddedRect.x + Fu, this.paddedRect.y + Fu];\n }\n get br() {\n return [this.paddedRect.x + this.paddedRect.w - Fu, this.paddedRect.y + this.paddedRect.h - Fu];\n }\n get tlbr() {\n return this.tl.concat(this.br);\n }\n get displaySize() {\n return [(this.paddedRect.w - 2 * Fu) / this.pixelRatio, (this.paddedRect.h - 2 * Fu) / this.pixelRatio];\n }\n }\n class $u {\n constructor(t4, e2) {\n const r2 = {}, n2 = {};\n this.haveRenderCallbacks = [];\n const i2 = [];\n this.addImages(t4, r2, i2), this.addImages(e2, n2, i2);\n const { w: s2, h: a2 } = Eu(i2), o2 = new Ao({ width: s2 || 1, height: a2 || 1 });\n for (const e3 in t4) {\n const n3 = t4[e3], i3 = r2[e3].paddedRect;\n Ao.copy(n3.data, o2, { x: 0, y: 0 }, { x: i3.x + Fu, y: i3.y + Fu }, n3.data);\n }\n for (const t5 in e2) {\n const r3 = e2[t5], i3 = n2[t5].paddedRect, s3 = i3.x + Fu, a3 = i3.y + Fu, l2 = r3.data.width, u2 = r3.data.height;\n Ao.copy(r3.data, o2, { x: 0, y: 0 }, { x: s3, y: a3 }, r3.data), Ao.copy(r3.data, o2, { x: 0, y: u2 - 1 }, { x: s3, y: a3 - 1 }, { width: l2, height: 1 }), Ao.copy(r3.data, o2, { x: 0, y: 0 }, { x: s3, y: a3 + u2 }, { width: l2, height: 1 }), Ao.copy(r3.data, o2, { x: l2 - 1, y: 0 }, { x: s3 - 1, y: a3 }, { width: 1, height: u2 }), Ao.copy(r3.data, o2, { x: 0, y: 0 }, { x: s3 + l2, y: a3 }, { width: 1, height: u2 });\n }\n this.image = o2, this.iconPositions = r2, this.patternPositions = n2;\n }\n addImages(t4, e2, r2) {\n for (const n2 in t4) {\n const i2 = t4[n2], s2 = { x: 0, y: 0, w: i2.data.width + 2 * Fu, h: i2.data.height + 2 * Fu };\n r2.push(s2), e2[n2] = new Tu(s2, i2), i2.hasRenderCallback && this.haveRenderCallbacks.push(n2);\n }\n }\n patchUpdatedImages(t4, e2) {\n t4.dispatchRenderCallbacks(this.haveRenderCallbacks);\n for (const r2 in t4.updatedImages) this.patchUpdatedImage(this.iconPositions[r2], t4.getImage(r2), e2), this.patchUpdatedImage(this.patternPositions[r2], t4.getImage(r2), e2);\n }\n patchUpdatedImage(t4, e2, r2) {\n if (!t4 || !e2) return;\n if (t4.version === e2.version) return;\n t4.version = e2.version;\n const [n2, i2] = t4.tl;\n r2.update(e2.data, void 0, { x: n2, y: i2 });\n }\n }\n var Lu;\n wi(\"ImagePosition\", Tu), wi(\"ImageAtlas\", $u), t.ah = void 0, (Lu = t.ah || (t.ah = {}))[Lu.none = 0] = \"none\", Lu[Lu.horizontal = 1] = \"horizontal\", Lu[Lu.vertical = 2] = \"vertical\", Lu[Lu.horizontalOnly = 3] = \"horizontalOnly\";\n const Du = -17;\n class Ou {\n constructor() {\n this.scale = 1, this.fontStack = \"\", this.imageName = null;\n }\n static forText(t4, e2) {\n const r2 = new Ou();\n return r2.scale = t4 || 1, r2.fontStack = e2, r2;\n }\n static forImage(t4) {\n const e2 = new Ou();\n return e2.imageName = t4, e2;\n }\n }\n class ju {\n constructor() {\n this.text = \"\", this.sectionIndex = [], this.sections = [], this.imageSectionID = null;\n }\n static fromFeature(t4, e2) {\n const r2 = new ju();\n for (let n2 = 0; n2 < t4.sections.length; n2++) {\n const i2 = t4.sections[n2];\n i2.image ? r2.addImageSection(i2) : r2.addTextSection(i2, e2);\n }\n return r2;\n }\n length() {\n return this.text.length;\n }\n getSection(t4) {\n return this.sections[this.sectionIndex[t4]];\n }\n getSectionIndex(t4) {\n return this.sectionIndex[t4];\n }\n getCharCode(t4) {\n return this.text.charCodeAt(t4);\n }\n verticalizePunctuation() {\n this.text = function(t4) {\n let e2 = \"\";\n for (let r2 = 0; r2 < t4.length; r2++) {\n const n2 = t4.charCodeAt(r2 + 1) || null, i2 = t4.charCodeAt(r2 - 1) || null;\n e2 += n2 && $i(n2) && !nu[t4[r2 + 1]] || i2 && $i(i2) && !nu[t4[r2 - 1]] || !nu[t4[r2]] ? t4[r2] : nu[t4[r2]];\n }\n return e2;\n }(this.text);\n }\n trim() {\n let t4 = 0;\n for (let e3 = 0; e3 < this.text.length && Uu[this.text.charCodeAt(e3)]; e3++) t4++;\n let e2 = this.text.length;\n for (let r2 = this.text.length - 1; r2 >= 0 && r2 >= t4 && Uu[this.text.charCodeAt(r2)]; r2--) e2--;\n this.text = this.text.substring(t4, e2), this.sectionIndex = this.sectionIndex.slice(t4, e2);\n }\n substring(t4, e2) {\n const r2 = new ju();\n return r2.text = this.text.substring(t4, e2), r2.sectionIndex = this.sectionIndex.slice(t4, e2), r2.sections = this.sections, r2;\n }\n toString() {\n return this.text;\n }\n getMaxScale() {\n return this.sectionIndex.reduce((t4, e2) => Math.max(t4, this.sections[e2].scale), 0);\n }\n addTextSection(t4, e2) {\n this.text += t4.text, this.sections.push(Ou.forText(t4.scale, t4.fontStack || e2));\n const r2 = this.sections.length - 1;\n for (let e3 = 0; e3 < t4.text.length; ++e3) this.sectionIndex.push(r2);\n }\n addImageSection(t4) {\n const e2 = t4.image ? t4.image.name : \"\";\n if (0 === e2.length) return void A2(\"Can't add FormattedSection with an empty image.\");\n const r2 = this.getNextImageSectionCharCode();\n r2 ? (this.text += String.fromCharCode(r2), this.sections.push(Ou.forImage(e2)), this.sectionIndex.push(this.sections.length - 1)) : A2(\"Reached maximum number of images 6401\");\n }\n getNextImageSectionCharCode() {\n return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID);\n }\n }\n function Ru(e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2) {\n const m2 = ju.fromFeature(e2, s2);\n let g2;\n p2 === t.ah.vertical && m2.verticalizePunctuation();\n const { processBidirectionalText: x2, processStyledBidirectionalText: v2 } = Ri;\n if (x2 && 1 === m2.sections.length) {\n g2 = [];\n const t4 = x2(m2.toString(), Yu(m2, c2, a2, r2, i2, d2));\n for (const e3 of t4) {\n const t5 = new ju();\n t5.text = e3, t5.sections = m2.sections;\n for (let r3 = 0; r3 < e3.length; r3++) t5.sectionIndex.push(0);\n g2.push(t5);\n }\n } else if (v2) {\n g2 = [];\n const t4 = v2(m2.text, m2.sectionIndex, Yu(m2, c2, a2, r2, i2, d2));\n for (const e3 of t4) {\n const t5 = new ju();\n t5.text = e3[0], t5.sectionIndex = e3[1], t5.sections = m2.sections, g2.push(t5);\n }\n } else g2 = function(t4, e3) {\n const r3 = [], n3 = t4.text;\n let i3 = 0;\n for (const n4 of e3) r3.push(t4.substring(i3, n4)), i3 = n4;\n return i3 < n3.length && r3.push(t4.substring(i3, n3.length)), r3;\n }(m2, Yu(m2, c2, a2, r2, i2, d2));\n const b2 = [], w2 = { positionedLines: b2, text: m2.toString(), top: h2[1], bottom: h2[1], left: h2[0], right: h2[0], writingMode: p2, iconsInText: false, verticalizable: false };\n return function(e3, r3, n3, i3, s3, a3, o3, l3, u3, c3, h3, p3) {\n let f3 = 0, d3 = Du, y3 = 0, m3 = 0;\n const g3 = \"right\" === l3 ? 1 : \"left\" === l3 ? 0 : 0.5;\n let x3 = 0;\n for (const o4 of s3) {\n o4.trim();\n const s4 = o4.getMaxScale(), l4 = (s4 - 1) * iu, b4 = { positionedGlyphs: [], lineOffset: 0 };\n e3.positionedLines[x3] = b4;\n const w4 = b4.positionedGlyphs;\n let _3 = 0;\n if (!o4.length()) {\n d3 += a3, ++x3;\n continue;\n }\n for (let a4 = 0; a4 < o4.length(); a4++) {\n const y4 = o4.getSection(a4), m4 = o4.getSectionIndex(a4), g4 = o4.getCharCode(a4);\n let x4 = 0, b5 = null, A4 = null, S2 = null, k2 = iu;\n const M2 = !(u3 === t.ah.horizontal || !h3 && !Ti(g4) || h3 && (Uu[g4] || (v3 = g4, new RegExp(\"\\\\p{sc=Arab}\", \"u\").test(String.fromCodePoint(v3)))));\n if (y4.imageName) {\n const t4 = i3[y4.imageName];\n if (!t4) continue;\n S2 = y4.imageName, e3.iconsInText = e3.iconsInText || true, A4 = t4.paddedRect;\n const r4 = t4.displaySize;\n y4.scale = y4.scale * iu / p3, b5 = { width: r4[0], height: r4[1], left: Fu, top: -Vu, advance: M2 ? r4[1] : r4[0] }, x4 = l4 + (iu - r4[1] * y4.scale), k2 = b5.advance;\n const n4 = M2 ? r4[0] * y4.scale - iu * s4 : r4[1] * y4.scale - iu * s4;\n n4 > 0 && n4 > _3 && (_3 = n4);\n } else {\n const t4 = n3[y4.fontStack], e4 = t4 && t4[g4];\n if (e4 && e4.rect) A4 = e4.rect, b5 = e4.metrics;\n else {\n const t5 = r3[y4.fontStack], e5 = t5 && t5[g4];\n if (!e5) continue;\n b5 = e5.metrics;\n }\n x4 = (s4 - y4.scale) * iu;\n }\n M2 ? (e3.verticalizable = true, w4.push({ glyph: g4, imageName: S2, x: f3, y: d3 + x4, vertical: M2, scale: y4.scale, fontStack: y4.fontStack, sectionIndex: m4, metrics: b5, rect: A4 }), f3 += k2 * y4.scale + c3) : (w4.push({ glyph: g4, imageName: S2, x: f3, y: d3 + x4, vertical: M2, scale: y4.scale, fontStack: y4.fontStack, sectionIndex: m4, metrics: b5, rect: A4 }), f3 += b5.advance * y4.scale + c3);\n }\n 0 !== w4.length && (y3 = Math.max(f3 - c3, y3), Wu(w4, 0, w4.length - 1, g3, _3)), f3 = 0;\n const A3 = a3 * s4 + _3;\n b4.lineOffset = Math.max(_3, l4), d3 += A3, m3 = Math.max(A3, m3), ++x3;\n }\n var v3;\n const b3 = d3 - Du, { horizontalAlign: w3, verticalAlign: _2 } = Ju(o3);\n (function(t4, e4, r4, n4, i4, s4, a4, o4, l4) {\n const u4 = (e4 - r4) * i4;\n let c4 = 0;\n c4 = s4 !== a4 ? -o4 * n4 - Du : (-n4 * l4 + 0.5) * a4;\n for (const e5 of t4) for (const t5 of e5.positionedGlyphs) t5.x += u4, t5.y += c4;\n })(e3.positionedLines, g3, w3, _2, y3, m3, a3, b3, s3.length), e3.top += -_2 * b3, e3.bottom = e3.top + b3, e3.left += -w3 * y3, e3.right = e3.left + y3;\n }(w2, r2, n2, i2, g2, o2, l2, u2, p2, c2, f2, y2), !function(t4) {\n for (const e3 of t4) if (0 !== e3.positionedGlyphs.length) return false;\n return true;\n }(b2) && w2;\n }\n const Uu = { 9: true, 10: true, 11: true, 12: true, 13: true, 32: true }, qu = { 10: true, 32: true, 38: true, 41: true, 43: true, 45: true, 47: true, 173: true, 183: true, 8203: true, 8208: true, 8211: true, 8231: true }, Nu = { 40: true };\n function Zu(t4, e2, r2, n2, i2, s2) {\n if (e2.imageName) {\n const t5 = n2[e2.imageName];\n return t5 ? t5.displaySize[0] * e2.scale * iu / s2 + i2 : 0;\n }\n {\n const n3 = r2[e2.fontStack], s3 = n3 && n3[t4];\n return s3 ? s3.metrics.advance * e2.scale + i2 : 0;\n }\n }\n function Gu(t4, e2, r2, n2) {\n const i2 = Math.pow(t4 - e2, 2);\n return n2 ? t4 < e2 ? i2 / 2 : 2 * i2 : i2 + Math.abs(r2) * r2;\n }\n function Ku(t4, e2, r2) {\n let n2 = 0;\n return 10 === t4 && (n2 -= 1e4), r2 && (n2 += 150), 40 !== t4 && 65288 !== t4 || (n2 += 50), 41 !== e2 && 65289 !== e2 || (n2 += 50), n2;\n }\n function Xu(t4, e2, r2, n2, i2, s2) {\n let a2 = null, o2 = Gu(e2, r2, i2, s2);\n for (const t5 of n2) {\n const n3 = Gu(e2 - t5.x, r2, i2, s2) + t5.badness;\n n3 <= o2 && (a2 = t5, o2 = n3);\n }\n return { index: t4, x: e2, priorBreak: a2, badness: o2 };\n }\n function Hu(t4) {\n return t4 ? Hu(t4.priorBreak).concat(t4.index) : [];\n }\n function Yu(t4, e2, r2, n2, i2, s2) {\n if (!t4) return [];\n const a2 = [], o2 = function(t5, e3, r3, n3, i3, s3) {\n let a3 = 0;\n for (let r4 = 0; r4 < t5.length(); r4++) {\n const o3 = t5.getSection(r4);\n a3 += Zu(t5.getCharCode(r4), o3, n3, i3, e3, s3);\n }\n return a3 / Math.max(1, Math.ceil(a3 / r3));\n }(t4, e2, r2, n2, i2, s2), l2 = t4.text.indexOf(\"\\u200B\") >= 0;\n let u2 = 0;\n for (let r3 = 0; r3 < t4.length(); r3++) {\n const h2 = t4.getSection(r3), p2 = t4.getCharCode(r3);\n if (Uu[p2] || (u2 += Zu(p2, h2, n2, i2, e2, s2)), r3 < t4.length() - 1) {\n const e3 = !((c2 = p2) < 11904) && (!!zi[\"CJK Compatibility Forms\"](c2) || !!zi[\"CJK Compatibility\"](c2) || !!zi[\"CJK Strokes\"](c2) || !!zi[\"CJK Symbols and Punctuation\"](c2) || !!zi[\"Enclosed CJK Letters and Months\"](c2) || !!zi[\"Halfwidth and Fullwidth Forms\"](c2) || !!zi[\"Ideographic Description Characters\"](c2) || !!zi[\"Vertical Forms\"](c2) || Fi.test(String.fromCodePoint(c2)));\n (qu[p2] || e3 || h2.imageName || r3 !== t4.length() - 2 && Nu[t4.getCharCode(r3 + 1)]) && a2.push(Xu(r3 + 1, u2, o2, a2, Ku(p2, t4.getCharCode(r3 + 1), e3 && l2), false));\n }\n }\n var c2;\n return Hu(Xu(t4.length(), u2, o2, a2, 0, true));\n }\n function Ju(t4) {\n let e2 = 0.5, r2 = 0.5;\n switch (t4) {\n case \"right\":\n case \"top-right\":\n case \"bottom-right\":\n e2 = 1;\n break;\n case \"left\":\n case \"top-left\":\n case \"bottom-left\":\n e2 = 0;\n }\n switch (t4) {\n case \"bottom\":\n case \"bottom-right\":\n case \"bottom-left\":\n r2 = 1;\n break;\n case \"top\":\n case \"top-right\":\n case \"top-left\":\n r2 = 0;\n }\n return { horizontalAlign: e2, verticalAlign: r2 };\n }\n function Wu(t4, e2, r2, n2, i2) {\n if (!n2 && !i2) return;\n const s2 = t4[r2], a2 = (t4[r2].x + s2.metrics.advance * s2.scale) * n2;\n for (let n3 = e2; n3 <= r2; n3++) t4[n3].x -= a2, t4[n3].y += i2;\n }\n function Qu(t4, e2, r2) {\n const { horizontalAlign: n2, verticalAlign: i2 } = Ju(r2), s2 = e2[0] - t4.displaySize[0] * n2, a2 = e2[1] - t4.displaySize[1] * i2;\n return { image: t4, top: a2, bottom: a2 + t4.displaySize[1], left: s2, right: s2 + t4.displaySize[0] };\n }\n function tc(t4) {\n var e2, r2;\n let n2 = t4.left, i2 = t4.top, s2 = t4.right - n2, a2 = t4.bottom - i2;\n const o2 = null !== (e2 = t4.image.textFitWidth) && void 0 !== e2 ? e2 : \"stretchOrShrink\", l2 = null !== (r2 = t4.image.textFitHeight) && void 0 !== r2 ? r2 : \"stretchOrShrink\", u2 = (t4.image.content[2] - t4.image.content[0]) / (t4.image.content[3] - t4.image.content[1]);\n if (\"proportional\" === l2) {\n if (\"stretchOnly\" === o2 && s2 / a2 < u2 || \"proportional\" === o2) {\n const t5 = Math.ceil(a2 * u2);\n n2 *= t5 / s2, s2 = t5;\n }\n } else if (\"proportional\" === o2 && \"stretchOnly\" === l2 && 0 !== u2 && s2 / a2 > u2) {\n const t5 = Math.ceil(s2 / u2);\n i2 *= t5 / a2, a2 = t5;\n }\n return { x1: n2, y1: i2, x2: n2 + s2, y2: i2 + a2 };\n }\n function ec(t4, e2, r2, n2, i2, s2) {\n const a2 = t4.image;\n let o2;\n if (a2.content) {\n const t5 = a2.content, e3 = a2.pixelRatio || 1;\n o2 = [t5[0] / e3, t5[1] / e3, a2.displaySize[0] - t5[2] / e3, a2.displaySize[1] - t5[3] / e3];\n }\n const l2 = e2.left * s2, u2 = e2.right * s2;\n let c2, h2, p2, f2;\n \"width\" === r2 || \"both\" === r2 ? (f2 = i2[0] + l2 - n2[3], h2 = i2[0] + u2 + n2[1]) : (f2 = i2[0] + (l2 + u2 - a2.displaySize[0]) / 2, h2 = f2 + a2.displaySize[0]);\n const d2 = e2.top * s2, y2 = e2.bottom * s2;\n return \"height\" === r2 || \"both\" === r2 ? (c2 = i2[1] + d2 - n2[0], p2 = i2[1] + y2 + n2[2]) : (c2 = i2[1] + (d2 + y2 - a2.displaySize[1]) / 2, p2 = c2 + a2.displaySize[1]), { image: a2, top: c2, right: h2, bottom: p2, left: f2, collisionPadding: o2 };\n }\n const rc = 255, nc = 128, ic = rc * nc;\n function sc(t4, e2) {\n const { expression: r2 } = e2;\n if (\"constant\" === r2.kind) return { kind: \"constant\", layoutSize: r2.evaluate(new Ui(t4 + 1)) };\n if (\"source\" === r2.kind) return { kind: \"source\" };\n {\n const { zoomStops: e3, interpolationType: n2 } = r2;\n let i2 = 0;\n for (; i2 < e3.length && e3[i2] <= t4; ) i2++;\n i2 = Math.max(0, i2 - 1);\n let s2 = i2;\n for (; s2 < e3.length && e3[s2] < t4 + 1; ) s2++;\n s2 = Math.min(e3.length - 1, s2);\n const a2 = e3[i2], o2 = e3[s2];\n return \"composite\" === r2.kind ? { kind: \"composite\", minZoom: a2, maxZoom: o2, interpolationType: n2 } : { kind: \"camera\", minZoom: a2, maxZoom: o2, minSize: r2.evaluate(new Ui(a2)), maxSize: r2.evaluate(new Ui(o2)), interpolationType: n2 };\n }\n }\n function ac(t4, e2, r2) {\n let n2 = \"never\";\n const i2 = t4.get(e2);\n return i2 ? n2 = i2 : t4.get(r2) && (n2 = \"always\"), n2;\n }\n const oc = fl.VectorTileFeature.types, lc = [{ name: \"a_fade_opacity\", components: 1, type: \"Uint8\", offset: 0 }];\n function uc(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2) {\n const f2 = o2 ? Math.min(ic, Math.round(o2[0])) : 0, d2 = o2 ? Math.min(ic, Math.round(o2[1])) : 0;\n t4.emplaceBack(e2, r2, Math.round(32 * n2), Math.round(32 * i2), s2, a2, (f2 << 1) + (l2 ? 1 : 0), d2, 16 * u2, 16 * c2, 256 * h2, 256 * p2);\n }\n function cc(t4, e2, r2) {\n t4.emplaceBack(e2.x, e2.y, r2), t4.emplaceBack(e2.x, e2.y, r2), t4.emplaceBack(e2.x, e2.y, r2), t4.emplaceBack(e2.x, e2.y, r2);\n }\n function hc(t4) {\n for (const e2 of t4.sections) if (ji(e2.text)) return true;\n return false;\n }\n class pc {\n constructor(t4) {\n this.layoutVertexArray = new Ws(), this.indexArray = new na(), this.programConfigurations = t4, this.segments = new oa(), this.dynamicLayoutVertexArray = new Qs(), this.opacityVertexArray = new ta(), this.hasVisibleVertices = false, this.placedSymbolArray = new $s();\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length && 0 === this.indexArray.length && 0 === this.dynamicLayoutVertexArray.length && 0 === this.opacityVertexArray.length;\n }\n upload(t4, e2, r2, n2) {\n this.isEmpty() || (r2 && (this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, Jl.members), this.indexBuffer = t4.createIndexBuffer(this.indexArray, e2), this.dynamicLayoutVertexBuffer = t4.createVertexBuffer(this.dynamicLayoutVertexArray, Wl.members, true), this.opacityVertexBuffer = t4.createVertexBuffer(this.opacityVertexArray, lc, true), this.opacityVertexBuffer.itemSize = 1), (r2 || n2) && this.programConfigurations.upload(t4));\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy());\n }\n }\n wi(\"SymbolBuffers\", pc);\n class fc {\n constructor(t4, e2, r2) {\n this.layoutVertexArray = new t4(), this.layoutAttributes = e2, this.indexArray = new r2(), this.segments = new oa(), this.collisionVertexArray = new ra();\n }\n upload(t4) {\n this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = t4.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = t4.createVertexBuffer(this.collisionVertexArray, Ql.members, true);\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy());\n }\n }\n wi(\"CollisionBuffers\", fc);\n class dc {\n constructor(e2) {\n this.collisionBoxArray = e2.collisionBoxArray, this.zoom = e2.zoom, this.overscaling = e2.overscaling, this.layers = e2.layers, this.layerIds = this.layers.map((t4) => t4.id), this.index = e2.index, this.pixelRatio = e2.pixelRatio, this.sourceLayerIndex = e2.sourceLayerIndex, this.hasPattern = false, this.hasRTLText = false, this.sortKeyRanges = [], this.collisionCircleArray = [], this.placementInvProjMatrix = lo([]), this.placementViewportMatrix = lo([]);\n const r2 = this.layers[0]._unevaluatedLayout._values;\n this.textSizeData = sc(this.zoom, r2[\"text-size\"]), this.iconSizeData = sc(this.zoom, r2[\"icon-size\"]);\n const n2 = this.layers[0].layout, i2 = n2.get(\"symbol-sort-key\"), s2 = n2.get(\"symbol-z-order\");\n this.canOverlap = \"never\" !== ac(n2, \"text-overlap\", \"text-allow-overlap\") || \"never\" !== ac(n2, \"icon-overlap\", \"icon-allow-overlap\") || n2.get(\"text-ignore-placement\") || n2.get(\"icon-ignore-placement\"), this.sortFeaturesByKey = \"viewport-y\" !== s2 && !i2.isConstant(), this.sortFeaturesByY = (\"viewport-y\" === s2 || \"auto\" === s2 && !this.sortFeaturesByKey) && this.canOverlap, \"point\" === n2.get(\"symbol-placement\") && (this.writingModes = n2.get(\"text-writing-mode\").map((e3) => t.ah[e3])), this.stateDependentLayerIds = this.layers.filter((t4) => t4.isStateDependent()).map((t4) => t4.id), this.sourceID = e2.sourceID;\n }\n createArrays() {\n this.text = new pc(new Ea(this.layers, this.zoom, (t4) => /^text/.test(t4))), this.icon = new pc(new Ea(this.layers, this.zoom, (t4) => /^icon/.test(t4))), this.glyphOffsetArray = new Os(), this.lineVertexArray = new js(), this.symbolInstances = new Ds(), this.textAnchorOffsets = new Us();\n }\n calculateGlyphDependencies(t4, e2, r2, n2, i2) {\n for (let s2 = 0; s2 < t4.length; s2++) if (e2[t4.charCodeAt(s2)] = true, (r2 || n2) && i2) {\n const r3 = nu[t4.charAt(s2)];\n r3 && (e2[r3.charCodeAt(0)] = true);\n }\n }\n populate(e2, r2, n2) {\n const i2 = this.layers[0], s2 = i2.layout, a2 = s2.get(\"text-font\"), o2 = s2.get(\"text-field\"), l2 = s2.get(\"icon-image\"), u2 = (\"constant\" !== o2.value.kind || o2.value.value instanceof Yt && !o2.value.value.isEmpty() || o2.value.value.toString().length > 0) && (\"constant\" !== a2.value.kind || a2.value.value.length > 0), c2 = \"constant\" !== l2.value.kind || !!l2.value.value || Object.keys(l2.parameters).length > 0, h2 = s2.get(\"symbol-sort-key\");\n if (this.features = [], !u2 && !c2) return;\n const p2 = r2.iconDependencies, f2 = r2.glyphDependencies, d2 = r2.availableImages, y2 = new Ui(this.zoom);\n for (const { feature: r3, id: o3, index: l3, sourceLayerIndex: m2 } of e2) {\n const e3 = i2._featureFilter.needGeometry, g2 = ja(r3, e3);\n if (!i2._featureFilter.filter(y2, g2, n2)) continue;\n let x2, v2;\n if (e3 || (g2.geometry = Oa(r3)), u2) {\n const t4 = i2.getValueAndResolveTokens(\"text-field\", g2, n2, d2), e4 = Yt.factory(t4), r4 = this.hasRTLText = this.hasRTLText || hc(e4);\n (!r4 || \"unavailable\" === Ri.getRTLTextPluginStatus() || r4 && Ri.isParsed()) && (x2 = ru(e4, i2, g2));\n }\n if (c2) {\n const t4 = i2.getValueAndResolveTokens(\"icon-image\", g2, n2, d2);\n v2 = t4 instanceof te ? t4 : te.fromString(t4);\n }\n if (!x2 && !v2) continue;\n const b2 = this.sortFeaturesByKey ? h2.evaluate(g2, {}, n2) : void 0;\n if (this.features.push({ id: o3, text: x2, icon: v2, index: l3, sourceLayerIndex: m2, geometry: g2.geometry, properties: r3.properties, type: oc[r3.type], sortKey: b2 }), v2 && (p2[v2.name] = true), x2) {\n const e4 = a2.evaluate(g2, {}, n2).join(\",\"), r4 = \"viewport\" !== s2.get(\"text-rotation-alignment\") && \"point\" !== s2.get(\"symbol-placement\");\n this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(t.ah.vertical) >= 0;\n for (const t4 of x2.sections) if (t4.image) p2[t4.image.name] = true;\n else {\n const n3 = Pi(x2.toString()), i3 = t4.fontStack || e4, s3 = f2[i3] = f2[i3] || {};\n this.calculateGlyphDependencies(t4.text, s3, r4, this.allowVerticalPlacement, n3);\n }\n }\n }\n \"line\" === s2.get(\"symbol-placement\") && (this.features = function(t4) {\n const e3 = {}, r3 = {}, n3 = [];\n let i3 = 0;\n function s3(e4) {\n n3.push(t4[e4]), i3++;\n }\n function a3(t5, e4, i4) {\n const s4 = r3[t5];\n return delete r3[t5], r3[e4] = s4, n3[s4].geometry[0].pop(), n3[s4].geometry[0] = n3[s4].geometry[0].concat(i4[0]), s4;\n }\n function o3(t5, r4, i4) {\n const s4 = e3[r4];\n return delete e3[r4], e3[t5] = s4, n3[s4].geometry[0].shift(), n3[s4].geometry[0] = i4[0].concat(n3[s4].geometry[0]), s4;\n }\n function l3(t5, e4, r4) {\n const n4 = r4 ? e4[0][e4[0].length - 1] : e4[0][0];\n return `${t5}:${n4.x}:${n4.y}`;\n }\n for (let u3 = 0; u3 < t4.length; u3++) {\n const c3 = t4[u3], h3 = c3.geometry, p3 = c3.text ? c3.text.toString() : null;\n if (!p3) {\n s3(u3);\n continue;\n }\n const f3 = l3(p3, h3), d3 = l3(p3, h3, true);\n if (f3 in r3 && d3 in e3 && r3[f3] !== e3[d3]) {\n const t5 = o3(f3, d3, h3), i4 = a3(f3, d3, n3[t5].geometry);\n delete e3[f3], delete r3[d3], r3[l3(p3, n3[i4].geometry, true)] = i4, n3[t5].geometry = null;\n } else f3 in r3 ? a3(f3, d3, h3) : d3 in e3 ? o3(f3, d3, h3) : (s3(u3), e3[f3] = i3 - 1, r3[d3] = i3 - 1);\n }\n return n3.filter((t5) => t5.geometry);\n }(this.features)), this.sortFeaturesByKey && this.features.sort((t4, e3) => t4.sortKey - e3.sortKey);\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(t4, e2, this.layers, r2), this.icon.programConfigurations.updatePaintArrays(t4, e2, this.layers, r2));\n }\n isEmpty() {\n return 0 === this.symbolInstances.length && !this.hasRTLText;\n }\n uploadPending() {\n return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload;\n }\n upload(t4) {\n !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(t4), this.iconCollisionBox.upload(t4)), this.text.upload(t4, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(t4, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = true;\n }\n destroyDebugData() {\n this.textCollisionBox.destroy(), this.iconCollisionBox.destroy();\n }\n destroy() {\n this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData();\n }\n addToLineVertexArray(t4, e2) {\n const r2 = this.lineVertexArray.length;\n if (void 0 !== t4.segment) {\n let r3 = t4.dist(e2[t4.segment + 1]), n2 = t4.dist(e2[t4.segment]);\n const i2 = {};\n for (let n3 = t4.segment + 1; n3 < e2.length; n3++) i2[n3] = { x: e2[n3].x, y: e2[n3].y, tileUnitDistanceFromAnchor: r3 }, n3 < e2.length - 1 && (r3 += e2[n3 + 1].dist(e2[n3]));\n for (let r4 = t4.segment || 0; r4 >= 0; r4--) i2[r4] = { x: e2[r4].x, y: e2[r4].y, tileUnitDistanceFromAnchor: n2 }, r4 > 0 && (n2 += e2[r4 - 1].dist(e2[r4]));\n for (let t5 = 0; t5 < e2.length; t5++) {\n const e3 = i2[t5];\n this.lineVertexArray.emplaceBack(e3.x, e3.y, e3.tileUnitDistanceFromAnchor);\n }\n }\n return { lineStartIndex: r2, lineLength: this.lineVertexArray.length - r2 };\n }\n addSymbols(e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2) {\n const f2 = e2.indexArray, d2 = e2.layoutVertexArray, y2 = e2.segments.prepareSegment(4 * r2.length, d2, f2, this.canOverlap ? a2.sortKey : void 0), m2 = this.glyphOffsetArray.length, g2 = y2.vertexLength, x2 = this.allowVerticalPlacement && o2 === t.ah.vertical ? Math.PI / 2 : 0, v2 = a2.text && a2.text.sections;\n for (let t4 = 0; t4 < r2.length; t4++) {\n const { tl: i3, tr: s3, bl: o3, br: u3, tex: c3, pixelOffsetTL: h3, pixelOffsetBR: m3, minFontScaleX: g3, minFontScaleY: b2, glyphOffset: w2, isSDF: _2, sectionIndex: A3 } = r2[t4], S2 = y2.vertexLength, k2 = w2[1];\n uc(d2, l2.x, l2.y, i3.x, k2 + i3.y, c3.x, c3.y, n2, _2, h3.x, h3.y, g3, b2), uc(d2, l2.x, l2.y, s3.x, k2 + s3.y, c3.x + c3.w, c3.y, n2, _2, m3.x, h3.y, g3, b2), uc(d2, l2.x, l2.y, o3.x, k2 + o3.y, c3.x, c3.y + c3.h, n2, _2, h3.x, m3.y, g3, b2), uc(d2, l2.x, l2.y, u3.x, k2 + u3.y, c3.x + c3.w, c3.y + c3.h, n2, _2, m3.x, m3.y, g3, b2), cc(e2.dynamicLayoutVertexArray, l2, x2), f2.emplaceBack(S2, S2 + 1, S2 + 2), f2.emplaceBack(S2 + 1, S2 + 2, S2 + 3), y2.vertexLength += 4, y2.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(w2[0]), t4 !== r2.length - 1 && A3 === r2[t4 + 1].sectionIndex || e2.programConfigurations.populatePaintArrays(d2.length, a2, a2.index, {}, p2, v2 && v2[A3]);\n }\n e2.placedSymbolArray.emplaceBack(l2.x, l2.y, m2, this.glyphOffsetArray.length - m2, g2, u2, c2, l2.segment, n2 ? n2[0] : 0, n2 ? n2[1] : 0, i2[0], i2[1], o2, 0, false, 0, h2);\n }\n _addCollisionDebugVertex(t4, e2, r2, n2, i2, s2) {\n return e2.emplaceBack(0, 0), t4.emplaceBack(r2.x, r2.y, n2, i2, Math.round(s2.x), Math.round(s2.y));\n }\n addCollisionDebugVertices(t4, e2, r2, n2, i2, a2, o2) {\n const l2 = i2.segments.prepareSegment(4, i2.layoutVertexArray, i2.indexArray), u2 = l2.vertexLength, c2 = i2.layoutVertexArray, h2 = i2.collisionVertexArray, p2 = o2.anchorX, f2 = o2.anchorY;\n this._addCollisionDebugVertex(c2, h2, a2, p2, f2, new s(t4, e2)), this._addCollisionDebugVertex(c2, h2, a2, p2, f2, new s(r2, e2)), this._addCollisionDebugVertex(c2, h2, a2, p2, f2, new s(r2, n2)), this._addCollisionDebugVertex(c2, h2, a2, p2, f2, new s(t4, n2)), l2.vertexLength += 4;\n const d2 = i2.indexArray;\n d2.emplaceBack(u2, u2 + 1), d2.emplaceBack(u2 + 1, u2 + 2), d2.emplaceBack(u2 + 2, u2 + 3), d2.emplaceBack(u2 + 3, u2), l2.primitiveLength += 4;\n }\n addDebugCollisionBoxes(t4, e2, r2, n2) {\n for (let i2 = t4; i2 < e2; i2++) {\n const t5 = this.collisionBoxArray.get(i2);\n this.addCollisionDebugVertices(t5.x1, t5.y1, t5.x2, t5.y2, n2 ? this.textCollisionBox : this.iconCollisionBox, t5.anchorPoint, r2);\n }\n }\n generateCollisionDebugBuffers() {\n this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new fc(ea, tu.members, ia), this.iconCollisionBox = new fc(ea, tu.members, ia);\n for (let t4 = 0; t4 < this.symbolInstances.length; t4++) {\n const e2 = this.symbolInstances.get(t4);\n this.addDebugCollisionBoxes(e2.textBoxStartIndex, e2.textBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.verticalTextBoxStartIndex, e2.verticalTextBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.iconBoxStartIndex, e2.iconBoxEndIndex, e2, false), this.addDebugCollisionBoxes(e2.verticalIconBoxStartIndex, e2.verticalIconBoxEndIndex, e2, false);\n }\n }\n _deserializeCollisionBoxesForSymbol(t4, e2, r2, n2, i2, s2, a2, o2, l2) {\n const u2 = {};\n for (let n3 = e2; n3 < r2; n3++) {\n const e3 = t4.get(n3);\n u2.textBox = { x1: e3.x1, y1: e3.y1, x2: e3.x2, y2: e3.y2, anchorPointX: e3.anchorPointX, anchorPointY: e3.anchorPointY }, u2.textFeatureIndex = e3.featureIndex;\n break;\n }\n for (let e3 = n2; e3 < i2; e3++) {\n const r3 = t4.get(e3);\n u2.verticalTextBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.verticalTextFeatureIndex = r3.featureIndex;\n break;\n }\n for (let e3 = s2; e3 < a2; e3++) {\n const r3 = t4.get(e3);\n u2.iconBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.iconFeatureIndex = r3.featureIndex;\n break;\n }\n for (let e3 = o2; e3 < l2; e3++) {\n const r3 = t4.get(e3);\n u2.verticalIconBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.verticalIconFeatureIndex = r3.featureIndex;\n break;\n }\n return u2;\n }\n deserializeCollisionBoxes(t4) {\n this.collisionArrays = [];\n for (let e2 = 0; e2 < this.symbolInstances.length; e2++) {\n const r2 = this.symbolInstances.get(e2);\n this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t4, r2.textBoxStartIndex, r2.textBoxEndIndex, r2.verticalTextBoxStartIndex, r2.verticalTextBoxEndIndex, r2.iconBoxStartIndex, r2.iconBoxEndIndex, r2.verticalIconBoxStartIndex, r2.verticalIconBoxEndIndex));\n }\n }\n hasTextData() {\n return this.text.segments.get().length > 0;\n }\n hasIconData() {\n return this.icon.segments.get().length > 0;\n }\n hasDebugData() {\n return this.textCollisionBox && this.iconCollisionBox;\n }\n hasTextCollisionBoxData() {\n return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0;\n }\n hasIconCollisionBoxData() {\n return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0;\n }\n addIndicesForPlacedSymbol(t4, e2) {\n const r2 = t4.placedSymbolArray.get(e2), n2 = r2.vertexStartIndex + 4 * r2.numGlyphs;\n for (let e3 = r2.vertexStartIndex; e3 < n2; e3 += 4) t4.indexArray.emplaceBack(e3, e3 + 1, e3 + 2), t4.indexArray.emplaceBack(e3 + 1, e3 + 2, e3 + 3);\n }\n getSortedSymbolIndexes(t4) {\n if (this.sortedAngle === t4 && void 0 !== this.symbolInstanceIndexes) return this.symbolInstanceIndexes;\n const e2 = Math.sin(t4), r2 = Math.cos(t4), n2 = [], i2 = [], s2 = [];\n for (let t5 = 0; t5 < this.symbolInstances.length; ++t5) {\n s2.push(t5);\n const a2 = this.symbolInstances.get(t5);\n n2.push(0 | Math.round(e2 * a2.anchorX + r2 * a2.anchorY)), i2.push(a2.featureIndex);\n }\n return s2.sort((t5, e3) => n2[t5] - n2[e3] || i2[e3] - i2[t5]), s2;\n }\n addToSortKeyRanges(t4, e2) {\n const r2 = this.sortKeyRanges[this.sortKeyRanges.length - 1];\n r2 && r2.sortKey === e2 ? r2.symbolInstanceEnd = t4 + 1 : this.sortKeyRanges.push({ sortKey: e2, symbolInstanceStart: t4, symbolInstanceEnd: t4 + 1 });\n }\n sortFeatures(t4) {\n if (this.sortFeaturesByY && this.sortedAngle !== t4 && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) {\n this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t4), this.sortedAngle = t4, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = [];\n for (const t5 of this.symbolInstanceIndexes) {\n const e2 = this.symbolInstances.get(t5);\n this.featureSortOrder.push(e2.featureIndex), [e2.rightJustifiedTextSymbolIndex, e2.centerJustifiedTextSymbolIndex, e2.leftJustifiedTextSymbolIndex].forEach((t6, e3, r2) => {\n t6 >= 0 && r2.indexOf(t6) === e3 && this.addIndicesForPlacedSymbol(this.text, t6);\n }), e2.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, e2.verticalPlacedTextSymbolIndex), e2.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, e2.placedIconSymbolIndex), e2.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, e2.verticalPlacedIconSymbolIndex);\n }\n this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray);\n }\n }\n }\n let yc, mc;\n wi(\"SymbolBucket\", dc, { omit: [\"layers\", \"collisionBoxArray\", \"features\", \"compareText\"] }), dc.MAX_GLYPHS = 65535, dc.addDynamicAttributes = cc;\n var gc = { get paint() {\n return mc = mc || new rs({ \"icon-opacity\": new Wi(G.paint_symbol[\"icon-opacity\"]), \"icon-color\": new Wi(G.paint_symbol[\"icon-color\"]), \"icon-halo-color\": new Wi(G.paint_symbol[\"icon-halo-color\"]), \"icon-halo-width\": new Wi(G.paint_symbol[\"icon-halo-width\"]), \"icon-halo-blur\": new Wi(G.paint_symbol[\"icon-halo-blur\"]), \"icon-translate\": new Ji(G.paint_symbol[\"icon-translate\"]), \"icon-translate-anchor\": new Ji(G.paint_symbol[\"icon-translate-anchor\"]), \"text-opacity\": new Wi(G.paint_symbol[\"text-opacity\"]), \"text-color\": new Wi(G.paint_symbol[\"text-color\"], { runtimeType: pt, getOverride: (t4) => t4.textColor, hasOverride: (t4) => !!t4.textColor }), \"text-halo-color\": new Wi(G.paint_symbol[\"text-halo-color\"]), \"text-halo-width\": new Wi(G.paint_symbol[\"text-halo-width\"]), \"text-halo-blur\": new Wi(G.paint_symbol[\"text-halo-blur\"]), \"text-translate\": new Ji(G.paint_symbol[\"text-translate\"]), \"text-translate-anchor\": new Ji(G.paint_symbol[\"text-translate-anchor\"]) });\n }, get layout() {\n return yc = yc || new rs({ \"symbol-placement\": new Ji(G.layout_symbol[\"symbol-placement\"]), \"symbol-spacing\": new Ji(G.layout_symbol[\"symbol-spacing\"]), \"symbol-avoid-edges\": new Ji(G.layout_symbol[\"symbol-avoid-edges\"]), \"symbol-sort-key\": new Wi(G.layout_symbol[\"symbol-sort-key\"]), \"symbol-z-order\": new Ji(G.layout_symbol[\"symbol-z-order\"]), \"icon-allow-overlap\": new Ji(G.layout_symbol[\"icon-allow-overlap\"]), \"icon-overlap\": new Ji(G.layout_symbol[\"icon-overlap\"]), \"icon-ignore-placement\": new Ji(G.layout_symbol[\"icon-ignore-placement\"]), \"icon-optional\": new Ji(G.layout_symbol[\"icon-optional\"]), \"icon-rotation-alignment\": new Ji(G.layout_symbol[\"icon-rotation-alignment\"]), \"icon-size\": new Wi(G.layout_symbol[\"icon-size\"]), \"icon-text-fit\": new Ji(G.layout_symbol[\"icon-text-fit\"]), \"icon-text-fit-padding\": new Ji(G.layout_symbol[\"icon-text-fit-padding\"]), \"icon-image\": new Wi(G.layout_symbol[\"icon-image\"]), \"icon-rotate\": new Wi(G.layout_symbol[\"icon-rotate\"]), \"icon-padding\": new Wi(G.layout_symbol[\"icon-padding\"]), \"icon-keep-upright\": new Ji(G.layout_symbol[\"icon-keep-upright\"]), \"icon-offset\": new Wi(G.layout_symbol[\"icon-offset\"]), \"icon-anchor\": new Wi(G.layout_symbol[\"icon-anchor\"]), \"icon-pitch-alignment\": new Ji(G.layout_symbol[\"icon-pitch-alignment\"]), \"text-pitch-alignment\": new Ji(G.layout_symbol[\"text-pitch-alignment\"]), \"text-rotation-alignment\": new Ji(G.layout_symbol[\"text-rotation-alignment\"]), \"text-field\": new Wi(G.layout_symbol[\"text-field\"]), \"text-font\": new Wi(G.layout_symbol[\"text-font\"]), \"text-size\": new Wi(G.layout_symbol[\"text-size\"]), \"text-max-width\": new Wi(G.layout_symbol[\"text-max-width\"]), \"text-line-height\": new Ji(G.layout_symbol[\"text-line-height\"]), \"text-letter-spacing\": new Wi(G.layout_symbol[\"text-letter-spacing\"]), \"text-justify\": new Wi(G.layout_symbol[\"text-justify\"]), \"text-radial-offset\": new Wi(G.layout_symbol[\"text-radial-offset\"]), \"text-variable-anchor\": new Ji(G.layout_symbol[\"text-variable-anchor\"]), \"text-variable-anchor-offset\": new Wi(G.layout_symbol[\"text-variable-anchor-offset\"]), \"text-anchor\": new Wi(G.layout_symbol[\"text-anchor\"]), \"text-max-angle\": new Ji(G.layout_symbol[\"text-max-angle\"]), \"text-writing-mode\": new Ji(G.layout_symbol[\"text-writing-mode\"]), \"text-rotate\": new Wi(G.layout_symbol[\"text-rotate\"]), \"text-padding\": new Ji(G.layout_symbol[\"text-padding\"]), \"text-keep-upright\": new Ji(G.layout_symbol[\"text-keep-upright\"]), \"text-transform\": new Wi(G.layout_symbol[\"text-transform\"]), \"text-offset\": new Wi(G.layout_symbol[\"text-offset\"]), \"text-allow-overlap\": new Ji(G.layout_symbol[\"text-allow-overlap\"]), \"text-overlap\": new Ji(G.layout_symbol[\"text-overlap\"]), \"text-ignore-placement\": new Ji(G.layout_symbol[\"text-ignore-placement\"]), \"text-optional\": new Ji(G.layout_symbol[\"text-optional\"]) });\n } };\n class xc {\n constructor(t4) {\n if (void 0 === t4.property.overrides) throw new Error(\"overrides must be provided to instantiate FormatSectionOverride class\");\n this.type = t4.property.overrides ? t4.property.overrides.runtimeType : lt, this.defaultValue = t4;\n }\n evaluate(t4) {\n if (t4.formattedSection) {\n const e2 = this.defaultValue.property.overrides;\n if (e2 && e2.hasOverride(t4.formattedSection)) return e2.getOverride(t4.formattedSection);\n }\n return t4.feature && t4.featureState ? this.defaultValue.evaluate(t4.feature, t4.featureState) : this.defaultValue.property.specification.default;\n }\n eachChild(t4) {\n this.defaultValue.isConstant() || t4(this.defaultValue.value._styleExpression.expression);\n }\n outputDefined() {\n return false;\n }\n serialize() {\n return null;\n }\n }\n wi(\"FormatSectionOverride\", xc, { omit: [\"defaultValue\"] });\n class vc extends is {\n constructor(t4) {\n super(t4, gc);\n }\n recalculate(t4, e2) {\n if (super.recalculate(t4, e2), \"auto\" === this.layout.get(\"icon-rotation-alignment\") && (this.layout._values[\"icon-rotation-alignment\"] = \"point\" !== this.layout.get(\"symbol-placement\") ? \"map\" : \"viewport\"), \"auto\" === this.layout.get(\"text-rotation-alignment\") && (this.layout._values[\"text-rotation-alignment\"] = \"point\" !== this.layout.get(\"symbol-placement\") ? \"map\" : \"viewport\"), \"auto\" === this.layout.get(\"text-pitch-alignment\") && (this.layout._values[\"text-pitch-alignment\"] = \"map\" === this.layout.get(\"text-rotation-alignment\") ? \"map\" : \"viewport\"), \"auto\" === this.layout.get(\"icon-pitch-alignment\") && (this.layout._values[\"icon-pitch-alignment\"] = this.layout.get(\"icon-rotation-alignment\")), \"point\" === this.layout.get(\"symbol-placement\")) {\n const t5 = this.layout.get(\"text-writing-mode\");\n if (t5) {\n const e3 = [];\n for (const r2 of t5) e3.indexOf(r2) < 0 && e3.push(r2);\n this.layout._values[\"text-writing-mode\"] = e3;\n } else this.layout._values[\"text-writing-mode\"] = [\"horizontal\"];\n }\n this._setPaintOverrides();\n }\n getValueAndResolveTokens(t4, e2, r2, n2) {\n const i2 = this.layout.get(t4).evaluate(e2, {}, r2, n2), s2 = this._unevaluatedLayout._values[t4];\n return s2.isDataDriven() || vn(s2.value) || !i2 ? i2 : function(t5, e3) {\n return e3.replace(/{([^{}]+)}/g, (e4, r3) => t5 && r3 in t5 ? String(t5[r3]) : \"\");\n }(e2.properties, i2);\n }\n createBucket(t4) {\n return new dc(t4);\n }\n queryRadius() {\n return 0;\n }\n queryIntersectsFeature() {\n throw new Error(\"Should take a different path in FeatureIndex\");\n }\n _setPaintOverrides() {\n for (const t4 of gc.paint.overridableProperties) {\n if (!vc.hasPaintOverride(this.layout, t4)) continue;\n const e2 = this.paint.get(t4), r2 = new xc(e2), n2 = new xn(r2, e2.property.specification);\n let i2 = null;\n i2 = \"constant\" === e2.value.kind || \"source\" === e2.value.kind ? new wn(\"source\", n2) : new _n(\"composite\", n2, e2.value.zoomStops), this.paint._values[t4] = new Hi(e2.property, i2, e2.parameters);\n }\n }\n _handleOverridablePaintPropertyUpdate(t4, e2, r2) {\n return !(!this.layout || e2.isDataDriven() || r2.isDataDriven()) && vc.hasPaintOverride(this.layout, t4);\n }\n static hasPaintOverride(t4, e2) {\n const r2 = t4.get(\"text-field\"), n2 = gc.paint.properties[e2];\n let i2 = false;\n const s2 = (t5) => {\n for (const e3 of t5) if (n2.overrides && n2.overrides.hasOverride(e3)) return void (i2 = true);\n };\n if (\"constant\" === r2.value.kind && r2.value.value instanceof Yt) s2(r2.value.value.sections);\n else if (\"source\" === r2.value.kind) {\n const t5 = (e4) => {\n i2 || (e4 instanceof se && ne(e4.value) === mt ? s2(e4.value.sections) : e4 instanceof Ze ? s2(e4.sections) : e4.eachChild(t5));\n }, e3 = r2.value;\n e3._styleExpression && t5(e3._styleExpression.expression);\n }\n return i2;\n }\n }\n let bc;\n var wc = { get paint() {\n return bc = bc || new rs({ \"background-color\": new Ji(G.paint_background[\"background-color\"]), \"background-pattern\": new ts(G.paint_background[\"background-pattern\"]), \"background-opacity\": new Ji(G.paint_background[\"background-opacity\"]) });\n } };\n class _c extends is {\n constructor(t4) {\n super(t4, wc);\n }\n }\n let Ac;\n var Sc = { get paint() {\n return Ac = Ac || new rs({ \"raster-opacity\": new Ji(G.paint_raster[\"raster-opacity\"]), \"raster-hue-rotate\": new Ji(G.paint_raster[\"raster-hue-rotate\"]), \"raster-brightness-min\": new Ji(G.paint_raster[\"raster-brightness-min\"]), \"raster-brightness-max\": new Ji(G.paint_raster[\"raster-brightness-max\"]), \"raster-saturation\": new Ji(G.paint_raster[\"raster-saturation\"]), \"raster-contrast\": new Ji(G.paint_raster[\"raster-contrast\"]), \"raster-resampling\": new Ji(G.paint_raster[\"raster-resampling\"]), \"raster-fade-duration\": new Ji(G.paint_raster[\"raster-fade-duration\"]) });\n } };\n class kc extends is {\n constructor(t4) {\n super(t4, Sc);\n }\n }\n class Mc extends is {\n constructor(t4) {\n super(t4, {}), this.onAdd = (t5) => {\n this.implementation.onAdd && this.implementation.onAdd(t5, t5.painter.context.gl);\n }, this.onRemove = (t5) => {\n this.implementation.onRemove && this.implementation.onRemove(t5, t5.painter.context.gl);\n }, this.implementation = t4;\n }\n is3D() {\n return \"3d\" === this.implementation.renderingMode;\n }\n hasOffscreenPass() {\n return void 0 !== this.implementation.prerender;\n }\n recalculate() {\n }\n updateTransitions() {\n }\n hasTransition() {\n return false;\n }\n serialize() {\n throw new Error(\"Custom layers cannot be serialized\");\n }\n }\n class Ic {\n constructor(t4) {\n this._methodToThrottle = t4, this._triggered = false, \"undefined\" != typeof MessageChannel && (this._channel = new MessageChannel(), this._channel.port2.onmessage = () => {\n this._triggered = false, this._methodToThrottle();\n });\n }\n trigger() {\n this._triggered || (this._triggered = true, this._channel ? this._channel.port1.postMessage(true) : setTimeout(() => {\n this._triggered = false, this._methodToThrottle();\n }, 0));\n }\n remove() {\n delete this._channel, this._methodToThrottle = () => {\n };\n }\n }\n const zc = 63710088e-1;\n class Pc {\n constructor(t4, e2) {\n if (isNaN(t4) || isNaN(e2)) throw new Error(`Invalid LngLat object: (${t4}, ${e2})`);\n if (this.lng = +t4, this.lat = +e2, this.lat > 90 || this.lat < -90) throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\");\n }\n wrap() {\n return new Pc(m(this.lng, -180, 180), this.lat);\n }\n toArray() {\n return [this.lng, this.lat];\n }\n toString() {\n return `LngLat(${this.lng}, ${this.lat})`;\n }\n distanceTo(t4) {\n const e2 = Math.PI / 180, r2 = this.lat * e2, n2 = t4.lat * e2, i2 = Math.sin(r2) * Math.sin(n2) + Math.cos(r2) * Math.cos(n2) * Math.cos((t4.lng - this.lng) * e2);\n return zc * Math.acos(Math.min(i2, 1));\n }\n static convert(t4) {\n if (t4 instanceof Pc) return t4;\n if (Array.isArray(t4) && (2 === t4.length || 3 === t4.length)) return new Pc(Number(t4[0]), Number(t4[1]));\n if (!Array.isArray(t4) && \"object\" == typeof t4 && null !== t4) return new Pc(Number(\"lng\" in t4 ? t4.lng : t4.lon), Number(t4.lat));\n throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]\");\n }\n }\n const Cc = 2 * Math.PI * zc;\n function Bc(t4) {\n return Cc * Math.cos(t4 * Math.PI / 180);\n }\n function Vc(t4) {\n return (180 + t4) / 360;\n }\n function Ec(t4) {\n return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t4 * Math.PI / 360))) / 360;\n }\n function Fc(t4, e2) {\n return t4 / Bc(e2);\n }\n function Tc(t4) {\n return 360 / Math.PI * Math.atan(Math.exp((180 - 360 * t4) * Math.PI / 180)) - 90;\n }\n class $c {\n constructor(t4, e2, r2 = 0) {\n this.x = +t4, this.y = +e2, this.z = +r2;\n }\n static fromLngLat(t4, e2 = 0) {\n const r2 = Pc.convert(t4);\n return new $c(Vc(r2.lng), Ec(r2.lat), Fc(e2, r2.lat));\n }\n toLngLat() {\n return new Pc(360 * this.x - 180, Tc(this.y));\n }\n toAltitude() {\n return this.z * Bc(Tc(this.y));\n }\n meterInMercatorCoordinateUnits() {\n return 1 / Cc * (t4 = Tc(this.y), 1 / Math.cos(t4 * Math.PI / 180));\n var t4;\n }\n }\n function Lc(t4, e2, r2) {\n var n2 = 2 * Math.PI * 6378137 / 256 / Math.pow(2, r2);\n return [t4 * n2 - 2 * Math.PI * 6378137 / 2, e2 * n2 - 2 * Math.PI * 6378137 / 2];\n }\n class Dc {\n constructor(t4, e2, r2) {\n if (!function(t5, e3, r3) {\n return !(t5 < 0 || t5 > 25 || r3 < 0 || r3 >= Math.pow(2, t5) || e3 < 0 || e3 >= Math.pow(2, t5));\n }(t4, e2, r2)) throw new Error(`x=${e2}, y=${r2}, z=${t4} outside of bounds. 0<=x<${Math.pow(2, t4)}, 0<=y<${Math.pow(2, t4)} 0<=z<=25 `);\n this.z = t4, this.x = e2, this.y = r2, this.key = Rc(0, t4, t4, e2, r2);\n }\n equals(t4) {\n return this.z === t4.z && this.x === t4.x && this.y === t4.y;\n }\n url(t4, e2, r2) {\n const n2 = (s2 = this.y, a2 = this.z, o2 = Lc(256 * (i2 = this.x), 256 * (s2 = Math.pow(2, a2) - s2 - 1), a2), l2 = Lc(256 * (i2 + 1), 256 * (s2 + 1), a2), o2[0] + \",\" + o2[1] + \",\" + l2[0] + \",\" + l2[1]);\n var i2, s2, a2, o2, l2;\n const u2 = function(t5, e3, r3) {\n let n3, i3 = \"\";\n for (let s3 = t5; s3 > 0; s3--) n3 = 1 << s3 - 1, i3 += (e3 & n3 ? 1 : 0) + (r3 & n3 ? 2 : 0);\n return i3;\n }(this.z, this.x, this.y);\n return t4[(this.x + this.y) % t4.length].replace(/{prefix}/g, (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(/{z}/g, String(this.z)).replace(/{x}/g, String(this.x)).replace(/{y}/g, String(\"tms\" === r2 ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(/{ratio}/g, e2 > 1 ? \"@2x\" : \"\").replace(/{quadkey}/g, u2).replace(/{bbox-epsg-3857}/g, n2);\n }\n isChildOf(t4) {\n const e2 = this.z - t4.z;\n return e2 > 0 && t4.x === this.x >> e2 && t4.y === this.y >> e2;\n }\n getTilePoint(t4) {\n const e2 = Math.pow(2, this.z);\n return new s((t4.x * e2 - this.x) * $a, (t4.y * e2 - this.y) * $a);\n }\n toString() {\n return `${this.z}/${this.x}/${this.y}`;\n }\n }\n class Oc {\n constructor(t4, e2) {\n this.wrap = t4, this.canonical = e2, this.key = Rc(t4, e2.z, e2.z, e2.x, e2.y);\n }\n }\n class jc {\n constructor(t4, e2, r2, n2, i2) {\n if (t4 < r2) throw new Error(`overscaledZ should be >= z; overscaledZ = ${t4}; z = ${r2}`);\n this.overscaledZ = t4, this.wrap = e2, this.canonical = new Dc(r2, +n2, +i2), this.key = Rc(e2, t4, r2, n2, i2);\n }\n clone() {\n return new jc(this.overscaledZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y);\n }\n equals(t4) {\n return this.overscaledZ === t4.overscaledZ && this.wrap === t4.wrap && this.canonical.equals(t4.canonical);\n }\n scaledTo(t4) {\n if (t4 > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${t4}; overscaledZ = ${this.overscaledZ}`);\n const e2 = this.canonical.z - t4;\n return t4 > this.canonical.z ? new jc(t4, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new jc(t4, this.wrap, t4, this.canonical.x >> e2, this.canonical.y >> e2);\n }\n calculateScaledKey(t4, e2) {\n if (t4 > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${t4}; overscaledZ = ${this.overscaledZ}`);\n const r2 = this.canonical.z - t4;\n return t4 > this.canonical.z ? Rc(this.wrap * +e2, t4, this.canonical.z, this.canonical.x, this.canonical.y) : Rc(this.wrap * +e2, t4, t4, this.canonical.x >> r2, this.canonical.y >> r2);\n }\n isChildOf(t4) {\n if (t4.wrap !== this.wrap) return false;\n const e2 = this.canonical.z - t4.canonical.z;\n return 0 === t4.overscaledZ || t4.overscaledZ < this.overscaledZ && t4.canonical.x === this.canonical.x >> e2 && t4.canonical.y === this.canonical.y >> e2;\n }\n children(t4) {\n if (this.overscaledZ >= t4) return [new jc(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)];\n const e2 = this.canonical.z + 1, r2 = 2 * this.canonical.x, n2 = 2 * this.canonical.y;\n return [new jc(e2, this.wrap, e2, r2, n2), new jc(e2, this.wrap, e2, r2 + 1, n2), new jc(e2, this.wrap, e2, r2, n2 + 1), new jc(e2, this.wrap, e2, r2 + 1, n2 + 1)];\n }\n isLessThan(t4) {\n return this.wrap < t4.wrap || !(this.wrap > t4.wrap) && (this.overscaledZ < t4.overscaledZ || !(this.overscaledZ > t4.overscaledZ) && (this.canonical.x < t4.canonical.x || !(this.canonical.x > t4.canonical.x) && this.canonical.y < t4.canonical.y));\n }\n wrapped() {\n return new jc(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y);\n }\n unwrapTo(t4) {\n return new jc(this.overscaledZ, t4, this.canonical.z, this.canonical.x, this.canonical.y);\n }\n overscaleFactor() {\n return Math.pow(2, this.overscaledZ - this.canonical.z);\n }\n toUnwrapped() {\n return new Oc(this.wrap, this.canonical);\n }\n toString() {\n return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`;\n }\n getTilePoint(t4) {\n return this.canonical.getTilePoint(new $c(t4.x - this.wrap, t4.y));\n }\n }\n function Rc(t4, e2, r2, n2, i2) {\n (t4 *= 2) < 0 && (t4 = -1 * t4 - 1);\n const s2 = 1 << r2;\n return (s2 * s2 * t4 + s2 * i2 + n2).toString(36) + r2.toString(36) + e2.toString(36);\n }\n wi(\"CanonicalTileID\", Dc), wi(\"OverscaledTileID\", jc, { omit: [\"posMatrix\"] });\n class Uc {\n constructor(t4, e2, r2, n2 = 1, i2 = 1, s2 = 1, a2 = 0) {\n if (this.uid = t4, e2.height !== e2.width) throw new RangeError(\"DEM tiles must be square\");\n if (r2 && ![\"mapbox\", \"terrarium\", \"custom\"].includes(r2)) return void A2(`\"${r2}\" is not a valid encoding type. Valid types include \"mapbox\", \"terrarium\" and \"custom\".`);\n this.stride = e2.height;\n const o2 = this.dim = e2.height - 2;\n switch (this.data = new Uint32Array(e2.data.buffer), r2) {\n case \"terrarium\":\n this.redFactor = 256, this.greenFactor = 1, this.blueFactor = 1 / 256, this.baseShift = 32768;\n break;\n case \"custom\":\n this.redFactor = n2, this.greenFactor = i2, this.blueFactor = s2, this.baseShift = a2;\n break;\n default:\n this.redFactor = 6553.6, this.greenFactor = 25.6, this.blueFactor = 0.1, this.baseShift = 1e4;\n }\n for (let t5 = 0; t5 < o2; t5++) this.data[this._idx(-1, t5)] = this.data[this._idx(0, t5)], this.data[this._idx(o2, t5)] = this.data[this._idx(o2 - 1, t5)], this.data[this._idx(t5, -1)] = this.data[this._idx(t5, 0)], this.data[this._idx(t5, o2)] = this.data[this._idx(t5, o2 - 1)];\n this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(o2, -1)] = this.data[this._idx(o2 - 1, 0)], this.data[this._idx(-1, o2)] = this.data[this._idx(0, o2 - 1)], this.data[this._idx(o2, o2)] = this.data[this._idx(o2 - 1, o2 - 1)], this.min = Number.MAX_SAFE_INTEGER, this.max = Number.MIN_SAFE_INTEGER;\n for (let t5 = 0; t5 < o2; t5++) for (let e3 = 0; e3 < o2; e3++) {\n const r3 = this.get(t5, e3);\n r3 > this.max && (this.max = r3), r3 < this.min && (this.min = r3);\n }\n }\n get(t4, e2) {\n const r2 = new Uint8Array(this.data.buffer), n2 = 4 * this._idx(t4, e2);\n return this.unpack(r2[n2], r2[n2 + 1], r2[n2 + 2]);\n }\n getUnpackVector() {\n return [this.redFactor, this.greenFactor, this.blueFactor, this.baseShift];\n }\n _idx(t4, e2) {\n if (t4 < -1 || t4 >= this.dim + 1 || e2 < -1 || e2 >= this.dim + 1) throw new RangeError(\"out of range source coordinates for DEM data\");\n return (e2 + 1) * this.stride + (t4 + 1);\n }\n unpack(t4, e2, r2) {\n return t4 * this.redFactor + e2 * this.greenFactor + r2 * this.blueFactor - this.baseShift;\n }\n getPixels() {\n return new Ao({ width: this.stride, height: this.stride }, new Uint8Array(this.data.buffer));\n }\n backfillBorder(t4, e2, r2) {\n if (this.dim !== t4.dim) throw new Error(\"dem dimension mismatch\");\n let n2 = e2 * this.dim, i2 = e2 * this.dim + this.dim, s2 = r2 * this.dim, a2 = r2 * this.dim + this.dim;\n switch (e2) {\n case -1:\n n2 = i2 - 1;\n break;\n case 1:\n i2 = n2 + 1;\n }\n switch (r2) {\n case -1:\n s2 = a2 - 1;\n break;\n case 1:\n a2 = s2 + 1;\n }\n const o2 = -e2 * this.dim, l2 = -r2 * this.dim;\n for (let e3 = s2; e3 < a2; e3++) for (let r3 = n2; r3 < i2; r3++) this.data[this._idx(r3, e3)] = t4.data[this._idx(r3 + o2, e3 + l2)];\n }\n }\n wi(\"DEMData\", Uc);\n class qc {\n constructor(t4) {\n this._stringToNumber = {}, this._numberToString = [];\n for (let e2 = 0; e2 < t4.length; e2++) {\n const r2 = t4[e2];\n this._stringToNumber[r2] = e2, this._numberToString[e2] = r2;\n }\n }\n encode(t4) {\n return this._stringToNumber[t4];\n }\n decode(t4) {\n if (t4 >= this._numberToString.length) throw new Error(`Out of bounds. Index requested n=${t4} can't be >= this._numberToString.length ${this._numberToString.length}`);\n return this._numberToString[t4];\n }\n }\n class Nc {\n constructor(t4, e2, r2, n2, i2) {\n this.type = \"Feature\", this._vectorTileFeature = t4, t4._z = e2, t4._x = r2, t4._y = n2, this.properties = t4.properties, this.id = i2;\n }\n get geometry() {\n return void 0 === this._geometry && (this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry), this._geometry;\n }\n set geometry(t4) {\n this._geometry = t4;\n }\n toJSON() {\n const t4 = { geometry: this.geometry };\n for (const e2 in this) \"_geometry\" !== e2 && \"_vectorTileFeature\" !== e2 && (t4[e2] = this[e2]);\n return t4;\n }\n }\n class Zc {\n constructor(t4, e2) {\n this.tileID = t4, this.x = t4.canonical.x, this.y = t4.canonical.y, this.z = t4.canonical.z, this.grid = new vi($a, 16, 0), this.grid3D = new vi($a, 16, 0), this.featureIndexArray = new Ns(), this.promoteId = e2;\n }\n insert(t4, e2, r2, n2, i2, s2) {\n const a2 = this.featureIndexArray.length;\n this.featureIndexArray.emplaceBack(r2, n2, i2);\n const o2 = s2 ? this.grid3D : this.grid;\n for (let t5 = 0; t5 < e2.length; t5++) {\n const r3 = e2[t5], n3 = [1 / 0, 1 / 0, -1 / 0, -1 / 0];\n for (let t6 = 0; t6 < r3.length; t6++) {\n const e3 = r3[t6];\n n3[0] = Math.min(n3[0], e3.x), n3[1] = Math.min(n3[1], e3.y), n3[2] = Math.max(n3[2], e3.x), n3[3] = Math.max(n3[3], e3.y);\n }\n n3[0] < $a && n3[1] < $a && n3[2] >= 0 && n3[3] >= 0 && o2.insert(a2, n3[0], n3[1], n3[2], n3[3]);\n }\n }\n loadVTLayers() {\n return this.vtLayers || (this.vtLayers = new fl.VectorTile(new Iu(this.rawTileData)).layers, this.sourceLayerCoder = new qc(this.vtLayers ? Object.keys(this.vtLayers).sort() : [\"_geojsonTileLayer\"])), this.vtLayers;\n }\n query(t4, e2, r2, n2) {\n this.loadVTLayers();\n const i2 = t4.params || {}, a2 = $a / t4.tileSize / t4.scale, o2 = zn(i2.filter), l2 = t4.queryGeometry, u2 = t4.queryPadding * a2, c2 = Kc(l2), h2 = this.grid.query(c2.minX - u2, c2.minY - u2, c2.maxX + u2, c2.maxY + u2), p2 = Kc(t4.cameraQueryGeometry), f2 = this.grid3D.query(p2.minX - u2, p2.minY - u2, p2.maxX + u2, p2.maxY + u2, (e3, r3, n3, i3) => function(t5, e4, r4, n4, i4) {\n for (const s2 of t5) if (e4 <= s2.x && r4 <= s2.y && n4 >= s2.x && i4 >= s2.y) return true;\n const a3 = [new s(e4, r4), new s(e4, i4), new s(n4, i4), new s(n4, r4)];\n if (t5.length > 2) {\n for (const e5 of a3) if (Wa(t5, e5)) return true;\n }\n for (let e5 = 0; e5 < t5.length - 1; e5++) if (Qa(t5[e5], t5[e5 + 1], a3)) return true;\n return false;\n }(t4.cameraQueryGeometry, e3 - u2, r3 - u2, n3 + u2, i3 + u2));\n for (const t5 of f2) h2.push(t5);\n h2.sort(Xc);\n const d2 = {};\n let y2;\n for (let s2 = 0; s2 < h2.length; s2++) {\n const u3 = h2[s2];\n if (u3 === y2) continue;\n y2 = u3;\n const c3 = this.featureIndexArray.get(u3);\n let p3 = null;\n this.loadMatchingFeature(d2, c3.bucketIndex, c3.sourceLayerIndex, c3.featureIndex, o2, i2.layers, i2.availableImages, e2, r2, n2, (e3, r3, n3) => (p3 || (p3 = Oa(e3)), r3.queryIntersectsFeature(l2, e3, n3, p3, this.z, t4.transform, a2, t4.pixelPosMatrix)));\n }\n return d2;\n }\n loadMatchingFeature(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2) {\n const h2 = this.bucketLayerIDs[e2];\n if (s2 && !function(t5, e3) {\n for (let r3 = 0; r3 < t5.length; r3++) if (e3.indexOf(t5[r3]) >= 0) return true;\n return false;\n }(s2, h2)) return;\n const p2 = this.sourceLayerCoder.decode(r2), f2 = this.vtLayers[p2].feature(n2);\n if (i2.needGeometry) {\n const t5 = ja(f2, true);\n if (!i2.filter(new Ui(this.tileID.overscaledZ), t5, this.tileID.canonical)) return;\n } else if (!i2.filter(new Ui(this.tileID.overscaledZ), f2)) return;\n const d2 = this.getId(f2, p2);\n for (let e3 = 0; e3 < h2.length; e3++) {\n const r3 = h2[e3];\n if (s2 && s2.indexOf(r3) < 0) continue;\n const i3 = o2[r3];\n if (!i3) continue;\n let p3 = {};\n d2 && u2 && (p3 = u2.getState(i3.sourceLayer || \"_geojsonTileLayer\", d2));\n const y2 = g({}, l2[r3]);\n y2.paint = Gc(y2.paint, i3.paint, f2, p3, a2), y2.layout = Gc(y2.layout, i3.layout, f2, p3, a2);\n const m2 = !c2 || c2(f2, i3, p3);\n if (!m2) continue;\n const x2 = new Nc(f2, this.z, this.x, this.y, d2);\n x2.layer = y2;\n let v2 = t4[r3];\n void 0 === v2 && (v2 = t4[r3] = []), v2.push({ featureIndex: n2, feature: x2, intersectionZ: m2 });\n }\n }\n lookupSymbolFeatures(t4, e2, r2, n2, i2, s2, a2, o2) {\n const l2 = {};\n this.loadVTLayers();\n const u2 = zn(i2);\n for (const i3 of t4) this.loadMatchingFeature(l2, r2, n2, i3, u2, s2, a2, o2, e2);\n return l2;\n }\n hasLayer(t4) {\n for (const e2 of this.bucketLayerIDs) for (const r2 of e2) if (t4 === r2) return true;\n return false;\n }\n getId(t4, e2) {\n let r2 = t4.id;\n return this.promoteId && (r2 = t4.properties[\"string\" == typeof this.promoteId ? this.promoteId : this.promoteId[e2]], \"boolean\" == typeof r2 && (r2 = Number(r2))), r2;\n }\n }\n function Gc(t4, e2, r2, n2, i2) {\n return v(t4, (t5, s2) => {\n const a2 = e2 instanceof Yi ? e2.get(s2) : null;\n return a2 && a2.evaluate ? a2.evaluate(r2, n2, i2) : a2;\n });\n }\n function Kc(t4) {\n let e2 = 1 / 0, r2 = 1 / 0, n2 = -1 / 0, i2 = -1 / 0;\n for (const s2 of t4) e2 = Math.min(e2, s2.x), r2 = Math.min(r2, s2.y), n2 = Math.max(n2, s2.x), i2 = Math.max(i2, s2.y);\n return { minX: e2, minY: r2, maxX: n2, maxY: i2 };\n }\n function Xc(t4, e2) {\n return e2 - t4;\n }\n function Hc(t4, e2, r2, n2, i2) {\n const a2 = [];\n for (let o2 = 0; o2 < t4.length; o2++) {\n const l2 = t4[o2];\n let u2;\n for (let t5 = 0; t5 < l2.length - 1; t5++) {\n let o3 = l2[t5], c2 = l2[t5 + 1];\n o3.x < e2 && c2.x < e2 || (o3.x < e2 ? o3 = new s(e2, o3.y + (e2 - o3.x) / (c2.x - o3.x) * (c2.y - o3.y))._round() : c2.x < e2 && (c2 = new s(e2, o3.y + (e2 - o3.x) / (c2.x - o3.x) * (c2.y - o3.y))._round()), o3.y < r2 && c2.y < r2 || (o3.y < r2 ? o3 = new s(o3.x + (r2 - o3.y) / (c2.y - o3.y) * (c2.x - o3.x), r2)._round() : c2.y < r2 && (c2 = new s(o3.x + (r2 - o3.y) / (c2.y - o3.y) * (c2.x - o3.x), r2)._round()), o3.x >= n2 && c2.x >= n2 || (o3.x >= n2 ? o3 = new s(n2, o3.y + (n2 - o3.x) / (c2.x - o3.x) * (c2.y - o3.y))._round() : c2.x >= n2 && (c2 = new s(n2, o3.y + (n2 - o3.x) / (c2.x - o3.x) * (c2.y - o3.y))._round()), o3.y >= i2 && c2.y >= i2 || (o3.y >= i2 ? o3 = new s(o3.x + (i2 - o3.y) / (c2.y - o3.y) * (c2.x - o3.x), i2)._round() : c2.y >= i2 && (c2 = new s(o3.x + (i2 - o3.y) / (c2.y - o3.y) * (c2.x - o3.x), i2)._round()), u2 && o3.equals(u2[u2.length - 1]) || (u2 = [o3], a2.push(u2)), u2.push(c2)))));\n }\n }\n return a2;\n }\n wi(\"FeatureIndex\", Zc, { omit: [\"rawTileData\", \"sourceLayerCoder\"] });\n class Yc extends s {\n constructor(t4, e2, r2, n2) {\n super(t4, e2), this.angle = r2, void 0 !== n2 && (this.segment = n2);\n }\n clone() {\n return new Yc(this.x, this.y, this.angle, this.segment);\n }\n }\n function Jc(t4, e2, r2, n2, i2) {\n if (void 0 === e2.segment || 0 === r2) return true;\n let s2 = e2, a2 = e2.segment + 1, o2 = 0;\n for (; o2 > -r2 / 2; ) {\n if (a2--, a2 < 0) return false;\n o2 -= t4[a2].dist(s2), s2 = t4[a2];\n }\n o2 += t4[a2].dist(t4[a2 + 1]), a2++;\n const l2 = [];\n let u2 = 0;\n for (; o2 < r2 / 2; ) {\n const e3 = t4[a2], r3 = t4[a2 + 1];\n if (!r3) return false;\n let s3 = t4[a2 - 1].angleTo(e3) - e3.angleTo(r3);\n for (s3 = Math.abs((s3 + 3 * Math.PI) % (2 * Math.PI) - Math.PI), l2.push({ distance: o2, angleDelta: s3 }), u2 += s3; o2 - l2[0].distance > n2; ) u2 -= l2.shift().angleDelta;\n if (u2 > i2) return false;\n a2++, o2 += e3.dist(r3);\n }\n return true;\n }\n function Wc(t4) {\n let e2 = 0;\n for (let r2 = 0; r2 < t4.length - 1; r2++) e2 += t4[r2].dist(t4[r2 + 1]);\n return e2;\n }\n function Qc(t4, e2, r2) {\n return t4 ? 0.6 * e2 * r2 : 0;\n }\n function th(t4, e2) {\n return Math.max(t4 ? t4.right - t4.left : 0, e2 ? e2.right - e2.left : 0);\n }\n function eh(t4, e2, r2, n2, i2, s2) {\n const a2 = Qc(r2, i2, s2), o2 = th(r2, n2) * s2;\n let l2 = 0;\n const u2 = Wc(t4) / 2;\n for (let r3 = 0; r3 < t4.length - 1; r3++) {\n const n3 = t4[r3], i3 = t4[r3 + 1], s3 = n3.dist(i3);\n if (l2 + s3 > u2) {\n const c2 = (u2 - l2) / s3, h2 = Ce.number(n3.x, i3.x, c2), p2 = Ce.number(n3.y, i3.y, c2), f2 = new Yc(h2, p2, i3.angleTo(n3), r3);\n return f2._round(), !a2 || Jc(t4, f2, o2, a2, e2) ? f2 : void 0;\n }\n l2 += s3;\n }\n }\n function rh(t4, e2, r2, n2, i2, s2, a2, o2, l2) {\n const u2 = Qc(n2, s2, a2), c2 = th(n2, i2), h2 = c2 * a2, p2 = 0 === t4[0].x || t4[0].x === l2 || 0 === t4[0].y || t4[0].y === l2;\n return e2 - h2 < e2 / 4 && (e2 = h2 + e2 / 4), nh(t4, p2 ? e2 / 2 * o2 % e2 : (c2 / 2 + 2 * s2) * a2 * o2 % e2, e2, u2, r2, h2, p2, false, l2);\n }\n function nh(t4, e2, r2, n2, i2, s2, a2, o2, l2) {\n const u2 = s2 / 2, c2 = Wc(t4);\n let h2 = 0, p2 = e2 - r2, f2 = [];\n for (let e3 = 0; e3 < t4.length - 1; e3++) {\n const a3 = t4[e3], o3 = t4[e3 + 1], d2 = a3.dist(o3), y2 = o3.angleTo(a3);\n for (; p2 + r2 < h2 + d2; ) {\n p2 += r2;\n const m2 = (p2 - h2) / d2, g2 = Ce.number(a3.x, o3.x, m2), x2 = Ce.number(a3.y, o3.y, m2);\n if (g2 >= 0 && g2 < l2 && x2 >= 0 && x2 < l2 && p2 - u2 >= 0 && p2 + u2 <= c2) {\n const r3 = new Yc(g2, x2, y2, e3);\n r3._round(), n2 && !Jc(t4, r3, s2, n2, i2) || f2.push(r3);\n }\n }\n h2 += d2;\n }\n return o2 || f2.length || a2 || (f2 = nh(t4, h2 / 2, r2, n2, i2, s2, a2, true, l2)), f2;\n }\n wi(\"Anchor\", Yc);\n const ih = Fu;\n function sh(t4, e2, r2, n2) {\n const i2 = [], a2 = t4.image, o2 = a2.pixelRatio, l2 = a2.paddedRect.w - 2 * ih, u2 = a2.paddedRect.h - 2 * ih;\n let c2 = { x1: t4.left, y1: t4.top, x2: t4.right, y2: t4.bottom };\n const h2 = a2.stretchX || [[0, l2]], p2 = a2.stretchY || [[0, u2]], f2 = (t5, e3) => t5 + e3[1] - e3[0], d2 = h2.reduce(f2, 0), y2 = p2.reduce(f2, 0), m2 = l2 - d2, g2 = u2 - y2;\n let x2 = 0, v2 = d2, b2 = 0, w2 = y2, _2 = 0, A3 = m2, S2 = 0, k2 = g2;\n if (a2.content && n2) {\n const e3 = a2.content, r3 = e3[2] - e3[0], n3 = e3[3] - e3[1];\n (a2.textFitWidth || a2.textFitHeight) && (c2 = tc(t4)), x2 = ah(h2, 0, e3[0]), b2 = ah(p2, 0, e3[1]), v2 = ah(h2, e3[0], e3[2]), w2 = ah(p2, e3[1], e3[3]), _2 = e3[0] - x2, S2 = e3[1] - b2, A3 = r3 - v2, k2 = n3 - w2;\n }\n const M2 = c2.x1, I2 = c2.y1, z2 = c2.x2 - M2, P2 = c2.y2 - I2, C3 = (t5, n3, i3, l3) => {\n const u3 = lh(t5.stretch - x2, v2, z2, M2), c3 = uh(t5.fixed - _2, A3, t5.stretch, d2), h3 = lh(n3.stretch - b2, w2, P2, I2), p3 = uh(n3.fixed - S2, k2, n3.stretch, y2), f3 = lh(i3.stretch - x2, v2, z2, M2), m3 = uh(i3.fixed - _2, A3, i3.stretch, d2), g3 = lh(l3.stretch - b2, w2, P2, I2), C4 = uh(l3.fixed - S2, k2, l3.stretch, y2), B3 = new s(u3, h3), V2 = new s(f3, h3), E3 = new s(f3, g3), F2 = new s(u3, g3), T2 = new s(c3 / o2, p3 / o2), $2 = new s(m3 / o2, C4 / o2), L2 = e2 * Math.PI / 180;\n if (L2) {\n const t6 = Math.sin(L2), e3 = Math.cos(L2), r3 = [e3, -t6, t6, e3];\n B3._matMult(r3), V2._matMult(r3), F2._matMult(r3), E3._matMult(r3);\n }\n const D3 = t5.stretch + t5.fixed, O2 = n3.stretch + n3.fixed;\n return { tl: B3, tr: V2, bl: F2, br: E3, tex: { x: a2.paddedRect.x + ih + D3, y: a2.paddedRect.y + ih + O2, w: i3.stretch + i3.fixed - D3, h: l3.stretch + l3.fixed - O2 }, writingMode: void 0, glyphOffset: [0, 0], sectionIndex: 0, pixelOffsetTL: T2, pixelOffsetBR: $2, minFontScaleX: A3 / o2 / z2, minFontScaleY: k2 / o2 / P2, isSDF: r2 };\n };\n if (n2 && (a2.stretchX || a2.stretchY)) {\n const t5 = oh(h2, m2, d2), e3 = oh(p2, g2, y2);\n for (let r3 = 0; r3 < t5.length - 1; r3++) {\n const n3 = t5[r3], s2 = t5[r3 + 1];\n for (let t6 = 0; t6 < e3.length - 1; t6++) i2.push(C3(n3, e3[t6], s2, e3[t6 + 1]));\n }\n } else i2.push(C3({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: l2 + 1 }, { fixed: 0, stretch: u2 + 1 }));\n return i2;\n }\n function ah(t4, e2, r2) {\n let n2 = 0;\n for (const i2 of t4) n2 += Math.max(e2, Math.min(r2, i2[1])) - Math.max(e2, Math.min(r2, i2[0]));\n return n2;\n }\n function oh(t4, e2, r2) {\n const n2 = [{ fixed: -ih, stretch: 0 }];\n for (const [e3, r3] of t4) {\n const t5 = n2[n2.length - 1];\n n2.push({ fixed: e3 - t5.stretch, stretch: t5.stretch }), n2.push({ fixed: e3 - t5.stretch, stretch: t5.stretch + (r3 - e3) });\n }\n return n2.push({ fixed: e2 + ih, stretch: r2 }), n2;\n }\n function lh(t4, e2, r2, n2) {\n return t4 / e2 * r2 + n2;\n }\n function uh(t4, e2, r2, n2) {\n return t4 - e2 * r2 / n2;\n }\n class ch {\n constructor(t4, e2, r2, n2, i2, a2, o2, l2, u2, c2) {\n var h2;\n if (this.boxStartIndex = t4.length, u2) {\n let t5 = a2.top, e3 = a2.bottom;\n const r3 = a2.collisionPadding;\n r3 && (t5 -= r3[1], e3 += r3[3]);\n let n3 = e3 - t5;\n n3 > 0 && (n3 = Math.max(10, n3), this.circleDiameter = n3);\n } else {\n const u3 = (null === (h2 = a2.image) || void 0 === h2 ? void 0 : h2.content) && (a2.image.textFitWidth || a2.image.textFitHeight) ? tc(a2) : { x1: a2.left, y1: a2.top, x2: a2.right, y2: a2.bottom };\n u3.y1 = u3.y1 * o2 - l2[0], u3.y2 = u3.y2 * o2 + l2[2], u3.x1 = u3.x1 * o2 - l2[3], u3.x2 = u3.x2 * o2 + l2[1];\n const p2 = a2.collisionPadding;\n if (p2 && (u3.x1 -= p2[0] * o2, u3.y1 -= p2[1] * o2, u3.x2 += p2[2] * o2, u3.y2 += p2[3] * o2), c2) {\n const t5 = new s(u3.x1, u3.y1), e3 = new s(u3.x2, u3.y1), r3 = new s(u3.x1, u3.y2), n3 = new s(u3.x2, u3.y2), i3 = c2 * Math.PI / 180;\n t5._rotate(i3), e3._rotate(i3), r3._rotate(i3), n3._rotate(i3), u3.x1 = Math.min(t5.x, e3.x, r3.x, n3.x), u3.x2 = Math.max(t5.x, e3.x, r3.x, n3.x), u3.y1 = Math.min(t5.y, e3.y, r3.y, n3.y), u3.y2 = Math.max(t5.y, e3.y, r3.y, n3.y);\n }\n t4.emplaceBack(e2.x, e2.y, u3.x1, u3.y1, u3.x2, u3.y2, r2, n2, i2);\n }\n this.boxEndIndex = t4.length;\n }\n }\n class hh {\n constructor(t4 = [], e2 = (t5, e3) => t5 < e3 ? -1 : t5 > e3 ? 1 : 0) {\n if (this.data = t4, this.length = this.data.length, this.compare = e2, this.length > 0) for (let t5 = (this.length >> 1) - 1; t5 >= 0; t5--) this._down(t5);\n }\n push(t4) {\n this.data.push(t4), this._up(this.length++);\n }\n pop() {\n if (0 === this.length) return;\n const t4 = this.data[0], e2 = this.data.pop();\n return --this.length > 0 && (this.data[0] = e2, this._down(0)), t4;\n }\n peek() {\n return this.data[0];\n }\n _up(t4) {\n const { data: e2, compare: r2 } = this, n2 = e2[t4];\n for (; t4 > 0; ) {\n const i2 = t4 - 1 >> 1, s2 = e2[i2];\n if (r2(n2, s2) >= 0) break;\n e2[t4] = s2, t4 = i2;\n }\n e2[t4] = n2;\n }\n _down(t4) {\n const { data: e2, compare: r2 } = this, n2 = this.length >> 1, i2 = e2[t4];\n for (; t4 < n2; ) {\n let n3 = 1 + (t4 << 1);\n const s2 = n3 + 1;\n if (s2 < this.length && r2(e2[s2], e2[n3]) < 0 && (n3 = s2), r2(e2[n3], i2) >= 0) break;\n e2[t4] = e2[n3], t4 = n3;\n }\n e2[t4] = i2;\n }\n }\n function ph(t4, e2 = 1, r2 = false) {\n let n2 = 1 / 0, i2 = 1 / 0, a2 = -1 / 0, o2 = -1 / 0;\n const l2 = t4[0];\n for (let t5 = 0; t5 < l2.length; t5++) {\n const e3 = l2[t5];\n (!t5 || e3.x < n2) && (n2 = e3.x), (!t5 || e3.y < i2) && (i2 = e3.y), (!t5 || e3.x > a2) && (a2 = e3.x), (!t5 || e3.y > o2) && (o2 = e3.y);\n }\n const u2 = Math.min(a2 - n2, o2 - i2);\n let c2 = u2 / 2;\n const h2 = new hh([], fh);\n if (0 === u2) return new s(n2, i2);\n for (let e3 = n2; e3 < a2; e3 += u2) for (let r3 = i2; r3 < o2; r3 += u2) h2.push(new dh(e3 + c2, r3 + c2, c2, t4));\n let p2 = function(t5) {\n let e3 = 0, r3 = 0, n3 = 0;\n const i3 = t5[0];\n for (let t6 = 0, s2 = i3.length, a3 = s2 - 1; t6 < s2; a3 = t6++) {\n const s3 = i3[t6], o3 = i3[a3], l3 = s3.x * o3.y - o3.x * s3.y;\n r3 += (s3.x + o3.x) * l3, n3 += (s3.y + o3.y) * l3, e3 += 3 * l3;\n }\n return new dh(r3 / e3, n3 / e3, 0, t5);\n }(t4), f2 = h2.length;\n for (; h2.length; ) {\n const n3 = h2.pop();\n (n3.d > p2.d || !p2.d) && (p2 = n3, r2 && console.log(\"found best %d after %d probes\", Math.round(1e4 * n3.d) / 1e4, f2)), n3.max - p2.d <= e2 || (c2 = n3.h / 2, h2.push(new dh(n3.p.x - c2, n3.p.y - c2, c2, t4)), h2.push(new dh(n3.p.x + c2, n3.p.y - c2, c2, t4)), h2.push(new dh(n3.p.x - c2, n3.p.y + c2, c2, t4)), h2.push(new dh(n3.p.x + c2, n3.p.y + c2, c2, t4)), f2 += 4);\n }\n return r2 && (console.log(`num probes: ${f2}`), console.log(`best distance: ${p2.d}`)), p2.p;\n }\n function fh(t4, e2) {\n return e2.max - t4.max;\n }\n function dh(t4, e2, r2, n2) {\n this.p = new s(t4, e2), this.h = r2, this.d = function(t5, e3) {\n let r3 = false, n3 = 1 / 0;\n for (let i2 = 0; i2 < e3.length; i2++) {\n const s2 = e3[i2];\n for (let e4 = 0, i3 = s2.length, a2 = i3 - 1; e4 < i3; a2 = e4++) {\n const i4 = s2[e4], o2 = s2[a2];\n i4.y > t5.y != o2.y > t5.y && t5.x < (o2.x - i4.x) * (t5.y - i4.y) / (o2.y - i4.y) + i4.x && (r3 = !r3), n3 = Math.min(n3, Ya(t5, i4, o2));\n }\n }\n return (r3 ? 1 : -1) * Math.sqrt(n3);\n }(this.p, n2), this.max = this.d + this.h * Math.SQRT2;\n }\n var yh;\n t.aq = void 0, (yh = t.aq || (t.aq = {}))[yh.center = 1] = \"center\", yh[yh.left = 2] = \"left\", yh[yh.right = 3] = \"right\", yh[yh.top = 4] = \"top\", yh[yh.bottom = 5] = \"bottom\", yh[yh[\"top-left\"] = 6] = \"top-left\", yh[yh[\"top-right\"] = 7] = \"top-right\", yh[yh[\"bottom-left\"] = 8] = \"bottom-left\", yh[yh[\"bottom-right\"] = 9] = \"bottom-right\";\n const mh = 7, gh = Number.POSITIVE_INFINITY;\n function xh(t4, e2) {\n return e2[1] !== gh ? function(t5, e3, r2) {\n let n2 = 0, i2 = 0;\n switch (e3 = Math.abs(e3), r2 = Math.abs(r2), t5) {\n case \"top-right\":\n case \"top-left\":\n case \"top\":\n i2 = r2 - mh;\n break;\n case \"bottom-right\":\n case \"bottom-left\":\n case \"bottom\":\n i2 = -r2 + mh;\n }\n switch (t5) {\n case \"top-right\":\n case \"bottom-right\":\n case \"right\":\n n2 = -e3;\n break;\n case \"top-left\":\n case \"bottom-left\":\n case \"left\":\n n2 = e3;\n }\n return [n2, i2];\n }(t4, e2[0], e2[1]) : function(t5, e3) {\n let r2 = 0, n2 = 0;\n e3 < 0 && (e3 = 0);\n const i2 = e3 / Math.SQRT2;\n switch (t5) {\n case \"top-right\":\n case \"top-left\":\n n2 = i2 - mh;\n break;\n case \"bottom-right\":\n case \"bottom-left\":\n n2 = -i2 + mh;\n break;\n case \"bottom\":\n n2 = -e3 + mh;\n break;\n case \"top\":\n n2 = e3 - mh;\n }\n switch (t5) {\n case \"top-right\":\n case \"bottom-right\":\n r2 = -i2;\n break;\n case \"top-left\":\n case \"bottom-left\":\n r2 = i2;\n break;\n case \"left\":\n r2 = e3;\n break;\n case \"right\":\n r2 = -e3;\n }\n return [r2, n2];\n }(t4, e2[0]);\n }\n function vh(t4, e2, r2) {\n var n2;\n const i2 = t4.layout, s2 = null === (n2 = i2.get(\"text-variable-anchor-offset\")) || void 0 === n2 ? void 0 : n2.evaluate(e2, {}, r2);\n if (s2) {\n const t5 = s2.values, e3 = [];\n for (let r3 = 0; r3 < t5.length; r3 += 2) {\n const n3 = e3[r3] = t5[r3], i3 = t5[r3 + 1].map((t6) => t6 * iu);\n n3.startsWith(\"top\") ? i3[1] -= mh : n3.startsWith(\"bottom\") && (i3[1] += mh), e3[r3 + 1] = i3;\n }\n return new Qt(e3);\n }\n const a2 = i2.get(\"text-variable-anchor\");\n if (a2) {\n let n3;\n n3 = void 0 !== t4._unevaluatedLayout.getValue(\"text-radial-offset\") ? [i2.get(\"text-radial-offset\").evaluate(e2, {}, r2) * iu, gh] : i2.get(\"text-offset\").evaluate(e2, {}, r2).map((t5) => t5 * iu);\n const s3 = [];\n for (const t5 of a2) s3.push(t5, xh(t5, n3));\n return new Qt(s3);\n }\n return null;\n }\n function bh(t4) {\n switch (t4) {\n case \"right\":\n case \"top-right\":\n case \"bottom-right\":\n return \"right\";\n case \"left\":\n case \"top-left\":\n case \"bottom-left\":\n return \"left\";\n }\n return \"center\";\n }\n function wh(e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2) {\n let p2 = a2.textMaxSize.evaluate(r2, {});\n void 0 === p2 && (p2 = o2);\n const f2 = e2.layers[0].layout, d2 = f2.get(\"icon-offset\").evaluate(r2, {}, h2), y2 = Ah(n2.horizontal), m2 = o2 / 24, g2 = e2.tilePixelRatio * m2, x2 = e2.tilePixelRatio * p2 / 24, v2 = e2.tilePixelRatio * l2, b2 = e2.tilePixelRatio * f2.get(\"symbol-spacing\"), w2 = f2.get(\"text-padding\") * e2.tilePixelRatio, _2 = function(t4, e3, r3, n3 = 1) {\n const i3 = t4.get(\"icon-padding\").evaluate(e3, {}, r3), s3 = i3 && i3.values;\n return [s3[0] * n3, s3[1] * n3, s3[2] * n3, s3[3] * n3];\n }(f2, r2, h2, e2.tilePixelRatio), S2 = f2.get(\"text-max-angle\") / 180 * Math.PI, k2 = \"viewport\" !== f2.get(\"text-rotation-alignment\") && \"point\" !== f2.get(\"symbol-placement\"), M2 = \"map\" === f2.get(\"icon-rotation-alignment\") && \"point\" !== f2.get(\"symbol-placement\"), I2 = f2.get(\"symbol-placement\"), z2 = b2 / 2, P2 = f2.get(\"icon-text-fit\");\n let C3;\n i2 && \"none\" !== P2 && (e2.allowVerticalPlacement && n2.vertical && (C3 = ec(i2, n2.vertical, P2, f2.get(\"icon-text-fit-padding\"), d2, m2)), y2 && (i2 = ec(i2, y2, P2, f2.get(\"icon-text-fit-padding\"), d2, m2)));\n const B3 = (l3, p3) => {\n p3.x < 0 || p3.x >= $a || p3.y < 0 || p3.y >= $a || function(e3, r3, n3, i3, s3, a3, o3, l4, u3, c3, h3, p4, f3, d3, y3, m3, g3, x3, v3, b3, w3, _3, S3, k3, M3) {\n const I3 = e3.addToLineVertexArray(r3, n3);\n let z3, P3, C4, B4, V2 = 0, E3 = 0, F2 = 0, T2 = 0, $2 = -1, L2 = -1;\n const D3 = {};\n let O2 = ma(\"\");\n if (e3.allowVerticalPlacement && i3.vertical) {\n const t4 = l4.layout.get(\"text-rotate\").evaluate(w3, {}, k3) + 90;\n C4 = new ch(u3, r3, c3, h3, p4, i3.vertical, f3, d3, y3, t4), o3 && (B4 = new ch(u3, r3, c3, h3, p4, o3, g3, x3, y3, t4));\n }\n if (s3) {\n const n4 = l4.layout.get(\"icon-rotate\").evaluate(w3, {}), i4 = \"none\" !== l4.layout.get(\"icon-text-fit\"), a4 = sh(s3, n4, S3, i4), f4 = o3 ? sh(o3, n4, S3, i4) : void 0;\n P3 = new ch(u3, r3, c3, h3, p4, s3, g3, x3, false, n4), V2 = 4 * a4.length;\n const d4 = e3.iconSizeData;\n let y4 = null;\n \"source\" === d4.kind ? (y4 = [nc * l4.layout.get(\"icon-size\").evaluate(w3, {})], y4[0] > ic && A2(`${e3.layerIds[0]}: Value for \"icon-size\" is >= ${rc}. Reduce your \"icon-size\".`)) : \"composite\" === d4.kind && (y4 = [nc * _3.compositeIconSizes[0].evaluate(w3, {}, k3), nc * _3.compositeIconSizes[1].evaluate(w3, {}, k3)], (y4[0] > ic || y4[1] > ic) && A2(`${e3.layerIds[0]}: Value for \"icon-size\" is >= ${rc}. Reduce your \"icon-size\".`)), e3.addSymbols(e3.icon, a4, y4, b3, v3, w3, t.ah.none, r3, I3.lineStartIndex, I3.lineLength, -1, k3), $2 = e3.icon.placedSymbolArray.length - 1, f4 && (E3 = 4 * f4.length, e3.addSymbols(e3.icon, f4, y4, b3, v3, w3, t.ah.vertical, r3, I3.lineStartIndex, I3.lineLength, -1, k3), L2 = e3.icon.placedSymbolArray.length - 1);\n }\n const j2 = Object.keys(i3.horizontal);\n for (const n4 of j2) {\n const s4 = i3.horizontal[n4];\n if (!z3) {\n O2 = ma(s4.text);\n const t4 = l4.layout.get(\"text-rotate\").evaluate(w3, {}, k3);\n z3 = new ch(u3, r3, c3, h3, p4, s4, f3, d3, y3, t4);\n }\n const o4 = 1 === s4.positionedLines.length;\n if (F2 += _h(e3, r3, s4, a3, l4, y3, w3, m3, I3, i3.vertical ? t.ah.horizontal : t.ah.horizontalOnly, o4 ? j2 : [n4], D3, $2, _3, k3), o4) break;\n }\n i3.vertical && (T2 += _h(e3, r3, i3.vertical, a3, l4, y3, w3, m3, I3, t.ah.vertical, [\"vertical\"], D3, L2, _3, k3));\n const R2 = z3 ? z3.boxStartIndex : e3.collisionBoxArray.length, U2 = z3 ? z3.boxEndIndex : e3.collisionBoxArray.length, q2 = C4 ? C4.boxStartIndex : e3.collisionBoxArray.length, N2 = C4 ? C4.boxEndIndex : e3.collisionBoxArray.length, Z2 = P3 ? P3.boxStartIndex : e3.collisionBoxArray.length, G2 = P3 ? P3.boxEndIndex : e3.collisionBoxArray.length, K3 = B4 ? B4.boxStartIndex : e3.collisionBoxArray.length, X2 = B4 ? B4.boxEndIndex : e3.collisionBoxArray.length;\n let H2 = -1;\n const Y2 = (t4, e4) => t4 && t4.circleDiameter ? Math.max(t4.circleDiameter, e4) : e4;\n H2 = Y2(z3, H2), H2 = Y2(C4, H2), H2 = Y2(P3, H2), H2 = Y2(B4, H2);\n const J2 = H2 > -1 ? 1 : 0;\n J2 && (H2 *= M3 / iu), e3.glyphOffsetArray.length >= dc.MAX_GLYPHS && A2(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"), void 0 !== w3.sortKey && e3.addToSortKeyRanges(e3.symbolInstances.length, w3.sortKey);\n const W2 = vh(l4, w3, k3), [Q2, tt2] = function(e4, r4) {\n const n4 = e4.length, i4 = null == r4 ? void 0 : r4.values;\n if ((null == i4 ? void 0 : i4.length) > 0) for (let r5 = 0; r5 < i4.length; r5 += 2) {\n const n5 = i4[r5 + 1];\n e4.emplaceBack(t.aq[i4[r5]], n5[0], n5[1]);\n }\n return [n4, e4.length];\n }(e3.textAnchorOffsets, W2);\n e3.symbolInstances.emplaceBack(r3.x, r3.y, D3.right >= 0 ? D3.right : -1, D3.center >= 0 ? D3.center : -1, D3.left >= 0 ? D3.left : -1, D3.vertical || -1, $2, L2, O2, R2, U2, q2, N2, Z2, G2, K3, X2, c3, F2, T2, V2, E3, J2, 0, f3, H2, Q2, tt2);\n }(e2, p3, l3, n2, i2, s2, C3, e2.layers[0], e2.collisionBoxArray, r2.index, r2.sourceLayerIndex, e2.index, g2, [w2, w2, w2, w2], k2, u2, v2, _2, M2, d2, r2, a2, c2, h2, o2);\n };\n if (\"line\" === I2) for (const t4 of Hc(r2.geometry, 0, 0, $a, $a)) {\n const r3 = rh(t4, b2, S2, n2.vertical || y2, i2, 24, x2, e2.overscaling, $a);\n for (const n3 of r3) y2 && Sh(e2, y2.text, z2, n3) || B3(t4, n3);\n }\n else if (\"line-center\" === I2) {\n for (const t4 of r2.geometry) if (t4.length > 1) {\n const e3 = eh(t4, S2, n2.vertical || y2, i2, 24, x2);\n e3 && B3(t4, e3);\n }\n } else if (\"Polygon\" === r2.type) for (const t4 of xr(r2.geometry, 0)) {\n const e3 = ph(t4, 16);\n B3(t4[0], new Yc(e3.x, e3.y, 0));\n }\n else if (\"LineString\" === r2.type) for (const t4 of r2.geometry) B3(t4, new Yc(t4[0].x, t4[0].y, 0));\n else if (\"Point\" === r2.type) for (const t4 of r2.geometry) for (const e3 of t4) B3([e3], new Yc(e3.x, e3.y, 0));\n }\n function _h(t4, e2, r2, n2, i2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2) {\n const m2 = function(t5, e3, r3, n3, i3, a3, o3, l3) {\n const u3 = n3.layout.get(\"text-rotate\").evaluate(a3, {}) * Math.PI / 180, c3 = [];\n for (const t6 of e3.positionedLines) for (const n4 of t6.positionedGlyphs) {\n if (!n4.rect) continue;\n const a4 = n4.rect || {};\n let h3 = Vu + 1, p3 = true, f3 = 1, d3 = 0;\n const y3 = (i3 || l3) && n4.vertical, m3 = n4.metrics.advance * n4.scale / 2;\n if (l3 && e3.verticalizable && (d3 = t6.lineOffset / 2 - (n4.imageName ? -(iu - n4.metrics.width * n4.scale) / 2 : (n4.scale - 1) * iu)), n4.imageName) {\n const t7 = o3[n4.imageName];\n p3 = t7.sdf, f3 = t7.pixelRatio, h3 = Fu / f3;\n }\n const g3 = i3 ? [n4.x + m3, n4.y] : [0, 0];\n let x3 = i3 ? [0, 0] : [n4.x + m3 + r3[0], n4.y + r3[1] - d3], v2 = [0, 0];\n y3 && (v2 = x3, x3 = [0, 0]);\n const b2 = n4.metrics.isDoubleResolution ? 2 : 1, w2 = (n4.metrics.left - h3) * n4.scale - m3 + x3[0], _2 = (-n4.metrics.top - h3) * n4.scale + x3[1], A3 = w2 + a4.w / b2 * n4.scale / f3, S2 = _2 + a4.h / b2 * n4.scale / f3, k2 = new s(w2, _2), M2 = new s(A3, _2), I2 = new s(w2, S2), z2 = new s(A3, S2);\n if (y3) {\n const t7 = new s(-m3, m3 - Du), e4 = -Math.PI / 2, r4 = iu / 2 - m3, i4 = new s(5 - Du - r4, -(n4.imageName ? r4 : 0)), a5 = new s(...v2);\n k2._rotateAround(e4, t7)._add(i4)._add(a5), M2._rotateAround(e4, t7)._add(i4)._add(a5), I2._rotateAround(e4, t7)._add(i4)._add(a5), z2._rotateAround(e4, t7)._add(i4)._add(a5);\n }\n if (u3) {\n const t7 = Math.sin(u3), e4 = Math.cos(u3), r4 = [e4, -t7, t7, e4];\n k2._matMult(r4), M2._matMult(r4), I2._matMult(r4), z2._matMult(r4);\n }\n const P2 = new s(0, 0), C3 = new s(0, 0);\n c3.push({ tl: k2, tr: M2, bl: I2, br: z2, tex: a4, writingMode: e3.writingMode, glyphOffset: g3, sectionIndex: n4.sectionIndex, isSDF: p3, pixelOffsetTL: P2, pixelOffsetBR: C3, minFontScaleX: 0, minFontScaleY: 0 });\n }\n return c3;\n }(0, r2, l2, i2, a2, o2, n2, t4.allowVerticalPlacement), g2 = t4.textSizeData;\n let x2 = null;\n \"source\" === g2.kind ? (x2 = [nc * i2.layout.get(\"text-size\").evaluate(o2, {})], x2[0] > ic && A2(`${t4.layerIds[0]}: Value for \"text-size\" is >= ${rc}. Reduce your \"text-size\".`)) : \"composite\" === g2.kind && (x2 = [nc * d2.compositeTextSizes[0].evaluate(o2, {}, y2), nc * d2.compositeTextSizes[1].evaluate(o2, {}, y2)], (x2[0] > ic || x2[1] > ic) && A2(`${t4.layerIds[0]}: Value for \"text-size\" is >= ${rc}. Reduce your \"text-size\".`)), t4.addSymbols(t4.text, m2, x2, l2, a2, o2, c2, e2, u2.lineStartIndex, u2.lineLength, f2, y2);\n for (const e3 of h2) p2[e3] = t4.text.placedSymbolArray.length - 1;\n return 4 * m2.length;\n }\n function Ah(t4) {\n for (const e2 in t4) return t4[e2];\n return null;\n }\n function Sh(t4, e2, r2, n2) {\n const i2 = t4.compareText;\n if (e2 in i2) {\n const t5 = i2[e2];\n for (let e3 = t5.length - 1; e3 >= 0; e3--) if (n2.dist(t5[e3]) < r2) return true;\n } else i2[e2] = [];\n return i2[e2].push(n2), false;\n }\n const kh = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\n class Mh {\n static from(t4) {\n if (!(t4 instanceof ArrayBuffer)) throw new Error(\"Data must be an instance of ArrayBuffer.\");\n const [e2, r2] = new Uint8Array(t4, 0, 2);\n if (219 !== e2) throw new Error(\"Data does not appear to be in a KDBush format.\");\n const n2 = r2 >> 4;\n if (1 !== n2) throw new Error(`Got v${n2} data when expected v1.`);\n const i2 = kh[15 & r2];\n if (!i2) throw new Error(\"Unrecognized array type.\");\n const [s2] = new Uint16Array(t4, 2, 1), [a2] = new Uint32Array(t4, 4, 1);\n return new Mh(a2, s2, i2, t4);\n }\n constructor(t4, e2 = 64, r2 = Float64Array, n2) {\n if (isNaN(t4) || t4 < 0) throw new Error(`Unpexpected numItems value: ${t4}.`);\n this.numItems = +t4, this.nodeSize = Math.min(Math.max(+e2, 2), 65535), this.ArrayType = r2, this.IndexArrayType = t4 < 65536 ? Uint16Array : Uint32Array;\n const i2 = kh.indexOf(this.ArrayType), s2 = 2 * t4 * this.ArrayType.BYTES_PER_ELEMENT, a2 = t4 * this.IndexArrayType.BYTES_PER_ELEMENT, o2 = (8 - a2 % 8) % 8;\n if (i2 < 0) throw new Error(`Unexpected typed array class: ${r2}.`);\n n2 && n2 instanceof ArrayBuffer ? (this.data = n2, this.ids = new this.IndexArrayType(this.data, 8, t4), this.coords = new this.ArrayType(this.data, 8 + a2 + o2, 2 * t4), this._pos = 2 * t4, this._finished = true) : (this.data = new ArrayBuffer(8 + s2 + a2 + o2), this.ids = new this.IndexArrayType(this.data, 8, t4), this.coords = new this.ArrayType(this.data, 8 + a2 + o2, 2 * t4), this._pos = 0, this._finished = false, new Uint8Array(this.data, 0, 2).set([219, 16 + i2]), new Uint16Array(this.data, 2, 1)[0] = e2, new Uint32Array(this.data, 4, 1)[0] = t4);\n }\n add(t4, e2) {\n const r2 = this._pos >> 1;\n return this.ids[r2] = r2, this.coords[this._pos++] = t4, this.coords[this._pos++] = e2, r2;\n }\n finish() {\n const t4 = this._pos >> 1;\n if (t4 !== this.numItems) throw new Error(`Added ${t4} items when expected ${this.numItems}.`);\n return Ih(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = true, this;\n }\n range(t4, e2, r2, n2) {\n if (!this._finished) throw new Error(\"Data not yet indexed - call index.finish().\");\n const { ids: i2, coords: s2, nodeSize: a2 } = this, o2 = [0, i2.length - 1, 0], l2 = [];\n for (; o2.length; ) {\n const u2 = o2.pop() || 0, c2 = o2.pop() || 0, h2 = o2.pop() || 0;\n if (c2 - h2 <= a2) {\n for (let a3 = h2; a3 <= c2; a3++) {\n const o3 = s2[2 * a3], u3 = s2[2 * a3 + 1];\n o3 >= t4 && o3 <= r2 && u3 >= e2 && u3 <= n2 && l2.push(i2[a3]);\n }\n continue;\n }\n const p2 = h2 + c2 >> 1, f2 = s2[2 * p2], d2 = s2[2 * p2 + 1];\n f2 >= t4 && f2 <= r2 && d2 >= e2 && d2 <= n2 && l2.push(i2[p2]), (0 === u2 ? t4 <= f2 : e2 <= d2) && (o2.push(h2), o2.push(p2 - 1), o2.push(1 - u2)), (0 === u2 ? r2 >= f2 : n2 >= d2) && (o2.push(p2 + 1), o2.push(c2), o2.push(1 - u2));\n }\n return l2;\n }\n within(t4, e2, r2) {\n if (!this._finished) throw new Error(\"Data not yet indexed - call index.finish().\");\n const { ids: n2, coords: i2, nodeSize: s2 } = this, a2 = [0, n2.length - 1, 0], o2 = [], l2 = r2 * r2;\n for (; a2.length; ) {\n const u2 = a2.pop() || 0, c2 = a2.pop() || 0, h2 = a2.pop() || 0;\n if (c2 - h2 <= s2) {\n for (let r3 = h2; r3 <= c2; r3++) Bh(i2[2 * r3], i2[2 * r3 + 1], t4, e2) <= l2 && o2.push(n2[r3]);\n continue;\n }\n const p2 = h2 + c2 >> 1, f2 = i2[2 * p2], d2 = i2[2 * p2 + 1];\n Bh(f2, d2, t4, e2) <= l2 && o2.push(n2[p2]), (0 === u2 ? t4 - r2 <= f2 : e2 - r2 <= d2) && (a2.push(h2), a2.push(p2 - 1), a2.push(1 - u2)), (0 === u2 ? t4 + r2 >= f2 : e2 + r2 >= d2) && (a2.push(p2 + 1), a2.push(c2), a2.push(1 - u2));\n }\n return o2;\n }\n }\n function Ih(t4, e2, r2, n2, i2, s2) {\n if (i2 - n2 <= r2) return;\n const a2 = n2 + i2 >> 1;\n zh(t4, e2, a2, n2, i2, s2), Ih(t4, e2, r2, n2, a2 - 1, 1 - s2), Ih(t4, e2, r2, a2 + 1, i2, 1 - s2);\n }\n function zh(t4, e2, r2, n2, i2, s2) {\n for (; i2 > n2; ) {\n if (i2 - n2 > 600) {\n const a3 = i2 - n2 + 1, o3 = r2 - n2 + 1, l3 = Math.log(a3), u2 = 0.5 * Math.exp(2 * l3 / 3), c2 = 0.5 * Math.sqrt(l3 * u2 * (a3 - u2) / a3) * (o3 - a3 / 2 < 0 ? -1 : 1);\n zh(t4, e2, r2, Math.max(n2, Math.floor(r2 - o3 * u2 / a3 + c2)), Math.min(i2, Math.floor(r2 + (a3 - o3) * u2 / a3 + c2)), s2);\n }\n const a2 = e2[2 * r2 + s2];\n let o2 = n2, l2 = i2;\n for (Ph(t4, e2, n2, r2), e2[2 * i2 + s2] > a2 && Ph(t4, e2, n2, i2); o2 < l2; ) {\n for (Ph(t4, e2, o2, l2), o2++, l2--; e2[2 * o2 + s2] < a2; ) o2++;\n for (; e2[2 * l2 + s2] > a2; ) l2--;\n }\n e2[2 * n2 + s2] === a2 ? Ph(t4, e2, n2, l2) : (l2++, Ph(t4, e2, l2, i2)), l2 <= r2 && (n2 = l2 + 1), r2 <= l2 && (i2 = l2 - 1);\n }\n }\n function Ph(t4, e2, r2, n2) {\n Ch(t4, r2, n2), Ch(e2, 2 * r2, 2 * n2), Ch(e2, 2 * r2 + 1, 2 * n2 + 1);\n }\n function Ch(t4, e2, r2) {\n const n2 = t4[e2];\n t4[e2] = t4[r2], t4[r2] = n2;\n }\n function Bh(t4, e2, r2, n2) {\n const i2 = t4 - r2, s2 = e2 - n2;\n return i2 * i2 + s2 * s2;\n }\n var Vh;\n t.bg = void 0, (Vh = t.bg || (t.bg = {})).create = \"create\", Vh.load = \"load\", Vh.fullLoad = \"fullLoad\";\n let Eh = null, Fh = [];\n const Th = 1e3 / 60, $h = \"loadTime\", Lh = \"fullLoadTime\", Dh = { mark(t4) {\n performance.mark(t4);\n }, frame(t4) {\n const e2 = t4;\n null != Eh && Fh.push(e2 - Eh), Eh = e2;\n }, clearMetrics() {\n Eh = null, Fh = [], performance.clearMeasures($h), performance.clearMeasures(Lh);\n for (const e2 in t.bg) performance.clearMarks(t.bg[e2]);\n }, getPerformanceMetrics() {\n performance.measure($h, t.bg.create, t.bg.load), performance.measure(Lh, t.bg.create, t.bg.fullLoad);\n const e2 = performance.getEntriesByName($h)[0].duration, r2 = performance.getEntriesByName(Lh)[0].duration, n2 = Fh.length, i2 = 1 / (Fh.reduce((t4, e3) => t4 + e3, 0) / n2 / 1e3), s2 = Fh.filter((t4) => t4 > Th).reduce((t4, e3) => t4 + (e3 - Th) / Th, 0);\n return { loadTime: e2, fullLoadTime: r2, fps: i2, percentDroppedFrames: s2 / (n2 + s2) * 100, totalFrames: n2 };\n } };\n t.$ = class extends ps {\n }, t.A = oo, t.B = yi, t.C = function(t4) {\n if (null == M) {\n const e2 = t4.navigator ? t4.navigator.userAgent : null;\n M = !!t4.safari || !(!e2 || !(/\\b(iPad|iPhone|iPod)\\b/.test(e2) || e2.match(\"Safari\") && !e2.match(\"Chrome\")));\n }\n return M;\n }, t.D = Ji, t.E = Z, t.F = class {\n constructor(t4, e2) {\n this.target = t4, this.mapId = e2, this.resolveRejects = {}, this.tasks = {}, this.taskQueue = [], this.abortControllers = {}, this.messageHandlers = {}, this.invoker = new Ic(() => this.process()), this.subscription = function(t5, e3, r2, n2) {\n return t5.addEventListener(e3, r2, false), { unsubscribe: () => {\n t5.removeEventListener(e3, r2, false);\n } };\n }(this.target, \"message\", (t5) => this.receive(t5)), this.globalScope = k(self) ? t4 : window;\n }\n registerMessageHandler(t4, e2) {\n this.messageHandlers[t4] = e2;\n }\n sendAsync(t4, e2) {\n return new Promise((r2, n2) => {\n const i2 = Math.round(1e18 * Math.random()).toString(36).substring(0, 10);\n this.resolveRejects[i2] = { resolve: r2, reject: n2 }, e2 && e2.signal.addEventListener(\"abort\", () => {\n delete this.resolveRejects[i2];\n const e3 = { id: i2, type: \"\", origin: location.origin, targetMapId: t4.targetMapId, sourceMapId: this.mapId };\n this.target.postMessage(e3);\n }, { once: true });\n const s2 = [], a2 = Object.assign(Object.assign({}, t4), { id: i2, sourceMapId: this.mapId, origin: location.origin, data: ki(t4.data, s2) });\n this.target.postMessage(a2, { transfer: s2 });\n });\n }\n receive(t4) {\n const e2 = t4.data, r2 = e2.id;\n if (!(\"file://\" !== e2.origin && \"file://\" !== location.origin && \"resource://android\" !== e2.origin && \"resource://android\" !== location.origin && e2.origin !== location.origin || e2.targetMapId && this.mapId !== e2.targetMapId)) {\n if (\"\" === e2.type) {\n delete this.tasks[r2];\n const t5 = this.abortControllers[r2];\n return delete this.abortControllers[r2], void (t5 && t5.abort());\n }\n if (k(self) || e2.mustQueue) return this.tasks[r2] = e2, this.taskQueue.push(r2), void this.invoker.trigger();\n this.processTask(r2, e2);\n }\n }\n process() {\n if (0 === this.taskQueue.length) return;\n const t4 = this.taskQueue.shift(), e2 = this.tasks[t4];\n delete this.tasks[t4], this.taskQueue.length > 0 && this.invoker.trigger(), e2 && this.processTask(t4, e2);\n }\n processTask(t4, r2) {\n return e(this, void 0, void 0, function* () {\n if (\"\" === r2.type) {\n const e3 = this.resolveRejects[t4];\n if (delete this.resolveRejects[t4], !e3) return;\n return void (r2.error ? e3.reject(Mi(r2.error)) : e3.resolve(Mi(r2.data)));\n }\n if (!this.messageHandlers[r2.type]) return void this.completeTask(t4, new Error(`Could not find a registered handler for ${r2.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(\", \")}`));\n const e2 = Mi(r2.data), n2 = new AbortController();\n this.abortControllers[t4] = n2;\n try {\n const i2 = yield this.messageHandlers[r2.type](r2.sourceMapId, e2, n2);\n this.completeTask(t4, null, i2);\n } catch (e3) {\n this.completeTask(t4, e3);\n }\n });\n }\n completeTask(t4, e2, r2) {\n const n2 = [];\n delete this.abortControllers[t4];\n const i2 = { id: t4, type: \"\", sourceMapId: this.mapId, origin: location.origin, error: e2 ? ki(e2) : null, data: ki(r2, n2) };\n this.target.postMessage(i2, { transfer: n2 });\n }\n remove() {\n this.invoker.remove(), this.subscription.unsubscribe();\n }\n }, t.G = $, t.H = function() {\n var t4 = new oo(16);\n return oo != Float32Array && (t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[11] = 0, t4[12] = 0, t4[13] = 0, t4[14] = 0), t4[0] = 1, t4[5] = 1, t4[10] = 1, t4[15] = 1, t4;\n }, t.I = Tu, t.J = function(t4, e2, r2) {\n var n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2 = r2[0], m2 = r2[1], g2 = r2[2];\n return e2 === t4 ? (t4[12] = e2[0] * y2 + e2[4] * m2 + e2[8] * g2 + e2[12], t4[13] = e2[1] * y2 + e2[5] * m2 + e2[9] * g2 + e2[13], t4[14] = e2[2] * y2 + e2[6] * m2 + e2[10] * g2 + e2[14], t4[15] = e2[3] * y2 + e2[7] * m2 + e2[11] * g2 + e2[15]) : (i2 = e2[1], s2 = e2[2], a2 = e2[3], o2 = e2[4], l2 = e2[5], u2 = e2[6], c2 = e2[7], h2 = e2[8], p2 = e2[9], f2 = e2[10], d2 = e2[11], t4[0] = n2 = e2[0], t4[1] = i2, t4[2] = s2, t4[3] = a2, t4[4] = o2, t4[5] = l2, t4[6] = u2, t4[7] = c2, t4[8] = h2, t4[9] = p2, t4[10] = f2, t4[11] = d2, t4[12] = n2 * y2 + o2 * m2 + h2 * g2 + e2[12], t4[13] = i2 * y2 + l2 * m2 + p2 * g2 + e2[13], t4[14] = s2 * y2 + u2 * m2 + f2 * g2 + e2[14], t4[15] = a2 * y2 + c2 * m2 + d2 * g2 + e2[15]), t4;\n }, t.K = function(t4, e2, r2) {\n var n2 = r2[0], i2 = r2[1], s2 = r2[2];\n return t4[0] = e2[0] * n2, t4[1] = e2[1] * n2, t4[2] = e2[2] * n2, t4[3] = e2[3] * n2, t4[4] = e2[4] * i2, t4[5] = e2[5] * i2, t4[6] = e2[6] * i2, t4[7] = e2[7] * i2, t4[8] = e2[8] * s2, t4[9] = e2[9] * s2, t4[10] = e2[10] * s2, t4[11] = e2[11] * s2, t4[12] = e2[12], t4[13] = e2[13], t4[14] = e2[14], t4[15] = e2[15], t4;\n }, t.L = uo, t.M = function(t4, e2) {\n const r2 = {};\n for (let n2 = 0; n2 < e2.length; n2++) {\n const i2 = e2[n2];\n i2 in t4 && (r2[i2] = t4[i2]);\n }\n return r2;\n }, t.N = Pc, t.O = Vc, t.P = s, t.Q = Ec, t.R = Ao, t.S = jc, t.T = Zi, t.U = h, t.V = p, t.W = P, t.X = $a, t.Y = ls, t.Z = $c, t._ = e, t.a = F, t.a$ = function(t4, e2) {\n var r2 = t4[0], n2 = t4[1], i2 = t4[2], s2 = t4[3], a2 = t4[4], o2 = t4[5], l2 = t4[6], u2 = t4[7], c2 = t4[8], h2 = t4[9], p2 = t4[10], f2 = t4[11], d2 = t4[12], y2 = t4[13], m2 = t4[14], g2 = t4[15], x2 = e2[0], v2 = e2[1], b2 = e2[2], w2 = e2[3], _2 = e2[4], A3 = e2[5], S2 = e2[6], k2 = e2[7], M2 = e2[8], I2 = e2[9], z2 = e2[10], P2 = e2[11], C3 = e2[12], B3 = e2[13], V2 = e2[14], E3 = e2[15];\n return Math.abs(r2 - x2) <= ao * Math.max(1, Math.abs(r2), Math.abs(x2)) && Math.abs(n2 - v2) <= ao * Math.max(1, Math.abs(n2), Math.abs(v2)) && Math.abs(i2 - b2) <= ao * Math.max(1, Math.abs(i2), Math.abs(b2)) && Math.abs(s2 - w2) <= ao * Math.max(1, Math.abs(s2), Math.abs(w2)) && Math.abs(a2 - _2) <= ao * Math.max(1, Math.abs(a2), Math.abs(_2)) && Math.abs(o2 - A3) <= ao * Math.max(1, Math.abs(o2), Math.abs(A3)) && Math.abs(l2 - S2) <= ao * Math.max(1, Math.abs(l2), Math.abs(S2)) && Math.abs(u2 - k2) <= ao * Math.max(1, Math.abs(u2), Math.abs(k2)) && Math.abs(c2 - M2) <= ao * Math.max(1, Math.abs(c2), Math.abs(M2)) && Math.abs(h2 - I2) <= ao * Math.max(1, Math.abs(h2), Math.abs(I2)) && Math.abs(p2 - z2) <= ao * Math.max(1, Math.abs(p2), Math.abs(z2)) && Math.abs(f2 - P2) <= ao * Math.max(1, Math.abs(f2), Math.abs(P2)) && Math.abs(d2 - C3) <= ao * Math.max(1, Math.abs(d2), Math.abs(C3)) && Math.abs(y2 - B3) <= ao * Math.max(1, Math.abs(y2), Math.abs(B3)) && Math.abs(m2 - V2) <= ao * Math.max(1, Math.abs(m2), Math.abs(V2)) && Math.abs(g2 - E3) <= ao * Math.max(1, Math.abs(g2), Math.abs(E3));\n }, t.a0 = oa, t.a1 = Dc, t.a2 = it, t.a3 = (t4) => {\n const e2 = window.document.createElement(\"video\");\n return e2.muted = true, new Promise((r2) => {\n e2.onloadstart = () => {\n r2(e2);\n };\n for (const r3 of t4) {\n const t5 = window.document.createElement(\"source\");\n j(r3) || (e2.crossOrigin = \"Anonymous\"), t5.src = r3, e2.appendChild(t5);\n }\n });\n }, t.a4 = function() {\n return x++;\n }, t.a5 = Fs, t.a6 = dc, t.a7 = zn, t.a8 = ja, t.a9 = Nc, t.aA = function(t4) {\n if (\"custom\" === t4.type) return new Mc(t4);\n switch (t4.type) {\n case \"background\":\n return new _c(t4);\n case \"circle\":\n return new fo(t4);\n case \"fill\":\n return new ul(t4);\n case \"fill-extrusion\":\n return new El(t4);\n case \"heatmap\":\n return new Mo(t4);\n case \"hillshade\":\n return new Po(t4);\n case \"line\":\n return new Hl(t4);\n case \"raster\":\n return new kc(t4);\n case \"symbol\":\n return new vc(t4);\n }\n }, t.aB = w, t.aC = function(t4, e2) {\n if (!t4) return [{ command: \"setStyle\", args: [e2] }];\n let r2 = [];\n try {\n if (!H(t4.version, e2.version)) return [{ command: \"setStyle\", args: [e2] }];\n H(t4.center, e2.center) || r2.push({ command: \"setCenter\", args: [e2.center] }), H(t4.zoom, e2.zoom) || r2.push({ command: \"setZoom\", args: [e2.zoom] }), H(t4.bearing, e2.bearing) || r2.push({ command: \"setBearing\", args: [e2.bearing] }), H(t4.pitch, e2.pitch) || r2.push({ command: \"setPitch\", args: [e2.pitch] }), H(t4.sprite, e2.sprite) || r2.push({ command: \"setSprite\", args: [e2.sprite] }), H(t4.glyphs, e2.glyphs) || r2.push({ command: \"setGlyphs\", args: [e2.glyphs] }), H(t4.transition, e2.transition) || r2.push({ command: \"setTransition\", args: [e2.transition] }), H(t4.light, e2.light) || r2.push({ command: \"setLight\", args: [e2.light] }), H(t4.terrain, e2.terrain) || r2.push({ command: \"setTerrain\", args: [e2.terrain] }), H(t4.sky, e2.sky) || r2.push({ command: \"setSky\", args: [e2.sky] }), H(t4.projection, e2.projection) || r2.push({ command: \"setProjection\", args: [e2.projection] });\n const n2 = {}, i2 = [];\n !function(t5, e3, r3, n3) {\n let i3;\n for (i3 in e3 = e3 || {}, t5 = t5 || {}) Object.prototype.hasOwnProperty.call(t5, i3) && (Object.prototype.hasOwnProperty.call(e3, i3) || W(i3, r3, n3));\n for (i3 in e3) Object.prototype.hasOwnProperty.call(e3, i3) && (Object.prototype.hasOwnProperty.call(t5, i3) ? H(t5[i3], e3[i3]) || (\"geojson\" === t5[i3].type && \"geojson\" === e3[i3].type && tt(t5, e3, i3) ? Y(r3, { command: \"setGeoJSONSourceData\", args: [i3, e3[i3].data] }) : Q(i3, e3, r3, n3)) : J(i3, e3, r3));\n }(t4.sources, e2.sources, i2, n2);\n const s2 = [];\n t4.layers && t4.layers.forEach((t5) => {\n \"source\" in t5 && n2[t5.source] ? r2.push({ command: \"removeLayer\", args: [t5.id] }) : s2.push(t5);\n }), r2 = r2.concat(i2), function(t5, e3, r3) {\n e3 = e3 || [];\n const n3 = (t5 = t5 || []).map(rt), i3 = e3.map(rt), s3 = t5.reduce(nt, {}), a2 = e3.reduce(nt, {}), o2 = n3.slice(), l2 = /* @__PURE__ */ Object.create(null);\n let u2, c2, h2, p2, f2;\n for (let t6 = 0, e4 = 0; t6 < n3.length; t6++) u2 = n3[t6], Object.prototype.hasOwnProperty.call(a2, u2) ? e4++ : (Y(r3, { command: \"removeLayer\", args: [u2] }), o2.splice(o2.indexOf(u2, e4), 1));\n for (let t6 = 0, e4 = 0; t6 < i3.length; t6++) u2 = i3[i3.length - 1 - t6], o2[o2.length - 1 - t6] !== u2 && (Object.prototype.hasOwnProperty.call(s3, u2) ? (Y(r3, { command: \"removeLayer\", args: [u2] }), o2.splice(o2.lastIndexOf(u2, o2.length - e4), 1)) : e4++, p2 = o2[o2.length - t6], Y(r3, { command: \"addLayer\", args: [a2[u2], p2] }), o2.splice(o2.length - t6, 0, u2), l2[u2] = true);\n for (let t6 = 0; t6 < i3.length; t6++) if (u2 = i3[t6], c2 = s3[u2], h2 = a2[u2], !l2[u2] && !H(c2, h2)) if (H(c2.source, h2.source) && H(c2[\"source-layer\"], h2[\"source-layer\"]) && H(c2.type, h2.type)) {\n for (f2 in et(c2.layout, h2.layout, r3, u2, null, \"setLayoutProperty\"), et(c2.paint, h2.paint, r3, u2, null, \"setPaintProperty\"), H(c2.filter, h2.filter) || Y(r3, { command: \"setFilter\", args: [u2, h2.filter] }), H(c2.minzoom, h2.minzoom) && H(c2.maxzoom, h2.maxzoom) || Y(r3, { command: \"setLayerZoomRange\", args: [u2, h2.minzoom, h2.maxzoom] }), c2) Object.prototype.hasOwnProperty.call(c2, f2) && \"layout\" !== f2 && \"paint\" !== f2 && \"filter\" !== f2 && \"metadata\" !== f2 && \"minzoom\" !== f2 && \"maxzoom\" !== f2 && (0 === f2.indexOf(\"paint.\") ? et(c2[f2], h2[f2], r3, u2, f2.slice(6), \"setPaintProperty\") : H(c2[f2], h2[f2]) || Y(r3, { command: \"setLayerProperty\", args: [u2, f2, h2[f2]] }));\n for (f2 in h2) Object.prototype.hasOwnProperty.call(h2, f2) && !Object.prototype.hasOwnProperty.call(c2, f2) && \"layout\" !== f2 && \"paint\" !== f2 && \"filter\" !== f2 && \"metadata\" !== f2 && \"minzoom\" !== f2 && \"maxzoom\" !== f2 && (0 === f2.indexOf(\"paint.\") ? et(c2[f2], h2[f2], r3, u2, f2.slice(6), \"setPaintProperty\") : H(c2[f2], h2[f2]) || Y(r3, { command: \"setLayerProperty\", args: [u2, f2, h2[f2]] }));\n } else Y(r3, { command: \"removeLayer\", args: [u2] }), p2 = o2[o2.lastIndexOf(u2) + 1], Y(r3, { command: \"addLayer\", args: [h2, p2] });\n }(s2, e2.layers, r2);\n } catch (t5) {\n console.warn(\"Unable to compute style diff:\", t5), r2 = [{ command: \"setStyle\", args: [e2] }];\n }\n return r2;\n }, t.aD = function(t4) {\n const e2 = [], r2 = t4.id;\n return void 0 === r2 && e2.push({ message: `layers.${r2}: missing required property \"id\"` }), void 0 === t4.render && e2.push({ message: `layers.${r2}: missing required method \"render\"` }), t4.renderingMode && \"2d\" !== t4.renderingMode && \"3d\" !== t4.renderingMode && e2.push({ message: `layers.${r2}: property \"renderingMode\" must be either \"2d\" or \"3d\"` }), e2;\n }, t.aE = function t4(e2, r2) {\n if (Array.isArray(e2)) {\n if (!Array.isArray(r2) || e2.length !== r2.length) return false;\n for (let n2 = 0; n2 < e2.length; n2++) if (!t4(e2[n2], r2[n2])) return false;\n return true;\n }\n if (\"object\" == typeof e2 && null !== e2 && null !== r2) {\n if (\"object\" != typeof r2) return false;\n if (Object.keys(e2).length !== Object.keys(r2).length) return false;\n for (const n2 in e2) if (!t4(e2[n2], r2[n2])) return false;\n return true;\n }\n return e2 === r2;\n }, t.aF = v, t.aG = b, t.aH = class extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = 0;\n }\n set(t4) {\n this.current !== t4 && (this.current = t4, this.gl.uniform1i(this.location, t4));\n }\n }, t.aI = _a, t.aJ = class extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = ka;\n }\n set(t4) {\n if (t4[12] !== this.current[12] || t4[0] !== this.current[0]) return this.current = t4, void this.gl.uniformMatrix4fv(this.location, false, t4);\n for (let e2 = 1; e2 < 16; e2++) if (t4[e2] !== this.current[e2]) {\n this.current = t4, this.gl.uniformMatrix4fv(this.location, false, t4);\n break;\n }\n }\n }, t.aK = Aa, t.aL = Sa, t.aM = Kt, t.aN = class extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = [0, 0, 0];\n }\n set(t4) {\n t4[0] === this.current[0] && t4[1] === this.current[1] && t4[2] === this.current[2] || (this.current = t4, this.gl.uniform3f(this.location, t4[0], t4[1], t4[2]));\n }\n }, t.aO = class extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = [0, 0];\n }\n set(t4) {\n t4[0] === this.current[0] && t4[1] === this.current[1] || (this.current = t4, this.gl.uniform2f(this.location, t4[0], t4[1]));\n }\n }, t.aP = function(t4, e2, r2, n2, i2, s2, a2) {\n var o2 = 1 / (e2 - r2), l2 = 1 / (n2 - i2), u2 = 1 / (s2 - a2);\n return t4[0] = -2 * o2, t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[5] = -2 * l2, t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[10] = 2 * u2, t4[11] = 0, t4[12] = (e2 + r2) * o2, t4[13] = (i2 + n2) * l2, t4[14] = (a2 + s2) * u2, t4[15] = 1, t4;\n }, t.aQ = ho, t.aR = class extends _s {\n }, t.aS = eu, t.aT = class extends Ss {\n }, t.aU = ko, t.aV = function(t4) {\n return t4 <= 1 ? 1 : Math.pow(2, Math.ceil(Math.log(t4) / Math.LN2));\n }, t.aW = So, t.aX = Zs, t.aY = na, t.aZ = class extends Bs {\n }, t.a_ = function(t4, e2) {\n return t4[0] === e2[0] && t4[1] === e2[1] && t4[2] === e2[2] && t4[3] === e2[3] && t4[4] === e2[4] && t4[5] === e2[5] && t4[6] === e2[6] && t4[7] === e2[7] && t4[8] === e2[8] && t4[9] === e2[9] && t4[10] === e2[10] && t4[11] === e2[11] && t4[12] === e2[12] && t4[13] === e2[13] && t4[14] === e2[14] && t4[15] === e2[15];\n }, t.aa = function(t4) {\n const e2 = {};\n if (t4.replace(/(?:^|(?:\\s*\\,\\s*))([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g, (t5, r2, n2, i2) => {\n const s2 = n2 || i2;\n return e2[r2] = !s2 || s2.toLowerCase(), \"\";\n }), e2[\"max-age\"]) {\n const t5 = parseInt(e2[\"max-age\"], 10);\n isNaN(t5) ? delete e2[\"max-age\"] : e2[\"max-age\"] = t5;\n }\n return e2;\n }, t.ab = function(t4, e2) {\n const r2 = [];\n for (const n2 in t4) n2 in e2 || r2.push(n2);\n return r2;\n }, t.ac = y, t.ad = function(t4, e2, r2) {\n var n2 = Math.sin(r2), i2 = Math.cos(r2), s2 = e2[0], a2 = e2[1], o2 = e2[2], l2 = e2[3], u2 = e2[4], c2 = e2[5], h2 = e2[6], p2 = e2[7];\n return e2 !== t4 && (t4[8] = e2[8], t4[9] = e2[9], t4[10] = e2[10], t4[11] = e2[11], t4[12] = e2[12], t4[13] = e2[13], t4[14] = e2[14], t4[15] = e2[15]), t4[0] = s2 * i2 + u2 * n2, t4[1] = a2 * i2 + c2 * n2, t4[2] = o2 * i2 + h2 * n2, t4[3] = l2 * i2 + p2 * n2, t4[4] = u2 * i2 - s2 * n2, t4[5] = c2 * i2 - a2 * n2, t4[6] = h2 * i2 - o2 * n2, t4[7] = p2 * i2 - l2 * n2, t4;\n }, t.ae = function(t4) {\n var e2 = new oo(16);\n return e2[0] = t4[0], e2[1] = t4[1], e2[2] = t4[2], e2[3] = t4[3], e2[4] = t4[4], e2[5] = t4[5], e2[6] = t4[6], e2[7] = t4[7], e2[8] = t4[8], e2[9] = t4[9], e2[10] = t4[10], e2[11] = t4[11], e2[12] = t4[12], e2[13] = t4[13], e2[14] = t4[14], e2[15] = t4[15], e2;\n }, t.af = po, t.ag = function(t4, e2) {\n let r2 = 0, n2 = 0;\n if (\"constant\" === t4.kind) n2 = t4.layoutSize;\n else if (\"source\" !== t4.kind) {\n const { interpolationType: i2, minZoom: s2, maxZoom: a2 } = t4, o2 = i2 ? y(Be.interpolationFactor(i2, e2, s2, a2), 0, 1) : 0;\n \"camera\" === t4.kind ? n2 = Ce.number(t4.minSize, t4.maxSize, o2) : r2 = o2;\n }\n return { uSizeT: r2, uSize: n2 };\n }, t.ai = function(t4, { uSize: e2, uSizeT: r2 }, { lowerSize: n2, upperSize: i2 }) {\n return \"source\" === t4.kind ? n2 / nc : \"composite\" === t4.kind ? Ce.number(n2 / nc, i2 / nc, r2) : e2;\n }, t.aj = cc, t.ak = function(t4, e2, r2, n2) {\n const i2 = e2.y - t4.y, a2 = e2.x - t4.x, o2 = n2.y - r2.y, l2 = n2.x - r2.x, u2 = o2 * a2 - l2 * i2;\n if (0 === u2) return null;\n const c2 = (l2 * (t4.y - r2.y) - o2 * (t4.x - r2.x)) / u2;\n return new s(t4.x + c2 * a2, t4.y + c2 * i2);\n }, t.al = Hc, t.am = qa, t.an = lo, t.ao = function(t4) {\n let e2 = 1 / 0, r2 = 1 / 0, n2 = -1 / 0, i2 = -1 / 0;\n for (const s2 of t4) e2 = Math.min(e2, s2.x), r2 = Math.min(r2, s2.y), n2 = Math.max(n2, s2.x), i2 = Math.max(i2, s2.y);\n return [e2, r2, n2, i2];\n }, t.ap = iu, t.ar = ac, t.as = function(t4, e2) {\n var r2 = e2[0], n2 = e2[1], i2 = e2[2], s2 = e2[3], a2 = e2[4], o2 = e2[5], l2 = e2[6], u2 = e2[7], c2 = e2[8], h2 = e2[9], p2 = e2[10], f2 = e2[11], d2 = e2[12], y2 = e2[13], m2 = e2[14], g2 = e2[15], x2 = r2 * o2 - n2 * a2, v2 = r2 * l2 - i2 * a2, b2 = r2 * u2 - s2 * a2, w2 = n2 * l2 - i2 * o2, _2 = n2 * u2 - s2 * o2, A3 = i2 * u2 - s2 * l2, S2 = c2 * y2 - h2 * d2, k2 = c2 * m2 - p2 * d2, M2 = c2 * g2 - f2 * d2, I2 = h2 * m2 - p2 * y2, z2 = h2 * g2 - f2 * y2, P2 = p2 * g2 - f2 * m2, C3 = x2 * P2 - v2 * z2 + b2 * I2 + w2 * M2 - _2 * k2 + A3 * S2;\n return C3 ? (t4[0] = (o2 * P2 - l2 * z2 + u2 * I2) * (C3 = 1 / C3), t4[1] = (i2 * z2 - n2 * P2 - s2 * I2) * C3, t4[2] = (y2 * A3 - m2 * _2 + g2 * w2) * C3, t4[3] = (p2 * _2 - h2 * A3 - f2 * w2) * C3, t4[4] = (l2 * M2 - a2 * P2 - u2 * k2) * C3, t4[5] = (r2 * P2 - i2 * M2 + s2 * k2) * C3, t4[6] = (m2 * b2 - d2 * A3 - g2 * v2) * C3, t4[7] = (c2 * A3 - p2 * b2 + f2 * v2) * C3, t4[8] = (a2 * z2 - o2 * M2 + u2 * S2) * C3, t4[9] = (n2 * M2 - r2 * z2 - s2 * S2) * C3, t4[10] = (d2 * _2 - y2 * b2 + g2 * x2) * C3, t4[11] = (h2 * b2 - c2 * _2 - f2 * x2) * C3, t4[12] = (o2 * k2 - a2 * I2 - l2 * S2) * C3, t4[13] = (r2 * I2 - n2 * k2 + i2 * S2) * C3, t4[14] = (y2 * v2 - d2 * w2 - m2 * x2) * C3, t4[15] = (c2 * w2 - h2 * v2 + p2 * x2) * C3, t4) : null;\n }, t.at = bh, t.au = Ju, t.av = Mh, t.aw = function() {\n const t4 = {}, e2 = G.$version;\n for (const r2 in G.$root) {\n const n2 = G.$root[r2];\n if (n2.required) {\n let i2 = null;\n i2 = \"version\" === r2 ? e2 : \"array\" === n2.type ? [] : {}, null != i2 && (t4[r2] = i2);\n }\n }\n return t4;\n }, t.ax = Ii, t.ay = D2, t.az = function(t4) {\n t4 = t4.slice();\n const e2 = /* @__PURE__ */ Object.create(null);\n for (let r2 = 0; r2 < t4.length; r2++) e2[t4[r2].id] = t4[r2];\n for (let r2 = 0; r2 < t4.length; r2++) \"ref\" in t4[r2] && (t4[r2] = X(t4[r2], e2[t4[r2].ref]));\n return t4;\n }, t.b = I, t.b0 = function(t4, e2) {\n return t4[0] = e2[0], t4[1] = e2[1], t4[2] = e2[2], t4[3] = e2[3], t4[4] = e2[4], t4[5] = e2[5], t4[6] = e2[6], t4[7] = e2[7], t4[8] = e2[8], t4[9] = e2[9], t4[10] = e2[10], t4[11] = e2[11], t4[12] = e2[12], t4[13] = e2[13], t4[14] = e2[14], t4[15] = e2[15], t4;\n }, t.b1 = function(t4, e2, r2) {\n return t4[0] = e2[0] * r2[0], t4[1] = e2[1] * r2[1], t4[2] = e2[2] * r2[2], t4[3] = e2[3] * r2[3], t4;\n }, t.b2 = function(t4, e2) {\n return t4[0] * e2[0] + t4[1] * e2[1] + t4[2] * e2[2] + t4[3] * e2[3];\n }, t.b3 = m, t.b4 = Oc, t.b5 = Fc, t.b6 = function(t4, e2, r2, n2, i2) {\n var s2, a2 = 1 / Math.tan(e2 / 2);\n return t4[0] = a2 / r2, t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[5] = a2, t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[11] = -1, t4[12] = 0, t4[13] = 0, t4[15] = 0, null != i2 && i2 !== 1 / 0 ? (t4[10] = (i2 + n2) * (s2 = 1 / (n2 - i2)), t4[14] = 2 * i2 * n2 * s2) : (t4[10] = -1, t4[14] = -2 * n2), t4;\n }, t.b7 = function(t4, e2, r2) {\n var n2 = Math.sin(r2), i2 = Math.cos(r2), s2 = e2[4], a2 = e2[5], o2 = e2[6], l2 = e2[7], u2 = e2[8], c2 = e2[9], h2 = e2[10], p2 = e2[11];\n return e2 !== t4 && (t4[0] = e2[0], t4[1] = e2[1], t4[2] = e2[2], t4[3] = e2[3], t4[12] = e2[12], t4[13] = e2[13], t4[14] = e2[14], t4[15] = e2[15]), t4[4] = s2 * i2 + u2 * n2, t4[5] = a2 * i2 + c2 * n2, t4[6] = o2 * i2 + h2 * n2, t4[7] = l2 * i2 + p2 * n2, t4[8] = u2 * i2 - s2 * n2, t4[9] = c2 * i2 - a2 * n2, t4[10] = h2 * i2 - o2 * n2, t4[11] = p2 * i2 - l2 * n2, t4;\n }, t.b8 = f, t.b9 = d, t.bA = su, t.bB = function(t4) {\n return t4.message === V;\n }, t.bC = bn, t.bD = Ri, t.ba = function(t4) {\n return t4 * Math.PI / 180;\n }, t.bb = function(t4, e2) {\n const { x: r2, y: n2 } = $c.fromLngLat(e2);\n return !(t4 < 0 || t4 > 25 || n2 < 0 || n2 >= 1 || r2 < 0 || r2 >= 1);\n }, t.bc = function(t4, e2) {\n return t4[0] = e2[0], t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[5] = e2[1], t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[10] = e2[2], t4[11] = 0, t4[12] = 0, t4[13] = 0, t4[14] = 0, t4[15] = 1, t4;\n }, t.bd = class extends hs {\n }, t.be = zc, t.bf = Dh, t.bh = L, t.bi = function(t4, e2) {\n F.REGISTERED_PROTOCOLS[t4] = e2;\n }, t.bj = function(t4) {\n delete F.REGISTERED_PROTOCOLS[t4];\n }, t.bk = function(t4, e2) {\n const r2 = {};\n for (let n3 = 0; n3 < t4.length; n3++) {\n const i2 = e2 && e2[t4[n3].id] || Ln(t4[n3]);\n e2 && (e2[t4[n3].id] = i2);\n let s2 = r2[i2];\n s2 || (s2 = r2[i2] = []), s2.push(t4[n3]);\n }\n const n2 = [];\n for (const t5 in r2) n2.push(r2[t5]);\n return n2;\n }, t.bl = wi, t.bm = qc, t.bn = Zc, t.bo = $u, t.bp = function(e2) {\n e2.bucket.createArrays(), e2.bucket.tilePixelRatio = $a / (512 * e2.bucket.overscaling), e2.bucket.compareText = {}, e2.bucket.iconsNeedLinear = false;\n const r2 = e2.bucket.layers[0], n2 = r2.layout, i2 = r2._unevaluatedLayout._values, s2 = { layoutIconSize: i2[\"icon-size\"].possiblyEvaluate(new Ui(e2.bucket.zoom + 1), e2.canonical), layoutTextSize: i2[\"text-size\"].possiblyEvaluate(new Ui(e2.bucket.zoom + 1), e2.canonical), textMaxSize: i2[\"text-size\"].possiblyEvaluate(new Ui(18)) };\n if (\"composite\" === e2.bucket.textSizeData.kind) {\n const { minZoom: t4, maxZoom: r3 } = e2.bucket.textSizeData;\n s2.compositeTextSizes = [i2[\"text-size\"].possiblyEvaluate(new Ui(t4), e2.canonical), i2[\"text-size\"].possiblyEvaluate(new Ui(r3), e2.canonical)];\n }\n if (\"composite\" === e2.bucket.iconSizeData.kind) {\n const { minZoom: t4, maxZoom: r3 } = e2.bucket.iconSizeData;\n s2.compositeIconSizes = [i2[\"icon-size\"].possiblyEvaluate(new Ui(t4), e2.canonical), i2[\"icon-size\"].possiblyEvaluate(new Ui(r3), e2.canonical)];\n }\n const a2 = n2.get(\"text-line-height\") * iu, o2 = \"viewport\" !== n2.get(\"text-rotation-alignment\") && \"point\" !== n2.get(\"symbol-placement\"), l2 = n2.get(\"text-keep-upright\"), u2 = n2.get(\"text-size\");\n for (const i3 of e2.bucket.features) {\n const c2 = n2.get(\"text-font\").evaluate(i3, {}, e2.canonical).join(\",\"), h2 = u2.evaluate(i3, {}, e2.canonical), p2 = s2.layoutTextSize.evaluate(i3, {}, e2.canonical), f2 = s2.layoutIconSize.evaluate(i3, {}, e2.canonical), d2 = { horizontal: {}, vertical: void 0 }, y2 = i3.text;\n let m2, g2 = [0, 0];\n if (y2) {\n const s3 = y2.toString(), u3 = n2.get(\"text-letter-spacing\").evaluate(i3, {}, e2.canonical) * iu, f3 = Ci(s3) ? u3 : 0, m3 = n2.get(\"text-anchor\").evaluate(i3, {}, e2.canonical), x3 = vh(r2, i3, e2.canonical);\n if (!x3) {\n const t4 = n2.get(\"text-radial-offset\").evaluate(i3, {}, e2.canonical);\n g2 = t4 ? xh(m3, [t4 * iu, gh]) : n2.get(\"text-offset\").evaluate(i3, {}, e2.canonical).map((t5) => t5 * iu);\n }\n let v3 = o2 ? \"center\" : n2.get(\"text-justify\").evaluate(i3, {}, e2.canonical);\n const b2 = \"point\" === n2.get(\"symbol-placement\") ? n2.get(\"text-max-width\").evaluate(i3, {}, e2.canonical) * iu : 1 / 0, w2 = () => {\n e2.bucket.allowVerticalPlacement && Pi(s3) && (d2.vertical = Ru(y2, e2.glyphMap, e2.glyphPositions, e2.imagePositions, c2, b2, a2, m3, \"left\", f3, g2, t.ah.vertical, true, p2, h2));\n };\n if (!o2 && x3) {\n const r3 = /* @__PURE__ */ new Set();\n if (\"auto\" === v3) for (let t4 = 0; t4 < x3.values.length; t4 += 2) r3.add(bh(x3.values[t4]));\n else r3.add(v3);\n let n3 = false;\n for (const i4 of r3) if (!d2.horizontal[i4]) if (n3) d2.horizontal[i4] = d2.horizontal[0];\n else {\n const r4 = Ru(y2, e2.glyphMap, e2.glyphPositions, e2.imagePositions, c2, b2, a2, \"center\", i4, f3, g2, t.ah.horizontal, false, p2, h2);\n r4 && (d2.horizontal[i4] = r4, n3 = 1 === r4.positionedLines.length);\n }\n w2();\n } else {\n \"auto\" === v3 && (v3 = bh(m3));\n const r3 = Ru(y2, e2.glyphMap, e2.glyphPositions, e2.imagePositions, c2, b2, a2, m3, v3, f3, g2, t.ah.horizontal, false, p2, h2);\n r3 && (d2.horizontal[v3] = r3), w2(), Pi(s3) && o2 && l2 && (d2.vertical = Ru(y2, e2.glyphMap, e2.glyphPositions, e2.imagePositions, c2, b2, a2, m3, v3, f3, g2, t.ah.vertical, false, p2, h2));\n }\n }\n let x2 = false;\n if (i3.icon && i3.icon.name) {\n const t4 = e2.imageMap[i3.icon.name];\n t4 && (m2 = Qu(e2.imagePositions[i3.icon.name], n2.get(\"icon-offset\").evaluate(i3, {}, e2.canonical), n2.get(\"icon-anchor\").evaluate(i3, {}, e2.canonical)), x2 = !!t4.sdf, void 0 === e2.bucket.sdfIcons ? e2.bucket.sdfIcons = x2 : e2.bucket.sdfIcons !== x2 && A2(\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\"), (t4.pixelRatio !== e2.bucket.pixelRatio || 0 !== n2.get(\"icon-rotate\").constantOr(1)) && (e2.bucket.iconsNeedLinear = true));\n }\n const v2 = Ah(d2.horizontal) || d2.vertical;\n e2.bucket.iconsInText = !!v2 && v2.iconsInText, (v2 || m2) && wh(e2.bucket, i3, d2, m2, e2.imageMap, s2, p2, f2, g2, x2, e2.canonical);\n }\n e2.showCollisionBoxes && e2.bucket.generateCollisionDebugBuffers();\n }, t.bq = ql, t.br = sl, t.bs = zl, t.bt = fl, t.bu = Iu, t.bv = class {\n constructor(t4) {\n this._marks = { start: [t4.url, \"start\"].join(\"#\"), end: [t4.url, \"end\"].join(\"#\"), measure: t4.url.toString() }, performance.mark(this._marks.start);\n }\n finish() {\n performance.mark(this._marks.end);\n let t4 = performance.getEntriesByName(this._marks.measure);\n return 0 === t4.length && (performance.measure(this._marks.measure, this._marks.start, this._marks.end), t4 = performance.getEntriesByName(this._marks.measure), performance.clearMarks(this._marks.start), performance.clearMarks(this._marks.end), performance.clearMeasures(this._marks.measure)), t4;\n }\n }, t.bw = function(t4, r2, n2, i2, s2) {\n return e(this, void 0, void 0, function* () {\n if (p()) try {\n return yield P(t4, r2, n2, i2, s2);\n } catch (t5) {\n }\n return function(t5, e2, r3, n3, i3) {\n const s3 = t5.width, a2 = t5.height;\n C2 && B2 || (C2 = new OffscreenCanvas(s3, a2), B2 = C2.getContext(\"2d\", { willReadFrequently: true })), C2.width = s3, C2.height = a2, B2.drawImage(t5, 0, 0, s3, a2);\n const o2 = B2.getImageData(e2, r3, n3, i3);\n return B2.clearRect(0, 0, s3, a2), o2.data;\n }(t4, r2, n2, i2, s2);\n });\n }, t.bx = Uc, t.by = r, t.bz = n, t.c = E2, t.d = (t4) => e(void 0, void 0, void 0, function* () {\n if (0 === t4.byteLength) return createImageBitmap(new ImageData(1, 1));\n const e2 = new Blob([new Uint8Array(t4)], { type: \"image/png\" });\n try {\n return createImageBitmap(e2);\n } catch (t5) {\n throw new Error(`Could not load image because of ${t5.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`);\n }\n }), t.e = g, t.f = (t4) => new Promise((e2, r2) => {\n const n2 = new Image();\n n2.onload = () => {\n e2(n2), URL.revokeObjectURL(n2.src), n2.onload = null, window.requestAnimationFrame(() => {\n n2.src = z;\n });\n }, n2.onerror = () => r2(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));\n const i2 = new Blob([new Uint8Array(t4)], { type: \"image/png\" });\n n2.src = t4.byteLength ? URL.createObjectURL(i2) : z;\n }), t.g = T, t.h = (t4, e2) => O(g(t4, { type: \"json\" }), e2), t.i = k, t.j = N, t.k = q, t.l = (t4, e2) => O(g(t4, { type: \"arrayBuffer\" }), e2), t.m = O, t.n = function(t4) {\n return new Iu(t4).readFields(Pu, []);\n }, t.o = _o, t.p = Eu, t.q = rs, t.r = di, t.s = j, t.t = xi, t.u = fi, t.v = G, t.w = A2, t.x = function([t4, e2, r2]) {\n return e2 += 90, e2 *= Math.PI / 180, r2 *= Math.PI / 180, { x: t4 * Math.cos(e2) * Math.sin(r2), y: t4 * Math.sin(e2) * Math.sin(r2), z: t4 * Math.cos(r2) };\n }, t.y = Ce, t.z = Ui;\n });\n define2(\"worker\", [\"./shared\"], function(e) {\n \"use strict\";\n class t {\n constructor(e2) {\n this.keyCache = {}, e2 && this.replace(e2);\n }\n replace(e2) {\n this._layerConfigs = {}, this._layers = {}, this.update(e2, []);\n }\n update(t4, o2) {\n for (const o3 of t4) {\n this._layerConfigs[o3.id] = o3;\n const t5 = this._layers[o3.id] = e.aA(o3);\n t5._featureFilter = e.a7(t5.filter), this.keyCache[o3.id] && delete this.keyCache[o3.id];\n }\n for (const e2 of o2) delete this.keyCache[e2], delete this._layerConfigs[e2], delete this._layers[e2];\n this.familiesBySource = {};\n const i2 = e.bk(Object.values(this._layerConfigs), this.keyCache);\n for (const e2 of i2) {\n const t5 = e2.map((e3) => this._layers[e3.id]), o3 = t5[0];\n if (\"none\" === o3.visibility) continue;\n const i3 = o3.source || \"\";\n let s2 = this.familiesBySource[i3];\n s2 || (s2 = this.familiesBySource[i3] = {});\n const r2 = o3.sourceLayer || \"_geojsonTileLayer\";\n let n2 = s2[r2];\n n2 || (n2 = s2[r2] = []), n2.push(t5);\n }\n }\n }\n class o {\n constructor(t4) {\n const o2 = {}, i2 = [];\n for (const e2 in t4) {\n const s3 = t4[e2], r3 = o2[e2] = {};\n for (const e3 in s3) {\n const t5 = s3[+e3];\n if (!t5 || 0 === t5.bitmap.width || 0 === t5.bitmap.height) continue;\n const o3 = { x: 0, y: 0, w: t5.bitmap.width + 2, h: t5.bitmap.height + 2 };\n i2.push(o3), r3[e3] = { rect: o3, metrics: t5.metrics };\n }\n }\n const { w: s2, h: r2 } = e.p(i2), n2 = new e.o({ width: s2 || 1, height: r2 || 1 });\n for (const i3 in t4) {\n const s3 = t4[i3];\n for (const t5 in s3) {\n const r3 = s3[+t5];\n if (!r3 || 0 === r3.bitmap.width || 0 === r3.bitmap.height) continue;\n const a2 = o2[i3][t5].rect;\n e.o.copy(r3.bitmap, n2, { x: 0, y: 0 }, { x: a2.x + 1, y: a2.y + 1 }, r3.bitmap);\n }\n }\n this.image = n2, this.positions = o2;\n }\n }\n e.bl(\"GlyphAtlas\", o);\n class i {\n constructor(t4) {\n this.tileID = new e.S(t4.tileID.overscaledZ, t4.tileID.wrap, t4.tileID.canonical.z, t4.tileID.canonical.x, t4.tileID.canonical.y), this.uid = t4.uid, this.zoom = t4.zoom, this.pixelRatio = t4.pixelRatio, this.tileSize = t4.tileSize, this.source = t4.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = t4.showCollisionBoxes, this.collectResourceTiming = !!t4.collectResourceTiming, this.returnDependencies = !!t4.returnDependencies, this.promoteId = t4.promoteId, this.inFlightDependencies = [];\n }\n parse(t4, i2, r2, n2) {\n return e._(this, void 0, void 0, function* () {\n this.status = \"parsing\", this.data = t4, this.collisionBoxArray = new e.a5();\n const a2 = new e.bm(Object.keys(t4.layers).sort()), l2 = new e.bn(this.tileID, this.promoteId);\n l2.bucketLayerIDs = [];\n const c2 = {}, u2 = { featureIndex: l2, iconDependencies: {}, patternDependencies: {}, glyphDependencies: {}, availableImages: r2 }, h2 = i2.familiesBySource[this.source];\n for (const o2 in h2) {\n const i3 = t4.layers[o2];\n if (!i3) continue;\n 1 === i3.version && e.w(`Vector tile source \"${this.source}\" layer \"${o2}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);\n const n3 = a2.encode(o2), d3 = [];\n for (let e2 = 0; e2 < i3.length; e2++) {\n const t5 = i3.feature(e2), s2 = l2.getId(t5, o2);\n d3.push({ feature: t5, id: s2, index: e2, sourceLayerIndex: n3 });\n }\n for (const t5 of h2[o2]) {\n const o3 = t5[0];\n o3.source !== this.source && e.w(`layer.source = ${o3.source} does not equal this.source = ${this.source}`), o3.minzoom && this.zoom < Math.floor(o3.minzoom) || o3.maxzoom && this.zoom >= o3.maxzoom || \"none\" !== o3.visibility && (s(t5, this.zoom, r2), (c2[o3.id] = o3.createBucket({ index: l2.bucketLayerIDs.length, layers: t5, zoom: this.zoom, pixelRatio: this.pixelRatio, overscaling: this.overscaling, collisionBoxArray: this.collisionBoxArray, sourceLayerIndex: n3, sourceID: this.source })).populate(d3, u2, this.tileID.canonical), l2.bucketLayerIDs.push(t5.map((e2) => e2.id)));\n }\n }\n const d2 = e.aF(u2.glyphDependencies, (e2) => Object.keys(e2).map(Number));\n this.inFlightDependencies.forEach((e2) => null == e2 ? void 0 : e2.abort()), this.inFlightDependencies = [];\n let f2 = Promise.resolve({});\n if (Object.keys(d2).length) {\n const e2 = new AbortController();\n this.inFlightDependencies.push(e2), f2 = n2.sendAsync({ type: \"GG\", data: { stacks: d2, source: this.source, tileID: this.tileID, type: \"glyphs\" } }, e2);\n }\n const g2 = Object.keys(u2.iconDependencies);\n let p2 = Promise.resolve({});\n if (g2.length) {\n const e2 = new AbortController();\n this.inFlightDependencies.push(e2), p2 = n2.sendAsync({ type: \"GI\", data: { icons: g2, source: this.source, tileID: this.tileID, type: \"icons\" } }, e2);\n }\n const m2 = Object.keys(u2.patternDependencies);\n let y2 = Promise.resolve({});\n if (m2.length) {\n const e2 = new AbortController();\n this.inFlightDependencies.push(e2), y2 = n2.sendAsync({ type: \"GI\", data: { icons: m2, source: this.source, tileID: this.tileID, type: \"patterns\" } }, e2);\n }\n const [v2, w2, x2] = yield Promise.all([f2, p2, y2]), b2 = new o(v2), S2 = new e.bo(w2, x2);\n for (const t5 in c2) {\n const o2 = c2[t5];\n o2 instanceof e.a6 ? (s(o2.layers, this.zoom, r2), e.bp({ bucket: o2, glyphMap: v2, glyphPositions: b2.positions, imageMap: w2, imagePositions: S2.iconPositions, showCollisionBoxes: this.showCollisionBoxes, canonical: this.tileID.canonical })) : o2.hasPattern && (o2 instanceof e.bq || o2 instanceof e.br || o2 instanceof e.bs) && (s(o2.layers, this.zoom, r2), o2.addFeatures(u2, this.tileID.canonical, S2.patternPositions));\n }\n return this.status = \"done\", { buckets: Object.values(c2).filter((e2) => !e2.isEmpty()), featureIndex: l2, collisionBoxArray: this.collisionBoxArray, glyphAtlasImage: b2.image, imageAtlas: S2, glyphMap: this.returnDependencies ? v2 : null, iconMap: this.returnDependencies ? w2 : null, glyphPositions: this.returnDependencies ? b2.positions : null };\n });\n }\n }\n function s(t4, o2, i2) {\n const s2 = new e.z(o2);\n for (const e2 of t4) e2.recalculate(s2, i2);\n }\n class r {\n constructor(e2, t4, o2) {\n this.actor = e2, this.layerIndex = t4, this.availableImages = o2, this.fetching = {}, this.loading = {}, this.loaded = {};\n }\n loadVectorTile(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n const i2 = yield e.l(t4.request, o2);\n try {\n return { vectorTile: new e.bt.VectorTile(new e.bu(i2.data)), rawData: i2.data, cacheControl: i2.cacheControl, expires: i2.expires };\n } catch (e2) {\n const o3 = new Uint8Array(i2.data);\n let s2 = `Unable to parse the tile at ${t4.request.url}, `;\n throw s2 += 31 === o3[0] && 139 === o3[1] ? \"please make sure the data is not gzipped and that you have configured the relevant header in the server\" : `got error: ${e2.message}`, new Error(s2);\n }\n });\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const o2 = t4.uid, s2 = !!(t4 && t4.request && t4.request.collectResourceTiming) && new e.bv(t4.request), r2 = new i(t4);\n this.loading[o2] = r2;\n const n2 = new AbortController();\n r2.abort = n2;\n try {\n const i2 = yield this.loadVectorTile(t4, n2);\n if (delete this.loading[o2], !i2) return null;\n const a2 = i2.rawData, l2 = {};\n i2.expires && (l2.expires = i2.expires), i2.cacheControl && (l2.cacheControl = i2.cacheControl);\n const c2 = {};\n if (s2) {\n const e2 = s2.finish();\n e2 && (c2.resourceTiming = JSON.parse(JSON.stringify(e2)));\n }\n r2.vectorTile = i2.vectorTile;\n const u2 = r2.parse(i2.vectorTile, this.layerIndex, this.availableImages, this.actor);\n this.loaded[o2] = r2, this.fetching[o2] = { rawTileData: a2, cacheControl: l2, resourceTiming: c2 };\n try {\n const t5 = yield u2;\n return e.e({ rawTileData: a2.slice(0) }, t5, l2, c2);\n } finally {\n delete this.fetching[o2];\n }\n } catch (e2) {\n throw delete this.loading[o2], r2.status = \"done\", this.loaded[o2] = r2, e2;\n }\n });\n }\n reloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const o2 = t4.uid;\n if (!this.loaded || !this.loaded[o2]) throw new Error(\"Should not be trying to reload a tile that was never loaded or has been removed\");\n const i2 = this.loaded[o2];\n if (i2.showCollisionBoxes = t4.showCollisionBoxes, \"parsing\" === i2.status) {\n const t5 = yield i2.parse(i2.vectorTile, this.layerIndex, this.availableImages, this.actor);\n let s2;\n if (this.fetching[o2]) {\n const { rawTileData: i3, cacheControl: r2, resourceTiming: n2 } = this.fetching[o2];\n delete this.fetching[o2], s2 = e.e({ rawTileData: i3.slice(0) }, t5, r2, n2);\n } else s2 = t5;\n return s2;\n }\n if (\"done\" === i2.status && i2.vectorTile) return i2.parse(i2.vectorTile, this.layerIndex, this.availableImages, this.actor);\n });\n }\n abortTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = this.loading, o2 = t4.uid;\n e2 && e2[o2] && e2[o2].abort && (e2[o2].abort.abort(), delete e2[o2]);\n });\n }\n removeTile(t4) {\n return e._(this, void 0, void 0, function* () {\n this.loaded && this.loaded[t4.uid] && delete this.loaded[t4.uid];\n });\n }\n }\n class n {\n constructor() {\n this.loaded = {};\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const { uid: o2, encoding: i2, rawImageData: s2, redFactor: r2, greenFactor: n2, blueFactor: a2, baseShift: l2 } = t4, c2 = s2.width + 2, u2 = s2.height + 2, h2 = e.b(s2) ? new e.R({ width: c2, height: u2 }, yield e.bw(s2, -1, -1, c2, u2)) : s2, d2 = new e.bx(o2, h2, i2, r2, n2, a2, l2);\n return this.loaded = this.loaded || {}, this.loaded[o2] = d2, d2;\n });\n }\n removeTile(e2) {\n const t4 = this.loaded, o2 = e2.uid;\n t4 && t4[o2] && delete t4[o2];\n }\n }\n function a(e2, t4) {\n if (0 !== e2.length) {\n l(e2[0], t4);\n for (var o2 = 1; o2 < e2.length; o2++) l(e2[o2], !t4);\n }\n }\n function l(e2, t4) {\n for (var o2 = 0, i2 = 0, s2 = 0, r2 = e2.length, n2 = r2 - 1; s2 < r2; n2 = s2++) {\n var a2 = (e2[s2][0] - e2[n2][0]) * (e2[n2][1] + e2[s2][1]), l2 = o2 + a2;\n i2 += Math.abs(o2) >= Math.abs(a2) ? o2 - l2 + a2 : a2 - l2 + o2, o2 = l2;\n }\n o2 + i2 >= 0 != !!t4 && e2.reverse();\n }\n var c = e.by(function e2(t4, o2) {\n var i2, s2 = t4 && t4.type;\n if (\"FeatureCollection\" === s2) for (i2 = 0; i2 < t4.features.length; i2++) e2(t4.features[i2], o2);\n else if (\"GeometryCollection\" === s2) for (i2 = 0; i2 < t4.geometries.length; i2++) e2(t4.geometries[i2], o2);\n else if (\"Feature\" === s2) e2(t4.geometry, o2);\n else if (\"Polygon\" === s2) a(t4.coordinates, o2);\n else if (\"MultiPolygon\" === s2) for (i2 = 0; i2 < t4.coordinates.length; i2++) a(t4.coordinates[i2], o2);\n return t4;\n });\n const u = e.bt.VectorTileFeature.prototype.toGeoJSON;\n var h = { exports: {} }, d = e.bz, f = e.bt.VectorTileFeature, g = p;\n function p(e2, t4) {\n this.options = t4 || {}, this.features = e2, this.length = e2.length;\n }\n function m(e2, t4) {\n this.id = \"number\" == typeof e2.id ? e2.id : void 0, this.type = e2.type, this.rawGeometry = 1 === e2.type ? [e2.geometry] : e2.geometry, this.properties = e2.tags, this.extent = t4 || 4096;\n }\n p.prototype.feature = function(e2) {\n return new m(this.features[e2], this.options.extent);\n }, m.prototype.loadGeometry = function() {\n var e2 = this.rawGeometry;\n this.geometry = [];\n for (var t4 = 0; t4 < e2.length; t4++) {\n for (var o2 = e2[t4], i2 = [], s2 = 0; s2 < o2.length; s2++) i2.push(new d(o2[s2][0], o2[s2][1]));\n this.geometry.push(i2);\n }\n return this.geometry;\n }, m.prototype.bbox = function() {\n this.geometry || this.loadGeometry();\n for (var e2 = this.geometry, t4 = 1 / 0, o2 = -1 / 0, i2 = 1 / 0, s2 = -1 / 0, r2 = 0; r2 < e2.length; r2++) for (var n2 = e2[r2], a2 = 0; a2 < n2.length; a2++) {\n var l2 = n2[a2];\n t4 = Math.min(t4, l2.x), o2 = Math.max(o2, l2.x), i2 = Math.min(i2, l2.y), s2 = Math.max(s2, l2.y);\n }\n return [t4, i2, o2, s2];\n }, m.prototype.toGeoJSON = f.prototype.toGeoJSON;\n var y = e.bA, v = g;\n function w(e2) {\n var t4 = new y();\n return function(e3, t5) {\n for (var o2 in e3.layers) t5.writeMessage(3, x, e3.layers[o2]);\n }(e2, t4), t4.finish();\n }\n function x(e2, t4) {\n var o2;\n t4.writeVarintField(15, e2.version || 1), t4.writeStringField(1, e2.name || \"\"), t4.writeVarintField(5, e2.extent || 4096);\n var i2 = { keys: [], values: [], keycache: {}, valuecache: {} };\n for (o2 = 0; o2 < e2.length; o2++) i2.feature = e2.feature(o2), t4.writeMessage(2, b, i2);\n var s2 = i2.keys;\n for (o2 = 0; o2 < s2.length; o2++) t4.writeStringField(3, s2[o2]);\n var r2 = i2.values;\n for (o2 = 0; o2 < r2.length; o2++) t4.writeMessage(4, P, r2[o2]);\n }\n function b(e2, t4) {\n var o2 = e2.feature;\n void 0 !== o2.id && t4.writeVarintField(1, o2.id), t4.writeMessage(2, S, e2), t4.writeVarintField(3, o2.type), t4.writeMessage(4, I, o2);\n }\n function S(e2, t4) {\n var o2 = e2.feature, i2 = e2.keys, s2 = e2.values, r2 = e2.keycache, n2 = e2.valuecache;\n for (var a2 in o2.properties) {\n var l2 = o2.properties[a2], c2 = r2[a2];\n if (null !== l2) {\n void 0 === c2 && (i2.push(a2), r2[a2] = c2 = i2.length - 1), t4.writeVarint(c2);\n var u2 = typeof l2;\n \"string\" !== u2 && \"boolean\" !== u2 && \"number\" !== u2 && (l2 = JSON.stringify(l2));\n var h2 = u2 + \":\" + l2, d2 = n2[h2];\n void 0 === d2 && (s2.push(l2), n2[h2] = d2 = s2.length - 1), t4.writeVarint(d2);\n }\n }\n }\n function _(e2, t4) {\n return (t4 << 3) + (7 & e2);\n }\n function M(e2) {\n return e2 << 1 ^ e2 >> 31;\n }\n function I(e2, t4) {\n for (var o2 = e2.loadGeometry(), i2 = e2.type, s2 = 0, r2 = 0, n2 = o2.length, a2 = 0; a2 < n2; a2++) {\n var l2 = o2[a2], c2 = 1;\n 1 === i2 && (c2 = l2.length), t4.writeVarint(_(1, c2));\n for (var u2 = 3 === i2 ? l2.length - 1 : l2.length, h2 = 0; h2 < u2; h2++) {\n 1 === h2 && 1 !== i2 && t4.writeVarint(_(2, u2 - 1));\n var d2 = l2[h2].x - s2, f2 = l2[h2].y - r2;\n t4.writeVarint(M(d2)), t4.writeVarint(M(f2)), s2 += d2, r2 += f2;\n }\n 3 === i2 && t4.writeVarint(_(7, 1));\n }\n }\n function P(e2, t4) {\n var o2 = typeof e2;\n \"string\" === o2 ? t4.writeStringField(1, e2) : \"boolean\" === o2 ? t4.writeBooleanField(7, e2) : \"number\" === o2 && (e2 % 1 != 0 ? t4.writeDoubleField(3, e2) : e2 < 0 ? t4.writeSVarintField(6, e2) : t4.writeVarintField(5, e2));\n }\n h.exports = w, h.exports.fromVectorTileJs = w, h.exports.fromGeojsonVt = function(e2, t4) {\n t4 = t4 || {};\n var o2 = {};\n for (var i2 in e2) o2[i2] = new v(e2[i2].features, t4), o2[i2].name = i2, o2[i2].version = t4.version, o2[i2].extent = t4.extent;\n return w({ layers: o2 });\n }, h.exports.GeoJSONWrapper = v;\n var k = e.by(h.exports);\n const T = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: false, generateId: false, reduce: null, map: (e2) => e2 }, D2 = Math.fround || (C2 = new Float32Array(1), (e2) => (C2[0] = +e2, C2[0]));\n var C2;\n const L = 3, O = 5, F = 6;\n class z {\n constructor(e2) {\n this.options = Object.assign(Object.create(T), e2), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [];\n }\n load(e2) {\n const { log: t4, minZoom: o2, maxZoom: i2 } = this.options;\n t4 && console.time(\"total time\");\n const s2 = `prepare ${e2.length} points`;\n t4 && console.time(s2), this.points = e2;\n const r2 = [];\n for (let t5 = 0; t5 < e2.length; t5++) {\n const o3 = e2[t5];\n if (!o3.geometry) continue;\n const [i3, s3] = o3.geometry.coordinates, n3 = D2(G(i3)), a2 = D2(j(s3));\n r2.push(n3, a2, 1 / 0, t5, -1, 1), this.options.reduce && r2.push(0);\n }\n let n2 = this.trees[i2 + 1] = this._createTree(r2);\n t4 && console.timeEnd(s2);\n for (let e3 = i2; e3 >= o2; e3--) {\n const o3 = +Date.now();\n n2 = this.trees[e3] = this._createTree(this._cluster(n2, e3)), t4 && console.log(\"z%d: %d clusters in %dms\", e3, n2.numItems, +Date.now() - o3);\n }\n return t4 && console.timeEnd(\"total time\"), this;\n }\n getClusters(e2, t4) {\n let o2 = ((e2[0] + 180) % 360 + 360) % 360 - 180;\n const i2 = Math.max(-90, Math.min(90, e2[1]));\n let s2 = 180 === e2[2] ? 180 : ((e2[2] + 180) % 360 + 360) % 360 - 180;\n const r2 = Math.max(-90, Math.min(90, e2[3]));\n if (e2[2] - e2[0] >= 360) o2 = -180, s2 = 180;\n else if (o2 > s2) {\n const e3 = this.getClusters([o2, i2, 180, r2], t4), n3 = this.getClusters([-180, i2, s2, r2], t4);\n return e3.concat(n3);\n }\n const n2 = this.trees[this._limitZoom(t4)], a2 = n2.range(G(o2), j(r2), G(s2), j(i2)), l2 = n2.data, c2 = [];\n for (const e3 of a2) {\n const t5 = this.stride * e3;\n c2.push(l2[t5 + O] > 1 ? A2(l2, t5, this.clusterProps) : this.points[l2[t5 + L]]);\n }\n return c2;\n }\n getChildren(e2) {\n const t4 = this._getOriginId(e2), o2 = this._getOriginZoom(e2), i2 = \"No cluster with the specified id.\", s2 = this.trees[o2];\n if (!s2) throw new Error(i2);\n const r2 = s2.data;\n if (t4 * this.stride >= r2.length) throw new Error(i2);\n const n2 = this.options.radius / (this.options.extent * Math.pow(2, o2 - 1)), a2 = s2.within(r2[t4 * this.stride], r2[t4 * this.stride + 1], n2), l2 = [];\n for (const t5 of a2) {\n const o3 = t5 * this.stride;\n r2[o3 + 4] === e2 && l2.push(r2[o3 + O] > 1 ? A2(r2, o3, this.clusterProps) : this.points[r2[o3 + L]]);\n }\n if (0 === l2.length) throw new Error(i2);\n return l2;\n }\n getLeaves(e2, t4, o2) {\n const i2 = [];\n return this._appendLeaves(i2, e2, t4 = t4 || 10, o2 = o2 || 0, 0), i2;\n }\n getTile(e2, t4, o2) {\n const i2 = this.trees[this._limitZoom(e2)], s2 = Math.pow(2, e2), { extent: r2, radius: n2 } = this.options, a2 = n2 / r2, l2 = (o2 - a2) / s2, c2 = (o2 + 1 + a2) / s2, u2 = { features: [] };\n return this._addTileFeatures(i2.range((t4 - a2) / s2, l2, (t4 + 1 + a2) / s2, c2), i2.data, t4, o2, s2, u2), 0 === t4 && this._addTileFeatures(i2.range(1 - a2 / s2, l2, 1, c2), i2.data, s2, o2, s2, u2), t4 === s2 - 1 && this._addTileFeatures(i2.range(0, l2, a2 / s2, c2), i2.data, -1, o2, s2, u2), u2.features.length ? u2 : null;\n }\n getClusterExpansionZoom(e2) {\n let t4 = this._getOriginZoom(e2) - 1;\n for (; t4 <= this.options.maxZoom; ) {\n const o2 = this.getChildren(e2);\n if (t4++, 1 !== o2.length) break;\n e2 = o2[0].properties.cluster_id;\n }\n return t4;\n }\n _appendLeaves(e2, t4, o2, i2, s2) {\n const r2 = this.getChildren(t4);\n for (const t5 of r2) {\n const r3 = t5.properties;\n if (r3 && r3.cluster ? s2 + r3.point_count <= i2 ? s2 += r3.point_count : s2 = this._appendLeaves(e2, r3.cluster_id, o2, i2, s2) : s2 < i2 ? s2++ : e2.push(t5), e2.length === o2) break;\n }\n return s2;\n }\n _createTree(t4) {\n const o2 = new e.av(t4.length / this.stride | 0, this.options.nodeSize, Float32Array);\n for (let e2 = 0; e2 < t4.length; e2 += this.stride) o2.add(t4[e2], t4[e2 + 1]);\n return o2.finish(), o2.data = t4, o2;\n }\n _addTileFeatures(e2, t4, o2, i2, s2, r2) {\n for (const n2 of e2) {\n const e3 = n2 * this.stride, a2 = t4[e3 + O] > 1;\n let l2, c2, u2;\n if (a2) l2 = E2(t4, e3, this.clusterProps), c2 = t4[e3], u2 = t4[e3 + 1];\n else {\n const o3 = this.points[t4[e3 + L]];\n l2 = o3.properties;\n const [i3, s3] = o3.geometry.coordinates;\n c2 = G(i3), u2 = j(s3);\n }\n const h2 = { type: 1, geometry: [[Math.round(this.options.extent * (c2 * s2 - o2)), Math.round(this.options.extent * (u2 * s2 - i2))]], tags: l2 };\n let d2;\n d2 = a2 || this.options.generateId ? t4[e3 + L] : this.points[t4[e3 + L]].id, void 0 !== d2 && (h2.id = d2), r2.features.push(h2);\n }\n }\n _limitZoom(e2) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+e2), this.options.maxZoom + 1));\n }\n _cluster(e2, t4) {\n const { radius: o2, extent: i2, reduce: s2, minPoints: r2 } = this.options, n2 = o2 / (i2 * Math.pow(2, t4)), a2 = e2.data, l2 = [], c2 = this.stride;\n for (let o3 = 0; o3 < a2.length; o3 += c2) {\n if (a2[o3 + 2] <= t4) continue;\n a2[o3 + 2] = t4;\n const i3 = a2[o3], u2 = a2[o3 + 1], h2 = e2.within(a2[o3], a2[o3 + 1], n2), d2 = a2[o3 + O];\n let f2 = d2;\n for (const e3 of h2) {\n const o4 = e3 * c2;\n a2[o4 + 2] > t4 && (f2 += a2[o4 + O]);\n }\n if (f2 > d2 && f2 >= r2) {\n let e3, r3 = i3 * d2, n3 = u2 * d2, g2 = -1;\n const p2 = ((o3 / c2 | 0) << 5) + (t4 + 1) + this.points.length;\n for (const i4 of h2) {\n const l3 = i4 * c2;\n if (a2[l3 + 2] <= t4) continue;\n a2[l3 + 2] = t4;\n const u3 = a2[l3 + O];\n r3 += a2[l3] * u3, n3 += a2[l3 + 1] * u3, a2[l3 + 4] = p2, s2 && (e3 || (e3 = this._map(a2, o3, true), g2 = this.clusterProps.length, this.clusterProps.push(e3)), s2(e3, this._map(a2, l3)));\n }\n a2[o3 + 4] = p2, l2.push(r3 / f2, n3 / f2, 1 / 0, p2, -1, f2), s2 && l2.push(g2);\n } else {\n for (let e3 = 0; e3 < c2; e3++) l2.push(a2[o3 + e3]);\n if (f2 > 1) for (const e3 of h2) {\n const o4 = e3 * c2;\n if (!(a2[o4 + 2] <= t4)) {\n a2[o4 + 2] = t4;\n for (let e4 = 0; e4 < c2; e4++) l2.push(a2[o4 + e4]);\n }\n }\n }\n }\n return l2;\n }\n _getOriginId(e2) {\n return e2 - this.points.length >> 5;\n }\n _getOriginZoom(e2) {\n return (e2 - this.points.length) % 32;\n }\n _map(e2, t4, o2) {\n if (e2[t4 + O] > 1) {\n const i3 = this.clusterProps[e2[t4 + F]];\n return o2 ? Object.assign({}, i3) : i3;\n }\n const i2 = this.points[e2[t4 + L]].properties, s2 = this.options.map(i2);\n return o2 && s2 === i2 ? Object.assign({}, s2) : s2;\n }\n }\n function A2(e2, t4, o2) {\n return { type: \"Feature\", id: e2[t4 + L], properties: E2(e2, t4, o2), geometry: { type: \"Point\", coordinates: [(i2 = e2[t4], 360 * (i2 - 0.5)), R(e2[t4 + 1])] } };\n var i2;\n }\n function E2(e2, t4, o2) {\n const i2 = e2[t4 + O], s2 = i2 >= 1e4 ? `${Math.round(i2 / 1e3)}k` : i2 >= 1e3 ? Math.round(i2 / 100) / 10 + \"k\" : i2, r2 = e2[t4 + F], n2 = -1 === r2 ? {} : Object.assign({}, o2[r2]);\n return Object.assign(n2, { cluster: true, cluster_id: e2[t4 + L], point_count: i2, point_count_abbreviated: s2 });\n }\n function G(e2) {\n return e2 / 360 + 0.5;\n }\n function j(e2) {\n const t4 = Math.sin(e2 * Math.PI / 180), o2 = 0.5 - 0.25 * Math.log((1 + t4) / (1 - t4)) / Math.PI;\n return o2 < 0 ? 0 : o2 > 1 ? 1 : o2;\n }\n function R(e2) {\n const t4 = (180 - 360 * e2) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(t4)) / Math.PI - 90;\n }\n function Z(e2, t4, o2, i2) {\n let s2 = i2;\n const r2 = t4 + (o2 - t4 >> 1);\n let n2, a2 = o2 - t4;\n const l2 = e2[t4], c2 = e2[t4 + 1], u2 = e2[o2], h2 = e2[o2 + 1];\n for (let i3 = t4 + 3; i3 < o2; i3 += 3) {\n const t5 = N(e2[i3], e2[i3 + 1], l2, c2, u2, h2);\n if (t5 > s2) n2 = i3, s2 = t5;\n else if (t5 === s2) {\n const e3 = Math.abs(i3 - r2);\n e3 < a2 && (n2 = i3, a2 = e3);\n }\n }\n s2 > i2 && (n2 - t4 > 3 && Z(e2, t4, n2, i2), e2[n2 + 2] = s2, o2 - n2 > 3 && Z(e2, n2, o2, i2));\n }\n function N(e2, t4, o2, i2, s2, r2) {\n let n2 = s2 - o2, a2 = r2 - i2;\n if (0 !== n2 || 0 !== a2) {\n const l2 = ((e2 - o2) * n2 + (t4 - i2) * a2) / (n2 * n2 + a2 * a2);\n l2 > 1 ? (o2 = s2, i2 = r2) : l2 > 0 && (o2 += n2 * l2, i2 += a2 * l2);\n }\n return n2 = e2 - o2, a2 = t4 - i2, n2 * n2 + a2 * a2;\n }\n function J(e2, t4, o2, i2) {\n const s2 = { id: null == e2 ? null : e2, type: t4, geometry: o2, tags: i2, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 };\n if (\"Point\" === t4 || \"MultiPoint\" === t4 || \"LineString\" === t4) W(s2, o2);\n else if (\"Polygon\" === t4) W(s2, o2[0]);\n else if (\"MultiLineString\" === t4) for (const e3 of o2) W(s2, e3);\n else if (\"MultiPolygon\" === t4) for (const e3 of o2) W(s2, e3[0]);\n return s2;\n }\n function W(e2, t4) {\n for (let o2 = 0; o2 < t4.length; o2 += 3) e2.minX = Math.min(e2.minX, t4[o2]), e2.minY = Math.min(e2.minY, t4[o2 + 1]), e2.maxX = Math.max(e2.maxX, t4[o2]), e2.maxY = Math.max(e2.maxY, t4[o2 + 1]);\n }\n function Y(e2, t4, o2, i2) {\n if (!t4.geometry) return;\n const s2 = t4.geometry.coordinates;\n if (s2 && 0 === s2.length) return;\n const r2 = t4.geometry.type, n2 = Math.pow(o2.tolerance / ((1 << o2.maxZoom) * o2.extent), 2);\n let a2 = [], l2 = t4.id;\n if (o2.promoteId ? l2 = t4.properties[o2.promoteId] : o2.generateId && (l2 = i2 || 0), \"Point\" === r2) V(s2, a2);\n else if (\"MultiPoint\" === r2) for (const e3 of s2) V(e3, a2);\n else if (\"LineString\" === r2) X(s2, a2, n2, false);\n else if (\"MultiLineString\" === r2) {\n if (o2.lineMetrics) {\n for (const o3 of s2) a2 = [], X(o3, a2, n2, false), e2.push(J(l2, \"LineString\", a2, t4.properties));\n return;\n }\n q(s2, a2, n2, false);\n } else if (\"Polygon\" === r2) q(s2, a2, n2, true);\n else {\n if (\"MultiPolygon\" !== r2) {\n if (\"GeometryCollection\" === r2) {\n for (const s3 of t4.geometry.geometries) Y(e2, { id: l2, geometry: s3, properties: t4.properties }, o2, i2);\n return;\n }\n throw new Error(\"Input data is not a valid GeoJSON object.\");\n }\n for (const e3 of s2) {\n const t5 = [];\n q(e3, t5, n2, true), a2.push(t5);\n }\n }\n e2.push(J(l2, r2, a2, t4.properties));\n }\n function V(e2, t4) {\n t4.push(H(e2[0]), B2(e2[1]), 0);\n }\n function X(e2, t4, o2, i2) {\n let s2, r2, n2 = 0;\n for (let o3 = 0; o3 < e2.length; o3++) {\n const a3 = H(e2[o3][0]), l2 = B2(e2[o3][1]);\n t4.push(a3, l2, 0), o3 > 0 && (n2 += i2 ? (s2 * l2 - a3 * r2) / 2 : Math.sqrt(Math.pow(a3 - s2, 2) + Math.pow(l2 - r2, 2))), s2 = a3, r2 = l2;\n }\n const a2 = t4.length - 3;\n t4[2] = 1, Z(t4, 0, a2, o2), t4[a2 + 2] = 1, t4.size = Math.abs(n2), t4.start = 0, t4.end = t4.size;\n }\n function q(e2, t4, o2, i2) {\n for (let s2 = 0; s2 < e2.length; s2++) {\n const r2 = [];\n X(e2[s2], r2, o2, i2), t4.push(r2);\n }\n }\n function H(e2) {\n return e2 / 360 + 0.5;\n }\n function B2(e2) {\n const t4 = Math.sin(e2 * Math.PI / 180), o2 = 0.5 - 0.25 * Math.log((1 + t4) / (1 - t4)) / Math.PI;\n return o2 < 0 ? 0 : o2 > 1 ? 1 : o2;\n }\n function U(e2, t4, o2, i2, s2, r2, n2, a2) {\n if (i2 /= t4, r2 >= (o2 /= t4) && n2 < i2) return e2;\n if (n2 < o2 || r2 >= i2) return null;\n const l2 = [];\n for (const t5 of e2) {\n const e3 = t5.geometry;\n let r3 = t5.type;\n const n3 = 0 === s2 ? t5.minX : t5.minY, c2 = 0 === s2 ? t5.maxX : t5.maxY;\n if (n3 >= o2 && c2 < i2) {\n l2.push(t5);\n continue;\n }\n if (c2 < o2 || n3 >= i2) continue;\n let u2 = [];\n if (\"Point\" === r3 || \"MultiPoint\" === r3) $(e3, u2, o2, i2, s2);\n else if (\"LineString\" === r3) K2(e3, u2, o2, i2, s2, false, a2.lineMetrics);\n else if (\"MultiLineString\" === r3) ee(e3, u2, o2, i2, s2, false);\n else if (\"Polygon\" === r3) ee(e3, u2, o2, i2, s2, true);\n else if (\"MultiPolygon\" === r3) for (const t6 of e3) {\n const e4 = [];\n ee(t6, e4, o2, i2, s2, true), e4.length && u2.push(e4);\n }\n if (u2.length) {\n if (a2.lineMetrics && \"LineString\" === r3) {\n for (const e4 of u2) l2.push(J(t5.id, r3, e4, t5.tags));\n continue;\n }\n \"LineString\" !== r3 && \"MultiLineString\" !== r3 || (1 === u2.length ? (r3 = \"LineString\", u2 = u2[0]) : r3 = \"MultiLineString\"), \"Point\" !== r3 && \"MultiPoint\" !== r3 || (r3 = 3 === u2.length ? \"Point\" : \"MultiPoint\"), l2.push(J(t5.id, r3, u2, t5.tags));\n }\n }\n return l2.length ? l2 : null;\n }\n function $(e2, t4, o2, i2, s2) {\n for (let r2 = 0; r2 < e2.length; r2 += 3) {\n const n2 = e2[r2 + s2];\n n2 >= o2 && n2 <= i2 && te(t4, e2[r2], e2[r2 + 1], e2[r2 + 2]);\n }\n }\n function K2(e2, t4, o2, i2, s2, r2, n2) {\n let a2 = Q(e2);\n const l2 = 0 === s2 ? oe : ie;\n let c2, u2, h2 = e2.start;\n for (let d3 = 0; d3 < e2.length - 3; d3 += 3) {\n const f3 = e2[d3], g3 = e2[d3 + 1], p3 = e2[d3 + 2], m2 = e2[d3 + 3], y2 = e2[d3 + 4], v2 = 0 === s2 ? f3 : g3, w2 = 0 === s2 ? m2 : y2;\n let x2 = false;\n n2 && (c2 = Math.sqrt(Math.pow(f3 - m2, 2) + Math.pow(g3 - y2, 2))), v2 < o2 ? w2 > o2 && (u2 = l2(a2, f3, g3, m2, y2, o2), n2 && (a2.start = h2 + c2 * u2)) : v2 > i2 ? w2 < i2 && (u2 = l2(a2, f3, g3, m2, y2, i2), n2 && (a2.start = h2 + c2 * u2)) : te(a2, f3, g3, p3), w2 < o2 && v2 >= o2 && (u2 = l2(a2, f3, g3, m2, y2, o2), x2 = true), w2 > i2 && v2 <= i2 && (u2 = l2(a2, f3, g3, m2, y2, i2), x2 = true), !r2 && x2 && (n2 && (a2.end = h2 + c2 * u2), t4.push(a2), a2 = Q(e2)), n2 && (h2 += c2);\n }\n let d2 = e2.length - 3;\n const f2 = e2[d2], g2 = e2[d2 + 1], p2 = 0 === s2 ? f2 : g2;\n p2 >= o2 && p2 <= i2 && te(a2, f2, g2, e2[d2 + 2]), d2 = a2.length - 3, r2 && d2 >= 3 && (a2[d2] !== a2[0] || a2[d2 + 1] !== a2[1]) && te(a2, a2[0], a2[1], a2[2]), a2.length && t4.push(a2);\n }\n function Q(e2) {\n const t4 = [];\n return t4.size = e2.size, t4.start = e2.start, t4.end = e2.end, t4;\n }\n function ee(e2, t4, o2, i2, s2, r2) {\n for (const n2 of e2) K2(n2, t4, o2, i2, s2, r2, false);\n }\n function te(e2, t4, o2, i2) {\n e2.push(t4, o2, i2);\n }\n function oe(e2, t4, o2, i2, s2, r2) {\n const n2 = (r2 - t4) / (i2 - t4);\n return te(e2, r2, o2 + (s2 - o2) * n2, 1), n2;\n }\n function ie(e2, t4, o2, i2, s2, r2) {\n const n2 = (r2 - o2) / (s2 - o2);\n return te(e2, t4 + (i2 - t4) * n2, r2, 1), n2;\n }\n function se(e2, t4) {\n const o2 = [];\n for (let i2 = 0; i2 < e2.length; i2++) {\n const s2 = e2[i2], r2 = s2.type;\n let n2;\n if (\"Point\" === r2 || \"MultiPoint\" === r2 || \"LineString\" === r2) n2 = re(s2.geometry, t4);\n else if (\"MultiLineString\" === r2 || \"Polygon\" === r2) {\n n2 = [];\n for (const e3 of s2.geometry) n2.push(re(e3, t4));\n } else if (\"MultiPolygon\" === r2) {\n n2 = [];\n for (const e3 of s2.geometry) {\n const o3 = [];\n for (const i3 of e3) o3.push(re(i3, t4));\n n2.push(o3);\n }\n }\n o2.push(J(s2.id, r2, n2, s2.tags));\n }\n return o2;\n }\n function re(e2, t4) {\n const o2 = [];\n o2.size = e2.size, void 0 !== e2.start && (o2.start = e2.start, o2.end = e2.end);\n for (let i2 = 0; i2 < e2.length; i2 += 3) o2.push(e2[i2] + t4, e2[i2 + 1], e2[i2 + 2]);\n return o2;\n }\n function ne(e2, t4) {\n if (e2.transformed) return e2;\n const o2 = 1 << e2.z, i2 = e2.x, s2 = e2.y;\n for (const r2 of e2.features) {\n const e3 = r2.geometry, n2 = r2.type;\n if (r2.geometry = [], 1 === n2) for (let n3 = 0; n3 < e3.length; n3 += 2) r2.geometry.push(ae(e3[n3], e3[n3 + 1], t4, o2, i2, s2));\n else for (let n3 = 0; n3 < e3.length; n3++) {\n const a2 = [];\n for (let r3 = 0; r3 < e3[n3].length; r3 += 2) a2.push(ae(e3[n3][r3], e3[n3][r3 + 1], t4, o2, i2, s2));\n r2.geometry.push(a2);\n }\n }\n return e2.transformed = true, e2;\n }\n function ae(e2, t4, o2, i2, s2, r2) {\n return [Math.round(o2 * (e2 * i2 - s2)), Math.round(o2 * (t4 * i2 - r2))];\n }\n function le(e2, t4, o2, i2, s2) {\n const r2 = t4 === s2.maxZoom ? 0 : s2.tolerance / ((1 << t4) * s2.extent), n2 = { features: [], numPoints: 0, numSimplified: 0, numFeatures: e2.length, source: null, x: o2, y: i2, z: t4, transformed: false, minX: 2, minY: 1, maxX: -1, maxY: 0 };\n for (const t5 of e2) ce(n2, t5, r2, s2);\n return n2;\n }\n function ce(e2, t4, o2, i2) {\n const s2 = t4.geometry, r2 = t4.type, n2 = [];\n if (e2.minX = Math.min(e2.minX, t4.minX), e2.minY = Math.min(e2.minY, t4.minY), e2.maxX = Math.max(e2.maxX, t4.maxX), e2.maxY = Math.max(e2.maxY, t4.maxY), \"Point\" === r2 || \"MultiPoint\" === r2) for (let t5 = 0; t5 < s2.length; t5 += 3) n2.push(s2[t5], s2[t5 + 1]), e2.numPoints++, e2.numSimplified++;\n else if (\"LineString\" === r2) ue(n2, s2, e2, o2, false, false);\n else if (\"MultiLineString\" === r2 || \"Polygon\" === r2) for (let t5 = 0; t5 < s2.length; t5++) ue(n2, s2[t5], e2, o2, \"Polygon\" === r2, 0 === t5);\n else if (\"MultiPolygon\" === r2) for (let t5 = 0; t5 < s2.length; t5++) {\n const i3 = s2[t5];\n for (let t6 = 0; t6 < i3.length; t6++) ue(n2, i3[t6], e2, o2, true, 0 === t6);\n }\n if (n2.length) {\n let o3 = t4.tags || null;\n if (\"LineString\" === r2 && i2.lineMetrics) {\n o3 = {};\n for (const e3 in t4.tags) o3[e3] = t4.tags[e3];\n o3.mapbox_clip_start = s2.start / s2.size, o3.mapbox_clip_end = s2.end / s2.size;\n }\n const a2 = { geometry: n2, type: \"Polygon\" === r2 || \"MultiPolygon\" === r2 ? 3 : \"LineString\" === r2 || \"MultiLineString\" === r2 ? 2 : 1, tags: o3 };\n null !== t4.id && (a2.id = t4.id), e2.features.push(a2);\n }\n }\n function ue(e2, t4, o2, i2, s2, r2) {\n const n2 = i2 * i2;\n if (i2 > 0 && t4.size < (s2 ? n2 : i2)) return void (o2.numPoints += t4.length / 3);\n const a2 = [];\n for (let e3 = 0; e3 < t4.length; e3 += 3) (0 === i2 || t4[e3 + 2] > n2) && (o2.numSimplified++, a2.push(t4[e3], t4[e3 + 1])), o2.numPoints++;\n s2 && function(e3, t5) {\n let o3 = 0;\n for (let t6 = 0, i3 = e3.length, s3 = i3 - 2; t6 < i3; s3 = t6, t6 += 2) o3 += (e3[t6] - e3[s3]) * (e3[t6 + 1] + e3[s3 + 1]);\n if (o3 > 0 === t5) for (let t6 = 0, o4 = e3.length; t6 < o4 / 2; t6 += 2) {\n const i3 = e3[t6], s3 = e3[t6 + 1];\n e3[t6] = e3[o4 - 2 - t6], e3[t6 + 1] = e3[o4 - 1 - t6], e3[o4 - 2 - t6] = i3, e3[o4 - 1 - t6] = s3;\n }\n }(a2, r2), e2.push(a2);\n }\n const he = { maxZoom: 14, indexMaxZoom: 5, indexMaxPoints: 1e5, tolerance: 3, extent: 4096, buffer: 64, lineMetrics: false, promoteId: null, generateId: false, debug: 0 };\n class de {\n constructor(e2, t4) {\n const o2 = (t4 = this.options = function(e3, t5) {\n for (const o3 in t5) e3[o3] = t5[o3];\n return e3;\n }(Object.create(he), t4)).debug;\n if (o2 && console.time(\"preprocess data\"), t4.maxZoom < 0 || t4.maxZoom > 24) throw new Error(\"maxZoom should be in the 0-24 range\");\n if (t4.promoteId && t4.generateId) throw new Error(\"promoteId and generateId cannot be used together.\");\n let i2 = function(e3, t5) {\n const o3 = [];\n if (\"FeatureCollection\" === e3.type) for (let i3 = 0; i3 < e3.features.length; i3++) Y(o3, e3.features[i3], t5, i3);\n else Y(o3, \"Feature\" === e3.type ? e3 : { geometry: e3 }, t5);\n return o3;\n }(e2, t4);\n this.tiles = {}, this.tileCoords = [], o2 && (console.timeEnd(\"preprocess data\"), console.log(\"index: maxZoom: %d, maxPoints: %d\", t4.indexMaxZoom, t4.indexMaxPoints), console.time(\"generate tiles\"), this.stats = {}, this.total = 0), i2 = function(e3, t5) {\n const o3 = t5.buffer / t5.extent;\n let i3 = e3;\n const s2 = U(e3, 1, -1 - o3, o3, 0, -1, 2, t5), r2 = U(e3, 1, 1 - o3, 2 + o3, 0, -1, 2, t5);\n return (s2 || r2) && (i3 = U(e3, 1, -o3, 1 + o3, 0, -1, 2, t5) || [], s2 && (i3 = se(s2, 1).concat(i3)), r2 && (i3 = i3.concat(se(r2, -1)))), i3;\n }(i2, t4), i2.length && this.splitTile(i2, 0, 0, 0), o2 && (i2.length && console.log(\"features: %d, points: %d\", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd(\"generate tiles\"), console.log(\"tiles generated:\", this.total, JSON.stringify(this.stats)));\n }\n splitTile(e2, t4, o2, i2, s2, r2, n2) {\n const a2 = [e2, t4, o2, i2], l2 = this.options, c2 = l2.debug;\n for (; a2.length; ) {\n i2 = a2.pop(), o2 = a2.pop(), t4 = a2.pop(), e2 = a2.pop();\n const u2 = 1 << t4, h2 = fe(t4, o2, i2);\n let d2 = this.tiles[h2];\n if (!d2 && (c2 > 1 && console.time(\"creation\"), d2 = this.tiles[h2] = le(e2, t4, o2, i2, l2), this.tileCoords.push({ z: t4, x: o2, y: i2 }), c2)) {\n c2 > 1 && (console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\", t4, o2, i2, d2.numFeatures, d2.numPoints, d2.numSimplified), console.timeEnd(\"creation\"));\n const e3 = `z${t4}`;\n this.stats[e3] = (this.stats[e3] || 0) + 1, this.total++;\n }\n if (d2.source = e2, null == s2) {\n if (t4 === l2.indexMaxZoom || d2.numPoints <= l2.indexMaxPoints) continue;\n } else {\n if (t4 === l2.maxZoom || t4 === s2) continue;\n if (null != s2) {\n const e3 = s2 - t4;\n if (o2 !== r2 >> e3 || i2 !== n2 >> e3) continue;\n }\n }\n if (d2.source = null, 0 === e2.length) continue;\n c2 > 1 && console.time(\"clipping\");\n const f2 = 0.5 * l2.buffer / l2.extent, g2 = 0.5 - f2, p2 = 0.5 + f2, m2 = 1 + f2;\n let y2 = null, v2 = null, w2 = null, x2 = null, b2 = U(e2, u2, o2 - f2, o2 + p2, 0, d2.minX, d2.maxX, l2), S2 = U(e2, u2, o2 + g2, o2 + m2, 0, d2.minX, d2.maxX, l2);\n e2 = null, b2 && (y2 = U(b2, u2, i2 - f2, i2 + p2, 1, d2.minY, d2.maxY, l2), v2 = U(b2, u2, i2 + g2, i2 + m2, 1, d2.minY, d2.maxY, l2), b2 = null), S2 && (w2 = U(S2, u2, i2 - f2, i2 + p2, 1, d2.minY, d2.maxY, l2), x2 = U(S2, u2, i2 + g2, i2 + m2, 1, d2.minY, d2.maxY, l2), S2 = null), c2 > 1 && console.timeEnd(\"clipping\"), a2.push(y2 || [], t4 + 1, 2 * o2, 2 * i2), a2.push(v2 || [], t4 + 1, 2 * o2, 2 * i2 + 1), a2.push(w2 || [], t4 + 1, 2 * o2 + 1, 2 * i2), a2.push(x2 || [], t4 + 1, 2 * o2 + 1, 2 * i2 + 1);\n }\n }\n getTile(e2, t4, o2) {\n e2 = +e2, t4 = +t4, o2 = +o2;\n const i2 = this.options, { extent: s2, debug: r2 } = i2;\n if (e2 < 0 || e2 > 24) return null;\n const n2 = 1 << e2, a2 = fe(e2, t4 = t4 + n2 & n2 - 1, o2);\n if (this.tiles[a2]) return ne(this.tiles[a2], s2);\n r2 > 1 && console.log(\"drilling down to z%d-%d-%d\", e2, t4, o2);\n let l2, c2 = e2, u2 = t4, h2 = o2;\n for (; !l2 && c2 > 0; ) c2--, u2 >>= 1, h2 >>= 1, l2 = this.tiles[fe(c2, u2, h2)];\n return l2 && l2.source ? (r2 > 1 && (console.log(\"found parent tile z%d-%d-%d\", c2, u2, h2), console.time(\"drilling down\")), this.splitTile(l2.source, c2, u2, h2, e2, t4, o2), r2 > 1 && console.timeEnd(\"drilling down\"), this.tiles[a2] ? ne(this.tiles[a2], s2) : null) : null;\n }\n }\n function fe(e2, t4, o2) {\n return 32 * ((1 << e2) * o2 + t4) + e2;\n }\n function ge(e2, t4) {\n return t4 ? e2.properties[t4] : e2.id;\n }\n function pe(e2, t4) {\n if (null == e2) return true;\n if (\"Feature\" === e2.type) return null != ge(e2, t4);\n if (\"FeatureCollection\" === e2.type) {\n const o2 = /* @__PURE__ */ new Set();\n for (const i2 of e2.features) {\n const e3 = ge(i2, t4);\n if (null == e3) return false;\n if (o2.has(e3)) return false;\n o2.add(e3);\n }\n return true;\n }\n return false;\n }\n function me(e2, t4) {\n const o2 = /* @__PURE__ */ new Map();\n if (null == e2) ;\n else if (\"Feature\" === e2.type) o2.set(ge(e2, t4), e2);\n else for (const i2 of e2.features) o2.set(ge(i2, t4), i2);\n return o2;\n }\n class ye extends r {\n constructor() {\n super(...arguments), this._dataUpdateable = /* @__PURE__ */ new Map();\n }\n loadVectorTile(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n const o3 = t4.tileID.canonical;\n if (!this._geoJSONIndex) throw new Error(\"Unable to parse the data into a cluster or geojson\");\n const i2 = this._geoJSONIndex.getTile(o3.z, o3.x, o3.y);\n if (!i2) return null;\n const s2 = new class {\n constructor(t5) {\n this.layers = { _geojsonTileLayer: this }, this.name = \"_geojsonTileLayer\", this.extent = e.X, this.length = t5.length, this._features = t5;\n }\n feature(t5) {\n return new class {\n constructor(t6) {\n this._feature = t6, this.extent = e.X, this.type = t6.type, this.properties = t6.tags, \"id\" in t6 && !isNaN(t6.id) && (this.id = parseInt(t6.id, 10));\n }\n loadGeometry() {\n if (1 === this._feature.type) {\n const t6 = [];\n for (const o4 of this._feature.geometry) t6.push([new e.P(o4[0], o4[1])]);\n return t6;\n }\n {\n const t6 = [];\n for (const o4 of this._feature.geometry) {\n const i3 = [];\n for (const t7 of o4) i3.push(new e.P(t7[0], t7[1]));\n t6.push(i3);\n }\n return t6;\n }\n }\n toGeoJSON(e2, t6, o4) {\n return u.call(this, e2, t6, o4);\n }\n }(this._features[t5]);\n }\n }(i2.features);\n let r2 = k(s2);\n return 0 === r2.byteOffset && r2.byteLength === r2.buffer.byteLength || (r2 = new Uint8Array(r2)), { vectorTile: s2, rawData: r2.buffer };\n });\n }\n loadData(t4) {\n return e._(this, void 0, void 0, function* () {\n var o2;\n null === (o2 = this._pendingRequest) || void 0 === o2 || o2.abort();\n const i2 = !!(t4 && t4.request && t4.request.collectResourceTiming) && new e.bv(t4.request);\n this._pendingRequest = new AbortController();\n try {\n this._pendingData = this.loadAndProcessGeoJSON(t4, this._pendingRequest), this._geoJSONIndex = t4.cluster ? new z(function({ superclusterOptions: t5, clusterProperties: o4 }) {\n if (!o4 || !t5) return t5;\n const i3 = {}, s3 = {}, r2 = { accumulated: null, zoom: 0 }, n2 = { properties: null }, a2 = Object.keys(o4);\n for (const t6 of a2) {\n const [r3, n3] = o4[t6], a3 = e.bC(n3), l2 = e.bC(\"string\" == typeof r3 ? [r3, [\"accumulated\"], [\"get\", t6]] : r3);\n i3[t6] = a3.value, s3[t6] = l2.value;\n }\n return t5.map = (e2) => {\n n2.properties = e2;\n const t6 = {};\n for (const e3 of a2) t6[e3] = i3[e3].evaluate(r2, n2);\n return t6;\n }, t5.reduce = (e2, t6) => {\n n2.properties = t6;\n for (const t7 of a2) r2.accumulated = e2[t7], e2[t7] = s3[t7].evaluate(r2, n2);\n }, t5;\n }(t4)).load((yield this._pendingData).features) : (s2 = yield this._pendingData, new de(s2, t4.geojsonVtOptions)), this.loaded = {};\n const o3 = {};\n if (i2) {\n const e2 = i2.finish();\n e2 && (o3.resourceTiming = {}, o3.resourceTiming[t4.source] = JSON.parse(JSON.stringify(e2)));\n }\n return o3;\n } catch (t5) {\n if (delete this._pendingRequest, e.bB(t5)) return { abandoned: true };\n throw t5;\n }\n var s2;\n });\n }\n getData() {\n return e._(this, void 0, void 0, function* () {\n return this._pendingData;\n });\n }\n reloadTile(e2) {\n const t4 = this.loaded;\n return t4 && t4[e2.uid] ? super.reloadTile(e2) : this.loadTile(e2);\n }\n loadAndProcessGeoJSON(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n let i2 = yield this.loadGeoJSON(t4, o2);\n if (delete this._pendingRequest, \"object\" != typeof i2) throw new Error(`Input data given to '${t4.source}' is not a valid GeoJSON object.`);\n if (c(i2, true), t4.filter) {\n const o3 = e.bC(t4.filter, { type: \"boolean\", \"property-type\": \"data-driven\", overridable: false, transition: false });\n if (\"error\" === o3.result) throw new Error(o3.value.map((e2) => `${e2.key}: ${e2.message}`).join(\", \"));\n const s2 = i2.features.filter((e2) => o3.value.evaluate({ zoom: 0 }, e2));\n i2 = { type: \"FeatureCollection\", features: s2 };\n }\n return i2;\n });\n }\n loadGeoJSON(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n const { promoteId: i2 } = t4;\n if (t4.request) {\n const s2 = yield e.h(t4.request, o2);\n return this._dataUpdateable = pe(s2.data, i2) ? me(s2.data, i2) : void 0, s2.data;\n }\n if (\"string\" == typeof t4.data) try {\n const e2 = JSON.parse(t4.data);\n return this._dataUpdateable = pe(e2, i2) ? me(e2, i2) : void 0, e2;\n } catch (e2) {\n throw new Error(`Input data given to '${t4.source}' is not a valid GeoJSON object.`);\n }\n if (!t4.dataDiff) throw new Error(`Input data given to '${t4.source}' is not a valid GeoJSON object.`);\n if (!this._dataUpdateable) throw new Error(`Cannot update existing geojson data in ${t4.source}`);\n return function(e2, t5, o3) {\n var i3, s2, r2, n2;\n if (t5.removeAll && e2.clear(), t5.remove) for (const o4 of t5.remove) e2.delete(o4);\n if (t5.add) for (const i4 of t5.add) {\n const t6 = ge(i4, o3);\n null != t6 && e2.set(t6, i4);\n }\n if (t5.update) for (const o4 of t5.update) {\n let t6 = e2.get(o4.id);\n if (null == t6) continue;\n const a2 = !o4.removeAllProperties && ((null === (i3 = o4.removeProperties) || void 0 === i3 ? void 0 : i3.length) > 0 || (null === (s2 = o4.addOrUpdateProperties) || void 0 === s2 ? void 0 : s2.length) > 0);\n if ((o4.newGeometry || o4.removeAllProperties || a2) && (t6 = Object.assign({}, t6), e2.set(o4.id, t6), a2 && (t6.properties = Object.assign({}, t6.properties))), o4.newGeometry && (t6.geometry = o4.newGeometry), o4.removeAllProperties) t6.properties = {};\n else if ((null === (r2 = o4.removeProperties) || void 0 === r2 ? void 0 : r2.length) > 0) for (const e3 of o4.removeProperties) Object.prototype.hasOwnProperty.call(t6.properties, e3) && delete t6.properties[e3];\n if ((null === (n2 = o4.addOrUpdateProperties) || void 0 === n2 ? void 0 : n2.length) > 0) for (const { key: e3, value: i4 } of o4.addOrUpdateProperties) t6.properties[e3] = i4;\n }\n }(this._dataUpdateable, t4.dataDiff, i2), { type: \"FeatureCollection\", features: Array.from(this._dataUpdateable.values()) };\n });\n }\n removeSource(t4) {\n return e._(this, void 0, void 0, function* () {\n this._pendingRequest && this._pendingRequest.abort();\n });\n }\n getClusterExpansionZoom(e2) {\n return this._geoJSONIndex.getClusterExpansionZoom(e2.clusterId);\n }\n getClusterChildren(e2) {\n return this._geoJSONIndex.getChildren(e2.clusterId);\n }\n getClusterLeaves(e2) {\n return this._geoJSONIndex.getLeaves(e2.clusterId, e2.limit, e2.offset);\n }\n }\n class ve {\n constructor(t4) {\n this.self = t4, this.actor = new e.F(t4), this.layerIndexes = {}, this.availableImages = {}, this.workerSources = {}, this.demWorkerSources = {}, this.externalWorkerSourceTypes = {}, this.self.registerWorkerSource = (e2, t5) => {\n if (this.externalWorkerSourceTypes[e2]) throw new Error(`Worker source with name \"${e2}\" already registered.`);\n this.externalWorkerSourceTypes[e2] = t5;\n }, this.self.addProtocol = e.bi, this.self.removeProtocol = e.bj, this.self.registerRTLTextPlugin = (t5) => {\n if (e.bD.isParsed()) throw new Error(\"RTL text plugin already registered.\");\n e.bD.setMethods(t5);\n }, this.actor.registerMessageHandler(\"LDT\", (e2, t5) => this._getDEMWorkerSource(e2, t5.source).loadTile(t5)), this.actor.registerMessageHandler(\"RDT\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this._getDEMWorkerSource(t5, o2.source).removeTile(o2);\n })), this.actor.registerMessageHandler(\"GCEZ\", (t5, o2) => e._(this, void 0, void 0, function* () {\n return this._getWorkerSource(t5, o2.type, o2.source).getClusterExpansionZoom(o2);\n })), this.actor.registerMessageHandler(\"GCC\", (t5, o2) => e._(this, void 0, void 0, function* () {\n return this._getWorkerSource(t5, o2.type, o2.source).getClusterChildren(o2);\n })), this.actor.registerMessageHandler(\"GCL\", (t5, o2) => e._(this, void 0, void 0, function* () {\n return this._getWorkerSource(t5, o2.type, o2.source).getClusterLeaves(o2);\n })), this.actor.registerMessageHandler(\"LD\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).loadData(t5)), this.actor.registerMessageHandler(\"GD\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).getData()), this.actor.registerMessageHandler(\"LT\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).loadTile(t5)), this.actor.registerMessageHandler(\"RT\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).reloadTile(t5)), this.actor.registerMessageHandler(\"AT\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).abortTile(t5)), this.actor.registerMessageHandler(\"RMT\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).removeTile(t5)), this.actor.registerMessageHandler(\"RS\", (t5, o2) => e._(this, void 0, void 0, function* () {\n if (!this.workerSources[t5] || !this.workerSources[t5][o2.type] || !this.workerSources[t5][o2.type][o2.source]) return;\n const e2 = this.workerSources[t5][o2.type][o2.source];\n delete this.workerSources[t5][o2.type][o2.source], void 0 !== e2.removeSource && e2.removeSource(o2);\n })), this.actor.registerMessageHandler(\"RM\", (t5) => e._(this, void 0, void 0, function* () {\n delete this.layerIndexes[t5], delete this.availableImages[t5], delete this.workerSources[t5], delete this.demWorkerSources[t5];\n })), this.actor.registerMessageHandler(\"SR\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this.referrer = o2;\n })), this.actor.registerMessageHandler(\"SRPS\", (e2, t5) => this._syncRTLPluginState(e2, t5)), this.actor.registerMessageHandler(\"IS\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this.self.importScripts(o2);\n })), this.actor.registerMessageHandler(\"SI\", (e2, t5) => this._setImages(e2, t5)), this.actor.registerMessageHandler(\"UL\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this._getLayerIndex(t5).update(o2.layers, o2.removedIds);\n })), this.actor.registerMessageHandler(\"SL\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this._getLayerIndex(t5).replace(o2);\n }));\n }\n _setImages(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n this.availableImages[t4] = o2;\n for (const e2 in this.workerSources[t4]) {\n const i2 = this.workerSources[t4][e2];\n for (const e3 in i2) i2[e3].availableImages = o2;\n }\n });\n }\n _syncRTLPluginState(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n if (e.bD.isParsed()) return e.bD.getState();\n if (\"loading\" !== o2.pluginStatus) return e.bD.setState(o2), o2;\n const t5 = o2.pluginURL;\n if (this.self.importScripts(t5), e.bD.isParsed()) {\n const o3 = { pluginStatus: \"loaded\", pluginURL: t5 };\n return e.bD.setState(o3), o3;\n }\n throw e.bD.setState({ pluginStatus: \"error\", pluginURL: \"\" }), new Error(`RTL Text Plugin failed to import scripts from ${t5}`);\n });\n }\n _getAvailableImages(e2) {\n let t4 = this.availableImages[e2];\n return t4 || (t4 = []), t4;\n }\n _getLayerIndex(e2) {\n let o2 = this.layerIndexes[e2];\n return o2 || (o2 = this.layerIndexes[e2] = new t()), o2;\n }\n _getWorkerSource(e2, t4, o2) {\n if (this.workerSources[e2] || (this.workerSources[e2] = {}), this.workerSources[e2][t4] || (this.workerSources[e2][t4] = {}), !this.workerSources[e2][t4][o2]) {\n const i2 = { sendAsync: (t5, o3) => (t5.targetMapId = e2, this.actor.sendAsync(t5, o3)) };\n switch (t4) {\n case \"vector\":\n this.workerSources[e2][t4][o2] = new r(i2, this._getLayerIndex(e2), this._getAvailableImages(e2));\n break;\n case \"geojson\":\n this.workerSources[e2][t4][o2] = new ye(i2, this._getLayerIndex(e2), this._getAvailableImages(e2));\n break;\n default:\n this.workerSources[e2][t4][o2] = new this.externalWorkerSourceTypes[t4](i2, this._getLayerIndex(e2), this._getAvailableImages(e2));\n }\n }\n return this.workerSources[e2][t4][o2];\n }\n _getDEMWorkerSource(e2, t4) {\n return this.demWorkerSources[e2] || (this.demWorkerSources[e2] = {}), this.demWorkerSources[e2][t4] || (this.demWorkerSources[e2][t4] = new n()), this.demWorkerSources[e2][t4];\n }\n }\n return e.i(self) && (self.worker = new ve(self)), ve;\n });\n define2(\"index\", [\"exports\", \"./shared\"], function(t, e) {\n \"use strict\";\n var i = \"4.7.1\";\n let a, s;\n const o = { now: \"undefined\" != typeof performance && performance && performance.now ? performance.now.bind(performance) : Date.now.bind(Date), frameAsync: (t4) => new Promise((i2, a2) => {\n const s2 = requestAnimationFrame(i2);\n t4.signal.addEventListener(\"abort\", () => {\n cancelAnimationFrame(s2), a2(e.c());\n });\n }), getImageData(t4, e2 = 0) {\n return this.getImageCanvasContext(t4).getImageData(-e2, -e2, t4.width + 2 * e2, t4.height + 2 * e2);\n }, getImageCanvasContext(t4) {\n const e2 = window.document.createElement(\"canvas\"), i2 = e2.getContext(\"2d\", { willReadFrequently: true });\n if (!i2) throw new Error(\"failed to create canvas 2d context\");\n return e2.width = t4.width, e2.height = t4.height, i2.drawImage(t4, 0, 0, t4.width, t4.height), i2;\n }, resolveURL: (t4) => (a || (a = document.createElement(\"a\")), a.href = t4, a.href), hardwareConcurrency: \"undefined\" != typeof navigator && navigator.hardwareConcurrency || 4, get prefersReducedMotion() {\n return !!matchMedia && (null == s && (s = matchMedia(\"(prefers-reduced-motion: reduce)\")), s.matches);\n } };\n class r {\n static testProp(t4) {\n if (!r.docStyle) return t4[0];\n for (let e2 = 0; e2 < t4.length; e2++) if (t4[e2] in r.docStyle) return t4[e2];\n return t4[0];\n }\n static create(t4, e2, i2) {\n const a2 = window.document.createElement(t4);\n return void 0 !== e2 && (a2.className = e2), i2 && i2.appendChild(a2), a2;\n }\n static createNS(t4, e2) {\n return window.document.createElementNS(t4, e2);\n }\n static disableDrag() {\n r.docStyle && r.selectProp && (r.userSelect = r.docStyle[r.selectProp], r.docStyle[r.selectProp] = \"none\");\n }\n static enableDrag() {\n r.docStyle && r.selectProp && (r.docStyle[r.selectProp] = r.userSelect);\n }\n static setTransform(t4, e2) {\n t4.style[r.transformProp] = e2;\n }\n static addEventListener(t4, e2, i2, a2 = {}) {\n t4.addEventListener(e2, i2, \"passive\" in a2 ? a2 : a2.capture);\n }\n static removeEventListener(t4, e2, i2, a2 = {}) {\n t4.removeEventListener(e2, i2, \"passive\" in a2 ? a2 : a2.capture);\n }\n static suppressClickInternal(t4) {\n t4.preventDefault(), t4.stopPropagation(), window.removeEventListener(\"click\", r.suppressClickInternal, true);\n }\n static suppressClick() {\n window.addEventListener(\"click\", r.suppressClickInternal, true), window.setTimeout(() => {\n window.removeEventListener(\"click\", r.suppressClickInternal, true);\n }, 0);\n }\n static getScale(t4) {\n const e2 = t4.getBoundingClientRect();\n return { x: e2.width / t4.offsetWidth || 1, y: e2.height / t4.offsetHeight || 1, boundingClientRect: e2 };\n }\n static getPoint(t4, i2, a2) {\n const s2 = i2.boundingClientRect;\n return new e.P((a2.clientX - s2.left) / i2.x - t4.clientLeft, (a2.clientY - s2.top) / i2.y - t4.clientTop);\n }\n static mousePos(t4, e2) {\n const i2 = r.getScale(t4);\n return r.getPoint(t4, i2, e2);\n }\n static touchPos(t4, e2) {\n const i2 = [], a2 = r.getScale(t4);\n for (let s2 = 0; s2 < e2.length; s2++) i2.push(r.getPoint(t4, a2, e2[s2]));\n return i2;\n }\n static mouseButton(t4) {\n return t4.button;\n }\n static remove(t4) {\n t4.parentNode && t4.parentNode.removeChild(t4);\n }\n }\n r.docStyle = \"undefined\" != typeof window && window.document && window.document.documentElement.style, r.selectProp = r.testProp([\"userSelect\", \"MozUserSelect\", \"WebkitUserSelect\", \"msUserSelect\"]), r.transformProp = r.testProp([\"transform\", \"WebkitTransform\"]);\n const n = { supported: false, testSupport: function(t4) {\n !c && h && (u ? d(t4) : l = t4);\n } };\n let l, h, c = false, u = false;\n function d(t4) {\n const e2 = t4.createTexture();\n t4.bindTexture(t4.TEXTURE_2D, e2);\n try {\n if (t4.texImage2D(t4.TEXTURE_2D, 0, t4.RGBA, t4.RGBA, t4.UNSIGNED_BYTE, h), t4.isContextLost()) return;\n n.supported = true;\n } catch (t5) {\n }\n t4.deleteTexture(e2), c = true;\n }\n var _;\n \"undefined\" != typeof document && (h = document.createElement(\"img\"), h.onload = () => {\n l && d(l), l = null, u = true;\n }, h.onerror = () => {\n c = true, l = null;\n }, h.src = \"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\"), function(t4) {\n let i2, a2, s2, o2;\n t4.resetRequestQueue = () => {\n i2 = [], a2 = 0, s2 = 0, o2 = {};\n }, t4.addThrottleControl = (t5) => {\n const e2 = s2++;\n return o2[e2] = t5, e2;\n }, t4.removeThrottleControl = (t5) => {\n delete o2[t5], l2();\n }, t4.getImage = (t5, a3, s3 = true) => new Promise((o3, r3) => {\n n.supported && (t5.headers || (t5.headers = {}), t5.headers.accept = \"image/webp,*/*\"), e.e(t5, { type: \"image\" }), i2.push({ abortController: a3, requestParameters: t5, supportImageRefresh: s3, state: \"queued\", onError: (t6) => {\n r3(t6);\n }, onSuccess: (t6) => {\n o3(t6);\n } }), l2();\n });\n const r2 = (t5) => e._(this, void 0, void 0, function* () {\n t5.state = \"running\";\n const { requestParameters: i3, supportImageRefresh: s3, onError: o3, onSuccess: r3, abortController: n2 } = t5, c2 = false === s3 && !e.i(self) && !e.g(i3.url) && (!i3.headers || Object.keys(i3.headers).reduce((t6, e2) => t6 && \"accept\" === e2, true));\n a2++;\n const u2 = c2 ? h2(i3, n2) : e.m(i3, n2);\n try {\n const i4 = yield u2;\n delete t5.abortController, t5.state = \"completed\", i4.data instanceof HTMLImageElement || e.b(i4.data) ? r3(i4) : i4.data && r3({ data: yield (d2 = i4.data, \"function\" == typeof createImageBitmap ? e.d(d2) : e.f(d2)), cacheControl: i4.cacheControl, expires: i4.expires });\n } catch (e2) {\n delete t5.abortController, o3(e2);\n } finally {\n a2--, l2();\n }\n var d2;\n }), l2 = () => {\n const t5 = (() => {\n for (const t6 of Object.keys(o2)) if (o2[t6]()) return true;\n return false;\n })() ? e.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME : e.a.MAX_PARALLEL_IMAGE_REQUESTS;\n for (let e2 = a2; e2 < t5 && i2.length > 0; e2++) {\n const t6 = i2.shift();\n t6.abortController.signal.aborted ? e2-- : r2(t6);\n }\n }, h2 = (t5, i3) => new Promise((a3, s3) => {\n const o3 = new Image(), r3 = t5.url, n2 = t5.credentials;\n n2 && \"include\" === n2 ? o3.crossOrigin = \"use-credentials\" : (n2 && \"same-origin\" === n2 || !e.s(r3)) && (o3.crossOrigin = \"anonymous\"), i3.signal.addEventListener(\"abort\", () => {\n o3.src = \"\", s3(e.c());\n }), o3.fetchPriority = \"high\", o3.onload = () => {\n o3.onerror = o3.onload = null, a3({ data: o3 });\n }, o3.onerror = () => {\n o3.onerror = o3.onload = null, i3.signal.aborted || s3(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));\n }, o3.src = r3;\n });\n }(_ || (_ = {})), _.resetRequestQueue();\n class p {\n constructor(t4) {\n this._transformRequestFn = t4;\n }\n transformRequest(t4, e2) {\n return this._transformRequestFn && this._transformRequestFn(t4, e2) || { url: t4 };\n }\n setTransformRequest(t4) {\n this._transformRequestFn = t4;\n }\n }\n function m(t4) {\n var i2 = new e.A(3);\n return i2[0] = t4[0], i2[1] = t4[1], i2[2] = t4[2], i2;\n }\n var f, g = function(t4, e2, i2) {\n return t4[0] = e2[0] - i2[0], t4[1] = e2[1] - i2[1], t4[2] = e2[2] - i2[2], t4;\n };\n f = new e.A(3), e.A != Float32Array && (f[0] = 0, f[1] = 0, f[2] = 0);\n var v = function(t4) {\n var e2 = t4[0], i2 = t4[1];\n return e2 * e2 + i2 * i2;\n };\n function x(t4) {\n const e2 = [];\n if (\"string\" == typeof t4) e2.push({ id: \"default\", url: t4 });\n else if (t4 && t4.length > 0) {\n const i2 = [];\n for (const { id: a2, url: s2 } of t4) {\n const t5 = `${a2}${s2}`;\n -1 === i2.indexOf(t5) && (i2.push(t5), e2.push({ id: a2, url: s2 }));\n }\n }\n return e2;\n }\n function y(t4, e2, i2) {\n const a2 = t4.split(\"?\");\n return a2[0] += `${e2}${i2}`, a2.join(\"?\");\n }\n !function() {\n var t4 = new e.A(2);\n e.A != Float32Array && (t4[0] = 0, t4[1] = 0);\n }();\n class b {\n constructor(t4, e2, i2, a2) {\n this.context = t4, this.format = i2, this.texture = t4.gl.createTexture(), this.update(e2, a2);\n }\n update(t4, i2, a2) {\n const { width: s2, height: o2 } = t4, r2 = !(this.size && this.size[0] === s2 && this.size[1] === o2 || a2), { context: n2 } = this, { gl: l2 } = n2;\n if (this.useMipmap = Boolean(i2 && i2.useMipmap), l2.bindTexture(l2.TEXTURE_2D, this.texture), n2.pixelStoreUnpackFlipY.set(false), n2.pixelStoreUnpack.set(1), n2.pixelStoreUnpackPremultiplyAlpha.set(this.format === l2.RGBA && (!i2 || false !== i2.premultiply)), r2) this.size = [s2, o2], t4 instanceof HTMLImageElement || t4 instanceof HTMLCanvasElement || t4 instanceof HTMLVideoElement || t4 instanceof ImageData || e.b(t4) ? l2.texImage2D(l2.TEXTURE_2D, 0, this.format, this.format, l2.UNSIGNED_BYTE, t4) : l2.texImage2D(l2.TEXTURE_2D, 0, this.format, s2, o2, 0, this.format, l2.UNSIGNED_BYTE, t4.data);\n else {\n const { x: i3, y: r3 } = a2 || { x: 0, y: 0 };\n t4 instanceof HTMLImageElement || t4 instanceof HTMLCanvasElement || t4 instanceof HTMLVideoElement || t4 instanceof ImageData || e.b(t4) ? l2.texSubImage2D(l2.TEXTURE_2D, 0, i3, r3, l2.RGBA, l2.UNSIGNED_BYTE, t4) : l2.texSubImage2D(l2.TEXTURE_2D, 0, i3, r3, s2, o2, l2.RGBA, l2.UNSIGNED_BYTE, t4.data);\n }\n this.useMipmap && this.isSizePowerOfTwo() && l2.generateMipmap(l2.TEXTURE_2D);\n }\n bind(t4, e2, i2) {\n const { context: a2 } = this, { gl: s2 } = a2;\n s2.bindTexture(s2.TEXTURE_2D, this.texture), i2 !== s2.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (i2 = s2.LINEAR), t4 !== this.filter && (s2.texParameteri(s2.TEXTURE_2D, s2.TEXTURE_MAG_FILTER, t4), s2.texParameteri(s2.TEXTURE_2D, s2.TEXTURE_MIN_FILTER, i2 || t4), this.filter = t4), e2 !== this.wrap && (s2.texParameteri(s2.TEXTURE_2D, s2.TEXTURE_WRAP_S, e2), s2.texParameteri(s2.TEXTURE_2D, s2.TEXTURE_WRAP_T, e2), this.wrap = e2);\n }\n isSizePowerOfTwo() {\n return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0;\n }\n destroy() {\n const { gl: t4 } = this.context;\n t4.deleteTexture(this.texture), this.texture = null;\n }\n }\n function w(t4) {\n const { userImage: e2 } = t4;\n return !!(e2 && e2.render && e2.render()) && (t4.data.replace(new Uint8Array(e2.data.buffer)), true);\n }\n class T extends e.E {\n constructor() {\n super(), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = false, this.requestors = [], this.patterns = {}, this.atlasImage = new e.R({ width: 1, height: 1 }), this.dirty = true;\n }\n isLoaded() {\n return this.loaded;\n }\n setLoaded(t4) {\n if (this.loaded !== t4 && (this.loaded = t4, t4)) {\n for (const { ids: t5, promiseResolve: e2 } of this.requestors) e2(this._getImagesForIds(t5));\n this.requestors = [];\n }\n }\n getImage(t4) {\n const i2 = this.images[t4];\n if (i2 && !i2.data && i2.spriteData) {\n const t5 = i2.spriteData;\n i2.data = new e.R({ width: t5.width, height: t5.height }, t5.context.getImageData(t5.x, t5.y, t5.width, t5.height).data), i2.spriteData = null;\n }\n return i2;\n }\n addImage(t4, e2) {\n if (this.images[t4]) throw new Error(`Image id ${t4} already exist, use updateImage instead`);\n this._validate(t4, e2) && (this.images[t4] = e2);\n }\n _validate(t4, i2) {\n let a2 = true;\n const s2 = i2.data || i2.spriteData;\n return this._validateStretch(i2.stretchX, s2 && s2.width) || (this.fire(new e.j(new Error(`Image \"${t4}\" has invalid \"stretchX\" value`))), a2 = false), this._validateStretch(i2.stretchY, s2 && s2.height) || (this.fire(new e.j(new Error(`Image \"${t4}\" has invalid \"stretchY\" value`))), a2 = false), this._validateContent(i2.content, i2) || (this.fire(new e.j(new Error(`Image \"${t4}\" has invalid \"content\" value`))), a2 = false), a2;\n }\n _validateStretch(t4, e2) {\n if (!t4) return true;\n let i2 = 0;\n for (const a2 of t4) {\n if (a2[0] < i2 || a2[1] < a2[0] || e2 < a2[1]) return false;\n i2 = a2[1];\n }\n return true;\n }\n _validateContent(t4, e2) {\n if (!t4) return true;\n if (4 !== t4.length) return false;\n const i2 = e2.spriteData, a2 = i2 && i2.width || e2.data.width, s2 = i2 && i2.height || e2.data.height;\n return !(t4[0] < 0 || a2 < t4[0] || t4[1] < 0 || s2 < t4[1] || t4[2] < 0 || a2 < t4[2] || t4[3] < 0 || s2 < t4[3] || t4[2] < t4[0] || t4[3] < t4[1]);\n }\n updateImage(t4, e2, i2 = true) {\n const a2 = this.getImage(t4);\n if (i2 && (a2.data.width !== e2.data.width || a2.data.height !== e2.data.height)) throw new Error(`size mismatch between old image (${a2.data.width}x${a2.data.height}) and new image (${e2.data.width}x${e2.data.height}).`);\n e2.version = a2.version + 1, this.images[t4] = e2, this.updatedImages[t4] = true;\n }\n removeImage(t4) {\n const e2 = this.images[t4];\n delete this.images[t4], delete this.patterns[t4], e2.userImage && e2.userImage.onRemove && e2.userImage.onRemove();\n }\n listImages() {\n return Object.keys(this.images);\n }\n getImages(t4) {\n return new Promise((e2, i2) => {\n let a2 = true;\n if (!this.isLoaded()) for (const e3 of t4) this.images[e3] || (a2 = false);\n this.isLoaded() || a2 ? e2(this._getImagesForIds(t4)) : this.requestors.push({ ids: t4, promiseResolve: e2 });\n });\n }\n _getImagesForIds(t4) {\n const i2 = {};\n for (const a2 of t4) {\n let t5 = this.getImage(a2);\n t5 || (this.fire(new e.k(\"styleimagemissing\", { id: a2 })), t5 = this.getImage(a2)), t5 ? i2[a2] = { data: t5.data.clone(), pixelRatio: t5.pixelRatio, sdf: t5.sdf, version: t5.version, stretchX: t5.stretchX, stretchY: t5.stretchY, content: t5.content, textFitWidth: t5.textFitWidth, textFitHeight: t5.textFitHeight, hasRenderCallback: Boolean(t5.userImage && t5.userImage.render) } : e.w(`Image \"${a2}\" could not be loaded. Please make sure you have added the image with map.addImage() or a \"sprite\" property in your style. You can provide missing images by listening for the \"styleimagemissing\" map event.`);\n }\n return i2;\n }\n getPixelSize() {\n const { width: t4, height: e2 } = this.atlasImage;\n return { width: t4, height: e2 };\n }\n getPattern(t4) {\n const i2 = this.patterns[t4], a2 = this.getImage(t4);\n if (!a2) return null;\n if (i2 && i2.position.version === a2.version) return i2.position;\n if (i2) i2.position.version = a2.version;\n else {\n const i3 = { w: a2.data.width + 2, h: a2.data.height + 2, x: 0, y: 0 }, s2 = new e.I(i3, a2);\n this.patterns[t4] = { bin: i3, position: s2 };\n }\n return this._updatePatternAtlas(), this.patterns[t4].position;\n }\n bind(t4) {\n const e2 = t4.gl;\n this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = false) : this.atlasTexture = new b(t4, this.atlasImage, e2.RGBA), this.atlasTexture.bind(e2.LINEAR, e2.CLAMP_TO_EDGE);\n }\n _updatePatternAtlas() {\n const t4 = [];\n for (const e2 in this.patterns) t4.push(this.patterns[e2].bin);\n const { w: i2, h: a2 } = e.p(t4), s2 = this.atlasImage;\n s2.resize({ width: i2 || 1, height: a2 || 1 });\n for (const t5 in this.patterns) {\n const { bin: i3 } = this.patterns[t5], a3 = i3.x + 1, o2 = i3.y + 1, r2 = this.getImage(t5).data, n2 = r2.width, l2 = r2.height;\n e.R.copy(r2, s2, { x: 0, y: 0 }, { x: a3, y: o2 }, { width: n2, height: l2 }), e.R.copy(r2, s2, { x: 0, y: l2 - 1 }, { x: a3, y: o2 - 1 }, { width: n2, height: 1 }), e.R.copy(r2, s2, { x: 0, y: 0 }, { x: a3, y: o2 + l2 }, { width: n2, height: 1 }), e.R.copy(r2, s2, { x: n2 - 1, y: 0 }, { x: a3 - 1, y: o2 }, { width: 1, height: l2 }), e.R.copy(r2, s2, { x: 0, y: 0 }, { x: a3 + n2, y: o2 }, { width: 1, height: l2 });\n }\n this.dirty = true;\n }\n beginFrame() {\n this.callbackDispatchedThisFrame = {};\n }\n dispatchRenderCallbacks(t4) {\n for (const i2 of t4) {\n if (this.callbackDispatchedThisFrame[i2]) continue;\n this.callbackDispatchedThisFrame[i2] = true;\n const t5 = this.getImage(i2);\n t5 || e.w(`Image with ID: \"${i2}\" was not found`), w(t5) && this.updateImage(i2, t5);\n }\n }\n }\n const I = 1e20;\n function E2(t4, e2, i2, a2, s2, o2, r2, n2, l2) {\n for (let h2 = e2; h2 < e2 + a2; h2++) P(t4, i2 * o2 + h2, o2, s2, r2, n2, l2);\n for (let h2 = i2; h2 < i2 + s2; h2++) P(t4, h2 * o2 + e2, 1, a2, r2, n2, l2);\n }\n function P(t4, e2, i2, a2, s2, o2, r2) {\n o2[0] = 0, r2[0] = -I, r2[1] = I, s2[0] = t4[e2];\n for (let n2 = 1, l2 = 0, h2 = 0; n2 < a2; n2++) {\n s2[n2] = t4[e2 + n2 * i2];\n const a3 = n2 * n2;\n do {\n const t5 = o2[l2];\n h2 = (s2[n2] - s2[t5] + a3 - t5 * t5) / (n2 - t5) / 2;\n } while (h2 <= r2[l2] && --l2 > -1);\n l2++, o2[l2] = n2, r2[l2] = h2, r2[l2 + 1] = I;\n }\n for (let n2 = 0, l2 = 0; n2 < a2; n2++) {\n for (; r2[l2 + 1] < n2; ) l2++;\n const a3 = o2[l2], h2 = n2 - a3;\n t4[e2 + n2 * i2] = s2[a3] + h2 * h2;\n }\n }\n class C2 {\n constructor(t4, e2) {\n this.requestManager = t4, this.localIdeographFontFamily = e2, this.entries = {};\n }\n setURL(t4) {\n this.url = t4;\n }\n getGlyphs(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = [];\n for (const i3 in t4) for (const a3 of t4[i3]) e2.push(this._getAndCacheGlyphsPromise(i3, a3));\n const i2 = yield Promise.all(e2), a2 = {};\n for (const { stack: t5, id: e3, glyph: s2 } of i2) a2[t5] || (a2[t5] = {}), a2[t5][e3] = s2 && { id: s2.id, bitmap: s2.bitmap.clone(), metrics: s2.metrics };\n return a2;\n });\n }\n _getAndCacheGlyphsPromise(t4, i2) {\n return e._(this, void 0, void 0, function* () {\n let e2 = this.entries[t4];\n e2 || (e2 = this.entries[t4] = { glyphs: {}, requests: {}, ranges: {} });\n let a2 = e2.glyphs[i2];\n if (void 0 !== a2) return { stack: t4, id: i2, glyph: a2 };\n if (a2 = this._tinySDF(e2, t4, i2), a2) return e2.glyphs[i2] = a2, { stack: t4, id: i2, glyph: a2 };\n const s2 = Math.floor(i2 / 256);\n if (256 * s2 > 65535) throw new Error(\"glyphs > 65535 not supported\");\n if (e2.ranges[s2]) return { stack: t4, id: i2, glyph: a2 };\n if (!this.url) throw new Error(\"glyphsUrl is not set\");\n if (!e2.requests[s2]) {\n const i3 = C2.loadGlyphRange(t4, s2, this.url, this.requestManager);\n e2.requests[s2] = i3;\n }\n const o2 = yield e2.requests[s2];\n for (const t5 in o2) this._doesCharSupportLocalGlyph(+t5) || (e2.glyphs[+t5] = o2[+t5]);\n return e2.ranges[s2] = true, { stack: t4, id: i2, glyph: o2[i2] || null };\n });\n }\n _doesCharSupportLocalGlyph(t4) {\n return !!this.localIdeographFontFamily && new RegExp(\"\\\\p{Ideo}|\\\\p{sc=Hang}|\\\\p{sc=Hira}|\\\\p{sc=Kana}\", \"u\").test(String.fromCodePoint(t4));\n }\n _tinySDF(t4, i2, a2) {\n const s2 = this.localIdeographFontFamily;\n if (!s2) return;\n if (!this._doesCharSupportLocalGlyph(a2)) return;\n let o2 = t4.tinySDF;\n if (!o2) {\n let e2 = \"400\";\n /bold/i.test(i2) ? e2 = \"900\" : /medium/i.test(i2) ? e2 = \"500\" : /light/i.test(i2) && (e2 = \"200\"), o2 = t4.tinySDF = new C2.TinySDF({ fontSize: 48, buffer: 6, radius: 16, cutoff: 0.25, fontFamily: s2, fontWeight: e2 });\n }\n const r2 = o2.draw(String.fromCharCode(a2));\n return { id: a2, bitmap: new e.o({ width: r2.width || 60, height: r2.height || 60 }, r2.data), metrics: { width: r2.glyphWidth / 2 || 24, height: r2.glyphHeight / 2 || 24, left: r2.glyphLeft / 2 + 0.5 || 0, top: r2.glyphTop / 2 - 27.5 || -8, advance: r2.glyphAdvance / 2 || 24, isDoubleResolution: true } };\n }\n }\n C2.loadGlyphRange = function(t4, i2, a2, s2) {\n return e._(this, void 0, void 0, function* () {\n const o2 = 256 * i2, r2 = o2 + 255, n2 = s2.transformRequest(a2.replace(\"{fontstack}\", t4).replace(\"{range}\", `${o2}-${r2}`), \"Glyphs\"), l2 = yield e.l(n2, new AbortController());\n if (!l2 || !l2.data) throw new Error(`Could not load glyph range. range: ${i2}, ${o2}-${r2}`);\n const h2 = {};\n for (const t5 of e.n(l2.data)) h2[t5.id] = t5;\n return h2;\n });\n }, C2.TinySDF = class {\n constructor({ fontSize: t4 = 24, buffer: e2 = 3, radius: i2 = 8, cutoff: a2 = 0.25, fontFamily: s2 = \"sans-serif\", fontWeight: o2 = \"normal\", fontStyle: r2 = \"normal\" } = {}) {\n this.buffer = e2, this.cutoff = a2, this.radius = i2;\n const n2 = this.size = t4 + 4 * e2, l2 = this._createCanvas(n2), h2 = this.ctx = l2.getContext(\"2d\", { willReadFrequently: true });\n h2.font = `${r2} ${o2} ${t4}px ${s2}`, h2.textBaseline = \"alphabetic\", h2.textAlign = \"left\", h2.fillStyle = \"black\", this.gridOuter = new Float64Array(n2 * n2), this.gridInner = new Float64Array(n2 * n2), this.f = new Float64Array(n2), this.z = new Float64Array(n2 + 1), this.v = new Uint16Array(n2);\n }\n _createCanvas(t4) {\n const e2 = document.createElement(\"canvas\");\n return e2.width = e2.height = t4, e2;\n }\n draw(t4) {\n const { width: e2, actualBoundingBoxAscent: i2, actualBoundingBoxDescent: a2, actualBoundingBoxLeft: s2, actualBoundingBoxRight: o2 } = this.ctx.measureText(t4), r2 = Math.ceil(i2), n2 = Math.max(0, Math.min(this.size - this.buffer, Math.ceil(o2 - s2))), l2 = Math.min(this.size - this.buffer, r2 + Math.ceil(a2)), h2 = n2 + 2 * this.buffer, c2 = l2 + 2 * this.buffer, u2 = Math.max(h2 * c2, 0), d2 = new Uint8ClampedArray(u2), _2 = { data: d2, width: h2, height: c2, glyphWidth: n2, glyphHeight: l2, glyphTop: r2, glyphLeft: 0, glyphAdvance: e2 };\n if (0 === n2 || 0 === l2) return _2;\n const { ctx: p2, buffer: m2, gridInner: f2, gridOuter: g2 } = this;\n p2.clearRect(m2, m2, n2, l2), p2.fillText(t4, m2, m2 + r2);\n const v2 = p2.getImageData(m2, m2, n2, l2);\n g2.fill(I, 0, u2), f2.fill(0, 0, u2);\n for (let t5 = 0; t5 < l2; t5++) for (let e3 = 0; e3 < n2; e3++) {\n const i3 = v2.data[4 * (t5 * n2 + e3) + 3] / 255;\n if (0 === i3) continue;\n const a3 = (t5 + m2) * h2 + e3 + m2;\n if (1 === i3) g2[a3] = 0, f2[a3] = I;\n else {\n const t6 = 0.5 - i3;\n g2[a3] = t6 > 0 ? t6 * t6 : 0, f2[a3] = t6 < 0 ? t6 * t6 : 0;\n }\n }\n E2(g2, 0, 0, h2, c2, h2, this.f, this.v, this.z), E2(f2, m2, m2, n2, l2, h2, this.f, this.v, this.z);\n for (let t5 = 0; t5 < u2; t5++) {\n const e3 = Math.sqrt(g2[t5]) - Math.sqrt(f2[t5]);\n d2[t5] = Math.round(255 - 255 * (e3 / this.radius + this.cutoff));\n }\n return _2;\n }\n };\n class S {\n constructor() {\n this.specification = e.v.light.position;\n }\n possiblyEvaluate(t4, i2) {\n return e.x(t4.expression.evaluate(i2));\n }\n interpolate(t4, i2, a2) {\n return { x: e.y.number(t4.x, i2.x, a2), y: e.y.number(t4.y, i2.y, a2), z: e.y.number(t4.z, i2.z, a2) };\n }\n }\n let z;\n class D2 extends e.E {\n constructor(t4) {\n super(), z = z || new e.q({ anchor: new e.D(e.v.light.anchor), position: new S(), color: new e.D(e.v.light.color), intensity: new e.D(e.v.light.intensity) }), this._transitionable = new e.T(z), this.setLight(t4), this._transitioning = this._transitionable.untransitioned();\n }\n getLight() {\n return this._transitionable.serialize();\n }\n setLight(t4, i2 = {}) {\n if (!this._validate(e.r, t4, i2)) for (const e2 in t4) {\n const i3 = t4[e2];\n e2.endsWith(\"-transition\") ? this._transitionable.setTransition(e2.slice(0, -11), i3) : this._transitionable.setValue(e2, i3);\n }\n }\n updateTransitions(t4) {\n this._transitioning = this._transitionable.transitioned(t4, this._transitioning);\n }\n hasTransition() {\n return this._transitioning.hasTransition();\n }\n recalculate(t4) {\n this.properties = this._transitioning.possiblyEvaluate(t4);\n }\n _validate(t4, i2, a2) {\n return (!a2 || false !== a2.validate) && e.t(this, t4.call(e.u, { value: i2, style: { glyphs: true, sprite: true }, styleSpec: e.v }));\n }\n }\n const M = new e.q({ \"sky-color\": new e.D(e.v.sky[\"sky-color\"]), \"horizon-color\": new e.D(e.v.sky[\"horizon-color\"]), \"fog-color\": new e.D(e.v.sky[\"fog-color\"]), \"fog-ground-blend\": new e.D(e.v.sky[\"fog-ground-blend\"]), \"horizon-fog-blend\": new e.D(e.v.sky[\"horizon-fog-blend\"]), \"sky-horizon-blend\": new e.D(e.v.sky[\"sky-horizon-blend\"]), \"atmosphere-blend\": new e.D(e.v.sky[\"atmosphere-blend\"]) });\n class A2 extends e.E {\n constructor(t4) {\n super(), this._transitionable = new e.T(M), this.setSky(t4), this._transitioning = this._transitionable.untransitioned(), this.recalculate(new e.z(0));\n }\n setSky(t4, i2 = {}) {\n if (!this._validate(e.B, t4, i2)) {\n t4 || (t4 = { \"sky-color\": \"transparent\", \"horizon-color\": \"transparent\", \"fog-color\": \"transparent\", \"fog-ground-blend\": 1, \"atmosphere-blend\": 0 });\n for (const e2 in t4) {\n const i3 = t4[e2];\n e2.endsWith(\"-transition\") ? this._transitionable.setTransition(e2.slice(0, -11), i3) : this._transitionable.setValue(e2, i3);\n }\n }\n }\n getSky() {\n return this._transitionable.serialize();\n }\n updateTransitions(t4) {\n this._transitioning = this._transitionable.transitioned(t4, this._transitioning);\n }\n hasTransition() {\n return this._transitioning.hasTransition();\n }\n recalculate(t4) {\n this.properties = this._transitioning.possiblyEvaluate(t4);\n }\n _validate(t4, i2, a2 = {}) {\n return false !== (null == a2 ? void 0 : a2.validate) && e.t(this, t4.call(e.u, e.e({ value: i2, style: { glyphs: true, sprite: true }, styleSpec: e.v })));\n }\n calculateFogBlendOpacity(t4) {\n return t4 < 60 ? 0 : t4 < 70 ? (t4 - 60) / 10 : 1;\n }\n }\n class R {\n constructor(t4, e2) {\n this.width = t4, this.height = e2, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {};\n }\n getDash(t4, e2) {\n const i2 = t4.join(\",\") + String(e2);\n return this.dashEntry[i2] || (this.dashEntry[i2] = this.addDash(t4, e2)), this.dashEntry[i2];\n }\n getDashRanges(t4, e2, i2) {\n const a2 = [];\n let s2 = t4.length % 2 == 1 ? -t4[t4.length - 1] * i2 : 0, o2 = t4[0] * i2, r2 = true;\n a2.push({ left: s2, right: o2, isDash: r2, zeroLength: 0 === t4[0] });\n let n2 = t4[0];\n for (let e3 = 1; e3 < t4.length; e3++) {\n r2 = !r2;\n const l2 = t4[e3];\n s2 = n2 * i2, n2 += l2, o2 = n2 * i2, a2.push({ left: s2, right: o2, isDash: r2, zeroLength: 0 === l2 });\n }\n return a2;\n }\n addRoundDash(t4, e2, i2) {\n const a2 = e2 / 2;\n for (let e3 = -i2; e3 <= i2; e3++) {\n const s2 = this.width * (this.nextRow + i2 + e3);\n let o2 = 0, r2 = t4[o2];\n for (let n2 = 0; n2 < this.width; n2++) {\n n2 / r2.right > 1 && (r2 = t4[++o2]);\n const l2 = Math.abs(n2 - r2.left), h2 = Math.abs(n2 - r2.right), c2 = Math.min(l2, h2);\n let u2;\n const d2 = e3 / i2 * (a2 + 1);\n if (r2.isDash) {\n const t5 = a2 - Math.abs(d2);\n u2 = Math.sqrt(c2 * c2 + t5 * t5);\n } else u2 = a2 - Math.sqrt(c2 * c2 + d2 * d2);\n this.data[s2 + n2] = Math.max(0, Math.min(255, u2 + 128));\n }\n }\n }\n addRegularDash(t4) {\n for (let e3 = t4.length - 1; e3 >= 0; --e3) {\n const i3 = t4[e3], a3 = t4[e3 + 1];\n i3.zeroLength ? t4.splice(e3, 1) : a3 && a3.isDash === i3.isDash && (a3.left = i3.left, t4.splice(e3, 1));\n }\n const e2 = t4[0], i2 = t4[t4.length - 1];\n e2.isDash === i2.isDash && (e2.left = i2.left - this.width, i2.right = e2.right + this.width);\n const a2 = this.width * this.nextRow;\n let s2 = 0, o2 = t4[s2];\n for (let e3 = 0; e3 < this.width; e3++) {\n e3 / o2.right > 1 && (o2 = t4[++s2]);\n const i3 = Math.abs(e3 - o2.left), r2 = Math.abs(e3 - o2.right), n2 = Math.min(i3, r2);\n this.data[a2 + e3] = Math.max(0, Math.min(255, (o2.isDash ? n2 : -n2) + 128));\n }\n }\n addDash(t4, i2) {\n const a2 = i2 ? 7 : 0, s2 = 2 * a2 + 1;\n if (this.nextRow + s2 > this.height) return e.w(\"LineAtlas out of space\"), null;\n let o2 = 0;\n for (let e2 = 0; e2 < t4.length; e2++) o2 += t4[e2];\n if (0 !== o2) {\n const e2 = this.width / o2, s3 = this.getDashRanges(t4, this.width, e2);\n i2 ? this.addRoundDash(s3, e2, a2) : this.addRegularDash(s3);\n }\n const r2 = { y: (this.nextRow + a2 + 0.5) / this.height, height: 2 * a2 / this.height, width: o2 };\n return this.nextRow += s2, this.dirty = true, r2;\n }\n bind(t4) {\n const e2 = t4.gl;\n this.texture ? (e2.bindTexture(e2.TEXTURE_2D, this.texture), this.dirty && (this.dirty = false, e2.texSubImage2D(e2.TEXTURE_2D, 0, 0, 0, this.width, this.height, e2.ALPHA, e2.UNSIGNED_BYTE, this.data))) : (this.texture = e2.createTexture(), e2.bindTexture(e2.TEXTURE_2D, this.texture), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_S, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_T, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MIN_FILTER, e2.LINEAR), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MAG_FILTER, e2.LINEAR), e2.texImage2D(e2.TEXTURE_2D, 0, e2.ALPHA, this.width, this.height, 0, e2.ALPHA, e2.UNSIGNED_BYTE, this.data));\n }\n }\n const k = \"maplibre_preloaded_worker_pool\";\n class L {\n constructor() {\n this.active = {};\n }\n acquire(t4) {\n if (!this.workers) for (this.workers = []; this.workers.length < L.workerCount; ) this.workers.push(new Worker(e.a.WORKER_URL));\n return this.active[t4] = true, this.workers.slice();\n }\n release(t4) {\n delete this.active[t4], 0 === this.numActive() && (this.workers.forEach((t5) => {\n t5.terminate();\n }), this.workers = null);\n }\n isPreloaded() {\n return !!this.active[k];\n }\n numActive() {\n return Object.keys(this.active).length;\n }\n }\n const F = Math.floor(o.hardwareConcurrency / 2);\n let B2, O;\n function N() {\n return B2 || (B2 = new L()), B2;\n }\n L.workerCount = e.C(globalThis) ? Math.max(Math.min(F, 3), 1) : 1;\n class U {\n constructor(t4, i2) {\n this.workerPool = t4, this.actors = [], this.currentActor = 0, this.id = i2;\n const a2 = this.workerPool.acquire(i2);\n for (let t5 = 0; t5 < a2.length; t5++) {\n const s2 = new e.F(a2[t5], i2);\n s2.name = `Worker ${t5}`, this.actors.push(s2);\n }\n if (!this.actors.length) throw new Error(\"No actors found\");\n }\n broadcast(t4, e2) {\n const i2 = [];\n for (const a2 of this.actors) i2.push(a2.sendAsync({ type: t4, data: e2 }));\n return Promise.all(i2);\n }\n getActor() {\n return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor];\n }\n remove(t4 = true) {\n this.actors.forEach((t5) => {\n t5.remove();\n }), this.actors = [], t4 && this.workerPool.release(this.id);\n }\n registerMessageHandler(t4, e2) {\n for (const i2 of this.actors) i2.registerMessageHandler(t4, e2);\n }\n }\n function j() {\n return O || (O = new U(N(), e.G), O.registerMessageHandler(\"GR\", (t4, i2, a2) => e.m(i2, a2))), O;\n }\n function Z(t4, i2) {\n const a2 = e.H();\n return e.J(a2, a2, [1, 1, 0]), e.K(a2, a2, [0.5 * t4.width, 0.5 * t4.height, 1]), e.L(a2, a2, t4.calculatePosMatrix(i2.toUnwrapped()));\n }\n function q(t4, e2, i2, a2, s2, o2) {\n const r2 = function(t5, e3, i3) {\n if (t5) for (const a3 of t5) {\n const t6 = e3[a3];\n if (t6 && t6.source === i3 && \"fill-extrusion\" === t6.type) return true;\n }\n else for (const t6 in e3) {\n const a3 = e3[t6];\n if (a3.source === i3 && \"fill-extrusion\" === a3.type) return true;\n }\n return false;\n }(s2 && s2.layers, e2, t4.id), n2 = o2.maxPitchScaleFactor(), l2 = t4.tilesIn(a2, n2, r2);\n l2.sort(V);\n const h2 = [];\n for (const a3 of l2) h2.push({ wrappedTileID: a3.tileID.wrapped().key, queryResults: a3.tile.queryRenderedFeatures(e2, i2, t4._state, a3.queryGeometry, a3.cameraQueryGeometry, a3.scale, s2, o2, n2, Z(t4.transform, a3.tileID)) });\n const c2 = function(t5) {\n const e3 = {}, i3 = {};\n for (const a3 of t5) {\n const t6 = a3.queryResults, s3 = a3.wrappedTileID, o3 = i3[s3] = i3[s3] || {};\n for (const i4 in t6) {\n const a4 = t6[i4], s4 = o3[i4] = o3[i4] || {}, r3 = e3[i4] = e3[i4] || [];\n for (const t7 of a4) s4[t7.featureIndex] || (s4[t7.featureIndex] = true, r3.push(t7));\n }\n }\n return e3;\n }(h2);\n for (const e3 in c2) c2[e3].forEach((e4) => {\n const i3 = e4.feature, a3 = t4.getFeatureState(i3.layer[\"source-layer\"], i3.id);\n i3.source = i3.layer.source, i3.layer[\"source-layer\"] && (i3.sourceLayer = i3.layer[\"source-layer\"]), i3.state = a3;\n });\n return c2;\n }\n function V(t4, e2) {\n const i2 = t4.tileID, a2 = e2.tileID;\n return i2.overscaledZ - a2.overscaledZ || i2.canonical.y - a2.canonical.y || i2.wrap - a2.wrap || i2.canonical.x - a2.canonical.x;\n }\n function G(t4, i2, a2) {\n return e._(this, void 0, void 0, function* () {\n let s2 = t4;\n if (t4.url ? s2 = (yield e.h(i2.transformRequest(t4.url, \"Source\"), a2)).data : yield o.frameAsync(a2), !s2) return null;\n const r2 = e.M(e.e(s2, t4), [\"tiles\", \"minzoom\", \"maxzoom\", \"attribution\", \"bounds\", \"scheme\", \"tileSize\", \"encoding\"]);\n return \"vector_layers\" in s2 && s2.vector_layers && (r2.vectorLayerIds = s2.vector_layers.map((t5) => t5.id)), r2;\n });\n }\n class H {\n constructor(t4, e2) {\n t4 && (e2 ? this.setSouthWest(t4).setNorthEast(e2) : Array.isArray(t4) && (4 === t4.length ? this.setSouthWest([t4[0], t4[1]]).setNorthEast([t4[2], t4[3]]) : this.setSouthWest(t4[0]).setNorthEast(t4[1])));\n }\n setNorthEast(t4) {\n return this._ne = t4 instanceof e.N ? new e.N(t4.lng, t4.lat) : e.N.convert(t4), this;\n }\n setSouthWest(t4) {\n return this._sw = t4 instanceof e.N ? new e.N(t4.lng, t4.lat) : e.N.convert(t4), this;\n }\n extend(t4) {\n const i2 = this._sw, a2 = this._ne;\n let s2, o2;\n if (t4 instanceof e.N) s2 = t4, o2 = t4;\n else {\n if (!(t4 instanceof H)) return Array.isArray(t4) ? 4 === t4.length || t4.every(Array.isArray) ? this.extend(H.convert(t4)) : this.extend(e.N.convert(t4)) : t4 && (\"lng\" in t4 || \"lon\" in t4) && \"lat\" in t4 ? this.extend(e.N.convert(t4)) : this;\n if (s2 = t4._sw, o2 = t4._ne, !s2 || !o2) return this;\n }\n return i2 || a2 ? (i2.lng = Math.min(s2.lng, i2.lng), i2.lat = Math.min(s2.lat, i2.lat), a2.lng = Math.max(o2.lng, a2.lng), a2.lat = Math.max(o2.lat, a2.lat)) : (this._sw = new e.N(s2.lng, s2.lat), this._ne = new e.N(o2.lng, o2.lat)), this;\n }\n getCenter() {\n return new e.N((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2);\n }\n getSouthWest() {\n return this._sw;\n }\n getNorthEast() {\n return this._ne;\n }\n getNorthWest() {\n return new e.N(this.getWest(), this.getNorth());\n }\n getSouthEast() {\n return new e.N(this.getEast(), this.getSouth());\n }\n getWest() {\n return this._sw.lng;\n }\n getSouth() {\n return this._sw.lat;\n }\n getEast() {\n return this._ne.lng;\n }\n getNorth() {\n return this._ne.lat;\n }\n toArray() {\n return [this._sw.toArray(), this._ne.toArray()];\n }\n toString() {\n return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`;\n }\n isEmpty() {\n return !(this._sw && this._ne);\n }\n contains(t4) {\n const { lng: i2, lat: a2 } = e.N.convert(t4);\n let s2 = this._sw.lng <= i2 && i2 <= this._ne.lng;\n return this._sw.lng > this._ne.lng && (s2 = this._sw.lng >= i2 && i2 >= this._ne.lng), this._sw.lat <= a2 && a2 <= this._ne.lat && s2;\n }\n static convert(t4) {\n return t4 instanceof H ? t4 : t4 ? new H(t4) : t4;\n }\n static fromLngLat(t4, i2 = 0) {\n const a2 = 360 * i2 / 40075017, s2 = a2 / Math.cos(Math.PI / 180 * t4.lat);\n return new H(new e.N(t4.lng - s2, t4.lat - a2), new e.N(t4.lng + s2, t4.lat + a2));\n }\n adjustAntiMeridian() {\n const t4 = new e.N(this._sw.lng, this._sw.lat), i2 = new e.N(this._ne.lng, this._ne.lat);\n return new H(t4, t4.lng > i2.lng ? new e.N(i2.lng + 360, i2.lat) : i2);\n }\n }\n class W {\n constructor(t4, e2, i2) {\n this.bounds = H.convert(this.validateBounds(t4)), this.minzoom = e2 || 0, this.maxzoom = i2 || 24;\n }\n validateBounds(t4) {\n return Array.isArray(t4) && 4 === t4.length ? [Math.max(-180, t4[0]), Math.max(-90, t4[1]), Math.min(180, t4[2]), Math.min(90, t4[3])] : [-180, -90, 180, 90];\n }\n contains(t4) {\n const i2 = Math.pow(2, t4.z), a2 = Math.floor(e.O(this.bounds.getWest()) * i2), s2 = Math.floor(e.Q(this.bounds.getNorth()) * i2), o2 = Math.ceil(e.O(this.bounds.getEast()) * i2), r2 = Math.ceil(e.Q(this.bounds.getSouth()) * i2);\n return t4.x >= a2 && t4.x < o2 && t4.y >= s2 && t4.y < r2;\n }\n }\n class $ extends e.E {\n constructor(t4, i2, a2, s2) {\n if (super(), this.id = t4, this.dispatcher = a2, this.type = \"vector\", this.minzoom = 0, this.maxzoom = 22, this.scheme = \"xyz\", this.tileSize = 512, this.reparseOverscaled = true, this.isTileClipped = true, this._loaded = false, e.e(this, e.M(i2, [\"url\", \"scheme\", \"tileSize\", \"promoteId\"])), this._options = e.e({ type: \"vector\" }, i2), this._collectResourceTiming = i2.collectResourceTiming, 512 !== this.tileSize) throw new Error(\"vector tile sources must have a tileSize of 512\");\n this.setEventedParent(s2);\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n this._loaded = false, this.fire(new e.k(\"dataloading\", { dataType: \"source\" })), this._tileJSONRequest = new AbortController();\n try {\n const t4 = yield G(this._options, this.map._requestManager, this._tileJSONRequest);\n this._tileJSONRequest = null, this._loaded = true, this.map.style.sourceCaches[this.id].clearTiles(), t4 && (e.e(this, t4), t4.bounds && (this.tileBounds = new W(t4.bounds, this.minzoom, this.maxzoom)), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"metadata\" })), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"content\" })));\n } catch (t4) {\n this._tileJSONRequest = null, this.fire(new e.j(t4));\n }\n });\n }\n loaded() {\n return this._loaded;\n }\n hasTile(t4) {\n return !this.tileBounds || this.tileBounds.contains(t4.canonical);\n }\n onAdd(t4) {\n this.map = t4, this.load();\n }\n setSourceProperty(t4) {\n this._tileJSONRequest && this._tileJSONRequest.abort(), t4(), this.load();\n }\n setTiles(t4) {\n return this.setSourceProperty(() => {\n this._options.tiles = t4;\n }), this;\n }\n setUrl(t4) {\n return this.setSourceProperty(() => {\n this.url = t4, this._options.url = t4;\n }), this;\n }\n onRemove() {\n this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null);\n }\n serialize() {\n return e.e({}, this._options);\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = t4.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), i2 = { request: this.map._requestManager.transformRequest(e2, \"Tile\"), uid: t4.uid, tileID: t4.tileID, zoom: t4.tileID.overscaledZ, tileSize: this.tileSize * t4.tileID.overscaleFactor(), type: this.type, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId };\n i2.request.collectResourceTiming = this._collectResourceTiming;\n let a2 = \"RT\";\n if (t4.actor && \"expired\" !== t4.state) {\n if (\"loading\" === t4.state) return new Promise((e3, i3) => {\n t4.reloadPromise = { resolve: e3, reject: i3 };\n });\n } else t4.actor = this.dispatcher.getActor(), a2 = \"LT\";\n t4.abortController = new AbortController();\n try {\n const e3 = yield t4.actor.sendAsync({ type: a2, data: i2 }, t4.abortController);\n if (delete t4.abortController, t4.aborted) return;\n this._afterTileLoadWorkerResponse(t4, e3);\n } catch (e3) {\n if (delete t4.abortController, t4.aborted) return;\n if (e3 && 404 !== e3.status) throw e3;\n this._afterTileLoadWorkerResponse(t4, null);\n }\n });\n }\n _afterTileLoadWorkerResponse(t4, e2) {\n if (e2 && e2.resourceTiming && (t4.resourceTiming = e2.resourceTiming), e2 && this.map._refreshExpiredTiles && t4.setExpiryData(e2), t4.loadVectorData(e2, this.map.painter), t4.reloadPromise) {\n const e3 = t4.reloadPromise;\n t4.reloadPromise = null, this.loadTile(t4).then(e3.resolve).catch(e3.reject);\n }\n }\n abortTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.abortController && (t4.abortController.abort(), delete t4.abortController), t4.actor && (yield t4.actor.sendAsync({ type: \"AT\", data: { uid: t4.uid, type: this.type, source: this.id } }));\n });\n }\n unloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.unloadVectorData(), t4.actor && (yield t4.actor.sendAsync({ type: \"RMT\", data: { uid: t4.uid, type: this.type, source: this.id } }));\n });\n }\n hasTransition() {\n return false;\n }\n }\n class X extends e.E {\n constructor(t4, i2, a2, s2) {\n super(), this.id = t4, this.dispatcher = a2, this.setEventedParent(s2), this.type = \"raster\", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = true, this.scheme = \"xyz\", this.tileSize = 512, this._loaded = false, this._options = e.e({ type: \"raster\" }, i2), e.e(this, e.M(i2, [\"url\", \"scheme\", \"tileSize\"]));\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n this._loaded = false, this.fire(new e.k(\"dataloading\", { dataType: \"source\" })), this._tileJSONRequest = new AbortController();\n try {\n const t4 = yield G(this._options, this.map._requestManager, this._tileJSONRequest);\n this._tileJSONRequest = null, this._loaded = true, t4 && (e.e(this, t4), t4.bounds && (this.tileBounds = new W(t4.bounds, this.minzoom, this.maxzoom)), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"metadata\" })), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"content\" })));\n } catch (t4) {\n this._tileJSONRequest = null, this.fire(new e.j(t4));\n }\n });\n }\n loaded() {\n return this._loaded;\n }\n onAdd(t4) {\n this.map = t4, this.load();\n }\n onRemove() {\n this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null);\n }\n setSourceProperty(t4) {\n this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null), t4(), this.load();\n }\n setTiles(t4) {\n return this.setSourceProperty(() => {\n this._options.tiles = t4;\n }), this;\n }\n setUrl(t4) {\n return this.setSourceProperty(() => {\n this.url = t4, this._options.url = t4;\n }), this;\n }\n serialize() {\n return e.e({}, this._options);\n }\n hasTile(t4) {\n return !this.tileBounds || this.tileBounds.contains(t4.canonical);\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = t4.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme);\n t4.abortController = new AbortController();\n try {\n const i2 = yield _.getImage(this.map._requestManager.transformRequest(e2, \"Tile\"), t4.abortController, this.map._refreshExpiredTiles);\n if (delete t4.abortController, t4.aborted) return void (t4.state = \"unloaded\");\n if (i2 && i2.data) {\n this.map._refreshExpiredTiles && i2.cacheControl && i2.expires && t4.setExpiryData({ cacheControl: i2.cacheControl, expires: i2.expires });\n const e3 = this.map.painter.context, a2 = e3.gl, s2 = i2.data;\n t4.texture = this.map.painter.getTileTexture(s2.width), t4.texture ? t4.texture.update(s2, { useMipmap: true }) : (t4.texture = new b(e3, s2, a2.RGBA, { useMipmap: true }), t4.texture.bind(a2.LINEAR, a2.CLAMP_TO_EDGE, a2.LINEAR_MIPMAP_NEAREST)), t4.state = \"loaded\";\n }\n } catch (e3) {\n if (delete t4.abortController, t4.aborted) t4.state = \"unloaded\";\n else if (e3) throw t4.state = \"errored\", e3;\n }\n });\n }\n abortTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.abortController && (t4.abortController.abort(), delete t4.abortController);\n });\n }\n unloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.texture && this.map.painter.saveTileTexture(t4.texture);\n });\n }\n hasTransition() {\n return false;\n }\n }\n class K2 extends X {\n constructor(t4, i2, a2, s2) {\n super(t4, i2, a2, s2), this.type = \"raster-dem\", this.maxzoom = 22, this._options = e.e({ type: \"raster-dem\" }, i2), this.encoding = i2.encoding || \"mapbox\", this.redFactor = i2.redFactor, this.greenFactor = i2.greenFactor, this.blueFactor = i2.blueFactor, this.baseShift = i2.baseShift;\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const i2 = t4.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), a2 = this.map._requestManager.transformRequest(i2, \"Tile\");\n t4.neighboringTiles = this._getNeighboringTiles(t4.tileID), t4.abortController = new AbortController();\n try {\n const i3 = yield _.getImage(a2, t4.abortController, this.map._refreshExpiredTiles);\n if (delete t4.abortController, t4.aborted) return void (t4.state = \"unloaded\");\n if (i3 && i3.data) {\n const a3 = i3.data;\n this.map._refreshExpiredTiles && i3.cacheControl && i3.expires && t4.setExpiryData({ cacheControl: i3.cacheControl, expires: i3.expires });\n const s2 = e.b(a3) && e.U() ? a3 : yield this.readImageNow(a3), o2 = { type: this.type, uid: t4.uid, source: this.id, rawImageData: s2, encoding: this.encoding, redFactor: this.redFactor, greenFactor: this.greenFactor, blueFactor: this.blueFactor, baseShift: this.baseShift };\n if (!t4.actor || \"expired\" === t4.state) {\n t4.actor = this.dispatcher.getActor();\n const e2 = yield t4.actor.sendAsync({ type: \"LDT\", data: o2 });\n t4.dem = e2, t4.needsHillshadePrepare = true, t4.needsTerrainPrepare = true, t4.state = \"loaded\";\n }\n }\n } catch (e2) {\n if (delete t4.abortController, t4.aborted) t4.state = \"unloaded\";\n else if (e2) throw t4.state = \"errored\", e2;\n }\n });\n }\n readImageNow(t4) {\n return e._(this, void 0, void 0, function* () {\n if (\"undefined\" != typeof VideoFrame && e.V()) {\n const i2 = t4.width + 2, a2 = t4.height + 2;\n try {\n return new e.R({ width: i2, height: a2 }, yield e.W(t4, -1, -1, i2, a2));\n } catch (t5) {\n }\n }\n return o.getImageData(t4, 1);\n });\n }\n _getNeighboringTiles(t4) {\n const i2 = t4.canonical, a2 = Math.pow(2, i2.z), s2 = (i2.x - 1 + a2) % a2, o2 = 0 === i2.x ? t4.wrap - 1 : t4.wrap, r2 = (i2.x + 1 + a2) % a2, n2 = i2.x + 1 === a2 ? t4.wrap + 1 : t4.wrap, l2 = {};\n return l2[new e.S(t4.overscaledZ, o2, i2.z, s2, i2.y).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, n2, i2.z, r2, i2.y).key] = { backfilled: false }, i2.y > 0 && (l2[new e.S(t4.overscaledZ, o2, i2.z, s2, i2.y - 1).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, t4.wrap, i2.z, i2.x, i2.y - 1).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, n2, i2.z, r2, i2.y - 1).key] = { backfilled: false }), i2.y + 1 < a2 && (l2[new e.S(t4.overscaledZ, o2, i2.z, s2, i2.y + 1).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, t4.wrap, i2.z, i2.x, i2.y + 1).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, n2, i2.z, r2, i2.y + 1).key] = { backfilled: false }), l2;\n }\n unloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.demTexture && this.map.painter.saveTileTexture(t4.demTexture), t4.fbo && (t4.fbo.destroy(), delete t4.fbo), t4.dem && delete t4.dem, delete t4.neighboringTiles, t4.state = \"unloaded\", t4.actor && (yield t4.actor.sendAsync({ type: \"RDT\", data: { type: this.type, uid: t4.uid, source: this.id } }));\n });\n }\n }\n class J extends e.E {\n constructor(t4, i2, a2, s2) {\n super(), this.id = t4, this.type = \"geojson\", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = true, this.reparseOverscaled = true, this._removed = false, this._pendingLoads = 0, this.actor = a2.getActor(), this.setEventedParent(s2), this._data = i2.data, this._options = e.e({}, i2), this._collectResourceTiming = i2.collectResourceTiming, void 0 !== i2.maxzoom && (this.maxzoom = i2.maxzoom), i2.type && (this.type = i2.type), i2.attribution && (this.attribution = i2.attribution), this.promoteId = i2.promoteId;\n const o2 = e.X / this.tileSize;\n void 0 !== i2.clusterMaxZoom && this.maxzoom <= i2.clusterMaxZoom && e.w(`The maxzoom value \"${this.maxzoom}\" is expected to be greater than the clusterMaxZoom value \"${i2.clusterMaxZoom}\".`), this.workerOptions = e.e({ source: this.id, cluster: i2.cluster || false, geojsonVtOptions: { buffer: (void 0 !== i2.buffer ? i2.buffer : 128) * o2, tolerance: (void 0 !== i2.tolerance ? i2.tolerance : 0.375) * o2, extent: e.X, maxZoom: this.maxzoom, lineMetrics: i2.lineMetrics || false, generateId: i2.generateId || false }, superclusterOptions: { maxZoom: void 0 !== i2.clusterMaxZoom ? i2.clusterMaxZoom : this.maxzoom - 1, minPoints: Math.max(2, i2.clusterMinPoints || 2), extent: e.X, radius: (i2.clusterRadius || 50) * o2, log: false, generateId: i2.generateId || false }, clusterProperties: i2.clusterProperties, filter: i2.filter }, i2.workerOptions), \"string\" == typeof this.promoteId && (this.workerOptions.promoteId = this.promoteId);\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n yield this._updateWorkerData();\n });\n }\n onAdd(t4) {\n this.map = t4, this.load();\n }\n setData(t4) {\n return this._data = t4, this._updateWorkerData(), this;\n }\n updateData(t4) {\n return this._updateWorkerData(t4), this;\n }\n getData() {\n return e._(this, void 0, void 0, function* () {\n const t4 = e.e({ type: this.type }, this.workerOptions);\n return this.actor.sendAsync({ type: \"GD\", data: t4 });\n });\n }\n setClusterOptions(t4) {\n return this.workerOptions.cluster = t4.cluster, t4 && (void 0 !== t4.clusterRadius && (this.workerOptions.superclusterOptions.radius = t4.clusterRadius), void 0 !== t4.clusterMaxZoom && (this.workerOptions.superclusterOptions.maxZoom = t4.clusterMaxZoom)), this._updateWorkerData(), this;\n }\n getClusterExpansionZoom(t4) {\n return this.actor.sendAsync({ type: \"GCEZ\", data: { type: this.type, clusterId: t4, source: this.id } });\n }\n getClusterChildren(t4) {\n return this.actor.sendAsync({ type: \"GCC\", data: { type: this.type, clusterId: t4, source: this.id } });\n }\n getClusterLeaves(t4, e2, i2) {\n return this.actor.sendAsync({ type: \"GCL\", data: { type: this.type, source: this.id, clusterId: t4, limit: e2, offset: i2 } });\n }\n _updateWorkerData(t4) {\n return e._(this, void 0, void 0, function* () {\n const i2 = e.e({ type: this.type }, this.workerOptions);\n t4 ? i2.dataDiff = t4 : \"string\" == typeof this._data ? (i2.request = this.map._requestManager.transformRequest(o.resolveURL(this._data), \"Source\"), i2.request.collectResourceTiming = this._collectResourceTiming) : i2.data = JSON.stringify(this._data), this._pendingLoads++, this.fire(new e.k(\"dataloading\", { dataType: \"source\" }));\n try {\n const t5 = yield this.actor.sendAsync({ type: \"LD\", data: i2 });\n if (this._pendingLoads--, this._removed || t5.abandoned) return void this.fire(new e.k(\"dataabort\", { dataType: \"source\" }));\n let a2 = null;\n t5.resourceTiming && t5.resourceTiming[this.id] && (a2 = t5.resourceTiming[this.id].slice(0));\n const s2 = { dataType: \"source\" };\n this._collectResourceTiming && a2 && a2.length > 0 && e.e(s2, { resourceTiming: a2 }), this.fire(new e.k(\"data\", Object.assign(Object.assign({}, s2), { sourceDataType: \"metadata\" }))), this.fire(new e.k(\"data\", Object.assign(Object.assign({}, s2), { sourceDataType: \"content\" })));\n } catch (t5) {\n if (this._pendingLoads--, this._removed) return void this.fire(new e.k(\"dataabort\", { dataType: \"source\" }));\n this.fire(new e.j(t5));\n }\n });\n }\n loaded() {\n return 0 === this._pendingLoads;\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = t4.actor ? \"RT\" : \"LT\";\n t4.actor = this.actor;\n const i2 = { type: this.type, uid: t4.uid, tileID: t4.tileID, zoom: t4.tileID.overscaledZ, maxZoom: this.maxzoom, tileSize: this.tileSize, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId };\n t4.abortController = new AbortController();\n const a2 = yield this.actor.sendAsync({ type: e2, data: i2 }, t4.abortController);\n delete t4.abortController, t4.unloadVectorData(), t4.aborted || t4.loadVectorData(a2, this.map.painter, \"RT\" === e2);\n });\n }\n abortTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.abortController && (t4.abortController.abort(), delete t4.abortController), t4.aborted = true;\n });\n }\n unloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.unloadVectorData(), yield this.actor.sendAsync({ type: \"RMT\", data: { uid: t4.uid, type: this.type, source: this.id } });\n });\n }\n onRemove() {\n this._removed = true, this.actor.sendAsync({ type: \"RS\", data: { type: this.type, source: this.id } });\n }\n serialize() {\n return e.e({}, this._options, { type: this.type, data: this._data });\n }\n hasTransition() {\n return false;\n }\n }\n var Y = e.Y([{ name: \"a_pos\", type: \"Int16\", components: 2 }, { name: \"a_texture_pos\", type: \"Int16\", components: 2 }]);\n class Q extends e.E {\n constructor(t4, e2, i2, a2) {\n super(), this.id = t4, this.dispatcher = i2, this.coordinates = e2.coordinates, this.type = \"image\", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = false, this.setEventedParent(a2), this.options = e2;\n }\n load(t4) {\n return e._(this, void 0, void 0, function* () {\n this._loaded = false, this.fire(new e.k(\"dataloading\", { dataType: \"source\" })), this.url = this.options.url, this._request = new AbortController();\n try {\n const e2 = yield _.getImage(this.map._requestManager.transformRequest(this.url, \"Image\"), this._request);\n this._request = null, this._loaded = true, e2 && e2.data && (this.image = e2.data, t4 && (this.coordinates = t4), this._finishLoading());\n } catch (t5) {\n this._request = null, this._loaded = true, this.fire(new e.j(t5));\n }\n });\n }\n loaded() {\n return this._loaded;\n }\n updateImage(t4) {\n return t4.url ? (this._request && (this._request.abort(), this._request = null), this.options.url = t4.url, this.load(t4.coordinates).finally(() => {\n this.texture = null;\n }), this) : this;\n }\n _finishLoading() {\n this.map && (this.setCoordinates(this.coordinates), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"metadata\" })));\n }\n onAdd(t4) {\n this.map = t4, this.load();\n }\n onRemove() {\n this._request && (this._request.abort(), this._request = null);\n }\n setCoordinates(t4) {\n this.coordinates = t4;\n const i2 = t4.map(e.Z.fromLngLat);\n this.tileID = function(t5) {\n let i3 = 1 / 0, a3 = 1 / 0, s2 = -1 / 0, o2 = -1 / 0;\n for (const e2 of t5) i3 = Math.min(i3, e2.x), a3 = Math.min(a3, e2.y), s2 = Math.max(s2, e2.x), o2 = Math.max(o2, e2.y);\n const r2 = Math.max(s2 - i3, o2 - a3), n2 = Math.max(0, Math.floor(-Math.log(r2) / Math.LN2)), l2 = Math.pow(2, n2);\n return new e.a1(n2, Math.floor((i3 + s2) / 2 * l2), Math.floor((a3 + o2) / 2 * l2));\n }(i2), this.minzoom = this.maxzoom = this.tileID.z;\n const a2 = i2.map((t5) => this.tileID.getTilePoint(t5)._round());\n return this._boundsArray = new e.$(), this._boundsArray.emplaceBack(a2[0].x, a2[0].y, 0, 0), this._boundsArray.emplaceBack(a2[1].x, a2[1].y, e.X, 0), this._boundsArray.emplaceBack(a2[3].x, a2[3].y, 0, e.X), this._boundsArray.emplaceBack(a2[2].x, a2[2].y, e.X, e.X), this.boundsBuffer && (this.boundsBuffer.destroy(), delete this.boundsBuffer), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"content\" })), this;\n }\n prepare() {\n if (0 === Object.keys(this.tiles).length || !this.image) return;\n const t4 = this.map.painter.context, i2 = t4.gl;\n this.boundsBuffer || (this.boundsBuffer = t4.createVertexBuffer(this._boundsArray, Y.members)), this.boundsSegments || (this.boundsSegments = e.a0.simpleSegment(0, 0, 4, 2)), this.texture || (this.texture = new b(t4, this.image, i2.RGBA), this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE));\n let a2 = false;\n for (const t5 in this.tiles) {\n const e2 = this.tiles[t5];\n \"loaded\" !== e2.state && (e2.state = \"loaded\", e2.texture = this.texture, a2 = true);\n }\n a2 && this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"idle\", sourceId: this.id }));\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n this.tileID && this.tileID.equals(t4.tileID.canonical) ? (this.tiles[String(t4.tileID.wrap)] = t4, t4.buckets = {}) : t4.state = \"errored\";\n });\n }\n serialize() {\n return { type: \"image\", url: this.options.url, coordinates: this.coordinates };\n }\n hasTransition() {\n return false;\n }\n }\n class tt extends Q {\n constructor(t4, e2, i2, a2) {\n super(t4, e2, i2, a2), this.roundZoom = true, this.type = \"video\", this.options = e2;\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n this._loaded = false;\n const t4 = this.options;\n this.urls = [];\n for (const e2 of t4.urls) this.urls.push(this.map._requestManager.transformRequest(e2, \"Source\").url);\n try {\n const t5 = yield e.a3(this.urls);\n if (this._loaded = true, !t5) return;\n this.video = t5, this.video.loop = true, this.video.addEventListener(\"playing\", () => {\n this.map.triggerRepaint();\n }), this.map && this.video.play(), this._finishLoading();\n } catch (t5) {\n this.fire(new e.j(t5));\n }\n });\n }\n pause() {\n this.video && this.video.pause();\n }\n play() {\n this.video && this.video.play();\n }\n seek(t4) {\n if (this.video) {\n const i2 = this.video.seekable;\n t4 < i2.start(0) || t4 > i2.end(0) ? this.fire(new e.j(new e.a2(`sources.${this.id}`, null, `Playback for this video can be set only between the ${i2.start(0)} and ${i2.end(0)}-second mark.`))) : this.video.currentTime = t4;\n }\n }\n getVideo() {\n return this.video;\n }\n onAdd(t4) {\n this.map || (this.map = t4, this.load(), this.video && (this.video.play(), this.setCoordinates(this.coordinates)));\n }\n prepare() {\n if (0 === Object.keys(this.tiles).length || this.video.readyState < 2) return;\n const t4 = this.map.painter.context, i2 = t4.gl;\n this.boundsBuffer || (this.boundsBuffer = t4.createVertexBuffer(this._boundsArray, Y.members)), this.boundsSegments || (this.boundsSegments = e.a0.simpleSegment(0, 0, 4, 2)), this.texture ? this.video.paused || (this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE), i2.texSubImage2D(i2.TEXTURE_2D, 0, 0, 0, i2.RGBA, i2.UNSIGNED_BYTE, this.video)) : (this.texture = new b(t4, this.video, i2.RGBA), this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE));\n let a2 = false;\n for (const t5 in this.tiles) {\n const e2 = this.tiles[t5];\n \"loaded\" !== e2.state && (e2.state = \"loaded\", e2.texture = this.texture, a2 = true);\n }\n a2 && this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"idle\", sourceId: this.id }));\n }\n serialize() {\n return { type: \"video\", urls: this.urls, coordinates: this.coordinates };\n }\n hasTransition() {\n return this.video && !this.video.paused;\n }\n }\n class et extends Q {\n constructor(t4, i2, a2, s2) {\n super(t4, i2, a2, s2), i2.coordinates ? Array.isArray(i2.coordinates) && 4 === i2.coordinates.length && !i2.coordinates.some((t5) => !Array.isArray(t5) || 2 !== t5.length || t5.some((t6) => \"number\" != typeof t6)) || this.fire(new e.j(new e.a2(`sources.${t4}`, null, '\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new e.j(new e.a2(`sources.${t4}`, null, 'missing required property \"coordinates\"'))), i2.animate && \"boolean\" != typeof i2.animate && this.fire(new e.j(new e.a2(`sources.${t4}`, null, 'optional \"animate\" property must be a boolean value'))), i2.canvas ? \"string\" == typeof i2.canvas || i2.canvas instanceof HTMLCanvasElement || this.fire(new e.j(new e.a2(`sources.${t4}`, null, '\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new e.j(new e.a2(`sources.${t4}`, null, 'missing required property \"canvas\"'))), this.options = i2, this.animate = void 0 === i2.animate || i2.animate;\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n this._loaded = true, this.canvas || (this.canvas = this.options.canvas instanceof HTMLCanvasElement ? this.options.canvas : document.getElementById(this.options.canvas)), this.width = this.canvas.width, this.height = this.canvas.height, this._hasInvalidDimensions() ? this.fire(new e.j(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))) : (this.play = function() {\n this._playing = true, this.map.triggerRepaint();\n }, this.pause = function() {\n this._playing && (this.prepare(), this._playing = false);\n }, this._finishLoading());\n });\n }\n getCanvas() {\n return this.canvas;\n }\n onAdd(t4) {\n this.map = t4, this.load(), this.canvas && this.animate && this.play();\n }\n onRemove() {\n this.pause();\n }\n prepare() {\n let t4 = false;\n if (this.canvas.width !== this.width && (this.width = this.canvas.width, t4 = true), this.canvas.height !== this.height && (this.height = this.canvas.height, t4 = true), this._hasInvalidDimensions()) return;\n if (0 === Object.keys(this.tiles).length) return;\n const i2 = this.map.painter.context, a2 = i2.gl;\n this.boundsBuffer || (this.boundsBuffer = i2.createVertexBuffer(this._boundsArray, Y.members)), this.boundsSegments || (this.boundsSegments = e.a0.simpleSegment(0, 0, 4, 2)), this.texture ? (t4 || this._playing) && this.texture.update(this.canvas, { premultiply: true }) : this.texture = new b(i2, this.canvas, a2.RGBA, { premultiply: true });\n let s2 = false;\n for (const t5 in this.tiles) {\n const e2 = this.tiles[t5];\n \"loaded\" !== e2.state && (e2.state = \"loaded\", e2.texture = this.texture, s2 = true);\n }\n s2 && this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"idle\", sourceId: this.id }));\n }\n serialize() {\n return { type: \"canvas\", coordinates: this.coordinates };\n }\n hasTransition() {\n return this._playing;\n }\n _hasInvalidDimensions() {\n for (const t4 of [this.canvas.width, this.canvas.height]) if (isNaN(t4) || t4 <= 0) return true;\n return false;\n }\n }\n const it = {}, at = (t4) => {\n switch (t4) {\n case \"geojson\":\n return J;\n case \"image\":\n return Q;\n case \"raster\":\n return X;\n case \"raster-dem\":\n return K2;\n case \"vector\":\n return $;\n case \"video\":\n return tt;\n case \"canvas\":\n return et;\n }\n return it[t4];\n }, st = \"RTLPluginLoaded\";\n class ot extends e.E {\n constructor() {\n super(...arguments), this.status = \"unavailable\", this.url = null, this.dispatcher = j();\n }\n _syncState(t4) {\n return this.status = t4, this.dispatcher.broadcast(\"SRPS\", { pluginStatus: t4, pluginURL: this.url }).catch((t5) => {\n throw this.status = \"error\", t5;\n });\n }\n getRTLTextPluginStatus() {\n return this.status;\n }\n clearRTLTextPlugin() {\n this.status = \"unavailable\", this.url = null;\n }\n setRTLTextPlugin(t4) {\n return e._(this, arguments, void 0, function* (t5, e2 = false) {\n if (this.url) throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");\n if (this.url = o.resolveURL(t5), !this.url) throw new Error(`requested url ${t5} is invalid`);\n if (\"unavailable\" === this.status) {\n if (!e2) return this._requestImport();\n this.status = \"deferred\", this._syncState(this.status);\n } else if (\"requested\" === this.status) return this._requestImport();\n });\n }\n _requestImport() {\n return e._(this, void 0, void 0, function* () {\n yield this._syncState(\"loading\"), this.status = \"loaded\", this.fire(new e.k(st));\n });\n }\n lazyLoad() {\n \"unavailable\" === this.status ? this.status = \"requested\" : \"deferred\" === this.status && this._requestImport();\n }\n }\n let rt = null;\n function nt() {\n return rt || (rt = new ot()), rt;\n }\n class lt {\n constructor(t4, i2) {\n this.timeAdded = 0, this.fadeEndTime = 0, this.tileID = t4, this.uid = e.a4(), this.uses = 0, this.tileSize = i2, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = false, this.hasRTLText = false, this.dependencies = {}, this.rtt = [], this.rttCoords = {}, this.expiredRequestCount = 0, this.state = \"loading\";\n }\n registerFadeDuration(t4) {\n const e2 = t4 + this.timeAdded;\n e2 < this.fadeEndTime || (this.fadeEndTime = e2);\n }\n wasRequested() {\n return \"errored\" === this.state || \"loaded\" === this.state || \"reloading\" === this.state;\n }\n clearTextures(t4) {\n this.demTexture && t4.saveTileTexture(this.demTexture), this.demTexture = null;\n }\n loadVectorData(t4, i2, a2) {\n if (this.hasData() && this.unloadVectorData(), this.state = \"loaded\", t4) {\n t4.featureIndex && (this.latestFeatureIndex = t4.featureIndex, t4.rawTileData ? (this.latestRawTileData = t4.rawTileData, this.latestFeatureIndex.rawTileData = t4.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = t4.collisionBoxArray, this.buckets = function(t5, e2) {\n const i3 = {};\n if (!e2) return i3;\n for (const a3 of t5) {\n const t6 = a3.layerIds.map((t7) => e2.getLayer(t7)).filter(Boolean);\n if (0 !== t6.length) {\n a3.layers = t6, a3.stateDependentLayerIds && (a3.stateDependentLayers = a3.stateDependentLayerIds.map((e3) => t6.filter((t7) => t7.id === e3)[0]));\n for (const e3 of t6) i3[e3.id] = a3;\n }\n }\n return i3;\n }(t4.buckets, i2.style), this.hasSymbolBuckets = false;\n for (const t5 in this.buckets) {\n const i3 = this.buckets[t5];\n if (i3 instanceof e.a6) {\n if (this.hasSymbolBuckets = true, !a2) break;\n i3.justReloaded = true;\n }\n }\n if (this.hasRTLText = false, this.hasSymbolBuckets) for (const t5 in this.buckets) {\n const i3 = this.buckets[t5];\n if (i3 instanceof e.a6 && i3.hasRTLText) {\n this.hasRTLText = true, nt().lazyLoad();\n break;\n }\n }\n this.queryPadding = 0;\n for (const t5 in this.buckets) {\n const e2 = this.buckets[t5];\n this.queryPadding = Math.max(this.queryPadding, i2.style.getLayer(t5).queryRadius(e2));\n }\n t4.imageAtlas && (this.imageAtlas = t4.imageAtlas), t4.glyphAtlasImage && (this.glyphAtlasImage = t4.glyphAtlasImage);\n } else this.collisionBoxArray = new e.a5();\n }\n unloadVectorData() {\n for (const t4 in this.buckets) this.buckets[t4].destroy();\n this.buckets = {}, this.imageAtlasTexture && this.imageAtlasTexture.destroy(), this.imageAtlas && (this.imageAtlas = null), this.glyphAtlasTexture && this.glyphAtlasTexture.destroy(), this.latestFeatureIndex = null, this.state = \"unloaded\";\n }\n getBucket(t4) {\n return this.buckets[t4.id];\n }\n upload(t4) {\n for (const e3 in this.buckets) {\n const i2 = this.buckets[e3];\n i2.uploadPending() && i2.upload(t4);\n }\n const e2 = t4.gl;\n this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new b(t4, this.imageAtlas.image, e2.RGBA), this.imageAtlas.uploaded = true), this.glyphAtlasImage && (this.glyphAtlasTexture = new b(t4, this.glyphAtlasImage, e2.ALPHA), this.glyphAtlasImage = null);\n }\n prepare(t4) {\n this.imageAtlas && this.imageAtlas.patchUpdatedImages(t4, this.imageAtlasTexture);\n }\n queryRenderedFeatures(t4, e2, i2, a2, s2, o2, r2, n2, l2, h2) {\n return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ queryGeometry: a2, cameraQueryGeometry: s2, scale: o2, tileSize: this.tileSize, pixelPosMatrix: h2, transform: n2, params: r2, queryPadding: this.queryPadding * l2 }, t4, e2, i2) : {};\n }\n querySourceFeatures(t4, i2) {\n const a2 = this.latestFeatureIndex;\n if (!a2 || !a2.rawTileData) return;\n const s2 = a2.loadVTLayers(), o2 = i2 && i2.sourceLayer ? i2.sourceLayer : \"\", r2 = s2._geojsonTileLayer || s2[o2];\n if (!r2) return;\n const n2 = e.a7(i2 && i2.filter), { z: l2, x: h2, y: c2 } = this.tileID.canonical, u2 = { z: l2, x: h2, y: c2 };\n for (let i3 = 0; i3 < r2.length; i3++) {\n const s3 = r2.feature(i3);\n if (n2.needGeometry) {\n const t5 = e.a8(s3, true);\n if (!n2.filter(new e.z(this.tileID.overscaledZ), t5, this.tileID.canonical)) continue;\n } else if (!n2.filter(new e.z(this.tileID.overscaledZ), s3)) continue;\n const d2 = a2.getId(s3, o2), _2 = new e.a9(s3, l2, h2, c2, d2);\n _2.tile = u2, t4.push(_2);\n }\n }\n hasData() {\n return \"loaded\" === this.state || \"reloading\" === this.state || \"expired\" === this.state;\n }\n patternsLoaded() {\n return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length;\n }\n setExpiryData(t4) {\n const i2 = this.expirationTime;\n if (t4.cacheControl) {\n const i3 = e.aa(t4.cacheControl);\n i3[\"max-age\"] && (this.expirationTime = Date.now() + 1e3 * i3[\"max-age\"]);\n } else t4.expires && (this.expirationTime = new Date(t4.expires).getTime());\n if (this.expirationTime) {\n const t5 = Date.now();\n let e2 = false;\n if (this.expirationTime > t5) e2 = false;\n else if (i2) if (this.expirationTime < i2) e2 = true;\n else {\n const a2 = this.expirationTime - i2;\n a2 ? this.expirationTime = t5 + Math.max(a2, 3e4) : e2 = true;\n }\n else e2 = true;\n e2 ? (this.expiredRequestCount++, this.state = \"expired\") : this.expiredRequestCount = 0;\n }\n }\n getExpiryTimeout() {\n if (this.expirationTime) return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - (/* @__PURE__ */ new Date()).getTime(), Math.pow(2, 31) - 1);\n }\n setFeatureState(t4, e2) {\n if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || 0 === Object.keys(t4).length) return;\n const i2 = this.latestFeatureIndex.loadVTLayers();\n for (const a2 in this.buckets) {\n if (!e2.style.hasLayer(a2)) continue;\n const s2 = this.buckets[a2], o2 = s2.layers[0].sourceLayer || \"_geojsonTileLayer\", r2 = i2[o2], n2 = t4[o2];\n if (!r2 || !n2 || 0 === Object.keys(n2).length) continue;\n s2.update(n2, r2, this.imageAtlas && this.imageAtlas.patternPositions || {});\n const l2 = e2 && e2.style && e2.style.getLayer(a2);\n l2 && (this.queryPadding = Math.max(this.queryPadding, l2.queryRadius(s2)));\n }\n }\n holdingForFade() {\n return void 0 !== this.symbolFadeHoldUntil;\n }\n symbolFadeFinished() {\n return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < o.now();\n }\n clearFadeHold() {\n this.symbolFadeHoldUntil = void 0;\n }\n setHoldDuration(t4) {\n this.symbolFadeHoldUntil = o.now() + t4;\n }\n setDependencies(t4, e2) {\n const i2 = {};\n for (const t5 of e2) i2[t5] = true;\n this.dependencies[t4] = i2;\n }\n hasDependency(t4, e2) {\n for (const i2 of t4) {\n const t5 = this.dependencies[i2];\n if (t5) {\n for (const i3 of e2) if (t5[i3]) return true;\n }\n }\n return false;\n }\n }\n class ht {\n constructor(t4, e2) {\n this.max = t4, this.onRemove = e2, this.reset();\n }\n reset() {\n for (const t4 in this.data) for (const e2 of this.data[t4]) e2.timeout && clearTimeout(e2.timeout), this.onRemove(e2.value);\n return this.data = {}, this.order = [], this;\n }\n add(t4, e2, i2) {\n const a2 = t4.wrapped().key;\n void 0 === this.data[a2] && (this.data[a2] = []);\n const s2 = { value: e2, timeout: void 0 };\n if (void 0 !== i2 && (s2.timeout = setTimeout(() => {\n this.remove(t4, s2);\n }, i2)), this.data[a2].push(s2), this.order.push(a2), this.order.length > this.max) {\n const t5 = this._getAndRemoveByKey(this.order[0]);\n t5 && this.onRemove(t5);\n }\n return this;\n }\n has(t4) {\n return t4.wrapped().key in this.data;\n }\n getAndRemove(t4) {\n return this.has(t4) ? this._getAndRemoveByKey(t4.wrapped().key) : null;\n }\n _getAndRemoveByKey(t4) {\n const e2 = this.data[t4].shift();\n return e2.timeout && clearTimeout(e2.timeout), 0 === this.data[t4].length && delete this.data[t4], this.order.splice(this.order.indexOf(t4), 1), e2.value;\n }\n getByKey(t4) {\n const e2 = this.data[t4];\n return e2 ? e2[0].value : null;\n }\n get(t4) {\n return this.has(t4) ? this.data[t4.wrapped().key][0].value : null;\n }\n remove(t4, e2) {\n if (!this.has(t4)) return this;\n const i2 = t4.wrapped().key, a2 = void 0 === e2 ? 0 : this.data[i2].indexOf(e2), s2 = this.data[i2][a2];\n return this.data[i2].splice(a2, 1), s2.timeout && clearTimeout(s2.timeout), 0 === this.data[i2].length && delete this.data[i2], this.onRemove(s2.value), this.order.splice(this.order.indexOf(i2), 1), this;\n }\n setMaxSize(t4) {\n for (this.max = t4; this.order.length > this.max; ) {\n const t5 = this._getAndRemoveByKey(this.order[0]);\n t5 && this.onRemove(t5);\n }\n return this;\n }\n filter(t4) {\n const e2 = [];\n for (const i2 in this.data) for (const a2 of this.data[i2]) t4(a2.value) || e2.push(a2);\n for (const t5 of e2) this.remove(t5.value.tileID, t5);\n }\n }\n class ct {\n constructor() {\n this.state = {}, this.stateChanges = {}, this.deletedStates = {};\n }\n updateState(t4, i2, a2) {\n const s2 = String(i2);\n if (this.stateChanges[t4] = this.stateChanges[t4] || {}, this.stateChanges[t4][s2] = this.stateChanges[t4][s2] || {}, e.e(this.stateChanges[t4][s2], a2), null === this.deletedStates[t4]) {\n this.deletedStates[t4] = {};\n for (const e2 in this.state[t4]) e2 !== s2 && (this.deletedStates[t4][e2] = null);\n } else if (this.deletedStates[t4] && null === this.deletedStates[t4][s2]) {\n this.deletedStates[t4][s2] = {};\n for (const e2 in this.state[t4][s2]) a2[e2] || (this.deletedStates[t4][s2][e2] = null);\n } else for (const e2 in a2) this.deletedStates[t4] && this.deletedStates[t4][s2] && null === this.deletedStates[t4][s2][e2] && delete this.deletedStates[t4][s2][e2];\n }\n removeFeatureState(t4, e2, i2) {\n if (null === this.deletedStates[t4]) return;\n const a2 = String(e2);\n if (this.deletedStates[t4] = this.deletedStates[t4] || {}, i2 && void 0 !== e2) null !== this.deletedStates[t4][a2] && (this.deletedStates[t4][a2] = this.deletedStates[t4][a2] || {}, this.deletedStates[t4][a2][i2] = null);\n else if (void 0 !== e2) if (this.stateChanges[t4] && this.stateChanges[t4][a2]) for (i2 in this.deletedStates[t4][a2] = {}, this.stateChanges[t4][a2]) this.deletedStates[t4][a2][i2] = null;\n else this.deletedStates[t4][a2] = null;\n else this.deletedStates[t4] = null;\n }\n getState(t4, i2) {\n const a2 = String(i2), s2 = e.e({}, (this.state[t4] || {})[a2], (this.stateChanges[t4] || {})[a2]);\n if (null === this.deletedStates[t4]) return {};\n if (this.deletedStates[t4]) {\n const e2 = this.deletedStates[t4][i2];\n if (null === e2) return {};\n for (const t5 in e2) delete s2[t5];\n }\n return s2;\n }\n initializeTileState(t4, e2) {\n t4.setFeatureState(this.state, e2);\n }\n coalesceChanges(t4, i2) {\n const a2 = {};\n for (const t5 in this.stateChanges) {\n this.state[t5] = this.state[t5] || {};\n const i3 = {};\n for (const a3 in this.stateChanges[t5]) this.state[t5][a3] || (this.state[t5][a3] = {}), e.e(this.state[t5][a3], this.stateChanges[t5][a3]), i3[a3] = this.state[t5][a3];\n a2[t5] = i3;\n }\n for (const t5 in this.deletedStates) {\n this.state[t5] = this.state[t5] || {};\n const i3 = {};\n if (null === this.deletedStates[t5]) for (const e2 in this.state[t5]) i3[e2] = {}, this.state[t5][e2] = {};\n else for (const e2 in this.deletedStates[t5]) {\n if (null === this.deletedStates[t5][e2]) this.state[t5][e2] = {};\n else for (const i4 of Object.keys(this.deletedStates[t5][e2])) delete this.state[t5][e2][i4];\n i3[e2] = this.state[t5][e2];\n }\n a2[t5] = a2[t5] || {}, e.e(a2[t5], i3);\n }\n if (this.stateChanges = {}, this.deletedStates = {}, 0 !== Object.keys(a2).length) for (const e2 in t4) t4[e2].setFeatureState(a2, i2);\n }\n }\n class ut extends e.E {\n constructor(t4, e2, i2) {\n super(), this.id = t4, this.dispatcher = i2, this.on(\"data\", (t5) => this._dataHandler(t5)), this.on(\"dataloading\", () => {\n this._sourceErrored = false;\n }), this.on(\"error\", () => {\n this._sourceErrored = this._source.loaded();\n }), this._source = ((t5, e3, i3, a2) => {\n const s2 = new (at(e3.type))(t5, e3, i3, a2);\n if (s2.id !== t5) throw new Error(`Expected Source id to be ${t5} instead of ${s2.id}`);\n return s2;\n })(t4, e2, i2, this), this._tiles = {}, this._cache = new ht(0, (t5) => this._unloadTile(t5)), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._maxTileCacheZoomLevels = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new ct(), this._didEmitContent = false, this._updated = false;\n }\n onAdd(t4) {\n this.map = t4, this._maxTileCacheSize = t4 ? t4._maxTileCacheSize : null, this._maxTileCacheZoomLevels = t4 ? t4._maxTileCacheZoomLevels : null, this._source && this._source.onAdd && this._source.onAdd(t4);\n }\n onRemove(t4) {\n this.clearTiles(), this._source && this._source.onRemove && this._source.onRemove(t4);\n }\n loaded() {\n if (this._sourceErrored) return true;\n if (!this._sourceLoaded) return false;\n if (!this._source.loaded()) return false;\n if (!(void 0 === this.used && void 0 === this.usedForTerrain || this.used || this.usedForTerrain)) return true;\n if (!this._updated) return false;\n for (const t4 in this._tiles) {\n const e2 = this._tiles[t4];\n if (\"loaded\" !== e2.state && \"errored\" !== e2.state) return false;\n }\n return true;\n }\n getSource() {\n return this._source;\n }\n pause() {\n this._paused = true;\n }\n resume() {\n if (!this._paused) return;\n const t4 = this._shouldReloadOnResume;\n this._paused = false, this._shouldReloadOnResume = false, t4 && this.reload(), this.transform && this.update(this.transform, this.terrain);\n }\n _loadTile(t4, i2, a2) {\n return e._(this, void 0, void 0, function* () {\n try {\n yield this._source.loadTile(t4), this._tileLoaded(t4, i2, a2);\n } catch (i3) {\n t4.state = \"errored\", 404 !== i3.status ? this._source.fire(new e.j(i3, { tile: t4 })) : this.update(this.transform, this.terrain);\n }\n });\n }\n _unloadTile(t4) {\n this._source.unloadTile && this._source.unloadTile(t4);\n }\n _abortTile(t4) {\n this._source.abortTile && this._source.abortTile(t4), this._source.fire(new e.k(\"dataabort\", { tile: t4, coord: t4.tileID, dataType: \"source\" }));\n }\n serialize() {\n return this._source.serialize();\n }\n prepare(t4) {\n this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null);\n for (const e2 in this._tiles) {\n const i2 = this._tiles[e2];\n i2.upload(t4), i2.prepare(this.map.style.imageManager);\n }\n }\n getIds() {\n return Object.values(this._tiles).map((t4) => t4.tileID).sort(dt).map((t4) => t4.key);\n }\n getRenderableIds(t4) {\n const i2 = [];\n for (const e2 in this._tiles) this._isIdRenderable(e2, t4) && i2.push(this._tiles[e2]);\n return t4 ? i2.sort((t5, i3) => {\n const a2 = t5.tileID, s2 = i3.tileID, o2 = new e.P(a2.canonical.x, a2.canonical.y)._rotate(this.transform.angle), r2 = new e.P(s2.canonical.x, s2.canonical.y)._rotate(this.transform.angle);\n return a2.overscaledZ - s2.overscaledZ || r2.y - o2.y || r2.x - o2.x;\n }).map((t5) => t5.tileID.key) : i2.map((t5) => t5.tileID).sort(dt).map((t5) => t5.key);\n }\n hasRenderableParent(t4) {\n const e2 = this.findLoadedParent(t4, 0);\n return !!e2 && this._isIdRenderable(e2.tileID.key);\n }\n _isIdRenderable(t4, e2) {\n return this._tiles[t4] && this._tiles[t4].hasData() && !this._coveredTiles[t4] && (e2 || !this._tiles[t4].holdingForFade());\n }\n reload() {\n if (this._paused) this._shouldReloadOnResume = true;\n else {\n this._cache.reset();\n for (const t4 in this._tiles) \"errored\" !== this._tiles[t4].state && this._reloadTile(t4, \"reloading\");\n }\n }\n _reloadTile(t4, i2) {\n return e._(this, void 0, void 0, function* () {\n const e2 = this._tiles[t4];\n e2 && (\"loading\" !== e2.state && (e2.state = i2), yield this._loadTile(e2, t4, i2));\n });\n }\n _tileLoaded(t4, i2, a2) {\n t4.timeAdded = o.now(), \"expired\" === a2 && (t4.refreshedUponExpiration = true), this._setTileReloadTimer(i2, t4), \"raster-dem\" === this.getSource().type && t4.dem && this._backfillDEM(t4), this._state.initializeTileState(t4, this.map ? this.map.painter : null), t4.aborted || this._source.fire(new e.k(\"data\", { dataType: \"source\", tile: t4, coord: t4.tileID }));\n }\n _backfillDEM(t4) {\n const e2 = this.getRenderableIds();\n for (let a2 = 0; a2 < e2.length; a2++) {\n const s2 = e2[a2];\n if (t4.neighboringTiles && t4.neighboringTiles[s2]) {\n const e3 = this.getTileByID(s2);\n i2(t4, e3), i2(e3, t4);\n }\n }\n function i2(t5, e3) {\n t5.needsHillshadePrepare = true, t5.needsTerrainPrepare = true;\n let i3 = e3.tileID.canonical.x - t5.tileID.canonical.x;\n const a2 = e3.tileID.canonical.y - t5.tileID.canonical.y, s2 = Math.pow(2, t5.tileID.canonical.z), o2 = e3.tileID.key;\n 0 === i3 && 0 === a2 || Math.abs(a2) > 1 || (Math.abs(i3) > 1 && (1 === Math.abs(i3 + s2) ? i3 += s2 : 1 === Math.abs(i3 - s2) && (i3 -= s2)), e3.dem && t5.dem && (t5.dem.backfillBorder(e3.dem, i3, a2), t5.neighboringTiles && t5.neighboringTiles[o2] && (t5.neighboringTiles[o2].backfilled = true)));\n }\n }\n getTile(t4) {\n return this.getTileByID(t4.key);\n }\n getTileByID(t4) {\n return this._tiles[t4];\n }\n _retainLoadedChildren(t4, e2, i2, a2) {\n for (const s2 in this._tiles) {\n let o2 = this._tiles[s2];\n if (a2[s2] || !o2.hasData() || o2.tileID.overscaledZ <= e2 || o2.tileID.overscaledZ > i2) continue;\n let r2 = o2.tileID;\n for (; o2 && o2.tileID.overscaledZ > e2 + 1; ) {\n const t5 = o2.tileID.scaledTo(o2.tileID.overscaledZ - 1);\n o2 = this._tiles[t5.key], o2 && o2.hasData() && (r2 = t5);\n }\n let n2 = r2;\n for (; n2.overscaledZ > e2; ) if (n2 = n2.scaledTo(n2.overscaledZ - 1), t4[n2.key]) {\n a2[r2.key] = r2;\n break;\n }\n }\n }\n findLoadedParent(t4, e2) {\n if (t4.key in this._loadedParentTiles) {\n const i2 = this._loadedParentTiles[t4.key];\n return i2 && i2.tileID.overscaledZ >= e2 ? i2 : null;\n }\n for (let i2 = t4.overscaledZ - 1; i2 >= e2; i2--) {\n const e3 = t4.scaledTo(i2), a2 = this._getLoadedTile(e3);\n if (a2) return a2;\n }\n }\n findLoadedSibling(t4) {\n return this._getLoadedTile(t4);\n }\n _getLoadedTile(t4) {\n const e2 = this._tiles[t4.key];\n return e2 && e2.hasData() ? e2 : this._cache.getByKey(t4.wrapped().key);\n }\n updateCacheSize(t4) {\n const i2 = Math.ceil(t4.width / this._source.tileSize) + 1, a2 = Math.ceil(t4.height / this._source.tileSize) + 1, s2 = Math.floor(i2 * a2 * (null === this._maxTileCacheZoomLevels ? e.a.MAX_TILE_CACHE_ZOOM_LEVELS : this._maxTileCacheZoomLevels)), o2 = \"number\" == typeof this._maxTileCacheSize ? Math.min(this._maxTileCacheSize, s2) : s2;\n this._cache.setMaxSize(o2);\n }\n handleWrapJump(t4) {\n const e2 = Math.round((t4 - (void 0 === this._prevLng ? t4 : this._prevLng)) / 360);\n if (this._prevLng = t4, e2) {\n const t5 = {};\n for (const i2 in this._tiles) {\n const a2 = this._tiles[i2];\n a2.tileID = a2.tileID.unwrapTo(a2.tileID.wrap + e2), t5[a2.tileID.key] = a2;\n }\n this._tiles = t5;\n for (const t6 in this._timers) clearTimeout(this._timers[t6]), delete this._timers[t6];\n for (const t6 in this._tiles) this._setTileReloadTimer(t6, this._tiles[t6]);\n }\n }\n _updateCoveredAndRetainedTiles(t4, e2, i2, a2, s2, r2) {\n const n2 = {}, l2 = {}, h2 = Object.keys(t4), c2 = o.now();\n for (const i3 of h2) {\n const a3 = t4[i3], s3 = this._tiles[i3];\n if (!s3 || 0 !== s3.fadeEndTime && s3.fadeEndTime <= c2) continue;\n const o2 = this.findLoadedParent(a3, e2), r3 = this.findLoadedSibling(a3), h3 = o2 || r3 || null;\n h3 && (this._addTile(h3.tileID), n2[h3.tileID.key] = h3.tileID), l2[i3] = a3;\n }\n this._retainLoadedChildren(l2, a2, i2, t4);\n for (const e3 in n2) t4[e3] || (this._coveredTiles[e3] = true, t4[e3] = n2[e3]);\n if (r2) {\n const e3 = {}, i3 = {};\n for (const t5 of s2) this._tiles[t5.key].hasData() ? e3[t5.key] = t5 : i3[t5.key] = t5;\n for (const a3 in i3) {\n const s3 = i3[a3].children(this._source.maxzoom);\n this._tiles[s3[0].key] && this._tiles[s3[1].key] && this._tiles[s3[2].key] && this._tiles[s3[3].key] && (e3[s3[0].key] = t4[s3[0].key] = s3[0], e3[s3[1].key] = t4[s3[1].key] = s3[1], e3[s3[2].key] = t4[s3[2].key] = s3[2], e3[s3[3].key] = t4[s3[3].key] = s3[3], delete i3[a3]);\n }\n for (const a3 in i3) {\n const s3 = i3[a3], o2 = this.findLoadedParent(s3, this._source.minzoom), r3 = this.findLoadedSibling(s3), n3 = o2 || r3 || null;\n if (n3) {\n e3[n3.tileID.key] = t4[n3.tileID.key] = n3.tileID;\n for (const t5 in e3) e3[t5].isChildOf(n3.tileID) && delete e3[t5];\n }\n }\n for (const t5 in this._tiles) e3[t5] || (this._coveredTiles[t5] = true);\n }\n }\n update(t4, i2) {\n if (!this._sourceLoaded || this._paused) return;\n let a2;\n this.transform = t4, this.terrain = i2, this.updateCacheSize(t4), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used || this.usedForTerrain ? this._source.tileID ? a2 = t4.getVisibleUnwrappedCoordinates(this._source.tileID).map((t5) => new e.S(t5.canonical.z, t5.wrap, t5.canonical.z, t5.canonical.x, t5.canonical.y)) : (a2 = t4.coveringTiles({ tileSize: this.usedForTerrain ? this.tileSize : this._source.tileSize, minzoom: this._source.minzoom, maxzoom: this._source.maxzoom, roundZoom: !this.usedForTerrain && this._source.roundZoom, reparseOverscaled: this._source.reparseOverscaled, terrain: i2 }), this._source.hasTile && (a2 = a2.filter((t5) => this._source.hasTile(t5)))) : a2 = [];\n const s2 = t4.coveringZoomLevel(this._source), o2 = Math.max(s2 - ut.maxOverzooming, this._source.minzoom), r2 = Math.max(s2 + ut.maxUnderzooming, this._source.minzoom);\n if (this.usedForTerrain) {\n const t5 = {};\n for (const e2 of a2) if (e2.canonical.z > this._source.minzoom) {\n const i3 = e2.scaledTo(e2.canonical.z - 1);\n t5[i3.key] = i3;\n const a3 = e2.scaledTo(Math.max(this._source.minzoom, Math.min(e2.canonical.z, 5)));\n t5[a3.key] = a3;\n }\n a2 = a2.concat(Object.values(t5));\n }\n const n2 = 0 === a2.length && !this._updated && this._didEmitContent;\n this._updated = true, n2 && this.fire(new e.k(\"data\", { sourceDataType: \"idle\", dataType: \"source\", sourceId: this.id }));\n const l2 = this._updateRetainedTiles(a2, s2);\n _t(this._source.type) && this._updateCoveredAndRetainedTiles(l2, o2, r2, s2, a2, i2);\n for (const t5 in l2) this._tiles[t5].clearFadeHold();\n const h2 = e.ab(this._tiles, l2);\n for (const t5 of h2) {\n const e2 = this._tiles[t5];\n e2.hasSymbolBuckets && !e2.holdingForFade() ? e2.setHoldDuration(this.map._fadeDuration) : e2.hasSymbolBuckets && !e2.symbolFadeFinished() || this._removeTile(t5);\n }\n this._updateLoadedParentTileCache(), this._updateLoadedSiblingTileCache();\n }\n releaseSymbolFadeTiles() {\n for (const t4 in this._tiles) this._tiles[t4].holdingForFade() && this._removeTile(t4);\n }\n _updateRetainedTiles(t4, e2) {\n var i2;\n const a2 = {}, s2 = {}, o2 = Math.max(e2 - ut.maxOverzooming, this._source.minzoom), r2 = Math.max(e2 + ut.maxUnderzooming, this._source.minzoom), n2 = {};\n for (const i3 of t4) {\n const t5 = this._addTile(i3);\n a2[i3.key] = i3, t5.hasData() || e2 < this._source.maxzoom && (n2[i3.key] = i3);\n }\n this._retainLoadedChildren(n2, e2, r2, a2);\n for (const r3 of t4) {\n let t5 = this._tiles[r3.key];\n if (t5.hasData()) continue;\n if (e2 + 1 > this._source.maxzoom) {\n const t6 = r3.children(this._source.maxzoom)[0], e3 = this.getTile(t6);\n if (e3 && e3.hasData()) {\n a2[t6.key] = t6;\n continue;\n }\n } else {\n const t6 = r3.children(this._source.maxzoom);\n if (a2[t6[0].key] && a2[t6[1].key] && a2[t6[2].key] && a2[t6[3].key]) continue;\n }\n let n3 = t5.wasRequested();\n for (let e3 = r3.overscaledZ - 1; e3 >= o2; --e3) {\n const o3 = r3.scaledTo(e3);\n if (s2[o3.key]) break;\n if (s2[o3.key] = true, t5 = this.getTile(o3), !t5 && n3 && (t5 = this._addTile(o3)), t5) {\n const e4 = t5.hasData();\n if ((e4 || !(null === (i2 = this.map) || void 0 === i2 ? void 0 : i2.cancelPendingTileRequestsWhileZooming) || n3) && (a2[o3.key] = o3), n3 = t5.wasRequested(), e4) break;\n }\n }\n }\n return a2;\n }\n _updateLoadedParentTileCache() {\n this._loadedParentTiles = {};\n for (const t4 in this._tiles) {\n const e2 = [];\n let i2, a2 = this._tiles[t4].tileID;\n for (; a2.overscaledZ > 0; ) {\n if (a2.key in this._loadedParentTiles) {\n i2 = this._loadedParentTiles[a2.key];\n break;\n }\n e2.push(a2.key);\n const t5 = a2.scaledTo(a2.overscaledZ - 1);\n if (i2 = this._getLoadedTile(t5), i2) break;\n a2 = t5;\n }\n for (const t5 of e2) this._loadedParentTiles[t5] = i2;\n }\n }\n _updateLoadedSiblingTileCache() {\n this._loadedSiblingTiles = {};\n for (const t4 in this._tiles) {\n const e2 = this._tiles[t4].tileID, i2 = this._getLoadedTile(e2);\n this._loadedSiblingTiles[e2.key] = i2;\n }\n }\n _addTile(t4) {\n let i2 = this._tiles[t4.key];\n if (i2) return i2;\n i2 = this._cache.getAndRemove(t4), i2 && (this._setTileReloadTimer(t4.key, i2), i2.tileID = t4, this._state.initializeTileState(i2, this.map ? this.map.painter : null), this._cacheTimers[t4.key] && (clearTimeout(this._cacheTimers[t4.key]), delete this._cacheTimers[t4.key], this._setTileReloadTimer(t4.key, i2)));\n const a2 = i2;\n return i2 || (i2 = new lt(t4, this._source.tileSize * t4.overscaleFactor()), this._loadTile(i2, t4.key, i2.state)), i2.uses++, this._tiles[t4.key] = i2, a2 || this._source.fire(new e.k(\"dataloading\", { tile: i2, coord: i2.tileID, dataType: \"source\" })), i2;\n }\n _setTileReloadTimer(t4, e2) {\n t4 in this._timers && (clearTimeout(this._timers[t4]), delete this._timers[t4]);\n const i2 = e2.getExpiryTimeout();\n i2 && (this._timers[t4] = setTimeout(() => {\n this._reloadTile(t4, \"expired\"), delete this._timers[t4];\n }, i2));\n }\n _removeTile(t4) {\n const e2 = this._tiles[t4];\n e2 && (e2.uses--, delete this._tiles[t4], this._timers[t4] && (clearTimeout(this._timers[t4]), delete this._timers[t4]), e2.uses > 0 || (e2.hasData() && \"reloading\" !== e2.state ? this._cache.add(e2.tileID, e2, e2.getExpiryTimeout()) : (e2.aborted = true, this._abortTile(e2), this._unloadTile(e2))));\n }\n _dataHandler(t4) {\n const e2 = t4.sourceDataType;\n \"source\" === t4.dataType && \"metadata\" === e2 && (this._sourceLoaded = true), this._sourceLoaded && !this._paused && \"source\" === t4.dataType && \"content\" === e2 && (this.reload(), this.transform && this.update(this.transform, this.terrain), this._didEmitContent = true);\n }\n clearTiles() {\n this._shouldReloadOnResume = false, this._paused = false;\n for (const t4 in this._tiles) this._removeTile(t4);\n this._cache.reset();\n }\n tilesIn(t4, i2, a2) {\n const s2 = [], o2 = this.transform;\n if (!o2) return s2;\n const r2 = a2 ? o2.getCameraQueryGeometry(t4) : t4, n2 = t4.map((t5) => o2.pointCoordinate(t5, this.terrain)), l2 = r2.map((t5) => o2.pointCoordinate(t5, this.terrain)), h2 = this.getIds();\n let c2 = 1 / 0, u2 = 1 / 0, d2 = -1 / 0, _2 = -1 / 0;\n for (const t5 of l2) c2 = Math.min(c2, t5.x), u2 = Math.min(u2, t5.y), d2 = Math.max(d2, t5.x), _2 = Math.max(_2, t5.y);\n for (let t5 = 0; t5 < h2.length; t5++) {\n const a3 = this._tiles[h2[t5]];\n if (a3.holdingForFade()) continue;\n const r3 = a3.tileID, p2 = Math.pow(2, o2.zoom - a3.tileID.overscaledZ), m2 = i2 * a3.queryPadding * e.X / a3.tileSize / p2, f2 = [r3.getTilePoint(new e.Z(c2, u2)), r3.getTilePoint(new e.Z(d2, _2))];\n if (f2[0].x - m2 < e.X && f2[0].y - m2 < e.X && f2[1].x + m2 >= 0 && f2[1].y + m2 >= 0) {\n const t6 = n2.map((t7) => r3.getTilePoint(t7)), e2 = l2.map((t7) => r3.getTilePoint(t7));\n s2.push({ tile: a3, tileID: r3, queryGeometry: t6, cameraQueryGeometry: e2, scale: p2 });\n }\n }\n return s2;\n }\n getVisibleCoordinates(t4) {\n const e2 = this.getRenderableIds(t4).map((t5) => this._tiles[t5].tileID);\n for (const t5 of e2) t5.posMatrix = this.transform.calculatePosMatrix(t5.toUnwrapped());\n return e2;\n }\n hasTransition() {\n if (this._source.hasTransition()) return true;\n if (_t(this._source.type)) {\n const t4 = o.now();\n for (const e2 in this._tiles) if (this._tiles[e2].fadeEndTime >= t4) return true;\n }\n return false;\n }\n setFeatureState(t4, e2, i2) {\n this._state.updateState(t4 = t4 || \"_geojsonTileLayer\", e2, i2);\n }\n removeFeatureState(t4, e2, i2) {\n this._state.removeFeatureState(t4 = t4 || \"_geojsonTileLayer\", e2, i2);\n }\n getFeatureState(t4, e2) {\n return this._state.getState(t4 = t4 || \"_geojsonTileLayer\", e2);\n }\n setDependencies(t4, e2, i2) {\n const a2 = this._tiles[t4];\n a2 && a2.setDependencies(e2, i2);\n }\n reloadTilesForDependencies(t4, e2) {\n for (const i2 in this._tiles) this._tiles[i2].hasDependency(t4, e2) && this._reloadTile(i2, \"reloading\");\n this._cache.filter((i2) => !i2.hasDependency(t4, e2));\n }\n }\n function dt(t4, e2) {\n const i2 = Math.abs(2 * t4.wrap) - +(t4.wrap < 0), a2 = Math.abs(2 * e2.wrap) - +(e2.wrap < 0);\n return t4.overscaledZ - e2.overscaledZ || a2 - i2 || e2.canonical.y - t4.canonical.y || e2.canonical.x - t4.canonical.x;\n }\n function _t(t4) {\n return \"raster\" === t4 || \"image\" === t4 || \"video\" === t4;\n }\n ut.maxOverzooming = 10, ut.maxUnderzooming = 3;\n class pt {\n constructor(t4, e2) {\n this.reset(t4, e2);\n }\n reset(t4, e2) {\n this.points = t4 || [], this._distances = [0];\n for (let t5 = 1; t5 < this.points.length; t5++) this._distances[t5] = this._distances[t5 - 1] + this.points[t5].dist(this.points[t5 - 1]);\n this.length = this._distances[this._distances.length - 1], this.padding = Math.min(e2 || 0, 0.5 * this.length), this.paddedLength = this.length - 2 * this.padding;\n }\n lerp(t4) {\n if (1 === this.points.length) return this.points[0];\n t4 = e.ac(t4, 0, 1);\n let i2 = 1, a2 = this._distances[i2];\n const s2 = t4 * this.paddedLength + this.padding;\n for (; a2 < s2 && i2 < this._distances.length; ) a2 = this._distances[++i2];\n const o2 = i2 - 1, r2 = this._distances[o2], n2 = a2 - r2, l2 = n2 > 0 ? (s2 - r2) / n2 : 0;\n return this.points[o2].mult(1 - l2).add(this.points[i2].mult(l2));\n }\n }\n function mt(t4, e2) {\n let i2 = true;\n return \"always\" === t4 || \"never\" !== t4 && \"never\" !== e2 || (i2 = false), i2;\n }\n class ft {\n constructor(t4, e2, i2) {\n const a2 = this.boxCells = [], s2 = this.circleCells = [];\n this.xCellCount = Math.ceil(t4 / i2), this.yCellCount = Math.ceil(e2 / i2);\n for (let t5 = 0; t5 < this.xCellCount * this.yCellCount; t5++) a2.push([]), s2.push([]);\n this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = t4, this.height = e2, this.xScale = this.xCellCount / t4, this.yScale = this.yCellCount / e2, this.boxUid = 0, this.circleUid = 0;\n }\n keysLength() {\n return this.boxKeys.length + this.circleKeys.length;\n }\n insert(t4, e2, i2, a2, s2) {\n this._forEachCell(e2, i2, a2, s2, this._insertBoxCell, this.boxUid++), this.boxKeys.push(t4), this.bboxes.push(e2), this.bboxes.push(i2), this.bboxes.push(a2), this.bboxes.push(s2);\n }\n insertCircle(t4, e2, i2, a2) {\n this._forEachCell(e2 - a2, i2 - a2, e2 + a2, i2 + a2, this._insertCircleCell, this.circleUid++), this.circleKeys.push(t4), this.circles.push(e2), this.circles.push(i2), this.circles.push(a2);\n }\n _insertBoxCell(t4, e2, i2, a2, s2, o2) {\n this.boxCells[s2].push(o2);\n }\n _insertCircleCell(t4, e2, i2, a2, s2, o2) {\n this.circleCells[s2].push(o2);\n }\n _query(t4, e2, i2, a2, s2, o2, r2) {\n if (i2 < 0 || t4 > this.width || a2 < 0 || e2 > this.height) return [];\n const n2 = [];\n if (t4 <= 0 && e2 <= 0 && this.width <= i2 && this.height <= a2) {\n if (s2) return [{ key: null, x1: t4, y1: e2, x2: i2, y2: a2 }];\n for (let t5 = 0; t5 < this.boxKeys.length; t5++) n2.push({ key: this.boxKeys[t5], x1: this.bboxes[4 * t5], y1: this.bboxes[4 * t5 + 1], x2: this.bboxes[4 * t5 + 2], y2: this.bboxes[4 * t5 + 3] });\n for (let t5 = 0; t5 < this.circleKeys.length; t5++) {\n const e3 = this.circles[3 * t5], i3 = this.circles[3 * t5 + 1], a3 = this.circles[3 * t5 + 2];\n n2.push({ key: this.circleKeys[t5], x1: e3 - a3, y1: i3 - a3, x2: e3 + a3, y2: i3 + a3 });\n }\n } else this._forEachCell(t4, e2, i2, a2, this._queryCell, n2, { hitTest: s2, overlapMode: o2, seenUids: { box: {}, circle: {} } }, r2);\n return n2;\n }\n query(t4, e2, i2, a2) {\n return this._query(t4, e2, i2, a2, false, null);\n }\n hitTest(t4, e2, i2, a2, s2, o2) {\n return this._query(t4, e2, i2, a2, true, s2, o2).length > 0;\n }\n hitTestCircle(t4, e2, i2, a2, s2) {\n const o2 = t4 - i2, r2 = t4 + i2, n2 = e2 - i2, l2 = e2 + i2;\n if (r2 < 0 || o2 > this.width || l2 < 0 || n2 > this.height) return false;\n const h2 = [];\n return this._forEachCell(o2, n2, r2, l2, this._queryCellCircle, h2, { hitTest: true, overlapMode: a2, circle: { x: t4, y: e2, radius: i2 }, seenUids: { box: {}, circle: {} } }, s2), h2.length > 0;\n }\n _queryCell(t4, e2, i2, a2, s2, o2, r2, n2) {\n const { seenUids: l2, hitTest: h2, overlapMode: c2 } = r2, u2 = this.boxCells[s2];\n if (null !== u2) {\n const s3 = this.bboxes;\n for (const r3 of u2) if (!l2.box[r3]) {\n l2.box[r3] = true;\n const u3 = 4 * r3, d3 = this.boxKeys[r3];\n if (t4 <= s3[u3 + 2] && e2 <= s3[u3 + 3] && i2 >= s3[u3 + 0] && a2 >= s3[u3 + 1] && (!n2 || n2(d3)) && (!h2 || !mt(c2, d3.overlapMode)) && (o2.push({ key: d3, x1: s3[u3], y1: s3[u3 + 1], x2: s3[u3 + 2], y2: s3[u3 + 3] }), h2)) return true;\n }\n }\n const d2 = this.circleCells[s2];\n if (null !== d2) {\n const s3 = this.circles;\n for (const r3 of d2) if (!l2.circle[r3]) {\n l2.circle[r3] = true;\n const u3 = 3 * r3, d3 = this.circleKeys[r3];\n if (this._circleAndRectCollide(s3[u3], s3[u3 + 1], s3[u3 + 2], t4, e2, i2, a2) && (!n2 || n2(d3)) && (!h2 || !mt(c2, d3.overlapMode))) {\n const t5 = s3[u3], e3 = s3[u3 + 1], i3 = s3[u3 + 2];\n if (o2.push({ key: d3, x1: t5 - i3, y1: e3 - i3, x2: t5 + i3, y2: e3 + i3 }), h2) return true;\n }\n }\n }\n return false;\n }\n _queryCellCircle(t4, e2, i2, a2, s2, o2, r2, n2) {\n const { circle: l2, seenUids: h2, overlapMode: c2 } = r2, u2 = this.boxCells[s2];\n if (null !== u2) {\n const t5 = this.bboxes;\n for (const e3 of u2) if (!h2.box[e3]) {\n h2.box[e3] = true;\n const i3 = 4 * e3, a3 = this.boxKeys[e3];\n if (this._circleAndRectCollide(l2.x, l2.y, l2.radius, t5[i3 + 0], t5[i3 + 1], t5[i3 + 2], t5[i3 + 3]) && (!n2 || n2(a3)) && !mt(c2, a3.overlapMode)) return o2.push(true), true;\n }\n }\n const d2 = this.circleCells[s2];\n if (null !== d2) {\n const t5 = this.circles;\n for (const e3 of d2) if (!h2.circle[e3]) {\n h2.circle[e3] = true;\n const i3 = 3 * e3, a3 = this.circleKeys[e3];\n if (this._circlesCollide(t5[i3], t5[i3 + 1], t5[i3 + 2], l2.x, l2.y, l2.radius) && (!n2 || n2(a3)) && !mt(c2, a3.overlapMode)) return o2.push(true), true;\n }\n }\n }\n _forEachCell(t4, e2, i2, a2, s2, o2, r2, n2) {\n const l2 = this._convertToXCellCoord(t4), h2 = this._convertToYCellCoord(e2), c2 = this._convertToXCellCoord(i2), u2 = this._convertToYCellCoord(a2);\n for (let d2 = l2; d2 <= c2; d2++) for (let l3 = h2; l3 <= u2; l3++) if (s2.call(this, t4, e2, i2, a2, this.xCellCount * l3 + d2, o2, r2, n2)) return;\n }\n _convertToXCellCoord(t4) {\n return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(t4 * this.xScale)));\n }\n _convertToYCellCoord(t4) {\n return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(t4 * this.yScale)));\n }\n _circlesCollide(t4, e2, i2, a2, s2, o2) {\n const r2 = a2 - t4, n2 = s2 - e2, l2 = i2 + o2;\n return l2 * l2 > r2 * r2 + n2 * n2;\n }\n _circleAndRectCollide(t4, e2, i2, a2, s2, o2, r2) {\n const n2 = (o2 - a2) / 2, l2 = Math.abs(t4 - (a2 + n2));\n if (l2 > n2 + i2) return false;\n const h2 = (r2 - s2) / 2, c2 = Math.abs(e2 - (s2 + h2));\n if (c2 > h2 + i2) return false;\n if (l2 <= n2 || c2 <= h2) return true;\n const u2 = l2 - n2, d2 = c2 - h2;\n return u2 * u2 + d2 * d2 <= i2 * i2;\n }\n }\n function gt(t4, i2, a2, s2, o2) {\n const r2 = e.H();\n return i2 ? (e.K(r2, r2, [1 / o2, 1 / o2, 1]), a2 || e.ad(r2, r2, s2.angle)) : e.L(r2, s2.labelPlaneMatrix, t4), r2;\n }\n function vt(t4, i2, a2, s2, o2) {\n if (i2) {\n const i3 = e.ae(t4);\n return e.K(i3, i3, [o2, o2, 1]), a2 || e.ad(i3, i3, -s2.angle), i3;\n }\n return s2.glCoordMatrix;\n }\n function xt(t4, i2, a2, s2) {\n let o2;\n s2 ? (o2 = [t4, i2, s2(t4, i2), 1], e.af(o2, o2, a2)) : (o2 = [t4, i2, 0, 1], kt(o2, o2, a2));\n const r2 = o2[3];\n return { point: new e.P(o2[0] / r2, o2[1] / r2), signedDistanceFromCamera: r2, isOccluded: false };\n }\n function yt(t4, e2) {\n return 0.5 + t4 / e2 * 0.5;\n }\n function bt(t4, e2) {\n return t4.x >= -e2[0] && t4.x <= e2[0] && t4.y >= -e2[1] && t4.y <= e2[1];\n }\n function wt(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2) {\n const f2 = s2 ? t4.textSizeData : t4.iconSizeData, g2 = e.ag(f2, a2.transform.zoom), v2 = [256 / a2.width * 2 + 1, 256 / a2.height * 2 + 1], x2 = s2 ? t4.text.dynamicLayoutVertexArray : t4.icon.dynamicLayoutVertexArray;\n x2.clear();\n const y2 = t4.lineVertexArray, b2 = s2 ? t4.text.placedSymbolArray : t4.icon.placedSymbolArray, w2 = a2.transform.width / a2.transform.height;\n let T2 = false;\n for (let s3 = 0; s3 < b2.length; s3++) {\n const I2 = b2.get(s3);\n if (I2.hidden || I2.writingMode === e.ah.vertical && !T2) {\n Rt(I2.numGlyphs, x2);\n continue;\n }\n T2 = false;\n const E3 = xt(I2.anchorX, I2.anchorY, i2, m2);\n if (!bt(E3.point, v2)) {\n Rt(I2.numGlyphs, x2);\n continue;\n }\n const P2 = yt(a2.transform.cameraToCenterDistance, E3.signedDistanceFromCamera), C3 = e.ai(f2, g2, I2), S2 = n2 ? C3 / P2 : C3 * P2, z2 = { getElevation: m2, labelPlaneMatrix: o2, lineVertexArray: y2, pitchWithMap: n2, projectionCache: { projections: {}, offsets: {}, cachedAnchorPoint: void 0, anyProjectionOccluded: false }, projection: c2, tileAnchorPoint: new e.P(I2.anchorX, I2.anchorY), unwrappedTileID: u2, width: d2, height: _2, translation: p2 }, D3 = Et(z2, I2, S2, false, l2, i2, r2, t4.glyphOffsetArray, x2, w2, h2);\n T2 = D3.useVertical, (D3.notEnoughRoom || T2 || D3.needsFlipping && Et(z2, I2, S2, true, l2, i2, r2, t4.glyphOffsetArray, x2, w2, h2).notEnoughRoom) && Rt(I2.numGlyphs, x2);\n }\n s2 ? t4.text.dynamicLayoutVertexBuffer.updateData(x2) : t4.icon.dynamicLayoutVertexBuffer.updateData(x2);\n }\n function Tt(t4, e2, i2, a2, s2, o2, r2, n2) {\n const l2 = o2.glyphStartIndex + o2.numGlyphs, h2 = o2.lineStartIndex, c2 = o2.lineStartIndex + o2.lineLength, u2 = e2.getoffsetX(o2.glyphStartIndex), d2 = e2.getoffsetX(l2 - 1), _2 = Mt(t4 * u2, i2, a2, s2, o2.segment, h2, c2, n2, r2);\n if (!_2) return null;\n const p2 = Mt(t4 * d2, i2, a2, s2, o2.segment, h2, c2, n2, r2);\n return p2 ? n2.projectionCache.anyProjectionOccluded ? null : { first: _2, last: p2 } : null;\n }\n function It(t4, i2, a2, s2) {\n return t4 === e.ah.horizontal && Math.abs(a2.y - i2.y) > Math.abs(a2.x - i2.x) * s2 ? { useVertical: true } : (t4 === e.ah.vertical ? i2.y < a2.y : i2.x > a2.x) ? { needsFlipping: true } : null;\n }\n function Et(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2) {\n const d2 = a2 / 24, _2 = i2.lineOffsetX * d2, p2 = i2.lineOffsetY * d2;\n let m2;\n if (i2.numGlyphs > 1) {\n const e2 = i2.glyphStartIndex + i2.numGlyphs, a3 = i2.lineStartIndex, r3 = i2.lineStartIndex + i2.lineLength, h3 = Tt(d2, l2, _2, p2, s2, i2, u2, t4);\n if (!h3) return { notEnoughRoom: true };\n const f2 = xt(h3.first.point.x, h3.first.point.y, n2, t4.getElevation).point, g2 = xt(h3.last.point.x, h3.last.point.y, n2, t4.getElevation).point;\n if (o2 && !s2) {\n const t5 = It(i2.writingMode, f2, g2, c2);\n if (t5) return t5;\n }\n m2 = [h3.first];\n for (let o3 = i2.glyphStartIndex + 1; o3 < e2 - 1; o3++) m2.push(Mt(d2 * l2.getoffsetX(o3), _2, p2, s2, i2.segment, a3, r3, t4, u2));\n m2.push(h3.last);\n } else {\n if (o2 && !s2) {\n const a4 = xt(t4.tileAnchorPoint.x, t4.tileAnchorPoint.y, r2, t4.getElevation).point, s3 = i2.lineStartIndex + i2.segment + 1, o3 = new e.P(t4.lineVertexArray.getx(s3), t4.lineVertexArray.gety(s3)), n3 = xt(o3.x, o3.y, r2, t4.getElevation), l3 = n3.signedDistanceFromCamera > 0 ? n3.point : function(t5, e2, i3, a5, s4, o4) {\n return Pt(t5, e2, i3, 1, s4, o4);\n }(t4.tileAnchorPoint, o3, a4, 0, r2, t4), h3 = It(i2.writingMode, a4, l3, c2);\n if (h3) return h3;\n }\n const a3 = Mt(d2 * l2.getoffsetX(i2.glyphStartIndex), _2, p2, s2, i2.segment, i2.lineStartIndex, i2.lineStartIndex + i2.lineLength, t4, u2);\n if (!a3 || t4.projectionCache.anyProjectionOccluded) return { notEnoughRoom: true };\n m2 = [a3];\n }\n for (const t5 of m2) e.aj(h2, t5.point, t5.angle);\n return {};\n }\n function Pt(t4, e2, i2, a2, s2, o2) {\n const r2 = t4.add(t4.sub(e2)._unit()), n2 = void 0 !== s2 ? xt(r2.x, r2.y, s2, o2.getElevation).point : St(r2.x, r2.y, o2).point, l2 = i2.sub(n2);\n return i2.add(l2._mult(a2 / l2.mag()));\n }\n function Ct(t4, i2, a2) {\n const s2 = i2.projectionCache;\n if (s2.projections[t4]) return s2.projections[t4];\n const o2 = new e.P(i2.lineVertexArray.getx(t4), i2.lineVertexArray.gety(t4)), r2 = St(o2.x, o2.y, i2);\n if (r2.signedDistanceFromCamera > 0) return s2.projections[t4] = r2.point, s2.anyProjectionOccluded = s2.anyProjectionOccluded || r2.isOccluded, r2.point;\n const n2 = t4 - a2.direction;\n return function(t5, e2, i3, a3, s3) {\n return Pt(t5, e2, i3, a3, void 0, s3);\n }(0 === a2.distanceFromAnchor ? i2.tileAnchorPoint : new e.P(i2.lineVertexArray.getx(n2), i2.lineVertexArray.gety(n2)), o2, a2.previousVertex, a2.absOffsetX - a2.distanceFromAnchor + 1, i2);\n }\n function St(t4, e2, i2) {\n const a2 = t4 + i2.translation[0], s2 = e2 + i2.translation[1];\n let o2;\n return !i2.pitchWithMap && i2.projection.useSpecialProjectionForSymbols ? (o2 = i2.projection.projectTileCoordinates(a2, s2, i2.unwrappedTileID, i2.getElevation), o2.point.x = (0.5 * o2.point.x + 0.5) * i2.width, o2.point.y = (0.5 * -o2.point.y + 0.5) * i2.height) : (o2 = xt(a2, s2, i2.labelPlaneMatrix, i2.getElevation), o2.isOccluded = false), o2;\n }\n function zt(t4, e2, i2) {\n return t4._unit()._perp()._mult(e2 * i2);\n }\n function Dt(t4, i2, a2, s2, o2, r2, n2, l2, h2) {\n if (l2.projectionCache.offsets[t4]) return l2.projectionCache.offsets[t4];\n const c2 = a2.add(i2);\n if (t4 + h2.direction < s2 || t4 + h2.direction >= o2) return l2.projectionCache.offsets[t4] = c2, c2;\n const u2 = Ct(t4 + h2.direction, l2, h2), d2 = zt(u2.sub(a2), n2, h2.direction), _2 = a2.add(d2), p2 = u2.add(d2);\n return l2.projectionCache.offsets[t4] = e.ak(r2, c2, _2, p2) || c2, l2.projectionCache.offsets[t4];\n }\n function Mt(t4, e2, i2, a2, s2, o2, r2, n2, l2) {\n const h2 = a2 ? t4 - e2 : t4 + e2;\n let c2 = h2 > 0 ? 1 : -1, u2 = 0;\n a2 && (c2 *= -1, u2 = Math.PI), c2 < 0 && (u2 += Math.PI);\n let d2, _2 = c2 > 0 ? o2 + s2 : o2 + s2 + 1;\n n2.projectionCache.cachedAnchorPoint ? d2 = n2.projectionCache.cachedAnchorPoint : (d2 = St(n2.tileAnchorPoint.x, n2.tileAnchorPoint.y, n2).point, n2.projectionCache.cachedAnchorPoint = d2);\n let p2, m2, f2 = d2, g2 = d2, v2 = 0, x2 = 0;\n const y2 = Math.abs(h2), b2 = [];\n let w2;\n for (; v2 + x2 <= y2; ) {\n if (_2 += c2, _2 < o2 || _2 >= r2) return null;\n v2 += x2, g2 = f2, m2 = p2;\n const t5 = { absOffsetX: y2, direction: c2, distanceFromAnchor: v2, previousVertex: g2 };\n if (f2 = Ct(_2, n2, t5), 0 === i2) b2.push(g2), w2 = f2.sub(g2);\n else {\n let e3;\n const a3 = f2.sub(g2);\n e3 = 0 === a3.mag() ? zt(Ct(_2 + c2, n2, t5).sub(f2), i2, c2) : zt(a3, i2, c2), m2 || (m2 = g2.add(e3)), p2 = Dt(_2, e3, f2, o2, r2, m2, i2, n2, t5), b2.push(m2), w2 = p2.sub(m2);\n }\n x2 = w2.mag();\n }\n const T2 = w2._mult((y2 - v2) / x2)._add(m2 || g2), I2 = u2 + Math.atan2(f2.y - g2.y, f2.x - g2.x);\n return b2.push(T2), { point: T2, angle: l2 ? I2 : 0, path: b2 };\n }\n const At = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]);\n function Rt(t4, e2) {\n for (let i2 = 0; i2 < t4; i2++) {\n const t5 = e2.length;\n e2.resize(t5 + 4), e2.float32.set(At, 3 * t5);\n }\n }\n function kt(t4, e2, i2) {\n const a2 = e2[0], s2 = e2[1];\n return t4[0] = i2[0] * a2 + i2[4] * s2 + i2[12], t4[1] = i2[1] * a2 + i2[5] * s2 + i2[13], t4[3] = i2[3] * a2 + i2[7] * s2 + i2[15], t4;\n }\n const Lt = 100;\n class Ft {\n constructor(t4, e2, i2 = new ft(t4.width + 200, t4.height + 200, 25), a2 = new ft(t4.width + 200, t4.height + 200, 25)) {\n this.transform = t4, this.mapProjection = e2, this.grid = i2, this.ignoredGrid = a2, this.pitchFactor = Math.cos(t4._pitch) * t4.cameraToCenterDistance, this.screenRightBoundary = t4.width + Lt, this.screenBottomBoundary = t4.height + Lt, this.gridRightBoundary = t4.width + 200, this.gridBottomBoundary = t4.height + 200, this.perspectiveRatioCutoff = 0.6;\n }\n placeCollisionBox(t4, e2, i2, a2, s2, o2, r2, n2, l2, h2, c2) {\n const u2 = t4.anchorPointX + n2[0], d2 = t4.anchorPointY + n2[1], _2 = this.projectAndGetPerspectiveRatio(a2, u2, d2, s2, h2), p2 = i2 * _2.perspectiveRatio;\n let m2;\n if (o2 || r2) m2 = this._projectCollisionBox(t4, p2, a2, s2, o2, r2, n2, _2, h2, c2);\n else {\n const e3 = _2.point.x + (c2 ? c2.x * p2 : 0), i3 = _2.point.y + (c2 ? c2.y * p2 : 0);\n m2 = { allPointsOccluded: false, box: [e3 + t4.x1 * p2, i3 + t4.y1 * p2, e3 + t4.x2 * p2, i3 + t4.y2 * p2] };\n }\n const [f2, g2, v2, x2] = m2.box;\n return this.mapProjection.useSpecialProjectionForSymbols && (o2 ? m2.allPointsOccluded : this.mapProjection.isOccluded(u2, d2, s2)) || _2.perspectiveRatio < this.perspectiveRatioCutoff || !this.isInsideGrid(f2, g2, v2, x2) || \"always\" !== e2 && this.grid.hitTest(f2, g2, v2, x2, e2, l2) ? { box: [f2, g2, v2, x2], placeable: false, offscreen: false } : { box: [f2, g2, v2, x2], placeable: true, offscreen: this.isOffscreen(f2, g2, v2, x2) };\n }\n placeCollisionCircles(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2, f2) {\n const g2 = [], v2 = new e.P(i2.anchorX, i2.anchorY), x2 = this.getPerspectiveRatio(r2, v2.x, v2.y, n2, f2), y2 = (u2 ? o2 / x2 : o2 * x2) / e.ap, b2 = { getElevation: f2, labelPlaneMatrix: l2, lineVertexArray: a2, pitchWithMap: u2, projectionCache: { projections: {}, offsets: {}, cachedAnchorPoint: void 0, anyProjectionOccluded: false }, projection: this.mapProjection, tileAnchorPoint: v2, unwrappedTileID: n2, width: this.transform.width, height: this.transform.height, translation: m2 }, w2 = Tt(y2, s2, i2.lineOffsetX * y2, i2.lineOffsetY * y2, false, i2, false, b2);\n let T2 = false, I2 = false, E3 = true;\n if (w2) {\n const i3 = 0.5 * _2 * x2 + p2, a3 = new e.P(-100, -100), s3 = new e.P(this.screenRightBoundary, this.screenBottomBoundary), o3 = new pt(), r3 = w2.first, n3 = w2.last;\n let l3 = [];\n for (let t5 = r3.path.length - 1; t5 >= 1; t5--) l3.push(r3.path[t5]);\n for (let t5 = 1; t5 < n3.path.length; t5++) l3.push(n3.path[t5]);\n const u3 = 2.5 * i3;\n if (h2) {\n const t5 = this.projectPathToScreenSpace(l3, b2, h2);\n l3 = t5.some((t6) => t6.signedDistanceFromCamera <= 0) ? [] : t5.map((t6) => t6.point);\n }\n let m3 = [];\n if (l3.length > 0) {\n const t5 = l3[0].clone(), i4 = l3[0].clone();\n for (let e2 = 1; e2 < l3.length; e2++) t5.x = Math.min(t5.x, l3[e2].x), t5.y = Math.min(t5.y, l3[e2].y), i4.x = Math.max(i4.x, l3[e2].x), i4.y = Math.max(i4.y, l3[e2].y);\n m3 = t5.x >= a3.x && i4.x <= s3.x && t5.y >= a3.y && i4.y <= s3.y ? [l3] : i4.x < a3.x || t5.x > s3.x || i4.y < a3.y || t5.y > s3.y ? [] : e.al([l3], a3.x, a3.y, s3.x, s3.y);\n }\n for (const e2 of m3) {\n o3.reset(e2, 0.25 * i3);\n let a4 = 0;\n a4 = o3.length <= 0.5 * i3 ? 1 : Math.ceil(o3.paddedLength / u3) + 1;\n for (let e3 = 0; e3 < a4; e3++) {\n const s4 = e3 / Math.max(a4 - 1, 1), r4 = o3.lerp(s4), n4 = r4.x + Lt, l4 = r4.y + Lt;\n g2.push(n4, l4, i3, 0);\n const h3 = n4 - i3, u4 = l4 - i3, _3 = n4 + i3, p3 = l4 + i3;\n if (E3 = E3 && this.isOffscreen(h3, u4, _3, p3), I2 = I2 || this.isInsideGrid(h3, u4, _3, p3), \"always\" !== t4 && this.grid.hitTestCircle(n4, l4, i3, t4, d2) && (T2 = true, !c2)) return { circles: [], offscreen: false, collisionDetected: T2 };\n }\n }\n }\n return { circles: !c2 && T2 || !I2 || x2 < this.perspectiveRatioCutoff ? [] : g2, offscreen: E3, collisionDetected: T2 };\n }\n projectPathToScreenSpace(t4, e2, i2) {\n return t4.map((t5) => xt(t5.x, t5.y, i2, e2.getElevation));\n }\n queryRenderedSymbols(t4) {\n if (0 === t4.length || 0 === this.grid.keysLength() && 0 === this.ignoredGrid.keysLength()) return {};\n const i2 = [];\n let a2 = 1 / 0, s2 = 1 / 0, o2 = -1 / 0, r2 = -1 / 0;\n for (const n3 of t4) {\n const t5 = new e.P(n3.x + Lt, n3.y + Lt);\n a2 = Math.min(a2, t5.x), s2 = Math.min(s2, t5.y), o2 = Math.max(o2, t5.x), r2 = Math.max(r2, t5.y), i2.push(t5);\n }\n const n2 = this.grid.query(a2, s2, o2, r2).concat(this.ignoredGrid.query(a2, s2, o2, r2)), l2 = {}, h2 = {};\n for (const t5 of n2) {\n const a3 = t5.key;\n if (void 0 === l2[a3.bucketInstanceId] && (l2[a3.bucketInstanceId] = {}), l2[a3.bucketInstanceId][a3.featureIndex]) continue;\n const s3 = [new e.P(t5.x1, t5.y1), new e.P(t5.x2, t5.y1), new e.P(t5.x2, t5.y2), new e.P(t5.x1, t5.y2)];\n e.am(i2, s3) && (l2[a3.bucketInstanceId][a3.featureIndex] = true, void 0 === h2[a3.bucketInstanceId] && (h2[a3.bucketInstanceId] = []), h2[a3.bucketInstanceId].push(a3.featureIndex));\n }\n return h2;\n }\n insertCollisionBox(t4, e2, i2, a2, s2, o2) {\n (i2 ? this.ignoredGrid : this.grid).insert({ bucketInstanceId: a2, featureIndex: s2, collisionGroupID: o2, overlapMode: e2 }, t4[0], t4[1], t4[2], t4[3]);\n }\n insertCollisionCircles(t4, e2, i2, a2, s2, o2) {\n const r2 = i2 ? this.ignoredGrid : this.grid, n2 = { bucketInstanceId: a2, featureIndex: s2, collisionGroupID: o2, overlapMode: e2 };\n for (let e3 = 0; e3 < t4.length; e3 += 4) r2.insertCircle(n2, t4[e3], t4[e3 + 1], t4[e3 + 2]);\n }\n projectAndGetPerspectiveRatio(t4, i2, a2, s2, o2) {\n let r2;\n o2 ? (r2 = [i2, a2, o2(i2, a2), 1], e.af(r2, r2, t4)) : (r2 = [i2, a2, 0, 1], kt(r2, r2, t4));\n const n2 = r2[3];\n return { point: new e.P((r2[0] / n2 + 1) / 2 * this.transform.width + Lt, (-r2[1] / n2 + 1) / 2 * this.transform.height + Lt), perspectiveRatio: 0.5 + this.transform.cameraToCenterDistance / n2 * 0.5, isOccluded: false, signedDistanceFromCamera: n2 };\n }\n getPerspectiveRatio(t4, e2, i2, a2, s2) {\n const o2 = this.mapProjection.useSpecialProjectionForSymbols ? this.mapProjection.projectTileCoordinates(e2, i2, a2, s2) : xt(e2, i2, t4, s2);\n return 0.5 + this.transform.cameraToCenterDistance / o2.signedDistanceFromCamera * 0.5;\n }\n isOffscreen(t4, e2, i2, a2) {\n return i2 < Lt || t4 >= this.screenRightBoundary || a2 < Lt || e2 > this.screenBottomBoundary;\n }\n isInsideGrid(t4, e2, i2, a2) {\n return i2 >= 0 && t4 < this.gridRightBoundary && a2 >= 0 && e2 < this.gridBottomBoundary;\n }\n getViewportMatrix() {\n const t4 = e.an([]);\n return e.J(t4, t4, [-100, -100, 0]), t4;\n }\n _projectCollisionBox(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2) {\n let u2 = new e.P(1, 0), d2 = new e.P(0, 1);\n const _2 = new e.P(t4.anchorPointX + n2[0], t4.anchorPointY + n2[1]);\n if (r2 && !o2) {\n const t5 = this.projectAndGetPerspectiveRatio(a2, _2.x + 1, _2.y, s2, h2).point.sub(l2.point).unit(), i3 = Math.atan(t5.y / t5.x) + (t5.x < 0 ? Math.PI : 0), o3 = Math.sin(i3), r3 = Math.cos(i3);\n u2 = new e.P(r3, o3), d2 = new e.P(-o3, r3);\n } else if (!r2 && o2) {\n const t5 = -this.transform.angle, i3 = Math.sin(t5), a3 = Math.cos(t5);\n u2 = new e.P(a3, i3), d2 = new e.P(-i3, a3);\n }\n let p2 = l2.point, m2 = i2;\n if (o2) {\n p2 = _2;\n const t5 = this.transform.zoom - Math.floor(this.transform.zoom);\n m2 = Math.pow(2, -t5), m2 *= this.mapProjection.getPitchedTextCorrection(this.transform, _2, s2), c2 || (m2 *= e.ac(0.5 + l2.signedDistanceFromCamera / this.transform.cameraToCenterDistance * 0.5, 0, 4));\n }\n c2 && (p2 = p2.add(u2.mult(c2.x * m2)).add(d2.mult(c2.y * m2)));\n const f2 = t4.x1 * m2, g2 = t4.x2 * m2, v2 = (f2 + g2) / 2, x2 = t4.y1 * m2, y2 = t4.y2 * m2, b2 = (x2 + y2) / 2, w2 = [{ offsetX: f2, offsetY: x2 }, { offsetX: v2, offsetY: x2 }, { offsetX: g2, offsetY: x2 }, { offsetX: g2, offsetY: b2 }, { offsetX: g2, offsetY: y2 }, { offsetX: v2, offsetY: y2 }, { offsetX: f2, offsetY: y2 }, { offsetX: f2, offsetY: b2 }];\n let T2 = [];\n for (const { offsetX: t5, offsetY: i3 } of w2) T2.push(new e.P(p2.x + u2.x * t5 + d2.x * i3, p2.y + u2.y * t5 + d2.y * i3));\n let I2 = false;\n if (o2) {\n const t5 = T2.map((t6) => this.projectAndGetPerspectiveRatio(a2, t6.x, t6.y, s2, h2));\n I2 = t5.some((t6) => !t6.isOccluded), T2 = t5.map((t6) => t6.point);\n } else I2 = true;\n return { box: e.ao(T2), allPointsOccluded: !I2 };\n }\n }\n function Bt(t4, i2, a2) {\n return i2 * (e.X / (t4.tileSize * Math.pow(2, a2 - t4.tileID.overscaledZ)));\n }\n class Ot {\n constructor(t4, e2, i2, a2) {\n this.opacity = t4 ? Math.max(0, Math.min(1, t4.opacity + (t4.placed ? e2 : -e2))) : a2 && i2 ? 1 : 0, this.placed = i2;\n }\n isHidden() {\n return 0 === this.opacity && !this.placed;\n }\n }\n class Nt {\n constructor(t4, e2, i2, a2, s2) {\n this.text = new Ot(t4 ? t4.text : null, e2, i2, s2), this.icon = new Ot(t4 ? t4.icon : null, e2, a2, s2);\n }\n isHidden() {\n return this.text.isHidden() && this.icon.isHidden();\n }\n }\n class Ut {\n constructor(t4, e2, i2) {\n this.text = t4, this.icon = e2, this.skipFade = i2;\n }\n }\n class jt {\n constructor() {\n this.invProjMatrix = e.H(), this.viewportMatrix = e.H(), this.circles = [];\n }\n }\n class Zt {\n constructor(t4, e2, i2, a2, s2) {\n this.bucketInstanceId = t4, this.featureIndex = e2, this.sourceLayerIndex = i2, this.bucketIndex = a2, this.tileID = s2;\n }\n }\n class qt {\n constructor(t4) {\n this.crossSourceCollisions = t4, this.maxGroupID = 0, this.collisionGroups = {};\n }\n get(t4) {\n if (this.crossSourceCollisions) return { ID: 0, predicate: null };\n if (!this.collisionGroups[t4]) {\n const e2 = ++this.maxGroupID;\n this.collisionGroups[t4] = { ID: e2, predicate: (t5) => t5.collisionGroupID === e2 };\n }\n return this.collisionGroups[t4];\n }\n }\n function Vt(t4, i2, a2, s2, o2) {\n const { horizontalAlign: r2, verticalAlign: n2 } = e.au(t4);\n return new e.P(-(r2 - 0.5) * i2 + s2[0] * o2, -(n2 - 0.5) * a2 + s2[1] * o2);\n }\n class Gt {\n constructor(t4, e2, i2, a2, s2, o2) {\n this.transform = t4.clone(), this.terrain = i2, this.collisionIndex = new Ft(this.transform, e2), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = false, this.commitTime = 0, this.fadeDuration = a2, this.retainedQueryData = {}, this.collisionGroups = new qt(s2), this.collisionCircleArrays = {}, this.collisionBoxArrays = /* @__PURE__ */ new Map(), this.prevPlacement = o2, o2 && (o2.prevPlacement = void 0), this.placedOrientations = {};\n }\n _getTerrainElevationFunc(t4) {\n const e2 = this.terrain;\n return e2 ? (i2, a2) => e2.getElevation(t4, i2, a2) : null;\n }\n getBucketParts(t4, i2, a2, s2) {\n const o2 = a2.getBucket(i2), r2 = a2.latestFeatureIndex;\n if (!o2 || !r2 || i2.id !== o2.layerIds[0]) return;\n const n2 = a2.collisionBoxArray, l2 = o2.layers[0].layout, h2 = o2.layers[0].paint, c2 = Math.pow(2, this.transform.zoom - a2.tileID.overscaledZ), u2 = a2.tileSize / e.X, d2 = a2.tileID.toUnwrapped(), _2 = this.transform.calculatePosMatrix(d2), p2 = \"map\" === l2.get(\"text-pitch-alignment\"), m2 = \"map\" === l2.get(\"text-rotation-alignment\"), f2 = Bt(a2, 1, this.transform.zoom), g2 = this.collisionIndex.mapProjection.translatePosition(this.transform, a2, h2.get(\"text-translate\"), h2.get(\"text-translate-anchor\")), v2 = this.collisionIndex.mapProjection.translatePosition(this.transform, a2, h2.get(\"icon-translate\"), h2.get(\"icon-translate-anchor\")), x2 = gt(_2, p2, m2, this.transform, f2);\n let y2 = null;\n if (p2) {\n const t5 = vt(_2, p2, m2, this.transform, f2);\n y2 = e.L([], this.transform.labelPlaneMatrix, t5);\n }\n this.retainedQueryData[o2.bucketInstanceId] = new Zt(o2.bucketInstanceId, r2, o2.sourceLayerIndex, o2.index, a2.tileID);\n const b2 = { bucket: o2, layout: l2, translationText: g2, translationIcon: v2, posMatrix: _2, unwrappedTileID: d2, textLabelPlaneMatrix: x2, labelToScreenMatrix: y2, scale: c2, textPixelRatio: u2, holdingForFade: a2.holdingForFade(), collisionBoxArray: n2, partiallyEvaluatedTextSize: e.ag(o2.textSizeData, this.transform.zoom), collisionGroup: this.collisionGroups.get(o2.sourceID) };\n if (s2) for (const e2 of o2.sortKeyRanges) {\n const { sortKey: i3, symbolInstanceStart: a3, symbolInstanceEnd: s3 } = e2;\n t4.push({ sortKey: i3, symbolInstanceStart: a3, symbolInstanceEnd: s3, parameters: b2 });\n }\n else t4.push({ symbolInstanceStart: 0, symbolInstanceEnd: o2.symbolInstances.length, parameters: b2 });\n }\n attemptAnchorPlacement(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2, f2, g2, v2, x2) {\n const y2 = e.aq[t4.textAnchor], b2 = [t4.textOffset0, t4.textOffset1], w2 = Vt(y2, a2, s2, b2, o2), T2 = this.collisionIndex.placeCollisionBox(i2, d2, l2, h2, c2, n2, r2, f2, u2.predicate, x2, w2);\n if ((!v2 || this.collisionIndex.placeCollisionBox(v2, d2, l2, h2, c2, n2, r2, g2, u2.predicate, x2, w2).placeable) && T2.placeable) {\n let t5;\n if (this.prevPlacement && this.prevPlacement.variableOffsets[_2.crossTileID] && this.prevPlacement.placements[_2.crossTileID] && this.prevPlacement.placements[_2.crossTileID].text && (t5 = this.prevPlacement.variableOffsets[_2.crossTileID].anchor), 0 === _2.crossTileID) throw new Error(\"symbolInstance.crossTileID can't be 0\");\n return this.variableOffsets[_2.crossTileID] = { textOffset: b2, width: a2, height: s2, anchor: y2, textBoxScale: o2, prevAnchor: t5 }, this.markUsedJustification(p2, y2, _2, m2), p2.allowVerticalPlacement && (this.markUsedOrientation(p2, m2, _2), this.placedOrientations[_2.crossTileID] = m2), { shift: w2, placedGlyphBoxes: T2 };\n }\n }\n placeLayerBucketPart(t4, i2, a2) {\n const { bucket: s2, layout: o2, translationText: r2, translationIcon: n2, posMatrix: l2, unwrappedTileID: h2, textLabelPlaneMatrix: c2, labelToScreenMatrix: u2, textPixelRatio: d2, holdingForFade: _2, collisionBoxArray: p2, partiallyEvaluatedTextSize: m2, collisionGroup: f2 } = t4.parameters, g2 = o2.get(\"text-optional\"), v2 = o2.get(\"icon-optional\"), x2 = e.ar(o2, \"text-overlap\", \"text-allow-overlap\"), y2 = \"always\" === x2, b2 = e.ar(o2, \"icon-overlap\", \"icon-allow-overlap\"), w2 = \"always\" === b2, T2 = \"map\" === o2.get(\"text-rotation-alignment\"), I2 = \"map\" === o2.get(\"text-pitch-alignment\"), E3 = \"none\" !== o2.get(\"icon-text-fit\"), P2 = \"viewport-y\" === o2.get(\"symbol-z-order\"), C3 = y2 && (w2 || !s2.hasIconData() || v2), S2 = w2 && (y2 || !s2.hasTextData() || g2);\n !s2.collisionArrays && p2 && s2.deserializeCollisionBoxes(p2);\n const z2 = this._getTerrainElevationFunc(this.retainedQueryData[s2.bucketInstanceId].tileID), D3 = (t5, p3, w3) => {\n var P3, D4;\n if (i2[t5.crossTileID]) return;\n if (_2) return void (this.placements[t5.crossTileID] = new Ut(false, false, false));\n let M2 = false, A3 = false, R2 = true, k2 = null, L2 = { box: null, placeable: false, offscreen: null }, F2 = { box: null, placeable: false, offscreen: null }, B3 = null, O2 = null, N2 = null, U2 = 0, j2 = 0, Z2 = 0;\n p3.textFeatureIndex ? U2 = p3.textFeatureIndex : t5.useRuntimeCollisionCircles && (U2 = t5.featureIndex), p3.verticalTextFeatureIndex && (j2 = p3.verticalTextFeatureIndex);\n const q2 = p3.textBox;\n if (q2) {\n const i3 = (i4) => {\n let a3 = e.ah.horizontal;\n if (s2.allowVerticalPlacement && !i4 && this.prevPlacement) {\n const e2 = this.prevPlacement.placedOrientations[t5.crossTileID];\n e2 && (this.placedOrientations[t5.crossTileID] = e2, a3 = e2, this.markUsedOrientation(s2, a3, t5));\n }\n return a3;\n }, o3 = (i4, a3) => {\n if (s2.allowVerticalPlacement && t5.numVerticalGlyphVertices > 0 && p3.verticalTextBox) {\n for (const t6 of s2.writingModes) if (t6 === e.ah.vertical ? (L2 = a3(), F2 = L2) : L2 = i4(), L2 && L2.placeable) break;\n } else L2 = i4();\n }, c3 = t5.textAnchorOffsetStartIndex, u3 = t5.textAnchorOffsetEndIndex;\n if (u3 === c3) {\n const a3 = (e2, i4) => {\n const a4 = this.collisionIndex.placeCollisionBox(e2, x2, d2, l2, h2, I2, T2, r2, f2.predicate, z2);\n return a4 && a4.placeable && (this.markUsedOrientation(s2, i4, t5), this.placedOrientations[t5.crossTileID] = i4), a4;\n };\n o3(() => a3(q2, e.ah.horizontal), () => {\n const i4 = p3.verticalTextBox;\n return s2.allowVerticalPlacement && t5.numVerticalGlyphVertices > 0 && i4 ? a3(i4, e.ah.vertical) : { box: null, offscreen: null };\n }), i3(L2 && L2.placeable);\n } else {\n let _3 = e.aq[null === (D4 = null === (P3 = this.prevPlacement) || void 0 === P3 ? void 0 : P3.variableOffsets[t5.crossTileID]) || void 0 === D4 ? void 0 : D4.anchor];\n const m3 = (i4, o4, p4) => {\n const m4 = i4.x2 - i4.x1, g4 = i4.y2 - i4.y1, v3 = t5.textBoxScale, y3 = E3 && \"never\" === b2 ? o4 : null;\n let w4 = null, P4 = \"never\" === x2 ? 1 : 2, C4 = \"never\";\n _3 && P4++;\n for (let e2 = 0; e2 < P4; e2++) {\n for (let e3 = c3; e3 < u3; e3++) {\n const a3 = s2.textAnchorOffsets.get(e3);\n if (_3 && a3.textAnchor !== _3) continue;\n const o5 = this.attemptAnchorPlacement(a3, i4, m4, g4, v3, T2, I2, d2, l2, h2, f2, C4, t5, s2, p4, r2, n2, y3, z2);\n if (o5 && (w4 = o5.placedGlyphBoxes, w4 && w4.placeable)) return M2 = true, k2 = o5.shift, w4;\n }\n _3 ? _3 = null : C4 = x2;\n }\n return a2 && !w4 && (w4 = { box: this.collisionIndex.placeCollisionBox(q2, \"always\", d2, l2, h2, I2, T2, r2, f2.predicate, z2, new e.P(0, 0)).box, offscreen: false, placeable: false }), w4;\n };\n o3(() => m3(q2, p3.iconBox, e.ah.horizontal), () => {\n const i4 = p3.verticalTextBox;\n return s2.allowVerticalPlacement && (!L2 || !L2.placeable) && t5.numVerticalGlyphVertices > 0 && i4 ? m3(i4, p3.verticalIconBox, e.ah.vertical) : { box: null, occluded: true, offscreen: null };\n }), L2 && (M2 = L2.placeable, R2 = L2.offscreen);\n const g3 = i3(L2 && L2.placeable);\n if (!M2 && this.prevPlacement) {\n const e2 = this.prevPlacement.variableOffsets[t5.crossTileID];\n e2 && (this.variableOffsets[t5.crossTileID] = e2, this.markUsedJustification(s2, e2.anchor, t5, g3));\n }\n }\n }\n if (B3 = L2, M2 = B3 && B3.placeable, R2 = B3 && B3.offscreen, t5.useRuntimeCollisionCircles) {\n const i3 = s2.text.placedSymbolArray.get(t5.centerJustifiedTextSymbolIndex), n3 = e.ai(s2.textSizeData, m2, i3), d3 = o2.get(\"text-padding\");\n O2 = this.collisionIndex.placeCollisionCircles(x2, i3, s2.lineVertexArray, s2.glyphOffsetArray, n3, l2, h2, c2, u2, a2, I2, f2.predicate, t5.collisionCircleDiameter, d3, r2, z2), O2.circles.length && O2.collisionDetected && !a2 && e.w(\"Collisions detected, but collision boxes are not shown\"), M2 = y2 || O2.circles.length > 0 && !O2.collisionDetected, R2 = R2 && O2.offscreen;\n }\n if (p3.iconFeatureIndex && (Z2 = p3.iconFeatureIndex), p3.iconBox) {\n const t6 = (t7) => this.collisionIndex.placeCollisionBox(t7, b2, d2, l2, h2, I2, T2, n2, f2.predicate, z2, E3 && k2 ? k2 : void 0);\n F2 && F2.placeable && p3.verticalIconBox ? (N2 = t6(p3.verticalIconBox), A3 = N2.placeable) : (N2 = t6(p3.iconBox), A3 = N2.placeable), R2 = R2 && N2.offscreen;\n }\n const V2 = g2 || 0 === t5.numHorizontalGlyphVertices && 0 === t5.numVerticalGlyphVertices, G2 = v2 || 0 === t5.numIconVertices;\n V2 || G2 ? G2 ? V2 || (A3 = A3 && M2) : M2 = A3 && M2 : A3 = M2 = A3 && M2;\n const H2 = A3 && N2.placeable;\n if (M2 && B3.placeable && this.collisionIndex.insertCollisionBox(B3.box, x2, o2.get(\"text-ignore-placement\"), s2.bucketInstanceId, F2 && F2.placeable && j2 ? j2 : U2, f2.ID), H2 && this.collisionIndex.insertCollisionBox(N2.box, b2, o2.get(\"icon-ignore-placement\"), s2.bucketInstanceId, Z2, f2.ID), O2 && M2 && this.collisionIndex.insertCollisionCircles(O2.circles, x2, o2.get(\"text-ignore-placement\"), s2.bucketInstanceId, U2, f2.ID), a2 && this.storeCollisionData(s2.bucketInstanceId, w3, p3, B3, N2, O2), 0 === t5.crossTileID) throw new Error(\"symbolInstance.crossTileID can't be 0\");\n if (0 === s2.bucketInstanceId) throw new Error(\"bucket.bucketInstanceId can't be 0\");\n this.placements[t5.crossTileID] = new Ut(M2 || C3, A3 || S2, R2 || s2.justReloaded), i2[t5.crossTileID] = true;\n };\n if (P2) {\n if (0 !== t4.symbolInstanceStart) throw new Error(\"bucket.bucketInstanceId should be 0\");\n const e2 = s2.getSortedSymbolIndexes(this.transform.angle);\n for (let t5 = e2.length - 1; t5 >= 0; --t5) {\n const i3 = e2[t5];\n D3(s2.symbolInstances.get(i3), s2.collisionArrays[i3], i3);\n }\n } else for (let e2 = t4.symbolInstanceStart; e2 < t4.symbolInstanceEnd; e2++) D3(s2.symbolInstances.get(e2), s2.collisionArrays[e2], e2);\n if (a2 && s2.bucketInstanceId in this.collisionCircleArrays) {\n const t5 = this.collisionCircleArrays[s2.bucketInstanceId];\n e.as(t5.invProjMatrix, l2), t5.viewportMatrix = this.collisionIndex.getViewportMatrix();\n }\n s2.justReloaded = false;\n }\n storeCollisionData(t4, e2, i2, a2, s2, o2) {\n if (i2.textBox || i2.iconBox) {\n let o3, r2;\n this.collisionBoxArrays.has(t4) ? o3 = this.collisionBoxArrays.get(t4) : (o3 = /* @__PURE__ */ new Map(), this.collisionBoxArrays.set(t4, o3)), o3.has(e2) ? r2 = o3.get(e2) : (r2 = { text: null, icon: null }, o3.set(e2, r2)), i2.textBox && (r2.text = a2.box), i2.iconBox && (r2.icon = s2.box);\n }\n if (o2) {\n let e3 = this.collisionCircleArrays[t4];\n void 0 === e3 && (e3 = this.collisionCircleArrays[t4] = new jt());\n for (let t5 = 0; t5 < o2.circles.length; t5 += 4) e3.circles.push(o2.circles[t5 + 0]), e3.circles.push(o2.circles[t5 + 1]), e3.circles.push(o2.circles[t5 + 2]), e3.circles.push(o2.collisionDetected ? 1 : 0);\n }\n }\n markUsedJustification(t4, i2, a2, s2) {\n let o2;\n o2 = s2 === e.ah.vertical ? a2.verticalPlacedTextSymbolIndex : { left: a2.leftJustifiedTextSymbolIndex, center: a2.centerJustifiedTextSymbolIndex, right: a2.rightJustifiedTextSymbolIndex }[e.at(i2)];\n const r2 = [a2.leftJustifiedTextSymbolIndex, a2.centerJustifiedTextSymbolIndex, a2.rightJustifiedTextSymbolIndex, a2.verticalPlacedTextSymbolIndex];\n for (const e2 of r2) e2 >= 0 && (t4.text.placedSymbolArray.get(e2).crossTileID = o2 >= 0 && e2 !== o2 ? 0 : a2.crossTileID);\n }\n markUsedOrientation(t4, i2, a2) {\n const s2 = i2 === e.ah.horizontal || i2 === e.ah.horizontalOnly ? i2 : 0, o2 = i2 === e.ah.vertical ? i2 : 0, r2 = [a2.leftJustifiedTextSymbolIndex, a2.centerJustifiedTextSymbolIndex, a2.rightJustifiedTextSymbolIndex];\n for (const e2 of r2) t4.text.placedSymbolArray.get(e2).placedOrientation = s2;\n a2.verticalPlacedTextSymbolIndex && (t4.text.placedSymbolArray.get(a2.verticalPlacedTextSymbolIndex).placedOrientation = o2);\n }\n commit(t4) {\n this.commitTime = t4, this.zoomAtLastRecencyCheck = this.transform.zoom;\n const e2 = this.prevPlacement;\n let i2 = false;\n this.prevZoomAdjustment = e2 ? e2.zoomAdjustment(this.transform.zoom) : 0;\n const a2 = e2 ? e2.symbolFadeChange(t4) : 1, s2 = e2 ? e2.opacities : {}, o2 = e2 ? e2.variableOffsets : {}, r2 = e2 ? e2.placedOrientations : {};\n for (const t5 in this.placements) {\n const e3 = this.placements[t5], o3 = s2[t5];\n o3 ? (this.opacities[t5] = new Nt(o3, a2, e3.text, e3.icon), i2 = i2 || e3.text !== o3.text.placed || e3.icon !== o3.icon.placed) : (this.opacities[t5] = new Nt(null, a2, e3.text, e3.icon, e3.skipFade), i2 = i2 || e3.text || e3.icon);\n }\n for (const t5 in s2) {\n const e3 = s2[t5];\n if (!this.opacities[t5]) {\n const s3 = new Nt(e3, a2, false, false);\n s3.isHidden() || (this.opacities[t5] = s3, i2 = i2 || e3.text.placed || e3.icon.placed);\n }\n }\n for (const t5 in o2) this.variableOffsets[t5] || !this.opacities[t5] || this.opacities[t5].isHidden() || (this.variableOffsets[t5] = o2[t5]);\n for (const t5 in r2) this.placedOrientations[t5] || !this.opacities[t5] || this.opacities[t5].isHidden() || (this.placedOrientations[t5] = r2[t5]);\n if (e2 && void 0 === e2.lastPlacementChangeTime) throw new Error(\"Last placement time for previous placement is not defined\");\n i2 ? this.lastPlacementChangeTime = t4 : \"number\" != typeof this.lastPlacementChangeTime && (this.lastPlacementChangeTime = e2 ? e2.lastPlacementChangeTime : t4);\n }\n updateLayerOpacities(t4, e2) {\n const i2 = {};\n for (const a2 of e2) {\n const e3 = a2.getBucket(t4);\n e3 && a2.latestFeatureIndex && t4.id === e3.layerIds[0] && this.updateBucketOpacities(e3, a2.tileID, i2, a2.collisionBoxArray);\n }\n }\n updateBucketOpacities(t4, i2, a2, s2) {\n t4.hasTextData() && (t4.text.opacityVertexArray.clear(), t4.text.hasVisibleVertices = false), t4.hasIconData() && (t4.icon.opacityVertexArray.clear(), t4.icon.hasVisibleVertices = false), t4.hasIconCollisionBoxData() && t4.iconCollisionBox.collisionVertexArray.clear(), t4.hasTextCollisionBoxData() && t4.textCollisionBox.collisionVertexArray.clear();\n const o2 = t4.layers[0], r2 = o2.layout, n2 = new Nt(null, 0, false, false, true), l2 = r2.get(\"text-allow-overlap\"), h2 = r2.get(\"icon-allow-overlap\"), c2 = o2._unevaluatedLayout.hasValue(\"text-variable-anchor\") || o2._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"), u2 = \"map\" === r2.get(\"text-rotation-alignment\"), d2 = \"map\" === r2.get(\"text-pitch-alignment\"), _2 = \"none\" !== r2.get(\"icon-text-fit\"), p2 = new Nt(null, 0, l2 && (h2 || !t4.hasIconData() || r2.get(\"icon-optional\")), h2 && (l2 || !t4.hasTextData() || r2.get(\"text-optional\")), true);\n !t4.collisionArrays && s2 && (t4.hasIconCollisionBoxData() || t4.hasTextCollisionBoxData()) && t4.deserializeCollisionBoxes(s2);\n const m2 = (t5, e2, i3) => {\n for (let a3 = 0; a3 < e2 / 4; a3++) t5.opacityVertexArray.emplaceBack(i3);\n t5.hasVisibleVertices = t5.hasVisibleVertices || i3 !== ee;\n }, f2 = this.collisionBoxArrays.get(t4.bucketInstanceId);\n for (let i3 = 0; i3 < t4.symbolInstances.length; i3++) {\n const s3 = t4.symbolInstances.get(i3), { numHorizontalGlyphVertices: o3, numVerticalGlyphVertices: r3, crossTileID: l3 } = s3;\n let h3 = this.opacities[l3];\n a2[l3] ? h3 = n2 : h3 || (h3 = p2, this.opacities[l3] = h3), a2[l3] = true;\n const g2 = s3.numIconVertices > 0, v2 = this.placedOrientations[s3.crossTileID], x2 = v2 === e.ah.vertical, y2 = v2 === e.ah.horizontal || v2 === e.ah.horizontalOnly;\n if (o3 > 0 || r3 > 0) {\n const e2 = te(h3.text);\n m2(t4.text, o3, x2 ? ee : e2), m2(t4.text, r3, y2 ? ee : e2);\n const i4 = h3.text.isHidden();\n [s3.rightJustifiedTextSymbolIndex, s3.centerJustifiedTextSymbolIndex, s3.leftJustifiedTextSymbolIndex].forEach((e3) => {\n e3 >= 0 && (t4.text.placedSymbolArray.get(e3).hidden = i4 || x2 ? 1 : 0);\n }), s3.verticalPlacedTextSymbolIndex >= 0 && (t4.text.placedSymbolArray.get(s3.verticalPlacedTextSymbolIndex).hidden = i4 || y2 ? 1 : 0);\n const a3 = this.variableOffsets[s3.crossTileID];\n a3 && this.markUsedJustification(t4, a3.anchor, s3, v2);\n const n3 = this.placedOrientations[s3.crossTileID];\n n3 && (this.markUsedJustification(t4, \"left\", s3, n3), this.markUsedOrientation(t4, n3, s3));\n }\n if (g2) {\n const e2 = te(h3.icon), i4 = !(_2 && s3.verticalPlacedIconSymbolIndex && x2);\n s3.placedIconSymbolIndex >= 0 && (m2(t4.icon, s3.numIconVertices, i4 ? e2 : ee), t4.icon.placedSymbolArray.get(s3.placedIconSymbolIndex).hidden = h3.icon.isHidden()), s3.verticalPlacedIconSymbolIndex >= 0 && (m2(t4.icon, s3.numVerticalIconVertices, i4 ? ee : e2), t4.icon.placedSymbolArray.get(s3.verticalPlacedIconSymbolIndex).hidden = h3.icon.isHidden());\n }\n const b2 = f2 && f2.has(i3) ? f2.get(i3) : { text: null, icon: null };\n if (t4.hasIconCollisionBoxData() || t4.hasTextCollisionBoxData()) {\n const a3 = t4.collisionArrays[i3];\n if (a3) {\n let i4 = new e.P(0, 0);\n if (a3.textBox || a3.verticalTextBox) {\n let e2 = true;\n if (c2) {\n const t5 = this.variableOffsets[l3];\n t5 ? (i4 = Vt(t5.anchor, t5.width, t5.height, t5.textOffset, t5.textBoxScale), u2 && i4._rotate(d2 ? this.transform.angle : -this.transform.angle)) : e2 = false;\n }\n if (a3.textBox || a3.verticalTextBox) {\n let s4;\n a3.textBox && (s4 = x2), a3.verticalTextBox && (s4 = y2), Ht(t4.textCollisionBox.collisionVertexArray, h3.text.placed, !e2 || s4, b2.text, i4.x, i4.y);\n }\n }\n if (a3.iconBox || a3.verticalIconBox) {\n const e2 = Boolean(!y2 && a3.verticalIconBox);\n let s4;\n a3.iconBox && (s4 = e2), a3.verticalIconBox && (s4 = !e2), Ht(t4.iconCollisionBox.collisionVertexArray, h3.icon.placed, s4, b2.icon, _2 ? i4.x : 0, _2 ? i4.y : 0);\n }\n }\n }\n }\n if (t4.sortFeatures(this.transform.angle), this.retainedQueryData[t4.bucketInstanceId] && (this.retainedQueryData[t4.bucketInstanceId].featureSortOrder = t4.featureSortOrder), t4.hasTextData() && t4.text.opacityVertexBuffer && t4.text.opacityVertexBuffer.updateData(t4.text.opacityVertexArray), t4.hasIconData() && t4.icon.opacityVertexBuffer && t4.icon.opacityVertexBuffer.updateData(t4.icon.opacityVertexArray), t4.hasIconCollisionBoxData() && t4.iconCollisionBox.collisionVertexBuffer && t4.iconCollisionBox.collisionVertexBuffer.updateData(t4.iconCollisionBox.collisionVertexArray), t4.hasTextCollisionBoxData() && t4.textCollisionBox.collisionVertexBuffer && t4.textCollisionBox.collisionVertexBuffer.updateData(t4.textCollisionBox.collisionVertexArray), t4.text.opacityVertexArray.length !== t4.text.layoutVertexArray.length / 4) throw new Error(`bucket.text.opacityVertexArray.length (= ${t4.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${t4.text.layoutVertexArray.length}) / 4`);\n if (t4.icon.opacityVertexArray.length !== t4.icon.layoutVertexArray.length / 4) throw new Error(`bucket.icon.opacityVertexArray.length (= ${t4.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${t4.icon.layoutVertexArray.length}) / 4`);\n if (t4.bucketInstanceId in this.collisionCircleArrays) {\n const e2 = this.collisionCircleArrays[t4.bucketInstanceId];\n t4.placementInvProjMatrix = e2.invProjMatrix, t4.placementViewportMatrix = e2.viewportMatrix, t4.collisionCircleArray = e2.circles, delete this.collisionCircleArrays[t4.bucketInstanceId];\n }\n }\n symbolFadeChange(t4) {\n return 0 === this.fadeDuration ? 1 : (t4 - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment;\n }\n zoomAdjustment(t4) {\n return Math.max(0, (this.transform.zoom - t4) / 1.5);\n }\n hasTransitions(t4) {\n return this.stale || t4 - this.lastPlacementChangeTime < this.fadeDuration;\n }\n stillRecent(t4, e2) {\n const i2 = this.zoomAtLastRecencyCheck === e2 ? 1 - this.zoomAdjustment(e2) : 1;\n return this.zoomAtLastRecencyCheck = e2, this.commitTime + this.fadeDuration * i2 > t4;\n }\n setStale() {\n this.stale = true;\n }\n }\n function Ht(t4, e2, i2, a2, s2, o2) {\n a2 && 0 !== a2.length || (a2 = [0, 0, 0, 0]);\n const r2 = a2[0] - Lt, n2 = a2[1] - Lt, l2 = a2[2] - Lt, h2 = a2[3] - Lt;\n t4.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, s2 || 0, o2 || 0, r2, n2), t4.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, s2 || 0, o2 || 0, l2, n2), t4.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, s2 || 0, o2 || 0, l2, h2), t4.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, s2 || 0, o2 || 0, r2, h2);\n }\n const Wt = Math.pow(2, 25), $t = Math.pow(2, 24), Xt = Math.pow(2, 17), Kt = Math.pow(2, 16), Jt = Math.pow(2, 9), Yt = Math.pow(2, 8), Qt = Math.pow(2, 1);\n function te(t4) {\n if (0 === t4.opacity && !t4.placed) return 0;\n if (1 === t4.opacity && t4.placed) return 4294967295;\n const e2 = t4.placed ? 1 : 0, i2 = Math.floor(127 * t4.opacity);\n return i2 * Wt + e2 * $t + i2 * Xt + e2 * Kt + i2 * Jt + e2 * Yt + i2 * Qt + e2;\n }\n const ee = 0;\n function ie() {\n return { isOccluded: (t4, e2, i2) => false, getPitchedTextCorrection: (t4, e2, i2) => 1, get useSpecialProjectionForSymbols() {\n return false;\n }, projectTileCoordinates(t4, e2, i2, a2) {\n throw new Error(\"Not implemented.\");\n }, translatePosition: (t4, e2, i2, a2) => function(t5, e3, i3, a3, s2 = false) {\n if (!i3[0] && !i3[1]) return [0, 0];\n const o2 = s2 ? \"map\" === a3 ? t5.angle : 0 : \"viewport\" === a3 ? -t5.angle : 0;\n if (o2) {\n const t6 = Math.sin(o2), e4 = Math.cos(o2);\n i3 = [i3[0] * e4 - i3[1] * t6, i3[0] * t6 + i3[1] * e4];\n }\n return [s2 ? i3[0] : Bt(e3, i3[0], t5.zoom), s2 ? i3[1] : Bt(e3, i3[1], t5.zoom)];\n }(t4, e2, i2, a2), getCircleRadiusCorrection: (t4) => 1 };\n }\n class ae {\n constructor(t4) {\n this._sortAcrossTiles = \"viewport-y\" !== t4.layout.get(\"symbol-z-order\") && !t4.layout.get(\"symbol-sort-key\").isConstant(), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = [];\n }\n continuePlacement(t4, e2, i2, a2, s2) {\n const o2 = this._bucketParts;\n for (; this._currentTileIndex < t4.length; ) if (e2.getBucketParts(o2, a2, t4[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, s2()) return true;\n for (this._sortAcrossTiles && (this._sortAcrossTiles = false, o2.sort((t5, e3) => t5.sortKey - e3.sortKey)); this._currentPartIndex < o2.length; ) if (e2.placeLayerBucketPart(o2[this._currentPartIndex], this._seenCrossTileIDs, i2), this._currentPartIndex++, s2()) return true;\n return false;\n }\n }\n class se {\n constructor(t4, e2, i2, a2, s2, o2, r2, n2) {\n this.placement = new Gt(t4, ie(), e2, o2, r2, n2), this._currentPlacementIndex = i2.length - 1, this._forceFullPlacement = a2, this._showCollisionBoxes = s2, this._done = false;\n }\n isDone() {\n return this._done;\n }\n continuePlacement(t4, e2, i2) {\n const a2 = o.now(), s2 = () => !this._forceFullPlacement && o.now() - a2 > 2;\n for (; this._currentPlacementIndex >= 0; ) {\n const a3 = e2[t4[this._currentPlacementIndex]], o2 = this.placement.collisionIndex.transform.zoom;\n if (\"symbol\" === a3.type && (!a3.minzoom || a3.minzoom <= o2) && (!a3.maxzoom || a3.maxzoom > o2)) {\n if (this._inProgressLayer || (this._inProgressLayer = new ae(a3)), this._inProgressLayer.continuePlacement(i2[a3.source], this.placement, this._showCollisionBoxes, a3, s2)) return;\n delete this._inProgressLayer;\n }\n this._currentPlacementIndex--;\n }\n this._done = true;\n }\n commit(t4) {\n return this.placement.commit(t4), this.placement;\n }\n }\n const oe = 512 / e.X / 2;\n class re {\n constructor(t4, i2, a2) {\n this.tileID = t4, this.bucketInstanceId = a2, this._symbolsByKey = {};\n const s2 = /* @__PURE__ */ new Map();\n for (let t5 = 0; t5 < i2.length; t5++) {\n const e2 = i2.get(t5), a3 = e2.key, o2 = s2.get(a3);\n o2 ? o2.push(e2) : s2.set(a3, [e2]);\n }\n for (const [t5, i3] of s2) {\n const a3 = { positions: i3.map((t6) => ({ x: Math.floor(t6.anchorX * oe), y: Math.floor(t6.anchorY * oe) })), crossTileIDs: i3.map((t6) => t6.crossTileID) };\n if (a3.positions.length > 128) {\n const t6 = new e.av(a3.positions.length, 16, Uint16Array);\n for (const { x: e2, y: i4 } of a3.positions) t6.add(e2, i4);\n t6.finish(), delete a3.positions, a3.index = t6;\n }\n this._symbolsByKey[t5] = a3;\n }\n }\n getScaledCoordinates(t4, i2) {\n const { x: a2, y: s2, z: o2 } = this.tileID.canonical, { x: r2, y: n2, z: l2 } = i2.canonical, h2 = oe / Math.pow(2, l2 - o2), c2 = (n2 * e.X + t4.anchorY) * h2, u2 = s2 * e.X * oe;\n return { x: Math.floor((r2 * e.X + t4.anchorX) * h2 - a2 * e.X * oe), y: Math.floor(c2 - u2) };\n }\n findMatches(t4, e2, i2) {\n const a2 = this.tileID.canonical.z < e2.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - e2.canonical.z);\n for (let s2 = 0; s2 < t4.length; s2++) {\n const o2 = t4.get(s2);\n if (o2.crossTileID) continue;\n const r2 = this._symbolsByKey[o2.key];\n if (!r2) continue;\n const n2 = this.getScaledCoordinates(o2, e2);\n if (r2.index) {\n const t5 = r2.index.range(n2.x - a2, n2.y - a2, n2.x + a2, n2.y + a2).sort();\n for (const e3 of t5) {\n const t6 = r2.crossTileIDs[e3];\n if (!i2[t6]) {\n i2[t6] = true, o2.crossTileID = t6;\n break;\n }\n }\n } else if (r2.positions) for (let t5 = 0; t5 < r2.positions.length; t5++) {\n const e3 = r2.positions[t5], s3 = r2.crossTileIDs[t5];\n if (Math.abs(e3.x - n2.x) <= a2 && Math.abs(e3.y - n2.y) <= a2 && !i2[s3]) {\n i2[s3] = true, o2.crossTileID = s3;\n break;\n }\n }\n }\n }\n getCrossTileIDsLists() {\n return Object.values(this._symbolsByKey).map(({ crossTileIDs: t4 }) => t4);\n }\n }\n class ne {\n constructor() {\n this.maxCrossTileID = 0;\n }\n generate() {\n return ++this.maxCrossTileID;\n }\n }\n class le {\n constructor() {\n this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0;\n }\n handleWrapJump(t4) {\n const e2 = Math.round((t4 - this.lng) / 360);\n if (0 !== e2) for (const t5 in this.indexes) {\n const i2 = this.indexes[t5], a2 = {};\n for (const t6 in i2) {\n const s2 = i2[t6];\n s2.tileID = s2.tileID.unwrapTo(s2.tileID.wrap + e2), a2[s2.tileID.key] = s2;\n }\n this.indexes[t5] = a2;\n }\n this.lng = t4;\n }\n addBucket(t4, e2, i2) {\n if (this.indexes[t4.overscaledZ] && this.indexes[t4.overscaledZ][t4.key]) {\n if (this.indexes[t4.overscaledZ][t4.key].bucketInstanceId === e2.bucketInstanceId) return false;\n this.removeBucketCrossTileIDs(t4.overscaledZ, this.indexes[t4.overscaledZ][t4.key]);\n }\n for (let t5 = 0; t5 < e2.symbolInstances.length; t5++) e2.symbolInstances.get(t5).crossTileID = 0;\n this.usedCrossTileIDs[t4.overscaledZ] || (this.usedCrossTileIDs[t4.overscaledZ] = {});\n const a2 = this.usedCrossTileIDs[t4.overscaledZ];\n for (const i3 in this.indexes) {\n const s2 = this.indexes[i3];\n if (Number(i3) > t4.overscaledZ) for (const i4 in s2) {\n const o2 = s2[i4];\n o2.tileID.isChildOf(t4) && o2.findMatches(e2.symbolInstances, t4, a2);\n }\n else {\n const o2 = s2[t4.scaledTo(Number(i3)).key];\n o2 && o2.findMatches(e2.symbolInstances, t4, a2);\n }\n }\n for (let t5 = 0; t5 < e2.symbolInstances.length; t5++) {\n const s2 = e2.symbolInstances.get(t5);\n s2.crossTileID || (s2.crossTileID = i2.generate(), a2[s2.crossTileID] = true);\n }\n return void 0 === this.indexes[t4.overscaledZ] && (this.indexes[t4.overscaledZ] = {}), this.indexes[t4.overscaledZ][t4.key] = new re(t4, e2.symbolInstances, e2.bucketInstanceId), true;\n }\n removeBucketCrossTileIDs(t4, e2) {\n for (const i2 of e2.getCrossTileIDsLists()) for (const e3 of i2) delete this.usedCrossTileIDs[t4][e3];\n }\n removeStaleBuckets(t4) {\n let e2 = false;\n for (const i2 in this.indexes) {\n const a2 = this.indexes[i2];\n for (const s2 in a2) t4[a2[s2].bucketInstanceId] || (this.removeBucketCrossTileIDs(i2, a2[s2]), delete a2[s2], e2 = true);\n }\n return e2;\n }\n }\n class he {\n constructor() {\n this.layerIndexes = {}, this.crossTileIDs = new ne(), this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {};\n }\n addLayer(t4, e2, i2) {\n let a2 = this.layerIndexes[t4.id];\n void 0 === a2 && (a2 = this.layerIndexes[t4.id] = new le());\n let s2 = false;\n const o2 = {};\n a2.handleWrapJump(i2);\n for (const i3 of e2) {\n const e3 = i3.getBucket(t4);\n e3 && t4.id === e3.layerIds[0] && (e3.bucketInstanceId || (e3.bucketInstanceId = ++this.maxBucketInstanceId), a2.addBucket(i3.tileID, e3, this.crossTileIDs) && (s2 = true), o2[e3.bucketInstanceId] = true);\n }\n return a2.removeStaleBuckets(o2) && (s2 = true), s2;\n }\n pruneUnusedLayers(t4) {\n const e2 = {};\n t4.forEach((t5) => {\n e2[t5] = true;\n });\n for (const t5 in this.layerIndexes) e2[t5] || delete this.layerIndexes[t5];\n }\n }\n const ce = (t4, i2) => e.t(t4, i2 && i2.filter((t5) => \"source.canvas\" !== t5.identifier)), ue = e.aw();\n class de extends e.E {\n constructor(t4, i2 = {}) {\n super(), this._rtlPluginLoaded = () => {\n for (const t5 in this.sourceCaches) {\n const e2 = this.sourceCaches[t5].getSource().type;\n \"vector\" !== e2 && \"geojson\" !== e2 || this.sourceCaches[t5].reload();\n }\n }, this.map = t4, this.dispatcher = new U(N(), t4._getMapId()), this.dispatcher.registerMessageHandler(\"GG\", (t5, e2) => this.getGlyphs(t5, e2)), this.dispatcher.registerMessageHandler(\"GI\", (t5, e2) => this.getImages(t5, e2)), this.imageManager = new T(), this.imageManager.setEventedParent(this), this.glyphManager = new C2(t4._requestManager, i2.localIdeographFontFamily), this.lineAtlas = new R(256, 512), this.crossTileSymbolIndex = new he(), this._spritesImagesIds = {}, this._layers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new e.ax(), this._loaded = false, this._availableImages = [], this._resetUpdates(), this.dispatcher.broadcast(\"SR\", e.ay()), nt().on(st, this._rtlPluginLoaded), this.on(\"data\", (t5) => {\n if (\"source\" !== t5.dataType || \"metadata\" !== t5.sourceDataType) return;\n const e2 = this.sourceCaches[t5.sourceId];\n if (!e2) return;\n const i3 = e2.getSource();\n if (i3 && i3.vectorLayerIds) for (const t6 in this._layers) {\n const e3 = this._layers[t6];\n e3.source === i3.id && this._validateLayer(e3);\n }\n });\n }\n loadURL(t4, i2 = {}, a2) {\n this.fire(new e.k(\"dataloading\", { dataType: \"style\" })), i2.validate = \"boolean\" != typeof i2.validate || i2.validate;\n const s2 = this.map._requestManager.transformRequest(t4, \"Style\");\n this._loadStyleRequest = new AbortController();\n const o2 = this._loadStyleRequest;\n e.h(s2, this._loadStyleRequest).then((t5) => {\n this._loadStyleRequest = null, this._load(t5.data, i2, a2);\n }).catch((t5) => {\n this._loadStyleRequest = null, t5 && !o2.signal.aborted && this.fire(new e.j(t5));\n });\n }\n loadJSON(t4, i2 = {}, a2) {\n this.fire(new e.k(\"dataloading\", { dataType: \"style\" })), this._frameRequest = new AbortController(), o.frameAsync(this._frameRequest).then(() => {\n this._frameRequest = null, i2.validate = false !== i2.validate, this._load(t4, i2, a2);\n }).catch(() => {\n });\n }\n loadEmpty() {\n this.fire(new e.k(\"dataloading\", { dataType: \"style\" })), this._load(ue, { validate: false });\n }\n _load(t4, i2, a2) {\n var s2;\n const o2 = i2.transformStyle ? i2.transformStyle(a2, t4) : t4;\n if (!i2.validate || !ce(this, e.u(o2))) {\n this._loaded = true, this.stylesheet = o2;\n for (const t5 in o2.sources) this.addSource(t5, o2.sources[t5], { validate: false });\n o2.sprite ? this._loadSprite(o2.sprite) : this.imageManager.setLoaded(true), this.glyphManager.setURL(o2.glyphs), this._createLayers(), this.light = new D2(this.stylesheet.light), this.sky = new A2(this.stylesheet.sky), this.map.setTerrain(null !== (s2 = this.stylesheet.terrain) && void 0 !== s2 ? s2 : null), this.fire(new e.k(\"data\", { dataType: \"style\" })), this.fire(new e.k(\"style.load\"));\n }\n }\n _createLayers() {\n const t4 = e.az(this.stylesheet.layers);\n this.dispatcher.broadcast(\"SL\", t4), this._order = t4.map((t5) => t5.id), this._layers = {}, this._serializedLayers = null;\n for (const i2 of t4) {\n const t5 = e.aA(i2);\n t5.setEventedParent(this, { layer: { id: i2.id } }), this._layers[i2.id] = t5;\n }\n }\n _loadSprite(t4, i2 = false, a2 = void 0) {\n let s2;\n this.imageManager.setLoaded(false), this._spriteRequest = new AbortController(), function(t5, i3, a3, s3) {\n return e._(this, void 0, void 0, function* () {\n const r2 = x(t5), n2 = a3 > 1 ? \"@2x\" : \"\", l2 = {}, h2 = {};\n for (const { id: t6, url: a4 } of r2) {\n const o2 = i3.transformRequest(y(a4, n2, \".json\"), \"SpriteJSON\");\n l2[t6] = e.h(o2, s3);\n const r3 = i3.transformRequest(y(a4, n2, \".png\"), \"SpriteImage\");\n h2[t6] = _.getImage(r3, s3);\n }\n return yield Promise.all([...Object.values(l2), ...Object.values(h2)]), function(t6, i4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = {};\n for (const a4 in t6) {\n e2[a4] = {};\n const s4 = o.getImageCanvasContext((yield i4[a4]).data), r3 = (yield t6[a4]).data;\n for (const t7 in r3) {\n const { width: i5, height: o2, x: n3, y: l3, sdf: h3, pixelRatio: c2, stretchX: u2, stretchY: d2, content: _2, textFitWidth: p2, textFitHeight: m2 } = r3[t7];\n e2[a4][t7] = { data: null, pixelRatio: c2, sdf: h3, stretchX: u2, stretchY: d2, content: _2, textFitWidth: p2, textFitHeight: m2, spriteData: { width: i5, height: o2, x: n3, y: l3, context: s4 } };\n }\n }\n return e2;\n });\n }(l2, h2);\n });\n }(t4, this.map._requestManager, this.map.getPixelRatio(), this._spriteRequest).then((t5) => {\n if (this._spriteRequest = null, t5) for (const e2 in t5) {\n this._spritesImagesIds[e2] = [];\n const a3 = this._spritesImagesIds[e2] ? this._spritesImagesIds[e2].filter((e3) => !(e3 in t5)) : [];\n for (const t6 of a3) this.imageManager.removeImage(t6), this._changedImages[t6] = true;\n for (const a4 in t5[e2]) {\n const s3 = \"default\" === e2 ? a4 : `${e2}:${a4}`;\n this._spritesImagesIds[e2].push(s3), s3 in this.imageManager.images ? this.imageManager.updateImage(s3, t5[e2][a4], false) : this.imageManager.addImage(s3, t5[e2][a4]), i2 && (this._changedImages[s3] = true);\n }\n }\n }).catch((t5) => {\n this._spriteRequest = null, s2 = t5, this.fire(new e.j(s2));\n }).finally(() => {\n this.imageManager.setLoaded(true), this._availableImages = this.imageManager.listImages(), i2 && (this._changed = true), this.dispatcher.broadcast(\"SI\", this._availableImages), this.fire(new e.k(\"data\", { dataType: \"style\" })), a2 && a2(s2);\n });\n }\n _unloadSprite() {\n for (const t4 of Object.values(this._spritesImagesIds).flat()) this.imageManager.removeImage(t4), this._changedImages[t4] = true;\n this._spritesImagesIds = {}, this._availableImages = this.imageManager.listImages(), this._changed = true, this.dispatcher.broadcast(\"SI\", this._availableImages), this.fire(new e.k(\"data\", { dataType: \"style\" }));\n }\n _validateLayer(t4) {\n const i2 = this.sourceCaches[t4.source];\n if (!i2) return;\n const a2 = t4.sourceLayer;\n if (!a2) return;\n const s2 = i2.getSource();\n (\"geojson\" === s2.type || s2.vectorLayerIds && -1 === s2.vectorLayerIds.indexOf(a2)) && this.fire(new e.j(new Error(`Source layer \"${a2}\" does not exist on source \"${s2.id}\" as specified by style layer \"${t4.id}\".`)));\n }\n loaded() {\n if (!this._loaded) return false;\n if (Object.keys(this._updatedSources).length) return false;\n for (const t4 in this.sourceCaches) if (!this.sourceCaches[t4].loaded()) return false;\n return !!this.imageManager.isLoaded();\n }\n _serializeByIds(t4, i2 = false) {\n const a2 = this._serializedAllLayers();\n if (!t4 || 0 === t4.length) return Object.values(i2 ? e.aB(a2) : a2);\n const s2 = [];\n for (const o2 of t4) if (a2[o2]) {\n const t5 = i2 ? e.aB(a2[o2]) : a2[o2];\n s2.push(t5);\n }\n return s2;\n }\n _serializedAllLayers() {\n let t4 = this._serializedLayers;\n if (t4) return t4;\n t4 = this._serializedLayers = {};\n const e2 = Object.keys(this._layers);\n for (const i2 of e2) {\n const e3 = this._layers[i2];\n \"custom\" !== e3.type && (t4[i2] = e3.serialize());\n }\n return t4;\n }\n hasTransitions() {\n if (this.light && this.light.hasTransition()) return true;\n if (this.sky && this.sky.hasTransition()) return true;\n for (const t4 in this.sourceCaches) if (this.sourceCaches[t4].hasTransition()) return true;\n for (const t4 in this._layers) if (this._layers[t4].hasTransition()) return true;\n return false;\n }\n _checkLoaded() {\n if (!this._loaded) throw new Error(\"Style is not done loading.\");\n }\n update(t4) {\n if (!this._loaded) return;\n const i2 = this._changed;\n if (i2) {\n const e2 = Object.keys(this._updatedLayers), i3 = Object.keys(this._removedLayers);\n (e2.length || i3.length) && this._updateWorkerLayers(e2, i3);\n for (const t5 in this._updatedSources) {\n const e3 = this._updatedSources[t5];\n if (\"reload\" === e3) this._reloadSource(t5);\n else {\n if (\"clear\" !== e3) throw new Error(`Invalid action ${e3}`);\n this._clearSource(t5);\n }\n }\n this._updateTilesForChangedImages(), this._updateTilesForChangedGlyphs();\n for (const e3 in this._updatedPaintProps) this._layers[e3].updateTransitions(t4);\n this.light.updateTransitions(t4), this.sky.updateTransitions(t4), this._resetUpdates();\n }\n const a2 = {};\n for (const t5 in this.sourceCaches) {\n const e2 = this.sourceCaches[t5];\n a2[t5] = e2.used, e2.used = false;\n }\n for (const e2 of this._order) {\n const i3 = this._layers[e2];\n i3.recalculate(t4, this._availableImages), !i3.isHidden(t4.zoom) && i3.source && (this.sourceCaches[i3.source].used = true);\n }\n for (const t5 in a2) {\n const i3 = this.sourceCaches[t5];\n !!a2[t5] != !!i3.used && i3.fire(new e.k(\"data\", { sourceDataType: \"visibility\", dataType: \"source\", sourceId: t5 }));\n }\n this.light.recalculate(t4), this.sky.recalculate(t4), this.z = t4.zoom, i2 && this.fire(new e.k(\"data\", { dataType: \"style\" }));\n }\n _updateTilesForChangedImages() {\n const t4 = Object.keys(this._changedImages);\n if (t4.length) {\n for (const e2 in this.sourceCaches) this.sourceCaches[e2].reloadTilesForDependencies([\"icons\", \"patterns\"], t4);\n this._changedImages = {};\n }\n }\n _updateTilesForChangedGlyphs() {\n if (this._glyphsDidChange) {\n for (const t4 in this.sourceCaches) this.sourceCaches[t4].reloadTilesForDependencies([\"glyphs\"], [\"\"]);\n this._glyphsDidChange = false;\n }\n }\n _updateWorkerLayers(t4, e2) {\n this.dispatcher.broadcast(\"UL\", { layers: this._serializeByIds(t4, false), removedIds: e2 });\n }\n _resetUpdates() {\n this._changed = false, this._updatedLayers = {}, this._removedLayers = {}, this._updatedSources = {}, this._updatedPaintProps = {}, this._changedImages = {}, this._glyphsDidChange = false;\n }\n setState(t4, i2 = {}) {\n var a2;\n this._checkLoaded();\n const s2 = this.serialize();\n if (t4 = i2.transformStyle ? i2.transformStyle(s2, t4) : t4, (null === (a2 = i2.validate) || void 0 === a2 || a2) && ce(this, e.u(t4))) return false;\n (t4 = e.aB(t4)).layers = e.az(t4.layers);\n const o2 = e.aC(s2, t4), r2 = this._getOperationsToPerform(o2);\n if (r2.unimplemented.length > 0) throw new Error(`Unimplemented: ${r2.unimplemented.join(\", \")}.`);\n if (0 === r2.operations.length) return false;\n for (const t5 of r2.operations) t5();\n return this.stylesheet = t4, this._serializedLayers = null, true;\n }\n _getOperationsToPerform(t4) {\n const e2 = [], i2 = [];\n for (const a2 of t4) switch (a2.command) {\n case \"setCenter\":\n case \"setZoom\":\n case \"setBearing\":\n case \"setPitch\":\n continue;\n case \"addLayer\":\n e2.push(() => this.addLayer.apply(this, a2.args));\n break;\n case \"removeLayer\":\n e2.push(() => this.removeLayer.apply(this, a2.args));\n break;\n case \"setPaintProperty\":\n e2.push(() => this.setPaintProperty.apply(this, a2.args));\n break;\n case \"setLayoutProperty\":\n e2.push(() => this.setLayoutProperty.apply(this, a2.args));\n break;\n case \"setFilter\":\n e2.push(() => this.setFilter.apply(this, a2.args));\n break;\n case \"addSource\":\n e2.push(() => this.addSource.apply(this, a2.args));\n break;\n case \"removeSource\":\n e2.push(() => this.removeSource.apply(this, a2.args));\n break;\n case \"setLayerZoomRange\":\n e2.push(() => this.setLayerZoomRange.apply(this, a2.args));\n break;\n case \"setLight\":\n e2.push(() => this.setLight.apply(this, a2.args));\n break;\n case \"setGeoJSONSourceData\":\n e2.push(() => this.setGeoJSONSourceData.apply(this, a2.args));\n break;\n case \"setGlyphs\":\n e2.push(() => this.setGlyphs.apply(this, a2.args));\n break;\n case \"setSprite\":\n e2.push(() => this.setSprite.apply(this, a2.args));\n break;\n case \"setSky\":\n e2.push(() => this.setSky.apply(this, a2.args));\n break;\n case \"setTerrain\":\n e2.push(() => this.map.setTerrain.apply(this, a2.args));\n break;\n case \"setTransition\":\n e2.push(() => {\n });\n break;\n default:\n i2.push(a2.command);\n }\n return { operations: e2, unimplemented: i2 };\n }\n addImage(t4, i2) {\n if (this.getImage(t4)) return this.fire(new e.j(new Error(`An image named \"${t4}\" already exists.`)));\n this.imageManager.addImage(t4, i2), this._afterImageUpdated(t4);\n }\n updateImage(t4, e2) {\n this.imageManager.updateImage(t4, e2);\n }\n getImage(t4) {\n return this.imageManager.getImage(t4);\n }\n removeImage(t4) {\n if (!this.getImage(t4)) return this.fire(new e.j(new Error(`An image named \"${t4}\" does not exist.`)));\n this.imageManager.removeImage(t4), this._afterImageUpdated(t4);\n }\n _afterImageUpdated(t4) {\n this._availableImages = this.imageManager.listImages(), this._changedImages[t4] = true, this._changed = true, this.dispatcher.broadcast(\"SI\", this._availableImages), this.fire(new e.k(\"data\", { dataType: \"style\" }));\n }\n listImages() {\n return this._checkLoaded(), this.imageManager.listImages();\n }\n addSource(t4, i2, a2 = {}) {\n if (this._checkLoaded(), void 0 !== this.sourceCaches[t4]) throw new Error(`Source \"${t4}\" already exists.`);\n if (!i2.type) throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i2).join(\", \")}.`);\n if ([\"vector\", \"raster\", \"geojson\", \"video\", \"image\"].indexOf(i2.type) >= 0 && this._validate(e.u.source, `sources.${t4}`, i2, null, a2)) return;\n this.map && this.map._collectResourceTiming && (i2.collectResourceTiming = true);\n const s2 = this.sourceCaches[t4] = new ut(t4, i2, this.dispatcher);\n s2.style = this, s2.setEventedParent(this, () => ({ isSourceLoaded: s2.loaded(), source: s2.serialize(), sourceId: t4 })), s2.onAdd(this.map), this._changed = true;\n }\n removeSource(t4) {\n if (this._checkLoaded(), void 0 === this.sourceCaches[t4]) throw new Error(\"There is no source with this ID\");\n for (const i3 in this._layers) if (this._layers[i3].source === t4) return this.fire(new e.j(new Error(`Source \"${t4}\" cannot be removed while layer \"${i3}\" is using it.`)));\n const i2 = this.sourceCaches[t4];\n delete this.sourceCaches[t4], delete this._updatedSources[t4], i2.fire(new e.k(\"data\", { sourceDataType: \"metadata\", dataType: \"source\", sourceId: t4 })), i2.setEventedParent(null), i2.onRemove(this.map), this._changed = true;\n }\n setGeoJSONSourceData(t4, e2) {\n if (this._checkLoaded(), void 0 === this.sourceCaches[t4]) throw new Error(`There is no source with this ID=${t4}`);\n const i2 = this.sourceCaches[t4].getSource();\n if (\"geojson\" !== i2.type) throw new Error(`geojsonSource.type is ${i2.type}, which is !== 'geojson`);\n i2.setData(e2), this._changed = true;\n }\n getSource(t4) {\n return this.sourceCaches[t4] && this.sourceCaches[t4].getSource();\n }\n addLayer(t4, i2, a2 = {}) {\n this._checkLoaded();\n const s2 = t4.id;\n if (this.getLayer(s2)) return void this.fire(new e.j(new Error(`Layer \"${s2}\" already exists on this map.`)));\n let o2;\n if (\"custom\" === t4.type) {\n if (ce(this, e.aD(t4))) return;\n o2 = e.aA(t4);\n } else {\n if (\"source\" in t4 && \"object\" == typeof t4.source && (this.addSource(s2, t4.source), t4 = e.aB(t4), t4 = e.e(t4, { source: s2 })), this._validate(e.u.layer, `layers.${s2}`, t4, { arrayIndex: -1 }, a2)) return;\n o2 = e.aA(t4), this._validateLayer(o2), o2.setEventedParent(this, { layer: { id: s2 } });\n }\n const r2 = i2 ? this._order.indexOf(i2) : this._order.length;\n if (i2 && -1 === r2) this.fire(new e.j(new Error(`Cannot add layer \"${s2}\" before non-existing layer \"${i2}\".`)));\n else {\n if (this._order.splice(r2, 0, s2), this._layerOrderChanged = true, this._layers[s2] = o2, this._removedLayers[s2] && o2.source && \"custom\" !== o2.type) {\n const t5 = this._removedLayers[s2];\n delete this._removedLayers[s2], t5.type !== o2.type ? this._updatedSources[o2.source] = \"clear\" : (this._updatedSources[o2.source] = \"reload\", this.sourceCaches[o2.source].pause());\n }\n this._updateLayer(o2), o2.onAdd && o2.onAdd(this.map);\n }\n }\n moveLayer(t4, i2) {\n if (this._checkLoaded(), this._changed = true, !this._layers[t4]) return void this.fire(new e.j(new Error(`The layer '${t4}' does not exist in the map's style and cannot be moved.`)));\n if (t4 === i2) return;\n const a2 = this._order.indexOf(t4);\n this._order.splice(a2, 1);\n const s2 = i2 ? this._order.indexOf(i2) : this._order.length;\n i2 && -1 === s2 ? this.fire(new e.j(new Error(`Cannot move layer \"${t4}\" before non-existing layer \"${i2}\".`))) : (this._order.splice(s2, 0, t4), this._layerOrderChanged = true);\n }\n removeLayer(t4) {\n this._checkLoaded();\n const i2 = this._layers[t4];\n if (!i2) return void this.fire(new e.j(new Error(`Cannot remove non-existing layer \"${t4}\".`)));\n i2.setEventedParent(null);\n const a2 = this._order.indexOf(t4);\n this._order.splice(a2, 1), this._layerOrderChanged = true, this._changed = true, this._removedLayers[t4] = i2, delete this._layers[t4], this._serializedLayers && delete this._serializedLayers[t4], delete this._updatedLayers[t4], delete this._updatedPaintProps[t4], i2.onRemove && i2.onRemove(this.map);\n }\n getLayer(t4) {\n return this._layers[t4];\n }\n getLayersOrder() {\n return [...this._order];\n }\n hasLayer(t4) {\n return t4 in this._layers;\n }\n setLayerZoomRange(t4, i2, a2) {\n this._checkLoaded();\n const s2 = this.getLayer(t4);\n s2 ? s2.minzoom === i2 && s2.maxzoom === a2 || (null != i2 && (s2.minzoom = i2), null != a2 && (s2.maxzoom = a2), this._updateLayer(s2)) : this.fire(new e.j(new Error(`Cannot set the zoom range of non-existing layer \"${t4}\".`)));\n }\n setFilter(t4, i2, a2 = {}) {\n this._checkLoaded();\n const s2 = this.getLayer(t4);\n if (s2) {\n if (!e.aE(s2.filter, i2)) return null == i2 ? (s2.filter = void 0, void this._updateLayer(s2)) : void (this._validate(e.u.filter, `layers.${s2.id}.filter`, i2, null, a2) || (s2.filter = e.aB(i2), this._updateLayer(s2)));\n } else this.fire(new e.j(new Error(`Cannot filter non-existing layer \"${t4}\".`)));\n }\n getFilter(t4) {\n return e.aB(this.getLayer(t4).filter);\n }\n setLayoutProperty(t4, i2, a2, s2 = {}) {\n this._checkLoaded();\n const o2 = this.getLayer(t4);\n o2 ? e.aE(o2.getLayoutProperty(i2), a2) || (o2.setLayoutProperty(i2, a2, s2), this._updateLayer(o2)) : this.fire(new e.j(new Error(`Cannot style non-existing layer \"${t4}\".`)));\n }\n getLayoutProperty(t4, i2) {\n const a2 = this.getLayer(t4);\n if (a2) return a2.getLayoutProperty(i2);\n this.fire(new e.j(new Error(`Cannot get style of non-existing layer \"${t4}\".`)));\n }\n setPaintProperty(t4, i2, a2, s2 = {}) {\n this._checkLoaded();\n const o2 = this.getLayer(t4);\n o2 ? e.aE(o2.getPaintProperty(i2), a2) || (o2.setPaintProperty(i2, a2, s2) && this._updateLayer(o2), this._changed = true, this._updatedPaintProps[t4] = true, this._serializedLayers = null) : this.fire(new e.j(new Error(`Cannot style non-existing layer \"${t4}\".`)));\n }\n getPaintProperty(t4, e2) {\n return this.getLayer(t4).getPaintProperty(e2);\n }\n setFeatureState(t4, i2) {\n this._checkLoaded();\n const a2 = t4.source, s2 = t4.sourceLayer, o2 = this.sourceCaches[a2];\n if (void 0 === o2) return void this.fire(new e.j(new Error(`The source '${a2}' does not exist in the map's style.`)));\n const r2 = o2.getSource().type;\n \"geojson\" === r2 && s2 ? this.fire(new e.j(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))) : \"vector\" !== r2 || s2 ? (void 0 === t4.id && this.fire(new e.j(new Error(\"The feature id parameter must be provided.\"))), o2.setFeatureState(s2, t4.id, i2)) : this.fire(new e.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n }\n removeFeatureState(t4, i2) {\n this._checkLoaded();\n const a2 = t4.source, s2 = this.sourceCaches[a2];\n if (void 0 === s2) return void this.fire(new e.j(new Error(`The source '${a2}' does not exist in the map's style.`)));\n const o2 = s2.getSource().type, r2 = \"vector\" === o2 ? t4.sourceLayer : void 0;\n \"vector\" !== o2 || r2 ? i2 && \"string\" != typeof t4.id && \"number\" != typeof t4.id ? this.fire(new e.j(new Error(\"A feature id is required to remove its specific state property.\"))) : s2.removeFeatureState(r2, t4.id, i2) : this.fire(new e.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n }\n getFeatureState(t4) {\n this._checkLoaded();\n const i2 = t4.source, a2 = t4.sourceLayer, s2 = this.sourceCaches[i2];\n if (void 0 !== s2) return \"vector\" !== s2.getSource().type || a2 ? (void 0 === t4.id && this.fire(new e.j(new Error(\"The feature id parameter must be provided.\"))), s2.getFeatureState(a2, t4.id)) : void this.fire(new e.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n this.fire(new e.j(new Error(`The source '${i2}' does not exist in the map's style.`)));\n }\n getTransition() {\n return e.e({ duration: 300, delay: 0 }, this.stylesheet && this.stylesheet.transition);\n }\n serialize() {\n if (!this._loaded) return;\n const t4 = e.aF(this.sourceCaches, (t5) => t5.serialize()), i2 = this._serializeByIds(this._order, true), a2 = this.map.getTerrain() || void 0, s2 = this.stylesheet;\n return e.aG({ version: s2.version, name: s2.name, metadata: s2.metadata, light: s2.light, sky: s2.sky, center: s2.center, zoom: s2.zoom, bearing: s2.bearing, pitch: s2.pitch, sprite: s2.sprite, glyphs: s2.glyphs, transition: s2.transition, sources: t4, layers: i2, terrain: a2 }, (t5) => void 0 !== t5);\n }\n _updateLayer(t4) {\n this._updatedLayers[t4.id] = true, t4.source && !this._updatedSources[t4.source] && \"raster\" !== this.sourceCaches[t4.source].getSource().type && (this._updatedSources[t4.source] = \"reload\", this.sourceCaches[t4.source].pause()), this._serializedLayers = null, this._changed = true;\n }\n _flattenAndSortRenderedFeatures(t4) {\n const e2 = (t5) => \"fill-extrusion\" === this._layers[t5].type, i2 = {}, a2 = [];\n for (let s3 = this._order.length - 1; s3 >= 0; s3--) {\n const o2 = this._order[s3];\n if (e2(o2)) {\n i2[o2] = s3;\n for (const e3 of t4) {\n const t5 = e3[o2];\n if (t5) for (const e4 of t5) a2.push(e4);\n }\n }\n }\n a2.sort((t5, e3) => e3.intersectionZ - t5.intersectionZ);\n const s2 = [];\n for (let o2 = this._order.length - 1; o2 >= 0; o2--) {\n const r2 = this._order[o2];\n if (e2(r2)) for (let t5 = a2.length - 1; t5 >= 0; t5--) {\n const e3 = a2[t5].feature;\n if (i2[e3.layer.id] < o2) break;\n s2.push(e3), a2.pop();\n }\n else for (const e3 of t4) {\n const t5 = e3[r2];\n if (t5) for (const e4 of t5) s2.push(e4.feature);\n }\n }\n return s2;\n }\n queryRenderedFeatures(t4, i2, a2) {\n i2 && i2.filter && this._validate(e.u.filter, \"queryRenderedFeatures.filter\", i2.filter, null, i2);\n const s2 = {};\n if (i2 && i2.layers) {\n if (!Array.isArray(i2.layers)) return this.fire(new e.j(new Error(\"parameters.layers must be an Array.\"))), [];\n for (const t5 of i2.layers) {\n const i3 = this._layers[t5];\n if (!i3) return this.fire(new e.j(new Error(`The layer '${t5}' does not exist in the map's style and cannot be queried for features.`))), [];\n s2[i3.source] = true;\n }\n }\n const o2 = [];\n i2.availableImages = this._availableImages;\n const r2 = this._serializedAllLayers();\n for (const e2 in this.sourceCaches) i2.layers && !s2[e2] || o2.push(q(this.sourceCaches[e2], this._layers, r2, t4, i2, a2));\n return this.placement && o2.push(function(t5, e2, i3, a3, s3, o3, r3) {\n const n2 = {}, l2 = o3.queryRenderedSymbols(a3), h2 = [];\n for (const t6 of Object.keys(l2).map(Number)) h2.push(r3[t6]);\n h2.sort(V);\n for (const i4 of h2) {\n const a4 = i4.featureIndex.lookupSymbolFeatures(l2[i4.bucketInstanceId], e2, i4.bucketIndex, i4.sourceLayerIndex, s3.filter, s3.layers, s3.availableImages, t5);\n for (const t6 in a4) {\n const e3 = n2[t6] = n2[t6] || [], s4 = a4[t6];\n s4.sort((t7, e4) => {\n const a5 = i4.featureSortOrder;\n if (a5) {\n const i5 = a5.indexOf(t7.featureIndex);\n return a5.indexOf(e4.featureIndex) - i5;\n }\n return e4.featureIndex - t7.featureIndex;\n });\n for (const t7 of s4) e3.push(t7);\n }\n }\n for (const e3 in n2) n2[e3].forEach((a4) => {\n const s4 = a4.feature, o4 = i3[t5[e3].source].getFeatureState(s4.layer[\"source-layer\"], s4.id);\n s4.source = s4.layer.source, s4.layer[\"source-layer\"] && (s4.sourceLayer = s4.layer[\"source-layer\"]), s4.state = o4;\n });\n return n2;\n }(this._layers, r2, this.sourceCaches, t4, i2, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(o2);\n }\n querySourceFeatures(t4, i2) {\n i2 && i2.filter && this._validate(e.u.filter, \"querySourceFeatures.filter\", i2.filter, null, i2);\n const a2 = this.sourceCaches[t4];\n return a2 ? function(t5, e2) {\n const i3 = t5.getRenderableIds().map((e3) => t5.getTileByID(e3)), a3 = [], s2 = {};\n for (let t6 = 0; t6 < i3.length; t6++) {\n const o2 = i3[t6], r2 = o2.tileID.canonical.key;\n s2[r2] || (s2[r2] = true, o2.querySourceFeatures(a3, e2));\n }\n return a3;\n }(a2, i2) : [];\n }\n getLight() {\n return this.light.getLight();\n }\n setLight(t4, i2 = {}) {\n this._checkLoaded();\n const a2 = this.light.getLight();\n let s2 = false;\n for (const i3 in t4) if (!e.aE(t4[i3], a2[i3])) {\n s2 = true;\n break;\n }\n if (!s2) return;\n const r2 = { now: o.now(), transition: e.e({ duration: 300, delay: 0 }, this.stylesheet.transition) };\n this.light.setLight(t4, i2), this.light.updateTransitions(r2);\n }\n getSky() {\n var t4;\n return null === (t4 = this.stylesheet) || void 0 === t4 ? void 0 : t4.sky;\n }\n setSky(t4, i2 = {}) {\n const a2 = this.getSky();\n let s2 = false;\n if (!t4 && !a2) return;\n if (t4 && !a2) s2 = true;\n else if (!t4 && a2) s2 = true;\n else for (const i3 in t4) if (!e.aE(t4[i3], a2[i3])) {\n s2 = true;\n break;\n }\n if (!s2) return;\n const r2 = { now: o.now(), transition: e.e({ duration: 300, delay: 0 }, this.stylesheet.transition) };\n this.stylesheet.sky = t4, this.sky.setSky(t4, i2), this.sky.updateTransitions(r2);\n }\n _validate(t4, i2, a2, s2, o2 = {}) {\n return (!o2 || false !== o2.validate) && ce(this, t4.call(e.u, e.e({ key: i2, style: this.serialize(), value: a2, styleSpec: e.v }, s2)));\n }\n _remove(t4 = true) {\n this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._loadStyleRequest && (this._loadStyleRequest.abort(), this._loadStyleRequest = null), this._spriteRequest && (this._spriteRequest.abort(), this._spriteRequest = null), nt().off(st, this._rtlPluginLoaded);\n for (const t5 in this._layers) this._layers[t5].setEventedParent(null);\n for (const t5 in this.sourceCaches) {\n const e2 = this.sourceCaches[t5];\n e2.setEventedParent(null), e2.onRemove(this.map);\n }\n this.imageManager.setEventedParent(null), this.setEventedParent(null), t4 && this.dispatcher.broadcast(\"RM\", void 0), this.dispatcher.remove(t4);\n }\n _clearSource(t4) {\n this.sourceCaches[t4].clearTiles();\n }\n _reloadSource(t4) {\n this.sourceCaches[t4].resume(), this.sourceCaches[t4].reload();\n }\n _updateSources(t4) {\n for (const e2 in this.sourceCaches) this.sourceCaches[e2].update(t4, this.map.terrain);\n }\n _generateCollisionBoxes() {\n for (const t4 in this.sourceCaches) this._reloadSource(t4);\n }\n _updatePlacement(t4, e2, i2, a2, s2 = false) {\n let r2 = false, n2 = false;\n const l2 = {};\n for (const e3 of this._order) {\n const i3 = this._layers[e3];\n if (\"symbol\" !== i3.type) continue;\n if (!l2[i3.source]) {\n const t5 = this.sourceCaches[i3.source];\n l2[i3.source] = t5.getRenderableIds(true).map((e4) => t5.getTileByID(e4)).sort((t6, e4) => e4.tileID.overscaledZ - t6.tileID.overscaledZ || (t6.tileID.isLessThan(e4.tileID) ? -1 : 1));\n }\n const a3 = this.crossTileSymbolIndex.addLayer(i3, l2[i3.source], t4.center.lng);\n r2 = r2 || a3;\n }\n if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((s2 = s2 || this._layerOrderChanged || 0 === i2) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(o.now(), t4.zoom)) && (this.pauseablePlacement = new se(t4, this.map.terrain, this._order, s2, e2, i2, a2, this.placement), this._layerOrderChanged = false), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, l2), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(o.now()), n2 = true), r2 && this.pauseablePlacement.placement.setStale()), n2 || r2) for (const t5 of this._order) {\n const e3 = this._layers[t5];\n \"symbol\" === e3.type && this.placement.updateLayerOpacities(e3, l2[e3.source]);\n }\n return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(o.now());\n }\n _releaseSymbolFadeTiles() {\n for (const t4 in this.sourceCaches) this.sourceCaches[t4].releaseSymbolFadeTiles();\n }\n getImages(t4, i2) {\n return e._(this, void 0, void 0, function* () {\n const t5 = yield this.imageManager.getImages(i2.icons);\n this._updateTilesForChangedImages();\n const e2 = this.sourceCaches[i2.source];\n return e2 && e2.setDependencies(i2.tileID.key, i2.type, i2.icons), t5;\n });\n }\n getGlyphs(t4, i2) {\n return e._(this, void 0, void 0, function* () {\n const t5 = yield this.glyphManager.getGlyphs(i2.stacks), e2 = this.sourceCaches[i2.source];\n return e2 && e2.setDependencies(i2.tileID.key, i2.type, [\"\"]), t5;\n });\n }\n getGlyphsUrl() {\n return this.stylesheet.glyphs || null;\n }\n setGlyphs(t4, i2 = {}) {\n this._checkLoaded(), t4 && this._validate(e.u.glyphs, \"glyphs\", t4, null, i2) || (this._glyphsDidChange = true, this.stylesheet.glyphs = t4, this.glyphManager.entries = {}, this.glyphManager.setURL(t4));\n }\n addSprite(t4, i2, a2 = {}, s2) {\n this._checkLoaded();\n const o2 = [{ id: t4, url: i2 }], r2 = [...x(this.stylesheet.sprite), ...o2];\n this._validate(e.u.sprite, \"sprite\", r2, null, a2) || (this.stylesheet.sprite = r2, this._loadSprite(o2, true, s2));\n }\n removeSprite(t4) {\n this._checkLoaded();\n const i2 = x(this.stylesheet.sprite);\n if (i2.find((e2) => e2.id === t4)) {\n if (this._spritesImagesIds[t4]) for (const e2 of this._spritesImagesIds[t4]) this.imageManager.removeImage(e2), this._changedImages[e2] = true;\n i2.splice(i2.findIndex((e2) => e2.id === t4), 1), this.stylesheet.sprite = i2.length > 0 ? i2 : void 0, delete this._spritesImagesIds[t4], this._availableImages = this.imageManager.listImages(), this._changed = true, this.dispatcher.broadcast(\"SI\", this._availableImages), this.fire(new e.k(\"data\", { dataType: \"style\" }));\n } else this.fire(new e.j(new Error(`Sprite \"${t4}\" doesn't exists on this map.`)));\n }\n getSprite() {\n return x(this.stylesheet.sprite);\n }\n setSprite(t4, i2 = {}, a2) {\n this._checkLoaded(), t4 && this._validate(e.u.sprite, \"sprite\", t4, null, i2) || (this.stylesheet.sprite = t4, t4 ? this._loadSprite(t4, true, a2) : (this._unloadSprite(), a2 && a2(null)));\n }\n }\n var _e = e.Y([{ name: \"a_pos\", type: \"Int16\", components: 2 }]);\n const pe = { prelude: me(\"#ifdef GL_ES\\nprecision mediump float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\\n\", \"#ifdef GL_ES\\nprecision highp float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\\n#ifdef TERRAIN3D\\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\\n#endif\\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\\n#ifdef TERRAIN3D\\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\\n#else\\nreturn 1.0;\\n#endif\\n}float calculate_visibility(vec4 pos) {\\n#ifdef TERRAIN3D\\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\\n#else\\nreturn 1.0;\\n#endif\\n}float ele(vec2 pos) {\\n#ifdef TERRAIN3D\\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\\n#else\\nreturn 0.0;\\n#endif\\n}float get_elevation(vec2 pos) {\\n#ifdef TERRAIN3D\\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\\n#else\\nreturn 0.0;\\n#endif\\n}\"), background: me(\"uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"), backgroundPattern: me(\"uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\"), circle: me(\"varying vec3 v_data;varying float v_visibility;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main(void) {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}\"), clippingMask: me(\"void main() {gl_FragColor=vec4(1.0);}\", \"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"), heatmap: me(\"uniform highp float u_intensity;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main() {\\n#pragma mapbox: initialize highp float weight\\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#pragma mapbox: define mediump float radius\\nconst highp float ZERO=1.0/255.0/16.0;\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main(void) {\\n#pragma mapbox: initialize highp float weight\\n#pragma mapbox: initialize mediump float radius\\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,get_elevation(floor(a_pos*0.5)),1);gl_Position=u_matrix*pos;}\"), heatmapTexture: me(\"uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(0.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\"), collisionBox: me(\"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\", \"attribute vec2 a_anchor_pos;attribute vec2 a_placed;attribute vec2 a_box_real;uniform mat4 u_matrix;uniform vec2 u_pixel_extrude_scale;varying float v_placed;varying float v_notUsed;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}\"), collisionCircle: me(\"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\", \"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\"), debug: me(\"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\", \"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}\"), fill: me(\"#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_FragColor=color*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec2 a_pos;uniform mat4 u_matrix;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);}\"), fillOutline: me(\"varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\"), fillOutlinePattern: me(\"uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\"), fillPattern: me(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}\"), fillExtrusion: me(\"varying vec4 v_color;void main() {gl_FragColor=v_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\\n#ifdef TERRAIN3D\\nattribute vec2 a_centroid;\\n#endif\\nvarying vec4 v_color;\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp vec4 color\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp vec4 color\\nvec3 normal=a_normal_ed.xyz;\\n#ifdef TERRAIN3D\\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\\n#else\\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\\n#endif\\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}\"), fillExtrusionPattern: me(\"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\\n#ifdef TERRAIN3D\\nattribute vec2 a_centroid;\\n#endif\\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\\n#ifdef TERRAIN3D\\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\\n#else\\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\\n#endif\\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\\n? a_pos\\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}\"), hillshadePrepare: me(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"), hillshade: me(\"uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\\n#define PI 3.141592653589793\\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\"), line: me(\"uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_width2=vec2(outset,inset);}\"), lineGradient: me(\"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_width2=vec2(outset,inset);}\"), linePattern: me(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}\"), lineSDF: me(\"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}\"), raster: me(\"uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\"), symbolIcon: me(\"uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec2 v_tex;varying float v_fade_opacity;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}\"), symbolSDF: me(\"#define SDF_PX 8.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec2 v_data0;varying vec3 v_data1;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}\"), symbolTextAndIcon: me(\"#define SDF_PX 8.0\\n#define SDF 1.0\\n#define ICON 0.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec4 v_data0;varying vec4 v_data1;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}\"), terrain: me(\"uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;varying vec2 v_texture_pos;varying float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture2D(u_texture,v_texture_pos);if (v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);gl_FragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {gl_FragColor=surface_color;}}\", \"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform mat4 u_fog_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}\"), terrainDepth: me(\"varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}\", \"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}\"), terrainCoords: me(\"precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}\", \"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);}\"), sky: me(\"uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform float u_horizon;uniform float u_sky_horizon_blend;void main() {float y=gl_FragCoord.y;if (y > u_horizon) {float blend=y-u_horizon;if (blend < u_sky_horizon_blend) {gl_FragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {gl_FragColor=u_sky_color;}}}\", \"attribute vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}\") };\n function me(t4, e2) {\n const i2 = /#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g, a2 = e2.match(/attribute ([\\w]+) ([\\w]+)/g), s2 = t4.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g), o2 = e2.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g), r2 = o2 ? o2.concat(s2) : s2, n2 = {};\n return { fragmentSource: t4 = t4.replace(i2, (t5, e3, i3, a3, s3) => (n2[s3] = true, \"define\" === e3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\nvarying ${i3} ${a3} ${s3};\n#else\nuniform ${i3} ${a3} u_${s3};\n#endif\n` : `\n#ifdef HAS_UNIFORM_u_${s3}\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n`)), vertexSource: e2 = e2.replace(i2, (t5, e3, i3, a3, s3) => {\n const o3 = \"float\" === a3 ? \"vec2\" : \"vec4\", r3 = s3.match(/color/) ? \"color\" : o3;\n return n2[s3] ? \"define\" === e3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\nuniform lowp float u_${s3}_t;\nattribute ${i3} ${o3} a_${s3};\nvarying ${i3} ${a3} ${s3};\n#else\nuniform ${i3} ${a3} u_${s3};\n#endif\n` : \"vec4\" === r3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\n ${s3} = a_${s3};\n#else\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n` : `\n#ifndef HAS_UNIFORM_u_${s3}\n ${s3} = unpack_mix_${r3}(a_${s3}, u_${s3}_t);\n#else\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n` : \"define\" === e3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\nuniform lowp float u_${s3}_t;\nattribute ${i3} ${o3} a_${s3};\n#else\nuniform ${i3} ${a3} u_${s3};\n#endif\n` : \"vec4\" === r3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\n ${i3} ${a3} ${s3} = a_${s3};\n#else\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n` : `\n#ifndef HAS_UNIFORM_u_${s3}\n ${i3} ${a3} ${s3} = unpack_mix_${r3}(a_${s3}, u_${s3}_t);\n#else\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n`;\n }), staticAttributes: a2, staticUniforms: r2 };\n }\n class fe {\n constructor() {\n this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null;\n }\n bind(t4, e2, i2, a2, s2, o2, r2, n2, l2) {\n this.context = t4;\n let h2 = this.boundPaintVertexBuffers.length !== a2.length;\n for (let t5 = 0; !h2 && t5 < a2.length; t5++) this.boundPaintVertexBuffers[t5] !== a2[t5] && (h2 = true);\n !this.vao || this.boundProgram !== e2 || this.boundLayoutVertexBuffer !== i2 || h2 || this.boundIndexBuffer !== s2 || this.boundVertexOffset !== o2 || this.boundDynamicVertexBuffer !== r2 || this.boundDynamicVertexBuffer2 !== n2 || this.boundDynamicVertexBuffer3 !== l2 ? this.freshBind(e2, i2, a2, s2, o2, r2, n2, l2) : (t4.bindVertexArray.set(this.vao), r2 && r2.bind(), s2 && s2.dynamicDraw && s2.bind(), n2 && n2.bind(), l2 && l2.bind());\n }\n freshBind(t4, e2, i2, a2, s2, o2, r2, n2) {\n const l2 = t4.numAttributes, h2 = this.context, c2 = h2.gl;\n this.vao && this.destroy(), this.vao = h2.createVertexArray(), h2.bindVertexArray.set(this.vao), this.boundProgram = t4, this.boundLayoutVertexBuffer = e2, this.boundPaintVertexBuffers = i2, this.boundIndexBuffer = a2, this.boundVertexOffset = s2, this.boundDynamicVertexBuffer = o2, this.boundDynamicVertexBuffer2 = r2, this.boundDynamicVertexBuffer3 = n2, e2.enableAttributes(c2, t4);\n for (const e3 of i2) e3.enableAttributes(c2, t4);\n o2 && o2.enableAttributes(c2, t4), r2 && r2.enableAttributes(c2, t4), n2 && n2.enableAttributes(c2, t4), e2.bind(), e2.setVertexAttribPointers(c2, t4, s2);\n for (const e3 of i2) e3.bind(), e3.setVertexAttribPointers(c2, t4, s2);\n o2 && (o2.bind(), o2.setVertexAttribPointers(c2, t4, s2)), a2 && a2.bind(), r2 && (r2.bind(), r2.setVertexAttribPointers(c2, t4, s2)), n2 && (n2.bind(), n2.setVertexAttribPointers(c2, t4, s2)), h2.currentNumAttributes = l2;\n }\n destroy() {\n this.vao && (this.context.deleteVertexArray(this.vao), this.vao = null);\n }\n }\n const ge = (t4, i2, a2, s2, o2) => ({ u_matrix: t4, u_texture: 0, u_ele_delta: i2, u_fog_matrix: a2, u_fog_color: s2 ? s2.properties.get(\"fog-color\") : e.aM.white, u_fog_ground_blend: s2 ? s2.properties.get(\"fog-ground-blend\") : 1, u_fog_ground_blend_opacity: s2 ? s2.calculateFogBlendOpacity(o2) : 0, u_horizon_color: s2 ? s2.properties.get(\"horizon-color\") : e.aM.white, u_horizon_fog_blend: s2 ? s2.properties.get(\"horizon-fog-blend\") : 1 });\n function ve(t4) {\n const e2 = [];\n for (let i2 = 0; i2 < t4.length; i2++) {\n if (null === t4[i2]) continue;\n const a2 = t4[i2].split(\" \");\n e2.push(a2.pop());\n }\n return e2;\n }\n class xe {\n constructor(t4, i2, a2, s2, o2, r2) {\n const n2 = t4.gl;\n this.program = n2.createProgram();\n const l2 = ve(i2.staticAttributes), h2 = a2 ? a2.getBinderAttributes() : [], c2 = l2.concat(h2), u2 = pe.prelude.staticUniforms ? ve(pe.prelude.staticUniforms) : [], d2 = i2.staticUniforms ? ve(i2.staticUniforms) : [], _2 = a2 ? a2.getBinderUniforms() : [], p2 = u2.concat(d2).concat(_2), m2 = [];\n for (const t5 of p2) m2.indexOf(t5) < 0 && m2.push(t5);\n const f2 = a2 ? a2.defines() : [];\n o2 && f2.push(\"#define OVERDRAW_INSPECTOR;\"), r2 && f2.push(\"#define TERRAIN3D;\");\n const g2 = f2.concat(pe.prelude.fragmentSource, i2.fragmentSource).join(\"\\n\"), v2 = f2.concat(pe.prelude.vertexSource, i2.vertexSource).join(\"\\n\"), x2 = n2.createShader(n2.FRAGMENT_SHADER);\n if (n2.isContextLost()) return void (this.failedToCreate = true);\n if (n2.shaderSource(x2, g2), n2.compileShader(x2), !n2.getShaderParameter(x2, n2.COMPILE_STATUS)) throw new Error(`Could not compile fragment shader: ${n2.getShaderInfoLog(x2)}`);\n n2.attachShader(this.program, x2);\n const y2 = n2.createShader(n2.VERTEX_SHADER);\n if (n2.isContextLost()) return void (this.failedToCreate = true);\n if (n2.shaderSource(y2, v2), n2.compileShader(y2), !n2.getShaderParameter(y2, n2.COMPILE_STATUS)) throw new Error(`Could not compile vertex shader: ${n2.getShaderInfoLog(y2)}`);\n n2.attachShader(this.program, y2), this.attributes = {};\n const b2 = {};\n this.numAttributes = c2.length;\n for (let t5 = 0; t5 < this.numAttributes; t5++) c2[t5] && (n2.bindAttribLocation(this.program, t5, c2[t5]), this.attributes[c2[t5]] = t5);\n if (n2.linkProgram(this.program), !n2.getProgramParameter(this.program, n2.LINK_STATUS)) throw new Error(`Program failed to link: ${n2.getProgramInfoLog(this.program)}`);\n n2.deleteShader(y2), n2.deleteShader(x2);\n for (let t5 = 0; t5 < m2.length; t5++) {\n const e2 = m2[t5];\n if (e2 && !b2[e2]) {\n const t6 = n2.getUniformLocation(this.program, e2);\n t6 && (b2[e2] = t6);\n }\n }\n this.fixedUniforms = s2(t4, b2), this.terrainUniforms = ((t5, i3) => ({ u_depth: new e.aH(t5, i3.u_depth), u_terrain: new e.aH(t5, i3.u_terrain), u_terrain_dim: new e.aI(t5, i3.u_terrain_dim), u_terrain_matrix: new e.aJ(t5, i3.u_terrain_matrix), u_terrain_unpack: new e.aK(t5, i3.u_terrain_unpack), u_terrain_exaggeration: new e.aI(t5, i3.u_terrain_exaggeration) }))(t4, b2), this.binderUniforms = a2 ? a2.getUniforms(t4, b2) : [];\n }\n draw(t4, e2, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2, f2, g2) {\n const v2 = t4.gl;\n if (this.failedToCreate) return;\n if (t4.program.set(this.program), t4.setDepthMode(i2), t4.setStencilMode(a2), t4.setColorMode(s2), t4.setCullFace(o2), n2) {\n t4.activeTexture.set(v2.TEXTURE2), v2.bindTexture(v2.TEXTURE_2D, n2.depthTexture), t4.activeTexture.set(v2.TEXTURE3), v2.bindTexture(v2.TEXTURE_2D, n2.texture);\n for (const t5 in this.terrainUniforms) this.terrainUniforms[t5].set(n2[t5]);\n }\n for (const t5 in this.fixedUniforms) this.fixedUniforms[t5].set(r2[t5]);\n p2 && p2.setUniforms(t4, this.binderUniforms, d2, { zoom: _2 });\n let x2 = 0;\n switch (e2) {\n case v2.LINES:\n x2 = 2;\n break;\n case v2.TRIANGLES:\n x2 = 3;\n break;\n case v2.LINE_STRIP:\n x2 = 1;\n }\n for (const i3 of u2.get()) {\n const a3 = i3.vaos || (i3.vaos = {});\n (a3[l2] || (a3[l2] = new fe())).bind(t4, this, h2, p2 ? p2.getPaintVertexBuffers() : [], c2, i3.vertexOffset, m2, f2, g2), v2.drawElements(e2, i3.primitiveLength * x2, v2.UNSIGNED_SHORT, i3.primitiveOffset * x2 * 2);\n }\n }\n }\n function ye(t4, e2, i2) {\n const a2 = 1 / Bt(i2, 1, e2.transform.tileZoom), s2 = Math.pow(2, i2.tileID.overscaledZ), o2 = i2.tileSize * Math.pow(2, e2.transform.tileZoom) / s2, r2 = o2 * (i2.tileID.canonical.x + i2.tileID.wrap * s2), n2 = o2 * i2.tileID.canonical.y;\n return { u_image: 0, u_texsize: i2.imageAtlasTexture.size, u_scale: [a2, t4.fromScale, t4.toScale], u_fade: t4.t, u_pixel_coord_upper: [r2 >> 16, n2 >> 16], u_pixel_coord_lower: [65535 & r2, 65535 & n2] };\n }\n const be = (t4, i2, a2, s2) => {\n const o2 = i2.style.light, r2 = o2.properties.get(\"position\"), n2 = [r2.x, r2.y, r2.z], l2 = function() {\n var t5 = new e.A(9);\n return e.A != Float32Array && (t5[1] = 0, t5[2] = 0, t5[3] = 0, t5[5] = 0, t5[6] = 0, t5[7] = 0), t5[0] = 1, t5[4] = 1, t5[8] = 1, t5;\n }();\n \"viewport\" === o2.properties.get(\"anchor\") && function(t5, e2) {\n var i3 = Math.sin(e2), a3 = Math.cos(e2);\n t5[0] = a3, t5[1] = i3, t5[2] = 0, t5[3] = -i3, t5[4] = a3, t5[5] = 0, t5[6] = 0, t5[7] = 0, t5[8] = 1;\n }(l2, -i2.transform.angle), function(t5, e2, i3) {\n var a3 = e2[0], s3 = e2[1], o3 = e2[2];\n t5[0] = a3 * i3[0] + s3 * i3[3] + o3 * i3[6], t5[1] = a3 * i3[1] + s3 * i3[4] + o3 * i3[7], t5[2] = a3 * i3[2] + s3 * i3[5] + o3 * i3[8];\n }(n2, n2, l2);\n const h2 = o2.properties.get(\"color\");\n return { u_matrix: t4, u_lightpos: n2, u_lightintensity: o2.properties.get(\"intensity\"), u_lightcolor: [h2.r, h2.g, h2.b], u_vertical_gradient: +a2, u_opacity: s2 };\n }, we = (t4, i2, a2, s2, o2, r2, n2) => e.e(be(t4, i2, a2, s2), ye(r2, i2, n2), { u_height_factor: -Math.pow(2, o2.overscaledZ) / n2.tileSize / 8 }), Te = (t4) => ({ u_matrix: t4 }), Ie = (t4, i2, a2, s2) => e.e(Te(t4), ye(a2, i2, s2)), Ee = (t4, e2) => ({ u_matrix: t4, u_world: e2 }), Pe = (t4, i2, a2, s2, o2) => e.e(Ie(t4, i2, a2, s2), { u_world: o2 }), Ce = (t4, e2, i2, a2) => {\n const s2 = t4.transform;\n let o2, r2;\n if (\"map\" === a2.paint.get(\"circle-pitch-alignment\")) {\n const t5 = Bt(i2, 1, s2.zoom);\n o2 = true, r2 = [t5, t5];\n } else o2 = false, r2 = s2.pixelsToGLUnits;\n return { u_camera_to_center_distance: s2.cameraToCenterDistance, u_scale_with_map: +(\"map\" === a2.paint.get(\"circle-pitch-scale\")), u_matrix: t4.translatePosMatrix(e2.posMatrix, i2, a2.paint.get(\"circle-translate\"), a2.paint.get(\"circle-translate-anchor\")), u_pitch_with_map: +o2, u_device_pixel_ratio: t4.pixelRatio, u_extrude_scale: r2 };\n }, Se = (t4, e2, i2) => ({ u_matrix: t4, u_inv_matrix: e2, u_camera_to_center_distance: i2.cameraToCenterDistance, u_viewport_size: [i2.width, i2.height] }), ze = (t4, e2, i2 = 1) => ({ u_matrix: t4, u_color: e2, u_overlay: 0, u_overlay_scale: i2 }), De = (t4) => ({ u_matrix: t4 }), Me = (t4, e2, i2, a2) => ({ u_matrix: t4, u_extrude_scale: Bt(e2, 1, i2), u_intensity: a2 }), Ae = (t4, i2, a2, s2) => {\n const o2 = e.H();\n e.aP(o2, 0, t4.width, t4.height, 0, 0, 1);\n const r2 = t4.context.gl;\n return { u_matrix: o2, u_world: [r2.drawingBufferWidth, r2.drawingBufferHeight], u_image: a2, u_color_ramp: s2, u_opacity: i2.paint.get(\"heatmap-opacity\") };\n };\n function Re(t4, i2) {\n const a2 = Math.pow(2, i2.canonical.z), s2 = i2.canonical.y;\n return [new e.Z(0, s2 / a2).toLngLat().lat, new e.Z(0, (s2 + 1) / a2).toLngLat().lat];\n }\n const ke = (t4, e2, i2, a2) => {\n const s2 = t4.transform;\n return { u_matrix: Ne(t4, e2, i2, a2), u_ratio: 1 / Bt(e2, 1, s2.zoom), u_device_pixel_ratio: t4.pixelRatio, u_units_to_pixels: [1 / s2.pixelsToGLUnits[0], 1 / s2.pixelsToGLUnits[1]] };\n }, Le = (t4, i2, a2, s2, o2) => e.e(ke(t4, i2, a2, o2), { u_image: 0, u_image_height: s2 }), Fe = (t4, e2, i2, a2, s2) => {\n const o2 = t4.transform, r2 = Oe(e2, o2);\n return { u_matrix: Ne(t4, e2, i2, s2), u_texsize: e2.imageAtlasTexture.size, u_ratio: 1 / Bt(e2, 1, o2.zoom), u_device_pixel_ratio: t4.pixelRatio, u_image: 0, u_scale: [r2, a2.fromScale, a2.toScale], u_fade: a2.t, u_units_to_pixels: [1 / o2.pixelsToGLUnits[0], 1 / o2.pixelsToGLUnits[1]] };\n }, Be = (t4, i2, a2, s2, o2, r2) => {\n const n2 = t4.lineAtlas, l2 = Oe(i2, t4.transform), h2 = \"round\" === a2.layout.get(\"line-cap\"), c2 = n2.getDash(s2.from, h2), u2 = n2.getDash(s2.to, h2), d2 = c2.width * o2.fromScale, _2 = u2.width * o2.toScale;\n return e.e(ke(t4, i2, a2, r2), { u_patternscale_a: [l2 / d2, -c2.height / 2], u_patternscale_b: [l2 / _2, -u2.height / 2], u_sdfgamma: n2.width / (256 * Math.min(d2, _2) * t4.pixelRatio) / 2, u_image: 0, u_tex_y_a: c2.y, u_tex_y_b: u2.y, u_mix: o2.t });\n };\n function Oe(t4, e2) {\n return 1 / Bt(t4, 1, e2.tileZoom);\n }\n function Ne(t4, e2, i2, a2) {\n return t4.translatePosMatrix(a2 ? a2.posMatrix : e2.tileID.posMatrix, e2, i2.paint.get(\"line-translate\"), i2.paint.get(\"line-translate-anchor\"));\n }\n const Ue = (t4, e2, i2, a2, s2) => {\n return { u_matrix: t4, u_tl_parent: e2, u_scale_parent: i2, u_buffer_scale: 1, u_fade_t: a2.mix, u_opacity: a2.opacity * s2.paint.get(\"raster-opacity\"), u_image0: 0, u_image1: 1, u_brightness_low: s2.paint.get(\"raster-brightness-min\"), u_brightness_high: s2.paint.get(\"raster-brightness-max\"), u_saturation_factor: (r2 = s2.paint.get(\"raster-saturation\"), r2 > 0 ? 1 - 1 / (1.001 - r2) : -r2), u_contrast_factor: (o2 = s2.paint.get(\"raster-contrast\"), o2 > 0 ? 1 / (1 - o2) : 1 + o2), u_spin_weights: je(s2.paint.get(\"raster-hue-rotate\")) };\n var o2, r2;\n };\n function je(t4) {\n t4 *= Math.PI / 180;\n const e2 = Math.sin(t4), i2 = Math.cos(t4);\n return [(2 * i2 + 1) / 3, (-Math.sqrt(3) * e2 - i2 + 1) / 3, (Math.sqrt(3) * e2 - i2 + 1) / 3];\n }\n const Ze = (t4, e2, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2) => {\n const p2 = r2.transform;\n return { u_is_size_zoom_constant: +(\"constant\" === t4 || \"source\" === t4), u_is_size_feature_constant: +(\"constant\" === t4 || \"camera\" === t4), u_size_t: e2 ? e2.uSizeT : 0, u_size: e2 ? e2.uSize : 0, u_camera_to_center_distance: p2.cameraToCenterDistance, u_pitch: p2.pitch / 360 * 2 * Math.PI, u_rotate_symbol: +i2, u_aspect_ratio: p2.width / p2.height, u_fade_change: r2.options.fadeDuration ? r2.symbolFadeChange : 1, u_matrix: n2, u_label_plane_matrix: l2, u_coord_matrix: h2, u_is_text: +u2, u_pitch_with_map: +a2, u_is_along_line: s2, u_is_variable_anchor: o2, u_texsize: d2, u_texture: 0, u_translation: c2, u_pitched_scale: _2 };\n }, qe = (t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2) => {\n const f2 = n2.transform;\n return e.e(Ze(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, m2), { u_gamma_scale: s2 ? Math.cos(f2._pitch) * f2.cameraToCenterDistance : 1, u_device_pixel_ratio: n2.pixelRatio, u_is_halo: +p2 });\n }, Ve = (t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2) => e.e(qe(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, true, d2, true, p2), { u_texsize_icon: _2, u_texture_icon: 1 }), Ge = (t4, e2, i2) => ({ u_matrix: t4, u_opacity: e2, u_color: i2 }), He = (t4, i2, a2, s2, o2, r2) => e.e(function(t5, e2, i3, a3) {\n const s3 = i3.imageManager.getPattern(t5.from.toString()), o3 = i3.imageManager.getPattern(t5.to.toString()), { width: r3, height: n2 } = i3.imageManager.getPixelSize(), l2 = Math.pow(2, a3.tileID.overscaledZ), h2 = a3.tileSize * Math.pow(2, i3.transform.tileZoom) / l2, c2 = h2 * (a3.tileID.canonical.x + a3.tileID.wrap * l2), u2 = h2 * a3.tileID.canonical.y;\n return { u_image: 0, u_pattern_tl_a: s3.tl, u_pattern_br_a: s3.br, u_pattern_tl_b: o3.tl, u_pattern_br_b: o3.br, u_texsize: [r3, n2], u_mix: e2.t, u_pattern_size_a: s3.displaySize, u_pattern_size_b: o3.displaySize, u_scale_a: e2.fromScale, u_scale_b: e2.toScale, u_tile_units_to_pixels: 1 / Bt(a3, 1, i3.transform.tileZoom), u_pixel_coord_upper: [c2 >> 16, u2 >> 16], u_pixel_coord_lower: [65535 & c2, 65535 & u2] };\n }(s2, r2, a2, o2), { u_matrix: t4, u_opacity: i2 }), We = { fillExtrusion: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_lightpos: new e.aN(t4, i2.u_lightpos), u_lightintensity: new e.aI(t4, i2.u_lightintensity), u_lightcolor: new e.aN(t4, i2.u_lightcolor), u_vertical_gradient: new e.aI(t4, i2.u_vertical_gradient), u_opacity: new e.aI(t4, i2.u_opacity) }), fillExtrusionPattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_lightpos: new e.aN(t4, i2.u_lightpos), u_lightintensity: new e.aI(t4, i2.u_lightintensity), u_lightcolor: new e.aN(t4, i2.u_lightcolor), u_vertical_gradient: new e.aI(t4, i2.u_vertical_gradient), u_height_factor: new e.aI(t4, i2.u_height_factor), u_image: new e.aH(t4, i2.u_image), u_texsize: new e.aO(t4, i2.u_texsize), u_pixel_coord_upper: new e.aO(t4, i2.u_pixel_coord_upper), u_pixel_coord_lower: new e.aO(t4, i2.u_pixel_coord_lower), u_scale: new e.aN(t4, i2.u_scale), u_fade: new e.aI(t4, i2.u_fade), u_opacity: new e.aI(t4, i2.u_opacity) }), fill: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix) }), fillPattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_image: new e.aH(t4, i2.u_image), u_texsize: new e.aO(t4, i2.u_texsize), u_pixel_coord_upper: new e.aO(t4, i2.u_pixel_coord_upper), u_pixel_coord_lower: new e.aO(t4, i2.u_pixel_coord_lower), u_scale: new e.aN(t4, i2.u_scale), u_fade: new e.aI(t4, i2.u_fade) }), fillOutline: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_world: new e.aO(t4, i2.u_world) }), fillOutlinePattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_world: new e.aO(t4, i2.u_world), u_image: new e.aH(t4, i2.u_image), u_texsize: new e.aO(t4, i2.u_texsize), u_pixel_coord_upper: new e.aO(t4, i2.u_pixel_coord_upper), u_pixel_coord_lower: new e.aO(t4, i2.u_pixel_coord_lower), u_scale: new e.aN(t4, i2.u_scale), u_fade: new e.aI(t4, i2.u_fade) }), circle: (t4, i2) => ({ u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_scale_with_map: new e.aH(t4, i2.u_scale_with_map), u_pitch_with_map: new e.aH(t4, i2.u_pitch_with_map), u_extrude_scale: new e.aO(t4, i2.u_extrude_scale), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_matrix: new e.aJ(t4, i2.u_matrix) }), collisionBox: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_pixel_extrude_scale: new e.aO(t4, i2.u_pixel_extrude_scale) }), collisionCircle: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_inv_matrix: new e.aJ(t4, i2.u_inv_matrix), u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_viewport_size: new e.aO(t4, i2.u_viewport_size) }), debug: (t4, i2) => ({ u_color: new e.aL(t4, i2.u_color), u_matrix: new e.aJ(t4, i2.u_matrix), u_overlay: new e.aH(t4, i2.u_overlay), u_overlay_scale: new e.aI(t4, i2.u_overlay_scale) }), clippingMask: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix) }), heatmap: (t4, i2) => ({ u_extrude_scale: new e.aI(t4, i2.u_extrude_scale), u_intensity: new e.aI(t4, i2.u_intensity), u_matrix: new e.aJ(t4, i2.u_matrix) }), heatmapTexture: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_world: new e.aO(t4, i2.u_world), u_image: new e.aH(t4, i2.u_image), u_color_ramp: new e.aH(t4, i2.u_color_ramp), u_opacity: new e.aI(t4, i2.u_opacity) }), hillshade: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_image: new e.aH(t4, i2.u_image), u_latrange: new e.aO(t4, i2.u_latrange), u_light: new e.aO(t4, i2.u_light), u_shadow: new e.aL(t4, i2.u_shadow), u_highlight: new e.aL(t4, i2.u_highlight), u_accent: new e.aL(t4, i2.u_accent) }), hillshadePrepare: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_image: new e.aH(t4, i2.u_image), u_dimension: new e.aO(t4, i2.u_dimension), u_zoom: new e.aI(t4, i2.u_zoom), u_unpack: new e.aK(t4, i2.u_unpack) }), line: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_ratio: new e.aI(t4, i2.u_ratio), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_units_to_pixels: new e.aO(t4, i2.u_units_to_pixels) }), lineGradient: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_ratio: new e.aI(t4, i2.u_ratio), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_units_to_pixels: new e.aO(t4, i2.u_units_to_pixels), u_image: new e.aH(t4, i2.u_image), u_image_height: new e.aI(t4, i2.u_image_height) }), linePattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_texsize: new e.aO(t4, i2.u_texsize), u_ratio: new e.aI(t4, i2.u_ratio), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_image: new e.aH(t4, i2.u_image), u_units_to_pixels: new e.aO(t4, i2.u_units_to_pixels), u_scale: new e.aN(t4, i2.u_scale), u_fade: new e.aI(t4, i2.u_fade) }), lineSDF: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_ratio: new e.aI(t4, i2.u_ratio), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_units_to_pixels: new e.aO(t4, i2.u_units_to_pixels), u_patternscale_a: new e.aO(t4, i2.u_patternscale_a), u_patternscale_b: new e.aO(t4, i2.u_patternscale_b), u_sdfgamma: new e.aI(t4, i2.u_sdfgamma), u_image: new e.aH(t4, i2.u_image), u_tex_y_a: new e.aI(t4, i2.u_tex_y_a), u_tex_y_b: new e.aI(t4, i2.u_tex_y_b), u_mix: new e.aI(t4, i2.u_mix) }), raster: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_tl_parent: new e.aO(t4, i2.u_tl_parent), u_scale_parent: new e.aI(t4, i2.u_scale_parent), u_buffer_scale: new e.aI(t4, i2.u_buffer_scale), u_fade_t: new e.aI(t4, i2.u_fade_t), u_opacity: new e.aI(t4, i2.u_opacity), u_image0: new e.aH(t4, i2.u_image0), u_image1: new e.aH(t4, i2.u_image1), u_brightness_low: new e.aI(t4, i2.u_brightness_low), u_brightness_high: new e.aI(t4, i2.u_brightness_high), u_saturation_factor: new e.aI(t4, i2.u_saturation_factor), u_contrast_factor: new e.aI(t4, i2.u_contrast_factor), u_spin_weights: new e.aN(t4, i2.u_spin_weights) }), symbolIcon: (t4, i2) => ({ u_is_size_zoom_constant: new e.aH(t4, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new e.aH(t4, i2.u_is_size_feature_constant), u_size_t: new e.aI(t4, i2.u_size_t), u_size: new e.aI(t4, i2.u_size), u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_pitch: new e.aI(t4, i2.u_pitch), u_rotate_symbol: new e.aH(t4, i2.u_rotate_symbol), u_aspect_ratio: new e.aI(t4, i2.u_aspect_ratio), u_fade_change: new e.aI(t4, i2.u_fade_change), u_matrix: new e.aJ(t4, i2.u_matrix), u_label_plane_matrix: new e.aJ(t4, i2.u_label_plane_matrix), u_coord_matrix: new e.aJ(t4, i2.u_coord_matrix), u_is_text: new e.aH(t4, i2.u_is_text), u_pitch_with_map: new e.aH(t4, i2.u_pitch_with_map), u_is_along_line: new e.aH(t4, i2.u_is_along_line), u_is_variable_anchor: new e.aH(t4, i2.u_is_variable_anchor), u_texsize: new e.aO(t4, i2.u_texsize), u_texture: new e.aH(t4, i2.u_texture), u_translation: new e.aO(t4, i2.u_translation), u_pitched_scale: new e.aI(t4, i2.u_pitched_scale) }), symbolSDF: (t4, i2) => ({ u_is_size_zoom_constant: new e.aH(t4, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new e.aH(t4, i2.u_is_size_feature_constant), u_size_t: new e.aI(t4, i2.u_size_t), u_size: new e.aI(t4, i2.u_size), u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_pitch: new e.aI(t4, i2.u_pitch), u_rotate_symbol: new e.aH(t4, i2.u_rotate_symbol), u_aspect_ratio: new e.aI(t4, i2.u_aspect_ratio), u_fade_change: new e.aI(t4, i2.u_fade_change), u_matrix: new e.aJ(t4, i2.u_matrix), u_label_plane_matrix: new e.aJ(t4, i2.u_label_plane_matrix), u_coord_matrix: new e.aJ(t4, i2.u_coord_matrix), u_is_text: new e.aH(t4, i2.u_is_text), u_pitch_with_map: new e.aH(t4, i2.u_pitch_with_map), u_is_along_line: new e.aH(t4, i2.u_is_along_line), u_is_variable_anchor: new e.aH(t4, i2.u_is_variable_anchor), u_texsize: new e.aO(t4, i2.u_texsize), u_texture: new e.aH(t4, i2.u_texture), u_gamma_scale: new e.aI(t4, i2.u_gamma_scale), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_is_halo: new e.aH(t4, i2.u_is_halo), u_translation: new e.aO(t4, i2.u_translation), u_pitched_scale: new e.aI(t4, i2.u_pitched_scale) }), symbolTextAndIcon: (t4, i2) => ({ u_is_size_zoom_constant: new e.aH(t4, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new e.aH(t4, i2.u_is_size_feature_constant), u_size_t: new e.aI(t4, i2.u_size_t), u_size: new e.aI(t4, i2.u_size), u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_pitch: new e.aI(t4, i2.u_pitch), u_rotate_symbol: new e.aH(t4, i2.u_rotate_symbol), u_aspect_ratio: new e.aI(t4, i2.u_aspect_ratio), u_fade_change: new e.aI(t4, i2.u_fade_change), u_matrix: new e.aJ(t4, i2.u_matrix), u_label_plane_matrix: new e.aJ(t4, i2.u_label_plane_matrix), u_coord_matrix: new e.aJ(t4, i2.u_coord_matrix), u_is_text: new e.aH(t4, i2.u_is_text), u_pitch_with_map: new e.aH(t4, i2.u_pitch_with_map), u_is_along_line: new e.aH(t4, i2.u_is_along_line), u_is_variable_anchor: new e.aH(t4, i2.u_is_variable_anchor), u_texsize: new e.aO(t4, i2.u_texsize), u_texsize_icon: new e.aO(t4, i2.u_texsize_icon), u_texture: new e.aH(t4, i2.u_texture), u_texture_icon: new e.aH(t4, i2.u_texture_icon), u_gamma_scale: new e.aI(t4, i2.u_gamma_scale), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_is_halo: new e.aH(t4, i2.u_is_halo), u_translation: new e.aO(t4, i2.u_translation), u_pitched_scale: new e.aI(t4, i2.u_pitched_scale) }), background: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_opacity: new e.aI(t4, i2.u_opacity), u_color: new e.aL(t4, i2.u_color) }), backgroundPattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_opacity: new e.aI(t4, i2.u_opacity), u_image: new e.aH(t4, i2.u_image), u_pattern_tl_a: new e.aO(t4, i2.u_pattern_tl_a), u_pattern_br_a: new e.aO(t4, i2.u_pattern_br_a), u_pattern_tl_b: new e.aO(t4, i2.u_pattern_tl_b), u_pattern_br_b: new e.aO(t4, i2.u_pattern_br_b), u_texsize: new e.aO(t4, i2.u_texsize), u_mix: new e.aI(t4, i2.u_mix), u_pattern_size_a: new e.aO(t4, i2.u_pattern_size_a), u_pattern_size_b: new e.aO(t4, i2.u_pattern_size_b), u_scale_a: new e.aI(t4, i2.u_scale_a), u_scale_b: new e.aI(t4, i2.u_scale_b), u_pixel_coord_upper: new e.aO(t4, i2.u_pixel_coord_upper), u_pixel_coord_lower: new e.aO(t4, i2.u_pixel_coord_lower), u_tile_units_to_pixels: new e.aI(t4, i2.u_tile_units_to_pixels) }), terrain: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_texture: new e.aH(t4, i2.u_texture), u_ele_delta: new e.aI(t4, i2.u_ele_delta), u_fog_matrix: new e.aJ(t4, i2.u_fog_matrix), u_fog_color: new e.aL(t4, i2.u_fog_color), u_fog_ground_blend: new e.aI(t4, i2.u_fog_ground_blend), u_fog_ground_blend_opacity: new e.aI(t4, i2.u_fog_ground_blend_opacity), u_horizon_color: new e.aL(t4, i2.u_horizon_color), u_horizon_fog_blend: new e.aI(t4, i2.u_horizon_fog_blend) }), terrainDepth: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_ele_delta: new e.aI(t4, i2.u_ele_delta) }), terrainCoords: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_texture: new e.aH(t4, i2.u_texture), u_terrain_coords_id: new e.aI(t4, i2.u_terrain_coords_id), u_ele_delta: new e.aI(t4, i2.u_ele_delta) }), sky: (t4, i2) => ({ u_sky_color: new e.aL(t4, i2.u_sky_color), u_horizon_color: new e.aL(t4, i2.u_horizon_color), u_horizon: new e.aI(t4, i2.u_horizon), u_sky_horizon_blend: new e.aI(t4, i2.u_sky_horizon_blend) }) };\n class $e {\n constructor(t4, e2, i2) {\n this.context = t4;\n const a2 = t4.gl;\n this.buffer = a2.createBuffer(), this.dynamicDraw = Boolean(i2), this.context.unbindVAO(), t4.bindElementBuffer.set(this.buffer), a2.bufferData(a2.ELEMENT_ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? a2.DYNAMIC_DRAW : a2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer;\n }\n bind() {\n this.context.bindElementBuffer.set(this.buffer);\n }\n updateData(t4) {\n const e2 = this.context.gl;\n if (!this.dynamicDraw) throw new Error(\"Attempted to update data while not in dynamic mode.\");\n this.context.unbindVAO(), this.bind(), e2.bufferSubData(e2.ELEMENT_ARRAY_BUFFER, 0, t4.arrayBuffer);\n }\n destroy() {\n this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer);\n }\n }\n const Xe = { Int8: \"BYTE\", Uint8: \"UNSIGNED_BYTE\", Int16: \"SHORT\", Uint16: \"UNSIGNED_SHORT\", Int32: \"INT\", Uint32: \"UNSIGNED_INT\", Float32: \"FLOAT\" };\n class Ke {\n constructor(t4, e2, i2, a2) {\n this.length = e2.length, this.attributes = i2, this.itemSize = e2.bytesPerElement, this.dynamicDraw = a2, this.context = t4;\n const s2 = t4.gl;\n this.buffer = s2.createBuffer(), t4.bindVertexBuffer.set(this.buffer), s2.bufferData(s2.ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? s2.DYNAMIC_DRAW : s2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer;\n }\n bind() {\n this.context.bindVertexBuffer.set(this.buffer);\n }\n updateData(t4) {\n if (t4.length !== this.length) throw new Error(`Length of new data is ${t4.length}, which doesn't match current length of ${this.length}`);\n const e2 = this.context.gl;\n this.bind(), e2.bufferSubData(e2.ARRAY_BUFFER, 0, t4.arrayBuffer);\n }\n enableAttributes(t4, e2) {\n for (let i2 = 0; i2 < this.attributes.length; i2++) {\n const a2 = e2.attributes[this.attributes[i2].name];\n void 0 !== a2 && t4.enableVertexAttribArray(a2);\n }\n }\n setVertexAttribPointers(t4, e2, i2) {\n for (let a2 = 0; a2 < this.attributes.length; a2++) {\n const s2 = this.attributes[a2], o2 = e2.attributes[s2.name];\n void 0 !== o2 && t4.vertexAttribPointer(o2, s2.components, t4[Xe[s2.type]], false, this.itemSize, s2.offset + this.itemSize * (i2 || 0));\n }\n }\n destroy() {\n this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer);\n }\n }\n const Je = /* @__PURE__ */ new WeakMap();\n function Ye(t4) {\n var e2;\n if (Je.has(t4)) return Je.get(t4);\n {\n const i2 = null === (e2 = t4.getParameter(t4.VERSION)) || void 0 === e2 ? void 0 : e2.startsWith(\"WebGL 2.0\");\n return Je.set(t4, i2), i2;\n }\n }\n class Qe {\n constructor(t4) {\n this.gl = t4.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = false;\n }\n get() {\n return this.current;\n }\n set(t4) {\n }\n getDefault() {\n return this.default;\n }\n setDefault() {\n this.set(this.default);\n }\n }\n class ti extends Qe {\n getDefault() {\n return e.aM.transparent;\n }\n set(t4) {\n const e2 = this.current;\n (t4.r !== e2.r || t4.g !== e2.g || t4.b !== e2.b || t4.a !== e2.a || this.dirty) && (this.gl.clearColor(t4.r, t4.g, t4.b, t4.a), this.current = t4, this.dirty = false);\n }\n }\n class ei extends Qe {\n getDefault() {\n return 1;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.clearDepth(t4), this.current = t4, this.dirty = false);\n }\n }\n class ii extends Qe {\n getDefault() {\n return 0;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.clearStencil(t4), this.current = t4, this.dirty = false);\n }\n }\n class ai extends Qe {\n getDefault() {\n return [true, true, true, true];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || t4[2] !== e2[2] || t4[3] !== e2[3] || this.dirty) && (this.gl.colorMask(t4[0], t4[1], t4[2], t4[3]), this.current = t4, this.dirty = false);\n }\n }\n class si extends Qe {\n getDefault() {\n return true;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.depthMask(t4), this.current = t4, this.dirty = false);\n }\n }\n class oi extends Qe {\n getDefault() {\n return 255;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.stencilMask(t4), this.current = t4, this.dirty = false);\n }\n }\n class ri extends Qe {\n getDefault() {\n return { func: this.gl.ALWAYS, ref: 0, mask: 255 };\n }\n set(t4) {\n const e2 = this.current;\n (t4.func !== e2.func || t4.ref !== e2.ref || t4.mask !== e2.mask || this.dirty) && (this.gl.stencilFunc(t4.func, t4.ref, t4.mask), this.current = t4, this.dirty = false);\n }\n }\n class ni extends Qe {\n getDefault() {\n const t4 = this.gl;\n return [t4.KEEP, t4.KEEP, t4.KEEP];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || t4[2] !== e2[2] || this.dirty) && (this.gl.stencilOp(t4[0], t4[1], t4[2]), this.current = t4, this.dirty = false);\n }\n }\n class li extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n t4 ? e2.enable(e2.STENCIL_TEST) : e2.disable(e2.STENCIL_TEST), this.current = t4, this.dirty = false;\n }\n }\n class hi extends Qe {\n getDefault() {\n return [0, 1];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || this.dirty) && (this.gl.depthRange(t4[0], t4[1]), this.current = t4, this.dirty = false);\n }\n }\n class ci extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n t4 ? e2.enable(e2.DEPTH_TEST) : e2.disable(e2.DEPTH_TEST), this.current = t4, this.dirty = false;\n }\n }\n class ui extends Qe {\n getDefault() {\n return this.gl.LESS;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.depthFunc(t4), this.current = t4, this.dirty = false);\n }\n }\n class di extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n t4 ? e2.enable(e2.BLEND) : e2.disable(e2.BLEND), this.current = t4, this.dirty = false;\n }\n }\n class _i extends Qe {\n getDefault() {\n const t4 = this.gl;\n return [t4.ONE, t4.ZERO];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || this.dirty) && (this.gl.blendFunc(t4[0], t4[1]), this.current = t4, this.dirty = false);\n }\n }\n class pi extends Qe {\n getDefault() {\n return e.aM.transparent;\n }\n set(t4) {\n const e2 = this.current;\n (t4.r !== e2.r || t4.g !== e2.g || t4.b !== e2.b || t4.a !== e2.a || this.dirty) && (this.gl.blendColor(t4.r, t4.g, t4.b, t4.a), this.current = t4, this.dirty = false);\n }\n }\n class mi extends Qe {\n getDefault() {\n return this.gl.FUNC_ADD;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.blendEquation(t4), this.current = t4, this.dirty = false);\n }\n }\n class fi extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n t4 ? e2.enable(e2.CULL_FACE) : e2.disable(e2.CULL_FACE), this.current = t4, this.dirty = false;\n }\n }\n class gi extends Qe {\n getDefault() {\n return this.gl.BACK;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.cullFace(t4), this.current = t4, this.dirty = false);\n }\n }\n class vi extends Qe {\n getDefault() {\n return this.gl.CCW;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.frontFace(t4), this.current = t4, this.dirty = false);\n }\n }\n class xi extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.useProgram(t4), this.current = t4, this.dirty = false);\n }\n }\n class yi extends Qe {\n getDefault() {\n return this.gl.TEXTURE0;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.activeTexture(t4), this.current = t4, this.dirty = false);\n }\n }\n class bi extends Qe {\n getDefault() {\n const t4 = this.gl;\n return [0, 0, t4.drawingBufferWidth, t4.drawingBufferHeight];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || t4[2] !== e2[2] || t4[3] !== e2[3] || this.dirty) && (this.gl.viewport(t4[0], t4[1], t4[2], t4[3]), this.current = t4, this.dirty = false);\n }\n }\n class wi extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.bindFramebuffer(e2.FRAMEBUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Ti extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.bindRenderbuffer(e2.RENDERBUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Ii extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.bindTexture(e2.TEXTURE_2D, t4), this.current = t4, this.dirty = false;\n }\n }\n class Ei extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.bindBuffer(e2.ARRAY_BUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Pi extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n const e2 = this.gl;\n e2.bindBuffer(e2.ELEMENT_ARRAY_BUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Ci extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n var e2;\n if (t4 === this.current && !this.dirty) return;\n const i2 = this.gl;\n Ye(i2) ? i2.bindVertexArray(t4) : null === (e2 = i2.getExtension(\"OES_vertex_array_object\")) || void 0 === e2 || e2.bindVertexArrayOES(t4), this.current = t4, this.dirty = false;\n }\n }\n class Si extends Qe {\n getDefault() {\n return 4;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.pixelStorei(e2.UNPACK_ALIGNMENT, t4), this.current = t4, this.dirty = false;\n }\n }\n class zi extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.pixelStorei(e2.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t4), this.current = t4, this.dirty = false;\n }\n }\n class Di extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.pixelStorei(e2.UNPACK_FLIP_Y_WEBGL, t4), this.current = t4, this.dirty = false;\n }\n }\n class Mi extends Qe {\n constructor(t4, e2) {\n super(t4), this.context = t4, this.parent = e2;\n }\n getDefault() {\n return null;\n }\n }\n class Ai extends Mi {\n setDirty() {\n this.dirty = true;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n this.context.bindFramebuffer.set(this.parent);\n const e2 = this.gl;\n e2.framebufferTexture2D(e2.FRAMEBUFFER, e2.COLOR_ATTACHMENT0, e2.TEXTURE_2D, t4, 0), this.current = t4, this.dirty = false;\n }\n }\n class Ri extends Mi {\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n this.context.bindFramebuffer.set(this.parent);\n const e2 = this.gl;\n e2.framebufferRenderbuffer(e2.FRAMEBUFFER, e2.DEPTH_ATTACHMENT, e2.RENDERBUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class ki extends Mi {\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n this.context.bindFramebuffer.set(this.parent);\n const e2 = this.gl;\n e2.framebufferRenderbuffer(e2.FRAMEBUFFER, e2.DEPTH_STENCIL_ATTACHMENT, e2.RENDERBUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Li {\n constructor(t4, e2, i2, a2, s2) {\n this.context = t4, this.width = e2, this.height = i2;\n const o2 = t4.gl, r2 = this.framebuffer = o2.createFramebuffer();\n if (this.colorAttachment = new Ai(t4, r2), a2) this.depthAttachment = s2 ? new ki(t4, r2) : new Ri(t4, r2);\n else if (s2) throw new Error(\"Stencil cannot be set without depth\");\n if (o2.checkFramebufferStatus(o2.FRAMEBUFFER) !== o2.FRAMEBUFFER_COMPLETE) throw new Error(\"Framebuffer is not complete\");\n }\n destroy() {\n const t4 = this.context.gl, e2 = this.colorAttachment.get();\n if (e2 && t4.deleteTexture(e2), this.depthAttachment) {\n const e3 = this.depthAttachment.get();\n e3 && t4.deleteRenderbuffer(e3);\n }\n t4.deleteFramebuffer(this.framebuffer);\n }\n }\n class Fi {\n constructor(t4, e2, i2) {\n this.blendFunction = t4, this.blendColor = e2, this.mask = i2;\n }\n }\n Fi.Replace = [1, 0], Fi.disabled = new Fi(Fi.Replace, e.aM.transparent, [false, false, false, false]), Fi.unblended = new Fi(Fi.Replace, e.aM.transparent, [true, true, true, true]), Fi.alphaBlended = new Fi([1, 771], e.aM.transparent, [true, true, true, true]);\n class Bi {\n constructor(t4) {\n var e2, i2;\n if (this.gl = t4, this.clearColor = new ti(this), this.clearDepth = new ei(this), this.clearStencil = new ii(this), this.colorMask = new ai(this), this.depthMask = new si(this), this.stencilMask = new oi(this), this.stencilFunc = new ri(this), this.stencilOp = new ni(this), this.stencilTest = new li(this), this.depthRange = new hi(this), this.depthTest = new ci(this), this.depthFunc = new ui(this), this.blend = new di(this), this.blendFunc = new _i(this), this.blendColor = new pi(this), this.blendEquation = new mi(this), this.cullFace = new fi(this), this.cullFaceSide = new gi(this), this.frontFace = new vi(this), this.program = new xi(this), this.activeTexture = new yi(this), this.viewport = new bi(this), this.bindFramebuffer = new wi(this), this.bindRenderbuffer = new Ti(this), this.bindTexture = new Ii(this), this.bindVertexBuffer = new Ei(this), this.bindElementBuffer = new Pi(this), this.bindVertexArray = new Ci(this), this.pixelStoreUnpack = new Si(this), this.pixelStoreUnpackPremultiplyAlpha = new zi(this), this.pixelStoreUnpackFlipY = new Di(this), this.extTextureFilterAnisotropic = t4.getExtension(\"EXT_texture_filter_anisotropic\") || t4.getExtension(\"MOZ_EXT_texture_filter_anisotropic\") || t4.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = t4.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.maxTextureSize = t4.getParameter(t4.MAX_TEXTURE_SIZE), Ye(t4)) {\n this.HALF_FLOAT = t4.HALF_FLOAT;\n const a2 = t4.getExtension(\"EXT_color_buffer_half_float\");\n this.RGBA16F = null !== (e2 = t4.RGBA16F) && void 0 !== e2 ? e2 : null == a2 ? void 0 : a2.RGBA16F_EXT, this.RGB16F = null !== (i2 = t4.RGB16F) && void 0 !== i2 ? i2 : null == a2 ? void 0 : a2.RGB16F_EXT, t4.getExtension(\"EXT_color_buffer_float\");\n } else {\n t4.getExtension(\"EXT_color_buffer_half_float\"), t4.getExtension(\"OES_texture_half_float_linear\");\n const e3 = t4.getExtension(\"OES_texture_half_float\");\n this.HALF_FLOAT = null == e3 ? void 0 : e3.HALF_FLOAT_OES;\n }\n }\n setDefault() {\n this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault();\n }\n setDirty() {\n this.clearColor.dirty = true, this.clearDepth.dirty = true, this.clearStencil.dirty = true, this.colorMask.dirty = true, this.depthMask.dirty = true, this.stencilMask.dirty = true, this.stencilFunc.dirty = true, this.stencilOp.dirty = true, this.stencilTest.dirty = true, this.depthRange.dirty = true, this.depthTest.dirty = true, this.depthFunc.dirty = true, this.blend.dirty = true, this.blendFunc.dirty = true, this.blendColor.dirty = true, this.blendEquation.dirty = true, this.cullFace.dirty = true, this.cullFaceSide.dirty = true, this.frontFace.dirty = true, this.program.dirty = true, this.activeTexture.dirty = true, this.viewport.dirty = true, this.bindFramebuffer.dirty = true, this.bindRenderbuffer.dirty = true, this.bindTexture.dirty = true, this.bindVertexBuffer.dirty = true, this.bindElementBuffer.dirty = true, this.bindVertexArray.dirty = true, this.pixelStoreUnpack.dirty = true, this.pixelStoreUnpackPremultiplyAlpha.dirty = true, this.pixelStoreUnpackFlipY.dirty = true;\n }\n createIndexBuffer(t4, e2) {\n return new $e(this, t4, e2);\n }\n createVertexBuffer(t4, e2, i2) {\n return new Ke(this, t4, e2, i2);\n }\n createRenderbuffer(t4, e2, i2) {\n const a2 = this.gl, s2 = a2.createRenderbuffer();\n return this.bindRenderbuffer.set(s2), a2.renderbufferStorage(a2.RENDERBUFFER, t4, e2, i2), this.bindRenderbuffer.set(null), s2;\n }\n createFramebuffer(t4, e2, i2, a2) {\n return new Li(this, t4, e2, i2, a2);\n }\n clear({ color: t4, depth: e2, stencil: i2 }) {\n const a2 = this.gl;\n let s2 = 0;\n t4 && (s2 |= a2.COLOR_BUFFER_BIT, this.clearColor.set(t4), this.colorMask.set([true, true, true, true])), void 0 !== e2 && (s2 |= a2.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(e2), this.depthMask.set(true)), void 0 !== i2 && (s2 |= a2.STENCIL_BUFFER_BIT, this.clearStencil.set(i2), this.stencilMask.set(255)), a2.clear(s2);\n }\n setCullFace(t4) {\n false === t4.enable ? this.cullFace.set(false) : (this.cullFace.set(true), this.cullFaceSide.set(t4.mode), this.frontFace.set(t4.frontFace));\n }\n setDepthMode(t4) {\n t4.func !== this.gl.ALWAYS || t4.mask ? (this.depthTest.set(true), this.depthFunc.set(t4.func), this.depthMask.set(t4.mask), this.depthRange.set(t4.range)) : this.depthTest.set(false);\n }\n setStencilMode(t4) {\n t4.test.func !== this.gl.ALWAYS || t4.mask ? (this.stencilTest.set(true), this.stencilMask.set(t4.mask), this.stencilOp.set([t4.fail, t4.depthFail, t4.pass]), this.stencilFunc.set({ func: t4.test.func, ref: t4.ref, mask: t4.test.mask })) : this.stencilTest.set(false);\n }\n setColorMode(t4) {\n e.aE(t4.blendFunction, Fi.Replace) ? this.blend.set(false) : (this.blend.set(true), this.blendFunc.set(t4.blendFunction), this.blendColor.set(t4.blendColor)), this.colorMask.set(t4.mask);\n }\n createVertexArray() {\n var t4;\n return Ye(this.gl) ? this.gl.createVertexArray() : null === (t4 = this.gl.getExtension(\"OES_vertex_array_object\")) || void 0 === t4 ? void 0 : t4.createVertexArrayOES();\n }\n deleteVertexArray(t4) {\n var e2;\n return Ye(this.gl) ? this.gl.deleteVertexArray(t4) : null === (e2 = this.gl.getExtension(\"OES_vertex_array_object\")) || void 0 === e2 ? void 0 : e2.deleteVertexArrayOES(t4);\n }\n unbindVAO() {\n this.bindVertexArray.set(null);\n }\n }\n class Oi {\n constructor(t4, e2, i2) {\n this.func = t4, this.mask = e2, this.range = i2;\n }\n }\n Oi.ReadOnly = false, Oi.ReadWrite = true, Oi.disabled = new Oi(519, Oi.ReadOnly, [0, 1]);\n const Ni = 7680;\n class Ui {\n constructor(t4, e2, i2, a2, s2, o2) {\n this.test = t4, this.ref = e2, this.mask = i2, this.fail = a2, this.depthFail = s2, this.pass = o2;\n }\n }\n Ui.disabled = new Ui({ func: 519, mask: 0 }, 0, 0, Ni, Ni, Ni);\n class ji {\n constructor(t4, e2, i2) {\n this.enable = t4, this.mode = e2, this.frontFace = i2;\n }\n }\n let Zi;\n function qi(t4, i2, a2, s2, o2) {\n const r2 = t4.context, n2 = r2.gl, l2 = t4.useProgram(\"collisionBox\"), h2 = [];\n let c2 = 0, u2 = 0;\n for (let _3 = 0; _3 < s2.length; _3++) {\n const p3 = s2[_3], m3 = i2.getTile(p3).getBucket(a2);\n if (!m3) continue;\n const f3 = o2 ? m3.textCollisionBox : m3.iconCollisionBox, g3 = m3.collisionCircleArray;\n if (g3.length > 0) {\n const i3 = e.H();\n e.aQ(i3, m3.placementInvProjMatrix, t4.transform.glCoordMatrix), e.aQ(i3, i3, m3.placementViewportMatrix), h2.push({ circleArray: g3, circleOffset: u2, transform: p3.posMatrix, invTransform: i3, coord: p3 }), c2 += g3.length / 4, u2 = c2;\n }\n f3 && l2.draw(r2, n2.LINES, Oi.disabled, Ui.disabled, t4.colorModeForRenderPass(), ji.disabled, { u_matrix: p3.posMatrix, u_pixel_extrude_scale: [1 / (d2 = t4.transform).width, 1 / d2.height] }, t4.style.map.terrain && t4.style.map.terrain.getTerrainData(p3), a2.id, f3.layoutVertexBuffer, f3.indexBuffer, f3.segments, null, t4.transform.zoom, null, null, f3.collisionVertexBuffer);\n }\n var d2;\n if (!o2 || !h2.length) return;\n const _2 = t4.useProgram(\"collisionCircle\"), p2 = new e.aR();\n p2.resize(4 * c2), p2._trim();\n let m2 = 0;\n for (const t5 of h2) for (let e2 = 0; e2 < t5.circleArray.length / 4; e2++) {\n const i3 = 4 * e2, a3 = t5.circleArray[i3 + 0], s3 = t5.circleArray[i3 + 1], o3 = t5.circleArray[i3 + 2], r3 = t5.circleArray[i3 + 3];\n p2.emplace(m2++, a3, s3, o3, r3, 0), p2.emplace(m2++, a3, s3, o3, r3, 1), p2.emplace(m2++, a3, s3, o3, r3, 2), p2.emplace(m2++, a3, s3, o3, r3, 3);\n }\n (!Zi || Zi.length < 2 * c2) && (Zi = function(t5) {\n const i3 = 2 * t5, a3 = new e.aT();\n a3.resize(i3), a3._trim();\n for (let t6 = 0; t6 < i3; t6++) {\n const e2 = 6 * t6;\n a3.uint16[e2 + 0] = 4 * t6 + 0, a3.uint16[e2 + 1] = 4 * t6 + 1, a3.uint16[e2 + 2] = 4 * t6 + 2, a3.uint16[e2 + 3] = 4 * t6 + 2, a3.uint16[e2 + 4] = 4 * t6 + 3, a3.uint16[e2 + 5] = 4 * t6 + 0;\n }\n return a3;\n }(c2));\n const f2 = r2.createIndexBuffer(Zi, true), g2 = r2.createVertexBuffer(p2, e.aS.members, true);\n for (const i3 of h2) {\n const s3 = Se(i3.transform, i3.invTransform, t4.transform);\n _2.draw(r2, n2.TRIANGLES, Oi.disabled, Ui.disabled, t4.colorModeForRenderPass(), ji.disabled, s3, t4.style.map.terrain && t4.style.map.terrain.getTerrainData(i3.coord), a2.id, g2, f2, e.a0.simpleSegment(0, 2 * i3.circleOffset, i3.circleArray.length, i3.circleArray.length / 2), null, t4.transform.zoom, null, null, null);\n }\n g2.destroy(), f2.destroy();\n }\n ji.disabled = new ji(false, 1029, 2305), ji.backCCW = new ji(true, 1029, 2305);\n const Vi = e.an(new Float32Array(16));\n function Gi(t4, i2, a2, s2, o2, r2) {\n const { horizontalAlign: n2, verticalAlign: l2 } = e.au(t4);\n return new e.P((-(n2 - 0.5) * i2 / o2 + s2[0]) * r2, (-(l2 - 0.5) * a2 / o2 + s2[1]) * r2);\n }\n function Hi(t4, i2, a2, s2, o2, r2) {\n const n2 = i2.tileAnchorPoint.add(new e.P(i2.translation[0], i2.translation[1]));\n if (i2.pitchWithMap) {\n let t5 = s2.mult(r2);\n a2 || (t5 = t5.rotate(-o2));\n const e2 = n2.add(t5);\n return xt(e2.x, e2.y, i2.labelPlaneMatrix, i2.getElevation).point;\n }\n if (a2) {\n const e2 = St(i2.tileAnchorPoint.x + 1, i2.tileAnchorPoint.y, i2).point.sub(t4), a3 = Math.atan(e2.y / e2.x) + (e2.x < 0 ? Math.PI : 0);\n return t4.add(s2.rotate(a3));\n }\n return t4.add(s2);\n }\n function Wi(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2) {\n const m2 = t4.text.placedSymbolArray, f2 = t4.text.dynamicLayoutVertexArray, g2 = t4.icon.dynamicLayoutVertexArray, v2 = {};\n f2.clear();\n for (let g3 = 0; g3 < m2.length; g3++) {\n const x2 = m2.get(g3), y2 = x2.hidden || !x2.crossTileID || t4.allowVerticalPlacement && !x2.placedOrientation ? null : s2[x2.crossTileID];\n if (y2) {\n const s3 = new e.P(x2.anchorX, x2.anchorY), m3 = { getElevation: p2, width: o2.width, height: o2.height, labelPlaneMatrix: r2, lineVertexArray: null, pitchWithMap: a2, projection: u2, projectionCache: null, tileAnchorPoint: s3, translation: d2, unwrappedTileID: _2 }, g4 = a2 ? xt(s3.x, s3.y, n2, p2) : St(s3.x, s3.y, m3), b2 = yt(o2.cameraToCenterDistance, g4.signedDistanceFromCamera);\n let w2 = e.ai(t4.textSizeData, h2, x2) * b2 / e.ap;\n a2 && (w2 *= t4.tilePixelRatio / l2);\n const { width: T2, height: I2, anchor: E3, textOffset: P2, textBoxScale: C3 } = y2, S2 = Gi(E3, T2, I2, P2, C3, w2), z2 = u2.getPitchedTextCorrection(o2, s3.add(new e.P(d2[0], d2[1])), _2), D3 = Hi(g4.point, m3, i2, S2, o2.angle, z2), M2 = t4.allowVerticalPlacement && x2.placedOrientation === e.ah.vertical ? Math.PI / 2 : 0;\n for (let t5 = 0; t5 < x2.numGlyphs; t5++) e.aj(f2, D3, M2);\n c2 && x2.associatedIconIndex >= 0 && (v2[x2.associatedIconIndex] = { shiftedAnchor: D3, angle: M2 });\n } else Rt(x2.numGlyphs, f2);\n }\n if (c2) {\n g2.clear();\n const i3 = t4.icon.placedSymbolArray;\n for (let t5 = 0; t5 < i3.length; t5++) {\n const a3 = i3.get(t5);\n if (a3.hidden) Rt(a3.numGlyphs, g2);\n else {\n const i4 = v2[t5];\n if (i4) for (let t6 = 0; t6 < a3.numGlyphs; t6++) e.aj(g2, i4.shiftedAnchor, i4.angle);\n else Rt(a3.numGlyphs, g2);\n }\n }\n t4.icon.dynamicLayoutVertexBuffer.updateData(g2);\n }\n t4.text.dynamicLayoutVertexBuffer.updateData(f2);\n }\n function $i(t4, e2, i2) {\n return i2.iconsInText && e2 ? \"symbolTextAndIcon\" : t4 ? \"symbolSDF\" : \"symbolIcon\";\n }\n function Xi(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2) {\n const _2 = t4.context, p2 = _2.gl, m2 = t4.transform, f2 = ie(), g2 = \"map\" === l2, v2 = \"map\" === h2, x2 = \"viewport\" !== l2 && \"point\" !== a2.layout.get(\"symbol-placement\"), y2 = g2 && !v2 && !x2, b2 = !v2 && x2, w2 = !a2.layout.get(\"symbol-sort-key\").isConstant();\n let T2 = false;\n const I2 = t4.depthModeForSublayer(0, Oi.ReadOnly), E3 = a2._unevaluatedLayout.hasValue(\"text-variable-anchor\") || a2._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"), P2 = [], C3 = f2.getCircleRadiusCorrection(m2);\n for (const l3 of s2) {\n const s3 = i2.getTile(l3), h3 = s3.getBucket(a2);\n if (!h3) continue;\n const u3 = o2 ? h3.text : h3.icon;\n if (!u3 || !u3.segments.get().length || !u3.hasVisibleVertices) continue;\n const d3 = u3.programConfigurations.get(a2.id), _3 = o2 || h3.sdfIcons, I3 = o2 ? h3.textSizeData : h3.iconSizeData, S2 = v2 || 0 !== m2.pitch, z2 = t4.useProgram($i(_3, o2, h3), d3), D3 = e.ag(I3, m2.zoom), M2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(l3);\n let A3, R2, k2, L2, F2 = [0, 0], B3 = null;\n if (o2) R2 = s3.glyphAtlasTexture, k2 = p2.LINEAR, A3 = s3.glyphAtlasTexture.size, h3.iconsInText && (F2 = s3.imageAtlasTexture.size, B3 = s3.imageAtlasTexture, L2 = S2 || t4.options.rotating || t4.options.zooming || \"composite\" === I3.kind || \"camera\" === I3.kind ? p2.LINEAR : p2.NEAREST);\n else {\n const e2 = 1 !== a2.layout.get(\"icon-size\").constantOr(0) || h3.iconsNeedLinear;\n R2 = s3.imageAtlasTexture, k2 = _3 || t4.options.rotating || t4.options.zooming || e2 || S2 ? p2.LINEAR : p2.NEAREST, A3 = s3.imageAtlasTexture.size;\n }\n const O2 = Bt(s3, 1, t4.transform.zoom), N2 = b2 ? l3.posMatrix : Vi, U2 = gt(N2, v2, g2, t4.transform, O2), j2 = vt(N2, v2, g2, t4.transform, O2), Z2 = vt(l3.posMatrix, v2, g2, t4.transform, O2), q2 = f2.translatePosition(t4.transform, s3, r2, n2), V2 = E3 && h3.hasTextData(), G2 = \"none\" !== a2.layout.get(\"icon-text-fit\") && V2 && h3.hasIconData();\n if (x2) {\n const e2 = t4.style.map.terrain ? (e3, i4) => t4.style.map.terrain.getElevation(l3, e3, i4) : null, i3 = \"map\" === a2.layout.get(\"text-rotation-alignment\");\n wt(h3, l3.posMatrix, t4, o2, U2, Z2, v2, c2, i3, f2, l3.toUnwrapped(), m2.width, m2.height, q2, e2);\n }\n const H2 = l3.posMatrix, W2 = o2 && E3 || G2, $2 = x2 || W2 ? Vi : U2, X2 = j2, K3 = _3 && 0 !== a2.paint.get(o2 ? \"text-halo-width\" : \"icon-halo-width\").constantOr(1);\n let J2;\n J2 = _3 ? h3.iconsInText ? Ve(I3.kind, D3, y2, v2, x2, W2, t4, H2, $2, X2, q2, A3, F2, C3) : qe(I3.kind, D3, y2, v2, x2, W2, t4, H2, $2, X2, q2, o2, A3, true, C3) : Ze(I3.kind, D3, y2, v2, x2, W2, t4, H2, $2, X2, q2, o2, A3, C3);\n const Y2 = { program: z2, buffers: u3, uniformValues: J2, atlasTexture: R2, atlasTextureIcon: B3, atlasInterpolation: k2, atlasInterpolationIcon: L2, isSDF: _3, hasHalo: K3 };\n if (w2 && h3.canOverlap) {\n T2 = true;\n const t5 = u3.segments.get();\n for (const i3 of t5) P2.push({ segments: new e.a0([i3]), sortKey: i3.sortKey, state: Y2, terrainData: M2 });\n } else P2.push({ segments: u3.segments, sortKey: 0, state: Y2, terrainData: M2 });\n }\n T2 && P2.sort((t5, e2) => t5.sortKey - e2.sortKey);\n for (const e2 of P2) {\n const i3 = e2.state;\n if (_2.activeTexture.set(p2.TEXTURE0), i3.atlasTexture.bind(i3.atlasInterpolation, p2.CLAMP_TO_EDGE), i3.atlasTextureIcon && (_2.activeTexture.set(p2.TEXTURE1), i3.atlasTextureIcon && i3.atlasTextureIcon.bind(i3.atlasInterpolationIcon, p2.CLAMP_TO_EDGE)), i3.isSDF) {\n const s3 = i3.uniformValues;\n i3.hasHalo && (s3.u_is_halo = 1, Ki(i3.buffers, e2.segments, a2, t4, i3.program, I2, u2, d2, s3, e2.terrainData)), s3.u_is_halo = 0;\n }\n Ki(i3.buffers, e2.segments, a2, t4, i3.program, I2, u2, d2, i3.uniformValues, e2.terrainData);\n }\n }\n function Ki(t4, e2, i2, a2, s2, o2, r2, n2, l2, h2) {\n const c2 = a2.context;\n s2.draw(c2, c2.gl.TRIANGLES, o2, r2, n2, ji.disabled, l2, h2, i2.id, t4.layoutVertexBuffer, t4.indexBuffer, e2, i2.paint, a2.transform.zoom, t4.programConfigurations.get(i2.id), t4.dynamicLayoutVertexBuffer, t4.opacityVertexBuffer);\n }\n function Ji(t4, i2, a2, s2) {\n const o2 = t4.context, r2 = o2.gl, n2 = Ui.disabled, l2 = new Fi([r2.ONE, r2.ONE], e.aM.transparent, [true, true, true, true]), h2 = i2.getBucket(a2);\n if (!h2) return;\n const c2 = s2.key;\n let u2 = a2.heatmapFbos.get(c2);\n u2 || (u2 = Qi(o2, i2.tileSize, i2.tileSize), a2.heatmapFbos.set(c2, u2)), o2.bindFramebuffer.set(u2.framebuffer), o2.viewport.set([0, 0, i2.tileSize, i2.tileSize]), o2.clear({ color: e.aM.transparent });\n const d2 = h2.programConfigurations.get(a2.id), _2 = t4.useProgram(\"heatmap\", d2), p2 = t4.style.map.terrain.getTerrainData(s2);\n _2.draw(o2, r2.TRIANGLES, Oi.disabled, n2, l2, ji.disabled, Me(s2.posMatrix, i2, t4.transform.zoom, a2.paint.get(\"heatmap-intensity\")), p2, a2.id, h2.layoutVertexBuffer, h2.indexBuffer, h2.segments, a2.paint, t4.transform.zoom, d2);\n }\n function Yi(t4, e2, i2) {\n const a2 = t4.context, s2 = a2.gl;\n a2.setColorMode(t4.colorModeForRenderPass());\n const o2 = ta(a2, e2), r2 = i2.key, n2 = e2.heatmapFbos.get(r2);\n n2 && (a2.activeTexture.set(s2.TEXTURE0), s2.bindTexture(s2.TEXTURE_2D, n2.colorAttachment.get()), a2.activeTexture.set(s2.TEXTURE1), o2.bind(s2.LINEAR, s2.CLAMP_TO_EDGE), t4.useProgram(\"heatmapTexture\").draw(a2, s2.TRIANGLES, Oi.disabled, Ui.disabled, t4.colorModeForRenderPass(), ji.disabled, Ae(t4, e2, 0, 1), null, e2.id, t4.rasterBoundsBuffer, t4.quadTriangleIndexBuffer, t4.rasterBoundsSegments, e2.paint, t4.transform.zoom), n2.destroy(), e2.heatmapFbos.delete(r2));\n }\n function Qi(t4, e2, i2) {\n var a2, s2;\n const o2 = t4.gl, r2 = o2.createTexture();\n o2.bindTexture(o2.TEXTURE_2D, r2), o2.texParameteri(o2.TEXTURE_2D, o2.TEXTURE_WRAP_S, o2.CLAMP_TO_EDGE), o2.texParameteri(o2.TEXTURE_2D, o2.TEXTURE_WRAP_T, o2.CLAMP_TO_EDGE), o2.texParameteri(o2.TEXTURE_2D, o2.TEXTURE_MIN_FILTER, o2.LINEAR), o2.texParameteri(o2.TEXTURE_2D, o2.TEXTURE_MAG_FILTER, o2.LINEAR);\n const n2 = null !== (a2 = t4.HALF_FLOAT) && void 0 !== a2 ? a2 : o2.UNSIGNED_BYTE, l2 = null !== (s2 = t4.RGBA16F) && void 0 !== s2 ? s2 : o2.RGBA;\n o2.texImage2D(o2.TEXTURE_2D, 0, l2, e2, i2, 0, o2.RGBA, n2, null);\n const h2 = t4.createFramebuffer(e2, i2, false, false);\n return h2.colorAttachment.set(r2), h2;\n }\n function ta(t4, e2) {\n return e2.colorRampTexture || (e2.colorRampTexture = new b(t4, e2.colorRamp, t4.gl.RGBA)), e2.colorRampTexture;\n }\n function ea(t4, e2, i2, a2, s2) {\n if (!i2 || !a2 || !a2.imageAtlas) return;\n const o2 = a2.imageAtlas.patternPositions;\n let r2 = o2[i2.to.toString()], n2 = o2[i2.from.toString()];\n if (!r2 && n2 && (r2 = n2), !n2 && r2 && (n2 = r2), !r2 || !n2) {\n const t5 = s2.getPaintProperty(e2);\n r2 = o2[t5], n2 = o2[t5];\n }\n r2 && n2 && t4.setConstantPatternPositions(r2, n2);\n }\n function ia(t4, e2, i2, a2, s2, o2, r2) {\n const n2 = t4.context.gl, l2 = \"fill-pattern\", h2 = i2.paint.get(l2), c2 = h2 && h2.constantOr(1), u2 = i2.getCrossfadeParameters();\n let d2, _2, p2, m2, f2;\n r2 ? (_2 = c2 && !i2.getPaintProperty(\"fill-outline-color\") ? \"fillOutlinePattern\" : \"fillOutline\", d2 = n2.LINES) : (_2 = c2 ? \"fillPattern\" : \"fill\", d2 = n2.TRIANGLES);\n const g2 = h2.constantOr(null);\n for (const h3 of a2) {\n const a3 = e2.getTile(h3);\n if (c2 && !a3.patternsLoaded()) continue;\n const v2 = a3.getBucket(i2);\n if (!v2) continue;\n const x2 = v2.programConfigurations.get(i2.id), y2 = t4.useProgram(_2, x2), b2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(h3);\n c2 && (t4.context.activeTexture.set(n2.TEXTURE0), a3.imageAtlasTexture.bind(n2.LINEAR, n2.CLAMP_TO_EDGE), x2.updatePaintBuffers(u2)), ea(x2, l2, g2, a3, i2);\n const w2 = b2 ? h3 : null, T2 = t4.translatePosMatrix(w2 ? w2.posMatrix : h3.posMatrix, a3, i2.paint.get(\"fill-translate\"), i2.paint.get(\"fill-translate-anchor\"));\n if (r2) {\n m2 = v2.indexBuffer2, f2 = v2.segments2;\n const e3 = [n2.drawingBufferWidth, n2.drawingBufferHeight];\n p2 = \"fillOutlinePattern\" === _2 && c2 ? Pe(T2, t4, u2, a3, e3) : Ee(T2, e3);\n } else m2 = v2.indexBuffer, f2 = v2.segments, p2 = c2 ? Ie(T2, t4, u2, a3) : Te(T2);\n y2.draw(t4.context, d2, s2, t4.stencilModeForClipping(h3), o2, ji.disabled, p2, b2, i2.id, v2.layoutVertexBuffer, m2, f2, i2.paint, t4.transform.zoom, x2);\n }\n }\n function aa(t4, e2, i2, a2, s2, o2, r2) {\n const n2 = t4.context, l2 = n2.gl, h2 = \"fill-extrusion-pattern\", c2 = i2.paint.get(h2), u2 = c2.constantOr(1), d2 = i2.getCrossfadeParameters(), _2 = i2.paint.get(\"fill-extrusion-opacity\"), p2 = c2.constantOr(null);\n for (const c3 of a2) {\n const a3 = e2.getTile(c3), m2 = a3.getBucket(i2);\n if (!m2) continue;\n const f2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(c3), g2 = m2.programConfigurations.get(i2.id), v2 = t4.useProgram(u2 ? \"fillExtrusionPattern\" : \"fillExtrusion\", g2);\n u2 && (t4.context.activeTexture.set(l2.TEXTURE0), a3.imageAtlasTexture.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), g2.updatePaintBuffers(d2)), ea(g2, h2, p2, a3, i2);\n const x2 = t4.translatePosMatrix(c3.posMatrix, a3, i2.paint.get(\"fill-extrusion-translate\"), i2.paint.get(\"fill-extrusion-translate-anchor\")), y2 = i2.paint.get(\"fill-extrusion-vertical-gradient\"), b2 = u2 ? we(x2, t4, y2, _2, c3, d2, a3) : be(x2, t4, y2, _2);\n v2.draw(n2, n2.gl.TRIANGLES, s2, o2, r2, ji.backCCW, b2, f2, i2.id, m2.layoutVertexBuffer, m2.indexBuffer, m2.segments, i2.paint, t4.transform.zoom, g2, t4.style.map.terrain && m2.centroidVertexBuffer);\n }\n }\n function sa(t4, e2, i2, a2, s2, o2, r2) {\n const n2 = t4.context, l2 = n2.gl, h2 = i2.fbo;\n if (!h2) return;\n const c2 = t4.useProgram(\"hillshade\"), u2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(e2);\n n2.activeTexture.set(l2.TEXTURE0), l2.bindTexture(l2.TEXTURE_2D, h2.colorAttachment.get()), c2.draw(n2, l2.TRIANGLES, s2, o2, r2, ji.disabled, ((t5, e3, i3, a3) => {\n const s3 = i3.paint.get(\"hillshade-shadow-color\"), o3 = i3.paint.get(\"hillshade-highlight-color\"), r3 = i3.paint.get(\"hillshade-accent-color\");\n let n3 = i3.paint.get(\"hillshade-illumination-direction\") * (Math.PI / 180);\n \"viewport\" === i3.paint.get(\"hillshade-illumination-anchor\") && (n3 -= t5.transform.angle);\n const l3 = !t5.options.moving;\n return { u_matrix: a3 ? a3.posMatrix : t5.transform.calculatePosMatrix(e3.tileID.toUnwrapped(), l3), u_image: 0, u_latrange: Re(0, e3.tileID), u_light: [i3.paint.get(\"hillshade-exaggeration\"), n3], u_shadow: s3, u_highlight: o3, u_accent: r3 };\n })(t4, i2, a2, u2 ? e2 : null), u2, a2.id, t4.rasterBoundsBuffer, t4.quadTriangleIndexBuffer, t4.rasterBoundsSegments);\n }\n function oa(t4, i2, a2, s2, o2, r2) {\n const n2 = t4.context, l2 = n2.gl, h2 = i2.dem;\n if (h2 && h2.data) {\n const c2 = h2.dim, u2 = h2.stride, d2 = h2.getPixels();\n if (n2.activeTexture.set(l2.TEXTURE1), n2.pixelStoreUnpackPremultiplyAlpha.set(false), i2.demTexture = i2.demTexture || t4.getTileTexture(u2), i2.demTexture) {\n const t5 = i2.demTexture;\n t5.update(d2, { premultiply: false }), t5.bind(l2.NEAREST, l2.CLAMP_TO_EDGE);\n } else i2.demTexture = new b(n2, d2, l2.RGBA, { premultiply: false }), i2.demTexture.bind(l2.NEAREST, l2.CLAMP_TO_EDGE);\n n2.activeTexture.set(l2.TEXTURE0);\n let _2 = i2.fbo;\n if (!_2) {\n const t5 = new b(n2, { width: c2, height: c2, data: null }, l2.RGBA);\n t5.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), _2 = i2.fbo = n2.createFramebuffer(c2, c2, true, false), _2.colorAttachment.set(t5.texture);\n }\n n2.bindFramebuffer.set(_2.framebuffer), n2.viewport.set([0, 0, c2, c2]), t4.useProgram(\"hillshadePrepare\").draw(n2, l2.TRIANGLES, s2, o2, r2, ji.disabled, ((t5, i3) => {\n const a3 = i3.stride, s3 = e.H();\n return e.aP(s3, 0, e.X, -e.X, 0, 0, 1), e.J(s3, s3, [0, -e.X, 0]), { u_matrix: s3, u_image: 1, u_dimension: [a3, a3], u_zoom: t5.overscaledZ, u_unpack: i3.getUnpackVector() };\n })(i2.tileID, h2), null, a2.id, t4.rasterBoundsBuffer, t4.quadTriangleIndexBuffer, t4.rasterBoundsSegments), i2.needsHillshadePrepare = false;\n }\n }\n function ra(t4, i2, a2, s2, r2, n2) {\n const l2 = s2.paint.get(\"raster-fade-duration\");\n if (!n2 && l2 > 0) {\n const s3 = o.now(), n3 = (s3 - t4.timeAdded) / l2, h2 = i2 ? (s3 - i2.timeAdded) / l2 : -1, c2 = a2.getSource(), u2 = r2.coveringZoomLevel({ tileSize: c2.tileSize, roundZoom: c2.roundZoom }), d2 = !i2 || Math.abs(i2.tileID.overscaledZ - u2) > Math.abs(t4.tileID.overscaledZ - u2), _2 = d2 && t4.refreshedUponExpiration ? 1 : e.ac(d2 ? n3 : 1 - h2, 0, 1);\n return t4.refreshedUponExpiration && n3 >= 1 && (t4.refreshedUponExpiration = false), i2 ? { opacity: 1, mix: 1 - _2 } : { opacity: _2, mix: 0 };\n }\n return { opacity: 1, mix: 0 };\n }\n const na = new e.aM(1, 0, 0, 1), la = new e.aM(0, 1, 0, 1), ha = new e.aM(0, 0, 1, 1), ca = new e.aM(1, 0, 1, 1), ua = new e.aM(0, 1, 1, 1);\n function da(t4, e2, i2, a2) {\n pa(t4, 0, e2 + i2 / 2, t4.transform.width, i2, a2);\n }\n function _a(t4, e2, i2, a2) {\n pa(t4, e2 - i2 / 2, 0, i2, t4.transform.height, a2);\n }\n function pa(t4, e2, i2, a2, s2, o2) {\n const r2 = t4.context, n2 = r2.gl;\n n2.enable(n2.SCISSOR_TEST), n2.scissor(e2 * t4.pixelRatio, i2 * t4.pixelRatio, a2 * t4.pixelRatio, s2 * t4.pixelRatio), r2.clear({ color: o2 }), n2.disable(n2.SCISSOR_TEST);\n }\n function ma(t4, i2, a2) {\n const s2 = t4.context, o2 = s2.gl, r2 = a2.posMatrix, n2 = t4.useProgram(\"debug\"), l2 = Oi.disabled, h2 = Ui.disabled, c2 = t4.colorModeForRenderPass(), u2 = \"$debug\", d2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(a2);\n s2.activeTexture.set(o2.TEXTURE0);\n const _2 = i2.getTileByID(a2.key).latestRawTileData, p2 = Math.floor((_2 && _2.byteLength || 0) / 1024), m2 = i2.getTile(a2).tileSize, f2 = 512 / Math.min(m2, 512) * (a2.overscaledZ / t4.transform.zoom) * 0.5;\n let g2 = a2.canonical.toString();\n a2.overscaledZ !== a2.canonical.z && (g2 += ` => ${a2.overscaledZ}`), function(t5, e2) {\n t5.initDebugOverlayCanvas();\n const i3 = t5.debugOverlayCanvas, a3 = t5.context.gl, s3 = t5.debugOverlayCanvas.getContext(\"2d\");\n s3.clearRect(0, 0, i3.width, i3.height), s3.shadowColor = \"white\", s3.shadowBlur = 2, s3.lineWidth = 1.5, s3.strokeStyle = \"white\", s3.textBaseline = \"top\", s3.font = \"bold 36px Open Sans, sans-serif\", s3.fillText(e2, 5, 5), s3.strokeText(e2, 5, 5), t5.debugOverlayTexture.update(i3), t5.debugOverlayTexture.bind(a3.LINEAR, a3.CLAMP_TO_EDGE);\n }(t4, `${g2} ${p2}kB`), n2.draw(s2, o2.TRIANGLES, l2, h2, Fi.alphaBlended, ji.disabled, ze(r2, e.aM.transparent, f2), null, u2, t4.debugBuffer, t4.quadTriangleIndexBuffer, t4.debugSegments), n2.draw(s2, o2.LINE_STRIP, l2, h2, c2, ji.disabled, ze(r2, e.aM.red), d2, u2, t4.debugBuffer, t4.tileBorderIndexBuffer, t4.debugSegments);\n }\n function fa(t4, e2, i2) {\n const a2 = t4.context, s2 = a2.gl, o2 = t4.colorModeForRenderPass(), r2 = new Oi(s2.LEQUAL, Oi.ReadWrite, t4.depthRangeFor3D), n2 = t4.useProgram(\"terrain\"), l2 = e2.getTerrainMesh();\n a2.bindFramebuffer.set(null), a2.viewport.set([0, 0, t4.width, t4.height]);\n for (const h2 of i2) {\n const i3 = t4.renderToTexture.getTexture(h2), c2 = e2.getTerrainData(h2.tileID);\n a2.activeTexture.set(s2.TEXTURE0), s2.bindTexture(s2.TEXTURE_2D, i3.texture);\n const u2 = t4.transform.calculatePosMatrix(h2.tileID.toUnwrapped()), d2 = e2.getMeshFrameDelta(t4.transform.zoom), _2 = t4.transform.calculateFogMatrix(h2.tileID.toUnwrapped()), p2 = ge(u2, d2, _2, t4.style.sky, t4.transform.pitch);\n n2.draw(a2, s2.TRIANGLES, r2, Ui.disabled, o2, ji.backCCW, p2, c2, \"terrain\", l2.vertexBuffer, l2.indexBuffer, l2.segments);\n }\n }\n class ga {\n constructor(t4, e2, i2) {\n this.vertexBuffer = t4, this.indexBuffer = e2, this.segments = i2;\n }\n destroy() {\n this.vertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.vertexBuffer = null, this.indexBuffer = null, this.segments = null;\n }\n }\n class va {\n constructor(t4, i2) {\n this.context = new Bi(t4), this.transform = i2, this._tileTextures = {}, this.terrainFacilitator = { dirty: true, matrix: e.an(new Float64Array(16)), renderTime: 0 }, this.setup(), this.numSublayers = ut.maxUnderzooming + ut.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new he();\n }\n resize(t4, e2, i2) {\n if (this.width = Math.floor(t4 * i2), this.height = Math.floor(e2 * i2), this.pixelRatio = i2, this.context.viewport.set([0, 0, this.width, this.height]), this.style) for (const t5 of this.style._order) this.style._layers[t5].resize();\n }\n setup() {\n const t4 = this.context, i2 = new e.aX();\n i2.emplaceBack(0, 0), i2.emplaceBack(e.X, 0), i2.emplaceBack(0, e.X), i2.emplaceBack(e.X, e.X), this.tileExtentBuffer = t4.createVertexBuffer(i2, _e.members), this.tileExtentSegments = e.a0.simpleSegment(0, 0, 4, 2);\n const a2 = new e.aX();\n a2.emplaceBack(0, 0), a2.emplaceBack(e.X, 0), a2.emplaceBack(0, e.X), a2.emplaceBack(e.X, e.X), this.debugBuffer = t4.createVertexBuffer(a2, _e.members), this.debugSegments = e.a0.simpleSegment(0, 0, 4, 5);\n const s2 = new e.$();\n s2.emplaceBack(0, 0, 0, 0), s2.emplaceBack(e.X, 0, e.X, 0), s2.emplaceBack(0, e.X, 0, e.X), s2.emplaceBack(e.X, e.X, e.X, e.X), this.rasterBoundsBuffer = t4.createVertexBuffer(s2, Y.members), this.rasterBoundsSegments = e.a0.simpleSegment(0, 0, 4, 2);\n const o2 = new e.aX();\n o2.emplaceBack(0, 0), o2.emplaceBack(1, 0), o2.emplaceBack(0, 1), o2.emplaceBack(1, 1), this.viewportBuffer = t4.createVertexBuffer(o2, _e.members), this.viewportSegments = e.a0.simpleSegment(0, 0, 4, 2);\n const r2 = new e.aZ();\n r2.emplaceBack(0), r2.emplaceBack(1), r2.emplaceBack(3), r2.emplaceBack(2), r2.emplaceBack(0), this.tileBorderIndexBuffer = t4.createIndexBuffer(r2);\n const n2 = new e.aY();\n n2.emplaceBack(0, 1, 2), n2.emplaceBack(2, 1, 3), this.quadTriangleIndexBuffer = t4.createIndexBuffer(n2);\n const l2 = this.context.gl;\n this.stencilClearMode = new Ui({ func: l2.ALWAYS, mask: 0 }, 0, 255, l2.ZERO, l2.ZERO, l2.ZERO);\n }\n clearStencil() {\n const t4 = this.context, i2 = t4.gl;\n this.nextStencilID = 1, this.currentStencilSource = void 0;\n const a2 = e.H();\n e.aP(a2, 0, this.width, this.height, 0, 0, 1), e.K(a2, a2, [i2.drawingBufferWidth, i2.drawingBufferHeight, 0]), this.useProgram(\"clippingMask\").draw(t4, i2.TRIANGLES, Oi.disabled, this.stencilClearMode, Fi.disabled, ji.disabled, De(a2), null, \"$clipping\", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments);\n }\n _renderTileClippingMasks(t4, e2) {\n if (this.currentStencilSource === t4.source || !t4.isTileClipped() || !e2 || !e2.length) return;\n this.currentStencilSource = t4.source;\n const i2 = this.context, a2 = i2.gl;\n this.nextStencilID + e2.length > 256 && this.clearStencil(), i2.setColorMode(Fi.disabled), i2.setDepthMode(Oi.disabled);\n const s2 = this.useProgram(\"clippingMask\");\n this._tileClippingMaskIDs = {};\n for (const t5 of e2) {\n const e3 = this._tileClippingMaskIDs[t5.key] = this.nextStencilID++, o2 = this.style.map.terrain && this.style.map.terrain.getTerrainData(t5);\n s2.draw(i2, a2.TRIANGLES, Oi.disabled, new Ui({ func: a2.ALWAYS, mask: 0 }, e3, 255, a2.KEEP, a2.KEEP, a2.REPLACE), Fi.disabled, ji.disabled, De(t5.posMatrix), o2, \"$clipping\", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments);\n }\n }\n stencilModeFor3D() {\n this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil();\n const t4 = this.nextStencilID++, e2 = this.context.gl;\n return new Ui({ func: e2.NOTEQUAL, mask: 255 }, t4, 255, e2.KEEP, e2.KEEP, e2.REPLACE);\n }\n stencilModeForClipping(t4) {\n const e2 = this.context.gl;\n return new Ui({ func: e2.EQUAL, mask: 255 }, this._tileClippingMaskIDs[t4.key], 0, e2.KEEP, e2.KEEP, e2.REPLACE);\n }\n stencilConfigForOverlap(t4) {\n const e2 = this.context.gl, i2 = t4.sort((t5, e3) => e3.overscaledZ - t5.overscaledZ), a2 = i2[i2.length - 1].overscaledZ, s2 = i2[0].overscaledZ - a2 + 1;\n if (s2 > 1) {\n this.currentStencilSource = void 0, this.nextStencilID + s2 > 256 && this.clearStencil();\n const t5 = {};\n for (let i3 = 0; i3 < s2; i3++) t5[i3 + a2] = new Ui({ func: e2.GEQUAL, mask: 255 }, i3 + this.nextStencilID, 255, e2.KEEP, e2.KEEP, e2.REPLACE);\n return this.nextStencilID += s2, [t5, i2];\n }\n return [{ [a2]: Ui.disabled }, i2];\n }\n colorModeForRenderPass() {\n const t4 = this.context.gl;\n if (this._showOverdrawInspector) {\n const i2 = 1 / 8;\n return new Fi([t4.CONSTANT_COLOR, t4.ONE], new e.aM(i2, i2, i2, 0), [true, true, true, true]);\n }\n return \"opaque\" === this.renderPass ? Fi.unblended : Fi.alphaBlended;\n }\n depthModeForSublayer(t4, e2, i2) {\n if (!this.opaquePassEnabledForLayer()) return Oi.disabled;\n const a2 = 1 - ((1 + this.currentLayer) * this.numSublayers + t4) * this.depthEpsilon;\n return new Oi(i2 || this.context.gl.LEQUAL, e2, [a2, a2]);\n }\n opaquePassEnabledForLayer() {\n return this.currentLayer < this.opaquePassCutoff;\n }\n render(t4, i2) {\n this.style = t4, this.options = i2, this.lineAtlas = t4.lineAtlas, this.imageManager = t4.imageManager, this.glyphManager = t4.glyphManager, this.symbolFadeChange = t4.placement.symbolFadeChange(o.now()), this.imageManager.beginFrame();\n const a2 = this.style._order, s2 = this.style.sourceCaches, r2 = {}, n2 = {}, l2 = {};\n for (const t5 in s2) {\n const e2 = s2[t5];\n e2.used && e2.prepare(this.context), r2[t5] = e2.getVisibleCoordinates(), n2[t5] = r2[t5].slice().reverse(), l2[t5] = e2.getVisibleCoordinates(true).reverse();\n }\n this.opaquePassCutoff = 1 / 0;\n for (let t5 = 0; t5 < a2.length; t5++) if (this.style._layers[a2[t5]].is3D()) {\n this.opaquePassCutoff = t5;\n break;\n }\n this.maybeDrawDepthAndCoords(false), this.renderToTexture && (this.renderToTexture.prepareForRender(this.style, this.transform.zoom), this.opaquePassCutoff = 0), this.renderPass = \"offscreen\";\n for (const t5 of a2) {\n const e2 = this.style._layers[t5];\n if (!e2.hasOffscreenPass() || e2.isHidden(this.transform.zoom)) continue;\n const i3 = n2[e2.source];\n (\"custom\" === e2.type || i3.length) && this.renderLayer(this, s2[e2.source], e2, i3);\n }\n if (this.context.bindFramebuffer.set(null), this.context.clear({ color: i2.showOverdrawInspector ? e.aM.black : e.aM.transparent, depth: 1 }), this.clearStencil(), this.style.sky && function(t5, i3) {\n const a3 = t5.context, s3 = a3.gl, o2 = ((t6, e2, i4) => ({ u_sky_color: t6.properties.get(\"sky-color\"), u_horizon_color: t6.properties.get(\"horizon-color\"), u_horizon: (e2.height / 2 + e2.getHorizon()) * i4, u_sky_horizon_blend: t6.properties.get(\"sky-horizon-blend\") * e2.height / 2 * i4 }))(i3, t5.style.map.transform, t5.pixelRatio), r3 = new Oi(s3.LEQUAL, Oi.ReadWrite, [0, 1]), n3 = Ui.disabled, l3 = t5.colorModeForRenderPass(), h2 = t5.useProgram(\"sky\");\n if (!i3.mesh) {\n const t6 = new e.aX();\n t6.emplaceBack(-1, -1), t6.emplaceBack(1, -1), t6.emplaceBack(1, 1), t6.emplaceBack(-1, 1);\n const s4 = new e.aY();\n s4.emplaceBack(0, 1, 2), s4.emplaceBack(0, 2, 3), i3.mesh = new ga(a3.createVertexBuffer(t6, _e.members), a3.createIndexBuffer(s4), e.a0.simpleSegment(0, 0, t6.length, s4.length));\n }\n h2.draw(a3, s3.TRIANGLES, r3, n3, l3, ji.disabled, o2, void 0, \"sky\", i3.mesh.vertexBuffer, i3.mesh.indexBuffer, i3.mesh.segments);\n }(this, this.style.sky), this._showOverdrawInspector = i2.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (t4._order.length + 2) * this.numSublayers * this.depthEpsilon], !this.renderToTexture) for (this.renderPass = \"opaque\", this.currentLayer = a2.length - 1; this.currentLayer >= 0; this.currentLayer--) {\n const t5 = this.style._layers[a2[this.currentLayer]], e2 = s2[t5.source], i3 = r2[t5.source];\n this._renderTileClippingMasks(t5, i3), this.renderLayer(this, e2, t5, i3);\n }\n for (this.renderPass = \"translucent\", this.currentLayer = 0; this.currentLayer < a2.length; this.currentLayer++) {\n const t5 = this.style._layers[a2[this.currentLayer]], e2 = s2[t5.source];\n if (this.renderToTexture && this.renderToTexture.renderLayer(t5)) continue;\n const i3 = (\"symbol\" === t5.type ? l2 : n2)[t5.source];\n this._renderTileClippingMasks(t5, r2[t5.source]), this.renderLayer(this, e2, t5, i3);\n }\n if (this.options.showTileBoundaries) {\n const t5 = function(t6, e2) {\n let i3 = null;\n const a3 = Object.values(t6._layers).flatMap((i4) => i4.source && !i4.isHidden(e2) ? [t6.sourceCaches[i4.source]] : []), s3 = a3.filter((t7) => \"vector\" === t7.getSource().type), o2 = a3.filter((t7) => \"vector\" !== t7.getSource().type), r3 = (t7) => {\n (!i3 || i3.getSource().maxzoom < t7.getSource().maxzoom) && (i3 = t7);\n };\n return s3.forEach((t7) => r3(t7)), i3 || o2.forEach((t7) => r3(t7)), i3;\n }(this.style, this.transform.zoom);\n t5 && function(t6, e2, i3) {\n for (let a3 = 0; a3 < i3.length; a3++) ma(t6, e2, i3[a3]);\n }(this, t5, t5.getVisibleCoordinates());\n }\n this.options.showPadding && function(t5) {\n const e2 = t5.transform.padding;\n da(t5, t5.transform.height - (e2.top || 0), 3, na), da(t5, e2.bottom || 0, 3, la), _a(t5, e2.left || 0, 3, ha), _a(t5, t5.transform.width - (e2.right || 0), 3, ca);\n const i3 = t5.transform.centerPoint;\n !function(t6, e3, i4, a3) {\n pa(t6, e3 - 1, i4 - 10, 2, 20, a3), pa(t6, e3 - 10, i4 - 1, 20, 2, a3);\n }(t5, i3.x, t5.transform.height - i3.y, ua);\n }(this), this.context.setDefault();\n }\n maybeDrawDepthAndCoords(t4) {\n if (!this.style || !this.style.map || !this.style.map.terrain) return;\n const i2 = this.terrainFacilitator.matrix, a2 = this.transform.modelViewProjectionMatrix;\n let s2 = this.terrainFacilitator.dirty;\n s2 || (s2 = t4 ? !e.a_(i2, a2) : !e.a$(i2, a2)), s2 || (s2 = this.style.map.terrain.sourceCache.tilesAfterTime(this.terrainFacilitator.renderTime).length > 0), s2 && (e.b0(i2, a2), this.terrainFacilitator.renderTime = Date.now(), this.terrainFacilitator.dirty = false, function(t5, i3) {\n const a3 = t5.context, s3 = a3.gl, o2 = Fi.unblended, r2 = new Oi(s3.LEQUAL, Oi.ReadWrite, [0, 1]), n2 = i3.getTerrainMesh(), l2 = i3.sourceCache.getRenderableTiles(), h2 = t5.useProgram(\"terrainDepth\");\n a3.bindFramebuffer.set(i3.getFramebuffer(\"depth\").framebuffer), a3.viewport.set([0, 0, t5.width / devicePixelRatio, t5.height / devicePixelRatio]), a3.clear({ color: e.aM.transparent, depth: 1 });\n for (const e2 of l2) {\n const l3 = i3.getTerrainData(e2.tileID), c2 = { u_matrix: t5.transform.calculatePosMatrix(e2.tileID.toUnwrapped()), u_ele_delta: i3.getMeshFrameDelta(t5.transform.zoom) };\n h2.draw(a3, s3.TRIANGLES, r2, Ui.disabled, o2, ji.backCCW, c2, l3, \"terrain\", n2.vertexBuffer, n2.indexBuffer, n2.segments);\n }\n a3.bindFramebuffer.set(null), a3.viewport.set([0, 0, t5.width, t5.height]);\n }(this, this.style.map.terrain), function(t5, i3) {\n const a3 = t5.context, s3 = a3.gl, o2 = Fi.unblended, r2 = new Oi(s3.LEQUAL, Oi.ReadWrite, [0, 1]), n2 = i3.getTerrainMesh(), l2 = i3.getCoordsTexture(), h2 = i3.sourceCache.getRenderableTiles(), c2 = t5.useProgram(\"terrainCoords\");\n a3.bindFramebuffer.set(i3.getFramebuffer(\"coords\").framebuffer), a3.viewport.set([0, 0, t5.width / devicePixelRatio, t5.height / devicePixelRatio]), a3.clear({ color: e.aM.transparent, depth: 1 }), i3.coordsIndex = [];\n for (const e2 of h2) {\n const h3 = i3.getTerrainData(e2.tileID);\n a3.activeTexture.set(s3.TEXTURE0), s3.bindTexture(s3.TEXTURE_2D, l2.texture);\n const u2 = { u_matrix: t5.transform.calculatePosMatrix(e2.tileID.toUnwrapped()), u_terrain_coords_id: (255 - i3.coordsIndex.length) / 255, u_texture: 0, u_ele_delta: i3.getMeshFrameDelta(t5.transform.zoom) };\n c2.draw(a3, s3.TRIANGLES, r2, Ui.disabled, o2, ji.backCCW, u2, h3, \"terrain\", n2.vertexBuffer, n2.indexBuffer, n2.segments), i3.coordsIndex.push(e2.tileID.key);\n }\n a3.bindFramebuffer.set(null), a3.viewport.set([0, 0, t5.width, t5.height]);\n }(this, this.style.map.terrain));\n }\n renderLayer(t4, i2, a2, s2) {\n if (!a2.isHidden(this.transform.zoom) && (\"background\" === a2.type || \"custom\" === a2.type || (s2 || []).length)) switch (this.id = a2.id, a2.type) {\n case \"symbol\":\n !function(t5, i3, a3, s3, o2) {\n if (\"translucent\" !== t5.renderPass) return;\n const r2 = Ui.disabled, n2 = t5.colorModeForRenderPass();\n (a3._unevaluatedLayout.hasValue(\"text-variable-anchor\") || a3._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\")) && function(t6, i4, a4, s4, o3, r3, n3, l2, h2) {\n const c2 = i4.transform, u2 = ie(), d2 = \"map\" === o3, _2 = \"map\" === r3;\n for (const o4 of t6) {\n const t7 = s4.getTile(o4), r4 = t7.getBucket(a4);\n if (!r4 || !r4.text || !r4.text.segments.get().length) continue;\n const p2 = e.ag(r4.textSizeData, c2.zoom), m2 = Bt(t7, 1, i4.transform.zoom), f2 = gt(o4.posMatrix, _2, d2, i4.transform, m2), g2 = \"none\" !== a4.layout.get(\"icon-text-fit\") && r4.hasIconData();\n if (p2) {\n const e2 = Math.pow(2, c2.zoom - t7.tileID.overscaledZ), a5 = i4.style.map.terrain ? (t8, e3) => i4.style.map.terrain.getElevation(o4, t8, e3) : null, s5 = u2.translatePosition(c2, t7, n3, l2);\n Wi(r4, d2, _2, h2, c2, f2, o4.posMatrix, e2, p2, g2, u2, s5, o4.toUnwrapped(), a5);\n }\n }\n }(s3, t5, a3, i3, a3.layout.get(\"text-rotation-alignment\"), a3.layout.get(\"text-pitch-alignment\"), a3.paint.get(\"text-translate\"), a3.paint.get(\"text-translate-anchor\"), o2), 0 !== a3.paint.get(\"icon-opacity\").constantOr(1) && Xi(t5, i3, a3, s3, false, a3.paint.get(\"icon-translate\"), a3.paint.get(\"icon-translate-anchor\"), a3.layout.get(\"icon-rotation-alignment\"), a3.layout.get(\"icon-pitch-alignment\"), a3.layout.get(\"icon-keep-upright\"), r2, n2), 0 !== a3.paint.get(\"text-opacity\").constantOr(1) && Xi(t5, i3, a3, s3, true, a3.paint.get(\"text-translate\"), a3.paint.get(\"text-translate-anchor\"), a3.layout.get(\"text-rotation-alignment\"), a3.layout.get(\"text-pitch-alignment\"), a3.layout.get(\"text-keep-upright\"), r2, n2), i3.map.showCollisionBoxes && (qi(t5, i3, a3, s3, true), qi(t5, i3, a3, s3, false));\n }(t4, i2, a2, s2, this.style.placement.variableOffsets);\n break;\n case \"circle\":\n !function(t5, i3, a3, s3) {\n if (\"translucent\" !== t5.renderPass) return;\n const o2 = a3.paint.get(\"circle-opacity\"), r2 = a3.paint.get(\"circle-stroke-width\"), n2 = a3.paint.get(\"circle-stroke-opacity\"), l2 = !a3.layout.get(\"circle-sort-key\").isConstant();\n if (0 === o2.constantOr(1) && (0 === r2.constantOr(1) || 0 === n2.constantOr(1))) return;\n const h2 = t5.context, c2 = h2.gl, u2 = t5.depthModeForSublayer(0, Oi.ReadOnly), d2 = Ui.disabled, _2 = t5.colorModeForRenderPass(), p2 = [];\n for (let o3 = 0; o3 < s3.length; o3++) {\n const r3 = s3[o3], n3 = i3.getTile(r3), h3 = n3.getBucket(a3);\n if (!h3) continue;\n const c3 = h3.programConfigurations.get(a3.id), u3 = t5.useProgram(\"circle\", c3), d3 = h3.layoutVertexBuffer, _3 = h3.indexBuffer, m2 = t5.style.map.terrain && t5.style.map.terrain.getTerrainData(r3), f2 = { programConfiguration: c3, program: u3, layoutVertexBuffer: d3, indexBuffer: _3, uniformValues: Ce(t5, r3, n3, a3), terrainData: m2 };\n if (l2) {\n const t6 = h3.segments.get();\n for (const i4 of t6) p2.push({ segments: new e.a0([i4]), sortKey: i4.sortKey, state: f2 });\n } else p2.push({ segments: h3.segments, sortKey: 0, state: f2 });\n }\n l2 && p2.sort((t6, e2) => t6.sortKey - e2.sortKey);\n for (const e2 of p2) {\n const { programConfiguration: i4, program: s4, layoutVertexBuffer: o3, indexBuffer: r3, uniformValues: n3, terrainData: l3 } = e2.state;\n s4.draw(h2, c2.TRIANGLES, u2, d2, _2, ji.disabled, n3, l3, a3.id, o3, r3, e2.segments, a3.paint, t5.transform.zoom, i4);\n }\n }(t4, i2, a2, s2);\n break;\n case \"heatmap\":\n !function(t5, i3, a3, s3) {\n if (0 === a3.paint.get(\"heatmap-opacity\")) return;\n const o2 = t5.context;\n if (t5.style.map.terrain) {\n for (const e2 of s3) {\n const s4 = i3.getTile(e2);\n i3.hasRenderableParent(e2) || (\"offscreen\" === t5.renderPass ? Ji(t5, s4, a3, e2) : \"translucent\" === t5.renderPass && Yi(t5, a3, e2));\n }\n o2.viewport.set([0, 0, t5.width, t5.height]);\n } else \"offscreen\" === t5.renderPass ? function(t6, i4, a4, s4) {\n const o3 = t6.context, r2 = o3.gl, n2 = Ui.disabled, l2 = new Fi([r2.ONE, r2.ONE], e.aM.transparent, [true, true, true, true]);\n (function(t7, i5, a5) {\n const s5 = t7.gl;\n t7.activeTexture.set(s5.TEXTURE1), t7.viewport.set([0, 0, i5.width / 4, i5.height / 4]);\n let o4 = a5.heatmapFbos.get(e.aU);\n o4 ? (s5.bindTexture(s5.TEXTURE_2D, o4.colorAttachment.get()), t7.bindFramebuffer.set(o4.framebuffer)) : (o4 = Qi(t7, i5.width / 4, i5.height / 4), a5.heatmapFbos.set(e.aU, o4));\n })(o3, t6, a4), o3.clear({ color: e.aM.transparent });\n for (let e2 = 0; e2 < s4.length; e2++) {\n const h2 = s4[e2];\n if (i4.hasRenderableParent(h2)) continue;\n const c2 = i4.getTile(h2), u2 = c2.getBucket(a4);\n if (!u2) continue;\n const d2 = u2.programConfigurations.get(a4.id), _2 = t6.useProgram(\"heatmap\", d2), { zoom: p2 } = t6.transform;\n _2.draw(o3, r2.TRIANGLES, Oi.disabled, n2, l2, ji.disabled, Me(h2.posMatrix, c2, p2, a4.paint.get(\"heatmap-intensity\")), null, a4.id, u2.layoutVertexBuffer, u2.indexBuffer, u2.segments, a4.paint, t6.transform.zoom, d2);\n }\n o3.viewport.set([0, 0, t6.width, t6.height]);\n }(t5, i3, a3, s3) : \"translucent\" === t5.renderPass && function(t6, i4) {\n const a4 = t6.context, s4 = a4.gl;\n a4.setColorMode(t6.colorModeForRenderPass());\n const o3 = i4.heatmapFbos.get(e.aU);\n o3 && (a4.activeTexture.set(s4.TEXTURE0), s4.bindTexture(s4.TEXTURE_2D, o3.colorAttachment.get()), a4.activeTexture.set(s4.TEXTURE1), ta(a4, i4).bind(s4.LINEAR, s4.CLAMP_TO_EDGE), t6.useProgram(\"heatmapTexture\").draw(a4, s4.TRIANGLES, Oi.disabled, Ui.disabled, t6.colorModeForRenderPass(), ji.disabled, Ae(t6, i4, 0, 1), null, i4.id, t6.viewportBuffer, t6.quadTriangleIndexBuffer, t6.viewportSegments, i4.paint, t6.transform.zoom));\n }(t5, a3);\n }(t4, i2, a2, s2);\n break;\n case \"line\":\n !function(t5, i3, a3, s3) {\n if (\"translucent\" !== t5.renderPass) return;\n const o2 = a3.paint.get(\"line-opacity\"), r2 = a3.paint.get(\"line-width\");\n if (0 === o2.constantOr(1) || 0 === r2.constantOr(1)) return;\n const n2 = t5.depthModeForSublayer(0, Oi.ReadOnly), l2 = t5.colorModeForRenderPass(), h2 = a3.paint.get(\"line-dasharray\"), c2 = a3.paint.get(\"line-pattern\"), u2 = c2.constantOr(1), d2 = a3.paint.get(\"line-gradient\"), _2 = a3.getCrossfadeParameters(), p2 = u2 ? \"linePattern\" : h2 ? \"lineSDF\" : d2 ? \"lineGradient\" : \"line\", m2 = t5.context, f2 = m2.gl;\n let g2 = true;\n for (const o3 of s3) {\n const s4 = i3.getTile(o3);\n if (u2 && !s4.patternsLoaded()) continue;\n const r3 = s4.getBucket(a3);\n if (!r3) continue;\n const v2 = r3.programConfigurations.get(a3.id), x2 = t5.context.program.get(), y2 = t5.useProgram(p2, v2), w2 = g2 || y2.program !== x2, T2 = t5.style.map.terrain && t5.style.map.terrain.getTerrainData(o3), I2 = c2.constantOr(null);\n if (I2 && s4.imageAtlas) {\n const t6 = s4.imageAtlas, e2 = t6.patternPositions[I2.to.toString()], i4 = t6.patternPositions[I2.from.toString()];\n e2 && i4 && v2.setConstantPatternPositions(e2, i4);\n }\n const E3 = T2 ? o3 : null, P2 = u2 ? Fe(t5, s4, a3, _2, E3) : h2 ? Be(t5, s4, a3, h2, _2, E3) : d2 ? Le(t5, s4, a3, r3.lineClipsArray.length, E3) : ke(t5, s4, a3, E3);\n if (u2) m2.activeTexture.set(f2.TEXTURE0), s4.imageAtlasTexture.bind(f2.LINEAR, f2.CLAMP_TO_EDGE), v2.updatePaintBuffers(_2);\n else if (h2 && (w2 || t5.lineAtlas.dirty)) m2.activeTexture.set(f2.TEXTURE0), t5.lineAtlas.bind(m2);\n else if (d2) {\n const s5 = r3.gradients[a3.id];\n let n3 = s5.texture;\n if (a3.gradientVersion !== s5.version) {\n let l3 = 256;\n if (a3.stepInterpolant) {\n const a4 = i3.getSource().maxzoom, s6 = o3.canonical.z === a4 ? Math.ceil(1 << t5.transform.maxZoom - o3.canonical.z) : 1;\n l3 = e.ac(e.aV(r3.maxLineLength / e.X * 1024 * s6), 256, m2.maxTextureSize);\n }\n s5.gradient = e.aW({ expression: a3.gradientExpression(), evaluationKey: \"lineProgress\", resolution: l3, image: s5.gradient || void 0, clips: r3.lineClipsArray }), s5.texture ? s5.texture.update(s5.gradient) : s5.texture = new b(m2, s5.gradient, f2.RGBA), s5.version = a3.gradientVersion, n3 = s5.texture;\n }\n m2.activeTexture.set(f2.TEXTURE0), n3.bind(a3.stepInterpolant ? f2.NEAREST : f2.LINEAR, f2.CLAMP_TO_EDGE);\n }\n y2.draw(m2, f2.TRIANGLES, n2, t5.stencilModeForClipping(o3), l2, ji.disabled, P2, T2, a3.id, r3.layoutVertexBuffer, r3.indexBuffer, r3.segments, a3.paint, t5.transform.zoom, v2, r3.layoutVertexBuffer2), g2 = false;\n }\n }(t4, i2, a2, s2);\n break;\n case \"fill\":\n !function(t5, i3, a3, s3) {\n const o2 = a3.paint.get(\"fill-color\"), r2 = a3.paint.get(\"fill-opacity\");\n if (0 === r2.constantOr(1)) return;\n const n2 = t5.colorModeForRenderPass(), l2 = a3.paint.get(\"fill-pattern\"), h2 = t5.opaquePassEnabledForLayer() && !l2.constantOr(1) && 1 === o2.constantOr(e.aM.transparent).a && 1 === r2.constantOr(0) ? \"opaque\" : \"translucent\";\n if (t5.renderPass === h2) {\n const e2 = t5.depthModeForSublayer(1, \"opaque\" === t5.renderPass ? Oi.ReadWrite : Oi.ReadOnly);\n ia(t5, i3, a3, s3, e2, n2, false);\n }\n if (\"translucent\" === t5.renderPass && a3.paint.get(\"fill-antialias\")) {\n const e2 = t5.depthModeForSublayer(a3.getPaintProperty(\"fill-outline-color\") ? 2 : 0, Oi.ReadOnly);\n ia(t5, i3, a3, s3, e2, n2, true);\n }\n }(t4, i2, a2, s2);\n break;\n case \"fill-extrusion\":\n !function(t5, e2, i3, a3) {\n const s3 = i3.paint.get(\"fill-extrusion-opacity\");\n if (0 !== s3 && \"translucent\" === t5.renderPass) {\n const o2 = new Oi(t5.context.gl.LEQUAL, Oi.ReadWrite, t5.depthRangeFor3D);\n if (1 !== s3 || i3.paint.get(\"fill-extrusion-pattern\").constantOr(1)) aa(t5, e2, i3, a3, o2, Ui.disabled, Fi.disabled), aa(t5, e2, i3, a3, o2, t5.stencilModeFor3D(), t5.colorModeForRenderPass());\n else {\n const s4 = t5.colorModeForRenderPass();\n aa(t5, e2, i3, a3, o2, Ui.disabled, s4);\n }\n }\n }(t4, i2, a2, s2);\n break;\n case \"hillshade\":\n !function(t5, e2, i3, a3) {\n if (\"offscreen\" !== t5.renderPass && \"translucent\" !== t5.renderPass) return;\n const s3 = t5.context, o2 = t5.depthModeForSublayer(0, Oi.ReadOnly), r2 = t5.colorModeForRenderPass(), [n2, l2] = \"translucent\" === t5.renderPass ? t5.stencilConfigForOverlap(a3) : [{}, a3];\n for (const a4 of l2) {\n const s4 = e2.getTile(a4);\n void 0 !== s4.needsHillshadePrepare && s4.needsHillshadePrepare && \"offscreen\" === t5.renderPass ? oa(t5, s4, i3, o2, Ui.disabled, r2) : \"translucent\" === t5.renderPass && sa(t5, a4, s4, i3, o2, n2[a4.overscaledZ], r2);\n }\n s3.viewport.set([0, 0, t5.width, t5.height]);\n }(t4, i2, a2, s2);\n break;\n case \"raster\":\n !function(t5, e2, i3, a3) {\n if (\"translucent\" !== t5.renderPass) return;\n if (0 === i3.paint.get(\"raster-opacity\")) return;\n if (!a3.length) return;\n const s3 = t5.context, o2 = s3.gl, r2 = e2.getSource(), n2 = t5.useProgram(\"raster\"), l2 = t5.colorModeForRenderPass(), [h2, c2] = r2 instanceof Q ? [{}, a3] : t5.stencilConfigForOverlap(a3), u2 = c2[c2.length - 1].overscaledZ, d2 = !t5.options.moving;\n for (const a4 of c2) {\n const c3 = t5.depthModeForSublayer(a4.overscaledZ - u2, 1 === i3.paint.get(\"raster-opacity\") ? Oi.ReadWrite : Oi.ReadOnly, o2.LESS), _2 = e2.getTile(a4);\n _2.registerFadeDuration(i3.paint.get(\"raster-fade-duration\"));\n const p2 = e2.findLoadedParent(a4, 0), m2 = e2.findLoadedSibling(a4), f2 = ra(_2, p2 || m2 || null, e2, i3, t5.transform, t5.style.map.terrain);\n let g2, v2;\n const x2 = \"nearest\" === i3.paint.get(\"raster-resampling\") ? o2.NEAREST : o2.LINEAR;\n s3.activeTexture.set(o2.TEXTURE0), _2.texture.bind(x2, o2.CLAMP_TO_EDGE, o2.LINEAR_MIPMAP_NEAREST), s3.activeTexture.set(o2.TEXTURE1), p2 ? (p2.texture.bind(x2, o2.CLAMP_TO_EDGE, o2.LINEAR_MIPMAP_NEAREST), g2 = Math.pow(2, p2.tileID.overscaledZ - _2.tileID.overscaledZ), v2 = [_2.tileID.canonical.x * g2 % 1, _2.tileID.canonical.y * g2 % 1]) : _2.texture.bind(x2, o2.CLAMP_TO_EDGE, o2.LINEAR_MIPMAP_NEAREST), _2.texture.useMipmap && s3.extTextureFilterAnisotropic && t5.transform.pitch > 20 && o2.texParameterf(o2.TEXTURE_2D, s3.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, s3.extTextureFilterAnisotropicMax);\n const y2 = t5.style.map.terrain && t5.style.map.terrain.getTerrainData(a4), b2 = y2 ? a4 : null, w2 = b2 ? b2.posMatrix : t5.transform.calculatePosMatrix(a4.toUnwrapped(), d2), T2 = Ue(w2, v2 || [0, 0], g2 || 1, f2, i3);\n r2 instanceof Q ? n2.draw(s3, o2.TRIANGLES, c3, Ui.disabled, l2, ji.disabled, T2, y2, i3.id, r2.boundsBuffer, t5.quadTriangleIndexBuffer, r2.boundsSegments) : n2.draw(s3, o2.TRIANGLES, c3, h2[a4.overscaledZ], l2, ji.disabled, T2, y2, i3.id, t5.rasterBoundsBuffer, t5.quadTriangleIndexBuffer, t5.rasterBoundsSegments);\n }\n }(t4, i2, a2, s2);\n break;\n case \"background\":\n !function(t5, e2, i3, a3) {\n const s3 = i3.paint.get(\"background-color\"), o2 = i3.paint.get(\"background-opacity\");\n if (0 === o2) return;\n const r2 = t5.context, n2 = r2.gl, l2 = t5.transform, h2 = l2.tileSize, c2 = i3.paint.get(\"background-pattern\");\n if (t5.isPatternMissing(c2)) return;\n const u2 = !c2 && 1 === s3.a && 1 === o2 && t5.opaquePassEnabledForLayer() ? \"opaque\" : \"translucent\";\n if (t5.renderPass !== u2) return;\n const d2 = Ui.disabled, _2 = t5.depthModeForSublayer(0, \"opaque\" === u2 ? Oi.ReadWrite : Oi.ReadOnly), p2 = t5.colorModeForRenderPass(), m2 = t5.useProgram(c2 ? \"backgroundPattern\" : \"background\"), f2 = a3 || l2.coveringTiles({ tileSize: h2, terrain: t5.style.map.terrain });\n c2 && (r2.activeTexture.set(n2.TEXTURE0), t5.imageManager.bind(t5.context));\n const g2 = i3.getCrossfadeParameters();\n for (const e3 of f2) {\n const l3 = a3 ? e3.posMatrix : t5.transform.calculatePosMatrix(e3.toUnwrapped()), u3 = c2 ? He(l3, o2, t5, c2, { tileID: e3, tileSize: h2 }, g2) : Ge(l3, o2, s3), f3 = t5.style.map.terrain && t5.style.map.terrain.getTerrainData(e3);\n m2.draw(r2, n2.TRIANGLES, _2, d2, p2, ji.disabled, u3, f3, i3.id, t5.tileExtentBuffer, t5.quadTriangleIndexBuffer, t5.tileExtentSegments);\n }\n }(t4, 0, a2, s2);\n break;\n case \"custom\":\n !function(t5, e2, i3) {\n const a3 = t5.context, s3 = i3.implementation;\n if (\"offscreen\" === t5.renderPass) {\n const e3 = s3.prerender;\n e3 && (t5.setCustomLayerDefaults(), a3.setColorMode(t5.colorModeForRenderPass()), e3.call(s3, a3.gl, t5.transform.customLayerMatrix()), a3.setDirty(), t5.setBaseState());\n } else if (\"translucent\" === t5.renderPass) {\n t5.setCustomLayerDefaults(), a3.setColorMode(t5.colorModeForRenderPass()), a3.setStencilMode(Ui.disabled);\n const e3 = \"3d\" === s3.renderingMode ? new Oi(t5.context.gl.LEQUAL, Oi.ReadWrite, t5.depthRangeFor3D) : t5.depthModeForSublayer(0, Oi.ReadOnly);\n a3.setDepthMode(e3), s3.render(a3.gl, t5.transform.customLayerMatrix(), { farZ: t5.transform.farZ, nearZ: t5.transform.nearZ, fov: t5.transform._fov, modelViewProjectionMatrix: t5.transform.modelViewProjectionMatrix, projectionMatrix: t5.transform.projectionMatrix }), a3.setDirty(), t5.setBaseState(), a3.bindFramebuffer.set(null);\n }\n }(t4, 0, a2);\n }\n }\n translatePosMatrix(t4, i2, a2, s2, o2) {\n if (!a2[0] && !a2[1]) return t4;\n const r2 = o2 ? \"map\" === s2 ? this.transform.angle : 0 : \"viewport\" === s2 ? -this.transform.angle : 0;\n if (r2) {\n const t5 = Math.sin(r2), e2 = Math.cos(r2);\n a2 = [a2[0] * e2 - a2[1] * t5, a2[0] * t5 + a2[1] * e2];\n }\n const n2 = [o2 ? a2[0] : Bt(i2, a2[0], this.transform.zoom), o2 ? a2[1] : Bt(i2, a2[1], this.transform.zoom), 0], l2 = new Float32Array(16);\n return e.J(l2, t4, n2), l2;\n }\n saveTileTexture(t4) {\n const e2 = this._tileTextures[t4.size[0]];\n e2 ? e2.push(t4) : this._tileTextures[t4.size[0]] = [t4];\n }\n getTileTexture(t4) {\n const e2 = this._tileTextures[t4];\n return e2 && e2.length > 0 ? e2.pop() : null;\n }\n isPatternMissing(t4) {\n if (!t4) return false;\n if (!t4.from || !t4.to) return true;\n const e2 = this.imageManager.getPattern(t4.from.toString()), i2 = this.imageManager.getPattern(t4.to.toString());\n return !e2 || !i2;\n }\n useProgram(t4, e2) {\n this.cache = this.cache || {};\n const i2 = t4 + (e2 ? e2.cacheKey : \"\") + (this._showOverdrawInspector ? \"/overdraw\" : \"\") + (this.style.map.terrain ? \"/terrain\" : \"\");\n return this.cache[i2] || (this.cache[i2] = new xe(this.context, pe[t4], e2, We[t4], this._showOverdrawInspector, this.style.map.terrain)), this.cache[i2];\n }\n setCustomLayerDefaults() {\n this.context.unbindVAO(), this.context.cullFace.setDefault(), this.context.activeTexture.setDefault(), this.context.pixelStoreUnpack.setDefault(), this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.context.pixelStoreUnpackFlipY.setDefault();\n }\n setBaseState() {\n const t4 = this.context.gl;\n this.context.cullFace.set(false), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(t4.FUNC_ADD);\n }\n initDebugOverlayCanvas() {\n null == this.debugOverlayCanvas && (this.debugOverlayCanvas = document.createElement(\"canvas\"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new b(this.context, this.debugOverlayCanvas, this.context.gl.RGBA));\n }\n destroy() {\n this.debugOverlayTexture && this.debugOverlayTexture.destroy();\n }\n overLimit() {\n const { drawingBufferWidth: t4, drawingBufferHeight: e2 } = this.context.gl;\n return this.width !== t4 || this.height !== e2;\n }\n }\n class xa {\n constructor(t4, e2) {\n this.points = t4, this.planes = e2;\n }\n static fromInvProjectionMatrix(t4, i2, a2) {\n const s2 = Math.pow(2, a2), o2 = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]].map((a3) => {\n const o3 = 1 / (a3 = e.af([], a3, t4))[3] / i2 * s2;\n return e.b1(a3, a3, [o3, o3, 1 / a3[3], o3]);\n }), r2 = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]].map((t5) => {\n const e2 = function(t6, e3) {\n var i4 = e3[0], a4 = e3[1], s4 = e3[2], o3 = i4 * i4 + a4 * a4 + s4 * s4;\n return o3 > 0 && (o3 = 1 / Math.sqrt(o3)), t6[0] = e3[0] * o3, t6[1] = e3[1] * o3, t6[2] = e3[2] * o3, t6;\n }([], function(t6, e3, i4) {\n var a4 = e3[0], s4 = e3[1], o3 = e3[2], r3 = i4[0], n2 = i4[1], l2 = i4[2];\n return t6[0] = s4 * l2 - o3 * n2, t6[1] = o3 * r3 - a4 * l2, t6[2] = a4 * n2 - s4 * r3, t6;\n }([], g([], o2[t5[0]], o2[t5[1]]), g([], o2[t5[2]], o2[t5[1]]))), i3 = -((a3 = e2)[0] * (s3 = o2[t5[1]])[0] + a3[1] * s3[1] + a3[2] * s3[2]);\n var a3, s3;\n return e2.concat(i3);\n });\n return new xa(o2, r2);\n }\n }\n class ya {\n constructor(t4, e2) {\n this.min = t4, this.max = e2, this.center = function(t5, e3, i2) {\n return t5[0] = 0.5 * e3[0], t5[1] = 0.5 * e3[1], t5[2] = 0.5 * e3[2], t5;\n }([], function(t5, e3, i2) {\n return t5[0] = e3[0] + i2[0], t5[1] = e3[1] + i2[1], t5[2] = e3[2] + i2[2], t5;\n }([], this.min, this.max));\n }\n quadrant(t4) {\n const e2 = [t4 % 2 == 0, t4 < 2], i2 = m(this.min), a2 = m(this.max);\n for (let t5 = 0; t5 < e2.length; t5++) i2[t5] = e2[t5] ? this.min[t5] : this.center[t5], a2[t5] = e2[t5] ? this.center[t5] : this.max[t5];\n return a2[2] = this.max[2], new ya(i2, a2);\n }\n distanceX(t4) {\n return Math.max(Math.min(this.max[0], t4[0]), this.min[0]) - t4[0];\n }\n distanceY(t4) {\n return Math.max(Math.min(this.max[1], t4[1]), this.min[1]) - t4[1];\n }\n intersects(t4) {\n const i2 = [[this.min[0], this.min[1], this.min[2], 1], [this.max[0], this.min[1], this.min[2], 1], [this.max[0], this.max[1], this.min[2], 1], [this.min[0], this.max[1], this.min[2], 1], [this.min[0], this.min[1], this.max[2], 1], [this.max[0], this.min[1], this.max[2], 1], [this.max[0], this.max[1], this.max[2], 1], [this.min[0], this.max[1], this.max[2], 1]];\n let a2 = true;\n for (let s2 = 0; s2 < t4.planes.length; s2++) {\n const o2 = t4.planes[s2];\n let r2 = 0;\n for (let t5 = 0; t5 < i2.length; t5++) e.b2(o2, i2[t5]) >= 0 && r2++;\n if (0 === r2) return 0;\n r2 !== i2.length && (a2 = false);\n }\n if (a2) return 2;\n for (let e2 = 0; e2 < 3; e2++) {\n let i3 = Number.MAX_VALUE, a3 = -Number.MAX_VALUE;\n for (let s2 = 0; s2 < t4.points.length; s2++) {\n const o2 = t4.points[s2][e2] - this.min[e2];\n i3 = Math.min(i3, o2), a3 = Math.max(a3, o2);\n }\n if (a3 < 0 || i3 > this.max[e2] - this.min[e2]) return 0;\n }\n return 1;\n }\n }\n class ba {\n constructor(t4 = 0, e2 = 0, i2 = 0, a2 = 0) {\n if (isNaN(t4) || t4 < 0 || isNaN(e2) || e2 < 0 || isNaN(i2) || i2 < 0 || isNaN(a2) || a2 < 0) throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");\n this.top = t4, this.bottom = e2, this.left = i2, this.right = a2;\n }\n interpolate(t4, i2, a2) {\n return null != i2.top && null != t4.top && (this.top = e.y.number(t4.top, i2.top, a2)), null != i2.bottom && null != t4.bottom && (this.bottom = e.y.number(t4.bottom, i2.bottom, a2)), null != i2.left && null != t4.left && (this.left = e.y.number(t4.left, i2.left, a2)), null != i2.right && null != t4.right && (this.right = e.y.number(t4.right, i2.right, a2)), this;\n }\n getCenter(t4, i2) {\n const a2 = e.ac((this.left + t4 - this.right) / 2, 0, t4), s2 = e.ac((this.top + i2 - this.bottom) / 2, 0, i2);\n return new e.P(a2, s2);\n }\n equals(t4) {\n return this.top === t4.top && this.bottom === t4.bottom && this.left === t4.left && this.right === t4.right;\n }\n clone() {\n return new ba(this.top, this.bottom, this.left, this.right);\n }\n toJSON() {\n return { top: this.top, bottom: this.bottom, left: this.left, right: this.right };\n }\n }\n const wa = 85.051129;\n class Ta {\n constructor(t4, i2, a2, s2, o2) {\n this.tileSize = 512, this._renderWorldCopies = void 0 === o2 || !!o2, this._minZoom = t4 || 0, this._maxZoom = i2 || 22, this._minPitch = null == a2 ? 0 : a2, this._maxPitch = null == s2 ? 60 : s2, this.setMaxBounds(), this.width = 0, this.height = 0, this._center = new e.N(0, 0), this._elevation = 0, this.zoom = 0, this.angle = 0, this._fov = 0.6435011087932844, this._pitch = 0, this._unmodified = true, this._edgeInsets = new ba(), this._posMatrixCache = {}, this._alignedPosMatrixCache = {}, this._fogMatrixCache = {}, this.minElevationForCurrentTile = 0;\n }\n clone() {\n const t4 = new Ta(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies);\n return t4.apply(this), t4;\n }\n apply(t4) {\n this.tileSize = t4.tileSize, this.latRange = t4.latRange, this.lngRange = t4.lngRange, this.width = t4.width, this.height = t4.height, this._center = t4._center, this._elevation = t4._elevation, this.minElevationForCurrentTile = t4.minElevationForCurrentTile, this.zoom = t4.zoom, this.angle = t4.angle, this._fov = t4._fov, this._pitch = t4._pitch, this._unmodified = t4._unmodified, this._edgeInsets = t4._edgeInsets.clone(), this._calcMatrices();\n }\n get minZoom() {\n return this._minZoom;\n }\n set minZoom(t4) {\n this._minZoom !== t4 && (this._minZoom = t4, this.zoom = Math.max(this.zoom, t4));\n }\n get maxZoom() {\n return this._maxZoom;\n }\n set maxZoom(t4) {\n this._maxZoom !== t4 && (this._maxZoom = t4, this.zoom = Math.min(this.zoom, t4));\n }\n get minPitch() {\n return this._minPitch;\n }\n set minPitch(t4) {\n this._minPitch !== t4 && (this._minPitch = t4, this.pitch = Math.max(this.pitch, t4));\n }\n get maxPitch() {\n return this._maxPitch;\n }\n set maxPitch(t4) {\n this._maxPitch !== t4 && (this._maxPitch = t4, this.pitch = Math.min(this.pitch, t4));\n }\n get renderWorldCopies() {\n return this._renderWorldCopies;\n }\n set renderWorldCopies(t4) {\n void 0 === t4 ? t4 = true : null === t4 && (t4 = false), this._renderWorldCopies = t4;\n }\n get worldSize() {\n return this.tileSize * this.scale;\n }\n get centerOffset() {\n return this.centerPoint._sub(this.size._div(2));\n }\n get size() {\n return new e.P(this.width, this.height);\n }\n get bearing() {\n return -this.angle / Math.PI * 180;\n }\n set bearing(t4) {\n const i2 = -e.b3(t4, -180, 180) * Math.PI / 180;\n this.angle !== i2 && (this._unmodified = false, this.angle = i2, this._calcMatrices(), this.rotationMatrix = function() {\n var t5 = new e.A(4);\n return e.A != Float32Array && (t5[1] = 0, t5[2] = 0), t5[0] = 1, t5[3] = 1, t5;\n }(), function(t5, e2, i3) {\n var a2 = e2[0], s2 = e2[1], o2 = e2[2], r2 = e2[3], n2 = Math.sin(i3), l2 = Math.cos(i3);\n t5[0] = a2 * l2 + o2 * n2, t5[1] = s2 * l2 + r2 * n2, t5[2] = a2 * -n2 + o2 * l2, t5[3] = s2 * -n2 + r2 * l2;\n }(this.rotationMatrix, this.rotationMatrix, this.angle));\n }\n get pitch() {\n return this._pitch / Math.PI * 180;\n }\n set pitch(t4) {\n const i2 = e.ac(t4, this.minPitch, this.maxPitch) / 180 * Math.PI;\n this._pitch !== i2 && (this._unmodified = false, this._pitch = i2, this._calcMatrices());\n }\n get fov() {\n return this._fov / Math.PI * 180;\n }\n set fov(t4) {\n t4 = Math.max(0.01, Math.min(60, t4)), this._fov !== t4 && (this._unmodified = false, this._fov = t4 / 180 * Math.PI, this._calcMatrices());\n }\n get zoom() {\n return this._zoom;\n }\n set zoom(t4) {\n const e2 = Math.min(Math.max(t4, this.minZoom), this.maxZoom);\n this._zoom !== e2 && (this._unmodified = false, this._zoom = e2, this.tileZoom = Math.max(0, Math.floor(e2)), this.scale = this.zoomScale(e2), this._constrain(), this._calcMatrices());\n }\n get center() {\n return this._center;\n }\n set center(t4) {\n t4.lat === this._center.lat && t4.lng === this._center.lng || (this._unmodified = false, this._center = t4, this._constrain(), this._calcMatrices());\n }\n get elevation() {\n return this._elevation;\n }\n set elevation(t4) {\n t4 !== this._elevation && (this._elevation = t4, this._constrain(), this._calcMatrices());\n }\n get padding() {\n return this._edgeInsets.toJSON();\n }\n set padding(t4) {\n this._edgeInsets.equals(t4) || (this._unmodified = false, this._edgeInsets.interpolate(this._edgeInsets, t4, 1), this._calcMatrices());\n }\n get centerPoint() {\n return this._edgeInsets.getCenter(this.width, this.height);\n }\n isPaddingEqual(t4) {\n return this._edgeInsets.equals(t4);\n }\n interpolatePadding(t4, e2, i2) {\n this._unmodified = false, this._edgeInsets.interpolate(t4, e2, i2), this._constrain(), this._calcMatrices();\n }\n coveringZoomLevel(t4) {\n const e2 = (t4.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / t4.tileSize));\n return Math.max(0, e2);\n }\n getVisibleUnwrappedCoordinates(t4) {\n const i2 = [new e.b4(0, t4)];\n if (this._renderWorldCopies) {\n const a2 = this.pointCoordinate(new e.P(0, 0)), s2 = this.pointCoordinate(new e.P(this.width, 0)), o2 = this.pointCoordinate(new e.P(this.width, this.height)), r2 = this.pointCoordinate(new e.P(0, this.height)), n2 = Math.floor(Math.min(a2.x, s2.x, o2.x, r2.x)), l2 = Math.floor(Math.max(a2.x, s2.x, o2.x, r2.x)), h2 = 1;\n for (let a3 = n2 - h2; a3 <= l2 + h2; a3++) 0 !== a3 && i2.push(new e.b4(a3, t4));\n }\n return i2;\n }\n coveringTiles(t4) {\n var i2, a2;\n let s2 = this.coveringZoomLevel(t4);\n const o2 = s2;\n if (void 0 !== t4.minzoom && s2 < t4.minzoom) return [];\n void 0 !== t4.maxzoom && s2 > t4.maxzoom && (s2 = t4.maxzoom);\n const r2 = this.pointCoordinate(this.getCameraPoint()), n2 = e.Z.fromLngLat(this.center), l2 = Math.pow(2, s2), h2 = [l2 * r2.x, l2 * r2.y, 0], c2 = [l2 * n2.x, l2 * n2.y, 0], u2 = xa.fromInvProjectionMatrix(this.invModelViewProjectionMatrix, this.worldSize, s2);\n let d2 = t4.minzoom || 0;\n !t4.terrain && this.pitch <= 60 && this._edgeInsets.top < 0.1 && (d2 = s2);\n const _2 = t4.terrain ? 2 / Math.min(this.tileSize, t4.tileSize) * this.tileSize : 3, p2 = (t5) => ({ aabb: new ya([t5 * l2, 0, 0], [(t5 + 1) * l2, l2, 0]), zoom: 0, x: 0, y: 0, wrap: t5, fullyVisible: false }), m2 = [], f2 = [], g2 = s2, x2 = t4.reparseOverscaled ? o2 : s2;\n if (this._renderWorldCopies) for (let t5 = 1; t5 <= 3; t5++) m2.push(p2(-t5)), m2.push(p2(t5));\n for (m2.push(p2(0)); m2.length > 0; ) {\n const s3 = m2.pop(), o3 = s3.x, r3 = s3.y;\n let n3 = s3.fullyVisible;\n if (!n3) {\n const t5 = s3.aabb.intersects(u2);\n if (0 === t5) continue;\n n3 = 2 === t5;\n }\n const l3 = t4.terrain ? h2 : c2, p3 = s3.aabb.distanceX(l3), y2 = s3.aabb.distanceY(l3), b2 = Math.max(Math.abs(p3), Math.abs(y2));\n if (s3.zoom === g2 || b2 > _2 + (1 << g2 - s3.zoom) - 2 && s3.zoom >= d2) {\n const t5 = g2 - s3.zoom, i3 = h2[0] - 0.5 - (o3 << t5), a3 = h2[1] - 0.5 - (r3 << t5);\n f2.push({ tileID: new e.S(s3.zoom === g2 ? x2 : s3.zoom, s3.wrap, s3.zoom, o3, r3), distanceSq: v([c2[0] - 0.5 - o3, c2[1] - 0.5 - r3]), tileDistanceToCamera: Math.sqrt(i3 * i3 + a3 * a3) });\n } else for (let l4 = 0; l4 < 4; l4++) {\n const h3 = (o3 << 1) + l4 % 2, c3 = (r3 << 1) + (l4 >> 1), u3 = s3.zoom + 1;\n let d3 = s3.aabb.quadrant(l4);\n if (t4.terrain) {\n const o4 = new e.S(u3, s3.wrap, u3, h3, c3), r4 = t4.terrain.getMinMaxElevation(o4), n4 = null !== (i2 = r4.minElevation) && void 0 !== i2 ? i2 : this.elevation, l5 = null !== (a2 = r4.maxElevation) && void 0 !== a2 ? a2 : this.elevation;\n d3 = new ya([d3.min[0], d3.min[1], n4], [d3.max[0], d3.max[1], l5]);\n }\n m2.push({ aabb: d3, zoom: u3, x: h3, y: c3, wrap: s3.wrap, fullyVisible: n3 });\n }\n }\n return f2.sort((t5, e2) => t5.distanceSq - e2.distanceSq).map((t5) => t5.tileID);\n }\n resize(t4, e2) {\n this.width = t4, this.height = e2, this.pixelsToGLUnits = [2 / t4, -2 / e2], this._constrain(), this._calcMatrices();\n }\n get unmodified() {\n return this._unmodified;\n }\n zoomScale(t4) {\n return Math.pow(2, t4);\n }\n scaleZoom(t4) {\n return Math.log(t4) / Math.LN2;\n }\n project(t4) {\n const i2 = e.ac(t4.lat, -85.051129, wa);\n return new e.P(e.O(t4.lng) * this.worldSize, e.Q(i2) * this.worldSize);\n }\n unproject(t4) {\n return new e.Z(t4.x / this.worldSize, t4.y / this.worldSize).toLngLat();\n }\n get point() {\n return this.project(this.center);\n }\n getCameraPosition() {\n return { lngLat: this.pointLocation(this.getCameraPoint()), altitude: Math.cos(this._pitch) * this.cameraToCenterDistance / this._pixelPerMeter + this.elevation };\n }\n recalculateZoom(t4) {\n const i2 = this.elevation, a2 = Math.cos(this._pitch) * this.cameraToCenterDistance / this._pixelPerMeter, s2 = this.pointLocation(this.centerPoint, t4), o2 = t4.getElevationForLngLatZoom(s2, this.tileZoom);\n if (!(this.elevation - o2)) return;\n const r2 = a2 + i2 - o2, n2 = Math.cos(this._pitch) * this.cameraToCenterDistance / r2 / e.b5(1, s2.lat), l2 = this.scaleZoom(n2 / this.tileSize);\n this._elevation = o2, this._center = s2, this.zoom = l2;\n }\n setLocationAtPoint(t4, i2) {\n const a2 = this.pointCoordinate(i2), s2 = this.pointCoordinate(this.centerPoint), o2 = this.locationCoordinate(t4), r2 = new e.Z(o2.x - (a2.x - s2.x), o2.y - (a2.y - s2.y));\n this.center = this.coordinateLocation(r2), this._renderWorldCopies && (this.center = this.center.wrap());\n }\n locationPoint(t4, e2) {\n return e2 ? this.coordinatePoint(this.locationCoordinate(t4), e2.getElevationForLngLatZoom(t4, this.tileZoom), this.pixelMatrix3D) : this.coordinatePoint(this.locationCoordinate(t4));\n }\n pointLocation(t4, e2) {\n return this.coordinateLocation(this.pointCoordinate(t4, e2));\n }\n locationCoordinate(t4) {\n return e.Z.fromLngLat(t4);\n }\n coordinateLocation(t4) {\n return t4 && t4.toLngLat();\n }\n pointCoordinate(t4, i2) {\n if (i2) {\n const e2 = i2.pointCoordinate(t4);\n if (null != e2) return e2;\n }\n const a2 = [t4.x, t4.y, 0, 1], s2 = [t4.x, t4.y, 1, 1];\n e.af(a2, a2, this.pixelMatrixInverse), e.af(s2, s2, this.pixelMatrixInverse);\n const o2 = a2[3], r2 = s2[3], n2 = a2[1] / o2, l2 = s2[1] / r2, h2 = a2[2] / o2, c2 = s2[2] / r2, u2 = h2 === c2 ? 0 : (0 - h2) / (c2 - h2);\n return new e.Z(e.y.number(a2[0] / o2, s2[0] / r2, u2) / this.worldSize, e.y.number(n2, l2, u2) / this.worldSize);\n }\n coordinatePoint(t4, i2 = 0, a2 = this.pixelMatrix) {\n const s2 = [t4.x * this.worldSize, t4.y * this.worldSize, i2, 1];\n return e.af(s2, s2, a2), new e.P(s2[0] / s2[3], s2[1] / s2[3]);\n }\n getBounds() {\n const t4 = Math.max(0, this.height / 2 - this.getHorizon());\n return new H().extend(this.pointLocation(new e.P(0, t4))).extend(this.pointLocation(new e.P(this.width, t4))).extend(this.pointLocation(new e.P(this.width, this.height))).extend(this.pointLocation(new e.P(0, this.height)));\n }\n getMaxBounds() {\n return this.latRange && 2 === this.latRange.length && this.lngRange && 2 === this.lngRange.length ? new H([this.lngRange[0], this.latRange[0]], [this.lngRange[1], this.latRange[1]]) : null;\n }\n getHorizon() {\n return Math.tan(Math.PI / 2 - this._pitch) * this.cameraToCenterDistance * 0.85;\n }\n setMaxBounds(t4) {\n t4 ? (this.lngRange = [t4.getWest(), t4.getEast()], this.latRange = [t4.getSouth(), t4.getNorth()], this._constrain()) : (this.lngRange = null, this.latRange = [-85.051129, wa]);\n }\n calculateTileMatrix(t4) {\n const i2 = t4.canonical, a2 = this.worldSize / this.zoomScale(i2.z), s2 = i2.x + Math.pow(2, i2.z) * t4.wrap, o2 = e.an(new Float64Array(16));\n return e.J(o2, o2, [s2 * a2, i2.y * a2, 0]), e.K(o2, o2, [a2 / e.X, a2 / e.X, 1]), o2;\n }\n calculatePosMatrix(t4, i2 = false) {\n const a2 = t4.key, s2 = i2 ? this._alignedPosMatrixCache : this._posMatrixCache;\n if (s2[a2]) return s2[a2];\n const o2 = this.calculateTileMatrix(t4);\n return e.L(o2, i2 ? this.alignedModelViewProjectionMatrix : this.modelViewProjectionMatrix, o2), s2[a2] = new Float32Array(o2), s2[a2];\n }\n calculateFogMatrix(t4) {\n const i2 = t4.key, a2 = this._fogMatrixCache;\n if (a2[i2]) return a2[i2];\n const s2 = this.calculateTileMatrix(t4);\n return e.L(s2, this.fogMatrix, s2), a2[i2] = new Float32Array(s2), a2[i2];\n }\n customLayerMatrix() {\n return this.mercatorMatrix.slice();\n }\n getConstrained(t4, i2) {\n i2 = e.ac(+i2, this.minZoom, this.maxZoom);\n const a2 = { center: new e.N(t4.lng, t4.lat), zoom: i2 };\n let s2 = this.lngRange;\n if (!this._renderWorldCopies && null === s2) {\n const t5 = 180 - 1e-10;\n s2 = [-t5, t5];\n }\n const o2 = this.tileSize * this.zoomScale(a2.zoom);\n let r2 = 0, n2 = o2, l2 = 0, h2 = o2, c2 = 0, u2 = 0;\n const { x: d2, y: _2 } = this.size;\n if (this.latRange) {\n const t5 = this.latRange;\n r2 = e.Q(t5[1]) * o2, n2 = e.Q(t5[0]) * o2, n2 - r2 < _2 && (c2 = _2 / (n2 - r2));\n }\n s2 && (l2 = e.b3(e.O(s2[0]) * o2, 0, o2), h2 = e.b3(e.O(s2[1]) * o2, 0, o2), h2 < l2 && (h2 += o2), h2 - l2 < d2 && (u2 = d2 / (h2 - l2)));\n const { x: p2, y: m2 } = this.project.call({ worldSize: o2 }, t4);\n let f2, g2;\n const v2 = Math.max(u2 || 0, c2 || 0);\n if (v2) {\n const t5 = new e.P(u2 ? (h2 + l2) / 2 : p2, c2 ? (n2 + r2) / 2 : m2);\n return a2.center = this.unproject.call({ worldSize: o2 }, t5).wrap(), a2.zoom += this.scaleZoom(v2), a2;\n }\n if (this.latRange) {\n const t5 = _2 / 2;\n m2 - t5 < r2 && (g2 = r2 + t5), m2 + t5 > n2 && (g2 = n2 - t5);\n }\n if (s2) {\n const t5 = (l2 + h2) / 2;\n let i3 = p2;\n this._renderWorldCopies && (i3 = e.b3(p2, t5 - o2 / 2, t5 + o2 / 2));\n const a3 = d2 / 2;\n i3 - a3 < l2 && (f2 = l2 + a3), i3 + a3 > h2 && (f2 = h2 - a3);\n }\n if (void 0 !== f2 || void 0 !== g2) {\n const t5 = new e.P(null != f2 ? f2 : p2, null != g2 ? g2 : m2);\n a2.center = this.unproject.call({ worldSize: o2 }, t5).wrap();\n }\n return a2;\n }\n _constrain() {\n if (!this.center || !this.width || !this.height || this._constraining) return;\n this._constraining = true;\n const t4 = this._unmodified, { center: e2, zoom: i2 } = this.getConstrained(this.center, this.zoom);\n this.center = e2, this.zoom = i2, this._unmodified = t4, this._constraining = false;\n }\n _calcMatrices() {\n if (!this.height) return;\n const t4 = this.centerOffset, i2 = this.point.x, a2 = this.point.y;\n this.cameraToCenterDistance = 0.5 / Math.tan(this._fov / 2) * this.height, this._pixelPerMeter = e.b5(1, this.center.lat) * this.worldSize;\n let s2 = e.an(new Float64Array(16));\n e.K(s2, s2, [this.width / 2, -this.height / 2, 1]), e.J(s2, s2, [1, -1, 0]), this.labelPlaneMatrix = s2, s2 = e.an(new Float64Array(16)), e.K(s2, s2, [1, -1, 1]), e.J(s2, s2, [-1, -1, 0]), e.K(s2, s2, [2 / this.width, 2 / this.height, 1]), this.glCoordMatrix = s2;\n const o2 = this.cameraToCenterDistance + this._elevation * this._pixelPerMeter / Math.cos(this._pitch), r2 = Math.min(this.elevation, this.minElevationForCurrentTile), n2 = o2 - r2 * this._pixelPerMeter / Math.cos(this._pitch), l2 = r2 < 0 ? n2 : o2, h2 = Math.PI / 2 + this._pitch, c2 = this._fov * (0.5 + t4.y / this.height), u2 = Math.sin(c2) * l2 / Math.sin(e.ac(Math.PI - h2 - c2, 0.01, Math.PI - 0.01)), d2 = this.getHorizon(), _2 = 2 * Math.atan(d2 / this.cameraToCenterDistance) * (0.5 + t4.y / (2 * d2)), p2 = Math.sin(_2) * l2 / Math.sin(e.ac(Math.PI - h2 - _2, 0.01, Math.PI - 0.01)), m2 = Math.min(u2, p2);\n this.farZ = 1.01 * (Math.cos(Math.PI / 2 - this._pitch) * m2 + l2), this.nearZ = this.height / 50, s2 = new Float64Array(16), e.b6(s2, this._fov, this.width / this.height, this.nearZ, this.farZ), s2[8] = 2 * -t4.x / this.width, s2[9] = 2 * t4.y / this.height, this.projectionMatrix = e.ae(s2), e.K(s2, s2, [1, -1, 1]), e.J(s2, s2, [0, 0, -this.cameraToCenterDistance]), e.b7(s2, s2, this._pitch), e.ad(s2, s2, this.angle), e.J(s2, s2, [-i2, -a2, 0]), this.mercatorMatrix = e.K([], s2, [this.worldSize, this.worldSize, this.worldSize]), e.K(s2, s2, [1, 1, this._pixelPerMeter]), this.pixelMatrix = e.L(new Float64Array(16), this.labelPlaneMatrix, s2), e.J(s2, s2, [0, 0, -this.elevation]), this.modelViewProjectionMatrix = s2, this.invModelViewProjectionMatrix = e.as([], s2), this.fogMatrix = new Float64Array(16), e.b6(this.fogMatrix, this._fov, this.width / this.height, o2, this.farZ), this.fogMatrix[8] = 2 * -t4.x / this.width, this.fogMatrix[9] = 2 * t4.y / this.height, e.K(this.fogMatrix, this.fogMatrix, [1, -1, 1]), e.J(this.fogMatrix, this.fogMatrix, [0, 0, -this.cameraToCenterDistance]), e.b7(this.fogMatrix, this.fogMatrix, this._pitch), e.ad(this.fogMatrix, this.fogMatrix, this.angle), e.J(this.fogMatrix, this.fogMatrix, [-i2, -a2, 0]), e.K(this.fogMatrix, this.fogMatrix, [1, 1, this._pixelPerMeter]), e.J(this.fogMatrix, this.fogMatrix, [0, 0, -this.elevation]), this.pixelMatrix3D = e.L(new Float64Array(16), this.labelPlaneMatrix, s2);\n const f2 = this.width % 2 / 2, g2 = this.height % 2 / 2, v2 = Math.cos(this.angle), x2 = Math.sin(this.angle), y2 = i2 - Math.round(i2) + v2 * f2 + x2 * g2, b2 = a2 - Math.round(a2) + v2 * g2 + x2 * f2, w2 = new Float64Array(s2);\n if (e.J(w2, w2, [y2 > 0.5 ? y2 - 1 : y2, b2 > 0.5 ? b2 - 1 : b2, 0]), this.alignedModelViewProjectionMatrix = w2, s2 = e.as(new Float64Array(16), this.pixelMatrix), !s2) throw new Error(\"failed to invert matrix\");\n this.pixelMatrixInverse = s2, this._posMatrixCache = {}, this._alignedPosMatrixCache = {}, this._fogMatrixCache = {};\n }\n maxPitchScaleFactor() {\n if (!this.pixelMatrixInverse) return 1;\n const t4 = this.pointCoordinate(new e.P(0, 0)), i2 = [t4.x * this.worldSize, t4.y * this.worldSize, 0, 1];\n return e.af(i2, i2, this.pixelMatrix)[3] / this.cameraToCenterDistance;\n }\n getCameraPoint() {\n const t4 = Math.tan(this._pitch) * (this.cameraToCenterDistance || 1);\n return this.centerPoint.add(new e.P(0, t4));\n }\n getCameraQueryGeometry(t4) {\n const i2 = this.getCameraPoint();\n if (1 === t4.length) return [t4[0], i2];\n {\n let a2 = i2.x, s2 = i2.y, o2 = i2.x, r2 = i2.y;\n for (const e2 of t4) a2 = Math.min(a2, e2.x), s2 = Math.min(s2, e2.y), o2 = Math.max(o2, e2.x), r2 = Math.max(r2, e2.y);\n return [new e.P(a2, s2), new e.P(o2, s2), new e.P(o2, r2), new e.P(a2, r2), new e.P(a2, s2)];\n }\n }\n lngLatToCameraDepth(t4, i2) {\n const a2 = this.locationCoordinate(t4), s2 = [a2.x * this.worldSize, a2.y * this.worldSize, i2, 1];\n return e.af(s2, s2, this.modelViewProjectionMatrix), s2[2] / s2[3];\n }\n }\n function Ia(t4, e2) {\n let i2, a2 = false, s2 = null, o2 = null;\n const r2 = () => {\n s2 = null, a2 && (t4.apply(o2, i2), s2 = setTimeout(r2, e2), a2 = false);\n };\n return (...t5) => (a2 = true, o2 = this, i2 = t5, s2 || r2(), s2);\n }\n class Ea {\n constructor(t4) {\n this._getCurrentHash = () => {\n const t5 = window.location.hash.replace(\"#\", \"\");\n if (this._hashName) {\n let e2;\n return t5.split(\"&\").map((t6) => t6.split(\"=\")).forEach((t6) => {\n t6[0] === this._hashName && (e2 = t6);\n }), (e2 && e2[1] || \"\").split(\"/\");\n }\n return t5.split(\"/\");\n }, this._onHashChange = () => {\n const t5 = this._getCurrentHash();\n if (t5.length >= 3 && !t5.some((t6) => isNaN(t6))) {\n const e2 = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(t5[3] || 0) : this._map.getBearing();\n return this._map.jumpTo({ center: [+t5[2], +t5[1]], zoom: +t5[0], bearing: e2, pitch: +(t5[4] || 0) }), true;\n }\n return false;\n }, this._updateHashUnthrottled = () => {\n const t5 = window.location.href.replace(/(#.*)?$/, this.getHashString());\n window.history.replaceState(window.history.state, null, t5);\n }, this._removeHash = () => {\n const t5 = this._getCurrentHash();\n if (0 === t5.length) return;\n const e2 = t5.join(\"/\");\n let i2 = e2;\n i2.split(\"&\").length > 0 && (i2 = i2.split(\"&\")[0]), this._hashName && (i2 = `${this._hashName}=${e2}`);\n let a2 = window.location.hash.replace(i2, \"\");\n a2.startsWith(\"#&\") ? a2 = a2.slice(0, 1) + a2.slice(2) : \"#\" === a2 && (a2 = \"\");\n let s2 = window.location.href.replace(/(#.+)?$/, a2);\n s2 = s2.replace(\"&&\", \"&\"), window.history.replaceState(window.history.state, null, s2);\n }, this._updateHash = Ia(this._updateHashUnthrottled, 300), this._hashName = t4 && encodeURIComponent(t4);\n }\n addTo(t4) {\n return this._map = t4, addEventListener(\"hashchange\", this._onHashChange, false), this._map.on(\"moveend\", this._updateHash), this;\n }\n remove() {\n return removeEventListener(\"hashchange\", this._onHashChange, false), this._map.off(\"moveend\", this._updateHash), clearTimeout(this._updateHash()), this._removeHash(), delete this._map, this;\n }\n getHashString(t4) {\n const e2 = this._map.getCenter(), i2 = Math.round(100 * this._map.getZoom()) / 100, a2 = Math.ceil((i2 * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), s2 = Math.pow(10, a2), o2 = Math.round(e2.lng * s2) / s2, r2 = Math.round(e2.lat * s2) / s2, n2 = this._map.getBearing(), l2 = this._map.getPitch();\n let h2 = \"\";\n if (h2 += t4 ? `/${o2}/${r2}/${i2}` : `${i2}/${r2}/${o2}`, (n2 || l2) && (h2 += \"/\" + Math.round(10 * n2) / 10), l2 && (h2 += `/${Math.round(l2)}`), this._hashName) {\n const t5 = this._hashName;\n let e3 = false;\n const i3 = window.location.hash.slice(1).split(\"&\").map((i4) => {\n const a3 = i4.split(\"=\")[0];\n return a3 === t5 ? (e3 = true, `${a3}=${h2}`) : i4;\n }).filter((t6) => t6);\n return e3 || i3.push(`${t5}=${h2}`), `#${i3.join(\"&\")}`;\n }\n return `#${h2}`;\n }\n }\n const Pa = { linearity: 0.3, easing: e.b8(0, 0, 0.3, 1) }, Ca = e.e({ deceleration: 2500, maxSpeed: 1400 }, Pa), Sa = e.e({ deceleration: 20, maxSpeed: 1400 }, Pa), za = e.e({ deceleration: 1e3, maxSpeed: 360 }, Pa), Da = e.e({ deceleration: 1e3, maxSpeed: 90 }, Pa);\n class Ma {\n constructor(t4) {\n this._map = t4, this.clear();\n }\n clear() {\n this._inertiaBuffer = [];\n }\n record(t4) {\n this._drainInertiaBuffer(), this._inertiaBuffer.push({ time: o.now(), settings: t4 });\n }\n _drainInertiaBuffer() {\n const t4 = this._inertiaBuffer, e2 = o.now();\n for (; t4.length > 0 && e2 - t4[0].time > 160; ) t4.shift();\n }\n _onMoveEnd(t4) {\n if (this._drainInertiaBuffer(), this._inertiaBuffer.length < 2) return;\n const i2 = { zoom: 0, bearing: 0, pitch: 0, pan: new e.P(0, 0), pinchAround: void 0, around: void 0 };\n for (const { settings: t5 } of this._inertiaBuffer) i2.zoom += t5.zoomDelta || 0, i2.bearing += t5.bearingDelta || 0, i2.pitch += t5.pitchDelta || 0, t5.panDelta && i2.pan._add(t5.panDelta), t5.around && (i2.around = t5.around), t5.pinchAround && (i2.pinchAround = t5.pinchAround);\n const a2 = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, s2 = {};\n if (i2.pan.mag()) {\n const o2 = Ra(i2.pan.mag(), a2, e.e({}, Ca, t4 || {}));\n s2.offset = i2.pan.mult(o2.amount / i2.pan.mag()), s2.center = this._map.transform.center, Aa(s2, o2);\n }\n if (i2.zoom) {\n const t5 = Ra(i2.zoom, a2, Sa);\n s2.zoom = this._map.transform.zoom + t5.amount, Aa(s2, t5);\n }\n if (i2.bearing) {\n const t5 = Ra(i2.bearing, a2, za);\n s2.bearing = this._map.transform.bearing + e.ac(t5.amount, -179, 179), Aa(s2, t5);\n }\n if (i2.pitch) {\n const t5 = Ra(i2.pitch, a2, Da);\n s2.pitch = this._map.transform.pitch + t5.amount, Aa(s2, t5);\n }\n if (s2.zoom || s2.bearing) {\n const t5 = void 0 === i2.pinchAround ? i2.around : i2.pinchAround;\n s2.around = t5 ? this._map.unproject(t5) : this._map.getCenter();\n }\n return this.clear(), e.e(s2, { noMoveStart: true });\n }\n }\n function Aa(t4, e2) {\n (!t4.duration || t4.duration < e2.duration) && (t4.duration = e2.duration, t4.easing = e2.easing);\n }\n function Ra(t4, i2, a2) {\n const { maxSpeed: s2, linearity: o2, deceleration: r2 } = a2, n2 = e.ac(t4 * o2 / (i2 / 1e3), -s2, s2), l2 = Math.abs(n2) / (r2 * o2);\n return { easing: a2.easing, duration: 1e3 * l2, amount: n2 * (l2 / 2) };\n }\n class ka extends e.k {\n preventDefault() {\n this._defaultPrevented = true;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n constructor(t4, i2, a2, s2 = {}) {\n const o2 = r.mousePos(i2.getCanvas(), a2), n2 = i2.unproject(o2);\n super(t4, e.e({ point: o2, lngLat: n2, originalEvent: a2 }, s2)), this._defaultPrevented = false, this.target = i2;\n }\n }\n class La extends e.k {\n preventDefault() {\n this._defaultPrevented = true;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n constructor(t4, i2, a2) {\n const s2 = \"touchend\" === t4 ? a2.changedTouches : a2.touches, o2 = r.touchPos(i2.getCanvasContainer(), s2), n2 = o2.map((t5) => i2.unproject(t5)), l2 = o2.reduce((t5, e2, i3, a3) => t5.add(e2.div(a3.length)), new e.P(0, 0));\n super(t4, { points: o2, point: l2, lngLats: n2, lngLat: i2.unproject(l2), originalEvent: a2 }), this._defaultPrevented = false;\n }\n }\n class Fa extends e.k {\n preventDefault() {\n this._defaultPrevented = true;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n constructor(t4, e2, i2) {\n super(t4, { originalEvent: i2 }), this._defaultPrevented = false;\n }\n }\n class Ba {\n constructor(t4, e2) {\n this._map = t4, this._clickTolerance = e2.clickTolerance;\n }\n reset() {\n delete this._mousedownPos;\n }\n wheel(t4) {\n return this._firePreventable(new Fa(t4.type, this._map, t4));\n }\n mousedown(t4, e2) {\n return this._mousedownPos = e2, this._firePreventable(new ka(t4.type, this._map, t4));\n }\n mouseup(t4) {\n this._map.fire(new ka(t4.type, this._map, t4));\n }\n click(t4, e2) {\n this._mousedownPos && this._mousedownPos.dist(e2) >= this._clickTolerance || this._map.fire(new ka(t4.type, this._map, t4));\n }\n dblclick(t4) {\n return this._firePreventable(new ka(t4.type, this._map, t4));\n }\n mouseover(t4) {\n this._map.fire(new ka(t4.type, this._map, t4));\n }\n mouseout(t4) {\n this._map.fire(new ka(t4.type, this._map, t4));\n }\n touchstart(t4) {\n return this._firePreventable(new La(t4.type, this._map, t4));\n }\n touchmove(t4) {\n this._map.fire(new La(t4.type, this._map, t4));\n }\n touchend(t4) {\n this._map.fire(new La(t4.type, this._map, t4));\n }\n touchcancel(t4) {\n this._map.fire(new La(t4.type, this._map, t4));\n }\n _firePreventable(t4) {\n if (this._map.fire(t4), t4.defaultPrevented) return {};\n }\n isEnabled() {\n return true;\n }\n isActive() {\n return false;\n }\n enable() {\n }\n disable() {\n }\n }\n class Oa {\n constructor(t4) {\n this._map = t4;\n }\n reset() {\n this._delayContextMenu = false, this._ignoreContextMenu = true, delete this._contextMenuEvent;\n }\n mousemove(t4) {\n this._map.fire(new ka(t4.type, this._map, t4));\n }\n mousedown() {\n this._delayContextMenu = true, this._ignoreContextMenu = false;\n }\n mouseup() {\n this._delayContextMenu = false, this._contextMenuEvent && (this._map.fire(new ka(\"contextmenu\", this._map, this._contextMenuEvent)), delete this._contextMenuEvent);\n }\n contextmenu(t4) {\n this._delayContextMenu ? this._contextMenuEvent = t4 : this._ignoreContextMenu || this._map.fire(new ka(t4.type, this._map, t4)), this._map.listens(\"contextmenu\") && t4.preventDefault();\n }\n isEnabled() {\n return true;\n }\n isActive() {\n return false;\n }\n enable() {\n }\n disable() {\n }\n }\n class Na {\n constructor(t4) {\n this._map = t4;\n }\n get transform() {\n return this._map._requestedCameraState || this._map.transform;\n }\n get center() {\n return { lng: this.transform.center.lng, lat: this.transform.center.lat };\n }\n get zoom() {\n return this.transform.zoom;\n }\n get pitch() {\n return this.transform.pitch;\n }\n get bearing() {\n return this.transform.bearing;\n }\n unproject(t4) {\n return this.transform.pointLocation(e.P.convert(t4), this._map.terrain);\n }\n }\n class Ua {\n constructor(t4, e2) {\n this._map = t4, this._tr = new Na(t4), this._el = t4.getCanvasContainer(), this._container = t4.getContainer(), this._clickTolerance = e2.clickTolerance || 1;\n }\n isEnabled() {\n return !!this._enabled;\n }\n isActive() {\n return !!this._active;\n }\n enable() {\n this.isEnabled() || (this._enabled = true);\n }\n disable() {\n this.isEnabled() && (this._enabled = false);\n }\n mousedown(t4, e2) {\n this.isEnabled() && t4.shiftKey && 0 === t4.button && (r.disableDrag(), this._startPos = this._lastPos = e2, this._active = true);\n }\n mousemoveWindow(t4, e2) {\n if (!this._active) return;\n const i2 = e2;\n if (this._lastPos.equals(i2) || !this._box && i2.dist(this._startPos) < this._clickTolerance) return;\n const a2 = this._startPos;\n this._lastPos = i2, this._box || (this._box = r.create(\"div\", \"maplibregl-boxzoom\", this._container), this._container.classList.add(\"maplibregl-crosshair\"), this._fireEvent(\"boxzoomstart\", t4));\n const s2 = Math.min(a2.x, i2.x), o2 = Math.max(a2.x, i2.x), n2 = Math.min(a2.y, i2.y), l2 = Math.max(a2.y, i2.y);\n r.setTransform(this._box, `translate(${s2}px,${n2}px)`), this._box.style.width = o2 - s2 + \"px\", this._box.style.height = l2 - n2 + \"px\";\n }\n mouseupWindow(t4, i2) {\n if (!this._active) return;\n if (0 !== t4.button) return;\n const a2 = this._startPos, s2 = i2;\n if (this.reset(), r.suppressClick(), a2.x !== s2.x || a2.y !== s2.y) return this._map.fire(new e.k(\"boxzoomend\", { originalEvent: t4 })), { cameraAnimation: (t5) => t5.fitScreenCoordinates(a2, s2, this._tr.bearing, { linear: true }) };\n this._fireEvent(\"boxzoomcancel\", t4);\n }\n keydown(t4) {\n this._active && 27 === t4.keyCode && (this.reset(), this._fireEvent(\"boxzoomcancel\", t4));\n }\n reset() {\n this._active = false, this._container.classList.remove(\"maplibregl-crosshair\"), this._box && (r.remove(this._box), this._box = null), r.enableDrag(), delete this._startPos, delete this._lastPos;\n }\n _fireEvent(t4, i2) {\n return this._map.fire(new e.k(t4, { originalEvent: i2 }));\n }\n }\n function ja(t4, e2) {\n if (t4.length !== e2.length) throw new Error(`The number of touches and points are not equal - touches ${t4.length}, points ${e2.length}`);\n const i2 = {};\n for (let a2 = 0; a2 < t4.length; a2++) i2[t4[a2].identifier] = e2[a2];\n return i2;\n }\n class Za {\n constructor(t4) {\n this.reset(), this.numTouches = t4.numTouches;\n }\n reset() {\n delete this.centroid, delete this.startTime, delete this.touches, this.aborted = false;\n }\n touchstart(t4, i2, a2) {\n (this.centroid || a2.length > this.numTouches) && (this.aborted = true), this.aborted || (void 0 === this.startTime && (this.startTime = t4.timeStamp), a2.length === this.numTouches && (this.centroid = function(t5) {\n const i3 = new e.P(0, 0);\n for (const e2 of t5) i3._add(e2);\n return i3.div(t5.length);\n }(i2), this.touches = ja(a2, i2)));\n }\n touchmove(t4, e2, i2) {\n if (this.aborted || !this.centroid) return;\n const a2 = ja(i2, e2);\n for (const t5 in this.touches) {\n const e3 = a2[t5];\n (!e3 || e3.dist(this.touches[t5]) > 30) && (this.aborted = true);\n }\n }\n touchend(t4, e2, i2) {\n if ((!this.centroid || t4.timeStamp - this.startTime > 500) && (this.aborted = true), 0 === i2.length) {\n const t5 = !this.aborted && this.centroid;\n if (this.reset(), t5) return t5;\n }\n }\n }\n class qa {\n constructor(t4) {\n this.singleTap = new Za(t4), this.numTaps = t4.numTaps, this.reset();\n }\n reset() {\n this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset();\n }\n touchstart(t4, e2, i2) {\n this.singleTap.touchstart(t4, e2, i2);\n }\n touchmove(t4, e2, i2) {\n this.singleTap.touchmove(t4, e2, i2);\n }\n touchend(t4, e2, i2) {\n const a2 = this.singleTap.touchend(t4, e2, i2);\n if (a2) {\n const e3 = t4.timeStamp - this.lastTime < 500, i3 = !this.lastTap || this.lastTap.dist(a2) < 30;\n if (e3 && i3 || this.reset(), this.count++, this.lastTime = t4.timeStamp, this.lastTap = a2, this.count === this.numTaps) return this.reset(), a2;\n }\n }\n }\n class Va {\n constructor(t4) {\n this._tr = new Na(t4), this._zoomIn = new qa({ numTouches: 1, numTaps: 2 }), this._zoomOut = new qa({ numTouches: 2, numTaps: 1 }), this.reset();\n }\n reset() {\n this._active = false, this._zoomIn.reset(), this._zoomOut.reset();\n }\n touchstart(t4, e2, i2) {\n this._zoomIn.touchstart(t4, e2, i2), this._zoomOut.touchstart(t4, e2, i2);\n }\n touchmove(t4, e2, i2) {\n this._zoomIn.touchmove(t4, e2, i2), this._zoomOut.touchmove(t4, e2, i2);\n }\n touchend(t4, e2, i2) {\n const a2 = this._zoomIn.touchend(t4, e2, i2), s2 = this._zoomOut.touchend(t4, e2, i2), o2 = this._tr;\n return a2 ? (this._active = true, t4.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (e3) => e3.easeTo({ duration: 300, zoom: o2.zoom + 1, around: o2.unproject(a2) }, { originalEvent: t4 }) }) : s2 ? (this._active = true, t4.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (e3) => e3.easeTo({ duration: 300, zoom: o2.zoom - 1, around: o2.unproject(s2) }, { originalEvent: t4 }) }) : void 0;\n }\n touchcancel() {\n this.reset();\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n }\n class Ga {\n constructor(t4) {\n this._enabled = !!t4.enable, this._moveStateManager = t4.moveStateManager, this._clickTolerance = t4.clickTolerance || 1, this._moveFunction = t4.move, this._activateOnStart = !!t4.activateOnStart, t4.assignEvents(this), this.reset();\n }\n reset(t4) {\n this._active = false, this._moved = false, delete this._lastPoint, this._moveStateManager.endMove(t4);\n }\n _move(...t4) {\n const e2 = this._moveFunction(...t4);\n if (e2.bearingDelta || e2.pitchDelta || e2.around || e2.panDelta) return this._active = true, e2;\n }\n dragStart(t4, e2) {\n this.isEnabled() && !this._lastPoint && this._moveStateManager.isValidStartEvent(t4) && (this._moveStateManager.startMove(t4), this._lastPoint = e2.length ? e2[0] : e2, this._activateOnStart && this._lastPoint && (this._active = true));\n }\n dragMove(t4, e2) {\n if (!this.isEnabled()) return;\n const i2 = this._lastPoint;\n if (!i2) return;\n if (t4.preventDefault(), !this._moveStateManager.isValidMoveEvent(t4)) return void this.reset(t4);\n const a2 = e2.length ? e2[0] : e2;\n return !this._moved && a2.dist(i2) < this._clickTolerance ? void 0 : (this._moved = true, this._lastPoint = a2, this._move(i2, a2));\n }\n dragEnd(t4) {\n this.isEnabled() && this._lastPoint && this._moveStateManager.isValidEndEvent(t4) && (this._moved && r.suppressClick(), this.reset(t4));\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n getClickTolerance() {\n return this._clickTolerance;\n }\n }\n const Ha = { 0: 1, 2: 2 };\n class Wa {\n constructor(t4) {\n this._correctEvent = t4.checkCorrectEvent;\n }\n startMove(t4) {\n const e2 = r.mouseButton(t4);\n this._eventButton = e2;\n }\n endMove(t4) {\n delete this._eventButton;\n }\n isValidStartEvent(t4) {\n return this._correctEvent(t4);\n }\n isValidMoveEvent(t4) {\n return !function(t5, e2) {\n const i2 = Ha[e2];\n return void 0 === t5.buttons || (t5.buttons & i2) !== i2;\n }(t4, this._eventButton);\n }\n isValidEndEvent(t4) {\n return r.mouseButton(t4) === this._eventButton;\n }\n }\n class $a {\n constructor() {\n this._firstTouch = void 0;\n }\n _isOneFingerTouch(t4) {\n return 1 === t4.targetTouches.length;\n }\n _isSameTouchEvent(t4) {\n return t4.targetTouches[0].identifier === this._firstTouch;\n }\n startMove(t4) {\n this._firstTouch = t4.targetTouches[0].identifier;\n }\n endMove(t4) {\n delete this._firstTouch;\n }\n isValidStartEvent(t4) {\n return this._isOneFingerTouch(t4);\n }\n isValidMoveEvent(t4) {\n return this._isOneFingerTouch(t4) && this._isSameTouchEvent(t4);\n }\n isValidEndEvent(t4) {\n return this._isOneFingerTouch(t4) && this._isSameTouchEvent(t4);\n }\n }\n const Xa = (t4) => {\n t4.mousedown = t4.dragStart, t4.mousemoveWindow = t4.dragMove, t4.mouseup = t4.dragEnd, t4.contextmenu = (t5) => {\n t5.preventDefault();\n };\n }, Ka = ({ enable: t4, clickTolerance: e2, bearingDegreesPerPixelMoved: i2 = 0.8 }) => {\n const a2 = new Wa({ checkCorrectEvent: (t5) => 0 === r.mouseButton(t5) && t5.ctrlKey || 2 === r.mouseButton(t5) });\n return new Ga({ clickTolerance: e2, move: (t5, e3) => ({ bearingDelta: (e3.x - t5.x) * i2 }), moveStateManager: a2, enable: t4, assignEvents: Xa });\n }, Ja = ({ enable: t4, clickTolerance: e2, pitchDegreesPerPixelMoved: i2 = -0.5 }) => {\n const a2 = new Wa({ checkCorrectEvent: (t5) => 0 === r.mouseButton(t5) && t5.ctrlKey || 2 === r.mouseButton(t5) });\n return new Ga({ clickTolerance: e2, move: (t5, e3) => ({ pitchDelta: (e3.y - t5.y) * i2 }), moveStateManager: a2, enable: t4, assignEvents: Xa });\n };\n class Ya {\n constructor(t4, e2) {\n this._clickTolerance = t4.clickTolerance || 1, this._map = e2, this.reset();\n }\n reset() {\n this._active = false, this._touches = {}, this._sum = new e.P(0, 0);\n }\n _shouldBePrevented(t4) {\n return t4 < (this._map.cooperativeGestures.isEnabled() ? 2 : 1);\n }\n touchstart(t4, e2, i2) {\n return this._calculateTransform(t4, e2, i2);\n }\n touchmove(t4, e2, i2) {\n if (this._active) {\n if (!this._shouldBePrevented(i2.length)) return t4.preventDefault(), this._calculateTransform(t4, e2, i2);\n this._map.cooperativeGestures.notifyGestureBlocked(\"touch_pan\", t4);\n }\n }\n touchend(t4, e2, i2) {\n this._calculateTransform(t4, e2, i2), this._active && this._shouldBePrevented(i2.length) && this.reset();\n }\n touchcancel() {\n this.reset();\n }\n _calculateTransform(t4, i2, a2) {\n a2.length > 0 && (this._active = true);\n const s2 = ja(a2, i2), o2 = new e.P(0, 0), r2 = new e.P(0, 0);\n let n2 = 0;\n for (const t5 in s2) {\n const e2 = s2[t5], i3 = this._touches[t5];\n i3 && (o2._add(e2), r2._add(e2.sub(i3)), n2++, s2[t5] = e2);\n }\n if (this._touches = s2, this._shouldBePrevented(n2) || !r2.mag()) return;\n const l2 = r2.div(n2);\n return this._sum._add(l2), this._sum.mag() < this._clickTolerance ? void 0 : { around: o2.div(n2), panDelta: l2 };\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n }\n class Qa {\n constructor() {\n this.reset();\n }\n reset() {\n this._active = false, delete this._firstTwoTouches;\n }\n touchstart(t4, e2, i2) {\n this._firstTwoTouches || i2.length < 2 || (this._firstTwoTouches = [i2[0].identifier, i2[1].identifier], this._start([e2[0], e2[1]]));\n }\n touchmove(t4, e2, i2) {\n if (!this._firstTwoTouches) return;\n t4.preventDefault();\n const [a2, s2] = this._firstTwoTouches, o2 = ts(i2, e2, a2), r2 = ts(i2, e2, s2);\n if (!o2 || !r2) return;\n const n2 = this._aroundCenter ? null : o2.add(r2).div(2);\n return this._move([o2, r2], n2, t4);\n }\n touchend(t4, e2, i2) {\n if (!this._firstTwoTouches) return;\n const [a2, s2] = this._firstTwoTouches, o2 = ts(i2, e2, a2), n2 = ts(i2, e2, s2);\n o2 && n2 || (this._active && r.suppressClick(), this.reset());\n }\n touchcancel() {\n this.reset();\n }\n enable(t4) {\n this._enabled = true, this._aroundCenter = !!t4 && \"center\" === t4.around;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return !!this._enabled;\n }\n isActive() {\n return !!this._active;\n }\n }\n function ts(t4, e2, i2) {\n for (let a2 = 0; a2 < t4.length; a2++) if (t4[a2].identifier === i2) return e2[a2];\n }\n function es(t4, e2) {\n return Math.log(t4 / e2) / Math.LN2;\n }\n class is extends Qa {\n reset() {\n super.reset(), delete this._distance, delete this._startDistance;\n }\n _start(t4) {\n this._startDistance = this._distance = t4[0].dist(t4[1]);\n }\n _move(t4, e2) {\n const i2 = this._distance;\n if (this._distance = t4[0].dist(t4[1]), this._active || !(Math.abs(es(this._distance, this._startDistance)) < 0.1)) return this._active = true, { zoomDelta: es(this._distance, i2), pinchAround: e2 };\n }\n }\n function as(t4, e2) {\n return 180 * t4.angleWith(e2) / Math.PI;\n }\n class ss extends Qa {\n reset() {\n super.reset(), delete this._minDiameter, delete this._startVector, delete this._vector;\n }\n _start(t4) {\n this._startVector = this._vector = t4[0].sub(t4[1]), this._minDiameter = t4[0].dist(t4[1]);\n }\n _move(t4, e2, i2) {\n const a2 = this._vector;\n if (this._vector = t4[0].sub(t4[1]), this._active || !this._isBelowThreshold(this._vector)) return this._active = true, { bearingDelta: as(this._vector, a2), pinchAround: e2 };\n }\n _isBelowThreshold(t4) {\n this._minDiameter = Math.min(this._minDiameter, t4.mag());\n const e2 = 25 / (Math.PI * this._minDiameter) * 360, i2 = as(t4, this._startVector);\n return Math.abs(i2) < e2;\n }\n }\n function os(t4) {\n return Math.abs(t4.y) > Math.abs(t4.x);\n }\n class rs extends Qa {\n constructor(t4) {\n super(), this._currentTouchCount = 0, this._map = t4;\n }\n reset() {\n super.reset(), this._valid = void 0, delete this._firstMove, delete this._lastPoints;\n }\n touchstart(t4, e2, i2) {\n super.touchstart(t4, e2, i2), this._currentTouchCount = i2.length;\n }\n _start(t4) {\n this._lastPoints = t4, os(t4[0].sub(t4[1])) && (this._valid = false);\n }\n _move(t4, e2, i2) {\n if (this._map.cooperativeGestures.isEnabled() && this._currentTouchCount < 3) return;\n const a2 = t4[0].sub(this._lastPoints[0]), s2 = t4[1].sub(this._lastPoints[1]);\n return this._valid = this.gestureBeginsVertically(a2, s2, i2.timeStamp), this._valid ? (this._lastPoints = t4, this._active = true, { pitchDelta: (a2.y + s2.y) / 2 * -0.5 }) : void 0;\n }\n gestureBeginsVertically(t4, e2, i2) {\n if (void 0 !== this._valid) return this._valid;\n const a2 = t4.mag() >= 2, s2 = e2.mag() >= 2;\n if (!a2 && !s2) return;\n if (!a2 || !s2) return void 0 === this._firstMove && (this._firstMove = i2), i2 - this._firstMove < 100 && void 0;\n const o2 = t4.y > 0 == e2.y > 0;\n return os(t4) && os(e2) && o2;\n }\n }\n const ns = { panStep: 100, bearingStep: 15, pitchStep: 10 };\n class ls {\n constructor(t4) {\n this._tr = new Na(t4);\n const e2 = ns;\n this._panStep = e2.panStep, this._bearingStep = e2.bearingStep, this._pitchStep = e2.pitchStep, this._rotationDisabled = false;\n }\n reset() {\n this._active = false;\n }\n keydown(t4) {\n if (t4.altKey || t4.ctrlKey || t4.metaKey) return;\n let e2 = 0, i2 = 0, a2 = 0, s2 = 0, o2 = 0;\n switch (t4.keyCode) {\n case 61:\n case 107:\n case 171:\n case 187:\n e2 = 1;\n break;\n case 189:\n case 109:\n case 173:\n e2 = -1;\n break;\n case 37:\n t4.shiftKey ? i2 = -1 : (t4.preventDefault(), s2 = -1);\n break;\n case 39:\n t4.shiftKey ? i2 = 1 : (t4.preventDefault(), s2 = 1);\n break;\n case 38:\n t4.shiftKey ? a2 = 1 : (t4.preventDefault(), o2 = -1);\n break;\n case 40:\n t4.shiftKey ? a2 = -1 : (t4.preventDefault(), o2 = 1);\n break;\n default:\n return;\n }\n return this._rotationDisabled && (i2 = 0, a2 = 0), { cameraAnimation: (r2) => {\n const n2 = this._tr;\n r2.easeTo({ duration: 300, easeId: \"keyboardHandler\", easing: hs, zoom: e2 ? Math.round(n2.zoom) + e2 * (t4.shiftKey ? 2 : 1) : n2.zoom, bearing: n2.bearing + i2 * this._bearingStep, pitch: n2.pitch + a2 * this._pitchStep, offset: [-s2 * this._panStep, -o2 * this._panStep], center: n2.center }, { originalEvent: t4 });\n } };\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n disableRotation() {\n this._rotationDisabled = true;\n }\n enableRotation() {\n this._rotationDisabled = false;\n }\n }\n function hs(t4) {\n return t4 * (2 - t4);\n }\n const cs = 4.000244140625;\n class us {\n constructor(t4, e2) {\n this._onTimeout = (t5) => {\n this._type = \"wheel\", this._delta -= this._lastValue, this._active || this._start(t5);\n }, this._map = t4, this._tr = new Na(t4), this._triggerRenderFrame = e2, this._delta = 0, this._defaultZoomRate = 0.01, this._wheelZoomRate = 0.0022222222222222222;\n }\n setZoomRate(t4) {\n this._defaultZoomRate = t4;\n }\n setWheelZoomRate(t4) {\n this._wheelZoomRate = t4;\n }\n isEnabled() {\n return !!this._enabled;\n }\n isActive() {\n return !!this._active || void 0 !== this._finishTimeout;\n }\n isZooming() {\n return !!this._zooming;\n }\n enable(t4) {\n this.isEnabled() || (this._enabled = true, this._aroundCenter = !!t4 && \"center\" === t4.around);\n }\n disable() {\n this.isEnabled() && (this._enabled = false);\n }\n _shouldBePrevented(t4) {\n return !!this._map.cooperativeGestures.isEnabled() && !(t4.ctrlKey || this._map.cooperativeGestures.isBypassed(t4));\n }\n wheel(t4) {\n if (!this.isEnabled()) return;\n if (this._shouldBePrevented(t4)) return void this._map.cooperativeGestures.notifyGestureBlocked(\"wheel_zoom\", t4);\n let e2 = t4.deltaMode === WheelEvent.DOM_DELTA_LINE ? 40 * t4.deltaY : t4.deltaY;\n const i2 = o.now(), a2 = i2 - (this._lastWheelEventTime || 0);\n this._lastWheelEventTime = i2, 0 !== e2 && e2 % cs == 0 ? this._type = \"wheel\" : 0 !== e2 && Math.abs(e2) < 4 ? this._type = \"trackpad\" : a2 > 400 ? (this._type = null, this._lastValue = e2, this._timeout = setTimeout(this._onTimeout, 40, t4)) : this._type || (this._type = Math.abs(a2 * e2) < 200 ? \"trackpad\" : \"wheel\", this._timeout && (clearTimeout(this._timeout), this._timeout = null, e2 += this._lastValue)), t4.shiftKey && e2 && (e2 /= 4), this._type && (this._lastWheelEvent = t4, this._delta -= e2, this._active || this._start(t4)), t4.preventDefault();\n }\n _start(t4) {\n if (!this._delta) return;\n this._frameId && (this._frameId = null), this._active = true, this.isZooming() || (this._zooming = true), this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout);\n const i2 = r.mousePos(this._map.getCanvas(), t4), a2 = this._tr;\n this._around = i2.y > a2.transform.height / 2 - a2.transform.getHorizon() ? e.N.convert(this._aroundCenter ? a2.center : a2.unproject(i2)) : e.N.convert(a2.center), this._aroundPoint = a2.transform.locationPoint(this._around), this._frameId || (this._frameId = true, this._triggerRenderFrame());\n }\n renderFrame() {\n if (!this._frameId) return;\n if (this._frameId = null, !this.isActive()) return;\n const t4 = this._tr.transform;\n if (0 !== this._delta) {\n const e2 = \"wheel\" === this._type && Math.abs(this._delta) > cs ? this._wheelZoomRate : this._defaultZoomRate;\n let i3 = 2 / (1 + Math.exp(-Math.abs(this._delta * e2)));\n this._delta < 0 && 0 !== i3 && (i3 = 1 / i3);\n const a3 = \"number\" == typeof this._targetZoom ? t4.zoomScale(this._targetZoom) : t4.scale;\n this._targetZoom = Math.min(t4.maxZoom, Math.max(t4.minZoom, t4.scaleZoom(a3 * i3))), \"wheel\" === this._type && (this._startZoom = t4.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0;\n }\n const i2 = \"number\" == typeof this._targetZoom ? this._targetZoom : t4.zoom, a2 = this._startZoom, s2 = this._easing;\n let r2, n2 = false;\n const l2 = o.now() - this._lastWheelEventTime;\n if (\"wheel\" === this._type && a2 && s2 && l2) {\n const t5 = Math.min(l2 / 200, 1), o2 = s2(t5);\n r2 = e.y.number(a2, i2, o2), t5 < 1 ? this._frameId || (this._frameId = true) : n2 = true;\n } else r2 = i2, n2 = true;\n return this._active = true, n2 && (this._active = false, this._finishTimeout = setTimeout(() => {\n this._zooming = false, this._triggerRenderFrame(), delete this._targetZoom, delete this._finishTimeout;\n }, 200)), { noInertia: true, needsRenderFrame: !n2, zoomDelta: r2 - t4.zoom, around: this._aroundPoint, originalEvent: this._lastWheelEvent };\n }\n _smoothOutEasing(t4) {\n let i2 = e.b9;\n if (this._prevEase) {\n const t5 = this._prevEase, a2 = (o.now() - t5.start) / t5.duration, s2 = t5.easing(a2 + 0.01) - t5.easing(a2), r2 = 0.27 / Math.sqrt(s2 * s2 + 1e-4) * 0.01, n2 = Math.sqrt(0.0729 - r2 * r2);\n i2 = e.b8(r2, n2, 0.25, 1);\n }\n return this._prevEase = { start: o.now(), duration: t4, easing: i2 }, i2;\n }\n reset() {\n this._active = false, this._zooming = false, delete this._targetZoom, this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout);\n }\n }\n class ds {\n constructor(t4, e2) {\n this._clickZoom = t4, this._tapZoom = e2;\n }\n enable() {\n this._clickZoom.enable(), this._tapZoom.enable();\n }\n disable() {\n this._clickZoom.disable(), this._tapZoom.disable();\n }\n isEnabled() {\n return this._clickZoom.isEnabled() && this._tapZoom.isEnabled();\n }\n isActive() {\n return this._clickZoom.isActive() || this._tapZoom.isActive();\n }\n }\n class _s {\n constructor(t4) {\n this._tr = new Na(t4), this.reset();\n }\n reset() {\n this._active = false;\n }\n dblclick(t4, e2) {\n return t4.preventDefault(), { cameraAnimation: (i2) => {\n i2.easeTo({ duration: 300, zoom: this._tr.zoom + (t4.shiftKey ? -1 : 1), around: this._tr.unproject(e2) }, { originalEvent: t4 });\n } };\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n }\n class ps {\n constructor() {\n this._tap = new qa({ numTouches: 1, numTaps: 1 }), this.reset();\n }\n reset() {\n this._active = false, delete this._swipePoint, delete this._swipeTouch, delete this._tapTime, delete this._tapPoint, this._tap.reset();\n }\n touchstart(t4, e2, i2) {\n if (!this._swipePoint) if (this._tapTime) {\n const a2 = e2[0], s2 = t4.timeStamp - this._tapTime < 500, o2 = this._tapPoint.dist(a2) < 30;\n s2 && o2 ? i2.length > 0 && (this._swipePoint = a2, this._swipeTouch = i2[0].identifier) : this.reset();\n } else this._tap.touchstart(t4, e2, i2);\n }\n touchmove(t4, e2, i2) {\n if (this._tapTime) {\n if (this._swipePoint) {\n if (i2[0].identifier !== this._swipeTouch) return;\n const a2 = e2[0], s2 = a2.y - this._swipePoint.y;\n return this._swipePoint = a2, t4.preventDefault(), this._active = true, { zoomDelta: s2 / 128 };\n }\n } else this._tap.touchmove(t4, e2, i2);\n }\n touchend(t4, e2, i2) {\n if (this._tapTime) this._swipePoint && 0 === i2.length && this.reset();\n else {\n const a2 = this._tap.touchend(t4, e2, i2);\n a2 && (this._tapTime = t4.timeStamp, this._tapPoint = a2);\n }\n }\n touchcancel() {\n this.reset();\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n }\n class ms {\n constructor(t4, e2, i2) {\n this._el = t4, this._mousePan = e2, this._touchPan = i2;\n }\n enable(t4) {\n this._inertiaOptions = t4 || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add(\"maplibregl-touch-drag-pan\");\n }\n disable() {\n this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove(\"maplibregl-touch-drag-pan\");\n }\n isEnabled() {\n return this._mousePan.isEnabled() && this._touchPan.isEnabled();\n }\n isActive() {\n return this._mousePan.isActive() || this._touchPan.isActive();\n }\n }\n class fs {\n constructor(t4, e2, i2) {\n this._pitchWithRotate = t4.pitchWithRotate, this._mouseRotate = e2, this._mousePitch = i2;\n }\n enable() {\n this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable();\n }\n disable() {\n this._mouseRotate.disable(), this._mousePitch.disable();\n }\n isEnabled() {\n return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled());\n }\n isActive() {\n return this._mouseRotate.isActive() || this._mousePitch.isActive();\n }\n }\n class gs {\n constructor(t4, e2, i2, a2) {\n this._el = t4, this._touchZoom = e2, this._touchRotate = i2, this._tapDragZoom = a2, this._rotationDisabled = false, this._enabled = true;\n }\n enable(t4) {\n this._touchZoom.enable(t4), this._rotationDisabled || this._touchRotate.enable(t4), this._tapDragZoom.enable(), this._el.classList.add(\"maplibregl-touch-zoom-rotate\");\n }\n disable() {\n this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove(\"maplibregl-touch-zoom-rotate\");\n }\n isEnabled() {\n return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled();\n }\n isActive() {\n return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive();\n }\n disableRotation() {\n this._rotationDisabled = true, this._touchRotate.disable();\n }\n enableRotation() {\n this._rotationDisabled = false, this._touchZoom.isEnabled() && this._touchRotate.enable();\n }\n }\n class vs {\n constructor(t4, e2) {\n this._bypassKey = -1 !== navigator.userAgent.indexOf(\"Mac\") ? \"metaKey\" : \"ctrlKey\", this._map = t4, this._options = e2, this._enabled = false;\n }\n isActive() {\n return false;\n }\n reset() {\n }\n _setupUI() {\n if (this._container) return;\n const t4 = this._map.getCanvasContainer();\n t4.classList.add(\"maplibregl-cooperative-gestures\"), this._container = r.create(\"div\", \"maplibregl-cooperative-gesture-screen\", t4);\n let e2 = this._map._getUIString(\"CooperativeGesturesHandler.WindowsHelpText\");\n \"metaKey\" === this._bypassKey && (e2 = this._map._getUIString(\"CooperativeGesturesHandler.MacHelpText\"));\n const i2 = this._map._getUIString(\"CooperativeGesturesHandler.MobileHelpText\"), a2 = document.createElement(\"div\");\n a2.className = \"maplibregl-desktop-message\", a2.textContent = e2, this._container.appendChild(a2);\n const s2 = document.createElement(\"div\");\n s2.className = \"maplibregl-mobile-message\", s2.textContent = i2, this._container.appendChild(s2), this._container.setAttribute(\"aria-hidden\", \"true\");\n }\n _destroyUI() {\n this._container && (r.remove(this._container), this._map.getCanvasContainer().classList.remove(\"maplibregl-cooperative-gestures\")), delete this._container;\n }\n enable() {\n this._setupUI(), this._enabled = true;\n }\n disable() {\n this._enabled = false, this._destroyUI();\n }\n isEnabled() {\n return this._enabled;\n }\n isBypassed(t4) {\n return t4[this._bypassKey];\n }\n notifyGestureBlocked(t4, i2) {\n this._enabled && (this._map.fire(new e.k(\"cooperativegestureprevented\", { gestureType: t4, originalEvent: i2 })), this._container.classList.add(\"maplibregl-show\"), setTimeout(() => {\n this._container.classList.remove(\"maplibregl-show\");\n }, 100));\n }\n }\n const xs = (t4) => t4.zoom || t4.drag || t4.pitch || t4.rotate;\n class ys extends e.k {\n }\n function bs(t4) {\n return t4.panDelta && t4.panDelta.mag() || t4.zoomDelta || t4.bearingDelta || t4.pitchDelta;\n }\n class ws {\n constructor(t4, e2) {\n this.handleWindowEvent = (t5) => {\n this.handleEvent(t5, `${t5.type}Window`);\n }, this.handleEvent = (t5, e3) => {\n if (\"blur\" === t5.type) return void this.stop(true);\n this._updatingCamera = true;\n const i3 = \"renderFrame\" === t5.type ? void 0 : t5, a2 = { needsRenderFrame: false }, s2 = {}, o2 = {}, n2 = t5.touches, l2 = n2 ? this._getMapTouches(n2) : void 0, h2 = l2 ? r.touchPos(this._map.getCanvas(), l2) : r.mousePos(this._map.getCanvas(), t5);\n for (const { handlerName: r2, handler: n3, allowed: c3 } of this._handlers) {\n if (!n3.isEnabled()) continue;\n let u3;\n this._blockedByActive(o2, c3, r2) ? n3.reset() : n3[e3 || t5.type] && (u3 = n3[e3 || t5.type](t5, h2, l2), this.mergeHandlerResult(a2, s2, u3, r2, i3), u3 && u3.needsRenderFrame && this._triggerRenderFrame()), (u3 || n3.isActive()) && (o2[r2] = n3);\n }\n const c2 = {};\n for (const t6 in this._previousActiveHandlers) o2[t6] || (c2[t6] = i3);\n this._previousActiveHandlers = o2, (Object.keys(c2).length || bs(a2)) && (this._changes.push([a2, s2, c2]), this._triggerRenderFrame()), (Object.keys(o2).length || bs(a2)) && this._map._stop(true), this._updatingCamera = false;\n const { cameraAnimation: u2 } = a2;\n u2 && (this._inertia.clear(), this._fireEvents({}, {}, true), this._changes = [], u2(this._map));\n }, this._map = t4, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new Ma(t4), this._bearingSnap = e2.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(e2);\n const i2 = this._el;\n this._listeners = [[i2, \"touchstart\", { passive: true }], [i2, \"touchmove\", { passive: false }], [i2, \"touchend\", void 0], [i2, \"touchcancel\", void 0], [i2, \"mousedown\", void 0], [i2, \"mousemove\", void 0], [i2, \"mouseup\", void 0], [document, \"mousemove\", { capture: true }], [document, \"mouseup\", void 0], [i2, \"mouseover\", void 0], [i2, \"mouseout\", void 0], [i2, \"dblclick\", void 0], [i2, \"click\", void 0], [i2, \"keydown\", { capture: false }], [i2, \"keyup\", void 0], [i2, \"wheel\", { passive: false }], [i2, \"contextmenu\", void 0], [window, \"blur\", void 0]];\n for (const [t5, e3, i3] of this._listeners) r.addEventListener(t5, e3, t5 === document ? this.handleWindowEvent : this.handleEvent, i3);\n }\n destroy() {\n for (const [t4, e2, i2] of this._listeners) r.removeEventListener(t4, e2, t4 === document ? this.handleWindowEvent : this.handleEvent, i2);\n }\n _addDefaultHandlers(t4) {\n const e2 = this._map, i2 = e2.getCanvasContainer();\n this._add(\"mapEvent\", new Ba(e2, t4));\n const a2 = e2.boxZoom = new Ua(e2, t4);\n this._add(\"boxZoom\", a2), t4.interactive && t4.boxZoom && a2.enable();\n const s2 = e2.cooperativeGestures = new vs(e2, t4.cooperativeGestures);\n this._add(\"cooperativeGestures\", s2), t4.cooperativeGestures && s2.enable();\n const o2 = new Va(e2), n2 = new _s(e2);\n e2.doubleClickZoom = new ds(n2, o2), this._add(\"tapZoom\", o2), this._add(\"clickZoom\", n2), t4.interactive && t4.doubleClickZoom && e2.doubleClickZoom.enable();\n const l2 = new ps();\n this._add(\"tapDragZoom\", l2);\n const h2 = e2.touchPitch = new rs(e2);\n this._add(\"touchPitch\", h2), t4.interactive && t4.touchPitch && e2.touchPitch.enable(t4.touchPitch);\n const c2 = Ka(t4), u2 = Ja(t4);\n e2.dragRotate = new fs(t4, c2, u2), this._add(\"mouseRotate\", c2, [\"mousePitch\"]), this._add(\"mousePitch\", u2, [\"mouseRotate\"]), t4.interactive && t4.dragRotate && e2.dragRotate.enable();\n const d2 = (({ enable: t5, clickTolerance: e3 }) => {\n const i3 = new Wa({ checkCorrectEvent: (t6) => 0 === r.mouseButton(t6) && !t6.ctrlKey });\n return new Ga({ clickTolerance: e3, move: (t6, e4) => ({ around: e4, panDelta: e4.sub(t6) }), activateOnStart: true, moveStateManager: i3, enable: t5, assignEvents: Xa });\n })(t4), _2 = new Ya(t4, e2);\n e2.dragPan = new ms(i2, d2, _2), this._add(\"mousePan\", d2), this._add(\"touchPan\", _2, [\"touchZoom\", \"touchRotate\"]), t4.interactive && t4.dragPan && e2.dragPan.enable(t4.dragPan);\n const p2 = new ss(), m2 = new is();\n e2.touchZoomRotate = new gs(i2, m2, p2, l2), this._add(\"touchRotate\", p2, [\"touchPan\", \"touchZoom\"]), this._add(\"touchZoom\", m2, [\"touchPan\", \"touchRotate\"]), t4.interactive && t4.touchZoomRotate && e2.touchZoomRotate.enable(t4.touchZoomRotate);\n const f2 = e2.scrollZoom = new us(e2, () => this._triggerRenderFrame());\n this._add(\"scrollZoom\", f2, [\"mousePan\"]), t4.interactive && t4.scrollZoom && e2.scrollZoom.enable(t4.scrollZoom);\n const g2 = e2.keyboard = new ls(e2);\n this._add(\"keyboard\", g2), t4.interactive && t4.keyboard && e2.keyboard.enable(), this._add(\"blockableMapEvent\", new Oa(e2));\n }\n _add(t4, e2, i2) {\n this._handlers.push({ handlerName: t4, handler: e2, allowed: i2 }), this._handlersById[t4] = e2;\n }\n stop(t4) {\n if (!this._updatingCamera) {\n for (const { handler: t5 } of this._handlers) t5.reset();\n this._inertia.clear(), this._fireEvents({}, {}, t4), this._changes = [];\n }\n }\n isActive() {\n for (const { handler: t4 } of this._handlers) if (t4.isActive()) return true;\n return false;\n }\n isZooming() {\n return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming();\n }\n isRotating() {\n return !!this._eventsInProgress.rotate;\n }\n isMoving() {\n return Boolean(xs(this._eventsInProgress)) || this.isZooming();\n }\n _blockedByActive(t4, e2, i2) {\n for (const a2 in t4) if (a2 !== i2 && (!e2 || e2.indexOf(a2) < 0)) return true;\n return false;\n }\n _getMapTouches(t4) {\n const e2 = [];\n for (const i2 of t4) this._el.contains(i2.target) && e2.push(i2);\n return e2;\n }\n mergeHandlerResult(t4, i2, a2, s2, o2) {\n if (!a2) return;\n e.e(t4, a2);\n const r2 = { handlerName: s2, originalEvent: a2.originalEvent || o2 };\n void 0 !== a2.zoomDelta && (i2.zoom = r2), void 0 !== a2.panDelta && (i2.drag = r2), void 0 !== a2.pitchDelta && (i2.pitch = r2), void 0 !== a2.bearingDelta && (i2.rotate = r2);\n }\n _applyChanges() {\n const t4 = {}, i2 = {}, a2 = {};\n for (const [s2, o2, r2] of this._changes) s2.panDelta && (t4.panDelta = (t4.panDelta || new e.P(0, 0))._add(s2.panDelta)), s2.zoomDelta && (t4.zoomDelta = (t4.zoomDelta || 0) + s2.zoomDelta), s2.bearingDelta && (t4.bearingDelta = (t4.bearingDelta || 0) + s2.bearingDelta), s2.pitchDelta && (t4.pitchDelta = (t4.pitchDelta || 0) + s2.pitchDelta), void 0 !== s2.around && (t4.around = s2.around), void 0 !== s2.pinchAround && (t4.pinchAround = s2.pinchAround), s2.noInertia && (t4.noInertia = s2.noInertia), e.e(i2, o2), e.e(a2, r2);\n this._updateMapTransform(t4, i2, a2), this._changes = [];\n }\n _updateMapTransform(t4, e2, i2) {\n const a2 = this._map, s2 = a2._getTransformForUpdate(), o2 = a2.terrain;\n if (!(bs(t4) || o2 && this._terrainMovement)) return this._fireEvents(e2, i2, true);\n let { panDelta: r2, zoomDelta: n2, bearingDelta: l2, pitchDelta: h2, around: c2, pinchAround: u2 } = t4;\n void 0 !== u2 && (c2 = u2), a2._stop(true), c2 = c2 || a2.transform.centerPoint;\n const d2 = s2.pointLocation(r2 ? c2.sub(r2) : c2);\n l2 && (s2.bearing += l2), h2 && (s2.pitch += h2), n2 && (s2.zoom += n2), o2 ? this._terrainMovement || !e2.drag && !e2.zoom ? e2.drag && this._terrainMovement ? s2.center = s2.pointLocation(s2.centerPoint.sub(r2)) : s2.setLocationAtPoint(d2, c2) : (this._terrainMovement = true, this._map._elevationFreeze = true, s2.setLocationAtPoint(d2, c2)) : s2.setLocationAtPoint(d2, c2), a2._applyUpdatedTransform(s2), this._map._update(), t4.noInertia || this._inertia.record(t4), this._fireEvents(e2, i2, true);\n }\n _fireEvents(t4, i2, a2) {\n const s2 = xs(this._eventsInProgress), r2 = xs(t4), n2 = {};\n for (const e2 in t4) {\n const { originalEvent: i3 } = t4[e2];\n this._eventsInProgress[e2] || (n2[`${e2}start`] = i3), this._eventsInProgress[e2] = t4[e2];\n }\n !s2 && r2 && this._fireEvent(\"movestart\", r2.originalEvent);\n for (const t5 in n2) this._fireEvent(t5, n2[t5]);\n r2 && this._fireEvent(\"move\", r2.originalEvent);\n for (const e2 in t4) {\n const { originalEvent: i3 } = t4[e2];\n this._fireEvent(e2, i3);\n }\n const l2 = {};\n let h2;\n for (const t5 in this._eventsInProgress) {\n const { handlerName: e2, originalEvent: a3 } = this._eventsInProgress[t5];\n this._handlersById[e2].isActive() || (delete this._eventsInProgress[t5], h2 = i2[e2] || a3, l2[`${t5}end`] = h2);\n }\n for (const t5 in l2) this._fireEvent(t5, l2[t5]);\n const c2 = xs(this._eventsInProgress), u2 = (s2 || r2) && !c2;\n if (u2 && this._terrainMovement) {\n this._map._elevationFreeze = false, this._terrainMovement = false;\n const t5 = this._map._getTransformForUpdate();\n t5.recalculateZoom(this._map.terrain), this._map._applyUpdatedTransform(t5);\n }\n if (a2 && u2) {\n this._updatingCamera = true;\n const t5 = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), i3 = (t6) => 0 !== t6 && -this._bearingSnap < t6 && t6 < this._bearingSnap;\n !t5 || !t5.essential && o.prefersReducedMotion ? (this._map.fire(new e.k(\"moveend\", { originalEvent: h2 })), i3(this._map.getBearing()) && this._map.resetNorth()) : (i3(t5.bearing || this._map.getBearing()) && (t5.bearing = 0), t5.freezeElevation = true, this._map.easeTo(t5, { originalEvent: h2 })), this._updatingCamera = false;\n }\n }\n _fireEvent(t4, i2) {\n this._map.fire(new e.k(t4, i2 ? { originalEvent: i2 } : {}));\n }\n _requestFrame() {\n return this._map.triggerRepaint(), this._map._renderTaskQueue.add((t4) => {\n delete this._frameId, this.handleEvent(new ys(\"renderFrame\", { timeStamp: t4 })), this._applyChanges();\n });\n }\n _triggerRenderFrame() {\n void 0 === this._frameId && (this._frameId = this._requestFrame());\n }\n }\n class Ts extends e.E {\n constructor(t4, e2) {\n super(), this._renderFrameCallback = () => {\n const t5 = Math.min((o.now() - this._easeStart) / this._easeOptions.duration, 1);\n this._onEaseFrame(this._easeOptions.easing(t5)), t5 < 1 && this._easeFrameId ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop();\n }, this._moving = false, this._zooming = false, this.transform = t4, this._bearingSnap = e2.bearingSnap, this.on(\"moveend\", () => {\n delete this._requestedCameraState;\n });\n }\n getCenter() {\n return new e.N(this.transform.center.lng, this.transform.center.lat);\n }\n setCenter(t4, e2) {\n return this.jumpTo({ center: t4 }, e2);\n }\n panBy(t4, i2, a2) {\n return t4 = e.P.convert(t4).mult(-1), this.panTo(this.transform.center, e.e({ offset: t4 }, i2), a2);\n }\n panTo(t4, i2, a2) {\n return this.easeTo(e.e({ center: t4 }, i2), a2);\n }\n getZoom() {\n return this.transform.zoom;\n }\n setZoom(t4, e2) {\n return this.jumpTo({ zoom: t4 }, e2), this;\n }\n zoomTo(t4, i2, a2) {\n return this.easeTo(e.e({ zoom: t4 }, i2), a2);\n }\n zoomIn(t4, e2) {\n return this.zoomTo(this.getZoom() + 1, t4, e2), this;\n }\n zoomOut(t4, e2) {\n return this.zoomTo(this.getZoom() - 1, t4, e2), this;\n }\n getBearing() {\n return this.transform.bearing;\n }\n setBearing(t4, e2) {\n return this.jumpTo({ bearing: t4 }, e2), this;\n }\n getPadding() {\n return this.transform.padding;\n }\n setPadding(t4, e2) {\n return this.jumpTo({ padding: t4 }, e2), this;\n }\n rotateTo(t4, i2, a2) {\n return this.easeTo(e.e({ bearing: t4 }, i2), a2);\n }\n resetNorth(t4, i2) {\n return this.rotateTo(0, e.e({ duration: 1e3 }, t4), i2), this;\n }\n resetNorthPitch(t4, i2) {\n return this.easeTo(e.e({ bearing: 0, pitch: 0, duration: 1e3 }, t4), i2), this;\n }\n snapToNorth(t4, e2) {\n return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(t4, e2) : this;\n }\n getPitch() {\n return this.transform.pitch;\n }\n setPitch(t4, e2) {\n return this.jumpTo({ pitch: t4 }, e2), this;\n }\n cameraForBounds(t4, e2) {\n t4 = H.convert(t4).adjustAntiMeridian();\n const i2 = e2 && e2.bearing || 0;\n return this._cameraForBoxAndBearing(t4.getNorthWest(), t4.getSouthEast(), i2, e2);\n }\n _cameraForBoxAndBearing(t4, i2, a2, s2) {\n const o2 = { top: 0, bottom: 0, right: 0, left: 0 };\n if (\"number\" == typeof (s2 = e.e({ padding: o2, offset: [0, 0], maxZoom: this.transform.maxZoom }, s2)).padding) {\n const t5 = s2.padding;\n s2.padding = { top: t5, bottom: t5, right: t5, left: t5 };\n }\n s2.padding = e.e(o2, s2.padding);\n const r2 = this.transform, n2 = r2.padding, l2 = new H(t4, i2), h2 = r2.project(l2.getNorthWest()), c2 = r2.project(l2.getNorthEast()), u2 = r2.project(l2.getSouthEast()), d2 = r2.project(l2.getSouthWest()), _2 = e.ba(-a2), p2 = h2.rotate(_2), m2 = c2.rotate(_2), f2 = u2.rotate(_2), g2 = d2.rotate(_2), v2 = new e.P(Math.max(p2.x, m2.x, g2.x, f2.x), Math.max(p2.y, m2.y, g2.y, f2.y)), x2 = new e.P(Math.min(p2.x, m2.x, g2.x, f2.x), Math.min(p2.y, m2.y, g2.y, f2.y)), y2 = v2.sub(x2), b2 = (r2.width - (n2.left + n2.right + s2.padding.left + s2.padding.right)) / y2.x, w2 = (r2.height - (n2.top + n2.bottom + s2.padding.top + s2.padding.bottom)) / y2.y;\n if (w2 < 0 || b2 < 0) return void e.w(\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\");\n const T2 = Math.min(r2.scaleZoom(r2.scale * Math.min(b2, w2)), s2.maxZoom), I2 = e.P.convert(s2.offset), E3 = new e.P((s2.padding.left - s2.padding.right) / 2, (s2.padding.top - s2.padding.bottom) / 2).rotate(e.ba(a2)), P2 = I2.add(E3).mult(r2.scale / r2.zoomScale(T2));\n return { center: r2.unproject(h2.add(u2).div(2).sub(P2)), zoom: T2, bearing: a2 };\n }\n fitBounds(t4, e2, i2) {\n return this._fitInternal(this.cameraForBounds(t4, e2), e2, i2);\n }\n fitScreenCoordinates(t4, i2, a2, s2, o2) {\n return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(e.P.convert(t4)), this.transform.pointLocation(e.P.convert(i2)), a2, s2), s2, o2);\n }\n _fitInternal(t4, i2, a2) {\n return t4 ? (delete (i2 = e.e(t4, i2)).padding, i2.linear ? this.easeTo(i2, a2) : this.flyTo(i2, a2)) : this;\n }\n jumpTo(t4, i2) {\n this.stop();\n const a2 = this._getTransformForUpdate();\n let s2 = false, o2 = false, r2 = false;\n return \"zoom\" in t4 && a2.zoom !== +t4.zoom && (s2 = true, a2.zoom = +t4.zoom), void 0 !== t4.center && (a2.center = e.N.convert(t4.center)), \"bearing\" in t4 && a2.bearing !== +t4.bearing && (o2 = true, a2.bearing = +t4.bearing), \"pitch\" in t4 && a2.pitch !== +t4.pitch && (r2 = true, a2.pitch = +t4.pitch), null == t4.padding || a2.isPaddingEqual(t4.padding) || (a2.padding = t4.padding), this._applyUpdatedTransform(a2), this.fire(new e.k(\"movestart\", i2)).fire(new e.k(\"move\", i2)), s2 && this.fire(new e.k(\"zoomstart\", i2)).fire(new e.k(\"zoom\", i2)).fire(new e.k(\"zoomend\", i2)), o2 && this.fire(new e.k(\"rotatestart\", i2)).fire(new e.k(\"rotate\", i2)).fire(new e.k(\"rotateend\", i2)), r2 && this.fire(new e.k(\"pitchstart\", i2)).fire(new e.k(\"pitch\", i2)).fire(new e.k(\"pitchend\", i2)), this.fire(new e.k(\"moveend\", i2));\n }\n calculateCameraOptionsFromTo(t4, i2, a2, s2 = 0) {\n const o2 = e.Z.fromLngLat(t4, i2), r2 = e.Z.fromLngLat(a2, s2), n2 = r2.x - o2.x, l2 = r2.y - o2.y, h2 = r2.z - o2.z, c2 = Math.hypot(n2, l2, h2);\n if (0 === c2) throw new Error(\"Can't calculate camera options with same From and To\");\n const u2 = Math.hypot(n2, l2), d2 = this.transform.scaleZoom(this.transform.cameraToCenterDistance / c2 / this.transform.tileSize), _2 = 180 * Math.atan2(n2, -l2) / Math.PI;\n let p2 = 180 * Math.acos(u2 / c2) / Math.PI;\n return p2 = h2 < 0 ? 90 - p2 : 90 + p2, { center: r2.toLngLat(), zoom: d2, pitch: p2, bearing: _2 };\n }\n easeTo(t4, i2) {\n var a2;\n this._stop(false, t4.easeId), (false === (t4 = e.e({ offset: [0, 0], duration: 500, easing: e.b9 }, t4)).animate || !t4.essential && o.prefersReducedMotion) && (t4.duration = 0);\n const s2 = this._getTransformForUpdate(), r2 = s2.zoom, n2 = s2.bearing, l2 = s2.pitch, h2 = s2.padding, c2 = \"bearing\" in t4 ? this._normalizeBearing(t4.bearing, n2) : n2, u2 = \"pitch\" in t4 ? +t4.pitch : l2, d2 = \"padding\" in t4 ? t4.padding : s2.padding, _2 = e.P.convert(t4.offset);\n let p2 = s2.centerPoint.add(_2);\n const m2 = s2.pointLocation(p2), { center: f2, zoom: g2 } = s2.getConstrained(e.N.convert(t4.center || m2), null !== (a2 = t4.zoom) && void 0 !== a2 ? a2 : r2);\n this._normalizeCenter(f2, s2);\n const v2 = s2.project(m2), x2 = s2.project(f2).sub(v2), y2 = s2.zoomScale(g2 - r2);\n let b2, w2;\n t4.around && (b2 = e.N.convert(t4.around), w2 = s2.locationPoint(b2));\n const T2 = { moving: this._moving, zooming: this._zooming, rotating: this._rotating, pitching: this._pitching };\n return this._zooming = this._zooming || g2 !== r2, this._rotating = this._rotating || n2 !== c2, this._pitching = this._pitching || u2 !== l2, this._padding = !s2.isPaddingEqual(d2), this._easeId = t4.easeId, this._prepareEase(i2, t4.noMoveStart, T2), this.terrain && this._prepareElevation(f2), this._ease((a3) => {\n if (this._zooming && (s2.zoom = e.y.number(r2, g2, a3)), this._rotating && (s2.bearing = e.y.number(n2, c2, a3)), this._pitching && (s2.pitch = e.y.number(l2, u2, a3)), this._padding && (s2.interpolatePadding(h2, d2, a3), p2 = s2.centerPoint.add(_2)), this.terrain && !t4.freezeElevation && this._updateElevation(a3), b2) s2.setLocationAtPoint(b2, w2);\n else {\n const t5 = s2.zoomScale(s2.zoom - r2), e2 = g2 > r2 ? Math.min(2, y2) : Math.max(0.5, y2), i3 = Math.pow(e2, 1 - a3), o2 = s2.unproject(v2.add(x2.mult(a3 * i3)).mult(t5));\n s2.setLocationAtPoint(s2.renderWorldCopies ? o2.wrap() : o2, p2);\n }\n this._applyUpdatedTransform(s2), this._fireMoveEvents(i2);\n }, (e2) => {\n this.terrain && t4.freezeElevation && this._finalizeElevation(), this._afterEase(i2, e2);\n }, t4), this;\n }\n _prepareEase(t4, i2, a2 = {}) {\n this._moving = true, i2 || a2.moving || this.fire(new e.k(\"movestart\", t4)), this._zooming && !a2.zooming && this.fire(new e.k(\"zoomstart\", t4)), this._rotating && !a2.rotating && this.fire(new e.k(\"rotatestart\", t4)), this._pitching && !a2.pitching && this.fire(new e.k(\"pitchstart\", t4));\n }\n _prepareElevation(t4) {\n this._elevationCenter = t4, this._elevationStart = this.transform.elevation, this._elevationTarget = this.terrain.getElevationForLngLatZoom(t4, this.transform.tileZoom), this._elevationFreeze = true;\n }\n _updateElevation(t4) {\n this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom);\n const i2 = this.terrain.getElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom);\n if (t4 < 1 && i2 !== this._elevationTarget) {\n const e2 = this._elevationTarget - this._elevationStart;\n this._elevationStart += t4 * (e2 - (i2 - (e2 * t4 + this._elevationStart)) / (1 - t4)), this._elevationTarget = i2;\n }\n this.transform.elevation = e.y.number(this._elevationStart, this._elevationTarget, t4);\n }\n _finalizeElevation() {\n this._elevationFreeze = false, this.transform.recalculateZoom(this.terrain);\n }\n _getTransformForUpdate() {\n return this.transformCameraUpdate || this.terrain ? (this._requestedCameraState || (this._requestedCameraState = this.transform.clone()), this._requestedCameraState) : this.transform;\n }\n _elevateCameraIfInsideTerrain(t4) {\n const e2 = t4.getCameraPosition(), i2 = this.terrain.getElevationForLngLatZoom(e2.lngLat, t4.zoom);\n if (e2.altitude < i2) {\n const a2 = this.calculateCameraOptionsFromTo(e2.lngLat, i2, t4.center, t4.elevation);\n return { pitch: a2.pitch, zoom: a2.zoom };\n }\n return {};\n }\n _applyUpdatedTransform(t4) {\n const e2 = [];\n if (this.terrain && e2.push((t5) => this._elevateCameraIfInsideTerrain(t5)), this.transformCameraUpdate && e2.push((t5) => this.transformCameraUpdate(t5)), !e2.length) return;\n const i2 = t4.clone();\n for (const t5 of e2) {\n const e3 = i2.clone(), { center: a2, zoom: s2, pitch: o2, bearing: r2, elevation: n2 } = t5(e3);\n a2 && (e3.center = a2), void 0 !== s2 && (e3.zoom = s2), void 0 !== o2 && (e3.pitch = o2), void 0 !== r2 && (e3.bearing = r2), void 0 !== n2 && (e3.elevation = n2), i2.apply(e3);\n }\n this.transform.apply(i2);\n }\n _fireMoveEvents(t4) {\n this.fire(new e.k(\"move\", t4)), this._zooming && this.fire(new e.k(\"zoom\", t4)), this._rotating && this.fire(new e.k(\"rotate\", t4)), this._pitching && this.fire(new e.k(\"pitch\", t4));\n }\n _afterEase(t4, i2) {\n if (this._easeId && i2 && this._easeId === i2) return;\n delete this._easeId;\n const a2 = this._zooming, s2 = this._rotating, o2 = this._pitching;\n this._moving = false, this._zooming = false, this._rotating = false, this._pitching = false, this._padding = false, a2 && this.fire(new e.k(\"zoomend\", t4)), s2 && this.fire(new e.k(\"rotateend\", t4)), o2 && this.fire(new e.k(\"pitchend\", t4)), this.fire(new e.k(\"moveend\", t4));\n }\n flyTo(t4, i2) {\n var a2;\n if (!t4.essential && o.prefersReducedMotion) {\n const a3 = e.M(t4, [\"center\", \"zoom\", \"bearing\", \"pitch\", \"around\"]);\n return this.jumpTo(a3, i2);\n }\n this.stop(), t4 = e.e({ offset: [0, 0], speed: 1.2, curve: 1.42, easing: e.b9 }, t4);\n const s2 = this._getTransformForUpdate(), r2 = s2.zoom, n2 = s2.bearing, l2 = s2.pitch, h2 = s2.padding, c2 = \"bearing\" in t4 ? this._normalizeBearing(t4.bearing, n2) : n2, u2 = \"pitch\" in t4 ? +t4.pitch : l2, d2 = \"padding\" in t4 ? t4.padding : s2.padding, _2 = e.P.convert(t4.offset);\n let p2 = s2.centerPoint.add(_2);\n const m2 = s2.pointLocation(p2), { center: f2, zoom: g2 } = s2.getConstrained(e.N.convert(t4.center || m2), null !== (a2 = t4.zoom) && void 0 !== a2 ? a2 : r2);\n this._normalizeCenter(f2, s2);\n const v2 = s2.zoomScale(g2 - r2), x2 = s2.project(m2), y2 = s2.project(f2).sub(x2);\n let b2 = t4.curve;\n const w2 = Math.max(s2.width, s2.height), T2 = w2 / v2, I2 = y2.mag();\n if (\"minZoom\" in t4) {\n const i3 = e.ac(Math.min(t4.minZoom, r2, g2), s2.minZoom, s2.maxZoom), a3 = w2 / s2.zoomScale(i3 - r2);\n b2 = Math.sqrt(a3 / I2 * 2);\n }\n const E3 = b2 * b2;\n function P2(t5) {\n const e2 = (T2 * T2 - w2 * w2 + (t5 ? -1 : 1) * E3 * E3 * I2 * I2) / (2 * (t5 ? T2 : w2) * E3 * I2);\n return Math.log(Math.sqrt(e2 * e2 + 1) - e2);\n }\n function C3(t5) {\n return (Math.exp(t5) - Math.exp(-t5)) / 2;\n }\n function S2(t5) {\n return (Math.exp(t5) + Math.exp(-t5)) / 2;\n }\n const z2 = P2(false);\n let D3 = function(t5) {\n return S2(z2) / S2(z2 + b2 * t5);\n }, M2 = function(t5) {\n return w2 * ((S2(z2) * (C3(e2 = z2 + b2 * t5) / S2(e2)) - C3(z2)) / E3) / I2;\n var e2;\n }, A3 = (P2(true) - z2) / b2;\n if (Math.abs(I2) < 1e-6 || !isFinite(A3)) {\n if (Math.abs(w2 - T2) < 1e-6) return this.easeTo(t4, i2);\n const e2 = T2 < w2 ? -1 : 1;\n A3 = Math.abs(Math.log(T2 / w2)) / b2, M2 = () => 0, D3 = (t5) => Math.exp(e2 * b2 * t5);\n }\n return t4.duration = \"duration\" in t4 ? +t4.duration : 1e3 * A3 / (\"screenSpeed\" in t4 ? +t4.screenSpeed / b2 : +t4.speed), t4.maxDuration && t4.duration > t4.maxDuration && (t4.duration = 0), this._zooming = true, this._rotating = n2 !== c2, this._pitching = u2 !== l2, this._padding = !s2.isPaddingEqual(d2), this._prepareEase(i2, false), this.terrain && this._prepareElevation(f2), this._ease((a3) => {\n const o2 = a3 * A3, m3 = 1 / D3(o2);\n s2.zoom = 1 === a3 ? g2 : r2 + s2.scaleZoom(m3), this._rotating && (s2.bearing = e.y.number(n2, c2, a3)), this._pitching && (s2.pitch = e.y.number(l2, u2, a3)), this._padding && (s2.interpolatePadding(h2, d2, a3), p2 = s2.centerPoint.add(_2)), this.terrain && !t4.freezeElevation && this._updateElevation(a3);\n const v3 = 1 === a3 ? f2 : s2.unproject(x2.add(y2.mult(M2(o2))).mult(m3));\n s2.setLocationAtPoint(s2.renderWorldCopies ? v3.wrap() : v3, p2), this._applyUpdatedTransform(s2), this._fireMoveEvents(i2);\n }, () => {\n this.terrain && t4.freezeElevation && this._finalizeElevation(), this._afterEase(i2);\n }, t4), this;\n }\n isEasing() {\n return !!this._easeFrameId;\n }\n stop() {\n return this._stop();\n }\n _stop(t4, e2) {\n var i2;\n if (this._easeFrameId && (this._cancelRenderFrame(this._easeFrameId), delete this._easeFrameId, delete this._onEaseFrame), this._onEaseEnd) {\n const t5 = this._onEaseEnd;\n delete this._onEaseEnd, t5.call(this, e2);\n }\n return t4 || null === (i2 = this.handlers) || void 0 === i2 || i2.stop(false), this;\n }\n _ease(t4, e2, i2) {\n false === i2.animate || 0 === i2.duration ? (t4(1), e2()) : (this._easeStart = o.now(), this._easeOptions = i2, this._onEaseFrame = t4, this._onEaseEnd = e2, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback));\n }\n _normalizeBearing(t4, i2) {\n t4 = e.b3(t4, -180, 180);\n const a2 = Math.abs(t4 - i2);\n return Math.abs(t4 - 360 - i2) < a2 && (t4 -= 360), Math.abs(t4 + 360 - i2) < a2 && (t4 += 360), t4;\n }\n _normalizeCenter(t4, e2) {\n if (!e2.renderWorldCopies || e2.lngRange) return;\n const i2 = t4.lng - e2.center.lng;\n t4.lng += i2 > 180 ? -360 : i2 < -180 ? 360 : 0;\n }\n queryTerrainElevation(t4) {\n return this.terrain ? this.terrain.getElevationForLngLatZoom(e.N.convert(t4), this.transform.tileZoom) - this.transform.elevation : null;\n }\n }\n const Is = { compact: true, customAttribution: 'MapLibre' };\n class Es {\n constructor(t4 = Is) {\n this._toggleAttribution = () => {\n this._container.classList.contains(\"maplibregl-compact\") && (this._container.classList.contains(\"maplibregl-compact-show\") ? (this._container.setAttribute(\"open\", \"\"), this._container.classList.remove(\"maplibregl-compact-show\")) : (this._container.classList.add(\"maplibregl-compact-show\"), this._container.removeAttribute(\"open\")));\n }, this._updateData = (t5) => {\n !t5 || \"metadata\" !== t5.sourceDataType && \"visibility\" !== t5.sourceDataType && \"style\" !== t5.dataType && \"terrain\" !== t5.type || this._updateAttributions();\n }, this._updateCompact = () => {\n this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? false === this._compact ? this._container.setAttribute(\"open\", \"\") : this._container.classList.contains(\"maplibregl-compact\") || this._container.classList.contains(\"maplibregl-attrib-empty\") || (this._container.setAttribute(\"open\", \"\"), this._container.classList.add(\"maplibregl-compact\", \"maplibregl-compact-show\")) : (this._container.setAttribute(\"open\", \"\"), this._container.classList.contains(\"maplibregl-compact\") && this._container.classList.remove(\"maplibregl-compact\", \"maplibregl-compact-show\"));\n }, this._updateCompactMinimize = () => {\n this._container.classList.contains(\"maplibregl-compact\") && this._container.classList.contains(\"maplibregl-compact-show\") && this._container.classList.remove(\"maplibregl-compact-show\");\n }, this.options = t4;\n }\n getDefaultPosition() {\n return \"bottom-right\";\n }\n onAdd(t4) {\n return this._map = t4, this._compact = this.options.compact, this._container = r.create(\"details\", \"maplibregl-ctrl maplibregl-ctrl-attrib\"), this._compactButton = r.create(\"summary\", \"maplibregl-ctrl-attrib-button\", this._container), this._compactButton.addEventListener(\"click\", this._toggleAttribution), this._setElementTitle(this._compactButton, \"ToggleAttribution\"), this._innerContainer = r.create(\"div\", \"maplibregl-ctrl-attrib-inner\", this._container), this._updateAttributions(), this._updateCompact(), this._map.on(\"styledata\", this._updateData), this._map.on(\"sourcedata\", this._updateData), this._map.on(\"terrain\", this._updateData), this._map.on(\"resize\", this._updateCompact), this._map.on(\"drag\", this._updateCompactMinimize), this._container;\n }\n onRemove() {\n r.remove(this._container), this._map.off(\"styledata\", this._updateData), this._map.off(\"sourcedata\", this._updateData), this._map.off(\"terrain\", this._updateData), this._map.off(\"resize\", this._updateCompact), this._map.off(\"drag\", this._updateCompactMinimize), this._map = void 0, this._compact = void 0, this._attribHTML = void 0;\n }\n _setElementTitle(t4, e2) {\n const i2 = this._map._getUIString(`AttributionControl.${e2}`);\n t4.title = i2, t4.setAttribute(\"aria-label\", i2);\n }\n _updateAttributions() {\n if (!this._map.style) return;\n let t4 = [];\n if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? t4 = t4.concat(this.options.customAttribution.map((t5) => \"string\" != typeof t5 ? \"\" : t5)) : \"string\" == typeof this.options.customAttribution && t4.push(this.options.customAttribution)), this._map.style.stylesheet) {\n const t5 = this._map.style.stylesheet;\n this.styleOwner = t5.owner, this.styleId = t5.id;\n }\n const e2 = this._map.style.sourceCaches;\n for (const i3 in e2) {\n const a2 = e2[i3];\n if (a2.used || a2.usedForTerrain) {\n const e3 = a2.getSource();\n e3.attribution && t4.indexOf(e3.attribution) < 0 && t4.push(e3.attribution);\n }\n }\n t4 = t4.filter((t5) => String(t5).trim()), t4.sort((t5, e3) => t5.length - e3.length), t4 = t4.filter((e3, i3) => {\n for (let a2 = i3 + 1; a2 < t4.length; a2++) if (t4[a2].indexOf(e3) >= 0) return false;\n return true;\n });\n const i2 = t4.join(\" | \");\n i2 !== this._attribHTML && (this._attribHTML = i2, t4.length ? (this._innerContainer.innerHTML = i2, this._container.classList.remove(\"maplibregl-attrib-empty\")) : this._container.classList.add(\"maplibregl-attrib-empty\"), this._updateCompact(), this._editLink = null);\n }\n }\n class Ps {\n constructor(t4 = {}) {\n this._updateCompact = () => {\n const t5 = this._container.children;\n if (t5.length) {\n const e2 = t5[0];\n this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? false !== this._compact && e2.classList.add(\"maplibregl-compact\") : e2.classList.remove(\"maplibregl-compact\");\n }\n }, this.options = t4;\n }\n getDefaultPosition() {\n return \"bottom-left\";\n }\n onAdd(t4) {\n this._map = t4, this._compact = this.options && this.options.compact, this._container = r.create(\"div\", \"maplibregl-ctrl\");\n const e2 = r.create(\"a\", \"maplibregl-ctrl-logo\");\n return e2.target = \"_blank\", e2.rel = \"noopener nofollow\", e2.href = \"https://maplibre.org/\", e2.setAttribute(\"aria-label\", this._map._getUIString(\"LogoControl.Title\")), e2.setAttribute(\"rel\", \"noopener nofollow\"), this._container.appendChild(e2), this._container.style.display = \"block\", this._map.on(\"resize\", this._updateCompact), this._updateCompact(), this._container;\n }\n onRemove() {\n r.remove(this._container), this._map.off(\"resize\", this._updateCompact), this._map = void 0, this._compact = void 0;\n }\n }\n class Cs {\n constructor() {\n this._queue = [], this._id = 0, this._cleared = false, this._currentlyRunning = false;\n }\n add(t4) {\n const e2 = ++this._id;\n return this._queue.push({ callback: t4, id: e2, cancelled: false }), e2;\n }\n remove(t4) {\n const e2 = this._currentlyRunning, i2 = e2 ? this._queue.concat(e2) : this._queue;\n for (const e3 of i2) if (e3.id === t4) return void (e3.cancelled = true);\n }\n run(t4 = 0) {\n if (this._currentlyRunning) throw new Error(\"Attempting to run(), but is already running.\");\n const e2 = this._currentlyRunning = this._queue;\n this._queue = [];\n for (const i2 of e2) if (!i2.cancelled && (i2.callback(t4), this._cleared)) break;\n this._cleared = false, this._currentlyRunning = false;\n }\n clear() {\n this._currentlyRunning && (this._cleared = true), this._queue = [];\n }\n }\n var Ss = e.Y([{ name: \"a_pos3d\", type: \"Int16\", components: 3 }]);\n class zs extends e.E {\n constructor(t4) {\n super(), this.sourceCache = t4, this._tiles = {}, this._renderableTilesKeys = [], this._sourceTileCache = {}, this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.deltaZoom = 1, t4.usedForTerrain = true, t4.tileSize = this.tileSize * 2 ** this.deltaZoom;\n }\n destruct() {\n this.sourceCache.usedForTerrain = false, this.sourceCache.tileSize = null;\n }\n update(t4, i2) {\n this.sourceCache.update(t4, i2), this._renderableTilesKeys = [];\n const a2 = {};\n for (const s2 of t4.coveringTiles({ tileSize: this.tileSize, minzoom: this.minzoom, maxzoom: this.maxzoom, reparseOverscaled: false, terrain: i2 })) a2[s2.key] = true, this._renderableTilesKeys.push(s2.key), this._tiles[s2.key] || (s2.posMatrix = new Float64Array(16), e.aP(s2.posMatrix, 0, e.X, 0, e.X, 0, 1), this._tiles[s2.key] = new lt(s2, this.tileSize));\n for (const t5 in this._tiles) a2[t5] || delete this._tiles[t5];\n }\n freeRtt(t4) {\n for (const e2 in this._tiles) {\n const i2 = this._tiles[e2];\n (!t4 || i2.tileID.equals(t4) || i2.tileID.isChildOf(t4) || t4.isChildOf(i2.tileID)) && (i2.rtt = []);\n }\n }\n getRenderableTiles() {\n return this._renderableTilesKeys.map((t4) => this.getTileByID(t4));\n }\n getTileByID(t4) {\n return this._tiles[t4];\n }\n getTerrainCoords(t4) {\n const i2 = {};\n for (const a2 of this._renderableTilesKeys) {\n const s2 = this._tiles[a2].tileID;\n if (s2.canonical.equals(t4.canonical)) {\n const s3 = t4.clone();\n s3.posMatrix = new Float64Array(16), e.aP(s3.posMatrix, 0, e.X, 0, e.X, 0, 1), i2[a2] = s3;\n } else if (s2.canonical.isChildOf(t4.canonical)) {\n const o2 = t4.clone();\n o2.posMatrix = new Float64Array(16);\n const r2 = s2.canonical.z - t4.canonical.z, n2 = s2.canonical.x - (s2.canonical.x >> r2 << r2), l2 = s2.canonical.y - (s2.canonical.y >> r2 << r2), h2 = e.X >> r2;\n e.aP(o2.posMatrix, 0, h2, 0, h2, 0, 1), e.J(o2.posMatrix, o2.posMatrix, [-n2 * h2, -l2 * h2, 0]), i2[a2] = o2;\n } else if (t4.canonical.isChildOf(s2.canonical)) {\n const o2 = t4.clone();\n o2.posMatrix = new Float64Array(16);\n const r2 = t4.canonical.z - s2.canonical.z, n2 = t4.canonical.x - (t4.canonical.x >> r2 << r2), l2 = t4.canonical.y - (t4.canonical.y >> r2 << r2), h2 = e.X >> r2;\n e.aP(o2.posMatrix, 0, e.X, 0, e.X, 0, 1), e.J(o2.posMatrix, o2.posMatrix, [n2 * h2, l2 * h2, 0]), e.K(o2.posMatrix, o2.posMatrix, [1 / 2 ** r2, 1 / 2 ** r2, 0]), i2[a2] = o2;\n }\n }\n return i2;\n }\n getSourceTile(t4, e2) {\n const i2 = this.sourceCache._source;\n let a2 = t4.overscaledZ - this.deltaZoom;\n if (a2 > i2.maxzoom && (a2 = i2.maxzoom), a2 < i2.minzoom) return null;\n this._sourceTileCache[t4.key] || (this._sourceTileCache[t4.key] = t4.scaledTo(a2).key);\n let s2 = this.sourceCache.getTileByID(this._sourceTileCache[t4.key]);\n if ((!s2 || !s2.dem) && e2) for (; a2 >= i2.minzoom && (!s2 || !s2.dem); ) s2 = this.sourceCache.getTileByID(t4.scaledTo(a2--).key);\n return s2;\n }\n tilesAfterTime(t4 = Date.now()) {\n return Object.values(this._tiles).filter((e2) => e2.timeAdded >= t4);\n }\n }\n class Ds {\n constructor(t4, e2, i2) {\n this.painter = t4, this.sourceCache = new zs(e2), this.options = i2, this.exaggeration = \"number\" == typeof i2.exaggeration ? i2.exaggeration : 1, this.qualityFactor = 2, this.meshSize = 128, this._demMatrixCache = {}, this.coordsIndex = [], this._coordsTextureSize = 1024;\n }\n getDEMElevation(t4, i2, a2, s2 = e.X) {\n var o2;\n if (!(i2 >= 0 && i2 < s2 && a2 >= 0 && a2 < s2)) return 0;\n const r2 = this.getTerrainData(t4), n2 = null === (o2 = r2.tile) || void 0 === o2 ? void 0 : o2.dem;\n if (!n2) return 0;\n const l2 = function(t5, e2, i3) {\n var a3 = e2[0], s3 = e2[1];\n return t5[0] = i3[0] * a3 + i3[4] * s3 + i3[12], t5[1] = i3[1] * a3 + i3[5] * s3 + i3[13], t5;\n }([], [i2 / s2 * e.X, a2 / s2 * e.X], r2.u_terrain_matrix), h2 = [l2[0] * n2.dim, l2[1] * n2.dim], c2 = Math.floor(h2[0]), u2 = Math.floor(h2[1]), d2 = h2[0] - c2, _2 = h2[1] - u2;\n return n2.get(c2, u2) * (1 - d2) * (1 - _2) + n2.get(c2 + 1, u2) * d2 * (1 - _2) + n2.get(c2, u2 + 1) * (1 - d2) * _2 + n2.get(c2 + 1, u2 + 1) * d2 * _2;\n }\n getElevationForLngLatZoom(t4, i2) {\n if (!e.bb(i2, t4.wrap())) return 0;\n const { tileID: a2, mercatorX: s2, mercatorY: o2 } = this._getOverscaledTileIDFromLngLatZoom(t4, i2);\n return this.getElevation(a2, s2 % e.X, o2 % e.X, e.X);\n }\n getElevation(t4, i2, a2, s2 = e.X) {\n return this.getDEMElevation(t4, i2, a2, s2) * this.exaggeration;\n }\n getTerrainData(t4) {\n if (!this._emptyDemTexture) {\n const t5 = this.painter.context, i3 = new e.R({ width: 1, height: 1 }, new Uint8Array(4));\n this._emptyDepthTexture = new b(t5, i3, t5.gl.RGBA, { premultiply: false }), this._emptyDemUnpack = [0, 0, 0, 0], this._emptyDemTexture = new b(t5, new e.R({ width: 1, height: 1 }), t5.gl.RGBA, { premultiply: false }), this._emptyDemTexture.bind(t5.gl.NEAREST, t5.gl.CLAMP_TO_EDGE), this._emptyDemMatrix = e.an([]);\n }\n const i2 = this.sourceCache.getSourceTile(t4, true);\n if (i2 && i2.dem && (!i2.demTexture || i2.needsTerrainPrepare)) {\n const t5 = this.painter.context;\n i2.demTexture = this.painter.getTileTexture(i2.dem.stride), i2.demTexture ? i2.demTexture.update(i2.dem.getPixels(), { premultiply: false }) : i2.demTexture = new b(t5, i2.dem.getPixels(), t5.gl.RGBA, { premultiply: false }), i2.demTexture.bind(t5.gl.NEAREST, t5.gl.CLAMP_TO_EDGE), i2.needsTerrainPrepare = false;\n }\n const a2 = i2 && i2 + i2.tileID.key + t4.key;\n if (a2 && !this._demMatrixCache[a2]) {\n const a3 = this.sourceCache.sourceCache._source.maxzoom;\n let s2 = t4.canonical.z - i2.tileID.canonical.z;\n t4.overscaledZ > t4.canonical.z && (t4.canonical.z >= a3 ? s2 = t4.canonical.z - a3 : e.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));\n const o2 = t4.canonical.x - (t4.canonical.x >> s2 << s2), r2 = t4.canonical.y - (t4.canonical.y >> s2 << s2), n2 = e.bc(new Float64Array(16), [1 / (e.X << s2), 1 / (e.X << s2), 0]);\n e.J(n2, n2, [o2 * e.X, r2 * e.X, 0]), this._demMatrixCache[t4.key] = { matrix: n2, coord: t4 };\n }\n return { u_depth: 2, u_terrain: 3, u_terrain_dim: i2 && i2.dem && i2.dem.dim || 1, u_terrain_matrix: a2 ? this._demMatrixCache[t4.key].matrix : this._emptyDemMatrix, u_terrain_unpack: i2 && i2.dem && i2.dem.getUnpackVector() || this._emptyDemUnpack, u_terrain_exaggeration: this.exaggeration, texture: (i2 && i2.demTexture || this._emptyDemTexture).texture, depthTexture: (this._fboDepthTexture || this._emptyDepthTexture).texture, tile: i2 };\n }\n getFramebuffer(t4) {\n const e2 = this.painter, i2 = e2.width / devicePixelRatio, a2 = e2.height / devicePixelRatio;\n return !this._fbo || this._fbo.width === i2 && this._fbo.height === a2 || (this._fbo.destroy(), this._fboCoordsTexture.destroy(), this._fboDepthTexture.destroy(), delete this._fbo, delete this._fboDepthTexture, delete this._fboCoordsTexture), this._fboCoordsTexture || (this._fboCoordsTexture = new b(e2.context, { width: i2, height: a2, data: null }, e2.context.gl.RGBA, { premultiply: false }), this._fboCoordsTexture.bind(e2.context.gl.NEAREST, e2.context.gl.CLAMP_TO_EDGE)), this._fboDepthTexture || (this._fboDepthTexture = new b(e2.context, { width: i2, height: a2, data: null }, e2.context.gl.RGBA, { premultiply: false }), this._fboDepthTexture.bind(e2.context.gl.NEAREST, e2.context.gl.CLAMP_TO_EDGE)), this._fbo || (this._fbo = e2.context.createFramebuffer(i2, a2, true, false), this._fbo.depthAttachment.set(e2.context.createRenderbuffer(e2.context.gl.DEPTH_COMPONENT16, i2, a2))), this._fbo.colorAttachment.set(\"coords\" === t4 ? this._fboCoordsTexture.texture : this._fboDepthTexture.texture), this._fbo;\n }\n getCoordsTexture() {\n const t4 = this.painter.context;\n if (this._coordsTexture) return this._coordsTexture;\n const i2 = new Uint8Array(this._coordsTextureSize * this._coordsTextureSize * 4);\n for (let t5 = 0, e2 = 0; t5 < this._coordsTextureSize; t5++) for (let a3 = 0; a3 < this._coordsTextureSize; a3++, e2 += 4) i2[e2 + 0] = 255 & a3, i2[e2 + 1] = 255 & t5, i2[e2 + 2] = a3 >> 8 << 4 | t5 >> 8, i2[e2 + 3] = 0;\n const a2 = new e.R({ width: this._coordsTextureSize, height: this._coordsTextureSize }, new Uint8Array(i2.buffer)), s2 = new b(t4, a2, t4.gl.RGBA, { premultiply: false });\n return s2.bind(t4.gl.NEAREST, t4.gl.CLAMP_TO_EDGE), this._coordsTexture = s2, s2;\n }\n pointCoordinate(t4) {\n this.painter.maybeDrawDepthAndCoords(true);\n const i2 = new Uint8Array(4), a2 = this.painter.context, s2 = a2.gl, o2 = Math.round(t4.x * this.painter.pixelRatio / devicePixelRatio), r2 = Math.round(t4.y * this.painter.pixelRatio / devicePixelRatio), n2 = Math.round(this.painter.height / devicePixelRatio);\n a2.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer), s2.readPixels(o2, n2 - r2 - 1, 1, 1, s2.RGBA, s2.UNSIGNED_BYTE, i2), a2.bindFramebuffer.set(null);\n const l2 = i2[0] + (i2[2] >> 4 << 8), h2 = i2[1] + ((15 & i2[2]) << 8), c2 = this.coordsIndex[255 - i2[3]], u2 = c2 && this.sourceCache.getTileByID(c2);\n if (!u2) return null;\n const d2 = this._coordsTextureSize, _2 = (1 << u2.tileID.canonical.z) * d2;\n return new e.Z((u2.tileID.canonical.x * d2 + l2) / _2 + u2.tileID.wrap, (u2.tileID.canonical.y * d2 + h2) / _2, this.getElevation(u2.tileID, l2, h2, d2));\n }\n depthAtPoint(t4) {\n const e2 = new Uint8Array(4), i2 = this.painter.context, a2 = i2.gl;\n return i2.bindFramebuffer.set(this.getFramebuffer(\"depth\").framebuffer), a2.readPixels(t4.x, this.painter.height / devicePixelRatio - t4.y - 1, 1, 1, a2.RGBA, a2.UNSIGNED_BYTE, e2), i2.bindFramebuffer.set(null), (e2[0] / 16777216 + e2[1] / 65536 + e2[2] / 256 + e2[3]) / 256;\n }\n getTerrainMesh() {\n if (this._mesh) return this._mesh;\n const t4 = this.painter.context, i2 = new e.bd(), a2 = new e.aY(), s2 = this.meshSize, o2 = e.X / s2, r2 = s2 * s2;\n for (let t5 = 0; t5 <= s2; t5++) for (let e2 = 0; e2 <= s2; e2++) i2.emplaceBack(e2 * o2, t5 * o2, 0);\n for (let t5 = 0; t5 < r2; t5 += s2 + 1) for (let e2 = 0; e2 < s2; e2++) a2.emplaceBack(e2 + t5, s2 + e2 + t5 + 1, s2 + e2 + t5 + 2), a2.emplaceBack(e2 + t5, s2 + e2 + t5 + 2, e2 + t5 + 1);\n const n2 = i2.length, l2 = n2 + 2 * (s2 + 1);\n for (const t5 of [0, 1]) for (let a3 = 0; a3 <= s2; a3++) for (const s3 of [0, 1]) i2.emplaceBack(a3 * o2, t5 * e.X, s3);\n for (let t5 = 0; t5 < 2 * s2; t5 += 2) a2.emplaceBack(l2 + t5, l2 + t5 + 1, l2 + t5 + 3), a2.emplaceBack(l2 + t5, l2 + t5 + 3, l2 + t5 + 2), a2.emplaceBack(n2 + t5, n2 + t5 + 3, n2 + t5 + 1), a2.emplaceBack(n2 + t5, n2 + t5 + 2, n2 + t5 + 3);\n const h2 = i2.length, c2 = h2 + 2 * (s2 + 1);\n for (const t5 of [0, 1]) for (let a3 = 0; a3 <= s2; a3++) for (const s3 of [0, 1]) i2.emplaceBack(t5 * e.X, a3 * o2, s3);\n for (let t5 = 0; t5 < 2 * s2; t5 += 2) a2.emplaceBack(h2 + t5, h2 + t5 + 1, h2 + t5 + 3), a2.emplaceBack(h2 + t5, h2 + t5 + 3, h2 + t5 + 2), a2.emplaceBack(c2 + t5, c2 + t5 + 3, c2 + t5 + 1), a2.emplaceBack(c2 + t5, c2 + t5 + 2, c2 + t5 + 3);\n return this._mesh = new ga(t4.createVertexBuffer(i2, Ss.members), t4.createIndexBuffer(a2), e.a0.simpleSegment(0, 0, i2.length, a2.length)), this._mesh;\n }\n getMeshFrameDelta(t4) {\n return 2 * Math.PI * e.be / Math.pow(2, t4) / 5;\n }\n getMinTileElevationForLngLatZoom(t4, e2) {\n var i2;\n const { tileID: a2 } = this._getOverscaledTileIDFromLngLatZoom(t4, e2);\n return null !== (i2 = this.getMinMaxElevation(a2).minElevation) && void 0 !== i2 ? i2 : 0;\n }\n getMinMaxElevation(t4) {\n const e2 = this.getTerrainData(t4).tile, i2 = { minElevation: null, maxElevation: null };\n return e2 && e2.dem && (i2.minElevation = e2.dem.min * this.exaggeration, i2.maxElevation = e2.dem.max * this.exaggeration), i2;\n }\n _getOverscaledTileIDFromLngLatZoom(t4, i2) {\n const a2 = e.Z.fromLngLat(t4.wrap()), s2 = (1 << i2) * e.X, o2 = a2.x * s2, r2 = a2.y * s2, n2 = Math.floor(o2 / e.X), l2 = Math.floor(r2 / e.X);\n return { tileID: new e.S(i2, 0, i2, n2, l2), mercatorX: o2, mercatorY: r2 };\n }\n }\n class Ms {\n constructor(t4, e2, i2) {\n this._context = t4, this._size = e2, this._tileSize = i2, this._objects = [], this._recentlyUsed = [], this._stamp = 0;\n }\n destruct() {\n for (const t4 of this._objects) t4.texture.destroy(), t4.fbo.destroy();\n }\n _createObject(t4) {\n const e2 = this._context.createFramebuffer(this._tileSize, this._tileSize, true, true), i2 = new b(this._context, { width: this._tileSize, height: this._tileSize, data: null }, this._context.gl.RGBA);\n return i2.bind(this._context.gl.LINEAR, this._context.gl.CLAMP_TO_EDGE), e2.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL, this._tileSize, this._tileSize)), e2.colorAttachment.set(i2.texture), { id: t4, fbo: e2, texture: i2, stamp: -1, inUse: false };\n }\n getObjectForId(t4) {\n return this._objects[t4];\n }\n useObject(t4) {\n t4.inUse = true, this._recentlyUsed = this._recentlyUsed.filter((e2) => t4.id !== e2), this._recentlyUsed.push(t4.id);\n }\n stampObject(t4) {\n t4.stamp = ++this._stamp;\n }\n getOrCreateFreeObject() {\n for (const t5 of this._recentlyUsed) if (!this._objects[t5].inUse) return this._objects[t5];\n if (this._objects.length >= this._size) throw new Error(\"No free RenderPool available, call freeAllObjects() required!\");\n const t4 = this._createObject(this._objects.length);\n return this._objects.push(t4), t4;\n }\n freeObject(t4) {\n t4.inUse = false;\n }\n freeAllObjects() {\n for (const t4 of this._objects) this.freeObject(t4);\n }\n isFull() {\n return !(this._objects.length < this._size) && false === this._objects.some((t4) => !t4.inUse);\n }\n }\n const As = { background: true, fill: true, line: true, raster: true, hillshade: true };\n class Rs {\n constructor(t4, e2) {\n this.painter = t4, this.terrain = e2, this.pool = new Ms(t4.context, 30, e2.sourceCache.tileSize * e2.qualityFactor);\n }\n destruct() {\n this.pool.destruct();\n }\n getTexture(t4) {\n return this.pool.getObjectForId(t4.rtt[this._stacks.length - 1].id).texture;\n }\n prepareForRender(t4, e2) {\n this._stacks = [], this._prevType = null, this._rttTiles = [], this._renderableTiles = this.terrain.sourceCache.getRenderableTiles(), this._renderableLayerIds = t4._order.filter((i2) => !t4._layers[i2].isHidden(e2)), this._coordsDescendingInv = {};\n for (const e3 in t4.sourceCaches) {\n this._coordsDescendingInv[e3] = {};\n const i2 = t4.sourceCaches[e3].getVisibleCoordinates();\n for (const t5 of i2) {\n const i3 = this.terrain.sourceCache.getTerrainCoords(t5);\n for (const t6 in i3) this._coordsDescendingInv[e3][t6] || (this._coordsDescendingInv[e3][t6] = []), this._coordsDescendingInv[e3][t6].push(i3[t6]);\n }\n }\n this._coordsDescendingInvStr = {};\n for (const e3 of t4._order) {\n const i2 = t4._layers[e3], a2 = i2.source;\n if (As[i2.type] && !this._coordsDescendingInvStr[a2]) {\n this._coordsDescendingInvStr[a2] = {};\n for (const t5 in this._coordsDescendingInv[a2]) this._coordsDescendingInvStr[a2][t5] = this._coordsDescendingInv[a2][t5].map((t6) => t6.key).sort().join();\n }\n }\n for (const t5 of this._renderableTiles) for (const e3 in this._coordsDescendingInvStr) {\n const i2 = this._coordsDescendingInvStr[e3][t5.tileID.key];\n i2 && i2 !== t5.rttCoords[e3] && (t5.rtt = []);\n }\n }\n renderLayer(t4) {\n if (t4.isHidden(this.painter.transform.zoom)) return false;\n const i2 = t4.type, a2 = this.painter, s2 = this._renderableLayerIds[this._renderableLayerIds.length - 1] === t4.id;\n if (As[i2] && (this._prevType && As[this._prevType] || this._stacks.push([]), this._prevType = i2, this._stacks[this._stacks.length - 1].push(t4.id), !s2)) return true;\n if (As[this._prevType] || As[i2] && s2) {\n this._prevType = i2;\n const t5 = this._stacks.length - 1, s3 = this._stacks[t5] || [];\n for (const i3 of this._renderableTiles) {\n if (this.pool.isFull() && (fa(this.painter, this.terrain, this._rttTiles), this._rttTiles = [], this.pool.freeAllObjects()), this._rttTiles.push(i3), i3.rtt[t5]) {\n const e2 = this.pool.getObjectForId(i3.rtt[t5].id);\n if (e2.stamp === i3.rtt[t5].stamp) {\n this.pool.useObject(e2);\n continue;\n }\n }\n const o2 = this.pool.getOrCreateFreeObject();\n this.pool.useObject(o2), this.pool.stampObject(o2), i3.rtt[t5] = { id: o2.id, stamp: o2.stamp }, a2.context.bindFramebuffer.set(o2.fbo.framebuffer), a2.context.clear({ color: e.aM.transparent, stencil: 0 }), a2.currentStencilSource = void 0;\n for (let t6 = 0; t6 < s3.length; t6++) {\n const e2 = a2.style._layers[s3[t6]], r2 = e2.source ? this._coordsDescendingInv[e2.source][i3.tileID.key] : [i3.tileID];\n a2.context.viewport.set([0, 0, o2.fbo.width, o2.fbo.height]), a2._renderTileClippingMasks(e2, r2), a2.renderLayer(a2, a2.style.sourceCaches[e2.source], e2, r2), e2.source && (i3.rttCoords[e2.source] = this._coordsDescendingInvStr[e2.source][i3.tileID.key]);\n }\n }\n return fa(this.painter, this.terrain, this._rttTiles), this._rttTiles = [], this.pool.freeAllObjects(), As[i2];\n }\n return false;\n }\n }\n const ks = { \"AttributionControl.ToggleAttribution\": \"Toggle attribution\", \"AttributionControl.MapFeedback\": \"Map feedback\", \"FullscreenControl.Enter\": \"Enter fullscreen\", \"FullscreenControl.Exit\": \"Exit fullscreen\", \"GeolocateControl.FindMyLocation\": \"Find my location\", \"GeolocateControl.LocationNotAvailable\": \"Location not available\", \"LogoControl.Title\": \"MapLibre logo\", \"Map.Title\": \"Map\", \"Marker.Title\": \"Map marker\", \"NavigationControl.ResetBearing\": \"Reset bearing to north\", \"NavigationControl.ZoomIn\": \"Zoom in\", \"NavigationControl.ZoomOut\": \"Zoom out\", \"Popup.Close\": \"Close popup\", \"ScaleControl.Feet\": \"ft\", \"ScaleControl.Meters\": \"m\", \"ScaleControl.Kilometers\": \"km\", \"ScaleControl.Miles\": \"mi\", \"ScaleControl.NauticalMiles\": \"nm\", \"TerrainControl.Enable\": \"Enable terrain\", \"TerrainControl.Disable\": \"Disable terrain\", \"CooperativeGesturesHandler.WindowsHelpText\": \"Use Ctrl + scroll to zoom the map\", \"CooperativeGesturesHandler.MacHelpText\": \"Use \\u2318 + scroll to zoom the map\", \"CooperativeGesturesHandler.MobileHelpText\": \"Use two fingers to move the map\" }, Ls = i, Fs = { hash: false, interactive: true, bearingSnap: 7, attributionControl: Is, maplibreLogo: false, failIfMajorPerformanceCaveat: false, preserveDrawingBuffer: false, refreshExpiredTiles: true, scrollZoom: true, minZoom: -2, maxZoom: 22, minPitch: 0, maxPitch: 60, boxZoom: true, dragRotate: true, dragPan: true, keyboard: true, doubleClickZoom: true, touchZoomRotate: true, touchPitch: true, cooperativeGestures: false, trackResize: true, center: [0, 0], zoom: 0, bearing: 0, pitch: 0, renderWorldCopies: true, maxTileCacheSize: null, maxTileCacheZoomLevels: e.a.MAX_TILE_CACHE_ZOOM_LEVELS, transformRequest: null, transformCameraUpdate: null, fadeDuration: 300, crossSourceCollisions: true, clickTolerance: 3, localIdeographFontFamily: \"sans-serif\", pitchWithRotate: true, validateStyle: true, maxCanvasSize: [4096, 4096], cancelPendingTileRequestsWhileZooming: true }, Bs = (t4) => {\n t4.touchstart = t4.dragStart, t4.touchmoveWindow = t4.dragMove, t4.touchend = t4.dragEnd;\n }, Os = { showCompass: true, showZoom: true, visualizePitch: false };\n class Ns {\n constructor(t4, i2, a2 = false) {\n this.mousedown = (t5) => {\n this.startMouse(e.e({}, t5, { ctrlKey: true, preventDefault: () => t5.preventDefault() }), r.mousePos(this.element, t5)), r.addEventListener(window, \"mousemove\", this.mousemove), r.addEventListener(window, \"mouseup\", this.mouseup);\n }, this.mousemove = (t5) => {\n this.moveMouse(t5, r.mousePos(this.element, t5));\n }, this.mouseup = (t5) => {\n this.mouseRotate.dragEnd(t5), this.mousePitch && this.mousePitch.dragEnd(t5), this.offTemp();\n }, this.touchstart = (t5) => {\n 1 !== t5.targetTouches.length ? this.reset() : (this._startPos = this._lastPos = r.touchPos(this.element, t5.targetTouches)[0], this.startTouch(t5, this._startPos), r.addEventListener(window, \"touchmove\", this.touchmove, { passive: false }), r.addEventListener(window, \"touchend\", this.touchend));\n }, this.touchmove = (t5) => {\n 1 !== t5.targetTouches.length ? this.reset() : (this._lastPos = r.touchPos(this.element, t5.targetTouches)[0], this.moveTouch(t5, this._lastPos));\n }, this.touchend = (t5) => {\n 0 === t5.targetTouches.length && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), delete this._startPos, delete this._lastPos, this.offTemp();\n }, this.reset = () => {\n this.mouseRotate.reset(), this.mousePitch && this.mousePitch.reset(), this.touchRotate.reset(), this.touchPitch && this.touchPitch.reset(), delete this._startPos, delete this._lastPos, this.offTemp();\n }, this._clickTolerance = 10;\n const s2 = t4.dragRotate._mouseRotate.getClickTolerance(), o2 = t4.dragRotate._mousePitch.getClickTolerance();\n this.element = i2, this.mouseRotate = Ka({ clickTolerance: s2, enable: true }), this.touchRotate = (({ enable: t5, clickTolerance: e2, bearingDegreesPerPixelMoved: i3 = 0.8 }) => {\n const a3 = new $a();\n return new Ga({ clickTolerance: e2, move: (t6, e3) => ({ bearingDelta: (e3.x - t6.x) * i3 }), moveStateManager: a3, enable: t5, assignEvents: Bs });\n })({ clickTolerance: s2, enable: true }), this.map = t4, a2 && (this.mousePitch = Ja({ clickTolerance: o2, enable: true }), this.touchPitch = (({ enable: t5, clickTolerance: e2, pitchDegreesPerPixelMoved: i3 = -0.5 }) => {\n const a3 = new $a();\n return new Ga({ clickTolerance: e2, move: (t6, e3) => ({ pitchDelta: (e3.y - t6.y) * i3 }), moveStateManager: a3, enable: t5, assignEvents: Bs });\n })({ clickTolerance: o2, enable: true })), r.addEventListener(i2, \"mousedown\", this.mousedown), r.addEventListener(i2, \"touchstart\", this.touchstart, { passive: false }), r.addEventListener(i2, \"touchcancel\", this.reset);\n }\n startMouse(t4, e2) {\n this.mouseRotate.dragStart(t4, e2), this.mousePitch && this.mousePitch.dragStart(t4, e2), r.disableDrag();\n }\n startTouch(t4, e2) {\n this.touchRotate.dragStart(t4, e2), this.touchPitch && this.touchPitch.dragStart(t4, e2), r.disableDrag();\n }\n moveMouse(t4, e2) {\n const i2 = this.map, { bearingDelta: a2 } = this.mouseRotate.dragMove(t4, e2) || {};\n if (a2 && i2.setBearing(i2.getBearing() + a2), this.mousePitch) {\n const { pitchDelta: a3 } = this.mousePitch.dragMove(t4, e2) || {};\n a3 && i2.setPitch(i2.getPitch() + a3);\n }\n }\n moveTouch(t4, e2) {\n const i2 = this.map, { bearingDelta: a2 } = this.touchRotate.dragMove(t4, e2) || {};\n if (a2 && i2.setBearing(i2.getBearing() + a2), this.touchPitch) {\n const { pitchDelta: a3 } = this.touchPitch.dragMove(t4, e2) || {};\n a3 && i2.setPitch(i2.getPitch() + a3);\n }\n }\n off() {\n const t4 = this.element;\n r.removeEventListener(t4, \"mousedown\", this.mousedown), r.removeEventListener(t4, \"touchstart\", this.touchstart, { passive: false }), r.removeEventListener(window, \"touchmove\", this.touchmove, { passive: false }), r.removeEventListener(window, \"touchend\", this.touchend), r.removeEventListener(t4, \"touchcancel\", this.reset), this.offTemp();\n }\n offTemp() {\n r.enableDrag(), r.removeEventListener(window, \"mousemove\", this.mousemove), r.removeEventListener(window, \"mouseup\", this.mouseup), r.removeEventListener(window, \"touchmove\", this.touchmove, { passive: false }), r.removeEventListener(window, \"touchend\", this.touchend);\n }\n }\n let Us;\n function js(t4, i2, a2) {\n const s2 = new e.N(t4.lng, t4.lat);\n if (t4 = new e.N(t4.lng, t4.lat), i2) {\n const s3 = new e.N(t4.lng - 360, t4.lat), o2 = new e.N(t4.lng + 360, t4.lat), r2 = a2.locationPoint(t4).distSqr(i2);\n a2.locationPoint(s3).distSqr(i2) < r2 ? t4 = s3 : a2.locationPoint(o2).distSqr(i2) < r2 && (t4 = o2);\n }\n for (; Math.abs(t4.lng - a2.center.lng) > 180; ) {\n const e2 = a2.locationPoint(t4);\n if (e2.x >= 0 && e2.y >= 0 && e2.x <= a2.width && e2.y <= a2.height) break;\n t4.lng > a2.center.lng ? t4.lng -= 360 : t4.lng += 360;\n }\n return t4.lng !== s2.lng && a2.locationPoint(t4).y > a2.height / 2 - a2.getHorizon() ? t4 : s2;\n }\n const Zs = { center: \"translate(-50%,-50%)\", top: \"translate(-50%,0)\", \"top-left\": \"translate(0,0)\", \"top-right\": \"translate(-100%,0)\", bottom: \"translate(-50%,-100%)\", \"bottom-left\": \"translate(0,-100%)\", \"bottom-right\": \"translate(-100%,-100%)\", left: \"translate(0,-50%)\", right: \"translate(-100%,-50%)\" };\n function qs(t4, e2, i2) {\n const a2 = t4.classList;\n for (const t5 in Zs) a2.remove(`maplibregl-${i2}-anchor-${t5}`);\n a2.add(`maplibregl-${i2}-anchor-${e2}`);\n }\n class Vs extends e.E {\n constructor(t4) {\n if (super(), this._onKeyPress = (t5) => {\n const e2 = t5.code, i2 = t5.charCode || t5.keyCode;\n \"Space\" !== e2 && \"Enter\" !== e2 && 32 !== i2 && 13 !== i2 || this.togglePopup();\n }, this._onMapClick = (t5) => {\n const e2 = t5.originalEvent.target, i2 = this._element;\n this._popup && (e2 === i2 || i2.contains(e2)) && this.togglePopup();\n }, this._update = (t5) => {\n var e2;\n if (!this._map) return;\n const i2 = this._map.loaded() && !this._map.isMoving();\n (\"terrain\" === (null == t5 ? void 0 : t5.type) || \"render\" === (null == t5 ? void 0 : t5.type) && !i2) && this._map.once(\"render\", this._update), this._lngLat = this._map.transform.renderWorldCopies ? js(this._lngLat, this._flatPos, this._map.transform) : null === (e2 = this._lngLat) || void 0 === e2 ? void 0 : e2.wrap(), this._flatPos = this._pos = this._map.project(this._lngLat)._add(this._offset), this._map.terrain && (this._flatPos = this._map.transform.locationPoint(this._lngLat)._add(this._offset));\n let a2 = \"\";\n \"viewport\" === this._rotationAlignment || \"auto\" === this._rotationAlignment ? a2 = `rotateZ(${this._rotation}deg)` : \"map\" === this._rotationAlignment && (a2 = `rotateZ(${this._rotation - this._map.getBearing()}deg)`);\n let s2 = \"\";\n \"viewport\" === this._pitchAlignment || \"auto\" === this._pitchAlignment ? s2 = \"rotateX(0deg)\" : \"map\" === this._pitchAlignment && (s2 = `rotateX(${this._map.getPitch()}deg)`), this._subpixelPositioning || t5 && \"moveend\" !== t5.type || (this._pos = this._pos.round()), r.setTransform(this._element, `${Zs[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${s2} ${a2}`), o.frameAsync(new AbortController()).then(() => {\n this._updateOpacity(t5 && \"moveend\" === t5.type);\n }).catch(() => {\n });\n }, this._onMove = (t5) => {\n if (!this._isDragging) {\n const e2 = this._clickTolerance || this._map._clickTolerance;\n this._isDragging = t5.point.dist(this._pointerdownPos) >= e2;\n }\n this._isDragging && (this._pos = t5.point.sub(this._positionDelta), this._lngLat = this._map.unproject(this._pos), this.setLngLat(this._lngLat), this._element.style.pointerEvents = \"none\", \"pending\" === this._state && (this._state = \"active\", this.fire(new e.k(\"dragstart\"))), this.fire(new e.k(\"drag\")));\n }, this._onUp = () => {\n this._element.style.pointerEvents = \"auto\", this._positionDelta = null, this._pointerdownPos = null, this._isDragging = false, this._map.off(\"mousemove\", this._onMove), this._map.off(\"touchmove\", this._onMove), \"active\" === this._state && this.fire(new e.k(\"dragend\")), this._state = \"inactive\";\n }, this._addDragHandler = (t5) => {\n this._element.contains(t5.originalEvent.target) && (t5.preventDefault(), this._positionDelta = t5.point.sub(this._pos).add(this._offset), this._pointerdownPos = t5.point, this._state = \"pending\", this._map.on(\"mousemove\", this._onMove), this._map.on(\"touchmove\", this._onMove), this._map.once(\"mouseup\", this._onUp), this._map.once(\"touchend\", this._onUp));\n }, this._anchor = t4 && t4.anchor || \"center\", this._color = t4 && t4.color || \"#3FB1CE\", this._scale = t4 && t4.scale || 1, this._draggable = t4 && t4.draggable || false, this._clickTolerance = t4 && t4.clickTolerance || 0, this._subpixelPositioning = t4 && t4.subpixelPositioning || false, this._isDragging = false, this._state = \"inactive\", this._rotation = t4 && t4.rotation || 0, this._rotationAlignment = t4 && t4.rotationAlignment || \"auto\", this._pitchAlignment = t4 && t4.pitchAlignment && \"auto\" !== t4.pitchAlignment ? t4.pitchAlignment : this._rotationAlignment, this.setOpacity(), this.setOpacity(null == t4 ? void 0 : t4.opacity, null == t4 ? void 0 : t4.opacityWhenCovered), t4 && t4.element) this._element = t4.element, this._offset = e.P.convert(t4 && t4.offset || [0, 0]);\n else {\n this._defaultMarker = true, this._element = r.create(\"div\");\n const i2 = r.createNS(\"http://www.w3.org/2000/svg\", \"svg\"), a2 = 41, s2 = 27;\n i2.setAttributeNS(null, \"display\", \"block\"), i2.setAttributeNS(null, \"height\", `${a2}px`), i2.setAttributeNS(null, \"width\", `${s2}px`), i2.setAttributeNS(null, \"viewBox\", `0 0 ${s2} ${a2}`);\n const o2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n o2.setAttributeNS(null, \"stroke\", \"none\"), o2.setAttributeNS(null, \"stroke-width\", \"1\"), o2.setAttributeNS(null, \"fill\", \"none\"), o2.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n const n2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n n2.setAttributeNS(null, \"fill-rule\", \"nonzero\");\n const l2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n l2.setAttributeNS(null, \"transform\", \"translate(3.0, 29.0)\"), l2.setAttributeNS(null, \"fill\", \"#000000\");\n const h2 = [{ rx: \"10.5\", ry: \"5.25002273\" }, { rx: \"10.5\", ry: \"5.25002273\" }, { rx: \"9.5\", ry: \"4.77275007\" }, { rx: \"8.5\", ry: \"4.29549936\" }, { rx: \"7.5\", ry: \"3.81822308\" }, { rx: \"6.5\", ry: \"3.34094679\" }, { rx: \"5.5\", ry: \"2.86367051\" }, { rx: \"4.5\", ry: \"2.38636864\" }];\n for (const t5 of h2) {\n const e2 = r.createNS(\"http://www.w3.org/2000/svg\", \"ellipse\");\n e2.setAttributeNS(null, \"opacity\", \"0.04\"), e2.setAttributeNS(null, \"cx\", \"10.5\"), e2.setAttributeNS(null, \"cy\", \"5.80029008\"), e2.setAttributeNS(null, \"rx\", t5.rx), e2.setAttributeNS(null, \"ry\", t5.ry), l2.appendChild(e2);\n }\n const c2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n c2.setAttributeNS(null, \"fill\", this._color);\n const u2 = r.createNS(\"http://www.w3.org/2000/svg\", \"path\");\n u2.setAttributeNS(null, \"d\", \"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"), c2.appendChild(u2);\n const d2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n d2.setAttributeNS(null, \"opacity\", \"0.25\"), d2.setAttributeNS(null, \"fill\", \"#000000\");\n const _2 = r.createNS(\"http://www.w3.org/2000/svg\", \"path\");\n _2.setAttributeNS(null, \"d\", \"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"), d2.appendChild(_2);\n const p2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n p2.setAttributeNS(null, \"transform\", \"translate(6.0, 7.0)\"), p2.setAttributeNS(null, \"fill\", \"#FFFFFF\");\n const m2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n m2.setAttributeNS(null, \"transform\", \"translate(8.0, 8.0)\");\n const f2 = r.createNS(\"http://www.w3.org/2000/svg\", \"circle\");\n f2.setAttributeNS(null, \"fill\", \"#000000\"), f2.setAttributeNS(null, \"opacity\", \"0.25\"), f2.setAttributeNS(null, \"cx\", \"5.5\"), f2.setAttributeNS(null, \"cy\", \"5.5\"), f2.setAttributeNS(null, \"r\", \"5.4999962\");\n const g2 = r.createNS(\"http://www.w3.org/2000/svg\", \"circle\");\n g2.setAttributeNS(null, \"fill\", \"#FFFFFF\"), g2.setAttributeNS(null, \"cx\", \"5.5\"), g2.setAttributeNS(null, \"cy\", \"5.5\"), g2.setAttributeNS(null, \"r\", \"5.4999962\"), m2.appendChild(f2), m2.appendChild(g2), n2.appendChild(l2), n2.appendChild(c2), n2.appendChild(d2), n2.appendChild(p2), n2.appendChild(m2), i2.appendChild(n2), i2.setAttributeNS(null, \"height\", a2 * this._scale + \"px\"), i2.setAttributeNS(null, \"width\", s2 * this._scale + \"px\"), this._element.appendChild(i2), this._offset = e.P.convert(t4 && t4.offset || [0, -14]);\n }\n if (this._element.classList.add(\"maplibregl-marker\"), this._element.addEventListener(\"dragstart\", (t5) => {\n t5.preventDefault();\n }), this._element.addEventListener(\"mousedown\", (t5) => {\n t5.preventDefault();\n }), qs(this._element, this._anchor, \"marker\"), t4 && t4.className) for (const e2 of t4.className.split(\" \")) this._element.classList.add(e2);\n this._popup = null;\n }\n addTo(t4) {\n return this.remove(), this._map = t4, this._element.setAttribute(\"aria-label\", t4._getUIString(\"Marker.Title\")), t4.getCanvasContainer().appendChild(this._element), t4.on(\"move\", this._update), t4.on(\"moveend\", this._update), t4.on(\"terrain\", this._update), this.setDraggable(this._draggable), this._update(), this._map.on(\"click\", this._onMapClick), this;\n }\n remove() {\n return this._opacityTimeout && (clearTimeout(this._opacityTimeout), delete this._opacityTimeout), this._map && (this._map.off(\"click\", this._onMapClick), this._map.off(\"move\", this._update), this._map.off(\"moveend\", this._update), this._map.off(\"terrain\", this._update), this._map.off(\"mousedown\", this._addDragHandler), this._map.off(\"touchstart\", this._addDragHandler), this._map.off(\"mouseup\", this._onUp), this._map.off(\"touchend\", this._onUp), this._map.off(\"mousemove\", this._onMove), this._map.off(\"touchmove\", this._onMove), delete this._map), r.remove(this._element), this._popup && this._popup.remove(), this;\n }\n getLngLat() {\n return this._lngLat;\n }\n setLngLat(t4) {\n return this._lngLat = e.N.convert(t4), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this;\n }\n getElement() {\n return this._element;\n }\n setPopup(t4) {\n if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener(\"keypress\", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute(\"tabindex\")), t4) {\n if (!(\"offset\" in t4.options)) {\n const e2 = 38.1, i2 = 13.5, a2 = Math.abs(i2) / Math.SQRT2;\n t4.options.offset = this._defaultMarker ? { top: [0, 0], \"top-left\": [0, 0], \"top-right\": [0, 0], bottom: [0, -e2], \"bottom-left\": [a2, -1 * (e2 - i2 + a2)], \"bottom-right\": [-a2, -1 * (e2 - i2 + a2)], left: [i2, -1 * (e2 - i2)], right: [-i2, -1 * (e2 - i2)] } : this._offset;\n }\n this._popup = t4, this._originalTabIndex = this._element.getAttribute(\"tabindex\"), this._originalTabIndex || this._element.setAttribute(\"tabindex\", \"0\"), this._element.addEventListener(\"keypress\", this._onKeyPress);\n }\n return this;\n }\n setSubpixelPositioning(t4) {\n return this._subpixelPositioning = t4, this;\n }\n getPopup() {\n return this._popup;\n }\n togglePopup() {\n const t4 = this._popup;\n return this._element.style.opacity === this._opacityWhenCovered ? this : t4 ? (t4.isOpen() ? t4.remove() : (t4.setLngLat(this._lngLat), t4.addTo(this._map)), this) : this;\n }\n _updateOpacity(t4 = false) {\n var i2, a2;\n if (!(null === (i2 = this._map) || void 0 === i2 ? void 0 : i2.terrain)) return void (this._element.style.opacity !== this._opacity && (this._element.style.opacity = this._opacity));\n if (t4) this._opacityTimeout = null;\n else {\n if (this._opacityTimeout) return;\n this._opacityTimeout = setTimeout(() => {\n this._opacityTimeout = null;\n }, 100);\n }\n const s2 = this._map, o2 = s2.terrain.depthAtPoint(this._pos), r2 = s2.terrain.getElevationForLngLatZoom(this._lngLat, s2.transform.tileZoom);\n if (s2.transform.lngLatToCameraDepth(this._lngLat, r2) - o2 < 6e-3) return void (this._element.style.opacity = this._opacity);\n const n2 = -this._offset.y / s2.transform._pixelPerMeter, l2 = Math.sin(s2.getPitch() * Math.PI / 180) * n2, h2 = s2.terrain.depthAtPoint(new e.P(this._pos.x, this._pos.y - this._offset.y)), c2 = s2.transform.lngLatToCameraDepth(this._lngLat, r2 + l2) - h2 > 6e-3;\n (null === (a2 = this._popup) || void 0 === a2 ? void 0 : a2.isOpen()) && c2 && this._popup.remove(), this._element.style.opacity = c2 ? this._opacityWhenCovered : this._opacity;\n }\n getOffset() {\n return this._offset;\n }\n setOffset(t4) {\n return this._offset = e.P.convert(t4), this._update(), this;\n }\n addClassName(t4) {\n this._element.classList.add(t4);\n }\n removeClassName(t4) {\n this._element.classList.remove(t4);\n }\n toggleClassName(t4) {\n return this._element.classList.toggle(t4);\n }\n setDraggable(t4) {\n return this._draggable = !!t4, this._map && (t4 ? (this._map.on(\"mousedown\", this._addDragHandler), this._map.on(\"touchstart\", this._addDragHandler)) : (this._map.off(\"mousedown\", this._addDragHandler), this._map.off(\"touchstart\", this._addDragHandler))), this;\n }\n isDraggable() {\n return this._draggable;\n }\n setRotation(t4) {\n return this._rotation = t4 || 0, this._update(), this;\n }\n getRotation() {\n return this._rotation;\n }\n setRotationAlignment(t4) {\n return this._rotationAlignment = t4 || \"auto\", this._update(), this;\n }\n getRotationAlignment() {\n return this._rotationAlignment;\n }\n setPitchAlignment(t4) {\n return this._pitchAlignment = t4 && \"auto\" !== t4 ? t4 : this._rotationAlignment, this._update(), this;\n }\n getPitchAlignment() {\n return this._pitchAlignment;\n }\n setOpacity(t4, e2) {\n return void 0 === t4 && void 0 === e2 && (this._opacity = \"1\", this._opacityWhenCovered = \"0.2\"), void 0 !== t4 && (this._opacity = t4), void 0 !== e2 && (this._opacityWhenCovered = e2), this._map && this._updateOpacity(true), this;\n }\n }\n const Gs = { positionOptions: { enableHighAccuracy: false, maximumAge: 0, timeout: 6e3 }, fitBoundsOptions: { maxZoom: 15 }, trackUserLocation: false, showAccuracyCircle: true, showUserLocation: true };\n let Hs = 0, Ws = false;\n const $s = { maxWidth: 100, unit: \"metric\" };\n function Xs(t4, e2, i2) {\n const a2 = i2 && i2.maxWidth || 100, s2 = t4._container.clientHeight / 2, o2 = t4.unproject([0, s2]), r2 = t4.unproject([a2, s2]), n2 = o2.distanceTo(r2);\n if (i2 && \"imperial\" === i2.unit) {\n const i3 = 3.2808 * n2;\n i3 > 5280 ? Ks(e2, a2, i3 / 5280, t4._getUIString(\"ScaleControl.Miles\")) : Ks(e2, a2, i3, t4._getUIString(\"ScaleControl.Feet\"));\n } else i2 && \"nautical\" === i2.unit ? Ks(e2, a2, n2 / 1852, t4._getUIString(\"ScaleControl.NauticalMiles\")) : n2 >= 1e3 ? Ks(e2, a2, n2 / 1e3, t4._getUIString(\"ScaleControl.Kilometers\")) : Ks(e2, a2, n2, t4._getUIString(\"ScaleControl.Meters\"));\n }\n function Ks(t4, e2, i2, a2) {\n const s2 = function(t5) {\n const e3 = Math.pow(10, `${Math.floor(t5)}`.length - 1);\n let i3 = t5 / e3;\n return i3 = i3 >= 10 ? 10 : i3 >= 5 ? 5 : i3 >= 3 ? 3 : i3 >= 2 ? 2 : i3 >= 1 ? 1 : function(t6) {\n const e4 = Math.pow(10, Math.ceil(-Math.log(t6) / Math.LN10));\n return Math.round(t6 * e4) / e4;\n }(i3), e3 * i3;\n }(i2);\n t4.style.width = e2 * (s2 / i2) + \"px\", t4.innerHTML = `${s2} ${a2}`;\n }\n const Js = { closeButton: true, closeOnClick: true, focusAfterOpen: true, className: \"\", maxWidth: \"240px\", subpixelPositioning: false }, Ys = [\"a[href]\", \"[tabindex]:not([tabindex='-1'])\", \"[contenteditable]:not([contenteditable='false'])\", \"button:not([disabled])\", \"input:not([disabled])\", \"select:not([disabled])\", \"textarea:not([disabled])\"].join(\", \");\n function Qs(t4) {\n if (t4) {\n if (\"number\" == typeof t4) {\n const i2 = Math.round(Math.abs(t4) / Math.SQRT2);\n return { center: new e.P(0, 0), top: new e.P(0, t4), \"top-left\": new e.P(i2, i2), \"top-right\": new e.P(-i2, i2), bottom: new e.P(0, -t4), \"bottom-left\": new e.P(i2, -i2), \"bottom-right\": new e.P(-i2, -i2), left: new e.P(t4, 0), right: new e.P(-t4, 0) };\n }\n if (t4 instanceof e.P || Array.isArray(t4)) {\n const i2 = e.P.convert(t4);\n return { center: i2, top: i2, \"top-left\": i2, \"top-right\": i2, bottom: i2, \"bottom-left\": i2, \"bottom-right\": i2, left: i2, right: i2 };\n }\n return { center: e.P.convert(t4.center || [0, 0]), top: e.P.convert(t4.top || [0, 0]), \"top-left\": e.P.convert(t4[\"top-left\"] || [0, 0]), \"top-right\": e.P.convert(t4[\"top-right\"] || [0, 0]), bottom: e.P.convert(t4.bottom || [0, 0]), \"bottom-left\": e.P.convert(t4[\"bottom-left\"] || [0, 0]), \"bottom-right\": e.P.convert(t4[\"bottom-right\"] || [0, 0]), left: e.P.convert(t4.left || [0, 0]), right: e.P.convert(t4.right || [0, 0]) };\n }\n return Qs(new e.P(0, 0));\n }\n const to = i;\n t.AJAXError = e.bh, t.Evented = e.E, t.LngLat = e.N, t.MercatorCoordinate = e.Z, t.Point = e.P, t.addProtocol = e.bi, t.config = e.a, t.removeProtocol = e.bj, t.AttributionControl = Es, t.BoxZoomHandler = Ua, t.CanvasSource = et, t.CooperativeGesturesHandler = vs, t.DoubleClickZoomHandler = ds, t.DragPanHandler = ms, t.DragRotateHandler = fs, t.EdgeInsets = ba, t.FullscreenControl = class extends e.E {\n constructor(t4 = {}) {\n super(), this._onFullscreenChange = () => {\n var t5;\n let e2 = window.document.fullscreenElement || window.document.mozFullScreenElement || window.document.webkitFullscreenElement || window.document.msFullscreenElement;\n for (; null === (t5 = null == e2 ? void 0 : e2.shadowRoot) || void 0 === t5 ? void 0 : t5.fullscreenElement; ) e2 = e2.shadowRoot.fullscreenElement;\n e2 === this._container !== this._fullscreen && this._handleFullscreenChange();\n }, this._onClickFullscreen = () => {\n this._isFullscreen() ? this._exitFullscreen() : this._requestFullscreen();\n }, this._fullscreen = false, t4 && t4.container && (t4.container instanceof HTMLElement ? this._container = t4.container : e.w(\"Full screen control 'container' must be a DOM element.\")), \"onfullscreenchange\" in document ? this._fullscreenchange = \"fullscreenchange\" : \"onmozfullscreenchange\" in document ? this._fullscreenchange = \"mozfullscreenchange\" : \"onwebkitfullscreenchange\" in document ? this._fullscreenchange = \"webkitfullscreenchange\" : \"onmsfullscreenchange\" in document && (this._fullscreenchange = \"MSFullscreenChange\");\n }\n onAdd(t4) {\n return this._map = t4, this._container || (this._container = this._map.getContainer()), this._controlContainer = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-group\"), this._setupUI(), this._controlContainer;\n }\n onRemove() {\n r.remove(this._controlContainer), this._map = null, window.document.removeEventListener(this._fullscreenchange, this._onFullscreenChange);\n }\n _setupUI() {\n const t4 = this._fullscreenButton = r.create(\"button\", \"maplibregl-ctrl-fullscreen\", this._controlContainer);\n r.create(\"span\", \"maplibregl-ctrl-icon\", t4).setAttribute(\"aria-hidden\", \"true\"), t4.type = \"button\", this._updateTitle(), this._fullscreenButton.addEventListener(\"click\", this._onClickFullscreen), window.document.addEventListener(this._fullscreenchange, this._onFullscreenChange);\n }\n _updateTitle() {\n const t4 = this._getTitle();\n this._fullscreenButton.setAttribute(\"aria-label\", t4), this._fullscreenButton.title = t4;\n }\n _getTitle() {\n return this._map._getUIString(this._isFullscreen() ? \"FullscreenControl.Exit\" : \"FullscreenControl.Enter\");\n }\n _isFullscreen() {\n return this._fullscreen;\n }\n _handleFullscreenChange() {\n this._fullscreen = !this._fullscreen, this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-shrink\"), this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-fullscreen\"), this._updateTitle(), this._fullscreen ? (this.fire(new e.k(\"fullscreenstart\")), this._prevCooperativeGesturesEnabled = this._map.cooperativeGestures.isEnabled(), this._map.cooperativeGestures.disable()) : (this.fire(new e.k(\"fullscreenend\")), this._prevCooperativeGesturesEnabled && this._map.cooperativeGestures.enable());\n }\n _exitFullscreen() {\n window.document.exitFullscreen ? window.document.exitFullscreen() : window.document.mozCancelFullScreen ? window.document.mozCancelFullScreen() : window.document.msExitFullscreen ? window.document.msExitFullscreen() : window.document.webkitCancelFullScreen ? window.document.webkitCancelFullScreen() : this._togglePseudoFullScreen();\n }\n _requestFullscreen() {\n this._container.requestFullscreen ? this._container.requestFullscreen() : this._container.mozRequestFullScreen ? this._container.mozRequestFullScreen() : this._container.msRequestFullscreen ? this._container.msRequestFullscreen() : this._container.webkitRequestFullscreen ? this._container.webkitRequestFullscreen() : this._togglePseudoFullScreen();\n }\n _togglePseudoFullScreen() {\n this._container.classList.toggle(\"maplibregl-pseudo-fullscreen\"), this._handleFullscreenChange(), this._map.resize();\n }\n }, t.GeoJSONSource = J, t.GeolocateControl = class extends e.E {\n constructor(t4) {\n super(), this._onSuccess = (t5) => {\n if (this._map) {\n if (this._isOutOfMapMaxBounds(t5)) return this._setErrorState(), this.fire(new e.k(\"outofmaxbounds\", t5)), this._updateMarker(), void this._finish();\n if (this.options.trackUserLocation) switch (this._lastKnownPosition = t5, this._watchState) {\n case \"WAITING_ACTIVE\":\n case \"ACTIVE_LOCK\":\n case \"ACTIVE_ERROR\":\n this._watchState = \"ACTIVE_LOCK\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");\n break;\n case \"BACKGROUND\":\n case \"BACKGROUND_ERROR\":\n this._watchState = \"BACKGROUND\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\");\n break;\n default:\n throw new Error(`Unexpected watchState ${this._watchState}`);\n }\n this.options.showUserLocation && \"OFF\" !== this._watchState && this._updateMarker(t5), this.options.trackUserLocation && \"ACTIVE_LOCK\" !== this._watchState || this._updateCamera(t5), this.options.showUserLocation && this._dotElement.classList.remove(\"maplibregl-user-location-dot-stale\"), this.fire(new e.k(\"geolocate\", t5)), this._finish();\n }\n }, this._updateCamera = (t5) => {\n const i2 = new e.N(t5.coords.longitude, t5.coords.latitude), a2 = t5.coords.accuracy, s2 = this._map.getBearing(), o2 = e.e({ bearing: s2 }, this.options.fitBoundsOptions), r2 = H.fromLngLat(i2, a2);\n this._map.fitBounds(r2, o2, { geolocateSource: true });\n }, this._updateMarker = (t5) => {\n if (t5) {\n const i2 = new e.N(t5.coords.longitude, t5.coords.latitude);\n this._accuracyCircleMarker.setLngLat(i2).addTo(this._map), this._userLocationDotMarker.setLngLat(i2).addTo(this._map), this._accuracy = t5.coords.accuracy, this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius();\n } else this._userLocationDotMarker.remove(), this._accuracyCircleMarker.remove();\n }, this._onZoom = () => {\n this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius();\n }, this._onError = (t5) => {\n if (this._map) {\n if (this.options.trackUserLocation) if (1 === t5.code) {\n this._watchState = \"OFF\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"), this._geolocateButton.disabled = true;\n const t6 = this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");\n this._geolocateButton.title = t6, this._geolocateButton.setAttribute(\"aria-label\", t6), void 0 !== this._geolocationWatchID && this._clearWatch();\n } else {\n if (3 === t5.code && Ws) return;\n this._setErrorState();\n }\n \"OFF\" !== this._watchState && this.options.showUserLocation && this._dotElement.classList.add(\"maplibregl-user-location-dot-stale\"), this.fire(new e.k(\"error\", t5)), this._finish();\n }\n }, this._finish = () => {\n this._timeoutId && clearTimeout(this._timeoutId), this._timeoutId = void 0;\n }, this._setupUI = () => {\n this._map && (this._container.addEventListener(\"contextmenu\", (t5) => t5.preventDefault()), this._geolocateButton = r.create(\"button\", \"maplibregl-ctrl-geolocate\", this._container), r.create(\"span\", \"maplibregl-ctrl-icon\", this._geolocateButton).setAttribute(\"aria-hidden\", \"true\"), this._geolocateButton.type = \"button\", this._geolocateButton.disabled = true);\n }, this._finishSetupUI = (t5) => {\n if (this._map) {\n if (false === t5) {\n e.w(\"Geolocation support is not available so the GeolocateControl will be disabled.\");\n const t6 = this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");\n this._geolocateButton.disabled = true, this._geolocateButton.title = t6, this._geolocateButton.setAttribute(\"aria-label\", t6);\n } else {\n const t6 = this._map._getUIString(\"GeolocateControl.FindMyLocation\");\n this._geolocateButton.disabled = false, this._geolocateButton.title = t6, this._geolocateButton.setAttribute(\"aria-label\", t6);\n }\n this.options.trackUserLocation && (this._geolocateButton.setAttribute(\"aria-pressed\", \"false\"), this._watchState = \"OFF\"), this.options.showUserLocation && (this._dotElement = r.create(\"div\", \"maplibregl-user-location-dot\"), this._userLocationDotMarker = new Vs({ element: this._dotElement }), this._circleElement = r.create(\"div\", \"maplibregl-user-location-accuracy-circle\"), this._accuracyCircleMarker = new Vs({ element: this._circleElement, pitchAlignment: \"map\" }), this.options.trackUserLocation && (this._watchState = \"OFF\"), this._map.on(\"zoom\", this._onZoom)), this._geolocateButton.addEventListener(\"click\", () => this.trigger()), this._setup = true, this.options.trackUserLocation && this._map.on(\"movestart\", (t6) => {\n t6.geolocateSource || \"ACTIVE_LOCK\" !== this._watchState || t6.originalEvent && \"resize\" === t6.originalEvent.type || (this._watchState = \"BACKGROUND\", this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this.fire(new e.k(\"trackuserlocationend\")), this.fire(new e.k(\"userlocationlostfocus\")));\n });\n }\n }, this.options = e.e({}, Gs, t4);\n }\n onAdd(t4) {\n return this._map = t4, this._container = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-group\"), this._setupUI(), function() {\n return e._(this, arguments, void 0, function* (t5 = false) {\n if (void 0 !== Us && !t5) return Us;\n if (void 0 === window.navigator.permissions) return Us = !!window.navigator.geolocation, Us;\n try {\n const t6 = yield window.navigator.permissions.query({ name: \"geolocation\" });\n Us = \"denied\" !== t6.state;\n } catch (t6) {\n Us = !!window.navigator.geolocation;\n }\n return Us;\n });\n }().then((t5) => this._finishSetupUI(t5)), this._container;\n }\n onRemove() {\n void 0 !== this._geolocationWatchID && (window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), r.remove(this._container), this._map.off(\"zoom\", this._onZoom), this._map = void 0, Hs = 0, Ws = false;\n }\n _isOutOfMapMaxBounds(t4) {\n const e2 = this._map.getMaxBounds(), i2 = t4.coords;\n return e2 && (i2.longitude < e2.getWest() || i2.longitude > e2.getEast() || i2.latitude < e2.getSouth() || i2.latitude > e2.getNorth());\n }\n _setErrorState() {\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n this._watchState = \"ACTIVE_ERROR\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\");\n break;\n case \"ACTIVE_LOCK\":\n this._watchState = \"ACTIVE_ERROR\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");\n break;\n case \"BACKGROUND\":\n this._watchState = \"BACKGROUND_ERROR\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background-error\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");\n break;\n case \"ACTIVE_ERROR\":\n break;\n default:\n throw new Error(`Unexpected watchState ${this._watchState}`);\n }\n }\n _updateCircleRadius() {\n const t4 = this._map.getBounds(), e2 = t4.getSouthEast(), i2 = t4.getNorthEast(), a2 = e2.distanceTo(i2), s2 = Math.ceil(this._accuracy / (a2 / this._map._container.clientHeight) * 2);\n this._circleElement.style.width = `${s2}px`, this._circleElement.style.height = `${s2}px`;\n }\n trigger() {\n if (!this._setup) return e.w(\"Geolocate control triggered before added to a map\"), false;\n if (this.options.trackUserLocation) {\n switch (this._watchState) {\n case \"OFF\":\n this._watchState = \"WAITING_ACTIVE\", this.fire(new e.k(\"trackuserlocationstart\"));\n break;\n case \"WAITING_ACTIVE\":\n case \"ACTIVE_LOCK\":\n case \"ACTIVE_ERROR\":\n case \"BACKGROUND_ERROR\":\n Hs--, Ws = false, this._watchState = \"OFF\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"), this.fire(new e.k(\"trackuserlocationend\"));\n break;\n case \"BACKGROUND\":\n this._watchState = \"ACTIVE_LOCK\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"), this._lastKnownPosition && this._updateCamera(this._lastKnownPosition), this.fire(new e.k(\"trackuserlocationstart\")), this.fire(new e.k(\"userlocationfocus\"));\n break;\n default:\n throw new Error(`Unexpected watchState ${this._watchState}`);\n }\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");\n break;\n case \"ACTIVE_LOCK\":\n this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");\n break;\n case \"OFF\":\n break;\n default:\n throw new Error(`Unexpected watchState ${this._watchState}`);\n }\n if (\"OFF\" === this._watchState && void 0 !== this._geolocationWatchID) this._clearWatch();\n else if (void 0 === this._geolocationWatchID) {\n let t4;\n this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.setAttribute(\"aria-pressed\", \"true\"), Hs++, Hs > 1 ? (t4 = { maximumAge: 6e5, timeout: 0 }, Ws = true) : (t4 = this.options.positionOptions, Ws = false), this._geolocationWatchID = window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, t4);\n }\n } else window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions), this._timeoutId = setTimeout(this._finish, 1e4);\n return true;\n }\n _clearWatch() {\n window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0, this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.setAttribute(\"aria-pressed\", \"false\"), this.options.showUserLocation && this._updateMarker(null);\n }\n }, t.Hash = Ea, t.ImageSource = Q, t.KeyboardHandler = ls, t.LngLatBounds = H, t.LogoControl = Ps, t.Map = class extends Ts {\n constructor(t4) {\n e.bf.mark(e.bg.create);\n const i2 = Object.assign(Object.assign({}, Fs), t4);\n if (null != i2.minZoom && null != i2.maxZoom && i2.minZoom > i2.maxZoom) throw new Error(\"maxZoom must be greater than or equal to minZoom\");\n if (null != i2.minPitch && null != i2.maxPitch && i2.minPitch > i2.maxPitch) throw new Error(\"maxPitch must be greater than or equal to minPitch\");\n if (null != i2.minPitch && i2.minPitch < 0) throw new Error(\"minPitch must be greater than or equal to 0\");\n if (null != i2.maxPitch && i2.maxPitch > 85) throw new Error(\"maxPitch must be less than or equal to 85\");\n if (super(new Ta(i2.minZoom, i2.maxZoom, i2.minPitch, i2.maxPitch, i2.renderWorldCopies), { bearingSnap: i2.bearingSnap }), this._idleTriggered = false, this._crossFadingFactor = 1, this._renderTaskQueue = new Cs(), this._controls = [], this._mapId = e.a4(), this._contextLost = (t5) => {\n t5.preventDefault(), this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this.fire(new e.k(\"webglcontextlost\", { originalEvent: t5 }));\n }, this._contextRestored = (t5) => {\n this._setupPainter(), this.resize(), this._update(), this.fire(new e.k(\"webglcontextrestored\", { originalEvent: t5 }));\n }, this._onMapScroll = (t5) => {\n if (t5.target === this._container) return this._container.scrollTop = 0, this._container.scrollLeft = 0, false;\n }, this._onWindowOnline = () => {\n this._update();\n }, this._interactive = i2.interactive, this._maxTileCacheSize = i2.maxTileCacheSize, this._maxTileCacheZoomLevels = i2.maxTileCacheZoomLevels, this._failIfMajorPerformanceCaveat = true === i2.failIfMajorPerformanceCaveat, this._preserveDrawingBuffer = true === i2.preserveDrawingBuffer, this._antialias = true === i2.antialias, this._trackResize = true === i2.trackResize, this._bearingSnap = i2.bearingSnap, this._refreshExpiredTiles = true === i2.refreshExpiredTiles, this._fadeDuration = i2.fadeDuration, this._crossSourceCollisions = true === i2.crossSourceCollisions, this._collectResourceTiming = true === i2.collectResourceTiming, this._locale = Object.assign(Object.assign({}, ks), i2.locale), this._clickTolerance = i2.clickTolerance, this._overridePixelRatio = i2.pixelRatio, this._maxCanvasSize = i2.maxCanvasSize, this.transformCameraUpdate = i2.transformCameraUpdate, this.cancelPendingTileRequestsWhileZooming = true === i2.cancelPendingTileRequestsWhileZooming, this._imageQueueHandle = _.addThrottleControl(() => this.isMoving()), this._requestManager = new p(i2.transformRequest), \"string\" == typeof i2.container) {\n if (this._container = document.getElementById(i2.container), !this._container) throw new Error(`Container '${i2.container}' not found.`);\n } else {\n if (!(i2.container instanceof HTMLElement)) throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");\n this._container = i2.container;\n }\n if (i2.maxBounds && this.setMaxBounds(i2.maxBounds), this._setupContainer(), this._setupPainter(), this.on(\"move\", () => this._update(false)).on(\"moveend\", () => this._update(false)).on(\"zoom\", () => this._update(true)).on(\"terrain\", () => {\n this.painter.terrainFacilitator.dirty = true, this._update(true);\n }).once(\"idle\", () => {\n this._idleTriggered = true;\n }), \"undefined\" != typeof window) {\n addEventListener(\"online\", this._onWindowOnline, false);\n let t5 = false;\n const e2 = Ia((t6) => {\n this._trackResize && !this._removed && (this.resize(t6), this.redraw());\n }, 50);\n this._resizeObserver = new ResizeObserver((i3) => {\n t5 ? e2(i3) : t5 = true;\n }), this._resizeObserver.observe(this._container);\n }\n this.handlers = new ws(this, i2), this._hash = i2.hash && new Ea(\"string\" == typeof i2.hash && i2.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ center: i2.center, zoom: i2.zoom, bearing: i2.bearing, pitch: i2.pitch }), i2.bounds && (this.resize(), this.fitBounds(i2.bounds, e.e({}, i2.fitBoundsOptions, { duration: 0 })))), this.resize(), this._localIdeographFontFamily = i2.localIdeographFontFamily, this._validateStyle = i2.validateStyle, i2.style && this.setStyle(i2.style, { localIdeographFontFamily: i2.localIdeographFontFamily }), i2.attributionControl && this.addControl(new Es(\"boolean\" == typeof i2.attributionControl ? void 0 : i2.attributionControl)), i2.maplibreLogo && this.addControl(new Ps(), i2.logoPosition), this.on(\"style.load\", () => {\n this.transform.unmodified && this.jumpTo(this.style.stylesheet);\n }), this.on(\"data\", (t5) => {\n this._update(\"style\" === t5.dataType), this.fire(new e.k(`${t5.dataType}data`, t5));\n }), this.on(\"dataloading\", (t5) => {\n this.fire(new e.k(`${t5.dataType}dataloading`, t5));\n }), this.on(\"dataabort\", (t5) => {\n this.fire(new e.k(\"sourcedataabort\", t5));\n });\n }\n _getMapId() {\n return this._mapId;\n }\n addControl(t4, i2) {\n if (void 0 === i2 && (i2 = t4.getDefaultPosition ? t4.getDefaultPosition() : \"top-right\"), !t4 || !t4.onAdd) return this.fire(new e.j(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));\n const a2 = t4.onAdd(this);\n this._controls.push(t4);\n const s2 = this._controlPositions[i2];\n return -1 !== i2.indexOf(\"bottom\") ? s2.insertBefore(a2, s2.firstChild) : s2.appendChild(a2), this;\n }\n removeControl(t4) {\n if (!t4 || !t4.onRemove) return this.fire(new e.j(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));\n const i2 = this._controls.indexOf(t4);\n return i2 > -1 && this._controls.splice(i2, 1), t4.onRemove(this), this;\n }\n hasControl(t4) {\n return this._controls.indexOf(t4) > -1;\n }\n calculateCameraOptionsFromTo(t4, e2, i2, a2) {\n return null == a2 && this.terrain && (a2 = this.terrain.getElevationForLngLatZoom(i2, this.transform.tileZoom)), super.calculateCameraOptionsFromTo(t4, e2, i2, a2);\n }\n resize(t4) {\n var i2;\n const a2 = this._containerDimensions(), s2 = a2[0], o2 = a2[1], r2 = this._getClampedPixelRatio(s2, o2);\n if (this._resizeCanvas(s2, o2, r2), this.painter.resize(s2, o2, r2), this.painter.overLimit()) {\n const t5 = this.painter.context.gl;\n this._maxCanvasSize = [t5.drawingBufferWidth, t5.drawingBufferHeight];\n const e2 = this._getClampedPixelRatio(s2, o2);\n this._resizeCanvas(s2, o2, e2), this.painter.resize(s2, o2, e2);\n }\n this.transform.resize(s2, o2), null === (i2 = this._requestedCameraState) || void 0 === i2 || i2.resize(s2, o2);\n const n2 = !this._moving;\n return n2 && (this.stop(), this.fire(new e.k(\"movestart\", t4)).fire(new e.k(\"move\", t4))), this.fire(new e.k(\"resize\", t4)), n2 && this.fire(new e.k(\"moveend\", t4)), this;\n }\n _getClampedPixelRatio(t4, e2) {\n const { 0: i2, 1: a2 } = this._maxCanvasSize, s2 = this.getPixelRatio(), o2 = t4 * s2, r2 = e2 * s2;\n return Math.min(o2 > i2 ? i2 / o2 : 1, r2 > a2 ? a2 / r2 : 1) * s2;\n }\n getPixelRatio() {\n var t4;\n return null !== (t4 = this._overridePixelRatio) && void 0 !== t4 ? t4 : devicePixelRatio;\n }\n setPixelRatio(t4) {\n this._overridePixelRatio = t4, this.resize();\n }\n getBounds() {\n return this.transform.getBounds();\n }\n getMaxBounds() {\n return this.transform.getMaxBounds();\n }\n setMaxBounds(t4) {\n return this.transform.setMaxBounds(H.convert(t4)), this._update();\n }\n setMinZoom(t4) {\n if ((t4 = null == t4 ? -2 : t4) >= -2 && t4 <= this.transform.maxZoom) return this.transform.minZoom = t4, this._update(), this.getZoom() < t4 && this.setZoom(t4), this;\n throw new Error(\"minZoom must be between -2 and the current maxZoom, inclusive\");\n }\n getMinZoom() {\n return this.transform.minZoom;\n }\n setMaxZoom(t4) {\n if ((t4 = null == t4 ? 22 : t4) >= this.transform.minZoom) return this.transform.maxZoom = t4, this._update(), this.getZoom() > t4 && this.setZoom(t4), this;\n throw new Error(\"maxZoom must be greater than the current minZoom\");\n }\n getMaxZoom() {\n return this.transform.maxZoom;\n }\n setMinPitch(t4) {\n if ((t4 = null == t4 ? 0 : t4) < 0) throw new Error(\"minPitch must be greater than or equal to 0\");\n if (t4 >= 0 && t4 <= this.transform.maxPitch) return this.transform.minPitch = t4, this._update(), this.getPitch() < t4 && this.setPitch(t4), this;\n throw new Error(\"minPitch must be between 0 and the current maxPitch, inclusive\");\n }\n getMinPitch() {\n return this.transform.minPitch;\n }\n setMaxPitch(t4) {\n if ((t4 = null == t4 ? 60 : t4) > 85) throw new Error(\"maxPitch must be less than or equal to 85\");\n if (t4 >= this.transform.minPitch) return this.transform.maxPitch = t4, this._update(), this.getPitch() > t4 && this.setPitch(t4), this;\n throw new Error(\"maxPitch must be greater than the current minPitch\");\n }\n getMaxPitch() {\n return this.transform.maxPitch;\n }\n getRenderWorldCopies() {\n return this.transform.renderWorldCopies;\n }\n setRenderWorldCopies(t4) {\n return this.transform.renderWorldCopies = t4, this._update();\n }\n project(t4) {\n return this.transform.locationPoint(e.N.convert(t4), this.style && this.terrain);\n }\n unproject(t4) {\n return this.transform.pointLocation(e.P.convert(t4), this.terrain);\n }\n isMoving() {\n var t4;\n return this._moving || (null === (t4 = this.handlers) || void 0 === t4 ? void 0 : t4.isMoving());\n }\n isZooming() {\n var t4;\n return this._zooming || (null === (t4 = this.handlers) || void 0 === t4 ? void 0 : t4.isZooming());\n }\n isRotating() {\n var t4;\n return this._rotating || (null === (t4 = this.handlers) || void 0 === t4 ? void 0 : t4.isRotating());\n }\n _createDelegatedListener(t4, e2, i2) {\n if (\"mouseenter\" === t4 || \"mouseover\" === t4) {\n let a2 = false;\n const s2 = (s3) => {\n const o2 = e2.filter((t5) => this.getLayer(t5)), r2 = 0 !== o2.length ? this.queryRenderedFeatures(s3.point, { layers: o2 }) : [];\n r2.length ? a2 || (a2 = true, i2.call(this, new ka(t4, this, s3.originalEvent, { features: r2 }))) : a2 = false;\n };\n return { layers: e2, listener: i2, delegates: { mousemove: s2, mouseout: () => {\n a2 = false;\n } } };\n }\n if (\"mouseleave\" === t4 || \"mouseout\" === t4) {\n let a2 = false;\n const s2 = (s3) => {\n const o3 = e2.filter((t5) => this.getLayer(t5));\n (0 !== o3.length ? this.queryRenderedFeatures(s3.point, { layers: o3 }) : []).length ? a2 = true : a2 && (a2 = false, i2.call(this, new ka(t4, this, s3.originalEvent)));\n }, o2 = (e3) => {\n a2 && (a2 = false, i2.call(this, new ka(t4, this, e3.originalEvent)));\n };\n return { layers: e2, listener: i2, delegates: { mousemove: s2, mouseout: o2 } };\n }\n {\n const a2 = (t5) => {\n const a3 = e2.filter((t6) => this.getLayer(t6)), s2 = 0 !== a3.length ? this.queryRenderedFeatures(t5.point, { layers: a3 }) : [];\n s2.length && (t5.features = s2, i2.call(this, t5), delete t5.features);\n };\n return { layers: e2, listener: i2, delegates: { [t4]: a2 } };\n }\n }\n _saveDelegatedListener(t4, e2) {\n this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[t4] = this._delegatedListeners[t4] || [], this._delegatedListeners[t4].push(e2);\n }\n _removeDelegatedListener(t4, e2, i2) {\n if (!this._delegatedListeners || !this._delegatedListeners[t4]) return;\n const a2 = this._delegatedListeners[t4];\n for (let t5 = 0; t5 < a2.length; t5++) {\n const s2 = a2[t5];\n if (s2.listener === i2 && s2.layers.length === e2.length && s2.layers.every((t6) => e2.includes(t6))) {\n for (const t6 in s2.delegates) this.off(t6, s2.delegates[t6]);\n return void a2.splice(t5, 1);\n }\n }\n }\n on(t4, e2, i2) {\n if (void 0 === i2) return super.on(t4, e2);\n const a2 = this._createDelegatedListener(t4, \"string\" == typeof e2 ? [e2] : e2, i2);\n this._saveDelegatedListener(t4, a2);\n for (const t5 in a2.delegates) this.on(t5, a2.delegates[t5]);\n return this;\n }\n once(t4, e2, i2) {\n if (void 0 === i2) return super.once(t4, e2);\n const a2 = \"string\" == typeof e2 ? [e2] : e2, s2 = this._createDelegatedListener(t4, a2, i2);\n for (const e3 in s2.delegates) {\n const o2 = s2.delegates[e3];\n s2.delegates[e3] = (...e4) => {\n this._removeDelegatedListener(t4, a2, i2), o2(...e4);\n };\n }\n this._saveDelegatedListener(t4, s2);\n for (const t5 in s2.delegates) this.once(t5, s2.delegates[t5]);\n return this;\n }\n off(t4, e2, i2) {\n return void 0 === i2 ? super.off(t4, e2) : (this._removeDelegatedListener(t4, \"string\" == typeof e2 ? [e2] : e2, i2), this);\n }\n queryRenderedFeatures(t4, i2) {\n if (!this.style) return [];\n let a2;\n const s2 = t4 instanceof e.P || Array.isArray(t4), o2 = s2 ? t4 : [[0, 0], [this.transform.width, this.transform.height]];\n if (i2 = i2 || (s2 ? {} : t4) || {}, o2 instanceof e.P || \"number\" == typeof o2[0]) a2 = [e.P.convert(o2)];\n else {\n const t5 = e.P.convert(o2[0]), i3 = e.P.convert(o2[1]);\n a2 = [t5, new e.P(i3.x, t5.y), i3, new e.P(t5.x, i3.y), t5];\n }\n return this.style.queryRenderedFeatures(a2, i2, this.transform);\n }\n querySourceFeatures(t4, e2) {\n return this.style.querySourceFeatures(t4, e2);\n }\n setStyle(t4, i2) {\n return false !== (i2 = e.e({}, { localIdeographFontFamily: this._localIdeographFontFamily, validate: this._validateStyle }, i2)).diff && i2.localIdeographFontFamily === this._localIdeographFontFamily && this.style && t4 ? (this._diffStyle(t4, i2), this) : (this._localIdeographFontFamily = i2.localIdeographFontFamily, this._updateStyle(t4, i2));\n }\n setTransformRequest(t4) {\n return this._requestManager.setTransformRequest(t4), this;\n }\n _getUIString(t4) {\n const e2 = this._locale[t4];\n if (null == e2) throw new Error(`Missing UI string '${t4}'`);\n return e2;\n }\n _updateStyle(t4, e2) {\n if (e2.transformStyle && this.style && !this.style._loaded) return void this.style.once(\"style.load\", () => this._updateStyle(t4, e2));\n const i2 = this.style && e2.transformStyle ? this.style.serialize() : void 0;\n return this.style && (this.style.setEventedParent(null), this.style._remove(!t4)), t4 ? (this.style = new de(this, e2 || {}), this.style.setEventedParent(this, { style: this.style }), \"string\" == typeof t4 ? this.style.loadURL(t4, e2, i2) : this.style.loadJSON(t4, e2, i2), this) : (delete this.style, this);\n }\n _lazyInitEmptyStyle() {\n this.style || (this.style = new de(this, {}), this.style.setEventedParent(this, { style: this.style }), this.style.loadEmpty());\n }\n _diffStyle(t4, i2) {\n if (\"string\" == typeof t4) {\n const a2 = this._requestManager.transformRequest(t4, \"Style\");\n e.h(a2, new AbortController()).then((t5) => {\n this._updateDiff(t5.data, i2);\n }).catch((t5) => {\n t5 && this.fire(new e.j(t5));\n });\n } else \"object\" == typeof t4 && this._updateDiff(t4, i2);\n }\n _updateDiff(t4, i2) {\n try {\n this.style.setState(t4, i2) && this._update(true);\n } catch (a2) {\n e.w(`Unable to perform style diff: ${a2.message || a2.error || a2}. Rebuilding the style from scratch.`), this._updateStyle(t4, i2);\n }\n }\n getStyle() {\n if (this.style) return this.style.serialize();\n }\n isStyleLoaded() {\n return this.style ? this.style.loaded() : e.w(\"There is no style added to the map.\");\n }\n addSource(t4, e2) {\n return this._lazyInitEmptyStyle(), this.style.addSource(t4, e2), this._update(true);\n }\n isSourceLoaded(t4) {\n const i2 = this.style && this.style.sourceCaches[t4];\n if (void 0 !== i2) return i2.loaded();\n this.fire(new e.j(new Error(`There is no source with ID '${t4}'`)));\n }\n setTerrain(t4) {\n if (this.style._checkLoaded(), this._terrainDataCallback && this.style.off(\"data\", this._terrainDataCallback), t4) {\n const i2 = this.style.sourceCaches[t4.source];\n if (!i2) throw new Error(`cannot load terrain, because there exists no source with ID: ${t4.source}`);\n null === this.terrain && i2.reload();\n for (const i3 in this.style._layers) {\n const a2 = this.style._layers[i3];\n \"hillshade\" === a2.type && a2.source === t4.source && e.w(\"You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.\");\n }\n this.terrain = new Ds(this.painter, i2, t4), this.painter.renderToTexture = new Rs(this.painter, this.terrain), this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this._terrainDataCallback = (e2) => {\n \"style\" === e2.dataType ? this.terrain.sourceCache.freeRtt() : \"source\" === e2.dataType && e2.tile && (e2.sourceId !== t4.source || this._elevationFreeze || (this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this.terrain.sourceCache.freeRtt(e2.tile.tileID));\n }, this.style.on(\"data\", this._terrainDataCallback);\n } else this.terrain && this.terrain.sourceCache.destruct(), this.terrain = null, this.painter.renderToTexture && this.painter.renderToTexture.destruct(), this.painter.renderToTexture = null, this.transform.minElevationForCurrentTile = 0, this.transform.elevation = 0;\n return this.fire(new e.k(\"terrain\", { terrain: t4 })), this;\n }\n getTerrain() {\n var t4, e2;\n return null !== (e2 = null === (t4 = this.terrain) || void 0 === t4 ? void 0 : t4.options) && void 0 !== e2 ? e2 : null;\n }\n areTilesLoaded() {\n const t4 = this.style && this.style.sourceCaches;\n for (const e2 in t4) {\n const i2 = t4[e2]._tiles;\n for (const t5 in i2) {\n const e3 = i2[t5];\n if (\"loaded\" !== e3.state && \"errored\" !== e3.state) return false;\n }\n }\n return true;\n }\n removeSource(t4) {\n return this.style.removeSource(t4), this._update(true);\n }\n getSource(t4) {\n return this.style.getSource(t4);\n }\n addImage(t4, i2, a2 = {}) {\n const { pixelRatio: s2 = 1, sdf: r2 = false, stretchX: n2, stretchY: l2, content: h2, textFitWidth: c2, textFitHeight: u2 } = a2;\n if (this._lazyInitEmptyStyle(), !(i2 instanceof HTMLImageElement || e.b(i2))) {\n if (void 0 === i2.width || void 0 === i2.height) return this.fire(new e.j(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));\n {\n const { width: a3, height: o2, data: d2 } = i2, _2 = i2;\n return this.style.addImage(t4, { data: new e.R({ width: a3, height: o2 }, new Uint8Array(d2)), pixelRatio: s2, stretchX: n2, stretchY: l2, content: h2, textFitWidth: c2, textFitHeight: u2, sdf: r2, version: 0, userImage: _2 }), _2.onAdd && _2.onAdd(this, t4), this;\n }\n }\n {\n const { width: a3, height: d2, data: _2 } = o.getImageData(i2);\n this.style.addImage(t4, { data: new e.R({ width: a3, height: d2 }, _2), pixelRatio: s2, stretchX: n2, stretchY: l2, content: h2, textFitWidth: c2, textFitHeight: u2, sdf: r2, version: 0 });\n }\n }\n updateImage(t4, i2) {\n const a2 = this.style.getImage(t4);\n if (!a2) return this.fire(new e.j(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));\n const s2 = i2 instanceof HTMLImageElement || e.b(i2) ? o.getImageData(i2) : i2, { width: r2, height: n2, data: l2 } = s2;\n if (void 0 === r2 || void 0 === n2) return this.fire(new e.j(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));\n if (r2 !== a2.data.width || n2 !== a2.data.height) return this.fire(new e.j(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));\n const h2 = !(i2 instanceof HTMLImageElement || e.b(i2));\n return a2.data.replace(l2, h2), this.style.updateImage(t4, a2), this;\n }\n getImage(t4) {\n return this.style.getImage(t4);\n }\n hasImage(t4) {\n return t4 ? !!this.style.getImage(t4) : (this.fire(new e.j(new Error(\"Missing required image id\"))), false);\n }\n removeImage(t4) {\n this.style.removeImage(t4);\n }\n loadImage(t4) {\n return _.getImage(this._requestManager.transformRequest(t4, \"Image\"), new AbortController());\n }\n listImages() {\n return this.style.listImages();\n }\n addLayer(t4, e2) {\n return this._lazyInitEmptyStyle(), this.style.addLayer(t4, e2), this._update(true);\n }\n moveLayer(t4, e2) {\n return this.style.moveLayer(t4, e2), this._update(true);\n }\n removeLayer(t4) {\n return this.style.removeLayer(t4), this._update(true);\n }\n getLayer(t4) {\n return this.style.getLayer(t4);\n }\n getLayersOrder() {\n return this.style.getLayersOrder();\n }\n setLayerZoomRange(t4, e2, i2) {\n return this.style.setLayerZoomRange(t4, e2, i2), this._update(true);\n }\n setFilter(t4, e2, i2 = {}) {\n return this.style.setFilter(t4, e2, i2), this._update(true);\n }\n getFilter(t4) {\n return this.style.getFilter(t4);\n }\n setPaintProperty(t4, e2, i2, a2 = {}) {\n return this.style.setPaintProperty(t4, e2, i2, a2), this._update(true);\n }\n getPaintProperty(t4, e2) {\n return this.style.getPaintProperty(t4, e2);\n }\n setLayoutProperty(t4, e2, i2, a2 = {}) {\n return this.style.setLayoutProperty(t4, e2, i2, a2), this._update(true);\n }\n getLayoutProperty(t4, e2) {\n return this.style.getLayoutProperty(t4, e2);\n }\n setGlyphs(t4, e2 = {}) {\n return this._lazyInitEmptyStyle(), this.style.setGlyphs(t4, e2), this._update(true);\n }\n getGlyphs() {\n return this.style.getGlyphsUrl();\n }\n addSprite(t4, e2, i2 = {}) {\n return this._lazyInitEmptyStyle(), this.style.addSprite(t4, e2, i2, (t5) => {\n t5 || this._update(true);\n }), this;\n }\n removeSprite(t4) {\n return this._lazyInitEmptyStyle(), this.style.removeSprite(t4), this._update(true);\n }\n getSprite() {\n return this.style.getSprite();\n }\n setSprite(t4, e2 = {}) {\n return this._lazyInitEmptyStyle(), this.style.setSprite(t4, e2, (t5) => {\n t5 || this._update(true);\n }), this;\n }\n setLight(t4, e2 = {}) {\n return this._lazyInitEmptyStyle(), this.style.setLight(t4, e2), this._update(true);\n }\n getLight() {\n return this.style.getLight();\n }\n setSky(t4) {\n return this._lazyInitEmptyStyle(), this.style.setSky(t4), this._update(true);\n }\n getSky() {\n return this.style.getSky();\n }\n setFeatureState(t4, e2) {\n return this.style.setFeatureState(t4, e2), this._update();\n }\n removeFeatureState(t4, e2) {\n return this.style.removeFeatureState(t4, e2), this._update();\n }\n getFeatureState(t4) {\n return this.style.getFeatureState(t4);\n }\n getContainer() {\n return this._container;\n }\n getCanvasContainer() {\n return this._canvasContainer;\n }\n getCanvas() {\n return this._canvas;\n }\n _containerDimensions() {\n let t4 = 0, e2 = 0;\n return this._container && (t4 = this._container.clientWidth || 400, e2 = this._container.clientHeight || 300), [t4, e2];\n }\n _setupContainer() {\n const t4 = this._container;\n t4.classList.add(\"maplibregl-map\");\n const e2 = this._canvasContainer = r.create(\"div\", \"maplibregl-canvas-container\", t4);\n this._interactive && e2.classList.add(\"maplibregl-interactive\"), this._canvas = r.create(\"canvas\", \"maplibregl-canvas\", e2), this._canvas.addEventListener(\"webglcontextlost\", this._contextLost, false), this._canvas.addEventListener(\"webglcontextrestored\", this._contextRestored, false), this._canvas.setAttribute(\"tabindex\", this._interactive ? \"0\" : \"-1\"), this._canvas.setAttribute(\"aria-label\", this._getUIString(\"Map.Title\")), this._canvas.setAttribute(\"role\", \"region\");\n const i2 = this._containerDimensions(), a2 = this._getClampedPixelRatio(i2[0], i2[1]);\n this._resizeCanvas(i2[0], i2[1], a2);\n const s2 = this._controlContainer = r.create(\"div\", \"maplibregl-control-container\", t4), o2 = this._controlPositions = {};\n [\"top-left\", \"top-right\", \"bottom-left\", \"bottom-right\"].forEach((t5) => {\n o2[t5] = r.create(\"div\", `maplibregl-ctrl-${t5} `, s2);\n }), this._container.addEventListener(\"scroll\", this._onMapScroll, false);\n }\n _resizeCanvas(t4, e2, i2) {\n this._canvas.width = Math.floor(i2 * t4), this._canvas.height = Math.floor(i2 * e2), this._canvas.style.width = `${t4}px`, this._canvas.style.height = `${e2}px`;\n }\n _setupPainter() {\n const t4 = { alpha: true, stencil: true, depth: true, failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat, preserveDrawingBuffer: this._preserveDrawingBuffer, antialias: this._antialias || false };\n let e2 = null;\n this._canvas.addEventListener(\"webglcontextcreationerror\", (i3) => {\n e2 = { requestedAttributes: t4 }, i3 && (e2.statusMessage = i3.statusMessage, e2.type = i3.type);\n }, { once: true });\n const i2 = this._canvas.getContext(\"webgl2\", t4) || this._canvas.getContext(\"webgl\", t4);\n if (!i2) {\n const t5 = \"Failed to initialize WebGL\";\n throw e2 ? (e2.message = t5, new Error(JSON.stringify(e2))) : new Error(t5);\n }\n this.painter = new va(i2, this.transform), n.testSupport(i2);\n }\n loaded() {\n return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded();\n }\n _update(t4) {\n return this.style && this.style._loaded ? (this._styleDirty = this._styleDirty || t4, this._sourcesDirty = true, this.triggerRepaint(), this) : this;\n }\n _requestRenderFrame(t4) {\n return this._update(), this._renderTaskQueue.add(t4);\n }\n _cancelRenderFrame(t4) {\n this._renderTaskQueue.remove(t4);\n }\n _render(t4) {\n const i2 = this._idleTriggered ? this._fadeDuration : 0;\n if (this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(t4), this._removed) return;\n let a2 = false;\n if (this.style && this._styleDirty) {\n this._styleDirty = false;\n const t5 = this.transform.zoom, s3 = o.now();\n this.style.zoomHistory.update(t5, s3);\n const r2 = new e.z(t5, { now: s3, fadeDuration: i2, zoomHistory: this.style.zoomHistory, transition: this.style.getTransition() }), n2 = r2.crossFadingFactor();\n 1 === n2 && n2 === this._crossFadingFactor || (a2 = true, this._crossFadingFactor = n2), this.style.update(r2);\n }\n this.style && this._sourcesDirty && (this._sourcesDirty = false, this.style._updateSources(this.transform)), this.terrain ? (this.terrain.sourceCache.update(this.transform, this.terrain), this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this._elevationFreeze || (this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom))) : (this.transform.minElevationForCurrentTile = 0, this.transform.elevation = 0), this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, i2, this._crossSourceCollisions), this.painter.render(this.style, { showTileBoundaries: this.showTileBoundaries, showOverdrawInspector: this._showOverdrawInspector, rotating: this.isRotating(), zooming: this.isZooming(), moving: this.isMoving(), fadeDuration: i2, showPadding: this.showPadding }), this.fire(new e.k(\"render\")), this.loaded() && !this._loaded && (this._loaded = true, e.bf.mark(e.bg.load), this.fire(new e.k(\"load\"))), this.style && (this.style.hasTransitions() || a2) && (this._styleDirty = true), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles();\n const s2 = this._sourcesDirty || this._styleDirty || this._placementDirty;\n return s2 || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new e.k(\"idle\")), !this._loaded || this._fullyLoaded || s2 || (this._fullyLoaded = true, e.bf.mark(e.bg.fullLoad)), this;\n }\n redraw() {\n return this.style && (this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._render(0)), this;\n }\n remove() {\n var t4;\n this._hash && this._hash.remove();\n for (const t5 of this._controls) t5.onRemove(this);\n this._controls = [], this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._renderTaskQueue.clear(), this.painter.destroy(), this.handlers.destroy(), delete this.handlers, this.setStyle(null), \"undefined\" != typeof window && removeEventListener(\"online\", this._onWindowOnline, false), _.removeThrottleControl(this._imageQueueHandle), null === (t4 = this._resizeObserver) || void 0 === t4 || t4.disconnect();\n const i2 = this.painter.context.gl.getExtension(\"WEBGL_lose_context\");\n (null == i2 ? void 0 : i2.loseContext) && i2.loseContext(), this._canvas.removeEventListener(\"webglcontextrestored\", this._contextRestored, false), this._canvas.removeEventListener(\"webglcontextlost\", this._contextLost, false), r.remove(this._canvasContainer), r.remove(this._controlContainer), this._container.classList.remove(\"maplibregl-map\"), e.bf.clearMetrics(), this._removed = true, this.fire(new e.k(\"remove\"));\n }\n triggerRepaint() {\n this.style && !this._frameRequest && (this._frameRequest = new AbortController(), o.frameAsync(this._frameRequest).then((t4) => {\n e.bf.frame(t4), this._frameRequest = null, this._render(t4);\n }).catch(() => {\n }));\n }\n get showTileBoundaries() {\n return !!this._showTileBoundaries;\n }\n set showTileBoundaries(t4) {\n this._showTileBoundaries !== t4 && (this._showTileBoundaries = t4, this._update());\n }\n get showPadding() {\n return !!this._showPadding;\n }\n set showPadding(t4) {\n this._showPadding !== t4 && (this._showPadding = t4, this._update());\n }\n get showCollisionBoxes() {\n return !!this._showCollisionBoxes;\n }\n set showCollisionBoxes(t4) {\n this._showCollisionBoxes !== t4 && (this._showCollisionBoxes = t4, t4 ? this.style._generateCollisionBoxes() : this._update());\n }\n get showOverdrawInspector() {\n return !!this._showOverdrawInspector;\n }\n set showOverdrawInspector(t4) {\n this._showOverdrawInspector !== t4 && (this._showOverdrawInspector = t4, this._update());\n }\n get repaint() {\n return !!this._repaint;\n }\n set repaint(t4) {\n this._repaint !== t4 && (this._repaint = t4, this.triggerRepaint());\n }\n get vertices() {\n return !!this._vertices;\n }\n set vertices(t4) {\n this._vertices = t4, this._update();\n }\n get version() {\n return Ls;\n }\n getCameraTargetElevation() {\n return this.transform.elevation;\n }\n }, t.MapMouseEvent = ka, t.MapTouchEvent = La, t.MapWheelEvent = Fa, t.Marker = Vs, t.NavigationControl = class {\n constructor(t4) {\n this._updateZoomButtons = () => {\n const t5 = this._map.getZoom(), e2 = t5 === this._map.getMaxZoom(), i2 = t5 === this._map.getMinZoom();\n this._zoomInButton.disabled = e2, this._zoomOutButton.disabled = i2, this._zoomInButton.setAttribute(\"aria-disabled\", e2.toString()), this._zoomOutButton.setAttribute(\"aria-disabled\", i2.toString());\n }, this._rotateCompassArrow = () => {\n const t5 = this.options.visualizePitch ? `scale(${1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle * (180 / Math.PI)}deg)` : `rotate(${this._map.transform.angle * (180 / Math.PI)}deg)`;\n this._compassIcon.style.transform = t5;\n }, this._setButtonTitle = (t5, e2) => {\n const i2 = this._map._getUIString(`NavigationControl.${e2}`);\n t5.title = i2, t5.setAttribute(\"aria-label\", i2);\n }, this.options = e.e({}, Os, t4), this._container = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-group\"), this._container.addEventListener(\"contextmenu\", (t5) => t5.preventDefault()), this.options.showZoom && (this._zoomInButton = this._createButton(\"maplibregl-ctrl-zoom-in\", (t5) => this._map.zoomIn({}, { originalEvent: t5 })), r.create(\"span\", \"maplibregl-ctrl-icon\", this._zoomInButton).setAttribute(\"aria-hidden\", \"true\"), this._zoomOutButton = this._createButton(\"maplibregl-ctrl-zoom-out\", (t5) => this._map.zoomOut({}, { originalEvent: t5 })), r.create(\"span\", \"maplibregl-ctrl-icon\", this._zoomOutButton).setAttribute(\"aria-hidden\", \"true\")), this.options.showCompass && (this._compass = this._createButton(\"maplibregl-ctrl-compass\", (t5) => {\n this.options.visualizePitch ? this._map.resetNorthPitch({}, { originalEvent: t5 }) : this._map.resetNorth({}, { originalEvent: t5 });\n }), this._compassIcon = r.create(\"span\", \"maplibregl-ctrl-icon\", this._compass), this._compassIcon.setAttribute(\"aria-hidden\", \"true\"));\n }\n onAdd(t4) {\n return this._map = t4, this.options.showZoom && (this._setButtonTitle(this._zoomInButton, \"ZoomIn\"), this._setButtonTitle(this._zoomOutButton, \"ZoomOut\"), this._map.on(\"zoom\", this._updateZoomButtons), this._updateZoomButtons()), this.options.showCompass && (this._setButtonTitle(this._compass, \"ResetBearing\"), this.options.visualizePitch && this._map.on(\"pitch\", this._rotateCompassArrow), this._map.on(\"rotate\", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new Ns(this._map, this._compass, this.options.visualizePitch)), this._container;\n }\n onRemove() {\n r.remove(this._container), this.options.showZoom && this._map.off(\"zoom\", this._updateZoomButtons), this.options.showCompass && (this.options.visualizePitch && this._map.off(\"pitch\", this._rotateCompassArrow), this._map.off(\"rotate\", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map;\n }\n _createButton(t4, e2) {\n const i2 = r.create(\"button\", t4, this._container);\n return i2.type = \"button\", i2.addEventListener(\"click\", e2), i2;\n }\n }, t.Popup = class extends e.E {\n constructor(t4) {\n super(), this.remove = () => (this._content && r.remove(this._content), this._container && (r.remove(this._container), delete this._container), this._map && (this._map.off(\"move\", this._update), this._map.off(\"move\", this._onClose), this._map.off(\"click\", this._onClose), this._map.off(\"remove\", this.remove), this._map.off(\"mousemove\", this._onMouseMove), this._map.off(\"mouseup\", this._onMouseUp), this._map.off(\"drag\", this._onDrag), this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\"), delete this._map, this.fire(new e.k(\"close\"))), this), this._onMouseUp = (t5) => {\n this._update(t5.point);\n }, this._onMouseMove = (t5) => {\n this._update(t5.point);\n }, this._onDrag = (t5) => {\n this._update(t5.point);\n }, this._update = (t5) => {\n var e2;\n if (!this._map || !this._lngLat && !this._trackPointer || !this._content) return;\n if (!this._container) {\n if (this._container = r.create(\"div\", \"maplibregl-popup\", this._map.getContainer()), this._tip = r.create(\"div\", \"maplibregl-popup-tip\", this._container), this._container.appendChild(this._content), this.options.className) for (const t6 of this.options.className.split(\" \")) this._container.classList.add(t6);\n this._closeButton && this._closeButton.setAttribute(\"aria-label\", this._map._getUIString(\"Popup.Close\")), this._trackPointer && this._container.classList.add(\"maplibregl-popup-track-pointer\");\n }\n if (this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth && (this._container.style.maxWidth = this.options.maxWidth), this._lngLat = this._map.transform.renderWorldCopies && !this._trackPointer ? js(this._lngLat, this._flatPos, this._map.transform) : null === (e2 = this._lngLat) || void 0 === e2 ? void 0 : e2.wrap(), this._trackPointer && !t5) return;\n const i2 = this._flatPos = this._pos = this._trackPointer && t5 ? t5 : this._map.project(this._lngLat);\n this._map.terrain && (this._flatPos = this._trackPointer && t5 ? t5 : this._map.transform.locationPoint(this._lngLat));\n let a2 = this.options.anchor;\n const s2 = Qs(this.options.offset);\n if (!a2) {\n const t6 = this._container.offsetWidth, e3 = this._container.offsetHeight;\n let o3;\n o3 = i2.y + s2.bottom.y < e3 ? [\"top\"] : i2.y > this._map.transform.height - e3 ? [\"bottom\"] : [], i2.x < t6 / 2 ? o3.push(\"left\") : i2.x > this._map.transform.width - t6 / 2 && o3.push(\"right\"), a2 = 0 === o3.length ? \"bottom\" : o3.join(\"-\");\n }\n let o2 = i2.add(s2[a2]);\n this.options.subpixelPositioning || (o2 = o2.round()), r.setTransform(this._container, `${Zs[a2]} translate(${o2.x}px,${o2.y}px)`), qs(this._container, a2, \"popup\");\n }, this._onClose = () => {\n this.remove();\n }, this.options = e.e(Object.create(Js), t4);\n }\n addTo(t4) {\n return this._map && this.remove(), this._map = t4, this.options.closeOnClick && this._map.on(\"click\", this._onClose), this.options.closeOnMove && this._map.on(\"move\", this._onClose), this._map.on(\"remove\", this.remove), this._update(), this._focusFirstElement(), this._trackPointer ? (this._map.on(\"mousemove\", this._onMouseMove), this._map.on(\"mouseup\", this._onMouseUp), this._container && this._container.classList.add(\"maplibregl-popup-track-pointer\"), this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")) : this._map.on(\"move\", this._update), this.fire(new e.k(\"open\")), this;\n }\n isOpen() {\n return !!this._map;\n }\n getLngLat() {\n return this._lngLat;\n }\n setLngLat(t4) {\n return this._lngLat = e.N.convert(t4), this._pos = null, this._flatPos = null, this._trackPointer = false, this._update(), this._map && (this._map.on(\"move\", this._update), this._map.off(\"mousemove\", this._onMouseMove), this._container && this._container.classList.remove(\"maplibregl-popup-track-pointer\"), this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\")), this;\n }\n trackPointer() {\n return this._trackPointer = true, this._pos = null, this._flatPos = null, this._update(), this._map && (this._map.off(\"move\", this._update), this._map.on(\"mousemove\", this._onMouseMove), this._map.on(\"drag\", this._onDrag), this._container && this._container.classList.add(\"maplibregl-popup-track-pointer\"), this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")), this;\n }\n getElement() {\n return this._container;\n }\n setText(t4) {\n return this.setDOMContent(document.createTextNode(t4));\n }\n setHTML(t4) {\n const e2 = document.createDocumentFragment(), i2 = document.createElement(\"body\");\n let a2;\n for (i2.innerHTML = t4; a2 = i2.firstChild, a2; ) e2.appendChild(a2);\n return this.setDOMContent(e2);\n }\n getMaxWidth() {\n var t4;\n return null === (t4 = this._container) || void 0 === t4 ? void 0 : t4.style.maxWidth;\n }\n setMaxWidth(t4) {\n return this.options.maxWidth = t4, this._update(), this;\n }\n setDOMContent(t4) {\n if (this._content) for (; this._content.hasChildNodes(); ) this._content.firstChild && this._content.removeChild(this._content.firstChild);\n else this._content = r.create(\"div\", \"maplibregl-popup-content\", this._container);\n return this._content.appendChild(t4), this._createCloseButton(), this._update(), this._focusFirstElement(), this;\n }\n addClassName(t4) {\n return this._container && this._container.classList.add(t4), this;\n }\n removeClassName(t4) {\n return this._container && this._container.classList.remove(t4), this;\n }\n setOffset(t4) {\n return this.options.offset = t4, this._update(), this;\n }\n toggleClassName(t4) {\n if (this._container) return this._container.classList.toggle(t4);\n }\n setSubpixelPositioning(t4) {\n this.options.subpixelPositioning = t4;\n }\n _createCloseButton() {\n this.options.closeButton && (this._closeButton = r.create(\"button\", \"maplibregl-popup-close-button\", this._content), this._closeButton.type = \"button\", this._closeButton.innerHTML = \"×\", this._closeButton.addEventListener(\"click\", this._onClose));\n }\n _focusFirstElement() {\n if (!this.options.focusAfterOpen || !this._container) return;\n const t4 = this._container.querySelector(Ys);\n t4 && t4.focus();\n }\n }, t.RasterDEMTileSource = K2, t.RasterTileSource = X, t.ScaleControl = class {\n constructor(t4) {\n this._onMove = () => {\n Xs(this._map, this._container, this.options);\n }, this.setUnit = (t5) => {\n this.options.unit = t5, Xs(this._map, this._container, this.options);\n }, this.options = Object.assign(Object.assign({}, $s), t4);\n }\n getDefaultPosition() {\n return \"bottom-left\";\n }\n onAdd(t4) {\n return this._map = t4, this._container = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-scale\", t4.getContainer()), this._map.on(\"move\", this._onMove), this._onMove(), this._container;\n }\n onRemove() {\n r.remove(this._container), this._map.off(\"move\", this._onMove), this._map = void 0;\n }\n }, t.ScrollZoomHandler = us, t.Style = de, t.TerrainControl = class {\n constructor(t4) {\n this._toggleTerrain = () => {\n this._map.getTerrain() ? this._map.setTerrain(null) : this._map.setTerrain(this.options), this._updateTerrainIcon();\n }, this._updateTerrainIcon = () => {\n this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain\"), this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain-enabled\"), this._map.terrain ? (this._terrainButton.classList.add(\"maplibregl-ctrl-terrain-enabled\"), this._terrainButton.title = this._map._getUIString(\"TerrainControl.Disable\")) : (this._terrainButton.classList.add(\"maplibregl-ctrl-terrain\"), this._terrainButton.title = this._map._getUIString(\"TerrainControl.Enable\"));\n }, this.options = t4;\n }\n onAdd(t4) {\n return this._map = t4, this._container = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-group\"), this._terrainButton = r.create(\"button\", \"maplibregl-ctrl-terrain\", this._container), r.create(\"span\", \"maplibregl-ctrl-icon\", this._terrainButton).setAttribute(\"aria-hidden\", \"true\"), this._terrainButton.type = \"button\", this._terrainButton.addEventListener(\"click\", this._toggleTerrain), this._updateTerrainIcon(), this._map.on(\"terrain\", this._updateTerrainIcon), this._container;\n }\n onRemove() {\n r.remove(this._container), this._map.off(\"terrain\", this._updateTerrainIcon), this._map = void 0;\n }\n }, t.TwoFingersTouchPitchHandler = rs, t.TwoFingersTouchRotateHandler = ss, t.TwoFingersTouchZoomHandler = is, t.TwoFingersTouchZoomRotateHandler = gs, t.VectorTileSource = $, t.VideoSource = tt, t.addSourceType = (t4, i2) => e._(void 0, void 0, void 0, function* () {\n if (at(t4)) throw new Error(`A source type called \"${t4}\" already exists.`);\n ((t5, e2) => {\n it[t5] = e2;\n })(t4, i2);\n }), t.clearPrewarmedResources = function() {\n const t4 = B2;\n t4 && (t4.isPreloaded() && 1 === t4.numActive() ? (t4.release(k), B2 = null) : console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\"));\n }, t.getMaxParallelImageRequests = function() {\n return e.a.MAX_PARALLEL_IMAGE_REQUESTS;\n }, t.getRTLTextPluginStatus = function() {\n return nt().getRTLTextPluginStatus();\n }, t.getVersion = function() {\n return to;\n }, t.getWorkerCount = function() {\n return L.workerCount;\n }, t.getWorkerUrl = function() {\n return e.a.WORKER_URL;\n }, t.importScriptInWorkers = function(t4) {\n return j().broadcast(\"IS\", t4);\n }, t.prewarm = function() {\n N().acquire(k);\n }, t.setMaxParallelImageRequests = function(t4) {\n e.a.MAX_PARALLEL_IMAGE_REQUESTS = t4;\n }, t.setRTLTextPlugin = function(t4, e2) {\n return nt().setRTLTextPlugin(t4, e2);\n }, t.setWorkerCount = function(t4) {\n L.workerCount = t4;\n }, t.setWorkerUrl = function(t4) {\n e.a.WORKER_URL = t4;\n };\n });\n var maplibregl$1 = maplibregl;\n return maplibregl$1;\n });\n }\n });\n\n // src/plots/map/layers.js\n var require_layers2 = __commonJS({\n \"src/plots/map/layers.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var sanitizeHTML = require_svg_text_utils().sanitizeHTML;\n var convertTextOpts = require_convert_text_opts2();\n var constants = require_constants27();\n function MapLayer(subplot, index) {\n this.subplot = subplot;\n this.uid = subplot.uid + \"-\" + index;\n this.index = index;\n this.idSource = \"source-\" + this.uid;\n this.idLayer = constants.layoutLayerPrefix + this.uid;\n this.sourceType = null;\n this.source = null;\n this.layerType = null;\n this.below = null;\n this.visible = false;\n }\n var proto = MapLayer.prototype;\n proto.update = function update(opts) {\n if (!this.visible) {\n this.updateSource(opts);\n this.updateLayer(opts);\n } else if (this.needsNewImage(opts)) {\n this.updateImage(opts);\n } else if (this.needsNewSource(opts)) {\n this.removeLayer();\n this.updateSource(opts);\n this.updateLayer(opts);\n } else if (this.needsNewLayer(opts)) {\n this.updateLayer(opts);\n } else {\n this.updateStyle(opts);\n }\n this.visible = isVisible(opts);\n };\n proto.needsNewImage = function(opts) {\n var map = this.subplot.map;\n return map.getSource(this.idSource) && this.sourceType === \"image\" && opts.sourcetype === \"image\" && (this.source !== opts.source || JSON.stringify(this.coordinates) !== JSON.stringify(opts.coordinates));\n };\n proto.needsNewSource = function(opts) {\n return this.sourceType !== opts.sourcetype || JSON.stringify(this.source) !== JSON.stringify(opts.source) || this.layerType !== opts.type;\n };\n proto.needsNewLayer = function(opts) {\n return this.layerType !== opts.type || this.below !== this.subplot.belowLookup[\"layout-\" + this.index];\n };\n proto.lookupBelow = function() {\n return this.subplot.belowLookup[\"layout-\" + this.index];\n };\n proto.updateImage = function(opts) {\n var map = this.subplot.map;\n map.getSource(this.idSource).updateImage({\n url: opts.source,\n coordinates: opts.coordinates\n });\n var _below = this.findFollowingMapLayerId(this.lookupBelow());\n if (_below !== null) {\n this.subplot.map.moveLayer(this.idLayer, _below);\n }\n };\n proto.updateSource = function(opts) {\n var map = this.subplot.map;\n if (map.getSource(this.idSource)) map.removeSource(this.idSource);\n this.sourceType = opts.sourcetype;\n this.source = opts.source;\n if (!isVisible(opts)) return;\n var sourceOpts = convertSourceOpts(opts);\n map.addSource(this.idSource, sourceOpts);\n };\n proto.findFollowingMapLayerId = function(below) {\n if (below === \"traces\") {\n var mapLayers = this.subplot.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n var layerId = mapLayers[i].id;\n if (typeof layerId === \"string\" && layerId.indexOf(constants.traceLayerPrefix) === 0) {\n below = layerId;\n break;\n }\n }\n }\n return below;\n };\n proto.updateLayer = function(opts) {\n var subplot = this.subplot;\n var convertedOpts = convertOpts(opts);\n var below = this.lookupBelow();\n var _below = this.findFollowingMapLayerId(below);\n this.removeLayer();\n if (isVisible(opts)) {\n subplot.addLayer({\n id: this.idLayer,\n source: this.idSource,\n \"source-layer\": opts.sourcelayer || \"\",\n type: opts.type,\n minzoom: opts.minzoom,\n maxzoom: opts.maxzoom,\n layout: convertedOpts.layout,\n paint: convertedOpts.paint\n }, _below);\n }\n this.layerType = opts.type;\n this.below = below;\n };\n proto.updateStyle = function(opts) {\n if (isVisible(opts)) {\n var convertedOpts = convertOpts(opts);\n this.subplot.setOptions(this.idLayer, \"setLayoutProperty\", convertedOpts.layout);\n this.subplot.setOptions(this.idLayer, \"setPaintProperty\", convertedOpts.paint);\n }\n };\n proto.removeLayer = function() {\n var map = this.subplot.map;\n if (map.getLayer(this.idLayer)) {\n map.removeLayer(this.idLayer);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n if (map.getLayer(this.idLayer)) map.removeLayer(this.idLayer);\n if (map.getSource(this.idSource)) map.removeSource(this.idSource);\n };\n function isVisible(opts) {\n if (!opts.visible) return false;\n var source = opts.source;\n if (Array.isArray(source) && source.length > 0) {\n for (var i = 0; i < source.length; i++) {\n if (typeof source[i] !== \"string\" || source[i].length === 0) {\n return false;\n }\n }\n return true;\n }\n return Lib.isPlainObject(source) || typeof source === \"string\" && source.length > 0;\n }\n function convertOpts(opts) {\n var layout = {};\n var paint = {};\n switch (opts.type) {\n case \"circle\":\n Lib.extendFlat(paint, {\n \"circle-radius\": opts.circle.radius,\n \"circle-color\": opts.color,\n \"circle-opacity\": opts.opacity\n });\n break;\n case \"line\":\n Lib.extendFlat(paint, {\n \"line-width\": opts.line.width,\n \"line-color\": opts.color,\n \"line-opacity\": opts.opacity,\n \"line-dasharray\": opts.line.dash\n });\n break;\n case \"fill\":\n Lib.extendFlat(paint, {\n \"fill-color\": opts.color,\n \"fill-outline-color\": opts.fill.outlinecolor,\n \"fill-opacity\": opts.opacity\n // no way to pass specify outline width at the moment\n });\n break;\n case \"symbol\":\n var symbol = opts.symbol;\n var textOpts = convertTextOpts(symbol.textposition, symbol.iconsize);\n Lib.extendFlat(layout, {\n \"icon-image\": symbol.icon + \"-15\",\n \"icon-size\": symbol.iconsize / 10,\n \"text-field\": symbol.text,\n \"text-size\": symbol.textfont.size,\n \"text-anchor\": textOpts.anchor,\n \"text-offset\": textOpts.offset,\n \"symbol-placement\": symbol.placement\n // TODO font family\n // 'text-font': symbol.textfont.family.split(', '),\n });\n Lib.extendFlat(paint, {\n \"icon-color\": opts.color,\n \"text-color\": symbol.textfont.color,\n \"text-opacity\": opts.opacity\n });\n break;\n case \"raster\":\n Lib.extendFlat(paint, {\n \"raster-fade-duration\": 0,\n \"raster-opacity\": opts.opacity\n });\n break;\n }\n return {\n layout,\n paint\n };\n }\n function convertSourceOpts(opts) {\n var sourceType = opts.sourcetype;\n var source = opts.source;\n var sourceOpts = { type: sourceType };\n var field;\n if (sourceType === \"geojson\") {\n field = \"data\";\n } else if (sourceType === \"vector\") {\n field = typeof source === \"string\" ? \"url\" : \"tiles\";\n } else if (sourceType === \"raster\") {\n field = \"tiles\";\n sourceOpts.tileSize = 256;\n } else if (sourceType === \"image\") {\n field = \"url\";\n sourceOpts.coordinates = opts.coordinates;\n }\n sourceOpts[field] = source;\n if (opts.sourceattribution) {\n sourceOpts.attribution = sanitizeHTML(opts.sourceattribution);\n }\n return sourceOpts;\n }\n module.exports = function createMapLayer(subplot, index, opts) {\n var mapLayer = new MapLayer(subplot, index);\n mapLayer.update(opts);\n return mapLayer;\n };\n }\n });\n\n // src/plots/map/map.js\n var require_map2 = __commonJS({\n \"src/plots/map/map.js\"(exports, module) {\n \"use strict\";\n var maplibregl = require_maplibre_gl();\n var Lib = require_lib();\n var geoUtils = require_geo_location_utils();\n var Registry = require_registry();\n var Axes = require_axes();\n var dragElement = require_dragelement();\n var Fx = require_fx();\n var dragHelpers = require_helpers5();\n var drawMode = dragHelpers.drawMode;\n var selectMode = dragHelpers.selectMode;\n var prepSelect = require_selections().prepSelect;\n var clearOutline = require_selections().clearOutline;\n var clearSelectionsCache = require_selections().clearSelectionsCache;\n var selectOnClick = require_selections().selectOnClick;\n var constants = require_constants27();\n var createMapLayer = require_layers2();\n function Map2(gd, id) {\n this.id = id;\n this.gd = gd;\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n this.container = fullLayout._glcontainer.node();\n this.isStatic = context.staticPlot;\n this.uid = fullLayout._uid + \"-\" + this.id;\n this.div = null;\n this.xaxis = null;\n this.yaxis = null;\n this.createFramework(fullLayout);\n this.map = null;\n this.styleObj = null;\n this.traceHash = {};\n this.layerList = [];\n this.belowLookup = {};\n this.dragging = false;\n this.wheeling = false;\n }\n var proto = Map2.prototype;\n proto.plot = function(calcData, fullLayout, promises) {\n var self2 = this;\n var promise;\n if (!self2.map) {\n promise = new Promise(function(resolve, reject) {\n self2.createMap(calcData, fullLayout, resolve, reject);\n });\n } else {\n promise = new Promise(function(resolve, reject) {\n self2.updateMap(calcData, fullLayout, resolve, reject);\n });\n }\n promises.push(promise);\n };\n proto.createMap = function(calcData, fullLayout, resolve, reject) {\n var self2 = this;\n var opts = fullLayout[self2.id];\n var styleObj = self2.styleObj = getStyleObj(opts.style);\n var bounds = opts.bounds;\n var maxBounds = bounds ? [[bounds.west, bounds.south], [bounds.east, bounds.north]] : null;\n var map = self2.map = new maplibregl.Map({\n container: self2.div,\n style: styleObj.style,\n center: convertCenter(opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch,\n maxBounds,\n interactive: !self2.isStatic,\n preserveDrawingBuffer: self2.isStatic,\n doubleClickZoom: false,\n boxZoom: false,\n attributionControl: false\n }).addControl(new maplibregl.AttributionControl({\n compact: true\n }));\n var requestedIcons = {};\n map.on(\"styleimagemissing\", function(e) {\n var id = e.id;\n if (!requestedIcons[id] && id.includes(\"-15\")) {\n requestedIcons[id] = true;\n var img = new Image(15, 15);\n img.onload = function() {\n map.addImage(id, img);\n };\n img.crossOrigin = \"Anonymous\";\n img.src = \"https://unpkg.com/maki@2.1.0/icons/\" + id + \".svg\";\n }\n });\n map.setTransformRequest(function(url) {\n url = url.replace(\"https://fonts.openmaptiles.org/Open Sans Extrabold\", \"https://fonts.openmaptiles.org/Open Sans Extra Bold\");\n url = url.replace(\"https://tiles.basemaps.cartocdn.com/fonts/Open Sans Extrabold\", \"https://fonts.openmaptiles.org/Open Sans Extra Bold\");\n url = url.replace(\"https://fonts.openmaptiles.org/Open Sans Regular,Arial Unicode MS Regular\", \"https://fonts.openmaptiles.org/Klokantech Noto Sans Regular\");\n return {\n url\n };\n });\n map._canvas.style.left = \"0px\";\n map._canvas.style.top = \"0px\";\n self2.rejectOnError(reject);\n if (!self2.isStatic) {\n self2.initFx(calcData, fullLayout);\n }\n var promises = [];\n promises.push(new Promise(function(resolve2) {\n map.once(\"load\", resolve2);\n }));\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n Promise.all(promises).then(function() {\n self2.fillBelowLookup(calcData, fullLayout);\n self2.updateData(calcData);\n self2.updateLayout(fullLayout);\n self2.resolveOnRender(resolve);\n }).catch(reject);\n };\n proto.updateMap = function(calcData, fullLayout, resolve, reject) {\n var self2 = this;\n var map = self2.map;\n var opts = fullLayout[this.id];\n self2.rejectOnError(reject);\n var promises = [];\n var styleObj = getStyleObj(opts.style);\n if (JSON.stringify(self2.styleObj) !== JSON.stringify(styleObj)) {\n self2.styleObj = styleObj;\n map.setStyle(styleObj.style);\n self2.traceHash = {};\n promises.push(new Promise(function(resolve2) {\n map.once(\"styledata\", resolve2);\n }));\n }\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n Promise.all(promises).then(function() {\n self2.fillBelowLookup(calcData, fullLayout);\n self2.updateData(calcData);\n self2.updateLayout(fullLayout);\n self2.resolveOnRender(resolve);\n }).catch(reject);\n };\n proto.fillBelowLookup = function(calcData, fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var i, val;\n var belowLookup = this.belowLookup = {};\n var hasTraceAtTop = false;\n for (i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var _module = trace._module;\n if (typeof trace.below === \"string\") {\n val = trace.below;\n } else if (_module.getBelow) {\n val = _module.getBelow(trace, this);\n }\n if (val === \"\") {\n hasTraceAtTop = true;\n }\n belowLookup[\"trace-\" + trace.uid] = val || \"\";\n }\n for (i = 0; i < layers.length; i++) {\n var item = layers[i];\n if (typeof item.below === \"string\") {\n val = item.below;\n } else if (hasTraceAtTop) {\n val = \"traces\";\n } else {\n val = \"\";\n }\n belowLookup[\"layout-\" + i] = val;\n }\n var val2list = {};\n var k, id;\n for (k in belowLookup) {\n val = belowLookup[k];\n if (val2list[val]) {\n val2list[val].push(k);\n } else {\n val2list[val] = [k];\n }\n }\n for (val in val2list) {\n var list = val2list[val];\n if (list.length > 1) {\n for (i = 0; i < list.length; i++) {\n k = list[i];\n if (k.indexOf(\"trace-\") === 0) {\n id = k.split(\"trace-\")[1];\n if (this.traceHash[id]) {\n this.traceHash[id].below = null;\n }\n } else if (k.indexOf(\"layout-\") === 0) {\n id = k.split(\"layout-\")[1];\n if (this.layerList[id]) {\n this.layerList[id].below = null;\n }\n }\n }\n }\n }\n };\n var traceType2orderIndex = {\n choroplethmap: 0,\n densitymap: 1,\n scattermap: 2\n };\n proto.updateData = function(calcData) {\n var traceHash = this.traceHash;\n var traceObj, trace, i, j;\n var calcDataSorted = calcData.slice().sort(function(a, b) {\n return traceType2orderIndex[a[0].trace.type] - traceType2orderIndex[b[0].trace.type];\n });\n for (i = 0; i < calcDataSorted.length; i++) {\n var calcTrace = calcDataSorted[i];\n trace = calcTrace[0].trace;\n traceObj = traceHash[trace.uid];\n var didUpdate = false;\n if (traceObj) {\n if (traceObj.type === trace.type) {\n traceObj.update(calcTrace);\n didUpdate = true;\n } else {\n traceObj.dispose();\n }\n }\n if (!didUpdate && trace._module) {\n traceHash[trace.uid] = trace._module.plot(this, calcTrace);\n }\n }\n var ids = Object.keys(traceHash);\n idLoop:\n for (i = 0; i < ids.length; i++) {\n var id = ids[i];\n for (j = 0; j < calcData.length; j++) {\n trace = calcData[j][0].trace;\n if (id === trace.uid) continue idLoop;\n }\n traceObj = traceHash[id];\n traceObj.dispose();\n delete traceHash[id];\n }\n };\n proto.updateLayout = function(fullLayout) {\n var map = this.map;\n var opts = fullLayout[this.id];\n if (!this.dragging && !this.wheeling) {\n map.setCenter(convertCenter(opts.center));\n map.setZoom(opts.zoom);\n map.setBearing(opts.bearing);\n map.setPitch(opts.pitch);\n }\n this.updateLayers(fullLayout);\n this.updateFramework(fullLayout);\n this.updateFx(fullLayout);\n this.map.resize();\n if (this.gd._context._scrollZoom.map) {\n map.scrollZoom.enable();\n } else {\n map.scrollZoom.disable();\n }\n };\n proto.resolveOnRender = function(resolve) {\n var map = this.map;\n map.on(\"render\", function onRender() {\n if (map.loaded()) {\n map.off(\"render\", onRender);\n setTimeout(resolve, 10);\n }\n });\n };\n proto.rejectOnError = function(reject) {\n var map = this.map;\n function handler() {\n reject(new Error(constants.mapOnErrorMsg));\n }\n map.once(\"error\", handler);\n map.once(\"style.error\", handler);\n map.once(\"source.error\", handler);\n map.once(\"tile.error\", handler);\n map.once(\"layer.error\", handler);\n };\n proto.createFramework = function(fullLayout) {\n var self2 = this;\n var div = self2.div = document.createElement(\"div\");\n div.id = self2.uid;\n div.style.position = \"absolute\";\n self2.container.appendChild(div);\n self2.xaxis = {\n _id: \"x\",\n c2p: function(v) {\n return self2.project(v).x;\n }\n };\n self2.yaxis = {\n _id: \"y\",\n c2p: function(v) {\n return self2.project(v).y;\n }\n };\n self2.updateFramework(fullLayout);\n self2.mockAxis = {\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n Axes.setConvert(self2.mockAxis, fullLayout);\n };\n proto.initFx = function(calcData, fullLayout) {\n var self2 = this;\n var gd = self2.gd;\n var map = self2.map;\n map.on(\"moveend\", function(evt) {\n if (!self2.map) return;\n var fullLayoutNow = gd._fullLayout;\n if (evt.originalEvent || self2.wheeling) {\n var optsNow = fullLayoutNow[self2.id];\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, fullLayoutNow._preGUI, self2.getViewEdits(optsNow));\n var viewNow = self2.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit(\"plotly_relayout\", self2.getViewEditsWithDerived(viewNow));\n }\n if (evt.originalEvent && evt.originalEvent.type === \"mouseup\") {\n self2.dragging = false;\n } else if (self2.wheeling) {\n self2.wheeling = false;\n }\n if (fullLayoutNow && fullLayoutNow._rehover) {\n fullLayoutNow._rehover();\n }\n });\n map.on(\"wheel\", function() {\n self2.wheeling = true;\n });\n map.on(\"mousemove\", function(evt) {\n var bb = self2.div.getBoundingClientRect();\n var xy = [\n evt.originalEvent.offsetX,\n evt.originalEvent.offsetY\n ];\n evt.target.getBoundingClientRect = function() {\n return bb;\n };\n self2.xaxis.p2c = function() {\n return map.unproject(xy).lng;\n };\n self2.yaxis.p2c = function() {\n return map.unproject(xy).lat;\n };\n gd._fullLayout._rehover = function() {\n if (gd._fullLayout._hoversubplot === self2.id && gd._fullLayout[self2.id]) {\n Fx.hover(gd, evt, self2.id);\n }\n };\n Fx.hover(gd, evt, self2.id);\n gd._fullLayout._hoversubplot = self2.id;\n });\n function unhover() {\n Fx.loneUnhover(fullLayout._hoverlayer);\n }\n map.on(\"dragstart\", function() {\n self2.dragging = true;\n unhover();\n });\n map.on(\"zoomstart\", unhover);\n map.on(\"mouseout\", function() {\n gd._fullLayout._hoversubplot = null;\n });\n function emitUpdate() {\n var viewNow = self2.getView();\n gd.emit(\"plotly_relayouting\", self2.getViewEditsWithDerived(viewNow));\n }\n map.on(\"drag\", emitUpdate);\n map.on(\"zoom\", emitUpdate);\n map.on(\"dblclick\", function() {\n var optsNow = gd._fullLayout[self2.id];\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, gd._fullLayout._preGUI, self2.getViewEdits(optsNow));\n var viewInitial = self2.viewInitial;\n map.setCenter(convertCenter(viewInitial.center));\n map.setZoom(viewInitial.zoom);\n map.setBearing(viewInitial.bearing);\n map.setPitch(viewInitial.pitch);\n var viewNow = self2.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit(\"plotly_doubleclick\", null);\n gd.emit(\"plotly_relayout\", self2.getViewEditsWithDerived(viewNow));\n });\n self2.clearOutline = function() {\n clearSelectionsCache(self2.dragOptions);\n clearOutline(self2.dragOptions.gd);\n };\n self2.onClickInPanFn = function(dragOptions) {\n return function(evt) {\n var clickMode = gd._fullLayout.clickmode;\n if (clickMode.indexOf(\"select\") > -1) {\n selectOnClick(evt.originalEvent, gd, [self2.xaxis], [self2.yaxis], self2.id, dragOptions);\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, evt.originalEvent);\n }\n };\n };\n };\n proto.updateFx = function(fullLayout) {\n var self2 = this;\n var map = self2.map;\n var gd = self2.gd;\n if (self2.isStatic) return;\n function invert(pxpy) {\n var obj = self2.map.unproject(pxpy);\n return [obj.lng, obj.lat];\n }\n var dragMode = fullLayout.dragmode;\n var fillRangeItems;\n fillRangeItems = function(eventData, poly) {\n if (poly.isRect) {\n var ranges = eventData.range = {};\n ranges[self2.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n } else {\n var dataPts = eventData.lassoPoints = {};\n dataPts[self2.id] = poly.map(invert);\n }\n };\n var oldDragOptions = self2.dragOptions;\n self2.dragOptions = Lib.extendDeep(oldDragOptions || {}, {\n dragmode: fullLayout.dragmode,\n element: self2.div,\n gd,\n plotinfo: {\n id: self2.id,\n domain: fullLayout[self2.id].domain,\n xaxis: self2.xaxis,\n yaxis: self2.yaxis,\n fillRangeItems\n },\n xaxes: [self2.xaxis],\n yaxes: [self2.yaxis],\n subplot: self2.id\n });\n map.off(\"click\", self2.onClickInPanHandler);\n if (selectMode(dragMode) || drawMode(dragMode)) {\n map.dragPan.disable();\n map.on(\"zoomstart\", self2.clearOutline);\n self2.dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, self2.dragOptions, dragMode);\n };\n dragElement.init(self2.dragOptions);\n } else {\n map.dragPan.enable();\n map.off(\"zoomstart\", self2.clearOutline);\n self2.div.onmousedown = null;\n self2.div.ontouchstart = null;\n self2.div.removeEventListener(\"touchstart\", self2.div._ontouchstart);\n self2.onClickInPanHandler = self2.onClickInPanFn(self2.dragOptions);\n map.on(\"click\", self2.onClickInPanHandler);\n }\n };\n proto.updateFramework = function(fullLayout) {\n var domain = fullLayout[this.id].domain;\n var size = fullLayout._size;\n var style = this.div.style;\n style.width = size.w * (domain.x[1] - domain.x[0]) + \"px\";\n style.height = size.h * (domain.y[1] - domain.y[0]) + \"px\";\n style.left = size.l + domain.x[0] * size.w + \"px\";\n style.top = size.t + (1 - domain.y[1]) * size.h + \"px\";\n this.xaxis._offset = size.l + domain.x[0] * size.w;\n this.xaxis._length = size.w * (domain.x[1] - domain.x[0]);\n this.yaxis._offset = size.t + (1 - domain.y[1]) * size.h;\n this.yaxis._length = size.h * (domain.y[1] - domain.y[0]);\n };\n proto.updateLayers = function(fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var layerList = this.layerList;\n var i;\n if (layers.length !== layerList.length) {\n for (i = 0; i < layerList.length; i++) {\n layerList[i].dispose();\n }\n layerList = this.layerList = [];\n for (i = 0; i < layers.length; i++) {\n layerList.push(createMapLayer(this, i, layers[i]));\n }\n } else {\n for (i = 0; i < layers.length; i++) {\n layerList[i].update(layers[i]);\n }\n }\n };\n proto.destroy = function() {\n if (this.map) {\n this.map.remove();\n this.map = null;\n this.container.removeChild(this.div);\n }\n };\n proto.toImage = function() {\n this.map.stop();\n return this.map.getCanvas().toDataURL();\n };\n proto.setOptions = function(id, methodName, opts) {\n for (var k in opts) {\n this.map[methodName](id, k, opts[k]);\n }\n };\n proto.getMapLayers = function() {\n return this.map.getStyle().layers;\n };\n proto.addLayer = function(opts, below) {\n var map = this.map;\n if (typeof below === \"string\") {\n if (below === \"\") {\n map.addLayer(opts, below);\n return;\n }\n var mapLayers = this.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n if (below === mapLayers[i].id) {\n map.addLayer(opts, below);\n return;\n }\n }\n Lib.warn([\n \"Trying to add layer with *below* value\",\n below,\n \"referencing a layer that does not exist\",\n \"or that does not yet exist.\"\n ].join(\" \"));\n }\n map.addLayer(opts);\n };\n proto.project = function(v) {\n return this.map.project(new maplibregl.LngLat(v[0], v[1]));\n };\n proto.getView = function() {\n var map = this.map;\n var mapCenter = map.getCenter();\n var lon = mapCenter.lng;\n var lat = mapCenter.lat;\n var center = { lon, lat };\n var canvas = map.getCanvas();\n var w = parseInt(canvas.style.width);\n var h = parseInt(canvas.style.height);\n return {\n center,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n _derived: {\n coordinates: [\n map.unproject([0, 0]).toArray(),\n map.unproject([w, 0]).toArray(),\n map.unproject([w, h]).toArray(),\n map.unproject([0, h]).toArray()\n ]\n }\n };\n };\n proto.getViewEdits = function(cont) {\n var id = this.id;\n var keys = [\"center\", \"zoom\", \"bearing\", \"pitch\"];\n var obj = {};\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n obj[id + \".\" + k] = cont[k];\n }\n return obj;\n };\n proto.getViewEditsWithDerived = function(cont) {\n var id = this.id;\n var obj = this.getViewEdits(cont);\n obj[id + \"._derived\"] = cont._derived;\n return obj;\n };\n function getStyleObj(val) {\n var styleObj = {};\n if (Lib.isPlainObject(val)) {\n styleObj.id = val.id;\n styleObj.style = val;\n } else if (typeof val === \"string\") {\n styleObj.id = val;\n if (constants.stylesMap[val]) {\n styleObj.style = constants.stylesMap[val];\n } else {\n styleObj.style = val;\n }\n } else {\n styleObj.id = constants.styleValueDflt;\n styleObj.style = convertStyleVal(constants.styleValueDflt);\n }\n styleObj.transition = { duration: 0, delay: 0 };\n return styleObj;\n }\n function convertStyleVal(val) {\n return constants.styleUrlPrefix + val + \"-\" + constants.styleUrlSuffix;\n }\n function convertCenter(center) {\n return [center.lon, center.lat];\n }\n module.exports = Map2;\n }\n });\n\n // src/plots/map/layout_defaults.js\n var require_layout_defaults18 = __commonJS({\n \"src/plots/map/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSubplotDefaults = require_subplot_defaults();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var layoutAttributes = require_layout_attributes20();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: \"map\",\n attributes: layoutAttributes,\n handleDefaults,\n partition: \"y\"\n });\n };\n function handleDefaults(containerIn, containerOut, coerce) {\n coerce(\"style\");\n coerce(\"center.lon\");\n coerce(\"center.lat\");\n coerce(\"zoom\");\n coerce(\"bearing\");\n coerce(\"pitch\");\n var west = coerce(\"bounds.west\");\n var east = coerce(\"bounds.east\");\n var south = coerce(\"bounds.south\");\n var north = coerce(\"bounds.north\");\n if (west === void 0 || east === void 0 || south === void 0 || north === void 0) {\n delete containerOut.bounds;\n }\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: \"layers\",\n handleItemDefaults: handleLayerDefaults\n });\n containerOut._input = containerIn;\n }\n function handleLayerDefaults(layerIn, layerOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layerIn, layerOut, layoutAttributes.layers, attr, dflt);\n }\n var visible = coerce(\"visible\");\n if (visible) {\n var sourceType = coerce(\"sourcetype\");\n var mustBeRasterLayer = sourceType === \"raster\" || sourceType === \"image\";\n coerce(\"source\");\n coerce(\"sourceattribution\");\n if (sourceType === \"vector\") {\n coerce(\"sourcelayer\");\n }\n if (sourceType === \"image\") {\n coerce(\"coordinates\");\n }\n var typeDflt;\n if (mustBeRasterLayer) typeDflt = \"raster\";\n var type = coerce(\"type\", typeDflt);\n if (mustBeRasterLayer && type !== \"raster\") {\n type = layerOut.type = \"raster\";\n Lib.log(\"Source types *raster* and *image* must drawn *raster* layer type.\");\n }\n coerce(\"below\");\n coerce(\"color\");\n coerce(\"opacity\");\n coerce(\"minzoom\");\n coerce(\"maxzoom\");\n if (type === \"circle\") {\n coerce(\"circle.radius\");\n }\n if (type === \"line\") {\n coerce(\"line.width\");\n coerce(\"line.dash\");\n }\n if (type === \"fill\") {\n coerce(\"fill.outlinecolor\");\n }\n if (type === \"symbol\") {\n coerce(\"symbol.icon\");\n coerce(\"symbol.iconsize\");\n coerce(\"symbol.text\");\n Lib.coerceFont(coerce, \"symbol.textfont\", void 0, {\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n coerce(\"symbol.textposition\");\n coerce(\"symbol.placement\");\n }\n }\n }\n }\n });\n\n // src/plots/map/index.js\n var require_map3 = __commonJS({\n \"src/plots/map/index.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var strScale = Lib.strScale;\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var d3 = require_d3();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var Map2 = require_map2();\n var MAP = \"map\";\n exports.name = MAP;\n exports.attr = \"subplot\";\n exports.idRoot = MAP;\n exports.idRegex = exports.attrRegex = Lib.counterRegex(MAP);\n exports.attributes = {\n subplot: {\n valType: \"subplotid\",\n dflt: \"map\",\n editType: \"calc\"\n }\n };\n exports.layoutAttributes = require_layout_attributes20();\n exports.supplyLayoutDefaults = require_layout_defaults18();\n exports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var mapIds = fullLayout._subplots[MAP];\n for (var i = 0; i < mapIds.length; i++) {\n var id = mapIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, MAP, id);\n var opts = fullLayout[id];\n var map = opts._subplot;\n if (!map) {\n map = new Map2(gd, id);\n fullLayout[id]._subplot = map;\n }\n if (!map.viewInitial) {\n map.viewInitial = {\n center: Lib.extendFlat({}, opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch\n };\n }\n map.plot(subplotCalcData, fullLayout, gd._promises);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldMapKeys = oldFullLayout._subplots[MAP] || [];\n for (var i = 0; i < oldMapKeys.length; i++) {\n var oldMapKey = oldMapKeys[i];\n if (!newFullLayout[oldMapKey] && !!oldFullLayout[oldMapKey]._subplot) {\n oldFullLayout[oldMapKey]._subplot.destroy();\n }\n }\n };\n exports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAP];\n var size = fullLayout._size;\n for (var i = 0; i < subplotIds.length; i++) {\n var opts = fullLayout[subplotIds[i]];\n var domain = opts.domain;\n var map = opts._subplot;\n var imageData = map.toImage(\"png\");\n var image = fullLayout._glimages.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: \"none\"\n });\n var subplotDiv = d3.select(opts._subplot.div);\n var attributions = subplotDiv.select(\".maplibregl-ctrl-attrib\").text().replace(\"Improve this map\", \"\");\n var attributionGroup = fullLayout._glimages.append(\"g\");\n var attributionText = attributionGroup.append(\"text\");\n attributionText.text(attributions).classed(\"static-attribution\", true).attr({\n \"font-size\": 12,\n \"font-family\": \"Arial\",\n color: \"rgba(0, 0, 0, 0.75)\",\n \"text-anchor\": \"end\",\n \"data-unformatted\": attributions\n });\n var bBox = Drawing.bBox(attributionText.node());\n var maxWidth = size.w * (domain.x[1] - domain.x[0]);\n if (bBox.width > maxWidth / 2) {\n var multilineAttributions = attributions.split(\"|\").join(\"
\");\n attributionText.text(multilineAttributions).attr(\"data-unformatted\", multilineAttributions).call(svgTextUtils.convertToTspans, gd);\n bBox = Drawing.bBox(attributionText.node());\n }\n attributionText.attr(\"transform\", strTranslate(-3, -bBox.height + 8));\n attributionGroup.insert(\"rect\", \".static-attribution\").attr({\n x: -bBox.width - 6,\n y: -bBox.height - 3,\n width: bBox.width + 6,\n height: bBox.height + 3,\n fill: \"rgba(255, 255, 255, 0.75)\"\n });\n var scaleRatio = 1;\n if (bBox.width + 6 > maxWidth) scaleRatio = maxWidth / (bBox.width + 6);\n var offset = [size.l + size.w * domain.x[1], size.t + size.h * (1 - domain.y[0])];\n attributionGroup.attr(\"transform\", strTranslate(offset[0], offset[1]) + strScale(scaleRatio));\n }\n };\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAP];\n for (var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._subplot;\n subplotObj.updateFx(fullLayout);\n }\n };\n }\n });\n\n // src/traces/scattermap/index.js\n var require_scattermap = __commonJS({\n \"src/traces/scattermap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes57(),\n supplyDefaults: require_defaults53(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels6(),\n calc: require_calc27(),\n plot: require_plot26(),\n hoverPoints: require_hover20().hoverPoints,\n eventData: require_event_data13(),\n selectPoints: require_select10(),\n styleOnSelect: function(_, cd) {\n if (cd) {\n var trace = cd[0].trace;\n trace._glTrace.update(cd);\n }\n },\n moduleType: \"trace\",\n name: \"scattermap\",\n basePlotModule: require_map3(),\n categories: [\"map\", \"gl\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scattermap.js\n var require_scattermap2 = __commonJS({\n \"lib/scattermap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattermap();\n }\n });\n\n // src/traces/choroplethmap/attributes.js\n var require_attributes58 = __commonJS({\n \"src/traces/choroplethmap/attributes.js\"(exports, module) {\n \"use strict\";\n var choroplethAttrs = require_attributes49();\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n locations: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO\n // Maybe start with only one value (that we could name e.g. 'geojson-id'),\n // but eventually:\n // - we could also support for our own dist/topojson/*\n // .. and locationmode: choroplethAttrs.locationmode,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO maybe we could also set a \"key\" to dig out values out of the\n // GeoJSON feature `properties` fields?\n geojson: {\n valType: \"any\",\n editType: \"calc\"\n },\n featureidkey: extendFlat({}, choroplethAttrs.featureidkey, {}),\n // TODO agree on name / behaviour\n //\n // 'below' is used currently for layout.map.layers,\n // even though it's not very plotly-esque.\n //\n // Note also, that the map-gl style don't all have the same layers,\n // see https://codepen.io/etpinard/pen/ydVMwM for full list\n below: {\n valType: \"string\",\n editType: \"plot\"\n },\n text: choroplethAttrs.text,\n hovertext: choroplethAttrs.hovertext,\n marker: {\n line: {\n color: extendFlat({}, choroplethAttrs.marker.line.color, { editType: \"plot\" }),\n width: extendFlat({}, choroplethAttrs.marker.line.width, { editType: \"plot\" }),\n editType: \"calc\"\n },\n // TODO maybe having a dflt less than 1, together with `below:''` would be better?\n opacity: extendFlat({}, choroplethAttrs.marker.opacity, { editType: \"plot\" }),\n editType: \"calc\"\n },\n selected: {\n marker: {\n opacity: extendFlat({}, choroplethAttrs.selected.marker.opacity, { editType: \"plot\" }),\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n unselected: {\n marker: {\n opacity: extendFlat({}, choroplethAttrs.unselected.marker.opacity, { editType: \"plot\" }),\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n hoverinfo: choroplethAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs({}, { keys: [\"properties\"] }),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/choroplethmap/defaults.js\n var require_defaults54 = __commonJS({\n \"src/traces/choroplethmap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes58();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var locations = coerce(\"locations\");\n var z = coerce(\"z\");\n var geojson = coerce(\"geojson\");\n if (!Lib.isArrayOrTypedArray(locations) || !locations.length || !Lib.isArrayOrTypedArray(z) || !z.length || !(typeof geojson === \"string\" && geojson !== \"\" || Lib.isPlainObject(geojson))) {\n traceOut.visible = false;\n return;\n }\n coerce(\"featureidkey\");\n traceOut._length = Math.min(locations.length, z.length);\n coerce(\"below\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var mlw = coerce(\"marker.line.width\");\n if (mlw) coerce(\"marker.line.color\");\n coerce(\"marker.opacity\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/choroplethmap/convert.js\n var require_convert15 = __commonJS({\n \"src/traces/choroplethmap/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Colorscale = require_colorscale();\n var Drawing = require_drawing();\n var makeBlank = require_geojson_utils().makeBlank;\n var geoUtils = require_geo_location_utils();\n function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var fill = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var line = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var opts = trace._opts = {\n fill,\n line,\n geojson: makeBlank()\n };\n if (!isVisible) return opts;\n var features = geoUtils.extractTraceFeature(calcTrace);\n if (!features) return opts;\n var sclFunc = Colorscale.makeColorScaleFuncFromTrace(trace);\n var marker = trace.marker;\n var markerLine = marker.line || {};\n var opacityFn;\n if (Lib.isArrayOrTypedArray(marker.opacity)) {\n opacityFn = function(d) {\n var mo = d.mo;\n return isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0;\n };\n }\n var lineColorFn;\n if (Lib.isArrayOrTypedArray(markerLine.color)) {\n lineColorFn = function(d) {\n return d.mlc;\n };\n }\n var lineWidthFn;\n if (Lib.isArrayOrTypedArray(markerLine.width)) {\n lineWidthFn = function(d) {\n return d.mlw;\n };\n }\n for (var i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var fOut = cdi.fOut;\n if (fOut) {\n var props = fOut.properties;\n props.fc = sclFunc(cdi.z);\n if (opacityFn) props.mo = opacityFn(cdi);\n if (lineColorFn) props.mlc = lineColorFn(cdi);\n if (lineWidthFn) props.mlw = lineWidthFn(cdi);\n cdi.ct = props.ct;\n cdi._polygons = geoUtils.feature2polygons(fOut);\n }\n }\n var opacitySetting = opacityFn ? { type: \"identity\", property: \"mo\" } : marker.opacity;\n Lib.extendFlat(fill.paint, {\n \"fill-color\": { type: \"identity\", property: \"fc\" },\n \"fill-opacity\": opacitySetting\n });\n Lib.extendFlat(line.paint, {\n \"line-color\": lineColorFn ? { type: \"identity\", property: \"mlc\" } : markerLine.color,\n \"line-width\": lineWidthFn ? { type: \"identity\", property: \"mlw\" } : markerLine.width,\n \"line-opacity\": opacitySetting\n });\n fill.layout.visibility = \"visible\";\n line.layout.visibility = \"visible\";\n opts.geojson = { type: \"FeatureCollection\", features };\n convertOnSelect(calcTrace);\n return opts;\n }\n function convertOnSelect(calcTrace) {\n var trace = calcTrace[0].trace;\n var opts = trace._opts;\n var opacitySetting;\n if (trace.selectedpoints) {\n var fns = Drawing.makeSelectedPointStyleFns(trace);\n for (var i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n if (cdi.fOut) {\n cdi.fOut.properties.mo2 = fns.selectedOpacityFn(cdi);\n }\n }\n opacitySetting = { type: \"identity\", property: \"mo2\" };\n } else {\n opacitySetting = Lib.isArrayOrTypedArray(trace.marker.opacity) ? { type: \"identity\", property: \"mo\" } : trace.marker.opacity;\n }\n Lib.extendFlat(opts.fill.paint, { \"fill-opacity\": opacitySetting });\n Lib.extendFlat(opts.line.paint, { \"line-opacity\": opacitySetting });\n return opts;\n }\n module.exports = {\n convert,\n convertOnSelect\n };\n }\n });\n\n // src/traces/choroplethmap/plot.js\n var require_plot27 = __commonJS({\n \"src/traces/choroplethmap/plot.js\"(exports, module) {\n \"use strict\";\n var convert = require_convert15().convert;\n var convertOnSelect = require_convert15().convertOnSelect;\n var LAYER_PREFIX = require_constants27().traceLayerPrefix;\n function ChoroplethMap(subplot, uid) {\n this.type = \"choroplethmap\";\n this.subplot = subplot;\n this.uid = uid;\n this.sourceId = \"source-\" + uid;\n this.layerList = [\n [\"fill\", LAYER_PREFIX + uid + \"-fill\"],\n [\"line\", LAYER_PREFIX + uid + \"-line\"]\n ];\n this.below = null;\n }\n var proto = ChoroplethMap.prototype;\n proto.update = function(calcTrace) {\n this._update(convert(calcTrace));\n calcTrace[0].trace._glTrace = this;\n };\n proto.updateOnSelect = function(calcTrace) {\n this._update(convertOnSelect(calcTrace));\n };\n proto._update = function(optsAll) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n subplot.map.getSource(this.sourceId).setData(optsAll.geojson);\n if (below !== this.below) {\n this._removeLayers();\n this._addLayers(optsAll, below);\n this.below = below;\n }\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var id = item[1];\n var opts = optsAll[k];\n subplot.setOptions(id, \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n subplot.setOptions(id, \"setPaintProperty\", opts.paint);\n }\n }\n };\n proto._addLayers = function(optsAll, below) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var sourceId = this.sourceId;\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var opts = optsAll[k];\n subplot.addLayer({\n type: k,\n id: item[1],\n source: sourceId,\n layout: opts.layout,\n paint: opts.paint\n }, below);\n }\n };\n proto._removeLayers = function() {\n var map = this.subplot.map;\n var layerList = this.layerList;\n for (var i = layerList.length - 1; i >= 0; i--) {\n map.removeLayer(layerList[i][1]);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n this._removeLayers();\n map.removeSource(this.sourceId);\n };\n module.exports = function createChoroplethMap(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var choroplethMap = new ChoroplethMap(subplot, trace.uid);\n var sourceId = choroplethMap.sourceId;\n var optsAll = convert(calcTrace);\n var below = choroplethMap.below = subplot.belowLookup[\"trace-\" + trace.uid];\n subplot.map.addSource(sourceId, {\n type: \"geojson\",\n data: optsAll.geojson\n });\n choroplethMap._addLayers(optsAll, below);\n calcTrace[0].trace._glTrace = choroplethMap;\n return choroplethMap;\n };\n }\n });\n\n // src/traces/choroplethmap/index.js\n var require_choroplethmap = __commonJS({\n \"src/traces/choroplethmap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes58(),\n supplyDefaults: require_defaults54(),\n colorbar: require_colorbar2(),\n calc: require_calc28(),\n plot: require_plot27(),\n hoverPoints: require_hover15(),\n eventData: require_event_data10(),\n selectPoints: require_select6(),\n styleOnSelect: function(_, cd) {\n if (cd) {\n var trace = cd[0].trace;\n trace._glTrace.updateOnSelect(cd);\n }\n },\n getBelow: function(trace, subplot) {\n var mapLayers = subplot.getMapLayers();\n for (var i = mapLayers.length - 2; i >= 0; i--) {\n var layerId = mapLayers[i].id;\n if (typeof layerId === \"string\" && layerId.indexOf(\"water\") === 0) {\n for (var j = i + 1; j < mapLayers.length; j++) {\n layerId = mapLayers[j].id;\n if (typeof layerId === \"string\" && layerId.indexOf(\"plotly-\") === -1) {\n return layerId;\n }\n }\n }\n }\n },\n moduleType: \"trace\",\n name: \"choroplethmap\",\n basePlotModule: require_map3(),\n categories: [\"map\", \"gl\", \"noOpacity\", \"showLegend\"],\n meta: {\n hr_name: \"choropleth_map\"\n }\n };\n }\n });\n\n // lib/choroplethmap.js\n var require_choroplethmap2 = __commonJS({\n \"lib/choroplethmap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_choroplethmap();\n }\n });\n\n // src/traces/densitymap/attributes.js\n var require_attributes59 = __commonJS({\n \"src/traces/densitymap/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var scatterMapAttrs = require_attributes57();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n lon: scatterMapAttrs.lon,\n lat: scatterMapAttrs.lat,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n radius: {\n valType: \"number\",\n editType: \"plot\",\n arrayOk: true,\n min: 1,\n dflt: 30\n },\n below: {\n valType: \"string\",\n editType: \"plot\"\n },\n text: scatterMapAttrs.text,\n hovertext: scatterMapAttrs.hovertext,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"z\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/densitymap/defaults.js\n var require_defaults55 = __commonJS({\n \"src/traces/densitymap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes59();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n var len = Math.min(lon.length, lat.length);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"z\");\n coerce(\"radius\");\n coerce(\"below\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n };\n }\n });\n\n // src/traces/densitymap/calc.js\n var require_calc34 = __commonJS({\n \"src/traces/densitymap/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var BADNUM = require_numerical().BADNUM;\n var colorscaleCalc = require_calc();\n var _ = require_lib()._;\n module.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var z = trace.z;\n var hasZ = isArrayOrTypedArray(z) && z.length;\n for (var i = 0; i < len; i++) {\n var cdi = calcTrace[i] = {};\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n cdi.lonlat = isNumeric(lon) && isNumeric(lat) ? [+lon, +lat] : [BADNUM, BADNUM];\n if (hasZ) {\n var zi = z[i];\n cdi.z = isNumeric(zi) ? zi : BADNUM;\n }\n }\n colorscaleCalc(gd, trace, {\n vals: hasZ ? z : [0, 1],\n containerStr: \"\",\n cLetter: \"z\"\n });\n if (len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, \"lat:\") + \" \",\n lon: _(gd, \"lon:\") + \" \"\n }\n };\n }\n return calcTrace;\n };\n }\n });\n\n // src/traces/densitymap/convert.js\n var require_convert16 = __commonJS({\n \"src/traces/densitymap/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Color2 = require_color();\n var Colorscale = require_colorscale();\n var BADNUM = require_numerical().BADNUM;\n var makeBlank = require_geojson_utils().makeBlank;\n module.exports = function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var heatmap = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var opts = trace._opts = {\n heatmap,\n geojson: makeBlank()\n };\n if (!isVisible) return opts;\n var features = [];\n var i;\n var z = trace.z;\n var radius = trace.radius;\n var hasZ = Lib.isArrayOrTypedArray(z) && z.length;\n var hasArrayRadius = Lib.isArrayOrTypedArray(radius);\n for (i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var lonlat = cdi.lonlat;\n if (lonlat[0] !== BADNUM) {\n var props = {};\n if (hasZ) {\n var zi = cdi.z;\n props.z = zi !== BADNUM ? zi : 0;\n }\n if (hasArrayRadius) {\n props.r = isNumeric(radius[i]) && radius[i] > 0 ? +radius[i] : 0;\n }\n features.push({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: lonlat },\n properties: props\n });\n }\n }\n var cOpts = Colorscale.extractOpts(trace);\n var scl = cOpts.reversescale ? Colorscale.flipScale(cOpts.colorscale) : cOpts.colorscale;\n var scl01 = scl[0][1];\n var color0 = Color2.opacity(scl01) < 1 ? scl01 : Color2.addOpacity(scl01, 0);\n var heatmapColor = [\n \"interpolate\",\n [\"linear\"],\n [\"heatmap-density\"],\n 0,\n color0\n ];\n for (i = 1; i < scl.length; i++) {\n heatmapColor.push(scl[i][0], scl[i][1]);\n }\n var zExp = [\n \"interpolate\",\n [\"linear\"],\n [\"get\", \"z\"],\n cOpts.min,\n 0,\n cOpts.max,\n 1\n ];\n Lib.extendFlat(opts.heatmap.paint, {\n \"heatmap-weight\": hasZ ? zExp : 1 / (cOpts.max - cOpts.min),\n \"heatmap-color\": heatmapColor,\n \"heatmap-radius\": hasArrayRadius ? { type: \"identity\", property: \"r\" } : trace.radius,\n \"heatmap-opacity\": trace.opacity\n });\n opts.geojson = { type: \"FeatureCollection\", features };\n opts.heatmap.layout.visibility = \"visible\";\n return opts;\n };\n }\n });\n\n // src/traces/densitymap/plot.js\n var require_plot28 = __commonJS({\n \"src/traces/densitymap/plot.js\"(exports, module) {\n \"use strict\";\n var convert = require_convert16();\n var LAYER_PREFIX = require_constants27().traceLayerPrefix;\n function DensityMap(subplot, uid) {\n this.type = \"densitymap\";\n this.subplot = subplot;\n this.uid = uid;\n this.sourceId = \"source-\" + uid;\n this.layerList = [\n [\"heatmap\", LAYER_PREFIX + uid + \"-heatmap\"]\n ];\n this.below = null;\n }\n var proto = DensityMap.prototype;\n proto.update = function(calcTrace) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var optsAll = convert(calcTrace);\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n subplot.map.getSource(this.sourceId).setData(optsAll.geojson);\n if (below !== this.below) {\n this._removeLayers();\n this._addLayers(optsAll, below);\n this.below = below;\n }\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var id = item[1];\n var opts = optsAll[k];\n subplot.setOptions(id, \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n subplot.setOptions(id, \"setPaintProperty\", opts.paint);\n }\n }\n };\n proto._addLayers = function(optsAll, below) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var sourceId = this.sourceId;\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var opts = optsAll[k];\n subplot.addLayer({\n type: k,\n id: item[1],\n source: sourceId,\n layout: opts.layout,\n paint: opts.paint\n }, below);\n }\n };\n proto._removeLayers = function() {\n var map = this.subplot.map;\n var layerList = this.layerList;\n for (var i = layerList.length - 1; i >= 0; i--) {\n map.removeLayer(layerList[i][1]);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n this._removeLayers();\n map.removeSource(this.sourceId);\n };\n module.exports = function createDensityMap(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var densityMap = new DensityMap(subplot, trace.uid);\n var sourceId = densityMap.sourceId;\n var optsAll = convert(calcTrace);\n var below = densityMap.below = subplot.belowLookup[\"trace-\" + trace.uid];\n subplot.map.addSource(sourceId, {\n type: \"geojson\",\n data: optsAll.geojson\n });\n densityMap._addLayers(optsAll, below);\n return densityMap;\n };\n }\n });\n\n // src/traces/densitymap/hover.js\n var require_hover21 = __commonJS({\n \"src/traces/densitymap/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var scatterMapHoverPoints = require_hover20().hoverPoints;\n var getExtraText = require_hover20().getExtraText;\n module.exports = function hoverPoints(pointData, xval, yval) {\n var pts = scatterMapHoverPoints(pointData, xval, yval);\n if (!pts) return;\n var newPointData = pts[0];\n var cd = newPointData.cd;\n var trace = cd[0].trace;\n var di = cd[newPointData.index];\n delete newPointData.color;\n if (\"z\" in di) {\n var ax = newPointData.subplot.mockAxis;\n newPointData.z = di.z;\n newPointData.zLabel = Axes.tickText(ax, ax.c2l(di.z), \"hover\").text;\n }\n newPointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n return [newPointData];\n };\n }\n });\n\n // src/traces/densitymap/event_data.js\n var require_event_data14 = __commonJS({\n \"src/traces/densitymap/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.z = pt.z;\n return out;\n };\n }\n });\n\n // src/traces/densitymap/index.js\n var require_densitymap = __commonJS({\n \"src/traces/densitymap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes59(),\n supplyDefaults: require_defaults55(),\n colorbar: require_colorbar2(),\n formatLabels: require_format_labels6(),\n calc: require_calc34(),\n plot: require_plot28(),\n hoverPoints: require_hover21(),\n eventData: require_event_data14(),\n getBelow: function(trace, subplot) {\n var mapLayers = subplot.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n var layer = mapLayers[i];\n var layerId = layer.id;\n if (layer.type === \"symbol\" && typeof layerId === \"string\" && layerId.indexOf(\"plotly-\") === -1) {\n return layerId;\n }\n }\n },\n moduleType: \"trace\",\n name: \"densitymap\",\n basePlotModule: require_map3(),\n categories: [\"map\", \"gl\", \"showLegend\"],\n meta: {\n hr_name: \"density_map\"\n }\n };\n }\n });\n\n // lib/densitymap.js\n var require_densitymap2 = __commonJS({\n \"lib/densitymap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_densitymap();\n }\n });\n\n // src/traces/sankey/attributes.js\n var require_attributes60 = __commonJS({\n \"src/traces/sankey/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var baseAttrs = require_attributes2();\n var colorAttrs = require_attributes3();\n var fxAttrs = require_attributes();\n var domainAttrs = require_domain().attributes;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var colorAttributes = require_attributes8();\n var templatedArray = require_plot_template().templatedArray;\n var descriptionOnlyNumbers = require_axis_format_attributes().descriptionOnlyNumbers;\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var attrs = module.exports = overrideAll({\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [],\n arrayOk: false\n }),\n hoverlabel: fxAttrs.hoverlabel,\n domain: domainAttrs({ name: \"sankey\", trace: true }),\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n dflt: \"h\"\n },\n valueformat: {\n valType: \"string\",\n dflt: \".3s\",\n description: descriptionOnlyNumbers(\"value\")\n },\n valuesuffix: {\n valType: \"string\",\n dflt: \"\"\n },\n arrangement: {\n valType: \"enumerated\",\n values: [\"snap\", \"perpendicular\", \"freeform\", \"fixed\"],\n dflt: \"snap\"\n },\n textfont: fontAttrs({\n autoShadowDflt: true\n }),\n // Remove top-level customdata\n customdata: void 0,\n node: {\n label: {\n valType: \"data_array\",\n dflt: []\n },\n groups: {\n valType: \"info_array\",\n impliedEdits: { x: [], y: [] },\n dimensions: 2,\n freeLength: true,\n dflt: [],\n items: { valType: \"number\", editType: \"calc\" }\n },\n x: {\n valType: \"data_array\",\n dflt: []\n },\n y: {\n valType: \"data_array\",\n dflt: []\n },\n color: {\n valType: \"color\",\n arrayOk: true\n },\n customdata: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n line: {\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n arrayOk: true\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0.5,\n arrayOk: true\n }\n },\n pad: {\n valType: \"number\",\n arrayOk: false,\n min: 0,\n dflt: 20\n },\n thickness: {\n valType: \"number\",\n arrayOk: false,\n min: 1,\n dflt: 20\n },\n hoverinfo: {\n valType: \"enumerated\",\n values: [\"all\", \"none\", \"skip\"],\n dflt: \"all\"\n },\n hoverlabel: fxAttrs.hoverlabel,\n // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"value\", \"label\"]\n }),\n align: {\n valType: \"enumerated\",\n values: [\"justify\", \"left\", \"right\", \"center\"],\n dflt: \"justify\"\n }\n },\n link: {\n arrowlen: {\n valType: \"number\",\n min: 0,\n dflt: 0\n },\n label: {\n valType: \"data_array\",\n dflt: []\n },\n color: {\n valType: \"color\",\n arrayOk: true\n },\n hovercolor: {\n valType: \"color\",\n arrayOk: true\n },\n customdata: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n line: {\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n arrayOk: true\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n arrayOk: true\n }\n },\n source: {\n valType: \"data_array\",\n dflt: []\n },\n target: {\n valType: \"data_array\",\n dflt: []\n },\n value: {\n valType: \"data_array\",\n dflt: []\n },\n hoverinfo: {\n valType: \"enumerated\",\n values: [\"all\", \"none\", \"skip\"],\n dflt: \"all\"\n },\n hoverlabel: fxAttrs.hoverlabel,\n // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"value\", \"label\"]\n }),\n colorscales: templatedArray(\"concentrationscales\", {\n editType: \"calc\",\n label: {\n valType: \"string\",\n editType: \"calc\",\n dflt: \"\"\n },\n cmax: {\n valType: \"number\",\n editType: \"calc\",\n dflt: 1\n },\n cmin: {\n valType: \"number\",\n editType: \"calc\",\n dflt: 0\n },\n colorscale: extendFlat(colorAttributes().colorscale, { dflt: [[0, \"white\"], [1, \"black\"]] })\n })\n }\n }, \"calc\", \"nested\");\n }\n });\n\n // src/traces/sankey/defaults.js\n var require_defaults56 = __commonJS({\n \"src/traces/sankey/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes60();\n var Color2 = require_color();\n var tinycolor = require_tinycolor();\n var handleDomainDefaults = require_domain().defaults;\n var handleHoverLabelDefaults = require_hoverlabel_defaults();\n var Template = require_plot_template();\n var handleArrayContainerDefaults = require_array_container_defaults();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var hoverlabelDefault = Lib.extendDeep(layout.hoverlabel, traceIn.hoverlabel);\n var nodeIn = traceIn.node;\n var nodeOut = Template.newContainer(traceOut, \"node\");\n function coerceNode(attr, dflt) {\n return Lib.coerce(nodeIn, nodeOut, attributes.node, attr, dflt);\n }\n coerceNode(\"label\");\n coerceNode(\"groups\");\n coerceNode(\"x\");\n coerceNode(\"y\");\n coerceNode(\"pad\");\n coerceNode(\"thickness\");\n coerceNode(\"line.color\");\n coerceNode(\"line.width\");\n coerceNode(\"hoverinfo\", traceIn.hoverinfo);\n handleHoverLabelDefaults(nodeIn, nodeOut, coerceNode, hoverlabelDefault);\n coerceNode(\"hovertemplate\");\n coerceNode(\"align\");\n var colors = layout.colorway;\n var defaultNodePalette = function(i) {\n return colors[i % colors.length];\n };\n coerceNode(\"color\", nodeOut.label.map(function(d, i) {\n return Color2.addOpacity(defaultNodePalette(i), 0.8);\n }));\n coerceNode(\"customdata\");\n var linkIn = traceIn.link || {};\n var linkOut = Template.newContainer(traceOut, \"link\");\n function coerceLink(attr, dflt) {\n return Lib.coerce(linkIn, linkOut, attributes.link, attr, dflt);\n }\n coerceLink(\"label\");\n coerceLink(\"arrowlen\");\n coerceLink(\"source\");\n coerceLink(\"target\");\n coerceLink(\"value\");\n coerceLink(\"line.color\");\n coerceLink(\"line.width\");\n coerceLink(\"hoverinfo\", traceIn.hoverinfo);\n handleHoverLabelDefaults(linkIn, linkOut, coerceLink, hoverlabelDefault);\n coerceLink(\"hovertemplate\");\n var darkBG = tinycolor(layout.paper_bgcolor).getLuminance() < 0.333;\n var defaultLinkColor = darkBG ? \"rgba(255, 255, 255, 0.6)\" : \"rgba(0, 0, 0, 0.2)\";\n var linkColor = coerceLink(\"color\", defaultLinkColor);\n function makeDefaultHoverColor(_linkColor) {\n var tc = tinycolor(_linkColor);\n if (!tc.isValid()) {\n return _linkColor;\n }\n var alpha = tc.getAlpha();\n if (alpha <= 0.8) {\n tc.setAlpha(alpha + 0.2);\n } else {\n tc = darkBG ? tc.brighten() : tc.darken();\n }\n return tc.toRgbString();\n }\n coerceLink(\n \"hovercolor\",\n Array.isArray(linkColor) ? linkColor.map(makeDefaultHoverColor) : makeDefaultHoverColor(linkColor)\n );\n coerceLink(\"customdata\");\n handleArrayContainerDefaults(linkIn, linkOut, {\n name: \"colorscales\",\n handleItemDefaults: concentrationscalesDefaults\n });\n handleDomainDefaults(traceOut, layout, coerce);\n coerce(\"orientation\");\n coerce(\"valueformat\");\n coerce(\"valuesuffix\");\n var dfltArrangement;\n if (nodeOut.x.length && nodeOut.y.length) {\n dfltArrangement = \"freeform\";\n }\n coerce(\"arrangement\", dfltArrangement);\n Lib.coerceFont(coerce, \"textfont\", layout.font, { autoShadowDflt: true });\n traceOut._length = null;\n };\n function concentrationscalesDefaults(In, Out) {\n function coerce(attr, dflt) {\n return Lib.coerce(In, Out, attributes.link.colorscales, attr, dflt);\n }\n coerce(\"label\");\n coerce(\"cmin\");\n coerce(\"cmax\");\n coerce(\"colorscale\");\n }\n }\n });\n\n // node_modules/strongly-connected-components/scc.js\n var require_scc = __commonJS({\n \"node_modules/strongly-connected-components/scc.js\"(exports, module) {\n \"use strict\";\n module.exports = stronglyConnectedComponents;\n function stronglyConnectedComponents(adjList) {\n var numVertices = adjList.length;\n var index = new Array(numVertices);\n var lowValue = new Array(numVertices);\n var active = new Array(numVertices);\n var child = new Array(numVertices);\n var scc = new Array(numVertices);\n var sccLinks = new Array(numVertices);\n for (var i = 0; i < numVertices; ++i) {\n index[i] = -1;\n lowValue[i] = 0;\n active[i] = false;\n child[i] = 0;\n scc[i] = -1;\n sccLinks[i] = [];\n }\n var count = 0;\n var components = [];\n var sccAdjList = [];\n function strongConnect(v) {\n var S = [v], T = [v];\n index[v] = lowValue[v] = count;\n active[v] = true;\n count += 1;\n while (T.length > 0) {\n v = T[T.length - 1];\n var e2 = adjList[v];\n if (child[v] < e2.length) {\n for (var i2 = child[v]; i2 < e2.length; ++i2) {\n var u = e2[i2];\n if (index[u] < 0) {\n index[u] = lowValue[u] = count;\n active[u] = true;\n count += 1;\n S.push(u);\n T.push(u);\n break;\n } else if (active[u]) {\n lowValue[v] = Math.min(lowValue[v], lowValue[u]) | 0;\n }\n if (scc[u] >= 0) {\n sccLinks[v].push(scc[u]);\n }\n }\n child[v] = i2;\n } else {\n if (lowValue[v] === index[v]) {\n var component = [];\n var links = [], linkCount = 0;\n for (var i2 = S.length - 1; i2 >= 0; --i2) {\n var w = S[i2];\n active[w] = false;\n component.push(w);\n links.push(sccLinks[w]);\n linkCount += sccLinks[w].length;\n scc[w] = components.length;\n if (w === v) {\n S.length = i2;\n break;\n }\n }\n components.push(component);\n var allLinks = new Array(linkCount);\n for (var i2 = 0; i2 < links.length; i2++) {\n for (var j2 = 0; j2 < links[i2].length; j2++) {\n allLinks[--linkCount] = links[i2][j2];\n }\n }\n sccAdjList.push(allLinks);\n }\n T.pop();\n }\n }\n }\n for (var i = 0; i < numVertices; ++i) {\n if (index[i] < 0) {\n strongConnect(i);\n }\n }\n var newE;\n for (var i = 0; i < sccAdjList.length; i++) {\n var e = sccAdjList[i];\n if (e.length === 0) continue;\n e.sort(function(a, b) {\n return a - b;\n });\n newE = [e[0]];\n for (var j = 1; j < e.length; j++) {\n if (e[j] !== e[j - 1]) {\n newE.push(e[j]);\n }\n }\n sccAdjList[i] = newE;\n }\n return { components, adjacencyList: sccAdjList };\n }\n }\n });\n\n // src/traces/sankey/calc.js\n var require_calc35 = __commonJS({\n \"src/traces/sankey/calc.js\"(exports, module) {\n \"use strict\";\n var tarjan = require_scc();\n var Lib = require_lib();\n var wrap = require_gup().wrap;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var isIndex = Lib.isIndex;\n var Colorscale = require_colorscale();\n function convertToD3Sankey(trace) {\n var nodeSpec = trace.node;\n var linkSpec = trace.link;\n var links = [];\n var hasLinkColorArray = isArrayOrTypedArray(linkSpec.color);\n var hasLinkHoverColorArray = isArrayOrTypedArray(linkSpec.hovercolor);\n var hasLinkCustomdataArray = isArrayOrTypedArray(linkSpec.customdata);\n var linkedNodes = {};\n var components = {};\n var componentCount = linkSpec.colorscales.length;\n var i;\n for (i = 0; i < componentCount; i++) {\n var cscale = linkSpec.colorscales[i];\n var specs = Colorscale.extractScale(cscale, { cLetter: \"c\" });\n var scale = Colorscale.makeColorScaleFunc(specs);\n components[cscale.label] = scale;\n }\n var maxNodeId = 0;\n for (i = 0; i < linkSpec.value.length; i++) {\n if (linkSpec.source[i] > maxNodeId) maxNodeId = linkSpec.source[i];\n if (linkSpec.target[i] > maxNodeId) maxNodeId = linkSpec.target[i];\n }\n var nodeCount = maxNodeId + 1;\n trace.node._count = nodeCount;\n var j;\n var groups = trace.node.groups;\n var groupLookup = {};\n for (i = 0; i < groups.length; i++) {\n var group = groups[i];\n for (j = 0; j < group.length; j++) {\n var nodeIndex = group[j];\n var groupIndex = nodeCount + i;\n if (groupLookup.hasOwnProperty(nodeIndex)) {\n Lib.warn(\"Node \" + nodeIndex + \" is already part of a group.\");\n } else {\n groupLookup[nodeIndex] = groupIndex;\n }\n }\n }\n var groupedLinks = {\n source: [],\n target: []\n };\n for (i = 0; i < linkSpec.value.length; i++) {\n var val = linkSpec.value[i];\n var source = linkSpec.source[i];\n var target = linkSpec.target[i];\n if (!(val > 0 && isIndex(source, nodeCount) && isIndex(target, nodeCount))) {\n continue;\n }\n if (groupLookup.hasOwnProperty(source) && groupLookup.hasOwnProperty(target) && groupLookup[source] === groupLookup[target]) {\n continue;\n }\n if (groupLookup.hasOwnProperty(target)) {\n target = groupLookup[target];\n }\n if (groupLookup.hasOwnProperty(source)) {\n source = groupLookup[source];\n }\n source = +source;\n target = +target;\n linkedNodes[source] = linkedNodes[target] = true;\n var label = \"\";\n if (linkSpec.label && linkSpec.label[i]) label = linkSpec.label[i];\n var concentrationscale = null;\n if (label && components.hasOwnProperty(label)) concentrationscale = components[label];\n links.push({\n pointNumber: i,\n label,\n color: hasLinkColorArray ? linkSpec.color[i] : linkSpec.color,\n hovercolor: hasLinkHoverColorArray ? linkSpec.hovercolor[i] : linkSpec.hovercolor,\n customdata: hasLinkCustomdataArray ? linkSpec.customdata[i] : linkSpec.customdata,\n concentrationscale,\n source,\n target,\n value: +val\n });\n groupedLinks.source.push(source);\n groupedLinks.target.push(target);\n }\n var totalCount = nodeCount + groups.length;\n var hasNodeColorArray = isArrayOrTypedArray(nodeSpec.color);\n var hasNodeCustomdataArray = isArrayOrTypedArray(nodeSpec.customdata);\n var nodes = [];\n for (i = 0; i < totalCount; i++) {\n if (!linkedNodes[i]) continue;\n var l = nodeSpec.label[i];\n nodes.push({\n group: i > nodeCount - 1,\n childrenNodes: [],\n pointNumber: i,\n label: l,\n color: hasNodeColorArray ? nodeSpec.color[i] : nodeSpec.color,\n customdata: hasNodeCustomdataArray ? nodeSpec.customdata[i] : nodeSpec.customdata\n });\n }\n var circular = false;\n if (circularityPresent(totalCount, groupedLinks.source, groupedLinks.target)) {\n circular = true;\n }\n return {\n circular,\n links,\n nodes,\n // Data structure for groups\n groups,\n groupLookup\n };\n }\n function circularityPresent(nodeLen, sources, targets) {\n var nodes = Lib.init2dArray(nodeLen, 0);\n for (var i = 0; i < Math.min(sources.length, targets.length); i++) {\n if (Lib.isIndex(sources[i], nodeLen) && Lib.isIndex(targets[i], nodeLen)) {\n if (sources[i] === targets[i]) {\n return true;\n }\n nodes[sources[i]].push(targets[i]);\n }\n }\n var scc = tarjan(nodes);\n return scc.components.some(function(c) {\n return c.length > 1;\n });\n }\n module.exports = function calc(gd, trace) {\n var result = convertToD3Sankey(trace);\n return wrap({\n circular: result.circular,\n _nodes: result.nodes,\n _links: result.links,\n // Data structure for grouping\n _groups: result.groups,\n _groupLookup: result.groupLookup\n });\n };\n }\n });\n\n // node_modules/d3-quadtree/dist/d3-quadtree.js\n var require_d3_quadtree = __commonJS({\n \"node_modules/d3-quadtree/dist/d3-quadtree.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function tree_add(d) {\n var x = +this._x.call(null, d), y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n }\n function add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree;\n var parent, node = tree._root, leaf = { data: d }, x0 = tree._x0, y0 = tree._y0, x1 = tree._x1, y1 = tree._y1, xm, ym, xp, yp, right, bottom, i, j;\n if (!node) return tree._root = leaf, tree;\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;\n else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;\n else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;\n else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;\n else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | xp >= xm));\n return parent[j] = node, parent[i] = leaf, tree;\n }\n function addAll(data) {\n var d, i, n = data.length, x, y, xz = new Array(n), yz = new Array(n), x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity;\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n if (x0 > x1 || y0 > y1) return this;\n this.cover(x0, y0).cover(x1, y1);\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n return this;\n }\n function tree_cover(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this;\n var x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1;\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n } else {\n var z = x1 - x0, node = this._root, parent, i;\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | x < x0;\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0:\n x1 = x0 + z, y1 = y0 + z;\n break;\n case 1:\n x0 = x1 - z, y1 = y0 + z;\n break;\n case 2:\n x1 = x0 + z, y0 = y1 - z;\n break;\n case 3:\n x0 = x1 - z, y0 = y1 - z;\n break;\n }\n }\n if (this._root && this._root.length) this._root = node;\n }\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n }\n function tree_data() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do\n data.push(node.data);\n while (node = node.next);\n });\n return data;\n }\n function tree_extent(_) {\n return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? void 0 : [[this._x0, this._y0], [this._x1, this._y1]];\n }\n function Quad(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n }\n function tree_find(x, y, radius) {\n var data, x0 = this._x0, y0 = this._y0, x1, y1, x2, y2, x3 = this._x1, y3 = this._y1, quads = [], node = this._root, q, i;\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n while (q = quads.pop()) {\n if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue;\n if (node.length) {\n var xm = (x1 + x2) / 2, ym = (y1 + y2) / 2;\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n if (i = (y >= ym) << 1 | x >= xm) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n } else {\n var dx = x - +this._x.call(null, node.data), dy = y - +this._y.call(null, node.data), d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n return data;\n }\n function tree_remove(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this;\n var parent, node = this._root, retainer, previous, next, x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1, x, y, xm, ym, right, bottom, i, j;\n if (!node) return this;\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;\n else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;\n else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) retainer = parent, j = i;\n }\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n if (previous) return next ? previous.next = next : delete previous.next, this;\n if (!parent) return this._root = next, this;\n next ? parent[i] = next : delete parent[i];\n if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n return this;\n }\n function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n }\n function tree_root() {\n return this._root;\n }\n function tree_size() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do\n ++size;\n while (node = node.next);\n });\n return size;\n }\n function tree_visit(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n }\n function tree_visitAfter(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n }\n function defaultX(d) {\n return d[0];\n }\n function tree_x(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n }\n function defaultY(d) {\n return d[1];\n }\n function tree_y(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n }\n function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n }\n function Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = void 0;\n }\n function leaf_copy(leaf) {\n var copy = { data: leaf.data }, next = copy;\n while (leaf = leaf.next) next = next.next = { data: leaf.data };\n return copy;\n }\n var treeProto = quadtree.prototype = Quadtree.prototype;\n treeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child;\n if (!node) return copy;\n if (!node.length) return copy._root = leaf_copy(node), copy;\n nodes = [{ source: node, target: copy._root = new Array(4) }];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({ source: child, target: node.target[i] = new Array(4) });\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n return copy;\n };\n treeProto.add = tree_add;\n treeProto.addAll = addAll;\n treeProto.cover = tree_cover;\n treeProto.data = tree_data;\n treeProto.extent = tree_extent;\n treeProto.find = tree_find;\n treeProto.remove = tree_remove;\n treeProto.removeAll = removeAll;\n treeProto.root = tree_root;\n treeProto.size = tree_size;\n treeProto.visit = tree_visit;\n treeProto.visitAfter = tree_visitAfter;\n treeProto.x = tree_x;\n treeProto.y = tree_y;\n exports2.quadtree = quadtree;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-collection/dist/d3-collection.js\n var require_d3_collection = __commonJS({\n \"node_modules/d3-collection/dist/d3-collection.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : factory(global2.d3 = global2.d3 || {});\n })(exports, function(exports2) {\n \"use strict\";\n var prefix = \"$\";\n function Map2() {\n }\n Map2.prototype = map.prototype = {\n constructor: Map2,\n has: function(key) {\n return prefix + key in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys2 = [];\n for (var property in this) if (property[0] === prefix) keys2.push(property.slice(1));\n return keys2;\n },\n values: function() {\n var values2 = [];\n for (var property in this) if (property[0] === prefix) values2.push(this[property]);\n return values2;\n },\n entries: function() {\n var entries2 = [];\n for (var property in this) if (property[0] === prefix) entries2.push({ key: property.slice(1), value: this[property] });\n return entries2;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n };\n function map(object, f) {\n var map2 = new Map2();\n if (object instanceof Map2) object.each(function(value, key2) {\n map2.set(key2, value);\n });\n else if (Array.isArray(object)) {\n var i = -1, n = object.length, o;\n if (f == null) while (++i < n) map2.set(i, object[i]);\n else while (++i < n) map2.set(f(o = object[i], i, object), o);\n } else if (object) for (var key in object) map2.set(key, object[key]);\n return map2;\n }\n function nest() {\n var keys2 = [], sortKeys = [], sortValues, rollup, nest2;\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys2.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n var i = -1, n = array.length, key = keys2[depth++], keyValue, value, valuesByKey = map(), values2, result = createResult();\n while (++i < n) {\n if (values2 = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values2.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n valuesByKey.each(function(values3, key2) {\n setResult(result, key2, apply(values3, depth, createResult, setResult));\n });\n return result;\n }\n function entries2(map$$1, depth) {\n if (++depth > keys2.length) return map$$1;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys2.length) array = map$$1.entries();\n else array = [], map$$1.each(function(v, k) {\n array.push({ key: k, values: entries2(v, depth) });\n });\n return sortKey != null ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n return nest2 = {\n object: function(array) {\n return apply(array, 0, createObject, setObject);\n },\n map: function(array) {\n return apply(array, 0, createMap, setMap);\n },\n entries: function(array) {\n return entries2(apply(array, 0, createMap, setMap), 0);\n },\n key: function(d) {\n keys2.push(d);\n return nest2;\n },\n sortKeys: function(order) {\n sortKeys[keys2.length - 1] = order;\n return nest2;\n },\n sortValues: function(order) {\n sortValues = order;\n return nest2;\n },\n rollup: function(f) {\n rollup = f;\n return nest2;\n }\n };\n }\n function createObject() {\n return {};\n }\n function setObject(object, key, value) {\n object[key] = value;\n }\n function createMap() {\n return map();\n }\n function setMap(map$$1, key, value) {\n map$$1.set(key, value);\n }\n function Set2() {\n }\n var proto = map.prototype;\n Set2.prototype = set.prototype = {\n constructor: Set2,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n };\n function set(object, f) {\n var set2 = new Set2();\n if (object instanceof Set2) object.each(function(value) {\n set2.add(value);\n });\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set2.add(object[i]);\n else while (++i < n) set2.add(f(object[i], i, object));\n }\n return set2;\n }\n function keys(map2) {\n var keys2 = [];\n for (var key in map2) keys2.push(key);\n return keys2;\n }\n function values(map2) {\n var values2 = [];\n for (var key in map2) values2.push(map2[key]);\n return values2;\n }\n function entries(map2) {\n var entries2 = [];\n for (var key in map2) entries2.push({ key, value: map2[key] });\n return entries2;\n }\n exports2.nest = nest;\n exports2.set = set;\n exports2.map = map;\n exports2.keys = keys;\n exports2.values = values;\n exports2.entries = entries;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-dispatch/dist/d3-dispatch.js\n var require_d3_dispatch = __commonJS({\n \"node_modules/d3-dispatch/dist/d3-dispatch.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n var noop = { value: function() {\n } };\n function dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n }\n function Dispatch(_) {\n this._ = _;\n }\n function parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name2 = \"\", i = t.indexOf(\".\");\n if (i >= 0) name2 = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return { type: t, name: name2 };\n });\n }\n Dispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._, T = parseTypenames(typename + \"\", _), t, i = -1, n = T.length;\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n };\n function get(type, name2) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name2) {\n return c.value;\n }\n }\n }\n function set(type, name2, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name2) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({ name: name2, value: callback });\n return type;\n }\n exports2.dispatch = dispatch;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-timer/dist/d3-timer.js\n var require_d3_timer = __commonJS({\n \"node_modules/d3-timer/dist/d3-timer.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n var frame = 0, timeout = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === \"object\" && performance.now ? performance : Date, setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) {\n setTimeout(f, 17);\n };\n function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n }\n function clearNow() {\n clockNow = 0;\n }\n function Timer() {\n this._call = this._time = this._next = null;\n }\n Timer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n };\n function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n }\n function timerFlush() {\n now();\n ++frame;\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n }\n function wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n }\n function poke() {\n var now2 = clock.now(), delay = now2 - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now2;\n }\n function nap() {\n var t02, t12 = taskHead, t22, time = Infinity;\n while (t12) {\n if (t12._call) {\n if (time > t12._time) time = t12._time;\n t02 = t12, t12 = t12._next;\n } else {\n t22 = t12._next, t12._next = null;\n t12 = t02 ? t02._next = t22 : taskHead = t22;\n }\n }\n taskTail = t02;\n sleep(time);\n }\n function sleep(time) {\n if (frame) return;\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n }\n function timeout$1(callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n }\n function interval$1(callback, delay, time) {\n var t = new Timer(), total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n }\n exports2.interval = interval$1;\n exports2.now = now;\n exports2.timeout = timeout$1;\n exports2.timer = timer;\n exports2.timerFlush = timerFlush;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-force/dist/d3-force.js\n var require_d3_force = __commonJS({\n \"node_modules/d3-force/dist/d3-force.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_quadtree(), require_d3_collection(), require_d3_dispatch(), require_d3_timer()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-quadtree\", \"d3-collection\", \"d3-dispatch\", \"d3-timer\"], factory) : factory(global2.d3 = global2.d3 || {}, global2.d3, global2.d3, global2.d3, global2.d3);\n })(exports, function(exports2, d3Quadtree, d3Collection, d3Dispatch, d3Timer) {\n \"use strict\";\n function center(x2, y2) {\n var nodes;\n if (x2 == null) x2 = 0;\n if (y2 == null) y2 = 0;\n function force() {\n var i, n = nodes.length, node, sx = 0, sy = 0;\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n for (sx = sx / n - x2, sy = sy / n - y2, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n force.initialize = function(_) {\n nodes = _;\n };\n force.x = function(_) {\n return arguments.length ? (x2 = +_, force) : x2;\n };\n force.y = function(_) {\n return arguments.length ? (y2 = +_, force) : y2;\n };\n return force;\n }\n function constant(x2) {\n return function() {\n return x2;\n };\n }\n function jiggle() {\n return (Math.random() - 0.5) * 1e-6;\n }\n function x(d) {\n return d.x + d.vx;\n }\n function y(d) {\n return d.y + d.vy;\n }\n function collide(radius) {\n var nodes, radii, strength = 1, iterations = 1;\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n function force() {\n var i, n = nodes.length, tree, node, xi, yi, ri, ri2;\n for (var k = 0; k < iterations; ++k) {\n tree = d3Quadtree.quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x2 = xi - data.x - data.vx, y2 = yi - data.y - data.vy, l = x2 * x2 + y2 * y2;\n if (l < r * r) {\n if (x2 === 0) x2 = jiggle(), l += x2 * x2;\n if (y2 === 0) y2 = jiggle(), l += y2 * y2;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x2 *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y2 *= l) * r;\n data.vx -= x2 * (r = 1 - r);\n data.vy -= y2 * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n return force;\n }\n function index(d) {\n return d.index;\n }\n function find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n }\n function link(links) {\n var id = index, strength = defaultStrength, strengths, distance = constant(30), distances, nodes, count, bias, iterations = 1;\n if (links == null) links = [];\n function defaultStrength(link2) {\n return 1 / Math.min(count[link2.source.index], count[link2.target.index]);\n }\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link2, source, target, x2, y2, l, b; i < n; ++i) {\n link2 = links[i], source = link2.source, target = link2.target;\n x2 = target.x + target.vx - source.x - source.vx || jiggle();\n y2 = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x2 * x2 + y2 * y2);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x2 *= l, y2 *= l;\n target.vx -= x2 * (b = bias[i]);\n target.vy -= y2 * b;\n source.vx += x2 * (b = 1 - b);\n source.vy += y2 * b;\n }\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, m = links.length, nodeById = d3Collection.map(nodes, id), link2;\n for (i = 0, count = new Array(n); i < m; ++i) {\n link2 = links[i], link2.index = i;\n if (typeof link2.source !== \"object\") link2.source = find(nodeById, link2.source);\n if (typeof link2.target !== \"object\") link2.target = find(nodeById, link2.target);\n count[link2.source.index] = (count[link2.source.index] || 0) + 1;\n count[link2.target.index] = (count[link2.target.index] || 0) + 1;\n }\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link2 = links[i], bias[i] = count[link2.source.index] / (count[link2.source.index] + count[link2.target.index]);\n }\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n function initializeStrength() {\n if (!nodes) return;\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n function initializeDistance() {\n if (!nodes) return;\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n return force;\n }\n function x$1(d) {\n return d.x;\n }\n function y$1(d) {\n return d.y;\n }\n var initialRadius = 10, initialAngle = Math.PI * (3 - Math.sqrt(5));\n function simulation(nodes) {\n var simulation2, alpha = 1, alphaMin = 1e-3, alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), alphaTarget = 0, velocityDecay = 0.6, forces = d3Collection.map(), stepper = d3Timer.timer(step), event = d3Dispatch.dispatch(\"tick\", \"end\");\n if (nodes == null) nodes = [];\n function step() {\n tick();\n event.call(\"tick\", simulation2);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation2);\n }\n }\n function tick(iterations) {\n var i, n = nodes.length, node;\n if (iterations === void 0) iterations = 1;\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n forces.each(function(force) {\n force(alpha);\n });\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n return simulation2;\n }\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n initializeNodes();\n return simulation2 = {\n tick,\n restart: function() {\n return stepper.restart(step), simulation2;\n },\n stop: function() {\n return stepper.stop(), simulation2;\n },\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation2) : nodes;\n },\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation2) : alpha;\n },\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation2) : alphaMin;\n },\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation2) : +alphaDecay;\n },\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation2) : alphaTarget;\n },\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation2) : 1 - velocityDecay;\n },\n force: function(name2, _) {\n return arguments.length > 1 ? (_ == null ? forces.remove(name2) : forces.set(name2, initializeForce(_)), simulation2) : forces.get(name2);\n },\n find: function(x2, y2, radius) {\n var i = 0, n = nodes.length, dx, dy, d2, node, closest;\n if (radius == null) radius = Infinity;\n else radius *= radius;\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x2 - node.x;\n dy = y2 - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n return closest;\n },\n on: function(name2, _) {\n return arguments.length > 1 ? (event.on(name2, _), simulation2) : event.on(name2);\n }\n };\n }\n function manyBody() {\n var nodes, node, alpha, strength = constant(-30), strengths, distanceMin2 = 1, distanceMax2 = Infinity, theta2 = 0.81;\n function force(_) {\n var i, n = nodes.length, tree = d3Quadtree.quadtree(nodes, x$1, y$1).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node2;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node2 = nodes[i], strengths[node2.index] = +strength(node2, i, nodes);\n }\n function accumulate(quad) {\n var strength2 = 0, q, c, weight = 0, x2, y2, i;\n if (quad.length) {\n for (x2 = y2 = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength2 += q.value, weight += c, x2 += c * q.x, y2 += c * q.y;\n }\n }\n quad.x = x2 / weight;\n quad.y = y2 / weight;\n } else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do\n strength2 += strengths[q.data.index];\n while (q = q.next);\n }\n quad.value = strength2;\n }\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n var x3 = quad.x - node.x, y2 = quad.y - node.y, w = x2 - x1, l = x3 * x3 + y2 * y2;\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x3 === 0) x3 = jiggle(), l += x3 * x3;\n if (y2 === 0) y2 = jiggle(), l += y2 * y2;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x3 * quad.value * alpha / l;\n node.vy += y2 * quad.value * alpha / l;\n }\n return true;\n } else if (quad.length || l >= distanceMax2) return;\n if (quad.data !== node || quad.next) {\n if (x3 === 0) x3 = jiggle(), l += x3 * x3;\n if (y2 === 0) y2 = jiggle(), l += y2 * y2;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n do\n if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x3 * w;\n node.vy += y2 * w;\n }\n while (quad = quad.next);\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n return force;\n }\n function radial(radius, x2, y2) {\n var nodes, strength = constant(0.1), strengths, radiuses;\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x2 == null) x2 = 0;\n if (y2 == null) y2 = 0;\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i], dx = node.x - x2 || 1e-6, dy = node.y - y2 || 1e-6, r = Math.sqrt(dx * dx + dy * dy), k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n force.x = function(_) {\n return arguments.length ? (x2 = +_, force) : x2;\n };\n force.y = function(_) {\n return arguments.length ? (y2 = +_, force) : y2;\n };\n return force;\n }\n function x$2(x2) {\n var strength = constant(0.1), nodes, strengths, xz;\n if (typeof x2 !== \"function\") x2 = constant(x2 == null ? 0 : +x2);\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x2(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n force.x = function(_) {\n return arguments.length ? (x2 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x2;\n };\n return force;\n }\n function y$2(y2) {\n var strength = constant(0.1), nodes, strengths, yz;\n if (typeof y2 !== \"function\") y2 = constant(y2 == null ? 0 : +y2);\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y2(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n force.y = function(_) {\n return arguments.length ? (y2 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y2;\n };\n return force;\n }\n exports2.forceCenter = center;\n exports2.forceCollide = collide;\n exports2.forceLink = link;\n exports2.forceManyBody = manyBody;\n exports2.forceRadial = radial;\n exports2.forceSimulation = simulation;\n exports2.forceX = x$2;\n exports2.forceY = y$2;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-path/dist/d3-path.js\n var require_d3_path = __commonJS({\n \"node_modules/d3-path/dist/d3-path.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n var pi = Math.PI, tau = 2 * pi, epsilon = 1e-6, tauEpsilon = tau - epsilon;\n function Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null;\n this._ = \"\";\n }\n function path() {\n return new Path();\n }\n Path.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;\n if (r < 0) throw new Error(\"negative radius: \" + r);\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } else if (!(l01_2 > epsilon)) ;\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } else {\n var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21;\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x + dx, y0 = y + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;\n if (r < 0) throw new Error(\"negative radius: \" + r);\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n if (!r) return;\n if (da < 0) da = da % tau + tau;\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function() {\n return this._;\n }\n };\n exports2.path = path;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-shape/dist/d3-shape.js\n var require_d3_shape = __commonJS({\n \"node_modules/d3-shape/dist/d3-shape.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_path()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-path\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}, global2.d3));\n })(exports, function(exports2, d3Path) {\n \"use strict\";\n function constant(x2) {\n return function constant2() {\n return x2;\n };\n }\n var abs = Math.abs;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var max = Math.max;\n var min = Math.min;\n var sin = Math.sin;\n var sqrt = Math.sqrt;\n var epsilon = 1e-12;\n var pi = Math.PI;\n var halfPi = pi / 2;\n var tau = 2 * pi;\n function acos(x2) {\n return x2 > 1 ? 0 : x2 < -1 ? pi : Math.acos(x2);\n }\n function asin(x2) {\n return x2 >= 1 ? halfPi : x2 <= -1 ? -halfPi : Math.asin(x2);\n }\n function arcInnerRadius(d) {\n return d.innerRadius;\n }\n function arcOuterRadius(d) {\n return d.outerRadius;\n }\n function arcStartAngle(d) {\n return d.startAngle;\n }\n function arcEndAngle(d) {\n return d.endAngle;\n }\n function arcPadAngle(d) {\n return d && d.padAngle;\n }\n function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n }\n function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D2 = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D2 * D2)), cx0 = (D2 * dy - dx * d) / d2, cy0 = (-D2 * dx - dy * d) / d2, cx1 = (D2 * dy + dx * d) / d2, cy1 = (-D2 * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n }\n function arc() {\n var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null;\n function arc2() {\n var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs(a1 - a0), cw = a1 > a0;\n if (!context) context = buffer = d3Path.path();\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n } else {\n var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t02, t12;\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10);\n if (rc > epsilon) {\n var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc;\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n else if (rc1 > epsilon) {\n t02 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t12 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n context.moveTo(t02.cx + t02.x01, t02.cy + t02.y01);\n if (rc1 < rc) context.arc(t02.cx, t02.cy, rc1, atan2(t02.y01, t02.x01), atan2(t12.y01, t12.x01), !cw);\n else {\n context.arc(t02.cx, t02.cy, rc1, atan2(t02.y01, t02.x01), atan2(t02.y11, t02.x11), !cw);\n context.arc(0, 0, r1, atan2(t02.cy + t02.y11, t02.cx + t02.x11), atan2(t12.cy + t12.y11, t12.cx + t12.x11), !cw);\n context.arc(t12.cx, t12.cy, rc1, atan2(t12.y11, t12.x11), atan2(t12.y01, t12.x01), !cw);\n }\n } else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n else if (rc0 > epsilon) {\n t02 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t12 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n context.lineTo(t02.cx + t02.x01, t02.cy + t02.y01);\n if (rc0 < rc) context.arc(t02.cx, t02.cy, rc0, atan2(t02.y01, t02.x01), atan2(t12.y01, t12.x01), !cw);\n else {\n context.arc(t02.cx, t02.cy, rc0, atan2(t02.y01, t02.x01), atan2(t02.y11, t02.x11), !cw);\n context.arc(0, 0, r0, atan2(t02.cy + t02.y11, t02.cx + t02.x11), atan2(t12.cy + t12.y11, t12.cx + t12.x11), cw);\n context.arc(t12.cx, t12.cy, rc0, atan2(t12.y11, t12.x11), atan2(t12.y01, t12.x01), !cw);\n }\n } else context.arc(0, 0, r0, a10, a00, cw);\n }\n context.closePath();\n if (buffer) return context = null, buffer + \"\" || null;\n }\n arc2.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a2 = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a2) * r, sin(a2) * r];\n };\n arc2.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc2) : innerRadius;\n };\n arc2.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc2) : outerRadius;\n };\n arc2.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc2) : cornerRadius;\n };\n arc2.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc2) : padRadius;\n };\n arc2.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc2) : startAngle;\n };\n arc2.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc2) : endAngle;\n };\n arc2.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc2) : padAngle;\n };\n arc2.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, arc2) : context;\n };\n return arc2;\n }\n function Linear(context) {\n this._context = context;\n }\n Linear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n // proceed\n default:\n this._context.lineTo(x2, y2);\n break;\n }\n }\n };\n function curveLinear(context) {\n return new Linear(context);\n }\n function x(p) {\n return p[0];\n }\n function y(p) {\n return p[1];\n }\n function line() {\n var x$1 = x, y$1 = y, defined = constant(true), context = null, curve = curveLinear, output = null;\n function line2(data) {\n var i, n = data.length, d, defined0 = false, buffer;\n if (context == null) output = curve(buffer = d3Path.path());\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data));\n }\n if (buffer) return output = null, buffer + \"\" || null;\n }\n line2.x = function(_) {\n return arguments.length ? (x$1 = typeof _ === \"function\" ? _ : constant(+_), line2) : x$1;\n };\n line2.y = function(_) {\n return arguments.length ? (y$1 = typeof _ === \"function\" ? _ : constant(+_), line2) : y$1;\n };\n line2.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line2) : defined;\n };\n line2.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line2) : curve;\n };\n line2.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line2) : context;\n };\n return line2;\n }\n function area() {\n var x0 = x, x1 = null, y0 = constant(0), y1 = y, defined = constant(true), context = null, curve = curveLinear, output = null;\n function area2(data) {\n var i, j, k2, n = data.length, d, defined0 = false, buffer, x0z = new Array(n), y0z = new Array(n);\n if (context == null) output = curve(buffer = d3Path.path());\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k2 = i - 1; k2 >= j; --k2) {\n output.point(x0z[k2], y0z[k2]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n if (buffer) return output = null, buffer + \"\" || null;\n }\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n area2.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area2) : x0;\n };\n area2.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area2) : x0;\n };\n area2.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area2) : x1;\n };\n area2.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area2) : y0;\n };\n area2.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area2) : y0;\n };\n area2.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area2) : y1;\n };\n area2.lineX0 = area2.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n area2.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n area2.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n area2.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area2) : defined;\n };\n area2.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area2) : curve;\n };\n area2.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area2) : context;\n };\n return area2;\n }\n function descending(a2, b) {\n return b < a2 ? -1 : b > a2 ? 1 : b >= a2 ? 0 : NaN;\n }\n function identity2(d) {\n return d;\n }\n function pie() {\n var value = identity2, sortValues = descending, sort = null, startAngle = constant(0), endAngle = constant(tau), padAngle = constant(0);\n function pie2(data) {\n var i, n = data.length, j, k2, sum2 = 0, index = new Array(n), arcs = new Array(n), a0 = +startAngle.apply(this, arguments), da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), a1, p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), pa = p * (da < 0 ? -1 : 1), v;\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum2 += v;\n }\n }\n if (sortValues != null) index.sort(function(i2, j2) {\n return sortValues(arcs[i2], arcs[j2]);\n });\n else if (sort != null) index.sort(function(i2, j2) {\n return sort(data[i2], data[j2]);\n });\n for (i = 0, k2 = sum2 ? (da - n * pa) / sum2 : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k2 : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n return arcs;\n }\n pie2.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie2) : value;\n };\n pie2.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie2) : sortValues;\n };\n pie2.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie2) : sort;\n };\n pie2.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie2) : startAngle;\n };\n pie2.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie2) : endAngle;\n };\n pie2.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie2) : padAngle;\n };\n return pie2;\n }\n var curveRadialLinear = curveRadial(curveLinear);\n function Radial(curve) {\n this._curve = curve;\n }\n Radial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a2, r) {\n this._curve.point(r * Math.sin(a2), r * -Math.cos(a2));\n }\n };\n function curveRadial(curve) {\n function radial(context) {\n return new Radial(curve(context));\n }\n radial._curve = curve;\n return radial;\n }\n function lineRadial(l) {\n var c2 = l.curve;\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n l.curve = function(_) {\n return arguments.length ? c2(curveRadial(_)) : c2()._curve;\n };\n return l;\n }\n function lineRadial$1() {\n return lineRadial(line().curve(curveRadialLinear));\n }\n function areaRadial() {\n var a2 = area().curve(curveRadialLinear), c2 = a2.curve, x0 = a2.lineX0, x1 = a2.lineX1, y0 = a2.lineY0, y1 = a2.lineY1;\n a2.angle = a2.x, delete a2.x;\n a2.startAngle = a2.x0, delete a2.x0;\n a2.endAngle = a2.x1, delete a2.x1;\n a2.radius = a2.y, delete a2.y;\n a2.innerRadius = a2.y0, delete a2.y0;\n a2.outerRadius = a2.y1, delete a2.y1;\n a2.lineStartAngle = function() {\n return lineRadial(x0());\n }, delete a2.lineX0;\n a2.lineEndAngle = function() {\n return lineRadial(x1());\n }, delete a2.lineX1;\n a2.lineInnerRadius = function() {\n return lineRadial(y0());\n }, delete a2.lineY0;\n a2.lineOuterRadius = function() {\n return lineRadial(y1());\n }, delete a2.lineY1;\n a2.curve = function(_) {\n return arguments.length ? c2(curveRadial(_)) : c2()._curve;\n };\n return a2;\n }\n function pointRadial(x2, y2) {\n return [(y2 = +y2) * Math.cos(x2 -= Math.PI / 2), y2 * Math.sin(x2)];\n }\n var slice = Array.prototype.slice;\n function linkSource(d) {\n return d.source;\n }\n function linkTarget(d) {\n return d.target;\n }\n function link(curve) {\n var source = linkSource, target = linkTarget, x$1 = x, y$1 = y, context = null;\n function link2() {\n var buffer, argv = slice.call(arguments), s2 = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = d3Path.path();\n curve(context, +x$1.apply(this, (argv[0] = s2, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n link2.source = function(_) {\n return arguments.length ? (source = _, link2) : source;\n };\n link2.target = function(_) {\n return arguments.length ? (target = _, link2) : target;\n };\n link2.x = function(_) {\n return arguments.length ? (x$1 = typeof _ === \"function\" ? _ : constant(+_), link2) : x$1;\n };\n link2.y = function(_) {\n return arguments.length ? (y$1 = typeof _ === \"function\" ? _ : constant(+_), link2) : y$1;\n };\n link2.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, link2) : context;\n };\n return link2;\n }\n function curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n }\n function curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n }\n function curveRadial$1(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0), p1 = pointRadial(x0, y0 = (y0 + y1) / 2), p2 = pointRadial(x1, y0), p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n }\n function linkHorizontal() {\n return link(curveHorizontal);\n }\n function linkVertical() {\n return link(curveVertical);\n }\n function linkRadial() {\n var l = link(curveRadial$1);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n }\n var circle = {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n };\n var cross = {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n };\n var tan30 = Math.sqrt(1 / 3), tan30_2 = tan30 * 2;\n var diamond = {\n draw: function(context, size) {\n var y2 = Math.sqrt(size / tan30_2), x2 = y2 * tan30;\n context.moveTo(0, -y2);\n context.lineTo(x2, 0);\n context.lineTo(0, y2);\n context.lineTo(-x2, 0);\n context.closePath();\n }\n };\n var ka = 0.8908130915292852, kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), kx = Math.sin(tau / 10) * kr, ky = -Math.cos(tau / 10) * kr;\n var star = {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka), x2 = kx * r, y2 = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x2, y2);\n for (var i = 1; i < 5; ++i) {\n var a2 = tau * i / 5, c2 = Math.cos(a2), s2 = Math.sin(a2);\n context.lineTo(s2 * r, -c2 * r);\n context.lineTo(c2 * x2 - s2 * y2, s2 * x2 + c2 * y2);\n }\n context.closePath();\n }\n };\n var square = {\n draw: function(context, size) {\n var w = Math.sqrt(size), x2 = -w / 2;\n context.rect(x2, x2, w, w);\n }\n };\n var sqrt3 = Math.sqrt(3);\n var triangle = {\n draw: function(context, size) {\n var y2 = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y2 * 2);\n context.lineTo(-sqrt3 * y2, -y2);\n context.lineTo(sqrt3 * y2, -y2);\n context.closePath();\n }\n };\n var c = -0.5, s = Math.sqrt(3) / 2, k = 1 / Math.sqrt(12), a = (k / 2 + 1) * 3;\n var wye = {\n draw: function(context, size) {\n var r = Math.sqrt(size / a), x0 = r / 2, y0 = r * k, x1 = x0, y1 = r * k + r, x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n };\n var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n ];\n function symbol() {\n var type = constant(circle), size = constant(64), context = null;\n function symbol2() {\n var buffer;\n if (!context) context = buffer = d3Path.path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n symbol2.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol2) : type;\n };\n symbol2.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol2) : size;\n };\n symbol2.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol2) : context;\n };\n return symbol2;\n }\n function noop() {\n }\n function point(that, x2, y2) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x2) / 6,\n (that._y0 + 4 * that._y1 + y2) / 6\n );\n }\n function Basis(context) {\n this._context = context;\n }\n Basis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3:\n point(this, this._x1, this._y1);\n // proceed\n case 2:\n this._context.lineTo(this._x1, this._y1);\n break;\n }\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);\n // proceed\n default:\n point(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = x2;\n this._y0 = this._y1, this._y1 = y2;\n }\n };\n function basis2(context) {\n return new Basis(context);\n }\n function BasisClosed(context) {\n this._context = context;\n }\n BasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x2 = x2, this._y2 = y2;\n break;\n case 1:\n this._point = 2;\n this._x3 = x2, this._y3 = y2;\n break;\n case 2:\n this._point = 3;\n this._x4 = x2, this._y4 = y2;\n this._context.moveTo((this._x0 + 4 * this._x1 + x2) / 6, (this._y0 + 4 * this._y1 + y2) / 6);\n break;\n default:\n point(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = x2;\n this._y0 = this._y1, this._y1 = y2;\n }\n };\n function basisClosed(context) {\n return new BasisClosed(context);\n }\n function BasisOpen(context) {\n this._context = context;\n }\n BasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n var x0 = (this._x0 + 4 * this._x1 + x2) / 6, y0 = (this._y0 + 4 * this._y1 + y2) / 6;\n this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n point(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = x2;\n this._y0 = this._y1, this._y1 = y2;\n }\n };\n function basisOpen(context) {\n return new BasisOpen(context);\n }\n function Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n }\n Bundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x2 = this._x, y2 = this._y, j = x2.length - 1;\n if (j > 0) {\n var x0 = x2[0], y0 = y2[0], dx = x2[j] - x0, dy = y2[j] - y0, i = -1, t;\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x2[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y2[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x2, y2) {\n this._x.push(+x2);\n this._y.push(+y2);\n }\n };\n var bundle = function custom(beta) {\n function bundle2(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n bundle2.beta = function(beta2) {\n return custom(+beta2);\n };\n return bundle2;\n }(0.85);\n function point$1(that, x2, y2) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x2),\n that._y2 + that._k * (that._y1 - y2),\n that._x2,\n that._y2\n );\n }\n function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n }\n Cardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n break;\n case 3:\n point$1(this, this._x1, this._y1);\n break;\n }\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n this._x1 = x2, this._y1 = y2;\n break;\n case 2:\n this._point = 3;\n // proceed\n default:\n point$1(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var cardinal = function custom(tension) {\n function cardinal2(context) {\n return new Cardinal(context, tension);\n }\n cardinal2.tension = function(tension2) {\n return custom(+tension2);\n };\n return cardinal2;\n }(0);\n function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n }\n CardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x2, this._y3 = y2;\n break;\n case 1:\n this._point = 2;\n this._context.moveTo(this._x4 = x2, this._y4 = y2);\n break;\n case 2:\n this._point = 3;\n this._x5 = x2, this._y5 = y2;\n break;\n default:\n point$1(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var cardinalClosed = function custom(tension) {\n function cardinal2(context) {\n return new CardinalClosed(context, tension);\n }\n cardinal2.tension = function(tension2) {\n return custom(+tension2);\n };\n return cardinal2;\n }(0);\n function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n }\n CardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n point$1(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var cardinalOpen = function custom(tension) {\n function cardinal2(context) {\n return new CardinalOpen(context, tension);\n }\n cardinal2.tension = function(tension2) {\n return custom(+tension2);\n };\n return cardinal2;\n }(0);\n function point$2(that, x2, y2) {\n var x1 = that._x1, y1 = that._y1, x22 = that._x2, y22 = that._y2;\n if (that._l01_a > epsilon) {\n var a2 = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a2 - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a2 - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x22 = (x22 * b + that._x1 * that._l23_2a - x2 * that._l12_2a) / m;\n y22 = (y22 * b + that._y1 * that._l23_2a - y2 * that._l12_2a) / m;\n }\n that._context.bezierCurveTo(x1, y1, x22, y22, that._x2, that._y2);\n }\n function CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n }\n CatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n break;\n case 3:\n this.point(this._x2, this._y2);\n break;\n }\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n if (this._point) {\n var x23 = this._x2 - x2, y23 = this._y2 - y2;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n // proceed\n default:\n point$2(this, x2, y2);\n break;\n }\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var catmullRom = function custom(alpha) {\n function catmullRom2(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n catmullRom2.alpha = function(alpha2) {\n return custom(+alpha2);\n };\n return catmullRom2;\n }(0.5);\n function CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n }\n CatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n if (this._point) {\n var x23 = this._x2 - x2, y23 = this._y2 - y2;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x2, this._y3 = y2;\n break;\n case 1:\n this._point = 2;\n this._context.moveTo(this._x4 = x2, this._y4 = y2);\n break;\n case 2:\n this._point = 3;\n this._x5 = x2, this._y5 = y2;\n break;\n default:\n point$2(this, x2, y2);\n break;\n }\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var catmullRomClosed = function custom(alpha) {\n function catmullRom2(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n catmullRom2.alpha = function(alpha2) {\n return custom(+alpha2);\n };\n return catmullRom2;\n }(0.5);\n function CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n }\n CatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n if (this._point) {\n var x23 = this._x2 - x2, y23 = this._y2 - y2;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n point$2(this, x2, y2);\n break;\n }\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var catmullRomOpen = function custom(alpha) {\n function catmullRom2(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n catmullRom2.alpha = function(alpha2) {\n return custom(+alpha2);\n };\n return catmullRom2;\n }(0.5);\n function LinearClosed(context) {\n this._context = context;\n }\n LinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n if (this._point) this._context.lineTo(x2, y2);\n else this._point = 1, this._context.moveTo(x2, y2);\n }\n };\n function linearClosed(context) {\n return new LinearClosed(context);\n }\n function sign(x2) {\n return x2 < 0 ? -1 : 1;\n }\n function slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n }\n function slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n }\n function point$3(that, t02, t12) {\n var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t02, x1 - dx, y1 - dx * t12, x1, y1);\n }\n function MonotoneX(context) {\n this._context = context;\n }\n MonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x1, this._y1);\n break;\n case 3:\n point$3(this, this._t0, slope2(this, this._t0));\n break;\n }\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n var t12 = NaN;\n x2 = +x2, y2 = +y2;\n if (x2 === this._x1 && y2 === this._y1) return;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n point$3(this, slope2(this, t12 = slope3(this, x2, y2)), t12);\n break;\n default:\n point$3(this, this._t0, t12 = slope3(this, x2, y2));\n break;\n }\n this._x0 = this._x1, this._x1 = x2;\n this._y0 = this._y1, this._y1 = y2;\n this._t0 = t12;\n }\n };\n function MonotoneY(context) {\n this._context = new ReflectContext(context);\n }\n (MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x2, y2) {\n MonotoneX.prototype.point.call(this, y2, x2);\n };\n function ReflectContext(context) {\n this._context = context;\n }\n ReflectContext.prototype = {\n moveTo: function(x2, y2) {\n this._context.moveTo(y2, x2);\n },\n closePath: function() {\n this._context.closePath();\n },\n lineTo: function(x2, y2) {\n this._context.lineTo(y2, x2);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x3, y3) {\n this._context.bezierCurveTo(y1, x1, y2, x2, y3, x3);\n }\n };\n function monotoneX(context) {\n return new MonotoneX(context);\n }\n function monotoneY(context) {\n return new MonotoneY(context);\n }\n function Natural(context) {\n this._context = context;\n }\n Natural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x2 = this._x, y2 = this._y, n = x2.length;\n if (n) {\n this._line ? this._context.lineTo(x2[0], y2[0]) : this._context.moveTo(x2[0], y2[0]);\n if (n === 2) {\n this._context.lineTo(x2[1], y2[1]);\n } else {\n var px = controlPoints(x2), py = controlPoints(y2);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x2[i1], y2[i1]);\n }\n }\n }\n if (this._line || this._line !== 0 && n === 1) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x2, y2) {\n this._x.push(+x2);\n this._y.push(+y2);\n }\n };\n function controlPoints(x2) {\n var i, n = x2.length - 1, m, a2 = new Array(n), b = new Array(n), r = new Array(n);\n a2[0] = 0, b[0] = 2, r[0] = x2[0] + 2 * x2[1];\n for (i = 1; i < n - 1; ++i) a2[i] = 1, b[i] = 4, r[i] = 4 * x2[i] + 2 * x2[i + 1];\n a2[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x2[n - 1] + x2[n];\n for (i = 1; i < n; ++i) m = a2[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a2[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a2[i] = (r[i] - a2[i + 1]) / b[i];\n b[n - 1] = (x2[n] + a2[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x2[i + 1] - a2[i + 1];\n return [a2, b];\n }\n function natural(context) {\n return new Natural(context);\n }\n function Step(context, t) {\n this._context = context;\n this._t = t;\n }\n Step.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y2);\n this._context.lineTo(x2, y2);\n } else {\n var x1 = this._x * (1 - this._t) + x2 * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y2);\n }\n break;\n }\n }\n this._x = x2, this._y = y2;\n }\n };\n function step(context) {\n return new Step(context, 0.5);\n }\n function stepBefore(context) {\n return new Step(context, 0);\n }\n function stepAfter(context) {\n return new Step(context, 1);\n }\n function none(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n }\n function none$1(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n }\n function stackValue(d, key) {\n return d[key];\n }\n function stack() {\n var keys = constant([]), order = none$1, offset = none, value = stackValue;\n function stack2(data) {\n var kz = keys.apply(this, arguments), i, m = data.length, n = kz.length, sz = new Array(n), oz;\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n offset(sz, oz);\n return sz;\n }\n stack2.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack2) : keys;\n };\n stack2.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack2) : value;\n };\n stack2.order = function(_) {\n return arguments.length ? (order = _ == null ? none$1 : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack2) : order;\n };\n stack2.offset = function(_) {\n return arguments.length ? (offset = _ == null ? none : _, stack2) : offset;\n };\n return stack2;\n }\n function expand(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y2; j < m; ++j) {\n for (y2 = i = 0; i < n; ++i) y2 += series[i][j][1] || 0;\n if (y2) for (i = 0; i < n; ++i) series[i][j][1] /= y2;\n }\n none(series, order);\n }\n function diverging(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n }\n function silhouette(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y2 = 0; i < n; ++i) y2 += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y2 / 2;\n }\n none(series, order);\n }\n function wiggle(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y2 = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]], sij0 = si[j][1] || 0, sij1 = si[j - 1][1] || 0, s3 = (sij0 - sij1) / 2;\n for (var k2 = 0; k2 < i; ++k2) {\n var sk = series[order[k2]], skj0 = sk[j][1] || 0, skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y2;\n if (s1) y2 -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y2;\n none(series, order);\n }\n function appearance(series) {\n var peaks = series.map(peak);\n return none$1(series).sort(function(a2, b) {\n return peaks[a2] - peaks[b];\n });\n }\n function peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n }\n function ascending(series) {\n var sums = series.map(sum);\n return none$1(series).sort(function(a2, b) {\n return sums[a2] - sums[b];\n });\n }\n function sum(series) {\n var s2 = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s2 += v;\n return s2;\n }\n function descending$1(series) {\n return ascending(series).reverse();\n }\n function insideOut(series) {\n var n = series.length, i, j, sums = series.map(sum), order = appearance(series), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n }\n function reverse(series) {\n return none$1(series).reverse();\n }\n exports2.arc = arc;\n exports2.area = area;\n exports2.areaRadial = areaRadial;\n exports2.curveBasis = basis2;\n exports2.curveBasisClosed = basisClosed;\n exports2.curveBasisOpen = basisOpen;\n exports2.curveBundle = bundle;\n exports2.curveCardinal = cardinal;\n exports2.curveCardinalClosed = cardinalClosed;\n exports2.curveCardinalOpen = cardinalOpen;\n exports2.curveCatmullRom = catmullRom;\n exports2.curveCatmullRomClosed = catmullRomClosed;\n exports2.curveCatmullRomOpen = catmullRomOpen;\n exports2.curveLinear = curveLinear;\n exports2.curveLinearClosed = linearClosed;\n exports2.curveMonotoneX = monotoneX;\n exports2.curveMonotoneY = monotoneY;\n exports2.curveNatural = natural;\n exports2.curveStep = step;\n exports2.curveStepAfter = stepAfter;\n exports2.curveStepBefore = stepBefore;\n exports2.line = line;\n exports2.lineRadial = lineRadial$1;\n exports2.linkHorizontal = linkHorizontal;\n exports2.linkRadial = linkRadial;\n exports2.linkVertical = linkVertical;\n exports2.pie = pie;\n exports2.pointRadial = pointRadial;\n exports2.radialArea = areaRadial;\n exports2.radialLine = lineRadial$1;\n exports2.stack = stack;\n exports2.stackOffsetDiverging = diverging;\n exports2.stackOffsetExpand = expand;\n exports2.stackOffsetNone = none;\n exports2.stackOffsetSilhouette = silhouette;\n exports2.stackOffsetWiggle = wiggle;\n exports2.stackOrderAppearance = appearance;\n exports2.stackOrderAscending = ascending;\n exports2.stackOrderDescending = descending$1;\n exports2.stackOrderInsideOut = insideOut;\n exports2.stackOrderNone = none$1;\n exports2.stackOrderReverse = reverse;\n exports2.symbol = symbol;\n exports2.symbolCircle = circle;\n exports2.symbolCross = cross;\n exports2.symbolDiamond = diamond;\n exports2.symbolSquare = square;\n exports2.symbolStar = star;\n exports2.symbolTriangle = triangle;\n exports2.symbolWye = wye;\n exports2.symbols = symbols;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/@plotly/d3-sankey/build/d3-sankey.js\n var require_d3_sankey = __commonJS({\n \"node_modules/@plotly/d3-sankey/build/d3-sankey.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_array(), require_d3_collection(), require_d3_shape()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-array\", \"d3-collection\", \"d3-shape\"], factory) : factory(global2.d3 = global2.d3 || {}, global2.d3, global2.d3, global2.d3);\n })(exports, function(exports2, d3Array, d3Collection, d3Shape) {\n \"use strict\";\n function targetDepth(d) {\n return d.target.depth;\n }\n function left(node) {\n return node.depth;\n }\n function right(node, n) {\n return n - 1 - node.height;\n }\n function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n }\n function center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? d3Array.min(node.sourceLinks, targetDepth) - 1 : 0;\n }\n function constant(x) {\n return function() {\n return x;\n };\n }\n function ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n }\n function ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n }\n function ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n }\n function value(d) {\n return d.value;\n }\n function nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n }\n function weightedSource(link) {\n return nodeCenter(link.source) * link.value;\n }\n function weightedTarget(link) {\n return nodeCenter(link.target) * link.value;\n }\n function defaultId(d) {\n return d.index;\n }\n function defaultNodes(graph) {\n return graph.nodes;\n }\n function defaultLinks(graph) {\n return graph.links;\n }\n function find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n }\n var sankey = function() {\n var x0 = 0, y0 = 0, x1 = 1, y1 = 1, dx = 24, py = 8, id = defaultId, align = justify, nodes = defaultNodes, links = defaultLinks, iterations = 32, maxPaddedSpace = 2 / 3;\n function sankey2() {\n var graph = { nodes: nodes.apply(null, arguments), links: links.apply(null, arguments) };\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeBreadths(graph, iterations);\n computeLinkBreadths(graph);\n return graph;\n }\n sankey2.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n sankey2.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey2) : id;\n };\n sankey2.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey2) : align;\n };\n sankey2.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey2) : dx;\n };\n sankey2.nodePadding = function(_) {\n return arguments.length ? (py = +_, sankey2) : py;\n };\n sankey2.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey2) : nodes;\n };\n sankey2.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey2) : links;\n };\n sankey2.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey2) : [x1 - x0, y1 - y0];\n };\n sankey2.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey2) : [[x0, y0], [x1, y1]];\n };\n sankey2.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey2) : iterations;\n };\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function(node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = d3Collection.map(graph.nodes, id);\n graph.links.forEach(function(link, i) {\n link.index = i;\n var source = link.source, target = link.target;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n }\n function computeNodeValues(graph) {\n graph.nodes.forEach(function(node) {\n node.value = Math.max(\n d3Array.sum(node.sourceLinks, value),\n d3Array.sum(node.targetLinks, value)\n );\n });\n }\n function computeNodeDepths(graph) {\n var nodes2, next, x;\n for (nodes2 = graph.nodes, next = [], x = 0; nodes2.length; ++x, nodes2 = next, next = []) {\n nodes2.forEach(function(node) {\n node.depth = x;\n node.sourceLinks.forEach(function(link) {\n if (next.indexOf(link.target) < 0) {\n next.push(link.target);\n }\n });\n });\n }\n for (nodes2 = graph.nodes, next = [], x = 0; nodes2.length; ++x, nodes2 = next, next = []) {\n nodes2.forEach(function(node) {\n node.height = x;\n node.targetLinks.forEach(function(link) {\n if (next.indexOf(link.source) < 0) {\n next.push(link.source);\n }\n });\n });\n }\n var kx = (x1 - x0 - dx) / (x - 1);\n graph.nodes.forEach(function(node) {\n node.x1 = (node.x0 = x0 + Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x)))) * kx) + dx;\n });\n }\n function computeNodeBreadths(graph) {\n var columns = d3Collection.nest().key(function(d) {\n return d.x0;\n }).sortKeys(d3Array.ascending).entries(graph.nodes).map(function(d) {\n return d.values;\n });\n initializeNodeBreadth();\n resolveCollisions();\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxRightToLeft(alpha *= 0.99);\n resolveCollisions();\n relaxLeftToRight(alpha);\n resolveCollisions();\n }\n function initializeNodeBreadth() {\n var L = d3Array.max(columns, function(nodes2) {\n return nodes2.length;\n });\n var maxNodePadding = maxPaddedSpace * (y1 - y0) / (L - 1);\n if (py > maxNodePadding) py = maxNodePadding;\n var ky = d3Array.min(columns, function(nodes2) {\n return (y1 - y0 - (nodes2.length - 1) * py) / d3Array.sum(nodes2, value);\n });\n columns.forEach(function(nodes2) {\n nodes2.forEach(function(node, i) {\n node.y1 = (node.y0 = i) + node.value * ky;\n });\n });\n graph.links.forEach(function(link) {\n link.width = link.value * ky;\n });\n }\n function relaxLeftToRight(alpha2) {\n columns.forEach(function(nodes2) {\n nodes2.forEach(function(node) {\n if (node.targetLinks.length) {\n var dy = (d3Array.sum(node.targetLinks, weightedSource) / d3Array.sum(node.targetLinks, value) - nodeCenter(node)) * alpha2;\n node.y0 += dy, node.y1 += dy;\n }\n });\n });\n }\n function relaxRightToLeft(alpha2) {\n columns.slice().reverse().forEach(function(nodes2) {\n nodes2.forEach(function(node) {\n if (node.sourceLinks.length) {\n var dy = (d3Array.sum(node.sourceLinks, weightedTarget) / d3Array.sum(node.sourceLinks, value) - nodeCenter(node)) * alpha2;\n node.y0 += dy, node.y1 += dy;\n }\n });\n });\n }\n function resolveCollisions() {\n columns.forEach(function(nodes2) {\n var node, dy, y = y0, n2 = nodes2.length, i;\n nodes2.sort(ascendingBreadth);\n for (i = 0; i < n2; ++i) {\n node = nodes2[i];\n dy = y - node.y0;\n if (dy > 0) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n dy = y - py - y1;\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy;\n for (i = n2 - 2; i >= 0; --i) {\n node = nodes2[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function(node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function(node) {\n var y02 = node.y0, y12 = y02;\n node.sourceLinks.forEach(function(link) {\n link.y0 = y02 + link.width / 2, y02 += link.width;\n });\n node.targetLinks.forEach(function(link) {\n link.y1 = y12 + link.width / 2, y12 += link.width;\n });\n });\n }\n return sankey2;\n };\n function horizontalSource(d) {\n return [d.source.x1, d.y0];\n }\n function horizontalTarget(d) {\n return [d.target.x0, d.y1];\n }\n var sankeyLinkHorizontal = function() {\n return d3Shape.linkHorizontal().source(horizontalSource).target(horizontalTarget);\n };\n exports2.sankey = sankey;\n exports2.sankeyCenter = center;\n exports2.sankeyLeft = left;\n exports2.sankeyRight = right;\n exports2.sankeyJustify = justify;\n exports2.sankeyLinkHorizontal = sankeyLinkHorizontal;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/elementary-circuits-directed-graph/johnson.js\n var require_johnson = __commonJS({\n \"node_modules/elementary-circuits-directed-graph/johnson.js\"(exports, module) {\n var tarjan = require_scc();\n module.exports = function findCircuits(edges, cb) {\n var circuits = [];\n var stack = [];\n var blocked = [];\n var B2 = {};\n var Ak = [];\n var s;\n function unblock(u) {\n blocked[u] = false;\n if (B2.hasOwnProperty(u)) {\n Object.keys(B2[u]).forEach(function(w) {\n delete B2[u][w];\n if (blocked[w]) {\n unblock(w);\n }\n });\n }\n }\n function circuit(v) {\n var found = false;\n stack.push(v);\n blocked[v] = true;\n var i2;\n var w;\n for (i2 = 0; i2 < Ak[v].length; i2++) {\n w = Ak[v][i2];\n if (w === s) {\n output(s, stack);\n found = true;\n } else if (!blocked[w]) {\n found = circuit(w);\n }\n }\n if (found) {\n unblock(v);\n } else {\n for (i2 = 0; i2 < Ak[v].length; i2++) {\n w = Ak[v][i2];\n var entry = B2[w];\n if (!entry) {\n entry = {};\n B2[w] = entry;\n }\n entry[w] = true;\n }\n }\n stack.pop();\n return found;\n }\n function output(start, stack2) {\n var cycle = [].concat(stack2).concat(start);\n if (cb) {\n cb(circuit);\n } else {\n circuits.push(cycle);\n }\n }\n function subgraph(minId) {\n for (var i2 = 0; i2 < edges.length; i2++) {\n if (i2 < minId) edges[i2] = [];\n edges[i2] = edges[i2].filter(function(i3) {\n return i3 >= minId;\n });\n }\n }\n function adjacencyStructureSCC(from) {\n subgraph(from);\n var g = edges;\n var sccs = tarjan(g);\n var ccs = sccs.components.filter(function(scc) {\n return scc.length > 1;\n });\n var leastVertex = Infinity;\n var leastVertexComponent;\n for (var i2 = 0; i2 < ccs.length; i2++) {\n for (var j2 = 0; j2 < ccs[i2].length; j2++) {\n if (ccs[i2][j2] < leastVertex) {\n leastVertex = ccs[i2][j2];\n leastVertexComponent = i2;\n }\n }\n }\n var cc = ccs[leastVertexComponent];\n if (!cc) return false;\n var adjList = edges.map(function(l, index) {\n if (cc.indexOf(index) === -1) return [];\n return l.filter(function(i3) {\n return cc.indexOf(i3) !== -1;\n });\n });\n return {\n leastVertex,\n adjList\n };\n }\n s = 0;\n var n = edges.length;\n while (s < n) {\n var p = adjacencyStructureSCC(s);\n s = p.leastVertex;\n Ak = p.adjList;\n if (Ak) {\n for (var i = 0; i < Ak.length; i++) {\n for (var j = 0; j < Ak[i].length; j++) {\n var vertexId = Ak[i][j];\n blocked[+vertexId] = false;\n B2[vertexId] = {};\n }\n }\n circuit(s);\n s = s + 1;\n } else {\n s = n;\n }\n }\n if (cb) {\n return;\n } else {\n return circuits;\n }\n };\n }\n });\n\n // node_modules/@plotly/d3-sankey-circular/dist/d3-sankey-circular.js\n var require_d3_sankey_circular = __commonJS({\n \"node_modules/@plotly/d3-sankey-circular/dist/d3-sankey-circular.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_array(), require_d3_collection(), require_d3_shape(), require_johnson()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-array\", \"d3-collection\", \"d3-shape\", \"elementary-circuits-directed-graph\"], factory) : factory(global2.d3 = global2.d3 || {}, global2.d3, global2.d3, global2.d3, null);\n })(exports, function(exports2, d3Array, d3Collection, d3Shape, findCircuits) {\n \"use strict\";\n findCircuits = findCircuits && findCircuits.hasOwnProperty(\"default\") ? findCircuits[\"default\"] : findCircuits;\n function targetDepth(d) {\n return d.target.depth;\n }\n function left(node) {\n return node.depth;\n }\n function right(node, n) {\n return n - 1 - node.height;\n }\n function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n }\n function center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? d3Array.min(node.sourceLinks, targetDepth) - 1 : 0;\n }\n function constant(x) {\n return function() {\n return x;\n };\n }\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n }\n function ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n }\n function ascendingBreadth(a, b) {\n if (a.partOfCycle === b.partOfCycle) {\n return a.y0 - b.y0;\n } else {\n if (a.circularLinkType === \"top\" || b.circularLinkType === \"bottom\") {\n return -1;\n } else {\n return 1;\n }\n }\n }\n function value(d) {\n return d.value;\n }\n function nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n }\n function linkSourceCenter(link) {\n return nodeCenter(link.source);\n }\n function linkTargetCenter(link) {\n return nodeCenter(link.target);\n }\n function defaultId(d) {\n return d.index;\n }\n function defaultNodes(graph) {\n return graph.nodes;\n }\n function defaultLinks(graph) {\n return graph.links;\n }\n function find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n }\n function getNodeID(node, id) {\n return id(node);\n }\n var verticalMargin = 25;\n var baseRadius = 10;\n var scale = 0.3;\n function sankeyCircular() {\n var x0 = 0, y0 = 0, x1 = 1, y1 = 1, dx = 24, py, id = defaultId, align = justify, nodes = defaultNodes, links = defaultLinks, iterations = 32, circularLinkGap = 2, paddingRatio, sortNodes = null;\n function sankeyCircular2() {\n var graph = {\n nodes: nodes.apply(null, arguments),\n links: links.apply(null, arguments)\n // Process the graph's nodes and links, setting their positions\n // 1. Associate the nodes with their respective links, and vice versa\n };\n computeNodeLinks(graph);\n identifyCircles(graph, id, sortNodes);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n selectCircularLinkTypes(graph, id);\n computeNodeBreadths(graph, iterations, id);\n computeLinkBreadths(graph);\n var linkSortingIterations = 4;\n for (var iteration = 0; iteration < linkSortingIterations; iteration++) {\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n resolveNodeLinkOverlaps(graph, y0, y1, id);\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n }\n fillHeight(graph, y0, y1);\n addCircularPathData(graph, circularLinkGap, y1, id);\n return graph;\n }\n sankeyCircular2.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankeyCircular2) : id;\n };\n sankeyCircular2.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankeyCircular2) : align;\n };\n sankeyCircular2.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankeyCircular2) : dx;\n };\n sankeyCircular2.nodePadding = function(_) {\n return arguments.length ? (py = +_, sankeyCircular2) : py;\n };\n sankeyCircular2.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankeyCircular2) : nodes;\n };\n sankeyCircular2.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankeyCircular2) : links;\n };\n sankeyCircular2.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankeyCircular2) : [x1 - x0, y1 - y0];\n };\n sankeyCircular2.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankeyCircular2) : [[x0, y0], [x1, y1]];\n };\n sankeyCircular2.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankeyCircular2) : iterations;\n };\n sankeyCircular2.circularLinkGap = function(_) {\n return arguments.length ? (circularLinkGap = +_, sankeyCircular2) : circularLinkGap;\n };\n sankeyCircular2.nodePaddingRatio = function(_) {\n return arguments.length ? (paddingRatio = +_, sankeyCircular2) : paddingRatio;\n };\n sankeyCircular2.sortNodes = function(_) {\n return arguments.length ? (sortNodes = _, sankeyCircular2) : sortNodes;\n };\n sankeyCircular2.update = function(graph) {\n selectCircularLinkTypes(graph, id);\n computeLinkBreadths(graph);\n graph.links.forEach(function(link) {\n if (link.circular) {\n link.circularLinkType = link.y0 + link.y1 < y1 ? \"top\" : \"bottom\";\n link.source.circularLinkType = link.circularLinkType;\n link.target.circularLinkType = link.circularLinkType;\n }\n });\n sortSourceLinks(graph, y1, id, false);\n sortTargetLinks(graph, y1, id);\n addCircularPathData(graph, circularLinkGap, y1, id);\n return graph;\n };\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function(node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = d3Collection.map(graph.nodes, id);\n graph.links.forEach(function(link, i) {\n link.index = i;\n var source = link.source;\n var target = link.target;\n if ((typeof source === \"undefined\" ? \"undefined\" : _typeof(source)) !== \"object\") {\n source = link.source = find(nodeById, source);\n }\n if ((typeof target === \"undefined\" ? \"undefined\" : _typeof(target)) !== \"object\") {\n target = link.target = find(nodeById, target);\n }\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n return graph;\n }\n function computeNodeValues(graph) {\n graph.nodes.forEach(function(node) {\n node.partOfCycle = false;\n node.value = Math.max(d3Array.sum(node.sourceLinks, value), d3Array.sum(node.targetLinks, value));\n node.sourceLinks.forEach(function(link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n node.targetLinks.forEach(function(link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n });\n }\n function getCircleMargins(graph) {\n var totalTopLinksWidth = 0, totalBottomLinksWidth = 0, totalRightLinksWidth = 0, totalLeftLinksWidth = 0;\n var maxColumn = d3Array.max(graph.nodes, function(node) {\n return node.column;\n });\n graph.links.forEach(function(link) {\n if (link.circular) {\n if (link.circularLinkType == \"top\") {\n totalTopLinksWidth = totalTopLinksWidth + link.width;\n } else {\n totalBottomLinksWidth = totalBottomLinksWidth + link.width;\n }\n if (link.target.column == 0) {\n totalLeftLinksWidth = totalLeftLinksWidth + link.width;\n }\n if (link.source.column == maxColumn) {\n totalRightLinksWidth = totalRightLinksWidth + link.width;\n }\n }\n });\n totalTopLinksWidth = totalTopLinksWidth > 0 ? totalTopLinksWidth + verticalMargin + baseRadius : totalTopLinksWidth;\n totalBottomLinksWidth = totalBottomLinksWidth > 0 ? totalBottomLinksWidth + verticalMargin + baseRadius : totalBottomLinksWidth;\n totalRightLinksWidth = totalRightLinksWidth > 0 ? totalRightLinksWidth + verticalMargin + baseRadius : totalRightLinksWidth;\n totalLeftLinksWidth = totalLeftLinksWidth > 0 ? totalLeftLinksWidth + verticalMargin + baseRadius : totalLeftLinksWidth;\n return { \"top\": totalTopLinksWidth, \"bottom\": totalBottomLinksWidth, \"left\": totalLeftLinksWidth, \"right\": totalRightLinksWidth };\n }\n function scaleSankeySize(graph, margin) {\n var maxColumn = d3Array.max(graph.nodes, function(node) {\n return node.column;\n });\n var currentWidth = x1 - x0;\n var currentHeight = y1 - y0;\n var newWidth = currentWidth + margin.right + margin.left;\n var newHeight = currentHeight + margin.top + margin.bottom;\n var scaleX = currentWidth / newWidth;\n var scaleY = currentHeight / newHeight;\n x0 = x0 * scaleX + margin.left;\n x1 = margin.right == 0 ? x1 : x1 * scaleX;\n y0 = y0 * scaleY + margin.top;\n y1 = y1 * scaleY;\n graph.nodes.forEach(function(node) {\n node.x0 = x0 + node.column * ((x1 - x0 - dx) / maxColumn);\n node.x1 = node.x0 + dx;\n });\n return scaleY;\n }\n function computeNodeDepths(graph) {\n var nodes2, next, x;\n for (nodes2 = graph.nodes, next = [], x = 0; nodes2.length; ++x, nodes2 = next, next = []) {\n nodes2.forEach(function(node) {\n node.depth = x;\n node.sourceLinks.forEach(function(link) {\n if (next.indexOf(link.target) < 0 && !link.circular) {\n next.push(link.target);\n }\n });\n });\n }\n for (nodes2 = graph.nodes, next = [], x = 0; nodes2.length; ++x, nodes2 = next, next = []) {\n nodes2.forEach(function(node) {\n node.height = x;\n node.targetLinks.forEach(function(link) {\n if (next.indexOf(link.source) < 0 && !link.circular) {\n next.push(link.source);\n }\n });\n });\n }\n graph.nodes.forEach(function(node) {\n node.column = Math.floor(align.call(null, node, x));\n });\n }\n function computeNodeBreadths(graph, iterations2, id2) {\n var columns = d3Collection.nest().key(function(d) {\n return d.column;\n }).sortKeys(d3Array.ascending).entries(graph.nodes).map(function(d) {\n return d.values;\n });\n initializeNodeBreadth(id2);\n resolveCollisions();\n for (var alpha = 1, n = iterations2; n > 0; --n) {\n relaxLeftAndRight(alpha *= 0.99, id2);\n resolveCollisions();\n }\n function initializeNodeBreadth(id3) {\n if (paddingRatio) {\n var padding = Infinity;\n columns.forEach(function(nodes2) {\n var thisPadding = y1 * paddingRatio / (nodes2.length + 1);\n padding = thisPadding < padding ? thisPadding : padding;\n });\n py = padding;\n }\n var ky = d3Array.min(columns, function(nodes2) {\n return (y1 - y0 - (nodes2.length - 1) * py) / d3Array.sum(nodes2, value);\n });\n ky = ky * scale;\n graph.links.forEach(function(link) {\n link.width = link.value * ky;\n });\n var margin = getCircleMargins(graph);\n var ratio = scaleSankeySize(graph, margin);\n ky = ky * ratio;\n graph.links.forEach(function(link) {\n link.width = link.value * ky;\n });\n columns.forEach(function(nodes2) {\n var nodesLength = nodes2.length;\n nodes2.forEach(function(node, i) {\n if (node.depth == columns.length - 1 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.depth == 0 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.partOfCycle) {\n if (numberOfNonSelfLinkingCycles(node, id3) == 0) {\n node.y0 = y1 / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.circularLinkType == \"top\") {\n node.y0 = y0 + i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = y1 - node.value * ky - i;\n node.y1 = node.y0 + node.value * ky;\n }\n } else {\n if (margin.top == 0 || margin.bottom == 0) {\n node.y0 = (y1 - y0) / nodesLength * i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = (y1 - y0) / 2 - nodesLength / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n }\n }\n });\n });\n }\n function relaxLeftAndRight(alpha2, id3) {\n var columnsLength = columns.length;\n columns.forEach(function(nodes2) {\n var n2 = nodes2.length;\n var depth = nodes2[0].depth;\n nodes2.forEach(function(node) {\n var nodeHeight;\n if (node.sourceLinks.length || node.targetLinks.length) {\n if (node.partOfCycle && numberOfNonSelfLinkingCycles(node, id3) > 0) ;\n else if (depth == 0 && n2 == 1) {\n nodeHeight = node.y1 - node.y0;\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else if (depth == columnsLength - 1 && n2 == 1) {\n nodeHeight = node.y1 - node.y0;\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else {\n var avg = 0;\n var avgTargetY = d3Array.mean(node.sourceLinks, linkTargetCenter);\n var avgSourceY = d3Array.mean(node.targetLinks, linkSourceCenter);\n if (avgTargetY && avgSourceY) {\n avg = (avgTargetY + avgSourceY) / 2;\n } else {\n avg = avgTargetY || avgSourceY;\n }\n var dy = (avg - nodeCenter(node)) * alpha2;\n node.y0 += dy;\n node.y1 += dy;\n }\n }\n });\n });\n }\n function resolveCollisions() {\n columns.forEach(function(nodes2) {\n var node, dy, y = y0, n2 = nodes2.length, i;\n nodes2.sort(ascendingBreadth);\n for (i = 0; i < n2; ++i) {\n node = nodes2[i];\n dy = y - node.y0;\n if (dy > 0) {\n node.y0 += dy;\n node.y1 += dy;\n }\n y = node.y1 + py;\n }\n dy = y - py - y1;\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy;\n for (i = n2 - 2; i >= 0; --i) {\n node = nodes2[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function(node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function(node) {\n var y02 = node.y0;\n var y12 = y02;\n var y0cycle = node.y1;\n var y1cycle = y0cycle;\n node.sourceLinks.forEach(function(link) {\n if (link.circular) {\n link.y0 = y0cycle - link.width / 2;\n y0cycle = y0cycle - link.width;\n } else {\n link.y0 = y02 + link.width / 2;\n y02 += link.width;\n }\n });\n node.targetLinks.forEach(function(link) {\n if (link.circular) {\n link.y1 = y1cycle - link.width / 2;\n y1cycle = y1cycle - link.width;\n } else {\n link.y1 = y12 + link.width / 2;\n y12 += link.width;\n }\n });\n });\n }\n return sankeyCircular2;\n }\n function identifyCircles(graph, id, sortNodes) {\n var circularLinkID = 0;\n if (sortNodes === null) {\n var adjList = [];\n for (var i = 0; i < graph.links.length; i++) {\n var link = graph.links[i];\n var source = link.source.index;\n var target = link.target.index;\n if (!adjList[source]) adjList[source] = [];\n if (!adjList[target]) adjList[target] = [];\n if (adjList[source].indexOf(target) === -1) adjList[source].push(target);\n }\n var cycles = findCircuits(adjList);\n cycles.sort(function(a, b) {\n return a.length - b.length;\n });\n var circularLinks = {};\n for (i = 0; i < cycles.length; i++) {\n var cycle = cycles[i];\n var last = cycle.slice(-2);\n if (!circularLinks[last[0]]) circularLinks[last[0]] = {};\n circularLinks[last[0]][last[1]] = true;\n }\n graph.links.forEach(function(link2) {\n var target2 = link2.target.index;\n var source2 = link2.source.index;\n if (target2 === source2 || circularLinks[source2] && circularLinks[source2][target2]) {\n link2.circular = true;\n link2.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n } else {\n link2.circular = false;\n }\n });\n } else {\n graph.links.forEach(function(link2) {\n if (link2.source[sortNodes] < link2.target[sortNodes]) {\n link2.circular = false;\n } else {\n link2.circular = true;\n link2.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n }\n });\n }\n }\n function selectCircularLinkTypes(graph, id) {\n var numberOfTops = 0;\n var numberOfBottoms = 0;\n graph.links.forEach(function(link) {\n if (link.circular) {\n if (link.source.circularLinkType || link.target.circularLinkType) {\n link.circularLinkType = link.source.circularLinkType ? link.source.circularLinkType : link.target.circularLinkType;\n } else {\n link.circularLinkType = numberOfTops < numberOfBottoms ? \"top\" : \"bottom\";\n }\n if (link.circularLinkType == \"top\") {\n numberOfTops = numberOfTops + 1;\n } else {\n numberOfBottoms = numberOfBottoms + 1;\n }\n graph.nodes.forEach(function(node) {\n if (getNodeID(node, id) == getNodeID(link.source, id) || getNodeID(node, id) == getNodeID(link.target, id)) {\n node.circularLinkType = link.circularLinkType;\n }\n });\n }\n });\n graph.links.forEach(function(link) {\n if (link.circular) {\n if (link.source.circularLinkType == link.target.circularLinkType) {\n link.circularLinkType = link.source.circularLinkType;\n }\n if (selfLinking(link, id)) {\n link.circularLinkType = link.source.circularLinkType;\n }\n }\n });\n }\n function linkAngle(link) {\n var adjacent = Math.abs(link.y1 - link.y0);\n var opposite = Math.abs(link.target.x0 - link.source.x1);\n return Math.atan(opposite / adjacent);\n }\n function circularLinksCross(link1, link2) {\n if (link1.source.column < link2.target.column) {\n return false;\n } else if (link1.target.column > link2.source.column) {\n return false;\n } else {\n return true;\n }\n }\n function numberOfNonSelfLinkingCycles(node, id) {\n var sourceCount = 0;\n node.sourceLinks.forEach(function(l) {\n sourceCount = l.circular && !selfLinking(l, id) ? sourceCount + 1 : sourceCount;\n });\n var targetCount = 0;\n node.targetLinks.forEach(function(l) {\n targetCount = l.circular && !selfLinking(l, id) ? targetCount + 1 : targetCount;\n });\n return sourceCount + targetCount;\n }\n function onlyCircularLink(link) {\n var nodeSourceLinks = link.source.sourceLinks;\n var sourceCount = 0;\n nodeSourceLinks.forEach(function(l) {\n sourceCount = l.circular ? sourceCount + 1 : sourceCount;\n });\n var nodeTargetLinks = link.target.targetLinks;\n var targetCount = 0;\n nodeTargetLinks.forEach(function(l) {\n targetCount = l.circular ? targetCount + 1 : targetCount;\n });\n if (sourceCount > 1 || targetCount > 1) {\n return false;\n } else {\n return true;\n }\n }\n function calcVerticalBuffer(links, circularLinkGap, id) {\n links.sort(sortLinkColumnAscending);\n links.forEach(function(link, i) {\n var buffer = 0;\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n } else {\n var j = 0;\n for (j; j < i; j++) {\n if (circularLinksCross(links[i], links[j])) {\n var bufferOverThisLink = links[j].circularPathData.verticalBuffer + links[j].width / 2 + circularLinkGap;\n buffer = bufferOverThisLink > buffer ? bufferOverThisLink : buffer;\n }\n }\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n }\n });\n return links;\n }\n function addCircularPathData(graph, circularLinkGap, y1, id) {\n var buffer = 5;\n var minY = d3Array.min(graph.links, function(link) {\n return link.source.y0;\n });\n graph.links.forEach(function(link) {\n if (link.circular) {\n link.circularPathData = {};\n }\n });\n var topLinks = graph.links.filter(function(l) {\n return l.circularLinkType == \"top\";\n });\n calcVerticalBuffer(topLinks, circularLinkGap, id);\n var bottomLinks = graph.links.filter(function(l) {\n return l.circularLinkType == \"bottom\";\n });\n calcVerticalBuffer(bottomLinks, circularLinkGap, id);\n graph.links.forEach(function(link) {\n if (link.circular) {\n link.circularPathData.arcRadius = link.width + baseRadius;\n link.circularPathData.leftNodeBuffer = buffer;\n link.circularPathData.rightNodeBuffer = buffer;\n link.circularPathData.sourceWidth = link.source.x1 - link.source.x0;\n link.circularPathData.sourceX = link.source.x0 + link.circularPathData.sourceWidth;\n link.circularPathData.targetX = link.target.x0;\n link.circularPathData.sourceY = link.y0;\n link.circularPathData.targetY = link.y1;\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2;\n if (link.circularLinkType == \"bottom\") {\n link.circularPathData.verticalFullExtent = link.source.y1 + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n link.circularPathData.verticalFullExtent = link.source.y0 - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n } else {\n var thisColumn = link.source.column;\n var thisCircularLinkType = link.circularLinkType;\n var sameColumnLinks = graph.links.filter(function(l) {\n return l.source.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n if (link.circularLinkType == \"bottom\") {\n sameColumnLinks.sort(sortLinkSourceYDescending);\n } else {\n sameColumnLinks.sort(sortLinkSourceYAscending);\n }\n var radiusOffset = 0;\n sameColumnLinks.forEach(function(l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n thisColumn = link.target.column;\n sameColumnLinks = graph.links.filter(function(l) {\n return l.target.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n if (link.circularLinkType == \"bottom\") {\n sameColumnLinks.sort(sortLinkTargetYDescending);\n } else {\n sameColumnLinks.sort(sortLinkTargetYAscending);\n }\n radiusOffset = 0;\n sameColumnLinks.forEach(function(l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n if (link.circularLinkType == \"bottom\") {\n link.circularPathData.verticalFullExtent = Math.max(y1, link.source.y1, link.target.y1) + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n link.circularPathData.verticalFullExtent = minY - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n }\n link.circularPathData.leftInnerExtent = link.circularPathData.sourceX + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightInnerExtent = link.circularPathData.targetX - link.circularPathData.rightNodeBuffer;\n link.circularPathData.leftFullExtent = link.circularPathData.sourceX + link.circularPathData.leftLargeArcRadius + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightFullExtent = link.circularPathData.targetX - link.circularPathData.rightLargeArcRadius - link.circularPathData.rightNodeBuffer;\n }\n if (link.circular) {\n link.path = createCircularPathString(link);\n } else {\n var normalPath = d3Shape.linkHorizontal().source(function(d) {\n var x = d.source.x0 + (d.source.x1 - d.source.x0);\n var y = d.y0;\n return [x, y];\n }).target(function(d) {\n var x = d.target.x0;\n var y = d.y1;\n return [x, y];\n });\n link.path = normalPath(link);\n }\n });\n }\n function createCircularPathString(link) {\n var pathString = \"\";\n if (link.circularLinkType == \"top\") {\n pathString = // start at the right of the source node\n \"M\" + link.circularPathData.sourceX + \" \" + link.circularPathData.sourceY + \" L\" + link.circularPathData.leftInnerExtent + \" \" + link.circularPathData.sourceY + \" A\" + link.circularPathData.leftLargeArcRadius + \" \" + link.circularPathData.leftSmallArcRadius + \" 0 0 0 \" + // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + \" \" + (link.circularPathData.sourceY - link.circularPathData.leftSmallArcRadius) + \" L\" + link.circularPathData.leftFullExtent + \" \" + link.circularPathData.verticalLeftInnerExtent + \" A\" + link.circularPathData.leftLargeArcRadius + \" \" + link.circularPathData.leftLargeArcRadius + \" 0 0 0 \" + // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + \" \" + link.circularPathData.verticalFullExtent + \" L\" + link.circularPathData.rightInnerExtent + \" \" + link.circularPathData.verticalFullExtent + \" A\" + link.circularPathData.rightLargeArcRadius + \" \" + link.circularPathData.rightLargeArcRadius + \" 0 0 0 \" + // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + \" \" + link.circularPathData.verticalRightInnerExtent + \" L\" + link.circularPathData.rightFullExtent + \" \" + (link.circularPathData.targetY - link.circularPathData.rightSmallArcRadius) + \" A\" + link.circularPathData.rightLargeArcRadius + \" \" + link.circularPathData.rightSmallArcRadius + \" 0 0 0 \" + // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + \" \" + link.circularPathData.targetY + \" L\" + link.circularPathData.targetX + \" \" + link.circularPathData.targetY;\n } else {\n pathString = // start at the right of the source node\n \"M\" + link.circularPathData.sourceX + \" \" + link.circularPathData.sourceY + \" L\" + link.circularPathData.leftInnerExtent + \" \" + link.circularPathData.sourceY + \" A\" + link.circularPathData.leftLargeArcRadius + \" \" + link.circularPathData.leftSmallArcRadius + \" 0 0 1 \" + // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + \" \" + (link.circularPathData.sourceY + link.circularPathData.leftSmallArcRadius) + \" L\" + link.circularPathData.leftFullExtent + \" \" + link.circularPathData.verticalLeftInnerExtent + \" A\" + link.circularPathData.leftLargeArcRadius + \" \" + link.circularPathData.leftLargeArcRadius + \" 0 0 1 \" + // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + \" \" + link.circularPathData.verticalFullExtent + \" L\" + link.circularPathData.rightInnerExtent + \" \" + link.circularPathData.verticalFullExtent + \" A\" + link.circularPathData.rightLargeArcRadius + \" \" + link.circularPathData.rightLargeArcRadius + \" 0 0 1 \" + // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + \" \" + link.circularPathData.verticalRightInnerExtent + \" L\" + link.circularPathData.rightFullExtent + \" \" + (link.circularPathData.targetY + link.circularPathData.rightSmallArcRadius) + \" A\" + link.circularPathData.rightLargeArcRadius + \" \" + link.circularPathData.rightSmallArcRadius + \" 0 0 1 \" + // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + \" \" + link.circularPathData.targetY + \" L\" + link.circularPathData.targetX + \" \" + link.circularPathData.targetY;\n }\n return pathString;\n }\n function sortLinkColumnAscending(link1, link2) {\n if (linkColumnDistance(link1) == linkColumnDistance(link2)) {\n return link1.circularLinkType == \"bottom\" ? sortLinkSourceYDescending(link1, link2) : sortLinkSourceYAscending(link1, link2);\n } else {\n return linkColumnDistance(link2) - linkColumnDistance(link1);\n }\n }\n function sortLinkSourceYAscending(link1, link2) {\n return link1.y0 - link2.y0;\n }\n function sortLinkSourceYDescending(link1, link2) {\n return link2.y0 - link1.y0;\n }\n function sortLinkTargetYAscending(link1, link2) {\n return link1.y1 - link2.y1;\n }\n function sortLinkTargetYDescending(link1, link2) {\n return link2.y1 - link1.y1;\n }\n function linkColumnDistance(link) {\n return link.target.column - link.source.column;\n }\n function linkXLength(link) {\n return link.target.x0 - link.source.x1;\n }\n function linkPerpendicularYToLinkSource(longerLink, shorterLink) {\n var angle = linkAngle(longerLink);\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n var yPerpendicular = incline(longerLink) == \"up\" ? longerLink.y1 + heightFromY1ToPependicular : longerLink.y1 - heightFromY1ToPependicular;\n return yPerpendicular;\n }\n function linkPerpendicularYToLinkTarget(longerLink, shorterLink) {\n var angle = linkAngle(longerLink);\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n var yPerpendicular = incline(longerLink) == \"up\" ? longerLink.y1 - heightFromY1ToPependicular : longerLink.y1 + heightFromY1ToPependicular;\n return yPerpendicular;\n }\n function resolveNodeLinkOverlaps(graph, y0, y1, id) {\n graph.links.forEach(function(link) {\n if (link.circular) {\n return;\n }\n if (link.target.column - link.source.column > 1) {\n var columnToTest = link.source.column + 1;\n var maxColumnToTest = link.target.column - 1;\n var i = 1;\n var numberOfColumnsToTest = maxColumnToTest - columnToTest + 1;\n for (i = 1; columnToTest <= maxColumnToTest; columnToTest++, i++) {\n graph.nodes.forEach(function(node) {\n if (node.column == columnToTest) {\n var t = i / (numberOfColumnsToTest + 1);\n var B0_t = Math.pow(1 - t, 3);\n var B1_t = 3 * t * Math.pow(1 - t, 2);\n var B2_t = 3 * Math.pow(t, 2) * (1 - t);\n var B3_t = Math.pow(t, 3);\n var py_t = B0_t * link.y0 + B1_t * link.y0 + B2_t * link.y1 + B3_t * link.y1;\n var linkY0AtColumn = py_t - link.width / 2;\n var linkY1AtColumn = py_t + link.width / 2;\n var dy;\n if (linkY0AtColumn > node.y0 && linkY0AtColumn < node.y1) {\n dy = node.y1 - linkY0AtColumn + 10;\n dy = node.circularLinkType == \"bottom\" ? dy : -dy;\n node = adjustNodeHeight(node, dy, y0, y1);\n graph.nodes.forEach(function(otherNode) {\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (nodesOverlap(node, otherNode)) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY1AtColumn > node.y0 && linkY1AtColumn < node.y1) {\n dy = linkY1AtColumn - node.y0 + 10;\n node = adjustNodeHeight(node, dy, y0, y1);\n graph.nodes.forEach(function(otherNode) {\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY0AtColumn < node.y0 && linkY1AtColumn > node.y1) {\n dy = linkY1AtColumn - node.y0 + 10;\n node = adjustNodeHeight(node, dy, y0, y1);\n graph.nodes.forEach(function(otherNode) {\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n }\n }\n });\n }\n }\n });\n }\n function nodesOverlap(nodeA, nodeB) {\n if (nodeA.y0 > nodeB.y0 && nodeA.y0 < nodeB.y1) {\n return true;\n } else if (nodeA.y1 > nodeB.y0 && nodeA.y1 < nodeB.y1) {\n return true;\n } else if (nodeA.y0 < nodeB.y0 && nodeA.y1 > nodeB.y1) {\n return true;\n } else {\n return false;\n }\n }\n function adjustNodeHeight(node, dy, sankeyY0, sankeyY1) {\n if (node.y0 + dy >= sankeyY0 && node.y1 + dy <= sankeyY1) {\n node.y0 = node.y0 + dy;\n node.y1 = node.y1 + dy;\n node.targetLinks.forEach(function(l) {\n l.y1 = l.y1 + dy;\n });\n node.sourceLinks.forEach(function(l) {\n l.y0 = l.y0 + dy;\n });\n }\n return node;\n }\n function sortSourceLinks(graph, y1, id, moveNodes) {\n graph.nodes.forEach(function(node) {\n if (moveNodes && node.y + (node.y1 - node.y0) > y1) {\n node.y = node.y - (node.y + (node.y1 - node.y0) - y1);\n }\n var nodesSourceLinks = graph.links.filter(function(l) {\n return getNodeID(l.source, id) == getNodeID(node, id);\n });\n var nodeSourceLinksLength = nodesSourceLinks.length;\n if (nodeSourceLinksLength > 1) {\n nodesSourceLinks.sort(function(link1, link2) {\n if (!link1.circular && !link2.circular) {\n if (link1.target.column == link2.target.column) {\n return link1.y1 - link2.y1;\n } else if (!sameInclines(link1, link2)) {\n return link1.y1 - link2.y1;\n } else {\n if (link1.target.column > link2.target.column) {\n var link2Adj = linkPerpendicularYToLinkTarget(link2, link1);\n return link1.y1 - link2Adj;\n }\n if (link2.target.column > link1.target.column) {\n var link1Adj = linkPerpendicularYToLinkTarget(link1, link2);\n return link1Adj - link2.y1;\n }\n }\n }\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == \"top\" ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == \"top\" ? 1 : -1;\n }\n if (link1.circular && link2.circular) {\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == \"top\") {\n if (link1.target.column === link2.target.column) {\n return link1.target.y1 - link2.target.y1;\n } else {\n return link2.target.column - link1.target.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == \"bottom\") {\n if (link1.target.column === link2.target.column) {\n return link2.target.y1 - link1.target.y1;\n } else {\n return link1.target.column - link2.target.column;\n }\n } else {\n return link1.circularLinkType == \"top\" ? -1 : 1;\n }\n }\n });\n }\n var ySourceOffset = node.y0;\n nodesSourceLinks.forEach(function(link) {\n link.y0 = ySourceOffset + link.width / 2;\n ySourceOffset = ySourceOffset + link.width;\n });\n nodesSourceLinks.forEach(function(link, i) {\n if (link.circularLinkType == \"bottom\") {\n var j = i + 1;\n var offsetFromBottom = 0;\n for (j; j < nodeSourceLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesSourceLinks[j].width;\n }\n link.y0 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n }\n function sortTargetLinks(graph, y1, id) {\n graph.nodes.forEach(function(node) {\n var nodesTargetLinks = graph.links.filter(function(l) {\n return getNodeID(l.target, id) == getNodeID(node, id);\n });\n var nodesTargetLinksLength = nodesTargetLinks.length;\n if (nodesTargetLinksLength > 1) {\n nodesTargetLinks.sort(function(link1, link2) {\n if (!link1.circular && !link2.circular) {\n if (link1.source.column == link2.source.column) {\n return link1.y0 - link2.y0;\n } else if (!sameInclines(link1, link2)) {\n return link1.y0 - link2.y0;\n } else {\n if (link2.source.column < link1.source.column) {\n var link2Adj = linkPerpendicularYToLinkSource(link2, link1);\n return link1.y0 - link2Adj;\n }\n if (link1.source.column < link2.source.column) {\n var link1Adj = linkPerpendicularYToLinkSource(link1, link2);\n return link1Adj - link2.y0;\n }\n }\n }\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == \"top\" ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == \"top\" ? 1 : -1;\n }\n if (link1.circular && link2.circular) {\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == \"top\") {\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n return link1.source.column - link2.source.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == \"bottom\") {\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n return link2.source.column - link1.source.column;\n }\n } else {\n return link1.circularLinkType == \"top\" ? -1 : 1;\n }\n }\n });\n }\n var yTargetOffset = node.y0;\n nodesTargetLinks.forEach(function(link) {\n link.y1 = yTargetOffset + link.width / 2;\n yTargetOffset = yTargetOffset + link.width;\n });\n nodesTargetLinks.forEach(function(link, i) {\n if (link.circularLinkType == \"bottom\") {\n var j = i + 1;\n var offsetFromBottom = 0;\n for (j; j < nodesTargetLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesTargetLinks[j].width;\n }\n link.y1 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n }\n function sameInclines(link1, link2) {\n return incline(link1) == incline(link2);\n }\n function incline(link) {\n return link.y0 - link.y1 > 0 ? \"up\" : \"down\";\n }\n function selfLinking(link, id) {\n return getNodeID(link.source, id) == getNodeID(link.target, id);\n }\n function fillHeight(graph, y0, y1) {\n var nodes = graph.nodes;\n var links = graph.links;\n var top = false;\n var bottom = false;\n links.forEach(function(link) {\n if (link.circularLinkType == \"top\") {\n top = true;\n } else if (link.circularLinkType == \"bottom\") {\n bottom = true;\n }\n });\n if (top == false || bottom == false) {\n var minY0 = d3Array.min(nodes, function(node) {\n return node.y0;\n });\n var maxY1 = d3Array.max(nodes, function(node) {\n return node.y1;\n });\n var currentHeight = maxY1 - minY0;\n var chartHeight = y1 - y0;\n var ratio = chartHeight / currentHeight;\n nodes.forEach(function(node) {\n var nodeHeight = (node.y1 - node.y0) * ratio;\n node.y0 = (node.y0 - minY0) * ratio;\n node.y1 = node.y0 + nodeHeight;\n });\n links.forEach(function(link) {\n link.y0 = (link.y0 - minY0) * ratio;\n link.y1 = (link.y1 - minY0) * ratio;\n link.width = link.width * ratio;\n });\n }\n }\n exports2.sankeyCircular = sankeyCircular;\n exports2.sankeyCenter = center;\n exports2.sankeyLeft = left;\n exports2.sankeyRight = right;\n exports2.sankeyJustify = justify;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/traces/sankey/constants.js\n var require_constants29 = __commonJS({\n \"src/traces/sankey/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n nodeTextOffsetHorizontal: 4,\n nodeTextOffsetVertical: 3,\n nodePadAcross: 10,\n sankeyIterations: 50,\n forceIterations: 5,\n forceTicksPerFrame: 10,\n duration: 500,\n ease: \"linear\",\n cn: {\n sankey: \"sankey\",\n sankeyLinks: \"sankey-links\",\n sankeyLink: \"sankey-link\",\n sankeyNodeSet: \"sankey-node-set\",\n sankeyNode: \"sankey-node\",\n nodeRect: \"node-rect\",\n nodeLabel: \"node-label\"\n }\n };\n }\n });\n\n // src/traces/sankey/render.js\n var require_render = __commonJS({\n \"src/traces/sankey/render.js\"(exports, module) {\n \"use strict\";\n var d3Force = require_d3_force();\n var interpolateNumber = (init_src2(), __toCommonJS(src_exports)).interpolateNumber;\n var d3 = require_d3();\n var d3Sankey = require_d3_sankey();\n var d3SankeyCircular = require_d3_sankey_circular();\n var c = require_constants29();\n var tinycolor = require_tinycolor();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var strRotate = Lib.strRotate;\n var gup = require_gup();\n var keyFun = gup.keyFun;\n var repeat = gup.repeat;\n var unwrap = gup.unwrap;\n var svgTextUtils = require_svg_text_utils();\n var Registry = require_registry();\n var alignmentConstants = require_alignment();\n var CAP_SHIFT = alignmentConstants.CAP_SHIFT;\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var TEXTPAD = 3;\n function sankeyModel(layout, d, traceIndex) {\n var calcData = unwrap(d);\n var trace = calcData.trace;\n var domain = trace.domain;\n var horizontal = trace.orientation === \"h\";\n var nodePad = trace.node.pad;\n var nodeThickness = trace.node.thickness;\n var nodeAlign = {\n justify: d3Sankey.sankeyJustify,\n left: d3Sankey.sankeyLeft,\n right: d3Sankey.sankeyRight,\n center: d3Sankey.sankeyCenter\n }[trace.node.align];\n var width = layout.width * (domain.x[1] - domain.x[0]);\n var height = layout.height * (domain.y[1] - domain.y[0]);\n var nodes = calcData._nodes;\n var links = calcData._links;\n var circular = calcData.circular;\n var sankey;\n if (circular) {\n sankey = d3SankeyCircular.sankeyCircular().circularLinkGap(0);\n } else {\n sankey = d3Sankey.sankey();\n }\n sankey.iterations(c.sankeyIterations).size(horizontal ? [width, height] : [height, width]).nodeWidth(nodeThickness).nodePadding(nodePad).nodeId(function(d2) {\n return d2.pointNumber;\n }).nodeAlign(nodeAlign).nodes(nodes).links(links);\n var graph = sankey();\n if (sankey.nodePadding() < nodePad) {\n Lib.warn(\"node.pad was reduced to \", sankey.nodePadding(), \" to fit within the figure.\");\n }\n var i, j, k;\n for (var nodePointNumber in calcData._groupLookup) {\n var groupIndex = parseInt(calcData._groupLookup[nodePointNumber]);\n var groupingNode;\n for (i = 0; i < graph.nodes.length; i++) {\n if (graph.nodes[i].pointNumber === groupIndex) {\n groupingNode = graph.nodes[i];\n break;\n }\n }\n if (!groupingNode) continue;\n var child = {\n pointNumber: parseInt(nodePointNumber),\n x0: groupingNode.x0,\n x1: groupingNode.x1,\n y0: groupingNode.y0,\n y1: groupingNode.y1,\n partOfGroup: true,\n sourceLinks: [],\n targetLinks: []\n };\n graph.nodes.unshift(child);\n groupingNode.childrenNodes.unshift(child);\n }\n function computeLinkConcentrations() {\n for (i = 0; i < graph.nodes.length; i++) {\n var node = graph.nodes[i];\n var flows = {};\n var flowKey;\n var link;\n for (j = 0; j < node.targetLinks.length; j++) {\n link = node.targetLinks[j];\n flowKey = link.source.pointNumber + \":\" + link.target.pointNumber;\n if (!flows.hasOwnProperty(flowKey)) flows[flowKey] = [];\n flows[flowKey].push(link);\n }\n var keys = Object.keys(flows);\n for (j = 0; j < keys.length; j++) {\n flowKey = keys[j];\n var flowLinks = flows[flowKey];\n var total = 0;\n var totalPerLabel = {};\n for (k = 0; k < flowLinks.length; k++) {\n link = flowLinks[k];\n if (!totalPerLabel[link.label]) totalPerLabel[link.label] = 0;\n totalPerLabel[link.label] += link.value;\n total += link.value;\n }\n for (k = 0; k < flowLinks.length; k++) {\n link = flowLinks[k];\n link.flow = {\n value: total,\n labelConcentration: totalPerLabel[link.label] / total,\n concentration: link.value / total,\n links: flowLinks\n };\n if (link.concentrationscale) {\n link.color = tinycolor(link.concentrationscale(link.flow.labelConcentration));\n }\n }\n }\n var totalOutflow = 0;\n for (j = 0; j < node.sourceLinks.length; j++) {\n totalOutflow += node.sourceLinks[j].value;\n }\n for (j = 0; j < node.sourceLinks.length; j++) {\n link = node.sourceLinks[j];\n link.concentrationOut = link.value / totalOutflow;\n }\n var totalInflow = 0;\n for (j = 0; j < node.targetLinks.length; j++) {\n totalInflow += node.targetLinks[j].value;\n }\n for (j = 0; j < node.targetLinks.length; j++) {\n link = node.targetLinks[j];\n link.concenrationIn = link.value / totalInflow;\n }\n }\n }\n computeLinkConcentrations();\n function resolveCollisionsTopToBottom(columns2) {\n columns2.forEach(function(nodes2) {\n var node;\n var dy;\n var y = 0;\n var n = nodes2.length;\n var i2;\n nodes2.sort(function(a, b) {\n return a.y0 - b.y0;\n });\n for (i2 = 0; i2 < n; ++i2) {\n node = nodes2[i2];\n if (node.y0 >= y) {\n } else {\n dy = y - node.y0;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n }\n y = node.y1 + nodePad;\n }\n });\n }\n function snapToColumns(nodes2) {\n var orderedNodes = nodes2.map(function(n, i2) {\n return {\n x0: n.x0,\n index: i2\n };\n }).sort(function(a, b) {\n return a.x0 - b.x0;\n });\n var columns2 = [];\n var colNumber = -1;\n var colX;\n var lastX = -Infinity;\n var dx;\n for (i = 0; i < orderedNodes.length; i++) {\n var node = nodes2[orderedNodes[i].index];\n if (node.x0 > lastX + nodeThickness) {\n colNumber += 1;\n colX = node.x0;\n }\n lastX = node.x0;\n if (!columns2[colNumber]) columns2[colNumber] = [];\n columns2[colNumber].push(node);\n dx = colX - node.x0;\n node.x0 += dx, node.x1 += dx;\n }\n return columns2;\n }\n if (trace.node.x.length && trace.node.y.length) {\n for (i = 0; i < Math.min(trace.node.x.length, trace.node.y.length, graph.nodes.length); i++) {\n if (trace.node.x[i] && trace.node.y[i]) {\n var pos = [trace.node.x[i] * width, trace.node.y[i] * height];\n graph.nodes[i].x0 = pos[0] - nodeThickness / 2;\n graph.nodes[i].x1 = pos[0] + nodeThickness / 2;\n var nodeHeight = graph.nodes[i].y1 - graph.nodes[i].y0;\n graph.nodes[i].y0 = pos[1] - nodeHeight / 2;\n graph.nodes[i].y1 = pos[1] + nodeHeight / 2;\n }\n }\n if (trace.arrangement === \"snap\") {\n nodes = graph.nodes;\n var columns = snapToColumns(nodes);\n resolveCollisionsTopToBottom(columns);\n }\n sankey.update(graph);\n }\n return {\n circular,\n key: traceIndex,\n trace,\n guid: Lib.randstr(),\n horizontal,\n width,\n height,\n nodePad: trace.node.pad,\n nodeLineColor: trace.node.line.color,\n nodeLineWidth: trace.node.line.width,\n linkLineColor: trace.link.line.color,\n linkLineWidth: trace.link.line.width,\n linkArrowLength: trace.link.arrowlen,\n valueFormat: trace.valueformat,\n valueSuffix: trace.valuesuffix,\n textFont: trace.textfont,\n translateX: domain.x[0] * layout.width + layout.margin.l,\n translateY: layout.height - domain.y[1] * layout.height + layout.margin.t,\n dragParallel: horizontal ? height : width,\n dragPerpendicular: horizontal ? width : height,\n arrangement: trace.arrangement,\n sankey,\n graph,\n forceLayouts: {},\n interactionState: {\n dragInProgress: false,\n hovered: false\n }\n };\n }\n function linkModel(d, l, i) {\n var tc = tinycolor(l.color);\n var htc = tinycolor(l.hovercolor);\n var basicKey = l.source.label + \"|\" + l.target.label;\n var key = basicKey + \"__\" + i;\n l.trace = d.trace;\n l.curveNumber = d.trace.index;\n return {\n circular: d.circular,\n key,\n traceId: d.key,\n pointNumber: l.pointNumber,\n link: l,\n tinyColorHue: Color2.tinyRGB(tc),\n tinyColorAlpha: tc.getAlpha(),\n tinyColorHoverHue: Color2.tinyRGB(htc),\n tinyColorHoverAlpha: htc.getAlpha(),\n linkPath,\n linkLineColor: d.linkLineColor,\n linkLineWidth: d.linkLineWidth,\n linkArrowLength: d.linkArrowLength,\n valueFormat: d.valueFormat,\n valueSuffix: d.valueSuffix,\n sankey: d.sankey,\n parent: d,\n interactionState: d.interactionState,\n flow: l.flow\n };\n }\n function createCircularClosedPathString(link, arrowLen) {\n var pathString = \"\";\n var offset = link.width / 2;\n var coords = link.circularPathData;\n var isSourceBeforeTarget = coords.sourceX + coords.verticalBuffer < coords.targetX;\n var isPathOverlapped = coords.rightFullExtent - coords.rightLargeArcRadius - arrowLen <= coords.leftFullExtent - offset;\n var diff = Math.abs(coords.rightFullExtent - coords.leftFullExtent - offset) < offset;\n if (link.circularLinkType === \"top\") {\n pathString = // start at the left of the target node\n \"M \" + (coords.targetX - arrowLen) + \" \" + (coords.targetY + offset) + \" L \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.targetY + offset) + \"A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightSmallArcRadius + offset) + \" 0 0 1 \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + (coords.targetY - coords.rightSmallArcRadius) + \"L \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n if (isSourceBeforeTarget && isPathOverlapped) {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 1 \" + (coords.rightFullExtent + offset - arrowLen - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalRightInnerExtent - (coords.rightLargeArcRadius + offset)) + \" L \" + (coords.rightFullExtent + offset - (coords.rightLargeArcRadius - offset) - arrowLen) + \" \" + (coords.verticalRightInnerExtent - (coords.rightLargeArcRadius + offset)) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftLargeArcRadius + offset) + \" 0 0 1 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalRightInnerExtent;\n } else if (isSourceBeforeTarget) {\n pathString += \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightLargeArcRadius - offset) + \" 0 0 0 \" + (coords.rightFullExtent - offset - arrowLen - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalRightInnerExtent - (coords.rightLargeArcRadius - offset)) + \" L \" + (coords.leftFullExtent + offset + (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalRightInnerExtent - (coords.rightLargeArcRadius - offset)) + \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftLargeArcRadius - offset) + \" 0 0 0 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n } else {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 1 \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.verticalFullExtent - offset) + \" L \" + coords.leftInnerExtent + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftLargeArcRadius + offset) + \" 0 0 1 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n }\n pathString += \" L \" + (coords.leftFullExtent + offset) + \" \" + (coords.sourceY - coords.leftSmallArcRadius) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 1 \" + coords.leftInnerExtent + \" \" + (coords.sourceY + offset) + \" L \" + coords.sourceX + \" \" + (coords.sourceY + offset) + // Walking back\n \" L \" + coords.sourceX + \" \" + (coords.sourceY - offset) + \" L \" + coords.leftInnerExtent + \" \" + (coords.sourceY - offset) + \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftSmallArcRadius - offset) + \" 0 0 0 \" + (coords.leftFullExtent - offset) + \" \" + (coords.sourceY - coords.leftSmallArcRadius) + \" L \" + (coords.leftFullExtent - offset) + \" \" + coords.verticalLeftInnerExtent;\n if (isSourceBeforeTarget && isPathOverlapped) {\n pathString += \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 0 \" + (coords.leftFullExtent - offset) + \" \" + (coords.verticalFullExtent + offset) + \"L\" + (coords.rightFullExtent + offset - arrowLen) + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 0 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n } else if (isSourceBeforeTarget) {\n pathString += \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 1 \" + (coords.leftFullExtent + offset) + \" \" + (coords.verticalFullExtent - offset) + \" L \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 1 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n } else {\n pathString += \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftLargeArcRadius - offset) + \" 0 0 0 \" + coords.leftInnerExtent + \" \" + (coords.verticalFullExtent + offset) + \" L \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightLargeArcRadius - offset) + \" 0 0 0 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n }\n pathString += \" L \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + (coords.targetY - coords.rightSmallArcRadius) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 0 \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.targetY - offset) + \" L \" + (coords.targetX - arrowLen) + \" \" + (coords.targetY - offset) + (arrowLen > 0 ? \" L \" + coords.targetX + \" \" + coords.targetY : \"\") + \"Z\";\n } else {\n pathString = \"M \" + (coords.targetX - arrowLen) + \" \" + (coords.targetY - offset) + \" L \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.targetY - offset) + \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightSmallArcRadius + offset) + \" 0 0 0 \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + (coords.targetY + coords.rightSmallArcRadius) + \" L \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n if (isSourceBeforeTarget && isPathOverlapped) {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.rightInnerExtent - offset - arrowLen) + \" \" + (coords.verticalFullExtent + offset) + \" L \" + (coords.rightFullExtent + offset - arrowLen - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n } else if (isSourceBeforeTarget) {\n pathString += \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.rightFullExtent - arrowLen - offset - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent - offset) + \" L \" + (coords.leftFullExtent + offset + (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n } else {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.verticalFullExtent + offset) + \" L \" + coords.leftInnerExtent + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftLargeArcRadius + offset) + \" 0 0 0 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n }\n pathString += \" L \" + (coords.leftFullExtent + offset) + \" \" + (coords.sourceY + coords.leftSmallArcRadius) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 0 \" + coords.leftInnerExtent + \" \" + (coords.sourceY - offset) + \" L \" + coords.sourceX + \" \" + (coords.sourceY - offset) + // Walking back\n \" L \" + coords.sourceX + \" \" + (coords.sourceY + offset) + \" L \" + coords.leftInnerExtent + \" \" + (coords.sourceY + offset) + \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftSmallArcRadius - offset) + \" 0 0 1 \" + (coords.leftFullExtent - offset) + \" \" + (coords.sourceY + coords.leftSmallArcRadius) + \" L \" + (coords.leftFullExtent - offset) + \" \" + coords.verticalLeftInnerExtent;\n if (isSourceBeforeTarget && isPathOverlapped) {\n pathString += \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.leftFullExtent - offset - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent - offset) + \" L \" + (coords.rightFullExtent + offset - arrowLen + (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n } else if (isSourceBeforeTarget) {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.leftFullExtent + offset) + \" \" + (coords.verticalFullExtent + offset) + \" L \" + (coords.rightFullExtent - arrowLen - offset) + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n } else {\n pathString += \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftLargeArcRadius - offset) + \" 0 0 1 \" + coords.leftInnerExtent + \" \" + (coords.verticalFullExtent - offset) + \" L \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightLargeArcRadius - offset) + \" 0 0 1 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n }\n pathString += \" L \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + (coords.targetY + coords.rightSmallArcRadius) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.targetY + offset) + \" L \" + (coords.targetX - arrowLen) + \" \" + (coords.targetY + offset) + (arrowLen > 0 ? \" L \" + coords.targetX + \" \" + coords.targetY : \"\") + \"Z\";\n }\n return pathString;\n }\n function linkPath() {\n var curvature = 0.5;\n function path(d) {\n var arrowLen = d.linkArrowLength;\n if (d.link.circular) {\n return createCircularClosedPathString(d.link, arrowLen);\n } else {\n var maxArrowLength = Math.abs((d.link.target.x0 - d.link.source.x1) / 2);\n if (arrowLen > maxArrowLength) {\n arrowLen = maxArrowLength;\n }\n var x0 = d.link.source.x1;\n var x1 = d.link.target.x0 - arrowLen;\n var xi = interpolateNumber(x0, x1);\n var x2 = xi(curvature);\n var x3 = xi(1 - curvature);\n var y0a = d.link.y0 - d.link.width / 2;\n var y0b = d.link.y0 + d.link.width / 2;\n var y1a = d.link.y1 - d.link.width / 2;\n var y1b = d.link.y1 + d.link.width / 2;\n var start = \"M\" + x0 + \",\" + y0a;\n var upperCurve = \"C\" + x2 + \",\" + y0a + \" \" + x3 + \",\" + y1a + \" \" + x1 + \",\" + y1a;\n var lowerCurve = \"C\" + x3 + \",\" + y1b + \" \" + x2 + \",\" + y0b + \" \" + x0 + \",\" + y0b;\n var rightEnd = arrowLen > 0 ? \"L\" + (x1 + arrowLen) + \",\" + (y1a + d.link.width / 2) : \"\";\n rightEnd += \"L\" + x1 + \",\" + y1b;\n return start + upperCurve + rightEnd + lowerCurve + \"Z\";\n }\n }\n return path;\n }\n function nodeModel(d, n) {\n var tc = tinycolor(n.color);\n var zoneThicknessPad = c.nodePadAcross;\n var zoneLengthPad = d.nodePad / 2;\n n.dx = n.x1 - n.x0;\n n.dy = n.y1 - n.y0;\n var visibleThickness = n.dx;\n var visibleLength = Math.max(0.5, n.dy);\n var key = \"node_\" + n.pointNumber;\n if (n.group) {\n key = Lib.randstr();\n }\n n.trace = d.trace;\n n.curveNumber = d.trace.index;\n return {\n index: n.pointNumber,\n key,\n partOfGroup: n.partOfGroup || false,\n group: n.group,\n traceId: d.key,\n trace: d.trace,\n node: n,\n nodePad: d.nodePad,\n nodeLineColor: d.nodeLineColor,\n nodeLineWidth: d.nodeLineWidth,\n textFont: d.textFont,\n size: d.horizontal ? d.height : d.width,\n visibleWidth: Math.ceil(visibleThickness),\n visibleHeight: visibleLength,\n zoneX: -zoneThicknessPad,\n zoneY: -zoneLengthPad,\n zoneWidth: visibleThickness + 2 * zoneThicknessPad,\n zoneHeight: visibleLength + 2 * zoneLengthPad,\n labelY: d.horizontal ? n.dy / 2 + 1 : n.dx / 2 + 1,\n left: n.originalLayer === 1,\n sizeAcross: d.width,\n forceLayouts: d.forceLayouts,\n horizontal: d.horizontal,\n darkBackground: tc.getBrightness() <= 128,\n tinyColorHue: Color2.tinyRGB(tc),\n tinyColorAlpha: tc.getAlpha(),\n valueFormat: d.valueFormat,\n valueSuffix: d.valueSuffix,\n sankey: d.sankey,\n graph: d.graph,\n arrangement: d.arrangement,\n uniqueNodeLabelPathId: [d.guid, d.key, key].join(\"_\"),\n interactionState: d.interactionState,\n figure: d\n };\n }\n function updateNodePositions(sankeyNode) {\n sankeyNode.attr(\"transform\", function(d) {\n return strTranslate(d.node.x0.toFixed(3), d.node.y0.toFixed(3));\n });\n }\n function updateNodeShapes(sankeyNode) {\n sankeyNode.call(updateNodePositions);\n }\n function updateShapes(sankeyNode, sankeyLink) {\n sankeyNode.call(updateNodeShapes);\n sankeyLink.attr(\"d\", linkPath());\n }\n function sizeNode(rect) {\n rect.attr(\"width\", function(d) {\n return d.node.x1 - d.node.x0;\n }).attr(\"height\", function(d) {\n return d.visibleHeight;\n });\n }\n function salientEnough(d) {\n return d.link.width > 1 || d.linkLineWidth > 0;\n }\n function sankeyTransform(d) {\n var offset = strTranslate(d.translateX, d.translateY);\n return offset + (d.horizontal ? \"matrix(1 0 0 1 0 0)\" : \"matrix(0 1 1 0 0 0)\");\n }\n function attachPointerEvents(selection, sankey, eventSet) {\n selection.on(\".basic\", null).on(\"mouseover.basic\", function(d) {\n if (!d.interactionState.dragInProgress && !d.partOfGroup) {\n eventSet.hover(this, d, sankey);\n d.interactionState.hovered = [this, d];\n }\n }).on(\"mousemove.basic\", function(d) {\n if (!d.interactionState.dragInProgress && !d.partOfGroup) {\n eventSet.follow(this, d);\n d.interactionState.hovered = [this, d];\n }\n }).on(\"mouseout.basic\", function(d) {\n if (!d.interactionState.dragInProgress && !d.partOfGroup) {\n eventSet.unhover(this, d, sankey);\n d.interactionState.hovered = false;\n }\n }).on(\"click.basic\", function(d) {\n if (d.interactionState.hovered) {\n eventSet.unhover(this, d, sankey);\n d.interactionState.hovered = false;\n }\n if (!d.interactionState.dragInProgress && !d.partOfGroup) {\n eventSet.select(this, d, sankey);\n }\n });\n }\n function attachDragHandler(sankeyNode, sankeyLink, callbacks, gd) {\n var dragBehavior = d3.behavior.drag().origin(function(d) {\n return {\n x: d.node.x0 + d.visibleWidth / 2,\n y: d.node.y0 + d.visibleHeight / 2\n };\n }).on(\"dragstart\", function(d) {\n if (d.arrangement === \"fixed\") return;\n Lib.ensureSingle(gd._fullLayout._infolayer, \"g\", \"dragcover\", function(s) {\n gd._fullLayout._dragCover = s;\n });\n Lib.raiseToTop(this);\n d.interactionState.dragInProgress = d.node;\n saveCurrentDragPosition(d.node);\n if (d.interactionState.hovered) {\n callbacks.nodeEvents.unhover.apply(0, d.interactionState.hovered);\n d.interactionState.hovered = false;\n }\n if (d.arrangement === \"snap\") {\n var forceKey = d.traceId + \"|\" + d.key;\n if (d.forceLayouts[forceKey]) {\n d.forceLayouts[forceKey].alpha(1);\n } else {\n attachForce(sankeyNode, forceKey, d, gd);\n }\n startForce(sankeyNode, sankeyLink, d, forceKey, gd);\n }\n }).on(\"drag\", function(d) {\n if (d.arrangement === \"fixed\") return;\n var x = d3.event.x;\n var y = d3.event.y;\n if (d.arrangement === \"snap\") {\n d.node.x0 = x - d.visibleWidth / 2;\n d.node.x1 = x + d.visibleWidth / 2;\n d.node.y0 = y - d.visibleHeight / 2;\n d.node.y1 = y + d.visibleHeight / 2;\n } else {\n if (d.arrangement === \"freeform\") {\n d.node.x0 = x - d.visibleWidth / 2;\n d.node.x1 = x + d.visibleWidth / 2;\n }\n y = Math.max(0, Math.min(d.size - d.visibleHeight / 2, y));\n d.node.y0 = y - d.visibleHeight / 2;\n d.node.y1 = y + d.visibleHeight / 2;\n }\n saveCurrentDragPosition(d.node);\n if (d.arrangement !== \"snap\") {\n d.sankey.update(d.graph);\n updateShapes(sankeyNode.filter(sameLayer(d)), sankeyLink);\n }\n }).on(\"dragend\", function(d) {\n if (d.arrangement === \"fixed\") return;\n d.interactionState.dragInProgress = false;\n for (var i = 0; i < d.node.childrenNodes.length; i++) {\n d.node.childrenNodes[i].x = d.node.x;\n d.node.childrenNodes[i].y = d.node.y;\n }\n if (d.arrangement !== \"snap\") persistFinalNodePositions(d, gd);\n });\n sankeyNode.on(\".drag\", null).call(dragBehavior);\n }\n function attachForce(sankeyNode, forceKey, d, gd) {\n switchToForceFormat(d.graph.nodes);\n var nodes = d.graph.nodes.filter(function(n) {\n return n.originalX === d.node.originalX;\n }).filter(function(n) {\n return !n.partOfGroup;\n });\n d.forceLayouts[forceKey] = d3Force.forceSimulation(nodes).alphaDecay(0).force(\"collide\", d3Force.forceCollide().radius(function(n) {\n return n.dy / 2 + d.nodePad / 2;\n }).strength(1).iterations(c.forceIterations)).force(\"constrain\", snappingForce(sankeyNode, forceKey, nodes, d, gd)).stop();\n }\n function startForce(sankeyNode, sankeyLink, d, forceKey, gd) {\n window.requestAnimationFrame(function faster() {\n var i;\n for (i = 0; i < c.forceTicksPerFrame; i++) {\n d.forceLayouts[forceKey].tick();\n }\n var nodes = d.graph.nodes;\n switchToSankeyFormat(nodes);\n d.sankey.update(d.graph);\n updateShapes(sankeyNode.filter(sameLayer(d)), sankeyLink);\n if (d.forceLayouts[forceKey].alpha() > 0) {\n window.requestAnimationFrame(faster);\n } else {\n var x = d.node.originalX;\n d.node.x0 = x - d.visibleWidth / 2;\n d.node.x1 = x + d.visibleWidth / 2;\n persistFinalNodePositions(d, gd);\n }\n });\n }\n function snappingForce(sankeyNode, forceKey, nodes, d) {\n return function _snappingForce() {\n var maxVelocity = 0;\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (n === d.interactionState.dragInProgress) {\n n.x = n.lastDraggedX;\n n.y = n.lastDraggedY;\n } else {\n n.vx = (n.originalX - n.x) / c.forceTicksPerFrame;\n n.y = Math.min(d.size - n.dy / 2, Math.max(n.dy / 2, n.y));\n }\n maxVelocity = Math.max(maxVelocity, Math.abs(n.vx), Math.abs(n.vy));\n }\n if (!d.interactionState.dragInProgress && maxVelocity < 0.1 && d.forceLayouts[forceKey].alpha() > 0) {\n d.forceLayouts[forceKey].alpha(0);\n }\n };\n }\n function persistFinalNodePositions(d, gd) {\n var x = [];\n var y = [];\n for (var i = 0; i < d.graph.nodes.length; i++) {\n var nodeX = (d.graph.nodes[i].x0 + d.graph.nodes[i].x1) / 2;\n var nodeY = (d.graph.nodes[i].y0 + d.graph.nodes[i].y1) / 2;\n x.push(nodeX / d.figure.width);\n y.push(nodeY / d.figure.height);\n }\n Registry.call(\"_guiRestyle\", gd, {\n \"node.x\": [x],\n \"node.y\": [y]\n }, d.trace.index).then(function() {\n if (gd._fullLayout._dragCover) gd._fullLayout._dragCover.remove();\n });\n }\n function persistOriginalPlace(nodes) {\n var distinctLayerPositions = [];\n var i;\n for (i = 0; i < nodes.length; i++) {\n nodes[i].originalX = (nodes[i].x0 + nodes[i].x1) / 2;\n nodes[i].originalY = (nodes[i].y0 + nodes[i].y1) / 2;\n if (distinctLayerPositions.indexOf(nodes[i].originalX) === -1) {\n distinctLayerPositions.push(nodes[i].originalX);\n }\n }\n distinctLayerPositions.sort(function(a, b) {\n return a - b;\n });\n for (i = 0; i < nodes.length; i++) {\n nodes[i].originalLayerIndex = distinctLayerPositions.indexOf(nodes[i].originalX);\n nodes[i].originalLayer = nodes[i].originalLayerIndex / (distinctLayerPositions.length - 1);\n }\n }\n function saveCurrentDragPosition(d) {\n d.lastDraggedX = d.x0 + d.dx / 2;\n d.lastDraggedY = d.y0 + d.dy / 2;\n }\n function sameLayer(d) {\n return function(n) {\n return n.node.originalX === d.node.originalX;\n };\n }\n function switchToForceFormat(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n nodes[i].y = (nodes[i].y0 + nodes[i].y1) / 2;\n nodes[i].x = (nodes[i].x0 + nodes[i].x1) / 2;\n }\n }\n function switchToSankeyFormat(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n nodes[i].y0 = nodes[i].y - nodes[i].dy / 2;\n nodes[i].y1 = nodes[i].y0 + nodes[i].dy;\n nodes[i].x0 = nodes[i].x - nodes[i].dx / 2;\n nodes[i].x1 = nodes[i].x0 + nodes[i].dx;\n }\n }\n module.exports = function(gd, svg, calcData, layout, callbacks) {\n var isStatic = gd._context.staticPlot;\n var firstRender = false;\n Lib.ensureSingle(gd._fullLayout._infolayer, \"g\", \"first-render\", function() {\n firstRender = true;\n });\n var dragcover = gd._fullLayout._dragCover;\n var styledData = calcData.filter(function(d) {\n return unwrap(d).trace.visible;\n }).map(sankeyModel.bind(null, layout));\n var sankey = svg.selectAll(\".\" + c.cn.sankey).data(styledData, keyFun);\n sankey.exit().remove();\n sankey.enter().append(\"g\").classed(c.cn.sankey, true).style(\"box-sizing\", \"content-box\").style(\"position\", \"absolute\").style(\"left\", 0).style(\"shape-rendering\", \"geometricPrecision\").style(\"pointer-events\", isStatic ? \"none\" : \"auto\").attr(\"transform\", sankeyTransform);\n sankey.each(function(d, i) {\n gd._fullData[i]._sankey = d;\n var dragboxClassName = \"bgsankey-\" + d.trace.uid + \"-\" + i;\n Lib.ensureSingle(gd._fullLayout._draggers, \"rect\", dragboxClassName);\n gd._fullData[i]._bgRect = d3.select(\".\" + dragboxClassName);\n gd._fullData[i]._bgRect.style(\"pointer-events\", isStatic ? \"none\" : \"all\").attr(\"width\", d.width).attr(\"height\", d.height).attr(\"x\", d.translateX).attr(\"y\", d.translateY).classed(\"bgsankey\", true).style({ fill: \"transparent\", \"stroke-width\": 0 });\n });\n sankey.transition().ease(c.ease).duration(c.duration).attr(\"transform\", sankeyTransform);\n var sankeyLinks = sankey.selectAll(\".\" + c.cn.sankeyLinks).data(repeat, keyFun);\n sankeyLinks.enter().append(\"g\").classed(c.cn.sankeyLinks, true).style(\"fill\", \"none\");\n var sankeyLink = sankeyLinks.selectAll(\".\" + c.cn.sankeyLink).data(function(d) {\n var links = d.graph.links;\n return links.filter(function(l) {\n return l.value;\n }).map(linkModel.bind(null, d));\n }, keyFun);\n sankeyLink.enter().append(\"path\").classed(c.cn.sankeyLink, true).call(attachPointerEvents, sankey, callbacks.linkEvents);\n sankeyLink.style(\"stroke\", function(d) {\n return salientEnough(d) ? Color2.tinyRGB(tinycolor(d.linkLineColor)) : d.tinyColorHue;\n }).style(\"stroke-opacity\", function(d) {\n return salientEnough(d) ? Color2.opacity(d.linkLineColor) : d.tinyColorAlpha;\n }).style(\"fill\", function(d) {\n return d.tinyColorHue;\n }).style(\"fill-opacity\", function(d) {\n return d.tinyColorAlpha;\n }).style(\"stroke-width\", function(d) {\n return salientEnough(d) ? d.linkLineWidth : 1;\n }).attr(\"d\", linkPath());\n sankeyLink.style(\"opacity\", function() {\n return gd._context.staticPlot || firstRender || dragcover ? 1 : 0;\n }).transition().ease(c.ease).duration(c.duration).style(\"opacity\", 1);\n sankeyLink.exit().transition().ease(c.ease).duration(c.duration).style(\"opacity\", 0).remove();\n var sankeyNodeSet = sankey.selectAll(\".\" + c.cn.sankeyNodeSet).data(repeat, keyFun);\n sankeyNodeSet.enter().append(\"g\").classed(c.cn.sankeyNodeSet, true);\n sankeyNodeSet.style(\"cursor\", function(d) {\n switch (d.arrangement) {\n case \"fixed\":\n return \"default\";\n case \"perpendicular\":\n return \"ns-resize\";\n default:\n return \"move\";\n }\n });\n var sankeyNode = sankeyNodeSet.selectAll(\".\" + c.cn.sankeyNode).data(function(d) {\n var nodes = d.graph.nodes;\n persistOriginalPlace(nodes);\n return nodes.map(nodeModel.bind(null, d));\n }, keyFun);\n sankeyNode.enter().append(\"g\").classed(c.cn.sankeyNode, true).call(updateNodePositions).style(\"opacity\", function(n) {\n return (gd._context.staticPlot || firstRender) && !n.partOfGroup ? 1 : 0;\n });\n sankeyNode.call(attachPointerEvents, sankey, callbacks.nodeEvents).call(attachDragHandler, sankeyLink, callbacks, gd);\n sankeyNode.transition().ease(c.ease).duration(c.duration).call(updateNodePositions).style(\"opacity\", function(n) {\n return n.partOfGroup ? 0 : 1;\n });\n sankeyNode.exit().transition().ease(c.ease).duration(c.duration).style(\"opacity\", 0).remove();\n var nodeRect = sankeyNode.selectAll(\".\" + c.cn.nodeRect).data(repeat);\n nodeRect.enter().append(\"rect\").classed(c.cn.nodeRect, true).call(sizeNode);\n nodeRect.style(\"stroke-width\", function(d) {\n return d.nodeLineWidth;\n }).style(\"stroke\", function(d) {\n return Color2.tinyRGB(tinycolor(d.nodeLineColor));\n }).style(\"stroke-opacity\", function(d) {\n return Color2.opacity(d.nodeLineColor);\n }).style(\"fill\", function(d) {\n return d.tinyColorHue;\n }).style(\"fill-opacity\", function(d) {\n return d.tinyColorAlpha;\n });\n nodeRect.transition().ease(c.ease).duration(c.duration).call(sizeNode);\n var nodeLabel = sankeyNode.selectAll(\".\" + c.cn.nodeLabel).data(repeat);\n nodeLabel.enter().append(\"text\").classed(c.cn.nodeLabel, true).style(\"cursor\", \"default\");\n nodeLabel.attr(\"data-notex\", 1).text(function(d) {\n return d.node.label;\n }).each(function(d) {\n var e = d3.select(this);\n Drawing.font(e, d.textFont);\n svgTextUtils.convertToTspans(e, gd);\n }).attr(\"text-anchor\", function(d) {\n return d.horizontal && d.left ? \"end\" : \"start\";\n }).attr(\"transform\", function(d) {\n var e = d3.select(this);\n var nLines = svgTextUtils.lineCount(e);\n var blockHeight = d.textFont.size * ((nLines - 1) * LINE_SPACING - CAP_SHIFT);\n var posX = d.nodeLineWidth / 2 + TEXTPAD;\n var posY = ((d.horizontal ? d.visibleHeight : d.visibleWidth) - blockHeight) / 2;\n if (d.horizontal) {\n if (d.left) {\n posX = -posX;\n } else {\n posX += d.visibleWidth;\n }\n }\n var flipText = d.horizontal ? \"\" : \"scale(-1,1)\" + strRotate(90);\n return strTranslate(\n d.horizontal ? posX : posY,\n d.horizontal ? posY : posX\n ) + flipText;\n });\n nodeLabel.transition().ease(c.ease).duration(c.duration);\n };\n }\n });\n\n // src/traces/sankey/plot.js\n var require_plot29 = __commonJS({\n \"src/traces/sankey/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var render = require_render();\n var Fx = require_fx();\n var Color2 = require_color();\n var cn = require_constants29().cn;\n var _ = Lib._;\n function renderableValuePresent(d) {\n return d !== \"\";\n }\n function ownTrace(selection, d) {\n return selection.filter(function(s) {\n return s.key === d.traceId;\n });\n }\n function makeTranslucent(element, alpha) {\n d3.select(element).select(\"path\").style(\"fill-opacity\", alpha);\n d3.select(element).select(\"rect\").style(\"fill-opacity\", alpha);\n }\n function makeTextContrasty(element) {\n d3.select(element).select(\"text.name\").style(\"fill\", \"black\");\n }\n function relatedLinks(d) {\n return function(l) {\n return d.node.sourceLinks.indexOf(l.link) !== -1 || d.node.targetLinks.indexOf(l.link) !== -1;\n };\n }\n function relatedNodes(l) {\n return function(d) {\n return d.node.sourceLinks.indexOf(l.link) !== -1 || d.node.targetLinks.indexOf(l.link) !== -1;\n };\n }\n function nodeHoveredStyle(sankeyNode, d, sankey) {\n if (d && sankey) {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyLink).filter(relatedLinks(d)).call(linkHoveredStyle.bind(0, d, sankey, false));\n }\n }\n function nodeNonHoveredStyle(sankeyNode, d, sankey) {\n if (d && sankey) {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyLink).filter(relatedLinks(d)).call(linkNonHoveredStyle.bind(0, d, sankey, false));\n }\n }\n function linkHoveredStyle(d, sankey, visitNodes, sankeyLink) {\n sankeyLink.style(\"fill\", function(l) {\n if (!l.link.concentrationscale) {\n return l.tinyColorHoverHue;\n }\n }).style(\"fill-opacity\", function(l) {\n if (!l.link.concentrationscale) {\n return l.tinyColorHoverAlpha;\n }\n });\n sankeyLink.each(function(curLink) {\n var label = curLink.link.label;\n if (label !== \"\") {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyLink).filter(function(l) {\n return l.link.label === label;\n }).style(\"fill\", function(l) {\n if (!l.link.concentrationscale) {\n return l.tinyColorHoverHue;\n }\n }).style(\"fill-opacity\", function(l) {\n if (!l.link.concentrationscale) {\n return l.tinyColorHoverAlpha;\n }\n });\n }\n });\n if (visitNodes) {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyNode).filter(relatedNodes(d)).call(nodeHoveredStyle);\n }\n }\n function linkNonHoveredStyle(d, sankey, visitNodes, sankeyLink) {\n sankeyLink.style(\"fill\", function(l) {\n return l.tinyColorHue;\n }).style(\"fill-opacity\", function(l) {\n return l.tinyColorAlpha;\n });\n sankeyLink.each(function(curLink) {\n var label = curLink.link.label;\n if (label !== \"\") {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyLink).filter(function(l) {\n return l.link.label === label;\n }).style(\"fill\", function(l) {\n return l.tinyColorHue;\n }).style(\"fill-opacity\", function(l) {\n return l.tinyColorAlpha;\n });\n }\n });\n if (visitNodes) {\n ownTrace(sankey, d).selectAll(cn.sankeyNode).filter(relatedNodes(d)).call(nodeNonHoveredStyle);\n }\n }\n function castHoverOption(trace, attr) {\n var labelOpts = trace.hoverlabel || {};\n var val = Lib.nestedProperty(labelOpts, attr).get();\n return Array.isArray(val) ? false : val;\n }\n module.exports = function plot(gd, calcData) {\n var fullLayout = gd._fullLayout;\n var svg = fullLayout._paper;\n var size = fullLayout._size;\n for (var i = 0; i < gd._fullData.length; i++) {\n if (!gd._fullData[i].visible) continue;\n if (gd._fullData[i].type !== cn.sankey) continue;\n if (!gd._fullData[i]._viewInitial) {\n var node = gd._fullData[i].node;\n gd._fullData[i]._viewInitial = {\n node: {\n groups: node.groups.slice(),\n x: node.x.slice(),\n y: node.y.slice()\n }\n };\n }\n }\n var linkSelect = function(element, d) {\n var evt = d.link;\n evt.originalEvent = d3.event;\n gd._hoverdata = [evt];\n Fx.click(gd, { target: true });\n };\n var linkHover = function(element, d, sankey) {\n if (gd._fullLayout.hovermode === false) return;\n d3.select(element).call(linkHoveredStyle.bind(0, d, sankey, true));\n if (d.link.trace.link.hoverinfo !== \"skip\") {\n d.link.fullData = d.link.trace;\n gd.emit(\"plotly_hover\", {\n event: d3.event,\n points: [d.link]\n });\n }\n };\n var sourceLabel = _(gd, \"source:\") + \" \";\n var targetLabel = _(gd, \"target:\") + \" \";\n var concentrationLabel = _(gd, \"concentration:\") + \" \";\n var incomingLabel = _(gd, \"incoming flow count:\") + \" \";\n var outgoingLabel = _(gd, \"outgoing flow count:\") + \" \";\n var linkHoverFollow = function(element, d) {\n if (gd._fullLayout.hovermode === false) return;\n var obj = d.link.trace.link;\n if (obj.hoverinfo === \"none\" || obj.hoverinfo === \"skip\") return;\n var hoverItems = [];\n function hoverCenterPosition(link2) {\n var hoverCenterX, hoverCenterY;\n if (link2.circular) {\n hoverCenterX = (link2.circularPathData.leftInnerExtent + link2.circularPathData.rightInnerExtent) / 2;\n hoverCenterY = link2.circularPathData.verticalFullExtent;\n } else {\n hoverCenterX = (link2.source.x1 + link2.target.x0) / 2;\n hoverCenterY = (link2.y0 + link2.y1) / 2;\n }\n var center = [hoverCenterX, hoverCenterY];\n if (link2.trace.orientation === \"v\") center.reverse();\n center[0] += d.parent.translateX;\n center[1] += d.parent.translateY;\n return center;\n }\n var anchorIndex = 0;\n for (var i2 = 0; i2 < d.flow.links.length; i2++) {\n var link = d.flow.links[i2];\n if (gd._fullLayout.hovermode === \"closest\" && d.link.pointNumber !== link.pointNumber) continue;\n if (d.link.pointNumber === link.pointNumber) anchorIndex = i2;\n link.fullData = link.trace;\n obj = d.link.trace.link;\n var hoverCenter = hoverCenterPosition(link);\n var hovertemplateLabels = { valueLabel: numberFormat(d.valueFormat)(link.value) + d.valueSuffix };\n hoverItems.push({\n x: hoverCenter[0],\n y: hoverCenter[1],\n name: hovertemplateLabels.valueLabel,\n text: [\n link.label || \"\",\n sourceLabel + link.source.label,\n targetLabel + link.target.label,\n link.concentrationscale ? concentrationLabel + numberFormat(\"%0.2f\")(link.flow.labelConcentration) : \"\"\n ].filter(renderableValuePresent).join(\"
\"),\n color: castHoverOption(obj, \"bgcolor\") || Color2.addOpacity(link.color, 1),\n borderColor: castHoverOption(obj, \"bordercolor\"),\n fontFamily: castHoverOption(obj, \"font.family\"),\n fontSize: castHoverOption(obj, \"font.size\"),\n fontColor: castHoverOption(obj, \"font.color\"),\n fontWeight: castHoverOption(obj, \"font.weight\"),\n fontStyle: castHoverOption(obj, \"font.style\"),\n fontVariant: castHoverOption(obj, \"font.variant\"),\n fontTextcase: castHoverOption(obj, \"font.textcase\"),\n fontLineposition: castHoverOption(obj, \"font.lineposition\"),\n fontShadow: castHoverOption(obj, \"font.shadow\"),\n nameLength: castHoverOption(obj, \"namelength\"),\n textAlign: castHoverOption(obj, \"align\"),\n idealAlign: d3.event.x < hoverCenter[0] ? \"right\" : \"left\",\n hovertemplate: obj.hovertemplate,\n hovertemplateLabels,\n eventData: [link]\n });\n }\n var tooltips = Fx.loneHover(hoverItems, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd,\n anchorIndex\n });\n tooltips.each(function() {\n var tooltip = this;\n if (!d.link.concentrationscale) {\n makeTranslucent(tooltip, 0.65);\n }\n makeTextContrasty(tooltip);\n });\n };\n var linkUnhover = function(element, d, sankey) {\n if (gd._fullLayout.hovermode === false) return;\n d3.select(element).call(linkNonHoveredStyle.bind(0, d, sankey, true));\n if (d.link.trace.link.hoverinfo !== \"skip\") {\n d.link.fullData = d.link.trace;\n gd.emit(\"plotly_unhover\", {\n event: d3.event,\n points: [d.link]\n });\n }\n Fx.loneUnhover(fullLayout._hoverlayer.node());\n };\n var nodeSelect = function(element, d, sankey) {\n var evt = d.node;\n evt.originalEvent = d3.event;\n gd._hoverdata = [evt];\n d3.select(element).call(nodeNonHoveredStyle, d, sankey);\n Fx.click(gd, { target: true });\n };\n var nodeHover = function(element, d, sankey) {\n if (gd._fullLayout.hovermode === false) return;\n d3.select(element).call(nodeHoveredStyle, d, sankey);\n if (d.node.trace.node.hoverinfo !== \"skip\") {\n d.node.fullData = d.node.trace;\n gd.emit(\"plotly_hover\", {\n event: d3.event,\n points: [d.node]\n });\n }\n };\n var nodeHoverFollow = function(element, d) {\n if (gd._fullLayout.hovermode === false) return;\n var obj = d.node.trace.node;\n if (obj.hoverinfo === \"none\" || obj.hoverinfo === \"skip\") return;\n var nodeRect = d3.select(element).select(\".\" + cn.nodeRect);\n var rootBBox = gd._fullLayout._paperdiv.node().getBoundingClientRect();\n var boundingBox = nodeRect.node().getBoundingClientRect();\n var hoverCenterX0 = boundingBox.left - 2 - rootBBox.left;\n var hoverCenterX1 = boundingBox.right + 2 - rootBBox.left;\n var hoverCenterY = boundingBox.top + boundingBox.height / 4 - rootBBox.top;\n var hovertemplateLabels = { valueLabel: numberFormat(d.valueFormat)(d.node.value) + d.valueSuffix };\n d.node.fullData = d.node.trace;\n gd._fullLayout._calcInverseTransform(gd);\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n var tooltip = Fx.loneHover({\n x0: scaleX * hoverCenterX0,\n x1: scaleX * hoverCenterX1,\n y: scaleY * hoverCenterY,\n name: numberFormat(d.valueFormat)(d.node.value) + d.valueSuffix,\n text: [\n d.node.label,\n incomingLabel + d.node.targetLinks.length,\n outgoingLabel + d.node.sourceLinks.length\n ].filter(renderableValuePresent).join(\"
\"),\n color: castHoverOption(obj, \"bgcolor\") || d.tinyColorHue,\n borderColor: castHoverOption(obj, \"bordercolor\"),\n fontFamily: castHoverOption(obj, \"font.family\"),\n fontSize: castHoverOption(obj, \"font.size\"),\n fontColor: castHoverOption(obj, \"font.color\"),\n fontWeight: castHoverOption(obj, \"font.weight\"),\n fontStyle: castHoverOption(obj, \"font.style\"),\n fontVariant: castHoverOption(obj, \"font.variant\"),\n fontTextcase: castHoverOption(obj, \"font.textcase\"),\n fontLineposition: castHoverOption(obj, \"font.lineposition\"),\n fontShadow: castHoverOption(obj, \"font.shadow\"),\n nameLength: castHoverOption(obj, \"namelength\"),\n textAlign: castHoverOption(obj, \"align\"),\n idealAlign: \"left\",\n hovertemplate: obj.hovertemplate,\n hovertemplateLabels,\n eventData: [d.node]\n }, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd\n });\n makeTranslucent(tooltip, 0.85);\n makeTextContrasty(tooltip);\n };\n var nodeUnhover = function(element, d, sankey) {\n if (gd._fullLayout.hovermode === false) return;\n d3.select(element).call(nodeNonHoveredStyle, d, sankey);\n if (d.node.trace.node.hoverinfo !== \"skip\") {\n d.node.fullData = d.node.trace;\n gd.emit(\"plotly_unhover\", {\n event: d3.event,\n points: [d.node]\n });\n }\n Fx.loneUnhover(fullLayout._hoverlayer.node());\n };\n render(\n gd,\n svg,\n calcData,\n {\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n {\n linkEvents: {\n hover: linkHover,\n follow: linkHoverFollow,\n unhover: linkUnhover,\n select: linkSelect\n },\n nodeEvents: {\n hover: nodeHover,\n follow: nodeHoverFollow,\n unhover: nodeUnhover,\n select: nodeSelect\n }\n }\n );\n };\n }\n });\n\n // src/traces/sankey/base_plot.js\n var require_base_plot9 = __commonJS({\n \"src/traces/sankey/base_plot.js\"(exports) {\n \"use strict\";\n var overrideAll = require_edit_types().overrideAll;\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var plot = require_plot29();\n var fxAttrs = require_layout_attributes();\n var setCursor = require_setcursor();\n var dragElement = require_dragelement();\n var prepSelect = require_selections().prepSelect;\n var Lib = require_lib();\n var Registry = require_registry();\n var SANKEY = \"sankey\";\n exports.name = SANKEY;\n exports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n }, \"plot\", \"nested\");\n exports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, SANKEY)[0];\n plot(gd, calcData);\n exports.updateFx(gd);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadPlot = oldFullLayout._has && oldFullLayout._has(SANKEY);\n var hasPlot = newFullLayout._has && newFullLayout._has(SANKEY);\n if (hadPlot && !hasPlot) {\n oldFullLayout._paperdiv.selectAll(\".sankey\").remove();\n oldFullLayout._paperdiv.selectAll(\".bgsankey\").remove();\n }\n };\n exports.updateFx = function(gd) {\n for (var i = 0; i < gd._fullData.length; i++) {\n subplotUpdateFx(gd, i);\n }\n };\n function subplotUpdateFx(gd, index) {\n var trace = gd._fullData[index];\n var fullLayout = gd._fullLayout;\n var dragMode = fullLayout.dragmode;\n var cursor = fullLayout.dragmode === \"pan\" ? \"move\" : \"crosshair\";\n var bgRect = trace._bgRect;\n if (!bgRect) return;\n if (dragMode === \"pan\" || dragMode === \"zoom\") return;\n setCursor(bgRect, cursor);\n var xaxis = {\n _id: \"x\",\n c2p: Lib.identity,\n _offset: trace._sankey.translateX,\n _length: trace._sankey.width\n };\n var yaxis = {\n _id: \"y\",\n c2p: Lib.identity,\n _offset: trace._sankey.translateY,\n _length: trace._sankey.height\n };\n var dragOptions = {\n gd,\n element: bgRect.node(),\n plotinfo: {\n id: index,\n xaxis,\n yaxis,\n fillRangeItems: Lib.noop\n },\n subplot: index,\n // create mock x/y axes for hover routine\n xaxes: [xaxis],\n yaxes: [yaxis],\n doneFnCompleted: function(selection) {\n var traceNow = gd._fullData[index];\n var newGroups;\n var oldGroups = traceNow.node.groups.slice();\n var newGroup = [];\n function findNode(pt) {\n var nodes = traceNow._sankey.graph.nodes;\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].pointNumber === pt) return nodes[i];\n }\n }\n for (var j = 0; j < selection.length; j++) {\n var node = findNode(selection[j].pointNumber);\n if (!node) continue;\n if (node.group) {\n for (var k = 0; k < node.childrenNodes.length; k++) {\n newGroup.push(node.childrenNodes[k].pointNumber);\n }\n oldGroups[node.pointNumber - traceNow.node._count] = false;\n } else {\n newGroup.push(node.pointNumber);\n }\n }\n newGroups = oldGroups.filter(Boolean).concat([newGroup]);\n Registry.call(\"_guiRestyle\", gd, {\n \"node.groups\": [newGroups]\n }, index);\n }\n };\n dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, dragOptions, dragMode);\n };\n dragElement.init(dragOptions);\n }\n }\n });\n\n // src/traces/sankey/select.js\n var require_select11 = __commonJS({\n \"src/traces/sankey/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var selection = [];\n var fullData = cd[0].trace;\n var nodes = fullData._sankey.graph.nodes;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n if (node.partOfGroup) continue;\n var pos = [(node.x0 + node.x1) / 2, (node.y0 + node.y1) / 2];\n if (fullData.orientation === \"v\") pos.reverse();\n if (selectionTester && selectionTester.contains(pos, false, i, searchInfo)) {\n selection.push({\n pointNumber: node.pointNumber\n // TODO: add eventData\n });\n }\n }\n return selection;\n };\n }\n });\n\n // src/traces/sankey/index.js\n var require_sankey = __commonJS({\n \"src/traces/sankey/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes60(),\n supplyDefaults: require_defaults56(),\n calc: require_calc35(),\n plot: require_plot29(),\n moduleType: \"trace\",\n name: \"sankey\",\n basePlotModule: require_base_plot9(),\n selectPoints: require_select11(),\n categories: [\"noOpacity\"],\n meta: {}\n };\n }\n });\n\n // lib/sankey.js\n var require_sankey2 = __commonJS({\n \"lib/sankey.js\"(exports, module) {\n \"use strict\";\n module.exports = require_sankey();\n }\n });\n\n // src/traces/indicator/base_plot.js\n var require_base_plot10 = __commonJS({\n \"src/traces/indicator/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"indicator\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/indicator/attributes.js\n var require_attributes61 = __commonJS({\n \"src/traces/indicator/attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n var extendDeep = require_extend().extendDeep;\n var overrideAll = require_edit_types().overrideAll;\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var domainAttrs = require_domain().attributes;\n var axesAttrs = require_layout_attributes4();\n var templatedArray = require_plot_template().templatedArray;\n var delta = require_delta();\n var descriptionOnlyNumbers = require_axis_format_attributes().descriptionOnlyNumbers;\n var textFontAttrs = fontAttrs({\n editType: \"plot\",\n colorEditType: \"plot\"\n });\n var gaugeBarAttrs = {\n color: {\n valType: \"color\",\n editType: \"plot\"\n },\n line: {\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"plot\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n thickness: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"plot\"\n },\n editType: \"calc\"\n };\n var rangeAttr = {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"plot\" },\n { valType: \"number\", editType: \"plot\" }\n ],\n editType: \"plot\"\n };\n var stepsAttrs = templatedArray(\"step\", extendDeep({}, gaugeBarAttrs, {\n range: rangeAttr\n }));\n module.exports = {\n mode: {\n valType: \"flaglist\",\n editType: \"calc\",\n flags: [\"number\", \"delta\", \"gauge\"],\n dflt: \"number\"\n },\n value: {\n valType: \"number\",\n editType: \"calc\",\n anim: true\n },\n align: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n editType: \"plot\"\n },\n // position\n domain: domainAttrs({ name: \"indicator\", trace: true, editType: \"calc\" }),\n title: {\n text: {\n valType: \"string\",\n editType: \"plot\"\n },\n align: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n editType: \"plot\"\n },\n font: extendFlat({}, textFontAttrs, {}),\n editType: \"plot\"\n },\n number: {\n valueformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\",\n description: descriptionOnlyNumbers(\"value\")\n },\n font: extendFlat({}, textFontAttrs, {}),\n prefix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n suffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n delta: {\n reference: {\n valType: \"number\",\n editType: \"calc\"\n },\n position: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\", \"left\", \"right\"],\n dflt: \"bottom\",\n editType: \"plot\"\n },\n relative: {\n valType: \"boolean\",\n editType: \"plot\",\n dflt: false\n },\n valueformat: {\n valType: \"string\",\n editType: \"plot\",\n description: descriptionOnlyNumbers(\"value\")\n },\n increasing: {\n symbol: {\n valType: \"string\",\n dflt: delta.INCREASING.SYMBOL,\n editType: \"plot\"\n },\n color: {\n valType: \"color\",\n dflt: delta.INCREASING.COLOR,\n editType: \"plot\"\n },\n // TODO: add attribute to show sign\n editType: \"plot\"\n },\n decreasing: {\n symbol: {\n valType: \"string\",\n dflt: delta.DECREASING.SYMBOL,\n editType: \"plot\"\n },\n color: {\n valType: \"color\",\n dflt: delta.DECREASING.COLOR,\n editType: \"plot\"\n },\n // TODO: add attribute to hide sign\n editType: \"plot\"\n },\n font: extendFlat({}, textFontAttrs, {}),\n prefix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n suffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n gauge: {\n shape: {\n valType: \"enumerated\",\n editType: \"plot\",\n dflt: \"angular\",\n values: [\"angular\", \"bullet\"]\n },\n bar: extendDeep({}, gaugeBarAttrs, {\n color: { dflt: \"green\" }\n }),\n // Background of the gauge\n bgcolor: {\n valType: \"color\",\n editType: \"plot\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"plot\"\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"plot\"\n },\n axis: overrideAll({\n range: rangeAttr,\n visible: extendFlat({}, axesAttrs.visible, {\n dflt: true\n }),\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.minor.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, { dflt: \"outside\" }),\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n ticklabelstep: axesAttrs.ticklabelstep,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n tickfont: fontAttrs({}),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n showexponent: axesAttrs.showexponent,\n editType: \"plot\"\n }, \"plot\"),\n // Steps (or ranges) and thresholds\n steps: stepsAttrs,\n threshold: {\n line: {\n color: extendFlat({}, gaugeBarAttrs.line.color, {}),\n width: extendFlat({}, gaugeBarAttrs.line.width, {\n dflt: 1\n }),\n editType: \"plot\"\n },\n thickness: extendFlat({}, gaugeBarAttrs.thickness, {\n dflt: 0.85\n }),\n value: {\n valType: \"number\",\n editType: \"calc\",\n dflt: false\n },\n editType: \"plot\"\n },\n editType: \"plot\"\n // TODO: in future version, add marker: (bar|needle)\n }\n };\n }\n });\n\n // src/traces/indicator/constants.js\n var require_constants30 = __commonJS({\n \"src/traces/indicator/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // Defaults for delta\n defaultNumberFontSize: 80,\n bulletNumberDomainSize: 0.25,\n bulletPadding: 0.025,\n innerRadius: 0.75,\n valueThickness: 0.5,\n // thickness of value bars relative to full thickness,\n titlePadding: 5,\n horizontalPadding: 10\n };\n }\n });\n\n // src/traces/indicator/defaults.js\n var require_defaults57 = __commonJS({\n \"src/traces/indicator/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes61();\n var handleDomainDefaults = require_domain().defaults;\n var Template = require_plot_template();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var cn = require_constants30();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n handleDomainDefaults(traceOut, layout, coerce);\n coerce(\"mode\");\n traceOut._hasNumber = traceOut.mode.indexOf(\"number\") !== -1;\n traceOut._hasDelta = traceOut.mode.indexOf(\"delta\") !== -1;\n traceOut._hasGauge = traceOut.mode.indexOf(\"gauge\") !== -1;\n var value = coerce(\"value\");\n traceOut._range = [0, typeof value === \"number\" ? 1.5 * value : 1];\n var auto = new Array(2);\n var bignumberFontSize;\n if (traceOut._hasNumber) {\n coerce(\"number.valueformat\");\n var numberFontDflt = Lib.extendFlat({}, layout.font);\n numberFontDflt.size = void 0;\n Lib.coerceFont(coerce, \"number.font\", numberFontDflt);\n if (traceOut.number.font.size === void 0) {\n traceOut.number.font.size = cn.defaultNumberFontSize;\n auto[0] = true;\n }\n coerce(\"number.prefix\");\n coerce(\"number.suffix\");\n bignumberFontSize = traceOut.number.font.size;\n }\n var deltaFontSize;\n if (traceOut._hasDelta) {\n var deltaFontDflt = Lib.extendFlat({}, layout.font);\n deltaFontDflt.size = void 0;\n Lib.coerceFont(coerce, \"delta.font\", deltaFontDflt);\n if (traceOut.delta.font.size === void 0) {\n traceOut.delta.font.size = (traceOut._hasNumber ? 0.5 : 1) * (bignumberFontSize || cn.defaultNumberFontSize);\n auto[1] = true;\n }\n coerce(\"delta.reference\", traceOut.value);\n coerce(\"delta.relative\");\n coerce(\"delta.valueformat\", traceOut.delta.relative ? \"2%\" : \"\");\n coerce(\"delta.increasing.symbol\");\n coerce(\"delta.increasing.color\");\n coerce(\"delta.decreasing.symbol\");\n coerce(\"delta.decreasing.color\");\n coerce(\"delta.position\");\n coerce(\"delta.prefix\");\n coerce(\"delta.suffix\");\n deltaFontSize = traceOut.delta.font.size;\n }\n traceOut._scaleNumbers = (!traceOut._hasNumber || auto[0]) && (!traceOut._hasDelta || auto[1]) || false;\n var titleFontDflt = Lib.extendFlat({}, layout.font);\n titleFontDflt.size = 0.25 * (bignumberFontSize || deltaFontSize || cn.defaultNumberFontSize);\n Lib.coerceFont(coerce, \"title.font\", titleFontDflt);\n coerce(\"title.text\");\n var gaugeIn, gaugeOut, axisIn, axisOut;\n function coerceGauge(attr, dflt) {\n return Lib.coerce(gaugeIn, gaugeOut, attributes.gauge, attr, dflt);\n }\n function coerceGaugeAxis(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, attributes.gauge.axis, attr, dflt);\n }\n if (traceOut._hasGauge) {\n gaugeIn = traceIn.gauge;\n if (!gaugeIn) gaugeIn = {};\n gaugeOut = Template.newContainer(traceOut, \"gauge\");\n coerceGauge(\"shape\");\n var isBullet = traceOut._isBullet = traceOut.gauge.shape === \"bullet\";\n if (!isBullet) {\n coerce(\"title.align\", \"center\");\n }\n var isAngular = traceOut._isAngular = traceOut.gauge.shape === \"angular\";\n if (!isAngular) {\n coerce(\"align\", \"center\");\n }\n coerceGauge(\"bgcolor\", layout.paper_bgcolor);\n coerceGauge(\"borderwidth\");\n coerceGauge(\"bordercolor\");\n coerceGauge(\"bar.color\");\n coerceGauge(\"bar.line.color\");\n coerceGauge(\"bar.line.width\");\n var defaultBarThickness = cn.valueThickness * (traceOut.gauge.shape === \"bullet\" ? 0.5 : 1);\n coerceGauge(\"bar.thickness\", defaultBarThickness);\n handleArrayContainerDefaults(gaugeIn, gaugeOut, {\n name: \"steps\",\n handleItemDefaults: stepDefaults\n });\n coerceGauge(\"threshold.value\");\n coerceGauge(\"threshold.thickness\");\n coerceGauge(\"threshold.line.width\");\n coerceGauge(\"threshold.line.color\");\n axisIn = {};\n if (gaugeIn) axisIn = gaugeIn.axis || {};\n axisOut = Template.newContainer(gaugeOut, \"axis\");\n coerceGaugeAxis(\"visible\");\n traceOut._range = coerceGaugeAxis(\"range\", traceOut._range);\n var opts = {\n font: layout.font,\n noAutotickangles: true,\n outerTicks: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true\n };\n handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, \"linear\");\n handlePrefixSuffixDefaults(axisIn, axisOut, coerceGaugeAxis, \"linear\", opts);\n handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, \"linear\", opts);\n handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, opts);\n } else {\n coerce(\"title.align\", \"center\");\n coerce(\"align\", \"center\");\n traceOut._isAngular = traceOut._isBullet = false;\n }\n traceOut._length = null;\n }\n function stepDefaults(stepIn, stepOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(stepIn, stepOut, attributes.gauge.steps, attr, dflt);\n }\n coerce(\"color\");\n coerce(\"line.color\");\n coerce(\"line.width\");\n coerce(\"range\");\n coerce(\"thickness\");\n }\n module.exports = {\n supplyDefaults\n };\n }\n });\n\n // src/traces/indicator/calc.js\n var require_calc36 = __commonJS({\n \"src/traces/indicator/calc.js\"(exports, module) {\n \"use strict\";\n function calc(gd, trace) {\n var cd = [];\n var lastReading = trace.value;\n if (!(typeof trace._lastValue === \"number\")) trace._lastValue = trace.value;\n var secondLastReading = trace._lastValue;\n var deltaRef = secondLastReading;\n if (trace._hasDelta && typeof trace.delta.reference === \"number\") {\n deltaRef = trace.delta.reference;\n }\n cd[0] = {\n y: lastReading,\n lastY: secondLastReading,\n delta: lastReading - deltaRef,\n relativeDelta: (lastReading - deltaRef) / deltaRef\n };\n return cd;\n }\n module.exports = {\n calc\n };\n }\n });\n\n // src/traces/indicator/plot.js\n var require_plot30 = __commonJS({\n \"src/traces/indicator/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var interpolate = (init_src2(), __toCommonJS(src_exports)).interpolate;\n var interpolateNumber = (init_src2(), __toCommonJS(src_exports)).interpolateNumber;\n var Lib = require_lib();\n var strScale = Lib.strScale;\n var strTranslate = Lib.strTranslate;\n var rad2deg = Lib.rad2deg;\n var MID_SHIFT = require_alignment().MID_SHIFT;\n var Drawing = require_drawing();\n var cn = require_constants30();\n var svgTextUtils = require_svg_text_utils();\n var Axes = require_axes();\n var handleAxisDefaults = require_axis_defaults();\n var handleAxisPositionDefaults = require_position_defaults();\n var axisLayoutAttrs = require_layout_attributes4();\n var Color2 = require_color();\n var anchor = {\n left: \"start\",\n center: \"middle\",\n right: \"end\"\n };\n var position = {\n left: 0,\n center: 0.5,\n right: 1\n };\n var SI_PREFIX = /[yzafpnµmkMGTPEZY]/;\n function hasTransition(transitionOpts) {\n return transitionOpts && transitionOpts.duration > 0;\n }\n module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var onComplete;\n if (hasTransition(transitionOpts)) {\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n }\n Lib.makeTraceGroups(fullLayout._indicatorlayer, cdModule, \"trace\").each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var plotGroup = d3.select(this);\n var hasGauge = trace._hasGauge;\n var isAngular = trace._isAngular;\n var isBullet = trace._isBullet;\n var domain = trace.domain;\n var size = {\n w: fullLayout._size.w * (domain.x[1] - domain.x[0]),\n h: fullLayout._size.h * (domain.y[1] - domain.y[0]),\n l: fullLayout._size.l + fullLayout._size.w * domain.x[0],\n r: fullLayout._size.r + fullLayout._size.w * (1 - domain.x[1]),\n t: fullLayout._size.t + fullLayout._size.h * (1 - domain.y[1]),\n b: fullLayout._size.b + fullLayout._size.h * domain.y[0]\n };\n var centerX = size.l + size.w / 2;\n var centerY = size.t + size.h / 2;\n var radius = Math.min(size.w / 2, size.h);\n var innerRadius = cn.innerRadius * radius;\n var numbersX, numbersY, numbersScaler;\n var numbersAlign = trace.align || \"center\";\n numbersY = centerY;\n if (!hasGauge) {\n numbersX = size.l + position[numbersAlign] * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, size.w, size.h);\n };\n } else {\n if (isAngular) {\n numbersX = centerX;\n numbersY = centerY + radius / 2;\n numbersScaler = function(el) {\n return fitTextInsideCircle(el, 0.9 * innerRadius);\n };\n }\n if (isBullet) {\n var padding = cn.bulletPadding;\n var p = 1 - cn.bulletNumberDomainSize + padding;\n numbersX = size.l + (p + (1 - p) * position[numbersAlign]) * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, (cn.bulletNumberDomainSize - padding) * size.w, size.h);\n };\n }\n }\n drawNumbers(gd, plotGroup, cd, {\n numbersX,\n numbersY,\n numbersScaler,\n transitionOpts,\n onComplete\n });\n var gaugeBg, gaugeOutline;\n if (hasGauge) {\n gaugeBg = {\n range: trace.gauge.axis.range,\n color: trace.gauge.bgcolor,\n line: {\n color: trace.gauge.bordercolor,\n width: 0\n },\n thickness: 1\n };\n gaugeOutline = {\n range: trace.gauge.axis.range,\n color: \"rgba(0, 0, 0, 0)\",\n line: {\n color: trace.gauge.bordercolor,\n width: trace.gauge.borderwidth\n },\n thickness: 1\n };\n }\n var angularGauge = plotGroup.selectAll(\"g.angular\").data(isAngular ? cd : []);\n angularGauge.exit().remove();\n var angularaxisLayer = plotGroup.selectAll(\"g.angularaxis\").data(isAngular ? cd : []);\n angularaxisLayer.exit().remove();\n if (isAngular) {\n drawAngularGauge(gd, plotGroup, cd, {\n radius,\n innerRadius,\n gauge: angularGauge,\n layer: angularaxisLayer,\n size,\n gaugeBg,\n gaugeOutline,\n transitionOpts,\n onComplete\n });\n }\n var bulletGauge = plotGroup.selectAll(\"g.bullet\").data(isBullet ? cd : []);\n bulletGauge.exit().remove();\n var bulletaxisLayer = plotGroup.selectAll(\"g.bulletaxis\").data(isBullet ? cd : []);\n bulletaxisLayer.exit().remove();\n if (isBullet) {\n drawBulletGauge(gd, plotGroup, cd, {\n gauge: bulletGauge,\n layer: bulletaxisLayer,\n size,\n gaugeBg,\n gaugeOutline,\n transitionOpts,\n onComplete\n });\n }\n var title = plotGroup.selectAll(\"text.title\").data(cd);\n title.exit().remove();\n title.enter().append(\"text\").classed(\"title\", true);\n title.attr(\"text-anchor\", function() {\n return isBullet ? anchor.right : anchor[trace.title.align];\n }).text(trace.title.text).call(Drawing.font, trace.title.font).call(svgTextUtils.convertToTspans, gd);\n title.attr(\"transform\", function() {\n var titleX = size.l + size.w * position[trace.title.align];\n var titleY;\n var titlePadding = cn.titlePadding;\n var titlebBox = Drawing.bBox(title.node());\n if (hasGauge) {\n if (isAngular) {\n if (trace.gauge.axis.visible) {\n var bBox = Drawing.bBox(angularaxisLayer.node());\n titleY = bBox.top - titlePadding - titlebBox.bottom;\n } else {\n titleY = size.t + size.h / 2 - radius / 2 - titlebBox.bottom - titlePadding;\n }\n }\n if (isBullet) {\n titleY = numbersY - (titlebBox.top + titlebBox.bottom) / 2;\n titleX = size.l - cn.bulletPadding * size.w;\n }\n } else {\n titleY = trace._numbersTop - titlePadding - titlebBox.bottom;\n }\n return strTranslate(titleX, titleY);\n });\n });\n };\n function drawBulletGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n var bullet = opts.gauge;\n var axisLayer = opts.layer;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var size = opts.size;\n var domain = trace.domain;\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n var ax, vals, transFn, tickSign, shift;\n bullet.enter().append(\"g\").classed(\"bullet\", true);\n bullet.attr(\"transform\", strTranslate(size.l, size.t));\n axisLayer.enter().append(\"g\").classed(\"bulletaxis\", true).classed(\"crisp\", true);\n axisLayer.selectAll(\"g.xbulletaxistick,path,text\").remove();\n var bulletHeight = size.h;\n var innerBulletHeight = trace.gauge.bar.thickness * bulletHeight;\n var bulletLeft = domain.x[0];\n var bulletRight = domain.x[0] + (domain.x[1] - domain.x[0]) * (trace._hasNumber || trace._hasDelta ? 1 - cn.bulletNumberDomainSize : 1);\n ax = mockAxis(gd, trace.gauge.axis);\n ax._id = \"xbulletaxis\";\n ax.domain = [bulletLeft, bulletRight];\n ax.setScale();\n vals = Axes.calcTicks(ax);\n transFn = Axes.makeTransTickFn(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n shift = size.t + size.h;\n if (ax.visible) {\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === \"inside\" ? Axes.clipEnds(ax, vals) : vals,\n layer: axisLayer,\n path: Axes.makeTickPath(ax, shift, tickSign),\n transFn\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: axisLayer,\n transFn,\n labelFns: Axes.makeLabelFns(ax, shift)\n });\n }\n function drawRect(s) {\n s.attr(\"width\", function(d) {\n return Math.max(0, ax.c2p(d.range[1]) - ax.c2p(d.range[0]));\n }).attr(\"x\", function(d) {\n return ax.c2p(d.range[0]);\n }).attr(\"y\", function(d) {\n return 0.5 * (1 - d.thickness) * bulletHeight;\n }).attr(\"height\", function(d) {\n return d.thickness * bulletHeight;\n });\n }\n var boxes = [gaugeBg].concat(trace.gauge.steps);\n var bgBullet = bullet.selectAll(\"g.bg-bullet\").data(boxes);\n bgBullet.enter().append(\"g\").classed(\"bg-bullet\", true).append(\"rect\");\n bgBullet.select(\"rect\").call(drawRect).call(styleShape);\n bgBullet.exit().remove();\n var fgBullet = bullet.selectAll(\"g.value-bullet\").data([trace.gauge.bar]);\n fgBullet.enter().append(\"g\").classed(\"value-bullet\", true).append(\"rect\");\n fgBullet.select(\"rect\").attr(\"height\", innerBulletHeight).attr(\"y\", (bulletHeight - innerBulletHeight) / 2).call(styleShape);\n if (hasTransition(transitionOpts)) {\n fgBullet.select(\"rect\").transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n }).attr(\"width\", Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))));\n } else {\n fgBullet.select(\"rect\").attr(\"width\", typeof cd[0].y === \"number\" ? Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))) : 0);\n }\n fgBullet.exit().remove();\n var data = cd.filter(function() {\n return trace.gauge.threshold.value || trace.gauge.threshold.value === 0;\n });\n var threshold = bullet.selectAll(\"g.threshold-bullet\").data(data);\n threshold.enter().append(\"g\").classed(\"threshold-bullet\", true).append(\"line\");\n threshold.select(\"line\").attr(\"x1\", ax.c2p(trace.gauge.threshold.value)).attr(\"x2\", ax.c2p(trace.gauge.threshold.value)).attr(\"y1\", (1 - trace.gauge.threshold.thickness) / 2 * bulletHeight).attr(\"y2\", (1 - (1 - trace.gauge.threshold.thickness) / 2) * bulletHeight).call(Color2.stroke, trace.gauge.threshold.line.color).style(\"stroke-width\", trace.gauge.threshold.line.width);\n threshold.exit().remove();\n var bulletOutline = bullet.selectAll(\"g.gauge-outline\").data([gaugeOutline]);\n bulletOutline.enter().append(\"g\").classed(\"gauge-outline\", true).append(\"rect\");\n bulletOutline.select(\"rect\").call(drawRect).call(styleShape);\n bulletOutline.exit().remove();\n }\n function drawAngularGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n var size = opts.size;\n var radius = opts.radius;\n var innerRadius = opts.innerRadius;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var gaugePosition = [size.l + size.w / 2, size.t + size.h / 2 + radius / 2];\n var gauge = opts.gauge;\n var axisLayer = opts.layer;\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n var theta = Math.PI / 2;\n function valueToAngle(v2) {\n var min = trace.gauge.axis.range[0];\n var max = trace.gauge.axis.range[1];\n var angle = (v2 - min) / (max - min) * Math.PI - theta;\n if (angle < -theta) return -theta;\n if (angle > theta) return theta;\n return angle;\n }\n function arcPathGenerator(size2) {\n return d3.svg.arc().innerRadius((innerRadius + radius) / 2 - size2 / 2 * (radius - innerRadius)).outerRadius((innerRadius + radius) / 2 + size2 / 2 * (radius - innerRadius)).startAngle(-theta);\n }\n function drawArc(p) {\n p.attr(\"d\", function(d) {\n return arcPathGenerator(d.thickness).startAngle(valueToAngle(d.range[0])).endAngle(valueToAngle(d.range[1]))();\n });\n }\n var ax, vals, transFn, tickSign;\n gauge.enter().append(\"g\").classed(\"angular\", true);\n gauge.attr(\"transform\", strTranslate(gaugePosition[0], gaugePosition[1]));\n axisLayer.enter().append(\"g\").classed(\"angularaxis\", true).classed(\"crisp\", true);\n axisLayer.selectAll(\"g.xangularaxistick,path,text\").remove();\n ax = mockAxis(gd, trace.gauge.axis);\n ax.type = \"linear\";\n ax.range = trace.gauge.axis.range;\n ax._id = \"xangularaxis\";\n ax.ticklabeloverflow = \"allow\";\n ax.setScale();\n var t2g = function(d) {\n return (ax.range[0] - d.x) / (ax.range[1] - ax.range[0]) * Math.PI + Math.PI;\n };\n var labelFns = {};\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) + Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ? \"middle\" : cos > 0 ? \"start\" : \"end\";\n };\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n var _transFn = function(rad) {\n return strTranslate(\n gaugePosition[0] + radius * Math.cos(rad),\n gaugePosition[1] - radius * Math.sin(rad)\n );\n };\n transFn = function(d) {\n return _transFn(t2g(d));\n };\n var transFn2 = function(d) {\n var rad = t2g(d);\n return _transFn(rad) + \"rotate(\" + -rad2deg(rad) + \")\";\n };\n vals = Axes.calcTicks(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n if (ax.visible) {\n tickSign = ax.ticks === \"inside\" ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n Axes.drawTicks(gd, ax, {\n vals,\n layer: axisLayer,\n path: \"M\" + tickSign * pad + \",0h\" + tickSign * ax.ticklen,\n transFn: transFn2\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: axisLayer,\n transFn,\n labelFns\n });\n }\n var arcs = [gaugeBg].concat(trace.gauge.steps);\n var bgArc = gauge.selectAll(\"g.bg-arc\").data(arcs);\n bgArc.enter().append(\"g\").classed(\"bg-arc\", true).append(\"path\");\n bgArc.select(\"path\").call(drawArc).call(styleShape);\n bgArc.exit().remove();\n var valueArcPathGenerator = arcPathGenerator(trace.gauge.bar.thickness);\n var valueArc = gauge.selectAll(\"g.value-arc\").data([trace.gauge.bar]);\n valueArc.enter().append(\"g\").classed(\"value-arc\", true).append(\"path\");\n var valueArcPath = valueArc.select(\"path\");\n if (hasTransition(transitionOpts)) {\n valueArcPath.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n }).attrTween(\"d\", arcTween(valueArcPathGenerator, valueToAngle(cd[0].lastY), valueToAngle(cd[0].y)));\n trace._lastValue = cd[0].y;\n } else {\n valueArcPath.attr(\"d\", typeof cd[0].y === \"number\" ? valueArcPathGenerator.endAngle(valueToAngle(cd[0].y)) : \"M0,0Z\");\n }\n valueArcPath.call(styleShape);\n valueArc.exit().remove();\n arcs = [];\n var v = trace.gauge.threshold.value;\n if (v || v === 0) {\n arcs.push({\n range: [v, v],\n color: trace.gauge.threshold.color,\n line: {\n color: trace.gauge.threshold.line.color,\n width: trace.gauge.threshold.line.width\n },\n thickness: trace.gauge.threshold.thickness\n });\n }\n var thresholdArc = gauge.selectAll(\"g.threshold-arc\").data(arcs);\n thresholdArc.enter().append(\"g\").classed(\"threshold-arc\", true).append(\"path\");\n thresholdArc.select(\"path\").call(drawArc).call(styleShape);\n thresholdArc.exit().remove();\n var gaugeBorder = gauge.selectAll(\"g.gauge-outline\").data([gaugeOutline]);\n gaugeBorder.enter().append(\"g\").classed(\"gauge-outline\", true).append(\"path\");\n gaugeBorder.select(\"path\").call(drawArc).call(styleShape);\n gaugeBorder.exit().remove();\n }\n function drawNumbers(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n var numbersX = opts.numbersX;\n var numbersY = opts.numbersY;\n var numbersAlign = trace.align || \"center\";\n var numbersAnchor = anchor[numbersAlign];\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n var numbers = Lib.ensureSingle(plotGroup, \"g\", \"numbers\");\n var bignumberbBox, deltabBox;\n var numbersbBox;\n var data = [];\n if (trace._hasNumber) data.push(\"number\");\n if (trace._hasDelta) {\n data.push(\"delta\");\n if (trace.delta.position === \"left\") data.reverse();\n }\n var sel = numbers.selectAll(\"text\").data(data);\n sel.enter().append(\"text\");\n sel.attr(\"text-anchor\", function() {\n return numbersAnchor;\n }).attr(\"class\", function(d) {\n return d;\n }).attr(\"x\", null).attr(\"y\", null).attr(\"dx\", null).attr(\"dy\", null);\n sel.exit().remove();\n function transitionFormat(valueformat, fmt, from, to) {\n if (valueformat.match(\"s\") && // If using SI prefix\n from >= 0 !== to >= 0 && // If sign change\n (!fmt(from).slice(-1).match(SI_PREFIX) && !fmt(to).slice(-1).match(SI_PREFIX))) {\n var transitionValueFormat = valueformat.slice().replace(\"s\", \"f\").replace(/\\d+/, function(m) {\n return parseInt(m) - 1;\n });\n var transitionAx = mockAxis(gd, { tickformat: transitionValueFormat });\n return function(v) {\n if (Math.abs(v) < 1) return Axes.tickText(transitionAx, v).text;\n return fmt(v);\n };\n } else {\n return fmt;\n }\n }\n function drawBignumber() {\n var bignumberAx = mockAxis(gd, { tickformat: trace.number.valueformat }, trace._range);\n bignumberAx.setScale();\n Axes.prepTicks(bignumberAx);\n var bignumberFmt = function(v) {\n return Axes.tickText(bignumberAx, v).text;\n };\n var bignumberSuffix = trace.number.suffix;\n var bignumberPrefix = trace.number.prefix;\n var number = numbers.select(\"text.number\");\n function writeNumber() {\n var txt = typeof cd[0].y === \"number\" ? bignumberPrefix + bignumberFmt(cd[0].y) + bignumberSuffix : \"-\";\n number.text(txt).call(Drawing.font, trace.number.font).call(svgTextUtils.convertToTspans, gd);\n }\n if (hasTransition(transitionOpts)) {\n number.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n writeNumber();\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n writeNumber();\n onComplete && onComplete();\n }).attrTween(\"text\", function() {\n var that = d3.select(this);\n var interpolator = interpolateNumber(cd[0].lastY, cd[0].y);\n trace._lastValue = cd[0].y;\n var transitionFmt = transitionFormat(trace.number.valueformat, bignumberFmt, cd[0].lastY, cd[0].y);\n return function(t) {\n that.text(bignumberPrefix + transitionFmt(interpolator(t)) + bignumberSuffix);\n };\n });\n } else {\n writeNumber();\n }\n bignumberbBox = measureText(bignumberPrefix + bignumberFmt(cd[0].y) + bignumberSuffix, trace.number.font, numbersAnchor, gd);\n return number;\n }\n function drawDelta() {\n var deltaAx = mockAxis(gd, { tickformat: trace.delta.valueformat }, trace._range);\n deltaAx.setScale();\n Axes.prepTicks(deltaAx);\n var deltaFmt = function(v) {\n return Axes.tickText(deltaAx, v).text;\n };\n var deltaSuffix = trace.delta.suffix;\n var deltaPrefix = trace.delta.prefix;\n var deltaValue = function(d) {\n var value = trace.delta.relative ? d.relativeDelta : d.delta;\n return value;\n };\n var deltaFormatText = function(value, numberFmt) {\n if (value === 0 || typeof value !== \"number\" || isNaN(value)) return \"-\";\n return (value > 0 ? trace.delta.increasing.symbol : trace.delta.decreasing.symbol) + deltaPrefix + numberFmt(value) + deltaSuffix;\n };\n var deltaFill = function(d) {\n return d.delta >= 0 ? trace.delta.increasing.color : trace.delta.decreasing.color;\n };\n if (trace._deltaLastValue === void 0) {\n trace._deltaLastValue = deltaValue(cd[0]);\n }\n var delta2 = numbers.select(\"text.delta\");\n delta2.call(Drawing.font, trace.delta.font).call(Color2.fill, deltaFill({ delta: trace._deltaLastValue }));\n function writeDelta() {\n delta2.text(deltaFormatText(deltaValue(cd[0]), deltaFmt)).call(Color2.fill, deltaFill(cd[0])).call(svgTextUtils.convertToTspans, gd);\n }\n if (hasTransition(transitionOpts)) {\n delta2.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).tween(\"text\", function() {\n var that = d3.select(this);\n var to = deltaValue(cd[0]);\n var from = trace._deltaLastValue;\n var transitionFmt = transitionFormat(trace.delta.valueformat, deltaFmt, from, to);\n var interpolator = interpolateNumber(from, to);\n trace._deltaLastValue = to;\n return function(t) {\n that.text(deltaFormatText(interpolator(t), transitionFmt));\n that.call(Color2.fill, deltaFill({ delta: interpolator(t) }));\n };\n }).each(\"end\", function() {\n writeDelta();\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n writeDelta();\n onComplete && onComplete();\n });\n } else {\n writeDelta();\n }\n deltabBox = measureText(deltaFormatText(deltaValue(cd[0]), deltaFmt), trace.delta.font, numbersAnchor, gd);\n return delta2;\n }\n var key = trace.mode + trace.align;\n var delta;\n if (trace._hasDelta) {\n delta = drawDelta();\n key += trace.delta.position + trace.delta.font.size + trace.delta.font.family + trace.delta.valueformat;\n key += trace.delta.increasing.symbol + trace.delta.decreasing.symbol;\n numbersbBox = deltabBox;\n }\n if (trace._hasNumber) {\n drawBignumber();\n key += trace.number.font.size + trace.number.font.family + trace.number.valueformat + trace.number.suffix + trace.number.prefix;\n numbersbBox = bignumberbBox;\n }\n if (trace._hasDelta && trace._hasNumber) {\n var bignumberCenter = [\n (bignumberbBox.left + bignumberbBox.right) / 2,\n (bignumberbBox.top + bignumberbBox.bottom) / 2\n ];\n var deltaCenter = [\n (deltabBox.left + deltabBox.right) / 2,\n (deltabBox.top + deltabBox.bottom) / 2\n ];\n var dx, dy;\n var padding = 0.75 * trace.delta.font.size;\n if (trace.delta.position === \"left\") {\n dx = cache(trace, \"deltaPos\", 0, -1 * (bignumberbBox.width * position[trace.align] + deltabBox.width * (1 - position[trace.align]) + padding), key, Math.min);\n dy = bignumberCenter[1] - deltaCenter[1];\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: deltabBox.left + dx,\n right: bignumberbBox.right,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if (trace.delta.position === \"right\") {\n dx = cache(trace, \"deltaPos\", 0, bignumberbBox.width * (1 - position[trace.align]) + deltabBox.width * position[trace.align] + padding, key, Math.max);\n dy = bignumberCenter[1] - deltaCenter[1];\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: bignumberbBox.left,\n right: deltabBox.right + dx,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if (trace.delta.position === \"bottom\") {\n dx = null;\n dy = deltabBox.height;\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height,\n bottom: bignumberbBox.bottom + deltabBox.height\n };\n }\n if (trace.delta.position === \"top\") {\n dx = null;\n dy = bignumberbBox.top;\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height - deltabBox.height,\n bottom: bignumberbBox.bottom\n };\n }\n delta.attr({ dx, dy });\n }\n if (trace._hasNumber || trace._hasDelta) {\n numbers.attr(\"transform\", function() {\n var m = opts.numbersScaler(numbersbBox);\n key += m[2];\n var scaleRatio = cache(trace, \"numbersScale\", 1, m[0], key, Math.min);\n var translateY;\n if (!trace._scaleNumbers) scaleRatio = 1;\n if (trace._isAngular) {\n translateY = numbersY - scaleRatio * numbersbBox.bottom;\n } else {\n translateY = numbersY - scaleRatio * (numbersbBox.top + numbersbBox.bottom) / 2;\n }\n trace._numbersTop = scaleRatio * numbersbBox.top + translateY;\n var ref = numbersbBox[numbersAlign];\n if (numbersAlign === \"center\") ref = (numbersbBox.left + numbersbBox.right) / 2;\n var translateX = numbersX - scaleRatio * ref;\n translateX = cache(trace, \"numbersTranslate\", 0, translateX, key, Math.max);\n return strTranslate(translateX, translateY) + strScale(scaleRatio);\n });\n }\n }\n function styleShape(p) {\n p.each(function(d) {\n Color2.stroke(d3.select(this), d.line.color);\n }).each(function(d) {\n Color2.fill(d3.select(this), d.color);\n }).style(\"stroke-width\", function(d) {\n return d.line.width;\n });\n }\n function arcTween(arc, endAngle, newAngle) {\n return function() {\n var interp = interpolate(endAngle, newAngle);\n return function(t) {\n return arc.endAngle(interp(t))();\n };\n };\n }\n function mockAxis(gd, opts, zrange) {\n var fullLayout = gd._fullLayout;\n var axisIn = Lib.extendFlat({\n type: \"linear\",\n ticks: \"outside\",\n range: zrange,\n showline: true\n }, opts);\n var axisOut = {\n type: \"linear\",\n _id: \"x\" + opts._id\n };\n var axisOptions = {\n letter: \"x\",\n font: fullLayout.font,\n noAutotickangles: true,\n noHover: true,\n noTickson: true\n };\n function coerce(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, axisLayoutAttrs, attr, dflt);\n }\n handleAxisDefaults(axisIn, axisOut, coerce, axisOptions, fullLayout);\n handleAxisPositionDefaults(axisIn, axisOut, coerce, axisOptions);\n return axisOut;\n }\n function fitTextInsideBox(textBB, width, height) {\n var ratio = Math.min(width / textBB.width, height / textBB.height);\n return [ratio, textBB, width + \"x\" + height];\n }\n function fitTextInsideCircle(textBB, radius) {\n var elRadius = Math.sqrt(textBB.width / 2 * (textBB.width / 2) + textBB.height * textBB.height);\n var ratio = radius / elRadius;\n return [ratio, textBB, radius];\n }\n function measureText(txt, font, textAnchor, gd) {\n var element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n var sel = d3.select(element);\n sel.text(txt).attr(\"x\", 0).attr(\"y\", 0).attr(\"text-anchor\", textAnchor).attr(\"data-unformatted\", txt).call(svgTextUtils.convertToTspans, gd).call(Drawing.font, font);\n return Drawing.bBox(sel.node());\n }\n function cache(trace, name2, initialValue, value, key, fn) {\n var objName = \"_cache\" + name2;\n if (!(trace[objName] && trace[objName].key === key)) {\n trace[objName] = { key, value: initialValue };\n }\n var v = Lib.aggNums(fn, null, [trace[objName].value, value], 2);\n trace[objName].value = v;\n return v;\n }\n }\n });\n\n // src/traces/indicator/index.js\n var require_indicator = __commonJS({\n \"src/traces/indicator/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"indicator\",\n basePlotModule: require_base_plot10(),\n categories: [\"svg\", \"noOpacity\", \"noHover\"],\n animatable: true,\n attributes: require_attributes61(),\n supplyDefaults: require_defaults57().supplyDefaults,\n calc: require_calc36().calc,\n plot: require_plot30(),\n meta: {}\n };\n }\n });\n\n // lib/indicator.js\n var require_indicator2 = __commonJS({\n \"lib/indicator.js\"(exports, module) {\n \"use strict\";\n module.exports = require_indicator();\n }\n });\n\n // src/traces/table/attributes.js\n var require_attributes62 = __commonJS({\n \"src/traces/table/attributes.js\"(exports, module) {\n \"use strict\";\n var annAttrs = require_attributes11();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var fontAttrs = require_font_attributes();\n var domainAttrs = require_domain().attributes;\n var descriptionOnlyNumbers = require_axis_format_attributes().descriptionOnlyNumbers;\n var attrs = module.exports = overrideAll({\n domain: domainAttrs({ name: \"table\", trace: true }),\n columnwidth: {\n valType: \"number\",\n arrayOk: true,\n dflt: null\n },\n columnorder: {\n valType: \"data_array\"\n },\n header: {\n values: {\n valType: \"data_array\",\n dflt: []\n },\n format: {\n valType: \"data_array\",\n dflt: [],\n description: descriptionOnlyNumbers(\"cell value\")\n },\n prefix: {\n valType: \"string\",\n arrayOk: true,\n dflt: null\n },\n suffix: {\n valType: \"string\",\n arrayOk: true,\n dflt: null\n },\n height: {\n valType: \"number\",\n dflt: 28\n },\n align: extendFlat({}, annAttrs.align, { arrayOk: true }),\n line: {\n width: {\n valType: \"number\",\n arrayOk: true,\n dflt: 1\n },\n color: {\n valType: \"color\",\n arrayOk: true,\n dflt: \"grey\"\n }\n },\n fill: {\n color: {\n valType: \"color\",\n arrayOk: true,\n dflt: \"white\"\n }\n },\n font: extendFlat({}, fontAttrs({ arrayOk: true }))\n },\n cells: {\n values: {\n valType: \"data_array\",\n dflt: []\n },\n format: {\n valType: \"data_array\",\n dflt: [],\n description: descriptionOnlyNumbers(\"cell value\")\n },\n prefix: {\n valType: \"string\",\n arrayOk: true,\n dflt: null\n },\n suffix: {\n valType: \"string\",\n arrayOk: true,\n dflt: null\n },\n height: {\n valType: \"number\",\n dflt: 20\n },\n align: extendFlat({}, annAttrs.align, { arrayOk: true }),\n line: {\n width: {\n valType: \"number\",\n arrayOk: true,\n dflt: 1\n },\n color: {\n valType: \"color\",\n arrayOk: true,\n dflt: \"grey\"\n }\n },\n fill: {\n color: {\n valType: \"color\",\n arrayOk: true,\n dflt: \"white\"\n }\n },\n font: extendFlat({}, fontAttrs({ arrayOk: true }))\n }\n }, \"calc\", \"from-root\");\n }\n });\n\n // src/traces/table/defaults.js\n var require_defaults58 = __commonJS({\n \"src/traces/table/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes62();\n var handleDomainDefaults = require_domain().defaults;\n function defaultColumnOrder(traceOut, coerce) {\n var specifiedColumnOrder = traceOut.columnorder || [];\n var commonLength = traceOut.header.values.length;\n var truncated = specifiedColumnOrder.slice(0, commonLength);\n var sorted = truncated.slice().sort(function(a, b) {\n return a - b;\n });\n var oneStepped = truncated.map(function(d) {\n return sorted.indexOf(d);\n });\n for (var i = oneStepped.length; i < commonLength; i++) {\n oneStepped.push(i);\n }\n coerce(\"columnorder\", oneStepped);\n }\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n handleDomainDefaults(traceOut, layout, coerce);\n coerce(\"columnwidth\");\n coerce(\"header.values\");\n coerce(\"header.format\");\n coerce(\"header.align\");\n coerce(\"header.prefix\");\n coerce(\"header.suffix\");\n coerce(\"header.height\");\n coerce(\"header.line.width\");\n coerce(\"header.line.color\");\n coerce(\"header.fill.color\");\n Lib.coerceFont(coerce, \"header.font\", layout.font);\n defaultColumnOrder(traceOut, coerce);\n coerce(\"cells.values\");\n coerce(\"cells.format\");\n coerce(\"cells.align\");\n coerce(\"cells.prefix\");\n coerce(\"cells.suffix\");\n coerce(\"cells.height\");\n coerce(\"cells.line.width\");\n coerce(\"cells.line.color\");\n coerce(\"cells.fill.color\");\n Lib.coerceFont(coerce, \"cells.font\", layout.font);\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/table/calc.js\n var require_calc37 = __commonJS({\n \"src/traces/table/calc.js\"(exports, module) {\n \"use strict\";\n var wrap = require_gup().wrap;\n module.exports = function calc() {\n return wrap({});\n };\n }\n });\n\n // src/traces/table/constants.js\n var require_constants31 = __commonJS({\n \"src/traces/table/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n cellPad: 8,\n columnExtentOffset: 10,\n columnTitleOffset: 28,\n emptyHeaderHeight: 16,\n latexCheck: /^\\$.*\\$$/,\n goldenRatio: 1.618,\n lineBreaker: \"
\",\n maxDimensionCount: 60,\n overdrag: 45,\n releaseTransitionDuration: 120,\n releaseTransitionEase: \"cubic-out\",\n scrollbarCaptureWidth: 18,\n scrollbarHideDelay: 1e3,\n scrollbarHideDuration: 1e3,\n scrollbarOffset: 5,\n scrollbarWidth: 8,\n transitionDuration: 100,\n transitionEase: \"cubic-out\",\n uplift: 5,\n wrapSpacer: \" \",\n wrapSplitCharacter: \" \",\n cn: {\n // general class names\n table: \"table\",\n tableControlView: \"table-control-view\",\n scrollBackground: \"scroll-background\",\n yColumn: \"y-column\",\n columnBlock: \"column-block\",\n scrollAreaClip: \"scroll-area-clip\",\n scrollAreaClipRect: \"scroll-area-clip-rect\",\n columnBoundary: \"column-boundary\",\n columnBoundaryClippath: \"column-boundary-clippath\",\n columnBoundaryRect: \"column-boundary-rect\",\n columnCells: \"column-cells\",\n columnCell: \"column-cell\",\n cellRect: \"cell-rect\",\n cellText: \"cell-text\",\n cellTextHolder: \"cell-text-holder\",\n // scroll related class names\n scrollbarKit: \"scrollbar-kit\",\n scrollbar: \"scrollbar\",\n scrollbarSlider: \"scrollbar-slider\",\n scrollbarGlyph: \"scrollbar-glyph\",\n scrollbarCaptureZone: \"scrollbar-capture-zone\"\n }\n };\n }\n });\n\n // src/traces/table/data_preparation_helper.js\n var require_data_preparation_helper = __commonJS({\n \"src/traces/table/data_preparation_helper.js\"(exports, module) {\n \"use strict\";\n var c = require_constants31();\n var extendFlat = require_extend().extendFlat;\n var isNumeric = require_fast_isnumeric();\n var isTypedArray = require_array().isTypedArray;\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n module.exports = function calc(gd, trace) {\n var cellsValues = squareStringMatrix(trace.cells.values);\n var slicer = function(a) {\n return a.slice(trace.header.values.length, a.length);\n };\n var headerValuesIn = squareStringMatrix(trace.header.values);\n if (headerValuesIn.length && !headerValuesIn[0].length) {\n headerValuesIn[0] = [\"\"];\n headerValuesIn = squareStringMatrix(headerValuesIn);\n }\n var headerValues = headerValuesIn.concat(slicer(cellsValues).map(function() {\n return emptyStrings((headerValuesIn[0] || [\"\"]).length);\n }));\n var domain = trace.domain;\n var groupWidth = Math.floor(gd._fullLayout._size.w * (domain.x[1] - domain.x[0]));\n var groupHeight = Math.floor(gd._fullLayout._size.h * (domain.y[1] - domain.y[0]));\n var headerRowHeights = trace.header.values.length ? headerValues[0].map(function() {\n return trace.header.height;\n }) : [c.emptyHeaderHeight];\n var rowHeights = cellsValues.length ? cellsValues[0].map(function() {\n return trace.cells.height;\n }) : [];\n var headerHeight = headerRowHeights.reduce(sum, 0);\n var scrollHeight = groupHeight - headerHeight;\n var minimumFillHeight = scrollHeight + c.uplift;\n var anchorToRowBlock = makeAnchorToRowBlock(rowHeights, minimumFillHeight);\n var anchorToHeaderRowBlock = makeAnchorToRowBlock(headerRowHeights, headerHeight);\n var headerRowBlocks = makeRowBlock(anchorToHeaderRowBlock, []);\n var rowBlocks = makeRowBlock(anchorToRowBlock, headerRowBlocks);\n var uniqueKeys = {};\n var columnOrder = trace._fullInput.columnorder;\n if (isArrayOrTypedArray(columnOrder)) columnOrder = Array.from(columnOrder);\n columnOrder = columnOrder.concat(slicer(cellsValues.map(function(d, i) {\n return i;\n })));\n var columnWidths = headerValues.map(function(d, i) {\n var value = isArrayOrTypedArray(trace.columnwidth) ? trace.columnwidth[Math.min(i, trace.columnwidth.length - 1)] : trace.columnwidth;\n return isNumeric(value) ? Number(value) : 1;\n });\n var totalColumnWidths = columnWidths.reduce(sum, 0);\n columnWidths = columnWidths.map(function(d) {\n return d / totalColumnWidths * groupWidth;\n });\n var maxLineWidth = Math.max(arrayMax(trace.header.line.width), arrayMax(trace.cells.line.width));\n var calcdata = {\n // include staticPlot in the key so if it changes we delete and redraw\n key: trace.uid + gd._context.staticPlot,\n translateX: domain.x[0] * gd._fullLayout._size.w,\n translateY: gd._fullLayout._size.h * (1 - domain.y[1]),\n size: gd._fullLayout._size,\n width: groupWidth,\n maxLineWidth,\n height: groupHeight,\n columnOrder,\n // will be mutated on column move, todo use in callback\n groupHeight,\n rowBlocks,\n headerRowBlocks,\n scrollY: 0,\n // will be mutated on scroll\n cells: extendFlat({}, trace.cells, { values: cellsValues }),\n headerCells: extendFlat({}, trace.header, { values: headerValues }),\n gdColumns: headerValues.map(function(d) {\n return d[0];\n }),\n gdColumnsOriginalOrder: headerValues.map(function(d) {\n return d[0];\n }),\n prevPages: [0, 0],\n scrollbarState: { scrollbarScrollInProgress: false },\n columns: headerValues.map(function(label, i) {\n var foundKey = uniqueKeys[label];\n uniqueKeys[label] = (foundKey || 0) + 1;\n var key = label + \"__\" + uniqueKeys[label];\n return {\n key,\n label,\n specIndex: i,\n xIndex: columnOrder[i],\n xScale,\n x: void 0,\n // initialized below\n calcdata: void 0,\n // initialized below\n columnWidth: columnWidths[i]\n };\n })\n };\n calcdata.columns.forEach(function(col) {\n col.calcdata = calcdata;\n col.x = xScale(col);\n });\n return calcdata;\n };\n function arrayMax(maybeArray) {\n if (isArrayOrTypedArray(maybeArray)) {\n var max = 0;\n for (var i = 0; i < maybeArray.length; i++) {\n max = Math.max(max, arrayMax(maybeArray[i]));\n }\n return max;\n }\n return maybeArray;\n }\n function sum(a, b) {\n return a + b;\n }\n function squareStringMatrix(matrixIn) {\n var matrix = matrixIn.slice();\n var minLen = Infinity;\n var maxLen = 0;\n var i;\n for (i = 0; i < matrix.length; i++) {\n if (isTypedArray(matrix[i])) matrix[i] = Array.from(matrix[i]);\n else if (!isArrayOrTypedArray(matrix[i])) matrix[i] = [matrix[i]];\n minLen = Math.min(minLen, matrix[i].length);\n maxLen = Math.max(maxLen, matrix[i].length);\n }\n if (minLen !== maxLen) {\n for (i = 0; i < matrix.length; i++) {\n var padLen = maxLen - matrix[i].length;\n if (padLen) matrix[i] = matrix[i].concat(emptyStrings(padLen));\n }\n }\n return matrix;\n }\n function emptyStrings(len) {\n var padArray = new Array(len);\n for (var j = 0; j < len; j++) padArray[j] = \"\";\n return padArray;\n }\n function xScale(d) {\n return d.calcdata.columns.reduce(function(prev, next) {\n return next.xIndex < d.xIndex ? prev + next.columnWidth : prev;\n }, 0);\n }\n function makeRowBlock(anchorToRowBlock, auxiliary) {\n var blockAnchorKeys = Object.keys(anchorToRowBlock);\n return blockAnchorKeys.map(function(k) {\n return extendFlat({}, anchorToRowBlock[k], { auxiliaryBlocks: auxiliary });\n });\n }\n function makeAnchorToRowBlock(rowHeights, minimumFillHeight) {\n var anchorToRowBlock = {};\n var currentRowHeight;\n var currentAnchor = 0;\n var currentBlockHeight = 0;\n var currentBlock = makeIdentity();\n var currentFirstRowIndex = 0;\n var blockCounter = 0;\n for (var i = 0; i < rowHeights.length; i++) {\n currentRowHeight = rowHeights[i];\n currentBlock.rows.push({\n rowIndex: i,\n rowHeight: currentRowHeight\n });\n currentBlockHeight += currentRowHeight;\n if (currentBlockHeight >= minimumFillHeight || i === rowHeights.length - 1) {\n anchorToRowBlock[currentAnchor] = currentBlock;\n currentBlock.key = blockCounter++;\n currentBlock.firstRowIndex = currentFirstRowIndex;\n currentBlock.lastRowIndex = i;\n currentBlock = makeIdentity();\n currentAnchor += currentBlockHeight;\n currentFirstRowIndex = i + 1;\n currentBlockHeight = 0;\n }\n }\n return anchorToRowBlock;\n }\n function makeIdentity() {\n return {\n firstRowIndex: null,\n lastRowIndex: null,\n rows: []\n };\n }\n }\n });\n\n // src/traces/table/data_split_helpers.js\n var require_data_split_helpers = __commonJS({\n \"src/traces/table/data_split_helpers.js\"(exports) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n exports.splitToPanels = function(d) {\n var prevPages = [0, 0];\n var headerPanel = extendFlat({}, d, {\n key: \"header\",\n type: \"header\",\n page: 0,\n prevPages,\n currentRepaint: [null, null],\n dragHandle: true,\n values: d.calcdata.headerCells.values[d.specIndex],\n rowBlocks: d.calcdata.headerRowBlocks,\n calcdata: extendFlat({}, d.calcdata, { cells: d.calcdata.headerCells })\n });\n var revolverPanel1 = extendFlat({}, d, {\n key: \"cells1\",\n type: \"cells\",\n page: 0,\n prevPages,\n currentRepaint: [null, null],\n dragHandle: false,\n values: d.calcdata.cells.values[d.specIndex],\n rowBlocks: d.calcdata.rowBlocks\n });\n var revolverPanel2 = extendFlat({}, d, {\n key: \"cells2\",\n type: \"cells\",\n page: 1,\n prevPages,\n currentRepaint: [null, null],\n dragHandle: false,\n values: d.calcdata.cells.values[d.specIndex],\n rowBlocks: d.calcdata.rowBlocks\n });\n return [revolverPanel1, revolverPanel2, headerPanel];\n };\n exports.splitToCells = function(d) {\n var fromTo = rowFromTo(d);\n return (d.values || []).slice(fromTo[0], fromTo[1]).map(function(v, i) {\n var buster = typeof v === \"string\" && v.match(/[<$&> ]/) ? \"_keybuster_\" + Math.random() : \"\";\n return {\n // keyWithinBlock: /*fromTo[0] + */i, // optimized future version - no busting\n // keyWithinBlock: fromTo[0] + i, // initial always-unoptimized version - janky scrolling with 5+ columns\n keyWithinBlock: i + buster,\n // current compromise: regular content is very fast; async content is possible\n key: fromTo[0] + i,\n column: d,\n calcdata: d.calcdata,\n page: d.page,\n rowBlocks: d.rowBlocks,\n value: v\n };\n });\n };\n function rowFromTo(d) {\n var rowBlock = d.rowBlocks[d.page];\n var rowFrom = rowBlock ? rowBlock.rows[0].rowIndex : 0;\n var rowTo = rowBlock ? rowFrom + rowBlock.rows.length : 0;\n return [rowFrom, rowTo];\n }\n }\n });\n\n // src/traces/table/plot.js\n var require_plot31 = __commonJS({\n \"src/traces/table/plot.js\"(exports, module) {\n \"use strict\";\n var c = require_constants31();\n var d3 = require_d3();\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var gup = require_gup();\n var Drawing = require_drawing();\n var svgUtil = require_svg_text_utils();\n var raiseToTop = require_lib().raiseToTop;\n var strTranslate = require_lib().strTranslate;\n var cancelEeaseColumn = require_lib().cancelTransition;\n var prepareData = require_data_preparation_helper();\n var splitData = require_data_split_helpers();\n var Color2 = require_color();\n module.exports = function plot(gd, wrappedTraceHolders) {\n var dynamic = !gd._context.staticPlot;\n var table = gd._fullLayout._paper.selectAll(\".\" + c.cn.table).data(wrappedTraceHolders.map(function(wrappedTraceHolder) {\n var traceHolder = gup.unwrap(wrappedTraceHolder);\n var trace = traceHolder.trace;\n return prepareData(gd, trace);\n }), gup.keyFun);\n table.exit().remove();\n table.enter().append(\"g\").classed(c.cn.table, true).attr(\"overflow\", \"visible\").style(\"box-sizing\", \"content-box\").style(\"position\", \"absolute\").style(\"left\", 0).style(\"overflow\", \"visible\").style(\"shape-rendering\", \"crispEdges\").style(\"pointer-events\", \"all\");\n table.attr(\"width\", function(d) {\n return d.width + d.size.l + d.size.r;\n }).attr(\"height\", function(d) {\n return d.height + d.size.t + d.size.b;\n }).attr(\"transform\", function(d) {\n return strTranslate(d.translateX, d.translateY);\n });\n var tableControlView = table.selectAll(\".\" + c.cn.tableControlView).data(gup.repeat, gup.keyFun);\n var cvEnter = tableControlView.enter().append(\"g\").classed(c.cn.tableControlView, true).style(\"box-sizing\", \"content-box\");\n if (dynamic) {\n var wheelEvent = \"onwheel\" in document ? \"wheel\" : \"mousewheel\";\n cvEnter.on(\"mousemove\", function(d) {\n tableControlView.filter(function(dd) {\n return d === dd;\n }).call(renderScrollbarKit, gd);\n }).on(wheelEvent, function(d) {\n if (d.scrollbarState.wheeling) return;\n d.scrollbarState.wheeling = true;\n var newY = d.scrollY + d3.event.deltaY;\n var noChange = makeDragRow(gd, tableControlView, null, newY)(d);\n if (!noChange) {\n d3.event.stopPropagation();\n d3.event.preventDefault();\n }\n d.scrollbarState.wheeling = false;\n }).call(renderScrollbarKit, gd, true);\n }\n tableControlView.attr(\"transform\", function(d) {\n return strTranslate(d.size.l, d.size.t);\n });\n var scrollBackground = tableControlView.selectAll(\".\" + c.cn.scrollBackground).data(gup.repeat, gup.keyFun);\n scrollBackground.enter().append(\"rect\").classed(c.cn.scrollBackground, true).attr(\"fill\", \"none\");\n scrollBackground.attr(\"width\", function(d) {\n return d.width;\n }).attr(\"height\", function(d) {\n return d.height;\n });\n tableControlView.each(function(d) {\n Drawing.setClipUrl(d3.select(this), scrollAreaBottomClipKey(gd, d), gd);\n });\n var yColumn = tableControlView.selectAll(\".\" + c.cn.yColumn).data(function(vm) {\n return vm.columns;\n }, gup.keyFun);\n yColumn.enter().append(\"g\").classed(c.cn.yColumn, true);\n yColumn.exit().remove();\n yColumn.attr(\"transform\", function(d) {\n return strTranslate(d.x, 0);\n });\n if (dynamic) {\n yColumn.call(\n d3.behavior.drag().origin(function(d) {\n var movedColumn = d3.select(this);\n easeColumn(movedColumn, d, -c.uplift);\n raiseToTop(this);\n d.calcdata.columnDragInProgress = true;\n renderScrollbarKit(tableControlView.filter(function(dd) {\n return d.calcdata.key === dd.key;\n }), gd);\n return d;\n }).on(\"drag\", function(d) {\n var movedColumn = d3.select(this);\n var getter = function(dd) {\n return (d === dd ? d3.event.x : dd.x) + dd.columnWidth / 2;\n };\n d.x = Math.max(-c.overdrag, Math.min(d.calcdata.width + c.overdrag - d.columnWidth, d3.event.x));\n var sortableColumns = flatData(yColumn).filter(function(dd) {\n return dd.calcdata.key === d.calcdata.key;\n });\n var newOrder = sortableColumns.sort(function(a, b) {\n return getter(a) - getter(b);\n });\n newOrder.forEach(function(dd, i) {\n dd.xIndex = i;\n dd.x = d === dd ? dd.x : dd.xScale(dd);\n });\n yColumn.filter(function(dd) {\n return d !== dd;\n }).transition().ease(c.transitionEase).duration(c.transitionDuration).attr(\"transform\", function(d2) {\n return strTranslate(d2.x, 0);\n });\n movedColumn.call(cancelEeaseColumn).attr(\"transform\", strTranslate(d.x, -c.uplift));\n }).on(\"dragend\", function(d) {\n var movedColumn = d3.select(this);\n var p = d.calcdata;\n d.x = d.xScale(d);\n d.calcdata.columnDragInProgress = false;\n easeColumn(movedColumn, d, 0);\n columnMoved(gd, p, p.columns.map(function(dd) {\n return dd.xIndex;\n }));\n })\n );\n }\n yColumn.each(function(d) {\n Drawing.setClipUrl(d3.select(this), columnBoundaryClipKey(gd, d), gd);\n });\n var columnBlock = yColumn.selectAll(\".\" + c.cn.columnBlock).data(splitData.splitToPanels, gup.keyFun);\n columnBlock.enter().append(\"g\").classed(c.cn.columnBlock, true).attr(\"id\", function(d) {\n return d.key;\n });\n columnBlock.style(\"cursor\", function(d) {\n return d.dragHandle ? \"ew-resize\" : d.calcdata.scrollbarState.barWiggleRoom ? \"ns-resize\" : \"default\";\n });\n var headerColumnBlock = columnBlock.filter(headerBlock);\n var cellsColumnBlock = columnBlock.filter(cellsBlock);\n if (dynamic) {\n cellsColumnBlock.call(\n d3.behavior.drag().origin(function(d) {\n d3.event.stopPropagation();\n return d;\n }).on(\"drag\", makeDragRow(gd, tableControlView, -1)).on(\"dragend\", function() {\n })\n );\n }\n renderColumnCellTree(gd, tableControlView, headerColumnBlock, columnBlock);\n renderColumnCellTree(gd, tableControlView, cellsColumnBlock, columnBlock);\n var scrollAreaClip = tableControlView.selectAll(\".\" + c.cn.scrollAreaClip).data(gup.repeat, gup.keyFun);\n scrollAreaClip.enter().append(\"clipPath\").classed(c.cn.scrollAreaClip, true).attr(\"id\", function(d) {\n return scrollAreaBottomClipKey(gd, d);\n });\n var scrollAreaClipRect = scrollAreaClip.selectAll(\".\" + c.cn.scrollAreaClipRect).data(gup.repeat, gup.keyFun);\n scrollAreaClipRect.enter().append(\"rect\").classed(c.cn.scrollAreaClipRect, true).attr(\"x\", -c.overdrag).attr(\"y\", -c.uplift).attr(\"fill\", \"none\");\n scrollAreaClipRect.attr(\"width\", function(d) {\n return d.width + 2 * c.overdrag;\n }).attr(\"height\", function(d) {\n return d.height + c.uplift;\n });\n var columnBoundary = yColumn.selectAll(\".\" + c.cn.columnBoundary).data(gup.repeat, gup.keyFun);\n columnBoundary.enter().append(\"g\").classed(c.cn.columnBoundary, true);\n var columnBoundaryClippath = yColumn.selectAll(\".\" + c.cn.columnBoundaryClippath).data(gup.repeat, gup.keyFun);\n columnBoundaryClippath.enter().append(\"clipPath\").classed(c.cn.columnBoundaryClippath, true);\n columnBoundaryClippath.attr(\"id\", function(d) {\n return columnBoundaryClipKey(gd, d);\n });\n var columnBoundaryRect = columnBoundaryClippath.selectAll(\".\" + c.cn.columnBoundaryRect).data(gup.repeat, gup.keyFun);\n columnBoundaryRect.enter().append(\"rect\").classed(c.cn.columnBoundaryRect, true).attr(\"fill\", \"none\");\n columnBoundaryRect.attr(\"width\", function(d) {\n return d.columnWidth + 2 * roundHalfWidth(d);\n }).attr(\"height\", function(d) {\n return d.calcdata.height + 2 * roundHalfWidth(d) + c.uplift;\n }).attr(\"x\", function(d) {\n return -roundHalfWidth(d);\n }).attr(\"y\", function(d) {\n return -roundHalfWidth(d);\n });\n updateBlockYPosition(null, cellsColumnBlock, tableControlView);\n };\n function roundHalfWidth(d) {\n return Math.ceil(d.calcdata.maxLineWidth / 2);\n }\n function scrollAreaBottomClipKey(gd, d) {\n return \"clip\" + gd._fullLayout._uid + \"_scrollAreaBottomClip_\" + d.key;\n }\n function columnBoundaryClipKey(gd, d) {\n return \"clip\" + gd._fullLayout._uid + \"_columnBoundaryClippath_\" + d.calcdata.key + \"_\" + d.specIndex;\n }\n function flatData(selection) {\n return [].concat.apply([], selection.map(function(g) {\n return g;\n })).map(function(g) {\n return g.__data__;\n });\n }\n function renderScrollbarKit(tableControlView, gd, bypassVisibleBar) {\n function calcTotalHeight(d) {\n var blocks = d.rowBlocks;\n return firstRowAnchor(blocks, blocks.length - 1) + (blocks.length ? rowsHeight(blocks[blocks.length - 1], Infinity) : 1);\n }\n var scrollbarKit = tableControlView.selectAll(\".\" + c.cn.scrollbarKit).data(gup.repeat, gup.keyFun);\n scrollbarKit.enter().append(\"g\").classed(c.cn.scrollbarKit, true).style(\"shape-rendering\", \"geometricPrecision\");\n scrollbarKit.each(function(d) {\n var s = d.scrollbarState;\n s.totalHeight = calcTotalHeight(d);\n s.scrollableAreaHeight = d.groupHeight - headerHeight(d);\n s.currentlyVisibleHeight = Math.min(s.totalHeight, s.scrollableAreaHeight);\n s.ratio = s.currentlyVisibleHeight / s.totalHeight;\n s.barLength = Math.max(s.ratio * s.currentlyVisibleHeight, c.goldenRatio * c.scrollbarWidth);\n s.barWiggleRoom = s.currentlyVisibleHeight - s.barLength;\n s.wiggleRoom = Math.max(0, s.totalHeight - s.scrollableAreaHeight);\n s.topY = s.barWiggleRoom === 0 ? 0 : d.scrollY / s.wiggleRoom * s.barWiggleRoom;\n s.bottomY = s.topY + s.barLength;\n s.dragMultiplier = s.wiggleRoom / s.barWiggleRoom;\n }).attr(\"transform\", function(d) {\n var xPosition2 = d.width + c.scrollbarWidth / 2 + c.scrollbarOffset;\n return strTranslate(xPosition2, headerHeight(d));\n });\n var scrollbar = scrollbarKit.selectAll(\".\" + c.cn.scrollbar).data(gup.repeat, gup.keyFun);\n scrollbar.enter().append(\"g\").classed(c.cn.scrollbar, true);\n var scrollbarSlider = scrollbar.selectAll(\".\" + c.cn.scrollbarSlider).data(gup.repeat, gup.keyFun);\n scrollbarSlider.enter().append(\"g\").classed(c.cn.scrollbarSlider, true);\n scrollbarSlider.attr(\"transform\", function(d) {\n return strTranslate(0, d.scrollbarState.topY || 0);\n });\n var scrollbarGlyph = scrollbarSlider.selectAll(\".\" + c.cn.scrollbarGlyph).data(gup.repeat, gup.keyFun);\n scrollbarGlyph.enter().append(\"line\").classed(c.cn.scrollbarGlyph, true).attr(\"stroke\", \"black\").attr(\"stroke-width\", c.scrollbarWidth).attr(\"stroke-linecap\", \"round\").attr(\"y1\", c.scrollbarWidth / 2);\n scrollbarGlyph.attr(\"y2\", function(d) {\n return d.scrollbarState.barLength - c.scrollbarWidth / 2;\n }).attr(\"stroke-opacity\", function(d) {\n return d.columnDragInProgress || !d.scrollbarState.barWiggleRoom || bypassVisibleBar ? 0 : 0.4;\n });\n scrollbarGlyph.transition().delay(0).duration(0);\n scrollbarGlyph.transition().delay(c.scrollbarHideDelay).duration(c.scrollbarHideDuration).attr(\"stroke-opacity\", 0);\n var scrollbarCaptureZone = scrollbar.selectAll(\".\" + c.cn.scrollbarCaptureZone).data(gup.repeat, gup.keyFun);\n scrollbarCaptureZone.enter().append(\"line\").classed(c.cn.scrollbarCaptureZone, true).attr(\"stroke\", \"white\").attr(\"stroke-opacity\", 0.01).attr(\"stroke-width\", c.scrollbarCaptureWidth).attr(\"stroke-linecap\", \"butt\").attr(\"y1\", 0).on(\"mousedown\", function(d) {\n var y = d3.event.y;\n var bbox = this.getBoundingClientRect();\n var s = d.scrollbarState;\n var pixelVal = y - bbox.top;\n var inverseScale = d3.scale.linear().domain([0, s.scrollableAreaHeight]).range([0, s.totalHeight]).clamp(true);\n if (!(s.topY <= pixelVal && pixelVal <= s.bottomY)) {\n makeDragRow(gd, tableControlView, null, inverseScale(pixelVal - s.barLength / 2))(d);\n }\n }).call(\n d3.behavior.drag().origin(function(d) {\n d3.event.stopPropagation();\n d.scrollbarState.scrollbarScrollInProgress = true;\n return d;\n }).on(\"drag\", makeDragRow(gd, tableControlView)).on(\"dragend\", function() {\n })\n );\n scrollbarCaptureZone.attr(\"y2\", function(d) {\n return d.scrollbarState.scrollableAreaHeight;\n });\n if (gd._context.staticPlot) {\n scrollbarGlyph.remove();\n scrollbarCaptureZone.remove();\n }\n }\n function renderColumnCellTree(gd, tableControlView, columnBlock, allColumnBlock) {\n var columnCells = renderColumnCells(columnBlock);\n var columnCell = renderColumnCell(columnCells);\n supplyStylingValues(columnCell);\n var cellRect = renderCellRect(columnCell);\n sizeAndStyleRect(cellRect);\n var cellTextHolder = renderCellTextHolder(columnCell);\n var cellText = renderCellText(cellTextHolder);\n setFont(cellText);\n populateCellText(cellText, tableControlView, allColumnBlock, gd);\n setCellHeightAndPositionY(columnCell);\n }\n function renderColumnCells(columnBlock) {\n var columnCells = columnBlock.selectAll(\".\" + c.cn.columnCells).data(gup.repeat, gup.keyFun);\n columnCells.enter().append(\"g\").classed(c.cn.columnCells, true);\n columnCells.exit().remove();\n return columnCells;\n }\n function renderColumnCell(columnCells) {\n var columnCell = columnCells.selectAll(\".\" + c.cn.columnCell).data(splitData.splitToCells, function(d) {\n return d.keyWithinBlock;\n });\n columnCell.enter().append(\"g\").classed(c.cn.columnCell, true);\n columnCell.exit().remove();\n return columnCell;\n }\n function renderCellRect(columnCell) {\n var cellRect = columnCell.selectAll(\".\" + c.cn.cellRect).data(gup.repeat, function(d) {\n return d.keyWithinBlock;\n });\n cellRect.enter().append(\"rect\").classed(c.cn.cellRect, true);\n return cellRect;\n }\n function renderCellText(cellTextHolder) {\n var cellText = cellTextHolder.selectAll(\".\" + c.cn.cellText).data(gup.repeat, function(d) {\n return d.keyWithinBlock;\n });\n cellText.enter().append(\"text\").classed(c.cn.cellText, true).style(\"cursor\", function() {\n return \"auto\";\n }).on(\"mousedown\", function() {\n d3.event.stopPropagation();\n });\n return cellText;\n }\n function renderCellTextHolder(columnCell) {\n var cellTextHolder = columnCell.selectAll(\".\" + c.cn.cellTextHolder).data(gup.repeat, function(d) {\n return d.keyWithinBlock;\n });\n cellTextHolder.enter().append(\"g\").classed(c.cn.cellTextHolder, true).style(\"shape-rendering\", \"geometricPrecision\");\n return cellTextHolder;\n }\n function supplyStylingValues(columnCell) {\n columnCell.each(function(d, i) {\n var spec = d.calcdata.cells.font;\n var col = d.column.specIndex;\n var font = {\n size: gridPick(spec.size, col, i),\n color: gridPick(spec.color, col, i),\n family: gridPick(spec.family, col, i),\n weight: gridPick(spec.weight, col, i),\n style: gridPick(spec.style, col, i),\n variant: gridPick(spec.variant, col, i),\n textcase: gridPick(spec.textcase, col, i),\n lineposition: gridPick(spec.lineposition, col, i),\n shadow: gridPick(spec.shadow, col, i)\n };\n d.rowNumber = d.key;\n d.align = gridPick(d.calcdata.cells.align, col, i);\n d.cellBorderWidth = gridPick(d.calcdata.cells.line.width, col, i);\n d.font = font;\n });\n }\n function setFont(cellText) {\n cellText.each(function(d) {\n Drawing.font(d3.select(this), d.font);\n });\n }\n function sizeAndStyleRect(cellRect) {\n cellRect.attr(\"width\", function(d) {\n return d.column.columnWidth;\n }).attr(\"stroke-width\", function(d) {\n return d.cellBorderWidth;\n }).each(function(d) {\n var atomicSelection = d3.select(this);\n Color2.stroke(atomicSelection, gridPick(d.calcdata.cells.line.color, d.column.specIndex, d.rowNumber));\n Color2.fill(atomicSelection, gridPick(d.calcdata.cells.fill.color, d.column.specIndex, d.rowNumber));\n });\n }\n function populateCellText(cellText, tableControlView, allColumnBlock, gd) {\n cellText.text(function(d) {\n var col = d.column.specIndex;\n var row = d.rowNumber;\n var userSuppliedContent = d.value;\n var stringSupplied = typeof userSuppliedContent === \"string\";\n var hasBreaks = stringSupplied && userSuppliedContent.match(/
/i);\n var userBrokenText = !stringSupplied || hasBreaks;\n d.mayHaveMarkup = stringSupplied && userSuppliedContent.match(/[<&>]/);\n var latex = isLatex(userSuppliedContent);\n d.latex = latex;\n var prefix = latex ? \"\" : gridPick(d.calcdata.cells.prefix, col, row) || \"\";\n var suffix = latex ? \"\" : gridPick(d.calcdata.cells.suffix, col, row) || \"\";\n var format = latex ? null : gridPick(d.calcdata.cells.format, col, row) || null;\n var prefixSuffixedText = prefix + (format ? numberFormat(format)(d.value) : d.value) + suffix;\n var hasWrapSplitCharacter;\n d.wrappingNeeded = !d.wrapped && !userBrokenText && !latex && (hasWrapSplitCharacter = hasWrapCharacter(prefixSuffixedText));\n d.cellHeightMayIncrease = hasBreaks || latex || d.mayHaveMarkup || (hasWrapSplitCharacter === void 0 ? hasWrapCharacter(prefixSuffixedText) : hasWrapSplitCharacter);\n d.needsConvertToTspans = d.mayHaveMarkup || d.wrappingNeeded || d.latex;\n var textToRender;\n if (d.wrappingNeeded) {\n var hrefPreservedText = c.wrapSplitCharacter === \" \" ? prefixSuffixedText.replace(/ pTop) {\n pages.push(blockIndex);\n }\n pTop += rowsHeight2;\n }\n return pages;\n }\n function updateBlockYPosition(gd, cellsColumnBlock, tableControlView) {\n var d = flatData(cellsColumnBlock)[0];\n if (d === void 0) return;\n var blocks = d.rowBlocks;\n var calcdata = d.calcdata;\n var bottom = firstRowAnchor(blocks, blocks.length);\n var scrollHeight = d.calcdata.groupHeight - headerHeight(d);\n var scrollY = calcdata.scrollY = Math.max(0, Math.min(bottom - scrollHeight, calcdata.scrollY));\n var pages = findPagesAndCacheHeights(blocks, scrollY, scrollHeight);\n if (pages.length === 1) {\n if (pages[0] === blocks.length - 1) {\n pages.unshift(pages[0] - 1);\n } else {\n pages.push(pages[0] + 1);\n }\n }\n if (pages[0] % 2) {\n pages.reverse();\n }\n cellsColumnBlock.each(function(d2, i) {\n d2.page = pages[i];\n d2.scrollY = scrollY;\n });\n cellsColumnBlock.attr(\"transform\", function(d2) {\n var yTranslate = firstRowAnchor(d2.rowBlocks, d2.page) - d2.scrollY;\n return strTranslate(0, yTranslate);\n });\n if (gd) {\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 0);\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 1);\n renderScrollbarKit(tableControlView, gd);\n }\n }\n function makeDragRow(gd, allTableControlView, optionalMultiplier, optionalPosition) {\n return function dragRow(eventD) {\n var d = eventD.calcdata ? eventD.calcdata : eventD;\n var tableControlView = allTableControlView.filter(function(dd) {\n return d.key === dd.key;\n });\n var multiplier = optionalMultiplier || d.scrollbarState.dragMultiplier;\n var initialScrollY = d.scrollY;\n d.scrollY = optionalPosition === void 0 ? d.scrollY + multiplier * d3.event.dy : optionalPosition;\n var cellsColumnBlock = tableControlView.selectAll(\".\" + c.cn.yColumn).selectAll(\".\" + c.cn.columnBlock).filter(cellsBlock);\n updateBlockYPosition(gd, cellsColumnBlock, tableControlView);\n return d.scrollY === initialScrollY;\n };\n }\n function conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, prevPages, d, revolverIndex) {\n var shouldComponentUpdate = pages[revolverIndex] !== prevPages[revolverIndex];\n if (shouldComponentUpdate) {\n clearTimeout(d.currentRepaint[revolverIndex]);\n d.currentRepaint[revolverIndex] = setTimeout(function() {\n var toRerender = cellsColumnBlock.filter(function(d2, i) {\n return i === revolverIndex && pages[i] !== prevPages[i];\n });\n renderColumnCellTree(gd, tableControlView, toRerender, cellsColumnBlock);\n prevPages[revolverIndex] = pages[revolverIndex];\n });\n }\n }\n function wrapTextMaker(columnBlock, element, tableControlView, gd) {\n return function wrapText() {\n var cellTextHolder = d3.select(element.parentNode);\n cellTextHolder.each(function(d) {\n var fragments = d.fragments;\n cellTextHolder.selectAll(\"tspan.line\").each(function(dd, i) {\n fragments[i].width = this.getComputedTextLength();\n });\n var separatorLength = fragments[fragments.length - 1].width;\n var rest = fragments.slice(0, -1);\n var currentRow = [];\n var currentAddition, currentAdditionLength;\n var currentRowLength = 0;\n var rowLengthLimit = d.column.columnWidth - 2 * c.cellPad;\n d.value = \"\";\n while (rest.length) {\n currentAddition = rest.shift();\n currentAdditionLength = currentAddition.width + separatorLength;\n if (currentRowLength + currentAdditionLength > rowLengthLimit) {\n d.value += currentRow.join(c.wrapSpacer) + c.lineBreaker;\n currentRow = [];\n currentRowLength = 0;\n }\n currentRow.push(currentAddition.text);\n currentRowLength += currentAdditionLength;\n }\n if (currentRowLength) {\n d.value += currentRow.join(c.wrapSpacer);\n }\n d.wrapped = true;\n });\n cellTextHolder.selectAll(\"tspan.line\").remove();\n populateCellText(cellTextHolder.select(\".\" + c.cn.cellText), tableControlView, columnBlock, gd);\n d3.select(element.parentNode.parentNode).call(setCellHeightAndPositionY);\n };\n }\n function updateYPositionMaker(columnBlock, element, tableControlView, gd, d) {\n return function updateYPosition() {\n if (d.settledY) return;\n var cellTextHolder = d3.select(element.parentNode);\n var l = getBlock(d);\n var rowIndex = d.key - l.firstRowIndex;\n var declaredRowHeight = l.rows[rowIndex].rowHeight;\n var requiredHeight = d.cellHeightMayIncrease ? element.parentNode.getBoundingClientRect().height + 2 * c.cellPad : declaredRowHeight;\n var finalHeight = Math.max(requiredHeight, declaredRowHeight);\n var increase = finalHeight - l.rows[rowIndex].rowHeight;\n if (increase) {\n l.rows[rowIndex].rowHeight = finalHeight;\n columnBlock.selectAll(\".\" + c.cn.columnCell).call(setCellHeightAndPositionY);\n updateBlockYPosition(null, columnBlock.filter(cellsBlock), 0);\n renderScrollbarKit(tableControlView, gd, true);\n }\n cellTextHolder.attr(\"transform\", function() {\n var element2 = this;\n var columnCellElement = element2.parentNode;\n var box = columnCellElement.getBoundingClientRect();\n var rectBox = d3.select(element2.parentNode).select(\".\" + c.cn.cellRect).node().getBoundingClientRect();\n var currentTransform = element2.transform.baseVal.consolidate();\n var yPosition = rectBox.top - box.top + (currentTransform ? currentTransform.matrix.f : c.cellPad);\n return strTranslate(xPosition(d, d3.select(element2.parentNode).select(\".\" + c.cn.cellTextHolder).node().getBoundingClientRect().width), yPosition);\n });\n d.settledY = true;\n };\n }\n function xPosition(d, optionalWidth) {\n switch (d.align) {\n case \"left\":\n return c.cellPad;\n case \"right\":\n return d.column.columnWidth - (optionalWidth || 0) - c.cellPad;\n case \"center\":\n return (d.column.columnWidth - (optionalWidth || 0)) / 2;\n default:\n return c.cellPad;\n }\n }\n function setCellHeightAndPositionY(columnCell) {\n columnCell.attr(\"transform\", function(d) {\n var headerHeight2 = d.rowBlocks[0].auxiliaryBlocks.reduce(function(p, n) {\n return p + rowsHeight(n, Infinity);\n }, 0);\n var l = getBlock(d);\n var rowAnchor = rowsHeight(l, d.key);\n var yOffset = rowAnchor + headerHeight2;\n return strTranslate(0, yOffset);\n }).selectAll(\".\" + c.cn.cellRect).attr(\"height\", function(d) {\n return getRow(getBlock(d), d.key).rowHeight;\n });\n }\n function firstRowAnchor(blocks, page) {\n var total = 0;\n for (var i = page - 1; i >= 0; i--) {\n total += allRowsHeight(blocks[i]);\n }\n return total;\n }\n function rowsHeight(rowBlock, key) {\n var total = 0;\n for (var i = 0; i < rowBlock.rows.length && rowBlock.rows[i].rowIndex < key; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n return total;\n }\n function allRowsHeight(rowBlock) {\n var cached = rowBlock.allRowsHeight;\n if (cached !== void 0) {\n return cached;\n }\n var total = 0;\n for (var i = 0; i < rowBlock.rows.length; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n rowBlock.allRowsHeight = total;\n return total;\n }\n function getBlock(d) {\n return d.rowBlocks[d.page];\n }\n function getRow(l, i) {\n return l.rows[i - l.firstRowIndex];\n }\n }\n });\n\n // src/traces/table/base_plot.js\n var require_base_plot11 = __commonJS({\n \"src/traces/table/base_plot.js\"(exports) {\n \"use strict\";\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var tablePlot = require_plot31();\n var TABLE = \"table\";\n exports.name = TABLE;\n exports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, TABLE)[0];\n if (calcData.length) tablePlot(gd, calcData);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = oldFullLayout._has && oldFullLayout._has(TABLE);\n var hasTable = newFullLayout._has && newFullLayout._has(TABLE);\n if (hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll(\".table\").remove();\n }\n };\n }\n });\n\n // src/traces/table/index.js\n var require_table = __commonJS({\n \"src/traces/table/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes62(),\n supplyDefaults: require_defaults58(),\n calc: require_calc37(),\n plot: require_plot31(),\n moduleType: \"trace\",\n name: \"table\",\n basePlotModule: require_base_plot11(),\n categories: [\"noOpacity\"],\n meta: {}\n };\n }\n });\n\n // lib/table.js\n var require_table2 = __commonJS({\n \"lib/table.js\"(exports, module) {\n \"use strict\";\n module.exports = require_table();\n }\n });\n\n // src/traces/carpet/axis_attributes.js\n var require_axis_attributes2 = __commonJS({\n \"src/traces/carpet/axis_attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var axesAttrs = require_layout_attributes4();\n var descriptionWithDates = require_axis_format_attributes().descriptionWithDates;\n var overrideAll = require_edit_types().overrideAll;\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n color: {\n valType: \"color\",\n editType: \"calc\"\n },\n smoothing: {\n valType: \"number\",\n dflt: 1,\n min: 0,\n max: 1.3,\n editType: \"calc\"\n },\n title: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n font: fontAttrs({\n editType: \"calc\"\n }),\n // TODO how is this different than `title.standoff`\n offset: {\n valType: \"number\",\n dflt: 10,\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n type: {\n valType: \"enumerated\",\n // '-' means we haven't yet run autotype or couldn't find any data\n // it gets turned into linear in gd._fullLayout but not copied back\n // to gd.data like the others are.\n values: [\"-\", \"linear\", \"date\", \"category\"],\n dflt: \"-\",\n editType: \"calc\"\n },\n autotypenumbers: axesAttrs.autotypenumbers,\n autorange: {\n valType: \"enumerated\",\n values: [true, false, \"reversed\"],\n dflt: true,\n editType: \"calc\"\n },\n rangemode: {\n valType: \"enumerated\",\n values: [\"normal\", \"tozero\", \"nonnegative\"],\n dflt: \"normal\",\n editType: \"calc\"\n },\n range: {\n valType: \"info_array\",\n editType: \"calc\",\n items: [\n { valType: \"any\", editType: \"calc\" },\n { valType: \"any\", editType: \"calc\" }\n ]\n },\n fixedrange: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n cheatertype: {\n valType: \"enumerated\",\n values: [\"index\", \"value\"],\n dflt: \"value\",\n editType: \"calc\"\n },\n tickmode: {\n valType: \"enumerated\",\n values: [\"linear\", \"array\"],\n dflt: \"array\",\n editType: \"calc\"\n },\n nticks: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n tickvals: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n ticktext: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n showticklabels: {\n valType: \"enumerated\",\n values: [\"start\", \"end\", \"both\", \"none\"],\n dflt: \"start\",\n editType: \"calc\"\n },\n labelalias: extendFlat({}, axesAttrs.labelalias, { editType: \"calc\" }),\n tickfont: fontAttrs({\n editType: \"calc\"\n }),\n tickangle: {\n valType: \"angle\",\n dflt: \"auto\",\n editType: \"calc\"\n },\n tickprefix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n showtickprefix: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"calc\"\n },\n ticksuffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n showticksuffix: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"calc\"\n },\n showexponent: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"calc\"\n },\n exponentformat: {\n valType: \"enumerated\",\n values: [\"none\", \"e\", \"E\", \"power\", \"SI\", \"B\"],\n dflt: \"B\",\n editType: \"calc\"\n },\n minexponent: {\n valType: \"number\",\n dflt: 3,\n min: 0,\n editType: \"calc\"\n },\n separatethousands: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n tickformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\",\n description: descriptionWithDates(\"tick label\")\n },\n tickformatstops: overrideAll(axesAttrs.tickformatstops, \"calc\", \"from-root\"),\n categoryorder: {\n valType: \"enumerated\",\n values: [\n \"trace\",\n \"category ascending\",\n \"category descending\",\n \"array\"\n /* , 'value ascending', 'value descending'*/\n // value ascending / descending to be implemented later\n ],\n dflt: \"trace\",\n editType: \"calc\"\n },\n categoryarray: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n labelpadding: {\n valType: \"integer\",\n dflt: 10,\n editType: \"calc\"\n },\n labelprefix: {\n valType: \"string\",\n editType: \"calc\"\n },\n labelsuffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n // lines and grids\n showline: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n linecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"calc\"\n },\n linewidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc\"\n },\n gridcolor: {\n valType: \"color\",\n editType: \"calc\"\n },\n gridwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc\"\n },\n griddash: extendFlat({}, dash, { editType: \"calc\" }),\n showgrid: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n minorgridcount: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n minorgridwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc\"\n },\n minorgriddash: extendFlat({}, dash, { editType: \"calc\" }),\n minorgridcolor: {\n valType: \"color\",\n dflt: colorAttrs.lightLine,\n editType: \"calc\"\n },\n startline: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n startlinecolor: {\n valType: \"color\",\n editType: \"calc\"\n },\n startlinewidth: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n endline: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n endlinewidth: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n endlinecolor: {\n valType: \"color\",\n editType: \"calc\"\n },\n tick0: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n dtick: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc\"\n },\n arraytick0: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n arraydtick: {\n valType: \"integer\",\n min: 1,\n dflt: 1,\n editType: \"calc\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/traces/carpet/attributes.js\n var require_attributes63 = __commonJS({\n \"src/traces/carpet/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var axisAttrs = require_axis_attributes2();\n var colorAttrs = require_attributes3();\n var carpetFont = fontAttrs({\n editType: \"calc\"\n });\n var zorder = require_attributes12().zorder;\n carpetFont.family.dflt = '\"Open Sans\", verdana, arial, sans-serif';\n carpetFont.size.dflt = 12;\n carpetFont.color.dflt = colorAttrs.defaultLine;\n module.exports = {\n carpet: {\n valType: \"string\",\n editType: \"calc\"\n },\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n a: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n a0: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc\"\n },\n da: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n b: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n b0: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc\"\n },\n db: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n cheaterslope: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n aaxis: axisAttrs,\n baxis: axisAttrs,\n font: carpetFont,\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"plot\"\n },\n zorder\n };\n }\n });\n\n // src/traces/carpet/xy_defaults.js\n var require_xy_defaults2 = __commonJS({\n \"src/traces/carpet/xy_defaults.js\"(exports, module) {\n \"use strict\";\n var isArray1D = require_lib().isArray1D;\n module.exports = function handleXYDefaults(traceIn, traceOut, coerce) {\n var x = coerce(\"x\");\n var hasX = x && x.length;\n var y = coerce(\"y\");\n var hasY = y && y.length;\n if (!hasX && !hasY) return false;\n traceOut._cheater = !x;\n if ((!hasX || isArray1D(x)) && (!hasY || isArray1D(y))) {\n var len = hasX ? x.length : Infinity;\n if (hasY) len = Math.min(len, y.length);\n if (traceOut.a && traceOut.a.length) len = Math.min(len, traceOut.a.length);\n if (traceOut.b && traceOut.b.length) len = Math.min(len, traceOut.b.length);\n traceOut._length = len;\n } else traceOut._length = null;\n return true;\n };\n }\n });\n\n // src/traces/carpet/axis_defaults.js\n var require_axis_defaults3 = __commonJS({\n \"src/traces/carpet/axis_defaults.js\"(exports, module) {\n \"use strict\";\n var carpetAttrs = require_attributes63();\n var addOpacity = require_color().addOpacity;\n var Registry = require_registry();\n var Lib = require_lib();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleCategoryOrderDefaults = require_category_order_defaults();\n var setConvert = require_set_convert();\n var autoType = require_axis_autotype();\n module.exports = function handleAxisDefaults(containerIn, containerOut, options) {\n var letter = options.letter;\n var font = options.font || {};\n var attributes = carpetAttrs[letter + \"axis\"];\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(containerIn, containerOut, attributes, attr, dflt);\n }\n if (options.name) {\n containerOut._name = options.name;\n containerOut._id = options.name;\n }\n coerce(\"autotypenumbers\", options.autotypenumbersDflt);\n var axType = coerce(\"type\");\n if (axType === \"-\") {\n if (options.data) setAutoType(containerOut, options.data);\n if (containerOut.type === \"-\") {\n containerOut.type = \"linear\";\n } else {\n axType = containerIn.type = containerOut.type;\n }\n }\n coerce(\"smoothing\");\n coerce(\"cheatertype\");\n coerce(\"showticklabels\");\n coerce(\"labelprefix\", letter + \" = \");\n coerce(\"labelsuffix\");\n coerce(\"showtickprefix\");\n coerce(\"showticksuffix\");\n coerce(\"separatethousands\");\n coerce(\"tickformat\");\n coerce(\"exponentformat\");\n coerce(\"minexponent\");\n coerce(\"showexponent\");\n coerce(\"categoryorder\");\n coerce(\"tickmode\");\n coerce(\"tickvals\");\n coerce(\"ticktext\");\n coerce(\"tick0\");\n coerce(\"dtick\");\n if (containerOut.tickmode === \"array\") {\n coerce(\"arraytick0\");\n coerce(\"arraydtick\");\n }\n coerce(\"labelpadding\");\n containerOut._hovertitle = letter;\n if (axType === \"date\") {\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleDefaults\");\n handleCalendarDefaults(containerIn, containerOut, \"calendar\", options.calendar);\n }\n setConvert(containerOut, options.fullLayout);\n containerOut.c2p = Lib.identity;\n var dfltColor = coerce(\"color\", options.dfltColor);\n var dfltFontColor = dfltColor === containerIn.color ? dfltColor : font.color;\n var title = coerce(\"title.text\");\n if (title) {\n Lib.coerceFont(coerce, \"title.font\", font, { overrideDflt: {\n size: Lib.bigFont(font.size),\n color: dfltFontColor\n } });\n coerce(\"title.offset\");\n }\n coerce(\"tickangle\");\n var autoRange = coerce(\"autorange\", !containerOut.isValidRange(containerIn.range));\n if (autoRange) coerce(\"rangemode\");\n coerce(\"range\");\n containerOut.cleanRange();\n coerce(\"fixedrange\");\n handleTickValueDefaults(containerIn, containerOut, coerce, axType);\n handlePrefixSuffixDefaults(containerIn, containerOut, coerce, axType, options);\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options);\n handleCategoryOrderDefaults(containerIn, containerOut, coerce, {\n data: options.data,\n dataAttr: letter\n });\n var gridColor = coerce2(\"gridcolor\", addOpacity(dfltColor, 0.3));\n var gridWidth = coerce2(\"gridwidth\");\n var gridDash = coerce2(\"griddash\");\n var showGrid = coerce(\"showgrid\");\n if (!showGrid) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n delete containerOut.griddash;\n }\n var startLineColor = coerce2(\"startlinecolor\", dfltColor);\n var startLineWidth = coerce2(\"startlinewidth\", gridWidth);\n var showStartLine = coerce(\"startline\", containerOut.showgrid || !!startLineColor || !!startLineWidth);\n if (!showStartLine) {\n delete containerOut.startlinecolor;\n delete containerOut.startlinewidth;\n }\n var endLineColor = coerce2(\"endlinecolor\", dfltColor);\n var endLineWidth = coerce2(\"endlinewidth\", gridWidth);\n var showEndLine = coerce(\"endline\", containerOut.showgrid || !!endLineColor || !!endLineWidth);\n if (!showEndLine) {\n delete containerOut.endlinecolor;\n delete containerOut.endlinewidth;\n }\n if (!showGrid) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n delete containerOut.griddash;\n } else {\n coerce(\"minorgridcount\");\n coerce(\"minorgridwidth\", gridWidth);\n coerce(\"minorgriddash\", gridDash);\n coerce(\"minorgridcolor\", addOpacity(gridColor, 0.06));\n if (!containerOut.minorgridcount) {\n delete containerOut.minorgridwidth;\n delete containerOut.minorgriddash;\n delete containerOut.minorgridcolor;\n }\n }\n if (containerOut.showticklabels === \"none\") {\n delete containerOut.tickfont;\n delete containerOut.tickangle;\n delete containerOut.showexponent;\n delete containerOut.exponentformat;\n delete containerOut.minexponent;\n delete containerOut.tickformat;\n delete containerOut.showticksuffix;\n delete containerOut.showtickprefix;\n }\n if (!containerOut.showticksuffix) {\n delete containerOut.ticksuffix;\n }\n if (!containerOut.showtickprefix) {\n delete containerOut.tickprefix;\n }\n coerce(\"tickmode\");\n return containerOut;\n };\n function setAutoType(ax, data) {\n if (ax.type !== \"-\") return;\n var id = ax._id;\n var axLetter = id.charAt(0);\n var calAttr = axLetter + \"calendar\";\n var calendar = ax[calAttr];\n ax.type = autoType(data, calendar, {\n autotypenumbers: ax.autotypenumbers\n });\n }\n }\n });\n\n // src/traces/carpet/ab_defaults.js\n var require_ab_defaults = __commonJS({\n \"src/traces/carpet/ab_defaults.js\"(exports, module) {\n \"use strict\";\n var handleAxisDefaults = require_axis_defaults3();\n var Template = require_plot_template();\n module.exports = function handleABDefaults(traceIn, traceOut, fullLayout, coerce, dfltColor) {\n var a = coerce(\"a\");\n if (!a) {\n coerce(\"da\");\n coerce(\"a0\");\n }\n var b = coerce(\"b\");\n if (!b) {\n coerce(\"db\");\n coerce(\"b0\");\n }\n mimickAxisDefaults(traceIn, traceOut, fullLayout, dfltColor);\n };\n function mimickAxisDefaults(traceIn, traceOut, fullLayout, dfltColor) {\n var axesList = [\"aaxis\", \"baxis\"];\n axesList.forEach(function(axName) {\n var axLetter = axName.charAt(0);\n var axIn = traceIn[axName] || {};\n var axOut = Template.newContainer(traceOut, axName);\n var defaultOptions = {\n noAutotickangles: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true,\n noTicklabelstep: true,\n tickfont: \"x\",\n id: axLetter + \"axis\",\n letter: axLetter,\n font: traceOut.font,\n name: axName,\n data: traceIn[axLetter],\n calendar: traceOut.calendar,\n dfltColor,\n bgColor: fullLayout.paper_bgcolor,\n autotypenumbersDflt: fullLayout.autotypenumbers,\n fullLayout\n };\n handleAxisDefaults(axIn, axOut, defaultOptions);\n axOut._categories = axOut._categories || [];\n if (!traceIn[axName] && axIn.type !== \"-\") {\n traceIn[axName] = { type: axIn.type };\n }\n });\n }\n }\n });\n\n // src/traces/carpet/defaults.js\n var require_defaults59 = __commonJS({\n \"src/traces/carpet/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleXYDefaults = require_xy_defaults2();\n var handleABDefaults = require_ab_defaults();\n var attributes = require_attributes63();\n var colorAttrs = require_attributes3();\n module.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n traceOut._clipPathId = \"clip\" + traceOut.uid + \"carpet\";\n var defaultColor = coerce(\"color\", colorAttrs.defaultLine);\n Lib.coerceFont(coerce, \"font\", fullLayout.font);\n coerce(\"carpet\");\n handleABDefaults(traceIn, traceOut, fullLayout, coerce, defaultColor);\n if (!traceOut.a || !traceOut.b) {\n traceOut.visible = false;\n return;\n }\n if (traceOut.a.length < 3) {\n traceOut.aaxis.smoothing = 0;\n }\n if (traceOut.b.length < 3) {\n traceOut.baxis.smoothing = 0;\n }\n var validData = handleXYDefaults(traceIn, traceOut, coerce);\n if (!validData) {\n traceOut.visible = false;\n }\n if (traceOut._cheater) {\n coerce(\"cheaterslope\");\n }\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/carpet/map_1d_array.js\n var require_map_1d_array = __commonJS({\n \"src/traces/carpet/map_1d_array.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function mapArray(out, data, func) {\n var i;\n if (!isArrayOrTypedArray(out)) {\n out = [];\n } else if (out.length > data.length) {\n out = out.slice(0, data.length);\n }\n for (i = 0; i < data.length; i++) {\n out[i] = func(data[i]);\n }\n return out;\n };\n }\n });\n\n // src/traces/carpet/makepath.js\n var require_makepath = __commonJS({\n \"src/traces/carpet/makepath.js\"(exports, module) {\n \"use strict\";\n module.exports = function makePath(xp, yp, isBicubic) {\n if (xp.length === 0) return \"\";\n var i;\n var path = [];\n var stride = isBicubic ? 3 : 1;\n for (i = 0; i < xp.length; i += stride) {\n path.push(xp[i] + \",\" + yp[i]);\n if (isBicubic && i < xp.length - stride) {\n path.push(\"C\");\n path.push([\n xp[i + 1] + \",\" + yp[i + 1],\n xp[i + 2] + \",\" + yp[i + 2] + \" \"\n ].join(\" \"));\n }\n }\n return path.join(isBicubic ? \"\" : \"L\");\n };\n }\n });\n\n // src/traces/carpet/orient_text.js\n var require_orient_text = __commonJS({\n \"src/traces/carpet/orient_text.js\"(exports, module) {\n \"use strict\";\n module.exports = function orientText(trace, xaxis, yaxis, xy, dxy, refDxy) {\n var dx = dxy[0] * trace.dpdx(xaxis);\n var dy = dxy[1] * trace.dpdy(yaxis);\n var flip = 1;\n var offsetMultiplier = 1;\n if (refDxy) {\n var l1 = Math.sqrt(dxy[0] * dxy[0] + dxy[1] * dxy[1]);\n var l2 = Math.sqrt(refDxy[0] * refDxy[0] + refDxy[1] * refDxy[1]);\n var dot = (dxy[0] * refDxy[0] + dxy[1] * refDxy[1]) / l1 / l2;\n offsetMultiplier = Math.max(0, dot);\n }\n var angle = Math.atan2(dy, dx) * 180 / Math.PI;\n if (angle < -90) {\n angle += 180;\n flip = -flip;\n } else if (angle > 90) {\n angle -= 180;\n flip = -flip;\n }\n return {\n angle,\n flip,\n p: trace.c2p(xy, xaxis, yaxis),\n offsetMultplier: offsetMultiplier\n };\n };\n }\n });\n\n // src/traces/carpet/plot.js\n var require_plot32 = __commonJS({\n \"src/traces/carpet/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var map1dArray = require_map_1d_array();\n var makepath = require_makepath();\n var orientText = require_orient_text();\n var svgTextUtils = require_svg_text_utils();\n var Lib = require_lib();\n var strRotate = Lib.strRotate;\n var strTranslate = Lib.strTranslate;\n var alignmentConstants = require_alignment();\n module.exports = function plot(gd, plotinfo, cdcarpet, carpetLayer) {\n var isStatic = gd._context.staticPlot;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var clipLayer = fullLayout._clips;\n Lib.makeTraceGroups(carpetLayer, cdcarpet, \"trace\").each(function(cd) {\n var axisLayer = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var aax = trace.aaxis;\n var bax = trace.baxis;\n var minorLayer = Lib.ensureSingle(axisLayer, \"g\", \"minorlayer\");\n var majorLayer = Lib.ensureSingle(axisLayer, \"g\", \"majorlayer\");\n var boundaryLayer = Lib.ensureSingle(axisLayer, \"g\", \"boundarylayer\");\n var labelLayer = Lib.ensureSingle(axisLayer, \"g\", \"labellayer\");\n axisLayer.style(\"opacity\", trace.opacity);\n drawGridLines(xa, ya, majorLayer, aax, \"a\", aax._gridlines, true, isStatic);\n drawGridLines(xa, ya, majorLayer, bax, \"b\", bax._gridlines, true, isStatic);\n drawGridLines(xa, ya, minorLayer, aax, \"a\", aax._minorgridlines, true, isStatic);\n drawGridLines(xa, ya, minorLayer, bax, \"b\", bax._minorgridlines, true, isStatic);\n drawGridLines(xa, ya, boundaryLayer, aax, \"a-boundary\", aax._boundarylines, isStatic);\n drawGridLines(xa, ya, boundaryLayer, bax, \"b-boundary\", bax._boundarylines, isStatic);\n var labelOrientationA = drawAxisLabels(gd, xa, ya, trace, cd0, labelLayer, aax._labels, \"a-label\");\n var labelOrientationB = drawAxisLabels(gd, xa, ya, trace, cd0, labelLayer, bax._labels, \"b-label\");\n drawAxisTitles(gd, labelLayer, trace, cd0, xa, ya, labelOrientationA, labelOrientationB);\n drawClipPath(trace, cd0, clipLayer, xa, ya);\n });\n };\n function drawClipPath(trace, t, layer, xaxis, yaxis) {\n var seg, xp, yp, i;\n var clip = layer.select(\"#\" + trace._clipPathId);\n if (!clip.size()) {\n clip = layer.append(\"clipPath\").classed(\"carpetclip\", true);\n }\n var path = Lib.ensureSingle(clip, \"path\", \"carpetboundary\");\n var segments = t.clipsegments;\n var segs = [];\n for (i = 0; i < segments.length; i++) {\n seg = segments[i];\n xp = map1dArray([], seg.x, xaxis.c2p);\n yp = map1dArray([], seg.y, yaxis.c2p);\n segs.push(makepath(xp, yp, seg.bicubic));\n }\n var clipPathData = \"M\" + segs.join(\"L\") + \"Z\";\n clip.attr(\"id\", trace._clipPathId);\n path.attr(\"d\", clipPathData);\n }\n function drawGridLines(xaxis, yaxis, layer, axis, axisLetter, gridlines, isStatic) {\n var lineClass = \"const-\" + axisLetter + \"-lines\";\n var gridJoin = layer.selectAll(\".\" + lineClass).data(gridlines);\n gridJoin.enter().append(\"path\").classed(lineClass, true).style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\");\n gridJoin.each(function(d) {\n var gridline = d;\n var x = gridline.x;\n var y = gridline.y;\n var xp = map1dArray([], x, xaxis.c2p);\n var yp = map1dArray([], y, yaxis.c2p);\n var path = \"M\" + makepath(xp, yp, gridline.smoothing);\n var el = d3.select(this);\n el.attr(\"d\", path).style(\"stroke-width\", gridline.width).style(\"stroke\", gridline.color).style(\"stroke-dasharray\", Drawing.dashStyle(gridline.dash, gridline.width)).style(\"fill\", \"none\");\n });\n gridJoin.exit().remove();\n }\n function drawAxisLabels(gd, xaxis, yaxis, trace, t, layer, labels, labelClass) {\n var labelJoin = layer.selectAll(\"text.\" + labelClass).data(labels);\n labelJoin.enter().append(\"text\").classed(labelClass, true);\n var maxExtent = 0;\n var labelOrientation = {};\n labelJoin.each(function(label, i) {\n var orientation;\n if (label.axis.tickangle === \"auto\") {\n orientation = orientText(trace, xaxis, yaxis, label.xy, label.dxy);\n } else {\n var angle = (label.axis.tickangle + 180) * Math.PI / 180;\n orientation = orientText(trace, xaxis, yaxis, label.xy, [Math.cos(angle), Math.sin(angle)]);\n }\n if (!i) {\n labelOrientation = { angle: orientation.angle, flip: orientation.flip };\n }\n var direction = (label.endAnchor ? -1 : 1) * orientation.flip;\n var labelEl = d3.select(this).attr({\n \"text-anchor\": direction > 0 ? \"start\" : \"end\",\n \"data-notex\": 1\n }).call(Drawing.font, label.font).text(label.text).call(svgTextUtils.convertToTspans, gd);\n var bbox = Drawing.bBox(this);\n labelEl.attr(\n \"transform\",\n // Translate to the correct point:\n strTranslate(orientation.p[0], orientation.p[1]) + // Rotate to line up with grid line tangent:\n strRotate(orientation.angle) + // Adjust the baseline and indentation:\n strTranslate(label.axis.labelpadding * direction, bbox.height * 0.3)\n );\n maxExtent = Math.max(maxExtent, bbox.width + label.axis.labelpadding);\n });\n labelJoin.exit().remove();\n labelOrientation.maxExtent = maxExtent;\n return labelOrientation;\n }\n function drawAxisTitles(gd, layer, trace, t, xa, ya, labelOrientationA, labelOrientationB) {\n var a, b, xy, dxy;\n var aMin = Lib.aggNums(Math.min, null, trace.a);\n var aMax = Lib.aggNums(Math.max, null, trace.a);\n var bMin = Lib.aggNums(Math.min, null, trace.b);\n var bMax = Lib.aggNums(Math.max, null, trace.b);\n a = 0.5 * (aMin + aMax);\n b = bMin;\n xy = trace.ab2xy(a, b, true);\n dxy = trace.dxyda_rough(a, b);\n if (labelOrientationA.angle === void 0) {\n Lib.extendFlat(labelOrientationA, orientText(trace, xa, ya, xy, trace.dxydb_rough(a, b)));\n }\n drawAxisTitle(gd, layer, trace, t, xy, dxy, trace.aaxis, xa, ya, labelOrientationA, \"a-title\");\n a = aMin;\n b = 0.5 * (bMin + bMax);\n xy = trace.ab2xy(a, b, true);\n dxy = trace.dxydb_rough(a, b);\n if (labelOrientationB.angle === void 0) {\n Lib.extendFlat(labelOrientationB, orientText(trace, xa, ya, xy, trace.dxyda_rough(a, b)));\n }\n drawAxisTitle(gd, layer, trace, t, xy, dxy, trace.baxis, xa, ya, labelOrientationB, \"b-title\");\n }\n var lineSpacing = alignmentConstants.LINE_SPACING;\n var midShift = (1 - alignmentConstants.MID_SHIFT) / lineSpacing + 1;\n function drawAxisTitle(gd, layer, trace, t, xy, dxy, axis, xa, ya, labelOrientation, labelClass) {\n var data = [];\n if (axis.title.text) data.push(axis.title.text);\n var titleJoin = layer.selectAll(\"text.\" + labelClass).data(data);\n var offset = labelOrientation.maxExtent;\n titleJoin.enter().append(\"text\").classed(labelClass, true);\n titleJoin.each(function() {\n var orientation = orientText(trace, xa, ya, xy, dxy);\n if ([\"start\", \"both\"].indexOf(axis.showticklabels) === -1) {\n offset = 0;\n }\n var titleSize = axis.title.font.size;\n offset += titleSize + axis.title.offset;\n var labelNorm = labelOrientation.angle + (labelOrientation.flip < 0 ? 180 : 0);\n var angleDiff = (labelNorm - orientation.angle + 450) % 360;\n var reverseTitle = angleDiff > 90 && angleDiff < 270;\n var el = d3.select(this);\n el.text(axis.title.text).call(svgTextUtils.convertToTspans, gd);\n if (reverseTitle) {\n offset = (-svgTextUtils.lineCount(el) + midShift) * lineSpacing * titleSize - offset;\n }\n el.attr(\n \"transform\",\n strTranslate(orientation.p[0], orientation.p[1]) + strRotate(orientation.angle) + strTranslate(0, offset)\n ).attr(\"text-anchor\", \"middle\").call(Drawing.font, axis.title.font);\n });\n titleJoin.exit().remove();\n }\n }\n });\n\n // src/traces/carpet/cheater_basis.js\n var require_cheater_basis = __commonJS({\n \"src/traces/carpet/cheater_basis.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function(a, b, cheaterslope) {\n var i, j, ascal, bscal, aval, bval;\n var data = [];\n var na = isArrayOrTypedArray(a) ? a.length : a;\n var nb = isArrayOrTypedArray(b) ? b.length : b;\n var adata = isArrayOrTypedArray(a) ? a : null;\n var bdata = isArrayOrTypedArray(b) ? b : null;\n if (adata) {\n ascal = (adata.length - 1) / (adata[adata.length - 1] - adata[0]) / (na - 1);\n }\n if (bdata) {\n bscal = (bdata.length - 1) / (bdata[bdata.length - 1] - bdata[0]) / (nb - 1);\n }\n var xval;\n var xmin = Infinity;\n var xmax = -Infinity;\n for (j = 0; j < nb; j++) {\n data[j] = [];\n bval = bdata ? (bdata[j] - bdata[0]) * bscal : j / (nb - 1);\n for (i = 0; i < na; i++) {\n aval = adata ? (adata[i] - adata[0]) * ascal : i / (na - 1);\n xval = aval - bval * cheaterslope;\n xmin = Math.min(xval, xmin);\n xmax = Math.max(xval, xmax);\n data[j][i] = xval;\n }\n }\n var slope = 1 / (xmax - xmin);\n var offset = -xmin * slope;\n for (j = 0; j < nb; j++) {\n for (i = 0; i < na; i++) {\n data[j][i] = slope * data[j][i] + offset;\n }\n }\n return data;\n };\n }\n });\n\n // src/traces/carpet/array_minmax.js\n var require_array_minmax = __commonJS({\n \"src/traces/carpet/array_minmax.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function(a) {\n return minMax(a, 0);\n };\n function minMax(a, depth) {\n if (!isArrayOrTypedArray(a) || depth >= 10) {\n return null;\n }\n var min = Infinity;\n var max = -Infinity;\n var n = a.length;\n for (var i = 0; i < n; i++) {\n var datum = a[i];\n if (isArrayOrTypedArray(datum)) {\n var result = minMax(datum, depth + 1);\n if (result) {\n min = Math.min(result[0], min);\n max = Math.max(result[1], max);\n }\n } else {\n min = Math.min(datum, min);\n max = Math.max(datum, max);\n }\n }\n return [min, max];\n }\n }\n });\n\n // src/traces/carpet/calc_gridlines.js\n var require_calc_gridlines = __commonJS({\n \"src/traces/carpet/calc_gridlines.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var extendFlat = require_extend().extendFlat;\n module.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) {\n var i, j, j0;\n var eps, bounds, n1, n2, n, value, v;\n var j1, v0, v1, d;\n var data = trace[\"_\" + axisLetter];\n var axis = trace[axisLetter + \"axis\"];\n var gridlines = axis._gridlines = [];\n var minorgridlines = axis._minorgridlines = [];\n var boundarylines = axis._boundarylines = [];\n var crossData = trace[\"_\" + crossAxisLetter];\n var crossAxis = trace[crossAxisLetter + \"axis\"];\n if (axis.tickmode === \"array\") {\n axis.tickvals = data.slice();\n }\n var xcp = trace._xctrl;\n var ycp = trace._yctrl;\n var nea = xcp[0].length;\n var neb = xcp.length;\n var na = trace._a.length;\n var nb = trace._b.length;\n Axes.prepTicks(axis);\n if (axis.tickmode === \"array\") delete axis.tickvals;\n var stride = axis.smoothing ? 3 : 1;\n function constructValueGridline(value2) {\n var i2, j2, j02, tj, pxy, i0, ti, xy, dxydi0, dxydi1, dxydj0, dxydj1;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n if (axisLetter === \"b\") {\n j2 = trace.b2j(value2);\n j02 = Math.floor(Math.max(0, Math.min(nb - 2, j2)));\n tj = j2 - j02;\n ret.length = nb;\n ret.crossLength = na;\n ret.xy = function(i3) {\n return trace.evalxy([], i3, j2);\n };\n ret.dxy = function(i02, ti2) {\n return trace.dxydi([], i02, j02, ti2, tj);\n };\n for (i2 = 0; i2 < na; i2++) {\n i0 = Math.min(na - 2, i2);\n ti = i2 - i0;\n xy = trace.evalxy([], i2, j2);\n if (crossAxis.smoothing && i2 > 0) {\n dxydi0 = trace.dxydi([], i2 - 1, j02, 0, tj);\n xpoints.push(pxy[0] + dxydi0[0] / 3);\n ypoints.push(pxy[1] + dxydi0[1] / 3);\n dxydi1 = trace.dxydi([], i2 - 1, j02, 1, tj);\n xpoints.push(xy[0] - dxydi1[0] / 3);\n ypoints.push(xy[1] - dxydi1[1] / 3);\n }\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n pxy = xy;\n }\n } else {\n i2 = trace.a2i(value2);\n i0 = Math.floor(Math.max(0, Math.min(na - 2, i2)));\n ti = i2 - i0;\n ret.length = na;\n ret.crossLength = nb;\n ret.xy = function(j3) {\n return trace.evalxy([], i2, j3);\n };\n ret.dxy = function(j03, tj2) {\n return trace.dxydj([], i0, j03, ti, tj2);\n };\n for (j2 = 0; j2 < nb; j2++) {\n j02 = Math.min(nb - 2, j2);\n tj = j2 - j02;\n xy = trace.evalxy([], i2, j2);\n if (crossAxis.smoothing && j2 > 0) {\n dxydj0 = trace.dxydj([], i0, j2 - 1, ti, 0);\n xpoints.push(pxy[0] + dxydj0[0] / 3);\n ypoints.push(pxy[1] + dxydj0[1] / 3);\n dxydj1 = trace.dxydj([], i0, j2 - 1, ti, 1);\n xpoints.push(xy[0] - dxydj1[0] / 3);\n ypoints.push(xy[1] - dxydj1[1] / 3);\n }\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n pxy = xy;\n }\n }\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = value2;\n ret.constvar = crossAxisLetter;\n ret.index = n;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n return ret;\n }\n function constructArrayGridline(idx) {\n var j2, i0, j02, ti, tj;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n ret.length = data.length;\n ret.crossLength = crossData.length;\n if (axisLetter === \"b\") {\n j02 = Math.max(0, Math.min(nb - 2, idx));\n tj = Math.min(1, Math.max(0, idx - j02));\n ret.xy = function(i2) {\n return trace.evalxy([], i2, idx);\n };\n ret.dxy = function(i02, ti2) {\n return trace.dxydi([], i02, j02, ti2, tj);\n };\n for (j2 = 0; j2 < nea; j2++) {\n xpoints[j2] = xcp[idx * stride][j2];\n ypoints[j2] = ycp[idx * stride][j2];\n }\n } else {\n i0 = Math.max(0, Math.min(na - 2, idx));\n ti = Math.min(1, Math.max(0, idx - i0));\n ret.xy = function(j3) {\n return trace.evalxy([], idx, j3);\n };\n ret.dxy = function(j03, tj2) {\n return trace.dxydj([], i0, j03, ti, tj2);\n };\n for (j2 = 0; j2 < neb; j2++) {\n xpoints[j2] = xcp[j2][idx * stride];\n ypoints[j2] = ycp[j2][idx * stride];\n }\n }\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = data[idx];\n ret.constvar = crossAxisLetter;\n ret.index = idx;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n return ret;\n }\n if (axis.tickmode === \"array\") {\n eps = 5e-15;\n bounds = [\n Math.floor((data.length - 1 - axis.arraytick0) / axis.arraydtick * (1 + eps)),\n Math.ceil(-axis.arraytick0 / axis.arraydtick / (1 + eps))\n ].sort(function(a, b) {\n return a - b;\n });\n n1 = bounds[0] - 1;\n n2 = bounds[1] + 1;\n for (n = n1; n < n2; n++) {\n j = axis.arraytick0 + axis.arraydtick * n;\n if (j < 0 || j > data.length - 1) continue;\n gridlines.push(extendFlat(constructArrayGridline(j), {\n color: axis.gridcolor,\n width: axis.gridwidth,\n dash: axis.griddash\n }));\n }\n for (n = n1; n < n2; n++) {\n j0 = axis.arraytick0 + axis.arraydtick * n;\n j1 = Math.min(j0 + axis.arraydtick, data.length - 1);\n if (j0 < 0 || j0 > data.length - 1) continue;\n if (j1 < 0 || j1 > data.length - 1) continue;\n v0 = data[j0];\n v1 = data[j1];\n for (i = 0; i < axis.minorgridcount; i++) {\n d = j1 - j0;\n if (d <= 0) continue;\n v = v0 + (v1 - v0) * (i + 1) / (axis.minorgridcount + 1) * (axis.arraydtick / d);\n if (v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth,\n dash: axis.minorgriddash\n }));\n }\n }\n if (axis.startline) {\n boundarylines.push(extendFlat(constructArrayGridline(0), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n if (axis.endline) {\n boundarylines.push(extendFlat(constructArrayGridline(data.length - 1), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n } else {\n eps = 5e-15;\n bounds = [\n Math.floor((data[data.length - 1] - axis.tick0) / axis.dtick * (1 + eps)),\n Math.ceil((data[0] - axis.tick0) / axis.dtick / (1 + eps))\n ].sort(function(a, b) {\n return a - b;\n });\n n1 = bounds[0];\n n2 = bounds[1];\n for (n = n1; n <= n2; n++) {\n value = axis.tick0 + axis.dtick * n;\n gridlines.push(extendFlat(constructValueGridline(value), {\n color: axis.gridcolor,\n width: axis.gridwidth,\n dash: axis.griddash\n }));\n }\n for (n = n1 - 1; n < n2 + 1; n++) {\n value = axis.tick0 + axis.dtick * n;\n for (i = 0; i < axis.minorgridcount; i++) {\n v = value + axis.dtick * (i + 1) / (axis.minorgridcount + 1);\n if (v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth,\n dash: axis.minorgriddash\n }));\n }\n }\n if (axis.startline) {\n boundarylines.push(extendFlat(constructValueGridline(data[0]), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n if (axis.endline) {\n boundarylines.push(extendFlat(constructValueGridline(data[data.length - 1]), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n }\n };\n }\n });\n\n // src/traces/carpet/calc_labels.js\n var require_calc_labels = __commonJS({\n \"src/traces/carpet/calc_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var extendFlat = require_extend().extendFlat;\n module.exports = function calcLabels(trace, axis) {\n var i, tobj, prefix, suffix, gridline;\n var labels = axis._labels = [];\n var gridlines = axis._gridlines;\n for (i = 0; i < gridlines.length; i++) {\n gridline = gridlines[i];\n if ([\"start\", \"both\"].indexOf(axis.showticklabels) !== -1) {\n tobj = Axes.tickText(axis, gridline.value);\n extendFlat(tobj, {\n prefix,\n suffix,\n endAnchor: true,\n xy: gridline.xy(0),\n dxy: gridline.dxy(0, 0),\n axis: gridline.axis,\n length: gridline.crossAxis.length,\n font: gridline.axis.tickfont,\n isFirst: i === 0,\n isLast: i === gridlines.length - 1\n });\n labels.push(tobj);\n }\n if ([\"end\", \"both\"].indexOf(axis.showticklabels) !== -1) {\n tobj = Axes.tickText(axis, gridline.value);\n extendFlat(tobj, {\n endAnchor: false,\n xy: gridline.xy(gridline.crossLength - 1),\n dxy: gridline.dxy(gridline.crossLength - 2, 1),\n axis: gridline.axis,\n length: gridline.crossAxis.length,\n font: gridline.axis.tickfont,\n isFirst: i === 0,\n isLast: i === gridlines.length - 1\n });\n labels.push(tobj);\n }\n }\n };\n }\n });\n\n // src/traces/carpet/calc_clippath.js\n var require_calc_clippath = __commonJS({\n \"src/traces/carpet/calc_clippath.js\"(exports, module) {\n \"use strict\";\n module.exports = function makeClipPath(xctrl, yctrl, aax, bax) {\n var i, x, y;\n var segments = [];\n var asmoothing = !!aax.smoothing;\n var bsmoothing = !!bax.smoothing;\n var nea1 = xctrl[0].length - 1;\n var neb1 = xctrl.length - 1;\n for (i = 0, x = [], y = []; i <= nea1; i++) {\n x[i] = xctrl[0][i];\n y[i] = yctrl[0][i];\n }\n segments.push({ x, y, bicubic: asmoothing });\n for (i = 0, x = [], y = []; i <= neb1; i++) {\n x[i] = xctrl[i][nea1];\n y[i] = yctrl[i][nea1];\n }\n segments.push({ x, y, bicubic: bsmoothing });\n for (i = nea1, x = [], y = []; i >= 0; i--) {\n x[nea1 - i] = xctrl[neb1][i];\n y[nea1 - i] = yctrl[neb1][i];\n }\n segments.push({ x, y, bicubic: asmoothing });\n for (i = neb1, x = [], y = []; i >= 0; i--) {\n x[neb1 - i] = xctrl[i][0];\n y[neb1 - i] = yctrl[i][0];\n }\n segments.push({ x, y, bicubic: bsmoothing });\n return segments;\n };\n }\n });\n\n // src/traces/carpet/smooth_fill_2d_array.js\n var require_smooth_fill_2d_array = __commonJS({\n \"src/traces/carpet/smooth_fill_2d_array.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function smoothFill2dArray(data, a, b) {\n var i, j, k;\n var ip = [];\n var jp = [];\n var ni = data[0].length;\n var nj = data.length;\n function avgSurrounding(i2, j2) {\n var sum = 0;\n var val;\n var cnt = 0;\n if (i2 > 0 && (val = data[j2][i2 - 1]) !== void 0) {\n cnt++;\n sum += val;\n }\n if (i2 < ni - 1 && (val = data[j2][i2 + 1]) !== void 0) {\n cnt++;\n sum += val;\n }\n if (j2 > 0 && (val = data[j2 - 1][i2]) !== void 0) {\n cnt++;\n sum += val;\n }\n if (j2 < nj - 1 && (val = data[j2 + 1][i2]) !== void 0) {\n cnt++;\n sum += val;\n }\n return sum / Math.max(1, cnt);\n }\n var dmax = 0;\n for (i = 0; i < ni; i++) {\n for (j = 0; j < nj; j++) {\n if (data[j][i] === void 0) {\n ip.push(i);\n jp.push(j);\n data[j][i] = avgSurrounding(i, j);\n }\n dmax = Math.max(dmax, Math.abs(data[j][i]));\n }\n }\n if (!ip.length) return data;\n var dxp, dxm, dap, dam, dbp, dbm, c, d, diff, reldiff, overrelaxation;\n var tol = 1e-5;\n var resid = 0;\n var itermax = 100;\n var iter = 0;\n var n = ip.length;\n do {\n resid = 0;\n for (k = 0; k < n; k++) {\n i = ip[k];\n j = jp[k];\n var boundaryCnt = 0;\n var newVal = 0;\n var d0, d1, x0, x1, i0, j0;\n if (i === 0) {\n i0 = Math.min(ni - 1, 2);\n x0 = a[i0];\n x1 = a[1];\n d0 = data[j][i0];\n d1 = data[j][1];\n newVal += d1 + (d1 - d0) * (a[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if (i === ni - 1) {\n i0 = Math.max(0, ni - 3);\n x0 = a[i0];\n x1 = a[ni - 2];\n d0 = data[j][i0];\n d1 = data[j][ni - 2];\n newVal += d1 + (d1 - d0) * (a[ni - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n if ((i === 0 || i === ni - 1) && (j > 0 && j < nj - 1)) {\n dxp = b[j + 1] - b[j];\n dxm = b[j] - b[j - 1];\n newVal += (dxm * data[j + 1][i] + dxp * data[j - 1][i]) / (dxm + dxp);\n boundaryCnt++;\n }\n if (j === 0) {\n j0 = Math.min(nj - 1, 2);\n x0 = b[j0];\n x1 = b[1];\n d0 = data[j0][i];\n d1 = data[1][i];\n newVal += d1 + (d1 - d0) * (b[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if (j === nj - 1) {\n j0 = Math.max(0, nj - 3);\n x0 = b[j0];\n x1 = b[nj - 2];\n d0 = data[j0][i];\n d1 = data[nj - 2][i];\n newVal += d1 + (d1 - d0) * (b[nj - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n if ((j === 0 || j === nj - 1) && (i > 0 && i < ni - 1)) {\n dxp = a[i + 1] - a[i];\n dxm = a[i] - a[i - 1];\n newVal += (dxm * data[j][i + 1] + dxp * data[j][i - 1]) / (dxm + dxp);\n boundaryCnt++;\n }\n if (!boundaryCnt) {\n dap = a[i + 1] - a[i];\n dam = a[i] - a[i - 1];\n dbp = b[j + 1] - b[j];\n dbm = b[j] - b[j - 1];\n c = dap * dam * (dap + dam);\n d = dbp * dbm * (dbp + dbm);\n newVal = (c * (dbm * data[j + 1][i] + dbp * data[j - 1][i]) + d * (dam * data[j][i + 1] + dap * data[j][i - 1])) / (d * (dam + dap) + c * (dbm + dbp));\n } else {\n newVal /= boundaryCnt;\n }\n diff = newVal - data[j][i];\n reldiff = diff / dmax;\n resid += reldiff * reldiff;\n overrelaxation = boundaryCnt ? 0 : 0.85;\n data[j][i] += diff * (1 + overrelaxation);\n }\n resid = Math.sqrt(resid);\n } while (iter++ < itermax && resid > tol);\n Lib.log(\"Smoother converged to\", resid, \"after\", iter, \"iterations\");\n return data;\n };\n }\n });\n\n // src/traces/carpet/constants.js\n var require_constants32 = __commonJS({\n \"src/traces/carpet/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n RELATIVE_CULL_TOLERANCE: 1e-6\n };\n }\n });\n\n // src/traces/carpet/catmull_rom.js\n var require_catmull_rom = __commonJS({\n \"src/traces/carpet/catmull_rom.js\"(exports, module) {\n \"use strict\";\n var CatmullRomExp = 0.5;\n module.exports = function makeControlPoints(p0, p1, p2, smoothness) {\n var d1x = p0[0] - p1[0];\n var d1y = p0[1] - p1[1];\n var d2x = p2[0] - p1[0];\n var d2y = p2[1] - p1[1];\n var d1a = Math.pow(d1x * d1x + d1y * d1y, CatmullRomExp / 2);\n var d2a = Math.pow(d2x * d2x + d2y * d2y, CatmullRomExp / 2);\n var numx = (d2a * d2a * d1x - d1a * d1a * d2x) * smoothness;\n var numy = (d2a * d2a * d1y - d1a * d1a * d2y) * smoothness;\n var denom1 = d2a * (d1a + d2a) * 3;\n var denom2 = d1a * (d1a + d2a) * 3;\n return [[\n p1[0] + (denom1 && numx / denom1),\n p1[1] + (denom1 && numy / denom1)\n ], [\n p1[0] - (denom2 && numx / denom2),\n p1[1] - (denom2 && numy / denom2)\n ]];\n };\n }\n });\n\n // src/traces/carpet/compute_control_points.js\n var require_compute_control_points = __commonJS({\n \"src/traces/carpet/compute_control_points.js\"(exports, module) {\n \"use strict\";\n var makeControlPoints = require_catmull_rom();\n var ensureArray = require_lib().ensureArray;\n function inferCubicControlPoint(p0, p2, p3) {\n var p2e0 = -0.5 * p3[0] + 1.5 * p2[0];\n var p2e1 = -0.5 * p3[1] + 1.5 * p2[1];\n return [\n (2 * p2e0 + p0[0]) / 3,\n (2 * p2e1 + p0[1]) / 3\n ];\n }\n module.exports = function computeControlPoints(xe, ye, x, y, asmoothing, bsmoothing) {\n var i, j, ie, je, xej, yej, xj, yj, cp, p1;\n var na = x[0].length;\n var nb = x.length;\n var nea = asmoothing ? 3 * na - 2 : na;\n var neb = bsmoothing ? 3 * nb - 2 : nb;\n xe = ensureArray(xe, neb);\n ye = ensureArray(ye, neb);\n for (ie = 0; ie < neb; ie++) {\n xe[ie] = ensureArray(xe[ie], nea);\n ye[ie] = ensureArray(ye[ie], nea);\n }\n for (j = 0, je = 0; j < nb; j++, je += bsmoothing ? 3 : 1) {\n xej = xe[je];\n yej = ye[je];\n xj = x[j];\n yj = y[j];\n for (i = 0, ie = 0; i < na; i++, ie += asmoothing ? 3 : 1) {\n xej[ie] = xj[i];\n yej[ie] = yj[i];\n }\n }\n if (asmoothing) {\n for (j = 0, je = 0; j < nb; j++, je += bsmoothing ? 3 : 1) {\n for (i = 1, ie = 3; i < na - 1; i++, ie += 3) {\n cp = makeControlPoints(\n [x[j][i - 1], y[j][i - 1]],\n [x[j][i], y[j][i]],\n [x[j][i + 1], y[j][i + 1]],\n asmoothing\n );\n xe[je][ie - 1] = cp[0][0];\n ye[je][ie - 1] = cp[0][1];\n xe[je][ie + 1] = cp[1][0];\n ye[je][ie + 1] = cp[1][1];\n }\n p1 = inferCubicControlPoint(\n [xe[je][0], ye[je][0]],\n [xe[je][2], ye[je][2]],\n [xe[je][3], ye[je][3]]\n );\n xe[je][1] = p1[0];\n ye[je][1] = p1[1];\n p1 = inferCubicControlPoint(\n [xe[je][nea - 1], ye[je][nea - 1]],\n [xe[je][nea - 3], ye[je][nea - 3]],\n [xe[je][nea - 4], ye[je][nea - 4]]\n );\n xe[je][nea - 2] = p1[0];\n ye[je][nea - 2] = p1[1];\n }\n }\n if (bsmoothing) {\n for (ie = 0; ie < nea; ie++) {\n for (je = 3; je < neb - 3; je += 3) {\n cp = makeControlPoints(\n [xe[je - 3][ie], ye[je - 3][ie]],\n [xe[je][ie], ye[je][ie]],\n [xe[je + 3][ie], ye[je + 3][ie]],\n bsmoothing\n );\n xe[je - 1][ie] = cp[0][0];\n ye[je - 1][ie] = cp[0][1];\n xe[je + 1][ie] = cp[1][0];\n ye[je + 1][ie] = cp[1][1];\n }\n p1 = inferCubicControlPoint(\n [xe[0][ie], ye[0][ie]],\n [xe[2][ie], ye[2][ie]],\n [xe[3][ie], ye[3][ie]]\n );\n xe[1][ie] = p1[0];\n ye[1][ie] = p1[1];\n p1 = inferCubicControlPoint(\n [xe[neb - 1][ie], ye[neb - 1][ie]],\n [xe[neb - 3][ie], ye[neb - 3][ie]],\n [xe[neb - 4][ie], ye[neb - 4][ie]]\n );\n xe[neb - 2][ie] = p1[0];\n ye[neb - 2][ie] = p1[1];\n }\n }\n if (asmoothing && bsmoothing) {\n for (je = 1; je < neb; je += (je + 1) % 3 === 0 ? 2 : 1) {\n for (ie = 3; ie < nea - 3; ie += 3) {\n cp = makeControlPoints(\n [xe[je][ie - 3], ye[je][ie - 3]],\n [xe[je][ie], ye[je][ie]],\n [xe[je][ie + 3], ye[je][ie + 3]],\n asmoothing\n );\n xe[je][ie - 1] = 0.5 * (xe[je][ie - 1] + cp[0][0]);\n ye[je][ie - 1] = 0.5 * (ye[je][ie - 1] + cp[0][1]);\n xe[je][ie + 1] = 0.5 * (xe[je][ie + 1] + cp[1][0]);\n ye[je][ie + 1] = 0.5 * (ye[je][ie + 1] + cp[1][1]);\n }\n p1 = inferCubicControlPoint(\n [xe[je][0], ye[je][0]],\n [xe[je][2], ye[je][2]],\n [xe[je][3], ye[je][3]]\n );\n xe[je][1] = 0.5 * (xe[je][1] + p1[0]);\n ye[je][1] = 0.5 * (ye[je][1] + p1[1]);\n p1 = inferCubicControlPoint(\n [xe[je][nea - 1], ye[je][nea - 1]],\n [xe[je][nea - 3], ye[je][nea - 3]],\n [xe[je][nea - 4], ye[je][nea - 4]]\n );\n xe[je][nea - 2] = 0.5 * (xe[je][nea - 2] + p1[0]);\n ye[je][nea - 2] = 0.5 * (ye[je][nea - 2] + p1[1]);\n }\n }\n return [xe, ye];\n };\n }\n });\n\n // src/traces/carpet/create_spline_evaluator.js\n var require_create_spline_evaluator = __commonJS({\n \"src/traces/carpet/create_spline_evaluator.js\"(exports, module) {\n \"use strict\";\n module.exports = function(arrays, na, nb, asmoothing, bsmoothing) {\n var imax = na - 2;\n var jmax = nb - 2;\n if (asmoothing && bsmoothing) {\n return function(out, i, j) {\n if (!out) out = [];\n var f0, f1, f2, f3, ak, k;\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n i0 *= 3;\n j0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou3 * ak[j0][i0] + 3 * (ou2 * u * ak[j0][i0 + 1] + ou * u2 * ak[j0][i0 + 2]) + u3 * ak[j0][i0 + 3];\n f1 = ou3 * ak[j0 + 1][i0] + 3 * (ou2 * u * ak[j0 + 1][i0 + 1] + ou * u2 * ak[j0 + 1][i0 + 2]) + u3 * ak[j0 + 1][i0 + 3];\n f2 = ou3 * ak[j0 + 2][i0] + 3 * (ou2 * u * ak[j0 + 2][i0 + 1] + ou * u2 * ak[j0 + 2][i0 + 2]) + u3 * ak[j0 + 2][i0 + 3];\n f3 = ou3 * ak[j0 + 3][i0] + 3 * (ou2 * u * ak[j0 + 3][i0 + 1] + ou * u2 * ak[j0 + 3][i0 + 2]) + u3 * ak[j0 + 3][i0 + 3];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else if (asmoothing) {\n return function(out, i, j) {\n if (!out) out = [];\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n var f0, f1, f2, f3, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var ov = 1 - v;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ov * ak[j0][i0] + v * ak[j0 + 1][i0];\n f1 = ov * ak[j0][i0 + 1] + v * ak[j0 + 1][i0 + 1];\n f2 = ov * ak[j0][i0 + 2] + v * ak[j0 + 1][i0 + 1];\n f3 = ov * ak[j0][i0 + 3] + v * ak[j0 + 1][i0 + 1];\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if (bsmoothing) {\n return function(out, i, j) {\n if (!out) out = [];\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n var f0, f1, f2, f3, k, ak;\n j0 *= 3;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n var ou = 1 - u;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n f2 = ou * ak[j0 + 2][i0] + u * ak[j0 + 2][i0 + 1];\n f3 = ou * ak[j0 + 3][i0] + u * ak[j0 + 3][i0 + 1];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else {\n return function(out, i, j) {\n if (!out) out = [];\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n var f0, f1, k, ak;\n var ov = 1 - v;\n var ou = 1 - u;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n };\n }\n });\n\n // src/traces/carpet/create_i_derivative_evaluator.js\n var require_create_i_derivative_evaluator = __commonJS({\n \"src/traces/carpet/create_i_derivative_evaluator.js\"(exports, module) {\n \"use strict\";\n module.exports = function(arrays, asmoothing, bsmoothing) {\n if (asmoothing && bsmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, f2, f3, ak, k;\n i0 *= 3;\n j0 *= 3;\n var u2 = u * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ouu2 = ou * u * 2;\n var a = -3 * ou2;\n var b = 3 * (ou2 - ouu2);\n var c = 3 * (ouu2 - u2);\n var d = 3 * u2;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = a * ak[j0][i0] + b * ak[j0][i0 + 1] + c * ak[j0][i0 + 2] + d * ak[j0][i0 + 3];\n f1 = a * ak[j0 + 1][i0] + b * ak[j0 + 1][i0 + 1] + c * ak[j0 + 1][i0 + 2] + d * ak[j0 + 1][i0 + 3];\n f2 = a * ak[j0 + 2][i0] + b * ak[j0 + 2][i0 + 1] + c * ak[j0 + 2][i0 + 2] + d * ak[j0 + 2][i0 + 3];\n f3 = a * ak[j0 + 3][i0] + b * ak[j0 + 3][i0 + 1] + c * ak[j0 + 3][i0 + 2] + d * ak[j0 + 3][i0 + 3];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else if (asmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ouu2 = ou * u * 2;\n var a = -3 * ou2;\n var b = 3 * (ou2 - ouu2);\n var c = 3 * (ouu2 - u2);\n var d = 3 * u2;\n var ov = 1 - v;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = a * ak[j0][i0] + b * ak[j0][i0 + 1] + c * ak[j0][i0 + 2] + d * ak[j0][i0 + 3];\n f1 = a * ak[j0 + 1][i0] + b * ak[j0 + 1][i0 + 1] + c * ak[j0 + 1][i0 + 2] + d * ak[j0 + 1][i0 + 3];\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n } else if (bsmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, f2, f3, k, ak;\n j0 *= 3;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ak[j0][i0 + 1] - ak[j0][i0];\n f1 = ak[j0 + 1][i0 + 1] - ak[j0 + 1][i0];\n f2 = ak[j0 + 2][i0 + 1] - ak[j0 + 2][i0];\n f3 = ak[j0 + 3][i0 + 1] - ak[j0 + 3][i0];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, k, ak;\n var ov = 1 - v;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ak[j0][i0 + 1] - ak[j0][i0];\n f1 = ak[j0 + 1][i0 + 1] - ak[j0 + 1][i0];\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n };\n }\n });\n\n // src/traces/carpet/create_j_derivative_evaluator.js\n var require_create_j_derivative_evaluator = __commonJS({\n \"src/traces/carpet/create_j_derivative_evaluator.js\"(exports, module) {\n \"use strict\";\n module.exports = function(arrays, asmoothing, bsmoothing) {\n if (asmoothing && bsmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, f2, f3, ak, k;\n i0 *= 3;\n j0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var v2 = v * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ovv2 = ov * v * 2;\n var a = -3 * ov2;\n var b = 3 * (ov2 - ovv2);\n var c = 3 * (ovv2 - v2);\n var d = 3 * v2;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = a * ak[j0][i0] + b * ak[j0 + 1][i0] + c * ak[j0 + 2][i0] + d * ak[j0 + 3][i0];\n f1 = a * ak[j0][i0 + 1] + b * ak[j0 + 1][i0 + 1] + c * ak[j0 + 2][i0 + 1] + d * ak[j0 + 3][i0 + 1];\n f2 = a * ak[j0][i0 + 2] + b * ak[j0 + 1][i0 + 2] + c * ak[j0 + 2][i0 + 2] + d * ak[j0 + 3][i0 + 2];\n f3 = a * ak[j0][i0 + 3] + b * ak[j0 + 1][i0 + 3] + c * ak[j0 + 2][i0 + 3] + d * ak[j0 + 3][i0 + 3];\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if (asmoothing) {\n return function(out, i0, j0, v, u) {\n if (!out) out = [];\n var f0, f1, f2, f3, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ak[j0 + 1][i0] - ak[j0][i0];\n f1 = ak[j0 + 1][i0 + 1] - ak[j0][i0 + 1];\n f2 = ak[j0 + 1][i0 + 2] - ak[j0][i0 + 2];\n f3 = ak[j0 + 1][i0 + 3] - ak[j0][i0 + 3];\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if (bsmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, k, ak;\n j0 *= 3;\n var ou = 1 - u;\n var v2 = v * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ovv2 = ov * v * 2;\n var a = -3 * ov2;\n var b = 3 * (ov2 - ovv2);\n var c = 3 * (ovv2 - v2);\n var d = 3 * v2;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = a * ak[j0][i0] + b * ak[j0 + 1][i0] + c * ak[j0 + 2][i0] + d * ak[j0 + 3][i0];\n f1 = a * ak[j0][i0 + 1] + b * ak[j0 + 1][i0 + 1] + c * ak[j0 + 2][i0 + 1] + d * ak[j0 + 3][i0 + 1];\n out[k] = ou * f0 + u * f1;\n }\n return out;\n };\n } else {\n return function(out, i0, j0, v, u) {\n if (!out) out = [];\n var f0, f1, k, ak;\n var ov = 1 - v;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ak[j0 + 1][i0] - ak[j0][i0];\n f1 = ak[j0 + 1][i0 + 1] - ak[j0][i0 + 1];\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n };\n }\n });\n\n // src/traces/carpet/set_convert.js\n var require_set_convert2 = __commonJS({\n \"src/traces/carpet/set_convert.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants32();\n var search = require_search().findBin;\n var computeControlPoints = require_compute_control_points();\n var createSplineEvaluator = require_create_spline_evaluator();\n var createIDerivativeEvaluator = require_create_i_derivative_evaluator();\n var createJDerivativeEvaluator = require_create_j_derivative_evaluator();\n module.exports = function setConvert(trace) {\n var a = trace._a;\n var b = trace._b;\n var na = a.length;\n var nb = b.length;\n var aax = trace.aaxis;\n var bax = trace.baxis;\n var amin = a[0];\n var amax = a[na - 1];\n var bmin = b[0];\n var bmax = b[nb - 1];\n var arange = a[a.length - 1] - a[0];\n var brange = b[b.length - 1] - b[0];\n var atol = arange * constants.RELATIVE_CULL_TOLERANCE;\n var btol = brange * constants.RELATIVE_CULL_TOLERANCE;\n amin -= atol;\n amax += atol;\n bmin -= btol;\n bmax += btol;\n trace.isVisible = function(a2, b2) {\n return a2 > amin && a2 < amax && b2 > bmin && b2 < bmax;\n };\n trace.isOccluded = function(a2, b2) {\n return a2 < amin || a2 > amax || b2 < bmin || b2 > bmax;\n };\n trace.setScale = function() {\n var x = trace._x;\n var y = trace._y;\n var result = computeControlPoints(trace._xctrl, trace._yctrl, x, y, aax.smoothing, bax.smoothing);\n trace._xctrl = result[0];\n trace._yctrl = result[1];\n trace.evalxy = createSplineEvaluator([trace._xctrl, trace._yctrl], na, nb, aax.smoothing, bax.smoothing);\n trace.dxydi = createIDerivativeEvaluator([trace._xctrl, trace._yctrl], aax.smoothing, bax.smoothing);\n trace.dxydj = createJDerivativeEvaluator([trace._xctrl, trace._yctrl], aax.smoothing, bax.smoothing);\n };\n trace.i2a = function(i) {\n var i0 = Math.max(0, Math.floor(i[0]), na - 2);\n var ti = i[0] - i0;\n return (1 - ti) * a[i0] + ti * a[i0 + 1];\n };\n trace.j2b = function(j) {\n var j0 = Math.max(0, Math.floor(j[1]), na - 2);\n var tj = j[1] - j0;\n return (1 - tj) * b[j0] + tj * b[j0 + 1];\n };\n trace.ij2ab = function(ij) {\n return [trace.i2a(ij[0]), trace.j2b(ij[1])];\n };\n trace.a2i = function(aval) {\n var i0 = Math.max(0, Math.min(search(aval, a), na - 2));\n var a0 = a[i0];\n var a1 = a[i0 + 1];\n return Math.max(0, Math.min(na - 1, i0 + (aval - a0) / (a1 - a0)));\n };\n trace.b2j = function(bval) {\n var j0 = Math.max(0, Math.min(search(bval, b), nb - 2));\n var b0 = b[j0];\n var b1 = b[j0 + 1];\n return Math.max(0, Math.min(nb - 1, j0 + (bval - b0) / (b1 - b0)));\n };\n trace.ab2ij = function(ab) {\n return [trace.a2i(ab[0]), trace.b2j(ab[1])];\n };\n trace.i2c = function(i, j) {\n return trace.evalxy([], i, j);\n };\n trace.ab2xy = function(aval, bval, extrapolate) {\n if (!extrapolate && (aval < a[0] || aval > a[na - 1] | bval < b[0] || bval > b[nb - 1])) {\n return [false, false];\n }\n var i = trace.a2i(aval);\n var j = trace.b2j(bval);\n var pt = trace.evalxy([], i, j);\n if (extrapolate) {\n var iex = 0;\n var jex = 0;\n var der = [];\n var i0, ti, j0, tj;\n if (aval < a[0]) {\n i0 = 0;\n ti = 0;\n iex = (aval - a[0]) / (a[1] - a[0]);\n } else if (aval > a[na - 1]) {\n i0 = na - 2;\n ti = 1;\n iex = (aval - a[na - 1]) / (a[na - 1] - a[na - 2]);\n } else {\n i0 = Math.max(0, Math.min(na - 2, Math.floor(i)));\n ti = i - i0;\n }\n if (bval < b[0]) {\n j0 = 0;\n tj = 0;\n jex = (bval - b[0]) / (b[1] - b[0]);\n } else if (bval > b[nb - 1]) {\n j0 = nb - 2;\n tj = 1;\n jex = (bval - b[nb - 1]) / (b[nb - 1] - b[nb - 2]);\n } else {\n j0 = Math.max(0, Math.min(nb - 2, Math.floor(j)));\n tj = j - j0;\n }\n if (iex) {\n trace.dxydi(der, i0, j0, ti, tj);\n pt[0] += der[0] * iex;\n pt[1] += der[1] * iex;\n }\n if (jex) {\n trace.dxydj(der, i0, j0, ti, tj);\n pt[0] += der[0] * jex;\n pt[1] += der[1] * jex;\n }\n }\n return pt;\n };\n trace.c2p = function(xy, xa, ya) {\n return [xa.c2p(xy[0]), ya.c2p(xy[1])];\n };\n trace.p2x = function(p, xa, ya) {\n return [xa.p2c(p[0]), ya.p2c(p[1])];\n };\n trace.dadi = function(i) {\n var i0 = Math.max(0, Math.min(a.length - 2, i));\n return a[i0 + 1] - a[i0];\n };\n trace.dbdj = function(j) {\n var j0 = Math.max(0, Math.min(b.length - 2, j));\n return b[j0 + 1] - b[j0];\n };\n trace.dxyda = function(i0, j0, u, v) {\n var dxydi = trace.dxydi(null, i0, j0, u, v);\n var dadi = trace.dadi(i0, u);\n return [dxydi[0] / dadi, dxydi[1] / dadi];\n };\n trace.dxydb = function(i0, j0, u, v) {\n var dxydj = trace.dxydj(null, i0, j0, u, v);\n var dbdj = trace.dbdj(j0, v);\n return [dxydj[0] / dbdj, dxydj[1] / dbdj];\n };\n trace.dxyda_rough = function(a2, b2, reldiff) {\n var h = arange * (reldiff || 0.1);\n var plus = trace.ab2xy(a2 + h, b2, true);\n var minus = trace.ab2xy(a2 - h, b2, true);\n return [\n (plus[0] - minus[0]) * 0.5 / h,\n (plus[1] - minus[1]) * 0.5 / h\n ];\n };\n trace.dxydb_rough = function(a2, b2, reldiff) {\n var h = brange * (reldiff || 0.1);\n var plus = trace.ab2xy(a2, b2 + h, true);\n var minus = trace.ab2xy(a2, b2 - h, true);\n return [\n (plus[0] - minus[0]) * 0.5 / h,\n (plus[1] - minus[1]) * 0.5 / h\n ];\n };\n trace.dpdx = function(xa) {\n return xa._m;\n };\n trace.dpdy = function(ya) {\n return ya._m;\n };\n };\n }\n });\n\n // src/traces/carpet/calc.js\n var require_calc38 = __commonJS({\n \"src/traces/carpet/calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var isArray1D = require_lib().isArray1D;\n var cheaterBasis = require_cheater_basis();\n var arrayMinmax = require_array_minmax();\n var calcGridlines = require_calc_gridlines();\n var calcLabels = require_calc_labels();\n var calcClipPath = require_calc_clippath();\n var clean2dArray = require_clean_2d_array();\n var smoothFill2dArray = require_smooth_fill_2d_array();\n var convertColumnData = require_convert_column_xyz();\n var setConvert = require_set_convert2();\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n var aax = trace.aaxis;\n var bax = trace.baxis;\n var x = trace.x;\n var y = trace.y;\n var cols = [];\n if (x && isArray1D(x)) cols.push(\"x\");\n if (y && isArray1D(y)) cols.push(\"y\");\n if (cols.length) {\n convertColumnData(trace, aax, bax, \"a\", \"b\", cols);\n }\n var a = trace._a = trace._a || trace.a;\n var b = trace._b = trace._b || trace.b;\n x = trace._x || trace.x;\n y = trace._y || trace.y;\n var t = {};\n if (trace._cheater) {\n var avals = aax.cheatertype === \"index\" ? a.length : a;\n var bvals = bax.cheatertype === \"index\" ? b.length : b;\n x = cheaterBasis(avals, bvals, trace.cheaterslope);\n }\n trace._x = x = clean2dArray(x);\n trace._y = y = clean2dArray(y);\n smoothFill2dArray(x, a, b);\n smoothFill2dArray(y, a, b);\n setConvert(trace);\n trace.setScale();\n var xrange = arrayMinmax(x);\n var yrange = arrayMinmax(y);\n var dx = 0.5 * (xrange[1] - xrange[0]);\n var xc = 0.5 * (xrange[1] + xrange[0]);\n var dy = 0.5 * (yrange[1] - yrange[0]);\n var yc = 0.5 * (yrange[1] + yrange[0]);\n var grow = 1.3;\n xrange = [xc - dx * grow, xc + dx * grow];\n yrange = [yc - dy * grow, yc + dy * grow];\n trace._extremes[xa._id] = Axes.findExtremes(xa, xrange, { padded: true });\n trace._extremes[ya._id] = Axes.findExtremes(ya, yrange, { padded: true });\n calcGridlines(trace, \"a\", \"b\");\n calcGridlines(trace, \"b\", \"a\");\n calcLabels(trace, aax);\n calcLabels(trace, bax);\n t.clipsegments = calcClipPath(trace._xctrl, trace._yctrl, aax, bax);\n t.x = x;\n t.y = y;\n t.a = a;\n t.b = b;\n return [t];\n };\n }\n });\n\n // src/traces/carpet/index.js\n var require_carpet = __commonJS({\n \"src/traces/carpet/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes63(),\n supplyDefaults: require_defaults59(),\n plot: require_plot32(),\n calc: require_calc38(),\n animatable: true,\n isContainer: true,\n // so carpet traces get `calc` before other traces\n moduleType: \"trace\",\n name: \"carpet\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"carpet\", \"carpetAxis\", \"notLegendIsolatable\", \"noMultiCategory\", \"noHover\", \"noSortingByValue\"],\n meta: {}\n };\n }\n });\n\n // lib/carpet.js\n var require_carpet2 = __commonJS({\n \"lib/carpet.js\"(exports, module) {\n \"use strict\";\n module.exports = require_carpet();\n }\n });\n\n // src/traces/scattercarpet/attributes.js\n var require_attributes64 = __commonJS({\n \"src/traces/scattercarpet/attributes.js\"(exports, module) {\n \"use strict\";\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n module.exports = {\n carpet: {\n valType: \"string\",\n editType: \"calc\"\n },\n a: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n b: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n mode: extendFlat({}, scatterAttrs.mode, { dflt: \"markers\" }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"a\", \"b\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash: scatterLineAttrs.dash,\n backoff: scatterLineAttrs.backoff,\n shape: extendFlat(\n {},\n scatterLineAttrs.shape,\n { values: [\"linear\", \"spline\"] }\n ),\n smoothing: scatterLineAttrs.smoothing,\n editType: \"calc\"\n },\n connectgaps: scatterAttrs.connectgaps,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: [\"none\", \"toself\", \"tonext\"],\n dflt: \"none\"\n }),\n fillcolor: makeFillcolorAttr(),\n marker: extendFlat(\n {\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n maxdisplayed: scatterMarkerAttrs.maxdisplayed,\n angle: scatterMarkerAttrs.angle,\n angleref: scatterMarkerAttrs.angleref,\n standoff: scatterMarkerAttrs.standoff,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n line: extendFlat(\n {\n width: scatterMarkerLineAttrs.width,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker.line\")\n ),\n gradient: scatterMarkerAttrs.gradient,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\")\n ),\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"a\", \"b\", \"text\", \"name\"]\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs(),\n zorder: scatterAttrs.zorder\n };\n }\n });\n\n // src/traces/scattercarpet/defaults.js\n var require_defaults60 = __commonJS({\n \"src/traces/scattercarpet/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constants = require_constants8();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes64();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n coerce(\"carpet\");\n traceOut.xaxis = \"x\";\n traceOut.yaxis = \"y\";\n var a = coerce(\"a\");\n var b = coerce(\"b\");\n var len = Math.min(a.length, b.length);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"text\");\n coerce(\"texttemplate\");\n coerce(\"hovertext\");\n var defaultMode = len < constants.PTS_LINESONLY ? \"lines+markers\" : \"lines\";\n coerce(\"mode\", defaultMode);\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n var hoverOn = coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n if (hoverOn !== \"fills\") coerce(\"hovertemplate\");\n coerce(\"zorder\");\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scattercarpet/format_labels.js\n var require_format_labels7 = __commonJS({\n \"src/traces/scattercarpet/format_labels.js\"(exports, module) {\n \"use strict\";\n module.exports = function formatLabels(cdi, trace) {\n var labels = {};\n var carpet = trace._carpet;\n var ij = carpet.ab2ij([cdi.a, cdi.b]);\n var i0 = Math.floor(ij[0]);\n var ti = ij[0] - i0;\n var j0 = Math.floor(ij[1]);\n var tj = ij[1] - j0;\n var xy = carpet.evalxy([], i0, j0, ti, tj);\n labels.yLabel = xy[1].toFixed(3);\n return labels;\n };\n }\n });\n\n // src/traces/carpet/lookup_carpetid.js\n var require_lookup_carpetid = __commonJS({\n \"src/traces/carpet/lookup_carpetid.js\"(exports, module) {\n \"use strict\";\n module.exports = function(gd, trace) {\n var n = gd._fullData.length;\n var firstAxis;\n for (var i = 0; i < n; i++) {\n var maybeCarpet = gd._fullData[i];\n if (maybeCarpet.index === trace.index) continue;\n if (maybeCarpet.type === \"carpet\") {\n if (!firstAxis) {\n firstAxis = maybeCarpet;\n }\n if (maybeCarpet.carpet === trace.carpet) {\n return maybeCarpet;\n }\n }\n }\n return firstAxis;\n };\n }\n });\n\n // src/traces/scattercarpet/calc.js\n var require_calc39 = __commonJS({\n \"src/traces/scattercarpet/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var lookupCarpet = require_lookup_carpetid();\n module.exports = function calc(gd, trace) {\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n if (!carpet || !carpet.visible || carpet.visible === \"legendonly\") return;\n var i;\n trace.xaxis = carpet.xaxis;\n trace.yaxis = carpet.yaxis;\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var a, b;\n var needsCull = false;\n for (i = 0; i < serieslen; i++) {\n a = trace.a[i];\n b = trace.b[i];\n if (isNumeric(a) && isNumeric(b)) {\n var xy = carpet.ab2xy(+a, +b, true);\n var visible = carpet.isVisible(+a, +b);\n if (!visible) needsCull = true;\n cd[i] = { x: xy[0], y: xy[1], a, b, vis: visible };\n } else cd[i] = { x: false, y: false };\n }\n trace._needsCull = needsCull;\n cd[0].carpet = carpet;\n cd[0].trace = trace;\n calcMarkerSize(trace, serieslen);\n calcColorscale(gd, trace);\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/scattercarpet/plot.js\n var require_plot33 = __commonJS({\n \"src/traces/scattercarpet/plot.js\"(exports, module) {\n \"use strict\";\n var scatterPlot = require_plot();\n var Axes = require_axes();\n var Drawing = require_drawing();\n module.exports = function plot(gd, plotinfoproxy, data, layer) {\n var i, trace, node;\n var carpet = data[0][0].carpet;\n var xaxis = Axes.getFromId(gd, carpet.xaxis || \"x\");\n var yaxis = Axes.getFromId(gd, carpet.yaxis || \"y\");\n var plotinfo = {\n xaxis,\n yaxis,\n plot: plotinfoproxy.plot\n };\n for (i = 0; i < data.length; i++) {\n trace = data[i][0].trace;\n trace._xA = xaxis;\n trace._yA = yaxis;\n }\n scatterPlot(gd, plotinfo, data, layer);\n for (i = 0; i < data.length; i++) {\n trace = data[i][0].trace;\n node = layer.selectAll(\"g.trace\" + trace.uid + \" .js-line\");\n Drawing.setClipUrl(node, data[i][0].carpet._clipPathId, gd);\n }\n };\n }\n });\n\n // src/traces/scattercarpet/hover.js\n var require_hover22 = __commonJS({\n \"src/traces/scattercarpet/hover.js\"(exports, module) {\n \"use strict\";\n var scatterHover = require_hover2();\n var fillText = require_lib().fillText;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var scatterPointData = scatterHover(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n var yFracUp = 1 - newPointData.y0 / pointData.ya._length;\n var xLen = pointData.xa._length;\n var xMin = xLen * yFracUp / 2;\n var xMax = xLen - xMin;\n newPointData.x0 = Math.max(Math.min(newPointData.x0, xMax), xMin);\n newPointData.x1 = Math.max(Math.min(newPointData.x1, xMax), xMin);\n return scatterPointData;\n }\n var cdi = newPointData.cd[newPointData.index];\n newPointData.a = cdi.a;\n newPointData.b = cdi.b;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n var trace = newPointData.trace;\n var carpet = trace._carpet;\n var labels = trace._module.formatLabels(cdi, trace);\n newPointData.yLabel = labels.yLabel;\n delete newPointData.text;\n var text = [];\n function textPart(ax, val) {\n var prefix;\n if (ax.labelprefix && ax.labelprefix.length > 0) {\n prefix = ax.labelprefix.replace(/ = $/, \"\");\n } else {\n prefix = ax._hovertitle;\n }\n text.push(prefix + \": \" + val.toFixed(3) + ax.labelsuffix);\n }\n if (!trace.hovertemplate) {\n var hoverinfo = cdi.hi || trace.hoverinfo;\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"a\", \"b\", \"text\"];\n if (parts.indexOf(\"a\") !== -1) textPart(carpet.aaxis, cdi.a);\n if (parts.indexOf(\"b\") !== -1) textPart(carpet.baxis, cdi.b);\n text.push(\"y: \" + newPointData.yLabel);\n if (parts.indexOf(\"text\") !== -1) {\n fillText(cdi, trace, text);\n }\n newPointData.extraText = text.join(\"
\");\n }\n return scatterPointData;\n };\n }\n });\n\n // src/traces/scattercarpet/event_data.js\n var require_event_data15 = __commonJS({\n \"src/traces/scattercarpet/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n var cdi = cd[pointNumber];\n out.a = cdi.a;\n out.b = cdi.b;\n out.y = cdi.y;\n return out;\n };\n }\n });\n\n // src/traces/scattercarpet/index.js\n var require_scattercarpet = __commonJS({\n \"src/traces/scattercarpet/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes64(),\n supplyDefaults: require_defaults60(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels7(),\n calc: require_calc39(),\n plot: require_plot33(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover22(),\n selectPoints: require_select2(),\n eventData: require_event_data15(),\n moduleType: \"trace\",\n name: \"scattercarpet\",\n basePlotModule: require_cartesian(),\n categories: [\"svg\", \"carpet\", \"symbols\", \"showLegend\", \"carpetDependent\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/scattercarpet.js\n var require_scattercarpet2 = __commonJS({\n \"lib/scattercarpet.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattercarpet();\n }\n });\n\n // src/traces/contourcarpet/attributes.js\n var require_attributes65 = __commonJS({\n \"src/traces/contourcarpet/attributes.js\"(exports, module) {\n \"use strict\";\n var heatmapAttrs = require_attributes25();\n var contourAttrs = require_attributes28();\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n var contourContourAttrs = contourAttrs.contours;\n module.exports = extendFlat(\n {\n carpet: {\n valType: \"string\",\n editType: \"calc\"\n },\n z: heatmapAttrs.z,\n a: heatmapAttrs.x,\n a0: heatmapAttrs.x0,\n da: heatmapAttrs.dx,\n b: heatmapAttrs.y,\n b0: heatmapAttrs.y0,\n db: heatmapAttrs.dy,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n atype: heatmapAttrs.xtype,\n btype: heatmapAttrs.ytype,\n fillcolor: contourAttrs.fillcolor,\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n contours: {\n type: contourContourAttrs.type,\n start: contourContourAttrs.start,\n end: contourContourAttrs.end,\n size: contourContourAttrs.size,\n coloring: {\n // from contourAttrs.contours.coloring but no 'heatmap' option\n valType: \"enumerated\",\n values: [\"fill\", \"lines\", \"none\"],\n dflt: \"fill\",\n editType: \"calc\"\n },\n showlines: contourContourAttrs.showlines,\n showlabels: contourContourAttrs.showlabels,\n labelfont: contourContourAttrs.labelfont,\n labelformat: contourContourAttrs.labelformat,\n operation: contourContourAttrs.operation,\n value: contourContourAttrs.value,\n editType: \"calc\",\n impliedEdits: { autocontour: false }\n },\n line: {\n color: contourAttrs.line.color,\n width: contourAttrs.line.width,\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: \"plot\"\n },\n zorder: contourAttrs.zorder\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n autoColorDflt: false\n })\n );\n }\n });\n\n // src/traces/contourcarpet/defaults.js\n var require_defaults61 = __commonJS({\n \"src/traces/contourcarpet/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleXYZDefaults = require_xyz_defaults();\n var attributes = require_attributes65();\n var handleConstraintDefaults = require_constraint_defaults();\n var handleContoursDefaults = require_contours_defaults();\n var handleStyleDefaults = require_style_defaults3();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n coerce(\"carpet\");\n if (traceIn.a && traceIn.b) {\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout, \"a\", \"b\");\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n var isConstraint = coerce(\"contours.type\") === \"constraint\";\n if (isConstraint) {\n handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor, { hasHover: false });\n } else {\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout, { hasHover: false });\n }\n } else {\n traceOut._defaultColor = defaultColor;\n traceOut._length = null;\n }\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/contourcarpet/calc.js\n var require_calc40 = __commonJS({\n \"src/traces/contourcarpet/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n var Lib = require_lib();\n var convertColumnData = require_convert_column_xyz();\n var clean2dArray = require_clean_2d_array();\n var interp2d = require_interp2d();\n var findEmpties = require_find_empties();\n var makeBoundArray = require_make_bound_array();\n var supplyDefaults = require_defaults61();\n var lookupCarpet = require_lookup_carpetid();\n var setContours = require_set_contours();\n module.exports = function calc(gd, trace) {\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n if (!carpet || !carpet.visible || carpet.visible === \"legendonly\") return;\n if (!trace.a || !trace.b) {\n var carpetdata = gd.data[carpet.index];\n var tracedata = gd.data[trace.index];\n if (!tracedata.a) tracedata.a = carpetdata.a;\n if (!tracedata.b) tracedata.b = carpetdata.b;\n supplyDefaults(tracedata, trace, trace._defaultColor, gd._fullLayout);\n }\n var cd = heatmappishCalc(gd, trace);\n setContours(trace, trace._z);\n return cd;\n };\n function heatmappishCalc(gd, trace) {\n var carpet = trace._carpetTrace;\n var aax = carpet.aaxis;\n var bax = carpet.baxis;\n var a, a0, da, b, b0, db, z;\n aax._minDtick = 0;\n bax._minDtick = 0;\n if (Lib.isArray1D(trace.z)) convertColumnData(trace, aax, bax, \"a\", \"b\", [\"z\"]);\n a = trace._a = trace._a || trace.a;\n b = trace._b = trace._b || trace.b;\n a = a ? aax.makeCalcdata(trace, \"_a\") : [];\n b = b ? bax.makeCalcdata(trace, \"_b\") : [];\n a0 = trace.a0 || 0;\n da = trace.da || 1;\n b0 = trace.b0 || 0;\n db = trace.db || 1;\n z = trace._z = clean2dArray(trace._z || trace.z, trace.transpose);\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === \"scaled\" ? \"\" : a;\n var xArray = makeBoundArray(trace, xIn, a0, da, xlen, aax);\n var yIn = trace.ytype === \"scaled\" ? \"\" : b;\n var yArray = makeBoundArray(trace, yIn, b0, db, z.length, bax);\n var cd0 = {\n a: xArray,\n b: yArray,\n z\n };\n if (trace.contours.type === \"levels\" && trace.contours.coloring !== \"none\") {\n colorscaleCalc(gd, trace, {\n vals: z,\n containerStr: \"\",\n cLetter: \"z\"\n });\n }\n return [cd0];\n }\n }\n });\n\n // src/traces/carpet/axis_aligned_line.js\n var require_axis_aligned_line = __commonJS({\n \"src/traces/carpet/axis_aligned_line.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function(carpet, carpetcd, a, b) {\n var idx, tangent, tanIsoIdx, tanIsoPar, segment, refidx;\n var p0, p1, v0, v1, start, end, range;\n var axis = isArrayOrTypedArray(a) ? \"a\" : \"b\";\n var ax = axis === \"a\" ? carpet.aaxis : carpet.baxis;\n var smoothing = ax.smoothing;\n var toIdx = axis === \"a\" ? carpet.a2i : carpet.b2j;\n var pt = axis === \"a\" ? a : b;\n var iso = axis === \"a\" ? b : a;\n var n = axis === \"a\" ? carpetcd.a.length : carpetcd.b.length;\n var m = axis === \"a\" ? carpetcd.b.length : carpetcd.a.length;\n var isoIdx = Math.floor(axis === \"a\" ? carpet.b2j(iso) : carpet.a2i(iso));\n var xy = axis === \"a\" ? function(value) {\n return carpet.evalxy([], value, isoIdx);\n } : function(value) {\n return carpet.evalxy([], isoIdx, value);\n };\n if (smoothing) {\n tanIsoIdx = Math.max(0, Math.min(m - 2, isoIdx));\n tanIsoPar = isoIdx - tanIsoIdx;\n tangent = axis === \"a\" ? function(i, ti) {\n return carpet.dxydi([], i, tanIsoIdx, ti, tanIsoPar);\n } : function(j, tj) {\n return carpet.dxydj([], tanIsoIdx, j, tanIsoPar, tj);\n };\n }\n var vstart = toIdx(pt[0]);\n var vend = toIdx(pt[1]);\n var dir = vstart < vend ? 1 : -1;\n var tol = (vend - vstart) * 1e-8;\n var dirfloor = dir > 0 ? Math.floor : Math.ceil;\n var dirceil = dir > 0 ? Math.ceil : Math.floor;\n var dirmin = dir > 0 ? Math.min : Math.max;\n var dirmax = dir > 0 ? Math.max : Math.min;\n var idx0 = dirfloor(vstart + tol);\n var idx1 = dirceil(vend - tol);\n p0 = xy(vstart);\n var segments = [[p0]];\n for (idx = idx0; idx * dir < idx1 * dir; idx += dir) {\n segment = [];\n start = dirmax(vstart, idx);\n end = dirmin(vend, idx + dir);\n range = end - start;\n refidx = Math.max(0, Math.min(n - 2, Math.floor(0.5 * (start + end))));\n p1 = xy(end);\n if (smoothing) {\n v0 = tangent(refidx, start - refidx);\n v1 = tangent(refidx, end - refidx);\n segment.push([\n p0[0] + v0[0] / 3 * range,\n p0[1] + v0[1] / 3 * range\n ]);\n segment.push([\n p1[0] - v1[0] / 3 * range,\n p1[1] - v1[1] / 3 * range\n ]);\n }\n segment.push(p1);\n segments.push(segment);\n p0 = p1;\n }\n return segments;\n };\n }\n });\n\n // src/traces/contourcarpet/plot.js\n var require_plot34 = __commonJS({\n \"src/traces/contourcarpet/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var map1dArray = require_map_1d_array();\n var makepath = require_makepath();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var makeCrossings = require_make_crossings();\n var findAllPaths = require_find_all_paths();\n var contourPlot = require_plot6();\n var constants = require_constants16();\n var convertToConstraints = require_convert_to_constraints();\n var emptyPathinfo = require_empty_pathinfo();\n var closeBoundaries = require_close_boundaries();\n var lookupCarpet = require_lookup_carpetid();\n var axisAlignedLine = require_axis_aligned_line();\n module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(contourcarpetLayer, cdcontours, \"contour\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n var carpetcd = gd.calcdata[carpet.index][0];\n if (!carpet.visible || carpet.visible === \"legendonly\") return;\n var a = cd0.a;\n var b = cd0.b;\n var contours = trace.contours;\n var pathinfo = emptyPathinfo(contours, plotinfo, cd0);\n var isConstraint = contours.type === \"constraint\";\n var operation = contours._operation;\n var coloring = isConstraint ? operation === \"=\" ? \"lines\" : \"fill\" : contours.coloring;\n function ab2p(ab) {\n var pt = carpet.ab2xy(ab[0], ab[1], true);\n return [xa.c2p(pt[0]), ya.c2p(pt[1])];\n }\n var perimeter = [\n [a[0], b[b.length - 1]],\n [a[a.length - 1], b[b.length - 1]],\n [a[a.length - 1], b[0]],\n [a[0], b[0]]\n ];\n makeCrossings(pathinfo);\n var atol = (a[a.length - 1] - a[0]) * 1e-8;\n var btol = (b[b.length - 1] - b[0]) * 1e-8;\n findAllPaths(pathinfo, atol, btol);\n var fillPathinfo = pathinfo;\n if (contours.type === \"constraint\") {\n fillPathinfo = convertToConstraints(pathinfo, operation);\n }\n mapPathinfo(pathinfo, ab2p);\n var seg, xp, yp, i;\n var segs = [];\n for (i = carpetcd.clipsegments.length - 1; i >= 0; i--) {\n seg = carpetcd.clipsegments[i];\n xp = map1dArray([], seg.x, xa.c2p);\n yp = map1dArray([], seg.y, ya.c2p);\n xp.reverse();\n yp.reverse();\n segs.push(makepath(xp, yp, seg.bicubic));\n }\n var boundaryPath = \"M\" + segs.join(\"L\") + \"Z\";\n makeBackground(plotGroup, carpetcd.clipsegments, xa, ya, isConstraint, coloring);\n makeFills(trace, plotGroup, xa, ya, fillPathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath);\n makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours, plotinfo, carpet);\n Drawing.setClipUrl(plotGroup, carpet._clipPathId, gd);\n });\n };\n function mapPathinfo(pathinfo, map) {\n var i, j, k, pi, pedgepaths, ppaths, pedgepath, ppath, path;\n for (i = 0; i < pathinfo.length; i++) {\n pi = pathinfo[i];\n pedgepaths = pi.pedgepaths = [];\n ppaths = pi.ppaths = [];\n for (j = 0; j < pi.edgepaths.length; j++) {\n path = pi.edgepaths[j];\n pedgepath = [];\n for (k = 0; k < path.length; k++) {\n pedgepath[k] = map(path[k]);\n }\n pedgepaths.push(pedgepath);\n }\n for (j = 0; j < pi.paths.length; j++) {\n path = pi.paths[j];\n ppath = [];\n for (k = 0; k < path.length; k++) {\n ppath[k] = map(path[k]);\n }\n ppaths.push(ppath);\n }\n }\n }\n function makeLinesAndLabels(plotgroup, pathinfo, gd, cd0, contours, plotinfo, carpet) {\n var isStatic = gd._context.staticPlot;\n var lineContainer = Lib.ensureSingle(plotgroup, \"g\", \"contourlines\");\n var showLines = contours.showlines !== false;\n var showLabels = contours.showlabels;\n var clipLinesForLabels = showLines && showLabels;\n var linegroup = contourPlot.createLines(lineContainer, showLines || showLabels, pathinfo, isStatic);\n var lineClip = contourPlot.createLineClip(lineContainer, clipLinesForLabels, gd, cd0.trace.uid);\n var labelGroup = plotgroup.selectAll(\"g.contourlabels\").data(showLabels ? [0] : []);\n labelGroup.exit().remove();\n labelGroup.enter().append(\"g\").classed(\"contourlabels\", true);\n if (showLabels) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xLen = xa._length;\n var yLen = ya._length;\n var labelClipPathData = [[\n [0, 0],\n [xLen, 0],\n [xLen, yLen],\n [0, yLen]\n ]];\n var labelData = [];\n Lib.clearLocationCache();\n var contourFormat = contourPlot.labelFormatter(gd, cd0);\n var dummyText = Drawing.tester.append(\"text\").attr(\"data-notex\", 1).call(Drawing.font, contours.labelfont);\n var bounds = {\n left: 0,\n right: xLen,\n center: xLen / 2,\n top: 0,\n bottom: yLen,\n middle: yLen / 2\n };\n var plotDiagonal = Math.sqrt(xLen * xLen + yLen * yLen);\n var normLength = constants.LABELDISTANCE * plotDiagonal / Math.max(1, pathinfo.length / constants.LABELINCREASE);\n linegroup.each(function(d) {\n var textOpts = contourPlot.calcTextOpts(d.level, contourFormat, dummyText, gd);\n d3.select(this).selectAll(\"path\").each(function(pathData) {\n var path = this;\n var pathBounds = Lib.getVisibleSegment(path, bounds, textOpts.height / 2);\n if (!pathBounds) return;\n constrainToCarpet(path, pathData, d, pathBounds, carpet, textOpts.height);\n if (pathBounds.len < (textOpts.width + textOpts.height) * constants.LABELMIN) return;\n var maxLabels = Math.min(\n Math.ceil(pathBounds.len / normLength),\n constants.LABELMAX\n );\n for (var i = 0; i < maxLabels; i++) {\n var loc = contourPlot.findBestTextLocation(\n path,\n pathBounds,\n textOpts,\n labelData,\n bounds\n );\n if (!loc) break;\n contourPlot.addLabelData(loc, textOpts, labelData, labelClipPathData);\n }\n });\n });\n dummyText.remove();\n contourPlot.drawLabels(\n labelGroup,\n labelData,\n gd,\n lineClip,\n clipLinesForLabels ? labelClipPathData : null\n );\n }\n if (showLabels && !showLines) linegroup.remove();\n }\n function constrainToCarpet(path, pathData, levelData, pathBounds, carpet, textHeight) {\n var pathABData;\n for (var i = 0; i < levelData.pedgepaths.length; i++) {\n if (pathData === levelData.pedgepaths[i]) {\n pathABData = levelData.edgepaths[i];\n }\n }\n if (!pathABData) return;\n var aMin = carpet.a[0];\n var aMax = carpet.a[carpet.a.length - 1];\n var bMin = carpet.b[0];\n var bMax = carpet.b[carpet.b.length - 1];\n function getOffset(abPt, pathVector) {\n var offset = 0;\n var edgeVector;\n var dAB = 0.1;\n if (Math.abs(abPt[0] - aMin) < dAB || Math.abs(abPt[0] - aMax) < dAB) {\n edgeVector = normalizeVector(carpet.dxydb_rough(abPt[0], abPt[1], dAB));\n offset = Math.max(offset, textHeight * vectorTan(pathVector, edgeVector) / 2);\n }\n if (Math.abs(abPt[1] - bMin) < dAB || Math.abs(abPt[1] - bMax) < dAB) {\n edgeVector = normalizeVector(carpet.dxyda_rough(abPt[0], abPt[1], dAB));\n offset = Math.max(offset, textHeight * vectorTan(pathVector, edgeVector) / 2);\n }\n return offset;\n }\n var startVector = getUnitVector(path, 0, 1);\n var endVector = getUnitVector(path, pathBounds.total, pathBounds.total - 1);\n var minStart = getOffset(pathABData[0], startVector);\n var maxEnd = pathBounds.total - getOffset(pathABData[pathABData.length - 1], endVector);\n if (pathBounds.min < minStart) pathBounds.min = minStart;\n if (pathBounds.max > maxEnd) pathBounds.max = maxEnd;\n pathBounds.len = pathBounds.max - pathBounds.min;\n }\n function getUnitVector(path, p0, p1) {\n var pt0 = path.getPointAtLength(p0);\n var pt1 = path.getPointAtLength(p1);\n var dx = pt1.x - pt0.x;\n var dy = pt1.y - pt0.y;\n var len = Math.sqrt(dx * dx + dy * dy);\n return [dx / len, dy / len];\n }\n function normalizeVector(v) {\n var len = Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n return [v[0] / len, v[1] / len];\n }\n function vectorTan(v0, v1) {\n var cos = Math.abs(v0[0] * v1[0] + v0[1] * v1[1]);\n var sin = Math.sqrt(1 - cos * cos);\n return sin / cos;\n }\n function makeBackground(plotgroup, clipsegments, xaxis, yaxis, isConstraint, coloring) {\n var seg, xp, yp, i;\n var bggroup = Lib.ensureSingle(plotgroup, \"g\", \"contourbg\");\n var bgfill = bggroup.selectAll(\"path\").data(coloring === \"fill\" && !isConstraint ? [0] : []);\n bgfill.enter().append(\"path\");\n bgfill.exit().remove();\n var segs = [];\n for (i = 0; i < clipsegments.length; i++) {\n seg = clipsegments[i];\n xp = map1dArray([], seg.x, xaxis.c2p);\n yp = map1dArray([], seg.y, yaxis.c2p);\n segs.push(makepath(xp, yp, seg.bicubic));\n }\n bgfill.attr(\"d\", \"M\" + segs.join(\"L\") + \"Z\").style(\"stroke\", \"none\");\n }\n function makeFills(trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath) {\n var hasFills = coloring === \"fill\";\n if (hasFills) {\n closeBoundaries(pathinfo, trace.contours);\n }\n var fillgroup = Lib.ensureSingle(plotgroup, \"g\", \"contourfill\");\n var fillitems = fillgroup.selectAll(\"path\").data(hasFills ? pathinfo : []);\n fillitems.enter().append(\"path\");\n fillitems.exit().remove();\n fillitems.each(function(pi) {\n var fullpath = (pi.prefixBoundary ? boundaryPath : \"\") + joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya);\n if (!fullpath) {\n d3.select(this).remove();\n } else {\n d3.select(this).attr(\"d\", fullpath).style(\"stroke\", \"none\");\n }\n });\n }\n function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) {\n var i;\n var fullpath = \"\";\n var startsleft = pi.edgepaths.map(function(v, i2) {\n return i2;\n });\n var newloop = true;\n var endpt, newendpt, cnt, nexti, possiblei, addpath;\n var atol = Math.abs(perimeter[0][0] - perimeter[2][0]) * 1e-4;\n var btol = Math.abs(perimeter[0][1] - perimeter[2][1]) * 1e-4;\n function istop(pt) {\n return Math.abs(pt[1] - perimeter[0][1]) < btol;\n }\n function isbottom(pt) {\n return Math.abs(pt[1] - perimeter[2][1]) < btol;\n }\n function isleft(pt) {\n return Math.abs(pt[0] - perimeter[0][0]) < atol;\n }\n function isright(pt) {\n return Math.abs(pt[0] - perimeter[2][0]) < atol;\n }\n function pathto(pt0, pt1) {\n var i2, j, segments, axis;\n var path = \"\";\n if (istop(pt0) && !isright(pt0) || isbottom(pt0) && !isleft(pt0)) {\n axis = carpet.aaxis;\n segments = axisAlignedLine(carpet, carpetcd, [pt0[0], pt1[0]], 0.5 * (pt0[1] + pt1[1]));\n } else {\n axis = carpet.baxis;\n segments = axisAlignedLine(carpet, carpetcd, 0.5 * (pt0[0] + pt1[0]), [pt0[1], pt1[1]]);\n }\n for (i2 = 1; i2 < segments.length; i2++) {\n path += axis.smoothing ? \"C\" : \"L\";\n for (j = 0; j < segments[i2].length; j++) {\n var pt = segments[i2][j];\n path += [xa.c2p(pt[0]), ya.c2p(pt[1])] + \" \";\n }\n }\n return path;\n }\n i = 0;\n endpt = null;\n while (startsleft.length) {\n var startpt = pi.edgepaths[i][0];\n if (endpt) {\n fullpath += pathto(endpt, startpt);\n }\n addpath = Drawing.smoothopen(pi.edgepaths[i].map(ab2p), pi.smoothing);\n fullpath += newloop ? addpath : addpath.replace(/^M/, \"L\");\n startsleft.splice(startsleft.indexOf(i), 1);\n endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1];\n nexti = -1;\n for (cnt = 0; cnt < 4; cnt++) {\n if (!endpt) {\n Lib.log(\"Missing end?\", i, pi);\n break;\n }\n if (istop(endpt) && !isright(endpt)) {\n newendpt = perimeter[1];\n } else if (isleft(endpt)) {\n newendpt = perimeter[0];\n } else if (isbottom(endpt)) {\n newendpt = perimeter[3];\n } else if (isright(endpt)) {\n newendpt = perimeter[2];\n }\n for (possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) {\n var ptNew = pi.edgepaths[possiblei][0];\n if (Math.abs(endpt[0] - newendpt[0]) < atol) {\n if (Math.abs(endpt[0] - ptNew[0]) < atol && (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else if (Math.abs(endpt[1] - newendpt[1]) < btol) {\n if (Math.abs(endpt[1] - ptNew[1]) < btol && (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else {\n Lib.log(\"endpt to newendpt is not vert. or horz.\", endpt, newendpt, ptNew);\n }\n }\n if (nexti >= 0) break;\n fullpath += pathto(endpt, newendpt);\n endpt = newendpt;\n }\n if (nexti === pi.edgepaths.length) {\n Lib.log(\"unclosed perimeter path\");\n break;\n }\n i = nexti;\n newloop = startsleft.indexOf(i) === -1;\n if (newloop) {\n i = startsleft[0];\n fullpath += pathto(endpt, newendpt) + \"Z\";\n endpt = null;\n }\n }\n for (i = 0; i < pi.paths.length; i++) {\n fullpath += Drawing.smoothclosed(pi.paths[i].map(ab2p), pi.smoothing);\n }\n return fullpath;\n }\n }\n });\n\n // src/traces/contourcarpet/index.js\n var require_contourcarpet = __commonJS({\n \"src/traces/contourcarpet/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes65(),\n supplyDefaults: require_defaults61(),\n colorbar: require_colorbar3(),\n calc: require_calc40(),\n plot: require_plot34(),\n style: require_style7(),\n moduleType: \"trace\",\n name: \"contourcarpet\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"carpet\", \"contour\", \"symbols\", \"showLegend\", \"hasLines\", \"carpetDependent\", \"noHover\", \"noSortingByValue\"],\n meta: {}\n };\n }\n });\n\n // lib/contourcarpet.js\n var require_contourcarpet2 = __commonJS({\n \"lib/contourcarpet.js\"(exports, module) {\n \"use strict\";\n module.exports = require_contourcarpet();\n }\n });\n\n // src/traces/ohlc/attributes.js\n var require_attributes66 = __commonJS({\n \"src/traces/ohlc/attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_lib().extendFlat;\n var scatterAttrs = require_attributes12();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var dash = require_attributes4().dash;\n var fxAttrs = require_attributes();\n var delta = require_delta();\n var INCREASING_COLOR = delta.INCREASING.COLOR;\n var DECREASING_COLOR = delta.DECREASING.COLOR;\n var lineAttrs = scatterAttrs.line;\n function directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, lineAttrs.color, { dflt: lineColorDefault }),\n width: lineAttrs.width,\n dash,\n editType: \"style\"\n },\n editType: \"style\"\n };\n }\n module.exports = {\n xperiod: scatterAttrs.xperiod,\n xperiod0: scatterAttrs.xperiod0,\n xperiodalignment: scatterAttrs.xperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n open: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n high: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n low: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n close: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n line: {\n width: extendFlat({}, lineAttrs.width, {}),\n dash: extendFlat({}, dash, {}),\n editType: \"style\"\n },\n increasing: directionAttrs(INCREASING_COLOR),\n decreasing: directionAttrs(DECREASING_COLOR),\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n tickwidth: {\n valType: \"number\",\n min: 0,\n max: 0.5,\n dflt: 0.3,\n editType: \"calc\"\n },\n hoverlabel: extendFlat({}, fxAttrs.hoverlabel, {\n split: {\n valType: \"boolean\",\n dflt: false,\n editType: \"style\"\n }\n }),\n zorder: scatterAttrs.zorder\n };\n }\n });\n\n // src/traces/ohlc/ohlc_defaults.js\n var require_ohlc_defaults = __commonJS({\n \"src/traces/ohlc/ohlc_defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n module.exports = function handleOHLC(traceIn, traceOut, coerce, layout) {\n var x = coerce(\"x\");\n var open = coerce(\"open\");\n var high = coerce(\"high\");\n var low = coerce(\"low\");\n var close = coerce(\"close\");\n coerce(\"hoverlabel.split\");\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\"], layout);\n if (!(open && high && low && close)) return;\n var len = Math.min(open.length, high.length, low.length, close.length);\n if (x) len = Math.min(len, Lib.minRowLength(x));\n traceOut._length = len;\n return len;\n };\n }\n });\n\n // src/traces/ohlc/defaults.js\n var require_defaults62 = __commonJS({\n \"src/traces/ohlc/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleOHLC = require_ohlc_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var attributes = require_attributes66();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleOHLC(traceIn, traceOut, coerce, layout);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce, { x: true });\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"line.width\");\n coerce(\"line.dash\");\n handleDirection(traceIn, traceOut, coerce, \"increasing\");\n handleDirection(traceIn, traceOut, coerce, \"decreasing\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"tickwidth\");\n layout._requestRangeslider[traceOut.xaxis] = true;\n coerce(\"zorder\");\n };\n function handleDirection(traceIn, traceOut, coerce, direction) {\n coerce(direction + \".line.color\");\n coerce(direction + \".line.width\", traceOut.line.width);\n coerce(direction + \".line.dash\", traceOut.line.dash);\n }\n }\n });\n\n // src/traces/ohlc/calc.js\n var require_calc41 = __commonJS({\n \"src/traces/ohlc/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var _ = Lib._;\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var BADNUM = require_numerical().BADNUM;\n function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n var tickLen = convertTickWidth(gd, xa, trace);\n var minDiff = trace._minDiff;\n trace._minDiff = null;\n var origX = trace._origX;\n trace._origX = null;\n var x = trace._xcalc;\n trace._xcalc = null;\n var cd = calcCommon(gd, trace, origX, x, ya, ptFunc);\n trace._extremes[xa._id] = Axes.findExtremes(xa, x, { vpad: minDiff / 2 });\n if (cd.length) {\n Lib.extendFlat(cd[0].t, {\n wHover: minDiff / 2,\n tickLen\n });\n return cd;\n } else {\n return [{ t: { empty: true } }];\n }\n }\n function ptFunc(o, h, l, c) {\n return {\n o,\n h,\n l,\n c\n };\n }\n function calcCommon(gd, trace, origX, x, ya, ptFunc2) {\n var o = ya.makeCalcdata(trace, \"open\");\n var h = ya.makeCalcdata(trace, \"high\");\n var l = ya.makeCalcdata(trace, \"low\");\n var c = ya.makeCalcdata(trace, \"close\");\n var hasTextArray = Lib.isArrayOrTypedArray(trace.text);\n var hasHovertextArray = Lib.isArrayOrTypedArray(trace.hovertext);\n var increasing = true;\n var cPrev = null;\n var hasPeriod = !!trace.xperiodalignment;\n var cd = [];\n for (var i = 0; i < x.length; i++) {\n var xi = x[i];\n var oi = o[i];\n var hi = h[i];\n var li = l[i];\n var ci = c[i];\n if (xi !== BADNUM && oi !== BADNUM && hi !== BADNUM && li !== BADNUM && ci !== BADNUM) {\n if (ci === oi) {\n if (cPrev !== null && ci !== cPrev) increasing = ci > cPrev;\n } else increasing = ci > oi;\n cPrev = ci;\n var pt = ptFunc2(oi, hi, li, ci);\n pt.pos = xi;\n pt.yc = (oi + ci) / 2;\n pt.i = i;\n pt.dir = increasing ? \"increasing\" : \"decreasing\";\n pt.x = pt.pos;\n pt.y = [li, hi];\n if (hasPeriod) pt.orig_p = origX[i];\n if (hasTextArray) pt.tx = trace.text[i];\n if (hasHovertextArray) pt.htx = trace.hovertext[i];\n cd.push(pt);\n } else {\n cd.push({ pos: xi, empty: true });\n }\n }\n trace._extremes[ya._id] = Axes.findExtremes(ya, Lib.concat(l, h), { padded: true });\n if (cd.length) {\n cd[0].t = {\n labels: {\n open: _(gd, \"open:\") + \" \",\n high: _(gd, \"high:\") + \" \",\n low: _(gd, \"low:\") + \" \",\n close: _(gd, \"close:\") + \" \"\n }\n };\n }\n return cd;\n }\n function convertTickWidth(gd, xa, trace) {\n var minDiff = trace._minDiff;\n if (!minDiff) {\n var fullData = gd._fullData;\n var ohlcTracesOnThisXaxis = [];\n minDiff = Infinity;\n var i;\n for (i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if (tracei.type === \"ohlc\" && tracei.visible === true && tracei.xaxis === xa._id) {\n ohlcTracesOnThisXaxis.push(tracei);\n var origX = xa.makeCalcdata(tracei, \"x\");\n tracei._origX = origX;\n var xcalc = alignPeriod(trace, xa, \"x\", origX).vals;\n tracei._xcalc = xcalc;\n var _minDiff = Lib.distinctVals(xcalc).minDiff;\n if (_minDiff && isFinite(_minDiff)) {\n minDiff = Math.min(minDiff, _minDiff);\n }\n }\n }\n if (minDiff === Infinity) minDiff = 1;\n for (i = 0; i < ohlcTracesOnThisXaxis.length; i++) {\n ohlcTracesOnThisXaxis[i]._minDiff = minDiff;\n }\n }\n return minDiff * trace.tickwidth;\n }\n module.exports = {\n calc,\n calcCommon\n };\n }\n });\n\n // src/traces/ohlc/plot.js\n var require_plot35 = __commonJS({\n \"src/traces/ohlc/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n module.exports = function plot(gd, plotinfo, cdOHLC, ohlcLayer) {\n var ya = plotinfo.yaxis;\n var xa = plotinfo.xaxis;\n var posHasRangeBreaks = !!xa.rangebreaks;\n Lib.makeTraceGroups(ohlcLayer, cdOHLC, \"trace ohlc\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n if (trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n var tickLen = t.tickLen;\n var paths = plotGroup.selectAll(\"path\").data(Lib.identity);\n paths.enter().append(\"path\");\n paths.exit().remove();\n paths.attr(\"d\", function(d) {\n if (d.empty) return \"M0,0Z\";\n var xo = xa.c2p(d.pos - tickLen, true);\n var xc = xa.c2p(d.pos + tickLen, true);\n var x = posHasRangeBreaks ? (xo + xc) / 2 : xa.c2p(d.pos, true);\n var yo = ya.c2p(d.o, true);\n var yh = ya.c2p(d.h, true);\n var yl = ya.c2p(d.l, true);\n var yc = ya.c2p(d.c, true);\n return \"M\" + xo + \",\" + yo + \"H\" + x + \"M\" + x + \",\" + yh + \"V\" + yl + \"M\" + xc + \",\" + yc + \"H\" + x;\n });\n });\n };\n }\n });\n\n // src/traces/ohlc/style.js\n var require_style19 = __commonJS({\n \"src/traces/ohlc/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Color2 = require_color();\n module.exports = function style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll(\"g.ohlclayer\").selectAll(\"g.trace\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var trace = d[0].trace;\n d3.select(this).selectAll(\"path\").each(function(di) {\n if (di.empty) return;\n var dirLine = trace[di.dir].line;\n d3.select(this).style(\"fill\", \"none\").call(Color2.stroke, dirLine.color).call(Drawing.dashLine, dirLine.dash, dirLine.width).style(\"opacity\", trace.selectedpoints && !di.selected ? 0.3 : 1);\n });\n });\n };\n }\n });\n\n // src/traces/ohlc/hover.js\n var require_hover23 = __commonJS({\n \"src/traces/ohlc/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var Lib = require_lib();\n var Fx = require_fx();\n var Color2 = require_color();\n var fillText = require_lib().fillText;\n var delta = require_delta();\n var DIRSYMBOL = {\n increasing: delta.INCREASING.SYMBOL,\n decreasing: delta.DECREASING.SYMBOL\n };\n function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n if (trace.hoverlabel.split) {\n return hoverSplit(pointData, xval, yval, hovermode);\n }\n return hoverOnPoints(pointData, xval, yval, hovermode);\n }\n function _getClosestPoint(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var xa = pointData.xa;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var type = trace.type;\n var minAttr = type === \"ohlc\" ? \"l\" : \"min\";\n var maxAttr = type === \"ohlc\" ? \"h\" : \"max\";\n var hoverPseudoDistance, spikePseudoDistance;\n var centerShift = t.bPos || 0;\n var shiftPos = function(di2) {\n return di2.pos + centerShift - xval;\n };\n var displayHalfWidth = t.bdPos || t.tickLen;\n var hoverHalfWidth = t.wHover;\n var pseudoDistance = Math.min(1, displayHalfWidth / Math.abs(xa.r2c(xa.range[1]) - xa.r2c(xa.range[0])));\n hoverPseudoDistance = pointData.maxHoverDistance - pseudoDistance;\n spikePseudoDistance = pointData.maxSpikeDistance - pseudoDistance;\n function dx(di2) {\n var pos = shiftPos(di2);\n return Fx.inbox(pos - hoverHalfWidth, pos + hoverHalfWidth, hoverPseudoDistance);\n }\n function dy(di2) {\n var min = di2[minAttr];\n var max = di2[maxAttr];\n return min === max || Fx.inbox(min - yval, max - yval, hoverPseudoDistance);\n }\n function dxy(di2) {\n return (dx(di2) + dy(di2)) / 2;\n }\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n Fx.getClosest(cd, distfn, pointData);\n if (pointData.index === false) return null;\n var di = cd[pointData.index];\n if (di.empty) return null;\n var dir = di.dir;\n var container = trace[dir];\n var lc = container.line.color;\n if (Color2.opacity(lc) && container.line.width) pointData.color = lc;\n else pointData.color = container.fillcolor;\n pointData.x0 = xa.c2p(di.pos + centerShift - displayHalfWidth, true);\n pointData.x1 = xa.c2p(di.pos + centerShift + displayHalfWidth, true);\n pointData.xLabelVal = di.orig_p !== void 0 ? di.orig_p : di.pos;\n pointData.spikeDistance = dxy(di) * spikePseudoDistance / hoverPseudoDistance;\n pointData.xSpike = xa.c2p(di.pos, true);\n return pointData;\n }\n function hoverSplit(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var ya = pointData.ya;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var closeBoxData = [];\n var closestPoint = _getClosestPoint(pointData, xval, yval, hovermode);\n if (!closestPoint) return [];\n var cdIndex = closestPoint.index;\n var di = cd[cdIndex];\n var hoverinfo = di.hi || trace.hoverinfo;\n var hoverParts = hoverinfo.split(\"+\");\n var isAll = hoverinfo === \"all\";\n var hasY = isAll || hoverParts.indexOf(\"y\") !== -1;\n if (!hasY) return [];\n var attrs = [\"high\", \"open\", \"close\", \"low\"];\n var usedVals = {};\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n var val = trace[attr][closestPoint.index];\n var valPx = ya.c2p(val, true);\n var pointData2;\n if (val in usedVals) {\n pointData2 = usedVals[val];\n pointData2.yLabel += \"
\" + t.labels[attr] + Axes.hoverLabelText(ya, val, trace.yhoverformat);\n } else {\n pointData2 = Lib.extendFlat({}, closestPoint);\n pointData2.y0 = pointData2.y1 = valPx;\n pointData2.yLabelVal = val;\n pointData2.yLabel = t.labels[attr] + Axes.hoverLabelText(ya, val, trace.yhoverformat);\n pointData2.name = \"\";\n closeBoxData.push(pointData2);\n usedVals[val] = pointData2;\n }\n }\n return closeBoxData;\n }\n function hoverOnPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var ya = pointData.ya;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var closestPoint = _getClosestPoint(pointData, xval, yval, hovermode);\n if (!closestPoint) return [];\n var cdIndex = closestPoint.index;\n var di = cd[cdIndex];\n var i = closestPoint.index = di.i;\n var dir = di.dir;\n function getLabelLine(attr) {\n return t.labels[attr] + Axes.hoverLabelText(ya, trace[attr][i], trace.yhoverformat);\n }\n var hoverinfo = di.hi || trace.hoverinfo;\n var hoverParts = hoverinfo.split(\"+\");\n var isAll = hoverinfo === \"all\";\n var hasY = isAll || hoverParts.indexOf(\"y\") !== -1;\n var hasText = isAll || hoverParts.indexOf(\"text\") !== -1;\n var textParts = hasY ? [\n getLabelLine(\"open\"),\n getLabelLine(\"high\"),\n getLabelLine(\"low\"),\n getLabelLine(\"close\") + \" \" + DIRSYMBOL[dir]\n ] : [];\n if (hasText) fillText(di, trace, textParts);\n closestPoint.extraText = textParts.join(\"
\");\n closestPoint.y0 = closestPoint.y1 = ya.c2p(di.yc, true);\n return [closestPoint];\n }\n module.exports = {\n hoverPoints,\n hoverSplit,\n hoverOnPoints\n };\n }\n });\n\n // src/traces/ohlc/select.js\n var require_select12 = __commonJS({\n \"src/traces/ohlc/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i;\n var posOffset = cd[0].t.bPos || 0;\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n var di = cd[i];\n if (selectionTester.contains([xa.c2p(di.pos + posOffset), ya.c2p(di.yc)], null, di.i, searchInfo)) {\n selection.push({\n pointNumber: di.i,\n x: xa.c2d(di.pos),\n y: ya.c2d(di.yc)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n }\n });\n\n // src/traces/ohlc/index.js\n var require_ohlc = __commonJS({\n \"src/traces/ohlc/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"ohlc\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"showLegend\"],\n meta: {},\n attributes: require_attributes66(),\n supplyDefaults: require_defaults62(),\n calc: require_calc41().calc,\n plot: require_plot35(),\n style: require_style19(),\n hoverPoints: require_hover23().hoverPoints,\n selectPoints: require_select12()\n };\n }\n });\n\n // lib/ohlc.js\n var require_ohlc2 = __commonJS({\n \"lib/ohlc.js\"(exports, module) {\n \"use strict\";\n module.exports = require_ohlc();\n }\n });\n\n // src/traces/candlestick/attributes.js\n var require_attributes67 = __commonJS({\n \"src/traces/candlestick/attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_lib().extendFlat;\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var OHLCattrs = require_attributes66();\n var boxAttrs = require_attributes24();\n function directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, boxAttrs.line.color, { dflt: lineColorDefault }),\n width: boxAttrs.line.width,\n editType: \"style\"\n },\n fillcolor: boxAttrs.fillcolor,\n editType: \"style\"\n };\n }\n module.exports = {\n xperiod: OHLCattrs.xperiod,\n xperiod0: OHLCattrs.xperiod0,\n xperiodalignment: OHLCattrs.xperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n x: OHLCattrs.x,\n open: OHLCattrs.open,\n high: OHLCattrs.high,\n low: OHLCattrs.low,\n close: OHLCattrs.close,\n line: {\n width: extendFlat({}, boxAttrs.line.width, {}),\n editType: \"style\"\n },\n increasing: directionAttrs(OHLCattrs.increasing.line.color.dflt),\n decreasing: directionAttrs(OHLCattrs.decreasing.line.color.dflt),\n text: OHLCattrs.text,\n hovertext: OHLCattrs.hovertext,\n whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }),\n hoverlabel: OHLCattrs.hoverlabel,\n zorder: boxAttrs.zorder\n };\n }\n });\n\n // src/traces/candlestick/defaults.js\n var require_defaults63 = __commonJS({\n \"src/traces/candlestick/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var handleOHLC = require_ohlc_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var attributes = require_attributes67();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleOHLC(traceIn, traceOut, coerce, layout);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce, { x: true });\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"line.width\");\n handleDirection(traceIn, traceOut, coerce, \"increasing\");\n handleDirection(traceIn, traceOut, coerce, \"decreasing\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"whiskerwidth\");\n layout._requestRangeslider[traceOut.xaxis] = true;\n coerce(\"zorder\");\n };\n function handleDirection(traceIn, traceOut, coerce, direction) {\n var lineColor = coerce(direction + \".line.color\");\n coerce(direction + \".line.width\", traceOut.line.width);\n coerce(direction + \".fillcolor\", Color2.addOpacity(lineColor, 0.5));\n }\n }\n });\n\n // src/traces/candlestick/calc.js\n var require_calc42 = __commonJS({\n \"src/traces/candlestick/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var calcCommon = require_calc41().calcCommon;\n module.exports = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n var origX = xa.makeCalcdata(trace, \"x\");\n var x = alignPeriod(trace, xa, \"x\", origX).vals;\n var cd = calcCommon(gd, trace, origX, x, ya, ptFunc);\n if (cd.length) {\n Lib.extendFlat(cd[0].t, {\n num: fullLayout._numBoxes,\n dPos: Lib.distinctVals(x).minDiff / 2,\n posLetter: \"x\",\n valLetter: \"y\"\n });\n fullLayout._numBoxes++;\n return cd;\n } else {\n return [{ t: { empty: true } }];\n }\n };\n function ptFunc(o, h, l, c) {\n return {\n min: l,\n q1: Math.min(o, c),\n med: c,\n q3: Math.max(o, c),\n max: h\n };\n }\n }\n });\n\n // src/traces/candlestick/index.js\n var require_candlestick = __commonJS({\n \"src/traces/candlestick/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"candlestick\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"showLegend\", \"candlestick\", \"boxLayout\"],\n meta: {},\n attributes: require_attributes67(),\n layoutAttributes: require_layout_attributes7(),\n supplyLayoutDefaults: require_layout_defaults6().supplyLayoutDefaults,\n crossTraceCalc: require_cross_trace_calc3().crossTraceCalc,\n supplyDefaults: require_defaults63(),\n calc: require_calc42(),\n plot: require_plot4().plot,\n layerName: \"boxlayer\",\n style: require_style5().style,\n hoverPoints: require_hover23().hoverPoints,\n selectPoints: require_select12()\n };\n }\n });\n\n // lib/candlestick.js\n var require_candlestick2 = __commonJS({\n \"lib/candlestick.js\"(exports, module) {\n \"use strict\";\n module.exports = require_candlestick();\n }\n });\n\n // src/plots/polar/set_convert.js\n var require_set_convert3 = __commonJS({\n \"src/plots/polar/set_convert.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var setConvertCartesian = require_set_convert();\n var deg2rad = Lib.deg2rad;\n var rad2deg = Lib.rad2deg;\n module.exports = function setConvert(ax, polarLayout, fullLayout) {\n setConvertCartesian(ax, fullLayout);\n switch (ax._id) {\n case \"x\":\n case \"radialaxis\":\n setConvertRadial(ax, polarLayout);\n break;\n case \"angularaxis\":\n setConvertAngular(ax, polarLayout);\n break;\n }\n };\n function setConvertRadial(ax, polarLayout) {\n var subplot = polarLayout._subplot;\n ax.setGeometry = function() {\n var rl0 = ax._rl[0];\n var rl1 = ax._rl[1];\n var b = subplot.innerRadius;\n var m = (subplot.radius - b) / (rl1 - rl0);\n var b2 = b / m;\n var rFilter = rl0 > rl1 ? function(v) {\n return v <= 0;\n } : function(v) {\n return v >= 0;\n };\n ax.c2g = function(v) {\n var r = ax.c2l(v) - rl0;\n return (rFilter(r) ? r : 0) + b2;\n };\n ax.g2c = function(v) {\n return ax.l2c(v + rl0 - b2);\n };\n ax.g2p = function(v) {\n return v * m;\n };\n ax.c2p = function(v) {\n return ax.g2p(ax.c2g(v));\n };\n };\n }\n function toRadians(v, unit) {\n return unit === \"degrees\" ? deg2rad(v) : v;\n }\n function fromRadians(v, unit) {\n return unit === \"degrees\" ? rad2deg(v) : v;\n }\n function setConvertAngular(ax, polarLayout) {\n var axType = ax.type;\n if (axType === \"linear\") {\n var _d2c = ax.d2c;\n var _c2d = ax.c2d;\n ax.d2c = function(v, unit) {\n return toRadians(_d2c(v), unit);\n };\n ax.c2d = function(v, unit) {\n return _c2d(fromRadians(v, unit));\n };\n }\n ax.makeCalcdata = function(trace, coord) {\n var arrayIn = trace[coord];\n var len = trace._length;\n var arrayOut, i;\n var _d2c2 = function(v) {\n return ax.d2c(v, trace.thetaunit);\n };\n if (arrayIn) {\n arrayOut = new Array(len);\n for (i = 0; i < len; i++) {\n arrayOut[i] = _d2c2(arrayIn[i]);\n }\n } else {\n var coord0 = coord + \"0\";\n var dcoord = \"d\" + coord;\n var v0 = coord0 in trace ? _d2c2(trace[coord0]) : 0;\n var dv = trace[dcoord] ? _d2c2(trace[dcoord]) : (ax.period || 2 * Math.PI) / len;\n arrayOut = new Array(len);\n for (i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n return arrayOut;\n };\n ax.setGeometry = function() {\n var sector = polarLayout.sector;\n var sectorInRad = sector.map(deg2rad);\n var dir = { clockwise: -1, counterclockwise: 1 }[ax.direction];\n var rot = deg2rad(ax.rotation);\n var rad2g = function(v) {\n return dir * v + rot;\n };\n var g2rad = function(v) {\n return (v - rot) / dir;\n };\n var rad2c, c2rad;\n var rad2t, t2rad;\n switch (axType) {\n case \"linear\":\n c2rad = rad2c = Lib.identity;\n t2rad = deg2rad;\n rad2t = rad2deg;\n ax.range = Lib.isFullCircle(sectorInRad) ? [sector[0], sector[0] + 360] : sectorInRad.map(g2rad).map(rad2deg);\n break;\n case \"category\":\n var catLen = ax._categories.length;\n var _period = ax.period ? Math.max(ax.period, catLen) : catLen;\n if (_period === 0) _period = 1;\n c2rad = t2rad = function(v) {\n return v * 2 * Math.PI / _period;\n };\n rad2c = rad2t = function(v) {\n return v * _period / Math.PI / 2;\n };\n ax.range = [0, _period];\n break;\n }\n ax.c2g = function(v) {\n return rad2g(c2rad(v));\n };\n ax.g2c = function(v) {\n return rad2c(g2rad(v));\n };\n ax.t2g = function(v) {\n return rad2g(t2rad(v));\n };\n ax.g2t = function(v) {\n return rad2t(g2rad(v));\n };\n };\n }\n }\n });\n\n // src/plots/polar/constants.js\n var require_constants33 = __commonJS({\n \"src/plots/polar/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attr: \"subplot\",\n name: \"polar\",\n axisNames: [\"angularaxis\", \"radialaxis\"],\n axisName2dataArray: { angularaxis: \"theta\", radialaxis: \"r\" },\n layerNames: [\n \"draglayer\",\n \"plotbg\",\n \"backplot\",\n \"angular-grid\",\n \"radial-grid\",\n \"frontplot\",\n \"angular-line\",\n \"radial-line\",\n \"angular-axis\",\n \"radial-axis\"\n ],\n radialDragBoxSize: 50,\n angularDragBoxSize: 30,\n cornerLen: 25,\n cornerHalfWidth: 2,\n // pixels to move mouse before you stop clamping to starting point\n MINDRAG: 8,\n // smallest radial distance [px] allowed for a zoombox\n MINZOOM: 20,\n // distance [px] off (r=0) or (r=radius) where we transition\n // from single-sided to two-sided radial zoom\n OFFEDGE: 20\n };\n }\n });\n\n // src/plots/polar/helpers.js\n var require_helpers19 = __commonJS({\n \"src/plots/polar/helpers.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var polygonTester = require_polygon().tester;\n var findIndexOfMin = Lib.findIndexOfMin;\n var isAngleInsideSector = Lib.isAngleInsideSector;\n var angleDelta = Lib.angleDelta;\n var angleDist = Lib.angleDist;\n function isPtInsidePolygon(r, a, rBnds, aBnds, vangles) {\n if (!isAngleInsideSector(a, aBnds)) return false;\n var r0, r1;\n if (rBnds[0] < rBnds[1]) {\n r0 = rBnds[0];\n r1 = rBnds[1];\n } else {\n r0 = rBnds[1];\n r1 = rBnds[0];\n }\n var polygonIn = polygonTester(makePolygon(r0, aBnds[0], aBnds[1], vangles));\n var polygonOut = polygonTester(makePolygon(r1, aBnds[0], aBnds[1], vangles));\n var xy = [r * Math.cos(a), r * Math.sin(a)];\n return polygonOut.contains(xy) && !polygonIn.contains(xy);\n }\n function findIntersectionXY(v0, v1, a, xpyp) {\n var xstar, ystar;\n var xp = xpyp[0];\n var yp = xpyp[1];\n var dsin = clampTiny(Math.sin(v1) - Math.sin(v0));\n var dcos = clampTiny(Math.cos(v1) - Math.cos(v0));\n var tanA = Math.tan(a);\n var cotanA = clampTiny(1 / tanA);\n var m = dsin / dcos;\n var b = yp - m * xp;\n if (cotanA) {\n if (dsin && dcos) {\n xstar = b / (tanA - m);\n ystar = tanA * xstar;\n } else if (dcos) {\n xstar = yp * cotanA;\n ystar = yp;\n } else {\n xstar = xp;\n ystar = xp * tanA;\n }\n } else {\n if (dsin && dcos) {\n xstar = 0;\n ystar = b;\n } else if (dcos) {\n xstar = 0;\n ystar = yp;\n } else {\n xstar = ystar = NaN;\n }\n }\n return [xstar, ystar];\n }\n function findXYatLength(l, m, xp, yp) {\n var t = -m * xp;\n var a = m * m + 1;\n var b = 2 * (m * t - xp);\n var c = t * t + xp * xp - l * l;\n var del = Math.sqrt(b * b - 4 * a * c);\n var x0 = (-b + del) / (2 * a);\n var x1 = (-b - del) / (2 * a);\n return [\n [x0, m * x0 + t + yp],\n [x1, m * x1 + t + yp]\n ];\n }\n function makeRegularPolygon(r, vangles) {\n var len = vangles.length;\n var vertices = new Array(len + 1);\n var i;\n for (i = 0; i < len; i++) {\n var va = vangles[i];\n vertices[i] = [r * Math.cos(va), r * Math.sin(va)];\n }\n vertices[i] = vertices[0].slice();\n return vertices;\n }\n function makeClippedPolygon(r, a0, a1, vangles) {\n var len = vangles.length;\n var vertices = [];\n var i, j;\n function a2xy(a) {\n return [r * Math.cos(a), r * Math.sin(a)];\n }\n function findXY(va0, va1, s) {\n return findIntersectionXY(va0, va1, s, a2xy(va0));\n }\n function cycleIndex(ind) {\n return Lib.mod(ind, len);\n }\n function isInside(v) {\n return isAngleInsideSector(v, [a0, a1]);\n }\n var i0 = findIndexOfMin(vangles, function(v) {\n return isInside(v) ? angleDist(v, a0) : Infinity;\n });\n var xy0 = findXY(vangles[i0], vangles[cycleIndex(i0 - 1)], a0);\n vertices.push(xy0);\n for (i = i0, j = 0; j < len; i++, j++) {\n var va = vangles[cycleIndex(i)];\n if (!isInside(va)) break;\n vertices.push(a2xy(va));\n }\n var iN = findIndexOfMin(vangles, function(v) {\n return isInside(v) ? angleDist(v, a1) : Infinity;\n });\n var xyN = findXY(vangles[iN], vangles[cycleIndex(iN + 1)], a1);\n vertices.push(xyN);\n vertices.push([0, 0]);\n vertices.push(vertices[0].slice());\n return vertices;\n }\n function makePolygon(r, a0, a1, vangles) {\n return Lib.isFullCircle([a0, a1]) ? makeRegularPolygon(r, vangles) : makeClippedPolygon(r, a0, a1, vangles);\n }\n function findPolygonOffset(r, a0, a1, vangles) {\n var minX = Infinity;\n var minY = Infinity;\n var vertices = makePolygon(r, a0, a1, vangles);\n for (var i = 0; i < vertices.length; i++) {\n var v = vertices[i];\n minX = Math.min(minX, v[0]);\n minY = Math.min(minY, -v[1]);\n }\n return [minX, minY];\n }\n function findEnclosingVertexAngles(a, vangles) {\n var minFn = function(v) {\n var adelta = angleDelta(v, a);\n return adelta > 0 ? adelta : Infinity;\n };\n var i0 = findIndexOfMin(vangles, minFn);\n var i1 = Lib.mod(i0 + 1, vangles.length);\n return [vangles[i0], vangles[i1]];\n }\n function clampTiny(v) {\n return Math.abs(v) > 1e-10 ? v : 0;\n }\n function transformForSVG(pts0, cx, cy) {\n cx = cx || 0;\n cy = cy || 0;\n var len = pts0.length;\n var pts1 = new Array(len);\n for (var i = 0; i < len; i++) {\n var pt = pts0[i];\n pts1[i] = [cx + pt[0], cy - pt[1]];\n }\n return pts1;\n }\n function pathPolygon(r, a0, a1, vangles, cx, cy) {\n var poly = makePolygon(r, a0, a1, vangles);\n return \"M\" + transformForSVG(poly, cx, cy).join(\"L\");\n }\n function pathPolygonAnnulus(r0, r1, a0, a1, vangles, cx, cy) {\n var rStart, rEnd;\n if (r0 < r1) {\n rStart = r0;\n rEnd = r1;\n } else {\n rStart = r1;\n rEnd = r0;\n }\n var inner = transformForSVG(makePolygon(rStart, a0, a1, vangles), cx, cy);\n var outer = transformForSVG(makePolygon(rEnd, a0, a1, vangles), cx, cy);\n return \"M\" + outer.reverse().join(\"L\") + \"M\" + inner.join(\"L\");\n }\n module.exports = {\n isPtInsidePolygon,\n findPolygonOffset,\n findEnclosingVertexAngles,\n findIntersectionXY,\n findXYatLength,\n clampTiny,\n pathPolygon,\n pathPolygonAnnulus\n };\n }\n });\n\n // src/plots/smith/helpers.js\n var require_helpers20 = __commonJS({\n \"src/plots/smith/helpers.js\"(exports, module) {\n \"use strict\";\n function sign(x) {\n return x < 0 ? -1 : x > 0 ? 1 : 0;\n }\n function smith(a) {\n var R = a[0];\n var X = a[1];\n if (!isFinite(R) || !isFinite(X)) return [1, 0];\n var D2 = (R + 1) * (R + 1) + X * X;\n return [(R * R + X * X - 1) / D2, 2 * X / D2];\n }\n function transform(subplot, a) {\n var x = a[0];\n var y = a[1];\n return [\n x * subplot.radius + subplot.cx,\n -y * subplot.radius + subplot.cy\n ];\n }\n function scale(subplot, r) {\n return r * subplot.radius;\n }\n function reactanceArc(subplot, X, R1, R2) {\n var t12 = transform(subplot, smith([R1, X]));\n var x1 = t12[0];\n var y1 = t12[1];\n var t22 = transform(subplot, smith([R2, X]));\n var x2 = t22[0];\n var y2 = t22[1];\n if (X === 0) {\n return [\n \"M\" + x1 + \",\" + y1,\n \"L\" + x2 + \",\" + y2\n ].join(\" \");\n }\n var r = scale(subplot, 1 / Math.abs(X));\n return [\n \"M\" + x1 + \",\" + y1,\n \"A\" + r + \",\" + r + \" 0 0,\" + (X < 0 ? 1 : 0) + \" \" + x2 + \",\" + y2\n ].join(\" \");\n }\n function resistanceArc(subplot, R, X1, X2) {\n var r = scale(subplot, 1 / (R + 1));\n var t12 = transform(subplot, smith([R, X1]));\n var x1 = t12[0];\n var y1 = t12[1];\n var t22 = transform(subplot, smith([R, X2]));\n var x2 = t22[0];\n var y2 = t22[1];\n if (sign(X1) !== sign(X2)) {\n var t02 = transform(subplot, smith([R, 0]));\n var x0 = t02[0];\n var y0 = t02[1];\n return [\n \"M\" + x1 + \",\" + y1,\n \"A\" + r + \",\" + r + \" 0 0,\" + (0 < X1 ? 0 : 1) + \" \" + x0 + \",\" + y0,\n \"A\" + r + \",\" + r + \" 0 0,\" + (X2 < 0 ? 0 : 1) + x2 + \",\" + y2\n ].join(\" \");\n }\n return [\n \"M\" + x1 + \",\" + y1,\n \"A\" + r + \",\" + r + \" 0 0,\" + (X2 < X1 ? 0 : 1) + \" \" + x2 + \",\" + y2\n ].join(\" \");\n }\n module.exports = {\n smith,\n reactanceArc,\n resistanceArc,\n smithTransform: transform\n };\n }\n });\n\n // src/plots/polar/polar.js\n var require_polar = __commonJS({\n \"src/plots/polar/polar.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var Registry = require_registry();\n var Lib = require_lib();\n var strRotate = Lib.strRotate;\n var strTranslate = Lib.strTranslate;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Plots = require_plots();\n var Axes = require_axes();\n var setConvertCartesian = require_set_convert();\n var setConvertPolar = require_set_convert3();\n var doAutoRange = require_autorange().doAutoRange;\n var dragBox = require_dragbox();\n var dragElement = require_dragelement();\n var Fx = require_fx();\n var Titles = require_titles();\n var prepSelect = require_selections().prepSelect;\n var selectOnClick = require_selections().selectOnClick;\n var clearOutline = require_selections().clearOutline;\n var setCursor = require_setcursor();\n var clearGlCanvases = require_clear_gl_canvases();\n var redrawReglTraces = require_subroutines().redrawReglTraces;\n var MID_SHIFT = require_alignment().MID_SHIFT;\n var constants = require_constants33();\n var helpers = require_helpers19();\n var smithHelpers = require_helpers20();\n var smith = smithHelpers.smith;\n var reactanceArc = smithHelpers.reactanceArc;\n var resistanceArc = smithHelpers.resistanceArc;\n var smithTransform = smithHelpers.smithTransform;\n var _ = Lib._;\n var mod = Lib.mod;\n var deg2rad = Lib.deg2rad;\n var rad2deg = Lib.rad2deg;\n function Polar(gd, id, isSmith) {\n this.isSmith = isSmith || false;\n this.id = id;\n this.gd = gd;\n this._hasClipOnAxisFalse = null;\n this.vangles = null;\n this.radialAxisAngle = null;\n this.traceHash = {};\n this.layers = {};\n this.clipPaths = {};\n this.clipIds = {};\n this.viewInitial = {};\n var fullLayout = gd._fullLayout;\n var clipIdBase = \"clip\" + fullLayout._uid + id;\n this.clipIds.forTraces = clipIdBase + \"-for-traces\";\n this.clipPaths.forTraces = fullLayout._clips.append(\"clipPath\").attr(\"id\", this.clipIds.forTraces);\n this.clipPaths.forTraces.append(\"path\");\n this.framework = fullLayout[\"_\" + (isSmith ? \"smith\" : \"polar\") + \"layer\"].append(\"g\").attr(\"class\", id);\n this.getHole = function(s) {\n return this.isSmith ? 0 : s.hole;\n };\n this.getSector = function(s) {\n return this.isSmith ? [0, 360] : s.sector;\n };\n this.getRadial = function(s) {\n return this.isSmith ? s.realaxis : s.radialaxis;\n };\n this.getAngular = function(s) {\n return this.isSmith ? s.imaginaryaxis : s.angularaxis;\n };\n if (!isSmith) {\n this.radialTickLayout = null;\n this.angularTickLayout = null;\n }\n }\n var proto = Polar.prototype;\n module.exports = function createPolar(gd, id, isSmith) {\n return new Polar(gd, id, isSmith);\n };\n proto.plot = function(polarCalcData, fullLayout) {\n var _this = this;\n var polarLayout = fullLayout[_this.id];\n var found = false;\n for (var i = 0; i < polarCalcData.length; i++) {\n var trace = polarCalcData[i][0].trace;\n if (trace.cliponaxis === false) {\n found = true;\n break;\n }\n }\n _this._hasClipOnAxisFalse = found;\n _this.updateLayers(fullLayout, polarLayout);\n _this.updateLayout(fullLayout, polarLayout);\n Plots.generalUpdatePerTraceModule(_this.gd, _this, polarCalcData, polarLayout);\n _this.updateFx(fullLayout, polarLayout);\n if (_this.isSmith) {\n delete polarLayout.realaxis.range;\n delete polarLayout.imaginaryaxis.range;\n }\n };\n proto.updateLayers = function(fullLayout, polarLayout) {\n var _this = this;\n var isSmith = _this.isSmith;\n var layers = _this.layers;\n var radialLayout = _this.getRadial(polarLayout);\n var angularLayout = _this.getAngular(polarLayout);\n var layerNames = constants.layerNames;\n var frontPlotIndex = layerNames.indexOf(\"frontplot\");\n var layerData = layerNames.slice(0, frontPlotIndex);\n var isAngularAxisBelowTraces = angularLayout.layer === \"below traces\";\n var isRadialAxisBelowTraces = radialLayout.layer === \"below traces\";\n if (isAngularAxisBelowTraces) layerData.push(\"angular-line\");\n if (isRadialAxisBelowTraces) layerData.push(\"radial-line\");\n if (isAngularAxisBelowTraces) layerData.push(\"angular-axis\");\n if (isRadialAxisBelowTraces) layerData.push(\"radial-axis\");\n layerData.push(\"frontplot\");\n if (!isAngularAxisBelowTraces) layerData.push(\"angular-line\");\n if (!isRadialAxisBelowTraces) layerData.push(\"radial-line\");\n if (!isAngularAxisBelowTraces) layerData.push(\"angular-axis\");\n if (!isRadialAxisBelowTraces) layerData.push(\"radial-axis\");\n var subLayer = (isSmith ? \"smith\" : \"polar\") + \"sublayer\";\n var join = _this.framework.selectAll(\".\" + subLayer).data(layerData, String);\n join.enter().append(\"g\").attr(\"class\", function(d) {\n return subLayer + \" \" + d;\n }).each(function(d) {\n var sel = layers[d] = d3.select(this);\n switch (d) {\n case \"frontplot\":\n if (!isSmith) {\n sel.append(\"g\").classed(\"barlayer\", true);\n }\n sel.append(\"g\").classed(\"scatterlayer\", true);\n break;\n case \"backplot\":\n sel.append(\"g\").classed(\"maplayer\", true);\n break;\n case \"plotbg\":\n layers.bg = sel.append(\"path\");\n break;\n case \"radial-grid\":\n sel.style(\"fill\", \"none\");\n break;\n case \"angular-grid\":\n sel.style(\"fill\", \"none\");\n break;\n case \"radial-line\":\n sel.append(\"line\").style(\"fill\", \"none\");\n break;\n case \"angular-line\":\n sel.append(\"path\").style(\"fill\", \"none\");\n break;\n }\n });\n join.order();\n };\n proto.updateLayout = function(fullLayout, polarLayout) {\n var _this = this;\n var layers = _this.layers;\n var gs = fullLayout._size;\n var radialLayout = _this.getRadial(polarLayout);\n var angularLayout = _this.getAngular(polarLayout);\n var xDomain = polarLayout.domain.x;\n var yDomain = polarLayout.domain.y;\n _this.xOffset = gs.l + gs.w * xDomain[0];\n _this.yOffset = gs.t + gs.h * (1 - yDomain[1]);\n var xLength = _this.xLength = gs.w * (xDomain[1] - xDomain[0]);\n var yLength = _this.yLength = gs.h * (yDomain[1] - yDomain[0]);\n var sector = _this.getSector(polarLayout);\n _this.sectorInRad = sector.map(deg2rad);\n var sectorBBox = _this.sectorBBox = computeSectorBBox(sector);\n var dxSectorBBox = sectorBBox[2] - sectorBBox[0];\n var dySectorBBox = sectorBBox[3] - sectorBBox[1];\n var arDomain = yLength / xLength;\n var arSector = Math.abs(dySectorBBox / dxSectorBBox);\n var xLength2, yLength2;\n var xDomain2, yDomain2;\n var gap;\n if (arDomain > arSector) {\n xLength2 = xLength;\n yLength2 = xLength * arSector;\n gap = (yLength - yLength2) / gs.h / 2;\n xDomain2 = [xDomain[0], xDomain[1]];\n yDomain2 = [yDomain[0] + gap, yDomain[1] - gap];\n } else {\n xLength2 = yLength / arSector;\n yLength2 = yLength;\n gap = (xLength - xLength2) / gs.w / 2;\n xDomain2 = [xDomain[0] + gap, xDomain[1] - gap];\n yDomain2 = [yDomain[0], yDomain[1]];\n }\n _this.xLength2 = xLength2;\n _this.yLength2 = yLength2;\n _this.xDomain2 = xDomain2;\n _this.yDomain2 = yDomain2;\n var xOffset2 = _this.xOffset2 = gs.l + gs.w * xDomain2[0];\n var yOffset2 = _this.yOffset2 = gs.t + gs.h * (1 - yDomain2[1]);\n var radius = _this.radius = xLength2 / dxSectorBBox;\n var innerRadius = _this.innerRadius = _this.getHole(polarLayout) * radius;\n var cx = _this.cx = xOffset2 - radius * sectorBBox[0];\n var cy = _this.cy = yOffset2 + radius * sectorBBox[3];\n var cxx = _this.cxx = cx - xOffset2;\n var cyy = _this.cyy = cy - yOffset2;\n var side = radialLayout.side;\n var trueSide;\n if (side === \"counterclockwise\") {\n trueSide = side;\n side = \"top\";\n } else if (side === \"clockwise\") {\n trueSide = side;\n side = \"bottom\";\n }\n _this.radialAxis = _this.mockAxis(fullLayout, polarLayout, radialLayout, {\n // make this an 'x' axis to make positioning (especially rotation) easier\n _id: \"x\",\n // convert to 'x' axis equivalent\n side,\n // keep track of real side\n _trueSide: trueSide,\n // spans length 1 radius\n domain: [innerRadius / gs.w, radius / gs.w]\n });\n _this.angularAxis = _this.mockAxis(fullLayout, polarLayout, angularLayout, {\n side: \"right\",\n // to get auto nticks right\n domain: [0, Math.PI],\n // don't pass through autorange logic\n autorange: false\n });\n _this.doAutoRange(fullLayout, polarLayout);\n _this.updateAngularAxis(fullLayout, polarLayout);\n _this.updateRadialAxis(fullLayout, polarLayout);\n _this.updateRadialAxisTitle(fullLayout, polarLayout);\n _this.xaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: \"x\",\n domain: xDomain2\n });\n _this.yaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: \"y\",\n domain: yDomain2\n });\n var dPath = _this.pathSubplot();\n _this.clipPaths.forTraces.select(\"path\").attr(\"d\", dPath).attr(\"transform\", strTranslate(cxx, cyy));\n layers.frontplot.attr(\"transform\", strTranslate(xOffset2, yOffset2)).call(Drawing.setClipUrl, _this._hasClipOnAxisFalse ? null : _this.clipIds.forTraces, _this.gd);\n layers.bg.attr(\"d\", dPath).attr(\"transform\", strTranslate(cx, cy)).call(Color2.fill, polarLayout.bgcolor);\n };\n proto.mockAxis = function(fullLayout, polarLayout, axLayout, opts) {\n var ax = Lib.extendFlat({}, axLayout, opts);\n setConvertPolar(ax, polarLayout, fullLayout);\n return ax;\n };\n proto.mockCartesianAxis = function(fullLayout, polarLayout, opts) {\n var _this = this;\n var isSmith = _this.isSmith;\n var axId = opts._id;\n var ax = Lib.extendFlat({ type: \"linear\" }, opts);\n setConvertCartesian(ax, fullLayout);\n var bboxIndices = {\n x: [0, 2],\n y: [1, 3]\n };\n ax.setRange = function() {\n var sectorBBox = _this.sectorBBox;\n var ind = bboxIndices[axId];\n var rl = _this.radialAxis._rl;\n var drl = (rl[1] - rl[0]) / (1 - _this.getHole(polarLayout));\n ax.range = [sectorBBox[ind[0]] * drl, sectorBBox[ind[1]] * drl];\n };\n ax.isPtWithinRange = axId === \"x\" && !isSmith ? function(d) {\n return _this.isPtInside(d);\n } : function() {\n return true;\n };\n ax.setRange();\n ax.setScale();\n return ax;\n };\n proto.doAutoRange = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var radialAxis = _this.radialAxis;\n var radialLayout = _this.getRadial(polarLayout);\n doAutoRange(gd, radialAxis);\n var rng = radialAxis.range;\n radialLayout.range = rng.slice();\n radialLayout._input.range = rng.slice();\n radialAxis._rl = [\n radialAxis.r2l(rng[0], null, \"gregorian\"),\n radialAxis.r2l(rng[1], null, \"gregorian\")\n ];\n if (radialAxis.minallowed !== void 0) {\n var minallowed = radialAxis.r2l(radialAxis.minallowed);\n if (radialAxis._rl[0] > radialAxis._rl[1]) {\n radialAxis._rl[1] = Math.max(radialAxis._rl[1], minallowed);\n } else {\n radialAxis._rl[0] = Math.max(radialAxis._rl[0], minallowed);\n }\n }\n if (radialAxis.maxallowed !== void 0) {\n var maxallowed = radialAxis.r2l(radialAxis.maxallowed);\n if (radialAxis._rl[0] < radialAxis._rl[1]) {\n radialAxis._rl[1] = Math.min(radialAxis._rl[1], maxallowed);\n } else {\n radialAxis._rl[0] = Math.min(radialAxis._rl[0], maxallowed);\n }\n }\n };\n proto.updateRadialAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = _this.getRadial(polarLayout);\n var a0 = mod(_this.getSector(polarLayout)[0], 360);\n var ax = _this.radialAxis;\n var hasRoomForIt = innerRadius < radius;\n var isSmith = _this.isSmith;\n if (!isSmith) {\n _this.fillViewInitialKey(\"radialaxis.angle\", radialLayout.angle);\n _this.fillViewInitialKey(\"radialaxis.range\", ax.range.slice());\n ax.setGeometry();\n }\n if (ax.tickangle === \"auto\" && (a0 > 90 && a0 <= 270)) {\n ax.tickangle = 180;\n }\n var transFn = isSmith ? function(d) {\n var t = smithTransform(_this, smith([d.x, 0]));\n return strTranslate(t[0] - cx, t[1] - cy);\n } : function(d) {\n return strTranslate(ax.l2p(d.x) + innerRadius, 0);\n };\n var gridPathFn = isSmith ? function(d) {\n return resistanceArc(_this, d.x, -Infinity, Infinity);\n } : function(d) {\n return _this.pathArc(ax.r2p(d.x) + innerRadius);\n };\n var newTickLayout = strTickLayout(radialLayout);\n if (_this.radialTickLayout !== newTickLayout) {\n layers[\"radial-axis\"].selectAll(\".xtick\").remove();\n _this.radialTickLayout = newTickLayout;\n }\n if (hasRoomForIt) {\n ax.setScale();\n var labelShift = 0;\n var vals = isSmith ? (ax.tickvals || []).filter(function(x) {\n return x >= 0;\n }).map(function(x) {\n return Axes.tickText(ax, x, true, false);\n }) : Axes.calcTicks(ax);\n var valsClipped = isSmith ? vals : Axes.clipEnds(ax, vals);\n var tickSign = Axes.getTickSigns(ax)[2];\n if (isSmith) {\n if (ax.ticks === \"top\" && ax.side === \"bottom\" || ax.ticks === \"bottom\" && ax.side === \"top\") {\n tickSign = -tickSign;\n }\n if (ax.ticks === \"top\" && ax.side === \"top\") labelShift = -ax.ticklen;\n if (ax.ticks === \"bottom\" && ax.side === \"bottom\") labelShift = ax.ticklen;\n }\n Axes.drawTicks(gd, ax, {\n vals,\n layer: layers[\"radial-axis\"],\n path: Axes.makeTickPath(ax, 0, tickSign),\n transFn,\n crisp: false\n });\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: layers[\"radial-grid\"],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: layers[\"radial-axis\"],\n transFn,\n labelFns: Axes.makeLabelFns(ax, labelShift)\n });\n }\n var angle = _this.radialAxisAngle = _this.vangles ? rad2deg(snapToVertexAngle(deg2rad(radialLayout.angle), _this.vangles)) : radialLayout.angle;\n var tLayer = strTranslate(cx, cy);\n var tLayer2 = tLayer + strRotate(-angle);\n updateElement(\n layers[\"radial-axis\"],\n hasRoomForIt && (radialLayout.showticklabels || radialLayout.ticks),\n { transform: tLayer2 }\n );\n updateElement(\n layers[\"radial-grid\"],\n hasRoomForIt && radialLayout.showgrid,\n { transform: isSmith ? \"\" : tLayer }\n );\n updateElement(\n layers[\"radial-line\"].select(\"line\"),\n hasRoomForIt && radialLayout.showline,\n {\n x1: isSmith ? -radius : innerRadius,\n y1: 0,\n x2: radius,\n y2: 0,\n transform: tLayer2\n }\n ).attr(\"stroke-width\", radialLayout.linewidth).call(Color2.stroke, radialLayout.linecolor);\n };\n proto.updateRadialAxisTitle = function(fullLayout, polarLayout, _angle) {\n if (this.isSmith) return;\n var _this = this;\n var gd = _this.gd;\n var radius = _this.radius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = _this.getRadial(polarLayout);\n var titleClass = _this.id + \"title\";\n var pad = 0;\n if (radialLayout.title) {\n var h = Drawing.bBox(_this.layers[\"radial-axis\"].node()).height;\n var ts = radialLayout.title.font.size;\n var side = radialLayout.side;\n pad = side === \"top\" ? ts : side === \"counterclockwise\" ? -(h + ts * 0.4) : h + ts * 0.8;\n }\n var angle = _angle !== void 0 ? _angle : _this.radialAxisAngle;\n var angleRad = deg2rad(angle);\n var cosa = Math.cos(angleRad);\n var sina = Math.sin(angleRad);\n var x = cx + radius / 2 * cosa + pad * sina;\n var y = cy - radius / 2 * sina + pad * cosa;\n _this.layers[\"radial-axis-title\"] = Titles.draw(gd, titleClass, {\n propContainer: radialLayout,\n propName: _this.id + \".radialaxis.title\",\n placeholder: _(gd, \"Click to enter radial axis title\"),\n attributes: {\n x,\n y,\n \"text-anchor\": \"middle\"\n },\n transform: { rotate: -angle }\n });\n };\n proto.updateAngularAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var angularLayout = _this.getAngular(polarLayout);\n var ax = _this.angularAxis;\n var isSmith = _this.isSmith;\n if (!isSmith) {\n _this.fillViewInitialKey(\"angularaxis.rotation\", angularLayout.rotation);\n ax.setGeometry();\n ax.setScale();\n }\n var t2g = isSmith ? function(d) {\n var t = smithTransform(_this, smith([0, d.x]));\n return Math.atan2(t[0] - cx, t[1] - cy) - Math.PI / 2;\n } : function(d) {\n return ax.t2g(d.x);\n };\n if (ax.type === \"linear\" && ax.thetaunit === \"radians\") {\n ax.tick0 = rad2deg(ax.tick0);\n ax.dtick = rad2deg(ax.dtick);\n }\n var _transFn = function(rad) {\n return strTranslate(cx + radius * Math.cos(rad), cy - radius * Math.sin(rad));\n };\n var transFn = isSmith ? function(d) {\n var t = smithTransform(_this, smith([0, d.x]));\n return strTranslate(t[0], t[1]);\n } : function(d) {\n return _transFn(t2g(d));\n };\n var transFn2 = isSmith ? function(d) {\n var t = smithTransform(_this, smith([0, d.x]));\n var rad = Math.atan2(t[0] - cx, t[1] - cy) - Math.PI / 2;\n return strTranslate(t[0], t[1]) + strRotate(-rad2deg(rad));\n } : function(d) {\n var rad = t2g(d);\n return _transFn(rad) + strRotate(-rad2deg(rad));\n };\n var gridPathFn = isSmith ? function(d) {\n return reactanceArc(_this, d.x, 0, Infinity);\n } : function(d) {\n var rad = t2g(d);\n var cosRad = Math.cos(rad);\n var sinRad = Math.sin(rad);\n return \"M\" + [cx + innerRadius * cosRad, cy - innerRadius * sinRad] + \"L\" + [cx + radius * cosRad, cy - radius * sinRad];\n };\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n var labelFns = {};\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) + Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ? \"middle\" : cos > 0 ? \"start\" : \"end\";\n };\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n var newTickLayout = strTickLayout(angularLayout);\n if (_this.angularTickLayout !== newTickLayout) {\n layers[\"angular-axis\"].selectAll(\".\" + ax._id + \"tick\").remove();\n _this.angularTickLayout = newTickLayout;\n }\n var vals = isSmith ? [Infinity].concat(ax.tickvals || []).map(function(x) {\n return Axes.tickText(ax, x, true, false);\n }) : Axes.calcTicks(ax);\n if (isSmith) {\n vals[0].text = \"\\u221E\";\n vals[0].fontSize *= 1.75;\n }\n var vangles;\n if (polarLayout.gridshape === \"linear\") {\n vangles = vals.map(t2g);\n if (Lib.angleDelta(vangles[0], vangles[1]) < 0) {\n vangles = vangles.slice().reverse();\n }\n } else {\n vangles = null;\n }\n _this.vangles = vangles;\n if (ax.type === \"category\") {\n vals = vals.filter(function(d) {\n return Lib.isAngleInsideSector(t2g(d), _this.sectorInRad);\n });\n }\n if (ax.visible) {\n var tickSign = ax.ticks === \"inside\" ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n Axes.drawTicks(gd, ax, {\n vals,\n layer: layers[\"angular-axis\"],\n path: \"M\" + tickSign * pad + \",0h\" + tickSign * ax.ticklen,\n transFn: transFn2,\n crisp: false\n });\n Axes.drawGrid(gd, ax, {\n vals,\n layer: layers[\"angular-grid\"],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: layers[\"angular-axis\"],\n repositionOnUpdate: true,\n transFn,\n labelFns\n });\n }\n updateElement(layers[\"angular-line\"].select(\"path\"), angularLayout.showline, {\n d: _this.pathSubplot(),\n transform: strTranslate(cx, cy)\n }).attr(\"stroke-width\", angularLayout.linewidth).call(Color2.stroke, angularLayout.linecolor);\n };\n proto.updateFx = function(fullLayout, polarLayout) {\n if (!this.gd._context.staticPlot) {\n var hasDrag = !this.isSmith;\n if (hasDrag) {\n this.updateAngularDrag(fullLayout);\n this.updateRadialDrag(fullLayout, polarLayout, 0);\n this.updateRadialDrag(fullLayout, polarLayout, 1);\n }\n this.updateHoverAndMainDrag(fullLayout);\n }\n };\n proto.updateHoverAndMainDrag = function(fullLayout) {\n var _this = this;\n var isSmith = _this.isSmith;\n var gd = _this.gd;\n var layers = _this.layers;\n var zoomlayer = fullLayout._zoomlayer;\n var MINZOOM = constants.MINZOOM;\n var OFFEDGE = constants.OFFEDGE;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var sectorInRad = _this.sectorInRad;\n var vangles = _this.vangles;\n var radialAxis = _this.radialAxis;\n var clampTiny = helpers.clampTiny;\n var findXYatLength = helpers.findXYatLength;\n var findEnclosingVertexAngles = helpers.findEnclosingVertexAngles;\n var chw = constants.cornerHalfWidth;\n var chl = constants.cornerLen / 2;\n var scaleX;\n var scaleY;\n var mainDrag = dragBox.makeDragger(layers, \"path\", \"maindrag\", fullLayout.dragmode === false ? \"none\" : \"crosshair\");\n d3.select(mainDrag).attr(\"d\", _this.pathSubplot()).attr(\"transform\", strTranslate(cx, cy));\n mainDrag.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = mainDrag;\n gd._fullLayout._hoversubplot = _this.id;\n };\n mainDrag.onmouseout = function(evt) {\n if (gd._dragging) return;\n dragElement.unhover(gd, evt);\n };\n var dragOpts = {\n element: mainDrag,\n gd,\n subplot: _this.id,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n xaxes: [_this.xaxis],\n yaxes: [_this.yaxis]\n };\n var x0, y0;\n var r0, r1;\n var path0, dimmed, lum;\n var zb, corners;\n function norm(x, y) {\n return Math.sqrt(x * x + y * y);\n }\n function xy2r(x, y) {\n return norm(x - cxx, y - cyy);\n }\n function xy2a(x, y) {\n return Math.atan2(cyy - y, x - cxx);\n }\n function ra2xy(r, a) {\n return [r * Math.cos(a), r * Math.sin(-a)];\n }\n function pathCorner(r, a) {\n if (r === 0) return _this.pathSector(2 * chw);\n var da = chl / r;\n var am = a - da;\n var ap = a + da;\n var rb = Math.max(0, Math.min(r, radius));\n var rm = rb - chw;\n var rp = rb + chw;\n return \"M\" + ra2xy(rm, am) + \"A\" + [rm, rm] + \" 0,0,0 \" + ra2xy(rm, ap) + \"L\" + ra2xy(rp, ap) + \"A\" + [rp, rp] + \" 0,0,1 \" + ra2xy(rp, am) + \"Z\";\n }\n function pathCornerForPolygons(r, va0, va1) {\n if (r === 0) return _this.pathSector(2 * chw);\n var xy0 = ra2xy(r, va0);\n var xy1 = ra2xy(r, va1);\n var x = clampTiny((xy0[0] + xy1[0]) / 2);\n var y = clampTiny((xy0[1] + xy1[1]) / 2);\n var innerPts, outerPts;\n if (x && y) {\n var m = y / x;\n var mperp = -1 / m;\n var midPts = findXYatLength(chw, m, x, y);\n innerPts = findXYatLength(chl, mperp, midPts[0][0], midPts[0][1]);\n outerPts = findXYatLength(chl, mperp, midPts[1][0], midPts[1][1]);\n } else {\n var dx, dy;\n if (y) {\n dx = chl;\n dy = chw;\n } else {\n dx = chw;\n dy = chl;\n }\n innerPts = [[x - dx, y - dy], [x + dx, y - dy]];\n outerPts = [[x - dx, y + dy], [x + dx, y + dy]];\n }\n return \"M\" + innerPts.join(\"L\") + \"L\" + outerPts.reverse().join(\"L\") + \"Z\";\n }\n function zoomPrep() {\n r0 = null;\n r1 = null;\n path0 = _this.pathSubplot();\n dimmed = false;\n var polarLayoutNow = gd._fullLayout[_this.id];\n lum = tinycolor(polarLayoutNow.bgcolor).getLuminance();\n zb = dragBox.makeZoombox(zoomlayer, lum, cx, cy, path0);\n zb.attr(\"fill-rule\", \"evenodd\");\n corners = dragBox.makeCorners(zoomlayer, cx, cy);\n clearOutline(gd);\n }\n function clampAndSetR0R1(rr0, rr1) {\n rr1 = Math.max(Math.min(rr1, radius), innerRadius);\n if (rr0 < OFFEDGE) rr0 = 0;\n else if (radius - rr0 < OFFEDGE) rr0 = radius;\n else if (rr1 < OFFEDGE) rr1 = 0;\n else if (radius - rr1 < OFFEDGE) rr1 = radius;\n if (Math.abs(rr1 - rr0) > MINZOOM) {\n if (rr0 < rr1) {\n r0 = rr0;\n r1 = rr1;\n } else {\n r0 = rr1;\n r1 = rr0;\n }\n return true;\n } else {\n r0 = null;\n r1 = null;\n return false;\n }\n }\n function applyZoomMove(path1, cpath) {\n path1 = path1 || path0;\n cpath = cpath || \"M0,0Z\";\n zb.attr(\"d\", path1);\n corners.attr(\"d\", cpath);\n dragBox.transitionZoombox(zb, corners, dimmed, lum);\n dimmed = true;\n var updateObj = {};\n computeZoomUpdates(updateObj);\n gd.emit(\"plotly_relayouting\", updateObj);\n }\n function zoomMove(dx, dy) {\n dx = dx * scaleX;\n dy = dy * scaleY;\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var rr0 = xy2r(x0, y0);\n var rr1 = Math.min(xy2r(x1, y1), radius);\n var a0 = xy2a(x0, y0);\n var path1;\n var cpath;\n if (clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if (r0) path1 += _this.pathSector(r0);\n cpath = pathCorner(r0, a0) + pathCorner(r1, a0);\n }\n applyZoomMove(path1, cpath);\n }\n function findPolygonRadius(x, y, va0, va1) {\n var xy = helpers.findIntersectionXY(va0, va1, va0, [x - cxx, cyy - y]);\n return norm(xy[0], xy[1]);\n }\n function zoomMoveForPolygons(dx, dy) {\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var a0 = xy2a(x0, y0);\n var a1 = xy2a(x1, y1);\n var vangles0 = findEnclosingVertexAngles(a0, vangles);\n var vangles1 = findEnclosingVertexAngles(a1, vangles);\n var rr0 = findPolygonRadius(x0, y0, vangles0[0], vangles0[1]);\n var rr1 = Math.min(findPolygonRadius(x1, y1, vangles1[0], vangles1[1]), radius);\n var path1;\n var cpath;\n if (clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if (r0) path1 += _this.pathSector(r0);\n cpath = [\n pathCornerForPolygons(r0, vangles0[0], vangles0[1]),\n pathCornerForPolygons(r1, vangles0[0], vangles0[1])\n ].join(\" \");\n }\n applyZoomMove(path1, cpath);\n }\n function zoomDone() {\n dragBox.removeZoombox(gd);\n if (r0 === null || r1 === null) return;\n var updateObj = {};\n computeZoomUpdates(updateObj);\n dragBox.showDoubleClickNotifier(gd);\n Registry.call(\"_guiRelayout\", gd, updateObj);\n }\n function computeZoomUpdates(update) {\n var rl = radialAxis._rl;\n var m = (rl[1] - rl[0]) / (1 - innerRadius / radius) / radius;\n var newRng = [\n rl[0] + (r0 - innerRadius) * m,\n rl[0] + (r1 - innerRadius) * m\n ];\n update[_this.id + \".radialaxis.range\"] = newRng;\n }\n function zoomClick(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n dragBox.removeZoombox(gd);\n if (numClicks === 2) {\n var updateObj = {};\n for (var k in _this.viewInitial) {\n updateObj[_this.id + \".\" + k] = _this.viewInitial[k];\n }\n gd.emit(\"plotly_doubleclick\", null);\n Registry.call(\"_guiRelayout\", gd, updateObj);\n }\n if (clickMode.indexOf(\"select\") > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, dragOpts);\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n dragOpts.prepFn = function(evt, startX, startY) {\n var dragModeNow = gd._fullLayout.dragmode;\n var bbox = mainDrag.getBoundingClientRect();\n gd._fullLayout._calcInverseTransform(gd);\n var inverse = gd._fullLayout._invTransform;\n scaleX = gd._fullLayout._invScaleX;\n scaleY = gd._fullLayout._invScaleY;\n var transformedCoords = Lib.apply3DTransform(inverse)(startX - bbox.left, startY - bbox.top);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n if (vangles) {\n var offset = helpers.findPolygonOffset(radius, sectorInRad[0], sectorInRad[1], vangles);\n x0 += cxx + offset[0];\n y0 += cyy + offset[1];\n }\n switch (dragModeNow) {\n case \"zoom\":\n dragOpts.clickFn = zoomClick;\n if (!isSmith) {\n if (vangles) {\n dragOpts.moveFn = zoomMoveForPolygons;\n } else {\n dragOpts.moveFn = zoomMove;\n }\n dragOpts.doneFn = zoomDone;\n zoomPrep(evt, startX, startY);\n }\n break;\n case \"select\":\n case \"lasso\":\n prepSelect(evt, startX, startY, dragOpts, dragModeNow);\n break;\n }\n };\n dragElement.init(dragOpts);\n };\n proto.updateRadialDrag = function(fullLayout, polarLayout, rngIndex) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialAxis = _this.radialAxis;\n var bl = constants.radialDragBoxSize;\n var bl2 = bl / 2;\n if (!radialAxis.visible) return;\n var angle0 = deg2rad(_this.radialAxisAngle);\n var rl = radialAxis._rl;\n var rl0 = rl[0];\n var rl1 = rl[1];\n var rbase = rl[rngIndex];\n var m = 0.75 * (rl[1] - rl[0]) / (1 - _this.getHole(polarLayout)) / radius;\n var tx, ty, className;\n if (rngIndex) {\n tx = cx + (radius + bl2) * Math.cos(angle0);\n ty = cy - (radius + bl2) * Math.sin(angle0);\n className = \"radialdrag\";\n } else {\n tx = cx + (innerRadius - bl2) * Math.cos(angle0);\n ty = cy - (innerRadius - bl2) * Math.sin(angle0);\n className = \"radialdrag-inner\";\n }\n var radialDrag = dragBox.makeRectDragger(layers, className, \"crosshair\", -bl2, -bl2, bl, bl);\n var dragOpts = { element: radialDrag, gd };\n if (fullLayout.dragmode === false) {\n dragOpts.dragmode = false;\n }\n updateElement(d3.select(radialDrag), radialAxis.visible && innerRadius < radius, {\n transform: strTranslate(tx, ty)\n });\n var moveFn2;\n var angle1;\n var rprime;\n function moveFn(dx, dy) {\n if (moveFn2) {\n moveFn2(dx, dy);\n } else {\n var dvec = [dx, -dy];\n var rvec = [Math.cos(angle0), Math.sin(angle0)];\n var comp = Math.abs(Lib.dot(dvec, rvec) / Math.sqrt(Lib.dot(dvec, dvec)));\n if (!isNaN(comp)) {\n moveFn2 = comp < 0.5 ? rotateMove : rerangeMove;\n }\n }\n var update = {};\n computeRadialAxisUpdates(update);\n gd.emit(\"plotly_relayouting\", update);\n }\n function computeRadialAxisUpdates(update) {\n if (angle1 !== null) {\n update[_this.id + \".radialaxis.angle\"] = angle1;\n } else if (rprime !== null) {\n update[_this.id + \".radialaxis.range[\" + rngIndex + \"]\"] = rprime;\n }\n }\n function doneFn() {\n if (angle1 !== null) {\n Registry.call(\"_guiRelayout\", gd, _this.id + \".radialaxis.angle\", angle1);\n } else if (rprime !== null) {\n Registry.call(\"_guiRelayout\", gd, _this.id + \".radialaxis.range[\" + rngIndex + \"]\", rprime);\n }\n }\n function rotateMove(dx, dy) {\n if (rngIndex === 0) return;\n var x1 = tx + dx;\n var y1 = ty + dy;\n angle1 = Math.atan2(cy - y1, x1 - cx);\n if (_this.vangles) angle1 = snapToVertexAngle(angle1, _this.vangles);\n angle1 = rad2deg(angle1);\n var transform = strTranslate(cx, cy) + strRotate(-angle1);\n layers[\"radial-axis\"].attr(\"transform\", transform);\n layers[\"radial-line\"].select(\"line\").attr(\"transform\", transform);\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, angle1);\n }\n function rerangeMove(dx, dy) {\n var dr = Lib.dot([dx, -dy], [Math.cos(angle0), Math.sin(angle0)]);\n rprime = rbase - m * dr;\n if (m > 0 !== (rngIndex ? rprime > rl0 : rprime < rl1)) {\n rprime = null;\n return;\n }\n var fullLayoutNow = gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n radialAxis.range[rngIndex] = rprime;\n radialAxis._rl[rngIndex] = rprime;\n _this.updateRadialAxis(fullLayoutNow, polarLayoutNow);\n _this.xaxis.setRange();\n _this.xaxis.setScale();\n _this.yaxis.setRange();\n _this.yaxis.setScale();\n var hasRegl = false;\n for (var traceType in _this.traceHash) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if (Registry.traceIs(traceType, \"gl\") && moduleCalcDataVisible.length) hasRegl = true;\n }\n if (hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n }\n dragOpts.prepFn = function() {\n moveFn2 = null;\n angle1 = null;\n rprime = null;\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n clearOutline(gd);\n };\n dragOpts.clampFn = function(dx, dy) {\n if (Math.sqrt(dx * dx + dy * dy) < constants.MINDRAG) {\n dx = 0;\n dy = 0;\n }\n return [dx, dy];\n };\n dragElement.init(dragOpts);\n };\n proto.updateAngularDrag = function(fullLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var angularAxis = _this.angularAxis;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var dbs = constants.angularDragBoxSize;\n var angularDrag = dragBox.makeDragger(layers, \"path\", \"angulardrag\", fullLayout.dragmode === false ? \"none\" : \"move\");\n var dragOpts = { element: angularDrag, gd };\n if (fullLayout.dragmode === false) {\n dragOpts.dragmode = false;\n } else {\n d3.select(angularDrag).attr(\"d\", _this.pathAnnulus(radius, radius + dbs)).attr(\"transform\", strTranslate(cx, cy)).call(setCursor, \"move\");\n }\n function xy2a(x, y) {\n return Math.atan2(cyy + dbs - y, x - cxx - dbs);\n }\n var scatterTraces = layers.frontplot.select(\".scatterlayer\").selectAll(\".trace\");\n var scatterPoints = scatterTraces.selectAll(\".point\");\n var scatterTextPoints = scatterTraces.selectAll(\".textpoint\");\n var x0, y0;\n var rot0, rot1;\n var rrot1;\n var a0;\n function moveFn(dx, dy) {\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n var x1 = x0 + dx * fullLayout._invScaleX;\n var y1 = y0 + dy * fullLayout._invScaleY;\n var a1 = xy2a(x1, y1);\n var da = rad2deg(a1 - a0);\n rot1 = rot0 + da;\n layers.frontplot.attr(\n \"transform\",\n strTranslate(_this.xOffset2, _this.yOffset2) + strRotate([-da, cxx, cyy])\n );\n if (_this.vangles) {\n rrot1 = _this.radialAxisAngle + da;\n var trans = strTranslate(cx, cy) + strRotate(-da);\n var trans2 = strTranslate(cx, cy) + strRotate(-rrot1);\n layers.bg.attr(\"transform\", trans);\n layers[\"radial-grid\"].attr(\"transform\", trans);\n layers[\"radial-axis\"].attr(\"transform\", trans2);\n layers[\"radial-line\"].select(\"line\").attr(\"transform\", trans2);\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, rrot1);\n } else {\n _this.clipPaths.forTraces.select(\"path\").attr(\n \"transform\",\n strTranslate(cxx, cyy) + strRotate(da)\n );\n }\n scatterPoints.each(function() {\n var sel = d3.select(this);\n var xy = Drawing.getTranslate(sel);\n sel.attr(\"transform\", strTranslate(xy.x, xy.y) + strRotate([da]));\n });\n scatterTextPoints.each(function() {\n var sel = d3.select(this);\n var tx = sel.select(\"text\");\n var xy = Drawing.getTranslate(sel);\n sel.attr(\"transform\", strRotate([da, tx.attr(\"x\"), tx.attr(\"y\")]) + strTranslate(xy.x, xy.y));\n });\n angularAxis.rotation = Lib.modHalf(rot1, 360);\n _this.updateAngularAxis(fullLayoutNow, polarLayoutNow);\n if (_this._hasClipOnAxisFalse && !Lib.isFullCircle(_this.sectorInRad)) {\n scatterTraces.call(Drawing.hideOutsideRangePoints, _this);\n }\n var hasRegl = false;\n for (var traceType in _this.traceHash) {\n if (Registry.traceIs(traceType, \"gl\")) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if (moduleCalcDataVisible.length) hasRegl = true;\n }\n }\n if (hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n var update = {};\n computeRotationUpdates(update);\n gd.emit(\"plotly_relayouting\", update);\n }\n function computeRotationUpdates(updateObj) {\n updateObj[_this.id + \".angularaxis.rotation\"] = rot1;\n if (_this.vangles) {\n updateObj[_this.id + \".radialaxis.angle\"] = rrot1;\n }\n }\n function doneFn() {\n scatterTextPoints.select(\"text\").attr(\"transform\", null);\n var updateObj = {};\n computeRotationUpdates(updateObj);\n Registry.call(\"_guiRelayout\", gd, updateObj);\n }\n dragOpts.prepFn = function(evt, startX, startY) {\n var polarLayoutNow = fullLayout[_this.id];\n rot0 = polarLayoutNow.angularaxis.rotation;\n var bbox = angularDrag.getBoundingClientRect();\n x0 = startX - bbox.left;\n y0 = startY - bbox.top;\n gd._fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(fullLayout._invTransform)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n a0 = xy2a(x0, y0);\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n clearOutline(gd);\n };\n if (_this.vangles && !Lib.isFullCircle(_this.sectorInRad)) {\n dragOpts.prepFn = Lib.noop;\n setCursor(d3.select(angularDrag), null);\n }\n dragElement.init(dragOpts);\n };\n proto.isPtInside = function(d) {\n if (this.isSmith) return true;\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var thetag = this.angularAxis.c2g(d.theta);\n var radialAxis = this.radialAxis;\n var r = radialAxis.c2l(d.r);\n var rl = radialAxis._rl;\n var fn = vangles ? helpers.isPtInsidePolygon : Lib.isPtInsideSector;\n return fn(r, thetag, rl, sectorInRad, vangles);\n };\n proto.pathArc = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathArc;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n };\n proto.pathSector = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathSector;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n };\n proto.pathAnnulus = function(r0, r1) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygonAnnulus : Lib.pathAnnulus;\n return fn(r0, r1, sectorInRad[0], sectorInRad[1], vangles);\n };\n proto.pathSubplot = function() {\n var r0 = this.innerRadius;\n var r1 = this.radius;\n return r0 ? this.pathAnnulus(r0, r1) : this.pathSector(r1);\n };\n proto.fillViewInitialKey = function(key, val) {\n if (!(key in this.viewInitial)) {\n this.viewInitial[key] = val;\n }\n };\n function strTickLayout(axLayout) {\n var out = axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n if (\"side\" in axLayout) out += axLayout.side;\n return out;\n }\n function computeSectorBBox(sector) {\n var s0 = sector[0];\n var s1 = sector[1];\n var arc = s1 - s0;\n var a0 = mod(s0, 360);\n var a1 = a0 + arc;\n var ax0 = Math.cos(deg2rad(a0));\n var ay0 = Math.sin(deg2rad(a0));\n var ax1 = Math.cos(deg2rad(a1));\n var ay1 = Math.sin(deg2rad(a1));\n var x0, y0, x1, y1;\n if (a0 <= 90 && a1 >= 90 || a0 > 90 && a1 >= 450) {\n y1 = 1;\n } else if (ay0 <= 0 && ay1 <= 0) {\n y1 = 0;\n } else {\n y1 = Math.max(ay0, ay1);\n }\n if (a0 <= 180 && a1 >= 180 || a0 > 180 && a1 >= 540) {\n x0 = -1;\n } else if (ax0 >= 0 && ax1 >= 0) {\n x0 = 0;\n } else {\n x0 = Math.min(ax0, ax1);\n }\n if (a0 <= 270 && a1 >= 270 || a0 > 270 && a1 >= 630) {\n y0 = -1;\n } else if (ay0 >= 0 && ay1 >= 0) {\n y0 = 0;\n } else {\n y0 = Math.min(ay0, ay1);\n }\n if (a1 >= 360) {\n x1 = 1;\n } else if (ax0 <= 0 && ax1 <= 0) {\n x1 = 0;\n } else {\n x1 = Math.max(ax0, ax1);\n }\n return [x0, y0, x1, y1];\n }\n function snapToVertexAngle(a, vangles) {\n var fn = function(v) {\n return Lib.angleDist(a, v);\n };\n var ind = Lib.findIndexOfMin(vangles, fn);\n return vangles[ind];\n }\n function updateElement(sel, showAttr, attrs) {\n if (showAttr) {\n sel.attr(\"display\", null);\n sel.attr(attrs);\n } else if (sel) {\n sel.attr(\"display\", \"none\");\n }\n return sel;\n }\n }\n });\n\n // src/plots/polar/layout_attributes.js\n var require_layout_attributes21 = __commonJS({\n \"src/plots/polar/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttrs = require_attributes3();\n var axesAttrs = require_layout_attributes4();\n var domainAttrs = require_domain().attributes;\n var extendFlat = require_lib().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var axisLineGridAttr = overrideAll({\n color: axesAttrs.color,\n showline: extendFlat({}, axesAttrs.showline, { dflt: true }),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, { dflt: true }),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n griddash: axesAttrs.griddash\n // TODO add spike* attributes down the road\n // should we add zeroline* attributes?\n }, \"plot\", \"from-root\");\n var axisTickAttrs = overrideAll({\n tickmode: axesAttrs.minor.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n ticklabelstep: axesAttrs.ticklabelstep,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n separatethousands: axesAttrs.separatethousands,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n layer: axesAttrs.layer\n }, \"plot\", \"from-root\");\n var radialAxisAttrs = {\n visible: extendFlat({}, axesAttrs.visible, { dflt: true }),\n type: extendFlat({}, axesAttrs.type, {\n values: [\"-\", \"linear\", \"log\", \"date\", \"category\"]\n }),\n autotypenumbers: axesAttrs.autotypenumbers,\n autorangeoptions: {\n minallowed: axesAttrs.autorangeoptions.minallowed,\n maxallowed: axesAttrs.autorangeoptions.maxallowed,\n clipmin: axesAttrs.autorangeoptions.clipmin,\n clipmax: axesAttrs.autorangeoptions.clipmax,\n include: axesAttrs.autorangeoptions.include,\n editType: \"plot\"\n },\n autorange: extendFlat({}, axesAttrs.autorange, { editType: \"plot\" }),\n rangemode: {\n valType: \"enumerated\",\n values: [\"tozero\", \"nonnegative\", \"normal\"],\n dflt: \"tozero\",\n editType: \"calc\"\n },\n minallowed: extendFlat({}, axesAttrs.minallowed, { editType: \"plot\" }),\n maxallowed: extendFlat({}, axesAttrs.maxallowed, { editType: \"plot\" }),\n range: extendFlat({}, axesAttrs.range, {\n items: [\n { valType: \"any\", editType: \"plot\", impliedEdits: { \"^autorange\": false } },\n { valType: \"any\", editType: \"plot\", impliedEdits: { \"^autorange\": false } }\n ],\n editType: \"plot\"\n }),\n categoryorder: axesAttrs.categoryorder,\n categoryarray: axesAttrs.categoryarray,\n angle: {\n valType: \"angle\",\n editType: \"plot\"\n },\n autotickangles: axesAttrs.autotickangles,\n side: {\n valType: \"enumerated\",\n // TODO add 'center' for `showline: false` radial axes\n values: [\"clockwise\", \"counterclockwise\"],\n dflt: \"clockwise\",\n editType: \"plot\"\n },\n title: {\n // radial title is not gui-editable at the moment,\n // so it needs dflt: '', similar to carpet axes.\n text: extendFlat({}, axesAttrs.title.text, { editType: \"plot\", dflt: \"\" }),\n font: extendFlat({}, axesAttrs.title.font, { editType: \"plot\" }),\n // TODO\n // - might need a 'titleside' and even 'titledirection' down the road\n // - what about standoff ??\n editType: \"plot\"\n },\n hoverformat: axesAttrs.hoverformat,\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"calc\"\n };\n extendFlat(\n radialAxisAttrs,\n // N.B. radialaxis grid lines are circular,\n // but radialaxis lines are straight from circle center to outer bound\n axisLineGridAttr,\n axisTickAttrs\n );\n var angularAxisAttrs = {\n visible: extendFlat({}, axesAttrs.visible, { dflt: true }),\n type: {\n valType: \"enumerated\",\n // 'linear' should maybe be called 'angle' or 'angular' here\n // to make clear that axis here is periodic and more tightly match\n // `thetaunit`?\n //\n // skip 'date' for first push\n // no 'log' for now\n values: [\"-\", \"linear\", \"category\"],\n dflt: \"-\",\n editType: \"calc\",\n _noTemplating: true\n },\n autotypenumbers: axesAttrs.autotypenumbers,\n categoryorder: axesAttrs.categoryorder,\n categoryarray: axesAttrs.categoryarray,\n thetaunit: {\n valType: \"enumerated\",\n values: [\"radians\", \"degrees\"],\n dflt: \"degrees\",\n editType: \"calc\"\n },\n period: {\n valType: \"number\",\n editType: \"calc\",\n min: 0\n // Examples for date axes:\n //\n // - period that equals the timeseries length\n // http://flowingdata.com/2017/01/24/one-dataset-visualized-25-ways/18-polar-coordinates/\n // - and 1-year periods (focusing on seasonal change0\n // http://otexts.org/fpp2/seasonal-plots.html\n // https://blogs.scientificamerican.com/sa-visual/why-are-so-many-babies-born-around-8-00-a-m/\n // http://www.seasonaladjustment.com/2012/09/05/clock-plot-visualising-seasonality-using-r-and-ggplot2-part-3/\n // https://i.pinimg.com/736x/49/b9/72/49b972ccb3206a1a6d6f870dac543280.jpg\n // https://www.climate-lab-book.ac.uk/spirals/\n },\n direction: {\n valType: \"enumerated\",\n values: [\"counterclockwise\", \"clockwise\"],\n dflt: \"counterclockwise\",\n editType: \"calc\"\n },\n rotation: {\n valType: \"angle\",\n editType: \"calc\"\n },\n hoverformat: axesAttrs.hoverformat,\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"calc\"\n };\n extendFlat(\n angularAxisAttrs,\n // N.B. angular grid lines are straight lines from circle center to outer bound\n // the angular line is circular bounding the polar plot area.\n axisLineGridAttr,\n // N.B. ticksuffix defaults to '°' for angular axes with `thetaunit: 'degrees'`\n axisTickAttrs\n );\n module.exports = {\n // TODO for x/y/zoom system for paper-based zooming:\n // x: {},\n // y: {},\n // zoom: {},\n domain: domainAttrs({ name: \"polar\", editType: \"plot\" }),\n sector: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"plot\" },\n { valType: \"number\", editType: \"plot\" }\n ],\n dflt: [0, 360],\n editType: \"plot\"\n },\n hole: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"plot\"\n },\n bgcolor: {\n valType: \"color\",\n editType: \"plot\",\n dflt: colorAttrs.background\n },\n radialaxis: radialAxisAttrs,\n angularaxis: angularAxisAttrs,\n gridshape: {\n valType: \"enumerated\",\n values: [\"circular\", \"linear\"],\n dflt: \"circular\",\n editType: \"plot\"\n },\n // TODO maybe?\n // annotations:\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/plots/polar/layout_defaults.js\n var require_layout_defaults19 = __commonJS({\n \"src/plots/polar/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Template = require_plot_template();\n var handleSubplotDefaults = require_subplot_defaults();\n var getSubplotData = require_get_data().getSubplotData;\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleCategoryOrderDefaults = require_category_order_defaults();\n var handleLineGridDefaults = require_line_grid_defaults();\n var handleAutorangeOptionsDefaults = require_autorange_options_defaults();\n var autoType = require_axis_autotype();\n var layoutAttributes = require_layout_attributes21();\n var setConvert = require_set_convert3();\n var constants = require_constants33();\n var axisNames = constants.axisNames;\n function handleDefaults(contIn, contOut, coerce, opts) {\n var bgColor = coerce(\"bgcolor\");\n opts.bgColor = Color2.combine(bgColor, opts.paper_bgcolor);\n var sector = coerce(\"sector\");\n coerce(\"hole\");\n var subplotData = getSubplotData(opts.fullData, constants.name, opts.id);\n var layoutOut = opts.layoutOut;\n var axName;\n function coerceAxis(attr, dflt) {\n return coerce(axName + \".\" + attr, dflt);\n }\n for (var i = 0; i < axisNames.length; i++) {\n axName = axisNames[i];\n if (!Lib.isPlainObject(contIn[axName])) {\n contIn[axName] = {};\n }\n var axIn = contIn[axName];\n var axOut = Template.newContainer(contOut, axName);\n axOut._id = axOut._name = axName;\n axOut._attr = opts.id + \".\" + axName;\n axOut._traceIndices = subplotData.map(function(t) {\n return t.index;\n });\n var dataAttr = constants.axisName2dataArray[axName];\n var axType = handleAxisTypeDefaults(axIn, axOut, coerceAxis, subplotData, dataAttr, opts);\n handleCategoryOrderDefaults(axIn, axOut, coerceAxis, {\n axData: subplotData,\n dataAttr\n });\n var visible = coerceAxis(\"visible\");\n setConvert(axOut, contOut, layoutOut);\n coerceAxis(\"uirevision\", contOut.uirevision);\n axOut._m = 1;\n switch (axName) {\n case \"radialaxis\":\n coerceAxis(\"minallowed\");\n coerceAxis(\"maxallowed\");\n var range = coerceAxis(\"range\");\n var autorangeDflt = axOut.getAutorangeDflt(range);\n var autorange = coerceAxis(\"autorange\", autorangeDflt);\n var shouldAutorange;\n if (range && (range[0] === null && range[1] === null || (range[0] === null || range[1] === null) && (autorange === \"reversed\" || autorange === true) || range[0] !== null && (autorange === \"min\" || autorange === \"max reversed\") || range[1] !== null && (autorange === \"max\" || autorange === \"min reversed\"))) {\n range = void 0;\n delete axOut.range;\n axOut.autorange = true;\n shouldAutorange = true;\n }\n if (!shouldAutorange) {\n autorangeDflt = axOut.getAutorangeDflt(range);\n autorange = coerceAxis(\"autorange\", autorangeDflt);\n }\n axIn.autorange = autorange;\n if (autorange) {\n handleAutorangeOptionsDefaults(coerceAxis, autorange, range);\n if (axType === \"linear\" || axType === \"-\") coerceAxis(\"rangemode\");\n if (axOut.isReversed()) axOut._m = -1;\n }\n axOut.cleanRange(\"range\", { dfltRange: [0, 1] });\n break;\n case \"angularaxis\":\n if (axType === \"date\") {\n Lib.log(\"Polar plots do not support date angular axes yet.\");\n for (var j = 0; j < subplotData.length; j++) {\n subplotData[j].visible = false;\n }\n axType = axIn.type = axOut.type = \"linear\";\n }\n if (axType === \"linear\") {\n coerceAxis(\"thetaunit\");\n } else {\n coerceAxis(\"period\");\n }\n var direction = coerceAxis(\"direction\");\n coerceAxis(\"rotation\", { counterclockwise: 0, clockwise: 90 }[direction]);\n break;\n }\n handlePrefixSuffixDefaults(axIn, axOut, coerceAxis, axOut.type, {\n tickSuffixDflt: axOut.thetaunit === \"degrees\" ? \"\\xB0\" : void 0\n });\n if (visible) {\n var dfltColor;\n var dfltFontColor;\n var dfltFontSize;\n var dfltFontFamily;\n var dfltFontWeight;\n var dfltFontStyle;\n var dfltFontVariant;\n var dfltFontTextcase;\n var dfltFontLineposition;\n var dfltFontShadow;\n var font = opts.font || {};\n dfltColor = coerceAxis(\"color\");\n dfltFontColor = dfltColor === axIn.color ? dfltColor : font.color;\n dfltFontSize = font.size;\n dfltFontFamily = font.family;\n dfltFontWeight = font.weight;\n dfltFontStyle = font.style;\n dfltFontVariant = font.variant;\n dfltFontTextcase = font.textcase;\n dfltFontLineposition = font.lineposition;\n dfltFontShadow = font.shadow;\n handleTickValueDefaults(axIn, axOut, coerceAxis, axOut.type);\n handleTickLabelDefaults(axIn, axOut, coerceAxis, axOut.type, {\n font: {\n weight: dfltFontWeight,\n style: dfltFontStyle,\n variant: dfltFontVariant,\n textcase: dfltFontTextcase,\n lineposition: dfltFontLineposition,\n shadow: dfltFontShadow,\n color: dfltFontColor,\n size: dfltFontSize,\n family: dfltFontFamily\n },\n noAutotickangles: axName === \"angularaxis\",\n noTicklabelshift: true,\n noTicklabelstandoff: true\n });\n handleTickMarkDefaults(axIn, axOut, coerceAxis, { outerTicks: true });\n handleLineGridDefaults(axIn, axOut, coerceAxis, {\n dfltColor,\n bgColor: opts.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: layoutAttributes[axName]\n });\n coerceAxis(\"layer\");\n if (axName === \"radialaxis\") {\n coerceAxis(\"side\");\n coerceAxis(\"angle\", sector[0]);\n coerceAxis(\"title.text\");\n Lib.coerceFont(coerceAxis, \"title.font\", {\n weight: dfltFontWeight,\n style: dfltFontStyle,\n variant: dfltFontVariant,\n textcase: dfltFontTextcase,\n lineposition: dfltFontLineposition,\n shadow: dfltFontShadow,\n color: dfltFontColor,\n size: Lib.bigFont(dfltFontSize),\n family: dfltFontFamily\n });\n }\n }\n if (axType !== \"category\") coerceAxis(\"hoverformat\");\n axOut._input = axIn;\n }\n if (contOut.angularaxis.type === \"category\") {\n coerce(\"gridshape\");\n }\n }\n function handleAxisTypeDefaults(axIn, axOut, coerce, subplotData, dataAttr, options) {\n var autotypenumbers = coerce(\"autotypenumbers\", options.autotypenumbersDflt);\n var axType = coerce(\"type\");\n if (axType === \"-\") {\n var trace;\n for (var i = 0; i < subplotData.length; i++) {\n if (subplotData[i].visible) {\n trace = subplotData[i];\n break;\n }\n }\n if (trace && trace[dataAttr]) {\n axOut.type = autoType(trace[dataAttr], \"gregorian\", {\n noMultiCategory: true,\n autotypenumbers\n });\n }\n if (axOut.type === \"-\") {\n axOut.type = \"linear\";\n } else {\n axIn.type = axOut.type;\n }\n }\n return axOut.type;\n }\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: constants.name,\n attributes: layoutAttributes,\n handleDefaults,\n font: layoutOut.font,\n autotypenumbersDflt: layoutOut.autotypenumbers,\n paper_bgcolor: layoutOut.paper_bgcolor,\n fullData,\n layoutOut\n });\n };\n }\n });\n\n // src/plots/polar/index.js\n var require_polar2 = __commonJS({\n \"src/plots/polar/index.js\"(exports, module) {\n \"use strict\";\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var counterRegex = require_lib().counterRegex;\n var createPolar = require_polar();\n var constants = require_constants33();\n var attr = constants.attr;\n var name2 = constants.name;\n var counter = counterRegex(name2);\n var attributes = {};\n attributes[attr] = {\n valType: \"subplotid\",\n dflt: name2,\n editType: \"calc\"\n };\n function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var subplotIds = fullLayout._subplots[name2];\n for (var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, name2, id);\n var subplot = fullLayout[id]._subplot;\n if (!subplot) {\n subplot = createPolar(gd, id);\n fullLayout[id]._subplot = subplot;\n }\n subplot.plot(subplotCalcData, fullLayout, gd._promises);\n }\n }\n function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldIds = oldFullLayout._subplots[name2] || [];\n var hadGl = oldFullLayout._has && oldFullLayout._has(\"gl\");\n var hasGl = newFullLayout._has && newFullLayout._has(\"gl\");\n var mustCleanScene = hadGl && !hasGl;\n for (var i = 0; i < oldIds.length; i++) {\n var id = oldIds[i];\n var oldSubplot = oldFullLayout[id]._subplot;\n if (!newFullLayout[id] && !!oldSubplot) {\n oldSubplot.framework.remove();\n oldSubplot.layers[\"radial-axis-title\"].remove();\n for (var k in oldSubplot.clipPaths) {\n oldSubplot.clipPaths[k].remove();\n }\n }\n if (mustCleanScene && oldSubplot._scene) {\n oldSubplot._scene.destroy();\n oldSubplot._scene = null;\n }\n }\n }\n module.exports = {\n attr,\n name: name2,\n idRoot: name2,\n idRegex: counter,\n attrRegex: counter,\n attributes,\n layoutAttributes: require_layout_attributes21(),\n supplyLayoutDefaults: require_layout_defaults19(),\n plot,\n clean,\n toSVG: require_cartesian().toSVG\n };\n }\n });\n\n // src/traces/scatterpolar/attributes.js\n var require_attributes68 = __commonJS({\n \"src/traces/scatterpolar/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var lineAttrs = scatterAttrs.line;\n module.exports = {\n mode: scatterAttrs.mode,\n r: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n theta: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n r0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\"\n },\n dr: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n theta0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\"\n },\n dtheta: {\n valType: \"number\",\n editType: \"calc\"\n },\n thetaunit: {\n valType: \"enumerated\",\n values: [\"radians\", \"degrees\", \"gradians\"],\n dflt: \"degrees\",\n editType: \"calc+clearAxisTypes\"\n },\n text: scatterAttrs.text,\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"r\", \"theta\", \"text\"]\n }),\n hovertext: scatterAttrs.hovertext,\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width,\n dash: lineAttrs.dash,\n backoff: lineAttrs.backoff,\n shape: extendFlat({}, lineAttrs.shape, {\n values: [\"linear\", \"spline\"]\n }),\n smoothing: lineAttrs.smoothing,\n editType: \"calc\"\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: scatterAttrs.marker,\n cliponaxis: extendFlat({}, scatterAttrs.cliponaxis, { dflt: false }),\n textposition: scatterAttrs.textposition,\n textfont: scatterAttrs.textfont,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: [\"none\", \"toself\", \"tonext\"],\n dflt: \"none\"\n }),\n fillcolor: makeFillcolorAttr(),\n // TODO error bars\n // https://stackoverflow.com/a/26597487/4068492\n // error_x (error_r, error_theta)\n // error_y\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"r\", \"theta\", \"text\", \"name\"]\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs(),\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected\n };\n }\n });\n\n // src/traces/scatterpolar/defaults.js\n var require_defaults64 = __commonJS({\n \"src/traces/scatterpolar/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var PTS_LINESONLY = require_constants8().PTS_LINESONLY;\n var attributes = require_attributes68();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"thetaunit\");\n coerce(\"mode\", len < PTS_LINESONLY ? \"lines+markers\" : \"lines\");\n coerce(\"text\");\n coerce(\"hovertext\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"cliponaxis\");\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n }\n function handleRThetaDefaults(traceIn, traceOut, layout, coerce) {\n var r = coerce(\"r\");\n var theta = coerce(\"theta\");\n if (Lib.isTypedArray(r)) {\n traceOut.r = r = Array.from(r);\n }\n if (Lib.isTypedArray(theta)) {\n traceOut.theta = theta = Array.from(theta);\n }\n var len;\n if (r) {\n if (theta) {\n len = Math.min(r.length, theta.length);\n } else {\n len = r.length;\n coerce(\"theta0\");\n coerce(\"dtheta\");\n }\n } else {\n if (!theta) return 0;\n len = traceOut.theta.length;\n coerce(\"r0\");\n coerce(\"dr\");\n }\n traceOut._length = len;\n return len;\n }\n module.exports = {\n handleRThetaDefaults,\n supplyDefaults\n };\n }\n });\n\n // src/traces/scatterpolar/format_labels.js\n var require_format_labels8 = __commonJS({\n \"src/traces/scatterpolar/format_labels.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n var radialAxis;\n var angularAxis;\n if (!subplot) {\n subplot = fullLayout[trace.subplot];\n radialAxis = subplot.radialaxis;\n angularAxis = subplot.angularaxis;\n } else {\n radialAxis = subplot.radialAxis;\n angularAxis = subplot.angularAxis;\n }\n var rVal = radialAxis.c2l(cdi.r);\n labels.rLabel = Axes.tickText(radialAxis, rVal, true).text;\n var thetaVal = angularAxis.thetaunit === \"degrees\" ? Lib.rad2deg(cdi.theta) : cdi.theta;\n labels.thetaLabel = Axes.tickText(angularAxis, thetaVal, true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scatterpolar/calc.js\n var require_calc43 = __commonJS({\n \"src/traces/scatterpolar/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var Axes = require_axes();\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = radialAxis.makeCalcdata(trace, \"r\");\n var thetaArray = angularAxis.makeCalcdata(trace, \"theta\");\n var len = trace._length;\n var cd = new Array(len);\n for (var i = 0; i < len; i++) {\n var r = rArray[i];\n var theta = thetaArray[i];\n var cdi = cd[i] = {};\n if (isNumeric(r) && isNumeric(theta)) {\n cdi.r = r;\n cdi.theta = theta;\n } else {\n cdi.r = BADNUM;\n }\n }\n var ppad = calcMarkerSize(trace, len);\n trace._extremes.x = Axes.findExtremes(radialAxis, rArray, { ppad });\n calcColorscale(gd, trace);\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/scatterpolar/plot.js\n var require_plot36 = __commonJS({\n \"src/traces/scatterpolar/plot.js\"(exports, module) {\n \"use strict\";\n var scatterPlot = require_plot();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function plot(gd, subplot, moduleCalcData) {\n var mlayer = subplot.layers.frontplot.select(\"g.scatterlayer\");\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n var plotinfo = {\n xaxis: xa,\n yaxis: ya,\n plot: subplot.framework,\n layerClipId: subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null\n };\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n for (var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n for (var j = 0; j < cdi.length; j++) {\n if (j === 0) {\n cdi[0].trace._xA = xa;\n cdi[0].trace._yA = ya;\n }\n var cd = cdi[j];\n var r = cd.r;\n if (r === BADNUM) {\n cd.x = cd.y = BADNUM;\n } else {\n var rg = radialAxis.c2g(r);\n var thetag = angularAxis.c2g(cd.theta);\n cd.x = rg * Math.cos(thetag);\n cd.y = rg * Math.sin(thetag);\n }\n }\n }\n scatterPlot(gd, plotinfo, moduleCalcData, mlayer);\n };\n }\n });\n\n // src/traces/scatterpolar/hover.js\n var require_hover24 = __commonJS({\n \"src/traces/scatterpolar/hover.js\"(exports, module) {\n \"use strict\";\n var scatterHover = require_hover2();\n function hoverPoints(pointData, xval, yval, hovermode) {\n var scatterPointData = scatterHover(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n return scatterPointData;\n }\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n if (!subplot.isPtInside(cdi)) return;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n newPointData.hovertemplate = trace.hovertemplate;\n return scatterPointData;\n }\n function makeHoverPointText(cdi, trace, subplot, pointData) {\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n radialAxis._hovertitle = \"r\";\n angularAxis._hovertitle = \"\\u03B8\";\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(cdi, trace, fullLayout);\n pointData.rLabel = labels.rLabel;\n pointData.thetaLabel = labels.thetaLabel;\n var hoverinfo = cdi.hi || trace.hoverinfo;\n var text = [];\n function textPart(ax, val) {\n text.push(ax._hovertitle + \": \" + val);\n }\n if (!trace.hovertemplate) {\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"r\", \"theta\", \"text\"];\n if (parts.indexOf(\"r\") !== -1) textPart(radialAxis, pointData.rLabel);\n if (parts.indexOf(\"theta\") !== -1) textPart(angularAxis, pointData.thetaLabel);\n if (parts.indexOf(\"text\") !== -1 && pointData.text) {\n text.push(pointData.text);\n delete pointData.text;\n }\n pointData.extraText = text.join(\"
\");\n }\n }\n module.exports = {\n hoverPoints,\n makeHoverPointText\n };\n }\n });\n\n // src/traces/scatterpolar/index.js\n var require_scatterpolar = __commonJS({\n \"src/traces/scatterpolar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"scatterpolar\",\n basePlotModule: require_polar2(),\n categories: [\"polar\", \"symbols\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes68(),\n supplyDefaults: require_defaults64().supplyDefaults,\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels8(),\n calc: require_calc43(),\n plot: require_plot36(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover24().hoverPoints,\n selectPoints: require_select2(),\n meta: {}\n };\n }\n });\n\n // lib/scatterpolar.js\n var require_scatterpolar2 = __commonJS({\n \"lib/scatterpolar.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scatterpolar();\n }\n });\n\n // src/traces/scatterpolargl/attributes.js\n var require_attributes69 = __commonJS({\n \"src/traces/scatterpolargl/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterPolarAttrs = require_attributes68();\n var scatterGlAttrs = require_attributes50();\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n module.exports = {\n mode: scatterPolarAttrs.mode,\n r: scatterPolarAttrs.r,\n theta: scatterPolarAttrs.theta,\n r0: scatterPolarAttrs.r0,\n dr: scatterPolarAttrs.dr,\n theta0: scatterPolarAttrs.theta0,\n dtheta: scatterPolarAttrs.dtheta,\n thetaunit: scatterPolarAttrs.thetaunit,\n text: scatterPolarAttrs.text,\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"r\", \"theta\", \"text\"]\n }),\n hovertext: scatterPolarAttrs.hovertext,\n hovertemplate: scatterPolarAttrs.hovertemplate,\n line: {\n color: scatterGlAttrs.line.color,\n width: scatterGlAttrs.line.width,\n dash: scatterGlAttrs.line.dash,\n editType: \"calc\"\n },\n connectgaps: scatterGlAttrs.connectgaps,\n marker: scatterGlAttrs.marker,\n // no cliponaxis\n fill: scatterGlAttrs.fill,\n fillcolor: scatterGlAttrs.fillcolor,\n textposition: scatterGlAttrs.textposition,\n textfont: scatterGlAttrs.textfont,\n hoverinfo: scatterPolarAttrs.hoverinfo,\n // no hoveron\n selected: scatterPolarAttrs.selected,\n unselected: scatterPolarAttrs.unselected\n };\n }\n });\n\n // src/traces/scatterpolargl/defaults.js\n var require_defaults65 = __commonJS({\n \"src/traces/scatterpolargl/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleRThetaDefaults = require_defaults64().handleRThetaDefaults;\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var PTS_LINESONLY = require_constants8().PTS_LINESONLY;\n var attributes = require_attributes69();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"thetaunit\");\n coerce(\"mode\", len < PTS_LINESONLY ? \"lines+markers\" : \"lines\");\n coerce(\"text\");\n coerce(\"hovertext\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noAngleRef: true, noStandOff: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce, {\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scatterpolargl/format_labels.js\n var require_format_labels9 = __commonJS({\n \"src/traces/scatterpolargl/format_labels.js\"(exports, module) {\n \"use strict\";\n var scatterPolarFormatLabels = require_format_labels8();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if (!(\"r\" in cdi)) cdi.r = trace._r[i];\n if (!(\"theta\" in cdi)) cdi.theta = trace._theta[i];\n return scatterPolarFormatLabels(cdi, trace, fullLayout);\n };\n }\n });\n\n // src/traces/scatterpolargl/calc.js\n var require_calc44 = __commonJS({\n \"src/traces/scatterpolargl/calc.js\"(exports, module) {\n \"use strict\";\n var calcColorscale = require_colorscale_calc();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var convert = require_convert10();\n var Axes = require_axes();\n var TOO_MANY_POINTS = require_constants23().TOO_MANY_POINTS;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = trace._r = radialAxis.makeCalcdata(trace, \"r\");\n var thetaArray = trace._theta = angularAxis.makeCalcdata(trace, \"theta\");\n var len = trace._length;\n var stash = {};\n if (len < rArray.length) rArray = rArray.slice(0, len);\n if (len < thetaArray.length) thetaArray = thetaArray.slice(0, len);\n stash.r = rArray;\n stash.theta = thetaArray;\n calcColorscale(gd, trace);\n var opts = stash.opts = convert.style(gd, trace);\n var ppad;\n if (len < TOO_MANY_POINTS) {\n ppad = calcMarkerSize(trace, len);\n } else if (opts.marker) {\n ppad = 2 * (opts.marker.sizeAvg || Math.max(opts.marker.size, 3));\n }\n trace._extremes.x = Axes.findExtremes(radialAxis, rArray, { ppad });\n return [{ x: false, y: false, t: stash, trace }];\n };\n }\n });\n\n // src/traces/scatterpolargl/hover.js\n var require_hover25 = __commonJS({\n \"src/traces/scatterpolargl/hover.js\"(exports, module) {\n \"use strict\";\n var hover = require_hover16();\n var makeHoverPointText = require_hover24().makeHoverPointText;\n function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var stash = cd[0].t;\n var rArray = stash.r;\n var thetaArray = stash.theta;\n var scatterPointData = hover.hoverPoints(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n return scatterPointData;\n }\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n cdi.r = rArray[newPointData.index];\n cdi.theta = thetaArray[newPointData.index];\n if (!subplot.isPtInside(cdi)) return;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n return scatterPointData;\n }\n module.exports = {\n hoverPoints\n };\n }\n });\n\n // src/traces/scatterpolargl/base_index.js\n var require_base_index4 = __commonJS({\n \"src/traces/scatterpolargl/base_index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"scatterpolargl\",\n basePlotModule: require_polar2(),\n categories: [\"gl\", \"regl\", \"polar\", \"symbols\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes69(),\n supplyDefaults: require_defaults65(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels9(),\n calc: require_calc44(),\n hoverPoints: require_hover25().hoverPoints,\n selectPoints: require_select7(),\n meta: {}\n };\n }\n });\n\n // src/traces/scatterpolargl/plot.js\n var require_plot37 = __commonJS({\n \"src/traces/scatterpolargl/plot.js\"(exports, module) {\n \"use strict\";\n var cluster = require_point_cluster();\n var isNumeric = require_fast_isnumeric();\n var scatterglPlot = require_plot19();\n var sceneUpdate = require_scene_update();\n var convert = require_convert10();\n var Lib = require_lib();\n var TOO_MANY_POINTS = require_constants23().TOO_MANY_POINTS;\n var reglPrecompiled = {};\n module.exports = function plot(gd, subplot, cdata) {\n if (!cdata.length) return;\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n var scene = sceneUpdate(gd, subplot);\n cdata.forEach(function(cdscatter) {\n if (!cdscatter || !cdscatter[0] || !cdscatter[0].trace) return;\n var cd = cdscatter[0];\n var trace = cd.trace;\n var stash = cd.t;\n var len = trace._length;\n var rArray = stash.r;\n var thetaArray = stash.theta;\n var opts = stash.opts;\n var i;\n var subRArray = rArray.slice();\n var subThetaArray = thetaArray.slice();\n for (i = 0; i < rArray.length; i++) {\n if (!subplot.isPtInside({ r: rArray[i], theta: thetaArray[i] })) {\n subRArray[i] = NaN;\n subThetaArray[i] = NaN;\n }\n }\n var positions = new Array(len * 2);\n var x = Array(len);\n var y = Array(len);\n for (i = 0; i < len; i++) {\n var r = subRArray[i];\n var xx, yy;\n if (isNumeric(r)) {\n var rg = radialAxis.c2g(r);\n var thetag = angularAxis.c2g(subThetaArray[i], trace.thetaunit);\n xx = rg * Math.cos(thetag);\n yy = rg * Math.sin(thetag);\n } else {\n xx = yy = NaN;\n }\n x[i] = positions[i * 2] = xx;\n y[i] = positions[i * 2 + 1] = yy;\n }\n stash.tree = cluster(positions);\n if (opts.marker && len >= TOO_MANY_POINTS) {\n opts.marker.cluster = stash.tree;\n }\n if (opts.marker) {\n opts.markerSel.positions = opts.markerUnsel.positions = opts.marker.positions = positions;\n }\n if (opts.line && positions.length > 1) {\n Lib.extendFlat(\n opts.line,\n convert.linePositions(gd, trace, positions)\n );\n }\n if (opts.text) {\n Lib.extendFlat(\n opts.text,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.marker)\n );\n Lib.extendFlat(\n opts.textSel,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.markerSel)\n );\n Lib.extendFlat(\n opts.textUnsel,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.markerUnsel)\n );\n }\n if (opts.fill && !scene.fill2d) scene.fill2d = true;\n if (opts.marker && !scene.scatter2d) scene.scatter2d = true;\n if (opts.line && !scene.line2d) scene.line2d = true;\n if (opts.text && !scene.glText) scene.glText = true;\n scene.lineOptions.push(opts.line);\n scene.fillOptions.push(opts.fill);\n scene.markerOptions.push(opts.marker);\n scene.markerSelectedOptions.push(opts.markerSel);\n scene.markerUnselectedOptions.push(opts.markerUnsel);\n scene.textOptions.push(opts.text);\n scene.textSelectedOptions.push(opts.textSel);\n scene.textUnselectedOptions.push(opts.textUnsel);\n scene.selectBatch.push([]);\n scene.unselectBatch.push([]);\n stash.x = x;\n stash.y = y;\n stash.rawx = x;\n stash.rawy = y;\n stash.r = rArray;\n stash.theta = thetaArray;\n stash.positions = positions;\n stash._scene = scene;\n stash.index = scene.count;\n scene.count++;\n });\n return scatterglPlot(gd, subplot, cdata);\n };\n module.exports.reglPrecompiled = reglPrecompiled;\n }\n });\n\n // src/traces/scatterpolargl/index.js\n var require_scatterpolargl = __commonJS({\n \"src/traces/scatterpolargl/index.js\"(exports, module) {\n \"use strict\";\n var index = require_base_index4();\n index.plot = require_plot37();\n module.exports = index;\n }\n });\n\n // lib/scatterpolargl.js\n var require_scatterpolargl2 = __commonJS({\n \"lib/scatterpolargl.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scatterpolargl();\n }\n });\n\n // src/traces/barpolar/attributes.js\n var require_attributes70 = __commonJS({\n \"src/traces/barpolar/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var scatterPolarAttrs = require_attributes68();\n var barAttrs = require_attributes23();\n module.exports = {\n r: scatterPolarAttrs.r,\n theta: scatterPolarAttrs.theta,\n r0: scatterPolarAttrs.r0,\n dr: scatterPolarAttrs.dr,\n theta0: scatterPolarAttrs.theta0,\n dtheta: scatterPolarAttrs.dtheta,\n thetaunit: scatterPolarAttrs.thetaunit,\n // orientation: {\n // valType: 'enumerated',\n // values: ['radial', 'angular'],\n // editType: 'calc+clearAxisTypes',\n //\n // },\n base: extendFlat({}, barAttrs.base, {}),\n offset: extendFlat({}, barAttrs.offset, {}),\n width: extendFlat({}, barAttrs.width, {}),\n text: extendFlat({}, barAttrs.text, {}),\n hovertext: extendFlat({}, barAttrs.hovertext, {}),\n // textposition: {},\n // textfont: {},\n // insidetextfont: {},\n // outsidetextfont: {},\n // constraintext: {},\n // cliponaxis: extendFlat({}, barAttrs.cliponaxis, {dflt: false}),\n marker: barPolarMarker(),\n hoverinfo: scatterPolarAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs(),\n selected: barAttrs.selected,\n unselected: barAttrs.unselected\n // error_x (error_r, error_theta)\n // error_y\n };\n function barPolarMarker() {\n var marker = extendFlat({}, barAttrs.marker);\n delete marker.cornerradius;\n return marker;\n }\n }\n });\n\n // src/traces/barpolar/layout_attributes.js\n var require_layout_attributes22 = __commonJS({\n \"src/traces/barpolar/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n barmode: {\n valType: \"enumerated\",\n values: [\"stack\", \"overlay\"],\n dflt: \"stack\",\n editType: \"calc\"\n },\n bargap: {\n valType: \"number\",\n dflt: 0.1,\n min: 0,\n max: 1,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/barpolar/defaults.js\n var require_defaults66 = __commonJS({\n \"src/traces/barpolar/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleRThetaDefaults = require_defaults64().handleRThetaDefaults;\n var handleStyleDefaults = require_style_defaults();\n var attributes = require_attributes70();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"thetaunit\");\n coerce(\"base\");\n coerce(\"offset\");\n coerce(\"width\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/barpolar/layout_defaults.js\n var require_layout_defaults20 = __commonJS({\n \"src/traces/barpolar/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attrs = require_layout_attributes22();\n module.exports = function(layoutIn, layoutOut, fullData) {\n var subplotsDone = {};\n var sp;\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn[sp] || {}, layoutOut[sp], attrs, attr, dflt);\n }\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.type === \"barpolar\" && trace.visible === true) {\n sp = trace.subplot;\n if (!subplotsDone[sp]) {\n coerce(\"barmode\");\n coerce(\"bargap\");\n subplotsDone[sp] = 1;\n }\n }\n }\n };\n }\n });\n\n // src/traces/barpolar/calc.js\n var require_calc45 = __commonJS({\n \"src/traces/barpolar/calc.js\"(exports, module) {\n \"use strict\";\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleCalc = require_calc();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var arraysToCalcdata = require_arrays_to_calcdata2();\n var setGroupPositions = require_cross_trace_calc().setGroupPositions;\n var calcSelection = require_calc_selection();\n var traceIs = require_registry().traceIs;\n var extendFlat = require_lib().extendFlat;\n function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = radialAxis.makeCalcdata(trace, \"r\");\n var thetaArray = angularAxis.makeCalcdata(trace, \"theta\");\n var len = trace._length;\n var cd = new Array(len);\n var sArray = rArray;\n var pArray = thetaArray;\n for (var i = 0; i < len; i++) {\n cd[i] = { p: pArray[i], s: sArray[i] };\n }\n function d2c(attr) {\n var val = trace[attr];\n if (val !== void 0) {\n trace[\"_\" + attr] = isArrayOrTypedArray(val) ? angularAxis.makeCalcdata(trace, attr) : angularAxis.d2c(val, trace.thetaunit);\n }\n }\n if (angularAxis.type === \"linear\") {\n d2c(\"width\");\n d2c(\"offset\");\n }\n if (hasColorscale(trace, \"marker\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.marker.color,\n containerStr: \"marker\",\n cLetter: \"c\"\n });\n }\n if (hasColorscale(trace, \"marker.line\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.marker.line.color,\n containerStr: \"marker.line\",\n cLetter: \"c\"\n });\n }\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n }\n function crossTraceCalc(gd, polarLayout, subplotId) {\n var calcdata = gd.calcdata;\n var barPolarCd = [];\n for (var i = 0; i < calcdata.length; i++) {\n var cdi = calcdata[i];\n var trace = cdi[0].trace;\n if (trace.visible === true && traceIs(trace, \"bar\") && trace.subplot === subplotId) {\n barPolarCd.push(cdi);\n }\n }\n var rAxis = extendFlat({}, polarLayout.radialaxis, { _id: \"x\" });\n var aAxis = polarLayout.angularaxis;\n setGroupPositions(gd, aAxis, rAxis, barPolarCd, {\n mode: polarLayout.barmode,\n norm: polarLayout.barnorm,\n gap: polarLayout.bargap,\n groupgap: polarLayout.bargroupgap\n });\n }\n module.exports = {\n calc,\n crossTraceCalc\n };\n }\n });\n\n // src/traces/barpolar/plot.js\n var require_plot38 = __commonJS({\n \"src/traces/barpolar/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var helpers = require_helpers19();\n module.exports = function plot(gd, subplot, cdbar) {\n var isStatic = gd._context.staticPlot;\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n var pathFn = makePathFn(subplot);\n var barLayer = subplot.layers.frontplot.select(\"g.barlayer\");\n Lib.makeTraceGroups(barLayer, cdbar, \"trace bars\").each(function() {\n var plotGroup = d3.select(this);\n var pointGroup = Lib.ensureSingle(plotGroup, \"g\", \"points\");\n var bars = pointGroup.selectAll(\"g.point\").data(Lib.identity);\n bars.enter().append(\"g\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").style(\"stroke-miterlimit\", 2).classed(\"point\", true);\n bars.exit().remove();\n bars.each(function(di) {\n var bar = d3.select(this);\n var rp0 = di.rp0 = radialAxis.c2p(di.s0);\n var rp1 = di.rp1 = radialAxis.c2p(di.s1);\n var thetag0 = di.thetag0 = angularAxis.c2g(di.p0);\n var thetag1 = di.thetag1 = angularAxis.c2g(di.p1);\n var dPath;\n if (!isNumeric(rp0) || !isNumeric(rp1) || !isNumeric(thetag0) || !isNumeric(thetag1) || rp0 === rp1 || thetag0 === thetag1) {\n dPath = \"M0,0Z\";\n } else {\n var rg1 = radialAxis.c2g(di.s1);\n var thetagMid = (thetag0 + thetag1) / 2;\n di.ct = [\n xa.c2p(rg1 * Math.cos(thetagMid)),\n ya.c2p(rg1 * Math.sin(thetagMid))\n ];\n dPath = pathFn(rp0, rp1, thetag0, thetag1);\n }\n Lib.ensureSingle(bar, \"path\").attr(\"d\", dPath);\n });\n Drawing.setClipUrl(\n plotGroup,\n subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null,\n gd\n );\n });\n };\n function makePathFn(subplot) {\n var cxx = subplot.cxx;\n var cyy = subplot.cyy;\n if (subplot.vangles) {\n return function(r0, r1, _a0, _a1) {\n var a0, a1;\n if (Lib.angleDelta(_a0, _a1) > 0) {\n a0 = _a0;\n a1 = _a1;\n } else {\n a0 = _a1;\n a1 = _a0;\n }\n var va0 = helpers.findEnclosingVertexAngles(a0, subplot.vangles)[0];\n var va1 = helpers.findEnclosingVertexAngles(a1, subplot.vangles)[1];\n var vaBar = [va0, (a0 + a1) / 2, va1];\n return helpers.pathPolygonAnnulus(r0, r1, a0, a1, vaBar, cxx, cyy);\n };\n }\n return function(r0, r1, a0, a1) {\n return Lib.pathAnnulus(r0, r1, a0, a1, cxx, cyy);\n };\n }\n }\n });\n\n // src/traces/barpolar/hover.js\n var require_hover26 = __commonJS({\n \"src/traces/barpolar/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var getTraceColor = require_hover3().getTraceColor;\n var fillText = Lib.fillText;\n var makeHoverPointText = require_hover24().makeHoverPointText;\n var isPtInsidePolygon = require_helpers19().isPtInsidePolygon;\n module.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var subplot = pointData.subplot;\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n var vangles = subplot.vangles;\n var inboxFn = vangles ? isPtInsidePolygon : Lib.isPtInsideSector;\n var maxHoverDistance = pointData.maxHoverDistance;\n var period = angularAxis._period || 2 * Math.PI;\n var rVal = Math.abs(radialAxis.g2p(Math.sqrt(xval * xval + yval * yval)));\n var thetaVal = Math.atan2(yval, xval);\n if (radialAxis.range[0] > radialAxis.range[1]) {\n thetaVal += Math.PI;\n }\n var distFn = function(di) {\n if (inboxFn(rVal, thetaVal, [di.rp0, di.rp1], [di.thetag0, di.thetag1], vangles)) {\n return maxHoverDistance + // add a little to the pseudo-distance for wider bars, so that like scatter,\n // if you are over two overlapping bars, the narrower one wins.\n Math.min(1, Math.abs(di.thetag1 - di.thetag0) / period) - 1 + // add a gradient so hovering near the end of a\n // bar makes it a little closer match\n (di.rp1 - rVal) / (di.rp1 - di.rp0) - 1;\n } else {\n return Infinity;\n }\n };\n Fx.getClosest(cd, distFn, pointData);\n if (pointData.index === false) return;\n var index = pointData.index;\n var cdi = cd[index];\n pointData.x0 = pointData.x1 = cdi.ct[0];\n pointData.y0 = pointData.y1 = cdi.ct[1];\n var _cdi = Lib.extendFlat({}, cdi, { r: cdi.s, theta: cdi.p });\n fillText(cdi, trace, pointData);\n makeHoverPointText(_cdi, trace, subplot, pointData);\n pointData.hovertemplate = trace.hovertemplate;\n pointData.color = getTraceColor(trace, cdi);\n pointData.xLabelVal = pointData.yLabelVal = void 0;\n if (cdi.s < 0) {\n pointData.idealAlign = \"left\";\n }\n return [pointData];\n };\n }\n });\n\n // src/traces/barpolar/index.js\n var require_barpolar = __commonJS({\n \"src/traces/barpolar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"barpolar\",\n basePlotModule: require_polar2(),\n categories: [\"polar\", \"bar\", \"showLegend\"],\n attributes: require_attributes70(),\n layoutAttributes: require_layout_attributes22(),\n supplyDefaults: require_defaults66(),\n supplyLayoutDefaults: require_layout_defaults20(),\n calc: require_calc45().calc,\n crossTraceCalc: require_calc45().crossTraceCalc,\n plot: require_plot38(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels8(),\n style: require_style4().style,\n styleOnSelect: require_style4().styleOnSelect,\n hoverPoints: require_hover26(),\n selectPoints: require_select3(),\n meta: {}\n };\n }\n });\n\n // lib/barpolar.js\n var require_barpolar2 = __commonJS({\n \"lib/barpolar.js\"(exports, module) {\n \"use strict\";\n module.exports = require_barpolar();\n }\n });\n\n // src/plots/smith/constants.js\n var require_constants34 = __commonJS({\n \"src/plots/smith/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attr: \"subplot\",\n name: \"smith\",\n axisNames: [\n \"realaxis\",\n \"imaginaryaxis\"\n // imaginary axis should be second here so that the `tickvals` defaults could be inherited from realaxis\n ],\n axisName2dataArray: { imaginaryaxis: \"imag\", realaxis: \"real\" }\n };\n }\n });\n\n // src/plots/smith/layout_attributes.js\n var require_layout_attributes23 = __commonJS({\n \"src/plots/smith/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttrs = require_attributes3();\n var axesAttrs = require_layout_attributes4();\n var domainAttrs = require_domain().attributes;\n var extendFlat = require_lib().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var axisLineGridAttr = overrideAll({\n color: axesAttrs.color,\n showline: extendFlat({}, axesAttrs.showline, { dflt: true }),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, { dflt: true }),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n griddash: axesAttrs.griddash\n }, \"plot\", \"from-root\");\n var axisTickAttrs = overrideAll({\n ticklen: axesAttrs.ticklen,\n tickwidth: extendFlat({}, axesAttrs.tickwidth, { dflt: 2 }),\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n tickfont: axesAttrs.tickfont,\n tickformat: axesAttrs.tickformat,\n hoverformat: axesAttrs.hoverformat,\n layer: axesAttrs.layer\n }, \"plot\", \"from-root\");\n var realAxisAttrs = extendFlat({\n visible: extendFlat({}, axesAttrs.visible, { dflt: true }),\n tickvals: {\n dflt: [0.2, 0.5, 1, 2, 5],\n valType: \"data_array\",\n editType: \"plot\"\n },\n tickangle: extendFlat({}, axesAttrs.tickangle, { dflt: 90 }),\n ticks: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\", \"\"],\n editType: \"ticks\"\n },\n side: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\"],\n dflt: \"top\",\n editType: \"plot\"\n },\n editType: \"calc\"\n }, axisLineGridAttr, axisTickAttrs);\n var imaginaryAxisAttrs = extendFlat({\n visible: extendFlat({}, axesAttrs.visible, { dflt: true }),\n tickvals: {\n valType: \"data_array\",\n editType: \"plot\"\n },\n ticks: axesAttrs.ticks,\n editType: \"calc\"\n }, axisLineGridAttr, axisTickAttrs);\n module.exports = {\n domain: domainAttrs({ name: \"smith\", editType: \"plot\" }),\n bgcolor: {\n valType: \"color\",\n editType: \"plot\",\n dflt: colorAttrs.background\n },\n realaxis: realAxisAttrs,\n imaginaryaxis: imaginaryAxisAttrs,\n editType: \"calc\"\n };\n }\n });\n\n // src/plots/smith/layout_defaults.js\n var require_layout_defaults21 = __commonJS({\n \"src/plots/smith/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Template = require_plot_template();\n var handleSubplotDefaults = require_subplot_defaults();\n var getSubplotData = require_get_data().getSubplotData;\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handleLineGridDefaults = require_line_grid_defaults();\n var setConvertCartesian = require_set_convert();\n var layoutAttributes = require_layout_attributes23();\n var constants = require_constants34();\n var axisNames = constants.axisNames;\n var makeImagDflt = memoize(function(realTickvals) {\n if (Lib.isTypedArray(realTickvals)) realTickvals = Array.from(realTickvals);\n return realTickvals.slice().reverse().map(function(x) {\n return -x;\n }).concat([0]).concat(realTickvals);\n }, String);\n function handleDefaults(contIn, contOut, coerce, opts) {\n var bgColor = coerce(\"bgcolor\");\n opts.bgColor = Color2.combine(bgColor, opts.paper_bgcolor);\n var subplotData = getSubplotData(opts.fullData, constants.name, opts.id);\n var layoutOut = opts.layoutOut;\n var axName;\n function coerceAxis(attr, dflt) {\n return coerce(axName + \".\" + attr, dflt);\n }\n for (var i = 0; i < axisNames.length; i++) {\n axName = axisNames[i];\n if (!Lib.isPlainObject(contIn[axName])) {\n contIn[axName] = {};\n }\n var axIn = contIn[axName];\n var axOut = Template.newContainer(contOut, axName);\n axOut._id = axOut._name = axName;\n axOut._attr = opts.id + \".\" + axName;\n axOut._traceIndices = subplotData.map(function(t) {\n return t.index;\n });\n var visible = coerceAxis(\"visible\");\n axOut.type = \"linear\";\n setConvertCartesian(axOut, layoutOut);\n handlePrefixSuffixDefaults(axIn, axOut, coerceAxis, axOut.type);\n if (visible) {\n var isRealAxis = axName === \"realaxis\";\n if (isRealAxis) coerceAxis(\"side\");\n if (isRealAxis) {\n coerceAxis(\"tickvals\");\n } else {\n var imagTickvalsDflt = makeImagDflt(\n contOut.realaxis.tickvals || layoutAttributes.realaxis.tickvals.dflt\n );\n coerceAxis(\"tickvals\", imagTickvalsDflt);\n }\n if (Lib.isTypedArray(axOut.tickvals)) axOut.tickvals = Array.from(axOut.tickvals);\n var dfltColor;\n var dfltFontColor;\n var dfltFontSize;\n var dfltFontFamily;\n var font = opts.font || {};\n if (visible) {\n dfltColor = coerceAxis(\"color\");\n dfltFontColor = dfltColor === axIn.color ? dfltColor : font.color;\n dfltFontSize = font.size;\n dfltFontFamily = font.family;\n }\n handleTickLabelDefaults(axIn, axOut, coerceAxis, axOut.type, {\n noAutotickangles: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true,\n noTicklabelstep: true,\n noAng: !isRealAxis,\n noExp: true,\n font: {\n color: dfltFontColor,\n size: dfltFontSize,\n family: dfltFontFamily\n }\n });\n Lib.coerce2(contIn, contOut, layoutAttributes, axName + \".ticklen\");\n Lib.coerce2(contIn, contOut, layoutAttributes, axName + \".tickwidth\");\n Lib.coerce2(contIn, contOut, layoutAttributes, axName + \".tickcolor\", contOut.color);\n var showTicks = coerceAxis(\"ticks\");\n if (!showTicks) {\n delete contOut[axName].ticklen;\n delete contOut[axName].tickwidth;\n delete contOut[axName].tickcolor;\n }\n handleLineGridDefaults(axIn, axOut, coerceAxis, {\n dfltColor,\n bgColor: opts.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: layoutAttributes[axName]\n });\n coerceAxis(\"layer\");\n }\n coerceAxis(\"hoverformat\");\n delete axOut.type;\n axOut._input = axIn;\n }\n }\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n noUirevision: true,\n type: constants.name,\n attributes: layoutAttributes,\n handleDefaults,\n font: layoutOut.font,\n paper_bgcolor: layoutOut.paper_bgcolor,\n fullData,\n layoutOut\n });\n };\n function memoize(fn, keyFn) {\n var cache = {};\n return function(val) {\n var newKey = keyFn ? keyFn(val) : val;\n if (newKey in cache) {\n return cache[newKey];\n }\n var out = fn(val);\n cache[newKey] = out;\n return out;\n };\n }\n }\n });\n\n // src/plots/smith/index.js\n var require_smith = __commonJS({\n \"src/plots/smith/index.js\"(exports, module) {\n \"use strict\";\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var counterRegex = require_lib().counterRegex;\n var createPolar = require_polar();\n var constants = require_constants34();\n var attr = constants.attr;\n var name2 = constants.name;\n var counter = counterRegex(name2);\n var attributes = {};\n attributes[attr] = {\n valType: \"subplotid\",\n dflt: name2,\n editType: \"calc\"\n };\n function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var subplotIds = fullLayout._subplots[name2];\n for (var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, name2, id);\n var subplot = fullLayout[id]._subplot;\n if (!subplot) {\n subplot = createPolar(gd, id, true);\n fullLayout[id]._subplot = subplot;\n }\n subplot.plot(subplotCalcData, fullLayout, gd._promises);\n }\n }\n function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldIds = oldFullLayout._subplots[name2] || [];\n for (var i = 0; i < oldIds.length; i++) {\n var id = oldIds[i];\n var oldSubplot = oldFullLayout[id]._subplot;\n if (!newFullLayout[id] && !!oldSubplot) {\n oldSubplot.framework.remove();\n for (var k in oldSubplot.clipPaths) {\n oldSubplot.clipPaths[k].remove();\n }\n }\n }\n }\n module.exports = {\n attr,\n name: name2,\n idRoot: name2,\n idRegex: counter,\n attrRegex: counter,\n attributes,\n layoutAttributes: require_layout_attributes23(),\n supplyLayoutDefaults: require_layout_defaults21(),\n plot,\n clean,\n toSVG: require_cartesian().toSVG\n };\n }\n });\n\n // src/traces/scattersmith/attributes.js\n var require_attributes71 = __commonJS({\n \"src/traces/scattersmith/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var lineAttrs = scatterAttrs.line;\n module.exports = {\n mode: scatterAttrs.mode,\n real: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n imag: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n text: scatterAttrs.text,\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"real\", \"imag\", \"text\"]\n }),\n hovertext: scatterAttrs.hovertext,\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width,\n dash: lineAttrs.dash,\n backoff: lineAttrs.backoff,\n shape: extendFlat({}, lineAttrs.shape, {\n values: [\"linear\", \"spline\"]\n }),\n smoothing: lineAttrs.smoothing,\n editType: \"calc\"\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: scatterAttrs.marker,\n cliponaxis: extendFlat({}, scatterAttrs.cliponaxis, { dflt: false }),\n textposition: scatterAttrs.textposition,\n textfont: scatterAttrs.textfont,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: [\"none\", \"toself\", \"tonext\"],\n dflt: \"none\"\n }),\n fillcolor: makeFillcolorAttr(),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"real\", \"imag\", \"text\", \"name\"]\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs(),\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected\n };\n }\n });\n\n // src/traces/scattersmith/defaults.js\n var require_defaults67 = __commonJS({\n \"src/traces/scattersmith/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var PTS_LINESONLY = require_constants8().PTS_LINESONLY;\n var attributes = require_attributes71();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleRealImagDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"mode\", len < PTS_LINESONLY ? \"lines+markers\" : \"lines\");\n coerce(\"text\");\n coerce(\"hovertext\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"cliponaxis\");\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n function handleRealImagDefaults(traceIn, traceOut, layout, coerce) {\n var real = coerce(\"real\");\n var imag = coerce(\"imag\");\n var len;\n if (real && imag) {\n len = Math.min(real.length, imag.length);\n }\n if (Lib.isTypedArray(real)) {\n traceOut.real = real = Array.from(real);\n }\n if (Lib.isTypedArray(imag)) {\n traceOut.imag = imag = Array.from(imag);\n }\n traceOut._length = len;\n return len;\n }\n }\n });\n\n // src/traces/scattersmith/format_labels.js\n var require_format_labels10 = __commonJS({\n \"src/traces/scattersmith/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n labels.realLabel = Axes.tickText(subplot.radialAxis, cdi.real, true).text;\n labels.imagLabel = Axes.tickText(subplot.angularAxis, cdi.imag, true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scattersmith/calc.js\n var require_calc46 = __commonJS({\n \"src/traces/scattersmith/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var realAxis = fullLayout[subplotId].realaxis;\n var imaginaryAxis = fullLayout[subplotId].imaginaryaxis;\n var realArray = realAxis.makeCalcdata(trace, \"real\");\n var imagArray = imaginaryAxis.makeCalcdata(trace, \"imag\");\n var len = trace._length;\n var cd = new Array(len);\n for (var i = 0; i < len; i++) {\n var real = realArray[i];\n var imag = imagArray[i];\n var cdi = cd[i] = {};\n if (isNumeric(real) && isNumeric(imag)) {\n cdi.real = real;\n cdi.imag = imag;\n } else {\n cdi.real = BADNUM;\n }\n }\n calcMarkerSize(trace, len);\n calcColorscale(gd, trace);\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/scattersmith/plot.js\n var require_plot39 = __commonJS({\n \"src/traces/scattersmith/plot.js\"(exports, module) {\n \"use strict\";\n var scatterPlot = require_plot();\n var BADNUM = require_numerical().BADNUM;\n var helpers = require_helpers20();\n var smith = helpers.smith;\n module.exports = function plot(gd, subplot, moduleCalcData) {\n var mlayer = subplot.layers.frontplot.select(\"g.scatterlayer\");\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n var plotinfo = {\n xaxis: xa,\n yaxis: ya,\n plot: subplot.framework,\n layerClipId: subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null\n };\n for (var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n for (var j = 0; j < cdi.length; j++) {\n if (j === 0) {\n cdi[0].trace._xA = xa;\n cdi[0].trace._yA = ya;\n }\n var cd = cdi[j];\n var real = cd.real;\n if (real === BADNUM) {\n cd.x = cd.y = BADNUM;\n } else {\n var t = smith([real, cd.imag]);\n cd.x = t[0];\n cd.y = t[1];\n }\n }\n }\n scatterPlot(gd, plotinfo, moduleCalcData, mlayer);\n };\n }\n });\n\n // src/traces/scattersmith/hover.js\n var require_hover27 = __commonJS({\n \"src/traces/scattersmith/hover.js\"(exports, module) {\n \"use strict\";\n var scatterHover = require_hover2();\n function hoverPoints(pointData, xval, yval, hovermode) {\n var scatterPointData = scatterHover(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n return scatterPointData;\n }\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n if (!subplot.isPtInside(cdi)) return;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n newPointData.hovertemplate = trace.hovertemplate;\n return scatterPointData;\n }\n function makeHoverPointText(cdi, trace, subplot, pointData) {\n var realAxis = subplot.radialAxis;\n var imaginaryAxis = subplot.angularAxis;\n realAxis._hovertitle = \"real\";\n imaginaryAxis._hovertitle = \"imag\";\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(cdi, trace, fullLayout);\n pointData.realLabel = labels.realLabel;\n pointData.imagLabel = labels.imagLabel;\n var hoverinfo = cdi.hi || trace.hoverinfo;\n var text = [];\n function textPart(ax, val) {\n text.push(ax._hovertitle + \": \" + val);\n }\n if (!trace.hovertemplate) {\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"real\", \"imag\", \"text\"];\n if (parts.indexOf(\"real\") !== -1) textPart(realAxis, pointData.realLabel);\n if (parts.indexOf(\"imag\") !== -1) textPart(imaginaryAxis, pointData.imagLabel);\n if (parts.indexOf(\"text\") !== -1 && pointData.text) {\n text.push(pointData.text);\n delete pointData.text;\n }\n pointData.extraText = text.join(\"
\");\n }\n }\n module.exports = {\n hoverPoints,\n makeHoverPointText\n };\n }\n });\n\n // src/traces/scattersmith/index.js\n var require_scattersmith = __commonJS({\n \"src/traces/scattersmith/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"scattersmith\",\n basePlotModule: require_smith(),\n categories: [\"smith\", \"symbols\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes71(),\n supplyDefaults: require_defaults67(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels10(),\n calc: require_calc46(),\n plot: require_plot39(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover27().hoverPoints,\n selectPoints: require_select2(),\n meta: {}\n };\n }\n });\n\n // lib/scattersmith.js\n var require_scattersmith2 = __commonJS({\n \"lib/scattersmith.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattersmith();\n }\n });\n\n // node_modules/world-calendars/dist/main.js\n var require_main = __commonJS({\n \"node_modules/world-calendars/dist/main.js\"(exports, module) {\n var assign = require_object_assign();\n function Calendars() {\n this.regionalOptions = [];\n this.regionalOptions[\"\"] = {\n invalidCalendar: \"Calendar {0} not found\",\n invalidDate: \"Invalid {0} date\",\n invalidMonth: \"Invalid {0} month\",\n invalidYear: \"Invalid {0} year\",\n differentCalendars: \"Cannot mix {0} and {1} dates\"\n };\n this.local = this.regionalOptions[\"\"];\n this.calendars = {};\n this._localCals = {};\n }\n assign(Calendars.prototype, {\n /** Obtain a calendar implementation and localisation.\n @memberof Calendars\n @param [name='gregorian'] {string} The name of the calendar, e.g. 'gregorian', 'persian', 'islamic'.\n @param [language=''] {string} The language code to use for localisation (default is English).\n @return {Calendar} The calendar and localisation.\n @throws Error if calendar not found. */\n instance: function(name2, language) {\n name2 = (name2 || \"gregorian\").toLowerCase();\n language = language || \"\";\n var cal = this._localCals[name2 + \"-\" + language];\n if (!cal && this.calendars[name2]) {\n cal = new this.calendars[name2](language);\n this._localCals[name2 + \"-\" + language] = cal;\n }\n if (!cal) {\n throw (this.local.invalidCalendar || this.regionalOptions[\"\"].invalidCalendar).replace(/\\{0\\}/, name2);\n }\n return cal;\n },\n /** Create a new date - for today if no other parameters given.\n @memberof Calendars\n @param year {CDate|number} The date to copy or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @param [calendar='gregorian'] {BaseCalendar|string} The underlying calendar or the name of the calendar.\n @param [language=''] {string} The language to use for localisation (default English).\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day, calendar, language) {\n calendar = (year != null && year.year ? year.calendar() : typeof calendar === \"string\" ? this.instance(calendar, language) : calendar) || this.instance();\n return calendar.newDate(year, month, day);\n },\n /** A simple digit substitution function for localising numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @return {function} The substitution function. */\n substituteDigits: function(digits) {\n return function(value) {\n return (value + \"\").replace(/[0-9]/g, function(digit) {\n return digits[digit];\n });\n };\n },\n /** Digit substitution function for localising Chinese style numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @param powers {string[]} The characters denoting powers of 10, i.e. 1, 10, 100, 1000.\n @return {function} The substitution function. */\n substituteChineseDigits: function(digits, powers) {\n return function(value) {\n var localNumber = \"\";\n var power = 0;\n while (value > 0) {\n var units = value % 10;\n localNumber = (units === 0 ? \"\" : digits[units] + powers[power]) + localNumber;\n power++;\n value = Math.floor(value / 10);\n }\n if (localNumber.indexOf(digits[1] + powers[1]) === 0) {\n localNumber = localNumber.substr(1);\n }\n return localNumber || digits[0];\n };\n }\n });\n function CDate(calendar, year, month, day) {\n this._calendar = calendar;\n this._year = year;\n this._month = month;\n this._day = day;\n if (this._calendar._validateLevel === 0 && !this._calendar.isValid(this._year, this._month, this._day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate).replace(/\\{0\\}/, this._calendar.local.name);\n }\n }\n function pad(value, length) {\n value = \"\" + value;\n return \"000000\".substring(0, length - value.length) + value;\n }\n assign(CDate.prototype, {\n /** Create a new date.\n @memberof CDate\n @param [year] {CDate|number} The date to copy or the year for the date (default this date).\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day) {\n return this._calendar.newDate(year == null ? this : year, month, day);\n },\n /** Set or retrieve the year for this date.\n @memberof CDate\n @param [year] {number} The year for the date.\n @return {number|CDate} The date's year (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n year: function(year) {\n return arguments.length === 0 ? this._year : this.set(year, \"y\");\n },\n /** Set or retrieve the month for this date.\n @memberof CDate\n @param [month] {number} The month for the date.\n @return {number|CDate} The date's month (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n month: function(month) {\n return arguments.length === 0 ? this._month : this.set(month, \"m\");\n },\n /** Set or retrieve the day for this date.\n @memberof CDate\n @param [day] {number} The day for the date.\n @return {number|CData} The date's day (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n day: function(day) {\n return arguments.length === 0 ? this._day : this.set(day, \"d\");\n },\n /** Set new values for this date.\n @memberof CDate\n @param year {number} The year for the date.\n @param month {number} The month for the date.\n @param day {number} The day for the date.\n @return {CDate} The updated date.\n @throws Error if an invalid date. */\n date: function(year, month, day) {\n if (!this._calendar.isValid(year, month, day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate).replace(/\\{0\\}/, this._calendar.local.name);\n }\n this._year = year;\n this._month = month;\n this._day = day;\n return this;\n },\n /** Determine whether this date is in a leap year.\n @memberof CDate\n @return {boolean} true if this is a leap year, false if not. */\n leapYear: function() {\n return this._calendar.leapYear(this);\n },\n /** Retrieve the epoch designator for this date, e.g. BCE or CE.\n @memberof CDate\n @return {string} The current epoch. */\n epoch: function() {\n return this._calendar.epoch(this);\n },\n /** Format the year, if not a simple sequential number.\n @memberof CDate\n @return {string} The formatted year. */\n formatYear: function() {\n return this._calendar.formatYear(this);\n },\n /** Retrieve the month of the year for this date,\n i.e. the month's position within a numbered year.\n @memberof CDate\n @return {number} The month of the year: minMonth to months per year. */\n monthOfYear: function() {\n return this._calendar.monthOfYear(this);\n },\n /** Retrieve the week of the year for this date.\n @memberof CDate\n @return {number} The week of the year: 1 to weeks per year. */\n weekOfYear: function() {\n return this._calendar.weekOfYear(this);\n },\n /** Retrieve the number of days in the year for this date.\n @memberof CDate\n @return {number} The number of days in this year. */\n daysInYear: function() {\n return this._calendar.daysInYear(this);\n },\n /** Retrieve the day of the year for this date.\n @memberof CDate\n @return {number} The day of the year: 1 to days per year. */\n dayOfYear: function() {\n return this._calendar.dayOfYear(this);\n },\n /** Retrieve the number of days in the month for this date.\n @memberof CDate\n @return {number} The number of days. */\n daysInMonth: function() {\n return this._calendar.daysInMonth(this);\n },\n /** Retrieve the day of the week for this date.\n @memberof CDate\n @return {number} The day of the week: 0 to number of days - 1. */\n dayOfWeek: function() {\n return this._calendar.dayOfWeek(this);\n },\n /** Determine whether this date is a week day.\n @memberof CDate\n @return {boolean} true if a week day, false if not. */\n weekDay: function() {\n return this._calendar.weekDay(this);\n },\n /** Retrieve additional information about this date.\n @memberof CDate\n @return {object} Additional information - contents depends on calendar. */\n extraInfo: function() {\n return this._calendar.extraInfo(this);\n },\n /** Add period(s) to a date.\n @memberof CDate\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n add: function(offset, period) {\n return this._calendar.add(this, offset, period);\n },\n /** Set a portion of the date.\n @memberof CDate\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if not a valid date. */\n set: function(value, period) {\n return this._calendar.set(this, value, period);\n },\n /** Compare this date to another date.\n @memberof CDate\n @param date {CDate} The other date.\n @return {number} -1 if this date is before the other date,\n 0 if they are equal, or +1 if this date is after the other date. */\n compareTo: function(date) {\n if (this._calendar.name !== date._calendar.name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[\"\"].differentCalendars).replace(/\\{0\\}/, this._calendar.local.name).replace(/\\{1\\}/, date._calendar.local.name);\n }\n var c = this._year !== date._year ? this._year - date._year : this._month !== date._month ? this.monthOfYear() - date.monthOfYear() : this._day - date._day;\n return c === 0 ? 0 : c < 0 ? -1 : 1;\n },\n /** Retrieve the calendar backing this date.\n @memberof CDate\n @return {BaseCalendar} The calendar implementation. */\n calendar: function() {\n return this._calendar;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof CDate\n @return {number} The equivalent Julian date. */\n toJD: function() {\n return this._calendar.toJD(this);\n },\n /** Create a new date from a Julian date.\n @memberof CDate\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n return this._calendar.fromJD(jd);\n },\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @return {Date} The equivalent JavaScript date. */\n toJSDate: function() {\n return this._calendar.toJSDate(this);\n },\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this._calendar.fromJSDate(jsd);\n },\n /** Convert to a string for display.\n @memberof CDate\n @return {string} This date as a string. */\n toString: function() {\n return (this.year() < 0 ? \"-\" : \"\") + pad(Math.abs(this.year()), 4) + \"-\" + pad(this.month(), 2) + \"-\" + pad(this.day(), 2);\n }\n });\n function BaseCalendar() {\n this.shortYearCutoff = \"+10\";\n }\n assign(BaseCalendar.prototype, {\n _validateLevel: 0,\n // \"Stack\" to turn validation on/off\n /** Create a new date within this calendar - today if no parameters given.\n @memberof BaseCalendar\n @param year {CDate|number} The date to duplicate or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if not a valid date or a different calendar used. */\n newDate: function(year, month, day) {\n if (year == null) {\n return this.today();\n }\n if (year.year) {\n this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n day = year.day();\n month = year.month();\n year = year.year();\n }\n return new CDate(this, year, month, day);\n },\n /** Create a new date for today.\n @memberof BaseCalendar\n @return {CDate} Today's date. */\n today: function() {\n return this.fromJSDate(/* @__PURE__ */ new Date());\n },\n /** Retrieve the epoch designator for this date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {string} The current epoch.\n @throws Error if an invalid year or a different calendar used. */\n epoch: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n return date.year() < 0 ? this.local.epochs[0] : this.local.epochs[1];\n },\n /** Format the year, if not a simple sequential number\n @memberof BaseCalendar\n @param year {CDate|number} The date to format or the year to format.\n @return {string} The formatted year.\n @throws Error if an invalid year or a different calendar used. */\n formatYear: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n return (date.year() < 0 ? \"-\" : \"\") + pad(Math.abs(date.year()), 4);\n },\n /** Retrieve the number of months in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n return 12;\n },\n /** Calculate the month's ordinal position within the year -\n for those calendars that don't start at month 1!\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param month {number} The month to examine.\n @return {number} The ordinal position, starting from minMonth.\n @throws Error if an invalid year/month or a different calendar used. */\n monthOfYear: function(year, month) {\n var date = this._validate(\n year,\n month,\n this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[\"\"].invalidMonth\n );\n return (date.month() + this.monthsInYear(date) - this.firstMonth) % this.monthsInYear(date) + this.minMonth;\n },\n /** Calculate actual month from ordinal position, starting from minMonth.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param ord {number} The month's ordinal position.\n @return {number} The month's number.\n @throws Error if an invalid year/month. */\n fromMonthOfYear: function(year, ord) {\n var m = (ord + this.firstMonth - 2 * this.minMonth) % this.monthsInYear(year) + this.minMonth;\n this._validate(\n year,\n m,\n this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[\"\"].invalidMonth\n );\n return m;\n },\n /** Retrieve the number of days in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n return this.leapYear(date) ? 366 : 365;\n },\n /** Retrieve the day of the year for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The day of the year.\n @throws Error if an invalid date or a different calendar used. */\n dayOfYear: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return date.toJD() - this.newDate(\n date.year(),\n this.fromMonthOfYear(date.year(), this.minMonth),\n this.minDay\n ).toJD() + 1;\n },\n /** Retrieve the number of days in a week.\n @memberof BaseCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 7;\n },\n /** Retrieve the day of the week for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return (Math.floor(this.toJD(date)) + 2) % this.daysInWeek();\n },\n /** Retrieve additional information about a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return {};\n },\n /** Add period(s) to a date.\n Cater for no year zero.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if a different calendar used. */\n add: function(date, offset, period) {\n this._validate(\n date,\n this.minMonth,\n this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return this._correctAdd(date, this._add(date, offset, period), offset, period);\n },\n /** Add period(s) to a date.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _add: function(date, offset, period) {\n this._validateLevel++;\n if (period === \"d\" || period === \"w\") {\n var jd = date.toJD() + offset * (period === \"w\" ? this.daysInWeek() : 1);\n var d = date.calendar().fromJD(jd);\n this._validateLevel--;\n return [d.year(), d.month(), d.day()];\n }\n try {\n var y = date.year() + (period === \"y\" ? offset : 0);\n var m = date.monthOfYear() + (period === \"m\" ? offset : 0);\n var d = date.day();\n var resyncYearMonth = function(calendar) {\n while (m < calendar.minMonth) {\n y--;\n m += calendar.monthsInYear(y);\n }\n var yearMonths = calendar.monthsInYear(y);\n while (m > yearMonths - 1 + calendar.minMonth) {\n y++;\n m -= yearMonths;\n yearMonths = calendar.monthsInYear(y);\n }\n };\n if (period === \"y\") {\n if (date.month() !== this.fromMonthOfYear(y, m)) {\n m = this.newDate(y, date.month(), this.minDay).monthOfYear();\n }\n m = Math.min(m, this.monthsInYear(y));\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n } else if (period === \"m\") {\n resyncYearMonth(this);\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n }\n var ymd = [y, this.fromMonthOfYear(y, m), d];\n this._validateLevel--;\n return ymd;\n } catch (e) {\n this._validateLevel--;\n throw e;\n }\n },\n /** Correct a candidate date after adding period(s) to a date.\n Handle no year zero if necessary.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param ymd {number[]} The added date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _correctAdd: function(date, ymd, offset, period) {\n if (!this.hasYearZero && (period === \"y\" || period === \"m\")) {\n if (ymd[0] === 0 || // In year zero\n date.year() > 0 !== ymd[0] > 0) {\n var adj = {\n y: [1, 1, \"y\"],\n m: [1, this.monthsInYear(-1), \"m\"],\n w: [this.daysInWeek(), this.daysInYear(-1), \"d\"],\n d: [1, this.daysInYear(-1), \"d\"]\n }[period];\n var dir = offset < 0 ? -1 : 1;\n ymd = this._add(date, offset * adj[0] + dir * adj[1], adj[2]);\n }\n }\n return date.date(ymd[0], ymd[1], ymd[2]);\n },\n /** Set a portion of the date.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if an invalid date or a different calendar used. */\n set: function(date, value, period) {\n this._validate(\n date,\n this.minMonth,\n this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n var y = period === \"y\" ? value : date.year();\n var m = period === \"m\" ? value : date.month();\n var d = period === \"d\" ? value : date.day();\n if (period === \"y\" || period === \"m\") {\n d = Math.min(d, this.daysInMonth(y, m));\n }\n return date.date(y, m, d);\n },\n /** Determine whether a date is valid for this calendar.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n this._validateLevel++;\n var valid = this.hasYearZero || year !== 0;\n if (valid) {\n var date = this.newDate(year, month, this.minDay);\n valid = month >= this.minMonth && month - this.minMonth < this.monthsInYear(date) && (day >= this.minDay && day - this.minDay < this.daysInMonth(date));\n }\n this._validateLevel--;\n return valid;\n },\n /** Convert the date to a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return _exports.instance().fromJD(this.toJD(date)).toJSDate();\n },\n /** Convert the date from a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param jsd {Date} The JavaScript date.\n @return {CDate} The equivalent calendar date. */\n fromJSDate: function(jsd) {\n return this.fromJD(_exports.instance().fromJSDate(jsd).toJD());\n },\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof BaseCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param [month] {number} The month to validate.\n @param [day] {number} The day to validate.\n @param error {string} Rrror message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n if (year.year) {\n if (this._validateLevel === 0 && this.name !== year.calendar().name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[\"\"].differentCalendars).replace(/\\{0\\}/, this.local.name).replace(/\\{1\\}/, year.calendar().local.name);\n }\n return year;\n }\n try {\n this._validateLevel++;\n if (this._validateLevel === 1 && !this.isValid(year, month, day)) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n var date = this.newDate(year, month, day);\n this._validateLevel--;\n return date;\n } catch (e) {\n this._validateLevel--;\n throw e;\n }\n }\n });\n function GregorianCalendar(language) {\n this.local = this.regionalOptions[language] || this.regionalOptions[\"\"];\n }\n GregorianCalendar.prototype = new BaseCalendar();\n assign(GregorianCalendar.prototype, {\n /** The calendar name.\n @memberof GregorianCalendar */\n name: \"Gregorian\",\n /** Julian date of start of Gregorian epoch: 1 January 0001 CE.\n @memberof GregorianCalendar */\n jdEpoch: 17214255e-1,\n /** Days per month in a common year.\n @memberof GregorianCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof GregorianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof GregorianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof GregorianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof GregorianCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof GregorianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on
formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Gregorian\",\n epochs: [\"BCE\", \"CE\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"mm/dd/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n var year = date.year() + (date.year() < 0 ? 1 : 0);\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year, starting from 1.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(4 - (checkDate.dayOfWeek() || 7), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(\n year,\n month,\n this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[\"\"].invalidMonth\n );\n return this.daysPerMonth[date.month() - 1] + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n year = date.year();\n month = date.month();\n day = date.day();\n if (year < 0) {\n year++;\n }\n if (month < 3) {\n month += 12;\n year--;\n }\n var a = Math.floor(year / 100);\n var b = 2 - a + Math.floor(a / 4);\n return Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day + b - 1524.5;\n },\n /** Create a new date from a Julian date.\n @memberof GregorianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var z = Math.floor(jd + 0.5);\n var a = Math.floor((z - 186721625e-2) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var day = b - d - Math.floor(e * 30.6001);\n var month = e - (e > 13.5 ? 13 : 1);\n var year = c - (month > 2.5 ? 4716 : 4715);\n if (year <= 0) {\n year--;\n }\n return this.newDate(year, month, day);\n },\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n var jsd = new Date(date.year(), date.month() - 1, date.day());\n jsd.setHours(0);\n jsd.setMinutes(0);\n jsd.setSeconds(0);\n jsd.setMilliseconds(0);\n jsd.setHours(jsd.getHours() > 12 ? jsd.getHours() + 2 : 0);\n return jsd;\n },\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this.newDate(jsd.getFullYear(), jsd.getMonth() + 1, jsd.getDate());\n }\n });\n var _exports = module.exports = new Calendars();\n _exports.cdate = CDate;\n _exports.baseCalendar = BaseCalendar;\n _exports.calendars.gregorian = GregorianCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/plus.js\n var require_plus = __commonJS({\n \"node_modules/world-calendars/dist/plus.js\"() {\n var assign = require_object_assign();\n var main = require_main();\n assign(main.regionalOptions[\"\"], {\n invalidArguments: \"Invalid arguments\",\n invalidFormat: \"Cannot format a date from another calendar\",\n missingNumberAt: \"Missing number at position {0}\",\n unknownNameAt: \"Unknown name at position {0}\",\n unexpectedLiteralAt: \"Unexpected literal at position {0}\",\n unexpectedText: \"Additional text found at end\"\n });\n main.local = main.regionalOptions[\"\"];\n assign(main.cdate.prototype, {\n /** Format this date.\n Found in the jquery.calendars.plus.js module.\n @memberof CDate\n @param [format] {string} The date format to use (see formatDate).\n @param [settings] {object} Options for the formatDate function.\n @return {string} The formatted date. */\n formatDate: function(format, settings) {\n if (typeof format !== \"string\") {\n settings = format;\n format = \"\";\n }\n return this._calendar.formatDate(format || \"\", this, settings);\n }\n });\n assign(main.baseCalendar.prototype, {\n UNIX_EPOCH: main.instance().newDate(1970, 1, 1).toJD(),\n SECS_PER_DAY: 24 * 60 * 60,\n TICKS_EPOCH: main.instance().jdEpoch,\n // 1 January 0001 CE\n TICKS_PER_DAY: 24 * 60 * 60 * 1e7,\n /** Date form for ATOM (RFC 3339/ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ATOM: \"yyyy-mm-dd\",\n /** Date form for cookies.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n COOKIE: \"D, dd M yyyy\",\n /** Date form for full date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n FULL: \"DD, MM d, yyyy\",\n /** Date form for ISO 8601.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ISO_8601: \"yyyy-mm-dd\",\n /** Date form for Julian date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n JULIAN: \"J\",\n /** Date form for RFC 822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_822: \"D, d M yy\",\n /** Date form for RFC 850.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_850: \"DD, dd-M-yy\",\n /** Date form for RFC 1036.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1036: \"D, d M yy\",\n /** Date form for RFC 1123.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1123: \"D, d M yyyy\",\n /** Date form for RFC 2822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_2822: \"D, d M yyyy\",\n /** Date form for RSS (RFC 822).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RSS: \"D, d M yy\",\n /** Date form for Windows ticks.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TICKS: \"!\",\n /** Date form for Unix timestamp.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TIMESTAMP: \"@\",\n /** Date form for W3c (ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n W3C: \"yyyy-mm-dd\",\n /** Format a date object into a string value.\n The format can be combinations of the following:\n

    \n
  • d - day of month (no leading zero)
  • \n
  • dd - day of month (two digit)
  • \n
  • o - day of year (no leading zeros)
  • \n
  • oo - day of year (three digit)
  • \n
  • D - day name short
  • \n
  • DD - day name long
  • \n
  • w - week of year (no leading zero)
  • \n
  • ww - week of year (two digit)
  • \n
  • m - month of year (no leading zero)
  • \n
  • mm - month of year (two digit)
  • \n
  • M - month name short
  • \n
  • MM - month name long
  • \n
  • yy - year (two digit)
  • \n
  • yyyy - year (four digit)
  • \n
  • YYYY - formatted year
  • \n
  • J - Julian date (days since January 1, 4713 BCE Greenwich noon)
  • \n
  • @ - Unix timestamp (s since 01/01/1970)
  • \n
  • ! - Windows ticks (100ns since 01/01/0001)
  • \n
  • '...' - literal text
  • \n
  • '' - single quote
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param [format] {string} The desired format of the date (defaults to calendar format).\n @param date {CDate} The date value to format.\n @param [settings] {object} Addition options, whose attributes include:\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @property [calculateWeek] {CalendarsPickerCalculateWeek} Function that determines week of the year.\n @property [localNumbers=false] {boolean} true to localise numbers (if available),\n false to use normal Arabic numerals.\n @return {string} The date in the above format.\n @throws Errors if the date is from a different calendar. */\n formatDate: function(format, date, settings) {\n if (typeof format !== \"string\") {\n settings = date;\n date = format;\n format = \"\";\n }\n if (!date) {\n return \"\";\n }\n if (date.calendar() !== this) {\n throw main.local.invalidFormat || main.regionalOptions[\"\"].invalidFormat;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var calculateWeek = settings.calculateWeek || this.local.calculateWeek;\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n var formatNumber = function(match, value, len, step) {\n var num = \"\" + value;\n if (doubled(match, step)) {\n while (num.length < len) {\n num = \"0\" + num;\n }\n }\n return num;\n };\n var formatName = function(match, value, shortNames, longNames) {\n return doubled(match) ? longNames[value] : shortNames[value];\n };\n var calendar = this;\n var formatMonth = function(date2) {\n return typeof monthNumbers === \"function\" ? monthNumbers.call(calendar, date2, doubled(\"m\")) : localiseNumbers(formatNumber(\"m\", date2.month(), 2));\n };\n var formatMonthName = function(date2, useLongName) {\n if (useLongName) {\n return typeof monthNames === \"function\" ? monthNames.call(calendar, date2) : monthNames[date2.month() - calendar.minMonth];\n } else {\n return typeof monthNamesShort === \"function\" ? monthNamesShort.call(calendar, date2) : monthNamesShort[date2.month() - calendar.minMonth];\n }\n };\n var digits = this.local.digits;\n var localiseNumbers = function(value) {\n return settings.localNumbers && digits ? digits(value) : value;\n };\n var output = \"\";\n var literal = false;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n } else {\n output += format.charAt(iFormat);\n }\n } else {\n switch (format.charAt(iFormat)) {\n case \"d\":\n output += localiseNumbers(formatNumber(\"d\", date.day(), 2));\n break;\n case \"D\":\n output += formatName(\n \"D\",\n date.dayOfWeek(),\n dayNamesShort,\n dayNames\n );\n break;\n case \"o\":\n output += formatNumber(\"o\", date.dayOfYear(), 3);\n break;\n case \"w\":\n output += formatNumber(\"w\", date.weekOfYear(), 2);\n break;\n case \"m\":\n output += formatMonth(date);\n break;\n case \"M\":\n output += formatMonthName(date, doubled(\"M\"));\n break;\n case \"y\":\n output += doubled(\"y\", 2) ? date.year() : (date.year() % 100 < 10 ? \"0\" : \"\") + date.year() % 100;\n break;\n case \"Y\":\n doubled(\"Y\", 2);\n output += date.formatYear();\n break;\n case \"J\":\n output += date.toJD();\n break;\n case \"@\":\n output += (date.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY;\n break;\n case \"!\":\n output += (date.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY;\n break;\n case \"'\":\n if (doubled(\"'\")) {\n output += \"'\";\n } else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n return output;\n },\n /** Parse a string value into a date object.\n See formatDate for the possible formats, plus:\n
    \n
  • * - ignore rest of string
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param format {string} The expected format of the date ('' for default calendar format).\n @param value {string} The date in the above format.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The extracted date value or null if value is blank.\n @throws Errors if the format and/or value are missing,\n if the value doesn't match the format, or if the date is invalid. */\n parseDate: function(format, value, settings) {\n if (value == null) {\n throw main.local.invalidArguments || main.regionalOptions[\"\"].invalidArguments;\n }\n value = typeof value === \"object\" ? value.toString() : value + \"\";\n if (value === \"\") {\n return null;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var shortYearCutoff = settings.shortYearCutoff || this.shortYearCutoff;\n shortYearCutoff = typeof shortYearCutoff !== \"string\" ? shortYearCutoff : this.today().year() % 100 + parseInt(shortYearCutoff, 10);\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var parseMonth = settings.parseMonth || this.local.parseMonth;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var jd = -1;\n var year = -1;\n var month = -1;\n var day = -1;\n var doy = -1;\n var shortYear = false;\n var literal = false;\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n var getNumber = function(match, step) {\n var isDoubled = doubled(match, step);\n var size = [2, 3, isDoubled ? 4 : 2, isDoubled ? 4 : 2, 10, 11, 20][\"oyYJ@!\".indexOf(match) + 1];\n var digits = new RegExp(\"^-?\\\\d{1,\" + size + \"}\");\n var num = value.substring(iValue).match(digits);\n if (!num) {\n throw (main.local.missingNumberAt || main.regionalOptions[\"\"].missingNumberAt).replace(/\\{0\\}/, iValue);\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n };\n var calendar = this;\n var getMonthNumber = function() {\n if (typeof monthNumbers === \"function\") {\n doubled(\"m\");\n var month2 = monthNumbers.call(calendar, value.substring(iValue));\n iValue += month2.length;\n return month2;\n }\n return getNumber(\"m\");\n };\n var getName = function(match, shortNames, longNames, step) {\n var names2 = doubled(match, step) ? longNames : shortNames;\n for (var i = 0; i < names2.length; i++) {\n if (value.substr(iValue, names2[i].length).toLowerCase() === names2[i].toLowerCase()) {\n iValue += names2[i].length;\n return i + calendar.minMonth;\n }\n }\n throw (main.local.unknownNameAt || main.regionalOptions[\"\"].unknownNameAt).replace(/\\{0\\}/, iValue);\n };\n var getMonthName = function() {\n if (typeof monthNames === \"function\") {\n var month2 = doubled(\"M\") ? monthNames.call(calendar, value.substring(iValue)) : monthNamesShort.call(calendar, value.substring(iValue));\n iValue += month2.length;\n return month2;\n }\n return getName(\"M\", monthNamesShort, monthNames);\n };\n var checkLiteral = function() {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw (main.local.unexpectedLiteralAt || main.regionalOptions[\"\"].unexpectedLiteralAt).replace(/\\{0\\}/, iValue);\n }\n iValue++;\n };\n var iValue = 0;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n } else {\n checkLiteral();\n }\n } else {\n switch (format.charAt(iFormat)) {\n case \"d\":\n day = getNumber(\"d\");\n break;\n case \"D\":\n getName(\"D\", dayNamesShort, dayNames);\n break;\n case \"o\":\n doy = getNumber(\"o\");\n break;\n case \"w\":\n getNumber(\"w\");\n break;\n case \"m\":\n month = getMonthNumber();\n break;\n case \"M\":\n month = getMonthName();\n break;\n case \"y\":\n var iSave = iFormat;\n shortYear = !doubled(\"y\", 2);\n iFormat = iSave;\n year = getNumber(\"y\", 2);\n break;\n case \"Y\":\n year = getNumber(\"Y\", 2);\n break;\n case \"J\":\n jd = getNumber(\"J\") + 0.5;\n if (value.charAt(iValue) === \".\") {\n iValue++;\n getNumber(\"J\");\n }\n break;\n case \"@\":\n jd = getNumber(\"@\") / this.SECS_PER_DAY + this.UNIX_EPOCH;\n break;\n case \"!\":\n jd = getNumber(\"!\") / this.TICKS_PER_DAY + this.TICKS_EPOCH;\n break;\n case \"*\":\n iValue = value.length;\n break;\n case \"'\":\n if (doubled(\"'\")) {\n checkLiteral();\n } else {\n literal = true;\n }\n break;\n default:\n checkLiteral();\n }\n }\n }\n if (iValue < value.length) {\n throw main.local.unexpectedText || main.regionalOptions[\"\"].unexpectedText;\n }\n if (year === -1) {\n year = this.today().year();\n } else if (year < 100 && shortYear) {\n year += shortYearCutoff === -1 ? 1900 : this.today().year() - this.today().year() % 100 - (year <= shortYearCutoff ? 0 : 100);\n }\n if (typeof month === \"string\") {\n month = parseMonth.call(this, year, month);\n }\n if (doy > -1) {\n month = 1;\n day = doy;\n for (var dim = this.daysInMonth(year, month); day > dim; dim = this.daysInMonth(year, month)) {\n month++;\n day -= dim;\n }\n }\n return jd > -1 ? this.fromJD(jd) : this.newDate(year, month, day);\n },\n /** A date may be specified as an exact value or a relative one.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param dateSpec {CDate|number|string} The date as an object or string in the given format or\n an offset - numeric days from today, or string amounts and periods, e.g. '+1m +2w'.\n @param defaultDate {CDate} The date to use if no other supplied, may be null.\n @param currentDate {CDate} The current date as a possible basis for relative dates,\n if null today is used (optional)\n @param [dateFormat] {string} The expected date format - see formatDate.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The decoded date. */\n determineDate: function(dateSpec, defaultDate, currentDate, dateFormat, settings) {\n if (currentDate && typeof currentDate !== \"object\") {\n settings = dateFormat;\n dateFormat = currentDate;\n currentDate = null;\n }\n if (typeof dateFormat !== \"string\") {\n settings = dateFormat;\n dateFormat = \"\";\n }\n var calendar = this;\n var offsetString = function(offset) {\n try {\n return calendar.parseDate(dateFormat, offset, settings);\n } catch (e) {\n }\n offset = offset.toLowerCase();\n var date = (offset.match(/^c/) && currentDate ? currentDate.newDate() : null) || calendar.today();\n var pattern = /([+-]?[0-9]+)\\s*(d|w|m|y)?/g;\n var matches = pattern.exec(offset);\n while (matches) {\n date.add(parseInt(matches[1], 10), matches[2] || \"d\");\n matches = pattern.exec(offset);\n }\n return date;\n };\n defaultDate = defaultDate ? defaultDate.newDate() : null;\n dateSpec = dateSpec == null ? defaultDate : typeof dateSpec === \"string\" ? offsetString(dateSpec) : typeof dateSpec === \"number\" ? isNaN(dateSpec) || dateSpec === Infinity || dateSpec === -Infinity ? defaultDate : calendar.today().add(dateSpec, \"d\") : calendar.newDate(dateSpec);\n return dateSpec;\n }\n });\n }\n });\n\n // node_modules/world-calendars/dist/calendars/chinese.js\n var require_chinese = __commonJS({\n \"node_modules/world-calendars/dist/calendars/chinese.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n var gregorianCalendar = main.instance();\n function ChineseCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n ChineseCalendar.prototype = new main.baseCalendar();\n assign(ChineseCalendar.prototype, {\n /** The calendar name.\n @memberof ChineseCalendar */\n name: \"Chinese\",\n /** Julian date of start of Gregorian epoch: 1 January 0001 CE.\n @memberof GregorianCalendar */\n jdEpoch: 17214255e-1,\n /** true if has a year zero, false if not.\n @memberof ChineseCalendar */\n hasYearZero: false,\n /** The minimum month number.\n This calendar uses month indices to account for intercalary months. \n @memberof ChineseCalendar */\n minMonth: 0,\n /** The first month in the year.\n This calendar uses month indices to account for intercalary months. \n @memberof ChineseCalendar */\n firstMonth: 0,\n /** The minimum day number.\n @memberof ChineseCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof ChineseCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Chinese\",\n epochs: [\"BEC\", \"EC\"],\n monthNumbers: function(date, padded) {\n if (typeof date === \"string\") {\n var match = date.match(MONTH_NUMBER_REGEXP);\n return match ? match[0] : \"\";\n }\n var year = this._validateYear(date);\n var monthIndex = date.month();\n var month = \"\" + this.toChineseMonth(year, monthIndex);\n if (padded && month.length < 2) {\n month = \"0\" + month;\n }\n if (this.isIntercalaryMonth(year, monthIndex)) {\n month += \"i\";\n }\n return month;\n },\n monthNames: function(date) {\n if (typeof date === \"string\") {\n var match = date.match(MONTH_NAME_REGEXP);\n return match ? match[0] : \"\";\n }\n var year = this._validateYear(date);\n var monthIndex = date.month();\n var month = this.toChineseMonth(year, monthIndex);\n var monthName = [\n \"\\u4E00\\u6708\",\n \"\\u4E8C\\u6708\",\n \"\\u4E09\\u6708\",\n \"\\u56DB\\u6708\",\n \"\\u4E94\\u6708\",\n \"\\u516D\\u6708\",\n \"\\u4E03\\u6708\",\n \"\\u516B\\u6708\",\n \"\\u4E5D\\u6708\",\n \"\\u5341\\u6708\",\n \"\\u5341\\u4E00\\u6708\",\n \"\\u5341\\u4E8C\\u6708\"\n ][month - 1];\n if (this.isIntercalaryMonth(year, monthIndex)) {\n monthName = \"\\u95F0\" + monthName;\n }\n return monthName;\n },\n monthNamesShort: function(date) {\n if (typeof date === \"string\") {\n var match = date.match(MONTH_SHORT_NAME_REGEXP);\n return match ? match[0] : \"\";\n }\n var year = this._validateYear(date);\n var monthIndex = date.month();\n var month = this.toChineseMonth(year, monthIndex);\n var monthName = [\n \"\\u4E00\",\n \"\\u4E8C\",\n \"\\u4E09\",\n \"\\u56DB\",\n \"\\u4E94\",\n \"\\u516D\",\n \"\\u4E03\",\n \"\\u516B\",\n \"\\u4E5D\",\n \"\\u5341\",\n \"\\u5341\\u4E00\",\n \"\\u5341\\u4E8C\"\n ][month - 1];\n if (this.isIntercalaryMonth(year, monthIndex)) {\n monthName = \"\\u95F0\" + monthName;\n }\n return monthName;\n },\n parseMonth: function(year, monthString) {\n year = this._validateYear(year);\n var month = parseInt(monthString);\n var isIntercalary;\n if (!isNaN(month)) {\n var i = monthString[monthString.length - 1];\n isIntercalary = i === \"i\" || i === \"I\";\n } else {\n if (monthString[0] === \"\\u95F0\") {\n isIntercalary = true;\n monthString = monthString.substring(1);\n }\n if (monthString[monthString.length - 1] === \"\\u6708\") {\n monthString = monthString.substring(0, monthString.length - 1);\n }\n month = 1 + [\n \"\\u4E00\",\n \"\\u4E8C\",\n \"\\u4E09\",\n \"\\u56DB\",\n \"\\u4E94\",\n \"\\u516D\",\n \"\\u4E03\",\n \"\\u516B\",\n \"\\u4E5D\",\n \"\\u5341\",\n \"\\u5341\\u4E00\",\n \"\\u5341\\u4E8C\"\n ].indexOf(monthString);\n }\n var monthIndex = this.toMonthIndex(year, month, isIntercalary);\n return monthIndex;\n },\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 1,\n isRTL: false\n }\n },\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof BaseCalendar\n @private\n @param year {CDate|number} The date or the year to validate.\n @param error {string} Error message if invalid.\n @return {number} The year.\n @throws Error if year out of range. */\n _validateYear: function(year, error) {\n if (year.year) {\n year = year.year();\n }\n if (typeof year !== \"number\" || year < 1888 || year > 2111) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n return year;\n },\n /** Retrieve the month index (i.e. accounting for intercalary months).\n @memberof ChineseCalendar\n @param year {number} The year.\n @param month {number} The month (1 for first month).\n @param [isIntercalary=false] {boolean} If month is intercalary.\n @return {number} The month index (0 for first month).\n @throws Error if an invalid month/year or a different calendar used. */\n toMonthIndex: function(year, month, isIntercalary) {\n var intercalaryMonth = this.intercalaryMonth(year);\n var invalidIntercalaryMonth = isIntercalary && month !== intercalaryMonth;\n if (invalidIntercalaryMonth || month < 1 || month > 12) {\n throw main.local.invalidMonth.replace(/\\{0\\}/, this.local.name);\n }\n var monthIndex;\n if (!intercalaryMonth) {\n monthIndex = month - 1;\n } else if (!isIntercalary && month <= intercalaryMonth) {\n monthIndex = month - 1;\n } else {\n monthIndex = month;\n }\n return monthIndex;\n },\n /** Retrieve the month (i.e. accounting for intercalary months).\n @memberof ChineseCalendar\n @param year {CDate|number} The date or the year to examine.\n @param monthIndex {number} The month index (0 for first month).\n @return {number} The month (1 for first month).\n @throws Error if an invalid month/year or a different calendar used. */\n toChineseMonth: function(year, monthIndex) {\n if (year.year) {\n year = year.year();\n monthIndex = year.month();\n }\n var intercalaryMonth = this.intercalaryMonth(year);\n var maxMonthIndex = intercalaryMonth ? 12 : 11;\n if (monthIndex < 0 || monthIndex > maxMonthIndex) {\n throw main.local.invalidMonth.replace(/\\{0\\}/, this.local.name);\n }\n var month;\n if (!intercalaryMonth) {\n month = monthIndex + 1;\n } else if (monthIndex < intercalaryMonth) {\n month = monthIndex + 1;\n } else {\n month = monthIndex;\n }\n return month;\n },\n /** Determine the intercalary month of a year (if any).\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The intercalary month number, or 0 if none.\n @throws Error if an invalid year or a different calendar used. */\n intercalaryMonth: function(year) {\n year = this._validateYear(year);\n var monthDaysTable = LUNAR_MONTH_DAYS[year - LUNAR_MONTH_DAYS[0]];\n var intercalaryMonth = monthDaysTable >> 13;\n return intercalaryMonth;\n },\n /** Determine whether this date is an intercalary month.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [monthIndex] {number} The month index to examine.\n @return {boolean} true if this is an intercalary month, false if not.\n @throws Error if an invalid year or a different calendar used. */\n isIntercalaryMonth: function(year, monthIndex) {\n if (year.year) {\n year = year.year();\n monthIndex = year.month();\n }\n var intercalaryMonth = this.intercalaryMonth(year);\n return !!intercalaryMonth && intercalaryMonth === monthIndex;\n },\n /** Determine whether this date is in a leap year.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n return this.intercalaryMonth(year) !== 0;\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [monthIndex] {number} The month index to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, monthIndex, day) {\n var validatedYear = this._validateYear(year, main.local.invalidyear);\n var packedDate = CHINESE_NEW_YEAR[validatedYear - CHINESE_NEW_YEAR[0]];\n var y = packedDate >> 9 & 4095;\n var m = packedDate >> 5 & 15;\n var d = packedDate & 31;\n var firstThursday;\n firstThursday = gregorianCalendar.newDate(y, m, d);\n firstThursday.add(4 - (firstThursday.dayOfWeek() || 7), \"d\");\n var offset = this.toJD(year, monthIndex, day) - firstThursday.toJD();\n return 1 + Math.floor(offset / 7);\n },\n /** Retrieve the number of months in a year.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n return this.leapYear(year) ? 13 : 12;\n },\n /** Retrieve the number of days in a month.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [monthIndex] {number} The month index.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, monthIndex) {\n if (year.year) {\n monthIndex = year.month();\n year = year.year();\n }\n year = this._validateYear(year);\n var monthDaysTable = LUNAR_MONTH_DAYS[year - LUNAR_MONTH_DAYS[0]];\n var intercalaryMonth = monthDaysTable >> 13;\n var maxMonthIndex = intercalaryMonth ? 12 : 11;\n if (monthIndex > maxMonthIndex) {\n throw main.local.invalidMonth.replace(/\\{0\\}/, this.local.name);\n }\n var daysInMonth = monthDaysTable & 1 << 12 - monthIndex ? 30 : 29;\n return daysInMonth;\n },\n /** Determine whether this date is a week day.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [monthIndex] {number} The month index to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, monthIndex, day) {\n return (this.dayOfWeek(year, monthIndex, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [monthIndex] {number} The month index to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, monthIndex, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = this._validateYear(date.year());\n monthIndex = date.month();\n day = date.day();\n var isIntercalary = this.isIntercalaryMonth(year, monthIndex);\n var month = this.toChineseMonth(year, monthIndex);\n var solar = toSolar(year, month, day, isIntercalary);\n return gregorianCalendar.toJD(solar.year, solar.month, solar.day);\n },\n /** Create a new date from a Julian date.\n @memberof ChineseCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var lunar = toLunar(date.year(), date.month(), date.day());\n var monthIndex = this.toMonthIndex(\n lunar.year,\n lunar.month,\n lunar.isIntercalary\n );\n return this.newDate(lunar.year, monthIndex, lunar.day);\n },\n /** Create a new date from a string.\n @memberof ChineseCalendar\n @param dateString {string} String representing a Chinese date\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n fromString: function(dateString) {\n var match = dateString.match(DATE_REGEXP);\n var year = this._validateYear(+match[1]);\n var month = +match[2];\n var isIntercalary = !!match[3];\n var monthIndex = this.toMonthIndex(year, month, isIntercalary);\n var day = +match[4];\n return this.newDate(year, monthIndex, day);\n },\n /** Add period(s) to a date.\n Cater for no year zero.\n @memberof ChineseCalendar\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if a different calendar used. */\n add: function(date, offset, period) {\n var year = date.year();\n var monthIndex = date.month();\n var isIntercalary = this.isIntercalaryMonth(year, monthIndex);\n var month = this.toChineseMonth(year, monthIndex);\n var cdate = Object.getPrototypeOf(ChineseCalendar.prototype).add.call(this, date, offset, period);\n if (period === \"y\") {\n var resultYear = cdate.year();\n var resultMonthIndex = cdate.month();\n var resultCanBeIntercalaryMonth = this.isIntercalaryMonth(resultYear, month);\n var correctedMonthIndex = isIntercalary && resultCanBeIntercalaryMonth ? this.toMonthIndex(resultYear, month, true) : this.toMonthIndex(resultYear, month, false);\n if (correctedMonthIndex !== resultMonthIndex) {\n cdate.month(correctedMonthIndex);\n }\n }\n return cdate;\n }\n });\n var DATE_REGEXP = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)[-/](\\d?\\d)([iI]?)[-/](\\d?\\d)/m;\n var MONTH_NUMBER_REGEXP = /^\\d?\\d[iI]?/m;\n var MONTH_NAME_REGEXP = /^闰?十?[一二三四五六七八九]?月/m;\n var MONTH_SHORT_NAME_REGEXP = /^闰?十?[一二三四五六七八九]?/m;\n main.calendars.chinese = ChineseCalendar;\n var LUNAR_MONTH_DAYS = [\n 1887,\n 5780,\n 5802,\n 19157,\n 2742,\n 50359,\n 1198,\n 2646,\n 46378,\n 7466,\n 3412,\n 30122,\n 5482,\n 67949,\n 2396,\n 5294,\n 43597,\n 6732,\n 6954,\n 36181,\n 2772,\n 4954,\n 18781,\n 2396,\n 54427,\n 5274,\n 6730,\n 47781,\n 5800,\n 6868,\n 21210,\n 4790,\n 59703,\n 2350,\n 5270,\n 46667,\n 3402,\n 3496,\n 38325,\n 1388,\n 4782,\n 18735,\n 2350,\n 52374,\n 6804,\n 7498,\n 44457,\n 2906,\n 1388,\n 29294,\n 4700,\n 63789,\n 6442,\n 6804,\n 56138,\n 5802,\n 2772,\n 38235,\n 1210,\n 4698,\n 22827,\n 5418,\n 63125,\n 3476,\n 5802,\n 43701,\n 2484,\n 5302,\n 27223,\n 2646,\n 70954,\n 7466,\n 3412,\n 54698,\n 5482,\n 2412,\n 38062,\n 5294,\n 2636,\n 32038,\n 6954,\n 60245,\n 2772,\n 4826,\n 43357,\n 2394,\n 5274,\n 39501,\n 6730,\n 72357,\n 5800,\n 5844,\n 53978,\n 4790,\n 2358,\n 38039,\n 5270,\n 87627,\n 3402,\n 3496,\n 54708,\n 5484,\n 4782,\n 43311,\n 2350,\n 3222,\n 27978,\n 7498,\n 68965,\n 2904,\n 5484,\n 45677,\n 4700,\n 6444,\n 39573,\n 6804,\n 6986,\n 19285,\n 2772,\n 62811,\n 1210,\n 4698,\n 47403,\n 5418,\n 5780,\n 38570,\n 5546,\n 76469,\n 2420,\n 5302,\n 51799,\n 2646,\n 5414,\n 36501,\n 3412,\n 5546,\n 18869,\n 2412,\n 54446,\n 5276,\n 6732,\n 48422,\n 6822,\n 2900,\n 28010,\n 4826,\n 92509,\n 2394,\n 5274,\n 55883,\n 6730,\n 6820,\n 47956,\n 5812,\n 2778,\n 18779,\n 2358,\n 62615,\n 5270,\n 5450,\n 46757,\n 3492,\n 5556,\n 27318,\n 4718,\n 67887,\n 2350,\n 3222,\n 52554,\n 7498,\n 3428,\n 38252,\n 5468,\n 4700,\n 31022,\n 6444,\n 64149,\n 6804,\n 6986,\n 43861,\n 2772,\n 5338,\n 35421,\n 2650,\n 70955,\n 5418,\n 5780,\n 54954,\n 5546,\n 2740,\n 38074,\n 5302,\n 2646,\n 29991,\n 3366,\n 61011,\n 3412,\n 5546,\n 43445,\n 2412,\n 5294,\n 35406,\n 6732,\n 72998,\n 6820,\n 6996,\n 52586,\n 2778,\n 2396,\n 38045,\n 5274,\n 6698,\n 23333,\n 6820,\n 64338,\n 5812,\n 2746,\n 43355,\n 2358,\n 5270,\n 39499,\n 5450,\n 79525,\n 3492,\n 5548\n ];\n var CHINESE_NEW_YEAR = [\n 1887,\n 966732,\n 967231,\n 967733,\n 968265,\n 968766,\n 969297,\n 969798,\n 970298,\n 970829,\n 971330,\n 971830,\n 972362,\n 972863,\n 973395,\n 973896,\n 974397,\n 974928,\n 975428,\n 975929,\n 976461,\n 976962,\n 977462,\n 977994,\n 978494,\n 979026,\n 979526,\n 980026,\n 980558,\n 981059,\n 981559,\n 982091,\n 982593,\n 983124,\n 983624,\n 984124,\n 984656,\n 985157,\n 985656,\n 986189,\n 986690,\n 987191,\n 987722,\n 988222,\n 988753,\n 989254,\n 989754,\n 990286,\n 990788,\n 991288,\n 991819,\n 992319,\n 992851,\n 993352,\n 993851,\n 994383,\n 994885,\n 995385,\n 995917,\n 996418,\n 996918,\n 997450,\n 997949,\n 998481,\n 998982,\n 999483,\n 1000014,\n 1000515,\n 1001016,\n 1001548,\n 1002047,\n 1002578,\n 1003080,\n 1003580,\n 1004111,\n 1004613,\n 1005113,\n 1005645,\n 1006146,\n 1006645,\n 1007177,\n 1007678,\n 1008209,\n 1008710,\n 1009211,\n 1009743,\n 1010243,\n 1010743,\n 1011275,\n 1011775,\n 1012306,\n 1012807,\n 1013308,\n 1013840,\n 1014341,\n 1014841,\n 1015373,\n 1015874,\n 1016404,\n 1016905,\n 1017405,\n 1017937,\n 1018438,\n 1018939,\n 1019471,\n 1019972,\n 1020471,\n 1021002,\n 1021503,\n 1022035,\n 1022535,\n 1023036,\n 1023568,\n 1024069,\n 1024568,\n 1025100,\n 1025601,\n 1026102,\n 1026633,\n 1027133,\n 1027666,\n 1028167,\n 1028666,\n 1029198,\n 1029699,\n 1030199,\n 1030730,\n 1031231,\n 1031763,\n 1032264,\n 1032764,\n 1033296,\n 1033797,\n 1034297,\n 1034828,\n 1035329,\n 1035830,\n 1036362,\n 1036861,\n 1037393,\n 1037894,\n 1038394,\n 1038925,\n 1039427,\n 1039927,\n 1040459,\n 1040959,\n 1041491,\n 1041992,\n 1042492,\n 1043023,\n 1043524,\n 1044024,\n 1044556,\n 1045057,\n 1045558,\n 1046090,\n 1046590,\n 1047121,\n 1047622,\n 1048122,\n 1048654,\n 1049154,\n 1049655,\n 1050187,\n 1050689,\n 1051219,\n 1051720,\n 1052220,\n 1052751,\n 1053252,\n 1053752,\n 1054284,\n 1054786,\n 1055285,\n 1055817,\n 1056317,\n 1056849,\n 1057349,\n 1057850,\n 1058382,\n 1058883,\n 1059383,\n 1059915,\n 1060415,\n 1060947,\n 1061447,\n 1061947,\n 1062479,\n 1062981,\n 1063480,\n 1064012,\n 1064514,\n 1065014,\n 1065545,\n 1066045,\n 1066577,\n 1067078,\n 1067578,\n 1068110,\n 1068611,\n 1069112,\n 1069642,\n 1070142,\n 1070674,\n 1071175,\n 1071675,\n 1072207,\n 1072709,\n 1073209,\n 1073740,\n 1074241,\n 1074741,\n 1075273,\n 1075773,\n 1076305,\n 1076807,\n 1077308,\n 1077839,\n 1078340,\n 1078840,\n 1079372,\n 1079871,\n 1080403,\n 1080904\n ];\n function toLunar(yearOrDate, monthOrResult, day, result) {\n var solarDate;\n var lunarDate;\n if (typeof yearOrDate === \"object\") {\n solarDate = yearOrDate;\n lunarDate = monthOrResult || {};\n } else {\n var isValidYear = typeof yearOrDate === \"number\" && yearOrDate >= 1888 && yearOrDate <= 2111;\n if (!isValidYear)\n throw new Error(\"Solar year outside range 1888-2111\");\n var isValidMonth = typeof monthOrResult === \"number\" && monthOrResult >= 1 && monthOrResult <= 12;\n if (!isValidMonth)\n throw new Error(\"Solar month outside range 1 - 12\");\n var isValidDay = typeof day === \"number\" && day >= 1 && day <= 31;\n if (!isValidDay)\n throw new Error(\"Solar day outside range 1 - 31\");\n solarDate = {\n year: yearOrDate,\n month: monthOrResult,\n day\n };\n lunarDate = result || {};\n }\n var chineseNewYearPackedDate = CHINESE_NEW_YEAR[solarDate.year - CHINESE_NEW_YEAR[0]];\n var packedDate = solarDate.year << 9 | solarDate.month << 5 | solarDate.day;\n lunarDate.year = packedDate >= chineseNewYearPackedDate ? solarDate.year : solarDate.year - 1;\n chineseNewYearPackedDate = CHINESE_NEW_YEAR[lunarDate.year - CHINESE_NEW_YEAR[0]];\n var y = chineseNewYearPackedDate >> 9 & 4095;\n var m = chineseNewYearPackedDate >> 5 & 15;\n var d = chineseNewYearPackedDate & 31;\n var daysFromNewYear;\n var chineseNewYearJSDate = new Date(y, m - 1, d);\n var jsDate = new Date(solarDate.year, solarDate.month - 1, solarDate.day);\n daysFromNewYear = Math.round(\n (jsDate - chineseNewYearJSDate) / (24 * 3600 * 1e3)\n );\n var monthDaysTable = LUNAR_MONTH_DAYS[lunarDate.year - LUNAR_MONTH_DAYS[0]];\n var i;\n for (i = 0; i < 13; i++) {\n var daysInMonth = monthDaysTable & 1 << 12 - i ? 30 : 29;\n if (daysFromNewYear < daysInMonth) {\n break;\n }\n daysFromNewYear -= daysInMonth;\n }\n var intercalaryMonth = monthDaysTable >> 13;\n if (!intercalaryMonth || i < intercalaryMonth) {\n lunarDate.isIntercalary = false;\n lunarDate.month = 1 + i;\n } else if (i === intercalaryMonth) {\n lunarDate.isIntercalary = true;\n lunarDate.month = i;\n } else {\n lunarDate.isIntercalary = false;\n lunarDate.month = i;\n }\n lunarDate.day = 1 + daysFromNewYear;\n return lunarDate;\n }\n function toSolar(yearOrDate, monthOrResult, day, isIntercalaryOrResult, result) {\n var solarDate;\n var lunarDate;\n if (typeof yearOrDate === \"object\") {\n lunarDate = yearOrDate;\n solarDate = monthOrResult || {};\n } else {\n var isValidYear = typeof yearOrDate === \"number\" && yearOrDate >= 1888 && yearOrDate <= 2111;\n if (!isValidYear)\n throw new Error(\"Lunar year outside range 1888-2111\");\n var isValidMonth = typeof monthOrResult === \"number\" && monthOrResult >= 1 && monthOrResult <= 12;\n if (!isValidMonth)\n throw new Error(\"Lunar month outside range 1 - 12\");\n var isValidDay = typeof day === \"number\" && day >= 1 && day <= 30;\n if (!isValidDay)\n throw new Error(\"Lunar day outside range 1 - 30\");\n var isIntercalary;\n if (typeof isIntercalaryOrResult === \"object\") {\n isIntercalary = false;\n solarDate = isIntercalaryOrResult;\n } else {\n isIntercalary = !!isIntercalaryOrResult;\n solarDate = result || {};\n }\n lunarDate = {\n year: yearOrDate,\n month: monthOrResult,\n day,\n isIntercalary\n };\n }\n var daysFromNewYear;\n daysFromNewYear = lunarDate.day - 1;\n var monthDaysTable = LUNAR_MONTH_DAYS[lunarDate.year - LUNAR_MONTH_DAYS[0]];\n var intercalaryMonth = monthDaysTable >> 13;\n var monthsFromNewYear;\n if (!intercalaryMonth) {\n monthsFromNewYear = lunarDate.month - 1;\n } else if (lunarDate.month > intercalaryMonth) {\n monthsFromNewYear = lunarDate.month;\n } else if (lunarDate.isIntercalary) {\n monthsFromNewYear = lunarDate.month;\n } else {\n monthsFromNewYear = lunarDate.month - 1;\n }\n for (var i = 0; i < monthsFromNewYear; i++) {\n var daysInMonth = monthDaysTable & 1 << 12 - i ? 30 : 29;\n daysFromNewYear += daysInMonth;\n }\n var packedDate = CHINESE_NEW_YEAR[lunarDate.year - CHINESE_NEW_YEAR[0]];\n var y = packedDate >> 9 & 4095;\n var m = packedDate >> 5 & 15;\n var d = packedDate & 31;\n var jsDate = new Date(y, m - 1, d + daysFromNewYear);\n solarDate.year = jsDate.getFullYear();\n solarDate.month = 1 + jsDate.getMonth();\n solarDate.day = jsDate.getDate();\n return solarDate;\n }\n }\n });\n\n // node_modules/world-calendars/dist/calendars/coptic.js\n var require_coptic = __commonJS({\n \"node_modules/world-calendars/dist/calendars/coptic.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function CopticCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n CopticCalendar.prototype = new main.baseCalendar();\n assign(CopticCalendar.prototype, {\n /** The calendar name.\n @memberof CopticCalendar */\n name: \"Coptic\",\n /** Julian date of start of Coptic epoch: 29 August 284 CE (Gregorian).\n @memberof CopticCalendar */\n jdEpoch: 18250295e-1,\n /** Days per month in a common year.\n @memberof CopticCalendar */\n daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5],\n /** true if has a year zero, false if not.\n @memberof CopticCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof CopticCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof CopticCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof CopticCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof CopticCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Coptic\",\n epochs: [\"BAM\", \"AM\"],\n monthNames: [\n \"Thout\",\n \"Paopi\",\n \"Hathor\",\n \"Koiak\",\n \"Tobi\",\n \"Meshir\",\n \"Paremhat\",\n \"Paremoude\",\n \"Pashons\",\n \"Paoni\",\n \"Epip\",\n \"Mesori\",\n \"Pi Kogi Enavot\"\n ],\n monthNamesShort: [\n \"Tho\",\n \"Pao\",\n \"Hath\",\n \"Koi\",\n \"Tob\",\n \"Mesh\",\n \"Pat\",\n \"Pad\",\n \"Pash\",\n \"Pao\",\n \"Epi\",\n \"Meso\",\n \"PiK\"\n ],\n dayNames: [\"Tkyriaka\", \"Pesnau\", \"Pshoment\", \"Peftoou\", \"Ptiou\", \"Psoou\", \"Psabbaton\"],\n dayNamesShort: [\"Tky\", \"Pes\", \"Psh\", \"Pef\", \"Pti\", \"Pso\", \"Psa\"],\n dayNamesMin: [\"Tk\", \"Pes\", \"Psh\", \"Pef\", \"Pt\", \"Pso\", \"Psa\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = date.year() + (date.year() < 0 ? 1 : 0);\n return year % 4 === 3 || year % 4 === -1;\n },\n /** Retrieve the number of months in a year.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(\n year,\n this.minMonth,\n this.minDay,\n main.local.invalidYear || main.regionalOptions[\"\"].invalidYear\n );\n return 13;\n },\n /** Determine the week of the year for a date.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number) the month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 13 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof CopticCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number) the month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n if (year < 0) {\n year++;\n }\n return date.day() + (date.month() - 1) * 30 + (year - 1) * 365 + Math.floor(year / 4) + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof CopticCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var c = Math.floor(jd) + 0.5 - this.jdEpoch;\n var year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1;\n if (year <= 0) {\n year--;\n }\n c = Math.floor(jd) + 0.5 - this.newDate(year, 1, 1).toJD();\n var month = Math.floor(c / 30) + 1;\n var day = c - (month - 1) * 30 + 1;\n return this.newDate(year, month, day);\n }\n });\n main.calendars.coptic = CopticCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/discworld.js\n var require_discworld = __commonJS({\n \"node_modules/world-calendars/dist/calendars/discworld.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function DiscworldCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n DiscworldCalendar.prototype = new main.baseCalendar();\n assign(DiscworldCalendar.prototype, {\n /** The calendar name.\n @memberof DiscworldCalendar */\n name: \"Discworld\",\n /** Julian date of start of Discworld epoch: 1 January 0001 CE.\n @memberof DiscworldCalendar */\n jdEpoch: 17214255e-1,\n /** Days per month in a common year.\n @memberof DiscworldCalendar */\n daysPerMonth: [16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32],\n /** true if has a year zero, false if not.\n @memberof DiscworldCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof DiscworldCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof DiscworldCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof DiscworldCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof DiscworldCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Discworld\",\n epochs: [\"BUC\", \"UC\"],\n monthNames: [\n \"Ick\",\n \"Offle\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"Grune\",\n \"August\",\n \"Spune\",\n \"Sektober\",\n \"Ember\",\n \"December\"\n ],\n monthNamesShort: [\"Ick\", \"Off\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Gru\", \"Aug\", \"Spu\", \"Sek\", \"Emb\", \"Dec\"],\n dayNames: [\"Sunday\", \"Octeday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Oct\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Oc\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 2,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return false;\n },\n /** Retrieve the number of months in a year.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return 13;\n },\n /** Retrieve the number of days in a year.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return 400;\n },\n /** Determine the week of the year for a date.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 8) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1];\n },\n /** Retrieve the number of days in a week.\n @memberof DiscworldCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 8;\n },\n /** Retrieve the day of the week for a date.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return (date.day() + 1) % 8;\n },\n /** Determine whether this date is a week day.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n var dow = this.dayOfWeek(year, month, day);\n return dow >= 2 && dow <= 6;\n },\n /** Retrieve additional information about a date.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return { century: centuries[Math.floor((date.year() - 1) / 100) + 1] || \"\" };\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year() + (date.year() < 0 ? 1 : 0);\n month = date.month();\n day = date.day();\n return day + (month > 1 ? 16 : 0) + (month > 2 ? (month - 2) * 32 : 0) + (year - 1) * 400 + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof DiscworldCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd + 0.5) - Math.floor(this.jdEpoch) - 1;\n var year = Math.floor(jd / 400) + 1;\n jd -= (year - 1) * 400;\n jd += jd > 15 ? 16 : 0;\n var month = Math.floor(jd / 32) + 1;\n var day = jd - (month - 1) * 32 + 1;\n return this.newDate(year <= 0 ? year - 1 : year, month, day);\n }\n });\n var centuries = {\n 20: \"Fruitbat\",\n 21: \"Anchovy\"\n };\n main.calendars.discworld = DiscworldCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/ethiopian.js\n var require_ethiopian = __commonJS({\n \"node_modules/world-calendars/dist/calendars/ethiopian.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function EthiopianCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n EthiopianCalendar.prototype = new main.baseCalendar();\n assign(EthiopianCalendar.prototype, {\n /** The calendar name.\n @memberof EthiopianCalendar */\n name: \"Ethiopian\",\n /** Julian date of start of Ethiopian epoch: 27 August 8 CE (Gregorian).\n @memberof EthiopianCalendar */\n jdEpoch: 17242205e-1,\n /** Days per month in a common year.\n @memberof EthiopianCalendar */\n daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5],\n /** true if has a year zero, false if not.\n @memberof EthiopianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof EthiopianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof EthiopianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof EthiopianCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof EthiopianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Ethiopian\",\n epochs: [\"BEE\", \"EE\"],\n monthNames: [\n \"Meskerem\",\n \"Tikemet\",\n \"Hidar\",\n \"Tahesas\",\n \"Tir\",\n \"Yekatit\",\n \"Megabit\",\n \"Miazia\",\n \"Genbot\",\n \"Sene\",\n \"Hamle\",\n \"Nehase\",\n \"Pagume\"\n ],\n monthNamesShort: [\n \"Mes\",\n \"Tik\",\n \"Hid\",\n \"Tah\",\n \"Tir\",\n \"Yek\",\n \"Meg\",\n \"Mia\",\n \"Gen\",\n \"Sen\",\n \"Ham\",\n \"Neh\",\n \"Pag\"\n ],\n dayNames: [\"Ehud\", \"Segno\", \"Maksegno\", \"Irob\", \"Hamus\", \"Arb\", \"Kidame\"],\n dayNamesShort: [\"Ehu\", \"Seg\", \"Mak\", \"Iro\", \"Ham\", \"Arb\", \"Kid\"],\n dayNamesMin: [\"Eh\", \"Se\", \"Ma\", \"Ir\", \"Ha\", \"Ar\", \"Ki\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = date.year() + (date.year() < 0 ? 1 : 0);\n return year % 4 === 3 || year % 4 === -1;\n },\n /** Retrieve the number of months in a year.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(\n year,\n this.minMonth,\n this.minDay,\n main.local.invalidYear || main.regionalOptions[\"\"].invalidYear\n );\n return 13;\n },\n /** Determine the week of the year for a date.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 13 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n if (year < 0) {\n year++;\n }\n return date.day() + (date.month() - 1) * 30 + (year - 1) * 365 + Math.floor(year / 4) + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof EthiopianCalendar\n @param jd {number} the Julian date to convert.\n @return {CDate} the equivalent date. */\n fromJD: function(jd) {\n var c = Math.floor(jd) + 0.5 - this.jdEpoch;\n var year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1;\n if (year <= 0) {\n year--;\n }\n c = Math.floor(jd) + 0.5 - this.newDate(year, 1, 1).toJD();\n var month = Math.floor(c / 30) + 1;\n var day = c - (month - 1) * 30 + 1;\n return this.newDate(year, month, day);\n }\n });\n main.calendars.ethiopian = EthiopianCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/hebrew.js\n var require_hebrew = __commonJS({\n \"node_modules/world-calendars/dist/calendars/hebrew.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function HebrewCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n HebrewCalendar.prototype = new main.baseCalendar();\n assign(HebrewCalendar.prototype, {\n /** The calendar name.\n @memberof HebrewCalendar */\n name: \"Hebrew\",\n /** Julian date of start of Hebrew epoch: 7 October 3761 BCE.\n @memberof HebrewCalendar */\n jdEpoch: 347995.5,\n /** Days per month in a common year.\n @memberof HebrewCalendar */\n daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 29],\n /** true if has a year zero, false if not.\n @memberof HebrewCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof HebrewCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof HebrewCalendar */\n firstMonth: 7,\n /** The minimum day number.\n @memberof HebrewCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof HebrewCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Hebrew\",\n epochs: [\"BAM\", \"AM\"],\n monthNames: [\n \"Nisan\",\n \"Iyar\",\n \"Sivan\",\n \"Tammuz\",\n \"Av\",\n \"Elul\",\n \"Tishrei\",\n \"Cheshvan\",\n \"Kislev\",\n \"Tevet\",\n \"Shevat\",\n \"Adar\",\n \"Adar II\"\n ],\n monthNamesShort: [\"Nis\", \"Iya\", \"Siv\", \"Tam\", \"Av\", \"Elu\", \"Tis\", \"Che\", \"Kis\", \"Tev\", \"She\", \"Ada\", \"Ad2\"],\n dayNames: [\"Yom Rishon\", \"Yom Sheni\", \"Yom Shlishi\", \"Yom Revi'i\", \"Yom Chamishi\", \"Yom Shishi\", \"Yom Shabbat\"],\n dayNamesShort: [\"Ris\", \"She\", \"Shl\", \"Rev\", \"Cha\", \"Shi\", \"Sha\"],\n dayNamesMin: [\"Ri\", \"She\", \"Shl\", \"Re\", \"Ch\", \"Shi\", \"Sha\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return this._leapYear(date.year());\n },\n /** Determine whether this date is in a leap year.\n @memberof HebrewCalendar\n @private\n @param year {number} The year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n _leapYear: function(year) {\n year = year < 0 ? year + 1 : year;\n return mod(year * 7 + 1, 19) < 7;\n },\n /** Retrieve the number of months in a year.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return this._leapYear(year.year ? year.year() : year) ? 13 : 12;\n },\n /** Determine the week of the year for a date.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a year.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n year = date.year();\n return this.toJD(year === -1 ? 1 : year + 1, 7, 1) - this.toJD(year, 7, 1);\n },\n /** Retrieve the number of days in a month.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n if (year.year) {\n month = year.month();\n year = year.year();\n }\n this._validate(year, month, this.minDay, main.local.invalidMonth);\n return month === 12 && this.leapYear(year) ? 30 : (\n // Adar I\n month === 8 && mod(this.daysInYear(year), 10) === 5 ? 30 : (\n // Cheshvan in shlemah year\n month === 9 && mod(this.daysInYear(year), 10) === 3 ? 29 : (\n // Kislev in chaserah year\n this.daysPerMonth[month - 1]\n )\n )\n );\n },\n /** Determine whether this date is a week day.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 6;\n },\n /** Retrieve additional information about a date - year type.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return { yearType: (this.leapYear(date) ? \"embolismic\" : \"common\") + \" \" + [\"deficient\", \"regular\", \"complete\"][this.daysInYear(date) % 10 - 3] };\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof HebrewCalendar\n @param year {CDate)|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n var adjYear = year <= 0 ? year + 1 : year;\n var jd = this.jdEpoch + this._delay1(adjYear) + this._delay2(adjYear) + day + 1;\n if (month < 7) {\n for (var m = 7; m <= this.monthsInYear(year); m++) {\n jd += this.daysInMonth(year, m);\n }\n for (var m = 1; m < month; m++) {\n jd += this.daysInMonth(year, m);\n }\n } else {\n for (var m = 7; m < month; m++) {\n jd += this.daysInMonth(year, m);\n }\n }\n return jd;\n },\n /** Test for delay of start of new year and to avoid\n Sunday, Wednesday, or Friday as start of the new year.\n @memberof HebrewCalendar\n @private\n @param year {number} The year to examine.\n @return {number} The days to offset by. */\n _delay1: function(year) {\n var months = Math.floor((235 * year - 234) / 19);\n var parts = 12084 + 13753 * months;\n var day = months * 29 + Math.floor(parts / 25920);\n if (mod(3 * (day + 1), 7) < 3) {\n day++;\n }\n return day;\n },\n /** Check for delay in start of new year due to length of adjacent years.\n @memberof HebrewCalendar\n @private\n @param year {number} The year to examine.\n @return {number} The days to offset by. */\n _delay2: function(year) {\n var last = this._delay1(year - 1);\n var present = this._delay1(year);\n var next = this._delay1(year + 1);\n return next - present === 356 ? 2 : present - last === 382 ? 1 : 0;\n },\n /** Create a new date from a Julian date.\n @memberof HebrewCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var year = Math.floor((jd - this.jdEpoch) * 98496 / 35975351) - 1;\n while (jd >= this.toJD(year === -1 ? 1 : year + 1, 7, 1)) {\n year++;\n }\n var month = jd < this.toJD(year, 1, 1) ? 7 : 1;\n while (jd > this.toJD(year, month, this.daysInMonth(year, month))) {\n month++;\n }\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n });\n function mod(a, b) {\n return a - b * Math.floor(a / b);\n }\n main.calendars.hebrew = HebrewCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/islamic.js\n var require_islamic = __commonJS({\n \"node_modules/world-calendars/dist/calendars/islamic.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function IslamicCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n IslamicCalendar.prototype = new main.baseCalendar();\n assign(IslamicCalendar.prototype, {\n /** The calendar name.\n @memberof IslamicCalendar */\n name: \"Islamic\",\n /** Julian date of start of Islamic epoch: 16 July 622 CE.\n @memberof IslamicCalendar */\n jdEpoch: 19484395e-1,\n /** Days per month in a common year.\n @memberof IslamicCalendar */\n daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29],\n /** true if has a year zero, false if not.\n @memberof IslamicCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof IslamicCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof IslamicCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof IslamicCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof IslamicCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Islamic\",\n epochs: [\"BH\", \"AH\"],\n monthNames: [\n \"Muharram\",\n \"Safar\",\n \"Rabi' al-awwal\",\n \"Rabi' al-thani\",\n \"Jumada al-awwal\",\n \"Jumada al-thani\",\n \"Rajab\",\n \"Sha'aban\",\n \"Ramadan\",\n \"Shawwal\",\n \"Dhu al-Qi'dah\",\n \"Dhu al-Hijjah\"\n ],\n monthNamesShort: [\"Muh\", \"Saf\", \"Rab1\", \"Rab2\", \"Jum1\", \"Jum2\", \"Raj\", \"Sha'\", \"Ram\", \"Shaw\", \"DhuQ\", \"DhuH\"],\n dayNames: [\n \"Yawm al-ahad\",\n \"Yawm al-ithnayn\",\n \"Yawm ath-thulaathaa'\",\n \"Yawm al-arbi'aa'\",\n \"Yawm al-kham\\u012Bs\",\n \"Yawm al-jum'a\",\n \"Yawm as-sabt\"\n ],\n dayNamesShort: [\"Aha\", \"Ith\", \"Thu\", \"Arb\", \"Kha\", \"Jum\", \"Sab\"],\n dayNamesMin: [\"Ah\", \"It\", \"Th\", \"Ar\", \"Kh\", \"Ju\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 6,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (date.year() * 11 + 14) % 30 < 11;\n },\n /** Determine the week of the year for a date.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n return this.leapYear(year) ? 355 : 354;\n },\n /** Retrieve the number of days in a month.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n year = year <= 0 ? year + 1 : year;\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30) + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof IslamicCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var year = Math.floor((30 * (jd - this.jdEpoch) + 10646) / 10631);\n year = year <= 0 ? year - 1 : year;\n var month = Math.min(12, Math.ceil((jd - 29 - this.toJD(year, 1, 1)) / 29.5) + 1);\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n });\n main.calendars.islamic = IslamicCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/julian.js\n var require_julian = __commonJS({\n \"node_modules/world-calendars/dist/calendars/julian.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function JulianCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n JulianCalendar.prototype = new main.baseCalendar();\n assign(JulianCalendar.prototype, {\n /** The calendar name.\n @memberof JulianCalendar */\n name: \"Julian\",\n /** Julian date of start of Julian epoch: 1 January 0001 AD = 30 December 0001 BCE.\n @memberof JulianCalendar */\n jdEpoch: 17214235e-1,\n /** Days per month in a common year.\n @memberof JulianCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof JulianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof JulianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof JulianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof JulianCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof JulianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Julian\",\n epochs: [\"BC\", \"AD\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"mm/dd/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof JulianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = date.year() < 0 ? date.year() + 1 : date.year();\n return year % 4 === 0;\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof JulianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(4 - (checkDate.dayOfWeek() || 7), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof JulianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof JulianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} True if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof JulianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n if (year < 0) {\n year++;\n }\n if (month <= 2) {\n year--;\n month += 12;\n }\n return Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day - 1524.5;\n },\n /** Create a new date from a Julian date.\n @memberof JulianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var a = Math.floor(jd + 0.5);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var month = e - Math.floor(e < 14 ? 1 : 13);\n var year = c - Math.floor(month > 2 ? 4716 : 4715);\n var day = b - d - Math.floor(30.6001 * e);\n if (year <= 0) {\n year--;\n }\n return this.newDate(year, month, day);\n }\n });\n main.calendars.julian = JulianCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/mayan.js\n var require_mayan = __commonJS({\n \"node_modules/world-calendars/dist/calendars/mayan.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function MayanCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n MayanCalendar.prototype = new main.baseCalendar();\n assign(MayanCalendar.prototype, {\n /** The calendar name.\n @memberof MayanCalendar */\n name: \"Mayan\",\n /** Julian date of start of Mayan epoch: 11 August 3114 BCE.\n @memberof MayanCalendar */\n jdEpoch: 584282.5,\n /** true if has a year zero, false if not.\n @memberof MayanCalendar */\n hasYearZero: true,\n /** The minimum month number.\n @memberof MayanCalendar */\n minMonth: 0,\n /** The first month in the year.\n @memberof MayanCalendar */\n firstMonth: 0,\n /** The minimum day number.\n @memberof MayanCalendar */\n minDay: 0,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof MayanCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left.\n @property haabMonths {string[]} The names of the Haab months.\n @property tzolkinMonths {string[]} The names of the Tzolkin months. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Mayan\",\n epochs: [\"\", \"\"],\n monthNames: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\"\n ],\n monthNamesShort: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\"\n ],\n dayNames: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\"\n ],\n dayNamesShort: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\"\n ],\n dayNamesMin: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\"\n ],\n digits: null,\n dateFormat: \"YYYY.m.d\",\n firstDay: 0,\n isRTL: false,\n haabMonths: [\n \"Pop\",\n \"Uo\",\n \"Zip\",\n \"Zotz\",\n \"Tzec\",\n \"Xul\",\n \"Yaxkin\",\n \"Mol\",\n \"Chen\",\n \"Yax\",\n \"Zac\",\n \"Ceh\",\n \"Mac\",\n \"Kankin\",\n \"Muan\",\n \"Pax\",\n \"Kayab\",\n \"Cumku\",\n \"Uayeb\"\n ],\n tzolkinMonths: [\n \"Imix\",\n \"Ik\",\n \"Akbal\",\n \"Kan\",\n \"Chicchan\",\n \"Cimi\",\n \"Manik\",\n \"Lamat\",\n \"Muluc\",\n \"Oc\",\n \"Chuen\",\n \"Eb\",\n \"Ben\",\n \"Ix\",\n \"Men\",\n \"Cib\",\n \"Caban\",\n \"Etznab\",\n \"Cauac\",\n \"Ahau\"\n ]\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return false;\n },\n /** Format the year, if not a simple sequential number.\n @memberof MayanCalendar\n @param year {CDate|number} The date to format or the year to format.\n @return {string} The formatted year.\n @throws Error if an invalid year or a different calendar used. */\n formatYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n year = date.year();\n var baktun = Math.floor(year / 400);\n year = year % 400;\n year += year < 0 ? 400 : 0;\n var katun = Math.floor(year / 20);\n return baktun + \".\" + katun + \".\" + year % 20;\n },\n /** Convert from the formatted year back to a single number.\n @memberof MayanCalendar\n @param years {string} The year as n.n.n.\n @return {number} The sequential year.\n @throws Error if an invalid value is supplied. */\n forYear: function(years) {\n years = years.split(\".\");\n if (years.length < 3) {\n throw \"Invalid Mayan year\";\n }\n var year = 0;\n for (var i = 0; i < years.length; i++) {\n var y = parseInt(years[i], 10);\n if (Math.abs(y) > 19 || i > 0 && y < 0) {\n throw \"Invalid Mayan year\";\n }\n year = year * 20 + y;\n }\n return year;\n },\n /** Retrieve the number of months in a year.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return 18;\n },\n /** Determine the week of the year for a date.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n this._validate(year, month, day, main.local.invalidDate);\n return 0;\n },\n /** Retrieve the number of days in a year.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return 360;\n },\n /** Retrieve the number of days in a month.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n this._validate(year, month, this.minDay, main.local.invalidMonth);\n return 20;\n },\n /** Retrieve the number of days in a week.\n @memberof MayanCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 5;\n },\n /** Retrieve the day of the week for a date.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return date.day();\n },\n /** Determine whether this date is a week day.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n this._validate(year, month, day, main.local.invalidDate);\n return true;\n },\n /** Retrieve additional information about a date - Haab and Tzolkin equivalents.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var jd = date.toJD();\n var haab = this._toHaab(jd);\n var tzolkin = this._toTzolkin(jd);\n return {\n haabMonthName: this.local.haabMonths[haab[0] - 1],\n haabMonth: haab[0],\n haabDay: haab[1],\n tzolkinDayName: this.local.tzolkinMonths[tzolkin[0] - 1],\n tzolkinDay: tzolkin[0],\n tzolkinTrecena: tzolkin[1]\n };\n },\n /** Retrieve Haab date from a Julian date.\n @memberof MayanCalendar\n @private\n @param jd {number} The Julian date.\n @return {number[]} Corresponding Haab month and day. */\n _toHaab: function(jd) {\n jd -= this.jdEpoch;\n var day = mod(jd + 8 + (18 - 1) * 20, 365);\n return [Math.floor(day / 20) + 1, mod(day, 20)];\n },\n /** Retrieve Tzolkin date from a Julian date.\n @memberof MayanCalendar\n @private\n @param jd {number} The Julian date.\n @return {number[]} Corresponding Tzolkin day and trecena. */\n _toTzolkin: function(jd) {\n jd -= this.jdEpoch;\n return [amod(jd + 20, 20), amod(jd + 4, 13)];\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof MayanCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return date.day() + date.month() * 20 + date.year() * 360 + this.jdEpoch;\n },\n /** Create a new date from a Julian date.\n @memberof MayanCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5 - this.jdEpoch;\n var year = Math.floor(jd / 360);\n jd = jd % 360;\n jd += jd < 0 ? 360 : 0;\n var month = Math.floor(jd / 20);\n var day = jd % 20;\n return this.newDate(year, month, day);\n }\n });\n function mod(a, b) {\n return a - b * Math.floor(a / b);\n }\n function amod(a, b) {\n return mod(a - 1, b) + 1;\n }\n main.calendars.mayan = MayanCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/nanakshahi.js\n var require_nanakshahi = __commonJS({\n \"node_modules/world-calendars/dist/calendars/nanakshahi.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function NanakshahiCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n NanakshahiCalendar.prototype = new main.baseCalendar();\n var gregorian = main.instance(\"gregorian\");\n assign(NanakshahiCalendar.prototype, {\n /** The calendar name.\n @memberof NanakshahiCalendar */\n name: \"Nanakshahi\",\n /** Julian date of start of Nanakshahi epoch: 14 March 1469 CE.\n @memberof NanakshahiCalendar */\n jdEpoch: 22576735e-1,\n /** Days per month in a common year.\n @memberof NanakshahiCalendar */\n daysPerMonth: [31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30],\n /** true if has a year zero, false if not.\n @memberof NanakshahiCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof NanakshahiCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof NanakshahiCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof NanakshahiCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof NanakshahiCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Nanakshahi\",\n epochs: [\"BN\", \"AN\"],\n monthNames: [\n \"Chet\",\n \"Vaisakh\",\n \"Jeth\",\n \"Harh\",\n \"Sawan\",\n \"Bhadon\",\n \"Assu\",\n \"Katak\",\n \"Maghar\",\n \"Poh\",\n \"Magh\",\n \"Phagun\"\n ],\n monthNamesShort: [\"Che\", \"Vai\", \"Jet\", \"Har\", \"Saw\", \"Bha\", \"Ass\", \"Kat\", \"Mgr\", \"Poh\", \"Mgh\", \"Pha\"],\n dayNames: [\"Somvaar\", \"Mangalvar\", \"Budhvaar\", \"Veervaar\", \"Shukarvaar\", \"Sanicharvaar\", \"Etvaar\"],\n dayNamesShort: [\"Som\", \"Mangal\", \"Budh\", \"Veer\", \"Shukar\", \"Sanichar\", \"Et\"],\n dayNamesMin: [\"So\", \"Ma\", \"Bu\", \"Ve\", \"Sh\", \"Sa\", \"Et\"],\n digits: null,\n dateFormat: \"dd-mm-yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n main.local.invalidYear || main.regionalOptions[\"\"].invalidYear\n );\n return gregorian.leapYear(date.year() + (date.year() < 1 ? 1 : 0) + 1469);\n },\n /** Determine the week of the year for a date.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(1 - (checkDate.dayOfWeek() || 7), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidMonth);\n var year = date.year();\n if (year < 0) {\n year++;\n }\n var doy = date.day();\n for (var m = 1; m < date.month(); m++) {\n doy += this.daysPerMonth[m - 1];\n }\n return doy + gregorian.toJD(year + 1468, 3, 13);\n },\n /** Create a new date from a Julian date.\n @memberof NanakshahiCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd + 0.5);\n var year = Math.floor((jd - (this.jdEpoch - 1)) / 366);\n while (jd >= this.toJD(year + 1, 1, 1)) {\n year++;\n }\n var day = jd - Math.floor(this.toJD(year, 1, 1) + 0.5) + 1;\n var month = 1;\n while (day > this.daysInMonth(year, month)) {\n day -= this.daysInMonth(year, month);\n month++;\n }\n return this.newDate(year, month, day);\n }\n });\n main.calendars.nanakshahi = NanakshahiCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/nepali.js\n var require_nepali = __commonJS({\n \"node_modules/world-calendars/dist/calendars/nepali.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function NepaliCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n NepaliCalendar.prototype = new main.baseCalendar();\n assign(NepaliCalendar.prototype, {\n /** The calendar name.\n @memberof NepaliCalendar */\n name: \"Nepali\",\n /** Julian date of start of Nepali epoch: 14 April 57 BCE.\n @memberof NepaliCalendar */\n jdEpoch: 17007095e-1,\n /** Days per month in a common year.\n @memberof NepaliCalendar */\n daysPerMonth: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n /** true if has a year zero, false if not.\n @memberof NepaliCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof NepaliCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof NepaliCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof NepaliCalendar */\n minDay: 1,\n /** The number of days in the year.\n @memberof NepaliCalendar */\n daysPerYear: 365,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof NepaliCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Nepali\",\n epochs: [\"BBS\", \"ABS\"],\n monthNames: [\n \"Baisakh\",\n \"Jestha\",\n \"Ashadh\",\n \"Shrawan\",\n \"Bhadra\",\n \"Ashwin\",\n \"Kartik\",\n \"Mangsir\",\n \"Paush\",\n \"Mangh\",\n \"Falgun\",\n \"Chaitra\"\n ],\n monthNamesShort: [\"Bai\", \"Je\", \"As\", \"Shra\", \"Bha\", \"Ash\", \"Kar\", \"Mang\", \"Pau\", \"Ma\", \"Fal\", \"Chai\"],\n dayNames: [\"Aaitabaar\", \"Sombaar\", \"Manglbaar\", \"Budhabaar\", \"Bihibaar\", \"Shukrabaar\", \"Shanibaar\"],\n dayNamesShort: [\"Aaita\", \"Som\", \"Mangl\", \"Budha\", \"Bihi\", \"Shukra\", \"Shani\"],\n dayNamesMin: [\"Aai\", \"So\", \"Man\", \"Bu\", \"Bi\", \"Shu\", \"Sha\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 1,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n return this.daysInYear(year) !== this.daysPerYear;\n },\n /** Determine the week of the year for a date.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a year.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n year = date.year();\n if (typeof this.NEPALI_CALENDAR_DATA[year] === \"undefined\") {\n return this.daysPerYear;\n }\n var daysPerYear = 0;\n for (var month_number = this.minMonth; month_number <= 12; month_number++) {\n daysPerYear += this.NEPALI_CALENDAR_DATA[year][month_number];\n }\n return daysPerYear;\n },\n /** Retrieve the number of days in a month.\n @memberof NepaliCalendar\n @param year {CDate|number| The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n if (year.year) {\n month = year.month();\n year = year.year();\n }\n this._validate(year, month, this.minDay, main.local.invalidMonth);\n return typeof this.NEPALI_CALENDAR_DATA[year] === \"undefined\" ? this.daysPerMonth[month - 1] : this.NEPALI_CALENDAR_DATA[year][month];\n },\n /** Determine whether this date is a week day.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(nepaliYear, nepaliMonth, nepaliDay) {\n var date = this._validate(nepaliYear, nepaliMonth, nepaliDay, main.local.invalidDate);\n nepaliYear = date.year();\n nepaliMonth = date.month();\n nepaliDay = date.day();\n var gregorianCalendar = main.instance();\n var gregorianDayOfYear = 0;\n var nepaliMonthToCheck = nepaliMonth;\n var nepaliYearToCheck = nepaliYear;\n this._createMissingCalendarData(nepaliYear);\n var gregorianYear = nepaliYear - (nepaliMonthToCheck > 9 || nepaliMonthToCheck === 9 && nepaliDay >= this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0] ? 56 : 57);\n if (nepaliMonth !== 9) {\n gregorianDayOfYear = nepaliDay;\n nepaliMonthToCheck--;\n }\n while (nepaliMonthToCheck !== 9) {\n if (nepaliMonthToCheck <= 0) {\n nepaliMonthToCheck = 12;\n nepaliYearToCheck--;\n }\n gregorianDayOfYear += this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][nepaliMonthToCheck];\n nepaliMonthToCheck--;\n }\n if (nepaliMonth === 9) {\n gregorianDayOfYear += nepaliDay - this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0];\n if (gregorianDayOfYear < 0) {\n gregorianDayOfYear += gregorianCalendar.daysInYear(gregorianYear);\n }\n } else {\n gregorianDayOfYear += this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][9] - this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0];\n }\n return gregorianCalendar.newDate(gregorianYear, 1, 1).add(gregorianDayOfYear, \"d\").toJD();\n },\n /** Create a new date from a Julian date.\n @memberof NepaliCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var gregorianCalendar = main.instance();\n var gregorianDate = gregorianCalendar.fromJD(jd);\n var gregorianYear = gregorianDate.year();\n var gregorianDayOfYear = gregorianDate.dayOfYear();\n var nepaliYear = gregorianYear + 56;\n this._createMissingCalendarData(nepaliYear);\n var nepaliMonth = 9;\n var dayOfFirstJanInPaush = this.NEPALI_CALENDAR_DATA[nepaliYear][0];\n var daysSinceJanFirstToEndOfNepaliMonth = this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth] - dayOfFirstJanInPaush + 1;\n while (gregorianDayOfYear > daysSinceJanFirstToEndOfNepaliMonth) {\n nepaliMonth++;\n if (nepaliMonth > 12) {\n nepaliMonth = 1;\n nepaliYear++;\n }\n daysSinceJanFirstToEndOfNepaliMonth += this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth];\n }\n var nepaliDayOfMonth = this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth] - (daysSinceJanFirstToEndOfNepaliMonth - gregorianDayOfYear);\n return this.newDate(nepaliYear, nepaliMonth, nepaliDayOfMonth);\n },\n /** Creates missing data in the NEPALI_CALENDAR_DATA table.\n This data will not be correct but just give an estimated result. Mostly -/+ 1 day\n @private\n @param nepaliYear {number} The missing year number. */\n _createMissingCalendarData: function(nepaliYear) {\n var tmp_calendar_data = this.daysPerMonth.slice(0);\n tmp_calendar_data.unshift(17);\n for (var nepaliYearToCreate = nepaliYear - 1; nepaliYearToCreate < nepaliYear + 2; nepaliYearToCreate++) {\n if (typeof this.NEPALI_CALENDAR_DATA[nepaliYearToCreate] === \"undefined\") {\n this.NEPALI_CALENDAR_DATA[nepaliYearToCreate] = tmp_calendar_data;\n }\n }\n },\n NEPALI_CALENDAR_DATA: {\n // These data are from http://www.ashesh.com.np\n 1970: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1971: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 1972: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1973: [19, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1974: [19, 31, 31, 32, 30, 31, 31, 30, 29, 30, 29, 30, 30],\n 1975: [18, 31, 31, 32, 32, 30, 31, 30, 29, 30, 29, 30, 30],\n 1976: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1977: [18, 31, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 1978: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1979: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1980: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1981: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1982: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1983: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1984: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1985: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1986: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1987: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1988: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1989: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 1990: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1991: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n // These data are from http://nepalicalendar.rat32.com/index.php\n 1992: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1993: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 1994: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1995: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1996: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1997: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1998: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1999: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2e3: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2001: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2002: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2003: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2004: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2005: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2006: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2007: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2008: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2009: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2010: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2011: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2012: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2013: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2014: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2015: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2016: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2017: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2018: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2019: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2020: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2021: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2022: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2023: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2024: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2025: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2026: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2027: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2028: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2029: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2030: [17, 31, 32, 31, 32, 31, 30, 30, 30, 30, 30, 30, 31],\n 2031: [17, 31, 32, 31, 32, 31, 31, 31, 31, 31, 31, 31, 31],\n 2032: [17, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32],\n 2033: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2034: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2035: [17, 30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2036: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2037: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2038: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2039: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2040: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2041: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2042: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2043: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2044: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2045: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2046: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2047: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2048: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2049: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2050: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2051: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2052: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2053: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2054: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2055: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 29, 30],\n 2056: [17, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2057: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2058: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2059: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2060: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2061: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2062: [17, 30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 2063: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2064: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2065: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2066: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2067: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2068: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2069: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2070: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2071: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2072: [17, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2073: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2074: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2075: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2076: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2077: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2078: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2079: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2080: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n // These data are from http://www.ashesh.com.np/nepali-calendar/\n 2081: [17, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2082: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2083: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2084: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2085: [17, 31, 32, 31, 32, 31, 31, 30, 30, 29, 30, 30, 30],\n 2086: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2087: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2088: [16, 30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2089: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2090: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2091: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2092: [16, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2093: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2094: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2095: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2096: [17, 30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2097: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2098: [17, 31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 30, 31],\n 2099: [17, 31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30],\n 2100: [17, 31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30]\n }\n });\n main.calendars.nepali = NepaliCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/persian.js\n var require_persian = __commonJS({\n \"node_modules/world-calendars/dist/calendars/persian.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function PersianCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n PersianCalendar.prototype = new main.baseCalendar();\n assign(PersianCalendar.prototype, {\n /** The calendar name.\n @memberof PersianCalendar */\n name: \"Persian\",\n /** Julian date of start of Persian epoch: 19 March 622 CE.\n @memberof PersianCalendar */\n jdEpoch: 19483205e-1,\n /** Days per month in a common year.\n @memberof PersianCalendar */\n daysPerMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29],\n /** true if has a year zero, false if not.\n @memberof PersianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof PersianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof PersianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof PersianCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof PersianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Persian\",\n epochs: [\"BP\", \"AP\"],\n monthNames: [\n \"Farvardin\",\n \"Ordibehesht\",\n \"Khordad\",\n \"Tir\",\n \"Mordad\",\n \"Shahrivar\",\n \"Mehr\",\n \"Aban\",\n \"Azar\",\n \"Day\",\n \"Bahman\",\n \"Esfand\"\n ],\n monthNamesShort: [\"Far\", \"Ord\", \"Kho\", \"Tir\", \"Mor\", \"Sha\", \"Meh\", \"Aba\", \"Aza\", \"Day\", \"Bah\", \"Esf\"],\n dayNames: [\"Yekshambe\", \"Doshambe\", \"Seshambe\", \"Ch\\xE6harshambe\", \"Panjshambe\", \"Jom'e\", \"Shambe\"],\n dayNamesShort: [\"Yek\", \"Do\", \"Se\", \"Ch\\xE6\", \"Panj\", \"Jom\", \"Sha\"],\n dayNamesMin: [\"Ye\", \"Do\", \"Se\", \"Ch\", \"Pa\", \"Jo\", \"Sh\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 6,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return ((date.year() - (date.year() > 0 ? 474 : 473)) % 2820 + 474 + 38) * 682 % 2816 < 682;\n },\n /** Determine the week of the year for a date.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-((checkDate.dayOfWeek() + 1) % 7), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof PersianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n var epBase = year - (year >= 0 ? 474 : 473);\n var epYear = 474 + mod(epBase, 2820);\n return day + (month <= 7 ? (month - 1) * 31 : (month - 1) * 30 + 6) + Math.floor((epYear * 682 - 110) / 2816) + (epYear - 1) * 365 + Math.floor(epBase / 2820) * 1029983 + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof PersianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var depoch = jd - this.toJD(475, 1, 1);\n var cycle = Math.floor(depoch / 1029983);\n var cyear = mod(depoch, 1029983);\n var ycycle = 2820;\n if (cyear !== 1029982) {\n var aux1 = Math.floor(cyear / 366);\n var aux2 = mod(cyear, 366);\n ycycle = Math.floor((2134 * aux1 + 2816 * aux2 + 2815) / 1028522) + aux1 + 1;\n }\n var year = ycycle + 2820 * cycle + 474;\n year = year <= 0 ? year - 1 : year;\n var yday = jd - this.toJD(year, 1, 1) + 1;\n var month = yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30);\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n });\n function mod(a, b) {\n return a - b * Math.floor(a / b);\n }\n main.calendars.persian = PersianCalendar;\n main.calendars.jalali = PersianCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/taiwan.js\n var require_taiwan = __commonJS({\n \"node_modules/world-calendars/dist/calendars/taiwan.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n var gregorianCalendar = main.instance();\n function TaiwanCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n TaiwanCalendar.prototype = new main.baseCalendar();\n assign(TaiwanCalendar.prototype, {\n /** The calendar name.\n @memberof TaiwanCalendar */\n name: \"Taiwan\",\n /** Julian date of start of Taiwan epoch: 1 January 1912 CE (Gregorian).\n @memberof TaiwanCalendar */\n jdEpoch: 24194025e-1,\n /** Difference in years between Taiwan and Gregorian calendars.\n @memberof TaiwanCalendar */\n yearsOffset: 1911,\n /** Days per month in a common year.\n @memberof TaiwanCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof TaiwanCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof TaiwanCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof TaiwanCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof TaiwanCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof TaiwanCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Taiwan\",\n epochs: [\"BROC\", \"ROC\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 1,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n /** Retrieve the number of days in a month.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n /** Create a new date from a Julian date.\n @memberof TaiwanCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n /** Convert Taiwanese to Gregorian year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Taiwanese year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n },\n /** Convert Gregorian to Taiwanese year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Taiwanese year. */\n _g2tYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n }\n });\n main.calendars.taiwan = TaiwanCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/thai.js\n var require_thai = __commonJS({\n \"node_modules/world-calendars/dist/calendars/thai.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n var gregorianCalendar = main.instance();\n function ThaiCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n ThaiCalendar.prototype = new main.baseCalendar();\n assign(ThaiCalendar.prototype, {\n /** The calendar name.\n @memberof ThaiCalendar */\n name: \"Thai\",\n /** Julian date of start of Thai epoch: 1 January 543 BCE (Gregorian).\n @memberof ThaiCalendar */\n jdEpoch: 15230985e-1,\n /** Difference in years between Thai and Gregorian calendars.\n @memberof ThaiCalendar */\n yearsOffset: 543,\n /** Days per month in a common year.\n @memberof ThaiCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof ThaiCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof ThaiCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof ThaiCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof ThaiCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof ThaiCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Thai\",\n epochs: [\"BBE\", \"BE\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n /** Retrieve the number of days in a month.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n /** Create a new date from a Julian date.\n @memberof ThaiCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n /** Convert Thai to Gregorian year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Thai year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n },\n /** Convert Gregorian to Thai year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Thai year. */\n _g2tYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n }\n });\n main.calendars.thai = ThaiCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/ummalqura.js\n var require_ummalqura = __commonJS({\n \"node_modules/world-calendars/dist/calendars/ummalqura.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function UmmAlQuraCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n UmmAlQuraCalendar.prototype = new main.baseCalendar();\n assign(UmmAlQuraCalendar.prototype, {\n /** The calendar name.\n @memberof UmmAlQuraCalendar */\n name: \"UmmAlQura\",\n //jdEpoch: 1948440, // Julian date of start of UmmAlQura epoch: 14 March 1937 CE\n //daysPerMonth: // Days per month in a common year, replaced by a method.\n /** true if has a year zero, false if not.\n @memberof UmmAlQuraCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof UmmAlQuraCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof UmmAlQuraCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof UmmAlQuraCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof UmmAlQuraCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Umm al-Qura\",\n epochs: [\"BH\", \"AH\"],\n monthNames: [\n \"Al-Muharram\",\n \"Safar\",\n \"Rabi' al-awwal\",\n \"Rabi' Al-Thani\",\n \"Jumada Al-Awwal\",\n \"Jumada Al-Thani\",\n \"Rajab\",\n \"Sha'aban\",\n \"Ramadan\",\n \"Shawwal\",\n \"Dhu al-Qi'dah\",\n \"Dhu al-Hijjah\"\n ],\n monthNamesShort: [\"Muh\", \"Saf\", \"Rab1\", \"Rab2\", \"Jum1\", \"Jum2\", \"Raj\", \"Sha'\", \"Ram\", \"Shaw\", \"DhuQ\", \"DhuH\"],\n dayNames: [\"Yawm al-Ahad\", \"Yawm al-Ithnain\", \"Yawm al-Thal\\u0101th\\u0101\\u2019\", \"Yawm al-Arba\\u2018\\u0101\\u2019\", \"Yawm al-Kham\\u012Bs\", \"Yawm al-Jum\\u2018a\", \"Yawm al-Sabt\"],\n dayNamesMin: [\"Ah\", \"Ith\", \"Th\", \"Ar\", \"Kh\", \"Ju\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 6,\n isRTL: true\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return this.daysInYear(date.year()) === 355;\n },\n /** Determine the week of the year for a date.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var daysCount = 0;\n for (var i = 1; i <= 12; i++) {\n daysCount += this.daysInMonth(year, i);\n }\n return daysCount;\n },\n /** Retrieve the number of days in a month.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n var mcjdn = date.toJD() - 24e5 + 0.5;\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) {\n return ummalqura_dat[index] - ummalqura_dat[index - 1];\n }\n index++;\n }\n return 30;\n },\n /** Determine whether this date is a week day.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var index = 12 * (date.year() - 1) + date.month() - 15292;\n var mcjdn = date.day() + ummalqura_dat[index - 1] - 1;\n return mcjdn + 24e5 - 0.5;\n },\n /** Create a new date from a Julian date.\n @memberof UmmAlQuraCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var mcjdn = jd - 24e5 + 0.5;\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) break;\n index++;\n }\n var lunation = index + 15292;\n var ii = Math.floor((lunation - 1) / 12);\n var year = ii + 1;\n var month = lunation - 12 * ii;\n var day = mcjdn - ummalqura_dat[index - 1] + 1;\n return this.newDate(year, month, day);\n },\n /** Determine whether a date is valid for this calendar.\n @memberof UmmAlQuraCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n var valid = main.baseCalendar.prototype.isValid.apply(this, arguments);\n if (valid) {\n year = year.year != null ? year.year : year;\n valid = year >= 1276 && year <= 1500;\n }\n return valid;\n },\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof UmmAlQuraCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param month {number} The month to validate.\n @param day {number} The day to validate.\n @param error {string} Error message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n var date = main.baseCalendar.prototype._validate.apply(this, arguments);\n if (date.year < 1276 || date.year > 1500) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n return date;\n }\n });\n main.calendars.ummalqura = UmmAlQuraCalendar;\n var ummalqura_dat = [\n 20,\n 50,\n 79,\n 109,\n 138,\n 168,\n 197,\n 227,\n 256,\n 286,\n 315,\n 345,\n 374,\n 404,\n 433,\n 463,\n 492,\n 522,\n 551,\n 581,\n 611,\n 641,\n 670,\n 700,\n 729,\n 759,\n 788,\n 818,\n 847,\n 877,\n 906,\n 936,\n 965,\n 995,\n 1024,\n 1054,\n 1083,\n 1113,\n 1142,\n 1172,\n 1201,\n 1231,\n 1260,\n 1290,\n 1320,\n 1350,\n 1379,\n 1409,\n 1438,\n 1468,\n 1497,\n 1527,\n 1556,\n 1586,\n 1615,\n 1645,\n 1674,\n 1704,\n 1733,\n 1763,\n 1792,\n 1822,\n 1851,\n 1881,\n 1910,\n 1940,\n 1969,\n 1999,\n 2028,\n 2058,\n 2087,\n 2117,\n 2146,\n 2176,\n 2205,\n 2235,\n 2264,\n 2294,\n 2323,\n 2353,\n 2383,\n 2413,\n 2442,\n 2472,\n 2501,\n 2531,\n 2560,\n 2590,\n 2619,\n 2649,\n 2678,\n 2708,\n 2737,\n 2767,\n 2796,\n 2826,\n 2855,\n 2885,\n 2914,\n 2944,\n 2973,\n 3003,\n 3032,\n 3062,\n 3091,\n 3121,\n 3150,\n 3180,\n 3209,\n 3239,\n 3268,\n 3298,\n 3327,\n 3357,\n 3386,\n 3416,\n 3446,\n 3476,\n 3505,\n 3535,\n 3564,\n 3594,\n 3623,\n 3653,\n 3682,\n 3712,\n 3741,\n 3771,\n 3800,\n 3830,\n 3859,\n 3889,\n 3918,\n 3948,\n 3977,\n 4007,\n 4036,\n 4066,\n 4095,\n 4125,\n 4155,\n 4185,\n 4214,\n 4244,\n 4273,\n 4303,\n 4332,\n 4362,\n 4391,\n 4421,\n 4450,\n 4480,\n 4509,\n 4539,\n 4568,\n 4598,\n 4627,\n 4657,\n 4686,\n 4716,\n 4745,\n 4775,\n 4804,\n 4834,\n 4863,\n 4893,\n 4922,\n 4952,\n 4981,\n 5011,\n 5040,\n 5070,\n 5099,\n 5129,\n 5158,\n 5188,\n 5218,\n 5248,\n 5277,\n 5307,\n 5336,\n 5366,\n 5395,\n 5425,\n 5454,\n 5484,\n 5513,\n 5543,\n 5572,\n 5602,\n 5631,\n 5661,\n 5690,\n 5720,\n 5749,\n 5779,\n 5808,\n 5838,\n 5867,\n 5897,\n 5926,\n 5956,\n 5985,\n 6015,\n 6044,\n 6074,\n 6103,\n 6133,\n 6162,\n 6192,\n 6221,\n 6251,\n 6281,\n 6311,\n 6340,\n 6370,\n 6399,\n 6429,\n 6458,\n 6488,\n 6517,\n 6547,\n 6576,\n 6606,\n 6635,\n 6665,\n 6694,\n 6724,\n 6753,\n 6783,\n 6812,\n 6842,\n 6871,\n 6901,\n 6930,\n 6960,\n 6989,\n 7019,\n 7048,\n 7078,\n 7107,\n 7137,\n 7166,\n 7196,\n 7225,\n 7255,\n 7284,\n 7314,\n 7344,\n 7374,\n 7403,\n 7433,\n 7462,\n 7492,\n 7521,\n 7551,\n 7580,\n 7610,\n 7639,\n 7669,\n 7698,\n 7728,\n 7757,\n 7787,\n 7816,\n 7846,\n 7875,\n 7905,\n 7934,\n 7964,\n 7993,\n 8023,\n 8053,\n 8083,\n 8112,\n 8142,\n 8171,\n 8201,\n 8230,\n 8260,\n 8289,\n 8319,\n 8348,\n 8378,\n 8407,\n 8437,\n 8466,\n 8496,\n 8525,\n 8555,\n 8584,\n 8614,\n 8643,\n 8673,\n 8702,\n 8732,\n 8761,\n 8791,\n 8821,\n 8850,\n 8880,\n 8909,\n 8938,\n 8968,\n 8997,\n 9027,\n 9056,\n 9086,\n 9115,\n 9145,\n 9175,\n 9205,\n 9234,\n 9264,\n 9293,\n 9322,\n 9352,\n 9381,\n 9410,\n 9440,\n 9470,\n 9499,\n 9529,\n 9559,\n 9589,\n 9618,\n 9648,\n 9677,\n 9706,\n 9736,\n 9765,\n 9794,\n 9824,\n 9853,\n 9883,\n 9913,\n 9943,\n 9972,\n 10002,\n 10032,\n 10061,\n 10090,\n 10120,\n 10149,\n 10178,\n 10208,\n 10237,\n 10267,\n 10297,\n 10326,\n 10356,\n 10386,\n 10415,\n 10445,\n 10474,\n 10504,\n 10533,\n 10562,\n 10592,\n 10621,\n 10651,\n 10680,\n 10710,\n 10740,\n 10770,\n 10799,\n 10829,\n 10858,\n 10888,\n 10917,\n 10947,\n 10976,\n 11005,\n 11035,\n 11064,\n 11094,\n 11124,\n 11153,\n 11183,\n 11213,\n 11242,\n 11272,\n 11301,\n 11331,\n 11360,\n 11389,\n 11419,\n 11448,\n 11478,\n 11507,\n 11537,\n 11567,\n 11596,\n 11626,\n 11655,\n 11685,\n 11715,\n 11744,\n 11774,\n 11803,\n 11832,\n 11862,\n 11891,\n 11921,\n 11950,\n 11980,\n 12010,\n 12039,\n 12069,\n 12099,\n 12128,\n 12158,\n 12187,\n 12216,\n 12246,\n 12275,\n 12304,\n 12334,\n 12364,\n 12393,\n 12423,\n 12453,\n 12483,\n 12512,\n 12542,\n 12571,\n 12600,\n 12630,\n 12659,\n 12688,\n 12718,\n 12747,\n 12777,\n 12807,\n 12837,\n 12866,\n 12896,\n 12926,\n 12955,\n 12984,\n 13014,\n 13043,\n 13072,\n 13102,\n 13131,\n 13161,\n 13191,\n 13220,\n 13250,\n 13280,\n 13310,\n 13339,\n 13368,\n 13398,\n 13427,\n 13456,\n 13486,\n 13515,\n 13545,\n 13574,\n 13604,\n 13634,\n 13664,\n 13693,\n 13723,\n 13752,\n 13782,\n 13811,\n 13840,\n 13870,\n 13899,\n 13929,\n 13958,\n 13988,\n 14018,\n 14047,\n 14077,\n 14107,\n 14136,\n 14166,\n 14195,\n 14224,\n 14254,\n 14283,\n 14313,\n 14342,\n 14372,\n 14401,\n 14431,\n 14461,\n 14490,\n 14520,\n 14550,\n 14579,\n 14609,\n 14638,\n 14667,\n 14697,\n 14726,\n 14756,\n 14785,\n 14815,\n 14844,\n 14874,\n 14904,\n 14933,\n 14963,\n 14993,\n 15021,\n 15051,\n 15081,\n 15110,\n 15140,\n 15169,\n 15199,\n 15228,\n 15258,\n 15287,\n 15317,\n 15347,\n 15377,\n 15406,\n 15436,\n 15465,\n 15494,\n 15524,\n 15553,\n 15582,\n 15612,\n 15641,\n 15671,\n 15701,\n 15731,\n 15760,\n 15790,\n 15820,\n 15849,\n 15878,\n 15908,\n 15937,\n 15966,\n 15996,\n 16025,\n 16055,\n 16085,\n 16114,\n 16144,\n 16174,\n 16204,\n 16233,\n 16262,\n 16292,\n 16321,\n 16350,\n 16380,\n 16409,\n 16439,\n 16468,\n 16498,\n 16528,\n 16558,\n 16587,\n 16617,\n 16646,\n 16676,\n 16705,\n 16734,\n 16764,\n 16793,\n 16823,\n 16852,\n 16882,\n 16912,\n 16941,\n 16971,\n 17001,\n 17030,\n 17060,\n 17089,\n 17118,\n 17148,\n 17177,\n 17207,\n 17236,\n 17266,\n 17295,\n 17325,\n 17355,\n 17384,\n 17414,\n 17444,\n 17473,\n 17502,\n 17532,\n 17561,\n 17591,\n 17620,\n 17650,\n 17679,\n 17709,\n 17738,\n 17768,\n 17798,\n 17827,\n 17857,\n 17886,\n 17916,\n 17945,\n 17975,\n 18004,\n 18034,\n 18063,\n 18093,\n 18122,\n 18152,\n 18181,\n 18211,\n 18241,\n 18270,\n 18300,\n 18330,\n 18359,\n 18388,\n 18418,\n 18447,\n 18476,\n 18506,\n 18535,\n 18565,\n 18595,\n 18625,\n 18654,\n 18684,\n 18714,\n 18743,\n 18772,\n 18802,\n 18831,\n 18860,\n 18890,\n 18919,\n 18949,\n 18979,\n 19008,\n 19038,\n 19068,\n 19098,\n 19127,\n 19156,\n 19186,\n 19215,\n 19244,\n 19274,\n 19303,\n 19333,\n 19362,\n 19392,\n 19422,\n 19452,\n 19481,\n 19511,\n 19540,\n 19570,\n 19599,\n 19628,\n 19658,\n 19687,\n 19717,\n 19746,\n 19776,\n 19806,\n 19836,\n 19865,\n 19895,\n 19924,\n 19954,\n 19983,\n 20012,\n 20042,\n 20071,\n 20101,\n 20130,\n 20160,\n 20190,\n 20219,\n 20249,\n 20279,\n 20308,\n 20338,\n 20367,\n 20396,\n 20426,\n 20455,\n 20485,\n 20514,\n 20544,\n 20573,\n 20603,\n 20633,\n 20662,\n 20692,\n 20721,\n 20751,\n 20780,\n 20810,\n 20839,\n 20869,\n 20898,\n 20928,\n 20957,\n 20987,\n 21016,\n 21046,\n 21076,\n 21105,\n 21135,\n 21164,\n 21194,\n 21223,\n 21253,\n 21282,\n 21312,\n 21341,\n 21371,\n 21400,\n 21430,\n 21459,\n 21489,\n 21519,\n 21548,\n 21578,\n 21607,\n 21637,\n 21666,\n 21696,\n 21725,\n 21754,\n 21784,\n 21813,\n 21843,\n 21873,\n 21902,\n 21932,\n 21962,\n 21991,\n 22021,\n 22050,\n 22080,\n 22109,\n 22138,\n 22168,\n 22197,\n 22227,\n 22256,\n 22286,\n 22316,\n 22346,\n 22375,\n 22405,\n 22434,\n 22464,\n 22493,\n 22522,\n 22552,\n 22581,\n 22611,\n 22640,\n 22670,\n 22700,\n 22730,\n 22759,\n 22789,\n 22818,\n 22848,\n 22877,\n 22906,\n 22936,\n 22965,\n 22994,\n 23024,\n 23054,\n 23083,\n 23113,\n 23143,\n 23173,\n 23202,\n 23232,\n 23261,\n 23290,\n 23320,\n 23349,\n 23379,\n 23408,\n 23438,\n 23467,\n 23497,\n 23527,\n 23556,\n 23586,\n 23616,\n 23645,\n 23674,\n 23704,\n 23733,\n 23763,\n 23792,\n 23822,\n 23851,\n 23881,\n 23910,\n 23940,\n 23970,\n 23999,\n 24029,\n 24058,\n 24088,\n 24117,\n 24147,\n 24176,\n 24206,\n 24235,\n 24265,\n 24294,\n 24324,\n 24353,\n 24383,\n 24413,\n 24442,\n 24472,\n 24501,\n 24531,\n 24560,\n 24590,\n 24619,\n 24648,\n 24678,\n 24707,\n 24737,\n 24767,\n 24796,\n 24826,\n 24856,\n 24885,\n 24915,\n 24944,\n 24974,\n 25003,\n 25032,\n 25062,\n 25091,\n 25121,\n 25150,\n 25180,\n 25210,\n 25240,\n 25269,\n 25299,\n 25328,\n 25358,\n 25387,\n 25416,\n 25446,\n 25475,\n 25505,\n 25534,\n 25564,\n 25594,\n 25624,\n 25653,\n 25683,\n 25712,\n 25742,\n 25771,\n 25800,\n 25830,\n 25859,\n 25888,\n 25918,\n 25948,\n 25977,\n 26007,\n 26037,\n 26067,\n 26096,\n 26126,\n 26155,\n 26184,\n 26214,\n 26243,\n 26272,\n 26302,\n 26332,\n 26361,\n 26391,\n 26421,\n 26451,\n 26480,\n 26510,\n 26539,\n 26568,\n 26598,\n 26627,\n 26656,\n 26686,\n 26715,\n 26745,\n 26775,\n 26805,\n 26834,\n 26864,\n 26893,\n 26923,\n 26952,\n 26982,\n 27011,\n 27041,\n 27070,\n 27099,\n 27129,\n 27159,\n 27188,\n 27218,\n 27248,\n 27277,\n 27307,\n 27336,\n 27366,\n 27395,\n 27425,\n 27454,\n 27484,\n 27513,\n 27542,\n 27572,\n 27602,\n 27631,\n 27661,\n 27691,\n 27720,\n 27750,\n 27779,\n 27809,\n 27838,\n 27868,\n 27897,\n 27926,\n 27956,\n 27985,\n 28015,\n 28045,\n 28074,\n 28104,\n 28134,\n 28163,\n 28193,\n 28222,\n 28252,\n 28281,\n 28310,\n 28340,\n 28369,\n 28399,\n 28428,\n 28458,\n 28488,\n 28517,\n 28547,\n 28577,\n // From 1356\n 28607,\n 28636,\n 28665,\n 28695,\n 28724,\n 28754,\n 28783,\n 28813,\n 28843,\n 28872,\n 28901,\n 28931,\n 28960,\n 28990,\n 29019,\n 29049,\n 29078,\n 29108,\n 29137,\n 29167,\n 29196,\n 29226,\n 29255,\n 29285,\n 29315,\n 29345,\n 29375,\n 29404,\n 29434,\n 29463,\n 29492,\n 29522,\n 29551,\n 29580,\n 29610,\n 29640,\n 29669,\n 29699,\n 29729,\n 29759,\n 29788,\n 29818,\n 29847,\n 29876,\n 29906,\n 29935,\n 29964,\n 29994,\n 30023,\n 30053,\n 30082,\n 30112,\n 30141,\n 30171,\n 30200,\n 30230,\n 30259,\n 30289,\n 30318,\n 30348,\n 30378,\n 30408,\n 30437,\n 30467,\n 30496,\n 30526,\n 30555,\n 30585,\n 30614,\n 30644,\n 30673,\n 30703,\n 30732,\n 30762,\n 30791,\n 30821,\n 30850,\n 30880,\n 30909,\n 30939,\n 30968,\n 30998,\n 31027,\n 31057,\n 31086,\n 31116,\n 31145,\n 31175,\n 31204,\n 31234,\n 31263,\n 31293,\n 31322,\n 31352,\n 31381,\n 31411,\n 31441,\n 31471,\n 31500,\n 31530,\n 31559,\n 31589,\n 31618,\n 31648,\n 31676,\n 31706,\n 31736,\n 31766,\n 31795,\n 31825,\n 31854,\n 31884,\n 31913,\n 31943,\n 31972,\n 32002,\n 32031,\n 32061,\n 32090,\n 32120,\n 32150,\n 32180,\n 32209,\n 32239,\n 32268,\n 32298,\n 32327,\n 32357,\n 32386,\n 32416,\n 32445,\n 32475,\n 32504,\n 32534,\n 32563,\n 32593,\n 32622,\n 32652,\n 32681,\n 32711,\n 32740,\n 32770,\n 32799,\n 32829,\n 32858,\n 32888,\n 32917,\n 32947,\n 32976,\n 33006,\n 33035,\n 33065,\n 33094,\n 33124,\n 33153,\n 33183,\n 33213,\n 33243,\n 33272,\n 33302,\n 33331,\n 33361,\n 33390,\n 33420,\n 33450,\n 33479,\n 33509,\n 33539,\n 33568,\n 33598,\n 33627,\n 33657,\n 33686,\n 33716,\n 33745,\n 33775,\n 33804,\n 33834,\n 33863,\n 33893,\n 33922,\n 33952,\n 33981,\n 34011,\n 34040,\n 34069,\n 34099,\n 34128,\n 34158,\n 34187,\n 34217,\n 34247,\n 34277,\n 34306,\n 34336,\n 34365,\n 34395,\n 34424,\n 34454,\n 34483,\n 34512,\n 34542,\n 34571,\n 34601,\n 34631,\n 34660,\n 34690,\n 34719,\n 34749,\n 34778,\n 34808,\n 34837,\n 34867,\n 34896,\n 34926,\n 34955,\n 34985,\n 35015,\n 35044,\n 35074,\n 35103,\n 35133,\n 35162,\n 35192,\n 35222,\n 35251,\n 35280,\n 35310,\n 35340,\n 35370,\n 35399,\n 35429,\n 35458,\n 35488,\n 35517,\n 35547,\n 35576,\n 35605,\n 35635,\n 35665,\n 35694,\n 35723,\n 35753,\n 35782,\n 35811,\n 35841,\n 35871,\n 35901,\n 35930,\n 35960,\n 35989,\n 36019,\n 36048,\n 36078,\n 36107,\n 36136,\n 36166,\n 36195,\n 36225,\n 36254,\n 36284,\n 36314,\n 36343,\n 36373,\n 36403,\n 36433,\n 36462,\n 36492,\n 36521,\n 36551,\n 36580,\n 36610,\n 36639,\n 36669,\n 36698,\n 36728,\n 36757,\n 36786,\n 36816,\n 36845,\n 36875,\n 36904,\n 36934,\n 36963,\n 36993,\n 37022,\n 37052,\n 37081,\n 37111,\n 37141,\n 37170,\n 37200,\n 37229,\n 37259,\n 37288,\n 37318,\n 37347,\n 37377,\n 37406,\n 37436,\n 37465,\n 37495,\n 37524,\n 37554,\n 37584,\n 37613,\n 37643,\n 37672,\n 37701,\n 37731,\n 37760,\n 37790,\n 37819,\n 37849,\n 37878,\n 37908,\n 37938,\n 37967,\n 37997,\n 38027,\n 38056,\n 38085,\n 38115,\n 38144,\n 38174,\n 38203,\n 38233,\n 38262,\n 38292,\n 38322,\n 38351,\n 38381,\n 38410,\n 38440,\n 38469,\n 38499,\n 38528,\n 38558,\n 38587,\n 38617,\n 38646,\n 38676,\n 38705,\n 38735,\n 38764,\n 38794,\n 38823,\n 38853,\n 38882,\n 38912,\n 38941,\n 38971,\n 39001,\n 39030,\n 39059,\n 39089,\n 39118,\n 39148,\n 39178,\n 39208,\n 39237,\n 39267,\n 39297,\n 39326,\n 39355,\n 39385,\n 39414,\n 39444,\n 39473,\n 39503,\n 39532,\n 39562,\n 39592,\n 39621,\n 39650,\n 39680,\n 39709,\n 39739,\n 39768,\n 39798,\n 39827,\n 39857,\n 39886,\n 39916,\n 39946,\n 39975,\n 40005,\n 40035,\n 40064,\n 40094,\n 40123,\n 40153,\n 40182,\n 40212,\n 40241,\n 40271,\n 40300,\n 40330,\n 40359,\n 40389,\n 40418,\n 40448,\n 40477,\n 40507,\n 40536,\n 40566,\n 40595,\n 40625,\n 40655,\n 40685,\n 40714,\n 40744,\n 40773,\n 40803,\n 40832,\n 40862,\n 40892,\n 40921,\n 40951,\n 40980,\n 41009,\n 41039,\n 41068,\n 41098,\n 41127,\n 41157,\n 41186,\n 41216,\n 41245,\n 41275,\n 41304,\n 41334,\n 41364,\n 41393,\n 41422,\n 41452,\n 41481,\n 41511,\n 41540,\n 41570,\n 41599,\n 41629,\n 41658,\n 41688,\n 41718,\n 41748,\n 41777,\n 41807,\n 41836,\n 41865,\n 41894,\n 41924,\n 41953,\n 41983,\n 42012,\n 42042,\n 42072,\n 42102,\n 42131,\n 42161,\n 42190,\n 42220,\n 42249,\n 42279,\n 42308,\n 42337,\n 42367,\n 42397,\n 42426,\n 42456,\n 42485,\n 42515,\n 42545,\n 42574,\n 42604,\n 42633,\n 42662,\n 42692,\n 42721,\n 42751,\n 42780,\n 42810,\n 42839,\n 42869,\n 42899,\n 42929,\n 42958,\n 42988,\n 43017,\n 43046,\n 43076,\n 43105,\n 43135,\n 43164,\n 43194,\n 43223,\n 43253,\n 43283,\n 43312,\n 43342,\n 43371,\n 43401,\n 43430,\n 43460,\n 43489,\n 43519,\n 43548,\n 43578,\n 43607,\n 43637,\n 43666,\n 43696,\n 43726,\n 43755,\n 43785,\n 43814,\n 43844,\n 43873,\n 43903,\n 43932,\n 43962,\n 43991,\n 44021,\n 44050,\n 44080,\n 44109,\n 44139,\n 44169,\n 44198,\n 44228,\n 44258,\n 44287,\n 44317,\n 44346,\n 44375,\n 44405,\n 44434,\n 44464,\n 44493,\n 44523,\n 44553,\n 44582,\n 44612,\n 44641,\n 44671,\n 44700,\n 44730,\n 44759,\n 44788,\n 44818,\n 44847,\n 44877,\n 44906,\n 44936,\n 44966,\n 44996,\n 45025,\n 45055,\n 45084,\n 45114,\n 45143,\n 45172,\n 45202,\n 45231,\n 45261,\n 45290,\n 45320,\n 45350,\n 45380,\n 45409,\n 45439,\n 45468,\n 45498,\n 45527,\n 45556,\n 45586,\n 45615,\n 45644,\n 45674,\n 45704,\n 45733,\n 45763,\n 45793,\n 45823,\n 45852,\n 45882,\n 45911,\n 45940,\n 45970,\n 45999,\n 46028,\n 46058,\n 46088,\n 46117,\n 46147,\n 46177,\n 46206,\n 46236,\n 46265,\n 46295,\n 46324,\n 46354,\n 46383,\n 46413,\n 46442,\n 46472,\n 46501,\n 46531,\n 46560,\n 46590,\n 46620,\n 46649,\n 46679,\n 46708,\n 46738,\n 46767,\n 46797,\n 46826,\n 46856,\n 46885,\n 46915,\n 46944,\n 46974,\n 47003,\n 47033,\n 47063,\n 47092,\n 47122,\n 47151,\n 47181,\n 47210,\n 47240,\n 47269,\n 47298,\n 47328,\n 47357,\n 47387,\n 47417,\n 47446,\n 47476,\n 47506,\n 47535,\n 47565,\n 47594,\n 47624,\n 47653,\n 47682,\n 47712,\n 47741,\n 47771,\n 47800,\n 47830,\n 47860,\n 47890,\n 47919,\n 47949,\n 47978,\n 48008,\n 48037,\n 48066,\n 48096,\n 48125,\n 48155,\n 48184,\n 48214,\n 48244,\n 48273,\n 48303,\n 48333,\n 48362,\n 48392,\n 48421,\n 48450,\n 48480,\n 48509,\n 48538,\n 48568,\n 48598,\n 48627,\n 48657,\n 48687,\n 48717,\n 48746,\n 48776,\n 48805,\n 48834,\n 48864,\n 48893,\n 48922,\n 48952,\n 48982,\n 49011,\n 49041,\n 49071,\n 49100,\n 49130,\n 49160,\n 49189,\n 49218,\n 49248,\n 49277,\n 49306,\n 49336,\n 49365,\n 49395,\n 49425,\n 49455,\n 49484,\n 49514,\n 49543,\n 49573,\n 49602,\n 49632,\n 49661,\n 49690,\n 49720,\n 49749,\n 49779,\n 49809,\n 49838,\n 49868,\n 49898,\n 49927,\n 49957,\n 49986,\n 50016,\n 50045,\n 50075,\n 50104,\n 50133,\n 50163,\n 50192,\n 50222,\n 50252,\n 50281,\n 50311,\n 50340,\n 50370,\n 50400,\n 50429,\n 50459,\n 50488,\n 50518,\n 50547,\n 50576,\n 50606,\n 50635,\n 50665,\n 50694,\n 50724,\n 50754,\n 50784,\n 50813,\n 50843,\n 50872,\n 50902,\n 50931,\n 50960,\n 50990,\n 51019,\n 51049,\n 51078,\n 51108,\n 51138,\n 51167,\n 51197,\n 51227,\n 51256,\n 51286,\n 51315,\n 51345,\n 51374,\n 51403,\n 51433,\n 51462,\n 51492,\n 51522,\n 51552,\n 51582,\n 51611,\n 51641,\n 51670,\n 51699,\n 51729,\n 51758,\n 51787,\n 51816,\n 51846,\n 51876,\n 51906,\n 51936,\n 51965,\n 51995,\n 52025,\n 52054,\n 52083,\n 52113,\n 52142,\n 52171,\n 52200,\n 52230,\n 52260,\n 52290,\n 52319,\n 52349,\n 52379,\n 52408,\n 52438,\n 52467,\n 52497,\n 52526,\n 52555,\n 52585,\n 52614,\n 52644,\n 52673,\n 52703,\n 52733,\n 52762,\n 52792,\n 52822,\n 52851,\n 52881,\n 52910,\n 52939,\n 52969,\n 52998,\n 53028,\n 53057,\n 53087,\n 53116,\n 53146,\n 53176,\n 53205,\n 53235,\n 53264,\n 53294,\n 53324,\n 53353,\n 53383,\n 53412,\n 53441,\n 53471,\n 53500,\n 53530,\n 53559,\n 53589,\n 53619,\n 53648,\n 53678,\n 53708,\n 53737,\n 53767,\n 53796,\n 53825,\n 53855,\n 53884,\n 53913,\n 53943,\n 53973,\n 54003,\n 54032,\n 54062,\n 54092,\n 54121,\n 54151,\n 54180,\n 54209,\n 54239,\n 54268,\n 54297,\n 54327,\n 54357,\n 54387,\n 54416,\n 54446,\n 54476,\n 54505,\n 54535,\n 54564,\n 54593,\n 54623,\n 54652,\n 54681,\n 54711,\n 54741,\n 54770,\n 54800,\n 54830,\n 54859,\n 54889,\n 54919,\n 54948,\n 54977,\n 55007,\n 55036,\n 55066,\n 55095,\n 55125,\n 55154,\n 55184,\n 55213,\n 55243,\n 55273,\n 55302,\n 55332,\n 55361,\n 55391,\n 55420,\n 55450,\n 55479,\n 55508,\n 55538,\n 55567,\n 55597,\n 55627,\n 55657,\n 55686,\n 55716,\n 55745,\n 55775,\n 55804,\n 55834,\n 55863,\n 55892,\n 55922,\n 55951,\n 55981,\n 56011,\n 56040,\n 56070,\n 56100,\n 56129,\n 56159,\n 56188,\n 56218,\n 56247,\n 56276,\n 56306,\n 56335,\n 56365,\n 56394,\n 56424,\n 56454,\n 56483,\n 56513,\n 56543,\n 56572,\n 56601,\n 56631,\n 56660,\n 56690,\n 56719,\n 56749,\n 56778,\n 56808,\n 56837,\n 56867,\n 56897,\n 56926,\n 56956,\n 56985,\n 57015,\n 57044,\n 57074,\n 57103,\n 57133,\n 57162,\n 57192,\n 57221,\n 57251,\n 57280,\n 57310,\n 57340,\n 57369,\n 57399,\n 57429,\n 57458,\n 57487,\n 57517,\n 57546,\n 57576,\n 57605,\n 57634,\n 57664,\n 57694,\n 57723,\n 57753,\n 57783,\n 57813,\n 57842,\n 57871,\n 57901,\n 57930,\n 57959,\n 57989,\n 58018,\n 58048,\n 58077,\n 58107,\n 58137,\n 58167,\n 58196,\n 58226,\n 58255,\n 58285,\n 58314,\n 58343,\n 58373,\n 58402,\n 58432,\n 58461,\n 58491,\n 58521,\n 58551,\n 58580,\n 58610,\n 58639,\n 58669,\n 58698,\n 58727,\n 58757,\n 58786,\n 58816,\n 58845,\n 58875,\n 58905,\n 58934,\n 58964,\n 58994,\n 59023,\n 59053,\n 59082,\n 59111,\n 59141,\n 59170,\n 59200,\n 59229,\n 59259,\n 59288,\n 59318,\n 59348,\n 59377,\n 59407,\n 59436,\n 59466,\n 59495,\n 59525,\n 59554,\n 59584,\n 59613,\n 59643,\n 59672,\n 59702,\n 59731,\n 59761,\n 59791,\n 59820,\n 59850,\n 59879,\n 59909,\n 59939,\n 59968,\n 59997,\n 60027,\n 60056,\n 60086,\n 60115,\n 60145,\n 60174,\n 60204,\n 60234,\n 60264,\n 60293,\n 60323,\n 60352,\n 60381,\n 60411,\n 60440,\n 60469,\n 60499,\n 60528,\n 60558,\n 60588,\n 60618,\n 60648,\n 60677,\n 60707,\n 60736,\n 60765,\n 60795,\n 60824,\n 60853,\n 60883,\n 60912,\n 60942,\n 60972,\n 61002,\n 61031,\n 61061,\n 61090,\n 61120,\n 61149,\n 61179,\n 61208,\n 61237,\n 61267,\n 61296,\n 61326,\n 61356,\n 61385,\n 61415,\n 61445,\n 61474,\n 61504,\n 61533,\n 61563,\n 61592,\n 61621,\n 61651,\n 61680,\n 61710,\n 61739,\n 61769,\n 61799,\n 61828,\n 61858,\n 61888,\n 61917,\n 61947,\n 61976,\n 62006,\n 62035,\n 62064,\n 62094,\n 62123,\n 62153,\n 62182,\n 62212,\n 62242,\n 62271,\n 62301,\n 62331,\n 62360,\n 62390,\n 62419,\n 62448,\n 62478,\n 62507,\n 62537,\n 62566,\n 62596,\n 62625,\n 62655,\n 62685,\n 62715,\n 62744,\n 62774,\n 62803,\n 62832,\n 62862,\n 62891,\n 62921,\n 62950,\n 62980,\n 63009,\n 63039,\n 63069,\n 63099,\n 63128,\n 63157,\n 63187,\n 63216,\n 63246,\n 63275,\n 63305,\n 63334,\n 63363,\n 63393,\n 63423,\n 63453,\n 63482,\n 63512,\n 63541,\n 63571,\n 63600,\n 63630,\n 63659,\n 63689,\n 63718,\n 63747,\n 63777,\n 63807,\n 63836,\n 63866,\n 63895,\n 63925,\n 63955,\n 63984,\n 64014,\n 64043,\n 64073,\n 64102,\n 64131,\n 64161,\n 64190,\n 64220,\n 64249,\n 64279,\n 64309,\n 64339,\n 64368,\n 64398,\n 64427,\n 64457,\n 64486,\n 64515,\n 64545,\n 64574,\n 64603,\n 64633,\n 64663,\n 64692,\n 64722,\n 64752,\n 64782,\n 64811,\n 64841,\n 64870,\n 64899,\n 64929,\n 64958,\n 64987,\n 65017,\n 65047,\n 65076,\n 65106,\n 65136,\n 65166,\n 65195,\n 65225,\n 65254,\n 65283,\n 65313,\n 65342,\n 65371,\n 65401,\n 65431,\n 65460,\n 65490,\n 65520,\n 65549,\n 65579,\n 65608,\n 65638,\n 65667,\n 65697,\n 65726,\n 65755,\n 65785,\n 65815,\n 65844,\n 65874,\n 65903,\n 65933,\n 65963,\n 65992,\n 66022,\n 66051,\n 66081,\n 66110,\n 66140,\n 66169,\n 66199,\n 66228,\n 66258,\n 66287,\n 66317,\n 66346,\n 66376,\n 66405,\n 66435,\n 66465,\n 66494,\n 66524,\n 66553,\n 66583,\n 66612,\n 66641,\n 66671,\n 66700,\n 66730,\n 66760,\n 66789,\n 66819,\n 66849,\n 66878,\n 66908,\n 66937,\n 66967,\n 66996,\n 67025,\n 67055,\n 67084,\n 67114,\n 67143,\n 67173,\n 67203,\n 67233,\n 67262,\n 67292,\n 67321,\n 67351,\n 67380,\n 67409,\n 67439,\n 67468,\n 67497,\n 67527,\n 67557,\n 67587,\n 67617,\n 67646,\n 67676,\n 67705,\n 67735,\n 67764,\n 67793,\n 67823,\n 67852,\n 67882,\n 67911,\n 67941,\n 67971,\n 68e3,\n 68030,\n 68060,\n 68089,\n 68119,\n 68148,\n 68177,\n 68207,\n 68236,\n 68266,\n 68295,\n 68325,\n 68354,\n 68384,\n 68414,\n 68443,\n 68473,\n 68502,\n 68532,\n 68561,\n 68591,\n 68620,\n 68650,\n 68679,\n 68708,\n 68738,\n 68768,\n 68797,\n 68827,\n 68857,\n 68886,\n 68916,\n 68946,\n 68975,\n 69004,\n 69034,\n 69063,\n 69092,\n 69122,\n 69152,\n 69181,\n 69211,\n 69240,\n 69270,\n 69300,\n 69330,\n 69359,\n 69388,\n 69418,\n 69447,\n 69476,\n 69506,\n 69535,\n 69565,\n 69595,\n 69624,\n 69654,\n 69684,\n 69713,\n 69743,\n 69772,\n 69802,\n 69831,\n 69861,\n 69890,\n 69919,\n 69949,\n 69978,\n 70008,\n 70038,\n 70067,\n 70097,\n 70126,\n 70156,\n 70186,\n 70215,\n 70245,\n 70274,\n 70303,\n 70333,\n 70362,\n 70392,\n 70421,\n 70451,\n 70481,\n 70510,\n 70540,\n 70570,\n 70599,\n 70629,\n 70658,\n 70687,\n 70717,\n 70746,\n 70776,\n 70805,\n 70835,\n 70864,\n 70894,\n 70924,\n 70954,\n 70983,\n 71013,\n 71042,\n 71071,\n 71101,\n 71130,\n 71159,\n 71189,\n 71218,\n 71248,\n 71278,\n 71308,\n 71337,\n 71367,\n 71397,\n 71426,\n 71455,\n 71485,\n 71514,\n 71543,\n 71573,\n 71602,\n 71632,\n 71662,\n 71691,\n 71721,\n 71751,\n 71781,\n 71810,\n 71839,\n 71869,\n 71898,\n 71927,\n 71957,\n 71986,\n 72016,\n 72046,\n 72075,\n 72105,\n 72135,\n 72164,\n 72194,\n 72223,\n 72253,\n 72282,\n 72311,\n 72341,\n 72370,\n 72400,\n 72429,\n 72459,\n 72489,\n 72518,\n 72548,\n 72577,\n 72607,\n 72637,\n 72666,\n 72695,\n 72725,\n 72754,\n 72784,\n 72813,\n 72843,\n 72872,\n 72902,\n 72931,\n 72961,\n 72991,\n 73020,\n 73050,\n 73080,\n 73109,\n 73139,\n 73168,\n 73197,\n 73227,\n 73256,\n 73286,\n 73315,\n 73345,\n 73375,\n 73404,\n 73434,\n 73464,\n 73493,\n 73523,\n 73552,\n 73581,\n 73611,\n 73640,\n 73669,\n 73699,\n 73729,\n 73758,\n 73788,\n 73818,\n 73848,\n 73877,\n 73907,\n 73936,\n 73965,\n 73995,\n 74024,\n 74053,\n 74083,\n 74113,\n 74142,\n 74172,\n 74202,\n 74231,\n 74261,\n 74291,\n 74320,\n 74349,\n 74379,\n 74408,\n 74437,\n 74467,\n 74497,\n 74526,\n 74556,\n 74586,\n 74615,\n 74645,\n 74675,\n 74704,\n 74733,\n 74763,\n 74792,\n 74822,\n 74851,\n 74881,\n 74910,\n 74940,\n 74969,\n 74999,\n 75029,\n 75058,\n 75088,\n 75117,\n 75147,\n 75176,\n 75206,\n 75235,\n 75264,\n 75294,\n 75323,\n 75353,\n 75383,\n 75412,\n 75442,\n 75472,\n 75501,\n 75531,\n 75560,\n 75590,\n 75619,\n 75648,\n 75678,\n 75707,\n 75737,\n 75766,\n 75796,\n 75826,\n 75856,\n 75885,\n 75915,\n 75944,\n 75974,\n 76003,\n 76032,\n 76062,\n 76091,\n 76121,\n 76150,\n 76180,\n 76210,\n 76239,\n 76269,\n 76299,\n 76328,\n 76358,\n 76387,\n 76416,\n 76446,\n 76475,\n 76505,\n 76534,\n 76564,\n 76593,\n 76623,\n 76653,\n 76682,\n 76712,\n 76741,\n 76771,\n 76801,\n 76830,\n 76859,\n 76889,\n 76918,\n 76948,\n 76977,\n 77007,\n 77036,\n 77066,\n 77096,\n 77125,\n 77155,\n 77185,\n 77214,\n 77243,\n 77273,\n 77302,\n 77332,\n 77361,\n 77390,\n 77420,\n 77450,\n 77479,\n 77509,\n 77539,\n 77569,\n 77598,\n 77627,\n 77657,\n 77686,\n 77715,\n 77745,\n 77774,\n 77804,\n 77833,\n 77863,\n 77893,\n 77923,\n 77952,\n 77982,\n 78011,\n 78041,\n 78070,\n 78099,\n 78129,\n 78158,\n 78188,\n 78217,\n 78247,\n 78277,\n 78307,\n 78336,\n 78366,\n 78395,\n 78425,\n 78454,\n 78483,\n 78513,\n 78542,\n 78572,\n 78601,\n 78631,\n 78661,\n 78690,\n 78720,\n 78750,\n 78779,\n 78808,\n 78838,\n 78867,\n 78897,\n 78926,\n 78956,\n 78985,\n 79015,\n 79044,\n 79074,\n 79104,\n 79133,\n 79163,\n 79192,\n 79222,\n 79251,\n 79281,\n 79310,\n 79340,\n 79369,\n 79399,\n 79428,\n 79458,\n 79487,\n 79517,\n 79546,\n 79576,\n 79606,\n 79635,\n 79665,\n 79695,\n 79724,\n 79753,\n 79783,\n 79812,\n 79841,\n 79871,\n 79900,\n 79930,\n 79960,\n 79990\n ];\n }\n });\n\n // src/components/calendars/calendars.js\n var require_calendars = __commonJS({\n \"src/components/calendars/calendars.js\"(exports, module) {\n \"use strict\";\n module.exports = require_main();\n require_plus();\n require_chinese();\n require_coptic();\n require_discworld();\n require_ethiopian();\n require_hebrew();\n require_islamic();\n require_julian();\n require_mayan();\n require_nanakshahi();\n require_nepali();\n require_persian();\n require_taiwan();\n require_thai();\n require_ummalqura();\n }\n });\n\n // src/components/calendars/index.js\n var require_calendars2 = __commonJS({\n \"src/components/calendars/index.js\"(exports, module) {\n \"use strict\";\n var calendars = require_calendars();\n var Lib = require_lib();\n var constants = require_numerical();\n var EPOCHJD = constants.EPOCHJD;\n var ONEDAY = constants.ONEDAY;\n var attributes = {\n valType: \"enumerated\",\n values: Lib.sortObjectKeys(calendars.calendars),\n editType: \"calc\",\n dflt: \"gregorian\"\n };\n var handleDefaults = function(contIn, contOut, attr, dflt) {\n var attrs = {};\n attrs[attr] = attributes;\n return Lib.coerce(contIn, contOut, attrs, attr, dflt);\n };\n var handleTraceDefaults = function(traceIn, traceOut, coords, layout) {\n for (var i = 0; i < coords.length; i++) {\n handleDefaults(traceIn, traceOut, coords[i] + \"calendar\", layout.calendar);\n }\n };\n var CANONICAL_TICK = {\n chinese: \"2000-01-01\",\n coptic: \"2000-01-01\",\n discworld: \"2000-01-01\",\n ethiopian: \"2000-01-01\",\n hebrew: \"5000-01-01\",\n islamic: \"1000-01-01\",\n julian: \"2000-01-01\",\n mayan: \"5000-01-01\",\n nanakshahi: \"1000-01-01\",\n nepali: \"2000-01-01\",\n persian: \"1000-01-01\",\n jalali: \"1000-01-01\",\n taiwan: \"1000-01-01\",\n thai: \"2000-01-01\",\n ummalqura: \"1400-01-01\"\n };\n var CANONICAL_SUNDAY = {\n chinese: \"2000-01-02\",\n coptic: \"2000-01-03\",\n discworld: \"2000-01-03\",\n ethiopian: \"2000-01-05\",\n hebrew: \"5000-01-01\",\n islamic: \"1000-01-02\",\n julian: \"2000-01-03\",\n mayan: \"5000-01-01\",\n nanakshahi: \"1000-01-05\",\n nepali: \"2000-01-05\",\n persian: \"1000-01-01\",\n jalali: \"1000-01-01\",\n taiwan: \"1000-01-04\",\n thai: \"2000-01-04\",\n ummalqura: \"1400-01-06\"\n };\n var DFLTRANGE = {\n chinese: [\"2000-01-01\", \"2001-01-01\"],\n coptic: [\"1700-01-01\", \"1701-01-01\"],\n discworld: [\"1800-01-01\", \"1801-01-01\"],\n ethiopian: [\"2000-01-01\", \"2001-01-01\"],\n hebrew: [\"5700-01-01\", \"5701-01-01\"],\n islamic: [\"1400-01-01\", \"1401-01-01\"],\n julian: [\"2000-01-01\", \"2001-01-01\"],\n mayan: [\"5200-01-01\", \"5201-01-01\"],\n nanakshahi: [\"0500-01-01\", \"0501-01-01\"],\n nepali: [\"2000-01-01\", \"2001-01-01\"],\n persian: [\"1400-01-01\", \"1401-01-01\"],\n jalali: [\"1400-01-01\", \"1401-01-01\"],\n taiwan: [\"0100-01-01\", \"0101-01-01\"],\n thai: [\"2500-01-01\", \"2501-01-01\"],\n ummalqura: [\"1400-01-01\", \"1401-01-01\"]\n };\n var UNKNOWN = \"##\";\n var d3ToWorldCalendars = {\n d: { 0: \"dd\", \"-\": \"d\" },\n // 2-digit or unpadded day of month\n e: { 0: \"d\", \"-\": \"d\" },\n // alternate, always unpadded day of month\n a: { 0: \"D\", \"-\": \"D\" },\n // short weekday name\n A: { 0: \"DD\", \"-\": \"DD\" },\n // full weekday name\n j: { 0: \"oo\", \"-\": \"o\" },\n // 3-digit or unpadded day of the year\n W: { 0: \"ww\", \"-\": \"w\" },\n // 2-digit or unpadded week of the year (Monday first)\n m: { 0: \"mm\", \"-\": \"m\" },\n // 2-digit or unpadded month number\n b: { 0: \"M\", \"-\": \"M\" },\n // short month name\n B: { 0: \"MM\", \"-\": \"MM\" },\n // full month name\n y: { 0: \"yy\", \"-\": \"yy\" },\n // 2-digit year (map unpadded to zero-padded)\n Y: { 0: \"yyyy\", \"-\": \"yyyy\" },\n // 4-digit year (map unpadded to zero-padded)\n U: UNKNOWN,\n // Sunday-first week of the year\n w: UNKNOWN,\n // day of the week [0(sunday),6]\n // combined format, we replace the date part with the world-calendar version\n // and the %X stays there for d3 to handle with time parts\n c: { 0: \"D M d %X yyyy\", \"-\": \"D M d %X yyyy\" },\n x: { 0: \"mm/dd/yyyy\", \"-\": \"mm/dd/yyyy\" }\n };\n function worldCalFmt(fmt, x, calendar) {\n var dateJD = Math.floor((x + 0.05) / ONEDAY) + EPOCHJD;\n var cDate = getCal(calendar).fromJD(dateJD);\n var i = 0;\n var modifier, directive, directiveLen, directiveObj, replacementPart;\n while ((i = fmt.indexOf(\"%\", i)) !== -1) {\n modifier = fmt.charAt(i + 1);\n if (modifier === \"0\" || modifier === \"-\" || modifier === \"_\") {\n directiveLen = 3;\n directive = fmt.charAt(i + 2);\n if (modifier === \"_\") modifier = \"-\";\n } else {\n directive = modifier;\n modifier = \"0\";\n directiveLen = 2;\n }\n directiveObj = d3ToWorldCalendars[directive];\n if (!directiveObj) {\n i += directiveLen;\n } else {\n if (directiveObj === UNKNOWN) replacementPart = UNKNOWN;\n else replacementPart = cDate.formatDate(directiveObj[modifier]);\n fmt = fmt.substr(0, i) + replacementPart + fmt.substr(i + directiveLen);\n i += replacementPart.length;\n }\n }\n return fmt;\n }\n var allCals = {};\n function getCal(calendar) {\n var calendarObj = allCals[calendar];\n if (calendarObj) return calendarObj;\n calendarObj = allCals[calendar] = calendars.instance(calendar);\n return calendarObj;\n }\n function makeAttrs(description) {\n return Lib.extendFlat({}, attributes, { description });\n }\n function makeTraceAttrsDescription(coord) {\n return \"Sets the calendar system to use with `\" + coord + \"` date data.\";\n }\n var xAttrs = {\n xcalendar: makeAttrs(makeTraceAttrsDescription(\"x\"))\n };\n var xyAttrs = Lib.extendFlat({}, xAttrs, {\n ycalendar: makeAttrs(makeTraceAttrsDescription(\"y\"))\n });\n var xyzAttrs = Lib.extendFlat({}, xyAttrs, {\n zcalendar: makeAttrs(makeTraceAttrsDescription(\"z\"))\n });\n var axisAttrs = makeAttrs([\n \"Sets the calendar system to use for `range` and `tick0`\",\n \"if this is a date axis. This does not set the calendar for\",\n \"interpreting data on this axis, that's specified in the trace\",\n \"or via the global `layout.calendar`\"\n ].join(\" \"));\n module.exports = {\n moduleType: \"component\",\n name: \"calendars\",\n schema: {\n traces: {\n scatter: xyAttrs,\n bar: xyAttrs,\n box: xyAttrs,\n heatmap: xyAttrs,\n contour: xyAttrs,\n histogram: xyAttrs,\n histogram2d: xyAttrs,\n histogram2dcontour: xyAttrs,\n scatter3d: xyzAttrs,\n surface: xyzAttrs,\n mesh3d: xyzAttrs,\n scattergl: xyAttrs,\n ohlc: xAttrs,\n candlestick: xAttrs\n },\n layout: {\n calendar: makeAttrs([\n \"Sets the default calendar system to use for interpreting and\",\n \"displaying dates throughout the plot.\"\n ].join(\" \"))\n },\n subplots: {\n xaxis: { calendar: axisAttrs },\n yaxis: { calendar: axisAttrs },\n scene: {\n xaxis: { calendar: axisAttrs },\n // TODO: it's actually redundant to include yaxis and zaxis here\n // because in the scene attributes these are the same object so merging\n // into one merges into them all. However, I left them in for parity with\n // cartesian, where yaxis is unused until we Plotschema.get() when we\n // use its presence or absence to determine whether to delete attributes\n // from yaxis if they only apply to x (rangeselector/rangeslider)\n yaxis: { calendar: axisAttrs },\n zaxis: { calendar: axisAttrs }\n },\n polar: {\n radialaxis: { calendar: axisAttrs }\n }\n }\n },\n layoutAttributes: attributes,\n handleDefaults,\n handleTraceDefaults,\n CANONICAL_SUNDAY,\n CANONICAL_TICK,\n DFLTRANGE,\n getCal,\n worldCalFmt\n };\n }\n });\n\n // lib/calendars.js\n var require_calendars3 = __commonJS({\n \"lib/calendars.js\"(exports, module) {\n \"use strict\";\n module.exports = require_calendars2();\n }\n });\n\n // lib/index.js\n var require_lib2 = __commonJS({\n \"lib/index.js\"(exports, module) {\n var Plotly = require_core2();\n Plotly.register([\n // traces\n require_bar2(),\n require_box2(),\n require_heatmap2(),\n require_histogram2(),\n require_histogram2d2(),\n require_histogram2dcontour2(),\n require_contour2(),\n require_scatterternary2(),\n require_violin2(),\n require_funnel2(),\n require_waterfall2(),\n require_image2(),\n require_pie2(),\n require_sunburst2(),\n require_treemap2(),\n require_icicle2(),\n require_funnelarea2(),\n require_scatter3d2(),\n require_surface2(),\n require_isosurface2(),\n require_volume2(),\n require_mesh3d2(),\n require_cone2(),\n require_streamtube2(),\n require_scattergeo2(),\n require_choropleth2(),\n require_scattergl2(),\n require_splom2(),\n require_parcoords3(),\n require_parcats3(),\n require_scattermapbox2(),\n require_choroplethmapbox2(),\n require_densitymapbox2(),\n require_scattermap2(),\n require_choroplethmap2(),\n require_densitymap2(),\n require_sankey2(),\n require_indicator2(),\n require_table2(),\n require_carpet2(),\n require_scattercarpet2(),\n require_contourcarpet2(),\n require_ohlc2(),\n require_candlestick2(),\n require_scatterpolar2(),\n require_scatterpolargl2(),\n require_barpolar2(),\n require_scattersmith2(),\n // components\n require_calendars3()\n ]);\n module.exports = Plotly;\n }\n });\n return require_lib2();\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*!\n * pad-left \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT license.\n */\n/*!\n * repeat-string \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n/*! Bundled license information:\n\nnative-promise-only/lib/npo.src.js:\n (*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n *)\n\npolybooljs/index.js:\n (*\n * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc\n * @license MIT\n * @preserve Project Home: https://github.com/voidqk/polybooljs\n *)\n\nieee754/index.js:\n (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *)\n\nbuffer/index.js:\n (*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n *)\n\nsafe-buffer/index.js:\n (*! safe-buffer. MIT License. Feross Aboukhadijeh *)\n\nassert/build/internal/util/comparisons.js:\n (*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n *)\n\nobject-assign/index.js:\n (*\n object-assign\n (c) Sindre Sorhus\n @license MIT\n *)\n\nmaplibre-gl/dist/maplibre-gl.js:\n (**\n * MapLibre GL JS\n * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v4.7.1/LICENSE.txt\n *)\n*/\n\nwindow.Plotly = Plotly;\nreturn Plotly;\n}));","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 {\n if (this.unmounting) {\n return;\n }\n if (!this.el) {\n throw new Error('Missing element reference');\n }\n // eslint-disable-next-line consistent-return\n return Plotly.react(this.el, {\n data: this.props.data,\n layout: this.props.layout,\n config: this.props.config,\n frames: this.props.frames,\n });\n })\n .then(() => {\n if (this.unmounting) {\n return;\n }\n this.syncWindowResize(shouldInvokeResizeHandler);\n this.syncEventHandlers();\n this.figureCallback(figureCallbackFunction);\n if (shouldAttachUpdateEvents) {\n this.attachUpdateEvents();\n }\n })\n .catch((err) => {\n if (this.props.onError) {\n this.props.onError(err);\n }\n });\n }\n\n componentDidMount() {\n this.unmounting = false;\n\n this.updatePlotly(true, this.props.onInitialized, true);\n }\n\n componentDidUpdate(prevProps) {\n this.unmounting = false;\n\n // frames *always* changes identity so fall back to check length only :(\n const numPrevFrames =\n prevProps.frames && prevProps.frames.length ? prevProps.frames.length : 0;\n const numNextFrames =\n this.props.frames && this.props.frames.length ? this.props.frames.length : 0;\n\n const figureChanged = !(\n prevProps.layout === this.props.layout &&\n prevProps.data === this.props.data &&\n prevProps.config === this.props.config &&\n numNextFrames === numPrevFrames\n );\n const revisionDefined = prevProps.revision !== void 0;\n const revisionChanged = prevProps.revision !== this.props.revision;\n\n if (!figureChanged && (!revisionDefined || (revisionDefined && !revisionChanged))) {\n return;\n }\n\n this.updatePlotly(false, this.props.onUpdate, false);\n }\n\n componentWillUnmount() {\n this.unmounting = true;\n\n this.figureCallback(this.props.onPurge);\n\n if (this.resizeHandler && isBrowser) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n\n this.removeUpdateEvents();\n\n Plotly.purge(this.el);\n }\n\n attachUpdateEvents() {\n if (!this.el || !this.el.removeListener) {\n return;\n }\n\n updateEvents.forEach((updateEvent) => {\n this.el.on(updateEvent, this.handleUpdate);\n });\n }\n\n removeUpdateEvents() {\n if (!this.el || !this.el.removeListener) {\n return;\n }\n\n updateEvents.forEach((updateEvent) => {\n this.el.removeListener(updateEvent, this.handleUpdate);\n });\n }\n\n handleUpdate() {\n this.figureCallback(this.props.onUpdate);\n }\n\n figureCallback(callback) {\n if (typeof callback === 'function') {\n const {data, layout} = this.el;\n const frames = this.el._transitionData ? this.el._transitionData._frames : null;\n const figure = {data, layout, frames};\n callback(figure, this.el);\n }\n }\n\n syncWindowResize(invoke) {\n if (!isBrowser) {\n return;\n }\n\n if (this.props.useResizeHandler && !this.resizeHandler) {\n this.resizeHandler = () => Plotly.Plots.resize(this.el);\n window.addEventListener('resize', this.resizeHandler);\n if (invoke) {\n this.resizeHandler();\n }\n } else if (!this.props.useResizeHandler && this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n getRef(el) {\n this.el = el;\n\n if (this.props.debug && isBrowser) {\n window.gd = this.el;\n }\n }\n\n // Attach and remove event handlers as they're added or removed from props:\n syncEventHandlers() {\n eventNames.forEach((eventName) => {\n const prop = this.props['on' + eventName];\n const handler = this.handlers[eventName];\n const hasHandler = Boolean(handler);\n\n if (prop && !hasHandler) {\n this.addEventHandler(eventName, prop);\n } else if (!prop && hasHandler) {\n // Needs to be removed:\n this.removeEventHandler(eventName);\n } else if (prop && hasHandler && prop !== handler) {\n // replace the handler\n this.removeEventHandler(eventName);\n this.addEventHandler(eventName, prop);\n }\n });\n }\n\n addEventHandler(eventName, prop) {\n this.handlers[eventName] = prop;\n this.el.on(this.getPlotlyEventName(eventName), this.handlers[eventName]);\n }\n\n removeEventHandler(eventName) {\n this.el.removeListener(this.getPlotlyEventName(eventName), this.handlers[eventName]);\n delete this.handlers[eventName];\n }\n\n getPlotlyEventName(eventName) {\n return 'plotly_' + eventName.toLowerCase();\n }\n\n render() {\n return (\n \n );\n }\n }\n\n PlotlyComponent.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object),\n config: PropTypes.object,\n layout: PropTypes.object,\n frames: PropTypes.arrayOf(PropTypes.object),\n revision: PropTypes.number,\n onInitialized: PropTypes.func,\n onPurge: PropTypes.func,\n onError: PropTypes.func,\n onUpdate: PropTypes.func,\n debug: PropTypes.bool,\n style: PropTypes.object,\n className: PropTypes.string,\n useResizeHandler: PropTypes.bool,\n divId: PropTypes.string,\n };\n\n eventNames.forEach((eventName) => {\n PlotlyComponent.propTypes['on' + eventName] = PropTypes.func;\n });\n\n PlotlyComponent.defaultProps = {\n debug: false,\n useResizeHandler: false,\n data: [],\n style: {position: 'relative', display: 'inline-block'},\n };\n\n return PlotlyComponent;\n}\n","import plotComponentFactory from './factory';\nimport Plotly from 'plotly.js/dist/plotly';\n\nconst PlotComponent = plotComponentFactory(Plotly);\n\nexport default PlotComponent;\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/*!\n* sweetalert2 v11.17.2\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n }\n function _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n function _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n }\n function _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n }\n function _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n }\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n const globalState = {};\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n const swalPrefix = 'swal2-';\n\n /**\n * @typedef {Record} SwalClasses\n */\n\n /**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record} SwalIcons\n */\n\n /** @type {SwalClass[]} */\n const classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'draggable', 'dragging'];\n const swalClasses = classNames.reduce((acc, className) => {\n acc[className] = swalPrefix + className;\n return acc;\n }, /** @type {SwalClasses} */{});\n\n /** @type {SwalIcon[]} */\n const icons = ['success', 'warning', 'info', 'question', 'error'];\n const iconTypes = icons.reduce((acc, icon) => {\n acc[icon] = swalPrefix + icon;\n return acc;\n }, /** @type {SwalIcons} */{});\n\n const consolePrefix = 'SweetAlert2:';\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n\n /**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\n const warn = message => {\n console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n const error = message => {\n console.error(`${consolePrefix} ${message}`);\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\n const previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string?} useInstead\n */\n const warnAboutDeprecation = function (deprecatedParam) {\n let useInstead = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n warnOnce(`\"${deprecatedParam}\" is deprecated and will be removed in the next major release.${useInstead ? ` Use \"${useInstead}\" instead.` : ''}`);\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n\n /**\n * @param {any} arg\n * @returns {Promise}\n */\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n const getContainer = () => document.body.querySelector(`.${swalClasses.container}`);\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n const elementByClass = className => {\n return elementBySelector(`.${className}`);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n const getPopup = () => elementByClass(swalClasses.popup);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getIcon = () => elementByClass(swalClasses.icon);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getIconContent = () => elementByClass(swalClasses['icon-content']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getTitle = () => elementByClass(swalClasses.title);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getImage = () => elementByClass(swalClasses.image);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getConfirmButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`));\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getCancelButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`));\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getDenyButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`));\n\n /**\n * @returns {HTMLElement | null}\n */\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getLoader = () => elementBySelector(`.${swalClasses.loader}`);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getActions = () => elementByClass(swalClasses.actions);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getFooter = () => elementByClass(swalClasses.footer);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getCloseButton = () => elementByClass(swalClasses.close);\n\n // https://github.com/jkup/focusable/blob/master/index.js\n const focusable = `\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n`;\n /**\n * @returns {HTMLElement[]}\n */\n const getFocusableElements = () => {\n const popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf} */\n const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n const tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf} */\n const otherFocusableElements = popup.querySelectorAll(focusable);\n const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');\n return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));\n };\n\n /**\n * @returns {boolean}\n */\n const isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n\n /**\n * @returns {boolean}\n */\n const isToast = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n const isLoading = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, `text/html`);\n const head = parsed.querySelector('head');\n if (head) {\n Array.from(head.childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n const body = parsed.querySelector('body');\n if (body) {\n Array.from(body.childNodes).forEach(child => {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n const classList = className.split(/\\s+/);\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n const removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n if (!params.customClass) {\n return;\n }\n const customClass = params.customClass[(/** @type {keyof SweetAlertCustomClass} */className)];\n if (!customClass) {\n return;\n }\n if (typeof customClass !== 'string' && !customClass.forEach) {\n warn(`Invalid type of customClass.${className}! Expected string or iterable object, got \"${typeof customClass}\"`);\n return;\n }\n addClass(elem, customClass);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\n const getInput$1 = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);\n case 'checkbox':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);\n case 'radio':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);\n case 'range':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);\n default:\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n const focusInput = input => {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n if (condition) {\n elem.classList.add(className);\n } else {\n elem.classList.remove(className);\n }\n });\n } else {\n if (condition) {\n target.classList.add(className);\n } else {\n target.classList.remove(className);\n }\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n const getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n const applyNumericalStyle = (elem, property, value) => {\n if (value === `${parseInt(value)}`) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? `${value}px` : value);\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n if (!elem) {\n return;\n }\n elem.style.display = display;\n };\n\n /**\n * @param {HTMLElement | null} elem\n */\n const hide = elem => {\n if (!elem) {\n return;\n }\n elem.style.display = 'none';\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n const showWhenInnerHtmlPresent = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'block';\n if (!elem) {\n return;\n }\n new MutationObserver(() => {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement | null} */\n const el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n const toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n if (condition) {\n show(elem, display);\n } else {\n hide(elem);\n }\n };\n\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\n const isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n\n /**\n * @returns {boolean}\n */\n const allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(() => {\n timerProgressBar.style.transition = `width ${timer / 1000}s linear`;\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = `${timerProgressBarPercent}%`;\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const sweetHTML = `\n
\n \n
    \n
    \n \n

    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n`.replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n const resetValidationMessage$1 = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n const range = popup.querySelector(`.${swalClasses.range} input`);\n /** @type {HTMLOutputElement} */\n const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\n /**\n * @param {SweetAlertOptions} params\n */\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n const container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n container.dataset['swal2Theme'] = params.theme;\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {any} param\n * @param {HTMLElement} target\n */\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {any} elem\n */\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n if (0 in elem) {\n for (let i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[`show${buttonName}Button`], 'inline-block');\n setInnerHtml(button, params[`${buttonType}ButtonText`] || ''); // Set caption text\n button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, `${buttonType}Button`);\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderContainer = (instance, params) => {\n const container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n function handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[`grow-${grow}`]);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /// \n\n\n /** @type {InputClass[]} */\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderInput = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n const showInput = params => {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(`Unexpected type of input! Expected ${Object.keys(renderInputType).join(' | ')}, got \"${params.input}\"`);\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (!inputContainer) {\n return;\n }\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(() => {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n const setAttributes = (inputClass, inputAttributes) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const input = getInput$1(popup, inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n const setCustomClass = params => {\n if (!params.input) {\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (inputContainer) {\n applyCustomClass(inputContainer, params, 'input');\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder && params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertInput} inputType\n * @returns {HTMLElement | undefined}\n */\n const getInputContainer = inputType => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n return getDirectChildByClass(popup, swalClasses[(/** @type {SwalClass} */inputType)] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = `${inputValue}`;\n } else if (!isPromise(inputValue)) {\n warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof inputValue}\"`);\n }\n };\n\n /** @type {Record Input>} */\n const renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */\n (input, params) => {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = (select, params) => {\n select.textContent = '';\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder || params.inputLabel);\n return checkbox;\n };\n\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n const textareaResizeHandler = () => {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = `${textareaWidth}px`;\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`);\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n\n // Re-adjust the success icon on system theme change\n const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n colorSchemeQueryList.addEventListener('change', adjustSuccessIconBackgroundColor);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const applyStyles = (icon, params) => {\n for (const [iconType, iconClassName] of Object.entries(iconTypes)) {\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n const successIconHtml = `\n
    \n \n
    \n
    \n`;\n const errorIconHtml = `\n \n \n \n \n`;\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const setContent = (icon, params) => {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n let oldContent = icon.innerHTML;\n let newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n const iconContent = content => `
    ${content}
    `;\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderImage = (instance, params) => {\n const image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n let dragging = false;\n let mousedownX = 0;\n let mousedownY = 0;\n let initialX = 0;\n let initialY = 0;\n\n /**\n * @param {HTMLElement} popup\n */\n const addDraggableListeners = popup => {\n popup.addEventListener('mousedown', down);\n document.body.addEventListener('mousemove', move);\n popup.addEventListener('mouseup', up);\n popup.addEventListener('touchstart', down);\n document.body.addEventListener('touchmove', move);\n popup.addEventListener('touchend', up);\n };\n\n /**\n * @param {HTMLElement} popup\n */\n const removeDraggableListeners = popup => {\n popup.removeEventListener('mousedown', down);\n document.body.removeEventListener('mousemove', move);\n popup.removeEventListener('mouseup', up);\n popup.removeEventListener('touchstart', down);\n document.body.removeEventListener('touchmove', move);\n popup.removeEventListener('touchend', up);\n };\n\n /**\n * @param {MouseEvent | TouchEvent} event\n */\n const down = event => {\n const popup = getPopup();\n if (event.target === popup || getIcon().contains(/** @type {HTMLElement} */event.target)) {\n dragging = true;\n const clientXY = getClientXY(event);\n mousedownX = clientXY.clientX;\n mousedownY = clientXY.clientY;\n initialX = parseInt(popup.style.insetInlineStart) || 0;\n initialY = parseInt(popup.style.insetBlockStart) || 0;\n addClass(popup, 'swal2-dragging');\n }\n };\n\n /**\n * @param {MouseEvent | TouchEvent} event\n */\n const move = event => {\n const popup = getPopup();\n if (dragging) {\n let {\n clientX,\n clientY\n } = getClientXY(event);\n popup.style.insetInlineStart = `${initialX + (clientX - mousedownX)}px`;\n popup.style.insetBlockStart = `${initialY + (clientY - mousedownY)}px`;\n }\n };\n const up = () => {\n const popup = getPopup();\n dragging = false;\n removeClass(popup, 'swal2-dragging');\n };\n\n /**\n * @param {MouseEvent | TouchEvent} event\n * @returns {{ clientX: number, clientY: number }}\n */\n const getClientXY = event => {\n let clientX = 0,\n clientY = 0;\n if (event.type.startsWith('mouse')) {\n clientX = /** @type {MouseEvent} */event.clientX;\n clientY = /** @type {MouseEvent} */event.clientY;\n } else if (event.type.startsWith('touch')) {\n clientX = /** @type {TouchEvent} */event.touches[0].clientX;\n clientY = /** @type {TouchEvent} */event.touches[0].clientY;\n }\n return {\n clientX,\n clientY\n };\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n const loader = getLoader();\n if (loader) {\n popup.insertBefore(loader, getIcon());\n }\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n if (params.draggable && !params.toast) {\n addClass(popup, swalClasses.draggable);\n addDraggableListeners(popup);\n } else {\n removeClass(popup, swalClasses.draggable);\n removeDraggableListeners(popup);\n }\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n const addClasses$1 = (popup, params) => {\n const showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? showClass.popup : ''}`;\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n // TODO: remove in the next major\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[`icon-${params.icon}`]);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n const {\n progressSteps,\n currentProgressStep\n } = params;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderTitle = (instance, params) => {\n const title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n const popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n globalState.eventEmitter.emit('didRender', popup);\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n const isVisible = () => {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n const clickConfirm = () => {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n };\n\n /*\n * Global function to click 'Deny' button\n */\n const clickDeny = () => {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n const clickCancel = () => {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n };\n\n /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n /** @type {Record} */\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n const removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n const addKeydownHandler = (globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(innerParams, e, dismissWith);\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n\n /**\n * @param {number} index\n * @param {number} increment\n */\n const setFocus = (index, increment) => {\n var _dom$getPopup;\n const focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n const keydownHandler = (innerParams, event, dismissWith) => {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n const handleEnter = (event, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n const input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n const handleTab = event => {\n const targetElement = event.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n const handleArrows = key => {\n const actions = getActions();\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n const buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (let i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n const handleEsc = (event, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const container = getContainer();\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.contains(container)) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n // @ts-ignore\n const isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n /**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\n const iOSfix = () => {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = `${offset * -1}px`;\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n const lockBodyScroll = () => {\n const container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n let preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = event => {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = event => {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n const htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\n let previousBodyPadding = null;\n\n /**\n * @param {string} initialBodyOverflow\n */\n const replaceScrollbarWithPadding = initialBodyOverflow => {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = `${previousBodyPadding + measureScrollbar()}px`;\n }\n };\n const undoReplaceScrollbarWithPadding = () => {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = `${previousBodyPadding}px`;\n previousBodyPadding = null;\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n\n /**\n * Remove SweetAlert2 classes from body\n */\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n /**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n const triggerClosePopup = instance => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n /**\n * @param {any} error\n */\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n */\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n /**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\n */\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\n const handlePopupAnimation = (instance, popup, innerParams) => {\n var _globalState$eventEmi;\n const container = getContainer();\n // If animation is supported, animate\n const animationIsSupported = hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willClose', popup);\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n /**\n * @param {AnimationEvent | TransitionEvent} e\n */\n const swalCloseAnimationFinished = function (e) {\n if (e.target === popup) {\n var _globalState$swalClos;\n (_globalState$swalClos = globalState.swalCloseEventFinishedCallback) === null || _globalState$swalClos === void 0 || _globalState$swalClos.call(globalState);\n delete globalState.swalCloseEventFinishedCallback;\n popup.removeEventListener('animationend', swalCloseAnimationFinished);\n popup.removeEventListener('transitionend', swalCloseAnimationFinished);\n }\n };\n popup.addEventListener('animationend', swalCloseAnimationFinished);\n popup.addEventListener('transitionend', swalCloseAnimationFinished);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n var _globalState$eventEmi2;\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didClose');\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n if (!popup) {\n new Swal();\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n const loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n const getRadioValue = input => input.checked ? input.value : null;\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n const getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record} inputOptions\n */\n const processInputOptions = inputOptions => {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? `${parseFloat(inputValue) || 0}` : `${inputValue}`;\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(`Error in inputValue promise: ${err}`);\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateSelectOptions(popup, inputOptions, params) {\n const select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1];\n // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of